(function () {
    function r(e, n, t) {
        function o(i, f) {
            if (!n[i]) {
                if (!e[i]) {
                    var c = "function" == typeof require && require;
                    if (!f && c)
                        return c(i, !0);
                    if (u)
                        return u(i, !0);
                    var a = new Error("Cannot find module '" + i + "'");
                    throw a.code = "MODULE_NOT_FOUND",
                    a
                }
                var p = n[i] = {
                    exports: {}
                };
                e[i][0].call(p.exports, function (r) {
                    var n = e[i][1][r];
                    return o(n || r)
                }, p, p.exports, r, e, n, t)
            }
            return n[i].exports
        }
        for (var u = "function" == typeof require && require, i = 0; i < t.length; i++)
            o(t[i]);
        return o
    }
    return r
}
)()({
    1: [function (require, module, exports) {
        // ************************ CHANGE START ************************
        globalThis.tfjsRequire = require;
        // ************************ CHANGE END ************************
    }
        , {
        "./mobilenet-input": 2,
        "@tensorflow-models/coco-ssd": 3,
        "@tensorflow-models/knn-classifier": 4,
        "@tensorflow-models/mobilenet": 5,
        "@tensorflow-models/universal-sentence-encoder": 6,
        "@tensorflow/tfjs": 578,
        "@tensorflow/tfjs-backend-wasm": 8
    }],
    2: [function (require, module, exports) {
        "use strict";
        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.mobilenetInputData = void 0;
        const mobilenetInputData = Uint8Array.from([230, 233, 240, 231, 234, 241, 231, 234, 241, 231, 234, 241, 232, 235, 242, 232, 235, 242, 232, 235, 242, 233, 236, 243, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 236, 243, 233, 236, 243, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 241, 232, 237, 241, 231, 236, 240, 231, 236, 240, 231, 236, 242, 230, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 243, 228, 235, 243, 227, 234, 242, 226, 233, 241, 224, 233, 240, 224, 233, 240, 223, 232, 239, 223, 232, 239, 224, 231, 239, 224, 231, 239, 223, 230, 238, 223, 230, 238, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 223, 230, 238, 224, 231, 239, 224, 231, 239, 224, 231, 239, 225, 232, 240, 225, 232, 240, 225, 232, 240, 226, 233, 241, 225, 232, 240, 225, 232, 240, 225, 232, 240, 226, 233, 241, 226, 233, 241, 226, 233, 241, 227, 234, 242, 227, 234, 242, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 243, 228, 235, 243, 228, 235, 243, 227, 234, 242, 227, 234, 242, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 231, 238, 244, 227, 238, 244, 227, 238, 242, 231, 239, 242, 236, 242, 242, 236, 237, 239, 229, 231, 230, 226, 230, 233, 227, 232, 236, 225, 230, 236, 225, 232, 240, 218, 222, 231, 196, 197, 202, 170, 165, 169, 151, 141, 139, 142, 124, 120, 134, 117, 110, 106, 95, 93, 112, 102, 101, 107, 97, 96, 89, 79, 78, 66, 55, 53, 41, 30, 28, 42, 28, 27, 63, 49, 48, 72, 57, 54, 75, 60, 57, 49, 34, 31, 61, 46, 43, 83, 65, 63, 72, 54, 52, 70, 52, 50, 63, 45, 41, 61, 40, 37, 66, 45, 40, 69, 48, 43, 65, 44, 39, 60, 39, 34, 59, 38, 33, 65, 44, 39, 72, 51, 46, 63, 42, 37, 56, 35, 30, 54, 33, 28, 67, 46, 41, 85, 64, 59, 94, 73, 68, 86, 65, 60, 74, 53, 48, 65, 41, 39, 63, 39, 37, 71, 47, 45, 86, 62, 60, 90, 66, 64, 80, 56, 54, 77, 53, 51, 82, 58, 56, 80, 56, 54, 86, 62, 60, 91, 67, 65, 91, 67, 65, 87, 63, 61, 85, 61, 59, 88, 64, 62, 91, 67, 65, 85, 64, 61, 84, 63, 60, 80, 59, 56, 77, 56, 53, 78, 57, 54, 84, 63, 60, 94, 73, 70, 101, 80, 77, 106, 85, 82, 105, 84, 81, 103, 82, 79, 101, 80, 77, 99, 78, 75, 98, 77, 74, 98, 77, 74, 98, 77, 74, 111, 87, 83, 110, 86, 82, 108, 83, 78, 104, 79, 74, 103, 76, 69, 99, 72, 65, 98, 68, 60, 97, 67, 59, 93, 63, 53, 97, 67, 57, 101, 71, 63, 101, 71, 63, 94, 64, 56, 85, 55, 47, 78, 47, 42, 73, 44, 40, 71, 43, 42, 48, 24, 24, 40, 19, 18, 56, 38, 36, 77, 59, 59, 84, 68, 68, 90, 76, 73, 99, 85, 82, 101, 90, 84, 114, 105, 98, 138, 130, 127, 168, 164, 161, 197, 197, 197, 215, 219, 222, 218, 225, 231, 216, 225, 232, 224, 233, 238, 225, 234, 239, 227, 236, 241, 229, 238, 243, 231, 238, 244, 232, 239, 245, 232, 239, 245, 231, 238, 244, 232, 239, 245, 232, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 241, 246, 250, 241, 246, 250, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 235, 242, 248, 235, 242, 248, 234, 243, 248, 234, 243, 248, 234, 243, 248, 234, 243, 248, 234, 243, 248, 234, 243, 248, 234, 243, 248, 234, 243, 248, 234, 243, 248, 234, 243, 248, 234, 243, 248, 234, 243, 248, 234, 243, 248, 234, 243, 248, 234, 243, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 231, 238, 246, 231, 238, 246, 230, 237, 245, 230, 237, 245, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 234, 241, 231, 234, 241, 231, 234, 241, 231, 234, 241, 232, 235, 242, 232, 235, 242, 233, 236, 243, 233, 236, 243, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 236, 243, 233, 236, 243, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 241, 232, 237, 241, 231, 236, 240, 231, 236, 240, 231, 236, 242, 230, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 243, 228, 235, 243, 227, 234, 242, 226, 233, 241, 224, 233, 240, 224, 233, 240, 223, 232, 239, 223, 232, 239, 224, 231, 239, 224, 231, 239, 223, 230, 238, 223, 230, 238, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 223, 230, 238, 224, 231, 239, 224, 231, 239, 224, 231, 239, 225, 232, 240, 225, 232, 240, 225, 232, 240, 226, 233, 241, 225, 232, 240, 225, 232, 240, 225, 232, 240, 226, 233, 241, 226, 233, 241, 226, 233, 241, 227, 234, 242, 227, 234, 242, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 243, 228, 235, 243, 228, 235, 243, 227, 234, 242, 227, 234, 242, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 231, 238, 244, 228, 239, 245, 227, 238, 242, 231, 239, 242, 234, 239, 242, 233, 237, 238, 228, 232, 233, 228, 232, 235, 229, 234, 238, 224, 229, 235, 220, 225, 231, 206, 211, 217, 186, 187, 192, 165, 161, 162, 146, 136, 134, 132, 117, 112, 121, 106, 99, 98, 87, 85, 105, 95, 94, 91, 81, 80, 66, 56, 55, 53, 42, 40, 46, 35, 33, 51, 37, 36, 63, 49, 48, 57, 42, 39, 73, 58, 55, 66, 51, 48, 77, 62, 59, 77, 59, 57, 54, 36, 34, 64, 46, 44, 79, 61, 57, 64, 43, 38, 65, 44, 39, 64, 43, 38, 61, 40, 35, 58, 37, 32, 60, 39, 34, 66, 45, 40, 72, 51, 46, 68, 47, 42, 66, 45, 40, 67, 46, 41, 71, 50, 45, 76, 55, 50, 76, 55, 50, 71, 50, 45, 66, 45, 40, 60, 36, 34, 68, 44, 42, 77, 53, 51, 83, 59, 57, 86, 62, 60, 85, 61, 59, 81, 57, 55, 75, 51, 49, 82, 58, 56, 82, 58, 56, 82, 58, 56, 84, 60, 58, 87, 63, 61, 89, 65, 63, 89, 65, 63, 89, 65, 63, 78, 57, 54, 79, 58, 55, 81, 60, 57, 83, 62, 59, 85, 64, 61, 91, 70, 67, 99, 78, 75, 104, 83, 80, 97, 76, 73, 96, 75, 72, 95, 74, 71, 94, 73, 70, 94, 73, 70, 95, 74, 71, 96, 75, 72, 96, 75, 72, 96, 72, 68, 96, 72, 68, 96, 71, 66, 94, 69, 64, 94, 67, 60, 93, 66, 59, 94, 64, 56, 93, 63, 55, 99, 69, 59, 100, 70, 60, 99, 69, 61, 95, 65, 57, 88, 58, 50, 82, 52, 44, 78, 47, 42, 77, 48, 44, 71, 43, 42, 64, 40, 40, 64, 43, 42, 69, 49, 48, 67, 49, 49, 62, 46, 46, 75, 61, 58, 95, 81, 78, 110, 99, 93, 107, 98, 91, 120, 112, 109, 152, 148, 145, 188, 188, 188, 209, 213, 216, 218, 225, 231, 222, 231, 238, 224, 233, 238, 225, 234, 239, 227, 236, 241, 229, 238, 243, 231, 238, 244, 232, 239, 245, 232, 239, 245, 231, 238, 244, 232, 239, 245, 232, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 241, 246, 250, 241, 246, 250, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 235, 242, 248, 235, 242, 248, 234, 243, 248, 234, 243, 248, 234, 243, 248, 234, 243, 248, 234, 243, 248, 234, 243, 248, 234, 243, 248, 234, 243, 248, 234, 243, 248, 234, 243, 248, 234, 243, 248, 234, 243, 248, 234, 243, 248, 234, 243, 248, 234, 243, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 231, 238, 246, 231, 238, 246, 230, 237, 245, 230, 237, 245, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 234, 241, 231, 234, 241, 231, 234, 241, 232, 235, 242, 232, 235, 242, 232, 235, 242, 233, 236, 243, 233, 236, 243, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 236, 243, 233, 236, 243, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 241, 232, 237, 241, 231, 236, 240, 231, 236, 240, 231, 236, 242, 230, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 243, 228, 235, 243, 227, 234, 242, 226, 233, 241, 224, 233, 240, 224, 233, 240, 223, 232, 239, 223, 232, 239, 224, 231, 239, 224, 231, 239, 223, 230, 238, 223, 230, 238, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 223, 230, 238, 224, 231, 239, 224, 231, 239, 224, 231, 239, 225, 232, 240, 225, 232, 240, 225, 232, 240, 226, 233, 241, 225, 232, 240, 225, 232, 240, 225, 232, 240, 226, 233, 241, 226, 233, 241, 226, 233, 241, 227, 234, 242, 227, 234, 242, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 243, 228, 235, 243, 228, 235, 243, 227, 234, 242, 227, 234, 242, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 231, 238, 244, 230, 239, 244, 229, 238, 243, 230, 238, 241, 231, 236, 240, 230, 235, 238, 229, 234, 237, 229, 234, 238, 229, 234, 238, 222, 227, 231, 210, 213, 218, 194, 195, 199, 176, 176, 178, 160, 154, 154, 141, 131, 129, 119, 106, 100, 104, 89, 84, 97, 86, 84, 97, 87, 86, 71, 61, 59, 41, 31, 29, 39, 28, 26, 49, 38, 36, 54, 40, 39, 55, 41, 40, 48, 33, 30, 75, 60, 57, 74, 59, 56, 67, 52, 49, 60, 42, 40, 53, 35, 33, 69, 51, 47, 79, 61, 57, 65, 44, 39, 63, 42, 37, 60, 39, 34, 58, 37, 32, 58, 37, 32, 61, 40, 35, 66, 45, 40, 69, 48, 43, 64, 43, 38, 70, 49, 44, 75, 54, 49, 73, 52, 47, 66, 45, 40, 61, 40, 35, 62, 41, 36, 65, 44, 39, 78, 54, 52, 88, 64, 62, 89, 65, 63, 79, 55, 53, 78, 54, 52, 86, 62, 60, 84, 60, 58, 73, 49, 47, 87, 63, 61, 80, 56, 54, 75, 51, 49, 76, 52, 50, 82, 58, 56, 86, 62, 60, 84, 60, 58, 81, 57, 55, 81, 57, 53, 85, 61, 57, 90, 66, 62, 94, 70, 66, 96, 72, 68, 99, 75, 71, 103, 79, 75, 106, 82, 78, 97, 73, 69, 97, 73, 69, 97, 73, 69, 98, 74, 70, 99, 75, 71, 101, 77, 73, 103, 79, 75, 104, 80, 76, 98, 74, 70, 99, 75, 71, 100, 75, 70, 100, 75, 70, 103, 76, 69, 103, 76, 69, 105, 75, 67, 106, 76, 68, 107, 74, 65, 105, 72, 63, 100, 67, 58, 92, 59, 50, 83, 53, 45, 80, 50, 42, 80, 49, 44, 81, 52, 48, 76, 48, 45, 75, 51, 49, 79, 58, 57, 81, 61, 60, 72, 54, 52, 65, 50, 47, 78, 64, 61, 99, 85, 82, 98, 87, 81, 88, 79, 72, 97, 89, 86, 134, 129, 126, 176, 176, 176, 204, 208, 211, 219, 224, 228, 225, 232, 238, 224, 233, 238, 225, 234, 239, 227, 236, 241, 229, 238, 243, 231, 238, 244, 232, 239, 245, 232, 239, 245, 231, 238, 244, 232, 239, 245, 232, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 241, 246, 250, 241, 246, 250, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 235, 242, 248, 235, 242, 248, 234, 243, 248, 234, 243, 248, 234, 243, 248, 234, 243, 248, 234, 243, 248, 234, 243, 248, 234, 243, 248, 234, 243, 248, 234, 243, 248, 234, 243, 248, 234, 243, 248, 234, 243, 248, 234, 243, 248, 234, 243, 248, 234, 243, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 231, 238, 246, 231, 238, 246, 230, 237, 245, 230, 237, 245, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 234, 241, 231, 234, 241, 232, 235, 242, 232, 235, 242, 232, 235, 242, 233, 236, 243, 233, 236, 243, 233, 236, 243, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 236, 243, 233, 236, 243, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 241, 232, 237, 241, 231, 236, 240, 231, 236, 240, 231, 236, 242, 230, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 243, 228, 235, 243, 227, 234, 242, 226, 233, 241, 224, 233, 240, 224, 233, 240, 223, 232, 239, 223, 232, 239, 224, 231, 239, 224, 231, 239, 223, 230, 238, 223, 230, 238, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 223, 230, 238, 224, 231, 239, 224, 231, 239, 224, 231, 239, 225, 232, 240, 225, 232, 240, 225, 232, 240, 226, 233, 241, 225, 232, 240, 225, 232, 240, 225, 232, 240, 226, 233, 241, 226, 233, 241, 226, 233, 241, 227, 234, 242, 227, 234, 242, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 243, 228, 235, 243, 228, 235, 243, 227, 234, 242, 227, 234, 242, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 231, 238, 244, 231, 238, 244, 229, 236, 242, 226, 233, 239, 226, 233, 239, 231, 236, 242, 230, 235, 239, 227, 232, 236, 216, 219, 224, 201, 202, 206, 183, 183, 183, 173, 169, 168, 159, 154, 150, 136, 127, 122, 108, 95, 89, 86, 73, 67, 104, 93, 91, 87, 77, 76, 54, 44, 42, 32, 22, 20, 39, 28, 26, 46, 35, 33, 47, 33, 32, 47, 33, 32, 56, 41, 38, 72, 57, 54, 61, 46, 43, 41, 26, 23, 49, 31, 29, 73, 55, 53, 79, 61, 57, 62, 43, 39, 64, 43, 38, 61, 40, 35, 59, 38, 33, 59, 38, 33, 61, 40, 35, 63, 42, 37, 63, 42, 37, 62, 41, 36, 53, 32, 27, 61, 40, 35, 68, 47, 42, 69, 48, 43, 64, 43, 38, 63, 42, 37, 68, 47, 42, 74, 53, 48, 87, 63, 61, 88, 64, 62, 81, 57, 55, 70, 46, 44, 68, 44, 42, 77, 53, 51, 82, 58, 56, 81, 57, 55, 86, 62, 60, 80, 56, 54, 74, 50, 48, 72, 48, 46, 74, 50, 48, 77, 53, 51, 77, 53, 51, 76, 52, 50, 95, 71, 67, 98, 74, 70, 101, 77, 73, 102, 78, 74, 101, 77, 73, 101, 77, 73, 102, 78, 74, 104, 80, 76, 108, 84, 80, 107, 83, 79, 107, 83, 79, 107, 83, 79, 108, 84, 80, 110, 86, 82, 112, 88, 84, 113, 89, 85, 109, 85, 81, 109, 85, 81, 111, 86, 81, 112, 87, 82, 114, 87, 80, 116, 87, 79, 118, 88, 80, 118, 88, 80, 110, 77, 68, 107, 74, 65, 102, 69, 60, 94, 61, 52, 85, 55, 47, 82, 52, 44, 83, 52, 47, 84, 55, 49, 76, 48, 45, 68, 42, 41, 68, 44, 44, 75, 55, 54, 82, 64, 62, 84, 69, 66, 89, 74, 71, 95, 81, 78, 69, 56, 50, 73, 62, 56, 89, 80, 75, 121, 116, 113, 163, 163, 163, 200, 204, 205, 220, 225, 229, 222, 229, 235, 224, 233, 238, 225, 234, 239, 227, 236, 241, 229, 238, 243, 231, 238, 244, 232, 239, 245, 232, 239, 245, 231, 238, 244, 232, 239, 245, 232, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 241, 246, 250, 241, 246, 250, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 235, 242, 248, 234, 243, 248, 234, 243, 248, 234, 243, 248, 234, 243, 248, 234, 243, 248, 234, 243, 248, 234, 243, 248, 234, 243, 248, 234, 243, 248, 234, 243, 248, 234, 243, 248, 234, 243, 248, 234, 243, 248, 234, 243, 248, 234, 243, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 231, 238, 246, 231, 238, 246, 230, 237, 245, 230, 237, 245, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 232, 235, 242, 232, 235, 242, 232, 235, 242, 233, 236, 243, 233, 236, 243, 233, 236, 243, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 236, 243, 233, 236, 243, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 241, 232, 237, 241, 231, 236, 240, 231, 236, 240, 231, 236, 242, 230, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 243, 228, 235, 243, 227, 234, 242, 226, 233, 241, 224, 233, 240, 224, 233, 240, 223, 232, 239, 223, 232, 239, 224, 231, 239, 224, 231, 239, 223, 230, 238, 223, 230, 238, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 223, 230, 238, 224, 231, 239, 224, 231, 239, 224, 231, 239, 225, 232, 240, 225, 232, 240, 225, 232, 240, 226, 233, 241, 225, 232, 240, 225, 232, 240, 225, 232, 240, 226, 233, 241, 226, 233, 241, 226, 233, 241, 227, 234, 242, 227, 234, 242, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 243, 228, 235, 243, 228, 235, 243, 227, 234, 242, 227, 234, 242, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 234, 239, 245, 229, 236, 244, 224, 231, 239, 225, 232, 240, 230, 237, 245, 229, 234, 240, 222, 225, 230, 209, 210, 214, 193, 191, 192, 179, 175, 172, 171, 166, 162, 158, 151, 143, 128, 119, 112, 96, 86, 77, 75, 64, 58, 101, 92, 87, 71, 61, 59, 41, 30, 28, 39, 28, 26, 51, 40, 38, 47, 36, 34, 42, 28, 25, 50, 36, 33, 68, 53, 50, 56, 41, 38, 51, 33, 31, 51, 33, 31, 67, 49, 45, 84, 66, 62, 75, 56, 52, 56, 37, 33, 62, 41, 36, 61, 40, 35, 61, 40, 35, 63, 42, 37, 64, 43, 38, 63, 42, 37, 59, 38, 33, 55, 34, 29, 51, 30, 25, 55, 34, 29, 60, 39, 34, 65, 44, 39, 68, 47, 42, 72, 51, 46, 76, 55, 50, 79, 58, 53, 75, 51, 49, 67, 43, 41, 64, 40, 38, 67, 43, 41, 68, 44, 42, 67, 43, 41, 72, 48, 46, 80, 56, 54, 73, 49, 47, 74, 50, 48, 75, 51, 49, 72, 48, 46, 71, 47, 45, 73, 49, 47, 80, 56, 54, 86, 62, 60, 105, 80, 76, 107, 82, 77, 108, 83, 78, 107, 82, 77, 105, 80, 75, 105, 80, 75, 108, 83, 78, 111, 86, 81, 113, 88, 83, 112, 87, 82, 111, 86, 81, 110, 85, 80, 110, 85, 80, 111, 86, 81, 112, 87, 82, 112, 87, 82, 107, 84, 78, 107, 84, 78, 108, 83, 78, 107, 82, 77, 109, 82, 75, 110, 81, 73, 110, 80, 72, 110, 80, 70, 107, 74, 65, 107, 74, 65, 106, 73, 64, 101, 68, 59, 95, 62, 55, 90, 57, 50, 88, 55, 48, 86, 55, 50, 81, 51, 49, 68, 43, 39, 61, 37, 35, 67, 46, 43, 79, 59, 58, 83, 68, 65, 82, 67, 64, 79, 65, 62, 60, 47, 41, 79, 68, 62, 97, 88, 83, 112, 107, 103, 146, 145, 143, 194, 195, 197, 219, 224, 228, 220, 228, 231, 224, 233, 238, 225, 234, 239, 227, 236, 241, 229, 238, 243, 231, 238, 244, 232, 239, 245, 232, 239, 245, 231, 238, 244, 232, 239, 245, 232, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 241, 246, 250, 241, 246, 250, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 231, 238, 246, 231, 238, 246, 230, 237, 245, 230, 237, 245, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 232, 235, 242, 232, 235, 242, 233, 236, 243, 233, 236, 243, 233, 236, 243, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 236, 243, 233, 236, 243, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 241, 232, 237, 241, 231, 236, 240, 231, 236, 240, 231, 236, 242, 230, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 243, 228, 235, 243, 227, 234, 242, 226, 233, 241, 224, 233, 240, 224, 233, 240, 223, 232, 239, 223, 232, 239, 224, 231, 239, 224, 231, 239, 223, 230, 238, 223, 230, 238, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 223, 230, 238, 224, 231, 239, 224, 231, 239, 224, 231, 239, 225, 232, 240, 225, 232, 240, 225, 232, 240, 226, 233, 241, 225, 232, 240, 225, 232, 240, 225, 232, 240, 226, 233, 241, 226, 233, 241, 226, 233, 241, 227, 234, 242, 227, 234, 242, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 243, 228, 235, 243, 228, 235, 243, 227, 234, 242, 227, 234, 242, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 235, 242, 235, 238, 247, 232, 236, 247, 223, 230, 240, 224, 233, 242, 228, 237, 246, 223, 230, 238, 212, 215, 220, 199, 199, 199, 185, 181, 178, 173, 166, 160, 165, 156, 149, 145, 136, 127, 113, 104, 95, 85, 76, 67, 73, 64, 57, 87, 78, 73, 57, 47, 45, 34, 23, 21, 45, 34, 32, 62, 51, 49, 53, 42, 40, 48, 34, 31, 61, 47, 44, 68, 53, 50, 37, 22, 19, 55, 37, 35, 86, 68, 66, 91, 73, 69, 75, 57, 53, 60, 41, 37, 69, 50, 46, 64, 43, 38, 65, 44, 39, 66, 45, 40, 65, 44, 39, 63, 42, 37, 59, 38, 33, 55, 34, 29, 53, 32, 27, 61, 40, 35, 61, 40, 35, 62, 41, 36, 66, 45, 40, 72, 51, 46, 76, 55, 50, 78, 57, 52, 78, 57, 52, 82, 58, 56, 73, 49, 47, 73, 49, 47, 82, 58, 56, 79, 55, 53, 65, 41, 39, 60, 36, 34, 66, 42, 40, 62, 38, 36, 68, 44, 42, 75, 51, 49, 77, 53, 51, 77, 53, 51, 82, 58, 56, 92, 68, 66, 101, 77, 73, 102, 77, 73, 104, 79, 74, 106, 81, 76, 107, 82, 77, 107, 82, 77, 109, 84, 79, 113, 88, 83, 116, 91, 86, 105, 80, 75, 104, 79, 74, 103, 78, 73, 102, 77, 72, 101, 76, 71, 102, 77, 72, 102, 77, 72, 103, 78, 73, 105, 80, 75, 103, 80, 74, 103, 78, 73, 104, 77, 70, 104, 75, 67, 103, 74, 66, 103, 73, 63, 102, 72, 62, 102, 69, 60, 105, 72, 63, 107, 74, 65, 105, 72, 63, 100, 67, 60, 94, 61, 54, 91, 58, 51, 87, 56, 51, 96, 67, 63, 91, 63, 60, 84, 59, 55, 75, 54, 51, 72, 52, 51, 72, 54, 52, 74, 56, 54, 73, 58, 55, 77, 62, 57, 94, 81, 75, 102, 93, 88, 106, 101, 97, 133, 132, 130, 180, 182, 181, 213, 218, 221, 221, 229, 232, 224, 233, 238, 225, 234, 239, 227, 236, 241, 229, 238, 243, 231, 238, 244, 232, 239, 245, 232, 239, 245, 231, 238, 244, 232, 239, 245, 232, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 241, 246, 250, 241, 246, 250, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 231, 238, 246, 231, 238, 246, 230, 237, 245, 230, 237, 245, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 232, 235, 242, 232, 235, 242, 233, 236, 243, 233, 236, 243, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 236, 243, 233, 236, 243, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 241, 232, 237, 241, 231, 236, 240, 231, 236, 240, 231, 236, 242, 230, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 243, 228, 235, 243, 227, 234, 242, 226, 233, 241, 224, 233, 240, 224, 233, 240, 223, 232, 239, 223, 232, 239, 224, 231, 239, 224, 231, 239, 223, 230, 238, 223, 230, 238, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 223, 230, 238, 224, 231, 239, 224, 231, 239, 224, 231, 239, 225, 232, 240, 225, 232, 240, 225, 232, 240, 226, 233, 241, 225, 232, 240, 225, 232, 240, 225, 232, 240, 226, 233, 241, 226, 233, 241, 226, 233, 241, 227, 234, 242, 227, 234, 242, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 243, 228, 235, 243, 228, 235, 243, 227, 234, 242, 227, 234, 242, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 230, 233, 240, 236, 239, 248, 233, 237, 248, 224, 230, 242, 224, 232, 243, 228, 236, 247, 218, 225, 233, 203, 207, 210, 190, 189, 187, 176, 171, 167, 163, 154, 145, 150, 140, 130, 124, 114, 104, 92, 84, 73, 75, 68, 58, 76, 69, 61, 77, 68, 63, 58, 47, 45, 39, 28, 26, 46, 35, 33, 63, 49, 46, 58, 44, 41, 54, 40, 37, 64, 50, 47, 57, 42, 39, 33, 18, 15, 66, 48, 44, 92, 74, 70, 84, 65, 61, 66, 47, 43, 57, 38, 34, 78, 59, 55, 72, 51, 46, 72, 51, 46, 70, 49, 44, 63, 42, 37, 56, 35, 30, 52, 31, 26, 54, 33, 28, 58, 37, 32, 70, 49, 44, 70, 49, 44, 71, 50, 45, 72, 51, 46, 73, 52, 47, 75, 54, 49, 78, 57, 52, 79, 58, 53, 89, 65, 63, 86, 62, 60, 83, 59, 57, 80, 56, 54, 75, 51, 49, 67, 43, 41, 63, 39, 37, 62, 38, 36, 69, 45, 43, 73, 49, 47, 78, 54, 52, 84, 60, 58, 89, 65, 63, 95, 71, 69, 100, 76, 74, 104, 80, 76, 96, 71, 67, 102, 74, 70, 108, 80, 76, 111, 83, 79, 111, 83, 79, 110, 82, 78, 109, 81, 77, 110, 82, 78, 98, 70, 66, 98, 70, 66, 97, 69, 65, 98, 70, 66, 98, 70, 66, 100, 72, 68, 102, 74, 70, 101, 76, 71, 105, 80, 75, 105, 80, 75, 106, 79, 72, 106, 79, 72, 106, 77, 69, 106, 76, 68, 108, 75, 66, 107, 74, 65, 99, 65, 55, 102, 68, 58, 104, 70, 61, 104, 70, 61, 100, 66, 57, 96, 62, 53, 92, 59, 52, 89, 59, 51, 99, 70, 64, 99, 71, 67, 91, 66, 62, 79, 55, 53, 69, 48, 47, 67, 49, 47, 73, 55, 53, 75, 60, 57, 84, 69, 64, 83, 70, 64, 89, 78, 74, 108, 100, 97, 137, 133, 130, 170, 170, 170, 201, 205, 206, 220, 225, 228, 225, 233, 236, 225, 234, 239, 227, 236, 241, 229, 238, 243, 231, 238, 244, 232, 239, 245, 232, 239, 245, 231, 238, 244, 232, 239, 245, 232, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 241, 246, 250, 241, 246, 250, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 231, 238, 246, 231, 238, 246, 230, 237, 245, 230, 237, 245, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 232, 235, 242, 233, 236, 243, 233, 236, 243, 233, 236, 243, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 236, 243, 233, 236, 243, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 241, 232, 237, 241, 231, 236, 240, 231, 236, 240, 231, 236, 242, 230, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 243, 228, 235, 243, 227, 234, 242, 226, 233, 241, 224, 233, 240, 224, 233, 240, 223, 232, 239, 223, 232, 239, 224, 231, 239, 224, 231, 239, 223, 230, 238, 223, 230, 238, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 223, 230, 238, 224, 231, 239, 224, 231, 239, 224, 231, 239, 225, 232, 240, 225, 232, 240, 225, 232, 240, 226, 233, 241, 225, 232, 240, 225, 232, 240, 225, 232, 240, 226, 233, 241, 226, 233, 241, 226, 233, 241, 227, 234, 242, 227, 234, 242, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 243, 228, 235, 243, 228, 235, 243, 227, 234, 242, 227, 234, 242, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 231, 231, 239, 236, 239, 248, 234, 238, 249, 224, 230, 242, 224, 232, 245, 227, 235, 246, 217, 221, 230, 198, 199, 203, 186, 182, 179, 171, 164, 156, 155, 145, 135, 138, 126, 114, 108, 96, 84, 76, 68, 57, 69, 62, 52, 80, 73, 65, 74, 65, 60, 66, 55, 53, 48, 37, 35, 43, 32, 30, 56, 42, 39, 58, 44, 41, 55, 41, 38, 59, 45, 42, 47, 32, 29, 42, 27, 24, 73, 55, 51, 70, 52, 48, 57, 38, 34, 67, 48, 44, 66, 47, 43, 74, 55, 51, 78, 57, 52, 77, 56, 51, 71, 50, 45, 60, 39, 34, 49, 28, 23, 47, 26, 21, 55, 34, 29, 63, 42, 37, 71, 50, 45, 75, 54, 49, 78, 57, 52, 77, 56, 51, 74, 53, 48, 74, 53, 48, 79, 58, 53, 85, 64, 59, 72, 48, 46, 75, 51, 49, 67, 43, 41, 55, 31, 29, 55, 31, 29, 69, 45, 43, 76, 52, 50, 74, 50, 48, 85, 61, 59, 83, 59, 57, 84, 60, 58, 90, 66, 64, 98, 74, 72, 103, 79, 77, 101, 77, 75, 96, 72, 68, 97, 69, 66, 103, 75, 71, 110, 82, 78, 114, 86, 82, 111, 83, 79, 104, 76, 72, 98, 70, 66, 95, 67, 63, 96, 68, 64, 96, 68, 64, 97, 69, 65, 99, 71, 67, 101, 73, 69, 104, 76, 72, 107, 79, 75, 108, 80, 76, 102, 77, 72, 103, 78, 73, 105, 78, 71, 106, 77, 71, 107, 77, 69, 107, 77, 69, 109, 76, 67, 109, 76, 67, 97, 63, 53, 99, 65, 55, 100, 66, 57, 99, 65, 56, 96, 62, 53, 94, 60, 51, 94, 59, 53, 94, 61, 54, 84, 54, 46, 81, 52, 46, 73, 45, 41, 63, 38, 34, 61, 40, 37, 68, 48, 47, 75, 55, 54, 75, 57, 55, 76, 58, 54, 60, 45, 40, 71, 57, 54, 111, 102, 97, 148, 143, 140, 167, 167, 165, 191, 193, 192, 214, 220, 220, 225, 233, 236, 225, 234, 239, 227, 236, 241, 229, 238, 243, 231, 238, 244, 232, 239, 245, 232, 239, 245, 231, 238, 244, 232, 239, 245, 232, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 241, 246, 250, 241, 246, 250, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 231, 238, 246, 231, 238, 246, 230, 237, 245, 230, 237, 245, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 236, 243, 233, 236, 243, 233, 236, 243, 233, 236, 243, 233, 236, 243, 233, 236, 243, 233, 236, 243, 233, 236, 243, 233, 236, 243, 233, 236, 243, 233, 236, 243, 233, 236, 243, 233, 236, 243, 233, 236, 243, 233, 236, 243, 233, 236, 243, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 241, 232, 237, 241, 231, 236, 240, 231, 236, 240, 230, 235, 241, 230, 235, 241, 228, 235, 241, 228, 235, 241, 227, 234, 242, 226, 233, 241, 226, 233, 241, 226, 233, 241, 224, 233, 240, 224, 233, 240, 224, 233, 240, 223, 232, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 223, 230, 238, 223, 230, 238, 223, 230, 238, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 223, 230, 238, 223, 230, 238, 223, 230, 238, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 229, 236, 244, 229, 236, 244, 228, 235, 243, 228, 235, 243, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 235, 235, 243, 233, 236, 245, 228, 232, 243, 223, 230, 240, 226, 234, 245, 225, 232, 242, 205, 208, 215, 180, 180, 182, 188, 183, 179, 145, 136, 127, 134, 122, 110, 86, 74, 60, 75, 63, 51, 57, 47, 37, 76, 69, 59, 104, 97, 89, 64, 55, 50, 39, 28, 24, 45, 31, 28, 53, 39, 36, 51, 37, 34, 73, 59, 56, 81, 66, 63, 45, 30, 27, 29, 11, 7, 51, 33, 29, 69, 50, 46, 69, 50, 46, 67, 48, 44, 70, 51, 47, 71, 52, 46, 68, 49, 43, 57, 36, 31, 66, 45, 40, 65, 44, 39, 54, 33, 28, 53, 32, 27, 64, 43, 38, 69, 48, 43, 65, 44, 39, 73, 52, 47, 73, 52, 47, 73, 52, 47, 73, 52, 47, 72, 51, 46, 71, 50, 45, 70, 49, 44, 69, 48, 43, 66, 42, 40, 71, 47, 45, 76, 52, 50, 74, 50, 48, 71, 47, 45, 73, 49, 47, 82, 58, 56, 90, 66, 64, 91, 67, 65, 91, 67, 65, 91, 67, 65, 93, 69, 67, 96, 72, 70, 101, 77, 75, 106, 82, 80, 109, 85, 81, 112, 84, 81, 114, 86, 82, 106, 78, 74, 92, 64, 60, 87, 59, 55, 92, 64, 60, 92, 64, 60, 87, 59, 55, 96, 68, 64, 94, 66, 62, 92, 64, 60, 91, 63, 59, 94, 66, 62, 99, 71, 67, 105, 77, 73, 109, 81, 77, 105, 77, 73, 108, 80, 76, 113, 84, 78, 115, 86, 80, 115, 85, 77, 113, 80, 73, 109, 75, 66, 106, 72, 62, 104, 67, 58, 103, 66, 57, 102, 65, 56, 101, 64, 55, 100, 63, 55, 98, 64, 55, 99, 64, 58, 98, 65, 58, 83, 53, 45, 85, 56, 48, 81, 53, 49, 69, 44, 40, 56, 32, 30, 53, 32, 29, 63, 43, 42, 74, 56, 54, 84, 66, 62, 78, 63, 58, 91, 78, 72, 116, 107, 102, 132, 127, 123, 145, 144, 140, 178, 178, 176, 212, 216, 217, 223, 231, 234, 227, 236, 241, 226, 235, 240, 228, 237, 242, 234, 241, 247, 229, 236, 242, 227, 234, 240, 237, 244, 250, 232, 239, 245, 232, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 241, 246, 250, 241, 246, 250, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 241, 231, 236, 240, 231, 236, 240, 231, 236, 240, 230, 235, 241, 230, 235, 241, 228, 235, 241, 227, 234, 240, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 224, 233, 240, 224, 233, 240, 223, 232, 239, 223, 232, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 223, 230, 238, 223, 230, 238, 223, 230, 238, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 223, 230, 238, 223, 230, 238, 223, 230, 238, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 229, 236, 244, 229, 236, 244, 228, 235, 243, 228, 235, 243, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 237, 244, 233, 236, 245, 229, 233, 242, 225, 232, 242, 223, 230, 240, 215, 219, 228, 195, 196, 200, 175, 173, 174, 162, 154, 151, 130, 120, 111, 125, 113, 101, 70, 56, 45, 55, 43, 31, 53, 43, 33, 74, 67, 57, 79, 72, 64, 46, 35, 31, 36, 25, 21, 30, 16, 13, 52, 38, 35, 86, 72, 69, 83, 69, 66, 61, 46, 43, 56, 41, 38, 54, 36, 32, 59, 41, 37, 68, 49, 45, 75, 56, 52, 75, 56, 52, 66, 47, 43, 57, 38, 32, 53, 34, 28, 60, 39, 34, 52, 31, 26, 53, 32, 27, 60, 39, 34, 59, 38, 33, 52, 31, 26, 56, 35, 30, 69, 48, 43, 74, 53, 48, 72, 51, 46, 70, 49, 44, 67, 46, 41, 66, 45, 40, 68, 47, 42, 72, 51, 46, 75, 54, 49, 69, 45, 43, 73, 49, 47, 77, 53, 51, 78, 54, 52, 76, 52, 50, 77, 53, 51, 81, 57, 55, 86, 62, 60, 92, 68, 66, 97, 73, 71, 104, 80, 78, 109, 85, 83, 111, 87, 85, 109, 85, 83, 105, 81, 79, 102, 78, 74, 99, 74, 70, 103, 75, 71, 97, 69, 65, 86, 58, 54, 83, 55, 51, 88, 60, 56, 90, 62, 58, 86, 58, 54, 87, 59, 55, 90, 62, 58, 93, 65, 61, 97, 69, 65, 99, 71, 67, 99, 71, 67, 99, 71, 67, 98, 70, 66, 106, 78, 74, 108, 81, 74, 113, 84, 78, 117, 87, 79, 120, 87, 80, 120, 87, 78, 119, 85, 75, 118, 84, 74, 104, 67, 58, 103, 66, 57, 102, 65, 56, 101, 64, 55, 101, 64, 56, 103, 66, 58, 103, 68, 62, 105, 71, 62, 90, 57, 48, 85, 55, 45, 77, 48, 42, 70, 42, 38, 62, 37, 33, 58, 34, 32, 56, 35, 34, 55, 35, 34, 79, 60, 56, 84, 66, 62, 97, 82, 77, 110, 99, 93, 119, 112, 106, 135, 132, 127, 171, 172, 167, 205, 209, 208, 219, 227, 230, 226, 235, 240, 226, 235, 240, 228, 237, 242, 234, 241, 247, 229, 236, 242, 227, 234, 240, 237, 244, 250, 232, 239, 245, 232, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 241, 246, 250, 241, 246, 250, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 240, 231, 236, 240, 231, 236, 240, 230, 235, 239, 230, 235, 241, 230, 235, 241, 227, 234, 240, 227, 234, 240, 226, 233, 241, 226, 233, 241, 226, 233, 241, 225, 232, 240, 224, 233, 240, 224, 233, 240, 223, 232, 239, 223, 232, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 223, 230, 238, 223, 230, 238, 223, 230, 238, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 223, 230, 238, 223, 230, 238, 223, 230, 238, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 229, 236, 244, 229, 236, 244, 228, 235, 243, 228, 235, 243, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 233, 237, 246, 230, 234, 243, 230, 234, 243, 230, 235, 241, 221, 224, 231, 201, 202, 207, 180, 180, 182, 171, 167, 166, 153, 144, 139, 119, 109, 100, 124, 111, 102, 69, 56, 47, 46, 33, 24, 49, 39, 29, 74, 65, 56, 67, 58, 51, 41, 30, 26, 34, 20, 17, 38, 24, 21, 71, 57, 54, 96, 81, 78, 73, 58, 55, 50, 35, 30, 60, 45, 40, 47, 29, 25, 71, 53, 49, 89, 70, 64, 83, 64, 58, 65, 46, 40, 56, 37, 31, 60, 39, 34, 65, 44, 39, 57, 36, 31, 51, 30, 25, 52, 31, 26, 61, 40, 35, 59, 38, 33, 50, 29, 24, 52, 31, 26, 63, 42, 37, 65, 44, 39, 65, 44, 39, 64, 43, 38, 63, 42, 37, 64, 43, 38, 69, 48, 43, 76, 55, 50, 82, 61, 56, 77, 53, 51, 76, 52, 50, 75, 51, 49, 75, 51, 49, 78, 54, 52, 83, 59, 57, 88, 64, 62, 92, 68, 66, 105, 81, 79, 108, 84, 82, 113, 89, 87, 115, 91, 89, 113, 89, 87, 106, 82, 80, 99, 75, 73, 94, 70, 66, 93, 68, 64, 94, 69, 64, 90, 65, 60, 83, 58, 53, 82, 57, 52, 87, 62, 57, 89, 64, 59, 88, 63, 58, 88, 63, 58, 91, 66, 61, 95, 70, 65, 99, 74, 69, 102, 77, 72, 102, 77, 72, 101, 76, 71, 102, 74, 70, 105, 78, 71, 106, 77, 71, 108, 77, 72, 109, 79, 71, 112, 79, 72, 113, 80, 71, 114, 80, 70, 117, 80, 71, 121, 83, 74, 118, 80, 71, 112, 74, 65, 106, 68, 59, 101, 64, 56, 100, 63, 55, 100, 63, 55, 99, 65, 56, 89, 55, 45, 80, 48, 37, 71, 42, 34, 71, 43, 39, 74, 49, 45, 73, 49, 47, 66, 42, 42, 56, 35, 34, 77, 56, 55, 90, 70, 69, 103, 88, 83, 110, 97, 91, 109, 100, 95, 124, 119, 115, 163, 162, 158, 199, 201, 200, 213, 221, 224, 223, 232, 237, 226, 235, 240, 227, 236, 241, 233, 240, 246, 230, 237, 243, 228, 235, 241, 236, 243, 249, 232, 239, 245, 232, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 241, 246, 250, 241, 246, 250, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 240, 231, 236, 240, 230, 235, 239, 230, 235, 239, 230, 235, 241, 229, 234, 240, 227, 234, 240, 227, 234, 240, 226, 233, 241, 226, 233, 241, 225, 232, 240, 225, 232, 240, 224, 233, 240, 223, 232, 239, 223, 232, 239, 223, 232, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 223, 230, 238, 223, 230, 238, 223, 230, 238, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 223, 230, 238, 223, 230, 238, 223, 230, 238, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 229, 236, 244, 229, 236, 244, 228, 235, 243, 228, 235, 243, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 229, 236, 244, 226, 233, 241, 230, 235, 241, 232, 235, 240, 217, 218, 222, 188, 188, 190, 172, 168, 167, 170, 165, 161, 153, 144, 139, 117, 106, 100, 126, 116, 107, 75, 62, 54, 44, 31, 23, 43, 33, 24, 75, 65, 56, 70, 59, 53, 46, 32, 29, 24, 10, 7, 52, 38, 35, 81, 67, 64, 55, 40, 37, 38, 23, 20, 51, 36, 31, 52, 37, 32, 57, 39, 35, 85, 67, 63, 95, 76, 70, 74, 55, 49, 59, 40, 34, 65, 46, 40, 70, 49, 44, 64, 43, 38, 55, 34, 29, 66, 45, 40, 68, 47, 42, 58, 37, 32, 55, 34, 29, 61, 40, 35, 60, 39, 34, 52, 31, 26, 55, 34, 29, 61, 40, 35, 67, 46, 41, 71, 50, 45, 72, 51, 46, 74, 53, 48, 78, 57, 52, 82, 61, 56, 81, 57, 55, 76, 52, 50, 71, 47, 45, 71, 47, 45, 79, 55, 53, 91, 67, 65, 101, 77, 75, 107, 83, 81, 118, 94, 92, 115, 91, 89, 108, 84, 82, 102, 78, 76, 97, 73, 71, 94, 70, 68, 93, 69, 67, 93, 69, 67, 97, 72, 68, 97, 72, 67, 94, 69, 64, 91, 66, 61, 91, 66, 61, 93, 68, 63, 95, 70, 65, 95, 70, 65, 100, 75, 70, 100, 75, 70, 100, 75, 70, 102, 77, 72, 106, 81, 76, 111, 86, 81, 116, 91, 86, 119, 94, 89, 129, 102, 95, 128, 99, 93, 125, 95, 87, 122, 92, 84, 122, 89, 80, 122, 88, 79, 125, 88, 79, 125, 88, 79, 130, 92, 83, 125, 87, 78, 118, 80, 71, 111, 73, 64, 104, 67, 59, 102, 65, 57, 102, 65, 57, 103, 66, 57, 97, 63, 51, 89, 57, 46, 81, 51, 43, 81, 52, 48, 85, 57, 54, 84, 58, 57, 75, 51, 51, 67, 43, 43, 63, 42, 41, 70, 50, 49, 86, 68, 64, 97, 84, 78, 95, 86, 81, 101, 96, 90, 134, 133, 128, 173, 175, 172, 205, 213, 215, 220, 229, 234, 227, 236, 241, 227, 236, 241, 232, 239, 245, 230, 237, 243, 228, 235, 241, 235, 242, 248, 232, 239, 245, 232, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 241, 246, 250, 241, 246, 250, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 239, 230, 235, 239, 230, 235, 239, 230, 235, 239, 229, 234, 240, 229, 234, 240, 227, 234, 240, 226, 233, 239, 225, 232, 240, 225, 232, 240, 225, 232, 240, 224, 231, 239, 223, 232, 239, 223, 232, 239, 222, 231, 238, 222, 231, 238, 224, 231, 239, 224, 231, 239, 224, 231, 239, 223, 230, 238, 223, 230, 238, 223, 230, 238, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 223, 230, 238, 223, 230, 238, 223, 230, 238, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 229, 236, 244, 229, 236, 244, 228, 235, 243, 228, 235, 243, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 229, 236, 242, 225, 234, 241, 224, 233, 238, 229, 234, 238, 229, 230, 234, 209, 209, 209, 182, 178, 175, 169, 161, 158, 169, 162, 156, 133, 124, 119, 119, 110, 105, 127, 118, 111, 59, 48, 42, 34, 23, 17, 56, 46, 37, 87, 77, 68, 72, 59, 53, 37, 23, 20, 24, 10, 7, 45, 31, 28, 53, 39, 36, 27, 12, 7, 33, 18, 13, 64, 46, 42, 64, 46, 42, 107, 89, 85, 85, 67, 63, 64, 45, 39, 61, 42, 36, 76, 55, 50, 82, 61, 56, 66, 45, 40, 45, 24, 19, 66, 45, 40, 77, 56, 51, 78, 57, 52, 67, 46, 41, 62, 41, 36, 66, 45, 40, 65, 44, 39, 56, 35, 30, 63, 42, 37, 74, 53, 48, 86, 65, 60, 90, 69, 64, 87, 66, 61, 80, 59, 54, 76, 55, 50, 75, 54, 49, 74, 50, 48, 73, 49, 47, 74, 50, 48, 81, 57, 55, 91, 67, 65, 101, 77, 75, 108, 84, 82, 111, 87, 85, 112, 88, 86, 106, 82, 80, 99, 75, 73, 92, 68, 66, 90, 66, 64, 92, 68, 66, 97, 73, 71, 100, 76, 74, 101, 77, 73, 99, 75, 71, 97, 73, 69, 97, 73, 69, 96, 72, 68, 95, 71, 67, 97, 73, 69, 99, 75, 71, 101, 77, 73, 102, 78, 74, 104, 80, 76, 108, 84, 80, 113, 89, 85, 119, 95, 91, 124, 100, 96, 128, 103, 98, 128, 101, 94, 126, 97, 91, 123, 93, 85, 118, 88, 80, 117, 84, 75, 118, 84, 75, 120, 83, 74, 121, 84, 75, 119, 81, 70, 117, 79, 68, 114, 76, 67, 111, 73, 64, 111, 73, 64, 113, 75, 66, 116, 77, 70, 117, 80, 71, 113, 79, 67, 108, 76, 63, 99, 69, 59, 91, 62, 56, 84, 56, 53, 77, 51, 50, 71, 47, 47, 68, 44, 44, 74, 53, 52, 69, 49, 48, 84, 66, 62, 106, 91, 86, 107, 98, 91, 102, 97, 91, 130, 127, 120, 167, 169, 164, 197, 205, 207, 217, 226, 231, 227, 236, 241, 226, 235, 240, 231, 238, 244, 231, 238, 244, 229, 236, 242, 234, 241, 247, 232, 239, 245, 232, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 241, 246, 250, 241, 246, 250, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 239, 230, 235, 239, 230, 235, 239, 229, 234, 238, 229, 234, 240, 228, 233, 239, 226, 233, 239, 226, 233, 239, 225, 232, 240, 225, 232, 240, 224, 231, 239, 224, 231, 239, 223, 232, 239, 222, 231, 238, 222, 231, 238, 222, 231, 238, 224, 231, 239, 224, 231, 239, 224, 231, 239, 223, 230, 238, 223, 230, 238, 223, 230, 238, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 223, 230, 238, 223, 230, 238, 223, 230, 238, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 229, 236, 244, 229, 236, 244, 228, 235, 243, 228, 235, 243, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 229, 236, 242, 224, 233, 240, 225, 234, 239, 226, 231, 234, 218, 220, 219, 199, 195, 192, 175, 170, 164, 164, 155, 148, 162, 153, 146, 113, 104, 99, 127, 118, 113, 127, 118, 113, 40, 31, 26, 41, 30, 26, 89, 78, 72, 109, 96, 88, 66, 53, 45, 31, 17, 14, 42, 28, 25, 34, 20, 17, 28, 14, 11, 51, 36, 31, 72, 57, 52, 85, 67, 63, 96, 78, 74, 110, 92, 88, 65, 47, 43, 44, 25, 19, 66, 47, 41, 84, 63, 58, 70, 49, 44, 60, 39, 34, 66, 45, 40, 82, 61, 56, 74, 53, 48, 74, 53, 48, 80, 59, 54, 76, 55, 50, 64, 43, 38, 64, 43, 38, 74, 53, 48, 82, 61, 56, 92, 71, 66, 102, 81, 76, 101, 80, 75, 92, 71, 66, 81, 60, 55, 74, 53, 48, 73, 52, 47, 69, 45, 43, 76, 52, 50, 88, 64, 62, 99, 75, 73, 105, 81, 79, 106, 82, 80, 103, 79, 77, 100, 76, 74, 92, 68, 66, 92, 68, 66, 94, 70, 68, 96, 72, 70, 98, 74, 72, 100, 76, 74, 102, 78, 76, 103, 79, 77, 98, 74, 70, 94, 70, 66, 93, 69, 65, 96, 72, 68, 96, 72, 68, 94, 70, 66, 94, 70, 66, 99, 75, 71, 96, 72, 68, 101, 77, 73, 109, 85, 81, 117, 93, 89, 121, 97, 93, 121, 97, 93, 119, 95, 91, 118, 93, 89, 105, 77, 73, 104, 75, 69, 103, 73, 65, 102, 69, 62, 102, 68, 59, 103, 69, 60, 106, 69, 60, 107, 70, 61, 114, 76, 65, 114, 76, 65, 113, 75, 66, 112, 74, 65, 112, 74, 65, 112, 74, 65, 112, 73, 66, 113, 75, 66, 109, 73, 61, 108, 74, 62, 105, 72, 63, 96, 65, 60, 85, 55, 53, 77, 49, 48, 75, 49, 50, 75, 51, 51, 90, 66, 66, 85, 64, 63, 97, 78, 74, 113, 98, 93, 112, 103, 96, 107, 103, 94, 131, 128, 121, 164, 166, 161, 191, 196, 199, 214, 223, 228, 227, 236, 241, 225, 234, 239, 229, 236, 242, 231, 238, 244, 230, 237, 243, 233, 240, 246, 232, 239, 245, 232, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 241, 246, 250, 241, 246, 250, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 239, 230, 235, 239, 229, 234, 238, 229, 234, 238, 229, 234, 240, 228, 233, 239, 226, 233, 239, 226, 233, 239, 225, 232, 240, 225, 232, 240, 224, 231, 239, 224, 231, 239, 222, 231, 238, 222, 231, 238, 222, 231, 238, 222, 231, 238, 224, 231, 239, 224, 231, 239, 224, 231, 239, 223, 230, 238, 223, 230, 238, 223, 230, 238, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 223, 230, 238, 223, 230, 238, 223, 230, 238, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 229, 236, 244, 229, 236, 244, 228, 235, 243, 228, 235, 243, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 229, 236, 242, 225, 236, 242, 228, 237, 242, 223, 228, 231, 206, 206, 204, 186, 181, 175, 170, 161, 154, 157, 147, 138, 149, 139, 130, 117, 108, 101, 121, 112, 107, 105, 97, 94, 34, 24, 22, 67, 56, 54, 107, 93, 90, 96, 81, 76, 51, 36, 29, 36, 22, 19, 47, 33, 30, 42, 29, 23, 43, 30, 24, 71, 56, 51, 91, 76, 71, 95, 77, 73, 97, 79, 75, 68, 49, 43, 54, 35, 29, 55, 36, 30, 69, 50, 44, 69, 48, 43, 56, 35, 30, 63, 42, 37, 85, 64, 59, 79, 58, 53, 71, 50, 45, 71, 50, 45, 78, 57, 52, 76, 55, 50, 69, 48, 43, 72, 51, 46, 85, 64, 59, 87, 66, 61, 92, 71, 66, 95, 74, 69, 89, 68, 63, 79, 58, 53, 75, 54, 49, 79, 58, 53, 85, 64, 59, 83, 59, 57, 93, 69, 67, 103, 79, 77, 108, 84, 82, 105, 81, 79, 98, 74, 72, 93, 69, 67, 90, 66, 64, 85, 61, 59, 89, 65, 63, 94, 70, 68, 99, 75, 73, 100, 76, 74, 98, 74, 72, 95, 71, 69, 93, 69, 67, 87, 66, 63, 83, 62, 59, 84, 63, 60, 91, 70, 67, 94, 73, 70, 90, 69, 66, 92, 71, 68, 98, 77, 74, 101, 80, 77, 105, 84, 81, 112, 91, 88, 117, 96, 93, 118, 97, 94, 115, 94, 91, 110, 89, 86, 109, 85, 81, 112, 83, 79, 112, 81, 76, 112, 79, 72, 110, 77, 70, 110, 76, 67, 109, 75, 66, 111, 74, 65, 112, 74, 65, 113, 73, 63, 113, 73, 63, 113, 73, 65, 111, 71, 63, 107, 69, 60, 103, 65, 56, 99, 60, 53, 97, 59, 50, 96, 60, 46, 98, 65, 50, 101, 69, 58, 98, 68, 60, 93, 63, 61, 87, 59, 58, 83, 57, 58, 82, 58, 58, 80, 56, 56, 91, 70, 69, 99, 80, 76, 92, 77, 72, 81, 70, 64, 89, 82, 74, 117, 114, 107, 141, 143, 138, 185, 190, 193, 212, 221, 226, 227, 236, 241, 225, 234, 239, 229, 236, 242, 232, 239, 245, 230, 237, 243, 232, 239, 245, 232, 239, 245, 232, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 241, 246, 250, 241, 246, 250, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 233, 236, 243, 233, 236, 243, 233, 236, 243, 233, 236, 243, 233, 236, 243, 233, 236, 243, 233, 236, 243, 233, 236, 243, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 238, 229, 234, 240, 229, 234, 240, 228, 233, 239, 228, 233, 239, 226, 233, 239, 226, 233, 239, 225, 232, 240, 224, 231, 239, 224, 231, 239, 224, 231, 239, 222, 231, 238, 222, 231, 238, 222, 231, 238, 221, 230, 237, 224, 231, 239, 224, 231, 239, 224, 231, 239, 223, 230, 238, 223, 230, 238, 223, 230, 238, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 223, 230, 238, 223, 230, 238, 223, 230, 238, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 229, 236, 244, 229, 236, 244, 228, 235, 243, 228, 235, 243, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 244, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 232, 236, 245, 230, 237, 245, 230, 237, 245, 229, 236, 244, 229, 236, 244, 229, 236, 242, 228, 237, 242, 232, 240, 243, 225, 226, 228, 198, 197, 193, 178, 171, 165, 164, 155, 146, 152, 139, 131, 139, 126, 118, 129, 118, 112, 101, 92, 87, 72, 62, 60, 32, 22, 20, 86, 75, 73, 91, 80, 78, 57, 42, 39, 29, 14, 9, 40, 25, 22, 31, 16, 13, 56, 41, 36, 71, 56, 51, 58, 43, 38, 72, 54, 50, 86, 68, 64, 65, 47, 43, 50, 31, 25, 62, 43, 37, 63, 44, 38, 54, 35, 29, 56, 35, 30, 67, 46, 41, 68, 47, 42, 57, 36, 31, 64, 43, 38, 74, 53, 48, 74, 53, 48, 65, 44, 39, 67, 46, 41, 80, 59, 54, 87, 66, 61, 83, 62, 57, 78, 57, 52, 79, 58, 53, 76, 55, 50, 69, 48, 43, 63, 42, 37, 69, 48, 43, 85, 64, 59, 100, 79, 74, 103, 82, 79, 108, 87, 84, 109, 88, 85, 103, 82, 79, 94, 70, 68, 86, 62, 60, 86, 62, 60, 89, 65, 63, 94, 70, 68, 95, 71, 69, 95, 71, 69, 95, 71, 69, 92, 68, 66, 87, 63, 61, 84, 58, 57, 80, 56, 54, 84, 60, 58, 79, 55, 53, 82, 58, 56, 90, 69, 66, 95, 74, 71, 92, 71, 68, 95, 74, 71, 103, 82, 79, 116, 95, 92, 115, 94, 91, 114, 93, 90, 113, 92, 89, 112, 91, 88, 110, 89, 86, 109, 88, 85, 112, 87, 83, 116, 87, 81, 118, 85, 78, 115, 82, 75, 112, 78, 69, 108, 74, 65, 106, 69, 60, 104, 66, 57, 102, 64, 53, 100, 60, 50, 102, 62, 52, 105, 65, 55, 107, 67, 57, 106, 68, 57, 102, 64, 55, 99, 61, 52, 96, 58, 49, 99, 63, 49, 100, 66, 54, 104, 70, 60, 106, 73, 66, 101, 72, 68, 93, 65, 62, 84, 56, 55, 75, 49, 48, 90, 66, 64, 117, 96, 93, 123, 104, 100, 92, 77, 72, 71, 60, 54, 92, 85, 79, 127, 124, 117, 145, 146, 141, 181, 187, 187, 211, 221, 223, 227, 237, 239, 225, 234, 239, 228, 235, 241, 232, 239, 247, 231, 238, 246, 232, 239, 247, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 241, 246, 250, 241, 246, 250, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 227, 234, 240, 227, 234, 240, 227, 234, 242, 226, 233, 241, 226, 233, 241, 226, 233, 241, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 224, 231, 239, 224, 231, 239, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 223, 230, 238, 223, 230, 238, 223, 230, 238, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 239, 248, 235, 239, 248, 235, 240, 246, 234, 239, 245, 235, 238, 243, 234, 238, 241, 234, 237, 242, 234, 237, 242, 236, 241, 247, 236, 240, 249, 230, 237, 247, 225, 234, 243, 225, 235, 244, 228, 238, 247, 225, 238, 246, 223, 232, 237, 241, 245, 248, 223, 223, 223, 222, 221, 219, 185, 182, 177, 171, 164, 158, 152, 143, 134, 154, 141, 133, 113, 100, 92, 105, 92, 84, 107, 94, 88, 35, 22, 16, 32, 21, 17, 91, 80, 78, 71, 60, 58, 33, 21, 21, 34, 20, 19, 29, 14, 11, 64, 46, 42, 74, 56, 52, 63, 45, 41, 65, 47, 43, 72, 53, 49, 63, 44, 40, 50, 31, 27, 62, 41, 36, 68, 47, 42, 67, 46, 41, 58, 37, 32, 56, 33, 27, 66, 43, 37, 79, 56, 50, 85, 62, 56, 100, 77, 71, 80, 57, 51, 68, 45, 39, 70, 47, 41, 64, 43, 38, 58, 37, 32, 68, 47, 42, 87, 66, 61, 76, 57, 53, 73, 54, 50, 69, 50, 46, 70, 51, 47, 76, 57, 53, 88, 69, 65, 100, 81, 77, 107, 88, 84, 106, 87, 83, 101, 82, 78, 94, 75, 71, 91, 72, 68, 94, 73, 70, 98, 77, 74, 101, 80, 77, 102, 81, 78, 89, 65, 63, 94, 70, 68, 91, 65, 64, 80, 54, 53, 78, 52, 51, 86, 60, 59, 91, 63, 62, 85, 59, 58, 86, 60, 59, 87, 61, 60, 91, 65, 64, 96, 72, 70, 104, 80, 80, 114, 90, 90, 121, 100, 99, 125, 104, 103, 114, 93, 92, 114, 93, 92, 114, 93, 90, 115, 94, 91, 117, 93, 89, 117, 93, 89, 117, 93, 89, 118, 93, 88, 128, 97, 92, 124, 89, 83, 117, 82, 76, 116, 79, 71, 116, 79, 71, 117, 79, 70, 114, 76, 65, 111, 71, 59, 107, 65, 53, 108, 66, 54, 106, 66, 54, 108, 68, 56, 110, 70, 58, 113, 73, 63, 115, 77, 66, 117, 79, 68, 111, 75, 63, 103, 69, 59, 98, 64, 55, 94, 61, 52, 92, 61, 56, 88, 59, 53, 80, 52, 48, 72, 47, 43, 77, 53, 49, 97, 78, 74, 110, 92, 88, 107, 93, 90, 101, 90, 86, 94, 86, 83, 102, 97, 93, 121, 120, 116, 161, 167, 165, 199, 209, 208, 225, 235, 236, 227, 237, 239, 228, 237, 244, 230, 237, 247, 228, 235, 245, 231, 235, 246, 235, 238, 247, 235, 238, 245, 236, 239, 246, 236, 239, 244, 235, 240, 244, 236, 241, 245, 234, 241, 247, 234, 241, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 230, 237, 245, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 227, 234, 242, 227, 234, 242, 227, 234, 242, 226, 233, 241, 226, 233, 241, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 224, 231, 239, 224, 231, 239, 224, 231, 239, 223, 230, 238, 223, 230, 238, 223, 230, 238, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 223, 230, 238, 223, 230, 238, 223, 230, 238, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 239, 250, 235, 239, 248, 235, 239, 248, 234, 239, 243, 235, 238, 243, 234, 238, 241, 234, 238, 241, 234, 237, 242, 235, 240, 246, 233, 240, 248, 230, 237, 247, 225, 233, 244, 225, 235, 245, 227, 240, 248, 226, 239, 247, 223, 234, 238, 233, 234, 236, 219, 218, 214, 214, 211, 206, 169, 164, 158, 154, 147, 141, 130, 121, 114, 142, 129, 121, 128, 115, 107, 114, 99, 92, 88, 73, 66, 27, 14, 8, 35, 22, 16, 64, 53, 51, 39, 28, 26, 23, 13, 12, 35, 23, 23, 52, 34, 32, 57, 38, 34, 63, 44, 40, 75, 56, 52, 82, 63, 59, 67, 48, 44, 53, 34, 30, 58, 39, 35, 69, 48, 43, 59, 38, 33, 58, 37, 32, 65, 44, 39, 65, 42, 36, 61, 38, 32, 77, 54, 48, 102, 79, 73, 87, 64, 58, 84, 61, 55, 73, 50, 44, 62, 39, 33, 63, 42, 37, 74, 53, 48, 74, 53, 48, 66, 45, 40, 69, 50, 46, 72, 53, 49, 75, 56, 52, 81, 62, 58, 88, 69, 65, 99, 80, 76, 111, 92, 88, 118, 99, 95, 103, 85, 81, 100, 82, 78, 97, 78, 74, 95, 76, 72, 94, 75, 71, 92, 73, 69, 89, 68, 65, 86, 65, 62, 87, 63, 61, 87, 63, 61, 87, 61, 60, 85, 59, 58, 89, 63, 62, 96, 68, 67, 95, 67, 66, 89, 61, 60, 90, 64, 63, 98, 72, 71, 110, 86, 84, 119, 95, 93, 121, 97, 97, 116, 95, 94, 111, 90, 89, 108, 87, 86, 114, 93, 92, 114, 93, 92, 114, 93, 90, 115, 91, 89, 115, 91, 87, 115, 90, 86, 115, 90, 85, 117, 90, 83, 124, 91, 86, 120, 85, 79, 115, 78, 70, 112, 75, 67, 112, 74, 65, 111, 73, 62, 109, 69, 59, 106, 66, 54, 105, 63, 51, 105, 63, 51, 102, 63, 48, 103, 64, 49, 104, 64, 52, 106, 66, 54, 106, 68, 55, 108, 70, 57, 108, 71, 62, 106, 72, 62, 105, 71, 62, 104, 70, 61, 100, 67, 60, 92, 62, 54, 83, 54, 50, 74, 49, 44, 77, 53, 49, 101, 82, 76, 115, 97, 95, 107, 93, 90, 97, 86, 84, 91, 81, 79, 101, 93, 91, 119, 118, 114, 158, 164, 160, 195, 206, 202, 221, 231, 230, 224, 234, 236, 225, 234, 241, 227, 236, 245, 229, 235, 247, 236, 240, 251, 235, 238, 247, 237, 237, 245, 238, 238, 246, 236, 239, 244, 236, 239, 244, 234, 242, 245, 234, 241, 247, 233, 242, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 227, 234, 242, 227, 234, 242, 226, 233, 241, 226, 233, 241, 226, 233, 241, 225, 232, 240, 225, 232, 240, 225, 232, 240, 224, 231, 239, 224, 231, 239, 224, 231, 239, 223, 230, 238, 223, 230, 238, 223, 230, 238, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 223, 230, 238, 223, 230, 238, 223, 230, 238, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 239, 250, 235, 239, 248, 235, 239, 248, 234, 239, 243, 234, 239, 243, 233, 238, 241, 233, 238, 242, 233, 238, 242, 233, 238, 244, 232, 239, 247, 230, 237, 247, 226, 235, 244, 227, 237, 246, 229, 242, 250, 227, 240, 248, 225, 235, 237, 231, 233, 232, 216, 215, 211, 201, 198, 193, 161, 156, 150, 158, 151, 145, 128, 119, 112, 136, 123, 115, 141, 128, 120, 130, 115, 108, 75, 60, 53, 42, 29, 23, 64, 51, 45, 57, 46, 44, 28, 17, 15, 33, 23, 22, 44, 33, 31, 55, 37, 35, 64, 45, 41, 72, 53, 49, 82, 63, 59, 80, 61, 57, 60, 41, 37, 51, 32, 28, 64, 45, 41, 58, 37, 32, 68, 47, 42, 63, 42, 37, 50, 29, 24, 62, 39, 33, 90, 67, 61, 98, 75, 69, 85, 62, 56, 73, 50, 44, 74, 51, 45, 68, 45, 39, 65, 42, 36, 74, 53, 48, 88, 67, 62, 81, 60, 55, 64, 43, 38, 68, 49, 45, 77, 58, 54, 88, 69, 65, 95, 76, 72, 98, 79, 75, 99, 80, 76, 103, 84, 80, 106, 87, 83, 93, 74, 70, 92, 73, 69, 93, 72, 69, 93, 72, 69, 93, 72, 69, 88, 67, 64, 82, 61, 58, 77, 56, 53, 85, 61, 59, 81, 57, 55, 83, 59, 57, 91, 67, 65, 99, 75, 73, 99, 73, 72, 97, 71, 70, 96, 70, 69, 108, 84, 82, 111, 90, 87, 116, 95, 94, 115, 95, 94, 112, 92, 91, 110, 90, 89, 111, 91, 92, 114, 94, 95, 114, 93, 92, 114, 93, 92, 115, 91, 89, 114, 88, 87, 113, 88, 84, 113, 85, 82, 112, 84, 80, 112, 83, 77, 109, 76, 71, 107, 72, 66, 106, 69, 61, 105, 68, 60, 108, 70, 61, 109, 71, 60, 110, 70, 60, 108, 68, 56, 105, 63, 51, 104, 62, 50, 100, 61, 46, 99, 60, 45, 98, 58, 46, 98, 58, 46, 98, 60, 47, 98, 60, 47, 101, 64, 55, 106, 69, 60, 108, 74, 65, 107, 73, 64, 100, 67, 60, 90, 60, 52, 81, 52, 48, 76, 48, 44, 78, 53, 49, 96, 75, 70, 101, 81, 80, 88, 73, 70, 84, 70, 69, 84, 74, 72, 99, 89, 88, 116, 112, 109, 150, 155, 149, 187, 196, 191, 216, 226, 225, 222, 232, 234, 224, 233, 238, 225, 234, 241, 230, 237, 247, 241, 245, 255, 235, 238, 247, 237, 237, 245, 238, 238, 246, 236, 239, 244, 236, 239, 244, 234, 242, 245, 234, 241, 247, 233, 242, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 225, 232, 240, 225, 232, 240, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 223, 230, 238, 223, 230, 238, 223, 230, 238, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 223, 230, 238, 223, 230, 238, 223, 230, 238, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 239, 250, 235, 239, 248, 235, 239, 248, 234, 239, 243, 234, 239, 243, 233, 238, 241, 233, 238, 242, 233, 238, 242, 231, 235, 244, 231, 238, 246, 230, 237, 247, 227, 236, 245, 229, 238, 247, 231, 242, 248, 229, 240, 246, 225, 235, 237, 229, 231, 230, 209, 205, 202, 185, 180, 176, 155, 150, 146, 172, 163, 158, 135, 126, 119, 129, 116, 110, 135, 122, 114, 127, 112, 105, 64, 49, 42, 63, 50, 44, 93, 79, 76, 61, 50, 48, 37, 26, 24, 47, 35, 35, 37, 26, 24, 38, 20, 18, 84, 65, 61, 100, 81, 77, 75, 56, 52, 56, 37, 33, 56, 37, 33, 59, 40, 36, 62, 43, 39, 57, 36, 31, 69, 48, 43, 64, 43, 38, 53, 32, 27, 76, 53, 47, 109, 86, 80, 100, 77, 71, 64, 41, 35, 67, 44, 38, 58, 35, 29, 61, 38, 32, 79, 56, 50, 91, 70, 65, 91, 70, 65, 89, 68, 63, 89, 68, 63, 77, 58, 54, 86, 67, 63, 95, 76, 72, 97, 78, 74, 91, 72, 68, 84, 65, 61, 80, 61, 57, 79, 60, 56, 92, 73, 69, 89, 68, 65, 85, 64, 61, 82, 61, 58, 80, 59, 56, 78, 57, 54, 75, 54, 51, 72, 51, 48, 87, 63, 61, 83, 59, 57, 87, 63, 61, 98, 74, 72, 101, 77, 75, 97, 73, 71, 100, 76, 74, 107, 86, 83, 113, 94, 90, 113, 95, 91, 112, 94, 92, 107, 89, 87, 103, 85, 83, 105, 87, 85, 113, 95, 95, 122, 102, 103, 114, 93, 92, 113, 92, 91, 114, 88, 89, 112, 86, 85, 111, 83, 82, 110, 80, 78, 108, 78, 76, 108, 77, 74, 105, 72, 67, 105, 70, 64, 105, 68, 60, 104, 67, 59, 105, 67, 58, 104, 66, 55, 105, 65, 55, 104, 64, 52, 110, 68, 56, 109, 67, 55, 104, 65, 50, 101, 62, 47, 99, 59, 47, 98, 58, 46, 96, 58, 45, 96, 58, 45, 95, 58, 49, 100, 63, 54, 105, 68, 60, 101, 67, 58, 93, 58, 52, 84, 51, 44, 77, 46, 41, 75, 46, 42, 78, 53, 49, 79, 55, 51, 66, 47, 43, 61, 43, 41, 74, 60, 59, 89, 78, 76, 101, 89, 89, 109, 104, 101, 139, 141, 136, 175, 184, 179, 209, 218, 217, 222, 232, 234, 227, 236, 241, 226, 235, 242, 228, 235, 245, 240, 244, 255, 235, 238, 247, 237, 237, 245, 238, 238, 246, 236, 239, 244, 236, 239, 244, 234, 242, 245, 234, 241, 247, 233, 242, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 226, 233, 241, 226, 233, 241, 225, 232, 240, 225, 232, 240, 225, 232, 240, 224, 231, 239, 224, 231, 239, 224, 231, 239, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 222, 229, 237, 222, 229, 237, 222, 229, 237, 221, 228, 236, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 223, 230, 238, 223, 230, 238, 223, 230, 238, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 239, 250, 235, 239, 248, 235, 239, 248, 234, 239, 243, 234, 239, 243, 233, 238, 241, 233, 238, 242, 233, 238, 242, 228, 235, 243, 230, 237, 245, 230, 237, 247, 227, 236, 245, 229, 238, 245, 231, 240, 247, 228, 237, 242, 223, 231, 233, 217, 217, 215, 196, 192, 189, 173, 168, 164, 143, 138, 134, 158, 149, 144, 118, 109, 102, 116, 103, 97, 129, 116, 110, 95, 82, 76, 40, 27, 21, 57, 43, 40, 78, 64, 61, 44, 30, 29, 37, 26, 24, 45, 33, 33, 20, 6, 5, 39, 21, 19, 92, 73, 69, 103, 84, 80, 63, 44, 40, 44, 25, 21, 57, 38, 34, 63, 44, 40, 57, 38, 34, 69, 48, 43, 54, 33, 28, 60, 39, 34, 89, 68, 63, 101, 78, 72, 83, 60, 54, 70, 47, 41, 73, 50, 44, 67, 44, 38, 66, 43, 37, 73, 50, 44, 85, 62, 56, 92, 71, 66, 94, 73, 68, 97, 76, 71, 102, 81, 76, 85, 66, 62, 86, 67, 63, 85, 66, 62, 80, 61, 57, 75, 56, 52, 74, 55, 51, 78, 59, 55, 82, 63, 59, 99, 78, 75, 92, 68, 66, 80, 56, 54, 71, 47, 45, 68, 44, 42, 70, 46, 44, 71, 50, 47, 73, 52, 49, 88, 67, 64, 88, 67, 64, 93, 72, 69, 100, 79, 76, 97, 76, 73, 92, 71, 68, 103, 82, 79, 120, 101, 97, 107, 92, 89, 110, 96, 93, 115, 100, 97, 114, 99, 96, 111, 95, 95, 107, 91, 91, 109, 91, 91, 112, 92, 93, 112, 90, 92, 111, 90, 89, 112, 86, 87, 111, 83, 82, 110, 80, 80, 108, 77, 75, 106, 75, 73, 107, 73, 71, 113, 78, 74, 113, 78, 72, 112, 75, 67, 108, 71, 63, 104, 66, 57, 99, 61, 50, 97, 57, 47, 96, 56, 44, 114, 74, 62, 112, 72, 60, 110, 71, 56, 107, 68, 53, 103, 65, 52, 101, 63, 50, 100, 62, 49, 100, 62, 49, 97, 59, 50, 99, 62, 53, 100, 63, 55, 94, 60, 51, 87, 52, 46, 80, 47, 40, 79, 46, 41, 79, 48, 45, 78, 50, 47, 63, 38, 34, 46, 25, 22, 60, 40, 39, 95, 79, 79, 112, 98, 97, 109, 95, 94, 103, 95, 92, 129, 130, 124, 165, 172, 165, 201, 210, 207, 222, 230, 232, 232, 241, 246, 228, 237, 244, 226, 233, 243, 235, 239, 250, 235, 238, 247, 235, 238, 245, 238, 238, 246, 236, 239, 244, 236, 239, 244, 234, 242, 245, 234, 241, 247, 233, 242, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 226, 233, 241, 225, 232, 240, 225, 232, 240, 225, 232, 240, 224, 231, 239, 224, 231, 239, 224, 231, 239, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 222, 229, 237, 222, 229, 237, 221, 228, 236, 221, 228, 236, 221, 228, 236, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 223, 230, 238, 223, 230, 238, 223, 230, 238, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 239, 248, 235, 239, 248, 235, 240, 246, 234, 239, 245, 234, 239, 243, 233, 238, 241, 233, 238, 242, 233, 238, 244, 228, 235, 243, 231, 238, 246, 230, 237, 247, 228, 235, 245, 229, 236, 244, 229, 238, 243, 226, 234, 237, 221, 227, 227, 207, 206, 204, 190, 187, 182, 177, 172, 168, 138, 130, 127, 127, 118, 113, 90, 81, 76, 107, 96, 90, 133, 120, 114, 66, 53, 47, 28, 15, 9, 45, 31, 28, 49, 35, 32, 23, 9, 8, 35, 21, 20, 46, 32, 32, 29, 15, 14, 65, 47, 45, 83, 64, 60, 78, 59, 55, 57, 38, 34, 53, 34, 30, 57, 38, 34, 58, 39, 35, 59, 40, 36, 58, 37, 32, 66, 45, 40, 85, 64, 59, 96, 75, 70, 86, 63, 57, 65, 42, 36, 63, 40, 34, 75, 52, 46, 68, 45, 39, 87, 64, 58, 93, 70, 64, 81, 58, 52, 80, 59, 54, 97, 76, 71, 99, 78, 73, 86, 65, 60, 84, 65, 61, 77, 58, 54, 68, 49, 45, 64, 45, 41, 68, 49, 45, 81, 62, 58, 96, 77, 73, 106, 85, 82, 87, 63, 61, 79, 55, 53, 70, 46, 44, 67, 43, 41, 71, 47, 45, 80, 56, 54, 86, 65, 62, 92, 71, 68, 90, 69, 66, 93, 72, 69, 98, 77, 74, 99, 80, 76, 97, 78, 74, 98, 79, 75, 111, 92, 88, 125, 107, 103, 119, 105, 102, 116, 102, 99, 113, 99, 96, 109, 95, 92, 108, 94, 93, 108, 92, 92, 110, 92, 92, 110, 92, 92, 109, 89, 90, 109, 87, 89, 109, 85, 85, 108, 82, 83, 108, 78, 78, 107, 75, 76, 105, 74, 72, 106, 72, 70, 105, 70, 66, 108, 73, 67, 112, 75, 67, 111, 74, 66, 108, 70, 61, 105, 67, 56, 106, 66, 56, 107, 67, 55, 113, 73, 61, 112, 72, 60, 110, 71, 56, 108, 69, 54, 105, 67, 54, 104, 66, 53, 104, 66, 53, 104, 66, 53, 103, 65, 56, 103, 65, 56, 101, 64, 56, 97, 60, 52, 92, 55, 49, 86, 51, 45, 85, 50, 46, 85, 52, 47, 75, 45, 43, 60, 32, 29, 56, 32, 30, 90, 69, 66, 128, 110, 108, 128, 112, 112, 110, 94, 94, 102, 92, 90, 127, 126, 121, 157, 162, 156, 191, 197, 195, 217, 225, 227, 234, 241, 247, 230, 239, 246, 224, 231, 241, 229, 236, 246, 234, 238, 247, 235, 238, 245, 238, 238, 246, 236, 239, 244, 235, 240, 244, 236, 241, 245, 234, 241, 247, 234, 241, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 228, 233, 239, 228, 233, 239, 225, 232, 240, 225, 232, 240, 225, 232, 240, 224, 231, 239, 224, 231, 239, 224, 231, 239, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 222, 229, 237, 222, 229, 237, 222, 229, 237, 221, 228, 236, 221, 228, 236, 221, 228, 236, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 223, 230, 238, 223, 230, 238, 223, 230, 238, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 239, 248, 236, 239, 248, 235, 240, 246, 234, 239, 245, 234, 239, 243, 233, 238, 242, 231, 238, 244, 231, 238, 244, 229, 236, 244, 231, 238, 246, 231, 238, 248, 228, 235, 245, 227, 234, 242, 227, 234, 240, 224, 229, 232, 217, 221, 220, 195, 194, 190, 180, 175, 171, 178, 170, 167, 134, 127, 121, 106, 97, 92, 73, 64, 59, 100, 89, 85, 113, 102, 98, 50, 36, 33, 33, 19, 16, 50, 36, 33, 44, 30, 27, 30, 15, 12, 43, 28, 25, 54, 38, 38, 68, 52, 52, 83, 65, 63, 78, 59, 55, 63, 44, 40, 56, 37, 33, 58, 39, 35, 55, 36, 32, 55, 36, 32, 67, 48, 44, 55, 34, 29, 87, 66, 61, 97, 76, 71, 72, 51, 46, 57, 34, 28, 67, 44, 38, 76, 53, 47, 70, 47, 41, 72, 49, 43, 89, 66, 60, 91, 68, 62, 78, 55, 49, 80, 59, 54, 96, 75, 70, 91, 70, 65, 69, 48, 43, 73, 54, 50, 68, 49, 45, 65, 46, 42, 70, 51, 47, 82, 63, 59, 92, 73, 69, 97, 78, 74, 99, 78, 75, 74, 50, 48, 74, 48, 47, 75, 49, 48, 79, 53, 52, 86, 62, 60, 93, 69, 67, 96, 75, 72, 98, 77, 74, 86, 67, 63, 90, 71, 67, 94, 75, 71, 96, 78, 74, 104, 86, 82, 115, 97, 93, 122, 104, 100, 120, 105, 100, 120, 105, 102, 112, 97, 94, 103, 87, 87, 101, 85, 85, 105, 89, 89, 110, 94, 94, 113, 94, 96, 111, 92, 94, 107, 87, 88, 107, 85, 87, 107, 83, 83, 107, 81, 82, 107, 79, 78, 106, 76, 76, 105, 74, 72, 105, 74, 71, 101, 68, 63, 105, 72, 65, 110, 76, 67, 111, 77, 68, 110, 73, 64, 109, 71, 60, 110, 70, 60, 112, 72, 60, 105, 65, 53, 104, 64, 52, 103, 64, 49, 102, 63, 48, 101, 63, 50, 101, 63, 50, 101, 65, 51, 101, 65, 51, 105, 67, 58, 104, 66, 57, 102, 64, 55, 101, 64, 55, 100, 63, 55, 94, 59, 53, 88, 53, 49, 83, 50, 45, 73, 42, 40, 66, 36, 34, 76, 50, 49, 115, 91, 89, 133, 113, 112, 111, 93, 91, 98, 80, 80, 108, 97, 95, 134, 131, 124, 155, 158, 151, 181, 186, 182, 209, 215, 215, 231, 239, 242, 231, 238, 244, 225, 232, 240, 228, 235, 243, 234, 238, 247, 234, 239, 245, 236, 239, 246, 236, 239, 244, 235, 240, 246, 236, 241, 247, 234, 241, 249, 234, 241, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 228, 233, 239, 228, 233, 239, 225, 232, 240, 225, 232, 240, 225, 232, 240, 224, 231, 239, 224, 231, 239, 224, 231, 239, 223, 230, 238, 223, 230, 238, 223, 230, 238, 222, 229, 237, 222, 229, 237, 222, 229, 237, 221, 228, 236, 221, 228, 236, 221, 228, 236, 221, 228, 236, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 223, 230, 238, 223, 230, 238, 223, 230, 238, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 239, 248, 236, 239, 248, 235, 240, 246, 234, 239, 245, 234, 239, 243, 231, 239, 242, 231, 238, 244, 231, 238, 244, 229, 236, 244, 231, 238, 246, 231, 238, 248, 228, 235, 243, 228, 233, 239, 227, 232, 236, 221, 227, 227, 216, 218, 217, 181, 177, 174, 160, 152, 149, 162, 155, 149, 125, 118, 112, 95, 86, 81, 65, 56, 51, 85, 74, 70, 77, 66, 62, 40, 26, 23, 39, 25, 22, 60, 46, 43, 54, 40, 37, 46, 31, 28, 50, 35, 32, 58, 42, 42, 98, 80, 78, 82, 63, 59, 83, 64, 60, 70, 51, 47, 54, 35, 31, 51, 32, 28, 52, 33, 29, 59, 40, 36, 75, 56, 52, 83, 62, 57, 82, 61, 56, 74, 53, 48, 62, 41, 36, 58, 35, 29, 63, 40, 34, 73, 50, 44, 80, 57, 51, 76, 53, 47, 73, 50, 44, 74, 51, 45, 82, 59, 53, 90, 69, 64, 91, 70, 65, 79, 58, 53, 66, 45, 40, 64, 45, 41, 66, 47, 43, 75, 56, 52, 89, 70, 66, 99, 80, 76, 97, 78, 74, 82, 63, 59, 68, 47, 44, 83, 59, 57, 87, 61, 60, 91, 65, 64, 96, 70, 69, 97, 73, 71, 94, 70, 68, 85, 64, 61, 80, 59, 56, 83, 64, 60, 87, 68, 64, 88, 70, 66, 94, 76, 72, 113, 95, 91, 131, 113, 109, 128, 113, 108, 115, 100, 95, 92, 74, 72, 92, 74, 72, 98, 80, 80, 111, 93, 93, 122, 104, 104, 122, 104, 104, 109, 90, 92, 97, 78, 80, 105, 85, 86, 105, 85, 86, 104, 83, 82, 105, 81, 81, 105, 79, 78, 105, 77, 76, 105, 75, 73, 104, 75, 71, 116, 83, 78, 118, 85, 78, 120, 86, 77, 115, 81, 72, 107, 70, 61, 99, 63, 51, 96, 58, 47, 97, 57, 45, 97, 57, 45, 96, 56, 44, 96, 57, 42, 96, 57, 42, 96, 58, 45, 97, 59, 46, 97, 61, 47, 98, 62, 48, 102, 64, 53, 101, 63, 54, 101, 63, 54, 104, 66, 57, 104, 67, 59, 100, 63, 55, 89, 52, 46, 79, 44, 40, 73, 39, 37, 70, 40, 38, 88, 60, 59, 119, 93, 92, 116, 95, 94, 82, 62, 61, 82, 62, 63, 117, 103, 100, 141, 136, 130, 155, 156, 150, 175, 177, 174, 202, 206, 207, 228, 233, 237, 231, 238, 244, 226, 233, 241, 230, 237, 245, 234, 238, 247, 234, 239, 245, 236, 239, 246, 236, 239, 244, 235, 240, 246, 236, 241, 247, 234, 241, 249, 234, 241, 247, 237, 242, 248, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 226, 233, 241, 225, 232, 240, 225, 232, 240, 225, 232, 240, 224, 231, 239, 224, 231, 239, 224, 231, 239, 223, 230, 238, 224, 231, 239, 224, 231, 239, 223, 230, 238, 223, 230, 238, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 223, 230, 238, 223, 230, 238, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 225, 232, 238, 225, 232, 238, 226, 233, 239, 226, 233, 239, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 235, 238, 247, 235, 238, 247, 234, 239, 245, 234, 239, 245, 231, 239, 242, 231, 239, 242, 230, 237, 243, 229, 238, 243, 233, 240, 248, 233, 240, 250, 231, 235, 244, 228, 232, 241, 234, 237, 242, 234, 238, 241, 214, 218, 217, 191, 191, 189, 174, 169, 165, 166, 157, 152, 131, 122, 117, 98, 89, 84, 85, 76, 71, 76, 67, 62, 62, 51, 49, 56, 45, 43, 29, 18, 16, 44, 33, 31, 59, 45, 42, 50, 36, 33, 45, 30, 27, 66, 51, 48, 81, 63, 61, 66, 48, 46, 65, 46, 42, 64, 45, 41, 58, 39, 35, 51, 32, 28, 52, 33, 29, 61, 42, 38, 69, 50, 46, 71, 52, 48, 74, 53, 48, 69, 48, 43, 79, 58, 53, 60, 39, 34, 54, 31, 25, 63, 40, 34, 54, 31, 25, 64, 41, 35, 89, 66, 60, 75, 52, 46, 68, 45, 39, 73, 50, 44, 73, 52, 47, 65, 44, 39, 56, 35, 30, 54, 33, 28, 61, 42, 38, 74, 55, 51, 88, 69, 65, 91, 72, 68, 87, 68, 64, 86, 67, 63, 94, 75, 71, 104, 83, 80, 89, 65, 65, 81, 55, 56, 79, 53, 54, 88, 62, 63, 93, 69, 69, 92, 68, 68, 92, 71, 70, 98, 77, 76, 107, 87, 86, 97, 77, 76, 107, 89, 87, 134, 116, 114, 132, 117, 114, 105, 90, 87, 94, 79, 76, 106, 88, 86, 99, 79, 78, 112, 91, 90, 124, 104, 103, 127, 107, 106, 120, 100, 101, 114, 94, 95, 114, 94, 95, 118, 98, 99, 116, 96, 97, 114, 94, 95, 113, 92, 91, 114, 90, 90, 115, 91, 89, 118, 92, 91, 121, 96, 92, 125, 97, 93, 118, 87, 82, 114, 81, 74, 106, 72, 63, 96, 62, 53, 92, 55, 46, 89, 53, 41, 90, 52, 41, 91, 53, 40, 88, 48, 36, 91, 51, 39, 94, 57, 41, 96, 59, 43, 96, 58, 45, 96, 58, 45, 97, 61, 47, 98, 62, 48, 100, 62, 51, 100, 62, 51, 101, 63, 54, 104, 66, 57, 104, 65, 58, 100, 63, 55, 93, 56, 50, 86, 51, 47, 74, 40, 38, 95, 64, 62, 104, 74, 74, 103, 77, 76, 104, 80, 80, 90, 69, 68, 81, 60, 59, 86, 71, 68, 96, 89, 83, 125, 125, 117, 170, 172, 167, 204, 208, 207, 220, 225, 228, 223, 230, 236, 226, 235, 242, 230, 237, 245, 234, 239, 245, 234, 239, 245, 235, 238, 245, 235, 238, 245, 235, 240, 246, 235, 240, 246, 234, 241, 249, 234, 241, 247, 237, 242, 248, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 226, 233, 241, 225, 232, 240, 225, 232, 240, 225, 232, 240, 224, 231, 239, 224, 231, 239, 224, 231, 239, 223, 230, 238, 224, 231, 239, 224, 231, 239, 223, 230, 238, 223, 230, 238, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 223, 230, 238, 223, 230, 238, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 225, 232, 238, 225, 232, 238, 226, 233, 239, 226, 233, 239, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 235, 238, 247, 235, 238, 247, 235, 238, 245, 234, 239, 245, 231, 239, 242, 231, 239, 242, 229, 238, 243, 229, 238, 245, 233, 240, 250, 230, 237, 247, 229, 233, 242, 229, 234, 240, 232, 235, 240, 227, 228, 230, 205, 207, 204, 184, 183, 179, 173, 166, 160, 152, 143, 138, 119, 110, 105, 97, 88, 83, 86, 77, 72, 63, 54, 49, 43, 32, 30, 41, 30, 28, 31, 20, 18, 61, 50, 48, 57, 43, 42, 34, 20, 17, 51, 36, 33, 76, 61, 58, 73, 55, 53, 58, 40, 38, 67, 48, 44, 64, 45, 41, 57, 38, 34, 50, 31, 27, 53, 34, 30, 63, 44, 40, 69, 50, 46, 70, 51, 47, 68, 47, 42, 62, 41, 36, 69, 48, 43, 54, 33, 28, 54, 31, 25, 68, 45, 39, 64, 41, 35, 73, 50, 44, 77, 54, 48, 68, 45, 39, 64, 41, 35, 65, 42, 36, 62, 41, 36, 57, 36, 31, 59, 38, 33, 65, 44, 39, 74, 55, 51, 88, 69, 65, 104, 85, 81, 108, 89, 85, 99, 80, 76, 85, 66, 62, 76, 57, 53, 74, 53, 50, 86, 62, 62, 89, 65, 65, 99, 73, 74, 107, 83, 83, 104, 80, 80, 94, 73, 72, 95, 74, 73, 102, 81, 80, 98, 78, 77, 112, 92, 91, 128, 110, 108, 131, 113, 111, 111, 96, 93, 90, 75, 72, 85, 70, 67, 94, 76, 74, 115, 94, 93, 120, 96, 96, 122, 98, 98, 115, 94, 93, 108, 86, 88, 103, 83, 84, 106, 86, 87, 110, 90, 91, 108, 88, 89, 113, 93, 92, 120, 99, 98, 125, 104, 101, 128, 104, 102, 124, 100, 96, 118, 94, 90, 115, 90, 85, 116, 85, 80, 114, 81, 74, 109, 75, 66, 102, 68, 59, 96, 59, 50, 88, 52, 40, 84, 46, 35, 81, 43, 30, 86, 46, 34, 89, 49, 37, 91, 54, 38, 93, 56, 40, 94, 56, 43, 96, 58, 45, 98, 62, 48, 101, 65, 51, 102, 64, 53, 102, 64, 53, 103, 65, 56, 104, 66, 57, 104, 65, 58, 101, 62, 55, 94, 57, 51, 86, 51, 45, 80, 45, 43, 96, 65, 62, 103, 73, 71, 104, 76, 75, 102, 76, 77, 88, 64, 64, 75, 51, 51, 75, 57, 55, 109, 100, 93, 125, 122, 115, 155, 156, 151, 191, 193, 192, 217, 222, 225, 231, 239, 242, 233, 242, 247, 232, 241, 248, 232, 239, 245, 234, 239, 245, 235, 238, 245, 235, 238, 245, 235, 240, 246, 235, 240, 246, 236, 240, 249, 234, 241, 247, 237, 242, 248, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 226, 233, 241, 225, 232, 240, 225, 232, 240, 225, 232, 240, 224, 231, 239, 224, 231, 239, 224, 231, 239, 223, 230, 238, 224, 231, 239, 224, 231, 239, 223, 230, 238, 223, 230, 238, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 223, 230, 238, 223, 230, 238, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 225, 232, 238, 225, 232, 238, 226, 233, 239, 226, 233, 239, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 239, 245, 231, 238, 244, 231, 238, 244, 229, 238, 245, 229, 238, 245, 231, 240, 249, 226, 233, 243, 226, 230, 239, 232, 235, 242, 233, 234, 238, 217, 217, 217, 193, 194, 189, 179, 176, 171, 171, 164, 158, 143, 132, 126, 112, 101, 97, 103, 92, 88, 95, 85, 83, 66, 56, 54, 40, 30, 29, 41, 31, 30, 47, 35, 35, 67, 56, 54, 48, 34, 33, 35, 21, 20, 68, 53, 50, 79, 61, 59, 61, 42, 38, 64, 45, 41, 74, 55, 51, 68, 49, 45, 58, 39, 35, 50, 31, 27, 53, 34, 30, 61, 42, 38, 63, 44, 40, 61, 42, 38, 54, 33, 28, 51, 30, 25, 58, 37, 32, 55, 34, 29, 65, 42, 36, 83, 60, 54, 83, 60, 54, 88, 65, 59, 64, 41, 35, 62, 39, 33, 62, 39, 33, 62, 39, 33, 58, 37, 32, 59, 38, 33, 72, 51, 46, 86, 65, 60, 106, 87, 83, 102, 83, 79, 95, 76, 72, 87, 68, 64, 82, 63, 59, 84, 65, 61, 90, 71, 67, 96, 77, 73, 95, 74, 73, 92, 71, 70, 92, 68, 68, 91, 70, 69, 89, 68, 67, 90, 69, 68, 99, 78, 77, 109, 89, 88, 111, 91, 90, 127, 107, 106, 126, 108, 106, 103, 85, 83, 85, 67, 65, 90, 72, 70, 103, 85, 83, 110, 90, 89, 123, 99, 97, 119, 93, 92, 112, 86, 85, 106, 80, 79, 102, 78, 78, 101, 80, 79, 106, 85, 84, 109, 88, 87, 111, 90, 89, 115, 94, 93, 122, 101, 100, 126, 105, 102, 124, 103, 100, 116, 95, 90, 108, 84, 80, 103, 78, 73, 109, 78, 73, 112, 79, 72, 111, 78, 69, 108, 74, 65, 104, 67, 58, 94, 58, 46, 87, 49, 38, 81, 43, 30, 85, 47, 34, 87, 49, 36, 88, 51, 35, 89, 52, 36, 89, 53, 39, 92, 56, 42, 98, 62, 48, 102, 66, 52, 105, 67, 56, 104, 66, 55, 104, 66, 55, 105, 67, 58, 104, 67, 59, 101, 64, 56, 95, 58, 52, 88, 53, 47, 97, 62, 60, 103, 72, 69, 105, 75, 73, 105, 77, 74, 106, 80, 79, 100, 76, 74, 94, 70, 70, 95, 75, 74, 120, 109, 103, 120, 116, 107, 135, 134, 129, 171, 171, 169, 210, 214, 215, 234, 242, 245, 237, 246, 251, 231, 240, 245, 232, 239, 245, 232, 239, 245, 234, 239, 245, 234, 239, 245, 236, 239, 246, 235, 240, 246, 236, 240, 249, 236, 241, 247, 237, 242, 248, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 226, 233, 241, 225, 232, 240, 225, 232, 240, 225, 232, 240, 224, 231, 239, 224, 231, 239, 224, 231, 239, 223, 230, 238, 224, 231, 239, 224, 231, 239, 223, 230, 238, 223, 230, 238, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 223, 230, 238, 223, 230, 238, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 225, 232, 238, 225, 232, 238, 226, 233, 239, 226, 233, 239, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 237, 237, 245, 237, 237, 245, 235, 238, 245, 234, 239, 245, 231, 238, 244, 230, 239, 244, 229, 238, 245, 229, 238, 245, 230, 239, 248, 223, 232, 241, 227, 231, 240, 236, 239, 246, 232, 233, 237, 210, 209, 207, 186, 185, 181, 178, 173, 167, 162, 153, 146, 136, 125, 119, 105, 94, 90, 96, 85, 81, 96, 86, 84, 77, 67, 65, 55, 45, 44, 52, 42, 41, 66, 54, 54, 53, 41, 41, 39, 25, 24, 57, 41, 41, 83, 65, 63, 65, 47, 43, 53, 34, 30, 79, 60, 56, 77, 58, 54, 70, 51, 47, 59, 40, 36, 51, 32, 28, 51, 32, 28, 56, 37, 33, 54, 35, 31, 49, 30, 26, 54, 33, 28, 57, 36, 31, 64, 43, 38, 69, 48, 43, 81, 58, 52, 91, 68, 62, 85, 62, 56, 79, 56, 50, 58, 35, 29, 61, 38, 32, 65, 42, 36, 69, 46, 40, 70, 49, 44, 78, 57, 52, 92, 71, 66, 104, 83, 78, 93, 74, 70, 93, 74, 70, 93, 74, 70, 95, 76, 72, 96, 77, 73, 94, 75, 71, 91, 72, 68, 88, 69, 65, 95, 75, 74, 87, 67, 66, 81, 60, 59, 80, 60, 59, 86, 65, 64, 93, 73, 72, 102, 82, 81, 107, 87, 86, 125, 105, 104, 122, 102, 101, 105, 87, 85, 88, 70, 68, 92, 74, 72, 111, 93, 91, 123, 103, 102, 120, 99, 98, 112, 86, 85, 109, 81, 80, 105, 77, 76, 103, 77, 76, 108, 84, 84, 114, 90, 90, 115, 94, 93, 115, 94, 93, 119, 98, 97, 117, 96, 93, 115, 91, 89, 110, 86, 82, 105, 81, 77, 100, 77, 71, 97, 72, 67, 97, 70, 63, 102, 72, 64, 106, 73, 66, 108, 75, 66, 108, 75, 66, 106, 72, 62, 102, 66, 54, 97, 59, 48, 93, 55, 42, 88, 50, 37, 88, 50, 37, 87, 50, 34, 86, 49, 33, 85, 49, 35, 88, 52, 38, 94, 58, 44, 99, 63, 49, 107, 69, 58, 106, 68, 57, 105, 67, 56, 106, 68, 57, 105, 68, 59, 102, 65, 57, 97, 60, 54, 90, 55, 49, 101, 68, 63, 100, 69, 66, 100, 69, 67, 101, 73, 70, 110, 82, 81, 117, 91, 90, 123, 99, 99, 127, 108, 104, 119, 109, 100, 117, 110, 102, 127, 124, 119, 158, 158, 156, 200, 204, 205, 227, 235, 237, 233, 240, 246, 226, 235, 240, 232, 239, 245, 232, 239, 245, 234, 239, 245, 234, 239, 245, 236, 239, 246, 236, 239, 246, 236, 240, 249, 236, 240, 249, 237, 242, 248, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 226, 233, 241, 225, 232, 240, 225, 232, 240, 225, 232, 240, 224, 231, 239, 224, 231, 239, 224, 231, 239, 223, 230, 238, 224, 231, 239, 224, 231, 239, 223, 230, 238, 223, 230, 238, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 223, 230, 238, 223, 230, 238, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 225, 232, 238, 225, 232, 238, 226, 233, 239, 226, 233, 239, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 237, 237, 245, 237, 237, 245, 235, 238, 245, 234, 239, 245, 231, 238, 244, 230, 239, 244, 229, 238, 245, 228, 238, 247, 229, 237, 248, 224, 233, 242, 229, 233, 242, 236, 239, 244, 230, 230, 232, 205, 204, 200, 184, 181, 176, 178, 171, 163, 152, 141, 135, 136, 123, 115, 99, 88, 82, 78, 67, 63, 80, 70, 68, 78, 68, 66, 62, 52, 51, 53, 43, 42, 59, 49, 48, 37, 25, 25, 44, 30, 29, 69, 53, 53, 71, 53, 51, 54, 35, 31, 58, 37, 34, 77, 56, 51, 65, 46, 42, 63, 44, 40, 57, 38, 34, 52, 33, 29, 53, 34, 30, 57, 38, 34, 54, 35, 31, 48, 29, 25, 61, 40, 35, 70, 49, 44, 76, 55, 50, 83, 62, 57, 89, 66, 60, 83, 60, 54, 70, 47, 41, 53, 30, 24, 57, 34, 28, 62, 39, 33, 68, 45, 39, 77, 54, 48, 85, 64, 59, 96, 75, 70, 102, 81, 76, 104, 83, 78, 94, 75, 71, 90, 71, 67, 86, 67, 63, 84, 65, 61, 84, 65, 61, 82, 63, 59, 77, 58, 54, 73, 54, 50, 73, 53, 52, 83, 65, 65, 96, 76, 77, 101, 83, 83, 102, 82, 83, 102, 82, 83, 103, 83, 84, 103, 83, 84, 119, 99, 100, 108, 88, 89, 101, 81, 82, 108, 88, 89, 119, 99, 100, 120, 100, 101, 111, 89, 91, 100, 79, 78, 102, 76, 75, 101, 76, 72, 103, 78, 74, 109, 85, 81, 119, 95, 93, 123, 99, 97, 121, 97, 95, 117, 93, 91, 115, 91, 89, 111, 87, 85, 105, 79, 78, 99, 74, 70, 97, 69, 65, 96, 69, 62, 99, 70, 64, 100, 71, 63, 101, 71, 63, 101, 71, 63, 102, 69, 60, 100, 67, 58, 98, 64, 54, 96, 62, 50, 95, 59, 47, 94, 58, 44, 90, 52, 39, 90, 52, 39, 88, 51, 35, 86, 49, 33, 83, 47, 33, 85, 49, 35, 88, 55, 40, 92, 59, 44, 106, 70, 56, 105, 69, 55, 104, 68, 56, 104, 68, 56, 105, 68, 59, 103, 66, 58, 97, 62, 56, 94, 59, 53, 85, 52, 47, 84, 53, 50, 90, 59, 57, 96, 68, 65, 106, 78, 77, 116, 90, 89, 127, 103, 103, 128, 109, 105, 116, 103, 95, 119, 110, 101, 133, 128, 122, 162, 161, 157, 195, 199, 200, 217, 225, 227, 226, 233, 239, 224, 233, 238, 232, 239, 245, 232, 239, 245, 234, 239, 245, 234, 239, 245, 236, 239, 248, 236, 239, 248, 236, 240, 251, 236, 240, 249, 237, 242, 248, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 226, 233, 241, 225, 232, 240, 225, 232, 240, 225, 232, 240, 224, 231, 239, 224, 231, 239, 224, 231, 239, 223, 230, 238, 224, 231, 239, 224, 231, 239, 223, 230, 238, 223, 230, 238, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 223, 230, 238, 223, 230, 238, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 225, 232, 238, 225, 232, 238, 226, 233, 239, 226, 233, 239, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 237, 237, 245, 237, 237, 245, 235, 238, 245, 234, 239, 245, 231, 238, 244, 230, 239, 244, 228, 238, 247, 228, 238, 247, 227, 235, 246, 228, 235, 245, 232, 236, 245, 230, 233, 238, 219, 219, 219, 198, 194, 191, 178, 173, 167, 170, 163, 155, 154, 144, 135, 140, 127, 119, 103, 90, 84, 72, 61, 55, 72, 62, 60, 75, 65, 63, 65, 55, 54, 57, 47, 46, 35, 25, 24, 37, 27, 26, 56, 42, 41, 60, 45, 42, 48, 30, 28, 52, 33, 29, 63, 42, 37, 55, 34, 29, 45, 26, 22, 52, 33, 29, 56, 37, 33, 57, 38, 34, 59, 40, 36, 62, 43, 39, 61, 42, 38, 57, 38, 34, 53, 32, 27, 67, 46, 41, 70, 49, 44, 79, 58, 53, 83, 60, 54, 74, 51, 45, 68, 45, 39, 51, 28, 22, 59, 36, 30, 67, 44, 38, 75, 52, 46, 81, 58, 52, 88, 67, 62, 95, 74, 69, 94, 73, 68, 89, 68, 63, 92, 73, 69, 82, 63, 59, 68, 49, 45, 59, 40, 36, 60, 41, 37, 67, 48, 44, 76, 57, 53, 82, 63, 59, 67, 49, 49, 86, 70, 70, 105, 87, 87, 102, 84, 84, 92, 74, 74, 92, 74, 74, 104, 84, 85, 113, 93, 94, 119, 99, 100, 107, 87, 88, 103, 83, 84, 110, 90, 91, 110, 88, 90, 97, 75, 77, 91, 69, 71, 97, 76, 75, 107, 83, 81, 107, 83, 79, 108, 84, 80, 113, 89, 85, 118, 94, 92, 118, 94, 92, 112, 88, 86, 106, 82, 80, 98, 74, 72, 99, 74, 70, 101, 73, 70, 103, 74, 70, 104, 73, 68, 105, 74, 69, 107, 74, 67, 108, 75, 68, 104, 74, 66, 100, 70, 62, 97, 64, 55, 91, 58, 49, 87, 53, 43, 84, 50, 38, 85, 49, 37, 84, 48, 34, 88, 50, 37, 89, 51, 38, 88, 51, 35, 87, 50, 34, 84, 48, 34, 85, 49, 35, 86, 53, 38, 90, 57, 42, 104, 68, 54, 103, 67, 53, 102, 66, 54, 103, 67, 55, 105, 68, 59, 105, 68, 59, 100, 65, 59, 98, 63, 57, 82, 49, 44, 83, 52, 47, 96, 66, 64, 105, 77, 74, 106, 78, 77, 110, 84, 83, 116, 92, 92, 112, 91, 88, 111, 96, 89, 120, 111, 102, 142, 137, 131, 169, 168, 164, 194, 198, 199, 212, 220, 222, 224, 232, 235, 228, 237, 242, 232, 239, 245, 232, 239, 245, 234, 239, 245, 234, 239, 245, 236, 239, 248, 236, 239, 248, 236, 240, 251, 236, 240, 249, 237, 242, 248, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 226, 233, 241, 225, 232, 240, 225, 232, 240, 225, 232, 240, 224, 231, 239, 224, 231, 239, 224, 231, 239, 223, 230, 238, 224, 231, 239, 224, 231, 239, 223, 230, 238, 223, 230, 238, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 223, 230, 238, 223, 230, 238, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 225, 232, 238, 225, 232, 238, 226, 233, 239, 226, 233, 239, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 237, 237, 245, 237, 237, 245, 235, 238, 245, 234, 239, 245, 231, 238, 244, 230, 239, 244, 228, 238, 247, 228, 238, 247, 225, 233, 244, 231, 238, 248, 232, 236, 245, 222, 223, 228, 202, 202, 202, 184, 180, 177, 165, 161, 152, 154, 145, 136, 151, 138, 130, 132, 119, 111, 97, 84, 78, 73, 62, 56, 71, 61, 59, 68, 58, 56, 61, 53, 51, 65, 56, 57, 24, 14, 15, 49, 39, 38, 61, 47, 46, 51, 36, 33, 49, 31, 29, 55, 36, 32, 53, 32, 27, 43, 22, 17, 38, 19, 15, 52, 33, 29, 64, 45, 41, 67, 48, 44, 65, 46, 42, 64, 45, 41, 63, 44, 40, 60, 41, 37, 54, 33, 28, 68, 47, 42, 61, 40, 35, 66, 45, 40, 68, 45, 39, 64, 41, 35, 76, 53, 47, 67, 44, 38, 67, 44, 38, 80, 57, 51, 88, 65, 59, 85, 62, 56, 79, 58, 53, 79, 58, 53, 77, 56, 51, 72, 51, 46, 53, 34, 30, 59, 40, 36, 69, 50, 46, 77, 58, 54, 81, 62, 58, 81, 62, 58, 79, 60, 56, 77, 59, 55, 89, 73, 73, 96, 82, 81, 97, 81, 81, 88, 72, 72, 84, 68, 68, 93, 77, 77, 108, 90, 90, 115, 97, 97, 111, 91, 92, 100, 80, 81, 95, 73, 75, 94, 72, 74, 91, 66, 69, 87, 62, 65, 99, 74, 77, 116, 95, 94, 118, 97, 92, 114, 94, 87, 109, 89, 82, 104, 84, 77, 102, 81, 76, 99, 78, 73, 99, 75, 71, 97, 73, 69, 94, 69, 65, 98, 70, 67, 101, 71, 69, 104, 73, 70, 107, 74, 69, 108, 73, 67, 110, 73, 67, 107, 72, 66, 104, 71, 64, 99, 69, 61, 96, 63, 54, 90, 57, 48, 86, 52, 42, 82, 48, 36, 82, 46, 34, 81, 45, 31, 81, 43, 30, 84, 46, 33, 86, 50, 34, 87, 51, 35, 87, 51, 37, 89, 53, 39, 90, 57, 42, 92, 59, 44, 99, 66, 51, 98, 65, 50, 97, 63, 51, 99, 65, 53, 102, 68, 58, 104, 70, 60, 103, 68, 62, 101, 66, 60, 98, 65, 60, 96, 65, 60, 107, 77, 75, 111, 83, 80, 100, 72, 71, 101, 75, 74, 110, 86, 86, 107, 86, 83, 103, 89, 80, 116, 106, 96, 138, 134, 125, 166, 165, 160, 190, 194, 193, 209, 217, 219, 224, 232, 235, 230, 239, 244, 231, 240, 245, 232, 239, 245, 234, 239, 245, 234, 239, 245, 236, 239, 248, 236, 239, 248, 236, 240, 251, 236, 240, 249, 237, 242, 248, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 226, 233, 241, 225, 232, 240, 225, 232, 240, 225, 232, 240, 224, 231, 239, 224, 231, 239, 224, 231, 239, 223, 230, 238, 224, 231, 239, 224, 231, 239, 223, 230, 238, 223, 230, 238, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 223, 230, 238, 223, 230, 238, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 225, 232, 238, 225, 232, 238, 226, 233, 239, 226, 233, 239, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 228, 235, 243, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 229, 236, 242, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 230, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 239, 245, 230, 239, 246, 229, 240, 246, 228, 238, 247, 228, 238, 247, 224, 233, 242, 234, 241, 249, 232, 237, 241, 213, 214, 216, 191, 190, 188, 174, 171, 166, 157, 150, 142, 140, 131, 122, 133, 120, 114, 108, 95, 89, 79, 66, 60, 68, 57, 53, 68, 57, 55, 55, 45, 43, 52, 42, 41, 69, 59, 58, 31, 19, 19, 59, 47, 47, 57, 43, 42, 52, 37, 34, 68, 50, 46, 56, 37, 33, 36, 15, 10, 47, 26, 21, 42, 23, 19, 59, 40, 36, 75, 56, 52, 76, 57, 53, 68, 49, 45, 62, 43, 39, 59, 40, 36, 56, 37, 33, 77, 56, 51, 86, 65, 60, 65, 44, 39, 60, 39, 34, 54, 31, 25, 51, 28, 22, 73, 50, 44, 70, 47, 41, 76, 53, 47, 91, 71, 64, 100, 76, 72, 86, 65, 60, 70, 49, 44, 65, 44, 39, 65, 44, 39, 64, 43, 38, 65, 46, 42, 66, 47, 43, 67, 48, 44, 69, 50, 46, 73, 54, 50, 82, 63, 59, 94, 74, 73, 101, 83, 81, 111, 95, 95, 105, 91, 90, 97, 83, 82, 96, 82, 81, 110, 94, 94, 122, 106, 106, 116, 98, 98, 99, 81, 81, 83, 63, 62, 83, 62, 61, 85, 64, 63, 93, 69, 69, 98, 74, 74, 105, 81, 81, 115, 91, 91, 125, 101, 99, 129, 106, 100, 121, 98, 90, 108, 85, 77, 96, 73, 65, 89, 66, 60, 90, 65, 60, 94, 69, 64, 99, 71, 67, 104, 76, 72, 104, 75, 71, 102, 71, 68, 101, 68, 63, 101, 66, 60, 100, 65, 59, 103, 66, 60, 101, 66, 60, 100, 67, 60, 97, 67, 57, 97, 64, 55, 94, 62, 51, 92, 58, 48, 89, 55, 43, 89, 53, 39, 88, 52, 38, 75, 37, 24, 79, 41, 28, 84, 48, 32, 88, 52, 36, 90, 54, 40, 92, 56, 42, 93, 60, 45, 96, 63, 48, 99, 63, 49, 98, 62, 50, 98, 62, 50, 100, 64, 52, 104, 67, 58, 105, 71, 61, 105, 71, 62, 104, 69, 63, 111, 78, 71, 103, 72, 67, 107, 78, 74, 102, 72, 70, 85, 57, 54, 89, 63, 62, 108, 82, 81, 110, 89, 86, 98, 81, 74, 109, 96, 88, 130, 123, 117, 159, 155, 152, 185, 187, 186, 207, 212, 215, 222, 230, 233, 229, 238, 243, 231, 240, 245, 232, 239, 245, 234, 239, 245, 235, 238, 245, 236, 239, 246, 236, 239, 248, 237, 240, 249, 237, 240, 249, 237, 242, 248, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 232, 239, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 228, 233, 239, 228, 233, 239, 227, 232, 238, 226, 231, 237, 226, 231, 237, 226, 231, 237, 225, 230, 236, 225, 230, 236, 225, 230, 236, 224, 229, 235, 225, 230, 236, 225, 230, 236, 225, 230, 236, 224, 229, 235, 224, 229, 235, 223, 228, 234, 223, 228, 234, 223, 228, 234, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 244, 232, 240, 243, 232, 239, 245, 230, 239, 246, 228, 238, 247, 225, 238, 246, 225, 238, 246, 226, 237, 243, 223, 232, 237, 233, 241, 243, 237, 241, 240, 205, 206, 201, 186, 183, 178, 172, 165, 159, 133, 122, 116, 119, 108, 102, 128, 117, 113, 83, 72, 68, 52, 41, 37, 44, 33, 31, 45, 34, 32, 63, 52, 50, 74, 63, 61, 60, 49, 47, 23, 9, 8, 69, 53, 53, 49, 34, 31, 52, 34, 32, 79, 61, 57, 60, 41, 37, 44, 25, 21, 49, 30, 26, 54, 35, 29, 68, 49, 43, 77, 58, 52, 68, 49, 43, 49, 30, 24, 42, 23, 17, 54, 35, 29, 70, 51, 45, 77, 56, 51, 67, 46, 41, 57, 36, 31, 50, 29, 24, 47, 23, 19, 49, 25, 21, 59, 35, 31, 72, 48, 44, 68, 47, 42, 74, 55, 49, 76, 55, 52, 71, 50, 47, 73, 52, 49, 76, 55, 52, 67, 46, 43, 51, 30, 27, 73, 52, 51, 72, 51, 50, 75, 55, 54, 85, 65, 64, 98, 80, 78, 107, 89, 87, 107, 89, 89, 102, 86, 86, 80, 64, 64, 77, 61, 62, 92, 76, 77, 118, 102, 103, 125, 107, 107, 104, 86, 86, 88, 68, 67, 87, 67, 66, 88, 67, 64, 94, 73, 70, 103, 79, 75, 112, 87, 83, 121, 96, 91, 127, 102, 97, 124, 99, 94, 118, 91, 84, 96, 67, 59, 93, 63, 53, 89, 59, 49, 92, 62, 52, 99, 69, 61, 105, 75, 67, 107, 77, 69, 107, 77, 69, 99, 68, 63, 99, 68, 63, 99, 68, 63, 100, 70, 62, 102, 69, 62, 102, 69, 62, 99, 69, 61, 99, 69, 61, 98, 68, 58, 97, 67, 57, 97, 64, 55, 93, 61, 50, 89, 55, 45, 83, 49, 37, 81, 45, 31, 78, 42, 28, 78, 42, 26, 78, 42, 26, 79, 43, 27, 81, 45, 29, 84, 48, 34, 88, 52, 38, 90, 56, 44, 95, 59, 47, 105, 67, 56, 102, 62, 54, 97, 59, 50, 97, 59, 50, 101, 63, 54, 105, 68, 59, 107, 73, 63, 108, 74, 65, 124, 91, 82, 110, 80, 72, 109, 80, 74, 103, 74, 70, 87, 59, 55, 89, 64, 60, 104, 78, 77, 105, 81, 79, 98, 77, 74, 111, 93, 91, 132, 121, 119, 159, 154, 151, 179, 179, 179, 197, 201, 204, 216, 224, 227, 233, 240, 246, 230, 237, 243, 230, 237, 245, 233, 238, 244, 235, 238, 245, 237, 237, 245, 238, 239, 244, 239, 240, 245, 239, 240, 245, 238, 241, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 241, 246, 250, 241, 246, 250, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 231, 238, 244, 231, 238, 244, 231, 238, 244, 231, 238, 244, 231, 238, 244, 231, 238, 244, 231, 238, 244, 231, 238, 244, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 228, 233, 239, 228, 233, 239, 227, 232, 238, 227, 232, 238, 226, 231, 237, 226, 231, 237, 225, 230, 236, 225, 230, 236, 225, 230, 236, 225, 230, 236, 225, 230, 236, 225, 230, 236, 225, 230, 236, 224, 229, 235, 224, 229, 235, 223, 228, 234, 223, 228, 234, 223, 228, 234, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 243, 232, 240, 243, 232, 240, 243, 231, 240, 245, 230, 239, 246, 228, 238, 247, 225, 238, 246, 225, 238, 246, 226, 237, 243, 227, 237, 239, 226, 235, 234, 224, 229, 223, 195, 196, 188, 180, 175, 169, 164, 155, 148, 125, 114, 108, 115, 104, 98, 120, 109, 107, 58, 48, 46, 26, 15, 13, 37, 26, 24, 55, 44, 42, 69, 58, 56, 66, 52, 49, 40, 26, 23, 34, 19, 16, 57, 42, 39, 42, 24, 22, 54, 36, 34, 75, 57, 53, 56, 38, 34, 53, 34, 30, 65, 46, 42, 70, 51, 45, 68, 49, 43, 63, 44, 38, 53, 34, 28, 46, 27, 21, 49, 30, 24, 62, 43, 37, 74, 55, 49, 71, 50, 45, 61, 40, 35, 53, 32, 27, 52, 31, 26, 56, 32, 28, 58, 34, 30, 63, 39, 35, 67, 46, 41, 83, 62, 59, 72, 53, 49, 63, 44, 40, 62, 43, 39, 67, 46, 43, 68, 47, 44, 65, 44, 41, 63, 42, 39, 59, 38, 37, 79, 58, 57, 103, 83, 82, 114, 94, 93, 108, 90, 90, 94, 76, 76, 79, 63, 63, 73, 57, 57, 60, 44, 45, 94, 78, 79, 123, 107, 108, 123, 107, 108, 107, 89, 89, 94, 76, 76, 91, 71, 70, 91, 72, 68, 94, 73, 70, 111, 87, 83, 124, 99, 94, 120, 95, 90, 109, 84, 77, 99, 74, 67, 94, 67, 60, 90, 61, 53, 88, 55, 46, 88, 56, 45, 91, 57, 47, 94, 62, 51, 99, 66, 57, 102, 69, 60, 102, 69, 60, 101, 68, 59, 101, 71, 63, 102, 72, 64, 105, 75, 67, 105, 75, 67, 104, 74, 66, 100, 70, 62, 95, 66, 58, 92, 63, 55, 101, 71, 61, 99, 69, 59, 99, 67, 56, 95, 63, 52, 91, 57, 45, 86, 52, 40, 84, 48, 34, 81, 45, 31, 77, 41, 25, 77, 41, 25, 77, 41, 25, 78, 42, 26, 82, 46, 32, 86, 50, 36, 89, 55, 43, 93, 57, 45, 104, 64, 56, 105, 62, 55, 101, 61, 53, 101, 61, 53, 102, 64, 55, 107, 69, 60, 111, 74, 65, 113, 79, 69, 116, 83, 74, 107, 74, 65, 104, 73, 68, 98, 69, 63, 90, 61, 57, 97, 69, 66, 109, 81, 80, 103, 77, 76, 99, 75, 75, 105, 85, 84, 119, 105, 105, 141, 132, 133, 165, 163, 164, 189, 193, 194, 215, 220, 224, 231, 239, 242, 230, 237, 243, 230, 237, 245, 234, 237, 244, 235, 238, 245, 237, 238, 243, 239, 238, 244, 240, 239, 244, 239, 240, 245, 238, 241, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 241, 246, 250, 241, 246, 250, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 231, 238, 244, 231, 238, 244, 231, 238, 244, 231, 238, 244, 231, 238, 244, 231, 238, 244, 231, 238, 244, 231, 238, 244, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 227, 232, 238, 227, 232, 238, 226, 231, 237, 226, 231, 237, 226, 231, 237, 225, 230, 236, 225, 230, 236, 225, 230, 236, 225, 230, 236, 225, 230, 236, 225, 230, 236, 224, 229, 235, 224, 229, 235, 223, 228, 234, 223, 228, 234, 223, 228, 234, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 243, 232, 240, 243, 232, 240, 243, 230, 239, 244, 230, 239, 246, 228, 238, 247, 227, 237, 246, 226, 236, 245, 226, 237, 241, 230, 240, 241, 218, 224, 222, 208, 210, 205, 186, 186, 178, 174, 169, 163, 153, 144, 137, 113, 102, 96, 110, 99, 93, 103, 92, 90, 41, 31, 29, 19, 8, 6, 44, 33, 31, 62, 51, 49, 64, 53, 51, 55, 41, 38, 35, 21, 18, 49, 34, 31, 47, 32, 29, 40, 22, 20, 58, 40, 38, 67, 49, 45, 53, 35, 31, 61, 42, 38, 76, 57, 53, 72, 53, 47, 61, 42, 36, 48, 29, 23, 44, 25, 19, 50, 31, 25, 58, 39, 33, 64, 45, 39, 66, 47, 41, 59, 38, 33, 57, 36, 31, 57, 36, 31, 59, 38, 33, 61, 37, 33, 60, 36, 32, 65, 41, 37, 71, 50, 45, 65, 44, 41, 57, 38, 34, 61, 42, 38, 73, 54, 50, 77, 56, 53, 72, 51, 48, 78, 57, 54, 92, 71, 68, 89, 68, 67, 99, 78, 77, 107, 87, 86, 103, 83, 82, 89, 71, 71, 78, 60, 60, 74, 58, 58, 78, 62, 62, 93, 74, 76, 107, 88, 90, 113, 95, 95, 104, 86, 86, 95, 75, 76, 94, 74, 75, 97, 76, 75, 96, 75, 72, 99, 75, 73, 111, 87, 83, 119, 94, 89, 111, 86, 81, 100, 72, 68, 90, 62, 58, 84, 57, 50, 82, 53, 45, 89, 59, 49, 94, 64, 54, 101, 68, 59, 102, 72, 62, 101, 71, 63, 98, 68, 60, 96, 66, 58, 95, 65, 57, 97, 67, 59, 95, 65, 57, 92, 63, 57, 91, 62, 56, 92, 63, 57, 96, 67, 61, 100, 71, 65, 103, 74, 66, 96, 66, 56, 95, 65, 55, 95, 63, 52, 91, 59, 48, 88, 54, 42, 83, 49, 37, 81, 45, 31, 78, 42, 28, 74, 38, 22, 74, 38, 22, 74, 38, 22, 75, 39, 23, 78, 42, 28, 83, 47, 33, 86, 52, 40, 91, 55, 43, 100, 60, 50, 105, 62, 53, 105, 65, 55, 104, 64, 54, 103, 65, 54, 107, 69, 58, 114, 77, 68, 119, 85, 75, 108, 75, 66, 105, 72, 63, 100, 69, 64, 95, 66, 60, 95, 66, 62, 108, 80, 77, 113, 85, 84, 100, 74, 75, 91, 67, 67, 98, 78, 77, 113, 99, 99, 135, 126, 127, 159, 157, 158, 185, 189, 190, 211, 216, 220, 225, 233, 236, 230, 237, 243, 230, 237, 243, 234, 237, 244, 235, 238, 245, 237, 238, 243, 238, 239, 244, 239, 240, 245, 239, 240, 245, 238, 241, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 241, 246, 250, 241, 246, 250, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 231, 238, 244, 231, 238, 244, 231, 238, 244, 231, 238, 244, 231, 238, 244, 231, 238, 244, 231, 238, 244, 231, 238, 244, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 227, 232, 238, 227, 232, 238, 227, 232, 238, 226, 231, 237, 226, 231, 237, 226, 231, 237, 225, 230, 236, 225, 230, 236, 225, 230, 236, 225, 230, 236, 225, 230, 236, 224, 229, 235, 224, 229, 235, 223, 228, 234, 223, 228, 234, 223, 228, 234, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 232, 240, 243, 231, 239, 242, 230, 239, 244, 229, 238, 245, 227, 237, 246, 227, 237, 246, 226, 237, 243, 227, 236, 241, 231, 239, 241, 208, 214, 212, 196, 198, 193, 182, 182, 174, 173, 168, 162, 147, 138, 131, 104, 93, 87, 103, 92, 86, 87, 76, 74, 46, 36, 34, 45, 34, 32, 66, 55, 53, 58, 47, 45, 45, 34, 32, 53, 39, 36, 59, 45, 42, 56, 41, 38, 44, 29, 26, 48, 30, 28, 62, 44, 42, 60, 42, 38, 56, 38, 34, 67, 48, 44, 72, 53, 49, 56, 37, 31, 50, 31, 25, 46, 27, 21, 51, 32, 26, 60, 41, 35, 64, 45, 39, 59, 40, 34, 53, 34, 28, 53, 32, 27, 59, 38, 33, 67, 46, 41, 67, 46, 41, 60, 36, 32, 55, 31, 27, 65, 41, 37, 78, 57, 52, 74, 53, 50, 78, 59, 55, 85, 66, 62, 85, 66, 62, 75, 54, 51, 69, 48, 45, 82, 61, 58, 102, 81, 78, 118, 97, 96, 105, 84, 83, 86, 66, 65, 73, 53, 52, 70, 52, 52, 79, 61, 61, 90, 74, 74, 100, 84, 84, 120, 101, 103, 100, 81, 83, 90, 72, 72, 97, 79, 79, 99, 79, 80, 88, 68, 67, 88, 67, 66, 98, 77, 74, 105, 81, 79, 103, 79, 75, 96, 71, 67, 90, 65, 60, 92, 64, 60, 95, 67, 63, 93, 66, 59, 88, 59, 53, 95, 66, 58, 102, 72, 62, 106, 76, 68, 105, 75, 67, 99, 69, 61, 93, 63, 55, 91, 61, 53, 92, 62, 54, 85, 55, 47, 88, 59, 51, 93, 64, 58, 100, 71, 65, 105, 76, 70, 108, 79, 73, 109, 80, 74, 110, 81, 75, 96, 66, 58, 95, 65, 55, 95, 63, 52, 92, 60, 49, 89, 55, 43, 84, 50, 38, 82, 46, 32, 80, 44, 30, 72, 36, 20, 71, 35, 19, 70, 34, 18, 71, 35, 19, 74, 38, 24, 80, 44, 30, 83, 49, 37, 89, 53, 41, 95, 55, 45, 103, 60, 51, 105, 65, 55, 105, 65, 55, 102, 64, 53, 105, 67, 56, 113, 76, 67, 122, 85, 76, 107, 73, 64, 106, 73, 66, 102, 69, 64, 95, 64, 61, 100, 69, 67, 113, 83, 83, 113, 83, 85, 97, 71, 72, 80, 56, 56, 101, 81, 80, 127, 113, 112, 148, 140, 138, 165, 163, 164, 186, 190, 191, 208, 213, 216, 220, 228, 231, 230, 237, 243, 230, 237, 243, 233, 238, 244, 235, 238, 245, 237, 238, 243, 238, 239, 244, 239, 240, 245, 237, 240, 245, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 241, 246, 250, 241, 246, 250, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 228, 233, 239, 228, 233, 239, 227, 232, 238, 227, 232, 238, 227, 232, 238, 226, 231, 237, 226, 231, 237, 226, 231, 237, 225, 230, 236, 225, 230, 236, 225, 230, 236, 224, 229, 235, 224, 229, 235, 223, 228, 234, 223, 228, 234, 223, 228, 234, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 231, 239, 242, 231, 239, 242, 229, 238, 243, 229, 238, 245, 228, 237, 246, 227, 236, 245, 227, 236, 243, 226, 236, 238, 225, 234, 233, 201, 206, 202, 191, 192, 187, 183, 180, 173, 174, 169, 163, 144, 135, 128, 98, 87, 81, 96, 85, 79, 82, 71, 69, 61, 51, 49, 68, 57, 55, 74, 63, 61, 46, 35, 33, 33, 22, 20, 59, 45, 42, 81, 67, 64, 47, 32, 29, 42, 27, 24, 58, 40, 38, 63, 45, 43, 59, 41, 37, 68, 50, 46, 73, 54, 50, 65, 46, 42, 48, 29, 23, 51, 32, 26, 56, 37, 31, 62, 43, 37, 65, 46, 40, 64, 45, 39, 60, 41, 35, 57, 38, 32, 66, 45, 40, 65, 44, 39, 66, 45, 40, 66, 45, 40, 64, 40, 36, 61, 37, 33, 67, 43, 39, 73, 52, 47, 80, 59, 56, 86, 67, 63, 84, 65, 61, 74, 55, 51, 72, 51, 48, 84, 63, 60, 99, 78, 75, 106, 85, 82, 88, 67, 66, 83, 62, 61, 77, 57, 56, 76, 56, 55, 81, 63, 63, 90, 72, 72, 95, 79, 79, 99, 83, 83, 104, 86, 86, 95, 75, 76, 95, 75, 76, 103, 83, 84, 96, 75, 74, 80, 59, 58, 83, 59, 59, 98, 74, 72, 105, 79, 78, 100, 75, 71, 93, 65, 62, 85, 57, 54, 85, 57, 53, 89, 61, 57, 89, 60, 56, 85, 56, 50, 90, 61, 55, 94, 65, 57, 98, 69, 63, 96, 67, 61, 92, 63, 57, 90, 61, 55, 92, 63, 57, 95, 66, 60, 93, 64, 58, 102, 75, 68, 118, 91, 84, 129, 102, 95, 129, 101, 97, 119, 91, 87, 105, 77, 73, 96, 67, 61, 99, 69, 61, 98, 68, 58, 98, 66, 55, 95, 63, 52, 92, 58, 46, 88, 54, 42, 86, 50, 36, 84, 48, 34, 72, 36, 20, 70, 34, 18, 68, 32, 16, 68, 32, 16, 72, 36, 22, 78, 42, 28, 82, 48, 36, 88, 52, 40, 91, 51, 39, 99, 57, 45, 103, 63, 51, 103, 63, 51, 100, 62, 49, 102, 64, 51, 109, 73, 61, 118, 81, 72, 105, 71, 62, 108, 75, 68, 103, 70, 65, 95, 64, 61, 99, 67, 68, 105, 75, 77, 103, 73, 75, 96, 67, 69, 84, 60, 60, 113, 93, 92, 143, 129, 128, 155, 147, 145, 161, 159, 160, 179, 183, 184, 204, 212, 214, 221, 231, 233, 229, 238, 243, 230, 237, 243, 233, 238, 244, 234, 239, 245, 235, 238, 245, 236, 239, 246, 237, 240, 245, 237, 240, 245, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 241, 246, 250, 241, 246, 250, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 232, 239, 245, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 228, 233, 239, 228, 233, 239, 228, 233, 239, 227, 232, 238, 227, 232, 238, 227, 232, 238, 226, 231, 237, 226, 231, 237, 225, 230, 236, 225, 230, 236, 225, 230, 236, 224, 229, 235, 224, 229, 235, 223, 228, 234, 223, 228, 234, 223, 228, 234, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 231, 239, 242, 231, 239, 242, 229, 238, 245, 228, 237, 244, 227, 236, 245, 227, 236, 243, 226, 235, 240, 227, 235, 238, 217, 223, 223, 194, 199, 195, 186, 187, 182, 176, 173, 166, 170, 163, 155, 140, 131, 124, 94, 83, 77, 91, 80, 76, 85, 75, 73, 69, 59, 57, 67, 56, 54, 58, 47, 45, 35, 24, 22, 42, 31, 29, 70, 56, 53, 79, 65, 62, 37, 22, 19, 41, 26, 23, 64, 46, 44, 64, 46, 44, 64, 46, 42, 77, 59, 55, 70, 51, 47, 62, 43, 39, 54, 35, 29, 60, 41, 35, 66, 47, 41, 65, 46, 40, 61, 42, 36, 61, 42, 36, 68, 49, 43, 75, 56, 50, 81, 60, 55, 68, 47, 42, 60, 39, 34, 64, 43, 38, 75, 51, 47, 75, 51, 47, 69, 45, 41, 63, 42, 37, 58, 37, 34, 65, 46, 42, 71, 52, 48, 77, 58, 54, 95, 74, 71, 110, 89, 86, 102, 81, 78, 81, 60, 57, 56, 35, 34, 67, 46, 45, 80, 60, 59, 88, 68, 67, 90, 72, 72, 91, 73, 73, 93, 77, 77, 99, 81, 81, 106, 86, 87, 98, 78, 79, 84, 62, 64, 75, 53, 55, 81, 60, 59, 95, 74, 73, 99, 75, 73, 91, 67, 65, 83, 57, 56, 93, 67, 66, 100, 72, 69, 94, 66, 63, 85, 57, 53, 82, 54, 50, 86, 57, 53, 87, 58, 54, 89, 60, 56, 92, 65, 58, 97, 68, 64, 99, 72, 65, 103, 74, 70, 105, 78, 71, 110, 81, 77, 112, 85, 78, 124, 97, 90, 123, 96, 89, 120, 93, 86, 115, 88, 81, 107, 79, 75, 97, 69, 65, 89, 61, 57, 84, 57, 50, 89, 59, 51, 89, 59, 49, 89, 57, 46, 86, 54, 43, 84, 50, 38, 80, 46, 34, 78, 42, 28, 76, 40, 26, 72, 36, 20, 70, 34, 18, 68, 32, 16, 67, 31, 15, 70, 34, 20, 77, 41, 27, 82, 48, 36, 89, 53, 39, 91, 51, 39, 97, 55, 41, 99, 59, 47, 100, 60, 48, 99, 61, 48, 101, 63, 50, 106, 70, 58, 111, 74, 65, 104, 70, 61, 111, 76, 72, 107, 73, 71, 101, 67, 66, 98, 66, 67, 94, 62, 65, 94, 62, 67, 103, 74, 78, 108, 84, 82, 130, 111, 107, 145, 131, 128, 142, 134, 131, 142, 141, 139, 166, 170, 169, 202, 210, 212, 225, 235, 237, 229, 238, 243, 229, 238, 243, 231, 238, 244, 234, 239, 245, 235, 238, 245, 236, 239, 246, 237, 240, 245, 237, 240, 245, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 241, 246, 250, 241, 246, 250, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 237, 240, 247, 237, 240, 247, 237, 240, 247, 237, 240, 247, 237, 240, 247, 237, 240, 247, 237, 240, 247, 237, 240, 247, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 227, 232, 238, 227, 232, 238, 226, 231, 237, 226, 231, 237, 225, 230, 236, 225, 230, 236, 225, 230, 236, 224, 229, 235, 224, 229, 235, 223, 228, 234, 223, 228, 234, 223, 228, 234, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 231, 239, 242, 230, 238, 241, 230, 237, 245, 229, 236, 244, 228, 235, 243, 227, 234, 242, 227, 234, 240, 229, 234, 237, 206, 210, 209, 189, 191, 186, 180, 179, 174, 163, 160, 153, 155, 148, 140, 131, 122, 115, 91, 80, 76, 89, 78, 74, 84, 74, 72, 70, 60, 58, 58, 47, 45, 36, 25, 23, 27, 16, 14, 58, 47, 45, 84, 70, 67, 70, 56, 53, 47, 32, 29, 48, 33, 30, 67, 49, 47, 67, 49, 47, 72, 54, 50, 71, 53, 49, 51, 32, 28, 56, 37, 33, 59, 40, 34, 65, 46, 40, 67, 48, 42, 63, 44, 38, 56, 37, 31, 58, 39, 33, 70, 51, 45, 81, 62, 56, 75, 54, 49, 69, 48, 43, 68, 47, 42, 75, 54, 49, 80, 56, 52, 76, 52, 48, 70, 46, 42, 65, 44, 39, 69, 48, 45, 73, 54, 50, 83, 64, 60, 95, 76, 72, 102, 81, 78, 94, 73, 70, 70, 49, 46, 48, 27, 24, 72, 51, 50, 77, 56, 55, 83, 63, 62, 89, 69, 68, 93, 75, 75, 96, 78, 78, 94, 78, 78, 97, 79, 79, 105, 84, 83, 89, 68, 67, 72, 48, 48, 70, 46, 46, 90, 66, 66, 109, 85, 85, 105, 79, 78, 89, 63, 62, 80, 54, 53, 92, 66, 65, 102, 74, 71, 98, 70, 67, 92, 64, 61, 92, 64, 61, 96, 66, 64, 98, 68, 66, 98, 70, 67, 98, 73, 68, 106, 78, 75, 111, 86, 81, 120, 92, 89, 121, 96, 91, 123, 95, 92, 121, 93, 89, 126, 98, 94, 115, 87, 83, 98, 70, 66, 82, 54, 50, 74, 46, 42, 74, 46, 42, 79, 51, 47, 84, 57, 50, 82, 52, 44, 81, 51, 41, 81, 49, 38, 79, 47, 36, 77, 43, 31, 73, 39, 27, 71, 35, 21, 69, 33, 19, 74, 38, 22, 71, 35, 19, 68, 32, 16, 67, 31, 15, 70, 34, 20, 77, 41, 27, 83, 49, 37, 91, 55, 41, 93, 55, 42, 95, 56, 41, 97, 58, 43, 99, 60, 45, 100, 62, 49, 103, 65, 52, 104, 68, 56, 105, 68, 59, 109, 75, 66, 117, 82, 78, 117, 83, 81, 114, 80, 79, 107, 73, 74, 89, 57, 60, 96, 64, 69, 125, 94, 99, 136, 112, 110, 144, 125, 121, 140, 126, 123, 126, 118, 115, 129, 128, 126, 161, 165, 164, 200, 208, 210, 221, 231, 233, 229, 238, 243, 229, 238, 243, 231, 238, 244, 232, 239, 245, 234, 239, 245, 235, 240, 246, 236, 241, 245, 236, 241, 245, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 241, 246, 250, 241, 246, 250, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 237, 240, 247, 237, 240, 247, 237, 240, 247, 237, 240, 247, 237, 240, 247, 237, 240, 247, 237, 240, 247, 237, 240, 247, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 229, 234, 240, 228, 233, 239, 228, 233, 239, 228, 233, 239, 227, 232, 238, 227, 232, 238, 227, 232, 238, 226, 231, 237, 225, 230, 236, 225, 230, 236, 225, 230, 236, 224, 229, 235, 224, 229, 235, 223, 228, 234, 223, 228, 234, 223, 228, 234, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 228, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 231, 239, 242, 230, 237, 243, 230, 237, 245, 229, 236, 244, 228, 235, 243, 229, 234, 240, 229, 234, 238, 229, 233, 234, 201, 203, 202, 185, 186, 181, 175, 172, 165, 152, 147, 141, 141, 134, 126, 124, 115, 108, 89, 78, 74, 87, 76, 72, 78, 68, 66, 71, 61, 59, 56, 45, 43, 26, 15, 13, 23, 12, 10, 68, 57, 55, 93, 79, 76, 67, 53, 50, 65, 50, 47, 58, 43, 40, 71, 53, 51, 71, 53, 51, 76, 58, 54, 59, 41, 37, 29, 10, 6, 49, 30, 26, 55, 36, 30, 61, 42, 36, 64, 45, 39, 61, 42, 36, 55, 36, 30, 56, 37, 31, 65, 46, 40, 74, 55, 49, 57, 36, 31, 70, 49, 44, 86, 65, 60, 89, 68, 63, 79, 55, 51, 67, 43, 39, 68, 44, 40, 76, 55, 50, 88, 67, 64, 84, 65, 61, 87, 68, 64, 89, 70, 66, 80, 59, 56, 64, 43, 40, 64, 43, 40, 74, 53, 50, 100, 79, 78, 91, 70, 69, 86, 66, 65, 94, 74, 73, 107, 89, 89, 110, 92, 92, 95, 79, 79, 82, 64, 64, 66, 45, 44, 71, 47, 47, 91, 67, 67, 116, 92, 92, 117, 93, 93, 96, 72, 72, 85, 59, 58, 91, 65, 64, 106, 80, 79, 104, 78, 77, 100, 72, 69, 96, 68, 65, 98, 70, 67, 104, 76, 73, 105, 75, 73, 99, 71, 68, 101, 76, 72, 103, 78, 74, 109, 84, 80, 117, 92, 88, 124, 99, 95, 123, 98, 94, 115, 90, 86, 108, 83, 79, 93, 65, 61, 91, 63, 59, 87, 59, 55, 84, 56, 52, 82, 54, 50, 81, 53, 49, 81, 53, 49, 82, 53, 47, 87, 57, 49, 87, 57, 47, 88, 56, 45, 85, 53, 42, 83, 49, 37, 79, 45, 33, 78, 42, 28, 76, 40, 26, 75, 39, 23, 72, 36, 20, 69, 33, 17, 68, 32, 16, 71, 35, 21, 78, 42, 28, 84, 50, 38, 92, 56, 44, 97, 59, 46, 97, 58, 43, 97, 58, 43, 98, 61, 45, 102, 64, 51, 105, 67, 54, 103, 67, 55, 102, 65, 56, 115, 81, 72, 125, 90, 86, 128, 94, 92, 127, 93, 92, 116, 82, 83, 94, 59, 63, 104, 72, 77, 145, 114, 119, 154, 128, 127, 152, 133, 127, 139, 124, 119, 121, 114, 108, 129, 128, 124, 165, 169, 168, 198, 207, 206, 213, 223, 224, 229, 238, 243, 229, 238, 243, 231, 238, 244, 232, 239, 245, 234, 239, 245, 235, 240, 246, 236, 241, 245, 236, 241, 245, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 241, 246, 250, 241, 246, 250, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 228, 233, 239, 228, 233, 239, 227, 232, 238, 227, 232, 238, 227, 232, 238, 225, 230, 236, 225, 230, 236, 225, 230, 236, 224, 229, 235, 224, 229, 235, 224, 229, 235, 223, 228, 234, 223, 228, 234, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 226, 233, 241, 226, 233, 241, 226, 233, 241, 227, 234, 242, 227, 234, 242, 227, 234, 242, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 228, 235, 241, 228, 235, 241, 229, 236, 242, 229, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 245, 236, 241, 245, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 229, 236, 242, 226, 233, 239, 231, 238, 246, 231, 238, 246, 228, 233, 239, 231, 236, 242, 231, 235, 238, 221, 223, 222, 197, 197, 195, 174, 173, 168, 151, 148, 141, 111, 107, 98, 129, 122, 114, 119, 110, 103, 94, 83, 79, 40, 29, 27, 43, 33, 31, 18, 8, 6, 29, 18, 16, 38, 27, 25, 31, 20, 18, 59, 48, 46, 87, 73, 70, 64, 50, 47, 53, 38, 35, 69, 54, 51, 79, 61, 59, 66, 48, 46, 47, 29, 25, 40, 22, 18, 49, 30, 26, 59, 40, 36, 67, 48, 42, 55, 36, 30, 54, 35, 29, 68, 49, 43, 78, 59, 53, 75, 56, 50, 75, 56, 50, 81, 62, 56, 93, 72, 67, 98, 77, 72, 82, 61, 56, 55, 34, 29, 57, 33, 29, 80, 56, 52, 90, 66, 62, 80, 59, 54, 79, 58, 55, 87, 68, 64, 84, 65, 61, 69, 50, 46, 63, 42, 39, 73, 52, 49, 84, 63, 60, 89, 68, 65, 89, 68, 67, 90, 69, 68, 91, 71, 70, 95, 75, 74, 95, 77, 77, 93, 75, 75, 85, 69, 69, 81, 63, 63, 84, 63, 62, 109, 85, 85, 125, 99, 100, 115, 89, 90, 97, 71, 70, 91, 65, 64, 94, 68, 67, 97, 71, 70, 105, 79, 78, 102, 76, 75, 98, 72, 71, 96, 70, 69, 101, 73, 70, 107, 79, 76, 114, 86, 83, 119, 91, 88, 123, 97, 96, 120, 96, 94, 115, 91, 89, 110, 86, 84, 104, 80, 78, 99, 75, 73, 97, 72, 68, 95, 70, 66, 94, 69, 65, 92, 67, 63, 89, 61, 57, 85, 57, 53, 84, 56, 52, 84, 56, 52, 87, 58, 52, 88, 59, 53, 84, 54, 46, 84, 54, 44, 86, 54, 43, 85, 53, 42, 84, 50, 38, 80, 46, 34, 78, 42, 28, 76, 40, 26, 79, 43, 27, 77, 41, 25, 75, 39, 23, 73, 37, 21, 74, 38, 24, 77, 41, 27, 78, 44, 32, 83, 47, 35, 88, 50, 37, 92, 54, 41, 97, 59, 46, 100, 62, 49, 103, 65, 52, 105, 69, 55, 110, 74, 62, 113, 76, 67, 122, 88, 79, 139, 104, 100, 143, 108, 106, 121, 85, 85, 102, 68, 69, 109, 74, 78, 136, 101, 107, 154, 124, 126, 147, 122, 118, 127, 108, 101, 117, 102, 97, 125, 116, 111, 142, 138, 135, 163, 165, 162, 192, 201, 200, 219, 229, 230, 229, 238, 243, 230, 239, 244, 232, 239, 247, 231, 238, 246, 230, 237, 243, 231, 238, 244, 234, 241, 247, 237, 244, 250, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 247, 238, 243, 247, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 248, 240, 245, 248, 240, 245, 248, 240, 245, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 228, 233, 239, 228, 233, 239, 228, 233, 239, 227, 232, 238, 227, 232, 238, 225, 230, 236, 225, 230, 236, 225, 230, 236, 225, 230, 236, 224, 229, 235, 224, 229, 235, 223, 228, 234, 223, 228, 234, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 226, 233, 241, 226, 233, 241, 227, 234, 242, 227, 234, 242, 227, 234, 242, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 227, 234, 242, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 228, 235, 241, 228, 235, 241, 229, 236, 242, 229, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 245, 236, 241, 245, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 239, 245, 227, 234, 240, 229, 236, 244, 229, 236, 244, 227, 232, 238, 230, 233, 238, 227, 228, 232, 212, 212, 212, 189, 188, 184, 168, 165, 158, 120, 116, 107, 85, 78, 70, 137, 128, 121, 117, 108, 101, 75, 64, 62, 44, 33, 31, 44, 34, 32, 32, 22, 20, 14, 3, 1, 20, 9, 7, 50, 39, 37, 62, 51, 49, 59, 45, 42, 58, 44, 41, 47, 32, 29, 54, 39, 36, 60, 42, 40, 57, 39, 37, 54, 36, 32, 57, 39, 35, 62, 43, 39, 63, 44, 40, 45, 26, 20, 61, 42, 36, 71, 52, 46, 67, 48, 42, 70, 51, 45, 83, 64, 58, 92, 73, 67, 91, 72, 66, 72, 51, 46, 60, 39, 34, 59, 38, 33, 72, 51, 46, 84, 60, 56, 82, 58, 54, 81, 57, 53, 84, 63, 58, 90, 69, 66, 89, 70, 66, 84, 65, 61, 78, 59, 55, 79, 58, 55, 87, 66, 63, 93, 72, 69, 95, 74, 71, 87, 66, 65, 90, 69, 68, 93, 73, 72, 97, 77, 76, 97, 79, 79, 96, 78, 78, 93, 77, 77, 93, 75, 75, 115, 94, 93, 118, 94, 94, 112, 86, 87, 99, 73, 74, 93, 67, 66, 97, 71, 70, 99, 73, 72, 96, 70, 69, 98, 72, 71, 102, 76, 75, 110, 84, 83, 119, 93, 92, 125, 100, 96, 127, 102, 98, 130, 102, 99, 128, 103, 99, 106, 82, 80, 107, 83, 81, 108, 84, 82, 107, 83, 81, 104, 80, 78, 100, 76, 74, 97, 72, 68, 94, 69, 65, 100, 75, 71, 97, 72, 67, 94, 66, 62, 89, 61, 57, 86, 58, 54, 85, 58, 51, 87, 58, 52, 88, 59, 51, 88, 58, 48, 87, 57, 47, 88, 56, 45, 86, 54, 43, 82, 48, 36, 77, 43, 31, 74, 38, 24, 71, 35, 21, 72, 36, 20, 71, 35, 19, 70, 34, 18, 71, 35, 19, 73, 37, 23, 78, 42, 28, 81, 47, 35, 84, 50, 38, 91, 55, 43, 94, 58, 44, 100, 62, 51, 103, 67, 53, 107, 71, 57, 113, 77, 63, 119, 83, 71, 122, 88, 78, 135, 101, 92, 135, 100, 94, 129, 94, 90, 121, 86, 84, 121, 87, 88, 130, 95, 99, 133, 98, 102, 127, 95, 96, 120, 92, 88, 121, 101, 92, 130, 113, 106, 138, 127, 121, 145, 142, 137, 160, 162, 159, 189, 195, 195, 214, 224, 225, 228, 238, 240, 229, 238, 243, 232, 239, 247, 231, 238, 246, 230, 237, 243, 231, 238, 244, 234, 241, 247, 236, 243, 249, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 247, 238, 243, 247, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 248, 240, 245, 248, 240, 245, 248, 240, 245, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 228, 233, 239, 228, 233, 239, 228, 233, 239, 227, 232, 238, 226, 231, 237, 226, 231, 237, 225, 230, 236, 225, 230, 236, 224, 229, 235, 224, 229, 235, 224, 229, 235, 224, 229, 235, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 225, 232, 240, 225, 232, 240, 225, 232, 240, 226, 233, 241, 226, 233, 241, 226, 233, 241, 227, 234, 242, 227, 234, 242, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 228, 235, 241, 228, 235, 241, 229, 236, 242, 229, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 245, 236, 241, 245, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 235, 242, 250, 228, 235, 243, 230, 234, 243, 230, 234, 243, 228, 231, 238, 228, 232, 235, 219, 220, 222, 199, 199, 197, 175, 172, 167, 164, 159, 153, 98, 94, 85, 59, 52, 42, 131, 122, 115, 102, 93, 86, 53, 42, 40, 52, 41, 39, 40, 30, 28, 32, 22, 20, 18, 7, 5, 27, 16, 14, 57, 46, 44, 63, 52, 50, 54, 40, 37, 55, 41, 38, 44, 29, 26, 43, 28, 25, 44, 26, 24, 48, 30, 28, 60, 42, 38, 70, 52, 48, 69, 50, 46, 60, 41, 37, 51, 32, 26, 68, 49, 43, 78, 59, 53, 74, 55, 49, 73, 54, 48, 82, 63, 57, 86, 67, 61, 82, 63, 57, 62, 41, 36, 55, 34, 29, 63, 42, 37, 82, 61, 56, 88, 64, 60, 76, 52, 48, 75, 51, 47, 82, 61, 56, 92, 71, 68, 83, 64, 60, 78, 59, 55, 82, 63, 59, 89, 68, 65, 91, 70, 67, 92, 71, 68, 94, 73, 70, 87, 66, 65, 92, 71, 70, 97, 77, 76, 100, 80, 79, 99, 81, 81, 100, 82, 82, 102, 86, 86, 108, 90, 90, 126, 102, 102, 118, 92, 91, 101, 77, 75, 88, 64, 62, 87, 63, 61, 94, 70, 68, 96, 72, 70, 92, 68, 66, 99, 75, 73, 104, 80, 78, 110, 86, 84, 115, 91, 89, 115, 91, 89, 110, 86, 84, 104, 78, 77, 98, 74, 72, 98, 74, 74, 99, 78, 77, 104, 83, 80, 107, 86, 83, 109, 85, 83, 105, 81, 79, 101, 76, 72, 97, 72, 68, 100, 72, 68, 97, 69, 65, 94, 65, 61, 89, 60, 54, 85, 56, 50, 83, 54, 48, 83, 52, 47, 83, 53, 45, 86, 56, 46, 86, 56, 46, 87, 55, 44, 84, 52, 41, 81, 47, 35, 76, 42, 30, 73, 37, 23, 71, 35, 21, 64, 28, 12, 63, 27, 11, 64, 28, 12, 67, 31, 15, 72, 36, 22, 78, 42, 28, 83, 49, 37, 87, 53, 41, 92, 58, 46, 96, 62, 50, 102, 65, 56, 105, 71, 59, 111, 77, 65, 119, 85, 73, 128, 94, 84, 134, 100, 90, 138, 104, 95, 130, 97, 90, 122, 89, 84, 125, 91, 89, 136, 102, 101, 140, 106, 107, 125, 91, 92, 102, 71, 69, 98, 71, 64, 118, 95, 87, 138, 119, 113, 140, 127, 121, 133, 128, 124, 144, 145, 140, 176, 180, 179, 205, 213, 215, 227, 235, 238, 229, 236, 242, 231, 238, 246, 231, 238, 246, 233, 237, 246, 233, 237, 246, 234, 241, 247, 236, 243, 249, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 247, 238, 243, 247, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 248, 240, 245, 248, 240, 245, 248, 240, 245, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 228, 233, 239, 228, 233, 239, 228, 233, 239, 226, 231, 237, 226, 231, 237, 226, 231, 237, 225, 230, 236, 225, 230, 236, 224, 229, 235, 224, 229, 235, 224, 229, 235, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 225, 232, 240, 225, 232, 240, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 228, 235, 241, 228, 235, 241, 229, 236, 242, 229, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 245, 236, 241, 245, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 236, 243, 251, 227, 234, 242, 229, 233, 242, 230, 235, 241, 229, 232, 239, 229, 230, 234, 215, 215, 217, 190, 189, 187, 160, 155, 151, 161, 157, 148, 103, 96, 86, 50, 43, 33, 110, 101, 94, 87, 78, 73, 54, 43, 41, 58, 47, 45, 28, 18, 16, 22, 12, 10, 43, 32, 30, 56, 45, 43, 50, 39, 37, 65, 54, 52, 76, 62, 59, 52, 38, 35, 44, 29, 26, 41, 26, 23, 41, 23, 21, 46, 28, 26, 59, 41, 37, 69, 51, 47, 64, 45, 41, 53, 34, 30, 72, 53, 47, 64, 45, 39, 68, 49, 43, 85, 66, 60, 91, 72, 66, 80, 61, 55, 69, 50, 44, 68, 49, 43, 62, 41, 36, 82, 61, 56, 87, 66, 61, 71, 50, 45, 65, 41, 37, 76, 52, 48, 87, 63, 59, 85, 64, 59, 83, 62, 59, 73, 54, 50, 72, 53, 49, 80, 61, 57, 83, 62, 59, 78, 57, 54, 79, 58, 55, 86, 65, 62, 90, 69, 68, 97, 76, 75, 102, 82, 81, 103, 83, 82, 99, 81, 81, 100, 82, 82, 105, 89, 89, 115, 97, 95, 95, 71, 69, 98, 72, 71, 97, 73, 71, 96, 72, 70, 99, 75, 73, 105, 81, 79, 110, 86, 84, 113, 89, 87, 117, 93, 91, 116, 92, 90, 112, 88, 86, 107, 83, 81, 102, 78, 76, 97, 73, 71, 93, 69, 67, 91, 67, 65, 96, 75, 74, 98, 77, 76, 101, 80, 77, 102, 81, 78, 103, 79, 77, 100, 76, 74, 96, 71, 67, 93, 68, 63, 91, 63, 59, 89, 62, 55, 87, 58, 52, 83, 54, 48, 80, 51, 45, 78, 49, 41, 79, 49, 41, 78, 48, 40, 81, 51, 41, 81, 51, 41, 83, 51, 40, 82, 50, 39, 80, 46, 34, 77, 43, 31, 75, 39, 25, 72, 36, 22, 60, 24, 8, 60, 24, 8, 61, 25, 9, 64, 28, 12, 69, 33, 19, 76, 40, 26, 81, 47, 35, 85, 51, 39, 91, 57, 47, 94, 61, 52, 100, 66, 57, 105, 73, 62, 113, 79, 69, 122, 90, 79, 134, 100, 90, 140, 108, 97, 126, 93, 84, 125, 92, 83, 126, 93, 86, 131, 98, 93, 136, 102, 100, 132, 98, 96, 116, 82, 81, 99, 68, 65, 108, 79, 73, 127, 103, 93, 142, 122, 115, 134, 121, 115, 122, 117, 111, 135, 136, 131, 171, 175, 174, 204, 209, 212, 227, 232, 236, 228, 235, 241, 231, 238, 246, 232, 239, 247, 233, 237, 246, 234, 238, 247, 234, 241, 247, 236, 243, 249, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 247, 238, 243, 247, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 248, 240, 245, 248, 240, 245, 248, 240, 245, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 228, 233, 239, 228, 233, 239, 227, 232, 238, 226, 231, 237, 226, 231, 237, 226, 231, 237, 225, 230, 236, 225, 230, 236, 225, 230, 236, 224, 229, 235, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 225, 232, 240, 225, 232, 240, 225, 232, 240, 226, 233, 241, 226, 233, 241, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 241, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 228, 235, 241, 228, 235, 241, 229, 236, 242, 229, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 245, 236, 241, 245, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 233, 240, 248, 226, 233, 241, 229, 233, 242, 231, 236, 242, 229, 232, 239, 226, 227, 231, 209, 207, 208, 184, 180, 177, 149, 144, 138, 146, 139, 131, 105, 96, 87, 50, 41, 32, 91, 80, 74, 94, 83, 79, 80, 69, 67, 56, 44, 44, 18, 8, 6, 32, 22, 20, 58, 47, 45, 62, 51, 49, 56, 45, 43, 74, 63, 61, 74, 60, 57, 38, 24, 21, 39, 24, 21, 43, 28, 25, 47, 29, 27, 50, 32, 30, 56, 38, 34, 62, 44, 40, 61, 42, 38, 55, 36, 32, 71, 52, 46, 65, 46, 40, 72, 53, 47, 91, 72, 66, 98, 79, 73, 85, 66, 60, 73, 54, 48, 70, 51, 45, 72, 51, 46, 91, 70, 65, 86, 65, 60, 59, 38, 33, 58, 34, 30, 83, 59, 55, 96, 72, 68, 85, 64, 59, 77, 56, 53, 74, 55, 51, 78, 59, 55, 83, 64, 60, 79, 58, 55, 70, 49, 46, 74, 53, 50, 86, 65, 62, 97, 76, 75, 103, 82, 81, 107, 87, 86, 106, 86, 85, 101, 83, 83, 101, 83, 83, 105, 89, 89, 113, 95, 93, 113, 92, 89, 111, 87, 83, 108, 84, 80, 108, 84, 80, 108, 84, 82, 105, 81, 79, 101, 77, 75, 99, 75, 73, 93, 72, 69, 92, 71, 68, 91, 70, 67, 91, 70, 67, 93, 72, 71, 97, 76, 75, 100, 79, 78, 103, 82, 81, 100, 79, 78, 98, 77, 76, 98, 74, 72, 95, 71, 69, 91, 67, 65, 87, 63, 61, 85, 60, 56, 84, 59, 54, 88, 60, 56, 88, 59, 53, 88, 57, 52, 86, 56, 48, 85, 55, 47, 85, 55, 45, 86, 53, 44, 86, 53, 44, 83, 53, 43, 83, 53, 43, 84, 52, 41, 81, 49, 38, 78, 44, 32, 73, 39, 27, 70, 34, 20, 67, 31, 17, 62, 26, 10, 62, 26, 10, 62, 26, 10, 63, 27, 11, 68, 32, 18, 73, 37, 23, 77, 43, 31, 81, 47, 37, 87, 54, 45, 89, 59, 51, 98, 65, 58, 102, 72, 62, 112, 79, 70, 119, 89, 78, 132, 100, 89, 136, 106, 95, 116, 86, 76, 118, 88, 78, 123, 93, 83, 129, 99, 91, 129, 99, 91, 121, 90, 85, 109, 78, 75, 101, 70, 65, 118, 88, 80, 129, 102, 93, 137, 117, 110, 135, 120, 113, 131, 124, 118, 144, 143, 139, 178, 180, 179, 207, 212, 215, 225, 230, 234, 228, 233, 239, 232, 236, 245, 234, 238, 247, 234, 238, 247, 234, 238, 247, 235, 240, 246, 237, 242, 248, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 247, 238, 243, 247, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 248, 240, 245, 248, 240, 245, 248, 240, 245, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 227, 232, 238, 227, 232, 238, 226, 231, 237, 226, 231, 237, 226, 231, 237, 225, 230, 236, 225, 230, 236, 225, 230, 236, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 224, 231, 239, 224, 231, 239, 224, 231, 239, 225, 232, 240, 225, 232, 240, 225, 232, 240, 226, 233, 241, 227, 232, 238, 227, 232, 238, 227, 232, 238, 227, 232, 238, 227, 232, 238, 227, 232, 238, 227, 232, 238, 227, 232, 238, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 228, 235, 241, 228, 235, 241, 229, 236, 242, 229, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 245, 236, 241, 245, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 230, 237, 245, 226, 233, 241, 231, 235, 244, 233, 236, 243, 226, 226, 234, 217, 216, 221, 198, 196, 197, 172, 168, 165, 139, 132, 126, 120, 113, 103, 89, 80, 71, 43, 34, 25, 81, 70, 64, 104, 93, 89, 98, 87, 85, 45, 33, 33, 20, 10, 8, 54, 44, 42, 50, 39, 37, 43, 32, 30, 74, 63, 61, 76, 65, 63, 42, 28, 25, 23, 9, 6, 33, 18, 15, 44, 29, 26, 56, 38, 36, 58, 40, 38, 59, 41, 37, 63, 45, 41, 67, 48, 44, 68, 49, 45, 69, 50, 44, 87, 68, 62, 97, 78, 72, 89, 70, 64, 83, 64, 58, 84, 65, 59, 80, 61, 55, 71, 52, 46, 93, 72, 67, 82, 61, 56, 71, 50, 45, 68, 47, 42, 74, 50, 46, 78, 54, 50, 76, 52, 48, 70, 49, 44, 83, 62, 59, 86, 67, 63, 91, 72, 68, 91, 72, 68, 85, 64, 61, 81, 60, 57, 88, 67, 64, 99, 78, 75, 103, 82, 81, 108, 87, 86, 111, 91, 90, 111, 91, 90, 107, 89, 89, 105, 87, 87, 105, 89, 89, 110, 92, 90, 137, 116, 113, 118, 94, 90, 99, 75, 71, 97, 73, 69, 100, 76, 74, 95, 71, 69, 82, 58, 56, 69, 48, 45, 69, 48, 45, 74, 53, 50, 82, 61, 58, 90, 69, 66, 97, 76, 75, 101, 80, 79, 103, 82, 81, 103, 82, 81, 107, 86, 85, 104, 83, 82, 102, 78, 76, 96, 72, 70, 92, 68, 66, 88, 64, 60, 87, 62, 57, 88, 60, 56, 92, 63, 57, 92, 63, 57, 93, 63, 55, 93, 63, 55, 93, 63, 53, 92, 62, 52, 94, 61, 52, 93, 60, 51, 88, 58, 48, 87, 57, 47, 86, 54, 43, 81, 49, 38, 75, 41, 29, 68, 34, 22, 63, 27, 13, 59, 23, 9, 64, 28, 12, 64, 28, 12, 63, 27, 11, 64, 28, 12, 67, 31, 17, 72, 36, 22, 76, 42, 30, 78, 46, 35, 84, 54, 46, 89, 58, 53, 97, 66, 61, 105, 75, 67, 112, 82, 74, 119, 89, 79, 126, 96, 86, 131, 101, 90, 121, 91, 81, 115, 85, 75, 115, 85, 75, 125, 95, 85, 129, 99, 91, 121, 91, 83, 106, 76, 68, 97, 67, 59, 97, 67, 57, 102, 73, 65, 115, 92, 84, 130, 115, 108, 138, 129, 124, 148, 144, 141, 172, 172, 172, 197, 201, 202, 224, 228, 231, 227, 232, 236, 232, 236, 245, 235, 239, 248, 235, 239, 248, 235, 239, 248, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 247, 238, 243, 247, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 248, 240, 245, 248, 240, 245, 248, 240, 245, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 227, 232, 238, 227, 232, 238, 227, 232, 238, 226, 231, 237, 226, 231, 237, 226, 231, 237, 225, 230, 236, 225, 230, 236, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 224, 231, 239, 224, 231, 239, 224, 231, 239, 225, 232, 240, 225, 232, 240, 225, 232, 240, 227, 232, 238, 227, 232, 238, 227, 232, 238, 227, 232, 238, 227, 232, 238, 227, 232, 238, 227, 232, 238, 227, 232, 238, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 228, 235, 241, 228, 235, 241, 229, 236, 242, 229, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 245, 236, 241, 245, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 229, 236, 244, 227, 234, 242, 234, 238, 247, 232, 235, 242, 218, 218, 226, 203, 202, 207, 181, 180, 178, 156, 153, 148, 125, 118, 110, 103, 96, 86, 76, 67, 58, 37, 27, 18, 74, 63, 57, 89, 78, 74, 81, 70, 68, 33, 21, 21, 31, 21, 19, 52, 42, 40, 42, 31, 29, 43, 32, 30, 73, 62, 60, 61, 50, 48, 28, 14, 11, 28, 14, 11, 37, 22, 19, 51, 36, 33, 65, 47, 45, 67, 49, 47, 66, 48, 44, 69, 51, 47, 74, 55, 51, 76, 57, 53, 81, 62, 56, 92, 73, 67, 92, 73, 67, 77, 58, 52, 69, 50, 44, 75, 56, 50, 79, 60, 54, 76, 57, 51, 92, 71, 66, 75, 54, 49, 72, 51, 46, 84, 63, 58, 83, 59, 55, 64, 40, 36, 60, 36, 32, 70, 49, 44, 87, 66, 63, 92, 73, 69, 94, 75, 71, 91, 72, 68, 93, 72, 69, 99, 78, 75, 105, 84, 81, 108, 87, 84, 108, 87, 86, 110, 89, 88, 113, 93, 92, 116, 96, 95, 115, 97, 97, 114, 96, 96, 110, 94, 94, 111, 93, 91, 106, 85, 82, 89, 65, 61, 78, 54, 50, 87, 63, 59, 98, 77, 72, 101, 80, 75, 97, 76, 73, 94, 73, 70, 96, 75, 72, 100, 81, 77, 106, 86, 85, 111, 91, 90, 112, 92, 91, 108, 88, 87, 102, 82, 81, 98, 78, 77, 98, 77, 76, 98, 77, 76, 100, 76, 74, 98, 74, 72, 97, 72, 68, 94, 69, 65, 93, 65, 61, 91, 63, 59, 88, 59, 53, 88, 59, 53, 89, 59, 51, 89, 59, 51, 90, 57, 48, 88, 55, 46, 88, 54, 44, 86, 54, 43, 82, 52, 42, 81, 51, 41, 82, 50, 39, 79, 47, 36, 75, 41, 29, 69, 35, 23, 66, 30, 16, 63, 27, 13, 64, 28, 12, 64, 28, 12, 63, 27, 11, 65, 29, 13, 69, 33, 19, 74, 38, 24, 78, 44, 32, 80, 48, 37, 87, 56, 51, 93, 64, 58, 102, 73, 67, 110, 81, 73, 115, 86, 78, 120, 92, 81, 124, 96, 85, 126, 98, 87, 124, 96, 84, 118, 90, 78, 118, 90, 78, 128, 100, 88, 129, 101, 90, 116, 88, 77, 101, 73, 62, 94, 64, 54, 79, 49, 39, 78, 49, 41, 96, 73, 65, 125, 108, 100, 137, 126, 120, 138, 135, 130, 158, 158, 156, 186, 190, 191, 222, 226, 229, 227, 230, 235, 233, 236, 245, 236, 239, 248, 236, 239, 248, 236, 239, 248, 236, 239, 248, 237, 240, 249, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 247, 238, 243, 247, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 248, 240, 245, 248, 240, 245, 248, 240, 245, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 227, 232, 238, 227, 232, 238, 227, 232, 238, 226, 231, 237, 226, 231, 237, 226, 231, 237, 225, 230, 236, 225, 230, 236, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 224, 231, 239, 224, 231, 239, 224, 231, 239, 225, 232, 240, 225, 232, 240, 225, 232, 240, 227, 232, 238, 227, 232, 238, 227, 232, 238, 227, 232, 238, 227, 232, 238, 227, 232, 238, 227, 232, 238, 227, 232, 238, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 228, 235, 241, 228, 235, 241, 229, 236, 242, 229, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 245, 236, 241, 245, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 228, 235, 243, 229, 236, 244, 236, 240, 249, 231, 234, 241, 213, 212, 217, 193, 191, 192, 172, 167, 164, 145, 140, 134, 114, 107, 99, 101, 92, 83, 75, 66, 57, 37, 26, 20, 66, 55, 51, 61, 50, 48, 51, 39, 39, 26, 14, 14, 42, 31, 29, 32, 21, 19, 45, 34, 32, 64, 53, 51, 59, 45, 44, 43, 29, 26, 40, 26, 23, 44, 29, 26, 48, 33, 30, 61, 46, 43, 73, 55, 53, 73, 55, 51, 71, 53, 49, 73, 55, 51, 76, 57, 53, 76, 57, 53, 90, 71, 65, 70, 51, 45, 58, 39, 33, 64, 45, 39, 71, 52, 46, 73, 54, 48, 80, 61, 55, 91, 72, 66, 65, 46, 40, 68, 49, 43, 82, 61, 56, 91, 70, 65, 76, 55, 50, 58, 37, 32, 68, 47, 42, 95, 74, 69, 86, 65, 62, 89, 70, 66, 88, 69, 65, 85, 66, 62, 94, 73, 70, 110, 89, 86, 114, 95, 91, 108, 89, 85, 108, 88, 87, 110, 90, 89, 114, 94, 93, 118, 100, 98, 122, 104, 102, 122, 104, 102, 115, 99, 99, 113, 95, 93, 95, 74, 71, 90, 69, 66, 95, 71, 69, 103, 82, 79, 106, 85, 82, 103, 82, 79, 104, 83, 80, 111, 90, 87, 111, 92, 88, 111, 92, 88, 111, 91, 90, 108, 88, 87, 102, 82, 81, 95, 75, 74, 88, 67, 66, 83, 62, 61, 75, 54, 51, 79, 58, 55, 86, 62, 60, 89, 65, 61, 91, 66, 62, 88, 63, 59, 86, 58, 55, 84, 56, 52, 80, 51, 47, 79, 50, 44, 80, 50, 42, 79, 49, 41, 76, 46, 36, 75, 43, 32, 72, 40, 29, 71, 39, 28, 72, 40, 29, 73, 41, 30, 75, 43, 32, 76, 44, 33, 77, 43, 31, 75, 41, 29, 75, 39, 25, 73, 37, 23, 63, 27, 11, 62, 26, 10, 63, 27, 11, 65, 29, 13, 70, 34, 20, 76, 40, 26, 81, 48, 33, 83, 51, 40, 91, 61, 53, 97, 68, 62, 108, 79, 71, 116, 87, 79, 120, 91, 83, 122, 94, 83, 124, 96, 85, 125, 97, 86, 123, 93, 82, 124, 94, 83, 132, 102, 91, 138, 108, 98, 129, 99, 89, 109, 79, 69, 97, 67, 57, 96, 66, 56, 88, 55, 48, 83, 50, 43, 99, 72, 65, 130, 110, 103, 140, 127, 121, 136, 128, 125, 156, 155, 153, 193, 194, 196, 221, 225, 228, 225, 230, 236, 231, 235, 244, 235, 239, 248, 236, 240, 249, 235, 239, 248, 236, 239, 246, 237, 240, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 247, 238, 243, 247, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 248, 240, 245, 248, 240, 245, 248, 240, 245, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 233, 236, 243, 233, 236, 243, 233, 236, 243, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 227, 232, 238, 227, 232, 238, 226, 231, 237, 226, 231, 237, 225, 230, 236, 225, 230, 236, 225, 230, 236, 225, 230, 236, 225, 230, 236, 225, 230, 236, 225, 230, 236, 225, 230, 236, 225, 230, 236, 225, 230, 236, 225, 230, 236, 225, 230, 236, 225, 230, 236, 225, 230, 236, 225, 230, 236, 225, 230, 236, 223, 230, 236, 223, 230, 236, 223, 230, 236, 223, 230, 236, 223, 230, 236, 223, 230, 236, 223, 230, 236, 223, 230, 236, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 236, 241, 245, 236, 241, 245, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 229, 236, 242, 218, 227, 234, 229, 238, 245, 228, 233, 239, 223, 224, 228, 222, 218, 219, 193, 188, 185, 154, 145, 140, 136, 127, 120, 118, 109, 102, 105, 96, 89, 62, 53, 48, 46, 36, 34, 41, 31, 30, 44, 34, 33, 59, 49, 50, 41, 29, 29, 30, 16, 15, 38, 24, 21, 61, 47, 44, 69, 55, 52, 52, 37, 34, 41, 26, 23, 37, 22, 19, 28, 10, 6, 48, 30, 26, 67, 49, 45, 76, 58, 54, 80, 63, 56, 81, 62, 56, 64, 45, 39, 58, 39, 33, 75, 56, 50, 84, 67, 60, 73, 56, 49, 75, 58, 51, 75, 58, 51, 65, 48, 41, 70, 53, 46, 79, 62, 55, 74, 57, 50, 76, 59, 52, 78, 61, 54, 75, 56, 50, 69, 50, 44, 74, 55, 49, 85, 66, 60, 87, 68, 62, 81, 62, 56, 85, 64, 61, 75, 54, 51, 93, 72, 69, 107, 86, 83, 95, 76, 72, 103, 84, 80, 118, 100, 96, 113, 95, 91, 94, 76, 72, 108, 90, 86, 136, 118, 114, 135, 117, 113, 105, 87, 83, 103, 85, 81, 113, 95, 93, 102, 84, 82, 83, 63, 62, 91, 71, 70, 101, 80, 79, 104, 84, 83, 102, 82, 81, 99, 79, 78, 100, 79, 78, 101, 80, 79, 108, 87, 84, 107, 86, 83, 101, 80, 77, 91, 70, 67, 81, 60, 57, 78, 57, 54, 85, 61, 59, 90, 69, 66, 77, 56, 51, 80, 60, 53, 80, 57, 51, 75, 51, 47, 77, 53, 49, 86, 62, 58, 87, 62, 58, 80, 55, 51, 91, 63, 60, 89, 61, 57, 86, 57, 51, 82, 54, 43, 79, 51, 39, 77, 48, 34, 75, 46, 30, 76, 44, 29, 79, 47, 34, 80, 46, 34, 79, 45, 33, 77, 43, 31, 76, 42, 30, 75, 41, 29, 73, 40, 25, 73, 40, 25, 69, 36, 21, 65, 32, 17, 65, 32, 15, 69, 36, 19, 72, 39, 22, 74, 41, 24, 79, 46, 29, 85, 53, 38, 90, 60, 49, 95, 65, 55, 103, 73, 63, 110, 80, 70, 113, 83, 73, 116, 86, 76, 120, 90, 80, 122, 92, 82, 131, 98, 89, 138, 105, 96, 145, 112, 103, 134, 101, 94, 115, 82, 75, 111, 78, 71, 110, 77, 70, 99, 64, 58, 100, 62, 59, 94, 56, 53, 109, 75, 73, 137, 109, 106, 142, 123, 119, 137, 123, 122, 156, 150, 150, 192, 192, 194, 211, 216, 220, 227, 236, 241, 232, 241, 248, 227, 236, 243, 232, 241, 248, 236, 243, 249, 237, 240, 245, 238, 241, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 241, 246, 250, 241, 246, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 250, 238, 243, 249, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 236, 243, 233, 236, 243, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 228, 233, 239, 228, 233, 239, 228, 233, 239, 227, 232, 238, 227, 232, 238, 227, 232, 238, 226, 231, 237, 226, 231, 237, 226, 231, 237, 226, 231, 237, 226, 231, 237, 226, 231, 237, 226, 231, 237, 226, 231, 237, 226, 231, 237, 225, 230, 236, 225, 230, 236, 225, 230, 236, 225, 230, 236, 225, 230, 236, 225, 230, 236, 225, 230, 236, 225, 230, 236, 223, 230, 236, 223, 230, 236, 223, 230, 236, 223, 230, 236, 223, 230, 236, 223, 230, 236, 223, 230, 236, 223, 230, 236, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 236, 241, 245, 236, 241, 245, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 231, 236, 242, 229, 236, 242, 226, 237, 243, 228, 239, 245, 227, 232, 236, 224, 224, 224, 210, 205, 202, 166, 159, 153, 127, 116, 110, 119, 109, 100, 130, 119, 113, 108, 97, 93, 60, 50, 48, 44, 34, 33, 44, 35, 36, 53, 44, 45, 62, 52, 53, 34, 22, 22, 39, 25, 24, 49, 34, 31, 66, 51, 48, 60, 45, 42, 32, 17, 14, 24, 9, 6, 40, 22, 18, 47, 29, 25, 55, 37, 33, 71, 53, 49, 69, 52, 45, 59, 42, 35, 65, 46, 40, 69, 50, 44, 72, 53, 47, 81, 62, 56, 73, 56, 49, 62, 45, 38, 64, 47, 40, 67, 50, 43, 64, 47, 40, 75, 58, 51, 87, 70, 63, 83, 66, 59, 67, 50, 43, 75, 58, 51, 78, 61, 54, 73, 56, 49, 72, 55, 48, 78, 61, 54, 82, 65, 58, 82, 63, 57, 78, 57, 54, 118, 94, 92, 113, 92, 89, 91, 70, 67, 99, 80, 76, 106, 88, 84, 96, 81, 76, 96, 81, 76, 118, 103, 98, 122, 107, 102, 111, 96, 91, 99, 84, 79, 107, 89, 85, 114, 96, 92, 103, 85, 81, 87, 69, 65, 94, 74, 75, 96, 76, 77, 99, 79, 80, 100, 80, 81, 100, 80, 79, 100, 80, 79, 103, 82, 81, 105, 84, 83, 100, 79, 76, 96, 75, 72, 89, 68, 65, 84, 63, 60, 85, 61, 59, 85, 61, 59, 86, 62, 60, 86, 62, 58, 91, 71, 64, 93, 73, 64, 92, 69, 63, 86, 63, 57, 87, 63, 59, 92, 68, 64, 92, 66, 65, 85, 60, 56, 91, 63, 60, 89, 61, 57, 88, 59, 53, 85, 57, 46, 83, 55, 43, 82, 55, 38, 82, 53, 37, 82, 53, 35, 79, 45, 33, 78, 44, 32, 76, 42, 30, 75, 41, 29, 72, 38, 26, 71, 37, 25, 69, 36, 21, 68, 35, 20, 69, 36, 21, 65, 32, 17, 64, 31, 14, 69, 36, 19, 72, 39, 22, 74, 41, 24, 80, 47, 30, 86, 53, 38, 93, 61, 48, 96, 66, 55, 102, 72, 61, 107, 77, 66, 111, 81, 70, 115, 85, 74, 121, 88, 79, 124, 91, 82, 129, 96, 87, 133, 100, 91, 139, 104, 98, 131, 96, 90, 116, 81, 75, 115, 80, 74, 115, 80, 74, 106, 69, 63, 99, 59, 59, 97, 57, 57, 109, 74, 72, 132, 102, 100, 140, 116, 114, 139, 123, 123, 160, 151, 152, 188, 188, 190, 208, 213, 217, 224, 235, 239, 230, 240, 249, 224, 237, 243, 231, 240, 247, 235, 243, 246, 236, 239, 244, 237, 241, 244, 238, 241, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 241, 246, 250, 241, 246, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 236, 243, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 228, 233, 239, 228, 233, 239, 228, 233, 239, 227, 232, 238, 227, 232, 238, 227, 232, 238, 226, 231, 237, 226, 231, 237, 226, 231, 237, 226, 231, 237, 226, 231, 237, 226, 231, 237, 226, 231, 237, 226, 231, 237, 225, 230, 236, 225, 230, 236, 225, 230, 236, 225, 230, 236, 225, 230, 236, 225, 230, 236, 225, 230, 236, 225, 230, 236, 223, 230, 236, 223, 230, 236, 223, 230, 236, 223, 230, 236, 223, 230, 236, 223, 230, 236, 223, 230, 236, 223, 230, 236, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 236, 241, 245, 236, 241, 245, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 229, 236, 242, 229, 238, 245, 225, 234, 239, 223, 227, 230, 219, 219, 219, 194, 189, 186, 142, 135, 129, 106, 95, 89, 105, 95, 86, 120, 109, 103, 91, 80, 76, 54, 44, 42, 48, 38, 37, 51, 42, 43, 56, 47, 48, 54, 44, 43, 22, 10, 10, 54, 40, 39, 53, 38, 35, 54, 39, 36, 43, 28, 25, 25, 10, 7, 29, 14, 11, 53, 35, 31, 67, 49, 45, 56, 38, 34, 69, 51, 47, 60, 43, 36, 45, 28, 21, 56, 37, 31, 75, 56, 50, 80, 61, 55, 77, 58, 52, 64, 45, 39, 54, 35, 29, 54, 35, 29, 58, 39, 33, 63, 44, 38, 75, 56, 50, 85, 66, 60, 82, 63, 57, 67, 48, 42, 76, 57, 51, 80, 61, 55, 73, 54, 48, 68, 49, 43, 74, 55, 49, 84, 65, 59, 92, 73, 67, 99, 78, 75, 110, 89, 86, 103, 82, 79, 101, 80, 77, 107, 88, 84, 93, 75, 71, 86, 71, 66, 112, 97, 92, 126, 111, 106, 118, 103, 98, 90, 75, 70, 88, 73, 68, 118, 100, 96, 113, 95, 91, 90, 71, 67, 92, 73, 69, 106, 86, 87, 102, 82, 83, 97, 77, 78, 95, 75, 76, 98, 78, 77, 102, 82, 81, 106, 85, 84, 107, 86, 85, 100, 79, 76, 93, 72, 69, 90, 66, 64, 91, 67, 65, 96, 72, 70, 99, 75, 73, 95, 71, 69, 91, 67, 63, 97, 74, 68, 99, 76, 68, 97, 74, 68, 94, 71, 65, 97, 72, 68, 101, 76, 72, 100, 75, 71, 94, 69, 65, 86, 58, 55, 85, 57, 53, 85, 56, 50, 83, 55, 44, 83, 53, 42, 83, 54, 38, 84, 55, 39, 84, 55, 37, 77, 43, 31, 76, 42, 30, 74, 40, 28, 71, 37, 25, 69, 36, 21, 66, 33, 18, 64, 31, 16, 63, 30, 15, 67, 34, 19, 64, 31, 16, 64, 31, 14, 69, 36, 19, 73, 40, 23, 75, 42, 25, 81, 48, 31, 87, 54, 39, 94, 62, 49, 97, 65, 54, 101, 69, 58, 105, 73, 62, 108, 76, 65, 113, 81, 70, 119, 86, 77, 123, 90, 81, 128, 94, 85, 126, 92, 83, 129, 94, 88, 126, 91, 85, 119, 82, 76, 121, 84, 78, 122, 85, 79, 112, 75, 69, 92, 52, 52, 93, 53, 53, 102, 67, 65, 115, 85, 83, 125, 101, 99, 134, 116, 114, 152, 143, 144, 172, 172, 174, 202, 207, 211, 220, 231, 235, 228, 238, 247, 223, 236, 242, 231, 240, 247, 234, 242, 245, 235, 238, 243, 237, 241, 244, 238, 241, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 241, 246, 250, 241, 246, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 228, 233, 239, 228, 233, 239, 228, 233, 239, 227, 232, 238, 227, 232, 238, 226, 231, 237, 226, 231, 237, 226, 231, 237, 226, 231, 237, 226, 231, 237, 226, 231, 237, 226, 231, 237, 226, 231, 237, 226, 231, 237, 226, 231, 237, 226, 231, 237, 226, 231, 237, 226, 231, 237, 226, 231, 237, 226, 231, 237, 226, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 236, 241, 245, 236, 241, 245, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 229, 236, 242, 224, 233, 238, 219, 226, 232, 214, 218, 221, 207, 207, 207, 184, 179, 175, 144, 137, 131, 111, 100, 94, 99, 88, 82, 88, 77, 73, 58, 49, 44, 49, 39, 38, 61, 51, 50, 55, 46, 47, 46, 37, 38, 42, 32, 31, 28, 17, 15, 67, 53, 52, 49, 34, 31, 32, 17, 14, 30, 15, 12, 41, 26, 23, 58, 43, 40, 70, 52, 48, 70, 52, 48, 52, 34, 30, 57, 39, 35, 53, 36, 29, 48, 31, 24, 61, 42, 36, 75, 56, 50, 73, 54, 48, 62, 43, 37, 61, 42, 36, 55, 36, 30, 54, 35, 29, 58, 39, 33, 64, 45, 39, 70, 51, 45, 72, 53, 47, 68, 49, 43, 80, 61, 55, 80, 61, 55, 77, 58, 52, 70, 51, 45, 68, 49, 43, 76, 57, 51, 91, 72, 66, 102, 83, 77, 110, 89, 86, 83, 62, 59, 90, 69, 66, 105, 86, 82, 95, 77, 73, 99, 81, 77, 116, 101, 96, 121, 106, 101, 102, 87, 82, 92, 77, 72, 91, 76, 71, 113, 98, 93, 126, 108, 104, 100, 82, 78, 89, 70, 66, 114, 94, 93, 109, 89, 90, 102, 82, 83, 95, 75, 76, 93, 73, 74, 97, 77, 76, 101, 81, 80, 103, 82, 81, 102, 81, 80, 97, 76, 73, 94, 73, 70, 95, 71, 69, 97, 73, 71, 101, 77, 75, 101, 77, 75, 98, 74, 72, 95, 71, 67, 88, 65, 59, 89, 66, 58, 90, 67, 61, 92, 69, 63, 97, 72, 68, 101, 76, 72, 101, 76, 72, 99, 74, 69, 79, 51, 47, 78, 51, 44, 78, 49, 41, 76, 48, 37, 76, 46, 35, 75, 46, 32, 76, 47, 31, 78, 46, 31, 77, 44, 29, 76, 42, 30, 73, 39, 27, 70, 36, 24, 67, 34, 19, 64, 31, 16, 61, 28, 13, 60, 27, 12, 66, 33, 18, 62, 29, 14, 63, 30, 13, 68, 35, 18, 73, 40, 23, 76, 43, 26, 82, 49, 32, 89, 56, 41, 94, 62, 49, 96, 64, 53, 98, 66, 55, 100, 68, 57, 103, 71, 60, 108, 76, 65, 114, 81, 72, 120, 87, 78, 124, 90, 81, 118, 84, 75, 120, 85, 79, 121, 86, 80, 120, 83, 77, 124, 87, 81, 127, 90, 84, 120, 81, 76, 99, 59, 59, 102, 62, 62, 103, 68, 66, 107, 78, 74, 118, 92, 91, 132, 114, 112, 149, 140, 141, 159, 159, 161, 195, 200, 204, 217, 226, 231, 227, 238, 244, 226, 237, 243, 230, 239, 244, 233, 240, 246, 234, 237, 242, 237, 241, 244, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 241, 246, 250, 241, 246, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 249, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 227, 232, 238, 227, 232, 238, 227, 232, 238, 227, 232, 238, 227, 232, 238, 227, 232, 238, 227, 232, 238, 227, 232, 238, 226, 231, 237, 226, 231, 237, 226, 231, 237, 226, 231, 237, 226, 231, 237, 226, 231, 237, 226, 231, 237, 226, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 236, 241, 245, 236, 241, 245, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 223, 230, 236, 220, 225, 229, 211, 212, 214, 193, 192, 190, 175, 170, 166, 155, 148, 142, 123, 112, 106, 89, 78, 72, 67, 58, 53, 38, 29, 24, 53, 43, 42, 73, 65, 63, 56, 46, 45, 40, 30, 29, 48, 38, 37, 62, 51, 49, 69, 55, 54, 48, 33, 30, 28, 13, 10, 35, 20, 17, 61, 46, 43, 77, 62, 59, 73, 55, 51, 61, 43, 39, 53, 35, 31, 46, 28, 24, 47, 30, 23, 56, 39, 32, 64, 45, 39, 65, 46, 40, 61, 42, 36, 55, 36, 30, 61, 42, 36, 62, 43, 37, 62, 43, 37, 66, 47, 41, 72, 53, 47, 73, 54, 48, 68, 49, 43, 65, 46, 40, 87, 68, 62, 81, 62, 56, 76, 57, 51, 75, 56, 50, 79, 60, 54, 85, 66, 60, 92, 73, 67, 98, 79, 73, 91, 70, 67, 97, 76, 75, 101, 81, 80, 88, 68, 67, 86, 68, 66, 127, 109, 107, 135, 120, 117, 93, 78, 75, 83, 68, 65, 82, 67, 64, 110, 92, 90, 130, 112, 110, 114, 94, 93, 100, 80, 79, 109, 89, 88, 118, 98, 97, 102, 82, 83, 97, 77, 78, 93, 73, 74, 94, 74, 75, 98, 77, 76, 99, 78, 77, 96, 75, 74, 93, 72, 71, 87, 66, 63, 91, 70, 67, 97, 73, 71, 96, 72, 70, 92, 68, 66, 89, 65, 63, 89, 65, 63, 91, 67, 63, 86, 63, 57, 84, 61, 55, 86, 61, 56, 91, 66, 61, 94, 69, 65, 94, 69, 65, 94, 66, 62, 93, 65, 61, 78, 49, 45, 76, 47, 41, 74, 44, 36, 72, 42, 32, 70, 40, 29, 68, 39, 25, 69, 37, 22, 69, 37, 22, 78, 45, 30, 76, 43, 28, 74, 41, 26, 71, 38, 23, 67, 34, 19, 64, 31, 16, 61, 28, 13, 60, 27, 12, 64, 31, 16, 61, 28, 13, 62, 29, 14, 68, 35, 20, 73, 40, 25, 77, 44, 29, 83, 50, 35, 91, 58, 43, 95, 61, 49, 96, 62, 52, 98, 64, 54, 99, 65, 55, 101, 67, 57, 106, 72, 62, 112, 78, 69, 117, 83, 74, 123, 86, 78, 115, 78, 70, 118, 81, 75, 123, 86, 80, 122, 85, 79, 125, 88, 82, 130, 91, 86, 125, 86, 81, 122, 82, 82, 120, 82, 81, 116, 81, 79, 113, 84, 80, 123, 97, 96, 140, 122, 120, 155, 145, 144, 161, 159, 160, 189, 193, 196, 213, 222, 227, 227, 238, 244, 227, 238, 244, 231, 240, 245, 233, 240, 246, 233, 238, 242, 237, 240, 245, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 241, 246, 250, 241, 246, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 237, 240, 247, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 228, 233, 239, 228, 233, 239, 228, 233, 239, 227, 232, 238, 227, 232, 238, 227, 232, 238, 227, 232, 238, 227, 232, 238, 227, 232, 238, 227, 232, 238, 227, 232, 238, 226, 231, 237, 226, 231, 237, 226, 231, 237, 226, 231, 237, 226, 231, 237, 226, 231, 237, 226, 231, 237, 226, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 236, 241, 245, 236, 241, 245, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 226, 231, 235, 219, 224, 227, 205, 207, 206, 180, 179, 177, 161, 156, 152, 150, 141, 136, 117, 106, 100, 71, 60, 54, 67, 58, 53, 40, 30, 28, 62, 54, 52, 75, 67, 65, 53, 43, 42, 51, 41, 40, 68, 58, 57, 87, 76, 74, 57, 43, 40, 53, 38, 35, 43, 28, 25, 47, 32, 29, 65, 50, 47, 68, 53, 50, 58, 40, 36, 50, 32, 28, 57, 39, 35, 45, 27, 23, 48, 31, 24, 58, 41, 34, 57, 38, 32, 56, 37, 31, 61, 42, 36, 63, 44, 38, 60, 41, 35, 68, 49, 43, 70, 51, 45, 73, 54, 48, 80, 61, 55, 78, 59, 53, 74, 55, 49, 78, 59, 53, 84, 65, 59, 78, 59, 53, 76, 57, 51, 83, 64, 58, 88, 69, 63, 88, 69, 63, 86, 67, 61, 87, 68, 64, 92, 71, 70, 112, 92, 91, 102, 82, 81, 93, 73, 72, 115, 97, 95, 120, 102, 100, 93, 78, 75, 80, 65, 62, 91, 76, 73, 101, 86, 83, 123, 105, 103, 115, 97, 95, 95, 75, 74, 112, 92, 91, 124, 104, 103, 98, 78, 77, 92, 72, 73, 92, 72, 73, 92, 72, 73, 94, 74, 75, 96, 75, 74, 95, 74, 73, 91, 70, 69, 88, 67, 66, 89, 68, 65, 95, 74, 71, 101, 77, 75, 98, 74, 72, 92, 68, 66, 87, 63, 61, 89, 65, 63, 93, 69, 65, 95, 71, 67, 90, 67, 61, 89, 64, 59, 92, 67, 62, 91, 66, 62, 84, 59, 54, 80, 52, 48, 79, 52, 45, 77, 48, 42, 76, 47, 39, 74, 44, 34, 71, 41, 30, 68, 39, 25, 67, 38, 24, 68, 36, 21, 68, 36, 21, 76, 43, 28, 75, 42, 27, 73, 40, 25, 70, 37, 22, 67, 34, 19, 65, 32, 17, 63, 30, 15, 61, 28, 13, 62, 29, 14, 59, 26, 11, 61, 28, 13, 68, 35, 20, 74, 41, 26, 78, 45, 30, 85, 52, 37, 92, 59, 44, 97, 63, 53, 99, 65, 55, 102, 68, 58, 103, 69, 59, 104, 70, 60, 107, 73, 63, 112, 78, 69, 116, 82, 73, 120, 83, 75, 113, 76, 68, 119, 82, 76, 128, 91, 85, 124, 87, 81, 123, 86, 80, 129, 90, 85, 128, 88, 86, 132, 92, 92, 123, 85, 84, 113, 78, 76, 111, 80, 77, 121, 96, 92, 137, 119, 117, 151, 141, 140, 157, 155, 156, 183, 187, 190, 211, 219, 222, 228, 237, 242, 228, 239, 245, 232, 241, 246, 233, 240, 246, 234, 239, 243, 238, 241, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 241, 246, 250, 241, 246, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 237, 240, 247, 237, 240, 247, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 228, 233, 239, 228, 233, 239, 227, 232, 238, 227, 232, 238, 227, 232, 238, 227, 232, 238, 227, 232, 238, 227, 232, 238, 227, 232, 238, 227, 232, 238, 227, 232, 238, 227, 232, 238, 227, 232, 238, 227, 232, 238, 227, 232, 238, 227, 232, 238, 227, 232, 238, 227, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 228, 233, 239, 228, 233, 239, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 236, 241, 245, 236, 241, 245, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 239, 221, 226, 229, 208, 212, 213, 195, 195, 193, 172, 168, 165, 145, 137, 134, 124, 115, 110, 95, 84, 78, 57, 46, 40, 65, 56, 51, 45, 35, 33, 68, 60, 58, 66, 57, 58, 52, 42, 41, 73, 63, 62, 78, 67, 65, 65, 54, 52, 43, 29, 26, 50, 35, 32, 45, 30, 27, 47, 32, 29, 58, 43, 40, 54, 39, 36, 44, 26, 22, 44, 26, 22, 49, 31, 27, 49, 31, 27, 58, 41, 34, 60, 43, 36, 52, 33, 27, 58, 39, 33, 71, 52, 46, 70, 51, 45, 60, 39, 36, 72, 51, 48, 72, 51, 48, 70, 49, 46, 75, 54, 51, 74, 53, 50, 75, 54, 51, 88, 67, 64, 83, 62, 59, 77, 56, 53, 75, 54, 51, 78, 57, 54, 78, 57, 54, 75, 54, 51, 79, 58, 55, 87, 66, 63, 108, 88, 87, 99, 79, 78, 92, 72, 71, 112, 94, 92, 126, 108, 106, 90, 72, 70, 67, 52, 49, 94, 79, 76, 110, 95, 92, 117, 102, 99, 118, 100, 98, 104, 86, 84, 102, 82, 81, 113, 93, 92, 110, 89, 88, 89, 68, 67, 88, 66, 68, 90, 68, 70, 93, 71, 73, 94, 72, 74, 92, 71, 70, 90, 69, 68, 90, 69, 68, 91, 70, 69, 97, 73, 71, 98, 74, 72, 98, 74, 72, 97, 73, 71, 97, 71, 70, 96, 70, 69, 96, 70, 69, 97, 72, 68, 99, 74, 70, 92, 67, 62, 89, 64, 59, 92, 67, 62, 91, 63, 59, 79, 51, 47, 72, 43, 39, 72, 43, 37, 74, 43, 38, 73, 43, 35, 71, 41, 31, 69, 39, 28, 70, 38, 25, 69, 37, 24, 70, 38, 23, 70, 38, 23, 72, 39, 22, 72, 39, 22, 70, 37, 20, 68, 35, 18, 66, 33, 18, 64, 31, 16, 63, 30, 15, 62, 29, 14, 61, 28, 13, 58, 25, 10, 60, 27, 12, 67, 34, 19, 74, 41, 26, 78, 45, 30, 86, 53, 38, 94, 61, 46, 101, 67, 57, 104, 70, 60, 109, 75, 65, 111, 77, 67, 114, 77, 68, 115, 78, 69, 117, 80, 72, 119, 82, 74, 118, 81, 73, 113, 76, 68, 125, 86, 81, 134, 95, 90, 127, 88, 83, 121, 82, 77, 126, 87, 82, 128, 88, 86, 128, 88, 88, 112, 73, 74, 99, 64, 62, 102, 71, 68, 114, 89, 85, 129, 110, 106, 144, 133, 131, 154, 150, 149, 181, 182, 184, 209, 217, 220, 228, 237, 242, 230, 241, 245, 233, 242, 247, 234, 241, 247, 234, 239, 243, 240, 243, 248, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 241, 246, 250, 241, 246, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 237, 240, 247, 237, 240, 247, 237, 240, 247, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 227, 232, 238, 227, 232, 238, 227, 232, 238, 227, 232, 238, 227, 232, 238, 227, 232, 238, 227, 232, 238, 227, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 225, 232, 240, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 228, 233, 239, 228, 233, 239, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 230, 235, 241, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 236, 241, 245, 236, 241, 245, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 238, 212, 216, 217, 194, 196, 195, 184, 183, 179, 166, 163, 158, 132, 125, 119, 101, 92, 87, 78, 67, 61, 51, 42, 37, 54, 44, 42, 42, 34, 32, 67, 58, 59, 56, 47, 48, 51, 41, 40, 90, 80, 79, 74, 63, 61, 23, 12, 10, 35, 20, 17, 40, 25, 22, 34, 19, 16, 37, 22, 19, 52, 37, 34, 50, 35, 32, 40, 22, 18, 41, 23, 19, 35, 17, 13, 51, 33, 29, 71, 54, 47, 65, 48, 41, 52, 33, 27, 66, 47, 41, 80, 61, 55, 70, 51, 45, 62, 41, 38, 74, 53, 50, 70, 49, 46, 62, 41, 38, 64, 43, 40, 62, 41, 38, 67, 46, 43, 86, 65, 62, 87, 66, 63, 78, 57, 54, 71, 50, 47, 65, 44, 41, 58, 37, 34, 58, 37, 34, 75, 54, 51, 96, 75, 72, 107, 87, 86, 86, 66, 65, 98, 80, 78, 113, 95, 93, 93, 75, 73, 84, 66, 64, 96, 81, 78, 99, 84, 81, 118, 103, 100, 117, 102, 99, 107, 89, 87, 111, 93, 91, 124, 104, 103, 103, 83, 82, 83, 62, 61, 96, 75, 74, 87, 65, 67, 90, 68, 70, 93, 71, 73, 92, 70, 72, 89, 68, 67, 88, 67, 66, 91, 70, 69, 95, 74, 73, 94, 70, 68, 89, 65, 63, 85, 61, 59, 87, 63, 61, 93, 67, 66, 96, 70, 69, 95, 69, 68, 91, 65, 64, 93, 68, 64, 86, 61, 56, 84, 59, 54, 89, 64, 59, 88, 60, 56, 77, 50, 43, 70, 41, 35, 71, 42, 34, 67, 37, 29, 66, 36, 26, 66, 36, 25, 65, 35, 24, 68, 36, 23, 69, 37, 24, 70, 38, 23, 71, 39, 24, 69, 36, 19, 69, 36, 19, 68, 35, 18, 66, 33, 16, 65, 32, 17, 63, 30, 15, 62, 29, 14, 62, 29, 14, 61, 28, 13, 58, 25, 10, 60, 27, 12, 67, 34, 19, 74, 41, 26, 79, 46, 31, 86, 53, 38, 94, 60, 48, 104, 70, 60, 109, 75, 65, 114, 80, 70, 117, 83, 73, 120, 83, 74, 120, 83, 74, 120, 83, 75, 121, 84, 76, 116, 79, 71, 114, 77, 69, 128, 89, 84, 138, 99, 94, 128, 89, 84, 119, 80, 75, 124, 85, 80, 128, 88, 86, 128, 88, 88, 108, 69, 70, 94, 59, 57, 101, 70, 67, 115, 90, 86, 129, 110, 104, 145, 134, 130, 160, 155, 152, 179, 181, 180, 210, 215, 218, 229, 239, 241, 231, 242, 246, 234, 243, 248, 235, 242, 248, 235, 240, 244, 240, 243, 248, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 241, 246, 250, 241, 246, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 233, 236, 243, 233, 236, 243, 233, 236, 243, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 237, 225, 232, 238, 225, 232, 238, 225, 232, 238, 226, 233, 239, 226, 233, 239, 226, 233, 239, 227, 234, 240, 225, 232, 238, 225, 232, 238, 225, 232, 238, 226, 233, 239, 226, 233, 239, 226, 233, 239, 227, 234, 240, 227, 234, 240, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 236, 241, 245, 236, 241, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 225, 230, 236, 230, 235, 241, 236, 241, 247, 229, 234, 240, 225, 230, 236, 225, 230, 236, 221, 224, 229, 211, 212, 214, 188, 188, 186, 167, 163, 160, 168, 163, 159, 140, 133, 127, 100, 91, 84, 84, 75, 70, 56, 47, 42, 45, 35, 33, 42, 34, 32, 65, 56, 57, 40, 31, 32, 76, 66, 65, 65, 55, 54, 39, 28, 26, 22, 11, 9, 54, 39, 36, 46, 31, 28, 50, 35, 32, 63, 48, 45, 64, 49, 46, 49, 34, 31, 41, 23, 19, 43, 25, 21, 52, 34, 30, 71, 53, 49, 68, 51, 44, 48, 31, 24, 56, 37, 31, 86, 67, 61, 91, 72, 66, 70, 51, 45, 63, 42, 39, 61, 40, 37, 63, 42, 39, 65, 44, 41, 61, 40, 37, 57, 36, 33, 60, 39, 36, 69, 48, 45, 73, 52, 49, 59, 38, 35, 67, 46, 43, 71, 50, 47, 59, 38, 35, 74, 53, 50, 99, 78, 75, 100, 79, 76, 85, 65, 64, 99, 81, 79, 109, 91, 89, 101, 83, 81, 82, 67, 64, 79, 64, 61, 97, 82, 79, 117, 102, 99, 117, 99, 97, 120, 102, 100, 120, 100, 99, 108, 88, 87, 93, 72, 71, 86, 65, 64, 93, 69, 69, 101, 77, 77, 89, 67, 69, 89, 67, 69, 90, 68, 70, 91, 69, 71, 94, 70, 70, 95, 71, 71, 96, 72, 72, 96, 72, 72, 98, 74, 72, 99, 75, 73, 100, 74, 73, 97, 71, 70, 92, 66, 65, 89, 63, 62, 89, 63, 62, 90, 64, 63, 93, 65, 62, 101, 73, 70, 104, 76, 72, 95, 67, 63, 79, 50, 44, 68, 39, 33, 69, 38, 33, 74, 44, 36, 68, 38, 28, 67, 37, 26, 68, 36, 25, 67, 35, 22, 68, 34, 22, 69, 35, 23, 69, 35, 23, 70, 37, 22, 68, 35, 18, 69, 36, 17, 69, 36, 19, 67, 34, 17, 63, 30, 13, 62, 29, 12, 63, 30, 15, 65, 32, 17, 67, 34, 19, 64, 31, 16, 62, 28, 16, 64, 30, 18, 72, 38, 26, 82, 48, 36, 90, 56, 44, 94, 60, 48, 107, 73, 63, 109, 75, 65, 109, 75, 65, 109, 75, 65, 116, 79, 70, 124, 87, 78, 126, 89, 81, 123, 86, 78, 127, 90, 82, 126, 89, 81, 125, 86, 81, 122, 83, 78, 119, 80, 75, 120, 81, 76, 124, 85, 80, 128, 88, 86, 127, 89, 88, 119, 80, 81, 111, 76, 74, 112, 81, 78, 121, 93, 89, 134, 113, 108, 153, 139, 136, 169, 161, 158, 174, 174, 172, 199, 203, 204, 226, 234, 237, 237, 246, 251, 235, 242, 248, 232, 239, 245, 234, 239, 245, 234, 239, 245, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 236, 243, 233, 236, 243, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 237, 224, 231, 237, 225, 232, 238, 225, 232, 238, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 225, 232, 238, 225, 232, 238, 225, 232, 238, 226, 233, 239, 226, 233, 239, 226, 233, 239, 227, 234, 240, 227, 234, 240, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 236, 241, 245, 236, 241, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 226, 231, 237, 230, 235, 241, 235, 240, 246, 228, 233, 239, 225, 230, 236, 225, 230, 236, 220, 223, 228, 194, 194, 194, 163, 162, 158, 154, 149, 145, 155, 148, 142, 139, 130, 123, 116, 107, 100, 90, 81, 76, 70, 61, 56, 22, 14, 12, 34, 26, 24, 65, 59, 59, 43, 37, 37, 61, 51, 50, 43, 33, 32, 34, 23, 21, 41, 27, 26, 67, 52, 49, 47, 32, 29, 39, 24, 21, 51, 36, 33, 58, 43, 40, 48, 33, 30, 34, 16, 12, 27, 9, 5, 79, 61, 57, 64, 46, 42, 52, 35, 28, 60, 43, 36, 82, 63, 57, 88, 69, 63, 70, 51, 45, 47, 28, 22, 50, 29, 26, 56, 35, 32, 64, 43, 40, 71, 50, 47, 72, 51, 48, 70, 49, 46, 69, 48, 45, 69, 48, 45, 65, 44, 41, 68, 47, 44, 64, 43, 40, 66, 45, 42, 86, 65, 62, 103, 82, 79, 99, 78, 75, 88, 69, 65, 100, 82, 80, 101, 83, 81, 97, 79, 77, 87, 69, 67, 78, 63, 60, 84, 69, 66, 103, 88, 85, 120, 105, 102, 122, 104, 102, 115, 97, 95, 105, 85, 84, 94, 74, 73, 88, 67, 66, 88, 67, 66, 93, 69, 69, 97, 73, 73, 96, 74, 76, 96, 74, 76, 97, 75, 77, 98, 76, 78, 101, 77, 77, 102, 78, 78, 102, 78, 78, 103, 79, 79, 98, 74, 72, 95, 71, 69, 91, 65, 64, 84, 58, 57, 79, 53, 52, 78, 52, 51, 81, 55, 54, 84, 58, 57, 78, 50, 47, 86, 58, 55, 92, 64, 60, 88, 60, 56, 79, 50, 44, 71, 42, 34, 71, 41, 33, 74, 44, 34, 67, 37, 26, 66, 36, 25, 67, 35, 22, 67, 35, 22, 68, 34, 22, 69, 35, 23, 70, 36, 24, 71, 38, 23, 68, 35, 18, 68, 35, 16, 67, 34, 17, 64, 31, 14, 61, 28, 11, 60, 27, 10, 62, 29, 14, 65, 32, 17, 71, 38, 23, 68, 35, 20, 66, 32, 20, 68, 34, 22, 74, 40, 28, 82, 48, 36, 89, 55, 43, 93, 59, 47, 104, 70, 60, 108, 74, 64, 109, 75, 65, 108, 74, 64, 113, 76, 67, 120, 83, 74, 123, 86, 78, 122, 85, 77, 127, 90, 82, 126, 89, 81, 125, 86, 81, 121, 82, 77, 117, 78, 73, 117, 78, 73, 120, 81, 76, 123, 83, 81, 115, 77, 76, 119, 83, 83, 130, 95, 93, 136, 105, 102, 137, 109, 105, 136, 116, 109, 145, 130, 125, 154, 146, 143, 172, 171, 169, 196, 200, 201, 224, 232, 235, 235, 244, 249, 235, 242, 248, 232, 239, 245, 234, 239, 245, 235, 240, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 236, 243, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 237, 224, 231, 237, 225, 232, 238, 225, 232, 238, 225, 232, 238, 226, 233, 239, 226, 233, 239, 226, 233, 239, 225, 232, 238, 225, 232, 238, 225, 232, 238, 226, 233, 239, 226, 233, 239, 226, 233, 239, 227, 234, 240, 227, 234, 240, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 236, 241, 245, 236, 241, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 228, 233, 239, 230, 235, 241, 233, 238, 244, 226, 231, 237, 224, 229, 235, 223, 228, 234, 215, 219, 222, 187, 187, 185, 144, 141, 136, 142, 137, 131, 131, 124, 116, 126, 117, 110, 119, 110, 103, 72, 63, 58, 58, 49, 44, 23, 15, 13, 29, 24, 21, 51, 45, 45, 34, 28, 28, 38, 28, 27, 24, 14, 13, 33, 22, 20, 57, 43, 40, 59, 44, 41, 53, 38, 35, 51, 36, 33, 51, 36, 33, 44, 29, 26, 37, 22, 19, 47, 29, 25, 62, 44, 40, 76, 58, 54, 53, 35, 31, 52, 35, 28, 79, 62, 55, 94, 75, 69, 75, 56, 50, 52, 33, 27, 45, 26, 20, 46, 27, 23, 59, 39, 38, 69, 49, 48, 68, 48, 47, 62, 42, 41, 60, 40, 39, 60, 40, 39, 60, 40, 39, 64, 44, 43, 73, 53, 52, 63, 43, 42, 71, 51, 50, 105, 85, 84, 107, 87, 86, 89, 69, 68, 93, 73, 72, 100, 82, 82, 85, 69, 69, 72, 56, 56, 71, 55, 55, 83, 67, 67, 103, 87, 87, 120, 104, 104, 129, 113, 113, 120, 102, 102, 106, 88, 88, 91, 71, 72, 85, 65, 66, 90, 68, 70, 99, 74, 77, 102, 76, 79, 100, 75, 78, 105, 83, 85, 105, 83, 85, 105, 80, 83, 104, 79, 82, 102, 78, 78, 100, 76, 76, 99, 75, 75, 99, 75, 75, 91, 65, 64, 89, 63, 62, 85, 59, 58, 80, 54, 53, 75, 49, 48, 75, 49, 48, 81, 53, 52, 84, 56, 55, 92, 62, 62, 92, 62, 60, 89, 60, 56, 83, 54, 50, 76, 45, 40, 72, 42, 34, 71, 41, 31, 72, 42, 31, 68, 36, 25, 67, 35, 22, 68, 34, 22, 67, 33, 21, 70, 34, 22, 71, 35, 23, 73, 37, 25, 73, 37, 23, 68, 35, 18, 67, 34, 15, 65, 32, 13, 61, 28, 9, 57, 24, 7, 58, 25, 8, 61, 28, 11, 65, 32, 15, 72, 39, 24, 71, 38, 23, 71, 37, 25, 72, 38, 26, 76, 42, 32, 82, 48, 38, 88, 54, 44, 92, 58, 48, 100, 66, 56, 107, 73, 63, 111, 77, 67, 108, 74, 64, 107, 73, 63, 113, 79, 69, 118, 84, 75, 120, 86, 77, 130, 93, 85, 129, 92, 84, 127, 90, 84, 122, 85, 79, 117, 80, 74, 116, 79, 73, 118, 79, 74, 121, 81, 79, 115, 76, 77, 128, 92, 92, 147, 112, 110, 154, 123, 120, 148, 119, 113, 138, 115, 109, 141, 123, 119, 147, 138, 133, 169, 165, 162, 194, 196, 195, 222, 227, 230, 234, 242, 245, 233, 242, 247, 232, 239, 245, 235, 240, 246, 237, 242, 248, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 224, 231, 237, 224, 231, 237, 224, 231, 237, 225, 232, 238, 225, 232, 238, 225, 232, 238, 226, 233, 239, 226, 233, 239, 225, 232, 238, 225, 232, 238, 225, 232, 238, 226, 233, 239, 226, 233, 239, 226, 233, 239, 227, 234, 240, 227, 234, 240, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 236, 241, 245, 236, 241, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 235, 240, 246, 229, 234, 240, 231, 236, 242, 230, 235, 241, 223, 228, 234, 222, 227, 233, 218, 223, 229, 205, 209, 212, 180, 179, 175, 128, 123, 117, 131, 124, 116, 107, 100, 92, 109, 100, 93, 113, 104, 97, 50, 41, 36, 40, 32, 29, 49, 41, 39, 32, 27, 24, 25, 19, 19, 17, 11, 11, 24, 14, 13, 25, 15, 13, 43, 29, 28, 65, 51, 48, 58, 43, 40, 56, 41, 38, 54, 39, 36, 47, 32, 29, 37, 22, 19, 36, 21, 18, 58, 40, 36, 81, 63, 59, 46, 28, 24, 56, 38, 34, 76, 59, 52, 90, 73, 66, 79, 60, 54, 56, 37, 31, 50, 31, 25, 61, 42, 36, 54, 34, 33, 66, 46, 45, 71, 51, 50, 61, 41, 40, 52, 32, 31, 55, 35, 34, 61, 41, 40, 65, 45, 44, 67, 47, 46, 70, 50, 49, 73, 53, 52, 90, 70, 69, 101, 81, 80, 87, 67, 66, 86, 66, 65, 112, 94, 92, 100, 82, 82, 84, 68, 68, 74, 58, 58, 84, 68, 68, 108, 92, 92, 127, 111, 111, 131, 115, 115, 126, 110, 110, 107, 89, 89, 98, 80, 80, 91, 71, 72, 93, 71, 73, 104, 79, 82, 111, 86, 89, 111, 85, 88, 108, 82, 85, 109, 84, 87, 106, 84, 86, 104, 79, 82, 100, 75, 78, 95, 71, 71, 90, 66, 66, 87, 63, 63, 85, 61, 61, 81, 55, 54, 83, 57, 56, 84, 58, 57, 83, 57, 56, 82, 56, 55, 82, 56, 55, 86, 58, 57, 88, 60, 59, 103, 73, 73, 95, 65, 63, 83, 53, 51, 73, 44, 38, 70, 39, 34, 70, 40, 30, 72, 42, 31, 73, 44, 30, 68, 36, 23, 68, 36, 23, 68, 34, 22, 68, 34, 22, 70, 34, 22, 72, 36, 24, 73, 37, 25, 74, 38, 24, 67, 34, 17, 66, 33, 14, 63, 30, 11, 59, 26, 7, 55, 22, 5, 56, 23, 6, 60, 27, 10, 64, 31, 14, 68, 35, 20, 69, 36, 21, 72, 38, 26, 75, 41, 29, 78, 44, 34, 84, 50, 40, 90, 56, 46, 94, 60, 50, 99, 65, 55, 108, 74, 64, 114, 80, 70, 110, 76, 66, 106, 72, 62, 111, 77, 67, 118, 84, 75, 122, 88, 79, 133, 96, 88, 133, 96, 88, 130, 93, 87, 126, 89, 83, 121, 84, 78, 118, 81, 75, 119, 80, 75, 120, 82, 79, 135, 96, 97, 139, 103, 103, 147, 113, 112, 148, 117, 114, 142, 113, 107, 136, 113, 107, 142, 125, 118, 150, 141, 136, 164, 160, 157, 189, 191, 190, 219, 224, 227, 231, 239, 242, 231, 240, 245, 231, 240, 245, 234, 241, 247, 238, 243, 249, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 236, 223, 230, 236, 224, 231, 237, 224, 231, 237, 224, 231, 237, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 226, 233, 239, 226, 233, 239, 226, 233, 239, 227, 234, 240, 227, 234, 240, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 236, 241, 245, 236, 241, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 230, 235, 241, 231, 236, 242, 228, 233, 239, 220, 225, 231, 219, 224, 230, 209, 214, 220, 191, 192, 196, 158, 154, 151, 112, 105, 97, 113, 106, 98, 90, 81, 72, 101, 91, 82, 112, 101, 95, 52, 43, 38, 46, 38, 35, 52, 44, 42, 30, 24, 24, 11, 5, 7, 19, 13, 13, 27, 17, 16, 39, 29, 27, 58, 44, 43, 71, 57, 54, 67, 52, 49, 52, 37, 34, 38, 23, 20, 40, 25, 22, 50, 35, 32, 54, 39, 36, 51, 33, 29, 45, 27, 23, 52, 34, 30, 79, 61, 57, 95, 78, 71, 82, 65, 58, 65, 46, 40, 59, 40, 34, 58, 39, 33, 54, 35, 29, 63, 43, 42, 60, 40, 39, 57, 37, 36, 59, 39, 38, 68, 48, 47, 76, 56, 55, 75, 55, 54, 69, 49, 48, 61, 41, 40, 67, 47, 46, 92, 72, 71, 106, 86, 85, 94, 74, 73, 94, 74, 73, 107, 87, 86, 111, 93, 91, 105, 87, 87, 97, 81, 81, 97, 83, 82, 112, 98, 97, 130, 116, 115, 133, 119, 118, 118, 102, 102, 101, 85, 85, 92, 74, 74, 95, 77, 77, 101, 81, 82, 106, 84, 86, 110, 85, 88, 108, 83, 86, 104, 78, 81, 101, 75, 78, 100, 75, 78, 99, 74, 77, 96, 71, 74, 93, 68, 71, 90, 66, 66, 87, 63, 63, 86, 60, 61, 84, 58, 59, 84, 58, 57, 83, 57, 56, 81, 55, 54, 77, 51, 50, 78, 50, 49, 80, 52, 51, 85, 57, 56, 90, 62, 61, 90, 60, 60, 84, 54, 52, 78, 47, 45, 74, 43, 38, 75, 44, 39, 76, 46, 36, 78, 46, 35, 77, 45, 32, 72, 38, 26, 71, 38, 23, 72, 36, 22, 72, 36, 22, 71, 35, 23, 72, 36, 24, 73, 36, 27, 73, 37, 25, 66, 33, 14, 66, 34, 13, 63, 31, 10, 60, 28, 7, 56, 23, 4, 56, 23, 4, 60, 27, 10, 63, 30, 13, 60, 27, 12, 65, 32, 17, 72, 38, 26, 77, 43, 31, 81, 47, 37, 86, 52, 42, 93, 59, 50, 98, 64, 55, 101, 69, 58, 110, 78, 67, 115, 83, 72, 111, 79, 68, 107, 75, 64, 111, 79, 68, 117, 84, 75, 121, 88, 79, 127, 93, 84, 128, 94, 85, 127, 92, 86, 123, 88, 82, 121, 84, 78, 118, 81, 75, 118, 81, 75, 120, 82, 79, 152, 113, 114, 144, 108, 108, 137, 103, 102, 134, 103, 100, 133, 104, 98, 135, 112, 106, 144, 127, 120, 152, 141, 135, 162, 157, 153, 188, 188, 186, 218, 222, 223, 230, 238, 241, 230, 239, 244, 231, 240, 245, 234, 241, 249, 236, 243, 249, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 237, 240, 247, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 236, 223, 230, 236, 223, 230, 236, 224, 231, 237, 224, 231, 237, 224, 231, 237, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 226, 233, 239, 226, 233, 239, 226, 233, 239, 227, 234, 240, 227, 234, 240, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 236, 241, 245, 236, 241, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 231, 236, 242, 230, 235, 241, 232, 237, 243, 227, 232, 238, 218, 223, 229, 214, 219, 225, 197, 202, 208, 173, 174, 178, 142, 139, 134, 114, 107, 99, 105, 96, 87, 84, 75, 66, 95, 85, 76, 101, 91, 82, 56, 47, 42, 49, 41, 38, 23, 18, 15, 24, 18, 18, 14, 8, 10, 39, 33, 33, 36, 27, 28, 52, 41, 39, 67, 53, 52, 70, 56, 53, 47, 32, 29, 48, 33, 30, 51, 36, 33, 59, 44, 41, 65, 50, 47, 63, 48, 45, 54, 36, 32, 44, 26, 22, 86, 68, 64, 93, 75, 71, 86, 69, 62, 67, 50, 43, 67, 48, 42, 75, 56, 50, 62, 43, 37, 36, 17, 11, 69, 49, 48, 51, 31, 30, 42, 22, 21, 59, 39, 38, 81, 61, 60, 83, 63, 62, 65, 45, 44, 47, 27, 26, 58, 38, 37, 74, 54, 53, 104, 84, 83, 108, 88, 87, 100, 80, 79, 122, 102, 101, 125, 105, 104, 85, 67, 65, 81, 65, 65, 89, 73, 73, 102, 88, 87, 117, 103, 102, 124, 110, 109, 115, 101, 100, 96, 80, 80, 80, 64, 64, 88, 70, 70, 96, 78, 78, 106, 84, 86, 108, 86, 88, 103, 78, 81, 94, 69, 72, 89, 63, 66, 87, 61, 64, 89, 64, 67, 89, 64, 67, 90, 65, 68, 91, 66, 69, 92, 68, 68, 93, 69, 69, 94, 68, 69, 95, 69, 70, 94, 68, 67, 89, 63, 62, 79, 53, 52, 71, 45, 44, 70, 42, 41, 75, 47, 46, 85, 57, 56, 94, 66, 65, 94, 64, 64, 94, 64, 62, 96, 65, 63, 97, 66, 61, 94, 64, 56, 88, 58, 48, 80, 48, 37, 73, 41, 28, 77, 44, 29, 76, 43, 28, 76, 40, 26, 74, 38, 24, 73, 37, 25, 72, 36, 24, 72, 35, 26, 72, 36, 24, 65, 32, 13, 66, 34, 13, 66, 34, 13, 63, 31, 10, 60, 27, 8, 59, 26, 7, 60, 27, 10, 62, 29, 12, 57, 24, 9, 64, 31, 16, 74, 40, 28, 81, 47, 35, 84, 50, 40, 89, 55, 45, 95, 61, 52, 101, 67, 58, 104, 72, 61, 110, 78, 67, 113, 81, 70, 110, 78, 67, 108, 76, 65, 113, 81, 70, 118, 85, 76, 119, 86, 77, 119, 85, 76, 121, 87, 78, 122, 87, 81, 121, 86, 80, 120, 83, 77, 119, 82, 76, 119, 82, 76, 121, 83, 80, 145, 109, 109, 137, 101, 101, 128, 94, 93, 126, 95, 92, 129, 100, 94, 133, 108, 101, 142, 123, 116, 148, 137, 131, 161, 156, 152, 187, 187, 185, 217, 221, 222, 229, 237, 239, 231, 238, 244, 230, 239, 244, 234, 241, 249, 236, 243, 249, 237, 242, 248, 237, 242, 246, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 237, 240, 247, 237, 240, 247, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 223, 230, 236, 223, 230, 236, 223, 230, 236, 223, 230, 236, 224, 231, 237, 224, 231, 237, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 226, 233, 239, 226, 233, 239, 226, 233, 239, 227, 234, 240, 227, 234, 240, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 236, 241, 245, 236, 241, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 228, 233, 239, 229, 234, 240, 232, 237, 243, 226, 231, 237, 216, 221, 227, 209, 214, 220, 186, 191, 197, 155, 156, 160, 133, 128, 124, 125, 116, 107, 100, 90, 81, 83, 73, 64, 86, 76, 67, 76, 66, 57, 50, 41, 36, 38, 30, 27, 10, 5, 2, 24, 20, 19, 18, 14, 15, 51, 45, 45, 39, 30, 31, 58, 47, 45, 66, 52, 51, 55, 40, 37, 32, 17, 14, 51, 36, 33, 69, 54, 51, 70, 55, 52, 61, 46, 43, 58, 43, 40, 65, 47, 43, 72, 54, 50, 83, 65, 61, 72, 54, 50, 63, 46, 39, 64, 47, 40, 69, 50, 44, 69, 50, 44, 63, 44, 38, 57, 38, 32, 70, 52, 50, 53, 35, 33, 51, 33, 31, 69, 51, 49, 77, 59, 57, 65, 47, 45, 53, 35, 33, 52, 34, 32, 77, 59, 57, 88, 70, 68, 99, 81, 79, 103, 85, 83, 109, 91, 89, 115, 97, 95, 98, 80, 78, 68, 50, 48, 67, 51, 51, 84, 70, 69, 104, 90, 89, 110, 96, 95, 102, 88, 87, 90, 76, 75, 85, 69, 69, 84, 68, 68, 90, 72, 72, 93, 75, 75, 97, 75, 77, 95, 73, 75, 92, 67, 70, 89, 63, 66, 89, 60, 64, 88, 62, 65, 88, 63, 66, 89, 64, 67, 90, 65, 68, 91, 66, 69, 93, 69, 69, 94, 70, 70, 96, 70, 71, 97, 71, 72, 94, 68, 67, 93, 67, 66, 90, 64, 63, 87, 61, 60, 89, 61, 60, 94, 66, 65, 102, 74, 73, 109, 81, 80, 109, 79, 79, 111, 80, 78, 110, 79, 77, 107, 76, 71, 101, 68, 61, 91, 58, 49, 81, 49, 38, 75, 43, 30, 82, 49, 34, 80, 47, 30, 80, 44, 30, 76, 40, 26, 74, 38, 26, 72, 36, 24, 72, 34, 25, 71, 35, 23, 64, 31, 12, 67, 35, 14, 69, 37, 16, 68, 36, 15, 65, 32, 13, 62, 29, 10, 61, 28, 11, 61, 28, 11, 60, 27, 12, 70, 36, 24, 81, 47, 37, 87, 53, 43, 88, 54, 45, 91, 57, 48, 97, 63, 54, 102, 68, 59, 105, 73, 62, 107, 77, 66, 107, 77, 66, 105, 75, 64, 106, 76, 65, 112, 82, 71, 116, 83, 74, 114, 81, 72, 115, 82, 73, 118, 85, 76, 122, 87, 81, 123, 88, 82, 123, 88, 82, 123, 88, 82, 124, 89, 83, 126, 91, 87, 131, 95, 95, 127, 91, 91, 123, 89, 88, 121, 90, 87, 121, 92, 86, 125, 100, 93, 139, 120, 113, 152, 139, 131, 164, 157, 151, 189, 188, 184, 218, 222, 223, 230, 238, 240, 231, 238, 244, 230, 239, 244, 233, 240, 248, 235, 242, 248, 237, 242, 248, 237, 242, 246, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 237, 240, 247, 237, 240, 247, 237, 240, 247, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 227, 234, 240, 229, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 224, 233, 238, 225, 232, 238, 225, 232, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 223, 230, 238, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 239, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 239, 222, 229, 237, 222, 229, 235, 223, 230, 236, 223, 230, 236, 223, 230, 236, 224, 231, 237, 224, 231, 237, 224, 231, 237, 225, 232, 238, 225, 232, 238, 225, 232, 238, 225, 232, 238, 226, 233, 241, 226, 233, 241, 226, 233, 241, 227, 234, 242, 227, 234, 242, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 236, 241, 245, 236, 241, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 235, 238, 245, 234, 237, 244, 233, 238, 244, 233, 238, 244, 226, 231, 237, 227, 234, 240, 232, 237, 243, 226, 231, 235, 215, 220, 224, 207, 211, 214, 183, 184, 186, 146, 146, 144, 119, 114, 108, 125, 116, 109, 90, 81, 74, 77, 68, 61, 78, 67, 61, 59, 50, 43, 48, 39, 34, 33, 25, 22, 21, 16, 13, 33, 27, 27, 16, 10, 10, 49, 40, 41, 36, 26, 25, 60, 49, 47, 60, 46, 43, 35, 20, 17, 54, 39, 36, 57, 42, 39, 56, 41, 38, 51, 36, 33, 49, 34, 31, 54, 39, 34, 63, 45, 41, 65, 47, 43, 47, 29, 25, 37, 19, 15, 48, 31, 24, 70, 53, 46, 66, 47, 41, 47, 28, 22, 63, 44, 38, 101, 82, 78, 66, 46, 45, 63, 45, 43, 74, 56, 54, 87, 69, 67, 74, 56, 54, 54, 36, 34, 68, 50, 48, 100, 82, 80, 106, 88, 86, 99, 81, 79, 88, 70, 68, 101, 83, 81, 112, 94, 92, 81, 63, 61, 54, 36, 34, 68, 53, 50, 87, 71, 71, 106, 90, 90, 122, 106, 106, 116, 100, 100, 94, 78, 78, 79, 63, 63, 86, 68, 68, 98, 80, 80, 92, 74, 74, 89, 69, 70, 85, 63, 65, 83, 61, 63, 86, 61, 64, 92, 66, 69, 97, 71, 74, 101, 75, 78, 94, 69, 72, 92, 70, 72, 91, 69, 71, 90, 68, 70, 88, 66, 68, 87, 66, 65, 88, 64, 64, 88, 64, 64, 85, 61, 59, 93, 69, 67, 104, 80, 78, 114, 88, 87, 119, 93, 92, 121, 95, 94, 122, 96, 95, 125, 97, 96, 104, 74, 72, 103, 72, 70, 98, 67, 64, 90, 59, 54, 85, 52, 45, 82, 49, 40, 83, 51, 40, 87, 53, 41, 85, 52, 37, 85, 49, 35, 82, 46, 32, 79, 41, 28, 75, 37, 24, 73, 35, 22, 72, 32, 22, 71, 33, 20, 66, 29, 13, 69, 34, 15, 73, 38, 19, 74, 39, 20, 68, 35, 16, 64, 31, 14, 61, 28, 11, 60, 27, 12, 66, 32, 20, 75, 41, 31, 87, 53, 43, 92, 58, 49, 91, 56, 50, 92, 57, 51, 97, 62, 56, 101, 68, 61, 103, 73, 63, 104, 76, 64, 103, 73, 62, 101, 73, 62, 105, 75, 65, 112, 82, 72, 112, 82, 74, 108, 78, 70, 115, 85, 77, 121, 88, 81, 125, 92, 85, 129, 94, 88, 130, 95, 89, 131, 96, 90, 133, 98, 92, 135, 100, 96, 124, 85, 86, 122, 86, 86, 122, 87, 85, 117, 84, 79, 110, 81, 73, 116, 91, 84, 138, 119, 112, 159, 146, 138, 163, 158, 152, 189, 189, 187, 218, 222, 223, 230, 238, 241, 230, 239, 244, 230, 239, 244, 233, 240, 248, 235, 242, 248, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 246, 250, 242, 245, 250, 241, 246, 250, 242, 245, 250, 241, 246, 250, 242, 245, 250, 241, 246, 250, 241, 244, 249, 240, 245, 249, 241, 244, 249, 240, 245, 249, 241, 244, 249, 240, 245, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 248, 238, 243, 247, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 233, 240, 246, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 237, 240, 247, 237, 240, 247, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 233, 242, 229, 233, 242, 230, 233, 242, 228, 232, 241, 228, 232, 241, 227, 231, 240, 225, 232, 240, 225, 232, 240, 223, 232, 239, 223, 232, 239, 223, 232, 239, 223, 232, 239, 223, 232, 239, 222, 233, 239, 223, 232, 239, 224, 233, 240, 219, 228, 233, 218, 227, 232, 219, 226, 232, 221, 228, 234, 224, 231, 239, 224, 231, 239, 221, 228, 236, 219, 226, 234, 221, 225, 236, 222, 226, 237, 222, 226, 237, 223, 227, 238, 223, 227, 238, 224, 228, 239, 224, 228, 240, 224, 228, 239, 221, 228, 236, 219, 228, 235, 218, 227, 234, 217, 226, 233, 218, 225, 233, 219, 226, 234, 220, 227, 235, 221, 228, 236, 223, 230, 238, 222, 229, 237, 222, 226, 235, 221, 225, 234, 221, 225, 234, 221, 225, 234, 221, 225, 234, 222, 226, 235, 222, 226, 235, 224, 228, 237, 224, 228, 237, 223, 227, 236, 220, 227, 235, 220, 227, 235, 223, 230, 240, 225, 232, 242, 217, 226, 235, 218, 227, 236, 219, 228, 237, 220, 229, 238, 222, 231, 240, 223, 232, 241, 224, 232, 243, 226, 233, 241, 221, 228, 234, 223, 228, 232, 224, 229, 233, 225, 230, 234, 226, 231, 235, 227, 232, 236, 228, 233, 239, 228, 233, 239, 226, 230, 239, 227, 231, 240, 227, 231, 240, 227, 231, 242, 228, 232, 243, 228, 232, 243, 228, 232, 244, 229, 233, 244, 226, 233, 241, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 236, 241, 245, 236, 241, 245, 236, 241, 245, 235, 240, 244, 235, 240, 244, 235, 240, 246, 233, 240, 248, 235, 239, 248, 235, 240, 246, 236, 239, 246, 237, 238, 243, 237, 238, 243, 235, 238, 245, 233, 238, 244, 224, 231, 239, 230, 239, 246, 228, 235, 241, 220, 228, 230, 217, 221, 220, 202, 203, 197, 169, 166, 157, 142, 138, 127, 129, 122, 116, 112, 105, 99, 94, 87, 81, 81, 74, 68, 39, 29, 27, 27, 17, 15, 49, 39, 37, 19, 9, 8, 23, 15, 13, 31, 23, 21, 39, 29, 28, 45, 35, 33, 55, 44, 42, 59, 48, 44, 45, 34, 30, 27, 14, 8, 46, 32, 29, 45, 31, 28, 43, 30, 24, 48, 33, 28, 62, 47, 42, 70, 52, 48, 53, 34, 30, 28, 9, 3, 38, 19, 13, 54, 35, 29, 71, 52, 48, 80, 61, 57, 82, 64, 60, 85, 67, 63, 85, 67, 63, 83, 63, 62, 77, 57, 56, 75, 55, 54, 65, 45, 44, 61, 41, 40, 77, 57, 56, 99, 79, 78, 98, 78, 77, 81, 61, 60, 85, 67, 65, 69, 51, 49, 90, 72, 70, 112, 94, 92, 86, 71, 68, 68, 53, 50, 84, 69, 66, 99, 84, 81, 116, 98, 98, 110, 92, 92, 99, 81, 81, 86, 68, 68, 79, 61, 61, 81, 63, 63, 92, 72, 73, 100, 80, 81, 91, 71, 72, 91, 69, 71, 89, 67, 69, 87, 65, 67, 88, 63, 66, 87, 62, 65, 87, 62, 65, 87, 62, 65, 96, 76, 78, 90, 71, 73, 84, 65, 67, 80, 62, 62, 82, 64, 64, 88, 70, 70, 97, 77, 76, 103, 83, 82, 119, 98, 97, 120, 99, 98, 120, 99, 96, 119, 95, 93, 112, 88, 84, 102, 78, 74, 91, 67, 63, 86, 61, 57, 92, 63, 59, 94, 65, 59, 97, 66, 61, 99, 69, 61, 101, 68, 59, 99, 66, 57, 97, 63, 53, 97, 61, 49, 96, 60, 48, 93, 55, 42, 89, 49, 37, 83, 44, 29, 81, 39, 25, 79, 37, 23, 79, 35, 22, 78, 36, 22, 77, 35, 21, 74, 35, 20, 72, 35, 19, 71, 34, 18, 69, 33, 17, 69, 33, 19, 67, 34, 19, 67, 33, 21, 67, 35, 22, 75, 43, 32, 85, 52, 43, 92, 59, 52, 93, 60, 55, 94, 60, 58, 98, 62, 62, 100, 66, 64, 101, 73, 62, 101, 75, 62, 102, 74, 63, 98, 71, 62, 98, 69, 63, 103, 74, 68, 113, 84, 80, 121, 92, 88, 130, 101, 97, 133, 102, 99, 132, 101, 98, 130, 97, 92, 125, 90, 84, 123, 88, 82, 127, 90, 82, 131, 94, 88, 109, 69, 69, 124, 84, 84, 131, 93, 90, 121, 86, 80, 113, 83, 75, 121, 96, 89, 140, 121, 114, 150, 139, 133, 169, 166, 161, 187, 189, 188, 213, 218, 221, 230, 238, 241, 234, 243, 248, 232, 241, 246, 234, 241, 247, 236, 243, 249, 237, 242, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 246, 250, 239, 247, 250, 241, 246, 250, 239, 247, 250, 241, 246, 250, 239, 247, 250, 241, 246, 250, 239, 247, 250, 241, 246, 250, 239, 247, 250, 241, 246, 250, 239, 247, 250, 241, 246, 250, 239, 247, 250, 241, 246, 250, 241, 246, 250, 240, 245, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 237, 240, 247, 237, 240, 247, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 233, 242, 230, 233, 242, 230, 233, 242, 230, 233, 242, 228, 232, 241, 228, 232, 241, 226, 233, 241, 225, 232, 240, 222, 231, 238, 222, 231, 238, 222, 231, 238, 221, 230, 237, 220, 231, 237, 219, 230, 236, 219, 230, 236, 219, 230, 236, 224, 233, 238, 222, 231, 236, 221, 228, 234, 221, 228, 234, 221, 228, 236, 219, 226, 234, 216, 223, 231, 213, 220, 228, 220, 224, 233, 220, 224, 233, 219, 223, 234, 218, 222, 233, 218, 222, 233, 219, 223, 234, 221, 223, 235, 220, 224, 235, 220, 227, 235, 219, 228, 233, 219, 226, 234, 218, 225, 231, 218, 225, 233, 218, 225, 231, 219, 226, 234, 220, 227, 233, 220, 227, 235, 221, 226, 232, 220, 224, 233, 220, 225, 231, 220, 224, 233, 220, 225, 231, 222, 225, 234, 222, 227, 233, 218, 222, 231, 219, 224, 230, 220, 224, 233, 219, 224, 230, 215, 222, 230, 216, 223, 231, 218, 225, 233, 221, 228, 236, 221, 228, 238, 220, 229, 236, 220, 229, 238, 220, 229, 238, 220, 229, 238, 221, 230, 239, 221, 229, 240, 222, 229, 239, 221, 228, 234, 223, 228, 232, 224, 229, 233, 224, 229, 233, 225, 230, 236, 225, 230, 236, 225, 230, 236, 226, 231, 237, 226, 230, 239, 226, 230, 239, 227, 231, 242, 227, 231, 242, 228, 232, 243, 228, 232, 244, 228, 232, 244, 228, 232, 243, 226, 233, 241, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 236, 241, 245, 236, 241, 245, 236, 241, 245, 235, 240, 244, 235, 240, 244, 235, 240, 246, 233, 240, 248, 233, 240, 248, 236, 239, 248, 235, 238, 245, 237, 238, 243, 237, 238, 243, 234, 237, 244, 233, 238, 244, 225, 232, 240, 229, 238, 245, 224, 233, 238, 213, 221, 223, 206, 208, 203, 189, 189, 179, 162, 156, 142, 136, 128, 115, 134, 127, 119, 110, 102, 99, 86, 78, 75, 74, 66, 63, 43, 35, 33, 37, 29, 27, 51, 41, 40, 14, 4, 3, 14, 4, 3, 31, 21, 20, 47, 36, 34, 50, 39, 37, 50, 39, 35, 51, 40, 36, 48, 37, 31, 42, 31, 25, 45, 31, 28, 51, 37, 34, 50, 37, 31, 41, 28, 22, 41, 23, 19, 48, 30, 26, 54, 35, 29, 54, 35, 29, 60, 41, 35, 67, 48, 42, 74, 55, 51, 78, 59, 55, 81, 63, 59, 86, 68, 64, 85, 67, 65, 80, 62, 60, 62, 42, 41, 72, 51, 50, 77, 57, 56, 80, 60, 59, 84, 64, 63, 86, 66, 65, 72, 52, 51, 54, 34, 33, 53, 35, 33, 89, 71, 69, 104, 86, 84, 87, 69, 67, 75, 60, 57, 86, 71, 68, 104, 89, 86, 118, 100, 98, 123, 103, 104, 111, 91, 92, 97, 77, 78, 89, 69, 70, 89, 69, 70, 92, 72, 73, 95, 73, 75, 95, 73, 75, 88, 66, 68, 87, 65, 67, 86, 64, 66, 86, 64, 66, 88, 63, 66, 89, 64, 67, 90, 65, 68, 88, 66, 68, 88, 69, 71, 88, 72, 73, 92, 76, 77, 97, 81, 81, 106, 88, 88, 112, 94, 94, 117, 99, 97, 120, 100, 99, 114, 94, 93, 117, 96, 93, 119, 98, 95, 120, 99, 94, 121, 97, 93, 116, 92, 88, 111, 87, 83, 109, 84, 79, 109, 82, 75, 107, 78, 70, 104, 74, 66, 98, 68, 60, 94, 61, 52, 90, 57, 48, 89, 52, 43, 87, 50, 41, 92, 54, 43, 90, 52, 39, 89, 47, 35, 85, 43, 29, 83, 40, 24, 80, 37, 21, 80, 34, 19, 78, 35, 19, 77, 35, 21, 76, 34, 22, 72, 32, 20, 69, 31, 18, 68, 30, 17, 67, 31, 17, 65, 31, 19, 65, 31, 19, 68, 36, 25, 76, 44, 33, 86, 53, 46, 92, 59, 54, 94, 60, 58, 94, 60, 59, 98, 62, 64, 100, 66, 64, 101, 72, 64, 100, 73, 62, 100, 71, 63, 98, 71, 64, 103, 74, 70, 110, 82, 78, 121, 91, 89, 129, 99, 97, 131, 101, 99, 131, 100, 98, 128, 97, 94, 124, 90, 88, 118, 83, 79, 115, 80, 74, 119, 82, 74, 124, 85, 80, 125, 84, 82, 128, 88, 86, 134, 94, 92, 131, 96, 90, 120, 90, 82, 115, 90, 83, 131, 112, 105, 150, 139, 133, 168, 164, 161, 187, 189, 188, 213, 218, 221, 229, 237, 240, 233, 242, 247, 232, 241, 246, 234, 241, 247, 236, 243, 249, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 246, 250, 239, 247, 250, 239, 247, 250, 239, 247, 250, 239, 247, 250, 239, 247, 250, 239, 247, 250, 239, 247, 250, 239, 247, 250, 239, 247, 250, 239, 247, 250, 239, 247, 250, 239, 247, 250, 239, 247, 250, 239, 247, 250, 241, 246, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 237, 240, 247, 237, 240, 247, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 231, 234, 243, 231, 234, 243, 230, 233, 242, 230, 233, 242, 229, 233, 242, 228, 232, 241, 226, 233, 241, 226, 233, 241, 224, 231, 239, 223, 230, 238, 221, 230, 237, 219, 228, 235, 217, 228, 234, 215, 226, 232, 214, 225, 231, 214, 225, 231, 220, 229, 234, 219, 226, 232, 216, 223, 229, 216, 223, 229, 218, 223, 229, 218, 223, 229, 215, 220, 226, 212, 217, 223, 217, 222, 228, 215, 220, 226, 213, 216, 225, 211, 214, 223, 210, 213, 222, 211, 214, 223, 212, 215, 224, 213, 216, 223, 211, 216, 222, 209, 217, 220, 212, 217, 223, 212, 217, 221, 212, 217, 223, 213, 218, 222, 214, 219, 225, 214, 219, 223, 213, 218, 224, 214, 217, 222, 213, 216, 223, 213, 216, 221, 214, 217, 224, 216, 219, 224, 219, 219, 227, 218, 221, 226, 218, 221, 228, 220, 223, 228, 220, 225, 231, 219, 224, 228, 218, 223, 229, 218, 223, 229, 221, 226, 232, 222, 229, 235, 222, 229, 237, 222, 229, 235, 222, 229, 237, 221, 228, 236, 221, 228, 236, 220, 227, 235, 220, 227, 237, 219, 226, 234, 222, 229, 237, 222, 229, 235, 222, 229, 235, 222, 229, 235, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 224, 231, 239, 224, 231, 239, 225, 232, 240, 225, 232, 240, 225, 232, 240, 226, 233, 243, 226, 233, 243, 226, 233, 241, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 236, 241, 245, 236, 241, 245, 236, 241, 245, 235, 240, 244, 235, 240, 244, 235, 240, 246, 233, 240, 248, 233, 240, 248, 236, 239, 248, 235, 238, 245, 237, 238, 243, 236, 237, 242, 234, 237, 244, 233, 238, 244, 227, 234, 242, 228, 237, 244, 222, 229, 235, 205, 211, 211, 189, 190, 185, 173, 170, 161, 151, 143, 130, 127, 119, 106, 132, 125, 117, 111, 103, 100, 90, 82, 79, 74, 66, 63, 43, 35, 33, 39, 31, 29, 49, 39, 38, 16, 6, 5, 16, 6, 5, 32, 22, 21, 50, 39, 37, 55, 44, 42, 56, 45, 41, 56, 45, 41, 54, 43, 37, 51, 40, 34, 46, 32, 29, 53, 39, 36, 53, 40, 34, 43, 30, 24, 38, 20, 16, 44, 26, 22, 59, 40, 34, 69, 50, 44, 78, 59, 53, 74, 55, 49, 70, 51, 47, 70, 51, 47, 77, 59, 55, 85, 67, 63, 80, 62, 60, 71, 53, 51, 66, 46, 45, 74, 54, 53, 80, 60, 59, 78, 58, 57, 70, 50, 49, 62, 42, 41, 58, 38, 37, 58, 38, 37, 74, 56, 54, 119, 101, 99, 111, 93, 91, 72, 54, 52, 79, 61, 59, 104, 86, 84, 113, 95, 93, 122, 104, 102, 113, 93, 94, 98, 78, 79, 83, 63, 64, 82, 62, 63, 90, 70, 71, 95, 75, 76, 91, 69, 71, 82, 60, 62, 77, 55, 57, 78, 56, 58, 81, 56, 59, 84, 59, 62, 87, 62, 65, 91, 66, 69, 95, 70, 73, 95, 73, 75, 98, 78, 79, 103, 85, 85, 111, 93, 93, 119, 101, 101, 125, 105, 106, 126, 106, 105, 124, 104, 103, 124, 103, 102, 120, 99, 96, 122, 98, 96, 120, 96, 94, 117, 93, 89, 114, 89, 85, 110, 85, 80, 106, 81, 76, 103, 78, 73, 95, 68, 61, 93, 64, 56, 89, 59, 51, 84, 54, 46, 83, 50, 41, 82, 49, 40, 86, 49, 40, 87, 50, 41, 85, 47, 36, 84, 46, 33, 87, 45, 33, 85, 43, 29, 83, 40, 24, 80, 37, 21, 77, 34, 18, 76, 33, 17, 76, 34, 20, 74, 32, 18, 70, 31, 16, 66, 29, 13, 65, 27, 14, 64, 28, 14, 62, 28, 16, 63, 29, 17, 70, 38, 27, 78, 46, 35, 88, 55, 48, 94, 61, 56, 95, 61, 59, 95, 61, 59, 97, 63, 62, 100, 66, 64, 102, 72, 64, 99, 70, 62, 99, 69, 61, 102, 73, 67, 111, 80, 77, 121, 91, 89, 130, 98, 99, 134, 102, 103, 129, 97, 98, 127, 96, 94, 123, 89, 87, 116, 81, 79, 109, 74, 70, 108, 71, 65, 112, 73, 66, 115, 76, 71, 114, 73, 71, 110, 70, 68, 117, 77, 75, 124, 89, 83, 117, 87, 79, 108, 83, 76, 125, 106, 99, 151, 140, 134, 168, 164, 161, 186, 188, 187, 212, 217, 220, 229, 237, 240, 233, 242, 247, 232, 241, 246, 233, 240, 246, 235, 242, 248, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 237, 240, 247, 237, 240, 247, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 231, 234, 243, 231, 234, 243, 230, 233, 242, 230, 233, 242, 228, 232, 241, 228, 232, 241, 226, 233, 241, 226, 233, 241, 225, 232, 240, 224, 231, 239, 222, 231, 238, 219, 228, 235, 217, 226, 233, 214, 225, 231, 212, 223, 229, 212, 221, 228, 209, 216, 222, 207, 214, 220, 205, 212, 218, 207, 214, 220, 211, 216, 222, 213, 218, 224, 213, 218, 224, 212, 217, 221, 209, 214, 218, 206, 211, 215, 204, 207, 212, 200, 203, 208, 199, 202, 207, 200, 203, 208, 201, 204, 209, 203, 206, 211, 195, 199, 202, 195, 200, 203, 198, 202, 205, 200, 205, 208, 202, 206, 209, 204, 208, 211, 205, 209, 212, 205, 209, 212, 202, 206, 209, 204, 205, 209, 204, 205, 209, 204, 205, 209, 206, 207, 211, 208, 209, 213, 211, 210, 215, 211, 212, 216, 214, 215, 219, 213, 217, 220, 214, 218, 221, 213, 218, 221, 213, 217, 220, 213, 218, 221, 217, 220, 225, 219, 224, 228, 221, 226, 230, 219, 227, 230, 222, 227, 231, 220, 228, 231, 220, 227, 233, 221, 228, 234, 221, 228, 234, 221, 228, 236, 223, 230, 238, 223, 230, 238, 223, 230, 240, 222, 229, 237, 222, 229, 237, 222, 229, 237, 222, 229, 237, 221, 228, 236, 224, 231, 239, 224, 231, 239, 224, 231, 239, 225, 232, 238, 225, 232, 240, 225, 232, 238, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 236, 241, 245, 236, 241, 245, 236, 241, 245, 235, 240, 244, 235, 240, 244, 235, 240, 246, 233, 240, 248, 234, 238, 247, 235, 238, 245, 235, 238, 245, 236, 237, 242, 234, 237, 242, 233, 238, 244, 233, 238, 244, 228, 235, 243, 226, 233, 239, 217, 225, 228, 198, 202, 203, 173, 174, 169, 160, 157, 148, 145, 137, 124, 123, 115, 104, 119, 110, 105, 110, 102, 99, 102, 94, 91, 77, 69, 66, 41, 33, 31, 39, 31, 29, 48, 38, 37, 28, 18, 17, 30, 20, 19, 37, 27, 26, 50, 39, 37, 62, 51, 49, 69, 58, 54, 66, 55, 51, 53, 42, 36, 40, 29, 23, 45, 31, 28, 46, 32, 29, 49, 36, 30, 53, 40, 34, 62, 44, 40, 66, 48, 44, 65, 46, 40, 60, 41, 35, 75, 56, 50, 67, 48, 42, 59, 40, 36, 61, 42, 38, 72, 54, 50, 81, 63, 59, 73, 55, 53, 59, 41, 39, 65, 45, 44, 69, 49, 48, 74, 54, 53, 70, 50, 49, 58, 38, 37, 51, 31, 30, 63, 43, 42, 81, 61, 60, 114, 96, 94, 110, 92, 90, 85, 67, 65, 74, 56, 54, 94, 76, 74, 109, 91, 89, 107, 89, 87, 108, 90, 88, 87, 67, 68, 78, 58, 59, 71, 51, 52, 75, 55, 56, 87, 67, 68, 92, 72, 73, 88, 66, 68, 80, 58, 60, 81, 59, 61, 82, 60, 62, 88, 63, 66, 92, 67, 70, 98, 73, 76, 104, 79, 82, 109, 84, 87, 110, 88, 90, 118, 98, 99, 119, 99, 100, 120, 100, 101, 120, 99, 98, 118, 97, 96, 113, 92, 91, 110, 86, 86, 107, 83, 81, 116, 90, 89, 113, 88, 84, 107, 82, 78, 102, 74, 70, 95, 67, 63, 89, 61, 57, 85, 57, 53, 83, 56, 49, 79, 50, 42, 78, 49, 41, 78, 48, 40, 78, 48, 40, 81, 48, 39, 84, 50, 41, 89, 52, 43, 90, 53, 44, 79, 41, 30, 80, 42, 29, 82, 42, 30, 84, 42, 28, 84, 41, 25, 80, 37, 21, 77, 34, 18, 75, 32, 16, 75, 33, 19, 71, 32, 17, 67, 28, 13, 64, 27, 11, 61, 25, 11, 62, 26, 12, 61, 27, 15, 62, 28, 16, 73, 41, 30, 81, 48, 39, 91, 58, 51, 96, 63, 56, 96, 62, 60, 95, 61, 59, 97, 63, 62, 100, 66, 64, 102, 69, 64, 99, 68, 63, 101, 70, 65, 109, 78, 75, 119, 88, 86, 127, 96, 94, 128, 96, 97, 127, 95, 96, 121, 89, 90, 119, 85, 86, 114, 78, 78, 110, 72, 71, 106, 68, 65, 107, 67, 65, 110, 71, 66, 114, 73, 69, 107, 66, 64, 105, 65, 63, 112, 72, 70, 116, 81, 75, 112, 82, 74, 110, 85, 78, 128, 109, 102, 149, 138, 132, 168, 164, 161, 186, 188, 187, 212, 217, 220, 229, 237, 240, 233, 242, 247, 232, 241, 246, 233, 240, 246, 235, 242, 248, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 237, 240, 247, 237, 240, 247, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 228, 233, 239, 228, 233, 239, 228, 233, 239, 227, 232, 238, 227, 232, 238, 227, 232, 238, 227, 234, 240, 226, 233, 239, 224, 231, 237, 220, 229, 234, 217, 226, 231, 215, 224, 229, 213, 222, 227, 212, 221, 226, 203, 210, 216, 202, 207, 213, 200, 205, 211, 200, 205, 211, 203, 206, 211, 205, 208, 213, 205, 208, 213, 204, 208, 211, 200, 204, 207, 198, 202, 205, 197, 198, 202, 194, 195, 199, 193, 194, 196, 193, 194, 196, 194, 195, 197, 195, 196, 198, 191, 192, 194, 191, 195, 196, 196, 197, 199, 197, 201, 202, 201, 202, 204, 203, 204, 206, 203, 204, 206, 203, 204, 206, 195, 196, 198, 196, 196, 198, 196, 196, 198, 197, 197, 199, 198, 198, 200, 200, 200, 202, 203, 201, 204, 203, 203, 205, 201, 202, 204, 202, 203, 205, 204, 205, 207, 202, 206, 207, 203, 204, 206, 202, 206, 207, 208, 209, 213, 209, 213, 216, 214, 218, 221, 214, 219, 222, 217, 221, 224, 218, 223, 226, 220, 225, 229, 222, 227, 231, 223, 228, 232, 224, 229, 235, 223, 230, 240, 223, 230, 240, 223, 229, 241, 223, 230, 240, 223, 230, 240, 223, 230, 240, 223, 230, 238, 223, 230, 238, 222, 231, 236, 222, 231, 236, 223, 232, 237, 223, 233, 235, 223, 232, 237, 224, 234, 236, 224, 234, 236, 224, 234, 236, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 236, 241, 245, 236, 241, 245, 236, 241, 245, 235, 240, 244, 235, 240, 244, 235, 240, 246, 234, 238, 247, 234, 238, 247, 235, 238, 245, 234, 237, 244, 234, 237, 242, 234, 237, 242, 232, 237, 243, 232, 237, 243, 228, 235, 241, 220, 227, 233, 213, 218, 221, 192, 194, 193, 164, 163, 158, 154, 150, 141, 144, 136, 125, 121, 113, 102, 97, 88, 83, 93, 85, 82, 93, 85, 82, 72, 64, 61, 49, 41, 39, 57, 49, 47, 59, 49, 48, 40, 30, 29, 32, 22, 21, 40, 30, 29, 55, 44, 42, 69, 58, 56, 72, 61, 57, 59, 48, 44, 41, 30, 24, 28, 17, 11, 39, 25, 22, 38, 24, 21, 44, 31, 25, 58, 45, 39, 73, 55, 51, 73, 55, 51, 63, 44, 38, 53, 34, 28, 62, 43, 37, 57, 38, 32, 53, 34, 30, 58, 39, 35, 71, 53, 49, 78, 60, 56, 68, 50, 48, 52, 34, 32, 43, 23, 22, 52, 32, 31, 64, 44, 43, 69, 49, 48, 62, 44, 42, 60, 42, 40, 74, 56, 54, 93, 75, 73, 102, 84, 82, 69, 51, 49, 65, 47, 45, 89, 71, 69, 106, 88, 86, 113, 95, 93, 107, 89, 87, 90, 72, 70, 75, 55, 56, 76, 56, 57, 80, 60, 61, 86, 66, 67, 94, 72, 74, 99, 77, 79, 99, 77, 79, 98, 76, 78, 104, 82, 84, 104, 82, 84, 107, 82, 85, 108, 83, 86, 111, 86, 89, 113, 88, 91, 116, 91, 94, 118, 93, 96, 118, 97, 96, 114, 93, 92, 107, 86, 85, 102, 78, 78, 97, 73, 73, 94, 70, 68, 94, 68, 67, 94, 69, 65, 94, 66, 63, 91, 63, 59, 88, 60, 56, 86, 57, 53, 83, 54, 50, 82, 53, 47, 83, 54, 48, 83, 54, 48, 88, 58, 50, 89, 59, 51, 91, 58, 51, 90, 57, 50, 89, 55, 46, 86, 52, 43, 85, 48, 39, 83, 46, 37, 78, 40, 29, 79, 41, 28, 81, 41, 29, 82, 43, 28, 82, 40, 24, 80, 38, 22, 77, 34, 18, 75, 32, 16, 74, 32, 16, 69, 30, 13, 66, 27, 12, 62, 25, 9, 60, 24, 8, 62, 26, 12, 63, 29, 17, 64, 32, 19, 77, 45, 34, 84, 51, 42, 91, 61, 53, 96, 66, 58, 97, 63, 61, 96, 62, 60, 97, 63, 61, 100, 66, 64, 100, 66, 64, 102, 68, 66, 108, 74, 72, 118, 84, 83, 126, 92, 91, 127, 93, 94, 120, 86, 87, 114, 80, 81, 112, 78, 79, 110, 74, 76, 106, 70, 70, 107, 69, 68, 109, 69, 67, 114, 73, 71, 118, 77, 73, 120, 79, 75, 125, 84, 82, 129, 89, 87, 130, 90, 88, 120, 85, 79, 114, 84, 76, 122, 97, 90, 139, 120, 113, 149, 138, 132, 167, 163, 160, 186, 188, 187, 211, 216, 219, 228, 236, 239, 232, 241, 246, 231, 240, 245, 233, 240, 246, 235, 242, 248, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 237, 240, 247, 237, 240, 247, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 227, 232, 238, 227, 232, 238, 227, 232, 238, 227, 232, 238, 226, 231, 237, 226, 231, 237, 226, 231, 237, 225, 230, 236, 226, 233, 239, 225, 232, 238, 223, 230, 236, 221, 228, 234, 217, 226, 231, 215, 224, 229, 213, 222, 227, 213, 220, 226, 209, 214, 220, 205, 210, 216, 200, 203, 210, 196, 199, 204, 194, 197, 202, 193, 197, 200, 192, 196, 199, 190, 194, 195, 193, 194, 196, 193, 195, 194, 193, 195, 194, 192, 194, 193, 191, 193, 192, 190, 192, 189, 191, 191, 189, 190, 190, 188, 197, 197, 195, 198, 198, 196, 200, 200, 198, 202, 202, 200, 203, 203, 201, 201, 201, 199, 199, 199, 197, 199, 198, 196, 192, 191, 189, 192, 191, 189, 191, 190, 188, 191, 190, 188, 194, 190, 189, 196, 192, 191, 197, 193, 192, 196, 195, 193, 196, 196, 194, 198, 198, 196, 200, 200, 198, 200, 200, 198, 200, 200, 198, 200, 202, 199, 205, 205, 205, 207, 209, 208, 206, 208, 207, 206, 210, 209, 210, 212, 211, 211, 215, 214, 214, 218, 219, 216, 220, 221, 219, 223, 224, 219, 224, 227, 220, 224, 233, 219, 226, 236, 219, 226, 236, 220, 227, 237, 221, 228, 238, 222, 229, 237, 222, 229, 237, 223, 230, 238, 222, 231, 236, 222, 231, 236, 222, 232, 234, 223, 233, 235, 223, 233, 235, 223, 233, 235, 224, 234, 236, 224, 234, 236, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 236, 241, 245, 236, 241, 245, 236, 241, 245, 235, 240, 244, 235, 240, 244, 235, 240, 244, 234, 238, 247, 234, 238, 247, 234, 237, 244, 234, 237, 244, 234, 237, 242, 232, 237, 241, 232, 237, 243, 232, 237, 243, 226, 233, 239, 214, 219, 223, 205, 209, 210, 184, 186, 183, 155, 154, 149, 148, 144, 135, 141, 133, 122, 114, 106, 95, 78, 69, 64, 67, 59, 56, 69, 61, 58, 57, 49, 46, 62, 54, 52, 84, 76, 74, 69, 59, 58, 40, 30, 29, 19, 9, 8, 37, 27, 26, 61, 50, 48, 72, 61, 59, 62, 51, 47, 41, 30, 26, 30, 19, 13, 29, 18, 12, 38, 24, 21, 39, 25, 22, 45, 32, 26, 52, 39, 33, 57, 39, 35, 53, 35, 31, 55, 36, 30, 59, 40, 34, 54, 35, 29, 55, 36, 30, 57, 38, 34, 62, 43, 39, 70, 52, 48, 73, 55, 51, 63, 45, 43, 49, 31, 29, 41, 21, 20, 46, 26, 25, 51, 31, 30, 54, 34, 33, 60, 42, 40, 74, 56, 54, 92, 74, 72, 106, 88, 86, 79, 61, 59, 67, 49, 47, 89, 71, 69, 113, 95, 93, 110, 92, 90, 112, 94, 92, 107, 89, 87, 79, 61, 59, 84, 64, 65, 92, 72, 73, 101, 81, 82, 105, 85, 86, 106, 84, 86, 107, 85, 87, 110, 88, 90, 114, 92, 94, 110, 88, 90, 109, 87, 89, 108, 83, 86, 104, 79, 82, 102, 77, 80, 100, 75, 78, 99, 74, 77, 98, 73, 76, 98, 72, 73, 94, 68, 69, 89, 63, 64, 85, 59, 58, 84, 58, 57, 89, 61, 58, 93, 65, 62, 97, 68, 64, 85, 56, 52, 85, 54, 51, 84, 53, 50, 84, 53, 48, 85, 54, 49, 88, 55, 50, 90, 57, 52, 91, 58, 53, 87, 57, 49, 88, 58, 50, 91, 58, 51, 91, 58, 51, 89, 55, 46, 84, 50, 41, 81, 44, 35, 78, 41, 32, 81, 43, 32, 81, 43, 30, 82, 42, 30, 81, 42, 27, 82, 40, 24, 79, 37, 21, 78, 35, 19, 76, 34, 18, 71, 32, 15, 68, 29, 12, 64, 27, 11, 61, 24, 8, 61, 25, 9, 62, 29, 14, 66, 34, 21, 69, 37, 26, 80, 47, 38, 87, 54, 45, 94, 64, 56, 98, 67, 62, 98, 65, 60, 97, 63, 61, 98, 64, 62, 100, 66, 64, 101, 66, 64, 106, 70, 70, 113, 79, 78, 121, 87, 86, 124, 90, 91, 120, 86, 87, 111, 77, 78, 104, 70, 71, 105, 69, 71, 104, 68, 70, 106, 67, 68, 110, 71, 72, 118, 78, 78, 125, 84, 82, 131, 87, 86, 132, 88, 87, 127, 85, 86, 132, 92, 90, 129, 89, 87, 115, 80, 74, 112, 82, 74, 129, 104, 97, 150, 131, 124, 157, 146, 140, 167, 163, 160, 185, 187, 186, 211, 216, 219, 228, 236, 239, 232, 241, 246, 231, 240, 245, 232, 239, 245, 234, 241, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 237, 240, 247, 237, 240, 247, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 226, 231, 237, 226, 231, 237, 225, 230, 236, 225, 230, 236, 225, 230, 236, 224, 229, 235, 224, 229, 235, 224, 229, 235, 224, 229, 235, 223, 228, 234, 220, 227, 233, 218, 225, 231, 216, 223, 229, 214, 221, 227, 213, 220, 226, 212, 219, 225, 212, 215, 220, 207, 210, 215, 201, 202, 207, 196, 197, 202, 193, 194, 199, 191, 192, 196, 189, 190, 192, 187, 189, 188, 189, 189, 189, 191, 191, 189, 194, 194, 192, 196, 197, 192, 196, 197, 192, 194, 195, 190, 192, 191, 186, 190, 189, 184, 199, 198, 194, 199, 198, 194, 199, 198, 194, 197, 196, 192, 193, 192, 188, 188, 187, 183, 182, 181, 177, 181, 177, 174, 185, 181, 178, 185, 181, 178, 184, 180, 177, 183, 179, 176, 184, 179, 176, 185, 180, 177, 186, 181, 178, 186, 181, 178, 191, 187, 184, 191, 190, 186, 193, 192, 188, 193, 192, 188, 193, 192, 188, 194, 195, 190, 199, 198, 196, 201, 201, 199, 199, 199, 197, 199, 201, 198, 202, 202, 200, 203, 205, 202, 205, 207, 206, 207, 209, 208, 209, 211, 210, 210, 211, 213, 213, 218, 224, 214, 218, 227, 215, 219, 228, 217, 221, 230, 219, 223, 232, 221, 226, 232, 220, 227, 233, 221, 228, 234, 222, 231, 236, 222, 231, 236, 222, 231, 236, 222, 231, 236, 222, 233, 237, 222, 233, 237, 223, 234, 238, 224, 233, 238, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 236, 241, 245, 236, 241, 245, 236, 241, 245, 235, 240, 244, 235, 240, 244, 235, 240, 244, 234, 238, 247, 233, 237, 246, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 241, 229, 237, 240, 226, 231, 235, 206, 211, 214, 197, 199, 198, 176, 176, 174, 148, 145, 140, 142, 135, 127, 131, 122, 113, 99, 90, 81, 65, 56, 51, 54, 46, 43, 59, 51, 48, 49, 41, 38, 63, 55, 53, 89, 81, 79, 62, 52, 51, 28, 18, 17, 16, 6, 5, 31, 21, 20, 54, 43, 41, 67, 56, 54, 58, 47, 43, 40, 29, 25, 35, 24, 18, 41, 30, 24, 49, 35, 32, 47, 33, 30, 48, 35, 29, 46, 33, 27, 41, 23, 19, 35, 17, 13, 45, 26, 20, 60, 41, 35, 55, 36, 30, 61, 42, 36, 65, 46, 42, 64, 45, 41, 62, 44, 40, 59, 41, 37, 52, 34, 32, 44, 26, 24, 54, 36, 34, 55, 37, 35, 51, 33, 31, 52, 34, 32, 69, 51, 49, 94, 76, 74, 106, 88, 86, 105, 87, 85, 87, 69, 67, 93, 75, 73, 108, 88, 87, 114, 94, 93, 104, 84, 83, 94, 74, 73, 90, 70, 69, 86, 66, 65, 97, 75, 77, 102, 80, 82, 107, 85, 87, 107, 85, 87, 102, 80, 82, 98, 76, 78, 99, 77, 79, 101, 79, 81, 96, 71, 74, 94, 69, 72, 92, 67, 70, 89, 64, 67, 87, 61, 64, 86, 60, 63, 85, 59, 62, 85, 59, 62, 83, 54, 56, 84, 56, 55, 86, 58, 57, 87, 59, 58, 89, 61, 60, 90, 60, 58, 91, 61, 59, 92, 61, 58, 86, 55, 52, 88, 55, 50, 88, 55, 50, 89, 56, 51, 89, 56, 51, 90, 55, 49, 90, 55, 49, 89, 54, 48, 81, 48, 41, 81, 48, 41, 82, 49, 42, 82, 49, 42, 83, 49, 40, 83, 49, 40, 84, 47, 38, 83, 46, 37, 86, 48, 37, 85, 47, 34, 83, 43, 31, 81, 42, 27, 81, 39, 23, 79, 37, 21, 79, 37, 21, 79, 37, 21, 70, 32, 13, 67, 29, 10, 63, 26, 8, 61, 24, 8, 62, 26, 10, 65, 32, 17, 70, 38, 25, 74, 42, 31, 80, 50, 40, 88, 58, 50, 96, 65, 60, 99, 68, 63, 97, 66, 61, 95, 64, 59, 98, 64, 62, 100, 66, 64, 104, 70, 69, 110, 76, 77, 117, 83, 84, 120, 86, 87, 116, 84, 85, 112, 80, 81, 107, 75, 76, 105, 73, 74, 102, 68, 67, 103, 67, 67, 109, 70, 71, 117, 78, 79, 128, 88, 88, 136, 96, 94, 138, 97, 95, 138, 97, 95, 121, 79, 80, 116, 76, 74, 111, 71, 69, 104, 69, 63, 105, 75, 67, 119, 94, 87, 145, 126, 119, 163, 152, 146, 167, 163, 160, 185, 187, 186, 211, 216, 219, 228, 236, 239, 232, 241, 246, 230, 239, 244, 232, 239, 245, 234, 241, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 237, 240, 247, 237, 240, 247, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 225, 230, 236, 225, 230, 236, 224, 229, 235, 224, 229, 235, 224, 229, 235, 223, 228, 234, 223, 228, 234, 223, 228, 234, 221, 226, 232, 220, 225, 231, 217, 224, 230, 216, 223, 229, 214, 221, 227, 213, 220, 226, 212, 219, 225, 213, 218, 224, 211, 212, 217, 206, 207, 212, 199, 200, 205, 195, 196, 200, 195, 194, 199, 195, 195, 197, 194, 194, 194, 193, 193, 191, 188, 188, 186, 191, 192, 187, 197, 196, 192, 200, 199, 194, 201, 200, 195, 198, 198, 190, 194, 194, 186, 194, 191, 184, 196, 193, 186, 195, 192, 185, 194, 189, 185, 188, 185, 178, 182, 177, 173, 172, 169, 162, 164, 159, 155, 159, 154, 148, 178, 173, 169, 177, 172, 166, 177, 169, 166, 176, 169, 163, 176, 168, 165, 176, 169, 163, 176, 168, 165, 177, 170, 164, 176, 171, 167, 177, 174, 167, 180, 175, 171, 179, 176, 171, 179, 176, 171, 181, 178, 173, 185, 182, 177, 186, 185, 180, 196, 195, 191, 197, 196, 192, 198, 197, 193, 198, 197, 193, 199, 198, 194, 199, 200, 195, 201, 200, 198, 200, 200, 198, 209, 213, 216, 210, 214, 217, 211, 214, 219, 213, 218, 222, 217, 220, 225, 218, 223, 227, 220, 225, 229, 219, 227, 230, 222, 229, 235, 222, 231, 236, 222, 231, 236, 222, 231, 236, 223, 232, 237, 222, 233, 239, 222, 233, 239, 224, 233, 240, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 226, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 236, 241, 245, 236, 241, 245, 236, 241, 245, 235, 240, 244, 235, 240, 244, 235, 240, 244, 233, 238, 244, 233, 237, 246, 233, 238, 244, 233, 238, 244, 232, 237, 243, 230, 237, 243, 229, 237, 240, 229, 237, 239, 225, 230, 233, 202, 206, 207, 191, 191, 189, 170, 169, 165, 142, 137, 133, 135, 128, 120, 123, 114, 105, 86, 77, 68, 59, 50, 45, 56, 48, 45, 67, 59, 56, 50, 42, 39, 56, 48, 46, 76, 68, 66, 46, 36, 35, 17, 7, 6, 24, 14, 13, 27, 17, 16, 41, 30, 28, 59, 48, 46, 63, 52, 48, 54, 43, 39, 49, 38, 32, 50, 39, 33, 65, 51, 48, 55, 41, 38, 48, 35, 29, 45, 32, 26, 40, 22, 18, 34, 16, 12, 40, 21, 15, 53, 34, 28, 59, 40, 34, 67, 48, 42, 69, 50, 46, 62, 43, 39, 52, 34, 30, 46, 28, 24, 41, 23, 21, 38, 20, 18, 53, 35, 33, 61, 43, 41, 68, 50, 48, 77, 59, 57, 99, 81, 79, 117, 99, 97, 107, 89, 87, 82, 64, 62, 99, 81, 79, 99, 81, 79, 88, 68, 67, 88, 68, 67, 92, 72, 71, 69, 49, 48, 66, 46, 45, 100, 80, 79, 99, 77, 79, 99, 77, 79, 98, 76, 78, 94, 72, 74, 88, 66, 68, 81, 59, 61, 76, 54, 56, 73, 51, 53, 83, 58, 61, 83, 58, 61, 83, 58, 61, 84, 59, 62, 86, 60, 63, 88, 62, 65, 90, 64, 67, 93, 64, 66, 85, 55, 55, 89, 59, 59, 95, 65, 65, 99, 69, 69, 98, 68, 66, 92, 61, 59, 84, 53, 50, 78, 47, 44, 80, 47, 42, 81, 48, 43, 85, 50, 46, 87, 52, 48, 89, 54, 48, 92, 55, 49, 92, 55, 49, 92, 55, 49, 92, 57, 51, 89, 56, 49, 86, 53, 46, 83, 50, 43, 83, 49, 40, 85, 51, 42, 89, 52, 43, 90, 53, 44, 90, 52, 41, 88, 50, 37, 85, 45, 33, 81, 42, 27, 80, 38, 22, 79, 37, 21, 80, 38, 22, 80, 38, 22, 69, 31, 12, 67, 29, 10, 63, 26, 8, 61, 25, 9, 64, 28, 14, 68, 34, 22, 73, 41, 30, 78, 45, 36, 82, 52, 44, 89, 59, 51, 97, 66, 61, 100, 69, 64, 98, 67, 62, 95, 64, 59, 98, 64, 62, 100, 66, 64, 107, 73, 74, 111, 79, 80, 118, 83, 87, 116, 84, 85, 111, 79, 80, 107, 77, 77, 109, 77, 78, 111, 80, 78, 101, 70, 68, 104, 70, 69, 110, 74, 74, 123, 85, 84, 134, 96, 95, 142, 102, 102, 142, 102, 100, 141, 100, 98, 133, 91, 92, 115, 75, 73, 105, 65, 63, 104, 69, 63, 102, 72, 64, 106, 81, 74, 131, 112, 105, 159, 148, 142, 167, 163, 160, 185, 187, 186, 211, 216, 219, 228, 236, 239, 231, 240, 245, 230, 239, 244, 232, 239, 245, 234, 241, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 237, 240, 247, 237, 240, 247, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 228, 233, 239, 228, 233, 239, 228, 233, 239, 224, 229, 235, 224, 229, 235, 225, 230, 236, 225, 230, 236, 224, 229, 235, 223, 228, 234, 221, 226, 232, 220, 225, 231, 213, 218, 224, 213, 218, 224, 213, 218, 224, 214, 219, 225, 214, 219, 225, 211, 216, 222, 205, 210, 216, 201, 204, 211, 203, 204, 209, 208, 207, 212, 210, 209, 214, 202, 202, 204, 190, 188, 191, 182, 180, 181, 183, 181, 182, 186, 185, 183, 189, 188, 184, 188, 187, 182, 195, 192, 187, 202, 199, 192, 199, 196, 189, 186, 183, 174, 176, 173, 164, 172, 169, 160, 180, 176, 167, 171, 167, 158, 172, 165, 159, 180, 176, 167, 188, 181, 175, 180, 176, 167, 175, 168, 162, 173, 166, 158, 170, 163, 157, 173, 166, 158, 179, 170, 165, 178, 169, 162, 168, 159, 154, 161, 152, 145, 167, 158, 153, 179, 170, 163, 174, 167, 161, 172, 168, 159, 167, 160, 154, 159, 154, 148, 166, 161, 155, 180, 175, 169, 182, 177, 171, 172, 169, 162, 179, 176, 171, 182, 179, 174, 186, 183, 178, 190, 187, 182, 194, 191, 186, 195, 194, 189, 197, 193, 190, 193, 192, 188, 199, 199, 197, 204, 206, 203, 203, 205, 204, 197, 201, 200, 206, 207, 209, 217, 221, 222, 218, 222, 225, 209, 214, 217, 220, 225, 229, 221, 228, 234, 223, 230, 236, 223, 232, 239, 222, 231, 238, 221, 230, 239, 222, 231, 240, 223, 232, 241, 223, 230, 238, 223, 230, 236, 223, 230, 236, 224, 231, 237, 224, 231, 237, 225, 232, 238, 225, 232, 238, 225, 232, 238, 224, 231, 237, 224, 231, 237, 224, 231, 237, 225, 232, 238, 225, 232, 238, 225, 232, 238, 226, 233, 239, 226, 233, 239, 228, 233, 239, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 236, 241, 245, 236, 241, 245, 237, 242, 246, 237, 242, 246, 236, 241, 245, 236, 241, 245, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 240, 243, 250, 236, 239, 246, 232, 236, 245, 232, 236, 245, 232, 239, 245, 232, 239, 245, 227, 235, 238, 225, 230, 233, 220, 224, 225, 193, 195, 194, 181, 180, 176, 155, 152, 147, 121, 114, 108, 126, 117, 112, 125, 114, 108, 79, 70, 63, 70, 61, 56, 50, 42, 39, 71, 63, 60, 55, 47, 44, 61, 53, 51, 82, 74, 72, 37, 27, 26, 9, 0, 0, 30, 20, 19, 53, 43, 42, 65, 54, 52, 67, 56, 54, 72, 61, 57, 69, 58, 54, 56, 45, 39, 48, 37, 31, 42, 28, 25, 42, 28, 25, 39, 26, 20, 33, 20, 14, 30, 12, 8, 29, 11, 7, 36, 17, 11, 42, 23, 17, 55, 36, 30, 67, 48, 42, 69, 50, 46, 56, 37, 33, 46, 28, 24, 50, 32, 28, 58, 40, 38, 61, 43, 41, 59, 44, 41, 69, 54, 51, 55, 40, 37, 76, 61, 58, 127, 109, 107, 109, 91, 89, 75, 57, 55, 94, 76, 74, 98, 78, 77, 88, 68, 67, 80, 60, 59, 82, 62, 61, 94, 73, 72, 102, 81, 80, 101, 80, 79, 97, 76, 75, 93, 71, 73, 80, 58, 60, 66, 44, 46, 65, 43, 45, 78, 53, 56, 91, 66, 69, 97, 72, 75, 98, 73, 76, 88, 63, 66, 87, 62, 65, 87, 61, 64, 86, 60, 63, 86, 60, 63, 87, 61, 64, 88, 62, 65, 90, 61, 63, 90, 60, 60, 92, 61, 59, 94, 63, 61, 94, 63, 61, 92, 61, 59, 90, 56, 55, 86, 52, 50, 83, 49, 47, 85, 50, 46, 85, 50, 46, 87, 50, 44, 87, 50, 44, 87, 50, 44, 89, 50, 45, 89, 50, 43, 88, 51, 43, 89, 54, 48, 88, 53, 47, 86, 51, 45, 84, 49, 43, 83, 49, 40, 83, 49, 40, 85, 48, 39, 85, 48, 39, 92, 54, 43, 91, 53, 40, 88, 50, 37, 86, 49, 33, 83, 44, 27, 81, 42, 25, 78, 39, 22, 77, 38, 21, 72, 34, 15, 66, 28, 9, 62, 25, 7, 63, 27, 11, 66, 30, 16, 66, 32, 20, 71, 38, 29, 79, 46, 39, 88, 58, 50, 89, 58, 53, 92, 61, 58, 95, 64, 61, 98, 67, 64, 100, 69, 66, 102, 71, 66, 103, 72, 69, 102, 70, 71, 108, 78, 80, 115, 83, 88, 114, 84, 86, 109, 79, 81, 102, 74, 73, 101, 71, 71, 101, 71, 69, 103, 73, 71, 117, 86, 83, 129, 95, 93, 128, 93, 91, 124, 89, 87, 129, 91, 88, 136, 98, 95, 142, 102, 100, 142, 100, 101, 121, 81, 79, 108, 68, 66, 106, 71, 65, 101, 71, 63, 98, 73, 66, 119, 100, 93, 145, 134, 128, 150, 146, 143, 176, 178, 177, 208, 213, 216, 226, 234, 237, 231, 240, 245, 232, 241, 246, 234, 241, 247, 234, 241, 247, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 237, 240, 247, 237, 240, 247, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 226, 231, 237, 225, 230, 236, 223, 228, 234, 222, 227, 233, 220, 225, 231, 217, 222, 228, 214, 219, 225, 212, 217, 223, 209, 214, 220, 204, 209, 215, 199, 202, 209, 196, 197, 202, 193, 192, 197, 191, 189, 192, 187, 185, 188, 186, 184, 185, 187, 185, 186, 189, 188, 186, 190, 189, 187, 192, 188, 185, 188, 185, 180, 190, 187, 182, 189, 186, 179, 183, 180, 173, 175, 171, 162, 169, 166, 157, 170, 166, 157, 172, 168, 159, 169, 162, 154, 160, 153, 145, 160, 153, 145, 171, 164, 156, 180, 173, 165, 179, 172, 164, 176, 169, 161, 177, 168, 161, 168, 159, 152, 159, 150, 143, 152, 143, 136, 158, 149, 142, 170, 159, 153, 169, 158, 152, 154, 143, 137, 137, 126, 120, 128, 119, 112, 136, 129, 121, 142, 133, 126, 141, 134, 126, 145, 136, 131, 154, 147, 141, 167, 160, 154, 174, 167, 161, 169, 162, 156, 169, 164, 158, 177, 169, 166, 181, 176, 172, 182, 177, 173, 182, 177, 173, 186, 181, 177, 191, 188, 183, 184, 183, 178, 190, 189, 184, 197, 198, 192, 200, 201, 195, 198, 198, 196, 196, 198, 195, 201, 203, 202, 207, 211, 212, 212, 216, 219, 214, 219, 223, 219, 224, 230, 219, 226, 234, 220, 227, 237, 221, 230, 239, 224, 230, 242, 226, 233, 243, 223, 230, 238, 223, 230, 236, 223, 230, 236, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 225, 232, 238, 225, 232, 238, 225, 232, 238, 226, 233, 239, 226, 233, 239, 228, 233, 239, 228, 233, 239, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 236, 241, 245, 236, 241, 245, 237, 242, 246, 236, 241, 245, 236, 241, 245, 236, 241, 245, 235, 240, 244, 235, 240, 244, 235, 240, 244, 234, 239, 243, 239, 242, 249, 235, 238, 245, 231, 235, 244, 230, 237, 245, 231, 240, 245, 230, 239, 244, 226, 234, 237, 223, 229, 229, 218, 222, 221, 196, 196, 194, 176, 173, 168, 145, 140, 134, 119, 110, 105, 120, 111, 106, 117, 106, 102, 86, 77, 72, 82, 72, 70, 49, 41, 38, 69, 61, 58, 68, 60, 57, 71, 63, 61, 74, 66, 64, 30, 20, 19, 16, 6, 5, 26, 16, 15, 53, 43, 42, 65, 54, 52, 55, 44, 42, 47, 36, 32, 44, 33, 29, 45, 34, 28, 52, 41, 35, 58, 44, 41, 53, 39, 36, 44, 31, 25, 35, 22, 16, 34, 16, 12, 36, 18, 14, 44, 25, 19, 50, 31, 25, 71, 52, 46, 74, 55, 49, 68, 49, 45, 55, 36, 32, 51, 33, 29, 62, 44, 40, 75, 57, 55, 80, 62, 60, 90, 75, 72, 62, 47, 44, 83, 68, 65, 115, 100, 97, 99, 81, 79, 82, 64, 62, 90, 72, 70, 92, 74, 72, 84, 64, 63, 86, 66, 65, 90, 70, 69, 94, 74, 73, 97, 76, 75, 94, 73, 72, 86, 65, 64, 80, 59, 58, 77, 55, 57, 74, 52, 54, 74, 52, 54, 80, 58, 60, 89, 64, 67, 92, 67, 70, 89, 64, 67, 84, 59, 62, 85, 60, 63, 84, 59, 62, 85, 59, 62, 84, 58, 61, 85, 59, 62, 86, 60, 63, 87, 61, 64, 90, 61, 63, 86, 56, 56, 88, 57, 55, 90, 59, 57, 90, 59, 57, 91, 57, 56, 88, 54, 53, 84, 50, 48, 82, 48, 46, 82, 47, 43, 83, 48, 44, 86, 49, 43, 88, 51, 45, 91, 52, 47, 93, 54, 49, 94, 55, 48, 95, 56, 49, 88, 51, 45, 86, 51, 45, 85, 50, 44, 85, 50, 44, 85, 51, 42, 86, 52, 43, 89, 52, 43, 89, 52, 43, 89, 51, 40, 88, 50, 37, 87, 49, 36, 85, 48, 32, 83, 44, 27, 81, 42, 25, 79, 40, 23, 78, 39, 22, 74, 36, 17, 68, 31, 13, 65, 28, 12, 66, 30, 16, 67, 33, 21, 70, 36, 26, 75, 42, 35, 81, 50, 45, 90, 59, 54, 90, 59, 56, 91, 60, 57, 92, 61, 58, 94, 63, 60, 97, 66, 63, 99, 68, 65, 101, 70, 67, 109, 79, 81, 112, 81, 86, 115, 84, 89, 115, 84, 89, 113, 84, 86, 112, 84, 83, 113, 85, 82, 113, 85, 81, 115, 86, 82, 123, 94, 90, 128, 97, 94, 127, 94, 89, 125, 90, 86, 130, 95, 91, 139, 101, 98, 143, 105, 102, 129, 89, 89, 119, 79, 77, 116, 76, 74, 114, 79, 73, 103, 73, 65, 94, 69, 62, 110, 91, 84, 134, 123, 117, 154, 150, 147, 180, 182, 181, 211, 216, 219, 227, 235, 238, 231, 240, 245, 232, 241, 246, 233, 240, 246, 233, 240, 246, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 237, 240, 247, 237, 240, 247, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 228, 233, 239, 228, 233, 239, 228, 233, 239, 222, 230, 233, 222, 230, 233, 221, 229, 232, 220, 228, 231, 220, 225, 229, 217, 222, 226, 215, 220, 224, 214, 219, 223, 217, 220, 225, 214, 217, 222, 209, 212, 217, 204, 207, 212, 201, 204, 209, 197, 200, 205, 194, 195, 200, 190, 191, 195, 193, 191, 194, 185, 181, 182, 176, 172, 173, 179, 175, 174, 191, 187, 186, 200, 196, 193, 200, 196, 193, 196, 191, 188, 182, 177, 173, 183, 178, 174, 174, 169, 163, 160, 155, 149, 157, 150, 142, 159, 155, 146, 161, 154, 146, 155, 148, 140, 150, 143, 135, 145, 136, 129, 144, 135, 128, 151, 142, 135, 154, 145, 138, 147, 138, 131, 136, 127, 120, 131, 120, 114, 154, 143, 137, 158, 147, 141, 158, 147, 141, 156, 145, 139, 162, 149, 143, 165, 152, 146, 154, 141, 135, 136, 125, 119, 124, 113, 107, 125, 116, 109, 131, 120, 114, 133, 124, 117, 133, 122, 116, 131, 122, 115, 139, 130, 125, 150, 141, 136, 159, 150, 145, 158, 151, 145, 166, 156, 154, 176, 168, 165, 177, 169, 166, 173, 165, 162, 178, 170, 167, 187, 182, 176, 178, 174, 165, 173, 171, 159, 181, 178, 169, 194, 191, 182, 193, 192, 187, 185, 184, 180, 189, 188, 186, 201, 201, 201, 201, 201, 203, 204, 205, 209, 208, 211, 218, 212, 216, 225, 215, 219, 230, 217, 224, 234, 223, 227, 239, 224, 231, 241, 223, 230, 238, 223, 230, 236, 223, 230, 236, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 224, 231, 237, 223, 230, 236, 224, 231, 237, 224, 231, 237, 224, 231, 237, 225, 232, 238, 225, 232, 238, 225, 232, 238, 226, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 235, 240, 244, 235, 240, 244, 235, 240, 244, 234, 239, 243, 234, 239, 243, 237, 240, 247, 234, 237, 244, 231, 235, 244, 230, 237, 245, 231, 240, 247, 229, 238, 243, 223, 231, 234, 219, 225, 225, 208, 210, 207, 191, 190, 186, 162, 157, 151, 133, 126, 118, 119, 110, 103, 115, 104, 100, 109, 98, 94, 100, 90, 88, 90, 80, 78, 47, 39, 36, 65, 57, 54, 78, 70, 67, 76, 68, 66, 59, 51, 49, 20, 10, 9, 22, 12, 11, 33, 23, 22, 58, 48, 47, 65, 54, 52, 50, 39, 37, 40, 29, 25, 36, 25, 21, 38, 27, 21, 47, 36, 30, 53, 39, 36, 46, 32, 29, 36, 23, 17, 32, 19, 13, 39, 21, 17, 50, 32, 28, 61, 42, 36, 68, 49, 43, 79, 60, 54, 77, 58, 52, 69, 50, 46, 62, 43, 39, 65, 47, 43, 76, 58, 54, 84, 66, 64, 85, 67, 65, 79, 64, 61, 65, 51, 48, 105, 91, 88, 121, 107, 104, 75, 60, 57, 67, 52, 49, 95, 77, 75, 84, 66, 64, 74, 54, 53, 82, 62, 61, 93, 72, 71, 96, 75, 74, 90, 69, 68, 81, 60, 59, 76, 52, 52, 72, 48, 48, 73, 51, 53, 79, 57, 59, 90, 65, 68, 97, 72, 75, 100, 75, 78, 96, 71, 74, 89, 64, 67, 84, 59, 62, 86, 60, 63, 86, 60, 63, 86, 60, 63, 86, 60, 63, 87, 61, 64, 89, 63, 66, 93, 64, 68, 94, 65, 67, 93, 63, 63, 95, 63, 64, 95, 64, 62, 93, 62, 60, 92, 58, 57, 88, 54, 53, 84, 50, 48, 81, 47, 45, 85, 50, 46, 85, 50, 46, 88, 50, 47, 89, 51, 48, 90, 53, 47, 91, 54, 48, 92, 53, 48, 93, 54, 49, 84, 47, 41, 84, 47, 41, 84, 47, 41, 84, 47, 41, 85, 48, 40, 87, 50, 42, 88, 51, 42, 89, 52, 43, 86, 48, 37, 85, 47, 34, 84, 46, 33, 83, 46, 30, 82, 45, 27, 81, 44, 26, 80, 43, 25, 79, 42, 24, 76, 39, 21, 71, 34, 16, 68, 31, 15, 70, 34, 20, 71, 37, 27, 74, 40, 31, 80, 47, 42, 86, 55, 52, 92, 61, 59, 90, 60, 58, 88, 58, 56, 88, 58, 56, 91, 60, 58, 95, 64, 61, 99, 68, 65, 102, 71, 69, 117, 86, 91, 115, 86, 91, 114, 85, 89, 116, 87, 91, 120, 91, 93, 124, 96, 95, 125, 97, 94, 125, 97, 93, 123, 95, 91, 126, 97, 91, 125, 94, 89, 120, 90, 82, 122, 89, 82, 128, 95, 88, 134, 99, 95, 135, 97, 94, 128, 88, 88, 126, 86, 84, 128, 88, 86, 123, 88, 82, 107, 77, 69, 95, 70, 63, 113, 94, 87, 139, 128, 122, 160, 156, 153, 185, 187, 186, 214, 219, 222, 229, 237, 240, 231, 240, 245, 231, 240, 245, 232, 239, 245, 231, 238, 244, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 237, 240, 247, 237, 240, 247, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 228, 233, 239, 228, 233, 239, 228, 233, 239, 222, 230, 233, 221, 229, 232, 220, 228, 231, 219, 227, 230, 218, 223, 227, 215, 220, 224, 212, 217, 221, 210, 215, 219, 207, 210, 215, 203, 206, 211, 198, 201, 206, 195, 198, 203, 193, 196, 201, 192, 195, 200, 192, 193, 198, 190, 189, 194, 195, 191, 192, 185, 181, 178, 177, 173, 172, 180, 176, 173, 190, 186, 183, 197, 192, 189, 193, 188, 185, 186, 181, 178, 173, 168, 164, 172, 167, 163, 162, 155, 149, 149, 142, 136, 152, 145, 139, 162, 155, 147, 154, 147, 141, 135, 128, 120, 131, 122, 115, 130, 121, 114, 134, 125, 118, 142, 133, 126, 145, 136, 129, 136, 127, 120, 120, 109, 103, 107, 96, 90, 122, 111, 105, 135, 124, 118, 138, 127, 121, 128, 117, 111, 131, 118, 112, 147, 134, 128, 157, 144, 138, 154, 141, 135, 148, 135, 129, 133, 122, 116, 129, 116, 110, 132, 121, 115, 136, 123, 117, 124, 113, 107, 117, 106, 102, 117, 106, 102, 144, 133, 129, 138, 129, 124, 146, 135, 133, 162, 152, 150, 168, 158, 156, 163, 153, 151, 162, 152, 150, 168, 161, 155, 176, 169, 159, 165, 159, 147, 161, 154, 144, 175, 168, 158, 187, 183, 174, 191, 188, 181, 192, 188, 185, 191, 190, 188, 192, 190, 191, 196, 196, 198, 201, 202, 206, 205, 208, 213, 209, 212, 221, 213, 216, 225, 217, 219, 231, 220, 224, 233, 223, 230, 236, 223, 230, 236, 223, 230, 236, 224, 231, 237, 224, 231, 237, 225, 232, 238, 225, 232, 238, 226, 233, 239, 223, 230, 236, 223, 230, 236, 224, 231, 237, 224, 231, 237, 224, 231, 237, 225, 232, 238, 225, 232, 238, 225, 232, 238, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 229, 234, 240, 230, 235, 241, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 235, 240, 244, 235, 240, 244, 235, 240, 244, 234, 239, 243, 234, 239, 243, 234, 239, 243, 235, 238, 245, 233, 236, 243, 231, 235, 244, 229, 238, 245, 229, 240, 246, 225, 236, 240, 217, 227, 229, 213, 219, 219, 189, 191, 188, 177, 176, 171, 145, 141, 132, 125, 116, 109, 125, 114, 108, 113, 102, 98, 100, 89, 87, 107, 97, 95, 83, 73, 71, 43, 35, 32, 56, 48, 45, 72, 64, 61, 65, 57, 55, 42, 34, 32, 14, 4, 3, 20, 10, 9, 42, 32, 31, 56, 46, 45, 55, 44, 42, 44, 33, 31, 44, 33, 29, 41, 30, 26, 30, 19, 13, 25, 14, 8, 39, 25, 22, 32, 18, 15, 26, 13, 7, 28, 15, 9, 42, 24, 20, 55, 37, 33, 66, 47, 41, 70, 51, 45, 71, 52, 46, 69, 50, 44, 68, 49, 45, 71, 52, 48, 76, 58, 54, 78, 60, 56, 73, 55, 53, 64, 49, 46, 50, 35, 32, 97, 83, 80, 114, 100, 97, 91, 77, 74, 83, 68, 65, 90, 75, 72, 90, 72, 70, 80, 62, 60, 71, 51, 50, 75, 55, 54, 79, 58, 57, 80, 59, 58, 77, 56, 55, 74, 53, 52, 76, 52, 52, 77, 53, 53, 79, 57, 59, 84, 62, 64, 93, 68, 71, 95, 70, 73, 92, 67, 70, 89, 64, 67, 89, 64, 67, 90, 65, 68, 89, 63, 66, 89, 63, 66, 90, 64, 67, 91, 65, 68, 93, 67, 70, 95, 69, 72, 99, 70, 74, 101, 72, 74, 109, 79, 81, 109, 77, 78, 107, 76, 74, 103, 72, 70, 100, 66, 65, 94, 60, 59, 89, 55, 54, 86, 52, 50, 95, 60, 58, 94, 59, 55, 94, 56, 53, 92, 54, 51, 89, 52, 46, 87, 50, 44, 86, 47, 42, 85, 46, 41, 84, 47, 41, 83, 46, 40, 82, 45, 39, 82, 45, 39, 82, 45, 37, 83, 46, 38, 84, 47, 38, 84, 47, 38, 83, 45, 34, 83, 45, 32, 82, 44, 31, 82, 45, 29, 82, 45, 27, 81, 44, 26, 81, 44, 26, 81, 44, 26, 77, 40, 22, 72, 35, 19, 69, 33, 19, 73, 37, 25, 74, 40, 31, 77, 44, 37, 82, 51, 48, 90, 59, 57, 92, 62, 62, 90, 60, 60, 88, 58, 60, 88, 58, 58, 92, 60, 61, 98, 67, 65, 105, 74, 72, 109, 78, 76, 120, 89, 94, 116, 87, 92, 115, 86, 90, 118, 89, 91, 124, 96, 95, 127, 99, 96, 126, 98, 94, 122, 95, 88, 120, 93, 86, 120, 91, 83, 117, 87, 79, 116, 83, 76, 118, 85, 78, 124, 89, 83, 123, 88, 84, 119, 81, 78, 126, 86, 86, 128, 88, 86, 130, 90, 88, 121, 86, 80, 102, 72, 64, 96, 71, 64, 122, 103, 96, 152, 141, 135, 167, 163, 160, 190, 192, 191, 218, 223, 226, 231, 239, 242, 231, 240, 245, 231, 240, 245, 231, 238, 244, 230, 237, 243, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 237, 240, 247, 237, 240, 247, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 228, 233, 239, 228, 233, 239, 228, 233, 239, 230, 238, 241, 229, 237, 240, 228, 236, 239, 227, 235, 238, 226, 231, 235, 223, 228, 232, 220, 225, 229, 218, 223, 227, 209, 212, 217, 205, 208, 213, 201, 202, 207, 197, 198, 203, 195, 196, 201, 193, 194, 199, 191, 190, 196, 189, 188, 193, 186, 182, 181, 185, 180, 176, 184, 179, 176, 185, 180, 176, 187, 182, 178, 187, 179, 176, 182, 174, 171, 177, 169, 166, 170, 162, 159, 173, 165, 162, 165, 155, 153, 148, 138, 136, 145, 135, 133, 154, 145, 140, 154, 144, 142, 143, 134, 129, 107, 98, 93, 109, 100, 95, 114, 103, 99, 123, 112, 108, 132, 121, 117, 135, 124, 120, 127, 116, 112, 118, 107, 103, 108, 94, 91, 104, 90, 87, 88, 74, 71, 76, 62, 59, 90, 76, 73, 119, 105, 102, 132, 118, 115, 127, 113, 110, 137, 123, 120, 126, 112, 109, 123, 108, 105, 129, 115, 112, 131, 116, 113, 118, 104, 101, 108, 94, 93, 106, 92, 91, 123, 109, 108, 114, 103, 101, 120, 106, 105, 136, 125, 123, 149, 137, 137, 147, 135, 135, 140, 128, 128, 138, 127, 125, 161, 151, 142, 158, 148, 138, 151, 141, 132, 151, 141, 132, 165, 156, 149, 184, 177, 171, 193, 185, 182, 188, 183, 180, 191, 187, 186, 193, 191, 192, 199, 197, 200, 203, 203, 205, 206, 205, 211, 209, 210, 215, 213, 214, 219, 214, 217, 222, 221, 226, 232, 219, 226, 232, 221, 228, 234, 222, 229, 235, 224, 231, 237, 225, 232, 238, 226, 233, 239, 227, 234, 240, 223, 230, 236, 223, 230, 236, 223, 230, 236, 223, 230, 236, 224, 231, 237, 224, 231, 237, 225, 232, 238, 225, 232, 238, 227, 232, 238, 227, 232, 238, 228, 233, 239, 228, 233, 239, 228, 233, 239, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 236, 241, 245, 236, 241, 245, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 234, 239, 243, 234, 239, 243, 234, 239, 243, 233, 238, 242, 234, 237, 244, 233, 236, 243, 231, 235, 244, 229, 238, 245, 227, 238, 244, 220, 231, 235, 209, 219, 220, 203, 209, 207, 177, 179, 174, 164, 161, 154, 133, 126, 118, 123, 113, 104, 129, 118, 112, 107, 93, 90, 83, 72, 70, 95, 85, 84, 63, 53, 51, 36, 28, 25, 43, 35, 32, 50, 42, 39, 42, 34, 32, 28, 20, 18, 15, 5, 4, 19, 9, 8, 46, 36, 35, 52, 42, 41, 42, 31, 29, 30, 19, 17, 33, 22, 18, 33, 22, 18, 22, 11, 5, 15, 4, 0, 36, 22, 19, 32, 18, 15, 30, 17, 11, 34, 21, 15, 45, 27, 23, 52, 34, 30, 56, 37, 31, 55, 36, 30, 60, 41, 35, 59, 40, 34, 62, 43, 39, 69, 50, 46, 71, 53, 49, 67, 49, 45, 59, 41, 39, 51, 36, 33, 76, 61, 58, 123, 109, 106, 109, 95, 92, 75, 61, 58, 94, 79, 76, 104, 89, 86, 84, 66, 64, 77, 59, 57, 66, 46, 45, 64, 44, 43, 66, 45, 44, 70, 49, 48, 78, 54, 54, 82, 58, 58, 83, 59, 59, 83, 59, 59, 81, 56, 59, 86, 61, 64, 89, 64, 67, 87, 62, 65, 82, 57, 60, 80, 55, 58, 85, 59, 62, 89, 63, 66, 90, 64, 67, 90, 64, 67, 90, 64, 67, 91, 65, 68, 95, 66, 70, 97, 68, 72, 100, 71, 75, 101, 72, 74, 111, 81, 83, 110, 80, 80, 108, 78, 78, 105, 75, 75, 103, 71, 72, 99, 68, 66, 96, 65, 63, 95, 64, 61, 100, 66, 64, 99, 65, 63, 98, 63, 59, 95, 60, 56, 93, 58, 54, 90, 55, 51, 90, 53, 47, 89, 52, 46, 91, 54, 48, 90, 53, 47, 87, 50, 44, 85, 48, 42, 83, 46, 38, 82, 45, 37, 82, 45, 36, 82, 45, 36, 81, 45, 33, 81, 45, 31, 82, 44, 31, 82, 45, 29, 82, 45, 27, 82, 45, 27, 82, 45, 27, 82, 45, 27, 77, 40, 22, 72, 35, 19, 70, 34, 20, 74, 37, 28, 76, 41, 35, 80, 47, 42, 86, 55, 53, 94, 62, 63, 93, 63, 65, 92, 62, 64, 91, 60, 65, 92, 62, 64, 97, 67, 67, 104, 74, 72, 112, 81, 79, 117, 85, 86, 117, 84, 91, 115, 84, 90, 116, 85, 90, 120, 90, 92, 124, 94, 94, 123, 93, 91, 117, 88, 82, 110, 81, 73, 112, 83, 75, 114, 84, 74, 113, 83, 73, 114, 81, 72, 119, 85, 76, 124, 87, 79, 116, 79, 73, 107, 67, 65, 114, 72, 73, 118, 78, 76, 124, 84, 82, 118, 83, 77, 105, 75, 67, 104, 79, 72, 128, 109, 102, 154, 143, 137, 171, 167, 164, 194, 196, 195, 220, 225, 228, 231, 239, 242, 231, 240, 245, 230, 239, 244, 231, 238, 244, 230, 237, 243, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 237, 240, 247, 237, 240, 247, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 236, 239, 228, 236, 239, 227, 235, 238, 226, 234, 237, 226, 231, 235, 223, 228, 232, 221, 226, 230, 220, 225, 229, 220, 223, 228, 215, 218, 223, 211, 212, 217, 205, 206, 211, 200, 201, 206, 194, 195, 200, 188, 187, 193, 185, 183, 186, 185, 181, 178, 190, 185, 181, 194, 189, 185, 194, 189, 185, 192, 184, 181, 187, 179, 176, 183, 175, 172, 181, 173, 170, 168, 160, 157, 174, 166, 163, 167, 157, 155, 144, 134, 132, 127, 117, 115, 131, 121, 119, 146, 136, 134, 156, 146, 144, 127, 118, 113, 123, 114, 109, 115, 104, 100, 111, 100, 96, 116, 105, 101, 123, 112, 108, 122, 111, 107, 115, 104, 100, 122, 108, 105, 117, 103, 100, 99, 85, 82, 77, 63, 60, 69, 55, 52, 80, 66, 63, 92, 78, 75, 96, 82, 79, 115, 100, 97, 119, 104, 101, 126, 111, 108, 129, 114, 111, 120, 105, 102, 109, 94, 91, 105, 89, 89, 107, 93, 92, 112, 98, 97, 110, 96, 95, 110, 96, 95, 119, 105, 104, 132, 118, 118, 136, 124, 124, 131, 119, 119, 126, 112, 111, 135, 122, 116, 147, 134, 126, 148, 133, 126, 134, 121, 113, 132, 121, 115, 153, 144, 139, 175, 166, 161, 183, 175, 172, 186, 181, 178, 189, 185, 184, 195, 191, 190, 197, 195, 196, 200, 198, 201, 202, 202, 204, 205, 205, 207, 207, 208, 212, 212, 217, 221, 211, 218, 224, 213, 220, 226, 216, 223, 229, 219, 226, 232, 222, 229, 235, 224, 231, 237, 226, 233, 239, 222, 229, 235, 222, 229, 235, 223, 230, 236, 223, 230, 236, 223, 230, 236, 224, 231, 237, 224, 231, 237, 224, 231, 237, 227, 232, 238, 227, 232, 238, 227, 232, 238, 228, 233, 239, 228, 233, 239, 228, 233, 239, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 236, 241, 245, 236, 241, 245, 235, 240, 244, 235, 240, 244, 235, 240, 244, 234, 239, 243, 234, 239, 243, 233, 238, 242, 233, 238, 242, 233, 238, 242, 236, 236, 244, 233, 236, 243, 231, 235, 244, 228, 237, 244, 224, 235, 241, 212, 226, 229, 199, 211, 211, 190, 199, 196, 175, 176, 170, 147, 144, 135, 118, 109, 100, 119, 109, 100, 126, 113, 107, 95, 81, 78, 64, 53, 51, 70, 60, 59, 46, 36, 34, 28, 20, 17, 29, 21, 18, 31, 23, 20, 22, 14, 12, 20, 12, 10, 25, 15, 14, 32, 22, 21, 58, 48, 47, 61, 51, 50, 44, 33, 31, 23, 12, 10, 22, 11, 7, 27, 16, 12, 29, 18, 12, 33, 22, 16, 30, 16, 13, 32, 18, 15, 37, 24, 18, 44, 31, 25, 54, 36, 32, 57, 39, 35, 57, 38, 32, 56, 37, 31, 56, 37, 31, 55, 36, 30, 56, 37, 33, 60, 41, 37, 58, 40, 36, 57, 39, 35, 63, 45, 43, 69, 54, 51, 125, 111, 108, 109, 95, 92, 88, 74, 71, 77, 63, 60, 80, 65, 62, 79, 64, 61, 71, 53, 51, 62, 44, 42, 59, 39, 38, 62, 42, 41, 69, 48, 47, 78, 57, 56, 89, 65, 65, 92, 68, 68, 88, 64, 64, 84, 60, 60, 88, 63, 66, 92, 67, 70, 96, 71, 74, 95, 70, 73, 90, 65, 68, 86, 61, 64, 87, 61, 64, 89, 63, 66, 87, 61, 64, 87, 61, 64, 87, 61, 64, 87, 61, 64, 91, 62, 66, 92, 63, 67, 94, 65, 69, 95, 66, 70, 98, 68, 70, 98, 68, 68, 98, 68, 68, 98, 68, 68, 100, 68, 69, 100, 68, 69, 101, 70, 68, 101, 70, 68, 98, 64, 62, 98, 64, 62, 99, 64, 60, 99, 64, 60, 99, 64, 60, 99, 64, 60, 101, 64, 58, 101, 64, 58, 98, 61, 55, 96, 59, 53, 94, 57, 51, 91, 54, 48, 88, 51, 43, 86, 49, 41, 85, 48, 39, 85, 48, 39, 82, 46, 34, 82, 46, 32, 83, 45, 32, 83, 46, 30, 82, 45, 27, 82, 45, 27, 82, 45, 27, 82, 45, 27, 78, 41, 23, 74, 37, 21, 72, 36, 24, 74, 40, 30, 79, 44, 38, 83, 49, 47, 90, 58, 59, 98, 66, 69, 95, 64, 69, 95, 64, 69, 95, 64, 69, 97, 66, 71, 102, 72, 74, 108, 78, 78, 115, 84, 82, 119, 87, 88, 112, 79, 86, 114, 81, 88, 116, 83, 90, 118, 88, 90, 119, 87, 88, 114, 85, 81, 108, 77, 72, 103, 73, 63, 107, 77, 67, 112, 79, 70, 114, 81, 72, 117, 83, 74, 123, 86, 78, 125, 86, 79, 117, 78, 73, 108, 67, 63, 107, 66, 64, 115, 75, 73, 127, 87, 85, 130, 95, 89, 126, 96, 88, 126, 101, 94, 140, 121, 114, 153, 142, 136, 174, 170, 167, 196, 198, 197, 221, 226, 229, 231, 239, 242, 231, 240, 245, 229, 238, 243, 231, 238, 244, 230, 237, 243, 236, 239, 244, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 237, 240, 247, 237, 240, 247, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 228, 233, 239, 228, 233, 239, 228, 233, 239, 222, 230, 233, 222, 230, 233, 222, 230, 233, 222, 230, 233, 222, 227, 231, 220, 225, 229, 219, 224, 228, 218, 223, 227, 220, 223, 228, 216, 219, 224, 213, 214, 219, 208, 209, 214, 204, 203, 209, 196, 195, 201, 187, 186, 192, 182, 180, 183, 192, 187, 184, 195, 188, 182, 196, 189, 183, 193, 186, 180, 189, 182, 176, 183, 176, 170, 180, 170, 168, 177, 167, 165, 165, 155, 153, 160, 150, 148, 148, 138, 137, 129, 119, 118, 115, 103, 103, 113, 101, 101, 123, 111, 111, 133, 122, 120, 138, 127, 123, 134, 123, 119, 123, 112, 108, 113, 102, 98, 114, 103, 99, 119, 108, 104, 115, 104, 100, 105, 94, 90, 119, 105, 102, 122, 108, 105, 119, 105, 102, 104, 90, 87, 85, 71, 68, 74, 60, 57, 77, 62, 59, 84, 69, 66, 97, 79, 77, 110, 92, 90, 120, 102, 102, 120, 102, 102, 115, 97, 97, 108, 92, 92, 105, 89, 89, 101, 85, 85, 111, 95, 96, 118, 102, 103, 116, 100, 101, 107, 93, 93, 111, 97, 97, 126, 112, 112, 134, 119, 122, 131, 117, 117, 124, 109, 106, 132, 117, 112, 136, 118, 114, 125, 110, 105, 118, 103, 100, 127, 113, 110, 148, 137, 133, 166, 156, 154, 171, 163, 160, 173, 168, 165, 179, 174, 171, 183, 179, 176, 187, 183, 182, 188, 187, 185, 192, 191, 189, 194, 196, 195, 201, 206, 210, 200, 207, 213, 204, 211, 217, 208, 215, 221, 213, 220, 226, 217, 224, 230, 220, 227, 233, 222, 229, 235, 222, 229, 235, 222, 229, 235, 222, 229, 235, 223, 230, 236, 223, 230, 236, 224, 231, 237, 224, 231, 237, 224, 231, 237, 226, 231, 237, 227, 232, 238, 227, 232, 238, 227, 232, 238, 228, 233, 239, 228, 233, 239, 228, 233, 239, 229, 234, 240, 228, 233, 239, 228, 233, 239, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 236, 241, 245, 236, 241, 245, 235, 240, 244, 235, 240, 244, 234, 239, 243, 234, 239, 243, 234, 239, 243, 233, 238, 242, 233, 238, 242, 233, 238, 242, 236, 237, 242, 233, 236, 243, 229, 236, 244, 226, 237, 243, 219, 232, 238, 206, 220, 223, 191, 203, 203, 180, 189, 186, 166, 167, 161, 122, 119, 110, 97, 88, 79, 109, 99, 90, 116, 103, 97, 85, 71, 68, 56, 44, 44, 56, 46, 45, 42, 32, 30, 22, 14, 11, 17, 9, 6, 22, 14, 11, 16, 8, 6, 17, 9, 7, 39, 29, 28, 57, 47, 46, 72, 62, 61, 67, 57, 56, 43, 32, 30, 23, 12, 10, 29, 18, 14, 40, 29, 25, 40, 29, 23, 40, 29, 23, 28, 14, 11, 35, 21, 18, 44, 31, 25, 51, 38, 32, 58, 40, 36, 59, 41, 37, 61, 42, 36, 62, 43, 37, 51, 32, 26, 53, 34, 28, 58, 39, 35, 62, 43, 39, 58, 40, 36, 63, 45, 41, 84, 66, 64, 106, 91, 88, 118, 104, 101, 81, 70, 66, 73, 59, 56, 78, 64, 61, 68, 53, 50, 62, 47, 44, 64, 46, 44, 55, 37, 35, 64, 44, 43, 73, 53, 52, 86, 65, 64, 94, 73, 72, 98, 74, 74, 95, 71, 71, 92, 66, 67, 90, 64, 65, 96, 71, 74, 98, 73, 76, 98, 73, 76, 96, 71, 74, 93, 68, 71, 90, 65, 68, 90, 64, 67, 91, 65, 68, 88, 62, 65, 87, 61, 64, 86, 60, 63, 86, 60, 63, 89, 60, 64, 90, 61, 65, 91, 62, 66, 92, 63, 67, 91, 62, 64, 90, 61, 63, 90, 61, 63, 90, 61, 63, 91, 61, 61, 93, 63, 63, 94, 64, 62, 95, 65, 63, 91, 60, 57, 91, 60, 57, 94, 60, 58, 94, 60, 58, 96, 61, 57, 96, 61, 57, 96, 61, 57, 97, 62, 58, 96, 59, 53, 95, 58, 52, 92, 55, 49, 90, 53, 47, 88, 51, 43, 87, 50, 42, 87, 50, 41, 87, 50, 41, 85, 49, 37, 84, 48, 34, 84, 48, 34, 83, 47, 31, 82, 47, 28, 81, 46, 27, 80, 45, 26, 80, 45, 26, 81, 44, 28, 77, 40, 24, 75, 39, 27, 78, 44, 35, 84, 49, 45, 88, 54, 53, 95, 63, 66, 103, 71, 76, 99, 68, 73, 99, 68, 74, 100, 69, 75, 102, 71, 76, 105, 75, 77, 108, 78, 78, 112, 81, 79, 114, 82, 83, 112, 77, 84, 115, 80, 87, 118, 83, 90, 116, 84, 87, 115, 81, 80, 109, 78, 73, 108, 75, 68, 108, 75, 66, 104, 71, 62, 110, 76, 66, 113, 79, 69, 116, 79, 70, 120, 82, 73, 124, 84, 76, 120, 79, 73, 114, 73, 69, 110, 69, 67, 114, 74, 72, 123, 83, 81, 130, 95, 89, 135, 105, 97, 140, 115, 108, 147, 128, 121, 150, 139, 133, 174, 170, 167, 196, 198, 197, 220, 225, 228, 230, 238, 241, 230, 239, 244, 229, 238, 243, 231, 238, 244, 231, 238, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 244, 245, 250, 244, 245, 250, 244, 245, 250, 244, 245, 250, 244, 245, 250, 244, 245, 250, 244, 245, 250, 244, 245, 250, 244, 245, 250, 244, 245, 250, 244, 245, 250, 244, 245, 250, 244, 245, 250, 244, 245, 250, 244, 245, 250, 244, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 237, 240, 247, 237, 240, 247, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 228, 233, 239, 228, 233, 239, 228, 233, 239, 227, 232, 238, 227, 232, 236, 227, 232, 238, 227, 232, 236, 227, 232, 238, 225, 230, 234, 224, 229, 233, 223, 228, 232, 208, 213, 217, 208, 211, 216, 208, 209, 213, 206, 207, 211, 203, 202, 207, 197, 196, 201, 189, 187, 192, 185, 181, 182, 193, 188, 184, 189, 182, 176, 182, 175, 169, 176, 169, 163, 172, 165, 159, 167, 160, 154, 162, 152, 150, 157, 147, 145, 161, 151, 149, 140, 130, 128, 120, 110, 108, 115, 105, 103, 115, 103, 103, 108, 97, 95, 98, 86, 86, 91, 80, 78, 72, 61, 59, 77, 66, 62, 80, 69, 65, 83, 72, 68, 94, 83, 79, 104, 93, 89, 99, 88, 84, 86, 75, 71, 87, 73, 70, 79, 65, 62, 81, 67, 64, 97, 83, 80, 110, 96, 93, 104, 90, 87, 85, 70, 67, 70, 55, 52, 72, 57, 54, 82, 67, 64, 92, 74, 74, 96, 80, 80, 108, 90, 90, 115, 99, 99, 107, 91, 91, 91, 75, 75, 103, 87, 88, 118, 102, 103, 116, 100, 101, 94, 78, 79, 88, 74, 74, 109, 95, 95, 129, 115, 115, 133, 119, 119, 129, 114, 111, 121, 106, 101, 120, 102, 98, 121, 106, 101, 119, 104, 101, 117, 103, 100, 129, 118, 114, 149, 138, 134, 154, 144, 142, 158, 150, 147, 164, 156, 153, 168, 163, 159, 173, 168, 164, 177, 172, 168, 181, 177, 174, 183, 182, 180, 195, 196, 198, 195, 199, 202, 199, 203, 206, 205, 209, 212, 209, 214, 217, 215, 220, 224, 219, 224, 228, 221, 226, 230, 222, 229, 235, 222, 229, 235, 222, 229, 235, 223, 230, 238, 223, 230, 238, 222, 231, 238, 223, 232, 239, 224, 231, 239, 224, 231, 239, 226, 230, 239, 227, 231, 240, 227, 231, 240, 228, 232, 241, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 230, 235, 241, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 236, 241, 245, 236, 241, 245, 235, 240, 244, 234, 239, 243, 234, 239, 243, 234, 239, 243, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 235, 238, 245, 233, 238, 244, 229, 236, 244, 227, 236, 241, 220, 229, 234, 206, 216, 218, 188, 197, 196, 177, 182, 178, 155, 156, 150, 100, 97, 88, 77, 70, 62, 100, 89, 83, 106, 95, 89, 80, 69, 65, 59, 47, 47, 56, 44, 44, 44, 34, 33, 18, 10, 7, 10, 2, 0, 22, 14, 11, 17, 9, 7, 17, 7, 6, 49, 39, 38, 78, 68, 67, 73, 63, 62, 58, 48, 46, 29, 18, 16, 18, 7, 5, 39, 28, 24, 53, 42, 38, 39, 28, 22, 25, 12, 6, 40, 26, 23, 47, 32, 29, 54, 39, 34, 55, 40, 35, 54, 36, 32, 51, 33, 29, 53, 34, 30, 55, 36, 30, 43, 24, 20, 50, 32, 28, 64, 46, 42, 71, 53, 49, 68, 50, 46, 72, 57, 52, 101, 86, 83, 133, 118, 115, 77, 63, 60, 78, 64, 61, 77, 63, 60, 78, 63, 60, 78, 63, 60, 75, 60, 57, 70, 52, 50, 65, 47, 45, 75, 55, 54, 88, 68, 67, 100, 80, 79, 102, 81, 80, 95, 74, 73, 89, 68, 67, 92, 68, 68, 97, 73, 73, 95, 73, 75, 90, 68, 70, 83, 61, 63, 78, 56, 58, 76, 54, 56, 78, 56, 58, 83, 58, 61, 85, 60, 63, 90, 65, 68, 89, 64, 67, 88, 63, 66, 87, 62, 65, 88, 62, 65, 89, 63, 66, 90, 64, 67, 90, 64, 65, 94, 68, 69, 94, 65, 67, 91, 62, 64, 88, 60, 59, 85, 57, 56, 85, 55, 55, 84, 54, 52, 84, 54, 52, 89, 58, 55, 88, 57, 54, 89, 55, 53, 88, 54, 52, 86, 53, 48, 86, 51, 47, 85, 50, 46, 84, 49, 45, 86, 51, 45, 88, 51, 45, 86, 49, 43, 85, 48, 42, 85, 48, 40, 85, 48, 39, 85, 48, 39, 86, 50, 38, 86, 50, 38, 86, 50, 36, 85, 49, 35, 84, 48, 32, 82, 46, 30, 81, 46, 27, 80, 44, 28, 80, 44, 28, 84, 47, 31, 79, 41, 28, 79, 41, 32, 83, 46, 40, 86, 52, 50, 90, 58, 59, 97, 66, 71, 106, 75, 81, 101, 72, 77, 101, 72, 77, 102, 73, 78, 104, 73, 78, 105, 75, 77, 107, 75, 76, 107, 76, 74, 109, 75, 74, 113, 78, 82, 116, 81, 87, 118, 83, 87, 115, 81, 80, 110, 76, 74, 108, 75, 68, 111, 78, 69, 115, 83, 72, 101, 69, 58, 107, 73, 63, 109, 75, 65, 110, 73, 65, 113, 74, 67, 118, 79, 72, 121, 80, 76, 118, 77, 75, 109, 69, 69, 106, 66, 66, 105, 67, 64, 109, 76, 71, 120, 91, 85, 132, 107, 100, 140, 123, 116, 142, 131, 127, 174, 170, 167, 195, 197, 196, 220, 225, 228, 230, 238, 241, 229, 238, 243, 229, 238, 243, 231, 238, 244, 232, 239, 245, 234, 239, 243, 236, 239, 244, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 244, 245, 250, 244, 245, 250, 244, 245, 250, 244, 245, 250, 244, 245, 250, 244, 245, 250, 244, 245, 250, 244, 245, 250, 244, 245, 250, 244, 245, 250, 244, 245, 250, 244, 245, 250, 244, 245, 250, 244, 245, 250, 244, 245, 250, 244, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 235, 242, 248, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 234, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 227, 230, 237, 227, 230, 237, 226, 229, 238, 225, 230, 236, 223, 227, 236, 219, 226, 232, 217, 224, 230, 215, 223, 226, 218, 226, 229, 214, 219, 222, 206, 210, 211, 200, 202, 201, 195, 195, 195, 191, 190, 188, 188, 184, 183, 186, 181, 178, 183, 175, 172, 186, 179, 173, 183, 176, 170, 174, 167, 161, 169, 160, 155, 163, 154, 149, 146, 137, 132, 126, 117, 112, 130, 121, 116, 118, 109, 104, 109, 98, 94, 99, 88, 84, 78, 67, 65, 62, 51, 47, 74, 63, 61, 99, 88, 86, 74, 63, 61, 65, 54, 52, 60, 49, 47, 65, 54, 52, 75, 61, 60, 81, 67, 66, 85, 71, 68, 89, 75, 72, 90, 76, 73, 75, 61, 58, 67, 52, 49, 79, 64, 61, 103, 88, 83, 116, 101, 96, 106, 91, 86, 91, 76, 73, 68, 53, 50, 63, 49, 48, 61, 45, 45, 72, 58, 57, 87, 71, 71, 79, 65, 64, 71, 57, 56, 78, 64, 63, 61, 47, 46, 64, 50, 49, 65, 51, 50, 63, 49, 48, 64, 50, 49, 77, 63, 62, 100, 86, 85, 119, 105, 104, 115, 101, 98, 131, 117, 114, 141, 126, 123, 131, 117, 114, 119, 105, 102, 117, 106, 102, 125, 114, 110, 131, 120, 116, 142, 133, 128, 149, 140, 135, 153, 144, 139, 144, 137, 131, 135, 128, 122, 140, 133, 127, 160, 152, 149, 178, 173, 169, 175, 170, 166, 189, 186, 181, 195, 194, 190, 195, 194, 190, 200, 200, 198, 203, 205, 204, 206, 207, 209, 211, 215, 218, 219, 224, 228, 218, 225, 231, 220, 227, 235, 221, 230, 239, 222, 230, 241, 221, 231, 241, 221, 231, 243, 221, 231, 241, 221, 227, 239, 222, 229, 239, 224, 231, 241, 225, 232, 242, 226, 233, 243, 226, 233, 241, 226, 233, 241, 225, 232, 240, 227, 234, 240, 227, 234, 240, 227, 235, 238, 228, 236, 239, 228, 236, 239, 228, 236, 239, 229, 237, 240, 229, 237, 240, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 243, 247, 238, 243, 247, 236, 244, 247, 236, 244, 247, 236, 244, 247, 236, 244, 247, 236, 244, 247, 236, 244, 247, 236, 244, 247, 235, 243, 246, 235, 243, 246, 235, 243, 246, 235, 243, 246, 235, 243, 246, 235, 243, 246, 235, 243, 246, 237, 242, 246, 237, 242, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 234, 239, 245, 233, 238, 244, 232, 237, 243, 232, 237, 243, 229, 236, 246, 233, 240, 250, 227, 234, 242, 233, 238, 242, 236, 240, 243, 203, 205, 204, 172, 172, 170, 179, 178, 174, 159, 156, 151, 82, 77, 73, 28, 23, 19, 78, 70, 67, 103, 93, 91, 67, 56, 54, 65, 54, 52, 77, 66, 64, 58, 48, 47, 31, 21, 20, 14, 4, 3, 13, 3, 2, 18, 8, 6, 31, 20, 18, 40, 29, 27, 37, 26, 24, 66, 55, 53, 40, 29, 27, 32, 18, 17, 46, 32, 29, 53, 39, 36, 40, 26, 23, 33, 19, 16, 38, 24, 21, 57, 39, 37, 46, 28, 26, 42, 24, 22, 49, 31, 29, 51, 33, 31, 45, 27, 25, 41, 23, 21, 44, 26, 22, 61, 43, 41, 70, 55, 52, 70, 55, 52, 85, 71, 68, 67, 53, 50, 79, 65, 62, 124, 110, 107, 83, 69, 66, 69, 54, 51, 83, 68, 65, 95, 80, 77, 96, 78, 76, 82, 64, 62, 71, 53, 51, 69, 51, 49, 73, 55, 53, 92, 74, 72, 89, 71, 69, 84, 66, 64, 82, 62, 61, 81, 61, 60, 84, 64, 63, 87, 67, 66, 90, 70, 69, 89, 71, 71, 89, 73, 74, 94, 78, 79, 99, 83, 84, 104, 88, 89, 109, 93, 94, 115, 97, 97, 116, 98, 98, 111, 93, 93, 111, 93, 93, 115, 95, 96, 123, 103, 104, 130, 110, 109, 130, 110, 109, 123, 103, 102, 117, 96, 95, 124, 100, 100, 119, 93, 92, 109, 83, 82, 99, 74, 70, 91, 66, 62, 88, 60, 57, 87, 59, 56, 86, 58, 55, 81, 52, 48, 80, 51, 47, 80, 49, 46, 82, 51, 48, 85, 54, 51, 89, 55, 53, 89, 56, 51, 87, 54, 49, 90, 57, 52, 90, 55, 51, 87, 52, 46, 84, 49, 43, 84, 47, 39, 84, 47, 38, 85, 47, 38, 86, 48, 37, 83, 45, 34, 84, 46, 33, 84, 46, 33, 85, 47, 34, 86, 48, 35, 87, 50, 34, 86, 50, 36, 87, 50, 34, 82, 43, 28, 84, 42, 30, 82, 44, 35, 85, 47, 44, 89, 55, 56, 95, 64, 70, 101, 74, 81, 106, 80, 89, 103, 77, 86, 103, 78, 84, 105, 78, 83, 106, 77, 81, 105, 75, 75, 103, 72, 70, 103, 69, 67, 102, 67, 65, 110, 75, 73, 110, 75, 73, 110, 75, 71, 110, 75, 69, 109, 76, 67, 109, 77, 66, 107, 77, 66, 107, 77, 66, 104, 74, 63, 112, 80, 69, 120, 87, 78, 127, 92, 86, 127, 92, 88, 124, 86, 83, 117, 77, 77, 111, 72, 73, 106, 71, 69, 104, 69, 67, 101, 67, 65, 106, 75, 72, 114, 86, 82, 114, 90, 86, 129, 111, 107, 156, 147, 142, 167, 163, 160, 186, 188, 185, 213, 219, 219, 229, 237, 239, 230, 240, 242, 226, 237, 241, 228, 237, 244, 232, 239, 245, 234, 239, 243, 235, 240, 244, 235, 240, 244, 236, 241, 245, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 238, 242, 251, 238, 242, 251, 237, 241, 250, 237, 241, 250, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 228, 231, 240, 228, 231, 240, 228, 231, 240, 226, 230, 239, 223, 230, 238, 220, 227, 235, 218, 225, 231, 217, 225, 228, 219, 227, 230, 215, 221, 221, 206, 210, 211, 200, 202, 199, 196, 195, 193, 190, 189, 185, 187, 182, 178, 183, 178, 174, 188, 181, 175, 184, 177, 171, 175, 168, 162, 169, 162, 156, 172, 163, 158, 168, 159, 154, 145, 136, 131, 120, 111, 106, 123, 114, 109, 115, 106, 101, 112, 101, 97, 109, 98, 94, 98, 87, 83, 82, 71, 67, 76, 65, 61, 80, 69, 65, 84, 73, 71, 81, 70, 68, 81, 70, 68, 84, 73, 71, 89, 75, 74, 90, 76, 75, 92, 78, 75, 95, 81, 78, 95, 81, 78, 89, 75, 72, 89, 74, 71, 99, 84, 81, 115, 100, 95, 125, 110, 105, 124, 109, 104, 118, 103, 98, 121, 105, 105, 118, 104, 103, 102, 88, 87, 87, 73, 72, 80, 66, 65, 73, 59, 58, 77, 63, 62, 94, 80, 79, 71, 57, 56, 72, 58, 57, 69, 55, 54, 65, 51, 50, 63, 49, 48, 71, 57, 56, 88, 74, 73, 101, 87, 86, 97, 83, 80, 103, 89, 86, 115, 101, 98, 120, 106, 103, 109, 98, 94, 94, 83, 79, 92, 81, 77, 99, 88, 84, 127, 118, 113, 129, 120, 115, 131, 122, 117, 131, 122, 117, 130, 121, 116, 130, 121, 116, 130, 121, 116, 131, 122, 117, 151, 142, 135, 166, 159, 151, 185, 178, 172, 189, 184, 178, 184, 181, 176, 187, 186, 182, 198, 198, 198, 205, 206, 208, 210, 214, 217, 210, 215, 219, 211, 218, 226, 213, 222, 229, 216, 224, 235, 217, 227, 237, 220, 230, 242, 221, 231, 241, 221, 227, 239, 222, 228, 240, 223, 229, 241, 224, 231, 241, 225, 232, 242, 225, 232, 242, 225, 232, 240, 224, 231, 239, 226, 233, 239, 227, 234, 240, 227, 234, 240, 227, 235, 238, 228, 236, 239, 228, 236, 239, 228, 236, 239, 229, 237, 240, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 243, 247, 236, 244, 247, 236, 244, 247, 236, 244, 247, 236, 244, 247, 236, 244, 247, 236, 244, 247, 236, 244, 247, 236, 244, 247, 236, 244, 247, 236, 244, 247, 236, 244, 247, 236, 244, 247, 236, 244, 247, 236, 244, 247, 238, 243, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 234, 239, 245, 233, 238, 244, 233, 238, 244, 232, 237, 243, 230, 237, 245, 229, 237, 248, 229, 237, 248, 226, 233, 241, 230, 233, 238, 228, 228, 230, 201, 200, 198, 173, 168, 165, 164, 159, 155, 134, 129, 126, 77, 72, 69, 35, 30, 27, 72, 67, 64, 94, 84, 82, 66, 56, 54, 70, 56, 55, 76, 65, 63, 54, 42, 42, 28, 18, 17, 16, 6, 5, 17, 7, 6, 15, 4, 2, 19, 8, 6, 30, 19, 17, 35, 24, 22, 38, 27, 25, 45, 34, 32, 55, 41, 38, 53, 39, 36, 36, 22, 19, 25, 11, 8, 38, 24, 21, 60, 45, 42, 70, 52, 50, 55, 35, 34, 45, 25, 24, 47, 27, 26, 48, 30, 28, 47, 29, 27, 51, 33, 31, 58, 40, 38, 63, 48, 45, 50, 35, 32, 69, 55, 52, 58, 44, 41, 88, 77, 73, 140, 129, 125, 103, 92, 88, 70, 56, 53, 73, 58, 55, 75, 57, 55, 73, 55, 53, 67, 49, 47, 62, 44, 42, 63, 45, 43, 70, 52, 50, 77, 59, 57, 75, 57, 55, 74, 56, 54, 74, 56, 54, 77, 59, 57, 82, 64, 62, 89, 71, 69, 96, 78, 76, 100, 82, 80, 109, 93, 94, 107, 91, 92, 103, 87, 88, 99, 83, 84, 95, 79, 80, 93, 77, 78, 91, 75, 75, 93, 75, 75, 96, 78, 78, 100, 82, 82, 105, 87, 87, 107, 89, 89, 106, 86, 85, 102, 82, 81, 98, 78, 77, 96, 76, 75, 107, 83, 81, 105, 81, 79, 104, 79, 75, 103, 78, 74, 104, 79, 75, 107, 82, 78, 112, 84, 81, 115, 87, 84, 104, 75, 71, 101, 72, 68, 97, 66, 63, 93, 62, 59, 90, 59, 56, 86, 55, 52, 83, 50, 45, 79, 46, 41, 76, 43, 38, 78, 45, 40, 81, 46, 40, 84, 50, 41, 87, 50, 42, 87, 50, 41, 87, 49, 38, 87, 49, 38, 84, 44, 32, 84, 44, 32, 83, 45, 32, 84, 46, 33, 85, 47, 34, 86, 48, 35, 85, 49, 35, 87, 49, 36, 86, 44, 30, 86, 44, 32, 85, 44, 38, 87, 49, 48, 89, 57, 60, 96, 66, 74, 102, 76, 85, 105, 82, 92, 109, 86, 94, 107, 84, 90, 107, 80, 85, 106, 77, 79, 103, 73, 73, 103, 69, 67, 101, 66, 62, 100, 65, 61, 109, 72, 66, 109, 72, 66, 108, 74, 65, 110, 76, 66, 111, 79, 68, 114, 82, 69, 115, 86, 72, 116, 87, 73, 119, 89, 78, 121, 91, 80, 125, 92, 85, 126, 93, 86, 126, 91, 89, 122, 87, 85, 120, 81, 84, 116, 80, 80, 105, 69, 69, 112, 78, 76, 115, 84, 81, 119, 90, 86, 118, 90, 87, 109, 88, 85, 122, 104, 102, 149, 139, 137, 167, 163, 160, 186, 188, 185, 212, 218, 218, 228, 236, 238, 230, 240, 242, 226, 237, 241, 228, 237, 244, 231, 240, 247, 234, 239, 245, 234, 239, 243, 235, 240, 244, 236, 241, 245, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 238, 242, 251, 238, 242, 251, 237, 241, 250, 237, 241, 250, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 233, 242, 230, 233, 242, 230, 233, 242, 228, 232, 241, 224, 231, 239, 222, 229, 237, 220, 227, 233, 218, 226, 229, 217, 222, 226, 211, 217, 217, 203, 207, 208, 197, 199, 196, 192, 191, 189, 186, 185, 181, 182, 177, 173, 178, 173, 169, 184, 176, 173, 179, 171, 168, 169, 161, 158, 161, 153, 150, 157, 147, 145, 149, 139, 137, 131, 121, 119, 112, 102, 100, 90, 79, 77, 87, 76, 74, 87, 76, 74, 93, 82, 80, 98, 87, 85, 94, 83, 81, 80, 69, 67, 68, 57, 55, 73, 59, 58, 77, 63, 62, 82, 68, 67, 86, 72, 71, 88, 74, 73, 89, 75, 74, 92, 77, 74, 94, 79, 76, 82, 67, 64, 85, 70, 67, 92, 74, 72, 97, 79, 77, 101, 83, 79, 106, 88, 84, 111, 93, 89, 112, 97, 92, 128, 112, 112, 137, 121, 121, 130, 114, 114, 113, 97, 97, 101, 85, 85, 88, 72, 72, 77, 61, 61, 78, 62, 62, 92, 76, 76, 93, 77, 77, 92, 76, 76, 88, 72, 72, 85, 69, 69, 85, 69, 69, 88, 72, 72, 91, 75, 75, 87, 73, 70, 89, 75, 72, 108, 94, 91, 134, 120, 117, 137, 123, 120, 120, 106, 103, 111, 100, 96, 119, 108, 104, 123, 112, 108, 125, 114, 110, 129, 118, 114, 135, 124, 120, 139, 130, 125, 143, 134, 129, 145, 136, 131, 145, 136, 131, 144, 135, 128, 149, 140, 131, 172, 163, 156, 183, 176, 170, 176, 168, 165, 183, 178, 175, 199, 195, 192, 196, 195, 193, 200, 200, 200, 202, 203, 205, 203, 206, 211, 206, 211, 215, 209, 213, 222, 212, 219, 227, 218, 225, 233, 223, 230, 238, 220, 227, 237, 223, 227, 238, 225, 229, 240, 226, 230, 241, 225, 232, 242, 224, 231, 239, 224, 231, 239, 223, 230, 238, 226, 233, 241, 226, 233, 239, 226, 233, 239, 227, 234, 240, 227, 234, 240, 228, 235, 241, 228, 235, 241, 228, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 233, 238, 244, 232, 237, 243, 232, 237, 243, 229, 236, 244, 230, 239, 248, 224, 233, 242, 225, 232, 240, 225, 228, 233, 213, 213, 213, 196, 195, 193, 171, 166, 163, 140, 135, 131, 110, 105, 102, 72, 67, 64, 49, 44, 41, 79, 74, 71, 96, 86, 85, 75, 65, 63, 76, 62, 61, 79, 68, 66, 45, 33, 33, 19, 9, 8, 14, 4, 3, 23, 13, 12, 19, 8, 6, 15, 4, 2, 29, 18, 16, 43, 32, 30, 48, 37, 35, 55, 44, 42, 55, 41, 38, 41, 27, 24, 34, 20, 17, 45, 31, 28, 60, 46, 43, 69, 54, 51, 65, 47, 45, 52, 32, 31, 43, 23, 22, 46, 26, 25, 50, 32, 30, 49, 31, 29, 51, 36, 33, 59, 44, 41, 53, 38, 35, 55, 40, 37, 78, 64, 61, 78, 64, 61, 116, 102, 99, 139, 125, 122, 80, 69, 65, 69, 55, 52, 66, 48, 46, 61, 41, 40, 54, 34, 33, 52, 32, 31, 58, 38, 37, 69, 49, 48, 80, 60, 59, 87, 67, 66, 89, 69, 68, 90, 70, 69, 91, 71, 70, 94, 74, 73, 99, 79, 78, 106, 86, 85, 112, 92, 91, 114, 96, 94, 104, 85, 87, 102, 83, 85, 98, 79, 81, 94, 75, 77, 92, 73, 75, 93, 74, 76, 94, 76, 76, 97, 77, 78, 94, 74, 75, 100, 80, 81, 105, 85, 86, 102, 82, 83, 93, 72, 71, 86, 65, 64, 84, 63, 62, 87, 63, 63, 78, 54, 52, 79, 54, 50, 79, 54, 50, 80, 55, 51, 84, 56, 53, 86, 58, 55, 89, 59, 57, 91, 61, 59, 101, 70, 67, 98, 67, 64, 95, 64, 61, 93, 62, 59, 95, 62, 57, 94, 61, 56, 91, 58, 53, 88, 55, 50, 78, 45, 38, 78, 45, 38, 79, 44, 38, 80, 46, 37, 83, 46, 38, 84, 47, 38, 86, 48, 37, 87, 49, 38, 83, 43, 31, 83, 43, 31, 82, 44, 31, 82, 44, 31, 83, 45, 32, 84, 46, 33, 84, 48, 36, 86, 48, 35, 87, 48, 33, 88, 48, 36, 88, 49, 42, 89, 54, 52, 93, 61, 64, 99, 69, 77, 105, 78, 87, 109, 83, 94, 111, 88, 96, 108, 85, 91, 106, 80, 83, 104, 76, 75, 102, 72, 70, 104, 70, 68, 106, 71, 67, 108, 70, 67, 115, 78, 72, 114, 77, 71, 112, 78, 69, 112, 78, 68, 113, 81, 70, 117, 85, 72, 121, 89, 76, 123, 91, 78, 131, 99, 88, 129, 97, 86, 125, 92, 85, 122, 89, 82, 120, 85, 83, 120, 85, 83, 122, 83, 86, 120, 84, 84, 109, 73, 73, 124, 90, 88, 134, 103, 101, 135, 105, 103, 127, 99, 98, 110, 89, 86, 119, 101, 99, 142, 132, 130, 168, 164, 161, 186, 188, 185, 211, 217, 217, 226, 234, 236, 229, 239, 241, 228, 237, 242, 228, 237, 244, 231, 240, 247, 234, 239, 245, 234, 239, 243, 235, 240, 244, 235, 240, 244, 236, 241, 245, 237, 242, 246, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 238, 242, 251, 238, 242, 251, 237, 241, 250, 237, 241, 250, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 232, 241, 229, 232, 241, 228, 232, 241, 227, 231, 240, 223, 230, 238, 221, 228, 236, 219, 226, 232, 218, 226, 229, 211, 216, 220, 207, 211, 212, 201, 202, 204, 195, 195, 193, 189, 188, 186, 184, 180, 177, 178, 173, 169, 174, 169, 165, 167, 159, 156, 169, 161, 158, 165, 157, 154, 151, 143, 140, 134, 124, 122, 124, 114, 112, 122, 112, 110, 123, 113, 111, 115, 104, 102, 111, 100, 98, 103, 92, 90, 99, 88, 86, 102, 91, 89, 102, 91, 89, 90, 79, 77, 74, 63, 61, 68, 54, 53, 70, 56, 55, 72, 58, 57, 74, 60, 59, 78, 64, 63, 83, 67, 67, 82, 67, 64, 79, 64, 61, 77, 62, 59, 81, 66, 63, 87, 69, 67, 87, 69, 67, 84, 66, 62, 84, 66, 62, 88, 70, 66, 92, 74, 70, 98, 80, 78, 112, 96, 96, 116, 100, 100, 113, 97, 97, 118, 102, 102, 109, 93, 93, 82, 66, 66, 62, 46, 46, 80, 64, 64, 83, 67, 67, 88, 72, 72, 93, 77, 77, 96, 80, 80, 96, 80, 80, 94, 78, 78, 92, 76, 76, 97, 82, 79, 87, 73, 70, 87, 73, 70, 99, 85, 82, 103, 89, 86, 96, 82, 79, 95, 81, 78, 99, 88, 84, 112, 101, 97, 117, 106, 102, 122, 111, 107, 122, 111, 107, 121, 112, 107, 128, 119, 114, 142, 133, 128, 155, 144, 138, 150, 139, 133, 137, 127, 118, 153, 142, 136, 169, 160, 153, 165, 156, 151, 177, 169, 166, 191, 186, 182, 183, 179, 176, 191, 190, 188, 194, 194, 194, 197, 198, 200, 198, 202, 203, 201, 205, 208, 205, 210, 214, 214, 219, 223, 220, 225, 229, 221, 225, 234, 222, 226, 235, 224, 228, 237, 225, 229, 238, 224, 231, 239, 225, 232, 240, 224, 231, 239, 224, 231, 239, 225, 232, 240, 225, 232, 240, 226, 233, 241, 226, 233, 239, 226, 233, 241, 227, 234, 242, 227, 234, 242, 227, 234, 242, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 233, 238, 244, 232, 237, 243, 231, 236, 242, 231, 236, 242, 228, 235, 243, 230, 239, 248, 222, 231, 240, 227, 231, 240, 220, 223, 228, 202, 202, 202, 195, 191, 188, 169, 164, 161, 121, 116, 112, 95, 90, 87, 61, 56, 53, 53, 48, 45, 88, 83, 80, 105, 95, 94, 79, 69, 68, 68, 54, 53, 71, 60, 58, 42, 30, 30, 13, 3, 2, 12, 2, 1, 32, 22, 21, 34, 23, 21, 29, 18, 16, 40, 29, 27, 56, 45, 43, 69, 58, 56, 66, 55, 53, 48, 34, 31, 27, 13, 10, 37, 23, 20, 68, 54, 51, 80, 66, 63, 72, 57, 54, 43, 25, 23, 37, 17, 16, 40, 20, 19, 53, 33, 32, 59, 41, 39, 54, 36, 34, 47, 32, 29, 48, 33, 30, 53, 38, 35, 79, 64, 61, 78, 64, 61, 125, 111, 108, 130, 116, 113, 76, 62, 59, 67, 56, 52, 60, 46, 43, 50, 32, 30, 54, 34, 33, 61, 40, 39, 68, 48, 47, 78, 57, 56, 86, 66, 65, 93, 72, 71, 94, 74, 73, 107, 86, 85, 105, 85, 84, 104, 83, 82, 101, 81, 80, 101, 80, 79, 99, 79, 78, 100, 79, 78, 99, 79, 78, 85, 65, 67, 84, 64, 66, 84, 64, 66, 86, 66, 68, 93, 71, 74, 101, 79, 82, 109, 87, 89, 114, 92, 94, 107, 85, 87, 110, 88, 90, 113, 88, 91, 109, 84, 87, 102, 78, 78, 96, 72, 72, 94, 70, 70, 95, 69, 68, 91, 65, 64, 91, 66, 62, 90, 65, 61, 88, 63, 59, 88, 60, 57, 85, 57, 54, 84, 54, 52, 83, 53, 51, 89, 58, 55, 88, 57, 54, 89, 58, 55, 93, 62, 59, 100, 67, 62, 104, 71, 66, 105, 72, 67, 104, 71, 66, 96, 63, 56, 92, 59, 52, 87, 52, 46, 81, 47, 38, 80, 43, 34, 80, 43, 34, 83, 45, 34, 84, 46, 35, 83, 43, 31, 83, 43, 31, 81, 43, 30, 80, 42, 29, 81, 43, 30, 83, 45, 32, 84, 48, 36, 87, 49, 38, 91, 51, 39, 92, 52, 42, 93, 54, 47, 94, 59, 57, 97, 65, 70, 103, 73, 81, 108, 81, 90, 111, 85, 96, 109, 83, 92, 105, 80, 86, 102, 76, 79, 101, 73, 72, 103, 72, 70, 108, 74, 72, 114, 79, 75, 120, 82, 79, 123, 86, 80, 121, 84, 78, 116, 82, 73, 114, 80, 70, 112, 80, 69, 113, 81, 68, 115, 83, 70, 117, 85, 72, 126, 94, 83, 123, 91, 80, 120, 87, 80, 116, 83, 76, 116, 81, 79, 116, 81, 79, 120, 81, 84, 119, 83, 85, 119, 85, 84, 136, 102, 100, 143, 112, 110, 142, 112, 110, 135, 107, 106, 119, 98, 95, 125, 107, 105, 142, 132, 130, 170, 166, 163, 186, 188, 187, 209, 215, 215, 224, 232, 235, 229, 238, 243, 228, 237, 244, 229, 238, 247, 231, 238, 246, 233, 238, 244, 234, 239, 243, 234, 239, 243, 235, 240, 244, 236, 241, 245, 237, 242, 246, 237, 242, 246, 238, 243, 247, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 238, 242, 251, 238, 242, 251, 237, 241, 250, 237, 241, 250, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 227, 230, 239, 227, 230, 239, 226, 230, 239, 225, 229, 238, 221, 228, 236, 219, 226, 234, 217, 224, 230, 216, 224, 227, 210, 215, 219, 206, 210, 211, 201, 202, 204, 195, 195, 193, 190, 189, 187, 185, 181, 178, 178, 173, 169, 175, 167, 164, 140, 130, 128, 138, 128, 126, 130, 120, 118, 114, 104, 102, 96, 86, 84, 86, 76, 74, 90, 80, 78, 100, 90, 88, 110, 99, 97, 108, 97, 95, 102, 91, 89, 96, 85, 83, 98, 84, 83, 101, 87, 86, 97, 83, 82, 89, 75, 74, 87, 71, 71, 84, 68, 68, 78, 62, 62, 75, 59, 59, 81, 65, 65, 90, 72, 72, 87, 69, 67, 77, 59, 57, 92, 74, 72, 93, 75, 73, 94, 74, 73, 95, 75, 74, 95, 76, 72, 95, 76, 72, 96, 77, 73, 96, 78, 74, 95, 77, 75, 107, 89, 87, 105, 87, 85, 102, 84, 82, 113, 95, 93, 116, 98, 96, 102, 84, 82, 91, 73, 71, 81, 63, 61, 82, 64, 62, 84, 66, 64, 89, 71, 69, 96, 78, 76, 104, 86, 84, 112, 94, 92, 114, 99, 96, 97, 82, 79, 88, 73, 70, 75, 60, 57, 68, 53, 50, 70, 55, 52, 75, 61, 58, 75, 61, 58, 72, 58, 55, 99, 85, 82, 106, 92, 89, 111, 100, 96, 115, 104, 100, 116, 105, 101, 119, 108, 104, 124, 113, 109, 129, 118, 112, 130, 117, 111, 119, 106, 98, 131, 118, 112, 142, 131, 125, 139, 128, 122, 149, 140, 135, 169, 160, 155, 172, 164, 161, 183, 178, 174, 187, 183, 180, 192, 191, 189, 194, 194, 192, 195, 195, 193, 198, 200, 199, 206, 208, 207, 211, 215, 216, 216, 221, 225, 218, 223, 229, 220, 225, 231, 223, 228, 234, 225, 230, 236, 226, 231, 237, 226, 231, 237, 226, 231, 237, 224, 231, 239, 224, 231, 239, 225, 232, 240, 225, 232, 240, 226, 233, 243, 226, 233, 243, 226, 233, 243, 226, 233, 243, 230, 234, 243, 230, 235, 241, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 233, 238, 244, 233, 238, 244, 232, 237, 243, 231, 236, 242, 231, 236, 242, 230, 235, 241, 228, 235, 243, 228, 237, 246, 222, 231, 238, 227, 232, 238, 218, 219, 223, 197, 195, 196, 189, 185, 182, 161, 156, 153, 110, 105, 101, 92, 87, 83, 49, 44, 40, 49, 44, 41, 93, 88, 85, 110, 100, 99, 75, 65, 64, 51, 37, 36, 60, 49, 47, 52, 40, 40, 20, 10, 9, 18, 8, 7, 43, 33, 32, 52, 41, 39, 47, 36, 34, 51, 40, 38, 58, 47, 45, 55, 44, 42, 58, 47, 45, 48, 34, 31, 30, 16, 13, 37, 23, 20, 63, 49, 46, 73, 59, 56, 64, 49, 46, 37, 19, 17, 34, 16, 14, 43, 25, 23, 61, 43, 41, 69, 51, 49, 62, 44, 42, 51, 36, 33, 50, 35, 32, 65, 50, 47, 80, 65, 62, 89, 75, 72, 130, 116, 113, 106, 92, 89, 51, 37, 34, 57, 43, 40, 43, 28, 25, 52, 32, 31, 65, 44, 43, 83, 59, 59, 90, 69, 68, 94, 70, 70, 91, 70, 69, 93, 69, 69, 92, 71, 70, 90, 66, 66, 87, 66, 65, 88, 64, 64, 83, 62, 61, 82, 58, 58, 77, 56, 55, 75, 51, 51, 72, 51, 50, 88, 66, 69, 86, 64, 67, 84, 62, 65, 84, 62, 65, 89, 64, 67, 95, 70, 73, 102, 77, 80, 106, 81, 84, 111, 86, 89, 108, 83, 86, 105, 79, 80, 105, 79, 80, 106, 80, 81, 106, 80, 81, 102, 76, 77, 100, 72, 71, 105, 77, 76, 104, 76, 73, 104, 76, 73, 102, 74, 71, 102, 72, 70, 100, 70, 68, 100, 69, 66, 99, 68, 65, 96, 62, 60, 95, 61, 59, 95, 61, 59, 97, 63, 61, 102, 67, 63, 105, 70, 66, 105, 70, 66, 104, 69, 65, 103, 70, 63, 101, 68, 61, 98, 64, 55, 93, 59, 50, 90, 53, 44, 85, 48, 39, 82, 44, 33, 80, 42, 31, 85, 45, 33, 84, 44, 32, 81, 43, 32, 80, 42, 31, 81, 43, 32, 84, 46, 35, 85, 48, 39, 88, 50, 39, 94, 54, 44, 95, 55, 47, 97, 58, 53, 98, 62, 62, 102, 70, 75, 106, 76, 84, 110, 83, 92, 112, 86, 97, 110, 84, 93, 106, 81, 85, 102, 76, 79, 100, 72, 71, 102, 71, 69, 108, 74, 72, 115, 80, 76, 121, 83, 80, 115, 80, 74, 113, 78, 72, 111, 77, 68, 108, 74, 64, 107, 73, 63, 108, 74, 62, 109, 75, 63, 110, 76, 64, 115, 81, 71, 116, 82, 72, 116, 81, 75, 117, 82, 76, 118, 83, 81, 119, 84, 82, 120, 84, 86, 121, 85, 87, 133, 99, 98, 141, 110, 108, 142, 111, 109, 139, 109, 107, 138, 110, 109, 131, 110, 107, 136, 118, 116, 149, 139, 137, 172, 168, 165, 187, 187, 187, 207, 213, 213, 222, 230, 233, 228, 237, 242, 229, 238, 245, 230, 237, 247, 231, 238, 248, 233, 238, 244, 233, 238, 242, 234, 239, 243, 235, 240, 244, 235, 240, 244, 236, 241, 245, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 238, 242, 251, 238, 242, 251, 237, 241, 250, 237, 241, 250, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 226, 229, 238, 226, 229, 238, 225, 229, 238, 224, 228, 237, 221, 228, 236, 218, 225, 233, 216, 223, 229, 215, 223, 226, 213, 218, 222, 209, 213, 214, 204, 205, 207, 198, 197, 195, 192, 188, 187, 183, 178, 175, 175, 167, 164, 169, 161, 158, 153, 143, 141, 136, 126, 124, 115, 105, 103, 100, 90, 88, 87, 77, 75, 73, 63, 61, 65, 55, 53, 64, 54, 52, 62, 51, 49, 63, 52, 50, 67, 56, 54, 71, 60, 58, 77, 63, 62, 79, 65, 64, 81, 67, 66, 82, 68, 67, 85, 69, 69, 87, 71, 71, 83, 67, 67, 79, 63, 63, 88, 70, 70, 101, 83, 83, 100, 82, 80, 91, 73, 71, 88, 70, 68, 88, 68, 67, 89, 69, 68, 92, 72, 71, 96, 77, 73, 100, 81, 77, 100, 81, 77, 100, 81, 77, 104, 84, 83, 118, 100, 98, 120, 100, 99, 113, 95, 93, 114, 94, 93, 110, 92, 90, 109, 89, 88, 114, 96, 94, 103, 83, 82, 95, 77, 75, 86, 66, 65, 75, 57, 55, 73, 53, 52, 79, 61, 59, 93, 73, 72, 102, 84, 82, 114, 96, 94, 119, 104, 101, 121, 106, 103, 117, 102, 99, 113, 98, 95, 101, 86, 83, 75, 60, 57, 48, 34, 31, 71, 57, 54, 75, 61, 58, 89, 75, 72, 110, 99, 95, 133, 122, 118, 142, 131, 127, 133, 122, 118, 124, 111, 105, 105, 90, 85, 108, 93, 88, 116, 103, 97, 124, 111, 105, 122, 109, 103, 122, 111, 105, 141, 130, 126, 163, 154, 149, 166, 158, 155, 173, 168, 164, 182, 179, 174, 184, 183, 178, 185, 184, 180, 186, 187, 182, 194, 195, 190, 200, 202, 199, 208, 212, 213, 209, 214, 217, 213, 217, 220, 216, 221, 224, 220, 225, 229, 222, 227, 231, 224, 229, 235, 224, 229, 235, 226, 230, 239, 224, 231, 239, 224, 231, 241, 224, 231, 241, 225, 232, 242, 225, 232, 242, 225, 231, 243, 226, 233, 243, 229, 233, 242, 229, 234, 240, 230, 235, 241, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 232, 237, 243, 231, 236, 242, 231, 236, 242, 230, 235, 241, 229, 234, 240, 229, 234, 240, 225, 232, 240, 225, 232, 240, 225, 228, 235, 212, 213, 217, 192, 190, 191, 175, 171, 168, 140, 135, 131, 98, 93, 89, 103, 98, 94, 55, 50, 46, 58, 53, 50, 97, 92, 89, 110, 102, 100, 76, 66, 65, 48, 37, 35, 66, 55, 53, 62, 52, 51, 34, 24, 23, 31, 21, 20, 51, 41, 40, 60, 49, 47, 55, 44, 42, 51, 40, 38, 49, 38, 36, 37, 26, 24, 32, 21, 19, 27, 13, 10, 31, 17, 14, 50, 36, 33, 64, 50, 47, 54, 40, 37, 34, 20, 17, 54, 36, 34, 48, 30, 28, 51, 33, 31, 65, 47, 45, 72, 54, 52, 67, 49, 47, 60, 45, 42, 61, 46, 43, 60, 45, 42, 75, 60, 57, 129, 115, 112, 100, 86, 83, 54, 40, 37, 58, 44, 41, 46, 32, 29, 58, 43, 40, 75, 54, 53, 85, 61, 61, 93, 69, 69, 94, 70, 70, 87, 63, 63, 80, 56, 56, 78, 54, 54, 79, 55, 55, 69, 45, 45, 71, 47, 47, 74, 50, 50, 77, 53, 53, 79, 55, 55, 79, 55, 55, 77, 53, 53, 76, 52, 52, 92, 67, 71, 89, 64, 68, 86, 61, 65, 83, 58, 62, 83, 58, 61, 84, 59, 62, 87, 61, 64, 89, 63, 66, 94, 68, 71, 88, 62, 65, 84, 58, 59, 86, 60, 61, 95, 66, 68, 99, 70, 72, 97, 68, 70, 93, 65, 64, 91, 63, 60, 90, 62, 59, 87, 59, 56, 85, 57, 54, 84, 54, 52, 83, 53, 51, 84, 53, 50, 84, 53, 50, 89, 55, 53, 87, 53, 51, 87, 53, 51, 89, 55, 53, 94, 59, 55, 96, 61, 57, 95, 60, 56, 94, 59, 55, 92, 59, 52, 96, 63, 56, 103, 69, 60, 105, 71, 62, 104, 67, 58, 95, 58, 49, 85, 47, 36, 78, 40, 29, 88, 48, 36, 86, 46, 34, 83, 45, 34, 81, 43, 32, 82, 44, 33, 85, 47, 36, 88, 51, 42, 90, 53, 44, 95, 57, 48, 97, 58, 51, 99, 61, 58, 102, 66, 68, 105, 72, 79, 109, 78, 86, 113, 83, 95, 114, 87, 96, 118, 91, 98, 113, 86, 91, 108, 79, 83, 103, 73, 73, 101, 70, 68, 104, 70, 68, 110, 72, 69, 112, 74, 71, 101, 66, 60, 102, 67, 61, 103, 69, 60, 104, 70, 60, 105, 71, 61, 106, 72, 60, 107, 73, 61, 107, 73, 61, 110, 76, 66, 113, 79, 69, 117, 82, 76, 121, 86, 80, 124, 89, 87, 126, 91, 89, 126, 90, 92, 125, 91, 92, 139, 105, 104, 144, 113, 111, 139, 108, 106, 131, 101, 99, 134, 106, 105, 134, 113, 110, 141, 125, 125, 155, 145, 144, 174, 168, 168, 186, 186, 186, 205, 210, 213, 220, 228, 231, 228, 235, 241, 229, 238, 245, 230, 236, 248, 230, 237, 247, 233, 238, 244, 233, 238, 242, 233, 238, 242, 234, 239, 243, 235, 240, 244, 236, 241, 245, 236, 241, 245, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 238, 242, 251, 238, 242, 251, 237, 241, 250, 237, 241, 250, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 228, 231, 240, 228, 231, 240, 226, 230, 239, 226, 230, 239, 222, 229, 237, 220, 227, 235, 218, 225, 231, 216, 224, 227, 214, 219, 223, 209, 213, 214, 202, 203, 205, 193, 192, 190, 183, 179, 178, 171, 166, 163, 160, 152, 149, 152, 142, 140, 163, 153, 151, 146, 136, 134, 130, 120, 118, 122, 112, 110, 112, 102, 100, 96, 86, 84, 83, 72, 70, 78, 67, 65, 75, 64, 62, 66, 55, 53, 66, 52, 51, 72, 58, 57, 74, 60, 59, 68, 54, 53, 67, 53, 52, 71, 57, 56, 75, 59, 59, 90, 72, 72, 96, 78, 78, 89, 71, 71, 88, 68, 69, 96, 76, 77, 99, 79, 78, 94, 74, 73, 76, 56, 55, 80, 59, 58, 83, 62, 61, 85, 64, 63, 86, 65, 62, 88, 67, 64, 91, 70, 67, 94, 73, 70, 98, 77, 76, 108, 88, 87, 114, 93, 92, 116, 96, 95, 117, 96, 95, 105, 85, 84, 100, 79, 78, 108, 88, 87, 95, 74, 73, 91, 71, 70, 83, 62, 61, 67, 47, 46, 55, 34, 33, 50, 30, 29, 58, 37, 36, 65, 45, 44, 60, 42, 38, 70, 52, 48, 91, 73, 69, 117, 99, 95, 133, 115, 111, 130, 115, 110, 118, 103, 98, 108, 93, 88, 69, 54, 49, 63, 48, 43, 63, 48, 43, 79, 66, 60, 103, 90, 84, 120, 107, 101, 121, 108, 102, 115, 102, 96, 105, 90, 85, 109, 94, 91, 101, 86, 83, 107, 93, 90, 123, 109, 106, 112, 101, 97, 108, 97, 93, 130, 121, 116, 141, 134, 128, 151, 146, 140, 166, 161, 155, 173, 170, 163, 174, 171, 166, 175, 174, 169, 182, 181, 176, 188, 189, 184, 198, 200, 199, 198, 202, 203, 205, 206, 208, 208, 212, 213, 213, 217, 220, 217, 221, 224, 220, 223, 228, 220, 225, 231, 225, 229, 238, 225, 229, 238, 223, 230, 240, 224, 231, 241, 224, 230, 242, 225, 231, 243, 225, 231, 245, 225, 231, 243, 229, 233, 242, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 230, 235, 241, 229, 234, 240, 229, 234, 240, 228, 233, 239, 220, 227, 235, 228, 235, 241, 221, 224, 229, 203, 203, 205, 185, 184, 182, 154, 150, 147, 111, 106, 102, 86, 79, 73, 106, 101, 97, 65, 60, 56, 69, 64, 61, 87, 82, 79, 92, 84, 82, 73, 63, 62, 54, 43, 41, 78, 67, 65, 56, 46, 45, 39, 29, 28, 40, 30, 29, 53, 43, 42, 55, 44, 42, 52, 41, 39, 48, 37, 35, 42, 31, 29, 30, 19, 17, 16, 5, 3, 17, 3, 0, 39, 25, 22, 61, 47, 44, 62, 48, 45, 49, 35, 32, 38, 24, 21, 66, 48, 46, 57, 39, 37, 53, 38, 35, 61, 46, 43, 64, 49, 46, 58, 43, 40, 54, 39, 36, 56, 41, 38, 69, 54, 51, 99, 84, 81, 129, 114, 111, 73, 58, 55, 44, 29, 26, 66, 51, 48, 60, 45, 42, 85, 67, 65, 89, 69, 68, 89, 68, 67, 85, 64, 63, 81, 60, 59, 75, 54, 53, 69, 48, 47, 64, 43, 42, 61, 40, 39, 63, 42, 41, 67, 46, 45, 73, 52, 51, 78, 57, 56, 81, 60, 59, 81, 60, 59, 80, 59, 58, 79, 58, 57, 81, 56, 60, 80, 55, 59, 79, 54, 57, 78, 53, 56, 77, 52, 55, 77, 52, 55, 79, 53, 56, 79, 53, 56, 75, 49, 50, 73, 47, 48, 72, 46, 47, 73, 47, 48, 79, 50, 52, 84, 55, 57, 88, 60, 59, 90, 62, 61, 91, 61, 59, 88, 58, 56, 83, 53, 51, 79, 49, 47, 77, 46, 43, 77, 46, 43, 78, 47, 44, 79, 48, 45, 82, 48, 46, 81, 47, 45, 83, 48, 44, 86, 51, 47, 92, 54, 51, 95, 57, 54, 96, 58, 55, 93, 58, 54, 89, 56, 49, 93, 60, 53, 99, 65, 56, 101, 67, 58, 101, 64, 55, 95, 58, 49, 88, 50, 39, 83, 45, 34, 91, 51, 41, 89, 49, 39, 85, 47, 36, 83, 45, 34, 84, 46, 37, 87, 49, 40, 91, 54, 46, 94, 57, 49, 96, 57, 50, 98, 59, 54, 101, 63, 62, 104, 68, 72, 107, 74, 81, 111, 80, 88, 114, 84, 96, 116, 86, 96, 120, 90, 98, 116, 87, 91, 109, 80, 82, 104, 74, 72, 102, 71, 68, 103, 70, 65, 107, 69, 66, 108, 70, 67, 103, 68, 62, 105, 70, 64, 108, 74, 65, 111, 77, 67, 114, 77, 68, 113, 77, 65, 111, 75, 63, 109, 73, 61, 114, 77, 68, 116, 79, 70, 119, 82, 76, 123, 86, 80, 125, 90, 88, 127, 92, 90, 129, 93, 95, 129, 95, 96, 134, 100, 99, 143, 112, 110, 139, 109, 109, 126, 98, 97, 123, 97, 96, 126, 105, 102, 139, 123, 123, 156, 146, 145, 176, 170, 170, 186, 186, 186, 204, 208, 211, 219, 227, 230, 228, 235, 241, 231, 238, 246, 232, 236, 248, 232, 236, 247, 232, 237, 243, 233, 238, 242, 233, 238, 242, 234, 239, 243, 235, 240, 244, 236, 241, 245, 236, 241, 245, 236, 241, 245, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 238, 242, 251, 238, 242, 251, 237, 241, 250, 237, 241, 250, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 232, 241, 230, 233, 242, 228, 232, 241, 227, 231, 240, 224, 231, 239, 222, 229, 237, 219, 226, 232, 218, 226, 229, 212, 215, 220, 208, 209, 211, 197, 197, 199, 185, 184, 182, 173, 167, 167, 159, 151, 149, 144, 134, 132, 134, 124, 122, 105, 95, 93, 103, 93, 91, 106, 96, 94, 111, 101, 99, 105, 95, 93, 92, 82, 80, 89, 78, 76, 94, 83, 81, 87, 76, 74, 66, 55, 53, 58, 44, 43, 68, 54, 53, 75, 61, 60, 72, 58, 57, 73, 59, 58, 83, 67, 67, 88, 70, 70, 110, 92, 92, 120, 102, 102, 103, 85, 85, 86, 66, 67, 82, 62, 63, 82, 62, 61, 79, 59, 58, 82, 61, 60, 88, 67, 66, 93, 72, 71, 91, 70, 69, 85, 64, 61, 83, 62, 59, 88, 67, 64, 94, 73, 70, 91, 70, 69, 85, 64, 63, 79, 58, 57, 89, 68, 67, 103, 82, 81, 99, 78, 77, 93, 72, 71, 102, 81, 80, 85, 64, 63, 94, 73, 72, 100, 79, 78, 96, 75, 74, 84, 63, 62, 76, 55, 54, 76, 55, 54, 80, 59, 58, 95, 76, 72, 71, 53, 49, 58, 40, 36, 66, 48, 44, 76, 58, 54, 83, 65, 61, 100, 82, 78, 120, 105, 100, 127, 112, 107, 107, 92, 87, 79, 64, 59, 60, 45, 40, 59, 44, 39, 71, 58, 52, 89, 76, 70, 102, 89, 83, 117, 102, 99, 109, 94, 91, 81, 65, 65, 90, 75, 72, 127, 113, 110, 112, 98, 95, 77, 66, 62, 84, 73, 69, 123, 114, 109, 137, 130, 124, 155, 148, 142, 164, 159, 153, 166, 161, 155, 168, 165, 158, 176, 173, 166, 181, 180, 175, 190, 191, 186, 193, 193, 191, 198, 198, 196, 204, 206, 205, 210, 212, 211, 213, 217, 218, 218, 219, 223, 218, 221, 226, 226, 229, 236, 225, 229, 238, 225, 229, 238, 223, 230, 240, 224, 230, 242, 224, 230, 242, 225, 231, 245, 225, 231, 243, 229, 233, 242, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 232, 237, 243, 232, 237, 243, 231, 236, 242, 230, 235, 241, 230, 235, 241, 229, 234, 240, 228, 233, 239, 228, 233, 239, 217, 224, 232, 231, 236, 242, 219, 220, 225, 196, 196, 198, 182, 178, 177, 139, 134, 130, 92, 85, 79, 75, 68, 62, 92, 87, 83, 63, 58, 54, 67, 62, 59, 65, 60, 57, 62, 54, 52, 57, 49, 47, 51, 40, 38, 78, 67, 65, 40, 30, 29, 34, 24, 23, 42, 32, 31, 51, 41, 40, 49, 38, 36, 48, 37, 35, 48, 37, 35, 43, 32, 30, 19, 8, 6, 21, 10, 8, 40, 26, 23, 58, 44, 41, 52, 38, 35, 38, 24, 21, 52, 38, 35, 81, 67, 64, 62, 47, 44, 55, 37, 35, 50, 35, 32, 57, 42, 39, 58, 43, 40, 47, 32, 29, 38, 23, 20, 37, 22, 19, 105, 90, 87, 134, 119, 116, 74, 59, 56, 57, 42, 39, 80, 65, 62, 76, 61, 58, 87, 72, 69, 83, 65, 63, 90, 70, 69, 83, 63, 62, 76, 55, 54, 73, 53, 52, 74, 53, 52, 70, 50, 49, 61, 40, 39, 51, 31, 30, 59, 38, 37, 61, 41, 40, 66, 45, 44, 68, 48, 47, 69, 48, 47, 65, 45, 44, 62, 41, 40, 59, 38, 37, 73, 51, 53, 73, 51, 54, 74, 49, 52, 72, 50, 52, 73, 48, 51, 72, 47, 50, 71, 46, 49, 71, 46, 49, 68, 42, 43, 71, 47, 47, 75, 49, 50, 74, 48, 49, 72, 46, 47, 76, 50, 51, 87, 59, 58, 95, 67, 66, 85, 55, 53, 82, 52, 50, 78, 48, 46, 75, 45, 43, 77, 46, 43, 80, 49, 46, 85, 54, 51, 88, 57, 54, 98, 64, 62, 97, 63, 61, 96, 61, 57, 97, 62, 58, 101, 63, 60, 102, 64, 61, 101, 63, 60, 97, 62, 56, 100, 65, 59, 96, 63, 56, 93, 59, 50, 88, 54, 45, 87, 50, 41, 86, 49, 40, 88, 50, 39, 88, 50, 39, 93, 53, 43, 91, 51, 41, 87, 49, 38, 85, 47, 36, 85, 47, 38, 89, 51, 42, 92, 55, 47, 96, 59, 53, 96, 59, 53, 98, 60, 59, 100, 64, 66, 104, 69, 73, 108, 75, 82, 112, 79, 90, 115, 83, 94, 116, 86, 96, 113, 83, 91, 112, 81, 86, 108, 78, 80, 105, 74, 72, 105, 71, 69, 107, 72, 68, 110, 72, 69, 111, 73, 70, 116, 81, 75, 118, 83, 77, 121, 87, 78, 123, 89, 79, 123, 86, 77, 119, 83, 71, 113, 77, 65, 109, 73, 61, 117, 79, 70, 116, 79, 70, 117, 80, 74, 119, 82, 76, 120, 85, 83, 124, 89, 87, 128, 92, 94, 129, 95, 96, 125, 94, 92, 142, 112, 110, 142, 112, 112, 126, 98, 97, 116, 90, 89, 117, 96, 93, 133, 117, 117, 155, 145, 144, 176, 170, 170, 186, 186, 186, 203, 207, 210, 220, 225, 229, 228, 235, 241, 231, 238, 246, 232, 236, 247, 232, 236, 247, 232, 237, 243, 232, 237, 241, 233, 238, 242, 234, 239, 243, 235, 240, 244, 235, 240, 244, 236, 241, 245, 236, 241, 245, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 238, 242, 251, 238, 242, 251, 237, 241, 250, 237, 241, 250, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 228, 233, 239, 228, 233, 239, 228, 233, 239, 227, 231, 240, 227, 231, 240, 227, 231, 240, 227, 231, 240, 224, 231, 239, 222, 229, 237, 220, 227, 233, 219, 227, 230, 220, 223, 228, 209, 210, 212, 192, 192, 194, 180, 179, 177, 172, 166, 166, 159, 151, 149, 140, 130, 128, 126, 115, 113, 111, 101, 100, 98, 88, 87, 89, 77, 77, 87, 75, 75, 81, 69, 69, 72, 60, 60, 70, 58, 58, 76, 64, 64, 74, 60, 60, 67, 53, 53, 69, 55, 55, 80, 66, 66, 84, 70, 70, 76, 62, 62, 73, 57, 58, 77, 61, 62, 98, 80, 80, 98, 78, 79, 95, 75, 76, 93, 73, 74, 91, 71, 72, 91, 71, 72, 93, 72, 71, 94, 73, 72, 99, 78, 77, 102, 81, 80, 101, 80, 79, 95, 74, 73, 90, 66, 64, 89, 65, 63, 95, 71, 69, 103, 79, 77, 101, 77, 75, 98, 74, 72, 94, 70, 68, 90, 66, 64, 88, 64, 62, 87, 63, 61, 88, 64, 62, 88, 64, 62, 76, 52, 50, 78, 54, 52, 89, 65, 63, 104, 80, 78, 108, 84, 82, 103, 79, 77, 103, 79, 77, 107, 86, 83, 114, 95, 91, 119, 100, 96, 121, 102, 98, 111, 92, 88, 93, 74, 70, 79, 60, 56, 75, 56, 52, 75, 57, 53, 91, 73, 69, 110, 92, 88, 116, 98, 94, 94, 79, 74, 67, 52, 47, 57, 42, 37, 62, 47, 42, 66, 51, 48, 100, 84, 84, 117, 101, 101, 112, 98, 98, 95, 81, 80, 107, 93, 92, 132, 118, 117, 114, 103, 101, 72, 61, 59, 53, 43, 41, 91, 83, 80, 135, 128, 122, 154, 149, 143, 156, 151, 145, 156, 153, 146, 162, 159, 152, 169, 166, 159, 169, 168, 163, 180, 179, 175, 185, 184, 180, 189, 189, 187, 200, 200, 198, 203, 205, 204, 204, 204, 206, 211, 212, 216, 221, 222, 227, 221, 224, 231, 223, 226, 235, 222, 226, 235, 223, 227, 238, 224, 228, 239, 227, 231, 243, 231, 235, 246, 224, 228, 237, 226, 231, 237, 229, 234, 240, 231, 236, 242, 232, 237, 243, 232, 237, 243, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 236, 241, 245, 236, 241, 245, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 234, 239, 245, 233, 238, 244, 233, 238, 244, 232, 237, 243, 231, 236, 242, 232, 237, 243, 233, 238, 244, 234, 239, 245, 233, 238, 244, 231, 236, 242, 228, 233, 239, 226, 231, 237, 221, 226, 232, 227, 232, 236, 205, 206, 210, 184, 184, 184, 171, 167, 164, 123, 118, 114, 83, 76, 70, 90, 83, 77, 81, 76, 72, 53, 48, 44, 78, 73, 70, 92, 87, 84, 51, 43, 41, 43, 35, 33, 67, 55, 55, 57, 45, 45, 29, 19, 18, 25, 15, 14, 33, 23, 22, 44, 34, 33, 52, 41, 39, 60, 49, 47, 56, 45, 43, 40, 29, 27, 30, 19, 17, 19, 8, 6, 42, 28, 25, 61, 47, 44, 41, 27, 24, 32, 18, 15, 53, 39, 36, 68, 54, 51, 57, 42, 39, 26, 11, 8, 61, 46, 43, 43, 28, 25, 37, 22, 19, 52, 37, 34, 30, 15, 12, 72, 57, 54, 137, 122, 119, 88, 73, 70, 62, 47, 44, 76, 61, 58, 83, 68, 65, 65, 50, 47, 64, 46, 44, 81, 63, 61, 74, 56, 54, 77, 59, 57, 81, 61, 60, 80, 62, 60, 78, 58, 57, 73, 55, 53, 72, 52, 51, 70, 52, 50, 67, 47, 46, 70, 52, 50, 75, 55, 54, 74, 56, 54, 66, 46, 45, 55, 37, 35, 56, 36, 35, 62, 42, 41, 72, 52, 53, 68, 48, 49, 65, 43, 45, 62, 42, 43, 63, 41, 43, 63, 41, 43, 61, 40, 39, 60, 39, 38, 67, 43, 43, 57, 36, 35, 55, 31, 29, 64, 40, 38, 80, 56, 54, 87, 63, 61, 81, 55, 54, 71, 45, 44, 81, 53, 50, 78, 49, 45, 74, 45, 41, 74, 45, 41, 78, 47, 44, 81, 50, 47, 83, 52, 47, 84, 53, 48, 83, 50, 45, 82, 49, 44, 82, 47, 43, 82, 47, 43, 83, 46, 40, 82, 45, 39, 81, 44, 38, 79, 44, 38, 79, 44, 38, 79, 46, 37, 82, 48, 39, 82, 48, 39, 83, 46, 37, 81, 44, 35, 80, 42, 31, 78, 40, 29, 76, 36, 28, 80, 40, 32, 83, 45, 36, 86, 48, 39, 88, 49, 42, 91, 52, 45, 95, 58, 52, 98, 61, 55, 98, 60, 59, 98, 62, 62, 102, 66, 70, 106, 71, 77, 109, 76, 85, 113, 80, 91, 114, 82, 93, 115, 84, 92, 115, 84, 90, 112, 82, 84, 108, 76, 77, 105, 71, 70, 102, 68, 66, 102, 67, 63, 105, 68, 62, 106, 69, 63, 107, 72, 66, 111, 78, 71, 120, 86, 77, 125, 91, 81, 128, 91, 82, 128, 90, 79, 127, 89, 78, 127, 89, 78, 122, 82, 74, 121, 83, 74, 121, 82, 77, 122, 85, 79, 125, 90, 88, 131, 96, 94, 136, 102, 103, 140, 106, 107, 142, 111, 109, 137, 107, 105, 137, 107, 105, 135, 107, 104, 121, 95, 94, 112, 91, 88, 130, 114, 114, 156, 146, 145, 176, 170, 170, 183, 183, 183, 198, 202, 205, 216, 221, 225, 231, 236, 242, 236, 240, 249, 235, 237, 249, 230, 233, 242, 234, 239, 245, 234, 239, 243, 234, 239, 243, 234, 239, 243, 235, 240, 244, 235, 240, 244, 236, 241, 245, 236, 241, 245, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 250, 239, 244, 250, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 232, 241, 228, 232, 241, 228, 232, 241, 227, 231, 240, 224, 231, 239, 222, 229, 237, 221, 228, 234, 221, 226, 230, 220, 223, 228, 210, 211, 213, 196, 194, 197, 185, 181, 180, 177, 168, 169, 165, 155, 154, 150, 139, 137, 138, 127, 125, 128, 116, 116, 113, 103, 102, 104, 92, 92, 104, 92, 92, 99, 87, 87, 84, 72, 72, 69, 57, 57, 61, 49, 49, 68, 54, 54, 69, 55, 55, 74, 60, 60, 83, 69, 69, 86, 72, 72, 85, 71, 71, 86, 70, 71, 89, 73, 74, 79, 61, 61, 74, 54, 55, 66, 46, 47, 62, 42, 43, 65, 45, 46, 76, 56, 57, 90, 69, 68, 99, 78, 77, 92, 71, 70, 96, 75, 74, 97, 76, 75, 93, 72, 71, 89, 65, 63, 88, 64, 62, 93, 69, 67, 99, 75, 73, 93, 69, 67, 93, 69, 67, 93, 69, 67, 94, 70, 68, 95, 71, 69, 98, 74, 72, 100, 76, 74, 101, 77, 75, 79, 55, 53, 74, 50, 48, 73, 49, 47, 77, 53, 51, 77, 53, 51, 75, 51, 49, 82, 58, 56, 92, 68, 66, 101, 80, 77, 110, 91, 87, 120, 101, 97, 122, 103, 99, 115, 96, 92, 104, 85, 81, 96, 77, 73, 94, 75, 71, 87, 68, 64, 89, 71, 67, 82, 64, 60, 64, 46, 42, 53, 35, 31, 53, 38, 33, 58, 43, 38, 60, 45, 42, 59, 43, 43, 78, 62, 63, 94, 80, 80, 95, 81, 81, 93, 79, 78, 101, 87, 86, 118, 107, 105, 133, 122, 120, 71, 60, 58, 73, 63, 61, 84, 74, 72, 108, 101, 95, 141, 134, 128, 164, 159, 153, 166, 161, 155, 156, 151, 145, 160, 155, 151, 165, 162, 157, 168, 165, 160, 175, 174, 170, 187, 186, 182, 190, 189, 187, 198, 196, 197, 216, 216, 218, 220, 219, 224, 223, 224, 229, 228, 228, 236, 228, 231, 240, 227, 230, 239, 225, 229, 240, 225, 229, 240, 226, 230, 241, 223, 227, 236, 224, 229, 235, 226, 231, 237, 229, 234, 240, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 236, 241, 245, 236, 241, 245, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 234, 239, 245, 233, 238, 244, 232, 237, 243, 232, 237, 243, 229, 234, 240, 229, 234, 240, 230, 235, 241, 231, 236, 242, 231, 236, 242, 229, 234, 240, 227, 232, 238, 225, 230, 236, 221, 226, 232, 223, 226, 231, 205, 205, 207, 184, 182, 183, 169, 164, 161, 130, 125, 119, 94, 87, 81, 89, 82, 76, 86, 78, 75, 62, 57, 53, 84, 79, 76, 92, 87, 84, 54, 46, 44, 49, 41, 39, 68, 58, 57, 54, 42, 42, 32, 22, 21, 32, 22, 21, 36, 26, 25, 39, 29, 28, 44, 33, 31, 58, 47, 45, 56, 45, 43, 35, 24, 22, 13, 2, 0, 31, 20, 18, 48, 34, 31, 42, 28, 25, 35, 21, 18, 50, 36, 33, 59, 45, 42, 48, 34, 31, 31, 16, 13, 33, 18, 15, 40, 25, 22, 43, 28, 25, 46, 31, 28, 41, 26, 23, 63, 48, 45, 125, 110, 107, 102, 87, 84, 77, 62, 59, 62, 47, 44, 70, 55, 52, 80, 65, 62, 81, 66, 63, 86, 68, 66, 92, 74, 72, 91, 73, 71, 99, 81, 79, 108, 90, 88, 113, 95, 93, 113, 95, 93, 113, 95, 93, 114, 96, 94, 115, 97, 95, 110, 92, 90, 110, 92, 90, 112, 94, 92, 113, 95, 93, 109, 91, 89, 105, 87, 85, 108, 90, 88, 115, 97, 95, 103, 85, 85, 103, 85, 85, 103, 83, 84, 101, 81, 82, 99, 79, 80, 97, 77, 78, 96, 76, 75, 97, 76, 75, 91, 70, 69, 95, 74, 73, 96, 75, 72, 89, 68, 65, 78, 57, 54, 72, 51, 48, 76, 52, 50, 81, 57, 53, 74, 46, 43, 71, 42, 38, 66, 37, 33, 64, 35, 31, 67, 36, 33, 69, 38, 35, 70, 39, 34, 70, 39, 34, 74, 41, 36, 74, 41, 36, 75, 40, 36, 75, 40, 36, 78, 41, 35, 78, 41, 35, 78, 41, 35, 76, 41, 35, 77, 44, 35, 77, 44, 35, 80, 46, 37, 80, 46, 37, 81, 44, 35, 79, 42, 33, 78, 40, 29, 76, 38, 27, 76, 36, 28, 80, 40, 32, 83, 45, 36, 86, 48, 39, 88, 49, 42, 91, 52, 45, 95, 58, 52, 98, 60, 57, 96, 60, 60, 99, 63, 65, 102, 67, 73, 106, 71, 78, 109, 76, 87, 112, 79, 90, 113, 81, 92, 114, 83, 91, 114, 83, 89, 112, 80, 83, 110, 76, 77, 105, 71, 69, 104, 69, 65, 103, 68, 64, 106, 69, 63, 107, 70, 64, 111, 76, 70, 112, 79, 72, 114, 80, 71, 114, 80, 70, 118, 80, 71, 122, 84, 73, 128, 88, 78, 132, 92, 82, 121, 81, 73, 121, 81, 73, 121, 82, 77, 122, 85, 79, 126, 88, 87, 131, 96, 94, 136, 102, 103, 137, 105, 106, 142, 112, 110, 141, 111, 109, 143, 115, 112, 143, 118, 114, 133, 109, 107, 126, 105, 102, 140, 125, 122, 163, 153, 151, 172, 167, 164, 179, 179, 177, 193, 197, 198, 210, 215, 218, 225, 230, 236, 232, 236, 245, 233, 235, 247, 229, 232, 241, 234, 239, 245, 234, 239, 243, 234, 239, 243, 234, 239, 243, 235, 240, 244, 235, 240, 244, 236, 241, 245, 236, 241, 245, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 250, 239, 244, 250, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 232, 241, 228, 232, 241, 227, 234, 242, 226, 233, 241, 225, 232, 240, 223, 230, 238, 223, 228, 234, 222, 227, 231, 216, 219, 224, 209, 210, 212, 197, 195, 198, 184, 180, 179, 174, 165, 166, 162, 152, 151, 153, 139, 138, 146, 132, 131, 110, 98, 98, 96, 84, 84, 87, 75, 75, 92, 80, 80, 98, 86, 86, 92, 80, 80, 79, 65, 65, 68, 54, 54, 72, 58, 58, 81, 67, 67, 86, 72, 72, 84, 70, 70, 82, 66, 67, 83, 67, 68, 84, 68, 69, 83, 67, 68, 73, 55, 55, 71, 53, 53, 70, 50, 51, 68, 48, 49, 68, 48, 49, 69, 49, 50, 71, 51, 50, 73, 53, 52, 78, 57, 56, 83, 62, 61, 87, 66, 65, 86, 65, 64, 83, 62, 59, 82, 61, 58, 84, 63, 60, 88, 67, 64, 101, 77, 75, 101, 77, 75, 102, 78, 76, 101, 77, 75, 100, 76, 74, 98, 74, 72, 97, 73, 71, 96, 72, 70, 95, 71, 69, 88, 64, 62, 82, 58, 56, 78, 54, 52, 73, 49, 47, 70, 46, 44, 76, 52, 50, 84, 60, 58, 94, 70, 66, 93, 72, 67, 94, 73, 68, 95, 74, 69, 96, 75, 70, 99, 78, 73, 102, 81, 76, 103, 84, 78, 90, 71, 65, 89, 70, 64, 79, 60, 54, 63, 44, 38, 53, 34, 28, 52, 35, 28, 55, 38, 31, 55, 37, 33, 49, 33, 33, 52, 36, 37, 64, 48, 49, 78, 62, 63, 81, 67, 67, 74, 60, 60, 71, 57, 57, 72, 60, 60, 95, 83, 83, 106, 96, 94, 111, 101, 99, 100, 90, 88, 92, 82, 80, 104, 96, 93, 134, 126, 123, 158, 150, 147, 161, 154, 148, 158, 151, 145, 155, 148, 142, 164, 159, 155, 183, 178, 175, 184, 180, 179, 186, 182, 181, 197, 195, 196, 205, 203, 206, 211, 210, 215, 219, 220, 224, 224, 227, 232, 226, 229, 236, 226, 229, 238, 225, 228, 237, 225, 228, 237, 223, 228, 234, 224, 229, 235, 225, 230, 236, 227, 232, 238, 229, 234, 240, 230, 235, 241, 232, 237, 243, 233, 238, 244, 230, 235, 241, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 236, 241, 245, 236, 241, 245, 236, 241, 247, 236, 241, 247, 235, 240, 246, 234, 239, 245, 234, 239, 245, 233, 238, 244, 232, 237, 243, 232, 237, 243, 228, 233, 239, 227, 232, 238, 226, 231, 237, 228, 233, 239, 229, 234, 240, 229, 234, 240, 226, 231, 237, 223, 228, 234, 220, 223, 228, 215, 216, 220, 201, 201, 201, 181, 180, 178, 163, 158, 154, 140, 133, 127, 111, 102, 97, 87, 80, 74, 89, 81, 78, 75, 67, 64, 87, 82, 79, 83, 78, 75, 51, 42, 43, 52, 43, 44, 67, 57, 56, 48, 38, 37, 36, 26, 25, 36, 26, 25, 37, 27, 26, 33, 23, 22, 37, 26, 24, 53, 42, 40, 54, 43, 41, 35, 24, 22, 26, 15, 13, 36, 25, 23, 29, 15, 12, 22, 8, 5, 49, 35, 32, 72, 58, 55, 54, 40, 37, 22, 8, 5, 25, 11, 8, 46, 32, 29, 36, 22, 19, 46, 32, 29, 41, 27, 24, 49, 35, 32, 115, 100, 97, 143, 128, 125, 70, 55, 52, 77, 62, 59, 84, 66, 64, 89, 71, 69, 97, 79, 77, 105, 87, 85, 99, 81, 79, 86, 68, 66, 96, 81, 78, 102, 87, 84, 105, 90, 87, 100, 85, 82, 89, 74, 71, 79, 64, 61, 76, 61, 58, 77, 62, 59, 96, 81, 78, 91, 76, 73, 89, 74, 71, 90, 75, 72, 91, 76, 73, 90, 75, 72, 94, 79, 76, 100, 85, 82, 100, 84, 84, 105, 89, 89, 112, 94, 94, 113, 95, 95, 110, 92, 90, 109, 91, 89, 110, 92, 90, 114, 94, 93, 111, 92, 88, 109, 90, 86, 107, 88, 84, 108, 89, 85, 109, 90, 86, 108, 89, 85, 105, 84, 81, 102, 81, 76, 85, 60, 56, 82, 54, 50, 76, 48, 44, 73, 45, 41, 73, 44, 38, 74, 45, 39, 75, 44, 39, 74, 43, 38, 75, 42, 37, 75, 42, 37, 74, 41, 34, 74, 41, 34, 75, 40, 34, 75, 40, 34, 75, 40, 34, 74, 39, 33, 76, 43, 34, 76, 43, 34, 78, 44, 34, 78, 44, 34, 79, 42, 33, 77, 40, 31, 77, 39, 30, 75, 37, 28, 76, 36, 28, 80, 40, 32, 83, 44, 37, 86, 47, 40, 88, 49, 44, 91, 52, 47, 95, 57, 54, 98, 60, 59, 97, 61, 63, 98, 63, 69, 102, 66, 76, 107, 71, 83, 108, 75, 86, 110, 76, 90, 111, 78, 89, 111, 78, 87, 113, 81, 86, 112, 78, 79, 109, 75, 74, 106, 71, 69, 106, 68, 65, 105, 68, 62, 107, 68, 63, 106, 69, 63, 107, 72, 66, 108, 75, 68, 110, 76, 67, 110, 76, 66, 114, 76, 67, 117, 79, 68, 123, 83, 73, 129, 86, 77, 123, 80, 73, 121, 81, 73, 120, 81, 76, 121, 84, 78, 126, 88, 87, 130, 95, 93, 135, 101, 102, 137, 105, 106, 139, 109, 107, 140, 112, 108, 147, 119, 115, 150, 125, 120, 144, 120, 116, 136, 117, 113, 147, 132, 129, 163, 153, 151, 166, 161, 158, 175, 175, 173, 190, 191, 193, 203, 207, 210, 216, 221, 227, 228, 233, 239, 232, 235, 244, 230, 233, 242, 234, 239, 245, 234, 239, 243, 234, 239, 243, 234, 239, 243, 235, 240, 244, 235, 240, 244, 236, 241, 245, 236, 241, 245, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 250, 239, 244, 250, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 228, 233, 239, 228, 233, 239, 228, 233, 239, 229, 233, 242, 229, 233, 242, 227, 234, 242, 226, 233, 241, 225, 232, 240, 223, 230, 238, 223, 228, 234, 222, 227, 231, 215, 216, 221, 208, 208, 210, 195, 193, 196, 179, 173, 173, 164, 154, 155, 150, 138, 138, 142, 126, 126, 136, 120, 120, 136, 122, 122, 115, 103, 103, 94, 82, 82, 84, 72, 72, 81, 69, 69, 76, 64, 64, 68, 54, 54, 60, 46, 46, 52, 38, 38, 66, 52, 52, 71, 57, 57, 61, 47, 47, 55, 39, 40, 59, 43, 44, 61, 45, 46, 58, 42, 43, 64, 46, 46, 68, 50, 50, 74, 54, 55, 78, 58, 59, 81, 61, 62, 81, 61, 62, 80, 60, 59, 78, 58, 57, 82, 61, 60, 88, 67, 66, 94, 73, 72, 97, 76, 75, 96, 75, 72, 94, 73, 70, 95, 74, 71, 96, 75, 72, 106, 82, 80, 107, 83, 81, 108, 84, 82, 107, 83, 81, 105, 81, 79, 101, 77, 75, 97, 73, 71, 95, 71, 69, 109, 85, 83, 109, 85, 83, 108, 84, 82, 104, 80, 78, 97, 73, 71, 90, 66, 64, 86, 62, 60, 86, 62, 60, 95, 71, 67, 89, 65, 61, 81, 60, 55, 79, 58, 53, 83, 62, 57, 88, 67, 62, 91, 70, 65, 91, 70, 65, 76, 55, 50, 87, 68, 62, 93, 74, 68, 85, 66, 60, 68, 49, 43, 58, 39, 33, 58, 39, 33, 61, 43, 39, 70, 52, 50, 66, 50, 50, 67, 49, 49, 73, 57, 57, 91, 75, 75, 100, 84, 84, 81, 65, 66, 54, 40, 40, 77, 63, 63, 95, 83, 83, 114, 103, 101, 120, 109, 107, 118, 107, 105, 115, 104, 102, 112, 102, 100, 109, 99, 97, 141, 132, 127, 138, 129, 124, 132, 123, 118, 142, 135, 129, 172, 164, 161, 185, 180, 177, 179, 174, 171, 171, 167, 166, 183, 179, 180, 189, 187, 190, 199, 199, 201, 209, 210, 214, 216, 217, 222, 220, 223, 228, 224, 227, 232, 227, 230, 235, 226, 231, 237, 226, 231, 237, 226, 231, 237, 226, 231, 237, 228, 233, 239, 229, 234, 240, 231, 236, 242, 232, 237, 243, 229, 234, 240, 230, 235, 241, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 236, 241, 245, 236, 241, 245, 236, 241, 247, 235, 240, 246, 235, 240, 246, 234, 239, 245, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 229, 234, 240, 226, 231, 237, 224, 229, 235, 225, 230, 236, 228, 233, 239, 229, 234, 240, 226, 231, 237, 223, 228, 234, 216, 217, 222, 204, 203, 208, 192, 190, 191, 175, 171, 168, 157, 149, 146, 145, 138, 132, 122, 113, 106, 87, 78, 71, 89, 81, 78, 81, 73, 70, 80, 75, 72, 63, 58, 55, 39, 30, 31, 48, 39, 40, 61, 51, 50, 43, 33, 32, 42, 32, 31, 32, 22, 21, 30, 20, 19, 32, 22, 21, 34, 23, 21, 45, 34, 32, 51, 40, 38, 44, 33, 31, 40, 29, 27, 32, 21, 19, 18, 4, 1, 30, 16, 13, 63, 49, 46, 60, 46, 43, 37, 23, 20, 36, 22, 19, 51, 37, 34, 53, 39, 36, 50, 36, 33, 47, 33, 30, 41, 27, 24, 88, 74, 71, 139, 124, 121, 100, 85, 82, 70, 55, 52, 83, 68, 65, 93, 75, 73, 90, 72, 70, 89, 71, 69, 93, 75, 73, 87, 69, 67, 75, 57, 55, 65, 47, 45, 67, 52, 49, 70, 52, 50, 61, 46, 43, 52, 34, 32, 44, 29, 26, 48, 30, 28, 51, 36, 33, 64, 46, 44, 55, 40, 37, 53, 35, 33, 53, 38, 35, 56, 38, 36, 52, 37, 34, 54, 36, 34, 54, 39, 36, 54, 38, 38, 63, 47, 47, 73, 57, 57, 77, 61, 61, 77, 59, 57, 75, 57, 55, 79, 61, 59, 84, 66, 64, 90, 71, 67, 86, 67, 63, 84, 65, 61, 90, 71, 67, 97, 78, 74, 99, 80, 76, 93, 74, 70, 87, 66, 61, 100, 75, 70, 96, 68, 64, 89, 61, 57, 85, 57, 53, 84, 55, 49, 83, 54, 48, 83, 52, 47, 81, 50, 45, 81, 48, 43, 81, 48, 43, 80, 47, 40, 78, 45, 38, 78, 43, 37, 76, 41, 35, 75, 40, 34, 75, 40, 34, 76, 43, 34, 76, 43, 34, 77, 43, 33, 77, 43, 33, 78, 41, 32, 77, 40, 31, 77, 39, 30, 76, 38, 29, 76, 36, 28, 80, 40, 32, 83, 44, 37, 86, 47, 40, 88, 49, 44, 91, 52, 47, 95, 57, 54, 96, 60, 60, 97, 62, 66, 100, 65, 72, 104, 68, 80, 108, 72, 84, 109, 75, 89, 109, 75, 89, 109, 76, 87, 108, 75, 84, 110, 75, 81, 108, 74, 75, 107, 71, 71, 104, 69, 65, 105, 68, 62, 104, 67, 61, 105, 66, 61, 105, 68, 62, 98, 63, 57, 102, 69, 62, 110, 76, 67, 116, 79, 70, 117, 79, 70, 117, 77, 67, 118, 75, 66, 118, 75, 66, 123, 80, 73, 123, 80, 73, 121, 80, 76, 122, 83, 78, 126, 88, 87, 130, 95, 93, 135, 101, 102, 137, 106, 104, 133, 104, 100, 136, 108, 104, 145, 117, 113, 149, 124, 119, 144, 120, 116, 138, 119, 113, 143, 128, 123, 151, 142, 137, 163, 158, 154, 174, 175, 170, 187, 189, 188, 196, 200, 201, 208, 213, 217, 224, 229, 235, 233, 236, 245, 232, 235, 242, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 235, 240, 244, 235, 240, 244, 236, 241, 245, 236, 241, 245, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 250, 239, 244, 250, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 232, 241, 228, 232, 241, 226, 233, 241, 226, 233, 241, 225, 232, 240, 223, 230, 238, 223, 228, 234, 222, 227, 231, 219, 220, 225, 211, 211, 213, 198, 193, 197, 178, 172, 172, 159, 149, 150, 140, 128, 128, 128, 112, 112, 121, 105, 105, 135, 121, 121, 120, 108, 108, 98, 86, 86, 77, 65, 65, 64, 50, 50, 56, 42, 42, 49, 35, 35, 44, 30, 30, 47, 33, 33, 62, 48, 48, 70, 54, 55, 63, 47, 48, 60, 44, 45, 67, 51, 52, 73, 57, 58, 72, 56, 57, 81, 63, 63, 77, 59, 59, 73, 55, 55, 70, 52, 52, 71, 53, 53, 76, 58, 58, 83, 63, 62, 87, 67, 66, 74, 54, 53, 79, 59, 58, 85, 65, 64, 90, 70, 69, 92, 71, 68, 91, 70, 67, 90, 69, 66, 90, 69, 66, 94, 73, 70, 97, 76, 73, 102, 81, 78, 108, 87, 84, 113, 92, 89, 115, 94, 91, 116, 95, 92, 116, 95, 92, 109, 88, 85, 113, 92, 89, 116, 95, 92, 114, 93, 90, 107, 86, 83, 100, 79, 76, 94, 73, 70, 90, 69, 66, 75, 51, 47, 75, 51, 47, 79, 55, 51, 84, 60, 56, 87, 63, 59, 81, 57, 53, 68, 44, 40, 55, 34, 29, 57, 36, 31, 69, 48, 43, 82, 61, 56, 87, 66, 61, 80, 59, 54, 71, 52, 46, 70, 51, 45, 74, 55, 49, 82, 63, 59, 84, 66, 64, 82, 62, 61, 77, 59, 57, 80, 62, 60, 92, 74, 72, 103, 85, 85, 105, 89, 89, 70, 54, 54, 86, 70, 70, 102, 86, 86, 108, 94, 93, 109, 95, 95, 110, 96, 96, 107, 93, 93, 103, 89, 88, 100, 86, 83, 112, 101, 95, 110, 99, 93, 110, 99, 95, 141, 130, 126, 171, 161, 159, 177, 169, 166, 169, 164, 161, 171, 166, 163, 176, 172, 171, 184, 182, 183, 192, 192, 194, 202, 202, 204, 210, 211, 213, 219, 220, 224, 223, 227, 230, 225, 230, 234, 226, 231, 237, 226, 231, 237, 227, 232, 238, 227, 232, 238, 228, 233, 239, 228, 233, 239, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 236, 241, 245, 236, 241, 245, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 233, 238, 244, 232, 237, 243, 231, 236, 242, 231, 236, 242, 233, 238, 244, 228, 233, 239, 223, 228, 234, 224, 229, 235, 228, 233, 239, 229, 234, 240, 225, 230, 236, 221, 226, 232, 206, 207, 212, 193, 193, 195, 181, 179, 180, 166, 162, 159, 152, 145, 139, 145, 136, 129, 123, 114, 107, 89, 80, 73, 88, 80, 77, 81, 73, 70, 66, 61, 58, 41, 35, 35, 26, 17, 18, 41, 32, 33, 54, 44, 43, 41, 31, 30, 45, 35, 34, 24, 14, 13, 22, 12, 11, 34, 24, 23, 36, 25, 23, 38, 27, 25, 48, 37, 35, 55, 44, 42, 29, 18, 16, 29, 18, 16, 30, 16, 13, 48, 34, 31, 61, 47, 44, 40, 26, 23, 37, 23, 20, 72, 58, 55, 63, 52, 48, 41, 30, 26, 42, 28, 25, 40, 26, 23, 78, 64, 61, 127, 113, 110, 104, 89, 86, 61, 46, 43, 74, 59, 56, 74, 59, 56, 72, 54, 52, 66, 48, 46, 62, 42, 41, 63, 43, 42, 71, 51, 50, 77, 57, 56, 67, 47, 46, 67, 49, 47, 66, 46, 45, 58, 40, 38, 54, 34, 33, 54, 36, 34, 65, 45, 44, 72, 54, 52, 68, 48, 47, 63, 45, 43, 64, 44, 43, 68, 50, 48, 72, 52, 51, 67, 49, 47, 65, 45, 44, 64, 46, 44, 65, 47, 45, 73, 55, 53, 82, 64, 62, 83, 65, 63, 78, 60, 58, 74, 56, 54, 77, 57, 56, 81, 61, 60, 80, 61, 57, 86, 67, 63, 88, 69, 65, 77, 58, 54, 63, 42, 37, 58, 37, 32, 66, 45, 40, 77, 56, 51, 88, 63, 58, 83, 58, 53, 75, 50, 45, 70, 45, 40, 70, 43, 36, 69, 42, 35, 68, 39, 33, 67, 38, 32, 69, 39, 31, 70, 40, 32, 70, 40, 32, 71, 41, 33, 73, 40, 33, 74, 41, 34, 75, 42, 35, 75, 42, 35, 78, 45, 36, 77, 44, 35, 77, 43, 33, 76, 42, 32, 77, 40, 31, 77, 40, 31, 78, 40, 31, 78, 40, 31, 76, 36, 28, 80, 40, 32, 83, 44, 37, 86, 47, 42, 88, 48, 46, 91, 51, 49, 95, 57, 56, 96, 60, 60, 99, 64, 70, 100, 67, 76, 104, 71, 82, 108, 74, 88, 111, 74, 91, 111, 75, 89, 108, 72, 84, 107, 71, 81, 106, 69, 76, 105, 69, 71, 106, 68, 67, 104, 66, 63, 104, 67, 61, 103, 66, 60, 104, 65, 60, 103, 66, 60, 97, 64, 57, 102, 69, 62, 110, 76, 67, 115, 78, 69, 116, 78, 69, 116, 76, 66, 116, 73, 64, 117, 73, 64, 125, 80, 74, 124, 81, 74, 122, 81, 77, 123, 84, 79, 127, 89, 88, 131, 96, 94, 136, 102, 103, 137, 107, 105, 131, 103, 99, 133, 108, 101, 139, 114, 107, 143, 118, 111, 141, 118, 112, 137, 118, 112, 138, 123, 116, 140, 131, 124, 163, 158, 154, 175, 176, 171, 187, 189, 188, 190, 194, 195, 202, 205, 210, 222, 225, 230, 236, 236, 244, 234, 237, 244, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 235, 240, 244, 235, 240, 244, 236, 241, 245, 236, 241, 245, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 250, 239, 244, 250, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 228, 233, 239, 228, 233, 239, 228, 233, 239, 227, 231, 240, 227, 231, 240, 225, 232, 240, 225, 232, 240, 224, 231, 239, 222, 229, 237, 222, 227, 233, 221, 226, 230, 224, 225, 230, 215, 215, 217, 201, 196, 200, 185, 176, 177, 165, 155, 156, 146, 132, 132, 128, 112, 112, 117, 101, 101, 102, 88, 88, 101, 89, 89, 96, 84, 84, 86, 74, 74, 79, 65, 65, 74, 60, 60, 66, 52, 52, 58, 44, 44, 65, 51, 51, 72, 58, 58, 77, 61, 62, 75, 59, 60, 74, 58, 59, 78, 62, 63, 83, 67, 68, 84, 68, 69, 92, 74, 74, 91, 73, 73, 89, 71, 71, 87, 69, 69, 84, 66, 66, 81, 63, 63, 79, 59, 58, 78, 58, 57, 73, 53, 52, 76, 56, 55, 80, 60, 59, 85, 65, 64, 89, 68, 65, 89, 68, 65, 88, 67, 64, 86, 65, 62, 95, 74, 71, 98, 77, 74, 103, 82, 79, 110, 89, 86, 116, 95, 92, 121, 100, 97, 124, 103, 100, 126, 105, 102, 110, 89, 86, 114, 93, 90, 114, 93, 90, 108, 87, 84, 104, 83, 80, 105, 84, 81, 105, 84, 81, 102, 81, 78, 84, 60, 56, 83, 59, 55, 83, 59, 55, 86, 62, 58, 88, 64, 60, 84, 60, 56, 75, 51, 47, 67, 43, 39, 75, 54, 49, 69, 48, 43, 68, 47, 42, 77, 56, 51, 84, 63, 58, 83, 62, 57, 77, 58, 52, 75, 56, 50, 80, 59, 54, 70, 49, 44, 70, 49, 46, 78, 59, 55, 76, 55, 52, 67, 47, 46, 79, 59, 58, 101, 81, 80, 90, 70, 71, 99, 81, 81, 103, 85, 85, 97, 79, 79, 90, 71, 73, 93, 74, 76, 101, 82, 84, 105, 89, 89, 90, 75, 72, 111, 98, 92, 111, 98, 92, 99, 86, 80, 110, 96, 93, 136, 125, 121, 157, 147, 145, 169, 161, 158, 170, 162, 160, 172, 167, 164, 178, 174, 173, 183, 182, 180, 190, 188, 189, 197, 197, 197, 206, 206, 206, 211, 212, 214, 216, 219, 224, 217, 222, 228, 221, 226, 232, 224, 229, 235, 227, 232, 238, 227, 232, 238, 227, 232, 238, 226, 231, 237, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 236, 241, 245, 236, 241, 245, 235, 240, 246, 235, 240, 246, 234, 239, 245, 233, 238, 244, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 236, 241, 247, 229, 234, 240, 222, 227, 233, 221, 226, 232, 225, 230, 236, 226, 231, 237, 221, 226, 232, 217, 220, 225, 197, 198, 202, 187, 187, 189, 172, 168, 169, 158, 153, 150, 151, 144, 138, 140, 131, 124, 117, 108, 101, 96, 87, 80, 86, 79, 73, 79, 71, 68, 56, 51, 48, 30, 24, 24, 25, 16, 17, 40, 31, 32, 51, 41, 40, 45, 35, 34, 44, 34, 33, 25, 15, 14, 23, 13, 12, 33, 23, 22, 34, 23, 21, 36, 25, 23, 49, 38, 36, 58, 47, 45, 29, 18, 16, 25, 14, 12, 27, 13, 10, 45, 31, 28, 65, 51, 48, 63, 49, 46, 57, 43, 40, 64, 50, 47, 48, 37, 33, 26, 15, 11, 21, 7, 4, 48, 34, 31, 126, 112, 109, 123, 109, 106, 50, 35, 32, 64, 49, 46, 57, 42, 39, 57, 42, 39, 65, 47, 45, 72, 54, 52, 71, 51, 50, 63, 43, 42, 65, 45, 44, 74, 54, 53, 84, 64, 63, 79, 59, 58, 71, 51, 50, 63, 43, 42, 59, 39, 38, 61, 41, 40, 67, 47, 46, 73, 53, 52, 67, 47, 46, 67, 47, 46, 73, 53, 52, 81, 61, 60, 85, 65, 64, 82, 62, 61, 82, 62, 61, 85, 65, 64, 105, 85, 84, 107, 89, 87, 109, 91, 89, 105, 87, 85, 96, 78, 76, 90, 72, 70, 88, 68, 67, 88, 68, 67, 84, 65, 61, 80, 61, 57, 72, 53, 49, 66, 45, 42, 64, 43, 38, 69, 48, 43, 79, 58, 53, 89, 65, 61, 67, 44, 38, 63, 38, 33, 57, 32, 27, 52, 27, 22, 53, 26, 19, 52, 25, 18, 53, 24, 18, 51, 22, 16, 50, 20, 12, 52, 22, 14, 55, 25, 17, 59, 29, 21, 66, 33, 26, 70, 37, 30, 73, 40, 33, 74, 41, 32, 77, 44, 35, 76, 43, 34, 75, 41, 31, 74, 40, 30, 75, 38, 29, 75, 38, 29, 77, 39, 30, 77, 39, 30, 76, 36, 28, 80, 39, 33, 83, 44, 39, 86, 47, 42, 88, 48, 46, 91, 51, 49, 95, 57, 56, 96, 60, 62, 101, 66, 73, 102, 69, 80, 107, 73, 87, 110, 76, 90, 113, 76, 93, 111, 75, 89, 107, 71, 85, 104, 68, 78, 103, 66, 73, 103, 67, 69, 105, 67, 66, 105, 67, 64, 105, 68, 62, 105, 68, 62, 105, 66, 61, 104, 67, 61, 107, 74, 67, 106, 76, 68, 109, 75, 66, 110, 73, 64, 111, 73, 64, 114, 74, 64, 122, 78, 69, 125, 81, 72, 126, 81, 75, 125, 82, 75, 126, 82, 79, 125, 86, 81, 128, 90, 89, 132, 98, 96, 138, 104, 105, 138, 108, 106, 135, 107, 103, 135, 110, 103, 138, 113, 106, 138, 115, 107, 139, 116, 110, 139, 120, 113, 140, 125, 118, 139, 130, 123, 164, 161, 154, 178, 179, 173, 187, 189, 186, 184, 188, 187, 194, 198, 201, 218, 221, 226, 235, 235, 243, 235, 238, 245, 235, 238, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 235, 240, 244, 235, 240, 244, 236, 241, 245, 236, 241, 245, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 250, 239, 244, 250, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 228, 233, 239, 228, 233, 239, 228, 233, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 224, 231, 239, 222, 229, 237, 221, 228, 236, 221, 226, 232, 220, 225, 229, 222, 223, 228, 213, 213, 215, 201, 196, 200, 190, 181, 182, 177, 165, 167, 159, 145, 145, 138, 122, 122, 122, 106, 106, 112, 98, 98, 114, 102, 104, 114, 102, 104, 110, 98, 100, 109, 94, 97, 103, 88, 91, 85, 70, 73, 66, 51, 54, 57, 42, 45, 54, 39, 42, 55, 39, 42, 59, 43, 46, 60, 44, 47, 58, 42, 45, 60, 44, 47, 65, 49, 50, 73, 57, 57, 80, 64, 64, 91, 75, 75, 100, 84, 84, 105, 87, 87, 101, 83, 83, 95, 77, 75, 90, 72, 70, 97, 79, 77, 97, 79, 77, 101, 81, 80, 105, 85, 84, 108, 89, 85, 110, 91, 87, 109, 90, 86, 107, 88, 84, 107, 86, 83, 106, 85, 82, 105, 84, 81, 105, 84, 81, 105, 84, 81, 105, 84, 81, 106, 85, 82, 107, 86, 83, 106, 85, 82, 111, 90, 87, 110, 89, 86, 102, 81, 78, 99, 78, 75, 105, 84, 81, 109, 88, 85, 107, 86, 83, 115, 91, 87, 110, 85, 81, 102, 77, 73, 97, 72, 68, 95, 71, 67, 97, 73, 69, 100, 76, 72, 101, 77, 73, 93, 69, 65, 79, 55, 51, 69, 48, 43, 75, 54, 49, 82, 61, 56, 80, 59, 54, 75, 54, 49, 74, 53, 48, 80, 56, 52, 69, 46, 40, 69, 45, 41, 82, 61, 56, 93, 69, 65, 87, 66, 63, 81, 60, 57, 81, 60, 57, 79, 58, 57, 70, 50, 49, 69, 49, 48, 90, 70, 69, 121, 101, 102, 130, 110, 111, 103, 83, 85, 69, 49, 50, 98, 80, 78, 103, 88, 83, 101, 86, 81, 96, 83, 77, 101, 87, 84, 104, 93, 89, 116, 105, 101, 134, 125, 120, 156, 148, 145, 160, 155, 152, 168, 164, 161, 174, 173, 169, 181, 180, 178, 186, 186, 184, 192, 192, 190, 195, 197, 196, 198, 201, 206, 202, 207, 213, 211, 216, 222, 219, 224, 230, 225, 230, 236, 227, 232, 238, 226, 231, 237, 225, 230, 236, 228, 233, 239, 228, 233, 239, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 242, 243, 248, 242, 243, 248, 242, 243, 248, 242, 243, 248, 242, 243, 248, 242, 243, 248, 242, 243, 248, 242, 243, 248, 242, 243, 248, 242, 243, 248, 242, 243, 248, 242, 243, 248, 242, 243, 248, 242, 243, 248, 242, 243, 248, 242, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 236, 241, 245, 236, 241, 245, 235, 240, 246, 234, 239, 245, 234, 239, 245, 233, 238, 244, 232, 237, 243, 231, 236, 242, 231, 236, 242, 230, 235, 241, 237, 242, 248, 228, 233, 239, 219, 224, 230, 217, 222, 228, 220, 225, 231, 221, 226, 232, 215, 220, 226, 210, 213, 218, 192, 193, 197, 187, 187, 187, 166, 162, 161, 153, 148, 144, 155, 148, 142, 135, 126, 119, 108, 99, 90, 107, 98, 91, 86, 79, 73, 79, 71, 68, 54, 49, 46, 34, 28, 28, 38, 29, 30, 48, 39, 40, 53, 43, 44, 54, 44, 45, 40, 30, 29, 35, 25, 24, 33, 23, 22, 28, 18, 17, 26, 15, 13, 41, 30, 28, 53, 42, 40, 49, 38, 36, 41, 30, 28, 26, 15, 13, 30, 16, 13, 51, 37, 34, 69, 55, 52, 75, 61, 58, 60, 46, 43, 36, 22, 19, 32, 21, 17, 25, 14, 10, 30, 19, 15, 93, 82, 78, 129, 115, 112, 74, 60, 57, 43, 28, 25, 70, 55, 52, 58, 40, 38, 64, 46, 44, 75, 57, 55, 83, 65, 63, 82, 62, 61, 71, 51, 50, 65, 45, 44, 64, 44, 43, 67, 46, 45, 62, 41, 40, 58, 37, 36, 59, 38, 37, 64, 43, 42, 71, 50, 49, 75, 54, 53, 76, 55, 54, 66, 45, 44, 68, 47, 46, 74, 53, 52, 80, 59, 58, 81, 60, 59, 80, 59, 58, 85, 64, 63, 92, 72, 71, 105, 85, 84, 103, 83, 82, 98, 78, 77, 92, 72, 71, 85, 65, 64, 79, 59, 58, 76, 55, 52, 73, 52, 49, 66, 45, 42, 55, 34, 31, 49, 28, 25, 61, 37, 35, 79, 55, 51, 88, 64, 60, 80, 56, 52, 69, 45, 41, 59, 36, 30, 54, 31, 25, 50, 25, 18, 47, 22, 15, 47, 22, 15, 48, 23, 16, 50, 23, 16, 49, 22, 15, 51, 22, 14, 52, 23, 15, 56, 26, 18, 59, 29, 21, 63, 33, 25, 67, 37, 29, 71, 38, 29, 73, 40, 31, 74, 41, 32, 73, 41, 30, 72, 38, 28, 70, 36, 26, 71, 34, 25, 71, 34, 25, 73, 35, 26, 74, 36, 27, 76, 35, 29, 80, 39, 33, 83, 44, 39, 86, 47, 42, 88, 48, 46, 91, 51, 51, 95, 56, 57, 96, 60, 62, 104, 68, 78, 105, 71, 85, 109, 75, 89, 113, 79, 95, 114, 77, 94, 111, 75, 89, 107, 69, 84, 104, 66, 77, 106, 67, 72, 107, 68, 69, 108, 70, 69, 109, 71, 68, 110, 71, 66, 110, 71, 64, 109, 70, 65, 107, 70, 64, 110, 77, 70, 109, 79, 71, 113, 79, 70, 114, 77, 68, 114, 76, 67, 117, 77, 67, 124, 80, 71, 128, 84, 75, 128, 83, 77, 127, 84, 77, 127, 83, 80, 126, 87, 82, 130, 92, 91, 133, 99, 97, 139, 105, 106, 140, 110, 108, 137, 110, 103, 136, 112, 102, 134, 110, 100, 132, 110, 99, 137, 114, 106, 143, 124, 117, 146, 133, 125, 144, 135, 128, 164, 161, 154, 179, 180, 174, 186, 188, 185, 179, 183, 182, 187, 191, 194, 213, 217, 220, 233, 234, 239, 232, 235, 240, 235, 238, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 235, 240, 244, 235, 240, 244, 236, 241, 245, 236, 241, 245, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 250, 239, 244, 250, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 228, 233, 239, 228, 233, 239, 228, 233, 239, 223, 230, 238, 223, 230, 238, 223, 230, 236, 223, 230, 236, 222, 229, 235, 220, 227, 233, 220, 224, 233, 219, 224, 230, 214, 217, 222, 207, 206, 211, 197, 193, 194, 191, 182, 183, 183, 171, 171, 169, 155, 154, 148, 130, 130, 128, 112, 112, 101, 87, 87, 99, 87, 89, 96, 84, 86, 94, 82, 84, 100, 85, 88, 97, 82, 85, 76, 61, 64, 50, 35, 38, 51, 36, 39, 43, 28, 31, 44, 28, 31, 56, 40, 43, 64, 48, 51, 63, 47, 50, 66, 50, 53, 74, 58, 59, 89, 71, 71, 87, 71, 71, 89, 71, 71, 90, 72, 72, 91, 73, 73, 92, 74, 74, 94, 74, 73, 93, 75, 73, 98, 78, 77, 97, 77, 76, 98, 78, 77, 101, 81, 80, 106, 85, 82, 107, 88, 84, 107, 86, 83, 106, 85, 82, 107, 86, 83, 106, 82, 80, 102, 78, 76, 97, 73, 71, 94, 70, 68, 93, 69, 67, 93, 69, 67, 93, 69, 67, 95, 71, 69, 103, 79, 77, 105, 81, 79, 99, 75, 73, 97, 73, 71, 103, 79, 77, 104, 80, 78, 99, 75, 73, 96, 71, 67, 95, 70, 66, 94, 69, 65, 91, 66, 62, 86, 62, 58, 82, 58, 54, 79, 55, 51, 77, 53, 49, 73, 49, 45, 69, 45, 41, 71, 47, 43, 75, 54, 49, 76, 52, 48, 68, 47, 42, 72, 48, 44, 80, 56, 52, 90, 65, 60, 97, 72, 67, 88, 65, 59, 69, 46, 40, 67, 43, 39, 79, 55, 51, 80, 56, 54, 67, 43, 41, 72, 51, 50, 70, 49, 48, 65, 44, 43, 59, 38, 37, 65, 44, 43, 83, 61, 63, 101, 79, 81, 109, 89, 90, 87, 69, 67, 73, 55, 51, 67, 52, 47, 88, 73, 68, 104, 90, 87, 91, 77, 74, 81, 67, 64, 92, 81, 77, 138, 128, 126, 146, 138, 135, 160, 152, 149, 170, 165, 161, 179, 174, 171, 183, 180, 175, 188, 184, 181, 189, 188, 186, 186, 187, 189, 191, 195, 198, 204, 208, 211, 216, 219, 224, 225, 228, 233, 228, 231, 236, 228, 231, 238, 226, 231, 237, 228, 233, 239, 228, 233, 239, 229, 233, 242, 227, 234, 240, 227, 234, 240, 228, 235, 241, 228, 235, 241, 228, 235, 241, 230, 235, 241, 230, 235, 241, 232, 235, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 242, 243, 248, 242, 243, 248, 242, 243, 248, 242, 243, 248, 242, 243, 248, 242, 243, 248, 242, 243, 248, 242, 243, 248, 242, 243, 248, 242, 243, 248, 242, 243, 248, 242, 243, 248, 242, 243, 248, 242, 243, 248, 242, 243, 248, 242, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 236, 241, 245, 236, 241, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 232, 237, 243, 231, 236, 242, 231, 236, 242, 230, 235, 241, 237, 242, 248, 226, 231, 237, 216, 221, 227, 213, 218, 224, 217, 222, 228, 217, 222, 226, 211, 216, 220, 204, 208, 211, 190, 190, 192, 189, 188, 186, 163, 159, 156, 151, 146, 142, 159, 152, 146, 132, 123, 116, 103, 94, 87, 114, 105, 98, 87, 80, 74, 81, 73, 70, 59, 51, 49, 45, 36, 37, 52, 43, 44, 57, 48, 49, 57, 47, 48, 60, 50, 49, 36, 26, 25, 45, 35, 34, 43, 33, 32, 23, 13, 12, 19, 8, 6, 45, 34, 32, 57, 46, 44, 38, 27, 25, 38, 27, 25, 32, 21, 19, 58, 47, 43, 79, 68, 64, 61, 47, 44, 40, 29, 25, 41, 27, 24, 34, 23, 19, 30, 19, 15, 34, 23, 19, 64, 53, 49, 145, 134, 130, 100, 86, 83, 26, 12, 9, 70, 55, 52, 60, 45, 42, 84, 66, 64, 83, 65, 63, 76, 58, 56, 63, 45, 43, 57, 37, 36, 59, 39, 38, 62, 42, 41, 61, 41, 40, 68, 48, 47, 64, 44, 43, 63, 42, 41, 69, 49, 48, 80, 59, 58, 86, 66, 65, 86, 65, 64, 81, 61, 60, 90, 69, 68, 90, 70, 69, 95, 74, 73, 95, 75, 74, 92, 71, 70, 89, 69, 68, 99, 78, 77, 109, 89, 88, 107, 87, 86, 102, 82, 81, 96, 76, 75, 92, 72, 71, 89, 69, 68, 86, 66, 65, 84, 63, 60, 81, 60, 57, 63, 42, 39, 72, 51, 48, 88, 64, 62, 96, 72, 70, 94, 70, 66, 80, 56, 52, 62, 38, 34, 50, 26, 22, 56, 32, 28, 52, 29, 23, 48, 23, 18, 46, 21, 14, 47, 22, 15, 49, 24, 17, 52, 25, 18, 52, 25, 18, 67, 38, 32, 67, 38, 30, 68, 38, 30, 68, 38, 30, 69, 39, 31, 69, 39, 31, 71, 38, 31, 71, 38, 29, 72, 39, 30, 70, 37, 28, 68, 34, 25, 66, 32, 22, 67, 30, 21, 68, 31, 22, 69, 32, 23, 72, 34, 25, 75, 36, 29, 79, 40, 33, 83, 44, 39, 85, 47, 44, 87, 48, 49, 88, 52, 54, 93, 57, 59, 95, 60, 66, 103, 70, 81, 105, 73, 86, 110, 78, 91, 114, 80, 94, 113, 79, 93, 112, 76, 90, 106, 70, 82, 104, 67, 75, 108, 69, 74, 109, 70, 71, 111, 73, 72, 112, 75, 69, 112, 75, 67, 112, 75, 67, 112, 73, 66, 111, 74, 66, 106, 73, 64, 111, 78, 69, 118, 84, 75, 123, 86, 78, 123, 85, 76, 122, 82, 74, 122, 79, 72, 122, 79, 73, 128, 85, 79, 128, 85, 79, 126, 85, 81, 127, 87, 85, 129, 94, 92, 134, 100, 99, 138, 106, 107, 142, 111, 109, 138, 107, 104, 136, 107, 101, 129, 104, 97, 127, 104, 98, 131, 112, 105, 142, 128, 119, 150, 137, 129, 149, 140, 133, 167, 159, 156, 182, 179, 174, 186, 187, 181, 177, 179, 174, 182, 187, 183, 209, 213, 214, 228, 231, 236, 230, 233, 240, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 243, 235, 240, 244, 235, 240, 244, 236, 241, 245, 234, 242, 245, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 250, 239, 244, 250, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 242, 251, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 238, 238, 246, 238, 238, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 228, 235, 241, 224, 233, 238, 225, 234, 239, 226, 234, 237, 225, 233, 236, 226, 231, 235, 224, 229, 235, 222, 226, 235, 221, 225, 234, 209, 212, 219, 205, 206, 210, 195, 193, 194, 181, 176, 173, 162, 153, 148, 144, 130, 127, 129, 111, 109, 118, 100, 100, 102, 90, 90, 90, 80, 79, 80, 68, 68, 76, 64, 64, 78, 66, 66, 76, 64, 64, 69, 55, 55, 60, 46, 46, 56, 40, 41, 54, 38, 39, 57, 38, 40, 59, 40, 42, 61, 42, 44, 65, 46, 48, 77, 58, 60, 90, 71, 73, 89, 69, 70, 91, 73, 71, 94, 74, 73, 91, 71, 70, 86, 66, 65, 83, 63, 62, 85, 64, 63, 87, 67, 66, 87, 66, 65, 84, 63, 62, 80, 59, 58, 78, 57, 56, 80, 56, 56, 83, 62, 61, 90, 66, 66, 94, 70, 70, 99, 73, 72, 100, 74, 73, 101, 75, 74, 103, 77, 76, 105, 79, 78, 107, 81, 80, 108, 82, 81, 109, 83, 82, 94, 68, 67, 94, 68, 67, 93, 67, 66, 92, 66, 65, 91, 65, 64, 88, 62, 61, 86, 60, 59, 85, 59, 58, 88, 63, 59, 86, 61, 56, 85, 60, 55, 87, 62, 57, 89, 64, 59, 86, 61, 56, 79, 54, 49, 73, 48, 43, 73, 48, 43, 75, 50, 45, 78, 53, 48, 80, 57, 51, 83, 58, 53, 83, 60, 54, 83, 58, 53, 83, 58, 53, 86, 61, 56, 89, 64, 59, 87, 64, 58, 82, 59, 53, 80, 56, 52, 80, 56, 52, 76, 52, 48, 71, 47, 43, 65, 44, 41, 58, 37, 34, 54, 33, 30, 55, 34, 31, 53, 32, 29, 54, 33, 32, 70, 50, 49, 92, 72, 71, 114, 96, 94, 103, 88, 85, 85, 70, 67, 67, 52, 49, 60, 45, 42, 71, 57, 54, 97, 83, 80, 118, 104, 101, 114, 103, 99, 128, 117, 113, 141, 130, 126, 158, 149, 144, 173, 163, 161, 168, 159, 154, 172, 162, 160, 194, 186, 183, 188, 185, 180, 187, 186, 182, 188, 187, 185, 192, 190, 191, 203, 203, 205, 220, 219, 224, 230, 231, 236, 230, 233, 240, 226, 230, 239, 227, 231, 240, 226, 233, 243, 225, 234, 241, 222, 233, 239, 221, 232, 238, 223, 234, 238, 227, 236, 241, 230, 235, 239, 231, 234, 239, 234, 235, 240, 232, 235, 240, 232, 235, 240, 233, 236, 241, 233, 236, 243, 233, 236, 243, 231, 236, 242, 232, 237, 243, 232, 236, 245, 232, 236, 245, 231, 238, 246, 231, 238, 246, 231, 238, 246, 232, 239, 247, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 236, 239, 244, 237, 240, 245, 240, 243, 248, 242, 245, 250, 242, 245, 250, 241, 244, 249, 239, 242, 247, 238, 241, 246, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 233, 241, 244, 233, 241, 244, 233, 240, 246, 232, 239, 245, 232, 237, 243, 230, 235, 241, 228, 232, 241, 226, 230, 239, 225, 230, 236, 230, 235, 241, 225, 228, 233, 213, 216, 221, 211, 214, 219, 215, 219, 222, 206, 210, 213, 191, 192, 194, 173, 172, 168, 180, 177, 172, 168, 163, 159, 169, 164, 158, 147, 140, 134, 103, 96, 90, 97, 90, 84, 98, 91, 85, 49, 39, 37, 77, 67, 65, 61, 51, 49, 43, 33, 32, 65, 55, 54, 69, 59, 58, 53, 43, 42, 61, 51, 50, 45, 35, 34, 28, 18, 16, 16, 6, 4, 20, 10, 8, 28, 18, 16, 33, 23, 21, 39, 29, 27, 46, 36, 34, 44, 34, 32, 62, 52, 50, 53, 43, 41, 49, 39, 37, 54, 43, 41, 53, 43, 41, 55, 44, 42, 41, 31, 29, 34, 25, 20, 44, 35, 30, 124, 115, 110, 111, 102, 97, 50, 39, 35, 56, 45, 41, 64, 50, 47, 68, 53, 50, 68, 50, 48, 66, 48, 46, 60, 40, 39, 54, 34, 33, 58, 37, 36, 68, 47, 46, 74, 53, 52, 73, 53, 52, 75, 56, 52, 72, 54, 50, 71, 52, 48, 74, 56, 52, 82, 63, 59, 89, 71, 67, 95, 76, 72, 95, 77, 73, 91, 71, 70, 93, 75, 73, 89, 69, 68, 77, 59, 57, 80, 60, 61, 92, 74, 74, 100, 80, 81, 98, 78, 79, 108, 88, 89, 95, 75, 76, 82, 62, 63, 79, 59, 60, 80, 60, 59, 81, 61, 60, 83, 63, 62, 86, 66, 65, 101, 80, 77, 94, 73, 70, 81, 60, 57, 68, 47, 44, 59, 35, 33, 53, 29, 27, 50, 26, 24, 49, 25, 21, 55, 31, 27, 56, 32, 28, 59, 35, 31, 63, 40, 34, 69, 44, 39, 74, 49, 44, 79, 54, 49, 81, 56, 51, 71, 43, 39, 68, 41, 34, 65, 36, 30, 62, 33, 27, 62, 31, 26, 63, 32, 27, 66, 35, 30, 67, 37, 29, 63, 30, 23, 63, 30, 23, 64, 31, 24, 65, 32, 23, 67, 33, 23, 68, 34, 24, 69, 35, 23, 72, 35, 26, 77, 40, 32, 76, 41, 35, 78, 43, 39, 81, 47, 46, 87, 52, 56, 90, 58, 63, 95, 62, 71, 97, 66, 74, 103, 73, 83, 103, 76, 85, 108, 78, 88, 110, 80, 90, 111, 79, 90, 110, 77, 86, 109, 73, 83, 107, 72, 79, 109, 73, 77, 107, 71, 71, 104, 69, 67, 102, 67, 61, 101, 67, 58, 101, 67, 57, 104, 67, 58, 103, 69, 57, 106, 72, 60, 110, 74, 62, 112, 75, 66, 114, 75, 68, 115, 76, 71, 118, 79, 74, 124, 83, 81, 127, 86, 84, 126, 86, 84, 129, 89, 87, 132, 94, 91, 133, 98, 96, 135, 101, 99, 136, 105, 103, 140, 108, 109, 146, 112, 113, 149, 110, 111, 147, 111, 111, 131, 103, 102, 119, 100, 96, 129, 116, 110, 139, 130, 123, 146, 135, 131, 153, 142, 140, 170, 158, 160, 181, 171, 170, 188, 184, 175, 176, 176, 164, 169, 172, 161, 193, 200, 193, 226, 231, 237, 233, 239, 251, 234, 238, 249, 236, 239, 248, 235, 239, 248, 234, 239, 245, 231, 238, 244, 231, 239, 242, 234, 242, 245, 235, 245, 246, 236, 244, 246, 236, 244, 246, 236, 244, 246, 236, 244, 246, 238, 243, 247, 238, 243, 247, 239, 242, 249, 239, 242, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 238, 238, 246, 238, 238, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 231, 238, 244, 231, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 228, 235, 241, 225, 234, 239, 224, 235, 237, 226, 234, 237, 225, 233, 235, 226, 231, 235, 224, 229, 235, 223, 227, 236, 221, 225, 234, 214, 217, 226, 209, 210, 214, 196, 196, 196, 180, 177, 172, 161, 152, 147, 142, 129, 123, 127, 109, 107, 117, 99, 97, 110, 98, 98, 94, 84, 83, 74, 62, 62, 60, 48, 48, 55, 43, 43, 54, 42, 42, 54, 40, 40, 52, 38, 38, 58, 42, 43, 59, 43, 44, 67, 48, 50, 73, 54, 56, 74, 55, 57, 73, 54, 56, 79, 59, 61, 87, 67, 68, 83, 63, 64, 87, 67, 66, 91, 71, 70, 91, 71, 70, 91, 70, 69, 91, 70, 69, 95, 74, 73, 99, 78, 77, 92, 71, 70, 92, 71, 70, 93, 69, 69, 94, 70, 70, 94, 70, 70, 95, 71, 71, 95, 71, 71, 96, 72, 72, 93, 67, 66, 97, 69, 68, 100, 72, 71, 104, 76, 75, 108, 80, 79, 112, 84, 83, 115, 87, 86, 117, 89, 88, 127, 99, 98, 126, 98, 97, 124, 96, 95, 120, 92, 91, 115, 87, 86, 110, 82, 81, 106, 78, 77, 103, 75, 74, 92, 67, 63, 90, 65, 60, 89, 64, 59, 91, 66, 61, 93, 68, 63, 92, 67, 62, 87, 62, 57, 82, 57, 52, 83, 58, 53, 81, 56, 51, 77, 52, 47, 74, 49, 44, 72, 47, 42, 70, 45, 40, 70, 45, 40, 70, 45, 40, 66, 41, 36, 74, 49, 44, 80, 57, 51, 81, 58, 52, 81, 57, 53, 80, 56, 52, 74, 50, 46, 66, 42, 38, 70, 49, 46, 66, 45, 42, 62, 41, 38, 61, 40, 37, 57, 36, 33, 53, 32, 29, 54, 35, 31, 59, 40, 36, 60, 42, 40, 103, 88, 85, 137, 122, 119, 113, 98, 95, 56, 41, 38, 25, 10, 7, 46, 32, 29, 84, 70, 67, 110, 96, 93, 110, 96, 93, 101, 87, 84, 113, 99, 96, 145, 134, 130, 166, 155, 151, 165, 154, 150, 165, 156, 151, 180, 173, 165, 181, 176, 170, 183, 178, 174, 184, 180, 177, 193, 189, 190, 206, 204, 207, 216, 215, 221, 218, 218, 226, 223, 226, 235, 225, 229, 238, 226, 233, 241, 226, 235, 242, 224, 235, 241, 222, 235, 241, 223, 237, 240, 228, 237, 242, 230, 235, 239, 231, 234, 239, 233, 234, 239, 232, 235, 240, 232, 235, 240, 232, 235, 240, 233, 236, 243, 233, 236, 243, 231, 236, 242, 231, 236, 242, 232, 236, 245, 232, 236, 245, 231, 238, 246, 231, 238, 246, 231, 238, 246, 231, 238, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 236, 239, 244, 238, 241, 246, 240, 243, 248, 241, 244, 249, 242, 245, 250, 241, 244, 249, 239, 242, 247, 238, 241, 246, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 232, 240, 243, 232, 240, 243, 232, 239, 245, 232, 239, 245, 233, 238, 244, 231, 236, 242, 229, 233, 242, 228, 232, 241, 224, 229, 235, 229, 234, 240, 225, 228, 233, 212, 215, 220, 206, 210, 213, 207, 211, 214, 198, 202, 203, 185, 187, 186, 178, 175, 170, 176, 171, 165, 170, 165, 159, 153, 148, 142, 128, 121, 115, 97, 90, 84, 76, 68, 65, 75, 67, 64, 64, 54, 52, 62, 52, 50, 51, 41, 39, 58, 48, 46, 73, 63, 62, 57, 47, 46, 41, 31, 30, 56, 46, 45, 48, 38, 36, 33, 23, 21, 23, 13, 11, 25, 15, 13, 29, 19, 17, 32, 22, 20, 38, 28, 26, 46, 36, 34, 40, 30, 28, 39, 29, 27, 58, 48, 46, 65, 55, 53, 48, 38, 36, 35, 25, 23, 35, 25, 23, 38, 28, 26, 30, 21, 16, 110, 101, 96, 121, 112, 107, 80, 71, 66, 63, 52, 48, 55, 44, 40, 56, 42, 39, 60, 45, 42, 54, 36, 34, 59, 41, 39, 63, 43, 42, 65, 45, 44, 71, 50, 49, 76, 55, 54, 76, 55, 54, 70, 50, 49, 65, 46, 42, 71, 53, 49, 79, 61, 57, 84, 66, 62, 84, 66, 62, 83, 65, 61, 84, 66, 62, 85, 67, 63, 73, 55, 53, 74, 56, 54, 71, 53, 51, 67, 49, 47, 69, 51, 51, 78, 60, 60, 84, 66, 66, 85, 67, 67, 84, 64, 65, 77, 57, 58, 72, 52, 53, 73, 53, 54, 78, 58, 57, 85, 65, 64, 94, 74, 73, 101, 81, 80, 91, 70, 67, 85, 64, 61, 76, 55, 52, 68, 47, 44, 66, 42, 40, 67, 43, 41, 70, 46, 44, 73, 49, 47, 68, 44, 40, 76, 52, 48, 86, 62, 58, 93, 69, 65, 91, 66, 61, 80, 55, 50, 65, 40, 35, 55, 30, 25, 61, 33, 29, 59, 31, 27, 57, 28, 22, 55, 26, 20, 56, 25, 20, 58, 27, 22, 60, 29, 24, 62, 31, 26, 63, 30, 25, 63, 30, 25, 64, 31, 24, 65, 32, 25, 68, 34, 25, 69, 35, 25, 70, 36, 26, 71, 37, 27, 76, 42, 33, 77, 44, 37, 80, 46, 44, 83, 51, 52, 88, 57, 62, 94, 63, 71, 97, 67, 77, 98, 70, 82, 101, 74, 83, 102, 76, 85, 106, 79, 88, 108, 81, 90, 111, 80, 88, 109, 78, 86, 109, 74, 81, 107, 72, 78, 107, 71, 75, 105, 69, 69, 102, 67, 65, 100, 65, 59, 98, 64, 55, 99, 65, 55, 100, 66, 54, 100, 66, 54, 106, 70, 56, 109, 73, 59, 112, 74, 65, 114, 75, 68, 115, 75, 73, 117, 77, 77, 122, 82, 83, 125, 85, 86, 126, 88, 87, 129, 91, 90, 131, 96, 94, 133, 99, 97, 135, 101, 100, 136, 105, 103, 140, 110, 110, 146, 112, 113, 155, 114, 118, 154, 115, 118, 135, 106, 108, 124, 106, 104, 134, 125, 118, 146, 139, 133, 151, 141, 139, 156, 144, 144, 169, 154, 159, 181, 167, 167, 187, 177, 168, 175, 169, 155, 164, 165, 149, 187, 193, 183, 219, 226, 232, 229, 235, 247, 234, 238, 249, 236, 239, 248, 236, 240, 249, 235, 240, 246, 232, 239, 245, 232, 240, 243, 234, 244, 246, 236, 246, 247, 235, 245, 246, 235, 245, 246, 236, 244, 246, 236, 244, 246, 238, 243, 247, 238, 243, 247, 239, 242, 249, 239, 242, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 238, 238, 246, 238, 238, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 231, 238, 244, 231, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 228, 235, 241, 225, 234, 239, 224, 235, 237, 226, 234, 237, 226, 234, 236, 226, 231, 235, 225, 230, 236, 223, 227, 236, 222, 226, 235, 220, 223, 232, 213, 214, 218, 198, 198, 198, 177, 176, 171, 158, 151, 145, 137, 126, 120, 122, 107, 104, 112, 97, 94, 99, 87, 87, 86, 76, 75, 72, 60, 60, 60, 48, 48, 57, 45, 45, 61, 49, 49, 68, 54, 54, 71, 57, 57, 67, 51, 52, 69, 53, 54, 78, 59, 61, 86, 67, 69, 86, 67, 69, 82, 63, 65, 83, 63, 65, 87, 67, 68, 80, 60, 61, 83, 63, 62, 87, 67, 66, 89, 69, 68, 91, 70, 69, 93, 72, 71, 97, 76, 75, 100, 79, 78, 93, 72, 71, 96, 75, 74, 102, 78, 78, 104, 80, 80, 104, 80, 80, 101, 77, 77, 96, 72, 72, 93, 69, 69, 97, 71, 70, 97, 71, 70, 98, 72, 71, 99, 73, 72, 99, 73, 72, 100, 74, 73, 101, 75, 74, 101, 75, 74, 112, 86, 85, 112, 86, 85, 112, 86, 85, 111, 85, 84, 109, 83, 82, 107, 81, 80, 104, 78, 77, 103, 77, 76, 102, 77, 73, 100, 75, 71, 99, 74, 70, 99, 74, 70, 102, 77, 73, 102, 77, 73, 101, 76, 72, 99, 74, 70, 95, 70, 66, 89, 64, 60, 80, 55, 51, 71, 46, 42, 64, 39, 35, 61, 36, 32, 60, 35, 31, 60, 35, 31, 81, 56, 51, 82, 57, 52, 79, 54, 49, 75, 50, 45, 76, 52, 48, 85, 61, 57, 91, 67, 63, 92, 68, 64, 73, 52, 49, 73, 52, 49, 70, 49, 46, 68, 47, 44, 69, 48, 45, 66, 45, 42, 54, 33, 30, 40, 21, 17, 65, 47, 45, 79, 61, 59, 96, 78, 76, 105, 87, 85, 97, 82, 79, 79, 64, 61, 58, 43, 40, 45, 30, 27, 68, 54, 51, 83, 69, 66, 85, 71, 68, 86, 72, 69, 108, 94, 91, 133, 119, 116, 143, 129, 126, 143, 132, 128, 168, 159, 154, 174, 169, 163, 182, 177, 173, 184, 180, 177, 188, 184, 185, 195, 193, 196, 201, 200, 205, 203, 204, 209, 213, 216, 221, 217, 222, 228, 221, 228, 234, 224, 233, 238, 225, 234, 239, 224, 235, 239, 224, 235, 239, 226, 235, 240, 229, 234, 240, 229, 234, 240, 231, 234, 241, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 236, 245, 232, 236, 245, 232, 236, 245, 233, 237, 246, 233, 237, 246, 233, 237, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 237, 240, 245, 238, 241, 246, 239, 242, 247, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 239, 242, 247, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 231, 239, 242, 231, 239, 242, 233, 238, 244, 233, 238, 244, 233, 238, 244, 231, 236, 242, 230, 235, 241, 229, 234, 240, 224, 227, 234, 229, 232, 239, 224, 227, 232, 210, 213, 218, 203, 204, 208, 198, 199, 201, 189, 190, 192, 177, 177, 177, 173, 170, 165, 165, 160, 154, 177, 172, 166, 144, 139, 133, 125, 118, 112, 121, 114, 108, 87, 79, 76, 84, 76, 73, 84, 74, 72, 47, 37, 35, 44, 34, 32, 77, 67, 65, 79, 69, 68, 43, 33, 32, 33, 23, 22, 55, 45, 44, 49, 39, 37, 40, 30, 28, 32, 22, 20, 29, 19, 17, 28, 18, 16, 29, 19, 17, 35, 25, 23, 43, 33, 31, 41, 31, 29, 25, 15, 13, 61, 51, 49, 62, 52, 50, 36, 26, 24, 29, 19, 17, 19, 9, 7, 31, 21, 19, 73, 64, 59, 143, 134, 129, 92, 81, 77, 57, 46, 42, 69, 55, 52, 54, 40, 37, 59, 44, 41, 49, 34, 31, 49, 31, 29, 57, 39, 37, 66, 46, 45, 70, 50, 49, 73, 52, 51, 75, 54, 53, 71, 50, 49, 64, 44, 43, 52, 33, 29, 61, 43, 39, 70, 52, 48, 71, 53, 49, 65, 47, 43, 62, 44, 40, 65, 47, 43, 71, 53, 49, 83, 65, 63, 83, 65, 63, 89, 71, 69, 97, 79, 77, 101, 83, 83, 99, 81, 81, 99, 81, 81, 101, 83, 83, 102, 82, 83, 100, 80, 81, 95, 75, 76, 91, 71, 72, 87, 67, 66, 88, 68, 67, 93, 73, 72, 97, 77, 76, 90, 69, 66, 86, 65, 62, 79, 58, 55, 73, 52, 49, 73, 49, 47, 75, 51, 49, 78, 54, 52, 81, 57, 55, 85, 61, 57, 84, 60, 56, 81, 57, 53, 75, 51, 47, 68, 43, 38, 58, 33, 28, 49, 24, 19, 44, 19, 14, 54, 26, 22, 52, 24, 20, 52, 23, 17, 51, 22, 16, 53, 22, 17, 55, 24, 19, 58, 27, 22, 59, 28, 23, 61, 30, 25, 61, 30, 25, 65, 32, 25, 66, 33, 26, 69, 35, 26, 70, 36, 26, 71, 37, 27, 72, 38, 28, 76, 43, 34, 78, 45, 40, 83, 49, 47, 87, 55, 56, 92, 61, 66, 99, 68, 76, 102, 72, 82, 103, 75, 87, 102, 75, 84, 102, 76, 85, 106, 79, 88, 107, 80, 89, 110, 79, 87, 109, 78, 86, 109, 74, 81, 108, 73, 79, 105, 69, 73, 103, 67, 67, 102, 64, 63, 100, 63, 57, 98, 61, 53, 99, 62, 53, 98, 64, 52, 98, 64, 52, 104, 68, 54, 106, 70, 56, 111, 73, 64, 113, 74, 67, 114, 74, 72, 117, 77, 77, 121, 81, 82, 124, 84, 85, 128, 90, 89, 131, 93, 92, 133, 98, 96, 135, 101, 99, 137, 103, 102, 137, 106, 104, 140, 110, 110, 145, 113, 114, 153, 117, 119, 151, 117, 118, 133, 107, 108, 126, 108, 106, 140, 129, 123, 151, 144, 138, 152, 144, 141, 154, 144, 143, 168, 153, 158, 178, 164, 164, 184, 171, 162, 168, 159, 144, 156, 153, 136, 181, 183, 172, 215, 219, 222, 227, 231, 242, 234, 237, 246, 236, 239, 248, 237, 241, 250, 237, 242, 248, 233, 240, 246, 234, 242, 245, 235, 245, 247, 237, 247, 249, 235, 245, 246, 235, 245, 246, 236, 244, 247, 236, 244, 247, 238, 243, 247, 238, 243, 247, 239, 242, 249, 239, 242, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 238, 238, 246, 238, 238, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 231, 238, 244, 231, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 228, 235, 241, 225, 234, 239, 225, 234, 239, 227, 235, 238, 226, 234, 236, 227, 232, 236, 225, 230, 236, 223, 227, 236, 222, 226, 235, 224, 227, 236, 214, 218, 221, 198, 200, 199, 176, 175, 170, 155, 148, 142, 133, 122, 116, 118, 103, 100, 108, 93, 90, 107, 95, 95, 102, 92, 91, 95, 83, 83, 87, 75, 75, 80, 68, 68, 75, 63, 63, 75, 61, 61, 75, 61, 61, 78, 62, 63, 76, 60, 61, 79, 60, 62, 83, 64, 66, 83, 64, 66, 81, 62, 64, 84, 64, 66, 88, 68, 69, 80, 60, 61, 81, 61, 60, 83, 63, 62, 84, 64, 63, 87, 66, 65, 88, 67, 66, 90, 69, 68, 91, 70, 69, 92, 71, 70, 94, 73, 72, 100, 76, 76, 101, 77, 77, 100, 76, 76, 97, 73, 73, 92, 68, 68, 89, 65, 65, 95, 69, 68, 95, 69, 68, 94, 68, 67, 93, 67, 66, 91, 65, 64, 90, 64, 63, 89, 63, 62, 89, 63, 62, 90, 64, 63, 90, 64, 63, 91, 65, 64, 92, 66, 65, 92, 66, 65, 92, 66, 65, 91, 65, 64, 90, 64, 63, 101, 76, 72, 99, 74, 70, 98, 73, 69, 98, 73, 69, 100, 75, 71, 102, 77, 73, 103, 78, 74, 104, 79, 75, 101, 76, 72, 97, 72, 68, 89, 64, 60, 81, 56, 52, 73, 48, 44, 69, 44, 40, 66, 41, 37, 65, 40, 36, 76, 51, 46, 74, 49, 44, 67, 42, 37, 60, 35, 30, 60, 36, 32, 69, 45, 41, 77, 53, 49, 80, 56, 52, 70, 49, 46, 71, 50, 47, 68, 47, 44, 68, 47, 44, 78, 57, 54, 86, 65, 62, 74, 53, 50, 54, 35, 31, 56, 36, 35, 60, 42, 40, 68, 50, 48, 80, 62, 60, 88, 73, 70, 94, 79, 76, 93, 78, 75, 91, 76, 73, 62, 48, 45, 75, 61, 58, 78, 64, 61, 72, 58, 55, 75, 61, 58, 94, 80, 77, 118, 104, 101, 133, 122, 118, 132, 123, 118, 147, 140, 134, 163, 155, 152, 170, 165, 162, 176, 170, 170, 185, 181, 182, 193, 191, 194, 197, 197, 199, 202, 203, 207, 207, 211, 214, 215, 220, 224, 220, 228, 231, 223, 230, 236, 223, 232, 237, 224, 233, 238, 224, 233, 238, 226, 233, 239, 227, 234, 240, 229, 233, 242, 229, 234, 240, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 235, 244, 232, 236, 245, 232, 236, 245, 232, 236, 245, 233, 237, 246, 233, 237, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 238, 241, 246, 238, 241, 246, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 229, 237, 240, 230, 238, 241, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 229, 234, 240, 229, 234, 240, 223, 226, 233, 226, 229, 234, 222, 225, 230, 209, 213, 216, 199, 200, 202, 190, 191, 193, 179, 180, 182, 169, 169, 167, 167, 164, 159, 156, 151, 145, 183, 178, 172, 140, 135, 129, 124, 117, 111, 144, 137, 131, 102, 94, 91, 95, 87, 84, 89, 79, 77, 41, 31, 29, 46, 36, 34, 83, 73, 71, 70, 60, 59, 35, 25, 24, 38, 28, 27, 61, 51, 50, 46, 36, 34, 42, 32, 30, 36, 26, 24, 30, 20, 18, 25, 15, 13, 25, 15, 13, 30, 20, 18, 36, 26, 24, 44, 34, 32, 31, 21, 19, 55, 45, 43, 36, 26, 24, 26, 16, 14, 38, 28, 26, 22, 12, 10, 47, 37, 35, 140, 131, 126, 102, 93, 88, 52, 41, 37, 54, 43, 39, 60, 46, 43, 57, 43, 40, 68, 53, 50, 46, 31, 28, 56, 38, 36, 62, 44, 42, 65, 45, 44, 63, 43, 42, 62, 41, 40, 62, 41, 40, 60, 39, 38, 55, 35, 34, 52, 34, 30, 53, 35, 31, 52, 34, 30, 47, 29, 25, 43, 25, 21, 47, 29, 25, 58, 40, 36, 68, 50, 46, 80, 62, 60, 79, 61, 59, 87, 69, 67, 99, 81, 79, 98, 80, 80, 85, 67, 67, 76, 58, 58, 77, 59, 59, 73, 53, 54, 81, 61, 62, 86, 66, 67, 85, 65, 66, 83, 63, 62, 85, 65, 64, 88, 68, 67, 90, 70, 69, 86, 65, 62, 85, 64, 61, 83, 62, 59, 81, 60, 57, 81, 57, 55, 81, 57, 55, 81, 57, 55, 82, 58, 56, 81, 57, 53, 72, 48, 44, 58, 34, 30, 45, 21, 17, 38, 13, 8, 38, 13, 8, 42, 17, 12, 45, 20, 15, 52, 24, 20, 51, 23, 19, 52, 23, 17, 53, 24, 18, 55, 24, 19, 58, 27, 22, 60, 29, 24, 62, 31, 26, 60, 29, 24, 61, 30, 25, 64, 31, 24, 66, 33, 26, 69, 35, 26, 71, 37, 28, 72, 38, 28, 73, 39, 30, 74, 41, 34, 78, 45, 40, 81, 50, 48, 88, 56, 57, 94, 63, 68, 101, 70, 78, 104, 74, 84, 107, 77, 89, 102, 75, 84, 102, 76, 85, 105, 78, 87, 108, 78, 86, 109, 78, 86, 109, 76, 83, 109, 74, 80, 108, 73, 77, 105, 69, 71, 103, 67, 67, 102, 64, 63, 100, 63, 57, 98, 61, 53, 99, 62, 53, 98, 64, 54, 98, 64, 52, 101, 65, 53, 105, 69, 57, 110, 72, 63, 113, 74, 69, 115, 75, 73, 117, 77, 77, 120, 80, 81, 123, 83, 84, 129, 91, 90, 133, 95, 94, 134, 99, 97, 136, 102, 100, 135, 104, 102, 138, 107, 105, 141, 111, 111, 144, 114, 114, 146, 115, 113, 143, 113, 111, 127, 103, 101, 122, 104, 102, 137, 126, 120, 149, 142, 136, 149, 141, 138, 149, 140, 141, 169, 157, 161, 179, 165, 165, 184, 167, 159, 165, 149, 134, 150, 142, 123, 175, 172, 157, 212, 212, 212, 225, 228, 235, 233, 236, 243, 236, 239, 246, 238, 243, 249, 238, 243, 249, 235, 243, 246, 235, 243, 246, 236, 246, 248, 238, 248, 250, 236, 246, 247, 236, 246, 247, 237, 245, 248, 237, 245, 248, 239, 244, 248, 239, 244, 248, 240, 243, 250, 240, 243, 250, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 238, 238, 246, 238, 238, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 231, 238, 244, 231, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 228, 235, 241, 226, 235, 242, 226, 235, 240, 227, 235, 238, 226, 234, 236, 227, 232, 236, 225, 230, 236, 224, 228, 237, 222, 226, 235, 223, 227, 236, 214, 218, 221, 199, 201, 200, 177, 176, 171, 156, 149, 143, 133, 122, 116, 116, 102, 99, 105, 91, 88, 103, 91, 91, 101, 91, 90, 98, 86, 86, 94, 82, 82, 89, 77, 77, 85, 73, 73, 83, 69, 69, 82, 68, 68, 83, 67, 68, 73, 57, 58, 66, 47, 49, 63, 44, 46, 64, 45, 47, 67, 48, 50, 77, 57, 59, 86, 66, 67, 79, 59, 60, 79, 59, 58, 80, 60, 59, 83, 63, 62, 87, 66, 65, 90, 69, 68, 91, 70, 69, 92, 71, 70, 92, 71, 70, 92, 71, 70, 94, 70, 70, 94, 70, 70, 93, 69, 69, 92, 68, 68, 90, 66, 66, 89, 65, 65, 87, 61, 60, 88, 62, 61, 89, 63, 62, 91, 65, 64, 92, 66, 65, 94, 68, 67, 95, 69, 68, 96, 70, 69, 102, 76, 75, 102, 76, 75, 101, 75, 74, 99, 73, 72, 96, 70, 69, 93, 67, 66, 90, 64, 63, 89, 63, 62, 90, 65, 61, 90, 65, 61, 90, 65, 61, 90, 65, 61, 90, 65, 61, 92, 67, 63, 95, 70, 66, 97, 72, 68, 102, 77, 73, 101, 76, 72, 99, 74, 70, 96, 71, 67, 92, 67, 63, 88, 63, 59, 85, 60, 56, 83, 58, 54, 66, 41, 36, 73, 48, 43, 77, 52, 47, 76, 51, 46, 72, 48, 44, 67, 43, 39, 58, 34, 30, 49, 25, 21, 67, 43, 41, 65, 41, 39, 58, 37, 34, 57, 36, 33, 72, 51, 48, 88, 67, 64, 86, 65, 62, 71, 52, 48, 49, 29, 28, 56, 38, 36, 61, 43, 41, 60, 42, 40, 60, 42, 40, 72, 54, 52, 94, 79, 76, 114, 99, 96, 109, 94, 91, 88, 73, 70, 69, 54, 51, 63, 48, 45, 64, 50, 47, 75, 61, 58, 96, 82, 79, 113, 99, 96, 95, 84, 82, 108, 98, 96, 121, 111, 109, 128, 120, 117, 139, 131, 129, 156, 151, 148, 175, 171, 170, 184, 183, 181, 193, 193, 193, 199, 201, 200, 210, 211, 213, 217, 221, 224, 223, 226, 231, 225, 230, 234, 227, 232, 238, 227, 234, 240, 226, 233, 241, 225, 234, 241, 226, 233, 243, 226, 233, 241, 227, 234, 242, 227, 234, 242, 227, 234, 242, 228, 235, 243, 230, 234, 243, 230, 234, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 233, 236, 243, 233, 236, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 241, 244, 249, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 228, 236, 239, 229, 237, 240, 231, 236, 242, 231, 236, 242, 230, 235, 241, 229, 234, 240, 228, 231, 238, 227, 230, 237, 224, 225, 230, 223, 224, 229, 218, 219, 224, 208, 209, 213, 198, 198, 200, 185, 185, 185, 172, 172, 172, 163, 162, 160, 162, 159, 154, 153, 148, 142, 181, 176, 170, 132, 127, 121, 108, 101, 95, 128, 121, 115, 84, 76, 73, 66, 58, 55, 74, 64, 62, 42, 32, 30, 50, 40, 38, 68, 58, 56, 47, 37, 36, 31, 21, 20, 47, 37, 36, 62, 52, 51, 39, 29, 27, 39, 29, 27, 34, 24, 22, 27, 17, 15, 22, 12, 10, 22, 12, 10, 25, 15, 13, 28, 18, 16, 37, 27, 25, 32, 22, 20, 38, 28, 26, 20, 10, 8, 28, 18, 16, 38, 28, 26, 43, 33, 31, 105, 95, 93, 143, 132, 128, 51, 40, 36, 41, 30, 26, 55, 44, 40, 56, 42, 39, 70, 56, 53, 61, 46, 43, 51, 36, 33, 51, 33, 31, 58, 40, 38, 61, 43, 41, 57, 39, 37, 53, 33, 32, 52, 32, 31, 50, 30, 29, 47, 27, 26, 58, 40, 36, 51, 33, 29, 43, 25, 21, 40, 22, 18, 43, 25, 21, 53, 35, 31, 62, 44, 40, 68, 50, 46, 68, 50, 48, 62, 44, 42, 61, 43, 41, 67, 49, 47, 64, 46, 46, 52, 34, 34, 47, 29, 29, 52, 34, 34, 58, 38, 39, 72, 52, 53, 83, 63, 64, 83, 63, 64, 81, 61, 60, 82, 62, 61, 81, 61, 60, 77, 57, 56, 76, 55, 52, 79, 58, 55, 84, 63, 60, 88, 67, 64, 92, 68, 66, 90, 66, 64, 88, 64, 62, 85, 61, 59, 62, 38, 34, 61, 37, 33, 58, 34, 30, 54, 30, 26, 50, 25, 21, 45, 20, 16, 42, 17, 12, 40, 15, 10, 50, 22, 18, 50, 22, 18, 52, 23, 19, 54, 25, 21, 57, 26, 21, 59, 28, 23, 61, 30, 25, 62, 31, 26, 59, 28, 23, 60, 29, 24, 63, 30, 23, 66, 33, 26, 68, 35, 26, 70, 37, 28, 72, 38, 29, 73, 39, 30, 72, 39, 32, 76, 43, 38, 80, 49, 47, 88, 56, 59, 94, 63, 68, 100, 69, 77, 102, 72, 82, 104, 74, 86, 102, 75, 84, 103, 76, 83, 105, 75, 83, 105, 75, 83, 106, 75, 81, 107, 75, 80, 109, 74, 80, 108, 73, 77, 106, 70, 72, 106, 68, 67, 103, 65, 62, 101, 64, 58, 100, 63, 55, 100, 63, 54, 101, 64, 55, 102, 66, 54, 100, 64, 52, 104, 68, 56, 110, 73, 64, 114, 77, 71, 117, 77, 75, 119, 79, 79, 121, 81, 82, 124, 84, 85, 131, 93, 92, 134, 96, 95, 135, 100, 98, 137, 103, 101, 136, 105, 103, 138, 107, 105, 140, 110, 110, 142, 114, 111, 139, 114, 109, 137, 114, 108, 123, 102, 99, 121, 102, 98, 136, 123, 117, 147, 138, 133, 145, 140, 137, 148, 142, 142, 173, 162, 166, 183, 167, 167, 186, 163, 155, 162, 141, 124, 145, 127, 107, 169, 157, 141, 207, 204, 199, 222, 223, 225, 233, 234, 239, 235, 238, 245, 237, 242, 248, 239, 244, 248, 236, 244, 247, 236, 244, 247, 237, 245, 248, 238, 246, 249, 237, 245, 248, 237, 245, 248, 237, 245, 248, 237, 245, 248, 239, 244, 248, 239, 244, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 238, 238, 246, 238, 238, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 231, 238, 244, 231, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 228, 235, 241, 227, 234, 242, 226, 235, 240, 227, 235, 238, 227, 235, 237, 228, 233, 237, 226, 231, 237, 224, 228, 237, 223, 227, 238, 221, 225, 234, 215, 218, 223, 202, 204, 203, 183, 182, 177, 160, 155, 149, 138, 129, 122, 120, 106, 103, 108, 94, 93, 92, 80, 80, 84, 74, 73, 76, 64, 64, 72, 60, 60, 73, 61, 61, 78, 66, 66, 85, 71, 71, 88, 74, 74, 80, 64, 65, 66, 50, 51, 53, 34, 36, 47, 28, 30, 49, 30, 32, 56, 37, 39, 68, 48, 50, 79, 59, 60, 77, 57, 58, 77, 57, 56, 79, 59, 58, 85, 65, 64, 93, 72, 71, 98, 77, 76, 100, 79, 78, 100, 79, 78, 95, 74, 73, 93, 72, 71, 93, 69, 69, 91, 67, 67, 91, 67, 67, 92, 68, 68, 94, 70, 70, 95, 71, 71, 96, 70, 69, 96, 70, 69, 97, 71, 70, 97, 71, 70, 98, 72, 71, 99, 73, 72, 99, 73, 72, 100, 74, 73, 102, 76, 75, 102, 76, 75, 102, 76, 75, 103, 77, 76, 102, 76, 75, 101, 75, 74, 99, 73, 72, 98, 72, 71, 93, 68, 64, 95, 70, 66, 98, 73, 69, 98, 73, 69, 96, 71, 67, 96, 71, 67, 99, 74, 70, 101, 76, 72, 100, 75, 71, 101, 76, 72, 102, 77, 73, 103, 78, 74, 103, 78, 74, 101, 76, 72, 98, 73, 69, 97, 72, 68, 86, 61, 56, 92, 67, 62, 94, 69, 64, 90, 65, 60, 83, 59, 55, 77, 53, 49, 66, 42, 38, 56, 32, 28, 68, 44, 42, 64, 40, 38, 55, 34, 31, 54, 33, 30, 62, 41, 38, 74, 53, 50, 77, 56, 53, 74, 53, 50, 67, 47, 46, 58, 40, 38, 52, 34, 32, 57, 39, 37, 70, 52, 50, 81, 63, 61, 86, 68, 66, 83, 68, 65, 107, 92, 89, 93, 78, 75, 92, 77, 74, 93, 78, 75, 76, 62, 59, 63, 49, 46, 70, 56, 53, 80, 66, 63, 99, 85, 84, 100, 89, 87, 100, 89, 87, 97, 87, 85, 105, 95, 93, 126, 118, 115, 147, 142, 138, 159, 156, 151, 182, 181, 177, 189, 189, 187, 200, 200, 200, 209, 210, 212, 217, 218, 222, 221, 224, 229, 226, 229, 234, 229, 234, 240, 225, 232, 242, 224, 233, 242, 224, 233, 242, 225, 234, 243, 226, 233, 241, 226, 233, 241, 227, 234, 242, 227, 234, 242, 230, 234, 243, 230, 234, 243, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 233, 236, 243, 233, 236, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 241, 244, 249, 242, 245, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 228, 236, 239, 228, 236, 239, 230, 235, 241, 229, 234, 240, 227, 232, 238, 225, 230, 236, 224, 227, 234, 223, 226, 231, 219, 220, 225, 214, 215, 219, 207, 208, 212, 202, 203, 205, 196, 196, 196, 183, 183, 181, 166, 166, 164, 156, 155, 151, 155, 152, 147, 154, 149, 143, 175, 170, 164, 132, 127, 121, 99, 92, 86, 106, 99, 93, 72, 64, 61, 41, 33, 30, 55, 45, 43, 47, 37, 35, 49, 39, 37, 44, 34, 32, 27, 17, 16, 34, 24, 23, 51, 41, 40, 51, 41, 40, 32, 22, 20, 33, 23, 21, 28, 18, 16, 21, 11, 9, 19, 9, 7, 23, 13, 11, 24, 14, 12, 21, 11, 9, 22, 12, 10, 22, 12, 10, 22, 12, 10, 30, 20, 18, 35, 25, 23, 34, 24, 22, 75, 65, 63, 148, 138, 136, 78, 67, 63, 39, 28, 24, 54, 43, 39, 50, 39, 35, 64, 50, 47, 79, 65, 62, 46, 31, 28, 57, 42, 39, 39, 21, 19, 50, 32, 30, 59, 41, 39, 58, 40, 38, 55, 35, 34, 52, 32, 31, 49, 29, 28, 45, 25, 24, 47, 29, 25, 44, 26, 22, 42, 24, 20, 45, 27, 23, 52, 34, 30, 56, 38, 34, 56, 38, 34, 54, 36, 32, 58, 40, 38, 52, 34, 32, 48, 30, 28, 51, 33, 31, 55, 37, 37, 62, 44, 44, 72, 54, 54, 82, 64, 64, 82, 62, 63, 92, 72, 73, 96, 76, 77, 87, 67, 68, 79, 59, 58, 76, 56, 55, 66, 46, 45, 54, 34, 33, 78, 57, 54, 82, 61, 58, 86, 65, 62, 89, 68, 65, 90, 66, 64, 85, 61, 59, 79, 55, 53, 75, 51, 49, 59, 35, 31, 59, 35, 31, 60, 36, 32, 58, 34, 30, 55, 30, 26, 49, 24, 20, 43, 18, 13, 40, 15, 10, 47, 19, 15, 48, 20, 16, 50, 21, 17, 52, 23, 19, 55, 24, 19, 56, 25, 20, 57, 26, 21, 58, 27, 22, 57, 26, 21, 58, 27, 22, 62, 29, 22, 64, 31, 24, 67, 34, 27, 69, 36, 27, 72, 37, 31, 73, 38, 32, 71, 38, 33, 75, 41, 39, 80, 48, 49, 87, 55, 58, 93, 62, 68, 97, 66, 74, 99, 69, 79, 100, 70, 80, 101, 74, 81, 101, 74, 81, 103, 73, 81, 104, 73, 79, 105, 73, 78, 105, 73, 76, 107, 72, 76, 108, 72, 74, 108, 69, 70, 106, 68, 67, 103, 65, 62, 101, 64, 58, 100, 63, 55, 100, 63, 55, 101, 64, 55, 102, 65, 56, 101, 64, 55, 106, 69, 60, 112, 75, 67, 117, 80, 74, 120, 80, 80, 122, 82, 82, 124, 84, 85, 125, 86, 87, 131, 93, 92, 132, 97, 95, 135, 101, 99, 136, 102, 100, 135, 104, 102, 136, 106, 104, 139, 109, 109, 139, 114, 110, 136, 116, 107, 136, 118, 108, 127, 106, 101, 121, 102, 98, 133, 120, 114, 144, 135, 130, 147, 143, 140, 154, 150, 149, 175, 164, 168, 184, 166, 166, 184, 157, 146, 156, 127, 109, 136, 110, 87, 158, 140, 120, 198, 189, 180, 215, 214, 212, 231, 232, 236, 233, 236, 241, 237, 242, 246, 239, 244, 248, 239, 244, 248, 236, 244, 247, 237, 245, 248, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 240, 245, 249, 240, 245, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 238, 238, 246, 238, 238, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 231, 238, 244, 231, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 228, 235, 241, 227, 234, 242, 227, 236, 241, 228, 236, 239, 227, 235, 238, 228, 233, 237, 226, 231, 237, 224, 228, 237, 223, 227, 238, 220, 224, 233, 216, 219, 224, 207, 209, 208, 190, 191, 186, 169, 166, 161, 146, 139, 133, 125, 114, 112, 114, 100, 99, 109, 97, 97, 92, 82, 81, 73, 61, 61, 60, 48, 48, 59, 47, 47, 63, 51, 51, 68, 54, 54, 68, 54, 54, 77, 61, 62, 64, 48, 49, 54, 35, 37, 52, 33, 35, 55, 36, 38, 60, 41, 43, 68, 48, 50, 75, 55, 56, 79, 59, 60, 78, 58, 57, 79, 59, 58, 85, 65, 64, 94, 73, 72, 100, 79, 78, 101, 80, 79, 99, 78, 77, 93, 72, 71, 93, 72, 71, 93, 69, 69, 93, 69, 69, 93, 69, 69, 94, 70, 70, 96, 72, 72, 98, 74, 74, 105, 79, 78, 105, 79, 78, 104, 78, 77, 103, 77, 76, 102, 76, 75, 101, 75, 74, 100, 74, 73, 100, 74, 73, 92, 66, 65, 94, 68, 67, 96, 70, 69, 99, 73, 72, 101, 75, 74, 103, 77, 76, 103, 77, 76, 104, 78, 77, 101, 76, 72, 105, 80, 76, 110, 85, 81, 110, 85, 81, 107, 82, 78, 105, 80, 76, 105, 80, 76, 107, 82, 78, 99, 74, 70, 99, 74, 70, 98, 73, 69, 98, 73, 69, 98, 73, 69, 98, 73, 69, 99, 74, 70, 99, 74, 70, 99, 74, 69, 99, 74, 69, 95, 70, 65, 86, 61, 56, 81, 56, 52, 80, 55, 51, 76, 52, 48, 72, 48, 44, 78, 54, 52, 75, 51, 49, 74, 50, 48, 74, 50, 48, 70, 49, 46, 67, 46, 43, 68, 47, 44, 73, 52, 49, 66, 47, 43, 74, 55, 51, 82, 63, 59, 80, 61, 57, 72, 53, 49, 68, 50, 46, 74, 56, 52, 82, 64, 60, 73, 55, 51, 81, 63, 59, 100, 85, 80, 105, 90, 85, 85, 70, 65, 70, 55, 50, 68, 53, 48, 61, 47, 44, 93, 79, 78, 94, 82, 82, 95, 84, 82, 95, 85, 83, 106, 97, 92, 123, 116, 108, 138, 131, 123, 142, 138, 129, 169, 164, 158, 175, 172, 167, 183, 182, 178, 192, 192, 190, 202, 202, 204, 210, 211, 215, 218, 219, 224, 222, 225, 232, 224, 231, 241, 222, 232, 242, 224, 233, 242, 224, 233, 242, 224, 233, 242, 225, 234, 243, 226, 233, 241, 226, 233, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 232, 235, 240, 232, 235, 240, 233, 236, 241, 233, 236, 241, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 239, 242, 247, 238, 241, 246, 237, 240, 245, 237, 240, 245, 239, 242, 247, 241, 244, 249, 243, 246, 251, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 229, 237, 240, 228, 236, 239, 229, 234, 238, 228, 233, 237, 225, 230, 236, 221, 226, 232, 220, 223, 228, 218, 221, 226, 213, 214, 219, 203, 202, 207, 195, 194, 199, 195, 195, 197, 194, 192, 193, 182, 181, 179, 162, 161, 159, 150, 146, 143, 152, 147, 143, 162, 157, 151, 173, 168, 162, 145, 140, 134, 105, 98, 92, 95, 88, 82, 78, 70, 67, 36, 28, 25, 49, 39, 37, 55, 45, 43, 47, 37, 35, 29, 19, 17, 28, 18, 17, 47, 37, 36, 52, 42, 41, 37, 27, 26, 26, 16, 14, 27, 17, 15, 23, 13, 11, 17, 7, 5, 20, 10, 8, 27, 17, 15, 25, 15, 13, 17, 7, 5, 13, 3, 1, 21, 11, 9, 21, 11, 9, 42, 32, 30, 35, 25, 23, 51, 41, 39, 114, 104, 102, 113, 103, 101, 30, 19, 15, 46, 32, 29, 53, 39, 36, 53, 39, 36, 70, 56, 53, 70, 56, 53, 51, 36, 33, 55, 40, 37, 46, 31, 28, 55, 40, 37, 62, 44, 42, 57, 39, 37, 51, 33, 31, 50, 32, 30, 52, 32, 31, 52, 32, 31, 38, 20, 16, 43, 25, 21, 51, 33, 29, 55, 37, 33, 55, 37, 33, 52, 34, 30, 47, 29, 25, 44, 26, 22, 43, 25, 23, 47, 29, 27, 50, 32, 30, 53, 35, 33, 63, 45, 45, 77, 59, 59, 87, 69, 69, 89, 71, 71, 68, 48, 49, 76, 56, 57, 75, 55, 56, 66, 46, 47, 67, 47, 46, 74, 54, 53, 70, 50, 49, 59, 39, 38, 78, 57, 54, 78, 57, 54, 77, 56, 53, 74, 53, 50, 72, 48, 46, 67, 43, 41, 62, 38, 36, 58, 34, 32, 61, 37, 35, 58, 34, 32, 52, 28, 24, 48, 24, 20, 45, 20, 16, 45, 20, 16, 45, 20, 16, 46, 21, 17, 47, 19, 15, 48, 20, 16, 51, 22, 18, 52, 23, 19, 55, 24, 21, 55, 24, 21, 55, 24, 19, 55, 24, 19, 55, 24, 19, 56, 25, 20, 58, 27, 22, 61, 30, 25, 66, 33, 28, 68, 35, 28, 70, 37, 32, 71, 38, 33, 72, 38, 36, 76, 42, 41, 81, 49, 50, 88, 56, 59, 93, 62, 68, 95, 65, 73, 97, 67, 77, 97, 67, 77, 100, 73, 80, 100, 73, 80, 101, 72, 77, 101, 70, 76, 102, 70, 75, 103, 71, 74, 106, 72, 73, 107, 71, 71, 106, 68, 67, 104, 66, 63, 102, 63, 58, 100, 61, 56, 99, 60, 53, 99, 60, 53, 100, 61, 54, 101, 63, 54, 102, 65, 56, 107, 70, 61, 114, 77, 71, 120, 82, 79, 122, 84, 83, 124, 85, 86, 126, 87, 90, 127, 88, 89, 131, 93, 92, 132, 97, 95, 134, 101, 96, 136, 103, 98, 134, 103, 100, 135, 105, 103, 138, 108, 108, 137, 113, 109, 133, 116, 106, 135, 121, 108, 128, 109, 102, 121, 102, 96, 129, 114, 109, 139, 130, 125, 148, 144, 141, 161, 157, 156, 173, 161, 163, 182, 161, 160, 180, 146, 136, 148, 111, 92, 125, 91, 66, 147, 121, 98, 186, 173, 157, 204, 200, 191, 230, 230, 230, 231, 235, 238, 237, 241, 244, 239, 244, 247, 239, 244, 248, 238, 243, 247, 236, 244, 247, 237, 245, 248, 238, 246, 249, 238, 246, 249, 240, 245, 249, 240, 245, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 238, 238, 246, 238, 238, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 231, 238, 244, 231, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 228, 235, 243, 227, 236, 243, 228, 235, 241, 227, 235, 238, 228, 233, 237, 226, 231, 237, 224, 228, 239, 223, 227, 238, 220, 224, 233, 217, 222, 226, 209, 213, 214, 196, 197, 192, 176, 173, 168, 153, 146, 140, 131, 120, 118, 117, 106, 104, 108, 98, 97, 91, 81, 80, 72, 60, 60, 63, 51, 51, 66, 54, 54, 71, 59, 59, 74, 60, 60, 72, 58, 58, 78, 62, 63, 68, 52, 53, 64, 45, 47, 66, 47, 49, 70, 51, 53, 71, 52, 54, 73, 53, 55, 75, 55, 56, 84, 64, 65, 81, 61, 60, 80, 60, 59, 83, 63, 62, 90, 69, 68, 93, 72, 71, 92, 71, 70, 89, 68, 67, 89, 68, 67, 90, 69, 68, 93, 69, 69, 94, 70, 70, 95, 71, 71, 95, 71, 71, 96, 72, 72, 96, 72, 72, 96, 70, 69, 97, 71, 70, 99, 73, 72, 101, 75, 74, 103, 77, 76, 106, 80, 79, 108, 82, 81, 109, 83, 82, 107, 81, 80, 107, 81, 80, 108, 82, 81, 108, 82, 81, 107, 81, 80, 106, 80, 79, 105, 79, 78, 104, 78, 77, 97, 72, 68, 103, 78, 74, 109, 84, 80, 110, 85, 81, 106, 81, 77, 102, 77, 73, 101, 76, 72, 102, 77, 73, 100, 75, 71, 97, 72, 68, 93, 68, 64, 89, 64, 60, 89, 64, 60, 90, 65, 61, 93, 68, 64, 95, 70, 66, 104, 79, 74, 111, 86, 81, 116, 91, 86, 114, 89, 84, 111, 86, 82, 106, 81, 77, 95, 71, 67, 86, 62, 58, 87, 63, 61, 88, 64, 62, 94, 70, 68, 98, 74, 72, 87, 66, 63, 72, 51, 48, 70, 49, 46, 79, 58, 55, 92, 71, 68, 84, 65, 61, 76, 57, 53, 73, 54, 50, 73, 54, 50, 71, 52, 48, 65, 47, 43, 60, 42, 38, 75, 57, 53, 64, 46, 42, 64, 46, 42, 68, 53, 48, 78, 63, 58, 96, 81, 76, 92, 77, 72, 63, 48, 45, 55, 39, 39, 67, 53, 53, 84, 70, 69, 101, 90, 86, 123, 112, 106, 140, 131, 122, 147, 138, 129, 145, 138, 128, 156, 149, 141, 160, 156, 147, 169, 166, 161, 177, 176, 172, 187, 185, 186, 198, 196, 199, 209, 207, 212, 213, 214, 219, 224, 231, 241, 223, 232, 241, 223, 232, 241, 224, 233, 242, 224, 233, 242, 224, 233, 240, 226, 233, 241, 226, 233, 241, 229, 234, 240, 230, 235, 241, 230, 235, 241, 230, 235, 241, 232, 235, 240, 232, 235, 240, 232, 235, 240, 233, 236, 241, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 238, 241, 246, 237, 240, 245, 237, 240, 245, 239, 242, 247, 241, 244, 249, 243, 246, 251, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 229, 237, 240, 229, 237, 240, 229, 234, 238, 227, 232, 236, 223, 228, 234, 219, 224, 230, 217, 220, 225, 217, 218, 223, 209, 208, 213, 195, 195, 197, 186, 186, 188, 190, 188, 189, 192, 191, 189, 182, 178, 175, 161, 157, 154, 146, 143, 138, 155, 150, 144, 172, 167, 161, 174, 169, 163, 155, 150, 144, 108, 101, 95, 84, 77, 71, 76, 68, 65, 28, 20, 17, 53, 43, 41, 63, 53, 51, 47, 37, 35, 26, 16, 14, 38, 28, 27, 61, 51, 50, 53, 43, 42, 28, 18, 17, 24, 14, 12, 24, 14, 12, 19, 9, 7, 15, 5, 3, 22, 12, 10, 31, 21, 19, 27, 17, 15, 16, 6, 4, 14, 4, 2, 31, 21, 19, 27, 17, 15, 43, 33, 31, 29, 19, 17, 78, 68, 66, 144, 134, 132, 47, 36, 34, 30, 16, 13, 44, 30, 27, 32, 18, 15, 61, 47, 44, 69, 55, 52, 53, 39, 36, 69, 54, 51, 50, 35, 32, 67, 52, 49, 70, 55, 52, 66, 48, 46, 53, 35, 33, 43, 25, 23, 45, 27, 25, 54, 34, 33, 60, 40, 39, 45, 27, 23, 55, 37, 33, 66, 48, 44, 67, 49, 45, 59, 41, 37, 52, 34, 30, 50, 32, 28, 51, 33, 29, 52, 34, 32, 66, 48, 46, 76, 58, 56, 76, 58, 56, 79, 61, 61, 83, 65, 65, 77, 59, 59, 65, 47, 47, 72, 52, 53, 76, 56, 57, 72, 52, 53, 64, 44, 45, 72, 52, 51, 89, 69, 68, 93, 73, 72, 84, 64, 63, 61, 40, 37, 59, 38, 35, 57, 36, 33, 55, 34, 31, 56, 32, 30, 56, 32, 30, 57, 33, 31, 58, 34, 32, 51, 27, 25, 52, 28, 26, 53, 29, 25, 53, 29, 25, 52, 27, 23, 50, 25, 21, 48, 23, 19, 46, 21, 17, 50, 22, 18, 51, 23, 19, 54, 25, 21, 55, 26, 22, 57, 26, 23, 57, 26, 23, 56, 25, 20, 56, 25, 20, 54, 23, 18, 55, 24, 19, 57, 26, 21, 60, 29, 24, 65, 32, 27, 68, 35, 30, 70, 37, 32, 71, 37, 35, 74, 40, 39, 76, 44, 45, 82, 50, 53, 88, 57, 62, 93, 64, 69, 95, 65, 73, 96, 66, 76, 96, 66, 76, 99, 72, 79, 101, 72, 77, 100, 69, 75, 100, 69, 74, 101, 69, 72, 103, 69, 70, 106, 70, 70, 106, 71, 69, 104, 66, 63, 102, 65, 59, 100, 61, 56, 98, 59, 54, 96, 57, 50, 97, 58, 51, 98, 59, 52, 98, 59, 52, 103, 66, 58, 108, 71, 63, 116, 78, 75, 122, 84, 83, 124, 85, 86, 126, 87, 88, 127, 88, 91, 129, 90, 93, 129, 93, 93, 132, 97, 95, 134, 101, 96, 133, 102, 97, 134, 103, 100, 134, 105, 101, 137, 109, 106, 136, 112, 108, 128, 114, 101, 133, 121, 107, 128, 109, 102, 118, 99, 93, 123, 108, 103, 135, 124, 120, 146, 143, 138, 165, 160, 157, 172, 158, 158, 180, 155, 151, 177, 137, 125, 144, 99, 78, 118, 77, 49, 140, 106, 78, 180, 159, 140, 197, 187, 175, 229, 228, 224, 230, 234, 235, 236, 240, 241, 239, 243, 246, 238, 243, 246, 237, 242, 246, 235, 243, 246, 236, 244, 247, 238, 246, 249, 238, 246, 249, 240, 245, 249, 240, 245, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 238, 238, 246, 238, 238, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 231, 238, 244, 231, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 228, 235, 243, 228, 235, 243, 229, 234, 240, 228, 233, 237, 227, 232, 238, 227, 232, 238, 224, 231, 241, 224, 231, 241, 211, 218, 226, 214, 219, 223, 212, 216, 217, 202, 204, 199, 180, 179, 174, 155, 150, 144, 133, 123, 121, 119, 108, 106, 95, 85, 84, 79, 69, 68, 73, 61, 61, 70, 58, 58, 62, 50, 50, 65, 53, 53, 77, 63, 63, 80, 66, 66, 78, 62, 63, 69, 53, 54, 63, 44, 46, 63, 44, 46, 71, 52, 54, 80, 61, 63, 85, 65, 67, 85, 65, 66, 82, 62, 63, 85, 65, 64, 89, 69, 68, 91, 71, 70, 92, 71, 70, 92, 71, 70, 94, 73, 72, 96, 75, 74, 93, 72, 71, 92, 71, 70, 92, 68, 68, 91, 67, 67, 91, 67, 67, 93, 69, 69, 95, 71, 71, 97, 73, 73, 91, 67, 65, 95, 71, 69, 100, 76, 74, 106, 82, 80, 110, 86, 84, 112, 88, 86, 111, 87, 85, 111, 87, 85, 105, 81, 79, 112, 88, 86, 119, 95, 93, 119, 95, 93, 114, 90, 88, 107, 83, 81, 103, 79, 77, 103, 79, 77, 107, 81, 80, 91, 65, 64, 82, 56, 55, 88, 62, 61, 96, 70, 69, 98, 72, 71, 99, 73, 72, 103, 77, 76, 104, 78, 77, 93, 67, 66, 83, 57, 56, 84, 58, 57, 93, 67, 66, 102, 76, 75, 103, 77, 76, 101, 76, 72, 101, 73, 69, 98, 70, 66, 97, 69, 65, 99, 71, 67, 97, 72, 68, 93, 68, 64, 83, 58, 54, 75, 50, 46, 72, 46, 45, 92, 66, 65, 113, 89, 87, 118, 94, 92, 105, 81, 79, 86, 62, 60, 74, 50, 48, 68, 47, 44, 78, 57, 54, 77, 56, 53, 72, 51, 48, 64, 43, 40, 56, 37, 33, 59, 40, 36, 70, 51, 47, 81, 62, 58, 85, 66, 62, 101, 83, 79, 90, 72, 68, 67, 49, 45, 68, 50, 46, 78, 60, 56, 88, 70, 66, 99, 84, 81, 87, 71, 71, 70, 56, 56, 67, 53, 52, 84, 70, 67, 101, 88, 82, 109, 99, 90, 127, 117, 108, 148, 140, 129, 134, 125, 116, 149, 142, 134, 146, 139, 133, 150, 145, 141, 181, 175, 175, 189, 185, 186, 184, 179, 183, 193, 192, 197, 205, 209, 218, 206, 213, 221, 217, 224, 232, 226, 233, 241, 226, 233, 241, 226, 233, 239, 225, 232, 238, 219, 226, 232, 230, 235, 241, 231, 236, 242, 232, 237, 241, 231, 236, 240, 229, 234, 238, 229, 234, 238, 231, 234, 239, 233, 236, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 243, 246, 251, 243, 246, 251, 239, 242, 247, 234, 237, 242, 234, 237, 242, 238, 241, 246, 242, 245, 250, 239, 244, 250, 239, 244, 250, 240, 245, 251, 240, 245, 251, 239, 244, 250, 237, 242, 248, 236, 241, 247, 235, 240, 246, 237, 242, 248, 237, 242, 248, 236, 241, 247, 235, 240, 246, 235, 240, 246, 234, 239, 245, 233, 238, 244, 233, 238, 244, 230, 238, 241, 228, 236, 239, 227, 232, 236, 225, 230, 234, 223, 226, 231, 218, 221, 226, 213, 214, 219, 208, 209, 214, 199, 198, 203, 190, 190, 192, 181, 179, 180, 179, 175, 174, 178, 174, 171, 176, 171, 167, 169, 164, 160, 162, 157, 151, 168, 163, 157, 171, 166, 160, 167, 162, 156, 138, 133, 127, 103, 96, 90, 88, 81, 75, 78, 70, 67, 57, 49, 46, 69, 59, 57, 70, 60, 58, 40, 30, 28, 16, 6, 4, 32, 22, 21, 45, 35, 34, 38, 28, 27, 35, 25, 24, 37, 27, 25, 23, 13, 11, 24, 14, 12, 16, 6, 4, 23, 13, 11, 33, 23, 21, 17, 7, 5, 15, 5, 3, 29, 19, 17, 22, 12, 10, 34, 24, 22, 30, 20, 18, 65, 55, 53, 125, 115, 113, 97, 87, 85, 33, 22, 20, 43, 29, 26, 41, 26, 23, 43, 28, 25, 48, 33, 30, 52, 37, 34, 55, 40, 37, 61, 46, 43, 68, 53, 50, 71, 56, 53, 73, 58, 55, 72, 57, 54, 69, 54, 51, 69, 51, 49, 71, 53, 51, 78, 60, 58, 85, 67, 65, 66, 48, 44, 72, 54, 50, 77, 59, 55, 77, 59, 55, 75, 57, 53, 76, 58, 54, 82, 64, 60, 88, 70, 66, 87, 69, 67, 66, 48, 46, 55, 37, 35, 67, 49, 47, 78, 60, 60, 74, 56, 56, 68, 50, 50, 68, 50, 50, 53, 33, 34, 61, 41, 42, 74, 54, 55, 84, 64, 65, 86, 66, 65, 81, 61, 60, 72, 52, 51, 65, 45, 44, 67, 46, 43, 67, 46, 43, 63, 42, 39, 57, 36, 33, 52, 28, 26, 48, 24, 22, 47, 23, 21, 47, 23, 21, 56, 32, 30, 55, 31, 29, 53, 29, 27, 51, 27, 25, 51, 25, 24, 50, 24, 23, 50, 25, 21, 50, 25, 21, 46, 18, 15, 48, 20, 17, 52, 23, 19, 55, 26, 22, 57, 26, 23, 56, 25, 22, 55, 24, 21, 54, 23, 20, 65, 36, 30, 65, 36, 30, 65, 34, 29, 63, 32, 27, 62, 31, 28, 64, 33, 30, 71, 37, 35, 76, 42, 41, 71, 39, 40, 75, 43, 46, 82, 50, 53, 88, 57, 62, 94, 65, 70, 99, 69, 77, 99, 72, 81, 101, 74, 83, 100, 70, 78, 99, 70, 75, 98, 67, 73, 96, 65, 70, 95, 63, 64, 97, 63, 62, 98, 63, 61, 101, 63, 60, 98, 59, 54, 99, 60, 53, 99, 58, 52, 98, 57, 51, 96, 55, 49, 97, 56, 50, 100, 59, 55, 103, 64, 57, 106, 69, 61, 108, 74, 65, 115, 77, 74, 119, 81, 80, 123, 84, 85, 127, 88, 91, 132, 93, 96, 136, 97, 100, 135, 99, 99, 136, 101, 99, 137, 104, 99, 136, 105, 100, 137, 106, 103, 137, 108, 104, 136, 108, 105, 133, 110, 104, 124, 112, 100, 124, 112, 100, 127, 108, 101, 126, 107, 101, 128, 111, 104, 133, 122, 116, 147, 140, 134, 159, 151, 148, 174, 156, 154, 181, 152, 146, 159, 116, 100, 135, 85, 60, 138, 89, 57, 141, 100, 68, 161, 133, 111, 201, 185, 170, 215, 212, 205, 228, 230, 229, 240, 244, 243, 243, 247, 248, 238, 243, 246, 238, 243, 247, 240, 245, 249, 242, 247, 253, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 241, 244, 249, 241, 244, 249, 244, 245, 249, 244, 245, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 250, 239, 244, 250, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 238, 238, 246, 238, 238, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 231, 238, 244, 231, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 228, 235, 245, 228, 235, 243, 229, 234, 240, 228, 233, 237, 227, 232, 238, 227, 231, 240, 224, 231, 241, 224, 230, 242, 224, 231, 241, 224, 231, 237, 220, 226, 226, 207, 209, 204, 182, 181, 176, 152, 147, 141, 125, 115, 113, 108, 97, 95, 71, 61, 60, 63, 53, 52, 68, 56, 56, 70, 58, 58, 56, 44, 44, 47, 35, 35, 47, 33, 33, 42, 28, 28, 54, 38, 39, 54, 38, 39, 58, 39, 41, 64, 45, 47, 72, 53, 55, 77, 58, 60, 78, 58, 60, 76, 56, 57, 75, 55, 56, 79, 59, 58, 83, 63, 62, 86, 66, 65, 88, 67, 66, 90, 69, 68, 93, 72, 71, 95, 74, 73, 93, 72, 71, 93, 72, 71, 95, 71, 71, 95, 71, 71, 98, 74, 74, 101, 77, 77, 104, 80, 80, 106, 82, 82, 110, 86, 84, 112, 88, 86, 116, 92, 90, 119, 95, 93, 120, 96, 94, 120, 96, 94, 118, 94, 92, 117, 93, 91, 112, 88, 86, 115, 91, 89, 119, 95, 93, 120, 96, 94, 116, 92, 90, 112, 88, 86, 108, 84, 82, 107, 83, 81, 113, 87, 86, 104, 78, 77, 99, 73, 72, 102, 76, 75, 102, 76, 75, 99, 73, 72, 102, 76, 75, 109, 83, 82, 105, 79, 78, 100, 74, 73, 98, 72, 71, 101, 75, 74, 105, 79, 78, 102, 76, 75, 90, 64, 63, 79, 54, 50, 77, 49, 46, 76, 48, 44, 76, 48, 44, 80, 52, 48, 84, 59, 55, 91, 66, 62, 95, 70, 66, 97, 72, 68, 91, 65, 64, 87, 61, 60, 85, 61, 59, 92, 68, 66, 100, 76, 74, 98, 74, 72, 85, 61, 59, 72, 48, 46, 55, 34, 31, 63, 42, 39, 73, 52, 49, 74, 53, 50, 67, 48, 44, 59, 40, 36, 55, 36, 32, 55, 36, 32, 74, 55, 51, 91, 72, 68, 82, 64, 60, 64, 46, 42, 65, 47, 43, 73, 55, 51, 79, 61, 57, 88, 70, 66, 102, 86, 86, 82, 66, 66, 61, 47, 44, 57, 43, 40, 69, 56, 50, 87, 74, 66, 99, 89, 80, 107, 97, 88, 137, 128, 119, 127, 118, 111, 117, 108, 103, 141, 133, 130, 180, 172, 170, 180, 174, 174, 179, 173, 175, 202, 200, 203, 194, 197, 202, 198, 203, 209, 208, 213, 219, 218, 223, 229, 223, 228, 234, 224, 232, 235, 228, 233, 239, 225, 230, 236, 226, 231, 237, 229, 234, 240, 231, 236, 240, 230, 235, 239, 229, 234, 238, 229, 234, 238, 231, 236, 240, 233, 238, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 242, 245, 250, 242, 245, 250, 239, 242, 247, 235, 238, 243, 234, 237, 242, 238, 241, 246, 241, 244, 249, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 238, 243, 249, 237, 242, 248, 235, 240, 246, 234, 239, 245, 237, 242, 248, 237, 242, 248, 236, 241, 247, 235, 240, 246, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 228, 236, 239, 226, 234, 237, 224, 229, 233, 221, 226, 230, 218, 221, 226, 213, 216, 221, 208, 209, 214, 202, 203, 207, 194, 194, 196, 187, 185, 186, 180, 176, 175, 176, 172, 169, 175, 170, 166, 171, 166, 160, 162, 157, 151, 155, 150, 144, 161, 156, 150, 168, 163, 157, 160, 155, 149, 137, 132, 126, 119, 112, 106, 105, 98, 92, 85, 77, 74, 67, 59, 56, 86, 76, 74, 80, 70, 68, 43, 33, 31, 16, 6, 4, 28, 18, 17, 38, 28, 27, 35, 25, 24, 40, 30, 29, 65, 55, 53, 41, 31, 29, 32, 22, 20, 17, 7, 5, 18, 8, 6, 27, 17, 15, 18, 8, 6, 23, 13, 11, 17, 7, 5, 30, 20, 18, 37, 27, 25, 28, 18, 16, 103, 93, 91, 125, 115, 113, 36, 26, 24, 39, 28, 26, 49, 35, 32, 43, 28, 25, 39, 24, 21, 42, 27, 24, 47, 32, 29, 50, 35, 32, 54, 39, 36, 56, 41, 38, 65, 50, 47, 70, 55, 52, 74, 59, 56, 73, 58, 55, 70, 52, 50, 66, 48, 46, 64, 46, 44, 65, 47, 45, 63, 45, 41, 64, 46, 42, 67, 49, 45, 72, 54, 50, 76, 58, 54, 78, 60, 56, 78, 60, 56, 77, 59, 55, 49, 31, 29, 49, 31, 29, 61, 43, 41, 77, 59, 57, 76, 58, 58, 60, 42, 42, 52, 34, 34, 55, 37, 37, 74, 54, 55, 76, 56, 57, 78, 58, 59, 81, 61, 62, 85, 65, 64, 88, 68, 67, 90, 70, 69, 92, 72, 71, 90, 69, 66, 86, 65, 62, 79, 58, 55, 72, 51, 48, 70, 46, 44, 73, 49, 47, 80, 56, 54, 87, 63, 61, 75, 51, 49, 75, 51, 49, 74, 50, 48, 70, 46, 44, 65, 39, 38, 57, 31, 30, 49, 24, 20, 45, 20, 16, 54, 26, 23, 56, 28, 25, 59, 30, 26, 61, 32, 28, 64, 33, 30, 65, 34, 31, 65, 34, 31, 65, 34, 31, 54, 25, 19, 55, 26, 20, 56, 25, 20, 56, 25, 20, 57, 26, 23, 60, 29, 27, 68, 34, 33, 73, 39, 40, 75, 43, 46, 78, 46, 51, 83, 52, 57, 90, 59, 65, 95, 65, 73, 98, 68, 76, 99, 72, 81, 99, 72, 79, 100, 71, 76, 99, 70, 74, 98, 67, 72, 98, 66, 69, 98, 64, 65, 99, 64, 62, 100, 62, 59, 101, 64, 58, 99, 60, 53, 100, 61, 54, 101, 60, 54, 100, 59, 53, 98, 57, 51, 100, 59, 53, 103, 62, 58, 106, 67, 62, 108, 71, 65, 109, 74, 68, 117, 79, 78, 121, 82, 83, 124, 85, 88, 128, 89, 92, 133, 94, 97, 137, 98, 101, 138, 102, 102, 138, 103, 101, 139, 105, 103, 138, 107, 102, 137, 108, 104, 136, 107, 103, 134, 106, 103, 131, 108, 102, 124, 110, 99, 122, 110, 98, 124, 105, 99, 123, 104, 98, 124, 107, 100, 132, 119, 111, 146, 137, 130, 161, 148, 142, 169, 148, 143, 173, 139, 130, 154, 106, 86, 140, 84, 57, 144, 92, 55, 144, 98, 64, 160, 126, 99, 196, 175, 158, 211, 207, 198, 223, 225, 222, 237, 242, 238, 240, 244, 243, 237, 241, 242, 236, 241, 244, 239, 244, 250, 240, 245, 251, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 241, 244, 249, 241, 244, 249, 244, 245, 249, 244, 245, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 250, 239, 244, 250, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 238, 238, 246, 238, 238, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 231, 238, 244, 231, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 228, 235, 245, 228, 235, 243, 229, 234, 240, 228, 233, 237, 227, 232, 238, 227, 231, 240, 224, 231, 241, 224, 230, 242, 219, 228, 237, 220, 227, 233, 219, 225, 225, 206, 211, 205, 183, 184, 178, 153, 150, 143, 124, 116, 113, 105, 95, 94, 83, 73, 72, 74, 64, 63, 75, 63, 63, 73, 61, 61, 61, 49, 49, 60, 48, 48, 72, 58, 58, 76, 62, 62, 73, 57, 58, 75, 59, 60, 80, 61, 63, 80, 61, 63, 78, 59, 61, 75, 56, 58, 74, 54, 56, 73, 53, 54, 74, 54, 55, 77, 57, 56, 81, 61, 60, 83, 63, 62, 85, 64, 63, 86, 65, 64, 88, 67, 66, 90, 69, 68, 94, 73, 72, 94, 73, 72, 98, 74, 74, 101, 77, 77, 105, 81, 81, 109, 85, 85, 113, 89, 89, 115, 91, 91, 115, 91, 89, 116, 92, 90, 117, 93, 91, 117, 93, 91, 116, 92, 90, 113, 89, 87, 110, 86, 84, 108, 84, 82, 112, 88, 86, 110, 86, 84, 109, 85, 83, 110, 86, 84, 110, 86, 84, 109, 85, 83, 105, 81, 79, 103, 79, 77, 101, 75, 74, 99, 73, 72, 99, 73, 72, 99, 73, 72, 93, 67, 66, 87, 61, 60, 89, 63, 62, 96, 70, 69, 98, 72, 71, 98, 72, 71, 103, 77, 76, 112, 86, 85, 119, 93, 92, 116, 90, 89, 103, 77, 76, 91, 66, 62, 84, 56, 53, 83, 55, 51, 81, 53, 49, 77, 49, 45, 75, 47, 44, 75, 47, 44, 77, 52, 48, 80, 55, 51, 84, 58, 57, 85, 59, 58, 88, 62, 61, 91, 65, 64, 94, 70, 68, 98, 74, 72, 102, 78, 76, 104, 80, 78, 72, 48, 44, 74, 50, 46, 72, 51, 46, 67, 46, 41, 58, 37, 32, 53, 32, 27, 53, 32, 27, 56, 35, 30, 48, 29, 23, 63, 44, 38, 62, 43, 37, 54, 35, 29, 58, 39, 33, 68, 49, 43, 74, 55, 49, 78, 60, 56, 66, 51, 48, 63, 48, 45, 49, 34, 31, 35, 20, 17, 36, 23, 17, 56, 43, 37, 71, 60, 54, 77, 66, 60, 92, 81, 75, 107, 98, 91, 98, 89, 84, 90, 83, 77, 122, 114, 111, 158, 150, 148, 173, 165, 163, 179, 175, 176, 181, 181, 183, 184, 188, 191, 193, 197, 200, 203, 207, 210, 213, 217, 220, 219, 224, 227, 224, 227, 232, 226, 231, 235, 224, 229, 233, 227, 232, 236, 230, 235, 239, 230, 235, 239, 229, 234, 238, 229, 234, 238, 231, 236, 242, 232, 237, 243, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 239, 242, 247, 236, 239, 244, 235, 238, 243, 237, 240, 245, 240, 243, 248, 238, 243, 249, 238, 243, 249, 239, 244, 250, 239, 244, 250, 238, 243, 249, 236, 241, 247, 235, 240, 246, 234, 239, 245, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 234, 239, 245, 233, 238, 244, 233, 238, 244, 232, 237, 243, 227, 235, 238, 224, 232, 235, 220, 225, 229, 216, 221, 225, 212, 215, 220, 205, 208, 213, 200, 201, 205, 196, 195, 200, 188, 186, 189, 182, 180, 181, 177, 173, 172, 173, 168, 165, 171, 163, 160, 165, 158, 152, 155, 148, 142, 147, 140, 132, 160, 155, 149, 171, 166, 160, 156, 151, 145, 136, 131, 125, 135, 128, 122, 119, 112, 106, 89, 81, 78, 77, 69, 66, 102, 92, 90, 87, 77, 75, 44, 34, 32, 16, 6, 4, 25, 15, 14, 33, 23, 22, 40, 30, 29, 58, 48, 47, 85, 75, 73, 56, 46, 44, 42, 32, 30, 22, 12, 10, 18, 8, 6, 23, 13, 11, 14, 4, 2, 24, 14, 12, 20, 10, 8, 30, 20, 18, 24, 14, 12, 65, 55, 53, 128, 118, 116, 78, 68, 66, 9, 0, 0, 44, 33, 31, 44, 30, 27, 40, 25, 22, 36, 21, 18, 39, 24, 21, 48, 33, 30, 58, 43, 40, 64, 49, 46, 66, 51, 48, 84, 69, 66, 83, 68, 65, 79, 64, 61, 70, 55, 52, 58, 43, 40, 46, 31, 28, 38, 23, 20, 35, 20, 17, 62, 44, 40, 57, 39, 35, 54, 36, 32, 56, 38, 34, 60, 42, 38, 59, 41, 37, 52, 34, 30, 44, 26, 22, 44, 26, 24, 44, 26, 24, 51, 33, 31, 60, 42, 40, 59, 41, 41, 53, 35, 35, 59, 41, 41, 72, 54, 54, 81, 61, 62, 78, 58, 59, 74, 54, 55, 72, 52, 53, 73, 53, 52, 78, 58, 57, 84, 64, 63, 88, 68, 67, 84, 63, 60, 86, 65, 62, 88, 67, 64, 86, 65, 62, 84, 60, 58, 79, 55, 53, 76, 52, 50, 75, 51, 49, 68, 44, 42, 71, 47, 45, 76, 52, 50, 78, 54, 52, 76, 50, 49, 68, 42, 41, 58, 32, 31, 52, 26, 25, 72, 44, 41, 70, 42, 39, 68, 38, 36, 65, 35, 33, 63, 32, 29, 61, 30, 27, 59, 28, 25, 59, 28, 25, 56, 27, 21, 57, 28, 22, 58, 29, 25, 58, 29, 25, 59, 28, 26, 62, 31, 29, 67, 35, 36, 71, 39, 42, 72, 40, 43, 76, 44, 49, 82, 51, 57, 89, 58, 66, 95, 65, 73, 100, 70, 80, 100, 73, 82, 102, 75, 82, 101, 72, 77, 101, 70, 75, 101, 69, 74, 99, 67, 68, 99, 65, 64, 99, 64, 62, 100, 63, 57, 101, 62, 55, 100, 59, 53, 101, 61, 53, 104, 61, 54, 103, 60, 54, 101, 60, 54, 103, 62, 58, 107, 66, 64, 110, 71, 66, 111, 74, 68, 112, 77, 71, 117, 82, 80, 121, 85, 85, 126, 87, 90, 130, 91, 96, 133, 97, 101, 137, 101, 103, 141, 105, 105, 142, 107, 105, 142, 108, 106, 140, 109, 104, 138, 109, 105, 136, 107, 103, 133, 105, 102, 128, 104, 100, 124, 107, 99, 122, 108, 99, 122, 103, 97, 119, 100, 94, 120, 103, 96, 130, 116, 107, 146, 133, 125, 162, 145, 137, 167, 140, 133, 160, 122, 109, 145, 93, 69, 140, 84, 51, 148, 93, 54, 143, 94, 54, 156, 115, 87, 188, 161, 142, 205, 198, 188, 216, 218, 213, 234, 236, 233, 238, 242, 241, 236, 240, 241, 236, 240, 243, 237, 242, 248, 238, 243, 249, 239, 243, 252, 239, 243, 252, 240, 243, 250, 240, 243, 250, 243, 244, 249, 243, 244, 249, 244, 245, 249, 244, 245, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 250, 239, 244, 250, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 238, 238, 246, 238, 238, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 231, 238, 244, 231, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 228, 235, 245, 228, 235, 243, 229, 234, 240, 228, 233, 237, 227, 232, 238, 227, 231, 240, 224, 231, 241, 224, 230, 242, 214, 223, 232, 215, 224, 229, 215, 221, 221, 204, 209, 203, 183, 184, 178, 153, 150, 145, 122, 114, 112, 101, 91, 90, 88, 78, 77, 77, 67, 66, 75, 63, 63, 71, 59, 59, 59, 47, 47, 62, 50, 50, 80, 66, 66, 89, 75, 75, 86, 70, 71, 87, 71, 72, 87, 68, 70, 78, 59, 61, 68, 49, 51, 65, 46, 48, 69, 49, 51, 75, 55, 56, 80, 60, 61, 82, 62, 61, 85, 65, 64, 86, 66, 65, 86, 65, 64, 85, 64, 63, 86, 65, 64, 87, 66, 65, 95, 74, 73, 96, 75, 74, 100, 76, 76, 103, 79, 79, 107, 83, 83, 111, 87, 87, 113, 89, 89, 115, 91, 91, 108, 84, 82, 108, 84, 82, 108, 84, 82, 107, 83, 81, 106, 82, 80, 103, 79, 77, 100, 76, 74, 98, 74, 72, 105, 81, 79, 100, 76, 74, 95, 71, 69, 95, 71, 69, 98, 74, 72, 100, 76, 74, 97, 73, 71, 93, 69, 67, 89, 63, 62, 89, 63, 62, 89, 63, 62, 89, 63, 62, 85, 59, 58, 81, 55, 54, 80, 54, 53, 81, 55, 54, 75, 49, 48, 74, 48, 47, 77, 51, 50, 86, 60, 59, 95, 69, 68, 99, 73, 72, 97, 71, 70, 92, 67, 63, 101, 73, 70, 104, 76, 72, 105, 77, 73, 99, 71, 67, 89, 61, 58, 79, 51, 48, 73, 48, 44, 73, 48, 44, 69, 43, 42, 76, 50, 49, 85, 59, 58, 90, 64, 63, 92, 68, 66, 98, 74, 72, 107, 83, 81, 115, 91, 89, 102, 78, 74, 97, 73, 69, 86, 65, 60, 74, 53, 48, 64, 43, 38, 62, 41, 36, 65, 44, 39, 70, 49, 44, 69, 50, 44, 74, 55, 49, 71, 52, 46, 63, 44, 38, 63, 44, 38, 68, 49, 43, 71, 52, 46, 70, 53, 46, 51, 36, 31, 65, 50, 47, 72, 57, 54, 60, 45, 42, 41, 28, 22, 38, 25, 19, 50, 39, 33, 66, 55, 49, 54, 43, 39, 87, 76, 72, 84, 75, 70, 60, 51, 46, 71, 63, 60, 111, 103, 100, 145, 137, 134, 162, 157, 154, 172, 171, 169, 178, 178, 178, 183, 183, 183, 189, 191, 190, 203, 204, 206, 211, 212, 214, 216, 217, 219, 221, 225, 228, 225, 229, 232, 228, 233, 237, 231, 236, 240, 232, 237, 241, 230, 235, 239, 227, 235, 238, 227, 234, 240, 228, 235, 241, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 237, 240, 245, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 236, 241, 247, 234, 239, 245, 233, 238, 244, 235, 240, 246, 235, 240, 246, 234, 239, 245, 233, 238, 244, 233, 238, 244, 232, 237, 243, 231, 236, 242, 231, 236, 242, 227, 235, 238, 222, 230, 233, 218, 223, 227, 211, 216, 220, 206, 209, 214, 199, 202, 207, 194, 193, 198, 189, 189, 191, 183, 181, 184, 180, 176, 175, 175, 170, 167, 170, 165, 161, 166, 159, 153, 158, 151, 143, 149, 140, 133, 142, 133, 126, 165, 158, 152, 180, 175, 169, 161, 156, 150, 138, 133, 127, 142, 135, 129, 119, 112, 106, 87, 79, 76, 87, 79, 76, 109, 99, 97, 87, 77, 75, 42, 32, 30, 16, 6, 4, 27, 17, 16, 36, 26, 25, 51, 41, 40, 79, 69, 68, 82, 72, 70, 57, 47, 45, 46, 36, 34, 29, 19, 17, 25, 15, 13, 28, 18, 16, 16, 6, 4, 22, 12, 10, 36, 26, 24, 18, 8, 6, 27, 17, 15, 125, 115, 113, 103, 93, 91, 13, 3, 1, 38, 28, 26, 43, 32, 30, 43, 29, 26, 46, 31, 28, 46, 31, 28, 46, 31, 28, 53, 38, 35, 65, 50, 47, 76, 61, 58, 82, 67, 64, 78, 63, 60, 71, 56, 53, 61, 46, 43, 51, 36, 33, 45, 30, 27, 45, 30, 27, 49, 34, 31, 53, 38, 35, 57, 39, 35, 52, 34, 30, 48, 30, 26, 47, 29, 25, 48, 30, 26, 47, 29, 25, 44, 26, 22, 41, 23, 19, 63, 45, 43, 52, 34, 32, 46, 28, 26, 52, 34, 32, 61, 43, 43, 68, 50, 50, 78, 60, 60, 88, 70, 70, 72, 52, 53, 71, 51, 52, 69, 49, 50, 67, 47, 48, 64, 44, 43, 61, 41, 40, 59, 39, 38, 58, 38, 37, 62, 41, 38, 67, 46, 43, 72, 51, 48, 73, 52, 49, 72, 48, 46, 66, 42, 40, 62, 38, 36, 60, 36, 34, 80, 56, 54, 84, 60, 58, 90, 66, 64, 94, 70, 68, 95, 69, 68, 90, 64, 63, 84, 58, 57, 79, 53, 52, 72, 44, 41, 68, 40, 37, 64, 34, 32, 58, 28, 26, 54, 23, 20, 52, 21, 18, 51, 20, 17, 50, 19, 16, 58, 29, 23, 59, 30, 24, 60, 31, 27, 60, 31, 27, 60, 29, 27, 61, 29, 30, 65, 33, 36, 68, 36, 41, 71, 39, 44, 75, 42, 49, 81, 50, 58, 90, 59, 67, 97, 67, 77, 103, 73, 83, 104, 77, 86, 108, 78, 86, 102, 71, 77, 102, 71, 76, 102, 70, 73, 102, 68, 69, 102, 67, 65, 101, 63, 60, 101, 62, 55, 99, 61, 52, 98, 58, 50, 99, 59, 51, 103, 60, 53, 103, 60, 53, 101, 60, 56, 104, 63, 59, 109, 68, 66, 112, 72, 70, 114, 77, 71, 116, 81, 77, 121, 85, 85, 124, 88, 90, 129, 90, 95, 133, 94, 99, 135, 99, 103, 139, 103, 105, 145, 109, 111, 145, 111, 109, 144, 113, 110, 143, 112, 107, 140, 111, 107, 135, 107, 103, 131, 103, 100, 126, 101, 97, 127, 106, 101, 125, 106, 100, 122, 103, 99, 118, 100, 96, 120, 103, 95, 129, 115, 104, 148, 131, 121, 165, 143, 132, 172, 139, 130, 154, 111, 95, 137, 83, 55, 139, 81, 44, 146, 89, 46, 140, 87, 45, 151, 104, 74, 181, 149, 128, 198, 190, 177, 210, 213, 206, 231, 233, 228, 239, 241, 238, 237, 241, 242, 237, 241, 244, 238, 243, 247, 238, 243, 249, 239, 243, 252, 239, 243, 252, 240, 243, 250, 240, 243, 250, 243, 244, 249, 243, 244, 249, 244, 245, 249, 244, 245, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 250, 239, 244, 250, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 238, 238, 246, 238, 238, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 231, 238, 244, 231, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 228, 235, 245, 228, 235, 243, 229, 234, 240, 228, 233, 239, 227, 232, 238, 227, 231, 240, 224, 231, 241, 224, 230, 242, 224, 233, 242, 222, 231, 236, 220, 226, 226, 208, 213, 209, 185, 187, 182, 152, 151, 146, 118, 113, 110, 96, 88, 86, 90, 80, 79, 86, 76, 75, 94, 82, 82, 95, 83, 83, 78, 66, 66, 62, 50, 50, 57, 43, 43, 49, 35, 35, 53, 37, 38, 58, 42, 43, 62, 43, 45, 58, 39, 41, 53, 34, 36, 54, 35, 37, 65, 45, 47, 75, 55, 56, 80, 60, 61, 83, 63, 62, 87, 67, 66, 90, 70, 69, 91, 70, 69, 92, 71, 70, 95, 74, 73, 97, 76, 75, 97, 76, 75, 98, 77, 76, 102, 78, 78, 104, 80, 80, 106, 82, 82, 107, 83, 83, 108, 84, 84, 108, 84, 84, 105, 81, 79, 106, 82, 80, 106, 82, 80, 106, 82, 80, 105, 81, 79, 105, 81, 79, 104, 80, 78, 103, 79, 77, 106, 82, 80, 100, 76, 74, 95, 71, 69, 95, 71, 69, 98, 74, 72, 101, 77, 75, 99, 75, 73, 96, 72, 70, 98, 72, 71, 96, 70, 69, 93, 67, 66, 94, 68, 67, 98, 72, 71, 99, 73, 72, 92, 66, 65, 84, 58, 57, 87, 61, 60, 84, 58, 57, 81, 55, 54, 83, 57, 56, 87, 61, 60, 89, 63, 62, 88, 62, 61, 86, 61, 57, 97, 69, 66, 102, 74, 70, 107, 79, 75, 107, 79, 75, 103, 75, 72, 101, 73, 70, 102, 74, 71, 105, 77, 74, 99, 73, 72, 88, 62, 61, 81, 55, 54, 89, 63, 62, 107, 83, 81, 118, 94, 92, 115, 91, 89, 106, 82, 80, 101, 77, 73, 105, 81, 77, 109, 85, 81, 109, 85, 81, 103, 79, 75, 95, 71, 67, 85, 64, 59, 80, 59, 54, 74, 53, 48, 69, 48, 43, 64, 43, 38, 58, 37, 32, 55, 36, 30, 61, 42, 36, 64, 45, 39, 61, 44, 37, 53, 38, 33, 63, 50, 44, 81, 68, 62, 87, 74, 68, 71, 57, 54, 56, 42, 39, 66, 55, 51, 90, 79, 75, 72, 61, 59, 65, 54, 52, 65, 55, 53, 75, 65, 63, 74, 65, 60, 70, 61, 56, 106, 97, 92, 162, 155, 149, 168, 163, 159, 176, 172, 169, 175, 174, 172, 180, 179, 177, 197, 195, 196, 203, 203, 203, 205, 205, 205, 215, 216, 218, 224, 228, 231, 227, 231, 234, 230, 235, 239, 232, 237, 241, 228, 235, 241, 226, 233, 239, 226, 233, 241, 226, 233, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 236, 239, 244, 235, 238, 243, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 235, 240, 246, 233, 238, 244, 232, 237, 243, 233, 238, 244, 233, 238, 244, 232, 237, 243, 231, 236, 242, 231, 236, 242, 230, 235, 241, 229, 234, 240, 229, 234, 240, 226, 234, 237, 221, 229, 232, 215, 220, 224, 207, 212, 216, 201, 204, 209, 194, 197, 202, 190, 189, 194, 185, 185, 187, 180, 178, 181, 178, 174, 173, 174, 169, 166, 169, 161, 158, 163, 154, 149, 155, 146, 139, 148, 138, 129, 142, 133, 124, 162, 155, 147, 180, 175, 169, 164, 159, 153, 141, 136, 130, 139, 132, 126, 114, 107, 101, 88, 80, 77, 98, 90, 87, 112, 102, 100, 90, 80, 78, 43, 33, 31, 19, 9, 7, 32, 22, 21, 43, 33, 32, 56, 46, 45, 84, 74, 73, 77, 67, 65, 55, 45, 43, 46, 36, 34, 29, 19, 17, 32, 22, 20, 44, 34, 32, 31, 21, 19, 30, 20, 18, 33, 23, 21, 15, 5, 3, 84, 74, 72, 136, 126, 124, 50, 40, 38, 9, 0, 0, 55, 45, 43, 40, 29, 27, 49, 34, 31, 60, 42, 40, 64, 46, 44, 56, 38, 36, 53, 35, 33, 61, 43, 41, 72, 57, 54, 79, 64, 61, 67, 52, 49, 59, 44, 41, 47, 32, 29, 39, 24, 21, 37, 23, 20, 42, 28, 25, 50, 36, 33, 57, 42, 39, 49, 31, 27, 50, 32, 28, 51, 33, 29, 51, 33, 29, 52, 34, 30, 57, 39, 35, 66, 48, 44, 73, 55, 51, 63, 45, 43, 63, 45, 43, 68, 50, 48, 78, 60, 58, 83, 65, 65, 80, 62, 62, 74, 56, 56, 70, 52, 52, 65, 45, 46, 66, 46, 47, 66, 46, 47, 65, 45, 46, 61, 41, 40, 56, 36, 35, 50, 30, 29, 47, 27, 26, 57, 36, 33, 55, 34, 31, 51, 30, 27, 48, 27, 24, 52, 28, 26, 62, 38, 36, 75, 51, 49, 85, 61, 59, 91, 67, 67, 90, 66, 66, 89, 65, 65, 86, 62, 62, 82, 56, 55, 76, 50, 49, 70, 44, 43, 67, 41, 40, 52, 24, 21, 50, 22, 19, 49, 19, 17, 48, 18, 16, 50, 19, 17, 52, 21, 19, 55, 24, 22, 57, 26, 23, 47, 18, 12, 50, 21, 15, 54, 25, 21, 56, 27, 23, 59, 28, 26, 62, 30, 31, 66, 34, 37, 70, 38, 43, 84, 51, 58, 88, 55, 64, 92, 61, 69, 98, 66, 77, 102, 72, 82, 103, 76, 85, 105, 78, 87, 107, 77, 85, 101, 70, 76, 103, 71, 76, 104, 69, 73, 103, 69, 68, 102, 67, 63, 101, 64, 58, 99, 60, 53, 97, 59, 50, 94, 54, 46, 98, 55, 46, 100, 57, 50, 101, 58, 51, 103, 59, 56, 106, 62, 59, 112, 68, 67, 114, 73, 71, 119, 81, 78, 120, 85, 81, 125, 89, 89, 128, 92, 94, 130, 94, 98, 134, 97, 104, 138, 102, 106, 142, 106, 108, 146, 112, 113, 148, 114, 112, 147, 116, 113, 146, 115, 110, 142, 113, 109, 136, 108, 104, 131, 103, 100, 125, 100, 96, 130, 104, 103, 129, 105, 103, 126, 105, 104, 122, 104, 100, 124, 107, 99, 133, 117, 104, 150, 131, 117, 167, 139, 127, 178, 138, 126, 153, 106, 86, 133, 78, 47, 135, 77, 37, 140, 82, 36, 136, 79, 36, 152, 99, 68, 175, 137, 116, 194, 182, 168, 206, 207, 199, 228, 230, 225, 239, 241, 238, 239, 243, 244, 240, 244, 247, 240, 245, 249, 239, 244, 250, 239, 243, 252, 239, 243, 252, 240, 243, 252, 240, 243, 250, 243, 244, 249, 243, 244, 249, 245, 244, 249, 244, 245, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 250, 239, 244, 250, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 238, 238, 246, 238, 238, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 231, 238, 244, 231, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 228, 235, 245, 228, 235, 243, 229, 233, 242, 228, 233, 239, 227, 232, 238, 227, 231, 240, 224, 230, 242, 224, 230, 242, 225, 234, 243, 222, 231, 236, 218, 226, 228, 211, 216, 212, 194, 196, 191, 166, 165, 160, 135, 130, 127, 114, 106, 104, 108, 98, 97, 101, 91, 90, 106, 94, 94, 107, 95, 95, 89, 77, 77, 70, 58, 58, 58, 44, 44, 44, 30, 30, 44, 28, 29, 51, 35, 36, 60, 41, 43, 62, 43, 45, 60, 41, 43, 62, 43, 45, 70, 50, 52, 77, 57, 58, 74, 54, 55, 79, 59, 58, 86, 66, 65, 91, 71, 70, 96, 75, 74, 100, 79, 78, 105, 84, 83, 108, 87, 86, 100, 79, 78, 101, 80, 79, 105, 81, 81, 106, 82, 82, 106, 82, 82, 105, 81, 81, 104, 80, 80, 103, 79, 79, 103, 79, 77, 104, 80, 78, 104, 80, 78, 105, 81, 79, 107, 83, 81, 108, 84, 82, 109, 85, 83, 110, 86, 84, 117, 93, 91, 114, 90, 88, 112, 88, 86, 111, 87, 85, 113, 89, 87, 114, 90, 88, 113, 89, 87, 113, 89, 87, 112, 86, 85, 109, 83, 82, 104, 78, 77, 103, 77, 76, 109, 83, 82, 114, 88, 87, 106, 80, 79, 94, 68, 67, 105, 79, 78, 104, 78, 77, 104, 78, 77, 105, 79, 78, 105, 79, 78, 101, 75, 74, 96, 70, 69, 91, 66, 62, 95, 67, 64, 94, 66, 62, 90, 62, 58, 87, 59, 55, 86, 58, 55, 89, 61, 58, 96, 68, 65, 102, 74, 71, 102, 76, 75, 95, 69, 68, 87, 61, 60, 86, 60, 59, 89, 65, 63, 95, 71, 69, 98, 74, 72, 99, 75, 73, 95, 71, 67, 100, 76, 72, 107, 83, 79, 113, 89, 85, 115, 91, 87, 112, 88, 84, 105, 84, 79, 101, 80, 75, 85, 64, 59, 71, 50, 45, 64, 43, 38, 59, 38, 33, 53, 34, 28, 54, 35, 29, 55, 36, 30, 47, 30, 23, 45, 30, 23, 38, 25, 19, 47, 34, 28, 66, 53, 47, 71, 57, 54, 65, 51, 50, 72, 61, 59, 92, 81, 79, 80, 68, 68, 69, 58, 56, 66, 56, 54, 71, 61, 59, 69, 60, 55, 67, 58, 51, 89, 80, 73, 121, 112, 105, 150, 143, 137, 162, 157, 151, 162, 157, 153, 167, 163, 160, 189, 185, 182, 193, 192, 190, 194, 193, 191, 207, 207, 207, 216, 217, 219, 219, 223, 226, 224, 229, 233, 226, 234, 237, 226, 233, 239, 224, 233, 238, 224, 233, 240, 225, 234, 241, 227, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 238, 241, 246, 237, 240, 245, 238, 241, 246, 240, 243, 248, 239, 242, 247, 236, 239, 244, 232, 235, 240, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 234, 239, 245, 232, 237, 243, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 228, 233, 239, 227, 232, 238, 227, 232, 238, 226, 231, 237, 223, 231, 234, 217, 225, 228, 210, 215, 219, 202, 207, 211, 196, 199, 204, 190, 193, 198, 186, 185, 190, 183, 181, 184, 180, 176, 177, 177, 171, 171, 173, 165, 163, 165, 158, 152, 158, 149, 142, 151, 142, 133, 148, 138, 128, 145, 136, 127, 153, 146, 138, 167, 162, 156, 160, 155, 149, 145, 140, 134, 135, 128, 122, 111, 104, 98, 93, 85, 82, 100, 92, 89, 112, 102, 100, 93, 83, 81, 49, 39, 37, 25, 15, 13, 40, 30, 29, 51, 41, 40, 56, 46, 45, 72, 62, 61, 77, 67, 65, 59, 49, 47, 46, 36, 34, 24, 14, 12, 36, 26, 24, 63, 53, 51, 52, 42, 40, 41, 31, 29, 17, 7, 5, 46, 36, 34, 143, 133, 131, 87, 77, 75, 20, 10, 8, 53, 43, 41, 35, 25, 23, 35, 24, 22, 38, 23, 20, 53, 35, 33, 59, 41, 39, 52, 34, 32, 49, 31, 29, 59, 41, 39, 68, 53, 50, 72, 57, 54, 58, 43, 40, 54, 39, 36, 49, 34, 31, 46, 31, 28, 44, 30, 27, 44, 30, 27, 42, 28, 25, 40, 26, 23, 52, 34, 30, 56, 38, 34, 59, 41, 37, 57, 39, 35, 54, 36, 32, 58, 40, 36, 69, 51, 47, 78, 60, 56, 63, 45, 43, 74, 56, 54, 84, 66, 64, 85, 67, 65, 77, 59, 59, 66, 48, 48, 58, 40, 40, 55, 37, 37, 57, 37, 38, 56, 36, 37, 54, 34, 35, 53, 33, 34, 52, 32, 31, 53, 33, 32, 53, 33, 32, 54, 34, 33, 55, 34, 31, 54, 33, 30, 52, 31, 28, 50, 29, 26, 54, 30, 28, 61, 37, 35, 71, 47, 45, 78, 54, 52, 72, 48, 48, 69, 45, 45, 64, 40, 40, 57, 33, 33, 53, 27, 26, 48, 22, 21, 45, 19, 18, 44, 18, 17, 48, 20, 17, 48, 20, 17, 49, 19, 17, 50, 20, 18, 52, 21, 19, 54, 23, 21, 56, 25, 23, 57, 26, 23, 46, 17, 13, 51, 22, 16, 58, 29, 25, 65, 36, 32, 72, 40, 41, 78, 46, 49, 84, 52, 57, 89, 56, 63, 103, 70, 79, 104, 71, 80, 105, 73, 84, 106, 76, 86, 104, 77, 86, 102, 75, 84, 100, 73, 82, 101, 71, 79, 100, 69, 75, 102, 70, 73, 104, 70, 71, 103, 69, 68, 104, 66, 63, 100, 63, 55, 97, 59, 50, 95, 55, 45, 94, 51, 42, 96, 53, 44, 99, 56, 49, 101, 58, 51, 103, 60, 54, 108, 64, 61, 114, 70, 69, 117, 76, 74, 122, 84, 81, 124, 89, 87, 128, 92, 92, 131, 95, 97, 133, 96, 103, 136, 99, 106, 140, 104, 108, 144, 108, 112, 147, 113, 114, 149, 115, 113, 149, 118, 115, 148, 119, 113, 145, 116, 112, 138, 110, 106, 130, 105, 101, 126, 101, 97, 132, 102, 104, 133, 104, 106, 129, 108, 107, 127, 109, 105, 126, 112, 101, 136, 118, 104, 152, 129, 115, 168, 135, 120, 172, 129, 113, 150, 99, 78, 132, 76, 41, 131, 74, 29, 132, 74, 26, 133, 76, 31, 154, 95, 65, 171, 129, 107, 187, 173, 160, 200, 201, 193, 225, 228, 221, 238, 240, 237, 239, 243, 242, 241, 245, 248, 240, 245, 249, 240, 245, 251, 239, 243, 252, 239, 243, 252, 240, 243, 252, 240, 243, 250, 243, 243, 251, 243, 244, 248, 245, 244, 249, 244, 245, 247, 244, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 250, 239, 244, 250, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 238, 238, 246, 238, 238, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 231, 238, 244, 231, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 234, 245, 230, 234, 243, 229, 233, 242, 228, 233, 239, 227, 231, 240, 227, 231, 240, 224, 230, 242, 224, 230, 242, 219, 228, 237, 216, 225, 230, 213, 221, 223, 209, 215, 211, 200, 202, 197, 179, 178, 173, 152, 148, 145, 135, 127, 125, 115, 105, 104, 94, 84, 83, 82, 70, 70, 77, 65, 65, 67, 55, 55, 64, 52, 52, 67, 53, 53, 62, 48, 48, 68, 52, 53, 69, 53, 54, 71, 52, 54, 69, 50, 52, 65, 46, 48, 66, 47, 49, 72, 52, 54, 77, 57, 58, 75, 55, 56, 79, 59, 58, 85, 65, 64, 90, 70, 69, 94, 73, 72, 98, 77, 76, 102, 81, 80, 105, 84, 83, 103, 82, 81, 104, 83, 82, 108, 84, 84, 110, 86, 86, 110, 86, 86, 109, 85, 85, 108, 84, 84, 106, 82, 82, 104, 83, 80, 104, 83, 80, 104, 83, 80, 106, 85, 82, 108, 87, 84, 110, 89, 86, 112, 91, 88, 113, 92, 89, 122, 101, 98, 124, 103, 100, 125, 104, 101, 124, 103, 100, 122, 101, 98, 122, 101, 98, 123, 102, 99, 126, 102, 100, 118, 92, 91, 120, 94, 93, 115, 89, 88, 108, 82, 81, 109, 83, 82, 113, 87, 86, 109, 83, 82, 99, 73, 72, 93, 67, 66, 94, 68, 67, 96, 70, 69, 97, 71, 70, 95, 69, 68, 92, 66, 65, 86, 60, 59, 83, 58, 54, 99, 71, 68, 93, 64, 60, 83, 55, 51, 77, 49, 45, 75, 47, 44, 77, 49, 46, 79, 51, 48, 80, 52, 49, 71, 45, 44, 82, 56, 55, 91, 65, 64, 86, 60, 59, 75, 49, 48, 72, 46, 45, 81, 57, 55, 93, 69, 67, 99, 74, 70, 93, 68, 64, 86, 62, 58, 84, 60, 56, 89, 65, 61, 99, 75, 71, 108, 84, 80, 114, 90, 86, 124, 103, 98, 104, 83, 78, 95, 74, 69, 90, 69, 64, 77, 56, 51, 69, 48, 43, 61, 42, 36, 45, 28, 21, 53, 38, 31, 45, 32, 24, 44, 31, 25, 51, 38, 32, 55, 41, 38, 54, 40, 39, 55, 43, 43, 61, 49, 49, 65, 53, 55, 83, 71, 71, 86, 75, 73, 65, 54, 52, 54, 45, 40, 70, 61, 54, 82, 73, 64, 77, 68, 59, 113, 104, 95, 131, 124, 116, 134, 127, 121, 144, 137, 131, 171, 166, 162, 179, 175, 172, 178, 177, 175, 194, 194, 194, 200, 201, 203, 205, 209, 212, 213, 218, 222, 218, 226, 229, 222, 229, 235, 224, 233, 240, 226, 235, 244, 227, 236, 243, 227, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 238, 241, 246, 236, 239, 244, 238, 241, 246, 241, 244, 249, 240, 243, 248, 235, 238, 243, 231, 234, 239, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 235, 240, 246, 233, 238, 244, 232, 237, 243, 231, 236, 242, 228, 233, 239, 228, 233, 239, 227, 232, 238, 226, 231, 237, 226, 231, 237, 225, 230, 236, 224, 229, 235, 224, 229, 235, 218, 226, 229, 211, 219, 222, 204, 209, 213, 196, 201, 205, 190, 193, 198, 184, 187, 192, 182, 181, 186, 179, 177, 180, 177, 173, 174, 174, 168, 168, 169, 161, 159, 159, 152, 146, 152, 143, 136, 148, 138, 129, 150, 137, 128, 149, 139, 130, 153, 146, 138, 154, 149, 143, 157, 152, 146, 151, 146, 140, 136, 129, 123, 110, 103, 97, 90, 82, 79, 81, 73, 70, 101, 91, 89, 90, 80, 78, 51, 41, 39, 29, 19, 17, 50, 40, 39, 65, 55, 54, 60, 50, 49, 61, 51, 50, 71, 61, 59, 61, 51, 49, 49, 39, 37, 23, 13, 11, 41, 31, 29, 78, 68, 66, 58, 48, 46, 30, 20, 18, 22, 12, 10, 107, 97, 95, 124, 114, 112, 39, 29, 27, 28, 18, 16, 57, 47, 45, 29, 19, 17, 29, 18, 16, 28, 13, 10, 40, 22, 20, 44, 26, 24, 42, 24, 22, 48, 30, 28, 63, 45, 43, 65, 50, 47, 58, 43, 40, 36, 21, 18, 39, 24, 21, 45, 31, 28, 56, 42, 39, 65, 51, 48, 69, 55, 52, 66, 52, 49, 62, 48, 45, 63, 45, 41, 64, 46, 42, 64, 46, 42, 63, 45, 41, 60, 42, 38, 58, 40, 36, 58, 40, 36, 58, 40, 36, 66, 48, 46, 68, 50, 48, 67, 49, 47, 61, 43, 41, 56, 38, 38, 55, 37, 37, 54, 36, 36, 53, 35, 35, 53, 33, 34, 51, 31, 32, 49, 29, 30, 48, 28, 29, 49, 29, 28, 51, 31, 30, 54, 34, 33, 56, 36, 35, 50, 29, 26, 54, 33, 30, 58, 37, 34, 59, 38, 35, 58, 34, 32, 54, 30, 28, 52, 28, 26, 51, 27, 25, 60, 36, 36, 58, 34, 34, 56, 32, 32, 54, 30, 30, 54, 28, 27, 53, 27, 26, 54, 28, 27, 54, 28, 27, 54, 26, 25, 54, 26, 25, 56, 26, 24, 57, 27, 25, 57, 26, 24, 57, 26, 24, 55, 24, 22, 55, 24, 21, 61, 32, 28, 65, 38, 31, 74, 45, 41, 80, 51, 47, 87, 55, 56, 92, 60, 63, 98, 66, 71, 102, 69, 76, 103, 70, 79, 104, 71, 80, 104, 72, 83, 104, 74, 84, 101, 74, 83, 99, 72, 81, 96, 70, 79, 95, 68, 75, 99, 68, 74, 101, 69, 72, 103, 69, 70, 103, 69, 67, 103, 65, 62, 99, 62, 54, 95, 57, 48, 93, 53, 43, 94, 51, 42, 96, 54, 42, 100, 57, 48, 102, 59, 52, 105, 62, 56, 111, 67, 64, 117, 73, 72, 121, 79, 80, 123, 88, 86, 126, 92, 90, 131, 95, 95, 134, 98, 100, 135, 98, 105, 138, 101, 108, 142, 105, 112, 146, 110, 114, 147, 113, 114, 149, 115, 113, 150, 119, 116, 149, 120, 114, 147, 118, 112, 140, 113, 106, 131, 106, 101, 129, 101, 98, 129, 97, 100, 132, 101, 106, 130, 108, 110, 130, 112, 108, 129, 115, 104, 136, 119, 103, 152, 124, 110, 166, 129, 113, 155, 108, 92, 143, 89, 65, 131, 75, 38, 128, 72, 25, 127, 69, 19, 134, 76, 30, 157, 96, 65, 166, 119, 99, 179, 165, 152, 193, 194, 186, 220, 223, 216, 235, 237, 232, 238, 242, 241, 240, 244, 247, 239, 244, 248, 238, 243, 249, 239, 243, 252, 239, 243, 254, 240, 243, 252, 240, 243, 250, 243, 243, 251, 243, 244, 248, 245, 244, 249, 244, 245, 247, 244, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 250, 239, 244, 250, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 238, 238, 246, 238, 238, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 234, 243, 230, 234, 243, 229, 234, 240, 228, 233, 239, 227, 231, 240, 227, 231, 240, 224, 230, 242, 224, 230, 242, 224, 230, 242, 220, 227, 235, 213, 221, 223, 209, 213, 212, 198, 200, 195, 177, 176, 171, 151, 148, 143, 131, 126, 122, 121, 111, 109, 95, 84, 82, 76, 64, 64, 71, 57, 56, 66, 52, 52, 70, 56, 55, 76, 60, 61, 73, 57, 57, 75, 59, 60, 69, 53, 53, 61, 42, 44, 52, 34, 34, 49, 30, 32, 55, 35, 36, 65, 45, 47, 73, 53, 54, 82, 62, 61, 85, 65, 64, 88, 68, 67, 89, 69, 68, 90, 69, 68, 90, 69, 68, 91, 70, 69, 93, 72, 71, 107, 83, 83, 109, 85, 85, 111, 87, 87, 114, 90, 90, 115, 91, 91, 114, 90, 90, 113, 89, 89, 112, 88, 88, 114, 93, 90, 113, 94, 90, 114, 93, 90, 115, 94, 91, 117, 96, 93, 119, 98, 95, 121, 100, 97, 123, 102, 99, 121, 100, 97, 126, 105, 102, 130, 109, 106, 129, 108, 105, 127, 103, 101, 125, 101, 99, 126, 102, 100, 129, 105, 103, 123, 97, 96, 130, 104, 103, 127, 101, 100, 115, 89, 88, 108, 82, 81, 109, 83, 82, 110, 84, 83, 105, 79, 78, 100, 74, 73, 98, 72, 71, 94, 68, 67, 90, 64, 63, 86, 60, 59, 83, 57, 56, 81, 55, 54, 80, 54, 53, 91, 63, 60, 89, 60, 56, 86, 58, 54, 88, 60, 56, 94, 66, 63, 96, 68, 65, 94, 66, 63, 91, 63, 60, 93, 68, 64, 99, 74, 70, 110, 85, 81, 121, 96, 92, 127, 102, 98, 126, 101, 97, 120, 95, 91, 114, 89, 85, 93, 68, 64, 85, 60, 56, 73, 49, 45, 68, 44, 40, 72, 48, 44, 82, 58, 54, 93, 69, 65, 99, 75, 71, 94, 70, 66, 75, 54, 49, 79, 55, 51, 87, 66, 61, 86, 62, 58, 84, 63, 58, 80, 59, 54, 65, 46, 40, 55, 38, 31, 64, 49, 42, 71, 56, 51, 68, 53, 48, 66, 51, 48, 71, 57, 56, 76, 62, 62, 77, 63, 63, 70, 56, 56, 81, 69, 69, 95, 84, 82, 88, 77, 75, 64, 53, 49, 53, 44, 37, 66, 57, 48, 80, 71, 62, 79, 70, 63, 101, 92, 85, 107, 98, 91, 122, 113, 108, 155, 147, 144, 165, 160, 156, 167, 162, 159, 185, 181, 180, 189, 187, 188, 196, 196, 198, 205, 209, 210, 214, 219, 222, 221, 226, 230, 224, 231, 237, 228, 235, 241, 231, 238, 244, 227, 234, 240, 227, 234, 240, 227, 234, 240, 228, 235, 241, 228, 235, 241, 228, 235, 241, 229, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 240, 243, 248, 237, 240, 245, 236, 239, 244, 238, 241, 246, 241, 244, 249, 240, 243, 248, 235, 238, 243, 230, 233, 238, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 246, 235, 240, 246, 231, 238, 244, 232, 237, 243, 229, 236, 244, 227, 231, 240, 226, 230, 239, 226, 230, 239, 225, 230, 236, 224, 229, 235, 223, 228, 234, 223, 228, 234, 222, 227, 231, 215, 220, 224, 209, 214, 218, 201, 205, 208, 192, 196, 199, 188, 189, 193, 184, 184, 186, 180, 178, 181, 178, 174, 173, 176, 170, 170, 174, 166, 164, 165, 157, 154, 156, 147, 142, 148, 139, 132, 146, 136, 127, 148, 138, 129, 151, 141, 132, 159, 152, 144, 150, 145, 139, 156, 151, 145, 157, 152, 146, 137, 130, 124, 109, 102, 96, 82, 74, 71, 57, 49, 46, 87, 77, 75, 82, 72, 70, 49, 39, 37, 31, 21, 19, 58, 48, 47, 77, 67, 66, 67, 57, 56, 58, 48, 47, 59, 49, 47, 58, 48, 46, 51, 41, 39, 27, 17, 15, 47, 37, 35, 83, 75, 72, 52, 44, 41, 8, 0, 0, 43, 35, 32, 155, 147, 144, 61, 51, 49, 26, 16, 14, 49, 38, 36, 21, 10, 6, 50, 39, 37, 24, 10, 7, 37, 22, 19, 43, 25, 23, 40, 22, 20, 37, 19, 17, 48, 30, 28, 62, 44, 42, 54, 39, 36, 36, 21, 18, 43, 28, 25, 47, 32, 29, 54, 39, 36, 67, 52, 49, 78, 63, 60, 83, 68, 65, 80, 65, 62, 76, 61, 58, 69, 51, 49, 68, 50, 46, 68, 50, 48, 72, 54, 50, 76, 58, 56, 73, 55, 51, 64, 46, 44, 56, 38, 36, 57, 39, 37, 50, 32, 30, 42, 24, 22, 44, 26, 24, 56, 38, 38, 64, 46, 46, 57, 39, 39, 43, 25, 25, 58, 38, 39, 59, 39, 40, 60, 40, 41, 60, 40, 41, 59, 39, 38, 57, 37, 36, 54, 34, 33, 53, 33, 32, 53, 32, 29, 53, 32, 29, 52, 31, 28, 50, 29, 26, 48, 27, 24, 49, 28, 25, 55, 31, 29, 59, 35, 33, 48, 24, 24, 49, 25, 25, 49, 25, 25, 49, 25, 25, 49, 25, 23, 49, 25, 23, 50, 24, 23, 50, 24, 23, 44, 18, 17, 49, 21, 20, 53, 25, 22, 58, 30, 27, 61, 31, 29, 62, 32, 30, 62, 32, 30, 62, 32, 30, 71, 43, 39, 76, 48, 44, 81, 53, 50, 84, 56, 53, 87, 57, 57, 90, 60, 62, 93, 62, 68, 95, 64, 70, 88, 57, 65, 89, 59, 67, 93, 63, 71, 96, 66, 74, 96, 69, 76, 97, 70, 77, 96, 69, 76, 98, 69, 74, 99, 67, 72, 102, 68, 69, 103, 69, 68, 103, 68, 66, 102, 65, 59, 99, 60, 53, 95, 55, 45, 93, 50, 41, 95, 53, 41, 98, 56, 44, 101, 58, 49, 104, 61, 54, 106, 65, 59, 111, 70, 66, 118, 77, 75, 123, 83, 83, 124, 90, 89, 125, 93, 94, 131, 96, 100, 134, 99, 103, 136, 101, 107, 138, 103, 109, 142, 107, 113, 145, 110, 114, 144, 112, 113, 147, 116, 114, 149, 120, 116, 150, 121, 117, 148, 119, 115, 141, 113, 109, 135, 107, 103, 131, 101, 99, 125, 93, 98, 130, 99, 104, 132, 108, 108, 133, 112, 107, 136, 114, 101, 142, 116, 99, 155, 120, 101, 166, 124, 102, 142, 90, 68, 136, 79, 52, 132, 74, 36, 129, 70, 26, 126, 68, 20, 138, 77, 33, 160, 97, 64, 165, 115, 92, 180, 158, 144, 193, 189, 178, 218, 219, 213, 231, 236, 232, 235, 241, 241, 237, 242, 246, 237, 242, 248, 236, 241, 247, 239, 243, 252, 239, 243, 252, 240, 243, 252, 240, 243, 250, 243, 244, 249, 243, 244, 248, 244, 245, 249, 244, 245, 247, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 250, 239, 244, 250, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 238, 238, 246, 238, 238, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 229, 234, 240, 229, 234, 240, 229, 234, 240, 228, 233, 239, 226, 233, 239, 225, 232, 240, 225, 232, 242, 225, 231, 243, 227, 233, 245, 227, 231, 242, 222, 225, 232, 216, 217, 221, 205, 205, 205, 184, 185, 180, 152, 152, 144, 128, 124, 115, 119, 110, 105, 113, 99, 96, 105, 89, 89, 90, 75, 72, 80, 62, 62, 88, 70, 68, 96, 78, 78, 90, 72, 70, 75, 59, 59, 57, 42, 39, 42, 26, 26, 44, 26, 24, 54, 36, 36, 63, 43, 42, 68, 46, 48, 70, 49, 48, 75, 55, 54, 79, 61, 59, 86, 66, 65, 88, 68, 67, 90, 69, 68, 93, 72, 71, 102, 78, 78, 107, 83, 83, 109, 83, 84, 110, 84, 85, 109, 83, 84, 107, 81, 82, 104, 78, 79, 103, 77, 78, 105, 79, 80, 106, 82, 82, 106, 87, 83, 104, 86, 82, 106, 87, 83, 109, 90, 86, 114, 95, 91, 118, 99, 95, 119, 98, 95, 119, 98, 95, 122, 98, 96, 119, 95, 93, 116, 92, 90, 115, 91, 89, 118, 92, 91, 121, 95, 94, 124, 98, 97, 126, 100, 99, 116, 90, 89, 119, 95, 93, 123, 99, 97, 122, 98, 96, 118, 94, 92, 115, 91, 89, 116, 92, 90, 119, 95, 93, 110, 86, 84, 100, 76, 74, 90, 66, 64, 92, 68, 66, 100, 76, 74, 102, 78, 76, 94, 70, 68, 85, 59, 58, 85, 57, 54, 87, 59, 56, 87, 59, 56, 85, 57, 54, 83, 55, 51, 86, 58, 54, 95, 67, 63, 102, 74, 70, 105, 77, 73, 102, 74, 70, 97, 69, 65, 94, 66, 62, 99, 71, 67, 104, 76, 72, 101, 73, 69, 91, 66, 61, 74, 49, 44, 72, 47, 42, 72, 47, 42, 75, 50, 45, 77, 52, 47, 75, 50, 45, 67, 42, 37, 61, 36, 31, 70, 45, 40, 65, 42, 36, 66, 41, 36, 73, 50, 44, 85, 60, 55, 85, 62, 56, 75, 52, 46, 63, 39, 35, 66, 45, 40, 79, 58, 55, 75, 56, 52, 61, 42, 38, 68, 50, 46, 97, 79, 77, 106, 88, 86, 93, 77, 77, 86, 70, 70, 87, 73, 72, 75, 61, 60, 66, 55, 53, 73, 62, 60, 71, 60, 56, 75, 66, 61, 95, 86, 81, 96, 87, 82, 94, 85, 80, 103, 94, 89, 112, 102, 100, 117, 107, 105, 134, 124, 122, 162, 152, 151, 176, 168, 166, 177, 168, 169, 185, 179, 179, 191, 187, 186, 191, 189, 190, 206, 204, 205, 232, 232, 234, 237, 237, 239, 217, 221, 224, 222, 231, 236, 224, 235, 241, 226, 235, 242, 224, 233, 240, 221, 230, 237, 220, 229, 236, 225, 234, 241, 230, 237, 245, 228, 235, 243, 229, 236, 244, 231, 235, 244, 232, 236, 245, 233, 236, 243, 232, 235, 242, 231, 234, 241, 231, 234, 241, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 240, 243, 248, 239, 242, 247, 238, 241, 246, 237, 240, 245, 237, 240, 245, 238, 241, 246, 239, 242, 247, 240, 243, 248, 240, 243, 248, 238, 241, 246, 236, 239, 244, 237, 240, 245, 238, 241, 246, 239, 242, 247, 237, 240, 245, 235, 238, 243, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 243, 231, 236, 239, 231, 237, 237, 230, 238, 240, 232, 240, 243, 234, 241, 247, 231, 240, 245, 227, 234, 242, 222, 231, 240, 227, 234, 244, 221, 228, 238, 218, 225, 235, 221, 225, 234, 220, 225, 231, 215, 218, 225, 211, 214, 219, 213, 214, 219, 209, 210, 215, 204, 205, 209, 197, 197, 199, 191, 191, 193, 188, 186, 187, 185, 181, 180, 181, 175, 175, 177, 172, 168, 176, 168, 165, 174, 165, 160, 166, 157, 152, 154, 145, 138, 143, 134, 127, 140, 131, 124, 144, 135, 128, 149, 140, 133, 154, 147, 139, 142, 135, 127, 169, 162, 156, 162, 155, 149, 123, 115, 112, 103, 95, 92, 76, 68, 66, 54, 46, 44, 69, 61, 59, 68, 60, 58, 45, 37, 35, 39, 31, 29, 55, 47, 44, 59, 51, 48, 59, 51, 48, 66, 56, 54, 72, 61, 59, 59, 48, 46, 53, 43, 41, 45, 35, 33, 50, 42, 39, 49, 44, 40, 28, 25, 20, 29, 26, 21, 126, 121, 115, 90, 85, 79, 43, 36, 30, 33, 22, 18, 45, 31, 28, 30, 15, 10, 26, 8, 6, 54, 36, 34, 54, 36, 34, 33, 18, 15, 25, 10, 7, 39, 24, 21, 57, 42, 39, 58, 43, 40, 52, 34, 32, 45, 27, 25, 38, 20, 18, 55, 37, 35, 76, 58, 56, 86, 68, 66, 80, 62, 60, 68, 50, 48, 58, 40, 38, 54, 36, 34, 67, 47, 46, 77, 57, 56, 89, 69, 70, 94, 74, 73, 91, 71, 72, 86, 66, 65, 82, 62, 63, 81, 61, 62, 74, 54, 55, 72, 52, 53, 70, 50, 51, 68, 48, 49, 67, 47, 48, 67, 47, 48, 69, 49, 50, 70, 50, 51, 59, 39, 38, 55, 35, 34, 51, 31, 30, 52, 32, 31, 56, 36, 35, 59, 39, 38, 57, 37, 36, 54, 34, 33, 56, 36, 35, 52, 32, 31, 48, 28, 27, 46, 26, 25, 48, 28, 27, 49, 29, 28, 51, 30, 29, 50, 29, 28, 49, 28, 25, 47, 26, 23, 44, 23, 20, 43, 22, 19, 45, 24, 21, 49, 28, 25, 56, 32, 30, 59, 35, 33, 44, 20, 18, 53, 27, 26, 62, 36, 35, 67, 41, 40, 69, 41, 40, 64, 36, 35, 59, 31, 30, 57, 29, 28, 66, 40, 39, 72, 46, 45, 80, 54, 55, 87, 61, 62, 87, 62, 65, 84, 59, 63, 78, 53, 57, 74, 49, 55, 86, 61, 67, 88, 63, 69, 92, 65, 72, 94, 67, 72, 96, 67, 72, 94, 65, 70, 90, 61, 65, 89, 59, 61, 92, 58, 57, 94, 59, 57, 95, 60, 56, 98, 61, 55, 100, 61, 54, 100, 60, 52, 101, 58, 49, 102, 58, 47, 101, 57, 46, 100, 58, 46, 101, 58, 49, 102, 62, 54, 106, 67, 60, 111, 72, 67, 116, 78, 75, 117, 81, 81, 124, 93, 98, 127, 97, 105, 131, 100, 106, 135, 103, 108, 137, 105, 110, 139, 107, 110, 144, 112, 115, 146, 116, 116, 148, 119, 121, 150, 122, 121, 151, 123, 122, 150, 122, 121, 147, 117, 115, 141, 112, 108, 136, 105, 102, 132, 101, 98, 128, 99, 101, 128, 99, 101, 127, 99, 96, 132, 103, 95, 146, 113, 98, 159, 121, 100, 163, 117, 93, 160, 109, 80, 139, 82, 52, 138, 78, 44, 136, 74, 37, 134, 71, 30, 131, 68, 27, 135, 73, 34, 152, 89, 54, 163, 109, 83, 184, 151, 134, 199, 182, 172, 214, 211, 206, 225, 229, 228, 233, 243, 245, 231, 240, 247, 230, 237, 245, 238, 245, 251, 237, 244, 250, 237, 244, 250, 239, 244, 250, 242, 243, 248, 244, 243, 249, 244, 243, 248, 242, 246, 249, 242, 246, 247, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 231, 238, 244, 231, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 238, 238, 246, 238, 238, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 229, 234, 240, 229, 234, 240, 229, 234, 240, 228, 233, 239, 226, 233, 239, 226, 233, 239, 225, 232, 242, 225, 232, 242, 226, 230, 242, 225, 229, 240, 222, 225, 234, 218, 219, 224, 210, 210, 210, 192, 193, 188, 163, 163, 153, 138, 135, 126, 110, 101, 96, 96, 82, 79, 91, 76, 73, 94, 76, 74, 86, 66, 65, 81, 61, 60, 82, 62, 61, 79, 61, 59, 70, 52, 50, 60, 45, 42, 53, 38, 35, 54, 39, 36, 60, 40, 39, 61, 41, 40, 67, 43, 43, 70, 49, 48, 89, 69, 68, 92, 74, 72, 98, 78, 77, 98, 78, 77, 95, 74, 73, 92, 71, 70, 94, 68, 69, 96, 70, 71, 101, 75, 76, 104, 78, 79, 109, 80, 82, 111, 82, 84, 109, 83, 84, 110, 84, 85, 113, 87, 88, 114, 90, 90, 117, 98, 94, 115, 97, 93, 115, 96, 92, 117, 98, 94, 121, 102, 98, 123, 102, 99, 123, 102, 99, 122, 101, 98, 106, 82, 80, 110, 86, 84, 116, 90, 89, 117, 91, 90, 113, 87, 86, 109, 83, 82, 110, 82, 81, 108, 82, 81, 117, 93, 91, 118, 94, 92, 117, 93, 91, 113, 89, 87, 107, 83, 81, 102, 78, 76, 99, 75, 73, 99, 75, 73, 107, 83, 81, 98, 74, 72, 90, 66, 64, 90, 66, 64, 95, 71, 69, 99, 75, 73, 96, 72, 70, 91, 67, 65, 95, 70, 66, 95, 67, 64, 91, 63, 60, 86, 58, 55, 81, 53, 50, 80, 52, 48, 83, 55, 51, 86, 58, 54, 88, 60, 56, 95, 67, 63, 96, 69, 62, 89, 62, 55, 81, 54, 47, 81, 54, 47, 85, 58, 51, 86, 59, 52, 75, 50, 45, 72, 47, 42, 69, 44, 39, 68, 43, 38, 68, 43, 38, 65, 40, 35, 59, 34, 29, 54, 29, 24, 69, 44, 39, 70, 45, 40, 71, 46, 41, 72, 47, 42, 73, 48, 43, 76, 51, 46, 81, 56, 51, 86, 61, 56, 92, 68, 66, 94, 70, 68, 81, 60, 57, 63, 42, 39, 66, 45, 42, 86, 67, 63, 96, 76, 75, 90, 72, 70, 86, 68, 66, 81, 66, 63, 68, 52, 52, 63, 49, 48, 68, 54, 53, 58, 47, 45, 49, 38, 36, 55, 45, 43, 96, 86, 84, 99, 89, 87, 91, 81, 79, 94, 84, 82, 109, 98, 96, 111, 100, 98, 124, 112, 112, 157, 145, 145, 138, 128, 127, 151, 141, 140, 179, 171, 169, 201, 196, 193, 203, 199, 198, 201, 197, 196, 212, 211, 209, 228, 230, 229, 221, 229, 232, 222, 233, 237, 226, 237, 243, 225, 236, 242, 223, 232, 239, 222, 231, 238, 225, 234, 241, 229, 238, 245, 228, 235, 243, 228, 235, 243, 232, 236, 245, 232, 236, 245, 233, 236, 243, 233, 236, 243, 232, 235, 242, 231, 234, 241, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 239, 242, 247, 238, 241, 246, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 239, 242, 247, 240, 243, 248, 238, 241, 246, 237, 240, 245, 237, 240, 245, 239, 242, 247, 239, 242, 247, 237, 240, 245, 236, 239, 244, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 243, 230, 236, 236, 230, 236, 236, 229, 237, 239, 231, 239, 242, 232, 241, 246, 231, 240, 247, 226, 235, 244, 222, 231, 240, 222, 230, 241, 216, 225, 234, 213, 220, 230, 215, 219, 228, 214, 217, 224, 209, 212, 217, 207, 208, 213, 207, 208, 212, 201, 200, 205, 198, 198, 200, 195, 193, 194, 192, 188, 187, 189, 183, 183, 185, 180, 177, 185, 177, 174, 183, 176, 170, 173, 164, 157, 167, 158, 151, 157, 148, 141, 146, 137, 130, 140, 131, 124, 141, 132, 125, 147, 138, 131, 153, 144, 137, 149, 142, 134, 143, 136, 128, 160, 153, 147, 146, 139, 133, 118, 110, 107, 103, 95, 92, 73, 65, 63, 57, 49, 47, 71, 63, 61, 57, 49, 47, 41, 33, 31, 39, 31, 29, 43, 35, 32, 47, 39, 36, 57, 49, 46, 69, 59, 57, 67, 56, 54, 70, 59, 57, 70, 60, 58, 35, 27, 24, 50, 42, 39, 56, 51, 47, 27, 24, 19, 70, 69, 64, 127, 124, 117, 76, 71, 65, 39, 32, 26, 42, 31, 27, 56, 41, 36, 60, 42, 38, 57, 38, 34, 53, 34, 30, 51, 33, 31, 39, 24, 21, 35, 20, 17, 43, 28, 25, 51, 36, 33, 50, 35, 32, 50, 32, 30, 51, 33, 31, 56, 38, 36, 68, 50, 48, 79, 61, 59, 77, 59, 57, 68, 48, 47, 60, 40, 39, 63, 43, 42, 69, 49, 48, 85, 65, 66, 87, 67, 68, 89, 69, 70, 87, 67, 68, 81, 61, 62, 74, 54, 55, 70, 50, 51, 68, 48, 49, 64, 44, 45, 66, 46, 47, 69, 49, 50, 71, 51, 52, 70, 50, 51, 66, 46, 47, 61, 41, 42, 58, 38, 39, 57, 37, 36, 54, 34, 33, 52, 32, 31, 52, 32, 31, 53, 33, 32, 54, 34, 33, 53, 33, 32, 52, 32, 31, 53, 33, 32, 51, 31, 30, 49, 29, 28, 50, 30, 29, 53, 33, 32, 55, 35, 34, 55, 35, 34, 54, 34, 33, 43, 22, 19, 55, 34, 31, 72, 51, 48, 82, 61, 58, 82, 61, 58, 74, 53, 50, 63, 42, 39, 57, 36, 33, 52, 28, 26, 52, 28, 26, 52, 28, 26, 54, 30, 28, 61, 35, 34, 73, 47, 46, 87, 61, 60, 97, 71, 70, 98, 72, 73, 98, 72, 73, 96, 71, 74, 94, 69, 72, 90, 68, 71, 86, 64, 67, 82, 59, 65, 80, 57, 63, 83, 60, 66, 87, 62, 68, 91, 64, 69, 93, 66, 71, 94, 65, 69, 92, 63, 67, 90, 60, 62, 89, 57, 58, 93, 59, 57, 94, 59, 55, 96, 59, 53, 96, 59, 53, 97, 56, 50, 96, 56, 48, 97, 54, 45, 97, 53, 42, 97, 53, 42, 97, 54, 45, 98, 58, 50, 102, 63, 56, 109, 70, 65, 115, 78, 72, 120, 85, 81, 123, 89, 88, 125, 95, 103, 127, 100, 109, 133, 103, 111, 137, 106, 111, 139, 108, 113, 141, 111, 113, 145, 115, 115, 147, 119, 118, 147, 121, 122, 149, 123, 124, 150, 124, 125, 152, 124, 123, 149, 119, 117, 144, 113, 110, 141, 106, 102, 136, 103, 98, 134, 104, 102, 133, 105, 102, 134, 103, 98, 140, 104, 92, 150, 109, 91, 159, 111, 88, 159, 105, 77, 154, 95, 63, 148, 86, 49, 144, 80, 42, 140, 75, 35, 139, 74, 36, 138, 74, 36, 143, 79, 43, 157, 95, 58, 165, 110, 80, 186, 147, 130, 202, 178, 168, 215, 208, 202, 223, 227, 228, 232, 241, 246, 231, 241, 250, 230, 239, 246, 239, 246, 252, 236, 245, 250, 237, 245, 248, 239, 244, 248, 242, 243, 248, 244, 243, 249, 244, 243, 248, 242, 246, 249, 241, 247, 247, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 231, 238, 244, 231, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 238, 238, 246, 238, 238, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 226, 233, 239, 226, 233, 239, 226, 233, 243, 225, 232, 242, 224, 228, 240, 224, 228, 239, 222, 225, 234, 221, 222, 227, 216, 216, 216, 202, 203, 198, 175, 175, 167, 153, 150, 141, 111, 102, 97, 88, 74, 73, 85, 69, 69, 100, 82, 82, 95, 75, 76, 79, 59, 60, 70, 50, 51, 65, 47, 47, 71, 53, 53, 67, 51, 51, 66, 50, 50, 67, 51, 51, 69, 49, 50, 69, 49, 50, 81, 56, 59, 89, 67, 69, 98, 78, 77, 98, 80, 78, 99, 79, 78, 96, 76, 75, 93, 72, 71, 90, 69, 68, 93, 67, 68, 94, 68, 69, 98, 72, 73, 102, 76, 77, 107, 81, 82, 111, 85, 86, 112, 86, 87, 114, 88, 89, 117, 91, 92, 118, 94, 94, 122, 101, 98, 118, 99, 95, 117, 96, 93, 117, 96, 93, 118, 97, 94, 120, 96, 94, 118, 94, 92, 116, 92, 90, 112, 86, 85, 118, 92, 91, 125, 99, 98, 127, 101, 100, 123, 97, 96, 120, 94, 93, 119, 93, 92, 120, 94, 93, 131, 107, 105, 129, 105, 103, 127, 103, 101, 126, 102, 100, 126, 102, 100, 125, 101, 99, 122, 98, 96, 119, 95, 93, 116, 92, 90, 110, 86, 84, 103, 79, 77, 100, 76, 74, 100, 76, 74, 102, 78, 76, 102, 78, 76, 102, 78, 76, 89, 63, 62, 86, 60, 59, 83, 57, 56, 83, 58, 54, 85, 60, 56, 88, 63, 59, 90, 65, 61, 90, 65, 61, 74, 49, 44, 82, 57, 52, 84, 59, 54, 78, 53, 48, 71, 46, 41, 72, 47, 42, 75, 50, 45, 77, 52, 47, 77, 52, 47, 75, 50, 45, 74, 49, 44, 77, 52, 47, 83, 58, 53, 88, 63, 58, 90, 65, 60, 90, 65, 60, 77, 52, 47, 78, 53, 48, 76, 51, 46, 73, 48, 43, 71, 46, 41, 74, 49, 44, 80, 55, 50, 86, 61, 56, 98, 74, 72, 99, 75, 73, 96, 72, 70, 89, 68, 65, 87, 66, 63, 87, 68, 64, 82, 62, 61, 73, 55, 53, 68, 50, 48, 58, 43, 40, 47, 32, 29, 46, 32, 29, 54, 40, 39, 45, 34, 32, 32, 21, 19, 30, 19, 17, 62, 52, 50, 83, 73, 71, 86, 75, 73, 99, 88, 86, 124, 113, 111, 107, 96, 94, 95, 83, 83, 125, 113, 113, 126, 116, 115, 129, 119, 118, 150, 142, 140, 182, 177, 174, 199, 195, 194, 197, 193, 192, 201, 200, 198, 216, 216, 216, 214, 219, 222, 217, 227, 229, 223, 232, 237, 224, 233, 238, 223, 230, 236, 222, 229, 235, 224, 231, 237, 227, 234, 240, 229, 234, 240, 230, 235, 241, 231, 235, 244, 232, 236, 245, 233, 237, 246, 232, 236, 245, 232, 236, 245, 231, 235, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 236, 241, 245, 236, 241, 245, 236, 241, 245, 237, 242, 248, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 237, 242, 248, 239, 244, 250, 237, 242, 248, 235, 240, 246, 236, 241, 247, 238, 243, 249, 239, 244, 250, 237, 242, 248, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 243, 229, 234, 237, 228, 233, 236, 227, 235, 237, 229, 237, 240, 231, 238, 244, 230, 237, 245, 226, 233, 243, 223, 230, 240, 219, 226, 236, 211, 218, 228, 208, 212, 221, 207, 212, 218, 206, 209, 214, 201, 202, 206, 198, 199, 203, 198, 199, 201, 189, 189, 191, 191, 189, 190, 192, 188, 189, 189, 185, 184, 186, 181, 178, 183, 178, 174, 185, 177, 174, 187, 178, 173, 171, 162, 155, 160, 151, 144, 146, 137, 128, 136, 127, 118, 136, 127, 118, 143, 134, 125, 152, 143, 136, 158, 149, 142, 146, 139, 131, 151, 144, 136, 154, 147, 141, 130, 123, 117, 118, 110, 107, 106, 98, 95, 70, 62, 60, 62, 54, 52, 75, 67, 65, 47, 39, 37, 43, 35, 33, 40, 32, 30, 27, 19, 16, 38, 30, 27, 61, 53, 50, 72, 62, 60, 60, 48, 48, 68, 56, 56, 76, 66, 65, 42, 34, 32, 54, 46, 44, 60, 55, 52, 46, 43, 38, 126, 123, 118, 96, 93, 88, 49, 44, 40, 33, 26, 20, 42, 31, 27, 46, 32, 29, 64, 46, 44, 69, 49, 48, 45, 25, 24, 50, 32, 30, 47, 32, 29, 47, 32, 29, 49, 34, 31, 47, 32, 29, 44, 29, 26, 51, 33, 31, 60, 42, 40, 71, 53, 51, 75, 57, 55, 73, 55, 53, 62, 44, 42, 50, 30, 29, 50, 30, 29, 63, 43, 42, 76, 56, 55, 90, 70, 71, 84, 64, 65, 77, 57, 58, 71, 51, 52, 66, 46, 47, 62, 42, 43, 59, 39, 40, 56, 36, 37, 57, 37, 38, 59, 39, 40, 62, 42, 43, 64, 44, 45, 63, 43, 44, 59, 39, 40, 54, 34, 35, 51, 31, 32, 58, 38, 37, 59, 39, 38, 59, 39, 38, 58, 38, 37, 55, 35, 34, 53, 33, 32, 53, 33, 32, 55, 35, 34, 60, 40, 39, 59, 39, 38, 60, 40, 39, 64, 44, 43, 68, 48, 47, 70, 50, 49, 69, 49, 48, 67, 47, 46, 83, 64, 60, 89, 70, 66, 94, 73, 70, 88, 67, 64, 74, 53, 50, 59, 38, 35, 51, 30, 27, 49, 28, 25, 61, 37, 35, 68, 44, 42, 77, 53, 51, 85, 61, 59, 92, 68, 66, 99, 75, 73, 106, 80, 79, 111, 85, 84, 94, 68, 69, 89, 63, 64, 81, 56, 59, 74, 49, 52, 70, 45, 49, 70, 45, 49, 72, 47, 53, 74, 49, 55, 76, 51, 57, 79, 54, 60, 84, 57, 62, 87, 60, 65, 91, 62, 66, 92, 63, 67, 92, 62, 64, 93, 61, 62, 98, 64, 63, 99, 64, 60, 100, 63, 57, 98, 61, 55, 98, 57, 51, 95, 55, 47, 96, 53, 44, 95, 52, 43, 96, 53, 44, 98, 55, 46, 100, 60, 52, 105, 66, 59, 112, 73, 68, 118, 81, 75, 122, 87, 83, 125, 91, 92, 128, 99, 104, 129, 102, 111, 136, 106, 114, 140, 111, 115, 142, 113, 117, 145, 116, 118, 148, 119, 121, 149, 123, 124, 150, 124, 125, 151, 127, 127, 153, 127, 126, 153, 125, 122, 151, 120, 117, 147, 114, 107, 143, 106, 98, 139, 102, 94, 140, 107, 100, 142, 109, 100, 146, 110, 98, 149, 110, 93, 157, 112, 89, 164, 113, 84, 161, 105, 72, 155, 95, 58, 154, 91, 50, 148, 83, 41, 143, 78, 36, 144, 79, 37, 146, 83, 42, 152, 88, 50, 163, 101, 64, 168, 113, 82, 186, 145, 127, 198, 174, 164, 210, 203, 197, 220, 224, 223, 231, 240, 245, 231, 241, 250, 231, 240, 247, 240, 247, 253, 236, 245, 250, 237, 245, 248, 239, 244, 248, 242, 243, 248, 244, 243, 249, 244, 243, 248, 241, 246, 249, 241, 247, 247, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 231, 238, 244, 231, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 238, 238, 246, 238, 238, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 227, 234, 240, 226, 233, 239, 226, 233, 241, 226, 233, 243, 224, 228, 240, 224, 228, 239, 223, 226, 235, 221, 224, 229, 219, 220, 222, 208, 209, 204, 183, 182, 177, 162, 159, 152, 122, 112, 110, 97, 86, 84, 92, 78, 77, 102, 86, 86, 101, 83, 83, 90, 70, 71, 77, 57, 58, 63, 45, 45, 70, 54, 54, 67, 51, 51, 66, 50, 50, 68, 52, 52, 73, 53, 54, 77, 57, 58, 92, 67, 70, 101, 79, 81, 93, 73, 72, 90, 72, 70, 88, 68, 67, 85, 65, 64, 87, 66, 65, 94, 70, 70, 101, 75, 76, 106, 80, 81, 105, 79, 80, 106, 80, 81, 108, 82, 83, 108, 82, 83, 108, 82, 83, 111, 85, 86, 115, 89, 90, 118, 94, 94, 125, 101, 99, 122, 98, 96, 119, 95, 93, 118, 94, 92, 118, 94, 92, 116, 92, 90, 113, 89, 87, 111, 87, 85, 110, 84, 83, 110, 84, 83, 110, 84, 83, 113, 87, 86, 117, 91, 90, 122, 96, 95, 125, 99, 98, 126, 102, 100, 121, 97, 95, 118, 94, 92, 115, 91, 89, 117, 93, 91, 122, 98, 96, 125, 101, 99, 123, 99, 97, 120, 96, 94, 122, 98, 96, 121, 97, 95, 117, 93, 91, 112, 88, 86, 106, 82, 80, 103, 79, 77, 103, 79, 77, 104, 80, 78, 104, 78, 77, 98, 72, 71, 93, 67, 66, 92, 66, 65, 93, 67, 66, 93, 68, 64, 90, 65, 61, 85, 60, 56, 79, 54, 50, 78, 53, 48, 75, 50, 45, 75, 50, 45, 81, 56, 51, 86, 61, 56, 82, 57, 52, 74, 49, 44, 65, 40, 35, 65, 40, 35, 66, 41, 36, 72, 47, 42, 82, 57, 52, 93, 68, 63, 103, 78, 73, 109, 84, 79, 101, 76, 71, 95, 70, 65, 89, 64, 59, 89, 64, 59, 92, 67, 62, 91, 66, 61, 84, 59, 54, 77, 52, 47, 80, 56, 54, 79, 55, 53, 84, 60, 58, 93, 69, 67, 94, 73, 70, 88, 67, 64, 82, 61, 60, 78, 58, 57, 68, 48, 47, 59, 41, 39, 52, 34, 32, 51, 36, 33, 55, 39, 39, 49, 35, 34, 41, 27, 26, 38, 27, 25, 30, 19, 17, 55, 45, 43, 72, 61, 59, 88, 77, 75, 105, 94, 92, 97, 86, 84, 83, 71, 71, 90, 78, 78, 117, 105, 105, 127, 117, 116, 133, 125, 123, 147, 139, 137, 170, 164, 164, 189, 185, 184, 196, 192, 191, 196, 196, 196, 202, 206, 207, 208, 213, 216, 217, 222, 225, 221, 226, 229, 221, 226, 230, 221, 226, 230, 223, 228, 232, 226, 231, 237, 228, 233, 239, 229, 234, 240, 230, 234, 243, 232, 236, 245, 232, 236, 245, 232, 236, 245, 232, 236, 245, 231, 235, 244, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 236, 241, 245, 236, 241, 245, 236, 241, 245, 235, 240, 244, 235, 240, 244, 235, 240, 246, 235, 240, 246, 234, 239, 245, 233, 238, 244, 233, 238, 244, 234, 239, 245, 235, 240, 246, 235, 240, 246, 237, 242, 248, 236, 241, 247, 234, 239, 245, 235, 240, 246, 237, 242, 248, 238, 243, 249, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 228, 233, 237, 227, 232, 236, 224, 232, 235, 225, 232, 238, 227, 234, 242, 226, 233, 241, 223, 230, 238, 220, 227, 235, 217, 221, 230, 209, 213, 222, 202, 207, 213, 201, 204, 209, 200, 201, 205, 194, 195, 197, 190, 191, 193, 192, 192, 192, 183, 181, 182, 185, 184, 182, 188, 184, 183, 186, 182, 179, 182, 177, 173, 180, 173, 167, 181, 172, 167, 183, 174, 167, 173, 164, 157, 159, 150, 141, 141, 132, 123, 132, 123, 114, 135, 126, 117, 144, 135, 126, 154, 145, 138, 159, 150, 143, 147, 140, 132, 162, 155, 147, 154, 147, 141, 122, 115, 109, 121, 113, 110, 109, 101, 98, 66, 58, 56, 66, 58, 56, 81, 73, 71, 49, 41, 39, 56, 48, 46, 44, 36, 34, 18, 10, 7, 44, 36, 33, 72, 64, 61, 71, 63, 60, 54, 44, 43, 55, 45, 44, 68, 58, 57, 65, 57, 55, 52, 47, 44, 61, 56, 53, 95, 91, 88, 138, 135, 130, 50, 47, 42, 39, 34, 30, 39, 31, 28, 38, 27, 23, 32, 18, 15, 44, 26, 24, 55, 35, 34, 46, 26, 25, 53, 35, 33, 53, 38, 35, 54, 39, 36, 53, 38, 35, 50, 35, 32, 50, 35, 32, 59, 41, 39, 67, 49, 47, 71, 53, 51, 66, 48, 46, 57, 39, 37, 47, 29, 27, 42, 22, 21, 46, 26, 25, 58, 38, 37, 68, 48, 47, 71, 51, 52, 64, 44, 45, 57, 37, 38, 55, 35, 36, 57, 37, 38, 58, 38, 39, 56, 36, 37, 53, 33, 34, 58, 38, 39, 56, 36, 37, 54, 34, 35, 53, 33, 34, 53, 33, 34, 54, 34, 35, 56, 36, 37, 57, 37, 38, 63, 43, 42, 67, 47, 46, 69, 49, 48, 66, 46, 45, 60, 40, 39, 56, 36, 35, 58, 38, 37, 60, 40, 39, 60, 40, 39, 61, 41, 40, 63, 43, 42, 67, 47, 46, 71, 51, 50, 72, 52, 51, 69, 49, 48, 67, 47, 46, 74, 55, 51, 74, 55, 51, 71, 50, 47, 59, 38, 35, 47, 26, 23, 45, 24, 21, 55, 34, 31, 66, 45, 42, 66, 42, 40, 76, 52, 50, 91, 67, 65, 100, 76, 74, 100, 76, 74, 92, 68, 66, 84, 58, 57, 78, 52, 51, 76, 50, 51, 72, 46, 47, 67, 41, 44, 63, 38, 41, 64, 39, 43, 70, 45, 49, 77, 52, 58, 82, 57, 63, 86, 61, 67, 89, 64, 70, 95, 68, 73, 100, 73, 78, 107, 78, 82, 111, 82, 86, 114, 84, 86, 116, 84, 85, 106, 72, 71, 106, 71, 69, 105, 67, 64, 102, 65, 59, 100, 61, 56, 99, 58, 52, 99, 56, 49, 98, 55, 46, 99, 56, 47, 101, 58, 51, 103, 62, 56, 107, 68, 63, 112, 75, 69, 116, 81, 77, 120, 85, 83, 122, 88, 89, 129, 100, 105, 132, 105, 112, 140, 111, 116, 144, 115, 119, 146, 117, 121, 147, 121, 122, 150, 124, 125, 151, 127, 127, 154, 130, 130, 154, 130, 130, 155, 129, 128, 154, 126, 122, 151, 121, 113, 146, 112, 102, 141, 103, 92, 137, 97, 85, 131, 95, 83, 137, 100, 84, 145, 104, 86, 151, 106, 83, 161, 111, 84, 167, 113, 79, 166, 106, 69, 161, 98, 57, 157, 93, 49, 150, 83, 38, 144, 77, 32, 147, 80, 37, 152, 87, 45, 158, 95, 54, 167, 105, 66, 169, 114, 83, 184, 143, 125, 197, 170, 159, 207, 198, 191, 219, 221, 220, 231, 238, 244, 233, 242, 251, 233, 240, 248, 241, 248, 254, 236, 246, 248, 237, 245, 248, 239, 244, 248, 242, 243, 248, 244, 243, 249, 244, 243, 248, 241, 246, 249, 239, 248, 247, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 231, 238, 244, 231, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 238, 238, 246, 238, 238, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 227, 234, 240, 227, 234, 240, 226, 233, 241, 226, 233, 241, 225, 229, 240, 225, 229, 240, 224, 227, 236, 222, 225, 232, 221, 222, 226, 209, 211, 208, 186, 187, 182, 165, 164, 159, 126, 118, 115, 109, 98, 96, 100, 86, 85, 99, 83, 83, 101, 83, 83, 104, 86, 86, 95, 77, 77, 74, 56, 56, 68, 52, 52, 63, 47, 47, 63, 47, 47, 69, 53, 53, 78, 58, 59, 79, 59, 60, 84, 59, 62, 84, 62, 64, 81, 61, 60, 81, 61, 60, 83, 63, 62, 87, 67, 66, 94, 73, 72, 102, 78, 78, 107, 81, 82, 109, 83, 84, 105, 79, 80, 105, 79, 80, 103, 77, 78, 102, 76, 77, 102, 78, 78, 107, 83, 83, 116, 92, 92, 122, 98, 98, 130, 104, 105, 127, 101, 102, 124, 98, 99, 123, 97, 98, 123, 97, 98, 122, 96, 97, 119, 93, 94, 117, 91, 92, 116, 92, 92, 110, 86, 86, 106, 82, 82, 111, 87, 87, 121, 97, 97, 127, 103, 103, 125, 101, 101, 120, 96, 96, 114, 90, 88, 109, 85, 83, 104, 80, 78, 104, 80, 78, 108, 84, 82, 110, 86, 84, 108, 84, 82, 104, 80, 78, 115, 91, 89, 117, 93, 91, 118, 94, 92, 116, 92, 90, 110, 86, 84, 106, 82, 80, 106, 82, 80, 107, 83, 81, 108, 84, 84, 104, 80, 80, 101, 77, 77, 102, 78, 76, 105, 81, 79, 105, 81, 79, 100, 76, 74, 95, 71, 69, 90, 66, 64, 89, 65, 61, 86, 62, 58, 84, 60, 56, 88, 64, 60, 91, 67, 63, 85, 61, 57, 76, 52, 48, 79, 54, 49, 77, 52, 47, 74, 49, 44, 74, 49, 44, 77, 52, 47, 85, 60, 55, 94, 69, 64, 100, 75, 70, 113, 88, 83, 108, 83, 78, 103, 78, 73, 102, 77, 72, 103, 78, 73, 101, 76, 71, 95, 70, 65, 89, 64, 59, 80, 54, 53, 70, 44, 43, 63, 39, 37, 67, 43, 41, 73, 49, 47, 74, 53, 50, 82, 61, 58, 91, 72, 68, 82, 62, 61, 79, 61, 59, 83, 65, 63, 85, 67, 65, 78, 60, 58, 65, 50, 47, 59, 43, 43, 55, 41, 40, 60, 49, 45, 65, 54, 50, 80, 69, 67, 82, 71, 69, 79, 65, 64, 98, 84, 83, 110, 96, 95, 91, 80, 78, 87, 75, 75, 113, 103, 102, 124, 116, 114, 123, 115, 113, 134, 129, 126, 152, 148, 145, 173, 169, 168, 193, 192, 190, 191, 191, 191, 199, 200, 202, 208, 212, 213, 214, 218, 219, 217, 221, 224, 219, 223, 226, 224, 228, 231, 226, 231, 235, 226, 231, 237, 227, 232, 238, 229, 233, 242, 230, 234, 243, 229, 236, 246, 229, 236, 246, 229, 236, 246, 229, 236, 244, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 236, 241, 245, 236, 241, 245, 236, 241, 245, 235, 240, 244, 235, 240, 244, 235, 240, 244, 234, 239, 243, 232, 239, 245, 231, 238, 244, 230, 237, 243, 229, 236, 242, 229, 236, 242, 230, 237, 243, 231, 238, 244, 232, 239, 245, 233, 240, 246, 232, 239, 245, 231, 238, 244, 232, 239, 245, 234, 241, 247, 236, 243, 249, 235, 242, 248, 233, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 227, 232, 238, 225, 230, 236, 223, 228, 234, 223, 228, 234, 223, 227, 236, 222, 226, 235, 219, 223, 232, 217, 222, 228, 214, 217, 224, 206, 209, 214, 198, 202, 205, 198, 199, 201, 195, 197, 196, 190, 190, 188, 188, 188, 186, 189, 189, 187, 182, 181, 179, 185, 181, 180, 186, 180, 180, 183, 178, 175, 181, 173, 170, 176, 169, 163, 174, 165, 158, 173, 164, 155, 176, 166, 157, 162, 152, 143, 145, 135, 126, 135, 125, 115, 136, 127, 118, 145, 136, 127, 153, 144, 135, 157, 148, 139, 148, 141, 133, 163, 156, 148, 152, 145, 139, 119, 112, 106, 119, 111, 108, 102, 94, 91, 60, 52, 50, 68, 60, 58, 88, 80, 78, 58, 50, 48, 72, 64, 62, 49, 41, 39, 22, 14, 11, 62, 54, 51, 82, 74, 71, 66, 58, 55, 49, 39, 38, 61, 51, 52, 69, 59, 60, 78, 69, 70, 42, 36, 36, 74, 69, 66, 143, 139, 136, 86, 82, 79, 31, 26, 23, 50, 45, 41, 49, 41, 38, 36, 25, 23, 36, 22, 21, 38, 20, 20, 40, 20, 21, 53, 33, 34, 58, 40, 38, 56, 41, 38, 56, 41, 38, 56, 41, 38, 58, 43, 40, 63, 48, 45, 68, 50, 48, 69, 51, 49, 61, 43, 41, 54, 36, 34, 45, 27, 25, 43, 25, 23, 48, 28, 27, 53, 33, 32, 56, 36, 35, 56, 36, 35, 53, 33, 34, 50, 30, 31, 48, 28, 29, 52, 32, 33, 58, 38, 39, 61, 41, 42, 59, 39, 40, 56, 36, 37, 60, 40, 41, 59, 39, 40, 58, 38, 39, 57, 37, 38, 58, 38, 39, 60, 40, 41, 62, 42, 43, 64, 44, 45, 62, 42, 41, 66, 46, 45, 69, 49, 48, 67, 47, 46, 61, 41, 40, 57, 37, 36, 57, 37, 36, 59, 39, 38, 50, 30, 29, 50, 30, 29, 52, 32, 31, 54, 34, 33, 57, 37, 36, 57, 37, 36, 54, 34, 33, 50, 30, 29, 38, 19, 15, 45, 26, 22, 51, 32, 28, 48, 29, 25, 43, 22, 19, 42, 21, 18, 51, 30, 27, 60, 39, 36, 59, 38, 35, 60, 39, 36, 63, 39, 37, 61, 37, 35, 57, 33, 31, 54, 30, 28, 53, 29, 27, 55, 29, 28, 59, 33, 34, 60, 34, 35, 61, 35, 38, 65, 39, 42, 70, 45, 49, 77, 52, 56, 85, 60, 66, 89, 64, 70, 90, 63, 70, 92, 65, 72, 96, 67, 72, 100, 71, 76, 104, 73, 78, 106, 75, 80, 109, 77, 80, 110, 78, 79, 107, 73, 72, 105, 71, 69, 103, 68, 66, 102, 64, 61, 100, 61, 56, 100, 59, 53, 101, 58, 51, 101, 58, 51, 96, 53, 46, 99, 56, 49, 103, 62, 56, 109, 70, 65, 115, 77, 74, 119, 84, 82, 124, 89, 87, 123, 91, 92, 128, 99, 103, 132, 105, 110, 139, 112, 117, 144, 118, 121, 147, 121, 124, 148, 123, 126, 148, 126, 128, 150, 128, 130, 155, 133, 135, 155, 134, 133, 156, 132, 128, 155, 128, 121, 152, 119, 110, 146, 108, 97, 140, 98, 82, 136, 93, 76, 126, 83, 66, 132, 90, 68, 142, 96, 72, 148, 99, 69, 156, 102, 68, 163, 103, 66, 162, 99, 56, 158, 91, 46, 159, 91, 44, 149, 81, 32, 143, 75, 28, 145, 78, 33, 151, 86, 44, 158, 95, 54, 168, 106, 67, 171, 116, 85, 185, 142, 123, 196, 169, 158, 204, 195, 188, 216, 218, 217, 230, 238, 241, 234, 243, 250, 234, 241, 249, 241, 248, 254, 236, 246, 248, 237, 245, 247, 239, 244, 248, 242, 243, 248, 244, 243, 249, 244, 243, 248, 241, 246, 249, 239, 248, 247, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 231, 238, 244, 231, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 238, 238, 246, 238, 238, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 227, 234, 240, 227, 234, 240, 227, 234, 242, 227, 234, 242, 227, 231, 242, 226, 230, 241, 225, 228, 237, 223, 226, 233, 222, 223, 227, 212, 214, 213, 190, 191, 186, 170, 169, 164, 128, 120, 117, 112, 102, 100, 99, 88, 86, 92, 78, 77, 93, 77, 77, 106, 88, 88, 104, 86, 86, 84, 66, 66, 74, 58, 58, 72, 56, 56, 75, 59, 59, 84, 68, 68, 90, 70, 71, 84, 62, 64, 77, 52, 55, 72, 47, 50, 79, 58, 57, 82, 62, 61, 89, 69, 68, 99, 78, 77, 107, 83, 83, 108, 84, 84, 104, 78, 79, 99, 73, 74, 99, 73, 74, 99, 73, 74, 99, 73, 74, 100, 74, 75, 103, 79, 79, 111, 87, 87, 121, 97, 97, 128, 104, 104, 122, 96, 97, 123, 94, 96, 119, 93, 94, 120, 94, 95, 122, 96, 97, 123, 97, 98, 122, 96, 97, 119, 95, 95, 127, 103, 103, 122, 101, 100, 122, 101, 100, 128, 107, 106, 134, 113, 112, 131, 110, 109, 119, 98, 97, 107, 86, 85, 112, 91, 88, 111, 87, 85, 109, 85, 83, 109, 85, 83, 112, 88, 86, 115, 91, 89, 116, 92, 90, 117, 93, 91, 114, 90, 88, 116, 92, 90, 118, 94, 92, 118, 94, 92, 116, 92, 90, 116, 92, 90, 118, 94, 92, 120, 96, 94, 102, 78, 78, 103, 79, 79, 105, 81, 81, 110, 86, 86, 114, 90, 90, 115, 91, 89, 114, 90, 88, 111, 87, 85, 99, 75, 73, 107, 83, 81, 110, 86, 84, 101, 77, 73, 91, 67, 63, 87, 63, 59, 85, 61, 57, 83, 59, 55, 92, 67, 63, 89, 64, 59, 84, 59, 54, 79, 54, 49, 77, 52, 47, 80, 55, 50, 88, 63, 58, 94, 69, 64, 90, 65, 60, 95, 70, 65, 96, 71, 66, 90, 65, 60, 83, 58, 53, 82, 57, 52, 92, 67, 62, 101, 76, 72, 104, 79, 75, 94, 68, 67, 83, 59, 57, 80, 56, 54, 77, 53, 51, 73, 49, 47, 72, 51, 48, 75, 54, 51, 74, 53, 52, 76, 56, 55, 92, 72, 71, 102, 84, 82, 92, 74, 72, 81, 63, 61, 75, 57, 57, 67, 51, 51, 71, 57, 54, 61, 50, 46, 79, 68, 66, 84, 73, 71, 73, 59, 58, 97, 83, 82, 118, 104, 103, 94, 80, 79, 84, 72, 72, 93, 81, 81, 93, 83, 82, 105, 97, 95, 133, 125, 123, 143, 138, 135, 155, 149, 149, 182, 178, 177, 177, 176, 174, 186, 185, 183, 196, 196, 194, 205, 205, 205, 211, 211, 211, 216, 217, 219, 223, 224, 226, 227, 231, 234, 224, 227, 232, 224, 229, 235, 226, 231, 237, 228, 232, 241, 228, 235, 245, 228, 235, 245, 228, 235, 245, 228, 235, 243, 230, 234, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 236, 241, 245, 236, 241, 245, 235, 240, 244, 235, 240, 244, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 230, 237, 243, 230, 237, 243, 229, 236, 242, 228, 235, 241, 228, 235, 241, 229, 236, 242, 230, 237, 243, 230, 237, 243, 231, 238, 244, 229, 236, 242, 228, 235, 241, 230, 237, 243, 233, 240, 246, 234, 241, 247, 234, 241, 247, 232, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 228, 233, 239, 225, 230, 236, 221, 226, 232, 219, 224, 230, 218, 222, 231, 217, 220, 227, 213, 216, 223, 213, 214, 219, 212, 213, 218, 203, 204, 208, 197, 197, 199, 194, 194, 194, 192, 192, 190, 187, 188, 183, 186, 185, 181, 188, 187, 183, 185, 181, 178, 184, 179, 176, 181, 176, 173, 180, 175, 171, 180, 173, 167, 175, 168, 160, 170, 161, 152, 164, 155, 146, 172, 162, 153, 163, 153, 144, 150, 140, 130, 142, 132, 122, 140, 131, 122, 144, 135, 126, 150, 141, 132, 154, 145, 136, 149, 142, 134, 154, 147, 139, 144, 137, 131, 115, 108, 102, 108, 100, 97, 89, 81, 78, 57, 49, 47, 74, 66, 64, 93, 85, 83, 61, 53, 51, 77, 69, 67, 55, 47, 45, 38, 30, 27, 76, 68, 65, 77, 69, 66, 55, 47, 45, 46, 36, 37, 82, 72, 73, 83, 74, 75, 65, 56, 57, 41, 35, 35, 101, 95, 95, 141, 137, 134, 25, 21, 18, 33, 28, 25, 52, 47, 44, 43, 33, 31, 31, 20, 18, 45, 31, 30, 42, 26, 26, 36, 18, 18, 51, 33, 33, 59, 44, 41, 60, 45, 42, 59, 44, 41, 58, 43, 40, 64, 49, 46, 70, 55, 52, 70, 52, 50, 64, 46, 44, 54, 36, 34, 49, 31, 29, 46, 28, 26, 49, 31, 29, 57, 37, 36, 61, 41, 40, 58, 38, 37, 53, 33, 32, 53, 33, 34, 53, 33, 34, 55, 35, 36, 59, 39, 40, 63, 43, 44, 64, 44, 45, 63, 43, 44, 60, 40, 41, 62, 42, 43, 65, 45, 46, 68, 48, 49, 70, 50, 51, 70, 50, 51, 67, 47, 48, 63, 43, 44, 60, 40, 41, 53, 33, 32, 56, 36, 35, 58, 38, 37, 58, 38, 37, 55, 35, 34, 52, 32, 31, 50, 30, 29, 49, 29, 28, 47, 27, 26, 46, 26, 25, 46, 26, 25, 48, 28, 27, 50, 30, 29, 51, 31, 30, 49, 29, 28, 46, 26, 25, 53, 34, 30, 57, 38, 34, 57, 38, 34, 51, 32, 28, 42, 21, 18, 36, 15, 12, 37, 16, 13, 40, 19, 16, 47, 26, 23, 47, 26, 23, 48, 24, 22, 47, 23, 21, 47, 23, 21, 50, 26, 24, 56, 32, 30, 61, 37, 35, 61, 32, 34, 64, 35, 37, 68, 42, 45, 74, 48, 51, 80, 55, 59, 85, 60, 64, 88, 63, 69, 90, 65, 71, 94, 67, 74, 93, 66, 73, 94, 65, 70, 93, 64, 69, 92, 61, 66, 91, 60, 65, 91, 59, 62, 91, 59, 62, 101, 67, 68, 99, 65, 64, 97, 61, 61, 95, 60, 58, 96, 58, 55, 97, 58, 53, 99, 58, 52, 102, 59, 52, 95, 52, 46, 97, 56, 50, 104, 65, 60, 112, 74, 71, 118, 83, 81, 126, 91, 89, 129, 95, 94, 130, 98, 99, 126, 97, 101, 130, 103, 108, 138, 112, 115, 143, 118, 121, 146, 121, 124, 146, 124, 126, 147, 127, 129, 147, 128, 130, 154, 134, 135, 155, 135, 134, 157, 133, 129, 157, 128, 120, 154, 120, 110, 149, 110, 95, 146, 101, 82, 143, 95, 73, 145, 97, 74, 151, 104, 76, 157, 106, 75, 159, 105, 69, 162, 103, 63, 165, 102, 59, 164, 98, 50, 159, 91, 42, 158, 88, 37, 150, 80, 29, 144, 74, 25, 142, 75, 30, 146, 81, 39, 154, 91, 50, 168, 106, 69, 175, 120, 89, 188, 145, 126, 197, 169, 157, 204, 193, 187, 214, 216, 215, 230, 238, 241, 234, 243, 250, 234, 241, 249, 240, 247, 253, 237, 245, 248, 237, 245, 247, 239, 244, 248, 242, 243, 248, 244, 243, 249, 244, 243, 249, 241, 246, 249, 239, 247, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 231, 238, 244, 231, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 238, 238, 246, 238, 238, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 235, 244, 232, 235, 244, 230, 235, 241, 230, 235, 241, 228, 236, 239, 227, 235, 238, 227, 234, 240, 227, 234, 242, 225, 232, 242, 224, 231, 241, 225, 229, 238, 223, 228, 234, 224, 227, 232, 216, 220, 221, 197, 199, 196, 177, 178, 173, 141, 136, 132, 119, 109, 107, 102, 91, 89, 95, 81, 80, 89, 73, 73, 91, 73, 73, 89, 71, 71, 78, 60, 60, 74, 58, 58, 75, 59, 59, 79, 63, 63, 84, 68, 68, 84, 64, 65, 79, 57, 59, 79, 54, 57, 81, 56, 59, 87, 66, 65, 86, 66, 65, 90, 69, 68, 96, 75, 74, 103, 79, 79, 104, 80, 80, 100, 74, 75, 96, 70, 71, 96, 70, 71, 99, 73, 74, 104, 78, 79, 107, 81, 82, 110, 86, 86, 114, 90, 90, 118, 97, 96, 124, 100, 100, 114, 88, 89, 113, 87, 88, 113, 87, 88, 117, 91, 92, 121, 97, 97, 124, 100, 100, 124, 100, 100, 122, 101, 100, 122, 101, 100, 125, 105, 104, 129, 109, 108, 131, 111, 110, 126, 106, 105, 117, 99, 97, 109, 91, 89, 103, 85, 83, 112, 91, 88, 112, 91, 88, 112, 91, 88, 111, 90, 87, 111, 90, 87, 114, 93, 90, 119, 98, 95, 123, 102, 99, 120, 99, 96, 116, 95, 92, 110, 89, 86, 106, 85, 82, 106, 85, 82, 109, 88, 85, 114, 93, 90, 117, 96, 93, 112, 91, 90, 115, 93, 95, 117, 95, 97, 115, 93, 95, 110, 88, 90, 103, 82, 81, 99, 78, 77, 96, 75, 74, 104, 83, 82, 113, 92, 89, 117, 96, 93, 110, 89, 86, 100, 79, 76, 96, 75, 72, 94, 73, 70, 95, 71, 67, 80, 55, 51, 79, 54, 50, 76, 51, 47, 71, 46, 42, 68, 43, 39, 71, 46, 42, 79, 54, 50, 85, 60, 56, 71, 46, 42, 78, 53, 49, 83, 58, 54, 79, 54, 50, 72, 47, 43, 72, 47, 43, 81, 56, 52, 90, 65, 61, 108, 83, 79, 107, 82, 78, 105, 80, 76, 102, 77, 73, 97, 73, 71, 91, 67, 65, 82, 58, 56, 72, 51, 48, 74, 53, 50, 68, 47, 44, 81, 60, 59, 93, 73, 72, 89, 69, 68, 87, 67, 66, 87, 67, 66, 78, 60, 58, 48, 34, 31, 36, 22, 19, 46, 32, 29, 60, 46, 43, 57, 43, 42, 61, 47, 46, 70, 56, 55, 66, 52, 51, 96, 82, 81, 92, 81, 79, 69, 59, 58, 72, 64, 62, 116, 108, 106, 142, 137, 134, 147, 142, 139, 157, 152, 149, 157, 153, 150, 166, 162, 159, 177, 173, 170, 187, 183, 182, 194, 193, 191, 204, 202, 203, 215, 215, 217, 222, 223, 227, 222, 226, 229, 223, 226, 231, 224, 229, 235, 226, 231, 237, 226, 233, 241, 227, 234, 242, 226, 235, 244, 227, 234, 242, 230, 234, 243, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 235, 240, 244, 235, 240, 244, 235, 240, 244, 234, 239, 243, 234, 239, 243, 234, 239, 243, 233, 238, 242, 233, 238, 242, 229, 236, 242, 228, 235, 241, 227, 234, 240, 227, 234, 240, 227, 234, 240, 227, 234, 240, 228, 235, 241, 229, 236, 242, 228, 235, 241, 227, 234, 240, 226, 233, 239, 228, 235, 241, 231, 238, 244, 233, 240, 246, 232, 239, 245, 231, 238, 244, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 227, 234, 242, 223, 230, 238, 219, 223, 232, 215, 219, 228, 214, 217, 224, 213, 213, 221, 209, 210, 215, 207, 206, 211, 208, 208, 210, 199, 199, 199, 192, 191, 189, 190, 189, 185, 188, 187, 182, 185, 185, 177, 187, 184, 177, 189, 186, 179, 185, 180, 176, 182, 174, 171, 177, 169, 166, 178, 171, 165, 182, 173, 166, 179, 170, 161, 170, 160, 151, 161, 151, 141, 161, 151, 141, 159, 149, 139, 153, 143, 133, 147, 137, 127, 143, 135, 124, 143, 135, 124, 148, 139, 130, 152, 143, 134, 154, 147, 139, 144, 137, 129, 137, 130, 124, 113, 106, 100, 96, 88, 85, 78, 70, 67, 64, 56, 54, 93, 85, 83, 97, 89, 87, 52, 44, 42, 66, 58, 56, 60, 52, 50, 58, 50, 47, 79, 71, 68, 56, 48, 45, 43, 35, 33, 49, 40, 41, 86, 77, 80, 87, 78, 81, 41, 32, 35, 72, 66, 66, 128, 122, 122, 81, 75, 75, 20, 14, 14, 41, 36, 33, 39, 34, 31, 35, 25, 24, 36, 24, 24, 44, 30, 30, 47, 31, 32, 48, 32, 33, 52, 36, 36, 59, 44, 41, 65, 50, 47, 66, 51, 48, 62, 47, 44, 63, 48, 45, 66, 51, 48, 64, 46, 44, 55, 37, 35, 50, 32, 30, 51, 33, 31, 53, 35, 33, 53, 35, 33, 55, 35, 34, 56, 36, 35, 58, 38, 37, 60, 40, 39, 57, 37, 36, 59, 39, 38, 62, 42, 41, 64, 44, 43, 63, 43, 42, 63, 43, 42, 65, 45, 44, 67, 47, 46, 67, 47, 46, 68, 48, 47, 70, 50, 49, 69, 49, 48, 65, 45, 44, 59, 39, 38, 53, 33, 32, 48, 28, 27, 44, 24, 23, 45, 25, 24, 46, 26, 25, 48, 28, 27, 49, 29, 28, 48, 28, 27, 43, 23, 22, 40, 20, 19, 49, 29, 28, 47, 27, 26, 46, 26, 25, 47, 27, 26, 51, 31, 30, 54, 34, 33, 55, 35, 34, 54, 34, 33, 64, 45, 41, 62, 43, 39, 58, 39, 35, 51, 32, 28, 45, 26, 22, 43, 24, 20, 46, 25, 22, 49, 28, 25, 40, 19, 16, 44, 23, 20, 50, 29, 26, 54, 33, 30, 58, 34, 32, 60, 36, 34, 63, 39, 37, 66, 42, 40, 74, 45, 47, 78, 49, 51, 82, 56, 59, 89, 63, 66, 95, 68, 73, 98, 71, 76, 98, 73, 79, 99, 74, 80, 107, 80, 87, 105, 78, 85, 105, 76, 81, 102, 73, 78, 101, 70, 75, 99, 68, 73, 100, 68, 71, 99, 67, 70, 95, 63, 64, 95, 61, 60, 94, 58, 58, 93, 58, 56, 96, 58, 55, 99, 60, 55, 103, 62, 58, 105, 64, 58, 106, 65, 61, 109, 68, 64, 114, 75, 70, 119, 81, 78, 123, 88, 86, 127, 91, 91, 129, 95, 96, 126, 96, 96, 123, 94, 98, 127, 101, 104, 135, 110, 113, 141, 116, 119, 143, 121, 124, 143, 123, 125, 144, 125, 127, 143, 127, 128, 150, 132, 132, 152, 132, 131, 156, 133, 127, 159, 130, 122, 161, 125, 111, 159, 118, 100, 156, 110, 87, 155, 105, 80, 165, 111, 83, 171, 116, 85, 174, 115, 81, 170, 111, 71, 169, 104, 62, 171, 103, 58, 170, 100, 51, 166, 94, 44, 158, 87, 35, 151, 79, 29, 144, 74, 25, 141, 73, 28, 140, 75, 33, 149, 87, 48, 167, 107, 71, 181, 128, 97, 191, 148, 129, 199, 171, 159, 203, 192, 186, 215, 215, 213, 232, 237, 241, 234, 243, 250, 234, 241, 247, 239, 246, 252, 237, 245, 248, 237, 245, 247, 239, 244, 248, 242, 243, 248, 244, 243, 249, 244, 243, 249, 241, 246, 249, 239, 247, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 231, 238, 244, 231, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 238, 238, 246, 238, 238, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 235, 244, 232, 235, 244, 231, 236, 242, 230, 235, 241, 228, 236, 239, 227, 235, 238, 227, 234, 240, 227, 234, 240, 224, 231, 239, 224, 231, 241, 225, 229, 238, 225, 229, 238, 227, 230, 235, 221, 225, 228, 201, 205, 204, 184, 184, 182, 160, 156, 153, 127, 119, 116, 107, 97, 95, 102, 91, 89, 89, 73, 73, 74, 56, 56, 69, 51, 51, 66, 48, 48, 61, 45, 45, 63, 47, 47, 64, 48, 48, 65, 47, 47, 60, 40, 41, 62, 40, 42, 79, 54, 57, 96, 71, 74, 95, 74, 73, 87, 67, 66, 81, 60, 59, 81, 60, 59, 88, 64, 64, 96, 72, 72, 101, 75, 76, 102, 76, 77, 99, 73, 74, 105, 79, 80, 112, 86, 87, 115, 91, 91, 116, 92, 92, 112, 91, 90, 111, 90, 89, 111, 90, 89, 115, 91, 91, 115, 91, 91, 117, 93, 93, 122, 98, 98, 129, 105, 105, 132, 111, 110, 134, 113, 112, 133, 113, 112, 135, 115, 114, 142, 124, 122, 147, 129, 127, 140, 125, 122, 129, 114, 111, 122, 107, 104, 126, 111, 108, 132, 117, 114, 136, 117, 113, 138, 117, 114, 135, 114, 111, 129, 108, 105, 121, 100, 97, 119, 98, 95, 123, 102, 99, 127, 106, 103, 122, 101, 98, 111, 90, 87, 97, 76, 73, 87, 66, 63, 84, 63, 60, 88, 67, 64, 93, 72, 69, 96, 75, 74, 104, 82, 84, 110, 88, 90, 115, 93, 95, 115, 93, 95, 109, 87, 89, 103, 81, 83, 100, 79, 78, 101, 80, 79, 110, 89, 88, 111, 90, 89, 110, 89, 86, 111, 90, 87, 116, 95, 92, 119, 98, 95, 112, 91, 88, 102, 81, 78, 93, 68, 64, 93, 68, 64, 90, 65, 61, 84, 59, 55, 79, 54, 50, 79, 54, 50, 86, 61, 57, 92, 67, 63, 77, 52, 48, 79, 54, 50, 83, 58, 54, 87, 62, 58, 89, 64, 60, 85, 60, 56, 79, 54, 50, 74, 49, 45, 87, 62, 58, 88, 63, 59, 87, 62, 58, 86, 61, 57, 92, 68, 66, 105, 81, 79, 112, 88, 86, 111, 87, 85, 105, 84, 81, 84, 63, 60, 79, 58, 57, 84, 63, 62, 82, 61, 60, 86, 66, 65, 92, 72, 71, 84, 66, 64, 78, 63, 60, 52, 38, 35, 35, 21, 18, 43, 29, 26, 47, 33, 32, 34, 20, 19, 38, 24, 23, 66, 52, 51, 82, 68, 67, 106, 92, 91, 78, 66, 66, 41, 31, 30, 68, 60, 58, 117, 109, 107, 135, 130, 127, 142, 137, 134, 142, 134, 131, 151, 143, 140, 162, 154, 151, 170, 165, 162, 181, 176, 173, 192, 188, 187, 204, 202, 203, 213, 213, 215, 222, 223, 225, 222, 226, 229, 224, 227, 232, 225, 230, 236, 227, 232, 238, 226, 233, 241, 226, 233, 241, 226, 233, 241, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 235, 240, 244, 235, 240, 244, 234, 239, 243, 234, 239, 243, 234, 239, 243, 233, 238, 242, 233, 238, 242, 233, 238, 242, 228, 235, 241, 228, 235, 241, 227, 234, 240, 226, 233, 239, 226, 233, 239, 227, 234, 240, 228, 235, 241, 228, 235, 241, 227, 234, 240, 225, 232, 238, 225, 232, 238, 227, 234, 240, 230, 237, 243, 232, 239, 245, 231, 238, 244, 230, 237, 243, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 228, 235, 245, 223, 230, 240, 219, 223, 232, 214, 217, 224, 213, 213, 221, 210, 209, 215, 206, 205, 210, 204, 202, 205, 205, 203, 204, 198, 194, 193, 190, 186, 183, 189, 186, 181, 188, 183, 177, 185, 182, 173, 185, 182, 173, 189, 185, 176, 186, 179, 173, 178, 171, 165, 172, 165, 159, 176, 167, 160, 184, 175, 166, 184, 174, 165, 172, 162, 152, 160, 150, 140, 152, 142, 132, 154, 144, 134, 154, 144, 134, 150, 140, 130, 144, 136, 125, 143, 135, 124, 147, 138, 129, 152, 143, 134, 161, 154, 146, 139, 132, 124, 134, 127, 121, 114, 107, 101, 90, 82, 79, 75, 67, 64, 75, 67, 65, 112, 104, 102, 99, 91, 89, 42, 34, 32, 53, 45, 43, 62, 54, 52, 71, 63, 60, 75, 67, 64, 36, 28, 25, 35, 27, 25, 56, 47, 48, 74, 65, 68, 79, 70, 73, 27, 18, 21, 110, 104, 104, 141, 135, 135, 16, 10, 10, 49, 43, 43, 47, 42, 39, 33, 25, 23, 42, 32, 31, 51, 41, 40, 41, 29, 29, 50, 36, 36, 69, 53, 54, 68, 52, 52, 57, 41, 41, 68, 53, 50, 72, 57, 54, 65, 50, 47, 60, 45, 42, 59, 44, 41, 56, 38, 36, 48, 30, 28, 48, 30, 28, 54, 36, 34, 58, 40, 38, 53, 35, 33, 46, 26, 25, 45, 25, 24, 55, 35, 34, 66, 46, 45, 56, 36, 35, 59, 39, 38, 62, 42, 41, 62, 42, 41, 60, 40, 39, 61, 41, 40, 67, 47, 46, 72, 52, 51, 73, 53, 52, 69, 49, 48, 63, 43, 42, 55, 35, 34, 49, 29, 28, 44, 24, 23, 42, 22, 21, 41, 21, 20, 41, 21, 20, 39, 19, 18, 40, 20, 19, 43, 23, 22, 48, 28, 27, 47, 27, 26, 42, 22, 21, 36, 16, 15, 43, 23, 22, 40, 20, 19, 39, 19, 18, 41, 21, 20, 46, 26, 25, 52, 32, 31, 55, 35, 34, 56, 36, 35, 60, 41, 37, 62, 43, 39, 63, 44, 40, 62, 43, 39, 58, 39, 35, 51, 32, 28, 45, 24, 21, 40, 19, 16, 40, 19, 16, 40, 19, 16, 39, 18, 15, 38, 17, 14, 40, 16, 14, 45, 21, 19, 51, 27, 25, 57, 33, 31, 58, 32, 33, 63, 34, 36, 68, 42, 45, 74, 48, 51, 80, 53, 58, 84, 57, 62, 85, 60, 66, 86, 61, 67, 88, 61, 68, 88, 61, 68, 89, 60, 65, 88, 59, 64, 90, 59, 64, 91, 60, 65, 93, 61, 64, 94, 62, 65, 95, 63, 64, 94, 62, 63, 94, 60, 59, 95, 60, 58, 99, 61, 60, 103, 65, 62, 108, 69, 64, 112, 71, 67, 123, 82, 78, 123, 84, 79, 125, 87, 84, 127, 89, 86, 125, 89, 89, 123, 89, 88, 120, 88, 89, 118, 88, 90, 120, 91, 93, 125, 99, 102, 133, 108, 111, 138, 116, 118, 142, 120, 123, 141, 122, 124, 140, 124, 125, 141, 125, 126, 145, 129, 129, 149, 131, 129, 156, 133, 127, 161, 133, 122, 166, 130, 116, 166, 125, 105, 165, 119, 95, 166, 115, 86, 163, 106, 76, 169, 110, 76, 172, 110, 73, 167, 102, 62, 165, 96, 54, 167, 96, 50, 167, 93, 44, 164, 91, 40, 159, 86, 35, 152, 80, 30, 145, 74, 28, 140, 71, 29, 138, 73, 35, 147, 84, 49, 168, 108, 74, 185, 131, 103, 194, 151, 132, 201, 172, 158, 206, 193, 185, 215, 215, 213, 232, 237, 241, 235, 242, 250, 235, 240, 246, 240, 245, 249, 237, 245, 248, 237, 245, 247, 239, 244, 248, 242, 243, 248, 244, 243, 249, 243, 244, 249, 241, 246, 249, 239, 247, 249, 241, 246, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 231, 238, 244, 231, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 238, 238, 246, 238, 238, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 235, 244, 232, 235, 244, 230, 235, 241, 230, 235, 241, 227, 235, 238, 227, 235, 238, 227, 234, 240, 227, 234, 240, 230, 239, 246, 225, 234, 241, 221, 228, 238, 220, 227, 235, 221, 226, 232, 215, 220, 224, 202, 208, 208, 194, 196, 195, 165, 161, 158, 136, 128, 126, 108, 98, 97, 98, 86, 86, 90, 74, 75, 71, 55, 56, 58, 42, 43, 56, 40, 41, 76, 60, 61, 76, 60, 61, 65, 49, 50, 51, 32, 34, 51, 31, 33, 71, 49, 52, 95, 70, 74, 106, 81, 84, 82, 61, 60, 75, 54, 53, 80, 56, 56, 93, 69, 69, 101, 75, 76, 99, 73, 74, 101, 75, 76, 107, 81, 82, 109, 83, 84, 109, 83, 84, 107, 83, 83, 106, 82, 82, 106, 82, 82, 109, 88, 87, 118, 97, 96, 126, 105, 104, 110, 89, 88, 115, 94, 93, 120, 99, 98, 121, 100, 99, 121, 100, 99, 125, 105, 104, 135, 115, 114, 143, 125, 123, 147, 129, 127, 141, 126, 123, 135, 120, 117, 130, 116, 113, 131, 117, 114, 135, 121, 118, 141, 127, 124, 146, 131, 128, 148, 128, 127, 145, 124, 123, 141, 120, 119, 138, 117, 116, 136, 115, 114, 133, 112, 111, 129, 108, 107, 126, 105, 104, 124, 103, 102, 124, 103, 102, 122, 101, 100, 117, 96, 95, 113, 92, 91, 116, 95, 94, 125, 104, 103, 132, 111, 110, 115, 93, 95, 116, 94, 96, 119, 97, 99, 123, 101, 103, 125, 103, 105, 122, 100, 102, 116, 94, 96, 111, 89, 91, 114, 93, 92, 113, 92, 91, 113, 92, 91, 114, 93, 92, 118, 97, 94, 122, 101, 98, 127, 106, 103, 130, 109, 106, 109, 84, 80, 106, 81, 77, 101, 76, 72, 98, 73, 69, 95, 70, 66, 91, 66, 62, 86, 61, 57, 82, 57, 53, 85, 60, 56, 85, 60, 56, 80, 55, 51, 76, 51, 47, 86, 61, 57, 104, 79, 75, 111, 86, 82, 108, 83, 79, 85, 60, 56, 74, 49, 45, 64, 40, 36, 70, 46, 42, 85, 61, 57, 96, 72, 68, 96, 72, 70, 92, 68, 66, 87, 63, 61, 79, 55, 53, 75, 51, 49, 76, 55, 52, 73, 52, 51, 65, 44, 43, 65, 44, 43, 70, 50, 49, 84, 66, 64, 71, 56, 53, 65, 50, 47, 56, 41, 38, 42, 27, 24, 39, 24, 21, 41, 26, 23, 35, 20, 17, 50, 36, 35, 75, 61, 60, 81, 70, 68, 59, 49, 47, 45, 37, 35, 67, 59, 57, 105, 100, 97, 134, 126, 123, 146, 137, 132, 137, 128, 123, 142, 133, 128, 156, 148, 145, 159, 151, 148, 156, 151, 148, 174, 170, 169, 201, 199, 200, 211, 211, 213, 220, 221, 225, 225, 229, 232, 223, 228, 232, 221, 226, 232, 223, 230, 236, 228, 235, 241, 230, 237, 243, 229, 234, 240, 232, 237, 243, 234, 239, 245, 233, 238, 244, 231, 236, 242, 230, 235, 241, 230, 235, 241, 231, 236, 242, 232, 237, 243, 234, 239, 245, 236, 241, 247, 236, 241, 247, 234, 239, 245, 232, 237, 243, 232, 237, 243, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 237, 242, 246, 237, 242, 246, 237, 242, 246, 235, 240, 244, 233, 238, 242, 231, 236, 240, 228, 233, 237, 227, 232, 236, 227, 232, 238, 228, 233, 239, 227, 232, 238, 225, 230, 236, 222, 227, 233, 222, 227, 233, 223, 228, 234, 226, 231, 237, 227, 232, 238, 219, 224, 230, 216, 221, 227, 226, 231, 237, 236, 241, 247, 237, 242, 248, 232, 237, 243, 228, 233, 239, 233, 238, 244, 235, 240, 246, 237, 242, 248, 236, 241, 247, 234, 239, 245, 232, 237, 243, 232, 237, 243, 233, 238, 244, 238, 243, 249, 236, 241, 247, 234, 239, 245, 231, 236, 242, 230, 235, 241, 231, 236, 242, 233, 238, 244, 234, 239, 245, 235, 240, 246, 235, 240, 246, 234, 239, 245, 233, 238, 244, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 233, 238, 244, 232, 237, 243, 232, 237, 243, 231, 236, 242, 230, 235, 241, 229, 234, 240, 229, 234, 240, 228, 233, 239, 221, 228, 238, 217, 224, 234, 223, 227, 236, 217, 220, 227, 203, 204, 209, 203, 202, 207, 206, 204, 207, 195, 191, 192, 200, 195, 192, 196, 191, 187, 191, 186, 182, 188, 183, 177, 190, 183, 175, 188, 184, 173, 187, 183, 172, 186, 182, 173, 182, 175, 167, 182, 173, 166, 178, 169, 162, 174, 163, 157, 174, 164, 155, 176, 163, 155, 170, 157, 148, 161, 148, 139, 153, 141, 129, 154, 142, 130, 146, 136, 126, 139, 129, 119, 143, 134, 125, 154, 145, 136, 153, 146, 136, 146, 139, 129, 147, 140, 132, 150, 143, 135, 129, 122, 116, 125, 118, 112, 99, 91, 88, 63, 55, 52, 86, 78, 76, 113, 105, 103, 88, 80, 78, 36, 28, 26, 43, 35, 33, 72, 64, 62, 74, 66, 63, 53, 45, 42, 34, 26, 23, 49, 41, 39, 58, 52, 52, 61, 55, 57, 67, 61, 63, 65, 59, 61, 152, 146, 146, 75, 69, 69, 35, 29, 29, 53, 47, 47, 43, 35, 33, 55, 47, 45, 53, 43, 42, 53, 43, 42, 64, 52, 52, 57, 45, 45, 39, 25, 25, 32, 18, 17, 37, 21, 21, 50, 35, 32, 50, 35, 32, 51, 36, 33, 60, 45, 42, 56, 41, 38, 52, 34, 32, 60, 42, 40, 63, 45, 43, 58, 40, 38, 52, 34, 32, 49, 31, 29, 51, 31, 30, 55, 35, 34, 58, 38, 37, 60, 40, 39, 51, 31, 30, 55, 35, 34, 62, 42, 41, 67, 47, 46, 67, 47, 46, 63, 43, 42, 58, 38, 37, 53, 33, 32, 59, 39, 38, 52, 32, 31, 46, 26, 25, 44, 24, 23, 46, 26, 25, 45, 25, 24, 40, 20, 19, 35, 15, 14, 44, 26, 24, 37, 19, 17, 36, 18, 16, 41, 23, 21, 41, 23, 21, 36, 18, 16, 38, 20, 18, 45, 27, 25, 39, 21, 19, 44, 26, 24, 52, 34, 32, 59, 41, 39, 61, 43, 41, 59, 41, 39, 54, 36, 34, 50, 32, 30, 53, 35, 31, 47, 29, 25, 42, 23, 19, 40, 21, 17, 41, 22, 18, 40, 21, 17, 34, 15, 11, 29, 10, 6, 40, 19, 16, 35, 14, 11, 31, 10, 7, 36, 15, 12, 47, 26, 23, 56, 35, 32, 59, 38, 35, 59, 35, 33, 60, 34, 35, 63, 34, 36, 63, 37, 40, 67, 41, 44, 68, 43, 47, 68, 43, 47, 64, 39, 45, 61, 36, 42, 73, 46, 53, 76, 49, 56, 81, 52, 57, 83, 54, 59, 86, 55, 60, 88, 57, 62, 94, 62, 65, 97, 65, 68, 87, 57, 59, 93, 61, 62, 102, 68, 67, 111, 76, 74, 118, 80, 79, 119, 81, 78, 120, 81, 76, 118, 79, 74, 109, 70, 65, 108, 69, 64, 109, 71, 68, 116, 78, 75, 123, 87, 87, 128, 94, 93, 126, 94, 95, 122, 92, 94, 122, 93, 95, 131, 105, 106, 137, 113, 113, 134, 113, 112, 138, 116, 118, 145, 127, 127, 143, 127, 128, 135, 121, 121, 135, 121, 120, 142, 127, 124, 154, 134, 127, 163, 136, 125, 167, 134, 117, 169, 128, 108, 169, 123, 99, 173, 119, 91, 173, 114, 82, 176, 113, 78, 179, 114, 76, 182, 115, 73, 183, 112, 68, 178, 105, 60, 170, 96, 47, 166, 90, 41, 158, 84, 35, 154, 82, 34, 148, 77, 33, 142, 74, 35, 142, 78, 43, 153, 92, 61, 172, 112, 84, 184, 130, 106, 198, 155, 136, 205, 176, 162, 206, 193, 184, 211, 210, 206, 229, 233, 236, 237, 244, 250, 237, 242, 248, 238, 243, 247, 237, 245, 248, 237, 245, 247, 239, 244, 248, 242, 243, 248, 244, 243, 251, 243, 244, 249, 241, 246, 249, 239, 247, 249, 241, 246, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 231, 238, 244, 231, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 238, 238, 246, 238, 238, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 235, 244, 232, 235, 244, 231, 234, 241, 230, 235, 241, 227, 235, 238, 227, 235, 238, 227, 234, 240, 227, 234, 240, 228, 237, 244, 224, 233, 240, 221, 228, 238, 221, 228, 238, 222, 226, 235, 217, 222, 228, 205, 210, 213, 197, 201, 202, 184, 183, 181, 148, 143, 140, 111, 103, 101, 96, 86, 85, 92, 78, 78, 85, 69, 70, 82, 66, 67, 86, 70, 71, 91, 75, 76, 82, 66, 67, 69, 53, 54, 67, 48, 50, 78, 58, 60, 90, 68, 71, 88, 61, 66, 74, 48, 51, 64, 39, 42, 68, 47, 46, 83, 59, 59, 99, 75, 75, 107, 81, 82, 107, 81, 82, 105, 79, 80, 106, 80, 81, 96, 70, 71, 102, 76, 77, 110, 86, 86, 119, 95, 95, 122, 101, 100, 122, 101, 100, 116, 96, 95, 112, 92, 91, 124, 104, 103, 121, 101, 100, 121, 101, 100, 127, 107, 106, 136, 116, 115, 140, 122, 120, 138, 120, 118, 134, 116, 114, 133, 118, 115, 133, 118, 115, 132, 118, 115, 133, 119, 116, 134, 123, 119, 137, 126, 122, 140, 129, 125, 144, 130, 127, 145, 125, 124, 143, 122, 121, 140, 119, 118, 138, 117, 116, 137, 116, 115, 134, 113, 112, 131, 110, 109, 128, 107, 106, 130, 109, 108, 132, 111, 110, 133, 112, 111, 131, 110, 109, 126, 105, 104, 121, 100, 99, 119, 98, 97, 118, 97, 96, 123, 101, 103, 121, 99, 101, 119, 97, 99, 119, 97, 99, 119, 97, 99, 117, 95, 97, 113, 91, 93, 110, 88, 90, 109, 88, 87, 113, 92, 91, 119, 98, 97, 122, 101, 100, 121, 100, 97, 116, 95, 92, 109, 88, 85, 104, 83, 80, 109, 84, 80, 104, 79, 75, 98, 73, 69, 93, 68, 64, 90, 65, 61, 87, 62, 58, 84, 59, 55, 81, 56, 52, 79, 54, 50, 81, 56, 52, 78, 53, 49, 73, 48, 44, 77, 52, 48, 87, 62, 58, 91, 66, 62, 87, 62, 58, 82, 57, 53, 77, 52, 48, 72, 48, 44, 72, 48, 44, 76, 52, 48, 77, 53, 49, 75, 51, 49, 72, 48, 46, 80, 56, 54, 72, 48, 46, 71, 47, 45, 76, 52, 50, 74, 53, 52, 68, 47, 46, 66, 45, 44, 69, 49, 48, 77, 59, 57, 63, 48, 45, 58, 43, 40, 54, 39, 36, 47, 32, 29, 50, 35, 32, 54, 39, 36, 49, 34, 31, 43, 27, 27, 45, 31, 30, 61, 47, 46, 73, 62, 60, 62, 52, 51, 48, 40, 38, 72, 64, 62, 112, 104, 101, 108, 97, 93, 109, 98, 92, 122, 111, 107, 141, 132, 127, 151, 141, 139, 151, 143, 140, 159, 154, 151, 173, 169, 168, 194, 192, 193, 199, 199, 201, 206, 207, 209, 211, 215, 218, 222, 225, 230, 228, 233, 237, 227, 232, 236, 220, 225, 229, 224, 229, 235, 227, 232, 238, 230, 235, 241, 231, 236, 242, 230, 235, 241, 229, 234, 240, 230, 235, 241, 231, 236, 242, 231, 236, 242, 234, 239, 245, 236, 241, 247, 236, 241, 247, 233, 238, 244, 232, 237, 243, 232, 237, 243, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 235, 240, 244, 235, 240, 244, 234, 239, 243, 233, 238, 242, 231, 236, 240, 228, 233, 237, 226, 231, 235, 224, 229, 233, 225, 230, 236, 226, 231, 237, 225, 230, 236, 223, 228, 234, 220, 225, 231, 220, 225, 231, 221, 226, 232, 224, 229, 235, 225, 230, 236, 217, 222, 228, 213, 218, 224, 220, 225, 231, 230, 235, 241, 233, 238, 244, 230, 235, 241, 226, 231, 237, 230, 235, 241, 232, 237, 243, 235, 240, 246, 234, 239, 245, 232, 237, 243, 230, 235, 241, 230, 235, 241, 231, 236, 242, 235, 240, 246, 234, 239, 245, 231, 236, 242, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 231, 236, 242, 233, 238, 244, 232, 237, 243, 232, 237, 243, 231, 236, 242, 230, 235, 241, 229, 234, 240, 229, 234, 240, 228, 233, 239, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 230, 235, 241, 229, 234, 240, 229, 234, 240, 228, 233, 239, 221, 228, 236, 213, 220, 228, 218, 221, 228, 217, 218, 223, 202, 201, 206, 198, 196, 199, 200, 196, 197, 192, 186, 186, 197, 189, 186, 194, 187, 181, 191, 182, 177, 187, 180, 172, 188, 179, 170, 186, 179, 169, 186, 179, 169, 185, 178, 168, 178, 169, 162, 178, 167, 161, 175, 164, 158, 171, 161, 152, 173, 160, 152, 174, 161, 153, 169, 156, 147, 161, 148, 139, 151, 139, 127, 150, 138, 126, 143, 130, 121, 133, 123, 113, 138, 129, 120, 152, 143, 134, 156, 149, 139, 151, 144, 134, 152, 145, 137, 151, 144, 136, 130, 123, 117, 117, 110, 104, 89, 81, 78, 69, 61, 58, 91, 83, 81, 101, 93, 91, 81, 73, 71, 43, 35, 33, 45, 37, 35, 63, 55, 53, 69, 61, 58, 51, 43, 40, 31, 23, 20, 50, 42, 40, 77, 71, 71, 73, 67, 69, 61, 55, 57, 120, 114, 116, 126, 120, 120, 68, 62, 62, 35, 29, 29, 46, 40, 40, 57, 49, 47, 68, 60, 58, 65, 55, 54, 57, 47, 46, 56, 44, 44, 45, 33, 33, 32, 18, 18, 31, 17, 16, 36, 21, 18, 48, 33, 30, 50, 35, 32, 51, 36, 33, 58, 43, 40, 55, 40, 37, 52, 34, 32, 60, 42, 40, 59, 41, 39, 53, 35, 33, 46, 28, 26, 45, 27, 25, 51, 31, 30, 57, 37, 36, 61, 41, 40, 62, 42, 41, 54, 34, 33, 58, 38, 37, 65, 45, 44, 70, 50, 49, 73, 53, 52, 72, 52, 51, 69, 49, 48, 67, 47, 46, 63, 43, 42, 62, 42, 41, 58, 38, 37, 53, 33, 32, 48, 28, 27, 45, 25, 24, 45, 25, 24, 45, 25, 24, 45, 27, 25, 41, 23, 21, 41, 23, 21, 46, 28, 26, 45, 27, 25, 39, 21, 19, 39, 21, 19, 45, 27, 25, 41, 23, 21, 45, 27, 25, 51, 33, 31, 56, 38, 36, 57, 39, 37, 56, 38, 36, 53, 35, 33, 50, 32, 30, 35, 17, 13, 37, 19, 15, 40, 21, 17, 41, 22, 18, 42, 23, 19, 42, 23, 19, 44, 25, 21, 45, 26, 22, 47, 26, 23, 50, 29, 26, 58, 37, 34, 72, 51, 48, 84, 63, 60, 88, 67, 64, 82, 61, 58, 77, 53, 51, 57, 31, 32, 56, 30, 31, 56, 30, 33, 58, 33, 36, 64, 39, 43, 70, 45, 49, 74, 49, 55, 76, 51, 57, 70, 45, 51, 76, 49, 56, 82, 55, 60, 86, 57, 62, 84, 55, 59, 79, 48, 53, 76, 44, 47, 74, 42, 45, 103, 73, 75, 102, 72, 72, 102, 71, 69, 103, 69, 67, 106, 71, 69, 111, 73, 70, 115, 76, 71, 117, 78, 73, 112, 73, 68, 110, 73, 67, 112, 74, 71, 116, 81, 77, 122, 88, 87, 125, 94, 92, 124, 94, 94, 121, 92, 94, 117, 91, 92, 124, 98, 99, 129, 105, 105, 133, 109, 109, 136, 114, 116, 140, 120, 121, 138, 122, 122, 134, 120, 119, 134, 120, 119, 139, 124, 121, 148, 128, 121, 155, 128, 117, 159, 126, 109, 161, 123, 102, 166, 122, 97, 171, 120, 91, 176, 117, 85, 180, 116, 80, 181, 116, 78, 183, 116, 74, 184, 113, 69, 179, 106, 61, 171, 97, 50, 165, 91, 44, 157, 83, 36, 154, 81, 38, 147, 78, 37, 142, 77, 39, 146, 81, 49, 158, 97, 69, 175, 117, 93, 186, 134, 112, 201, 156, 137, 208, 176, 161, 206, 192, 181, 210, 209, 204, 228, 232, 235, 239, 244, 250, 238, 241, 248, 239, 244, 248, 239, 244, 247, 237, 245, 247, 240, 243, 248, 240, 243, 248, 244, 243, 251, 243, 243, 251, 239, 247, 250, 239, 247, 249, 241, 246, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 231, 238, 244, 231, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 238, 238, 246, 238, 238, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 235, 244, 232, 235, 244, 231, 234, 241, 230, 235, 241, 227, 235, 238, 227, 235, 237, 226, 236, 238, 226, 235, 240, 227, 236, 243, 223, 232, 239, 221, 230, 239, 221, 230, 239, 222, 229, 237, 218, 225, 231, 209, 217, 220, 205, 209, 210, 191, 190, 188, 157, 152, 149, 122, 114, 112, 106, 96, 95, 100, 86, 86, 86, 72, 72, 73, 57, 58, 67, 51, 52, 85, 71, 71, 76, 62, 62, 68, 52, 53, 72, 53, 55, 85, 65, 67, 89, 67, 70, 74, 47, 52, 52, 26, 29, 65, 40, 43, 79, 55, 55, 93, 69, 69, 99, 75, 75, 102, 76, 77, 102, 76, 77, 101, 75, 76, 97, 71, 72, 102, 76, 77, 104, 78, 79, 108, 84, 84, 116, 92, 92, 121, 100, 99, 124, 104, 103, 123, 103, 102, 121, 101, 100, 128, 108, 109, 126, 108, 108, 127, 109, 109, 134, 116, 116, 141, 123, 123, 141, 125, 125, 135, 119, 119, 128, 112, 112, 131, 115, 115, 133, 117, 117, 136, 122, 121, 139, 125, 124, 140, 126, 125, 139, 125, 124, 136, 122, 121, 135, 119, 119, 138, 118, 117, 137, 116, 115, 134, 113, 112, 133, 112, 111, 133, 112, 111, 132, 111, 110, 130, 109, 108, 127, 106, 105, 131, 110, 109, 131, 110, 109, 132, 111, 110, 133, 112, 111, 132, 111, 110, 127, 106, 105, 120, 99, 98, 115, 94, 93, 127, 105, 107, 123, 101, 103, 119, 97, 99, 117, 95, 97, 118, 96, 98, 119, 97, 99, 118, 97, 96, 117, 96, 95, 114, 93, 92, 119, 98, 97, 126, 105, 102, 129, 108, 105, 127, 106, 103, 119, 98, 95, 109, 88, 85, 102, 81, 78, 105, 80, 76, 101, 76, 72, 97, 72, 68, 94, 69, 65, 94, 69, 65, 95, 70, 66, 94, 69, 65, 93, 68, 64, 86, 61, 57, 91, 66, 62, 91, 66, 62, 87, 62, 58, 85, 60, 56, 89, 64, 60, 91, 66, 62, 90, 65, 61, 97, 74, 68, 98, 75, 69, 99, 75, 71, 98, 74, 70, 94, 70, 66, 91, 67, 63, 90, 66, 62, 90, 66, 62, 92, 68, 66, 86, 62, 60, 86, 62, 60, 92, 68, 66, 95, 71, 69, 91, 67, 65, 85, 61, 59, 81, 60, 57, 93, 75, 71, 81, 66, 61, 85, 67, 63, 91, 73, 69, 93, 75, 73, 98, 80, 78, 99, 81, 79, 87, 72, 69, 77, 62, 59, 45, 31, 28, 41, 27, 26, 73, 62, 60, 91, 81, 79, 76, 68, 65, 66, 58, 55, 74, 66, 63, 99, 88, 84, 99, 88, 82, 100, 89, 85, 102, 93, 88, 109, 99, 97, 118, 110, 107, 128, 123, 120, 137, 133, 132, 175, 174, 172, 185, 185, 185, 198, 198, 198, 206, 207, 209, 217, 218, 220, 224, 228, 231, 227, 231, 234, 224, 229, 232, 220, 225, 229, 224, 229, 235, 228, 233, 239, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 233, 238, 244, 235, 240, 246, 235, 240, 246, 233, 238, 244, 231, 236, 242, 232, 237, 243, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 236, 241, 245, 236, 241, 245, 236, 241, 245, 235, 240, 244, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 233, 238, 242, 233, 238, 242, 232, 237, 241, 230, 235, 239, 228, 233, 237, 225, 230, 234, 222, 227, 231, 221, 226, 230, 222, 225, 230, 223, 226, 231, 223, 226, 231, 220, 223, 228, 218, 221, 226, 217, 220, 225, 219, 222, 227, 221, 224, 229, 223, 226, 231, 216, 219, 224, 211, 214, 219, 214, 217, 222, 223, 226, 231, 229, 232, 237, 229, 232, 237, 226, 229, 234, 227, 232, 238, 229, 234, 240, 232, 237, 243, 232, 237, 243, 230, 235, 241, 228, 233, 239, 227, 232, 238, 227, 232, 238, 231, 236, 242, 230, 235, 241, 229, 234, 240, 227, 232, 238, 227, 232, 238, 227, 232, 238, 228, 233, 239, 229, 234, 240, 230, 235, 241, 230, 235, 241, 229, 234, 240, 228, 233, 239, 227, 232, 238, 227, 232, 238, 226, 231, 237, 226, 231, 237, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 228, 233, 239, 228, 233, 239, 228, 233, 239, 221, 228, 234, 208, 215, 221, 210, 213, 220, 213, 214, 219, 202, 200, 203, 191, 187, 188, 191, 183, 181, 190, 180, 178, 191, 182, 177, 190, 181, 174, 188, 177, 171, 185, 176, 167, 184, 174, 165, 183, 174, 165, 182, 173, 164, 182, 173, 164, 173, 162, 156, 175, 162, 156, 172, 159, 151, 167, 154, 146, 168, 153, 146, 170, 156, 147, 166, 152, 143, 160, 146, 137, 151, 137, 128, 148, 135, 126, 138, 125, 117, 128, 118, 109, 134, 125, 118, 151, 142, 135, 158, 151, 143, 155, 148, 140, 156, 149, 141, 151, 144, 136, 133, 126, 120, 109, 102, 96, 80, 72, 69, 80, 72, 69, 99, 91, 89, 83, 75, 73, 73, 65, 63, 57, 49, 47, 54, 46, 44, 56, 48, 46, 68, 60, 57, 56, 48, 45, 34, 26, 23, 58, 53, 50, 89, 85, 84, 83, 79, 78, 74, 70, 69, 167, 163, 162, 94, 88, 88, 63, 57, 57, 42, 34, 32, 46, 38, 36, 71, 63, 61, 77, 69, 67, 71, 61, 59, 57, 47, 45, 46, 36, 34, 34, 24, 22, 29, 18, 16, 37, 23, 22, 39, 24, 21, 48, 33, 30, 50, 35, 32, 49, 34, 31, 52, 37, 34, 50, 35, 32, 53, 35, 33, 61, 43, 41, 59, 41, 39, 51, 33, 31, 43, 25, 23, 43, 25, 23, 51, 31, 30, 58, 38, 37, 59, 39, 38, 57, 37, 36, 57, 37, 36, 60, 40, 39, 63, 43, 42, 66, 46, 45, 68, 48, 47, 68, 48, 47, 68, 48, 47, 67, 47, 46, 63, 43, 42, 65, 45, 44, 64, 44, 43, 57, 37, 36, 47, 27, 26, 43, 23, 22, 46, 26, 25, 52, 32, 31, 44, 26, 24, 43, 25, 23, 46, 28, 26, 49, 31, 29, 46, 28, 26, 40, 22, 20, 38, 20, 18, 42, 24, 22, 31, 13, 11, 32, 14, 12, 34, 16, 14, 36, 18, 16, 37, 19, 17, 38, 20, 18, 37, 19, 17, 36, 18, 16, 31, 13, 9, 36, 18, 14, 42, 24, 20, 43, 25, 21, 43, 25, 21, 48, 30, 26, 60, 41, 37, 69, 50, 46, 81, 62, 58, 82, 63, 59, 87, 66, 63, 92, 71, 68, 91, 70, 67, 81, 60, 57, 65, 44, 41, 52, 31, 28, 63, 39, 39, 61, 37, 37, 58, 33, 36, 58, 33, 36, 59, 34, 38, 60, 38, 41, 64, 41, 47, 67, 44, 50, 82, 59, 65, 81, 56, 62, 76, 51, 55, 74, 47, 52, 80, 51, 55, 92, 63, 67, 109, 79, 81, 120, 90, 92, 113, 83, 83, 111, 81, 81, 109, 78, 76, 109, 75, 73, 110, 75, 73, 112, 77, 73, 116, 79, 73, 118, 81, 75, 115, 78, 72, 114, 77, 71, 116, 78, 75, 118, 83, 79, 123, 89, 88, 124, 93, 91, 122, 92, 92, 120, 91, 93, 114, 88, 89, 114, 89, 92, 120, 96, 96, 129, 105, 105, 133, 112, 111, 132, 112, 111, 133, 115, 113, 135, 120, 117, 135, 120, 117, 138, 120, 116, 140, 120, 113, 144, 117, 106, 147, 115, 100, 154, 117, 98, 162, 120, 98, 170, 123, 97, 180, 121, 89, 183, 119, 83, 183, 118, 80, 185, 118, 76, 185, 114, 72, 180, 107, 62, 172, 98, 51, 166, 92, 45, 157, 83, 38, 154, 83, 41, 148, 80, 41, 146, 82, 47, 153, 89, 61, 166, 106, 82, 182, 125, 105, 193, 140, 122, 202, 157, 138, 208, 176, 161, 206, 192, 181, 210, 207, 200, 229, 230, 232, 238, 243, 247, 239, 242, 247, 240, 245, 249, 239, 244, 247, 237, 245, 247, 240, 243, 248, 240, 243, 248, 244, 243, 251, 243, 243, 251, 239, 247, 250, 239, 247, 250, 241, 246, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 231, 238, 244, 231, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 238, 238, 246, 238, 238, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 234, 234, 246, 234, 234, 244, 231, 234, 243, 231, 234, 239, 229, 234, 238, 227, 235, 237, 226, 236, 238, 226, 236, 238, 225, 234, 241, 223, 232, 239, 222, 231, 240, 222, 231, 240, 223, 230, 238, 221, 228, 236, 215, 222, 228, 212, 217, 220, 193, 193, 191, 163, 159, 156, 127, 122, 119, 109, 101, 99, 100, 88, 88, 84, 70, 70, 63, 47, 48, 49, 33, 34, 66, 52, 52, 67, 53, 53, 69, 53, 54, 71, 52, 54, 71, 51, 53, 74, 49, 53, 71, 44, 49, 68, 42, 45, 74, 48, 51, 88, 64, 64, 97, 73, 73, 92, 68, 68, 90, 64, 65, 96, 70, 71, 101, 75, 76, 99, 73, 74, 105, 79, 80, 110, 84, 85, 115, 91, 91, 116, 95, 94, 117, 97, 96, 119, 99, 98, 123, 103, 102, 127, 107, 106, 118, 100, 100, 126, 108, 108, 134, 116, 116, 136, 118, 118, 131, 115, 115, 129, 113, 113, 131, 115, 115, 134, 118, 118, 142, 124, 124, 141, 125, 125, 141, 125, 125, 140, 124, 124, 136, 120, 120, 130, 114, 114, 124, 108, 108, 123, 105, 105, 127, 107, 106, 126, 105, 104, 124, 103, 102, 124, 103, 102, 125, 104, 103, 126, 105, 104, 124, 103, 102, 122, 101, 100, 122, 101, 100, 118, 97, 96, 117, 96, 95, 120, 99, 98, 127, 106, 105, 132, 111, 110, 131, 110, 109, 129, 108, 107, 135, 113, 115, 131, 109, 111, 126, 104, 106, 122, 100, 102, 121, 99, 101, 119, 97, 99, 116, 95, 94, 114, 93, 92, 115, 94, 93, 115, 94, 93, 116, 95, 92, 116, 95, 92, 116, 95, 92, 116, 95, 92, 115, 94, 91, 115, 94, 91, 113, 88, 84, 110, 85, 81, 108, 83, 79, 107, 82, 78, 107, 82, 78, 106, 81, 77, 102, 77, 73, 99, 74, 70, 95, 70, 66, 99, 74, 70, 100, 75, 71, 97, 72, 68, 93, 68, 64, 95, 70, 66, 101, 76, 72, 105, 80, 76, 101, 78, 72, 101, 81, 74, 105, 81, 77, 108, 84, 80, 111, 87, 83, 114, 90, 86, 117, 93, 89, 119, 95, 91, 109, 85, 83, 105, 81, 79, 104, 80, 78, 108, 84, 82, 110, 86, 84, 104, 80, 78, 94, 70, 68, 84, 63, 60, 80, 62, 58, 72, 57, 52, 83, 65, 61, 97, 79, 75, 102, 84, 82, 105, 87, 85, 97, 79, 77, 80, 62, 60, 95, 77, 75, 71, 56, 53, 52, 38, 37, 60, 46, 45, 85, 74, 72, 98, 88, 86, 82, 72, 70, 56, 46, 44, 85, 74, 70, 94, 81, 75, 92, 81, 77, 81, 70, 66, 78, 68, 66, 91, 81, 79, 107, 99, 97, 113, 108, 105, 148, 144, 141, 169, 168, 166, 193, 192, 190, 198, 198, 198, 198, 198, 198, 204, 206, 205, 217, 219, 218, 226, 230, 231, 220, 225, 229, 224, 229, 235, 229, 234, 240, 231, 236, 242, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 231, 236, 242, 234, 239, 245, 234, 239, 245, 232, 237, 243, 231, 236, 242, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 236, 241, 245, 236, 241, 245, 237, 242, 246, 237, 242, 246, 236, 241, 245, 236, 241, 245, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 232, 237, 241, 232, 237, 241, 231, 236, 240, 229, 234, 238, 226, 231, 235, 223, 228, 232, 220, 225, 229, 218, 223, 227, 217, 220, 225, 218, 221, 226, 218, 221, 226, 215, 218, 223, 213, 216, 221, 212, 215, 220, 214, 217, 222, 216, 219, 224, 220, 223, 228, 216, 219, 224, 209, 212, 217, 208, 211, 216, 215, 218, 223, 225, 228, 233, 228, 231, 236, 226, 229, 234, 224, 229, 235, 227, 232, 238, 231, 236, 242, 231, 236, 242, 229, 234, 240, 226, 231, 237, 225, 230, 236, 224, 229, 235, 227, 232, 238, 227, 232, 238, 226, 231, 237, 226, 231, 237, 226, 231, 237, 226, 231, 237, 226, 231, 237, 226, 231, 237, 228, 233, 239, 227, 232, 238, 227, 232, 238, 226, 231, 237, 225, 230, 236, 225, 230, 236, 224, 229, 235, 224, 229, 235, 226, 231, 237, 226, 231, 237, 226, 231, 237, 226, 231, 237, 226, 231, 237, 226, 231, 237, 226, 231, 237, 226, 231, 237, 221, 228, 234, 207, 212, 216, 203, 206, 211, 209, 210, 214, 201, 199, 200, 186, 180, 180, 182, 172, 170, 186, 175, 171, 186, 175, 169, 186, 176, 167, 188, 175, 167, 184, 174, 165, 181, 171, 162, 180, 170, 161, 180, 170, 161, 181, 171, 162, 173, 160, 154, 174, 161, 155, 170, 157, 149, 163, 150, 142, 160, 146, 137, 161, 147, 138, 158, 144, 135, 153, 139, 130, 151, 137, 128, 149, 135, 126, 140, 127, 119, 130, 120, 111, 136, 125, 119, 151, 142, 135, 156, 149, 141, 152, 145, 137, 155, 148, 140, 150, 143, 135, 138, 131, 125, 107, 100, 94, 81, 73, 70, 97, 89, 86, 103, 95, 93, 65, 57, 55, 68, 60, 58, 71, 63, 61, 65, 57, 55, 56, 48, 46, 73, 65, 62, 69, 61, 58, 47, 39, 36, 74, 69, 65, 77, 73, 70, 81, 80, 78, 121, 117, 116, 153, 149, 148, 75, 69, 69, 66, 61, 58, 53, 45, 43, 56, 48, 46, 77, 69, 67, 72, 64, 61, 63, 53, 51, 52, 42, 40, 42, 32, 30, 34, 24, 22, 35, 24, 22, 42, 31, 29, 50, 36, 33, 52, 37, 34, 49, 34, 31, 44, 29, 26, 42, 27, 24, 44, 29, 26, 53, 35, 33, 61, 43, 41, 61, 43, 41, 52, 34, 32, 45, 27, 25, 45, 27, 25, 52, 32, 31, 57, 37, 36, 55, 35, 34, 51, 31, 30, 59, 39, 38, 58, 38, 37, 57, 37, 36, 56, 36, 35, 54, 34, 33, 53, 33, 32, 52, 32, 31, 51, 31, 30, 55, 35, 34, 56, 36, 35, 54, 34, 33, 49, 29, 28, 44, 24, 23, 42, 22, 21, 44, 24, 23, 48, 28, 27, 39, 21, 19, 42, 24, 22, 46, 28, 26, 47, 29, 27, 42, 24, 22, 35, 17, 15, 33, 15, 13, 34, 16, 14, 22, 4, 2, 22, 4, 2, 21, 3, 1, 20, 2, 0, 21, 3, 1, 23, 5, 3, 25, 7, 5, 27, 9, 7, 23, 5, 1, 25, 7, 3, 27, 9, 5, 27, 9, 5, 28, 10, 6, 34, 16, 12, 44, 25, 21, 52, 33, 29, 63, 44, 40, 62, 43, 39, 61, 40, 37, 61, 40, 37, 61, 40, 37, 57, 36, 33, 50, 29, 26, 45, 24, 21, 49, 25, 25, 52, 28, 28, 55, 30, 33, 56, 34, 36, 58, 36, 39, 61, 39, 42, 65, 42, 48, 68, 45, 51, 65, 42, 48, 75, 52, 58, 91, 66, 70, 103, 78, 82, 110, 84, 87, 113, 84, 88, 112, 83, 85, 112, 82, 84, 101, 71, 71, 103, 73, 73, 108, 77, 75, 111, 80, 77, 114, 81, 76, 115, 80, 74, 116, 79, 73, 115, 78, 72, 118, 81, 75, 119, 82, 76, 118, 83, 79, 120, 87, 82, 121, 90, 87, 121, 91, 89, 121, 91, 91, 119, 90, 92, 114, 88, 91, 109, 84, 87, 114, 90, 90, 128, 104, 104, 131, 110, 109, 128, 107, 104, 130, 110, 109, 137, 119, 117, 138, 120, 118, 136, 118, 114, 134, 114, 107, 133, 109, 99, 138, 109, 95, 146, 113, 96, 160, 122, 103, 173, 127, 103, 179, 124, 93, 184, 122, 85, 183, 119, 81, 183, 118, 76, 183, 114, 72, 179, 108, 64, 172, 99, 54, 166, 93, 48, 160, 87, 44, 155, 86, 45, 153, 85, 48, 152, 89, 56, 161, 99, 74, 174, 116, 94, 190, 135, 115, 199, 148, 131, 203, 158, 139, 209, 176, 159, 206, 190, 177, 208, 205, 198, 226, 227, 229, 236, 241, 245, 239, 242, 247, 242, 245, 250, 239, 244, 247, 237, 245, 247, 239, 244, 248, 240, 243, 248, 243, 243, 251, 243, 243, 251, 239, 247, 250, 239, 247, 250, 241, 246, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 231, 238, 244, 231, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 238, 238, 246, 238, 238, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 234, 234, 246, 234, 234, 244, 231, 234, 243, 231, 234, 239, 229, 234, 238, 227, 235, 237, 226, 236, 238, 226, 236, 238, 223, 234, 240, 222, 233, 239, 222, 232, 241, 222, 232, 241, 223, 232, 241, 221, 230, 237, 218, 227, 234, 218, 223, 227, 209, 209, 209, 176, 172, 169, 134, 129, 126, 108, 100, 98, 97, 85, 85, 88, 76, 76, 78, 64, 64, 70, 56, 56, 57, 43, 43, 64, 50, 50, 72, 56, 57, 75, 56, 58, 69, 49, 51, 69, 44, 48, 75, 48, 53, 82, 56, 59, 69, 43, 46, 84, 58, 59, 93, 67, 68, 89, 63, 64, 89, 63, 64, 99, 73, 74, 107, 81, 82, 107, 81, 82, 95, 69, 70, 111, 85, 86, 129, 105, 105, 133, 112, 111, 125, 105, 104, 116, 96, 95, 113, 95, 93, 116, 98, 96, 117, 99, 99, 123, 105, 105, 129, 111, 111, 130, 112, 112, 128, 110, 110, 128, 110, 110, 133, 115, 115, 139, 121, 121, 143, 123, 124, 139, 121, 121, 135, 117, 117, 130, 112, 112, 126, 106, 107, 121, 101, 102, 117, 97, 98, 116, 96, 97, 118, 98, 99, 116, 96, 97, 115, 95, 96, 116, 96, 97, 118, 98, 99, 119, 99, 100, 118, 98, 99, 116, 96, 97, 113, 93, 94, 111, 91, 92, 112, 92, 93, 118, 98, 99, 128, 108, 109, 135, 115, 116, 137, 117, 118, 136, 116, 117, 139, 118, 117, 135, 114, 113, 130, 109, 108, 125, 104, 103, 120, 99, 98, 113, 92, 91, 106, 85, 84, 100, 79, 78, 102, 81, 78, 100, 79, 76, 96, 75, 72, 94, 73, 70, 95, 74, 71, 99, 78, 75, 103, 82, 77, 107, 86, 81, 121, 95, 94, 120, 94, 93, 119, 93, 92, 119, 93, 92, 116, 90, 89, 110, 84, 83, 101, 75, 74, 95, 69, 68, 93, 67, 66, 92, 66, 65, 89, 63, 62, 84, 58, 57, 80, 54, 53, 80, 54, 53, 88, 62, 61, 96, 72, 68, 82, 62, 55, 77, 58, 51, 76, 56, 49, 82, 62, 55, 94, 73, 68, 105, 84, 79, 111, 90, 85, 112, 91, 86, 103, 82, 77, 103, 82, 77, 102, 81, 78, 100, 79, 76, 99, 75, 73, 93, 69, 67, 80, 56, 54, 68, 47, 44, 60, 41, 37, 51, 33, 29, 56, 38, 34, 67, 49, 45, 71, 52, 48, 73, 54, 50, 66, 46, 45, 48, 30, 28, 53, 35, 33, 66, 51, 48, 65, 51, 50, 49, 35, 34, 48, 37, 35, 67, 57, 55, 73, 63, 61, 62, 52, 50, 43, 32, 28, 70, 59, 55, 90, 79, 75, 87, 76, 72, 82, 72, 70, 91, 81, 79, 102, 94, 91, 105, 100, 96, 105, 100, 96, 134, 130, 127, 166, 162, 159, 179, 178, 176, 183, 182, 180, 188, 188, 186, 199, 199, 197, 206, 208, 207, 219, 222, 227, 222, 227, 233, 228, 233, 239, 231, 236, 242, 230, 235, 241, 229, 234, 240, 228, 233, 239, 228, 233, 239, 227, 232, 238, 230, 235, 241, 232, 237, 243, 233, 238, 244, 232, 237, 243, 231, 236, 242, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 235, 240, 244, 235, 240, 244, 235, 240, 244, 234, 239, 243, 234, 239, 243, 234, 239, 243, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 232, 237, 241, 231, 236, 240, 230, 235, 239, 228, 233, 237, 225, 230, 234, 221, 226, 230, 218, 223, 227, 216, 221, 225, 212, 216, 219, 214, 215, 219, 214, 215, 219, 212, 213, 217, 209, 210, 214, 208, 209, 213, 210, 211, 215, 212, 213, 217, 218, 219, 223, 216, 217, 221, 210, 211, 215, 205, 206, 210, 211, 212, 216, 223, 224, 228, 228, 229, 233, 224, 227, 232, 220, 225, 231, 224, 229, 235, 228, 233, 239, 229, 234, 240, 227, 232, 238, 224, 229, 235, 222, 227, 233, 221, 226, 232, 223, 228, 234, 223, 228, 234, 224, 229, 235, 224, 229, 235, 224, 229, 235, 224, 229, 235, 224, 229, 235, 224, 229, 235, 225, 230, 236, 225, 230, 236, 224, 229, 235, 224, 229, 235, 223, 228, 234, 222, 227, 233, 221, 226, 232, 221, 226, 232, 221, 226, 232, 221, 226, 232, 221, 226, 232, 221, 226, 232, 222, 227, 233, 222, 227, 233, 222, 227, 233, 222, 227, 233, 218, 226, 229, 206, 211, 215, 198, 202, 205, 204, 204, 206, 202, 198, 197, 183, 178, 175, 176, 167, 162, 182, 171, 165, 183, 170, 164, 185, 172, 164, 187, 172, 165, 185, 172, 163, 181, 168, 160, 177, 167, 158, 177, 166, 160, 179, 168, 162, 175, 162, 156, 177, 162, 157, 171, 156, 149, 161, 146, 139, 155, 138, 131, 153, 136, 129, 150, 133, 125, 146, 129, 121, 151, 136, 129, 151, 136, 129, 144, 131, 125, 135, 124, 118, 140, 129, 125, 150, 141, 136, 151, 144, 138, 144, 137, 131, 150, 143, 135, 146, 139, 131, 139, 132, 126, 109, 102, 96, 93, 85, 82, 111, 103, 100, 100, 92, 90, 56, 48, 46, 64, 56, 54, 74, 66, 64, 71, 63, 61, 57, 49, 47, 76, 68, 65, 77, 69, 66, 58, 50, 47, 81, 76, 72, 52, 51, 47, 78, 79, 74, 163, 162, 158, 90, 86, 83, 71, 66, 63, 73, 68, 65, 64, 56, 54, 72, 64, 61, 81, 71, 69, 64, 54, 52, 51, 41, 39, 46, 37, 32, 41, 32, 27, 38, 29, 24, 40, 31, 26, 44, 33, 29, 63, 49, 46, 55, 40, 37, 46, 31, 28, 39, 24, 21, 35, 20, 17, 42, 27, 24, 55, 37, 35, 60, 42, 40, 54, 36, 34, 49, 31, 29, 47, 29, 27, 50, 32, 30, 58, 38, 37, 61, 41, 40, 58, 38, 37, 53, 33, 32, 59, 40, 36, 58, 39, 35, 55, 36, 32, 52, 33, 29, 49, 30, 26, 48, 29, 25, 47, 28, 24, 46, 27, 23, 49, 30, 26, 45, 26, 22, 42, 23, 19, 42, 23, 19, 45, 26, 22, 46, 27, 23, 44, 25, 21, 41, 22, 18, 33, 15, 13, 40, 22, 20, 44, 26, 24, 41, 23, 21, 33, 15, 13, 27, 9, 7, 25, 7, 5, 25, 7, 5, 28, 10, 8, 26, 8, 6, 24, 6, 4, 23, 5, 3, 24, 6, 4, 27, 9, 7, 31, 13, 11, 34, 16, 14, 40, 22, 18, 41, 23, 19, 44, 26, 22, 48, 30, 26, 51, 33, 29, 48, 30, 26, 40, 21, 17, 33, 14, 10, 29, 10, 6, 27, 8, 4, 26, 7, 3, 28, 9, 5, 34, 13, 10, 39, 18, 15, 43, 22, 19, 45, 24, 21, 48, 27, 26, 50, 29, 28, 53, 31, 33, 54, 32, 34, 55, 33, 36, 59, 39, 41, 67, 46, 51, 73, 52, 57, 83, 62, 67, 90, 69, 74, 100, 78, 81, 105, 80, 84, 102, 76, 79, 93, 67, 70, 85, 59, 60, 82, 53, 55, 91, 63, 62, 93, 65, 64, 97, 67, 65, 101, 70, 67, 105, 72, 67, 106, 71, 65, 108, 71, 65, 108, 71, 63, 119, 82, 74, 121, 84, 76, 122, 87, 81, 122, 89, 84, 120, 89, 86, 120, 90, 88, 120, 90, 90, 119, 90, 92, 116, 90, 93, 110, 85, 88, 114, 90, 90, 127, 103, 103, 132, 108, 106, 128, 107, 102, 131, 110, 107, 139, 120, 116, 138, 119, 115, 135, 116, 112, 132, 112, 105, 130, 107, 99, 134, 106, 95, 145, 113, 100, 160, 124, 110, 174, 132, 110, 180, 127, 95, 182, 124, 86, 183, 121, 82, 182, 119, 78, 183, 116, 74, 178, 110, 65, 173, 102, 56, 168, 97, 51, 166, 95, 51, 161, 94, 52, 159, 93, 58, 160, 99, 68, 171, 111, 85, 184, 127, 107, 196, 143, 125, 202, 153, 136, 204, 159, 140, 208, 175, 158, 203, 187, 174, 205, 200, 194, 223, 223, 223, 235, 239, 242, 240, 241, 246, 242, 245, 250, 239, 244, 247, 237, 245, 247, 239, 244, 248, 240, 243, 248, 243, 243, 251, 243, 243, 251, 239, 247, 250, 239, 247, 250, 241, 246, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 231, 238, 244, 231, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 238, 238, 246, 238, 238, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 234, 234, 246, 234, 234, 244, 231, 234, 243, 231, 234, 239, 229, 234, 238, 227, 235, 237, 227, 235, 238, 226, 236, 238, 223, 234, 238, 223, 234, 240, 223, 233, 242, 222, 232, 241, 222, 231, 240, 221, 230, 239, 219, 228, 237, 220, 228, 231, 213, 215, 214, 189, 188, 184, 154, 150, 147, 127, 119, 117, 108, 98, 97, 92, 80, 80, 75, 61, 61, 62, 48, 48, 53, 39, 39, 54, 40, 40, 62, 46, 47, 72, 53, 55, 73, 53, 55, 70, 45, 49, 67, 40, 45, 69, 40, 45, 73, 47, 50, 84, 58, 59, 92, 66, 67, 94, 68, 69, 95, 69, 70, 97, 71, 72, 99, 73, 74, 99, 73, 74, 105, 79, 80, 115, 91, 91, 126, 102, 102, 124, 103, 102, 115, 95, 94, 111, 91, 90, 114, 96, 94, 122, 104, 102, 125, 107, 107, 122, 104, 104, 120, 102, 102, 125, 107, 107, 133, 115, 115, 138, 118, 119, 137, 117, 118, 134, 112, 114, 129, 107, 109, 126, 104, 106, 122, 100, 102, 118, 96, 98, 118, 93, 96, 119, 94, 97, 121, 96, 99, 120, 98, 100, 121, 99, 101, 119, 99, 100, 117, 97, 98, 118, 98, 99, 120, 100, 101, 121, 101, 102, 120, 100, 101, 118, 98, 99, 120, 100, 101, 122, 102, 103, 127, 107, 108, 133, 113, 114, 137, 117, 118, 137, 117, 118, 134, 114, 115, 131, 111, 112, 121, 100, 99, 119, 98, 97, 118, 97, 96, 119, 98, 97, 119, 98, 97, 116, 95, 94, 111, 90, 89, 108, 87, 86, 100, 79, 76, 100, 79, 76, 98, 77, 74, 96, 75, 72, 95, 74, 71, 93, 72, 69, 92, 71, 66, 94, 70, 66, 105, 79, 78, 107, 81, 80, 109, 83, 82, 113, 87, 86, 115, 89, 88, 113, 87, 86, 108, 82, 81, 104, 78, 77, 98, 72, 71, 90, 64, 63, 82, 56, 55, 77, 51, 50, 71, 45, 44, 69, 43, 42, 74, 48, 47, 82, 58, 54, 82, 61, 56, 74, 55, 48, 69, 50, 43, 71, 52, 45, 82, 61, 56, 92, 71, 66, 96, 75, 70, 95, 74, 69, 90, 69, 64, 95, 74, 69, 96, 75, 72, 90, 69, 66, 86, 62, 60, 80, 56, 54, 71, 47, 45, 61, 40, 37, 60, 41, 37, 47, 29, 25, 46, 28, 24, 49, 31, 27, 49, 30, 26, 53, 34, 30, 53, 33, 32, 43, 23, 22, 33, 15, 13, 43, 25, 23, 46, 30, 30, 44, 30, 29, 43, 32, 30, 51, 40, 38, 57, 47, 45, 60, 50, 48, 39, 28, 24, 64, 53, 49, 83, 72, 68, 83, 72, 68, 78, 68, 66, 85, 75, 73, 97, 89, 86, 103, 95, 92, 84, 76, 73, 104, 99, 95, 134, 129, 125, 159, 156, 151, 180, 176, 173, 190, 189, 184, 190, 189, 185, 184, 184, 182, 206, 210, 213, 211, 216, 222, 219, 224, 230, 224, 229, 235, 226, 231, 237, 226, 231, 237, 226, 231, 237, 226, 231, 237, 225, 230, 236, 228, 233, 239, 231, 236, 242, 232, 237, 243, 231, 236, 242, 230, 235, 241, 231, 236, 242, 233, 238, 244, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 236, 241, 245, 236, 241, 245, 236, 241, 245, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 234, 239, 243, 234, 239, 243, 233, 238, 242, 233, 238, 242, 233, 238, 242, 231, 236, 240, 231, 236, 240, 231, 236, 240, 231, 236, 240, 231, 236, 240, 231, 236, 240, 231, 236, 240, 231, 236, 240, 229, 234, 238, 229, 234, 238, 227, 232, 236, 225, 230, 234, 222, 227, 231, 218, 223, 227, 214, 219, 223, 213, 216, 221, 209, 210, 214, 209, 210, 214, 209, 210, 214, 207, 208, 212, 204, 205, 209, 203, 204, 208, 205, 206, 210, 207, 208, 212, 210, 211, 215, 213, 214, 218, 209, 210, 214, 201, 202, 206, 205, 206, 210, 219, 220, 224, 224, 225, 229, 220, 221, 225, 215, 218, 223, 219, 224, 230, 224, 229, 235, 226, 231, 237, 223, 228, 234, 219, 224, 230, 216, 221, 227, 215, 220, 226, 216, 221, 227, 217, 222, 228, 219, 224, 230, 220, 225, 231, 221, 226, 232, 220, 225, 231, 219, 224, 230, 219, 224, 230, 220, 225, 231, 220, 225, 231, 219, 224, 230, 219, 224, 230, 218, 223, 229, 217, 222, 228, 217, 222, 228, 216, 221, 227, 215, 220, 226, 215, 220, 226, 215, 220, 226, 216, 221, 227, 216, 221, 227, 217, 222, 228, 217, 222, 228, 217, 222, 228, 211, 219, 222, 204, 209, 212, 193, 197, 198, 195, 195, 195, 197, 193, 190, 185, 177, 174, 172, 163, 156, 178, 165, 157, 177, 162, 155, 182, 167, 160, 185, 171, 162, 184, 170, 161, 179, 164, 157, 175, 162, 154, 174, 163, 157, 179, 166, 160, 178, 163, 158, 178, 163, 158, 172, 157, 150, 159, 144, 137, 150, 133, 126, 147, 130, 123, 145, 128, 120, 142, 125, 117, 149, 134, 127, 150, 135, 128, 144, 131, 125, 135, 124, 118, 140, 129, 125, 149, 140, 135, 148, 140, 137, 140, 133, 127, 142, 135, 129, 140, 133, 125, 133, 126, 120, 108, 101, 95, 108, 100, 97, 119, 111, 108, 90, 82, 80, 60, 52, 50, 64, 56, 54, 67, 59, 57, 70, 62, 60, 60, 52, 50, 72, 64, 61, 75, 67, 64, 59, 51, 48, 74, 69, 65, 48, 47, 43, 93, 94, 89, 157, 156, 152, 40, 39, 35, 71, 66, 63, 75, 70, 67, 69, 61, 58, 79, 71, 68, 79, 69, 67, 55, 45, 43, 44, 35, 30, 46, 37, 32, 43, 34, 29, 42, 33, 28, 45, 36, 31, 47, 36, 32, 67, 53, 50, 52, 37, 34, 42, 27, 24, 38, 23, 20, 37, 22, 19, 47, 32, 29, 59, 41, 39, 58, 40, 38, 43, 25, 23, 46, 28, 26, 53, 35, 33, 60, 42, 40, 66, 46, 45, 67, 47, 46, 64, 44, 43, 61, 41, 40, 61, 42, 38, 60, 41, 37, 59, 40, 36, 58, 39, 35, 57, 38, 34, 56, 37, 33, 56, 37, 33, 55, 36, 32, 47, 28, 24, 44, 25, 21, 42, 23, 19, 45, 26, 22, 51, 32, 28, 51, 32, 28, 45, 26, 22, 37, 18, 14, 31, 13, 11, 40, 22, 20, 43, 25, 23, 35, 17, 15, 25, 7, 5, 21, 3, 1, 21, 3, 1, 20, 2, 0, 28, 10, 8, 26, 8, 6, 25, 7, 5, 24, 6, 4, 26, 8, 6, 31, 13, 11, 36, 18, 16, 39, 21, 19, 63, 45, 41, 68, 50, 46, 77, 59, 55, 87, 69, 65, 89, 71, 67, 76, 58, 54, 53, 34, 30, 35, 16, 12, 27, 8, 4, 27, 8, 4, 28, 9, 5, 29, 10, 6, 31, 10, 7, 33, 12, 9, 35, 14, 11, 36, 15, 12, 49, 28, 27, 51, 30, 29, 54, 32, 34, 55, 35, 36, 59, 39, 41, 70, 50, 52, 86, 65, 70, 98, 77, 82, 113, 92, 97, 108, 87, 92, 101, 79, 82, 92, 70, 73, 90, 65, 68, 93, 67, 70, 101, 75, 76, 108, 82, 83, 101, 73, 72, 98, 70, 67, 95, 66, 62, 92, 63, 57, 96, 63, 58, 100, 67, 60, 107, 73, 64, 113, 76, 68, 119, 82, 74, 120, 86, 77, 122, 89, 82, 121, 91, 83, 120, 89, 86, 118, 89, 85, 119, 91, 88, 118, 92, 93, 117, 92, 95, 116, 91, 95, 119, 94, 97, 126, 102, 100, 130, 106, 102, 131, 107, 103, 135, 111, 107, 138, 117, 112, 136, 115, 112, 133, 114, 108, 131, 110, 105, 130, 107, 101, 135, 108, 99, 143, 115, 104, 157, 125, 112, 170, 132, 113, 179, 130, 98, 182, 127, 88, 183, 123, 86, 183, 121, 80, 184, 119, 77, 182, 115, 70, 177, 109, 62, 173, 105, 58, 175, 106, 64, 171, 104, 62, 167, 103, 67, 170, 109, 78, 179, 122, 95, 191, 136, 115, 200, 149, 130, 204, 155, 138, 203, 158, 139, 209, 174, 155, 202, 184, 172, 201, 196, 190, 219, 219, 219, 232, 236, 239, 238, 239, 244, 242, 246, 249, 239, 244, 247, 237, 245, 247, 239, 244, 248, 240, 243, 248, 243, 243, 251, 243, 243, 251, 239, 247, 250, 239, 247, 250, 241, 246, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 231, 238, 244, 231, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 238, 238, 246, 238, 238, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 234, 234, 246, 234, 234, 244, 231, 234, 243, 231, 234, 239, 229, 234, 238, 227, 235, 237, 227, 235, 237, 226, 236, 238, 223, 234, 238, 224, 235, 241, 224, 234, 243, 223, 233, 243, 220, 230, 240, 219, 229, 238, 220, 229, 238, 221, 228, 234, 214, 215, 217, 201, 200, 198, 177, 173, 172, 149, 140, 141, 121, 111, 112, 94, 82, 84, 67, 52, 55, 47, 32, 35, 49, 34, 37, 46, 31, 34, 52, 36, 39, 66, 47, 51, 72, 51, 56, 69, 44, 50, 64, 37, 44, 65, 36, 41, 89, 63, 66, 87, 61, 62, 89, 63, 64, 93, 67, 68, 96, 67, 69, 93, 64, 66, 92, 66, 67, 95, 69, 70, 122, 96, 97, 117, 93, 93, 111, 87, 87, 104, 83, 82, 104, 84, 83, 112, 92, 91, 122, 104, 102, 130, 112, 110, 125, 105, 106, 123, 103, 104, 123, 103, 104, 128, 108, 109, 135, 115, 116, 137, 115, 117, 131, 109, 111, 126, 101, 104, 121, 96, 99, 120, 95, 98, 120, 94, 97, 119, 93, 96, 121, 95, 98, 125, 99, 102, 130, 101, 105, 131, 105, 108, 133, 111, 113, 131, 111, 112, 129, 109, 110, 130, 110, 111, 131, 111, 112, 132, 112, 113, 130, 110, 111, 129, 109, 110, 136, 116, 117, 139, 119, 120, 140, 120, 121, 139, 119, 120, 136, 116, 117, 132, 112, 113, 130, 110, 111, 129, 109, 110, 115, 94, 93, 115, 91, 91, 114, 90, 90, 115, 91, 91, 119, 95, 93, 123, 99, 97, 124, 100, 98, 124, 100, 98, 116, 92, 90, 116, 92, 90, 115, 91, 87, 113, 89, 85, 110, 86, 82, 106, 82, 78, 102, 78, 74, 99, 75, 71, 97, 71, 70, 96, 70, 69, 97, 71, 70, 100, 74, 73, 106, 80, 79, 110, 84, 83, 111, 85, 84, 111, 85, 84, 110, 84, 83, 99, 73, 72, 90, 64, 63, 90, 64, 63, 88, 62, 61, 83, 57, 56, 83, 57, 56, 88, 64, 60, 92, 73, 67, 88, 71, 63, 86, 67, 60, 82, 63, 56, 80, 61, 54, 80, 61, 54, 81, 62, 56, 82, 63, 57, 78, 57, 52, 90, 69, 64, 95, 74, 71, 89, 68, 65, 82, 61, 58, 80, 59, 56, 81, 57, 55, 74, 53, 50, 63, 44, 40, 55, 37, 33, 59, 40, 36, 62, 43, 39, 58, 39, 35, 60, 41, 37, 62, 42, 41, 54, 34, 33, 57, 39, 37, 46, 28, 26, 38, 23, 20, 44, 30, 27, 54, 43, 41, 59, 48, 46, 55, 45, 43, 50, 40, 38, 61, 50, 48, 69, 58, 56, 75, 64, 62, 73, 62, 60, 70, 60, 58, 72, 62, 60, 78, 68, 66, 80, 72, 69, 92, 85, 79, 100, 95, 89, 115, 110, 104, 133, 128, 122, 155, 150, 146, 174, 171, 164, 182, 179, 174, 179, 178, 174, 184, 188, 191, 191, 196, 202, 203, 208, 214, 212, 217, 223, 218, 223, 229, 221, 226, 232, 223, 228, 234, 224, 229, 235, 224, 229, 235, 227, 232, 238, 230, 235, 241, 231, 236, 242, 230, 235, 241, 230, 235, 241, 231, 236, 242, 233, 238, 244, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 236, 241, 245, 236, 241, 245, 236, 241, 245, 235, 240, 244, 235, 240, 244, 235, 240, 244, 234, 239, 243, 234, 239, 243, 234, 239, 243, 233, 238, 242, 233, 238, 242, 233, 238, 242, 232, 237, 241, 229, 234, 238, 229, 234, 238, 229, 234, 238, 229, 234, 238, 229, 234, 238, 229, 234, 238, 229, 234, 238, 229, 234, 238, 225, 230, 234, 225, 230, 234, 223, 228, 232, 220, 225, 229, 217, 222, 226, 213, 218, 222, 209, 214, 218, 208, 211, 216, 205, 206, 210, 207, 207, 209, 206, 206, 208, 204, 204, 206, 201, 201, 203, 201, 201, 203, 202, 202, 204, 205, 205, 207, 202, 202, 204, 209, 209, 211, 206, 206, 208, 198, 198, 200, 201, 201, 203, 215, 215, 217, 219, 219, 221, 213, 214, 218, 208, 211, 216, 212, 217, 223, 218, 223, 229, 220, 225, 231, 217, 222, 228, 213, 218, 224, 210, 215, 221, 208, 213, 219, 208, 213, 219, 210, 215, 221, 212, 217, 223, 214, 219, 225, 215, 220, 226, 214, 219, 225, 213, 218, 224, 212, 217, 223, 214, 219, 225, 214, 219, 225, 213, 218, 224, 212, 217, 223, 211, 216, 222, 211, 216, 222, 210, 215, 221, 210, 215, 221, 209, 214, 220, 209, 214, 220, 210, 215, 221, 210, 215, 221, 211, 216, 222, 212, 217, 223, 212, 217, 223, 213, 218, 222, 201, 209, 211, 202, 208, 208, 189, 193, 192, 184, 184, 182, 191, 188, 183, 184, 177, 171, 170, 159, 153, 171, 158, 150, 171, 156, 149, 178, 161, 153, 183, 166, 158, 180, 166, 157, 175, 160, 153, 170, 157, 151, 169, 158, 154, 175, 161, 158, 176, 161, 156, 179, 161, 157, 173, 155, 151, 159, 141, 137, 148, 131, 124, 145, 128, 121, 144, 127, 120, 143, 126, 119, 146, 131, 124, 146, 131, 124, 138, 125, 119, 128, 117, 111, 134, 123, 119, 146, 136, 134, 148, 140, 137, 142, 135, 129, 137, 130, 124, 133, 126, 118, 122, 115, 109, 102, 95, 89, 117, 109, 106, 118, 110, 107, 78, 70, 68, 72, 64, 62, 71, 63, 61, 62, 54, 52, 70, 62, 60, 66, 58, 56, 67, 59, 56, 70, 62, 59, 56, 48, 45, 59, 54, 50, 72, 71, 66, 125, 126, 120, 97, 96, 91, 39, 38, 33, 67, 62, 58, 69, 64, 60, 66, 58, 55, 72, 64, 61, 62, 53, 48, 43, 34, 29, 43, 34, 29, 52, 43, 38, 47, 38, 31, 47, 38, 31, 57, 50, 42, 63, 54, 47, 60, 46, 43, 42, 27, 24, 37, 22, 19, 42, 27, 24, 47, 32, 29, 59, 44, 41, 66, 48, 46, 54, 36, 34, 43, 25, 23, 53, 35, 33, 65, 47, 45, 72, 54, 52, 72, 52, 51, 67, 47, 46, 61, 41, 40, 58, 38, 37, 63, 44, 40, 63, 44, 40, 63, 44, 40, 62, 43, 39, 61, 42, 38, 58, 39, 35, 56, 37, 33, 54, 35, 31, 46, 27, 23, 49, 30, 26, 52, 33, 29, 54, 35, 31, 54, 35, 31, 48, 29, 25, 41, 22, 18, 35, 16, 12, 34, 16, 14, 43, 28, 25, 44, 29, 26, 32, 17, 14, 20, 5, 2, 18, 3, 0, 20, 5, 2, 20, 5, 2, 18, 3, 0, 17, 2, 0, 17, 2, 0, 18, 3, 0, 21, 6, 3, 26, 11, 8, 31, 16, 13, 34, 19, 16, 48, 30, 26, 55, 37, 33, 65, 47, 43, 72, 54, 50, 70, 52, 48, 59, 41, 37, 42, 24, 20, 31, 13, 9, 27, 8, 4, 30, 11, 7, 32, 13, 9, 35, 16, 12, 38, 19, 15, 42, 23, 19, 48, 27, 24, 52, 31, 28, 40, 20, 19, 50, 30, 29, 64, 44, 45, 74, 54, 55, 83, 63, 65, 93, 74, 76, 106, 87, 91, 116, 97, 101, 86, 67, 71, 94, 75, 79, 106, 86, 88, 113, 91, 94, 114, 89, 92, 108, 83, 86, 101, 77, 77, 98, 72, 73, 95, 67, 66, 92, 64, 61, 89, 60, 56, 88, 59, 53, 94, 61, 56, 100, 67, 60, 109, 75, 66, 114, 80, 70, 115, 81, 71, 119, 85, 76, 122, 89, 82, 121, 91, 83, 119, 88, 85, 117, 88, 84, 119, 91, 88, 120, 94, 93, 118, 93, 97, 122, 97, 101, 123, 98, 101, 124, 98, 97, 127, 102, 98, 134, 109, 104, 137, 112, 107, 135, 112, 106, 130, 109, 104, 131, 110, 105, 130, 109, 104, 132, 109, 103, 135, 110, 103, 143, 116, 107, 153, 125, 114, 165, 130, 111, 181, 135, 102, 185, 132, 92, 186, 128, 90, 186, 127, 85, 188, 125, 81, 187, 123, 77, 184, 118, 70, 181, 115, 67, 184, 117, 74, 179, 114, 72, 175, 113, 76, 177, 118, 86, 186, 130, 103, 195, 143, 119, 201, 153, 133, 204, 157, 139, 202, 157, 136, 207, 172, 153, 199, 181, 169, 198, 194, 185, 216, 216, 216, 229, 233, 236, 237, 238, 242, 241, 245, 248, 239, 244, 247, 237, 245, 247, 239, 244, 248, 240, 243, 248, 243, 243, 251, 243, 243, 251, 239, 247, 250, 238, 248, 250, 241, 246, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 249, 244, 248, 249, 244, 248, 249, 244, 248, 249, 244, 248, 249, 244, 248, 249, 244, 248, 249, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 250, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 241, 246, 252, 241, 246, 252, 241, 246, 252, 241, 246, 252, 241, 246, 252, 241, 246, 252, 241, 246, 252, 241, 246, 252, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 238, 238, 246, 238, 238, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 235, 244, 232, 235, 244, 231, 234, 241, 231, 234, 241, 229, 234, 238, 229, 234, 237, 227, 235, 238, 226, 236, 238, 224, 233, 238, 225, 234, 241, 226, 235, 244, 224, 233, 242, 220, 229, 238, 219, 228, 237, 219, 228, 237, 221, 228, 234, 223, 227, 230, 210, 210, 210, 181, 180, 178, 148, 142, 142, 120, 112, 110, 101, 89, 89, 85, 71, 71, 73, 59, 59, 52, 36, 39, 50, 34, 37, 58, 39, 43, 69, 50, 54, 72, 51, 56, 71, 46, 52, 76, 49, 56, 85, 58, 63, 96, 70, 73, 83, 57, 58, 76, 50, 51, 83, 57, 58, 91, 62, 64, 93, 64, 66, 100, 74, 75, 112, 86, 87, 116, 90, 91, 108, 84, 84, 104, 80, 80, 106, 85, 84, 117, 96, 95, 123, 103, 102, 123, 103, 102, 120, 100, 99, 113, 93, 92, 124, 103, 102, 134, 112, 114, 136, 115, 114, 130, 108, 110, 123, 101, 103, 122, 97, 100, 122, 97, 100, 122, 97, 100, 124, 98, 101, 125, 99, 102, 126, 100, 103, 129, 103, 106, 132, 106, 109, 134, 108, 111, 135, 110, 113, 144, 124, 125, 141, 123, 123, 139, 121, 121, 139, 121, 121, 141, 123, 123, 141, 123, 123, 139, 121, 121, 137, 119, 119, 148, 130, 130, 147, 129, 129, 143, 123, 124, 133, 115, 115, 126, 106, 107, 124, 104, 105, 129, 109, 110, 135, 115, 116, 134, 112, 114, 128, 107, 106, 123, 99, 99, 116, 95, 94, 117, 93, 93, 117, 96, 93, 119, 98, 97, 119, 98, 95, 123, 102, 101, 120, 99, 96, 117, 96, 93, 114, 93, 90, 111, 90, 87, 110, 89, 86, 110, 89, 86, 110, 89, 86, 111, 87, 85, 105, 81, 79, 98, 74, 72, 94, 70, 68, 94, 70, 68, 97, 71, 70, 99, 73, 72, 100, 74, 73, 114, 88, 87, 103, 77, 76, 98, 72, 71, 103, 77, 76, 106, 80, 79, 101, 75, 74, 99, 73, 72, 101, 77, 75, 86, 67, 61, 91, 72, 66, 92, 73, 67, 85, 66, 59, 73, 54, 48, 64, 45, 39, 64, 45, 39, 68, 49, 43, 67, 46, 41, 83, 62, 57, 92, 71, 68, 87, 66, 63, 81, 60, 57, 86, 62, 60, 90, 66, 64, 90, 66, 64, 78, 59, 55, 80, 61, 57, 94, 75, 71, 104, 85, 81, 99, 80, 76, 96, 77, 73, 91, 71, 70, 80, 60, 59, 71, 53, 51, 73, 55, 53, 65, 47, 45, 48, 33, 30, 44, 30, 27, 53, 39, 36, 56, 45, 43, 54, 43, 41, 57, 46, 44, 61, 50, 48, 70, 59, 57, 80, 69, 67, 83, 72, 70, 73, 63, 61, 58, 48, 46, 48, 38, 36, 103, 94, 89, 106, 99, 93, 107, 100, 94, 104, 99, 93, 114, 109, 105, 138, 133, 127, 166, 161, 157, 179, 178, 174, 170, 170, 170, 178, 179, 183, 192, 193, 197, 203, 207, 210, 212, 216, 219, 217, 220, 225, 221, 224, 229, 224, 227, 232, 224, 229, 235, 227, 232, 238, 230, 235, 241, 231, 236, 242, 228, 235, 243, 228, 235, 243, 229, 236, 244, 231, 238, 246, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 238, 245, 234, 239, 245, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 236, 241, 245, 236, 241, 245, 236, 241, 245, 235, 240, 244, 235, 240, 244, 234, 239, 243, 234, 239, 243, 234, 239, 243, 233, 238, 242, 233, 238, 242, 233, 238, 242, 232, 237, 241, 232, 237, 241, 227, 232, 236, 227, 232, 236, 227, 232, 236, 227, 232, 236, 227, 232, 236, 227, 232, 236, 228, 231, 236, 227, 232, 236, 223, 226, 231, 222, 225, 230, 221, 224, 229, 218, 222, 225, 214, 217, 222, 210, 214, 217, 206, 209, 214, 204, 208, 211, 204, 204, 206, 205, 205, 207, 204, 204, 206, 202, 202, 204, 199, 199, 201, 199, 199, 201, 200, 200, 202, 203, 203, 205, 196, 196, 198, 204, 204, 206, 203, 203, 205, 194, 194, 196, 197, 197, 199, 211, 211, 213, 215, 215, 217, 208, 208, 210, 203, 206, 211, 208, 211, 216, 214, 217, 222, 216, 219, 224, 214, 217, 222, 209, 212, 217, 206, 209, 214, 204, 207, 212, 204, 207, 212, 206, 209, 214, 208, 211, 216, 211, 214, 219, 211, 214, 219, 211, 214, 219, 209, 212, 217, 208, 211, 216, 210, 213, 218, 210, 213, 218, 209, 212, 217, 208, 211, 216, 208, 211, 216, 207, 210, 215, 206, 209, 214, 206, 209, 214, 207, 210, 215, 207, 210, 215, 208, 211, 216, 208, 211, 216, 209, 212, 217, 210, 213, 218, 211, 214, 219, 211, 215, 218, 197, 201, 202, 201, 206, 202, 188, 190, 187, 178, 177, 173, 186, 183, 178, 184, 177, 171, 169, 158, 152, 166, 153, 145, 166, 151, 144, 173, 159, 150, 178, 164, 155, 177, 162, 155, 170, 157, 149, 166, 153, 147, 166, 155, 149, 170, 159, 153, 173, 158, 153, 177, 159, 155, 172, 154, 150, 159, 141, 137, 148, 131, 124, 146, 129, 122, 146, 129, 122, 144, 129, 122, 143, 128, 121, 141, 126, 119, 131, 118, 112, 123, 109, 106, 128, 117, 113, 143, 133, 131, 150, 140, 138, 146, 139, 133, 134, 127, 121, 128, 121, 113, 112, 105, 99, 95, 88, 82, 120, 112, 109, 114, 106, 103, 70, 60, 58, 82, 74, 71, 82, 72, 71, 61, 53, 50, 72, 64, 62, 73, 65, 62, 67, 59, 56, 67, 59, 56, 53, 45, 42, 49, 44, 40, 99, 98, 93, 152, 153, 147, 38, 37, 32, 60, 59, 54, 60, 57, 52, 63, 58, 54, 61, 53, 50, 63, 55, 52, 43, 33, 31, 30, 21, 16, 43, 32, 28, 58, 47, 43, 52, 41, 37, 54, 43, 37, 72, 61, 55, 84, 73, 67, 51, 37, 34, 33, 19, 16, 33, 19, 16, 47, 32, 29, 57, 42, 39, 69, 54, 51, 71, 53, 51, 52, 34, 32, 52, 34, 32, 64, 46, 44, 78, 60, 58, 82, 64, 62, 74, 54, 53, 61, 41, 40, 52, 32, 31, 49, 29, 28, 65, 45, 44, 65, 46, 42, 64, 44, 43, 61, 42, 38, 56, 36, 35, 51, 32, 28, 45, 26, 22, 42, 23, 19, 44, 25, 21, 53, 34, 30, 61, 42, 38, 61, 42, 38, 53, 32, 29, 42, 23, 19, 36, 15, 12, 33, 14, 10, 39, 21, 19, 47, 32, 29, 48, 33, 30, 33, 18, 15, 20, 5, 2, 20, 5, 2, 23, 8, 5, 23, 8, 5, 16, 1, 0, 16, 1, 0, 17, 2, 0, 19, 4, 0, 25, 7, 3, 30, 12, 8, 34, 16, 12, 37, 19, 15, 38, 20, 16, 43, 26, 19, 49, 31, 27, 48, 30, 26, 43, 25, 21, 39, 21, 17, 40, 22, 18, 43, 25, 21, 39, 21, 17, 38, 20, 18, 35, 17, 15, 33, 15, 13, 34, 16, 14, 40, 22, 20, 50, 30, 29, 57, 37, 36, 71, 53, 51, 85, 67, 65, 102, 82, 83, 107, 87, 88, 101, 81, 82, 89, 69, 70, 81, 61, 63, 77, 57, 59, 91, 71, 73, 94, 72, 74, 95, 73, 75, 93, 68, 71, 86, 60, 61, 78, 52, 53, 72, 46, 45, 71, 43, 40, 67, 38, 34, 71, 40, 35, 76, 45, 40, 84, 51, 44, 91, 57, 48, 97, 63, 53, 102, 68, 58, 104, 70, 60, 113, 79, 69, 117, 84, 75, 120, 90, 82, 121, 90, 85, 118, 89, 83, 116, 88, 84, 119, 91, 87, 123, 95, 92, 119, 93, 94, 126, 100, 101, 127, 101, 100, 123, 95, 92, 126, 98, 94, 136, 109, 102, 139, 112, 105, 132, 107, 102, 128, 105, 99, 128, 107, 102, 130, 109, 104, 131, 110, 105, 135, 112, 106, 140, 117, 109, 148, 123, 116, 159, 127, 112, 180, 139, 111, 185, 135, 102, 185, 132, 98, 186, 130, 93, 190, 131, 91, 190, 128, 87, 188, 125, 84, 185, 120, 80, 187, 124, 83, 183, 119, 81, 178, 118, 84, 180, 123, 93, 189, 135, 107, 197, 147, 122, 202, 154, 134, 202, 157, 136, 202, 157, 136, 206, 171, 151, 198, 179, 164, 197, 191, 179, 215, 214, 210, 227, 231, 230, 234, 238, 239, 240, 246, 246, 237, 246, 245, 237, 245, 247, 239, 244, 248, 240, 243, 248, 243, 243, 251, 241, 244, 251, 239, 246, 252, 239, 247, 250, 241, 246, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 249, 244, 248, 251, 244, 248, 249, 244, 248, 251, 244, 248, 249, 244, 248, 251, 244, 248, 249, 243, 247, 250, 243, 247, 248, 243, 247, 250, 243, 247, 248, 243, 247, 250, 243, 247, 248, 243, 247, 250, 243, 247, 250, 245, 249, 252, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 246, 251, 243, 247, 250, 243, 246, 251, 243, 247, 250, 243, 246, 251, 243, 247, 250, 243, 246, 251, 243, 247, 250, 243, 246, 251, 243, 247, 250, 243, 246, 251, 243, 247, 250, 243, 246, 251, 243, 247, 250, 244, 247, 252, 244, 248, 251, 244, 247, 252, 244, 248, 251, 244, 247, 252, 244, 248, 251, 244, 247, 252, 244, 248, 251, 243, 246, 251, 243, 247, 250, 243, 246, 251, 243, 247, 250, 243, 246, 251, 243, 247, 250, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 241, 246, 252, 241, 246, 252, 241, 246, 252, 241, 246, 252, 241, 246, 252, 241, 246, 252, 241, 246, 252, 241, 246, 252, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 240, 245, 251, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 239, 244, 250, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 238, 238, 246, 238, 238, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 238, 229, 234, 240, 227, 234, 240, 226, 233, 239, 225, 232, 238, 225, 232, 240, 224, 231, 239, 223, 230, 238, 222, 229, 237, 222, 229, 237, 223, 228, 234, 223, 228, 232, 215, 219, 222, 191, 193, 192, 149, 148, 144, 110, 105, 101, 88, 79, 74, 79, 68, 62, 78, 63, 60, 73, 54, 56, 70, 51, 55, 76, 55, 60, 75, 54, 61, 65, 42, 48, 66, 43, 49, 76, 51, 55, 76, 51, 54, 80, 54, 57, 80, 51, 55, 78, 49, 53, 78, 49, 53, 81, 55, 58, 92, 66, 69, 107, 81, 82, 118, 92, 93, 88, 64, 64, 100, 76, 76, 113, 89, 89, 117, 93, 93, 115, 91, 89, 110, 89, 86, 113, 92, 89, 117, 96, 93, 146, 122, 120, 136, 112, 110, 123, 99, 99, 116, 92, 90, 116, 92, 92, 119, 95, 95, 118, 97, 96, 117, 96, 95, 124, 103, 102, 132, 111, 110, 139, 117, 119, 138, 116, 118, 136, 116, 117, 136, 116, 117, 133, 113, 114, 128, 110, 110, 128, 112, 113, 133, 119, 119, 142, 126, 127, 147, 131, 132, 149, 133, 134, 148, 132, 133, 148, 132, 133, 148, 132, 133, 151, 135, 136, 150, 134, 135, 148, 129, 131, 137, 121, 122, 131, 112, 114, 128, 109, 111, 131, 112, 114, 137, 117, 118, 133, 113, 114, 131, 111, 112, 131, 109, 111, 129, 109, 110, 129, 107, 109, 125, 105, 104, 119, 99, 100, 115, 95, 94, 118, 98, 99, 119, 99, 98, 117, 99, 97, 111, 93, 91, 105, 87, 85, 102, 84, 82, 105, 87, 85, 109, 91, 89, 118, 98, 97, 116, 95, 94, 109, 88, 87, 101, 80, 79, 94, 73, 72, 95, 71, 71, 98, 74, 74, 101, 77, 77, 93, 67, 68, 98, 72, 73, 100, 74, 75, 100, 74, 75, 103, 74, 76, 106, 77, 79, 105, 76, 78, 100, 74, 75, 86, 65, 62, 95, 74, 71, 101, 80, 77, 97, 76, 71, 86, 65, 62, 78, 57, 54, 79, 58, 55, 83, 62, 59, 97, 73, 69, 94, 70, 66, 94, 70, 66, 97, 73, 69, 98, 74, 70, 97, 72, 68, 98, 73, 69, 101, 77, 73, 105, 84, 81, 104, 83, 80, 103, 82, 79, 102, 81, 78, 101, 80, 77, 101, 80, 77, 101, 82, 78, 101, 82, 78, 84, 65, 61, 91, 72, 68, 88, 69, 65, 69, 51, 47, 52, 34, 30, 49, 34, 29, 62, 47, 44, 73, 58, 55, 85, 71, 68, 90, 76, 73, 86, 72, 69, 79, 65, 62, 85, 71, 70, 93, 82, 80, 88, 77, 75, 71, 61, 59, 63, 53, 51, 96, 88, 85, 86, 78, 75, 67, 59, 56, 90, 82, 80, 111, 106, 102, 130, 125, 122, 161, 156, 152, 148, 145, 140, 163, 160, 155, 183, 179, 176, 195, 194, 190, 202, 201, 199, 205, 205, 205, 213, 213, 215, 220, 221, 225, 219, 222, 227, 223, 228, 234, 229, 234, 240, 230, 237, 245, 228, 237, 246, 225, 234, 243, 223, 231, 242, 222, 231, 240, 226, 233, 241, 231, 238, 246, 235, 239, 248, 231, 235, 244, 230, 234, 243, 232, 236, 245, 234, 239, 245, 233, 238, 244, 235, 238, 245, 234, 237, 244, 234, 237, 242, 233, 236, 241, 234, 237, 242, 235, 238, 243, 238, 239, 244, 237, 240, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 237, 240, 247, 237, 240, 247, 237, 240, 247, 237, 240, 247, 237, 240, 247, 237, 240, 247, 237, 240, 247, 237, 240, 247, 237, 240, 247, 237, 240, 247, 237, 240, 247, 236, 241, 245, 236, 241, 245, 236, 241, 245, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 248, 234, 241, 247, 232, 239, 245, 231, 238, 244, 230, 237, 243, 230, 237, 243, 231, 238, 244, 231, 238, 244, 234, 239, 245, 233, 238, 244, 232, 237, 243, 230, 235, 241, 231, 234, 241, 231, 234, 241, 231, 234, 241, 232, 235, 242, 225, 228, 233, 226, 229, 234, 226, 229, 234, 227, 230, 235, 226, 229, 234, 225, 228, 233, 226, 227, 231, 223, 227, 230, 218, 219, 223, 219, 220, 224, 218, 219, 223, 214, 215, 217, 210, 211, 215, 208, 209, 211, 209, 210, 214, 212, 212, 214, 205, 205, 207, 202, 200, 201, 198, 196, 197, 199, 197, 198, 202, 200, 201, 204, 202, 203, 202, 200, 201, 199, 197, 198, 203, 201, 202, 203, 201, 202, 202, 200, 201, 199, 197, 198, 196, 194, 195, 196, 194, 195, 199, 197, 198, 201, 201, 203, 197, 197, 199, 204, 205, 209, 209, 210, 214, 208, 209, 213, 207, 208, 210, 208, 209, 211, 207, 208, 210, 204, 205, 207, 205, 206, 208, 207, 208, 210, 206, 208, 207, 201, 203, 202, 201, 203, 202, 205, 207, 206, 205, 207, 206, 202, 203, 205, 204, 205, 207, 204, 205, 209, 203, 204, 208, 202, 203, 207, 203, 204, 208, 204, 205, 209, 205, 206, 210, 206, 207, 211, 206, 207, 211, 206, 207, 211, 206, 207, 211, 206, 207, 211, 205, 206, 210, 204, 205, 209, 202, 203, 207, 202, 202, 204, 191, 192, 187, 197, 196, 191, 192, 189, 184, 181, 178, 173, 183, 178, 172, 185, 178, 172, 174, 165, 158, 164, 153, 147, 171, 160, 154, 168, 158, 149, 169, 159, 150, 175, 165, 156, 177, 168, 159, 173, 164, 155, 170, 161, 152, 170, 161, 152, 175, 162, 154, 171, 156, 149, 165, 150, 143, 157, 142, 135, 147, 132, 125, 139, 124, 117, 142, 127, 122, 148, 135, 129, 145, 132, 126, 137, 124, 118, 141, 127, 124, 127, 113, 110, 133, 122, 118, 158, 147, 143, 150, 139, 135, 139, 130, 125, 130, 121, 116, 116, 107, 102, 90, 81, 76, 97, 88, 83, 121, 112, 107, 103, 94, 89, 89, 78, 74, 113, 104, 99, 95, 84, 82, 70, 61, 56, 98, 88, 86, 69, 60, 55, 65, 58, 52, 92, 85, 79, 58, 53, 47, 72, 69, 62, 155, 156, 148, 87, 90, 81, 61, 62, 54, 60, 60, 52, 45, 42, 37, 56, 51, 47, 73, 65, 63, 54, 46, 44, 33, 23, 22, 34, 23, 21, 64, 50, 49, 56, 41, 38, 54, 39, 36, 93, 75, 73, 91, 73, 71, 69, 54, 51, 35, 21, 18, 29, 18, 14, 27, 16, 12, 59, 45, 42, 88, 74, 71, 69, 55, 52, 52, 37, 34, 72, 57, 54, 67, 49, 47, 76, 58, 56, 69, 49, 48, 64, 44, 43, 77, 56, 55, 75, 54, 53, 61, 40, 39, 58, 37, 36, 65, 45, 44, 51, 31, 30, 43, 23, 24, 47, 27, 26, 50, 30, 31, 47, 27, 26, 49, 28, 27, 57, 36, 35, 57, 36, 35, 58, 37, 36, 75, 54, 53, 68, 47, 46, 39, 15, 13, 37, 16, 13, 57, 33, 31, 54, 33, 32, 63, 45, 45, 60, 44, 44, 54, 38, 38, 41, 25, 25, 28, 12, 12, 20, 4, 4, 23, 5, 3, 27, 9, 7, 35, 17, 13, 28, 10, 6, 22, 4, 0, 22, 5, 0, 28, 9, 3, 32, 13, 7, 32, 13, 7, 30, 11, 5, 37, 20, 13, 33, 16, 8, 31, 14, 7, 34, 17, 10, 39, 22, 15, 39, 22, 15, 30, 15, 10, 23, 8, 3, 21, 6, 3, 39, 23, 23, 57, 41, 41, 64, 48, 48, 61, 45, 46, 66, 50, 51, 81, 66, 69, 96, 82, 82, 112, 96, 96, 100, 85, 82, 86, 68, 66, 75, 55, 54, 72, 52, 51, 75, 54, 53, 82, 58, 58, 86, 62, 62, 73, 47, 46, 78, 50, 49, 80, 52, 51, 78, 48, 46, 71, 41, 39, 65, 35, 33, 64, 35, 31, 66, 35, 30, 69, 35, 26, 74, 37, 28, 77, 40, 31, 80, 42, 31, 82, 44, 33, 89, 51, 38, 99, 63, 51, 106, 72, 62, 109, 76, 67, 110, 81, 73, 114, 87, 78, 117, 90, 83, 117, 90, 83, 118, 91, 82, 119, 92, 83, 121, 94, 85, 127, 98, 90, 123, 94, 86, 120, 91, 83, 122, 93, 85, 129, 100, 92, 133, 106, 97, 134, 107, 98, 131, 106, 99, 135, 112, 104, 134, 114, 107, 135, 114, 109, 135, 116, 110, 135, 116, 110, 139, 120, 114, 145, 126, 120, 153, 129, 119, 177, 142, 122, 185, 143, 119, 191, 145, 121, 194, 144, 119, 192, 138, 110, 189, 132, 103, 188, 127, 98, 186, 125, 96, 195, 131, 103, 192, 131, 102, 191, 131, 103, 190, 133, 106, 191, 137, 113, 194, 144, 121, 197, 149, 127, 199, 154, 131, 205, 165, 139, 199, 167, 142, 195, 175, 151, 200, 189, 171, 211, 209, 197, 225, 228, 221, 233, 239, 235, 236, 245, 244, 236, 246, 245, 237, 245, 247, 240, 245, 249, 241, 244, 249, 241, 244, 251, 242, 245, 252, 241, 246, 252, 241, 246, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 246, 251, 243, 247, 250, 243, 246, 251, 243, 247, 250, 243, 246, 251, 243, 247, 250, 243, 246, 251, 243, 247, 250, 243, 246, 251, 243, 247, 250, 243, 246, 251, 243, 247, 250, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 248, 243, 247, 250, 243, 247, 248, 243, 247, 250, 243, 247, 248, 243, 247, 250, 243, 247, 248, 243, 247, 250, 243, 247, 248, 243, 247, 250, 243, 247, 248, 243, 247, 250, 243, 247, 248, 243, 247, 250, 243, 247, 248, 243, 247, 250, 243, 247, 248, 243, 247, 250, 243, 247, 248, 243, 247, 250, 243, 247, 248, 243, 247, 250, 243, 247, 248, 243, 247, 250, 243, 247, 248, 243, 247, 250, 243, 247, 248, 243, 247, 250, 243, 247, 248, 243, 247, 250, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 238, 238, 246, 238, 238, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 231, 238, 244, 231, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 228, 233, 239, 227, 232, 238, 227, 232, 238, 226, 231, 237, 225, 230, 236, 224, 229, 235, 224, 229, 235, 224, 229, 235, 222, 229, 235, 210, 215, 219, 186, 190, 191, 161, 162, 157, 141, 138, 131, 121, 114, 106, 96, 86, 77, 76, 63, 57, 70, 52, 52, 70, 50, 52, 77, 54, 62, 71, 48, 56, 51, 28, 34, 47, 25, 28, 58, 36, 39, 65, 40, 43, 73, 47, 50, 79, 50, 54, 85, 56, 60, 90, 61, 65, 91, 65, 68, 94, 68, 71, 99, 73, 74, 102, 76, 77, 106, 82, 82, 106, 82, 82, 106, 82, 82, 106, 82, 82, 108, 84, 82, 112, 88, 86, 117, 93, 91, 120, 96, 94, 126, 100, 99, 122, 96, 95, 117, 93, 91, 117, 93, 91, 121, 97, 95, 123, 102, 99, 124, 103, 102, 122, 101, 100, 130, 109, 108, 135, 115, 116, 138, 118, 119, 136, 116, 117, 134, 116, 116, 136, 118, 118, 135, 119, 119, 133, 117, 117, 138, 124, 124, 140, 128, 128, 147, 133, 133, 148, 134, 134, 146, 132, 132, 144, 130, 130, 143, 129, 129, 143, 129, 129, 136, 120, 121, 139, 123, 124, 140, 124, 125, 139, 123, 124, 135, 119, 120, 133, 117, 118, 138, 119, 121, 141, 122, 124, 136, 116, 117, 137, 117, 118, 139, 119, 120, 143, 123, 124, 146, 126, 127, 145, 125, 126, 140, 122, 122, 137, 119, 119, 137, 119, 119, 134, 116, 116, 125, 109, 109, 116, 100, 100, 111, 95, 95, 114, 98, 98, 123, 107, 107, 131, 115, 115, 118, 100, 98, 118, 100, 98, 116, 96, 95, 110, 90, 89, 103, 83, 82, 99, 78, 77, 97, 76, 75, 99, 75, 75, 101, 77, 77, 103, 79, 79, 103, 79, 79, 102, 76, 77, 103, 77, 78, 105, 79, 80, 106, 80, 81, 104, 78, 79, 113, 92, 91, 115, 94, 93, 114, 93, 90, 107, 86, 83, 98, 77, 74, 93, 72, 69, 95, 74, 71, 99, 78, 75, 93, 69, 65, 90, 66, 62, 91, 67, 63, 96, 72, 68, 100, 75, 71, 101, 76, 72, 106, 81, 77, 111, 87, 83, 85, 61, 59, 82, 61, 58, 81, 60, 57, 80, 59, 56, 81, 60, 57, 84, 63, 60, 86, 67, 63, 88, 69, 65, 74, 55, 51, 84, 65, 61, 88, 69, 65, 81, 62, 58, 71, 53, 49, 68, 50, 46, 69, 51, 47, 69, 51, 47, 70, 55, 52, 88, 74, 71, 98, 84, 81, 89, 75, 72, 81, 67, 66, 87, 73, 72, 93, 82, 80, 94, 83, 81, 65, 55, 53, 79, 69, 67, 80, 72, 70, 68, 60, 58, 65, 57, 55, 81, 73, 71, 113, 108, 105, 144, 139, 135, 134, 127, 121, 150, 143, 135, 168, 161, 155, 177, 172, 166, 186, 181, 177, 198, 194, 191, 205, 204, 202, 208, 208, 208, 215, 216, 220, 218, 221, 226, 224, 229, 235, 226, 233, 241, 225, 234, 243, 223, 233, 243, 222, 232, 242, 224, 232, 243, 226, 233, 243, 231, 238, 246, 235, 239, 248, 231, 235, 244, 230, 234, 243, 233, 237, 246, 234, 239, 245, 233, 238, 244, 234, 237, 244, 234, 237, 244, 233, 236, 241, 233, 236, 241, 235, 236, 241, 236, 237, 242, 238, 239, 244, 238, 239, 244, 235, 238, 245, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 237, 240, 247, 237, 240, 247, 237, 240, 247, 237, 240, 247, 237, 240, 247, 237, 240, 247, 237, 240, 247, 237, 240, 247, 237, 240, 247, 237, 240, 247, 236, 241, 245, 236, 241, 245, 236, 241, 245, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 242, 248, 234, 241, 247, 233, 240, 246, 231, 238, 244, 230, 237, 243, 230, 237, 243, 230, 237, 243, 231, 238, 244, 233, 238, 244, 232, 237, 243, 230, 235, 241, 229, 234, 240, 228, 231, 238, 228, 231, 238, 227, 230, 237, 228, 231, 236, 222, 225, 230, 223, 226, 231, 224, 227, 232, 224, 227, 232, 225, 226, 231, 224, 225, 229, 223, 224, 228, 222, 223, 227, 216, 217, 221, 216, 217, 219, 216, 216, 218, 213, 213, 215, 209, 209, 211, 207, 207, 209, 208, 208, 210, 210, 210, 212, 206, 204, 205, 202, 200, 201, 198, 196, 197, 199, 197, 198, 201, 199, 200, 203, 201, 202, 201, 199, 200, 198, 196, 197, 198, 196, 197, 199, 197, 198, 199, 197, 198, 197, 195, 196, 194, 192, 193, 193, 191, 192, 195, 193, 194, 197, 195, 196, 194, 194, 196, 202, 202, 204, 206, 206, 208, 205, 205, 207, 204, 204, 204, 205, 205, 205, 204, 204, 204, 201, 201, 201, 202, 202, 202, 205, 205, 205, 203, 203, 201, 199, 199, 197, 199, 199, 197, 202, 202, 200, 203, 203, 201, 200, 200, 198, 201, 201, 201, 201, 201, 203, 201, 201, 203, 201, 201, 203, 202, 202, 204, 202, 202, 204, 202, 202, 204, 203, 203, 205, 202, 202, 204, 202, 202, 204, 203, 203, 205, 203, 203, 205, 203, 203, 205, 201, 201, 203, 200, 200, 202, 200, 198, 199, 195, 192, 187, 197, 194, 187, 189, 184, 178, 175, 170, 164, 174, 167, 161, 177, 170, 164, 174, 165, 158, 167, 158, 151, 169, 160, 153, 166, 157, 150, 168, 159, 150, 174, 165, 156, 176, 167, 158, 171, 164, 154, 166, 159, 149, 166, 157, 148, 173, 160, 152, 170, 155, 148, 163, 148, 141, 154, 139, 132, 143, 128, 121, 137, 122, 115, 139, 126, 120, 145, 132, 126, 140, 127, 121, 131, 118, 112, 136, 122, 119, 123, 109, 106, 126, 115, 111, 151, 140, 136, 145, 134, 130, 135, 124, 120, 126, 117, 112, 113, 104, 99, 91, 82, 77, 101, 92, 87, 124, 113, 109, 108, 97, 93, 92, 81, 77, 113, 102, 98, 96, 85, 81, 74, 63, 59, 74, 65, 60, 67, 58, 53, 81, 74, 68, 83, 76, 70, 62, 57, 51, 104, 101, 94, 141, 142, 134, 80, 81, 73, 56, 57, 49, 59, 59, 51, 50, 47, 42, 58, 53, 49, 68, 60, 58, 46, 38, 36, 39, 27, 27, 34, 22, 22, 51, 37, 36, 48, 32, 32, 66, 48, 46, 101, 81, 80, 91, 71, 70, 72, 54, 52, 33, 19, 16, 38, 29, 24, 60, 49, 45, 76, 65, 61, 74, 60, 57, 68, 54, 51, 71, 56, 53, 75, 60, 57, 63, 45, 43, 73, 55, 53, 72, 52, 51, 70, 50, 49, 76, 55, 54, 70, 49, 48, 66, 42, 42, 71, 50, 49, 59, 39, 40, 59, 39, 40, 59, 39, 40, 55, 35, 36, 46, 26, 27, 41, 21, 22, 48, 27, 26, 59, 38, 37, 58, 37, 36, 76, 55, 54, 81, 57, 57, 70, 46, 46, 70, 46, 44, 79, 55, 53, 80, 56, 54, 75, 54, 53, 92, 74, 74, 77, 61, 61, 57, 41, 41, 42, 26, 26, 36, 20, 20, 40, 24, 24, 50, 32, 30, 57, 39, 37, 48, 30, 26, 49, 31, 27, 52, 33, 27, 52, 33, 27, 50, 31, 25, 46, 27, 20, 40, 21, 14, 36, 17, 10, 26, 9, 2, 28, 13, 6, 29, 14, 7, 23, 8, 1, 14, 0, 0, 13, 0, 0, 20, 5, 0, 28, 14, 11, 58, 44, 43, 63, 49, 48, 70, 56, 56, 80, 66, 66, 90, 75, 78, 99, 84, 87, 104, 92, 96, 109, 97, 99, 72, 58, 57, 67, 52, 49, 61, 43, 41, 58, 38, 37, 60, 39, 36, 68, 44, 42, 74, 48, 47, 79, 51, 50, 80, 50, 48, 80, 50, 48, 78, 47, 44, 71, 40, 37, 62, 31, 28, 57, 26, 23, 57, 26, 21, 61, 28, 21, 72, 35, 26, 76, 38, 27, 81, 41, 31, 82, 42, 30, 84, 44, 32, 89, 51, 38, 98, 62, 50, 105, 71, 61, 114, 84, 76, 116, 89, 80, 120, 93, 86, 120, 95, 88, 120, 95, 88, 119, 95, 85, 121, 94, 85, 123, 95, 84, 125, 92, 83, 124, 90, 80, 124, 90, 80, 125, 93, 82, 130, 97, 88, 133, 103, 93, 136, 106, 98, 136, 107, 99, 143, 116, 109, 140, 115, 110, 138, 114, 110, 135, 114, 109, 136, 115, 110, 141, 122, 116, 151, 130, 127, 159, 136, 130, 168, 140, 126, 178, 145, 126, 187, 150, 132, 194, 153, 135, 197, 150, 130, 197, 146, 125, 195, 143, 121, 196, 142, 118, 200, 144, 121, 199, 143, 120, 198, 144, 120, 196, 144, 122, 198, 147, 126, 199, 153, 130, 203, 158, 137, 204, 162, 138, 205, 165, 139, 201, 167, 140, 199, 173, 150, 204, 187, 167, 213, 207, 193, 225, 227, 216, 232, 238, 234, 236, 245, 242, 237, 245, 247, 237, 245, 247, 240, 245, 249, 241, 244, 249, 241, 244, 251, 241, 246, 252, 241, 245, 254, 241, 246, 252, 243, 246, 253, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 238, 238, 246, 238, 238, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 231, 238, 244, 231, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 228, 233, 239, 228, 233, 239, 227, 232, 238, 226, 231, 237, 225, 230, 236, 225, 230, 236, 224, 229, 235, 224, 229, 235, 221, 228, 236, 213, 218, 222, 195, 199, 200, 178, 180, 177, 163, 163, 155, 144, 140, 131, 115, 106, 99, 92, 78, 75, 85, 67, 67, 73, 53, 55, 68, 45, 53, 63, 40, 48, 52, 29, 35, 52, 30, 33, 63, 41, 44, 69, 44, 47, 81, 55, 58, 83, 54, 58, 84, 55, 57, 84, 55, 57, 88, 59, 61, 94, 65, 67, 102, 76, 77, 109, 83, 84, 104, 78, 77, 101, 75, 74, 99, 73, 72, 104, 78, 77, 114, 88, 87, 123, 97, 96, 128, 103, 99, 129, 104, 100, 124, 98, 97, 121, 95, 94, 117, 93, 91, 118, 94, 92, 119, 98, 97, 123, 102, 101, 124, 102, 104, 123, 103, 104, 128, 108, 109, 132, 113, 115, 135, 116, 118, 134, 115, 117, 136, 118, 118, 142, 124, 124, 147, 129, 129, 146, 130, 130, 150, 136, 136, 149, 137, 137, 152, 138, 138, 149, 135, 135, 144, 130, 130, 139, 125, 125, 138, 124, 124, 138, 124, 124, 129, 113, 114, 134, 118, 119, 138, 122, 123, 140, 124, 125, 139, 123, 124, 137, 121, 122, 138, 119, 121, 139, 120, 122, 139, 121, 121, 139, 121, 121, 139, 121, 121, 141, 123, 123, 143, 125, 125, 141, 123, 123, 137, 119, 119, 133, 115, 115, 145, 127, 127, 147, 129, 129, 144, 128, 128, 139, 123, 123, 131, 115, 115, 123, 107, 107, 118, 102, 102, 116, 100, 100, 117, 102, 99, 120, 105, 102, 125, 107, 105, 124, 106, 104, 119, 101, 99, 113, 93, 92, 108, 88, 87, 107, 86, 85, 118, 97, 96, 116, 95, 94, 111, 90, 89, 108, 84, 84, 105, 81, 81, 104, 80, 80, 105, 81, 81, 105, 81, 81, 112, 91, 90, 108, 88, 87, 104, 83, 82, 100, 79, 78, 100, 79, 76, 104, 83, 80, 109, 88, 85, 113, 92, 89, 116, 92, 90, 108, 84, 82, 100, 76, 72, 95, 71, 67, 89, 65, 61, 83, 59, 55, 84, 59, 55, 86, 62, 58, 87, 63, 61, 84, 63, 60, 81, 60, 57, 80, 59, 56, 80, 59, 56, 82, 61, 58, 84, 63, 60, 86, 65, 62, 91, 72, 68, 95, 76, 72, 98, 79, 75, 98, 79, 75, 98, 80, 76, 99, 81, 77, 94, 76, 72, 86, 68, 64, 83, 68, 65, 85, 70, 67, 79, 64, 61, 69, 54, 51, 68, 54, 53, 76, 62, 61, 75, 64, 62, 67, 56, 54, 89, 79, 77, 83, 73, 71, 94, 84, 83, 90, 80, 79, 55, 47, 45, 46, 38, 36, 76, 68, 66, 102, 94, 91, 132, 123, 118, 147, 140, 132, 157, 150, 142, 154, 149, 143, 164, 159, 155, 184, 180, 177, 195, 194, 192, 194, 194, 194, 205, 206, 210, 208, 211, 216, 215, 220, 226, 219, 226, 234, 222, 229, 237, 223, 232, 241, 224, 233, 242, 226, 235, 244, 225, 232, 240, 230, 237, 245, 232, 239, 247, 229, 236, 244, 230, 234, 243, 233, 237, 246, 235, 239, 248, 234, 238, 247, 233, 238, 244, 232, 237, 243, 233, 236, 243, 232, 235, 242, 233, 236, 243, 234, 237, 244, 235, 238, 245, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 237, 240, 247, 237, 240, 247, 237, 240, 247, 237, 240, 247, 237, 240, 247, 237, 240, 247, 237, 240, 247, 237, 240, 247, 237, 240, 247, 235, 240, 244, 236, 241, 245, 236, 241, 245, 236, 241, 245, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 242, 248, 234, 241, 247, 233, 240, 246, 232, 239, 245, 231, 238, 244, 230, 237, 243, 231, 236, 242, 231, 236, 242, 232, 237, 243, 231, 236, 242, 230, 233, 238, 228, 231, 236, 225, 228, 233, 223, 226, 231, 222, 225, 230, 221, 224, 229, 218, 221, 226, 218, 222, 225, 221, 222, 226, 221, 222, 226, 221, 222, 226, 220, 221, 225, 218, 219, 223, 218, 219, 221, 212, 212, 214, 213, 213, 215, 212, 212, 214, 209, 209, 209, 205, 205, 205, 203, 203, 203, 206, 204, 205, 207, 205, 206, 205, 203, 204, 202, 200, 201, 199, 197, 198, 198, 196, 197, 200, 198, 199, 201, 199, 200, 199, 197, 198, 198, 196, 197, 191, 189, 190, 194, 192, 193, 196, 194, 195, 195, 193, 194, 193, 191, 192, 191, 189, 190, 191, 189, 190, 192, 190, 191, 191, 191, 193, 198, 198, 200, 202, 202, 204, 200, 200, 202, 199, 199, 199, 201, 201, 201, 201, 201, 201, 198, 198, 198, 198, 198, 196, 200, 200, 198, 199, 199, 197, 195, 195, 193, 194, 194, 192, 198, 198, 196, 199, 199, 197, 196, 196, 194, 196, 194, 195, 197, 195, 196, 198, 196, 197, 199, 197, 198, 200, 198, 199, 199, 197, 198, 198, 196, 197, 198, 196, 197, 196, 194, 195, 197, 195, 196, 198, 196, 197, 199, 197, 198, 199, 197, 198, 198, 196, 197, 197, 195, 196, 197, 196, 194, 194, 191, 186, 194, 189, 183, 187, 180, 174, 169, 162, 156, 162, 153, 148, 168, 159, 154, 174, 163, 157, 171, 160, 154, 170, 159, 153, 168, 157, 151, 170, 160, 151, 176, 167, 158, 177, 168, 159, 171, 162, 153, 164, 155, 146, 163, 153, 144, 171, 158, 150, 168, 153, 146, 161, 146, 139, 150, 135, 128, 139, 124, 117, 134, 119, 112, 137, 124, 118, 142, 129, 123, 136, 123, 117, 125, 112, 106, 131, 117, 114, 118, 104, 101, 117, 106, 102, 143, 132, 128, 140, 129, 125, 129, 118, 114, 127, 118, 113, 110, 101, 96, 90, 81, 76, 99, 90, 85, 119, 108, 104, 109, 98, 94, 100, 89, 85, 117, 106, 102, 99, 88, 84, 77, 66, 62, 51, 42, 37, 70, 61, 56, 93, 86, 80, 70, 63, 57, 77, 72, 66, 142, 139, 132, 115, 115, 107, 68, 68, 60, 51, 51, 43, 59, 56, 49, 52, 49, 44, 56, 51, 47, 56, 48, 46, 34, 26, 24, 41, 29, 29, 40, 28, 28, 46, 32, 31, 50, 34, 34, 78, 63, 60, 97, 79, 77, 74, 56, 54, 61, 43, 41, 32, 18, 15, 43, 32, 28, 74, 63, 59, 79, 68, 64, 61, 47, 44, 69, 55, 52, 80, 65, 62, 59, 44, 41, 63, 45, 43, 69, 51, 49, 72, 52, 51, 73, 53, 52, 71, 50, 49, 59, 38, 37, 59, 38, 37, 76, 55, 54, 58, 38, 39, 58, 40, 40, 52, 34, 34, 40, 22, 22, 37, 17, 18, 47, 27, 28, 63, 43, 42, 73, 53, 52, 66, 46, 45, 87, 67, 66, 81, 60, 59, 72, 51, 50, 86, 65, 62, 81, 60, 57, 72, 51, 48, 86, 65, 62, 71, 53, 51, 65, 47, 45, 59, 41, 39, 60, 42, 40, 65, 47, 45, 68, 50, 48, 65, 47, 45, 60, 42, 40, 56, 38, 34, 52, 34, 30, 45, 27, 23, 37, 20, 13, 30, 13, 6, 28, 11, 4, 30, 13, 6, 33, 16, 9, 37, 24, 18, 31, 18, 12, 24, 11, 5, 23, 10, 4, 31, 17, 14, 46, 32, 29, 61, 47, 44, 68, 57, 55, 62, 51, 49, 75, 63, 63, 94, 82, 84, 108, 96, 98, 107, 95, 99, 88, 76, 80, 59, 47, 51, 39, 24, 27, 41, 25, 25, 41, 23, 21, 39, 21, 19, 42, 22, 21, 49, 28, 25, 58, 34, 32, 63, 38, 34, 67, 39, 36, 76, 46, 44, 74, 44, 42, 70, 41, 37, 64, 35, 31, 60, 31, 25, 60, 31, 25, 64, 35, 29, 69, 39, 31, 64, 30, 21, 70, 33, 24, 76, 38, 29, 78, 40, 29, 81, 43, 32, 88, 50, 39, 98, 62, 50, 103, 71, 60, 105, 75, 67, 107, 80, 73, 112, 84, 80, 112, 87, 82, 111, 86, 81, 110, 85, 78, 111, 84, 75, 114, 84, 74, 131, 92, 85, 133, 92, 86, 133, 92, 86, 131, 92, 85, 130, 91, 86, 131, 94, 88, 132, 97, 93, 135, 102, 97, 143, 109, 107, 139, 108, 105, 135, 105, 103, 131, 103, 100, 132, 104, 103, 137, 111, 110, 149, 120, 122, 155, 130, 126, 155, 133, 122, 164, 142, 128, 179, 153, 138, 190, 161, 145, 196, 163, 144, 199, 162, 143, 201, 158, 139, 202, 157, 136, 203, 156, 136, 202, 155, 135, 200, 155, 134, 199, 154, 133, 199, 156, 137, 199, 161, 140, 201, 164, 145, 204, 166, 145, 208, 164, 139, 206, 164, 140, 203, 171, 150, 207, 184, 168, 215, 203, 191, 225, 222, 213, 234, 236, 233, 238, 244, 242, 239, 244, 247, 239, 244, 247, 241, 244, 249, 241, 244, 249, 240, 245, 251, 241, 246, 252, 239, 246, 254, 239, 246, 252, 242, 247, 253, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 238, 238, 246, 238, 238, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 231, 238, 244, 231, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 228, 233, 239, 228, 233, 239, 227, 232, 238, 227, 232, 238, 226, 231, 237, 225, 230, 236, 225, 230, 236, 224, 229, 235, 217, 224, 232, 220, 227, 233, 214, 218, 219, 192, 194, 191, 164, 163, 158, 140, 136, 127, 122, 113, 106, 110, 99, 95, 107, 91, 91, 77, 58, 60, 60, 39, 44, 66, 43, 49, 76, 53, 59, 86, 64, 67, 91, 69, 72, 88, 63, 66, 82, 56, 59, 85, 56, 58, 87, 58, 60, 89, 60, 62, 92, 63, 65, 99, 70, 72, 105, 79, 80, 112, 86, 85, 90, 64, 63, 95, 69, 68, 104, 78, 77, 115, 89, 88, 122, 96, 95, 125, 100, 96, 123, 98, 94, 120, 95, 91, 117, 91, 90, 114, 88, 87, 110, 86, 84, 109, 85, 83, 111, 90, 89, 116, 96, 97, 122, 102, 103, 125, 106, 108, 123, 104, 106, 129, 113, 114, 137, 118, 120, 139, 120, 122, 143, 125, 125, 151, 133, 133, 157, 139, 139, 156, 140, 140, 152, 138, 138, 150, 138, 138, 151, 137, 137, 146, 132, 132, 140, 126, 126, 136, 122, 122, 135, 121, 121, 136, 122, 122, 138, 122, 123, 140, 124, 125, 141, 125, 126, 141, 125, 126, 138, 122, 123, 134, 118, 119, 133, 114, 116, 132, 113, 115, 139, 121, 121, 135, 117, 117, 132, 114, 114, 130, 112, 112, 131, 113, 113, 133, 115, 115, 132, 114, 114, 131, 113, 113, 140, 122, 122, 142, 124, 124, 141, 125, 125, 138, 122, 122, 130, 114, 114, 120, 104, 104, 110, 94, 94, 104, 88, 88, 111, 96, 93, 116, 101, 98, 121, 106, 103, 122, 107, 104, 120, 105, 102, 117, 99, 97, 114, 96, 94, 113, 95, 93, 116, 96, 95, 110, 90, 89, 104, 84, 83, 102, 82, 81, 101, 80, 79, 102, 81, 80, 106, 85, 84, 110, 89, 88, 106, 86, 85, 100, 80, 79, 96, 75, 74, 95, 74, 73, 100, 79, 76, 105, 84, 81, 108, 87, 84, 109, 88, 85, 104, 80, 78, 96, 72, 70, 89, 65, 61, 86, 62, 58, 82, 58, 54, 80, 56, 52, 84, 59, 55, 88, 64, 60, 102, 78, 76, 100, 79, 76, 99, 78, 75, 96, 75, 72, 93, 72, 69, 89, 68, 65, 86, 65, 62, 84, 63, 60, 86, 67, 63, 80, 61, 57, 72, 53, 49, 69, 50, 46, 76, 58, 54, 84, 66, 62, 82, 64, 60, 74, 56, 52, 86, 71, 68, 77, 62, 59, 61, 46, 43, 52, 37, 34, 56, 42, 41, 64, 50, 49, 59, 48, 46, 49, 38, 36, 74, 63, 61, 70, 60, 58, 87, 77, 76, 99, 89, 88, 75, 67, 65, 47, 39, 37, 55, 47, 45, 83, 75, 72, 120, 111, 106, 137, 128, 121, 140, 131, 124, 128, 121, 113, 135, 128, 122, 164, 159, 155, 187, 183, 180, 188, 187, 185, 194, 194, 196, 199, 200, 204, 206, 209, 214, 213, 218, 224, 219, 224, 230, 222, 229, 237, 226, 233, 241, 229, 236, 244, 223, 230, 238, 229, 236, 244, 231, 238, 246, 228, 235, 243, 229, 233, 242, 232, 236, 245, 235, 239, 248, 234, 238, 247, 232, 237, 243, 231, 236, 242, 232, 235, 242, 232, 235, 242, 232, 235, 242, 233, 236, 243, 234, 237, 244, 235, 238, 245, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 240, 244, 235, 240, 244, 236, 241, 245, 236, 241, 245, 236, 241, 245, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 241, 247, 234, 241, 247, 233, 240, 246, 232, 239, 245, 231, 238, 244, 229, 236, 242, 229, 234, 240, 228, 233, 239, 231, 236, 242, 230, 235, 241, 229, 232, 237, 227, 230, 235, 223, 226, 231, 220, 223, 228, 217, 220, 225, 215, 219, 222, 212, 216, 219, 213, 217, 220, 215, 216, 220, 216, 217, 219, 215, 216, 220, 214, 215, 217, 213, 214, 216, 212, 213, 215, 207, 207, 209, 208, 208, 208, 207, 207, 207, 205, 205, 205, 201, 201, 201, 200, 200, 200, 202, 200, 201, 204, 202, 203, 203, 201, 202, 202, 200, 201, 199, 197, 198, 198, 196, 197, 198, 196, 197, 198, 196, 197, 197, 195, 196, 197, 195, 196, 187, 185, 186, 191, 189, 190, 194, 192, 193, 195, 193, 194, 193, 191, 192, 190, 188, 189, 189, 187, 188, 189, 187, 188, 190, 190, 192, 196, 196, 198, 199, 199, 201, 197, 197, 199, 196, 196, 196, 198, 198, 198, 199, 199, 199, 197, 197, 197, 196, 196, 194, 198, 198, 196, 197, 197, 195, 193, 193, 191, 192, 192, 190, 196, 196, 194, 196, 196, 194, 194, 194, 192, 192, 191, 189, 193, 192, 190, 195, 193, 194, 197, 196, 194, 197, 195, 196, 197, 196, 194, 195, 193, 194, 194, 193, 191, 192, 190, 191, 193, 192, 190, 194, 192, 193, 195, 194, 192, 196, 194, 195, 195, 194, 192, 195, 193, 194, 196, 192, 191, 191, 186, 182, 190, 185, 179, 185, 178, 172, 168, 161, 155, 155, 146, 141, 162, 153, 148, 173, 162, 156, 171, 160, 154, 170, 159, 153, 169, 158, 152, 172, 162, 153, 179, 169, 160, 179, 169, 160, 171, 162, 153, 162, 153, 144, 160, 150, 141, 168, 155, 147, 168, 153, 146, 160, 145, 138, 146, 131, 124, 135, 120, 113, 134, 119, 112, 138, 125, 119, 141, 128, 122, 135, 122, 116, 122, 109, 103, 130, 116, 113, 117, 103, 100, 112, 101, 97, 138, 127, 123, 139, 128, 124, 127, 116, 112, 129, 120, 115, 106, 97, 92, 88, 79, 74, 95, 86, 81, 110, 99, 95, 109, 98, 94, 109, 98, 94, 121, 110, 106, 100, 89, 85, 82, 71, 67, 48, 39, 34, 78, 69, 64, 84, 77, 71, 59, 52, 46, 106, 101, 95, 160, 155, 149, 86, 83, 76, 63, 60, 53, 58, 55, 48, 64, 59, 53, 56, 51, 47, 50, 45, 41, 45, 37, 35, 29, 19, 18, 35, 25, 24, 51, 39, 39, 54, 40, 39, 58, 44, 43, 79, 65, 62, 76, 61, 58, 50, 35, 32, 47, 32, 29, 46, 32, 29, 49, 38, 34, 65, 54, 50, 71, 60, 56, 71, 57, 54, 80, 66, 63, 74, 59, 56, 45, 30, 27, 67, 49, 47, 63, 45, 43, 67, 47, 46, 73, 53, 52, 67, 46, 45, 52, 31, 30, 54, 33, 32, 70, 50, 49, 47, 29, 29, 47, 29, 29, 40, 22, 22, 37, 19, 19, 50, 32, 32, 71, 51, 52, 77, 57, 56, 70, 50, 49, 75, 55, 54, 81, 61, 60, 80, 60, 59, 83, 62, 61, 81, 60, 57, 63, 42, 39, 66, 45, 42, 94, 75, 71, 71, 51, 50, 73, 55, 53, 79, 61, 59, 84, 66, 64, 84, 66, 64, 75, 57, 55, 60, 42, 40, 48, 30, 28, 46, 28, 24, 40, 22, 18, 33, 15, 11, 29, 11, 7, 31, 13, 9, 33, 18, 13, 40, 22, 18, 40, 25, 20, 47, 36, 32, 43, 33, 31, 42, 32, 30, 50, 40, 38, 64, 53, 51, 72, 62, 60, 75, 63, 63, 72, 60, 60, 104, 92, 92, 100, 88, 88, 88, 76, 78, 69, 57, 59, 48, 36, 40, 35, 23, 27, 31, 19, 23, 35, 20, 23, 51, 33, 33, 50, 30, 29, 48, 28, 27, 51, 30, 29, 59, 35, 33, 66, 40, 39, 72, 44, 41, 73, 45, 42, 65, 35, 33, 64, 34, 32, 60, 31, 27, 57, 28, 24, 55, 26, 20, 54, 27, 20, 58, 29, 23, 60, 31, 25, 65, 32, 25, 72, 35, 27, 78, 41, 33, 82, 45, 36, 87, 49, 40, 93, 56, 47, 101, 67, 57, 108, 75, 66, 114, 83, 78, 115, 87, 83, 116, 91, 86, 116, 91, 86, 112, 87, 82, 107, 82, 77, 106, 79, 72, 107, 77, 69, 110, 73, 65, 115, 75, 67, 117, 78, 71, 116, 77, 70, 113, 74, 67, 114, 77, 71, 118, 83, 77, 123, 90, 85, 141, 108, 103, 138, 107, 104, 134, 105, 101, 130, 102, 99, 130, 102, 99, 132, 107, 103, 139, 113, 112, 144, 120, 116, 141, 124, 116, 151, 135, 122, 168, 148, 137, 184, 161, 147, 193, 165, 151, 197, 165, 150, 199, 163, 147, 201, 162, 145, 201, 160, 142, 200, 159, 141, 198, 157, 139, 198, 157, 139, 196, 158, 139, 196, 159, 141, 197, 160, 142, 201, 160, 142, 209, 161, 139, 210, 162, 140, 207, 169, 150, 208, 180, 166, 215, 198, 188, 225, 218, 212, 234, 233, 231, 239, 243, 244, 240, 244, 247, 239, 244, 247, 241, 244, 249, 241, 244, 249, 240, 245, 251, 239, 246, 252, 238, 247, 254, 238, 247, 252, 242, 247, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 238, 238, 246, 238, 238, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 231, 238, 244, 231, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 228, 233, 239, 228, 233, 239, 227, 232, 238, 226, 231, 237, 226, 231, 237, 225, 230, 236, 225, 230, 236, 214, 221, 229, 224, 231, 237, 226, 230, 233, 204, 206, 205, 168, 169, 164, 137, 134, 127, 117, 110, 104, 106, 95, 91, 106, 90, 90, 78, 59, 61, 70, 49, 54, 86, 65, 70, 99, 76, 82, 104, 82, 85, 101, 79, 82, 93, 68, 71, 77, 51, 54, 89, 60, 62, 103, 74, 76, 112, 84, 83, 112, 84, 83, 105, 77, 76, 97, 69, 68, 92, 64, 63, 91, 63, 62, 103, 75, 72, 115, 87, 84, 120, 92, 89, 115, 87, 84, 108, 80, 77, 103, 75, 72, 102, 74, 70, 97, 69, 66, 98, 73, 69, 103, 79, 77, 109, 85, 85, 115, 93, 95, 121, 101, 103, 124, 108, 111, 128, 112, 115, 130, 114, 117, 138, 123, 126, 147, 131, 134, 149, 133, 134, 152, 134, 134, 156, 138, 138, 157, 137, 136, 154, 136, 136, 144, 130, 130, 143, 131, 131, 144, 130, 130, 141, 127, 127, 137, 123, 123, 135, 121, 121, 135, 121, 121, 137, 123, 123, 147, 131, 132, 145, 129, 130, 142, 126, 127, 139, 123, 124, 137, 121, 122, 134, 118, 119, 134, 115, 117, 132, 113, 115, 140, 122, 122, 135, 117, 117, 127, 111, 111, 126, 110, 110, 130, 114, 114, 138, 122, 122, 146, 130, 130, 150, 134, 134, 136, 120, 120, 130, 114, 114, 122, 106, 106, 116, 100, 100, 115, 99, 99, 120, 104, 104, 126, 110, 110, 130, 114, 114, 111, 97, 94, 113, 99, 96, 114, 100, 97, 113, 99, 96, 110, 96, 93, 109, 94, 91, 109, 94, 91, 110, 95, 92, 103, 85, 83, 96, 78, 76, 94, 76, 74, 98, 80, 78, 102, 82, 81, 105, 85, 84, 113, 93, 92, 123, 103, 102, 123, 103, 102, 117, 97, 96, 111, 91, 90, 110, 90, 89, 112, 91, 90, 111, 90, 89, 105, 84, 81, 99, 78, 75, 95, 74, 71, 88, 67, 64, 85, 61, 57, 84, 60, 56, 83, 59, 55, 83, 59, 55, 88, 64, 60, 95, 71, 67, 95, 71, 69, 98, 74, 72, 101, 77, 75, 101, 77, 75, 95, 74, 71, 88, 67, 64, 80, 59, 56, 75, 54, 51, 77, 58, 54, 67, 48, 44, 53, 34, 30, 46, 27, 23, 54, 35, 31, 63, 44, 40, 62, 43, 39, 53, 35, 31, 49, 34, 31, 61, 46, 43, 71, 56, 53, 70, 55, 52, 62, 48, 45, 62, 48, 45, 68, 54, 53, 72, 61, 59, 59, 48, 46, 67, 56, 54, 70, 60, 58, 86, 76, 74, 92, 82, 81, 58, 48, 47, 40, 32, 30, 69, 61, 58, 96, 87, 80, 116, 106, 97, 118, 107, 101, 99, 90, 83, 99, 92, 86, 130, 125, 121, 166, 161, 158, 181, 177, 176, 182, 180, 181, 187, 187, 189, 196, 197, 199, 204, 208, 211, 212, 215, 220, 219, 224, 230, 226, 231, 237, 230, 235, 241, 221, 228, 236, 226, 233, 241, 229, 236, 244, 226, 233, 241, 225, 232, 240, 229, 236, 244, 232, 239, 247, 231, 238, 246, 229, 236, 244, 229, 236, 244, 230, 234, 243, 230, 234, 243, 230, 234, 243, 231, 235, 244, 232, 236, 245, 233, 237, 246, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 236, 241, 245, 236, 241, 245, 237, 242, 246, 237, 242, 246, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 232, 237, 243, 229, 234, 240, 227, 232, 236, 225, 230, 234, 229, 232, 237, 228, 231, 236, 227, 230, 235, 225, 228, 233, 221, 225, 228, 217, 221, 224, 215, 216, 220, 213, 214, 218, 209, 210, 214, 209, 210, 212, 210, 211, 213, 210, 212, 211, 210, 211, 213, 209, 211, 210, 208, 208, 208, 208, 208, 208, 203, 203, 203, 204, 204, 202, 205, 204, 202, 202, 201, 199, 199, 198, 196, 198, 197, 195, 200, 199, 197, 202, 201, 199, 202, 201, 199, 201, 200, 198, 200, 199, 197, 198, 197, 195, 196, 195, 193, 195, 194, 192, 195, 194, 192, 196, 195, 193, 186, 185, 183, 190, 189, 187, 194, 193, 191, 195, 194, 192, 193, 192, 190, 191, 190, 188, 190, 189, 187, 190, 189, 187, 191, 189, 190, 197, 195, 196, 199, 197, 198, 197, 195, 196, 195, 193, 194, 198, 196, 197, 200, 198, 199, 198, 196, 197, 196, 195, 193, 199, 198, 196, 197, 196, 194, 193, 192, 190, 193, 192, 188, 196, 195, 191, 197, 196, 192, 194, 193, 189, 191, 190, 186, 192, 191, 187, 193, 192, 190, 194, 193, 189, 194, 193, 191, 194, 193, 189, 193, 192, 190, 193, 192, 188, 191, 190, 188, 192, 191, 187, 193, 192, 190, 194, 193, 189, 194, 193, 191, 193, 192, 188, 192, 191, 189, 193, 189, 186, 187, 182, 178, 186, 179, 173, 186, 177, 172, 172, 163, 158, 156, 145, 141, 163, 152, 148, 175, 162, 156, 168, 155, 149, 169, 156, 150, 169, 156, 150, 174, 161, 153, 182, 169, 161, 182, 169, 161, 171, 161, 152, 162, 152, 143, 157, 147, 138, 164, 151, 143, 166, 151, 144, 158, 143, 136, 142, 127, 120, 131, 118, 110, 134, 121, 113, 140, 127, 121, 142, 129, 123, 137, 124, 118, 122, 109, 103, 131, 120, 116, 117, 106, 102, 109, 98, 94, 136, 125, 121, 141, 130, 126, 127, 116, 112, 119, 110, 105, 96, 87, 82, 90, 81, 76, 102, 93, 88, 111, 100, 96, 111, 100, 96, 111, 100, 96, 110, 99, 95, 102, 91, 87, 86, 75, 71, 65, 56, 51, 85, 76, 71, 62, 55, 49, 64, 57, 51, 136, 131, 125, 148, 143, 137, 70, 65, 59, 70, 65, 59, 75, 70, 64, 78, 71, 65, 66, 58, 55, 52, 44, 41, 42, 32, 31, 35, 25, 24, 31, 21, 20, 57, 47, 46, 59, 48, 46, 55, 44, 42, 60, 49, 45, 52, 38, 35, 46, 32, 29, 56, 42, 39, 59, 48, 44, 65, 54, 50, 62, 51, 47, 72, 61, 57, 93, 79, 76, 86, 72, 69, 63, 48, 45, 57, 42, 39, 67, 49, 47, 57, 39, 37, 61, 43, 41, 73, 55, 53, 72, 52, 51, 61, 41, 40, 63, 43, 42, 73, 53, 52, 46, 28, 28, 50, 34, 34, 55, 39, 39, 60, 44, 44, 71, 55, 55, 82, 64, 64, 72, 54, 52, 54, 36, 34, 80, 62, 60, 73, 55, 53, 79, 61, 59, 80, 60, 59, 69, 50, 46, 76, 57, 53, 92, 73, 69, 92, 73, 69, 82, 63, 59, 81, 62, 58, 75, 56, 52, 65, 46, 42, 54, 35, 31, 46, 27, 23, 44, 26, 22, 45, 27, 23, 50, 35, 32, 52, 37, 34, 61, 46, 43, 74, 59, 56, 85, 70, 67, 85, 71, 68, 75, 60, 57, 63, 49, 48, 50, 40, 39, 40, 32, 30, 29, 21, 19, 24, 16, 14, 35, 25, 24, 57, 49, 47, 83, 73, 74, 101, 91, 92, 100, 90, 91, 90, 80, 81, 71, 61, 62, 50, 40, 41, 39, 27, 29, 43, 31, 33, 59, 47, 49, 75, 61, 61, 67, 49, 49, 65, 44, 43, 62, 41, 40, 62, 41, 40, 70, 46, 44, 79, 53, 52, 87, 59, 56, 89, 61, 58, 90, 62, 59, 88, 60, 57, 84, 56, 52, 80, 52, 48, 75, 48, 41, 67, 42, 35, 64, 37, 30, 61, 34, 27, 72, 41, 36, 79, 46, 41, 85, 50, 44, 87, 53, 44, 90, 53, 45, 92, 58, 49, 100, 65, 59, 104, 73, 68, 111, 82, 78, 114, 86, 83, 116, 91, 87, 114, 90, 86, 110, 85, 81, 103, 78, 73, 101, 73, 69, 99, 70, 62, 110, 80, 70, 116, 84, 71, 120, 88, 77, 119, 89, 78, 120, 90, 79, 122, 94, 83, 129, 102, 91, 134, 110, 100, 134, 110, 100, 135, 112, 104, 135, 112, 104, 132, 112, 105, 131, 111, 104, 130, 111, 104, 132, 113, 107, 134, 117, 110, 134, 119, 112, 145, 131, 122, 163, 144, 137, 180, 158, 147, 190, 163, 152, 194, 164, 153, 196, 162, 150, 199, 161, 148, 199, 160, 145, 200, 158, 144, 200, 157, 141, 199, 156, 140, 198, 156, 140, 198, 156, 142, 198, 156, 142, 201, 155, 139, 214, 159, 139, 215, 160, 140, 212, 166, 150, 211, 177, 165, 216, 193, 187, 225, 211, 208, 235, 231, 230, 242, 242, 244, 240, 244, 247, 240, 243, 248, 241, 244, 249, 241, 244, 249, 240, 245, 251, 239, 246, 252, 237, 248, 252, 238, 247, 252, 242, 247, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 238, 238, 246, 238, 238, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 231, 238, 244, 231, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 228, 233, 239, 228, 233, 239, 227, 232, 238, 226, 231, 237, 225, 230, 236, 225, 230, 236, 216, 223, 231, 221, 228, 234, 223, 227, 230, 212, 214, 213, 187, 188, 183, 154, 151, 146, 116, 108, 105, 87, 78, 73, 82, 68, 67, 72, 56, 56, 84, 65, 67, 104, 84, 86, 101, 81, 83, 88, 66, 69, 82, 60, 63, 81, 56, 59, 96, 70, 71, 103, 74, 76, 109, 81, 80, 111, 83, 82, 106, 78, 77, 98, 70, 69, 92, 64, 63, 88, 60, 59, 94, 66, 63, 103, 75, 72, 111, 83, 80, 110, 82, 79, 102, 74, 71, 96, 68, 65, 99, 71, 67, 104, 76, 72, 102, 74, 71, 111, 83, 80, 121, 95, 94, 128, 107, 106, 132, 112, 113, 132, 113, 117, 131, 114, 120, 130, 115, 120, 143, 128, 133, 151, 136, 141, 156, 141, 146, 154, 139, 142, 153, 134, 136, 150, 132, 132, 146, 126, 125, 139, 121, 119, 133, 119, 118, 133, 121, 121, 138, 124, 124, 139, 125, 125, 137, 123, 123, 136, 122, 122, 137, 123, 123, 139, 125, 125, 146, 130, 131, 143, 127, 128, 140, 124, 125, 139, 123, 124, 141, 125, 126, 141, 125, 126, 142, 123, 125, 140, 121, 123, 147, 129, 129, 140, 122, 122, 130, 114, 114, 126, 110, 110, 129, 113, 113, 137, 121, 121, 145, 129, 129, 149, 133, 133, 135, 119, 119, 130, 114, 114, 125, 109, 109, 123, 107, 107, 125, 109, 109, 129, 113, 113, 132, 116, 116, 133, 117, 117, 133, 118, 115, 131, 117, 114, 128, 114, 111, 123, 109, 106, 118, 104, 101, 116, 102, 99, 118, 103, 100, 120, 105, 102, 126, 111, 108, 116, 101, 98, 113, 95, 93, 117, 99, 97, 118, 100, 98, 115, 97, 95, 120, 102, 100, 131, 113, 111, 126, 106, 105, 124, 104, 103, 122, 102, 101, 122, 102, 101, 124, 103, 102, 120, 99, 98, 111, 90, 87, 104, 83, 80, 118, 97, 94, 110, 89, 86, 103, 79, 75, 97, 73, 69, 90, 66, 62, 83, 59, 55, 81, 57, 53, 85, 61, 57, 84, 60, 58, 88, 64, 62, 94, 70, 68, 97, 73, 71, 94, 73, 70, 89, 68, 65, 82, 61, 58, 78, 57, 54, 81, 62, 58, 76, 57, 53, 68, 49, 45, 62, 43, 39, 63, 44, 40, 66, 47, 43, 62, 43, 39, 53, 34, 30, 37, 19, 17, 47, 32, 29, 63, 48, 45, 75, 60, 57, 79, 64, 61, 73, 59, 56, 67, 53, 52, 64, 50, 49, 70, 56, 55, 81, 70, 68, 73, 62, 60, 79, 69, 67, 101, 91, 90, 76, 66, 65, 48, 40, 38, 68, 58, 56, 94, 83, 77, 117, 107, 98, 121, 110, 104, 95, 84, 78, 75, 66, 61, 91, 84, 78, 130, 122, 119, 156, 151, 148, 169, 165, 164, 174, 172, 173, 184, 184, 184, 193, 194, 196, 203, 204, 208, 212, 213, 217, 221, 222, 226, 225, 228, 233, 220, 225, 231, 223, 230, 238, 226, 233, 241, 224, 231, 239, 223, 230, 238, 227, 234, 242, 230, 237, 245, 229, 236, 244, 228, 235, 243, 228, 235, 243, 229, 233, 242, 229, 233, 242, 229, 233, 242, 230, 234, 243, 232, 236, 245, 232, 236, 245, 233, 236, 243, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 234, 239, 243, 234, 239, 243, 235, 240, 244, 235, 240, 244, 235, 240, 244, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 236, 241, 245, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 246, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 237, 242, 248, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 231, 236, 242, 227, 232, 238, 223, 228, 232, 221, 226, 230, 222, 225, 230, 222, 225, 230, 222, 225, 230, 220, 224, 227, 217, 221, 224, 212, 216, 219, 210, 211, 215, 207, 208, 210, 204, 205, 207, 205, 207, 206, 206, 208, 207, 206, 208, 207, 205, 207, 206, 204, 206, 205, 204, 204, 204, 203, 203, 201, 201, 201, 199, 202, 202, 200, 203, 202, 200, 201, 200, 196, 198, 197, 195, 198, 197, 193, 199, 198, 194, 202, 201, 197, 200, 199, 197, 201, 200, 198, 200, 199, 197, 197, 196, 194, 194, 193, 191, 192, 191, 189, 193, 192, 190, 195, 194, 192, 187, 186, 184, 189, 188, 186, 192, 191, 189, 192, 191, 189, 191, 190, 188, 190, 189, 187, 191, 190, 188, 192, 191, 189, 191, 189, 190, 196, 194, 195, 198, 196, 197, 195, 193, 194, 194, 192, 193, 197, 195, 196, 199, 197, 198, 198, 196, 197, 195, 194, 192, 198, 197, 195, 197, 196, 194, 192, 191, 189, 192, 191, 187, 195, 194, 190, 196, 195, 191, 193, 192, 188, 190, 189, 185, 190, 189, 185, 189, 188, 184, 188, 187, 183, 189, 188, 184, 190, 189, 185, 191, 190, 186, 192, 191, 187, 192, 191, 187, 192, 191, 187, 192, 191, 187, 192, 191, 187, 191, 190, 186, 190, 189, 185, 188, 187, 183, 189, 186, 181, 187, 180, 174, 181, 174, 168, 183, 174, 169, 173, 164, 159, 157, 146, 142, 165, 154, 150, 176, 163, 157, 162, 149, 143, 162, 149, 143, 163, 150, 144, 170, 157, 149, 180, 167, 159, 181, 168, 160, 171, 158, 150, 160, 147, 139, 155, 142, 134, 158, 143, 136, 161, 146, 139, 153, 138, 131, 136, 121, 114, 127, 114, 106, 134, 121, 113, 142, 129, 123, 143, 130, 124, 138, 125, 119, 120, 107, 101, 132, 121, 117, 118, 107, 103, 104, 93, 89, 133, 122, 118, 141, 130, 126, 127, 116, 112, 103, 94, 89, 85, 76, 71, 94, 85, 80, 114, 105, 100, 116, 105, 101, 114, 103, 99, 107, 96, 92, 90, 79, 75, 103, 92, 88, 91, 80, 76, 83, 74, 69, 81, 72, 67, 51, 44, 38, 86, 79, 73, 150, 145, 139, 119, 114, 108, 72, 65, 59, 86, 79, 73, 94, 85, 80, 89, 82, 76, 79, 69, 67, 60, 50, 48, 44, 34, 33, 42, 32, 31, 35, 25, 24, 59, 49, 48, 52, 42, 40, 42, 32, 30, 39, 28, 24, 41, 32, 27, 63, 52, 48, 72, 61, 57, 58, 47, 43, 70, 59, 55, 69, 58, 54, 77, 66, 62, 92, 78, 75, 70, 56, 53, 53, 38, 35, 73, 58, 55, 62, 44, 42, 56, 38, 36, 66, 48, 46, 81, 63, 61, 81, 61, 60, 79, 59, 58, 83, 63, 62, 84, 66, 64, 77, 61, 61, 78, 62, 62, 75, 59, 59, 68, 52, 52, 65, 49, 49, 67, 51, 51, 71, 53, 51, 70, 52, 50, 85, 67, 65, 76, 58, 56, 72, 54, 52, 60, 42, 40, 60, 41, 37, 97, 78, 74, 104, 85, 81, 59, 40, 36, 53, 32, 29, 56, 35, 32, 58, 37, 34, 55, 36, 32, 53, 34, 30, 57, 38, 34, 68, 50, 46, 78, 60, 56, 87, 72, 69, 88, 73, 70, 92, 77, 74, 97, 83, 80, 101, 87, 86, 93, 82, 80, 82, 68, 67, 69, 57, 57, 49, 40, 41, 30, 24, 24, 20, 11, 12, 30, 21, 22, 57, 48, 49, 79, 70, 71, 85, 76, 77, 80, 71, 72, 33, 23, 24, 43, 33, 34, 59, 49, 50, 74, 64, 65, 81, 69, 71, 74, 62, 62, 59, 47, 49, 48, 34, 34, 50, 30, 31, 48, 27, 26, 46, 25, 24, 52, 28, 28, 61, 35, 34, 70, 44, 43, 79, 51, 50, 83, 55, 52, 96, 68, 65, 95, 67, 64, 92, 64, 60, 89, 64, 59, 88, 63, 56, 83, 60, 52, 77, 54, 46, 73, 48, 41, 68, 39, 35, 73, 42, 39, 79, 46, 41, 80, 47, 40, 80, 47, 40, 82, 49, 42, 87, 54, 49, 91, 60, 57, 98, 70, 67, 103, 77, 76, 111, 87, 85, 117, 93, 91, 120, 94, 93, 119, 94, 90, 120, 92, 89, 121, 92, 86, 137, 105, 94, 136, 104, 89, 136, 103, 88, 132, 100, 87, 129, 97, 84, 127, 98, 84, 128, 100, 88, 130, 104, 91, 120, 93, 82, 121, 97, 85, 124, 100, 90, 125, 103, 92, 124, 102, 91, 123, 101, 90, 122, 102, 93, 123, 105, 95, 135, 118, 111, 143, 128, 121, 161, 142, 135, 177, 154, 148, 187, 160, 153, 193, 163, 155, 197, 163, 153, 201, 163, 152, 201, 161, 151, 204, 160, 149, 204, 160, 147, 206, 160, 147, 205, 159, 146, 205, 159, 146, 204, 158, 145, 206, 157, 142, 215, 156, 140, 216, 159, 142, 213, 165, 151, 212, 176, 164, 214, 189, 184, 223, 208, 205, 234, 228, 228, 242, 242, 244, 242, 243, 247, 240, 243, 248, 241, 244, 249, 240, 245, 249, 240, 245, 251, 238, 247, 252, 237, 248, 252, 237, 248, 252, 242, 247, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 238, 238, 246, 238, 238, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 231, 238, 244, 231, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 228, 233, 239, 227, 232, 238, 226, 231, 237, 226, 231, 237, 225, 230, 236, 221, 228, 236, 220, 227, 233, 219, 222, 227, 214, 215, 217, 201, 201, 199, 171, 170, 166, 126, 121, 117, 89, 81, 78, 74, 63, 61, 66, 52, 51, 79, 63, 63, 96, 77, 79, 86, 66, 68, 69, 49, 51, 68, 46, 49, 75, 50, 53, 111, 85, 86, 109, 81, 80, 102, 74, 73, 94, 66, 65, 91, 61, 59, 92, 62, 60, 98, 68, 66, 103, 73, 71, 104, 74, 72, 106, 76, 74, 108, 79, 75, 108, 79, 75, 106, 77, 73, 108, 79, 75, 112, 83, 79, 117, 88, 84, 119, 90, 86, 125, 97, 94, 130, 104, 103, 132, 111, 110, 131, 111, 112, 129, 113, 116, 131, 116, 121, 132, 119, 126, 139, 126, 133, 145, 133, 137, 148, 133, 138, 142, 127, 130, 139, 120, 122, 136, 118, 118, 133, 113, 112, 127, 109, 107, 126, 112, 111, 128, 116, 116, 136, 122, 122, 139, 125, 125, 140, 126, 126, 139, 125, 125, 139, 125, 125, 140, 126, 126, 143, 127, 128, 141, 125, 126, 142, 126, 127, 145, 129, 130, 148, 132, 133, 149, 133, 134, 147, 128, 130, 142, 123, 125, 141, 125, 125, 135, 119, 119, 127, 111, 111, 123, 107, 107, 123, 107, 107, 126, 110, 110, 129, 113, 113, 130, 114, 114, 131, 113, 113, 132, 114, 114, 135, 117, 117, 140, 122, 122, 143, 125, 125, 139, 121, 121, 130, 112, 112, 120, 104, 104, 144, 129, 126, 144, 129, 126, 143, 128, 125, 140, 125, 122, 137, 122, 119, 136, 121, 118, 138, 123, 120, 140, 125, 122, 147, 132, 129, 135, 120, 117, 131, 113, 111, 134, 116, 114, 131, 113, 111, 122, 104, 102, 124, 106, 104, 134, 116, 114, 118, 98, 97, 118, 98, 97, 120, 100, 99, 122, 102, 101, 123, 103, 102, 121, 101, 100, 117, 96, 95, 113, 92, 91, 115, 94, 91, 109, 88, 85, 105, 84, 81, 104, 83, 80, 102, 78, 76, 97, 73, 71, 96, 72, 68, 100, 76, 72, 94, 70, 68, 96, 72, 70, 98, 74, 72, 99, 75, 73, 99, 75, 73, 97, 73, 71, 92, 71, 68, 91, 70, 67, 74, 53, 50, 76, 55, 52, 72, 53, 49, 65, 46, 42, 60, 41, 37, 58, 39, 35, 55, 36, 32, 49, 30, 26, 57, 39, 35, 50, 32, 28, 50, 32, 30, 60, 45, 42, 71, 56, 53, 69, 54, 51, 56, 41, 38, 43, 29, 26, 59, 45, 44, 74, 63, 61, 80, 69, 67, 88, 77, 75, 105, 95, 93, 102, 92, 90, 84, 74, 73, 78, 68, 66, 85, 74, 68, 117, 104, 96, 131, 118, 112, 102, 91, 85, 63, 52, 48, 59, 50, 45, 94, 86, 83, 131, 126, 123, 157, 152, 149, 162, 158, 157, 173, 169, 168, 182, 180, 181, 192, 190, 191, 202, 202, 204, 212, 212, 214, 218, 219, 223, 217, 222, 226, 223, 228, 234, 226, 231, 237, 223, 228, 234, 223, 228, 234, 228, 233, 239, 228, 235, 243, 228, 235, 243, 228, 235, 243, 227, 234, 242, 227, 234, 242, 226, 233, 241, 227, 234, 242, 228, 235, 243, 229, 236, 244, 232, 236, 245, 233, 236, 243, 233, 236, 243, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 230, 235, 241, 231, 236, 242, 232, 237, 243, 231, 236, 242, 230, 233, 238, 226, 229, 234, 221, 224, 229, 219, 222, 227, 215, 216, 220, 216, 217, 221, 217, 218, 222, 216, 217, 219, 213, 214, 216, 209, 210, 212, 204, 205, 207, 201, 202, 204, 203, 203, 203, 203, 203, 201, 204, 204, 202, 204, 204, 202, 204, 204, 202, 203, 203, 201, 202, 201, 199, 201, 200, 196, 202, 201, 197, 203, 202, 198, 203, 202, 198, 201, 200, 195, 200, 196, 193, 200, 197, 192, 202, 199, 194, 204, 200, 197, 201, 197, 196, 203, 199, 198, 203, 199, 198, 199, 195, 194, 194, 190, 189, 192, 188, 187, 193, 189, 188, 196, 192, 191, 188, 184, 183, 190, 186, 185, 191, 187, 186, 190, 186, 185, 189, 185, 184, 189, 185, 184, 192, 188, 187, 195, 191, 190, 190, 188, 189, 195, 193, 194, 196, 194, 195, 192, 190, 191, 191, 189, 190, 195, 193, 194, 197, 196, 194, 197, 196, 194, 193, 192, 190, 196, 195, 193, 194, 193, 189, 190, 189, 185, 190, 189, 185, 193, 192, 188, 194, 193, 189, 191, 190, 186, 191, 188, 183, 188, 185, 180, 185, 182, 177, 183, 180, 175, 183, 180, 175, 186, 183, 178, 190, 187, 182, 193, 190, 185, 193, 190, 185, 193, 190, 185, 193, 190, 185, 192, 189, 184, 190, 187, 182, 187, 184, 179, 185, 182, 177, 183, 180, 175, 188, 181, 175, 177, 168, 163, 178, 167, 163, 169, 158, 154, 155, 141, 138, 167, 153, 150, 177, 162, 157, 159, 144, 139, 153, 138, 133, 155, 140, 135, 164, 149, 142, 175, 160, 153, 177, 162, 155, 167, 154, 146, 155, 142, 134, 149, 136, 128, 149, 134, 127, 154, 139, 132, 146, 133, 125, 128, 115, 107, 121, 108, 100, 132, 119, 111, 142, 129, 123, 142, 129, 123, 133, 122, 116, 114, 103, 97, 129, 118, 114, 115, 104, 100, 98, 87, 83, 127, 116, 112, 137, 128, 123, 122, 113, 108, 100, 91, 86, 80, 71, 66, 93, 84, 79, 114, 105, 100, 111, 100, 96, 111, 100, 96, 106, 95, 91, 82, 71, 67, 103, 92, 88, 95, 84, 80, 89, 80, 75, 66, 57, 52, 60, 53, 47, 119, 112, 106, 145, 140, 134, 94, 87, 81, 79, 70, 65, 95, 86, 81, 96, 85, 81, 88, 79, 74, 87, 76, 74, 66, 56, 54, 42, 32, 31, 37, 27, 26, 48, 38, 37, 58, 48, 47, 44, 34, 32, 36, 28, 25, 36, 27, 22, 52, 45, 39, 80, 71, 66, 63, 54, 49, 59, 48, 44, 67, 56, 52, 78, 67, 63, 84, 73, 69, 78, 64, 61, 59, 45, 42, 59, 45, 42, 75, 61, 58, 57, 42, 39, 61, 46, 43, 82, 64, 62, 90, 72, 70, 82, 64, 62, 82, 64, 62, 89, 71, 69, 86, 68, 66, 95, 79, 79, 81, 67, 66, 66, 52, 51, 59, 45, 44, 59, 45, 44, 65, 51, 50, 80, 65, 62, 93, 78, 75, 79, 64, 61, 69, 54, 51, 55, 40, 37, 50, 35, 32, 71, 53, 49, 95, 77, 73, 82, 64, 60, 47, 28, 24, 51, 30, 25, 59, 38, 33, 71, 50, 45, 83, 62, 57, 91, 72, 68, 97, 78, 74, 99, 81, 79, 101, 83, 81, 91, 75, 75, 92, 76, 76, 90, 76, 75, 81, 70, 68, 71, 59, 59, 63, 53, 52, 63, 51, 51, 63, 53, 54, 49, 40, 41, 57, 51, 53, 79, 70, 73, 100, 91, 94, 106, 97, 98, 83, 74, 75, 41, 31, 32, 7, 0, 0, 30, 18, 18, 38, 26, 26, 48, 36, 36, 54, 42, 42, 55, 41, 41, 46, 32, 31, 34, 20, 20, 27, 11, 11, 26, 6, 7, 27, 5, 7, 31, 7, 7, 38, 14, 14, 47, 21, 22, 55, 29, 28, 59, 33, 32, 61, 35, 34, 57, 32, 28, 55, 30, 26, 53, 28, 23, 54, 31, 25, 58, 35, 29, 59, 39, 32, 58, 38, 29, 55, 35, 28, 52, 27, 23, 61, 33, 32, 70, 40, 38, 76, 45, 42, 80, 49, 46, 85, 54, 51, 94, 63, 60, 99, 69, 67, 113, 85, 84, 118, 92, 93, 127, 103, 103, 133, 109, 109, 136, 110, 109, 134, 109, 105, 135, 107, 104, 138, 105, 100, 122, 82, 72, 119, 77, 63, 114, 70, 57, 107, 65, 53, 104, 62, 50, 100, 60, 48, 97, 57, 45, 93, 55, 42, 104, 66, 55, 106, 70, 58, 110, 73, 64, 111, 77, 67, 113, 79, 69, 116, 84, 73, 121, 89, 78, 121, 93, 82, 134, 114, 107, 142, 123, 117, 156, 136, 129, 171, 148, 142, 183, 156, 149, 190, 160, 152, 197, 163, 154, 203, 165, 156, 205, 162, 153, 206, 162, 151, 210, 162, 150, 210, 162, 150, 211, 162, 148, 210, 161, 147, 212, 160, 147, 212, 159, 145, 215, 156, 140, 217, 160, 143, 214, 166, 152, 211, 174, 165, 212, 187, 182, 220, 206, 203, 233, 227, 227, 242, 242, 244, 242, 243, 247, 240, 243, 248, 241, 244, 249, 240, 245, 249, 240, 245, 249, 238, 248, 250, 237, 248, 252, 238, 247, 252, 242, 247, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 238, 238, 246, 238, 238, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 231, 238, 244, 231, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 235, 241, 229, 234, 240, 229, 234, 240, 228, 233, 239, 227, 232, 238, 226, 231, 237, 226, 231, 237, 225, 230, 236, 225, 232, 240, 225, 230, 236, 219, 224, 228, 211, 215, 218, 200, 202, 201, 175, 175, 173, 139, 135, 132, 108, 103, 99, 85, 75, 73, 62, 51, 49, 62, 48, 47, 75, 59, 59, 73, 54, 56, 66, 46, 48, 72, 50, 53, 81, 56, 59, 96, 70, 71, 99, 71, 70, 98, 70, 69, 96, 68, 67, 95, 65, 63, 97, 67, 65, 101, 71, 69, 105, 75, 73, 123, 93, 91, 120, 90, 88, 117, 88, 84, 118, 89, 85, 119, 90, 86, 119, 90, 86, 118, 87, 84, 114, 83, 80, 113, 84, 80, 113, 85, 82, 111, 85, 84, 107, 86, 85, 109, 89, 90, 118, 99, 103, 130, 115, 120, 140, 127, 134, 126, 113, 120, 129, 117, 121, 131, 116, 121, 125, 109, 112, 123, 104, 106, 123, 105, 105, 125, 105, 104, 122, 104, 102, 123, 109, 108, 127, 115, 115, 137, 123, 123, 141, 127, 127, 142, 128, 128, 141, 127, 127, 140, 126, 126, 140, 126, 126, 143, 127, 128, 144, 128, 129, 146, 130, 131, 151, 135, 136, 154, 138, 139, 152, 136, 137, 145, 126, 128, 137, 118, 120, 126, 110, 110, 123, 107, 107, 121, 105, 105, 122, 106, 106, 125, 109, 109, 128, 112, 112, 128, 112, 112, 128, 112, 112, 128, 110, 110, 126, 108, 108, 125, 107, 107, 129, 111, 111, 135, 117, 117, 139, 121, 121, 139, 119, 120, 135, 117, 117, 135, 117, 115, 138, 120, 118, 142, 124, 122, 144, 126, 124, 145, 127, 125, 147, 129, 127, 150, 132, 130, 153, 135, 133, 132, 114, 112, 121, 103, 101, 120, 102, 100, 128, 110, 108, 130, 112, 110, 123, 105, 103, 127, 109, 107, 138, 120, 118, 126, 106, 105, 126, 106, 105, 126, 106, 105, 125, 105, 104, 121, 101, 100, 117, 97, 96, 114, 93, 92, 112, 91, 90, 109, 88, 85, 105, 84, 81, 104, 83, 80, 107, 86, 83, 109, 85, 83, 105, 81, 79, 105, 81, 77, 109, 85, 81, 110, 86, 84, 108, 84, 82, 104, 80, 78, 101, 77, 75, 99, 75, 73, 98, 74, 72, 96, 75, 72, 96, 75, 72, 75, 54, 51, 79, 58, 55, 75, 56, 52, 65, 46, 42, 56, 37, 33, 55, 36, 32, 57, 38, 34, 57, 38, 34, 64, 46, 42, 63, 45, 41, 61, 43, 41, 57, 39, 37, 50, 32, 30, 45, 30, 27, 54, 39, 36, 65, 50, 47, 57, 43, 42, 72, 58, 57, 94, 83, 81, 101, 90, 88, 98, 87, 85, 99, 89, 87, 85, 75, 74, 52, 41, 39, 54, 41, 35, 92, 79, 71, 119, 106, 100, 100, 87, 81, 55, 44, 40, 42, 31, 27, 80, 70, 68, 126, 118, 115, 150, 142, 140, 155, 150, 147, 165, 160, 157, 175, 171, 170, 186, 182, 181, 195, 194, 192, 206, 204, 205, 212, 212, 212, 216, 219, 224, 221, 226, 232, 224, 229, 235, 222, 227, 233, 222, 227, 233, 227, 232, 238, 227, 234, 242, 227, 234, 242, 228, 235, 243, 227, 234, 242, 226, 233, 241, 226, 233, 241, 226, 233, 241, 228, 235, 243, 229, 236, 244, 230, 237, 245, 232, 237, 243, 233, 236, 243, 233, 236, 243, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 228, 233, 239, 229, 234, 240, 231, 236, 242, 230, 235, 241, 229, 232, 237, 224, 227, 232, 220, 223, 228, 217, 221, 224, 209, 210, 214, 210, 211, 213, 211, 212, 214, 211, 212, 214, 209, 210, 212, 205, 207, 206, 200, 201, 203, 197, 199, 198, 201, 201, 199, 202, 202, 200, 202, 202, 200, 203, 203, 201, 202, 202, 200, 201, 202, 197, 201, 200, 196, 200, 199, 195, 202, 201, 197, 203, 202, 198, 203, 202, 197, 201, 200, 195, 201, 198, 193, 200, 197, 192, 202, 199, 194, 205, 202, 197, 201, 197, 194, 203, 199, 198, 203, 199, 198, 199, 195, 194, 193, 189, 188, 190, 186, 185, 193, 189, 188, 196, 192, 191, 188, 184, 183, 188, 184, 183, 188, 184, 183, 186, 182, 181, 185, 181, 180, 187, 183, 182, 191, 187, 186, 195, 191, 190, 188, 186, 187, 193, 191, 192, 193, 191, 192, 189, 187, 188, 188, 186, 187, 192, 190, 191, 195, 194, 192, 195, 194, 192, 191, 190, 188, 194, 193, 191, 192, 191, 187, 188, 187, 183, 188, 187, 183, 191, 190, 186, 192, 191, 187, 189, 188, 183, 189, 186, 181, 186, 183, 178, 181, 178, 173, 178, 175, 170, 178, 175, 170, 182, 179, 174, 188, 185, 180, 192, 189, 184, 193, 190, 185, 192, 189, 184, 191, 188, 183, 189, 186, 181, 187, 184, 179, 184, 181, 176, 181, 178, 173, 180, 175, 171, 190, 183, 177, 174, 165, 160, 172, 161, 157, 164, 153, 149, 151, 137, 134, 165, 151, 148, 177, 162, 157, 157, 142, 137, 148, 130, 126, 151, 133, 129, 159, 144, 137, 171, 156, 149, 173, 158, 151, 164, 149, 142, 151, 138, 130, 145, 132, 124, 143, 128, 121, 149, 134, 127, 141, 128, 120, 123, 110, 102, 117, 104, 96, 130, 117, 109, 141, 128, 122, 140, 127, 121, 130, 119, 113, 109, 98, 92, 125, 114, 110, 111, 100, 96, 92, 81, 77, 122, 111, 107, 133, 124, 119, 117, 108, 103, 107, 98, 93, 81, 72, 67, 88, 79, 74, 104, 95, 90, 99, 88, 84, 105, 94, 90, 108, 97, 93, 86, 75, 71, 104, 93, 89, 98, 87, 83, 86, 77, 72, 53, 44, 39, 74, 67, 61, 143, 136, 130, 135, 130, 124, 79, 72, 66, 83, 74, 69, 97, 86, 82, 89, 78, 74, 82, 71, 67, 87, 76, 74, 69, 58, 56, 37, 27, 26, 27, 17, 16, 59, 49, 48, 58, 48, 47, 41, 33, 30, 41, 33, 30, 45, 38, 32, 68, 61, 55, 84, 77, 71, 38, 31, 25, 73, 62, 58, 70, 59, 55, 89, 78, 74, 95, 84, 80, 74, 60, 57, 69, 55, 52, 80, 66, 63, 76, 62, 59, 58, 43, 40, 71, 56, 53, 96, 78, 76, 96, 78, 76, 76, 58, 56, 75, 57, 55, 83, 65, 63, 76, 61, 58, 71, 57, 56, 54, 40, 39, 48, 34, 33, 64, 50, 49, 82, 68, 67, 88, 74, 73, 89, 74, 71, 91, 76, 73, 66, 51, 48, 55, 40, 37, 42, 27, 24, 63, 48, 45, 99, 81, 77, 89, 71, 67, 68, 50, 46, 78, 60, 56, 84, 63, 58, 82, 58, 54, 78, 57, 52, 79, 58, 53, 80, 61, 57, 77, 58, 54, 68, 50, 48, 60, 42, 40, 50, 34, 34, 65, 51, 50, 79, 68, 66, 80, 69, 67, 66, 56, 55, 57, 47, 46, 59, 49, 50, 65, 56, 57, 74, 65, 66, 99, 90, 91, 114, 105, 108, 90, 80, 81, 43, 33, 34, 16, 6, 5, 28, 18, 19, 53, 41, 41, 50, 38, 38, 59, 48, 46, 61, 49, 49, 48, 34, 33, 25, 11, 10, 11, 0, 0, 13, 0, 0, 23, 7, 7, 25, 5, 6, 28, 6, 8, 34, 12, 14, 43, 19, 19, 50, 26, 26, 55, 29, 30, 54, 28, 29, 52, 26, 25, 53, 27, 26, 46, 22, 18, 40, 16, 12, 37, 17, 10, 41, 21, 14, 44, 25, 18, 45, 26, 19, 44, 25, 18, 49, 25, 23, 59, 33, 34, 74, 46, 45, 87, 57, 55, 97, 67, 65, 109, 80, 76, 121, 91, 89, 129, 101, 98, 121, 95, 96, 124, 98, 99, 125, 100, 103, 121, 97, 97, 113, 87, 86, 103, 75, 74, 94, 64, 62, 93, 58, 54, 99, 56, 47, 98, 50, 38, 93, 45, 33, 92, 46, 33, 96, 50, 37, 98, 52, 39, 95, 51, 38, 92, 48, 35, 98, 56, 44, 101, 59, 47, 101, 61, 51, 105, 65, 55, 109, 71, 60, 117, 79, 68, 126, 88, 77, 129, 96, 87, 130, 107, 101, 135, 118, 111, 149, 130, 124, 162, 142, 135, 175, 150, 145, 185, 158, 151, 193, 163, 155, 200, 166, 157, 201, 163, 154, 203, 163, 153, 207, 163, 152, 210, 164, 151, 211, 163, 151, 210, 162, 148, 210, 161, 147, 212, 160, 146, 214, 157, 140, 216, 160, 145, 211, 167, 154, 209, 175, 165, 208, 188, 181, 216, 205, 203, 231, 227, 228, 242, 242, 244, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 240, 245, 249, 239, 247, 250, 238, 247, 252, 239, 246, 252, 242, 247, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 238, 238, 246, 238, 238, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 240, 246, 234, 239, 245, 233, 238, 244, 232, 237, 243, 232, 237, 243, 233, 238, 244, 232, 239, 245, 233, 240, 246, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 228, 233, 239, 227, 232, 238, 227, 232, 238, 226, 231, 237, 226, 231, 237, 231, 235, 244, 224, 228, 237, 221, 226, 232, 222, 225, 230, 212, 213, 215, 180, 180, 180, 139, 138, 134, 113, 110, 105, 104, 96, 93, 99, 90, 85, 109, 95, 92, 115, 100, 97, 106, 88, 88, 97, 77, 79, 98, 76, 79, 99, 74, 78, 96, 70, 71, 97, 71, 70, 97, 69, 68, 93, 65, 64, 91, 63, 60, 97, 69, 66, 110, 80, 78, 119, 89, 87, 108, 78, 76, 107, 77, 75, 106, 75, 72, 104, 73, 70, 102, 71, 68, 101, 70, 67, 101, 70, 67, 101, 70, 67, 103, 73, 71, 100, 72, 69, 98, 72, 71, 103, 82, 81, 120, 100, 101, 134, 115, 117, 131, 115, 118, 121, 106, 111, 133, 118, 123, 133, 118, 123, 132, 115, 121, 128, 112, 115, 125, 106, 108, 123, 105, 105, 127, 107, 106, 129, 111, 109, 136, 122, 121, 136, 124, 124, 140, 126, 126, 142, 128, 128, 145, 131, 131, 147, 133, 133, 148, 134, 134, 149, 135, 135, 143, 127, 128, 143, 127, 128, 148, 132, 133, 151, 135, 136, 142, 126, 127, 126, 110, 111, 123, 104, 106, 128, 109, 111, 129, 113, 113, 127, 111, 111, 125, 109, 109, 123, 107, 107, 121, 105, 105, 122, 106, 106, 124, 106, 106, 125, 107, 107, 125, 105, 106, 135, 115, 116, 145, 125, 126, 147, 127, 128, 142, 122, 123, 138, 118, 119, 141, 119, 121, 144, 124, 125, 148, 128, 127, 144, 124, 123, 139, 119, 118, 135, 115, 114, 131, 111, 110, 126, 106, 105, 121, 101, 100, 117, 97, 96, 133, 113, 112, 128, 108, 107, 124, 104, 103, 122, 102, 101, 121, 101, 100, 121, 101, 100, 128, 108, 107, 137, 117, 116, 148, 130, 130, 145, 127, 127, 138, 118, 119, 129, 109, 110, 127, 107, 106, 129, 109, 108, 128, 108, 107, 124, 104, 103, 121, 100, 99, 117, 96, 95, 112, 91, 88, 108, 87, 84, 107, 86, 83, 108, 87, 84, 110, 89, 86, 113, 89, 87, 103, 79, 77, 101, 75, 74, 97, 73, 71, 97, 73, 71, 100, 76, 74, 101, 77, 75, 101, 77, 75, 99, 75, 73, 91, 70, 67, 84, 63, 60, 73, 52, 49, 63, 42, 39, 58, 37, 34, 57, 36, 33, 59, 40, 36, 62, 43, 39, 37, 18, 14, 46, 27, 23, 50, 31, 27, 41, 23, 19, 34, 16, 12, 36, 18, 14, 41, 26, 23, 45, 30, 27, 31, 17, 14, 49, 35, 32, 76, 62, 61, 94, 83, 81, 100, 89, 87, 91, 80, 78, 75, 64, 62, 63, 52, 50, 69, 56, 50, 60, 45, 40, 103, 89, 86, 129, 115, 112, 73, 62, 58, 35, 24, 20, 62, 53, 48, 90, 83, 77, 98, 90, 87, 120, 115, 111, 151, 146, 142, 169, 164, 161, 177, 172, 169, 190, 186, 183, 200, 196, 195, 194, 193, 191, 206, 207, 211, 209, 212, 217, 224, 227, 232, 225, 228, 233, 215, 220, 224, 225, 230, 234, 235, 240, 246, 224, 229, 235, 226, 233, 239, 223, 230, 236, 224, 231, 239, 228, 235, 243, 227, 236, 243, 223, 232, 239, 222, 231, 238, 225, 232, 240, 231, 236, 242, 232, 235, 242, 232, 235, 242, 233, 236, 243, 233, 236, 243, 233, 236, 243, 234, 237, 244, 234, 237, 244, 236, 239, 246, 235, 238, 245, 234, 237, 244, 233, 236, 243, 233, 236, 243, 234, 237, 244, 235, 238, 245, 235, 238, 245, 232, 237, 243, 233, 238, 244, 234, 239, 245, 235, 240, 246, 236, 241, 247, 235, 240, 246, 235, 240, 246, 234, 239, 245, 235, 240, 246, 233, 238, 244, 232, 237, 243, 233, 238, 244, 235, 240, 246, 236, 241, 247, 235, 240, 246, 234, 239, 245, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 229, 232, 239, 229, 232, 239, 228, 231, 238, 226, 229, 236, 225, 226, 231, 220, 221, 226, 216, 217, 221, 213, 214, 218, 204, 205, 209, 206, 207, 209, 205, 205, 207, 200, 200, 200, 198, 198, 198, 200, 200, 198, 200, 200, 200, 197, 197, 195, 194, 193, 191, 199, 198, 194, 203, 202, 198, 203, 202, 198, 199, 198, 194, 198, 197, 193, 200, 199, 195, 203, 202, 197, 199, 196, 191, 197, 194, 189, 196, 193, 188, 197, 194, 189, 201, 196, 190, 203, 198, 192, 203, 198, 192, 202, 197, 193, 193, 189, 186, 198, 194, 193, 201, 197, 196, 199, 195, 194, 198, 194, 193, 198, 194, 193, 195, 191, 190, 189, 185, 184, 183, 179, 178, 187, 183, 182, 189, 185, 184, 187, 183, 182, 188, 184, 183, 192, 188, 187, 191, 187, 186, 188, 184, 183, 189, 187, 188, 191, 189, 190, 189, 188, 186, 186, 185, 183, 187, 186, 184, 193, 192, 190, 197, 196, 194, 196, 195, 193, 190, 189, 185, 189, 188, 184, 185, 184, 180, 180, 179, 175, 182, 181, 177, 188, 187, 183, 189, 188, 183, 186, 185, 180, 183, 180, 175, 179, 174, 168, 174, 169, 163, 173, 168, 162, 173, 168, 162, 175, 170, 164, 184, 179, 173, 194, 189, 183, 196, 191, 185, 192, 187, 181, 189, 184, 178, 186, 181, 175, 185, 180, 174, 184, 179, 173, 181, 176, 170, 178, 173, 167, 173, 166, 160, 169, 160, 155, 169, 158, 154, 159, 148, 144, 149, 135, 132, 155, 141, 138, 168, 153, 148, 170, 152, 148, 153, 135, 131, 147, 129, 125, 150, 133, 126, 159, 142, 135, 163, 148, 141, 163, 148, 141, 148, 135, 127, 129, 116, 108, 145, 132, 124, 140, 127, 119, 136, 123, 115, 129, 116, 108, 120, 107, 99, 122, 109, 101, 129, 118, 112, 134, 123, 117, 115, 104, 98, 117, 106, 100, 115, 106, 101, 114, 105, 100, 101, 92, 87, 118, 109, 104, 138, 129, 124, 98, 89, 84, 88, 79, 74, 90, 81, 76, 94, 85, 80, 96, 87, 82, 102, 91, 87, 113, 102, 98, 110, 99, 95, 94, 83, 79, 107, 96, 92, 99, 88, 84, 96, 87, 82, 88, 79, 74, 92, 85, 79, 175, 168, 162, 79, 74, 68, 83, 76, 70, 98, 87, 83, 91, 77, 74, 95, 81, 78, 88, 74, 71, 62, 51, 49, 58, 47, 45, 58, 48, 47, 44, 34, 33, 60, 50, 49, 49, 39, 38, 33, 25, 22, 40, 32, 29, 61, 56, 50, 66, 61, 55, 58, 53, 47, 59, 52, 46, 74, 63, 59, 85, 71, 68, 97, 83, 80, 93, 79, 76, 81, 67, 64, 85, 71, 68, 93, 79, 76, 88, 74, 71, 90, 76, 73, 67, 53, 50, 78, 63, 60, 86, 71, 68, 69, 54, 51, 76, 61, 58, 85, 70, 67, 61, 46, 43, 55, 41, 40, 41, 30, 28, 61, 47, 46, 90, 76, 75, 90, 76, 75, 80, 66, 65, 77, 63, 60, 72, 58, 55, 74, 59, 56, 48, 33, 30, 62, 47, 44, 99, 84, 81, 103, 88, 83, 87, 72, 67, 81, 66, 61, 83, 65, 61, 91, 70, 65, 62, 41, 36, 40, 19, 14, 39, 18, 13, 44, 25, 21, 49, 30, 26, 60, 42, 40, 75, 57, 55, 77, 61, 61, 87, 73, 72, 94, 82, 82, 83, 71, 71, 53, 43, 44, 36, 26, 27, 55, 46, 47, 86, 77, 78, 130, 120, 121, 81, 71, 70, 36, 26, 27, 25, 13, 13, 26, 14, 14, 20, 9, 7, 14, 2, 2, 18, 4, 3, 14, 0, 0, 27, 13, 10, 51, 37, 36, 71, 56, 53, 73, 58, 55, 60, 45, 40, 45, 30, 27, 38, 23, 20, 23, 3, 4, 27, 7, 8, 31, 11, 12, 34, 12, 14, 35, 13, 15, 42, 18, 18, 50, 26, 26, 57, 33, 31, 57, 33, 31, 46, 25, 22, 34, 13, 10, 27, 6, 1, 31, 10, 5, 44, 25, 19, 62, 43, 37, 74, 55, 49, 101, 80, 79, 106, 82, 82, 110, 84, 83, 111, 83, 80, 105, 75, 73, 97, 67, 65, 91, 61, 59, 87, 59, 56, 92, 66, 67, 97, 71, 72, 102, 78, 78, 105, 81, 81, 103, 77, 76, 101, 73, 72, 99, 69, 67, 101, 66, 62, 97, 54, 45, 97, 50, 40, 93, 46, 36, 92, 45, 35, 92, 45, 35, 89, 45, 34, 87, 43, 32, 85, 41, 30, 88, 45, 36, 90, 47, 38, 92, 52, 42, 94, 54, 44, 97, 57, 47, 101, 61, 51, 107, 67, 57, 107, 74, 65, 110, 91, 84, 115, 102, 94, 133, 118, 111, 153, 136, 129, 163, 146, 139, 170, 151, 144, 181, 158, 150, 191, 167, 157, 192, 163, 155, 194, 164, 154, 198, 164, 154, 201, 165, 153, 204, 166, 153, 206, 167, 152, 210, 168, 154, 213, 167, 152, 214, 163, 146, 210, 163, 147, 206, 166, 154, 205, 177, 166, 204, 187, 180, 209, 201, 198, 223, 221, 222, 236, 240, 241, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 246, 250, 241, 246, 252, 241, 246, 252, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 238, 238, 246, 238, 238, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 240, 246, 234, 239, 245, 233, 238, 244, 232, 237, 243, 232, 237, 243, 233, 238, 244, 232, 239, 245, 233, 240, 246, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 228, 233, 239, 227, 232, 238, 227, 232, 238, 226, 231, 237, 226, 231, 237, 228, 232, 241, 222, 226, 235, 221, 226, 232, 222, 227, 233, 214, 218, 221, 188, 189, 191, 150, 150, 148, 124, 123, 119, 120, 115, 111, 130, 123, 117, 141, 130, 126, 130, 116, 113, 106, 88, 88, 100, 80, 82, 107, 84, 90, 105, 83, 86, 89, 65, 65, 89, 63, 62, 88, 62, 61, 91, 63, 62, 94, 66, 63, 98, 70, 67, 101, 71, 69, 102, 72, 70, 105, 75, 73, 103, 73, 71, 102, 71, 68, 100, 69, 66, 98, 67, 64, 97, 66, 63, 97, 66, 63, 96, 67, 63, 92, 64, 61, 103, 78, 74, 113, 89, 87, 118, 94, 94, 120, 98, 100, 125, 105, 106, 128, 109, 111, 128, 109, 111, 138, 122, 125, 132, 116, 119, 126, 110, 113, 126, 107, 109, 127, 109, 109, 129, 111, 111, 127, 109, 107, 125, 107, 107, 126, 112, 112, 127, 115, 115, 134, 120, 120, 137, 123, 123, 138, 124, 124, 136, 122, 122, 132, 118, 118, 130, 116, 116, 149, 133, 134, 138, 122, 123, 131, 115, 116, 131, 115, 116, 133, 117, 118, 133, 117, 118, 141, 122, 124, 150, 131, 133, 137, 121, 121, 134, 118, 118, 130, 114, 114, 127, 111, 111, 128, 112, 112, 132, 116, 116, 139, 121, 121, 143, 125, 125, 162, 142, 143, 155, 135, 136, 146, 126, 127, 141, 119, 121, 139, 117, 119, 142, 120, 122, 147, 122, 125, 149, 124, 127, 133, 109, 109, 139, 115, 115, 141, 117, 117, 131, 110, 109, 119, 95, 95, 110, 89, 88, 114, 90, 90, 118, 97, 96, 126, 105, 104, 128, 107, 106, 134, 113, 112, 140, 120, 119, 138, 118, 117, 132, 112, 111, 129, 109, 108, 132, 112, 111, 131, 113, 113, 133, 115, 115, 133, 113, 114, 129, 109, 110, 128, 108, 107, 128, 108, 107, 123, 103, 102, 116, 96, 95, 119, 98, 97, 126, 105, 104, 133, 112, 109, 135, 114, 111, 131, 110, 107, 123, 102, 99, 117, 96, 93, 114, 93, 90, 117, 91, 90, 117, 91, 90, 116, 92, 90, 114, 90, 88, 110, 86, 84, 107, 83, 81, 105, 81, 79, 105, 81, 79, 90, 69, 66, 91, 70, 67, 92, 71, 68, 91, 70, 67, 89, 68, 65, 84, 63, 60, 79, 60, 56, 76, 57, 53, 69, 50, 46, 60, 41, 37, 50, 31, 27, 45, 26, 22, 42, 24, 20, 41, 23, 19, 37, 19, 17, 32, 17, 14, 34, 19, 16, 31, 17, 14, 33, 19, 18, 42, 28, 27, 59, 45, 44, 74, 63, 61, 86, 75, 73, 93, 79, 78, 82, 68, 65, 65, 50, 47, 84, 70, 67, 107, 93, 90, 80, 69, 65, 54, 43, 39, 61, 52, 47, 74, 65, 60, 80, 70, 68, 84, 76, 73, 106, 98, 95, 144, 139, 135, 175, 170, 166, 183, 178, 174, 191, 186, 183, 204, 203, 199, 200, 201, 203, 207, 211, 214, 220, 221, 225, 219, 223, 226, 216, 220, 223, 223, 228, 232, 229, 234, 238, 224, 229, 235, 225, 230, 236, 220, 227, 233, 221, 228, 236, 226, 233, 241, 225, 234, 241, 221, 230, 237, 220, 229, 236, 224, 231, 239, 228, 233, 239, 230, 233, 240, 230, 233, 240, 230, 233, 240, 231, 234, 241, 231, 234, 241, 231, 234, 241, 232, 235, 242, 234, 237, 244, 233, 236, 243, 232, 235, 242, 231, 234, 241, 232, 235, 242, 232, 235, 242, 233, 236, 243, 234, 237, 244, 232, 237, 243, 233, 238, 244, 234, 239, 245, 235, 240, 246, 236, 241, 247, 235, 240, 246, 235, 240, 246, 234, 239, 245, 235, 240, 246, 233, 238, 244, 232, 237, 243, 233, 238, 244, 236, 241, 247, 237, 242, 248, 236, 241, 247, 234, 239, 245, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 227, 230, 237, 227, 230, 237, 226, 229, 236, 223, 226, 233, 221, 222, 227, 216, 217, 222, 212, 213, 217, 209, 210, 212, 201, 202, 204, 203, 205, 204, 202, 202, 202, 197, 197, 195, 195, 195, 193, 197, 197, 195, 197, 197, 195, 194, 195, 190, 193, 192, 188, 197, 196, 192, 202, 201, 197, 202, 201, 197, 200, 199, 195, 199, 198, 194, 201, 200, 195, 205, 204, 199, 200, 197, 192, 197, 194, 189, 195, 192, 187, 195, 192, 187, 199, 194, 188, 202, 197, 191, 201, 196, 190, 200, 195, 191, 193, 189, 186, 198, 194, 193, 200, 196, 195, 198, 194, 193, 197, 193, 192, 198, 194, 193, 195, 191, 190, 189, 185, 184, 185, 181, 180, 187, 183, 182, 188, 184, 183, 187, 183, 182, 188, 184, 183, 190, 186, 185, 189, 185, 184, 186, 182, 181, 188, 186, 187, 191, 189, 190, 191, 190, 188, 188, 187, 185, 189, 188, 186, 193, 192, 190, 195, 194, 192, 192, 191, 189, 190, 189, 185, 190, 189, 185, 185, 184, 180, 179, 178, 174, 179, 178, 174, 183, 182, 178, 184, 183, 178, 183, 180, 175, 181, 176, 170, 178, 173, 167, 175, 170, 164, 175, 170, 164, 175, 170, 164, 175, 170, 164, 180, 175, 169, 186, 181, 175, 191, 186, 180, 189, 184, 178, 186, 181, 175, 185, 180, 174, 184, 179, 173, 182, 177, 171, 177, 172, 166, 176, 169, 163, 174, 165, 160, 166, 157, 152, 163, 152, 148, 156, 145, 141, 148, 134, 131, 154, 140, 137, 164, 149, 144, 163, 145, 141, 156, 138, 134, 149, 131, 127, 150, 133, 126, 158, 141, 134, 159, 144, 137, 153, 138, 131, 139, 126, 118, 126, 113, 105, 132, 119, 111, 133, 120, 112, 139, 126, 118, 139, 126, 118, 130, 117, 109, 129, 116, 108, 131, 120, 114, 130, 119, 113, 125, 114, 108, 108, 97, 91, 102, 93, 88, 115, 106, 101, 106, 97, 92, 109, 100, 95, 125, 116, 111, 94, 85, 80, 98, 89, 84, 93, 84, 79, 90, 81, 76, 92, 83, 78, 101, 90, 86, 109, 98, 94, 104, 93, 89, 92, 81, 77, 99, 88, 84, 95, 84, 80, 106, 97, 92, 79, 70, 65, 134, 127, 121, 153, 146, 140, 88, 83, 77, 91, 84, 78, 93, 82, 78, 91, 77, 74, 94, 80, 77, 82, 68, 65, 58, 47, 45, 64, 53, 51, 76, 66, 65, 67, 57, 56, 65, 55, 54, 57, 47, 46, 42, 34, 31, 44, 36, 33, 59, 54, 48, 63, 58, 52, 59, 54, 48, 64, 57, 51, 75, 64, 60, 89, 75, 72, 100, 86, 83, 91, 77, 74, 79, 65, 62, 88, 74, 71, 97, 83, 80, 87, 73, 70, 67, 53, 50, 93, 79, 76, 93, 78, 75, 69, 54, 51, 70, 55, 52, 86, 71, 68, 80, 65, 62, 57, 43, 40, 54, 40, 39, 58, 47, 45, 82, 68, 67, 94, 80, 79, 85, 71, 70, 80, 66, 65, 82, 68, 65, 76, 62, 59, 72, 57, 54, 66, 51, 48, 89, 74, 71, 114, 99, 96, 103, 88, 83, 79, 64, 59, 71, 56, 51, 72, 54, 50, 54, 35, 31, 47, 26, 21, 48, 27, 24, 54, 35, 31, 56, 37, 33, 55, 37, 33, 68, 50, 48, 86, 71, 68, 83, 69, 68, 86, 72, 71, 66, 54, 54, 41, 29, 29, 51, 41, 42, 89, 79, 80, 107, 97, 98, 98, 88, 87, 42, 30, 30, 41, 27, 26, 36, 22, 22, 30, 16, 15, 23, 9, 8, 15, 1, 0, 12, 0, 0, 12, 0, 0, 10, 0, 0, 14, 0, 0, 24, 9, 6, 36, 21, 18, 43, 28, 23, 47, 32, 27, 53, 38, 33, 60, 45, 42, 49, 30, 32, 34, 15, 17, 21, 2, 4, 26, 8, 8, 43, 23, 25, 50, 30, 31, 41, 19, 21, 27, 6, 5, 33, 12, 11, 39, 20, 16, 53, 32, 29, 67, 48, 44, 80, 61, 57, 89, 72, 65, 95, 78, 71, 97, 79, 75, 75, 55, 54, 75, 54, 53, 74, 50, 50, 72, 46, 45, 72, 44, 41, 76, 46, 44, 82, 54, 51, 87, 59, 56, 94, 68, 67, 97, 71, 72, 101, 75, 76, 101, 75, 74, 98, 70, 69, 93, 63, 61, 88, 57, 54, 88, 53, 47, 81, 43, 34, 79, 39, 29, 79, 36, 27, 77, 37, 27, 79, 39, 29, 80, 42, 31, 80, 40, 30, 78, 40, 29, 89, 51, 40, 93, 55, 44, 96, 59, 50, 99, 63, 51, 102, 65, 56, 105, 69, 57, 110, 73, 64, 108, 78, 68, 112, 93, 86, 118, 105, 99, 136, 121, 116, 151, 136, 131, 159, 144, 139, 163, 148, 141, 175, 158, 151, 188, 169, 162, 188, 168, 161, 190, 167, 159, 195, 168, 159, 197, 169, 158, 202, 170, 159, 205, 171, 159, 208, 172, 160, 211, 172, 157, 215, 169, 153, 211, 169, 153, 207, 173, 161, 205, 181, 171, 204, 191, 185, 208, 205, 200, 223, 225, 224, 237, 242, 245, 239, 244, 248, 239, 244, 248, 243, 244, 249, 243, 244, 249, 243, 244, 249, 242, 245, 250, 242, 245, 252, 242, 245, 252, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 238, 238, 246, 238, 238, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 240, 246, 234, 239, 245, 233, 238, 244, 232, 237, 243, 232, 237, 243, 233, 238, 244, 232, 239, 245, 233, 240, 246, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 228, 233, 239, 227, 232, 238, 227, 232, 238, 226, 231, 237, 226, 231, 237, 224, 228, 237, 221, 225, 234, 221, 225, 234, 223, 228, 234, 219, 222, 227, 199, 200, 204, 166, 166, 166, 141, 140, 138, 123, 118, 114, 121, 114, 108, 116, 105, 99, 103, 89, 86, 96, 78, 78, 102, 82, 84, 96, 73, 79, 72, 49, 55, 85, 60, 63, 90, 66, 66, 94, 70, 68, 96, 70, 69, 95, 69, 68, 93, 67, 66, 95, 67, 66, 97, 69, 68, 104, 74, 72, 102, 72, 70, 99, 69, 67, 96, 66, 64, 95, 64, 62, 94, 63, 61, 95, 64, 61, 94, 65, 61, 99, 71, 68, 109, 83, 82, 117, 93, 91, 116, 92, 90, 116, 92, 92, 122, 101, 100, 132, 110, 112, 138, 118, 119, 132, 112, 113, 128, 108, 109, 123, 103, 104, 120, 102, 102, 121, 103, 103, 124, 106, 106, 126, 108, 108, 125, 109, 109, 128, 114, 114, 130, 118, 118, 137, 123, 123, 143, 129, 129, 146, 132, 132, 147, 133, 133, 147, 133, 133, 146, 132, 132, 148, 132, 133, 137, 121, 122, 130, 114, 115, 133, 117, 118, 138, 122, 123, 138, 122, 123, 139, 120, 122, 139, 120, 122, 125, 109, 109, 127, 111, 111, 133, 115, 115, 138, 120, 120, 144, 126, 126, 151, 133, 133, 158, 138, 139, 161, 141, 142, 158, 136, 138, 140, 118, 120, 120, 98, 100, 114, 89, 92, 119, 94, 97, 126, 101, 104, 127, 101, 104, 123, 97, 100, 118, 92, 93, 123, 97, 98, 126, 100, 101, 119, 95, 95, 109, 83, 84, 103, 79, 79, 108, 82, 83, 113, 89, 89, 100, 76, 76, 107, 83, 83, 122, 98, 98, 136, 115, 114, 143, 122, 121, 141, 120, 119, 140, 119, 118, 141, 121, 120, 139, 121, 121, 135, 117, 117, 123, 105, 105, 109, 91, 91, 105, 87, 87, 110, 92, 92, 116, 96, 95, 117, 97, 96, 122, 102, 101, 126, 106, 105, 130, 109, 108, 128, 107, 106, 123, 102, 99, 120, 99, 96, 121, 100, 97, 123, 102, 99, 125, 99, 98, 124, 98, 97, 121, 95, 94, 115, 89, 88, 110, 86, 84, 109, 85, 83, 112, 88, 86, 115, 91, 89, 113, 89, 87, 115, 91, 89, 114, 93, 90, 112, 91, 88, 106, 85, 82, 96, 75, 72, 86, 65, 62, 80, 59, 56, 89, 68, 65, 73, 52, 49, 60, 41, 37, 61, 42, 38, 60, 41, 37, 52, 34, 30, 49, 31, 27, 49, 34, 29, 47, 32, 29, 38, 23, 20, 29, 14, 11, 29, 15, 12, 41, 27, 26, 55, 41, 40, 65, 51, 50, 68, 54, 53, 91, 77, 76, 76, 62, 61, 70, 56, 55, 76, 62, 61, 72, 61, 59, 58, 47, 45, 54, 43, 41, 60, 50, 48, 69, 60, 55, 69, 62, 56, 75, 68, 62, 110, 103, 97, 158, 151, 145, 171, 166, 160, 173, 168, 164, 189, 186, 181, 191, 191, 191, 205, 206, 208, 213, 213, 215, 212, 213, 215, 218, 219, 221, 219, 223, 226, 220, 224, 227, 223, 228, 232, 221, 226, 230, 218, 223, 227, 218, 225, 231, 222, 229, 235, 223, 230, 236, 220, 227, 233, 218, 227, 234, 222, 229, 237, 225, 230, 236, 227, 230, 237, 227, 230, 237, 227, 230, 237, 228, 231, 238, 228, 231, 238, 228, 231, 238, 229, 232, 239, 231, 234, 241, 231, 234, 241, 230, 233, 240, 229, 232, 239, 230, 233, 240, 231, 234, 241, 232, 235, 242, 233, 236, 243, 231, 236, 242, 232, 237, 243, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 235, 240, 246, 233, 238, 244, 232, 237, 243, 233, 238, 244, 236, 241, 247, 237, 242, 248, 236, 241, 247, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 230, 235, 241, 229, 234, 240, 227, 232, 238, 227, 232, 238, 225, 228, 235, 226, 226, 234, 224, 225, 230, 221, 222, 227, 216, 217, 222, 211, 212, 217, 208, 207, 212, 205, 205, 207, 199, 199, 201, 201, 201, 201, 200, 198, 199, 194, 193, 191, 192, 191, 189, 195, 194, 190, 195, 194, 190, 191, 190, 186, 190, 189, 185, 195, 194, 190, 202, 198, 195, 203, 199, 196, 201, 197, 194, 201, 197, 194, 205, 202, 197, 208, 205, 200, 202, 197, 193, 197, 192, 188, 193, 188, 184, 193, 188, 184, 197, 192, 186, 199, 194, 188, 198, 193, 187, 196, 191, 187, 192, 188, 185, 197, 193, 190, 199, 195, 192, 197, 193, 190, 196, 192, 189, 197, 193, 190, 195, 191, 188, 190, 186, 183, 189, 185, 182, 188, 184, 181, 186, 182, 179, 187, 183, 180, 188, 184, 181, 188, 184, 181, 187, 183, 180, 184, 180, 177, 189, 185, 184, 193, 189, 188, 195, 191, 190, 193, 189, 188, 193, 189, 188, 195, 191, 190, 193, 189, 186, 189, 185, 182, 191, 187, 184, 191, 187, 184, 187, 183, 180, 180, 176, 173, 178, 175, 170, 180, 177, 172, 180, 177, 172, 177, 174, 169, 176, 171, 165, 178, 171, 165, 179, 172, 166, 179, 172, 166, 179, 172, 166, 178, 171, 165, 177, 170, 164, 177, 170, 164, 186, 179, 173, 185, 178, 172, 185, 178, 172, 185, 178, 172, 185, 178, 172, 181, 174, 168, 175, 168, 162, 170, 163, 157, 171, 162, 157, 158, 149, 144, 153, 142, 138, 150, 139, 135, 147, 133, 130, 153, 139, 136, 160, 145, 140, 154, 139, 134, 158, 140, 136, 151, 133, 129, 148, 133, 126, 155, 140, 133, 155, 140, 133, 142, 127, 120, 129, 116, 108, 126, 113, 105, 112, 99, 91, 117, 104, 96, 135, 122, 114, 145, 132, 124, 135, 125, 116, 131, 121, 112, 130, 119, 113, 122, 111, 105, 131, 122, 115, 95, 86, 79, 86, 77, 72, 117, 108, 103, 116, 107, 102, 110, 101, 96, 122, 113, 108, 99, 90, 85, 103, 94, 89, 90, 81, 76, 82, 73, 68, 90, 81, 76, 105, 94, 90, 109, 98, 94, 103, 92, 88, 98, 87, 83, 95, 84, 80, 95, 84, 80, 114, 105, 100, 85, 76, 71, 168, 161, 155, 116, 109, 103, 84, 79, 73, 86, 79, 73, 82, 73, 68, 81, 70, 66, 83, 72, 68, 68, 57, 53, 51, 40, 38, 70, 59, 57, 92, 82, 81, 86, 76, 75, 71, 61, 60, 68, 58, 57, 54, 46, 43, 48, 40, 37, 57, 50, 44, 61, 54, 48, 62, 55, 49, 71, 62, 57, 84, 73, 69, 86, 72, 69, 87, 73, 70, 82, 68, 65, 82, 68, 65, 97, 83, 80, 96, 82, 79, 76, 62, 59, 63, 49, 46, 107, 93, 90, 88, 74, 71, 59, 45, 42, 87, 73, 70, 96, 82, 79, 70, 56, 53, 64, 50, 47, 69, 55, 54, 80, 66, 65, 94, 80, 79, 95, 81, 80, 87, 73, 72, 88, 74, 73, 86, 72, 69, 73, 59, 56, 63, 48, 45, 77, 62, 59, 103, 88, 85, 110, 95, 92, 89, 71, 67, 67, 49, 45, 64, 46, 42, 66, 48, 44, 71, 52, 48, 68, 49, 45, 68, 48, 47, 67, 49, 47, 60, 42, 40, 57, 39, 37, 71, 53, 53, 90, 74, 74, 113, 99, 98, 74, 60, 59, 47, 36, 34, 74, 63, 61, 118, 106, 106, 121, 111, 110, 75, 65, 64, 27, 15, 15, 35, 21, 20, 48, 33, 30, 50, 34, 34, 35, 20, 17, 20, 5, 2, 18, 3, 0, 20, 5, 2, 19, 4, 1, 18, 3, 0, 22, 7, 4, 30, 16, 13, 38, 24, 21, 36, 22, 19, 25, 11, 8, 18, 4, 1, 17, 3, 2, 29, 14, 17, 35, 20, 23, 37, 21, 24, 28, 12, 13, 21, 2, 6, 26, 7, 9, 47, 27, 29, 65, 45, 46, 87, 67, 68, 89, 71, 69, 93, 73, 72, 91, 73, 71, 83, 65, 63, 70, 52, 48, 55, 37, 33, 46, 28, 24, 59, 39, 38, 59, 38, 37, 59, 35, 35, 59, 33, 32, 63, 35, 32, 72, 44, 40, 84, 56, 52, 92, 64, 61, 81, 55, 54, 86, 60, 59, 95, 69, 68, 105, 77, 76, 110, 80, 78, 113, 82, 79, 114, 81, 76, 112, 79, 72, 115, 82, 73, 111, 81, 71, 111, 79, 68, 110, 80, 69, 113, 83, 72, 116, 88, 76, 118, 88, 77, 117, 89, 77, 117, 89, 77, 122, 94, 82, 128, 100, 89, 133, 105, 93, 134, 107, 96, 136, 110, 97, 139, 112, 101, 139, 115, 105, 118, 97, 92, 129, 110, 106, 146, 128, 124, 159, 141, 139, 160, 145, 142, 164, 149, 146, 179, 164, 161, 195, 180, 175, 187, 169, 165, 189, 170, 164, 193, 170, 164, 196, 171, 164, 201, 172, 166, 204, 174, 166, 207, 174, 167, 209, 175, 165, 216, 177, 160, 213, 176, 158, 209, 180, 166, 206, 188, 176, 205, 196, 189, 209, 208, 204, 223, 227, 228, 239, 244, 247, 239, 244, 248, 239, 244, 248, 243, 244, 249, 243, 244, 249, 243, 244, 249, 244, 245, 250, 244, 245, 250, 242, 245, 250, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 238, 238, 246, 238, 238, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 240, 246, 234, 239, 245, 233, 238, 244, 232, 237, 243, 232, 237, 243, 233, 238, 244, 232, 239, 245, 233, 240, 246, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 228, 233, 239, 227, 232, 238, 227, 232, 238, 226, 231, 237, 226, 231, 237, 223, 227, 236, 222, 226, 235, 221, 225, 234, 222, 226, 235, 221, 224, 231, 206, 209, 214, 178, 179, 181, 153, 153, 151, 135, 132, 127, 119, 115, 106, 110, 101, 94, 106, 93, 87, 100, 85, 82, 101, 82, 84, 91, 68, 74, 67, 44, 50, 90, 68, 70, 100, 76, 76, 105, 81, 81, 101, 77, 75, 92, 66, 65, 90, 64, 63, 100, 72, 71, 109, 81, 80, 103, 73, 73, 101, 71, 69, 98, 68, 66, 95, 65, 63, 94, 63, 61, 94, 63, 61, 96, 65, 63, 96, 66, 64, 103, 77, 76, 109, 85, 83, 116, 92, 90, 121, 97, 95, 128, 102, 101, 133, 107, 106, 129, 105, 103, 123, 99, 97, 109, 85, 83, 114, 90, 88, 115, 94, 93, 113, 93, 92, 110, 92, 92, 113, 95, 95, 120, 104, 104, 128, 114, 114, 135, 123, 123, 134, 122, 122, 135, 121, 121, 134, 120, 120, 134, 120, 120, 134, 120, 120, 135, 121, 121, 136, 122, 122, 140, 124, 125, 134, 118, 119, 128, 112, 113, 126, 110, 111, 126, 110, 111, 123, 107, 108, 121, 102, 104, 118, 99, 101, 119, 103, 103, 126, 110, 110, 139, 121, 121, 148, 130, 130, 152, 134, 134, 152, 132, 133, 147, 127, 128, 144, 122, 124, 121, 99, 101, 111, 86, 89, 100, 75, 78, 100, 74, 77, 107, 81, 84, 111, 85, 88, 108, 79, 83, 101, 72, 76, 114, 85, 87, 109, 80, 82, 103, 77, 78, 104, 78, 79, 109, 83, 84, 112, 86, 87, 111, 85, 86, 108, 82, 83, 117, 93, 93, 118, 94, 94, 122, 98, 98, 128, 104, 104, 127, 106, 105, 124, 103, 102, 126, 105, 104, 130, 110, 109, 145, 127, 127, 139, 121, 121, 125, 107, 107, 107, 89, 89, 99, 81, 81, 104, 86, 86, 112, 92, 91, 115, 95, 94, 122, 102, 101, 119, 99, 98, 118, 97, 96, 116, 95, 94, 118, 97, 94, 120, 99, 96, 122, 101, 98, 123, 102, 99, 122, 96, 95, 114, 88, 87, 103, 77, 76, 99, 73, 72, 101, 77, 75, 107, 83, 81, 114, 90, 88, 117, 93, 91, 112, 88, 86, 109, 85, 83, 102, 81, 78, 95, 74, 71, 89, 68, 65, 83, 62, 59, 79, 58, 55, 77, 56, 53, 85, 64, 61, 76, 55, 52, 73, 54, 50, 77, 58, 54, 68, 49, 45, 53, 34, 30, 53, 35, 31, 66, 48, 44, 61, 43, 41, 56, 41, 38, 52, 37, 34, 51, 36, 33, 51, 37, 36, 51, 37, 36, 49, 35, 34, 47, 33, 32, 70, 56, 55, 84, 70, 69, 82, 68, 67, 76, 62, 61, 74, 63, 61, 57, 46, 44, 42, 31, 29, 51, 40, 38, 63, 54, 49, 81, 72, 67, 73, 66, 60, 80, 73, 67, 129, 122, 116, 161, 154, 148, 160, 155, 149, 161, 156, 152, 178, 177, 175, 196, 196, 194, 201, 201, 201, 205, 205, 205, 215, 215, 215, 214, 215, 217, 210, 211, 213, 218, 222, 225, 217, 221, 224, 214, 219, 223, 216, 221, 225, 219, 226, 232, 220, 227, 233, 218, 225, 231, 217, 226, 233, 221, 228, 236, 223, 228, 234, 224, 227, 234, 224, 227, 234, 225, 228, 235, 225, 228, 235, 226, 229, 236, 226, 229, 236, 226, 229, 236, 229, 232, 239, 229, 232, 239, 228, 231, 238, 228, 231, 238, 229, 232, 239, 230, 233, 240, 232, 235, 242, 233, 236, 243, 230, 235, 241, 231, 236, 242, 232, 237, 243, 233, 238, 244, 234, 239, 245, 234, 239, 245, 233, 238, 244, 232, 237, 243, 234, 239, 245, 233, 238, 244, 232, 237, 243, 233, 238, 244, 235, 240, 246, 236, 241, 247, 235, 240, 246, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 231, 236, 242, 232, 237, 243, 232, 237, 243, 231, 236, 242, 229, 234, 240, 226, 231, 237, 223, 228, 234, 222, 227, 233, 226, 226, 234, 224, 224, 232, 221, 222, 227, 217, 218, 223, 212, 213, 218, 207, 208, 212, 204, 204, 206, 202, 202, 204, 197, 197, 197, 199, 199, 197, 198, 197, 195, 193, 192, 188, 191, 190, 186, 193, 192, 187, 193, 192, 187, 190, 189, 184, 187, 186, 182, 193, 192, 188, 200, 196, 193, 202, 198, 195, 201, 197, 194, 201, 197, 194, 205, 202, 197, 208, 205, 200, 202, 197, 193, 196, 191, 187, 190, 185, 181, 189, 184, 180, 194, 189, 183, 198, 193, 187, 196, 191, 185, 193, 188, 182, 193, 188, 185, 196, 192, 189, 197, 193, 190, 195, 191, 188, 194, 190, 187, 197, 193, 190, 195, 191, 188, 191, 187, 184, 193, 189, 186, 187, 183, 180, 184, 180, 177, 186, 182, 179, 188, 184, 181, 187, 183, 180, 184, 180, 177, 183, 179, 176, 187, 183, 182, 192, 188, 187, 196, 192, 191, 195, 191, 190, 194, 190, 189, 194, 190, 189, 190, 186, 183, 184, 180, 177, 184, 180, 177, 187, 183, 180, 185, 181, 178, 179, 175, 172, 175, 172, 167, 177, 174, 169, 178, 175, 170, 176, 173, 168, 174, 167, 161, 178, 171, 165, 180, 173, 167, 180, 173, 167, 180, 173, 167, 179, 172, 166, 173, 166, 160, 166, 159, 153, 181, 174, 168, 181, 174, 168, 182, 175, 169, 184, 177, 171, 184, 177, 171, 180, 173, 167, 172, 165, 159, 167, 160, 154, 164, 155, 150, 147, 138, 133, 141, 130, 126, 144, 133, 129, 148, 134, 131, 154, 140, 137, 159, 144, 139, 152, 137, 132, 158, 140, 136, 152, 134, 130, 146, 131, 124, 152, 137, 130, 153, 138, 131, 137, 122, 115, 125, 112, 104, 132, 119, 111, 98, 85, 77, 103, 90, 82, 126, 113, 105, 140, 127, 119, 128, 118, 109, 126, 116, 107, 128, 117, 111, 116, 105, 99, 127, 118, 111, 89, 80, 73, 79, 70, 65, 115, 106, 101, 122, 113, 108, 122, 113, 108, 133, 124, 119, 107, 98, 93, 98, 89, 84, 84, 75, 70, 75, 66, 61, 92, 83, 78, 116, 105, 101, 117, 106, 102, 107, 96, 92, 106, 95, 91, 99, 88, 84, 103, 92, 88, 111, 102, 97, 121, 112, 107, 159, 152, 146, 89, 82, 76, 67, 62, 56, 68, 61, 55, 73, 64, 59, 68, 57, 53, 67, 56, 52, 56, 45, 41, 49, 38, 36, 76, 65, 63, 95, 85, 84, 80, 70, 69, 72, 62, 61, 76, 66, 65, 64, 56, 53, 51, 43, 40, 52, 45, 39, 56, 49, 43, 64, 57, 51, 78, 69, 64, 97, 86, 82, 75, 61, 58, 66, 52, 49, 77, 63, 60, 92, 78, 75, 100, 86, 83, 90, 76, 73, 66, 52, 49, 87, 73, 70, 95, 81, 78, 69, 55, 52, 71, 57, 54, 111, 97, 94, 98, 84, 81, 69, 55, 52, 87, 73, 70, 95, 81, 80, 91, 77, 76, 90, 76, 75, 94, 80, 79, 98, 84, 83, 97, 83, 82, 84, 70, 67, 68, 54, 51, 65, 50, 47, 88, 73, 70, 105, 90, 87, 96, 81, 78, 75, 57, 53, 67, 49, 45, 72, 54, 50, 76, 58, 54, 71, 53, 51, 70, 52, 50, 72, 54, 54, 72, 57, 54, 72, 54, 54, 70, 54, 54, 83, 67, 67, 99, 83, 83, 77, 63, 62, 85, 71, 70, 109, 98, 96, 128, 117, 115, 105, 94, 92, 56, 45, 43, 31, 19, 19, 36, 25, 23, 72, 57, 54, 66, 48, 46, 50, 32, 30, 35, 17, 15, 27, 9, 7, 25, 7, 5, 22, 7, 4, 20, 5, 2, 13, 0, 0, 15, 1, 0, 22, 8, 7, 26, 15, 13, 24, 13, 11, 15, 4, 2, 10, 0, 0, 10, 0, 0, 7, 0, 0, 7, 0, 0, 8, 0, 0, 27, 15, 17, 57, 42, 47, 83, 67, 70, 96, 80, 83, 102, 83, 85, 79, 60, 62, 72, 54, 54, 60, 42, 42, 47, 29, 27, 37, 19, 19, 31, 13, 11, 27, 12, 9, 26, 11, 8, 34, 16, 14, 42, 22, 21, 53, 32, 29, 65, 41, 37, 78, 50, 46, 88, 60, 56, 97, 69, 65, 103, 75, 71, 120, 92, 89, 120, 95, 91, 125, 97, 96, 130, 100, 98, 131, 100, 97, 130, 97, 92, 125, 90, 84, 121, 87, 78, 124, 91, 84, 117, 84, 75, 106, 73, 64, 95, 62, 53, 85, 55, 45, 78, 48, 38, 72, 42, 32, 68, 38, 27, 66, 36, 26, 72, 42, 31, 80, 50, 40, 86, 56, 45, 88, 60, 48, 89, 61, 49, 91, 63, 51, 92, 64, 53, 97, 69, 65, 108, 83, 79, 126, 100, 99, 137, 113, 113, 136, 116, 115, 141, 123, 123, 158, 142, 142, 178, 162, 162, 184, 169, 166, 187, 169, 167, 191, 170, 167, 195, 171, 167, 200, 172, 169, 203, 174, 170, 206, 175, 172, 209, 176, 167, 218, 181, 165, 215, 179, 163, 209, 183, 170, 206, 189, 179, 205, 198, 190, 209, 210, 205, 222, 228, 228, 237, 245, 247, 239, 244, 248, 240, 243, 248, 243, 244, 249, 243, 244, 249, 244, 243, 249, 245, 244, 250, 244, 245, 250, 244, 245, 250, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 238, 238, 246, 238, 238, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 240, 246, 234, 239, 245, 233, 238, 244, 232, 237, 243, 232, 237, 243, 233, 238, 244, 232, 239, 245, 233, 240, 246, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 228, 233, 239, 227, 232, 238, 227, 232, 238, 226, 231, 237, 226, 231, 237, 224, 228, 237, 224, 228, 237, 222, 226, 237, 220, 224, 233, 220, 224, 233, 211, 214, 221, 185, 189, 192, 161, 163, 160, 131, 130, 125, 124, 121, 112, 129, 122, 114, 126, 115, 109, 100, 85, 82, 78, 60, 60, 83, 60, 66, 94, 71, 77, 103, 81, 84, 99, 78, 77, 93, 72, 71, 87, 66, 65, 87, 63, 63, 92, 68, 68, 100, 74, 75, 107, 81, 80, 98, 70, 69, 96, 68, 67, 93, 63, 63, 90, 60, 60, 91, 59, 60, 93, 62, 60, 96, 65, 63, 97, 67, 65, 101, 75, 76, 114, 90, 90, 128, 104, 102, 136, 110, 109, 137, 109, 106, 127, 99, 95, 109, 80, 76, 92, 63, 57, 93, 65, 61, 93, 68, 63, 97, 73, 69, 101, 80, 77, 107, 87, 86, 113, 95, 95, 119, 103, 104, 123, 109, 109, 126, 114, 114, 127, 115, 115, 131, 117, 117, 133, 119, 119, 134, 120, 120, 133, 119, 119, 132, 118, 118, 131, 117, 117, 121, 105, 106, 118, 102, 103, 112, 96, 97, 104, 88, 89, 103, 87, 88, 112, 96, 97, 128, 109, 111, 138, 119, 121, 144, 126, 126, 146, 128, 128, 150, 130, 131, 150, 130, 131, 143, 123, 124, 132, 110, 112, 120, 98, 100, 114, 89, 92, 111, 86, 89, 109, 83, 86, 108, 82, 85, 111, 82, 86, 113, 84, 88, 113, 84, 88, 111, 80, 85, 106, 77, 81, 109, 80, 82, 103, 74, 76, 99, 70, 72, 104, 75, 77, 112, 86, 87, 120, 94, 95, 121, 95, 96, 119, 93, 94, 138, 114, 114, 134, 110, 110, 129, 108, 107, 127, 106, 105, 122, 101, 100, 117, 96, 95, 118, 98, 97, 124, 104, 103, 122, 104, 104, 131, 112, 114, 136, 118, 118, 134, 116, 116, 129, 111, 111, 127, 109, 109, 125, 105, 106, 121, 101, 102, 122, 102, 101, 120, 100, 99, 122, 102, 101, 131, 111, 110, 140, 119, 118, 138, 117, 116, 127, 106, 103, 115, 94, 91, 118, 92, 91, 107, 81, 80, 96, 70, 69, 97, 71, 70, 106, 80, 79, 112, 86, 85, 109, 85, 83, 103, 79, 77, 78, 54, 52, 77, 53, 51, 75, 51, 49, 74, 50, 48, 75, 54, 51, 79, 58, 55, 84, 63, 60, 87, 66, 63, 84, 63, 58, 75, 54, 49, 75, 54, 49, 80, 59, 54, 71, 52, 48, 52, 33, 29, 47, 28, 24, 55, 37, 33, 65, 47, 45, 65, 47, 45, 63, 48, 45, 60, 45, 42, 56, 42, 39, 57, 43, 40, 61, 47, 44, 65, 51, 50, 52, 38, 37, 86, 72, 72, 93, 81, 81, 88, 76, 76, 91, 79, 79, 73, 61, 61, 54, 43, 41, 61, 50, 48, 63, 53, 51, 82, 72, 70, 75, 66, 61, 73, 64, 59, 107, 100, 92, 139, 132, 124, 144, 137, 129, 142, 137, 131, 159, 155, 152, 173, 172, 168, 187, 186, 184, 197, 197, 195, 207, 207, 205, 204, 206, 205, 202, 204, 203, 207, 211, 212, 211, 215, 216, 208, 213, 216, 211, 216, 219, 216, 221, 225, 216, 224, 227, 214, 222, 225, 215, 222, 228, 218, 225, 231, 220, 225, 231, 221, 224, 231, 221, 224, 231, 222, 225, 232, 222, 225, 232, 223, 226, 233, 223, 226, 233, 223, 226, 233, 227, 230, 237, 227, 230, 237, 227, 230, 237, 227, 230, 237, 228, 231, 238, 229, 232, 239, 231, 234, 241, 232, 235, 242, 228, 232, 241, 229, 233, 242, 230, 234, 243, 231, 235, 244, 232, 236, 245, 231, 235, 244, 231, 235, 244, 230, 234, 243, 233, 237, 246, 231, 235, 244, 230, 234, 243, 231, 235, 244, 234, 238, 247, 235, 239, 248, 234, 238, 247, 232, 236, 245, 234, 238, 247, 234, 238, 247, 234, 238, 247, 234, 238, 247, 234, 238, 247, 234, 238, 247, 234, 238, 247, 234, 238, 247, 234, 238, 247, 234, 238, 247, 234, 238, 247, 234, 238, 247, 234, 238, 247, 234, 238, 247, 234, 238, 247, 234, 238, 247, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 228, 233, 239, 224, 229, 235, 219, 224, 230, 217, 222, 228, 223, 223, 231, 221, 221, 229, 218, 217, 223, 214, 213, 219, 209, 208, 213, 205, 204, 209, 203, 203, 205, 201, 201, 203, 199, 197, 198, 201, 200, 198, 198, 197, 195, 193, 192, 188, 191, 190, 186, 194, 193, 188, 195, 192, 187, 192, 189, 184, 187, 183, 180, 193, 189, 188, 198, 194, 191, 200, 196, 193, 198, 194, 191, 199, 195, 192, 203, 198, 195, 207, 202, 199, 202, 197, 193, 194, 189, 185, 188, 180, 177, 188, 180, 177, 195, 187, 184, 199, 191, 188, 198, 191, 185, 192, 187, 181, 192, 187, 184, 196, 191, 188, 196, 191, 188, 194, 189, 186, 194, 189, 186, 197, 192, 189, 196, 191, 188, 193, 188, 185, 196, 191, 188, 186, 181, 178, 181, 176, 173, 185, 180, 177, 189, 184, 181, 186, 181, 178, 184, 179, 176, 185, 180, 177, 185, 181, 180, 191, 187, 186, 195, 191, 190, 195, 191, 190, 194, 190, 187, 194, 190, 187, 189, 185, 182, 182, 178, 175, 177, 173, 170, 182, 178, 175, 183, 180, 175, 178, 175, 170, 175, 172, 167, 177, 174, 169, 179, 176, 171, 178, 175, 170, 174, 167, 161, 178, 171, 165, 180, 173, 167, 179, 172, 166, 180, 173, 167, 181, 174, 168, 173, 166, 160, 162, 155, 149, 178, 171, 165, 178, 171, 165, 179, 172, 166, 181, 174, 168, 181, 174, 168, 177, 170, 164, 171, 164, 158, 165, 158, 152, 156, 149, 143, 136, 129, 123, 132, 123, 118, 142, 131, 127, 149, 135, 132, 155, 141, 138, 160, 145, 140, 155, 140, 135, 153, 138, 133, 151, 136, 131, 143, 128, 121, 145, 130, 123, 150, 137, 129, 138, 125, 117, 129, 116, 108, 138, 125, 117, 99, 89, 80, 97, 87, 78, 117, 107, 98, 128, 118, 109, 116, 106, 97, 119, 109, 100, 129, 118, 112, 119, 108, 102, 121, 112, 105, 93, 84, 77, 83, 74, 69, 108, 99, 94, 115, 108, 102, 125, 118, 112, 136, 129, 123, 99, 92, 86, 94, 85, 80, 86, 77, 72, 80, 71, 66, 97, 88, 83, 125, 114, 110, 121, 110, 106, 105, 94, 90, 105, 94, 90, 105, 94, 90, 110, 99, 95, 107, 98, 93, 167, 158, 153, 123, 116, 110, 85, 78, 72, 59, 54, 48, 62, 55, 49, 74, 65, 60, 58, 49, 44, 54, 45, 40, 54, 45, 40, 60, 50, 48, 84, 74, 72, 87, 77, 76, 58, 48, 47, 67, 57, 56, 78, 68, 67, 70, 60, 58, 53, 43, 41, 51, 42, 37, 58, 49, 44, 70, 61, 56, 86, 77, 72, 103, 92, 88, 73, 59, 56, 69, 55, 52, 92, 78, 75, 101, 87, 84, 93, 79, 76, 84, 70, 67, 77, 63, 60, 97, 86, 82, 81, 70, 66, 72, 61, 57, 92, 81, 77, 110, 99, 95, 92, 81, 77, 84, 73, 69, 108, 97, 93, 108, 94, 93, 96, 82, 81, 90, 76, 75, 99, 85, 84, 103, 87, 87, 90, 74, 74, 77, 62, 59, 77, 62, 59, 85, 67, 65, 107, 89, 87, 113, 95, 93, 96, 78, 76, 83, 65, 61, 83, 65, 61, 85, 67, 63, 84, 66, 64, 59, 43, 43, 70, 54, 54, 82, 66, 67, 84, 70, 69, 79, 63, 64, 77, 63, 62, 88, 74, 73, 103, 89, 88, 100, 86, 85, 124, 110, 109, 123, 109, 108, 79, 65, 64, 34, 20, 19, 28, 14, 11, 54, 40, 39, 78, 64, 61, 64, 46, 44, 43, 24, 20, 27, 8, 4, 30, 11, 7, 32, 14, 12, 26, 8, 6, 21, 5, 5, 24, 10, 9, 28, 14, 13, 39, 28, 26, 60, 50, 49, 79, 69, 68, 78, 70, 68, 61, 53, 51, 44, 36, 34, 36, 27, 28, 53, 47, 49, 53, 47, 51, 62, 53, 58, 73, 64, 67, 84, 73, 79, 81, 69, 73, 68, 53, 58, 55, 39, 42, 46, 30, 33, 39, 23, 24, 30, 14, 15, 24, 8, 8, 26, 10, 11, 35, 19, 19, 47, 31, 31, 55, 40, 37, 93, 75, 73, 100, 80, 79, 108, 87, 84, 115, 91, 87, 120, 92, 88, 119, 92, 85, 120, 91, 85, 120, 92, 88, 117, 89, 85, 115, 87, 83, 115, 85, 83, 114, 85, 81, 112, 81, 76, 107, 74, 67, 99, 62, 54, 92, 54, 45, 69, 26, 20, 65, 22, 15, 60, 17, 10, 59, 16, 9, 61, 18, 11, 64, 21, 14, 65, 22, 15, 66, 23, 14, 70, 27, 20, 76, 33, 24, 84, 41, 34, 91, 48, 39, 95, 52, 43, 97, 54, 45, 100, 57, 48, 99, 59, 51, 92, 52, 50, 103, 65, 64, 117, 83, 82, 126, 95, 93, 128, 100, 99, 134, 110, 110, 154, 133, 132, 176, 156, 155, 185, 165, 166, 186, 166, 165, 189, 168, 167, 194, 170, 168, 199, 171, 168, 203, 174, 170, 206, 175, 172, 210, 175, 169, 217, 179, 166, 214, 178, 162, 208, 182, 169, 205, 188, 178, 204, 197, 191, 207, 207, 205, 221, 227, 227, 236, 244, 246, 239, 244, 248, 240, 243, 248, 243, 244, 249, 244, 243, 249, 244, 243, 249, 245, 244, 250, 245, 244, 250, 244, 245, 250, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 238, 238, 246, 238, 238, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 240, 246, 234, 239, 245, 233, 238, 244, 232, 237, 243, 232, 237, 243, 233, 238, 244, 232, 239, 245, 233, 240, 246, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 228, 233, 239, 227, 232, 238, 227, 232, 238, 226, 231, 237, 226, 231, 237, 225, 229, 238, 226, 230, 239, 223, 227, 238, 219, 223, 234, 220, 224, 235, 216, 221, 227, 194, 198, 201, 170, 172, 169, 124, 125, 119, 104, 101, 92, 104, 97, 87, 112, 102, 93, 96, 81, 76, 79, 61, 61, 89, 66, 72, 107, 84, 90, 108, 88, 90, 91, 71, 72, 75, 54, 53, 74, 53, 52, 89, 65, 65, 100, 76, 76, 99, 73, 74, 92, 66, 67, 92, 64, 63, 90, 62, 61, 88, 58, 58, 86, 56, 56, 88, 56, 57, 92, 60, 61, 96, 65, 63, 99, 69, 69, 119, 94, 97, 125, 103, 105, 128, 104, 104, 117, 92, 88, 102, 74, 70, 95, 64, 59, 90, 60, 52, 88, 58, 50, 90, 60, 52, 86, 57, 51, 85, 60, 55, 98, 74, 70, 114, 94, 93, 122, 106, 107, 121, 106, 109, 114, 102, 104, 124, 112, 112, 128, 116, 116, 136, 122, 122, 140, 126, 126, 139, 125, 125, 133, 119, 119, 125, 111, 111, 120, 106, 106, 97, 81, 82, 108, 92, 93, 117, 101, 102, 120, 104, 105, 126, 110, 111, 139, 123, 124, 156, 137, 139, 164, 145, 147, 154, 136, 136, 150, 132, 132, 144, 124, 125, 135, 115, 116, 127, 105, 107, 119, 97, 99, 116, 91, 94, 113, 88, 91, 114, 88, 91, 114, 88, 91, 115, 86, 90, 111, 82, 86, 108, 77, 82, 107, 76, 81, 108, 77, 82, 111, 80, 85, 107, 78, 80, 110, 81, 83, 113, 84, 86, 115, 86, 88, 115, 89, 90, 121, 95, 96, 130, 104, 105, 136, 112, 112, 130, 106, 106, 126, 105, 104, 126, 105, 104, 127, 106, 105, 123, 102, 101, 117, 97, 96, 117, 97, 96, 122, 102, 101, 115, 96, 98, 127, 108, 110, 139, 121, 121, 142, 124, 124, 143, 125, 125, 147, 129, 129, 150, 130, 131, 149, 129, 130, 136, 116, 115, 129, 109, 108, 124, 104, 103, 126, 106, 105, 133, 112, 111, 134, 113, 112, 127, 106, 103, 119, 98, 95, 117, 91, 90, 111, 85, 84, 108, 82, 81, 113, 87, 86, 120, 94, 93, 117, 91, 90, 103, 79, 77, 89, 65, 63, 77, 53, 51, 80, 56, 54, 85, 61, 59, 91, 67, 65, 93, 72, 69, 96, 75, 72, 97, 76, 73, 98, 77, 74, 89, 68, 63, 75, 54, 49, 68, 47, 42, 77, 56, 51, 83, 64, 60, 76, 57, 53, 65, 46, 42, 60, 41, 37, 72, 54, 52, 75, 57, 55, 76, 61, 58, 75, 60, 57, 68, 54, 51, 60, 46, 43, 53, 39, 36, 48, 34, 33, 75, 61, 61, 90, 76, 76, 80, 68, 68, 69, 57, 57, 77, 65, 65, 81, 69, 69, 84, 73, 71, 99, 88, 86, 81, 71, 69, 75, 65, 63, 73, 64, 59, 81, 72, 67, 93, 86, 78, 104, 97, 89, 113, 106, 98, 119, 112, 106, 129, 124, 120, 137, 133, 130, 166, 162, 159, 190, 189, 185, 195, 194, 192, 196, 196, 194, 200, 200, 200, 199, 201, 200, 205, 206, 208, 201, 205, 206, 204, 208, 211, 209, 214, 217, 212, 217, 221, 208, 216, 219, 209, 216, 222, 213, 220, 226, 216, 219, 226, 216, 219, 226, 216, 219, 226, 217, 220, 227, 217, 220, 227, 217, 220, 227, 218, 221, 228, 218, 221, 228, 223, 226, 233, 223, 226, 233, 223, 226, 233, 223, 226, 233, 224, 227, 234, 226, 229, 236, 228, 231, 238, 229, 232, 239, 226, 230, 239, 226, 230, 239, 228, 232, 241, 229, 233, 242, 229, 233, 242, 229, 233, 242, 228, 232, 241, 228, 232, 241, 231, 235, 244, 230, 234, 243, 229, 233, 242, 230, 234, 243, 232, 236, 245, 233, 237, 246, 232, 236, 245, 230, 234, 243, 233, 237, 246, 233, 237, 246, 233, 237, 246, 233, 237, 246, 233, 237, 246, 233, 237, 246, 233, 237, 246, 233, 237, 246, 233, 237, 246, 233, 237, 246, 233, 237, 246, 233, 237, 246, 233, 237, 246, 233, 237, 246, 233, 237, 246, 233, 237, 246, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 231, 236, 242, 231, 236, 242, 230, 235, 241, 226, 231, 237, 220, 225, 231, 214, 219, 225, 211, 214, 221, 217, 217, 225, 215, 215, 223, 212, 211, 217, 208, 207, 213, 204, 203, 208, 202, 201, 206, 200, 200, 202, 200, 200, 200, 198, 196, 197, 200, 199, 197, 198, 197, 193, 193, 192, 187, 191, 190, 185, 194, 193, 188, 195, 192, 185, 192, 189, 184, 186, 182, 179, 191, 187, 186, 196, 192, 189, 197, 193, 190, 196, 192, 189, 195, 191, 188, 200, 195, 192, 203, 198, 195, 201, 196, 192, 191, 186, 182, 184, 176, 173, 185, 177, 174, 194, 186, 183, 201, 193, 190, 200, 193, 187, 195, 187, 184, 191, 186, 183, 195, 190, 187, 195, 190, 187, 192, 187, 184, 192, 187, 184, 196, 191, 188, 197, 192, 189, 194, 189, 186, 197, 192, 189, 183, 178, 175, 177, 172, 169, 184, 179, 176, 189, 184, 181, 186, 181, 178, 184, 179, 176, 186, 181, 178, 183, 179, 178, 189, 185, 184, 193, 189, 188, 193, 189, 188, 193, 189, 186, 193, 189, 186, 189, 185, 182, 183, 179, 176, 173, 169, 166, 180, 176, 173, 184, 181, 176, 179, 176, 171, 175, 172, 167, 177, 174, 169, 179, 176, 171, 181, 176, 172, 176, 169, 163, 181, 174, 168, 180, 173, 167, 176, 169, 163, 179, 172, 166, 184, 177, 171, 177, 170, 164, 163, 156, 150, 174, 167, 161, 174, 167, 161, 174, 167, 161, 175, 168, 162, 176, 169, 163, 173, 166, 160, 168, 161, 155, 163, 156, 150, 152, 145, 139, 132, 125, 119, 130, 121, 116, 142, 133, 128, 149, 138, 134, 154, 140, 137, 160, 145, 140, 158, 143, 138, 149, 134, 129, 153, 138, 133, 140, 125, 118, 134, 119, 112, 146, 133, 125, 143, 130, 122, 133, 120, 112, 139, 126, 118, 115, 105, 96, 102, 92, 83, 115, 105, 96, 120, 110, 101, 103, 93, 84, 113, 103, 94, 133, 122, 116, 125, 114, 108, 118, 109, 102, 101, 92, 85, 92, 83, 78, 104, 95, 90, 102, 95, 89, 115, 108, 102, 127, 120, 114, 85, 78, 72, 95, 86, 81, 96, 87, 82, 89, 80, 75, 99, 90, 85, 125, 114, 110, 119, 108, 104, 98, 87, 83, 96, 85, 81, 104, 93, 89, 110, 99, 95, 116, 107, 102, 183, 174, 169, 101, 94, 88, 91, 84, 78, 65, 60, 54, 72, 67, 61, 81, 74, 68, 57, 48, 43, 54, 45, 40, 67, 58, 53, 78, 68, 66, 89, 79, 77, 76, 66, 65, 39, 29, 28, 60, 50, 49, 76, 66, 65, 72, 62, 60, 55, 45, 43, 53, 44, 39, 64, 55, 50, 79, 70, 65, 96, 85, 81, 101, 87, 84, 84, 70, 67, 94, 80, 77, 115, 101, 98, 107, 93, 90, 89, 75, 72, 88, 74, 71, 97, 83, 80, 87, 76, 72, 87, 76, 72, 98, 87, 83, 105, 94, 90, 96, 85, 81, 95, 84, 80, 106, 95, 91, 113, 102, 98, 105, 91, 90, 102, 88, 87, 102, 88, 87, 105, 91, 90, 98, 82, 82, 75, 59, 59, 72, 57, 54, 93, 78, 75, 99, 81, 79, 116, 98, 96, 113, 95, 93, 95, 77, 75, 89, 71, 67, 88, 70, 66, 79, 61, 57, 72, 54, 52, 82, 68, 68, 92, 78, 78, 97, 83, 83, 89, 75, 75, 79, 65, 65, 86, 72, 72, 111, 97, 97, 134, 120, 119, 139, 125, 124, 102, 88, 87, 60, 46, 45, 42, 28, 25, 49, 35, 32, 65, 51, 48, 80, 66, 63, 90, 75, 72, 69, 51, 47, 46, 27, 23, 31, 12, 8, 36, 17, 13, 39, 21, 19, 36, 21, 18, 47, 33, 32, 65, 53, 53, 85, 73, 73, 93, 83, 84, 109, 100, 101, 119, 113, 113, 114, 108, 110, 95, 91, 92, 77, 73, 74, 69, 65, 66, 96, 94, 97, 104, 102, 105, 107, 102, 106, 91, 85, 89, 65, 56, 61, 44, 33, 39, 39, 26, 33, 43, 28, 33, 48, 33, 38, 54, 38, 41, 64, 48, 51, 77, 61, 62, 91, 75, 76, 105, 89, 90, 116, 100, 101, 122, 106, 106, 89, 71, 69, 90, 71, 67, 89, 68, 63, 86, 63, 57, 83, 56, 49, 79, 52, 45, 80, 51, 45, 81, 52, 46, 82, 54, 50, 81, 53, 49, 85, 56, 52, 91, 60, 55, 98, 65, 58, 98, 64, 55, 94, 56, 47, 88, 48, 38, 98, 51, 43, 92, 43, 36, 83, 34, 27, 75, 27, 17, 71, 22, 15, 70, 22, 12, 68, 20, 10, 67, 19, 9, 74, 26, 16, 80, 32, 20, 88, 40, 30, 95, 47, 35, 101, 53, 41, 105, 57, 45, 110, 62, 50, 112, 65, 55, 109, 64, 58, 116, 72, 69, 125, 86, 81, 133, 98, 94, 136, 105, 102, 145, 117, 114, 166, 142, 140, 185, 166, 162, 185, 165, 164, 186, 166, 165, 189, 168, 167, 194, 170, 168, 198, 173, 169, 202, 174, 170, 206, 175, 172, 210, 177, 170, 214, 176, 163, 211, 175, 159, 207, 179, 167, 204, 186, 176, 203, 194, 189, 208, 207, 205, 222, 226, 227, 238, 243, 246, 239, 244, 248, 240, 243, 248, 243, 244, 249, 244, 243, 249, 244, 243, 249, 245, 244, 250, 245, 244, 250, 244, 245, 250, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 238, 238, 246, 238, 238, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 240, 246, 234, 239, 245, 233, 238, 244, 232, 237, 243, 232, 237, 243, 233, 238, 244, 232, 239, 245, 233, 240, 246, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 228, 233, 239, 227, 232, 238, 227, 232, 238, 226, 231, 237, 226, 231, 237, 224, 228, 237, 227, 231, 240, 223, 227, 238, 219, 223, 234, 220, 227, 237, 223, 227, 236, 205, 209, 212, 181, 183, 180, 148, 149, 143, 111, 108, 99, 90, 83, 73, 93, 83, 74, 97, 82, 77, 101, 83, 83, 108, 85, 91, 110, 87, 93, 100, 80, 82, 90, 72, 72, 84, 64, 65, 88, 68, 69, 99, 77, 79, 103, 81, 83, 99, 75, 75, 91, 67, 67, 91, 65, 66, 89, 63, 64, 88, 59, 61, 87, 58, 60, 91, 61, 61, 96, 66, 66, 104, 72, 73, 107, 77, 77, 130, 105, 108, 121, 99, 101, 105, 81, 81, 82, 57, 53, 72, 43, 37, 76, 46, 38, 87, 54, 45, 93, 60, 51, 88, 55, 46, 93, 63, 53, 103, 76, 69, 113, 89, 85, 119, 99, 98, 123, 107, 108, 123, 111, 113, 124, 112, 114, 135, 123, 123, 133, 121, 121, 131, 117, 117, 125, 111, 111, 117, 103, 103, 108, 94, 94, 100, 86, 86, 96, 82, 82, 108, 92, 93, 124, 108, 109, 138, 122, 123, 146, 130, 131, 152, 136, 137, 158, 142, 143, 157, 138, 140, 149, 130, 132, 137, 117, 118, 133, 113, 114, 125, 105, 106, 119, 99, 100, 117, 95, 97, 117, 95, 97, 122, 97, 100, 125, 99, 102, 120, 91, 95, 119, 90, 94, 117, 86, 91, 114, 83, 88, 112, 80, 85, 110, 78, 83, 111, 79, 84, 111, 80, 85, 120, 91, 93, 121, 92, 94, 120, 94, 95, 121, 95, 96, 123, 97, 98, 129, 103, 104, 136, 112, 112, 142, 118, 118, 135, 111, 111, 129, 108, 107, 128, 107, 106, 125, 105, 104, 120, 100, 99, 112, 92, 91, 111, 91, 90, 114, 96, 94, 131, 112, 114, 138, 119, 121, 141, 122, 124, 136, 117, 119, 133, 115, 115, 137, 119, 119, 144, 126, 126, 148, 130, 130, 142, 122, 121, 135, 115, 114, 122, 102, 101, 111, 91, 90, 104, 84, 83, 105, 85, 84, 111, 90, 89, 116, 95, 94, 112, 86, 85, 113, 87, 86, 116, 90, 89, 118, 92, 91, 117, 91, 90, 111, 85, 84, 102, 78, 76, 96, 72, 70, 108, 84, 82, 110, 86, 84, 114, 90, 88, 115, 91, 89, 111, 90, 87, 106, 85, 82, 99, 78, 75, 94, 73, 70, 91, 67, 63, 79, 55, 51, 68, 47, 42, 71, 50, 45, 82, 61, 58, 88, 67, 64, 82, 63, 59, 75, 56, 52, 76, 58, 54, 78, 60, 56, 83, 68, 65, 91, 76, 73, 93, 78, 75, 78, 63, 60, 52, 37, 34, 30, 16, 15, 84, 70, 70, 79, 67, 69, 67, 55, 57, 52, 40, 42, 50, 38, 38, 61, 49, 49, 80, 70, 69, 99, 89, 88, 88, 78, 76, 70, 60, 58, 74, 65, 60, 83, 74, 69, 81, 74, 66, 94, 87, 79, 105, 98, 90, 92, 85, 79, 93, 88, 84, 93, 90, 85, 141, 138, 133, 183, 180, 175, 183, 179, 176, 189, 188, 184, 203, 203, 201, 191, 193, 192, 195, 196, 198, 191, 195, 196, 194, 198, 201, 200, 205, 208, 203, 208, 212, 202, 207, 211, 202, 210, 213, 205, 213, 216, 209, 212, 219, 209, 212, 219, 209, 212, 219, 210, 213, 220, 210, 213, 220, 211, 214, 221, 211, 214, 221, 211, 214, 221, 216, 219, 226, 216, 219, 226, 217, 220, 227, 217, 220, 227, 219, 222, 229, 221, 224, 231, 223, 226, 233, 224, 227, 234, 223, 227, 236, 224, 228, 237, 225, 229, 238, 226, 230, 239, 227, 231, 240, 226, 230, 239, 226, 230, 239, 225, 229, 238, 229, 233, 242, 228, 232, 241, 227, 231, 240, 228, 232, 241, 230, 234, 243, 231, 235, 244, 230, 234, 243, 229, 233, 242, 232, 236, 245, 232, 236, 245, 232, 236, 245, 232, 236, 245, 232, 236, 245, 232, 236, 245, 232, 236, 245, 232, 236, 245, 232, 236, 245, 232, 236, 245, 232, 236, 245, 232, 236, 245, 232, 236, 245, 232, 236, 245, 232, 236, 245, 232, 236, 245, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 227, 232, 238, 227, 232, 238, 228, 233, 239, 226, 231, 237, 221, 226, 232, 214, 219, 225, 208, 213, 219, 204, 207, 214, 209, 209, 217, 208, 207, 215, 204, 203, 209, 201, 200, 206, 198, 197, 202, 197, 196, 201, 198, 196, 199, 198, 196, 197, 197, 195, 196, 199, 198, 196, 197, 196, 192, 191, 190, 185, 192, 189, 184, 194, 191, 184, 194, 191, 184, 191, 188, 183, 186, 182, 179, 191, 187, 186, 195, 191, 190, 195, 191, 190, 194, 189, 186, 193, 188, 185, 195, 190, 187, 199, 194, 191, 202, 194, 192, 191, 183, 181, 181, 173, 170, 183, 175, 172, 194, 186, 183, 203, 195, 192, 202, 194, 191, 198, 190, 187, 191, 186, 183, 194, 189, 186, 194, 189, 186, 190, 185, 182, 191, 186, 183, 196, 191, 188, 197, 192, 189, 195, 190, 187, 197, 192, 189, 180, 175, 172, 173, 168, 165, 182, 177, 174, 190, 185, 182, 187, 182, 179, 184, 179, 176, 188, 183, 180, 182, 178, 177, 188, 184, 183, 191, 187, 186, 190, 186, 185, 191, 187, 184, 193, 189, 186, 191, 187, 184, 186, 182, 179, 175, 171, 168, 183, 179, 176, 187, 184, 179, 181, 178, 173, 175, 172, 167, 175, 172, 167, 177, 174, 169, 179, 174, 170, 180, 172, 169, 184, 174, 172, 180, 170, 168, 173, 163, 161, 177, 167, 165, 187, 177, 175, 183, 173, 171, 170, 160, 158, 171, 161, 159, 170, 160, 158, 168, 158, 156, 168, 158, 156, 169, 159, 157, 168, 158, 156, 165, 155, 153, 162, 152, 150, 154, 147, 141, 134, 127, 121, 134, 125, 120, 146, 137, 132, 149, 138, 134, 149, 138, 134, 155, 142, 136, 157, 144, 138, 147, 132, 127, 157, 142, 137, 136, 123, 115, 122, 109, 101, 140, 127, 119, 146, 133, 125, 132, 122, 113, 130, 120, 111, 128, 118, 109, 107, 97, 88, 113, 103, 94, 112, 102, 93, 90, 80, 71, 104, 94, 85, 130, 121, 114, 124, 115, 108, 117, 108, 101, 104, 95, 88, 99, 90, 85, 108, 99, 94, 98, 91, 85, 105, 98, 92, 120, 113, 107, 86, 79, 73, 90, 81, 76, 102, 93, 88, 93, 84, 79, 93, 84, 79, 116, 105, 101, 115, 104, 100, 96, 85, 81, 94, 83, 79, 100, 89, 85, 105, 94, 90, 142, 133, 128, 155, 146, 141, 104, 97, 91, 82, 75, 69, 70, 65, 59, 84, 79, 73, 85, 78, 72, 56, 49, 43, 57, 50, 44, 79, 72, 66, 87, 79, 76, 84, 76, 73, 65, 55, 54, 31, 21, 20, 54, 44, 43, 73, 63, 62, 73, 62, 60, 59, 48, 46, 61, 50, 46, 75, 64, 60, 91, 80, 76, 105, 94, 90, 98, 84, 81, 98, 83, 80, 110, 96, 93, 121, 107, 104, 112, 98, 95, 102, 88, 85, 99, 85, 82, 95, 81, 78, 84, 73, 69, 97, 86, 82, 107, 96, 92, 105, 94, 90, 102, 91, 87, 109, 98, 94, 108, 99, 94, 99, 88, 84, 100, 86, 85, 112, 96, 96, 111, 95, 95, 103, 87, 87, 93, 77, 77, 76, 60, 60, 78, 60, 58, 100, 82, 80, 109, 91, 89, 119, 101, 99, 107, 89, 87, 87, 69, 67, 85, 66, 62, 83, 64, 60, 74, 55, 51, 72, 54, 52, 92, 78, 78, 89, 77, 79, 86, 74, 76, 87, 75, 77, 99, 87, 89, 119, 107, 107, 140, 126, 126, 150, 136, 136, 80, 66, 65, 54, 40, 39, 53, 38, 35, 80, 65, 62, 85, 70, 67, 71, 56, 51, 84, 69, 64, 120, 102, 98, 92, 73, 69, 77, 58, 54, 65, 45, 44, 63, 43, 42, 66, 48, 48, 70, 54, 54, 82, 68, 68, 93, 81, 81, 105, 95, 96, 96, 87, 90, 87, 81, 83, 82, 78, 79, 79, 77, 80, 82, 80, 83, 92, 92, 94, 104, 103, 108, 87, 86, 91, 71, 70, 75, 59, 57, 62, 66, 64, 69, 90, 83, 90, 106, 97, 102, 104, 93, 99, 96, 84, 88, 118, 103, 108, 119, 104, 107, 120, 104, 107, 117, 101, 104, 110, 94, 97, 101, 85, 86, 92, 76, 77, 86, 70, 70, 51, 33, 31, 54, 35, 31, 58, 37, 32, 63, 40, 34, 71, 44, 37, 79, 52, 43, 90, 61, 53, 96, 67, 59, 100, 71, 65, 98, 69, 63, 99, 68, 63, 104, 73, 68, 110, 77, 70, 108, 74, 65, 102, 64, 55, 97, 55, 43, 81, 37, 24, 77, 31, 16, 69, 23, 8, 64, 18, 2, 63, 17, 2, 65, 19, 3, 66, 20, 4, 67, 21, 5, 68, 22, 6, 73, 28, 9, 81, 35, 19, 88, 43, 24, 95, 50, 31, 103, 58, 39, 110, 65, 46, 116, 70, 54, 114, 68, 55, 115, 71, 62, 119, 79, 69, 126, 89, 80, 129, 99, 91, 139, 112, 105, 155, 135, 128, 174, 155, 149, 185, 167, 163, 186, 169, 162, 188, 171, 164, 192, 173, 166, 197, 177, 170, 202, 179, 171, 207, 180, 173, 210, 180, 170, 213, 173, 161, 212, 173, 158, 208, 176, 165, 207, 184, 178, 205, 194, 190, 211, 207, 206, 226, 227, 231, 241, 244, 249, 240, 243, 250, 240, 243, 250, 243, 244, 249, 244, 243, 249, 244, 243, 248, 245, 244, 249, 244, 245, 250, 244, 245, 250, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 242, 245, 252, 242, 245, 252, 242, 245, 252, 242, 245, 252, 242, 245, 252, 242, 245, 252, 242, 245, 252, 242, 245, 252, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 238, 238, 246, 238, 238, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 240, 246, 234, 239, 245, 233, 238, 244, 232, 237, 243, 232, 237, 243, 233, 238, 244, 232, 239, 245, 233, 240, 246, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 228, 233, 239, 227, 232, 238, 227, 232, 238, 226, 231, 237, 226, 231, 237, 222, 226, 237, 226, 230, 241, 224, 228, 240, 219, 223, 235, 223, 230, 240, 227, 234, 240, 212, 217, 220, 188, 192, 191, 159, 160, 154, 130, 130, 120, 105, 98, 88, 83, 74, 65, 70, 55, 52, 77, 59, 59, 93, 73, 75, 97, 77, 79, 87, 67, 68, 98, 80, 80, 111, 91, 92, 116, 94, 96, 111, 89, 91, 106, 82, 82, 104, 80, 80, 105, 79, 80, 96, 70, 71, 95, 66, 68, 93, 64, 66, 93, 65, 64, 97, 67, 67, 104, 74, 74, 112, 82, 82, 116, 86, 86, 113, 87, 88, 99, 75, 75, 83, 57, 56, 76, 48, 45, 80, 51, 47, 87, 56, 51, 84, 51, 44, 74, 41, 34, 81, 48, 41, 105, 74, 69, 130, 102, 98, 133, 109, 105, 119, 99, 98, 113, 97, 97, 126, 112, 112, 141, 129, 129, 130, 118, 118, 125, 113, 113, 119, 105, 105, 115, 101, 101, 117, 103, 103, 125, 111, 111, 135, 121, 121, 143, 127, 127, 147, 131, 132, 151, 133, 133, 146, 128, 128, 139, 121, 121, 139, 121, 121, 141, 123, 123, 133, 113, 114, 119, 99, 100, 122, 100, 102, 122, 98, 98, 119, 94, 97, 117, 93, 93, 116, 91, 94, 116, 91, 94, 117, 91, 94, 118, 92, 95, 128, 102, 105, 129, 100, 104, 130, 101, 105, 132, 103, 107, 135, 104, 109, 134, 103, 108, 129, 98, 103, 124, 93, 98, 137, 111, 114, 126, 102, 102, 117, 92, 95, 120, 96, 96, 132, 107, 110, 140, 116, 116, 138, 116, 118, 133, 112, 111, 126, 106, 107, 123, 103, 102, 122, 102, 103, 123, 105, 103, 126, 106, 107, 128, 110, 108, 136, 118, 118, 146, 128, 128, 137, 119, 119, 147, 129, 129, 152, 133, 135, 144, 126, 126, 132, 112, 113, 121, 101, 102, 115, 93, 95, 109, 87, 89, 130, 109, 108, 134, 113, 112, 133, 112, 111, 120, 99, 98, 101, 81, 80, 90, 70, 69, 91, 71, 70, 97, 76, 75, 101, 80, 79, 108, 84, 82, 111, 87, 87, 106, 82, 80, 100, 76, 76, 98, 74, 72, 103, 82, 81, 111, 90, 87, 120, 99, 98, 119, 98, 95, 117, 96, 95, 113, 92, 89, 106, 85, 84, 98, 77, 74, 91, 70, 69, 86, 65, 62, 85, 64, 61, 83, 62, 57, 74, 53, 48, 63, 42, 37, 60, 39, 36, 66, 47, 43, 70, 51, 47, 70, 51, 47, 71, 53, 49, 66, 48, 44, 67, 52, 49, 85, 70, 67, 106, 91, 88, 106, 91, 88, 85, 70, 67, 62, 47, 44, 51, 37, 37, 60, 46, 46, 74, 60, 60, 69, 57, 57, 49, 35, 35, 37, 25, 25, 45, 33, 33, 53, 43, 42, 71, 61, 59, 62, 52, 50, 74, 64, 62, 75, 66, 61, 72, 65, 59, 111, 104, 98, 126, 119, 113, 84, 77, 71, 68, 63, 59, 65, 60, 56, 124, 119, 116, 177, 173, 170, 173, 169, 166, 187, 183, 180, 207, 206, 204, 188, 188, 186, 189, 189, 189, 187, 188, 190, 190, 191, 193, 195, 199, 200, 198, 202, 205, 197, 202, 205, 198, 203, 206, 202, 207, 210, 204, 207, 212, 204, 207, 212, 206, 207, 212, 205, 208, 213, 207, 208, 213, 206, 209, 214, 208, 209, 214, 206, 209, 214, 214, 215, 220, 212, 215, 220, 214, 215, 220, 213, 216, 221, 216, 217, 222, 217, 220, 225, 221, 222, 227, 220, 223, 228, 223, 226, 233, 223, 228, 234, 224, 228, 237, 225, 230, 236, 225, 229, 238, 225, 230, 236, 224, 228, 237, 224, 229, 235, 228, 232, 241, 227, 232, 238, 226, 230, 239, 227, 232, 238, 229, 233, 242, 230, 235, 241, 229, 233, 242, 227, 231, 240, 232, 236, 245, 232, 236, 245, 232, 236, 245, 232, 236, 245, 232, 236, 245, 232, 236, 245, 232, 236, 245, 232, 236, 245, 232, 236, 245, 232, 236, 245, 232, 236, 245, 232, 236, 245, 232, 236, 245, 232, 236, 245, 232, 236, 245, 232, 237, 243, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 228, 233, 239, 228, 233, 239, 229, 232, 239, 227, 232, 236, 225, 228, 235, 225, 228, 233, 226, 229, 234, 224, 227, 232, 219, 222, 227, 211, 214, 219, 204, 207, 212, 199, 202, 207, 204, 203, 209, 202, 201, 206, 200, 198, 203, 196, 196, 198, 195, 193, 196, 195, 193, 196, 195, 193, 194, 196, 194, 195, 195, 194, 192, 197, 196, 192, 195, 194, 189, 189, 188, 183, 190, 187, 180, 192, 189, 182, 192, 189, 182, 189, 186, 181, 186, 182, 179, 190, 186, 183, 196, 191, 188, 195, 190, 187, 192, 187, 184, 190, 185, 181, 193, 188, 185, 196, 191, 187, 201, 193, 191, 189, 181, 178, 179, 171, 168, 182, 174, 171, 194, 186, 183, 204, 196, 193, 204, 196, 193, 199, 191, 188, 191, 186, 183, 193, 188, 185, 193, 188, 185, 190, 185, 182, 190, 185, 182, 195, 190, 187, 197, 192, 189, 195, 190, 187, 197, 192, 189, 178, 173, 170, 170, 165, 162, 182, 177, 174, 190, 185, 182, 187, 182, 179, 185, 180, 177, 190, 185, 182, 182, 178, 177, 187, 183, 182, 189, 185, 184, 189, 185, 182, 190, 186, 183, 193, 189, 186, 193, 189, 186, 189, 185, 182, 178, 174, 171, 187, 183, 180, 190, 187, 182, 184, 181, 176, 175, 172, 167, 173, 170, 165, 175, 172, 167, 175, 172, 167, 183, 175, 172, 185, 177, 174, 178, 170, 167, 169, 161, 158, 175, 167, 164, 188, 180, 177, 187, 177, 175, 174, 164, 162, 168, 158, 156, 166, 156, 154, 163, 153, 151, 163, 153, 151, 163, 153, 151, 163, 153, 151, 161, 151, 149, 159, 150, 145, 159, 150, 145, 139, 130, 123, 138, 129, 124, 151, 140, 134, 149, 138, 134, 146, 135, 129, 152, 139, 133, 155, 142, 136, 146, 131, 126, 159, 144, 139, 135, 122, 114, 114, 101, 93, 135, 122, 114, 147, 134, 126, 130, 120, 111, 122, 112, 103, 132, 122, 113, 107, 97, 88, 110, 100, 91, 105, 95, 86, 81, 71, 62, 96, 85, 79, 125, 114, 108, 119, 110, 103, 116, 105, 99, 102, 93, 86, 101, 92, 87, 116, 107, 102, 103, 94, 89, 103, 96, 90, 122, 115, 109, 98, 91, 85, 82, 73, 68, 100, 91, 84, 91, 82, 75, 85, 76, 71, 109, 98, 94, 114, 103, 99, 100, 89, 85, 99, 90, 85, 98, 87, 83, 100, 91, 86, 165, 156, 151, 118, 109, 104, 116, 109, 103, 65, 58, 52, 69, 62, 56, 87, 80, 74, 84, 77, 71, 54, 47, 41, 59, 52, 46, 85, 78, 72, 88, 80, 77, 77, 69, 66, 57, 47, 45, 29, 19, 17, 51, 41, 40, 72, 62, 60, 74, 63, 61, 61, 50, 48, 66, 55, 51, 83, 72, 68, 99, 88, 84, 114, 100, 97, 100, 86, 83, 102, 88, 85, 109, 95, 92, 112, 98, 95, 115, 101, 98, 122, 108, 105, 108, 94, 91, 78, 64, 61, 97, 83, 80, 98, 87, 83, 96, 82, 79, 101, 90, 86, 125, 111, 108, 123, 112, 108, 99, 88, 84, 82, 71, 67, 102, 88, 85, 116, 102, 99, 108, 94, 91, 94, 79, 76, 93, 78, 75, 92, 74, 72, 88, 68, 67, 94, 74, 73, 123, 103, 102, 128, 108, 107, 107, 87, 86, 83, 63, 62, 81, 62, 58, 83, 64, 60, 83, 65, 61, 90, 75, 72, 90, 78, 80, 81, 70, 74, 80, 70, 71, 100, 90, 91, 132, 120, 122, 141, 129, 129, 119, 105, 105, 88, 72, 72, 72, 56, 56, 68, 53, 50, 68, 50, 48, 72, 54, 50, 79, 61, 57, 85, 67, 63, 86, 68, 64, 85, 67, 63, 79, 61, 59, 81, 63, 63, 83, 65, 65, 87, 71, 72, 98, 82, 83, 101, 89, 89, 90, 78, 80, 72, 63, 64, 67, 58, 61, 78, 74, 75, 101, 96, 100, 117, 115, 118, 115, 115, 117, 97, 98, 100, 78, 79, 83, 69, 70, 74, 79, 78, 83, 91, 89, 94, 105, 103, 106, 115, 110, 114, 117, 111, 115, 116, 107, 112, 115, 104, 108, 115, 103, 107, 108, 93, 96, 102, 87, 90, 94, 78, 81, 82, 66, 67, 70, 54, 55, 61, 42, 44, 53, 34, 36, 49, 31, 31, 46, 26, 25, 51, 30, 25, 59, 36, 30, 66, 41, 34, 74, 47, 38, 81, 52, 44, 89, 60, 52, 94, 65, 59, 92, 65, 58, 91, 62, 58, 90, 61, 57, 95, 64, 59, 101, 67, 58, 102, 64, 55, 94, 52, 40, 86, 42, 29, 85, 39, 24, 78, 32, 16, 69, 23, 7, 60, 17, 0, 57, 14, 0, 57, 16, 0, 57, 16, 0, 57, 16, 0, 70, 27, 8, 75, 32, 13, 82, 39, 20, 89, 46, 27, 99, 54, 35, 106, 63, 44, 118, 73, 54, 125, 79, 63, 128, 82, 67, 125, 81, 68, 127, 85, 73, 130, 94, 82, 136, 104, 93, 144, 117, 108, 158, 138, 131, 173, 156, 149, 185, 170, 165, 185, 172, 166, 187, 174, 166, 192, 177, 170, 197, 180, 173, 202, 182, 175, 206, 183, 175, 212, 184, 173, 212, 173, 158, 213, 171, 157, 208, 176, 165, 206, 186, 179, 206, 195, 191, 213, 209, 208, 228, 229, 233, 243, 246, 251, 240, 243, 250, 240, 243, 248, 243, 244, 249, 243, 244, 249, 243, 244, 248, 244, 245, 250, 244, 245, 250, 244, 245, 250, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 242, 245, 252, 242, 245, 252, 242, 245, 252, 242, 245, 252, 242, 245, 252, 242, 245, 252, 242, 245, 252, 242, 245, 252, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 238, 243, 247, 238, 243, 247, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 238, 238, 246, 238, 238, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 231, 238, 244, 231, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 229, 234, 240, 229, 234, 240, 229, 234, 240, 228, 233, 239, 228, 233, 239, 227, 232, 238, 227, 232, 238, 227, 231, 240, 228, 234, 246, 224, 230, 244, 221, 227, 239, 222, 229, 239, 223, 230, 238, 218, 225, 231, 209, 214, 217, 200, 204, 203, 167, 169, 164, 152, 153, 147, 124, 119, 113, 92, 85, 79, 80, 66, 63, 85, 70, 67, 98, 80, 80, 105, 85, 86, 110, 90, 89, 111, 91, 90, 113, 92, 91, 107, 86, 85, 96, 72, 72, 86, 60, 61, 90, 64, 65, 102, 74, 73, 105, 77, 76, 100, 70, 70, 96, 66, 66, 98, 68, 68, 104, 74, 74, 105, 75, 73, 98, 68, 66, 91, 61, 59, 92, 61, 58, 92, 61, 58, 91, 60, 57, 86, 55, 52, 80, 49, 47, 76, 45, 43, 77, 47, 47, 81, 51, 51, 110, 81, 83, 104, 78, 79, 104, 80, 80, 115, 94, 93, 130, 110, 109, 137, 119, 117, 130, 115, 112, 121, 107, 104, 121, 110, 108, 122, 112, 110, 125, 114, 112, 129, 118, 116, 135, 121, 120, 138, 124, 123, 142, 126, 126, 144, 129, 126, 142, 124, 124, 134, 114, 113, 124, 104, 103, 123, 103, 102, 127, 106, 105, 129, 108, 107, 126, 102, 102, 121, 95, 96, 120, 91, 93, 121, 91, 91, 119, 89, 91, 117, 89, 88, 116, 87, 89, 114, 88, 89, 114, 88, 89, 114, 88, 89, 115, 89, 90, 116, 90, 91, 120, 94, 97, 127, 101, 104, 134, 108, 111, 138, 112, 115, 139, 110, 114, 135, 109, 112, 136, 114, 116, 141, 123, 123, 147, 128, 130, 147, 129, 129, 146, 127, 129, 144, 126, 126, 136, 117, 119, 128, 110, 110, 127, 108, 110, 130, 112, 112, 136, 117, 119, 140, 124, 124, 145, 126, 128, 144, 128, 128, 144, 128, 129, 143, 127, 127, 140, 124, 124, 129, 111, 109, 121, 103, 103, 126, 106, 105, 128, 107, 106, 121, 95, 96, 114, 85, 87, 112, 83, 85, 116, 87, 89, 111, 82, 84, 111, 85, 86, 123, 99, 99, 134, 113, 112, 128, 108, 107, 103, 85, 83, 80, 62, 60, 83, 65, 63, 107, 89, 87, 119, 101, 101, 110, 92, 90, 110, 90, 91, 123, 103, 102, 127, 107, 108, 118, 98, 97, 107, 87, 88, 104, 84, 83, 106, 86, 87, 113, 93, 92, 117, 97, 98, 112, 92, 91, 107, 87, 88, 105, 85, 84, 94, 75, 71, 86, 67, 63, 78, 59, 55, 75, 56, 52, 74, 55, 51, 70, 51, 47, 61, 42, 38, 52, 34, 30, 59, 41, 37, 69, 51, 47, 68, 50, 46, 56, 38, 34, 53, 38, 33, 67, 52, 47, 78, 63, 58, 78, 63, 60, 58, 43, 40, 57, 41, 41, 72, 56, 56, 81, 67, 66, 72, 56, 56, 67, 53, 52, 63, 49, 48, 45, 34, 32, 45, 34, 32, 66, 55, 53, 88, 78, 76, 79, 69, 67, 62, 52, 50, 81, 71, 69, 111, 103, 100, 116, 108, 106, 104, 96, 94, 76, 71, 68, 104, 98, 98, 154, 148, 148, 169, 163, 163, 181, 177, 176, 200, 196, 195, 197, 196, 194, 197, 196, 194, 195, 195, 195, 193, 193, 193, 189, 191, 190, 188, 190, 189, 191, 193, 192, 197, 199, 198, 203, 205, 204, 198, 199, 201, 199, 200, 202, 200, 200, 202, 200, 201, 203, 202, 202, 204, 202, 203, 205, 203, 203, 205, 203, 204, 206, 207, 207, 209, 206, 207, 209, 208, 208, 210, 208, 209, 211, 211, 211, 213, 211, 212, 214, 213, 213, 215, 212, 213, 217, 214, 217, 222, 215, 218, 223, 217, 220, 227, 220, 223, 228, 221, 224, 231, 222, 225, 230, 223, 226, 233, 222, 225, 230, 230, 233, 240, 223, 226, 231, 218, 221, 228, 221, 224, 229, 229, 232, 239, 232, 235, 240, 227, 230, 237, 220, 223, 230, 229, 234, 240, 232, 237, 243, 233, 238, 244, 230, 235, 241, 230, 235, 241, 233, 238, 244, 232, 237, 243, 229, 234, 240, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 236, 243, 230, 233, 238, 226, 229, 234, 225, 228, 233, 225, 228, 233, 225, 228, 233, 226, 227, 232, 222, 226, 229, 221, 222, 227, 224, 225, 229, 225, 226, 230, 220, 221, 225, 211, 212, 216, 203, 204, 208, 201, 202, 206, 202, 202, 204, 202, 200, 201, 200, 199, 197, 200, 196, 195, 197, 196, 192, 200, 196, 193, 200, 196, 193, 198, 194, 191, 196, 192, 189, 196, 192, 189, 194, 191, 186, 197, 194, 189, 193, 190, 185, 185, 182, 177, 191, 188, 183, 199, 196, 191, 193, 190, 185, 179, 174, 170, 190, 185, 181, 194, 186, 183, 193, 185, 182, 194, 186, 183, 188, 181, 175, 183, 175, 172, 190, 183, 177, 200, 192, 189, 185, 178, 172, 171, 164, 158, 173, 166, 160, 188, 181, 175, 203, 196, 190, 207, 200, 194, 204, 197, 191, 191, 186, 182, 186, 181, 177, 184, 179, 175, 189, 184, 180, 194, 189, 185, 195, 190, 186, 197, 192, 188, 201, 196, 192, 193, 188, 184, 184, 179, 175, 177, 172, 168, 180, 175, 171, 186, 181, 177, 188, 183, 179, 191, 186, 182, 194, 189, 186, 181, 177, 176, 184, 183, 181, 193, 189, 186, 190, 186, 183, 185, 180, 177, 193, 188, 184, 198, 193, 189, 188, 183, 179, 179, 174, 170, 178, 173, 169, 188, 183, 179, 188, 183, 179, 176, 172, 169, 178, 174, 171, 179, 178, 174, 169, 165, 162, 181, 177, 174, 184, 179, 176, 182, 177, 174, 176, 171, 168, 174, 169, 165, 175, 170, 166, 175, 167, 164, 171, 163, 160, 163, 156, 150, 166, 159, 153, 153, 146, 140, 144, 137, 131, 156, 149, 143, 160, 153, 147, 156, 149, 143, 161, 152, 147, 140, 129, 123, 152, 142, 133, 146, 135, 129, 134, 121, 113, 141, 128, 122, 149, 136, 128, 146, 133, 125, 155, 142, 134, 164, 151, 145, 150, 137, 131, 129, 116, 110, 131, 118, 112, 118, 105, 99, 118, 105, 99, 134, 121, 115, 102, 91, 85, 110, 101, 94, 127, 118, 111, 110, 101, 94, 107, 98, 91, 100, 89, 83, 87, 76, 72, 109, 98, 94, 122, 111, 107, 117, 103, 100, 107, 96, 92, 112, 101, 99, 114, 104, 102, 106, 96, 94, 110, 100, 98, 114, 106, 103, 106, 97, 92, 90, 79, 73, 99, 89, 80, 104, 94, 85, 89, 78, 72, 101, 92, 85, 74, 65, 58, 98, 89, 84, 80, 73, 67, 90, 80, 78, 105, 97, 94, 157, 150, 144, 117, 110, 104, 91, 82, 77, 68, 59, 54, 85, 76, 69, 91, 82, 75, 81, 72, 67, 46, 37, 32, 70, 61, 56, 69, 60, 55, 94, 85, 80, 83, 74, 69, 64, 55, 50, 47, 38, 33, 56, 45, 43, 65, 54, 50, 75, 64, 60, 78, 67, 63, 79, 65, 62, 74, 60, 57, 81, 67, 64, 109, 95, 92, 88, 74, 71, 82, 68, 65, 109, 95, 92, 120, 106, 103, 117, 103, 100, 114, 100, 97, 93, 79, 76, 86, 72, 69, 100, 86, 83, 97, 83, 80, 107, 92, 89, 120, 106, 103, 117, 102, 99, 98, 83, 80, 89, 74, 71, 93, 79, 76, 106, 95, 89, 99, 90, 83, 107, 96, 90, 108, 95, 89, 85, 67, 63, 75, 56, 52, 98, 77, 74, 126, 102, 100, 134, 108, 107, 123, 99, 97, 109, 85, 85, 95, 74, 73, 85, 65, 64, 80, 62, 60, 81, 66, 63, 84, 73, 71, 73, 67, 67, 77, 73, 74, 118, 112, 112, 153, 144, 145, 124, 114, 113, 78, 64, 64, 76, 60, 61, 104, 86, 86, 78, 58, 59, 87, 67, 66, 77, 56, 55, 87, 66, 63, 116, 97, 93, 104, 85, 79, 83, 64, 58, 101, 82, 78, 98, 82, 85, 80, 65, 70, 82, 67, 72, 103, 90, 97, 104, 91, 98, 80, 71, 76, 71, 62, 67, 80, 75, 79, 105, 100, 104, 95, 95, 97, 91, 91, 93, 91, 92, 94, 86, 90, 91, 84, 90, 88, 95, 101, 101, 112, 116, 115, 128, 124, 125, 121, 112, 113, 105, 96, 97, 76, 67, 68, 51, 41, 40, 58, 46, 46, 81, 69, 69, 93, 79, 79, 90, 76, 76, 78, 62, 62, 77, 59, 59, 87, 69, 69, 89, 71, 71, 83, 63, 64, 84, 64, 65, 94, 73, 72, 89, 65, 63, 81, 56, 52, 72, 44, 40, 68, 39, 33, 71, 42, 34, 80, 51, 43, 91, 62, 56, 96, 69, 62, 88, 63, 59, 92, 67, 63, 97, 69, 66, 99, 68, 63, 98, 61, 53, 96, 54, 42, 95, 47, 33, 93, 44, 30, 82, 34, 20, 75, 29, 16, 67, 23, 10, 62, 20, 6, 52, 14, 1, 45, 9, 0, 47, 11, 0, 53, 17, 1, 65, 28, 10, 69, 30, 13, 79, 38, 20, 90, 48, 32, 99, 56, 40, 105, 63, 49, 119, 75, 64, 131, 87, 74, 125, 82, 66, 126, 84, 68, 133, 94, 79, 140, 104, 92, 139, 106, 97, 138, 111, 104, 152, 131, 126, 172, 154, 150, 174, 160, 157, 185, 174, 172, 193, 183, 181, 191, 180, 176, 189, 174, 171, 193, 175, 171, 201, 180, 175, 211, 182, 174, 209, 170, 155, 211, 169, 153, 200, 171, 157, 194, 176, 166, 202, 192, 190, 220, 218, 219, 236, 237, 241, 241, 244, 249, 240, 243, 248, 240, 243, 248, 239, 244, 248, 239, 244, 247, 240, 245, 249, 240, 245, 249, 242, 245, 252, 242, 245, 252, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 248, 253, 245, 248, 253, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 238, 238, 246, 238, 238, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 231, 238, 244, 231, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 229, 234, 240, 229, 234, 240, 229, 234, 240, 228, 233, 239, 228, 233, 239, 228, 233, 239, 227, 232, 238, 227, 231, 240, 227, 233, 247, 223, 229, 243, 221, 227, 239, 222, 229, 239, 224, 231, 239, 220, 228, 231, 212, 217, 220, 203, 209, 207, 189, 191, 188, 162, 163, 158, 128, 125, 120, 104, 96, 93, 96, 85, 81, 98, 84, 81, 99, 84, 81, 101, 83, 81, 92, 72, 71, 89, 69, 68, 87, 66, 65, 84, 63, 62, 80, 54, 55, 76, 50, 51, 84, 56, 55, 94, 66, 65, 99, 69, 69, 101, 71, 71, 103, 73, 73, 103, 73, 73, 100, 70, 68, 92, 62, 60, 81, 53, 50, 76, 47, 43, 78, 45, 40, 87, 54, 47, 86, 53, 48, 71, 40, 37, 67, 36, 34, 82, 52, 52, 100, 71, 73, 110, 81, 85, 95, 68, 73, 106, 81, 85, 123, 98, 102, 134, 112, 114, 137, 117, 116, 134, 116, 112, 130, 111, 107, 126, 108, 104, 121, 107, 104, 125, 111, 110, 132, 118, 117, 139, 123, 123, 140, 124, 124, 137, 121, 121, 135, 117, 115, 132, 112, 111, 125, 105, 104, 125, 104, 103, 125, 101, 99, 123, 99, 97, 122, 96, 95, 119, 93, 92, 115, 89, 88, 114, 86, 85, 121, 89, 90, 119, 87, 88, 116, 84, 85, 113, 83, 83, 110, 82, 81, 108, 82, 81, 109, 83, 84, 109, 85, 85, 106, 82, 82, 111, 87, 87, 117, 92, 95, 120, 95, 98, 121, 96, 99, 123, 98, 101, 127, 102, 105, 129, 107, 109, 134, 115, 117, 137, 121, 122, 140, 124, 125, 139, 123, 124, 140, 124, 125, 141, 125, 126, 138, 122, 123, 133, 117, 118, 147, 131, 132, 148, 132, 133, 149, 133, 134, 149, 133, 134, 147, 131, 132, 144, 128, 129, 140, 124, 125, 138, 122, 123, 128, 112, 112, 118, 103, 100, 115, 97, 95, 122, 102, 101, 127, 103, 103, 122, 96, 97, 118, 88, 90, 117, 87, 89, 97, 67, 69, 103, 73, 75, 107, 81, 82, 111, 87, 87, 112, 92, 91, 119, 101, 99, 129, 114, 111, 138, 123, 120, 120, 104, 104, 117, 103, 102, 110, 94, 94, 107, 91, 91, 119, 103, 103, 134, 118, 118, 129, 113, 113, 113, 97, 97, 115, 97, 97, 117, 99, 99, 122, 104, 104, 124, 106, 106, 118, 98, 99, 105, 87, 87, 100, 80, 81, 101, 81, 80, 104, 84, 83, 100, 81, 77, 98, 79, 75, 99, 80, 76, 101, 82, 78, 98, 79, 75, 88, 70, 66, 80, 62, 58, 76, 58, 54, 84, 66, 62, 80, 62, 58, 65, 47, 43, 56, 41, 36, 60, 45, 40, 59, 44, 39, 50, 35, 30, 61, 43, 41, 53, 35, 33, 55, 40, 37, 60, 45, 42, 60, 44, 44, 73, 57, 57, 87, 73, 72, 87, 73, 72, 56, 45, 43, 61, 50, 48, 76, 66, 65, 78, 68, 67, 68, 58, 57, 76, 66, 65, 93, 85, 83, 97, 89, 87, 95, 86, 87, 100, 91, 92, 94, 88, 88, 117, 111, 111, 164, 158, 158, 181, 175, 175, 178, 172, 172, 187, 183, 182, 196, 192, 191, 193, 192, 190, 192, 191, 189, 188, 188, 186, 187, 187, 185, 189, 189, 187, 194, 194, 192, 198, 200, 197, 196, 196, 196, 196, 196, 196, 197, 197, 197, 197, 197, 197, 198, 198, 198, 199, 199, 199, 199, 199, 199, 200, 200, 200, 203, 203, 203, 203, 203, 203, 204, 204, 204, 205, 205, 205, 207, 207, 207, 208, 208, 208, 209, 209, 209, 209, 209, 209, 211, 212, 216, 211, 214, 219, 213, 216, 221, 215, 218, 223, 216, 219, 224, 217, 220, 225, 217, 220, 225, 217, 220, 225, 225, 228, 233, 219, 222, 227, 215, 218, 223, 218, 221, 226, 226, 229, 234, 230, 233, 238, 225, 228, 233, 219, 222, 227, 225, 230, 236, 230, 235, 241, 232, 237, 243, 229, 234, 240, 229, 234, 240, 231, 236, 242, 230, 235, 241, 226, 231, 237, 228, 233, 239, 229, 234, 240, 229, 234, 240, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 231, 236, 242, 230, 233, 238, 227, 230, 235, 223, 226, 231, 222, 225, 230, 223, 224, 229, 223, 224, 228, 221, 222, 226, 219, 220, 224, 215, 216, 220, 218, 219, 221, 220, 220, 222, 216, 216, 218, 208, 208, 210, 202, 202, 204, 199, 199, 201, 200, 198, 199, 204, 200, 197, 201, 198, 193, 199, 196, 191, 198, 195, 190, 198, 195, 190, 197, 194, 189, 195, 192, 187, 192, 189, 184, 193, 190, 185, 192, 189, 184, 195, 192, 187, 191, 188, 183, 183, 180, 175, 188, 185, 180, 195, 192, 187, 189, 186, 181, 181, 174, 168, 191, 184, 178, 191, 184, 178, 190, 183, 177, 192, 185, 179, 188, 181, 175, 185, 178, 172, 192, 185, 179, 198, 191, 185, 184, 177, 171, 171, 164, 158, 173, 166, 160, 187, 180, 174, 201, 194, 188, 205, 198, 192, 202, 195, 189, 190, 185, 181, 185, 180, 176, 183, 178, 174, 188, 183, 179, 193, 188, 184, 194, 189, 185, 196, 191, 187, 199, 194, 190, 195, 190, 186, 184, 179, 175, 177, 172, 168, 178, 173, 169, 183, 178, 174, 187, 182, 178, 190, 185, 181, 193, 190, 185, 182, 178, 177, 183, 182, 180, 192, 188, 185, 189, 185, 182, 184, 179, 175, 191, 186, 182, 196, 191, 187, 187, 182, 178, 181, 176, 172, 178, 173, 169, 184, 179, 175, 185, 180, 176, 176, 172, 169, 180, 176, 173, 179, 178, 176, 166, 165, 163, 178, 174, 171, 182, 178, 175, 181, 177, 174, 175, 171, 168, 172, 167, 163, 173, 168, 164, 172, 167, 163, 170, 165, 161, 165, 158, 152, 168, 161, 155, 156, 149, 143, 146, 139, 133, 152, 145, 139, 153, 146, 140, 151, 144, 138, 158, 149, 142, 146, 136, 127, 159, 146, 138, 151, 138, 130, 137, 124, 116, 139, 126, 118, 141, 128, 120, 137, 124, 116, 142, 129, 121, 149, 136, 130, 147, 134, 128, 132, 119, 113, 133, 120, 114, 126, 113, 107, 118, 105, 99, 122, 108, 105, 95, 84, 80, 85, 76, 69, 116, 109, 101, 114, 105, 98, 110, 101, 94, 106, 95, 91, 96, 85, 81, 107, 93, 90, 103, 89, 86, 111, 97, 94, 107, 93, 90, 113, 102, 100, 114, 103, 101, 101, 91, 89, 106, 96, 94, 114, 106, 103, 106, 97, 92, 102, 92, 83, 94, 81, 72, 118, 108, 99, 87, 77, 68, 98, 89, 82, 96, 87, 80, 92, 85, 79, 92, 85, 79, 84, 76, 73, 124, 116, 113, 146, 139, 133, 99, 92, 86, 88, 79, 74, 66, 57, 52, 85, 76, 69, 89, 80, 73, 74, 65, 60, 44, 35, 30, 70, 61, 56, 68, 59, 54, 87, 78, 73, 74, 65, 60, 64, 55, 50, 54, 45, 40, 62, 51, 47, 75, 64, 60, 81, 70, 66, 77, 66, 62, 76, 62, 59, 71, 57, 54, 77, 63, 60, 96, 82, 79, 88, 77, 73, 81, 70, 66, 110, 96, 93, 119, 105, 102, 115, 101, 98, 112, 98, 95, 92, 78, 75, 86, 72, 69, 101, 86, 83, 101, 86, 83, 105, 90, 87, 112, 97, 94, 109, 94, 91, 100, 85, 82, 100, 82, 80, 102, 87, 82, 108, 97, 91, 101, 91, 82, 103, 90, 82, 94, 79, 72, 74, 56, 52, 78, 57, 54, 111, 87, 85, 137, 111, 110, 140, 114, 113, 109, 83, 82, 83, 59, 59, 81, 60, 59, 85, 65, 64, 80, 62, 60, 73, 59, 56, 72, 62, 60, 103, 99, 96, 127, 126, 124, 131, 126, 123, 92, 84, 82, 67, 55, 55, 88, 74, 73, 95, 79, 79, 71, 53, 53, 62, 42, 41, 74, 53, 52, 96, 75, 74, 97, 76, 75, 80, 61, 57, 85, 66, 62, 107, 88, 84, 112, 97, 94, 98, 86, 90, 99, 88, 96, 107, 96, 104, 114, 103, 111, 109, 99, 107, 95, 88, 95, 86, 81, 87, 85, 80, 84, 45, 43, 46, 52, 52, 54, 71, 72, 74, 95, 97, 96, 106, 110, 109, 109, 113, 112, 114, 118, 117, 124, 126, 123, 115, 110, 107, 102, 92, 91, 92, 82, 81, 86, 76, 75, 78, 67, 65, 75, 64, 62, 71, 57, 56, 58, 44, 43, 60, 44, 44, 48, 32, 32, 47, 29, 27, 58, 40, 38, 67, 47, 46, 68, 48, 47, 78, 57, 56, 93, 69, 69, 106, 80, 79, 102, 74, 71, 94, 65, 61, 90, 60, 52, 89, 59, 51, 90, 61, 53, 93, 64, 58, 92, 67, 60, 90, 65, 61, 94, 69, 65, 100, 72, 69, 102, 71, 66, 101, 64, 55, 98, 54, 43, 95, 46, 31, 93, 41, 27, 86, 37, 23, 77, 31, 18, 67, 23, 12, 58, 18, 8, 48, 11, 2, 41, 7, 0, 43, 11, 0, 50, 16, 4, 59, 23, 9, 63, 26, 10, 74, 35, 20, 90, 48, 34, 102, 60, 48, 112, 70, 58, 126, 83, 76, 138, 95, 86, 134, 95, 80, 129, 90, 73, 131, 93, 80, 138, 104, 92, 142, 112, 104, 143, 116, 109, 149, 128, 123, 160, 142, 140, 166, 155, 153, 179, 169, 168, 188, 180, 178, 187, 177, 175, 186, 172, 171, 190, 172, 170, 197, 176, 173, 205, 176, 170, 208, 169, 152, 210, 169, 151, 199, 171, 157, 195, 178, 168, 203, 195, 192, 220, 220, 220, 236, 237, 241, 240, 243, 248, 240, 243, 248, 239, 244, 248, 237, 245, 247, 237, 245, 247, 238, 246, 249, 238, 246, 249, 242, 245, 254, 242, 245, 252, 242, 245, 252, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 248, 253, 245, 248, 253, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 238, 238, 246, 238, 238, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 231, 238, 244, 231, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 228, 233, 239, 228, 233, 239, 228, 233, 239, 227, 231, 240, 227, 231, 243, 225, 228, 243, 221, 227, 239, 223, 230, 240, 225, 232, 240, 222, 230, 233, 216, 221, 224, 210, 216, 214, 198, 200, 197, 163, 164, 159, 131, 128, 123, 122, 114, 111, 119, 110, 105, 109, 95, 92, 91, 76, 73, 82, 64, 62, 73, 53, 52, 71, 51, 50, 72, 51, 50, 74, 53, 52, 76, 50, 51, 74, 48, 49, 80, 51, 53, 86, 57, 59, 97, 67, 67, 101, 71, 71, 103, 73, 73, 99, 69, 69, 89, 59, 57, 80, 50, 48, 73, 45, 42, 73, 44, 40, 79, 48, 43, 73, 43, 35, 70, 39, 34, 76, 45, 42, 87, 56, 54, 95, 65, 65, 98, 69, 71, 98, 69, 71, 114, 88, 91, 126, 101, 104, 137, 112, 115, 132, 111, 110, 118, 97, 96, 108, 89, 85, 112, 91, 88, 118, 99, 95, 110, 90, 89, 114, 94, 95, 118, 98, 99, 122, 100, 102, 121, 100, 99, 116, 95, 94, 112, 88, 88, 108, 84, 84, 119, 95, 95, 119, 95, 95, 117, 91, 90, 109, 83, 82, 103, 75, 74, 98, 70, 69, 99, 71, 70, 103, 73, 73, 121, 91, 93, 118, 88, 90, 115, 85, 87, 112, 83, 85, 111, 82, 84, 111, 85, 86, 113, 88, 91, 113, 91, 93, 113, 91, 93, 121, 99, 101, 127, 105, 107, 126, 104, 106, 121, 99, 102, 121, 99, 102, 129, 107, 110, 138, 116, 119, 136, 117, 121, 138, 122, 125, 139, 123, 126, 137, 121, 124, 138, 122, 125, 143, 127, 130, 143, 127, 130, 141, 125, 128, 146, 130, 133, 146, 130, 133, 144, 128, 131, 141, 125, 128, 137, 121, 124, 132, 116, 119, 127, 111, 114, 125, 109, 110, 129, 113, 113, 122, 106, 106, 122, 104, 104, 128, 108, 109, 133, 111, 113, 133, 108, 111, 130, 104, 107, 131, 102, 106, 125, 96, 100, 127, 101, 104, 125, 100, 103, 112, 90, 92, 101, 81, 82, 106, 88, 88, 126, 110, 110, 147, 131, 131, 151, 137, 136, 145, 134, 132, 139, 125, 124, 127, 113, 112, 118, 104, 103, 115, 101, 100, 116, 102, 101, 118, 104, 103, 109, 93, 93, 117, 101, 101, 127, 111, 111, 131, 115, 115, 125, 107, 107, 113, 97, 97, 115, 97, 97, 121, 103, 101, 117, 97, 96, 113, 94, 90, 109, 90, 86, 109, 90, 86, 110, 92, 88, 108, 90, 86, 103, 85, 81, 97, 79, 75, 94, 76, 72, 98, 80, 76, 94, 76, 72, 81, 63, 59, 71, 56, 51, 67, 52, 47, 55, 40, 35, 40, 25, 20, 48, 30, 28, 40, 22, 20, 38, 23, 20, 43, 28, 25, 48, 32, 32, 68, 52, 52, 89, 75, 74, 96, 82, 81, 78, 67, 65, 65, 54, 52, 66, 56, 55, 72, 62, 61, 68, 58, 57, 68, 58, 57, 77, 67, 66, 83, 73, 72, 87, 78, 79, 102, 93, 94, 90, 81, 82, 94, 85, 86, 142, 133, 134, 172, 166, 166, 173, 167, 167, 177, 173, 172, 191, 187, 186, 189, 188, 186, 189, 188, 186, 188, 187, 185, 186, 185, 183, 186, 186, 184, 189, 189, 187, 192, 192, 190, 192, 191, 189, 192, 191, 189, 193, 192, 190, 194, 193, 191, 194, 193, 191, 195, 194, 192, 196, 195, 193, 196, 195, 193, 199, 198, 196, 199, 198, 196, 200, 199, 197, 201, 200, 198, 203, 202, 200, 204, 203, 201, 205, 204, 202, 204, 204, 204, 205, 206, 210, 206, 207, 211, 208, 209, 213, 210, 211, 215, 211, 212, 216, 212, 213, 217, 212, 213, 217, 212, 213, 217, 219, 220, 224, 214, 215, 219, 211, 212, 216, 215, 216, 220, 222, 223, 227, 226, 227, 231, 223, 224, 228, 216, 219, 224, 221, 226, 232, 227, 232, 238, 231, 236, 242, 229, 234, 240, 227, 232, 238, 228, 233, 239, 227, 232, 238, 223, 228, 234, 225, 230, 236, 226, 231, 237, 227, 232, 238, 228, 233, 239, 228, 233, 239, 228, 233, 239, 228, 233, 239, 227, 232, 238, 227, 230, 235, 223, 227, 230, 221, 222, 226, 218, 219, 223, 217, 218, 222, 216, 217, 221, 213, 214, 218, 211, 212, 214, 208, 208, 210, 210, 210, 212, 211, 211, 213, 209, 209, 209, 203, 203, 203, 198, 198, 198, 197, 195, 196, 196, 195, 193, 202, 198, 195, 200, 197, 192, 196, 193, 188, 195, 192, 187, 194, 191, 186, 193, 190, 185, 190, 187, 182, 187, 184, 179, 191, 188, 183, 190, 187, 182, 194, 191, 186, 190, 187, 182, 182, 179, 174, 185, 182, 177, 190, 187, 182, 183, 180, 175, 182, 175, 169, 189, 182, 176, 187, 180, 174, 184, 177, 171, 189, 182, 176, 188, 181, 175, 187, 180, 174, 195, 188, 182, 195, 188, 182, 184, 177, 171, 173, 166, 160, 175, 168, 162, 187, 180, 174, 199, 192, 186, 203, 196, 190, 202, 195, 189, 189, 184, 180, 183, 178, 174, 182, 177, 173, 186, 181, 177, 190, 185, 181, 191, 186, 182, 193, 188, 184, 197, 192, 188, 195, 190, 186, 183, 178, 174, 174, 169, 165, 174, 169, 165, 179, 174, 170, 183, 178, 174, 189, 184, 180, 193, 190, 185, 184, 180, 179, 182, 181, 179, 190, 186, 183, 188, 184, 181, 182, 177, 173, 187, 182, 178, 192, 187, 183, 185, 180, 176, 183, 178, 174, 177, 172, 168, 177, 172, 168, 178, 173, 169, 177, 173, 170, 182, 178, 175, 178, 177, 175, 164, 163, 161, 173, 169, 166, 179, 175, 172, 182, 177, 173, 175, 170, 166, 170, 165, 161, 170, 165, 161, 171, 166, 162, 171, 166, 162, 165, 158, 152, 168, 161, 155, 160, 153, 147, 149, 142, 136, 147, 140, 134, 143, 136, 130, 145, 136, 129, 154, 145, 138, 147, 137, 128, 159, 146, 138, 150, 137, 129, 141, 128, 120, 139, 126, 118, 135, 122, 114, 133, 120, 114, 133, 120, 114, 138, 125, 119, 147, 134, 128, 132, 119, 113, 127, 114, 108, 127, 113, 110, 115, 101, 98, 109, 95, 92, 97, 86, 82, 74, 65, 58, 110, 103, 95, 115, 106, 99, 110, 101, 94, 110, 99, 95, 105, 94, 90, 104, 90, 87, 90, 76, 73, 96, 82, 79, 98, 84, 81, 111, 100, 98, 111, 100, 98, 95, 85, 83, 107, 97, 95, 121, 113, 110, 112, 103, 98, 113, 103, 94, 91, 78, 69, 128, 118, 109, 87, 77, 68, 97, 88, 81, 117, 108, 101, 87, 80, 74, 99, 92, 86, 77, 69, 66, 146, 138, 135, 119, 112, 106, 68, 61, 55, 82, 73, 68, 66, 57, 52, 84, 75, 68, 83, 74, 67, 70, 61, 56, 44, 35, 30, 67, 58, 53, 65, 56, 51, 80, 71, 66, 63, 54, 49, 64, 55, 50, 61, 52, 47, 53, 42, 38, 77, 66, 62, 80, 69, 65, 74, 63, 59, 75, 61, 58, 78, 64, 61, 87, 73, 70, 95, 81, 78, 88, 77, 73, 82, 71, 67, 109, 95, 92, 116, 102, 99, 110, 96, 93, 107, 93, 90, 89, 75, 72, 85, 71, 68, 101, 86, 83, 104, 89, 86, 104, 89, 86, 100, 85, 82, 99, 84, 81, 102, 87, 84, 107, 89, 87, 108, 90, 86, 100, 85, 80, 99, 84, 77, 101, 84, 77, 87, 70, 63, 74, 55, 51, 88, 67, 64, 121, 97, 95, 136, 112, 110, 109, 85, 85, 109, 88, 87, 101, 81, 80, 82, 64, 62, 66, 51, 48, 74, 60, 57, 103, 92, 88, 129, 120, 115, 135, 127, 124, 125, 120, 116, 104, 94, 92, 67, 56, 54, 55, 41, 40, 77, 61, 61, 85, 67, 67, 64, 46, 46, 37, 19, 19, 48, 30, 30, 63, 45, 45, 60, 42, 42, 50, 34, 34, 68, 54, 53, 87, 73, 72, 79, 67, 67, 95, 86, 89, 111, 105, 109, 121, 115, 119, 115, 109, 113, 110, 104, 108, 109, 104, 108, 102, 97, 101, 90, 85, 89, 108, 103, 107, 102, 100, 101, 100, 98, 99, 101, 99, 100, 97, 95, 96, 89, 88, 86, 86, 85, 83, 90, 86, 85, 104, 96, 94, 82, 72, 71, 76, 66, 65, 84, 74, 73, 84, 73, 71, 76, 65, 63, 68, 54, 53, 55, 41, 40, 59, 43, 43, 44, 28, 28, 36, 18, 16, 37, 17, 16, 39, 18, 17, 38, 17, 16, 45, 24, 23, 57, 33, 33, 61, 35, 34, 64, 36, 32, 67, 38, 32, 71, 42, 34, 77, 47, 39, 80, 52, 41, 85, 56, 48, 84, 59, 52, 93, 68, 63, 98, 73, 68, 106, 78, 74, 108, 78, 70, 106, 69, 60, 99, 57, 43, 93, 46, 30, 89, 40, 25, 86, 38, 24, 78, 32, 19, 69, 25, 14, 59, 19, 9, 49, 12, 3, 40, 6, 0, 41, 7, 0, 47, 13, 1, 54, 18, 4, 58, 21, 5, 70, 31, 16, 91, 49, 35, 108, 66, 54, 121, 79, 67, 133, 93, 85, 144, 104, 94, 140, 102, 89, 128, 92, 78, 124, 90, 78, 136, 104, 93, 146, 117, 111, 147, 122, 117, 147, 126, 123, 149, 134, 131, 164, 153, 151, 177, 167, 166, 188, 178, 176, 190, 179, 177, 190, 175, 172, 193, 174, 170, 198, 174, 172, 202, 173, 165, 205, 166, 151, 207, 168, 151, 200, 172, 158, 197, 180, 170, 206, 198, 195, 222, 222, 222, 237, 238, 242, 240, 243, 248, 239, 244, 248, 239, 244, 248, 237, 245, 247, 237, 245, 247, 238, 246, 249, 238, 246, 249, 242, 245, 254, 242, 245, 252, 242, 245, 252, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 248, 253, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 238, 238, 246, 238, 238, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 231, 238, 244, 231, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 228, 233, 239, 228, 233, 239, 228, 232, 241, 225, 229, 241, 224, 228, 240, 222, 229, 239, 223, 230, 238, 225, 232, 240, 224, 232, 235, 221, 226, 229, 216, 222, 222, 198, 200, 199, 165, 165, 163, 143, 139, 136, 143, 138, 134, 143, 133, 131, 117, 106, 102, 88, 73, 70, 73, 55, 53, 72, 52, 51, 76, 56, 55, 84, 63, 62, 87, 66, 65, 85, 61, 61, 79, 53, 54, 82, 53, 55, 89, 60, 62, 103, 73, 73, 100, 70, 70, 95, 65, 65, 88, 58, 58, 83, 53, 51, 81, 51, 49, 81, 53, 50, 83, 55, 51, 84, 55, 49, 68, 39, 31, 70, 39, 34, 89, 60, 54, 97, 68, 64, 90, 60, 58, 93, 65, 64, 107, 78, 80, 134, 108, 109, 129, 103, 104, 117, 91, 92, 99, 75, 73, 87, 63, 61, 88, 64, 60, 101, 77, 73, 113, 89, 85, 118, 94, 94, 117, 92, 95, 115, 89, 92, 113, 87, 90, 111, 85, 86, 111, 85, 86, 112, 86, 87, 113, 87, 88, 120, 94, 95, 114, 88, 89, 106, 78, 77, 97, 69, 68, 95, 65, 65, 101, 71, 71, 110, 80, 80, 118, 88, 88, 112, 82, 84, 109, 80, 82, 108, 79, 81, 107, 81, 82, 110, 84, 85, 115, 91, 91, 119, 97, 99, 122, 102, 103, 129, 109, 110, 132, 112, 113, 135, 115, 116, 132, 112, 114, 129, 109, 111, 129, 109, 111, 136, 116, 118, 143, 123, 125, 138, 119, 123, 140, 124, 127, 141, 125, 128, 139, 123, 126, 140, 124, 127, 144, 128, 131, 144, 128, 131, 140, 124, 127, 130, 114, 117, 129, 113, 116, 129, 113, 116, 128, 112, 115, 127, 111, 114, 126, 110, 113, 125, 109, 112, 125, 109, 112, 142, 126, 127, 139, 123, 123, 140, 122, 122, 143, 125, 125, 146, 126, 127, 146, 124, 126, 143, 121, 123, 143, 118, 121, 139, 114, 117, 134, 112, 114, 130, 108, 110, 125, 105, 106, 123, 105, 105, 128, 110, 110, 134, 118, 118, 140, 126, 125, 146, 135, 133, 145, 135, 133, 148, 137, 135, 144, 134, 132, 133, 122, 120, 121, 110, 108, 126, 115, 113, 140, 129, 127, 139, 125, 124, 140, 126, 125, 142, 128, 127, 140, 126, 125, 130, 114, 114, 118, 104, 103, 118, 102, 102, 123, 107, 107, 108, 90, 88, 104, 85, 81, 98, 79, 75, 96, 77, 73, 97, 79, 75, 101, 83, 79, 102, 84, 80, 102, 84, 80, 98, 80, 76, 100, 82, 78, 98, 80, 76, 93, 75, 71, 90, 75, 70, 88, 73, 68, 77, 62, 57, 63, 48, 43, 62, 44, 42, 61, 43, 41, 62, 47, 44, 67, 52, 49, 71, 55, 55, 79, 63, 63, 86, 72, 71, 88, 74, 73, 82, 71, 69, 71, 60, 58, 61, 51, 50, 57, 47, 46, 54, 44, 43, 57, 47, 46, 65, 55, 54, 70, 60, 59, 84, 74, 75, 82, 73, 74, 93, 84, 85, 100, 91, 92, 109, 100, 101, 147, 138, 139, 180, 171, 172, 179, 173, 173, 186, 180, 180, 188, 184, 183, 190, 186, 185, 188, 187, 185, 187, 186, 184, 186, 185, 183, 187, 186, 184, 188, 187, 185, 189, 188, 186, 189, 188, 186, 190, 189, 187, 191, 190, 188, 191, 190, 188, 192, 191, 189, 193, 192, 190, 193, 192, 190, 196, 195, 193, 196, 195, 193, 197, 196, 194, 198, 197, 195, 199, 198, 196, 201, 200, 198, 201, 200, 198, 202, 200, 201, 202, 202, 204, 202, 203, 205, 204, 203, 208, 205, 206, 208, 207, 206, 211, 206, 207, 209, 207, 206, 211, 206, 207, 209, 211, 210, 215, 206, 207, 209, 205, 204, 209, 208, 209, 211, 216, 215, 220, 219, 220, 222, 218, 217, 222, 214, 215, 219, 217, 220, 225, 225, 230, 236, 231, 236, 242, 230, 235, 241, 226, 231, 237, 226, 231, 237, 224, 229, 235, 221, 226, 232, 223, 228, 234, 224, 229, 235, 226, 231, 237, 227, 232, 238, 228, 233, 239, 227, 232, 238, 226, 231, 237, 225, 230, 234, 221, 225, 228, 218, 222, 225, 215, 216, 220, 212, 213, 215, 210, 211, 215, 208, 209, 211, 205, 206, 208, 203, 204, 206, 201, 201, 203, 203, 203, 203, 204, 204, 204, 203, 203, 203, 201, 201, 201, 197, 197, 197, 196, 194, 195, 194, 193, 191, 200, 196, 193, 197, 194, 189, 193, 190, 185, 191, 188, 183, 190, 187, 182, 188, 185, 180, 185, 182, 177, 182, 179, 174, 189, 186, 181, 189, 186, 181, 195, 192, 187, 192, 189, 184, 183, 180, 175, 185, 182, 177, 189, 186, 181, 182, 177, 173, 183, 176, 170, 187, 180, 174, 182, 175, 169, 179, 172, 166, 186, 179, 173, 187, 180, 174, 188, 181, 175, 196, 189, 183, 193, 186, 180, 185, 178, 172, 178, 171, 165, 180, 173, 167, 189, 182, 176, 198, 191, 185, 202, 195, 189, 202, 195, 189, 187, 182, 178, 182, 177, 173, 180, 175, 171, 184, 179, 175, 188, 183, 179, 188, 183, 179, 190, 185, 181, 194, 189, 185, 193, 188, 184, 180, 175, 171, 169, 164, 160, 168, 163, 159, 173, 168, 164, 178, 173, 169, 184, 179, 175, 189, 186, 181, 185, 181, 180, 181, 180, 178, 187, 183, 180, 186, 182, 179, 179, 174, 170, 181, 176, 172, 186, 181, 177, 182, 177, 173, 184, 179, 175, 176, 171, 167, 171, 166, 162, 171, 166, 162, 177, 173, 170, 184, 180, 177, 176, 175, 173, 163, 162, 160, 168, 164, 161, 175, 171, 168, 178, 173, 169, 172, 167, 163, 166, 161, 157, 167, 162, 158, 169, 164, 160, 170, 165, 161, 162, 155, 149, 164, 157, 151, 160, 153, 147, 151, 144, 138, 141, 134, 128, 135, 128, 122, 141, 132, 125, 153, 144, 137, 143, 133, 124, 154, 141, 133, 145, 132, 124, 145, 132, 124, 141, 128, 120, 133, 120, 112, 137, 124, 118, 133, 120, 114, 136, 123, 117, 147, 134, 128, 128, 115, 109, 113, 100, 94, 118, 104, 101, 111, 97, 94, 103, 89, 86, 107, 96, 92, 91, 82, 75, 109, 102, 94, 111, 102, 95, 106, 97, 90, 109, 98, 94, 105, 94, 90, 100, 86, 83, 94, 80, 77, 84, 70, 67, 89, 75, 72, 107, 96, 94, 106, 95, 93, 90, 80, 78, 110, 100, 98, 129, 121, 118, 115, 106, 101, 108, 98, 89, 97, 84, 75, 119, 109, 100, 92, 82, 73, 97, 88, 81, 116, 107, 100, 88, 81, 75, 88, 81, 75, 80, 72, 69, 156, 148, 145, 83, 76, 70, 40, 33, 27, 80, 71, 66, 75, 66, 61, 86, 77, 70, 80, 71, 64, 74, 65, 60, 46, 37, 32, 61, 52, 47, 62, 53, 48, 77, 68, 63, 56, 47, 42, 63, 54, 49, 60, 51, 46, 48, 37, 33, 81, 70, 66, 80, 69, 65, 72, 61, 57, 76, 62, 59, 82, 68, 65, 94, 80, 77, 92, 78, 75, 84, 73, 69, 77, 66, 62, 103, 89, 86, 108, 94, 91, 101, 87, 84, 99, 85, 82, 84, 70, 67, 83, 69, 66, 98, 83, 80, 107, 92, 89, 104, 89, 86, 91, 76, 73, 89, 74, 71, 98, 83, 80, 104, 86, 84, 99, 81, 79, 83, 64, 60, 93, 74, 68, 101, 82, 76, 94, 73, 68, 86, 65, 62, 103, 82, 79, 122, 101, 98, 121, 100, 97, 98, 77, 76, 112, 92, 91, 104, 86, 84, 76, 61, 58, 74, 60, 57, 107, 96, 92, 139, 130, 125, 149, 140, 135, 115, 106, 99, 81, 70, 64, 66, 55, 49, 76, 63, 57, 77, 62, 59, 70, 55, 52, 71, 53, 53, 71, 53, 53, 45, 29, 29, 67, 51, 52, 53, 39, 39, 41, 29, 31, 66, 56, 57, 68, 59, 60, 57, 48, 51, 69, 63, 65, 85, 80, 84, 98, 96, 99, 108, 106, 109, 111, 106, 110, 117, 112, 116, 129, 125, 126, 130, 125, 129, 120, 116, 117, 119, 113, 115, 111, 105, 107, 103, 97, 99, 97, 91, 91, 95, 89, 89, 95, 89, 89, 98, 92, 92, 103, 94, 95, 87, 77, 76, 63, 53, 52, 54, 44, 43, 54, 44, 43, 44, 33, 31, 40, 29, 27, 58, 44, 43, 72, 58, 57, 66, 50, 50, 54, 36, 36, 43, 23, 22, 38, 18, 17, 36, 15, 14, 34, 13, 12, 37, 16, 15, 44, 23, 20, 58, 33, 29, 61, 36, 31, 69, 42, 35, 75, 46, 38, 80, 52, 41, 85, 57, 46, 90, 63, 54, 92, 68, 58, 96, 71, 64, 102, 77, 70, 110, 83, 76, 113, 83, 75, 110, 74, 62, 102, 60, 46, 93, 47, 31, 87, 40, 24, 84, 36, 24, 79, 32, 22, 73, 29, 20, 67, 27, 19, 56, 19, 10, 44, 10, 0, 41, 7, 0, 44, 10, 0, 55, 17, 6, 56, 18, 5, 68, 28, 16, 91, 49, 37, 112, 70, 58, 125, 85, 75, 137, 97, 89, 144, 106, 97, 132, 98, 86, 122, 90, 77, 120, 90, 80, 132, 103, 95, 142, 114, 110, 142, 118, 114, 143, 123, 122, 147, 131, 131, 169, 157, 157, 181, 171, 170, 192, 182, 180, 197, 183, 180, 198, 180, 176, 200, 179, 174, 202, 177, 172, 204, 174, 166, 202, 163, 148, 205, 166, 149, 201, 173, 161, 200, 183, 173, 210, 202, 199, 225, 225, 225, 238, 239, 243, 240, 243, 248, 239, 244, 248, 239, 244, 247, 237, 245, 247, 237, 246, 245, 238, 246, 249, 238, 246, 249, 242, 245, 254, 242, 245, 252, 242, 245, 252, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 238, 238, 246, 238, 238, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 231, 238, 244, 231, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 228, 233, 239, 228, 232, 241, 224, 228, 239, 224, 228, 240, 222, 229, 239, 224, 231, 239, 225, 232, 240, 224, 232, 235, 223, 228, 231, 221, 227, 227, 208, 210, 209, 180, 180, 178, 159, 158, 154, 159, 154, 150, 154, 144, 142, 127, 116, 114, 102, 87, 84, 91, 73, 71, 84, 64, 65, 90, 70, 71, 96, 74, 76, 94, 72, 74, 84, 60, 60, 77, 51, 52, 86, 57, 59, 99, 70, 72, 111, 81, 81, 102, 72, 72, 92, 62, 62, 88, 58, 58, 88, 60, 59, 89, 61, 60, 86, 58, 57, 82, 54, 51, 74, 47, 40, 80, 53, 44, 87, 58, 52, 86, 59, 52, 83, 55, 51, 92, 64, 61, 119, 91, 88, 146, 118, 117, 113, 85, 84, 98, 70, 69, 81, 53, 52, 74, 48, 47, 82, 56, 55, 96, 71, 67, 105, 80, 76, 111, 83, 80, 110, 81, 83, 109, 79, 81, 106, 77, 79, 105, 76, 78, 106, 77, 79, 108, 79, 81, 111, 82, 84, 113, 84, 86, 96, 67, 69, 87, 58, 60, 79, 51, 50, 79, 51, 50, 90, 62, 61, 104, 76, 75, 113, 85, 84, 117, 89, 88, 100, 71, 73, 99, 73, 76, 101, 75, 78, 105, 80, 83, 111, 89, 91, 119, 99, 100, 127, 107, 109, 131, 112, 114, 134, 115, 117, 131, 112, 114, 129, 110, 112, 128, 109, 113, 130, 111, 115, 133, 114, 118, 135, 116, 120, 136, 117, 121, 135, 119, 122, 140, 124, 127, 143, 127, 130, 141, 125, 128, 141, 125, 128, 141, 125, 128, 137, 121, 124, 131, 115, 118, 133, 117, 120, 132, 116, 119, 131, 115, 118, 132, 116, 119, 134, 118, 121, 136, 120, 123, 139, 123, 126, 141, 125, 128, 147, 131, 132, 147, 131, 132, 146, 130, 131, 145, 129, 130, 146, 127, 129, 146, 127, 129, 143, 124, 126, 139, 120, 122, 138, 119, 121, 135, 116, 118, 133, 114, 116, 137, 118, 120, 142, 126, 127, 146, 130, 131, 145, 129, 130, 142, 128, 128, 137, 127, 126, 125, 117, 115, 129, 119, 118, 148, 140, 138, 165, 155, 154, 162, 152, 151, 156, 146, 145, 156, 146, 145, 131, 119, 119, 122, 110, 110, 115, 103, 103, 112, 100, 100, 109, 95, 95, 101, 89, 89, 101, 87, 87, 102, 88, 87, 93, 75, 73, 92, 74, 72, 92, 74, 72, 94, 76, 74, 97, 79, 77, 100, 82, 80, 101, 83, 81, 100, 82, 80, 92, 74, 72, 92, 74, 72, 91, 73, 71, 92, 74, 72, 97, 79, 77, 99, 81, 79, 95, 77, 75, 88, 70, 68, 76, 58, 56, 77, 59, 57, 73, 55, 53, 71, 53, 51, 69, 54, 51, 69, 54, 51, 68, 54, 53, 70, 56, 55, 63, 52, 50, 73, 62, 60, 69, 58, 56, 53, 42, 40, 47, 37, 36, 55, 45, 44, 61, 51, 50, 61, 51, 50, 76, 66, 67, 79, 69, 70, 97, 87, 88, 105, 95, 96, 96, 86, 87, 108, 99, 100, 150, 141, 142, 180, 174, 174, 180, 174, 174, 184, 180, 179, 189, 185, 184, 191, 187, 186, 190, 186, 185, 188, 184, 183, 187, 183, 182, 185, 184, 182, 188, 187, 185, 188, 187, 185, 189, 188, 186, 189, 188, 186, 190, 189, 187, 191, 190, 188, 191, 190, 188, 192, 191, 189, 194, 193, 191, 194, 193, 191, 195, 194, 192, 196, 195, 193, 198, 197, 195, 199, 198, 196, 200, 199, 197, 200, 199, 197, 201, 199, 200, 200, 200, 200, 203, 201, 204, 203, 203, 203, 205, 203, 206, 204, 204, 204, 204, 202, 205, 203, 203, 203, 204, 202, 205, 201, 201, 201, 201, 199, 202, 203, 203, 203, 210, 208, 211, 212, 212, 212, 212, 210, 213, 209, 209, 211, 212, 215, 220, 222, 227, 231, 231, 236, 240, 230, 235, 239, 225, 230, 234, 223, 228, 232, 221, 226, 230, 218, 223, 227, 219, 224, 228, 221, 226, 230, 224, 229, 233, 226, 231, 235, 226, 231, 235, 225, 230, 234, 223, 228, 232, 222, 227, 231, 216, 220, 223, 214, 215, 217, 209, 210, 212, 206, 208, 207, 204, 205, 207, 203, 205, 204, 201, 201, 201, 198, 198, 198, 199, 199, 199, 199, 199, 197, 201, 200, 198, 201, 200, 198, 201, 200, 198, 199, 198, 196, 196, 195, 193, 193, 192, 188, 197, 194, 189, 195, 190, 186, 191, 186, 182, 189, 184, 180, 188, 183, 179, 186, 181, 177, 182, 177, 173, 179, 174, 170, 189, 184, 180, 190, 185, 181, 198, 193, 189, 196, 191, 187, 188, 183, 179, 189, 184, 180, 191, 186, 182, 182, 177, 173, 183, 176, 170, 186, 179, 173, 179, 172, 166, 176, 169, 163, 184, 177, 171, 186, 179, 173, 187, 180, 174, 195, 188, 182, 192, 185, 179, 188, 181, 175, 184, 177, 171, 185, 178, 172, 191, 184, 178, 198, 191, 185, 202, 195, 189, 204, 197, 191, 187, 182, 178, 181, 176, 172, 179, 174, 170, 183, 178, 174, 186, 181, 177, 186, 181, 177, 188, 183, 179, 191, 186, 182, 190, 185, 181, 177, 172, 168, 165, 160, 156, 164, 159, 155, 168, 163, 159, 173, 168, 164, 179, 174, 170, 184, 181, 176, 187, 183, 182, 179, 178, 176, 184, 180, 177, 184, 180, 177, 176, 171, 167, 175, 170, 166, 182, 175, 169, 181, 174, 168, 185, 178, 172, 178, 171, 165, 165, 160, 156, 164, 159, 155, 175, 171, 168, 183, 179, 176, 174, 173, 171, 164, 163, 161, 163, 159, 156, 170, 165, 161, 172, 167, 163, 167, 162, 158, 163, 158, 154, 165, 160, 156, 169, 162, 156, 168, 161, 155, 159, 152, 146, 156, 149, 143, 156, 149, 143, 151, 144, 138, 138, 129, 122, 130, 121, 114, 140, 131, 124, 153, 144, 137, 144, 134, 125, 151, 141, 132, 140, 130, 121, 147, 137, 128, 140, 130, 121, 127, 117, 108, 139, 128, 122, 130, 119, 113, 128, 117, 111, 136, 125, 119, 122, 111, 107, 104, 93, 89, 111, 100, 96, 108, 97, 93, 97, 86, 82, 108, 97, 93, 109, 100, 93, 104, 97, 89, 102, 93, 86, 104, 95, 88, 109, 98, 94, 98, 87, 83, 87, 73, 70, 95, 81, 78, 86, 72, 69, 89, 75, 72, 105, 94, 92, 100, 89, 87, 83, 73, 71, 110, 100, 98, 127, 119, 116, 99, 90, 85, 89, 79, 70, 106, 93, 84, 98, 88, 79, 97, 87, 78, 94, 85, 78, 100, 91, 86, 90, 82, 79, 69, 61, 58, 99, 91, 88, 149, 141, 138, 55, 47, 44, 33, 25, 22, 86, 77, 72, 89, 80, 75, 91, 82, 77, 87, 78, 73, 82, 73, 68, 48, 39, 34, 52, 43, 38, 59, 50, 45, 78, 69, 64, 53, 44, 39, 62, 53, 48, 54, 45, 40, 58, 47, 43, 94, 83, 79, 85, 74, 70, 76, 65, 61, 77, 63, 60, 79, 65, 62, 91, 77, 74, 79, 65, 62, 75, 64, 60, 68, 57, 53, 94, 80, 77, 98, 84, 81, 91, 77, 74, 91, 77, 74, 81, 67, 64, 84, 70, 67, 96, 81, 78, 107, 92, 89, 104, 89, 86, 87, 72, 69, 81, 66, 63, 90, 75, 72, 92, 74, 72, 83, 63, 62, 75, 54, 51, 90, 66, 64, 103, 79, 77, 98, 77, 74, 95, 74, 71, 113, 92, 89, 123, 102, 99, 110, 91, 87, 110, 92, 90, 86, 71, 68, 67, 53, 50, 79, 68, 64, 123, 112, 110, 150, 140, 138, 127, 117, 115, 86, 77, 72, 83, 70, 62, 77, 63, 54, 73, 58, 51, 69, 54, 47, 74, 56, 52, 88, 70, 68, 84, 68, 68, 63, 47, 47, 53, 39, 39, 73, 61, 63, 66, 55, 59, 63, 54, 59, 79, 73, 77, 71, 66, 72, 73, 68, 75, 110, 108, 113, 123, 123, 125, 116, 116, 116, 110, 110, 110, 112, 110, 111, 116, 114, 115, 117, 113, 112, 114, 110, 111, 112, 106, 106, 98, 89, 90, 103, 94, 95, 109, 99, 100, 110, 100, 99, 107, 95, 95, 100, 88, 88, 91, 79, 79, 84, 72, 72, 81, 71, 70, 60, 50, 49, 51, 39, 39, 44, 32, 32, 27, 16, 14, 24, 13, 11, 51, 37, 36, 76, 60, 60, 56, 38, 38, 50, 32, 32, 48, 28, 27, 51, 31, 30, 59, 38, 37, 65, 44, 43, 73, 52, 51, 79, 58, 55, 96, 71, 67, 96, 71, 66, 95, 68, 61, 90, 63, 54, 85, 58, 47, 84, 57, 46, 86, 59, 50, 88, 64, 54, 100, 75, 68, 105, 80, 73, 113, 86, 79, 115, 85, 75, 112, 76, 64, 102, 63, 48, 93, 50, 34, 88, 42, 26, 80, 34, 21, 78, 34, 23, 79, 36, 27, 77, 39, 30, 68, 31, 23, 53, 19, 10, 46, 12, 3, 46, 12, 2, 60, 22, 11, 58, 20, 7, 69, 29, 17, 91, 51, 39, 114, 74, 64, 128, 90, 81, 136, 98, 89, 138, 104, 95, 127, 97, 87, 123, 95, 84, 125, 98, 91, 131, 106, 101, 131, 107, 103, 126, 106, 105, 132, 116, 116, 145, 131, 131, 173, 161, 161, 183, 173, 171, 194, 183, 179, 198, 183, 178, 201, 181, 174, 203, 178, 171, 204, 175, 167, 204, 170, 160, 198, 159, 144, 202, 165, 147, 201, 175, 162, 202, 188, 179, 212, 207, 204, 227, 228, 230, 237, 240, 245, 238, 243, 249, 239, 244, 248, 239, 244, 247, 237, 245, 247, 237, 246, 245, 238, 246, 249, 238, 246, 249, 242, 245, 254, 242, 245, 252, 242, 245, 252, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 238, 238, 246, 238, 238, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 231, 238, 244, 231, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 233, 242, 224, 228, 239, 225, 229, 240, 223, 230, 240, 223, 230, 238, 223, 230, 238, 222, 229, 235, 223, 228, 232, 223, 228, 231, 215, 219, 220, 189, 191, 190, 164, 163, 161, 152, 148, 145, 143, 135, 132, 124, 114, 112, 110, 96, 93, 103, 88, 85, 92, 74, 74, 92, 72, 73, 90, 68, 70, 83, 61, 63, 74, 50, 50, 72, 48, 48, 86, 60, 61, 104, 75, 77, 109, 79, 79, 102, 72, 72, 97, 67, 67, 99, 69, 69, 100, 72, 71, 96, 68, 67, 83, 55, 54, 72, 44, 41, 78, 51, 44, 92, 68, 58, 95, 68, 61, 87, 60, 53, 100, 72, 68, 128, 100, 96, 131, 103, 100, 111, 83, 80, 77, 49, 46, 70, 42, 39, 69, 41, 40, 80, 52, 49, 97, 69, 66, 106, 78, 74, 101, 72, 68, 91, 62, 58, 88, 56, 57, 91, 59, 62, 95, 65, 67, 99, 69, 71, 102, 72, 74, 103, 73, 75, 102, 72, 74, 100, 71, 73, 99, 70, 72, 92, 66, 67, 90, 64, 63, 97, 71, 70, 109, 83, 82, 115, 89, 88, 113, 87, 86, 107, 81, 82, 111, 85, 88, 112, 87, 90, 117, 92, 95, 122, 100, 102, 128, 108, 109, 135, 117, 117, 142, 123, 125, 143, 127, 128, 137, 121, 122, 132, 118, 118, 130, 114, 117, 130, 115, 118, 136, 120, 123, 138, 122, 125, 137, 121, 124, 135, 119, 122, 135, 119, 122, 141, 125, 128, 143, 127, 130, 141, 125, 128, 140, 124, 127, 140, 124, 127, 135, 119, 122, 128, 112, 115, 146, 130, 133, 143, 127, 130, 140, 124, 127, 138, 122, 125, 138, 122, 125, 141, 125, 128, 144, 128, 131, 146, 130, 133, 139, 123, 124, 143, 127, 128, 143, 127, 128, 139, 125, 125, 138, 124, 124, 140, 126, 126, 139, 125, 125, 135, 121, 121, 149, 135, 135, 148, 134, 134, 147, 133, 133, 144, 130, 130, 143, 129, 129, 144, 128, 129, 146, 130, 131, 148, 134, 134, 152, 142, 141, 145, 137, 135, 149, 141, 139, 159, 151, 149, 161, 153, 151, 151, 143, 141, 146, 136, 135, 147, 137, 136, 120, 110, 109, 110, 100, 99, 103, 91, 91, 104, 92, 92, 105, 93, 93, 103, 91, 91, 102, 90, 90, 106, 92, 91, 104, 88, 88, 110, 92, 90, 114, 96, 94, 116, 98, 96, 112, 94, 92, 104, 86, 84, 95, 77, 75, 89, 71, 69, 90, 72, 70, 88, 70, 68, 87, 69, 67, 87, 69, 67, 89, 71, 69, 89, 71, 69, 88, 70, 68, 87, 69, 67, 80, 62, 60, 77, 59, 57, 62, 44, 42, 50, 32, 30, 49, 34, 31, 49, 34, 31, 50, 36, 35, 59, 45, 44, 52, 38, 37, 76, 65, 63, 82, 71, 69, 67, 56, 54, 65, 55, 54, 73, 63, 62, 74, 64, 63, 72, 62, 61, 71, 59, 61, 96, 84, 86, 94, 82, 84, 93, 83, 84, 104, 94, 95, 84, 74, 75, 99, 89, 90, 168, 159, 160, 174, 165, 166, 179, 173, 173, 187, 181, 181, 191, 187, 186, 192, 188, 187, 189, 185, 184, 187, 183, 182, 185, 181, 180, 188, 184, 183, 186, 185, 183, 187, 186, 184, 188, 187, 185, 188, 187, 185, 189, 188, 186, 190, 189, 187, 190, 189, 187, 192, 191, 189, 192, 191, 189, 193, 192, 190, 194, 193, 191, 196, 195, 193, 197, 196, 194, 198, 197, 195, 198, 197, 195, 199, 198, 196, 200, 199, 197, 201, 199, 200, 202, 201, 199, 202, 200, 201, 202, 201, 199, 201, 199, 200, 201, 200, 198, 199, 197, 198, 198, 197, 195, 198, 196, 197, 200, 199, 197, 203, 201, 202, 206, 205, 203, 205, 203, 204, 203, 203, 203, 205, 209, 212, 217, 222, 226, 229, 234, 238, 228, 233, 237, 222, 227, 231, 218, 223, 227, 215, 220, 224, 213, 218, 222, 214, 219, 223, 216, 221, 225, 220, 225, 229, 222, 227, 231, 223, 228, 232, 221, 226, 230, 218, 223, 227, 217, 221, 224, 212, 213, 215, 208, 210, 209, 204, 206, 205, 202, 204, 203, 201, 203, 202, 199, 201, 200, 198, 198, 198, 196, 196, 194, 199, 199, 197, 198, 198, 196, 198, 197, 195, 199, 198, 194, 200, 199, 197, 199, 198, 194, 195, 194, 190, 193, 189, 186, 194, 189, 185, 191, 186, 182, 188, 183, 179, 186, 181, 177, 186, 181, 177, 184, 179, 175, 181, 176, 172, 178, 173, 169, 186, 181, 177, 189, 184, 180, 198, 193, 189, 199, 194, 190, 191, 186, 182, 192, 187, 183, 193, 188, 184, 183, 178, 174, 183, 176, 170, 185, 178, 172, 177, 170, 164, 175, 168, 162, 184, 177, 171, 186, 179, 173, 184, 177, 171, 190, 183, 177, 189, 182, 176, 188, 181, 175, 188, 181, 175, 189, 182, 176, 191, 184, 178, 196, 189, 183, 200, 193, 187, 203, 196, 190, 187, 182, 178, 181, 176, 172, 178, 173, 169, 182, 177, 173, 185, 180, 176, 185, 180, 176, 186, 181, 177, 190, 185, 181, 187, 182, 178, 175, 170, 166, 164, 159, 155, 164, 159, 155, 168, 163, 159, 171, 166, 162, 176, 171, 167, 181, 176, 172, 189, 185, 182, 178, 177, 175, 181, 177, 174, 182, 178, 175, 173, 168, 164, 169, 164, 160, 177, 170, 164, 178, 171, 165, 182, 175, 169, 178, 171, 165, 163, 158, 154, 159, 154, 150, 173, 169, 166, 180, 176, 173, 171, 170, 168, 168, 164, 161, 161, 156, 152, 163, 158, 154, 163, 158, 154, 160, 155, 151, 161, 156, 152, 164, 159, 155, 166, 159, 153, 163, 156, 150, 160, 153, 147, 151, 144, 138, 152, 145, 139, 150, 143, 137, 135, 126, 119, 126, 117, 110, 137, 128, 121, 148, 139, 132, 149, 139, 130, 152, 142, 133, 136, 126, 117, 147, 137, 128, 136, 126, 117, 119, 109, 100, 137, 126, 120, 126, 115, 109, 117, 106, 100, 117, 106, 100, 116, 105, 101, 103, 92, 88, 107, 96, 92, 110, 99, 95, 95, 84, 80, 97, 88, 83, 113, 104, 97, 95, 88, 80, 95, 86, 79, 103, 94, 87, 111, 100, 96, 96, 85, 81, 74, 60, 57, 86, 72, 69, 98, 84, 81, 92, 78, 75, 100, 89, 87, 91, 80, 78, 75, 65, 63, 106, 96, 94, 115, 107, 104, 69, 60, 55, 71, 61, 52, 103, 90, 81, 83, 73, 64, 94, 83, 77, 83, 74, 69, 91, 82, 77, 89, 81, 78, 63, 55, 52, 127, 119, 116, 128, 120, 117, 43, 35, 32, 49, 41, 38, 88, 79, 74, 95, 86, 81, 88, 79, 74, 98, 89, 84, 80, 71, 66, 46, 37, 32, 44, 35, 30, 57, 48, 43, 77, 68, 63, 48, 39, 34, 61, 52, 47, 51, 42, 37, 59, 48, 44, 96, 85, 81, 83, 72, 68, 80, 69, 65, 83, 69, 66, 80, 66, 63, 96, 82, 79, 80, 66, 63, 65, 54, 50, 59, 48, 44, 85, 71, 68, 89, 75, 72, 83, 69, 66, 86, 72, 69, 81, 67, 64, 88, 74, 71, 96, 81, 78, 105, 90, 87, 102, 87, 84, 85, 70, 67, 77, 62, 59, 80, 65, 62, 80, 62, 60, 71, 51, 50, 85, 61, 59, 91, 67, 65, 99, 75, 73, 95, 74, 71, 96, 75, 72, 113, 94, 90, 121, 102, 98, 107, 89, 85, 79, 64, 61, 76, 62, 59, 94, 83, 79, 131, 120, 116, 146, 136, 134, 125, 115, 113, 95, 85, 83, 81, 70, 66, 97, 82, 75, 95, 78, 70, 87, 70, 62, 71, 54, 47, 69, 51, 47, 85, 70, 67, 88, 72, 72, 67, 53, 53, 60, 48, 50, 48, 37, 41, 65, 56, 61, 93, 87, 91, 103, 98, 105, 115, 112, 119, 136, 135, 143, 147, 146, 152, 143, 143, 145, 122, 122, 120, 106, 106, 106, 102, 101, 99, 92, 91, 89, 76, 72, 71, 70, 64, 64, 77, 68, 69, 76, 66, 67, 91, 79, 79, 104, 92, 92, 109, 95, 95, 109, 95, 95, 110, 94, 95, 109, 93, 94, 105, 91, 91, 106, 94, 94, 88, 78, 77, 85, 73, 73, 86, 74, 74, 76, 65, 63, 73, 59, 58, 81, 65, 65, 85, 69, 69, 72, 54, 54, 68, 50, 50, 65, 45, 44, 64, 44, 43, 70, 49, 48, 77, 56, 55, 82, 61, 60, 86, 62, 60, 79, 55, 51, 81, 56, 51, 81, 53, 49, 77, 50, 43, 73, 46, 37, 75, 48, 39, 81, 57, 47, 89, 64, 57, 102, 77, 70, 109, 82, 75, 115, 86, 78, 117, 84, 75, 112, 76, 64, 103, 63, 51, 95, 51, 38, 92, 46, 33, 80, 33, 23, 80, 36, 27, 84, 41, 34, 85, 46, 39, 79, 42, 36, 65, 30, 24, 57, 22, 16, 57, 23, 14, 67, 30, 21, 64, 26, 15, 72, 32, 22, 94, 56, 45, 118, 80, 71, 132, 95, 87, 137, 100, 92, 135, 102, 95, 132, 105, 98, 130, 105, 98, 133, 109, 105, 132, 111, 108, 124, 104, 103, 118, 100, 100, 128, 114, 114, 147, 135, 135, 175, 163, 163, 183, 172, 170, 191, 178, 172, 194, 177, 170, 196, 173, 165, 200, 171, 163, 199, 166, 157, 197, 161, 149, 196, 154, 140, 200, 163, 147, 202, 175, 164, 205, 191, 182, 216, 211, 208, 230, 231, 233, 238, 241, 246, 238, 243, 249, 239, 244, 248, 239, 244, 247, 237, 245, 247, 237, 246, 245, 238, 246, 248, 240, 245, 249, 242, 245, 252, 242, 245, 252, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 238, 238, 246, 238, 238, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 231, 238, 244, 231, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 233, 242, 224, 228, 239, 225, 229, 240, 226, 230, 241, 225, 229, 238, 221, 228, 236, 220, 227, 233, 220, 228, 231, 223, 228, 231, 217, 221, 222, 194, 196, 195, 165, 164, 162, 146, 142, 139, 138, 130, 127, 126, 116, 114, 108, 97, 93, 94, 80, 77, 86, 68, 68, 80, 62, 62, 76, 56, 57, 78, 56, 58, 81, 56, 59, 82, 57, 60, 90, 64, 65, 98, 72, 73, 96, 67, 69, 96, 67, 69, 98, 70, 69, 100, 72, 71, 100, 72, 71, 94, 66, 65, 84, 56, 55, 76, 48, 45, 85, 60, 53, 90, 68, 57, 95, 70, 63, 104, 79, 72, 123, 98, 91, 128, 103, 96, 98, 70, 66, 57, 29, 25, 67, 38, 34, 71, 42, 38, 78, 48, 46, 86, 57, 53, 91, 62, 58, 89, 60, 54, 84, 53, 48, 78, 47, 44, 92, 60, 61, 95, 63, 64, 99, 69, 69, 103, 73, 73, 107, 77, 77, 109, 79, 79, 108, 80, 79, 106, 80, 79, 122, 96, 95, 123, 99, 97, 127, 103, 103, 134, 110, 110, 137, 116, 115, 137, 116, 115, 131, 110, 109, 126, 105, 104, 129, 107, 109, 132, 110, 113, 137, 115, 118, 140, 120, 122, 143, 124, 126, 144, 128, 129, 145, 129, 132, 144, 129, 132, 138, 123, 126, 138, 126, 128, 142, 127, 132, 141, 129, 133, 143, 128, 133, 143, 128, 133, 144, 129, 134, 145, 128, 134, 143, 127, 130, 147, 131, 134, 147, 131, 134, 144, 128, 131, 144, 128, 131, 147, 131, 134, 146, 130, 133, 142, 126, 129, 150, 134, 137, 146, 130, 133, 140, 124, 127, 135, 119, 122, 133, 117, 120, 134, 118, 121, 137, 121, 124, 139, 123, 126, 134, 119, 122, 142, 127, 130, 147, 132, 135, 143, 131, 133, 145, 133, 135, 152, 140, 142, 154, 144, 145, 150, 140, 141, 150, 140, 141, 151, 141, 142, 152, 140, 142, 151, 139, 141, 151, 139, 141, 157, 142, 145, 164, 149, 152, 168, 156, 158, 164, 154, 153, 165, 157, 155, 163, 155, 153, 151, 143, 141, 132, 124, 122, 119, 111, 109, 123, 113, 112, 133, 123, 122, 154, 144, 143, 149, 139, 138, 147, 135, 135, 144, 132, 132, 136, 124, 124, 126, 114, 114, 121, 109, 109, 124, 110, 109, 122, 106, 106, 124, 109, 106, 125, 110, 107, 122, 107, 104, 114, 99, 96, 105, 90, 87, 97, 82, 79, 93, 78, 75, 97, 82, 79, 96, 81, 78, 97, 79, 77, 95, 77, 75, 89, 71, 69, 81, 63, 61, 78, 60, 58, 79, 61, 59, 86, 68, 64, 90, 72, 68, 79, 61, 59, 69, 51, 49, 70, 55, 52, 64, 49, 46, 57, 42, 39, 63, 49, 46, 49, 35, 34, 68, 54, 53, 69, 58, 56, 65, 54, 52, 74, 63, 61, 80, 69, 67, 83, 73, 72, 92, 82, 81, 80, 68, 68, 97, 85, 85, 86, 74, 74, 90, 78, 78, 112, 100, 100, 87, 77, 76, 83, 73, 72, 138, 130, 128, 165, 157, 155, 173, 165, 163, 184, 176, 174, 190, 185, 182, 192, 187, 184, 189, 184, 181, 186, 181, 178, 183, 179, 176, 185, 181, 178, 185, 181, 178, 186, 182, 179, 187, 183, 180, 188, 184, 181, 188, 184, 181, 189, 185, 182, 189, 185, 182, 191, 187, 184, 191, 187, 184, 192, 188, 185, 193, 189, 186, 194, 190, 187, 196, 192, 189, 197, 193, 190, 197, 193, 190, 198, 194, 191, 199, 195, 192, 200, 196, 195, 201, 197, 194, 201, 197, 196, 200, 196, 193, 200, 196, 195, 199, 195, 192, 198, 194, 193, 198, 194, 191, 198, 194, 193, 199, 195, 192, 201, 197, 196, 202, 198, 195, 202, 198, 197, 199, 197, 198, 198, 199, 203, 212, 215, 220, 225, 228, 233, 225, 228, 233, 218, 221, 226, 212, 215, 220, 209, 212, 217, 207, 210, 215, 208, 211, 216, 211, 214, 219, 215, 218, 223, 218, 221, 226, 218, 221, 226, 216, 219, 224, 213, 216, 221, 210, 214, 217, 208, 210, 209, 206, 206, 204, 202, 202, 200, 200, 200, 198, 200, 200, 198, 199, 199, 197, 198, 197, 195, 196, 195, 191, 199, 198, 194, 197, 196, 192, 196, 195, 191, 197, 196, 191, 201, 197, 194, 199, 196, 191, 194, 191, 186, 189, 186, 181, 190, 185, 181, 188, 183, 179, 185, 180, 176, 185, 180, 176, 185, 180, 176, 184, 179, 175, 182, 177, 173, 179, 174, 170, 181, 176, 172, 185, 180, 176, 196, 191, 187, 199, 194, 190, 192, 187, 183, 194, 189, 185, 194, 189, 185, 184, 179, 175, 183, 176, 170, 184, 177, 171, 177, 170, 164, 175, 168, 162, 184, 177, 171, 185, 178, 172, 181, 174, 168, 184, 177, 171, 184, 177, 171, 186, 179, 173, 189, 182, 176, 189, 182, 176, 189, 182, 176, 192, 185, 179, 196, 189, 183, 201, 194, 188, 187, 182, 178, 181, 176, 172, 178, 173, 169, 182, 177, 173, 185, 180, 176, 184, 179, 175, 186, 181, 177, 189, 184, 180, 187, 182, 178, 176, 171, 167, 167, 162, 158, 168, 163, 159, 171, 166, 162, 173, 168, 164, 176, 171, 167, 180, 175, 171, 190, 186, 183, 178, 174, 171, 179, 175, 172, 180, 176, 173, 170, 165, 161, 165, 160, 156, 173, 166, 160, 175, 168, 162, 179, 172, 166, 179, 172, 166, 162, 157, 153, 156, 151, 147, 170, 166, 163, 177, 173, 170, 171, 167, 164, 171, 167, 164, 159, 154, 150, 158, 153, 149, 155, 150, 146, 154, 149, 145, 161, 154, 148, 167, 160, 154, 164, 157, 151, 157, 150, 144, 166, 159, 153, 150, 143, 137, 151, 142, 135, 151, 142, 135, 132, 123, 116, 122, 113, 106, 131, 122, 115, 139, 130, 123, 144, 134, 125, 145, 135, 126, 127, 116, 110, 143, 132, 126, 131, 120, 114, 113, 102, 96, 140, 129, 123, 128, 117, 111, 115, 104, 100, 98, 87, 83, 104, 93, 89, 94, 83, 79, 93, 82, 78, 107, 96, 92, 98, 87, 83, 92, 83, 78, 113, 104, 97, 94, 87, 79, 95, 86, 79, 95, 86, 79, 107, 96, 92, 103, 92, 88, 77, 63, 60, 84, 70, 67, 101, 87, 84, 86, 72, 69, 87, 76, 74, 78, 67, 65, 68, 58, 56, 105, 95, 93, 108, 100, 97, 47, 38, 33, 63, 52, 46, 87, 74, 66, 83, 72, 66, 81, 70, 64, 66, 57, 52, 99, 90, 85, 83, 75, 72, 79, 71, 68, 147, 139, 136, 98, 90, 87, 42, 34, 31, 70, 62, 59, 78, 69, 64, 82, 73, 68, 72, 63, 58, 105, 96, 91, 64, 55, 50, 38, 29, 24, 39, 30, 25, 57, 48, 43, 73, 64, 59, 39, 30, 25, 61, 52, 47, 56, 47, 42, 57, 46, 42, 93, 82, 78, 77, 66, 62, 84, 73, 69, 90, 76, 73, 82, 68, 65, 101, 87, 84, 87, 73, 70, 57, 46, 42, 52, 41, 37, 79, 65, 62, 83, 69, 66, 79, 65, 62, 86, 72, 69, 85, 71, 68, 95, 81, 78, 99, 84, 81, 102, 87, 84, 97, 82, 79, 83, 68, 65, 74, 59, 56, 74, 59, 56, 74, 56, 54, 70, 50, 49, 93, 72, 69, 93, 69, 67, 97, 73, 71, 97, 76, 73, 99, 80, 76, 111, 93, 89, 113, 98, 95, 100, 86, 83, 77, 63, 60, 112, 101, 97, 149, 138, 136, 150, 139, 137, 118, 107, 105, 92, 81, 79, 95, 84, 82, 115, 101, 98, 112, 97, 90, 100, 83, 76, 89, 74, 67, 84, 69, 64, 79, 64, 59, 82, 68, 65, 80, 66, 65, 65, 53, 53, 78, 68, 69, 77, 68, 71, 102, 96, 100, 135, 130, 134, 148, 145, 152, 156, 153, 160, 152, 151, 157, 135, 134, 139, 96, 96, 96, 89, 88, 84, 83, 82, 80, 79, 78, 74, 67, 63, 60, 53, 48, 45, 56, 51, 48, 71, 63, 61, 99, 89, 88, 108, 97, 95, 109, 95, 94, 96, 80, 80, 86, 70, 70, 95, 77, 77, 107, 89, 89, 113, 97, 97, 106, 94, 94, 98, 88, 87, 103, 91, 91, 110, 98, 98, 111, 97, 96, 113, 99, 98, 113, 97, 97, 103, 87, 87, 103, 85, 85, 94, 76, 76, 79, 59, 58, 64, 44, 43, 58, 37, 36, 57, 36, 35, 59, 35, 35, 57, 33, 33, 54, 30, 28, 59, 35, 31, 67, 42, 38, 71, 46, 41, 74, 49, 44, 83, 58, 51, 97, 72, 65, 108, 83, 76, 106, 79, 72, 110, 83, 76, 115, 85, 77, 115, 82, 73, 111, 74, 65, 104, 64, 54, 97, 55, 43, 94, 50, 39, 84, 40, 31, 83, 40, 33, 85, 44, 38, 88, 49, 44, 83, 46, 40, 74, 39, 33, 72, 37, 31, 74, 40, 31, 74, 37, 28, 68, 31, 22, 75, 37, 28, 99, 61, 52, 125, 88, 79, 138, 104, 95, 139, 106, 99, 135, 106, 100, 134, 111, 105, 131, 112, 106, 133, 113, 112, 135, 115, 114, 128, 110, 110, 126, 110, 111, 142, 128, 128, 163, 151, 151, 178, 166, 166, 185, 171, 168, 188, 173, 166, 190, 170, 163, 193, 166, 157, 196, 164, 153, 196, 160, 148, 193, 153, 141, 193, 151, 137, 198, 162, 146, 201, 177, 165, 206, 193, 185, 218, 214, 213, 232, 233, 237, 238, 241, 246, 238, 243, 249, 239, 244, 248, 239, 244, 247, 237, 245, 247, 237, 246, 245, 240, 245, 248, 240, 245, 249, 242, 245, 252, 244, 244, 252, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 238, 238, 246, 238, 238, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 231, 238, 244, 231, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 225, 229, 238, 226, 230, 239, 227, 231, 240, 225, 229, 238, 220, 227, 235, 219, 226, 234, 219, 226, 232, 221, 229, 232, 220, 224, 227, 202, 203, 205, 174, 174, 174, 155, 154, 152, 149, 144, 141, 138, 130, 127, 110, 100, 98, 84, 70, 67, 73, 57, 57, 68, 50, 50, 70, 50, 51, 83, 63, 64, 99, 74, 77, 101, 76, 79, 95, 69, 70, 90, 64, 65, 85, 56, 58, 89, 60, 62, 93, 65, 64, 93, 65, 64, 91, 63, 62, 90, 62, 61, 91, 63, 62, 91, 66, 62, 81, 58, 50, 82, 59, 51, 101, 78, 70, 123, 100, 92, 112, 87, 80, 76, 51, 44, 62, 35, 28, 72, 45, 38, 67, 38, 34, 76, 47, 41, 82, 53, 49, 78, 49, 43, 70, 39, 34, 68, 37, 32, 76, 45, 40, 86, 55, 52, 91, 60, 58, 89, 57, 58, 87, 55, 56, 86, 56, 56, 90, 60, 60, 96, 66, 66, 101, 73, 72, 103, 77, 76, 97, 71, 70, 103, 79, 77, 110, 89, 88, 117, 96, 95, 120, 100, 99, 124, 104, 103, 130, 110, 109, 134, 114, 113, 136, 114, 117, 138, 118, 120, 141, 121, 123, 142, 123, 125, 140, 124, 125, 136, 122, 122, 133, 118, 121, 128, 116, 118, 130, 118, 120, 138, 126, 128, 146, 134, 138, 147, 135, 139, 141, 129, 133, 138, 126, 130, 144, 129, 134, 149, 134, 139, 153, 136, 142, 155, 139, 142, 153, 137, 140, 149, 133, 136, 150, 134, 137, 157, 141, 144, 160, 144, 147, 159, 143, 146, 151, 135, 138, 147, 131, 134, 140, 124, 127, 134, 118, 121, 131, 115, 118, 132, 116, 119, 135, 119, 122, 138, 122, 125, 139, 124, 127, 149, 137, 139, 156, 144, 146, 156, 146, 147, 162, 152, 153, 172, 163, 164, 178, 169, 170, 176, 167, 168, 166, 157, 158, 161, 152, 153, 159, 149, 150, 160, 150, 151, 167, 155, 157, 171, 159, 161, 172, 157, 160, 168, 156, 158, 156, 146, 145, 142, 134, 132, 126, 118, 116, 117, 109, 107, 121, 113, 111, 130, 120, 119, 135, 125, 124, 135, 125, 124, 136, 126, 125, 141, 131, 130, 149, 137, 137, 150, 138, 138, 140, 128, 128, 128, 116, 116, 126, 114, 114, 134, 120, 119, 116, 102, 101, 116, 101, 98, 112, 97, 94, 108, 93, 90, 106, 91, 88, 109, 94, 91, 114, 99, 96, 119, 104, 101, 109, 94, 91, 110, 95, 92, 112, 94, 92, 109, 91, 89, 97, 79, 77, 82, 64, 62, 77, 59, 57, 78, 60, 58, 72, 54, 50, 87, 69, 65, 91, 73, 71, 92, 74, 72, 92, 77, 74, 74, 59, 56, 49, 34, 31, 45, 30, 27, 44, 30, 29, 46, 32, 31, 37, 26, 24, 40, 29, 27, 58, 47, 45, 65, 54, 52, 75, 65, 64, 101, 89, 89, 97, 83, 83, 83, 69, 69, 81, 69, 69, 100, 88, 88, 109, 97, 97, 104, 92, 92, 103, 93, 92, 113, 103, 102, 160, 150, 149, 168, 160, 158, 181, 173, 171, 190, 182, 180, 190, 185, 182, 188, 183, 180, 184, 179, 176, 182, 177, 174, 183, 179, 176, 183, 179, 176, 184, 180, 177, 184, 180, 177, 185, 181, 178, 186, 182, 179, 187, 183, 180, 187, 183, 180, 188, 184, 181, 189, 185, 182, 190, 186, 183, 191, 187, 184, 192, 188, 185, 193, 189, 186, 194, 190, 187, 194, 190, 187, 196, 192, 189, 197, 193, 190, 199, 194, 191, 199, 195, 192, 200, 195, 192, 198, 194, 191, 198, 193, 190, 196, 192, 189, 198, 193, 190, 197, 193, 190, 199, 194, 191, 198, 194, 191, 199, 194, 191, 198, 194, 191, 200, 195, 192, 197, 196, 194, 193, 193, 195, 207, 211, 214, 223, 224, 229, 221, 225, 228, 216, 217, 222, 208, 212, 215, 206, 207, 212, 202, 206, 209, 205, 206, 211, 206, 210, 213, 212, 213, 218, 214, 218, 221, 216, 217, 222, 212, 216, 219, 210, 211, 216, 207, 208, 212, 206, 206, 206, 203, 203, 201, 200, 200, 198, 199, 199, 197, 199, 199, 197, 199, 200, 195, 199, 198, 194, 197, 196, 192, 199, 198, 194, 196, 195, 191, 194, 193, 188, 195, 194, 189, 199, 196, 191, 197, 194, 189, 192, 189, 184, 186, 183, 178, 188, 183, 179, 186, 181, 177, 184, 179, 175, 184, 179, 175, 185, 180, 176, 184, 179, 175, 182, 177, 173, 180, 175, 171, 177, 172, 168, 182, 177, 173, 194, 189, 185, 198, 193, 189, 192, 187, 183, 194, 189, 185, 194, 189, 185, 184, 179, 175, 183, 176, 170, 184, 177, 171, 177, 170, 164, 176, 169, 163, 185, 178, 172, 185, 178, 172, 178, 171, 165, 181, 174, 168, 180, 173, 167, 184, 177, 171, 188, 181, 175, 188, 181, 175, 187, 180, 174, 188, 181, 175, 193, 186, 180, 198, 191, 185, 187, 182, 178, 181, 176, 172, 179, 174, 170, 182, 177, 173, 185, 180, 176, 184, 179, 175, 185, 180, 176, 188, 183, 179, 188, 183, 179, 178, 173, 169, 170, 165, 161, 172, 167, 163, 175, 170, 166, 176, 171, 167, 177, 172, 168, 180, 175, 171, 191, 187, 184, 178, 174, 171, 178, 174, 171, 180, 177, 172, 169, 164, 160, 163, 158, 154, 171, 164, 158, 174, 167, 161, 177, 170, 164, 179, 172, 166, 162, 157, 153, 155, 150, 146, 170, 165, 162, 175, 171, 168, 170, 166, 163, 173, 169, 166, 158, 153, 149, 154, 149, 145, 149, 144, 140, 150, 145, 141, 161, 154, 148, 168, 161, 155, 163, 156, 150, 153, 146, 140, 171, 164, 158, 151, 144, 138, 150, 141, 134, 151, 142, 135, 131, 122, 115, 119, 110, 103, 127, 118, 111, 132, 123, 116, 134, 124, 115, 134, 124, 115, 116, 105, 99, 138, 127, 121, 128, 117, 111, 113, 102, 96, 147, 136, 130, 135, 124, 118, 120, 109, 105, 89, 78, 74, 93, 82, 78, 81, 70, 66, 76, 65, 61, 102, 91, 87, 102, 91, 87, 94, 85, 80, 116, 109, 101, 101, 94, 86, 98, 89, 82, 85, 76, 69, 100, 89, 85, 111, 100, 96, 89, 75, 72, 91, 77, 74, 94, 80, 77, 74, 60, 57, 74, 63, 61, 67, 56, 54, 64, 54, 52, 109, 99, 97, 109, 101, 98, 40, 31, 26, 63, 52, 46, 70, 57, 49, 89, 78, 72, 70, 59, 53, 52, 43, 38, 112, 103, 98, 77, 69, 66, 98, 90, 87, 154, 146, 143, 74, 66, 63, 42, 34, 31, 82, 74, 71, 65, 55, 53, 64, 55, 50, 54, 45, 40, 104, 95, 90, 50, 41, 36, 31, 22, 17, 37, 28, 23, 57, 48, 43, 69, 60, 55, 32, 23, 18, 60, 51, 46, 61, 52, 47, 69, 58, 54, 101, 90, 86, 81, 70, 66, 89, 78, 74, 93, 79, 76, 77, 63, 60, 95, 81, 78, 80, 66, 63, 54, 43, 39, 49, 38, 34, 76, 62, 59, 81, 67, 64, 78, 64, 61, 87, 73, 70, 89, 75, 72, 100, 86, 83, 102, 87, 84, 101, 86, 83, 93, 78, 75, 81, 66, 63, 72, 57, 54, 71, 56, 53, 74, 56, 54, 74, 56, 54, 95, 74, 71, 91, 70, 67, 96, 77, 73, 103, 84, 80, 105, 87, 83, 109, 94, 89, 106, 92, 89, 90, 79, 75, 142, 131, 127, 161, 150, 146, 148, 137, 135, 103, 92, 90, 89, 75, 74, 110, 96, 95, 115, 99, 99, 96, 80, 80, 90, 75, 72, 100, 85, 80, 100, 86, 83, 85, 71, 68, 84, 70, 69, 100, 89, 87, 86, 74, 74, 42, 32, 33, 67, 58, 59, 131, 122, 125, 158, 152, 154, 157, 152, 156, 158, 153, 159, 124, 119, 125, 80, 78, 83, 77, 75, 78, 80, 76, 75, 87, 83, 80, 89, 85, 82, 76, 72, 69, 53, 48, 45, 39, 31, 29, 45, 37, 35, 60, 50, 48, 89, 78, 76, 100, 89, 87, 100, 86, 85, 83, 67, 67, 72, 56, 56, 80, 64, 64, 98, 83, 80, 110, 95, 92, 70, 58, 58, 70, 60, 59, 80, 68, 68, 84, 72, 72, 88, 74, 73, 102, 88, 87, 113, 97, 97, 108, 92, 92, 106, 88, 88, 95, 77, 77, 74, 54, 53, 53, 33, 32, 44, 23, 22, 44, 23, 22, 47, 23, 23, 46, 22, 22, 57, 33, 33, 63, 39, 37, 72, 46, 45, 74, 49, 45, 75, 50, 46, 80, 55, 51, 90, 65, 61, 101, 73, 69, 107, 79, 75, 111, 82, 76, 116, 83, 78, 115, 80, 74, 110, 73, 65, 103, 64, 57, 97, 57, 49, 96, 53, 46, 88, 45, 38, 86, 43, 37, 84, 45, 40, 86, 48, 45, 82, 47, 43, 79, 44, 40, 82, 47, 43, 87, 52, 46, 77, 40, 32, 72, 35, 26, 77, 40, 31, 102, 65, 57, 129, 95, 86, 143, 110, 103, 143, 112, 107, 137, 112, 107, 131, 112, 108, 125, 110, 107, 127, 111, 111, 133, 117, 117, 135, 119, 120, 140, 126, 126, 159, 147, 149, 182, 170, 170, 182, 171, 169, 187, 173, 170, 190, 173, 166, 190, 167, 159, 191, 163, 152, 195, 161, 149, 196, 156, 144, 193, 151, 137, 192, 150, 136, 197, 161, 147, 201, 177, 167, 208, 195, 187, 219, 215, 214, 231, 235, 238, 238, 243, 249, 238, 243, 249, 239, 244, 248, 239, 244, 247, 237, 245, 247, 237, 246, 245, 240, 245, 248, 240, 245, 248, 244, 244, 252, 244, 244, 252, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 237, 242, 248, 237, 242, 248, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 238, 238, 246, 238, 238, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 231, 238, 244, 231, 238, 244, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 228, 231, 238, 228, 231, 240, 226, 230, 239, 225, 229, 238, 222, 229, 237, 222, 229, 237, 221, 228, 234, 221, 229, 232, 228, 231, 236, 212, 213, 217, 189, 189, 191, 170, 168, 169, 154, 149, 146, 140, 132, 129, 132, 122, 120, 132, 121, 119, 115, 99, 100, 114, 95, 97, 124, 104, 105, 129, 109, 110, 118, 93, 96, 106, 81, 84, 100, 74, 77, 93, 67, 70, 92, 63, 65, 96, 67, 69, 98, 69, 71, 95, 66, 68, 95, 66, 68, 96, 67, 69, 92, 66, 65, 87, 62, 58, 105, 82, 76, 103, 80, 72, 96, 73, 65, 86, 63, 55, 77, 52, 45, 70, 45, 38, 69, 42, 35, 70, 43, 34, 78, 49, 43, 72, 43, 35, 65, 34, 29, 64, 33, 28, 70, 37, 32, 75, 42, 37, 76, 43, 38, 75, 42, 37, 77, 43, 41, 75, 41, 40, 75, 41, 40, 75, 44, 42, 79, 48, 46, 81, 51, 49, 82, 54, 51, 80, 55, 51, 79, 53, 52, 79, 55, 53, 86, 65, 64, 98, 77, 76, 98, 78, 77, 96, 76, 75, 108, 88, 87, 127, 107, 106, 120, 100, 102, 114, 94, 96, 120, 99, 104, 133, 114, 118, 130, 114, 117, 114, 99, 102, 109, 94, 97, 115, 103, 105, 146, 134, 138, 140, 129, 133, 135, 124, 128, 132, 121, 125, 135, 124, 128, 143, 132, 136, 153, 140, 147, 161, 146, 151, 165, 148, 154, 159, 142, 148, 153, 136, 142, 153, 136, 142, 157, 140, 146, 159, 142, 148, 157, 140, 146, 153, 136, 142, 148, 131, 137, 148, 131, 137, 150, 133, 139, 152, 135, 141, 150, 133, 139, 147, 130, 136, 152, 135, 141, 160, 143, 149, 167, 152, 155, 160, 148, 150, 156, 144, 146, 153, 143, 144, 154, 144, 145, 154, 145, 146, 155, 146, 147, 153, 147, 147, 143, 137, 137, 143, 137, 137, 149, 140, 141, 157, 148, 149, 165, 155, 156, 162, 152, 153, 152, 140, 142, 141, 129, 131, 126, 116, 115, 121, 111, 110, 116, 106, 105, 115, 105, 104, 120, 110, 109, 131, 119, 119, 142, 130, 130, 149, 137, 137, 137, 125, 125, 136, 124, 124, 137, 123, 123, 142, 128, 128, 151, 137, 137, 152, 138, 138, 135, 121, 121, 116, 102, 101, 107, 93, 92, 115, 101, 98, 123, 109, 106, 126, 112, 109, 127, 113, 110, 127, 113, 110, 122, 107, 104, 114, 99, 96, 111, 96, 93, 111, 96, 93, 114, 96, 94, 117, 99, 97, 118, 100, 98, 110, 92, 90, 96, 78, 76, 84, 66, 64, 83, 64, 60, 83, 64, 60, 81, 63, 59, 78, 60, 56, 77, 59, 55, 74, 56, 52, 61, 46, 43, 49, 34, 31, 71, 57, 54, 59, 45, 42, 43, 29, 28, 36, 22, 21, 40, 29, 27, 54, 43, 41, 67, 56, 54, 75, 64, 62, 93, 79, 79, 83, 69, 69, 98, 84, 84, 119, 105, 105, 118, 106, 106, 116, 104, 104, 112, 100, 100, 99, 89, 88, 139, 129, 128, 164, 154, 153, 180, 172, 170, 179, 171, 169, 181, 176, 173, 192, 187, 184, 191, 186, 183, 179, 174, 171, 186, 181, 177, 174, 169, 165, 172, 167, 163, 182, 177, 173, 185, 180, 176, 180, 175, 171, 181, 176, 172, 191, 186, 182, 183, 178, 174, 188, 183, 179, 190, 185, 181, 189, 184, 180, 191, 186, 182, 196, 191, 187, 196, 191, 187, 193, 188, 184, 191, 186, 182, 190, 185, 181, 194, 186, 183, 198, 193, 189, 201, 193, 190, 195, 190, 186, 196, 188, 185, 196, 191, 187, 198, 190, 187, 196, 191, 187, 200, 192, 189, 199, 194, 190, 201, 193, 190, 199, 194, 190, 200, 192, 189, 197, 193, 190, 196, 194, 195, 202, 203, 205, 212, 211, 216, 214, 215, 217, 210, 209, 214, 202, 203, 205, 198, 197, 202, 195, 196, 198, 198, 197, 202, 202, 203, 205, 208, 207, 212, 209, 210, 212, 210, 209, 214, 207, 208, 210, 207, 206, 211, 207, 207, 209, 205, 205, 203, 205, 204, 200, 201, 200, 196, 195, 194, 190, 196, 195, 191, 199, 198, 194, 199, 198, 194, 195, 194, 189, 197, 194, 189, 199, 196, 191, 196, 193, 188, 198, 195, 190, 204, 199, 193, 193, 188, 182, 182, 177, 171, 184, 179, 173, 192, 187, 183, 191, 186, 182, 187, 182, 178, 185, 180, 176, 183, 178, 174, 176, 171, 167, 173, 168, 164, 180, 175, 171, 175, 170, 166, 182, 177, 173, 194, 189, 185, 196, 191, 187, 190, 185, 181, 197, 192, 188, 199, 194, 190, 186, 181, 177, 189, 182, 176, 181, 174, 168, 174, 167, 161, 175, 168, 162, 181, 174, 168, 184, 177, 171, 178, 171, 165, 172, 165, 159, 177, 170, 164, 180, 173, 167, 175, 168, 162, 188, 181, 175, 182, 175, 169, 176, 169, 163, 199, 192, 186, 195, 188, 182, 185, 180, 176, 174, 169, 165, 167, 162, 158, 173, 168, 164, 182, 177, 173, 184, 179, 175, 181, 176, 172, 179, 174, 170, 185, 180, 176, 181, 176, 172, 162, 157, 153, 159, 154, 150, 182, 177, 173, 191, 186, 182, 180, 175, 171, 176, 171, 167, 175, 171, 168, 181, 177, 174, 183, 178, 174, 178, 173, 169, 175, 167, 164, 174, 167, 161, 171, 164, 158, 167, 160, 154, 177, 170, 164, 178, 171, 165, 174, 167, 161, 164, 159, 153, 162, 157, 153, 168, 163, 159, 174, 170, 167, 177, 173, 170, 161, 156, 152, 164, 157, 151, 157, 150, 144, 153, 146, 140, 160, 153, 147, 163, 156, 150, 159, 152, 146, 155, 148, 142, 155, 146, 139, 154, 145, 138, 150, 141, 134, 149, 140, 133, 141, 132, 125, 120, 111, 104, 117, 107, 98, 134, 124, 115, 119, 110, 103, 129, 120, 113, 118, 109, 102, 121, 112, 105, 135, 126, 119, 114, 105, 98, 111, 102, 97, 158, 149, 144, 118, 109, 104, 101, 92, 87, 84, 75, 70, 72, 63, 58, 70, 60, 58, 86, 76, 74, 105, 95, 93, 110, 101, 96, 111, 104, 96, 92, 85, 77, 72, 63, 56, 88, 79, 72, 99, 88, 84, 97, 86, 82, 111, 97, 94, 104, 90, 87, 65, 51, 48, 61, 47, 44, 73, 62, 60, 71, 60, 58, 65, 55, 53, 102, 92, 90, 105, 97, 94, 47, 38, 33, 59, 48, 42, 77, 64, 56, 97, 86, 80, 56, 45, 39, 78, 69, 64, 102, 93, 88, 68, 60, 57, 136, 128, 125, 133, 125, 123, 57, 49, 47, 67, 59, 57, 81, 73, 70, 73, 63, 61, 71, 61, 59, 65, 56, 51, 92, 83, 78, 46, 37, 32, 35, 26, 21, 36, 27, 22, 46, 37, 32, 51, 42, 37, 50, 41, 36, 53, 44, 39, 57, 48, 43, 71, 60, 56, 73, 62, 58, 88, 77, 73, 92, 81, 77, 81, 67, 64, 83, 69, 66, 92, 78, 75, 88, 74, 71, 70, 59, 55, 64, 53, 49, 52, 38, 35, 71, 57, 54, 102, 88, 85, 88, 74, 71, 79, 65, 62, 113, 99, 96, 104, 89, 86, 106, 91, 88, 98, 83, 80, 88, 73, 70, 74, 59, 56, 54, 39, 36, 55, 37, 35, 78, 60, 58, 88, 70, 66, 96, 78, 74, 93, 78, 75, 102, 87, 84, 112, 98, 95, 93, 82, 78, 96, 85, 81, 137, 126, 122, 161, 150, 148, 120, 109, 107, 103, 89, 88, 102, 88, 87, 98, 82, 82, 106, 90, 90, 113, 94, 96, 97, 81, 82, 98, 84, 83, 90, 79, 77, 81, 69, 69, 87, 77, 76, 98, 88, 87, 85, 75, 74, 77, 67, 68, 91, 82, 83, 163, 154, 155, 161, 152, 153, 151, 142, 143, 149, 143, 145, 105, 99, 101, 56, 50, 52, 62, 56, 58, 63, 57, 57, 73, 64, 65, 96, 88, 86, 70, 62, 59, 42, 34, 31, 35, 25, 23, 58, 48, 46, 97, 87, 85, 91, 80, 78, 97, 86, 84, 86, 75, 71, 72, 61, 57, 70, 56, 53, 83, 69, 66, 97, 83, 80, 96, 82, 79, 85, 71, 68, 57, 45, 45, 74, 62, 62, 78, 66, 66, 63, 51, 51, 62, 48, 47, 79, 65, 64, 95, 79, 79, 97, 81, 81, 88, 70, 70, 74, 54, 55, 58, 37, 36, 49, 28, 27, 46, 22, 22, 43, 19, 19, 45, 21, 21, 50, 26, 26, 58, 32, 33, 62, 36, 37, 68, 42, 43, 74, 48, 49, 81, 55, 56, 91, 65, 64, 103, 75, 74, 110, 82, 79, 112, 83, 79, 112, 81, 76, 113, 78, 74, 112, 74, 71, 109, 70, 65, 105, 66, 61, 101, 62, 57, 99, 58, 54, 90, 49, 45, 90, 51, 46, 90, 51, 46, 87, 49, 46, 88, 53, 51, 91, 57, 55, 90, 56, 54, 86, 53, 48, 74, 39, 33, 75, 41, 32, 85, 51, 42, 105, 72, 63, 129, 99, 91, 147, 118, 112, 151, 123, 119, 144, 123, 118, 137, 122, 119, 132, 118, 117, 126, 112, 112, 129, 115, 115, 147, 132, 135, 167, 155, 157, 179, 167, 169, 180, 168, 168, 186, 172, 171, 186, 171, 166, 189, 170, 163, 187, 163, 153, 187, 155, 144, 192, 154, 141, 195, 152, 136, 187, 144, 128, 191, 149, 135, 199, 166, 151, 199, 177, 166, 201, 190, 184, 218, 216, 217, 229, 233, 236, 233, 238, 244, 236, 243, 249, 239, 244, 248, 239, 244, 247, 237, 245, 247, 237, 246, 245, 240, 245, 248, 240, 245, 248, 244, 244, 252, 244, 244, 252, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 250, 239, 244, 250, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 238, 238, 246, 238, 238, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 231, 238, 244, 231, 238, 244, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 228, 231, 238, 228, 231, 238, 226, 230, 239, 225, 229, 238, 223, 230, 238, 222, 229, 237, 221, 228, 236, 221, 228, 234, 224, 229, 235, 210, 213, 218, 191, 192, 196, 170, 168, 169, 148, 144, 143, 127, 122, 119, 118, 110, 107, 119, 108, 106, 120, 104, 105, 111, 92, 94, 111, 91, 92, 111, 91, 92, 103, 81, 83, 102, 77, 80, 108, 82, 85, 107, 81, 84, 101, 72, 74, 102, 73, 75, 98, 69, 71, 92, 63, 65, 92, 63, 65, 98, 69, 71, 100, 74, 73, 99, 73, 72, 98, 74, 70, 94, 71, 65, 88, 65, 59, 81, 58, 50, 75, 50, 43, 71, 46, 39, 70, 43, 34, 69, 42, 33, 70, 41, 33, 66, 37, 29, 63, 33, 25, 62, 32, 24, 66, 33, 28, 68, 35, 30, 70, 37, 32, 71, 38, 33, 75, 40, 38, 73, 38, 36, 72, 37, 35, 72, 38, 37, 74, 40, 39, 73, 42, 40, 73, 43, 41, 73, 43, 41, 75, 47, 46, 81, 55, 54, 89, 65, 65, 97, 73, 73, 103, 82, 81, 111, 90, 89, 115, 94, 93, 116, 94, 96, 111, 91, 93, 106, 86, 88, 103, 84, 88, 103, 84, 88, 98, 82, 85, 98, 83, 86, 114, 99, 102, 132, 120, 122, 122, 110, 114, 129, 118, 122, 142, 131, 135, 153, 142, 146, 158, 147, 151, 156, 145, 149, 150, 137, 144, 145, 132, 139, 136, 119, 125, 138, 121, 127, 139, 122, 128, 138, 121, 127, 133, 116, 122, 128, 111, 117, 123, 106, 112, 120, 103, 109, 131, 114, 120, 133, 116, 122, 140, 123, 129, 147, 130, 136, 151, 134, 140, 154, 137, 143, 162, 145, 151, 170, 155, 160, 165, 153, 155, 164, 152, 154, 162, 152, 153, 161, 151, 152, 159, 150, 151, 155, 146, 147, 150, 141, 142, 143, 137, 137, 150, 141, 142, 163, 154, 155, 175, 166, 167, 172, 163, 164, 160, 150, 151, 148, 138, 139, 147, 135, 137, 151, 139, 141, 148, 138, 137, 139, 129, 128, 132, 122, 121, 135, 125, 124, 146, 134, 134, 151, 139, 139, 147, 135, 135, 140, 128, 128, 144, 132, 132, 131, 119, 119, 114, 100, 100, 103, 89, 89, 112, 98, 98, 137, 123, 123, 158, 144, 144, 168, 154, 154, 145, 134, 132, 143, 132, 128, 136, 122, 119, 124, 110, 107, 119, 105, 102, 121, 107, 104, 123, 108, 105, 122, 107, 104, 124, 109, 106, 128, 113, 110, 137, 119, 117, 140, 122, 120, 136, 118, 116, 124, 106, 104, 108, 90, 88, 98, 80, 78, 90, 71, 67, 91, 72, 68, 88, 70, 66, 83, 65, 61, 81, 63, 59, 80, 62, 58, 72, 57, 54, 64, 49, 46, 47, 32, 29, 70, 56, 53, 89, 75, 74, 82, 68, 67, 58, 47, 45, 48, 37, 35, 62, 51, 49, 82, 71, 69, 74, 60, 60, 72, 58, 58, 94, 80, 80, 117, 103, 103, 112, 100, 100, 106, 94, 94, 110, 98, 98, 109, 99, 98, 125, 115, 114, 153, 143, 142, 176, 168, 166, 181, 173, 171, 182, 177, 174, 189, 184, 181, 185, 180, 177, 173, 168, 165, 181, 176, 172, 170, 165, 161, 168, 163, 159, 178, 173, 169, 181, 176, 172, 176, 171, 167, 178, 173, 169, 187, 182, 178, 186, 181, 177, 190, 185, 181, 192, 187, 183, 190, 185, 181, 190, 185, 181, 194, 189, 185, 193, 188, 184, 189, 184, 180, 193, 185, 182, 191, 183, 180, 193, 185, 182, 198, 190, 187, 199, 191, 188, 195, 187, 184, 193, 185, 182, 195, 187, 184, 196, 188, 185, 197, 189, 186, 198, 190, 187, 199, 191, 188, 199, 191, 188, 199, 191, 188, 198, 190, 187, 195, 190, 187, 192, 190, 191, 198, 198, 198, 207, 205, 208, 209, 209, 209, 206, 204, 207, 198, 198, 198, 195, 193, 196, 192, 192, 192, 194, 192, 195, 197, 197, 197, 203, 201, 204, 205, 205, 205, 205, 203, 206, 203, 203, 203, 203, 201, 204, 203, 201, 202, 205, 204, 202, 205, 204, 200, 200, 199, 195, 195, 194, 190, 195, 194, 190, 199, 198, 194, 198, 197, 192, 194, 193, 188, 196, 193, 188, 198, 195, 190, 194, 191, 186, 195, 192, 187, 200, 195, 189, 190, 185, 179, 181, 176, 170, 185, 180, 174, 190, 185, 181, 188, 183, 179, 184, 179, 175, 184, 179, 175, 182, 177, 173, 177, 172, 168, 178, 173, 169, 184, 179, 175, 176, 171, 167, 181, 176, 172, 193, 188, 184, 194, 189, 185, 190, 185, 181, 196, 191, 187, 199, 194, 190, 187, 182, 178, 189, 182, 176, 182, 175, 169, 175, 168, 162, 176, 169, 163, 181, 174, 168, 182, 175, 169, 178, 171, 165, 172, 165, 159, 169, 162, 156, 175, 168, 162, 174, 167, 161, 185, 178, 172, 177, 170, 164, 172, 165, 159, 194, 187, 181, 192, 185, 179, 187, 182, 178, 176, 171, 167, 169, 164, 160, 174, 169, 165, 181, 176, 172, 182, 177, 173, 179, 174, 170, 177, 172, 168, 185, 180, 176, 181, 176, 172, 162, 157, 153, 156, 151, 147, 175, 170, 166, 187, 182, 178, 184, 179, 175, 184, 179, 175, 178, 174, 171, 181, 177, 174, 182, 177, 173, 177, 172, 168, 176, 169, 163, 175, 168, 162, 171, 164, 158, 165, 158, 152, 175, 168, 162, 177, 170, 164, 175, 168, 162, 169, 162, 156, 165, 160, 156, 170, 165, 161, 174, 170, 167, 176, 171, 167, 165, 158, 152, 164, 157, 151, 158, 151, 145, 154, 147, 141, 157, 150, 144, 159, 152, 146, 158, 151, 145, 156, 149, 143, 150, 141, 134, 149, 140, 133, 145, 136, 129, 146, 137, 130, 143, 134, 127, 124, 115, 108, 114, 104, 95, 122, 112, 103, 120, 111, 104, 131, 122, 115, 122, 113, 106, 117, 108, 101, 129, 120, 113, 126, 117, 110, 123, 114, 109, 140, 131, 126, 126, 117, 112, 108, 99, 94, 89, 80, 75, 83, 74, 69, 81, 71, 69, 79, 69, 67, 90, 80, 78, 110, 101, 96, 114, 107, 101, 100, 93, 85, 78, 69, 62, 87, 78, 71, 99, 88, 84, 99, 88, 84, 107, 93, 90, 92, 78, 75, 62, 48, 45, 53, 39, 36, 66, 55, 53, 70, 59, 57, 67, 57, 55, 101, 91, 89, 102, 94, 91, 46, 37, 32, 68, 57, 51, 79, 66, 58, 84, 73, 67, 64, 53, 47, 82, 73, 68, 92, 83, 78, 84, 76, 73, 152, 144, 141, 102, 94, 92, 68, 60, 58, 72, 64, 62, 79, 71, 69, 71, 61, 59, 67, 57, 55, 73, 64, 59, 98, 89, 84, 39, 30, 25, 41, 32, 27, 58, 49, 44, 67, 58, 53, 56, 47, 42, 54, 45, 40, 57, 48, 43, 51, 42, 37, 66, 55, 51, 78, 67, 63, 88, 77, 73, 79, 68, 64, 72, 58, 55, 86, 72, 69, 91, 77, 74, 71, 57, 54, 73, 62, 58, 62, 51, 47, 58, 44, 41, 80, 66, 63, 96, 82, 79, 76, 62, 59, 69, 55, 52, 99, 85, 82, 105, 90, 87, 108, 93, 90, 102, 87, 84, 84, 69, 66, 67, 52, 49, 62, 47, 44, 66, 48, 46, 64, 49, 46, 96, 81, 76, 68, 55, 49, 92, 81, 77, 118, 107, 103, 100, 89, 85, 114, 103, 99, 148, 139, 134, 146, 137, 132, 102, 91, 89, 100, 89, 87, 105, 91, 90, 103, 87, 87, 99, 83, 83, 106, 88, 88, 105, 85, 87, 87, 71, 72, 82, 70, 72, 116, 106, 107, 112, 102, 103, 72, 63, 64, 67, 58, 59, 102, 93, 94, 147, 138, 139, 179, 170, 171, 142, 133, 134, 122, 114, 112, 93, 85, 83, 91, 83, 81, 78, 68, 67, 62, 52, 51, 67, 57, 56, 52, 42, 41, 83, 71, 71, 86, 74, 74, 63, 52, 50, 63, 52, 50, 78, 67, 65, 96, 85, 83, 114, 103, 101, 99, 88, 86, 98, 87, 83, 73, 62, 58, 58, 47, 43, 69, 58, 54, 91, 80, 76, 99, 88, 84, 92, 81, 77, 84, 73, 69, 86, 75, 73, 90, 78, 78, 75, 63, 63, 50, 38, 38, 50, 36, 35, 74, 60, 59, 90, 74, 74, 88, 70, 70, 67, 47, 48, 72, 52, 53, 81, 60, 59, 83, 62, 61, 75, 51, 51, 61, 37, 37, 53, 29, 29, 51, 27, 27, 60, 34, 37, 62, 36, 39, 68, 42, 45, 76, 50, 53, 86, 60, 63, 96, 70, 71, 106, 78, 77, 112, 82, 80, 113, 82, 79, 114, 81, 76, 115, 77, 74, 112, 72, 70, 108, 68, 66, 103, 63, 61, 100, 60, 60, 97, 57, 55, 92, 52, 50, 93, 55, 52, 92, 54, 51, 88, 53, 51, 90, 56, 55, 95, 61, 60, 94, 60, 59, 90, 56, 54, 75, 42, 37, 76, 43, 36, 86, 53, 46, 105, 75, 67, 130, 101, 95, 146, 121, 116, 153, 129, 125, 150, 131, 127, 132, 118, 117, 134, 122, 122, 137, 125, 125, 140, 128, 128, 151, 139, 141, 167, 155, 157, 179, 167, 169, 183, 171, 171, 184, 170, 169, 188, 170, 166, 188, 168, 161, 184, 157, 146, 184, 148, 136, 189, 147, 133, 195, 149, 133, 192, 146, 130, 193, 151, 137, 201, 167, 155, 201, 178, 170, 204, 193, 189, 220, 218, 219, 231, 236, 240, 233, 240, 246, 237, 244, 252, 239, 244, 250, 239, 244, 248, 237, 245, 247, 237, 246, 245, 240, 245, 248, 241, 245, 248, 244, 245, 250, 244, 244, 252, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 250, 239, 244, 250, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 238, 238, 246, 238, 238, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 231, 238, 244, 231, 238, 244, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 228, 231, 236, 228, 231, 236, 226, 231, 237, 226, 231, 237, 223, 230, 238, 222, 229, 237, 222, 229, 237, 221, 228, 236, 223, 228, 234, 214, 217, 222, 200, 201, 205, 177, 175, 178, 148, 144, 145, 120, 115, 112, 109, 101, 98, 109, 99, 97, 105, 89, 90, 92, 73, 75, 89, 69, 71, 90, 70, 72, 87, 65, 67, 94, 69, 72, 105, 79, 82, 106, 80, 83, 101, 75, 78, 102, 76, 79, 102, 73, 75, 97, 68, 70, 96, 70, 71, 102, 76, 77, 106, 80, 81, 106, 80, 79, 96, 70, 69, 90, 65, 61, 83, 58, 54, 79, 54, 49, 80, 53, 46, 78, 51, 44, 75, 46, 38, 71, 42, 34, 62, 34, 23, 63, 35, 24, 65, 35, 27, 64, 34, 26, 64, 31, 26, 64, 31, 26, 67, 34, 29, 70, 35, 31, 74, 36, 33, 73, 35, 32, 73, 35, 32, 74, 36, 35, 75, 37, 36, 75, 40, 38, 76, 42, 41, 77, 43, 42, 91, 59, 60, 99, 69, 69, 101, 72, 74, 98, 69, 71, 103, 77, 78, 113, 87, 88, 108, 82, 85, 93, 68, 71, 100, 78, 81, 103, 83, 85, 104, 85, 87, 101, 82, 84, 97, 81, 84, 106, 91, 94, 129, 114, 117, 147, 135, 137, 158, 146, 148, 158, 146, 148, 155, 143, 147, 151, 139, 143, 144, 132, 136, 135, 123, 127, 128, 116, 120, 123, 111, 115, 129, 112, 118, 134, 117, 123, 138, 121, 127, 135, 118, 124, 126, 109, 115, 120, 103, 109, 121, 104, 110, 124, 107, 113, 137, 120, 126, 141, 124, 130, 151, 134, 140, 162, 145, 151, 166, 149, 155, 165, 148, 154, 167, 150, 156, 171, 156, 161, 160, 148, 150, 155, 145, 146, 153, 143, 144, 153, 143, 144, 158, 148, 149, 163, 153, 154, 167, 157, 158, 167, 158, 159, 183, 173, 174, 173, 163, 164, 160, 150, 151, 149, 139, 140, 144, 134, 135, 143, 133, 134, 144, 134, 135, 144, 134, 135, 152, 142, 143, 148, 138, 139, 146, 136, 137, 149, 139, 140, 152, 140, 142, 149, 137, 139, 140, 128, 130, 131, 119, 121, 122, 110, 112, 130, 118, 120, 139, 124, 127, 140, 125, 128, 143, 128, 131, 148, 133, 136, 149, 134, 137, 147, 133, 133, 168, 157, 155, 163, 153, 151, 153, 142, 140, 139, 128, 126, 131, 120, 118, 130, 119, 117, 131, 117, 116, 128, 114, 113, 125, 109, 109, 123, 107, 107, 122, 104, 104, 117, 99, 99, 111, 93, 93, 106, 88, 88, 103, 83, 84, 100, 80, 79, 96, 77, 73, 99, 80, 76, 96, 77, 73, 88, 69, 65, 83, 65, 61, 84, 66, 62, 85, 67, 63, 82, 67, 62, 55, 40, 37, 62, 47, 44, 71, 57, 54, 80, 66, 63, 80, 69, 67, 75, 64, 62, 67, 56, 54, 60, 49, 47, 77, 63, 63, 63, 49, 49, 75, 61, 61, 107, 93, 93, 121, 109, 109, 122, 110, 110, 120, 110, 109, 116, 106, 105, 110, 100, 99, 137, 129, 127, 164, 156, 154, 174, 166, 164, 178, 173, 170, 185, 180, 177, 188, 183, 180, 184, 179, 176, 176, 168, 165, 167, 160, 154, 166, 159, 153, 174, 167, 161, 178, 171, 165, 175, 168, 162, 176, 169, 163, 182, 175, 169, 189, 182, 176, 193, 186, 180, 194, 187, 181, 191, 184, 178, 191, 184, 178, 193, 186, 180, 192, 185, 179, 188, 181, 175, 193, 185, 182, 191, 183, 180, 193, 185, 182, 197, 189, 186, 197, 189, 186, 192, 184, 181, 191, 183, 180, 192, 184, 181, 193, 185, 182, 194, 186, 183, 195, 187, 184, 196, 188, 185, 196, 188, 185, 195, 187, 184, 194, 186, 183, 192, 187, 184, 190, 186, 185, 194, 193, 191, 202, 198, 199, 202, 201, 199, 201, 197, 198, 194, 193, 191, 191, 187, 188, 187, 186, 184, 191, 187, 188, 193, 192, 190, 199, 195, 196, 199, 198, 196, 201, 197, 198, 198, 197, 195, 200, 196, 197, 198, 197, 195, 203, 202, 198, 203, 202, 198, 202, 198, 195, 197, 193, 190, 197, 193, 190, 200, 196, 193, 199, 196, 191, 194, 191, 186, 195, 190, 186, 196, 191, 187, 191, 186, 182, 190, 185, 181, 193, 188, 182, 185, 180, 174, 179, 174, 168, 186, 181, 175, 192, 184, 181, 186, 178, 175, 183, 175, 172, 184, 176, 173, 182, 174, 171, 180, 172, 169, 184, 176, 173, 188, 180, 177, 179, 171, 168, 181, 173, 170, 191, 183, 180, 194, 186, 183, 191, 183, 180, 197, 189, 186, 200, 192, 189, 190, 182, 179, 189, 182, 176, 184, 177, 171, 178, 171, 165, 177, 170, 164, 179, 172, 166, 179, 172, 166, 176, 169, 163, 172, 165, 159, 164, 157, 151, 173, 166, 160, 179, 172, 166, 186, 179, 173, 174, 167, 161, 171, 164, 158, 191, 184, 178, 192, 185, 179, 190, 185, 181, 179, 174, 170, 172, 167, 163, 175, 170, 166, 180, 175, 171, 180, 175, 171, 177, 172, 168, 175, 170, 166, 182, 177, 173, 178, 173, 169, 162, 157, 153, 152, 147, 143, 163, 158, 154, 176, 171, 167, 182, 177, 173, 187, 182, 178, 184, 179, 175, 184, 179, 175, 180, 175, 171, 175, 170, 166, 177, 170, 164, 177, 170, 164, 172, 163, 156, 163, 154, 147, 171, 162, 155, 175, 166, 159, 176, 169, 163, 172, 165, 159, 168, 163, 159, 171, 166, 162, 173, 168, 164, 172, 167, 163, 165, 158, 152, 163, 156, 150, 160, 153, 147, 157, 150, 144, 155, 148, 142, 154, 147, 141, 156, 147, 140, 155, 146, 139, 147, 138, 131, 145, 136, 129, 139, 129, 120, 141, 131, 122, 145, 135, 126, 131, 121, 112, 112, 102, 93, 110, 100, 91, 118, 109, 102, 127, 118, 111, 125, 116, 109, 115, 106, 99, 119, 110, 105, 134, 125, 120, 132, 123, 118, 117, 108, 103, 129, 120, 115, 117, 108, 103, 98, 88, 86, 95, 85, 83, 93, 83, 81, 69, 59, 57, 67, 57, 55, 98, 89, 84, 110, 103, 97, 100, 93, 85, 76, 67, 60, 86, 77, 70, 102, 91, 87, 102, 91, 87, 104, 90, 87, 85, 71, 68, 68, 54, 51, 51, 37, 34, 63, 52, 50, 75, 64, 62, 75, 65, 63, 103, 93, 91, 102, 94, 91, 50, 41, 36, 73, 62, 56, 80, 67, 61, 63, 52, 46, 65, 54, 48, 76, 67, 62, 74, 64, 62, 105, 97, 95, 160, 152, 150, 75, 67, 65, 80, 72, 70, 65, 57, 55, 70, 62, 60, 76, 66, 64, 67, 57, 55, 77, 67, 65, 86, 76, 74, 40, 31, 26, 51, 42, 37, 77, 68, 63, 76, 67, 62, 49, 40, 35, 54, 45, 40, 65, 56, 51, 47, 38, 33, 61, 50, 46, 72, 61, 57, 80, 69, 65, 74, 63, 59, 73, 59, 56, 87, 73, 70, 90, 76, 73, 72, 58, 55, 62, 51, 47, 46, 35, 31, 56, 42, 39, 85, 71, 68, 88, 74, 71, 67, 53, 50, 70, 56, 53, 97, 83, 80, 106, 91, 88, 102, 87, 84, 105, 90, 87, 90, 75, 72, 60, 45, 42, 60, 45, 42, 80, 62, 60, 79, 64, 61, 84, 73, 69, 112, 103, 98, 106, 97, 92, 88, 79, 74, 121, 112, 107, 162, 153, 148, 139, 128, 126, 84, 73, 71, 87, 73, 72, 108, 94, 93, 109, 93, 93, 93, 77, 77, 93, 77, 78, 98, 82, 83, 93, 74, 76, 83, 67, 70, 103, 91, 95, 98, 89, 94, 92, 83, 88, 103, 97, 99, 137, 131, 133, 155, 149, 151, 148, 142, 142, 138, 132, 132, 114, 106, 104, 108, 100, 97, 94, 84, 82, 86, 76, 74, 74, 63, 59, 76, 65, 61, 98, 85, 79, 93, 79, 76, 118, 104, 103, 109, 95, 95, 95, 81, 80, 112, 98, 97, 129, 115, 114, 128, 114, 113, 122, 111, 109, 105, 94, 92, 118, 107, 103, 85, 74, 70, 69, 60, 55, 88, 79, 74, 108, 99, 94, 103, 94, 89, 90, 81, 74, 85, 76, 71, 109, 98, 96, 98, 86, 86, 68, 54, 54, 37, 23, 23, 45, 29, 29, 79, 63, 63, 93, 75, 75, 81, 63, 63, 73, 53, 54, 76, 56, 57, 79, 58, 57, 76, 55, 54, 72, 48, 48, 66, 42, 42, 65, 41, 41, 66, 42, 42, 63, 37, 40, 66, 37, 42, 69, 42, 47, 80, 53, 58, 94, 67, 72, 105, 79, 82, 112, 83, 85, 114, 83, 81, 116, 82, 80, 117, 79, 76, 115, 76, 71, 112, 71, 67, 107, 66, 64, 102, 62, 62, 98, 58, 59, 95, 56, 57, 95, 57, 54, 95, 60, 56, 94, 60, 58, 90, 59, 57, 93, 62, 60, 98, 66, 67, 98, 66, 67, 93, 62, 60, 85, 54, 51, 86, 55, 50, 92, 61, 56, 108, 79, 73, 127, 102, 95, 142, 122, 115, 148, 129, 123, 146, 131, 126, 127, 116, 114, 137, 127, 125, 148, 136, 136, 150, 138, 138, 154, 142, 144, 163, 151, 153, 174, 162, 162, 180, 169, 167, 181, 167, 164, 187, 170, 163, 185, 162, 154, 175, 147, 135, 174, 136, 123, 180, 137, 121, 192, 143, 126, 197, 150, 134, 194, 152, 138, 201, 169, 158, 201, 181, 174, 205, 196, 191, 222, 222, 222, 233, 238, 242, 234, 241, 249, 239, 246, 254, 239, 244, 250, 239, 244, 248, 237, 245, 247, 237, 246, 245, 240, 245, 248, 241, 245, 248, 244, 245, 250, 244, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 250, 239, 244, 250, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 238, 238, 246, 238, 238, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 231, 238, 244, 231, 238, 244, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 232, 237, 228, 231, 236, 227, 232, 238, 226, 231, 237, 223, 230, 238, 222, 229, 237, 222, 229, 239, 222, 229, 239, 223, 227, 236, 220, 223, 230, 212, 213, 218, 190, 190, 192, 155, 153, 154, 124, 120, 117, 111, 106, 103, 114, 104, 102, 95, 79, 80, 85, 66, 68, 87, 67, 69, 92, 72, 74, 90, 68, 70, 91, 69, 71, 96, 71, 74, 93, 67, 70, 93, 67, 70, 99, 73, 76, 106, 77, 79, 107, 78, 80, 108, 82, 83, 110, 84, 85, 109, 83, 84, 104, 78, 79, 101, 75, 76, 93, 67, 66, 85, 59, 58, 85, 57, 54, 87, 59, 55, 85, 58, 51, 79, 50, 42, 72, 43, 35, 62, 34, 23, 66, 38, 27, 70, 40, 32, 69, 39, 31, 66, 33, 28, 64, 31, 26, 67, 34, 29, 70, 37, 32, 72, 34, 31, 75, 35, 33, 77, 37, 35, 77, 39, 36, 79, 41, 40, 80, 45, 43, 84, 48, 48, 86, 52, 51, 82, 50, 51, 87, 55, 56, 87, 57, 59, 85, 55, 57, 90, 60, 62, 99, 70, 72, 102, 73, 77, 95, 69, 72, 85, 63, 66, 102, 82, 84, 121, 101, 103, 131, 112, 114, 140, 121, 125, 151, 135, 138, 162, 146, 149, 165, 150, 153, 163, 148, 151, 153, 141, 143, 140, 128, 132, 128, 116, 120, 124, 112, 116, 126, 114, 118, 132, 120, 124, 139, 124, 129, 143, 126, 132, 143, 126, 132, 142, 125, 131, 139, 122, 128, 138, 121, 127, 142, 125, 131, 150, 133, 139, 157, 140, 146, 156, 139, 145, 158, 141, 147, 165, 148, 154, 172, 155, 161, 169, 152, 158, 159, 142, 148, 151, 134, 140, 148, 133, 138, 148, 136, 138, 147, 137, 138, 149, 139, 140, 155, 145, 146, 163, 151, 153, 169, 157, 159, 171, 159, 161, 171, 159, 161, 157, 145, 147, 143, 131, 133, 128, 116, 118, 126, 114, 116, 135, 125, 126, 146, 136, 137, 151, 141, 142, 150, 140, 141, 142, 132, 133, 149, 140, 141, 155, 145, 146, 152, 142, 143, 142, 132, 133, 135, 125, 126, 138, 126, 128, 141, 131, 132, 152, 140, 142, 158, 146, 148, 161, 149, 151, 159, 147, 149, 160, 145, 148, 157, 145, 147, 156, 141, 144, 148, 136, 136, 151, 141, 140, 157, 147, 145, 163, 152, 150, 161, 150, 148, 157, 146, 144, 152, 141, 139, 145, 131, 130, 135, 121, 120, 131, 115, 115, 122, 106, 106, 114, 96, 96, 109, 91, 91, 109, 91, 91, 110, 92, 92, 108, 88, 89, 105, 85, 84, 97, 78, 74, 100, 81, 77, 97, 78, 74, 86, 67, 63, 79, 61, 57, 82, 64, 60, 88, 70, 66, 91, 73, 69, 83, 68, 65, 53, 38, 35, 30, 16, 13, 44, 30, 27, 77, 66, 64, 96, 85, 83, 82, 71, 69, 58, 47, 45, 73, 59, 59, 58, 44, 44, 63, 49, 49, 89, 77, 77, 111, 99, 99, 119, 107, 107, 122, 112, 111, 126, 116, 115, 119, 111, 109, 137, 129, 127, 156, 148, 146, 162, 157, 154, 166, 161, 158, 174, 169, 166, 185, 180, 177, 193, 188, 184, 172, 165, 159, 166, 159, 153, 165, 158, 152, 171, 164, 158, 175, 168, 162, 173, 166, 160, 173, 166, 160, 176, 169, 163, 184, 177, 171, 189, 182, 176, 190, 183, 177, 188, 181, 175, 189, 182, 176, 192, 185, 179, 192, 185, 179, 188, 181, 175, 194, 186, 183, 192, 184, 181, 193, 185, 182, 198, 190, 187, 197, 189, 186, 192, 184, 181, 190, 182, 179, 192, 184, 181, 191, 183, 180, 192, 184, 181, 193, 185, 182, 193, 185, 182, 193, 185, 182, 192, 184, 181, 191, 183, 180, 190, 182, 179, 190, 185, 182, 192, 188, 185, 196, 190, 190, 197, 193, 190, 196, 190, 190, 192, 188, 185, 189, 183, 183, 186, 182, 179, 191, 185, 185, 193, 189, 186, 198, 192, 192, 198, 194, 191, 198, 192, 192, 197, 193, 190, 199, 193, 193, 199, 195, 192, 202, 198, 195, 201, 200, 196, 200, 196, 193, 196, 192, 189, 196, 192, 189, 199, 195, 192, 197, 194, 189, 191, 188, 183, 192, 187, 183, 193, 188, 184, 187, 182, 178, 184, 179, 175, 186, 181, 175, 179, 174, 168, 177, 172, 166, 187, 182, 176, 195, 187, 184, 184, 176, 173, 181, 173, 170, 183, 175, 172, 179, 171, 168, 179, 171, 168, 184, 176, 173, 184, 176, 173, 181, 173, 170, 178, 170, 167, 185, 177, 174, 191, 183, 180, 189, 181, 178, 195, 187, 184, 198, 190, 187, 191, 183, 180, 189, 182, 176, 186, 179, 173, 182, 175, 169, 179, 172, 166, 177, 170, 164, 175, 168, 162, 173, 166, 160, 171, 164, 158, 163, 156, 150, 175, 168, 162, 188, 181, 175, 189, 182, 176, 175, 168, 162, 175, 168, 162, 191, 184, 178, 193, 186, 180, 192, 187, 183, 182, 177, 173, 175, 170, 166, 177, 172, 168, 179, 174, 170, 177, 172, 168, 174, 169, 165, 173, 168, 164, 176, 171, 167, 175, 170, 166, 165, 160, 156, 154, 149, 145, 156, 151, 147, 165, 160, 156, 174, 169, 165, 180, 175, 171, 188, 183, 179, 185, 180, 176, 178, 173, 169, 173, 168, 164, 177, 170, 164, 179, 172, 166, 172, 163, 156, 162, 153, 146, 162, 153, 146, 169, 160, 153, 173, 166, 160, 171, 164, 158, 168, 163, 159, 169, 164, 160, 169, 164, 160, 166, 161, 157, 161, 154, 148, 158, 151, 145, 162, 155, 149, 164, 157, 151, 157, 150, 144, 152, 145, 139, 152, 143, 136, 148, 139, 132, 148, 139, 132, 145, 136, 129, 135, 125, 116, 133, 123, 114, 143, 133, 124, 136, 126, 117, 116, 106, 97, 105, 95, 86, 113, 104, 97, 115, 106, 99, 123, 114, 107, 117, 108, 101, 109, 100, 95, 126, 117, 112, 130, 121, 116, 104, 95, 90, 113, 104, 99, 117, 108, 103, 106, 96, 94, 101, 91, 89, 99, 89, 87, 68, 58, 56, 53, 43, 41, 78, 68, 66, 102, 95, 89, 88, 81, 73, 65, 56, 49, 85, 76, 69, 108, 97, 93, 99, 88, 84, 98, 84, 81, 89, 75, 72, 83, 69, 66, 61, 47, 44, 71, 60, 58, 86, 75, 73, 85, 75, 73, 108, 98, 96, 106, 98, 95, 56, 47, 42, 68, 57, 53, 82, 69, 63, 46, 35, 29, 56, 45, 41, 55, 45, 43, 57, 47, 45, 122, 114, 112, 144, 136, 134, 62, 54, 52, 81, 73, 71, 43, 35, 33, 57, 49, 47, 84, 74, 72, 66, 56, 54, 68, 58, 56, 63, 53, 51, 54, 45, 40, 61, 52, 47, 79, 70, 65, 62, 53, 48, 31, 22, 17, 52, 43, 38, 74, 65, 60, 49, 40, 35, 52, 41, 37, 61, 50, 46, 71, 60, 56, 76, 65, 61, 78, 64, 61, 84, 70, 67, 89, 75, 72, 89, 75, 72, 57, 46, 42, 38, 27, 23, 55, 41, 38, 83, 69, 66, 74, 60, 57, 56, 42, 39, 71, 57, 54, 97, 83, 80, 102, 87, 84, 90, 75, 72, 107, 92, 89, 103, 88, 85, 60, 45, 42, 55, 40, 37, 91, 73, 71, 105, 90, 87, 93, 84, 79, 91, 84, 78, 93, 86, 80, 137, 128, 123, 170, 161, 156, 117, 106, 102, 60, 49, 47, 74, 60, 59, 78, 64, 63, 100, 86, 85, 94, 80, 79, 82, 68, 67, 94, 80, 80, 98, 84, 84, 92, 78, 78, 97, 82, 85, 105, 94, 100, 116, 107, 112, 136, 127, 132, 154, 148, 150, 153, 147, 149, 127, 121, 121, 97, 91, 91, 84, 79, 76, 93, 85, 82, 102, 95, 89, 114, 105, 100, 114, 103, 97, 100, 87, 81, 100, 87, 79, 119, 104, 97, 125, 110, 105, 136, 120, 120, 137, 121, 122, 138, 122, 122, 144, 128, 128, 138, 124, 123, 122, 108, 107, 107, 96, 94, 98, 87, 85, 115, 104, 100, 99, 88, 84, 93, 84, 79, 106, 97, 92, 114, 107, 101, 107, 100, 94, 99, 92, 84, 99, 90, 85, 106, 95, 93, 90, 78, 78, 59, 45, 45, 35, 21, 21, 55, 39, 39, 93, 77, 77, 101, 83, 83, 81, 63, 63, 87, 67, 68, 77, 57, 58, 61, 40, 39, 48, 27, 26, 48, 24, 24, 55, 31, 31, 62, 38, 38, 65, 39, 40, 68, 39, 43, 69, 40, 44, 74, 45, 50, 86, 59, 64, 103, 76, 81, 116, 87, 91, 117, 87, 87, 117, 83, 82, 119, 81, 78, 117, 78, 73, 115, 74, 68, 112, 69, 63, 105, 64, 60, 101, 60, 58, 98, 58, 59, 95, 56, 57, 96, 61, 59, 97, 63, 61, 95, 64, 62, 93, 63, 63, 96, 66, 66, 102, 72, 72, 101, 71, 71, 97, 67, 67, 103, 72, 70, 101, 72, 68, 104, 75, 71, 111, 86, 79, 123, 103, 96, 133, 116, 109, 135, 120, 115, 135, 121, 118, 131, 120, 116, 140, 130, 128, 149, 137, 137, 150, 138, 138, 152, 140, 140, 159, 147, 147, 166, 154, 154, 171, 157, 156, 179, 164, 161, 187, 168, 161, 180, 156, 146, 164, 135, 121, 163, 124, 109, 171, 125, 109, 187, 136, 119, 199, 150, 133, 193, 151, 137, 201, 169, 158, 202, 182, 175, 206, 196, 194, 223, 223, 223, 231, 239, 242, 234, 241, 249, 237, 246, 253, 237, 244, 252, 239, 244, 248, 237, 245, 247, 237, 246, 245, 240, 245, 248, 241, 245, 248, 244, 245, 250, 244, 245, 250, 244, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 250, 239, 244, 250, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 238, 238, 246, 238, 238, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 231, 238, 244, 231, 238, 244, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 232, 237, 229, 233, 236, 227, 232, 236, 227, 232, 238, 224, 231, 239, 223, 230, 238, 222, 229, 239, 222, 229, 239, 221, 225, 236, 222, 225, 234, 219, 220, 225, 200, 199, 204, 167, 165, 166, 136, 132, 129, 123, 118, 115, 126, 118, 115, 119, 105, 105, 109, 93, 94, 111, 92, 94, 112, 92, 94, 101, 79, 82, 91, 69, 72, 88, 63, 66, 81, 56, 59, 89, 63, 66, 97, 71, 74, 104, 78, 81, 107, 81, 84, 111, 85, 86, 114, 88, 89, 112, 86, 87, 107, 81, 82, 109, 80, 82, 101, 72, 74, 93, 65, 64, 91, 61, 59, 91, 62, 58, 88, 59, 53, 79, 50, 42, 71, 42, 34, 65, 37, 26, 69, 41, 30, 72, 42, 34, 70, 40, 32, 65, 34, 29, 62, 31, 26, 63, 32, 29, 68, 35, 30, 71, 33, 30, 74, 37, 31, 76, 38, 35, 74, 39, 35, 73, 38, 36, 74, 39, 37, 78, 42, 42, 81, 47, 46, 77, 45, 46, 74, 42, 43, 75, 43, 46, 77, 47, 49, 77, 46, 51, 80, 49, 54, 94, 63, 68, 110, 81, 85, 132, 107, 110, 140, 118, 120, 150, 128, 131, 155, 135, 137, 159, 140, 142, 158, 142, 143, 149, 133, 134, 136, 122, 122, 126, 111, 114, 125, 110, 113, 125, 110, 113, 125, 110, 113, 128, 113, 116, 133, 118, 121, 138, 123, 128, 142, 125, 131, 147, 130, 136, 142, 125, 131, 139, 122, 128, 141, 124, 130, 148, 131, 137, 155, 138, 144, 160, 143, 149, 161, 144, 150, 157, 140, 146, 152, 135, 141, 149, 132, 138, 149, 132, 138, 146, 129, 135, 139, 122, 128, 136, 119, 125, 135, 120, 125, 149, 139, 140, 153, 143, 144, 161, 151, 152, 168, 156, 158, 169, 154, 157, 161, 146, 149, 149, 133, 136, 139, 123, 126, 128, 112, 115, 136, 120, 123, 143, 128, 131, 141, 126, 129, 131, 119, 121, 129, 119, 120, 136, 126, 127, 144, 135, 136, 147, 138, 139, 149, 143, 143, 153, 144, 145, 149, 140, 141, 142, 133, 134, 143, 134, 135, 154, 144, 145, 163, 154, 155, 170, 160, 161, 167, 157, 158, 160, 150, 151, 156, 146, 147, 161, 149, 151, 167, 157, 158, 168, 156, 158, 162, 152, 151, 134, 124, 123, 142, 134, 131, 151, 141, 139, 154, 144, 142, 156, 145, 143, 155, 144, 142, 151, 137, 136, 143, 129, 128, 126, 110, 110, 115, 99, 99, 108, 90, 90, 110, 92, 92, 119, 99, 100, 121, 101, 102, 110, 90, 91, 98, 78, 77, 94, 75, 71, 96, 77, 71, 93, 74, 68, 82, 63, 57, 75, 56, 52, 77, 58, 54, 81, 63, 59, 84, 66, 62, 81, 66, 63, 64, 49, 46, 43, 29, 26, 36, 22, 19, 47, 33, 30, 66, 52, 49, 81, 70, 66, 89, 78, 74, 53, 42, 40, 54, 43, 41, 58, 47, 45, 68, 57, 55, 79, 68, 66, 88, 78, 76, 106, 96, 94, 127, 117, 115, 130, 122, 119, 139, 131, 128, 150, 145, 141, 159, 154, 150, 161, 156, 152, 162, 159, 154, 172, 169, 164, 184, 179, 175, 172, 165, 159, 168, 161, 155, 168, 161, 155, 171, 164, 158, 174, 167, 161, 172, 165, 159, 171, 164, 158, 171, 164, 158, 176, 169, 163, 180, 173, 167, 183, 176, 170, 183, 176, 170, 186, 179, 173, 191, 184, 178, 192, 185, 179, 189, 182, 176, 194, 186, 183, 192, 184, 181, 194, 186, 183, 198, 190, 187, 198, 190, 187, 194, 186, 183, 192, 184, 181, 194, 186, 183, 191, 183, 180, 191, 183, 180, 192, 184, 181, 192, 184, 181, 191, 183, 180, 190, 182, 179, 189, 181, 178, 188, 180, 177, 193, 185, 182, 191, 186, 182, 194, 186, 184, 193, 188, 184, 195, 187, 185, 191, 186, 182, 190, 182, 180, 185, 180, 176, 194, 186, 184, 194, 189, 185, 199, 191, 189, 198, 193, 189, 199, 191, 189, 197, 192, 188, 201, 193, 191, 201, 196, 193, 199, 195, 192, 200, 196, 195, 198, 194, 191, 194, 190, 187, 194, 190, 187, 196, 192, 189, 194, 189, 186, 188, 183, 180, 188, 183, 179, 190, 185, 181, 186, 178, 175, 182, 174, 171, 183, 175, 172, 177, 169, 166, 176, 169, 163, 188, 181, 175, 198, 190, 187, 183, 175, 172, 181, 173, 170, 183, 175, 172, 176, 168, 165, 176, 168, 165, 180, 172, 169, 175, 167, 164, 181, 173, 170, 174, 166, 163, 178, 170, 167, 186, 178, 175, 187, 179, 176, 192, 184, 181, 196, 188, 185, 191, 183, 180, 188, 181, 175, 187, 180, 174, 185, 178, 172, 179, 172, 166, 174, 167, 161, 170, 163, 157, 169, 162, 156, 169, 162, 156, 163, 156, 150, 174, 167, 161, 194, 187, 181, 189, 182, 176, 173, 166, 160, 177, 170, 164, 186, 179, 173, 188, 181, 175, 192, 187, 183, 183, 178, 174, 177, 172, 168, 177, 172, 168, 177, 172, 168, 174, 169, 165, 171, 166, 162, 172, 167, 163, 175, 170, 166, 176, 171, 167, 174, 169, 165, 166, 161, 157, 159, 154, 150, 163, 158, 154, 170, 165, 161, 172, 167, 163, 189, 184, 180, 185, 180, 176, 179, 172, 166, 175, 168, 162, 177, 170, 164, 179, 172, 166, 174, 165, 158, 164, 155, 148, 154, 145, 138, 163, 154, 147, 168, 161, 155, 168, 161, 155, 167, 160, 154, 167, 160, 154, 163, 158, 154, 159, 154, 150, 156, 149, 143, 149, 142, 136, 160, 153, 147, 170, 163, 157, 162, 153, 146, 152, 143, 136, 148, 139, 132, 138, 129, 122, 150, 141, 134, 150, 141, 134, 137, 127, 118, 128, 118, 109, 138, 128, 119, 139, 129, 120, 122, 112, 103, 109, 99, 90, 108, 99, 92, 101, 92, 85, 116, 107, 102, 120, 111, 106, 104, 95, 90, 109, 100, 95, 118, 109, 104, 103, 94, 89, 80, 70, 68, 99, 89, 87, 102, 92, 90, 99, 89, 87, 98, 88, 86, 79, 69, 67, 62, 52, 51, 69, 59, 57, 101, 94, 88, 81, 74, 66, 57, 48, 41, 86, 77, 70, 110, 99, 95, 88, 77, 73, 85, 71, 68, 90, 76, 73, 96, 82, 79, 73, 59, 56, 81, 70, 68, 92, 81, 79, 87, 77, 75, 108, 98, 96, 107, 99, 96, 59, 50, 45, 62, 51, 47, 86, 73, 67, 46, 35, 31, 47, 36, 32, 36, 26, 24, 57, 47, 45, 137, 129, 127, 114, 106, 104, 46, 38, 36, 68, 60, 58, 32, 24, 22, 51, 43, 41, 83, 73, 72, 60, 50, 49, 58, 48, 46, 57, 47, 45, 65, 56, 51, 68, 59, 54, 72, 63, 58, 48, 39, 34, 28, 19, 14, 60, 51, 46, 79, 70, 65, 48, 39, 34, 36, 25, 21, 63, 52, 48, 75, 64, 60, 66, 55, 51, 67, 53, 50, 80, 66, 63, 86, 72, 69, 83, 69, 66, 65, 54, 50, 50, 39, 35, 62, 48, 45, 76, 62, 59, 59, 45, 42, 44, 30, 27, 62, 48, 45, 87, 73, 70, 85, 70, 67, 87, 72, 69, 109, 94, 91, 104, 89, 86, 67, 52, 49, 70, 55, 52, 96, 78, 76, 89, 74, 71, 73, 64, 59, 73, 66, 60, 135, 126, 121, 172, 163, 158, 117, 106, 104, 67, 53, 52, 75, 61, 60, 88, 72, 72, 73, 57, 57, 90, 76, 75, 90, 76, 76, 86, 74, 74, 93, 83, 82, 86, 76, 75, 86, 76, 75, 108, 98, 99, 145, 134, 138, 160, 149, 155, 150, 139, 145, 110, 101, 104, 84, 78, 80, 93, 87, 87, 94, 88, 88, 77, 72, 69, 75, 70, 66, 76, 69, 63, 94, 85, 80, 104, 93, 87, 103, 90, 84, 106, 91, 84, 110, 93, 86, 109, 94, 87, 123, 107, 107, 133, 119, 119, 141, 127, 127, 129, 115, 115, 109, 95, 94, 92, 78, 77, 76, 65, 63, 71, 60, 58, 84, 74, 72, 95, 85, 83, 106, 97, 92, 109, 100, 95, 108, 101, 95, 110, 103, 97, 115, 108, 102, 119, 110, 105, 95, 84, 82, 83, 69, 69, 61, 47, 47, 53, 39, 39, 77, 61, 61, 104, 88, 88, 102, 84, 84, 78, 60, 60, 80, 60, 61, 80, 60, 61, 71, 50, 49, 53, 32, 31, 43, 19, 19, 44, 20, 20, 49, 23, 24, 51, 25, 26, 72, 42, 44, 74, 44, 46, 81, 52, 56, 96, 67, 71, 111, 85, 88, 121, 92, 94, 121, 90, 88, 119, 84, 80, 118, 79, 72, 118, 75, 68, 115, 71, 62, 110, 66, 57, 105, 62, 56, 101, 60, 56, 98, 58, 58, 95, 59, 59, 98, 64, 62, 97, 68, 64, 97, 67, 65, 95, 67, 66, 99, 70, 72, 104, 75, 77, 104, 75, 77, 100, 72, 71, 108, 78, 76, 107, 79, 75, 107, 82, 77, 114, 91, 85, 121, 102, 96, 126, 111, 104, 128, 115, 109, 125, 114, 110, 140, 129, 125, 144, 133, 129, 148, 134, 133, 149, 135, 134, 154, 140, 139, 162, 148, 147, 165, 151, 150, 164, 149, 146, 179, 161, 157, 186, 166, 159, 174, 147, 138, 154, 122, 109, 156, 114, 100, 163, 116, 98, 178, 125, 107, 196, 145, 128, 191, 149, 135, 198, 168, 158, 200, 181, 174, 206, 196, 194, 223, 223, 225, 231, 238, 244, 232, 239, 247, 235, 244, 251, 237, 244, 252, 237, 245, 248, 237, 245, 247, 237, 246, 245, 240, 246, 246, 241, 245, 248, 244, 245, 250, 244, 245, 250, 244, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 250, 239, 244, 250, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 238, 238, 246, 238, 238, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 231, 238, 244, 231, 238, 244, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 238, 230, 234, 237, 229, 233, 236, 229, 232, 237, 227, 232, 238, 224, 231, 239, 223, 230, 238, 223, 230, 240, 222, 229, 239, 218, 222, 233, 220, 224, 233, 218, 221, 228, 204, 205, 209, 176, 174, 175, 146, 145, 143, 136, 131, 128, 138, 130, 127, 149, 135, 135, 136, 120, 121, 131, 112, 114, 120, 101, 103, 97, 75, 78, 80, 58, 61, 77, 52, 55, 72, 47, 50, 94, 68, 71, 99, 73, 76, 101, 75, 78, 102, 76, 79, 107, 81, 82, 115, 89, 90, 119, 93, 94, 119, 93, 94, 111, 82, 86, 107, 76, 81, 100, 70, 72, 96, 66, 66, 92, 62, 60, 86, 57, 51, 77, 48, 42, 70, 41, 33, 72, 44, 33, 72, 44, 33, 71, 41, 33, 67, 37, 29, 63, 32, 27, 60, 29, 24, 61, 30, 27, 62, 31, 28, 66, 33, 28, 70, 35, 29, 71, 38, 33, 68, 35, 30, 63, 29, 27, 62, 28, 26, 64, 33, 31, 68, 37, 35, 78, 48, 48, 76, 46, 46, 83, 53, 55, 95, 65, 67, 98, 67, 72, 99, 70, 74, 118, 89, 93, 143, 114, 118, 174, 148, 151, 163, 138, 141, 152, 127, 131, 143, 121, 124, 138, 118, 120, 129, 110, 112, 118, 99, 101, 106, 90, 91, 118, 102, 105, 118, 103, 106, 119, 104, 107, 121, 106, 109, 124, 109, 112, 128, 113, 116, 132, 115, 121, 133, 116, 122, 140, 123, 129, 138, 121, 127, 139, 122, 128, 145, 128, 134, 151, 134, 140, 152, 135, 141, 144, 127, 133, 136, 119, 125, 143, 126, 132, 133, 116, 122, 126, 109, 115, 127, 110, 116, 132, 115, 121, 138, 121, 127, 146, 129, 135, 153, 138, 143, 166, 156, 157, 160, 151, 152, 155, 143, 145, 151, 136, 139, 147, 131, 134, 144, 125, 129, 139, 120, 124, 136, 115, 120, 151, 130, 135, 147, 128, 132, 142, 123, 127, 135, 119, 122, 133, 118, 121, 134, 124, 125, 143, 133, 134, 149, 140, 141, 154, 148, 148, 145, 141, 140, 139, 133, 133, 141, 135, 135, 150, 144, 144, 159, 153, 153, 164, 158, 158, 164, 158, 158, 154, 145, 146, 156, 147, 148, 157, 148, 149, 159, 150, 151, 164, 154, 155, 162, 153, 154, 152, 142, 143, 138, 130, 128, 139, 131, 129, 139, 131, 128, 135, 125, 123, 129, 119, 117, 131, 120, 118, 138, 127, 125, 146, 132, 131, 146, 132, 131, 133, 117, 117, 114, 98, 98, 96, 78, 78, 90, 72, 72, 100, 80, 81, 109, 89, 90, 109, 89, 90, 105, 85, 84, 93, 74, 70, 95, 76, 70, 91, 72, 66, 81, 62, 56, 75, 56, 52, 74, 55, 51, 73, 55, 51, 71, 53, 49, 63, 48, 45, 65, 50, 47, 57, 43, 40, 39, 25, 22, 24, 10, 7, 30, 16, 13, 56, 45, 41, 81, 70, 66, 67, 56, 54, 63, 52, 50, 50, 39, 37, 48, 37, 35, 68, 58, 56, 89, 79, 77, 97, 87, 85, 100, 92, 89, 109, 101, 98, 112, 107, 103, 129, 124, 120, 151, 146, 142, 160, 157, 152, 160, 157, 152, 167, 164, 159, 180, 175, 171, 173, 166, 160, 172, 165, 159, 171, 164, 158, 171, 164, 158, 172, 165, 159, 172, 165, 159, 168, 161, 155, 165, 158, 152, 168, 161, 155, 173, 166, 160, 177, 170, 164, 177, 170, 164, 181, 174, 168, 187, 180, 174, 188, 181, 175, 186, 179, 173, 190, 182, 179, 189, 181, 178, 191, 183, 180, 197, 189, 186, 198, 190, 187, 194, 186, 183, 193, 185, 182, 195, 187, 184, 191, 183, 180, 191, 183, 180, 192, 184, 181, 192, 184, 181, 191, 183, 180, 189, 181, 178, 188, 180, 177, 187, 179, 176, 194, 186, 183, 192, 185, 179, 190, 182, 179, 191, 184, 178, 192, 184, 181, 192, 185, 179, 189, 181, 178, 186, 179, 173, 192, 184, 181, 194, 187, 181, 196, 188, 185, 197, 190, 184, 196, 188, 185, 196, 189, 183, 199, 191, 188, 201, 193, 190, 195, 190, 187, 196, 192, 191, 195, 191, 188, 191, 187, 184, 192, 188, 185, 193, 189, 186, 191, 186, 183, 184, 179, 176, 183, 178, 174, 187, 182, 178, 184, 176, 173, 181, 173, 170, 181, 173, 170, 174, 166, 163, 174, 167, 161, 187, 180, 174, 197, 189, 186, 178, 170, 167, 179, 171, 168, 185, 177, 174, 175, 167, 164, 175, 167, 164, 177, 169, 166, 166, 158, 155, 181, 173, 170, 169, 161, 158, 171, 163, 160, 181, 173, 170, 183, 175, 172, 188, 180, 177, 193, 185, 182, 190, 182, 179, 187, 180, 174, 188, 181, 175, 187, 180, 174, 179, 172, 166, 170, 163, 157, 164, 157, 151, 164, 157, 151, 167, 160, 154, 164, 157, 151, 172, 165, 159, 195, 188, 182, 185, 178, 172, 171, 164, 158, 178, 171, 165, 178, 171, 165, 177, 170, 164, 189, 184, 180, 182, 177, 173, 176, 171, 167, 176, 171, 167, 175, 170, 166, 171, 166, 162, 169, 164, 160, 171, 166, 162, 176, 171, 167, 177, 172, 168, 182, 177, 173, 177, 172, 168, 166, 161, 157, 169, 164, 160, 174, 169, 165, 169, 164, 160, 186, 181, 177, 184, 179, 175, 180, 173, 167, 175, 168, 162, 176, 169, 163, 179, 172, 166, 176, 167, 160, 169, 160, 153, 150, 141, 134, 158, 149, 142, 164, 157, 151, 164, 157, 151, 163, 156, 150, 164, 157, 151, 160, 155, 151, 156, 151, 147, 155, 148, 142, 140, 133, 127, 152, 145, 139, 169, 162, 156, 162, 153, 146, 153, 144, 137, 146, 137, 130, 132, 123, 116, 147, 138, 131, 155, 146, 139, 144, 134, 125, 128, 118, 109, 133, 123, 114, 138, 128, 119, 127, 117, 108, 115, 105, 96, 106, 97, 90, 96, 87, 80, 108, 99, 94, 119, 110, 105, 107, 98, 93, 102, 93, 88, 110, 101, 96, 109, 100, 95, 61, 51, 49, 77, 67, 65, 92, 82, 80, 97, 87, 85, 95, 85, 83, 89, 79, 77, 81, 71, 70, 73, 63, 61, 102, 95, 89, 88, 81, 73, 62, 53, 46, 85, 76, 69, 106, 95, 91, 79, 68, 64, 74, 60, 57, 85, 71, 68, 99, 85, 82, 81, 67, 64, 88, 77, 75, 90, 79, 77, 79, 69, 67, 104, 94, 92, 107, 99, 96, 60, 51, 46, 62, 51, 47, 87, 74, 68, 58, 47, 43, 50, 39, 35, 32, 22, 20, 75, 65, 63, 150, 142, 140, 90, 82, 80, 32, 24, 22, 56, 48, 46, 45, 37, 35, 52, 44, 42, 71, 61, 60, 57, 47, 46, 52, 42, 40, 62, 52, 50, 62, 53, 48, 72, 63, 58, 67, 58, 53, 43, 34, 29, 40, 31, 26, 70, 61, 56, 76, 67, 62, 47, 38, 33, 28, 17, 13, 73, 62, 58, 79, 68, 64, 48, 37, 33, 50, 36, 33, 76, 62, 59, 77, 63, 60, 56, 42, 39, 58, 47, 43, 58, 47, 43, 63, 49, 46, 64, 50, 47, 55, 41, 38, 47, 33, 30, 63, 49, 46, 88, 74, 71, 69, 54, 51, 91, 76, 73, 111, 96, 93, 97, 82, 79, 80, 65, 62, 95, 80, 77, 98, 80, 78, 62, 47, 44, 81, 72, 67, 146, 137, 132, 167, 158, 153, 105, 94, 90, 58, 44, 43, 79, 63, 63, 96, 80, 80, 73, 57, 57, 80, 64, 64, 90, 74, 74, 92, 80, 80, 93, 83, 82, 94, 86, 84, 95, 90, 87, 118, 114, 111, 153, 147, 147, 174, 162, 166, 123, 111, 115, 74, 62, 66, 60, 50, 51, 77, 68, 69, 99, 94, 91, 94, 89, 86, 69, 64, 60, 60, 55, 49, 69, 64, 58, 95, 88, 80, 88, 79, 72, 78, 65, 57, 93, 78, 71, 105, 90, 83, 116, 101, 96, 123, 109, 108, 121, 109, 109, 127, 113, 113, 105, 93, 93, 85, 71, 70, 70, 59, 57, 49, 38, 36, 46, 35, 33, 85, 75, 73, 102, 92, 90, 114, 105, 100, 112, 103, 98, 110, 101, 96, 115, 108, 102, 122, 113, 108, 122, 113, 108, 93, 81, 81, 84, 70, 70, 75, 61, 61, 79, 65, 65, 95, 79, 79, 103, 87, 87, 92, 74, 74, 75, 57, 57, 84, 64, 65, 94, 74, 75, 90, 69, 68, 63, 42, 41, 41, 17, 17, 40, 16, 16, 53, 27, 28, 65, 36, 38, 73, 43, 43, 78, 48, 48, 90, 60, 62, 104, 75, 77, 115, 89, 90, 122, 94, 93, 121, 90, 87, 119, 84, 78, 115, 75, 67, 116, 72, 61, 114, 67, 57, 110, 63, 53, 105, 60, 54, 101, 60, 56, 100, 60, 60, 98, 62, 62, 99, 68, 65, 99, 71, 68, 99, 71, 70, 96, 70, 71, 101, 75, 78, 106, 80, 83, 109, 80, 82, 104, 76, 75, 101, 73, 72, 101, 76, 72, 106, 83, 77, 113, 93, 86, 120, 103, 96, 123, 110, 104, 121, 112, 107, 121, 112, 107, 139, 128, 124, 143, 132, 128, 148, 134, 133, 151, 137, 136, 157, 143, 142, 166, 152, 151, 169, 153, 153, 168, 150, 148, 180, 161, 157, 187, 164, 156, 167, 139, 128, 145, 112, 97, 149, 107, 91, 156, 109, 91, 170, 114, 97, 187, 136, 119, 190, 148, 134, 197, 167, 157, 200, 181, 175, 206, 198, 195, 223, 224, 226, 231, 238, 244, 231, 240, 247, 234, 243, 250, 237, 244, 252, 237, 245, 248, 237, 245, 247, 237, 246, 245, 240, 246, 246, 241, 245, 246, 244, 245, 250, 244, 245, 250, 244, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 250, 239, 244, 250, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 238, 238, 246, 238, 238, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 231, 238, 244, 231, 238, 244, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 238, 230, 234, 237, 230, 234, 237, 229, 232, 237, 227, 232, 238, 224, 231, 239, 224, 231, 241, 223, 229, 241, 223, 229, 241, 219, 226, 236, 222, 226, 235, 220, 223, 230, 209, 210, 214, 185, 183, 186, 158, 157, 155, 147, 142, 139, 149, 141, 138, 151, 137, 137, 142, 126, 127, 139, 120, 122, 124, 105, 107, 95, 73, 76, 76, 54, 57, 75, 50, 53, 74, 49, 52, 94, 68, 71, 99, 73, 76, 103, 77, 80, 105, 79, 82, 111, 85, 86, 120, 94, 95, 123, 99, 99, 123, 97, 98, 113, 82, 87, 112, 80, 85, 109, 77, 80, 104, 72, 73, 98, 67, 65, 90, 59, 54, 82, 53, 47, 78, 49, 41, 84, 56, 45, 79, 51, 40, 72, 43, 35, 67, 38, 30, 64, 35, 29, 63, 34, 28, 61, 32, 28, 60, 31, 27, 59, 30, 24, 64, 35, 27, 68, 39, 31, 67, 38, 30, 63, 36, 29, 63, 36, 29, 69, 41, 37, 75, 47, 44, 73, 45, 44, 83, 55, 54, 100, 71, 73, 115, 89, 90, 128, 102, 105, 137, 111, 114, 147, 121, 124, 156, 130, 133, 132, 106, 109, 121, 96, 99, 118, 93, 96, 121, 99, 101, 122, 102, 103, 115, 97, 97, 114, 95, 97, 116, 100, 101, 109, 93, 94, 109, 93, 94, 111, 95, 98, 116, 100, 103, 123, 107, 110, 133, 117, 120, 144, 125, 129, 149, 130, 134, 132, 115, 121, 135, 118, 124, 140, 123, 129, 144, 127, 133, 143, 126, 132, 138, 121, 127, 129, 112, 118, 123, 106, 112, 127, 110, 116, 121, 104, 110, 122, 105, 111, 133, 116, 122, 145, 128, 134, 153, 136, 142, 160, 143, 149, 165, 150, 155, 163, 153, 154, 152, 144, 142, 139, 127, 127, 131, 117, 117, 129, 113, 114, 135, 116, 118, 142, 120, 123, 146, 124, 127, 145, 123, 126, 132, 110, 113, 121, 102, 104, 126, 110, 111, 146, 132, 132, 162, 152, 151, 170, 160, 159, 168, 163, 160, 152, 148, 147, 142, 141, 139, 140, 136, 135, 146, 142, 141, 158, 154, 153, 165, 161, 160, 162, 158, 157, 155, 151, 150, 161, 155, 155, 158, 152, 152, 147, 141, 141, 134, 128, 128, 131, 122, 123, 133, 127, 127, 139, 130, 131, 140, 132, 130, 142, 134, 132, 141, 133, 130, 134, 126, 123, 126, 118, 115, 124, 114, 112, 129, 119, 117, 134, 123, 121, 135, 121, 120, 152, 136, 136, 138, 122, 122, 121, 103, 103, 109, 91, 91, 109, 89, 90, 115, 95, 96, 122, 102, 103, 126, 106, 105, 99, 78, 75, 100, 79, 74, 95, 76, 70, 87, 68, 62, 82, 63, 59, 78, 59, 55, 69, 51, 47, 60, 42, 38, 53, 38, 33, 52, 37, 32, 47, 33, 30, 39, 25, 22, 32, 18, 15, 32, 18, 15, 38, 27, 23, 45, 34, 30, 72, 61, 59, 80, 69, 67, 62, 52, 50, 45, 35, 33, 62, 52, 50, 85, 75, 73, 86, 78, 75, 80, 72, 69, 88, 80, 77, 84, 79, 75, 99, 94, 90, 128, 125, 120, 147, 144, 139, 151, 148, 143, 159, 156, 151, 174, 169, 165, 174, 167, 161, 176, 167, 160, 174, 165, 158, 172, 163, 156, 171, 162, 155, 170, 161, 154, 165, 156, 149, 159, 150, 143, 166, 157, 150, 171, 162, 155, 174, 165, 158, 174, 165, 158, 177, 168, 161, 182, 173, 166, 183, 174, 167, 180, 171, 166, 184, 176, 173, 183, 175, 172, 186, 178, 175, 193, 185, 182, 195, 187, 184, 192, 184, 181, 192, 184, 181, 194, 186, 183, 192, 184, 181, 193, 185, 182, 193, 185, 182, 192, 184, 181, 191, 183, 180, 190, 182, 179, 188, 180, 177, 187, 179, 176, 195, 186, 181, 191, 182, 175, 187, 178, 173, 187, 178, 171, 190, 181, 176, 191, 182, 175, 188, 179, 174, 186, 177, 170, 188, 179, 174, 190, 181, 174, 191, 182, 177, 191, 182, 175, 191, 182, 177, 192, 183, 176, 195, 186, 181, 196, 189, 183, 192, 187, 184, 193, 189, 188, 192, 188, 187, 189, 185, 184, 190, 185, 182, 192, 187, 184, 187, 182, 179, 180, 175, 172, 181, 173, 171, 186, 178, 176, 184, 176, 173, 182, 174, 171, 181, 173, 170, 173, 165, 162, 172, 164, 161, 186, 178, 175, 190, 182, 179, 171, 163, 160, 176, 168, 165, 185, 177, 174, 175, 167, 164, 176, 168, 165, 178, 170, 167, 162, 154, 151, 181, 173, 170, 165, 157, 154, 166, 158, 155, 177, 169, 166, 181, 173, 170, 185, 177, 174, 191, 183, 180, 189, 181, 178, 185, 178, 172, 188, 181, 175, 188, 181, 175, 179, 172, 166, 167, 160, 154, 159, 152, 146, 161, 154, 148, 165, 158, 152, 169, 162, 156, 174, 167, 161, 198, 191, 185, 185, 178, 172, 172, 165, 159, 183, 176, 170, 175, 168, 162, 170, 163, 157, 186, 181, 177, 180, 175, 171, 175, 170, 166, 175, 170, 166, 173, 168, 164, 169, 164, 160, 168, 163, 159, 171, 166, 162, 173, 168, 164, 172, 167, 163, 179, 174, 170, 178, 173, 169, 167, 162, 158, 172, 167, 163, 179, 174, 170, 171, 166, 162, 182, 177, 173, 183, 178, 174, 182, 175, 169, 176, 169, 163, 175, 166, 159, 178, 169, 162, 178, 169, 162, 176, 167, 160, 149, 140, 133, 157, 148, 141, 163, 154, 147, 163, 154, 147, 161, 154, 148, 163, 156, 150, 160, 155, 151, 157, 152, 148, 159, 152, 146, 134, 127, 121, 143, 134, 127, 163, 154, 147, 158, 149, 142, 152, 143, 136, 148, 139, 132, 132, 123, 116, 138, 128, 119, 157, 147, 138, 153, 143, 134, 133, 123, 114, 132, 122, 113, 136, 126, 117, 127, 117, 108, 116, 106, 97, 110, 101, 94, 103, 94, 89, 105, 96, 91, 113, 104, 99, 115, 106, 101, 113, 104, 99, 113, 104, 99, 114, 105, 100, 80, 70, 68, 70, 60, 58, 87, 77, 75, 102, 92, 90, 91, 81, 80, 86, 76, 75, 89, 79, 78, 77, 67, 65, 94, 87, 81, 98, 91, 83, 72, 63, 56, 78, 69, 62, 97, 86, 82, 82, 71, 67, 79, 65, 62, 84, 70, 67, 96, 82, 79, 86, 72, 69, 93, 82, 80, 86, 75, 73, 71, 61, 59, 103, 93, 91, 112, 104, 101, 66, 57, 52, 64, 53, 49, 78, 65, 59, 69, 58, 54, 61, 50, 46, 40, 30, 28, 96, 86, 84, 156, 148, 146, 77, 69, 67, 43, 34, 35, 60, 51, 52, 68, 60, 58, 52, 44, 42, 59, 49, 48, 68, 58, 57, 50, 40, 38, 50, 40, 38, 52, 43, 38, 71, 62, 57, 59, 50, 45, 35, 26, 21, 46, 37, 32, 70, 61, 56, 67, 58, 53, 52, 43, 38, 40, 29, 25, 64, 53, 49, 61, 50, 46, 45, 34, 30, 57, 43, 40, 71, 57, 54, 62, 48, 45, 48, 34, 31, 45, 34, 30, 64, 53, 49, 64, 50, 47, 56, 42, 39, 59, 45, 42, 58, 44, 41, 65, 51, 48, 88, 74, 71, 70, 55, 52, 92, 77, 74, 107, 92, 89, 102, 87, 84, 94, 79, 76, 96, 81, 78, 102, 84, 82, 98, 83, 80, 146, 135, 131, 153, 144, 139, 109, 98, 94, 74, 60, 57, 84, 68, 68, 72, 54, 54, 57, 39, 39, 83, 65, 65, 79, 61, 61, 80, 64, 64, 94, 82, 82, 111, 103, 101, 124, 120, 117, 144, 143, 139, 161, 162, 157, 164, 163, 159, 116, 104, 106, 73, 57, 60, 64, 49, 52, 90, 78, 78, 93, 83, 82, 77, 69, 66, 76, 71, 67, 86, 81, 77, 55, 50, 44, 84, 79, 73, 114, 107, 99, 80, 71, 64, 61, 50, 44, 101, 88, 82, 126, 111, 106, 135, 120, 115, 119, 108, 106, 104, 94, 93, 112, 100, 100, 100, 90, 89, 82, 70, 70, 63, 53, 52, 45, 35, 33, 59, 49, 47, 110, 100, 98, 104, 94, 92, 104, 93, 91, 112, 101, 99, 122, 111, 107, 123, 114, 109, 117, 106, 102, 111, 100, 96, 100, 86, 86, 90, 76, 76, 89, 75, 75, 100, 86, 86, 104, 88, 88, 93, 77, 77, 84, 66, 66, 81, 63, 63, 99, 79, 80, 100, 80, 81, 85, 64, 63, 58, 34, 34, 44, 20, 20, 54, 30, 30, 70, 44, 45, 78, 50, 49, 73, 43, 41, 83, 53, 51, 97, 67, 67, 111, 83, 82, 119, 91, 90, 122, 92, 90, 121, 88, 83, 121, 84, 75, 114, 72, 60, 112, 69, 53, 111, 65, 50, 107, 61, 48, 104, 60, 51, 104, 61, 55, 102, 62, 60, 101, 66, 64, 102, 72, 70, 103, 75, 72, 104, 76, 75, 101, 75, 76, 106, 80, 83, 111, 86, 89, 112, 86, 87, 108, 82, 81, 95, 69, 68, 99, 74, 70, 107, 83, 79, 113, 94, 88, 116, 101, 96, 116, 105, 99, 113, 106, 100, 111, 104, 98, 119, 108, 104, 135, 122, 116, 149, 134, 131, 156, 141, 138, 160, 145, 142, 166, 151, 148, 171, 156, 153, 173, 155, 151, 181, 162, 156, 187, 164, 156, 161, 133, 122, 137, 104, 89, 146, 104, 88, 151, 104, 84, 161, 106, 86, 177, 126, 107, 189, 149, 137, 198, 170, 159, 202, 183, 177, 209, 201, 199, 225, 226, 228, 233, 240, 246, 233, 242, 249, 235, 244, 251, 237, 244, 252, 237, 245, 248, 237, 245, 247, 237, 246, 245, 240, 246, 246, 241, 245, 246, 244, 245, 250, 244, 245, 250, 244, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 250, 239, 244, 250, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 231, 238, 244, 231, 238, 244, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 238, 230, 233, 238, 232, 233, 237, 229, 232, 237, 228, 231, 238, 226, 230, 239, 224, 231, 241, 225, 229, 240, 223, 230, 240, 228, 232, 243, 226, 230, 239, 223, 226, 231, 213, 214, 218, 191, 191, 193, 167, 166, 164, 153, 152, 148, 154, 149, 146, 140, 128, 128, 139, 125, 125, 144, 128, 129, 136, 117, 119, 107, 87, 89, 88, 66, 69, 86, 64, 66, 88, 63, 66, 87, 61, 64, 97, 71, 74, 108, 82, 85, 115, 89, 92, 121, 95, 96, 125, 101, 101, 123, 99, 99, 118, 93, 96, 115, 84, 90, 117, 86, 92, 117, 85, 90, 112, 80, 83, 104, 73, 71, 96, 65, 62, 90, 61, 55, 88, 59, 53, 96, 67, 59, 87, 58, 50, 76, 47, 39, 71, 40, 35, 70, 39, 34, 69, 38, 33, 67, 36, 33, 64, 33, 30, 57, 28, 22, 64, 35, 29, 71, 42, 36, 74, 45, 39, 74, 46, 42, 78, 50, 46, 88, 60, 56, 96, 68, 65, 102, 74, 73, 114, 88, 87, 125, 99, 100, 128, 102, 103, 132, 106, 109, 132, 107, 110, 118, 93, 96, 99, 74, 77, 96, 71, 74, 95, 70, 73, 107, 82, 85, 122, 100, 102, 120, 100, 101, 105, 85, 87, 99, 80, 82, 107, 88, 90, 104, 85, 87, 107, 91, 94, 119, 100, 104, 127, 111, 114, 136, 117, 121, 140, 121, 125, 141, 122, 126, 141, 122, 126, 127, 108, 114, 132, 113, 119, 137, 118, 124, 135, 116, 122, 129, 110, 116, 124, 105, 111, 124, 105, 111, 127, 108, 114, 114, 95, 101, 117, 98, 104, 128, 111, 117, 147, 130, 136, 160, 143, 149, 161, 144, 150, 155, 138, 144, 151, 136, 139, 141, 129, 129, 140, 129, 127, 142, 128, 128, 143, 127, 128, 143, 124, 126, 139, 119, 121, 132, 110, 113, 125, 103, 106, 117, 95, 98, 132, 109, 115, 149, 130, 134, 158, 142, 145, 157, 142, 145, 152, 140, 142, 149, 139, 140, 149, 140, 141, 149, 143, 143, 153, 149, 148, 160, 156, 155, 166, 162, 161, 168, 164, 163, 166, 162, 161, 162, 156, 156, 157, 151, 151, 146, 140, 140, 151, 145, 145, 152, 143, 144, 140, 131, 132, 129, 120, 121, 129, 121, 119, 135, 126, 127, 139, 131, 129, 135, 127, 125, 141, 133, 130, 146, 138, 135, 144, 136, 133, 141, 131, 129, 136, 126, 124, 127, 116, 114, 118, 107, 105, 135, 121, 120, 143, 127, 127, 150, 134, 134, 147, 131, 131, 137, 119, 119, 124, 106, 106, 115, 97, 97, 113, 93, 94, 104, 85, 81, 105, 84, 79, 100, 81, 77, 94, 75, 71, 89, 70, 66, 83, 64, 60, 70, 51, 47, 56, 38, 34, 51, 33, 29, 48, 33, 28, 48, 33, 30, 49, 34, 31, 49, 34, 31, 46, 32, 29, 42, 28, 25, 37, 26, 22, 39, 28, 26, 91, 80, 78, 100, 89, 87, 59, 49, 47, 36, 25, 23, 43, 33, 31, 66, 56, 54, 87, 79, 76, 95, 87, 84, 80, 75, 71, 84, 79, 75, 109, 104, 100, 127, 122, 118, 132, 127, 123, 142, 137, 133, 159, 154, 150, 174, 167, 161, 177, 168, 161, 175, 166, 161, 171, 162, 155, 169, 160, 153, 168, 159, 152, 162, 153, 146, 155, 146, 139, 167, 158, 151, 171, 162, 155, 173, 164, 157, 172, 163, 156, 173, 164, 157, 177, 168, 161, 178, 167, 161, 174, 165, 158, 181, 172, 167, 179, 172, 166, 184, 174, 172, 190, 183, 177, 193, 183, 181, 190, 183, 177, 191, 181, 179, 193, 186, 180, 195, 185, 183, 194, 187, 181, 195, 185, 183, 193, 186, 180, 193, 183, 181, 190, 183, 177, 189, 179, 177, 188, 179, 174, 194, 185, 180, 189, 180, 173, 184, 175, 168, 184, 175, 168, 187, 178, 171, 189, 180, 173, 187, 178, 171, 184, 175, 168, 183, 174, 167, 185, 176, 169, 186, 177, 170, 186, 177, 170, 185, 176, 169, 186, 177, 170, 190, 181, 174, 192, 185, 179, 189, 184, 181, 191, 187, 186, 190, 186, 185, 188, 184, 183, 189, 184, 181, 190, 185, 182, 185, 180, 177, 178, 173, 170, 178, 170, 168, 185, 177, 175, 185, 177, 174, 183, 175, 172, 181, 173, 170, 172, 164, 161, 171, 163, 160, 184, 176, 173, 184, 176, 173, 164, 157, 151, 173, 165, 162, 186, 179, 173, 176, 168, 165, 177, 170, 164, 179, 171, 168, 161, 153, 150, 180, 172, 169, 163, 155, 152, 162, 154, 151, 175, 167, 164, 179, 171, 168, 181, 176, 172, 189, 181, 178, 189, 181, 178, 184, 177, 171, 188, 181, 175, 188, 181, 175, 179, 172, 166, 165, 158, 152, 157, 150, 144, 159, 152, 146, 164, 157, 151, 176, 169, 163, 179, 172, 166, 203, 196, 190, 188, 181, 175, 176, 169, 163, 189, 182, 176, 176, 169, 163, 169, 161, 158, 184, 179, 175, 178, 173, 169, 175, 170, 166, 174, 169, 165, 172, 167, 163, 168, 163, 159, 168, 163, 159, 172, 167, 163, 167, 162, 158, 163, 158, 154, 171, 166, 162, 171, 166, 162, 163, 158, 154, 171, 166, 162, 180, 175, 171, 172, 167, 163, 179, 174, 170, 182, 177, 173, 183, 176, 170, 176, 169, 163, 173, 166, 160, 177, 168, 161, 180, 171, 164, 180, 171, 164, 150, 141, 134, 158, 149, 142, 163, 154, 147, 163, 154, 147, 161, 154, 148, 163, 156, 150, 163, 156, 150, 160, 153, 147, 164, 157, 151, 132, 125, 119, 136, 127, 120, 156, 147, 140, 153, 144, 137, 152, 143, 136, 151, 142, 135, 135, 126, 119, 128, 118, 109, 157, 147, 138, 159, 149, 140, 137, 127, 118, 131, 121, 112, 134, 124, 115, 125, 115, 106, 115, 104, 98, 114, 105, 100, 111, 102, 97, 104, 95, 90, 107, 98, 93, 122, 113, 108, 126, 117, 112, 119, 110, 105, 115, 106, 101, 112, 102, 100, 76, 66, 64, 88, 78, 76, 110, 100, 98, 87, 77, 75, 77, 67, 65, 86, 76, 75, 76, 66, 64, 81, 74, 68, 104, 97, 89, 79, 70, 63, 71, 62, 55, 90, 79, 75, 90, 79, 75, 92, 78, 75, 89, 75, 72, 94, 80, 77, 88, 77, 73, 98, 87, 85, 83, 73, 71, 68, 58, 56, 104, 96, 93, 119, 111, 108, 73, 63, 61, 64, 53, 49, 65, 54, 50, 71, 62, 57, 66, 59, 53, 44, 39, 35, 104, 99, 95, 154, 149, 146, 72, 64, 62, 68, 58, 57, 72, 62, 61, 85, 75, 74, 49, 39, 38, 54, 44, 43, 85, 75, 74, 48, 40, 37, 26, 18, 15, 44, 35, 30, 70, 61, 56, 51, 42, 37, 22, 13, 8, 40, 31, 26, 61, 52, 47, 59, 50, 45, 60, 51, 46, 59, 48, 44, 46, 35, 31, 36, 25, 21, 55, 44, 40, 77, 66, 62, 63, 52, 48, 50, 36, 33, 59, 48, 44, 49, 35, 32, 80, 66, 63, 73, 59, 56, 54, 40, 37, 63, 49, 46, 60, 46, 43, 56, 42, 39, 75, 61, 58, 79, 65, 62, 85, 71, 68, 100, 86, 83, 115, 100, 97, 103, 88, 85, 77, 61, 61, 106, 88, 88, 167, 152, 149, 140, 129, 123, 101, 90, 84, 86, 72, 69, 78, 64, 61, 66, 50, 50, 75, 59, 60, 86, 71, 74, 72, 57, 60, 85, 73, 75, 86, 76, 77, 112, 106, 106, 144, 140, 139, 163, 162, 158, 174, 173, 169, 141, 140, 135, 80, 75, 71, 85, 71, 70, 79, 63, 63, 90, 74, 75, 99, 85, 84, 88, 77, 75, 86, 76, 74, 95, 85, 83, 92, 84, 81, 63, 56, 50, 87, 80, 74, 103, 94, 87, 58, 49, 42, 63, 52, 46, 133, 120, 114, 144, 129, 124, 119, 105, 102, 92, 81, 79, 76, 65, 63, 98, 86, 86, 102, 91, 89, 84, 72, 72, 62, 52, 50, 56, 45, 43, 95, 85, 83, 116, 105, 103, 85, 74, 72, 73, 62, 60, 99, 88, 86, 127, 116, 112, 127, 116, 112, 111, 100, 96, 101, 90, 86, 104, 90, 89, 93, 79, 78, 96, 82, 82, 109, 95, 94, 105, 91, 90, 87, 71, 71, 80, 64, 64, 90, 74, 74, 99, 81, 81, 90, 70, 71, 69, 48, 47, 53, 32, 31, 60, 39, 38, 79, 55, 55, 77, 53, 53, 62, 36, 37, 72, 44, 43, 84, 56, 53, 101, 73, 72, 114, 86, 83, 121, 91, 89, 121, 90, 85, 121, 87, 78, 122, 84, 73, 113, 69, 56, 112, 66, 51, 109, 63, 48, 106, 60, 47, 104, 60, 51, 102, 61, 55, 103, 65, 62, 102, 68, 67, 105, 75, 73, 105, 79, 78, 105, 79, 80, 104, 80, 80, 108, 83, 86, 115, 90, 93, 115, 90, 93, 111, 87, 87, 96, 72, 70, 100, 79, 76, 107, 88, 84, 113, 95, 91, 113, 100, 94, 108, 99, 94, 103, 96, 90, 99, 92, 86, 97, 86, 80, 124, 109, 104, 148, 133, 130, 158, 143, 140, 158, 143, 140, 162, 147, 144, 169, 154, 151, 176, 158, 154, 182, 163, 157, 186, 163, 155, 158, 130, 119, 132, 100, 87, 143, 104, 89, 149, 103, 87, 151, 102, 85, 166, 120, 105, 186, 153, 144, 196, 172, 168, 202, 187, 184, 209, 203, 203, 228, 229, 233, 235, 242, 248, 236, 243, 251, 238, 245, 253, 237, 244, 250, 237, 245, 248, 237, 245, 247, 239, 245, 245, 240, 245, 248, 241, 245, 248, 244, 245, 250, 244, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 250, 239, 244, 250, 238, 243, 249, 238, 243, 249, 238, 243, 249, 238, 243, 249, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 232, 239, 229, 232, 239, 228, 231, 238, 228, 231, 240, 228, 231, 240, 226, 230, 239, 227, 230, 239, 226, 231, 237, 225, 228, 235, 222, 225, 230, 222, 226, 229, 220, 224, 225, 204, 206, 205, 174, 176, 173, 152, 154, 149, 148, 147, 143, 148, 139, 140, 127, 117, 118, 111, 99, 101, 108, 93, 96, 100, 84, 85, 88, 69, 71, 86, 64, 66, 94, 72, 74, 110, 86, 86, 112, 88, 88, 114, 90, 90, 116, 92, 92, 117, 92, 95, 116, 94, 96, 115, 93, 95, 115, 93, 96, 114, 85, 90, 110, 81, 86, 106, 75, 80, 102, 72, 74, 100, 70, 72, 98, 68, 68, 96, 66, 64, 93, 63, 61, 91, 60, 57, 86, 55, 52, 84, 53, 50, 86, 53, 48, 78, 45, 40, 68, 35, 30, 70, 37, 32, 80, 47, 42, 87, 52, 50, 85, 50, 48, 81, 47, 45, 80, 46, 44, 80, 49, 47, 85, 54, 52, 89, 59, 57, 93, 63, 63, 113, 83, 83, 116, 87, 89, 116, 87, 91, 107, 81, 84, 94, 68, 71, 84, 58, 61, 80, 55, 58, 81, 56, 59, 82, 60, 63, 105, 83, 86, 118, 96, 99, 110, 90, 92, 104, 84, 86, 110, 89, 94, 115, 94, 99, 112, 91, 96, 121, 100, 105, 127, 108, 114, 137, 116, 123, 141, 122, 128, 141, 120, 127, 136, 115, 122, 132, 111, 118, 129, 108, 115, 134, 113, 122, 125, 104, 113, 115, 94, 103, 111, 90, 99, 114, 93, 100, 120, 99, 106, 123, 102, 109, 123, 102, 109, 125, 104, 111, 144, 123, 130, 160, 141, 145, 160, 141, 145, 151, 135, 138, 147, 131, 134, 147, 132, 135, 149, 133, 136, 152, 134, 134, 144, 124, 123, 136, 116, 117, 131, 111, 112, 127, 105, 107, 120, 100, 102, 121, 99, 102, 124, 103, 108, 134, 113, 118, 130, 111, 117, 129, 110, 116, 135, 118, 124, 151, 136, 143, 163, 148, 155, 158, 145, 154, 147, 134, 141, 160, 149, 153, 166, 156, 157, 169, 159, 160, 165, 155, 156, 162, 152, 153, 162, 152, 153, 161, 151, 150, 158, 148, 147, 149, 139, 138, 151, 141, 140, 152, 142, 141, 151, 141, 140, 147, 137, 136, 143, 133, 131, 139, 129, 128, 136, 126, 125, 142, 132, 131, 147, 137, 136, 142, 132, 131, 132, 122, 121, 135, 125, 124, 147, 137, 136, 146, 134, 134, 134, 122, 122, 135, 123, 123, 116, 102, 102, 111, 97, 97, 136, 122, 122, 160, 144, 145, 149, 133, 134, 114, 98, 99, 87, 71, 71, 116, 96, 95, 115, 96, 92, 111, 91, 90, 105, 85, 84, 97, 76, 75, 90, 69, 68, 84, 63, 62, 80, 60, 59, 78, 58, 57, 70, 50, 49, 66, 46, 45, 69, 51, 49, 72, 54, 52, 67, 52, 49, 63, 48, 45, 61, 47, 44, 51, 37, 36, 52, 38, 38, 88, 74, 74, 97, 85, 85, 58, 44, 44, 44, 32, 32, 61, 49, 49, 57, 47, 46, 101, 91, 90, 97, 87, 86, 92, 82, 81, 92, 84, 82, 103, 95, 93, 123, 115, 113, 143, 135, 133, 155, 147, 144, 168, 158, 156, 172, 163, 158, 177, 167, 165, 175, 166, 161, 164, 155, 150, 152, 143, 138, 152, 143, 138, 158, 149, 144, 161, 150, 144, 162, 151, 145, 162, 151, 145, 162, 151, 145, 166, 155, 149, 173, 162, 156, 176, 163, 157, 170, 159, 153, 168, 157, 151, 176, 167, 160, 181, 170, 166, 184, 175, 168, 195, 184, 180, 193, 184, 177, 190, 179, 175, 193, 184, 177, 195, 184, 180, 193, 184, 177, 192, 181, 177, 189, 180, 173, 188, 177, 173, 187, 178, 171, 188, 177, 173, 188, 179, 174, 192, 183, 178, 190, 181, 176, 188, 179, 174, 185, 176, 171, 183, 174, 169, 182, 173, 168, 182, 173, 168, 182, 173, 168, 178, 169, 164, 180, 171, 166, 183, 174, 169, 183, 174, 169, 183, 174, 169, 184, 175, 170, 186, 177, 172, 188, 181, 175, 180, 175, 172, 183, 178, 175, 187, 182, 179, 189, 184, 181, 189, 184, 181, 185, 180, 177, 181, 176, 172, 178, 173, 169, 171, 166, 162, 171, 166, 162, 184, 179, 175, 190, 185, 181, 179, 174, 168, 172, 167, 161, 175, 170, 164, 175, 170, 164, 179, 172, 166, 155, 148, 140, 164, 157, 151, 183, 176, 168, 174, 167, 161, 170, 163, 155, 175, 168, 162, 166, 159, 153, 173, 168, 162, 167, 162, 156, 172, 167, 161, 179, 174, 168, 180, 175, 171, 184, 181, 176, 186, 181, 177, 177, 172, 168, 187, 180, 174, 179, 172, 166, 178, 171, 165, 183, 175, 172, 175, 167, 164, 158, 150, 147, 153, 145, 142, 161, 154, 148, 170, 163, 157, 187, 180, 172, 200, 193, 185, 190, 183, 175, 183, 176, 170, 187, 180, 174, 181, 173, 170, 175, 167, 164, 171, 163, 160, 182, 175, 169, 175, 168, 162, 177, 170, 164, 174, 167, 161, 167, 160, 154, 175, 168, 162, 166, 159, 153, 169, 162, 156, 175, 168, 162, 174, 167, 161, 168, 161, 155, 167, 160, 154, 173, 166, 160, 173, 166, 160, 167, 160, 154, 176, 171, 167, 185, 180, 176, 172, 167, 163, 163, 158, 152, 172, 167, 161, 172, 165, 159, 170, 163, 157, 185, 178, 172, 171, 164, 156, 161, 154, 146, 165, 156, 149, 165, 156, 149, 150, 141, 134, 150, 141, 134, 161, 152, 145, 161, 152, 145, 154, 145, 138, 147, 138, 131, 130, 121, 114, 141, 132, 125, 170, 161, 154, 163, 154, 147, 139, 130, 123, 138, 129, 122, 124, 115, 108, 154, 145, 138, 153, 144, 137, 141, 132, 125, 121, 112, 105, 118, 109, 102, 128, 119, 112, 97, 88, 81, 118, 109, 104, 129, 120, 115, 115, 106, 101, 97, 88, 83, 103, 94, 89, 110, 101, 96, 110, 101, 96, 115, 106, 101, 108, 99, 94, 98, 89, 84, 82, 73, 68, 94, 85, 80, 89, 80, 75, 71, 62, 57, 84, 74, 72, 93, 84, 79, 111, 101, 99, 92, 83, 78, 91, 82, 77, 74, 65, 60, 68, 57, 53, 83, 72, 68, 86, 75, 71, 95, 84, 80, 88, 77, 73, 92, 81, 77, 77, 66, 64, 90, 80, 78, 82, 72, 71, 90, 82, 80, 124, 116, 114, 81, 73, 71, 65, 54, 52, 81, 71, 69, 70, 67, 62, 63, 64, 58, 21, 26, 19, 140, 143, 136, 126, 125, 120, 77, 72, 68, 68, 57, 55, 61, 47, 46, 78, 64, 63, 76, 65, 63, 73, 63, 61, 62, 54, 51, 24, 19, 15, 16, 11, 7, 37, 29, 26, 51, 41, 39, 28, 18, 16, 31, 21, 19, 52, 42, 40, 48, 38, 36, 50, 40, 38, 50, 40, 38, 52, 42, 40, 43, 33, 31, 55, 45, 43, 73, 63, 61, 61, 51, 49, 48, 38, 36, 44, 33, 31, 25, 14, 12, 58, 44, 43, 72, 58, 57, 57, 43, 40, 52, 38, 35, 48, 37, 31, 49, 38, 32, 66, 55, 49, 63, 52, 46, 81, 70, 66, 81, 70, 66, 99, 88, 86, 91, 77, 76, 74, 60, 59, 121, 107, 107, 162, 146, 147, 136, 120, 120, 88, 75, 67, 92, 79, 70, 84, 71, 65, 65, 51, 48, 58, 46, 46, 71, 60, 64, 77, 70, 77, 69, 66, 73, 88, 89, 94, 123, 127, 130, 166, 170, 173, 176, 178, 177, 139, 138, 134, 96, 88, 85, 85, 71, 68, 95, 80, 75, 90, 75, 72, 83, 68, 65, 95, 79, 79, 97, 82, 79, 80, 66, 63, 89, 75, 72, 103, 89, 86, 90, 76, 73, 87, 73, 70, 116, 102, 99, 90, 76, 73, 67, 53, 50, 109, 95, 92, 139, 124, 121, 119, 104, 101, 102, 87, 84, 103, 89, 86, 115, 101, 98, 106, 92, 91, 103, 89, 86, 113, 99, 98, 97, 86, 82, 91, 77, 74, 111, 100, 96, 100, 86, 83, 70, 59, 55, 84, 73, 69, 122, 111, 107, 124, 113, 109, 104, 93, 89, 99, 88, 84, 103, 92, 88, 76, 62, 59, 87, 73, 70, 104, 93, 91, 109, 98, 94, 93, 82, 78, 84, 70, 67, 85, 71, 68, 84, 70, 67, 98, 83, 80, 81, 66, 63, 77, 59, 57, 86, 68, 66, 85, 65, 64, 65, 44, 43, 51, 30, 29, 50, 29, 28, 62, 40, 42, 91, 70, 69, 118, 92, 91, 123, 95, 92, 125, 92, 87, 129, 92, 84, 125, 85, 77, 117, 73, 62, 114, 67, 57, 112, 65, 55, 109, 62, 52, 105, 60, 54, 103, 62, 58, 104, 66, 63, 106, 70, 70, 105, 73, 74, 109, 81, 80, 107, 83, 83, 109, 85, 85, 113, 89, 89, 117, 92, 95, 115, 93, 95, 112, 92, 93, 109, 89, 90, 89, 71, 71, 90, 72, 72, 92, 77, 74, 98, 84, 81, 103, 89, 86, 100, 89, 85, 90, 81, 76, 83, 74, 69, 95, 82, 76, 133, 115, 111, 148, 130, 126, 145, 127, 123, 152, 137, 132, 158, 143, 138, 157, 139, 135, 159, 141, 137, 179, 160, 154, 171, 148, 142, 151, 124, 117, 141, 111, 101, 146, 112, 102, 147, 109, 98, 152, 110, 98, 160, 123, 114, 185, 165, 164, 186, 175, 179, 199, 193, 197, 215, 213, 218, 230, 231, 236, 238, 241, 246, 241, 244, 251, 239, 244, 250, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 247, 240, 245, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 248, 253, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 232, 241, 229, 232, 241, 228, 231, 240, 228, 231, 240, 228, 231, 240, 227, 230, 239, 227, 230, 237, 227, 230, 237, 228, 231, 236, 224, 227, 232, 224, 228, 231, 223, 227, 228, 208, 212, 211, 179, 183, 182, 155, 160, 156, 146, 148, 145, 114, 110, 111, 95, 86, 89, 82, 72, 73, 90, 78, 80, 100, 86, 86, 103, 84, 86, 104, 84, 85, 110, 88, 90, 128, 104, 104, 124, 100, 100, 118, 94, 94, 114, 90, 90, 112, 90, 92, 117, 95, 97, 122, 102, 104, 128, 106, 109, 123, 96, 101, 121, 92, 97, 115, 86, 90, 110, 81, 85, 107, 77, 79, 102, 72, 74, 97, 67, 67, 92, 62, 62, 92, 61, 59, 86, 55, 53, 84, 50, 48, 84, 50, 48, 80, 45, 41, 71, 36, 32, 72, 37, 31, 78, 43, 39, 75, 37, 36, 74, 35, 36, 71, 35, 35, 73, 37, 37, 77, 43, 44, 84, 50, 51, 91, 57, 58, 93, 61, 62, 111, 81, 83, 109, 79, 81, 99, 70, 74, 87, 58, 62, 74, 48, 51, 73, 47, 50, 81, 55, 58, 88, 63, 66, 92, 70, 73, 109, 89, 91, 119, 99, 101, 113, 93, 95, 109, 88, 93, 116, 95, 100, 120, 99, 104, 117, 96, 101, 122, 101, 108, 125, 104, 111, 128, 107, 114, 127, 106, 113, 123, 102, 109, 118, 97, 104, 115, 94, 101, 114, 93, 100, 104, 81, 91, 111, 88, 98, 121, 98, 108, 130, 107, 117, 138, 112, 121, 138, 115, 123, 141, 115, 124, 139, 116, 124, 149, 126, 134, 160, 137, 145, 167, 146, 151, 161, 142, 146, 152, 133, 137, 146, 130, 133, 146, 130, 133, 146, 130, 131, 138, 116, 118, 135, 111, 111, 127, 103, 103, 119, 94, 97, 107, 85, 87, 103, 81, 84, 110, 89, 94, 120, 101, 105, 114, 95, 101, 129, 112, 118, 145, 128, 136, 151, 136, 143, 154, 138, 148, 158, 145, 154, 165, 152, 161, 168, 155, 164, 169, 157, 161, 171, 159, 161, 166, 154, 156, 155, 143, 145, 148, 136, 138, 147, 135, 137, 148, 136, 136, 146, 134, 134, 153, 141, 141, 158, 146, 146, 160, 148, 148, 152, 140, 140, 139, 128, 126, 134, 123, 121, 140, 129, 127, 148, 137, 135, 143, 133, 132, 144, 134, 133, 134, 124, 123, 120, 110, 109, 119, 109, 108, 126, 116, 115, 124, 112, 112, 113, 101, 101, 95, 83, 83, 99, 87, 87, 109, 97, 97, 121, 109, 109, 128, 114, 114, 129, 115, 115, 133, 119, 119, 140, 124, 124, 97, 79, 79, 98, 78, 77, 92, 72, 71, 86, 66, 65, 89, 68, 67, 93, 72, 71, 88, 67, 66, 79, 58, 57, 73, 52, 51, 65, 45, 44, 60, 40, 39, 60, 42, 40, 59, 41, 39, 53, 38, 35, 49, 34, 31, 50, 35, 32, 51, 37, 37, 61, 47, 47, 78, 64, 64, 102, 88, 88, 103, 89, 89, 68, 54, 54, 47, 35, 35, 65, 53, 53, 80, 68, 68, 91, 79, 79, 101, 91, 90, 99, 89, 88, 90, 80, 79, 94, 84, 83, 120, 110, 109, 147, 137, 136, 158, 148, 146, 167, 157, 155, 176, 166, 164, 174, 164, 162, 162, 153, 148, 151, 142, 137, 153, 144, 139, 161, 152, 147, 163, 152, 146, 164, 153, 147, 161, 150, 144, 158, 147, 141, 161, 148, 142, 166, 153, 147, 170, 157, 151, 171, 158, 152, 164, 153, 147, 174, 163, 157, 177, 166, 160, 182, 171, 165, 192, 181, 175, 192, 181, 175, 188, 177, 171, 192, 181, 175, 192, 181, 175, 191, 180, 174, 190, 179, 173, 188, 177, 171, 187, 176, 170, 187, 176, 170, 187, 176, 170, 187, 176, 170, 185, 176, 171, 185, 176, 171, 185, 176, 171, 184, 175, 170, 184, 175, 170, 183, 174, 169, 183, 174, 169, 182, 173, 168, 175, 166, 161, 178, 169, 164, 180, 171, 166, 181, 172, 167, 180, 171, 166, 181, 172, 167, 183, 174, 169, 186, 177, 172, 181, 173, 171, 182, 177, 174, 185, 180, 177, 187, 182, 179, 187, 182, 179, 184, 179, 176, 181, 176, 172, 178, 173, 169, 169, 164, 160, 168, 163, 159, 181, 176, 172, 188, 183, 179, 177, 172, 166, 171, 166, 160, 174, 169, 163, 174, 169, 163, 176, 169, 161, 153, 146, 138, 161, 154, 146, 180, 173, 165, 173, 166, 158, 171, 164, 156, 177, 170, 162, 172, 165, 157, 166, 161, 155, 160, 155, 149, 166, 161, 155, 175, 170, 164, 175, 172, 167, 181, 178, 173, 183, 180, 175, 176, 173, 166, 184, 177, 171, 177, 170, 162, 177, 169, 166, 182, 174, 171, 176, 168, 166, 162, 154, 152, 158, 150, 147, 165, 158, 152, 170, 163, 157, 185, 178, 170, 193, 186, 178, 184, 177, 169, 179, 172, 166, 183, 176, 170, 181, 173, 171, 173, 165, 162, 172, 164, 161, 180, 173, 167, 169, 162, 156, 172, 165, 159, 171, 164, 158, 166, 159, 153, 178, 171, 165, 170, 163, 157, 166, 159, 153, 172, 165, 159, 172, 165, 159, 167, 160, 154, 167, 160, 154, 171, 164, 158, 170, 163, 157, 164, 157, 151, 177, 172, 168, 185, 180, 176, 173, 168, 164, 165, 160, 156, 173, 168, 162, 170, 165, 159, 167, 160, 154, 181, 174, 168, 171, 164, 156, 158, 151, 143, 162, 153, 146, 166, 157, 150, 154, 145, 138, 151, 142, 135, 161, 152, 145, 167, 158, 151, 157, 148, 141, 151, 142, 135, 144, 135, 128, 151, 142, 135, 162, 153, 146, 153, 144, 137, 139, 130, 123, 139, 130, 123, 133, 124, 117, 150, 141, 134, 147, 138, 131, 143, 134, 127, 125, 116, 109, 117, 108, 101, 129, 120, 113, 111, 102, 95, 121, 112, 107, 121, 112, 107, 104, 95, 90, 90, 81, 76, 94, 85, 80, 99, 90, 85, 104, 95, 90, 116, 107, 102, 109, 100, 95, 94, 85, 80, 78, 69, 64, 100, 91, 86, 100, 91, 86, 75, 66, 61, 79, 70, 65, 84, 75, 70, 104, 94, 92, 90, 80, 78, 90, 81, 76, 80, 71, 66, 80, 69, 65, 82, 71, 67, 75, 64, 60, 92, 81, 77, 89, 78, 74, 91, 80, 76, 79, 69, 67, 94, 84, 82, 83, 75, 73, 87, 79, 77, 118, 112, 112, 82, 74, 72, 68, 56, 56, 77, 67, 65, 65, 64, 59, 52, 57, 50, 36, 46, 37, 139, 146, 138, 103, 104, 98, 80, 75, 71, 69, 58, 56, 56, 40, 40, 67, 51, 51, 70, 56, 55, 67, 57, 55, 54, 46, 43, 23, 18, 14, 23, 18, 14, 42, 34, 31, 55, 45, 43, 49, 39, 37, 37, 27, 25, 48, 38, 36, 57, 47, 45, 48, 38, 36, 43, 33, 31, 56, 46, 44, 41, 31, 29, 48, 38, 36, 56, 46, 44, 37, 27, 25, 28, 18, 16, 36, 26, 24, 35, 24, 22, 63, 49, 48, 88, 72, 72, 68, 54, 51, 52, 38, 35, 48, 37, 31, 49, 38, 32, 64, 55, 48, 66, 57, 50, 67, 58, 53, 74, 65, 60, 80, 69, 67, 95, 84, 82, 134, 120, 120, 159, 145, 145, 131, 115, 118, 81, 65, 65, 89, 74, 67, 81, 68, 59, 40, 27, 21, 49, 38, 36, 96, 86, 87, 68, 63, 67, 56, 55, 61, 128, 131, 138, 145, 152, 160, 167, 174, 180, 153, 161, 163, 101, 105, 104, 76, 72, 69, 90, 81, 76, 100, 82, 78, 86, 67, 61, 103, 85, 83, 91, 76, 73, 99, 84, 81, 100, 85, 82, 89, 74, 71, 100, 85, 82, 111, 96, 93, 97, 82, 79, 121, 106, 103, 103, 88, 85, 81, 66, 63, 95, 80, 77, 126, 111, 108, 117, 102, 99, 94, 79, 76, 98, 83, 80, 98, 83, 80, 91, 76, 73, 117, 102, 99, 124, 109, 106, 93, 79, 76, 94, 80, 77, 101, 87, 84, 72, 58, 55, 84, 70, 67, 84, 70, 67, 99, 88, 84, 113, 102, 98, 110, 99, 95, 109, 98, 94, 104, 93, 89, 88, 77, 73, 87, 73, 70, 112, 98, 95, 108, 97, 93, 89, 78, 74, 81, 70, 66, 76, 65, 61, 80, 69, 65, 100, 89, 85, 97, 83, 80, 100, 86, 83, 100, 85, 82, 87, 72, 69, 69, 49, 48, 51, 31, 30, 48, 27, 26, 52, 31, 30, 68, 48, 49, 94, 74, 75, 119, 95, 95, 125, 95, 93, 125, 90, 84, 128, 90, 81, 127, 83, 74, 119, 72, 62, 115, 67, 57, 112, 65, 57, 109, 64, 58, 105, 64, 58, 105, 65, 63, 105, 69, 69, 105, 73, 74, 107, 77, 77, 113, 87, 88, 113, 89, 89, 116, 92, 92, 117, 96, 95, 117, 95, 97, 111, 91, 92, 103, 84, 86, 96, 77, 79, 75, 59, 60, 82, 66, 67, 89, 75, 74, 95, 81, 80, 95, 81, 78, 90, 79, 75, 85, 74, 70, 82, 71, 67, 100, 85, 80, 127, 109, 105, 135, 117, 113, 130, 115, 110, 140, 125, 120, 148, 133, 128, 152, 137, 132, 164, 146, 142, 182, 163, 157, 179, 158, 153, 166, 141, 136, 154, 127, 120, 152, 122, 114, 150, 117, 108, 159, 122, 113, 170, 141, 135, 185, 173, 175, 187, 184, 191, 203, 200, 207, 220, 219, 225, 233, 234, 239, 240, 241, 246, 239, 242, 247, 237, 240, 245, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 248, 253, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 232, 241, 229, 232, 241, 229, 232, 241, 228, 231, 240, 228, 231, 240, 228, 231, 240, 227, 230, 239, 227, 230, 237, 231, 234, 239, 226, 229, 234, 225, 229, 232, 226, 230, 231, 216, 220, 219, 191, 195, 194, 162, 167, 163, 147, 149, 146, 132, 128, 129, 113, 104, 107, 101, 91, 92, 113, 101, 103, 131, 117, 117, 138, 119, 121, 136, 116, 117, 136, 114, 116, 122, 98, 98, 118, 94, 94, 113, 89, 89, 110, 86, 86, 110, 88, 90, 116, 94, 96, 122, 102, 104, 128, 106, 109, 123, 98, 102, 122, 95, 100, 120, 91, 95, 117, 88, 92, 113, 84, 86, 107, 78, 80, 100, 70, 70, 95, 65, 65, 94, 63, 61, 87, 56, 54, 84, 50, 48, 83, 49, 47, 81, 48, 43, 75, 42, 37, 73, 38, 34, 74, 39, 35, 69, 31, 28, 69, 31, 30, 67, 32, 30, 70, 35, 33, 74, 38, 38, 80, 46, 45, 86, 52, 53, 88, 56, 57, 88, 58, 60, 85, 55, 57, 78, 49, 53, 72, 43, 47, 71, 42, 47, 79, 52, 57, 95, 68, 73, 107, 82, 86, 114, 92, 95, 124, 102, 105, 128, 106, 109, 122, 100, 103, 123, 100, 106, 131, 108, 114, 134, 111, 117, 131, 108, 114, 133, 110, 118, 134, 111, 119, 132, 109, 117, 128, 105, 113, 123, 100, 108, 120, 97, 105, 120, 97, 105, 121, 98, 106, 135, 109, 120, 134, 108, 119, 135, 109, 120, 139, 113, 124, 145, 118, 127, 146, 120, 129, 146, 119, 128, 143, 117, 126, 149, 124, 130, 151, 128, 134, 149, 126, 132, 140, 119, 124, 134, 115, 119, 133, 117, 120, 135, 119, 122, 136, 117, 119, 121, 96, 99, 109, 83, 86, 99, 74, 77, 104, 79, 83, 112, 90, 93, 119, 97, 100, 121, 100, 105, 122, 103, 107, 127, 110, 116, 145, 130, 135, 159, 146, 153, 160, 149, 155, 155, 144, 150, 157, 146, 152, 165, 156, 161, 171, 162, 167, 167, 155, 159, 166, 154, 156, 157, 145, 147, 145, 133, 135, 139, 127, 129, 142, 130, 132, 148, 136, 136, 149, 137, 137, 153, 141, 141, 153, 141, 141, 150, 138, 138, 141, 129, 129, 132, 121, 119, 129, 118, 116, 134, 123, 121, 141, 130, 128, 146, 136, 135, 142, 132, 131, 127, 117, 116, 110, 100, 99, 106, 96, 95, 110, 100, 99, 107, 95, 95, 97, 85, 85, 96, 84, 84, 115, 103, 103, 128, 114, 114, 119, 105, 105, 105, 91, 91, 107, 93, 93, 126, 112, 112, 145, 129, 129, 148, 130, 130, 103, 85, 83, 74, 54, 53, 83, 63, 62, 93, 73, 72, 83, 63, 62, 80, 59, 58, 90, 69, 68, 70, 50, 49, 65, 45, 44, 61, 41, 40, 59, 41, 39, 54, 36, 34, 44, 29, 26, 40, 25, 22, 40, 26, 23, 50, 36, 36, 58, 44, 44, 69, 55, 55, 90, 76, 76, 103, 91, 91, 83, 71, 71, 60, 48, 48, 64, 52, 52, 95, 83, 83, 95, 83, 83, 97, 87, 86, 95, 85, 84, 86, 76, 75, 87, 77, 76, 112, 102, 101, 141, 131, 130, 144, 134, 132, 157, 147, 145, 170, 160, 158, 171, 161, 159, 162, 153, 148, 155, 146, 141, 158, 149, 144, 164, 155, 150, 165, 154, 148, 165, 154, 148, 163, 152, 146, 157, 146, 140, 155, 142, 136, 156, 143, 137, 162, 149, 143, 168, 155, 149, 159, 148, 142, 168, 157, 151, 171, 160, 154, 176, 165, 159, 187, 176, 170, 188, 177, 171, 185, 174, 168, 190, 179, 173, 189, 178, 172, 189, 178, 172, 188, 177, 171, 187, 176, 170, 186, 175, 169, 185, 174, 168, 185, 174, 168, 185, 174, 168, 178, 169, 164, 180, 171, 166, 182, 173, 168, 184, 175, 170, 184, 175, 170, 183, 174, 169, 182, 173, 168, 181, 172, 167, 172, 163, 158, 175, 166, 161, 177, 168, 163, 177, 168, 163, 177, 168, 163, 177, 168, 163, 180, 171, 166, 182, 173, 168, 179, 171, 169, 181, 173, 171, 183, 175, 173, 185, 177, 175, 185, 177, 175, 184, 176, 174, 182, 174, 171, 180, 172, 169, 169, 161, 158, 168, 160, 157, 179, 171, 168, 187, 179, 176, 178, 171, 165, 173, 166, 160, 177, 170, 164, 176, 169, 163, 175, 166, 159, 153, 144, 137, 157, 150, 142, 175, 168, 160, 171, 164, 156, 170, 163, 155, 178, 171, 163, 176, 169, 161, 158, 153, 147, 153, 148, 142, 160, 155, 149, 169, 164, 158, 170, 165, 161, 176, 171, 167, 180, 177, 172, 174, 171, 164, 178, 171, 165, 174, 167, 159, 176, 168, 165, 181, 173, 170, 178, 170, 168, 167, 159, 157, 165, 157, 154, 172, 165, 159, 174, 167, 161, 185, 178, 170, 186, 179, 171, 180, 173, 165, 178, 171, 165, 181, 174, 168, 184, 176, 174, 176, 168, 165, 170, 162, 159, 173, 166, 160, 160, 153, 147, 165, 158, 152, 168, 161, 155, 166, 159, 153, 180, 173, 167, 175, 168, 162, 163, 156, 150, 168, 161, 155, 170, 163, 157, 168, 161, 155, 168, 161, 155, 170, 163, 157, 168, 161, 155, 162, 155, 149, 171, 166, 162, 180, 175, 171, 169, 164, 160, 162, 157, 153, 174, 167, 161, 170, 163, 157, 163, 156, 150, 174, 167, 161, 172, 165, 157, 154, 147, 139, 156, 147, 140, 166, 157, 150, 159, 150, 143, 149, 140, 133, 158, 149, 142, 170, 161, 154, 156, 147, 140, 149, 140, 133, 154, 145, 138, 158, 149, 142, 148, 139, 132, 140, 131, 124, 139, 130, 123, 135, 126, 119, 136, 127, 120, 140, 131, 124, 139, 130, 123, 139, 130, 123, 124, 115, 108, 115, 106, 99, 127, 118, 111, 121, 112, 105, 117, 108, 103, 115, 106, 101, 100, 91, 86, 89, 80, 75, 90, 81, 76, 93, 84, 79, 100, 91, 86, 112, 103, 98, 112, 103, 98, 91, 82, 77, 71, 62, 57, 92, 83, 78, 95, 86, 81, 72, 63, 58, 75, 66, 61, 77, 68, 63, 90, 80, 78, 88, 78, 76, 93, 84, 79, 87, 78, 73, 93, 82, 78, 84, 73, 69, 64, 53, 49, 84, 73, 69, 83, 72, 68, 83, 72, 68, 78, 68, 66, 95, 85, 83, 80, 72, 70, 81, 73, 71, 110, 104, 104, 83, 75, 73, 73, 61, 61, 77, 67, 65, 66, 65, 60, 41, 46, 39, 65, 72, 64, 141, 148, 140, 72, 73, 67, 80, 75, 71, 76, 65, 63, 53, 37, 37, 54, 40, 39, 63, 52, 50, 63, 53, 51, 47, 39, 36, 29, 24, 20, 40, 35, 31, 57, 49, 46, 67, 57, 55, 83, 73, 71, 47, 37, 35, 44, 34, 32, 66, 56, 54, 39, 29, 27, 29, 19, 17, 47, 37, 35, 36, 26, 24, 56, 46, 44, 66, 56, 54, 41, 31, 29, 26, 16, 14, 29, 19, 17, 35, 24, 22, 59, 45, 44, 88, 74, 73, 60, 46, 43, 36, 22, 19, 39, 28, 24, 40, 29, 25, 55, 46, 39, 70, 61, 54, 69, 60, 55, 83, 74, 69, 77, 66, 64, 117, 106, 104, 172, 158, 158, 119, 105, 105, 61, 46, 49, 95, 79, 80, 90, 75, 70, 63, 48, 41, 77, 66, 62, 66, 56, 54, 23, 19, 18, 74, 74, 76, 155, 156, 161, 153, 156, 161, 155, 158, 165, 129, 132, 137, 97, 97, 99, 70, 68, 69, 58, 53, 50, 64, 55, 50, 87, 74, 68, 107, 92, 85, 106, 91, 88, 96, 81, 78, 100, 85, 82, 101, 86, 83, 95, 80, 77, 107, 92, 89, 117, 102, 99, 105, 90, 87, 137, 122, 119, 91, 76, 73, 79, 64, 61, 116, 101, 98, 129, 114, 111, 99, 84, 81, 78, 63, 60, 87, 72, 69, 76, 61, 58, 78, 63, 60, 113, 98, 95, 120, 105, 102, 86, 72, 69, 86, 72, 69, 84, 70, 67, 41, 27, 24, 77, 63, 60, 92, 78, 75, 108, 97, 93, 110, 99, 95, 104, 93, 89, 106, 95, 91, 103, 92, 88, 87, 76, 72, 108, 94, 91, 126, 112, 109, 96, 85, 81, 65, 54, 50, 77, 66, 62, 83, 72, 68, 87, 76, 72, 116, 105, 101, 113, 99, 96, 116, 102, 99, 104, 89, 86, 72, 57, 54, 48, 28, 27, 42, 22, 21, 50, 29, 28, 55, 34, 33, 80, 58, 60, 101, 80, 79, 121, 95, 94, 125, 96, 92, 125, 90, 86, 126, 87, 80, 124, 81, 74, 116, 72, 63, 114, 67, 57, 114, 67, 59, 111, 68, 61, 109, 70, 65, 109, 71, 68, 109, 75, 74, 109, 79, 79, 109, 80, 82, 116, 92, 92, 115, 94, 93, 117, 96, 95, 117, 96, 95, 113, 91, 93, 103, 83, 84, 90, 71, 73, 81, 62, 64, 65, 49, 50, 77, 61, 62, 90, 74, 74, 91, 77, 76, 84, 70, 67, 79, 65, 62, 82, 68, 65, 88, 74, 71, 111, 96, 93, 120, 105, 102, 121, 106, 103, 120, 106, 103, 129, 115, 112, 139, 125, 122, 154, 140, 137, 173, 160, 154, 185, 170, 163, 189, 172, 165, 182, 162, 155, 171, 148, 140, 165, 138, 129, 160, 132, 121, 169, 139, 129, 187, 162, 157, 192, 181, 185, 196, 193, 200, 212, 209, 216, 227, 226, 232, 237, 238, 243, 241, 242, 247, 237, 240, 245, 235, 238, 243, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 248, 253, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 230, 233, 242, 229, 232, 241, 229, 232, 241, 229, 232, 241, 228, 231, 240, 228, 231, 240, 228, 231, 240, 227, 230, 239, 231, 234, 241, 226, 229, 234, 224, 228, 231, 226, 230, 233, 222, 226, 227, 201, 205, 204, 171, 175, 174, 150, 152, 149, 146, 142, 143, 130, 124, 126, 120, 111, 112, 124, 114, 115, 132, 118, 118, 127, 111, 112, 119, 99, 100, 112, 90, 92, 96, 72, 72, 99, 75, 75, 105, 81, 81, 111, 87, 87, 113, 91, 93, 115, 93, 95, 113, 93, 95, 113, 91, 94, 114, 89, 93, 114, 87, 92, 116, 87, 91, 116, 87, 91, 115, 86, 88, 111, 82, 84, 105, 75, 75, 100, 70, 70, 97, 66, 64, 90, 59, 57, 86, 52, 51, 84, 50, 48, 84, 50, 48, 81, 48, 43, 76, 41, 37, 72, 37, 33, 78, 40, 37, 77, 39, 36, 74, 39, 37, 74, 39, 37, 76, 40, 40, 79, 43, 43, 82, 48, 49, 84, 50, 51, 70, 38, 41, 72, 42, 44, 77, 46, 51, 80, 51, 55, 86, 57, 62, 96, 67, 72, 107, 78, 83, 114, 87, 92, 123, 98, 102, 124, 102, 105, 122, 100, 103, 119, 97, 100, 122, 99, 105, 130, 107, 113, 133, 110, 116, 129, 106, 112, 131, 108, 116, 132, 109, 117, 132, 109, 117, 130, 107, 115, 127, 104, 112, 126, 103, 111, 128, 105, 113, 132, 106, 115, 148, 122, 133, 139, 111, 123, 131, 103, 115, 132, 104, 116, 142, 112, 122, 143, 116, 125, 138, 108, 118, 128, 101, 110, 140, 113, 120, 136, 111, 117, 127, 102, 108, 116, 93, 99, 113, 92, 97, 118, 99, 103, 121, 102, 106, 120, 100, 102, 107, 82, 86, 102, 77, 81, 104, 79, 83, 114, 92, 95, 125, 103, 106, 131, 111, 113, 135, 116, 120, 137, 121, 124, 157, 142, 147, 158, 146, 150, 157, 146, 150, 157, 148, 151, 162, 153, 158, 167, 161, 163, 168, 162, 166, 164, 158, 160, 161, 151, 152, 162, 150, 152, 154, 142, 144, 142, 130, 132, 138, 126, 128, 142, 130, 132, 148, 136, 136, 151, 139, 139, 143, 131, 131, 138, 126, 126, 134, 122, 122, 139, 127, 127, 148, 137, 135, 153, 142, 140, 148, 137, 135, 142, 131, 129, 144, 134, 133, 139, 129, 128, 125, 115, 114, 112, 102, 101, 109, 99, 98, 112, 102, 101, 111, 99, 99, 105, 93, 93, 123, 111, 111, 134, 122, 122, 135, 121, 121, 118, 104, 104, 102, 88, 88, 99, 85, 85, 99, 85, 85, 95, 81, 80, 127, 111, 111, 142, 124, 122, 128, 108, 107, 91, 71, 70, 81, 61, 60, 96, 76, 75, 92, 71, 70, 64, 44, 43, 69, 49, 48, 66, 48, 46, 66, 48, 46, 65, 50, 47, 59, 44, 41, 47, 33, 30, 41, 27, 24, 41, 27, 24, 52, 38, 38, 52, 38, 38, 74, 60, 60, 74, 60, 60, 59, 47, 47, 86, 74, 74, 103, 91, 91, 71, 59, 59, 92, 80, 80, 95, 83, 83, 103, 93, 92, 107, 97, 96, 98, 88, 87, 90, 80, 79, 105, 95, 94, 129, 119, 118, 135, 125, 123, 146, 136, 134, 158, 148, 146, 162, 152, 150, 163, 154, 149, 164, 155, 150, 165, 156, 151, 164, 155, 150, 163, 152, 146, 164, 153, 147, 165, 154, 148, 162, 151, 145, 156, 143, 137, 150, 137, 131, 155, 142, 136, 163, 150, 144, 154, 143, 137, 163, 152, 146, 165, 154, 148, 170, 159, 153, 181, 170, 164, 183, 172, 166, 180, 169, 163, 186, 175, 169, 187, 176, 170, 187, 176, 170, 187, 176, 170, 187, 176, 170, 186, 175, 169, 185, 174, 168, 184, 173, 167, 184, 173, 167, 176, 167, 162, 178, 169, 164, 182, 173, 168, 184, 175, 170, 184, 175, 170, 181, 172, 167, 178, 169, 164, 176, 167, 162, 171, 162, 157, 173, 164, 159, 175, 166, 161, 175, 166, 161, 174, 165, 160, 174, 165, 160, 177, 168, 163, 179, 170, 165, 176, 168, 166, 177, 169, 167, 179, 171, 169, 180, 172, 170, 181, 173, 171, 181, 173, 171, 181, 173, 170, 181, 173, 170, 170, 162, 159, 167, 159, 156, 177, 169, 166, 185, 177, 174, 178, 171, 165, 174, 167, 161, 178, 171, 165, 176, 169, 163, 175, 166, 159, 154, 145, 138, 155, 148, 140, 170, 163, 155, 169, 162, 154, 167, 160, 152, 174, 167, 159, 176, 169, 161, 157, 152, 146, 153, 148, 142, 159, 154, 148, 166, 161, 155, 165, 160, 156, 170, 165, 161, 175, 172, 167, 171, 166, 160, 173, 166, 160, 172, 165, 157, 175, 167, 164, 180, 172, 169, 179, 171, 169, 172, 164, 162, 172, 164, 161, 177, 170, 164, 180, 173, 167, 189, 182, 174, 181, 174, 166, 180, 173, 165, 179, 172, 166, 179, 172, 166, 188, 180, 178, 180, 172, 169, 164, 156, 153, 164, 157, 151, 152, 145, 139, 163, 156, 150, 171, 164, 158, 168, 161, 155, 180, 173, 167, 174, 167, 161, 162, 155, 149, 165, 158, 152, 168, 161, 155, 169, 162, 156, 169, 162, 156, 169, 162, 156, 166, 159, 153, 163, 156, 150, 162, 157, 153, 170, 165, 161, 161, 156, 152, 157, 152, 148, 171, 164, 158, 168, 161, 155, 160, 153, 147, 170, 163, 157, 174, 167, 159, 153, 146, 138, 150, 141, 134, 163, 154, 147, 159, 150, 143, 144, 135, 128, 148, 139, 132, 166, 157, 150, 151, 142, 135, 141, 132, 125, 151, 142, 135, 154, 145, 138, 135, 126, 119, 133, 124, 117, 138, 129, 122, 128, 119, 112, 127, 118, 111, 132, 123, 116, 135, 126, 119, 130, 121, 114, 117, 108, 101, 117, 108, 101, 124, 115, 108, 115, 106, 99, 107, 98, 93, 115, 106, 101, 109, 100, 95, 91, 82, 77, 86, 77, 72, 95, 86, 81, 103, 94, 89, 104, 95, 90, 109, 100, 95, 96, 87, 82, 70, 61, 56, 72, 63, 58, 71, 62, 57, 63, 54, 49, 76, 67, 62, 77, 68, 63, 71, 61, 59, 88, 78, 76, 99, 90, 85, 89, 80, 75, 98, 87, 83, 90, 79, 75, 60, 49, 45, 72, 61, 57, 71, 60, 56, 69, 58, 54, 72, 62, 60, 89, 79, 77, 74, 66, 64, 76, 68, 66, 103, 97, 97, 83, 75, 73, 78, 66, 66, 86, 76, 74, 77, 76, 71, 34, 39, 32, 92, 99, 91, 141, 146, 139, 49, 48, 43, 71, 66, 62, 85, 74, 72, 54, 40, 39, 47, 33, 32, 63, 52, 50, 66, 56, 54, 47, 39, 36, 40, 35, 31, 63, 55, 52, 60, 50, 48, 70, 60, 58, 102, 92, 90, 53, 43, 41, 45, 35, 33, 79, 69, 67, 40, 30, 28, 31, 21, 19, 41, 31, 29, 28, 18, 16, 56, 46, 44, 66, 56, 54, 44, 34, 32, 32, 22, 20, 28, 18, 16, 33, 23, 21, 54, 43, 41, 77, 63, 62, 45, 31, 28, 30, 19, 15, 42, 31, 27, 34, 23, 19, 49, 40, 33, 78, 69, 62, 80, 71, 66, 53, 44, 39, 136, 125, 123, 179, 168, 166, 86, 72, 72, 45, 31, 31, 89, 74, 77, 94, 80, 80, 76, 61, 58, 72, 58, 55, 50, 40, 38, 43, 38, 35, 87, 86, 84, 149, 150, 152, 164, 165, 169, 143, 144, 148, 127, 126, 131, 83, 81, 84, 62, 56, 58, 73, 64, 65, 67, 57, 55, 48, 37, 33, 70, 59, 53, 118, 107, 101, 95, 80, 77, 93, 78, 75, 99, 84, 81, 99, 84, 81, 92, 77, 74, 104, 89, 86, 117, 102, 99, 114, 99, 96, 121, 106, 103, 88, 73, 70, 91, 76, 73, 116, 101, 98, 110, 95, 92, 91, 76, 73, 82, 67, 64, 75, 60, 57, 70, 55, 52, 103, 88, 85, 106, 91, 88, 101, 86, 83, 107, 93, 90, 85, 71, 68, 54, 40, 37, 56, 42, 39, 86, 72, 69, 94, 80, 77, 107, 96, 92, 115, 104, 100, 108, 97, 93, 100, 89, 85, 100, 89, 85, 103, 92, 88, 120, 106, 103, 105, 91, 88, 70, 59, 55, 63, 52, 48, 88, 77, 73, 102, 91, 87, 107, 96, 92, 121, 110, 106, 131, 117, 114, 108, 94, 91, 74, 59, 56, 44, 29, 26, 36, 16, 15, 42, 22, 21, 55, 34, 33, 61, 40, 39, 93, 71, 73, 110, 86, 86, 124, 96, 95, 125, 96, 92, 124, 89, 85, 124, 85, 78, 122, 79, 72, 116, 72, 63, 114, 70, 61, 114, 71, 62, 114, 73, 67, 113, 76, 70, 112, 78, 76, 111, 81, 79, 111, 83, 82, 110, 84, 85, 113, 92, 91, 111, 91, 90, 111, 90, 89, 108, 88, 87, 103, 83, 84, 94, 74, 75, 82, 63, 65, 74, 55, 57, 67, 51, 52, 82, 66, 67, 94, 78, 78, 89, 73, 73, 76, 61, 58, 72, 58, 55, 87, 72, 69, 102, 87, 84, 122, 107, 104, 119, 105, 102, 118, 104, 101, 120, 109, 105, 128, 117, 113, 140, 129, 125, 162, 151, 147, 184, 173, 169, 189, 176, 170, 193, 180, 172, 187, 172, 165, 179, 162, 154, 175, 155, 146, 171, 148, 140, 179, 155, 145, 195, 176, 170, 194, 185, 188, 201, 198, 205, 217, 216, 222, 232, 231, 237, 239, 240, 245, 239, 242, 247, 237, 240, 245, 235, 238, 243, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 240, 245, 249, 240, 245, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 248, 253, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 230, 233, 240, 230, 233, 240, 230, 233, 242, 229, 232, 241, 229, 232, 241, 228, 231, 240, 228, 231, 240, 228, 231, 240, 229, 232, 239, 225, 228, 233, 223, 227, 230, 224, 228, 231, 224, 228, 229, 209, 213, 212, 180, 184, 183, 157, 159, 158, 142, 140, 141, 138, 132, 134, 133, 124, 125, 131, 121, 122, 129, 115, 115, 118, 102, 103, 107, 87, 88, 99, 77, 79, 98, 74, 74, 105, 81, 81, 114, 90, 90, 122, 98, 98, 122, 100, 102, 120, 98, 100, 113, 93, 95, 110, 88, 91, 115, 90, 93, 115, 89, 92, 115, 89, 92, 116, 90, 93, 117, 88, 90, 113, 84, 86, 107, 77, 77, 102, 72, 72, 100, 70, 70, 96, 66, 64, 91, 60, 58, 87, 56, 53, 89, 55, 53, 87, 53, 51, 80, 46, 44, 74, 39, 35, 81, 43, 40, 81, 44, 38, 80, 42, 39, 79, 41, 38, 78, 43, 41, 80, 45, 43, 81, 47, 46, 83, 49, 50, 77, 45, 48, 80, 50, 52, 86, 55, 60, 92, 61, 67, 96, 65, 73, 98, 68, 76, 102, 72, 80, 102, 75, 82, 109, 84, 88, 107, 82, 86, 103, 78, 82, 101, 76, 80, 105, 80, 86, 112, 87, 93, 113, 88, 94, 111, 86, 92, 110, 84, 93, 112, 86, 95, 115, 89, 98, 115, 89, 98, 113, 87, 96, 112, 86, 95, 112, 86, 95, 114, 88, 97, 104, 77, 86, 112, 82, 92, 122, 92, 102, 131, 101, 111, 137, 105, 116, 133, 103, 113, 127, 95, 106, 120, 90, 100, 136, 106, 114, 129, 102, 109, 120, 93, 100, 111, 86, 92, 110, 88, 91, 115, 95, 97, 118, 98, 100, 115, 95, 97, 109, 84, 88, 119, 94, 100, 130, 105, 111, 129, 106, 112, 121, 98, 104, 119, 98, 103, 133, 117, 120, 153, 138, 141, 159, 147, 149, 156, 146, 147, 154, 145, 146, 157, 151, 151, 168, 162, 164, 175, 171, 170, 169, 165, 166, 158, 152, 152, 154, 144, 145, 156, 144, 146, 150, 138, 140, 140, 128, 130, 133, 121, 123, 134, 122, 124, 135, 123, 123, 135, 123, 123, 137, 125, 125, 138, 126, 126, 144, 132, 132, 158, 146, 146, 171, 160, 158, 173, 162, 160, 164, 153, 151, 153, 142, 140, 135, 125, 124, 131, 121, 120, 123, 113, 112, 119, 109, 108, 122, 110, 110, 127, 115, 115, 126, 114, 114, 122, 110, 110, 127, 115, 115, 128, 116, 116, 123, 109, 109, 113, 99, 99, 111, 97, 97, 111, 97, 97, 100, 86, 86, 83, 69, 68, 82, 66, 66, 105, 90, 87, 136, 118, 116, 146, 128, 126, 122, 104, 102, 87, 69, 67, 69, 49, 48, 69, 49, 48, 65, 45, 44, 63, 45, 43, 66, 48, 46, 68, 53, 50, 65, 50, 47, 54, 40, 37, 45, 31, 28, 40, 29, 25, 47, 33, 33, 55, 41, 41, 74, 62, 62, 63, 51, 51, 41, 29, 29, 75, 63, 63, 112, 100, 100, 96, 84, 84, 66, 56, 55, 86, 76, 75, 112, 102, 101, 123, 113, 112, 109, 99, 98, 91, 81, 80, 94, 84, 83, 110, 100, 99, 127, 117, 115, 134, 124, 122, 141, 131, 129, 149, 139, 137, 162, 153, 148, 172, 163, 158, 170, 161, 156, 161, 152, 147, 158, 147, 141, 161, 150, 144, 167, 156, 150, 169, 158, 152, 162, 149, 143, 151, 138, 132, 150, 137, 131, 156, 143, 137, 151, 140, 134, 160, 149, 143, 161, 150, 144, 165, 154, 148, 176, 165, 159, 178, 167, 161, 176, 165, 159, 182, 171, 165, 183, 172, 166, 184, 173, 167, 186, 175, 169, 186, 175, 169, 186, 175, 169, 185, 174, 168, 183, 172, 166, 182, 171, 165, 178, 167, 163, 180, 169, 165, 182, 171, 167, 183, 172, 168, 181, 170, 166, 177, 166, 162, 173, 162, 158, 170, 159, 155, 170, 159, 155, 173, 162, 158, 174, 163, 159, 174, 163, 159, 173, 162, 158, 173, 162, 158, 175, 164, 160, 176, 167, 162, 173, 165, 163, 173, 165, 163, 173, 165, 163, 174, 166, 164, 176, 168, 165, 178, 170, 167, 180, 172, 169, 181, 173, 170, 173, 165, 162, 168, 160, 157, 176, 169, 163, 183, 176, 170, 178, 171, 165, 175, 168, 162, 178, 171, 165, 176, 169, 163, 175, 166, 159, 157, 148, 141, 155, 146, 139, 167, 158, 151, 167, 160, 152, 163, 156, 148, 165, 158, 150, 170, 163, 155, 162, 155, 149, 158, 151, 145, 162, 157, 151, 165, 160, 154, 161, 156, 152, 165, 160, 156, 171, 166, 162, 168, 163, 157, 169, 162, 156, 171, 164, 156, 175, 167, 164, 179, 171, 168, 178, 170, 168, 175, 167, 165, 176, 168, 165, 179, 172, 166, 180, 173, 167, 190, 183, 175, 176, 169, 161, 178, 171, 163, 175, 168, 162, 169, 162, 156, 185, 177, 175, 178, 170, 167, 158, 150, 147, 156, 149, 143, 145, 138, 132, 164, 157, 151, 176, 169, 163, 171, 164, 158, 178, 171, 165, 170, 163, 157, 163, 156, 150, 164, 157, 151, 166, 159, 153, 169, 162, 156, 170, 163, 157, 168, 161, 155, 166, 159, 153, 166, 159, 153, 157, 152, 148, 166, 161, 157, 159, 151, 148, 157, 149, 146, 173, 166, 160, 171, 164, 158, 164, 157, 151, 173, 166, 160, 176, 167, 160, 155, 146, 139, 147, 138, 131, 157, 148, 141, 156, 147, 140, 137, 128, 121, 137, 128, 121, 156, 147, 140, 148, 139, 132, 136, 127, 120, 143, 134, 127, 147, 138, 131, 134, 125, 118, 138, 129, 122, 142, 133, 126, 125, 116, 109, 118, 109, 102, 130, 121, 114, 140, 131, 124, 124, 115, 108, 112, 103, 96, 125, 116, 109, 123, 114, 107, 104, 95, 88, 100, 91, 86, 119, 110, 105, 116, 107, 102, 84, 75, 70, 70, 61, 56, 91, 82, 77, 108, 99, 94, 104, 95, 90, 99, 90, 85, 106, 97, 92, 83, 74, 69, 67, 58, 53, 58, 49, 44, 61, 52, 47, 83, 74, 69, 80, 71, 66, 56, 46, 44, 86, 76, 74, 104, 95, 90, 88, 79, 74, 93, 82, 78, 95, 84, 80, 65, 54, 50, 63, 52, 48, 65, 54, 50, 62, 51, 47, 71, 61, 59, 83, 73, 71, 70, 62, 60, 81, 73, 71, 105, 99, 99, 88, 80, 78, 81, 71, 70, 93, 85, 82, 91, 90, 85, 40, 45, 38, 114, 121, 113, 131, 136, 129, 40, 39, 34, 59, 54, 50, 87, 76, 74, 56, 42, 41, 42, 28, 27, 64, 53, 51, 68, 58, 56, 47, 39, 36, 51, 43, 40, 73, 65, 62, 54, 44, 42, 69, 59, 57, 99, 89, 87, 53, 43, 41, 56, 46, 44, 88, 78, 76, 46, 36, 34, 47, 37, 35, 44, 34, 32, 23, 13, 11, 43, 33, 31, 40, 30, 28, 25, 15, 13, 33, 23, 21, 32, 22, 20, 39, 29, 27, 58, 47, 45, 68, 57, 55, 46, 35, 31, 53, 42, 38, 63, 52, 48, 38, 29, 24, 48, 39, 34, 82, 73, 68, 58, 49, 44, 125, 116, 111, 159, 149, 147, 113, 103, 101, 57, 45, 45, 56, 44, 44, 73, 61, 63, 72, 57, 60, 49, 35, 35, 32, 20, 20, 55, 47, 45, 121, 120, 118, 162, 164, 163, 145, 149, 148, 122, 123, 125, 120, 120, 122, 85, 79, 81, 81, 71, 72, 67, 53, 53, 52, 38, 37, 58, 44, 43, 81, 70, 66, 102, 93, 86, 110, 101, 94, 81, 67, 64, 90, 75, 72, 101, 86, 83, 99, 84, 81, 91, 76, 73, 100, 85, 82, 116, 101, 98, 122, 107, 104, 105, 90, 87, 90, 75, 72, 104, 89, 86, 112, 97, 94, 88, 73, 70, 78, 63, 60, 84, 69, 66, 78, 63, 60, 104, 89, 86, 131, 116, 113, 107, 92, 89, 97, 82, 79, 118, 104, 101, 81, 67, 64, 47, 33, 30, 85, 71, 68, 96, 82, 79, 105, 91, 88, 110, 99, 95, 111, 100, 96, 108, 97, 93, 104, 93, 89, 105, 94, 90, 110, 99, 95, 105, 91, 88, 67, 53, 50, 62, 51, 47, 88, 77, 73, 103, 92, 88, 115, 104, 100, 126, 115, 111, 124, 113, 109, 119, 105, 102, 83, 69, 66, 48, 33, 30, 35, 20, 17, 38, 18, 17, 42, 22, 21, 57, 36, 35, 73, 52, 51, 107, 83, 83, 116, 90, 91, 124, 96, 95, 124, 93, 90, 122, 87, 83, 121, 82, 75, 118, 78, 70, 116, 73, 66, 116, 73, 66, 116, 76, 68, 118, 79, 72, 117, 82, 76, 116, 85, 82, 114, 86, 83, 112, 86, 85, 108, 87, 86, 110, 90, 89, 106, 88, 86, 103, 83, 82, 99, 81, 79, 97, 79, 79, 93, 75, 75, 88, 69, 71, 83, 64, 66, 83, 64, 66, 94, 75, 77, 99, 81, 81, 90, 72, 72, 75, 57, 55, 74, 59, 56, 97, 79, 77, 116, 101, 98, 123, 107, 107, 116, 102, 101, 117, 103, 102, 123, 112, 110, 130, 119, 115, 144, 135, 130, 168, 159, 154, 186, 177, 172, 188, 179, 174, 189, 180, 173, 183, 172, 166, 181, 168, 160, 183, 168, 161, 180, 163, 155, 182, 165, 157, 193, 180, 174, 194, 188, 192, 203, 202, 208, 220, 219, 225, 233, 232, 238, 239, 240, 245, 239, 242, 247, 239, 242, 247, 238, 243, 247, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 248, 253, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 230, 233, 240, 230, 233, 240, 230, 233, 242, 230, 233, 242, 229, 232, 241, 229, 232, 241, 228, 231, 240, 228, 231, 240, 226, 229, 236, 225, 228, 235, 223, 226, 231, 223, 227, 230, 225, 229, 232, 216, 220, 221, 192, 196, 197, 170, 172, 171, 152, 150, 151, 152, 148, 149, 151, 145, 145, 151, 141, 142, 149, 137, 137, 145, 129, 130, 138, 120, 120, 133, 113, 114, 128, 104, 104, 129, 105, 105, 131, 107, 107, 133, 109, 109, 131, 109, 111, 129, 107, 109, 126, 106, 108, 125, 103, 106, 128, 103, 106, 127, 101, 104, 124, 98, 101, 121, 95, 98, 120, 91, 93, 115, 86, 88, 109, 79, 79, 104, 74, 74, 104, 74, 74, 104, 74, 74, 102, 71, 69, 95, 64, 62, 94, 60, 59, 93, 59, 57, 87, 53, 51, 79, 45, 43, 75, 40, 36, 78, 41, 35, 78, 40, 37, 79, 41, 38, 79, 44, 42, 81, 46, 44, 82, 48, 47, 84, 50, 51, 82, 50, 53, 83, 51, 56, 86, 53, 60, 89, 58, 64, 94, 63, 71, 99, 68, 76, 103, 71, 82, 104, 74, 84, 100, 73, 80, 95, 70, 74, 93, 66, 71, 92, 67, 71, 96, 69, 76, 97, 72, 78, 100, 73, 80, 99, 74, 80, 95, 68, 77, 96, 70, 79, 99, 72, 81, 97, 71, 80, 96, 69, 78, 94, 68, 77, 95, 68, 77, 97, 70, 79, 109, 79, 89, 123, 91, 102, 132, 100, 111, 127, 95, 106, 114, 81, 92, 107, 75, 86, 116, 83, 94, 126, 94, 105, 111, 80, 88, 112, 82, 90, 112, 82, 90, 111, 84, 91, 117, 92, 96, 125, 103, 106, 129, 107, 110, 127, 105, 108, 124, 101, 107, 116, 93, 99, 111, 88, 96, 116, 95, 100, 127, 106, 111, 136, 117, 121, 145, 129, 132, 152, 137, 140, 154, 142, 144, 160, 150, 151, 165, 156, 157, 163, 157, 157, 161, 155, 155, 157, 151, 151, 146, 142, 141, 137, 131, 131, 131, 121, 122, 137, 125, 127, 137, 125, 127, 133, 121, 123, 131, 119, 121, 134, 122, 124, 136, 124, 124, 135, 123, 123, 148, 136, 136, 159, 147, 147, 170, 158, 158, 170, 158, 158, 161, 150, 148, 147, 136, 134, 138, 127, 125, 135, 124, 122, 126, 116, 115, 124, 114, 113, 124, 114, 113, 128, 118, 117, 134, 122, 122, 135, 123, 123, 132, 120, 120, 128, 116, 116, 128, 116, 116, 125, 113, 113, 123, 109, 109, 119, 105, 105, 122, 108, 108, 125, 111, 111, 120, 106, 106, 112, 98, 97, 99, 83, 83, 80, 65, 62, 96, 78, 76, 142, 124, 122, 153, 135, 133, 115, 97, 95, 82, 62, 61, 78, 58, 57, 66, 48, 46, 60, 42, 40, 57, 42, 39, 61, 47, 44, 63, 49, 46, 55, 44, 40, 46, 35, 31, 42, 31, 27, 34, 20, 20, 54, 40, 40, 58, 46, 46, 55, 43, 43, 57, 45, 45, 57, 45, 45, 73, 61, 61, 104, 92, 92, 95, 85, 84, 92, 82, 81, 91, 81, 80, 94, 84, 83, 102, 92, 91, 108, 98, 97, 107, 97, 96, 103, 93, 92, 114, 104, 102, 122, 112, 110, 128, 118, 116, 135, 125, 123, 152, 143, 138, 169, 160, 155, 169, 160, 155, 160, 151, 146, 154, 143, 137, 154, 143, 137, 162, 151, 145, 170, 159, 153, 167, 154, 148, 153, 140, 134, 148, 135, 129, 153, 140, 134, 152, 141, 135, 159, 148, 142, 159, 148, 142, 162, 151, 145, 172, 161, 155, 173, 162, 156, 172, 161, 155, 178, 167, 161, 178, 167, 161, 180, 169, 163, 182, 171, 165, 183, 172, 166, 183, 172, 166, 182, 171, 165, 180, 169, 163, 178, 167, 161, 175, 164, 160, 176, 165, 161, 176, 165, 161, 175, 164, 160, 173, 162, 158, 170, 159, 155, 167, 156, 152, 164, 153, 149, 167, 156, 152, 169, 158, 154, 171, 160, 156, 171, 160, 156, 169, 158, 154, 169, 158, 154, 170, 159, 155, 171, 162, 157, 171, 161, 159, 169, 161, 159, 169, 161, 159, 169, 161, 159, 171, 163, 160, 175, 167, 164, 179, 171, 168, 181, 173, 170, 176, 168, 165, 169, 161, 158, 174, 167, 161, 181, 174, 168, 175, 168, 162, 173, 166, 160, 175, 168, 162, 172, 165, 159, 170, 161, 154, 156, 147, 140, 153, 144, 137, 164, 155, 148, 166, 159, 151, 159, 152, 144, 158, 151, 143, 165, 158, 150, 164, 157, 151, 160, 153, 147, 163, 158, 152, 165, 160, 154, 158, 153, 149, 161, 156, 152, 169, 164, 160, 167, 162, 156, 169, 162, 156, 172, 165, 157, 176, 168, 165, 178, 170, 167, 177, 169, 167, 176, 168, 166, 176, 168, 165, 177, 170, 164, 173, 166, 160, 187, 180, 172, 170, 163, 155, 175, 168, 160, 166, 159, 153, 152, 145, 139, 175, 167, 165, 171, 163, 160, 157, 149, 146, 151, 144, 138, 140, 133, 127, 164, 157, 151, 179, 172, 166, 173, 166, 160, 177, 170, 164, 168, 161, 155, 164, 157, 151, 161, 154, 148, 161, 154, 148, 166, 159, 153, 166, 159, 153, 164, 157, 151, 165, 158, 152, 169, 162, 156, 162, 157, 153, 168, 163, 159, 159, 151, 148, 157, 149, 146, 174, 167, 161, 175, 168, 162, 168, 161, 155, 176, 169, 163, 173, 164, 157, 158, 149, 142, 146, 137, 130, 150, 141, 134, 152, 143, 136, 136, 127, 120, 131, 122, 115, 147, 138, 131, 148, 139, 132, 141, 132, 125, 141, 132, 125, 141, 132, 125, 140, 131, 124, 146, 137, 130, 144, 135, 128, 130, 121, 114, 121, 112, 105, 133, 124, 117, 146, 137, 130, 122, 113, 106, 111, 102, 95, 130, 121, 114, 121, 112, 105, 100, 91, 84, 99, 90, 85, 118, 109, 104, 117, 108, 103, 79, 70, 65, 54, 45, 40, 77, 68, 63, 109, 100, 95, 113, 104, 99, 97, 88, 83, 112, 103, 98, 96, 87, 82, 79, 70, 65, 67, 58, 53, 69, 60, 55, 90, 81, 76, 85, 76, 71, 53, 43, 41, 75, 65, 63, 103, 94, 89, 91, 82, 77, 86, 75, 71, 92, 81, 77, 73, 62, 58, 63, 52, 48, 69, 58, 54, 66, 55, 51, 76, 66, 64, 79, 69, 67, 68, 60, 58, 92, 84, 82, 113, 107, 107, 92, 84, 82, 82, 72, 71, 88, 80, 77, 95, 94, 89, 62, 65, 58, 133, 138, 131, 106, 111, 104, 44, 43, 38, 54, 49, 45, 77, 66, 64, 53, 39, 38, 36, 25, 23, 62, 52, 50, 67, 59, 56, 45, 37, 34, 53, 45, 42, 68, 60, 57, 67, 57, 55, 86, 76, 74, 88, 78, 76, 52, 42, 40, 67, 57, 55, 75, 65, 63, 34, 24, 22, 49, 39, 37, 39, 29, 27, 26, 16, 14, 55, 45, 43, 45, 35, 33, 31, 21, 19, 48, 38, 36, 37, 27, 25, 34, 24, 22, 52, 42, 40, 63, 52, 50, 59, 48, 44, 73, 62, 58, 64, 55, 50, 36, 27, 22, 54, 45, 40, 85, 76, 71, 117, 108, 103, 173, 164, 159, 99, 89, 87, 26, 16, 14, 74, 62, 62, 76, 64, 64, 32, 20, 22, 52, 40, 42, 47, 35, 39, 72, 61, 65, 151, 145, 147, 171, 169, 170, 116, 118, 117, 113, 117, 116, 121, 123, 120, 69, 65, 64, 59, 49, 50, 66, 52, 52, 61, 43, 43, 54, 36, 34, 71, 56, 53, 98, 87, 83, 99, 92, 84, 82, 73, 66, 78, 64, 61, 92, 77, 74, 103, 88, 85, 101, 86, 83, 96, 81, 78, 102, 87, 84, 114, 99, 96, 121, 106, 103, 107, 92, 89, 96, 81, 78, 107, 92, 89, 111, 96, 93, 82, 67, 64, 66, 51, 48, 83, 68, 65, 99, 84, 81, 136, 121, 118, 120, 105, 102, 103, 88, 85, 100, 85, 82, 91, 77, 74, 65, 51, 48, 63, 49, 46, 90, 76, 73, 99, 85, 82, 120, 106, 103, 115, 104, 100, 99, 88, 84, 104, 93, 89, 114, 103, 99, 107, 96, 92, 94, 83, 79, 76, 62, 59, 53, 39, 36, 80, 69, 65, 119, 108, 104, 114, 103, 99, 118, 107, 103, 133, 122, 118, 124, 113, 109, 88, 74, 71, 65, 51, 48, 50, 35, 32, 47, 32, 29, 44, 24, 23, 41, 21, 20, 62, 41, 40, 93, 69, 69, 117, 91, 92, 120, 92, 91, 123, 93, 93, 122, 91, 88, 120, 85, 81, 118, 79, 74, 117, 76, 70, 116, 76, 68, 117, 77, 69, 118, 81, 73, 119, 84, 78, 119, 88, 83, 118, 90, 87, 114, 90, 88, 109, 88, 87, 106, 86, 85, 107, 89, 87, 104, 86, 84, 100, 82, 80, 99, 81, 79, 100, 82, 82, 101, 83, 83, 100, 81, 83, 99, 80, 82, 94, 75, 77, 99, 80, 82, 99, 81, 81, 87, 69, 69, 75, 57, 55, 78, 60, 58, 99, 81, 79, 120, 102, 100, 114, 98, 98, 108, 94, 93, 111, 100, 98, 117, 106, 104, 125, 114, 110, 145, 136, 131, 169, 162, 156, 178, 171, 165, 184, 177, 171, 186, 179, 173, 182, 175, 169, 182, 173, 166, 186, 177, 170, 182, 171, 165, 182, 171, 165, 194, 184, 182, 198, 196, 199, 209, 208, 214, 224, 223, 229, 234, 235, 240, 236, 239, 244, 238, 241, 246, 239, 244, 248, 242, 247, 251, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 248, 253, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 231, 234, 241, 231, 234, 241, 230, 233, 240, 230, 233, 240, 229, 232, 241, 229, 232, 241, 229, 232, 241, 229, 232, 241, 225, 228, 235, 227, 230, 237, 226, 229, 234, 224, 228, 231, 225, 229, 232, 222, 226, 227, 204, 208, 209, 185, 186, 188, 160, 160, 160, 155, 151, 152, 144, 138, 138, 139, 130, 131, 142, 130, 130, 146, 130, 131, 141, 123, 123, 133, 113, 114, 133, 109, 109, 133, 109, 109, 132, 108, 108, 132, 108, 108, 131, 109, 111, 134, 112, 114, 136, 114, 117, 138, 116, 119, 134, 109, 112, 130, 105, 108, 125, 100, 103, 122, 97, 100, 120, 94, 95, 117, 91, 92, 114, 85, 87, 110, 81, 83, 106, 76, 76, 112, 82, 82, 112, 82, 82, 102, 72, 70, 96, 65, 63, 95, 64, 62, 90, 59, 57, 85, 51, 49, 80, 45, 41, 80, 45, 39, 80, 45, 41, 80, 45, 41, 81, 46, 44, 81, 46, 44, 80, 46, 45, 81, 47, 48, 82, 47, 51, 81, 49, 54, 84, 51, 58, 90, 57, 66, 96, 63, 74, 101, 69, 80, 103, 71, 84, 103, 73, 83, 98, 68, 76, 94, 67, 72, 96, 67, 72, 95, 68, 73, 97, 67, 75, 93, 66, 73, 97, 67, 75, 98, 71, 78, 97, 67, 77, 95, 68, 77, 97, 67, 77, 95, 68, 77, 97, 67, 77, 98, 71, 80, 106, 76, 86, 111, 81, 91, 136, 104, 115, 137, 104, 115, 130, 97, 108, 114, 81, 92, 101, 65, 77, 99, 66, 77, 115, 79, 89, 127, 94, 103, 97, 64, 73, 105, 74, 82, 115, 84, 90, 120, 91, 96, 125, 98, 103, 132, 107, 111, 133, 108, 112, 129, 106, 112, 126, 103, 111, 110, 89, 96, 104, 83, 92, 121, 102, 108, 147, 128, 134, 161, 142, 148, 157, 140, 146, 150, 135, 140, 163, 148, 151, 167, 155, 157, 166, 154, 156, 154, 144, 145, 141, 131, 130, 131, 123, 121, 125, 117, 115, 121, 113, 111, 121, 111, 112, 128, 118, 119, 132, 122, 123, 133, 123, 124, 137, 127, 128, 146, 136, 137, 153, 143, 142, 155, 145, 144, 163, 153, 152, 170, 160, 159, 171, 161, 160, 158, 148, 147, 136, 126, 124, 118, 108, 106, 111, 101, 99, 112, 102, 100, 128, 116, 116, 127, 115, 115, 131, 119, 119, 139, 127, 127, 142, 130, 130, 136, 124, 124, 125, 113, 113, 119, 107, 107, 131, 117, 117, 125, 111, 111, 123, 109, 109, 124, 110, 110, 125, 109, 110, 120, 104, 105, 116, 100, 101, 115, 99, 99, 97, 83, 82, 114, 100, 97, 101, 86, 83, 77, 62, 59, 108, 90, 88, 160, 142, 140, 145, 127, 125, 85, 67, 65, 85, 67, 65, 70, 52, 50, 57, 42, 39, 58, 44, 41, 64, 50, 47, 62, 51, 47, 57, 46, 42, 52, 43, 38, 42, 30, 30, 51, 39, 39, 54, 42, 42, 61, 49, 49, 69, 57, 57, 61, 49, 49, 60, 50, 49, 79, 69, 68, 112, 102, 101, 102, 92, 91, 82, 72, 71, 68, 58, 57, 77, 69, 67, 100, 92, 90, 111, 103, 101, 106, 98, 96, 97, 87, 85, 112, 102, 100, 121, 111, 109, 124, 114, 112, 135, 126, 121, 154, 145, 140, 164, 155, 150, 161, 152, 147, 152, 141, 135, 148, 137, 131, 152, 141, 135, 164, 153, 147, 166, 153, 147, 153, 140, 134, 148, 135, 129, 153, 140, 134, 154, 143, 137, 161, 150, 144, 160, 149, 143, 161, 150, 144, 170, 159, 153, 171, 160, 154, 169, 158, 152, 175, 164, 158, 171, 160, 154, 173, 162, 156, 176, 165, 159, 178, 167, 161, 179, 168, 162, 177, 166, 160, 175, 164, 158, 173, 162, 156, 167, 156, 150, 167, 156, 150, 166, 155, 149, 165, 154, 148, 164, 153, 147, 163, 152, 146, 162, 151, 145, 162, 151, 145, 163, 152, 146, 165, 154, 148, 166, 155, 149, 165, 154, 148, 164, 153, 147, 163, 152, 146, 164, 153, 147, 165, 156, 151, 169, 159, 157, 167, 159, 157, 165, 157, 154, 165, 157, 154, 168, 160, 157, 173, 165, 162, 178, 170, 167, 182, 174, 171, 177, 170, 164, 168, 161, 155, 171, 164, 158, 177, 170, 164, 171, 164, 158, 169, 162, 156, 170, 163, 155, 166, 159, 151, 162, 153, 146, 151, 142, 135, 149, 140, 133, 161, 152, 145, 168, 159, 152, 160, 151, 144, 155, 148, 140, 163, 156, 148, 160, 153, 147, 158, 151, 145, 163, 156, 150, 165, 158, 152, 156, 151, 147, 160, 155, 151, 169, 164, 160, 169, 164, 158, 169, 162, 156, 175, 168, 160, 178, 170, 167, 177, 169, 166, 175, 167, 165, 175, 167, 165, 174, 166, 163, 173, 166, 160, 168, 161, 155, 186, 179, 171, 169, 162, 154, 176, 169, 161, 162, 155, 149, 140, 133, 127, 168, 160, 158, 166, 158, 155, 162, 154, 151, 150, 143, 137, 135, 128, 122, 160, 153, 147, 178, 171, 165, 173, 166, 160, 178, 171, 165, 170, 163, 157, 164, 157, 151, 157, 150, 144, 155, 148, 142, 160, 153, 147, 161, 154, 148, 158, 151, 145, 162, 155, 149, 170, 163, 157, 169, 161, 158, 172, 164, 161, 157, 149, 146, 152, 144, 141, 169, 162, 156, 170, 163, 157, 164, 155, 150, 172, 163, 158, 168, 159, 152, 161, 152, 145, 146, 137, 130, 144, 135, 128, 151, 140, 134, 141, 130, 124, 134, 123, 117, 146, 135, 129, 142, 133, 126, 149, 140, 133, 142, 133, 126, 135, 126, 119, 142, 133, 126, 145, 136, 129, 138, 129, 122, 134, 125, 118, 133, 124, 117, 131, 122, 115, 142, 133, 126, 120, 111, 104, 108, 99, 92, 123, 114, 107, 112, 103, 96, 101, 92, 85, 97, 88, 83, 111, 102, 97, 121, 112, 107, 98, 89, 84, 62, 53, 48, 67, 58, 53, 101, 92, 87, 121, 112, 107, 110, 101, 96, 109, 100, 95, 90, 81, 76, 86, 77, 72, 78, 69, 64, 71, 62, 57, 92, 83, 78, 98, 89, 84, 61, 51, 49, 57, 47, 45, 93, 84, 79, 99, 90, 85, 82, 71, 67, 83, 72, 68, 76, 65, 61, 72, 61, 57, 76, 65, 61, 73, 62, 58, 81, 71, 69, 72, 62, 60, 63, 55, 53, 99, 91, 89, 115, 109, 109, 87, 79, 77, 82, 72, 71, 70, 62, 59, 87, 86, 81, 89, 92, 85, 148, 153, 146, 76, 79, 72, 53, 50, 45, 59, 51, 48, 67, 56, 54, 52, 38, 37, 35, 24, 22, 63, 53, 51, 69, 61, 58, 46, 38, 35, 54, 44, 42, 61, 51, 49, 78, 68, 66, 103, 93, 91, 69, 59, 57, 49, 39, 37, 79, 69, 67, 58, 48, 46, 22, 12, 10, 51, 41, 39, 31, 21, 19, 36, 26, 24, 81, 71, 69, 62, 52, 50, 41, 31, 29, 59, 49, 47, 38, 28, 26, 26, 16, 14, 47, 37, 35, 64, 54, 52, 70, 60, 58, 67, 57, 55, 36, 27, 22, 32, 23, 18, 87, 78, 73, 120, 111, 106, 176, 167, 162, 81, 72, 67, 54, 44, 42, 61, 51, 49, 31, 21, 20, 44, 34, 35, 74, 64, 65, 51, 42, 45, 102, 93, 98, 169, 163, 167, 139, 134, 138, 87, 85, 86, 123, 123, 123, 129, 129, 127, 64, 63, 59, 29, 24, 20, 66, 55, 53, 53, 38, 35, 58, 40, 38, 82, 64, 60, 89, 74, 69, 72, 59, 53, 57, 48, 41, 60, 51, 44, 86, 72, 69, 95, 80, 77, 99, 84, 81, 99, 84, 81, 102, 87, 84, 106, 91, 88, 106, 91, 88, 105, 90, 87, 107, 92, 89, 105, 90, 87, 107, 92, 89, 102, 87, 84, 84, 69, 66, 78, 63, 60, 100, 85, 82, 126, 111, 108, 132, 117, 114, 98, 83, 80, 95, 80, 77, 95, 80, 77, 68, 54, 51, 66, 52, 49, 90, 76, 73, 96, 82, 79, 108, 94, 91, 120, 106, 103, 109, 98, 94, 98, 87, 83, 109, 98, 94, 111, 100, 96, 90, 79, 75, 71, 60, 56, 64, 50, 47, 73, 59, 56, 104, 93, 89, 127, 116, 112, 125, 114, 110, 127, 116, 112, 127, 116, 112, 110, 99, 95, 76, 62, 59, 71, 57, 54, 64, 49, 46, 53, 38, 35, 44, 24, 23, 49, 29, 28, 79, 58, 57, 111, 87, 87, 122, 96, 97, 121, 93, 92, 120, 90, 90, 122, 88, 86, 119, 84, 80, 116, 79, 73, 115, 76, 69, 117, 78, 71, 118, 81, 73, 119, 84, 78, 122, 89, 84, 122, 93, 89, 119, 94, 90, 112, 91, 88, 107, 87, 86, 100, 84, 84, 98, 83, 80, 97, 82, 79, 97, 82, 79, 100, 85, 82, 104, 88, 88, 106, 90, 90, 105, 89, 90, 103, 87, 88, 95, 76, 78, 96, 77, 79, 94, 74, 75, 85, 65, 66, 77, 57, 56, 80, 60, 59, 95, 75, 74, 107, 89, 87, 105, 89, 89, 102, 88, 87, 107, 93, 92, 107, 96, 94, 114, 103, 101, 144, 134, 132, 170, 163, 157, 171, 164, 158, 176, 171, 165, 185, 180, 174, 188, 183, 177, 187, 182, 176, 186, 181, 175, 179, 174, 168, 183, 178, 174, 198, 194, 191, 209, 208, 213, 218, 219, 224, 230, 231, 236, 236, 237, 242, 235, 238, 243, 235, 240, 244, 239, 244, 248, 244, 249, 253, 237, 245, 248, 237, 245, 248, 239, 244, 248, 239, 244, 248, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 248, 253, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 231, 234, 241, 231, 234, 241, 230, 233, 240, 230, 233, 240, 230, 233, 242, 229, 232, 241, 229, 232, 241, 229, 232, 241, 225, 228, 235, 229, 232, 239, 229, 232, 239, 225, 228, 233, 226, 229, 234, 225, 229, 232, 211, 215, 218, 195, 196, 198, 174, 174, 174, 156, 154, 155, 133, 129, 128, 121, 112, 113, 123, 111, 111, 127, 113, 113, 121, 103, 103, 108, 88, 89, 111, 90, 89, 115, 91, 91, 119, 95, 95, 124, 100, 100, 128, 106, 108, 132, 110, 112, 136, 114, 117, 138, 116, 119, 129, 104, 107, 125, 100, 103, 121, 96, 99, 119, 94, 97, 120, 94, 95, 120, 94, 95, 120, 91, 93, 119, 90, 92, 108, 78, 78, 117, 87, 87, 119, 89, 89, 107, 77, 77, 99, 68, 66, 97, 66, 64, 94, 63, 61, 88, 57, 55, 91, 58, 53, 91, 56, 52, 89, 54, 50, 86, 51, 49, 83, 48, 46, 80, 44, 44, 76, 42, 43, 75, 40, 44, 88, 53, 59, 90, 55, 62, 93, 60, 69, 99, 66, 75, 102, 69, 80, 100, 67, 78, 94, 62, 75, 89, 57, 68, 92, 61, 69, 90, 61, 66, 93, 62, 68, 94, 65, 70, 93, 62, 70, 88, 58, 66, 90, 59, 67, 94, 64, 72, 99, 67, 78, 97, 67, 77, 97, 65, 76, 97, 67, 77, 102, 70, 81, 111, 81, 91, 124, 92, 103, 133, 101, 112, 114, 81, 92, 106, 73, 84, 101, 65, 77, 103, 67, 79, 112, 76, 88, 120, 84, 96, 121, 85, 95, 119, 83, 93, 115, 82, 91, 126, 93, 102, 135, 104, 110, 137, 108, 113, 135, 106, 111, 131, 104, 109, 124, 99, 103, 115, 92, 98, 107, 86, 93, 122, 102, 111, 145, 125, 134, 158, 138, 147, 155, 136, 142, 148, 129, 135, 151, 134, 140, 161, 144, 150, 170, 154, 157, 163, 148, 151, 149, 134, 137, 132, 117, 120, 122, 110, 110, 124, 112, 112, 126, 114, 114, 125, 113, 113, 137, 127, 128, 142, 132, 133, 144, 134, 135, 143, 133, 134, 146, 136, 137, 156, 146, 147, 164, 154, 153, 167, 157, 156, 169, 159, 158, 163, 153, 152, 153, 143, 142, 142, 132, 131, 131, 121, 119, 125, 115, 113, 122, 112, 110, 121, 111, 109, 134, 122, 122, 134, 122, 122, 139, 127, 127, 147, 135, 135, 147, 135, 135, 134, 122, 122, 118, 106, 106, 108, 96, 96, 118, 104, 104, 108, 94, 94, 106, 92, 92, 115, 101, 101, 117, 101, 102, 103, 87, 88, 90, 74, 75, 86, 70, 70, 91, 77, 76, 82, 68, 65, 90, 75, 72, 107, 92, 89, 108, 90, 88, 101, 83, 81, 127, 109, 107, 168, 150, 148, 107, 89, 87, 83, 68, 65, 63, 48, 45, 60, 46, 43, 67, 56, 52, 71, 60, 56, 69, 60, 55, 66, 57, 52, 73, 61, 61, 59, 47, 47, 72, 60, 60, 78, 66, 66, 68, 56, 56, 85, 73, 73, 91, 81, 80, 56, 46, 45, 61, 51, 50, 98, 88, 87, 113, 103, 102, 83, 73, 72, 52, 44, 42, 58, 50, 48, 86, 78, 76, 106, 98, 96, 84, 74, 72, 106, 96, 94, 120, 110, 108, 118, 108, 106, 122, 113, 108, 141, 132, 127, 158, 149, 144, 163, 154, 149, 152, 141, 135, 143, 132, 126, 144, 133, 127, 157, 146, 140, 162, 149, 143, 152, 139, 133, 149, 136, 130, 155, 142, 136, 156, 145, 139, 162, 151, 145, 160, 149, 143, 160, 149, 143, 169, 158, 152, 169, 158, 152, 167, 156, 150, 174, 163, 157, 166, 155, 149, 168, 157, 151, 172, 161, 155, 174, 163, 157, 175, 164, 158, 173, 162, 156, 170, 159, 153, 168, 157, 151, 159, 148, 142, 159, 148, 142, 158, 147, 141, 157, 146, 140, 157, 146, 140, 158, 147, 141, 160, 149, 143, 161, 150, 144, 159, 148, 142, 161, 150, 144, 162, 151, 145, 161, 150, 144, 159, 148, 142, 159, 148, 142, 160, 149, 143, 162, 151, 147, 168, 158, 156, 165, 157, 155, 163, 155, 152, 163, 155, 152, 166, 158, 155, 172, 164, 161, 178, 170, 167, 182, 174, 171, 176, 169, 163, 166, 159, 153, 168, 161, 155, 173, 166, 160, 168, 161, 155, 165, 158, 152, 166, 159, 151, 161, 154, 146, 154, 145, 138, 146, 137, 130, 146, 137, 130, 160, 151, 144, 170, 161, 154, 161, 152, 145, 155, 148, 140, 163, 156, 148, 155, 148, 142, 154, 147, 141, 160, 153, 147, 163, 156, 150, 154, 149, 145, 159, 154, 150, 170, 165, 161, 171, 166, 160, 170, 163, 157, 176, 169, 161, 179, 171, 168, 176, 168, 165, 173, 165, 163, 174, 166, 164, 173, 165, 162, 170, 163, 157, 167, 160, 154, 190, 183, 175, 173, 166, 158, 180, 173, 165, 162, 155, 149, 136, 129, 123, 166, 158, 156, 166, 158, 155, 167, 159, 156, 151, 144, 138, 132, 125, 119, 156, 149, 143, 175, 168, 162, 171, 164, 158, 179, 172, 166, 173, 166, 160, 163, 156, 150, 154, 147, 141, 150, 143, 137, 155, 148, 142, 156, 149, 143, 154, 147, 141, 159, 152, 146, 169, 162, 156, 170, 162, 159, 171, 163, 160, 153, 145, 142, 146, 138, 135, 162, 155, 149, 162, 155, 149, 156, 147, 142, 164, 155, 150, 164, 155, 148, 162, 153, 146, 147, 138, 131, 141, 132, 125, 151, 140, 134, 146, 135, 129, 139, 128, 122, 147, 136, 130, 135, 126, 119, 153, 144, 137, 143, 134, 127, 129, 120, 113, 139, 130, 123, 138, 129, 122, 129, 120, 113, 134, 125, 118, 141, 132, 125, 125, 116, 109, 133, 124, 117, 117, 108, 101, 104, 95, 88, 112, 103, 96, 102, 93, 86, 103, 94, 87, 93, 84, 79, 103, 94, 89, 128, 119, 114, 125, 116, 111, 83, 74, 69, 65, 56, 51, 93, 84, 79, 123, 114, 109, 128, 119, 114, 104, 95, 90, 74, 65, 60, 81, 72, 67, 79, 70, 65, 67, 58, 53, 91, 82, 77, 110, 101, 96, 71, 61, 59, 44, 34, 32, 84, 75, 70, 106, 97, 92, 81, 70, 66, 73, 62, 58, 77, 66, 62, 81, 70, 66, 80, 69, 65, 77, 66, 62, 82, 72, 70, 64, 54, 52, 57, 49, 47, 100, 92, 90, 113, 107, 107, 77, 72, 69, 79, 71, 69, 51, 46, 42, 76, 75, 70, 108, 111, 104, 159, 162, 155, 53, 56, 49, 58, 55, 50, 66, 58, 55, 62, 51, 49, 52, 41, 39, 37, 27, 25, 65, 57, 54, 72, 64, 61, 49, 41, 38, 56, 46, 44, 56, 46, 44, 69, 59, 57, 99, 89, 87, 46, 36, 34, 43, 33, 31, 90, 80, 78, 55, 45, 43, 28, 18, 16, 69, 59, 57, 36, 26, 24, 45, 35, 33, 87, 77, 75, 50, 40, 38, 21, 11, 9, 48, 38, 36, 37, 27, 25, 31, 21, 19, 51, 43, 40, 74, 66, 63, 82, 74, 71, 58, 48, 46, 11, 2, 0, 38, 29, 24, 132, 123, 118, 171, 162, 157, 72, 63, 58, 73, 64, 59, 51, 41, 39, 49, 39, 38, 61, 51, 52, 41, 32, 33, 52, 43, 44, 116, 110, 112, 170, 168, 173, 103, 101, 106, 80, 78, 81, 119, 117, 118, 122, 118, 117, 64, 60, 57, 29, 21, 18, 37, 28, 23, 57, 43, 40, 51, 36, 31, 63, 45, 41, 83, 68, 63, 83, 68, 63, 67, 54, 48, 71, 60, 54, 94, 83, 77, 93, 78, 75, 96, 81, 78, 92, 77, 74, 94, 79, 76, 104, 89, 86, 107, 92, 89, 97, 82, 79, 88, 73, 70, 99, 84, 81, 114, 99, 96, 108, 93, 90, 87, 72, 69, 84, 69, 66, 101, 86, 83, 126, 111, 108, 144, 129, 126, 114, 99, 96, 96, 81, 78, 93, 78, 75, 89, 74, 71, 74, 60, 57, 87, 73, 70, 114, 100, 97, 120, 106, 103, 121, 107, 104, 110, 96, 93, 96, 85, 81, 107, 96, 92, 121, 110, 106, 98, 87, 83, 66, 55, 51, 60, 49, 45, 68, 54, 51, 99, 85, 82, 115, 104, 100, 119, 108, 104, 135, 124, 120, 141, 130, 126, 119, 108, 104, 92, 81, 77, 87, 73, 70, 85, 71, 68, 71, 56, 53, 46, 31, 28, 40, 20, 19, 60, 40, 39, 96, 75, 74, 123, 99, 99, 125, 99, 100, 122, 92, 92, 119, 88, 86, 120, 86, 85, 118, 83, 81, 115, 77, 74, 114, 77, 71, 117, 80, 74, 118, 83, 77, 120, 87, 82, 121, 92, 88, 121, 96, 92, 119, 95, 93, 111, 91, 90, 103, 87, 87, 99, 83, 83, 89, 75, 72, 90, 76, 73, 95, 80, 77, 101, 86, 83, 106, 90, 90, 107, 91, 91, 104, 88, 89, 101, 85, 86, 91, 72, 74, 90, 71, 73, 88, 68, 69, 82, 62, 63, 78, 58, 57, 80, 60, 59, 87, 67, 66, 93, 75, 73, 102, 86, 86, 101, 87, 86, 105, 91, 90, 103, 89, 88, 110, 96, 95, 145, 134, 132, 174, 165, 160, 169, 162, 156, 173, 166, 160, 188, 183, 177, 196, 191, 187, 193, 190, 185, 186, 182, 179, 177, 173, 170, 185, 181, 180, 205, 203, 204, 218, 219, 223, 227, 228, 233, 236, 237, 242, 237, 240, 245, 234, 239, 243, 234, 239, 243, 239, 244, 248, 244, 249, 253, 237, 245, 248, 237, 245, 248, 239, 244, 248, 239, 244, 248, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 248, 253, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 241, 247, 235, 240, 246, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 233, 238, 230, 233, 238, 230, 233, 240, 229, 232, 239, 229, 232, 241, 228, 231, 240, 228, 231, 240, 228, 231, 240, 227, 230, 239, 228, 231, 238, 230, 233, 240, 229, 232, 237, 227, 230, 235, 222, 226, 229, 217, 221, 224, 216, 217, 219, 186, 186, 186, 164, 162, 163, 143, 139, 138, 137, 131, 131, 138, 128, 127, 129, 115, 115, 107, 89, 89, 89, 69, 70, 80, 59, 58, 89, 68, 67, 106, 82, 82, 123, 99, 99, 134, 109, 112, 137, 112, 115, 131, 109, 112, 126, 104, 107, 129, 107, 109, 124, 103, 102, 120, 96, 96, 118, 94, 94, 121, 97, 97, 122, 98, 98, 121, 95, 96, 118, 92, 93, 114, 85, 87, 117, 88, 90, 120, 90, 90, 115, 85, 85, 106, 76, 76, 98, 68, 68, 96, 66, 66, 97, 66, 64, 91, 57, 55, 91, 57, 55, 90, 56, 54, 88, 54, 52, 88, 54, 53, 88, 54, 55, 88, 54, 55, 88, 53, 57, 91, 59, 64, 94, 61, 68, 99, 66, 75, 103, 70, 79, 103, 70, 81, 100, 67, 78, 95, 61, 75, 91, 58, 69, 93, 60, 69, 92, 61, 67, 93, 60, 67, 93, 62, 68, 94, 61, 70, 93, 62, 70, 94, 61, 70, 93, 62, 70, 87, 54, 65, 94, 62, 73, 107, 74, 85, 117, 85, 96, 123, 90, 101, 121, 89, 100, 117, 84, 95, 112, 79, 90, 107, 74, 85, 107, 71, 83, 107, 71, 81, 113, 77, 87, 124, 88, 98, 133, 97, 107, 137, 101, 111, 137, 101, 111, 144, 111, 118, 142, 109, 116, 133, 102, 108, 121, 92, 97, 119, 90, 95, 124, 97, 102, 132, 107, 110, 133, 111, 114, 138, 119, 125, 146, 129, 137, 148, 131, 139, 138, 121, 129, 136, 119, 125, 147, 130, 136, 158, 139, 145, 160, 141, 147, 142, 123, 127, 138, 119, 123, 140, 121, 125, 145, 126, 130, 143, 124, 126, 136, 117, 119, 137, 118, 120, 143, 127, 128, 132, 120, 122, 137, 127, 128, 146, 136, 137, 156, 146, 147, 161, 151, 152, 161, 151, 152, 158, 148, 147, 154, 144, 143, 163, 153, 152, 153, 143, 142, 141, 131, 130, 134, 124, 123, 134, 124, 122, 141, 131, 129, 148, 138, 136, 153, 143, 141, 152, 140, 140, 136, 124, 124, 126, 114, 114, 133, 121, 121, 144, 130, 130, 141, 127, 127, 125, 111, 111, 113, 99, 99, 112, 98, 98, 110, 96, 96, 108, 92, 93, 103, 87, 88, 98, 82, 83, 94, 78, 79, 90, 74, 75, 88, 72, 72, 82, 68, 67, 79, 65, 62, 77, 62, 59, 75, 60, 57, 80, 62, 60, 87, 69, 67, 95, 77, 75, 100, 82, 80, 148, 130, 128, 134, 119, 116, 101, 86, 83, 63, 49, 46, 49, 38, 34, 61, 50, 46, 70, 61, 56, 69, 60, 55, 79, 67, 67, 76, 64, 64, 70, 58, 58, 63, 51, 51, 62, 52, 51, 70, 60, 59, 79, 69, 68, 84, 74, 73, 57, 47, 46, 85, 75, 74, 104, 96, 94, 95, 87, 85, 71, 63, 61, 63, 55, 53, 76, 68, 66, 91, 83, 81, 117, 107, 105, 101, 91, 89, 91, 81, 79, 108, 98, 96, 128, 119, 114, 121, 112, 107, 126, 117, 112, 156, 147, 142, 160, 149, 143, 151, 140, 134, 157, 146, 140, 148, 137, 131, 150, 137, 131, 149, 136, 130, 136, 123, 117, 159, 146, 140, 146, 135, 129, 152, 141, 135, 156, 145, 139, 164, 153, 147, 154, 143, 137, 159, 148, 142, 178, 167, 161, 156, 145, 139, 157, 146, 140, 168, 157, 151, 165, 154, 148, 161, 150, 144, 166, 155, 149, 159, 148, 142, 150, 139, 133, 158, 147, 141, 154, 143, 137, 160, 149, 143, 153, 142, 136, 146, 135, 129, 153, 142, 136, 157, 146, 140, 157, 146, 140, 162, 151, 145, 158, 147, 141, 148, 137, 131, 147, 136, 130, 163, 152, 146, 146, 135, 129, 133, 122, 116, 157, 146, 140, 158, 147, 143, 164, 154, 152, 168, 158, 156, 171, 161, 159, 154, 144, 142, 160, 150, 148, 178, 168, 166, 174, 165, 160, 187, 178, 173, 173, 164, 159, 165, 156, 151, 165, 156, 149, 164, 155, 148, 157, 148, 141, 162, 153, 146, 169, 160, 153, 167, 158, 151, 149, 138, 132, 151, 140, 134, 156, 147, 140, 162, 153, 146, 154, 145, 138, 154, 145, 138, 164, 155, 148, 161, 152, 145, 159, 152, 146, 167, 160, 154, 153, 146, 140, 159, 152, 146, 159, 151, 148, 154, 146, 143, 173, 165, 162, 170, 163, 157, 167, 160, 154, 161, 154, 146, 176, 168, 165, 177, 169, 166, 176, 168, 166, 174, 166, 164, 158, 150, 147, 163, 156, 150, 189, 182, 176, 180, 173, 165, 164, 157, 149, 179, 172, 164, 169, 162, 156, 145, 138, 132, 161, 153, 151, 165, 157, 154, 162, 154, 151, 143, 136, 130, 138, 131, 125, 138, 131, 125, 164, 157, 151, 177, 170, 164, 161, 154, 148, 180, 173, 167, 176, 169, 163, 148, 141, 135, 149, 142, 136, 155, 148, 142, 143, 136, 130, 148, 141, 135, 165, 158, 152, 163, 156, 150, 168, 160, 157, 159, 151, 148, 159, 151, 148, 155, 147, 144, 149, 140, 135, 160, 151, 146, 173, 164, 159, 166, 157, 152, 167, 158, 151, 148, 139, 132, 150, 139, 133, 147, 136, 130, 126, 115, 109, 132, 121, 115, 149, 138, 132, 144, 133, 127, 146, 137, 130, 144, 135, 128, 147, 138, 131, 145, 136, 129, 136, 127, 120, 131, 122, 115, 129, 120, 113, 125, 116, 109, 130, 121, 114, 130, 121, 114, 132, 123, 116, 119, 110, 103, 102, 93, 86, 108, 99, 92, 112, 103, 96, 96, 87, 80, 104, 95, 90, 110, 101, 96, 111, 102, 97, 129, 120, 115, 111, 102, 97, 83, 74, 69, 103, 94, 89, 113, 104, 99, 116, 107, 102, 105, 96, 91, 86, 77, 72, 79, 70, 65, 79, 70, 65, 75, 66, 61, 86, 77, 72, 112, 103, 98, 92, 82, 80, 54, 44, 42, 87, 78, 73, 108, 99, 94, 92, 81, 77, 87, 76, 72, 81, 70, 66, 84, 73, 69, 69, 58, 54, 66, 55, 51, 78, 68, 66, 61, 51, 49, 68, 60, 58, 85, 77, 75, 118, 112, 112, 75, 70, 67, 81, 73, 71, 46, 41, 37, 53, 52, 47, 139, 142, 135, 135, 138, 131, 58, 59, 53, 54, 49, 45, 81, 73, 70, 72, 61, 59, 43, 32, 30, 32, 22, 20, 50, 42, 39, 69, 61, 58, 63, 55, 52, 53, 43, 41, 65, 54, 52, 67, 57, 55, 90, 80, 78, 62, 52, 50, 53, 43, 41, 79, 69, 67, 45, 35, 33, 19, 9, 7, 68, 58, 56, 62, 52, 50, 57, 47, 45, 81, 71, 69, 48, 38, 36, 27, 17, 15, 52, 42, 40, 42, 32, 30, 38, 30, 27, 36, 31, 28, 55, 50, 47, 107, 102, 98, 41, 33, 30, 7, 0, 0, 127, 117, 115, 170, 159, 155, 96, 85, 81, 51, 40, 38, 64, 53, 51, 76, 66, 65, 63, 53, 52, 43, 34, 35, 71, 65, 65, 136, 130, 132, 175, 173, 174, 69, 70, 74, 50, 51, 55, 125, 123, 126, 113, 107, 109, 58, 49, 50, 50, 38, 38, 26, 15, 13, 51, 37, 34, 54, 41, 35, 65, 52, 44, 91, 78, 70, 90, 80, 71, 69, 56, 50, 76, 63, 57, 97, 82, 79, 91, 76, 73, 90, 75, 72, 83, 68, 65, 90, 75, 72, 85, 70, 67, 97, 82, 79, 98, 83, 80, 74, 59, 56, 86, 71, 68, 95, 80, 77, 99, 84, 81, 97, 82, 79, 94, 79, 76, 105, 90, 87, 124, 109, 106, 125, 110, 107, 114, 99, 96, 99, 84, 81, 84, 69, 66, 82, 67, 64, 92, 77, 74, 99, 85, 82, 110, 96, 93, 115, 101, 98, 109, 95, 92, 122, 108, 105, 97, 83, 80, 104, 93, 89, 130, 119, 115, 114, 103, 99, 73, 62, 58, 57, 46, 42, 63, 52, 48, 86, 72, 69, 89, 75, 72, 121, 110, 106, 146, 135, 131, 129, 118, 114, 110, 99, 95, 98, 87, 83, 80, 69, 65, 90, 76, 73, 91, 77, 74, 67, 52, 49, 38, 23, 20, 45, 25, 24, 74, 54, 53, 105, 84, 83, 128, 104, 104, 130, 102, 101, 133, 103, 101, 131, 100, 98, 122, 91, 89, 119, 85, 83, 121, 86, 82, 122, 87, 83, 120, 87, 82, 123, 90, 85, 120, 89, 86, 124, 96, 92, 128, 104, 100, 122, 101, 98, 107, 89, 87, 99, 83, 83, 101, 87, 86, 92, 78, 75, 90, 76, 73, 96, 81, 78, 109, 94, 91, 116, 100, 100, 109, 93, 93, 97, 81, 82, 88, 72, 73, 90, 71, 73, 89, 70, 72, 87, 67, 68, 81, 61, 62, 69, 49, 48, 64, 44, 43, 71, 51, 50, 83, 63, 62, 97, 79, 79, 93, 77, 78, 85, 69, 69, 85, 71, 70, 115, 101, 98, 154, 143, 139, 171, 160, 156, 164, 155, 150, 172, 164, 161, 180, 175, 171, 188, 183, 180, 188, 184, 181, 184, 180, 179, 185, 184, 182, 198, 196, 197, 210, 210, 212, 222, 223, 227, 225, 228, 233, 231, 234, 239, 234, 239, 243, 235, 240, 244, 235, 240, 244, 234, 242, 245, 234, 242, 245, 237, 245, 248, 237, 245, 248, 239, 244, 248, 239, 244, 248, 241, 244, 249, 241, 244, 249, 244, 245, 250, 244, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 248, 253, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 241, 247, 235, 240, 246, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 233, 238, 230, 233, 238, 230, 233, 240, 229, 232, 239, 229, 232, 241, 229, 232, 241, 228, 231, 240, 228, 231, 240, 227, 230, 239, 228, 231, 240, 229, 232, 241, 229, 232, 239, 228, 231, 238, 224, 227, 232, 220, 223, 228, 217, 221, 224, 189, 190, 192, 166, 166, 166, 145, 144, 142, 141, 135, 135, 140, 130, 129, 128, 114, 114, 111, 95, 95, 102, 84, 84, 95, 74, 73, 93, 72, 71, 95, 71, 71, 101, 77, 77, 110, 85, 88, 118, 93, 96, 119, 97, 100, 119, 97, 99, 125, 103, 105, 122, 101, 100, 123, 99, 99, 125, 101, 101, 127, 103, 103, 125, 101, 101, 119, 93, 94, 113, 87, 88, 116, 87, 89, 118, 89, 91, 119, 89, 89, 116, 86, 86, 111, 81, 81, 106, 76, 76, 103, 73, 73, 102, 72, 72, 97, 66, 64, 95, 64, 62, 95, 61, 60, 90, 59, 57, 91, 57, 58, 89, 57, 60, 92, 57, 61, 90, 58, 63, 95, 62, 69, 98, 65, 72, 102, 69, 78, 105, 72, 81, 105, 72, 83, 101, 68, 79, 97, 63, 77, 94, 61, 72, 93, 60, 69, 93, 60, 67, 93, 60, 67, 94, 61, 68, 94, 61, 70, 95, 62, 71, 96, 63, 72, 96, 63, 72, 102, 69, 80, 105, 72, 83, 110, 77, 88, 113, 80, 91, 113, 80, 91, 111, 78, 89, 107, 74, 85, 105, 72, 83, 110, 74, 86, 112, 76, 88, 117, 81, 91, 126, 90, 100, 134, 98, 108, 136, 100, 110, 132, 96, 106, 126, 93, 102, 115, 82, 89, 118, 87, 93, 119, 88, 94, 114, 85, 90, 114, 87, 92, 125, 100, 104, 138, 113, 116, 143, 121, 124, 154, 135, 141, 147, 130, 136, 138, 121, 129, 134, 117, 123, 139, 122, 128, 146, 129, 135, 148, 129, 135, 143, 124, 130, 144, 125, 129, 135, 116, 120, 128, 107, 112, 125, 104, 109, 119, 99, 101, 113, 93, 95, 117, 97, 99, 126, 107, 109, 131, 119, 121, 138, 128, 129, 147, 137, 138, 151, 141, 142, 150, 140, 141, 151, 141, 142, 155, 145, 144, 160, 150, 149, 149, 139, 138, 149, 139, 138, 150, 140, 139, 154, 144, 143, 159, 149, 147, 162, 152, 150, 163, 153, 151, 162, 152, 150, 155, 143, 143, 140, 128, 128, 130, 118, 118, 133, 121, 121, 143, 129, 129, 142, 128, 128, 134, 120, 120, 128, 114, 114, 130, 116, 116, 129, 115, 115, 129, 113, 114, 127, 111, 112, 125, 109, 110, 124, 108, 109, 122, 106, 107, 122, 106, 106, 116, 100, 100, 109, 95, 92, 101, 86, 83, 92, 77, 74, 89, 71, 69, 88, 70, 68, 90, 72, 70, 91, 73, 71, 90, 72, 70, 134, 116, 114, 148, 133, 130, 108, 94, 91, 69, 55, 52, 65, 54, 50, 71, 60, 56, 66, 57, 52, 74, 62, 62, 75, 63, 63, 84, 72, 72, 91, 79, 79, 79, 69, 68, 62, 52, 51, 61, 51, 50, 73, 63, 62, 60, 50, 49, 68, 58, 57, 93, 85, 83, 115, 107, 105, 96, 88, 86, 59, 51, 49, 58, 50, 48, 83, 75, 73, 88, 78, 76, 113, 103, 101, 113, 103, 101, 99, 89, 87, 108, 99, 94, 127, 118, 113, 136, 127, 122, 142, 133, 128, 143, 132, 126, 145, 134, 128, 158, 147, 141, 148, 137, 131, 142, 129, 123, 136, 123, 117, 130, 117, 111, 159, 146, 140, 156, 145, 139, 150, 139, 133, 142, 131, 125, 151, 140, 134, 150, 139, 133, 159, 148, 142, 174, 163, 157, 146, 135, 129, 158, 147, 141, 167, 156, 150, 162, 151, 145, 157, 146, 140, 160, 149, 143, 155, 144, 138, 152, 141, 135, 161, 150, 144, 152, 141, 135, 157, 146, 140, 148, 137, 131, 139, 128, 122, 146, 135, 129, 152, 141, 135, 155, 144, 138, 161, 150, 144, 150, 139, 133, 144, 133, 127, 148, 137, 131, 164, 153, 147, 144, 133, 127, 128, 117, 111, 152, 141, 135, 153, 142, 136, 156, 147, 142, 160, 150, 148, 166, 156, 154, 151, 141, 139, 158, 148, 146, 174, 164, 162, 168, 159, 154, 181, 172, 167, 176, 167, 162, 168, 159, 154, 167, 158, 151, 165, 156, 149, 158, 149, 142, 161, 152, 145, 167, 158, 151, 164, 155, 148, 150, 139, 133, 148, 137, 131, 155, 146, 139, 159, 150, 143, 152, 143, 136, 152, 143, 136, 159, 150, 143, 158, 149, 142, 153, 146, 140, 162, 155, 149, 154, 147, 141, 162, 155, 149, 164, 156, 153, 162, 154, 151, 179, 171, 168, 177, 170, 164, 171, 164, 158, 164, 157, 149, 178, 170, 167, 178, 170, 167, 177, 169, 167, 176, 168, 166, 161, 153, 150, 166, 159, 153, 186, 179, 173, 176, 169, 161, 162, 155, 147, 177, 170, 162, 171, 164, 158, 150, 143, 137, 160, 152, 150, 162, 154, 151, 163, 155, 152, 136, 129, 123, 129, 122, 116, 130, 123, 117, 153, 146, 140, 173, 166, 160, 171, 164, 158, 190, 183, 177, 172, 165, 159, 149, 142, 136, 150, 143, 137, 156, 149, 143, 143, 136, 130, 146, 139, 133, 159, 152, 146, 155, 148, 142, 166, 158, 155, 160, 152, 149, 161, 153, 150, 157, 149, 146, 149, 140, 135, 158, 149, 144, 168, 159, 154, 162, 153, 148, 167, 158, 151, 151, 142, 135, 150, 139, 133, 142, 131, 125, 123, 112, 106, 130, 119, 113, 142, 131, 125, 131, 120, 114, 137, 128, 121, 139, 130, 123, 144, 135, 128, 142, 133, 126, 134, 125, 118, 130, 121, 114, 131, 122, 115, 131, 122, 115, 127, 118, 111, 129, 120, 113, 132, 123, 116, 118, 109, 102, 101, 92, 85, 111, 102, 95, 116, 107, 100, 97, 88, 81, 111, 102, 97, 114, 105, 100, 107, 98, 93, 126, 117, 112, 124, 115, 110, 101, 92, 87, 109, 100, 95, 117, 108, 103, 129, 120, 115, 103, 94, 89, 80, 71, 66, 81, 72, 67, 85, 76, 71, 74, 65, 60, 81, 72, 67, 110, 101, 96, 95, 85, 83, 71, 61, 59, 83, 74, 69, 94, 85, 80, 99, 88, 84, 93, 82, 78, 72, 61, 57, 76, 65, 61, 71, 60, 56, 76, 65, 61, 89, 79, 77, 70, 60, 58, 73, 65, 63, 86, 78, 76, 117, 111, 111, 67, 62, 59, 97, 89, 87, 62, 57, 53, 64, 63, 58, 154, 155, 149, 116, 119, 112, 58, 59, 53, 50, 45, 41, 83, 75, 72, 72, 62, 60, 42, 32, 30, 32, 24, 21, 56, 48, 45, 72, 67, 63, 62, 54, 51, 52, 42, 40, 62, 51, 49, 61, 51, 49, 93, 83, 81, 70, 60, 58, 51, 41, 39, 73, 63, 61, 50, 40, 38, 24, 14, 12, 57, 47, 45, 91, 81, 79, 73, 63, 61, 71, 61, 59, 22, 12, 10, 16, 6, 4, 64, 54, 52, 52, 42, 40, 33, 25, 22, 20, 15, 12, 83, 79, 76, 87, 82, 78, 49, 44, 40, 100, 92, 89, 156, 146, 144, 115, 104, 100, 68, 57, 53, 47, 36, 34, 43, 32, 30, 77, 67, 66, 73, 65, 63, 65, 59, 59, 151, 147, 146, 161, 157, 158, 29, 27, 30, 30, 34, 37, 136, 137, 141, 117, 115, 118, 33, 24, 27, 52, 38, 38, 66, 50, 50, 27, 12, 9, 33, 18, 15, 85, 72, 66, 95, 85, 76, 84, 75, 66, 62, 53, 44, 63, 52, 46, 86, 73, 67, 108, 90, 88, 117, 99, 97, 85, 70, 67, 72, 57, 54, 93, 78, 75, 92, 77, 74, 80, 65, 62, 85, 70, 67, 81, 66, 63, 84, 69, 66, 82, 67, 64, 94, 79, 76, 101, 86, 83, 102, 87, 84, 108, 93, 90, 115, 100, 97, 106, 91, 88, 90, 75, 72, 94, 79, 76, 85, 70, 67, 91, 76, 73, 103, 88, 85, 103, 89, 86, 104, 90, 87, 107, 93, 90, 103, 89, 86, 106, 92, 89, 105, 91, 88, 117, 106, 102, 118, 107, 103, 88, 77, 73, 65, 54, 50, 71, 60, 56, 85, 74, 70, 89, 75, 72, 100, 86, 83, 113, 102, 98, 113, 102, 98, 106, 95, 91, 107, 96, 92, 101, 90, 86, 83, 72, 68, 103, 89, 86, 96, 82, 79, 67, 52, 49, 43, 28, 25, 62, 42, 41, 97, 77, 76, 127, 106, 105, 147, 123, 121, 132, 104, 103, 135, 105, 103, 132, 102, 100, 126, 95, 93, 121, 90, 87, 122, 91, 88, 125, 91, 89, 121, 90, 87, 123, 92, 89, 121, 91, 89, 123, 98, 94, 128, 104, 102, 120, 100, 99, 104, 89, 86, 97, 83, 82, 99, 85, 84, 87, 73, 70, 88, 73, 70, 94, 79, 76, 106, 91, 88, 111, 95, 95, 104, 88, 88, 95, 79, 80, 89, 73, 74, 92, 73, 75, 94, 75, 77, 96, 76, 77, 89, 69, 70, 77, 57, 56, 70, 50, 49, 77, 57, 56, 87, 69, 67, 97, 79, 79, 93, 75, 75, 92, 76, 76, 108, 93, 90, 134, 120, 117, 159, 145, 142, 168, 154, 151, 166, 155, 151, 166, 156, 154, 174, 166, 163, 182, 177, 174, 186, 182, 181, 187, 185, 186, 193, 193, 195, 206, 206, 208, 217, 218, 222, 221, 224, 229, 225, 230, 234, 231, 236, 240, 234, 239, 243, 235, 240, 244, 235, 240, 244, 234, 242, 245, 235, 243, 246, 237, 245, 248, 237, 245, 248, 239, 244, 248, 239, 244, 248, 241, 244, 249, 241, 244, 249, 244, 245, 250, 244, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 248, 253, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 241, 247, 235, 240, 246, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 233, 238, 230, 233, 238, 230, 233, 240, 230, 233, 240, 229, 232, 241, 229, 232, 241, 229, 232, 241, 228, 231, 240, 226, 228, 240, 228, 231, 240, 229, 232, 241, 230, 233, 240, 229, 232, 239, 227, 230, 235, 224, 227, 232, 222, 226, 229, 205, 206, 208, 179, 179, 179, 156, 155, 153, 149, 145, 144, 139, 131, 129, 120, 108, 108, 111, 95, 95, 113, 95, 95, 107, 86, 85, 98, 77, 76, 93, 69, 69, 96, 72, 72, 108, 83, 86, 121, 96, 99, 128, 103, 107, 128, 106, 108, 126, 104, 106, 126, 106, 105, 129, 108, 107, 134, 113, 112, 136, 115, 114, 131, 110, 109, 122, 98, 98, 113, 89, 89, 118, 92, 93, 117, 91, 92, 118, 89, 91, 118, 89, 91, 119, 90, 92, 117, 88, 90, 115, 85, 87, 112, 82, 84, 108, 78, 80, 105, 75, 77, 101, 69, 72, 96, 66, 68, 95, 63, 68, 93, 62, 67, 96, 64, 69, 97, 64, 71, 100, 67, 74, 102, 69, 78, 105, 72, 83, 106, 73, 84, 106, 73, 84, 103, 70, 81, 99, 65, 79, 97, 64, 75, 94, 61, 70, 93, 60, 67, 93, 60, 67, 94, 61, 68, 95, 62, 71, 96, 63, 72, 98, 65, 74, 98, 65, 74, 110, 77, 88, 109, 76, 87, 107, 74, 85, 105, 72, 83, 103, 70, 81, 102, 69, 80, 102, 69, 80, 102, 69, 80, 113, 80, 89, 114, 81, 90, 116, 83, 92, 119, 86, 95, 119, 86, 95, 114, 81, 90, 106, 73, 80, 100, 67, 74, 113, 80, 87, 108, 77, 83, 101, 70, 76, 101, 72, 77, 114, 88, 91, 136, 111, 114, 153, 128, 131, 156, 134, 137, 145, 126, 130, 140, 121, 125, 139, 120, 126, 145, 126, 130, 146, 127, 131, 137, 118, 122, 125, 104, 109, 117, 96, 101, 116, 95, 100, 106, 85, 90, 96, 73, 79, 93, 70, 76, 97, 74, 80, 108, 85, 91, 129, 106, 112, 146, 127, 131, 160, 148, 150, 153, 144, 145, 151, 142, 143, 156, 147, 148, 164, 155, 156, 167, 158, 159, 160, 152, 150, 152, 144, 142, 154, 146, 144, 155, 147, 145, 158, 150, 148, 162, 154, 152, 163, 155, 152, 161, 153, 150, 155, 147, 144, 151, 141, 139, 148, 136, 136, 141, 129, 129, 141, 127, 127, 147, 133, 133, 152, 138, 138, 150, 136, 136, 145, 131, 131, 143, 129, 129, 140, 124, 125, 139, 123, 124, 137, 121, 122, 134, 118, 119, 132, 116, 117, 129, 113, 114, 129, 110, 112, 126, 110, 110, 120, 104, 104, 115, 100, 97, 109, 91, 89, 101, 83, 81, 96, 78, 76, 95, 77, 75, 97, 77, 76, 99, 79, 78, 89, 71, 69, 85, 67, 65, 106, 91, 88, 139, 125, 122, 133, 119, 116, 90, 79, 75, 72, 61, 57, 86, 75, 71, 90, 80, 79, 80, 70, 69, 76, 66, 65, 81, 71, 70, 79, 69, 68, 64, 54, 53, 51, 41, 40, 46, 36, 35, 43, 35, 33, 41, 33, 31, 65, 57, 55, 104, 96, 94, 110, 102, 100, 80, 72, 70, 59, 54, 51, 65, 57, 55, 64, 54, 52, 110, 100, 98, 123, 113, 111, 98, 88, 86, 95, 86, 81, 119, 110, 105, 133, 124, 119, 130, 121, 116, 130, 119, 113, 137, 126, 120, 148, 137, 131, 141, 130, 124, 139, 126, 120, 133, 120, 114, 127, 114, 108, 148, 135, 129, 154, 143, 137, 146, 135, 129, 137, 126, 120, 144, 133, 127, 139, 128, 122, 147, 136, 130, 166, 155, 149, 144, 133, 127, 158, 147, 141, 164, 153, 147, 159, 148, 142, 153, 142, 136, 153, 142, 136, 149, 138, 132, 150, 139, 133, 159, 148, 142, 152, 139, 131, 155, 142, 134, 145, 132, 124, 136, 123, 115, 143, 130, 122, 150, 137, 129, 155, 142, 134, 162, 149, 141, 145, 132, 124, 144, 131, 123, 152, 139, 131, 167, 154, 146, 141, 128, 120, 123, 110, 102, 148, 135, 127, 150, 139, 133, 148, 139, 134, 151, 141, 139, 158, 148, 146, 147, 137, 135, 154, 145, 140, 167, 158, 153, 161, 152, 147, 174, 165, 160, 177, 168, 161, 169, 160, 153, 168, 159, 152, 166, 157, 150, 158, 149, 142, 160, 151, 144, 166, 157, 150, 162, 153, 146, 149, 138, 132, 142, 131, 125, 152, 141, 135, 157, 146, 140, 151, 140, 134, 153, 142, 136, 155, 146, 139, 156, 147, 140, 154, 145, 140, 163, 154, 149, 159, 152, 146, 167, 160, 154, 169, 161, 158, 167, 159, 156, 177, 169, 166, 175, 168, 162, 174, 167, 161, 167, 160, 152, 179, 171, 168, 177, 169, 166, 176, 168, 166, 177, 169, 167, 163, 155, 152, 170, 163, 157, 179, 172, 166, 171, 164, 156, 159, 152, 144, 173, 166, 158, 174, 167, 161, 157, 150, 144, 158, 150, 148, 159, 151, 148, 156, 148, 145, 125, 118, 112, 120, 113, 107, 125, 118, 112, 139, 132, 126, 159, 152, 146, 167, 160, 154, 178, 171, 165, 168, 161, 155, 152, 145, 139, 155, 148, 142, 159, 152, 146, 146, 139, 133, 145, 138, 132, 152, 145, 139, 146, 139, 133, 160, 150, 148, 158, 148, 146, 160, 150, 148, 155, 145, 143, 147, 138, 133, 151, 142, 137, 157, 148, 143, 152, 143, 138, 167, 156, 150, 155, 144, 138, 149, 138, 132, 136, 125, 119, 119, 108, 102, 128, 117, 111, 137, 124, 118, 118, 107, 101, 127, 118, 111, 136, 127, 120, 142, 133, 126, 139, 130, 123, 133, 124, 117, 129, 120, 113, 132, 123, 116, 139, 130, 123, 126, 117, 110, 128, 119, 112, 133, 124, 117, 119, 110, 103, 100, 91, 84, 113, 104, 97, 120, 111, 104, 97, 88, 81, 103, 94, 89, 105, 96, 91, 91, 82, 77, 107, 98, 93, 123, 114, 109, 105, 96, 91, 99, 90, 85, 107, 98, 93, 133, 124, 119, 99, 90, 85, 73, 64, 59, 79, 70, 65, 83, 74, 69, 65, 56, 51, 69, 60, 55, 102, 93, 88, 101, 91, 89, 92, 82, 80, 86, 77, 72, 87, 78, 73, 108, 97, 93, 103, 92, 88, 71, 60, 56, 71, 60, 56, 67, 56, 52, 84, 73, 69, 98, 88, 86, 78, 68, 66, 79, 71, 69, 90, 82, 80, 122, 116, 116, 66, 61, 58, 89, 84, 81, 64, 61, 56, 74, 73, 68, 171, 172, 166, 91, 92, 86, 59, 58, 53, 39, 34, 30, 76, 68, 65, 65, 55, 53, 39, 29, 27, 27, 19, 16, 50, 45, 41, 64, 59, 55, 54, 46, 43, 49, 38, 36, 49, 38, 36, 60, 50, 48, 85, 75, 73, 73, 63, 61, 64, 54, 52, 75, 65, 63, 44, 34, 32, 24, 14, 12, 58, 48, 46, 84, 74, 72, 62, 52, 50, 60, 50, 48, 22, 12, 10, 25, 15, 13, 63, 53, 51, 39, 29, 27, 16, 8, 5, 46, 42, 39, 81, 80, 76, 72, 68, 65, 105, 100, 97, 157, 149, 146, 116, 106, 104, 64, 53, 51, 68, 57, 55, 39, 28, 26, 92, 81, 79, 71, 61, 60, 95, 87, 85, 178, 172, 172, 122, 118, 117, 27, 23, 24, 49, 49, 49, 130, 131, 133, 104, 106, 105, 46, 40, 42, 55, 43, 45, 60, 41, 43, 19, 0, 0, 40, 20, 19, 76, 61, 58, 68, 55, 49, 85, 76, 69, 69, 62, 54, 54, 47, 39, 84, 73, 69, 108, 94, 91, 110, 92, 90, 116, 96, 95, 86, 68, 66, 62, 47, 44, 86, 71, 68, 89, 74, 71, 66, 51, 48, 78, 63, 60, 88, 73, 70, 77, 62, 59, 86, 71, 68, 99, 84, 81, 108, 93, 90, 106, 91, 88, 102, 87, 84, 97, 82, 79, 82, 67, 64, 65, 50, 47, 95, 80, 77, 89, 74, 71, 99, 84, 81, 108, 93, 90, 98, 84, 81, 92, 78, 75, 100, 86, 83, 107, 93, 90, 99, 85, 82, 113, 99, 96, 121, 110, 106, 102, 91, 87, 71, 60, 56, 71, 60, 56, 93, 82, 78, 104, 93, 89, 96, 82, 79, 119, 105, 102, 114, 103, 99, 94, 83, 79, 99, 88, 84, 114, 103, 99, 106, 95, 91, 88, 77, 73, 103, 89, 86, 101, 87, 84, 85, 70, 67, 79, 64, 61, 105, 85, 84, 128, 108, 107, 136, 115, 114, 138, 114, 112, 132, 106, 105, 136, 108, 105, 134, 106, 102, 129, 100, 96, 126, 97, 93, 128, 99, 95, 127, 96, 93, 123, 93, 91, 122, 94, 91, 121, 95, 94, 124, 100, 98, 126, 105, 104, 118, 100, 98, 104, 88, 88, 96, 82, 82, 96, 82, 81, 90, 75, 72, 93, 75, 73, 98, 80, 78, 106, 88, 86, 106, 88, 88, 97, 79, 79, 91, 72, 74, 89, 70, 72, 92, 73, 75, 98, 79, 81, 101, 83, 83, 93, 75, 75, 80, 62, 60, 75, 57, 55, 82, 64, 62, 93, 75, 73, 102, 84, 84, 97, 81, 81, 108, 92, 92, 134, 119, 116, 156, 141, 138, 164, 151, 145, 167, 154, 148, 169, 158, 152, 166, 157, 152, 171, 163, 160, 179, 174, 171, 187, 183, 182, 194, 192, 195, 203, 202, 207, 213, 212, 218, 219, 220, 225, 223, 226, 231, 226, 231, 235, 231, 236, 240, 232, 240, 243, 233, 241, 244, 233, 241, 244, 234, 242, 245, 236, 244, 247, 237, 245, 248, 237, 245, 248, 239, 244, 248, 239, 244, 248, 241, 244, 249, 241, 244, 249, 244, 245, 250, 244, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 248, 253, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 241, 247, 235, 240, 246, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 231, 234, 239, 231, 234, 239, 230, 233, 240, 230, 233, 240, 230, 233, 242, 229, 232, 241, 229, 232, 241, 229, 232, 241, 227, 229, 241, 228, 230, 242, 229, 232, 241, 230, 233, 242, 230, 233, 242, 229, 232, 239, 228, 231, 238, 227, 231, 234, 224, 225, 227, 196, 198, 197, 171, 171, 169, 158, 154, 153, 138, 130, 128, 113, 101, 101, 106, 90, 90, 115, 97, 97, 97, 77, 76, 94, 73, 72, 95, 71, 71, 105, 81, 81, 120, 95, 98, 132, 107, 110, 135, 110, 114, 132, 110, 112, 134, 112, 114, 134, 114, 113, 138, 117, 116, 143, 122, 121, 145, 124, 123, 140, 119, 118, 132, 108, 108, 123, 99, 99, 124, 98, 99, 120, 94, 95, 120, 91, 93, 122, 93, 95, 127, 98, 100, 128, 99, 101, 126, 96, 98, 122, 91, 96, 121, 90, 96, 117, 86, 92, 111, 80, 86, 106, 75, 81, 102, 71, 79, 102, 71, 79, 103, 72, 80, 104, 73, 81, 104, 73, 81, 106, 73, 82, 107, 74, 85, 107, 74, 85, 105, 72, 83, 103, 70, 81, 100, 66, 80, 98, 65, 76, 96, 63, 72, 95, 62, 69, 94, 61, 68, 94, 61, 68, 95, 62, 71, 97, 64, 73, 99, 66, 75, 100, 67, 76, 103, 70, 81, 102, 69, 80, 101, 68, 79, 100, 67, 78, 100, 67, 78, 102, 69, 80, 104, 71, 82, 106, 73, 84, 113, 80, 89, 109, 78, 86, 106, 73, 82, 102, 69, 78, 99, 66, 75, 97, 64, 73, 94, 61, 68, 92, 61, 67, 111, 80, 86, 103, 74, 79, 101, 72, 77, 112, 85, 90, 139, 114, 117, 159, 137, 139, 159, 137, 139, 147, 127, 128, 131, 111, 113, 127, 106, 111, 127, 106, 111, 125, 106, 110, 110, 91, 95, 89, 70, 74, 84, 63, 68, 90, 69, 74, 88, 67, 72, 92, 71, 76, 102, 81, 86, 117, 96, 101, 134, 113, 120, 154, 133, 138, 174, 153, 160, 185, 169, 172, 171, 161, 162, 169, 160, 161, 169, 160, 161, 171, 162, 163, 172, 163, 164, 167, 158, 159, 158, 150, 148, 150, 142, 140, 160, 152, 150, 156, 148, 146, 151, 143, 141, 148, 140, 138, 146, 138, 135, 144, 136, 133, 140, 132, 129, 139, 129, 127, 137, 125, 125, 140, 128, 128, 151, 137, 137, 160, 146, 146, 160, 146, 146, 151, 137, 137, 143, 129, 129, 141, 127, 127, 140, 124, 125, 137, 121, 122, 131, 115, 116, 123, 107, 108, 115, 99, 100, 107, 91, 92, 103, 84, 86, 100, 82, 82, 90, 74, 74, 88, 73, 70, 86, 68, 66, 83, 65, 63, 84, 66, 64, 87, 69, 67, 92, 72, 71, 96, 76, 75, 95, 75, 74, 100, 82, 80, 92, 74, 72, 85, 70, 67, 112, 97, 94, 140, 126, 123, 117, 103, 100, 67, 56, 52, 78, 68, 67, 76, 66, 65, 69, 59, 58, 63, 53, 52, 63, 53, 52, 64, 54, 53, 51, 41, 40, 34, 24, 23, 36, 28, 26, 42, 34, 32, 51, 43, 41, 70, 62, 60, 101, 93, 91, 116, 108, 106, 91, 86, 83, 56, 51, 48, 63, 53, 51, 88, 78, 76, 105, 95, 93, 103, 93, 91, 96, 87, 82, 99, 90, 85, 110, 101, 96, 121, 112, 107, 126, 115, 109, 129, 118, 112, 131, 120, 114, 133, 122, 116, 144, 131, 125, 142, 129, 123, 131, 118, 112, 134, 121, 115, 137, 126, 120, 140, 129, 123, 141, 130, 124, 147, 136, 130, 130, 119, 113, 130, 119, 113, 159, 148, 142, 151, 140, 134, 155, 144, 138, 160, 149, 143, 160, 149, 143, 154, 143, 137, 148, 137, 131, 143, 132, 126, 143, 132, 126, 148, 137, 131, 148, 135, 127, 154, 141, 133, 147, 134, 126, 139, 126, 118, 146, 133, 125, 152, 139, 131, 153, 140, 132, 159, 146, 138, 146, 133, 125, 146, 133, 125, 153, 140, 132, 164, 151, 143, 134, 121, 113, 115, 102, 94, 146, 133, 125, 153, 142, 136, 148, 137, 133, 146, 136, 134, 151, 141, 139, 140, 130, 128, 148, 139, 134, 160, 151, 146, 155, 146, 141, 172, 163, 158, 172, 163, 156, 165, 156, 149, 166, 157, 150, 165, 156, 149, 159, 150, 143, 161, 152, 145, 167, 158, 151, 163, 154, 147, 147, 136, 130, 134, 123, 117, 149, 138, 132, 155, 144, 138, 152, 141, 135, 157, 146, 140, 155, 146, 139, 161, 152, 145, 158, 149, 144, 164, 155, 150, 166, 159, 153, 171, 164, 158, 170, 162, 159, 166, 158, 155, 167, 159, 156, 165, 158, 152, 176, 169, 163, 167, 160, 152, 177, 169, 166, 174, 166, 163, 173, 165, 163, 175, 167, 165, 163, 155, 152, 172, 165, 159, 172, 165, 159, 165, 158, 150, 157, 150, 142, 168, 161, 153, 176, 169, 163, 164, 157, 151, 155, 147, 145, 156, 148, 145, 156, 148, 145, 128, 121, 115, 125, 118, 112, 135, 128, 122, 140, 133, 127, 151, 144, 138, 159, 152, 146, 159, 152, 146, 167, 160, 154, 159, 152, 146, 163, 156, 150, 163, 156, 150, 151, 144, 138, 148, 141, 135, 150, 143, 137, 144, 137, 131, 153, 143, 141, 155, 145, 143, 155, 145, 143, 149, 139, 137, 143, 134, 129, 144, 135, 130, 145, 136, 131, 140, 131, 126, 161, 150, 144, 154, 143, 137, 148, 137, 131, 133, 122, 116, 121, 110, 104, 130, 119, 113, 134, 121, 115, 115, 104, 98, 126, 115, 109, 138, 129, 122, 143, 134, 127, 139, 130, 123, 133, 124, 117, 128, 119, 112, 132, 123, 116, 144, 135, 128, 130, 121, 114, 128, 119, 112, 135, 126, 119, 122, 113, 106, 99, 90, 83, 112, 103, 96, 121, 112, 105, 94, 85, 78, 95, 86, 81, 98, 89, 84, 84, 75, 70, 93, 84, 79, 114, 105, 100, 100, 91, 86, 85, 76, 71, 96, 87, 82, 117, 108, 103, 96, 87, 82, 75, 66, 61, 74, 65, 60, 71, 62, 57, 54, 45, 40, 58, 49, 44, 87, 78, 73, 106, 96, 94, 102, 92, 90, 97, 88, 83, 96, 87, 82, 108, 97, 93, 108, 97, 93, 88, 77, 73, 75, 64, 60, 62, 51, 47, 84, 73, 69, 95, 85, 83, 77, 67, 65, 79, 71, 69, 92, 84, 82, 132, 126, 126, 73, 68, 65, 62, 57, 54, 55, 52, 47, 85, 84, 79, 177, 178, 172, 68, 69, 63, 59, 58, 53, 29, 24, 20, 63, 55, 52, 65, 55, 53, 46, 38, 35, 30, 25, 21, 47, 42, 38, 57, 52, 48, 56, 48, 45, 59, 48, 46, 46, 32, 31, 62, 51, 49, 70, 60, 58, 76, 66, 64, 90, 80, 78, 82, 72, 70, 32, 22, 20, 24, 14, 12, 77, 67, 65, 63, 53, 51, 47, 37, 35, 60, 50, 48, 40, 30, 28, 38, 28, 26, 52, 42, 40, 23, 13, 11, 19, 11, 8, 45, 41, 38, 72, 71, 67, 107, 106, 102, 155, 151, 148, 118, 113, 109, 60, 52, 49, 72, 61, 59, 60, 49, 47, 77, 66, 64, 84, 74, 72, 136, 126, 125, 175, 170, 167, 116, 112, 111, 20, 19, 17, 33, 31, 32, 121, 121, 121, 126, 126, 124, 38, 37, 35, 13, 4, 5, 49, 35, 35, 29, 11, 11, 29, 9, 10, 78, 58, 57, 68, 53, 50, 51, 40, 36, 60, 51, 44, 58, 51, 45, 70, 63, 57, 105, 94, 90, 118, 104, 101, 105, 87, 85, 95, 75, 74, 82, 64, 62, 64, 49, 46, 74, 59, 56, 76, 61, 58, 64, 49, 46, 77, 62, 59, 88, 73, 70, 76, 61, 58, 95, 80, 77, 103, 88, 85, 107, 92, 89, 100, 85, 82, 93, 78, 75, 89, 74, 71, 82, 67, 64, 74, 59, 56, 100, 85, 82, 95, 80, 77, 101, 86, 83, 101, 86, 83, 85, 71, 68, 82, 68, 65, 102, 88, 85, 119, 105, 102, 108, 94, 91, 113, 99, 96, 112, 101, 97, 97, 86, 82, 82, 71, 67, 92, 81, 77, 107, 96, 92, 105, 94, 90, 100, 86, 83, 127, 113, 110, 116, 105, 101, 97, 86, 82, 111, 100, 96, 119, 108, 104, 101, 90, 86, 88, 77, 73, 106, 92, 89, 111, 97, 94, 108, 93, 90, 109, 94, 91, 130, 110, 109, 137, 117, 116, 129, 108, 107, 121, 100, 97, 131, 107, 103, 135, 110, 106, 133, 108, 103, 131, 103, 99, 130, 102, 98, 131, 103, 99, 128, 100, 97, 122, 94, 91, 121, 95, 94, 123, 99, 97, 125, 104, 103, 124, 104, 103, 117, 99, 99, 105, 89, 89, 98, 82, 83, 95, 79, 80, 100, 82, 82, 100, 82, 80, 105, 85, 84, 106, 88, 86, 101, 83, 83, 92, 74, 74, 87, 68, 70, 88, 69, 71, 94, 75, 77, 100, 81, 83, 101, 83, 83, 90, 72, 72, 79, 61, 59, 77, 62, 59, 90, 72, 70, 98, 83, 80, 110, 96, 95, 112, 98, 95, 123, 109, 106, 141, 128, 122, 158, 145, 139, 166, 153, 147, 169, 156, 150, 168, 157, 151, 172, 163, 156, 174, 166, 163, 180, 175, 172, 190, 186, 187, 200, 198, 201, 208, 209, 214, 213, 213, 221, 213, 216, 223, 224, 229, 233, 228, 233, 237, 230, 238, 241, 232, 240, 243, 233, 241, 244, 233, 241, 244, 235, 243, 246, 236, 244, 247, 237, 245, 248, 237, 245, 248, 239, 244, 248, 239, 244, 248, 241, 244, 249, 241, 244, 249, 244, 245, 250, 244, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 248, 253, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 241, 247, 235, 240, 246, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 231, 234, 239, 231, 234, 239, 231, 234, 239, 230, 233, 240, 230, 233, 242, 230, 233, 242, 229, 231, 243, 229, 231, 243, 228, 230, 242, 228, 230, 242, 229, 231, 243, 230, 233, 242, 230, 233, 242, 230, 233, 240, 229, 232, 239, 229, 232, 237, 229, 233, 234, 208, 210, 209, 184, 184, 182, 164, 163, 161, 139, 134, 131, 115, 105, 104, 110, 96, 95, 120, 102, 102, 125, 105, 104, 125, 104, 103, 129, 105, 105, 137, 113, 113, 147, 122, 125, 152, 127, 130, 149, 124, 128, 143, 121, 123, 139, 117, 119, 137, 117, 116, 137, 117, 116, 140, 120, 119, 145, 124, 123, 143, 122, 121, 139, 115, 115, 133, 109, 109, 128, 103, 106, 124, 99, 102, 123, 97, 100, 125, 99, 102, 132, 103, 107, 135, 106, 110, 133, 104, 108, 130, 101, 106, 130, 100, 108, 126, 96, 106, 121, 91, 101, 116, 86, 96, 112, 82, 92, 111, 81, 91, 111, 81, 91, 112, 82, 92, 108, 78, 88, 108, 76, 87, 107, 75, 86, 105, 73, 84, 103, 71, 82, 101, 69, 80, 100, 68, 79, 99, 67, 78, 100, 67, 76, 98, 65, 72, 96, 63, 70, 95, 62, 69, 95, 62, 71, 97, 64, 73, 99, 66, 75, 101, 68, 77, 95, 62, 73, 97, 64, 75, 99, 66, 77, 101, 68, 79, 103, 70, 81, 103, 70, 81, 104, 71, 82, 104, 71, 82, 102, 71, 79, 100, 70, 78, 99, 68, 76, 96, 65, 73, 95, 64, 70, 96, 65, 71, 99, 68, 74, 101, 70, 76, 98, 67, 73, 108, 79, 84, 123, 97, 100, 140, 115, 118, 156, 131, 134, 155, 133, 135, 137, 115, 117, 116, 96, 97, 101, 79, 81, 93, 71, 74, 90, 68, 71, 91, 71, 73, 89, 69, 71, 90, 70, 72, 104, 85, 89, 125, 106, 110, 135, 116, 122, 145, 128, 134, 162, 145, 151, 172, 155, 161, 175, 160, 167, 173, 158, 163, 167, 152, 159, 161, 149, 153, 154, 144, 145, 166, 157, 158, 174, 165, 166, 167, 158, 159, 150, 141, 142, 142, 133, 134, 150, 142, 140, 161, 153, 151, 145, 137, 135, 142, 134, 132, 139, 131, 129, 139, 131, 129, 141, 133, 130, 143, 135, 132, 143, 135, 132, 144, 134, 132, 139, 127, 127, 144, 130, 130, 150, 136, 136, 152, 138, 138, 143, 129, 129, 129, 115, 115, 122, 106, 107, 122, 106, 107, 136, 120, 121, 132, 116, 117, 124, 108, 109, 114, 98, 99, 105, 86, 88, 94, 75, 77, 87, 68, 70, 82, 64, 64, 80, 62, 62, 78, 60, 58, 75, 55, 54, 73, 53, 52, 74, 54, 53, 77, 57, 56, 81, 60, 59, 83, 63, 62, 86, 66, 65, 97, 79, 77, 87, 69, 67, 63, 48, 45, 73, 58, 55, 109, 95, 92, 128, 114, 111, 118, 107, 103, 67, 57, 56, 70, 60, 59, 73, 63, 62, 70, 60, 59, 59, 49, 48, 48, 38, 37, 44, 36, 34, 47, 39, 37, 43, 35, 33, 57, 49, 47, 56, 48, 46, 52, 44, 42, 79, 74, 71, 119, 114, 111, 116, 111, 108, 84, 79, 76, 73, 63, 61, 73, 63, 61, 85, 75, 73, 99, 89, 87, 96, 87, 82, 88, 79, 74, 92, 83, 78, 102, 93, 88, 115, 104, 98, 127, 116, 110, 127, 116, 110, 131, 120, 114, 143, 130, 124, 140, 127, 121, 135, 122, 116, 134, 121, 115, 125, 114, 108, 130, 119, 113, 137, 126, 120, 148, 137, 131, 130, 119, 113, 126, 115, 109, 156, 145, 139, 152, 141, 135, 148, 137, 131, 154, 143, 137, 161, 150, 144, 158, 147, 141, 145, 134, 128, 137, 126, 120, 136, 125, 119, 136, 125, 119, 145, 132, 124, 154, 141, 133, 151, 138, 130, 147, 134, 126, 153, 140, 132, 155, 142, 134, 151, 138, 130, 152, 139, 131, 150, 137, 129, 148, 135, 127, 151, 138, 130, 157, 144, 136, 125, 112, 104, 108, 95, 87, 144, 131, 123, 157, 146, 140, 151, 140, 136, 145, 136, 131, 146, 137, 132, 136, 127, 122, 142, 133, 128, 153, 144, 139, 151, 142, 137, 172, 163, 158, 163, 154, 147, 157, 148, 141, 161, 152, 145, 163, 154, 147, 158, 149, 140, 162, 153, 144, 169, 160, 151, 165, 156, 147, 145, 134, 128, 126, 115, 109, 146, 135, 129, 154, 143, 137, 155, 144, 138, 163, 152, 146, 156, 147, 140, 168, 159, 152, 156, 147, 142, 160, 151, 146, 169, 160, 155, 171, 162, 157, 168, 160, 157, 166, 158, 155, 161, 153, 150, 161, 154, 148, 177, 170, 164, 165, 158, 150, 173, 165, 162, 168, 160, 157, 167, 159, 157, 171, 163, 161, 162, 154, 151, 172, 165, 159, 165, 158, 152, 162, 155, 147, 157, 150, 142, 162, 155, 147, 174, 167, 161, 167, 160, 154, 150, 142, 140, 155, 147, 144, 163, 155, 152, 141, 134, 128, 130, 123, 117, 140, 133, 127, 144, 137, 131, 149, 142, 136, 161, 154, 148, 162, 155, 149, 167, 160, 154, 167, 160, 154, 169, 162, 156, 165, 158, 152, 155, 148, 142, 152, 145, 139, 153, 146, 140, 148, 141, 135, 153, 143, 141, 156, 146, 144, 152, 142, 140, 146, 136, 134, 146, 137, 132, 145, 136, 131, 141, 130, 126, 136, 125, 121, 153, 142, 136, 150, 139, 133, 146, 135, 129, 135, 124, 118, 130, 117, 111, 135, 122, 116, 137, 124, 118, 124, 113, 107, 131, 120, 114, 145, 136, 129, 146, 137, 130, 139, 130, 123, 135, 126, 119, 128, 119, 112, 130, 121, 114, 146, 137, 130, 138, 129, 122, 127, 118, 111, 136, 127, 120, 127, 118, 111, 100, 91, 84, 108, 99, 92, 119, 110, 103, 94, 85, 78, 99, 90, 85, 102, 93, 88, 97, 88, 83, 98, 89, 84, 109, 100, 95, 99, 90, 85, 85, 76, 71, 97, 88, 83, 95, 86, 81, 99, 90, 85, 91, 82, 77, 76, 67, 62, 64, 55, 50, 52, 43, 38, 57, 48, 43, 77, 68, 63, 100, 90, 88, 95, 85, 83, 105, 96, 91, 110, 101, 96, 96, 85, 81, 102, 91, 87, 108, 97, 93, 83, 72, 68, 69, 58, 54, 87, 76, 72, 86, 76, 74, 70, 60, 58, 73, 65, 63, 84, 76, 74, 133, 127, 127, 76, 71, 68, 55, 51, 48, 63, 60, 55, 111, 110, 105, 166, 167, 161, 54, 53, 48, 61, 58, 53, 34, 26, 23, 63, 53, 51, 78, 68, 66, 66, 58, 55, 44, 39, 35, 55, 52, 47, 63, 58, 54, 69, 61, 58, 84, 70, 69, 57, 43, 42, 51, 40, 38, 68, 58, 56, 92, 82, 80, 102, 92, 90, 76, 66, 64, 35, 25, 23, 41, 31, 29, 85, 75, 73, 61, 51, 49, 57, 47, 45, 70, 60, 58, 38, 28, 26, 33, 23, 21, 51, 41, 39, 26, 16, 14, 27, 19, 16, 11, 10, 6, 116, 117, 112, 154, 153, 149, 124, 120, 117, 70, 65, 61, 67, 59, 56, 88, 77, 75, 32, 21, 19, 102, 91, 89, 127, 117, 115, 185, 175, 174, 125, 120, 117, 5, 1, 0, 48, 46, 47, 136, 136, 138, 104, 102, 103, 42, 37, 34, 44, 34, 32, 49, 38, 36, 40, 26, 25, 61, 45, 45, 86, 70, 70, 73, 57, 57, 76, 62, 61, 77, 66, 64, 56, 45, 41, 62, 52, 50, 88, 77, 75, 100, 89, 87, 105, 91, 90, 99, 84, 81, 83, 65, 63, 68, 53, 50, 80, 65, 62, 75, 60, 57, 66, 51, 48, 66, 51, 48, 71, 56, 53, 85, 70, 67, 93, 78, 75, 95, 80, 77, 100, 85, 82, 102, 87, 84, 98, 83, 80, 95, 80, 77, 95, 80, 77, 95, 80, 77, 93, 78, 75, 97, 82, 79, 97, 82, 79, 103, 88, 85, 97, 82, 79, 79, 65, 62, 83, 69, 66, 106, 92, 89, 121, 107, 104, 109, 95, 92, 104, 90, 87, 106, 95, 91, 106, 95, 91, 98, 87, 83, 99, 88, 84, 104, 93, 89, 100, 89, 85, 110, 96, 93, 124, 110, 107, 114, 103, 99, 107, 96, 92, 120, 109, 105, 114, 103, 99, 95, 84, 80, 93, 82, 78, 116, 102, 99, 121, 107, 104, 116, 101, 98, 111, 96, 93, 121, 101, 100, 124, 104, 103, 125, 104, 103, 131, 110, 107, 131, 110, 105, 135, 112, 106, 134, 111, 105, 132, 107, 102, 132, 107, 103, 132, 107, 103, 126, 100, 99, 117, 91, 90, 120, 94, 95, 124, 100, 100, 126, 104, 106, 123, 103, 104, 116, 97, 99, 107, 91, 92, 99, 83, 86, 94, 78, 79, 102, 82, 83, 101, 81, 80, 104, 83, 82, 106, 86, 85, 102, 82, 83, 95, 75, 76, 93, 74, 76, 97, 78, 80, 97, 81, 82, 102, 86, 87, 98, 82, 82, 85, 69, 69, 79, 64, 61, 87, 73, 70, 101, 86, 83, 108, 94, 91, 113, 102, 98, 120, 111, 106, 124, 113, 109, 126, 115, 109, 140, 129, 123, 160, 150, 141, 166, 156, 147, 159, 149, 140, 171, 162, 155, 174, 167, 161, 181, 176, 173, 192, 190, 191, 206, 205, 210, 215, 216, 221, 217, 220, 229, 216, 220, 229, 227, 232, 238, 228, 236, 239, 231, 239, 242, 232, 240, 243, 231, 241, 243, 232, 242, 244, 234, 244, 246, 236, 246, 248, 237, 245, 248, 237, 245, 248, 239, 244, 248, 239, 244, 248, 241, 244, 249, 243, 244, 249, 245, 244, 250, 244, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 248, 253, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 241, 247, 235, 240, 246, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 232, 235, 240, 231, 234, 239, 231, 234, 239, 231, 234, 239, 230, 233, 242, 230, 233, 242, 230, 232, 244, 230, 232, 244, 229, 231, 243, 229, 231, 243, 229, 231, 243, 229, 231, 243, 229, 232, 241, 229, 232, 241, 229, 232, 239, 230, 233, 238, 224, 228, 229, 211, 215, 214, 192, 194, 191, 171, 170, 168, 148, 143, 140, 131, 121, 120, 125, 111, 110, 127, 109, 109, 157, 137, 136, 156, 135, 134, 156, 132, 132, 154, 130, 130, 152, 127, 130, 148, 123, 126, 144, 119, 123, 138, 116, 118, 135, 113, 115, 132, 112, 111, 131, 111, 110, 134, 114, 113, 140, 119, 118, 141, 120, 119, 141, 117, 117, 137, 113, 113, 133, 108, 111, 131, 106, 109, 130, 104, 107, 130, 104, 107, 134, 105, 109, 136, 107, 111, 137, 108, 112, 136, 107, 112, 135, 105, 117, 131, 103, 117, 130, 99, 114, 127, 96, 111, 123, 92, 107, 121, 91, 103, 119, 89, 101, 118, 88, 100, 114, 84, 96, 112, 82, 92, 110, 78, 89, 107, 75, 86, 104, 72, 83, 103, 71, 82, 102, 70, 81, 102, 71, 79, 105, 72, 79, 102, 69, 76, 99, 66, 73, 95, 62, 69, 94, 61, 70, 96, 63, 72, 98, 65, 74, 100, 67, 76, 97, 64, 75, 99, 66, 77, 102, 69, 80, 104, 71, 82, 104, 71, 82, 102, 69, 80, 99, 66, 77, 96, 64, 75, 95, 65, 73, 97, 67, 75, 99, 69, 77, 97, 67, 75, 95, 64, 70, 92, 61, 67, 92, 61, 67, 92, 63, 68, 121, 92, 97, 132, 105, 110, 140, 115, 118, 133, 111, 113, 120, 98, 100, 109, 89, 90, 103, 83, 84, 99, 79, 80, 99, 74, 77, 97, 72, 75, 103, 78, 81, 120, 98, 101, 140, 118, 121, 152, 132, 134, 157, 138, 142, 159, 143, 146, 159, 142, 148, 163, 148, 153, 161, 148, 155, 153, 142, 148, 149, 138, 144, 149, 140, 145, 149, 140, 145, 145, 139, 143, 160, 151, 154, 153, 144, 145, 145, 136, 137, 142, 133, 134, 146, 137, 138, 152, 143, 144, 157, 149, 147, 158, 150, 148, 139, 131, 129, 141, 133, 131, 145, 137, 135, 150, 142, 140, 152, 144, 141, 149, 141, 138, 143, 135, 132, 138, 128, 126, 145, 133, 133, 142, 128, 128, 134, 120, 120, 124, 110, 110, 110, 96, 96, 98, 84, 84, 99, 83, 84, 104, 88, 89, 121, 105, 106, 118, 102, 103, 113, 97, 98, 107, 91, 92, 101, 82, 84, 95, 76, 78, 90, 71, 73, 87, 69, 69, 95, 77, 77, 93, 75, 73, 92, 72, 71, 91, 71, 70, 92, 72, 71, 94, 74, 73, 98, 77, 76, 101, 80, 79, 105, 85, 84, 78, 58, 57, 75, 55, 54, 90, 72, 70, 78, 60, 58, 55, 40, 37, 88, 73, 70, 148, 134, 131, 131, 119, 119, 92, 82, 81, 66, 56, 55, 67, 57, 56, 62, 52, 51, 43, 33, 32, 37, 29, 27, 50, 42, 40, 34, 26, 24, 45, 37, 35, 51, 43, 41, 50, 42, 40, 59, 54, 51, 86, 81, 78, 113, 108, 105, 125, 120, 117, 86, 76, 74, 78, 68, 66, 81, 71, 69, 88, 78, 76, 89, 80, 75, 91, 82, 77, 90, 81, 76, 81, 72, 67, 95, 84, 78, 126, 115, 109, 132, 121, 115, 133, 122, 116, 131, 118, 112, 124, 111, 105, 135, 122, 116, 144, 131, 125, 125, 114, 108, 121, 110, 104, 124, 113, 107, 141, 130, 124, 132, 121, 115, 130, 119, 113, 154, 143, 137, 145, 134, 128, 139, 128, 122, 145, 134, 128, 158, 147, 141, 158, 147, 141, 142, 131, 125, 133, 122, 116, 134, 123, 117, 131, 120, 114, 143, 130, 122, 154, 141, 133, 153, 140, 132, 150, 137, 129, 155, 142, 134, 153, 140, 132, 145, 132, 124, 144, 131, 123, 149, 136, 128, 144, 131, 123, 142, 129, 121, 146, 133, 125, 115, 102, 94, 100, 87, 79, 138, 125, 117, 151, 141, 132, 151, 140, 136, 143, 134, 129, 145, 136, 131, 136, 127, 122, 142, 133, 128, 148, 139, 134, 144, 135, 130, 167, 158, 153, 156, 147, 140, 151, 142, 135, 156, 147, 140, 159, 150, 143, 156, 147, 138, 161, 152, 143, 167, 158, 149, 163, 154, 145, 146, 135, 129, 120, 109, 103, 144, 133, 127, 152, 141, 135, 155, 144, 138, 165, 154, 148, 154, 145, 138, 170, 161, 154, 149, 140, 135, 151, 142, 137, 166, 157, 152, 167, 158, 153, 167, 159, 156, 170, 162, 159, 161, 153, 150, 165, 158, 152, 177, 170, 164, 164, 157, 149, 170, 162, 159, 163, 155, 152, 162, 154, 152, 167, 159, 157, 161, 153, 150, 173, 166, 160, 160, 153, 147, 161, 154, 146, 160, 153, 145, 156, 149, 141, 169, 162, 156, 166, 159, 153, 145, 137, 135, 156, 148, 145, 158, 150, 147, 147, 140, 134, 118, 111, 105, 122, 115, 109, 136, 129, 123, 138, 131, 125, 155, 148, 142, 168, 161, 155, 165, 158, 152, 169, 162, 156, 168, 161, 155, 159, 152, 146, 152, 145, 139, 153, 146, 140, 156, 149, 143, 156, 149, 143, 159, 149, 147, 160, 150, 148, 149, 139, 137, 144, 134, 132, 152, 143, 138, 152, 143, 138, 142, 131, 127, 136, 125, 121, 145, 134, 128, 144, 133, 127, 144, 133, 127, 141, 130, 124, 137, 124, 118, 135, 122, 116, 137, 124, 118, 138, 127, 121, 135, 124, 118, 150, 141, 134, 145, 136, 129, 136, 127, 120, 137, 128, 121, 129, 120, 113, 127, 118, 111, 144, 135, 128, 143, 134, 127, 121, 112, 105, 132, 123, 116, 134, 125, 118, 104, 95, 88, 105, 96, 89, 118, 109, 102, 98, 89, 82, 102, 93, 88, 97, 88, 83, 107, 98, 93, 104, 95, 90, 101, 92, 87, 98, 89, 84, 89, 80, 75, 96, 87, 82, 82, 73, 68, 103, 94, 89, 107, 98, 93, 91, 82, 77, 74, 65, 60, 62, 53, 48, 63, 54, 49, 76, 67, 62, 89, 79, 77, 86, 76, 74, 103, 94, 89, 114, 105, 100, 88, 77, 73, 91, 80, 76, 114, 103, 99, 91, 80, 76, 83, 72, 68, 90, 79, 75, 76, 66, 64, 66, 56, 54, 70, 62, 60, 73, 65, 63, 126, 120, 120, 71, 66, 63, 71, 67, 64, 85, 84, 79, 146, 147, 141, 138, 139, 133, 49, 48, 43, 60, 57, 52, 50, 42, 39, 75, 65, 63, 84, 74, 72, 66, 58, 55, 44, 39, 35, 67, 64, 59, 72, 67, 63, 70, 62, 59, 91, 77, 76, 64, 50, 49, 39, 28, 26, 81, 71, 69, 112, 102, 100, 93, 83, 81, 59, 49, 47, 55, 45, 43, 67, 57, 55, 71, 61, 59, 44, 34, 32, 61, 51, 49, 78, 68, 66, 34, 24, 22, 30, 20, 18, 56, 46, 44, 26, 16, 14, 13, 8, 4, 67, 66, 62, 172, 174, 169, 136, 135, 131, 57, 53, 50, 69, 64, 60, 79, 71, 68, 62, 51, 49, 59, 48, 46, 140, 129, 127, 186, 176, 174, 116, 106, 105, 21, 15, 15, 62, 58, 59, 123, 123, 123, 102, 102, 104, 63, 61, 62, 57, 46, 44, 63, 48, 45, 81, 67, 64, 76, 62, 61, 86, 72, 71, 80, 66, 65, 56, 45, 43, 99, 88, 86, 69, 58, 56, 52, 38, 37, 72, 58, 57, 99, 85, 84, 96, 82, 81, 94, 80, 79, 88, 74, 71, 64, 50, 47, 60, 45, 42, 93, 78, 75, 86, 71, 68, 69, 54, 51, 64, 49, 46, 65, 50, 47, 90, 75, 72, 113, 98, 95, 102, 87, 84, 103, 88, 85, 104, 89, 86, 104, 89, 86, 101, 86, 83, 95, 80, 77, 88, 73, 70, 85, 70, 67, 90, 75, 72, 99, 84, 81, 106, 91, 88, 96, 81, 78, 81, 67, 64, 92, 78, 75, 107, 93, 90, 107, 93, 90, 98, 84, 81, 98, 84, 81, 110, 99, 95, 118, 107, 103, 103, 92, 88, 92, 81, 77, 99, 88, 84, 106, 95, 91, 132, 118, 115, 128, 114, 111, 119, 108, 104, 122, 111, 107, 124, 113, 109, 111, 100, 96, 102, 91, 87, 109, 98, 94, 107, 93, 90, 118, 104, 101, 121, 106, 103, 119, 104, 101, 124, 104, 103, 121, 101, 100, 124, 103, 102, 135, 114, 111, 135, 114, 109, 136, 116, 109, 135, 115, 108, 135, 112, 106, 136, 112, 108, 134, 110, 106, 125, 101, 99, 113, 89, 87, 117, 93, 93, 123, 102, 101, 126, 106, 107, 122, 102, 103, 116, 97, 99, 111, 92, 94, 102, 86, 89, 97, 78, 80, 97, 75, 77, 94, 73, 72, 94, 73, 72, 99, 78, 77, 101, 79, 81, 100, 80, 81, 101, 82, 84, 105, 86, 88, 101, 85, 86, 104, 88, 89, 99, 83, 83, 87, 73, 72, 88, 74, 71, 104, 90, 87, 115, 101, 98, 115, 104, 100, 106, 99, 93, 114, 107, 99, 113, 106, 98, 110, 101, 92, 126, 117, 108, 152, 144, 133, 159, 149, 139, 146, 138, 127, 162, 155, 145, 168, 163, 157, 180, 176, 173, 196, 194, 195, 212, 211, 216, 221, 224, 231, 225, 229, 238, 224, 231, 239, 227, 234, 240, 230, 238, 241, 232, 240, 243, 232, 240, 243, 231, 241, 243, 232, 242, 244, 235, 245, 247, 237, 247, 249, 237, 245, 248, 237, 245, 248, 239, 244, 248, 239, 244, 248, 243, 244, 249, 243, 244, 249, 245, 244, 250, 244, 245, 250, 244, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 248, 253, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 241, 247, 235, 240, 246, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 232, 235, 240, 232, 235, 240, 231, 234, 239, 231, 234, 239, 231, 234, 243, 230, 233, 242, 230, 232, 244, 230, 232, 244, 231, 233, 245, 230, 232, 244, 229, 231, 243, 228, 230, 242, 228, 231, 240, 228, 231, 240, 228, 231, 240, 229, 232, 239, 222, 228, 228, 219, 223, 222, 204, 206, 203, 179, 178, 176, 159, 154, 151, 147, 137, 136, 137, 123, 122, 128, 110, 110, 132, 112, 111, 136, 115, 114, 140, 116, 116, 136, 112, 112, 128, 103, 106, 120, 95, 98, 116, 91, 95, 112, 90, 92, 129, 107, 109, 127, 107, 106, 127, 107, 106, 132, 112, 111, 138, 118, 117, 141, 121, 120, 140, 119, 118, 137, 116, 115, 137, 112, 115, 137, 112, 115, 137, 111, 114, 134, 108, 111, 132, 105, 110, 132, 105, 110, 136, 107, 112, 139, 109, 117, 135, 107, 121, 134, 107, 122, 135, 107, 122, 133, 105, 120, 131, 103, 118, 127, 99, 113, 123, 95, 109, 121, 93, 105, 122, 92, 104, 119, 89, 101, 114, 84, 94, 109, 79, 89, 106, 76, 86, 105, 75, 85, 106, 75, 83, 107, 76, 84, 110, 77, 84, 106, 73, 80, 101, 68, 75, 96, 63, 70, 94, 61, 70, 94, 61, 70, 97, 64, 73, 98, 65, 74, 100, 67, 78, 101, 68, 79, 103, 70, 81, 103, 70, 81, 103, 70, 81, 101, 68, 79, 99, 66, 77, 97, 65, 76, 96, 66, 74, 95, 68, 75, 95, 68, 75, 93, 66, 73, 92, 63, 68, 93, 64, 69, 98, 69, 74, 101, 74, 79, 139, 112, 117, 139, 112, 117, 129, 104, 107, 109, 87, 89, 96, 74, 76, 96, 76, 77, 104, 84, 85, 111, 91, 92, 134, 108, 109, 142, 113, 115, 150, 121, 123, 155, 129, 132, 159, 137, 139, 157, 137, 139, 143, 124, 128, 127, 111, 114, 117, 105, 109, 123, 112, 116, 125, 116, 121, 122, 116, 120, 128, 126, 131, 146, 145, 150, 161, 160, 165, 167, 165, 170, 162, 156, 158, 148, 139, 140, 135, 126, 127, 140, 131, 132, 156, 147, 148, 164, 155, 156, 156, 148, 146, 144, 136, 134, 147, 139, 137, 150, 142, 140, 155, 147, 145, 158, 150, 148, 155, 147, 144, 145, 137, 134, 130, 122, 119, 121, 111, 109, 134, 122, 122, 126, 112, 112, 115, 101, 101, 104, 90, 90, 94, 80, 80, 89, 75, 75, 96, 80, 81, 105, 89, 90, 108, 92, 93, 107, 91, 92, 106, 90, 91, 105, 89, 90, 105, 86, 88, 104, 85, 87, 103, 84, 86, 103, 85, 85, 109, 89, 90, 109, 89, 88, 107, 87, 86, 107, 87, 86, 109, 88, 87, 112, 91, 90, 115, 94, 93, 117, 96, 95, 110, 89, 88, 114, 94, 93, 103, 83, 82, 79, 61, 59, 69, 51, 49, 74, 59, 56, 75, 60, 57, 66, 52, 49, 143, 131, 131, 118, 108, 107, 90, 80, 79, 73, 63, 62, 64, 54, 53, 57, 47, 46, 49, 41, 39, 45, 37, 35, 39, 31, 29, 45, 37, 35, 51, 46, 43, 54, 49, 46, 53, 48, 45, 61, 56, 53, 90, 85, 82, 120, 115, 112, 107, 97, 95, 89, 79, 77, 85, 75, 73, 89, 79, 77, 89, 80, 75, 93, 84, 79, 91, 82, 77, 77, 68, 63, 81, 70, 64, 120, 109, 103, 125, 114, 108, 125, 114, 108, 120, 107, 101, 113, 100, 94, 133, 120, 114, 143, 130, 124, 125, 114, 108, 120, 109, 103, 120, 109, 103, 135, 124, 118, 123, 112, 106, 120, 109, 103, 148, 137, 131, 145, 134, 128, 131, 120, 114, 135, 124, 118, 151, 140, 134, 153, 142, 136, 136, 125, 119, 132, 121, 115, 139, 128, 122, 138, 127, 121, 143, 130, 122, 152, 139, 131, 149, 136, 128, 143, 130, 122, 147, 134, 126, 145, 132, 124, 137, 124, 116, 137, 124, 116, 140, 127, 119, 133, 120, 112, 131, 118, 110, 136, 123, 115, 106, 93, 85, 91, 78, 70, 125, 112, 104, 135, 125, 116, 147, 136, 132, 140, 131, 126, 145, 136, 131, 140, 131, 126, 145, 136, 131, 145, 136, 131, 135, 126, 119, 155, 146, 139, 153, 144, 137, 148, 139, 132, 153, 144, 137, 157, 148, 141, 153, 144, 135, 157, 148, 139, 162, 153, 144, 158, 149, 140, 149, 138, 132, 118, 107, 101, 144, 133, 127, 150, 139, 133, 153, 142, 136, 162, 151, 145, 147, 136, 130, 166, 155, 149, 152, 143, 138, 150, 141, 136, 168, 159, 154, 166, 157, 152, 166, 156, 154, 172, 162, 160, 159, 151, 148, 166, 159, 153, 179, 172, 166, 165, 158, 150, 169, 161, 158, 161, 153, 150, 160, 152, 150, 166, 158, 156, 162, 154, 151, 175, 168, 162, 158, 151, 145, 161, 154, 146, 163, 156, 148, 152, 145, 137, 164, 157, 151, 163, 156, 150, 140, 132, 130, 159, 151, 148, 153, 145, 142, 155, 148, 142, 113, 106, 100, 112, 105, 99, 135, 128, 122, 128, 121, 115, 139, 132, 126, 163, 156, 150, 158, 151, 145, 165, 158, 152, 161, 154, 148, 148, 141, 135, 143, 136, 130, 149, 142, 136, 156, 149, 143, 161, 154, 148, 161, 151, 149, 158, 148, 146, 141, 131, 129, 136, 126, 124, 152, 143, 138, 155, 146, 141, 141, 130, 126, 133, 122, 118, 140, 129, 123, 139, 128, 122, 144, 131, 125, 148, 135, 129, 142, 129, 123, 130, 117, 111, 133, 120, 114, 147, 136, 130, 135, 124, 118, 148, 139, 132, 140, 131, 124, 131, 122, 115, 138, 129, 122, 132, 123, 116, 127, 118, 111, 143, 134, 127, 144, 135, 128, 111, 102, 95, 125, 116, 109, 139, 130, 123, 109, 100, 93, 103, 94, 87, 119, 110, 103, 108, 99, 92, 102, 93, 88, 83, 74, 69, 104, 95, 90, 105, 96, 91, 92, 83, 78, 100, 91, 86, 95, 86, 81, 90, 81, 76, 80, 71, 66, 100, 91, 86, 111, 102, 97, 108, 99, 94, 95, 86, 81, 73, 64, 59, 66, 57, 52, 77, 68, 63, 82, 72, 70, 90, 80, 78, 96, 87, 82, 109, 100, 95, 96, 85, 81, 88, 77, 73, 108, 97, 93, 99, 88, 84, 90, 79, 75, 87, 76, 72, 65, 55, 53, 67, 57, 55, 75, 67, 65, 70, 62, 60, 123, 117, 117, 69, 64, 61, 69, 65, 62, 93, 92, 87, 173, 174, 168, 104, 105, 99, 55, 54, 49, 60, 55, 51, 65, 57, 54, 81, 71, 69, 85, 77, 74, 49, 44, 40, 31, 28, 23, 84, 81, 76, 87, 82, 78, 60, 52, 49, 82, 68, 67, 68, 54, 53, 45, 34, 32, 88, 78, 76, 116, 106, 104, 84, 74, 72, 51, 41, 39, 69, 59, 57, 80, 70, 68, 51, 41, 39, 36, 26, 24, 53, 43, 41, 80, 70, 68, 51, 41, 39, 39, 29, 27, 46, 36, 34, 29, 19, 17, 51, 46, 42, 149, 148, 144, 150, 152, 149, 97, 96, 92, 48, 44, 41, 75, 70, 66, 83, 75, 72, 76, 65, 63, 134, 123, 121, 171, 159, 159, 112, 102, 101, 60, 50, 51, 77, 71, 71, 122, 118, 119, 106, 106, 106, 59, 59, 61, 46, 42, 41, 79, 61, 59, 73, 52, 49, 71, 53, 49, 60, 46, 43, 33, 24, 19, 49, 41, 38, 79, 69, 67, 57, 47, 46, 42, 28, 28, 65, 49, 50, 93, 74, 76, 103, 87, 88, 102, 86, 86, 92, 81, 79, 71, 62, 57, 45, 36, 31, 74, 60, 57, 93, 78, 75, 84, 69, 66, 75, 60, 57, 64, 49, 46, 74, 59, 56, 110, 95, 92, 112, 97, 94, 106, 91, 88, 101, 86, 83, 98, 83, 80, 99, 84, 81, 97, 82, 79, 90, 75, 72, 80, 65, 62, 74, 59, 56, 95, 80, 77, 106, 91, 88, 108, 93, 90, 88, 73, 70, 77, 63, 60, 98, 84, 81, 110, 96, 93, 95, 81, 78, 94, 80, 77, 102, 88, 85, 117, 106, 102, 120, 109, 105, 103, 92, 88, 97, 86, 82, 110, 99, 95, 119, 108, 104, 136, 122, 119, 125, 111, 108, 125, 114, 110, 129, 118, 114, 117, 106, 102, 106, 95, 91, 106, 95, 91, 108, 97, 93, 106, 92, 89, 118, 104, 101, 124, 109, 106, 127, 112, 109, 132, 112, 111, 125, 105, 104, 125, 104, 103, 137, 116, 113, 139, 120, 113, 140, 122, 112, 139, 120, 113, 138, 118, 111, 139, 118, 113, 136, 115, 110, 124, 103, 100, 110, 89, 86, 112, 91, 90, 122, 100, 102, 126, 106, 108, 121, 101, 103, 116, 97, 99, 113, 94, 96, 107, 88, 92, 98, 79, 81, 96, 74, 76, 90, 66, 66, 87, 63, 63, 89, 68, 67, 95, 73, 75, 95, 75, 76, 96, 77, 79, 98, 79, 81, 96, 80, 81, 100, 84, 85, 95, 81, 80, 90, 76, 75, 100, 86, 83, 116, 105, 101, 121, 110, 106, 112, 103, 98, 98, 94, 85, 98, 95, 86, 101, 97, 88, 112, 105, 95, 133, 126, 116, 152, 146, 134, 154, 146, 135, 143, 137, 125, 161, 154, 144, 169, 164, 158, 185, 181, 178, 200, 200, 200, 214, 215, 219, 222, 225, 232, 227, 231, 240, 227, 234, 242, 229, 236, 242, 230, 240, 242, 232, 242, 244, 231, 241, 243, 231, 241, 243, 232, 242, 244, 235, 245, 247, 238, 248, 250, 237, 245, 248, 237, 245, 248, 239, 244, 248, 239, 244, 248, 243, 244, 249, 243, 244, 249, 245, 244, 250, 244, 245, 250, 244, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 248, 253, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 241, 247, 235, 240, 246, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 232, 235, 240, 232, 235, 240, 232, 235, 240, 231, 234, 241, 231, 234, 241, 230, 233, 242, 230, 233, 242, 230, 233, 242, 232, 234, 246, 231, 234, 243, 229, 231, 243, 228, 231, 240, 227, 230, 239, 227, 230, 239, 227, 230, 239, 226, 231, 237, 228, 233, 236, 229, 235, 235, 215, 217, 216, 185, 185, 183, 164, 160, 159, 154, 146, 144, 138, 127, 125, 121, 106, 103, 108, 90, 88, 122, 101, 100, 135, 114, 113, 141, 117, 117, 135, 111, 111, 127, 101, 104, 122, 96, 99, 120, 95, 98, 129, 105, 105, 127, 106, 105, 129, 108, 107, 136, 115, 114, 144, 123, 122, 147, 126, 125, 143, 122, 119, 141, 117, 115, 138, 114, 112, 140, 116, 116, 140, 116, 116, 136, 112, 112, 130, 105, 109, 128, 103, 107, 133, 106, 113, 137, 111, 122, 134, 107, 122, 133, 108, 127, 137, 110, 129, 137, 110, 127, 135, 108, 125, 130, 103, 118, 126, 98, 112, 123, 95, 109, 125, 97, 109, 121, 93, 105, 116, 89, 98, 110, 83, 92, 107, 80, 89, 108, 78, 88, 109, 79, 89, 111, 80, 88, 112, 81, 87, 109, 76, 83, 102, 69, 76, 97, 64, 71, 94, 61, 70, 94, 61, 70, 95, 62, 71, 97, 64, 73, 100, 67, 78, 100, 67, 78, 100, 67, 78, 101, 68, 79, 102, 69, 80, 103, 70, 81, 104, 71, 82, 104, 72, 83, 95, 65, 73, 93, 66, 71, 91, 64, 69, 91, 64, 69, 98, 69, 74, 112, 83, 88, 129, 102, 107, 144, 117, 122, 115, 88, 93, 110, 83, 88, 104, 79, 82, 105, 83, 85, 119, 97, 99, 132, 112, 113, 133, 113, 114, 127, 107, 108, 131, 105, 108, 142, 113, 117, 138, 112, 115, 123, 97, 100, 112, 87, 91, 110, 90, 92, 111, 92, 96, 106, 90, 93, 120, 105, 110, 137, 126, 130, 156, 147, 152, 162, 156, 160, 162, 160, 165, 161, 160, 165, 151, 150, 155, 140, 138, 143, 134, 128, 130, 150, 141, 142, 164, 155, 156, 163, 154, 155, 149, 140, 141, 137, 128, 129, 135, 127, 125, 140, 130, 129, 150, 140, 139, 151, 141, 140, 153, 143, 142, 153, 143, 142, 148, 138, 136, 138, 128, 126, 124, 114, 112, 115, 105, 103, 113, 101, 101, 107, 95, 95, 101, 89, 89, 99, 87, 87, 97, 85, 85, 98, 84, 84, 105, 91, 91, 114, 98, 99, 109, 93, 94, 110, 94, 95, 111, 95, 96, 112, 96, 97, 115, 96, 98, 116, 97, 99, 117, 98, 100, 118, 100, 100, 111, 91, 92, 109, 89, 88, 105, 85, 84, 102, 82, 81, 100, 80, 79, 99, 79, 78, 100, 79, 78, 100, 80, 79, 97, 76, 75, 88, 68, 67, 86, 66, 65, 93, 73, 72, 96, 78, 76, 89, 71, 69, 75, 60, 57, 65, 51, 48, 55, 44, 42, 119, 109, 107, 148, 138, 137, 108, 98, 96, 69, 59, 58, 68, 60, 58, 69, 61, 59, 54, 46, 44, 75, 67, 65, 77, 69, 67, 74, 69, 66, 67, 62, 59, 60, 55, 52, 63, 55, 53, 73, 65, 63, 83, 75, 73, 127, 117, 115, 92, 82, 80, 86, 76, 74, 100, 90, 88, 96, 86, 84, 87, 78, 73, 87, 78, 73, 86, 77, 72, 80, 69, 65, 113, 102, 96, 110, 99, 93, 114, 103, 97, 117, 104, 98, 113, 100, 94, 132, 119, 113, 133, 120, 114, 123, 110, 104, 122, 111, 105, 129, 116, 110, 135, 124, 118, 110, 99, 93, 102, 91, 85, 141, 130, 124, 152, 141, 135, 126, 115, 109, 129, 118, 112, 145, 134, 128, 147, 136, 130, 131, 120, 114, 132, 121, 115, 147, 134, 128, 148, 135, 129, 143, 130, 122, 150, 137, 129, 144, 131, 123, 136, 123, 115, 138, 125, 117, 137, 124, 116, 132, 119, 111, 133, 120, 112, 130, 117, 109, 123, 110, 102, 122, 109, 101, 130, 117, 109, 101, 88, 80, 85, 72, 64, 115, 102, 94, 123, 110, 104, 141, 130, 124, 136, 127, 122, 146, 137, 132, 145, 136, 131, 148, 139, 134, 143, 134, 129, 128, 119, 112, 146, 137, 130, 153, 144, 137, 148, 139, 132, 153, 144, 137, 155, 146, 139, 150, 141, 132, 153, 144, 135, 157, 148, 139, 152, 143, 134, 152, 141, 135, 117, 106, 100, 143, 132, 126, 148, 137, 131, 150, 139, 133, 158, 147, 141, 139, 128, 122, 159, 148, 142, 160, 151, 146, 156, 147, 142, 173, 164, 159, 167, 158, 153, 165, 155, 153, 170, 160, 158, 155, 145, 143, 162, 155, 149, 182, 173, 168, 166, 159, 153, 169, 162, 156, 160, 152, 149, 160, 152, 149, 167, 159, 156, 163, 155, 152, 177, 170, 164, 156, 149, 143, 162, 155, 147, 167, 158, 151, 150, 143, 135, 160, 153, 147, 160, 153, 147, 137, 129, 126, 160, 152, 149, 159, 152, 146, 173, 166, 160, 127, 120, 114, 123, 116, 110, 151, 144, 138, 132, 125, 119, 131, 124, 118, 156, 149, 143, 152, 144, 141, 160, 153, 147, 154, 147, 141, 138, 131, 125, 135, 128, 122, 144, 137, 131, 154, 147, 141, 162, 155, 149, 159, 149, 147, 153, 143, 141, 132, 122, 120, 127, 117, 115, 149, 140, 135, 154, 145, 140, 138, 127, 123, 128, 117, 113, 138, 127, 121, 137, 126, 120, 143, 130, 124, 151, 138, 132, 144, 131, 125, 125, 112, 106, 129, 116, 110, 153, 140, 134, 133, 122, 116, 145, 136, 129, 134, 125, 118, 126, 117, 110, 138, 129, 122, 134, 125, 118, 127, 118, 111, 143, 134, 127, 143, 134, 127, 103, 94, 87, 120, 111, 104, 142, 133, 126, 112, 103, 96, 103, 94, 87, 122, 113, 106, 117, 108, 101, 107, 98, 93, 77, 68, 63, 104, 95, 90, 108, 99, 94, 93, 84, 79, 109, 100, 95, 106, 97, 92, 90, 81, 76, 82, 73, 68, 92, 83, 78, 105, 96, 91, 118, 109, 104, 110, 101, 96, 79, 70, 65, 64, 55, 50, 77, 68, 63, 82, 72, 70, 101, 91, 89, 91, 82, 77, 103, 94, 89, 109, 98, 94, 91, 80, 76, 101, 90, 86, 107, 96, 92, 87, 76, 72, 78, 69, 64, 56, 46, 44, 67, 59, 56, 82, 74, 72, 70, 65, 62, 126, 120, 120, 72, 68, 65, 46, 45, 41, 83, 82, 77, 181, 182, 176, 82, 81, 76, 64, 61, 56, 60, 55, 51, 71, 63, 60, 79, 69, 67, 93, 85, 82, 43, 35, 32, 28, 23, 19, 105, 102, 97, 108, 103, 99, 57, 49, 46, 76, 65, 63, 76, 65, 63, 60, 50, 48, 84, 74, 72, 106, 96, 94, 84, 74, 72, 54, 44, 42, 71, 60, 58, 78, 67, 65, 42, 31, 29, 61, 50, 48, 54, 43, 41, 80, 70, 68, 68, 58, 56, 44, 34, 32, 26, 18, 15, 45, 37, 34, 137, 132, 128, 155, 151, 148, 85, 84, 80, 98, 94, 91, 85, 82, 77, 62, 57, 54, 105, 97, 95, 148, 138, 137, 179, 169, 168, 99, 89, 88, 69, 59, 60, 80, 71, 72, 137, 128, 129, 141, 135, 135, 73, 69, 68, 43, 39, 38, 80, 72, 70, 88, 70, 68, 65, 44, 41, 14, 0, 0, 56, 42, 39, 63, 54, 49, 39, 31, 28, 79, 69, 67, 60, 50, 48, 51, 37, 37, 105, 89, 89, 119, 100, 102, 100, 82, 82, 100, 86, 85, 93, 82, 78, 63, 56, 50, 44, 35, 30, 97, 83, 80, 85, 70, 67, 72, 57, 54, 76, 61, 58, 68, 53, 50, 92, 77, 74, 130, 115, 112, 99, 84, 81, 94, 79, 76, 84, 69, 66, 79, 64, 61, 84, 69, 66, 91, 76, 73, 91, 76, 73, 88, 73, 70, 87, 72, 69, 108, 93, 90, 116, 101, 98, 106, 91, 88, 75, 60, 57, 67, 53, 50, 99, 85, 82, 113, 99, 96, 92, 78, 75, 102, 88, 85, 109, 95, 92, 119, 108, 104, 116, 105, 101, 105, 94, 90, 112, 101, 97, 126, 115, 111, 129, 118, 114, 116, 102, 99, 108, 94, 91, 119, 108, 104, 123, 112, 108, 101, 90, 86, 93, 82, 78, 96, 85, 81, 84, 73, 69, 132, 118, 115, 130, 116, 113, 121, 106, 103, 114, 99, 96, 120, 102, 100, 121, 103, 101, 131, 111, 110, 149, 130, 126, 145, 124, 119, 145, 125, 118, 143, 122, 117, 142, 121, 116, 142, 121, 116, 139, 118, 115, 125, 104, 101, 109, 89, 88, 110, 89, 88, 120, 100, 101, 126, 106, 107, 121, 101, 102, 115, 96, 98, 115, 96, 98, 109, 90, 92, 101, 81, 82, 103, 79, 77, 92, 66, 65, 84, 58, 57, 85, 61, 59, 90, 66, 66, 88, 67, 66, 85, 65, 66, 83, 65, 65, 88, 72, 72, 92, 78, 77, 91, 77, 76, 89, 78, 76, 103, 92, 88, 121, 112, 107, 120, 111, 106, 104, 97, 91, 96, 91, 85, 89, 85, 76, 96, 92, 83, 124, 117, 107, 149, 142, 132, 157, 151, 139, 152, 146, 134, 147, 141, 129, 165, 161, 152, 175, 172, 165, 190, 189, 185, 204, 204, 204, 213, 214, 218, 217, 222, 228, 220, 227, 235, 223, 230, 238, 230, 237, 243, 232, 240, 243, 233, 241, 244, 232, 240, 243, 232, 240, 243, 233, 241, 244, 236, 244, 247, 239, 247, 250, 237, 245, 248, 239, 244, 248, 239, 244, 248, 240, 243, 248, 241, 244, 249, 243, 244, 249, 244, 245, 250, 244, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 248, 253, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 232, 235, 242, 232, 235, 242, 233, 236, 243, 233, 236, 243, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 233, 242, 229, 234, 240, 229, 233, 242, 228, 233, 239, 228, 233, 239, 227, 232, 238, 227, 232, 238, 227, 232, 238, 226, 231, 237, 222, 227, 231, 213, 217, 220, 201, 202, 204, 182, 182, 180, 165, 161, 158, 150, 142, 139, 141, 130, 126, 132, 117, 114, 130, 112, 108, 128, 107, 104, 131, 107, 105, 136, 110, 109, 139, 110, 112, 134, 105, 107, 129, 100, 102, 125, 96, 98, 130, 101, 103, 135, 106, 108, 137, 108, 110, 135, 109, 108, 138, 112, 111, 144, 119, 115, 148, 125, 119, 143, 120, 114, 147, 124, 118, 149, 125, 121, 145, 124, 121, 139, 117, 119, 135, 112, 118, 134, 113, 122, 136, 114, 127, 138, 115, 133, 138, 115, 135, 139, 114, 135, 138, 113, 132, 135, 111, 127, 133, 109, 123, 132, 106, 119, 131, 105, 118, 123, 97, 108, 121, 95, 106, 119, 93, 102, 115, 89, 98, 113, 87, 96, 112, 85, 94, 111, 84, 93, 110, 83, 92, 112, 81, 89, 109, 78, 84, 103, 72, 78, 98, 67, 73, 95, 64, 72, 96, 65, 73, 98, 67, 75, 100, 69, 77, 103, 71, 82, 102, 70, 81, 101, 69, 80, 100, 68, 79, 100, 68, 81, 100, 68, 81, 101, 69, 82, 101, 71, 81, 93, 66, 71, 97, 72, 75, 107, 81, 84, 122, 96, 99, 139, 113, 116, 142, 116, 119, 126, 100, 103, 105, 79, 82, 97, 71, 74, 105, 79, 82, 115, 90, 94, 121, 99, 102, 122, 100, 103, 117, 97, 99, 112, 92, 94, 108, 88, 90, 105, 83, 86, 100, 78, 81, 101, 76, 82, 102, 77, 83, 97, 74, 80, 100, 77, 83, 124, 103, 110, 152, 131, 138, 177, 157, 166, 155, 140, 147, 151, 138, 145, 165, 154, 160, 163, 154, 159, 140, 134, 138, 133, 127, 131, 146, 140, 144, 178, 172, 172, 158, 153, 150, 146, 138, 136, 138, 130, 128, 133, 123, 122, 141, 131, 130, 151, 141, 140, 150, 138, 138, 152, 140, 140, 154, 142, 142, 149, 135, 135, 145, 131, 131, 150, 134, 135, 143, 127, 128, 132, 116, 117, 130, 116, 116, 119, 109, 110, 124, 115, 116, 132, 124, 122, 135, 127, 125, 132, 122, 121, 120, 110, 109, 107, 95, 95, 100, 86, 86, 98, 84, 83, 109, 95, 94, 119, 103, 103, 119, 103, 103, 113, 95, 95, 107, 89, 89, 109, 89, 90, 113, 93, 94, 105, 87, 87, 104, 86, 86, 98, 80, 80, 89, 71, 71, 80, 62, 62, 76, 58, 58, 80, 60, 59, 83, 65, 63, 76, 56, 55, 76, 58, 56, 81, 63, 61, 87, 69, 67, 87, 69, 65, 84, 66, 62, 84, 66, 62, 87, 72, 69, 78, 67, 63, 70, 61, 56, 97, 87, 85, 139, 130, 125, 133, 125, 122, 85, 77, 74, 63, 55, 52, 76, 71, 67, 101, 93, 90, 93, 85, 82, 96, 88, 85, 84, 76, 73, 58, 50, 48, 68, 58, 57, 85, 75, 74, 73, 63, 62, 82, 72, 71, 114, 104, 103, 99, 89, 88, 78, 68, 66, 97, 87, 85, 98, 88, 86, 87, 76, 74, 100, 89, 87, 98, 87, 85, 112, 101, 97, 114, 100, 97, 121, 107, 104, 136, 122, 119, 124, 110, 107, 111, 97, 94, 126, 112, 109, 136, 123, 117, 123, 110, 104, 129, 114, 109, 129, 116, 110, 104, 91, 85, 90, 77, 71, 112, 101, 95, 141, 130, 124, 125, 114, 108, 121, 110, 104, 110, 97, 91, 138, 125, 119, 133, 120, 114, 107, 94, 88, 138, 123, 118, 152, 139, 133, 146, 133, 127, 133, 120, 114, 141, 128, 122, 141, 128, 122, 122, 109, 103, 124, 111, 105, 135, 122, 116, 123, 110, 104, 126, 113, 107, 111, 98, 92, 122, 109, 103, 112, 99, 93, 100, 87, 81, 97, 84, 78, 92, 79, 73, 119, 106, 100, 127, 116, 110, 130, 119, 113, 138, 127, 121, 144, 133, 127, 143, 132, 126, 140, 129, 123, 142, 131, 125, 149, 138, 132, 159, 148, 142, 158, 147, 141, 151, 140, 134, 152, 141, 135, 159, 148, 142, 155, 144, 138, 151, 140, 134, 159, 148, 142, 150, 139, 135, 125, 114, 110, 134, 123, 119, 153, 142, 138, 145, 134, 130, 146, 135, 131, 157, 146, 142, 153, 142, 138, 157, 146, 142, 168, 157, 153, 160, 149, 145, 181, 170, 166, 161, 150, 146, 169, 158, 154, 153, 142, 138, 168, 159, 154, 174, 163, 159, 179, 170, 165, 169, 162, 156, 163, 156, 150, 168, 163, 157, 165, 160, 154, 162, 155, 149, 171, 164, 158, 156, 147, 142, 152, 143, 138, 156, 145, 141, 167, 158, 153, 166, 157, 152, 146, 139, 133, 139, 132, 126, 149, 144, 138, 149, 144, 138, 152, 147, 141, 148, 143, 137, 139, 134, 128, 137, 132, 128, 142, 137, 133, 144, 139, 135, 139, 134, 130, 156, 151, 148, 151, 146, 142, 145, 140, 136, 130, 125, 121, 123, 118, 112, 146, 141, 135, 161, 156, 150, 147, 140, 134, 158, 149, 144, 150, 141, 136, 148, 139, 134, 149, 140, 135, 145, 136, 131, 151, 142, 137, 147, 138, 133, 117, 108, 103, 137, 126, 122, 137, 126, 122, 130, 119, 115, 142, 131, 127, 160, 146, 143, 138, 124, 121, 121, 107, 104, 142, 128, 125, 139, 128, 124, 131, 120, 116, 142, 131, 127, 119, 108, 104, 136, 125, 121, 146, 135, 131, 111, 100, 96, 143, 132, 128, 136, 125, 121, 122, 111, 107, 102, 91, 87, 148, 137, 133, 122, 111, 107, 111, 100, 96, 112, 101, 97, 130, 119, 115, 124, 113, 107, 99, 88, 82, 106, 95, 89, 114, 103, 97, 97, 86, 82, 103, 92, 88, 117, 108, 103, 103, 94, 89, 84, 75, 70, 104, 95, 90, 104, 96, 93, 109, 101, 98, 74, 66, 63, 90, 82, 79, 87, 79, 76, 75, 67, 64, 78, 70, 67, 100, 92, 89, 103, 94, 89, 97, 88, 83, 97, 88, 83, 100, 91, 86, 110, 99, 95, 119, 108, 104, 97, 88, 83, 80, 71, 66, 78, 68, 66, 67, 59, 56, 88, 80, 78, 95, 90, 87, 119, 113, 113, 81, 77, 74, 56, 55, 51, 99, 100, 94, 177, 176, 171, 73, 72, 67, 37, 34, 29, 75, 70, 66, 69, 61, 58, 62, 54, 51, 69, 59, 57, 71, 61, 59, 39, 31, 28, 87, 79, 76, 101, 93, 90, 55, 47, 44, 69, 59, 57, 63, 53, 51, 93, 86, 80, 72, 65, 59, 84, 75, 70, 90, 81, 76, 67, 56, 52, 65, 51, 48, 71, 57, 54, 53, 39, 36, 35, 21, 20, 92, 78, 77, 72, 61, 59, 69, 59, 57, 53, 45, 42, 14, 9, 5, 142, 137, 134, 154, 149, 145, 87, 80, 74, 95, 88, 82, 116, 109, 103, 79, 71, 68, 78, 73, 70, 163, 157, 157, 163, 157, 157, 79, 73, 73, 87, 81, 81, 83, 77, 77, 135, 126, 127, 134, 126, 124, 74, 64, 63, 56, 46, 44, 76, 65, 63, 93, 82, 78, 78, 64, 61, 39, 25, 22, 31, 17, 14, 66, 55, 53, 62, 51, 49, 55, 44, 42, 74, 63, 61, 47, 36, 32, 76, 62, 61, 108, 94, 91, 115, 99, 99, 118, 104, 101, 120, 106, 103, 73, 62, 56, 47, 38, 31, 86, 77, 70, 99, 85, 82, 71, 57, 54, 74, 60, 57, 81, 67, 64, 90, 76, 73, 97, 83, 80, 93, 79, 76, 108, 94, 91, 83, 69, 66, 87, 73, 70, 64, 50, 47, 66, 52, 49, 101, 87, 84, 98, 84, 81, 77, 63, 60, 87, 73, 70, 117, 102, 97, 121, 106, 101, 94, 79, 74, 76, 61, 56, 96, 83, 77, 107, 94, 88, 91, 78, 72, 83, 70, 64, 101, 90, 84, 117, 106, 100, 101, 90, 84, 98, 87, 81, 132, 121, 115, 131, 120, 114, 96, 85, 79, 85, 74, 68, 99, 85, 82, 102, 88, 85, 107, 93, 90, 110, 96, 93, 103, 89, 86, 94, 80, 77, 94, 80, 77, 100, 86, 83, 132, 118, 115, 120, 106, 103, 113, 99, 96, 117, 103, 100, 122, 107, 104, 125, 110, 107, 137, 122, 119, 155, 137, 135, 150, 129, 126, 146, 122, 120, 142, 118, 116, 141, 120, 117, 139, 118, 115, 132, 111, 110, 127, 107, 106, 125, 107, 105, 120, 100, 99, 116, 98, 96, 120, 102, 100, 120, 102, 100, 116, 96, 97, 115, 95, 96, 108, 88, 89, 92, 71, 68, 87, 59, 55, 88, 59, 53, 90, 61, 55, 93, 65, 61, 88, 63, 59, 82, 58, 54, 78, 59, 55, 81, 63, 61, 89, 74, 71, 84, 70, 69, 88, 74, 73, 99, 88, 86, 110, 99, 97, 108, 98, 96, 98, 88, 86, 88, 81, 75, 91, 82, 77, 100, 91, 86, 103, 94, 89, 118, 109, 102, 150, 141, 134, 161, 152, 143, 154, 147, 137, 155, 148, 140, 178, 173, 167, 180, 177, 172, 186, 185, 183, 195, 196, 198, 207, 211, 214, 218, 223, 229, 224, 231, 239, 226, 233, 241, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 235, 240, 246, 236, 241, 247, 238, 243, 249, 239, 244, 250, 239, 244, 250, 240, 243, 250, 240, 243, 250, 240, 243, 250, 241, 244, 251, 241, 244, 251, 242, 245, 252, 242, 245, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 232, 235, 242, 233, 236, 243, 233, 236, 243, 233, 236, 243, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 228, 233, 239, 228, 233, 239, 228, 233, 239, 227, 232, 238, 227, 232, 238, 228, 235, 243, 225, 232, 238, 220, 223, 228, 205, 209, 210, 184, 184, 184, 156, 155, 151, 131, 126, 122, 117, 108, 103, 122, 109, 103, 125, 110, 105, 128, 109, 105, 127, 106, 103, 126, 100, 99, 122, 94, 93, 119, 89, 91, 117, 87, 89, 126, 94, 97, 130, 98, 101, 133, 102, 107, 132, 102, 104, 129, 100, 102, 127, 99, 98, 127, 102, 97, 129, 104, 97, 137, 114, 106, 140, 117, 109, 142, 122, 115, 142, 121, 118, 139, 119, 121, 138, 117, 124, 139, 119, 130, 142, 121, 136, 141, 118, 138, 141, 117, 139, 140, 117, 137, 139, 116, 136, 138, 113, 132, 136, 112, 128, 134, 110, 124, 132, 108, 121, 126, 102, 115, 124, 101, 111, 120, 97, 107, 117, 94, 102, 115, 89, 98, 113, 87, 98, 112, 86, 97, 112, 84, 96, 115, 85, 93, 112, 81, 87, 106, 75, 83, 101, 70, 78, 99, 68, 76, 99, 68, 76, 101, 70, 78, 103, 72, 80, 104, 72, 83, 103, 71, 82, 103, 71, 82, 102, 70, 81, 103, 71, 84, 104, 72, 85, 105, 73, 86, 105, 75, 85, 106, 80, 83, 115, 91, 91, 127, 101, 102, 133, 107, 108, 134, 108, 109, 127, 101, 102, 110, 84, 87, 94, 68, 71, 103, 77, 80, 106, 80, 83, 105, 80, 84, 99, 74, 78, 88, 66, 69, 86, 64, 67, 91, 71, 73, 100, 80, 82, 80, 59, 64, 82, 61, 66, 89, 66, 74, 102, 79, 87, 123, 100, 108, 144, 121, 129, 155, 132, 140, 157, 136, 143, 131, 111, 120, 126, 109, 117, 138, 123, 130, 155, 142, 149, 148, 135, 142, 127, 116, 122, 135, 126, 131, 162, 153, 156, 144, 135, 136, 128, 120, 118, 127, 119, 117, 144, 134, 133, 161, 151, 150, 171, 161, 160, 162, 150, 150, 138, 126, 126, 131, 117, 117, 142, 128, 128, 143, 129, 129, 143, 129, 129, 149, 133, 134, 147, 131, 132, 145, 129, 130, 151, 137, 137, 150, 140, 141, 139, 133, 133, 129, 121, 119, 120, 112, 110, 115, 107, 105, 116, 106, 105, 118, 106, 106, 118, 106, 106, 124, 110, 109, 127, 113, 112, 130, 114, 114, 124, 108, 108, 114, 96, 96, 104, 86, 86, 101, 81, 80, 101, 81, 80, 92, 74, 74, 95, 77, 77, 96, 78, 78, 93, 75, 75, 87, 69, 69, 82, 64, 64, 80, 62, 60, 81, 63, 61, 80, 62, 60, 79, 61, 59, 82, 64, 62, 85, 67, 65, 83, 65, 61, 78, 60, 56, 79, 61, 57, 81, 66, 61, 86, 75, 71, 79, 70, 65, 75, 66, 61, 89, 80, 75, 118, 109, 104, 130, 123, 117, 98, 90, 87, 52, 47, 43, 78, 70, 67, 112, 104, 101, 94, 86, 83, 70, 62, 59, 88, 78, 77, 84, 74, 73, 74, 62, 62, 99, 87, 87, 84, 74, 73, 103, 93, 92, 108, 98, 97, 99, 89, 88, 94, 84, 82, 92, 82, 80, 91, 80, 78, 93, 82, 80, 92, 81, 79, 106, 95, 93, 120, 106, 103, 118, 104, 101, 115, 101, 98, 124, 110, 107, 128, 114, 111, 120, 106, 103, 121, 106, 101, 117, 102, 97, 126, 111, 106, 132, 117, 112, 106, 93, 87, 77, 64, 58, 95, 84, 78, 142, 131, 125, 128, 117, 111, 103, 92, 86, 103, 90, 84, 135, 122, 116, 131, 116, 111, 110, 95, 90, 124, 109, 104, 133, 118, 113, 135, 122, 116, 124, 111, 105, 132, 119, 113, 132, 119, 113, 115, 102, 96, 120, 107, 101, 134, 121, 115, 127, 114, 108, 110, 97, 91, 112, 99, 93, 124, 111, 105, 107, 94, 88, 98, 85, 79, 106, 93, 87, 102, 89, 83, 112, 99, 93, 128, 117, 111, 131, 120, 114, 138, 127, 121, 145, 134, 128, 145, 134, 128, 140, 129, 123, 140, 129, 123, 143, 132, 126, 152, 141, 135, 152, 141, 135, 147, 136, 130, 151, 140, 134, 161, 150, 144, 156, 145, 139, 149, 138, 132, 154, 143, 137, 149, 138, 134, 123, 112, 108, 129, 118, 114, 148, 137, 133, 146, 135, 131, 148, 137, 133, 154, 143, 139, 145, 134, 130, 151, 140, 136, 169, 158, 154, 159, 148, 144, 167, 156, 152, 154, 143, 139, 170, 159, 155, 155, 144, 140, 159, 148, 144, 168, 157, 153, 174, 165, 160, 170, 161, 156, 167, 160, 154, 171, 166, 160, 166, 161, 155, 159, 152, 146, 162, 155, 149, 160, 149, 145, 148, 137, 133, 150, 139, 135, 166, 155, 151, 166, 157, 152, 145, 138, 132, 139, 132, 126, 152, 147, 141, 153, 148, 142, 143, 138, 132, 139, 134, 128, 142, 137, 131, 140, 135, 131, 132, 127, 123, 134, 129, 126, 144, 139, 136, 142, 137, 134, 147, 142, 139, 151, 146, 142, 141, 136, 132, 132, 127, 121, 148, 143, 137, 158, 153, 147, 147, 140, 134, 151, 142, 137, 150, 141, 136, 149, 140, 135, 146, 137, 132, 145, 136, 131, 148, 139, 134, 139, 130, 125, 118, 109, 104, 116, 105, 101, 145, 134, 130, 143, 132, 128, 130, 119, 115, 145, 131, 128, 149, 135, 132, 137, 123, 120, 137, 123, 120, 138, 127, 123, 133, 122, 118, 144, 133, 129, 120, 109, 105, 130, 119, 115, 152, 141, 137, 128, 117, 113, 142, 131, 127, 130, 119, 115, 118, 107, 103, 103, 92, 88, 148, 137, 133, 128, 117, 113, 116, 105, 101, 110, 99, 95, 117, 106, 102, 129, 118, 112, 110, 99, 93, 108, 97, 91, 108, 97, 91, 98, 87, 83, 103, 92, 88, 111, 102, 97, 104, 95, 90, 69, 60, 55, 85, 76, 71, 91, 83, 80, 104, 96, 93, 71, 63, 60, 85, 77, 74, 92, 84, 81, 103, 95, 92, 77, 69, 66, 104, 96, 93, 110, 101, 96, 97, 88, 83, 96, 87, 82, 104, 95, 90, 113, 102, 98, 119, 108, 104, 103, 94, 89, 86, 77, 72, 81, 73, 70, 73, 65, 62, 91, 86, 83, 95, 90, 87, 114, 110, 109, 68, 67, 63, 64, 63, 59, 118, 119, 113, 166, 165, 160, 72, 71, 66, 47, 44, 39, 67, 64, 59, 73, 65, 62, 66, 58, 55, 75, 65, 63, 66, 56, 54, 40, 30, 28, 76, 66, 64, 90, 82, 79, 56, 48, 45, 60, 52, 49, 62, 54, 51, 88, 81, 75, 79, 72, 64, 86, 77, 72, 87, 78, 73, 70, 59, 55, 62, 48, 45, 61, 46, 43, 53, 38, 35, 68, 52, 52, 66, 52, 51, 97, 86, 84, 45, 35, 33, 40, 32, 29, 115, 110, 106, 168, 164, 161, 93, 88, 84, 76, 67, 62, 111, 102, 95, 82, 73, 68, 102, 94, 91, 172, 167, 164, 145, 139, 139, 77, 73, 74, 67, 63, 64, 70, 66, 67, 135, 131, 132, 136, 127, 128, 102, 94, 92, 62, 51, 49, 41, 30, 26, 87, 72, 67, 116, 103, 97, 53, 42, 40, 31, 21, 19, 29, 18, 16, 65, 54, 52, 75, 61, 60, 71, 57, 56, 80, 66, 63, 57, 43, 40, 100, 86, 83, 94, 80, 77, 85, 71, 68, 103, 89, 86, 116, 105, 99, 85, 74, 68, 62, 53, 46, 85, 76, 69, 81, 67, 64, 64, 50, 47, 84, 70, 67, 92, 78, 75, 92, 78, 75, 105, 91, 88, 108, 94, 91, 116, 102, 99, 104, 90, 87, 64, 50, 47, 67, 53, 50, 99, 85, 82, 95, 81, 78, 73, 59, 56, 82, 68, 65, 103, 89, 86, 124, 109, 104, 98, 83, 78, 82, 67, 62, 98, 83, 78, 113, 100, 94, 100, 87, 81, 91, 78, 72, 104, 91, 85, 105, 94, 88, 87, 76, 70, 89, 78, 72, 118, 107, 101, 130, 119, 113, 106, 95, 89, 86, 75, 69, 90, 79, 73, 99, 85, 82, 100, 86, 83, 105, 91, 88, 108, 94, 91, 103, 89, 86, 99, 85, 82, 107, 93, 90, 119, 105, 102, 135, 121, 118, 126, 112, 109, 120, 106, 103, 122, 108, 105, 128, 114, 111, 134, 120, 117, 142, 128, 125, 150, 135, 132, 146, 125, 124, 143, 119, 119, 142, 118, 118, 141, 120, 119, 140, 119, 118, 132, 112, 111, 127, 109, 107, 127, 109, 107, 123, 105, 103, 119, 101, 99, 121, 103, 101, 120, 102, 100, 114, 94, 93, 114, 94, 93, 108, 88, 87, 96, 72, 70, 91, 62, 56, 90, 60, 52, 88, 59, 51, 88, 61, 54, 84, 59, 54, 79, 55, 51, 80, 59, 56, 84, 66, 62, 87, 72, 69, 80, 66, 63, 81, 70, 68, 94, 83, 81, 100, 90, 88, 94, 84, 82, 86, 78, 75, 84, 76, 73, 89, 78, 74, 101, 90, 86, 112, 101, 97, 130, 119, 115, 152, 141, 135, 152, 141, 135, 146, 137, 130, 153, 146, 138, 179, 174, 168, 181, 178, 173, 187, 186, 184, 196, 198, 197, 207, 211, 214, 217, 222, 226, 225, 230, 236, 228, 232, 241, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 236, 239, 246, 238, 241, 248, 239, 242, 249, 240, 243, 250, 240, 243, 250, 240, 243, 250, 240, 243, 250, 240, 243, 250, 241, 244, 251, 241, 244, 251, 242, 245, 252, 242, 245, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 236, 243, 233, 236, 243, 233, 236, 243, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 228, 233, 239, 228, 233, 239, 228, 233, 239, 227, 232, 238, 228, 235, 243, 228, 235, 241, 228, 231, 236, 216, 220, 223, 195, 195, 197, 161, 160, 158, 128, 124, 121, 108, 101, 95, 129, 118, 112, 138, 123, 118, 145, 126, 122, 141, 120, 117, 131, 105, 106, 120, 94, 95, 117, 88, 90, 117, 88, 90, 116, 85, 90, 121, 90, 95, 127, 96, 102, 130, 99, 104, 129, 100, 104, 128, 99, 101, 126, 100, 99, 127, 102, 98, 130, 106, 102, 133, 109, 105, 136, 115, 112, 138, 118, 117, 140, 119, 124, 143, 122, 131, 146, 126, 138, 149, 128, 145, 144, 122, 143, 144, 122, 143, 144, 123, 142, 143, 122, 141, 142, 119, 137, 140, 117, 133, 138, 116, 129, 137, 115, 127, 133, 109, 122, 131, 108, 118, 129, 103, 114, 124, 98, 109, 120, 94, 105, 117, 91, 104, 115, 89, 102, 115, 87, 99, 119, 89, 99, 116, 85, 93, 111, 79, 90, 107, 75, 86, 104, 72, 83, 103, 71, 82, 104, 72, 83, 105, 73, 84, 105, 73, 84, 105, 73, 84, 105, 73, 84, 105, 73, 84, 106, 74, 85, 107, 75, 86, 109, 77, 88, 109, 79, 87, 112, 86, 89, 121, 97, 97, 127, 103, 103, 120, 96, 96, 110, 84, 85, 100, 74, 75, 95, 66, 70, 90, 61, 65, 103, 77, 80, 96, 70, 73, 87, 62, 65, 84, 59, 62, 83, 61, 64, 82, 60, 63, 75, 55, 57, 69, 49, 51, 84, 63, 68, 104, 83, 88, 123, 102, 107, 135, 114, 119, 147, 126, 133, 150, 129, 136, 132, 111, 118, 106, 85, 92, 93, 74, 80, 125, 108, 114, 144, 129, 136, 133, 120, 127, 128, 115, 122, 145, 134, 140, 160, 151, 156, 162, 153, 156, 144, 134, 135, 144, 134, 133, 157, 147, 146, 165, 153, 153, 157, 145, 145, 145, 133, 133, 129, 117, 117, 110, 98, 98, 131, 119, 119, 144, 132, 132, 148, 136, 136, 145, 133, 133, 143, 131, 131, 137, 125, 125, 137, 125, 125, 148, 136, 136, 141, 131, 132, 133, 124, 125, 126, 116, 115, 125, 115, 114, 130, 120, 119, 138, 126, 126, 142, 130, 130, 145, 131, 131, 134, 120, 119, 130, 116, 115, 124, 108, 108, 115, 99, 99, 106, 88, 88, 96, 78, 78, 89, 71, 69, 85, 67, 65, 75, 57, 57, 82, 64, 64, 90, 72, 72, 94, 76, 76, 91, 73, 73, 85, 67, 67, 79, 61, 59, 76, 58, 56, 75, 57, 55, 74, 56, 54, 76, 58, 56, 80, 62, 60, 81, 63, 59, 80, 62, 58, 84, 66, 62, 89, 74, 69, 87, 73, 70, 96, 85, 81, 82, 71, 67, 57, 48, 43, 71, 62, 57, 114, 107, 101, 128, 120, 117, 109, 101, 98, 74, 69, 65, 77, 72, 68, 94, 86, 83, 101, 93, 90, 87, 79, 77, 76, 68, 66, 77, 67, 66, 76, 66, 65, 77, 67, 66, 84, 74, 73, 109, 99, 98, 116, 106, 105, 95, 85, 83, 89, 79, 77, 95, 84, 82, 87, 76, 74, 91, 80, 78, 87, 76, 74, 106, 95, 91, 115, 104, 100, 102, 88, 85, 112, 98, 95, 127, 113, 110, 115, 101, 98, 116, 101, 96, 117, 102, 97, 118, 103, 98, 127, 112, 107, 117, 104, 98, 82, 69, 63, 86, 75, 69, 136, 125, 119, 136, 125, 119, 82, 71, 65, 94, 81, 75, 129, 116, 110, 127, 112, 107, 114, 99, 94, 108, 93, 88, 110, 95, 90, 135, 122, 116, 126, 113, 107, 132, 119, 113, 130, 117, 111, 114, 101, 95, 119, 106, 100, 136, 123, 117, 135, 122, 116, 95, 82, 76, 113, 100, 94, 126, 113, 107, 105, 92, 86, 99, 86, 80, 117, 104, 98, 112, 99, 93, 106, 93, 87, 131, 120, 114, 132, 121, 115, 137, 126, 120, 145, 134, 128, 146, 135, 129, 140, 129, 123, 136, 125, 119, 136, 125, 119, 144, 133, 127, 144, 133, 127, 140, 129, 123, 147, 136, 130, 161, 150, 144, 157, 146, 140, 147, 136, 130, 148, 137, 131, 146, 135, 131, 122, 111, 107, 126, 115, 111, 144, 133, 129, 146, 135, 131, 149, 138, 134, 150, 139, 135, 138, 127, 123, 149, 138, 134, 171, 160, 156, 158, 147, 143, 154, 143, 139, 152, 141, 137, 172, 161, 157, 158, 147, 143, 153, 142, 138, 159, 148, 144, 166, 157, 152, 168, 159, 154, 170, 163, 157, 174, 169, 163, 167, 162, 156, 157, 150, 144, 155, 148, 142, 163, 152, 148, 142, 131, 127, 142, 131, 127, 163, 152, 148, 163, 154, 149, 143, 136, 130, 141, 134, 128, 155, 150, 144, 163, 156, 148, 142, 135, 127, 138, 131, 125, 152, 145, 139, 148, 140, 137, 129, 121, 118, 132, 124, 122, 155, 147, 145, 131, 123, 121, 142, 134, 132, 153, 145, 142, 146, 138, 135, 134, 127, 121, 143, 136, 130, 155, 148, 140, 154, 147, 139, 142, 133, 128, 151, 142, 137, 151, 142, 137, 143, 134, 129, 145, 136, 131, 145, 136, 131, 129, 120, 115, 120, 111, 106, 104, 93, 89, 141, 130, 126, 146, 135, 131, 130, 119, 115, 138, 124, 121, 147, 133, 130, 142, 128, 125, 141, 127, 124, 143, 132, 128, 134, 123, 119, 145, 134, 130, 124, 113, 109, 124, 113, 109, 155, 144, 140, 148, 137, 133, 140, 129, 125, 129, 118, 114, 116, 105, 101, 102, 91, 87, 140, 129, 125, 132, 121, 117, 125, 114, 110, 122, 111, 107, 119, 108, 104, 134, 123, 117, 123, 112, 106, 111, 100, 94, 104, 93, 87, 103, 92, 88, 106, 95, 91, 107, 98, 93, 107, 98, 93, 86, 77, 72, 89, 80, 75, 94, 86, 83, 113, 105, 102, 77, 69, 66, 79, 71, 68, 87, 79, 76, 122, 114, 111, 84, 76, 73, 108, 100, 97, 116, 107, 102, 98, 89, 84, 94, 85, 80, 103, 94, 89, 109, 98, 94, 119, 108, 104, 104, 95, 90, 88, 79, 74, 80, 72, 69, 77, 69, 66, 99, 94, 91, 100, 95, 92, 117, 113, 112, 64, 63, 59, 76, 75, 71, 145, 146, 140, 146, 145, 140, 68, 67, 62, 62, 59, 54, 54, 51, 46, 77, 69, 66, 71, 63, 60, 78, 68, 66, 60, 50, 48, 44, 34, 32, 56, 46, 44, 74, 66, 63, 68, 60, 57, 61, 53, 50, 68, 60, 57, 78, 71, 65, 88, 81, 75, 89, 80, 75, 85, 76, 71, 79, 68, 64, 59, 48, 44, 48, 34, 31, 55, 41, 38, 68, 54, 53, 85, 71, 70, 82, 71, 69, 36, 26, 24, 111, 103, 101, 157, 152, 149, 101, 97, 94, 64, 59, 55, 101, 94, 88, 83, 74, 67, 115, 106, 101, 154, 146, 143, 159, 154, 151, 105, 99, 99, 46, 42, 43, 66, 62, 63, 107, 103, 104, 143, 139, 140, 95, 86, 87, 71, 63, 61, 58, 47, 45, 58, 47, 43, 114, 99, 94, 100, 87, 81, 29, 18, 16, 38, 28, 26, 47, 36, 34, 70, 59, 57, 81, 67, 66, 75, 61, 60, 80, 66, 63, 76, 62, 59, 109, 95, 92, 80, 66, 63, 76, 62, 59, 103, 89, 86, 110, 99, 93, 92, 81, 75, 80, 71, 64, 87, 78, 71, 74, 60, 57, 64, 50, 47, 95, 81, 78, 98, 84, 81, 87, 73, 70, 110, 96, 93, 123, 109, 106, 122, 108, 105, 93, 79, 76, 60, 46, 43, 75, 61, 58, 112, 98, 95, 96, 82, 79, 63, 49, 46, 77, 63, 60, 113, 99, 96, 122, 107, 102, 86, 71, 66, 85, 72, 66, 116, 103, 97, 120, 107, 101, 100, 87, 81, 96, 83, 77, 107, 94, 88, 95, 84, 78, 70, 59, 53, 90, 79, 73, 129, 118, 112, 120, 109, 103, 91, 80, 74, 84, 75, 68, 91, 80, 74, 97, 83, 80, 93, 79, 76, 95, 81, 78, 102, 88, 85, 103, 89, 86, 104, 90, 87, 117, 103, 100, 132, 118, 115, 137, 123, 120, 134, 120, 117, 130, 116, 113, 130, 116, 113, 138, 124, 121, 148, 134, 131, 149, 135, 132, 145, 130, 127, 140, 119, 118, 140, 116, 116, 141, 117, 117, 142, 121, 120, 141, 120, 119, 133, 113, 112, 128, 110, 108, 129, 111, 109, 129, 111, 109, 124, 106, 104, 124, 106, 104, 119, 101, 99, 111, 91, 90, 112, 92, 91, 110, 89, 88, 99, 75, 73, 96, 67, 63, 92, 61, 56, 88, 59, 53, 86, 58, 54, 81, 56, 51, 76, 55, 50, 80, 61, 57, 87, 69, 67, 89, 73, 73, 78, 64, 63, 77, 65, 65, 87, 77, 76, 88, 78, 76, 79, 69, 67, 78, 70, 67, 87, 79, 76, 88, 77, 73, 96, 85, 81, 109, 98, 94, 130, 119, 115, 141, 130, 124, 136, 125, 119, 139, 130, 123, 158, 151, 143, 180, 175, 169, 183, 180, 175, 188, 187, 185, 196, 198, 197, 206, 210, 213, 215, 220, 224, 222, 227, 233, 226, 231, 237, 233, 236, 243, 234, 237, 244, 234, 237, 244, 236, 239, 246, 237, 240, 247, 239, 242, 249, 240, 243, 250, 241, 244, 251, 240, 243, 250, 240, 243, 250, 240, 243, 250, 240, 243, 250, 241, 244, 251, 241, 244, 251, 242, 245, 252, 242, 245, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 236, 243, 233, 236, 243, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 228, 233, 239, 228, 233, 239, 228, 233, 239, 224, 231, 239, 227, 232, 238, 229, 234, 238, 225, 229, 232, 210, 211, 213, 181, 181, 179, 150, 146, 143, 130, 122, 119, 146, 135, 131, 151, 138, 132, 156, 138, 134, 152, 133, 129, 144, 120, 120, 133, 107, 108, 127, 98, 100, 124, 95, 99, 122, 91, 97, 126, 95, 101, 133, 102, 108, 137, 108, 113, 139, 110, 115, 137, 111, 114, 135, 109, 110, 133, 109, 107, 129, 105, 103, 129, 108, 105, 132, 112, 111, 136, 116, 118, 141, 120, 127, 146, 124, 136, 150, 129, 144, 153, 132, 151, 149, 127, 148, 147, 128, 150, 149, 127, 148, 148, 127, 146, 147, 126, 143, 146, 123, 141, 144, 121, 137, 143, 121, 134, 141, 117, 131, 138, 114, 127, 136, 110, 123, 131, 105, 118, 126, 100, 113, 123, 97, 110, 120, 94, 107, 120, 92, 106, 122, 92, 104, 120, 88, 99, 116, 84, 97, 111, 79, 90, 108, 76, 87, 107, 75, 86, 107, 75, 86, 107, 75, 86, 106, 74, 85, 106, 74, 85, 106, 74, 85, 106, 74, 85, 107, 75, 86, 109, 78, 86, 111, 79, 90, 111, 81, 89, 115, 89, 92, 117, 93, 93, 111, 87, 87, 98, 74, 74, 88, 62, 63, 89, 63, 64, 98, 69, 73, 102, 73, 77, 94, 68, 71, 91, 65, 68, 87, 61, 64, 84, 59, 62, 85, 60, 64, 86, 64, 67, 87, 65, 68, 87, 67, 69, 124, 103, 108, 144, 123, 128, 156, 135, 140, 145, 124, 129, 121, 100, 107, 101, 80, 87, 85, 64, 71, 73, 54, 60, 130, 113, 119, 150, 135, 140, 154, 139, 146, 134, 121, 128, 130, 119, 125, 147, 136, 142, 152, 143, 148, 144, 133, 137, 152, 140, 142, 156, 142, 142, 165, 151, 151, 159, 147, 147, 139, 127, 127, 127, 115, 115, 125, 113, 113, 120, 108, 108, 128, 116, 116, 140, 130, 129, 144, 134, 133, 142, 134, 132, 146, 138, 136, 143, 135, 133, 143, 135, 133, 154, 144, 143, 138, 128, 129, 134, 122, 124, 129, 117, 117, 130, 118, 118, 134, 122, 122, 138, 124, 124, 135, 121, 121, 131, 117, 117, 127, 113, 112, 119, 105, 104, 111, 95, 95, 104, 88, 88, 102, 84, 84, 98, 80, 80, 93, 75, 73, 88, 70, 68, 79, 61, 61, 86, 68, 68, 94, 76, 76, 100, 82, 82, 99, 81, 81, 94, 76, 76, 87, 69, 67, 83, 65, 63, 80, 62, 60, 78, 60, 58, 78, 60, 58, 81, 63, 61, 81, 63, 59, 80, 62, 58, 85, 67, 63, 93, 75, 71, 84, 69, 66, 94, 80, 77, 95, 81, 78, 73, 62, 58, 50, 39, 35, 56, 47, 42, 98, 88, 86, 139, 131, 128, 121, 116, 112, 73, 68, 64, 76, 68, 65, 95, 87, 84, 83, 75, 73, 80, 72, 70, 79, 71, 69, 54, 44, 43, 67, 57, 56, 72, 62, 61, 96, 86, 85, 114, 104, 103, 105, 95, 93, 95, 85, 83, 93, 82, 80, 86, 75, 73, 96, 85, 83, 71, 60, 58, 82, 71, 67, 112, 101, 97, 111, 97, 94, 98, 84, 81, 102, 88, 85, 111, 97, 94, 124, 109, 104, 128, 113, 108, 113, 98, 93, 114, 101, 95, 128, 115, 109, 108, 95, 89, 95, 84, 78, 126, 115, 109, 150, 139, 133, 75, 64, 58, 88, 75, 69, 121, 108, 102, 122, 107, 102, 116, 101, 96, 99, 84, 79, 97, 82, 77, 132, 119, 113, 127, 114, 108, 130, 117, 111, 124, 111, 105, 108, 95, 89, 112, 99, 93, 130, 117, 111, 136, 123, 117, 94, 81, 75, 114, 101, 95, 125, 112, 106, 112, 99, 93, 108, 95, 89, 119, 106, 100, 116, 103, 97, 105, 92, 86, 133, 122, 116, 133, 122, 116, 137, 126, 120, 145, 134, 128, 145, 134, 128, 138, 127, 121, 132, 121, 115, 130, 119, 113, 142, 131, 125, 139, 128, 122, 133, 122, 116, 140, 129, 123, 155, 144, 138, 153, 142, 136, 145, 134, 128, 147, 136, 130, 141, 130, 126, 127, 116, 112, 132, 121, 117, 144, 133, 129, 144, 133, 129, 145, 134, 130, 146, 135, 131, 139, 128, 124, 155, 144, 140, 169, 158, 154, 155, 144, 140, 147, 136, 132, 157, 146, 142, 168, 157, 153, 157, 146, 142, 156, 145, 141, 154, 143, 139, 158, 147, 143, 161, 152, 147, 167, 160, 154, 171, 166, 160, 168, 163, 157, 161, 154, 148, 155, 148, 142, 164, 153, 149, 136, 125, 121, 136, 125, 121, 160, 149, 145, 159, 150, 145, 141, 132, 127, 143, 136, 130, 157, 152, 146, 169, 162, 154, 151, 144, 136, 147, 140, 134, 158, 151, 145, 153, 145, 142, 136, 128, 125, 141, 133, 131, 163, 155, 153, 126, 118, 116, 137, 129, 127, 146, 138, 135, 138, 130, 127, 126, 119, 113, 131, 124, 118, 150, 143, 135, 164, 157, 149, 137, 128, 123, 150, 141, 136, 156, 147, 142, 142, 133, 128, 144, 135, 130, 144, 135, 130, 122, 113, 108, 124, 115, 110, 114, 103, 99, 125, 114, 110, 134, 123, 119, 144, 133, 129, 146, 132, 129, 128, 114, 111, 129, 115, 112, 154, 140, 137, 153, 142, 138, 134, 123, 119, 142, 131, 127, 135, 124, 120, 123, 112, 108, 146, 135, 131, 156, 145, 141, 139, 128, 124, 135, 124, 120, 120, 109, 105, 103, 92, 88, 126, 115, 111, 130, 119, 115, 131, 120, 116, 141, 130, 126, 133, 122, 118, 131, 120, 114, 130, 119, 113, 115, 104, 98, 106, 95, 89, 115, 104, 100, 116, 105, 101, 109, 100, 95, 110, 101, 96, 104, 95, 90, 89, 80, 75, 92, 84, 81, 117, 109, 106, 87, 79, 76, 80, 72, 69, 75, 67, 64, 120, 112, 109, 101, 93, 90, 108, 100, 97, 115, 106, 101, 100, 91, 86, 93, 84, 79, 93, 84, 79, 94, 83, 79, 117, 106, 102, 101, 92, 87, 87, 78, 73, 73, 65, 62, 76, 68, 65, 103, 98, 95, 105, 100, 97, 128, 124, 123, 72, 71, 67, 90, 89, 85, 168, 169, 163, 121, 120, 115, 61, 60, 55, 74, 71, 66, 40, 37, 32, 79, 71, 68, 74, 66, 63, 76, 66, 64, 66, 56, 54, 57, 47, 45, 40, 30, 28, 61, 53, 50, 88, 80, 77, 75, 67, 64, 74, 66, 63, 63, 56, 50, 89, 82, 76, 86, 77, 72, 79, 70, 65, 86, 75, 71, 60, 49, 45, 41, 27, 24, 62, 48, 45, 64, 50, 49, 93, 82, 80, 53, 43, 41, 92, 84, 81, 172, 167, 164, 96, 91, 88, 41, 37, 34, 102, 97, 93, 95, 88, 82, 66, 57, 52, 180, 172, 169, 161, 153, 150, 68, 63, 60, 72, 67, 64, 65, 61, 60, 97, 93, 94, 154, 150, 151, 91, 85, 85, 63, 55, 53, 75, 67, 65, 54, 43, 41, 84, 73, 71, 133, 119, 116, 68, 54, 51, 24, 13, 11, 57, 47, 45, 70, 59, 57, 72, 61, 59, 77, 63, 62, 69, 55, 54, 74, 60, 57, 94, 80, 77, 94, 80, 77, 83, 69, 66, 104, 90, 87, 118, 104, 101, 97, 86, 80, 89, 78, 72, 97, 88, 81, 92, 83, 76, 80, 66, 63, 71, 57, 54, 101, 87, 84, 97, 83, 80, 82, 68, 65, 113, 99, 96, 129, 115, 112, 118, 104, 101, 64, 50, 47, 86, 72, 69, 86, 72, 69, 90, 76, 73, 100, 86, 83, 76, 62, 59, 66, 52, 49, 103, 89, 86, 111, 96, 91, 97, 82, 77, 108, 95, 89, 121, 108, 102, 110, 97, 91, 105, 92, 86, 100, 87, 81, 81, 68, 62, 77, 66, 60, 89, 78, 72, 110, 99, 93, 119, 108, 102, 110, 99, 93, 99, 88, 82, 93, 84, 77, 88, 79, 72, 95, 81, 78, 83, 69, 66, 82, 68, 65, 95, 81, 78, 106, 92, 89, 108, 94, 91, 116, 102, 99, 127, 113, 110, 136, 122, 119, 137, 123, 120, 135, 121, 118, 134, 120, 117, 145, 131, 128, 156, 142, 139, 151, 137, 134, 137, 122, 119, 135, 114, 113, 137, 113, 113, 139, 118, 117, 144, 123, 122, 142, 122, 121, 134, 114, 113, 130, 112, 110, 131, 113, 111, 134, 116, 114, 128, 110, 108, 126, 108, 106, 119, 101, 99, 110, 90, 89, 111, 91, 90, 112, 91, 90, 103, 79, 77, 98, 69, 65, 95, 66, 60, 92, 63, 59, 91, 63, 60, 86, 61, 57, 80, 59, 56, 82, 62, 61, 86, 71, 68, 92, 78, 77, 78, 67, 65, 74, 64, 63, 81, 71, 70, 79, 69, 68, 72, 62, 60, 80, 72, 69, 100, 92, 89, 90, 79, 75, 86, 75, 71, 96, 85, 81, 118, 107, 103, 128, 117, 111, 128, 117, 111, 143, 134, 127, 170, 163, 155, 181, 174, 168, 183, 180, 175, 189, 188, 184, 197, 197, 195, 205, 206, 208, 212, 216, 219, 219, 222, 227, 223, 228, 234, 230, 233, 240, 231, 234, 241, 233, 236, 243, 235, 238, 245, 237, 240, 247, 239, 242, 249, 240, 243, 250, 240, 243, 250, 240, 243, 250, 240, 243, 250, 240, 243, 250, 240, 243, 250, 241, 244, 251, 241, 244, 251, 242, 245, 252, 242, 245, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 235, 238, 245, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 228, 233, 239, 228, 233, 239, 224, 229, 235, 225, 230, 236, 226, 231, 235, 227, 231, 234, 220, 221, 223, 200, 200, 200, 175, 171, 170, 157, 152, 148, 155, 145, 143, 152, 141, 137, 149, 134, 131, 148, 128, 127, 147, 123, 123, 141, 115, 116, 133, 104, 106, 125, 96, 100, 140, 111, 116, 142, 112, 120, 145, 115, 123, 146, 119, 126, 146, 119, 126, 143, 116, 123, 137, 110, 115, 133, 108, 111, 135, 110, 113, 133, 111, 113, 134, 114, 116, 137, 116, 121, 142, 121, 130, 148, 126, 139, 151, 130, 147, 153, 132, 151, 150, 131, 151, 149, 131, 153, 150, 131, 151, 150, 131, 150, 149, 131, 147, 149, 128, 145, 149, 126, 142, 148, 126, 139, 147, 123, 137, 145, 121, 135, 142, 115, 130, 137, 110, 125, 134, 106, 121, 130, 102, 117, 128, 100, 115, 128, 97, 112, 125, 94, 109, 123, 93, 105, 119, 88, 103, 115, 85, 97, 111, 81, 93, 109, 79, 91, 108, 78, 88, 108, 78, 88, 106, 76, 86, 106, 76, 86, 105, 75, 83, 105, 75, 83, 106, 76, 84, 108, 79, 84, 109, 79, 87, 110, 81, 86, 119, 93, 96, 113, 88, 91, 103, 78, 81, 92, 67, 70, 92, 66, 69, 100, 74, 77, 108, 79, 83, 109, 80, 84, 89, 60, 64, 93, 67, 70, 94, 68, 71, 83, 58, 61, 74, 49, 52, 83, 61, 63, 115, 93, 95, 144, 122, 125, 142, 121, 126, 135, 114, 119, 121, 100, 105, 98, 77, 82, 72, 53, 57, 65, 46, 50, 89, 70, 76, 117, 100, 106, 152, 135, 141, 138, 123, 128, 135, 122, 129, 146, 135, 141, 148, 137, 143, 141, 132, 137, 148, 139, 144, 165, 154, 158, 161, 146, 149, 144, 128, 129, 135, 119, 120, 136, 122, 122, 141, 127, 127, 150, 136, 136, 149, 137, 137, 137, 125, 125, 145, 135, 134, 150, 140, 139, 145, 137, 135, 142, 137, 134, 148, 143, 140, 144, 139, 136, 136, 131, 128, 141, 133, 131, 136, 124, 126, 132, 117, 120, 124, 110, 110, 121, 107, 107, 123, 109, 109, 126, 110, 111, 127, 111, 112, 126, 110, 111, 121, 105, 105, 113, 97, 97, 105, 89, 89, 103, 87, 87, 105, 89, 89, 106, 90, 90, 103, 88, 85, 99, 84, 81, 100, 82, 82, 101, 83, 83, 104, 86, 86, 107, 89, 89, 107, 89, 89, 105, 87, 87, 101, 83, 81, 98, 80, 78, 100, 82, 80, 95, 77, 75, 91, 73, 71, 88, 70, 68, 82, 64, 60, 76, 58, 54, 76, 58, 54, 81, 63, 59, 91, 73, 71, 75, 60, 57, 81, 66, 63, 95, 81, 78, 78, 67, 63, 45, 36, 31, 47, 37, 35, 76, 68, 65, 135, 130, 126, 129, 124, 120, 76, 71, 67, 48, 43, 39, 82, 77, 74, 92, 87, 84, 73, 68, 65, 77, 69, 67, 73, 63, 62, 81, 71, 70, 87, 77, 76, 101, 91, 90, 116, 106, 104, 106, 96, 94, 88, 78, 76, 87, 77, 75, 96, 85, 83, 80, 69, 67, 73, 62, 58, 99, 88, 84, 120, 109, 105, 100, 89, 85, 85, 71, 68, 101, 87, 84, 121, 106, 101, 139, 124, 119, 119, 106, 100, 103, 90, 84, 121, 108, 102, 119, 108, 102, 109, 98, 92, 120, 109, 103, 159, 148, 142, 88, 77, 71, 84, 73, 67, 112, 101, 95, 117, 104, 98, 111, 98, 92, 101, 86, 81, 97, 82, 77, 110, 97, 91, 111, 98, 92, 115, 102, 96, 107, 94, 88, 93, 80, 74, 97, 84, 78, 117, 104, 98, 131, 118, 112, 108, 95, 89, 116, 103, 97, 120, 107, 101, 123, 110, 104, 120, 107, 101, 114, 101, 95, 113, 100, 94, 111, 98, 92, 133, 122, 116, 133, 122, 116, 138, 127, 121, 143, 132, 126, 142, 131, 125, 134, 123, 117, 129, 118, 112, 129, 118, 112, 144, 133, 127, 140, 129, 123, 130, 119, 113, 132, 121, 115, 145, 134, 128, 145, 134, 128, 142, 131, 125, 148, 137, 131, 136, 125, 121, 136, 125, 121, 144, 133, 129, 147, 136, 132, 140, 129, 125, 138, 127, 123, 144, 133, 129, 147, 136, 132, 158, 147, 143, 160, 149, 145, 147, 136, 132, 139, 128, 124, 160, 149, 145, 154, 143, 139, 149, 138, 134, 160, 149, 145, 154, 140, 137, 149, 138, 134, 152, 143, 138, 159, 152, 146, 163, 158, 152, 166, 161, 155, 165, 158, 152, 158, 151, 145, 160, 149, 145, 132, 121, 117, 138, 124, 121, 158, 147, 143, 152, 143, 138, 139, 130, 125, 144, 137, 131, 157, 150, 144, 166, 159, 151, 162, 155, 147, 159, 152, 146, 155, 148, 142, 149, 141, 138, 145, 137, 134, 152, 144, 141, 163, 155, 152, 126, 118, 115, 136, 128, 125, 142, 134, 131, 138, 130, 127, 129, 122, 116, 127, 120, 114, 144, 137, 129, 167, 160, 152, 139, 130, 125, 147, 138, 133, 160, 151, 146, 142, 133, 128, 140, 131, 126, 144, 135, 130, 122, 113, 108, 126, 117, 112, 126, 115, 111, 116, 105, 101, 126, 115, 111, 152, 141, 137, 150, 136, 133, 117, 103, 100, 118, 104, 101, 154, 140, 137, 160, 149, 145, 134, 123, 119, 135, 124, 120, 147, 136, 132, 127, 116, 112, 128, 117, 113, 151, 140, 136, 139, 128, 124, 136, 125, 121, 127, 116, 112, 114, 103, 99, 118, 107, 103, 124, 113, 109, 124, 113, 109, 141, 130, 126, 126, 115, 111, 123, 112, 106, 128, 117, 111, 118, 107, 101, 113, 102, 96, 125, 114, 110, 128, 117, 113, 117, 108, 103, 111, 102, 97, 93, 84, 79, 69, 60, 55, 72, 64, 61, 106, 98, 95, 97, 89, 86, 95, 87, 84, 72, 64, 61, 113, 105, 102, 119, 111, 108, 104, 96, 93, 111, 102, 97, 103, 94, 89, 95, 86, 81, 82, 73, 68, 73, 62, 58, 109, 98, 94, 103, 94, 89, 90, 81, 76, 69, 61, 58, 74, 66, 63, 102, 97, 94, 104, 99, 96, 136, 132, 131, 79, 78, 74, 104, 103, 99, 178, 179, 173, 100, 99, 94, 55, 54, 49, 81, 78, 73, 30, 27, 22, 78, 70, 67, 76, 68, 65, 80, 70, 68, 88, 78, 76, 77, 67, 65, 40, 30, 28, 57, 49, 46, 100, 92, 89, 87, 79, 76, 69, 61, 58, 44, 37, 31, 79, 72, 66, 74, 65, 60, 68, 59, 54, 84, 75, 70, 59, 50, 45, 35, 24, 22, 63, 52, 50, 66, 55, 53, 57, 46, 44, 95, 85, 83, 169, 161, 158, 127, 122, 119, 50, 45, 42, 66, 62, 59, 115, 110, 106, 75, 68, 62, 130, 121, 116, 169, 161, 158, 98, 90, 87, 37, 32, 29, 57, 52, 49, 88, 82, 82, 134, 128, 128, 139, 133, 133, 53, 47, 47, 85, 77, 75, 87, 79, 77, 46, 35, 33, 96, 85, 83, 118, 104, 101, 62, 48, 45, 35, 24, 22, 60, 50, 48, 68, 57, 55, 63, 52, 50, 74, 60, 59, 72, 58, 57, 72, 58, 55, 99, 85, 82, 87, 73, 70, 99, 85, 82, 129, 115, 112, 120, 106, 103, 79, 68, 62, 92, 81, 75, 115, 106, 99, 95, 86, 79, 78, 64, 61, 72, 58, 55, 101, 87, 84, 99, 85, 82, 91, 77, 74, 121, 107, 104, 126, 112, 109, 107, 93, 90, 83, 69, 66, 106, 92, 89, 93, 79, 76, 78, 64, 61, 90, 76, 73, 80, 66, 63, 67, 53, 50, 86, 72, 69, 108, 94, 91, 110, 96, 93, 125, 111, 108, 123, 109, 106, 102, 88, 85, 98, 84, 81, 87, 76, 72, 57, 46, 42, 75, 64, 60, 117, 106, 102, 124, 113, 109, 110, 99, 95, 114, 105, 100, 109, 100, 95, 94, 85, 80, 97, 88, 83, 97, 83, 80, 79, 65, 62, 77, 63, 60, 97, 83, 80, 113, 99, 96, 111, 97, 94, 109, 95, 92, 113, 99, 96, 131, 117, 114, 135, 121, 118, 135, 121, 118, 136, 122, 119, 146, 132, 129, 154, 140, 137, 145, 131, 128, 128, 113, 110, 130, 110, 109, 134, 113, 112, 141, 120, 119, 148, 127, 126, 144, 124, 123, 136, 116, 115, 131, 113, 111, 133, 115, 113, 136, 118, 116, 131, 113, 111, 129, 111, 109, 121, 103, 101, 110, 90, 89, 111, 91, 90, 114, 93, 92, 107, 83, 81, 99, 71, 68, 98, 69, 65, 100, 70, 68, 98, 73, 69, 94, 70, 68, 86, 65, 64, 85, 65, 64, 86, 70, 70, 92, 78, 78, 78, 66, 66, 71, 61, 62, 73, 63, 62, 71, 61, 60, 71, 61, 60, 87, 79, 77, 109, 101, 98, 86, 75, 71, 78, 67, 63, 91, 80, 76, 119, 108, 104, 132, 121, 115, 137, 126, 120, 153, 144, 135, 175, 168, 160, 179, 172, 166, 182, 179, 174, 189, 188, 184, 195, 195, 193, 200, 201, 203, 205, 209, 212, 214, 217, 222, 220, 223, 228, 225, 228, 235, 227, 230, 237, 231, 234, 241, 234, 237, 244, 237, 240, 247, 239, 242, 249, 239, 242, 249, 240, 243, 250, 240, 243, 250, 240, 243, 250, 240, 243, 250, 240, 243, 250, 241, 244, 251, 241, 244, 251, 242, 245, 252, 242, 245, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 229, 234, 240, 228, 233, 239, 226, 231, 237, 224, 229, 233, 224, 229, 233, 220, 224, 227, 208, 209, 211, 187, 186, 184, 173, 169, 166, 164, 156, 154, 155, 145, 143, 147, 131, 131, 142, 124, 122, 142, 121, 120, 141, 117, 117, 135, 109, 110, 131, 102, 106, 142, 113, 118, 140, 113, 120, 142, 115, 124, 146, 119, 128, 150, 123, 132, 149, 123, 132, 145, 120, 126, 142, 117, 121, 141, 119, 122, 139, 117, 120, 137, 116, 121, 139, 118, 125, 145, 123, 135, 150, 128, 141, 152, 131, 148, 153, 132, 151, 151, 134, 153, 151, 133, 155, 151, 134, 153, 151, 134, 152, 152, 133, 152, 150, 132, 148, 152, 129, 145, 151, 128, 144, 151, 127, 141, 148, 124, 138, 147, 120, 135, 142, 115, 130, 139, 111, 126, 136, 108, 123, 136, 105, 121, 135, 104, 120, 130, 99, 115, 128, 97, 112, 125, 94, 109, 121, 90, 105, 117, 86, 101, 114, 84, 96, 112, 82, 94, 111, 81, 91, 109, 79, 89, 109, 79, 89, 108, 78, 86, 107, 78, 83, 107, 78, 83, 107, 78, 83, 108, 79, 84, 107, 80, 85, 109, 84, 87, 105, 80, 83, 99, 74, 77, 96, 71, 74, 101, 75, 78, 105, 79, 82, 102, 73, 77, 93, 64, 68, 90, 61, 65, 88, 59, 63, 85, 59, 62, 90, 64, 67, 102, 76, 79, 116, 91, 94, 129, 104, 107, 134, 112, 114, 113, 93, 95, 93, 72, 77, 77, 56, 61, 71, 52, 56, 73, 54, 58, 86, 70, 73, 122, 105, 111, 158, 143, 148, 132, 117, 122, 142, 130, 134, 145, 134, 140, 141, 130, 136, 145, 136, 141, 159, 150, 155, 167, 158, 163, 166, 155, 159, 143, 128, 131, 132, 116, 117, 131, 115, 116, 136, 122, 122, 142, 128, 128, 151, 139, 139, 159, 147, 147, 152, 140, 140, 165, 155, 154, 165, 155, 154, 154, 146, 144, 145, 140, 137, 147, 142, 139, 136, 132, 129, 122, 118, 115, 123, 115, 113, 127, 112, 115, 130, 114, 117, 135, 116, 118, 135, 119, 120, 133, 117, 118, 128, 112, 113, 124, 108, 109, 121, 105, 106, 109, 93, 93, 104, 88, 88, 98, 82, 82, 97, 81, 81, 100, 84, 84, 102, 86, 86, 100, 85, 82, 98, 83, 80, 103, 85, 85, 100, 82, 82, 97, 79, 79, 97, 79, 79, 98, 80, 80, 100, 82, 82, 99, 81, 79, 98, 80, 78, 103, 85, 83, 99, 81, 79, 96, 78, 76, 94, 76, 74, 87, 69, 65, 79, 61, 57, 78, 60, 56, 81, 63, 59, 91, 73, 71, 75, 57, 55, 76, 58, 56, 92, 77, 74, 95, 81, 78, 74, 63, 59, 57, 47, 45, 56, 48, 45, 70, 62, 59, 119, 114, 110, 127, 122, 118, 81, 76, 72, 56, 51, 48, 69, 64, 61, 83, 78, 75, 85, 80, 77, 87, 79, 77, 93, 83, 82, 85, 75, 74, 91, 81, 80, 114, 104, 102, 112, 102, 100, 94, 84, 82, 91, 81, 79, 89, 78, 76, 99, 88, 86, 84, 73, 69, 84, 73, 69, 113, 102, 98, 112, 101, 97, 93, 79, 76, 92, 78, 75, 104, 89, 84, 136, 121, 116, 130, 117, 111, 102, 89, 83, 100, 89, 83, 111, 100, 94, 112, 101, 95, 116, 105, 99, 154, 143, 137, 112, 101, 95, 84, 73, 67, 107, 96, 90, 116, 103, 97, 101, 88, 82, 107, 92, 87, 103, 88, 83, 92, 79, 73, 100, 87, 81, 105, 92, 86, 98, 85, 79, 86, 73, 67, 90, 77, 71, 111, 98, 92, 130, 117, 111, 121, 108, 102, 119, 106, 100, 114, 101, 95, 129, 116, 110, 125, 112, 106, 107, 94, 88, 113, 100, 94, 118, 105, 99, 132, 121, 115, 134, 123, 117, 139, 128, 122, 142, 131, 125, 136, 125, 119, 129, 118, 112, 128, 117, 111, 134, 123, 117, 147, 136, 130, 143, 132, 126, 133, 122, 116, 131, 120, 114, 138, 127, 121, 137, 126, 120, 137, 126, 120, 147, 136, 130, 135, 124, 120, 143, 132, 128, 150, 139, 135, 146, 135, 131, 136, 125, 121, 134, 123, 119, 143, 132, 128, 152, 141, 137, 153, 142, 138, 152, 141, 137, 140, 129, 125, 127, 116, 112, 155, 144, 140, 138, 127, 123, 139, 128, 124, 159, 148, 144, 153, 139, 136, 143, 132, 128, 145, 134, 130, 151, 142, 137, 154, 147, 141, 159, 154, 148, 161, 154, 148, 152, 145, 139, 153, 142, 138, 132, 121, 117, 143, 129, 126, 158, 144, 141, 144, 133, 129, 136, 127, 122, 146, 139, 133, 152, 145, 139, 159, 152, 144, 166, 159, 151, 163, 156, 150, 148, 141, 135, 140, 132, 129, 146, 138, 135, 155, 147, 144, 157, 149, 146, 128, 120, 117, 135, 127, 124, 139, 131, 128, 142, 135, 129, 140, 133, 127, 131, 124, 118, 136, 129, 121, 158, 151, 143, 146, 137, 132, 139, 130, 125, 161, 152, 147, 143, 134, 129, 131, 122, 117, 144, 135, 130, 127, 118, 113, 124, 115, 110, 128, 117, 113, 118, 107, 103, 125, 114, 110, 145, 134, 130, 145, 131, 128, 123, 109, 106, 121, 107, 104, 139, 125, 122, 153, 142, 138, 136, 125, 121, 130, 119, 115, 151, 140, 136, 129, 118, 114, 112, 101, 97, 143, 132, 128, 139, 128, 124, 128, 117, 113, 131, 120, 116, 130, 119, 115, 117, 106, 102, 116, 105, 101, 106, 95, 91, 126, 115, 111, 103, 92, 88, 118, 107, 101, 120, 109, 103, 119, 108, 102, 118, 107, 101, 126, 115, 111, 135, 124, 120, 125, 116, 111, 108, 99, 94, 94, 85, 80, 69, 60, 55, 71, 63, 60, 103, 95, 92, 108, 100, 97, 117, 109, 106, 77, 69, 66, 107, 99, 96, 121, 113, 110, 100, 92, 89, 112, 103, 98, 106, 97, 92, 101, 92, 87, 84, 75, 70, 60, 49, 45, 91, 80, 76, 106, 97, 92, 96, 87, 82, 70, 62, 59, 76, 68, 65, 101, 96, 93, 98, 93, 90, 138, 134, 133, 80, 79, 75, 120, 119, 115, 176, 177, 171, 87, 86, 81, 52, 51, 46, 83, 80, 75, 27, 24, 19, 76, 68, 65, 77, 69, 66, 86, 76, 74, 109, 99, 97, 90, 80, 78, 55, 45, 43, 64, 56, 53, 94, 86, 83, 89, 81, 78, 60, 52, 49, 32, 25, 19, 65, 58, 52, 60, 51, 46, 58, 49, 44, 79, 70, 65, 58, 49, 44, 35, 25, 23, 62, 52, 50, 36, 25, 23, 69, 59, 57, 166, 158, 155, 167, 162, 158, 76, 71, 68, 71, 66, 63, 64, 60, 57, 74, 69, 66, 144, 136, 133, 188, 179, 174, 104, 96, 93, 53, 45, 42, 38, 33, 30, 57, 52, 49, 135, 129, 129, 128, 122, 122, 103, 97, 97, 67, 61, 61, 100, 92, 90, 69, 59, 58, 63, 53, 51, 114, 103, 101, 86, 72, 69, 58, 47, 43, 45, 35, 33, 47, 37, 35, 53, 42, 40, 59, 48, 46, 83, 69, 68, 90, 76, 75, 79, 65, 62, 96, 82, 79, 97, 83, 80, 109, 95, 92, 125, 111, 108, 100, 86, 83, 70, 59, 53, 104, 93, 87, 126, 117, 110, 90, 81, 74, 66, 55, 51, 74, 60, 57, 103, 89, 86, 104, 90, 87, 108, 94, 91, 127, 113, 110, 116, 102, 99, 102, 88, 85, 135, 121, 118, 105, 91, 88, 93, 79, 76, 91, 77, 74, 75, 61, 58, 70, 56, 53, 78, 64, 61, 81, 67, 64, 117, 103, 100, 112, 98, 95, 120, 106, 103, 121, 107, 104, 101, 87, 84, 81, 67, 64, 70, 59, 55, 66, 55, 51, 95, 84, 80, 126, 115, 111, 121, 110, 106, 111, 100, 96, 121, 112, 107, 105, 96, 91, 88, 79, 74, 109, 100, 95, 95, 84, 80, 81, 67, 64, 82, 68, 65, 104, 90, 87, 116, 102, 99, 107, 93, 90, 101, 87, 84, 107, 93, 90, 125, 111, 108, 128, 114, 111, 131, 117, 114, 136, 122, 119, 143, 129, 126, 144, 130, 127, 134, 120, 117, 123, 108, 105, 128, 108, 107, 135, 114, 113, 145, 124, 123, 150, 130, 129, 147, 127, 126, 136, 118, 116, 132, 114, 112, 134, 116, 114, 134, 116, 114, 132, 114, 112, 132, 114, 112, 124, 106, 104, 112, 92, 91, 113, 93, 92, 116, 95, 94, 111, 87, 85, 101, 73, 70, 101, 73, 70, 103, 75, 72, 103, 77, 76, 97, 76, 75, 89, 69, 70, 86, 68, 68, 87, 71, 72, 86, 72, 72, 79, 67, 67, 73, 63, 64, 70, 60, 61, 70, 60, 59, 76, 66, 65, 90, 82, 80, 105, 97, 94, 79, 68, 66, 79, 68, 64, 104, 93, 89, 135, 124, 118, 146, 135, 129, 148, 137, 131, 158, 149, 140, 167, 158, 149, 176, 169, 161, 181, 176, 170, 189, 186, 181, 193, 192, 188, 196, 196, 196, 200, 201, 203, 209, 210, 214, 214, 217, 222, 221, 224, 229, 223, 226, 233, 228, 231, 238, 233, 236, 243, 236, 239, 246, 238, 241, 248, 238, 241, 248, 238, 241, 248, 240, 243, 250, 240, 243, 250, 240, 243, 250, 240, 243, 250, 241, 244, 251, 241, 244, 251, 242, 245, 252, 242, 245, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 231, 236, 242, 227, 232, 238, 225, 230, 234, 226, 231, 235, 225, 229, 232, 216, 217, 219, 197, 197, 197, 181, 180, 178, 170, 165, 162, 161, 153, 150, 150, 136, 135, 138, 122, 122, 133, 113, 112, 132, 111, 110, 136, 110, 111, 137, 111, 114, 135, 108, 113, 134, 107, 114, 136, 109, 118, 141, 115, 124, 149, 123, 132, 154, 128, 137, 154, 129, 135, 150, 128, 131, 146, 124, 127, 143, 121, 124, 139, 118, 123, 141, 120, 127, 148, 127, 136, 154, 132, 145, 157, 134, 152, 156, 135, 154, 151, 134, 153, 150, 135, 154, 152, 135, 154, 152, 135, 153, 153, 134, 153, 152, 134, 150, 153, 130, 146, 152, 129, 145, 152, 128, 142, 150, 126, 140, 149, 122, 137, 146, 118, 133, 145, 114, 132, 142, 111, 129, 141, 110, 128, 140, 109, 127, 136, 105, 123, 135, 104, 120, 132, 101, 117, 128, 97, 112, 124, 93, 108, 120, 90, 102, 117, 87, 99, 116, 86, 98, 115, 85, 95, 114, 84, 94, 112, 82, 90, 110, 81, 86, 109, 80, 85, 109, 80, 84, 109, 80, 84, 107, 81, 84, 99, 74, 77, 98, 76, 78, 98, 73, 76, 98, 73, 76, 102, 76, 79, 103, 77, 80, 96, 67, 71, 86, 57, 61, 91, 62, 66, 88, 59, 63, 94, 65, 69, 111, 85, 88, 130, 104, 105, 132, 108, 108, 116, 92, 92, 96, 74, 76, 92, 72, 74, 88, 67, 72, 87, 68, 72, 96, 77, 81, 112, 93, 97, 128, 112, 115, 144, 129, 132, 154, 142, 144, 143, 131, 135, 153, 142, 146, 150, 139, 143, 137, 128, 131, 141, 132, 135, 154, 145, 148, 141, 132, 137, 114, 103, 107, 112, 97, 100, 115, 100, 103, 130, 115, 118, 142, 127, 130, 145, 130, 133, 153, 141, 143, 166, 154, 156, 166, 156, 157, 148, 138, 139, 154, 144, 145, 149, 140, 141, 143, 137, 137, 145, 139, 139, 138, 132, 132, 131, 125, 125, 136, 127, 128, 137, 121, 124, 145, 126, 130, 150, 130, 132, 144, 125, 127, 128, 109, 111, 111, 92, 94, 99, 80, 82, 94, 75, 77, 96, 80, 80, 94, 78, 78, 92, 76, 76, 92, 76, 76, 93, 79, 78, 94, 80, 79, 94, 80, 77, 94, 79, 76, 94, 76, 76, 89, 71, 71, 83, 65, 65, 83, 65, 65, 87, 69, 69, 91, 73, 73, 93, 75, 73, 92, 74, 72, 96, 78, 76, 94, 76, 74, 95, 77, 75, 96, 78, 76, 91, 73, 69, 84, 66, 62, 83, 65, 61, 86, 68, 64, 83, 63, 62, 85, 65, 64, 85, 65, 64, 84, 66, 64, 85, 70, 67, 87, 73, 70, 87, 76, 74, 84, 76, 73, 40, 32, 29, 62, 57, 53, 121, 118, 113, 127, 124, 119, 70, 66, 63, 58, 54, 51, 80, 76, 73, 69, 64, 61, 88, 80, 78, 83, 75, 73, 81, 73, 71, 81, 73, 71, 91, 81, 79, 110, 100, 98, 115, 105, 103, 102, 92, 90, 87, 77, 75, 94, 84, 82, 89, 78, 74, 82, 71, 67, 92, 81, 77, 104, 93, 89, 102, 91, 87, 97, 83, 80, 97, 82, 77, 121, 106, 101, 127, 114, 108, 107, 94, 88, 94, 83, 77, 104, 93, 87, 109, 100, 93, 104, 95, 88, 135, 126, 119, 134, 125, 118, 84, 73, 67, 104, 93, 87, 116, 103, 97, 86, 73, 67, 110, 95, 90, 104, 89, 84, 88, 75, 69, 100, 87, 81, 105, 92, 86, 94, 81, 75, 80, 67, 61, 79, 66, 60, 97, 84, 78, 118, 105, 99, 125, 112, 106, 121, 108, 102, 109, 96, 90, 124, 111, 105, 123, 110, 104, 105, 92, 86, 118, 105, 99, 122, 109, 103, 130, 119, 113, 135, 124, 118, 140, 129, 123, 140, 129, 123, 130, 119, 113, 123, 112, 106, 129, 118, 112, 140, 129, 123, 146, 135, 129, 147, 136, 130, 141, 130, 124, 136, 125, 119, 137, 126, 120, 130, 119, 113, 130, 119, 113, 143, 132, 126, 138, 127, 123, 146, 135, 131, 147, 136, 132, 139, 128, 124, 133, 122, 118, 135, 124, 120, 142, 131, 127, 152, 141, 137, 144, 133, 129, 153, 142, 138, 144, 133, 129, 114, 103, 99, 147, 136, 132, 132, 121, 117, 139, 128, 124, 156, 145, 141, 152, 138, 135, 138, 127, 123, 139, 128, 124, 145, 136, 131, 145, 138, 132, 150, 143, 137, 149, 142, 136, 135, 128, 122, 144, 133, 129, 134, 123, 119, 151, 137, 134, 158, 144, 141, 137, 126, 122, 133, 124, 119, 146, 139, 133, 146, 139, 133, 157, 150, 142, 165, 158, 150, 162, 155, 147, 146, 139, 131, 137, 130, 124, 143, 136, 130, 153, 145, 142, 157, 149, 146, 136, 128, 125, 133, 125, 122, 128, 121, 115, 133, 126, 120, 139, 132, 126, 127, 120, 112, 127, 120, 112, 149, 142, 134, 153, 144, 139, 128, 119, 114, 158, 149, 144, 142, 133, 128, 120, 111, 106, 143, 134, 129, 131, 122, 117, 120, 111, 106, 130, 119, 115, 115, 104, 100, 118, 107, 103, 138, 127, 123, 144, 130, 127, 131, 117, 114, 125, 111, 108, 129, 115, 112, 134, 123, 119, 141, 130, 126, 129, 118, 114, 146, 135, 131, 127, 116, 112, 105, 94, 90, 140, 129, 125, 136, 125, 121, 119, 108, 104, 133, 122, 118, 139, 128, 124, 111, 100, 96, 106, 95, 91, 93, 82, 78, 123, 112, 108, 102, 91, 87, 120, 109, 103, 112, 101, 95, 116, 105, 99, 117, 106, 100, 117, 106, 102, 132, 121, 117, 131, 122, 117, 103, 94, 89, 105, 96, 91, 86, 77, 72, 86, 78, 75, 103, 95, 92, 111, 103, 100, 130, 122, 119, 81, 73, 70, 101, 93, 90, 107, 99, 96, 98, 90, 87, 119, 110, 105, 109, 100, 95, 109, 100, 95, 101, 92, 87, 59, 48, 44, 69, 58, 54, 96, 87, 82, 94, 85, 80, 71, 63, 60, 80, 72, 69, 104, 99, 96, 97, 92, 89, 141, 137, 136, 83, 82, 78, 135, 134, 130, 168, 169, 163, 83, 82, 77, 53, 52, 47, 84, 81, 76, 31, 28, 23, 76, 68, 65, 80, 72, 69, 83, 73, 71, 111, 101, 99, 84, 74, 72, 76, 66, 64, 80, 72, 69, 78, 70, 67, 88, 80, 77, 62, 54, 51, 37, 30, 24, 61, 54, 48, 56, 49, 43, 58, 51, 45, 78, 70, 67, 62, 54, 51, 43, 35, 32, 63, 55, 52, 33, 23, 21, 141, 133, 130, 157, 149, 147, 117, 112, 109, 81, 76, 73, 79, 75, 72, 56, 52, 49, 99, 94, 91, 185, 177, 174, 136, 128, 125, 69, 61, 58, 46, 38, 35, 46, 38, 36, 99, 91, 89, 149, 141, 139, 92, 84, 82, 101, 93, 91, 97, 89, 87, 83, 73, 72, 56, 46, 45, 90, 80, 78, 110, 100, 98, 65, 54, 52, 59, 48, 46, 48, 38, 36, 40, 30, 28, 64, 53, 51, 82, 71, 69, 100, 86, 85, 101, 87, 86, 85, 71, 68, 98, 84, 81, 98, 84, 81, 103, 89, 86, 106, 92, 89, 86, 72, 69, 76, 65, 59, 113, 102, 96, 123, 114, 107, 80, 71, 64, 73, 62, 58, 89, 78, 74, 107, 96, 92, 100, 89, 85, 108, 97, 93, 116, 105, 101, 101, 90, 86, 109, 98, 94, 138, 127, 123, 101, 90, 86, 87, 76, 72, 91, 80, 76, 79, 68, 64, 70, 59, 55, 77, 66, 62, 85, 74, 70, 118, 104, 101, 112, 98, 95, 107, 93, 90, 107, 93, 90, 95, 84, 80, 72, 61, 57, 71, 60, 56, 95, 84, 80, 117, 106, 102, 122, 111, 107, 114, 105, 100, 110, 101, 96, 111, 102, 97, 97, 88, 83, 89, 80, 75, 103, 94, 89, 87, 76, 72, 79, 68, 64, 88, 77, 73, 106, 95, 91, 105, 94, 90, 89, 78, 74, 91, 80, 76, 108, 97, 93, 119, 108, 104, 119, 108, 104, 125, 114, 110, 135, 124, 120, 137, 126, 122, 131, 120, 116, 123, 112, 108, 121, 107, 104, 127, 109, 107, 135, 115, 114, 147, 127, 126, 154, 134, 133, 149, 129, 128, 136, 118, 116, 132, 114, 112, 132, 117, 114, 131, 113, 111, 131, 113, 111, 134, 116, 114, 128, 110, 108, 115, 95, 94, 116, 95, 94, 119, 98, 97, 114, 90, 90, 104, 78, 77, 103, 75, 74, 101, 75, 74, 100, 76, 76, 94, 73, 72, 88, 68, 69, 87, 68, 70, 90, 74, 77, 83, 68, 71, 86, 74, 76, 84, 74, 75, 79, 69, 70, 79, 70, 71, 87, 78, 79, 93, 85, 83, 93, 85, 82, 77, 66, 64, 89, 78, 74, 124, 111, 105, 147, 134, 128, 143, 132, 126, 143, 133, 124, 153, 143, 134, 155, 146, 137, 173, 166, 158, 179, 174, 168, 187, 184, 179, 189, 188, 184, 190, 190, 190, 194, 195, 197, 203, 204, 206, 211, 212, 216, 217, 220, 225, 220, 223, 228, 225, 228, 233, 231, 234, 239, 235, 238, 243, 237, 240, 245, 237, 240, 245, 236, 239, 244, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 231, 236, 242, 227, 232, 238, 227, 232, 236, 230, 235, 239, 232, 235, 240, 223, 227, 230, 205, 206, 208, 190, 190, 190, 166, 162, 161, 159, 154, 151, 147, 137, 136, 130, 116, 115, 118, 100, 100, 116, 96, 95, 127, 103, 103, 137, 111, 112, 144, 118, 121, 141, 114, 119, 138, 113, 119, 141, 116, 122, 147, 121, 130, 150, 125, 131, 147, 124, 130, 145, 123, 126, 148, 126, 129, 144, 122, 125, 140, 120, 122, 143, 122, 127, 150, 129, 138, 157, 135, 147, 160, 137, 153, 159, 138, 155, 151, 134, 152, 151, 134, 152, 152, 135, 154, 153, 134, 153, 153, 135, 151, 154, 133, 148, 154, 131, 147, 153, 131, 144, 152, 128, 142, 153, 126, 141, 151, 123, 138, 148, 120, 135, 147, 116, 134, 145, 114, 132, 144, 113, 131, 144, 113, 131, 141, 110, 128, 139, 108, 126, 136, 105, 121, 133, 102, 118, 128, 97, 113, 125, 94, 109, 121, 90, 105, 120, 90, 102, 119, 89, 99, 118, 88, 98, 116, 86, 94, 113, 84, 89, 111, 82, 87, 110, 81, 85, 110, 81, 85, 108, 82, 85, 103, 78, 81, 103, 81, 83, 104, 79, 82, 101, 76, 79, 103, 77, 80, 106, 80, 83, 106, 77, 81, 101, 72, 76, 88, 59, 63, 107, 78, 82, 127, 98, 102, 130, 101, 105, 117, 88, 90, 103, 77, 78, 102, 76, 77, 106, 82, 82, 105, 83, 86, 116, 95, 100, 122, 101, 106, 122, 103, 107, 130, 114, 117, 148, 133, 136, 155, 143, 145, 151, 141, 142, 154, 143, 147, 102, 91, 95, 93, 84, 87, 143, 134, 137, 165, 156, 159, 129, 120, 123, 98, 89, 94, 103, 92, 96, 128, 116, 118, 114, 102, 104, 115, 103, 105, 133, 121, 123, 151, 139, 141, 163, 153, 154, 158, 148, 149, 139, 129, 130, 147, 137, 138, 158, 148, 149, 157, 147, 148, 147, 138, 139, 141, 132, 133, 130, 121, 122, 125, 116, 117, 134, 124, 125, 135, 116, 120, 135, 114, 119, 127, 107, 109, 111, 91, 93, 92, 73, 75, 85, 66, 68, 90, 71, 73, 98, 79, 81, 91, 75, 75, 93, 77, 77, 94, 78, 78, 96, 80, 80, 97, 83, 82, 99, 85, 84, 100, 86, 83, 101, 87, 84, 92, 74, 74, 87, 69, 69, 83, 65, 65, 84, 66, 66, 89, 71, 71, 95, 77, 77, 97, 79, 77, 96, 78, 76, 99, 81, 79, 98, 80, 78, 98, 80, 78, 98, 80, 78, 91, 73, 69, 81, 63, 59, 77, 59, 55, 80, 61, 57, 79, 58, 57, 85, 64, 63, 87, 67, 66, 84, 66, 64, 84, 66, 64, 83, 69, 66, 79, 68, 66, 72, 62, 60, 88, 80, 77, 52, 47, 43, 43, 38, 34, 100, 97, 92, 142, 138, 135, 97, 93, 90, 53, 49, 46, 69, 65, 62, 77, 69, 67, 62, 54, 52, 73, 65, 63, 75, 67, 65, 68, 58, 56, 104, 94, 92, 135, 125, 123, 113, 103, 101, 91, 81, 79, 74, 64, 62, 82, 71, 67, 88, 77, 73, 76, 65, 61, 83, 72, 68, 104, 93, 89, 106, 95, 91, 102, 89, 83, 107, 92, 87, 115, 102, 96, 112, 99, 93, 101, 90, 84, 107, 96, 90, 107, 98, 91, 92, 83, 76, 118, 109, 102, 147, 138, 131, 83, 72, 66, 103, 92, 86, 116, 103, 97, 76, 63, 57, 110, 95, 90, 103, 88, 83, 86, 73, 67, 100, 87, 81, 102, 89, 83, 86, 73, 67, 68, 55, 49, 60, 47, 41, 73, 60, 54, 94, 81, 75, 123, 110, 104, 123, 110, 104, 106, 93, 87, 117, 104, 98, 117, 104, 98, 106, 93, 87, 123, 110, 104, 124, 111, 105, 128, 117, 111, 135, 124, 118, 141, 130, 124, 139, 128, 122, 127, 116, 110, 120, 109, 103, 129, 118, 112, 144, 133, 127, 144, 133, 127, 150, 139, 133, 147, 136, 130, 142, 131, 125, 138, 127, 121, 127, 116, 110, 125, 114, 108, 138, 127, 121, 142, 131, 127, 147, 136, 132, 141, 130, 126, 132, 121, 117, 132, 121, 117, 137, 126, 122, 142, 131, 127, 148, 137, 133, 139, 128, 124, 159, 148, 144, 152, 141, 137, 108, 97, 93, 142, 131, 127, 134, 123, 119, 145, 134, 130, 155, 144, 140, 151, 137, 134, 135, 124, 120, 137, 126, 122, 143, 134, 129, 139, 132, 126, 142, 135, 129, 138, 131, 125, 121, 112, 107, 139, 128, 124, 136, 125, 121, 156, 142, 139, 158, 144, 141, 132, 121, 117, 132, 123, 118, 148, 139, 134, 142, 135, 129, 160, 153, 145, 164, 157, 149, 161, 154, 146, 149, 142, 134, 139, 132, 126, 141, 134, 128, 152, 144, 141, 161, 153, 150, 145, 137, 134, 131, 123, 120, 113, 106, 100, 116, 109, 103, 127, 120, 112, 118, 111, 103, 120, 113, 105, 146, 139, 131, 157, 148, 143, 120, 111, 106, 155, 146, 141, 140, 131, 126, 112, 103, 98, 141, 132, 127, 134, 125, 120, 115, 106, 101, 137, 126, 122, 106, 95, 91, 107, 96, 92, 140, 129, 125, 151, 137, 134, 131, 117, 114, 123, 109, 106, 131, 117, 114, 116, 105, 101, 145, 134, 130, 130, 119, 115, 140, 129, 125, 124, 113, 109, 105, 94, 90, 142, 131, 127, 135, 124, 120, 116, 105, 101, 133, 122, 118, 141, 130, 126, 103, 92, 88, 97, 86, 82, 89, 78, 74, 134, 123, 119, 120, 109, 105, 124, 113, 107, 108, 97, 91, 113, 102, 96, 114, 103, 97, 107, 96, 92, 127, 116, 112, 133, 124, 119, 98, 89, 84, 99, 90, 85, 88, 79, 74, 89, 81, 78, 95, 87, 84, 103, 95, 92, 132, 124, 121, 83, 75, 72, 100, 92, 89, 92, 84, 81, 97, 89, 86, 127, 118, 113, 111, 102, 97, 115, 106, 101, 118, 109, 104, 64, 53, 49, 53, 42, 38, 81, 72, 67, 87, 78, 73, 69, 61, 58, 84, 76, 73, 108, 103, 100, 101, 96, 93, 147, 143, 142, 89, 88, 84, 145, 144, 140, 162, 163, 157, 83, 82, 77, 55, 54, 49, 85, 82, 77, 35, 32, 27, 76, 68, 65, 82, 74, 71, 73, 63, 61, 100, 90, 88, 70, 60, 58, 90, 80, 78, 94, 86, 83, 68, 60, 57, 89, 81, 78, 72, 64, 61, 48, 41, 35, 65, 58, 52, 61, 54, 48, 64, 57, 51, 82, 74, 71, 70, 62, 59, 53, 45, 42, 65, 60, 56, 84, 76, 73, 187, 182, 178, 87, 82, 79, 92, 87, 84, 90, 86, 83, 51, 47, 44, 108, 104, 101, 193, 189, 186, 117, 112, 109, 43, 35, 32, 70, 62, 59, 37, 29, 26, 75, 67, 65, 161, 153, 151, 97, 89, 87, 66, 58, 56, 107, 99, 97, 109, 101, 99, 71, 61, 60, 73, 63, 62, 97, 87, 85, 74, 64, 62, 61, 50, 48, 75, 64, 62, 46, 36, 34, 44, 34, 32, 91, 80, 78, 114, 103, 101, 111, 97, 96, 100, 86, 85, 87, 73, 70, 106, 92, 89, 87, 73, 70, 91, 77, 74, 95, 81, 78, 87, 73, 70, 86, 75, 69, 114, 103, 97, 112, 103, 96, 71, 62, 55, 92, 81, 77, 110, 99, 95, 114, 103, 99, 93, 82, 78, 99, 88, 84, 100, 89, 85, 91, 80, 76, 121, 110, 106, 102, 91, 87, 107, 96, 92, 84, 73, 69, 78, 67, 63, 97, 86, 82, 84, 73, 69, 69, 58, 54, 91, 80, 76, 110, 96, 93, 116, 102, 99, 101, 87, 84, 88, 74, 71, 87, 76, 72, 78, 67, 63, 84, 73, 69, 117, 106, 102, 126, 115, 111, 117, 106, 102, 114, 105, 100, 105, 96, 91, 92, 83, 78, 95, 86, 81, 99, 90, 85, 87, 78, 73, 76, 65, 61, 77, 66, 62, 91, 80, 76, 105, 94, 90, 93, 82, 78, 72, 61, 57, 83, 72, 68, 113, 102, 98, 118, 107, 103, 116, 105, 101, 123, 112, 108, 135, 124, 120, 136, 125, 121, 124, 113, 109, 117, 106, 102, 122, 108, 105, 128, 110, 108, 137, 117, 116, 150, 130, 129, 155, 137, 135, 149, 131, 129, 137, 119, 117, 130, 115, 112, 132, 117, 114, 129, 111, 109, 130, 112, 110, 135, 117, 115, 131, 111, 110, 118, 97, 96, 118, 97, 96, 120, 99, 98, 115, 91, 91, 107, 81, 80, 102, 76, 75, 98, 74, 74, 94, 73, 72, 89, 69, 70, 84, 65, 67, 86, 70, 73, 91, 76, 79, 82, 70, 72, 94, 82, 84, 97, 87, 88, 90, 80, 81, 91, 82, 83, 99, 90, 91, 96, 88, 86, 85, 75, 73, 81, 70, 68, 98, 87, 83, 133, 120, 114, 145, 132, 126, 128, 118, 109, 128, 118, 109, 145, 135, 126, 149, 139, 130, 172, 163, 156, 179, 172, 164, 186, 181, 175, 189, 186, 181, 188, 187, 185, 192, 192, 192, 201, 201, 201, 208, 209, 211, 214, 218, 221, 218, 221, 226, 224, 227, 232, 230, 233, 238, 234, 237, 242, 236, 239, 244, 236, 239, 244, 235, 238, 243, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 230, 233, 240, 231, 234, 241, 229, 234, 240, 228, 233, 237, 230, 235, 239, 228, 232, 235, 214, 218, 221, 201, 202, 204, 170, 170, 170, 165, 161, 160, 164, 156, 154, 151, 140, 138, 124, 108, 108, 116, 96, 97, 130, 106, 106, 140, 116, 116, 157, 133, 133, 149, 125, 125, 145, 120, 123, 147, 122, 126, 149, 124, 130, 146, 121, 127, 143, 118, 124, 142, 117, 121, 138, 116, 119, 139, 117, 119, 142, 120, 122, 146, 124, 127, 150, 127, 135, 153, 130, 140, 156, 132, 145, 156, 134, 147, 155, 137, 153, 154, 136, 152, 151, 132, 151, 151, 130, 147, 150, 129, 144, 151, 131, 143, 154, 132, 145, 157, 133, 147, 156, 129, 144, 154, 128, 141, 152, 124, 139, 149, 121, 136, 148, 117, 133, 146, 115, 131, 146, 115, 133, 146, 115, 133, 148, 117, 135, 146, 115, 133, 144, 113, 131, 141, 110, 126, 136, 105, 121, 131, 100, 115, 127, 96, 111, 124, 94, 106, 127, 97, 107, 124, 94, 104, 120, 90, 98, 116, 87, 92, 112, 83, 88, 110, 81, 86, 110, 81, 85, 108, 82, 85, 108, 83, 87, 104, 82, 85, 104, 79, 83, 103, 78, 82, 104, 77, 82, 105, 78, 83, 109, 80, 84, 111, 82, 86, 124, 93, 98, 126, 95, 100, 118, 88, 90, 101, 72, 74, 96, 67, 69, 102, 73, 75, 105, 77, 76, 98, 72, 73, 109, 87, 90, 91, 71, 73, 103, 83, 85, 123, 104, 106, 130, 114, 117, 144, 129, 132, 145, 133, 135, 122, 112, 113, 73, 63, 64, 89, 80, 81, 129, 120, 123, 157, 148, 151, 144, 135, 138, 116, 107, 110, 113, 102, 106, 125, 114, 118, 119, 110, 111, 128, 119, 120, 139, 129, 130, 143, 133, 134, 141, 131, 132, 138, 128, 129, 141, 131, 132, 147, 137, 138, 160, 148, 150, 155, 143, 145, 136, 124, 126, 113, 101, 103, 109, 97, 99, 119, 107, 109, 122, 110, 112, 116, 101, 104, 122, 103, 107, 114, 93, 98, 102, 82, 84, 96, 76, 78, 99, 80, 82, 108, 89, 91, 119, 100, 102, 125, 106, 108, 114, 98, 98, 110, 94, 94, 106, 90, 90, 104, 88, 88, 104, 90, 89, 107, 93, 92, 109, 95, 92, 110, 96, 93, 100, 82, 82, 102, 84, 84, 106, 88, 88, 108, 90, 90, 108, 90, 90, 104, 86, 86, 100, 82, 80, 97, 79, 77, 92, 74, 72, 97, 79, 77, 101, 83, 81, 97, 79, 77, 87, 69, 65, 79, 61, 57, 75, 57, 53, 76, 57, 53, 72, 51, 50, 79, 58, 57, 82, 62, 61, 77, 59, 57, 69, 51, 49, 64, 50, 47, 69, 58, 56, 76, 66, 64, 71, 63, 60, 74, 69, 65, 57, 52, 48, 45, 40, 36, 85, 81, 78, 137, 133, 130, 114, 110, 107, 49, 45, 42, 78, 70, 68, 73, 65, 63, 95, 87, 85, 89, 81, 79, 91, 83, 80, 84, 76, 73, 73, 63, 61, 131, 121, 119, 99, 89, 87, 83, 73, 71, 74, 65, 60, 77, 68, 63, 78, 67, 63, 74, 63, 59, 87, 76, 72, 110, 99, 95, 112, 98, 95, 109, 95, 92, 98, 84, 81, 105, 91, 88, 111, 100, 96, 101, 90, 86, 95, 86, 81, 100, 91, 86, 102, 93, 88, 150, 141, 136, 85, 74, 70, 87, 76, 72, 117, 103, 100, 74, 60, 57, 85, 71, 68, 109, 95, 92, 85, 71, 68, 103, 89, 86, 101, 87, 84, 79, 65, 62, 66, 52, 49, 69, 55, 52, 74, 60, 57, 76, 62, 59, 111, 97, 94, 116, 102, 99, 102, 88, 85, 101, 87, 84, 118, 104, 101, 110, 96, 93, 97, 83, 80, 110, 96, 93, 126, 115, 109, 131, 120, 114, 131, 120, 114, 128, 117, 111, 123, 112, 106, 119, 108, 102, 127, 116, 110, 143, 132, 126, 128, 117, 111, 152, 141, 135, 151, 140, 134, 131, 120, 114, 129, 118, 112, 136, 125, 119, 135, 124, 118, 131, 120, 114, 142, 131, 127, 141, 130, 126, 137, 126, 122, 132, 121, 117, 131, 120, 116, 136, 125, 121, 142, 131, 127, 147, 136, 132, 138, 127, 123, 151, 140, 136, 117, 106, 102, 119, 108, 104, 140, 129, 125, 128, 117, 113, 133, 122, 118, 145, 134, 130, 152, 138, 135, 126, 115, 111, 117, 106, 102, 129, 120, 115, 139, 132, 126, 139, 132, 126, 134, 125, 120, 127, 118, 113, 152, 141, 137, 129, 115, 112, 152, 137, 134, 148, 134, 131, 124, 113, 109, 134, 125, 120, 144, 135, 130, 156, 149, 143, 156, 147, 140, 155, 146, 137, 146, 137, 130, 147, 138, 131, 154, 145, 140, 141, 132, 127, 136, 126, 124, 156, 146, 144, 149, 139, 137, 122, 112, 110, 116, 107, 102, 109, 100, 95, 113, 104, 97, 122, 113, 106, 118, 109, 100, 132, 123, 116, 145, 136, 131, 127, 118, 113, 139, 130, 125, 157, 148, 143, 128, 119, 114, 126, 117, 112, 147, 138, 133, 107, 98, 93, 126, 115, 111, 131, 120, 116, 117, 106, 102, 139, 128, 124, 149, 135, 132, 117, 103, 100, 116, 102, 99, 124, 110, 107, 108, 97, 93, 130, 119, 115, 136, 125, 121, 146, 135, 131, 129, 118, 114, 111, 100, 96, 129, 118, 114, 127, 116, 112, 147, 136, 132, 119, 108, 104, 150, 139, 135, 91, 80, 76, 99, 88, 84, 101, 90, 86, 93, 82, 78, 130, 119, 115, 119, 108, 102, 120, 109, 103, 129, 118, 112, 125, 114, 108, 107, 96, 92, 118, 107, 103, 128, 119, 114, 103, 94, 89, 90, 81, 76, 88, 79, 74, 88, 80, 77, 93, 85, 82, 100, 92, 89, 105, 97, 94, 104, 96, 93, 101, 93, 90, 99, 91, 88, 92, 84, 81, 131, 122, 117, 116, 107, 102, 130, 121, 116, 112, 103, 98, 97, 86, 82, 69, 58, 54, 79, 70, 65, 76, 67, 62, 87, 79, 76, 103, 95, 92, 102, 97, 94, 86, 81, 78, 141, 137, 136, 108, 107, 103, 173, 172, 168, 143, 144, 138, 84, 83, 78, 79, 78, 73, 58, 55, 50, 38, 35, 30, 82, 74, 71, 74, 66, 63, 90, 80, 78, 101, 91, 89, 58, 48, 46, 94, 84, 82, 102, 94, 91, 47, 39, 36, 66, 58, 55, 80, 72, 69, 54, 46, 43, 50, 42, 39, 72, 64, 61, 77, 69, 66, 81, 76, 72, 76, 71, 67, 55, 50, 47, 73, 69, 66, 170, 165, 162, 132, 128, 125, 63, 59, 56, 104, 100, 97, 78, 74, 73, 74, 70, 69, 180, 176, 175, 125, 121, 118, 40, 35, 32, 71, 66, 63, 40, 35, 32, 52, 47, 44, 142, 134, 131, 137, 129, 126, 71, 61, 59, 72, 62, 60, 99, 89, 87, 86, 76, 74, 80, 70, 68, 83, 73, 71, 68, 58, 57, 52, 42, 41, 67, 57, 56, 86, 76, 75, 63, 53, 51, 62, 52, 50, 108, 97, 95, 97, 86, 84, 114, 100, 99, 87, 73, 72, 81, 67, 64, 93, 79, 76, 94, 80, 77, 86, 72, 69, 97, 83, 80, 80, 66, 63, 82, 71, 65, 112, 101, 95, 96, 87, 80, 76, 67, 60, 92, 81, 77, 119, 108, 104, 112, 101, 97, 90, 79, 75, 95, 84, 80, 102, 91, 87, 103, 92, 88, 112, 101, 97, 94, 83, 79, 82, 71, 67, 83, 72, 68, 89, 78, 74, 83, 72, 68, 77, 66, 62, 86, 75, 71, 97, 86, 82, 99, 88, 84, 102, 91, 87, 101, 90, 86, 101, 90, 86, 95, 84, 80, 77, 66, 62, 87, 76, 72, 123, 112, 108, 120, 111, 106, 104, 95, 90, 94, 85, 80, 98, 89, 84, 96, 87, 82, 84, 75, 70, 74, 67, 61, 75, 66, 61, 81, 70, 66, 77, 66, 62, 76, 65, 61, 86, 75, 71, 90, 79, 75, 78, 67, 63, 87, 76, 72, 117, 106, 102, 120, 109, 105, 127, 116, 112, 131, 120, 116, 129, 118, 114, 127, 116, 112, 130, 119, 115, 135, 124, 120, 139, 125, 122, 139, 124, 121, 153, 135, 133, 162, 144, 142, 159, 144, 141, 152, 137, 134, 147, 132, 129, 140, 125, 122, 135, 120, 117, 142, 127, 124, 143, 125, 123, 140, 122, 120, 135, 115, 114, 129, 108, 107, 124, 103, 102, 124, 100, 100, 124, 100, 100, 111, 87, 87, 111, 87, 87, 104, 79, 82, 91, 69, 71, 86, 66, 68, 90, 71, 73, 94, 78, 81, 95, 80, 83, 77, 65, 67, 98, 88, 89, 115, 105, 106, 120, 110, 111, 112, 104, 102, 91, 83, 81, 81, 71, 70, 89, 79, 77, 89, 78, 76, 98, 87, 83, 121, 108, 102, 130, 117, 111, 119, 106, 98, 122, 109, 101, 141, 131, 121, 157, 147, 137, 177, 168, 159, 181, 174, 166, 187, 180, 174, 189, 184, 180, 192, 188, 185, 193, 192, 190, 197, 195, 196, 199, 199, 201, 211, 212, 216, 213, 216, 221, 221, 224, 229, 229, 232, 237, 234, 237, 242, 236, 239, 244, 236, 239, 244, 235, 238, 243, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 231, 234, 241, 231, 234, 241, 228, 233, 239, 227, 232, 238, 229, 234, 238, 228, 233, 237, 217, 222, 226, 205, 209, 212, 188, 189, 191, 170, 168, 169, 159, 153, 153, 152, 142, 141, 144, 128, 128, 143, 125, 125, 146, 125, 124, 142, 118, 118, 141, 117, 115, 134, 110, 108, 133, 109, 109, 138, 113, 116, 144, 119, 123, 144, 119, 125, 145, 120, 124, 147, 122, 126, 146, 121, 124, 144, 122, 124, 147, 122, 125, 147, 125, 127, 150, 125, 131, 150, 127, 135, 153, 127, 138, 152, 128, 141, 156, 133, 149, 154, 133, 148, 154, 131, 147, 154, 131, 147, 154, 132, 145, 154, 132, 144, 156, 132, 145, 157, 133, 146, 154, 128, 141, 153, 127, 140, 152, 124, 138, 149, 121, 136, 149, 118, 134, 147, 116, 132, 147, 116, 132, 146, 115, 133, 149, 118, 136, 148, 117, 135, 146, 115, 133, 142, 111, 127, 138, 107, 123, 133, 102, 118, 129, 98, 113, 127, 96, 111, 130, 100, 112, 127, 97, 107, 123, 93, 103, 119, 89, 97, 116, 86, 94, 114, 85, 90, 114, 85, 90, 112, 85, 90, 110, 85, 89, 107, 85, 88, 107, 82, 86, 106, 81, 85, 107, 80, 85, 108, 81, 86, 111, 82, 86, 113, 84, 88, 116, 85, 90, 109, 78, 83, 97, 67, 69, 86, 56, 58, 84, 55, 57, 91, 62, 64, 95, 67, 66, 93, 64, 66, 73, 48, 51, 87, 65, 68, 110, 88, 91, 136, 117, 119, 152, 136, 139, 138, 123, 126, 101, 89, 91, 75, 65, 66, 101, 92, 93, 131, 122, 123, 151, 142, 145, 137, 128, 131, 115, 106, 109, 119, 110, 113, 141, 130, 134, 155, 144, 148, 147, 138, 139, 152, 146, 146, 158, 149, 150, 155, 146, 147, 151, 142, 143, 150, 141, 142, 151, 141, 142, 149, 139, 140, 124, 112, 114, 100, 88, 90, 95, 83, 85, 115, 100, 103, 120, 105, 108, 106, 90, 93, 101, 85, 88, 111, 95, 98, 114, 95, 99, 111, 92, 96, 108, 88, 90, 108, 89, 91, 113, 94, 96, 119, 100, 102, 124, 105, 107, 126, 107, 109, 117, 101, 101, 123, 107, 107, 126, 110, 110, 119, 103, 103, 108, 94, 93, 104, 90, 89, 110, 96, 93, 120, 105, 102, 122, 104, 104, 120, 102, 102, 116, 98, 98, 113, 95, 95, 110, 92, 92, 109, 91, 91, 110, 92, 90, 110, 92, 90, 84, 66, 64, 83, 65, 63, 81, 63, 61, 79, 61, 59, 76, 58, 54, 72, 54, 50, 67, 49, 45, 64, 45, 41, 65, 44, 43, 69, 48, 47, 72, 52, 51, 69, 51, 49, 63, 48, 45, 60, 46, 43, 64, 50, 49, 66, 56, 54, 83, 73, 71, 71, 63, 60, 58, 53, 49, 58, 53, 49, 74, 69, 66, 98, 94, 91, 122, 117, 114, 134, 129, 126, 68, 63, 60, 65, 57, 55, 85, 77, 75, 104, 96, 94, 111, 103, 100, 92, 84, 81, 72, 62, 60, 91, 81, 79, 126, 116, 114, 71, 61, 59, 57, 48, 43, 79, 70, 65, 75, 64, 60, 64, 53, 49, 78, 67, 63, 95, 84, 80, 110, 96, 93, 105, 91, 88, 95, 81, 78, 97, 86, 82, 105, 94, 90, 99, 88, 84, 93, 84, 79, 100, 91, 86, 94, 85, 80, 142, 133, 128, 97, 86, 82, 79, 68, 64, 98, 84, 81, 75, 61, 58, 79, 65, 62, 98, 84, 81, 89, 75, 72, 101, 87, 84, 96, 82, 79, 77, 63, 60, 70, 56, 53, 70, 56, 53, 70, 56, 53, 70, 56, 53, 100, 86, 83, 113, 99, 96, 104, 90, 87, 99, 85, 82, 113, 99, 96, 111, 97, 94, 103, 89, 86, 114, 100, 97, 118, 107, 101, 122, 111, 105, 121, 110, 104, 122, 111, 105, 125, 114, 108, 124, 113, 107, 131, 120, 114, 147, 136, 130, 127, 116, 110, 144, 133, 127, 143, 132, 126, 129, 118, 112, 129, 118, 112, 133, 122, 116, 133, 122, 116, 136, 125, 119, 141, 130, 126, 138, 127, 123, 137, 126, 122, 137, 126, 122, 133, 122, 118, 131, 120, 116, 137, 126, 122, 147, 136, 132, 149, 138, 134, 155, 144, 140, 118, 107, 103, 116, 105, 101, 136, 125, 121, 125, 114, 110, 126, 115, 111, 137, 126, 122, 158, 144, 141, 128, 114, 111, 115, 104, 100, 131, 122, 117, 138, 131, 125, 127, 120, 114, 122, 113, 108, 127, 118, 113, 139, 125, 122, 122, 108, 105, 142, 127, 124, 139, 124, 121, 123, 109, 106, 127, 116, 112, 130, 121, 116, 142, 135, 127, 149, 140, 133, 142, 133, 124, 141, 132, 125, 152, 143, 136, 153, 144, 139, 138, 129, 124, 137, 127, 125, 153, 143, 141, 147, 137, 135, 124, 114, 112, 122, 113, 108, 117, 108, 103, 123, 114, 107, 131, 122, 115, 125, 116, 107, 136, 127, 118, 142, 133, 128, 122, 113, 108, 132, 123, 118, 153, 144, 139, 127, 118, 113, 123, 114, 109, 144, 135, 130, 113, 104, 99, 119, 108, 104, 138, 127, 123, 131, 120, 116, 141, 130, 126, 144, 130, 127, 123, 109, 106, 124, 110, 107, 126, 112, 109, 116, 105, 101, 139, 128, 124, 142, 131, 127, 145, 134, 130, 132, 121, 117, 121, 110, 106, 135, 124, 120, 129, 118, 114, 143, 132, 128, 133, 122, 118, 151, 140, 136, 99, 88, 84, 101, 90, 86, 97, 86, 82, 98, 87, 83, 121, 110, 106, 114, 103, 97, 111, 100, 94, 120, 109, 103, 118, 107, 101, 103, 92, 88, 116, 105, 101, 132, 123, 118, 119, 110, 105, 86, 77, 72, 88, 79, 74, 93, 85, 82, 103, 95, 92, 111, 103, 100, 112, 104, 101, 106, 98, 95, 100, 92, 89, 90, 82, 79, 78, 70, 67, 120, 111, 106, 119, 110, 105, 134, 125, 120, 116, 107, 102, 105, 94, 90, 92, 81, 77, 94, 85, 80, 85, 76, 71, 86, 78, 75, 94, 86, 83, 97, 92, 89, 88, 83, 80, 138, 134, 133, 100, 99, 95, 170, 169, 165, 140, 141, 135, 91, 90, 85, 92, 91, 86, 71, 68, 63, 38, 35, 30, 59, 51, 48, 44, 36, 33, 72, 62, 60, 93, 83, 81, 59, 49, 47, 88, 78, 76, 93, 85, 82, 44, 36, 33, 57, 49, 46, 59, 51, 48, 71, 63, 60, 45, 37, 34, 68, 60, 57, 117, 112, 108, 103, 98, 94, 61, 58, 53, 91, 87, 84, 154, 150, 147, 143, 139, 136, 72, 68, 65, 107, 103, 100, 98, 94, 91, 64, 60, 59, 144, 140, 139, 161, 157, 156, 68, 64, 63, 59, 54, 51, 56, 51, 48, 38, 33, 30, 94, 89, 86, 138, 130, 127, 104, 96, 93, 87, 77, 75, 79, 69, 67, 108, 98, 96, 95, 85, 83, 87, 77, 75, 83, 73, 71, 66, 56, 55, 53, 43, 42, 64, 54, 53, 83, 73, 72, 54, 44, 42, 55, 45, 43, 96, 85, 83, 88, 77, 75, 107, 93, 92, 93, 79, 78, 93, 79, 76, 101, 87, 84, 92, 78, 75, 79, 65, 62, 84, 70, 67, 75, 61, 58, 79, 68, 62, 100, 89, 83, 89, 80, 73, 82, 73, 66, 95, 84, 80, 107, 96, 92, 106, 95, 91, 98, 87, 83, 97, 86, 82, 97, 86, 82, 101, 90, 86, 111, 100, 96, 104, 93, 89, 79, 68, 64, 65, 54, 50, 71, 60, 56, 74, 63, 59, 76, 65, 61, 91, 80, 76, 109, 98, 94, 108, 97, 93, 92, 81, 77, 101, 90, 86, 112, 101, 97, 93, 82, 78, 79, 68, 64, 97, 86, 82, 117, 106, 102, 90, 81, 76, 93, 84, 79, 91, 82, 77, 81, 72, 67, 73, 64, 59, 77, 68, 63, 87, 80, 74, 97, 90, 84, 98, 87, 83, 77, 66, 62, 94, 83, 79, 106, 95, 91, 85, 74, 70, 94, 83, 79, 118, 107, 103, 109, 98, 94, 118, 107, 103, 124, 113, 109, 123, 112, 108, 116, 105, 101, 116, 105, 101, 125, 114, 110, 132, 121, 117, 134, 120, 117, 144, 129, 126, 149, 134, 131, 152, 137, 134, 149, 134, 131, 147, 132, 129, 145, 130, 127, 140, 125, 122, 134, 119, 116, 135, 120, 117, 136, 121, 118, 137, 117, 116, 130, 110, 109, 122, 101, 100, 116, 95, 94, 118, 94, 94, 120, 96, 96, 113, 89, 89, 113, 92, 91, 110, 88, 90, 102, 82, 83, 96, 77, 79, 91, 75, 76, 85, 70, 73, 77, 65, 67, 80, 70, 71, 99, 89, 90, 113, 103, 104, 116, 106, 105, 110, 102, 100, 96, 88, 86, 94, 84, 83, 108, 98, 96, 106, 95, 91, 99, 88, 84, 106, 93, 87, 115, 102, 96, 118, 105, 97, 133, 120, 112, 156, 146, 136, 169, 159, 149, 176, 166, 157, 180, 171, 162, 186, 177, 170, 191, 184, 178, 192, 187, 183, 195, 191, 188, 200, 196, 195, 201, 199, 200, 210, 211, 215, 213, 216, 221, 220, 223, 228, 228, 231, 236, 233, 236, 241, 236, 239, 244, 236, 239, 244, 236, 239, 244, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 231, 234, 241, 231, 234, 241, 228, 233, 239, 226, 231, 237, 226, 233, 239, 227, 235, 238, 220, 228, 231, 213, 218, 221, 198, 202, 205, 175, 175, 177, 158, 154, 153, 150, 142, 140, 146, 132, 131, 147, 131, 131, 144, 124, 123, 131, 110, 107, 116, 92, 88, 112, 88, 84, 114, 90, 88, 123, 99, 99, 133, 106, 111, 138, 111, 116, 143, 116, 121, 148, 121, 126, 150, 124, 127, 149, 124, 127, 149, 123, 124, 147, 122, 125, 148, 121, 126, 146, 121, 127, 146, 119, 128, 145, 119, 130, 149, 125, 138, 150, 126, 140, 152, 128, 141, 153, 129, 142, 154, 131, 141, 154, 131, 141, 156, 130, 141, 155, 129, 140, 153, 125, 137, 152, 124, 136, 151, 123, 135, 150, 122, 136, 148, 120, 134, 147, 119, 133, 146, 118, 132, 146, 118, 133, 148, 120, 135, 148, 120, 135, 146, 118, 133, 143, 115, 130, 139, 111, 126, 135, 107, 121, 131, 103, 117, 129, 101, 115, 132, 104, 116, 129, 102, 111, 125, 98, 107, 121, 94, 101, 118, 91, 98, 117, 90, 97, 116, 89, 96, 116, 91, 97, 112, 89, 95, 110, 89, 94, 109, 86, 92, 110, 85, 91, 110, 83, 88, 110, 83, 88, 113, 84, 88, 114, 85, 89, 108, 78, 80, 96, 66, 68, 85, 55, 57, 82, 52, 54, 82, 52, 52, 81, 51, 51, 81, 51, 51, 81, 52, 54, 73, 47, 50, 119, 94, 98, 141, 119, 122, 140, 120, 122, 134, 115, 117, 103, 89, 89, 85, 73, 75, 103, 93, 94, 129, 120, 121, 143, 134, 135, 139, 130, 131, 121, 112, 113, 126, 115, 119, 152, 141, 145, 169, 157, 161, 165, 154, 158, 163, 154, 155, 163, 157, 157, 158, 149, 150, 144, 135, 136, 136, 127, 128, 135, 126, 127, 129, 119, 120, 119, 107, 109, 98, 83, 86, 108, 93, 96, 114, 99, 102, 109, 93, 96, 103, 87, 90, 111, 92, 96, 123, 104, 108, 132, 113, 117, 120, 101, 105, 115, 99, 102, 113, 94, 96, 109, 93, 94, 111, 95, 96, 113, 97, 98, 113, 97, 98, 113, 97, 98, 122, 106, 106, 128, 112, 112, 132, 116, 116, 127, 111, 111, 118, 102, 102, 114, 98, 98, 118, 103, 100, 124, 109, 106, 128, 110, 110, 124, 106, 106, 117, 99, 99, 110, 92, 92, 103, 85, 85, 99, 81, 81, 96, 78, 76, 95, 77, 75, 88, 70, 68, 81, 63, 61, 75, 57, 55, 74, 56, 54, 78, 60, 56, 78, 60, 56, 73, 55, 51, 68, 50, 46, 64, 44, 43, 65, 45, 44, 67, 47, 46, 67, 49, 47, 64, 49, 46, 62, 48, 45, 61, 47, 46, 58, 48, 46, 82, 72, 70, 71, 63, 60, 69, 61, 58, 70, 62, 59, 61, 53, 51, 61, 56, 53, 103, 95, 93, 150, 145, 142, 136, 131, 128, 83, 78, 75, 56, 48, 46, 95, 87, 85, 121, 113, 110, 107, 99, 96, 95, 87, 84, 76, 68, 65, 124, 114, 112, 86, 76, 74, 59, 50, 45, 65, 56, 51, 74, 65, 60, 69, 60, 55, 71, 62, 57, 87, 76, 72, 102, 88, 85, 97, 83, 80, 90, 79, 75, 90, 79, 75, 99, 88, 84, 96, 87, 82, 88, 79, 74, 96, 87, 82, 82, 73, 68, 126, 117, 112, 114, 105, 100, 69, 60, 55, 69, 58, 54, 78, 67, 63, 75, 61, 58, 84, 70, 67, 95, 81, 78, 100, 86, 83, 89, 75, 72, 77, 63, 60, 79, 65, 62, 74, 60, 57, 65, 51, 48, 64, 50, 47, 87, 73, 70, 110, 96, 93, 106, 92, 89, 93, 79, 76, 101, 87, 84, 109, 95, 92, 110, 96, 93, 119, 105, 102, 112, 101, 95, 114, 103, 97, 110, 99, 93, 114, 103, 97, 126, 115, 109, 129, 118, 112, 134, 123, 117, 149, 138, 132, 128, 117, 111, 135, 124, 118, 132, 121, 115, 126, 115, 109, 128, 117, 111, 127, 116, 110, 130, 119, 113, 140, 129, 123, 139, 128, 124, 134, 123, 119, 137, 126, 122, 143, 132, 128, 136, 125, 121, 125, 114, 110, 130, 119, 115, 145, 134, 130, 146, 135, 131, 147, 136, 132, 110, 99, 95, 107, 96, 92, 134, 123, 119, 131, 120, 116, 130, 119, 115, 143, 132, 128, 160, 146, 143, 130, 116, 113, 116, 105, 101, 131, 122, 117, 136, 129, 123, 117, 110, 104, 113, 104, 99, 127, 118, 113, 133, 119, 116, 126, 112, 109, 137, 122, 119, 134, 119, 116, 127, 113, 110, 126, 115, 111, 123, 114, 109, 134, 125, 118, 143, 134, 127, 123, 114, 105, 128, 119, 112, 149, 140, 133, 149, 140, 135, 135, 126, 121, 137, 128, 123, 148, 139, 134, 145, 136, 131, 127, 118, 113, 128, 119, 114, 125, 116, 111, 131, 122, 115, 139, 130, 123, 130, 121, 112, 137, 128, 119, 138, 129, 124, 117, 108, 103, 123, 114, 109, 148, 139, 134, 127, 118, 113, 118, 109, 104, 141, 132, 127, 124, 115, 110, 108, 97, 93, 135, 124, 120, 137, 126, 122, 136, 125, 121, 135, 121, 118, 126, 112, 109, 127, 113, 110, 123, 109, 106, 117, 106, 102, 139, 128, 124, 137, 126, 122, 130, 119, 115, 123, 112, 108, 122, 111, 107, 130, 119, 115, 120, 109, 105, 135, 124, 120, 151, 140, 136, 150, 139, 135, 111, 100, 96, 104, 93, 89, 92, 81, 77, 106, 95, 91, 110, 99, 95, 102, 91, 85, 98, 87, 81, 115, 104, 98, 119, 108, 102, 107, 96, 92, 116, 105, 101, 128, 119, 114, 127, 118, 113, 85, 76, 71, 91, 82, 77, 101, 93, 90, 115, 107, 104, 124, 116, 113, 122, 114, 111, 112, 104, 101, 102, 94, 91, 106, 98, 95, 84, 76, 73, 119, 110, 105, 129, 120, 115, 132, 123, 118, 105, 96, 91, 92, 81, 77, 95, 84, 80, 103, 94, 89, 99, 90, 85, 99, 91, 88, 90, 82, 79, 85, 80, 77, 80, 75, 72, 134, 130, 129, 107, 106, 102, 171, 170, 166, 133, 134, 128, 90, 89, 84, 93, 92, 87, 76, 73, 68, 38, 35, 30, 39, 31, 28, 26, 18, 15, 67, 57, 55, 94, 84, 82, 60, 50, 48, 73, 63, 61, 78, 70, 67, 47, 39, 36, 57, 49, 46, 42, 34, 31, 74, 66, 63, 38, 30, 27, 76, 71, 67, 129, 124, 120, 78, 73, 70, 61, 57, 54, 141, 137, 134, 173, 172, 168, 82, 81, 77, 59, 58, 54, 98, 97, 95, 82, 81, 79, 125, 121, 120, 178, 174, 173, 100, 96, 95, 64, 60, 59, 50, 46, 45, 38, 34, 33, 83, 78, 75, 126, 121, 118, 116, 108, 105, 95, 87, 84, 92, 83, 78, 92, 81, 77, 104, 93, 89, 94, 83, 79, 86, 75, 73, 74, 63, 61, 59, 49, 48, 51, 41, 40, 58, 49, 50, 79, 71, 69, 55, 45, 43, 59, 49, 47, 90, 79, 77, 84, 73, 71, 102, 88, 87, 102, 88, 87, 104, 90, 87, 103, 89, 86, 86, 72, 69, 74, 60, 57, 71, 57, 54, 65, 51, 48, 71, 60, 54, 85, 74, 68, 82, 73, 66, 90, 81, 74, 111, 100, 96, 105, 94, 90, 108, 97, 93, 108, 97, 93, 96, 85, 81, 92, 81, 77, 99, 88, 84, 101, 90, 86, 82, 71, 67, 62, 51, 47, 61, 50, 46, 86, 75, 71, 100, 89, 85, 90, 79, 75, 87, 76, 72, 98, 87, 83, 103, 92, 90, 89, 78, 76, 107, 96, 94, 111, 100, 98, 82, 71, 69, 87, 76, 74, 104, 94, 92, 90, 80, 78, 79, 69, 67, 93, 83, 81, 94, 86, 83, 81, 73, 70, 77, 69, 66, 91, 83, 80, 105, 97, 94, 107, 99, 96, 82, 71, 67, 74, 63, 59, 94, 83, 79, 102, 91, 87, 89, 78, 74, 105, 94, 90, 119, 108, 104, 96, 85, 81, 103, 92, 88, 109, 98, 94, 105, 94, 90, 95, 84, 80, 101, 90, 86, 123, 112, 108, 136, 125, 121, 136, 122, 119, 148, 133, 130, 148, 133, 130, 145, 130, 127, 139, 125, 122, 139, 125, 122, 141, 127, 124, 139, 125, 122, 133, 119, 116, 129, 114, 111, 130, 115, 112, 131, 111, 110, 121, 101, 100, 111, 90, 89, 106, 85, 84, 111, 87, 87, 117, 93, 93, 107, 85, 87, 106, 86, 87, 102, 82, 84, 96, 77, 79, 94, 75, 79, 88, 72, 75, 76, 61, 64, 63, 51, 53, 79, 69, 70, 95, 85, 86, 104, 96, 94, 106, 98, 96, 104, 96, 94, 97, 89, 86, 105, 95, 93, 125, 115, 113, 123, 112, 108, 103, 92, 88, 100, 87, 81, 112, 99, 93, 129, 116, 108, 153, 140, 132, 173, 160, 151, 175, 165, 155, 173, 163, 153, 177, 168, 159, 184, 175, 168, 189, 182, 176, 192, 187, 183, 196, 191, 188, 201, 196, 193, 202, 200, 201, 209, 210, 214, 211, 214, 219, 219, 222, 227, 226, 229, 234, 232, 235, 240, 235, 238, 243, 236, 239, 244, 236, 239, 244, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 232, 235, 242, 232, 235, 242, 228, 233, 239, 225, 230, 236, 225, 232, 238, 228, 235, 241, 226, 233, 239, 219, 227, 230, 205, 210, 214, 188, 189, 191, 171, 169, 170, 156, 147, 148, 140, 128, 128, 138, 122, 122, 137, 117, 116, 125, 104, 101, 100, 76, 72, 98, 75, 69, 101, 77, 75, 110, 86, 86, 121, 95, 98, 127, 100, 105, 135, 108, 113, 143, 116, 121, 149, 122, 127, 148, 122, 125, 147, 121, 124, 146, 120, 123, 145, 118, 123, 143, 116, 121, 144, 114, 124, 142, 115, 124, 143, 115, 127, 146, 118, 130, 149, 121, 133, 152, 125, 134, 153, 126, 135, 153, 126, 133, 152, 125, 132, 150, 123, 130, 150, 123, 130, 150, 123, 130, 151, 124, 133, 150, 123, 132, 150, 122, 134, 149, 121, 133, 148, 120, 132, 148, 120, 134, 150, 122, 136, 150, 122, 137, 148, 120, 135, 146, 118, 133, 143, 115, 129, 139, 111, 125, 136, 108, 122, 134, 106, 120, 134, 106, 118, 132, 104, 116, 128, 100, 112, 124, 97, 106, 121, 94, 103, 120, 93, 102, 120, 93, 102, 120, 94, 103, 115, 92, 98, 113, 92, 97, 113, 90, 96, 111, 88, 94, 113, 86, 91, 112, 85, 90, 113, 84, 88, 113, 84, 88, 107, 77, 79, 98, 68, 70, 94, 64, 66, 95, 65, 65, 89, 59, 59, 77, 47, 47, 75, 45, 45, 82, 52, 52, 116, 87, 91, 142, 115, 120, 145, 120, 124, 121, 101, 103, 98, 79, 81, 86, 72, 72, 105, 93, 95, 144, 134, 135, 120, 111, 112, 125, 116, 117, 129, 120, 121, 141, 131, 132, 163, 152, 156, 173, 161, 165, 169, 157, 161, 165, 153, 157, 159, 149, 150, 155, 146, 147, 142, 132, 133, 124, 114, 115, 119, 109, 110, 122, 112, 113, 116, 104, 106, 100, 88, 90, 111, 96, 99, 132, 117, 120, 138, 122, 125, 122, 106, 109, 118, 99, 103, 131, 112, 116, 139, 120, 124, 133, 114, 118, 121, 105, 108, 113, 98, 101, 105, 91, 91, 100, 86, 86, 101, 87, 87, 106, 90, 91, 109, 93, 94, 111, 95, 96, 135, 119, 119, 130, 114, 114, 124, 108, 108, 122, 106, 106, 122, 106, 106, 118, 102, 102, 110, 95, 92, 103, 88, 85, 94, 76, 76, 96, 78, 78, 99, 81, 81, 101, 83, 83, 100, 82, 82, 96, 78, 78, 91, 73, 71, 88, 70, 68, 93, 75, 73, 88, 70, 68, 82, 64, 62, 81, 63, 61, 83, 65, 61, 86, 68, 64, 86, 68, 64, 85, 67, 63, 79, 59, 58, 76, 58, 56, 74, 56, 54, 74, 59, 56, 76, 61, 58, 73, 59, 56, 66, 55, 53, 61, 50, 48, 75, 65, 63, 83, 75, 72, 89, 81, 78, 81, 73, 70, 68, 60, 58, 67, 57, 56, 77, 67, 66, 88, 80, 78, 152, 147, 144, 129, 124, 121, 81, 73, 71, 78, 70, 68, 86, 78, 75, 106, 98, 95, 129, 121, 118, 77, 69, 66, 85, 75, 73, 118, 108, 106, 92, 83, 78, 54, 45, 40, 71, 62, 57, 84, 75, 70, 78, 69, 64, 90, 81, 76, 89, 75, 72, 86, 72, 69, 87, 76, 72, 84, 73, 69, 94, 85, 80, 96, 87, 82, 81, 72, 67, 87, 78, 73, 71, 62, 57, 106, 97, 92, 127, 118, 113, 67, 58, 53, 48, 37, 33, 82, 71, 67, 78, 64, 61, 78, 64, 61, 99, 85, 82, 102, 88, 85, 88, 74, 71, 80, 66, 63, 90, 76, 73, 83, 69, 66, 65, 51, 48, 63, 49, 46, 81, 67, 64, 110, 96, 93, 107, 93, 90, 83, 69, 66, 83, 69, 66, 101, 87, 84, 113, 99, 96, 120, 106, 103, 115, 104, 98, 116, 105, 99, 105, 94, 88, 108, 97, 91, 126, 115, 109, 129, 118, 112, 129, 118, 112, 144, 133, 127, 132, 121, 115, 131, 120, 114, 125, 114, 108, 124, 113, 107, 127, 116, 110, 121, 110, 104, 123, 112, 106, 140, 129, 123, 137, 126, 122, 130, 119, 115, 135, 124, 120, 146, 135, 131, 139, 128, 124, 121, 110, 106, 125, 114, 110, 144, 133, 129, 146, 135, 131, 140, 129, 125, 105, 94, 90, 100, 89, 85, 130, 119, 115, 134, 123, 119, 131, 120, 116, 147, 136, 132, 156, 141, 138, 138, 124, 121, 123, 109, 106, 126, 115, 111, 131, 122, 117, 119, 112, 106, 116, 107, 102, 128, 117, 113, 133, 119, 116, 132, 118, 115, 131, 116, 113, 127, 112, 109, 126, 112, 109, 123, 112, 108, 121, 110, 106, 128, 119, 112, 139, 130, 123, 105, 96, 87, 105, 96, 89, 134, 125, 118, 140, 131, 126, 134, 125, 120, 137, 128, 123, 141, 132, 127, 147, 138, 133, 132, 123, 118, 134, 125, 120, 128, 119, 112, 133, 124, 117, 141, 132, 125, 130, 121, 112, 134, 125, 116, 136, 127, 122, 117, 108, 103, 118, 109, 104, 145, 136, 131, 130, 121, 116, 117, 108, 103, 139, 130, 125, 135, 126, 121, 101, 90, 86, 117, 106, 102, 124, 113, 109, 125, 114, 110, 126, 112, 109, 122, 108, 105, 120, 106, 103, 115, 101, 98, 116, 105, 101, 137, 126, 122, 132, 121, 117, 116, 105, 101, 116, 105, 101, 124, 113, 109, 124, 113, 109, 114, 103, 99, 123, 112, 108, 161, 150, 146, 144, 133, 129, 121, 110, 106, 107, 96, 92, 91, 80, 76, 114, 103, 99, 104, 93, 89, 93, 82, 76, 91, 80, 74, 118, 107, 101, 127, 116, 110, 117, 106, 102, 116, 105, 101, 113, 104, 99, 118, 109, 104, 91, 82, 77, 97, 88, 83, 108, 100, 97, 121, 113, 110, 130, 122, 119, 128, 120, 117, 118, 110, 107, 108, 100, 97, 128, 120, 117, 96, 88, 85, 120, 111, 106, 137, 128, 123, 126, 117, 112, 92, 83, 78, 75, 64, 60, 89, 78, 74, 101, 92, 87, 112, 103, 98, 121, 113, 110, 94, 86, 83, 73, 68, 65, 68, 63, 60, 134, 130, 129, 132, 131, 127, 176, 175, 171, 125, 126, 120, 80, 79, 74, 75, 74, 69, 66, 63, 58, 39, 36, 31, 35, 27, 24, 35, 27, 24, 85, 75, 73, 103, 93, 91, 61, 51, 49, 59, 49, 47, 69, 61, 58, 61, 53, 50, 69, 61, 58, 41, 33, 30, 65, 57, 54, 46, 38, 35, 103, 98, 94, 94, 89, 85, 39, 35, 32, 107, 106, 102, 167, 166, 162, 114, 115, 110, 47, 48, 43, 59, 60, 55, 59, 58, 56, 121, 120, 118, 174, 170, 169, 125, 121, 120, 83, 79, 78, 91, 87, 86, 21, 17, 16, 57, 53, 52, 145, 140, 137, 116, 111, 108, 92, 84, 81, 117, 107, 105, 84, 73, 69, 94, 83, 79, 88, 77, 73, 82, 71, 67, 79, 68, 66, 61, 50, 48, 51, 41, 40, 51, 43, 41, 54, 45, 46, 77, 68, 69, 69, 59, 58, 74, 64, 62, 92, 81, 79, 92, 81, 79, 102, 88, 87, 110, 96, 95, 108, 94, 91, 91, 77, 74, 78, 64, 61, 82, 68, 65, 69, 55, 52, 52, 38, 35, 61, 50, 44, 78, 67, 61, 84, 75, 68, 96, 87, 80, 117, 106, 102, 106, 95, 91, 110, 99, 95, 106, 95, 91, 89, 78, 74, 97, 86, 82, 110, 99, 95, 99, 88, 84, 59, 48, 44, 54, 43, 39, 68, 57, 53, 103, 92, 88, 115, 104, 100, 88, 77, 73, 66, 55, 51, 71, 60, 56, 75, 64, 62, 89, 78, 76, 110, 99, 97, 102, 91, 89, 90, 79, 77, 114, 103, 101, 122, 112, 110, 88, 78, 76, 91, 81, 79, 93, 83, 81, 92, 84, 81, 95, 87, 84, 104, 96, 93, 109, 101, 98, 100, 92, 89, 84, 76, 73, 49, 40, 35, 76, 65, 61, 84, 73, 69, 90, 79, 75, 109, 98, 94, 106, 95, 91, 88, 77, 73, 88, 77, 73, 77, 66, 62, 89, 78, 74, 93, 82, 78, 90, 79, 75, 103, 92, 88, 131, 120, 116, 144, 133, 129, 140, 129, 125, 144, 130, 127, 148, 133, 130, 145, 131, 128, 138, 124, 121, 134, 120, 117, 136, 122, 119, 137, 123, 120, 136, 122, 119, 130, 115, 112, 129, 114, 111, 126, 106, 105, 114, 94, 93, 103, 82, 81, 100, 79, 78, 110, 86, 86, 119, 95, 95, 107, 87, 88, 102, 84, 84, 94, 75, 77, 87, 71, 72, 89, 73, 76, 90, 75, 78, 81, 69, 71, 69, 59, 60, 74, 64, 65, 87, 77, 76, 92, 84, 82, 94, 86, 83, 96, 88, 85, 93, 85, 82, 103, 93, 91, 125, 116, 111, 127, 116, 112, 108, 97, 93, 110, 97, 91, 129, 116, 110, 148, 135, 127, 166, 153, 144, 174, 161, 152, 168, 155, 146, 172, 159, 150, 175, 165, 155, 183, 173, 164, 188, 179, 172, 192, 185, 179, 196, 191, 187, 201, 196, 193, 204, 200, 199, 207, 208, 212, 209, 212, 217, 216, 219, 224, 223, 226, 231, 229, 232, 237, 233, 236, 241, 235, 238, 243, 236, 239, 244, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 240, 243, 248, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 231, 234, 241, 232, 235, 242, 229, 234, 240, 226, 231, 237, 225, 232, 240, 228, 237, 244, 227, 236, 243, 223, 232, 237, 222, 227, 231, 205, 209, 212, 187, 187, 189, 168, 162, 162, 151, 141, 140, 150, 136, 135, 147, 129, 127, 133, 112, 109, 106, 82, 78, 104, 79, 74, 106, 80, 79, 112, 86, 87, 118, 92, 95, 123, 96, 101, 133, 103, 111, 142, 113, 118, 150, 121, 126, 150, 121, 125, 150, 121, 125, 149, 120, 124, 148, 119, 124, 148, 119, 124, 149, 117, 128, 148, 116, 127, 144, 112, 123, 146, 115, 123, 150, 119, 127, 153, 122, 128, 153, 124, 129, 153, 124, 129, 151, 122, 127, 150, 121, 126, 149, 120, 125, 150, 121, 126, 150, 123, 130, 151, 124, 131, 152, 125, 134, 151, 124, 133, 149, 123, 132, 149, 123, 134, 151, 123, 137, 151, 123, 137, 150, 122, 136, 149, 121, 135, 146, 118, 132, 143, 115, 129, 140, 112, 126, 139, 111, 125, 135, 107, 121, 133, 105, 119, 129, 101, 115, 126, 98, 110, 124, 96, 108, 123, 95, 107, 123, 95, 107, 123, 97, 108, 117, 94, 102, 116, 95, 102, 116, 93, 99, 114, 91, 97, 115, 88, 93, 113, 86, 91, 113, 84, 88, 113, 82, 87, 109, 77, 80, 104, 72, 75, 103, 71, 72, 102, 70, 71, 91, 59, 60, 81, 50, 48, 89, 58, 56, 104, 74, 74, 137, 108, 112, 115, 89, 92, 105, 80, 84, 99, 77, 80, 94, 75, 77, 106, 92, 92, 122, 110, 110, 119, 109, 108, 109, 100, 101, 138, 129, 130, 158, 148, 149, 163, 153, 154, 166, 154, 156, 160, 145, 148, 155, 140, 145, 164, 149, 154, 150, 138, 142, 143, 131, 135, 129, 117, 121, 116, 104, 108, 118, 106, 110, 127, 115, 119, 127, 112, 117, 117, 102, 107, 127, 110, 116, 112, 95, 101, 117, 100, 106, 143, 126, 132, 152, 135, 141, 131, 114, 120, 109, 92, 98, 104, 87, 93, 107, 95, 97, 104, 92, 94, 101, 89, 89, 103, 91, 91, 109, 97, 97, 117, 103, 103, 122, 108, 108, 124, 110, 110, 137, 123, 122, 129, 115, 114, 120, 104, 104, 114, 98, 98, 112, 94, 94, 104, 86, 86, 91, 73, 71, 80, 62, 60, 90, 72, 72, 92, 74, 74, 95, 77, 77, 96, 78, 78, 95, 77, 77, 91, 73, 73, 85, 67, 65, 82, 64, 62, 89, 71, 69, 90, 72, 70, 89, 71, 69, 85, 67, 65, 82, 64, 60, 84, 66, 62, 90, 72, 68, 95, 77, 73, 95, 77, 75, 90, 72, 70, 86, 68, 66, 84, 69, 66, 86, 71, 68, 84, 70, 67, 76, 65, 63, 70, 59, 57, 74, 64, 62, 90, 80, 78, 99, 89, 87, 93, 83, 81, 88, 78, 77, 87, 75, 75, 77, 65, 65, 61, 51, 50, 68, 60, 58, 134, 129, 126, 138, 133, 130, 98, 93, 90, 58, 50, 47, 81, 73, 70, 125, 117, 114, 79, 71, 68, 62, 54, 51, 114, 106, 103, 123, 114, 109, 80, 71, 66, 60, 51, 46, 78, 69, 64, 89, 80, 75, 86, 77, 72, 73, 59, 58, 73, 59, 58, 84, 73, 71, 79, 68, 66, 90, 80, 78, 96, 86, 84, 71, 63, 60, 76, 68, 65, 66, 58, 55, 84, 76, 73, 129, 119, 117, 77, 67, 65, 40, 29, 27, 82, 71, 69, 87, 73, 72, 80, 66, 65, 95, 81, 80, 106, 92, 91, 93, 79, 78, 85, 71, 70, 99, 85, 84, 93, 79, 78, 72, 58, 57, 69, 55, 54, 83, 69, 68, 110, 96, 95, 107, 93, 92, 76, 62, 61, 69, 55, 54, 91, 77, 76, 111, 97, 96, 118, 104, 101, 122, 111, 105, 122, 111, 105, 105, 94, 88, 103, 92, 86, 123, 112, 106, 123, 112, 106, 118, 107, 101, 134, 123, 117, 138, 127, 121, 132, 121, 115, 124, 113, 107, 125, 114, 108, 128, 117, 111, 118, 107, 101, 118, 107, 101, 135, 124, 118, 136, 125, 121, 128, 117, 113, 133, 122, 118, 146, 135, 131, 140, 129, 125, 123, 112, 108, 124, 113, 109, 141, 130, 126, 154, 143, 139, 143, 132, 128, 110, 99, 95, 99, 88, 84, 126, 115, 111, 131, 120, 116, 121, 110, 106, 140, 129, 125, 146, 131, 128, 146, 132, 129, 129, 115, 112, 115, 104, 100, 125, 116, 111, 131, 122, 117, 128, 117, 113, 128, 117, 113, 133, 119, 116, 130, 116, 113, 120, 105, 102, 116, 101, 98, 114, 100, 97, 114, 103, 99, 119, 108, 104, 117, 108, 101, 134, 125, 118, 95, 86, 77, 84, 75, 66, 110, 101, 92, 130, 121, 114, 134, 125, 118, 135, 126, 121, 137, 128, 123, 153, 144, 139, 140, 131, 126, 141, 132, 125, 131, 122, 115, 133, 124, 117, 142, 133, 124, 128, 119, 110, 128, 119, 110, 135, 126, 121, 123, 114, 109, 120, 111, 106, 143, 134, 129, 134, 125, 120, 118, 109, 104, 138, 129, 124, 143, 134, 129, 104, 93, 89, 98, 87, 83, 106, 95, 91, 116, 105, 101, 123, 109, 106, 121, 107, 104, 113, 99, 96, 111, 97, 94, 121, 110, 106, 139, 128, 124, 135, 124, 120, 115, 104, 100, 119, 108, 104, 130, 119, 115, 123, 112, 108, 118, 107, 103, 113, 102, 98, 158, 147, 143, 134, 123, 119, 126, 115, 111, 108, 97, 93, 96, 85, 81, 117, 106, 102, 104, 93, 89, 99, 88, 82, 95, 84, 78, 122, 111, 105, 124, 113, 107, 116, 105, 101, 115, 104, 100, 101, 92, 87, 109, 100, 95, 104, 95, 90, 106, 97, 92, 111, 103, 100, 119, 111, 108, 127, 119, 116, 127, 119, 116, 121, 113, 110, 115, 107, 104, 128, 120, 117, 96, 88, 85, 111, 102, 97, 134, 125, 120, 119, 110, 105, 96, 87, 82, 76, 65, 61, 94, 83, 79, 103, 94, 89, 115, 106, 101, 129, 121, 118, 97, 89, 86, 75, 70, 67, 73, 68, 65, 140, 136, 135, 156, 155, 151, 173, 172, 168, 117, 118, 112, 74, 73, 68, 58, 57, 52, 56, 53, 48, 43, 40, 35, 32, 24, 21, 43, 35, 32, 101, 91, 89, 106, 96, 94, 64, 54, 52, 59, 49, 47, 73, 65, 62, 77, 69, 66, 77, 69, 66, 41, 33, 30, 60, 50, 48, 64, 56, 53, 107, 102, 98, 62, 57, 53, 73, 69, 66, 169, 168, 164, 144, 145, 140, 84, 86, 81, 53, 55, 52, 24, 26, 23, 85, 85, 83, 188, 188, 186, 114, 113, 111, 62, 61, 59, 128, 124, 123, 72, 68, 67, 27, 25, 26, 118, 114, 113, 137, 132, 129, 85, 80, 77, 96, 88, 85, 114, 104, 102, 84, 73, 69, 77, 66, 60, 86, 73, 67, 87, 73, 70, 88, 77, 75, 62, 51, 49, 56, 46, 45, 61, 53, 51, 53, 44, 45, 76, 67, 68, 76, 66, 65, 80, 70, 68, 86, 75, 73, 100, 89, 87, 104, 90, 89, 115, 101, 100, 106, 92, 89, 78, 64, 61, 73, 59, 56, 101, 87, 84, 76, 62, 59, 41, 27, 24, 52, 41, 35, 77, 66, 60, 89, 80, 73, 98, 89, 82, 106, 97, 92, 104, 95, 90, 104, 95, 90, 88, 79, 74, 77, 68, 63, 104, 95, 90, 119, 110, 105, 96, 87, 82, 64, 55, 50, 64, 55, 50, 72, 63, 58, 93, 84, 79, 99, 90, 85, 73, 64, 59, 59, 50, 45, 75, 66, 61, 90, 79, 77, 112, 101, 99, 119, 108, 106, 110, 99, 97, 109, 99, 97, 110, 100, 98, 97, 87, 85, 81, 71, 69, 95, 85, 83, 86, 76, 74, 86, 78, 75, 101, 93, 90, 110, 102, 99, 99, 91, 88, 78, 70, 67, 64, 56, 53, 54, 45, 40, 82, 73, 68, 93, 84, 79, 104, 95, 90, 118, 109, 104, 94, 85, 80, 68, 59, 54, 78, 69, 64, 62, 53, 48, 84, 75, 70, 104, 95, 90, 114, 105, 100, 127, 118, 113, 142, 133, 128, 142, 133, 128, 132, 121, 117, 138, 124, 121, 146, 132, 129, 149, 135, 132, 141, 127, 124, 130, 119, 115, 130, 119, 115, 135, 121, 118, 138, 124, 121, 135, 120, 117, 132, 117, 114, 126, 106, 105, 113, 93, 92, 103, 82, 81, 102, 81, 80, 113, 89, 89, 122, 98, 98, 115, 95, 96, 110, 92, 92, 104, 86, 86, 97, 81, 81, 99, 83, 84, 99, 85, 85, 89, 77, 79, 77, 67, 68, 73, 63, 62, 80, 72, 70, 83, 75, 73, 87, 79, 76, 93, 85, 82, 91, 84, 78, 98, 89, 84, 115, 106, 101, 122, 111, 107, 111, 100, 96, 120, 107, 101, 139, 126, 120, 151, 138, 130, 160, 147, 138, 165, 151, 142, 157, 145, 133, 170, 158, 146, 173, 163, 153, 181, 171, 162, 186, 177, 170, 192, 183, 178, 196, 189, 183, 201, 193, 190, 202, 198, 195, 204, 205, 207, 206, 210, 213, 212, 216, 219, 219, 223, 226, 225, 229, 232, 230, 234, 237, 233, 237, 240, 235, 239, 242, 236, 240, 243, 236, 240, 243, 237, 241, 244, 238, 242, 245, 239, 243, 246, 240, 244, 247, 240, 244, 247, 241, 245, 248, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 232, 232, 240, 233, 236, 243, 232, 235, 242, 226, 233, 239, 224, 233, 240, 227, 236, 243, 226, 237, 243, 224, 233, 240, 228, 235, 241, 211, 215, 218, 190, 190, 192, 171, 167, 166, 162, 152, 151, 167, 153, 152, 161, 143, 141, 140, 119, 116, 126, 102, 98, 123, 98, 94, 123, 97, 96, 124, 98, 99, 124, 97, 102, 125, 98, 105, 134, 104, 112, 143, 113, 121, 150, 120, 128, 150, 121, 126, 150, 121, 126, 150, 121, 125, 151, 120, 126, 151, 120, 128, 151, 119, 130, 152, 119, 130, 148, 115, 124, 151, 116, 123, 152, 117, 124, 152, 120, 125, 153, 121, 126, 152, 122, 124, 151, 120, 125, 150, 121, 125, 146, 117, 121, 148, 119, 123, 149, 122, 127, 152, 125, 130, 154, 127, 134, 152, 127, 133, 151, 125, 134, 150, 124, 133, 152, 124, 136, 152, 124, 136, 151, 123, 137, 150, 122, 136, 148, 120, 134, 146, 118, 132, 144, 116, 130, 142, 114, 128, 137, 109, 123, 135, 107, 121, 132, 104, 118, 129, 101, 115, 127, 99, 113, 126, 98, 112, 127, 99, 113, 126, 100, 113, 121, 98, 108, 120, 99, 106, 120, 97, 103, 119, 96, 102, 119, 92, 99, 116, 89, 94, 116, 85, 91, 114, 83, 88, 112, 80, 83, 107, 75, 78, 102, 70, 71, 94, 62, 63, 87, 56, 54, 90, 59, 57, 108, 77, 75, 126, 94, 95, 122, 92, 94, 92, 63, 67, 89, 62, 67, 95, 73, 76, 94, 75, 77, 114, 100, 100, 130, 118, 118, 115, 105, 104, 143, 134, 135, 168, 159, 160, 161, 151, 152, 140, 128, 130, 147, 132, 135, 152, 137, 140, 142, 125, 131, 135, 118, 124, 140, 123, 129, 126, 109, 115, 109, 92, 98, 102, 85, 91, 103, 86, 92, 107, 90, 96, 109, 92, 98, 110, 93, 99, 110, 93, 99, 116, 99, 105, 125, 108, 114, 130, 113, 119, 123, 106, 112, 110, 95, 100, 106, 89, 95, 107, 92, 97, 108, 98, 99, 109, 100, 101, 116, 106, 105, 122, 112, 111, 127, 117, 116, 129, 117, 117, 125, 113, 113, 123, 109, 109, 115, 101, 100, 115, 101, 100, 113, 97, 97, 105, 89, 89, 96, 78, 78, 88, 70, 70, 85, 67, 65, 85, 67, 65, 91, 73, 73, 90, 72, 72, 87, 69, 69, 85, 67, 67, 84, 66, 66, 85, 67, 67, 86, 68, 66, 87, 69, 67, 92, 74, 72, 95, 77, 75, 97, 79, 77, 93, 75, 73, 88, 70, 66, 88, 70, 66, 96, 78, 74, 104, 86, 82, 100, 82, 80, 93, 78, 75, 88, 73, 70, 86, 72, 69, 89, 75, 72, 87, 76, 72, 85, 74, 72, 81, 70, 68, 75, 65, 63, 77, 67, 65, 81, 71, 69, 85, 75, 73, 83, 71, 71, 79, 67, 67, 82, 68, 68, 85, 73, 73, 49, 41, 39, 82, 77, 74, 117, 112, 109, 133, 128, 125, 100, 92, 89, 68, 60, 57, 90, 82, 79, 109, 101, 98, 80, 72, 69, 78, 70, 67, 118, 109, 104, 118, 109, 104, 62, 53, 48, 60, 51, 46, 89, 80, 75, 73, 64, 59, 61, 50, 48, 62, 48, 47, 79, 68, 66, 71, 60, 58, 82, 72, 70, 94, 84, 82, 65, 57, 54, 70, 62, 59, 71, 63, 60, 68, 60, 57, 119, 109, 107, 95, 85, 83, 44, 33, 31, 72, 61, 59, 95, 81, 80, 83, 69, 68, 83, 69, 68, 110, 96, 95, 102, 88, 87, 88, 74, 73, 103, 89, 88, 101, 87, 86, 81, 67, 66, 78, 64, 63, 85, 71, 70, 108, 94, 93, 108, 94, 93, 80, 66, 65, 68, 54, 53, 88, 74, 73, 109, 95, 94, 115, 101, 98, 121, 110, 106, 124, 113, 107, 104, 93, 87, 97, 86, 80, 117, 106, 100, 115, 104, 98, 107, 96, 90, 127, 116, 110, 139, 128, 122, 134, 123, 117, 126, 115, 109, 126, 115, 109, 130, 119, 113, 121, 110, 104, 119, 108, 102, 131, 120, 114, 135, 124, 120, 128, 117, 113, 130, 119, 115, 140, 129, 125, 139, 128, 124, 129, 118, 114, 129, 118, 114, 139, 128, 124, 148, 137, 133, 137, 126, 122, 112, 101, 97, 98, 87, 83, 125, 114, 110, 133, 122, 118, 121, 110, 106, 146, 135, 131, 142, 127, 124, 150, 136, 133, 128, 114, 111, 105, 94, 90, 122, 113, 108, 139, 130, 125, 134, 123, 119, 128, 117, 113, 142, 128, 125, 130, 116, 113, 120, 105, 102, 120, 105, 102, 109, 95, 92, 113, 102, 98, 130, 119, 115, 110, 101, 94, 121, 112, 103, 98, 89, 80, 78, 69, 60, 93, 84, 75, 123, 114, 107, 132, 123, 116, 131, 122, 117, 139, 130, 125, 151, 142, 137, 142, 133, 128, 146, 137, 130, 135, 126, 119, 137, 128, 119, 144, 135, 126, 125, 116, 107, 120, 111, 102, 132, 123, 116, 132, 123, 118, 126, 117, 112, 141, 132, 127, 136, 127, 122, 121, 112, 107, 136, 127, 122, 142, 133, 128, 111, 100, 96, 92, 81, 77, 101, 90, 86, 112, 101, 97, 121, 107, 104, 126, 112, 109, 118, 104, 101, 116, 102, 99, 118, 107, 103, 133, 122, 118, 133, 122, 118, 113, 102, 98, 120, 109, 105, 129, 118, 114, 115, 104, 100, 122, 111, 107, 110, 99, 95, 146, 135, 131, 124, 113, 109, 125, 114, 110, 106, 95, 91, 104, 93, 89, 110, 99, 95, 106, 95, 91, 112, 101, 95, 103, 92, 86, 122, 111, 105, 111, 100, 94, 108, 97, 93, 118, 107, 103, 100, 91, 86, 110, 101, 96, 118, 109, 104, 115, 106, 101, 112, 104, 101, 115, 107, 104, 120, 112, 109, 122, 114, 111, 119, 111, 108, 116, 108, 105, 124, 116, 113, 98, 90, 87, 103, 94, 89, 124, 115, 110, 107, 98, 93, 104, 95, 90, 80, 69, 65, 92, 81, 77, 109, 100, 95, 109, 100, 95, 122, 114, 111, 97, 89, 86, 89, 84, 81, 88, 83, 80, 146, 142, 141, 169, 168, 164, 153, 152, 148, 105, 106, 100, 76, 75, 70, 51, 50, 45, 53, 50, 45, 50, 47, 42, 26, 18, 15, 38, 30, 27, 103, 93, 91, 100, 90, 88, 70, 60, 58, 73, 63, 61, 83, 75, 72, 81, 73, 70, 76, 68, 65, 44, 36, 33, 56, 46, 44, 71, 63, 60, 81, 73, 70, 71, 68, 63, 143, 139, 136, 166, 167, 162, 93, 94, 89, 103, 105, 100, 52, 54, 51, 41, 43, 40, 157, 157, 155, 171, 171, 169, 49, 48, 46, 66, 65, 63, 124, 120, 119, 52, 48, 47, 83, 81, 82, 153, 151, 152, 68, 64, 63, 69, 64, 61, 116, 108, 105, 88, 79, 74, 91, 80, 74, 57, 46, 40, 94, 81, 75, 103, 90, 84, 109, 98, 94, 75, 65, 63, 71, 61, 60, 76, 67, 68, 51, 45, 47, 71, 65, 65, 76, 66, 65, 74, 64, 62, 71, 60, 58, 103, 92, 90, 102, 88, 87, 116, 102, 101, 105, 91, 88, 72, 58, 55, 74, 60, 57, 119, 105, 102, 85, 71, 68, 39, 25, 22, 51, 40, 34, 74, 63, 57, 91, 82, 75, 101, 92, 85, 109, 100, 95, 115, 106, 101, 105, 96, 91, 76, 67, 62, 70, 61, 56, 97, 88, 83, 102, 93, 88, 75, 66, 61, 63, 54, 49, 75, 66, 61, 82, 73, 68, 96, 87, 82, 108, 99, 94, 93, 84, 79, 84, 75, 70, 102, 93, 88, 105, 94, 92, 107, 96, 94, 104, 93, 91, 110, 99, 97, 109, 99, 97, 80, 70, 68, 61, 51, 49, 75, 65, 63, 92, 82, 80, 91, 81, 79, 97, 89, 86, 107, 99, 96, 99, 91, 88, 79, 71, 68, 72, 64, 61, 79, 71, 68, 83, 74, 69, 87, 78, 73, 110, 101, 96, 118, 109, 104, 90, 81, 76, 68, 59, 54, 67, 58, 53, 65, 56, 51, 76, 67, 62, 100, 91, 86, 128, 119, 114, 144, 135, 130, 147, 138, 133, 140, 131, 126, 128, 119, 114, 118, 109, 104, 137, 126, 122, 145, 131, 128, 146, 132, 129, 138, 124, 121, 128, 117, 113, 129, 118, 114, 134, 120, 117, 136, 122, 119, 138, 123, 120, 134, 119, 116, 130, 110, 109, 121, 101, 100, 115, 94, 93, 115, 91, 91, 117, 91, 92, 119, 95, 95, 110, 90, 91, 111, 93, 93, 108, 92, 92, 104, 88, 88, 101, 87, 87, 93, 81, 81, 79, 69, 70, 66, 56, 57, 78, 70, 68, 80, 72, 70, 77, 69, 66, 82, 74, 71, 94, 87, 81, 95, 88, 82, 96, 87, 80, 107, 98, 91, 113, 102, 100, 107, 96, 92, 119, 105, 102, 134, 121, 113, 140, 127, 119, 147, 134, 125, 157, 143, 132, 156, 142, 131, 170, 158, 146, 175, 163, 151, 180, 170, 160, 186, 176, 167, 190, 181, 174, 195, 186, 181, 199, 191, 188, 199, 195, 192, 202, 202, 204, 202, 206, 209, 208, 212, 215, 214, 218, 221, 221, 225, 228, 227, 231, 234, 231, 235, 238, 233, 237, 240, 234, 238, 241, 235, 239, 242, 236, 240, 243, 237, 241, 244, 238, 242, 245, 239, 243, 246, 240, 244, 247, 241, 245, 248, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 230, 238, 233, 236, 243, 234, 237, 246, 228, 235, 243, 225, 234, 241, 225, 236, 242, 225, 236, 242, 223, 232, 239, 225, 232, 238, 215, 220, 224, 198, 199, 203, 175, 171, 172, 159, 149, 150, 163, 149, 148, 160, 145, 142, 144, 125, 121, 143, 118, 114, 141, 113, 110, 138, 110, 109, 136, 107, 111, 131, 101, 109, 129, 99, 109, 135, 105, 115, 144, 114, 122, 146, 115, 123, 146, 115, 121, 146, 115, 121, 145, 114, 120, 145, 112, 121, 144, 111, 120, 144, 111, 122, 143, 110, 121, 150, 113, 121, 149, 112, 119, 148, 111, 118, 147, 112, 116, 147, 112, 116, 145, 113, 114, 146, 114, 117, 146, 116, 118, 144, 115, 117, 147, 118, 120, 149, 123, 126, 153, 127, 130, 154, 129, 133, 154, 129, 133, 153, 128, 134, 152, 126, 135, 152, 125, 134, 152, 125, 134, 152, 124, 136, 151, 123, 135, 150, 122, 134, 148, 120, 132, 146, 118, 130, 144, 116, 128, 141, 113, 127, 139, 111, 125, 136, 108, 122, 133, 105, 119, 131, 103, 118, 131, 103, 118, 132, 104, 119, 131, 105, 118, 127, 104, 114, 126, 105, 112, 126, 103, 111, 125, 102, 108, 125, 98, 105, 120, 93, 98, 120, 89, 95, 117, 86, 91, 117, 85, 88, 113, 81, 84, 103, 71, 72, 94, 62, 63, 94, 63, 61, 104, 73, 71, 113, 82, 80, 116, 84, 85, 97, 67, 69, 92, 63, 67, 93, 67, 70, 98, 73, 76, 104, 84, 86, 118, 102, 103, 135, 121, 121, 139, 129, 128, 164, 155, 156, 158, 149, 150, 122, 112, 113, 103, 91, 93, 130, 115, 118, 140, 124, 127, 120, 101, 105, 106, 87, 91, 122, 101, 108, 102, 81, 88, 85, 64, 71, 84, 63, 70, 84, 65, 71, 83, 64, 70, 90, 71, 77, 101, 84, 90, 117, 100, 106, 140, 123, 129, 140, 125, 130, 111, 96, 101, 95, 80, 85, 108, 96, 100, 125, 110, 115, 124, 112, 116, 115, 106, 107, 115, 109, 109, 122, 114, 112, 127, 119, 117, 128, 120, 118, 125, 115, 114, 118, 106, 106, 111, 99, 99, 108, 94, 93, 107, 93, 92, 103, 87, 87, 96, 80, 80, 91, 73, 73, 86, 68, 68, 87, 67, 66, 88, 68, 67, 68, 50, 50, 70, 52, 52, 73, 55, 55, 79, 61, 61, 87, 69, 69, 96, 78, 78, 104, 86, 84, 108, 90, 88, 101, 83, 81, 101, 83, 81, 100, 82, 80, 99, 81, 79, 99, 81, 77, 100, 82, 78, 103, 85, 81, 105, 87, 83, 94, 79, 76, 89, 75, 72, 86, 72, 69, 85, 71, 68, 88, 74, 71, 90, 79, 75, 94, 83, 81, 94, 84, 82, 87, 76, 74, 79, 68, 66, 73, 62, 60, 70, 59, 57, 64, 50, 50, 57, 43, 43, 65, 49, 50, 77, 63, 63, 85, 77, 75, 53, 48, 45, 74, 69, 66, 119, 114, 111, 132, 127, 123, 95, 90, 86, 77, 69, 66, 117, 109, 106, 98, 90, 87, 63, 55, 52, 81, 72, 67, 114, 105, 100, 96, 87, 82, 73, 64, 59, 74, 65, 60, 72, 63, 58, 58, 47, 45, 55, 44, 42, 73, 62, 60, 59, 48, 46, 71, 61, 59, 90, 80, 78, 62, 54, 51, 71, 63, 60, 83, 75, 72, 57, 49, 46, 104, 94, 92, 115, 105, 103, 52, 41, 39, 56, 45, 43, 96, 85, 83, 81, 70, 68, 66, 52, 51, 112, 98, 97, 111, 97, 96, 89, 75, 74, 103, 89, 88, 106, 92, 91, 88, 74, 73, 87, 73, 72, 84, 70, 69, 103, 89, 88, 110, 96, 95, 92, 78, 77, 79, 65, 64, 93, 79, 78, 110, 96, 95, 112, 98, 95, 110, 99, 95, 118, 107, 101, 97, 86, 80, 90, 79, 73, 111, 100, 94, 107, 96, 90, 102, 91, 85, 126, 115, 109, 135, 124, 118, 135, 124, 118, 129, 118, 112, 128, 117, 111, 134, 123, 117, 129, 118, 112, 125, 114, 108, 131, 120, 114, 134, 123, 119, 129, 118, 114, 127, 116, 112, 133, 122, 118, 138, 127, 123, 137, 126, 122, 136, 125, 121, 138, 127, 123, 138, 127, 123, 130, 119, 115, 114, 103, 99, 100, 89, 85, 125, 114, 110, 136, 125, 121, 124, 113, 109, 154, 143, 139, 146, 131, 128, 148, 134, 131, 121, 107, 104, 101, 90, 86, 123, 114, 109, 137, 128, 123, 129, 118, 114, 127, 116, 112, 148, 134, 131, 129, 114, 111, 124, 109, 106, 131, 116, 113, 109, 95, 92, 116, 105, 101, 140, 129, 125, 100, 91, 84, 101, 92, 83, 108, 100, 89, 88, 79, 70, 88, 79, 70, 121, 112, 105, 129, 120, 113, 125, 116, 111, 146, 137, 132, 133, 124, 119, 131, 122, 117, 143, 134, 127, 136, 127, 120, 138, 129, 120, 142, 133, 124, 117, 109, 98, 105, 96, 87, 129, 120, 113, 140, 131, 126, 131, 122, 117, 138, 129, 124, 135, 126, 121, 121, 112, 107, 132, 123, 118, 136, 127, 122, 110, 99, 95, 97, 86, 82, 111, 100, 96, 109, 98, 94, 113, 99, 96, 133, 119, 116, 128, 114, 111, 123, 109, 106, 114, 103, 99, 127, 116, 112, 132, 121, 117, 115, 104, 100, 123, 112, 108, 126, 115, 111, 108, 97, 93, 127, 116, 112, 114, 103, 99, 133, 122, 118, 117, 106, 102, 122, 111, 107, 102, 91, 87, 110, 99, 95, 97, 86, 82, 106, 95, 91, 112, 101, 95, 104, 93, 87, 121, 110, 104, 103, 92, 86, 108, 97, 93, 129, 118, 114, 105, 96, 91, 111, 102, 97, 126, 117, 112, 121, 112, 107, 113, 105, 102, 112, 104, 101, 114, 106, 103, 116, 108, 105, 114, 106, 103, 111, 103, 100, 122, 114, 111, 104, 96, 93, 99, 90, 85, 113, 104, 99, 96, 87, 82, 112, 103, 98, 83, 72, 68, 83, 72, 68, 108, 99, 94, 102, 93, 88, 120, 112, 109, 102, 94, 91, 97, 92, 89, 90, 85, 82, 143, 139, 138, 180, 179, 175, 120, 119, 115, 85, 86, 80, 74, 73, 68, 43, 42, 37, 51, 48, 43, 60, 57, 52, 27, 19, 16, 38, 30, 27, 106, 96, 94, 97, 87, 85, 79, 69, 67, 85, 75, 73, 83, 75, 72, 72, 64, 61, 74, 66, 63, 63, 55, 52, 60, 50, 48, 78, 70, 67, 76, 68, 66, 124, 120, 117, 155, 151, 148, 99, 100, 95, 79, 80, 75, 101, 103, 98, 48, 53, 49, 113, 118, 114, 174, 176, 173, 97, 97, 95, 53, 52, 50, 91, 90, 88, 79, 75, 76, 79, 75, 76, 135, 133, 134, 109, 107, 108, 40, 36, 35, 73, 68, 65, 115, 107, 104, 90, 81, 76, 85, 74, 68, 59, 46, 40, 87, 74, 68, 104, 91, 85, 118, 107, 103, 82, 72, 70, 80, 70, 69, 85, 76, 77, 50, 44, 46, 66, 60, 60, 86, 76, 75, 73, 63, 61, 59, 48, 46, 104, 93, 91, 100, 86, 85, 115, 101, 100, 105, 91, 88, 74, 60, 57, 82, 68, 65, 129, 115, 112, 87, 73, 70, 45, 31, 28, 55, 44, 38, 67, 56, 50, 85, 76, 69, 106, 97, 90, 112, 103, 98, 122, 113, 108, 104, 95, 90, 78, 69, 64, 82, 73, 68, 95, 86, 81, 84, 75, 70, 65, 56, 51, 69, 60, 55, 88, 79, 74, 93, 84, 79, 102, 93, 88, 119, 110, 105, 108, 99, 94, 89, 80, 75, 95, 86, 81, 78, 67, 65, 73, 62, 60, 79, 69, 67, 89, 79, 77, 85, 75, 73, 78, 68, 66, 85, 75, 73, 95, 85, 83, 90, 82, 79, 106, 98, 95, 120, 112, 109, 114, 106, 103, 92, 84, 81, 76, 68, 65, 81, 73, 70, 94, 86, 83, 98, 89, 84, 110, 101, 96, 120, 111, 106, 98, 89, 84, 58, 49, 44, 50, 41, 36, 68, 59, 54, 79, 70, 65, 111, 102, 97, 120, 111, 106, 134, 125, 120, 141, 132, 127, 132, 123, 118, 117, 108, 103, 116, 107, 102, 123, 114, 109, 145, 134, 130, 140, 129, 125, 131, 120, 116, 123, 112, 108, 125, 114, 110, 132, 121, 117, 135, 121, 118, 131, 117, 114, 134, 119, 116, 133, 118, 115, 135, 115, 114, 134, 114, 113, 133, 112, 111, 127, 103, 103, 118, 92, 93, 109, 85, 85, 99, 79, 80, 102, 84, 84, 101, 85, 85, 96, 80, 80, 90, 76, 76, 83, 71, 71, 73, 63, 62, 64, 54, 53, 84, 76, 74, 78, 70, 68, 68, 60, 57, 74, 66, 63, 92, 85, 79, 97, 90, 82, 97, 88, 81, 104, 95, 88, 99, 88, 86, 96, 85, 81, 112, 98, 95, 131, 118, 110, 139, 126, 118, 148, 135, 126, 160, 146, 135, 160, 146, 135, 171, 159, 147, 176, 164, 152, 180, 170, 160, 185, 175, 166, 188, 179, 172, 192, 183, 176, 196, 189, 183, 196, 192, 189, 199, 199, 201, 199, 203, 206, 204, 208, 211, 211, 215, 218, 218, 222, 225, 224, 228, 231, 229, 233, 236, 231, 235, 238, 233, 237, 240, 234, 238, 241, 235, 239, 242, 236, 240, 243, 238, 242, 245, 239, 243, 246, 240, 244, 247, 241, 245, 248, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 227, 230, 237, 233, 236, 243, 235, 240, 246, 229, 236, 244, 226, 235, 242, 226, 235, 242, 224, 233, 240, 221, 230, 237, 225, 232, 240, 228, 233, 237, 221, 222, 226, 187, 185, 186, 154, 145, 146, 150, 139, 137, 157, 143, 140, 153, 135, 131, 146, 125, 120, 144, 120, 118, 141, 115, 114, 136, 110, 113, 131, 102, 107, 127, 97, 105, 133, 103, 111, 142, 112, 120, 140, 108, 119, 139, 108, 116, 138, 107, 115, 136, 105, 111, 135, 102, 111, 134, 101, 110, 132, 99, 108, 134, 99, 106, 145, 110, 116, 144, 108, 112, 140, 105, 109, 138, 103, 107, 137, 103, 104, 137, 105, 106, 138, 106, 107, 139, 109, 109, 144, 114, 114, 146, 117, 119, 151, 122, 124, 155, 126, 128, 156, 130, 133, 156, 130, 133, 155, 129, 132, 154, 128, 131, 151, 124, 129, 152, 125, 130, 152, 125, 132, 151, 124, 131, 150, 123, 132, 148, 121, 130, 147, 120, 129, 145, 119, 130, 144, 116, 128, 141, 115, 128, 139, 111, 125, 136, 108, 122, 135, 107, 122, 135, 107, 122, 135, 107, 122, 135, 109, 122, 133, 107, 118, 131, 108, 116, 133, 107, 116, 131, 105, 114, 129, 102, 109, 126, 96, 104, 122, 93, 98, 120, 89, 95, 121, 90, 95, 119, 89, 91, 111, 79, 82, 103, 73, 73, 109, 77, 78, 115, 85, 83, 108, 77, 75, 90, 60, 60, 84, 53, 58, 90, 61, 65, 82, 55, 60, 94, 69, 73, 131, 111, 113, 142, 123, 125, 129, 115, 115, 132, 120, 120, 140, 128, 130, 123, 111, 113, 94, 82, 84, 98, 83, 86, 122, 103, 107, 109, 88, 93, 92, 71, 76, 109, 88, 93, 105, 84, 91, 83, 62, 69, 72, 51, 58, 82, 61, 68, 89, 68, 75, 89, 70, 76, 104, 85, 91, 127, 108, 114, 160, 143, 149, 132, 115, 121, 114, 97, 103, 121, 106, 111, 131, 119, 123, 127, 115, 119, 119, 107, 111, 115, 104, 108, 110, 101, 102, 107, 101, 101, 108, 103, 100, 111, 106, 103, 116, 108, 106, 118, 108, 107, 117, 105, 105, 117, 103, 102, 132, 118, 117, 118, 102, 102, 101, 85, 85, 94, 76, 76, 92, 74, 74, 88, 68, 69, 77, 57, 56, 67, 47, 46, 85, 65, 66, 87, 69, 69, 93, 73, 74, 97, 79, 79, 98, 80, 80, 97, 79, 79, 94, 76, 74, 92, 74, 72, 103, 85, 83, 98, 80, 78, 94, 76, 74, 96, 78, 76, 101, 83, 79, 104, 86, 82, 101, 83, 79, 95, 80, 75, 89, 74, 71, 86, 72, 69, 84, 70, 67, 84, 70, 67, 85, 74, 70, 93, 82, 78, 101, 90, 88, 106, 96, 94, 107, 96, 94, 103, 92, 90, 88, 77, 75, 66, 55, 53, 52, 40, 40, 49, 35, 35, 43, 29, 29, 34, 22, 22, 67, 59, 57, 75, 70, 67, 93, 85, 83, 76, 71, 68, 111, 103, 100, 138, 130, 127, 91, 83, 80, 81, 73, 70, 97, 89, 86, 76, 68, 65, 48, 38, 36, 82, 73, 68, 137, 127, 125, 104, 96, 93, 59, 49, 47, 81, 71, 69, 58, 48, 46, 52, 42, 40, 69, 58, 56, 49, 39, 37, 62, 52, 50, 88, 78, 76, 63, 53, 51, 74, 67, 61, 93, 83, 81, 53, 43, 41, 94, 84, 82, 127, 117, 115, 57, 47, 45, 42, 32, 30, 95, 84, 82, 79, 68, 66, 54, 40, 39, 112, 98, 97, 116, 102, 101, 89, 75, 74, 100, 86, 85, 107, 93, 92, 93, 79, 78, 91, 77, 76, 81, 67, 66, 99, 85, 84, 111, 97, 96, 102, 88, 87, 91, 77, 76, 99, 85, 84, 111, 97, 96, 111, 97, 94, 99, 88, 84, 110, 99, 93, 90, 79, 73, 84, 73, 67, 106, 95, 89, 104, 93, 87, 100, 89, 83, 129, 118, 112, 130, 119, 113, 135, 124, 118, 130, 119, 113, 128, 117, 111, 136, 125, 119, 136, 125, 119, 130, 119, 113, 133, 122, 116, 134, 123, 119, 130, 119, 115, 126, 115, 111, 129, 118, 114, 137, 126, 122, 143, 132, 128, 141, 130, 126, 137, 126, 122, 143, 132, 128, 135, 124, 120, 122, 111, 107, 103, 92, 88, 124, 113, 109, 132, 121, 117, 116, 105, 101, 147, 136, 132, 151, 137, 134, 144, 130, 127, 111, 100, 96, 101, 90, 86, 126, 117, 112, 132, 123, 118, 121, 110, 106, 126, 115, 111, 142, 128, 125, 117, 103, 100, 119, 104, 101, 131, 117, 114, 102, 88, 85, 110, 99, 95, 138, 127, 123, 85, 76, 69, 86, 77, 68, 116, 107, 98, 101, 92, 83, 90, 81, 74, 122, 113, 106, 126, 117, 110, 121, 112, 107, 152, 143, 138, 113, 104, 99, 117, 108, 103, 136, 127, 120, 133, 124, 117, 137, 128, 121, 139, 130, 121, 108, 99, 90, 91, 82, 73, 125, 116, 109, 144, 135, 130, 134, 125, 120, 135, 126, 121, 134, 125, 120, 121, 112, 107, 128, 119, 114, 130, 121, 116, 103, 92, 88, 102, 91, 87, 122, 111, 107, 105, 94, 90, 102, 88, 85, 135, 121, 118, 136, 122, 119, 127, 113, 110, 120, 109, 105, 131, 120, 116, 140, 129, 125, 126, 115, 111, 134, 123, 119, 133, 122, 118, 113, 102, 98, 140, 129, 125, 119, 108, 104, 125, 114, 110, 114, 103, 99, 119, 108, 104, 99, 88, 84, 113, 102, 98, 86, 75, 71, 104, 93, 89, 101, 90, 84, 98, 89, 82, 122, 111, 105, 103, 94, 87, 116, 105, 101, 140, 131, 126, 109, 100, 95, 108, 99, 94, 130, 121, 116, 123, 114, 109, 115, 107, 104, 111, 103, 100, 112, 104, 101, 112, 104, 101, 109, 101, 98, 106, 98, 95, 112, 104, 101, 101, 93, 90, 93, 84, 79, 104, 95, 90, 90, 81, 76, 121, 112, 107, 93, 82, 78, 83, 74, 69, 99, 90, 85, 98, 91, 85, 127, 119, 116, 109, 104, 100, 97, 92, 89, 80, 76, 73, 138, 134, 133, 192, 188, 185, 97, 93, 90, 72, 69, 64, 68, 65, 60, 35, 32, 27, 47, 44, 39, 68, 65, 60, 32, 27, 23, 46, 41, 37, 113, 105, 102, 98, 90, 87, 84, 76, 73, 89, 81, 78, 77, 69, 66, 61, 53, 50, 77, 69, 66, 87, 79, 76, 74, 64, 62, 94, 86, 83, 101, 96, 92, 182, 177, 173, 122, 118, 115, 39, 38, 34, 106, 107, 102, 74, 76, 71, 71, 73, 70, 158, 160, 157, 145, 147, 144, 64, 64, 62, 77, 76, 74, 90, 89, 87, 70, 66, 67, 114, 110, 111, 155, 151, 152, 37, 33, 32, 65, 59, 59, 85, 77, 75, 96, 86, 84, 121, 110, 106, 68, 57, 53, 72, 59, 53, 70, 56, 53, 90, 79, 75, 113, 102, 98, 78, 68, 66, 80, 70, 69, 88, 80, 78, 49, 40, 41, 64, 55, 56, 101, 91, 90, 81, 71, 69, 57, 46, 44, 107, 96, 94, 98, 87, 85, 111, 100, 98, 105, 91, 90, 76, 62, 59, 89, 75, 74, 132, 118, 115, 87, 73, 72, 51, 37, 34, 61, 50, 46, 59, 48, 44, 78, 69, 64, 110, 101, 96, 100, 91, 86, 112, 103, 98, 97, 88, 83, 85, 76, 71, 102, 93, 88, 105, 96, 91, 88, 79, 74, 83, 74, 69, 96, 87, 82, 108, 99, 94, 93, 84, 79, 83, 74, 69, 96, 87, 82, 86, 77, 72, 60, 51, 46, 56, 47, 42, 83, 72, 70, 84, 73, 71, 95, 85, 83, 81, 71, 69, 58, 48, 46, 85, 75, 73, 111, 101, 99, 89, 79, 77, 87, 77, 75, 115, 107, 104, 132, 122, 120, 115, 107, 104, 91, 81, 79, 79, 71, 68, 83, 73, 71, 85, 75, 73, 99, 90, 85, 145, 136, 131, 124, 115, 110, 69, 60, 55, 53, 44, 39, 53, 44, 39, 70, 61, 56, 115, 106, 101, 140, 131, 126, 131, 122, 117, 124, 115, 110, 117, 108, 103, 102, 93, 88, 93, 84, 79, 111, 102, 97, 140, 131, 126, 154, 143, 139, 140, 126, 123, 120, 106, 103, 113, 99, 96, 124, 110, 107, 137, 123, 120, 136, 122, 119, 128, 113, 110, 129, 114, 111, 132, 114, 112, 137, 119, 117, 144, 124, 123, 146, 125, 124, 134, 113, 112, 116, 92, 92, 97, 76, 75, 98, 78, 80, 100, 81, 83, 96, 80, 83, 88, 72, 75, 83, 68, 71, 82, 70, 72, 85, 73, 75, 83, 73, 74, 87, 77, 76, 74, 66, 64, 58, 50, 48, 64, 56, 53, 87, 80, 74, 97, 90, 82, 97, 90, 84, 103, 94, 89, 86, 77, 72, 87, 76, 72, 108, 97, 91, 134, 123, 117, 147, 137, 128, 157, 147, 137, 165, 152, 143, 162, 149, 140, 170, 160, 150, 174, 164, 154, 179, 170, 161, 184, 175, 166, 187, 178, 171, 190, 183, 177, 194, 187, 181, 194, 191, 186, 198, 198, 198, 197, 201, 202, 204, 205, 207, 208, 212, 213, 218, 219, 221, 222, 226, 229, 227, 231, 234, 230, 234, 237, 232, 236, 239, 233, 237, 240, 234, 238, 241, 236, 240, 243, 238, 242, 245, 239, 243, 246, 240, 244, 247, 241, 245, 248, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 239, 244, 248, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 237, 240, 247, 237, 240, 247, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 233, 236, 243, 233, 236, 243, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 236, 243, 233, 236, 243, 233, 236, 243, 233, 236, 243, 233, 236, 243, 233, 236, 243, 233, 236, 243, 232, 237, 243, 231, 236, 240, 231, 236, 240, 228, 236, 239, 228, 235, 241, 228, 235, 243, 227, 234, 242, 227, 234, 244, 229, 233, 242, 228, 232, 241, 230, 233, 240, 224, 225, 230, 205, 203, 206, 179, 175, 174, 160, 155, 151, 158, 151, 145, 164, 153, 147, 141, 126, 121, 127, 109, 105, 127, 108, 104, 128, 104, 104, 112, 86, 89, 115, 86, 90, 137, 106, 112, 150, 119, 127, 135, 103, 114, 132, 100, 111, 130, 98, 109, 130, 99, 107, 133, 100, 107, 135, 103, 108, 136, 101, 105, 135, 100, 104, 146, 114, 119, 142, 111, 116, 139, 107, 110, 138, 106, 109, 139, 107, 110, 138, 108, 110, 137, 107, 107, 136, 106, 106, 139, 109, 109, 144, 114, 112, 149, 119, 117, 152, 122, 120, 154, 123, 121, 155, 124, 122, 156, 125, 123, 157, 127, 125, 151, 121, 121, 150, 122, 121, 151, 122, 124, 151, 122, 126, 149, 122, 127, 148, 121, 126, 146, 121, 127, 143, 120, 128, 143, 117, 128, 141, 118, 128, 143, 117, 130, 143, 117, 130, 142, 116, 129, 141, 115, 128, 140, 112, 126, 139, 111, 125, 138, 110, 122, 139, 112, 121, 139, 112, 119, 138, 111, 118, 137, 107, 115, 132, 102, 110, 127, 98, 103, 123, 94, 99, 122, 93, 97, 117, 88, 90, 112, 82, 84, 110, 81, 83, 111, 81, 83, 106, 78, 77, 98, 68, 68, 89, 60, 62, 79, 50, 55, 109, 80, 85, 111, 84, 91, 138, 113, 119, 145, 124, 129, 115, 96, 100, 116, 97, 101, 128, 112, 115, 135, 119, 122, 87, 68, 72, 94, 75, 79, 130, 109, 114, 111, 86, 92, 81, 54, 61, 97, 70, 77, 125, 100, 106, 76, 57, 61, 74, 58, 61, 79, 63, 66, 88, 72, 75, 97, 81, 84, 110, 91, 95, 130, 111, 117, 150, 131, 137, 143, 124, 130, 143, 126, 132, 146, 129, 137, 144, 129, 136, 131, 118, 125, 117, 104, 111, 112, 101, 107, 115, 104, 108, 115, 106, 107, 116, 107, 108, 125, 117, 115, 131, 123, 121, 119, 109, 107, 101, 91, 89, 104, 93, 91, 121, 107, 104, 131, 116, 113, 114, 96, 94, 95, 77, 75, 89, 69, 68, 90, 69, 68, 89, 68, 67, 89, 67, 69, 90, 68, 70, 101, 80, 79, 98, 78, 77, 93, 72, 71, 84, 64, 63, 78, 58, 57, 77, 57, 56, 81, 61, 60, 84, 64, 63, 104, 84, 83, 101, 81, 80, 94, 76, 74, 91, 73, 71, 97, 79, 77, 106, 88, 86, 107, 89, 87, 100, 85, 82, 90, 75, 70, 86, 73, 67, 86, 73, 67, 85, 72, 66, 81, 67, 64, 78, 67, 63, 85, 74, 70, 95, 84, 80, 108, 97, 93, 99, 88, 84, 93, 82, 80, 93, 82, 80, 83, 72, 70, 60, 49, 47, 38, 27, 25, 27, 17, 15, 48, 38, 36, 52, 44, 41, 76, 66, 64, 79, 71, 68, 76, 66, 64, 113, 103, 101, 138, 128, 126, 114, 104, 102, 70, 62, 60, 92, 84, 82, 82, 74, 72, 59, 51, 48, 102, 94, 92, 129, 124, 121, 89, 81, 79, 68, 60, 58, 74, 66, 64, 63, 55, 53, 69, 59, 57, 59, 49, 47, 66, 57, 52, 81, 72, 67, 80, 71, 66, 103, 94, 87, 87, 76, 72, 76, 67, 62, 65, 56, 51, 135, 126, 121, 68, 58, 56, 50, 42, 39, 56, 46, 45, 75, 65, 63, 49, 38, 36, 81, 67, 64, 117, 103, 100, 84, 70, 67, 84, 70, 67, 114, 100, 97, 90, 76, 73, 93, 79, 76, 86, 72, 69, 98, 84, 81, 110, 96, 93, 103, 89, 86, 98, 84, 81, 106, 92, 89, 114, 100, 97, 122, 108, 105, 105, 94, 90, 84, 73, 69, 78, 67, 63, 79, 68, 64, 99, 88, 84, 106, 95, 91, 97, 86, 82, 120, 109, 105, 111, 100, 96, 145, 134, 130, 139, 128, 124, 127, 116, 112, 148, 137, 133, 151, 140, 136, 130, 119, 115, 126, 115, 111, 125, 114, 110, 108, 97, 93, 133, 122, 118, 131, 120, 116, 118, 107, 103, 130, 119, 115, 134, 123, 119, 144, 133, 129, 143, 132, 128, 134, 123, 119, 127, 116, 112, 135, 124, 120, 142, 131, 127, 131, 120, 116, 128, 117, 113, 145, 134, 130, 137, 126, 122, 145, 134, 130, 121, 110, 106, 110, 99, 95, 108, 97, 93, 103, 92, 88, 117, 106, 102, 120, 109, 105, 127, 116, 112, 128, 117, 113, 106, 92, 89, 103, 92, 88, 115, 104, 100, 115, 104, 100, 110, 99, 95, 86, 75, 71, 89, 80, 73, 102, 93, 86, 108, 99, 92, 106, 97, 92, 110, 101, 96, 119, 110, 105, 132, 123, 118, 146, 137, 132, 114, 105, 100, 120, 111, 106, 115, 106, 101, 134, 125, 120, 115, 106, 101, 140, 131, 124, 116, 107, 100, 89, 80, 73, 137, 126, 122, 138, 127, 123, 144, 133, 129, 135, 124, 120, 124, 113, 109, 125, 114, 110, 123, 112, 108, 121, 110, 106, 118, 107, 103, 94, 83, 79, 128, 117, 113, 129, 118, 114, 97, 86, 82, 120, 109, 105, 135, 124, 120, 111, 100, 96, 132, 121, 117, 108, 97, 93, 128, 117, 113, 140, 129, 125, 152, 141, 137, 128, 117, 113, 90, 79, 75, 143, 132, 128, 139, 128, 124, 103, 92, 88, 89, 78, 74, 105, 94, 90, 89, 78, 74, 122, 111, 107, 95, 84, 80, 90, 79, 75, 112, 103, 98, 113, 106, 100, 124, 115, 110, 106, 99, 93, 109, 100, 95, 119, 112, 106, 109, 102, 96, 126, 119, 113, 124, 117, 111, 128, 121, 115, 121, 114, 108, 116, 109, 103, 91, 84, 78, 127, 120, 114, 112, 105, 99, 119, 112, 106, 118, 108, 106, 110, 100, 98, 69, 60, 55, 92, 83, 78, 119, 110, 105, 105, 96, 91, 104, 95, 90, 83, 74, 69, 109, 100, 95, 96, 89, 83, 129, 121, 118, 116, 111, 107, 65, 60, 57, 48, 44, 41, 152, 148, 147, 193, 189, 186, 95, 87, 85, 57, 47, 45, 108, 100, 97, 57, 49, 46, 50, 45, 41, 81, 78, 73, 30, 27, 22, 67, 64, 59, 119, 118, 113, 83, 82, 77, 99, 96, 91, 71, 68, 63, 75, 70, 66, 93, 85, 82, 59, 51, 48, 98, 88, 86, 90, 83, 77, 90, 83, 77, 183, 178, 172, 149, 144, 138, 82, 79, 74, 96, 95, 90, 71, 70, 65, 67, 68, 62, 145, 146, 141, 167, 168, 163, 105, 105, 103, 68, 68, 66, 65, 64, 62, 77, 76, 74, 80, 78, 79, 157, 153, 154, 109, 100, 101, 60, 50, 49, 85, 75, 74, 87, 77, 76, 103, 91, 91, 103, 92, 90, 98, 87, 85, 62, 51, 47, 48, 37, 35, 76, 67, 62, 109, 100, 95, 81, 72, 67, 84, 74, 72, 95, 87, 84, 54, 46, 43, 60, 52, 49, 86, 76, 75, 73, 63, 62, 100, 90, 89, 102, 92, 91, 99, 89, 88, 126, 116, 115, 107, 95, 95, 55, 44, 42, 53, 41, 41, 121, 110, 108, 75, 63, 63, 73, 62, 60, 65, 54, 52, 70, 59, 57, 86, 75, 73, 127, 116, 114, 84, 74, 72, 95, 85, 83, 109, 99, 97, 112, 102, 100, 109, 99, 97, 112, 102, 100, 109, 99, 97, 95, 85, 83, 97, 87, 85, 87, 77, 75, 68, 58, 56, 51, 41, 39, 83, 73, 71, 91, 81, 79, 53, 43, 41, 60, 50, 48, 87, 76, 74, 91, 80, 78, 72, 61, 59, 65, 54, 52, 92, 81, 79, 107, 96, 94, 96, 85, 83, 87, 76, 74, 123, 112, 110, 104, 94, 92, 108, 97, 95, 114, 104, 102, 95, 84, 82, 74, 64, 62, 78, 67, 65, 87, 77, 75, 129, 119, 117, 116, 106, 104, 83, 73, 71, 61, 51, 49, 63, 54, 49, 70, 61, 56, 99, 90, 83, 146, 137, 130, 133, 124, 117, 106, 97, 90, 83, 74, 69, 77, 68, 63, 85, 75, 73, 109, 99, 97, 138, 128, 126, 156, 145, 141, 135, 121, 118, 112, 97, 92, 99, 84, 79, 110, 95, 90, 120, 105, 100, 120, 105, 100, 122, 107, 102, 132, 114, 110, 128, 110, 106, 144, 126, 122, 153, 135, 131, 146, 128, 124, 136, 117, 113, 129, 110, 106, 116, 97, 93, 103, 83, 84, 105, 86, 92, 97, 80, 88, 84, 67, 77, 77, 60, 68, 86, 71, 78, 97, 84, 91, 94, 82, 86, 79, 68, 72, 93, 83, 84, 86, 76, 75, 68, 60, 58, 56, 48, 45, 68, 63, 59, 97, 92, 86, 111, 106, 102, 109, 102, 96, 106, 97, 92, 119, 110, 103, 135, 126, 119, 148, 139, 132, 160, 151, 144, 170, 161, 154, 172, 163, 156, 168, 159, 152, 175, 168, 160, 176, 169, 161, 178, 171, 163, 182, 175, 169, 187, 180, 174, 190, 185, 181, 195, 190, 186, 196, 193, 188, 199, 199, 197, 200, 202, 201, 206, 206, 206, 211, 213, 212, 218, 218, 218, 223, 224, 226, 227, 228, 230, 230, 231, 233, 232, 233, 235, 234, 235, 237, 234, 238, 241, 236, 240, 243, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 247, 252, 244, 247, 252, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 252, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 237, 240, 247, 237, 240, 247, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 233, 236, 243, 233, 236, 243, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 236, 243, 233, 236, 243, 233, 236, 243, 233, 236, 243, 233, 236, 243, 233, 236, 243, 233, 236, 243, 233, 236, 241, 231, 236, 240, 229, 237, 239, 229, 237, 240, 228, 236, 239, 228, 235, 243, 227, 234, 242, 229, 233, 244, 229, 233, 244, 227, 230, 239, 229, 232, 239, 228, 227, 233, 212, 212, 214, 189, 188, 186, 168, 165, 160, 156, 151, 145, 153, 146, 138, 123, 112, 106, 109, 96, 90, 115, 97, 93, 127, 106, 103, 129, 103, 104, 135, 106, 108, 144, 113, 119, 142, 111, 119, 149, 117, 128, 144, 112, 125, 138, 106, 117, 133, 102, 110, 132, 99, 106, 130, 98, 101, 130, 94, 96, 127, 93, 94, 135, 105, 107, 133, 104, 108, 135, 105, 107, 137, 107, 109, 140, 110, 112, 140, 110, 110, 138, 108, 108, 135, 105, 105, 141, 110, 108, 145, 114, 112, 148, 117, 114, 149, 118, 115, 149, 115, 113, 148, 114, 112, 148, 115, 110, 146, 115, 110, 152, 123, 119, 152, 123, 119, 152, 124, 123, 152, 124, 123, 150, 124, 125, 149, 123, 126, 147, 122, 126, 144, 121, 127, 141, 118, 126, 141, 118, 128, 142, 118, 131, 142, 118, 131, 143, 117, 130, 142, 116, 129, 141, 113, 127, 140, 112, 124, 141, 111, 121, 142, 112, 122, 142, 112, 120, 141, 111, 119, 138, 108, 116, 133, 103, 111, 128, 99, 104, 125, 96, 101, 126, 97, 102, 123, 94, 98, 118, 89, 93, 110, 81, 83, 104, 75, 77, 100, 71, 73, 99, 70, 72, 100, 71, 73, 110, 81, 86, 137, 107, 115, 134, 107, 114, 129, 104, 110, 106, 83, 89, 85, 64, 69, 116, 95, 100, 145, 126, 130, 108, 87, 92, 94, 73, 78, 105, 84, 89, 110, 87, 93, 86, 61, 67, 82, 55, 62, 104, 74, 82, 110, 85, 91, 75, 56, 60, 83, 68, 71, 96, 81, 84, 108, 93, 96, 127, 111, 114, 147, 131, 134, 158, 139, 145, 157, 138, 144, 152, 133, 139, 133, 116, 122, 115, 98, 104, 106, 91, 96, 103, 90, 97, 107, 96, 102, 116, 105, 111, 126, 115, 119, 141, 132, 133, 123, 114, 115, 114, 106, 104, 120, 112, 110, 124, 114, 112, 116, 105, 103, 111, 97, 94, 112, 98, 95, 114, 96, 92, 110, 92, 88, 109, 89, 88, 111, 91, 90, 112, 88, 88, 105, 81, 81, 101, 76, 79, 101, 76, 79, 80, 59, 58, 81, 60, 59, 82, 61, 60, 81, 60, 59, 78, 58, 57, 79, 59, 58, 81, 61, 60, 84, 64, 63, 97, 77, 76, 101, 81, 80, 101, 83, 81, 96, 78, 76, 94, 76, 74, 95, 77, 75, 94, 76, 74, 89, 74, 71, 105, 90, 85, 86, 73, 67, 70, 57, 51, 70, 57, 51, 77, 63, 60, 77, 63, 60, 68, 57, 53, 62, 51, 47, 92, 81, 77, 93, 82, 78, 87, 76, 74, 81, 70, 68, 88, 78, 76, 93, 83, 81, 73, 63, 61, 42, 32, 30, 44, 35, 30, 42, 33, 28, 57, 47, 45, 66, 56, 54, 65, 55, 53, 91, 81, 79, 126, 116, 114, 136, 126, 124, 114, 106, 104, 59, 51, 49, 86, 78, 76, 87, 79, 77, 56, 51, 48, 106, 101, 98, 129, 123, 123, 71, 65, 65, 59, 51, 49, 57, 49, 47, 79, 71, 68, 73, 65, 62, 61, 52, 47, 67, 58, 53, 80, 69, 63, 112, 101, 95, 100, 89, 83, 83, 72, 66, 60, 51, 46, 126, 117, 112, 101, 93, 90, 51, 43, 40, 55, 47, 45, 71, 61, 59, 66, 55, 53, 85, 71, 68, 109, 95, 92, 80, 66, 63, 92, 78, 75, 126, 112, 109, 98, 84, 81, 92, 78, 75, 100, 86, 83, 89, 75, 72, 86, 72, 69, 94, 80, 77, 101, 87, 84, 100, 86, 83, 96, 82, 79, 97, 83, 80, 93, 82, 78, 82, 71, 67, 75, 64, 60, 74, 63, 59, 100, 89, 85, 107, 96, 92, 92, 81, 77, 118, 107, 103, 109, 98, 94, 133, 122, 118, 133, 122, 118, 127, 116, 112, 140, 129, 125, 140, 129, 125, 126, 115, 111, 122, 111, 107, 128, 117, 113, 112, 101, 97, 133, 122, 118, 132, 121, 117, 120, 109, 105, 132, 121, 117, 135, 124, 120, 139, 128, 124, 134, 123, 119, 131, 120, 116, 123, 112, 108, 126, 115, 111, 139, 128, 124, 139, 128, 124, 134, 123, 119, 139, 128, 124, 136, 125, 121, 140, 129, 125, 114, 103, 99, 110, 99, 95, 119, 108, 104, 119, 108, 104, 131, 120, 116, 130, 119, 115, 118, 107, 103, 121, 110, 106, 101, 90, 86, 102, 91, 87, 113, 102, 98, 114, 103, 99, 114, 103, 99, 92, 81, 77, 92, 83, 78, 105, 96, 91, 108, 99, 94, 101, 92, 87, 104, 95, 90, 116, 107, 102, 126, 117, 112, 130, 121, 116, 129, 120, 115, 132, 123, 118, 124, 115, 110, 136, 127, 122, 119, 110, 105, 143, 134, 129, 123, 114, 109, 98, 89, 84, 133, 122, 118, 138, 127, 123, 142, 131, 127, 135, 124, 120, 125, 114, 110, 122, 111, 107, 119, 108, 104, 113, 102, 98, 108, 97, 93, 109, 98, 94, 112, 101, 97, 131, 120, 116, 111, 100, 96, 101, 90, 86, 131, 120, 116, 114, 103, 99, 141, 130, 126, 120, 109, 105, 128, 117, 113, 126, 115, 111, 146, 135, 131, 143, 132, 128, 109, 98, 94, 142, 131, 127, 128, 117, 113, 99, 88, 84, 95, 84, 80, 113, 102, 98, 96, 85, 81, 120, 109, 105, 93, 82, 78, 83, 74, 69, 126, 117, 112, 123, 116, 110, 124, 117, 111, 104, 97, 91, 104, 97, 91, 112, 105, 99, 101, 94, 88, 113, 106, 100, 118, 111, 105, 126, 119, 113, 125, 118, 112, 121, 114, 108, 98, 91, 85, 128, 121, 115, 113, 106, 100, 121, 114, 108, 111, 101, 99, 105, 95, 93, 74, 65, 60, 97, 88, 83, 113, 104, 99, 103, 94, 89, 115, 106, 101, 93, 84, 79, 97, 90, 84, 91, 84, 78, 125, 120, 116, 116, 111, 107, 70, 66, 63, 60, 56, 53, 158, 157, 155, 189, 185, 182, 111, 101, 100, 74, 63, 61, 106, 96, 94, 76, 68, 65, 68, 63, 59, 84, 79, 75, 40, 37, 32, 68, 67, 62, 120, 119, 114, 80, 79, 74, 72, 71, 66, 92, 89, 84, 101, 96, 92, 86, 81, 77, 83, 75, 72, 111, 103, 100, 88, 81, 75, 140, 133, 125, 178, 173, 167, 116, 111, 105, 97, 94, 87, 105, 102, 95, 62, 61, 56, 85, 84, 79, 186, 187, 182, 118, 119, 114, 82, 82, 80, 70, 70, 68, 41, 40, 38, 98, 97, 95, 117, 115, 116, 124, 120, 119, 101, 91, 90, 65, 53, 53, 97, 85, 85, 98, 86, 86, 111, 99, 99, 109, 97, 97, 101, 90, 88, 62, 51, 49, 51, 41, 39, 76, 66, 64, 111, 102, 97, 82, 73, 68, 73, 64, 59, 83, 74, 69, 51, 44, 38, 55, 48, 42, 88, 78, 77, 74, 64, 63, 98, 86, 86, 95, 85, 84, 90, 80, 79, 114, 104, 103, 93, 83, 82, 44, 34, 33, 48, 38, 37, 110, 100, 99, 66, 56, 55, 67, 57, 56, 67, 57, 56, 70, 60, 59, 73, 63, 62, 93, 83, 82, 88, 78, 76, 106, 96, 94, 119, 109, 107, 123, 113, 111, 123, 113, 111, 112, 102, 100, 85, 75, 73, 62, 52, 50, 86, 76, 74, 68, 58, 56, 61, 51, 49, 60, 50, 48, 77, 67, 65, 71, 61, 59, 44, 34, 32, 63, 53, 51, 83, 72, 70, 87, 76, 74, 68, 57, 55, 75, 64, 62, 111, 100, 98, 108, 97, 95, 91, 80, 78, 107, 96, 94, 108, 97, 95, 114, 103, 101, 108, 97, 95, 90, 79, 77, 78, 67, 65, 77, 66, 64, 88, 77, 75, 101, 90, 88, 120, 110, 108, 85, 75, 73, 82, 72, 70, 83, 73, 71, 68, 59, 54, 97, 88, 83, 130, 121, 114, 115, 106, 99, 122, 113, 106, 91, 82, 75, 68, 59, 54, 76, 67, 62, 102, 92, 90, 123, 113, 111, 126, 116, 114, 121, 110, 106, 97, 82, 79, 106, 88, 84, 107, 89, 85, 103, 85, 81, 106, 88, 84, 120, 102, 98, 135, 117, 113, 142, 124, 120, 134, 116, 112, 143, 125, 121, 150, 132, 128, 146, 128, 124, 137, 119, 115, 128, 110, 106, 120, 102, 98, 111, 95, 95, 103, 86, 92, 103, 87, 97, 103, 86, 96, 100, 84, 94, 103, 87, 97, 104, 91, 98, 101, 88, 95, 95, 83, 87, 89, 79, 80, 89, 79, 78, 80, 72, 70, 75, 67, 64, 90, 82, 79, 116, 111, 105, 132, 127, 121, 133, 126, 120, 150, 143, 135, 158, 149, 142, 162, 155, 147, 165, 158, 150, 170, 163, 155, 177, 170, 162, 178, 171, 165, 175, 168, 162, 180, 175, 169, 181, 176, 170, 183, 178, 172, 185, 180, 174, 189, 184, 180, 193, 188, 184, 195, 192, 187, 195, 194, 189, 200, 199, 197, 201, 201, 199, 205, 205, 203, 210, 210, 208, 215, 215, 215, 221, 221, 221, 224, 225, 227, 226, 227, 229, 232, 233, 235, 233, 234, 236, 233, 237, 240, 235, 239, 242, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 247, 252, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 238, 246, 249, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 237, 240, 247, 237, 240, 247, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 233, 236, 243, 233, 236, 243, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 236, 243, 233, 236, 243, 233, 236, 243, 233, 236, 243, 233, 236, 243, 233, 236, 243, 233, 236, 243, 233, 236, 241, 231, 236, 240, 231, 236, 239, 229, 237, 240, 228, 236, 239, 228, 235, 243, 228, 235, 243, 229, 233, 244, 229, 233, 244, 227, 230, 239, 229, 232, 239, 231, 230, 236, 223, 223, 225, 205, 204, 202, 179, 178, 173, 156, 153, 146, 142, 137, 131, 114, 105, 98, 111, 98, 92, 123, 105, 101, 138, 119, 115, 144, 120, 120, 147, 118, 120, 148, 117, 123, 142, 111, 119, 156, 126, 136, 150, 120, 130, 142, 110, 121, 135, 104, 112, 132, 99, 106, 130, 98, 101, 130, 94, 96, 127, 93, 94, 126, 94, 97, 126, 96, 98, 130, 100, 102, 135, 105, 107, 139, 109, 109, 140, 110, 110, 137, 107, 107, 134, 104, 102, 138, 107, 105, 141, 110, 108, 144, 113, 110, 144, 113, 110, 143, 112, 107, 142, 111, 106, 142, 111, 106, 143, 112, 107, 151, 122, 118, 152, 123, 119, 152, 124, 123, 152, 124, 123, 150, 124, 125, 150, 124, 127, 148, 123, 127, 147, 122, 128, 143, 117, 126, 143, 117, 126, 144, 118, 129, 144, 118, 129, 144, 118, 129, 143, 117, 128, 142, 114, 126, 142, 114, 126, 144, 114, 124, 144, 114, 124, 144, 114, 124, 143, 113, 123, 140, 110, 118, 135, 105, 113, 131, 101, 109, 129, 100, 105, 129, 100, 105, 128, 99, 103, 124, 95, 99, 115, 86, 90, 106, 77, 81, 105, 76, 78, 112, 83, 85, 121, 92, 96, 136, 105, 111, 134, 103, 111, 118, 87, 95, 101, 71, 79, 80, 55, 61, 84, 61, 67, 118, 97, 102, 128, 107, 112, 88, 69, 73, 106, 87, 91, 115, 96, 100, 88, 67, 72, 63, 40, 46, 84, 61, 67, 105, 80, 86, 86, 63, 69, 104, 85, 87, 119, 103, 104, 129, 113, 114, 132, 116, 117, 143, 127, 128, 156, 140, 141, 145, 129, 132, 122, 106, 109, 118, 102, 105, 97, 82, 85, 80, 65, 68, 82, 70, 72, 99, 87, 91, 117, 106, 110, 132, 121, 125, 139, 130, 133, 141, 132, 133, 121, 112, 113, 111, 101, 100, 120, 110, 109, 130, 119, 117, 124, 113, 111, 114, 100, 97, 106, 92, 89, 107, 89, 85, 107, 89, 85, 110, 91, 87, 108, 89, 85, 101, 77, 77, 86, 62, 62, 80, 55, 58, 81, 56, 59, 69, 48, 47, 73, 52, 51, 79, 58, 57, 83, 62, 61, 85, 64, 63, 86, 65, 64, 88, 67, 66, 90, 69, 68, 88, 68, 67, 99, 79, 78, 107, 87, 86, 104, 84, 83, 98, 78, 77, 95, 75, 74, 94, 76, 74, 91, 76, 73, 94, 79, 74, 90, 77, 71, 88, 75, 69, 86, 73, 67, 79, 65, 62, 71, 57, 54, 67, 56, 52, 71, 60, 56, 72, 61, 57, 82, 71, 67, 81, 70, 68, 65, 54, 52, 58, 48, 46, 68, 58, 56, 76, 66, 64, 75, 65, 63, 57, 48, 43, 41, 32, 27, 37, 27, 25, 49, 39, 37, 56, 46, 44, 61, 51, 49, 82, 72, 70, 108, 98, 96, 157, 149, 147, 95, 87, 85, 79, 71, 69, 74, 66, 64, 71, 66, 63, 92, 87, 84, 104, 98, 98, 110, 104, 104, 59, 54, 51, 46, 41, 38, 70, 62, 59, 75, 67, 64, 58, 49, 44, 60, 51, 46, 80, 69, 63, 104, 93, 87, 117, 106, 100, 98, 87, 81, 55, 46, 41, 102, 93, 88, 136, 128, 125, 50, 42, 39, 59, 54, 51, 71, 63, 60, 75, 64, 62, 81, 67, 64, 89, 75, 72, 66, 52, 49, 90, 76, 73, 127, 113, 110, 99, 85, 82, 84, 70, 67, 104, 90, 87, 73, 59, 56, 56, 42, 39, 83, 69, 66, 110, 96, 93, 108, 94, 91, 95, 81, 78, 85, 71, 68, 85, 74, 70, 87, 76, 72, 77, 66, 62, 71, 60, 56, 104, 93, 89, 110, 99, 95, 90, 79, 75, 120, 109, 105, 113, 102, 98, 121, 110, 106, 130, 119, 115, 135, 124, 120, 135, 124, 120, 131, 120, 116, 127, 116, 112, 124, 113, 109, 132, 121, 117, 117, 106, 102, 132, 121, 117, 132, 121, 117, 122, 111, 107, 132, 121, 117, 135, 124, 120, 130, 119, 115, 126, 115, 111, 128, 117, 113, 119, 108, 104, 120, 109, 105, 136, 125, 121, 144, 133, 129, 139, 128, 124, 136, 125, 121, 141, 130, 126, 139, 128, 124, 111, 100, 96, 114, 103, 99, 129, 118, 114, 130, 119, 115, 137, 126, 122, 133, 122, 118, 118, 107, 103, 123, 112, 108, 106, 95, 91, 106, 95, 91, 110, 99, 95, 111, 100, 96, 116, 105, 101, 95, 84, 80, 100, 91, 86, 112, 103, 98, 112, 103, 98, 100, 91, 86, 102, 93, 88, 120, 111, 106, 126, 117, 112, 117, 108, 103, 133, 124, 119, 135, 126, 121, 125, 116, 111, 128, 119, 114, 118, 109, 104, 137, 128, 123, 123, 114, 109, 102, 93, 88, 129, 118, 114, 138, 127, 123, 136, 125, 121, 132, 121, 117, 126, 115, 111, 119, 108, 104, 116, 105, 101, 109, 98, 94, 100, 89, 85, 127, 116, 112, 99, 88, 84, 126, 115, 111, 127, 116, 112, 95, 84, 80, 128, 117, 113, 122, 111, 107, 136, 125, 121, 128, 117, 113, 131, 120, 116, 114, 103, 99, 127, 116, 112, 139, 128, 124, 121, 110, 106, 145, 134, 130, 125, 114, 110, 104, 93, 89, 106, 95, 91, 121, 110, 106, 106, 95, 91, 120, 109, 105, 104, 93, 89, 94, 85, 80, 134, 125, 120, 129, 122, 116, 122, 115, 109, 104, 97, 91, 106, 99, 93, 111, 104, 98, 100, 93, 87, 107, 100, 94, 111, 104, 98, 123, 116, 110, 130, 123, 117, 123, 116, 110, 106, 99, 93, 126, 119, 113, 114, 107, 101, 125, 118, 112, 99, 89, 87, 98, 88, 86, 83, 74, 69, 105, 96, 91, 103, 94, 89, 99, 90, 85, 125, 116, 111, 100, 91, 86, 79, 72, 66, 85, 78, 72, 127, 122, 118, 120, 115, 111, 84, 80, 77, 83, 79, 76, 166, 165, 163, 173, 169, 166, 106, 98, 96, 86, 76, 74, 100, 90, 88, 102, 94, 91, 84, 79, 75, 76, 71, 67, 56, 53, 48, 88, 85, 80, 106, 103, 98, 79, 76, 71, 47, 44, 39, 89, 86, 81, 106, 101, 97, 69, 64, 60, 82, 77, 73, 101, 93, 90, 110, 103, 97, 183, 176, 170, 159, 154, 148, 89, 84, 78, 103, 100, 93, 99, 96, 89, 74, 73, 68, 140, 139, 134, 182, 183, 178, 89, 90, 85, 75, 74, 72, 61, 60, 58, 36, 35, 33, 134, 133, 131, 134, 130, 129, 88, 82, 82, 91, 81, 80, 72, 60, 60, 111, 99, 99, 107, 95, 95, 118, 107, 105, 117, 106, 104, 105, 95, 93, 63, 53, 51, 52, 42, 40, 75, 65, 63, 122, 113, 108, 102, 93, 88, 77, 70, 64, 85, 78, 72, 67, 60, 54, 66, 57, 52, 88, 76, 76, 73, 61, 61, 94, 80, 80, 89, 77, 77, 83, 71, 71, 103, 91, 91, 81, 71, 70, 37, 27, 26, 51, 41, 40, 109, 101, 99, 71, 63, 61, 62, 54, 52, 60, 52, 50, 67, 59, 57, 88, 83, 80, 110, 105, 102, 100, 90, 88, 119, 109, 107, 117, 107, 105, 110, 100, 98, 115, 105, 103, 100, 90, 88, 69, 59, 57, 54, 44, 42, 73, 63, 61, 49, 39, 37, 59, 49, 47, 76, 66, 64, 72, 62, 60, 50, 40, 38, 41, 31, 29, 69, 59, 57, 83, 72, 70, 81, 70, 68, 67, 56, 54, 87, 76, 74, 121, 110, 108, 100, 89, 87, 83, 72, 70, 118, 107, 105, 105, 94, 92, 108, 97, 95, 97, 86, 84, 82, 71, 69, 80, 69, 67, 83, 72, 70, 92, 81, 79, 107, 96, 94, 82, 72, 70, 101, 91, 89, 88, 78, 76, 79, 69, 67, 105, 96, 91, 118, 109, 104, 109, 100, 93, 112, 103, 96, 104, 95, 88, 82, 73, 66, 71, 62, 57, 90, 81, 76, 120, 110, 108, 128, 118, 116, 109, 99, 97, 89, 78, 74, 80, 66, 63, 81, 66, 61, 84, 69, 64, 96, 81, 76, 116, 101, 96, 131, 116, 111, 133, 118, 113, 128, 113, 108, 140, 125, 120, 140, 125, 120, 143, 128, 123, 143, 128, 123, 135, 120, 115, 126, 111, 106, 123, 108, 103, 127, 112, 109, 113, 98, 101, 109, 96, 103, 113, 98, 105, 118, 106, 110, 120, 108, 112, 113, 101, 103, 105, 93, 95, 100, 90, 89, 93, 83, 82, 101, 91, 89, 106, 96, 94, 108, 101, 95, 124, 117, 111, 148, 141, 133, 164, 157, 149, 167, 160, 152, 184, 177, 169, 186, 179, 171, 183, 176, 168, 178, 171, 163, 178, 171, 163, 183, 176, 168, 185, 178, 172, 184, 177, 171, 192, 187, 181, 192, 187, 181, 192, 187, 183, 193, 188, 184, 194, 191, 186, 196, 193, 188, 198, 195, 190, 197, 196, 191, 201, 200, 198, 202, 202, 200, 205, 205, 203, 209, 209, 207, 213, 213, 213, 217, 217, 217, 219, 221, 220, 221, 223, 222, 230, 231, 233, 232, 233, 235, 234, 235, 239, 236, 237, 241, 236, 239, 244, 238, 241, 246, 238, 241, 246, 238, 241, 246, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 237, 240, 247, 237, 240, 247, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 233, 236, 243, 233, 236, 243, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 242, 232, 237, 241, 232, 237, 240, 229, 237, 240, 229, 237, 240, 228, 235, 243, 228, 235, 243, 230, 234, 245, 230, 234, 245, 230, 233, 242, 230, 233, 240, 231, 232, 237, 229, 229, 231, 217, 216, 214, 192, 191, 187, 164, 161, 156, 143, 138, 132, 127, 118, 113, 134, 123, 117, 146, 131, 126, 151, 132, 128, 145, 121, 121, 141, 115, 116, 147, 118, 122, 152, 121, 127, 152, 122, 130, 147, 117, 127, 140, 108, 119, 136, 105, 113, 135, 102, 109, 136, 104, 107, 139, 103, 105, 137, 103, 102, 125, 93, 94, 124, 94, 96, 125, 95, 97, 129, 99, 99, 132, 102, 102, 134, 104, 104, 133, 103, 101, 131, 101, 99, 131, 100, 98, 135, 104, 102, 138, 107, 104, 141, 110, 107, 142, 111, 106, 143, 112, 107, 146, 115, 110, 149, 118, 113, 147, 118, 114, 148, 118, 116, 148, 120, 117, 149, 121, 120, 149, 120, 122, 147, 121, 122, 146, 120, 123, 144, 119, 123, 143, 118, 124, 143, 117, 126, 144, 118, 127, 144, 118, 129, 144, 118, 129, 143, 117, 128, 143, 115, 127, 143, 115, 127, 146, 116, 126, 146, 116, 126, 145, 115, 125, 144, 114, 124, 141, 111, 119, 138, 108, 116, 134, 104, 112, 133, 103, 111, 131, 102, 107, 130, 101, 106, 127, 98, 103, 122, 93, 97, 118, 89, 93, 120, 91, 95, 127, 98, 102, 135, 104, 109, 123, 90, 97, 108, 75, 84, 98, 65, 74, 89, 59, 67, 83, 56, 63, 108, 83, 89, 127, 104, 110, 107, 86, 91, 99, 80, 84, 106, 87, 91, 96, 77, 81, 66, 47, 51, 61, 42, 46, 102, 83, 87, 129, 108, 113, 113, 92, 97, 137, 118, 120, 144, 128, 129, 144, 128, 129, 134, 118, 119, 127, 111, 112, 120, 104, 105, 101, 85, 88, 77, 62, 65, 77, 62, 65, 73, 61, 63, 82, 70, 72, 105, 95, 96, 127, 117, 118, 135, 126, 127, 134, 125, 126, 132, 123, 124, 114, 105, 106, 115, 105, 106, 121, 111, 110, 130, 120, 119, 131, 120, 118, 120, 109, 105, 112, 98, 95, 110, 95, 92, 112, 94, 90, 102, 84, 80, 91, 72, 68, 82, 61, 58, 73, 49, 49, 64, 40, 40, 64, 39, 42, 68, 43, 46, 81, 60, 59, 84, 63, 62, 88, 67, 66, 90, 69, 68, 90, 69, 68, 90, 69, 68, 92, 71, 70, 93, 72, 71, 82, 62, 61, 92, 72, 71, 100, 80, 79, 102, 82, 81, 103, 83, 82, 106, 86, 85, 107, 89, 87, 105, 87, 85, 79, 64, 59, 86, 73, 67, 96, 83, 77, 97, 84, 78, 87, 73, 70, 77, 63, 60, 79, 68, 64, 89, 78, 74, 88, 77, 73, 85, 74, 70, 89, 78, 76, 89, 78, 76, 73, 63, 61, 58, 48, 46, 69, 59, 57, 93, 83, 81, 75, 66, 61, 54, 45, 40, 35, 25, 23, 46, 36, 34, 66, 56, 54, 59, 49, 47, 51, 41, 39, 62, 52, 50, 109, 101, 99, 140, 132, 130, 110, 102, 100, 54, 46, 44, 65, 60, 57, 73, 68, 65, 70, 64, 64, 129, 123, 123, 88, 83, 80, 45, 40, 37, 43, 35, 32, 57, 49, 46, 58, 49, 44, 68, 59, 54, 83, 72, 66, 83, 72, 66, 118, 107, 101, 113, 102, 96, 62, 53, 48, 74, 65, 60, 145, 137, 134, 55, 47, 44, 70, 65, 62, 71, 63, 60, 78, 67, 65, 81, 67, 64, 80, 66, 63, 60, 46, 43, 84, 70, 67, 119, 105, 102, 99, 85, 82, 86, 72, 69, 106, 92, 89, 75, 61, 58, 49, 35, 32, 79, 65, 62, 115, 101, 98, 117, 103, 100, 105, 91, 88, 81, 67, 64, 89, 78, 74, 99, 88, 84, 85, 74, 70, 69, 58, 54, 104, 93, 89, 112, 101, 97, 92, 81, 77, 123, 112, 108, 123, 112, 108, 118, 107, 103, 132, 121, 117, 146, 135, 131, 138, 127, 123, 131, 120, 116, 133, 122, 118, 132, 121, 117, 134, 123, 119, 121, 110, 106, 129, 118, 114, 130, 119, 115, 120, 109, 105, 129, 118, 114, 133, 122, 118, 121, 110, 106, 123, 112, 108, 122, 111, 107, 117, 106, 102, 122, 111, 107, 135, 124, 120, 135, 124, 120, 130, 119, 115, 136, 125, 121, 146, 135, 131, 142, 131, 127, 115, 104, 100, 118, 107, 103, 130, 119, 115, 124, 113, 109, 129, 118, 114, 125, 114, 110, 127, 116, 112, 132, 121, 117, 118, 107, 103, 113, 102, 98, 105, 94, 90, 104, 93, 89, 114, 103, 99, 97, 86, 82, 109, 100, 95, 118, 109, 104, 118, 109, 104, 105, 96, 91, 107, 98, 93, 131, 122, 117, 135, 126, 121, 114, 105, 100, 130, 121, 116, 134, 125, 120, 128, 119, 114, 124, 115, 110, 123, 114, 109, 136, 127, 122, 126, 117, 112, 108, 99, 94, 127, 116, 112, 138, 127, 123, 127, 116, 112, 124, 113, 109, 124, 113, 109, 117, 106, 102, 120, 109, 105, 115, 104, 100, 100, 89, 85, 131, 120, 116, 101, 90, 86, 105, 94, 90, 128, 117, 113, 116, 105, 101, 124, 113, 109, 131, 120, 116, 118, 107, 103, 122, 111, 107, 131, 120, 116, 111, 100, 96, 107, 96, 92, 113, 102, 98, 114, 103, 99, 147, 136, 132, 133, 122, 118, 115, 104, 100, 119, 108, 104, 128, 117, 113, 117, 106, 102, 126, 115, 111, 128, 117, 113, 122, 113, 108, 129, 120, 115, 128, 121, 115, 120, 113, 107, 110, 103, 97, 116, 109, 103, 120, 113, 107, 111, 104, 98, 111, 104, 98, 106, 99, 93, 119, 112, 106, 131, 124, 118, 119, 112, 106, 110, 103, 97, 119, 112, 106, 111, 104, 98, 128, 121, 115, 90, 80, 78, 97, 87, 85, 99, 90, 85, 118, 109, 104, 99, 90, 85, 96, 87, 82, 130, 121, 116, 99, 90, 85, 72, 65, 59, 89, 82, 76, 132, 127, 123, 122, 117, 113, 96, 92, 89, 106, 102, 99, 172, 171, 169, 150, 146, 143, 85, 77, 75, 88, 80, 77, 89, 81, 78, 120, 112, 109, 90, 85, 81, 66, 61, 57, 73, 68, 64, 108, 105, 100, 114, 109, 105, 102, 99, 94, 68, 65, 60, 93, 90, 85, 116, 111, 107, 76, 71, 67, 73, 68, 64, 109, 104, 100, 156, 151, 145, 174, 167, 161, 132, 127, 121, 88, 83, 77, 86, 83, 76, 90, 87, 80, 120, 119, 114, 187, 186, 181, 119, 120, 115, 103, 104, 99, 88, 87, 85, 49, 48, 46, 73, 72, 70, 163, 162, 160, 103, 99, 98, 73, 67, 67, 87, 77, 76, 77, 65, 65, 116, 104, 104, 106, 94, 94, 120, 109, 107, 122, 111, 109, 110, 100, 98, 69, 59, 57, 43, 33, 31, 68, 58, 56, 125, 116, 111, 119, 110, 105, 88, 81, 75, 93, 86, 80, 87, 80, 74, 81, 71, 69, 84, 70, 70, 71, 57, 57, 88, 74, 74, 84, 70, 70, 80, 66, 66, 95, 83, 83, 72, 62, 61, 35, 25, 24, 77, 69, 67, 95, 90, 87, 45, 40, 37, 50, 46, 43, 88, 84, 81, 109, 105, 102, 119, 115, 112, 102, 98, 95, 84, 76, 73, 112, 102, 100, 109, 99, 97, 98, 88, 86, 102, 92, 90, 88, 78, 76, 63, 53, 51, 61, 51, 49, 61, 51, 49, 48, 38, 36, 69, 59, 57, 88, 78, 76, 68, 58, 56, 43, 33, 31, 49, 39, 37, 73, 63, 61, 89, 78, 76, 77, 66, 64, 73, 62, 60, 94, 83, 81, 108, 97, 95, 89, 78, 76, 83, 72, 70, 108, 97, 95, 114, 103, 101, 87, 76, 74, 87, 76, 74, 101, 90, 88, 92, 81, 79, 84, 73, 71, 91, 80, 78, 95, 84, 82, 70, 60, 58, 122, 112, 110, 109, 99, 97, 89, 79, 77, 115, 106, 101, 101, 92, 87, 81, 72, 65, 117, 108, 101, 88, 79, 72, 92, 83, 76, 99, 90, 85, 115, 106, 101, 128, 118, 116, 115, 105, 103, 90, 80, 78, 78, 67, 65, 75, 61, 58, 64, 51, 45, 76, 61, 56, 112, 99, 93, 133, 118, 113, 125, 112, 106, 119, 104, 99, 123, 110, 104, 143, 128, 123, 137, 124, 118, 137, 122, 117, 138, 125, 119, 133, 118, 113, 123, 110, 104, 127, 112, 107, 137, 123, 120, 130, 118, 118, 116, 106, 107, 113, 101, 103, 120, 110, 111, 124, 112, 114, 112, 102, 101, 100, 90, 89, 97, 87, 85, 109, 99, 97, 122, 113, 108, 135, 126, 121, 143, 134, 127, 155, 146, 139, 171, 164, 154, 185, 176, 167, 188, 181, 171, 192, 185, 177, 193, 186, 178, 190, 183, 175, 185, 178, 170, 187, 180, 172, 194, 187, 179, 198, 191, 185, 198, 191, 185, 202, 197, 191, 201, 196, 190, 201, 196, 192, 200, 195, 191, 199, 196, 191, 200, 197, 192, 201, 198, 193, 200, 199, 194, 205, 204, 202, 205, 205, 203, 207, 207, 205, 210, 210, 208, 213, 213, 213, 216, 216, 216, 217, 219, 218, 218, 220, 219, 228, 229, 231, 230, 231, 233, 232, 233, 237, 235, 236, 240, 235, 238, 243, 237, 240, 245, 238, 241, 246, 238, 241, 246, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 237, 240, 247, 237, 240, 247, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 233, 236, 243, 233, 236, 243, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 242, 232, 237, 241, 232, 237, 240, 232, 237, 241, 231, 236, 240, 229, 236, 244, 229, 236, 244, 230, 234, 245, 230, 234, 245, 234, 238, 247, 231, 234, 241, 230, 231, 236, 229, 230, 232, 223, 223, 223, 203, 203, 201, 175, 174, 170, 155, 152, 147, 150, 142, 139, 156, 145, 141, 155, 140, 137, 144, 126, 124, 137, 116, 115, 137, 111, 112, 145, 116, 120, 155, 126, 131, 148, 118, 126, 144, 114, 122, 138, 108, 116, 137, 106, 114, 139, 106, 113, 140, 108, 111, 144, 108, 110, 142, 108, 107, 131, 99, 100, 126, 96, 96, 122, 92, 92, 121, 91, 89, 124, 93, 91, 127, 96, 94, 128, 97, 95, 129, 98, 96, 127, 96, 93, 130, 99, 96, 133, 102, 99, 134, 103, 100, 135, 104, 99, 137, 106, 101, 141, 110, 105, 144, 113, 108, 141, 112, 108, 142, 112, 110, 143, 113, 111, 144, 116, 115, 144, 115, 117, 144, 115, 117, 144, 115, 119, 141, 114, 119, 142, 115, 120, 143, 116, 123, 144, 117, 124, 145, 118, 127, 145, 118, 127, 145, 118, 127, 144, 117, 126, 143, 116, 125, 148, 118, 128, 147, 117, 127, 146, 116, 126, 144, 114, 124, 142, 112, 122, 139, 109, 119, 137, 107, 115, 136, 106, 114, 137, 107, 115, 132, 102, 110, 128, 98, 106, 127, 98, 103, 128, 99, 104, 129, 100, 105, 126, 97, 102, 124, 93, 99, 107, 71, 81, 104, 68, 78, 112, 79, 88, 105, 74, 82, 97, 67, 75, 118, 93, 99, 127, 104, 110, 106, 85, 90, 107, 88, 92, 86, 70, 73, 70, 54, 57, 71, 55, 58, 95, 79, 82, 134, 118, 121, 156, 140, 143, 154, 138, 141, 138, 119, 121, 134, 115, 117, 126, 110, 111, 116, 100, 101, 100, 84, 85, 85, 69, 70, 78, 64, 64, 78, 64, 64, 86, 74, 74, 96, 86, 85, 119, 109, 108, 139, 131, 129, 146, 138, 136, 134, 129, 126, 120, 115, 112, 113, 108, 105, 113, 103, 102, 120, 108, 108, 129, 117, 117, 133, 121, 121, 128, 114, 113, 116, 102, 99, 110, 95, 92, 109, 94, 89, 108, 90, 86, 89, 71, 67, 72, 53, 49, 66, 45, 42, 70, 46, 46, 75, 51, 51, 82, 58, 58, 88, 64, 64, 98, 74, 74, 98, 74, 74, 96, 72, 72, 92, 68, 68, 87, 63, 63, 85, 61, 61, 84, 63, 62, 85, 64, 63, 81, 60, 59, 83, 62, 61, 83, 63, 62, 86, 66, 65, 95, 75, 74, 105, 85, 84, 108, 88, 87, 104, 86, 84, 96, 81, 76, 84, 71, 65, 76, 63, 57, 79, 66, 60, 83, 69, 66, 82, 68, 65, 76, 65, 61, 75, 64, 60, 89, 78, 74, 74, 63, 59, 75, 64, 62, 96, 85, 83, 101, 91, 89, 83, 73, 71, 67, 57, 55, 65, 55, 53, 75, 66, 61, 67, 58, 53, 53, 43, 41, 54, 44, 42, 71, 61, 59, 72, 62, 60, 61, 51, 49, 61, 51, 49, 30, 22, 20, 102, 94, 92, 154, 146, 144, 94, 86, 84, 26, 21, 18, 41, 36, 33, 71, 65, 65, 89, 83, 83, 117, 112, 109, 64, 59, 56, 34, 26, 23, 46, 38, 35, 61, 52, 47, 77, 68, 63, 88, 79, 74, 76, 67, 62, 92, 83, 78, 114, 105, 100, 82, 73, 68, 66, 57, 52, 136, 128, 125, 75, 67, 64, 79, 74, 71, 62, 54, 51, 77, 67, 65, 88, 77, 73, 87, 76, 72, 66, 55, 51, 79, 68, 64, 106, 95, 91, 102, 91, 87, 100, 89, 85, 106, 95, 91, 93, 82, 78, 62, 51, 47, 78, 67, 63, 103, 92, 88, 108, 97, 93, 104, 93, 89, 72, 61, 57, 96, 85, 81, 107, 96, 92, 91, 80, 76, 67, 56, 52, 95, 84, 80, 109, 98, 94, 93, 82, 78, 119, 108, 104, 126, 115, 111, 118, 107, 103, 130, 119, 115, 147, 136, 132, 141, 130, 126, 133, 122, 118, 135, 124, 120, 135, 124, 120, 134, 123, 119, 126, 115, 111, 126, 115, 111, 126, 115, 111, 115, 104, 100, 123, 112, 108, 133, 122, 118, 116, 105, 101, 121, 110, 106, 112, 101, 97, 110, 99, 95, 125, 114, 110, 131, 120, 116, 113, 102, 98, 110, 99, 95, 133, 122, 118, 140, 129, 125, 139, 128, 124, 116, 105, 101, 120, 109, 105, 125, 114, 110, 114, 103, 99, 119, 108, 104, 121, 110, 106, 128, 117, 113, 132, 121, 117, 122, 111, 107, 113, 102, 98, 96, 85, 81, 95, 84, 80, 116, 105, 101, 102, 91, 87, 110, 101, 96, 116, 107, 102, 119, 110, 105, 110, 101, 96, 111, 102, 97, 138, 129, 124, 144, 135, 130, 119, 110, 105, 128, 119, 114, 135, 126, 121, 137, 128, 123, 128, 119, 114, 138, 129, 124, 143, 134, 129, 137, 128, 123, 120, 111, 106, 127, 116, 112, 140, 129, 125, 116, 105, 101, 113, 102, 98, 120, 109, 105, 115, 104, 100, 126, 115, 111, 124, 113, 109, 101, 90, 86, 116, 105, 101, 112, 101, 97, 80, 69, 65, 112, 101, 97, 146, 135, 131, 119, 108, 104, 128, 117, 113, 111, 100, 96, 108, 97, 93, 117, 106, 102, 114, 103, 99, 104, 93, 89, 96, 85, 81, 102, 91, 87, 139, 128, 124, 130, 119, 115, 118, 107, 103, 127, 116, 112, 136, 125, 121, 131, 120, 116, 130, 119, 115, 145, 134, 130, 135, 126, 121, 126, 117, 112, 132, 125, 119, 123, 116, 110, 120, 113, 107, 128, 121, 115, 127, 120, 114, 121, 114, 108, 116, 109, 103, 105, 98, 92, 115, 108, 102, 129, 122, 116, 111, 104, 98, 112, 105, 99, 110, 103, 97, 105, 98, 92, 124, 117, 111, 91, 81, 79, 111, 101, 99, 119, 110, 105, 133, 124, 119, 108, 99, 94, 102, 93, 88, 133, 124, 119, 97, 88, 83, 86, 79, 73, 104, 97, 91, 135, 130, 126, 108, 103, 99, 90, 86, 83, 118, 114, 111, 179, 178, 176, 134, 130, 127, 79, 74, 71, 94, 86, 83, 78, 70, 67, 124, 116, 113, 93, 85, 82, 75, 67, 64, 85, 77, 74, 110, 105, 101, 125, 117, 114, 100, 95, 91, 85, 80, 76, 98, 93, 89, 120, 117, 112, 76, 73, 68, 52, 49, 44, 138, 135, 130, 189, 184, 178, 132, 127, 121, 114, 109, 103, 94, 89, 83, 61, 58, 53, 110, 107, 102, 170, 169, 164, 156, 155, 150, 77, 76, 72, 113, 112, 108, 89, 88, 84, 62, 61, 57, 123, 119, 118, 164, 160, 159, 67, 61, 61, 82, 73, 74, 92, 82, 81, 79, 68, 66, 109, 98, 96, 97, 86, 84, 118, 107, 105, 125, 114, 112, 113, 103, 101, 77, 67, 65, 48, 38, 36, 69, 59, 57, 114, 106, 103, 112, 104, 101, 85, 77, 74, 91, 83, 80, 95, 87, 84, 91, 81, 79, 86, 72, 72, 73, 57, 58, 84, 68, 69, 76, 62, 62, 72, 58, 58, 83, 71, 71, 60, 50, 49, 32, 22, 21, 64, 56, 54, 91, 86, 83, 74, 70, 67, 83, 82, 78, 106, 105, 101, 97, 98, 93, 108, 109, 104, 86, 85, 81, 52, 44, 41, 93, 83, 81, 111, 101, 99, 104, 94, 92, 97, 87, 85, 77, 67, 65, 57, 47, 45, 58, 48, 46, 51, 41, 39, 58, 48, 46, 78, 68, 66, 88, 78, 76, 65, 55, 53, 47, 37, 35, 59, 49, 47, 67, 57, 55, 92, 81, 79, 75, 64, 62, 83, 72, 70, 98, 87, 85, 92, 81, 79, 90, 79, 77, 98, 87, 85, 98, 87, 85, 107, 96, 94, 78, 67, 65, 96, 85, 83, 107, 96, 94, 74, 63, 61, 75, 64, 62, 96, 85, 83, 81, 70, 68, 108, 98, 96, 107, 97, 95, 122, 112, 110, 118, 108, 106, 82, 73, 68, 69, 60, 55, 88, 79, 72, 99, 90, 83, 89, 80, 73, 107, 98, 91, 121, 112, 107, 129, 120, 115, 127, 117, 115, 100, 90, 88, 73, 63, 61, 70, 60, 58, 57, 46, 42, 72, 61, 57, 102, 88, 85, 120, 109, 105, 116, 102, 99, 103, 92, 88, 117, 103, 100, 140, 129, 125, 134, 120, 117, 126, 115, 111, 127, 113, 110, 129, 118, 114, 127, 113, 110, 119, 108, 104, 128, 114, 111, 139, 128, 124, 142, 132, 130, 129, 121, 119, 121, 111, 110, 117, 109, 106, 110, 100, 98, 99, 90, 85, 100, 91, 86, 109, 100, 93, 128, 119, 112, 141, 132, 123, 156, 146, 137, 164, 154, 145, 170, 160, 151, 176, 168, 157, 185, 175, 165, 188, 180, 169, 189, 182, 172, 193, 186, 178, 195, 188, 180, 194, 187, 179, 198, 191, 185, 205, 198, 192, 206, 201, 195, 205, 200, 194, 207, 202, 196, 206, 201, 195, 205, 200, 196, 204, 199, 195, 203, 200, 195, 204, 201, 196, 205, 202, 197, 203, 202, 197, 209, 208, 206, 209, 209, 207, 211, 211, 209, 213, 213, 211, 216, 216, 214, 218, 218, 216, 220, 220, 220, 221, 221, 221, 226, 227, 229, 228, 229, 231, 231, 232, 236, 234, 235, 239, 236, 237, 241, 238, 239, 243, 237, 240, 245, 237, 240, 245, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 237, 240, 247, 237, 240, 247, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 233, 236, 243, 233, 236, 243, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 238, 242, 232, 237, 240, 232, 237, 241, 232, 237, 241, 229, 236, 242, 229, 236, 244, 231, 235, 246, 230, 234, 243, 234, 238, 247, 230, 235, 241, 228, 231, 236, 230, 231, 235, 227, 227, 229, 212, 212, 212, 189, 188, 186, 171, 167, 164, 168, 160, 158, 163, 153, 151, 143, 129, 128, 125, 110, 107, 130, 109, 108, 137, 113, 113, 139, 113, 116, 145, 116, 120, 148, 119, 124, 144, 114, 122, 141, 111, 119, 139, 110, 115, 139, 108, 113, 140, 108, 111, 139, 105, 106, 137, 103, 102, 135, 104, 102, 128, 98, 96, 120, 90, 88, 116, 86, 84, 118, 87, 85, 121, 90, 88, 123, 92, 90, 125, 94, 92, 126, 95, 92, 127, 96, 93, 128, 97, 94, 126, 95, 92, 125, 94, 89, 125, 94, 89, 128, 97, 92, 131, 100, 97, 136, 106, 104, 137, 107, 105, 138, 108, 106, 140, 110, 108, 141, 111, 111, 140, 111, 113, 141, 111, 113, 139, 110, 114, 142, 113, 117, 141, 114, 119, 145, 116, 121, 144, 117, 124, 144, 117, 124, 144, 117, 126, 143, 116, 125, 143, 116, 125, 149, 119, 129, 148, 118, 128, 146, 116, 126, 144, 114, 124, 142, 112, 122, 140, 110, 120, 139, 109, 117, 139, 109, 117, 141, 111, 119, 135, 105, 113, 130, 100, 108, 129, 99, 107, 130, 100, 108, 126, 97, 102, 116, 87, 92, 108, 77, 83, 120, 87, 96, 109, 73, 83, 108, 75, 84, 100, 69, 77, 109, 79, 87, 129, 104, 110, 115, 92, 98, 93, 72, 77, 101, 82, 86, 86, 70, 73, 93, 77, 80, 125, 110, 113, 150, 135, 138, 151, 136, 139, 139, 124, 127, 132, 116, 119, 127, 108, 112, 118, 99, 101, 110, 91, 95, 101, 85, 86, 89, 73, 74, 81, 67, 67, 89, 75, 75, 103, 91, 91, 121, 111, 110, 129, 121, 119, 142, 134, 132, 147, 142, 139, 140, 135, 132, 127, 122, 119, 121, 117, 114, 124, 119, 116, 139, 129, 128, 133, 121, 121, 124, 112, 112, 120, 109, 107, 119, 105, 102, 114, 100, 97, 105, 90, 85, 96, 81, 76, 92, 74, 70, 78, 59, 55, 67, 46, 43, 69, 48, 45, 80, 56, 56, 86, 62, 62, 89, 65, 65, 91, 67, 67, 97, 73, 73, 96, 72, 72, 92, 68, 68, 86, 62, 62, 79, 55, 55, 76, 52, 52, 74, 53, 52, 75, 54, 53, 83, 62, 61, 80, 59, 58, 73, 53, 52, 71, 51, 50, 80, 60, 59, 91, 71, 70, 94, 74, 73, 88, 70, 68, 114, 99, 94, 103, 90, 84, 91, 78, 72, 80, 67, 61, 69, 55, 52, 63, 49, 46, 64, 53, 49, 71, 60, 56, 66, 55, 51, 68, 57, 53, 69, 58, 56, 71, 60, 58, 74, 64, 62, 78, 68, 66, 78, 68, 66, 74, 64, 62, 70, 61, 56, 76, 67, 62, 73, 63, 61, 59, 49, 47, 51, 41, 39, 59, 49, 47, 69, 59, 57, 72, 62, 60, 48, 40, 38, 56, 48, 46, 122, 114, 112, 140, 132, 130, 85, 80, 77, 41, 36, 33, 33, 27, 27, 52, 46, 46, 117, 112, 109, 92, 87, 84, 57, 49, 46, 54, 46, 43, 66, 56, 54, 76, 67, 62, 91, 82, 77, 89, 80, 75, 62, 53, 48, 98, 89, 84, 100, 91, 86, 77, 70, 64, 115, 107, 104, 107, 99, 96, 83, 78, 75, 51, 43, 41, 66, 56, 54, 89, 78, 74, 91, 80, 76, 69, 58, 54, 68, 57, 53, 86, 75, 71, 98, 87, 83, 110, 99, 95, 93, 82, 78, 96, 85, 81, 67, 56, 52, 76, 65, 61, 91, 80, 76, 95, 84, 80, 107, 96, 92, 81, 70, 66, 95, 84, 80, 102, 91, 87, 95, 84, 80, 70, 59, 55, 84, 73, 69, 105, 94, 90, 96, 85, 81, 107, 96, 92, 120, 109, 105, 116, 105, 101, 120, 109, 105, 133, 122, 118, 138, 127, 123, 132, 121, 117, 127, 116, 112, 130, 119, 115, 134, 123, 119, 131, 120, 116, 126, 115, 111, 123, 112, 108, 110, 99, 95, 118, 107, 103, 136, 125, 121, 118, 107, 103, 121, 110, 106, 104, 93, 89, 100, 89, 85, 122, 111, 107, 128, 117, 113, 102, 91, 87, 97, 86, 82, 123, 112, 108, 130, 119, 115, 130, 119, 115, 110, 99, 95, 119, 108, 104, 126, 115, 111, 112, 101, 97, 118, 107, 103, 123, 112, 108, 122, 111, 107, 127, 116, 112, 120, 109, 105, 109, 98, 94, 85, 74, 70, 89, 78, 74, 121, 110, 106, 114, 103, 99, 105, 96, 91, 107, 98, 93, 115, 106, 101, 112, 103, 98, 112, 103, 98, 136, 127, 122, 145, 136, 131, 122, 113, 108, 120, 111, 106, 130, 121, 116, 136, 127, 122, 119, 110, 105, 139, 130, 125, 138, 129, 124, 136, 127, 122, 121, 112, 107, 127, 116, 112, 142, 131, 127, 107, 96, 92, 104, 93, 89, 116, 105, 101, 110, 99, 95, 126, 115, 111, 125, 114, 110, 100, 89, 85, 100, 89, 85, 121, 110, 106, 77, 66, 62, 96, 85, 81, 153, 142, 138, 117, 106, 102, 112, 101, 97, 120, 109, 105, 100, 89, 85, 102, 91, 87, 117, 106, 102, 115, 104, 100, 98, 87, 83, 98, 87, 83, 124, 113, 109, 117, 106, 102, 111, 100, 96, 129, 118, 114, 140, 129, 125, 142, 131, 127, 126, 115, 111, 144, 133, 129, 123, 114, 109, 132, 123, 118, 143, 136, 130, 130, 123, 117, 128, 121, 115, 133, 126, 120, 126, 119, 113, 125, 118, 112, 118, 111, 105, 105, 98, 92, 112, 105, 99, 129, 122, 116, 107, 100, 94, 119, 112, 106, 104, 97, 91, 95, 88, 82, 112, 105, 99, 100, 90, 88, 130, 120, 118, 133, 124, 119, 139, 130, 125, 119, 110, 105, 112, 103, 98, 134, 125, 120, 97, 88, 83, 104, 97, 91, 120, 113, 107, 133, 128, 124, 87, 82, 78, 75, 71, 68, 123, 119, 116, 183, 182, 180, 117, 116, 112, 88, 84, 81, 102, 97, 93, 75, 70, 66, 118, 110, 107, 89, 81, 78, 93, 85, 82, 89, 81, 78, 101, 93, 90, 128, 118, 116, 74, 66, 63, 78, 70, 67, 105, 100, 96, 113, 110, 105, 68, 67, 62, 61, 60, 55, 164, 163, 158, 168, 165, 158, 103, 98, 92, 117, 112, 106, 91, 88, 81, 59, 56, 51, 154, 151, 146, 182, 181, 176, 78, 77, 72, 81, 80, 76, 101, 100, 96, 79, 78, 74, 99, 98, 94, 143, 139, 138, 137, 133, 132, 64, 58, 58, 96, 88, 86, 104, 94, 92, 79, 68, 66, 96, 85, 83, 87, 76, 74, 119, 108, 106, 128, 117, 115, 116, 106, 104, 83, 73, 71, 80, 70, 68, 94, 84, 82, 112, 104, 101, 104, 96, 93, 87, 79, 76, 90, 82, 79, 98, 90, 87, 101, 91, 89, 99, 85, 85, 81, 65, 66, 82, 66, 67, 66, 52, 52, 62, 48, 48, 74, 62, 62, 58, 48, 47, 41, 33, 31, 84, 79, 76, 105, 100, 97, 101, 97, 94, 102, 101, 97, 104, 103, 99, 69, 70, 65, 92, 93, 88, 80, 79, 75, 57, 49, 46, 88, 78, 76, 110, 100, 98, 99, 89, 87, 75, 65, 63, 63, 53, 51, 64, 54, 52, 68, 58, 56, 48, 38, 36, 72, 62, 60, 79, 69, 67, 79, 69, 67, 66, 56, 54, 54, 44, 42, 60, 50, 48, 57, 47, 45, 85, 74, 72, 78, 67, 65, 88, 77, 75, 98, 87, 85, 95, 84, 82, 101, 90, 88, 107, 96, 94, 96, 85, 83, 83, 72, 70, 90, 79, 77, 111, 100, 98, 84, 73, 71, 39, 28, 26, 71, 60, 58, 109, 98, 96, 83, 72, 70, 126, 116, 114, 112, 102, 100, 108, 98, 96, 101, 91, 89, 78, 69, 64, 66, 57, 52, 80, 71, 64, 98, 89, 82, 99, 90, 83, 118, 109, 102, 125, 116, 111, 127, 118, 113, 124, 114, 112, 93, 83, 81, 62, 52, 50, 61, 51, 49, 63, 52, 48, 93, 82, 78, 107, 96, 92, 95, 84, 80, 93, 82, 78, 114, 103, 99, 130, 119, 115, 129, 118, 114, 108, 97, 93, 109, 98, 94, 113, 102, 98, 118, 107, 103, 119, 108, 104, 121, 110, 106, 130, 119, 115, 140, 131, 126, 143, 135, 132, 138, 133, 129, 130, 122, 119, 113, 106, 100, 94, 87, 81, 92, 85, 79, 113, 104, 97, 136, 127, 120, 143, 134, 125, 151, 142, 133, 163, 153, 143, 170, 160, 150, 171, 161, 151, 172, 162, 152, 175, 165, 153, 179, 169, 159, 183, 174, 167, 187, 180, 172, 191, 184, 176, 191, 184, 176, 195, 188, 182, 200, 193, 187, 200, 195, 189, 197, 192, 186, 206, 201, 195, 206, 201, 195, 205, 200, 196, 205, 200, 196, 205, 202, 197, 206, 203, 198, 208, 205, 200, 209, 205, 202, 212, 211, 207, 212, 212, 210, 213, 213, 211, 216, 216, 214, 218, 218, 216, 220, 220, 218, 222, 222, 222, 223, 223, 223, 224, 225, 227, 226, 227, 229, 229, 230, 234, 232, 233, 237, 235, 236, 240, 237, 238, 242, 237, 240, 245, 237, 240, 245, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 237, 240, 247, 237, 240, 247, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 233, 236, 243, 233, 236, 243, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 233, 238, 242, 233, 238, 242, 232, 237, 241, 232, 237, 241, 230, 237, 243, 229, 236, 242, 229, 236, 244, 229, 236, 244, 229, 233, 242, 228, 233, 239, 228, 231, 236, 231, 235, 238, 232, 233, 235, 219, 221, 220, 199, 199, 199, 183, 182, 180, 170, 165, 162, 168, 160, 157, 143, 132, 130, 120, 106, 105, 124, 104, 103, 127, 106, 105, 127, 102, 105, 131, 105, 108, 142, 115, 120, 140, 113, 118, 139, 112, 117, 141, 112, 117, 141, 110, 115, 140, 108, 111, 137, 103, 104, 133, 99, 98, 131, 100, 98, 126, 95, 92, 121, 90, 87, 118, 87, 84, 118, 87, 84, 120, 89, 86, 121, 90, 87, 121, 90, 87, 123, 92, 89, 123, 92, 89, 122, 93, 89, 121, 92, 88, 119, 90, 86, 120, 91, 87, 124, 95, 91, 127, 98, 94, 133, 103, 101, 134, 104, 102, 137, 106, 104, 139, 108, 106, 140, 108, 109, 139, 109, 109, 140, 108, 109, 139, 109, 111, 142, 112, 114, 142, 113, 117, 144, 113, 118, 144, 115, 120, 145, 115, 123, 145, 115, 123, 143, 116, 123, 142, 115, 122, 149, 119, 129, 148, 118, 128, 146, 116, 126, 143, 113, 123, 142, 112, 122, 141, 111, 121, 140, 110, 120, 140, 110, 120, 138, 108, 118, 137, 107, 117, 135, 105, 115, 133, 103, 113, 130, 100, 110, 124, 94, 102, 118, 88, 96, 114, 84, 92, 129, 98, 106, 110, 79, 87, 100, 69, 77, 93, 63, 71, 120, 93, 100, 142, 117, 123, 113, 90, 96, 100, 79, 84, 119, 100, 104, 125, 109, 112, 138, 122, 125, 151, 135, 138, 148, 133, 136, 129, 114, 117, 108, 93, 96, 102, 86, 89, 121, 102, 106, 117, 98, 102, 107, 88, 94, 97, 81, 84, 97, 81, 84, 106, 91, 94, 117, 105, 107, 124, 114, 115, 139, 129, 130, 140, 131, 132, 144, 135, 136, 142, 136, 136, 135, 129, 129, 128, 124, 123, 131, 127, 126, 141, 135, 135, 146, 134, 134, 134, 120, 120, 118, 104, 103, 110, 96, 95, 112, 97, 94, 110, 95, 92, 97, 79, 75, 82, 64, 60, 77, 58, 52, 70, 51, 45, 69, 48, 45, 73, 52, 49, 79, 55, 53, 78, 54, 52, 77, 53, 53, 79, 55, 55, 85, 61, 61, 87, 63, 63, 89, 65, 65, 88, 64, 64, 85, 61, 61, 82, 58, 58, 82, 58, 58, 82, 58, 58, 87, 66, 65, 86, 65, 64, 82, 61, 60, 76, 55, 54, 77, 57, 56, 84, 64, 63, 88, 68, 67, 86, 68, 66, 104, 89, 84, 111, 98, 92, 115, 102, 96, 102, 89, 83, 77, 63, 60, 58, 44, 41, 59, 48, 44, 72, 61, 57, 66, 55, 51, 79, 68, 64, 86, 75, 73, 76, 65, 63, 60, 50, 48, 60, 50, 48, 82, 72, 70, 104, 94, 92, 80, 71, 66, 80, 71, 66, 85, 75, 73, 69, 59, 57, 40, 30, 28, 46, 36, 34, 70, 60, 58, 73, 63, 61, 86, 78, 76, 60, 52, 50, 72, 64, 62, 123, 115, 113, 150, 145, 142, 88, 83, 80, 21, 15, 15, 48, 42, 42, 91, 86, 83, 110, 105, 102, 81, 76, 73, 67, 62, 58, 74, 66, 63, 71, 63, 60, 87, 78, 73, 98, 89, 84, 56, 47, 42, 77, 68, 63, 101, 93, 90, 90, 82, 79, 85, 77, 75, 135, 130, 127, 89, 84, 81, 56, 48, 46, 55, 45, 43, 87, 76, 74, 92, 81, 79, 70, 59, 57, 60, 49, 47, 71, 60, 58, 93, 82, 80, 112, 101, 99, 85, 74, 72, 90, 79, 77, 63, 52, 50, 78, 67, 65, 86, 75, 73, 80, 69, 67, 108, 97, 95, 98, 87, 85, 90, 79, 75, 94, 83, 79, 101, 90, 86, 81, 70, 66, 82, 71, 67, 108, 97, 93, 104, 93, 89, 98, 87, 83, 111, 100, 96, 116, 105, 101, 109, 98, 94, 115, 104, 100, 136, 125, 121, 132, 121, 117, 117, 106, 102, 121, 110, 106, 135, 124, 120, 138, 127, 123, 129, 118, 114, 123, 112, 108, 106, 95, 91, 114, 103, 99, 142, 131, 127, 125, 114, 110, 126, 115, 111, 107, 96, 92, 97, 86, 82, 117, 106, 102, 132, 121, 117, 115, 104, 100, 103, 92, 88, 114, 103, 99, 131, 120, 116, 125, 114, 110, 104, 93, 89, 118, 107, 103, 132, 121, 117, 119, 108, 104, 121, 110, 106, 123, 112, 108, 129, 118, 114, 132, 121, 117, 125, 114, 110, 111, 100, 96, 79, 68, 64, 85, 74, 70, 127, 116, 112, 124, 113, 109, 104, 95, 90, 100, 91, 86, 112, 103, 98, 117, 108, 103, 112, 103, 98, 130, 121, 116, 143, 134, 129, 126, 117, 112, 119, 110, 105, 127, 118, 113, 132, 123, 118, 106, 97, 92, 132, 123, 118, 126, 117, 112, 131, 122, 117, 120, 111, 106, 125, 114, 110, 144, 133, 129, 102, 91, 87, 100, 89, 85, 114, 103, 99, 103, 92, 88, 118, 107, 103, 115, 104, 100, 100, 89, 85, 98, 87, 83, 128, 117, 113, 107, 96, 92, 95, 84, 80, 134, 123, 119, 126, 115, 111, 95, 84, 80, 123, 112, 108, 103, 92, 88, 101, 90, 86, 119, 108, 104, 116, 105, 101, 97, 86, 82, 100, 89, 85, 116, 105, 101, 115, 104, 100, 108, 97, 93, 125, 114, 110, 133, 122, 118, 140, 129, 125, 115, 104, 100, 136, 125, 121, 108, 99, 94, 137, 128, 123, 150, 143, 137, 132, 125, 119, 128, 121, 115, 129, 122, 116, 121, 114, 108, 130, 123, 117, 127, 120, 114, 104, 97, 91, 111, 104, 98, 133, 126, 120, 111, 104, 98, 131, 124, 118, 104, 97, 91, 86, 79, 73, 96, 89, 83, 104, 94, 92, 141, 131, 129, 130, 121, 116, 127, 118, 113, 119, 110, 105, 115, 106, 101, 130, 121, 116, 97, 88, 83, 102, 95, 89, 123, 116, 110, 132, 127, 123, 79, 74, 70, 72, 68, 65, 129, 125, 122, 179, 178, 176, 92, 91, 87, 76, 75, 71, 106, 103, 98, 88, 83, 79, 112, 104, 101, 72, 64, 61, 101, 91, 89, 90, 80, 78, 105, 95, 93, 135, 124, 122, 78, 68, 66, 81, 73, 70, 124, 119, 115, 104, 101, 96, 86, 85, 80, 135, 136, 130, 174, 175, 169, 108, 105, 100, 99, 94, 90, 134, 131, 126, 88, 85, 80, 90, 87, 82, 182, 181, 176, 148, 147, 142, 51, 50, 45, 79, 78, 74, 104, 103, 99, 91, 87, 84, 132, 128, 125, 136, 131, 128, 111, 106, 103, 85, 77, 75, 105, 97, 95, 115, 105, 103, 76, 65, 61, 83, 74, 69, 81, 72, 67, 125, 115, 113, 134, 124, 122, 117, 107, 105, 87, 77, 75, 100, 92, 89, 115, 107, 104, 114, 106, 103, 105, 97, 94, 102, 94, 91, 98, 90, 87, 96, 88, 85, 99, 89, 87, 114, 102, 102, 89, 77, 77, 78, 66, 66, 57, 45, 45, 58, 46, 46, 80, 70, 69, 79, 69, 68, 77, 69, 67, 128, 123, 120, 93, 88, 85, 62, 58, 55, 76, 75, 71, 112, 111, 107, 82, 81, 77, 92, 91, 87, 55, 51, 48, 80, 72, 69, 90, 80, 78, 106, 96, 94, 92, 82, 80, 58, 48, 46, 60, 50, 48, 82, 72, 70, 82, 72, 70, 58, 48, 46, 85, 75, 73, 73, 63, 61, 73, 63, 61, 77, 67, 65, 60, 50, 48, 57, 47, 45, 53, 43, 41, 75, 65, 63, 88, 78, 76, 86, 76, 74, 93, 83, 81, 113, 103, 101, 105, 95, 93, 86, 76, 74, 91, 81, 79, 68, 58, 56, 101, 91, 89, 100, 90, 88, 55, 45, 43, 42, 32, 30, 86, 76, 74, 114, 104, 102, 99, 89, 87, 109, 99, 97, 112, 102, 100, 90, 80, 78, 74, 64, 62, 81, 72, 67, 79, 70, 65, 83, 74, 67, 108, 99, 92, 104, 95, 88, 126, 117, 110, 130, 121, 116, 127, 118, 113, 122, 112, 110, 88, 78, 76, 58, 48, 46, 63, 53, 51, 83, 74, 69, 102, 93, 88, 99, 90, 85, 79, 70, 65, 91, 82, 77, 125, 116, 111, 123, 114, 109, 93, 84, 79, 76, 67, 62, 87, 78, 73, 99, 90, 85, 105, 96, 91, 113, 104, 99, 125, 116, 111, 136, 127, 122, 141, 132, 127, 141, 136, 130, 133, 130, 123, 117, 112, 106, 97, 92, 86, 91, 86, 80, 107, 103, 94, 135, 128, 120, 153, 146, 138, 156, 147, 138, 158, 149, 140, 165, 155, 146, 171, 161, 152, 175, 162, 153, 174, 161, 152, 176, 163, 154, 177, 167, 157, 180, 171, 164, 183, 176, 170, 185, 178, 172, 185, 178, 172, 186, 181, 175, 192, 187, 181, 195, 190, 184, 193, 188, 182, 202, 197, 193, 202, 197, 193, 201, 198, 193, 203, 200, 195, 205, 201, 198, 207, 203, 200, 210, 206, 203, 211, 207, 204, 211, 210, 206, 212, 211, 207, 214, 213, 209, 217, 216, 212, 218, 218, 216, 221, 221, 219, 223, 223, 223, 224, 224, 224, 224, 224, 226, 226, 226, 228, 228, 229, 231, 231, 232, 234, 235, 236, 240, 237, 238, 242, 238, 239, 243, 239, 240, 244, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 237, 240, 247, 237, 240, 247, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 233, 236, 243, 233, 236, 243, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 233, 238, 242, 233, 238, 242, 232, 237, 241, 232, 237, 241, 230, 237, 243, 229, 236, 242, 229, 236, 244, 229, 236, 244, 224, 229, 235, 225, 230, 236, 229, 232, 237, 234, 237, 242, 236, 237, 241, 224, 225, 227, 205, 205, 207, 190, 190, 190, 166, 162, 161, 176, 171, 168, 158, 148, 147, 127, 116, 114, 118, 100, 98, 113, 93, 92, 112, 90, 92, 123, 98, 101, 133, 108, 112, 135, 108, 113, 136, 109, 114, 139, 112, 117, 143, 112, 117, 141, 111, 113, 139, 105, 106, 135, 101, 100, 125, 94, 91, 123, 92, 89, 120, 89, 86, 120, 89, 86, 121, 90, 87, 122, 91, 88, 120, 89, 86, 118, 87, 84, 118, 87, 84, 120, 89, 86, 120, 91, 87, 120, 91, 87, 121, 92, 88, 125, 96, 92, 130, 101, 97, 135, 106, 102, 133, 103, 101, 134, 104, 102, 137, 106, 104, 139, 108, 106, 140, 109, 107, 141, 110, 108, 142, 108, 109, 140, 108, 109, 141, 109, 110, 142, 110, 113, 143, 113, 115, 144, 113, 118, 145, 114, 120, 144, 114, 122, 144, 114, 122, 142, 115, 122, 149, 119, 129, 148, 118, 128, 145, 115, 125, 143, 113, 123, 141, 111, 121, 141, 111, 121, 141, 111, 121, 141, 111, 121, 131, 101, 111, 136, 106, 116, 140, 110, 120, 137, 107, 117, 132, 102, 112, 128, 98, 108, 130, 100, 108, 133, 103, 111, 109, 79, 87, 115, 85, 93, 120, 93, 100, 109, 82, 89, 129, 102, 109, 141, 116, 122, 124, 101, 107, 145, 122, 128, 159, 138, 143, 169, 150, 154, 157, 138, 142, 121, 102, 106, 95, 79, 82, 94, 78, 81, 108, 92, 95, 123, 107, 110, 113, 94, 100, 117, 96, 103, 108, 88, 97, 97, 80, 86, 109, 94, 99, 134, 122, 124, 145, 134, 138, 138, 129, 130, 141, 132, 133, 141, 132, 133, 141, 135, 135, 142, 136, 136, 137, 133, 132, 130, 126, 125, 131, 127, 126, 139, 130, 131, 126, 114, 114, 123, 109, 109, 116, 100, 100, 109, 93, 93, 107, 92, 89, 101, 86, 83, 88, 70, 66, 72, 54, 50, 65, 46, 40, 66, 47, 41, 71, 50, 47, 75, 54, 51, 76, 52, 50, 73, 49, 47, 75, 51, 51, 81, 57, 57, 77, 53, 53, 83, 59, 59, 92, 68, 68, 97, 73, 73, 98, 74, 74, 97, 73, 73, 96, 72, 72, 95, 71, 71, 90, 69, 68, 96, 75, 74, 97, 76, 75, 90, 69, 68, 85, 65, 64, 89, 69, 68, 96, 76, 75, 98, 80, 78, 88, 73, 68, 92, 79, 73, 101, 88, 82, 109, 96, 90, 103, 89, 86, 83, 69, 66, 62, 51, 47, 52, 41, 37, 67, 56, 52, 60, 49, 45, 70, 59, 57, 88, 77, 75, 76, 66, 64, 48, 38, 36, 47, 37, 35, 68, 58, 56, 95, 86, 81, 80, 71, 66, 90, 80, 78, 87, 77, 75, 57, 47, 45, 61, 51, 49, 84, 74, 72, 79, 69, 67, 60, 52, 50, 72, 64, 62, 81, 73, 71, 79, 71, 69, 112, 107, 104, 132, 127, 124, 86, 80, 80, 50, 44, 44, 66, 61, 58, 114, 109, 106, 92, 87, 84, 74, 69, 66, 82, 74, 71, 72, 64, 61, 81, 72, 67, 95, 86, 81, 67, 58, 53, 64, 55, 50, 94, 86, 83, 92, 84, 81, 58, 53, 50, 152, 147, 144, 95, 90, 87, 67, 62, 59, 57, 47, 45, 93, 82, 80, 97, 86, 84, 77, 66, 64, 65, 54, 52, 71, 60, 58, 97, 86, 84, 119, 108, 106, 97, 86, 84, 95, 84, 82, 64, 53, 51, 85, 74, 72, 85, 74, 72, 66, 55, 53, 97, 86, 84, 100, 89, 87, 86, 75, 71, 88, 77, 73, 108, 97, 93, 93, 82, 78, 86, 75, 71, 115, 104, 100, 113, 102, 98, 95, 84, 80, 105, 94, 90, 117, 106, 102, 104, 93, 89, 105, 94, 90, 135, 124, 120, 134, 123, 119, 112, 101, 97, 117, 106, 102, 137, 126, 122, 143, 132, 128, 131, 120, 116, 124, 113, 109, 105, 94, 90, 113, 102, 98, 147, 136, 132, 131, 120, 116, 133, 122, 118, 114, 103, 99, 100, 89, 85, 115, 104, 100, 139, 128, 124, 135, 124, 120, 117, 106, 102, 111, 100, 96, 140, 129, 125, 127, 116, 112, 101, 90, 86, 119, 108, 104, 138, 127, 123, 126, 115, 111, 122, 111, 107, 117, 106, 102, 143, 132, 128, 145, 134, 130, 136, 125, 121, 117, 106, 102, 79, 68, 64, 84, 73, 69, 129, 118, 114, 128, 117, 113, 107, 98, 93, 99, 90, 85, 114, 105, 100, 122, 113, 108, 114, 105, 100, 128, 119, 114, 142, 133, 128, 129, 120, 115, 130, 121, 116, 136, 127, 122, 137, 128, 123, 104, 95, 90, 132, 123, 118, 125, 116, 111, 134, 125, 120, 125, 116, 111, 123, 112, 108, 144, 133, 129, 100, 89, 85, 100, 89, 85, 113, 102, 98, 97, 86, 82, 110, 99, 95, 103, 92, 88, 102, 91, 87, 106, 95, 91, 132, 121, 117, 140, 129, 125, 104, 93, 89, 114, 103, 99, 137, 126, 122, 86, 75, 71, 115, 104, 100, 108, 97, 93, 111, 100, 96, 120, 109, 105, 106, 95, 91, 89, 78, 74, 101, 90, 86, 117, 106, 102, 124, 113, 109, 112, 101, 97, 121, 110, 106, 123, 112, 108, 131, 120, 116, 104, 93, 89, 132, 121, 117, 104, 95, 90, 137, 128, 123, 151, 144, 138, 129, 122, 116, 124, 117, 111, 124, 117, 111, 119, 112, 106, 137, 130, 124, 139, 132, 126, 103, 96, 90, 110, 103, 97, 136, 129, 123, 116, 109, 103, 141, 134, 128, 106, 99, 93, 81, 74, 68, 85, 78, 72, 102, 92, 90, 143, 133, 131, 120, 111, 106, 111, 102, 97, 114, 105, 100, 112, 103, 98, 123, 114, 109, 96, 87, 82, 87, 80, 74, 118, 111, 105, 134, 129, 125, 84, 79, 75, 80, 76, 73, 136, 132, 129, 171, 170, 168, 67, 66, 62, 52, 51, 47, 100, 99, 94, 104, 99, 95, 107, 102, 98, 52, 42, 40, 94, 84, 82, 91, 80, 78, 121, 110, 108, 121, 110, 108, 81, 71, 69, 76, 66, 64, 118, 113, 109, 72, 69, 64, 88, 89, 83, 193, 194, 188, 146, 147, 141, 58, 55, 50, 105, 100, 96, 149, 146, 141, 90, 87, 82, 121, 120, 115, 186, 185, 180, 108, 107, 102, 76, 75, 70, 55, 54, 50, 126, 125, 121, 116, 112, 109, 142, 138, 135, 124, 119, 116, 99, 94, 91, 99, 91, 89, 109, 99, 97, 122, 113, 108, 75, 64, 60, 76, 67, 62, 80, 71, 66, 133, 123, 121, 139, 129, 127, 118, 108, 106, 87, 77, 75, 92, 84, 81, 114, 106, 103, 108, 100, 97, 105, 97, 94, 114, 106, 103, 102, 94, 91, 85, 77, 74, 84, 76, 73, 123, 113, 112, 93, 83, 82, 75, 67, 65, 53, 45, 43, 60, 52, 50, 93, 85, 83, 105, 97, 95, 116, 108, 106, 69, 64, 61, 67, 62, 59, 78, 73, 70, 93, 88, 85, 94, 90, 87, 40, 36, 33, 77, 73, 70, 73, 68, 65, 80, 72, 69, 83, 73, 71, 109, 99, 97, 105, 95, 93, 68, 58, 56, 73, 63, 61, 93, 83, 81, 77, 67, 65, 69, 59, 57, 93, 83, 81, 69, 59, 57, 73, 63, 61, 89, 79, 77, 65, 55, 53, 54, 44, 42, 55, 45, 43, 69, 59, 57, 100, 90, 88, 83, 73, 71, 88, 78, 76, 130, 120, 118, 100, 90, 88, 56, 46, 44, 81, 71, 69, 71, 61, 59, 102, 92, 90, 77, 67, 65, 44, 34, 32, 75, 65, 63, 109, 99, 97, 111, 101, 99, 114, 104, 102, 99, 89, 87, 73, 63, 61, 92, 82, 80, 89, 79, 77, 51, 42, 37, 83, 74, 69, 127, 118, 111, 103, 94, 87, 101, 92, 85, 133, 124, 117, 142, 133, 128, 134, 125, 120, 120, 110, 108, 83, 73, 71, 59, 49, 47, 74, 64, 62, 86, 77, 72, 104, 95, 90, 110, 101, 96, 98, 89, 84, 95, 86, 81, 103, 94, 89, 96, 87, 82, 78, 69, 64, 54, 45, 40, 73, 64, 59, 89, 80, 75, 98, 89, 84, 110, 101, 96, 129, 120, 115, 142, 133, 128, 142, 135, 129, 143, 138, 132, 122, 119, 112, 93, 90, 83, 78, 75, 68, 97, 93, 84, 131, 127, 118, 153, 146, 138, 153, 146, 138, 164, 155, 148, 163, 154, 145, 167, 156, 150, 174, 164, 155, 180, 167, 159, 179, 166, 157, 181, 168, 160, 182, 172, 163, 185, 176, 169, 188, 181, 175, 188, 181, 175, 188, 181, 175, 190, 185, 179, 199, 194, 188, 204, 199, 193, 204, 199, 193, 198, 193, 189, 198, 193, 189, 199, 196, 191, 201, 198, 193, 204, 200, 197, 208, 204, 201, 211, 207, 204, 213, 209, 206, 209, 208, 204, 211, 210, 206, 213, 212, 208, 215, 214, 210, 218, 218, 216, 220, 220, 218, 222, 222, 222, 224, 224, 224, 223, 223, 225, 225, 225, 227, 227, 228, 230, 231, 232, 234, 234, 235, 239, 237, 238, 242, 238, 239, 243, 239, 240, 244, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 240, 245, 249, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 237, 240, 247, 237, 240, 247, 237, 240, 247, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 233, 236, 243, 233, 236, 243, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 233, 236, 241, 233, 236, 241, 232, 237, 243, 231, 236, 242, 229, 236, 242, 229, 236, 242, 228, 235, 241, 228, 235, 241, 229, 236, 242, 227, 234, 240, 228, 233, 237, 230, 235, 239, 233, 236, 241, 227, 231, 234, 215, 216, 220, 205, 205, 207, 183, 181, 182, 173, 169, 168, 156, 148, 146, 133, 123, 121, 119, 104, 101, 117, 99, 97, 126, 105, 104, 134, 113, 112, 143, 121, 123, 141, 116, 119, 138, 111, 116, 140, 113, 118, 147, 116, 121, 146, 116, 118, 140, 106, 107, 132, 98, 97, 134, 100, 98, 130, 96, 94, 126, 92, 90, 124, 90, 88, 123, 92, 89, 124, 93, 90, 124, 93, 90, 123, 92, 89, 122, 92, 90, 122, 92, 90, 122, 92, 90, 120, 90, 88, 119, 91, 88, 122, 94, 91, 128, 100, 97, 133, 103, 101, 131, 101, 101, 131, 99, 100, 131, 100, 98, 132, 101, 99, 136, 102, 101, 139, 105, 103, 143, 107, 107, 144, 110, 109, 137, 103, 102, 140, 106, 107, 141, 109, 110, 141, 111, 113, 141, 110, 115, 141, 112, 117, 144, 115, 120, 146, 117, 122, 143, 113, 121, 144, 114, 122, 145, 115, 125, 146, 116, 126, 145, 115, 125, 143, 113, 123, 140, 110, 120, 138, 108, 118, 143, 113, 123, 143, 113, 123, 141, 111, 121, 138, 108, 118, 135, 105, 115, 131, 101, 111, 127, 97, 107, 123, 96, 105, 118, 91, 98, 105, 80, 86, 110, 85, 91, 128, 103, 109, 140, 115, 121, 151, 128, 134, 158, 135, 141, 153, 130, 136, 143, 120, 126, 121, 100, 105, 100, 79, 84, 96, 75, 80, 106, 85, 90, 114, 93, 98, 107, 88, 92, 97, 78, 84, 96, 75, 84, 97, 76, 85, 105, 85, 96, 121, 104, 112, 138, 123, 130, 145, 133, 137, 144, 133, 139, 141, 132, 135, 141, 132, 135, 139, 133, 135, 138, 132, 134, 137, 131, 133, 136, 130, 130, 134, 128, 128, 132, 126, 126, 133, 123, 124, 119, 105, 105, 99, 83, 84, 90, 72, 72, 94, 76, 76, 87, 69, 67, 70, 52, 50, 71, 52, 48, 85, 66, 60, 69, 48, 43, 72, 51, 46, 73, 52, 47, 72, 51, 46, 77, 53, 51, 84, 60, 58, 88, 64, 64, 87, 63, 63, 92, 68, 68, 93, 69, 69, 97, 73, 73, 103, 79, 79, 109, 85, 85, 113, 89, 89, 111, 90, 89, 110, 89, 88, 109, 88, 87, 105, 84, 83, 96, 76, 75, 88, 68, 67, 83, 63, 62, 80, 60, 59, 80, 60, 59, 80, 62, 60, 76, 61, 56, 71, 58, 52, 66, 53, 47, 73, 60, 54, 96, 82, 79, 111, 97, 94, 94, 83, 79, 68, 57, 53, 64, 53, 49, 84, 73, 69, 91, 80, 78, 80, 69, 67, 73, 63, 61, 74, 64, 62, 60, 50, 48, 37, 27, 25, 63, 54, 49, 58, 49, 44, 73, 63, 61, 95, 85, 83, 84, 74, 72, 54, 44, 42, 53, 43, 41, 76, 66, 64, 84, 76, 74, 42, 34, 32, 68, 60, 58, 91, 83, 81, 65, 60, 57, 96, 91, 88, 134, 128, 128, 99, 93, 93, 83, 79, 78, 77, 73, 72, 88, 83, 80, 99, 94, 91, 82, 74, 71, 61, 53, 50, 73, 63, 61, 95, 85, 83, 90, 80, 78, 36, 26, 24, 84, 76, 73, 87, 79, 76, 61, 56, 53, 127, 122, 119, 134, 130, 129, 67, 62, 59, 64, 54, 52, 91, 81, 79, 105, 95, 93, 84, 74, 72, 80, 70, 68, 79, 69, 67, 82, 72, 70, 128, 118, 116, 101, 91, 89, 111, 101, 99, 78, 68, 66, 89, 79, 77, 80, 70, 68, 82, 72, 70, 70, 60, 58, 117, 107, 105, 85, 74, 70, 92, 81, 77, 99, 88, 84, 100, 89, 85, 101, 90, 86, 110, 99, 95, 112, 101, 97, 103, 92, 88, 110, 99, 95, 116, 105, 101, 100, 89, 85, 112, 101, 97, 124, 113, 109, 121, 110, 106, 132, 121, 117, 122, 111, 107, 137, 126, 122, 152, 141, 137, 106, 95, 91, 121, 110, 106, 105, 94, 90, 112, 101, 97, 134, 123, 119, 139, 128, 124, 125, 114, 110, 138, 127, 123, 105, 94, 90, 118, 107, 103, 109, 98, 94, 136, 125, 121, 131, 120, 116, 117, 106, 102, 136, 125, 121, 122, 111, 107, 118, 107, 103, 115, 104, 100, 110, 99, 95, 119, 108, 104, 123, 112, 108, 108, 97, 93, 130, 119, 115, 146, 135, 131, 120, 109, 105, 119, 108, 104, 91, 80, 76, 75, 64, 60, 126, 115, 111, 128, 117, 113, 122, 113, 108, 118, 109, 104, 103, 94, 89, 117, 108, 103, 127, 118, 113, 124, 115, 110, 133, 124, 119, 126, 117, 112, 132, 123, 118, 126, 117, 112, 119, 110, 105, 119, 110, 105, 124, 115, 110, 128, 119, 114, 125, 116, 111, 120, 111, 106, 121, 110, 106, 110, 99, 95, 110, 99, 95, 87, 76, 72, 121, 110, 106, 103, 92, 88, 95, 84, 80, 120, 109, 105, 103, 92, 88, 124, 113, 109, 118, 107, 103, 115, 104, 100, 118, 107, 103, 125, 114, 110, 133, 122, 118, 112, 101, 97, 80, 69, 65, 121, 110, 106, 106, 95, 91, 121, 110, 106, 104, 93, 89, 100, 89, 85, 98, 87, 83, 108, 97, 93, 108, 97, 93, 114, 103, 99, 118, 107, 103, 113, 102, 98, 111, 100, 96, 117, 106, 102, 114, 103, 99, 99, 90, 85, 120, 111, 106, 132, 125, 119, 149, 142, 136, 139, 132, 126, 119, 112, 106, 119, 112, 106, 128, 121, 115, 137, 130, 124, 132, 125, 119, 113, 106, 100, 144, 137, 131, 132, 125, 119, 136, 129, 123, 110, 103, 97, 93, 86, 80, 87, 80, 74, 101, 91, 89, 139, 129, 127, 118, 109, 104, 94, 85, 80, 109, 100, 95, 131, 122, 117, 130, 121, 116, 95, 86, 81, 100, 93, 87, 140, 133, 127, 115, 110, 106, 121, 116, 112, 84, 80, 77, 145, 141, 138, 182, 181, 179, 75, 74, 70, 29, 28, 24, 100, 99, 94, 118, 113, 109, 105, 100, 96, 92, 82, 80, 79, 69, 67, 102, 91, 89, 118, 107, 105, 122, 111, 109, 70, 60, 58, 77, 67, 65, 128, 123, 119, 80, 77, 72, 147, 148, 142, 184, 185, 179, 82, 83, 77, 51, 50, 46, 106, 102, 99, 132, 128, 125, 82, 78, 75, 184, 183, 179, 157, 156, 152, 88, 87, 83, 86, 85, 81, 54, 51, 46, 88, 85, 80, 166, 161, 157, 114, 109, 105, 70, 62, 59, 96, 88, 85, 86, 76, 74, 111, 101, 99, 105, 96, 91, 95, 86, 79, 64, 55, 50, 92, 83, 78, 116, 107, 102, 115, 106, 101, 125, 117, 114, 94, 86, 83, 101, 93, 90, 92, 84, 81, 85, 77, 75, 124, 116, 114, 105, 100, 97, 70, 65, 62, 87, 82, 79, 62, 57, 54, 105, 100, 97, 110, 106, 103, 64, 60, 57, 89, 85, 82, 132, 127, 124, 107, 102, 99, 82, 77, 74, 58, 53, 50, 54, 46, 44, 83, 75, 73, 77, 69, 67, 110, 102, 100, 86, 78, 76, 47, 39, 37, 85, 75, 74, 67, 57, 56, 84, 74, 72, 107, 97, 95, 101, 91, 89, 95, 85, 83, 79, 69, 67, 78, 68, 66, 94, 84, 82, 73, 63, 61, 102, 92, 90, 72, 62, 60, 61, 51, 49, 66, 56, 54, 69, 59, 57, 68, 58, 56, 64, 54, 52, 63, 53, 51, 65, 55, 53, 93, 83, 81, 101, 91, 89, 117, 107, 105, 104, 94, 92, 68, 58, 56, 71, 61, 59, 73, 63, 61, 88, 78, 76, 76, 66, 64, 49, 39, 37, 83, 73, 71, 116, 106, 104, 106, 96, 94, 110, 100, 98, 115, 105, 103, 70, 60, 58, 83, 73, 71, 95, 85, 83, 72, 62, 60, 63, 54, 49, 116, 107, 102, 133, 124, 117, 77, 68, 61, 133, 124, 117, 130, 121, 114, 135, 126, 121, 132, 123, 118, 101, 91, 89, 67, 57, 55, 70, 60, 58, 95, 85, 83, 118, 111, 105, 121, 114, 108, 106, 99, 93, 101, 94, 88, 106, 99, 93, 82, 75, 69, 55, 48, 42, 62, 55, 49, 58, 51, 45, 72, 65, 59, 90, 83, 77, 107, 100, 94, 124, 117, 111, 138, 131, 125, 144, 137, 131, 143, 136, 130, 134, 129, 123, 104, 101, 94, 92, 89, 82, 115, 112, 105, 146, 141, 135, 159, 154, 148, 164, 157, 151, 167, 160, 154, 164, 155, 150, 164, 155, 148, 166, 155, 151, 168, 157, 151, 173, 162, 156, 180, 170, 161, 188, 175, 169, 190, 179, 173, 186, 179, 173, 188, 183, 177, 192, 187, 181, 194, 189, 183, 194, 189, 185, 195, 190, 186, 195, 192, 187, 197, 194, 189, 198, 195, 190, 199, 196, 191, 201, 197, 194, 203, 199, 196, 204, 203, 199, 206, 205, 201, 208, 207, 203, 209, 208, 204, 207, 206, 202, 209, 208, 204, 213, 212, 208, 217, 216, 212, 220, 219, 217, 222, 221, 219, 221, 221, 219, 220, 220, 218, 218, 218, 218, 222, 222, 222, 228, 228, 230, 231, 231, 233, 232, 233, 237, 234, 235, 239, 237, 238, 242, 240, 241, 245, 236, 239, 244, 237, 240, 245, 239, 242, 247, 241, 244, 249, 242, 245, 250, 243, 246, 251, 243, 246, 251, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 237, 240, 247, 237, 240, 247, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 233, 236, 243, 233, 236, 243, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 233, 236, 241, 233, 236, 241, 232, 237, 243, 231, 236, 242, 231, 236, 242, 229, 236, 242, 228, 235, 241, 228, 235, 241, 230, 237, 243, 227, 234, 240, 227, 232, 236, 229, 234, 238, 232, 235, 240, 228, 231, 236, 219, 220, 225, 209, 210, 214, 184, 184, 186, 174, 172, 173, 159, 153, 153, 144, 134, 133, 136, 122, 121, 136, 121, 118, 147, 127, 126, 155, 134, 133, 147, 125, 127, 141, 119, 121, 136, 111, 115, 134, 108, 111, 136, 107, 109, 139, 109, 111, 139, 107, 108, 140, 106, 105, 133, 99, 97, 130, 96, 94, 125, 91, 89, 123, 89, 87, 124, 90, 88, 123, 92, 89, 122, 91, 88, 121, 90, 87, 121, 91, 89, 121, 91, 89, 121, 91, 89, 120, 90, 88, 118, 90, 87, 121, 93, 90, 126, 98, 97, 130, 102, 101, 127, 97, 97, 127, 95, 96, 125, 94, 92, 127, 93, 92, 130, 95, 93, 134, 99, 97, 139, 104, 102, 142, 107, 105, 141, 103, 102, 141, 105, 105, 142, 108, 107, 140, 108, 109, 137, 107, 109, 137, 106, 111, 138, 109, 114, 140, 111, 116, 141, 111, 119, 142, 112, 120, 144, 114, 122, 144, 114, 124, 144, 114, 124, 142, 112, 122, 139, 109, 119, 138, 108, 118, 143, 113, 123, 142, 112, 122, 141, 111, 121, 138, 108, 118, 135, 105, 115, 131, 101, 111, 128, 98, 108, 124, 97, 106, 136, 113, 119, 128, 105, 111, 137, 114, 120, 151, 128, 134, 153, 130, 136, 148, 125, 131, 138, 115, 121, 126, 101, 107, 107, 82, 88, 100, 75, 81, 92, 67, 73, 89, 66, 72, 95, 70, 76, 94, 71, 77, 91, 68, 74, 85, 64, 71, 92, 71, 80, 112, 92, 103, 125, 108, 118, 128, 112, 122, 135, 122, 129, 147, 136, 142, 141, 132, 137, 125, 116, 121, 135, 129, 131, 130, 124, 126, 129, 123, 125, 136, 130, 130, 146, 137, 138, 143, 134, 135, 130, 120, 121, 118, 106, 106, 104, 88, 89, 92, 74, 74, 82, 64, 64, 85, 67, 65, 89, 71, 69, 84, 65, 61, 70, 51, 45, 60, 41, 35, 78, 57, 52, 82, 61, 56, 85, 64, 59, 87, 66, 61, 92, 68, 66, 96, 72, 70, 96, 72, 72, 94, 70, 70, 91, 67, 67, 92, 68, 68, 95, 71, 71, 102, 78, 78, 111, 87, 87, 117, 96, 95, 122, 101, 100, 124, 103, 102, 132, 111, 110, 129, 109, 108, 125, 105, 104, 116, 96, 95, 103, 83, 82, 88, 68, 67, 74, 54, 53, 65, 47, 45, 68, 53, 48, 70, 57, 51, 70, 57, 51, 67, 54, 48, 69, 55, 52, 81, 67, 64, 91, 80, 76, 97, 86, 82, 80, 69, 65, 85, 74, 70, 87, 76, 74, 85, 74, 72, 82, 72, 70, 83, 73, 71, 79, 69, 67, 72, 62, 60, 70, 61, 56, 71, 62, 57, 69, 59, 57, 69, 59, 57, 78, 68, 66, 85, 75, 73, 70, 60, 58, 48, 38, 36, 53, 45, 43, 57, 49, 47, 53, 45, 43, 66, 58, 56, 72, 67, 64, 48, 43, 40, 80, 74, 74, 172, 166, 166, 114, 110, 109, 53, 49, 48, 113, 108, 105, 110, 105, 102, 70, 62, 60, 80, 72, 69, 66, 56, 54, 80, 70, 68, 88, 78, 76, 54, 44, 42, 58, 50, 47, 86, 78, 75, 61, 56, 53, 95, 90, 87, 141, 137, 136, 69, 64, 61, 61, 53, 51, 81, 71, 69, 107, 97, 95, 98, 88, 86, 88, 78, 76, 88, 78, 76, 88, 78, 76, 116, 106, 104, 99, 89, 87, 115, 105, 103, 91, 81, 79, 92, 82, 80, 82, 72, 70, 96, 86, 84, 86, 76, 74, 107, 97, 95, 99, 88, 84, 99, 88, 84, 95, 84, 80, 88, 77, 73, 89, 78, 74, 103, 92, 88, 113, 102, 98, 112, 101, 97, 112, 101, 97, 121, 110, 106, 99, 88, 84, 104, 93, 89, 121, 110, 106, 120, 109, 105, 128, 117, 113, 126, 115, 111, 130, 119, 115, 139, 128, 124, 111, 100, 96, 122, 111, 107, 108, 97, 93, 120, 109, 105, 123, 112, 108, 127, 116, 112, 122, 111, 107, 137, 126, 122, 111, 100, 96, 123, 112, 108, 107, 96, 92, 123, 112, 108, 126, 115, 111, 124, 113, 109, 127, 116, 112, 116, 105, 101, 116, 105, 101, 117, 106, 102, 115, 104, 100, 124, 113, 109, 128, 117, 113, 116, 105, 101, 124, 113, 109, 137, 126, 122, 118, 107, 103, 120, 109, 105, 97, 86, 82, 85, 74, 70, 132, 121, 117, 136, 125, 121, 118, 109, 104, 119, 110, 105, 108, 99, 94, 121, 112, 107, 130, 121, 116, 125, 116, 111, 123, 114, 109, 105, 96, 91, 128, 119, 114, 122, 113, 108, 117, 108, 103, 119, 110, 105, 127, 118, 113, 132, 123, 118, 130, 121, 116, 124, 115, 110, 114, 103, 99, 108, 97, 93, 111, 100, 96, 87, 76, 72, 125, 114, 110, 118, 107, 103, 105, 94, 90, 113, 102, 98, 110, 99, 95, 131, 120, 116, 124, 113, 109, 116, 105, 101, 113, 102, 98, 121, 110, 106, 138, 127, 123, 128, 117, 113, 102, 91, 87, 119, 108, 104, 94, 83, 79, 114, 103, 99, 108, 97, 93, 119, 108, 104, 113, 102, 98, 107, 96, 92, 103, 92, 88, 112, 101, 97, 119, 108, 104, 112, 101, 97, 102, 91, 87, 101, 90, 86, 104, 93, 89, 101, 92, 87, 109, 100, 95, 122, 115, 109, 134, 127, 121, 127, 120, 114, 112, 105, 99, 111, 104, 98, 118, 111, 105, 125, 118, 112, 130, 123, 117, 116, 109, 103, 141, 134, 128, 130, 123, 117, 141, 134, 128, 109, 102, 96, 87, 80, 74, 83, 76, 70, 122, 112, 110, 135, 125, 123, 103, 94, 89, 89, 80, 75, 111, 102, 97, 130, 121, 116, 130, 121, 116, 102, 93, 88, 110, 103, 97, 138, 131, 125, 122, 117, 113, 120, 115, 111, 92, 88, 85, 161, 157, 154, 177, 176, 174, 74, 73, 69, 22, 21, 17, 102, 99, 94, 123, 118, 114, 124, 116, 113, 86, 78, 75, 56, 46, 44, 98, 88, 86, 118, 108, 106, 102, 91, 89, 46, 36, 34, 69, 61, 58, 118, 113, 109, 126, 123, 118, 174, 173, 168, 129, 130, 124, 87, 88, 82, 67, 66, 62, 96, 92, 89, 95, 91, 88, 117, 113, 110, 181, 180, 176, 121, 120, 116, 75, 74, 70, 90, 89, 85, 53, 50, 45, 118, 115, 110, 151, 146, 142, 65, 60, 56, 52, 44, 41, 93, 85, 82, 81, 71, 69, 126, 117, 112, 110, 101, 94, 93, 84, 77, 67, 58, 53, 103, 94, 89, 119, 110, 105, 103, 94, 89, 111, 103, 100, 88, 80, 77, 103, 95, 92, 106, 98, 95, 67, 59, 57, 90, 82, 80, 107, 102, 99, 70, 65, 62, 64, 59, 56, 59, 55, 52, 85, 84, 80, 113, 112, 108, 114, 113, 109, 113, 112, 108, 108, 104, 101, 97, 93, 90, 94, 89, 86, 77, 72, 69, 74, 66, 64, 97, 87, 86, 100, 90, 89, 116, 104, 104, 87, 75, 75, 54, 42, 42, 76, 62, 62, 64, 52, 52, 101, 91, 89, 100, 90, 88, 97, 87, 85, 100, 90, 88, 76, 66, 64, 72, 62, 60, 101, 91, 89, 96, 86, 84, 107, 97, 95, 55, 45, 43, 65, 55, 53, 76, 66, 64, 68, 58, 56, 73, 63, 61, 64, 54, 52, 57, 47, 45, 72, 62, 60, 97, 87, 85, 111, 101, 99, 119, 109, 107, 90, 80, 78, 57, 47, 45, 68, 58, 56, 73, 63, 61, 97, 87, 85, 59, 49, 47, 67, 57, 55, 120, 110, 108, 114, 104, 102, 89, 79, 77, 102, 92, 90, 91, 81, 79, 49, 39, 37, 109, 99, 97, 91, 81, 79, 77, 67, 65, 127, 118, 113, 114, 105, 100, 85, 76, 69, 128, 119, 112, 153, 144, 137, 147, 138, 131, 129, 120, 115, 101, 92, 87, 80, 70, 68, 83, 73, 71, 109, 99, 97, 133, 123, 121, 143, 136, 130, 109, 102, 96, 102, 95, 89, 101, 94, 88, 75, 68, 62, 58, 51, 45, 54, 47, 41, 40, 33, 27, 75, 68, 62, 86, 79, 73, 100, 93, 87, 113, 106, 100, 127, 120, 114, 140, 133, 127, 146, 139, 133, 146, 139, 133, 142, 137, 131, 130, 127, 120, 129, 126, 119, 147, 144, 137, 165, 160, 154, 169, 164, 158, 168, 161, 155, 167, 160, 154, 164, 155, 150, 166, 157, 152, 171, 162, 157, 176, 165, 161, 181, 170, 166, 185, 174, 168, 187, 176, 172, 189, 178, 174, 191, 184, 178, 191, 186, 180, 193, 188, 182, 194, 189, 183, 194, 189, 185, 195, 190, 186, 198, 195, 190, 201, 198, 193, 200, 197, 192, 201, 198, 193, 203, 199, 196, 205, 201, 198, 205, 204, 200, 207, 206, 202, 208, 207, 203, 209, 208, 204, 208, 207, 203, 210, 209, 205, 214, 213, 209, 218, 217, 213, 220, 219, 217, 222, 221, 219, 221, 221, 219, 221, 221, 219, 220, 220, 220, 223, 223, 223, 228, 228, 230, 231, 231, 233, 231, 232, 236, 233, 234, 238, 235, 236, 240, 238, 239, 243, 236, 239, 244, 237, 240, 245, 239, 242, 247, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 237, 240, 247, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 233, 236, 243, 233, 236, 243, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 233, 236, 243, 233, 236, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 229, 237, 240, 228, 236, 239, 231, 239, 242, 227, 235, 238, 225, 232, 238, 226, 233, 239, 230, 235, 241, 228, 233, 239, 222, 225, 232, 218, 219, 224, 193, 194, 198, 182, 182, 184, 167, 163, 162, 155, 147, 145, 150, 139, 137, 153, 138, 135, 158, 140, 136, 161, 142, 138, 134, 114, 113, 136, 115, 114, 138, 113, 116, 137, 111, 114, 138, 109, 111, 139, 109, 111, 143, 111, 112, 148, 114, 113, 134, 99, 97, 130, 95, 93, 126, 91, 89, 122, 88, 86, 122, 88, 87, 123, 89, 88, 120, 89, 87, 119, 88, 86, 120, 90, 90, 120, 90, 90, 119, 91, 90, 118, 90, 89, 117, 89, 88, 119, 91, 90, 121, 95, 96, 126, 97, 99, 120, 90, 92, 119, 87, 88, 118, 84, 83, 116, 82, 81, 120, 85, 83, 127, 89, 86, 134, 96, 93, 138, 100, 97, 141, 101, 99, 141, 103, 100, 141, 106, 104, 138, 104, 103, 134, 102, 105, 132, 102, 104, 132, 103, 107, 134, 105, 109, 140, 111, 116, 142, 113, 118, 143, 114, 119, 144, 114, 122, 144, 114, 122, 142, 112, 120, 139, 109, 117, 138, 108, 116, 139, 109, 117, 139, 109, 117, 140, 110, 120, 140, 110, 120, 140, 110, 120, 139, 109, 119, 138, 108, 118, 135, 108, 117, 143, 120, 126, 136, 115, 120, 144, 123, 128, 153, 130, 136, 144, 121, 127, 130, 105, 111, 112, 87, 93, 95, 68, 75, 91, 64, 71, 93, 66, 73, 95, 68, 75, 93, 68, 74, 92, 65, 72, 92, 67, 73, 97, 72, 78, 100, 77, 85, 129, 107, 119, 135, 115, 127, 137, 120, 130, 135, 119, 129, 137, 124, 133, 143, 132, 140, 140, 131, 136, 131, 125, 129, 131, 125, 127, 133, 127, 129, 140, 131, 132, 146, 137, 138, 145, 135, 136, 132, 122, 121, 111, 99, 99, 95, 81, 81, 96, 77, 79, 94, 74, 75, 88, 68, 69, 84, 64, 63, 90, 70, 69, 94, 73, 70, 81, 60, 55, 63, 42, 37, 72, 51, 46, 76, 55, 50, 85, 61, 57, 92, 68, 64, 96, 72, 70, 99, 75, 73, 99, 75, 73, 98, 74, 72, 88, 67, 66, 89, 68, 67, 90, 69, 68, 94, 73, 72, 101, 80, 79, 109, 89, 88, 117, 97, 96, 122, 102, 101, 121, 101, 100, 125, 105, 104, 128, 108, 107, 128, 110, 108, 122, 104, 102, 111, 93, 91, 99, 81, 79, 91, 73, 71, 84, 69, 64, 86, 73, 67, 86, 73, 67, 75, 62, 56, 61, 47, 44, 59, 45, 42, 78, 67, 63, 101, 90, 86, 92, 81, 77, 73, 62, 58, 59, 48, 46, 63, 52, 50, 70, 60, 58, 73, 63, 61, 75, 65, 63, 79, 69, 67, 68, 59, 54, 83, 74, 69, 86, 76, 74, 77, 67, 65, 82, 72, 70, 94, 84, 82, 83, 73, 71, 59, 49, 47, 80, 72, 70, 97, 89, 87, 48, 40, 38, 33, 25, 23, 74, 69, 66, 50, 45, 42, 26, 20, 20, 86, 80, 80, 143, 139, 138, 106, 102, 101, 47, 41, 41, 101, 96, 93, 119, 111, 109, 62, 54, 52, 72, 64, 61, 65, 57, 54, 81, 73, 70, 79, 71, 68, 53, 45, 43, 104, 96, 94, 72, 66, 66, 61, 55, 55, 147, 143, 142, 91, 86, 83, 67, 59, 57, 77, 67, 65, 103, 93, 91, 101, 91, 89, 96, 86, 84, 99, 89, 87, 96, 86, 84, 110, 100, 98, 98, 88, 86, 115, 105, 103, 104, 94, 92, 94, 84, 82, 83, 73, 71, 109, 99, 97, 105, 95, 93, 97, 87, 85, 107, 96, 92, 104, 93, 89, 95, 84, 80, 86, 75, 71, 88, 77, 73, 101, 90, 86, 112, 101, 97, 117, 106, 102, 113, 102, 98, 128, 117, 113, 102, 91, 87, 97, 86, 82, 120, 109, 105, 121, 110, 106, 122, 111, 107, 131, 120, 116, 131, 120, 116, 125, 114, 110, 115, 104, 100, 116, 105, 101, 103, 92, 88, 129, 118, 114, 112, 101, 97, 120, 109, 105, 120, 109, 105, 133, 122, 118, 117, 106, 102, 127, 116, 112, 107, 96, 92, 105, 94, 90, 118, 107, 103, 129, 118, 114, 124, 113, 109, 116, 105, 101, 115, 104, 100, 118, 107, 103, 118, 107, 103, 124, 113, 109, 127, 116, 112, 120, 109, 105, 125, 114, 110, 131, 120, 116, 120, 109, 105, 123, 112, 108, 105, 94, 90, 96, 85, 81, 133, 122, 118, 139, 128, 124, 115, 106, 101, 124, 115, 110, 114, 105, 100, 121, 112, 107, 129, 120, 115, 128, 119, 114, 126, 117, 112, 102, 93, 88, 130, 121, 116, 126, 117, 112, 120, 111, 106, 120, 111, 106, 128, 119, 114, 135, 126, 121, 130, 121, 116, 121, 112, 107, 119, 108, 104, 114, 103, 99, 115, 104, 100, 80, 69, 65, 117, 106, 102, 126, 115, 111, 116, 105, 101, 105, 94, 90, 95, 84, 80, 127, 116, 112, 133, 122, 118, 134, 123, 119, 126, 115, 111, 122, 111, 107, 132, 121, 117, 120, 109, 105, 126, 115, 111, 124, 113, 109, 98, 87, 83, 115, 104, 100, 103, 92, 88, 121, 110, 106, 117, 106, 102, 104, 93, 89, 101, 90, 86, 112, 101, 97, 118, 107, 103, 109, 98, 94, 92, 81, 77, 83, 72, 68, 89, 78, 74, 100, 91, 86, 95, 86, 81, 109, 102, 96, 115, 108, 102, 113, 106, 100, 107, 100, 94, 104, 97, 91, 110, 103, 97, 113, 106, 100, 126, 119, 113, 124, 117, 111, 144, 137, 131, 133, 126, 120, 147, 140, 134, 106, 99, 93, 82, 75, 69, 86, 79, 73, 138, 128, 126, 125, 115, 113, 90, 81, 76, 98, 89, 84, 126, 117, 112, 130, 121, 116, 124, 115, 110, 103, 94, 89, 114, 107, 101, 125, 118, 112, 123, 118, 114, 115, 110, 106, 103, 99, 96, 187, 183, 180, 170, 169, 167, 75, 74, 70, 28, 24, 21, 109, 104, 100, 124, 119, 115, 132, 124, 121, 73, 65, 62, 32, 24, 21, 106, 98, 95, 124, 116, 113, 75, 65, 63, 38, 30, 27, 43, 35, 32, 124, 119, 115, 177, 174, 169, 163, 162, 157, 96, 95, 90, 91, 90, 85, 89, 85, 82, 93, 89, 88, 84, 80, 79, 167, 163, 162, 159, 158, 154, 98, 97, 93, 82, 78, 75, 94, 90, 87, 70, 67, 62, 151, 148, 143, 132, 127, 123, 28, 20, 17, 56, 47, 42, 99, 90, 85, 77, 66, 62, 136, 125, 121, 107, 98, 91, 88, 79, 72, 70, 61, 54, 114, 105, 98, 119, 112, 106, 90, 83, 77, 100, 93, 87, 84, 77, 71, 119, 111, 108, 108, 100, 97, 75, 70, 67, 108, 103, 100, 109, 103, 103, 45, 39, 39, 43, 37, 37, 75, 71, 70, 106, 107, 102, 111, 112, 107, 123, 124, 119, 97, 98, 93, 83, 82, 78, 108, 104, 101, 95, 90, 87, 60, 55, 52, 102, 94, 92, 104, 94, 93, 109, 97, 97, 97, 83, 83, 69, 55, 55, 59, 45, 45, 67, 51, 52, 72, 58, 58, 120, 109, 107, 90, 80, 78, 92, 82, 80, 106, 96, 94, 76, 66, 64, 72, 62, 60, 113, 103, 101, 117, 107, 105, 85, 75, 73, 36, 26, 24, 80, 70, 68, 84, 74, 72, 59, 49, 47, 73, 63, 61, 62, 52, 50, 63, 53, 51, 69, 61, 58, 89, 81, 78, 112, 104, 101, 117, 109, 106, 78, 70, 67, 56, 48, 45, 79, 71, 68, 86, 78, 75, 77, 69, 66, 75, 67, 64, 92, 84, 81, 109, 101, 98, 98, 90, 87, 101, 93, 90, 100, 92, 89, 48, 40, 37, 75, 65, 63, 100, 90, 88, 114, 104, 102, 124, 114, 112, 126, 117, 112, 102, 93, 88, 100, 91, 84, 135, 126, 119, 128, 119, 112, 136, 127, 120, 123, 114, 109, 93, 84, 79, 89, 79, 77, 118, 108, 106, 145, 135, 133, 152, 142, 140, 150, 142, 139, 102, 94, 91, 83, 75, 72, 78, 70, 67, 54, 46, 43, 43, 35, 32, 51, 43, 40, 49, 41, 38, 85, 77, 74, 94, 86, 83, 105, 97, 94, 115, 107, 104, 129, 121, 118, 144, 136, 133, 153, 145, 142, 155, 147, 144, 146, 141, 137, 151, 146, 142, 161, 156, 152, 169, 164, 160, 173, 168, 164, 171, 166, 162, 167, 159, 156, 162, 154, 151, 165, 157, 154, 169, 161, 158, 176, 168, 165, 183, 173, 171, 187, 177, 175, 189, 180, 175, 188, 178, 176, 187, 178, 173, 196, 189, 183, 195, 190, 184, 195, 190, 186, 195, 190, 186, 194, 191, 186, 196, 193, 188, 200, 197, 192, 204, 201, 196, 204, 200, 197, 205, 201, 198, 204, 203, 199, 205, 204, 200, 206, 205, 201, 207, 206, 202, 208, 207, 205, 209, 208, 204, 212, 208, 205, 214, 211, 206, 215, 214, 210, 218, 217, 213, 220, 219, 215, 222, 221, 217, 222, 221, 219, 223, 222, 220, 222, 222, 222, 225, 225, 225, 228, 228, 230, 229, 229, 231, 229, 229, 231, 231, 231, 233, 233, 233, 235, 235, 236, 240, 236, 239, 244, 237, 240, 245, 239, 242, 247, 240, 243, 248, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 233, 236, 243, 233, 236, 243, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 233, 236, 243, 233, 236, 243, 232, 237, 243, 231, 236, 242, 229, 237, 240, 229, 237, 240, 231, 239, 242, 228, 236, 239, 225, 232, 238, 225, 232, 238, 229, 234, 240, 229, 234, 240, 228, 231, 238, 225, 228, 235, 207, 210, 215, 195, 196, 198, 176, 174, 175, 162, 157, 154, 155, 144, 142, 151, 137, 134, 146, 131, 126, 143, 125, 121, 114, 94, 93, 127, 107, 106, 143, 121, 123, 152, 127, 130, 151, 125, 126, 148, 118, 120, 146, 114, 115, 147, 113, 114, 136, 100, 100, 131, 96, 94, 126, 91, 89, 123, 88, 86, 122, 88, 87, 122, 88, 87, 118, 87, 85, 117, 86, 84, 118, 88, 88, 119, 89, 89, 119, 91, 90, 117, 88, 90, 116, 87, 89, 116, 87, 89, 117, 91, 92, 122, 93, 95, 114, 84, 86, 111, 79, 80, 109, 75, 76, 107, 72, 70, 111, 73, 70, 118, 79, 74, 126, 87, 82, 131, 92, 87, 135, 96, 91, 137, 98, 93, 138, 100, 97, 135, 101, 99, 132, 100, 101, 131, 101, 103, 132, 103, 107, 134, 105, 109, 141, 112, 116, 142, 113, 118, 144, 115, 120, 145, 116, 121, 145, 116, 121, 143, 113, 121, 141, 111, 119, 140, 110, 118, 135, 105, 113, 136, 106, 114, 140, 110, 120, 143, 113, 123, 146, 116, 126, 148, 118, 128, 149, 119, 129, 148, 121, 130, 136, 113, 119, 127, 106, 111, 131, 108, 114, 133, 110, 116, 123, 98, 104, 111, 84, 91, 104, 74, 82, 93, 63, 71, 102, 72, 80, 103, 73, 81, 100, 73, 80, 98, 71, 78, 99, 72, 79, 106, 81, 87, 121, 96, 102, 130, 107, 115, 156, 136, 147, 136, 119, 129, 135, 118, 128, 149, 134, 141, 146, 133, 140, 126, 117, 122, 122, 116, 120, 137, 131, 133, 140, 134, 136, 151, 142, 143, 157, 148, 149, 148, 138, 137, 126, 114, 114, 103, 89, 88, 86, 70, 70, 81, 63, 63, 90, 70, 71, 94, 74, 75, 92, 72, 71, 85, 64, 63, 81, 60, 57, 83, 62, 59, 86, 65, 60, 85, 64, 59, 66, 45, 40, 68, 47, 42, 76, 52, 48, 85, 61, 57, 92, 68, 66, 96, 72, 70, 99, 75, 73, 103, 79, 77, 103, 82, 81, 102, 81, 80, 100, 79, 78, 97, 77, 76, 98, 78, 77, 103, 83, 82, 110, 90, 89, 115, 95, 94, 108, 88, 87, 110, 92, 90, 115, 97, 95, 120, 102, 100, 121, 103, 101, 120, 102, 100, 117, 99, 97, 113, 98, 95, 104, 91, 85, 98, 85, 79, 95, 82, 76, 93, 80, 74, 81, 67, 64, 70, 56, 53, 72, 61, 57, 86, 75, 71, 112, 101, 97, 85, 74, 70, 59, 48, 46, 54, 43, 41, 63, 53, 51, 72, 62, 60, 76, 66, 64, 78, 68, 66, 58, 49, 44, 55, 46, 41, 65, 55, 53, 85, 75, 73, 97, 87, 85, 95, 85, 83, 93, 83, 81, 96, 86, 84, 58, 50, 48, 70, 62, 60, 70, 62, 60, 60, 52, 50, 54, 49, 46, 49, 44, 41, 36, 30, 30, 26, 20, 20, 113, 109, 108, 172, 168, 167, 49, 43, 43, 55, 49, 49, 134, 126, 124, 73, 65, 63, 59, 51, 48, 80, 72, 69, 71, 63, 60, 82, 74, 71, 65, 57, 55, 112, 107, 104, 75, 69, 69, 41, 35, 35, 130, 126, 125, 120, 114, 114, 79, 71, 69, 88, 78, 76, 96, 86, 84, 89, 79, 77, 102, 92, 90, 108, 98, 96, 97, 87, 85, 118, 108, 106, 100, 90, 88, 106, 96, 94, 103, 93, 91, 91, 81, 79, 83, 73, 71, 110, 100, 98, 115, 105, 103, 96, 86, 84, 99, 88, 84, 103, 92, 88, 100, 89, 85, 98, 87, 83, 104, 93, 89, 109, 98, 94, 111, 100, 96, 116, 105, 101, 114, 103, 99, 133, 122, 118, 111, 100, 96, 99, 88, 84, 123, 112, 108, 125, 114, 110, 119, 108, 104, 132, 121, 117, 139, 128, 124, 120, 109, 105, 117, 106, 102, 108, 97, 93, 93, 82, 78, 134, 123, 119, 110, 99, 95, 121, 110, 106, 122, 111, 107, 126, 115, 111, 115, 104, 100, 125, 114, 110, 108, 97, 93, 92, 81, 77, 109, 98, 94, 125, 114, 110, 129, 118, 114, 120, 109, 105, 114, 103, 99, 114, 103, 99, 115, 104, 100, 117, 106, 102, 121, 110, 106, 121, 110, 106, 132, 121, 117, 128, 117, 113, 126, 115, 111, 128, 117, 113, 113, 102, 98, 106, 95, 91, 126, 115, 111, 133, 122, 118, 111, 102, 97, 129, 120, 115, 122, 113, 108, 121, 112, 107, 124, 115, 110, 129, 120, 115, 139, 130, 125, 122, 113, 108, 139, 130, 125, 134, 125, 120, 125, 116, 111, 121, 112, 107, 127, 118, 113, 134, 125, 120, 126, 117, 112, 112, 103, 98, 116, 105, 101, 113, 102, 98, 116, 105, 101, 70, 59, 55, 99, 88, 84, 125, 114, 110, 131, 120, 116, 115, 104, 100, 91, 80, 76, 121, 110, 106, 130, 119, 115, 136, 125, 121, 131, 120, 116, 123, 112, 108, 127, 116, 112, 112, 101, 97, 119, 108, 104, 122, 111, 107, 114, 103, 99, 123, 112, 108, 93, 82, 78, 110, 99, 95, 111, 100, 96, 109, 98, 94, 107, 96, 92, 116, 105, 101, 115, 104, 100, 104, 93, 89, 89, 78, 74, 75, 64, 60, 77, 66, 62, 91, 82, 77, 87, 78, 73, 105, 98, 92, 103, 96, 90, 106, 99, 93, 109, 102, 96, 106, 99, 93, 114, 107, 101, 113, 106, 100, 120, 113, 107, 131, 124, 118, 151, 144, 138, 140, 133, 127, 148, 141, 135, 96, 89, 83, 82, 75, 69, 99, 92, 86, 136, 126, 124, 112, 102, 100, 90, 81, 76, 121, 112, 107, 145, 136, 131, 128, 119, 114, 114, 105, 100, 97, 88, 83, 111, 104, 98, 108, 101, 95, 118, 113, 109, 110, 105, 101, 116, 112, 109, 207, 203, 200, 160, 159, 157, 79, 75, 72, 48, 43, 40, 121, 113, 110, 120, 112, 109, 122, 114, 111, 60, 52, 49, 32, 24, 21, 126, 118, 115, 127, 122, 118, 62, 54, 51, 50, 45, 41, 28, 23, 19, 156, 151, 147, 190, 187, 182, 111, 108, 103, 111, 108, 103, 94, 91, 86, 94, 90, 89, 85, 81, 80, 115, 111, 110, 193, 189, 188, 105, 104, 100, 96, 95, 91, 95, 91, 88, 86, 82, 79, 117, 114, 109, 163, 158, 154, 110, 102, 99, 34, 26, 23, 88, 79, 74, 112, 103, 98, 76, 65, 61, 129, 118, 114, 98, 89, 82, 86, 77, 70, 75, 66, 59, 115, 106, 99, 112, 105, 99, 85, 78, 72, 98, 91, 85, 80, 73, 67, 121, 113, 110, 117, 109, 106, 121, 116, 113, 129, 124, 121, 78, 72, 72, 43, 37, 37, 85, 79, 79, 107, 103, 102, 113, 112, 108, 92, 93, 88, 90, 89, 85, 54, 53, 49, 68, 67, 63, 116, 112, 109, 88, 83, 80, 63, 55, 53, 130, 120, 119, 104, 94, 93, 97, 85, 85, 60, 46, 46, 51, 35, 36, 78, 62, 63, 82, 66, 67, 105, 89, 90, 125, 114, 112, 83, 73, 71, 93, 83, 81, 110, 100, 98, 82, 72, 70, 89, 79, 77, 123, 113, 111, 113, 103, 101, 47, 37, 35, 40, 30, 28, 102, 92, 90, 81, 71, 69, 52, 42, 40, 71, 61, 59, 58, 48, 46, 82, 72, 70, 70, 62, 59, 81, 73, 70, 109, 101, 98, 114, 106, 103, 80, 72, 69, 72, 64, 61, 96, 88, 85, 99, 91, 88, 73, 65, 62, 99, 91, 88, 90, 82, 79, 77, 69, 66, 95, 87, 84, 107, 99, 96, 81, 73, 70, 44, 36, 33, 101, 91, 89, 95, 85, 83, 138, 128, 126, 145, 135, 133, 94, 85, 80, 104, 95, 90, 140, 131, 124, 121, 112, 105, 102, 93, 86, 118, 109, 102, 116, 107, 102, 101, 92, 87, 108, 98, 96, 138, 128, 126, 150, 140, 138, 140, 130, 128, 122, 114, 111, 99, 91, 88, 61, 53, 50, 53, 45, 42, 66, 58, 55, 55, 47, 44, 56, 48, 45, 89, 81, 78, 97, 89, 86, 104, 96, 93, 110, 102, 99, 116, 108, 105, 126, 118, 115, 140, 132, 129, 149, 141, 138, 151, 143, 140, 143, 135, 132, 150, 145, 141, 156, 151, 147, 157, 152, 148, 159, 154, 150, 163, 158, 154, 163, 155, 152, 158, 150, 147, 168, 160, 157, 172, 164, 161, 178, 170, 167, 184, 176, 173, 187, 179, 176, 189, 181, 178, 188, 180, 177, 187, 179, 176, 194, 189, 183, 196, 191, 185, 199, 194, 190, 199, 194, 190, 198, 195, 190, 198, 195, 190, 200, 197, 192, 203, 200, 195, 207, 203, 200, 207, 203, 200, 206, 205, 201, 207, 206, 202, 207, 206, 202, 208, 207, 203, 208, 207, 205, 209, 208, 204, 214, 210, 207, 215, 212, 207, 215, 214, 210, 217, 216, 212, 219, 218, 214, 221, 220, 216, 222, 221, 219, 223, 222, 220, 224, 224, 224, 226, 226, 226, 227, 227, 229, 227, 227, 229, 227, 227, 229, 227, 227, 229, 230, 230, 232, 232, 233, 235, 237, 238, 243, 236, 239, 244, 238, 241, 246, 240, 243, 248, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 233, 236, 243, 233, 236, 243, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 236, 236, 244, 236, 236, 244, 234, 237, 244, 234, 237, 244, 232, 237, 241, 232, 237, 241, 229, 237, 240, 229, 237, 240, 229, 239, 241, 227, 237, 239, 226, 233, 239, 226, 233, 239, 227, 234, 242, 228, 235, 243, 229, 233, 242, 229, 233, 242, 219, 224, 228, 206, 210, 213, 188, 188, 190, 171, 167, 166, 159, 149, 147, 148, 134, 131, 136, 121, 116, 129, 112, 105, 117, 98, 94, 133, 114, 110, 153, 132, 131, 163, 139, 139, 158, 132, 133, 150, 120, 122, 143, 111, 112, 142, 108, 109, 139, 103, 103, 135, 99, 99, 129, 93, 93, 126, 90, 90, 124, 90, 91, 123, 89, 90, 119, 87, 88, 117, 85, 86, 118, 88, 90, 119, 89, 91, 119, 90, 92, 117, 88, 92, 113, 87, 90, 112, 86, 89, 114, 88, 91, 118, 89, 93, 110, 80, 82, 107, 75, 76, 104, 70, 71, 101, 66, 64, 104, 66, 63, 110, 71, 66, 118, 77, 73, 122, 81, 75, 126, 85, 79, 128, 89, 84, 131, 93, 90, 132, 97, 95, 133, 99, 100, 132, 102, 102, 136, 107, 109, 139, 110, 112, 140, 111, 113, 142, 113, 117, 144, 115, 119, 145, 116, 120, 146, 117, 121, 144, 115, 120, 143, 114, 119, 141, 112, 117, 136, 106, 114, 137, 107, 115, 140, 110, 118, 142, 112, 120, 144, 114, 124, 145, 115, 125, 145, 115, 125, 143, 116, 125, 133, 106, 113, 124, 99, 105, 128, 101, 108, 129, 102, 109, 118, 88, 96, 110, 80, 88, 110, 79, 87, 106, 75, 83, 106, 75, 83, 102, 72, 80, 98, 71, 78, 100, 73, 80, 107, 82, 88, 118, 95, 101, 131, 108, 114, 138, 117, 124, 141, 121, 130, 135, 118, 126, 144, 127, 135, 153, 141, 145, 139, 128, 132, 112, 103, 104, 112, 106, 106, 134, 129, 126, 165, 157, 155, 161, 153, 150, 147, 137, 135, 123, 112, 108, 99, 84, 81, 83, 65, 63, 81, 61, 60, 85, 64, 63, 85, 63, 65, 82, 60, 62, 82, 61, 60, 84, 60, 60, 80, 56, 54, 76, 52, 50, 82, 58, 54, 92, 68, 64, 81, 58, 52, 76, 53, 47, 76, 52, 48, 83, 59, 55, 87, 63, 59, 89, 65, 61, 95, 71, 69, 103, 79, 77, 117, 96, 95, 117, 97, 96, 115, 95, 94, 112, 92, 91, 109, 89, 88, 109, 91, 89, 114, 96, 94, 118, 100, 98, 115, 97, 95, 114, 99, 96, 115, 100, 97, 115, 100, 97, 112, 97, 94, 107, 92, 89, 101, 86, 83, 98, 83, 80, 101, 88, 82, 93, 80, 74, 92, 79, 73, 98, 85, 79, 94, 80, 77, 82, 68, 65, 74, 63, 59, 78, 67, 63, 94, 83, 79, 88, 77, 73, 72, 61, 59, 54, 43, 41, 47, 37, 35, 57, 47, 45, 70, 60, 58, 76, 66, 64, 59, 50, 45, 25, 16, 11, 17, 7, 5, 54, 44, 42, 90, 80, 78, 99, 89, 87, 99, 89, 87, 107, 97, 95, 67, 59, 57, 24, 16, 14, 46, 38, 36, 74, 66, 64, 45, 40, 37, 48, 43, 40, 66, 60, 60, 43, 37, 37, 53, 49, 50, 133, 129, 130, 161, 157, 156, 52, 48, 47, 77, 72, 69, 121, 116, 113, 46, 38, 35, 90, 82, 79, 77, 69, 66, 64, 56, 53, 63, 58, 55, 89, 84, 81, 64, 58, 58, 40, 36, 35, 95, 91, 92, 135, 129, 129, 89, 81, 79, 103, 93, 92, 92, 82, 81, 79, 69, 68, 111, 101, 100, 115, 105, 104, 91, 81, 80, 120, 110, 109, 100, 90, 89, 92, 82, 81, 92, 82, 81, 85, 75, 74, 86, 76, 75, 99, 89, 88, 113, 103, 102, 105, 95, 93, 93, 82, 78, 102, 91, 87, 102, 91, 87, 107, 96, 92, 119, 108, 104, 117, 106, 102, 113, 102, 98, 121, 110, 106, 115, 104, 100, 134, 123, 119, 123, 112, 108, 107, 96, 92, 125, 114, 110, 131, 120, 116, 118, 107, 103, 128, 117, 113, 139, 128, 124, 120, 109, 105, 122, 111, 107, 113, 102, 98, 95, 84, 80, 138, 127, 123, 113, 102, 98, 116, 105, 101, 128, 117, 113, 122, 111, 107, 111, 100, 96, 117, 106, 102, 111, 100, 96, 87, 76, 72, 105, 94, 90, 116, 105, 101, 128, 117, 113, 118, 107, 103, 109, 98, 94, 108, 97, 93, 112, 101, 97, 113, 102, 98, 119, 108, 104, 130, 119, 115, 133, 122, 118, 119, 108, 104, 128, 117, 113, 131, 120, 116, 121, 110, 106, 118, 107, 103, 121, 110, 106, 131, 120, 116, 102, 93, 88, 130, 121, 116, 131, 122, 117, 129, 120, 115, 123, 114, 109, 124, 115, 110, 140, 131, 126, 130, 121, 116, 141, 132, 127, 136, 127, 122, 125, 116, 111, 117, 108, 103, 125, 116, 111, 136, 127, 122, 129, 120, 115, 112, 103, 98, 100, 89, 85, 101, 90, 86, 118, 107, 103, 76, 65, 61, 93, 82, 78, 121, 110, 106, 138, 127, 123, 124, 113, 109, 112, 101, 97, 125, 114, 110, 117, 106, 102, 120, 109, 105, 122, 111, 107, 122, 111, 107, 134, 123, 119, 123, 112, 108, 100, 89, 85, 114, 103, 99, 118, 107, 103, 125, 114, 110, 93, 82, 78, 106, 95, 91, 100, 89, 85, 106, 95, 91, 113, 102, 98, 120, 109, 105, 110, 99, 95, 97, 86, 82, 91, 80, 76, 81, 70, 66, 74, 63, 59, 80, 71, 66, 91, 82, 77, 113, 106, 100, 102, 95, 89, 109, 102, 96, 118, 111, 105, 113, 106, 100, 125, 118, 112, 124, 117, 111, 111, 104, 98, 130, 123, 117, 153, 146, 140, 144, 137, 131, 137, 130, 124, 79, 72, 66, 85, 78, 72, 113, 106, 100, 133, 123, 121, 107, 97, 95, 95, 86, 81, 134, 125, 120, 148, 139, 134, 119, 110, 105, 109, 100, 95, 100, 91, 86, 115, 108, 102, 104, 97, 91, 115, 110, 106, 116, 111, 107, 133, 129, 126, 213, 209, 206, 148, 147, 145, 79, 75, 72, 65, 57, 55, 124, 116, 113, 114, 106, 103, 109, 101, 98, 62, 57, 53, 54, 49, 45, 134, 129, 125, 118, 115, 110, 70, 65, 61, 48, 45, 40, 77, 74, 69, 187, 184, 179, 159, 154, 150, 76, 71, 67, 121, 116, 112, 97, 94, 89, 92, 88, 87, 66, 62, 61, 149, 148, 146, 183, 182, 180, 55, 54, 52, 94, 93, 91, 95, 91, 88, 88, 84, 81, 170, 165, 161, 148, 143, 139, 82, 75, 69, 64, 55, 50, 121, 110, 106, 117, 106, 102, 84, 70, 67, 116, 105, 101, 95, 86, 79, 91, 82, 73, 81, 74, 64, 107, 100, 90, 96, 89, 81, 80, 73, 65, 99, 92, 86, 70, 63, 57, 100, 95, 91, 135, 130, 126, 144, 139, 136, 106, 101, 98, 63, 57, 57, 85, 79, 79, 126, 122, 123, 107, 103, 102, 70, 66, 63, 70, 69, 65, 73, 69, 66, 43, 39, 36, 71, 67, 64, 108, 103, 100, 89, 84, 81, 112, 104, 102, 137, 127, 126, 99, 89, 88, 81, 69, 69, 37, 25, 25, 53, 39, 39, 107, 93, 93, 111, 97, 97, 135, 121, 121, 117, 106, 104, 83, 73, 71, 101, 91, 89, 112, 102, 100, 93, 83, 81, 113, 103, 101, 125, 115, 113, 89, 79, 77, 38, 28, 26, 75, 65, 63, 116, 106, 104, 70, 60, 58, 61, 51, 49, 82, 72, 70, 58, 48, 46, 88, 78, 76, 74, 66, 63, 80, 72, 69, 107, 99, 96, 113, 105, 102, 98, 90, 87, 101, 93, 90, 111, 103, 100, 109, 101, 98, 113, 105, 102, 95, 87, 84, 81, 73, 70, 84, 76, 73, 92, 84, 81, 76, 68, 65, 63, 55, 52, 83, 75, 72, 96, 86, 84, 127, 117, 115, 134, 124, 122, 117, 107, 105, 111, 102, 97, 116, 107, 102, 120, 111, 104, 124, 115, 108, 112, 103, 96, 116, 107, 100, 110, 101, 96, 103, 94, 89, 113, 103, 101, 133, 123, 121, 139, 129, 127, 132, 122, 120, 90, 82, 79, 84, 76, 73, 66, 58, 55, 70, 62, 59, 90, 82, 79, 81, 73, 70, 80, 72, 69, 109, 101, 98, 111, 103, 100, 116, 108, 105, 120, 112, 109, 121, 113, 110, 126, 118, 115, 135, 127, 124, 139, 131, 128, 138, 130, 127, 141, 134, 128, 140, 133, 127, 136, 129, 123, 136, 129, 123, 147, 140, 134, 161, 154, 148, 167, 160, 154, 165, 158, 152, 168, 163, 157, 170, 165, 159, 173, 168, 164, 178, 173, 169, 182, 177, 173, 185, 180, 176, 187, 182, 178, 189, 184, 180, 191, 186, 182, 195, 190, 186, 200, 195, 191, 202, 197, 193, 200, 197, 192, 198, 195, 190, 198, 194, 191, 198, 194, 191, 205, 204, 200, 205, 204, 200, 206, 205, 201, 207, 206, 202, 207, 206, 204, 208, 207, 205, 208, 207, 205, 209, 208, 204, 215, 211, 208, 216, 213, 208, 217, 214, 209, 218, 215, 210, 218, 217, 213, 220, 219, 215, 222, 221, 219, 223, 222, 220, 225, 223, 224, 226, 224, 225, 226, 226, 226, 225, 225, 225, 224, 224, 226, 225, 225, 227, 228, 228, 230, 230, 231, 233, 237, 238, 243, 236, 239, 244, 238, 241, 246, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 236, 243, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 233, 236, 243, 233, 236, 243, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 237, 237, 245, 237, 237, 245, 234, 237, 244, 234, 237, 244, 233, 238, 242, 232, 237, 241, 230, 238, 241, 230, 238, 241, 228, 238, 240, 228, 238, 240, 228, 235, 241, 228, 235, 241, 227, 234, 242, 227, 234, 242, 229, 233, 244, 230, 234, 243, 225, 230, 236, 215, 219, 222, 201, 201, 203, 185, 181, 180, 170, 160, 158, 153, 142, 136, 140, 127, 121, 132, 117, 110, 139, 121, 117, 149, 130, 126, 158, 137, 136, 160, 136, 136, 151, 125, 126, 143, 114, 116, 140, 108, 109, 141, 107, 108, 145, 109, 109, 140, 104, 104, 134, 98, 98, 130, 94, 94, 127, 93, 94, 126, 92, 93, 121, 89, 90, 119, 87, 88, 118, 88, 90, 120, 90, 92, 120, 91, 95, 118, 89, 93, 113, 87, 90, 111, 85, 88, 112, 85, 90, 115, 86, 91, 109, 78, 83, 106, 74, 75, 104, 68, 70, 102, 64, 63, 102, 62, 60, 106, 65, 61, 112, 69, 63, 116, 73, 67, 118, 75, 69, 120, 79, 73, 125, 86, 81, 127, 92, 88, 130, 96, 95, 132, 102, 102, 138, 108, 110, 141, 112, 114, 138, 109, 111, 139, 110, 112, 142, 113, 117, 143, 114, 118, 144, 115, 119, 143, 114, 118, 141, 112, 117, 140, 111, 116, 141, 111, 119, 141, 111, 119, 140, 110, 118, 139, 109, 117, 137, 107, 117, 134, 104, 114, 132, 102, 112, 130, 100, 110, 126, 96, 104, 123, 93, 101, 132, 101, 109, 135, 104, 112, 121, 88, 97, 110, 77, 86, 109, 76, 85, 106, 73, 82, 105, 72, 81, 103, 72, 80, 102, 75, 82, 110, 85, 91, 121, 98, 104, 131, 110, 115, 137, 116, 121, 137, 118, 122, 139, 122, 128, 153, 138, 143, 155, 140, 145, 133, 121, 123, 114, 104, 105, 119, 111, 109, 140, 135, 132, 158, 153, 149, 169, 161, 158, 145, 136, 131, 112, 101, 97, 89, 76, 70, 83, 64, 60, 87, 66, 61, 94, 70, 66, 97, 73, 71, 90, 66, 66, 79, 57, 59, 78, 54, 54, 88, 64, 64, 93, 69, 67, 90, 66, 64, 86, 62, 58, 87, 63, 59, 94, 71, 65, 83, 60, 54, 77, 53, 49, 80, 56, 52, 79, 55, 51, 75, 51, 47, 80, 56, 54, 88, 67, 64, 106, 86, 85, 111, 91, 90, 116, 96, 95, 116, 98, 96, 113, 95, 93, 112, 94, 92, 114, 96, 94, 118, 100, 98, 105, 90, 87, 108, 93, 90, 112, 97, 94, 115, 100, 97, 113, 98, 95, 108, 93, 90, 101, 86, 83, 97, 82, 79, 96, 83, 77, 95, 82, 76, 95, 82, 76, 93, 80, 74, 84, 70, 67, 72, 58, 55, 65, 54, 50, 67, 56, 52, 52, 41, 37, 71, 60, 56, 77, 66, 64, 59, 48, 46, 37, 27, 25, 38, 28, 26, 56, 46, 44, 71, 61, 59, 72, 63, 58, 52, 43, 38, 36, 26, 24, 41, 31, 29, 58, 48, 46, 75, 65, 63, 88, 78, 76, 97, 87, 85, 102, 94, 92, 61, 53, 51, 44, 36, 34, 37, 29, 27, 25, 20, 17, 47, 42, 39, 71, 65, 65, 61, 55, 55, 48, 44, 45, 59, 55, 56, 151, 147, 146, 128, 124, 123, 83, 78, 75, 115, 110, 107, 91, 83, 80, 64, 56, 53, 100, 92, 89, 59, 51, 48, 60, 55, 52, 64, 59, 56, 60, 56, 55, 53, 49, 48, 69, 65, 66, 140, 134, 134, 99, 90, 91, 107, 97, 96, 96, 86, 85, 84, 74, 73, 113, 103, 102, 116, 106, 105, 90, 80, 79, 111, 101, 100, 92, 82, 81, 83, 73, 72, 86, 76, 75, 78, 68, 67, 94, 84, 83, 91, 81, 80, 109, 99, 98, 116, 106, 104, 96, 85, 83, 104, 93, 89, 101, 90, 86, 106, 95, 91, 122, 111, 107, 119, 108, 104, 115, 104, 100, 130, 119, 115, 120, 109, 105, 130, 119, 115, 132, 121, 117, 114, 103, 99, 119, 108, 104, 132, 121, 117, 122, 111, 107, 123, 112, 108, 127, 116, 112, 124, 113, 109, 126, 115, 111, 129, 118, 114, 104, 93, 89, 136, 125, 121, 118, 107, 103, 105, 94, 90, 134, 123, 119, 123, 112, 108, 114, 103, 99, 112, 101, 97, 115, 104, 100, 87, 76, 72, 106, 95, 91, 108, 97, 93, 118, 107, 103, 112, 101, 97, 104, 93, 89, 107, 96, 92, 115, 104, 100, 116, 105, 101, 123, 112, 108, 141, 130, 126, 128, 117, 113, 105, 94, 90, 125, 114, 110, 131, 120, 116, 128, 117, 113, 130, 119, 115, 119, 108, 104, 133, 122, 118, 94, 85, 80, 126, 117, 112, 136, 127, 122, 140, 131, 126, 130, 121, 116, 120, 111, 106, 129, 120, 115, 121, 112, 107, 136, 127, 122, 132, 123, 118, 119, 110, 105, 110, 101, 96, 122, 113, 108, 141, 132, 127, 138, 129, 124, 121, 112, 107, 103, 92, 88, 98, 87, 83, 129, 118, 114, 100, 89, 85, 102, 91, 87, 109, 98, 94, 120, 109, 105, 103, 92, 88, 113, 102, 98, 125, 114, 110, 119, 108, 104, 128, 117, 113, 132, 121, 117, 128, 117, 113, 134, 123, 119, 121, 110, 106, 104, 93, 89, 119, 108, 104, 118, 107, 103, 122, 111, 107, 103, 92, 88, 109, 98, 94, 76, 65, 61, 81, 70, 66, 107, 96, 92, 120, 109, 105, 106, 95, 91, 89, 78, 74, 95, 84, 80, 93, 82, 78, 79, 68, 64, 76, 67, 62, 103, 94, 89, 129, 122, 116, 109, 102, 96, 114, 107, 101, 124, 117, 111, 115, 108, 102, 132, 125, 119, 134, 127, 121, 107, 100, 94, 119, 112, 106, 146, 139, 133, 142, 135, 129, 122, 115, 109, 66, 59, 53, 95, 88, 82, 123, 116, 110, 139, 129, 127, 111, 101, 99, 96, 87, 82, 128, 119, 114, 134, 125, 120, 111, 102, 97, 114, 105, 100, 110, 101, 96, 119, 112, 106, 108, 101, 95, 111, 106, 102, 129, 124, 120, 150, 146, 143, 203, 199, 196, 135, 134, 132, 77, 73, 70, 69, 61, 59, 117, 107, 105, 116, 106, 104, 106, 98, 95, 75, 70, 66, 71, 66, 62, 114, 111, 106, 106, 103, 98, 90, 87, 82, 46, 43, 38, 161, 158, 153, 187, 184, 179, 111, 106, 102, 82, 77, 73, 107, 102, 98, 107, 102, 99, 104, 100, 99, 79, 75, 74, 172, 171, 169, 155, 154, 152, 54, 53, 51, 94, 93, 91, 100, 96, 93, 123, 119, 116, 182, 177, 173, 120, 115, 111, 64, 55, 50, 86, 77, 72, 127, 116, 112, 109, 98, 94, 97, 83, 80, 114, 101, 95, 103, 94, 85, 95, 86, 77, 80, 73, 63, 97, 90, 80, 81, 74, 66, 73, 66, 58, 100, 93, 87, 68, 61, 55, 102, 97, 93, 133, 128, 124, 125, 120, 117, 110, 105, 102, 115, 109, 109, 103, 97, 97, 76, 72, 73, 63, 59, 58, 53, 47, 47, 74, 69, 66, 75, 67, 65, 64, 56, 54, 95, 87, 85, 109, 101, 99, 101, 93, 91, 134, 124, 123, 119, 109, 108, 94, 84, 83, 70, 58, 58, 35, 23, 23, 63, 51, 51, 118, 106, 106, 125, 111, 111, 133, 121, 121, 109, 99, 97, 92, 82, 80, 114, 104, 102, 115, 105, 103, 104, 94, 92, 127, 117, 115, 118, 108, 106, 72, 62, 60, 67, 57, 55, 113, 103, 101, 110, 100, 98, 66, 56, 54, 80, 70, 68, 95, 85, 83, 70, 60, 58, 84, 74, 72, 66, 58, 55, 78, 70, 67, 107, 99, 96, 117, 109, 106, 128, 120, 117, 139, 131, 128, 130, 122, 119, 128, 120, 117, 132, 124, 121, 94, 86, 83, 101, 93, 90, 95, 87, 84, 62, 54, 51, 67, 59, 56, 88, 80, 77, 98, 90, 87, 114, 104, 102, 133, 123, 121, 127, 117, 115, 116, 106, 104, 120, 111, 106, 106, 97, 92, 92, 83, 76, 106, 97, 90, 112, 103, 96, 112, 103, 96, 112, 103, 98, 116, 107, 102, 127, 117, 115, 137, 127, 125, 135, 125, 123, 126, 116, 114, 84, 76, 73, 73, 65, 62, 95, 87, 84, 113, 105, 102, 101, 93, 90, 98, 90, 87, 106, 98, 95, 99, 91, 88, 107, 99, 96, 115, 107, 104, 122, 114, 111, 126, 118, 115, 132, 124, 121, 139, 131, 128, 140, 132, 129, 137, 130, 124, 139, 130, 123, 131, 122, 115, 127, 118, 111, 134, 127, 119, 151, 144, 138, 166, 159, 153, 173, 166, 160, 174, 167, 161, 165, 160, 154, 167, 162, 156, 171, 166, 162, 176, 171, 167, 181, 176, 172, 184, 181, 176, 188, 185, 180, 190, 187, 182, 190, 185, 181, 194, 189, 185, 198, 193, 189, 199, 194, 190, 197, 194, 189, 195, 192, 187, 195, 191, 188, 196, 192, 189, 202, 201, 197, 203, 202, 198, 204, 203, 199, 205, 204, 200, 206, 205, 203, 207, 206, 204, 208, 207, 205, 209, 208, 204, 216, 212, 209, 216, 213, 208, 216, 213, 208, 216, 213, 208, 216, 215, 211, 218, 217, 213, 220, 219, 217, 222, 221, 219, 224, 222, 223, 224, 222, 223, 223, 223, 223, 222, 222, 222, 221, 221, 223, 223, 223, 225, 228, 228, 230, 230, 231, 233, 237, 238, 243, 236, 239, 244, 237, 240, 245, 239, 242, 247, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 236, 243, 233, 236, 243, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 233, 236, 243, 233, 236, 243, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 237, 237, 245, 237, 237, 245, 235, 238, 245, 234, 237, 244, 233, 238, 242, 232, 237, 241, 230, 238, 241, 230, 238, 241, 226, 236, 238, 228, 238, 240, 229, 238, 243, 229, 238, 243, 228, 235, 243, 226, 233, 243, 226, 232, 244, 226, 233, 243, 226, 233, 241, 223, 228, 232, 214, 215, 217, 197, 196, 194, 180, 172, 169, 161, 150, 144, 148, 135, 129, 142, 127, 120, 149, 131, 127, 153, 134, 130, 154, 133, 132, 152, 128, 128, 145, 119, 120, 141, 112, 114, 141, 109, 110, 144, 110, 111, 150, 114, 114, 148, 109, 110, 139, 103, 105, 135, 99, 101, 131, 97, 98, 129, 95, 96, 125, 93, 96, 123, 91, 94, 119, 88, 93, 120, 89, 94, 121, 92, 97, 119, 90, 95, 114, 87, 92, 111, 84, 89, 110, 85, 91, 111, 84, 89, 109, 78, 83, 108, 76, 77, 106, 70, 72, 104, 66, 65, 103, 63, 61, 104, 63, 59, 107, 64, 58, 108, 65, 58, 110, 67, 60, 113, 72, 66, 118, 79, 74, 123, 85, 82, 125, 91, 90, 127, 97, 97, 134, 104, 106, 137, 108, 110, 133, 105, 104, 135, 107, 106, 137, 108, 110, 139, 110, 112, 140, 111, 113, 139, 110, 112, 138, 109, 113, 137, 108, 112, 142, 113, 118, 141, 112, 117, 141, 111, 119, 139, 109, 117, 137, 107, 115, 134, 104, 112, 131, 101, 111, 129, 99, 109, 127, 94, 103, 126, 93, 102, 135, 102, 111, 136, 103, 112, 121, 85, 95, 109, 73, 83, 110, 74, 84, 109, 73, 83, 111, 78, 87, 111, 80, 88, 112, 85, 92, 119, 94, 100, 127, 106, 111, 137, 118, 122, 142, 126, 129, 146, 130, 133, 154, 139, 142, 152, 137, 140, 135, 120, 123, 114, 102, 102, 120, 110, 109, 148, 140, 137, 164, 159, 155, 164, 159, 153, 131, 124, 116, 113, 104, 95, 92, 79, 71, 81, 67, 58, 87, 67, 60, 95, 72, 66, 99, 71, 67, 97, 69, 66, 92, 68, 68, 91, 66, 69, 88, 64, 64, 86, 62, 62, 91, 67, 65, 98, 74, 72, 98, 74, 70, 92, 68, 64, 96, 73, 67, 85, 62, 56, 80, 56, 52, 84, 60, 56, 82, 58, 54, 74, 50, 46, 76, 52, 50, 84, 63, 60, 88, 68, 67, 98, 80, 78, 110, 92, 90, 114, 96, 94, 112, 94, 92, 105, 90, 87, 105, 90, 87, 106, 91, 88, 95, 80, 77, 97, 82, 79, 100, 86, 83, 105, 91, 88, 108, 94, 91, 111, 97, 94, 113, 99, 96, 113, 99, 96, 97, 84, 78, 102, 89, 83, 102, 89, 83, 94, 81, 75, 85, 71, 68, 75, 61, 58, 62, 51, 47, 52, 41, 37, 46, 35, 31, 57, 46, 42, 71, 60, 58, 74, 63, 61, 62, 52, 50, 50, 40, 38, 51, 41, 39, 59, 49, 47, 73, 64, 59, 78, 69, 64, 73, 63, 61, 58, 48, 46, 47, 37, 35, 53, 43, 41, 69, 59, 57, 81, 71, 69, 67, 59, 57, 91, 83, 81, 83, 75, 73, 45, 37, 35, 18, 13, 10, 23, 18, 15, 60, 54, 54, 105, 99, 99, 77, 73, 74, 50, 46, 47, 58, 54, 53, 146, 142, 141, 135, 130, 127, 100, 95, 92, 129, 121, 118, 62, 54, 51, 98, 90, 87, 70, 62, 59, 68, 63, 60, 68, 63, 60, 66, 62, 61, 47, 43, 42, 51, 47, 48, 129, 123, 123, 122, 113, 114, 101, 91, 90, 100, 90, 89, 92, 82, 81, 94, 84, 83, 109, 99, 98, 103, 93, 92, 104, 94, 93, 78, 68, 67, 83, 73, 72, 90, 80, 79, 75, 65, 64, 105, 95, 94, 93, 83, 82, 109, 99, 98, 124, 114, 112, 96, 85, 83, 105, 94, 90, 101, 90, 86, 106, 95, 91, 124, 113, 109, 117, 106, 102, 110, 99, 95, 129, 118, 114, 126, 115, 111, 123, 112, 108, 135, 124, 120, 115, 104, 100, 106, 95, 91, 129, 118, 114, 126, 115, 111, 119, 108, 104, 120, 109, 105, 132, 121, 117, 124, 113, 109, 137, 126, 122, 106, 95, 91, 126, 115, 111, 127, 116, 112, 100, 89, 85, 136, 125, 121, 130, 119, 115, 125, 114, 110, 112, 101, 97, 117, 106, 102, 87, 76, 72, 110, 99, 95, 108, 97, 93, 113, 102, 98, 111, 100, 96, 107, 96, 92, 114, 103, 99, 125, 114, 110, 120, 109, 105, 122, 111, 107, 143, 132, 128, 129, 118, 114, 98, 87, 83, 126, 115, 111, 132, 121, 117, 131, 120, 116, 136, 125, 121, 112, 101, 97, 127, 116, 112, 98, 89, 84, 119, 110, 105, 127, 118, 113, 142, 133, 128, 140, 131, 126, 126, 117, 112, 131, 122, 117, 122, 113, 108, 137, 128, 123, 132, 123, 118, 115, 106, 101, 104, 95, 90, 118, 109, 104, 142, 133, 128, 142, 133, 128, 124, 115, 110, 119, 108, 104, 96, 85, 81, 130, 119, 115, 116, 105, 101, 112, 101, 97, 104, 93, 89, 108, 97, 93, 90, 79, 75, 97, 86, 82, 118, 107, 103, 127, 116, 112, 144, 133, 129, 143, 132, 128, 128, 117, 113, 126, 115, 111, 111, 100, 96, 104, 93, 89, 126, 115, 111, 118, 107, 103, 117, 106, 102, 114, 103, 99, 117, 106, 102, 64, 53, 49, 76, 65, 61, 89, 78, 74, 114, 103, 99, 104, 93, 89, 84, 73, 69, 97, 86, 82, 104, 93, 89, 90, 79, 75, 81, 72, 67, 116, 107, 102, 146, 139, 133, 116, 109, 103, 116, 109, 103, 123, 116, 110, 109, 102, 96, 130, 123, 117, 134, 127, 121, 116, 109, 103, 111, 104, 98, 136, 129, 123, 140, 133, 127, 114, 107, 101, 68, 61, 55, 114, 107, 101, 132, 125, 119, 145, 135, 133, 116, 106, 104, 96, 87, 82, 118, 109, 104, 121, 112, 107, 111, 102, 97, 120, 111, 106, 111, 102, 97, 104, 97, 91, 101, 94, 88, 95, 90, 86, 135, 130, 126, 159, 155, 152, 186, 182, 179, 128, 127, 125, 80, 76, 73, 74, 64, 63, 106, 95, 93, 120, 110, 108, 104, 96, 93, 77, 72, 68, 62, 57, 53, 77, 74, 69, 106, 105, 100, 105, 104, 99, 86, 85, 80, 201, 200, 195, 151, 148, 143, 79, 74, 70, 88, 83, 79, 108, 100, 97, 120, 112, 110, 110, 106, 105, 130, 128, 129, 174, 173, 171, 102, 101, 99, 80, 79, 77, 97, 96, 94, 119, 115, 112, 159, 155, 152, 139, 134, 130, 100, 95, 91, 67, 58, 53, 99, 90, 85, 121, 110, 106, 105, 91, 88, 112, 97, 92, 118, 105, 99, 107, 98, 89, 83, 76, 66, 64, 57, 47, 88, 81, 71, 75, 68, 60, 69, 62, 54, 106, 99, 93, 85, 78, 72, 119, 114, 110, 126, 121, 118, 122, 116, 116, 124, 118, 118, 122, 118, 119, 78, 74, 75, 37, 33, 34, 43, 37, 37, 68, 59, 60, 90, 80, 79, 81, 71, 70, 85, 75, 74, 102, 92, 91, 108, 98, 97, 121, 111, 110, 125, 115, 114, 114, 104, 103, 111, 101, 100, 79, 69, 68, 51, 41, 40, 75, 65, 64, 116, 106, 105, 127, 115, 115, 124, 114, 113, 111, 101, 99, 106, 96, 94, 128, 118, 116, 118, 108, 106, 109, 99, 97, 125, 115, 113, 107, 97, 95, 76, 66, 64, 92, 82, 80, 122, 112, 110, 93, 83, 81, 74, 64, 62, 89, 79, 77, 89, 79, 77, 90, 80, 78, 90, 80, 78, 68, 60, 57, 94, 86, 83, 122, 114, 111, 129, 121, 118, 154, 146, 143, 159, 151, 148, 129, 121, 118, 133, 125, 122, 114, 106, 103, 93, 85, 82, 103, 95, 92, 79, 71, 68, 58, 50, 47, 96, 88, 85, 112, 104, 101, 97, 89, 86, 131, 121, 119, 111, 101, 99, 121, 111, 109, 123, 113, 111, 94, 85, 80, 93, 84, 79, 106, 97, 90, 93, 84, 77, 112, 103, 96, 121, 112, 105, 127, 118, 113, 130, 121, 116, 136, 126, 124, 139, 129, 127, 125, 115, 113, 105, 95, 93, 99, 89, 87, 99, 89, 87, 120, 110, 108, 124, 114, 112, 102, 92, 90, 101, 91, 89, 111, 101, 99, 100, 90, 88, 104, 94, 92, 114, 104, 102, 124, 114, 112, 130, 120, 118, 134, 124, 122, 136, 126, 124, 131, 121, 119, 124, 115, 110, 128, 117, 111, 123, 114, 105, 131, 122, 113, 151, 142, 133, 167, 158, 151, 169, 160, 153, 166, 159, 151, 168, 161, 153, 159, 155, 146, 164, 160, 151, 170, 167, 160, 178, 175, 168, 184, 181, 174, 186, 186, 178, 187, 187, 179, 189, 186, 179, 194, 189, 185, 194, 189, 185, 191, 188, 183, 189, 186, 181, 187, 184, 179, 189, 186, 181, 194, 190, 187, 198, 194, 191, 198, 197, 193, 199, 198, 194, 201, 200, 196, 203, 202, 198, 205, 204, 202, 207, 206, 204, 207, 207, 205, 209, 208, 204, 216, 212, 209, 215, 212, 207, 214, 211, 206, 214, 211, 206, 216, 212, 209, 218, 214, 211, 219, 218, 216, 221, 220, 218, 222, 221, 219, 222, 221, 219, 221, 221, 221, 220, 220, 220, 220, 220, 222, 223, 223, 225, 228, 228, 230, 231, 232, 234, 236, 237, 242, 235, 238, 243, 237, 240, 245, 239, 242, 247, 240, 243, 248, 241, 244, 249, 241, 244, 249, 240, 243, 248, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 233, 236, 243, 233, 236, 243, 233, 236, 243, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 233, 236, 243, 233, 236, 243, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 233, 238, 242, 233, 238, 242, 230, 238, 241, 230, 238, 241, 226, 234, 237, 228, 238, 240, 232, 239, 245, 232, 239, 245, 229, 236, 244, 226, 233, 243, 224, 231, 241, 224, 231, 241, 229, 236, 244, 229, 234, 238, 220, 224, 227, 204, 204, 204, 182, 178, 175, 162, 155, 149, 148, 139, 132, 143, 132, 126, 140, 127, 121, 143, 128, 123, 147, 127, 126, 149, 125, 125, 147, 121, 122, 147, 117, 119, 146, 114, 117, 148, 114, 115, 153, 119, 120, 149, 113, 115, 141, 107, 108, 137, 103, 104, 134, 100, 101, 132, 98, 99, 127, 95, 98, 125, 93, 96, 120, 88, 91, 121, 90, 95, 122, 91, 96, 120, 91, 95, 116, 87, 91, 111, 84, 89, 110, 83, 88, 110, 83, 88, 110, 79, 84, 109, 77, 80, 107, 73, 74, 104, 68, 68, 103, 65, 64, 102, 62, 60, 103, 62, 58, 103, 62, 56, 105, 64, 58, 108, 69, 64, 113, 75, 72, 117, 82, 80, 118, 87, 85, 122, 94, 93, 128, 99, 101, 130, 104, 107, 127, 101, 102, 129, 103, 104, 131, 105, 108, 133, 107, 110, 134, 108, 111, 134, 107, 112, 133, 106, 111, 132, 105, 110, 136, 109, 116, 137, 110, 117, 138, 111, 118, 139, 112, 119, 140, 113, 120, 140, 113, 120, 139, 112, 121, 140, 110, 120, 136, 105, 113, 134, 101, 110, 140, 107, 116, 138, 105, 116, 120, 87, 98, 111, 78, 89, 116, 84, 95, 120, 88, 99, 115, 85, 95, 112, 86, 95, 111, 88, 96, 111, 92, 98, 116, 99, 105, 128, 113, 118, 143, 131, 135, 154, 142, 144, 144, 134, 135, 114, 104, 103, 96, 86, 87, 116, 106, 105, 156, 148, 146, 173, 165, 163, 155, 147, 144, 129, 121, 118, 86, 77, 72, 89, 78, 72, 95, 80, 75, 99, 80, 74, 99, 78, 73, 97, 72, 67, 92, 64, 61, 86, 58, 55, 85, 59, 60, 98, 73, 76, 95, 71, 71, 73, 49, 49, 67, 43, 41, 86, 62, 60, 101, 77, 75, 101, 77, 73, 98, 74, 70, 88, 64, 60, 88, 64, 60, 98, 74, 70, 98, 74, 72, 89, 65, 63, 90, 66, 64, 98, 77, 74, 86, 68, 66, 99, 81, 79, 114, 96, 94, 120, 102, 100, 114, 99, 96, 106, 91, 88, 102, 87, 84, 101, 86, 83, 113, 98, 95, 108, 93, 90, 100, 85, 82, 95, 80, 77, 95, 80, 77, 101, 86, 83, 109, 94, 91, 114, 99, 96, 93, 78, 73, 98, 85, 79, 100, 87, 81, 101, 86, 81, 104, 89, 86, 101, 86, 83, 78, 64, 61, 52, 38, 35, 47, 33, 30, 30, 19, 15, 36, 25, 23, 64, 53, 51, 73, 63, 61, 50, 42, 39, 26, 18, 15, 19, 11, 8, 60, 51, 46, 56, 47, 42, 58, 48, 46, 65, 55, 53, 67, 57, 55, 63, 53, 51, 60, 50, 48, 62, 52, 50, 76, 68, 66, 61, 53, 51, 56, 48, 46, 78, 70, 68, 76, 71, 68, 36, 31, 28, 40, 35, 32, 100, 94, 94, 82, 76, 76, 79, 73, 73, 56, 50, 50, 74, 68, 68, 135, 130, 127, 141, 136, 133, 104, 99, 95, 101, 96, 92, 67, 62, 58, 73, 68, 64, 75, 71, 68, 81, 77, 74, 67, 63, 62, 22, 16, 16, 32, 26, 26, 112, 103, 104, 147, 139, 137, 95, 85, 84, 101, 91, 90, 94, 84, 83, 70, 60, 59, 99, 89, 88, 119, 109, 108, 103, 93, 92, 66, 56, 55, 87, 77, 76, 97, 87, 86, 74, 64, 63, 113, 103, 102, 100, 90, 89, 111, 101, 100, 127, 117, 115, 92, 81, 77, 105, 94, 90, 103, 92, 88, 111, 100, 96, 129, 118, 114, 116, 105, 101, 103, 92, 88, 119, 108, 104, 131, 120, 116, 118, 107, 103, 135, 124, 120, 113, 102, 98, 94, 83, 79, 124, 113, 109, 129, 118, 114, 117, 106, 102, 121, 110, 106, 140, 129, 125, 118, 107, 103, 134, 123, 119, 100, 89, 85, 115, 104, 100, 135, 124, 120, 103, 92, 88, 136, 125, 121, 136, 125, 121, 136, 125, 121, 115, 104, 100, 118, 107, 103, 86, 75, 71, 114, 103, 99, 111, 100, 96, 114, 103, 99, 116, 105, 101, 114, 103, 99, 123, 112, 108, 132, 121, 117, 121, 110, 106, 117, 106, 102, 136, 125, 121, 136, 125, 121, 100, 89, 85, 130, 119, 115, 133, 122, 118, 132, 121, 117, 135, 124, 120, 103, 92, 88, 116, 107, 102, 107, 98, 93, 115, 106, 101, 115, 106, 101, 137, 128, 123, 144, 135, 130, 136, 127, 122, 143, 134, 129, 138, 129, 124, 144, 135, 130, 137, 128, 123, 116, 107, 102, 101, 92, 87, 114, 105, 100, 138, 131, 125, 139, 129, 127, 120, 111, 106, 120, 111, 106, 83, 72, 68, 116, 105, 101, 115, 104, 100, 119, 108, 104, 111, 100, 96, 119, 108, 104, 106, 95, 91, 96, 85, 81, 118, 107, 103, 125, 114, 110, 137, 126, 122, 130, 119, 115, 116, 105, 101, 124, 113, 109, 119, 108, 104, 81, 70, 66, 117, 106, 102, 114, 103, 99, 114, 103, 99, 122, 111, 107, 127, 116, 112, 74, 63, 59, 102, 91, 87, 72, 61, 57, 108, 97, 93, 103, 92, 88, 81, 70, 66, 96, 85, 81, 109, 98, 94, 97, 86, 82, 88, 79, 74, 124, 115, 110, 156, 149, 143, 121, 112, 107, 116, 109, 103, 120, 111, 106, 101, 94, 88, 125, 116, 111, 130, 123, 117, 130, 121, 116, 109, 102, 96, 132, 123, 118, 142, 135, 129, 116, 107, 102, 76, 69, 63, 132, 123, 118, 139, 130, 125, 145, 135, 133, 117, 107, 105, 95, 86, 81, 113, 106, 100, 119, 110, 105, 116, 107, 102, 124, 115, 110, 104, 95, 90, 82, 74, 71, 84, 79, 75, 74, 71, 66, 133, 130, 125, 159, 158, 154, 172, 171, 167, 127, 126, 124, 86, 81, 78, 81, 71, 70, 99, 88, 86, 122, 111, 109, 101, 91, 89, 71, 63, 60, 43, 38, 34, 46, 45, 40, 117, 118, 112, 110, 111, 105, 143, 144, 138, 194, 193, 188, 116, 113, 108, 69, 64, 60, 76, 71, 67, 125, 117, 114, 126, 121, 118, 97, 96, 94, 177, 176, 174, 163, 162, 160, 47, 46, 42, 94, 93, 89, 99, 95, 92, 134, 130, 127, 170, 165, 161, 87, 82, 78, 94, 86, 83, 81, 72, 67, 108, 97, 93, 119, 108, 104, 106, 92, 89, 121, 107, 104, 121, 107, 104, 104, 95, 88, 67, 60, 52, 47, 40, 32, 83, 76, 68, 75, 68, 62, 69, 62, 56, 115, 108, 102, 107, 99, 96, 119, 114, 111, 140, 135, 132, 150, 144, 144, 100, 94, 94, 47, 41, 41, 62, 56, 56, 81, 75, 77, 65, 59, 59, 62, 52, 51, 95, 84, 82, 93, 81, 81, 97, 86, 84, 83, 71, 71, 91, 80, 78, 143, 131, 131, 137, 126, 124, 132, 122, 121, 143, 133, 131, 104, 94, 93, 74, 64, 62, 89, 79, 78, 118, 108, 106, 137, 127, 126, 130, 120, 118, 116, 106, 104, 116, 106, 104, 136, 126, 124, 121, 111, 109, 109, 99, 97, 117, 107, 105, 98, 88, 86, 87, 77, 75, 95, 85, 83, 112, 102, 100, 80, 70, 68, 85, 75, 73, 85, 75, 73, 73, 63, 61, 106, 96, 94, 104, 94, 92, 91, 83, 80, 126, 118, 115, 148, 140, 137, 143, 135, 132, 164, 156, 153, 156, 148, 145, 108, 100, 97, 114, 106, 103, 102, 94, 91, 75, 67, 64, 64, 56, 53, 65, 57, 54, 99, 89, 87, 116, 108, 105, 98, 88, 86, 112, 102, 100, 109, 99, 97, 107, 97, 95, 107, 97, 95, 94, 84, 82, 84, 75, 70, 103, 94, 89, 124, 115, 110, 121, 112, 105, 141, 132, 127, 149, 140, 135, 143, 134, 129, 125, 116, 111, 121, 111, 109, 124, 114, 112, 108, 98, 96, 83, 73, 71, 111, 101, 99, 137, 127, 125, 127, 117, 115, 103, 93, 91, 101, 91, 89, 98, 88, 86, 99, 89, 87, 119, 109, 107, 117, 107, 105, 125, 115, 113, 132, 122, 120, 132, 122, 120, 127, 117, 115, 119, 109, 107, 105, 95, 93, 92, 83, 78, 112, 103, 96, 115, 106, 97, 137, 128, 119, 166, 159, 149, 177, 168, 159, 164, 157, 147, 153, 146, 138, 154, 147, 139, 154, 150, 141, 162, 158, 149, 172, 169, 162, 183, 180, 173, 190, 187, 180, 189, 189, 181, 190, 187, 180, 188, 185, 178, 198, 193, 189, 194, 189, 185, 188, 183, 179, 181, 178, 173, 179, 176, 171, 185, 182, 177, 194, 190, 187, 202, 198, 195, 198, 194, 191, 197, 196, 192, 199, 198, 194, 201, 200, 196, 204, 203, 201, 206, 205, 203, 208, 207, 205, 209, 208, 206, 216, 212, 209, 215, 212, 207, 214, 211, 206, 213, 210, 205, 214, 210, 207, 217, 213, 210, 218, 217, 215, 220, 219, 217, 220, 219, 217, 221, 220, 218, 220, 220, 220, 219, 219, 219, 219, 219, 221, 222, 222, 224, 228, 228, 230, 232, 233, 235, 236, 237, 241, 235, 238, 243, 237, 240, 245, 239, 242, 247, 240, 243, 248, 241, 244, 249, 241, 244, 249, 240, 243, 248, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 241, 244, 249, 240, 245, 249, 241, 244, 249, 240, 245, 249, 241, 244, 249, 240, 245, 249, 241, 244, 249, 240, 245, 249, 241, 244, 249, 240, 245, 249, 241, 244, 249, 240, 245, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 243, 244, 249, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 235, 238, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 229, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 233, 242, 229, 233, 242, 229, 233, 242, 230, 237, 245, 226, 233, 239, 225, 230, 234, 215, 221, 221, 193, 195, 194, 163, 164, 159, 148, 147, 142, 150, 145, 139, 142, 135, 127, 133, 122, 116, 146, 128, 124, 162, 141, 138, 160, 131, 133, 148, 118, 120, 148, 113, 117, 148, 113, 117, 147, 115, 118, 143, 113, 115, 144, 112, 115, 148, 116, 119, 147, 115, 118, 139, 107, 110, 133, 99, 100, 130, 96, 97, 126, 92, 93, 127, 95, 98, 128, 96, 99, 124, 94, 96, 118, 88, 90, 114, 85, 89, 115, 86, 90, 118, 89, 93, 115, 86, 91, 112, 83, 87, 110, 79, 84, 106, 74, 77, 104, 70, 71, 103, 67, 67, 101, 66, 64, 100, 65, 63, 99, 64, 62, 101, 67, 65, 104, 73, 71, 110, 80, 80, 116, 87, 89, 119, 94, 97, 124, 99, 103, 125, 103, 106, 141, 116, 122, 142, 117, 123, 144, 118, 127, 146, 120, 129, 149, 123, 132, 151, 125, 136, 153, 127, 138, 154, 128, 139, 151, 128, 138, 153, 130, 140, 156, 133, 143, 158, 135, 143, 159, 136, 144, 158, 135, 143, 157, 134, 142, 158, 132, 141, 161, 131, 141, 163, 133, 143, 164, 134, 144, 158, 130, 142, 152, 126, 137, 147, 124, 134, 147, 125, 137, 149, 129, 140, 146, 128, 140, 147, 131, 142, 143, 130, 139, 141, 128, 137, 152, 141, 149, 165, 155, 163, 161, 152, 157, 144, 138, 142, 128, 124, 125, 108, 104, 103, 118, 112, 114, 159, 153, 153, 179, 170, 171, 149, 139, 140, 102, 90, 92, 78, 63, 66, 89, 73, 74, 97, 78, 80, 97, 77, 79, 90, 68, 70, 92, 67, 70, 97, 73, 73, 92, 66, 69, 80, 54, 55, 66, 40, 41, 78, 52, 53, 89, 65, 65, 93, 69, 69, 89, 65, 65, 86, 62, 62, 89, 65, 65, 94, 70, 68, 99, 78, 75, 103, 82, 79, 106, 85, 82, 103, 82, 79, 97, 76, 75, 96, 75, 74, 102, 81, 80, 108, 88, 87, 107, 89, 87, 105, 90, 87, 104, 89, 86, 102, 87, 84, 101, 86, 83, 104, 89, 86, 112, 94, 92, 116, 98, 96, 106, 88, 86, 109, 89, 88, 110, 90, 89, 108, 88, 87, 104, 83, 82, 101, 80, 79, 100, 79, 78, 99, 79, 78, 101, 83, 81, 98, 83, 80, 96, 81, 78, 97, 79, 77, 102, 84, 82, 106, 88, 86, 101, 83, 81, 92, 74, 72, 65, 50, 47, 36, 22, 19, 27, 16, 12, 33, 24, 19, 36, 29, 23, 49, 44, 38, 50, 47, 40, 28, 23, 17, 31, 21, 19, 72, 61, 59, 75, 64, 62, 64, 53, 51, 82, 71, 69, 87, 76, 74, 71, 61, 59, 69, 59, 57, 66, 56, 54, 67, 57, 55, 63, 55, 52, 47, 39, 36, 63, 55, 52, 81, 73, 70, 69, 61, 58, 75, 67, 65, 110, 102, 100, 70, 62, 60, 79, 71, 69, 70, 62, 60, 80, 72, 70, 144, 139, 136, 148, 143, 140, 98, 94, 91, 78, 77, 73, 48, 47, 43, 68, 67, 63, 64, 63, 59, 45, 40, 37, 68, 60, 58, 25, 15, 14, 67, 57, 56, 154, 144, 143, 96, 88, 85, 98, 90, 87, 111, 103, 100, 75, 67, 64, 73, 65, 62, 92, 84, 81, 103, 95, 92, 60, 52, 49, 67, 59, 56, 117, 109, 106, 67, 59, 56, 111, 103, 100, 98, 90, 87, 101, 93, 90, 110, 102, 99, 96, 87, 82, 84, 75, 70, 113, 104, 99, 123, 114, 109, 109, 100, 95, 109, 100, 95, 107, 98, 93, 112, 103, 98, 125, 116, 111, 121, 112, 107, 125, 116, 111, 118, 109, 104, 104, 95, 90, 112, 103, 98, 128, 119, 114, 126, 117, 112, 124, 113, 111, 138, 127, 125, 134, 123, 121, 114, 103, 101, 90, 79, 77, 108, 97, 95, 135, 124, 122, 102, 91, 89, 116, 105, 103, 140, 129, 127, 117, 106, 104, 125, 114, 112, 79, 68, 66, 117, 106, 104, 102, 91, 89, 122, 111, 109, 117, 108, 103, 104, 95, 90, 107, 98, 93, 114, 105, 100, 143, 132, 128, 110, 99, 95, 133, 119, 116, 131, 117, 114, 126, 112, 109, 101, 87, 84, 117, 106, 102, 129, 118, 114, 125, 116, 111, 131, 122, 117, 113, 104, 99, 96, 87, 82, 120, 111, 106, 114, 105, 100, 110, 101, 96, 135, 126, 121, 134, 125, 120, 126, 117, 112, 142, 132, 130, 127, 117, 115, 119, 111, 108, 126, 118, 115, 122, 114, 111, 114, 106, 103, 94, 86, 83, 118, 113, 109, 155, 147, 145, 110, 102, 99, 97, 87, 85, 105, 95, 93, 106, 96, 94, 109, 99, 97, 136, 125, 121, 124, 113, 109, 96, 85, 81, 132, 121, 117, 119, 108, 102, 119, 108, 102, 123, 110, 104, 142, 129, 123, 137, 124, 118, 127, 114, 108, 126, 113, 107, 98, 85, 79, 70, 56, 53, 107, 93, 90, 126, 112, 109, 93, 79, 76, 97, 86, 82, 124, 113, 109, 105, 94, 90, 96, 85, 81, 69, 60, 55, 97, 88, 83, 77, 68, 63, 67, 58, 53, 112, 103, 98, 123, 114, 109, 93, 84, 79, 86, 77, 72, 135, 126, 121, 159, 150, 145, 127, 116, 112, 93, 84, 79, 110, 99, 95, 122, 113, 108, 125, 114, 110, 136, 127, 122, 142, 131, 127, 85, 76, 71, 132, 121, 117, 142, 133, 128, 104, 93, 89, 109, 100, 95, 127, 116, 112, 157, 148, 143, 140, 130, 128, 109, 101, 98, 112, 104, 101, 88, 83, 79, 110, 102, 99, 117, 109, 106, 131, 121, 119, 117, 109, 106, 89, 84, 81, 58, 54, 51, 83, 84, 79, 109, 111, 106, 164, 166, 163, 172, 172, 170, 98, 94, 93, 66, 61, 58, 51, 46, 43, 97, 89, 86, 116, 105, 103, 110, 99, 97, 80, 69, 67, 39, 31, 28, 41, 42, 36, 111, 114, 107, 104, 107, 100, 194, 195, 189, 162, 157, 153, 96, 88, 85, 47, 39, 36, 101, 96, 92, 127, 124, 119, 117, 118, 112, 127, 128, 123, 195, 196, 191, 110, 109, 105, 42, 41, 36, 115, 112, 107, 110, 107, 102, 192, 187, 183, 143, 136, 130, 55, 46, 41, 75, 66, 61, 113, 102, 98, 121, 110, 106, 106, 95, 93, 120, 109, 107, 131, 120, 118, 107, 96, 94, 95, 87, 84, 46, 41, 37, 50, 45, 41, 95, 90, 86, 77, 72, 68, 69, 64, 60, 113, 105, 102, 109, 101, 99, 139, 131, 129, 153, 145, 143, 121, 113, 111, 34, 26, 24, 26, 18, 16, 96, 88, 86, 106, 97, 98, 70, 62, 60, 90, 80, 78, 101, 92, 87, 84, 74, 72, 68, 59, 54, 97, 87, 85, 136, 127, 122, 141, 131, 129, 127, 118, 113, 140, 130, 128, 125, 116, 111, 120, 110, 108, 85, 76, 71, 105, 95, 93, 146, 137, 132, 126, 116, 114, 133, 124, 119, 124, 115, 110, 120, 111, 106, 129, 120, 115, 107, 98, 93, 108, 99, 94, 102, 93, 88, 65, 56, 51, 87, 78, 73, 118, 109, 104, 93, 84, 79, 71, 62, 57, 89, 80, 75, 108, 99, 94, 91, 82, 77, 96, 87, 82, 145, 136, 131, 126, 119, 113, 133, 126, 120, 132, 125, 119, 154, 147, 141, 154, 147, 141, 124, 117, 111, 113, 104, 99, 100, 91, 86, 67, 58, 53, 77, 68, 63, 89, 80, 75, 106, 97, 92, 117, 106, 102, 101, 92, 87, 91, 80, 76, 99, 90, 85, 112, 102, 100, 117, 109, 106, 110, 102, 99, 83, 75, 72, 65, 57, 54, 90, 82, 79, 132, 124, 121, 155, 148, 142, 147, 139, 136, 133, 125, 122, 116, 108, 105, 93, 85, 82, 122, 114, 111, 116, 108, 105, 70, 62, 59, 108, 100, 97, 145, 138, 132, 129, 122, 116, 107, 100, 94, 97, 90, 84, 101, 93, 90, 108, 100, 97, 120, 112, 109, 137, 129, 126, 129, 121, 118, 119, 111, 108, 103, 95, 92, 104, 96, 93, 112, 105, 99, 97, 90, 84, 83, 76, 70, 94, 87, 79, 105, 98, 90, 117, 110, 102, 142, 135, 127, 163, 159, 150, 162, 155, 147, 145, 141, 132, 146, 142, 133, 161, 157, 148, 162, 157, 151, 170, 165, 159, 181, 176, 170, 189, 184, 178, 193, 188, 184, 191, 188, 183, 191, 186, 182, 190, 185, 181, 191, 186, 180, 189, 184, 178, 186, 181, 177, 185, 180, 176, 186, 181, 177, 191, 186, 182, 196, 191, 187, 199, 196, 191, 195, 191, 188, 196, 192, 189, 199, 195, 192, 202, 198, 195, 206, 202, 199, 208, 207, 203, 210, 209, 207, 212, 211, 209, 209, 205, 202, 210, 206, 203, 212, 208, 205, 215, 211, 208, 217, 213, 210, 218, 214, 211, 217, 216, 214, 217, 216, 214, 219, 218, 216, 219, 218, 216, 219, 218, 216, 221, 220, 218, 222, 222, 222, 224, 224, 224, 227, 227, 227, 227, 228, 230, 229, 230, 234, 230, 233, 238, 234, 237, 242, 236, 239, 244, 236, 239, 244, 236, 239, 244, 238, 241, 246, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 246, 250, 239, 247, 250, 241, 246, 250, 239, 247, 250, 241, 246, 250, 239, 247, 250, 241, 246, 250, 239, 247, 250, 241, 246, 250, 239, 247, 250, 241, 246, 250, 239, 247, 250, 241, 246, 250, 239, 247, 250, 241, 246, 250, 241, 246, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 229, 234, 240, 228, 235, 243, 224, 231, 239, 223, 230, 236, 218, 226, 228, 201, 207, 207, 176, 181, 177, 161, 163, 158, 160, 159, 154, 160, 155, 149, 149, 140, 133, 157, 142, 137, 170, 149, 146, 164, 138, 139, 155, 125, 127, 155, 120, 126, 152, 120, 125, 147, 116, 121, 142, 113, 117, 143, 114, 118, 149, 118, 123, 149, 119, 121, 145, 113, 116, 139, 107, 110, 138, 106, 107, 129, 95, 96, 129, 97, 98, 129, 97, 98, 124, 94, 96, 117, 87, 89, 112, 83, 87, 112, 83, 87, 114, 85, 90, 108, 81, 86, 107, 80, 85, 107, 78, 82, 106, 77, 79, 108, 76, 79, 108, 76, 77, 110, 76, 75, 110, 76, 75, 126, 95, 93, 128, 97, 95, 131, 101, 101, 135, 107, 106, 139, 113, 116, 143, 118, 121, 145, 123, 126, 147, 125, 128, 145, 118, 123, 145, 118, 123, 145, 118, 125, 144, 119, 125, 145, 118, 127, 144, 118, 127, 145, 119, 128, 145, 119, 130, 143, 117, 128, 141, 118, 126, 144, 118, 127, 141, 118, 126, 139, 116, 122, 136, 113, 119, 133, 110, 116, 133, 108, 114, 132, 102, 110, 134, 104, 114, 133, 103, 113, 124, 98, 109, 117, 91, 102, 112, 90, 102, 115, 95, 106, 119, 101, 113, 119, 103, 114, 124, 111, 121, 141, 128, 138, 160, 149, 157, 171, 159, 169, 162, 152, 160, 143, 133, 141, 127, 121, 125, 131, 129, 130, 153, 153, 151, 169, 167, 168, 165, 161, 160, 161, 152, 155, 159, 149, 150, 148, 136, 140, 133, 118, 121, 143, 127, 130, 127, 108, 110, 109, 88, 93, 101, 81, 83, 100, 78, 81, 92, 70, 73, 79, 57, 60, 68, 46, 48, 82, 57, 60, 81, 57, 57, 81, 60, 59, 88, 67, 66, 96, 75, 74, 99, 78, 77, 96, 75, 74, 92, 71, 70, 97, 77, 76, 100, 80, 79, 101, 81, 80, 100, 80, 79, 98, 78, 77, 100, 80, 79, 106, 88, 86, 112, 94, 92, 105, 90, 87, 107, 92, 89, 111, 96, 93, 113, 98, 95, 113, 98, 95, 110, 95, 92, 108, 90, 88, 105, 87, 85, 103, 83, 82, 103, 83, 82, 103, 82, 81, 100, 79, 78, 96, 75, 74, 93, 69, 69, 87, 63, 63, 82, 61, 60, 82, 64, 62, 81, 66, 63, 79, 64, 61, 76, 58, 56, 79, 61, 59, 91, 71, 70, 101, 81, 80, 104, 86, 84, 65, 50, 47, 53, 39, 36, 52, 38, 35, 49, 40, 35, 37, 30, 24, 33, 28, 22, 44, 41, 34, 51, 48, 41, 29, 19, 17, 44, 33, 31, 65, 54, 52, 82, 71, 69, 90, 79, 77, 88, 77, 75, 73, 63, 61, 56, 46, 44, 55, 45, 43, 66, 56, 54, 73, 65, 62, 54, 46, 43, 53, 45, 42, 65, 57, 54, 72, 64, 61, 103, 95, 92, 91, 83, 81, 63, 55, 53, 88, 78, 77, 78, 68, 67, 61, 53, 51, 116, 111, 108, 156, 151, 148, 141, 140, 136, 100, 99, 95, 70, 71, 66, 53, 54, 49, 71, 70, 66, 52, 47, 44, 59, 49, 48, 40, 28, 28, 52, 40, 40, 146, 136, 134, 112, 104, 101, 94, 86, 83, 91, 83, 80, 68, 60, 57, 59, 51, 48, 77, 69, 66, 84, 76, 73, 64, 56, 53, 72, 64, 61, 121, 113, 110, 70, 62, 59, 106, 98, 95, 96, 88, 85, 94, 86, 83, 98, 90, 87, 103, 94, 89, 79, 70, 65, 99, 90, 85, 113, 104, 99, 114, 105, 100, 122, 113, 108, 114, 105, 100, 109, 100, 95, 122, 113, 108, 119, 110, 105, 122, 113, 108, 116, 107, 102, 105, 96, 91, 114, 105, 100, 131, 122, 117, 131, 122, 117, 132, 121, 119, 133, 122, 120, 128, 117, 115, 122, 111, 109, 97, 86, 84, 98, 87, 85, 123, 112, 110, 105, 94, 92, 110, 99, 97, 128, 117, 115, 109, 98, 96, 120, 109, 107, 76, 65, 63, 121, 110, 108, 114, 103, 101, 118, 108, 106, 120, 111, 106, 117, 110, 104, 113, 104, 99, 115, 106, 101, 147, 136, 132, 119, 108, 104, 133, 119, 116, 129, 115, 112, 122, 108, 105, 102, 88, 85, 114, 103, 99, 126, 115, 111, 133, 124, 119, 135, 126, 121, 110, 103, 97, 98, 91, 85, 119, 110, 105, 114, 105, 100, 110, 101, 96, 131, 122, 117, 128, 119, 114, 120, 111, 106, 136, 126, 124, 127, 117, 115, 126, 118, 115, 118, 110, 107, 106, 98, 95, 110, 102, 99, 101, 96, 93, 112, 107, 104, 138, 133, 130, 118, 113, 110, 95, 85, 83, 107, 97, 95, 105, 95, 93, 99, 89, 87, 127, 116, 112, 129, 118, 114, 106, 95, 91, 131, 120, 116, 131, 120, 114, 127, 116, 110, 122, 109, 103, 135, 122, 116, 132, 119, 113, 124, 111, 105, 126, 113, 107, 101, 88, 82, 89, 75, 72, 101, 87, 84, 129, 115, 112, 107, 93, 90, 90, 79, 75, 120, 109, 105, 118, 107, 103, 92, 81, 77, 85, 76, 71, 94, 85, 80, 85, 76, 71, 82, 73, 68, 106, 97, 92, 117, 108, 103, 99, 90, 85, 81, 72, 67, 135, 124, 120, 146, 135, 131, 118, 107, 103, 97, 86, 82, 116, 105, 101, 120, 109, 105, 116, 105, 101, 133, 122, 118, 129, 118, 114, 82, 71, 67, 124, 113, 109, 133, 122, 118, 103, 92, 88, 115, 104, 100, 127, 116, 112, 145, 136, 131, 141, 131, 129, 113, 105, 102, 102, 97, 93, 80, 75, 71, 108, 103, 99, 119, 111, 108, 130, 120, 119, 106, 98, 96, 69, 64, 61, 59, 58, 54, 71, 73, 68, 105, 110, 104, 162, 167, 163, 166, 168, 165, 99, 95, 94, 58, 53, 50, 64, 60, 57, 89, 84, 80, 100, 89, 87, 116, 102, 101, 84, 73, 71, 40, 32, 29, 59, 60, 54, 89, 94, 87, 131, 136, 129, 187, 188, 182, 109, 104, 100, 80, 70, 68, 78, 68, 66, 95, 87, 84, 103, 102, 97, 105, 108, 101, 165, 167, 162, 167, 168, 163, 87, 86, 81, 79, 78, 73, 107, 104, 97, 153, 148, 142, 170, 163, 157, 105, 98, 92, 58, 49, 44, 88, 77, 73, 125, 114, 110, 128, 117, 113, 105, 94, 92, 101, 90, 88, 104, 92, 92, 91, 81, 80, 63, 55, 53, 43, 38, 35, 114, 109, 106, 126, 121, 118, 74, 69, 66, 95, 90, 87, 129, 121, 119, 126, 118, 116, 140, 132, 130, 95, 87, 85, 62, 54, 52, 29, 21, 19, 72, 62, 61, 116, 106, 105, 88, 78, 77, 98, 88, 86, 102, 92, 90, 82, 73, 68, 81, 72, 67, 100, 91, 86, 118, 109, 104, 133, 124, 119, 138, 129, 124, 131, 122, 117, 105, 96, 91, 138, 129, 124, 107, 98, 93, 90, 81, 76, 126, 117, 112, 135, 126, 121, 126, 117, 112, 134, 125, 120, 134, 125, 120, 119, 110, 105, 115, 106, 101, 102, 93, 88, 91, 82, 77, 83, 74, 69, 89, 80, 75, 130, 121, 116, 94, 85, 80, 74, 65, 60, 76, 67, 62, 96, 87, 82, 100, 91, 86, 99, 90, 85, 121, 112, 107, 151, 142, 137, 134, 127, 121, 144, 137, 131, 128, 121, 115, 139, 132, 126, 159, 152, 146, 143, 136, 130, 112, 103, 98, 74, 65, 60, 85, 76, 71, 86, 77, 72, 100, 89, 85, 111, 100, 96, 101, 90, 86, 89, 78, 74, 96, 85, 81, 109, 100, 95, 106, 96, 94, 107, 99, 96, 94, 86, 83, 79, 71, 68, 86, 78, 75, 109, 101, 98, 125, 117, 114, 130, 122, 119, 131, 123, 120, 124, 116, 113, 110, 102, 99, 98, 90, 87, 107, 99, 96, 93, 85, 82, 82, 74, 71, 126, 119, 113, 129, 122, 116, 114, 107, 99, 99, 92, 86, 95, 88, 82, 107, 99, 96, 127, 119, 116, 134, 126, 123, 127, 119, 116, 110, 102, 99, 104, 96, 93, 96, 88, 85, 100, 92, 89, 100, 93, 87, 80, 73, 67, 76, 69, 61, 99, 92, 84, 107, 103, 94, 123, 119, 110, 148, 144, 135, 162, 158, 149, 156, 152, 143, 145, 141, 132, 151, 147, 138, 167, 163, 154, 168, 163, 157, 175, 170, 164, 184, 179, 173, 191, 186, 180, 193, 188, 184, 193, 188, 184, 193, 188, 184, 193, 188, 184, 200, 193, 187, 197, 190, 184, 192, 187, 183, 189, 184, 180, 188, 183, 179, 189, 184, 180, 192, 187, 183, 193, 188, 184, 199, 195, 192, 199, 195, 192, 201, 197, 194, 202, 198, 195, 204, 200, 197, 206, 202, 199, 205, 204, 202, 206, 205, 203, 207, 203, 200, 209, 205, 202, 211, 207, 204, 214, 210, 207, 216, 212, 209, 217, 213, 210, 215, 214, 212, 216, 215, 213, 218, 217, 215, 218, 217, 215, 219, 218, 216, 220, 219, 217, 221, 221, 221, 223, 223, 223, 226, 226, 226, 226, 227, 229, 229, 230, 234, 230, 233, 238, 234, 237, 242, 236, 239, 244, 236, 239, 244, 236, 239, 244, 238, 241, 246, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 246, 250, 239, 247, 250, 239, 247, 250, 239, 247, 250, 239, 247, 250, 239, 247, 250, 239, 247, 250, 239, 247, 250, 239, 247, 250, 239, 247, 250, 239, 247, 250, 239, 247, 250, 239, 247, 250, 239, 247, 250, 239, 247, 250, 241, 246, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 229, 234, 240, 229, 234, 240, 228, 232, 241, 225, 229, 238, 225, 230, 236, 225, 230, 234, 216, 221, 224, 198, 202, 201, 182, 184, 181, 175, 176, 170, 166, 163, 156, 154, 145, 140, 156, 142, 139, 166, 146, 145, 160, 135, 138, 153, 127, 130, 156, 125, 130, 154, 123, 128, 149, 120, 125, 142, 115, 120, 141, 115, 118, 146, 117, 121, 147, 118, 122, 144, 114, 116, 141, 111, 113, 141, 111, 113, 130, 98, 101, 131, 101, 103, 131, 101, 103, 128, 97, 102, 124, 93, 99, 120, 91, 96, 120, 91, 96, 120, 93, 98, 132, 105, 110, 131, 104, 109, 133, 104, 108, 132, 103, 105, 133, 101, 104, 133, 101, 102, 135, 101, 100, 134, 100, 98, 127, 93, 91, 124, 93, 90, 122, 91, 89, 119, 89, 89, 116, 88, 87, 112, 86, 87, 110, 84, 87, 110, 84, 85, 117, 87, 87, 119, 87, 88, 122, 90, 93, 124, 94, 96, 129, 97, 102, 131, 100, 105, 134, 103, 108, 135, 104, 110, 136, 105, 111, 135, 106, 111, 135, 104, 110, 133, 104, 108, 130, 101, 105, 127, 98, 102, 124, 95, 97, 123, 92, 97, 131, 98, 105, 132, 99, 108, 130, 97, 106, 121, 91, 101, 114, 84, 94, 111, 85, 96, 117, 94, 104, 125, 103, 115, 125, 105, 116, 131, 114, 124, 150, 133, 143, 163, 148, 155, 151, 135, 145, 123, 108, 115, 109, 94, 101, 109, 98, 102, 131, 130, 128, 152, 153, 148, 151, 150, 148, 122, 118, 115, 107, 101, 101, 119, 111, 109, 127, 117, 118, 120, 108, 108, 134, 120, 120, 128, 114, 113, 138, 122, 123, 157, 141, 141, 160, 144, 144, 141, 125, 125, 120, 104, 104, 115, 97, 97, 112, 92, 93, 110, 90, 91, 105, 87, 87, 98, 80, 80, 92, 74, 74, 94, 76, 76, 101, 83, 83, 108, 90, 90, 86, 70, 70, 99, 83, 83, 118, 102, 102, 132, 116, 116, 132, 116, 116, 120, 104, 104, 103, 87, 87, 91, 75, 75, 105, 91, 88, 102, 88, 85, 101, 87, 84, 105, 91, 88, 112, 97, 94, 116, 101, 98, 116, 101, 98, 114, 99, 96, 96, 78, 76, 92, 74, 72, 90, 70, 69, 89, 69, 68, 89, 69, 68, 86, 65, 64, 79, 58, 57, 71, 51, 50, 81, 66, 63, 84, 70, 67, 81, 67, 64, 70, 55, 52, 65, 47, 45, 69, 51, 49, 78, 60, 58, 84, 66, 64, 72, 57, 54, 58, 44, 41, 40, 26, 23, 32, 23, 18, 37, 30, 24, 35, 30, 24, 39, 36, 29, 56, 51, 45, 54, 44, 42, 41, 30, 28, 66, 55, 53, 95, 84, 82, 87, 76, 74, 78, 67, 65, 65, 55, 53, 35, 25, 23, 40, 30, 28, 52, 42, 40, 71, 63, 60, 64, 56, 53, 58, 50, 47, 58, 50, 47, 59, 51, 48, 89, 81, 78, 115, 107, 105, 71, 63, 61, 60, 52, 50, 70, 62, 60, 81, 73, 71, 95, 90, 87, 117, 112, 109, 148, 147, 143, 144, 143, 139, 103, 104, 99, 37, 36, 32, 71, 67, 64, 64, 59, 56, 53, 43, 42, 50, 38, 38, 46, 34, 34, 121, 111, 109, 129, 121, 118, 94, 86, 83, 69, 61, 58, 67, 59, 56, 50, 42, 39, 68, 60, 57, 75, 67, 64, 69, 61, 58, 79, 71, 68, 130, 122, 119, 84, 76, 73, 107, 99, 96, 100, 92, 89, 92, 84, 81, 86, 78, 75, 112, 103, 98, 76, 67, 62, 87, 78, 73, 105, 96, 91, 117, 108, 103, 133, 124, 119, 122, 113, 108, 111, 102, 97, 125, 116, 111, 126, 117, 112, 130, 121, 116, 124, 115, 110, 112, 103, 98, 113, 104, 99, 118, 109, 104, 114, 105, 100, 137, 126, 124, 128, 117, 115, 122, 111, 109, 130, 119, 117, 104, 93, 91, 86, 75, 73, 106, 95, 93, 106, 95, 93, 110, 99, 97, 122, 111, 109, 110, 99, 97, 119, 108, 106, 74, 63, 61, 122, 111, 109, 128, 117, 115, 112, 102, 100, 114, 105, 100, 128, 121, 115, 116, 107, 102, 113, 104, 99, 151, 140, 136, 136, 125, 121, 139, 125, 122, 133, 119, 116, 124, 110, 107, 110, 96, 93, 112, 101, 97, 118, 107, 103, 134, 125, 120, 133, 124, 119, 108, 101, 95, 112, 105, 99, 121, 112, 107, 116, 107, 102, 114, 105, 100, 128, 119, 114, 125, 116, 111, 118, 109, 104, 133, 123, 121, 134, 124, 122, 132, 124, 121, 111, 103, 100, 91, 83, 80, 107, 99, 96, 117, 112, 109, 114, 109, 106, 126, 121, 118, 132, 127, 124, 90, 80, 78, 100, 90, 88, 97, 87, 85, 85, 75, 73, 113, 102, 98, 129, 118, 114, 111, 100, 96, 124, 113, 109, 145, 134, 128, 136, 125, 119, 122, 109, 103, 130, 117, 111, 129, 116, 110, 121, 108, 102, 122, 109, 103, 99, 86, 80, 111, 97, 94, 99, 85, 82, 132, 118, 115, 123, 109, 106, 88, 77, 73, 116, 105, 101, 128, 117, 113, 87, 76, 72, 103, 94, 89, 96, 87, 82, 96, 87, 82, 102, 93, 88, 109, 100, 95, 116, 107, 102, 108, 99, 94, 88, 79, 74, 137, 126, 122, 135, 124, 120, 111, 100, 96, 101, 90, 86, 121, 110, 106, 121, 110, 106, 111, 100, 96, 132, 121, 117, 122, 111, 107, 89, 78, 74, 122, 111, 107, 126, 115, 111, 110, 99, 95, 131, 120, 116, 137, 126, 122, 137, 128, 123, 134, 124, 122, 118, 110, 107, 95, 90, 86, 71, 66, 62, 110, 102, 99, 118, 110, 107, 127, 117, 116, 92, 84, 82, 62, 57, 54, 76, 75, 71, 62, 64, 59, 111, 116, 110, 167, 169, 166, 156, 156, 154, 102, 98, 97, 56, 51, 48, 83, 79, 76, 78, 73, 69, 88, 77, 75, 117, 103, 102, 91, 80, 78, 44, 36, 33, 73, 74, 68, 86, 89, 82, 171, 176, 169, 150, 151, 145, 56, 51, 47, 71, 63, 60, 98, 88, 86, 93, 85, 82, 97, 96, 91, 110, 111, 105, 197, 198, 193, 126, 127, 122, 75, 74, 69, 113, 112, 107, 100, 97, 90, 192, 187, 181, 148, 141, 135, 83, 76, 70, 68, 59, 54, 115, 106, 101, 145, 134, 130, 129, 118, 114, 107, 96, 94, 104, 93, 91, 94, 84, 83, 72, 62, 61, 38, 30, 28, 75, 70, 67, 161, 156, 153, 115, 110, 107, 83, 78, 75, 136, 131, 128, 129, 121, 119, 127, 119, 117, 110, 102, 100, 58, 50, 48, 48, 40, 38, 57, 49, 47, 113, 103, 102, 123, 113, 112, 78, 68, 67, 122, 112, 110, 97, 87, 85, 87, 78, 73, 81, 72, 67, 102, 93, 88, 133, 124, 119, 133, 124, 119, 115, 106, 101, 111, 102, 97, 117, 108, 103, 135, 126, 121, 96, 87, 82, 120, 111, 106, 143, 134, 129, 119, 110, 105, 132, 123, 118, 129, 120, 115, 118, 109, 104, 118, 109, 104, 109, 100, 95, 104, 95, 90, 87, 78, 73, 85, 76, 71, 119, 110, 105, 133, 124, 119, 78, 69, 64, 56, 47, 42, 69, 60, 55, 94, 85, 80, 103, 94, 89, 126, 117, 112, 148, 139, 134, 140, 131, 126, 138, 131, 125, 149, 142, 136, 125, 118, 112, 137, 130, 124, 163, 156, 150, 136, 129, 123, 98, 89, 84, 72, 63, 58, 96, 87, 82, 109, 100, 95, 120, 109, 105, 108, 97, 93, 89, 78, 74, 92, 81, 77, 104, 93, 89, 102, 93, 88, 99, 89, 87, 113, 105, 102, 91, 83, 80, 68, 60, 57, 92, 84, 81, 123, 115, 112, 121, 113, 110, 109, 101, 98, 125, 117, 114, 115, 107, 104, 93, 85, 82, 106, 98, 95, 114, 106, 103, 98, 90, 87, 106, 98, 95, 120, 113, 107, 136, 129, 123, 107, 100, 92, 102, 95, 89, 114, 107, 101, 121, 113, 110, 128, 120, 117, 126, 118, 115, 107, 99, 96, 101, 93, 90, 108, 100, 97, 102, 94, 91, 91, 83, 80, 87, 80, 74, 86, 79, 73, 95, 88, 80, 111, 104, 96, 110, 106, 97, 131, 127, 118, 154, 150, 141, 161, 157, 148, 155, 151, 142, 152, 148, 139, 161, 157, 148, 172, 168, 159, 171, 166, 160, 176, 171, 165, 182, 177, 171, 187, 182, 176, 189, 184, 180, 190, 185, 181, 193, 188, 184, 194, 189, 185, 199, 192, 186, 198, 191, 185, 195, 190, 186, 193, 188, 184, 193, 188, 184, 193, 188, 184, 193, 188, 184, 193, 188, 184, 202, 198, 195, 202, 198, 195, 202, 198, 195, 202, 198, 195, 202, 198, 195, 202, 198, 195, 200, 199, 197, 200, 199, 197, 206, 202, 199, 208, 204, 201, 210, 206, 203, 213, 209, 206, 215, 211, 208, 216, 212, 209, 215, 214, 212, 215, 214, 212, 217, 216, 214, 217, 216, 214, 217, 216, 214, 218, 217, 215, 219, 219, 219, 221, 221, 221, 223, 223, 223, 224, 225, 227, 228, 229, 233, 229, 232, 237, 233, 236, 241, 235, 238, 243, 236, 239, 244, 237, 240, 245, 239, 242, 247, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 235, 241, 230, 235, 241, 228, 232, 243, 226, 230, 241, 226, 230, 239, 229, 234, 238, 227, 232, 235, 214, 220, 220, 197, 202, 198, 186, 187, 182, 167, 164, 159, 153, 146, 140, 151, 140, 138, 156, 140, 140, 153, 133, 134, 155, 130, 133, 159, 133, 136, 159, 130, 134, 148, 121, 126, 142, 115, 120, 139, 113, 116, 141, 115, 118, 144, 115, 119, 140, 111, 115, 139, 109, 111, 140, 110, 112, 137, 107, 109, 137, 106, 111, 138, 107, 112, 136, 107, 112, 136, 106, 114, 135, 105, 115, 134, 107, 116, 134, 107, 114, 134, 107, 114, 133, 106, 111, 132, 103, 108, 128, 99, 103, 124, 94, 96, 121, 89, 90, 119, 85, 84, 117, 83, 81, 101, 67, 65, 101, 67, 65, 103, 69, 68, 103, 72, 70, 105, 75, 73, 107, 77, 77, 108, 80, 79, 110, 80, 78, 113, 79, 77, 116, 83, 78, 121, 86, 84, 125, 91, 89, 132, 96, 96, 136, 102, 103, 140, 106, 107, 141, 109, 112, 135, 100, 104, 133, 101, 104, 135, 100, 104, 133, 101, 104, 133, 101, 104, 131, 101, 103, 132, 100, 101, 131, 99, 102, 131, 96, 102, 133, 98, 105, 131, 96, 103, 123, 92, 100, 119, 88, 96, 119, 92, 101, 131, 104, 113, 138, 115, 125, 161, 138, 148, 165, 144, 153, 164, 144, 153, 146, 127, 133, 113, 96, 104, 97, 80, 86, 115, 98, 104, 140, 128, 130, 178, 173, 170, 149, 145, 142, 120, 115, 112, 108, 103, 100, 109, 101, 99, 107, 97, 95, 103, 91, 91, 100, 86, 85, 91, 77, 76, 95, 79, 79, 102, 86, 86, 107, 92, 89, 104, 88, 88, 103, 88, 85, 117, 102, 99, 135, 120, 117, 138, 120, 120, 146, 128, 128, 152, 136, 136, 153, 137, 137, 143, 127, 127, 125, 109, 109, 108, 92, 92, 97, 83, 82, 106, 92, 91, 104, 90, 89, 103, 89, 88, 104, 90, 89, 106, 92, 91, 107, 93, 92, 105, 91, 90, 102, 88, 87, 111, 97, 94, 106, 92, 89, 102, 88, 85, 105, 91, 88, 111, 96, 93, 112, 97, 94, 106, 91, 88, 99, 84, 81, 95, 77, 75, 88, 70, 68, 81, 63, 61, 82, 62, 61, 87, 67, 66, 88, 68, 67, 84, 64, 63, 78, 60, 58, 64, 50, 47, 70, 59, 55, 76, 62, 59, 72, 58, 55, 68, 53, 50, 68, 50, 48, 66, 48, 46, 63, 45, 43, 77, 62, 59, 74, 59, 56, 44, 30, 27, 22, 11, 7, 31, 22, 17, 34, 27, 21, 30, 25, 19, 45, 38, 32, 47, 37, 35, 37, 26, 24, 57, 46, 44, 80, 69, 67, 79, 68, 66, 81, 70, 68, 79, 69, 67, 62, 52, 50, 38, 28, 26, 33, 23, 21, 53, 45, 42, 69, 61, 58, 79, 71, 68, 70, 62, 59, 40, 32, 29, 38, 30, 27, 98, 90, 88, 101, 93, 91, 64, 56, 54, 49, 41, 39, 91, 83, 81, 98, 90, 88, 82, 77, 74, 111, 107, 104, 167, 166, 162, 136, 137, 132, 55, 54, 50, 63, 59, 56, 67, 62, 59, 64, 56, 54, 49, 37, 37, 59, 47, 47, 87, 77, 75, 133, 125, 122, 104, 96, 93, 63, 55, 52, 76, 68, 65, 52, 44, 41, 73, 65, 62, 85, 77, 74, 71, 63, 60, 81, 73, 70, 139, 131, 128, 106, 98, 95, 116, 108, 105, 111, 103, 100, 95, 87, 84, 82, 74, 71, 116, 107, 102, 81, 72, 67, 92, 83, 78, 105, 96, 91, 114, 105, 100, 130, 121, 116, 125, 116, 111, 118, 109, 104, 118, 109, 104, 126, 117, 112, 134, 125, 120, 132, 123, 118, 123, 114, 109, 117, 108, 103, 109, 100, 95, 100, 91, 86, 133, 122, 120, 126, 115, 113, 121, 110, 108, 130, 119, 117, 106, 95, 93, 81, 70, 68, 97, 86, 84, 101, 90, 88, 113, 102, 100, 124, 113, 111, 118, 107, 105, 123, 112, 110, 73, 62, 60, 113, 102, 100, 135, 124, 122, 108, 98, 96, 100, 91, 86, 131, 124, 118, 114, 105, 100, 111, 102, 97, 151, 140, 136, 152, 141, 137, 147, 133, 130, 138, 124, 121, 129, 115, 112, 122, 108, 105, 118, 107, 103, 115, 104, 100, 127, 118, 113, 123, 114, 109, 104, 97, 91, 131, 124, 118, 122, 113, 108, 119, 110, 105, 119, 110, 105, 127, 118, 113, 126, 117, 112, 123, 114, 109, 136, 126, 124, 147, 137, 135, 127, 119, 116, 107, 99, 96, 85, 77, 74, 106, 98, 95, 135, 130, 127, 128, 123, 120, 122, 117, 114, 140, 135, 132, 90, 80, 78, 85, 75, 73, 83, 73, 71, 78, 68, 66, 103, 92, 88, 120, 109, 105, 105, 94, 90, 114, 103, 99, 147, 136, 130, 141, 130, 124, 125, 112, 106, 131, 118, 112, 132, 119, 113, 120, 107, 101, 113, 100, 94, 90, 77, 71, 115, 101, 98, 106, 92, 89, 130, 116, 113, 127, 113, 110, 99, 88, 84, 116, 105, 101, 123, 112, 108, 85, 74, 70, 104, 95, 90, 103, 94, 89, 102, 93, 88, 110, 101, 96, 121, 112, 107, 122, 113, 108, 115, 106, 101, 111, 102, 97, 139, 128, 124, 132, 121, 117, 113, 102, 98, 97, 86, 82, 118, 107, 103, 129, 118, 114, 118, 107, 103, 133, 122, 118, 118, 107, 103, 97, 86, 82, 116, 105, 101, 112, 101, 97, 111, 100, 96, 142, 131, 127, 143, 132, 128, 129, 118, 114, 119, 109, 107, 124, 116, 113, 93, 88, 84, 71, 66, 62, 112, 104, 101, 112, 104, 101, 124, 114, 113, 83, 75, 73, 82, 77, 74, 98, 97, 93, 59, 61, 56, 126, 131, 125, 168, 170, 167, 142, 142, 140, 110, 106, 105, 77, 72, 69, 98, 93, 90, 65, 60, 56, 95, 84, 82, 108, 97, 95, 99, 89, 87, 54, 49, 45, 72, 71, 66, 121, 124, 117, 192, 195, 188, 100, 101, 95, 46, 43, 38, 70, 62, 59, 94, 84, 82, 101, 93, 90, 107, 106, 101, 143, 144, 138, 188, 189, 184, 87, 88, 83, 92, 91, 86, 113, 112, 107, 111, 106, 100, 194, 189, 183, 135, 128, 122, 88, 81, 75, 77, 68, 63, 134, 125, 120, 152, 141, 137, 114, 103, 99, 97, 86, 84, 110, 99, 97, 96, 86, 85, 60, 52, 50, 70, 62, 60, 140, 135, 132, 150, 145, 142, 82, 77, 74, 121, 116, 113, 168, 163, 160, 112, 104, 102, 105, 97, 95, 73, 65, 63, 83, 75, 73, 98, 90, 88, 108, 100, 98, 114, 104, 103, 105, 95, 94, 103, 93, 92, 128, 118, 116, 108, 99, 94, 103, 94, 89, 85, 76, 71, 113, 104, 99, 153, 144, 139, 112, 103, 98, 75, 66, 61, 113, 104, 99, 148, 139, 134, 97, 88, 83, 93, 84, 79, 144, 135, 130, 129, 120, 115, 102, 93, 88, 124, 115, 110, 109, 100, 95, 105, 96, 91, 118, 109, 104, 95, 86, 81, 90, 81, 76, 85, 76, 71, 109, 100, 95, 146, 137, 132, 103, 94, 89, 62, 53, 48, 65, 56, 51, 81, 72, 67, 95, 86, 81, 105, 96, 91, 130, 121, 116, 146, 137, 132, 135, 126, 121, 133, 126, 120, 143, 136, 130, 127, 120, 114, 146, 139, 133, 153, 146, 140, 99, 92, 86, 80, 71, 66, 106, 97, 92, 100, 91, 86, 133, 124, 119, 127, 116, 112, 96, 85, 81, 100, 89, 85, 116, 105, 101, 105, 94, 90, 86, 77, 72, 102, 92, 90, 124, 116, 113, 98, 90, 87, 64, 56, 53, 87, 79, 76, 121, 113, 110, 122, 114, 111, 113, 105, 102, 127, 119, 116, 116, 108, 105, 81, 73, 70, 95, 87, 84, 102, 94, 91, 104, 96, 93, 139, 131, 128, 128, 121, 115, 142, 135, 129, 108, 101, 93, 115, 108, 102, 140, 133, 127, 128, 120, 117, 110, 102, 99, 105, 97, 94, 97, 89, 86, 108, 100, 97, 116, 108, 105, 99, 91, 88, 69, 61, 58, 71, 64, 58, 99, 92, 86, 113, 106, 98, 106, 99, 91, 117, 113, 104, 136, 132, 123, 155, 151, 142, 160, 156, 147, 159, 155, 146, 162, 158, 149, 165, 161, 152, 165, 161, 152, 166, 161, 155, 170, 165, 159, 175, 170, 164, 179, 174, 168, 183, 178, 174, 187, 182, 178, 192, 187, 183, 196, 191, 187, 193, 186, 180, 194, 187, 181, 194, 189, 185, 196, 191, 187, 197, 192, 188, 199, 194, 190, 199, 194, 190, 200, 195, 191, 200, 196, 193, 200, 196, 193, 200, 196, 193, 200, 196, 193, 200, 196, 193, 200, 196, 193, 198, 197, 195, 198, 197, 195, 208, 204, 201, 209, 205, 202, 211, 207, 204, 214, 210, 207, 216, 212, 209, 217, 213, 210, 216, 215, 213, 216, 215, 213, 216, 215, 213, 216, 215, 213, 216, 215, 213, 217, 216, 214, 217, 217, 217, 219, 219, 219, 221, 221, 221, 222, 223, 225, 227, 228, 232, 228, 231, 236, 232, 235, 240, 235, 238, 243, 235, 238, 243, 237, 240, 245, 239, 242, 247, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 230, 232, 244, 229, 231, 243, 227, 231, 240, 229, 234, 240, 230, 235, 239, 223, 229, 229, 206, 210, 209, 192, 194, 191, 177, 176, 172, 163, 158, 154, 157, 147, 146, 156, 142, 142, 152, 136, 137, 157, 137, 139, 161, 139, 142, 158, 133, 137, 144, 119, 122, 138, 113, 116, 137, 112, 115, 141, 116, 119, 144, 118, 121, 143, 117, 120, 144, 115, 119, 146, 117, 121, 147, 118, 122, 146, 117, 122, 144, 115, 120, 143, 113, 121, 142, 112, 122, 139, 111, 123, 137, 109, 121, 136, 108, 120, 126, 99, 108, 124, 97, 104, 123, 94, 99, 118, 89, 93, 113, 83, 85, 107, 75, 76, 103, 69, 68, 99, 65, 64, 106, 71, 69, 107, 72, 70, 109, 74, 72, 110, 76, 74, 113, 79, 77, 113, 82, 80, 115, 84, 82, 118, 84, 82, 120, 85, 79, 121, 87, 78, 125, 88, 82, 126, 91, 85, 131, 93, 90, 131, 96, 94, 133, 97, 97, 133, 99, 100, 137, 101, 103, 136, 102, 103, 137, 101, 103, 135, 101, 102, 135, 101, 102, 134, 102, 103, 136, 102, 103, 136, 102, 103, 133, 97, 101, 133, 98, 104, 133, 98, 104, 130, 99, 105, 133, 102, 108, 136, 109, 116, 146, 119, 126, 151, 128, 136, 164, 141, 149, 164, 143, 150, 150, 131, 137, 123, 104, 108, 110, 91, 97, 128, 109, 113, 162, 143, 147, 185, 169, 170, 163, 149, 149, 120, 109, 107, 93, 79, 78, 96, 82, 81, 102, 86, 86, 92, 74, 72, 82, 62, 63, 82, 62, 61, 90, 70, 69, 101, 80, 79, 100, 79, 78, 84, 63, 60, 69, 49, 48, 70, 51, 47, 79, 60, 56, 85, 65, 64, 98, 80, 80, 92, 76, 77, 95, 79, 80, 111, 95, 96, 132, 118, 118, 149, 135, 135, 154, 140, 140, 151, 137, 137, 148, 134, 134, 139, 127, 127, 129, 117, 117, 120, 108, 108, 114, 102, 102, 110, 98, 98, 105, 93, 93, 102, 91, 89, 96, 85, 81, 97, 86, 82, 104, 90, 87, 112, 98, 95, 119, 105, 102, 115, 101, 98, 103, 89, 86, 91, 77, 74, 101, 86, 83, 91, 76, 73, 80, 65, 62, 78, 60, 58, 82, 64, 62, 86, 68, 66, 86, 68, 66, 81, 66, 63, 65, 54, 50, 68, 59, 54, 70, 59, 55, 70, 56, 53, 68, 54, 51, 63, 48, 45, 49, 34, 31, 36, 21, 18, 60, 45, 42, 93, 78, 75, 84, 70, 67, 48, 37, 33, 34, 23, 19, 27, 18, 13, 26, 17, 12, 38, 29, 24, 30, 19, 17, 44, 33, 31, 55, 44, 42, 62, 51, 49, 71, 60, 58, 78, 67, 65, 79, 69, 67, 77, 67, 65, 58, 48, 46, 31, 21, 19, 40, 32, 29, 62, 54, 51, 86, 78, 75, 86, 78, 75, 47, 39, 36, 27, 19, 16, 24, 19, 16, 103, 98, 95, 110, 102, 100, 59, 51, 49, 59, 51, 49, 94, 86, 84, 97, 92, 89, 76, 72, 69, 126, 125, 121, 159, 158, 154, 121, 120, 116, 69, 65, 62, 58, 53, 50, 88, 80, 78, 53, 41, 41, 71, 59, 59, 66, 56, 54, 120, 112, 109, 123, 115, 112, 70, 62, 59, 84, 76, 73, 57, 49, 46, 75, 67, 64, 93, 85, 82, 65, 57, 54, 72, 64, 61, 135, 127, 124, 123, 115, 112, 120, 112, 109, 118, 110, 107, 99, 91, 88, 84, 76, 73, 115, 106, 101, 89, 80, 75, 105, 96, 91, 112, 103, 98, 107, 98, 93, 118, 109, 104, 121, 112, 107, 126, 117, 112, 109, 100, 95, 119, 110, 105, 126, 117, 112, 126, 117, 112, 127, 118, 113, 124, 115, 110, 117, 108, 103, 112, 103, 98, 120, 109, 105, 128, 117, 113, 125, 114, 110, 127, 116, 112, 105, 94, 90, 86, 75, 71, 99, 88, 84, 98, 87, 83, 105, 94, 90, 119, 108, 104, 119, 108, 104, 122, 111, 107, 75, 64, 60, 103, 92, 88, 139, 128, 124, 113, 104, 99, 93, 84, 79, 131, 124, 118, 114, 105, 100, 114, 105, 100, 142, 131, 127, 154, 143, 139, 145, 131, 128, 131, 117, 114, 122, 108, 105, 125, 111, 108, 131, 120, 116, 126, 115, 111, 126, 117, 112, 112, 103, 98, 98, 91, 85, 135, 128, 122, 119, 110, 105, 115, 106, 101, 118, 109, 104, 123, 114, 109, 126, 117, 112, 127, 118, 113, 135, 125, 123, 154, 144, 142, 114, 106, 103, 101, 93, 90, 87, 79, 76, 104, 96, 93, 141, 136, 133, 140, 135, 132, 121, 116, 113, 133, 128, 125, 102, 92, 90, 75, 65, 63, 73, 63, 61, 81, 71, 69, 103, 92, 88, 112, 101, 97, 98, 87, 83, 107, 96, 92, 139, 128, 122, 141, 130, 124, 128, 115, 109, 134, 121, 115, 135, 122, 116, 117, 104, 98, 103, 90, 84, 79, 66, 60, 104, 90, 87, 120, 106, 103, 122, 108, 105, 117, 103, 100, 116, 105, 101, 121, 110, 106, 111, 100, 96, 87, 76, 72, 87, 78, 73, 107, 98, 93, 99, 90, 85, 101, 92, 87, 130, 121, 116, 127, 118, 113, 114, 105, 100, 133, 124, 119, 135, 124, 120, 130, 119, 115, 116, 105, 101, 86, 75, 71, 104, 93, 89, 134, 123, 119, 124, 113, 109, 132, 121, 117, 112, 101, 97, 101, 90, 86, 104, 93, 89, 95, 84, 80, 105, 94, 90, 139, 128, 124, 135, 124, 120, 111, 100, 96, 102, 93, 88, 129, 122, 116, 92, 87, 83, 75, 70, 66, 118, 110, 107, 105, 97, 94, 123, 113, 111, 87, 77, 75, 103, 95, 93, 108, 104, 101, 57, 59, 54, 139, 144, 138, 159, 161, 156, 132, 133, 128, 122, 116, 116, 111, 106, 103, 99, 94, 91, 62, 54, 51, 112, 102, 100, 96, 85, 83, 109, 99, 97, 70, 65, 61, 70, 69, 64, 172, 175, 168, 168, 171, 164, 79, 80, 74, 70, 67, 62, 55, 50, 46, 87, 79, 76, 107, 102, 98, 102, 99, 94, 188, 187, 182, 150, 151, 146, 66, 67, 62, 113, 112, 107, 93, 92, 87, 145, 140, 134, 167, 162, 156, 116, 109, 103, 83, 76, 70, 93, 84, 79, 132, 123, 118, 144, 133, 129, 108, 97, 93, 76, 66, 64, 80, 70, 68, 85, 75, 74, 74, 66, 64, 141, 133, 130, 167, 162, 158, 113, 108, 104, 97, 92, 88, 161, 156, 152, 153, 148, 144, 96, 88, 85, 84, 76, 73, 89, 81, 78, 121, 113, 110, 125, 117, 114, 129, 121, 118, 91, 81, 79, 89, 79, 77, 150, 140, 138, 134, 124, 122, 129, 120, 115, 101, 92, 87, 107, 98, 93, 153, 144, 139, 148, 139, 134, 77, 68, 63, 70, 61, 56, 140, 131, 126, 114, 105, 100, 65, 56, 51, 106, 97, 92, 130, 121, 116, 102, 93, 88, 100, 91, 86, 100, 91, 86, 97, 88, 83, 110, 101, 96, 101, 92, 87, 64, 55, 50, 72, 63, 58, 94, 85, 80, 127, 118, 113, 152, 143, 138, 93, 84, 79, 52, 43, 38, 91, 82, 77, 108, 99, 94, 101, 92, 87, 105, 96, 91, 112, 103, 98, 123, 114, 109, 140, 131, 126, 122, 115, 109, 138, 131, 125, 127, 120, 114, 138, 131, 125, 129, 122, 116, 80, 73, 67, 87, 78, 73, 133, 124, 119, 118, 109, 104, 134, 125, 120, 101, 90, 86, 85, 74, 70, 124, 113, 109, 126, 115, 111, 93, 82, 78, 91, 82, 77, 114, 104, 102, 109, 101, 98, 89, 81, 78, 85, 77, 74, 106, 98, 95, 115, 107, 104, 116, 108, 105, 130, 122, 119, 111, 103, 100, 107, 99, 96, 70, 62, 59, 68, 60, 57, 74, 66, 63, 103, 95, 92, 158, 150, 147, 143, 136, 130, 119, 112, 106, 113, 106, 98, 129, 122, 116, 136, 129, 123, 111, 103, 100, 94, 86, 83, 93, 85, 82, 88, 80, 77, 104, 96, 93, 84, 76, 73, 59, 51, 48, 50, 42, 39, 69, 62, 56, 103, 96, 90, 117, 110, 102, 111, 104, 96, 137, 130, 122, 148, 141, 133, 157, 150, 142, 161, 154, 146, 163, 156, 148, 163, 156, 148, 156, 149, 141, 146, 139, 131, 164, 157, 151, 168, 161, 155, 174, 167, 161, 178, 171, 165, 183, 175, 172, 189, 181, 178, 196, 188, 185, 201, 193, 190, 194, 187, 181, 195, 188, 182, 194, 189, 185, 196, 191, 187, 198, 193, 189, 199, 194, 190, 200, 195, 191, 200, 195, 191, 196, 192, 189, 196, 192, 189, 197, 193, 190, 199, 195, 192, 200, 196, 193, 201, 197, 194, 200, 199, 197, 201, 200, 198, 209, 205, 202, 211, 207, 204, 213, 209, 206, 216, 212, 209, 218, 214, 211, 219, 215, 212, 217, 216, 214, 217, 216, 214, 217, 216, 214, 216, 215, 213, 216, 215, 213, 216, 215, 213, 216, 216, 216, 218, 218, 218, 220, 220, 220, 220, 221, 223, 225, 226, 230, 227, 230, 235, 231, 234, 239, 234, 237, 242, 235, 238, 243, 237, 240, 245, 239, 242, 247, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 232, 244, 231, 233, 245, 230, 233, 242, 228, 233, 239, 229, 234, 238, 226, 231, 234, 213, 217, 218, 197, 201, 200, 189, 189, 187, 171, 170, 166, 160, 155, 152, 153, 143, 142, 147, 133, 133, 149, 133, 134, 151, 132, 134, 143, 123, 125, 137, 115, 117, 134, 112, 114, 138, 113, 116, 146, 122, 122, 152, 126, 129, 152, 126, 129, 155, 126, 130, 157, 128, 132, 155, 126, 131, 151, 122, 127, 146, 116, 124, 143, 113, 121, 140, 110, 120, 135, 107, 119, 130, 102, 116, 126, 98, 110, 130, 102, 114, 130, 103, 112, 129, 102, 109, 129, 100, 105, 124, 95, 99, 120, 90, 92, 116, 84, 85, 114, 80, 79, 118, 84, 83, 118, 83, 81, 116, 81, 79, 112, 77, 75, 108, 74, 72, 105, 71, 69, 102, 68, 66, 101, 68, 63, 111, 77, 68, 113, 79, 70, 115, 81, 72, 119, 84, 78, 123, 88, 84, 126, 91, 89, 128, 94, 93, 129, 95, 96, 137, 102, 106, 135, 100, 104, 133, 98, 102, 131, 96, 100, 127, 95, 98, 127, 95, 98, 127, 95, 98, 127, 95, 98, 131, 99, 102, 131, 99, 102, 132, 101, 106, 137, 108, 112, 144, 117, 122, 150, 125, 129, 151, 128, 134, 151, 130, 135, 129, 110, 116, 126, 107, 113, 112, 96, 99, 106, 90, 93, 123, 107, 110, 153, 137, 140, 166, 150, 151, 161, 145, 146, 116, 98, 98, 113, 95, 95, 109, 89, 90, 102, 82, 83, 95, 74, 73, 91, 70, 69, 95, 71, 71, 100, 74, 75, 97, 71, 72, 109, 85, 85, 115, 91, 89, 109, 85, 83, 107, 83, 81, 104, 83, 80, 90, 69, 66, 70, 50, 49, 99, 81, 81, 98, 82, 83, 95, 76, 78, 81, 65, 66, 73, 57, 58, 81, 65, 66, 105, 89, 90, 125, 111, 111, 137, 123, 123, 145, 131, 131, 155, 141, 141, 161, 147, 147, 158, 144, 144, 146, 134, 134, 134, 120, 120, 123, 111, 111, 118, 107, 105, 113, 102, 98, 110, 96, 93, 109, 95, 92, 111, 97, 94, 113, 99, 96, 111, 97, 94, 109, 95, 92, 112, 97, 94, 102, 87, 84, 89, 74, 71, 81, 66, 63, 79, 64, 61, 79, 64, 61, 80, 62, 60, 77, 62, 59, 88, 77, 73, 83, 74, 69, 75, 66, 61, 68, 57, 53, 65, 54, 50, 62, 48, 45, 50, 36, 33, 37, 22, 19, 35, 20, 17, 68, 53, 50, 80, 66, 63, 68, 54, 51, 58, 47, 43, 53, 42, 38, 42, 31, 27, 34, 23, 19, 27, 16, 14, 49, 38, 36, 60, 49, 47, 61, 50, 48, 67, 56, 54, 69, 58, 56, 62, 52, 50, 61, 51, 49, 78, 68, 66, 46, 36, 34, 45, 37, 34, 54, 46, 43, 73, 65, 62, 90, 82, 79, 73, 65, 62, 62, 54, 51, 25, 20, 17, 59, 54, 51, 105, 97, 95, 106, 98, 96, 63, 55, 53, 73, 65, 63, 104, 96, 94, 68, 63, 60, 66, 62, 59, 150, 149, 145, 173, 172, 168, 103, 102, 98, 56, 51, 48, 100, 92, 90, 73, 63, 62, 71, 61, 60, 73, 65, 62, 95, 87, 84, 139, 131, 128, 80, 72, 69, 87, 79, 76, 64, 56, 53, 71, 63, 60, 92, 84, 81, 62, 54, 51, 57, 49, 46, 121, 113, 110, 128, 120, 117, 116, 108, 105, 117, 109, 106, 101, 93, 90, 93, 85, 82, 115, 106, 101, 92, 83, 78, 109, 100, 95, 112, 103, 98, 102, 93, 88, 111, 102, 97, 116, 107, 102, 123, 114, 109, 120, 111, 106, 127, 118, 113, 123, 114, 109, 117, 108, 103, 121, 112, 107, 121, 112, 107, 116, 107, 102, 116, 107, 102, 109, 98, 94, 130, 119, 115, 130, 119, 115, 128, 117, 113, 111, 100, 96, 97, 86, 82, 108, 97, 93, 105, 94, 90, 95, 84, 80, 110, 99, 95, 106, 95, 91, 114, 103, 99, 87, 76, 72, 99, 88, 84, 142, 131, 127, 123, 114, 109, 97, 88, 83, 132, 125, 119, 118, 109, 104, 125, 116, 111, 127, 116, 112, 144, 133, 129, 136, 122, 119, 115, 101, 98, 109, 95, 92, 113, 99, 96, 134, 123, 119, 139, 128, 124, 128, 119, 114, 108, 99, 94, 94, 87, 81, 125, 118, 112, 116, 107, 102, 109, 100, 95, 114, 105, 100, 115, 106, 101, 124, 115, 110, 128, 119, 114, 126, 116, 114, 149, 139, 137, 107, 99, 96, 93, 85, 82, 89, 81, 78, 103, 95, 92, 135, 130, 127, 140, 135, 132, 114, 109, 106, 119, 114, 111, 126, 116, 114, 81, 71, 69, 73, 63, 61, 84, 74, 72, 100, 89, 85, 109, 98, 94, 98, 87, 83, 103, 92, 88, 131, 120, 114, 139, 128, 122, 126, 113, 107, 130, 117, 111, 130, 117, 111, 109, 96, 90, 95, 82, 76, 79, 66, 60, 92, 78, 75, 131, 117, 114, 113, 99, 96, 102, 88, 85, 126, 115, 111, 127, 116, 112, 108, 97, 93, 94, 83, 79, 71, 62, 57, 106, 97, 92, 97, 88, 83, 92, 83, 78, 125, 116, 111, 125, 116, 111, 112, 103, 98, 138, 129, 124, 128, 117, 113, 122, 111, 107, 116, 105, 101, 79, 68, 64, 92, 81, 77, 131, 120, 116, 123, 112, 108, 131, 120, 116, 118, 107, 103, 116, 105, 101, 108, 97, 93, 97, 86, 82, 114, 103, 99, 142, 131, 127, 131, 120, 116, 102, 91, 87, 96, 87, 82, 134, 127, 121, 87, 79, 76, 76, 71, 67, 126, 118, 115, 101, 93, 90, 129, 118, 116, 100, 90, 88, 105, 97, 95, 100, 96, 93, 65, 67, 62, 149, 154, 148, 140, 142, 137, 128, 129, 124, 130, 124, 124, 133, 125, 123, 92, 87, 83, 72, 64, 61, 122, 112, 110, 86, 76, 74, 116, 108, 105, 88, 83, 79, 95, 94, 89, 193, 194, 188, 123, 124, 118, 80, 81, 75, 85, 82, 77, 45, 40, 36, 95, 87, 84, 110, 105, 101, 100, 97, 92, 206, 205, 200, 118, 117, 113, 71, 72, 67, 114, 113, 108, 97, 94, 89, 174, 169, 163, 136, 131, 125, 94, 87, 81, 76, 69, 63, 128, 119, 114, 131, 122, 117, 145, 134, 130, 125, 114, 110, 70, 60, 58, 53, 43, 41, 86, 76, 75, 114, 106, 104, 173, 168, 164, 131, 126, 122, 94, 89, 85, 142, 137, 133, 161, 156, 152, 107, 102, 98, 86, 78, 75, 83, 75, 72, 135, 127, 124, 121, 113, 110, 106, 98, 95, 115, 107, 104, 85, 75, 73, 105, 95, 93, 177, 167, 165, 146, 136, 134, 109, 100, 95, 108, 99, 94, 146, 137, 132, 148, 139, 134, 90, 81, 76, 76, 67, 62, 110, 101, 96, 119, 110, 105, 57, 48, 43, 82, 73, 68, 132, 123, 118, 106, 97, 92, 97, 88, 83, 113, 104, 99, 89, 80, 75, 107, 98, 93, 99, 90, 85, 70, 61, 56, 56, 47, 42, 97, 88, 83, 131, 122, 117, 132, 123, 118, 122, 113, 108, 92, 83, 78, 79, 70, 65, 102, 93, 88, 99, 90, 85, 97, 88, 83, 118, 109, 104, 119, 110, 105, 111, 102, 97, 124, 115, 110, 120, 113, 107, 136, 129, 123, 121, 114, 108, 115, 108, 102, 107, 100, 94, 96, 89, 83, 117, 108, 103, 132, 123, 118, 136, 127, 122, 107, 98, 93, 65, 54, 50, 83, 72, 68, 132, 121, 117, 110, 99, 95, 82, 71, 67, 114, 105, 100, 123, 113, 111, 83, 75, 72, 79, 71, 68, 119, 111, 108, 134, 126, 123, 110, 102, 99, 105, 97, 94, 128, 120, 117, 81, 73, 70, 72, 64, 61, 53, 45, 42, 66, 58, 55, 100, 92, 89, 134, 126, 123, 139, 131, 128, 101, 94, 88, 101, 94, 88, 125, 118, 110, 131, 124, 118, 106, 99, 93, 83, 75, 72, 79, 71, 68, 74, 66, 63, 62, 54, 51, 77, 69, 66, 36, 28, 25, 29, 21, 18, 68, 60, 57, 105, 98, 92, 124, 117, 111, 141, 134, 126, 154, 147, 139, 154, 147, 139, 155, 148, 140, 157, 150, 142, 159, 152, 144, 157, 150, 142, 149, 142, 134, 139, 132, 124, 132, 125, 117, 166, 159, 153, 170, 163, 157, 176, 169, 163, 181, 174, 168, 186, 178, 175, 192, 184, 181, 198, 190, 187, 202, 194, 191, 201, 194, 188, 200, 193, 187, 196, 191, 187, 195, 190, 186, 194, 189, 185, 194, 189, 185, 194, 189, 185, 194, 189, 185, 193, 189, 186, 194, 190, 187, 196, 192, 189, 198, 194, 191, 201, 197, 194, 203, 199, 196, 203, 202, 200, 204, 203, 201, 209, 205, 202, 210, 206, 203, 213, 209, 206, 215, 211, 208, 217, 213, 210, 219, 215, 212, 217, 216, 214, 217, 216, 214, 217, 216, 214, 217, 216, 214, 216, 215, 213, 216, 215, 213, 216, 216, 216, 218, 218, 218, 219, 219, 219, 219, 220, 222, 224, 225, 229, 226, 229, 234, 231, 234, 239, 234, 237, 242, 235, 238, 243, 237, 240, 245, 240, 243, 248, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 229, 231, 243, 232, 234, 246, 231, 234, 243, 227, 230, 239, 227, 232, 238, 228, 233, 237, 219, 224, 227, 207, 211, 212, 195, 197, 196, 177, 177, 175, 163, 159, 158, 152, 146, 146, 145, 135, 134, 147, 135, 135, 147, 133, 133, 137, 118, 120, 138, 118, 119, 137, 116, 115, 142, 118, 118, 150, 126, 124, 155, 129, 130, 153, 127, 128, 152, 123, 125, 153, 123, 125, 152, 121, 126, 148, 117, 123, 143, 112, 120, 141, 110, 118, 140, 108, 119, 137, 107, 117, 132, 102, 114, 126, 98, 110, 126, 100, 111, 127, 101, 112, 128, 102, 113, 128, 102, 111, 126, 99, 106, 124, 95, 100, 119, 90, 94, 117, 87, 89, 115, 83, 84, 117, 83, 82, 117, 83, 82, 117, 83, 82, 117, 83, 81, 117, 83, 81, 118, 83, 81, 118, 85, 80, 114, 81, 74, 116, 83, 76, 118, 88, 80, 123, 92, 87, 129, 98, 95, 134, 103, 101, 138, 106, 109, 140, 108, 111, 130, 99, 104, 129, 98, 103, 127, 96, 102, 125, 94, 100, 124, 93, 101, 125, 94, 102, 126, 96, 104, 127, 98, 103, 128, 99, 103, 124, 98, 99, 126, 100, 103, 137, 112, 115, 148, 126, 129, 152, 132, 134, 145, 126, 130, 135, 119, 122, 124, 109, 114, 118, 103, 108, 115, 103, 105, 128, 116, 118, 148, 136, 138, 157, 145, 147, 145, 133, 133, 129, 115, 115, 96, 76, 77, 111, 86, 89, 114, 88, 91, 99, 73, 76, 86, 60, 63, 87, 61, 64, 95, 66, 68, 96, 67, 69, 101, 72, 74, 91, 65, 66, 79, 53, 54, 72, 48, 48, 77, 53, 51, 88, 64, 62, 94, 73, 70, 95, 74, 73, 78, 58, 60, 103, 84, 88, 128, 107, 112, 127, 108, 112, 106, 87, 91, 86, 67, 71, 84, 65, 69, 89, 73, 76, 96, 80, 83, 101, 85, 88, 107, 91, 94, 113, 97, 100, 120, 104, 107, 131, 116, 119, 146, 130, 133, 156, 142, 142, 152, 141, 139, 144, 133, 129, 132, 121, 117, 121, 110, 106, 114, 103, 99, 111, 100, 96, 111, 100, 96, 112, 101, 97, 112, 98, 95, 108, 94, 91, 100, 86, 83, 92, 78, 75, 85, 71, 68, 80, 66, 63, 78, 63, 60, 76, 62, 59, 66, 56, 54, 66, 58, 55, 64, 56, 53, 61, 51, 49, 62, 52, 50, 68, 57, 55, 68, 57, 55, 67, 53, 52, 37, 23, 22, 40, 26, 25, 58, 44, 43, 77, 63, 62, 80, 66, 65, 77, 63, 62, 67, 53, 52, 51, 40, 38, 38, 27, 25, 33, 22, 20, 53, 42, 40, 73, 62, 60, 70, 59, 57, 69, 58, 56, 70, 60, 58, 59, 49, 47, 75, 65, 63, 54, 44, 42, 59, 51, 48, 57, 49, 46, 64, 56, 53, 86, 78, 75, 80, 72, 69, 70, 62, 59, 63, 58, 55, 41, 36, 33, 66, 58, 56, 118, 110, 108, 101, 91, 90, 72, 64, 62, 90, 82, 80, 80, 75, 72, 57, 53, 50, 104, 100, 97, 146, 145, 141, 154, 153, 149, 79, 74, 71, 88, 80, 78, 101, 91, 90, 72, 62, 61, 98, 90, 87, 65, 57, 54, 145, 137, 134, 88, 80, 77, 89, 81, 78, 80, 72, 69, 76, 68, 65, 93, 85, 82, 71, 63, 60, 50, 42, 39, 108, 100, 97, 128, 120, 117, 107, 99, 96, 113, 105, 102, 104, 96, 93, 110, 102, 99, 117, 108, 103, 85, 76, 71, 95, 86, 81, 104, 95, 90, 104, 95, 90, 116, 107, 102, 113, 104, 99, 110, 101, 96, 127, 118, 113, 136, 127, 122, 128, 119, 114, 120, 111, 106, 123, 114, 109, 117, 108, 103, 105, 96, 91, 103, 94, 89, 106, 95, 91, 130, 119, 115, 133, 122, 118, 137, 126, 122, 124, 113, 109, 107, 96, 92, 118, 107, 103, 121, 110, 106, 103, 92, 88, 112, 101, 97, 96, 85, 81, 110, 99, 95, 108, 97, 93, 106, 95, 91, 142, 131, 127, 129, 120, 115, 99, 90, 85, 126, 119, 113, 121, 112, 107, 137, 128, 123, 115, 104, 100, 134, 123, 119, 133, 119, 116, 107, 93, 90, 107, 93, 90, 95, 81, 78, 121, 110, 106, 134, 123, 119, 120, 111, 106, 106, 97, 92, 99, 92, 86, 120, 113, 107, 120, 111, 106, 111, 102, 97, 115, 106, 101, 113, 104, 99, 126, 117, 112, 129, 120, 115, 118, 108, 106, 140, 130, 128, 119, 111, 108, 90, 82, 79, 92, 84, 81, 108, 100, 97, 128, 123, 120, 130, 125, 122, 106, 101, 98, 111, 106, 103, 145, 135, 133, 94, 84, 82, 78, 68, 66, 75, 65, 63, 87, 76, 72, 108, 97, 93, 103, 92, 88, 96, 85, 81, 130, 119, 113, 139, 128, 122, 120, 107, 101, 116, 103, 97, 115, 102, 96, 97, 84, 78, 94, 81, 75, 89, 76, 70, 89, 75, 72, 134, 120, 117, 107, 93, 90, 90, 76, 73, 122, 111, 107, 133, 122, 118, 121, 110, 106, 103, 92, 88, 73, 64, 59, 104, 95, 90, 105, 96, 91, 96, 87, 82, 112, 103, 98, 120, 111, 106, 118, 109, 104, 129, 120, 115, 124, 113, 109, 112, 101, 97, 116, 105, 101, 86, 75, 71, 94, 83, 79, 127, 116, 112, 117, 106, 102, 134, 123, 119, 126, 115, 111, 133, 122, 118, 121, 110, 106, 112, 101, 97, 131, 120, 116, 147, 136, 132, 128, 117, 113, 94, 83, 79, 105, 96, 91, 137, 130, 124, 73, 66, 60, 71, 66, 60, 132, 124, 121, 103, 95, 92, 139, 128, 126, 116, 106, 104, 100, 92, 89, 97, 94, 89, 91, 93, 88, 162, 167, 161, 120, 122, 117, 131, 132, 127, 129, 124, 121, 122, 114, 112, 83, 75, 72, 94, 86, 83, 114, 106, 103, 83, 75, 72, 121, 113, 110, 102, 97, 93, 149, 148, 143, 168, 167, 162, 90, 89, 84, 63, 62, 57, 75, 72, 67, 69, 66, 61, 104, 99, 95, 111, 106, 102, 149, 146, 141, 188, 187, 182, 105, 104, 100, 100, 99, 95, 99, 96, 91, 133, 130, 125, 170, 165, 159, 111, 106, 100, 86, 79, 73, 107, 98, 93, 154, 145, 140, 134, 125, 120, 144, 135, 130, 129, 120, 115, 72, 62, 60, 72, 62, 60, 119, 111, 109, 138, 130, 128, 150, 145, 141, 106, 101, 97, 119, 114, 110, 151, 146, 142, 135, 130, 126, 100, 95, 91, 98, 90, 87, 122, 114, 111, 138, 130, 127, 93, 85, 82, 107, 99, 96, 109, 101, 98, 108, 98, 96, 149, 139, 137, 162, 152, 150, 147, 137, 135, 96, 87, 82, 134, 125, 120, 146, 137, 132, 101, 92, 87, 71, 62, 57, 105, 96, 91, 119, 110, 105, 80, 71, 66, 75, 66, 61, 118, 109, 104, 131, 122, 117, 104, 95, 90, 99, 90, 85, 103, 94, 89, 95, 86, 81, 103, 94, 89, 80, 71, 66, 67, 58, 53, 93, 84, 79, 133, 124, 119, 152, 143, 138, 123, 114, 109, 84, 75, 70, 94, 85, 80, 103, 94, 89, 92, 83, 78, 87, 78, 73, 103, 94, 89, 122, 113, 108, 123, 114, 109, 117, 108, 103, 120, 111, 106, 131, 124, 118, 127, 120, 114, 110, 103, 97, 107, 100, 94, 103, 96, 90, 113, 106, 100, 139, 130, 125, 128, 119, 114, 119, 110, 105, 72, 63, 58, 56, 45, 41, 92, 81, 77, 113, 102, 98, 92, 81, 77, 89, 78, 74, 119, 110, 105, 115, 105, 103, 89, 81, 78, 105, 97, 94, 135, 127, 124, 121, 113, 110, 99, 91, 88, 97, 89, 86, 99, 91, 88, 64, 56, 53, 58, 50, 47, 75, 67, 64, 102, 94, 91, 141, 133, 130, 147, 139, 136, 98, 90, 87, 66, 59, 53, 106, 99, 93, 120, 113, 105, 102, 95, 89, 79, 72, 66, 79, 71, 68, 71, 63, 60, 54, 46, 43, 53, 45, 42, 65, 57, 54, 48, 40, 37, 71, 63, 60, 121, 113, 110, 146, 139, 133, 154, 147, 141, 165, 158, 150, 174, 167, 159, 154, 145, 138, 151, 142, 135, 153, 144, 137, 154, 145, 138, 145, 136, 129, 133, 124, 117, 134, 125, 118, 144, 135, 128, 169, 160, 155, 173, 164, 159, 179, 170, 165, 184, 175, 170, 187, 177, 175, 190, 180, 178, 193, 183, 181, 196, 186, 184, 201, 194, 188, 199, 192, 186, 194, 189, 185, 191, 186, 182, 190, 185, 181, 191, 186, 182, 193, 188, 184, 195, 190, 186, 194, 190, 187, 195, 191, 188, 196, 192, 189, 199, 195, 192, 201, 197, 194, 203, 199, 196, 203, 202, 200, 204, 203, 201, 206, 202, 199, 208, 204, 201, 210, 206, 203, 213, 209, 206, 215, 211, 208, 216, 212, 209, 214, 213, 211, 215, 214, 212, 218, 217, 215, 218, 217, 215, 217, 216, 214, 217, 216, 214, 216, 216, 216, 218, 218, 218, 219, 219, 219, 219, 220, 222, 223, 224, 228, 225, 228, 233, 230, 233, 238, 233, 236, 241, 235, 238, 243, 237, 240, 245, 240, 243, 248, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 241, 247, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 229, 229, 241, 234, 234, 246, 232, 235, 244, 227, 230, 239, 225, 230, 236, 229, 234, 240, 224, 229, 233, 214, 219, 222, 200, 204, 205, 184, 186, 185, 170, 168, 169, 160, 156, 155, 155, 147, 145, 159, 149, 148, 158, 146, 146, 147, 131, 131, 145, 125, 124, 143, 122, 119, 146, 122, 120, 151, 127, 125, 152, 126, 125, 147, 119, 118, 141, 111, 111, 138, 108, 110, 143, 113, 115, 140, 109, 114, 137, 106, 112, 139, 108, 114, 144, 111, 120, 145, 114, 122, 142, 110, 121, 136, 108, 120, 135, 109, 122, 133, 111, 123, 135, 111, 124, 134, 111, 121, 132, 106, 115, 127, 102, 108, 123, 96, 101, 121, 92, 96, 119, 88, 93, 118, 88, 90, 118, 86, 87, 116, 85, 83, 114, 83, 81, 114, 80, 78, 112, 78, 76, 112, 78, 76, 112, 81, 76, 112, 83, 77, 114, 85, 79, 114, 86, 82, 117, 87, 85, 118, 90, 89, 120, 91, 95, 121, 92, 97, 125, 96, 101, 122, 95, 102, 124, 94, 102, 123, 96, 105, 126, 99, 108, 130, 103, 112, 134, 106, 118, 135, 110, 116, 150, 125, 128, 144, 123, 122, 146, 124, 126, 159, 139, 140, 174, 155, 157, 175, 159, 160, 161, 146, 149, 144, 132, 134, 156, 144, 148, 150, 139, 143, 159, 148, 152, 178, 168, 169, 184, 174, 175, 170, 160, 161, 153, 143, 144, 147, 135, 135, 167, 147, 149, 158, 133, 136, 145, 120, 124, 138, 113, 116, 137, 111, 114, 132, 106, 109, 125, 99, 102, 119, 93, 94, 118, 92, 93, 107, 83, 83, 99, 75, 75, 91, 70, 69, 79, 58, 57, 65, 46, 42, 69, 49, 48, 82, 64, 62, 99, 79, 81, 89, 68, 73, 84, 63, 68, 93, 72, 77, 110, 89, 94, 115, 94, 99, 103, 84, 88, 88, 69, 73, 92, 73, 77, 100, 81, 85, 108, 89, 93, 107, 88, 92, 99, 83, 86, 94, 78, 81, 94, 78, 81, 97, 81, 82, 115, 101, 100, 125, 114, 110, 141, 130, 126, 152, 141, 137, 152, 141, 137, 144, 133, 129, 135, 124, 120, 129, 118, 114, 108, 94, 91, 109, 95, 92, 108, 94, 91, 103, 89, 86, 96, 82, 79, 88, 74, 71, 84, 70, 67, 81, 70, 66, 44, 34, 32, 52, 44, 41, 56, 48, 45, 52, 44, 41, 49, 39, 37, 51, 41, 39, 56, 45, 43, 57, 46, 44, 59, 48, 46, 50, 36, 35, 76, 62, 61, 99, 85, 84, 79, 65, 64, 63, 49, 48, 77, 63, 62, 88, 74, 73, 82, 71, 69, 40, 29, 27, 59, 48, 46, 89, 78, 76, 67, 56, 54, 60, 49, 47, 66, 56, 54, 44, 34, 32, 60, 50, 48, 50, 40, 38, 68, 60, 57, 67, 59, 56, 68, 60, 57, 84, 76, 73, 66, 58, 55, 42, 37, 33, 44, 40, 37, 72, 68, 65, 61, 56, 53, 84, 76, 74, 113, 103, 102, 96, 86, 85, 92, 84, 82, 102, 94, 92, 91, 86, 83, 55, 51, 48, 86, 82, 79, 193, 189, 186, 108, 103, 100, 67, 62, 59, 120, 112, 110, 76, 66, 65, 119, 111, 108, 44, 36, 33, 145, 137, 134, 92, 84, 81, 94, 86, 83, 97, 89, 86, 86, 78, 75, 101, 93, 90, 84, 76, 73, 51, 43, 40, 103, 95, 92, 128, 120, 117, 103, 95, 92, 111, 103, 100, 109, 101, 98, 124, 116, 113, 120, 111, 106, 77, 68, 63, 80, 71, 66, 94, 85, 80, 107, 98, 93, 125, 116, 111, 112, 103, 98, 98, 89, 84, 113, 104, 99, 129, 120, 115, 130, 121, 116, 129, 120, 115, 135, 126, 121, 125, 116, 111, 103, 94, 89, 97, 88, 83, 108, 97, 93, 128, 117, 113, 133, 122, 118, 145, 134, 130, 136, 125, 121, 112, 101, 97, 124, 113, 109, 135, 124, 120, 122, 111, 107, 123, 112, 108, 94, 83, 79, 111, 100, 96, 126, 115, 111, 114, 103, 99, 141, 130, 126, 128, 119, 114, 96, 87, 82, 117, 110, 104, 120, 111, 106, 144, 135, 130, 110, 99, 95, 132, 121, 117, 136, 122, 119, 109, 95, 92, 114, 100, 97, 84, 70, 67, 103, 92, 88, 119, 108, 104, 107, 98, 93, 105, 96, 91, 108, 101, 95, 123, 116, 110, 128, 119, 114, 116, 107, 102, 119, 110, 105, 115, 106, 101, 130, 121, 116, 133, 124, 119, 114, 104, 102, 135, 125, 123, 137, 129, 126, 92, 84, 81, 97, 89, 86, 116, 108, 105, 126, 121, 118, 122, 117, 114, 101, 96, 93, 112, 107, 104, 154, 144, 142, 103, 93, 91, 80, 70, 68, 63, 53, 51, 71, 60, 56, 106, 95, 91, 106, 95, 91, 88, 77, 73, 132, 121, 115, 140, 129, 123, 114, 101, 95, 103, 90, 84, 101, 88, 82, 88, 75, 69, 95, 82, 76, 100, 87, 81, 91, 77, 74, 133, 119, 116, 104, 90, 87, 86, 72, 69, 114, 103, 99, 136, 125, 121, 135, 124, 120, 109, 98, 94, 84, 75, 70, 105, 96, 91, 117, 108, 103, 106, 97, 92, 102, 93, 88, 118, 109, 104, 128, 119, 114, 121, 112, 107, 126, 115, 111, 106, 95, 91, 118, 107, 103, 98, 87, 83, 103, 92, 88, 125, 114, 110, 113, 102, 98, 141, 130, 126, 123, 112, 108, 135, 124, 120, 123, 112, 108, 118, 107, 103, 137, 126, 122, 144, 133, 129, 117, 106, 102, 82, 71, 67, 115, 106, 101, 141, 132, 127, 60, 53, 47, 64, 59, 53, 135, 127, 124, 107, 97, 95, 147, 136, 134, 127, 117, 115, 100, 92, 89, 103, 100, 95, 119, 120, 115, 174, 179, 173, 109, 111, 106, 134, 135, 130, 122, 117, 114, 101, 93, 91, 77, 69, 66, 111, 103, 100, 102, 94, 91, 82, 77, 73, 122, 117, 113, 109, 106, 101, 197, 194, 189, 132, 131, 126, 80, 79, 74, 31, 30, 25, 57, 54, 49, 108, 105, 100, 106, 103, 98, 112, 109, 104, 215, 212, 207, 164, 161, 156, 107, 103, 100, 128, 127, 123, 84, 81, 76, 173, 170, 165, 150, 145, 139, 100, 93, 87, 92, 83, 78, 156, 147, 142, 155, 146, 141, 131, 122, 117, 134, 125, 120, 109, 100, 95, 67, 57, 55, 105, 97, 94, 154, 146, 144, 131, 123, 121, 120, 115, 111, 121, 116, 112, 161, 156, 152, 132, 127, 123, 121, 116, 112, 135, 130, 126, 122, 114, 111, 173, 165, 162, 104, 96, 93, 70, 62, 59, 139, 131, 128, 122, 114, 111, 134, 124, 122, 186, 176, 174, 133, 123, 121, 139, 129, 127, 129, 120, 115, 151, 142, 137, 107, 98, 93, 79, 70, 65, 121, 112, 107, 122, 113, 108, 81, 72, 67, 78, 69, 64, 135, 126, 121, 131, 122, 117, 105, 96, 91, 111, 102, 97, 89, 80, 75, 71, 62, 57, 99, 90, 85, 79, 70, 65, 81, 72, 67, 92, 83, 78, 134, 125, 120, 138, 129, 124, 134, 125, 120, 106, 97, 92, 66, 57, 52, 106, 97, 92, 91, 82, 77, 82, 73, 68, 107, 98, 93, 127, 118, 113, 104, 95, 90, 96, 87, 82, 124, 115, 110, 146, 137, 132, 145, 138, 132, 115, 108, 102, 100, 93, 87, 116, 109, 103, 109, 102, 96, 114, 107, 101, 143, 134, 129, 134, 125, 120, 87, 78, 73, 52, 43, 38, 70, 59, 55, 100, 89, 85, 88, 77, 73, 87, 76, 72, 105, 94, 90, 104, 95, 90, 102, 92, 90, 117, 109, 106, 148, 140, 137, 132, 124, 121, 84, 76, 73, 85, 77, 74, 97, 89, 86, 68, 60, 57, 64, 56, 53, 79, 71, 68, 129, 121, 118, 139, 131, 128, 136, 128, 125, 111, 103, 100, 67, 59, 56, 95, 88, 82, 114, 107, 101, 95, 88, 80, 61, 54, 48, 68, 61, 55, 97, 89, 86, 71, 63, 60, 47, 39, 36, 74, 66, 63, 78, 70, 67, 102, 94, 91, 142, 134, 131, 163, 155, 152, 160, 153, 147, 164, 157, 151, 161, 154, 146, 142, 135, 127, 143, 134, 127, 141, 132, 125, 145, 136, 129, 148, 139, 132, 135, 126, 119, 124, 115, 108, 139, 130, 123, 166, 157, 150, 169, 160, 155, 173, 164, 159, 179, 170, 165, 182, 173, 168, 183, 173, 171, 184, 174, 172, 185, 175, 173, 186, 176, 174, 196, 189, 183, 193, 186, 180, 188, 183, 179, 187, 182, 178, 188, 183, 179, 193, 188, 184, 198, 193, 189, 202, 197, 193, 196, 192, 189, 197, 193, 190, 198, 194, 191, 199, 195, 192, 201, 197, 194, 202, 198, 195, 201, 200, 198, 202, 201, 199, 203, 199, 196, 205, 201, 198, 207, 203, 200, 210, 206, 203, 212, 208, 205, 213, 209, 206, 212, 211, 209, 212, 211, 209, 219, 218, 216, 218, 217, 215, 218, 217, 215, 217, 216, 214, 217, 217, 217, 218, 218, 218, 219, 219, 219, 219, 220, 222, 223, 224, 228, 225, 228, 233, 230, 233, 238, 233, 236, 241, 235, 238, 243, 237, 240, 245, 240, 243, 248, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 234, 239, 243, 234, 239, 243, 235, 240, 244, 235, 240, 244, 235, 240, 244, 236, 241, 245, 236, 241, 245, 236, 241, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 232, 232, 244, 231, 231, 243, 229, 232, 241, 228, 231, 240, 226, 230, 239, 226, 231, 237, 225, 230, 234, 225, 230, 233, 211, 215, 218, 199, 200, 202, 183, 181, 182, 175, 171, 170, 171, 166, 163, 165, 157, 155, 152, 142, 140, 144, 130, 129, 131, 112, 108, 126, 105, 100, 129, 105, 101, 139, 115, 111, 148, 123, 119, 149, 121, 118, 144, 114, 112, 140, 110, 110, 147, 115, 116, 144, 112, 113, 140, 108, 111, 137, 105, 110, 140, 105, 112, 141, 108, 115, 146, 113, 122, 147, 117, 127, 134, 110, 123, 133, 113, 125, 136, 114, 127, 135, 113, 125, 133, 111, 123, 130, 107, 117, 128, 102, 111, 125, 100, 106, 125, 98, 105, 121, 94, 99, 117, 88, 92, 112, 82, 84, 108, 78, 78, 108, 77, 75, 109, 78, 76, 111, 80, 77, 109, 81, 77, 114, 86, 82, 122, 94, 90, 130, 105, 101, 142, 114, 113, 148, 122, 123, 154, 127, 132, 157, 130, 137, 169, 142, 149, 160, 134, 143, 158, 131, 140, 164, 138, 149, 166, 140, 151, 161, 135, 146, 160, 134, 147, 163, 140, 148, 149, 129, 131, 163, 145, 145, 179, 160, 162, 178, 162, 163, 167, 151, 154, 156, 141, 144, 156, 144, 148, 162, 151, 155, 148, 137, 143, 153, 144, 147, 168, 159, 162, 181, 172, 175, 174, 165, 168, 153, 144, 145, 140, 131, 132, 142, 132, 133, 142, 126, 129, 145, 126, 128, 146, 127, 131, 147, 128, 130, 149, 129, 131, 150, 130, 132, 153, 133, 135, 155, 135, 136, 161, 141, 142, 155, 137, 137, 152, 136, 136, 152, 138, 137, 144, 130, 129, 128, 117, 113, 125, 114, 112, 133, 119, 118, 106, 87, 89, 110, 89, 94, 105, 84, 89, 94, 73, 78, 92, 71, 76, 98, 77, 82, 98, 79, 83, 92, 73, 77, 88, 69, 73, 87, 68, 72, 90, 71, 75, 96, 77, 81, 97, 81, 84, 97, 81, 84, 100, 84, 87, 106, 90, 91, 108, 94, 93, 105, 91, 88, 101, 87, 84, 99, 85, 82, 104, 93, 89, 122, 111, 107, 147, 136, 132, 165, 154, 150, 159, 148, 144, 149, 138, 134, 129, 118, 114, 101, 90, 86, 76, 65, 61, 63, 52, 48, 66, 55, 51, 72, 61, 57, 65, 55, 53, 75, 67, 64, 75, 67, 64, 60, 52, 49, 49, 41, 38, 50, 42, 39, 51, 41, 39, 46, 36, 34, 31, 21, 19, 55, 44, 42, 81, 70, 68, 91, 80, 78, 88, 74, 73, 80, 66, 65, 78, 64, 63, 82, 68, 67, 97, 86, 84, 86, 75, 73, 95, 84, 82, 92, 81, 79, 68, 57, 55, 64, 53, 51, 68, 58, 56, 53, 43, 41, 45, 35, 33, 56, 46, 44, 50, 42, 39, 87, 79, 76, 90, 82, 79, 72, 64, 61, 79, 71, 68, 35, 30, 26, 45, 41, 38, 59, 55, 52, 75, 70, 67, 76, 68, 66, 77, 67, 66, 109, 99, 98, 124, 114, 113, 88, 80, 78, 66, 61, 58, 80, 76, 73, 5, 1, 0, 115, 111, 108, 180, 175, 172, 94, 89, 86, 102, 94, 92, 66, 58, 56, 106, 98, 95, 92, 84, 81, 63, 55, 52, 178, 170, 167, 61, 53, 50, 113, 105, 102, 79, 71, 68, 115, 107, 104, 91, 83, 80, 63, 55, 52, 101, 93, 90, 110, 102, 99, 111, 103, 100, 126, 118, 115, 101, 93, 90, 99, 91, 88, 125, 116, 111, 102, 93, 88, 52, 43, 38, 72, 63, 58, 120, 111, 106, 123, 114, 109, 113, 104, 99, 96, 87, 82, 123, 114, 109, 110, 101, 96, 118, 109, 104, 137, 128, 123, 140, 131, 126, 130, 121, 116, 111, 102, 97, 92, 83, 78, 109, 98, 92, 118, 107, 101, 131, 120, 114, 125, 114, 108, 132, 121, 115, 133, 122, 116, 118, 107, 101, 135, 124, 118, 124, 113, 107, 120, 109, 103, 108, 97, 91, 100, 89, 83, 112, 101, 95, 131, 120, 114, 132, 121, 115, 119, 110, 103, 95, 86, 81, 117, 110, 104, 117, 108, 103, 145, 136, 131, 113, 102, 98, 126, 115, 111, 135, 121, 118, 132, 118, 115, 132, 118, 115, 106, 92, 89, 76, 65, 61, 122, 111, 107, 118, 109, 104, 131, 122, 117, 128, 121, 115, 105, 98, 92, 112, 103, 98, 125, 116, 111, 120, 111, 106, 116, 107, 102, 115, 106, 101, 145, 136, 131, 115, 105, 103, 130, 120, 118, 131, 123, 120, 103, 95, 92, 98, 90, 87, 107, 99, 96, 107, 102, 99, 117, 112, 109, 124, 119, 116, 111, 106, 103, 135, 125, 123, 119, 109, 107, 104, 94, 92, 68, 58, 56, 76, 65, 61, 109, 98, 94, 94, 83, 79, 81, 70, 66, 104, 93, 87, 146, 135, 129, 127, 114, 108, 100, 87, 81, 103, 90, 84, 74, 61, 55, 77, 64, 58, 141, 128, 122, 93, 79, 76, 110, 96, 93, 118, 104, 101, 95, 81, 78, 116, 105, 101, 112, 101, 97, 123, 112, 108, 109, 98, 94, 102, 93, 88, 111, 102, 97, 137, 128, 123, 116, 107, 102, 93, 84, 79, 104, 95, 90, 157, 148, 143, 103, 94, 89, 114, 103, 99, 90, 79, 75, 103, 92, 88, 130, 119, 115, 109, 98, 94, 122, 111, 107, 113, 102, 98, 142, 131, 127, 118, 107, 103, 130, 119, 115, 115, 104, 100, 102, 91, 87, 142, 131, 127, 98, 87, 83, 94, 83, 79, 100, 89, 85, 126, 115, 111, 129, 120, 115, 75, 68, 62, 73, 66, 60, 123, 114, 109, 137, 128, 123, 133, 122, 118, 121, 112, 107, 103, 95, 92, 102, 99, 94, 117, 118, 112, 173, 176, 169, 91, 92, 87, 137, 136, 132, 149, 144, 141, 80, 72, 70, 53, 43, 41, 123, 115, 112, 102, 94, 91, 74, 69, 65, 135, 130, 126, 142, 139, 134, 205, 202, 197, 80, 77, 72, 106, 103, 98, 51, 48, 43, 69, 68, 63, 84, 83, 78, 105, 104, 99, 155, 152, 147, 208, 205, 200, 124, 121, 116, 92, 88, 85, 109, 105, 102, 153, 148, 144, 183, 178, 174, 139, 132, 126, 96, 89, 83, 124, 115, 110, 145, 136, 131, 131, 122, 117, 156, 147, 142, 123, 114, 109, 43, 34, 29, 86, 78, 75, 160, 152, 149, 134, 126, 124, 123, 118, 115, 139, 134, 130, 155, 150, 146, 120, 115, 111, 121, 116, 112, 134, 129, 125, 141, 136, 132, 163, 155, 152, 131, 123, 120, 72, 64, 61, 128, 120, 117, 121, 113, 110, 113, 105, 102, 152, 142, 140, 137, 127, 125, 114, 104, 102, 155, 145, 143, 153, 144, 139, 112, 103, 98, 81, 72, 67, 105, 96, 91, 131, 122, 117, 104, 95, 90, 91, 82, 77, 129, 120, 115, 139, 130, 125, 105, 96, 91, 104, 95, 90, 105, 96, 91, 104, 95, 90, 89, 80, 75, 62, 53, 48, 76, 67, 62, 82, 73, 68, 122, 113, 108, 153, 144, 139, 138, 129, 124, 100, 91, 86, 82, 73, 68, 97, 88, 83, 119, 110, 105, 93, 84, 79, 107, 98, 93, 113, 104, 99, 106, 97, 92, 108, 99, 94, 125, 116, 111, 141, 132, 127, 146, 137, 132, 101, 94, 88, 128, 121, 115, 121, 114, 108, 91, 84, 78, 102, 95, 89, 137, 130, 124, 122, 113, 108, 71, 62, 57, 45, 36, 31, 73, 64, 59, 97, 86, 82, 97, 86, 82, 87, 76, 72, 84, 73, 69, 88, 77, 73, 90, 81, 76, 113, 103, 101, 137, 129, 126, 119, 111, 108, 87, 79, 76, 93, 85, 82, 100, 92, 89, 89, 81, 78, 86, 78, 75, 104, 96, 93, 137, 129, 126, 138, 130, 127, 115, 107, 104, 111, 103, 100, 114, 106, 103, 113, 105, 102, 117, 110, 104, 64, 57, 51, 53, 46, 38, 59, 52, 46, 88, 81, 75, 95, 87, 84, 63, 55, 52, 62, 54, 51, 102, 94, 91, 109, 101, 98, 147, 139, 136, 160, 152, 149, 143, 135, 132, 135, 128, 122, 137, 130, 124, 133, 126, 118, 129, 122, 114, 140, 131, 124, 158, 149, 142, 158, 149, 142, 149, 140, 133, 150, 141, 134, 155, 146, 139, 157, 148, 141, 163, 154, 147, 152, 143, 138, 158, 149, 144, 166, 157, 152, 173, 164, 159, 178, 168, 166, 181, 171, 169, 184, 174, 172, 186, 176, 174, 183, 176, 170, 182, 175, 169, 178, 173, 169, 179, 174, 170, 181, 176, 172, 187, 182, 178, 192, 187, 183, 196, 191, 187, 194, 190, 187, 197, 193, 190, 200, 196, 193, 203, 199, 196, 205, 201, 198, 205, 201, 198, 202, 201, 199, 202, 201, 199, 207, 203, 200, 207, 203, 200, 208, 204, 201, 209, 205, 202, 210, 206, 203, 213, 209, 206, 213, 212, 210, 214, 213, 211, 215, 214, 212, 215, 214, 212, 216, 215, 213, 217, 216, 214, 216, 216, 216, 217, 217, 217, 217, 217, 217, 217, 218, 220, 224, 225, 229, 224, 227, 232, 228, 231, 236, 233, 236, 241, 236, 239, 244, 238, 241, 246, 238, 241, 246, 238, 241, 246, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 242, 245, 250, 243, 246, 251, 243, 246, 251, 244, 247, 252, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 234, 239, 243, 234, 239, 243, 235, 240, 244, 235, 240, 244, 235, 240, 244, 236, 241, 245, 236, 241, 245, 236, 241, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 233, 242, 230, 233, 242, 229, 232, 241, 227, 231, 240, 226, 230, 239, 226, 230, 239, 225, 230, 236, 225, 230, 234, 211, 215, 218, 202, 203, 205, 189, 189, 191, 182, 178, 177, 177, 171, 171, 171, 163, 161, 161, 151, 149, 155, 141, 138, 136, 118, 114, 123, 102, 97, 112, 88, 84, 113, 89, 85, 121, 96, 92, 131, 103, 99, 138, 108, 106, 143, 113, 111, 134, 103, 101, 136, 105, 103, 141, 107, 108, 143, 109, 110, 143, 108, 112, 140, 105, 109, 135, 103, 108, 131, 101, 109, 133, 110, 120, 133, 113, 125, 136, 116, 128, 139, 119, 131, 139, 119, 130, 138, 116, 128, 135, 114, 123, 133, 112, 121, 118, 95, 103, 121, 96, 102, 125, 98, 103, 131, 102, 106, 135, 106, 108, 140, 110, 110, 143, 113, 113, 145, 115, 113, 161, 133, 129, 159, 134, 129, 157, 132, 128, 156, 131, 127, 154, 128, 127, 152, 126, 127, 150, 123, 128, 149, 124, 130, 142, 117, 123, 135, 109, 118, 132, 106, 115, 134, 108, 119, 132, 106, 117, 124, 101, 111, 125, 102, 112, 131, 108, 116, 142, 122, 124, 142, 124, 124, 137, 118, 120, 126, 110, 111, 128, 112, 115, 134, 119, 122, 129, 117, 121, 118, 107, 111, 131, 120, 126, 147, 136, 142, 163, 152, 156, 163, 152, 156, 140, 129, 133, 113, 102, 106, 99, 89, 90, 100, 88, 90, 89, 74, 77, 93, 77, 80, 94, 78, 81, 93, 74, 78, 88, 69, 71, 87, 68, 70, 92, 73, 75, 97, 78, 80, 88, 70, 70, 80, 64, 64, 80, 66, 65, 90, 79, 77, 101, 90, 88, 107, 97, 95, 116, 106, 104, 128, 117, 115, 151, 135, 136, 157, 138, 142, 156, 135, 140, 145, 126, 130, 140, 121, 125, 144, 125, 129, 145, 126, 130, 139, 123, 126, 112, 96, 99, 101, 85, 88, 91, 75, 78, 90, 74, 77, 91, 75, 78, 90, 75, 78, 94, 78, 81, 98, 84, 84, 99, 85, 84, 113, 99, 96, 120, 106, 103, 109, 95, 92, 87, 76, 72, 78, 67, 63, 90, 79, 75, 106, 95, 91, 124, 113, 109, 141, 130, 126, 162, 151, 147, 167, 156, 152, 149, 138, 134, 112, 101, 97, 73, 62, 58, 47, 38, 33, 52, 42, 40, 64, 56, 53, 82, 72, 70, 86, 78, 75, 77, 69, 66, 65, 57, 54, 65, 55, 53, 70, 60, 58, 90, 80, 78, 83, 73, 71, 73, 63, 61, 70, 59, 57, 72, 61, 59, 81, 67, 66, 88, 74, 73, 93, 79, 78, 67, 56, 54, 86, 75, 73, 89, 78, 76, 98, 87, 85, 116, 105, 103, 98, 87, 85, 70, 60, 58, 72, 62, 60, 72, 62, 60, 67, 57, 55, 44, 36, 33, 73, 65, 62, 90, 82, 79, 84, 76, 73, 83, 75, 72, 29, 24, 20, 23, 19, 16, 34, 33, 29, 49, 45, 42, 67, 62, 59, 88, 78, 77, 100, 90, 89, 115, 105, 104, 130, 120, 119, 90, 82, 80, 47, 42, 39, 28, 24, 21, 68, 64, 61, 138, 133, 130, 142, 137, 134, 93, 85, 83, 80, 72, 70, 103, 95, 92, 95, 87, 84, 65, 57, 54, 136, 128, 125, 112, 104, 101, 89, 81, 78, 96, 88, 85, 97, 89, 86, 93, 85, 82, 81, 73, 70, 120, 112, 109, 113, 105, 102, 102, 94, 91, 120, 112, 109, 103, 95, 92, 101, 93, 90, 120, 111, 106, 116, 107, 102, 70, 61, 56, 65, 56, 51, 98, 89, 84, 113, 104, 99, 115, 106, 101, 101, 92, 87, 120, 111, 106, 116, 107, 102, 119, 110, 105, 126, 117, 112, 132, 123, 118, 140, 131, 126, 129, 120, 115, 101, 92, 87, 101, 90, 84, 113, 102, 96, 128, 117, 111, 119, 108, 102, 117, 106, 100, 115, 104, 98, 108, 97, 91, 132, 121, 115, 133, 122, 116, 132, 121, 115, 120, 109, 103, 106, 95, 89, 113, 102, 96, 129, 118, 112, 125, 114, 108, 106, 97, 90, 111, 102, 97, 126, 119, 113, 122, 113, 108, 146, 137, 132, 112, 101, 97, 112, 101, 97, 121, 107, 104, 124, 110, 107, 134, 120, 117, 116, 102, 99, 80, 69, 65, 117, 106, 102, 118, 109, 104, 135, 126, 121, 134, 127, 121, 125, 118, 112, 122, 113, 108, 130, 121, 116, 119, 110, 105, 104, 95, 90, 91, 82, 77, 134, 125, 120, 120, 110, 108, 123, 113, 111, 139, 131, 128, 99, 91, 88, 98, 90, 87, 124, 116, 113, 120, 115, 112, 109, 104, 101, 110, 105, 102, 111, 106, 103, 149, 139, 137, 139, 129, 127, 114, 104, 102, 59, 49, 47, 63, 52, 48, 113, 102, 98, 107, 96, 92, 77, 66, 62, 94, 83, 77, 138, 127, 121, 134, 121, 115, 114, 101, 95, 110, 97, 91, 72, 59, 53, 71, 58, 52, 138, 125, 119, 104, 90, 87, 110, 96, 93, 111, 97, 94, 85, 71, 68, 110, 99, 95, 114, 103, 99, 128, 117, 113, 118, 107, 103, 88, 79, 74, 103, 94, 89, 137, 128, 123, 125, 116, 111, 102, 93, 88, 93, 84, 79, 138, 129, 124, 105, 96, 91, 120, 109, 105, 94, 83, 79, 99, 88, 84, 130, 119, 115, 120, 109, 105, 143, 132, 128, 128, 117, 113, 139, 128, 124, 109, 98, 94, 122, 111, 107, 110, 99, 95, 104, 93, 89, 144, 133, 129, 109, 98, 94, 106, 95, 91, 106, 95, 91, 127, 116, 112, 122, 113, 108, 77, 68, 63, 86, 79, 73, 133, 124, 119, 132, 123, 118, 120, 109, 105, 113, 102, 98, 114, 104, 102, 111, 106, 102, 134, 135, 129, 169, 172, 165, 90, 91, 86, 138, 137, 133, 126, 121, 118, 60, 52, 50, 60, 50, 48, 128, 118, 116, 98, 93, 89, 84, 81, 76, 127, 124, 119, 181, 178, 173, 157, 154, 149, 90, 87, 82, 94, 91, 86, 95, 92, 87, 73, 72, 67, 80, 79, 74, 87, 86, 81, 189, 188, 183, 172, 167, 163, 92, 87, 83, 98, 93, 90, 123, 119, 116, 171, 166, 162, 154, 149, 145, 119, 112, 106, 102, 95, 89, 97, 88, 83, 133, 124, 119, 145, 136, 131, 125, 116, 111, 85, 76, 71, 72, 65, 59, 125, 117, 114, 147, 142, 138, 127, 122, 119, 144, 139, 136, 176, 171, 167, 104, 99, 95, 124, 119, 115, 139, 134, 130, 144, 139, 135, 161, 156, 152, 124, 116, 113, 91, 83, 80, 114, 106, 103, 133, 125, 122, 121, 113, 110, 113, 105, 102, 141, 131, 129, 153, 143, 141, 140, 130, 128, 139, 129, 127, 115, 106, 101, 99, 90, 85, 111, 102, 97, 121, 112, 107, 104, 95, 90, 107, 98, 93, 131, 122, 117, 138, 129, 124, 106, 97, 92, 128, 119, 114, 130, 121, 116, 98, 89, 84, 98, 89, 84, 98, 89, 84, 78, 69, 64, 98, 89, 84, 124, 115, 110, 136, 127, 122, 123, 114, 109, 90, 81, 76, 83, 74, 69, 108, 99, 94, 122, 113, 108, 115, 106, 101, 112, 103, 98, 113, 104, 99, 123, 114, 109, 137, 128, 123, 143, 134, 129, 138, 129, 124, 131, 122, 117, 129, 120, 115, 134, 127, 121, 115, 108, 102, 106, 99, 93, 109, 102, 96, 116, 109, 103, 119, 112, 106, 89, 80, 75, 38, 29, 24, 51, 42, 37, 90, 81, 76, 115, 104, 100, 97, 86, 82, 70, 59, 55, 73, 62, 58, 99, 88, 84, 121, 112, 107, 112, 102, 100, 117, 109, 106, 96, 88, 85, 81, 73, 70, 94, 86, 83, 94, 86, 83, 81, 73, 70, 84, 76, 73, 137, 129, 126, 135, 127, 124, 117, 109, 106, 104, 96, 93, 114, 106, 103, 121, 113, 110, 101, 93, 90, 74, 67, 61, 72, 65, 59, 58, 51, 43, 73, 66, 60, 94, 87, 81, 89, 81, 78, 89, 81, 78, 109, 101, 98, 125, 117, 114, 127, 119, 116, 114, 106, 103, 97, 89, 86, 101, 93, 90, 125, 118, 112, 135, 128, 122, 131, 124, 116, 133, 126, 118, 150, 141, 134, 166, 157, 150, 166, 157, 150, 156, 147, 140, 153, 144, 137, 147, 138, 131, 138, 129, 122, 136, 127, 120, 139, 130, 125, 150, 141, 136, 165, 156, 151, 176, 167, 162, 180, 170, 168, 179, 169, 167, 175, 165, 163, 172, 162, 160, 162, 155, 149, 165, 158, 152, 168, 163, 159, 174, 169, 165, 181, 176, 172, 188, 183, 179, 194, 189, 185, 197, 192, 188, 198, 194, 191, 200, 196, 193, 202, 198, 195, 205, 201, 198, 206, 202, 199, 206, 202, 199, 203, 202, 200, 202, 201, 199, 207, 203, 200, 207, 203, 200, 208, 204, 201, 208, 204, 201, 210, 206, 203, 212, 208, 205, 212, 211, 209, 213, 212, 210, 214, 213, 211, 214, 213, 211, 215, 214, 212, 216, 215, 213, 216, 216, 216, 218, 218, 218, 218, 218, 218, 218, 219, 221, 224, 225, 229, 225, 228, 233, 229, 232, 237, 233, 236, 241, 236, 239, 244, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 241, 244, 249, 242, 245, 250, 243, 246, 251, 243, 246, 251, 244, 247, 252, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 234, 239, 243, 234, 239, 243, 235, 240, 244, 235, 240, 244, 235, 240, 244, 236, 241, 245, 236, 241, 245, 236, 241, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 230, 233, 240, 230, 233, 242, 229, 232, 241, 228, 232, 241, 227, 231, 240, 224, 231, 239, 225, 230, 236, 225, 230, 234, 217, 221, 224, 208, 209, 211, 195, 195, 197, 188, 184, 183, 182, 176, 176, 176, 168, 166, 165, 155, 153, 159, 145, 142, 153, 135, 131, 136, 117, 113, 119, 98, 95, 114, 90, 86, 117, 92, 88, 121, 93, 90, 126, 97, 93, 129, 100, 96, 129, 98, 95, 134, 103, 100, 140, 109, 107, 146, 115, 113, 148, 116, 117, 147, 115, 116, 144, 112, 115, 140, 111, 115, 137, 114, 122, 137, 115, 127, 139, 119, 130, 141, 121, 132, 140, 120, 131, 138, 118, 129, 135, 115, 126, 132, 112, 121, 153, 132, 139, 154, 133, 138, 157, 135, 138, 159, 134, 137, 158, 132, 133, 157, 129, 128, 152, 124, 123, 150, 122, 119, 141, 112, 108, 138, 111, 104, 134, 106, 102, 131, 103, 100, 128, 100, 99, 126, 97, 99, 125, 96, 100, 123, 96, 101, 117, 90, 95, 116, 89, 96, 117, 90, 97, 119, 92, 101, 118, 91, 100, 116, 90, 99, 124, 99, 105, 134, 109, 113, 156, 134, 137, 143, 121, 123, 129, 107, 110, 125, 105, 107, 128, 109, 113, 131, 115, 118, 131, 114, 120, 128, 113, 118, 138, 123, 130, 153, 140, 147, 162, 150, 154, 145, 133, 137, 117, 102, 107, 95, 80, 85, 89, 74, 77, 90, 75, 78, 100, 84, 87, 103, 84, 88, 101, 82, 86, 96, 75, 80, 89, 68, 73, 87, 66, 71, 91, 71, 73, 96, 76, 78, 78, 58, 60, 68, 49, 51, 63, 45, 45, 65, 49, 49, 70, 54, 54, 71, 57, 56, 73, 59, 58, 76, 62, 61, 80, 64, 65, 90, 74, 75, 103, 84, 86, 107, 91, 92, 117, 101, 102, 134, 118, 119, 148, 132, 133, 154, 140, 140, 174, 160, 160, 164, 150, 150, 154, 140, 140, 147, 133, 133, 137, 123, 123, 117, 105, 105, 103, 89, 89, 94, 80, 80, 98, 84, 83, 102, 87, 84, 105, 91, 88, 106, 92, 89, 103, 89, 86, 96, 82, 79, 89, 75, 72, 85, 71, 68, 98, 87, 83, 102, 91, 87, 111, 100, 96, 122, 111, 107, 131, 122, 117, 141, 132, 127, 148, 139, 134, 151, 142, 137, 106, 96, 94, 87, 77, 75, 77, 66, 64, 82, 72, 70, 83, 75, 72, 73, 65, 62, 65, 57, 54, 66, 58, 55, 62, 54, 51, 56, 48, 45, 50, 42, 39, 53, 43, 41, 62, 51, 49, 69, 58, 56, 72, 61, 59, 71, 60, 58, 50, 39, 37, 62, 51, 49, 65, 54, 52, 85, 74, 72, 115, 104, 102, 103, 92, 90, 79, 69, 67, 85, 75, 73, 77, 67, 65, 80, 70, 68, 58, 50, 47, 71, 63, 60, 83, 75, 72, 84, 76, 73, 85, 77, 74, 36, 31, 27, 37, 36, 32, 49, 48, 44, 48, 44, 41, 52, 47, 44, 77, 67, 66, 80, 70, 69, 81, 69, 69, 110, 100, 99, 117, 109, 107, 49, 44, 41, 34, 30, 27, 26, 22, 19, 94, 90, 87, 166, 162, 159, 113, 108, 105, 78, 73, 70, 97, 89, 86, 105, 97, 94, 75, 67, 64, 86, 78, 75, 165, 157, 154, 78, 70, 67, 114, 106, 103, 82, 74, 71, 94, 86, 83, 97, 89, 86, 134, 126, 123, 116, 108, 105, 93, 85, 82, 109, 101, 98, 102, 94, 91, 99, 91, 88, 108, 99, 94, 129, 120, 115, 99, 90, 85, 73, 64, 59, 89, 80, 75, 108, 99, 94, 113, 104, 99, 102, 93, 88, 116, 107, 102, 122, 113, 108, 123, 114, 109, 116, 107, 102, 121, 112, 107, 143, 134, 129, 140, 131, 126, 110, 101, 96, 100, 89, 83, 109, 98, 92, 126, 115, 109, 114, 103, 97, 104, 93, 87, 100, 89, 83, 99, 88, 82, 128, 117, 111, 132, 121, 115, 138, 127, 121, 129, 118, 112, 111, 100, 94, 115, 104, 98, 131, 120, 114, 123, 112, 106, 97, 88, 81, 115, 106, 101, 121, 114, 108, 118, 109, 104, 142, 133, 128, 113, 102, 98, 99, 88, 84, 113, 99, 96, 129, 115, 112, 126, 112, 109, 119, 105, 102, 77, 66, 62, 97, 86, 82, 105, 96, 91, 129, 120, 115, 130, 123, 117, 140, 133, 127, 137, 128, 123, 138, 129, 124, 128, 119, 114, 111, 102, 97, 82, 73, 68, 131, 122, 117, 131, 121, 119, 118, 108, 106, 136, 128, 125, 105, 97, 94, 109, 101, 98, 131, 123, 120, 122, 117, 114, 108, 103, 100, 106, 101, 98, 103, 98, 95, 147, 137, 135, 141, 131, 129, 126, 116, 114, 80, 70, 68, 72, 61, 57, 111, 100, 96, 115, 104, 100, 90, 79, 75, 97, 86, 80, 132, 121, 115, 135, 122, 116, 123, 110, 104, 121, 108, 102, 83, 70, 64, 66, 53, 47, 115, 102, 96, 127, 113, 110, 123, 109, 106, 117, 103, 100, 82, 68, 65, 103, 92, 88, 108, 97, 93, 119, 108, 104, 114, 103, 99, 76, 67, 62, 95, 86, 81, 132, 123, 118, 122, 113, 108, 105, 96, 91, 86, 77, 72, 125, 116, 111, 119, 110, 105, 126, 115, 111, 106, 95, 91, 110, 99, 95, 137, 126, 122, 125, 114, 110, 151, 140, 136, 137, 126, 122, 133, 122, 118, 114, 103, 99, 125, 114, 110, 111, 100, 96, 110, 99, 95, 146, 135, 131, 124, 113, 109, 119, 108, 104, 110, 99, 95, 124, 113, 107, 113, 104, 97, 79, 70, 63, 97, 90, 82, 138, 129, 124, 125, 116, 111, 103, 92, 88, 99, 88, 84, 121, 112, 107, 115, 110, 104, 152, 153, 147, 157, 160, 153, 90, 91, 85, 144, 143, 138, 104, 96, 93, 47, 37, 35, 77, 66, 64, 130, 120, 118, 92, 87, 83, 91, 88, 83, 133, 130, 125, 208, 205, 200, 99, 96, 91, 104, 99, 95, 87, 82, 78, 126, 123, 118, 68, 67, 62, 78, 79, 73, 96, 97, 91, 217, 216, 211, 119, 114, 110, 71, 66, 62, 113, 108, 105, 152, 147, 144, 187, 182, 178, 126, 121, 117, 113, 106, 100, 123, 116, 110, 89, 80, 75, 137, 128, 123, 146, 137, 132, 125, 116, 111, 86, 79, 73, 107, 100, 94, 143, 135, 132, 134, 129, 125, 144, 139, 136, 171, 167, 164, 136, 131, 127, 123, 118, 112, 145, 140, 134, 157, 152, 146, 169, 164, 158, 122, 117, 111, 58, 51, 45, 101, 94, 88, 158, 151, 145, 122, 115, 109, 120, 113, 107, 144, 137, 131, 154, 145, 140, 154, 145, 140, 151, 142, 137, 139, 130, 125, 113, 104, 99, 114, 105, 100, 123, 114, 109, 115, 106, 101, 104, 95, 90, 128, 119, 114, 142, 133, 128, 116, 107, 102, 103, 94, 89, 140, 131, 126, 133, 124, 119, 99, 90, 85, 112, 103, 98, 111, 102, 97, 87, 78, 73, 110, 101, 96, 125, 116, 111, 118, 109, 104, 96, 87, 82, 82, 73, 68, 104, 95, 90, 139, 130, 125, 142, 133, 128, 120, 111, 106, 127, 118, 113, 130, 121, 116, 136, 127, 122, 137, 128, 123, 130, 121, 116, 123, 114, 109, 124, 115, 110, 130, 121, 116, 112, 105, 99, 100, 93, 87, 116, 109, 103, 132, 125, 119, 116, 109, 103, 94, 87, 81, 77, 68, 63, 56, 47, 42, 98, 89, 84, 114, 105, 100, 110, 99, 95, 81, 70, 66, 67, 56, 52, 86, 75, 71, 112, 101, 97, 123, 114, 109, 110, 100, 98, 100, 92, 89, 81, 73, 70, 79, 71, 68, 91, 83, 80, 85, 77, 74, 83, 75, 72, 103, 95, 92, 119, 111, 108, 98, 90, 87, 92, 84, 81, 102, 94, 91, 109, 101, 98, 104, 96, 93, 86, 78, 75, 64, 57, 51, 89, 82, 76, 73, 66, 58, 92, 85, 79, 105, 98, 92, 94, 86, 83, 112, 104, 101, 131, 123, 120, 111, 103, 100, 89, 81, 78, 93, 85, 82, 93, 85, 82, 102, 94, 91, 120, 113, 107, 128, 121, 115, 133, 126, 118, 145, 138, 130, 155, 148, 140, 159, 152, 144, 147, 140, 132, 133, 126, 118, 133, 126, 118, 133, 126, 118, 131, 124, 116, 134, 127, 119, 135, 128, 122, 146, 139, 133, 161, 154, 148, 173, 166, 160, 176, 168, 165, 173, 165, 162, 169, 161, 158, 166, 158, 155, 157, 150, 144, 162, 155, 149, 168, 163, 159, 178, 173, 169, 187, 182, 178, 194, 189, 185, 198, 193, 189, 200, 195, 191, 203, 199, 196, 204, 200, 197, 205, 201, 198, 207, 203, 200, 207, 203, 200, 207, 203, 200, 204, 203, 201, 203, 202, 200, 208, 204, 201, 207, 203, 200, 207, 203, 200, 208, 204, 201, 209, 205, 202, 211, 207, 204, 211, 210, 208, 212, 211, 209, 211, 210, 208, 212, 211, 209, 214, 213, 211, 215, 214, 212, 217, 217, 217, 218, 218, 218, 220, 220, 220, 220, 221, 223, 224, 225, 229, 225, 228, 233, 229, 232, 237, 234, 237, 242, 237, 240, 245, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 241, 244, 249, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 234, 239, 243, 234, 239, 243, 235, 240, 244, 235, 240, 244, 235, 240, 244, 236, 241, 245, 236, 241, 245, 236, 241, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 234, 241, 229, 234, 240, 229, 233, 242, 228, 232, 241, 225, 232, 240, 224, 231, 239, 226, 231, 237, 225, 230, 234, 227, 230, 235, 212, 213, 215, 195, 193, 196, 186, 182, 181, 185, 177, 175, 179, 169, 167, 165, 154, 150, 153, 139, 136, 141, 126, 123, 133, 115, 113, 127, 107, 106, 129, 110, 106, 133, 109, 107, 129, 104, 100, 123, 95, 92, 119, 91, 87, 123, 94, 90, 124, 95, 91, 126, 97, 93, 130, 101, 97, 134, 103, 101, 135, 105, 103, 138, 107, 105, 137, 108, 110, 145, 120, 126, 146, 125, 132, 153, 132, 141, 160, 140, 149, 167, 147, 156, 169, 152, 160, 170, 153, 161, 171, 154, 162, 152, 133, 139, 150, 131, 135, 147, 126, 131, 142, 120, 122, 136, 111, 114, 128, 102, 103, 122, 94, 93, 117, 89, 86, 111, 82, 78, 111, 82, 78, 111, 83, 79, 113, 85, 82, 116, 88, 87, 120, 91, 93, 124, 95, 99, 127, 98, 102, 115, 88, 93, 119, 92, 97, 124, 97, 102, 125, 98, 103, 124, 97, 102, 128, 101, 106, 138, 113, 117, 150, 125, 128, 147, 122, 125, 134, 109, 112, 131, 106, 109, 136, 114, 117, 130, 110, 112, 119, 100, 104, 131, 112, 116, 153, 136, 142, 156, 139, 145, 161, 144, 150, 153, 136, 142, 131, 115, 118, 115, 98, 104, 116, 97, 101, 118, 99, 103, 115, 96, 98, 119, 98, 103, 114, 94, 96, 108, 85, 91, 103, 81, 84, 105, 80, 86, 105, 80, 84, 106, 81, 85, 105, 80, 84, 84, 59, 63, 82, 60, 62, 84, 62, 64, 85, 65, 66, 85, 65, 66, 81, 61, 60, 77, 59, 59, 76, 58, 58, 76, 60, 60, 79, 63, 64, 80, 64, 65, 76, 60, 61, 74, 60, 60, 79, 65, 65, 89, 75, 75, 97, 83, 83, 90, 76, 76, 95, 83, 83, 112, 100, 100, 132, 120, 120, 146, 134, 134, 151, 139, 139, 156, 144, 144, 164, 150, 149, 141, 126, 123, 121, 106, 103, 97, 82, 79, 86, 72, 69, 90, 76, 73, 97, 83, 80, 98, 84, 81, 95, 81, 78, 101, 90, 86, 100, 89, 85, 97, 86, 82, 93, 82, 78, 92, 83, 78, 101, 92, 87, 115, 106, 101, 125, 116, 111, 150, 139, 137, 145, 131, 130, 131, 120, 118, 109, 98, 96, 76, 66, 64, 50, 42, 39, 50, 42, 39, 62, 54, 51, 49, 41, 38, 48, 40, 37, 45, 37, 34, 40, 32, 29, 41, 31, 29, 48, 37, 35, 59, 48, 46, 69, 58, 56, 70, 59, 57, 42, 31, 29, 47, 36, 34, 64, 53, 51, 63, 52, 50, 73, 62, 60, 90, 80, 78, 88, 78, 76, 73, 63, 61, 80, 70, 68, 60, 52, 49, 66, 58, 55, 83, 75, 72, 93, 85, 82, 88, 80, 77, 42, 37, 33, 34, 33, 29, 50, 49, 45, 51, 47, 44, 33, 25, 23, 54, 44, 43, 85, 75, 74, 84, 72, 72, 85, 75, 74, 127, 117, 116, 100, 95, 92, 34, 29, 26, 27, 23, 20, 70, 66, 63, 133, 129, 126, 157, 152, 149, 78, 73, 70, 87, 79, 76, 117, 109, 106, 93, 85, 82, 59, 51, 48, 169, 161, 158, 104, 96, 93, 116, 108, 105, 84, 76, 73, 97, 89, 86, 96, 88, 85, 129, 121, 118, 121, 113, 110, 97, 89, 86, 102, 94, 91, 97, 89, 86, 97, 89, 86, 99, 90, 85, 130, 121, 116, 120, 111, 106, 98, 89, 84, 105, 96, 91, 114, 105, 100, 108, 99, 94, 101, 92, 87, 109, 100, 95, 117, 108, 103, 123, 114, 109, 117, 108, 103, 113, 104, 99, 129, 120, 115, 134, 125, 120, 118, 109, 104, 110, 99, 93, 109, 98, 92, 123, 112, 106, 114, 103, 97, 102, 91, 85, 99, 88, 82, 97, 86, 80, 122, 111, 105, 117, 106, 100, 131, 120, 114, 128, 117, 111, 113, 102, 96, 117, 106, 100, 134, 123, 117, 126, 115, 109, 97, 88, 81, 117, 108, 103, 115, 108, 102, 114, 105, 100, 136, 127, 122, 113, 102, 98, 82, 71, 67, 102, 88, 85, 131, 117, 114, 120, 106, 103, 121, 107, 104, 78, 67, 63, 83, 72, 68, 93, 84, 79, 124, 115, 110, 126, 119, 113, 150, 143, 137, 142, 133, 128, 131, 122, 117, 129, 120, 115, 129, 120, 115, 87, 78, 73, 124, 115, 110, 132, 122, 120, 114, 104, 102, 120, 112, 109, 116, 108, 105, 123, 115, 112, 122, 114, 111, 109, 104, 101, 116, 111, 108, 117, 112, 109, 95, 90, 87, 124, 114, 112, 115, 105, 103, 127, 117, 115, 123, 113, 111, 101, 90, 86, 105, 94, 90, 114, 103, 99, 107, 96, 92, 110, 99, 93, 130, 119, 113, 131, 118, 112, 116, 103, 97, 126, 113, 107, 108, 95, 89, 72, 59, 53, 87, 74, 68, 131, 117, 114, 127, 113, 110, 130, 116, 113, 92, 78, 75, 107, 96, 92, 106, 95, 91, 112, 101, 97, 114, 103, 99, 77, 68, 63, 96, 87, 82, 126, 117, 112, 107, 98, 93, 102, 93, 88, 91, 82, 77, 125, 116, 111, 129, 120, 115, 125, 114, 110, 121, 110, 106, 128, 117, 113, 146, 135, 131, 117, 106, 102, 140, 129, 125, 135, 124, 120, 124, 113, 109, 132, 121, 117, 139, 128, 124, 118, 107, 103, 118, 107, 103, 141, 130, 126, 134, 123, 119, 128, 117, 113, 111, 100, 96, 119, 108, 102, 110, 101, 94, 87, 78, 71, 98, 91, 83, 132, 123, 118, 123, 114, 109, 99, 85, 82, 90, 79, 75, 120, 111, 106, 113, 108, 102, 159, 160, 154, 137, 140, 133, 93, 94, 88, 154, 153, 148, 94, 86, 83, 51, 41, 39, 98, 87, 85, 126, 116, 114, 86, 81, 77, 86, 85, 80, 157, 156, 151, 180, 179, 174, 71, 66, 62, 109, 104, 100, 92, 87, 83, 118, 115, 110, 62, 61, 56, 78, 79, 73, 146, 147, 141, 207, 206, 201, 80, 75, 71, 82, 74, 71, 128, 123, 120, 175, 170, 167, 168, 163, 159, 110, 105, 101, 126, 119, 113, 133, 126, 120, 104, 95, 90, 146, 137, 132, 142, 133, 128, 133, 124, 119, 85, 78, 72, 105, 98, 92, 139, 134, 130, 147, 142, 138, 165, 161, 158, 150, 147, 142, 116, 111, 107, 174, 169, 163, 158, 153, 147, 166, 161, 155, 149, 144, 138, 72, 67, 61, 87, 80, 74, 148, 141, 135, 144, 137, 131, 120, 113, 107, 132, 125, 119, 157, 150, 144, 156, 147, 142, 152, 143, 138, 144, 135, 130, 121, 112, 107, 123, 114, 109, 139, 130, 125, 120, 111, 106, 103, 94, 89, 125, 116, 111, 137, 128, 123, 122, 113, 108, 114, 105, 100, 130, 121, 116, 125, 116, 111, 112, 103, 98, 117, 108, 103, 136, 127, 122, 115, 106, 101, 88, 79, 74, 105, 96, 91, 112, 103, 98, 97, 88, 83, 93, 84, 79, 111, 102, 97, 133, 124, 119, 141, 132, 127, 142, 133, 128, 142, 133, 128, 140, 131, 126, 143, 134, 129, 137, 128, 123, 124, 115, 110, 119, 110, 105, 122, 113, 108, 120, 111, 106, 112, 103, 98, 80, 73, 67, 107, 100, 94, 131, 124, 118, 133, 126, 120, 114, 107, 101, 87, 80, 74, 81, 72, 67, 92, 83, 78, 129, 120, 115, 125, 116, 111, 100, 89, 85, 70, 59, 55, 73, 62, 58, 105, 94, 90, 123, 112, 108, 119, 110, 105, 101, 91, 89, 92, 84, 81, 81, 73, 70, 84, 76, 73, 90, 82, 79, 85, 77, 74, 94, 86, 83, 124, 116, 113, 79, 71, 68, 77, 69, 66, 101, 93, 90, 117, 109, 106, 96, 88, 85, 76, 68, 65, 85, 77, 74, 98, 91, 85, 105, 98, 92, 92, 85, 77, 99, 92, 86, 104, 97, 91, 95, 87, 84, 102, 94, 91, 100, 92, 89, 70, 62, 59, 63, 55, 52, 108, 100, 97, 132, 124, 121, 124, 116, 113, 125, 118, 112, 137, 130, 124, 145, 138, 130, 149, 142, 134, 136, 129, 121, 137, 130, 122, 127, 120, 112, 122, 115, 107, 133, 126, 118, 140, 133, 125, 144, 137, 129, 151, 144, 136, 146, 139, 133, 152, 145, 139, 161, 154, 148, 168, 161, 155, 171, 163, 160, 172, 164, 161, 173, 165, 162, 174, 166, 163, 176, 169, 163, 179, 172, 166, 182, 177, 173, 188, 183, 179, 194, 189, 185, 200, 195, 191, 203, 198, 194, 205, 200, 196, 207, 203, 200, 207, 203, 200, 207, 203, 200, 207, 203, 200, 207, 203, 200, 207, 203, 200, 204, 203, 201, 204, 203, 201, 208, 204, 201, 207, 203, 200, 207, 203, 200, 207, 203, 200, 208, 204, 201, 210, 206, 203, 210, 209, 207, 211, 210, 208, 209, 208, 206, 210, 209, 207, 212, 211, 209, 215, 214, 212, 216, 216, 216, 219, 219, 219, 221, 221, 221, 221, 222, 224, 224, 225, 229, 225, 228, 233, 229, 232, 237, 233, 236, 241, 237, 240, 245, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 241, 244, 249, 242, 245, 250, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 234, 239, 243, 234, 239, 243, 235, 240, 244, 235, 240, 244, 235, 240, 244, 236, 241, 245, 236, 241, 245, 236, 241, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 230, 235, 239, 230, 235, 239, 229, 234, 240, 226, 233, 239, 226, 233, 239, 225, 232, 238, 226, 231, 237, 226, 231, 235, 231, 234, 239, 212, 213, 215, 190, 188, 191, 184, 178, 178, 187, 177, 176, 185, 174, 172, 173, 159, 156, 158, 144, 141, 147, 133, 132, 136, 122, 122, 128, 112, 112, 127, 111, 111, 128, 108, 107, 119, 98, 95, 110, 86, 82, 105, 80, 76, 117, 89, 85, 121, 93, 89, 128, 100, 96, 137, 109, 105, 148, 119, 115, 156, 128, 124, 164, 135, 131, 167, 139, 138, 180, 154, 157, 178, 153, 157, 176, 151, 157, 169, 146, 152, 161, 140, 147, 151, 132, 138, 143, 124, 130, 138, 119, 125, 127, 108, 114, 126, 107, 111, 125, 104, 109, 124, 102, 104, 124, 99, 102, 122, 98, 98, 122, 96, 95, 123, 95, 92, 122, 92, 90, 122, 92, 90, 123, 93, 91, 124, 94, 94, 125, 97, 96, 128, 99, 101, 130, 101, 105, 132, 103, 107, 127, 101, 104, 133, 107, 110, 136, 110, 113, 132, 106, 109, 128, 102, 105, 131, 105, 108, 140, 114, 117, 147, 121, 122, 141, 115, 116, 139, 113, 114, 137, 111, 112, 131, 106, 109, 122, 100, 102, 125, 105, 107, 144, 124, 126, 163, 144, 148, 160, 141, 145, 151, 132, 136, 134, 115, 119, 121, 102, 104, 126, 107, 111, 139, 119, 121, 136, 116, 118, 124, 102, 104, 115, 90, 94, 104, 78, 81, 95, 66, 71, 96, 67, 71, 105, 74, 80, 109, 78, 83, 104, 73, 78, 96, 65, 70, 90, 59, 64, 98, 68, 70, 105, 75, 77, 105, 76, 78, 104, 75, 77, 105, 79, 78, 111, 85, 86, 114, 90, 90, 95, 75, 76, 92, 74, 74, 87, 71, 71, 84, 68, 68, 82, 66, 66, 85, 69, 69, 95, 79, 79, 104, 90, 89, 81, 67, 66, 82, 68, 67, 86, 72, 71, 89, 75, 74, 91, 77, 76, 99, 85, 84, 118, 104, 103, 137, 123, 122, 154, 139, 136, 160, 142, 140, 160, 142, 140, 147, 132, 129, 127, 112, 109, 107, 92, 89, 93, 79, 76, 89, 75, 72, 87, 73, 70, 97, 83, 80, 102, 91, 87, 97, 86, 82, 84, 73, 69, 74, 63, 59, 72, 63, 58, 76, 65, 61, 89, 75, 74, 111, 95, 96, 139, 125, 125, 160, 148, 148, 165, 155, 154, 138, 130, 128, 83, 75, 73, 32, 27, 24, 28, 23, 20, 32, 27, 24, 37, 32, 29, 40, 32, 30, 40, 32, 30, 43, 33, 32, 47, 37, 36, 51, 41, 40, 86, 75, 73, 58, 47, 45, 54, 43, 41, 55, 44, 42, 40, 29, 27, 51, 40, 38, 76, 66, 64, 81, 71, 69, 75, 65, 63, 73, 63, 61, 47, 39, 36, 49, 41, 38, 79, 71, 68, 101, 93, 90, 95, 87, 84, 57, 52, 48, 29, 28, 24, 32, 31, 27, 56, 52, 49, 40, 32, 30, 39, 29, 28, 81, 69, 69, 91, 79, 79, 86, 76, 75, 110, 100, 99, 131, 126, 123, 71, 66, 63, 62, 58, 55, 56, 52, 49, 84, 80, 77, 165, 161, 158, 113, 108, 105, 83, 75, 72, 122, 114, 111, 106, 98, 95, 59, 51, 48, 125, 117, 114, 139, 131, 128, 105, 97, 94, 95, 87, 84, 106, 98, 95, 89, 81, 78, 113, 105, 102, 128, 120, 117, 116, 108, 105, 108, 100, 97, 101, 93, 90, 101, 93, 90, 108, 99, 94, 126, 117, 112, 126, 117, 112, 118, 109, 104, 125, 116, 111, 120, 111, 106, 105, 96, 91, 111, 102, 97, 95, 86, 81, 97, 88, 83, 113, 104, 99, 123, 114, 109, 114, 105, 100, 113, 104, 99, 124, 115, 110, 131, 122, 117, 121, 110, 104, 105, 94, 88, 114, 103, 97, 113, 102, 96, 109, 98, 92, 106, 95, 89, 97, 86, 80, 109, 98, 92, 106, 95, 89, 121, 110, 104, 122, 111, 105, 112, 101, 95, 117, 106, 100, 131, 120, 114, 122, 111, 105, 96, 87, 80, 123, 114, 109, 117, 110, 104, 117, 108, 103, 131, 122, 117, 111, 100, 96, 62, 51, 47, 86, 72, 69, 121, 107, 104, 122, 108, 105, 128, 114, 111, 90, 79, 75, 85, 74, 70, 91, 82, 77, 129, 120, 115, 127, 120, 114, 152, 145, 139, 139, 130, 125, 115, 106, 101, 113, 104, 99, 133, 124, 119, 87, 78, 73, 105, 96, 91, 122, 112, 110, 113, 103, 101, 112, 104, 101, 114, 106, 103, 124, 116, 113, 116, 108, 105, 100, 95, 92, 115, 110, 107, 125, 120, 117, 106, 101, 98, 108, 98, 96, 93, 83, 81, 114, 104, 102, 136, 126, 124, 115, 104, 100, 108, 97, 93, 116, 105, 101, 96, 85, 81, 107, 96, 90, 123, 112, 106, 129, 116, 110, 105, 92, 86, 119, 106, 100, 129, 116, 110, 93, 80, 74, 88, 75, 69, 111, 97, 94, 114, 100, 97, 138, 124, 121, 106, 92, 89, 118, 107, 103, 113, 102, 98, 114, 103, 99, 123, 112, 108, 87, 78, 73, 102, 93, 88, 130, 121, 116, 102, 93, 88, 104, 95, 90, 106, 97, 92, 126, 117, 112, 115, 106, 101, 124, 113, 109, 120, 109, 105, 123, 112, 108, 143, 132, 128, 111, 100, 96, 134, 123, 119, 135, 124, 120, 113, 102, 98, 137, 126, 122, 143, 132, 128, 118, 107, 103, 120, 109, 105, 129, 118, 114, 139, 128, 124, 137, 126, 122, 115, 104, 100, 120, 109, 103, 119, 110, 103, 105, 96, 89, 99, 92, 84, 121, 112, 105, 126, 117, 110, 105, 91, 88, 91, 80, 76, 121, 112, 107, 115, 110, 104, 157, 158, 152, 120, 123, 116, 100, 101, 95, 158, 157, 152, 90, 82, 79, 60, 50, 48, 117, 106, 104, 121, 111, 109, 88, 83, 79, 86, 85, 80, 182, 181, 176, 122, 121, 116, 80, 75, 71, 107, 99, 96, 108, 100, 97, 106, 101, 97, 73, 74, 68, 78, 81, 74, 193, 196, 189, 172, 171, 166, 73, 68, 64, 98, 90, 87, 145, 140, 137, 184, 179, 176, 130, 122, 119, 111, 103, 100, 142, 133, 128, 123, 114, 109, 120, 111, 106, 142, 133, 128, 145, 136, 131, 96, 87, 82, 46, 39, 33, 103, 96, 90, 160, 155, 151, 167, 162, 158, 159, 155, 152, 106, 103, 98, 169, 164, 160, 161, 156, 150, 153, 148, 142, 153, 148, 142, 99, 94, 88, 99, 94, 88, 174, 167, 161, 160, 153, 147, 124, 117, 111, 141, 134, 128, 145, 138, 132, 137, 130, 124, 145, 136, 131, 154, 145, 140, 130, 121, 116, 91, 82, 77, 123, 114, 109, 130, 121, 116, 118, 109, 104, 117, 108, 103, 131, 122, 117, 123, 114, 109, 119, 110, 105, 142, 133, 128, 129, 120, 115, 109, 100, 95, 114, 105, 100, 140, 131, 126, 133, 124, 119, 106, 97, 92, 102, 93, 88, 108, 99, 94, 123, 114, 109, 109, 100, 95, 107, 98, 93, 121, 112, 107, 130, 121, 116, 130, 121, 116, 140, 131, 126, 156, 147, 142, 152, 143, 138, 139, 130, 125, 134, 125, 120, 142, 133, 128, 146, 137, 132, 129, 120, 115, 99, 90, 85, 76, 67, 62, 102, 95, 89, 128, 121, 115, 124, 117, 111, 116, 109, 103, 116, 109, 103, 82, 75, 69, 66, 57, 52, 99, 90, 85, 123, 114, 109, 122, 113, 108, 104, 93, 89, 79, 68, 64, 80, 69, 65, 107, 96, 92, 126, 115, 111, 125, 116, 111, 83, 73, 71, 78, 70, 67, 78, 70, 67, 90, 82, 79, 101, 93, 90, 97, 89, 86, 97, 89, 86, 110, 102, 99, 83, 75, 72, 107, 99, 96, 126, 118, 115, 109, 101, 98, 81, 73, 70, 85, 77, 74, 108, 100, 97, 120, 113, 107, 106, 99, 93, 100, 93, 85, 86, 79, 73, 76, 69, 63, 70, 62, 59, 64, 56, 53, 66, 58, 55, 76, 68, 65, 111, 103, 100, 135, 127, 124, 138, 130, 127, 128, 120, 117, 138, 131, 125, 149, 142, 136, 140, 133, 125, 125, 118, 110, 108, 104, 95, 120, 116, 107, 129, 125, 116, 142, 138, 129, 157, 153, 144, 155, 151, 142, 145, 141, 132, 146, 142, 133, 153, 148, 142, 158, 153, 147, 164, 159, 153, 169, 164, 158, 171, 166, 162, 173, 168, 164, 175, 170, 166, 177, 172, 168, 189, 182, 176, 189, 182, 176, 187, 182, 178, 189, 184, 180, 193, 188, 184, 199, 194, 190, 205, 200, 196, 208, 203, 199, 207, 203, 200, 206, 202, 199, 206, 202, 199, 205, 201, 198, 205, 201, 198, 205, 201, 198, 204, 203, 201, 204, 203, 201, 208, 204, 201, 207, 203, 200, 207, 203, 200, 207, 203, 200, 207, 203, 200, 209, 205, 202, 208, 207, 205, 209, 208, 206, 209, 208, 206, 210, 209, 207, 212, 211, 209, 214, 213, 211, 216, 216, 216, 218, 218, 218, 220, 220, 220, 220, 221, 223, 223, 224, 228, 224, 227, 232, 228, 231, 236, 233, 236, 241, 236, 239, 244, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 240, 243, 248, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 234, 239, 243, 234, 239, 243, 235, 240, 244, 235, 240, 244, 235, 240, 244, 236, 241, 245, 236, 241, 245, 236, 241, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 230, 235, 239, 230, 235, 239, 228, 235, 241, 227, 234, 240, 226, 233, 239, 225, 232, 238, 227, 232, 238, 226, 231, 235, 230, 231, 236, 213, 213, 215, 192, 190, 191, 183, 177, 177, 184, 174, 173, 186, 172, 169, 181, 166, 161, 174, 160, 157, 166, 154, 156, 147, 137, 138, 130, 118, 120, 125, 111, 111, 124, 108, 108, 124, 106, 104, 125, 104, 101, 126, 105, 100, 142, 118, 114, 147, 124, 118, 156, 131, 126, 163, 138, 133, 167, 142, 137, 167, 142, 137, 167, 139, 135, 166, 138, 135, 143, 115, 114, 143, 117, 118, 145, 119, 122, 146, 121, 124, 143, 121, 124, 140, 119, 124, 137, 116, 121, 134, 115, 119, 137, 118, 124, 135, 116, 120, 134, 114, 116, 132, 110, 112, 132, 108, 108, 130, 106, 104, 131, 106, 102, 131, 106, 102, 126, 98, 97, 127, 99, 98, 127, 98, 100, 128, 99, 101, 128, 99, 103, 124, 98, 101, 125, 96, 100, 122, 96, 99, 128, 101, 106, 135, 110, 113, 140, 114, 117, 135, 110, 113, 135, 109, 112, 139, 115, 115, 145, 121, 121, 147, 121, 122, 147, 121, 120, 154, 128, 127, 141, 115, 114, 117, 93, 93, 123, 102, 101, 154, 134, 135, 166, 146, 147, 154, 134, 136, 153, 133, 135, 140, 120, 122, 128, 108, 110, 128, 108, 109, 140, 120, 122, 146, 126, 127, 133, 111, 113, 114, 93, 92, 119, 93, 96, 107, 81, 82, 100, 71, 75, 103, 74, 76, 115, 84, 89, 119, 89, 91, 112, 80, 85, 102, 70, 73, 110, 78, 81, 111, 79, 80, 106, 74, 77, 95, 65, 65, 92, 62, 62, 100, 72, 69, 112, 82, 82, 115, 89, 88, 120, 99, 98, 110, 90, 91, 100, 82, 82, 94, 76, 76, 88, 70, 70, 80, 62, 62, 78, 60, 60, 81, 63, 63, 100, 84, 84, 101, 85, 85, 101, 85, 85, 99, 83, 83, 92, 76, 76, 90, 74, 74, 101, 85, 85, 115, 99, 99, 100, 82, 80, 111, 93, 91, 129, 111, 109, 146, 128, 126, 155, 140, 137, 159, 144, 141, 159, 144, 141, 156, 142, 139, 120, 106, 103, 119, 105, 102, 111, 100, 96, 96, 85, 81, 80, 69, 65, 73, 62, 58, 77, 68, 63, 85, 74, 70, 114, 98, 99, 97, 78, 80, 70, 54, 55, 67, 53, 53, 100, 88, 88, 141, 131, 130, 149, 141, 139, 133, 128, 125, 71, 67, 64, 61, 57, 54, 48, 43, 40, 41, 36, 33, 41, 33, 31, 41, 33, 31, 39, 29, 28, 36, 26, 25, 64, 53, 51, 77, 66, 64, 64, 53, 51, 50, 39, 37, 56, 45, 43, 48, 37, 35, 40, 30, 28, 57, 47, 45, 57, 47, 45, 74, 64, 62, 66, 58, 55, 53, 45, 42, 57, 49, 46, 72, 64, 61, 90, 82, 79, 96, 91, 87, 48, 47, 43, 20, 21, 16, 62, 58, 55, 71, 63, 61, 48, 38, 37, 55, 43, 43, 68, 56, 56, 98, 86, 86, 91, 81, 80, 113, 105, 103, 124, 119, 116, 100, 96, 93, 54, 50, 47, 61, 57, 54, 122, 118, 115, 154, 150, 147, 100, 92, 89, 119, 111, 108, 111, 103, 100, 73, 65, 62, 79, 71, 68, 145, 137, 134, 105, 97, 94, 99, 91, 88, 118, 110, 107, 88, 80, 77, 102, 94, 91, 131, 123, 120, 131, 123, 120, 122, 114, 111, 116, 108, 105, 111, 103, 100, 127, 118, 113, 125, 116, 111, 122, 113, 108, 117, 108, 103, 126, 117, 112, 118, 109, 104, 102, 93, 88, 124, 115, 110, 89, 80, 75, 79, 70, 65, 98, 89, 84, 125, 116, 111, 120, 111, 106, 108, 99, 94, 120, 111, 106, 139, 130, 125, 124, 113, 107, 97, 86, 80, 106, 95, 89, 115, 104, 98, 116, 105, 99, 112, 101, 95, 94, 83, 77, 95, 84, 78, 106, 95, 89, 116, 105, 99, 118, 107, 101, 114, 103, 97, 116, 105, 99, 121, 110, 104, 110, 99, 93, 92, 83, 76, 111, 102, 97, 109, 102, 96, 116, 107, 102, 124, 115, 110, 114, 103, 99, 58, 47, 43, 87, 73, 70, 127, 113, 110, 118, 104, 101, 122, 108, 105, 98, 87, 83, 89, 78, 74, 85, 76, 71, 126, 117, 112, 118, 111, 105, 131, 124, 118, 141, 132, 127, 115, 106, 101, 104, 95, 90, 133, 124, 119, 90, 81, 76, 96, 87, 82, 117, 107, 105, 121, 111, 109, 112, 104, 101, 105, 97, 94, 117, 109, 106, 121, 113, 110, 104, 99, 96, 109, 104, 101, 126, 121, 118, 127, 122, 119, 117, 107, 105, 93, 83, 81, 100, 90, 88, 117, 107, 105, 104, 93, 89, 114, 103, 99, 125, 114, 110, 75, 64, 60, 95, 84, 78, 109, 98, 92, 128, 115, 109, 102, 89, 83, 111, 98, 92, 136, 123, 117, 114, 101, 95, 116, 103, 97, 108, 94, 91, 109, 95, 92, 143, 129, 126, 113, 99, 96, 123, 112, 108, 115, 104, 100, 104, 93, 89, 115, 104, 100, 96, 87, 82, 99, 90, 85, 136, 127, 122, 112, 103, 98, 113, 104, 99, 118, 109, 104, 126, 117, 112, 97, 88, 83, 126, 115, 111, 110, 99, 95, 102, 91, 87, 134, 123, 119, 113, 102, 98, 139, 128, 124, 141, 130, 126, 106, 95, 91, 124, 113, 109, 134, 123, 119, 112, 101, 97, 121, 110, 106, 118, 107, 103, 145, 134, 130, 148, 137, 133, 123, 112, 108, 128, 117, 111, 131, 120, 114, 124, 115, 108, 104, 97, 89, 114, 105, 98, 123, 114, 107, 106, 92, 89, 97, 86, 82, 123, 114, 109, 123, 118, 112, 150, 151, 145, 112, 115, 108, 115, 116, 110, 154, 153, 148, 88, 80, 77, 67, 56, 54, 129, 115, 114, 123, 112, 110, 104, 99, 95, 108, 107, 102, 177, 178, 172, 87, 86, 81, 106, 101, 97, 99, 91, 88, 121, 113, 110, 112, 107, 103, 90, 91, 85, 100, 103, 96, 202, 205, 198, 140, 139, 134, 91, 83, 80, 115, 105, 103, 176, 168, 166, 186, 181, 178, 117, 109, 106, 128, 120, 117, 152, 143, 138, 117, 108, 103, 134, 125, 120, 140, 131, 126, 132, 123, 118, 58, 49, 44, 56, 49, 43, 153, 146, 140, 188, 183, 179, 155, 152, 147, 139, 135, 132, 125, 122, 117, 158, 153, 149, 133, 128, 122, 159, 154, 148, 128, 123, 117, 106, 101, 95, 152, 147, 141, 159, 152, 146, 148, 141, 135, 161, 154, 148, 151, 144, 138, 138, 131, 125, 149, 142, 136, 165, 156, 151, 140, 131, 126, 109, 100, 95, 111, 102, 97, 147, 138, 133, 109, 100, 95, 111, 102, 97, 133, 124, 119, 127, 118, 113, 123, 114, 109, 131, 122, 117, 129, 120, 115, 102, 93, 88, 115, 106, 101, 138, 129, 124, 145, 136, 131, 110, 101, 96, 100, 91, 86, 127, 118, 113, 124, 115, 110, 115, 106, 101, 116, 107, 102, 119, 110, 105, 125, 116, 111, 135, 126, 121, 143, 134, 129, 145, 136, 131, 142, 133, 128, 141, 132, 127, 132, 123, 118, 140, 131, 126, 152, 143, 138, 130, 121, 116, 87, 78, 73, 76, 67, 62, 95, 86, 81, 119, 112, 106, 129, 122, 116, 117, 110, 104, 111, 104, 98, 100, 93, 87, 58, 51, 45, 58, 49, 44, 119, 110, 105, 132, 123, 118, 118, 109, 104, 98, 87, 83, 89, 78, 74, 100, 89, 85, 116, 105, 101, 114, 103, 99, 100, 91, 86, 77, 67, 65, 66, 58, 55, 74, 66, 63, 101, 93, 90, 116, 108, 105, 104, 96, 93, 86, 78, 75, 81, 73, 70, 104, 96, 93, 130, 122, 119, 111, 103, 100, 67, 59, 56, 77, 69, 66, 122, 114, 111, 134, 126, 123, 115, 108, 102, 100, 93, 87, 91, 84, 76, 64, 57, 51, 45, 38, 32, 44, 36, 33, 47, 39, 36, 77, 69, 66, 128, 120, 117, 144, 136, 133, 145, 137, 134, 140, 132, 129, 141, 133, 130, 144, 137, 131, 129, 122, 116, 108, 101, 93, 101, 94, 86, 110, 106, 97, 121, 117, 108, 131, 127, 118, 144, 140, 131, 153, 149, 140, 144, 140, 131, 132, 128, 119, 136, 132, 123, 151, 146, 140, 158, 153, 147, 168, 163, 157, 174, 169, 163, 176, 171, 167, 174, 169, 165, 173, 168, 164, 172, 167, 163, 183, 176, 170, 182, 175, 169, 180, 175, 171, 182, 177, 173, 187, 182, 178, 195, 190, 186, 202, 197, 193, 207, 202, 198, 204, 200, 197, 203, 199, 196, 202, 198, 195, 201, 197, 194, 202, 198, 195, 203, 199, 196, 203, 202, 200, 204, 203, 201, 208, 204, 201, 207, 203, 200, 206, 202, 199, 206, 202, 199, 206, 202, 199, 207, 203, 200, 207, 206, 204, 207, 206, 204, 210, 209, 207, 211, 210, 208, 212, 211, 209, 214, 213, 211, 215, 215, 215, 217, 217, 217, 219, 219, 219, 218, 219, 221, 222, 223, 227, 223, 226, 231, 227, 230, 235, 231, 234, 239, 234, 237, 242, 236, 239, 244, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 239, 242, 247, 240, 243, 248, 240, 243, 248, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 234, 239, 243, 234, 239, 243, 235, 240, 244, 235, 240, 244, 235, 240, 244, 236, 241, 245, 236, 241, 245, 236, 241, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 229, 237, 240, 228, 236, 238, 228, 236, 239, 227, 235, 238, 226, 233, 239, 225, 232, 238, 227, 232, 238, 227, 232, 236, 227, 228, 233, 219, 219, 221, 205, 201, 202, 186, 178, 176, 170, 159, 157, 166, 152, 149, 174, 159, 154, 181, 167, 164, 165, 154, 158, 150, 141, 146, 140, 129, 135, 140, 129, 133, 148, 133, 136, 152, 136, 137, 155, 137, 135, 158, 139, 135, 153, 132, 129, 152, 131, 126, 151, 127, 123, 146, 122, 118, 137, 114, 108, 128, 105, 99, 120, 95, 90, 115, 90, 85, 149, 120, 116, 150, 120, 118, 153, 123, 123, 153, 125, 124, 149, 125, 125, 144, 122, 124, 139, 119, 121, 137, 117, 119, 142, 121, 126, 141, 121, 123, 139, 117, 120, 134, 112, 114, 130, 106, 106, 122, 98, 96, 116, 91, 87, 112, 87, 83, 126, 100, 101, 128, 102, 103, 132, 106, 109, 135, 109, 112, 135, 108, 113, 132, 107, 111, 130, 103, 108, 126, 101, 105, 123, 98, 104, 129, 107, 110, 136, 111, 115, 133, 111, 113, 138, 113, 116, 144, 122, 124, 145, 123, 125, 140, 119, 118, 128, 104, 100, 126, 102, 98, 118, 94, 90, 117, 93, 91, 136, 115, 112, 159, 139, 138, 156, 136, 135, 135, 117, 117, 139, 121, 121, 133, 115, 115, 131, 113, 113, 135, 117, 115, 137, 117, 118, 130, 110, 109, 120, 99, 98, 113, 92, 89, 113, 92, 91, 110, 89, 86, 109, 85, 85, 111, 87, 85, 116, 90, 91, 115, 89, 88, 111, 82, 84, 106, 76, 76, 103, 73, 73, 96, 66, 64, 84, 54, 54, 77, 49, 46, 87, 59, 56, 105, 80, 75, 117, 89, 86, 114, 89, 85, 105, 81, 81, 98, 74, 74, 96, 75, 74, 105, 84, 83, 110, 89, 88, 103, 82, 81, 96, 75, 74, 94, 73, 72, 95, 75, 74, 95, 75, 74, 101, 81, 80, 110, 90, 89, 113, 93, 92, 109, 89, 88, 105, 87, 85, 106, 88, 86, 144, 124, 123, 121, 101, 100, 94, 76, 74, 85, 67, 65, 96, 78, 76, 113, 98, 95, 127, 112, 109, 132, 117, 114, 161, 147, 144, 159, 145, 142, 153, 142, 138, 142, 131, 127, 121, 110, 106, 92, 81, 77, 60, 51, 46, 42, 31, 27, 61, 42, 44, 88, 68, 70, 105, 86, 88, 91, 75, 76, 66, 54, 54, 66, 56, 55, 95, 87, 85, 125, 120, 117, 162, 158, 155, 138, 137, 133, 105, 101, 98, 72, 68, 65, 53, 48, 45, 46, 41, 38, 50, 42, 40, 54, 44, 43, 46, 35, 33, 69, 58, 56, 62, 51, 49, 50, 39, 37, 62, 51, 49, 57, 46, 44, 37, 27, 25, 36, 26, 24, 46, 36, 34, 76, 66, 64, 86, 78, 75, 69, 61, 58, 55, 47, 44, 54, 46, 43, 75, 67, 64, 106, 101, 97, 60, 61, 56, 11, 12, 7, 47, 43, 40, 80, 75, 72, 80, 70, 69, 60, 48, 48, 55, 41, 41, 114, 102, 102, 94, 84, 83, 86, 78, 76, 127, 122, 119, 123, 119, 116, 80, 76, 73, 54, 50, 47, 71, 67, 64, 148, 144, 141, 141, 133, 130, 118, 110, 107, 113, 105, 102, 90, 82, 79, 68, 60, 57, 116, 108, 105, 130, 122, 119, 96, 88, 85, 124, 116, 113, 94, 86, 83, 97, 89, 86, 123, 115, 112, 129, 121, 118, 130, 122, 119, 131, 123, 120, 118, 110, 107, 135, 126, 121, 128, 119, 114, 123, 114, 109, 110, 101, 96, 114, 105, 100, 109, 100, 95, 95, 86, 81, 124, 115, 110, 105, 96, 91, 82, 73, 68, 91, 82, 77, 120, 111, 106, 125, 116, 111, 114, 105, 100, 119, 110, 105, 131, 122, 117, 122, 111, 105, 93, 82, 76, 107, 96, 90, 123, 112, 106, 124, 113, 107, 117, 106, 100, 94, 83, 77, 88, 77, 71, 108, 97, 91, 110, 99, 93, 113, 102, 96, 116, 105, 99, 117, 106, 100, 113, 102, 96, 104, 93, 87, 94, 85, 78, 97, 88, 83, 102, 95, 89, 116, 107, 102, 121, 112, 107, 121, 110, 106, 64, 53, 49, 98, 84, 81, 138, 124, 121, 114, 100, 97, 112, 98, 95, 103, 92, 88, 95, 84, 80, 79, 70, 65, 123, 114, 109, 107, 100, 94, 102, 95, 89, 133, 124, 119, 124, 115, 110, 109, 100, 95, 135, 126, 121, 97, 88, 83, 98, 89, 84, 113, 103, 101, 115, 105, 103, 108, 100, 97, 108, 100, 97, 123, 115, 112, 124, 116, 113, 105, 100, 97, 113, 108, 105, 133, 128, 125, 133, 128, 125, 134, 124, 122, 99, 89, 87, 99, 89, 87, 119, 109, 107, 97, 86, 82, 106, 95, 91, 133, 122, 118, 89, 78, 74, 102, 91, 85, 95, 84, 78, 119, 106, 100, 106, 93, 87, 115, 102, 96, 138, 125, 119, 120, 107, 101, 132, 119, 113, 122, 108, 105, 110, 96, 93, 137, 123, 120, 105, 91, 88, 120, 109, 105, 113, 102, 98, 93, 82, 78, 101, 90, 86, 97, 88, 83, 80, 71, 66, 131, 122, 117, 121, 112, 107, 117, 108, 103, 122, 113, 108, 135, 126, 121, 108, 99, 94, 130, 119, 115, 107, 96, 92, 95, 84, 80, 134, 123, 119, 112, 101, 97, 134, 123, 119, 143, 132, 128, 107, 96, 92, 111, 100, 96, 129, 118, 114, 115, 104, 100, 131, 120, 116, 118, 107, 103, 154, 143, 139, 158, 147, 143, 128, 117, 113, 136, 125, 119, 131, 120, 114, 132, 123, 116, 113, 104, 97, 107, 98, 91, 106, 97, 90, 90, 76, 73, 95, 84, 80, 116, 107, 102, 127, 122, 116, 141, 141, 133, 114, 115, 107, 135, 136, 130, 151, 150, 145, 93, 85, 82, 72, 61, 59, 128, 114, 113, 131, 120, 118, 131, 126, 122, 152, 151, 146, 139, 140, 134, 101, 100, 95, 125, 120, 116, 95, 85, 83, 131, 123, 120, 121, 116, 112, 82, 83, 77, 150, 155, 148, 182, 185, 178, 123, 122, 117, 106, 98, 95, 145, 135, 133, 194, 186, 184, 171, 163, 161, 131, 123, 120, 144, 136, 133, 145, 136, 131, 123, 114, 109, 140, 131, 126, 146, 137, 132, 108, 99, 94, 67, 58, 53, 125, 118, 112, 194, 187, 181, 175, 170, 166, 139, 136, 131, 138, 134, 131, 163, 160, 155, 118, 113, 109, 147, 142, 136, 165, 160, 154, 131, 126, 120, 141, 136, 130, 148, 143, 137, 117, 110, 104, 153, 146, 140, 173, 166, 160, 145, 138, 132, 140, 133, 127, 168, 161, 155, 169, 160, 155, 123, 114, 109, 108, 99, 94, 140, 131, 126, 155, 146, 141, 122, 113, 108, 118, 109, 104, 130, 121, 116, 127, 118, 113, 130, 121, 116, 126, 117, 112, 102, 93, 88, 109, 100, 95, 137, 128, 123, 137, 128, 123, 126, 117, 112, 110, 101, 96, 117, 108, 103, 142, 133, 128, 128, 119, 114, 103, 94, 89, 109, 100, 95, 123, 114, 109, 142, 133, 128, 151, 142, 137, 147, 138, 133, 134, 125, 120, 124, 115, 110, 122, 113, 108, 133, 124, 119, 139, 130, 125, 121, 112, 107, 84, 75, 70, 67, 58, 53, 97, 88, 83, 140, 131, 126, 115, 108, 102, 110, 103, 97, 111, 104, 98, 103, 96, 90, 75, 68, 62, 62, 55, 49, 93, 84, 79, 136, 127, 122, 130, 121, 116, 106, 97, 92, 88, 77, 73, 98, 87, 83, 120, 109, 105, 127, 116, 112, 109, 98, 94, 88, 79, 74, 95, 85, 83, 76, 68, 65, 88, 80, 77, 121, 113, 110, 120, 112, 109, 89, 81, 78, 76, 68, 65, 89, 81, 78, 114, 106, 103, 119, 111, 108, 78, 70, 67, 56, 48, 45, 102, 94, 91, 139, 131, 128, 128, 120, 117, 116, 109, 103, 102, 95, 89, 74, 67, 59, 51, 44, 38, 47, 40, 34, 57, 49, 46, 83, 75, 72, 120, 112, 109, 146, 138, 135, 142, 134, 131, 148, 140, 137, 144, 136, 133, 134, 126, 123, 123, 116, 110, 106, 99, 93, 99, 92, 84, 109, 102, 94, 120, 116, 107, 127, 123, 114, 132, 128, 119, 139, 135, 126, 143, 139, 130, 133, 129, 120, 129, 125, 116, 140, 136, 127, 151, 146, 140, 155, 150, 144, 161, 156, 150, 165, 160, 154, 166, 161, 157, 166, 161, 157, 168, 163, 159, 169, 164, 160, 178, 171, 165, 179, 172, 166, 179, 174, 170, 183, 178, 174, 188, 183, 179, 194, 189, 185, 199, 194, 190, 203, 198, 194, 199, 195, 192, 198, 194, 191, 197, 193, 190, 197, 193, 190, 198, 194, 191, 201, 197, 194, 201, 200, 198, 203, 202, 200, 208, 204, 201, 207, 203, 200, 206, 202, 199, 206, 202, 199, 206, 202, 199, 206, 202, 199, 205, 204, 202, 206, 205, 203, 212, 211, 209, 212, 211, 209, 213, 212, 210, 214, 213, 211, 215, 215, 215, 216, 216, 216, 217, 217, 217, 216, 217, 219, 220, 221, 225, 221, 224, 229, 225, 228, 233, 230, 233, 238, 233, 236, 241, 235, 238, 243, 235, 238, 243, 235, 238, 243, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 240, 243, 248, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 244, 245, 250, 244, 245, 250, 244, 245, 250, 244, 245, 250, 244, 245, 250, 244, 245, 250, 244, 245, 250, 244, 245, 250, 244, 245, 250, 244, 245, 250, 244, 245, 250, 244, 245, 250, 244, 245, 250, 244, 245, 250, 244, 245, 250, 244, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 234, 239, 243, 234, 239, 243, 235, 240, 244, 235, 240, 244, 235, 240, 244, 236, 241, 245, 236, 241, 245, 236, 241, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 242, 231, 236, 239, 231, 236, 239, 230, 235, 239, 227, 235, 238, 226, 233, 239, 226, 233, 239, 227, 232, 238, 227, 232, 236, 225, 228, 233, 226, 227, 231, 212, 212, 212, 184, 178, 178, 154, 143, 139, 144, 129, 122, 161, 143, 133, 179, 160, 153, 185, 171, 170, 176, 164, 166, 171, 159, 161, 172, 160, 162, 169, 155, 155, 153, 137, 138, 136, 118, 118, 124, 106, 104, 112, 92, 91, 111, 92, 88, 111, 90, 87, 114, 90, 86, 120, 95, 90, 128, 103, 98, 138, 111, 104, 143, 116, 109, 143, 112, 107, 146, 115, 110, 149, 118, 115, 152, 122, 120, 152, 124, 123, 149, 125, 125, 145, 123, 125, 143, 121, 124, 134, 114, 116, 137, 117, 119, 141, 121, 123, 142, 122, 123, 141, 119, 121, 136, 112, 110, 130, 104, 103, 125, 99, 98, 122, 97, 100, 124, 102, 105, 131, 106, 110, 134, 109, 113, 134, 109, 113, 129, 104, 108, 125, 98, 103, 120, 95, 99, 126, 101, 105, 130, 108, 111, 132, 110, 113, 127, 107, 108, 130, 108, 110, 133, 113, 114, 127, 107, 108, 117, 97, 96, 112, 91, 88, 97, 73, 69, 107, 83, 79, 148, 124, 120, 170, 149, 144, 160, 139, 134, 146, 125, 120, 146, 125, 122, 128, 107, 104, 128, 107, 104, 132, 111, 108, 134, 113, 110, 121, 100, 99, 106, 85, 84, 109, 85, 85, 121, 97, 95, 113, 92, 91, 117, 96, 93, 123, 99, 99, 123, 99, 97, 118, 92, 91, 112, 86, 85, 112, 84, 83, 111, 83, 82, 93, 65, 62, 83, 55, 52, 72, 44, 41, 74, 46, 43, 96, 71, 67, 121, 96, 92, 124, 99, 95, 112, 88, 86, 78, 54, 54, 76, 52, 52, 87, 65, 67, 114, 93, 92, 133, 111, 113, 133, 112, 111, 125, 103, 105, 121, 100, 99, 110, 90, 91, 98, 78, 77, 89, 69, 70, 94, 74, 73, 103, 83, 84, 104, 84, 83, 99, 79, 80, 95, 75, 74, 101, 81, 80, 116, 97, 93, 132, 112, 111, 134, 116, 112, 123, 103, 102, 107, 89, 85, 98, 80, 78, 93, 78, 73, 96, 81, 78, 108, 93, 88, 132, 118, 115, 160, 147, 141, 174, 160, 157, 159, 146, 140, 122, 111, 107, 94, 80, 77, 71, 53, 53, 65, 46, 48, 67, 48, 50, 73, 57, 58, 73, 61, 61, 72, 62, 61, 82, 74, 72, 97, 92, 89, 97, 93, 90, 120, 119, 115, 148, 144, 141, 149, 145, 142, 121, 117, 114, 81, 77, 74, 49, 44, 41, 32, 27, 24, 54, 46, 44, 51, 41, 39, 60, 50, 49, 57, 47, 45, 50, 40, 39, 68, 58, 56, 69, 59, 58, 34, 24, 22, 61, 51, 50, 70, 60, 58, 71, 63, 61, 72, 64, 61, 82, 74, 72, 78, 70, 67, 66, 58, 56, 71, 66, 63, 81, 80, 76, 25, 24, 20, 36, 32, 29, 72, 67, 64, 105, 95, 94, 78, 66, 66, 38, 26, 26, 99, 87, 87, 109, 99, 98, 81, 73, 71, 94, 89, 86, 133, 128, 125, 115, 110, 107, 50, 45, 42, 48, 43, 40, 111, 106, 103, 178, 170, 168, 120, 112, 109, 114, 106, 104, 101, 96, 92, 80, 72, 70, 83, 78, 74, 158, 150, 148, 92, 84, 81, 122, 114, 111, 100, 92, 89, 96, 88, 85, 111, 103, 100, 118, 110, 107, 131, 122, 117, 139, 130, 125, 121, 112, 107, 130, 121, 116, 129, 120, 115, 128, 119, 114, 106, 97, 92, 105, 96, 91, 103, 94, 89, 87, 78, 73, 115, 106, 101, 127, 118, 113, 96, 87, 82, 91, 82, 77, 115, 106, 101, 125, 116, 111, 120, 111, 106, 117, 108, 103, 116, 107, 102, 120, 109, 103, 93, 82, 76, 113, 102, 96, 132, 121, 115, 130, 119, 113, 120, 109, 103, 96, 85, 79, 90, 79, 73, 106, 95, 89, 104, 93, 87, 108, 97, 91, 117, 106, 100, 119, 108, 102, 112, 101, 95, 104, 93, 87, 101, 92, 85, 98, 91, 85, 108, 101, 95, 124, 115, 110, 122, 113, 108, 123, 112, 108, 63, 52, 48, 95, 84, 80, 132, 121, 117, 119, 105, 102, 111, 100, 96, 115, 104, 100, 108, 97, 93, 84, 75, 70, 128, 119, 114, 109, 100, 95, 91, 82, 77, 111, 102, 97, 125, 114, 110, 111, 100, 96, 133, 124, 119, 99, 90, 85, 96, 87, 82, 100, 90, 88, 92, 82, 80, 97, 89, 86, 120, 112, 109, 138, 130, 127, 120, 112, 109, 102, 94, 91, 127, 119, 116, 147, 139, 137, 128, 120, 117, 143, 133, 131, 98, 88, 86, 106, 96, 94, 142, 132, 130, 104, 93, 89, 90, 79, 75, 135, 124, 120, 124, 113, 109, 123, 112, 106, 88, 77, 71, 107, 94, 88, 109, 96, 90, 125, 112, 106, 141, 128, 122, 115, 102, 96, 129, 116, 110, 126, 112, 109, 101, 87, 84, 121, 107, 104, 91, 77, 74, 116, 105, 101, 118, 107, 103, 96, 85, 81, 102, 91, 87, 95, 86, 81, 60, 51, 46, 118, 109, 104, 121, 112, 107, 114, 105, 100, 122, 113, 108, 149, 140, 135, 136, 127, 122, 133, 122, 118, 114, 103, 99, 105, 94, 90, 142, 131, 127, 106, 95, 91, 120, 109, 105, 138, 127, 123, 112, 101, 97, 109, 98, 94, 133, 122, 118, 125, 114, 110, 144, 133, 129, 124, 113, 109, 161, 150, 146, 163, 152, 148, 129, 118, 114, 138, 127, 121, 125, 114, 108, 131, 122, 115, 117, 108, 101, 102, 93, 86, 88, 79, 74, 69, 58, 54, 88, 77, 73, 104, 96, 93, 124, 119, 113, 132, 131, 126, 117, 118, 112, 150, 151, 145, 154, 151, 146, 100, 92, 89, 78, 67, 65, 123, 112, 110, 138, 128, 126, 151, 146, 142, 189, 188, 183, 101, 102, 96, 130, 129, 124, 132, 127, 123, 92, 84, 81, 136, 131, 127, 120, 117, 112, 59, 60, 54, 200, 203, 196, 165, 166, 160, 116, 115, 110, 111, 103, 100, 178, 168, 166, 190, 180, 178, 143, 133, 131, 142, 132, 130, 144, 134, 132, 127, 118, 113, 126, 117, 112, 134, 125, 120, 148, 139, 134, 97, 88, 83, 93, 86, 80, 171, 164, 158, 180, 175, 169, 141, 136, 132, 148, 145, 140, 152, 149, 144, 157, 154, 149, 148, 143, 139, 168, 163, 157, 154, 149, 143, 162, 157, 151, 140, 135, 129, 114, 109, 103, 155, 148, 142, 164, 157, 151, 120, 113, 107, 145, 138, 132, 165, 158, 152, 152, 145, 139, 129, 120, 115, 124, 115, 110, 130, 121, 116, 128, 119, 114, 118, 109, 104, 150, 141, 136, 145, 136, 131, 123, 114, 109, 126, 117, 112, 122, 113, 108, 109, 100, 95, 112, 103, 98, 146, 137, 132, 154, 145, 140, 113, 104, 99, 104, 95, 90, 130, 121, 116, 140, 133, 127, 141, 132, 127, 118, 109, 104, 124, 115, 110, 111, 102, 97, 123, 114, 109, 153, 144, 139, 153, 144, 139, 122, 113, 108, 110, 101, 96, 123, 114, 109, 117, 108, 103, 137, 128, 123, 125, 116, 111, 85, 76, 71, 77, 68, 63, 115, 106, 101, 145, 136, 131, 147, 138, 133, 125, 118, 112, 96, 89, 83, 93, 86, 80, 83, 76, 70, 64, 57, 51, 102, 95, 89, 139, 130, 125, 116, 107, 102, 89, 80, 75, 86, 77, 72, 95, 84, 80, 113, 102, 98, 123, 112, 108, 120, 109, 105, 119, 108, 104, 122, 113, 108, 119, 111, 108, 97, 89, 86, 111, 103, 100, 140, 132, 129, 114, 106, 103, 66, 58, 55, 76, 68, 65, 123, 115, 112, 126, 118, 115, 109, 101, 98, 71, 63, 60, 87, 79, 76, 141, 133, 130, 128, 120, 117, 101, 93, 90, 128, 120, 117, 111, 104, 98, 62, 55, 49, 49, 42, 36, 69, 62, 56, 92, 84, 81, 134, 126, 123, 151, 143, 140, 122, 114, 111, 153, 145, 142, 157, 149, 146, 129, 121, 118, 90, 83, 77, 89, 82, 76, 113, 106, 100, 128, 121, 113, 133, 126, 118, 116, 109, 101, 130, 126, 117, 148, 141, 135, 161, 157, 148, 167, 160, 154, 149, 145, 136, 141, 134, 128, 149, 144, 138, 156, 149, 143, 153, 148, 142, 153, 146, 140, 149, 144, 138, 152, 144, 141, 156, 151, 147, 167, 159, 156, 174, 166, 163, 183, 176, 170, 186, 179, 173, 188, 183, 179, 192, 187, 183, 195, 190, 186, 197, 192, 188, 198, 193, 189, 198, 193, 189, 196, 191, 187, 195, 192, 187, 195, 190, 187, 194, 191, 186, 197, 192, 189, 199, 195, 192, 202, 198, 195, 204, 200, 197, 208, 204, 201, 207, 203, 200, 206, 202, 199, 205, 201, 198, 205, 201, 198, 206, 202, 199, 205, 204, 202, 205, 204, 202, 213, 212, 210, 213, 212, 210, 214, 213, 211, 215, 214, 212, 214, 214, 214, 215, 215, 215, 215, 215, 215, 216, 216, 216, 219, 220, 224, 222, 223, 227, 226, 227, 231, 229, 233, 236, 232, 236, 239, 234, 237, 242, 234, 237, 242, 234, 237, 242, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 240, 243, 248, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 244, 245, 250, 244, 245, 250, 244, 245, 250, 244, 245, 250, 244, 245, 250, 244, 245, 250, 244, 245, 250, 244, 245, 250, 244, 245, 250, 244, 245, 250, 244, 245, 250, 244, 245, 250, 244, 245, 250, 244, 245, 250, 244, 245, 250, 244, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 235, 238, 243, 235, 238, 243, 235, 238, 243, 234, 237, 242, 234, 237, 242, 233, 236, 241, 233, 236, 241, 233, 236, 241, 234, 235, 237, 233, 234, 236, 231, 235, 238, 229, 234, 238, 228, 233, 239, 227, 232, 238, 225, 233, 236, 225, 233, 236, 226, 234, 237, 223, 231, 234, 211, 216, 219, 190, 190, 188, 176, 167, 160, 175, 159, 146, 184, 159, 139, 187, 162, 142, 183, 161, 150, 190, 171, 165, 186, 167, 163, 162, 144, 140, 141, 123, 121, 132, 114, 114, 121, 103, 103, 107, 89, 89, 112, 92, 93, 113, 91, 93, 116, 92, 90, 119, 94, 90, 125, 96, 92, 129, 98, 93, 134, 101, 94, 136, 103, 96, 142, 109, 102, 144, 113, 108, 150, 119, 114, 155, 124, 121, 156, 127, 123, 153, 125, 124, 148, 122, 123, 144, 119, 123, 147, 124, 130, 145, 124, 131, 142, 123, 129, 140, 121, 125, 139, 118, 123, 134, 114, 115, 128, 106, 108, 123, 101, 103, 129, 108, 115, 126, 105, 112, 128, 105, 111, 134, 109, 113, 136, 110, 113, 132, 106, 107, 134, 106, 105, 135, 109, 108, 128, 104, 104, 128, 107, 106, 129, 109, 108, 130, 112, 112, 128, 108, 109, 120, 100, 101, 110, 90, 89, 103, 83, 82, 84, 64, 63, 122, 101, 100, 155, 134, 131, 160, 136, 132, 144, 119, 114, 131, 106, 99, 132, 105, 98, 134, 107, 100, 135, 106, 100, 136, 107, 101, 125, 97, 93, 109, 81, 78, 107, 79, 78, 117, 88, 90, 116, 90, 91, 108, 82, 83, 136, 110, 113, 133, 107, 108, 127, 101, 104, 118, 92, 93, 111, 82, 84, 106, 77, 79, 106, 76, 76, 107, 77, 77, 96, 66, 66, 90, 60, 60, 92, 64, 63, 102, 73, 75, 103, 77, 78, 97, 71, 72, 97, 73, 73, 102, 81, 80, 81, 61, 62, 81, 63, 63, 85, 66, 68, 94, 76, 76, 107, 88, 90, 119, 101, 101, 127, 108, 110, 131, 113, 113, 134, 115, 117, 124, 106, 106, 113, 94, 96, 109, 91, 91, 110, 91, 93, 112, 94, 94, 110, 91, 93, 107, 89, 89, 95, 76, 72, 110, 89, 84, 117, 96, 93, 109, 90, 84, 105, 84, 81, 107, 88, 82, 105, 86, 82, 96, 79, 72, 99, 81, 77, 100, 83, 76, 103, 85, 81, 105, 88, 81, 106, 91, 86, 121, 106, 99, 150, 135, 130, 177, 162, 157, 152, 138, 137, 118, 104, 104, 76, 62, 62, 51, 39, 39, 52, 40, 40, 68, 58, 57, 86, 78, 76, 98, 93, 90, 90, 86, 83, 76, 72, 69, 79, 78, 74, 104, 103, 99, 134, 133, 129, 151, 150, 146, 119, 118, 114, 61, 60, 56, 45, 41, 38, 64, 60, 57, 62, 56, 56, 58, 53, 50, 63, 57, 57, 52, 47, 44, 51, 45, 45, 81, 73, 71, 47, 38, 39, 79, 71, 69, 86, 76, 77, 80, 70, 69, 95, 85, 86, 93, 83, 82, 64, 54, 55, 44, 34, 33, 95, 90, 87, 73, 68, 65, 24, 19, 16, 74, 66, 64, 103, 95, 93, 90, 80, 79, 46, 36, 35, 78, 68, 67, 102, 92, 91, 107, 97, 96, 74, 66, 64, 111, 103, 101, 156, 146, 145, 94, 84, 83, 51, 41, 40, 85, 75, 74, 140, 132, 130, 181, 176, 173, 115, 109, 109, 100, 96, 93, 104, 98, 98, 55, 51, 48, 140, 134, 134, 130, 125, 122, 112, 107, 104, 111, 106, 103, 72, 64, 61, 117, 109, 106, 145, 136, 131, 120, 109, 103, 142, 131, 125, 131, 120, 114, 113, 102, 98, 133, 122, 118, 141, 130, 126, 116, 105, 101, 107, 96, 92, 102, 91, 87, 94, 83, 79, 124, 113, 109, 111, 100, 96, 124, 113, 109, 128, 117, 113, 127, 116, 112, 129, 118, 114, 127, 116, 112, 115, 104, 100, 107, 96, 92, 113, 99, 96, 96, 82, 79, 94, 80, 77, 124, 110, 107, 145, 134, 130, 125, 114, 110, 97, 86, 82, 94, 83, 79, 92, 83, 78, 85, 76, 71, 106, 97, 92, 117, 108, 103, 120, 111, 106, 112, 103, 98, 98, 89, 84, 114, 105, 100, 97, 90, 84, 106, 99, 93, 137, 130, 124, 106, 99, 93, 113, 104, 99, 88, 79, 74, 100, 91, 86, 131, 122, 117, 118, 107, 103, 102, 91, 87, 101, 90, 86, 101, 90, 86, 94, 83, 79, 115, 104, 100, 123, 112, 108, 81, 70, 66, 111, 97, 94, 126, 112, 109, 129, 115, 112, 90, 79, 75, 108, 97, 95, 97, 87, 85, 107, 97, 96, 87, 79, 77, 105, 97, 95, 116, 108, 106, 153, 145, 142, 142, 134, 131, 118, 110, 107, 137, 128, 123, 140, 130, 128, 126, 116, 114, 134, 124, 122, 89, 79, 77, 115, 105, 103, 125, 115, 113, 124, 114, 112, 93, 83, 81, 114, 105, 100, 104, 95, 90, 123, 112, 108, 102, 91, 87, 103, 92, 88, 95, 84, 80, 84, 71, 65, 118, 105, 99, 137, 124, 118, 100, 87, 81, 101, 88, 82, 97, 84, 78, 124, 111, 105, 109, 96, 90, 107, 96, 92, 113, 102, 98, 81, 70, 66, 101, 90, 86, 82, 73, 68, 67, 58, 53, 108, 98, 96, 122, 112, 110, 114, 104, 102, 134, 124, 122, 139, 129, 127, 135, 125, 123, 146, 135, 131, 117, 106, 102, 116, 105, 101, 132, 121, 117, 113, 102, 98, 118, 107, 103, 143, 132, 128, 110, 99, 95, 119, 108, 104, 145, 134, 130, 128, 117, 113, 133, 122, 118, 133, 122, 118, 140, 129, 125, 159, 148, 144, 110, 99, 95, 116, 105, 99, 145, 134, 128, 108, 99, 94, 112, 105, 99, 97, 90, 84, 69, 59, 57, 96, 86, 84, 71, 61, 59, 96, 88, 86, 111, 108, 103, 123, 124, 119, 120, 121, 115, 162, 163, 157, 151, 148, 143, 87, 77, 75, 124, 113, 111, 130, 120, 118, 137, 129, 126, 168, 163, 159, 150, 147, 142, 122, 119, 114, 125, 124, 119, 121, 118, 113, 121, 118, 113, 139, 136, 131, 108, 105, 100, 135, 134, 129, 190, 189, 184, 121, 118, 113, 127, 124, 119, 120, 115, 111, 196, 188, 185, 175, 164, 162, 117, 106, 102, 143, 132, 128, 153, 142, 138, 121, 110, 106, 136, 125, 121, 148, 139, 134, 134, 125, 120, 133, 126, 120, 157, 150, 144, 176, 169, 163, 160, 155, 149, 134, 129, 123, 138, 135, 128, 159, 156, 149, 166, 163, 158, 163, 158, 154, 158, 150, 147, 157, 149, 146, 142, 134, 131, 127, 119, 116, 149, 141, 138, 164, 156, 153, 144, 136, 133, 123, 115, 112, 142, 134, 131, 154, 146, 143, 148, 140, 137, 135, 127, 124, 123, 115, 112, 125, 117, 114, 138, 131, 125, 160, 151, 146, 145, 136, 129, 133, 124, 117, 132, 123, 116, 127, 118, 111, 117, 108, 101, 125, 116, 109, 148, 139, 132, 140, 133, 127, 130, 123, 117, 108, 101, 95, 110, 103, 97, 140, 132, 129, 146, 141, 137, 128, 120, 117, 114, 106, 103, 127, 120, 114, 148, 141, 135, 151, 144, 138, 139, 132, 126, 136, 129, 123, 134, 127, 121, 116, 109, 103, 96, 89, 83, 141, 134, 128, 131, 124, 118, 106, 99, 93, 91, 84, 78, 115, 108, 102, 151, 144, 138, 152, 145, 139, 127, 120, 114, 96, 87, 82, 114, 105, 100, 109, 100, 95, 116, 107, 102, 147, 138, 133, 135, 126, 121, 93, 84, 79, 80, 71, 66, 88, 79, 74, 109, 100, 95, 136, 127, 122, 147, 138, 133, 135, 126, 121, 122, 113, 108, 128, 119, 114, 144, 135, 130, 123, 115, 112, 112, 104, 101, 133, 125, 122, 123, 115, 112, 77, 69, 66, 93, 85, 82, 138, 130, 127, 137, 129, 126, 137, 129, 126, 91, 83, 80, 79, 71, 68, 108, 100, 97, 120, 112, 109, 109, 101, 98, 105, 97, 94, 110, 102, 99, 81, 73, 70, 69, 61, 58, 79, 71, 68, 117, 109, 106, 139, 131, 128, 126, 118, 115, 119, 112, 106, 134, 127, 121, 149, 142, 136, 110, 103, 97, 73, 66, 60, 79, 72, 66, 121, 114, 108, 152, 145, 137, 141, 134, 126, 112, 105, 97, 136, 129, 123, 151, 144, 138, 168, 158, 156, 169, 162, 156, 159, 149, 147, 148, 141, 135, 152, 142, 140, 159, 151, 148, 145, 135, 133, 151, 143, 140, 158, 148, 146, 158, 150, 147, 157, 147, 145, 162, 154, 151, 177, 167, 165, 188, 180, 177, 190, 183, 177, 185, 178, 172, 178, 171, 165, 175, 168, 162, 178, 171, 165, 185, 178, 172, 190, 183, 177, 194, 187, 181, 191, 184, 178, 195, 190, 184, 202, 194, 191, 201, 196, 190, 200, 192, 189, 197, 192, 188, 200, 195, 191, 203, 198, 194, 210, 205, 201, 208, 203, 199, 205, 201, 198, 203, 199, 196, 205, 201, 198, 208, 204, 201, 212, 208, 205, 215, 211, 208, 209, 208, 206, 210, 209, 207, 211, 210, 208, 213, 212, 210, 214, 213, 211, 216, 215, 213, 216, 216, 216, 217, 217, 217, 222, 222, 222, 222, 222, 222, 223, 223, 225, 224, 225, 227, 227, 228, 230, 231, 232, 236, 232, 235, 240, 233, 236, 241, 234, 239, 243, 235, 240, 244, 238, 241, 248, 240, 243, 250, 241, 244, 249, 242, 245, 250, 244, 245, 250, 243, 244, 249, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 235, 238, 243, 235, 238, 243, 235, 238, 243, 234, 237, 242, 234, 237, 242, 234, 237, 242, 233, 236, 241, 235, 236, 240, 235, 235, 237, 235, 235, 237, 233, 234, 238, 229, 234, 238, 228, 233, 239, 228, 233, 239, 225, 233, 236, 225, 233, 236, 222, 229, 235, 222, 231, 236, 215, 223, 226, 199, 201, 200, 181, 172, 165, 165, 148, 132, 152, 124, 100, 141, 111, 87, 159, 132, 115, 173, 149, 137, 179, 155, 145, 159, 139, 130, 140, 119, 114, 131, 112, 108, 125, 105, 104, 117, 97, 98, 116, 94, 96, 116, 94, 96, 119, 93, 92, 123, 93, 91, 128, 94, 92, 131, 96, 90, 136, 97, 92, 136, 99, 91, 140, 107, 98, 145, 112, 105, 152, 119, 112, 157, 124, 119, 157, 126, 121, 155, 125, 123, 152, 123, 125, 147, 122, 125, 150, 127, 133, 146, 125, 132, 140, 121, 127, 137, 118, 124, 135, 116, 120, 133, 113, 115, 129, 109, 110, 126, 106, 108, 129, 108, 115, 127, 106, 115, 129, 106, 112, 136, 111, 115, 137, 111, 112, 133, 107, 106, 131, 106, 102, 134, 109, 105, 129, 105, 103, 130, 109, 108, 129, 111, 111, 126, 108, 108, 120, 102, 102, 117, 99, 99, 120, 100, 101, 124, 104, 103, 137, 117, 118, 153, 132, 131, 146, 125, 122, 122, 98, 94, 115, 88, 81, 127, 98, 90, 127, 97, 87, 113, 81, 70, 119, 86, 77, 106, 73, 64, 101, 68, 61, 105, 74, 69, 108, 77, 75, 107, 77, 77, 117, 87, 89, 132, 103, 107, 131, 102, 106, 129, 103, 106, 127, 101, 104, 123, 94, 96, 115, 86, 88, 109, 81, 80, 106, 76, 76, 105, 77, 76, 114, 84, 84, 113, 85, 84, 109, 80, 82, 91, 65, 66, 69, 43, 46, 58, 33, 36, 70, 45, 48, 86, 64, 66, 95, 76, 78, 88, 72, 73, 85, 66, 68, 82, 66, 67, 89, 70, 72, 94, 78, 79, 103, 84, 86, 104, 88, 89, 130, 111, 113, 130, 114, 115, 132, 113, 115, 123, 107, 108, 115, 96, 98, 107, 91, 92, 111, 92, 94, 115, 97, 97, 114, 95, 91, 116, 95, 90, 117, 96, 91, 117, 96, 91, 111, 90, 85, 103, 82, 77, 98, 79, 73, 98, 79, 73, 78, 59, 53, 82, 63, 57, 86, 67, 61, 87, 68, 62, 82, 65, 58, 83, 66, 59, 96, 79, 72, 110, 95, 90, 118, 104, 103, 137, 125, 125, 153, 141, 141, 133, 121, 121, 82, 72, 71, 42, 32, 31, 44, 36, 34, 65, 60, 57, 92, 87, 84, 88, 84, 81, 88, 84, 81, 70, 69, 65, 45, 44, 40, 61, 62, 57, 120, 121, 116, 166, 167, 162, 113, 112, 110, 99, 98, 96, 69, 65, 64, 55, 51, 50, 62, 58, 57, 49, 45, 44, 46, 40, 40, 70, 64, 64, 63, 54, 55, 86, 77, 78, 104, 94, 95, 88, 78, 79, 71, 61, 62, 86, 76, 77, 81, 69, 71, 38, 28, 27, 53, 45, 43, 82, 74, 72, 53, 45, 43, 58, 50, 48, 76, 68, 66, 97, 89, 87, 66, 56, 55, 70, 60, 59, 105, 95, 94, 102, 92, 91, 71, 61, 60, 96, 86, 85, 140, 128, 128, 121, 109, 109, 89, 77, 77, 74, 64, 63, 100, 91, 92, 169, 163, 163, 132, 128, 127, 75, 71, 70, 102, 98, 97, 65, 61, 60, 98, 94, 93, 166, 162, 161, 113, 108, 105, 103, 98, 95, 84, 76, 73, 104, 97, 91, 142, 133, 128, 139, 128, 122, 130, 117, 109, 135, 122, 116, 99, 88, 84, 120, 109, 105, 138, 127, 123, 113, 102, 98, 98, 87, 83, 102, 91, 87, 102, 91, 87, 124, 113, 109, 119, 108, 104, 123, 112, 108, 129, 118, 114, 136, 125, 121, 137, 126, 122, 131, 120, 116, 130, 119, 115, 137, 126, 122, 111, 97, 94, 89, 75, 72, 81, 67, 64, 109, 95, 92, 136, 125, 121, 127, 116, 112, 109, 98, 94, 111, 100, 96, 96, 87, 82, 103, 94, 89, 108, 99, 94, 106, 97, 92, 122, 113, 108, 112, 103, 98, 86, 77, 72, 111, 102, 97, 105, 98, 92, 107, 100, 94, 130, 123, 117, 105, 98, 92, 123, 114, 109, 111, 102, 97, 116, 107, 102, 134, 125, 120, 117, 108, 103, 111, 102, 97, 107, 96, 92, 102, 91, 87, 107, 96, 92, 126, 115, 111, 116, 105, 101, 75, 61, 58, 103, 89, 86, 121, 106, 103, 130, 116, 113, 97, 83, 80, 105, 94, 92, 89, 79, 77, 90, 82, 80, 75, 67, 65, 103, 95, 93, 117, 109, 107, 157, 149, 146, 143, 135, 132, 112, 103, 98, 122, 113, 108, 132, 121, 117, 131, 120, 116, 132, 122, 120, 101, 91, 89, 122, 112, 110, 123, 113, 111, 128, 118, 116, 117, 107, 105, 126, 117, 112, 90, 81, 76, 124, 113, 109, 97, 86, 82, 104, 93, 89, 114, 103, 99, 101, 88, 82, 110, 97, 91, 119, 106, 100, 95, 82, 76, 94, 81, 75, 104, 91, 85, 118, 105, 99, 108, 95, 89, 106, 95, 91, 104, 93, 89, 83, 72, 68, 87, 76, 72, 83, 74, 69, 89, 80, 75, 126, 116, 114, 126, 116, 114, 116, 106, 104, 133, 123, 121, 133, 123, 121, 127, 117, 115, 142, 131, 127, 108, 97, 93, 106, 95, 91, 138, 127, 123, 130, 119, 115, 127, 116, 112, 143, 132, 128, 115, 104, 100, 115, 104, 100, 147, 136, 132, 128, 117, 113, 130, 119, 115, 138, 127, 123, 142, 131, 127, 154, 143, 139, 115, 104, 100, 114, 103, 97, 139, 130, 123, 111, 102, 97, 109, 102, 96, 84, 76, 73, 64, 56, 53, 102, 92, 91, 73, 65, 63, 86, 78, 76, 108, 104, 101, 121, 122, 117, 118, 120, 115, 164, 163, 158, 157, 154, 149, 97, 86, 84, 126, 115, 113, 129, 121, 118, 144, 139, 135, 170, 165, 161, 142, 137, 133, 111, 108, 103, 121, 118, 113, 114, 113, 108, 106, 105, 100, 112, 111, 106, 113, 112, 107, 170, 167, 162, 167, 164, 159, 126, 121, 117, 105, 100, 96, 147, 142, 138, 194, 186, 183, 158, 147, 143, 145, 131, 128, 149, 138, 134, 132, 121, 117, 132, 121, 117, 160, 149, 145, 148, 139, 134, 124, 115, 110, 141, 134, 128, 161, 154, 148, 171, 166, 160, 154, 149, 143, 134, 129, 123, 143, 138, 132, 153, 150, 143, 147, 142, 136, 128, 123, 119, 155, 147, 144, 159, 151, 148, 147, 139, 136, 150, 142, 139, 154, 146, 143, 140, 132, 129, 126, 118, 115, 154, 146, 143, 166, 158, 155, 167, 159, 156, 150, 142, 139, 129, 121, 118, 123, 115, 112, 140, 132, 129, 164, 157, 151, 150, 141, 136, 119, 110, 103, 139, 130, 123, 153, 144, 137, 131, 122, 115, 151, 142, 135, 171, 162, 155, 136, 127, 120, 118, 111, 105, 118, 111, 105, 125, 118, 112, 151, 144, 138, 165, 160, 156, 147, 142, 138, 133, 128, 124, 145, 140, 136, 167, 160, 154, 149, 142, 136, 134, 127, 121, 128, 121, 115, 116, 109, 103, 101, 94, 88, 110, 103, 97, 136, 129, 123, 127, 120, 114, 109, 102, 96, 105, 98, 92, 123, 116, 110, 134, 127, 121, 127, 120, 114, 119, 112, 106, 119, 112, 106, 119, 110, 105, 118, 109, 104, 123, 114, 109, 143, 134, 129, 140, 131, 126, 97, 88, 83, 78, 69, 64, 106, 97, 92, 163, 154, 149, 153, 144, 139, 131, 122, 117, 112, 103, 98, 115, 106, 101, 129, 120, 115, 129, 120, 115, 118, 109, 104, 118, 110, 107, 87, 79, 76, 93, 85, 82, 111, 103, 100, 111, 103, 100, 128, 120, 117, 142, 134, 131, 125, 117, 114, 112, 104, 101, 111, 103, 100, 115, 107, 104, 114, 106, 103, 109, 101, 98, 113, 105, 102, 108, 100, 97, 91, 83, 80, 89, 81, 78, 112, 104, 101, 128, 120, 117, 130, 122, 119, 134, 126, 123, 141, 133, 130, 144, 137, 131, 142, 135, 129, 100, 93, 87, 70, 63, 57, 76, 69, 63, 124, 117, 111, 147, 140, 132, 128, 121, 113, 120, 113, 105, 136, 129, 121, 153, 144, 139, 159, 149, 147, 163, 153, 151, 165, 155, 153, 173, 163, 161, 178, 168, 166, 166, 156, 154, 147, 137, 135, 165, 155, 153, 159, 149, 147, 155, 145, 143, 159, 149, 147, 167, 157, 155, 172, 162, 160, 170, 160, 158, 165, 155, 153, 165, 158, 152, 166, 159, 153, 169, 162, 156, 174, 167, 161, 179, 172, 166, 183, 176, 170, 183, 176, 170, 183, 176, 170, 195, 188, 182, 196, 189, 183, 197, 190, 184, 197, 190, 184, 197, 190, 184, 199, 192, 186, 203, 196, 190, 207, 200, 194, 208, 203, 199, 207, 202, 198, 205, 201, 198, 205, 201, 198, 206, 202, 199, 209, 205, 202, 211, 207, 204, 213, 209, 206, 209, 208, 206, 209, 208, 206, 211, 210, 208, 212, 211, 209, 214, 213, 211, 215, 214, 212, 215, 215, 215, 216, 216, 216, 222, 221, 219, 223, 222, 220, 223, 223, 223, 225, 225, 225, 227, 228, 230, 230, 231, 233, 231, 234, 239, 233, 236, 241, 234, 239, 243, 235, 240, 244, 238, 241, 248, 240, 243, 250, 241, 244, 249, 242, 245, 250, 244, 245, 250, 243, 244, 249, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 235, 238, 243, 235, 238, 243, 235, 238, 243, 235, 238, 243, 234, 237, 242, 234, 237, 242, 234, 237, 242, 235, 236, 240, 235, 235, 237, 234, 235, 237, 231, 235, 238, 229, 234, 238, 229, 234, 240, 226, 233, 239, 227, 232, 236, 225, 233, 236, 222, 229, 235, 224, 231, 237, 221, 226, 230, 206, 208, 207, 186, 177, 170, 159, 140, 125, 130, 99, 78, 106, 72, 47, 118, 87, 67, 142, 115, 98, 163, 135, 123, 157, 133, 121, 144, 119, 112, 135, 112, 106, 128, 107, 102, 123, 102, 99, 122, 98, 98, 122, 96, 95, 124, 94, 94, 124, 93, 91, 127, 92, 90, 130, 93, 87, 132, 93, 88, 133, 94, 87, 136, 102, 93, 142, 108, 99, 151, 117, 108, 156, 123, 116, 156, 125, 120, 154, 125, 121, 152, 124, 123, 150, 124, 125, 152, 127, 131, 144, 123, 128, 138, 117, 122, 134, 113, 118, 133, 113, 115, 132, 112, 113, 131, 110, 109, 130, 108, 110, 126, 105, 110, 124, 103, 110, 128, 105, 111, 136, 111, 115, 137, 113, 113, 132, 108, 108, 131, 107, 105, 130, 109, 108, 128, 108, 109, 130, 112, 112, 127, 111, 112, 120, 104, 105, 114, 98, 99, 119, 100, 102, 134, 114, 116, 147, 127, 128, 160, 139, 138, 146, 122, 120, 119, 94, 90, 99, 71, 67, 104, 75, 67, 117, 87, 77, 112, 80, 69, 93, 59, 47, 85, 51, 41, 82, 48, 38, 90, 56, 47, 105, 72, 65, 111, 77, 75, 110, 79, 77, 122, 90, 91, 139, 109, 111, 122, 96, 97, 123, 99, 99, 125, 101, 101, 123, 97, 98, 117, 91, 92, 110, 84, 83, 107, 79, 78, 103, 78, 74, 104, 76, 73, 106, 81, 77, 98, 74, 72, 75, 54, 51, 60, 39, 38, 66, 46, 45, 90, 70, 69, 110, 90, 89, 97, 77, 78, 89, 71, 71, 81, 61, 62, 77, 59, 59, 82, 62, 63, 91, 73, 73, 101, 81, 82, 106, 88, 88, 125, 105, 106, 130, 112, 112, 135, 115, 116, 131, 113, 113, 124, 104, 105, 118, 100, 100, 119, 99, 100, 122, 102, 103, 126, 105, 102, 113, 92, 89, 109, 88, 85, 115, 94, 91, 112, 91, 88, 99, 78, 75, 95, 74, 71, 100, 79, 76, 91, 72, 68, 88, 69, 65, 86, 67, 63, 81, 62, 58, 72, 54, 50, 68, 50, 46, 77, 59, 55, 87, 72, 67, 80, 66, 65, 73, 59, 58, 91, 80, 78, 138, 127, 125, 166, 156, 154, 149, 139, 137, 105, 97, 94, 73, 68, 64, 63, 58, 54, 62, 59, 54, 83, 80, 75, 95, 94, 89, 73, 72, 67, 48, 47, 42, 60, 59, 54, 84, 83, 78, 122, 121, 117, 151, 150, 146, 136, 135, 131, 83, 82, 78, 50, 46, 43, 42, 38, 35, 57, 52, 49, 84, 79, 76, 90, 85, 82, 78, 73, 70, 93, 85, 83, 73, 65, 63, 40, 30, 29, 81, 71, 70, 114, 104, 103, 71, 61, 60, 19, 11, 9, 73, 65, 62, 65, 57, 54, 44, 36, 33, 59, 51, 48, 101, 93, 90, 76, 68, 65, 57, 49, 46, 105, 95, 93, 92, 82, 80, 70, 60, 58, 90, 80, 78, 121, 110, 108, 127, 116, 114, 119, 108, 106, 85, 75, 73, 72, 64, 62, 136, 131, 128, 173, 169, 168, 92, 88, 87, 99, 95, 94, 85, 81, 80, 83, 79, 78, 172, 168, 167, 146, 141, 138, 102, 97, 94, 105, 97, 94, 109, 102, 96, 126, 117, 112, 142, 133, 126, 123, 112, 106, 121, 110, 104, 88, 77, 73, 105, 94, 90, 137, 126, 122, 124, 113, 109, 101, 90, 86, 106, 95, 91, 107, 96, 92, 115, 104, 100, 129, 118, 114, 123, 112, 108, 129, 118, 114, 141, 130, 126, 140, 129, 125, 133, 122, 118, 139, 128, 124, 153, 142, 138, 133, 119, 116, 107, 93, 90, 87, 73, 70, 102, 88, 85, 123, 112, 108, 118, 107, 103, 108, 97, 93, 115, 104, 100, 99, 90, 85, 117, 108, 103, 109, 100, 95, 94, 85, 80, 119, 110, 105, 110, 101, 96, 74, 65, 60, 99, 90, 85, 119, 110, 105, 112, 103, 98, 124, 115, 110, 106, 97, 92, 130, 121, 116, 133, 124, 119, 128, 117, 113, 130, 119, 115, 112, 101, 97, 123, 112, 108, 114, 103, 99, 99, 88, 84, 122, 108, 105, 138, 124, 121, 106, 92, 89, 71, 57, 54, 91, 77, 74, 113, 99, 96, 132, 118, 115, 110, 96, 93, 110, 99, 97, 91, 81, 79, 84, 76, 74, 80, 72, 70, 101, 93, 91, 116, 108, 106, 156, 148, 145, 144, 136, 133, 108, 99, 94, 109, 100, 95, 119, 110, 105, 133, 124, 119, 127, 117, 115, 112, 102, 100, 125, 115, 113, 117, 107, 105, 127, 117, 115, 138, 128, 126, 135, 126, 121, 77, 68, 63, 112, 101, 97, 96, 85, 81, 104, 93, 89, 109, 98, 94, 97, 84, 78, 105, 92, 86, 113, 100, 94, 94, 81, 75, 90, 77, 71, 118, 105, 99, 111, 98, 92, 108, 95, 89, 106, 95, 91, 96, 85, 81, 94, 83, 79, 77, 66, 62, 82, 73, 68, 108, 99, 94, 137, 127, 125, 128, 118, 116, 121, 111, 109, 131, 121, 119, 123, 113, 111, 117, 107, 105, 139, 128, 124, 103, 92, 88, 97, 86, 82, 140, 129, 125, 148, 137, 133, 139, 128, 124, 144, 133, 129, 121, 110, 106, 117, 106, 102, 151, 140, 136, 127, 116, 112, 124, 113, 109, 142, 131, 127, 142, 131, 127, 139, 128, 124, 110, 99, 95, 106, 95, 89, 131, 122, 115, 121, 112, 107, 121, 114, 108, 84, 76, 73, 70, 62, 59, 107, 97, 96, 65, 57, 55, 78, 70, 68, 110, 106, 103, 122, 123, 118, 118, 120, 115, 165, 164, 159, 161, 158, 153, 103, 92, 90, 123, 112, 110, 147, 139, 136, 154, 149, 145, 160, 155, 151, 130, 125, 121, 114, 111, 106, 129, 126, 121, 115, 114, 109, 91, 90, 85, 89, 88, 83, 133, 132, 127, 195, 192, 187, 136, 133, 128, 124, 119, 115, 94, 89, 85, 178, 173, 169, 183, 175, 172, 141, 132, 127, 156, 145, 141, 142, 131, 127, 120, 109, 105, 146, 137, 132, 164, 155, 150, 136, 127, 122, 129, 120, 115, 161, 154, 148, 165, 158, 152, 160, 155, 149, 144, 139, 133, 136, 131, 125, 151, 146, 140, 157, 152, 146, 139, 134, 128, 160, 155, 151, 159, 154, 150, 159, 154, 150, 159, 154, 150, 146, 141, 137, 124, 119, 115, 125, 120, 116, 147, 142, 138, 161, 156, 152, 151, 146, 142, 141, 136, 132, 140, 135, 131, 143, 138, 134, 145, 140, 136, 141, 136, 132, 136, 129, 123, 81, 72, 67, 127, 118, 111, 148, 139, 132, 147, 138, 131, 158, 149, 142, 158, 149, 142, 138, 129, 122, 125, 116, 109, 116, 109, 103, 124, 117, 111, 139, 132, 126, 159, 152, 146, 163, 158, 154, 149, 144, 140, 151, 146, 142, 174, 169, 165, 160, 153, 147, 142, 135, 129, 116, 109, 103, 104, 97, 91, 116, 109, 103, 140, 133, 127, 147, 140, 134, 139, 132, 126, 121, 114, 108, 108, 101, 95, 115, 108, 102, 135, 128, 122, 129, 122, 116, 100, 93, 87, 87, 80, 74, 98, 91, 85, 142, 133, 128, 139, 130, 125, 126, 117, 112, 103, 94, 89, 83, 74, 69, 86, 77, 72, 119, 110, 105, 155, 146, 141, 159, 150, 145, 139, 130, 125, 118, 109, 104, 119, 110, 105, 137, 128, 123, 149, 140, 135, 138, 129, 124, 119, 110, 105, 106, 98, 95, 100, 92, 89, 106, 98, 95, 119, 111, 108, 134, 126, 123, 150, 142, 139, 150, 142, 139, 132, 124, 121, 142, 134, 131, 143, 135, 132, 133, 125, 122, 107, 99, 96, 94, 86, 83, 110, 102, 99, 119, 111, 108, 104, 96, 93, 132, 124, 121, 144, 136, 133, 143, 135, 132, 131, 123, 120, 131, 123, 120, 138, 130, 127, 123, 116, 110, 94, 87, 81, 86, 79, 73, 103, 96, 90, 133, 126, 120, 154, 147, 141, 148, 141, 133, 130, 123, 115, 130, 123, 115, 145, 138, 130, 151, 142, 137, 168, 159, 154, 172, 163, 158, 160, 151, 146, 157, 148, 143, 166, 157, 152, 164, 155, 150, 151, 142, 137, 155, 146, 141, 151, 142, 137, 150, 141, 136, 157, 148, 143, 167, 158, 153, 170, 161, 156, 164, 155, 150, 156, 147, 142, 159, 152, 146, 163, 156, 150, 170, 163, 157, 176, 169, 163, 180, 173, 167, 182, 175, 169, 181, 174, 168, 179, 172, 166, 196, 189, 183, 193, 186, 180, 190, 183, 177, 191, 184, 178, 195, 188, 182, 200, 193, 187, 204, 197, 191, 205, 198, 192, 205, 200, 196, 205, 200, 196, 206, 201, 197, 207, 202, 198, 207, 203, 200, 209, 205, 202, 210, 206, 203, 210, 206, 203, 208, 207, 205, 209, 208, 206, 210, 209, 207, 211, 210, 208, 213, 212, 210, 214, 213, 211, 216, 215, 213, 216, 215, 213, 221, 220, 218, 221, 220, 218, 222, 222, 222, 224, 224, 224, 226, 227, 229, 230, 231, 233, 231, 234, 239, 233, 236, 241, 234, 239, 243, 235, 240, 244, 238, 241, 248, 240, 243, 250, 241, 244, 249, 242, 245, 250, 244, 245, 250, 243, 244, 249, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 236, 239, 244, 236, 239, 244, 235, 238, 243, 235, 238, 243, 235, 238, 243, 234, 237, 242, 234, 237, 242, 234, 238, 241, 234, 235, 239, 234, 235, 237, 231, 236, 240, 230, 235, 239, 227, 234, 240, 226, 233, 239, 228, 233, 237, 227, 232, 236, 228, 232, 241, 227, 232, 238, 220, 225, 231, 208, 208, 208, 193, 182, 176, 167, 148, 134, 136, 105, 84, 109, 73, 49, 92, 57, 35, 115, 83, 62, 139, 108, 90, 146, 117, 101, 145, 117, 105, 140, 113, 102, 134, 107, 100, 127, 99, 95, 124, 96, 92, 124, 94, 92, 123, 92, 89, 123, 89, 87, 125, 87, 84, 126, 87, 82, 127, 86, 80, 127, 86, 80, 131, 94, 85, 137, 103, 93, 147, 113, 104, 153, 120, 113, 152, 121, 116, 151, 122, 118, 150, 122, 121, 150, 124, 125, 144, 122, 124, 140, 120, 122, 136, 115, 120, 134, 114, 116, 133, 113, 114, 131, 111, 112, 129, 108, 107, 126, 105, 104, 120, 98, 101, 119, 96, 102, 123, 101, 104, 132, 107, 110, 134, 110, 110, 132, 108, 108, 129, 108, 107, 131, 111, 112, 130, 111, 113, 127, 111, 114, 123, 108, 113, 119, 104, 109, 119, 102, 108, 129, 110, 114, 143, 122, 127, 155, 133, 135, 141, 117, 115, 110, 85, 81, 95, 67, 63, 108, 79, 73, 115, 85, 75, 99, 67, 56, 81, 47, 35, 78, 42, 30, 64, 28, 16, 89, 53, 41, 108, 71, 62, 111, 77, 68, 116, 81, 77, 125, 91, 89, 129, 95, 94, 122, 92, 92, 118, 94, 94, 117, 96, 95, 121, 97, 97, 118, 94, 94, 115, 89, 88, 110, 84, 83, 108, 83, 79, 107, 82, 78, 116, 91, 87, 111, 87, 83, 96, 75, 72, 83, 62, 59, 87, 67, 66, 105, 85, 84, 114, 96, 94, 112, 94, 92, 99, 79, 78, 94, 74, 73, 88, 68, 69, 88, 68, 67, 94, 74, 75, 105, 85, 84, 114, 94, 95, 120, 100, 99, 121, 101, 102, 118, 98, 97, 118, 98, 99, 123, 103, 102, 130, 110, 111, 133, 113, 112, 130, 110, 111, 125, 105, 104, 118, 97, 94, 107, 86, 83, 100, 79, 76, 103, 82, 79, 105, 84, 81, 100, 79, 76, 97, 76, 73, 99, 78, 75, 104, 85, 81, 99, 80, 76, 94, 75, 71, 88, 69, 65, 75, 57, 53, 63, 45, 41, 61, 43, 39, 63, 48, 43, 79, 64, 61, 61, 47, 46, 58, 47, 45, 86, 75, 73, 113, 102, 100, 125, 115, 113, 138, 128, 126, 153, 145, 142, 137, 129, 126, 102, 97, 93, 82, 77, 73, 82, 79, 74, 78, 75, 70, 67, 66, 61, 72, 69, 64, 82, 81, 76, 73, 72, 68, 89, 88, 84, 124, 123, 119, 155, 154, 150, 129, 125, 122, 55, 51, 48, 32, 27, 24, 70, 65, 62, 111, 106, 103, 92, 87, 84, 108, 100, 98, 91, 83, 81, 35, 27, 25, 45, 37, 35, 90, 80, 79, 88, 80, 78, 19, 11, 8, 49, 41, 38, 56, 48, 45, 45, 37, 34, 64, 56, 53, 94, 86, 83, 68, 60, 57, 49, 41, 38, 97, 87, 85, 91, 81, 79, 78, 68, 66, 96, 86, 84, 109, 98, 96, 104, 93, 91, 117, 106, 104, 117, 107, 105, 79, 71, 69, 77, 72, 69, 182, 178, 177, 151, 147, 146, 97, 93, 92, 89, 85, 84, 101, 97, 96, 120, 116, 115, 177, 172, 169, 110, 105, 102, 107, 99, 96, 121, 113, 110, 111, 102, 97, 128, 119, 112, 141, 130, 124, 120, 109, 103, 93, 82, 78, 91, 80, 76, 130, 119, 115, 139, 128, 124, 117, 106, 102, 112, 101, 97, 106, 95, 91, 106, 95, 91, 131, 120, 116, 123, 112, 108, 126, 115, 111, 132, 121, 117, 131, 120, 116, 132, 121, 117, 137, 126, 122, 138, 127, 123, 149, 135, 132, 129, 115, 112, 108, 94, 91, 109, 95, 92, 116, 105, 101, 108, 97, 93, 104, 93, 89, 118, 107, 103, 100, 91, 86, 112, 103, 98, 112, 103, 98, 97, 88, 83, 112, 103, 98, 109, 100, 95, 77, 68, 63, 85, 76, 71, 127, 118, 113, 117, 108, 103, 122, 113, 108, 112, 103, 98, 128, 119, 114, 141, 132, 127, 128, 117, 113, 120, 109, 105, 99, 88, 84, 129, 118, 114, 121, 110, 106, 95, 84, 80, 125, 111, 108, 139, 125, 122, 98, 84, 81, 82, 68, 65, 89, 75, 72, 108, 94, 91, 134, 120, 117, 125, 114, 110, 122, 112, 110, 109, 99, 97, 97, 89, 87, 108, 100, 98, 98, 90, 88, 109, 101, 99, 147, 139, 136, 142, 134, 131, 115, 106, 101, 111, 102, 97, 114, 105, 100, 128, 119, 114, 123, 113, 111, 117, 107, 105, 123, 113, 111, 115, 105, 103, 118, 108, 106, 137, 127, 125, 131, 122, 117, 81, 72, 67, 95, 84, 80, 102, 91, 87, 104, 93, 89, 84, 73, 69, 75, 62, 56, 103, 90, 84, 120, 107, 101, 102, 89, 83, 92, 79, 73, 132, 119, 113, 102, 89, 83, 105, 92, 86, 105, 94, 90, 93, 82, 78, 112, 101, 97, 82, 71, 67, 79, 70, 65, 106, 97, 92, 123, 113, 111, 123, 113, 111, 129, 119, 117, 127, 117, 115, 112, 102, 100, 109, 99, 97, 139, 128, 124, 113, 102, 98, 97, 86, 82, 131, 120, 116, 154, 143, 139, 150, 139, 135, 146, 135, 131, 121, 110, 106, 126, 115, 111, 155, 144, 140, 124, 113, 109, 117, 106, 102, 145, 134, 130, 143, 132, 128, 126, 115, 111, 103, 92, 88, 100, 89, 83, 123, 114, 107, 134, 125, 120, 142, 135, 129, 101, 93, 90, 85, 77, 74, 106, 96, 95, 44, 36, 34, 73, 65, 63, 114, 110, 107, 123, 124, 119, 118, 120, 115, 166, 165, 160, 161, 158, 153, 106, 95, 93, 118, 107, 105, 163, 155, 152, 145, 140, 136, 127, 122, 118, 114, 109, 105, 123, 120, 115, 137, 134, 129, 112, 111, 106, 79, 78, 73, 93, 92, 87, 162, 161, 156, 179, 176, 171, 117, 114, 109, 111, 106, 102, 120, 115, 111, 191, 186, 182, 160, 152, 149, 134, 125, 120, 140, 129, 125, 128, 117, 113, 131, 120, 116, 153, 144, 139, 139, 130, 125, 125, 116, 111, 156, 147, 142, 177, 170, 164, 156, 149, 143, 140, 135, 129, 138, 133, 127, 145, 140, 134, 162, 157, 151, 167, 162, 156, 156, 151, 145, 178, 173, 169, 167, 162, 158, 164, 159, 155, 146, 141, 137, 116, 111, 107, 120, 115, 111, 150, 145, 141, 164, 159, 155, 165, 160, 156, 144, 139, 135, 133, 128, 124, 137, 132, 128, 145, 140, 136, 143, 138, 134, 123, 118, 114, 97, 92, 86, 108, 99, 94, 166, 157, 150, 153, 144, 137, 127, 118, 111, 155, 146, 139, 152, 143, 136, 126, 117, 110, 144, 135, 128, 128, 121, 115, 146, 139, 133, 154, 147, 141, 149, 142, 136, 146, 141, 137, 152, 147, 143, 154, 149, 145, 153, 148, 144, 138, 131, 125, 140, 133, 127, 134, 127, 121, 124, 117, 111, 133, 126, 120, 155, 148, 142, 144, 137, 131, 108, 101, 95, 121, 114, 108, 128, 121, 115, 129, 122, 116, 120, 113, 107, 111, 104, 98, 108, 101, 95, 108, 101, 95, 108, 101, 95, 114, 105, 100, 115, 106, 101, 113, 104, 99, 96, 87, 82, 83, 74, 69, 103, 94, 89, 132, 123, 118, 140, 131, 126, 139, 130, 125, 125, 116, 111, 133, 124, 119, 159, 150, 145, 158, 149, 144, 130, 121, 116, 117, 108, 103, 126, 117, 112, 115, 107, 104, 138, 130, 127, 137, 129, 126, 122, 114, 111, 130, 122, 119, 146, 138, 135, 140, 132, 129, 125, 117, 114, 148, 140, 137, 122, 114, 111, 109, 101, 98, 110, 102, 99, 115, 107, 104, 131, 123, 120, 152, 144, 141, 160, 152, 149, 141, 133, 130, 125, 117, 114, 123, 115, 112, 131, 123, 120, 126, 118, 115, 112, 104, 101, 99, 92, 86, 89, 82, 76, 112, 105, 99, 139, 132, 126, 153, 146, 140, 138, 131, 125, 121, 114, 106, 123, 116, 108, 133, 126, 118, 137, 130, 122, 161, 152, 147, 170, 161, 156, 170, 161, 156, 157, 148, 143, 149, 140, 135, 155, 146, 141, 162, 153, 148, 164, 155, 150, 131, 122, 117, 145, 136, 131, 161, 152, 147, 168, 159, 154, 167, 158, 153, 167, 158, 153, 172, 163, 158, 178, 169, 164, 176, 169, 163, 177, 170, 164, 179, 172, 166, 181, 174, 168, 181, 174, 168, 183, 176, 170, 185, 178, 172, 187, 180, 174, 191, 184, 178, 188, 181, 175, 186, 179, 173, 189, 182, 176, 196, 189, 183, 201, 194, 188, 202, 195, 189, 200, 193, 187, 201, 196, 192, 203, 198, 194, 205, 200, 196, 207, 202, 198, 208, 204, 201, 208, 204, 201, 207, 203, 200, 207, 203, 200, 207, 206, 204, 207, 206, 204, 209, 208, 206, 210, 209, 207, 212, 211, 209, 213, 212, 210, 214, 213, 211, 215, 214, 212, 219, 218, 216, 219, 218, 216, 220, 220, 220, 223, 223, 223, 225, 226, 228, 229, 230, 232, 231, 234, 239, 233, 236, 241, 234, 239, 243, 235, 240, 244, 238, 241, 248, 240, 243, 250, 241, 244, 249, 242, 245, 250, 244, 245, 250, 243, 244, 249, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 236, 239, 244, 236, 239, 244, 236, 239, 244, 235, 238, 243, 235, 238, 243, 235, 238, 243, 234, 237, 242, 234, 238, 241, 233, 237, 240, 233, 237, 238, 231, 236, 240, 228, 236, 239, 227, 234, 240, 227, 234, 240, 228, 233, 237, 228, 233, 237, 229, 233, 242, 227, 232, 238, 222, 225, 232, 213, 211, 214, 202, 191, 187, 182, 160, 149, 151, 118, 99, 124, 87, 61, 99, 62, 36, 105, 68, 42, 112, 76, 54, 120, 85, 65, 129, 96, 79, 136, 104, 89, 136, 104, 93, 132, 99, 90, 121, 88, 81, 119, 86, 79, 119, 84, 78, 119, 82, 76, 119, 80, 73, 119, 78, 72, 122, 79, 72, 120, 80, 72, 125, 88, 80, 131, 98, 89, 143, 110, 103, 147, 117, 109, 145, 117, 113, 142, 117, 113, 143, 119, 119, 144, 122, 124, 134, 114, 116, 133, 114, 116, 134, 115, 117, 136, 117, 119, 137, 117, 118, 133, 113, 114, 127, 106, 105, 121, 100, 99, 114, 92, 94, 115, 90, 93, 118, 94, 94, 125, 101, 101, 129, 105, 105, 128, 107, 106, 129, 109, 110, 132, 113, 115, 130, 115, 120, 125, 110, 115, 119, 106, 113, 123, 108, 115, 131, 114, 122, 140, 121, 127, 144, 121, 127, 146, 121, 124, 126, 98, 95, 106, 77, 71, 101, 72, 66, 115, 85, 77, 111, 77, 68, 83, 46, 37, 65, 29, 17, 71, 33, 20, 79, 41, 28, 102, 64, 53, 118, 80, 71, 118, 81, 73, 116, 81, 75, 122, 89, 84, 123, 90, 85, 113, 83, 81, 120, 96, 94, 117, 96, 95, 118, 94, 94, 114, 90, 90, 112, 86, 85, 110, 84, 83, 112, 87, 83, 114, 89, 85, 118, 94, 90, 114, 90, 86, 104, 83, 80, 102, 81, 78, 114, 94, 93, 129, 109, 108, 122, 104, 102, 106, 88, 86, 116, 96, 95, 113, 92, 89, 110, 89, 88, 109, 88, 85, 111, 90, 89, 114, 93, 90, 116, 95, 94, 116, 95, 92, 122, 101, 100, 117, 96, 93, 115, 94, 93, 119, 98, 95, 127, 106, 105, 133, 112, 109, 133, 112, 111, 131, 110, 107, 113, 92, 89, 111, 90, 87, 104, 83, 80, 96, 75, 72, 97, 76, 73, 104, 83, 80, 101, 80, 77, 93, 72, 69, 82, 63, 59, 84, 65, 61, 91, 72, 68, 98, 79, 75, 94, 76, 72, 84, 66, 62, 75, 57, 53, 70, 55, 50, 71, 56, 53, 77, 63, 60, 87, 73, 70, 82, 71, 67, 62, 51, 47, 51, 42, 37, 78, 69, 64, 114, 107, 101, 144, 137, 131, 147, 140, 134, 138, 131, 125, 109, 104, 98, 80, 75, 69, 65, 62, 55, 75, 70, 64, 92, 89, 84, 72, 71, 67, 68, 67, 63, 79, 78, 74, 116, 115, 111, 150, 149, 145, 140, 139, 135, 102, 98, 95, 74, 70, 67, 96, 92, 89, 94, 90, 87, 121, 116, 113, 129, 124, 121, 78, 73, 70, 30, 25, 22, 48, 40, 38, 87, 82, 79, 28, 23, 19, 37, 32, 26, 63, 58, 52, 54, 49, 43, 68, 61, 55, 78, 71, 65, 56, 49, 43, 46, 39, 33, 85, 76, 71, 105, 96, 91, 90, 81, 76, 91, 82, 77, 98, 89, 84, 89, 80, 75, 106, 97, 92, 125, 115, 113, 107, 99, 97, 28, 23, 20, 130, 125, 122, 187, 182, 179, 122, 118, 117, 76, 72, 71, 108, 104, 103, 81, 77, 76, 159, 155, 152, 134, 130, 127, 84, 79, 75, 106, 98, 95, 117, 108, 103, 109, 100, 95, 146, 137, 130, 140, 131, 124, 105, 94, 90, 78, 67, 63, 108, 97, 93, 131, 120, 116, 121, 110, 106, 112, 101, 97, 106, 95, 91, 115, 104, 100, 125, 114, 110, 122, 111, 107, 122, 111, 107, 119, 108, 104, 121, 110, 106, 139, 128, 124, 140, 129, 125, 118, 107, 103, 132, 118, 115, 126, 112, 109, 117, 103, 100, 116, 102, 99, 115, 104, 100, 106, 95, 91, 111, 100, 96, 133, 122, 118, 104, 95, 90, 101, 92, 87, 120, 111, 106, 116, 107, 102, 110, 101, 96, 114, 105, 100, 96, 87, 82, 85, 76, 71, 125, 114, 110, 118, 107, 103, 125, 114, 110, 126, 115, 111, 129, 118, 114, 145, 134, 130, 130, 116, 113, 127, 113, 110, 93, 79, 76, 133, 119, 116, 132, 118, 115, 98, 84, 81, 126, 111, 108, 138, 123, 120, 100, 85, 82, 109, 94, 91, 103, 89, 86, 110, 96, 93, 131, 120, 116, 136, 125, 121, 131, 121, 119, 125, 115, 113, 103, 95, 93, 127, 119, 117, 99, 91, 89, 104, 96, 94, 134, 126, 123, 137, 129, 126, 129, 120, 115, 127, 118, 113, 116, 107, 102, 118, 109, 104, 125, 115, 113, 119, 109, 107, 121, 111, 109, 123, 113, 111, 109, 99, 97, 119, 109, 107, 120, 111, 106, 106, 97, 92, 96, 85, 81, 109, 98, 94, 107, 96, 92, 84, 73, 69, 75, 62, 56, 94, 81, 75, 113, 100, 94, 113, 100, 94, 97, 84, 78, 134, 121, 115, 93, 80, 74, 96, 83, 77, 99, 88, 84, 91, 80, 76, 123, 112, 108, 94, 83, 79, 78, 69, 64, 87, 78, 73, 93, 83, 81, 116, 106, 104, 134, 124, 122, 121, 111, 109, 108, 98, 96, 108, 98, 96, 142, 131, 127, 135, 124, 120, 105, 94, 90, 117, 106, 102, 147, 136, 132, 153, 142, 138, 144, 133, 129, 118, 107, 103, 131, 120, 116, 152, 141, 137, 124, 113, 109, 117, 106, 102, 149, 138, 134, 151, 140, 136, 130, 119, 115, 113, 102, 98, 103, 92, 86, 119, 110, 103, 136, 127, 122, 147, 140, 134, 109, 101, 98, 92, 84, 81, 98, 88, 87, 34, 26, 24, 66, 58, 56, 111, 107, 104, 117, 118, 113, 117, 119, 114, 167, 166, 161, 161, 158, 153, 113, 102, 100, 122, 111, 109, 155, 145, 143, 128, 120, 117, 101, 96, 92, 109, 104, 100, 126, 123, 118, 125, 122, 117, 106, 105, 100, 90, 89, 84, 120, 119, 114, 184, 183, 178, 137, 134, 129, 116, 113, 108, 103, 98, 94, 166, 161, 157, 180, 172, 169, 135, 127, 124, 129, 120, 115, 126, 115, 111, 128, 119, 114, 146, 137, 132, 144, 135, 130, 122, 113, 108, 139, 130, 125, 181, 172, 167, 166, 159, 153, 133, 126, 120, 124, 117, 111, 144, 137, 131, 160, 155, 149, 168, 163, 157, 171, 166, 160, 168, 163, 157, 136, 131, 127, 165, 160, 156, 148, 143, 139, 107, 102, 98, 120, 115, 111, 161, 156, 152, 167, 162, 158, 147, 142, 138, 148, 143, 139, 143, 138, 134, 148, 143, 139, 149, 144, 140, 137, 132, 128, 136, 131, 127, 141, 136, 132, 135, 130, 124, 147, 138, 133, 142, 133, 126, 149, 140, 133, 150, 141, 134, 141, 132, 125, 143, 134, 127, 137, 128, 121, 113, 104, 97, 142, 135, 129, 162, 155, 149, 173, 166, 160, 161, 154, 148, 143, 138, 134, 139, 134, 130, 132, 127, 123, 119, 114, 110, 130, 123, 117, 132, 125, 119, 155, 148, 142, 168, 161, 155, 146, 139, 133, 126, 119, 113, 133, 126, 120, 144, 137, 131, 149, 142, 136, 158, 151, 145, 146, 139, 133, 118, 111, 105, 105, 98, 92, 115, 108, 102, 118, 111, 105, 109, 102, 96, 115, 106, 101, 90, 81, 76, 95, 86, 81, 118, 109, 104, 112, 103, 98, 101, 92, 87, 117, 108, 103, 140, 131, 126, 145, 136, 131, 139, 130, 125, 148, 139, 134, 157, 148, 143, 138, 129, 124, 109, 100, 95, 119, 110, 105, 152, 143, 138, 143, 135, 132, 147, 139, 136, 128, 120, 117, 112, 104, 101, 121, 113, 110, 123, 115, 112, 112, 104, 101, 107, 99, 96, 117, 109, 106, 99, 91, 88, 108, 100, 97, 134, 126, 123, 143, 135, 132, 143, 135, 132, 150, 142, 139, 157, 149, 146, 139, 131, 128, 125, 117, 114, 131, 123, 120, 132, 124, 121, 99, 91, 88, 76, 68, 65, 96, 89, 83, 126, 119, 113, 153, 146, 140, 142, 135, 129, 137, 130, 124, 141, 134, 128, 140, 133, 125, 133, 126, 118, 136, 129, 121, 146, 139, 131, 143, 136, 128, 126, 119, 111, 119, 112, 104, 131, 124, 116, 144, 137, 129, 145, 138, 130, 140, 133, 125, 138, 131, 123, 139, 132, 124, 159, 152, 144, 178, 171, 163, 182, 175, 167, 172, 165, 157, 168, 161, 153, 176, 169, 161, 188, 181, 173, 173, 166, 160, 177, 170, 164, 181, 174, 168, 182, 175, 169, 182, 175, 169, 182, 175, 169, 185, 178, 172, 188, 181, 175, 182, 175, 169, 181, 174, 168, 184, 177, 171, 191, 184, 178, 199, 192, 186, 202, 195, 189, 198, 191, 185, 194, 187, 181, 199, 194, 190, 200, 195, 191, 203, 198, 194, 205, 200, 196, 205, 201, 198, 205, 201, 198, 205, 201, 198, 204, 200, 197, 207, 203, 200, 208, 204, 201, 207, 206, 204, 209, 208, 206, 210, 209, 207, 212, 211, 209, 213, 212, 210, 214, 213, 211, 217, 216, 214, 217, 216, 214, 218, 218, 218, 221, 221, 221, 224, 225, 227, 228, 229, 231, 230, 233, 238, 232, 235, 240, 234, 239, 243, 235, 240, 244, 238, 241, 248, 240, 243, 250, 241, 244, 249, 242, 245, 250, 244, 245, 250, 243, 244, 249, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 236, 239, 244, 236, 239, 244, 236, 239, 244, 235, 238, 243, 235, 238, 243, 235, 238, 243, 235, 238, 243, 233, 237, 240, 232, 237, 240, 229, 237, 240, 229, 237, 240, 228, 235, 241, 227, 234, 240, 229, 232, 237, 229, 232, 237, 225, 230, 236, 228, 231, 238, 229, 229, 237, 224, 219, 223, 213, 199, 198, 190, 167, 159, 157, 124, 107, 131, 90, 68, 124, 82, 57, 111, 67, 40, 93, 51, 27, 91, 50, 28, 102, 64, 45, 118, 81, 63, 129, 92, 76, 132, 96, 82, 110, 74, 62, 110, 74, 62, 110, 72, 63, 109, 71, 60, 110, 70, 60, 113, 71, 59, 115, 71, 62, 114, 71, 62, 120, 86, 77, 127, 97, 89, 140, 110, 102, 143, 116, 109, 140, 115, 111, 135, 114, 111, 138, 116, 118, 141, 121, 123, 131, 112, 114, 133, 114, 116, 136, 117, 119, 140, 121, 123, 141, 121, 122, 136, 116, 117, 129, 108, 107, 122, 101, 100, 120, 94, 93, 117, 92, 88, 119, 91, 88, 122, 97, 93, 125, 99, 98, 126, 102, 102, 127, 107, 108, 131, 115, 118, 131, 116, 121, 125, 112, 119, 123, 110, 119, 131, 115, 125, 142, 122, 131, 144, 123, 130, 138, 113, 119, 129, 103, 106, 116, 88, 85, 118, 89, 83, 113, 83, 75, 101, 68, 61, 90, 56, 47, 88, 51, 42, 89, 51, 40, 90, 52, 39, 107, 67, 57, 101, 63, 52, 105, 67, 58, 114, 77, 69, 113, 78, 72, 107, 74, 67, 115, 82, 77, 128, 99, 95, 125, 99, 98, 122, 101, 100, 121, 97, 97, 117, 93, 93, 114, 88, 89, 114, 88, 87, 118, 92, 91, 121, 96, 92, 98, 72, 71, 102, 78, 76, 107, 83, 81, 110, 89, 86, 118, 97, 96, 124, 104, 103, 124, 104, 103, 120, 100, 99, 122, 102, 101, 122, 101, 98, 120, 99, 96, 120, 99, 96, 119, 98, 95, 116, 95, 92, 112, 91, 88, 108, 87, 84, 120, 99, 96, 124, 103, 100, 126, 105, 102, 123, 102, 99, 119, 98, 95, 119, 98, 95, 125, 104, 101, 131, 110, 107, 118, 97, 94, 123, 102, 99, 116, 95, 92, 102, 81, 78, 99, 78, 75, 106, 85, 82, 104, 83, 80, 93, 72, 69, 88, 69, 65, 82, 63, 59, 79, 60, 56, 84, 65, 61, 87, 69, 65, 88, 70, 66, 89, 71, 67, 91, 76, 71, 70, 55, 52, 53, 39, 36, 50, 36, 33, 72, 58, 55, 97, 86, 82, 98, 87, 83, 73, 62, 58, 47, 38, 33, 63, 54, 49, 108, 101, 95, 146, 139, 133, 158, 151, 145, 154, 147, 141, 123, 118, 112, 74, 69, 63, 39, 34, 28, 82, 78, 75, 80, 79, 75, 72, 71, 67, 73, 72, 68, 102, 101, 97, 137, 136, 132, 147, 143, 140, 134, 130, 127, 116, 112, 109, 100, 96, 93, 97, 92, 89, 121, 116, 113, 122, 117, 114, 74, 69, 66, 50, 45, 42, 76, 71, 67, 40, 35, 31, 46, 41, 35, 92, 87, 81, 70, 65, 59, 68, 61, 55, 67, 60, 54, 54, 47, 41, 49, 42, 36, 78, 69, 64, 115, 106, 101, 99, 90, 85, 81, 72, 67, 86, 77, 72, 92, 83, 78, 104, 95, 90, 102, 95, 89, 134, 126, 123, 38, 33, 30, 73, 68, 65, 169, 164, 161, 171, 167, 166, 91, 87, 86, 102, 98, 97, 98, 94, 93, 121, 117, 114, 173, 169, 166, 85, 80, 77, 76, 71, 67, 123, 115, 112, 97, 88, 83, 113, 104, 99, 139, 130, 123, 112, 101, 97, 78, 67, 63, 89, 78, 74, 106, 95, 91, 108, 97, 93, 106, 95, 91, 107, 96, 92, 131, 120, 116, 122, 111, 107, 122, 111, 107, 125, 114, 110, 117, 106, 102, 117, 106, 102, 143, 132, 128, 149, 138, 134, 118, 107, 103, 116, 102, 99, 120, 106, 103, 119, 105, 102, 119, 105, 102, 115, 104, 100, 107, 96, 92, 112, 101, 97, 133, 122, 118, 111, 102, 97, 99, 90, 85, 129, 120, 115, 133, 124, 119, 115, 106, 101, 120, 111, 106, 114, 105, 100, 104, 95, 90, 116, 105, 101, 110, 99, 95, 124, 113, 109, 142, 131, 127, 134, 123, 119, 149, 138, 134, 134, 120, 117, 140, 126, 123, 94, 80, 77, 128, 114, 111, 137, 123, 120, 105, 91, 88, 127, 112, 109, 137, 122, 119, 103, 88, 85, 129, 114, 111, 123, 109, 106, 113, 99, 96, 125, 114, 110, 140, 129, 125, 132, 122, 120, 129, 119, 117, 92, 84, 82, 121, 113, 111, 108, 100, 98, 107, 99, 97, 125, 117, 114, 128, 120, 117, 138, 129, 124, 146, 137, 132, 122, 113, 108, 111, 102, 97, 127, 117, 115, 121, 111, 109, 120, 110, 108, 133, 123, 121, 103, 93, 91, 102, 92, 90, 110, 101, 96, 131, 122, 117, 111, 100, 96, 112, 101, 97, 114, 103, 99, 114, 103, 99, 103, 90, 84, 82, 69, 63, 91, 78, 72, 123, 110, 104, 103, 90, 84, 127, 114, 108, 87, 74, 68, 87, 74, 68, 93, 82, 78, 91, 80, 76, 119, 108, 104, 103, 92, 88, 82, 73, 68, 74, 65, 60, 76, 66, 64, 112, 102, 100, 130, 120, 118, 118, 108, 106, 114, 104, 102, 109, 99, 97, 144, 133, 129, 153, 142, 138, 114, 103, 99, 109, 98, 94, 141, 130, 126, 147, 136, 132, 136, 125, 121, 117, 106, 102, 127, 116, 112, 144, 133, 129, 131, 120, 116, 124, 113, 109, 143, 132, 128, 151, 140, 136, 142, 131, 127, 136, 125, 121, 113, 102, 96, 121, 112, 105, 130, 121, 116, 136, 129, 123, 104, 96, 93, 86, 78, 75, 93, 83, 82, 53, 45, 43, 61, 53, 51, 105, 101, 98, 107, 108, 103, 116, 118, 113, 168, 167, 162, 158, 155, 150, 117, 106, 104, 130, 119, 117, 135, 125, 123, 125, 117, 114, 107, 102, 98, 123, 118, 114, 131, 128, 123, 114, 111, 106, 115, 114, 109, 126, 125, 120, 148, 147, 142, 180, 179, 174, 114, 111, 106, 123, 120, 115, 119, 114, 110, 190, 185, 181, 155, 147, 144, 123, 115, 112, 124, 115, 110, 134, 123, 119, 140, 131, 126, 148, 139, 134, 135, 126, 121, 134, 125, 120, 166, 157, 152, 181, 172, 167, 143, 136, 130, 118, 111, 105, 121, 114, 108, 150, 143, 137, 165, 160, 154, 166, 161, 155, 165, 160, 154, 162, 157, 151, 146, 141, 137, 152, 147, 143, 107, 102, 98, 103, 98, 94, 167, 162, 158, 171, 166, 162, 136, 131, 127, 150, 145, 141, 137, 132, 128, 135, 130, 126, 154, 149, 145, 166, 161, 157, 157, 152, 148, 155, 150, 146, 153, 148, 144, 137, 132, 126, 126, 119, 111, 136, 127, 120, 146, 137, 130, 144, 135, 128, 131, 122, 115, 121, 112, 105, 128, 119, 112, 141, 132, 125, 172, 165, 159, 168, 161, 155, 171, 164, 158, 161, 154, 148, 131, 126, 122, 116, 111, 107, 123, 118, 114, 133, 128, 124, 154, 147, 141, 151, 144, 138, 162, 155, 149, 162, 155, 149, 144, 137, 131, 149, 142, 136, 167, 160, 154, 169, 162, 156, 144, 137, 131, 143, 136, 130, 137, 130, 124, 126, 119, 113, 116, 109, 103, 109, 102, 96, 106, 99, 93, 106, 99, 93, 123, 114, 109, 119, 110, 105, 123, 114, 109, 132, 123, 118, 132, 123, 118, 128, 119, 114, 142, 133, 128, 165, 156, 151, 138, 129, 124, 143, 134, 129, 142, 133, 128, 131, 122, 117, 123, 114, 109, 130, 121, 116, 148, 139, 134, 161, 152, 147, 149, 141, 138, 138, 130, 127, 128, 120, 117, 127, 119, 116, 116, 108, 105, 94, 86, 83, 98, 90, 87, 126, 118, 115, 102, 94, 91, 112, 104, 101, 130, 122, 119, 136, 128, 125, 129, 121, 118, 131, 123, 120, 134, 126, 123, 127, 119, 116, 151, 143, 140, 133, 125, 122, 125, 117, 114, 107, 99, 96, 78, 70, 67, 82, 74, 71, 116, 109, 103, 135, 128, 122, 156, 149, 143, 150, 143, 137, 146, 139, 133, 149, 142, 136, 159, 152, 144, 161, 154, 146, 147, 140, 132, 129, 122, 114, 103, 96, 88, 96, 89, 81, 106, 99, 91, 130, 123, 115, 139, 132, 124, 128, 121, 113, 125, 118, 110, 134, 127, 119, 163, 156, 148, 168, 161, 153, 172, 165, 157, 170, 163, 155, 163, 156, 148, 158, 151, 143, 156, 149, 141, 157, 150, 142, 147, 140, 134, 157, 150, 144, 170, 163, 157, 177, 170, 164, 178, 171, 165, 177, 170, 164, 177, 170, 164, 179, 172, 166, 173, 166, 160, 177, 170, 164, 184, 177, 171, 192, 185, 179, 198, 191, 185, 199, 192, 186, 196, 189, 183, 192, 185, 179, 198, 193, 189, 198, 193, 189, 199, 194, 190, 200, 195, 191, 200, 196, 193, 202, 198, 195, 202, 198, 195, 203, 199, 196, 206, 202, 199, 207, 203, 200, 206, 205, 203, 208, 207, 205, 209, 208, 206, 211, 210, 208, 212, 211, 209, 213, 212, 210, 215, 214, 212, 216, 215, 213, 217, 217, 217, 220, 220, 220, 223, 224, 226, 228, 229, 231, 230, 233, 238, 232, 235, 240, 234, 239, 243, 235, 240, 244, 238, 241, 248, 240, 243, 250, 241, 244, 249, 242, 245, 250, 244, 245, 250, 243, 244, 249, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 236, 239, 244, 236, 239, 244, 236, 239, 244, 235, 238, 243, 235, 238, 243, 235, 238, 243, 233, 238, 241, 230, 238, 240, 230, 238, 241, 228, 237, 242, 228, 235, 241, 227, 234, 240, 230, 233, 238, 229, 232, 237, 225, 228, 235, 230, 233, 240, 233, 233, 241, 228, 223, 229, 217, 203, 203, 195, 172, 166, 165, 133, 118, 144, 103, 83, 134, 88, 64, 115, 68, 42, 93, 45, 22, 83, 37, 14, 87, 42, 21, 96, 53, 34, 108, 67, 49, 117, 75, 59, 100, 58, 42, 100, 58, 42, 100, 58, 44, 101, 59, 43, 104, 61, 45, 108, 62, 46, 110, 64, 49, 109, 67, 53, 121, 87, 77, 129, 99, 91, 140, 113, 106, 142, 117, 112, 136, 115, 112, 132, 114, 114, 135, 116, 118, 138, 122, 125, 134, 118, 121, 135, 119, 122, 137, 121, 122, 140, 124, 125, 143, 125, 125, 140, 122, 122, 134, 114, 115, 132, 108, 106, 134, 106, 102, 129, 98, 93, 123, 94, 88, 123, 94, 88, 123, 95, 91, 122, 96, 95, 125, 104, 103, 131, 112, 114, 132, 115, 121, 131, 116, 123, 134, 118, 128, 139, 122, 132, 143, 122, 131, 137, 114, 122, 127, 100, 107, 118, 89, 93, 113, 83, 81, 114, 85, 79, 107, 77, 69, 95, 62, 55, 94, 60, 51, 106, 69, 60, 114, 76, 67, 112, 74, 63, 106, 68, 59, 95, 57, 48, 94, 56, 47, 104, 67, 59, 110, 75, 69, 113, 80, 73, 127, 94, 89, 142, 113, 109, 130, 104, 105, 130, 105, 108, 130, 104, 107, 128, 102, 103, 126, 97, 99, 124, 95, 97, 125, 96, 98, 125, 99, 98, 113, 87, 88, 110, 86, 86, 109, 85, 85, 106, 85, 84, 103, 81, 83, 101, 81, 82, 110, 90, 91, 121, 101, 102, 121, 101, 100, 119, 99, 98, 118, 98, 97, 118, 98, 97, 117, 97, 96, 114, 94, 93, 108, 88, 87, 104, 84, 83, 112, 92, 91, 118, 98, 97, 122, 102, 101, 121, 101, 100, 115, 95, 94, 112, 92, 91, 115, 95, 94, 119, 99, 98, 121, 100, 99, 122, 101, 100, 120, 99, 98, 113, 92, 91, 107, 87, 86, 105, 85, 84, 105, 85, 84, 103, 83, 82, 119, 99, 98, 103, 83, 82, 85, 67, 65, 76, 58, 56, 72, 54, 52, 67, 49, 47, 64, 46, 44, 63, 48, 45, 90, 75, 72, 65, 51, 48, 38, 24, 21, 37, 23, 20, 67, 53, 50, 97, 86, 82, 102, 91, 87, 90, 79, 75, 70, 59, 55, 83, 74, 69, 87, 78, 73, 105, 96, 91, 146, 137, 132, 166, 159, 153, 145, 138, 132, 119, 114, 108, 93, 89, 86, 40, 39, 35, 45, 44, 40, 102, 101, 97, 103, 102, 98, 58, 57, 53, 69, 68, 64, 128, 127, 123, 146, 145, 141, 133, 132, 128, 112, 108, 105, 109, 105, 102, 119, 115, 112, 101, 97, 94, 70, 66, 63, 64, 61, 56, 69, 64, 60, 53, 48, 42, 107, 102, 96, 88, 83, 77, 82, 77, 71, 65, 60, 54, 56, 49, 43, 58, 51, 45, 80, 73, 67, 101, 94, 88, 101, 92, 87, 93, 84, 79, 78, 69, 64, 83, 74, 69, 102, 93, 88, 83, 76, 70, 134, 126, 123, 89, 84, 80, 72, 67, 63, 116, 111, 107, 191, 187, 184, 139, 135, 132, 101, 100, 98, 111, 110, 108, 94, 90, 89, 177, 173, 170, 123, 119, 116, 73, 68, 64, 108, 100, 97, 103, 96, 90, 91, 84, 78, 108, 99, 94, 110, 99, 95, 98, 87, 83, 99, 88, 84, 92, 81, 77, 96, 85, 81, 100, 89, 85, 100, 89, 85, 130, 119, 115, 133, 122, 118, 129, 118, 114, 133, 122, 118, 124, 113, 109, 112, 101, 97, 132, 121, 117, 148, 137, 133, 130, 119, 115, 119, 105, 102, 122, 108, 105, 119, 105, 102, 119, 105, 102, 119, 108, 104, 112, 101, 97, 111, 100, 96, 124, 113, 109, 115, 106, 101, 107, 98, 93, 129, 120, 115, 131, 122, 117, 120, 111, 106, 119, 110, 105, 115, 106, 101, 127, 118, 113, 112, 101, 97, 101, 90, 86, 119, 105, 102, 154, 140, 137, 139, 125, 122, 150, 136, 133, 127, 113, 110, 138, 124, 121, 97, 82, 79, 117, 102, 99, 133, 118, 115, 110, 95, 92, 128, 113, 110, 135, 120, 117, 99, 84, 81, 129, 114, 111, 135, 121, 118, 112, 98, 95, 116, 105, 101, 140, 129, 125, 133, 123, 121, 131, 121, 119, 76, 68, 66, 104, 96, 94, 120, 115, 112, 116, 111, 108, 124, 116, 113, 120, 112, 109, 138, 131, 125, 155, 148, 142, 129, 120, 115, 109, 100, 95, 123, 113, 111, 120, 110, 108, 117, 107, 105, 136, 126, 124, 97, 87, 85, 92, 82, 80, 101, 92, 87, 139, 130, 125, 114, 103, 99, 117, 106, 102, 122, 111, 107, 130, 119, 115, 118, 105, 99, 80, 67, 61, 83, 70, 64, 128, 115, 109, 114, 101, 95, 120, 107, 101, 92, 79, 73, 88, 75, 69, 94, 83, 79, 95, 84, 80, 110, 99, 95, 107, 96, 92, 91, 82, 77, 81, 72, 67, 83, 73, 71, 115, 105, 103, 120, 110, 108, 116, 106, 104, 129, 119, 117, 111, 101, 99, 144, 133, 129, 159, 148, 144, 118, 107, 103, 111, 100, 96, 142, 131, 127, 135, 124, 120, 122, 111, 107, 121, 110, 106, 119, 108, 104, 136, 125, 121, 144, 133, 129, 131, 120, 116, 121, 110, 106, 129, 118, 114, 140, 129, 125, 146, 135, 131, 118, 107, 101, 128, 119, 112, 132, 123, 118, 132, 125, 119, 103, 95, 92, 81, 73, 70, 94, 84, 83, 89, 81, 79, 70, 62, 60, 108, 104, 101, 103, 104, 99, 117, 119, 114, 167, 166, 161, 148, 145, 140, 111, 100, 98, 127, 116, 114, 115, 105, 103, 128, 120, 117, 117, 112, 108, 130, 125, 121, 131, 128, 123, 113, 110, 105, 129, 126, 121, 148, 145, 140, 161, 158, 153, 154, 151, 146, 129, 126, 121, 128, 125, 120, 158, 153, 149, 177, 172, 168, 135, 127, 124, 127, 119, 116, 127, 118, 113, 144, 135, 130, 136, 127, 122, 138, 129, 124, 144, 135, 130, 156, 147, 142, 174, 167, 161, 162, 155, 149, 138, 131, 125, 129, 122, 116, 134, 127, 121, 146, 139, 133, 153, 146, 140, 161, 154, 148, 162, 155, 149, 151, 146, 140, 166, 161, 155, 119, 116, 109, 96, 93, 86, 139, 136, 129, 175, 172, 165, 142, 139, 132, 117, 114, 107, 144, 141, 134, 154, 151, 144, 143, 140, 133, 158, 155, 148, 176, 173, 166, 169, 166, 159, 160, 157, 150, 137, 134, 127, 99, 94, 88, 145, 138, 130, 161, 152, 145, 134, 125, 118, 107, 98, 91, 118, 109, 102, 128, 119, 112, 160, 151, 144, 219, 210, 203, 186, 179, 173, 164, 157, 151, 149, 142, 136, 135, 128, 122, 117, 112, 108, 123, 118, 114, 145, 140, 136, 156, 151, 147, 173, 166, 160, 163, 156, 150, 156, 149, 143, 143, 136, 130, 142, 135, 129, 169, 162, 156, 162, 155, 149, 113, 106, 100, 95, 88, 82, 103, 96, 90, 121, 114, 108, 136, 129, 123, 134, 127, 121, 123, 116, 110, 122, 115, 109, 130, 123, 117, 112, 103, 98, 148, 139, 134, 162, 153, 148, 159, 150, 145, 168, 159, 154, 163, 154, 149, 145, 136, 131, 139, 130, 125, 136, 127, 122, 135, 126, 121, 127, 118, 113, 121, 112, 107, 131, 122, 117, 146, 137, 132, 143, 134, 129, 129, 120, 115, 136, 129, 123, 135, 128, 122, 142, 135, 129, 139, 132, 126, 117, 110, 104, 105, 98, 92, 118, 111, 105, 136, 129, 123, 105, 98, 92, 116, 109, 103, 125, 118, 112, 119, 112, 106, 118, 111, 105, 140, 133, 127, 153, 146, 140, 142, 135, 129, 136, 128, 125, 110, 102, 99, 98, 90, 87, 91, 83, 80, 89, 81, 78, 118, 110, 107, 147, 140, 134, 142, 135, 129, 129, 122, 116, 138, 131, 125, 141, 134, 128, 139, 132, 126, 143, 136, 128, 147, 140, 132, 133, 126, 118, 112, 105, 97, 117, 110, 100, 128, 121, 111, 147, 140, 130, 157, 150, 140, 148, 141, 131, 136, 129, 119, 144, 137, 127, 162, 155, 145, 162, 155, 145, 156, 149, 139, 148, 141, 131, 144, 137, 127, 143, 136, 126, 140, 133, 123, 135, 128, 118, 130, 123, 115, 138, 131, 125, 148, 141, 135, 160, 153, 147, 167, 160, 154, 167, 160, 154, 166, 159, 153, 169, 162, 156, 172, 165, 159, 169, 162, 156, 175, 168, 162, 183, 176, 170, 189, 182, 176, 192, 185, 179, 193, 186, 180, 195, 188, 182, 196, 189, 183, 197, 192, 188, 196, 191, 187, 195, 190, 186, 195, 190, 186, 196, 191, 187, 199, 194, 190, 201, 197, 194, 203, 199, 196, 205, 201, 198, 206, 202, 199, 207, 203, 200, 209, 205, 202, 208, 207, 205, 210, 209, 207, 211, 210, 208, 212, 211, 209, 213, 212, 210, 214, 213, 211, 215, 215, 215, 219, 219, 219, 222, 223, 225, 227, 228, 230, 229, 232, 237, 232, 235, 240, 234, 239, 243, 235, 240, 244, 238, 241, 248, 240, 243, 250, 241, 244, 249, 242, 245, 250, 244, 245, 250, 243, 244, 249, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 233, 236, 243, 233, 236, 243, 233, 236, 243, 233, 236, 243, 233, 236, 243, 233, 236, 243, 233, 236, 243, 233, 236, 243, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 236, 239, 244, 236, 239, 244, 235, 238, 243, 235, 238, 243, 234, 239, 243, 231, 239, 241, 229, 239, 241, 229, 238, 243, 228, 237, 242, 228, 235, 241, 229, 234, 240, 230, 233, 238, 230, 233, 238, 229, 232, 239, 232, 235, 242, 233, 233, 241, 226, 221, 227, 213, 201, 201, 197, 176, 171, 178, 146, 133, 163, 122, 104, 128, 80, 58, 118, 66, 42, 102, 50, 28, 92, 41, 20, 85, 37, 15, 84, 37, 17, 90, 45, 24, 98, 53, 34, 94, 49, 30, 95, 50, 31, 96, 51, 32, 98, 53, 32, 100, 55, 34, 105, 59, 36, 108, 61, 41, 106, 63, 46, 125, 89, 77, 132, 102, 94, 144, 115, 109, 145, 120, 116, 136, 116, 115, 132, 114, 114, 134, 118, 119, 138, 124, 124, 141, 125, 126, 140, 124, 124, 141, 123, 123, 142, 124, 124, 145, 125, 124, 144, 124, 123, 141, 120, 119, 141, 115, 114, 147, 117, 109, 141, 107, 97, 132, 98, 89, 127, 94, 85, 123, 92, 87, 122, 94, 90, 125, 101, 99, 129, 109, 110, 133, 114, 118, 136, 119, 127, 143, 126, 134, 146, 126, 135, 141, 118, 126, 132, 105, 112, 122, 91, 97, 114, 84, 86, 117, 87, 85, 101, 72, 66, 96, 65, 60, 108, 75, 68, 116, 81, 75, 114, 77, 71, 110, 73, 65, 112, 75, 67, 86, 47, 40, 93, 56, 48, 95, 58, 52, 93, 58, 52, 108, 75, 70, 132, 101, 96, 146, 115, 110, 142, 114, 111, 131, 106, 109, 134, 109, 113, 136, 111, 115, 136, 111, 114, 133, 107, 110, 129, 103, 106, 127, 101, 104, 126, 100, 101, 130, 104, 107, 114, 89, 92, 101, 76, 79, 97, 75, 77, 96, 74, 77, 98, 78, 80, 114, 94, 96, 132, 113, 115, 128, 108, 109, 124, 106, 104, 120, 100, 101, 115, 97, 95, 112, 92, 93, 106, 88, 86, 100, 80, 81, 95, 77, 75, 104, 84, 85, 102, 84, 82, 105, 85, 86, 111, 93, 91, 119, 99, 100, 118, 100, 98, 111, 91, 92, 104, 84, 83, 115, 95, 94, 111, 90, 89, 114, 93, 92, 119, 99, 98, 114, 94, 93, 104, 84, 83, 106, 86, 85, 117, 97, 96, 114, 94, 93, 110, 92, 90, 111, 93, 91, 118, 100, 98, 116, 98, 96, 100, 82, 80, 80, 62, 60, 65, 50, 47, 75, 61, 58, 75, 61, 58, 61, 47, 44, 43, 29, 26, 47, 33, 30, 73, 59, 56, 91, 80, 76, 94, 83, 79, 69, 58, 54, 88, 77, 73, 86, 77, 72, 78, 69, 64, 92, 83, 78, 114, 105, 100, 139, 130, 125, 164, 157, 151, 153, 150, 145, 95, 94, 90, 42, 41, 37, 37, 36, 32, 70, 69, 65, 100, 99, 95, 92, 91, 87, 62, 61, 57, 98, 97, 93, 146, 145, 141, 167, 163, 160, 133, 129, 126, 102, 98, 95, 98, 94, 91, 99, 95, 92, 93, 90, 85, 102, 97, 91, 49, 44, 38, 99, 94, 88, 102, 97, 91, 106, 101, 95, 70, 65, 59, 54, 47, 41, 65, 58, 52, 86, 79, 73, 79, 72, 66, 100, 91, 86, 117, 108, 103, 75, 66, 61, 61, 52, 47, 95, 86, 81, 84, 75, 70, 113, 105, 102, 124, 119, 115, 99, 94, 90, 69, 64, 60, 173, 169, 166, 179, 175, 172, 105, 104, 102, 92, 91, 89, 76, 72, 71, 147, 143, 142, 160, 156, 153, 89, 85, 82, 82, 77, 73, 123, 115, 112, 105, 98, 92, 84, 77, 71, 105, 96, 91, 122, 111, 107, 124, 113, 109, 96, 85, 81, 94, 83, 79, 98, 87, 83, 90, 79, 75, 115, 104, 100, 148, 137, 133, 137, 126, 122, 141, 130, 126, 132, 121, 117, 106, 95, 91, 114, 103, 99, 138, 127, 123, 138, 127, 123, 122, 108, 105, 121, 107, 104, 115, 101, 98, 118, 104, 101, 126, 115, 111, 124, 113, 109, 119, 108, 104, 126, 115, 111, 113, 104, 99, 115, 106, 101, 124, 115, 110, 120, 111, 106, 122, 113, 108, 113, 104, 99, 105, 96, 91, 142, 133, 128, 115, 104, 100, 96, 85, 81, 113, 99, 96, 156, 142, 139, 137, 123, 120, 143, 129, 126, 114, 100, 97, 125, 111, 108, 98, 83, 80, 104, 89, 86, 124, 109, 106, 110, 95, 92, 127, 112, 109, 131, 116, 113, 92, 77, 74, 118, 103, 100, 137, 123, 120, 107, 93, 90, 109, 98, 94, 140, 129, 125, 136, 126, 124, 135, 127, 124, 70, 62, 60, 95, 87, 85, 130, 125, 122, 127, 122, 119, 127, 119, 116, 114, 106, 103, 134, 127, 121, 157, 150, 144, 132, 123, 118, 111, 102, 97, 114, 104, 102, 116, 106, 104, 112, 102, 100, 133, 123, 121, 91, 81, 79, 88, 78, 76, 93, 84, 79, 134, 125, 120, 103, 92, 88, 122, 111, 107, 127, 116, 112, 123, 112, 108, 112, 99, 93, 86, 73, 67, 91, 78, 72, 131, 118, 112, 124, 111, 105, 119, 106, 100, 100, 87, 81, 94, 81, 75, 99, 88, 84, 101, 90, 86, 104, 93, 89, 110, 99, 95, 99, 90, 85, 93, 84, 79, 98, 88, 86, 119, 109, 107, 110, 100, 98, 115, 105, 103, 141, 131, 129, 112, 102, 100, 143, 132, 128, 158, 147, 143, 119, 108, 104, 117, 106, 102, 146, 135, 131, 125, 114, 110, 111, 100, 96, 126, 115, 111, 114, 103, 99, 133, 122, 118, 154, 143, 139, 133, 122, 118, 99, 88, 84, 102, 91, 87, 126, 115, 111, 142, 131, 127, 116, 105, 99, 134, 125, 118, 141, 132, 127, 139, 132, 126, 111, 103, 100, 82, 74, 71, 97, 87, 86, 116, 108, 106, 84, 76, 74, 116, 112, 109, 105, 106, 101, 119, 121, 116, 164, 163, 158, 136, 133, 128, 99, 88, 86, 117, 106, 104, 98, 88, 86, 121, 113, 110, 109, 104, 100, 117, 112, 108, 124, 119, 115, 113, 110, 105, 129, 126, 121, 139, 136, 131, 160, 157, 152, 128, 125, 120, 156, 153, 148, 129, 126, 121, 191, 186, 182, 152, 147, 143, 125, 117, 114, 136, 128, 125, 135, 126, 121, 146, 137, 132, 119, 110, 105, 130, 121, 116, 161, 152, 147, 167, 158, 153, 165, 158, 152, 146, 139, 133, 148, 141, 135, 151, 144, 138, 149, 142, 136, 136, 129, 123, 133, 126, 120, 154, 147, 141, 164, 157, 151, 151, 144, 138, 122, 117, 111, 84, 81, 74, 127, 124, 117, 168, 165, 158, 135, 132, 125, 133, 130, 123, 143, 140, 133, 100, 97, 90, 144, 141, 134, 139, 136, 129, 160, 157, 150, 171, 168, 161, 155, 152, 145, 154, 151, 144, 155, 152, 145, 138, 133, 127, 143, 136, 128, 105, 96, 89, 110, 101, 94, 127, 118, 111, 131, 122, 115, 170, 161, 154, 195, 186, 179, 161, 152, 145, 167, 160, 154, 151, 144, 138, 133, 126, 120, 117, 110, 104, 122, 117, 113, 157, 152, 148, 169, 164, 160, 144, 139, 135, 133, 126, 120, 110, 103, 97, 125, 118, 112, 153, 146, 140, 151, 144, 138, 141, 134, 128, 119, 112, 106, 84, 77, 71, 95, 88, 82, 119, 112, 106, 145, 138, 132, 153, 146, 140, 144, 137, 131, 133, 126, 120, 129, 122, 116, 130, 123, 117, 163, 154, 149, 159, 150, 145, 141, 132, 127, 147, 138, 133, 163, 154, 149, 134, 125, 120, 110, 101, 96, 134, 125, 120, 131, 122, 117, 110, 101, 96, 99, 90, 85, 115, 106, 101, 139, 130, 125, 146, 137, 132, 136, 127, 122, 126, 117, 112, 131, 124, 118, 133, 126, 120, 133, 126, 120, 121, 114, 108, 123, 116, 110, 148, 141, 135, 144, 137, 131, 103, 96, 90, 131, 124, 118, 122, 115, 109, 121, 114, 108, 125, 118, 112, 135, 128, 122, 154, 147, 141, 159, 152, 146, 144, 137, 131, 127, 119, 116, 107, 99, 96, 112, 104, 101, 117, 109, 106, 105, 97, 94, 117, 109, 106, 142, 135, 129, 144, 137, 131, 139, 132, 126, 116, 109, 103, 123, 116, 110, 156, 149, 143, 152, 145, 137, 120, 113, 105, 124, 117, 109, 160, 153, 145, 149, 142, 132, 149, 142, 132, 147, 140, 130, 143, 136, 126, 143, 136, 126, 146, 139, 129, 149, 142, 132, 149, 142, 132, 148, 141, 131, 143, 136, 126, 137, 130, 120, 133, 126, 116, 132, 125, 115, 133, 126, 116, 134, 127, 117, 135, 128, 118, 151, 144, 138, 156, 149, 143, 160, 153, 147, 158, 151, 145, 156, 149, 143, 158, 151, 145, 166, 159, 153, 174, 167, 161, 169, 162, 156, 175, 168, 162, 182, 175, 169, 186, 179, 173, 186, 179, 173, 189, 182, 176, 195, 188, 182, 201, 194, 188, 197, 192, 188, 195, 190, 186, 193, 188, 184, 192, 187, 183, 193, 188, 184, 197, 192, 188, 200, 196, 193, 203, 199, 196, 205, 201, 198, 206, 202, 199, 207, 203, 200, 208, 204, 201, 208, 207, 205, 209, 208, 206, 211, 210, 208, 211, 210, 208, 212, 211, 209, 213, 212, 210, 215, 215, 215, 218, 218, 218, 222, 223, 225, 227, 228, 230, 229, 232, 237, 231, 234, 239, 234, 239, 243, 235, 240, 244, 238, 241, 248, 240, 243, 250, 241, 244, 249, 242, 245, 250, 244, 245, 250, 243, 244, 249, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 236, 239, 244, 236, 239, 244, 235, 238, 243, 235, 238, 243, 235, 238, 243, 234, 239, 243, 231, 239, 242, 229, 239, 241, 229, 238, 243, 228, 237, 242, 228, 235, 241, 229, 234, 240, 230, 233, 238, 231, 232, 237, 226, 229, 236, 229, 232, 241, 230, 230, 240, 227, 224, 231, 222, 212, 213, 208, 189, 185, 184, 154, 144, 165, 126, 109, 144, 96, 76, 132, 77, 56, 113, 58, 38, 100, 48, 27, 94, 42, 21, 87, 36, 15, 83, 35, 13, 85, 37, 15, 93, 47, 24, 91, 45, 22, 90, 44, 20, 93, 47, 23, 97, 51, 25, 102, 55, 27, 104, 57, 31, 102, 57, 34, 116, 77, 62, 128, 91, 82, 133, 103, 95, 129, 101, 97, 119, 98, 95, 122, 104, 102, 130, 114, 114, 138, 123, 120, 138, 120, 118, 142, 123, 119, 144, 123, 120, 144, 120, 116, 142, 117, 113, 140, 115, 111, 140, 116, 114, 145, 117, 113, 147, 110, 101, 136, 98, 85, 129, 91, 80, 131, 95, 83, 134, 100, 91, 132, 102, 94, 126, 101, 97, 123, 102, 101, 134, 114, 116, 132, 113, 117, 131, 112, 118, 131, 110, 117, 131, 106, 112, 128, 99, 104, 121, 89, 92, 115, 83, 84, 117, 87, 85, 113, 84, 80, 110, 81, 77, 112, 81, 78, 116, 82, 80, 113, 78, 74, 104, 69, 65, 96, 61, 57, 99, 61, 58, 93, 58, 54, 100, 67, 62, 119, 88, 83, 137, 108, 104, 137, 109, 105, 124, 96, 92, 110, 84, 83, 119, 97, 100, 136, 113, 119, 149, 126, 132, 148, 125, 131, 144, 119, 125, 139, 114, 118, 129, 104, 108, 118, 93, 96, 113, 88, 92, 111, 89, 92, 93, 71, 74, 70, 50, 52, 74, 55, 59, 105, 86, 90, 124, 105, 109, 122, 106, 109, 127, 108, 110, 124, 108, 108, 127, 108, 110, 130, 114, 114, 137, 118, 120, 132, 116, 116, 123, 104, 106, 111, 95, 95, 107, 88, 90, 105, 89, 89, 108, 89, 91, 108, 92, 92, 113, 94, 96, 114, 98, 98, 120, 101, 103, 122, 104, 104, 98, 78, 79, 102, 82, 83, 111, 91, 92, 122, 102, 103, 125, 105, 106, 119, 101, 101, 113, 95, 95, 110, 92, 92, 109, 91, 91, 98, 82, 82, 114, 98, 98, 123, 107, 107, 105, 89, 89, 100, 84, 84, 107, 91, 91, 102, 86, 86, 85, 71, 68, 71, 57, 54, 43, 29, 26, 40, 26, 23, 58, 44, 41, 59, 45, 42, 67, 56, 52, 103, 92, 88, 95, 84, 80, 89, 78, 74, 72, 61, 57, 57, 46, 42, 64, 53, 49, 90, 79, 75, 110, 99, 95, 114, 105, 100, 135, 130, 126, 159, 156, 151, 143, 140, 135, 70, 67, 62, 32, 29, 24, 75, 72, 67, 102, 101, 96, 73, 72, 67, 66, 65, 60, 90, 89, 84, 117, 116, 111, 158, 157, 152, 174, 173, 168, 120, 119, 114, 78, 77, 72, 100, 99, 94, 86, 83, 76, 96, 93, 86, 80, 75, 69, 101, 96, 90, 120, 115, 109, 80, 75, 69, 58, 53, 47, 72, 67, 61, 76, 69, 63, 113, 106, 100, 91, 84, 78, 85, 78, 72, 93, 86, 80, 72, 65, 59, 85, 76, 71, 118, 109, 104, 110, 103, 97, 130, 123, 117, 113, 108, 104, 77, 72, 68, 126, 122, 119, 192, 188, 185, 151, 150, 148, 91, 90, 88, 89, 88, 86, 105, 104, 102, 183, 179, 176, 124, 120, 117, 62, 59, 54, 119, 114, 110, 114, 109, 105, 75, 67, 64, 89, 80, 75, 122, 111, 107, 133, 122, 118, 123, 112, 108, 112, 101, 97, 93, 82, 78, 81, 70, 66, 91, 80, 76, 134, 123, 119, 155, 144, 140, 148, 137, 133, 123, 112, 108, 121, 110, 106, 128, 117, 113, 129, 118, 114, 131, 120, 116, 121, 107, 104, 133, 119, 116, 127, 113, 110, 107, 93, 90, 110, 99, 95, 126, 115, 111, 127, 116, 112, 128, 117, 113, 110, 101, 96, 106, 97, 92, 123, 114, 109, 117, 108, 103, 108, 99, 94, 110, 101, 96, 105, 96, 91, 116, 107, 102, 125, 114, 110, 103, 92, 88, 104, 90, 87, 140, 126, 123, 148, 134, 131, 133, 119, 116, 124, 110, 107, 102, 88, 85, 88, 73, 70, 92, 77, 74, 119, 104, 101, 133, 118, 115, 137, 122, 119, 121, 106, 103, 99, 84, 81, 118, 103, 100, 137, 123, 120, 108, 97, 93, 114, 103, 99, 121, 110, 106, 146, 136, 134, 114, 106, 103, 102, 94, 92, 86, 81, 78, 154, 149, 146, 124, 119, 116, 127, 122, 118, 136, 131, 127, 104, 97, 91, 158, 151, 145, 140, 133, 127, 94, 87, 81, 85, 75, 73, 115, 105, 103, 116, 106, 104, 113, 103, 101, 112, 102, 100, 108, 98, 96, 117, 108, 103, 118, 109, 104, 121, 110, 106, 108, 97, 93, 143, 132, 128, 116, 105, 101, 130, 117, 111, 102, 89, 83, 80, 67, 61, 90, 77, 71, 139, 126, 120, 109, 96, 90, 109, 96, 90, 108, 95, 89, 88, 77, 73, 97, 86, 82, 114, 103, 99, 114, 103, 99, 121, 112, 107, 109, 100, 95, 110, 100, 98, 116, 106, 104, 115, 105, 103, 116, 106, 104, 120, 110, 108, 116, 106, 104, 132, 121, 117, 151, 140, 136, 108, 97, 93, 117, 106, 102, 128, 117, 113, 134, 123, 119, 101, 90, 86, 126, 115, 111, 126, 115, 111, 99, 88, 84, 123, 112, 108, 132, 121, 117, 100, 89, 85, 75, 64, 60, 143, 132, 128, 141, 130, 126, 106, 95, 89, 129, 120, 113, 140, 131, 126, 139, 132, 126, 115, 107, 104, 103, 95, 92, 118, 108, 107, 103, 95, 93, 84, 76, 74, 133, 129, 126, 91, 92, 87, 123, 125, 120, 160, 159, 154, 104, 101, 96, 101, 90, 88, 114, 103, 101, 100, 90, 88, 100, 92, 89, 107, 99, 96, 117, 112, 108, 118, 113, 109, 109, 104, 100, 121, 118, 113, 151, 148, 143, 172, 169, 164, 129, 126, 121, 137, 132, 128, 170, 165, 161, 185, 177, 174, 140, 132, 129, 105, 97, 94, 159, 151, 148, 129, 122, 116, 114, 107, 101, 155, 148, 142, 134, 127, 121, 150, 143, 137, 195, 188, 182, 144, 137, 131, 118, 111, 105, 150, 143, 137, 166, 159, 153, 157, 148, 143, 135, 126, 121, 154, 145, 140, 189, 180, 175, 167, 158, 153, 111, 104, 98, 60, 55, 49, 145, 140, 134, 166, 161, 155, 134, 129, 123, 138, 133, 127, 104, 99, 93, 67, 62, 56, 122, 117, 111, 172, 167, 161, 151, 146, 140, 161, 156, 150, 159, 154, 148, 137, 132, 126, 160, 155, 149, 185, 180, 174, 161, 156, 150, 150, 143, 135, 110, 101, 94, 124, 115, 108, 154, 145, 138, 139, 130, 123, 135, 126, 119, 152, 143, 136, 151, 142, 135, 156, 149, 143, 136, 129, 123, 132, 125, 119, 152, 145, 139, 165, 160, 156, 155, 150, 146, 137, 132, 128, 128, 123, 119, 111, 104, 98, 133, 126, 120, 151, 144, 138, 147, 140, 134, 123, 116, 110, 103, 96, 90, 101, 94, 88, 108, 101, 95, 125, 118, 112, 138, 131, 125, 148, 141, 135, 143, 136, 130, 132, 125, 119, 133, 126, 120, 149, 142, 136, 167, 160, 154, 147, 138, 133, 153, 144, 139, 151, 142, 137, 137, 128, 123, 124, 115, 110, 125, 116, 111, 135, 126, 121, 143, 134, 129, 138, 129, 124, 137, 128, 123, 131, 122, 117, 138, 129, 124, 149, 140, 135, 143, 134, 129, 129, 120, 115, 128, 119, 114, 91, 84, 78, 114, 107, 101, 148, 141, 135, 169, 162, 156, 158, 151, 145, 133, 126, 120, 124, 117, 111, 132, 125, 119, 146, 139, 133, 133, 126, 120, 132, 125, 119, 138, 131, 125, 141, 134, 128, 143, 136, 130, 137, 130, 124, 121, 114, 108, 126, 118, 115, 120, 112, 109, 116, 108, 105, 111, 103, 100, 110, 102, 99, 123, 115, 112, 141, 134, 128, 151, 144, 138, 140, 133, 127, 155, 148, 142, 160, 153, 147, 147, 140, 134, 136, 129, 121, 140, 133, 125, 146, 139, 131, 147, 140, 132, 148, 141, 131, 152, 145, 135, 155, 148, 138, 154, 147, 137, 148, 141, 131, 141, 134, 124, 135, 128, 118, 132, 125, 115, 161, 154, 144, 148, 141, 131, 137, 130, 120, 135, 128, 118, 136, 129, 119, 135, 128, 118, 136, 129, 119, 139, 132, 122, 167, 160, 154, 160, 153, 147, 153, 146, 140, 156, 149, 143, 167, 160, 154, 178, 171, 165, 184, 177, 171, 184, 177, 171, 188, 181, 175, 190, 183, 177, 192, 185, 179, 195, 188, 182, 197, 190, 184, 198, 191, 185, 198, 191, 185, 199, 192, 186, 192, 185, 179, 193, 186, 180, 193, 186, 180, 195, 188, 182, 195, 190, 186, 198, 193, 189, 201, 196, 192, 203, 198, 194, 206, 201, 197, 206, 201, 197, 207, 203, 200, 209, 205, 202, 211, 207, 204, 213, 209, 206, 214, 210, 207, 215, 211, 208, 215, 214, 212, 215, 214, 212, 215, 215, 215, 218, 218, 218, 221, 222, 224, 226, 227, 229, 229, 232, 237, 232, 235, 240, 233, 238, 242, 234, 239, 243, 237, 240, 247, 239, 242, 249, 240, 243, 248, 241, 244, 249, 243, 244, 249, 242, 243, 248, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 236, 239, 244, 236, 239, 244, 235, 238, 243, 235, 238, 243, 235, 238, 243, 234, 239, 243, 231, 239, 242, 229, 239, 241, 228, 239, 243, 228, 237, 242, 228, 235, 241, 229, 234, 238, 230, 233, 238, 232, 233, 238, 227, 230, 237, 229, 232, 241, 228, 231, 240, 226, 225, 231, 222, 213, 216, 209, 191, 189, 186, 159, 150, 169, 131, 118, 153, 104, 87, 138, 85, 67, 121, 65, 48, 107, 55, 34, 99, 47, 26, 93, 41, 20, 90, 39, 18, 91, 41, 18, 93, 43, 20, 90, 43, 17, 93, 43, 18, 93, 46, 18, 98, 51, 21, 101, 54, 24, 101, 54, 24, 99, 53, 27, 106, 61, 42, 116, 76, 64, 125, 88, 79, 121, 91, 83, 117, 92, 88, 120, 101, 97, 132, 113, 109, 139, 120, 114, 136, 116, 109, 136, 113, 105, 137, 110, 103, 139, 110, 102, 144, 114, 106, 145, 116, 110, 143, 114, 110, 143, 110, 105, 141, 103, 92, 130, 88, 74, 116, 74, 62, 110, 70, 58, 109, 73, 61, 110, 76, 67, 110, 81, 75, 113, 88, 84, 123, 99, 99, 123, 101, 104, 126, 103, 109, 130, 105, 111, 129, 102, 107, 127, 96, 101, 124, 92, 93, 120, 88, 89, 115, 85, 83, 115, 87, 84, 115, 85, 83, 112, 82, 80, 108, 77, 75, 104, 70, 69, 100, 66, 65, 98, 64, 63, 110, 74, 74, 112, 78, 77, 117, 86, 84, 120, 90, 88, 116, 88, 85, 106, 81, 77, 105, 80, 76, 106, 85, 84, 117, 96, 101, 130, 111, 117, 141, 122, 128, 142, 123, 129, 140, 119, 124, 139, 118, 123, 134, 114, 116, 126, 106, 108, 110, 90, 92, 112, 92, 94, 103, 84, 88, 88, 72, 75, 88, 71, 77, 98, 83, 88, 100, 85, 90, 93, 78, 83, 100, 85, 88, 101, 87, 87, 108, 92, 93, 116, 102, 102, 124, 108, 109, 125, 111, 111, 120, 104, 105, 114, 100, 100, 112, 96, 97, 108, 94, 94, 105, 89, 90, 102, 88, 88, 104, 88, 89, 107, 93, 93, 113, 97, 98, 116, 100, 101, 121, 103, 103, 116, 98, 98, 98, 78, 79, 80, 62, 62, 93, 75, 75, 118, 102, 102, 122, 104, 104, 103, 87, 87, 88, 72, 72, 81, 65, 65, 95, 79, 79, 113, 99, 98, 107, 91, 91, 92, 78, 77, 98, 82, 82, 108, 94, 93, 94, 80, 77, 85, 71, 68, 68, 54, 51, 48, 34, 31, 42, 28, 25, 60, 46, 43, 77, 66, 62, 80, 69, 65, 102, 91, 87, 90, 79, 75, 72, 61, 57, 58, 47, 43, 57, 46, 42, 70, 59, 55, 92, 81, 77, 107, 98, 93, 100, 95, 91, 104, 101, 96, 131, 128, 123, 165, 162, 157, 144, 141, 136, 72, 69, 64, 50, 47, 42, 87, 86, 81, 48, 47, 42, 65, 64, 59, 87, 86, 81, 119, 118, 113, 153, 152, 147, 156, 155, 150, 118, 117, 112, 77, 76, 71, 100, 97, 90, 98, 95, 88, 93, 88, 82, 88, 83, 77, 121, 116, 110, 103, 98, 92, 43, 38, 32, 65, 60, 54, 80, 73, 67, 85, 78, 72, 77, 70, 64, 88, 81, 75, 84, 77, 71, 71, 64, 58, 90, 81, 76, 99, 90, 85, 104, 97, 91, 125, 118, 112, 132, 127, 123, 96, 91, 87, 107, 103, 100, 171, 167, 164, 169, 168, 166, 131, 130, 128, 90, 89, 87, 101, 100, 98, 158, 154, 151, 149, 145, 142, 95, 91, 88, 118, 115, 110, 134, 129, 125, 84, 76, 73, 45, 36, 31, 79, 68, 64, 121, 110, 106, 134, 123, 119, 122, 111, 107, 114, 103, 99, 105, 94, 90, 91, 80, 76, 115, 104, 100, 140, 129, 125, 162, 151, 147, 149, 138, 134, 126, 115, 111, 132, 121, 117, 139, 128, 124, 122, 111, 107, 117, 103, 100, 117, 103, 100, 111, 97, 94, 109, 95, 92, 112, 101, 97, 111, 100, 96, 113, 102, 98, 128, 117, 113, 114, 105, 100, 96, 87, 82, 112, 103, 98, 120, 111, 106, 116, 107, 102, 109, 100, 95, 97, 88, 83, 106, 97, 92, 116, 105, 101, 89, 78, 74, 83, 69, 66, 122, 108, 105, 142, 128, 125, 132, 118, 115, 121, 107, 104, 91, 77, 74, 82, 67, 64, 93, 78, 75, 117, 102, 99, 125, 110, 107, 135, 120, 117, 130, 115, 112, 103, 88, 85, 106, 92, 89, 131, 117, 114, 110, 99, 95, 121, 110, 106, 121, 112, 107, 136, 128, 125, 104, 96, 93, 104, 99, 96, 104, 99, 96, 148, 143, 140, 129, 124, 121, 117, 112, 108, 136, 131, 127, 118, 111, 105, 153, 146, 140, 145, 138, 132, 107, 100, 94, 101, 91, 89, 107, 97, 95, 108, 98, 96, 108, 98, 96, 120, 110, 108, 121, 111, 109, 107, 98, 93, 103, 94, 89, 114, 103, 99, 120, 109, 105, 129, 118, 114, 122, 111, 107, 136, 123, 117, 98, 85, 79, 101, 88, 82, 97, 84, 78, 145, 132, 126, 112, 99, 93, 103, 90, 84, 111, 98, 92, 100, 89, 85, 92, 81, 77, 104, 93, 89, 122, 111, 107, 123, 114, 109, 112, 103, 98, 115, 105, 103, 123, 113, 111, 123, 113, 111, 124, 114, 112, 125, 115, 113, 119, 109, 107, 129, 118, 114, 168, 157, 153, 118, 107, 103, 117, 106, 102, 128, 117, 113, 138, 127, 123, 117, 106, 102, 120, 109, 105, 145, 134, 130, 108, 97, 93, 115, 104, 100, 121, 110, 106, 106, 95, 91, 80, 69, 65, 136, 125, 121, 143, 132, 128, 126, 115, 109, 115, 106, 99, 129, 120, 115, 150, 143, 137, 118, 110, 107, 98, 90, 87, 120, 110, 109, 109, 101, 99, 65, 57, 55, 114, 110, 107, 110, 111, 106, 140, 142, 137, 126, 125, 120, 72, 69, 64, 107, 96, 94, 125, 114, 112, 84, 74, 72, 76, 68, 65, 94, 86, 83, 124, 116, 113, 127, 122, 118, 119, 114, 110, 128, 125, 120, 150, 147, 142, 155, 152, 147, 128, 125, 120, 130, 125, 121, 183, 178, 174, 162, 154, 151, 117, 109, 106, 141, 133, 130, 133, 125, 122, 118, 111, 105, 145, 138, 132, 148, 141, 135, 144, 137, 131, 170, 163, 157, 163, 156, 150, 130, 123, 117, 141, 134, 128, 153, 146, 140, 151, 144, 138, 148, 139, 134, 154, 145, 140, 173, 164, 159, 180, 171, 166, 149, 140, 135, 107, 98, 93, 108, 101, 95, 146, 141, 135, 118, 113, 107, 137, 132, 126, 114, 109, 103, 56, 51, 45, 120, 115, 109, 186, 181, 175, 137, 132, 126, 163, 158, 152, 157, 152, 146, 154, 149, 143, 174, 169, 163, 159, 154, 148, 139, 134, 128, 162, 155, 149, 129, 120, 113, 153, 144, 137, 159, 150, 143, 130, 121, 114, 110, 101, 94, 132, 123, 116, 155, 146, 139, 152, 143, 136, 139, 132, 126, 155, 148, 142, 175, 168, 162, 176, 169, 163, 151, 146, 142, 123, 118, 114, 112, 107, 103, 114, 109, 105, 146, 139, 133, 140, 133, 127, 135, 128, 122, 132, 125, 119, 132, 125, 119, 130, 123, 117, 125, 118, 112, 120, 113, 107, 142, 135, 129, 146, 139, 133, 149, 142, 136, 149, 142, 136, 148, 141, 135, 149, 142, 136, 153, 146, 140, 156, 149, 143, 140, 131, 126, 140, 131, 126, 138, 129, 124, 136, 127, 122, 139, 130, 125, 146, 137, 132, 147, 138, 133, 144, 135, 130, 126, 117, 112, 139, 130, 125, 143, 134, 129, 137, 128, 123, 123, 114, 109, 99, 90, 85, 87, 78, 73, 96, 87, 82, 137, 130, 124, 142, 135, 129, 144, 137, 131, 137, 130, 124, 127, 120, 114, 124, 117, 111, 125, 118, 112, 127, 120, 114, 128, 121, 115, 118, 111, 105, 119, 112, 106, 126, 119, 113, 128, 121, 115, 130, 123, 117, 124, 117, 111, 109, 102, 96, 102, 94, 91, 103, 95, 92, 109, 101, 98, 118, 110, 107, 130, 122, 119, 146, 138, 135, 158, 151, 145, 162, 155, 149, 167, 160, 154, 158, 151, 145, 148, 141, 135, 141, 134, 128, 137, 130, 122, 136, 129, 121, 139, 132, 124, 143, 136, 128, 148, 141, 131, 145, 138, 128, 141, 134, 124, 136, 129, 119, 135, 128, 118, 140, 133, 123, 149, 142, 132, 156, 149, 139, 144, 137, 127, 141, 134, 124, 144, 137, 127, 153, 146, 136, 161, 154, 144, 163, 156, 146, 165, 158, 148, 169, 162, 154, 165, 158, 152, 163, 156, 150, 163, 156, 150, 168, 161, 155, 175, 168, 162, 181, 174, 168, 183, 176, 170, 183, 176, 170, 189, 182, 176, 191, 184, 178, 193, 186, 180, 196, 189, 183, 198, 191, 185, 199, 192, 186, 199, 192, 186, 199, 192, 186, 191, 184, 178, 192, 185, 179, 193, 186, 180, 194, 187, 181, 195, 190, 186, 197, 192, 188, 200, 195, 191, 201, 196, 192, 204, 199, 195, 205, 200, 196, 206, 202, 199, 208, 204, 201, 210, 206, 203, 212, 208, 205, 213, 209, 206, 214, 210, 207, 214, 213, 211, 214, 213, 211, 214, 214, 214, 217, 217, 217, 220, 221, 223, 225, 226, 228, 228, 231, 236, 231, 234, 239, 232, 237, 241, 233, 238, 242, 236, 239, 246, 238, 241, 248, 239, 242, 247, 240, 243, 248, 242, 243, 248, 242, 243, 248, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 236, 239, 244, 236, 239, 244, 235, 238, 243, 235, 238, 243, 235, 238, 243, 234, 239, 243, 231, 238, 244, 230, 239, 244, 229, 238, 245, 228, 237, 244, 228, 235, 241, 230, 235, 239, 230, 233, 238, 232, 233, 238, 227, 230, 237, 228, 232, 241, 228, 232, 243, 226, 226, 234, 221, 216, 220, 211, 197, 194, 190, 167, 159, 174, 140, 128, 164, 118, 103, 149, 98, 81, 129, 76, 60, 116, 63, 45, 107, 54, 36, 100, 48, 27, 98, 46, 25, 99, 47, 25, 93, 41, 17, 92, 42, 15, 94, 43, 16, 97, 48, 18, 101, 52, 22, 103, 54, 22, 102, 53, 21, 100, 51, 21, 98, 50, 28, 110, 63, 47, 117, 77, 65, 118, 84, 74, 119, 90, 84, 126, 103, 97, 137, 114, 108, 143, 120, 112, 147, 120, 109, 139, 111, 99, 135, 103, 90, 137, 103, 91, 144, 108, 96, 146, 109, 100, 140, 103, 97, 133, 96, 88, 136, 94, 82, 129, 85, 72, 122, 78, 65, 117, 75, 63, 110, 70, 58, 102, 65, 56, 98, 65, 58, 98, 69, 65, 121, 93, 92, 125, 99, 100, 128, 103, 106, 127, 101, 104, 122, 93, 97, 115, 85, 87, 112, 80, 81, 110, 79, 77, 107, 79, 78, 111, 85, 84, 117, 89, 88, 116, 86, 86, 111, 81, 81, 110, 78, 79, 114, 82, 83, 120, 88, 89, 136, 102, 103, 142, 110, 111, 150, 120, 120, 150, 122, 121, 138, 112, 111, 131, 107, 105, 137, 116, 113, 149, 129, 128, 150, 134, 137, 157, 142, 149, 163, 148, 153, 162, 147, 152, 162, 146, 149, 163, 147, 150, 162, 146, 149, 159, 143, 146, 155, 139, 142, 157, 141, 144, 159, 144, 147, 160, 148, 150, 159, 147, 151, 153, 142, 146, 142, 133, 138, 136, 125, 129, 133, 121, 123, 136, 124, 126, 143, 128, 131, 145, 133, 135, 148, 133, 136, 144, 132, 134, 142, 127, 130, 138, 126, 128, 123, 108, 111, 118, 106, 108, 115, 100, 103, 108, 96, 98, 107, 92, 95, 104, 92, 94, 107, 92, 95, 107, 93, 93, 93, 77, 77, 111, 95, 95, 120, 102, 102, 108, 92, 92, 105, 89, 89, 114, 100, 99, 115, 99, 99, 104, 90, 89, 90, 76, 75, 79, 65, 64, 75, 61, 60, 87, 76, 74, 97, 83, 82, 85, 74, 72, 96, 82, 81, 123, 112, 110, 116, 105, 101, 106, 95, 91, 103, 92, 88, 74, 63, 59, 33, 22, 18, 38, 27, 23, 61, 50, 46, 53, 42, 38, 96, 85, 81, 95, 84, 80, 79, 68, 64, 52, 41, 37, 42, 31, 27, 57, 46, 42, 80, 69, 65, 91, 82, 77, 117, 109, 106, 97, 92, 88, 89, 84, 80, 113, 108, 104, 146, 141, 137, 141, 138, 133, 107, 104, 99, 80, 77, 72, 78, 75, 70, 73, 70, 65, 83, 82, 77, 93, 92, 87, 95, 94, 89, 119, 118, 113, 148, 147, 142, 152, 151, 146, 113, 110, 103, 97, 94, 87, 103, 100, 93, 81, 78, 71, 110, 105, 99, 110, 105, 99, 55, 50, 44, 109, 104, 98, 89, 84, 78, 66, 61, 55, 76, 69, 63, 95, 88, 82, 67, 60, 54, 59, 52, 46, 93, 86, 80, 95, 88, 82, 92, 85, 77, 114, 107, 99, 146, 141, 135, 118, 113, 107, 93, 90, 85, 141, 138, 133, 175, 174, 170, 176, 175, 171, 96, 95, 93, 91, 90, 88, 120, 119, 117, 160, 159, 155, 124, 123, 119, 106, 105, 101, 140, 136, 133, 112, 107, 103, 59, 50, 45, 56, 45, 41, 89, 78, 74, 118, 107, 103, 108, 97, 93, 105, 94, 90, 114, 103, 99, 108, 97, 93, 109, 98, 94, 106, 95, 91, 140, 129, 125, 155, 144, 140, 128, 117, 113, 125, 114, 110, 133, 122, 118, 113, 102, 98, 124, 110, 107, 109, 95, 92, 100, 86, 83, 119, 105, 102, 126, 115, 111, 108, 97, 93, 110, 99, 95, 133, 122, 118, 116, 107, 102, 86, 77, 72, 103, 94, 89, 124, 115, 110, 126, 117, 112, 117, 108, 103, 100, 91, 86, 106, 97, 92, 112, 101, 97, 83, 72, 68, 62, 51, 47, 103, 92, 88, 133, 122, 118, 127, 116, 112, 117, 103, 100, 81, 67, 64, 79, 65, 62, 90, 76, 73, 110, 96, 93, 114, 100, 97, 134, 119, 116, 141, 126, 123, 107, 92, 89, 94, 80, 77, 134, 120, 117, 112, 101, 97, 120, 111, 106, 118, 109, 104, 131, 123, 120, 103, 95, 92, 109, 104, 101, 114, 109, 106, 139, 135, 132, 136, 132, 129, 104, 99, 95, 134, 129, 125, 136, 131, 125, 143, 138, 132, 149, 142, 136, 123, 116, 110, 142, 132, 130, 116, 106, 104, 109, 99, 97, 96, 86, 84, 112, 102, 100, 129, 119, 117, 112, 103, 98, 127, 118, 113, 104, 93, 89, 124, 113, 109, 113, 102, 98, 121, 110, 106, 132, 119, 113, 94, 81, 75, 115, 102, 96, 103, 90, 84, 130, 117, 111, 118, 105, 99, 98, 85, 79, 100, 87, 81, 105, 94, 90, 100, 89, 85, 108, 97, 93, 127, 116, 112, 125, 116, 111, 114, 105, 100, 118, 108, 106, 128, 118, 116, 129, 119, 117, 129, 119, 117, 130, 120, 118, 123, 113, 111, 113, 102, 98, 174, 163, 159, 121, 110, 106, 114, 103, 99, 129, 118, 114, 140, 129, 125, 141, 130, 126, 119, 108, 104, 155, 144, 140, 126, 115, 111, 121, 110, 106, 121, 110, 106, 128, 117, 113, 98, 87, 83, 127, 116, 112, 136, 125, 121, 145, 134, 128, 102, 93, 86, 111, 102, 97, 153, 146, 140, 122, 114, 111, 91, 83, 80, 117, 107, 106, 115, 107, 105, 58, 50, 48, 97, 93, 90, 127, 128, 123, 159, 161, 156, 106, 105, 100, 59, 56, 51, 121, 110, 108, 133, 122, 120, 108, 98, 96, 84, 74, 72, 93, 85, 82, 120, 112, 109, 120, 115, 111, 123, 118, 114, 145, 140, 136, 162, 157, 153, 142, 137, 133, 113, 108, 104, 148, 143, 139, 176, 171, 167, 126, 118, 115, 119, 111, 108, 153, 143, 141, 120, 112, 109, 121, 114, 108, 149, 144, 138, 133, 128, 122, 159, 154, 148, 178, 171, 165, 141, 134, 128, 141, 134, 128, 158, 151, 145, 150, 141, 136, 139, 130, 125, 144, 135, 130, 166, 157, 152, 178, 169, 164, 163, 154, 149, 140, 129, 125, 126, 117, 112, 154, 147, 141, 140, 133, 127, 88, 81, 75, 111, 104, 98, 140, 133, 127, 156, 149, 143, 167, 160, 154, 86, 79, 73, 131, 124, 118, 149, 142, 136, 168, 161, 155, 174, 167, 161, 171, 164, 158, 166, 159, 153, 156, 149, 143, 146, 139, 133, 131, 122, 115, 158, 149, 142, 140, 131, 124, 103, 94, 87, 112, 103, 96, 142, 133, 126, 150, 141, 134, 148, 139, 132, 171, 164, 158, 174, 167, 161, 175, 168, 162, 168, 161, 155, 151, 146, 142, 136, 131, 127, 128, 123, 119, 126, 121, 117, 140, 133, 127, 141, 134, 128, 142, 135, 129, 141, 134, 128, 139, 132, 126, 138, 131, 125, 137, 130, 124, 137, 130, 124, 156, 149, 143, 159, 152, 146, 161, 154, 148, 160, 153, 147, 152, 145, 139, 142, 135, 129, 132, 125, 119, 126, 119, 113, 139, 130, 125, 145, 136, 131, 149, 140, 135, 152, 143, 138, 153, 144, 139, 151, 142, 137, 140, 131, 126, 127, 118, 113, 135, 126, 121, 144, 135, 130, 135, 126, 121, 108, 99, 94, 82, 73, 68, 72, 63, 58, 98, 89, 84, 138, 129, 124, 145, 138, 132, 143, 136, 130, 128, 121, 115, 109, 102, 96, 109, 102, 96, 124, 117, 111, 130, 123, 117, 123, 116, 110, 110, 103, 97, 109, 102, 96, 121, 114, 108, 132, 125, 119, 130, 123, 117, 127, 120, 114, 121, 114, 108, 107, 100, 94, 120, 112, 109, 129, 121, 118, 137, 129, 126, 146, 138, 135, 156, 148, 145, 163, 155, 152, 161, 154, 148, 156, 149, 143, 167, 160, 154, 144, 137, 131, 127, 120, 114, 128, 121, 115, 128, 121, 113, 120, 113, 105, 117, 110, 102, 122, 115, 107, 126, 122, 113, 128, 124, 115, 131, 127, 118, 132, 128, 119, 133, 129, 120, 135, 131, 122, 139, 135, 126, 142, 138, 129, 132, 128, 119, 136, 132, 123, 147, 143, 134, 159, 155, 146, 163, 159, 150, 162, 158, 149, 163, 159, 150, 166, 162, 153, 164, 157, 151, 169, 162, 156, 177, 170, 164, 182, 175, 169, 184, 177, 171, 184, 177, 171, 183, 176, 170, 183, 176, 170, 188, 181, 175, 189, 182, 176, 191, 184, 178, 193, 186, 180, 195, 188, 182, 196, 189, 183, 196, 189, 183, 196, 189, 183, 191, 184, 178, 191, 184, 178, 193, 186, 180, 195, 188, 182, 197, 190, 184, 199, 192, 186, 199, 194, 190, 200, 195, 191, 204, 199, 195, 204, 199, 195, 206, 201, 197, 208, 203, 199, 209, 205, 202, 211, 207, 204, 212, 208, 205, 213, 209, 206, 213, 212, 210, 213, 212, 210, 213, 213, 213, 215, 215, 215, 218, 219, 221, 223, 224, 226, 225, 228, 233, 228, 231, 236, 230, 235, 239, 232, 237, 241, 235, 238, 245, 237, 240, 247, 238, 241, 246, 239, 242, 247, 241, 242, 247, 241, 242, 247, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 236, 239, 244, 236, 239, 244, 235, 238, 243, 235, 238, 243, 235, 238, 243, 234, 239, 243, 231, 238, 244, 230, 239, 244, 229, 238, 245, 229, 238, 245, 229, 236, 242, 230, 235, 239, 231, 235, 238, 230, 233, 238, 227, 232, 238, 227, 234, 242, 226, 233, 243, 224, 228, 237, 221, 221, 223, 213, 205, 202, 194, 177, 169, 180, 152, 140, 173, 131, 117, 159, 110, 95, 136, 87, 70, 123, 72, 55, 113, 62, 43, 106, 54, 33, 104, 52, 31, 105, 53, 31, 96, 44, 20, 97, 46, 19, 98, 47, 20, 102, 51, 22, 105, 56, 26, 106, 57, 27, 104, 55, 23, 102, 53, 23, 105, 53, 32, 114, 65, 48, 122, 78, 65, 124, 87, 78, 127, 97, 89, 134, 109, 102, 142, 119, 111, 147, 123, 113, 143, 115, 103, 139, 107, 92, 136, 100, 84, 136, 97, 82, 140, 100, 88, 141, 101, 91, 137, 97, 89, 132, 92, 84, 121, 78, 69, 118, 74, 63, 115, 71, 60, 113, 71, 59, 108, 66, 54, 100, 62, 51, 101, 64, 56, 104, 71, 64, 108, 78, 76, 117, 89, 88, 128, 102, 103, 133, 107, 108, 133, 104, 106, 131, 101, 103, 134, 102, 103, 136, 106, 106, 132, 104, 103, 133, 107, 106, 138, 110, 109, 138, 110, 109, 138, 108, 110, 140, 110, 112, 146, 114, 117, 151, 119, 122, 142, 110, 113, 142, 112, 114, 144, 114, 116, 141, 115, 116, 134, 110, 108, 125, 104, 101, 125, 106, 102, 131, 113, 111, 137, 122, 125, 136, 124, 128, 135, 123, 127, 133, 118, 121, 132, 117, 120, 132, 118, 118, 133, 119, 119, 133, 119, 119, 128, 114, 114, 126, 112, 112, 131, 117, 117, 139, 127, 129, 137, 127, 128, 122, 113, 116, 109, 100, 103, 105, 96, 99, 115, 103, 105, 121, 109, 109, 132, 117, 120, 136, 124, 124, 141, 126, 129, 142, 130, 130, 146, 131, 134, 147, 135, 135, 168, 153, 156, 163, 151, 151, 159, 144, 147, 149, 137, 137, 141, 126, 129, 128, 116, 116, 122, 107, 110, 117, 103, 103, 115, 101, 101, 111, 97, 96, 110, 94, 94, 106, 92, 91, 92, 78, 77, 79, 65, 64, 85, 71, 70, 99, 88, 86, 109, 95, 94, 100, 89, 87, 80, 69, 67, 78, 68, 66, 97, 86, 84, 89, 79, 77, 83, 72, 70, 101, 90, 88, 103, 92, 90, 99, 88, 84, 106, 95, 91, 96, 85, 81, 58, 47, 43, 41, 30, 26, 57, 46, 42, 71, 60, 56, 74, 63, 59, 94, 83, 79, 86, 75, 71, 49, 38, 34, 36, 25, 21, 60, 49, 45, 80, 69, 65, 78, 69, 64, 99, 91, 88, 104, 99, 95, 104, 96, 93, 69, 64, 60, 58, 53, 49, 114, 109, 105, 159, 154, 150, 143, 140, 135, 106, 103, 98, 69, 66, 61, 70, 67, 62, 100, 99, 94, 91, 90, 85, 64, 63, 58, 90, 89, 84, 146, 145, 140, 163, 160, 153, 140, 137, 130, 110, 107, 100, 66, 63, 56, 90, 85, 79, 124, 119, 113, 94, 89, 83, 83, 78, 72, 103, 98, 92, 82, 77, 71, 95, 88, 82, 102, 95, 89, 62, 55, 49, 47, 40, 34, 84, 77, 71, 109, 102, 96, 83, 76, 68, 102, 95, 87, 141, 134, 128, 131, 126, 120, 108, 105, 100, 122, 119, 114, 151, 150, 146, 191, 190, 186, 119, 118, 116, 85, 84, 82, 91, 90, 88, 142, 141, 139, 142, 141, 137, 100, 99, 95, 108, 104, 101, 142, 137, 133, 118, 108, 106, 78, 67, 63, 70, 59, 55, 94, 83, 79, 97, 86, 82, 83, 72, 68, 89, 78, 74, 107, 96, 92, 124, 113, 109, 88, 77, 73, 100, 89, 85, 135, 124, 120, 132, 121, 117, 122, 111, 107, 125, 114, 110, 123, 112, 108, 131, 117, 114, 110, 96, 93, 92, 78, 75, 120, 106, 103, 136, 125, 121, 114, 103, 99, 113, 102, 98, 127, 116, 112, 116, 107, 102, 89, 80, 75, 108, 99, 94, 124, 115, 110, 126, 117, 112, 128, 119, 114, 117, 108, 103, 116, 107, 102, 115, 104, 100, 95, 84, 80, 65, 54, 50, 99, 88, 84, 126, 115, 111, 115, 104, 100, 111, 97, 94, 76, 62, 59, 86, 72, 69, 84, 70, 67, 97, 83, 80, 109, 95, 92, 140, 125, 122, 147, 132, 129, 109, 94, 91, 92, 78, 75, 140, 129, 125, 112, 101, 97, 114, 105, 100, 114, 105, 100, 135, 127, 124, 110, 102, 99, 111, 106, 103, 110, 105, 102, 133, 129, 126, 146, 142, 139, 99, 94, 90, 130, 125, 121, 151, 146, 140, 135, 130, 124, 150, 143, 137, 131, 124, 118, 153, 143, 141, 120, 110, 108, 118, 108, 106, 97, 87, 85, 106, 96, 94, 125, 115, 113, 113, 104, 99, 149, 140, 135, 103, 92, 88, 114, 103, 99, 110, 99, 95, 108, 97, 93, 114, 101, 95, 97, 84, 78, 102, 89, 83, 104, 91, 85, 99, 86, 80, 124, 111, 105, 95, 82, 76, 76, 63, 57, 97, 86, 82, 113, 102, 98, 121, 110, 106, 123, 112, 108, 122, 113, 108, 112, 103, 98, 116, 106, 104, 124, 114, 112, 123, 113, 111, 125, 115, 113, 128, 118, 116, 125, 115, 113, 96, 85, 81, 162, 151, 147, 115, 104, 100, 112, 101, 97, 133, 122, 118, 138, 127, 123, 157, 146, 142, 129, 118, 114, 143, 132, 128, 144, 133, 129, 145, 134, 130, 132, 121, 117, 152, 141, 137, 122, 111, 107, 121, 110, 106, 121, 110, 106, 145, 134, 128, 108, 99, 92, 99, 90, 85, 137, 130, 124, 130, 122, 119, 95, 87, 84, 108, 98, 97, 119, 111, 109, 69, 61, 59, 94, 90, 87, 127, 128, 123, 165, 167, 162, 119, 118, 113, 79, 76, 71, 128, 117, 115, 128, 117, 115, 114, 103, 101, 93, 83, 81, 102, 94, 91, 116, 108, 105, 110, 105, 101, 125, 120, 116, 152, 147, 143, 156, 151, 147, 137, 132, 128, 107, 102, 98, 179, 174, 170, 142, 137, 133, 103, 95, 92, 144, 136, 133, 128, 118, 116, 138, 130, 127, 151, 144, 138, 136, 131, 125, 138, 133, 127, 168, 163, 157, 160, 153, 147, 142, 135, 129, 158, 151, 145, 147, 140, 134, 140, 131, 126, 141, 132, 127, 150, 141, 136, 159, 150, 145, 158, 149, 144, 151, 142, 137, 151, 140, 136, 156, 145, 141, 151, 142, 137, 96, 89, 83, 128, 121, 115, 157, 150, 144, 161, 154, 148, 161, 154, 148, 119, 112, 106, 98, 91, 85, 144, 137, 131, 152, 145, 139, 169, 162, 156, 166, 159, 153, 156, 149, 143, 174, 167, 161, 178, 171, 165, 145, 138, 132, 155, 146, 139, 137, 128, 121, 118, 109, 102, 129, 120, 113, 154, 145, 138, 160, 151, 144, 161, 152, 145, 175, 166, 159, 190, 183, 177, 168, 161, 155, 150, 143, 137, 150, 143, 137, 152, 147, 143, 148, 143, 139, 143, 138, 134, 142, 137, 133, 153, 146, 140, 145, 138, 132, 133, 126, 120, 124, 117, 111, 124, 117, 111, 135, 128, 122, 151, 144, 138, 162, 155, 149, 133, 126, 120, 146, 139, 133, 159, 152, 146, 160, 153, 147, 150, 143, 137, 140, 133, 127, 138, 131, 125, 140, 133, 127, 150, 141, 136, 158, 149, 144, 161, 152, 147, 153, 144, 139, 142, 133, 128, 137, 128, 123, 136, 127, 122, 135, 126, 121, 169, 160, 155, 133, 124, 119, 90, 81, 76, 85, 76, 71, 117, 108, 103, 138, 129, 124, 141, 132, 127, 144, 135, 130, 132, 125, 119, 132, 125, 119, 127, 120, 114, 122, 115, 109, 125, 118, 112, 132, 125, 119, 129, 122, 116, 119, 112, 106, 95, 88, 82, 105, 98, 92, 126, 119, 113, 135, 128, 122, 122, 115, 109, 113, 106, 100, 110, 103, 97, 102, 95, 89, 126, 118, 115, 142, 134, 131, 147, 139, 136, 142, 134, 131, 141, 133, 130, 135, 127, 124, 124, 117, 111, 119, 112, 106, 131, 124, 118, 122, 115, 109, 117, 110, 104, 117, 110, 104, 114, 107, 99, 105, 98, 90, 101, 94, 86, 104, 97, 89, 119, 115, 106, 126, 122, 113, 135, 131, 122, 142, 138, 129, 144, 140, 131, 143, 139, 130, 142, 138, 129, 142, 138, 129, 164, 160, 151, 165, 161, 152, 169, 165, 156, 171, 167, 158, 165, 161, 152, 157, 153, 144, 156, 152, 143, 160, 156, 147, 166, 159, 153, 175, 168, 162, 185, 178, 172, 188, 181, 175, 185, 178, 172, 183, 176, 170, 184, 177, 171, 186, 179, 173, 185, 178, 172, 186, 179, 173, 188, 181, 175, 190, 183, 177, 191, 184, 178, 192, 185, 179, 192, 185, 179, 192, 185, 179, 192, 185, 179, 193, 186, 180, 195, 188, 182, 197, 190, 184, 199, 192, 186, 200, 193, 187, 199, 194, 190, 199, 194, 190, 205, 200, 196, 205, 200, 196, 207, 202, 198, 209, 204, 200, 210, 206, 203, 212, 208, 205, 213, 209, 206, 214, 210, 207, 212, 211, 209, 212, 211, 209, 212, 212, 212, 213, 213, 213, 216, 217, 219, 220, 221, 223, 223, 226, 231, 226, 229, 234, 228, 233, 237, 230, 235, 239, 233, 236, 243, 236, 239, 246, 237, 240, 245, 238, 241, 246, 241, 242, 247, 241, 242, 247, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 236, 239, 244, 236, 239, 244, 235, 238, 243, 235, 238, 243, 235, 238, 243, 234, 239, 243, 232, 239, 245, 231, 238, 246, 230, 239, 246, 229, 238, 245, 229, 236, 242, 231, 236, 240, 231, 235, 238, 231, 234, 239, 228, 233, 239, 227, 234, 242, 225, 234, 243, 223, 230, 238, 223, 224, 228, 216, 212, 209, 201, 188, 180, 188, 164, 152, 179, 142, 126, 165, 119, 103, 142, 95, 77, 125, 78, 60, 116, 68, 48, 110, 59, 38, 108, 57, 36, 110, 60, 37, 104, 52, 28, 104, 52, 28, 104, 52, 28, 107, 56, 29, 111, 60, 33, 112, 61, 34, 110, 60, 33, 108, 58, 33, 116, 64, 43, 124, 73, 56, 127, 83, 70, 129, 92, 83, 132, 103, 97, 139, 114, 109, 143, 120, 114, 142, 119, 111, 127, 99, 87, 129, 97, 82, 132, 95, 79, 132, 90, 76, 130, 88, 76, 128, 88, 78, 131, 91, 83, 134, 93, 87, 127, 86, 80, 121, 78, 71, 111, 68, 61, 103, 60, 51, 95, 52, 43, 89, 49, 39, 93, 55, 46, 98, 64, 55, 119, 88, 85, 130, 100, 98, 142, 114, 113, 147, 121, 122, 145, 119, 120, 145, 116, 118, 147, 118, 120, 150, 122, 121, 137, 111, 110, 133, 107, 106, 130, 102, 101, 129, 99, 99, 131, 99, 102, 132, 100, 103, 131, 96, 102, 129, 94, 100, 116, 84, 89, 113, 82, 87, 112, 82, 84, 108, 82, 83, 104, 80, 78, 102, 81, 78, 111, 92, 88, 122, 104, 102, 147, 131, 132, 142, 127, 130, 138, 123, 126, 138, 122, 123, 138, 122, 123, 139, 123, 123, 140, 124, 124, 142, 126, 126, 136, 120, 120, 130, 116, 115, 136, 122, 121, 146, 134, 134, 141, 129, 129, 119, 109, 110, 101, 91, 92, 97, 87, 88, 90, 76, 76, 95, 81, 80, 102, 86, 87, 106, 92, 91, 109, 93, 94, 111, 97, 96, 116, 100, 101, 118, 104, 103, 117, 101, 102, 118, 104, 103, 123, 107, 108, 130, 116, 115, 141, 125, 126, 151, 137, 136, 162, 146, 147, 167, 153, 153, 165, 151, 151, 135, 123, 123, 116, 102, 102, 116, 104, 104, 117, 105, 105, 104, 92, 92, 91, 79, 79, 86, 76, 75, 93, 81, 81, 100, 90, 89, 85, 75, 74, 79, 71, 69, 106, 96, 95, 111, 103, 101, 90, 80, 79, 78, 68, 66, 96, 86, 84, 103, 93, 91, 98, 88, 86, 92, 82, 80, 88, 78, 76, 68, 58, 56, 54, 44, 42, 64, 54, 52, 60, 49, 47, 75, 64, 62, 76, 65, 63, 60, 49, 47, 53, 42, 40, 66, 55, 53, 80, 69, 67, 85, 74, 72, 82, 72, 70, 78, 70, 67, 97, 87, 85, 112, 104, 101, 91, 83, 80, 68, 63, 59, 107, 102, 98, 171, 166, 162, 167, 162, 158, 113, 110, 105, 71, 68, 63, 90, 87, 82, 109, 108, 103, 69, 68, 63, 50, 49, 44, 89, 88, 83, 121, 118, 113, 170, 167, 162, 160, 157, 152, 110, 107, 102, 63, 60, 55, 82, 79, 74, 122, 117, 113, 82, 77, 73, 110, 105, 101, 105, 100, 96, 107, 102, 98, 102, 97, 93, 82, 74, 71, 55, 47, 44, 63, 55, 52, 103, 96, 90, 83, 74, 67, 98, 91, 83, 123, 116, 108, 134, 129, 123, 142, 139, 134, 124, 121, 116, 116, 115, 111, 172, 171, 167, 161, 161, 159, 100, 100, 98, 85, 85, 83, 110, 110, 108, 158, 157, 155, 121, 120, 118, 60, 59, 55, 130, 127, 122, 141, 131, 129, 120, 109, 105, 84, 73, 69, 86, 75, 71, 110, 99, 95, 93, 82, 78, 69, 58, 54, 83, 72, 68, 122, 111, 107, 103, 92, 88, 95, 84, 80, 113, 102, 98, 133, 122, 118, 131, 120, 116, 128, 117, 113, 137, 126, 122, 131, 117, 114, 114, 100, 97, 84, 70, 67, 110, 96, 93, 132, 121, 117, 117, 106, 102, 114, 103, 99, 108, 97, 93, 121, 112, 107, 102, 93, 88, 118, 109, 104, 116, 107, 102, 109, 100, 95, 128, 119, 114, 127, 118, 113, 115, 106, 101, 119, 110, 105, 115, 106, 101, 79, 70, 65, 102, 93, 88, 114, 105, 100, 94, 85, 80, 100, 89, 85, 75, 64, 60, 100, 89, 85, 77, 66, 62, 81, 70, 66, 105, 94, 90, 145, 131, 128, 149, 135, 132, 110, 96, 93, 101, 87, 84, 138, 127, 123, 114, 103, 99, 118, 109, 104, 117, 108, 103, 135, 127, 124, 107, 99, 96, 110, 105, 102, 110, 105, 102, 126, 122, 119, 150, 146, 143, 104, 101, 96, 121, 118, 113, 156, 151, 145, 133, 128, 122, 147, 140, 134, 127, 120, 114, 126, 116, 114, 108, 98, 96, 117, 107, 105, 109, 99, 97, 118, 108, 106, 124, 114, 112, 104, 95, 90, 129, 120, 115, 116, 105, 101, 106, 95, 91, 123, 112, 108, 97, 86, 82, 93, 80, 74, 109, 96, 90, 79, 66, 60, 105, 92, 86, 89, 76, 70, 122, 109, 103, 85, 72, 66, 67, 54, 48, 93, 82, 78, 108, 97, 93, 118, 107, 103, 116, 105, 101, 117, 108, 103, 109, 100, 95, 113, 103, 101, 117, 107, 105, 111, 101, 99, 112, 102, 100, 122, 112, 110, 124, 114, 112, 98, 87, 83, 148, 137, 133, 118, 107, 103, 118, 107, 103, 141, 130, 126, 133, 122, 118, 158, 147, 143, 141, 130, 126, 126, 115, 111, 154, 143, 139, 167, 156, 152, 135, 124, 120, 156, 145, 141, 136, 125, 121, 121, 110, 106, 113, 102, 98, 135, 124, 118, 131, 122, 115, 100, 91, 86, 116, 109, 103, 142, 134, 131, 112, 104, 101, 102, 92, 91, 121, 113, 111, 72, 64, 62, 97, 93, 90, 119, 120, 115, 155, 157, 152, 134, 133, 128, 93, 90, 85, 113, 102, 100, 114, 103, 101, 78, 67, 65, 86, 76, 74, 107, 99, 96, 117, 109, 106, 115, 107, 104, 132, 124, 121, 143, 138, 134, 130, 125, 121, 131, 126, 122, 140, 135, 131, 175, 167, 164, 115, 107, 104, 111, 103, 100, 144, 136, 133, 115, 105, 103, 159, 151, 148, 167, 160, 154, 142, 137, 131, 160, 155, 149, 151, 146, 140, 133, 128, 122, 149, 144, 138, 150, 143, 137, 140, 133, 127, 138, 129, 124, 153, 144, 139, 155, 146, 141, 142, 133, 128, 141, 130, 126, 153, 142, 138, 157, 146, 142, 151, 140, 136, 123, 114, 107, 112, 103, 96, 160, 151, 144, 152, 143, 136, 128, 119, 112, 133, 124, 117, 133, 124, 117, 177, 168, 161, 152, 143, 136, 171, 162, 155, 144, 135, 128, 133, 124, 117, 166, 157, 150, 161, 152, 145, 138, 129, 122, 154, 145, 138, 136, 127, 120, 118, 109, 102, 126, 117, 110, 149, 140, 133, 155, 146, 139, 156, 147, 140, 165, 156, 149, 170, 161, 154, 147, 140, 134, 137, 130, 124, 138, 131, 125, 145, 138, 132, 134, 129, 125, 116, 111, 107, 123, 118, 114, 145, 140, 136, 151, 144, 138, 138, 131, 125, 131, 124, 118, 142, 135, 129, 162, 155, 149, 168, 161, 155, 153, 146, 140, 135, 128, 122, 141, 134, 128, 144, 137, 131, 145, 138, 132, 141, 134, 128, 136, 129, 123, 137, 130, 124, 145, 138, 132, 153, 146, 140, 150, 141, 136, 152, 143, 138, 147, 138, 133, 135, 126, 121, 130, 121, 116, 135, 126, 121, 145, 136, 131, 151, 142, 137, 129, 120, 115, 125, 116, 111, 119, 110, 105, 127, 118, 113, 144, 135, 130, 142, 133, 128, 132, 123, 118, 132, 123, 118, 143, 136, 128, 139, 132, 124, 140, 133, 125, 143, 136, 128, 139, 132, 124, 127, 120, 112, 121, 114, 106, 123, 116, 108, 123, 116, 108, 131, 124, 116, 145, 138, 130, 140, 133, 125, 115, 108, 100, 104, 97, 89, 110, 103, 95, 113, 106, 100, 110, 102, 99, 134, 126, 123, 137, 129, 126, 122, 114, 111, 117, 109, 106, 114, 106, 103, 110, 103, 97, 115, 108, 102, 112, 105, 99, 126, 119, 113, 132, 125, 119, 122, 115, 109, 113, 106, 98, 115, 108, 100, 123, 116, 108, 127, 120, 112, 143, 138, 132, 145, 140, 134, 148, 143, 137, 150, 145, 139, 153, 148, 142, 158, 153, 147, 165, 160, 154, 171, 166, 160, 171, 166, 160, 167, 162, 156, 163, 158, 152, 158, 153, 147, 150, 145, 139, 145, 140, 134, 149, 144, 138, 158, 153, 147, 169, 162, 156, 178, 171, 165, 186, 179, 173, 187, 180, 174, 182, 175, 169, 180, 173, 167, 185, 178, 172, 191, 184, 178, 186, 179, 173, 187, 180, 174, 189, 182, 176, 191, 184, 178, 192, 185, 179, 192, 185, 179, 192, 185, 179, 192, 185, 179, 194, 187, 181, 195, 188, 182, 198, 191, 185, 200, 193, 187, 202, 195, 189, 202, 195, 189, 202, 195, 189, 201, 194, 188, 206, 201, 197, 207, 202, 198, 208, 203, 199, 210, 205, 201, 211, 207, 204, 213, 209, 206, 215, 211, 208, 216, 212, 209, 212, 211, 209, 212, 211, 209, 211, 211, 211, 212, 212, 212, 215, 216, 218, 219, 220, 222, 221, 224, 229, 223, 226, 231, 227, 232, 236, 229, 234, 238, 232, 235, 242, 235, 238, 245, 237, 240, 245, 239, 242, 247, 241, 242, 247, 241, 242, 247, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 236, 239, 244, 236, 239, 244, 235, 238, 243, 235, 238, 243, 235, 238, 243, 234, 239, 243, 234, 238, 247, 232, 239, 247, 230, 239, 246, 230, 239, 244, 232, 237, 243, 231, 236, 240, 231, 235, 238, 230, 235, 239, 227, 234, 240, 227, 236, 243, 225, 235, 244, 223, 232, 241, 223, 228, 232, 220, 219, 217, 206, 197, 190, 196, 177, 163, 184, 148, 132, 169, 126, 107, 144, 101, 82, 129, 84, 63, 119, 72, 52, 113, 65, 43, 112, 64, 41, 116, 66, 43, 114, 62, 38, 111, 59, 35, 110, 58, 34, 111, 59, 37, 114, 62, 40, 117, 65, 43, 116, 66, 43, 116, 65, 44, 125, 72, 56, 128, 79, 65, 129, 86, 77, 128, 93, 87, 132, 104, 101, 135, 114, 111, 134, 115, 111, 130, 110, 103, 127, 100, 89, 131, 99, 86, 131, 93, 80, 124, 85, 70, 115, 75, 65, 112, 72, 64, 113, 74, 67, 117, 78, 73, 92, 52, 50, 96, 55, 51, 107, 66, 60, 123, 80, 73, 131, 88, 81, 130, 90, 80, 130, 90, 82, 130, 93, 85, 125, 92, 87, 130, 101, 97, 139, 111, 108, 141, 115, 114, 138, 112, 113, 132, 106, 107, 128, 102, 103, 127, 101, 102, 114, 88, 87, 111, 83, 82, 107, 77, 77, 108, 78, 78, 113, 81, 84, 115, 83, 86, 112, 77, 83, 106, 71, 77, 110, 75, 81, 109, 77, 80, 108, 78, 80, 103, 77, 76, 99, 75, 73, 106, 85, 82, 130, 111, 107, 155, 135, 134, 131, 113, 113, 125, 106, 108, 124, 105, 107, 129, 111, 111, 133, 115, 115, 134, 114, 113, 136, 116, 115, 139, 120, 116, 137, 117, 116, 136, 118, 116, 146, 128, 126, 158, 142, 142, 158, 142, 142, 140, 126, 126, 123, 109, 109, 118, 104, 104, 116, 100, 100, 115, 100, 97, 114, 98, 98, 112, 97, 94, 112, 96, 96, 111, 96, 93, 111, 95, 95, 111, 96, 93, 103, 87, 87, 97, 82, 79, 88, 72, 72, 83, 68, 65, 86, 70, 70, 97, 82, 79, 110, 94, 94, 118, 102, 102, 133, 121, 121, 138, 126, 126, 139, 127, 127, 138, 126, 126, 141, 129, 129, 145, 135, 134, 139, 129, 128, 129, 119, 118, 114, 104, 103, 118, 110, 108, 98, 90, 88, 77, 69, 67, 91, 83, 81, 109, 101, 99, 96, 88, 86, 73, 65, 63, 105, 95, 93, 121, 111, 109, 99, 89, 87, 77, 67, 65, 97, 87, 85, 96, 86, 84, 59, 49, 47, 34, 24, 22, 60, 49, 47, 53, 42, 40, 58, 47, 45, 73, 62, 60, 76, 65, 63, 70, 59, 57, 78, 67, 65, 96, 85, 83, 91, 81, 79, 94, 84, 82, 75, 65, 63, 88, 78, 76, 129, 121, 118, 115, 107, 104, 89, 81, 78, 108, 103, 99, 159, 154, 150, 173, 168, 164, 142, 139, 134, 106, 103, 98, 98, 97, 92, 75, 74, 69, 56, 55, 50, 76, 75, 70, 78, 75, 70, 128, 125, 120, 149, 146, 141, 171, 168, 163, 102, 99, 94, 44, 41, 36, 106, 101, 97, 117, 112, 108, 107, 102, 98, 112, 107, 103, 105, 100, 96, 98, 93, 89, 108, 100, 97, 79, 71, 68, 49, 41, 38, 83, 75, 72, 86, 77, 70, 101, 92, 85, 111, 104, 96, 127, 123, 114, 162, 157, 153, 138, 135, 130, 97, 96, 92, 134, 133, 129, 188, 188, 186, 136, 136, 134, 103, 103, 101, 89, 89, 87, 161, 160, 158, 155, 154, 152, 54, 53, 49, 93, 89, 86, 133, 123, 121, 147, 136, 132, 104, 93, 89, 74, 63, 59, 107, 96, 92, 113, 102, 98, 86, 75, 71, 87, 76, 72, 92, 81, 77, 115, 104, 100, 112, 101, 97, 103, 92, 88, 120, 109, 105, 134, 123, 119, 130, 119, 115, 128, 117, 113, 137, 123, 120, 129, 115, 112, 92, 78, 75, 111, 97, 94, 130, 119, 115, 116, 105, 101, 118, 107, 103, 104, 93, 89, 129, 120, 115, 109, 100, 95, 119, 110, 105, 105, 96, 91, 92, 83, 78, 119, 110, 105, 122, 113, 108, 103, 94, 89, 119, 110, 105, 132, 123, 118, 93, 84, 79, 105, 96, 91, 105, 96, 91, 77, 68, 63, 95, 84, 80, 80, 69, 65, 115, 104, 100, 80, 69, 65, 75, 64, 60, 101, 90, 86, 147, 133, 130, 153, 139, 136, 119, 105, 102, 114, 100, 97, 127, 116, 112, 114, 103, 99, 128, 119, 114, 122, 113, 108, 127, 119, 116, 94, 89, 85, 110, 105, 102, 124, 119, 116, 116, 112, 109, 144, 140, 137, 120, 117, 112, 111, 108, 103, 150, 145, 139, 140, 135, 129, 146, 139, 133, 116, 109, 103, 125, 115, 113, 119, 109, 107, 110, 100, 98, 112, 102, 100, 125, 115, 113, 124, 114, 112, 116, 107, 102, 120, 111, 106, 133, 122, 118, 113, 102, 98, 134, 123, 119, 96, 85, 81, 82, 69, 63, 117, 104, 98, 68, 55, 49, 107, 94, 88, 108, 95, 89, 119, 106, 100, 76, 63, 57, 79, 66, 60, 99, 88, 84, 90, 79, 75, 102, 91, 87, 110, 99, 95, 110, 101, 96, 109, 100, 95, 118, 108, 106, 119, 109, 107, 106, 96, 94, 103, 93, 91, 116, 106, 104, 123, 113, 111, 114, 103, 99, 141, 130, 126, 135, 124, 120, 124, 113, 109, 146, 135, 131, 133, 122, 118, 148, 137, 133, 147, 136, 132, 122, 111, 107, 153, 142, 138, 170, 159, 155, 129, 118, 114, 147, 136, 132, 137, 126, 122, 125, 114, 110, 122, 111, 107, 123, 112, 106, 150, 141, 134, 109, 100, 95, 107, 100, 94, 151, 143, 140, 129, 121, 118, 103, 93, 92, 120, 112, 110, 67, 59, 57, 99, 95, 92, 117, 118, 113, 143, 145, 140, 129, 128, 123, 84, 81, 76, 89, 78, 76, 102, 91, 89, 90, 79, 77, 102, 92, 90, 108, 100, 97, 108, 100, 97, 116, 108, 105, 131, 123, 120, 132, 127, 123, 123, 118, 114, 128, 123, 119, 179, 174, 170, 135, 127, 124, 115, 107, 104, 130, 122, 119, 112, 104, 101, 133, 123, 121, 160, 152, 149, 142, 137, 131, 156, 151, 145, 162, 157, 151, 118, 113, 107, 123, 118, 112, 157, 152, 146, 148, 141, 135, 160, 153, 147, 143, 134, 129, 155, 146, 141, 152, 143, 138, 135, 126, 121, 134, 123, 119, 145, 134, 130, 140, 129, 125, 121, 110, 106, 125, 114, 108, 148, 139, 132, 122, 113, 106, 114, 105, 98, 140, 131, 124, 175, 166, 159, 185, 176, 169, 135, 126, 119, 163, 154, 147, 131, 122, 115, 120, 111, 104, 139, 130, 123, 142, 133, 126, 121, 112, 105, 115, 106, 99, 130, 121, 114, 128, 119, 112, 128, 119, 112, 135, 126, 119, 136, 127, 120, 143, 134, 127, 170, 161, 154, 165, 156, 149, 124, 115, 108, 122, 115, 109, 115, 108, 102, 116, 109, 103, 123, 116, 110, 117, 112, 108, 112, 107, 103, 131, 126, 122, 159, 154, 150, 142, 135, 129, 147, 140, 134, 160, 153, 147, 176, 169, 163, 185, 178, 172, 176, 169, 163, 154, 147, 141, 135, 128, 122, 162, 155, 149, 144, 137, 131, 122, 115, 109, 113, 106, 100, 118, 111, 105, 128, 121, 115, 135, 128, 122, 137, 130, 124, 132, 123, 118, 133, 124, 119, 134, 125, 120, 138, 129, 124, 143, 134, 129, 142, 133, 128, 128, 119, 114, 111, 102, 97, 99, 90, 85, 123, 114, 109, 136, 127, 122, 129, 120, 115, 112, 103, 98, 101, 92, 87, 118, 109, 104, 151, 142, 137, 146, 139, 131, 135, 128, 120, 131, 124, 116, 132, 125, 117, 125, 118, 110, 115, 108, 100, 120, 113, 105, 136, 129, 121, 153, 146, 138, 147, 140, 132, 142, 135, 127, 126, 119, 111, 102, 95, 87, 97, 90, 82, 107, 100, 92, 112, 105, 97, 100, 92, 89, 125, 117, 114, 121, 113, 110, 102, 94, 91, 105, 97, 94, 113, 105, 102, 119, 112, 106, 132, 125, 119, 130, 123, 117, 146, 139, 133, 150, 143, 137, 136, 129, 123, 129, 122, 114, 143, 136, 128, 161, 154, 146, 168, 161, 153, 160, 155, 149, 162, 157, 151, 164, 159, 153, 162, 157, 151, 159, 154, 148, 157, 152, 146, 157, 152, 146, 158, 153, 147, 150, 145, 139, 144, 139, 133, 140, 135, 129, 141, 136, 130, 142, 137, 131, 145, 140, 134, 155, 150, 144, 166, 161, 155, 172, 165, 159, 179, 172, 166, 185, 178, 172, 185, 178, 172, 181, 174, 168, 181, 174, 168, 187, 180, 174, 193, 186, 180, 190, 183, 177, 191, 184, 178, 192, 185, 179, 194, 187, 181, 195, 188, 182, 195, 188, 182, 194, 187, 181, 194, 187, 181, 194, 187, 181, 196, 189, 183, 199, 192, 186, 201, 194, 188, 203, 196, 190, 202, 195, 189, 201, 194, 188, 200, 193, 187, 206, 201, 197, 207, 202, 198, 208, 203, 199, 210, 205, 201, 211, 207, 204, 213, 209, 206, 215, 211, 208, 215, 211, 208, 212, 211, 209, 212, 211, 209, 211, 211, 211, 212, 212, 212, 214, 215, 217, 218, 219, 221, 220, 223, 228, 222, 225, 230, 227, 232, 236, 228, 233, 237, 232, 235, 242, 235, 238, 245, 238, 241, 246, 239, 242, 247, 242, 243, 248, 242, 243, 248, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 236, 239, 244, 236, 239, 244, 235, 238, 243, 235, 238, 243, 235, 238, 243, 234, 239, 243, 234, 238, 247, 232, 239, 247, 231, 240, 247, 230, 239, 244, 232, 237, 243, 231, 236, 240, 232, 236, 239, 230, 235, 239, 228, 235, 241, 227, 236, 243, 223, 236, 244, 223, 233, 242, 224, 232, 235, 223, 223, 221, 212, 205, 197, 202, 186, 171, 187, 156, 136, 171, 133, 110, 148, 107, 85, 132, 90, 68, 123, 78, 57, 118, 72, 49, 118, 70, 47, 121, 73, 50, 120, 70, 47, 116, 66, 43, 112, 60, 38, 111, 59, 38, 114, 61, 43, 118, 65, 47, 120, 69, 52, 121, 70, 53, 129, 77, 64, 130, 82, 72, 126, 87, 80, 126, 95, 92, 128, 107, 106, 132, 114, 114, 127, 111, 111, 120, 102, 98, 129, 106, 98, 127, 99, 88, 123, 89, 79, 118, 82, 70, 114, 75, 68, 111, 74, 68, 108, 73, 71, 108, 72, 72, 124, 85, 86, 124, 84, 84, 129, 88, 86, 136, 95, 91, 135, 92, 85, 117, 77, 69, 99, 59, 51, 86, 49, 41, 90, 57, 50, 95, 66, 62, 105, 80, 76, 117, 93, 91, 125, 101, 101, 127, 102, 105, 126, 101, 104, 124, 100, 100, 117, 89, 88, 119, 89, 87, 121, 91, 89, 126, 95, 93, 131, 97, 98, 132, 98, 99, 132, 96, 100, 129, 94, 98, 127, 92, 96, 121, 89, 92, 117, 87, 89, 114, 86, 85, 111, 85, 84, 111, 90, 85, 123, 104, 98, 136, 117, 113, 131, 110, 109, 127, 102, 105, 127, 102, 105, 137, 113, 113, 143, 119, 119, 141, 115, 114, 139, 113, 112, 141, 116, 112, 131, 105, 104, 131, 107, 105, 138, 114, 112, 146, 125, 124, 150, 130, 129, 148, 128, 129, 144, 124, 125, 141, 123, 121, 125, 107, 105, 121, 103, 99, 117, 99, 97, 119, 101, 97, 123, 105, 103, 127, 109, 105, 126, 108, 106, 125, 107, 103, 106, 88, 86, 99, 81, 77, 89, 71, 69, 82, 64, 60, 81, 63, 61, 87, 69, 65, 95, 77, 75, 99, 84, 81, 91, 80, 78, 106, 96, 95, 113, 103, 102, 100, 90, 89, 87, 77, 76, 95, 87, 85, 125, 117, 115, 149, 141, 139, 152, 144, 142, 147, 139, 137, 133, 125, 123, 105, 100, 97, 91, 86, 83, 100, 95, 92, 100, 95, 92, 80, 75, 72, 93, 85, 83, 105, 97, 95, 96, 88, 86, 79, 71, 69, 88, 80, 78, 100, 92, 90, 83, 73, 72, 53, 43, 42, 58, 48, 47, 52, 42, 41, 54, 42, 42, 66, 54, 54, 78, 66, 66, 83, 71, 71, 87, 75, 75, 90, 79, 77, 74, 63, 61, 115, 104, 100, 113, 104, 99, 70, 61, 56, 70, 61, 56, 118, 111, 105, 127, 120, 114, 90, 83, 77, 81, 76, 70, 136, 131, 125, 169, 166, 159, 159, 156, 149, 130, 127, 120, 87, 84, 77, 52, 52, 44, 45, 44, 39, 115, 112, 107, 99, 95, 92, 81, 77, 74, 131, 127, 124, 156, 152, 149, 115, 111, 108, 100, 95, 92, 94, 89, 86, 101, 96, 93, 107, 102, 99, 103, 98, 95, 92, 87, 84, 109, 101, 99, 92, 84, 82, 56, 48, 46, 83, 75, 72, 84, 75, 68, 99, 90, 81, 109, 102, 94, 112, 108, 99, 145, 140, 136, 145, 142, 137, 98, 97, 93, 93, 92, 88, 169, 169, 167, 174, 174, 172, 131, 131, 129, 79, 79, 77, 129, 129, 127, 167, 167, 165, 106, 106, 104, 81, 77, 74, 122, 112, 110, 135, 124, 120, 106, 95, 91, 77, 66, 62, 92, 81, 77, 102, 91, 87, 99, 88, 84, 109, 98, 94, 88, 77, 73, 101, 90, 86, 113, 102, 98, 114, 103, 99, 117, 106, 102, 127, 116, 112, 128, 117, 113, 116, 105, 101, 143, 129, 126, 140, 126, 123, 104, 90, 87, 121, 107, 104, 127, 116, 112, 102, 91, 87, 115, 104, 100, 111, 100, 96, 134, 125, 120, 99, 90, 85, 105, 96, 91, 100, 91, 86, 91, 82, 77, 117, 108, 103, 118, 109, 104, 98, 89, 84, 116, 109, 103, 140, 133, 127, 99, 92, 86, 107, 100, 94, 105, 96, 91, 75, 66, 61, 101, 92, 87, 92, 83, 78, 123, 114, 109, 89, 80, 75, 78, 67, 63, 93, 82, 78, 140, 129, 125, 160, 149, 145, 131, 120, 116, 122, 111, 107, 123, 112, 108, 111, 100, 96, 123, 114, 109, 116, 107, 102, 121, 113, 110, 93, 88, 84, 116, 111, 108, 135, 131, 128, 104, 100, 97, 133, 129, 126, 136, 133, 128, 100, 97, 92, 139, 134, 128, 151, 146, 140, 145, 140, 134, 106, 99, 93, 125, 115, 113, 143, 133, 131, 116, 106, 104, 118, 108, 106, 121, 111, 109, 111, 101, 99, 131, 122, 117, 125, 116, 111, 139, 128, 124, 132, 121, 117, 128, 117, 113, 101, 90, 86, 79, 66, 60, 110, 97, 91, 75, 62, 56, 104, 91, 85, 122, 109, 103, 121, 108, 102, 78, 65, 59, 89, 76, 70, 100, 89, 85, 86, 75, 71, 105, 94, 90, 106, 95, 91, 106, 97, 92, 114, 105, 100, 131, 121, 119, 133, 123, 121, 112, 102, 100, 102, 92, 90, 114, 104, 102, 124, 114, 112, 117, 106, 102, 130, 119, 115, 151, 140, 136, 120, 109, 105, 142, 131, 127, 139, 128, 124, 141, 130, 126, 149, 138, 134, 133, 122, 118, 143, 132, 128, 164, 153, 149, 133, 122, 118, 150, 139, 135, 140, 129, 125, 131, 120, 116, 137, 126, 122, 116, 105, 99, 147, 138, 131, 113, 104, 99, 110, 103, 97, 149, 141, 138, 132, 124, 121, 107, 97, 96, 110, 102, 100, 79, 71, 69, 103, 99, 96, 123, 124, 119, 141, 143, 138, 117, 116, 111, 74, 71, 66, 83, 72, 70, 97, 86, 84, 126, 115, 113, 119, 109, 107, 97, 87, 85, 97, 87, 85, 125, 117, 114, 131, 123, 120, 122, 117, 113, 131, 126, 122, 143, 138, 134, 167, 162, 158, 113, 105, 102, 131, 123, 120, 129, 119, 117, 94, 84, 82, 146, 136, 134, 148, 140, 137, 136, 131, 125, 161, 158, 151, 137, 132, 126, 103, 98, 92, 115, 110, 104, 152, 147, 141, 172, 165, 159, 157, 150, 144, 139, 130, 125, 141, 132, 127, 144, 133, 129, 140, 129, 125, 125, 114, 110, 110, 99, 95, 111, 97, 94, 116, 105, 101, 129, 118, 112, 125, 114, 108, 123, 112, 106, 150, 139, 133, 157, 146, 140, 149, 138, 132, 153, 142, 136, 132, 121, 115, 150, 139, 133, 92, 81, 75, 119, 108, 102, 148, 137, 131, 102, 91, 85, 103, 92, 86, 136, 125, 119, 113, 102, 96, 155, 146, 139, 152, 143, 136, 139, 130, 123, 137, 128, 121, 160, 151, 144, 171, 162, 155, 149, 140, 133, 121, 112, 105, 132, 125, 119, 124, 117, 111, 114, 107, 101, 113, 106, 100, 126, 121, 117, 148, 143, 139, 161, 156, 152, 163, 158, 154, 165, 158, 152, 170, 163, 157, 170, 163, 157, 160, 153, 147, 149, 142, 136, 149, 142, 136, 162, 155, 149, 176, 169, 163, 137, 130, 124, 124, 117, 111, 112, 105, 99, 114, 107, 101, 128, 121, 115, 140, 133, 127, 143, 136, 130, 141, 134, 128, 127, 118, 113, 129, 120, 115, 131, 122, 117, 134, 125, 120, 134, 125, 120, 124, 115, 110, 98, 89, 84, 74, 65, 60, 126, 117, 112, 109, 100, 95, 90, 81, 76, 98, 89, 84, 127, 118, 113, 139, 130, 125, 136, 127, 122, 137, 128, 123, 130, 123, 115, 125, 118, 110, 119, 112, 104, 116, 109, 101, 117, 110, 102, 122, 115, 107, 132, 125, 117, 142, 135, 127, 131, 124, 116, 114, 107, 99, 103, 96, 88, 97, 90, 82, 91, 84, 76, 93, 86, 78, 94, 87, 79, 85, 78, 70, 92, 84, 81, 111, 103, 100, 95, 87, 84, 75, 67, 64, 93, 85, 82, 113, 105, 102, 120, 113, 107, 132, 125, 119, 149, 142, 136, 146, 139, 133, 141, 134, 128, 141, 134, 128, 149, 142, 134, 161, 154, 146, 170, 163, 155, 172, 165, 157, 157, 152, 146, 160, 155, 151, 162, 157, 153, 161, 156, 152, 157, 152, 148, 151, 146, 142, 148, 143, 139, 147, 142, 138, 164, 159, 155, 159, 154, 150, 158, 153, 149, 164, 159, 155, 169, 164, 160, 171, 166, 162, 175, 170, 166, 179, 174, 170, 173, 166, 160, 178, 171, 165, 184, 177, 171, 186, 179, 173, 186, 179, 173, 186, 179, 173, 190, 183, 177, 193, 186, 180, 188, 181, 175, 189, 182, 176, 191, 184, 178, 192, 185, 179, 192, 185, 179, 192, 185, 179, 191, 184, 178, 191, 184, 178, 192, 183, 176, 195, 186, 179, 197, 190, 184, 200, 193, 187, 201, 194, 188, 200, 193, 187, 198, 191, 185, 196, 189, 183, 203, 198, 194, 204, 199, 195, 206, 201, 197, 207, 202, 198, 210, 205, 201, 211, 206, 202, 212, 208, 205, 213, 209, 206, 213, 212, 210, 212, 211, 209, 211, 211, 211, 212, 212, 212, 214, 215, 217, 218, 219, 221, 219, 222, 227, 222, 225, 230, 227, 232, 236, 228, 233, 237, 232, 235, 242, 236, 239, 246, 238, 241, 246, 240, 243, 248, 243, 244, 249, 244, 245, 250, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 234, 239, 243, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 242, 233, 238, 244, 233, 238, 244, 233, 238, 244, 234, 239, 245, 234, 239, 245, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 236, 239, 244, 236, 239, 244, 235, 238, 243, 235, 238, 243, 235, 238, 243, 235, 238, 243, 235, 240, 246, 232, 239, 247, 232, 239, 247, 231, 238, 244, 232, 237, 243, 231, 236, 240, 232, 235, 240, 230, 235, 239, 228, 235, 241, 228, 237, 244, 225, 235, 244, 223, 234, 240, 225, 233, 236, 222, 226, 227, 212, 209, 204, 201, 191, 181, 186, 160, 143, 170, 138, 117, 149, 111, 90, 135, 92, 73, 127, 82, 61, 122, 76, 53, 123, 75, 53, 126, 78, 56, 121, 73, 51, 118, 67, 48, 113, 60, 42, 110, 57, 39, 113, 60, 42, 118, 65, 47, 122, 71, 52, 122, 73, 56, 130, 82, 68, 128, 85, 76, 125, 90, 84, 125, 97, 94, 129, 109, 110, 132, 116, 117, 129, 111, 111, 120, 100, 99, 119, 96, 90, 115, 86, 78, 110, 77, 68, 113, 79, 70, 124, 87, 81, 131, 94, 88, 132, 94, 93, 129, 91, 90, 127, 87, 87, 111, 70, 68, 97, 53, 50, 91, 48, 42, 90, 45, 39, 87, 43, 34, 83, 40, 31, 80, 40, 32, 85, 48, 40, 90, 55, 49, 100, 69, 66, 113, 85, 82, 125, 97, 96, 127, 101, 102, 124, 98, 99, 120, 94, 95, 119, 91, 90, 127, 97, 95, 134, 104, 104, 135, 103, 104, 132, 98, 99, 128, 94, 95, 128, 94, 95, 130, 96, 97, 125, 93, 94, 114, 84, 82, 111, 83, 80, 123, 98, 94, 138, 114, 110, 141, 117, 115, 131, 110, 107, 124, 103, 102, 139, 115, 115, 131, 107, 107, 132, 108, 108, 142, 118, 118, 147, 121, 122, 140, 114, 113, 134, 108, 107, 134, 108, 107, 131, 105, 104, 126, 102, 100, 120, 96, 94, 116, 95, 92, 121, 100, 97, 129, 110, 106, 136, 117, 113, 139, 120, 116, 142, 124, 120, 133, 115, 111, 123, 105, 101, 120, 102, 98, 122, 104, 100, 121, 103, 99, 116, 98, 94, 111, 93, 89, 103, 85, 81, 101, 83, 79, 99, 81, 77, 96, 78, 74, 93, 75, 71, 90, 72, 68, 88, 70, 66, 86, 71, 68, 92, 78, 77, 89, 78, 76, 101, 90, 88, 109, 98, 96, 88, 78, 76, 56, 46, 44, 52, 42, 41, 70, 60, 58, 110, 100, 99, 119, 109, 108, 145, 137, 135, 154, 146, 144, 138, 130, 128, 140, 132, 130, 145, 137, 135, 130, 122, 120, 101, 93, 91, 96, 88, 86, 107, 99, 97, 102, 94, 92, 73, 65, 63, 69, 61, 59, 80, 70, 69, 73, 63, 62, 51, 41, 40, 66, 56, 55, 61, 51, 50, 47, 37, 36, 65, 53, 53, 99, 89, 88, 101, 89, 89, 73, 61, 61, 82, 71, 69, 64, 53, 49, 115, 104, 100, 115, 106, 101, 52, 41, 37, 89, 80, 75, 145, 136, 131, 96, 89, 83, 118, 111, 105, 85, 80, 74, 106, 101, 95, 164, 161, 154, 180, 177, 170, 136, 136, 128, 80, 80, 72, 41, 40, 35, 68, 65, 60, 115, 111, 108, 97, 93, 90, 58, 54, 51, 123, 119, 116, 182, 178, 175, 146, 141, 138, 117, 112, 109, 99, 94, 91, 104, 99, 96, 107, 102, 99, 89, 84, 81, 94, 86, 84, 90, 82, 80, 73, 65, 63, 103, 95, 92, 77, 68, 61, 94, 85, 78, 111, 102, 95, 100, 93, 87, 119, 111, 108, 144, 139, 135, 108, 104, 101, 66, 65, 61, 132, 132, 130, 195, 197, 194, 151, 153, 150, 73, 75, 72, 89, 89, 87, 158, 158, 156, 167, 166, 164, 96, 92, 89, 111, 101, 99, 104, 93, 91, 102, 91, 89, 104, 93, 89, 92, 81, 77, 77, 66, 62, 87, 76, 72, 113, 102, 98, 119, 108, 104, 84, 73, 69, 101, 90, 86, 136, 125, 121, 131, 120, 116, 127, 116, 112, 132, 121, 117, 120, 109, 105, 137, 123, 120, 138, 124, 121, 104, 90, 87, 122, 108, 105, 116, 105, 101, 79, 68, 64, 101, 90, 86, 113, 102, 98, 134, 125, 120, 84, 75, 70, 90, 81, 76, 100, 91, 86, 100, 91, 86, 123, 114, 109, 121, 112, 107, 103, 94, 89, 117, 108, 103, 144, 137, 131, 102, 95, 89, 110, 103, 97, 110, 101, 96, 82, 73, 68, 112, 103, 98, 105, 96, 91, 126, 117, 112, 99, 90, 85, 83, 72, 68, 86, 75, 71, 133, 122, 118, 167, 156, 152, 142, 131, 127, 127, 116, 112, 129, 118, 114, 105, 94, 90, 109, 100, 95, 105, 96, 91, 122, 114, 111, 102, 97, 93, 124, 119, 116, 139, 135, 132, 94, 90, 87, 123, 119, 116, 146, 142, 139, 93, 90, 85, 131, 126, 122, 160, 155, 151, 147, 142, 138, 100, 92, 89, 95, 87, 84, 150, 140, 138, 129, 119, 117, 136, 126, 124, 122, 112, 110, 91, 81, 79, 125, 116, 111, 112, 103, 98, 136, 125, 121, 146, 135, 131, 116, 105, 101, 105, 94, 90, 79, 66, 60, 97, 84, 78, 85, 72, 66, 98, 85, 79, 119, 106, 100, 128, 115, 109, 88, 75, 69, 89, 76, 70, 95, 84, 80, 97, 86, 82, 123, 112, 108, 102, 91, 87, 104, 95, 90, 119, 110, 105, 144, 134, 132, 146, 136, 134, 120, 110, 108, 105, 95, 93, 115, 104, 102, 125, 114, 112, 109, 98, 94, 117, 106, 102, 157, 146, 142, 111, 100, 96, 135, 124, 120, 146, 135, 131, 139, 128, 124, 150, 139, 135, 144, 133, 129, 134, 123, 119, 160, 149, 145, 146, 135, 131, 164, 153, 149, 147, 136, 132, 136, 125, 121, 147, 136, 132, 111, 100, 94, 134, 123, 117, 111, 102, 97, 115, 108, 102, 142, 132, 130, 128, 118, 116, 108, 98, 97, 100, 90, 89, 101, 93, 91, 108, 103, 100, 129, 128, 124, 148, 147, 143, 112, 111, 106, 78, 73, 69, 90, 80, 78, 96, 85, 83, 116, 106, 104, 102, 92, 90, 75, 65, 63, 96, 86, 84, 145, 137, 134, 138, 130, 127, 111, 106, 102, 128, 123, 119, 165, 160, 156, 125, 120, 116, 120, 112, 109, 142, 134, 131, 113, 103, 101, 100, 90, 88, 139, 129, 127, 139, 131, 128, 166, 161, 155, 166, 161, 155, 118, 111, 105, 112, 105, 99, 105, 98, 92, 138, 131, 125, 193, 186, 180, 119, 110, 105, 129, 120, 115, 125, 116, 111, 138, 127, 123, 145, 134, 130, 111, 100, 96, 71, 60, 56, 89, 75, 72, 136, 125, 121, 107, 96, 90, 119, 108, 102, 183, 172, 166, 126, 115, 109, 87, 76, 70, 146, 135, 129, 146, 135, 129, 147, 136, 130, 108, 97, 91, 113, 102, 96, 125, 114, 108, 115, 104, 98, 99, 88, 82, 118, 107, 101, 141, 130, 124, 133, 122, 116, 146, 137, 130, 137, 128, 121, 121, 112, 105, 139, 130, 123, 153, 144, 137, 108, 99, 92, 92, 83, 76, 143, 136, 128, 128, 121, 115, 144, 139, 133, 147, 142, 136, 135, 130, 124, 143, 138, 134, 163, 160, 155, 162, 159, 154, 141, 136, 130, 151, 144, 138, 157, 150, 144, 166, 157, 152, 171, 164, 158, 171, 162, 157, 161, 154, 148, 148, 139, 134, 137, 130, 124, 126, 117, 112, 131, 124, 118, 142, 133, 128, 149, 142, 136, 154, 145, 140, 151, 144, 138, 146, 137, 132, 142, 133, 128, 143, 134, 129, 137, 128, 123, 123, 114, 109, 103, 94, 89, 91, 82, 77, 90, 81, 76, 93, 84, 79, 93, 84, 79, 86, 77, 72, 103, 94, 89, 124, 115, 110, 149, 140, 135, 166, 157, 152, 155, 146, 141, 134, 125, 120, 128, 119, 114, 123, 116, 108, 130, 123, 115, 129, 122, 114, 125, 118, 110, 130, 123, 115, 143, 136, 128, 144, 137, 129, 135, 128, 120, 118, 111, 103, 98, 91, 83, 93, 86, 78, 106, 99, 91, 120, 113, 105, 126, 119, 111, 112, 105, 97, 86, 79, 71, 102, 94, 91, 115, 107, 104, 92, 84, 81, 75, 67, 64, 106, 98, 95, 135, 127, 124, 141, 134, 128, 149, 142, 136, 151, 144, 138, 128, 121, 115, 117, 110, 104, 136, 129, 123, 158, 151, 145, 161, 154, 146, 153, 146, 140, 147, 140, 134, 156, 151, 145, 152, 147, 141, 146, 141, 137, 141, 136, 132, 144, 139, 135, 156, 151, 147, 172, 167, 163, 183, 178, 174, 181, 176, 172, 176, 171, 167, 175, 170, 166, 180, 175, 171, 182, 177, 173, 175, 170, 166, 166, 161, 157, 161, 156, 152, 172, 165, 159, 177, 170, 164, 184, 177, 171, 189, 182, 176, 191, 184, 178, 191, 184, 178, 192, 185, 179, 192, 185, 179, 183, 176, 170, 184, 177, 171, 185, 178, 172, 186, 179, 173, 187, 180, 174, 186, 179, 173, 186, 179, 173, 185, 178, 172, 189, 182, 174, 191, 184, 176, 195, 188, 182, 198, 191, 185, 199, 192, 186, 197, 190, 184, 195, 188, 182, 193, 186, 180, 201, 196, 192, 201, 196, 192, 203, 198, 194, 205, 200, 196, 207, 202, 198, 209, 204, 200, 209, 205, 202, 210, 206, 203, 215, 211, 210, 213, 212, 210, 213, 211, 212, 213, 213, 213, 215, 215, 217, 218, 219, 221, 221, 222, 226, 221, 224, 229, 228, 231, 236, 230, 233, 238, 233, 236, 241, 236, 239, 244, 239, 242, 247, 241, 244, 249, 244, 245, 250, 245, 246, 251, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 237, 240, 245, 236, 239, 244, 236, 239, 244, 236, 239, 244, 235, 238, 243, 235, 238, 243, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 233, 238, 244, 230, 237, 243, 227, 234, 242, 224, 231, 237, 227, 232, 238, 225, 230, 234, 217, 218, 222, 208, 204, 201, 187, 173, 160, 178, 152, 135, 161, 125, 109, 148, 105, 89, 139, 90, 73, 132, 81, 64, 128, 79, 62, 131, 82, 65, 123, 76, 60, 124, 75, 60, 125, 72, 58, 124, 68, 53, 120, 64, 47, 117, 62, 42, 112, 62, 37, 109, 63, 37, 113, 70, 51, 116, 79, 63, 117, 87, 77, 120, 95, 90, 125, 104, 101, 130, 110, 109, 130, 109, 106, 126, 102, 98, 119, 91, 87, 121, 90, 85, 125, 92, 85, 132, 97, 91, 136, 99, 93, 129, 90, 83, 115, 74, 68, 103, 60, 53, 88, 45, 38, 72, 27, 21, 70, 23, 15, 85, 38, 28, 97, 49, 37, 91, 43, 31, 82, 34, 22, 82, 34, 22, 90, 43, 33, 96, 52, 43, 106, 65, 59, 116, 77, 72, 122, 87, 85, 129, 93, 93, 134, 100, 99, 136, 104, 105, 133, 105, 104, 134, 106, 105, 132, 102, 104, 129, 97, 98, 129, 95, 96, 130, 96, 95, 125, 91, 89, 116, 85, 80, 113, 86, 79, 122, 97, 90, 137, 114, 106, 143, 123, 116, 136, 115, 112, 127, 103, 103, 125, 98, 103, 129, 104, 108, 132, 110, 112, 134, 114, 113, 140, 120, 121, 145, 125, 126, 148, 128, 129, 148, 128, 127, 147, 127, 126, 146, 126, 125, 139, 119, 118, 135, 117, 115, 129, 111, 109, 123, 105, 101, 120, 102, 98, 120, 103, 96, 121, 104, 97, 122, 105, 98, 122, 107, 102, 133, 118, 115, 140, 125, 122, 132, 117, 114, 114, 99, 96, 102, 87, 84, 103, 88, 85, 110, 95, 92, 102, 87, 84, 108, 93, 90, 102, 87, 84, 88, 73, 70, 82, 67, 64, 89, 74, 71, 91, 76, 73, 86, 71, 68, 89, 74, 71, 86, 72, 69, 88, 74, 71, 95, 81, 78, 100, 86, 83, 94, 80, 77, 76, 65, 63, 62, 51, 47, 69, 58, 56, 82, 71, 69, 115, 104, 102, 130, 119, 117, 117, 107, 105, 121, 111, 109, 145, 135, 133, 159, 149, 147, 150, 142, 140, 143, 135, 133, 124, 116, 114, 106, 98, 96, 89, 81, 79, 63, 55, 53, 57, 49, 47, 76, 68, 66, 33, 25, 23, 46, 38, 36, 68, 60, 58, 63, 55, 53, 46, 36, 35, 64, 56, 54, 95, 85, 84, 96, 86, 85, 87, 76, 74, 97, 83, 82, 100, 86, 85, 121, 110, 108, 70, 56, 55, 56, 45, 43, 137, 126, 124, 118, 108, 106, 108, 98, 96, 123, 115, 112, 83, 78, 74, 96, 93, 88, 149, 146, 141, 174, 173, 168, 149, 148, 143, 58, 57, 52, 49, 46, 41, 74, 69, 65, 104, 99, 95, 72, 67, 63, 56, 51, 47, 115, 110, 106, 164, 159, 155, 177, 172, 168, 131, 126, 122, 108, 103, 99, 88, 83, 79, 92, 87, 83, 94, 89, 85, 70, 65, 61, 60, 55, 51, 80, 72, 69, 120, 111, 106, 88, 77, 73, 112, 101, 97, 93, 82, 80, 106, 95, 93, 139, 129, 127, 137, 132, 128, 59, 58, 53, 83, 85, 80, 158, 163, 157, 171, 178, 171, 111, 116, 110, 72, 74, 69, 120, 119, 115, 169, 163, 163, 136, 127, 128, 116, 106, 105, 98, 88, 87, 85, 75, 74, 75, 65, 63, 91, 81, 79, 92, 82, 80, 80, 71, 66, 115, 106, 101, 134, 125, 120, 73, 64, 59, 100, 91, 86, 151, 142, 137, 129, 120, 115, 119, 110, 105, 135, 125, 123, 118, 108, 106, 127, 116, 112, 152, 141, 137, 119, 108, 104, 101, 90, 86, 156, 145, 141, 91, 80, 76, 80, 69, 65, 127, 116, 112, 150, 139, 135, 110, 99, 95, 78, 67, 63, 88, 77, 73, 119, 108, 104, 127, 116, 112, 115, 104, 100, 108, 99, 94, 126, 116, 114, 125, 115, 113, 111, 101, 99, 118, 108, 106, 103, 93, 91, 76, 66, 64, 89, 80, 75, 93, 84, 79, 132, 121, 117, 109, 98, 94, 101, 90, 86, 99, 88, 84, 129, 116, 110, 146, 133, 127, 126, 113, 107, 136, 123, 117, 135, 124, 118, 135, 124, 118, 92, 83, 76, 106, 97, 92, 147, 139, 136, 79, 74, 70, 106, 101, 98, 157, 152, 149, 95, 89, 89, 117, 111, 111, 159, 153, 153, 120, 115, 112, 111, 103, 101, 156, 148, 146, 138, 130, 128, 113, 105, 102, 78, 70, 67, 154, 146, 143, 148, 140, 137, 125, 117, 114, 147, 137, 135, 103, 93, 91, 114, 103, 99, 108, 97, 93, 125, 114, 110, 135, 124, 120, 135, 121, 118, 106, 92, 89, 78, 63, 58, 77, 62, 57, 91, 76, 71, 96, 81, 76, 106, 92, 89, 125, 111, 108, 111, 97, 94, 111, 97, 94, 108, 97, 93, 99, 88, 84, 115, 106, 101, 119, 110, 105, 135, 126, 121, 120, 111, 106, 120, 109, 105, 143, 132, 128, 121, 110, 106, 101, 90, 86, 132, 118, 115, 132, 121, 117, 140, 129, 125, 101, 90, 86, 91, 80, 76, 123, 112, 108, 129, 118, 114, 149, 138, 134, 125, 114, 110, 147, 136, 132, 147, 136, 132, 150, 139, 135, 137, 126, 122, 158, 147, 143, 142, 131, 127, 126, 115, 111, 160, 149, 145, 142, 131, 127, 107, 96, 92, 138, 127, 123, 149, 138, 134, 113, 104, 99, 157, 146, 142, 120, 111, 106, 82, 72, 70, 97, 87, 85, 130, 120, 118, 119, 111, 108, 145, 140, 136, 132, 127, 123, 98, 93, 90, 97, 89, 87, 96, 88, 86, 106, 96, 95, 99, 91, 89, 79, 71, 69, 90, 82, 80, 137, 129, 127, 135, 127, 124, 115, 107, 104, 127, 119, 116, 120, 112, 109, 156, 148, 145, 114, 106, 103, 126, 119, 113, 132, 125, 119, 137, 130, 124, 140, 133, 127, 120, 113, 107, 139, 132, 126, 187, 178, 173, 157, 148, 143, 132, 123, 118, 113, 104, 99, 122, 113, 108, 171, 162, 157, 169, 160, 155, 103, 92, 88, 109, 98, 94, 124, 113, 109, 120, 109, 105, 95, 84, 80, 86, 75, 71, 106, 95, 91, 130, 119, 115, 138, 127, 123, 160, 149, 145, 137, 128, 123, 107, 98, 93, 91, 82, 77, 124, 115, 110, 184, 175, 170, 180, 171, 166, 119, 110, 105, 164, 155, 150, 129, 120, 115, 108, 99, 94, 124, 115, 110, 143, 134, 129, 144, 135, 130, 152, 143, 138, 170, 161, 156, 149, 140, 135, 103, 94, 89, 134, 125, 120, 138, 129, 124, 65, 58, 52, 78, 71, 65, 147, 140, 134, 145, 140, 134, 163, 158, 152, 147, 144, 137, 144, 141, 134, 160, 157, 150, 173, 170, 163, 168, 168, 160, 163, 163, 155, 165, 162, 155, 170, 163, 157, 165, 156, 149, 156, 145, 139, 148, 139, 132, 146, 135, 131, 150, 141, 136, 159, 148, 144, 163, 154, 149, 166, 155, 151, 151, 142, 137, 142, 131, 129, 140, 130, 128, 136, 125, 123, 127, 117, 115, 127, 116, 114, 133, 123, 121, 114, 105, 100, 108, 101, 95, 104, 97, 91, 107, 100, 94, 115, 108, 102, 121, 114, 108, 122, 115, 109, 120, 113, 107, 148, 141, 135, 148, 141, 135, 142, 135, 129, 125, 118, 112, 108, 101, 95, 106, 99, 93, 121, 114, 108, 137, 130, 124, 142, 135, 127, 144, 137, 129, 150, 143, 135, 152, 145, 137, 142, 135, 127, 125, 118, 110, 112, 105, 97, 108, 101, 93, 118, 111, 103, 115, 108, 100, 128, 121, 113, 152, 145, 137, 156, 149, 141, 136, 129, 121, 119, 112, 104, 117, 110, 102, 124, 116, 113, 104, 96, 93, 96, 88, 85, 115, 107, 104, 138, 130, 127, 140, 132, 129, 127, 119, 116, 115, 107, 104, 103, 95, 92, 113, 105, 102, 133, 125, 122, 146, 138, 135, 139, 131, 128, 126, 119, 113, 132, 124, 121, 151, 144, 138, 153, 148, 142, 139, 135, 126, 139, 134, 128, 154, 149, 143, 163, 158, 152, 158, 153, 147, 159, 154, 148, 167, 162, 156, 161, 156, 150, 169, 164, 158, 175, 170, 166, 172, 167, 163, 165, 160, 156, 164, 159, 155, 173, 168, 164, 183, 178, 174, 182, 175, 169, 183, 176, 168, 183, 176, 168, 182, 175, 167, 180, 173, 165, 181, 174, 166, 184, 177, 169, 187, 180, 172, 171, 164, 156, 175, 168, 160, 180, 173, 165, 184, 177, 169, 184, 177, 169, 182, 175, 167, 178, 171, 163, 175, 168, 160, 188, 181, 175, 187, 182, 176, 189, 184, 180, 191, 186, 182, 192, 187, 183, 193, 188, 184, 192, 187, 183, 192, 187, 183, 196, 191, 188, 199, 194, 191, 202, 197, 194, 206, 201, 198, 209, 204, 201, 210, 205, 202, 209, 203, 203, 208, 204, 203, 211, 207, 206, 211, 207, 206, 213, 209, 208, 213, 212, 210, 216, 214, 215, 219, 219, 221, 223, 223, 225, 224, 225, 229, 229, 230, 234, 232, 233, 237, 236, 237, 241, 239, 240, 245, 238, 241, 246, 239, 242, 247, 241, 244, 249, 243, 246, 251, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 237, 240, 245, 236, 239, 244, 236, 239, 244, 236, 239, 244, 235, 238, 243, 235, 238, 243, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 232, 237, 243, 232, 237, 243, 229, 234, 240, 227, 232, 238, 228, 233, 239, 227, 232, 238, 217, 222, 228, 209, 209, 211, 194, 185, 176, 183, 165, 151, 170, 138, 125, 159, 117, 103, 149, 100, 85, 142, 89, 73, 138, 86, 72, 138, 89, 74, 146, 98, 84, 134, 86, 74, 126, 72, 60, 123, 67, 54, 126, 70, 53, 127, 75, 53, 121, 74, 46, 115, 71, 44, 107, 69, 46, 111, 78, 61, 117, 89, 77, 122, 99, 91, 130, 109, 104, 138, 117, 114, 138, 114, 110, 135, 107, 103, 145, 116, 110, 134, 103, 98, 119, 86, 81, 107, 74, 67, 103, 66, 60, 96, 57, 50, 89, 46, 37, 82, 38, 27, 87, 40, 30, 74, 27, 17, 72, 24, 12, 85, 37, 25, 93, 44, 30, 86, 37, 23, 82, 30, 17, 83, 31, 18, 87, 37, 26, 94, 46, 34, 104, 57, 49, 113, 68, 62, 120, 79, 75, 128, 88, 86, 136, 96, 96, 138, 102, 102, 134, 104, 106, 134, 105, 107, 132, 103, 105, 128, 98, 100, 127, 97, 97, 128, 98, 96, 125, 96, 90, 119, 92, 83, 126, 102, 90, 129, 105, 93, 133, 111, 100, 135, 112, 104, 129, 105, 101, 122, 96, 97, 123, 94, 99, 127, 100, 105, 131, 109, 111, 133, 115, 113, 139, 119, 118, 144, 126, 126, 148, 130, 130, 151, 133, 133, 153, 135, 135, 153, 135, 135, 158, 140, 140, 154, 138, 138, 149, 134, 131, 144, 129, 126, 138, 123, 118, 133, 118, 111, 130, 115, 108, 128, 113, 106, 130, 115, 110, 135, 120, 117, 138, 123, 120, 131, 116, 113, 117, 102, 99, 107, 92, 89, 104, 89, 86, 105, 90, 87, 128, 113, 110, 119, 104, 101, 106, 91, 88, 95, 80, 77, 86, 71, 68, 78, 63, 60, 76, 61, 58, 78, 63, 60, 89, 74, 69, 85, 70, 65, 84, 69, 64, 88, 73, 68, 94, 79, 76, 93, 78, 75, 83, 69, 66, 74, 60, 57, 67, 53, 50, 76, 62, 59, 106, 92, 91, 125, 111, 110, 116, 105, 103, 110, 99, 97, 113, 102, 100, 108, 98, 96, 135, 125, 124, 142, 134, 132, 153, 145, 143, 146, 138, 136, 132, 124, 122, 124, 116, 114, 88, 80, 78, 32, 24, 22, 44, 36, 34, 51, 43, 41, 71, 63, 61, 81, 73, 71, 72, 64, 62, 71, 63, 61, 89, 81, 79, 103, 93, 92, 106, 95, 93, 118, 104, 103, 121, 107, 106, 119, 105, 104, 94, 80, 79, 71, 57, 56, 82, 71, 69, 99, 88, 86, 95, 85, 83, 121, 111, 109, 108, 100, 97, 89, 84, 80, 92, 89, 84, 122, 121, 116, 164, 163, 158, 171, 170, 165, 82, 79, 74, 76, 71, 67, 83, 78, 74, 80, 75, 71, 75, 70, 66, 64, 59, 55, 80, 75, 71, 146, 141, 137, 179, 174, 170, 100, 95, 91, 97, 92, 88, 123, 118, 114, 86, 81, 77, 65, 60, 56, 75, 70, 66, 64, 56, 53, 125, 116, 111, 112, 101, 97, 116, 105, 103, 94, 80, 79, 105, 91, 90, 116, 105, 103, 141, 133, 130, 106, 105, 100, 63, 65, 60, 93, 100, 93, 176, 183, 176, 152, 159, 152, 76, 78, 73, 82, 81, 77, 134, 128, 128, 182, 172, 173, 111, 101, 102, 93, 83, 84, 100, 90, 89, 71, 61, 60, 80, 70, 68, 110, 100, 98, 89, 80, 75, 103, 94, 89, 144, 135, 130, 99, 90, 85, 91, 82, 77, 129, 120, 115, 148, 139, 134, 133, 124, 119, 111, 101, 99, 99, 89, 87, 121, 110, 106, 132, 121, 117, 111, 100, 96, 90, 79, 75, 148, 137, 133, 116, 105, 101, 92, 81, 77, 119, 108, 104, 145, 134, 130, 124, 113, 109, 100, 89, 85, 97, 86, 82, 119, 108, 104, 133, 122, 118, 124, 113, 109, 109, 98, 94, 125, 115, 113, 135, 125, 123, 115, 105, 103, 107, 97, 95, 96, 86, 84, 79, 69, 67, 95, 86, 81, 110, 101, 96, 133, 122, 118, 120, 109, 105, 109, 98, 94, 108, 97, 93, 143, 130, 124, 152, 139, 133, 122, 109, 103, 131, 118, 112, 132, 122, 113, 136, 126, 117, 102, 93, 86, 96, 87, 80, 141, 133, 130, 91, 83, 80, 102, 97, 94, 163, 158, 155, 106, 100, 100, 107, 101, 101, 166, 160, 160, 139, 133, 133, 95, 86, 87, 134, 125, 126, 148, 140, 138, 131, 123, 121, 102, 94, 91, 144, 136, 133, 154, 146, 143, 122, 114, 111, 129, 119, 117, 113, 103, 101, 129, 118, 114, 112, 101, 97, 105, 94, 90, 132, 121, 117, 143, 129, 126, 115, 101, 98, 91, 76, 71, 94, 79, 74, 98, 83, 78, 89, 74, 69, 96, 82, 79, 115, 101, 98, 115, 101, 98, 130, 116, 113, 124, 113, 109, 101, 90, 86, 113, 104, 99, 129, 120, 115, 117, 108, 103, 124, 115, 110, 130, 119, 115, 133, 122, 118, 112, 98, 95, 110, 96, 93, 139, 125, 122, 128, 114, 111, 121, 110, 106, 108, 97, 93, 121, 110, 106, 133, 122, 118, 101, 90, 86, 129, 118, 114, 123, 112, 108, 124, 113, 109, 150, 139, 135, 146, 135, 131, 130, 119, 115, 156, 145, 141, 140, 129, 125, 108, 97, 93, 140, 129, 125, 150, 139, 135, 113, 102, 98, 123, 112, 108, 145, 134, 130, 127, 116, 112, 156, 145, 141, 132, 121, 117, 106, 96, 94, 111, 101, 99, 131, 121, 119, 129, 119, 117, 138, 130, 127, 114, 106, 103, 99, 91, 89, 112, 104, 102, 101, 93, 91, 92, 84, 82, 86, 78, 76, 102, 94, 92, 106, 98, 96, 126, 118, 116, 133, 125, 122, 121, 113, 110, 127, 119, 116, 127, 119, 116, 129, 121, 118, 133, 125, 122, 127, 120, 114, 145, 138, 132, 152, 145, 139, 125, 118, 112, 132, 125, 119, 168, 161, 155, 163, 152, 148, 154, 143, 139, 124, 113, 109, 122, 111, 107, 154, 143, 139, 153, 142, 138, 130, 119, 115, 131, 120, 116, 136, 125, 121, 130, 119, 115, 109, 98, 94, 90, 79, 75, 99, 88, 84, 131, 120, 116, 155, 144, 140, 159, 148, 144, 135, 126, 121, 139, 130, 125, 117, 108, 103, 136, 127, 122, 180, 171, 166, 148, 139, 134, 108, 99, 94, 138, 129, 124, 95, 86, 81, 96, 87, 82, 125, 116, 111, 142, 133, 128, 137, 128, 123, 158, 149, 144, 167, 158, 153, 134, 125, 120, 102, 93, 88, 138, 129, 124, 145, 136, 131, 126, 117, 112, 129, 122, 116, 147, 140, 134, 144, 139, 133, 131, 126, 120, 149, 144, 138, 150, 147, 140, 168, 165, 158, 182, 182, 174, 170, 167, 160, 140, 140, 132, 139, 139, 131, 162, 159, 152, 168, 159, 152, 167, 156, 150, 167, 156, 150, 170, 159, 153, 172, 161, 157, 170, 159, 155, 162, 151, 147, 155, 144, 140, 136, 125, 121, 120, 109, 105, 107, 96, 94, 108, 97, 95, 114, 103, 101, 111, 100, 98, 100, 89, 87, 91, 81, 79, 106, 97, 92, 110, 103, 97, 118, 111, 105, 125, 118, 112, 132, 125, 119, 144, 137, 131, 157, 150, 144, 167, 160, 154, 159, 152, 146, 123, 116, 110, 85, 78, 72, 76, 69, 63, 99, 92, 86, 132, 125, 119, 153, 146, 140, 160, 153, 147, 150, 143, 135, 138, 131, 123, 125, 118, 110, 118, 111, 103, 113, 106, 98, 107, 100, 92, 104, 97, 89, 104, 97, 89, 136, 129, 121, 136, 129, 121, 135, 128, 120, 129, 122, 114, 123, 116, 108, 125, 118, 110, 137, 130, 122, 150, 143, 135, 91, 83, 80, 96, 88, 85, 106, 98, 95, 111, 103, 100, 105, 97, 94, 97, 89, 86, 102, 94, 91, 115, 107, 104, 123, 115, 112, 132, 124, 121, 130, 122, 119, 120, 112, 109, 122, 114, 111, 136, 128, 125, 145, 137, 134, 142, 135, 129, 139, 134, 128, 136, 132, 123, 141, 137, 128, 154, 150, 141, 159, 154, 148, 156, 151, 145, 157, 152, 146, 163, 158, 152, 168, 163, 157, 169, 164, 158, 170, 165, 161, 171, 166, 162, 172, 167, 163, 174, 169, 165, 175, 170, 166, 176, 171, 165, 172, 165, 159, 175, 168, 160, 178, 171, 163, 179, 172, 164, 180, 173, 165, 181, 174, 166, 184, 177, 169, 187, 180, 172, 180, 173, 165, 182, 175, 167, 186, 179, 171, 188, 181, 173, 189, 182, 174, 188, 181, 173, 186, 179, 171, 185, 178, 170, 189, 184, 178, 190, 185, 179, 192, 187, 183, 194, 189, 185, 196, 191, 187, 197, 192, 188, 198, 193, 189, 198, 193, 189, 199, 194, 191, 201, 196, 193, 205, 200, 197, 209, 204, 201, 211, 206, 203, 212, 207, 204, 212, 206, 206, 211, 205, 205, 211, 207, 206, 212, 208, 207, 213, 209, 208, 215, 211, 210, 217, 215, 216, 220, 218, 219, 222, 222, 224, 224, 224, 226, 231, 230, 235, 234, 233, 238, 237, 238, 242, 238, 239, 243, 236, 239, 244, 236, 239, 244, 238, 241, 246, 239, 242, 247, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 237, 240, 245, 236, 239, 244, 236, 239, 244, 236, 239, 244, 235, 238, 243, 235, 238, 243, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 230, 235, 241, 228, 233, 239, 229, 234, 240, 230, 235, 241, 222, 227, 233, 214, 215, 217, 203, 196, 190, 192, 175, 165, 179, 149, 139, 168, 128, 116, 158, 110, 96, 148, 96, 82, 140, 91, 74, 141, 92, 77, 141, 93, 79, 135, 86, 72, 130, 76, 64, 130, 74, 61, 133, 77, 62, 134, 83, 64, 133, 87, 63, 131, 89, 65, 120, 83, 64, 125, 92, 77, 131, 103, 92, 134, 111, 105, 139, 118, 115, 142, 121, 118, 138, 114, 110, 133, 105, 101, 115, 86, 80, 103, 73, 65, 89, 56, 49, 81, 48, 41, 84, 47, 39, 88, 50, 41, 91, 49, 37, 90, 46, 33, 80, 36, 25, 74, 27, 17, 74, 26, 14, 82, 34, 22, 85, 36, 22, 78, 29, 15, 77, 25, 11, 80, 28, 14, 82, 33, 19, 88, 38, 27, 96, 48, 38, 105, 58, 50, 114, 69, 64, 124, 80, 77, 133, 92, 88, 138, 100, 99, 137, 102, 106, 137, 106, 111, 134, 105, 109, 128, 102, 103, 126, 102, 102, 128, 104, 102, 129, 104, 99, 125, 100, 93, 142, 115, 106, 136, 108, 97, 131, 101, 91, 128, 98, 90, 124, 93, 88, 120, 90, 88, 121, 93, 92, 125, 99, 100, 127, 106, 105, 129, 110, 106, 134, 113, 110, 139, 119, 118, 145, 125, 124, 151, 131, 130, 156, 136, 137, 157, 139, 139, 151, 133, 133, 152, 134, 134, 151, 136, 133, 151, 136, 133, 149, 134, 129, 145, 130, 125, 140, 127, 121, 137, 124, 118, 141, 126, 123, 138, 123, 120, 133, 118, 115, 127, 112, 109, 119, 104, 101, 110, 95, 92, 101, 86, 83, 95, 80, 77, 102, 87, 84, 105, 90, 87, 113, 98, 95, 113, 98, 95, 93, 78, 75, 70, 55, 52, 71, 56, 53, 88, 73, 70, 88, 73, 68, 83, 68, 63, 79, 64, 59, 81, 66, 61, 87, 72, 69, 92, 77, 74, 91, 77, 74, 89, 75, 72, 52, 38, 35, 46, 32, 29, 60, 46, 45, 87, 73, 72, 106, 95, 93, 119, 108, 106, 121, 110, 108, 112, 102, 100, 98, 88, 87, 92, 84, 82, 125, 117, 115, 143, 135, 133, 125, 117, 115, 131, 123, 121, 141, 133, 131, 117, 109, 107, 32, 24, 22, 48, 40, 38, 71, 63, 61, 87, 79, 77, 77, 69, 67, 55, 47, 45, 69, 61, 59, 111, 103, 101, 90, 80, 78, 91, 80, 78, 121, 110, 108, 122, 111, 109, 111, 100, 98, 94, 83, 81, 75, 64, 62, 108, 97, 95, 101, 91, 89, 107, 97, 95, 114, 106, 103, 86, 81, 77, 72, 69, 64, 94, 93, 88, 126, 125, 120, 163, 162, 157, 175, 172, 167, 122, 117, 113, 110, 105, 101, 97, 92, 88, 68, 63, 59, 61, 56, 52, 70, 65, 61, 91, 86, 82, 140, 135, 131, 170, 165, 161, 128, 123, 119, 99, 94, 90, 123, 118, 114, 85, 80, 76, 44, 39, 35, 85, 80, 76, 113, 106, 100, 124, 115, 110, 100, 89, 87, 79, 68, 66, 109, 95, 94, 97, 86, 84, 135, 127, 124, 138, 135, 130, 91, 92, 87, 41, 46, 40, 147, 152, 146, 185, 190, 184, 113, 115, 110, 73, 72, 68, 92, 86, 86, 180, 171, 172, 133, 124, 125, 76, 67, 68, 100, 92, 90, 89, 81, 79, 73, 65, 62, 111, 103, 100, 108, 99, 94, 94, 85, 80, 131, 122, 117, 115, 106, 101, 76, 67, 62, 93, 84, 79, 157, 148, 143, 151, 142, 137, 99, 89, 87, 89, 79, 77, 107, 96, 92, 105, 94, 90, 110, 99, 95, 85, 74, 70, 131, 120, 116, 135, 124, 120, 104, 93, 89, 121, 110, 106, 130, 119, 115, 131, 120, 116, 121, 110, 106, 110, 99, 95, 121, 110, 106, 140, 129, 125, 137, 126, 122, 116, 105, 101, 110, 100, 98, 137, 127, 125, 114, 104, 102, 92, 82, 80, 93, 83, 81, 86, 76, 74, 95, 86, 81, 114, 105, 100, 130, 119, 115, 129, 118, 114, 112, 101, 97, 108, 97, 93, 144, 131, 125, 142, 129, 123, 111, 98, 92, 126, 113, 107, 128, 118, 109, 137, 127, 118, 118, 107, 101, 80, 71, 64, 131, 123, 120, 103, 95, 92, 92, 87, 84, 167, 162, 159, 130, 124, 124, 97, 91, 91, 162, 156, 156, 158, 152, 152, 90, 84, 84, 116, 110, 110, 155, 147, 145, 145, 137, 135, 125, 117, 114, 132, 124, 121, 169, 161, 158, 120, 112, 109, 95, 85, 83, 95, 85, 83, 112, 103, 98, 101, 92, 87, 91, 80, 76, 132, 121, 117, 150, 136, 133, 124, 110, 107, 107, 92, 87, 112, 97, 92, 108, 93, 88, 90, 75, 70, 74, 60, 57, 103, 89, 86, 119, 105, 102, 136, 122, 119, 131, 120, 116, 112, 101, 97, 121, 112, 107, 137, 128, 123, 117, 108, 103, 127, 118, 113, 135, 124, 120, 134, 123, 119, 115, 101, 98, 117, 103, 100, 142, 128, 125, 136, 122, 119, 121, 110, 106, 112, 101, 97, 137, 126, 122, 149, 138, 134, 93, 82, 78, 110, 99, 95, 109, 98, 94, 97, 86, 82, 160, 149, 145, 150, 139, 135, 124, 113, 109, 151, 140, 136, 148, 137, 133, 111, 100, 96, 133, 122, 118, 162, 151, 147, 128, 117, 113, 114, 103, 99, 134, 123, 119, 129, 118, 114, 141, 130, 126, 123, 112, 108, 106, 96, 94, 104, 94, 92, 128, 118, 116, 135, 125, 123, 123, 115, 112, 93, 85, 82, 104, 96, 94, 129, 121, 119, 106, 98, 96, 79, 71, 69, 103, 95, 93, 126, 118, 116, 115, 107, 105, 126, 118, 116, 142, 134, 131, 124, 116, 113, 123, 115, 112, 137, 129, 126, 125, 117, 114, 141, 133, 130, 136, 129, 123, 157, 150, 144, 134, 127, 121, 112, 105, 99, 163, 156, 150, 178, 171, 165, 146, 135, 131, 155, 144, 140, 137, 126, 122, 140, 129, 125, 165, 154, 150, 141, 130, 126, 117, 106, 102, 144, 133, 129, 138, 127, 123, 128, 117, 113, 112, 101, 97, 108, 97, 93, 126, 115, 111, 150, 139, 135, 155, 144, 140, 146, 135, 131, 115, 106, 101, 127, 118, 113, 148, 139, 134, 162, 153, 148, 153, 144, 139, 125, 116, 111, 101, 92, 87, 93, 84, 79, 61, 52, 47, 102, 93, 88, 154, 145, 140, 171, 162, 157, 160, 151, 146, 154, 145, 140, 132, 123, 118, 91, 82, 77, 100, 91, 86, 133, 124, 119, 141, 132, 127, 159, 150, 145, 172, 165, 159, 118, 111, 105, 86, 79, 73, 132, 127, 121, 150, 145, 139, 154, 149, 143, 155, 150, 144, 143, 140, 133, 125, 120, 114, 121, 118, 111, 150, 147, 140, 187, 182, 176, 191, 182, 175, 184, 173, 167, 170, 159, 153, 154, 143, 137, 142, 131, 127, 135, 124, 120, 133, 122, 118, 133, 122, 118, 106, 95, 91, 128, 117, 113, 146, 135, 133, 142, 131, 129, 126, 115, 113, 118, 107, 105, 121, 110, 108, 126, 116, 114, 122, 113, 108, 135, 128, 122, 154, 147, 141, 167, 160, 154, 166, 159, 153, 154, 147, 141, 138, 131, 125, 127, 120, 114, 105, 98, 92, 108, 101, 95, 119, 112, 106, 138, 131, 125, 152, 145, 139, 152, 145, 139, 137, 130, 124, 122, 115, 109, 96, 89, 81, 96, 89, 81, 102, 95, 87, 110, 103, 95, 113, 106, 98, 111, 104, 96, 112, 105, 97, 116, 109, 101, 129, 122, 114, 143, 136, 128, 149, 142, 134, 141, 134, 126, 132, 125, 117, 129, 122, 114, 126, 119, 111, 120, 113, 105, 133, 125, 122, 118, 110, 107, 104, 96, 93, 99, 91, 88, 101, 93, 90, 106, 98, 95, 114, 106, 103, 123, 115, 112, 112, 104, 101, 128, 120, 117, 137, 129, 126, 136, 128, 125, 140, 132, 129, 148, 140, 137, 147, 139, 136, 137, 130, 124, 132, 127, 121, 137, 133, 124, 144, 140, 131, 152, 148, 139, 159, 154, 148, 166, 161, 155, 173, 168, 162, 179, 174, 168, 173, 168, 162, 168, 163, 157, 166, 161, 157, 171, 166, 162, 180, 175, 171, 182, 177, 173, 176, 171, 167, 169, 164, 158, 172, 165, 159, 176, 169, 161, 183, 176, 168, 187, 180, 172, 189, 182, 174, 191, 184, 176, 194, 187, 179, 196, 189, 181, 188, 181, 173, 189, 182, 174, 190, 183, 175, 191, 184, 176, 192, 185, 177, 193, 186, 178, 194, 187, 179, 194, 187, 179, 194, 189, 183, 195, 190, 184, 196, 191, 187, 198, 193, 189, 200, 195, 191, 202, 197, 193, 203, 198, 194, 203, 198, 194, 202, 197, 194, 204, 199, 196, 208, 203, 200, 211, 206, 203, 213, 208, 205, 214, 209, 206, 213, 207, 207, 213, 207, 207, 212, 208, 207, 212, 208, 207, 214, 210, 209, 216, 212, 211, 217, 215, 216, 220, 218, 219, 222, 222, 224, 224, 224, 226, 231, 230, 235, 234, 233, 238, 236, 237, 241, 237, 238, 242, 234, 237, 242, 233, 236, 241, 234, 237, 242, 236, 239, 244, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 237, 240, 245, 236, 239, 244, 236, 239, 244, 236, 239, 244, 235, 238, 243, 235, 238, 243, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 229, 234, 240, 231, 236, 242, 231, 236, 242, 229, 234, 240, 230, 235, 241, 231, 236, 242, 226, 231, 237, 221, 222, 226, 205, 202, 197, 195, 182, 174, 182, 158, 148, 172, 135, 126, 159, 115, 102, 147, 98, 83, 138, 89, 72, 136, 87, 70, 125, 76, 61, 133, 84, 70, 142, 88, 76, 138, 84, 72, 130, 77, 63, 125, 76, 59, 133, 88, 67, 138, 100, 79, 149, 112, 94, 151, 119, 106, 151, 124, 115, 148, 124, 120, 144, 123, 120, 137, 116, 115, 126, 102, 98, 116, 88, 84, 90, 59, 54, 84, 54, 46, 80, 47, 40, 81, 47, 38, 86, 49, 40, 86, 48, 37, 83, 41, 27, 77, 33, 20, 74, 30, 19, 71, 27, 16, 74, 28, 15, 78, 30, 18, 77, 28, 14, 70, 21, 7, 72, 20, 6, 77, 25, 11, 81, 29, 16, 83, 34, 20, 90, 40, 29, 98, 50, 40, 107, 60, 52, 118, 73, 67, 129, 86, 80, 136, 95, 93, 138, 102, 104, 140, 108, 113, 138, 109, 113, 132, 107, 110, 128, 108, 107, 131, 111, 110, 134, 113, 108, 134, 111, 105, 144, 115, 107, 135, 102, 93, 127, 90, 82, 124, 87, 79, 124, 89, 83, 125, 92, 87, 126, 97, 93, 129, 101, 98, 126, 101, 97, 126, 102, 98, 129, 105, 101, 132, 111, 108, 138, 117, 114, 144, 123, 122, 149, 129, 130, 152, 132, 133, 144, 124, 125, 144, 126, 126, 145, 130, 127, 146, 131, 128, 146, 131, 128, 144, 131, 125, 141, 127, 124, 140, 126, 123, 145, 130, 127, 135, 120, 117, 126, 111, 108, 122, 107, 104, 121, 106, 103, 115, 100, 97, 103, 88, 85, 92, 77, 74, 81, 66, 63, 88, 73, 70, 101, 86, 83, 110, 95, 92, 103, 88, 85, 85, 70, 67, 74, 59, 56, 75, 60, 57, 87, 72, 67, 83, 68, 63, 80, 65, 60, 80, 65, 60, 85, 70, 67, 92, 77, 74, 97, 83, 80, 100, 86, 83, 90, 76, 73, 63, 49, 46, 44, 30, 29, 52, 38, 37, 76, 65, 63, 104, 93, 91, 122, 111, 109, 126, 116, 114, 114, 104, 103, 58, 50, 48, 68, 60, 58, 115, 107, 105, 105, 97, 95, 80, 72, 70, 106, 98, 96, 146, 138, 136, 159, 151, 149, 113, 105, 103, 64, 56, 54, 72, 64, 62, 112, 104, 102, 106, 98, 96, 75, 67, 65, 70, 62, 60, 79, 71, 68, 60, 50, 48, 98, 88, 86, 132, 121, 119, 114, 103, 101, 102, 91, 89, 107, 96, 94, 111, 100, 98, 98, 88, 86, 86, 76, 74, 112, 102, 100, 96, 88, 85, 88, 83, 79, 103, 100, 95, 90, 87, 82, 103, 100, 95, 135, 130, 126, 191, 186, 182, 151, 146, 142, 67, 62, 58, 79, 74, 70, 80, 75, 71, 38, 33, 29, 62, 57, 53, 103, 98, 94, 139, 134, 130, 162, 157, 153, 150, 145, 141, 122, 117, 113, 93, 88, 84, 81, 76, 72, 86, 81, 77, 105, 100, 94, 135, 128, 122, 88, 78, 76, 69, 58, 56, 121, 110, 108, 101, 90, 88, 125, 115, 113, 128, 123, 119, 125, 124, 120, 44, 46, 41, 99, 101, 96, 181, 183, 178, 163, 164, 159, 98, 97, 93, 82, 78, 77, 141, 135, 135, 171, 165, 165, 81, 72, 73, 76, 68, 66, 114, 106, 104, 89, 81, 78, 92, 84, 81, 125, 116, 111, 102, 93, 88, 123, 114, 109, 134, 125, 120, 91, 82, 77, 81, 72, 67, 145, 136, 131, 159, 150, 145, 112, 102, 100, 92, 82, 80, 97, 86, 82, 84, 73, 69, 113, 102, 98, 92, 81, 77, 114, 103, 99, 136, 125, 121, 106, 95, 91, 131, 120, 116, 119, 108, 104, 124, 113, 109, 128, 117, 113, 127, 116, 112, 129, 118, 114, 142, 131, 127, 142, 131, 127, 126, 115, 111, 99, 89, 87, 136, 126, 124, 114, 104, 102, 87, 77, 75, 106, 96, 94, 109, 99, 97, 98, 89, 84, 107, 98, 93, 115, 104, 100, 131, 120, 116, 113, 102, 98, 104, 93, 89, 130, 117, 111, 118, 105, 99, 97, 84, 78, 124, 111, 105, 127, 117, 108, 140, 130, 121, 133, 122, 116, 69, 60, 53, 122, 112, 110, 112, 104, 101, 82, 77, 74, 162, 157, 154, 153, 147, 147, 102, 96, 96, 151, 145, 145, 168, 162, 162, 113, 107, 107, 117, 111, 111, 147, 139, 137, 146, 138, 136, 127, 119, 116, 120, 112, 109, 184, 176, 173, 131, 123, 120, 87, 77, 75, 77, 67, 65, 86, 77, 72, 108, 99, 94, 99, 88, 84, 134, 123, 119, 145, 131, 128, 124, 110, 107, 112, 97, 92, 114, 99, 94, 110, 95, 90, 103, 88, 83, 68, 54, 51, 101, 87, 84, 118, 104, 101, 122, 108, 105, 124, 113, 109, 124, 113, 109, 129, 120, 115, 136, 127, 122, 132, 123, 118, 120, 111, 106, 124, 113, 109, 132, 121, 117, 120, 106, 103, 112, 98, 95, 129, 115, 112, 141, 127, 124, 139, 128, 124, 120, 109, 105, 129, 118, 114, 160, 149, 145, 119, 108, 104, 111, 100, 96, 91, 80, 76, 85, 74, 70, 149, 138, 134, 150, 139, 135, 121, 110, 106, 131, 120, 116, 146, 135, 131, 129, 118, 114, 140, 129, 125, 160, 149, 145, 140, 129, 125, 119, 108, 104, 122, 111, 107, 120, 109, 105, 129, 118, 114, 116, 105, 101, 95, 85, 83, 105, 95, 93, 115, 105, 103, 128, 118, 116, 108, 100, 97, 87, 79, 76, 115, 107, 105, 135, 127, 125, 105, 97, 95, 77, 69, 67, 128, 120, 118, 121, 113, 111, 103, 95, 93, 126, 118, 116, 137, 129, 126, 110, 102, 99, 115, 107, 104, 136, 128, 125, 145, 137, 134, 125, 117, 114, 148, 141, 135, 144, 137, 131, 88, 81, 75, 124, 117, 111, 188, 181, 175, 148, 141, 135, 140, 129, 125, 152, 141, 137, 155, 144, 140, 144, 133, 129, 135, 124, 120, 137, 126, 122, 136, 125, 121, 129, 118, 114, 135, 124, 120, 127, 116, 112, 120, 109, 105, 124, 113, 109, 137, 126, 122, 144, 133, 129, 135, 124, 120, 120, 109, 105, 128, 119, 114, 138, 129, 124, 156, 147, 142, 143, 134, 129, 116, 107, 102, 122, 113, 108, 114, 105, 100, 68, 59, 54, 105, 96, 91, 146, 137, 132, 157, 148, 143, 166, 157, 152, 176, 167, 162, 129, 120, 115, 86, 77, 72, 107, 98, 93, 141, 132, 127, 161, 152, 147, 155, 146, 141, 128, 119, 114, 116, 109, 103, 128, 121, 115, 151, 144, 138, 173, 166, 160, 142, 135, 129, 151, 146, 140, 155, 148, 142, 145, 138, 132, 146, 139, 133, 161, 154, 148, 172, 165, 159, 171, 164, 158, 162, 153, 146, 159, 148, 142, 147, 136, 130, 130, 119, 113, 117, 106, 102, 120, 109, 105, 137, 126, 122, 154, 143, 139, 153, 142, 138, 138, 127, 123, 116, 105, 103, 111, 100, 98, 134, 123, 121, 164, 153, 151, 172, 161, 159, 162, 152, 150, 164, 155, 150, 150, 143, 137, 136, 129, 123, 132, 125, 119, 134, 127, 121, 130, 123, 117, 118, 111, 105, 106, 99, 93, 127, 120, 114, 139, 132, 126, 150, 143, 137, 150, 143, 137, 136, 129, 123, 117, 110, 104, 102, 95, 89, 96, 89, 83, 114, 107, 99, 123, 116, 108, 135, 128, 120, 139, 132, 124, 130, 123, 115, 115, 108, 100, 110, 103, 95, 113, 106, 98, 118, 111, 103, 116, 109, 101, 115, 108, 100, 120, 113, 105, 132, 125, 117, 142, 135, 127, 142, 135, 127, 137, 130, 124, 146, 138, 135, 127, 119, 116, 113, 105, 102, 120, 112, 109, 137, 129, 126, 141, 133, 130, 126, 118, 115, 109, 101, 98, 124, 116, 113, 135, 127, 124, 158, 150, 147, 174, 166, 163, 166, 158, 155, 146, 138, 135, 140, 132, 129, 149, 142, 136, 148, 143, 137, 149, 145, 136, 147, 143, 134, 145, 141, 132, 151, 146, 140, 163, 158, 152, 170, 165, 159, 170, 165, 159, 171, 166, 160, 167, 162, 156, 166, 161, 157, 172, 167, 163, 180, 175, 171, 181, 176, 172, 174, 169, 165, 165, 160, 156, 174, 167, 161, 180, 173, 165, 187, 180, 172, 193, 186, 178, 195, 188, 180, 196, 189, 181, 197, 190, 182, 198, 191, 183, 192, 185, 177, 191, 184, 176, 191, 184, 176, 191, 184, 176, 192, 185, 177, 195, 188, 180, 198, 191, 183, 200, 193, 185, 200, 195, 189, 200, 195, 189, 200, 195, 191, 200, 195, 191, 200, 195, 191, 201, 196, 192, 202, 197, 193, 202, 197, 193, 203, 198, 195, 205, 200, 197, 208, 203, 200, 211, 206, 203, 213, 208, 205, 213, 208, 205, 213, 207, 207, 212, 206, 206, 212, 208, 207, 213, 209, 208, 213, 209, 208, 215, 211, 210, 216, 214, 215, 219, 217, 218, 221, 221, 223, 223, 223, 225, 226, 225, 230, 230, 229, 234, 232, 233, 237, 234, 235, 239, 233, 236, 241, 233, 236, 241, 235, 238, 243, 237, 240, 245, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 237, 240, 245, 236, 239, 244, 236, 239, 244, 236, 239, 244, 235, 238, 243, 235, 238, 243, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 229, 234, 240, 232, 237, 243, 232, 237, 243, 229, 234, 240, 230, 235, 241, 232, 237, 243, 229, 234, 240, 224, 228, 231, 209, 208, 206, 199, 190, 185, 187, 167, 160, 175, 145, 137, 162, 122, 112, 147, 101, 86, 135, 88, 72, 132, 83, 66, 131, 82, 65, 139, 87, 73, 144, 90, 78, 139, 85, 73, 127, 78, 64, 125, 79, 63, 133, 92, 74, 141, 104, 86, 165, 129, 115, 165, 132, 123, 161, 133, 129, 151, 127, 125, 139, 118, 117, 126, 105, 104, 111, 86, 82, 97, 70, 63, 83, 53, 45, 83, 50, 41, 85, 51, 42, 89, 55, 45, 93, 57, 45, 87, 49, 36, 76, 34, 18, 65, 22, 6, 70, 26, 13, 70, 26, 15, 73, 27, 14, 74, 26, 14, 71, 22, 8, 67, 18, 4, 71, 19, 5, 75, 23, 9, 80, 28, 14, 83, 31, 18, 88, 36, 23, 93, 43, 32, 102, 52, 43, 113, 65, 55, 124, 77, 69, 131, 86, 81, 138, 96, 98, 142, 106, 110, 143, 112, 117, 135, 113, 115, 133, 115, 115, 134, 119, 116, 138, 120, 116, 141, 117, 113, 133, 104, 98, 128, 91, 83, 123, 82, 76, 127, 84, 77, 132, 91, 85, 134, 97, 89, 134, 101, 94, 135, 106, 100, 131, 104, 97, 131, 103, 99, 131, 106, 101, 134, 109, 105, 138, 112, 111, 142, 118, 116, 144, 123, 122, 146, 126, 125, 155, 135, 136, 153, 135, 135, 148, 132, 132, 145, 129, 129, 141, 127, 126, 139, 125, 122, 137, 123, 122, 136, 122, 119, 137, 122, 119, 128, 113, 110, 120, 105, 102, 121, 106, 103, 127, 112, 109, 127, 112, 109, 118, 103, 100, 108, 93, 90, 89, 74, 71, 79, 64, 61, 70, 55, 52, 77, 62, 59, 102, 87, 84, 119, 104, 101, 109, 94, 91, 87, 72, 69, 86, 71, 66, 86, 71, 66, 85, 70, 65, 85, 70, 65, 86, 72, 69, 91, 77, 74, 99, 85, 82, 104, 90, 87, 116, 102, 99, 100, 86, 83, 74, 63, 61, 57, 46, 44, 56, 45, 43, 70, 59, 57, 100, 89, 87, 127, 117, 115, 137, 127, 125, 68, 60, 57, 38, 30, 27, 84, 76, 73, 118, 110, 107, 88, 80, 77, 54, 46, 43, 55, 47, 44, 107, 99, 96, 139, 131, 128, 151, 143, 140, 144, 136, 133, 133, 125, 122, 103, 95, 92, 84, 76, 73, 96, 88, 85, 107, 99, 96, 87, 79, 76, 66, 58, 55, 116, 106, 104, 123, 113, 111, 97, 87, 85, 114, 103, 101, 86, 75, 73, 75, 64, 62, 78, 68, 66, 121, 111, 109, 106, 98, 95, 88, 80, 77, 105, 100, 96, 103, 98, 94, 120, 115, 111, 86, 81, 77, 125, 120, 116, 180, 175, 171, 146, 141, 137, 80, 75, 71, 72, 67, 63, 66, 61, 57, 45, 40, 36, 74, 69, 65, 106, 101, 97, 144, 139, 135, 167, 162, 158, 160, 155, 151, 122, 117, 113, 92, 87, 83, 89, 84, 80, 100, 95, 89, 138, 133, 127, 97, 89, 86, 67, 57, 55, 123, 112, 110, 110, 99, 97, 123, 113, 111, 123, 115, 112, 125, 121, 118, 84, 83, 79, 62, 63, 58, 143, 144, 139, 183, 184, 179, 129, 130, 125, 106, 105, 103, 108, 104, 103, 175, 169, 169, 135, 129, 129, 61, 53, 51, 103, 95, 93, 119, 111, 108, 83, 75, 72, 121, 114, 108, 117, 110, 104, 129, 120, 115, 150, 141, 136, 130, 121, 116, 98, 89, 84, 117, 108, 103, 148, 139, 134, 134, 124, 122, 100, 90, 88, 106, 95, 91, 77, 66, 62, 102, 91, 87, 100, 89, 85, 110, 99, 95, 136, 125, 121, 105, 94, 90, 134, 123, 119, 130, 119, 115, 118, 107, 103, 128, 117, 113, 146, 135, 131, 144, 133, 129, 138, 127, 123, 136, 125, 121, 130, 119, 115, 106, 96, 94, 135, 125, 123, 112, 102, 100, 85, 75, 73, 118, 108, 106, 135, 125, 123, 110, 101, 96, 106, 97, 92, 96, 85, 81, 130, 119, 115, 125, 114, 110, 119, 108, 104, 128, 115, 109, 104, 91, 85, 94, 81, 75, 124, 111, 105, 131, 118, 110, 144, 131, 123, 142, 131, 125, 68, 59, 52, 117, 107, 105, 116, 108, 105, 79, 74, 71, 147, 142, 139, 153, 149, 148, 118, 114, 113, 148, 144, 143, 174, 170, 169, 148, 142, 142, 124, 118, 118, 127, 122, 119, 145, 140, 137, 124, 116, 113, 107, 99, 96, 178, 170, 167, 144, 136, 133, 115, 107, 104, 91, 83, 80, 84, 75, 70, 123, 114, 109, 116, 105, 101, 133, 122, 118, 131, 117, 114, 114, 100, 97, 105, 92, 86, 98, 85, 79, 101, 86, 81, 115, 100, 95, 101, 87, 84, 108, 94, 91, 113, 99, 96, 115, 101, 98, 119, 108, 104, 119, 108, 104, 118, 109, 104, 132, 123, 118, 136, 127, 122, 118, 109, 104, 117, 106, 102, 118, 107, 103, 114, 100, 97, 112, 98, 95, 118, 104, 101, 128, 114, 111, 140, 129, 125, 141, 130, 126, 127, 116, 112, 155, 144, 140, 142, 131, 127, 127, 116, 112, 91, 80, 76, 91, 80, 76, 109, 98, 94, 142, 131, 127, 129, 118, 114, 115, 104, 100, 126, 115, 111, 134, 123, 119, 146, 135, 131, 151, 140, 136, 139, 128, 124, 131, 120, 116, 116, 105, 101, 113, 102, 98, 130, 119, 115, 123, 112, 108, 93, 83, 81, 123, 113, 111, 99, 89, 87, 110, 100, 98, 94, 86, 83, 97, 89, 86, 127, 119, 117, 128, 120, 118, 101, 93, 91, 82, 74, 72, 111, 103, 101, 101, 93, 91, 98, 90, 88, 116, 108, 106, 104, 96, 93, 93, 85, 82, 122, 114, 111, 131, 123, 120, 136, 128, 125, 103, 95, 92, 147, 140, 134, 110, 103, 97, 79, 72, 66, 161, 154, 148, 170, 163, 157, 112, 105, 99, 137, 126, 122, 149, 138, 134, 148, 137, 133, 126, 115, 111, 116, 105, 101, 133, 122, 118, 142, 131, 127, 129, 118, 114, 149, 138, 134, 132, 121, 117, 118, 107, 103, 123, 112, 108, 135, 124, 120, 136, 125, 121, 126, 115, 111, 116, 105, 101, 157, 148, 143, 165, 156, 151, 133, 124, 119, 121, 112, 107, 141, 132, 127, 114, 105, 100, 89, 80, 75, 120, 111, 106, 153, 144, 139, 157, 148, 143, 136, 127, 122, 138, 129, 124, 151, 142, 137, 113, 104, 99, 98, 89, 84, 149, 140, 135, 150, 143, 137, 139, 132, 126, 133, 126, 120, 124, 117, 111, 123, 116, 110, 148, 141, 135, 165, 156, 151, 152, 143, 138, 140, 131, 126, 136, 129, 123, 138, 129, 124, 148, 139, 134, 162, 153, 148, 167, 158, 153, 157, 148, 143, 143, 134, 129, 133, 122, 116, 137, 126, 120, 141, 130, 124, 144, 133, 127, 147, 136, 132, 152, 141, 137, 158, 147, 143, 163, 152, 148, 150, 139, 135, 139, 128, 124, 127, 116, 114, 129, 118, 116, 155, 144, 142, 179, 168, 166, 178, 167, 165, 160, 150, 148, 159, 150, 145, 145, 138, 132, 131, 124, 118, 128, 121, 115, 135, 128, 122, 141, 134, 128, 140, 133, 127, 136, 129, 123, 143, 136, 130, 124, 117, 111, 103, 96, 90, 98, 91, 85, 108, 101, 95, 119, 112, 106, 122, 115, 109, 119, 112, 106, 149, 142, 136, 138, 131, 125, 126, 119, 113, 118, 111, 105, 111, 104, 98, 104, 97, 91, 104, 97, 91, 107, 100, 94, 109, 102, 96, 98, 91, 85, 102, 95, 89, 124, 117, 111, 141, 134, 128, 142, 135, 129, 139, 132, 126, 142, 135, 129, 126, 118, 115, 121, 113, 110, 113, 105, 102, 106, 98, 95, 109, 101, 98, 120, 112, 109, 132, 124, 121, 140, 132, 129, 169, 161, 158, 165, 157, 154, 166, 158, 155, 165, 157, 154, 151, 143, 140, 135, 127, 124, 139, 131, 128, 154, 147, 141, 131, 126, 120, 131, 127, 118, 130, 126, 117, 135, 131, 122, 150, 145, 139, 164, 159, 153, 166, 161, 155, 160, 155, 149, 165, 160, 154, 166, 161, 155, 169, 164, 160, 173, 168, 164, 174, 169, 165, 173, 168, 164, 169, 164, 160, 167, 162, 158, 172, 165, 159, 177, 170, 164, 183, 176, 170, 187, 180, 174, 188, 181, 175, 188, 181, 175, 188, 181, 175, 188, 181, 175, 195, 188, 182, 194, 187, 181, 193, 186, 180, 192, 185, 179, 194, 187, 181, 198, 191, 185, 202, 195, 189, 204, 197, 191, 204, 199, 193, 203, 198, 192, 200, 195, 191, 198, 193, 189, 197, 192, 188, 196, 191, 187, 197, 192, 188, 197, 192, 188, 202, 197, 194, 204, 199, 196, 207, 202, 199, 209, 204, 201, 211, 206, 203, 211, 206, 203, 210, 204, 204, 209, 203, 203, 212, 208, 207, 212, 208, 207, 213, 209, 208, 214, 210, 209, 215, 213, 214, 217, 215, 216, 219, 219, 221, 220, 220, 222, 219, 218, 223, 224, 223, 228, 228, 229, 233, 232, 233, 237, 232, 235, 240, 235, 238, 243, 239, 242, 247, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 237, 240, 245, 236, 239, 244, 236, 239, 244, 236, 239, 244, 235, 238, 243, 235, 238, 243, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 229, 234, 240, 233, 238, 244, 233, 238, 244, 230, 235, 241, 229, 234, 240, 231, 236, 242, 230, 235, 241, 227, 230, 235, 218, 220, 219, 208, 203, 200, 196, 181, 176, 184, 159, 152, 169, 135, 125, 152, 110, 96, 138, 92, 76, 133, 84, 67, 141, 90, 73, 135, 84, 67, 131, 79, 65, 133, 81, 68, 140, 92, 80, 149, 105, 92, 155, 116, 101, 156, 120, 106, 159, 125, 115, 159, 129, 121, 152, 127, 123, 141, 120, 119, 129, 109, 110, 118, 97, 96, 103, 78, 74, 91, 62, 56, 80, 50, 40, 79, 47, 36, 79, 45, 35, 84, 50, 38, 91, 55, 41, 91, 54, 38, 86, 44, 28, 78, 35, 18, 68, 24, 11, 69, 25, 14, 71, 25, 12, 68, 22, 9, 67, 19, 5, 68, 19, 5, 72, 20, 6, 74, 22, 8, 80, 27, 13, 83, 30, 16, 86, 34, 20, 91, 39, 26, 97, 45, 32, 104, 55, 41, 115, 65, 54, 121, 72, 65, 133, 87, 89, 140, 99, 103, 144, 112, 115, 140, 116, 116, 136, 118, 118, 136, 121, 118, 139, 121, 117, 142, 118, 114, 128, 97, 92, 125, 88, 82, 125, 82, 76, 132, 87, 81, 138, 95, 88, 138, 100, 91, 138, 104, 95, 138, 108, 98, 140, 110, 102, 140, 111, 105, 142, 113, 109, 143, 115, 111, 146, 118, 115, 147, 121, 120, 148, 124, 124, 147, 126, 125, 149, 129, 130, 147, 129, 129, 145, 127, 127, 140, 124, 124, 137, 123, 122, 136, 122, 121, 133, 122, 120, 133, 122, 120, 126, 111, 108, 121, 106, 103, 118, 103, 100, 121, 106, 103, 128, 113, 110, 132, 117, 114, 129, 114, 111, 124, 109, 106, 108, 93, 90, 105, 90, 87, 90, 75, 72, 73, 58, 55, 79, 64, 61, 105, 90, 87, 124, 109, 106, 126, 111, 108, 88, 73, 68, 90, 75, 70, 91, 76, 71, 88, 73, 68, 85, 71, 68, 87, 73, 70, 95, 81, 78, 102, 88, 85, 96, 82, 79, 110, 96, 93, 109, 98, 96, 90, 79, 77, 66, 55, 53, 56, 45, 43, 78, 67, 65, 114, 104, 102, 124, 116, 113, 103, 95, 92, 56, 48, 45, 44, 36, 33, 93, 85, 82, 120, 112, 109, 84, 76, 73, 39, 31, 28, 70, 62, 59, 73, 65, 62, 73, 65, 62, 96, 88, 85, 145, 137, 134, 168, 160, 157, 140, 132, 129, 104, 96, 93, 127, 122, 118, 124, 119, 115, 44, 36, 33, 81, 73, 70, 140, 130, 128, 111, 101, 99, 110, 99, 97, 92, 81, 79, 78, 67, 65, 85, 74, 72, 119, 109, 107, 115, 105, 103, 90, 80, 78, 94, 86, 83, 103, 95, 92, 109, 104, 100, 132, 127, 123, 73, 68, 64, 150, 145, 141, 198, 193, 189, 123, 118, 114, 87, 82, 78, 86, 81, 77, 58, 53, 49, 45, 40, 36, 124, 119, 115, 119, 114, 110, 110, 105, 101, 176, 171, 167, 177, 172, 168, 107, 102, 98, 83, 78, 74, 73, 70, 63, 105, 102, 95, 100, 95, 91, 62, 54, 51, 98, 88, 86, 104, 93, 91, 122, 112, 110, 138, 128, 126, 132, 127, 124, 127, 123, 120, 46, 45, 41, 85, 86, 81, 167, 168, 163, 165, 166, 161, 136, 136, 134, 69, 68, 66, 133, 129, 128, 192, 186, 186, 85, 77, 75, 71, 63, 61, 130, 122, 119, 97, 89, 86, 104, 97, 91, 125, 118, 112, 111, 102, 97, 124, 115, 110, 135, 126, 121, 112, 103, 98, 92, 83, 78, 125, 116, 111, 145, 135, 133, 114, 104, 102, 123, 112, 108, 88, 77, 73, 83, 72, 68, 98, 87, 83, 115, 104, 100, 143, 132, 128, 111, 100, 96, 126, 115, 111, 147, 136, 132, 113, 102, 98, 122, 111, 107, 156, 145, 141, 155, 144, 140, 137, 126, 122, 128, 117, 113, 122, 111, 107, 110, 100, 98, 120, 110, 108, 99, 89, 87, 73, 63, 61, 109, 99, 97, 139, 129, 127, 113, 104, 99, 99, 90, 85, 85, 74, 70, 125, 114, 110, 138, 127, 123, 143, 132, 128, 136, 123, 117, 107, 94, 88, 107, 94, 88, 125, 112, 106, 132, 119, 111, 143, 130, 122, 143, 132, 126, 80, 71, 64, 122, 112, 110, 120, 112, 109, 89, 84, 81, 133, 128, 125, 138, 134, 133, 132, 128, 127, 154, 150, 149, 182, 178, 177, 175, 169, 169, 132, 126, 126, 118, 113, 110, 147, 142, 139, 139, 131, 128, 103, 95, 92, 156, 148, 145, 143, 135, 132, 133, 125, 122, 106, 98, 95, 87, 78, 73, 101, 92, 87, 124, 113, 109, 132, 121, 117, 123, 109, 106, 108, 94, 91, 102, 89, 83, 90, 77, 71, 91, 76, 71, 115, 100, 95, 139, 125, 122, 117, 103, 100, 113, 99, 96, 118, 104, 101, 118, 107, 103, 103, 92, 88, 93, 84, 79, 122, 113, 108, 130, 121, 116, 133, 124, 119, 137, 126, 122, 115, 104, 100, 113, 99, 96, 130, 116, 113, 126, 112, 109, 119, 105, 102, 116, 105, 101, 155, 144, 140, 135, 124, 120, 143, 132, 128, 140, 129, 125, 141, 130, 126, 112, 101, 97, 108, 97, 93, 90, 79, 75, 138, 127, 123, 152, 141, 137, 132, 121, 117, 121, 110, 106, 131, 120, 116, 147, 136, 132, 152, 141, 137, 135, 124, 120, 139, 128, 124, 117, 106, 102, 113, 102, 98, 122, 111, 107, 121, 110, 106, 82, 72, 70, 115, 105, 103, 91, 81, 79, 94, 84, 82, 86, 78, 75, 108, 100, 97, 130, 122, 120, 118, 110, 108, 101, 93, 91, 83, 75, 73, 73, 65, 63, 99, 91, 89, 116, 108, 106, 110, 102, 100, 84, 76, 73, 103, 95, 92, 147, 139, 136, 133, 125, 122, 93, 85, 82, 89, 81, 78, 130, 123, 117, 94, 87, 81, 121, 114, 108, 183, 176, 170, 122, 115, 109, 106, 99, 93, 144, 133, 129, 153, 142, 138, 135, 124, 120, 122, 111, 107, 133, 122, 118, 132, 121, 117, 132, 121, 117, 153, 142, 138, 144, 133, 129, 130, 119, 115, 125, 114, 110, 138, 127, 123, 147, 136, 132, 139, 128, 124, 124, 113, 109, 117, 106, 102, 159, 150, 145, 150, 141, 136, 130, 121, 116, 124, 115, 110, 127, 118, 113, 111, 102, 97, 108, 99, 94, 135, 126, 121, 148, 139, 134, 131, 122, 117, 136, 127, 122, 144, 135, 130, 128, 119, 114, 119, 110, 105, 129, 120, 115, 136, 127, 122, 109, 102, 96, 101, 94, 88, 106, 99, 93, 136, 129, 123, 150, 143, 137, 122, 115, 109, 107, 98, 93, 128, 119, 114, 141, 132, 127, 122, 113, 108, 124, 115, 110, 151, 140, 136, 161, 150, 146, 147, 136, 132, 143, 129, 126, 152, 141, 137, 155, 144, 138, 147, 136, 130, 143, 132, 126, 151, 140, 134, 164, 153, 149, 168, 157, 153, 159, 148, 144, 148, 137, 133, 139, 128, 124, 158, 147, 143, 173, 162, 160, 172, 161, 159, 161, 150, 148, 155, 144, 142, 155, 144, 142, 158, 147, 145, 134, 125, 120, 140, 133, 127, 146, 139, 133, 143, 136, 130, 133, 126, 120, 124, 117, 111, 121, 114, 108, 121, 114, 108, 111, 104, 98, 105, 98, 92, 105, 98, 92, 121, 114, 108, 143, 136, 130, 153, 146, 140, 147, 140, 134, 136, 129, 123, 122, 115, 109, 100, 93, 87, 85, 78, 72, 93, 86, 80, 113, 106, 100, 126, 119, 113, 128, 121, 115, 125, 118, 112, 112, 105, 99, 109, 102, 96, 123, 116, 110, 145, 138, 132, 147, 140, 134, 129, 122, 116, 121, 114, 108, 128, 121, 115, 118, 110, 107, 118, 110, 107, 110, 102, 99, 99, 91, 88, 101, 93, 90, 120, 112, 109, 145, 137, 134, 161, 153, 150, 158, 150, 147, 156, 148, 145, 143, 135, 132, 126, 118, 115, 125, 117, 114, 136, 128, 125, 138, 130, 127, 130, 123, 117, 120, 115, 109, 122, 118, 109, 131, 127, 118, 145, 141, 132, 159, 154, 148, 164, 159, 153, 161, 156, 150, 155, 150, 144, 162, 157, 151, 167, 162, 156, 172, 167, 163, 173, 168, 164, 169, 164, 160, 166, 161, 157, 168, 163, 159, 170, 165, 161, 176, 169, 163, 180, 173, 167, 184, 177, 171, 186, 179, 173, 186, 179, 173, 185, 178, 172, 186, 179, 173, 187, 180, 174, 197, 190, 184, 196, 189, 183, 196, 189, 183, 196, 189, 183, 198, 191, 185, 202, 195, 189, 205, 198, 192, 208, 201, 195, 204, 199, 193, 202, 197, 191, 198, 193, 189, 195, 190, 186, 193, 188, 184, 193, 188, 184, 194, 189, 185, 195, 190, 186, 201, 196, 193, 203, 198, 195, 206, 201, 198, 208, 203, 200, 209, 204, 201, 209, 204, 201, 208, 202, 202, 207, 201, 201, 211, 207, 206, 211, 207, 206, 211, 207, 206, 213, 209, 208, 213, 211, 212, 215, 213, 214, 216, 216, 218, 218, 218, 220, 216, 215, 220, 221, 220, 225, 226, 227, 231, 231, 232, 236, 233, 236, 241, 236, 239, 244, 241, 244, 249, 244, 247, 252, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 232, 235, 240, 232, 235, 240, 232, 235, 240, 232, 235, 240, 232, 235, 240, 232, 235, 240, 232, 235, 240, 232, 235, 240, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 237, 240, 245, 236, 239, 244, 236, 239, 244, 236, 239, 244, 235, 238, 243, 235, 238, 243, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 230, 235, 241, 234, 239, 245, 234, 239, 245, 230, 235, 241, 227, 232, 238, 229, 234, 240, 229, 234, 240, 227, 232, 236, 226, 230, 233, 214, 214, 214, 203, 193, 191, 191, 172, 166, 176, 146, 136, 156, 118, 105, 140, 97, 81, 135, 88, 70, 139, 88, 71, 136, 85, 68, 138, 86, 72, 146, 97, 83, 159, 112, 102, 164, 124, 114, 161, 125, 113, 154, 122, 111, 153, 120, 113, 151, 122, 118, 145, 119, 118, 134, 112, 114, 125, 105, 106, 116, 94, 96, 104, 79, 75, 94, 65, 59, 95, 62, 53, 89, 55, 43, 81, 47, 35, 78, 44, 32, 82, 46, 32, 83, 44, 27, 79, 38, 20, 73, 30, 13, 67, 23, 10, 68, 24, 11, 68, 22, 9, 65, 19, 6, 67, 19, 5, 71, 23, 9, 74, 25, 10, 72, 23, 8, 77, 25, 11, 80, 28, 14, 85, 32, 18, 88, 35, 21, 92, 39, 25, 97, 45, 31, 104, 52, 38, 107, 57, 46, 123, 75, 71, 133, 91, 92, 143, 107, 107, 143, 115, 114, 138, 117, 116, 137, 117, 116, 138, 117, 114, 139, 114, 110, 132, 101, 98, 130, 93, 87, 129, 88, 82, 134, 91, 84, 135, 95, 87, 135, 97, 88, 134, 100, 90, 138, 105, 96, 145, 112, 105, 145, 115, 107, 149, 118, 113, 152, 123, 119, 155, 125, 123, 155, 127, 126, 153, 127, 128, 151, 127, 127, 138, 116, 118, 138, 120, 120, 140, 121, 123, 139, 123, 124, 138, 124, 124, 136, 122, 122, 132, 120, 120, 130, 119, 117, 125, 110, 107, 124, 109, 106, 122, 107, 104, 119, 104, 101, 117, 102, 99, 115, 100, 97, 114, 99, 96, 114, 99, 96, 126, 111, 108, 133, 118, 115, 130, 115, 112, 107, 92, 89, 83, 68, 65, 82, 67, 64, 103, 88, 85, 124, 109, 106, 93, 78, 73, 95, 80, 75, 92, 79, 73, 85, 72, 66, 78, 64, 61, 78, 64, 61, 88, 74, 71, 98, 84, 81, 100, 89, 85, 116, 105, 101, 118, 107, 105, 107, 96, 94, 90, 79, 77, 66, 55, 53, 59, 49, 47, 75, 65, 63, 115, 107, 104, 127, 119, 116, 101, 93, 90, 52, 44, 41, 55, 47, 44, 104, 96, 93, 113, 105, 102, 75, 67, 64, 88, 80, 77, 80, 72, 69, 65, 57, 54, 50, 42, 39, 60, 52, 49, 108, 100, 97, 155, 147, 144, 170, 162, 159, 143, 138, 134, 137, 134, 129, 69, 64, 60, 72, 67, 63, 127, 119, 116, 118, 110, 107, 109, 99, 97, 118, 108, 106, 103, 92, 90, 87, 76, 74, 91, 80, 78, 118, 108, 106, 108, 98, 96, 87, 77, 75, 87, 77, 75, 64, 56, 53, 116, 111, 107, 138, 133, 129, 107, 102, 98, 109, 104, 100, 179, 174, 170, 139, 134, 130, 51, 46, 42, 85, 80, 76, 65, 60, 56, 81, 76, 72, 118, 113, 109, 115, 110, 106, 105, 100, 96, 165, 160, 156, 178, 173, 169, 96, 91, 87, 71, 68, 61, 73, 70, 63, 109, 104, 100, 69, 61, 58, 76, 66, 64, 85, 75, 73, 99, 88, 86, 125, 115, 113, 133, 123, 122, 144, 136, 134, 74, 70, 67, 52, 51, 47, 121, 122, 117, 179, 180, 175, 161, 161, 159, 77, 77, 75, 92, 88, 87, 177, 173, 172, 135, 130, 127, 72, 67, 64, 101, 96, 92, 110, 105, 101, 99, 92, 86, 115, 108, 102, 93, 86, 80, 85, 78, 72, 116, 107, 102, 123, 114, 109, 92, 83, 78, 107, 98, 93, 141, 130, 128, 127, 116, 114, 124, 113, 109, 113, 102, 98, 78, 67, 63, 96, 85, 81, 114, 103, 99, 145, 134, 130, 123, 112, 108, 123, 112, 108, 145, 134, 130, 99, 88, 84, 104, 93, 89, 147, 136, 132, 156, 145, 141, 141, 130, 126, 126, 115, 111, 111, 100, 96, 105, 95, 93, 104, 94, 92, 97, 87, 85, 78, 68, 66, 104, 94, 92, 136, 126, 124, 111, 102, 97, 91, 82, 77, 87, 76, 72, 115, 104, 100, 130, 119, 115, 144, 133, 129, 130, 117, 111, 108, 95, 89, 122, 109, 103, 127, 114, 108, 132, 119, 111, 140, 127, 119, 140, 129, 123, 99, 90, 83, 133, 123, 121, 126, 118, 115, 109, 104, 101, 125, 120, 117, 132, 128, 127, 132, 128, 127, 147, 146, 144, 183, 182, 180, 191, 187, 186, 152, 148, 147, 127, 123, 120, 139, 135, 132, 156, 151, 147, 104, 99, 95, 144, 139, 135, 139, 134, 130, 122, 114, 111, 108, 100, 97, 108, 99, 94, 73, 64, 59, 118, 107, 103, 139, 128, 124, 133, 122, 118, 117, 106, 102, 116, 103, 97, 103, 90, 84, 93, 80, 74, 106, 93, 87, 129, 115, 112, 124, 110, 107, 126, 112, 109, 109, 95, 92, 102, 91, 87, 99, 88, 84, 83, 74, 69, 100, 91, 86, 115, 106, 101, 133, 124, 119, 152, 141, 137, 128, 117, 113, 121, 107, 104, 134, 120, 117, 124, 110, 107, 123, 109, 106, 104, 93, 89, 138, 127, 123, 122, 111, 107, 137, 126, 122, 130, 119, 115, 143, 132, 128, 135, 124, 120, 124, 113, 109, 111, 100, 96, 129, 118, 114, 157, 146, 142, 161, 150, 146, 140, 129, 125, 131, 120, 116, 137, 126, 122, 144, 133, 129, 127, 116, 112, 133, 122, 118, 127, 116, 112, 129, 118, 114, 113, 102, 98, 120, 109, 105, 83, 73, 71, 95, 85, 83, 94, 84, 82, 88, 78, 76, 82, 74, 71, 111, 103, 100, 122, 114, 112, 112, 104, 102, 106, 98, 96, 76, 68, 66, 55, 47, 45, 104, 96, 94, 116, 108, 106, 103, 95, 93, 99, 91, 88, 124, 116, 113, 148, 140, 137, 123, 115, 112, 65, 57, 54, 76, 68, 65, 111, 104, 98, 123, 116, 110, 164, 157, 151, 155, 148, 142, 92, 85, 79, 127, 120, 114, 155, 144, 140, 146, 135, 131, 140, 129, 125, 139, 128, 124, 132, 121, 117, 121, 110, 106, 127, 116, 112, 144, 133, 129, 121, 110, 106, 128, 117, 113, 145, 134, 130, 154, 143, 139, 138, 127, 123, 114, 103, 99, 114, 103, 99, 130, 119, 115, 141, 132, 127, 129, 120, 115, 134, 125, 120, 123, 114, 109, 104, 95, 90, 130, 121, 116, 149, 140, 135, 118, 109, 104, 138, 129, 124, 125, 116, 111, 148, 139, 134, 160, 151, 146, 131, 122, 117, 124, 115, 110, 136, 127, 122, 126, 117, 112, 105, 98, 92, 139, 134, 128, 131, 124, 118, 102, 95, 89, 117, 108, 103, 145, 136, 131, 156, 147, 142, 162, 153, 148, 138, 127, 123, 140, 129, 125, 155, 144, 140, 175, 161, 158, 174, 160, 157, 157, 143, 140, 147, 132, 129, 148, 134, 131, 153, 142, 136, 143, 132, 126, 133, 122, 116, 134, 123, 117, 143, 132, 128, 154, 143, 139, 159, 148, 144, 159, 148, 144, 186, 175, 171, 151, 140, 136, 117, 106, 104, 107, 96, 94, 117, 106, 104, 126, 115, 113, 124, 113, 111, 120, 109, 107, 119, 110, 105, 117, 108, 103, 106, 97, 92, 87, 78, 73, 72, 63, 58, 74, 65, 60, 93, 84, 79, 111, 102, 97, 123, 114, 109, 128, 119, 114, 134, 125, 120, 137, 128, 123, 137, 128, 123, 137, 128, 123, 139, 130, 125, 141, 132, 127, 127, 120, 114, 117, 110, 104, 114, 107, 101, 128, 121, 115, 143, 136, 130, 147, 140, 134, 139, 132, 126, 131, 124, 118, 129, 122, 116, 121, 114, 108, 118, 111, 105, 122, 115, 109, 125, 118, 112, 127, 120, 114, 135, 128, 122, 146, 139, 133, 109, 101, 98, 118, 110, 107, 127, 119, 116, 134, 126, 123, 144, 136, 133, 147, 139, 136, 135, 127, 124, 119, 111, 108, 124, 116, 113, 129, 121, 118, 125, 117, 114, 119, 111, 108, 126, 118, 115, 139, 131, 128, 138, 130, 127, 126, 119, 113, 145, 140, 134, 145, 141, 132, 150, 146, 137, 157, 153, 144, 153, 148, 142, 142, 137, 131, 141, 136, 130, 148, 143, 137, 167, 162, 156, 170, 165, 159, 172, 167, 163, 171, 166, 162, 168, 163, 159, 167, 162, 158, 169, 164, 160, 172, 167, 163, 178, 171, 165, 181, 174, 168, 184, 177, 171, 184, 177, 171, 184, 177, 171, 185, 178, 172, 188, 181, 175, 190, 183, 177, 193, 186, 180, 193, 186, 180, 194, 187, 181, 196, 189, 183, 198, 191, 185, 201, 194, 188, 204, 197, 191, 205, 198, 192, 199, 194, 188, 197, 192, 186, 194, 189, 185, 192, 187, 183, 192, 187, 183, 194, 189, 185, 196, 191, 187, 198, 193, 189, 202, 197, 194, 204, 199, 196, 206, 201, 198, 209, 204, 201, 210, 205, 202, 209, 204, 201, 208, 202, 202, 207, 201, 201, 210, 206, 205, 210, 206, 205, 210, 206, 205, 211, 207, 206, 211, 209, 210, 213, 211, 212, 214, 214, 216, 215, 215, 217, 217, 216, 221, 222, 221, 226, 227, 228, 232, 231, 232, 236, 232, 235, 240, 236, 239, 244, 240, 243, 248, 243, 246, 251, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 232, 235, 240, 232, 235, 240, 232, 235, 240, 232, 235, 240, 232, 235, 240, 232, 235, 240, 232, 235, 240, 232, 235, 240, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 237, 240, 245, 236, 239, 244, 236, 239, 244, 236, 239, 244, 235, 238, 243, 235, 238, 243, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 230, 235, 241, 235, 240, 246, 235, 240, 246, 229, 234, 240, 226, 231, 237, 228, 233, 239, 228, 233, 239, 226, 231, 237, 229, 234, 240, 216, 220, 223, 205, 199, 199, 192, 178, 175, 176, 151, 144, 155, 123, 112, 140, 98, 84, 135, 88, 72, 139, 88, 71, 150, 99, 80, 162, 113, 98, 171, 123, 109, 168, 124, 113, 155, 117, 108, 141, 107, 98, 130, 100, 92, 153, 122, 117, 152, 124, 121, 144, 120, 120, 133, 113, 114, 125, 105, 107, 117, 95, 97, 107, 82, 78, 99, 70, 62, 90, 58, 47, 83, 49, 37, 76, 42, 30, 77, 41, 27, 81, 44, 28, 82, 43, 26, 79, 38, 20, 74, 31, 14, 67, 24, 8, 67, 23, 10, 66, 20, 7, 63, 17, 4, 68, 20, 6, 74, 26, 12, 76, 27, 13, 73, 24, 9, 76, 24, 10, 78, 26, 12, 83, 30, 16, 86, 33, 17, 88, 35, 19, 91, 38, 22, 96, 43, 27, 99, 47, 34, 116, 67, 60, 130, 85, 80, 143, 103, 101, 145, 111, 109, 142, 112, 110, 141, 113, 112, 140, 112, 111, 137, 109, 106, 139, 108, 105, 136, 101, 95, 134, 95, 88, 133, 94, 87, 132, 93, 86, 130, 91, 84, 132, 95, 87, 136, 102, 93, 144, 109, 103, 146, 113, 106, 152, 119, 114, 155, 124, 119, 158, 129, 125, 158, 130, 127, 157, 129, 128, 153, 129, 129, 147, 125, 127, 149, 129, 130, 151, 132, 134, 149, 133, 134, 144, 130, 130, 137, 123, 123, 127, 115, 115, 121, 110, 108, 131, 116, 113, 131, 116, 113, 126, 111, 108, 115, 100, 97, 101, 86, 83, 92, 77, 74, 90, 75, 72, 91, 76, 73, 104, 89, 86, 102, 87, 84, 111, 96, 93, 126, 111, 108, 129, 114, 111, 119, 104, 101, 113, 98, 95, 117, 102, 99, 98, 83, 78, 98, 83, 78, 92, 79, 73, 81, 68, 62, 71, 57, 54, 71, 57, 54, 83, 69, 66, 95, 81, 78, 115, 104, 100, 110, 99, 95, 96, 85, 83, 97, 86, 84, 109, 98, 96, 96, 85, 83, 69, 59, 57, 62, 52, 50, 97, 89, 86, 104, 96, 93, 121, 113, 110, 105, 97, 94, 73, 65, 62, 89, 81, 78, 105, 97, 94, 78, 70, 67, 73, 65, 62, 73, 65, 62, 82, 74, 71, 72, 64, 61, 52, 44, 41, 72, 64, 61, 107, 99, 96, 112, 107, 103, 174, 169, 165, 145, 142, 137, 127, 122, 118, 96, 91, 87, 92, 84, 81, 101, 93, 90, 99, 89, 87, 121, 111, 109, 113, 102, 100, 80, 69, 67, 65, 54, 52, 118, 107, 105, 118, 108, 106, 86, 76, 74, 95, 85, 83, 69, 61, 58, 89, 81, 78, 123, 118, 114, 156, 151, 147, 122, 117, 113, 123, 118, 114, 180, 175, 171, 149, 144, 140, 60, 55, 51, 67, 62, 58, 80, 75, 71, 95, 90, 86, 109, 104, 100, 113, 108, 104, 110, 105, 101, 142, 137, 133, 195, 192, 187, 110, 107, 100, 75, 75, 67, 131, 128, 123, 90, 85, 81, 74, 66, 63, 72, 62, 60, 64, 54, 52, 88, 77, 75, 99, 89, 88, 135, 125, 124, 125, 120, 117, 58, 54, 51, 72, 71, 67, 165, 166, 161, 179, 181, 178, 136, 136, 134, 76, 75, 73, 123, 119, 118, 175, 171, 168, 103, 98, 95, 65, 60, 56, 113, 108, 104, 106, 99, 93, 101, 94, 88, 106, 99, 93, 78, 71, 65, 111, 102, 97, 140, 131, 126, 110, 101, 96, 102, 93, 88, 129, 118, 116, 132, 121, 119, 113, 102, 98, 133, 122, 118, 87, 76, 72, 97, 86, 82, 108, 97, 93, 139, 128, 124, 131, 120, 116, 128, 117, 113, 129, 118, 114, 81, 70, 66, 85, 74, 70, 131, 120, 116, 150, 139, 135, 146, 135, 131, 130, 119, 115, 104, 93, 89, 104, 94, 92, 101, 91, 89, 112, 102, 100, 101, 91, 89, 116, 106, 104, 143, 133, 131, 117, 108, 103, 92, 83, 78, 94, 83, 79, 104, 93, 89, 112, 101, 97, 127, 116, 112, 112, 99, 93, 102, 89, 83, 131, 118, 112, 129, 116, 110, 132, 119, 111, 138, 125, 117, 137, 126, 120, 112, 103, 96, 143, 133, 131, 131, 123, 120, 125, 120, 117, 122, 118, 115, 137, 133, 132, 122, 121, 119, 134, 133, 131, 179, 178, 176, 199, 198, 196, 173, 172, 170, 144, 140, 137, 127, 123, 120, 160, 155, 151, 108, 103, 99, 151, 146, 142, 146, 141, 137, 109, 101, 98, 114, 106, 103, 146, 137, 132, 79, 70, 65, 111, 100, 96, 148, 137, 133, 151, 140, 136, 133, 122, 118, 135, 122, 116, 123, 110, 104, 103, 90, 84, 101, 88, 82, 91, 77, 74, 126, 112, 109, 139, 125, 122, 92, 78, 75, 81, 70, 66, 107, 96, 92, 90, 81, 76, 78, 69, 64, 98, 89, 84, 112, 103, 98, 145, 134, 130, 138, 127, 123, 126, 112, 109, 116, 102, 99, 103, 89, 86, 125, 111, 108, 110, 99, 95, 108, 97, 93, 96, 85, 81, 139, 128, 124, 128, 117, 113, 139, 128, 124, 146, 135, 131, 134, 123, 119, 137, 126, 122, 112, 101, 97, 139, 128, 124, 173, 162, 158, 158, 147, 143, 128, 117, 113, 119, 108, 104, 123, 112, 108, 117, 106, 102, 121, 110, 106, 136, 125, 121, 151, 140, 136, 117, 106, 102, 136, 125, 121, 108, 98, 96, 100, 90, 88, 100, 90, 88, 89, 79, 77, 81, 73, 70, 107, 99, 96, 114, 106, 104, 111, 103, 101, 111, 103, 101, 67, 59, 57, 57, 49, 47, 97, 89, 87, 90, 82, 80, 92, 84, 82, 120, 112, 109, 129, 121, 118, 120, 112, 109, 98, 90, 87, 66, 58, 55, 65, 57, 54, 99, 92, 86, 165, 158, 152, 176, 169, 163, 110, 103, 97, 89, 82, 76, 147, 140, 134, 157, 146, 142, 125, 114, 110, 148, 137, 133, 152, 141, 137, 100, 89, 85, 101, 90, 86, 126, 115, 111, 100, 89, 85, 112, 101, 97, 135, 124, 120, 159, 148, 144, 147, 136, 132, 99, 88, 84, 70, 59, 55, 103, 92, 88, 158, 147, 143, 131, 122, 117, 145, 136, 131, 119, 110, 105, 105, 96, 91, 141, 132, 127, 154, 145, 140, 138, 129, 124, 139, 130, 125, 152, 143, 138, 145, 136, 131, 144, 135, 130, 146, 137, 132, 135, 126, 121, 120, 111, 106, 135, 126, 121, 166, 157, 152, 165, 158, 152, 137, 132, 126, 133, 126, 120, 147, 140, 134, 155, 146, 141, 154, 145, 140, 152, 143, 138, 147, 138, 133, 161, 150, 146, 170, 159, 155, 155, 141, 138, 118, 104, 101, 110, 95, 92, 132, 117, 114, 143, 128, 125, 133, 118, 115, 136, 123, 117, 139, 128, 122, 141, 130, 124, 135, 124, 118, 127, 116, 112, 130, 119, 115, 146, 135, 131, 161, 150, 146, 146, 135, 131, 124, 113, 109, 108, 97, 95, 106, 95, 93, 104, 93, 91, 91, 80, 78, 78, 67, 65, 74, 63, 61, 78, 69, 64, 77, 68, 63, 77, 68, 63, 79, 70, 65, 87, 78, 73, 103, 94, 89, 122, 113, 108, 136, 127, 122, 98, 89, 84, 99, 90, 85, 103, 94, 89, 109, 100, 95, 118, 109, 104, 127, 118, 113, 134, 125, 120, 138, 129, 124, 143, 136, 130, 144, 137, 131, 145, 138, 132, 143, 136, 130, 132, 125, 119, 118, 111, 105, 113, 106, 100, 115, 108, 102, 126, 119, 113, 127, 120, 114, 127, 120, 114, 132, 125, 119, 141, 134, 128, 141, 134, 128, 122, 115, 109, 99, 92, 86, 138, 130, 127, 137, 129, 126, 128, 120, 117, 113, 105, 102, 109, 101, 98, 118, 110, 107, 124, 116, 113, 123, 115, 112, 136, 128, 125, 130, 122, 119, 133, 125, 122, 140, 132, 129, 137, 129, 126, 131, 123, 120, 140, 132, 129, 157, 150, 144, 133, 128, 122, 133, 129, 120, 139, 135, 126, 145, 141, 132, 137, 132, 126, 130, 125, 119, 148, 143, 137, 176, 171, 165, 173, 168, 162, 172, 167, 161, 170, 165, 161, 169, 164, 160, 170, 165, 161, 171, 166, 162, 172, 167, 163, 172, 167, 163, 171, 164, 158, 172, 165, 159, 174, 167, 161, 175, 168, 162, 176, 169, 163, 178, 171, 165, 183, 176, 170, 187, 180, 174, 187, 180, 174, 188, 181, 175, 190, 183, 177, 192, 185, 179, 195, 188, 182, 197, 190, 184, 198, 191, 185, 199, 192, 186, 195, 190, 184, 193, 188, 182, 192, 187, 183, 191, 186, 182, 193, 188, 184, 196, 191, 187, 201, 196, 192, 203, 198, 194, 204, 199, 196, 205, 200, 197, 208, 203, 200, 210, 205, 202, 211, 206, 203, 210, 205, 202, 209, 203, 203, 208, 202, 202, 209, 205, 204, 209, 205, 204, 209, 205, 204, 210, 206, 205, 209, 207, 208, 212, 210, 211, 213, 213, 215, 214, 214, 216, 220, 219, 224, 224, 223, 228, 229, 230, 234, 232, 233, 237, 232, 235, 240, 234, 237, 242, 237, 240, 245, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 234, 237, 242, 234, 237, 242, 234, 237, 242, 235, 238, 243, 235, 238, 243, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 237, 240, 245, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 230, 235, 241, 222, 229, 235, 227, 232, 236, 222, 222, 224, 201, 193, 190, 176, 157, 151, 154, 126, 115, 139, 101, 88, 132, 86, 70, 166, 117, 100, 175, 124, 105, 168, 119, 104, 147, 101, 86, 131, 88, 79, 135, 98, 90, 148, 115, 108, 156, 125, 122, 157, 128, 124, 157, 131, 130, 148, 126, 128, 131, 111, 113, 119, 99, 101, 114, 92, 94, 107, 82, 78, 99, 69, 61, 94, 60, 50, 92, 56, 42, 85, 49, 35, 81, 45, 31, 79, 42, 26, 79, 40, 23, 78, 37, 19, 77, 34, 17, 74, 28, 13, 69, 23, 10, 64, 18, 5, 64, 18, 5, 68, 22, 9, 71, 25, 12, 71, 23, 11, 69, 21, 7, 66, 17, 3, 72, 23, 8, 80, 28, 14, 81, 29, 15, 81, 28, 12, 85, 32, 16, 97, 41, 26, 104, 51, 37, 133, 85, 73, 136, 89, 79, 139, 94, 88, 139, 98, 92, 140, 100, 98, 140, 102, 101, 140, 105, 103, 141, 107, 105, 139, 106, 101, 140, 107, 102, 140, 107, 100, 139, 104, 98, 135, 100, 94, 134, 97, 91, 134, 96, 93, 136, 98, 95, 144, 109, 103, 140, 107, 98, 145, 112, 105, 153, 122, 117, 154, 125, 121, 149, 121, 118, 153, 125, 124, 159, 135, 135, 145, 123, 125, 147, 127, 128, 149, 131, 131, 148, 132, 132, 147, 133, 132, 144, 130, 129, 130, 119, 117, 117, 106, 104, 122, 107, 104, 118, 103, 100, 116, 101, 98, 120, 105, 102, 123, 108, 105, 117, 102, 99, 103, 88, 85, 91, 76, 73, 95, 80, 77, 103, 88, 85, 120, 105, 102, 131, 116, 113, 124, 109, 106, 109, 94, 91, 107, 92, 89, 117, 102, 99, 109, 96, 90, 110, 97, 91, 89, 76, 70, 67, 54, 48, 62, 48, 45, 59, 45, 42, 66, 55, 51, 90, 79, 75, 97, 86, 82, 118, 107, 103, 119, 109, 107, 102, 92, 90, 103, 93, 91, 120, 110, 108, 111, 101, 99, 83, 73, 71, 92, 84, 81, 114, 106, 103, 123, 115, 112, 98, 90, 87, 76, 68, 65, 89, 81, 78, 102, 94, 91, 90, 82, 79, 75, 67, 64, 83, 75, 72, 71, 63, 60, 78, 70, 67, 100, 92, 89, 77, 69, 66, 61, 53, 50, 94, 89, 85, 125, 120, 116, 133, 130, 125, 171, 166, 162, 158, 153, 149, 138, 130, 127, 105, 97, 94, 68, 58, 56, 110, 100, 98, 119, 108, 106, 89, 78, 76, 65, 54, 52, 79, 68, 66, 88, 78, 76, 97, 87, 85, 101, 91, 89, 60, 52, 49, 66, 58, 55, 138, 133, 129, 110, 105, 101, 161, 156, 152, 117, 112, 108, 74, 69, 65, 195, 190, 186, 158, 153, 149, 53, 48, 44, 89, 84, 80, 106, 101, 97, 89, 84, 80, 116, 111, 107, 135, 130, 126, 108, 103, 99, 118, 115, 110, 186, 183, 176, 125, 125, 117, 119, 116, 111, 122, 117, 113, 79, 74, 70, 65, 57, 54, 84, 74, 72, 80, 70, 68, 72, 60, 60, 92, 82, 81, 140, 132, 130, 83, 78, 75, 65, 64, 60, 138, 139, 134, 154, 156, 153, 172, 172, 170, 96, 95, 93, 83, 82, 80, 167, 166, 162, 147, 143, 140, 60, 57, 52, 87, 84, 79, 108, 103, 97, 74, 69, 63, 97, 90, 84, 91, 84, 78, 113, 104, 99, 137, 128, 123, 129, 118, 114, 108, 97, 93, 108, 97, 95, 118, 107, 105, 123, 112, 108, 126, 115, 111, 93, 82, 78, 87, 76, 72, 109, 98, 94, 118, 107, 103, 128, 117, 113, 137, 126, 122, 127, 116, 112, 102, 91, 87, 90, 79, 75, 114, 103, 99, 160, 149, 145, 135, 124, 120, 141, 130, 126, 121, 110, 106, 118, 108, 106, 112, 102, 100, 135, 125, 123, 108, 98, 96, 117, 107, 105, 136, 126, 124, 107, 98, 93, 104, 95, 90, 80, 69, 65, 117, 106, 102, 119, 108, 104, 117, 106, 102, 118, 105, 99, 137, 124, 118, 110, 97, 91, 137, 124, 118, 147, 132, 125, 142, 129, 121, 134, 123, 117, 102, 93, 86, 91, 81, 79, 122, 114, 111, 147, 142, 139, 125, 121, 118, 141, 137, 136, 149, 148, 146, 134, 133, 131, 190, 190, 188, 203, 203, 201, 167, 167, 165, 166, 165, 161, 108, 107, 103, 148, 145, 140, 124, 119, 115, 139, 134, 130, 139, 134, 130, 98, 90, 87, 106, 98, 95, 128, 121, 115, 88, 81, 75, 80, 71, 66, 128, 119, 114, 157, 146, 142, 124, 113, 109, 121, 108, 102, 135, 122, 116, 113, 100, 94, 113, 100, 94, 96, 82, 79, 109, 95, 92, 116, 102, 99, 131, 117, 114, 88, 77, 73, 104, 93, 89, 99, 90, 85, 96, 87, 82, 108, 99, 94, 130, 121, 116, 123, 112, 108, 142, 131, 127, 120, 106, 103, 108, 94, 91, 151, 137, 134, 112, 98, 95, 98, 87, 83, 105, 94, 90, 136, 125, 121, 112, 101, 97, 149, 138, 134, 116, 105, 101, 137, 126, 122, 137, 126, 122, 104, 93, 89, 137, 126, 122, 129, 118, 114, 157, 146, 142, 168, 157, 153, 137, 126, 122, 129, 118, 114, 108, 97, 93, 116, 105, 101, 127, 116, 112, 126, 115, 111, 147, 136, 132, 144, 133, 129, 124, 113, 109, 123, 113, 111, 107, 97, 95, 110, 100, 98, 63, 53, 51, 72, 64, 61, 89, 81, 78, 85, 77, 75, 129, 121, 119, 132, 124, 122, 48, 40, 38, 90, 82, 80, 76, 68, 66, 46, 38, 36, 98, 90, 88, 106, 98, 95, 135, 127, 124, 125, 117, 114, 50, 42, 39, 55, 47, 44, 71, 63, 60, 113, 106, 100, 166, 159, 153, 122, 115, 109, 82, 75, 69, 136, 129, 123, 152, 145, 139, 134, 123, 119, 142, 131, 127, 103, 92, 88, 119, 108, 104, 87, 76, 72, 130, 119, 115, 112, 101, 97, 119, 108, 104, 132, 121, 117, 152, 141, 137, 154, 143, 139, 107, 96, 92, 73, 62, 58, 112, 101, 97, 157, 146, 142, 152, 141, 137, 149, 140, 135, 148, 139, 134, 131, 122, 117, 140, 131, 126, 166, 157, 152, 149, 140, 135, 129, 120, 115, 149, 140, 135, 166, 157, 152, 165, 156, 151, 150, 141, 136, 130, 121, 116, 131, 122, 117, 148, 139, 134, 151, 142, 137, 141, 132, 127, 151, 144, 138, 153, 146, 140, 151, 144, 138, 143, 136, 130, 134, 125, 120, 132, 123, 118, 140, 129, 125, 148, 137, 133, 144, 130, 127, 118, 104, 101, 97, 82, 79, 102, 87, 84, 124, 109, 106, 136, 121, 118, 125, 107, 105, 104, 89, 86, 110, 97, 91, 115, 104, 98, 120, 109, 103, 121, 110, 104, 122, 111, 107, 127, 116, 112, 134, 123, 119, 139, 128, 124, 142, 131, 127, 116, 105, 101, 108, 97, 95, 128, 117, 115, 140, 129, 127, 126, 115, 113, 109, 98, 96, 105, 94, 92, 95, 86, 81, 82, 73, 68, 65, 56, 51, 74, 65, 60, 102, 93, 88, 105, 96, 91, 95, 86, 81, 100, 91, 86, 95, 86, 81, 105, 96, 91, 120, 111, 106, 134, 125, 120, 145, 136, 131, 144, 135, 130, 129, 120, 115, 113, 104, 99, 143, 136, 130, 133, 126, 120, 122, 115, 109, 118, 111, 105, 121, 114, 108, 127, 120, 114, 130, 123, 117, 130, 123, 117, 145, 138, 132, 139, 132, 126, 133, 126, 120, 129, 122, 116, 125, 118, 112, 124, 117, 111, 133, 126, 120, 144, 137, 131, 135, 127, 124, 134, 126, 123, 125, 117, 114, 119, 111, 108, 112, 104, 101, 98, 90, 87, 95, 87, 84, 110, 102, 99, 118, 110, 107, 130, 122, 119, 143, 135, 132, 144, 136, 133, 135, 127, 124, 124, 116, 113, 119, 111, 108, 119, 112, 106, 126, 121, 115, 135, 131, 122, 143, 139, 130, 146, 142, 133, 152, 147, 141, 165, 160, 154, 176, 171, 165, 180, 175, 169, 163, 158, 152, 170, 165, 159, 177, 172, 168, 177, 172, 168, 172, 167, 163, 169, 164, 160, 172, 167, 163, 176, 171, 167, 178, 171, 165, 184, 177, 171, 190, 183, 177, 191, 184, 178, 187, 180, 174, 185, 178, 172, 186, 179, 173, 189, 182, 176, 190, 183, 177, 190, 183, 177, 190, 183, 177, 191, 184, 178, 192, 185, 179, 195, 188, 182, 197, 190, 184, 198, 191, 185, 191, 186, 180, 193, 188, 182, 196, 191, 187, 198, 193, 189, 199, 194, 190, 198, 193, 189, 196, 191, 187, 195, 190, 186, 200, 195, 192, 204, 199, 196, 208, 203, 200, 209, 204, 201, 207, 202, 199, 203, 198, 195, 202, 196, 196, 201, 195, 195, 197, 193, 192, 201, 197, 196, 205, 201, 200, 208, 204, 203, 207, 205, 206, 208, 206, 207, 210, 210, 212, 212, 212, 214, 220, 219, 224, 225, 224, 229, 230, 231, 235, 234, 235, 239, 235, 238, 243, 237, 240, 245, 239, 242, 247, 241, 244, 249, 239, 242, 247, 240, 243, 248, 241, 244, 249, 242, 245, 250, 243, 246, 251, 242, 245, 250, 242, 245, 250, 241, 244, 249, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 234, 237, 242, 234, 237, 242, 234, 237, 242, 235, 238, 243, 235, 238, 243, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 237, 240, 245, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 230, 235, 241, 228, 235, 241, 228, 235, 243, 227, 234, 240, 218, 222, 225, 199, 195, 194, 179, 166, 160, 168, 145, 137, 164, 130, 118, 164, 121, 105, 161, 114, 96, 155, 106, 89, 142, 95, 77, 132, 89, 73, 139, 99, 89, 155, 118, 110, 160, 127, 122, 156, 125, 122, 157, 129, 126, 157, 131, 130, 148, 126, 128, 132, 112, 114, 122, 103, 105, 120, 99, 98, 114, 86, 82, 103, 73, 63, 91, 57, 45, 88, 52, 38, 82, 46, 32, 78, 42, 28, 77, 40, 24, 77, 38, 21, 76, 35, 17, 76, 33, 16, 70, 24, 9, 67, 21, 8, 64, 18, 5, 66, 20, 7, 69, 23, 10, 71, 25, 12, 69, 23, 10, 66, 20, 7, 69, 21, 9, 70, 22, 8, 72, 23, 9, 73, 24, 9, 80, 28, 14, 92, 40, 26, 109, 56, 42, 120, 68, 54, 120, 73, 57, 123, 77, 62, 129, 81, 71, 132, 85, 77, 135, 87, 83, 137, 92, 89, 139, 98, 96, 142, 102, 100, 141, 106, 102, 140, 110, 102, 140, 110, 102, 139, 109, 101, 137, 104, 99, 137, 102, 100, 139, 101, 100, 140, 102, 101, 137, 102, 96, 136, 103, 94, 143, 110, 103, 152, 121, 116, 153, 124, 120, 148, 120, 117, 148, 122, 121, 154, 130, 128, 152, 128, 128, 149, 129, 130, 146, 126, 127, 143, 125, 125, 144, 128, 128, 148, 134, 133, 145, 131, 130, 139, 125, 122, 135, 120, 117, 130, 115, 112, 121, 106, 103, 111, 96, 93, 105, 90, 87, 105, 90, 87, 110, 95, 92, 114, 99, 96, 108, 93, 90, 103, 88, 85, 107, 92, 89, 122, 107, 104, 133, 118, 115, 125, 110, 107, 104, 89, 86, 87, 72, 69, 100, 87, 81, 110, 97, 91, 93, 80, 74, 66, 53, 47, 58, 44, 41, 57, 43, 40, 57, 46, 42, 65, 54, 50, 98, 87, 83, 112, 101, 97, 120, 110, 108, 116, 106, 104, 118, 108, 106, 124, 114, 112, 121, 111, 109, 110, 100, 98, 91, 83, 80, 103, 95, 92, 120, 112, 109, 113, 105, 102, 83, 75, 72, 71, 63, 60, 85, 77, 74, 97, 89, 86, 78, 70, 67, 90, 82, 79, 95, 87, 84, 91, 83, 80, 85, 77, 74, 75, 67, 64, 71, 63, 60, 78, 70, 67, 103, 98, 94, 100, 97, 92, 123, 118, 114, 156, 151, 147, 160, 152, 149, 150, 142, 139, 135, 125, 123, 97, 87, 85, 90, 79, 77, 121, 110, 108, 113, 102, 100, 85, 75, 73, 70, 60, 58, 87, 77, 75, 101, 91, 89, 63, 55, 52, 49, 44, 40, 86, 81, 77, 107, 102, 98, 123, 118, 114, 141, 136, 132, 98, 93, 89, 85, 80, 76, 178, 173, 169, 157, 152, 148, 82, 77, 73, 99, 94, 90, 118, 113, 109, 96, 91, 87, 119, 114, 110, 126, 121, 117, 91, 86, 82, 143, 140, 133, 180, 177, 170, 159, 156, 151, 108, 105, 100, 96, 93, 88, 100, 95, 91, 90, 82, 79, 85, 75, 73, 76, 66, 65, 67, 57, 56, 121, 111, 110, 126, 118, 116, 75, 71, 68, 106, 105, 101, 164, 164, 162, 160, 160, 158, 140, 140, 138, 117, 116, 114, 144, 143, 139, 164, 163, 159, 107, 104, 99, 74, 71, 66, 102, 97, 91, 104, 99, 93, 77, 70, 64, 98, 91, 85, 137, 128, 123, 149, 140, 135, 129, 118, 114, 121, 110, 106, 124, 113, 111, 116, 105, 103, 125, 114, 110, 124, 113, 109, 98, 87, 83, 100, 89, 85, 123, 112, 108, 137, 126, 122, 147, 136, 132, 139, 128, 124, 132, 121, 117, 106, 95, 91, 92, 81, 77, 108, 97, 93, 148, 137, 133, 124, 113, 109, 138, 127, 123, 134, 123, 119, 121, 111, 109, 117, 107, 105, 138, 128, 126, 122, 112, 110, 123, 113, 111, 126, 116, 114, 95, 86, 81, 109, 100, 95, 99, 88, 84, 95, 84, 80, 103, 92, 88, 117, 106, 102, 101, 88, 82, 124, 111, 105, 109, 96, 90, 120, 107, 101, 135, 120, 113, 133, 118, 111, 153, 140, 134, 131, 120, 114, 87, 77, 75, 113, 105, 102, 153, 148, 145, 134, 130, 127, 145, 144, 142, 148, 147, 145, 132, 132, 130, 172, 172, 170, 194, 194, 192, 173, 173, 171, 162, 163, 158, 126, 127, 122, 116, 113, 108, 150, 145, 141, 148, 143, 139, 122, 117, 113, 112, 104, 101, 100, 92, 89, 94, 87, 81, 105, 98, 92, 82, 73, 68, 101, 92, 87, 143, 132, 128, 138, 127, 123, 127, 114, 108, 138, 125, 119, 130, 117, 111, 123, 110, 104, 113, 99, 96, 121, 107, 104, 125, 111, 108, 142, 128, 125, 108, 97, 93, 116, 105, 101, 104, 95, 90, 98, 89, 84, 109, 100, 95, 133, 124, 119, 119, 108, 104, 127, 116, 112, 129, 115, 112, 113, 99, 96, 132, 118, 115, 130, 116, 113, 97, 86, 82, 111, 100, 96, 140, 129, 125, 126, 115, 111, 131, 120, 116, 133, 122, 118, 155, 144, 140, 143, 132, 128, 102, 91, 87, 130, 119, 115, 134, 123, 119, 147, 136, 132, 152, 141, 137, 136, 125, 121, 129, 118, 114, 123, 112, 108, 97, 86, 82, 109, 98, 94, 124, 113, 109, 152, 141, 137, 147, 136, 132, 129, 118, 114, 125, 115, 113, 99, 89, 87, 84, 74, 72, 76, 66, 64, 77, 69, 66, 71, 63, 60, 74, 66, 64, 110, 102, 100, 118, 110, 108, 79, 71, 69, 99, 91, 89, 78, 70, 68, 56, 48, 46, 109, 101, 99, 122, 114, 111, 123, 115, 112, 85, 77, 74, 48, 40, 37, 72, 64, 61, 88, 80, 77, 136, 129, 123, 154, 147, 141, 103, 96, 90, 98, 91, 85, 148, 141, 135, 144, 137, 131, 132, 121, 117, 124, 113, 109, 81, 70, 66, 104, 93, 89, 91, 80, 76, 136, 125, 121, 114, 103, 99, 116, 105, 101, 135, 124, 120, 145, 134, 130, 135, 124, 120, 113, 102, 98, 109, 98, 94, 122, 111, 107, 134, 123, 119, 140, 129, 125, 150, 141, 136, 127, 118, 113, 146, 137, 132, 165, 156, 151, 137, 128, 123, 125, 116, 111, 152, 143, 138, 171, 162, 157, 143, 134, 129, 144, 135, 130, 148, 139, 134, 153, 144, 139, 153, 144, 139, 147, 138, 133, 140, 131, 126, 137, 128, 123, 159, 152, 146, 134, 127, 121, 107, 100, 94, 100, 93, 87, 114, 105, 100, 129, 120, 115, 135, 124, 120, 133, 122, 118, 120, 106, 103, 112, 98, 95, 105, 90, 87, 104, 89, 86, 108, 93, 90, 115, 100, 97, 119, 104, 101, 120, 105, 102, 105, 92, 86, 125, 114, 108, 141, 130, 124, 144, 133, 127, 148, 137, 133, 156, 145, 141, 150, 139, 135, 136, 125, 121, 132, 121, 117, 131, 120, 116, 133, 122, 120, 129, 118, 116, 112, 101, 99, 96, 85, 83, 104, 93, 91, 124, 113, 111, 102, 93, 88, 100, 91, 86, 93, 84, 79, 101, 92, 87, 117, 108, 103, 113, 104, 99, 105, 96, 91, 113, 104, 99, 117, 108, 103, 140, 131, 126, 157, 148, 143, 149, 140, 135, 126, 117, 112, 116, 107, 102, 126, 117, 112, 140, 131, 126, 144, 137, 131, 145, 138, 132, 146, 139, 133, 146, 139, 133, 145, 138, 132, 143, 136, 130, 143, 136, 130, 143, 136, 130, 122, 115, 109, 115, 108, 102, 113, 106, 100, 121, 114, 108, 128, 121, 115, 130, 123, 117, 129, 122, 116, 129, 122, 116, 128, 120, 117, 121, 113, 110, 107, 99, 96, 104, 96, 93, 111, 103, 100, 111, 103, 100, 115, 107, 104, 131, 123, 120, 146, 138, 135, 153, 145, 142, 156, 148, 145, 144, 136, 133, 125, 117, 114, 114, 106, 103, 116, 108, 105, 124, 117, 111, 133, 128, 122, 140, 136, 127, 148, 144, 135, 158, 154, 145, 168, 163, 157, 170, 165, 159, 158, 153, 147, 144, 139, 133, 160, 155, 149, 164, 159, 153, 166, 161, 157, 164, 159, 155, 162, 157, 153, 165, 160, 156, 175, 170, 166, 184, 179, 175, 188, 181, 175, 191, 184, 178, 193, 186, 180, 194, 187, 181, 193, 186, 180, 192, 185, 179, 192, 185, 179, 194, 187, 181, 191, 184, 178, 191, 184, 178, 191, 184, 178, 192, 185, 179, 194, 187, 181, 196, 189, 183, 198, 191, 185, 199, 192, 186, 194, 189, 183, 195, 190, 184, 198, 193, 189, 200, 195, 191, 201, 196, 192, 200, 195, 191, 199, 194, 190, 198, 193, 189, 201, 196, 193, 204, 199, 196, 208, 203, 200, 208, 203, 200, 206, 201, 198, 202, 197, 194, 200, 194, 194, 200, 194, 194, 198, 194, 193, 202, 198, 197, 206, 202, 201, 208, 204, 203, 207, 205, 206, 208, 206, 207, 210, 210, 212, 212, 212, 214, 220, 219, 224, 225, 224, 229, 230, 231, 235, 234, 235, 239, 234, 237, 242, 235, 238, 243, 237, 240, 245, 239, 242, 247, 239, 242, 247, 240, 243, 248, 241, 244, 249, 242, 245, 250, 243, 246, 251, 242, 245, 250, 242, 245, 250, 241, 244, 249, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 234, 237, 242, 234, 237, 242, 234, 237, 242, 235, 238, 243, 235, 238, 243, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 237, 240, 245, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 228, 235, 241, 229, 236, 244, 228, 237, 242, 221, 226, 229, 203, 205, 204, 190, 183, 177, 183, 164, 157, 179, 149, 138, 177, 138, 123, 150, 103, 87, 140, 91, 74, 127, 80, 62, 126, 83, 66, 142, 102, 90, 162, 125, 117, 168, 133, 129, 161, 130, 128, 162, 134, 131, 159, 135, 133, 148, 128, 129, 134, 115, 117, 127, 109, 109, 126, 105, 104, 119, 91, 87, 108, 75, 66, 92, 56, 44, 88, 51, 35, 83, 45, 32, 79, 41, 28, 78, 40, 27, 78, 39, 24, 78, 36, 20, 77, 34, 17, 70, 24, 9, 68, 22, 7, 65, 21, 8, 66, 22, 9, 69, 25, 14, 70, 26, 15, 68, 24, 13, 66, 22, 11, 67, 23, 12, 66, 22, 11, 67, 20, 10, 71, 23, 11, 80, 30, 19, 92, 43, 29, 107, 55, 42, 114, 65, 50, 104, 57, 41, 107, 60, 44, 113, 63, 52, 117, 67, 58, 122, 71, 67, 128, 77, 74, 134, 86, 84, 137, 94, 88, 141, 102, 95, 140, 107, 98, 141, 111, 101, 142, 112, 104, 141, 110, 105, 143, 109, 107, 148, 109, 112, 150, 111, 112, 147, 114, 109, 145, 115, 107, 149, 118, 113, 152, 123, 117, 149, 120, 116, 140, 112, 109, 136, 110, 109, 137, 113, 111, 148, 124, 124, 145, 125, 124, 141, 121, 120, 135, 117, 115, 136, 121, 118, 142, 127, 124, 143, 128, 125, 140, 125, 122, 124, 109, 106, 129, 114, 111, 130, 115, 112, 120, 105, 102, 105, 90, 87, 99, 84, 81, 104, 89, 86, 113, 98, 95, 93, 78, 75, 85, 70, 67, 82, 67, 64, 100, 85, 82, 129, 114, 111, 144, 129, 126, 129, 114, 111, 106, 91, 88, 92, 79, 73, 92, 79, 73, 81, 68, 62, 71, 58, 52, 66, 55, 51, 59, 48, 44, 54, 43, 39, 59, 48, 44, 54, 45, 40, 82, 73, 68, 113, 103, 101, 121, 111, 109, 107, 97, 95, 99, 89, 87, 114, 104, 102, 136, 126, 124, 123, 116, 110, 110, 103, 97, 107, 100, 94, 104, 97, 91, 90, 83, 77, 83, 76, 70, 88, 81, 75, 89, 82, 76, 91, 84, 78, 81, 74, 68, 93, 86, 80, 103, 96, 90, 89, 82, 76, 83, 76, 70, 87, 80, 74, 79, 72, 66, 94, 89, 85, 81, 76, 72, 67, 59, 56, 122, 114, 111, 129, 119, 117, 100, 90, 88, 144, 133, 131, 163, 152, 150, 144, 133, 131, 121, 110, 108, 89, 79, 77, 103, 93, 91, 106, 96, 94, 82, 74, 71, 97, 89, 86, 120, 115, 111, 64, 59, 55, 69, 64, 60, 109, 104, 100, 84, 79, 75, 132, 127, 123, 151, 146, 142, 64, 59, 55, 112, 107, 103, 191, 186, 182, 153, 148, 144, 118, 113, 109, 92, 87, 83, 105, 100, 96, 134, 129, 125, 115, 110, 106, 85, 80, 76, 107, 102, 96, 141, 138, 131, 176, 173, 168, 146, 143, 138, 85, 82, 77, 85, 82, 77, 116, 111, 107, 116, 108, 105, 74, 64, 63, 62, 52, 51, 95, 85, 84, 142, 134, 132, 102, 97, 94, 90, 86, 83, 156, 156, 154, 170, 170, 168, 165, 165, 163, 133, 133, 131, 101, 102, 97, 159, 160, 155, 154, 153, 148, 72, 69, 64, 83, 78, 72, 116, 111, 105, 81, 74, 68, 94, 87, 81, 134, 125, 120, 150, 141, 136, 130, 119, 115, 127, 116, 112, 132, 121, 119, 117, 106, 104, 131, 120, 116, 126, 115, 111, 105, 94, 90, 117, 106, 102, 133, 122, 118, 148, 137, 133, 161, 150, 146, 132, 121, 117, 136, 125, 121, 112, 101, 97, 100, 89, 85, 107, 96, 92, 138, 127, 123, 110, 99, 95, 132, 121, 117, 149, 138, 134, 128, 118, 116, 118, 108, 106, 127, 117, 115, 129, 119, 117, 131, 121, 119, 125, 115, 113, 84, 75, 70, 102, 93, 88, 111, 100, 96, 74, 63, 59, 90, 79, 75, 124, 113, 109, 99, 86, 80, 130, 117, 111, 130, 117, 111, 127, 114, 108, 134, 119, 112, 131, 116, 109, 163, 150, 144, 153, 142, 136, 81, 71, 69, 100, 92, 89, 142, 137, 134, 125, 121, 118, 158, 157, 155, 151, 150, 148, 139, 139, 137, 153, 153, 151, 186, 188, 185, 185, 187, 184, 159, 161, 156, 153, 154, 149, 112, 109, 104, 159, 156, 151, 154, 149, 145, 118, 113, 109, 117, 112, 108, 105, 100, 96, 87, 80, 74, 106, 99, 93, 91, 82, 77, 78, 69, 64, 120, 109, 105, 138, 127, 123, 122, 111, 105, 135, 124, 118, 148, 137, 131, 138, 127, 121, 124, 110, 107, 124, 110, 107, 125, 111, 108, 146, 132, 129, 132, 121, 117, 133, 122, 118, 116, 107, 102, 109, 100, 95, 108, 99, 94, 133, 124, 119, 117, 106, 102, 110, 99, 95, 136, 122, 119, 125, 111, 108, 115, 101, 98, 147, 133, 130, 112, 101, 97, 118, 107, 103, 133, 122, 118, 152, 141, 137, 124, 113, 109, 145, 134, 130, 153, 142, 138, 151, 140, 136, 123, 112, 108, 117, 106, 102, 120, 109, 105, 123, 112, 108, 147, 136, 132, 159, 148, 144, 132, 121, 117, 121, 110, 106, 103, 92, 88, 98, 87, 83, 120, 109, 105, 156, 145, 141, 151, 140, 136, 139, 128, 124, 137, 127, 125, 108, 98, 96, 76, 66, 64, 87, 77, 75, 76, 68, 65, 68, 60, 57, 82, 74, 72, 91, 83, 81, 97, 89, 87, 112, 104, 102, 118, 110, 108, 89, 81, 79, 67, 59, 57, 110, 102, 100, 129, 121, 118, 108, 100, 97, 43, 35, 32, 62, 54, 51, 100, 92, 89, 117, 109, 106, 161, 154, 148, 134, 127, 121, 89, 82, 76, 127, 120, 114, 158, 151, 145, 140, 133, 127, 131, 120, 116, 106, 95, 91, 62, 51, 47, 97, 86, 82, 106, 95, 91, 149, 138, 134, 123, 112, 108, 118, 107, 103, 105, 94, 90, 143, 132, 128, 139, 128, 124, 115, 104, 100, 124, 113, 109, 134, 123, 119, 132, 121, 117, 140, 129, 125, 149, 140, 135, 136, 127, 122, 158, 149, 144, 165, 156, 151, 138, 129, 124, 146, 137, 132, 156, 147, 142, 125, 116, 111, 94, 85, 80, 127, 118, 113, 149, 140, 135, 143, 134, 129, 137, 128, 123, 145, 136, 131, 151, 142, 137, 147, 138, 133, 98, 89, 84, 90, 81, 76, 90, 81, 76, 106, 97, 92, 127, 118, 113, 136, 127, 122, 127, 116, 112, 113, 102, 98, 111, 100, 96, 117, 106, 102, 123, 109, 106, 120, 106, 103, 114, 100, 97, 113, 99, 96, 119, 105, 102, 126, 112, 109, 128, 117, 111, 143, 132, 126, 142, 131, 125, 126, 115, 109, 126, 115, 111, 141, 130, 126, 139, 128, 124, 120, 109, 105, 117, 106, 102, 109, 98, 94, 98, 87, 85, 87, 76, 74, 81, 70, 68, 82, 71, 69, 88, 77, 75, 94, 83, 81, 119, 108, 104, 128, 117, 113, 135, 124, 120, 143, 132, 128, 148, 137, 133, 142, 131, 127, 139, 128, 124, 148, 137, 133, 143, 132, 128, 150, 139, 135, 155, 144, 140, 153, 142, 138, 149, 138, 134, 150, 139, 135, 160, 149, 145, 167, 158, 153, 135, 127, 124, 140, 132, 129, 145, 137, 134, 142, 134, 131, 135, 127, 124, 130, 122, 119, 132, 124, 121, 136, 128, 125, 136, 128, 125, 135, 127, 124, 138, 130, 127, 145, 137, 134, 146, 138, 135, 138, 130, 127, 130, 122, 119, 128, 120, 117, 130, 122, 119, 124, 116, 113, 113, 105, 102, 119, 111, 108, 138, 130, 127, 147, 139, 136, 152, 144, 141, 164, 156, 153, 170, 162, 159, 162, 154, 151, 147, 139, 136, 130, 122, 119, 121, 113, 110, 129, 121, 118, 148, 140, 137, 164, 157, 151, 161, 156, 150, 168, 164, 155, 170, 166, 157, 162, 158, 149, 154, 149, 143, 153, 148, 142, 155, 150, 144, 155, 150, 144, 164, 159, 153, 167, 162, 156, 170, 165, 161, 170, 165, 161, 170, 165, 161, 176, 171, 167, 186, 181, 177, 194, 189, 185, 197, 189, 186, 195, 187, 184, 193, 185, 182, 193, 185, 182, 194, 186, 183, 196, 188, 185, 195, 187, 184, 194, 186, 183, 193, 185, 182, 193, 185, 182, 193, 185, 182, 194, 186, 183, 195, 187, 184, 197, 189, 186, 199, 191, 188, 200, 192, 189, 198, 193, 187, 199, 194, 188, 201, 196, 192, 202, 197, 193, 203, 198, 194, 203, 198, 194, 202, 197, 193, 202, 197, 193, 202, 197, 194, 205, 200, 197, 208, 203, 200, 207, 202, 199, 204, 199, 196, 201, 196, 193, 199, 193, 193, 199, 193, 193, 200, 196, 195, 203, 199, 198, 207, 203, 202, 208, 204, 203, 207, 205, 206, 208, 206, 207, 210, 210, 212, 213, 213, 215, 220, 219, 224, 224, 223, 228, 229, 230, 234, 232, 233, 237, 232, 235, 240, 233, 236, 241, 234, 237, 242, 236, 239, 244, 239, 242, 247, 240, 243, 248, 241, 244, 249, 242, 245, 250, 243, 246, 251, 242, 245, 250, 242, 245, 250, 241, 244, 249, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 234, 237, 242, 234, 237, 242, 234, 237, 242, 235, 238, 243, 235, 238, 243, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 237, 240, 245, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 231, 236, 242, 225, 232, 240, 228, 235, 241, 226, 234, 237, 216, 220, 219, 202, 199, 194, 187, 172, 165, 171, 143, 132, 158, 120, 107, 134, 88, 73, 136, 89, 71, 134, 89, 70, 132, 89, 72, 135, 97, 84, 149, 112, 103, 166, 128, 125, 174, 140, 139, 171, 143, 140, 167, 143, 141, 154, 134, 135, 139, 121, 121, 131, 113, 113, 129, 108, 105, 121, 94, 87, 108, 75, 66, 95, 59, 45, 91, 54, 38, 86, 48, 35, 83, 45, 32, 82, 44, 31, 82, 42, 30, 82, 40, 24, 82, 39, 23, 75, 29, 14, 72, 26, 11, 67, 23, 10, 65, 21, 8, 65, 23, 11, 66, 23, 14, 66, 26, 16, 67, 27, 19, 64, 24, 16, 66, 23, 16, 67, 23, 14, 71, 27, 18, 79, 32, 22, 84, 37, 27, 86, 38, 26, 86, 38, 24, 92, 46, 31, 95, 47, 33, 99, 49, 38, 104, 51, 43, 108, 55, 49, 116, 63, 59, 123, 72, 68, 128, 81, 75, 134, 91, 84, 136, 98, 87, 140, 106, 96, 144, 111, 102, 148, 115, 110, 152, 118, 116, 156, 120, 122, 158, 124, 125, 158, 127, 124, 156, 127, 121, 155, 126, 120, 151, 123, 119, 146, 118, 115, 138, 113, 109, 137, 111, 110, 137, 113, 111, 146, 125, 124, 148, 127, 126, 146, 126, 125, 141, 123, 121, 139, 121, 119, 137, 122, 117, 134, 119, 114, 129, 114, 109, 115, 100, 97, 123, 108, 105, 128, 113, 110, 121, 106, 103, 106, 91, 88, 96, 81, 78, 97, 82, 79, 103, 88, 85, 88, 73, 70, 86, 71, 68, 79, 64, 61, 82, 67, 64, 105, 90, 87, 134, 119, 116, 146, 131, 128, 141, 126, 123, 110, 97, 91, 86, 73, 67, 72, 59, 53, 82, 69, 63, 83, 72, 68, 67, 56, 52, 56, 45, 41, 61, 50, 46, 35, 26, 21, 61, 52, 47, 93, 83, 81, 106, 96, 94, 97, 87, 85, 87, 77, 75, 95, 85, 83, 111, 101, 99, 134, 127, 121, 128, 121, 115, 118, 111, 105, 98, 91, 85, 83, 76, 70, 92, 85, 79, 101, 94, 88, 92, 85, 79, 109, 102, 96, 68, 61, 55, 67, 60, 54, 101, 94, 88, 110, 103, 97, 97, 90, 84, 97, 90, 84, 104, 97, 91, 84, 76, 73, 101, 93, 90, 76, 68, 65, 105, 95, 93, 132, 122, 120, 83, 73, 71, 75, 64, 62, 116, 105, 103, 141, 130, 128, 161, 151, 149, 134, 124, 122, 112, 104, 101, 107, 99, 96, 93, 88, 84, 101, 96, 92, 111, 106, 102, 95, 90, 86, 78, 73, 69, 104, 99, 95, 102, 97, 93, 103, 98, 94, 151, 146, 142, 135, 130, 126, 62, 57, 53, 99, 94, 90, 184, 179, 175, 167, 162, 158, 88, 83, 79, 97, 92, 88, 129, 124, 120, 117, 112, 108, 114, 109, 105, 104, 99, 93, 78, 73, 67, 136, 133, 128, 184, 181, 176, 125, 124, 119, 85, 84, 79, 112, 109, 104, 126, 121, 117, 78, 70, 68, 95, 85, 84, 94, 84, 83, 116, 106, 105, 131, 123, 121, 106, 101, 98, 116, 115, 113, 172, 172, 170, 162, 162, 160, 134, 134, 132, 80, 81, 76, 124, 125, 120, 172, 171, 166, 108, 107, 102, 72, 69, 62, 98, 93, 87, 110, 103, 97, 85, 78, 72, 106, 97, 92, 137, 128, 123, 128, 117, 113, 118, 107, 103, 125, 114, 112, 121, 110, 108, 138, 127, 123, 132, 121, 117, 113, 102, 98, 128, 117, 113, 130, 119, 115, 139, 128, 124, 162, 151, 147, 125, 114, 110, 133, 122, 118, 117, 106, 102, 118, 107, 103, 120, 109, 105, 139, 128, 124, 100, 89, 85, 119, 108, 104, 155, 144, 140, 132, 122, 120, 115, 105, 103, 109, 99, 97, 126, 116, 114, 134, 124, 122, 139, 129, 127, 88, 79, 74, 88, 79, 74, 105, 94, 90, 78, 67, 63, 96, 85, 81, 127, 116, 112, 105, 92, 86, 139, 126, 120, 138, 125, 119, 135, 122, 116, 113, 98, 91, 109, 94, 87, 128, 115, 109, 138, 127, 121, 92, 81, 79, 121, 113, 110, 148, 143, 140, 137, 133, 130, 170, 169, 167, 156, 156, 154, 150, 150, 148, 143, 143, 141, 184, 186, 183, 198, 200, 197, 157, 159, 154, 170, 171, 166, 146, 145, 140, 144, 141, 136, 154, 149, 145, 131, 126, 122, 112, 107, 103, 126, 121, 117, 119, 112, 106, 92, 85, 79, 103, 94, 89, 78, 69, 64, 96, 85, 81, 115, 104, 100, 112, 101, 95, 131, 120, 114, 151, 140, 134, 146, 135, 129, 121, 107, 104, 116, 102, 99, 115, 101, 98, 135, 121, 118, 146, 135, 131, 146, 135, 131, 132, 123, 118, 129, 120, 115, 111, 102, 97, 129, 120, 115, 126, 115, 111, 108, 97, 93, 133, 119, 116, 136, 122, 119, 113, 99, 96, 140, 126, 123, 133, 122, 118, 129, 118, 114, 114, 103, 99, 168, 157, 153, 138, 127, 123, 148, 137, 133, 127, 116, 112, 156, 145, 141, 133, 122, 118, 112, 101, 97, 124, 113, 109, 118, 107, 103, 140, 129, 125, 164, 153, 149, 132, 121, 117, 128, 117, 113, 134, 123, 119, 90, 79, 75, 100, 89, 85, 142, 131, 127, 142, 131, 127, 135, 124, 120, 137, 127, 125, 120, 110, 108, 100, 90, 88, 95, 85, 83, 81, 73, 70, 88, 80, 77, 99, 91, 89, 82, 74, 72, 84, 76, 74, 123, 115, 113, 134, 126, 124, 103, 95, 93, 75, 67, 65, 96, 88, 86, 120, 112, 109, 101, 93, 90, 31, 23, 20, 92, 84, 81, 127, 119, 116, 142, 134, 131, 163, 156, 150, 110, 103, 97, 99, 92, 86, 154, 147, 141, 155, 148, 142, 145, 138, 132, 127, 116, 112, 99, 88, 84, 68, 57, 53, 109, 98, 94, 130, 119, 115, 161, 150, 146, 135, 124, 120, 125, 114, 110, 132, 121, 117, 119, 108, 104, 99, 88, 84, 107, 96, 92, 141, 130, 126, 150, 139, 135, 134, 123, 119, 127, 116, 112, 152, 143, 138, 153, 144, 139, 152, 143, 138, 151, 142, 137, 150, 141, 136, 144, 135, 130, 129, 120, 115, 113, 104, 99, 143, 134, 129, 130, 121, 116, 120, 111, 106, 126, 117, 112, 139, 130, 125, 136, 127, 122, 111, 102, 97, 85, 76, 71, 92, 83, 78, 106, 97, 92, 122, 113, 108, 127, 118, 113, 120, 111, 106, 107, 98, 93, 100, 89, 85, 97, 86, 82, 124, 113, 109, 126, 115, 111, 130, 119, 115, 133, 122, 118, 134, 120, 117, 127, 116, 112, 119, 108, 104, 113, 102, 98, 128, 117, 111, 129, 118, 112, 119, 108, 102, 106, 95, 89, 112, 101, 97, 131, 120, 116, 137, 126, 122, 130, 119, 115, 151, 140, 136, 137, 126, 122, 119, 108, 106, 112, 101, 99, 126, 115, 113, 141, 130, 128, 137, 126, 124, 121, 110, 108, 141, 130, 126, 149, 138, 134, 157, 146, 142, 161, 150, 146, 159, 148, 144, 153, 142, 138, 151, 140, 136, 155, 144, 140, 164, 153, 149, 150, 139, 135, 138, 127, 123, 139, 128, 124, 142, 131, 127, 135, 124, 120, 118, 107, 103, 104, 95, 90, 104, 94, 92, 101, 93, 90, 98, 90, 87, 94, 86, 83, 93, 85, 82, 99, 91, 88, 110, 102, 99, 119, 111, 108, 148, 140, 137, 156, 148, 145, 165, 157, 154, 163, 155, 152, 146, 138, 135, 131, 123, 120, 131, 123, 120, 140, 132, 129, 123, 115, 112, 128, 120, 117, 129, 121, 118, 137, 129, 126, 153, 145, 142, 156, 148, 145, 152, 144, 141, 157, 149, 146, 158, 150, 147, 149, 141, 138, 139, 131, 128, 137, 129, 126, 145, 137, 134, 157, 149, 146, 167, 159, 156, 172, 165, 159, 166, 161, 155, 169, 165, 156, 164, 160, 151, 153, 149, 140, 147, 142, 136, 155, 150, 144, 170, 165, 159, 179, 174, 168, 170, 165, 159, 175, 170, 164, 181, 176, 172, 185, 180, 176, 185, 180, 176, 186, 181, 177, 188, 183, 179, 190, 185, 181, 198, 190, 187, 193, 185, 182, 187, 179, 176, 187, 179, 176, 191, 183, 180, 194, 186, 183, 193, 185, 182, 191, 183, 180, 195, 187, 184, 195, 187, 184, 195, 187, 184, 195, 187, 184, 196, 188, 185, 197, 189, 186, 199, 191, 188, 200, 192, 189, 201, 196, 190, 201, 196, 190, 202, 197, 193, 203, 198, 194, 204, 199, 195, 205, 200, 196, 205, 200, 196, 205, 200, 196, 203, 198, 195, 205, 200, 197, 207, 202, 199, 206, 201, 198, 202, 197, 194, 199, 194, 191, 198, 192, 192, 198, 192, 192, 202, 198, 197, 204, 200, 199, 207, 203, 202, 208, 204, 203, 206, 204, 205, 208, 206, 207, 210, 210, 212, 213, 213, 215, 219, 218, 223, 223, 222, 227, 228, 229, 233, 231, 232, 236, 230, 233, 238, 231, 234, 239, 232, 235, 240, 234, 237, 242, 239, 242, 247, 240, 243, 248, 241, 244, 249, 242, 245, 250, 243, 246, 251, 242, 245, 250, 242, 245, 250, 241, 244, 249, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 234, 237, 242, 234, 237, 242, 234, 237, 242, 235, 238, 243, 235, 238, 243, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 237, 240, 245, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 242, 225, 230, 236, 228, 235, 241, 228, 236, 239, 222, 228, 228, 209, 210, 205, 189, 178, 172, 165, 141, 131, 147, 111, 99, 127, 84, 68, 135, 88, 72, 139, 94, 75, 137, 96, 78, 136, 97, 82, 146, 108, 99, 167, 128, 123, 182, 147, 145, 180, 152, 148, 174, 153, 148, 161, 143, 141, 142, 126, 126, 133, 115, 115, 128, 107, 104, 118, 91, 84, 106, 74, 63, 99, 61, 48, 95, 56, 41, 90, 50, 38, 86, 46, 34, 85, 45, 35, 84, 44, 32, 84, 42, 28, 83, 40, 24, 80, 34, 19, 75, 29, 14, 66, 22, 9, 60, 16, 3, 56, 14, 2, 55, 15, 5, 59, 21, 12, 63, 24, 17, 66, 27, 20, 65, 26, 19, 65, 24, 18, 67, 26, 20, 71, 28, 21, 72, 29, 22, 71, 27, 18, 69, 25, 14, 87, 40, 30, 89, 43, 30, 91, 43, 33, 93, 43, 36, 96, 46, 39, 102, 52, 45, 112, 59, 53, 115, 65, 56, 124, 76, 66, 128, 84, 73, 138, 95, 86, 145, 107, 98, 152, 115, 109, 157, 122, 118, 162, 128, 127, 164, 132, 133, 156, 127, 123, 156, 128, 124, 155, 127, 123, 149, 124, 120, 148, 123, 119, 150, 126, 124, 155, 131, 129, 156, 135, 132, 154, 133, 130, 157, 136, 133, 155, 136, 132, 147, 129, 125, 144, 126, 122, 143, 126, 119, 142, 125, 118, 138, 121, 114, 127, 112, 107, 124, 109, 106, 117, 102, 99, 107, 92, 89, 99, 84, 81, 97, 82, 79, 102, 87, 84, 106, 91, 88, 111, 96, 93, 108, 93, 90, 96, 81, 78, 82, 67, 64, 87, 72, 69, 111, 96, 93, 131, 116, 113, 138, 123, 120, 138, 125, 119, 109, 98, 92, 86, 75, 69, 83, 72, 66, 86, 75, 71, 82, 71, 67, 69, 58, 54, 55, 44, 40, 62, 53, 48, 68, 59, 54, 78, 68, 66, 92, 82, 80, 104, 96, 93, 105, 97, 94, 89, 81, 78, 70, 62, 59, 88, 81, 75, 112, 105, 99, 135, 128, 122, 122, 115, 109, 86, 79, 73, 74, 67, 61, 91, 84, 78, 104, 97, 91, 114, 107, 101, 87, 80, 74, 71, 64, 58, 93, 86, 80, 114, 107, 101, 102, 95, 89, 97, 90, 84, 120, 113, 107, 92, 84, 81, 115, 105, 103, 102, 92, 90, 72, 61, 59, 122, 111, 109, 152, 141, 139, 93, 82, 80, 69, 58, 56, 64, 54, 52, 133, 123, 121, 160, 150, 148, 157, 149, 146, 133, 128, 124, 96, 93, 88, 98, 95, 90, 112, 109, 104, 110, 105, 101, 82, 77, 73, 92, 87, 83, 126, 121, 117, 102, 97, 93, 100, 95, 91, 139, 134, 130, 113, 108, 104, 49, 44, 40, 103, 98, 94, 175, 170, 166, 167, 162, 158, 92, 87, 83, 90, 85, 81, 138, 133, 129, 136, 131, 127, 119, 112, 106, 99, 92, 86, 95, 90, 86, 140, 139, 134, 183, 184, 178, 155, 156, 150, 105, 106, 100, 94, 93, 88, 90, 85, 82, 113, 105, 103, 117, 107, 106, 92, 82, 81, 132, 124, 122, 136, 131, 128, 89, 85, 84, 139, 138, 136, 162, 162, 160, 143, 145, 142, 99, 100, 95, 82, 83, 78, 150, 149, 144, 159, 158, 153, 87, 84, 77, 80, 75, 69, 118, 111, 105, 95, 88, 82, 104, 95, 90, 126, 117, 112, 122, 111, 107, 111, 100, 96, 118, 104, 103, 123, 109, 108, 139, 128, 124, 136, 125, 121, 116, 105, 101, 133, 122, 118, 127, 116, 112, 127, 116, 112, 162, 151, 147, 136, 125, 121, 128, 117, 113, 121, 110, 106, 138, 127, 123, 139, 128, 124, 149, 138, 134, 94, 83, 79, 102, 91, 87, 153, 142, 138, 126, 116, 114, 116, 106, 104, 108, 98, 96, 131, 121, 119, 124, 114, 112, 147, 137, 135, 108, 99, 94, 93, 84, 79, 93, 82, 78, 104, 93, 89, 115, 104, 100, 123, 112, 108, 109, 96, 90, 135, 122, 116, 117, 104, 98, 124, 111, 105, 121, 106, 99, 113, 98, 91, 92, 79, 73, 110, 99, 93, 107, 96, 94, 149, 141, 138, 144, 139, 136, 137, 133, 130, 173, 172, 170, 158, 158, 156, 156, 156, 154, 143, 145, 142, 183, 185, 182, 203, 205, 202, 153, 158, 152, 169, 171, 166, 174, 173, 168, 140, 137, 132, 156, 153, 148, 140, 137, 132, 112, 107, 103, 140, 135, 131, 139, 132, 126, 98, 91, 85, 106, 97, 92, 90, 81, 76, 82, 73, 68, 95, 86, 81, 113, 102, 96, 128, 117, 111, 137, 126, 120, 129, 118, 112, 120, 106, 103, 118, 104, 101, 113, 99, 96, 120, 106, 103, 149, 138, 134, 149, 138, 134, 140, 131, 126, 142, 133, 128, 127, 118, 113, 132, 123, 118, 141, 130, 126, 121, 110, 106, 122, 108, 105, 135, 121, 118, 117, 103, 100, 110, 96, 93, 128, 117, 113, 142, 131, 127, 104, 93, 89, 146, 135, 131, 150, 139, 135, 159, 148, 144, 113, 102, 98, 151, 140, 136, 121, 110, 106, 118, 107, 103, 152, 141, 137, 140, 129, 125, 128, 117, 113, 137, 126, 122, 128, 117, 113, 153, 142, 138, 157, 146, 142, 85, 74, 70, 77, 66, 62, 117, 106, 102, 127, 116, 112, 119, 108, 104, 115, 105, 103, 113, 103, 101, 125, 115, 113, 115, 105, 103, 106, 98, 95, 99, 91, 88, 83, 75, 73, 75, 67, 65, 91, 83, 81, 115, 107, 105, 129, 121, 119, 111, 103, 101, 82, 74, 72, 88, 80, 78, 109, 101, 98, 107, 99, 96, 51, 43, 40, 114, 106, 103, 139, 131, 128, 150, 142, 139, 139, 132, 126, 91, 84, 78, 120, 113, 107, 162, 155, 149, 137, 130, 124, 147, 140, 134, 118, 107, 103, 103, 92, 88, 92, 81, 77, 130, 119, 115, 148, 137, 133, 162, 151, 147, 138, 127, 123, 128, 117, 113, 138, 127, 123, 94, 83, 79, 95, 84, 80, 127, 116, 112, 122, 111, 107, 103, 92, 88, 123, 112, 108, 156, 145, 141, 151, 142, 137, 147, 138, 133, 149, 140, 135, 149, 140, 135, 124, 115, 110, 95, 86, 81, 114, 105, 100, 164, 155, 150, 154, 145, 140, 130, 121, 116, 130, 121, 116, 146, 137, 132, 127, 118, 113, 82, 73, 68, 70, 61, 56, 92, 83, 78, 135, 124, 120, 131, 120, 116, 120, 109, 105, 105, 94, 90, 95, 84, 80, 97, 86, 82, 112, 101, 97, 125, 114, 110, 130, 121, 116, 127, 118, 113, 126, 117, 112, 129, 120, 115, 134, 123, 119, 132, 123, 118, 125, 116, 111, 117, 108, 103, 132, 121, 115, 129, 118, 112, 132, 121, 115, 142, 131, 125, 149, 138, 134, 146, 135, 131, 141, 130, 126, 138, 127, 123, 131, 120, 116, 143, 132, 128, 147, 136, 134, 138, 127, 125, 134, 123, 121, 140, 129, 127, 143, 132, 130, 138, 127, 125, 131, 120, 116, 130, 119, 115, 130, 119, 115, 127, 116, 112, 121, 110, 106, 119, 108, 104, 116, 105, 101, 110, 99, 95, 85, 74, 70, 90, 79, 75, 101, 90, 86, 111, 100, 96, 112, 101, 97, 107, 96, 92, 110, 99, 95, 116, 107, 102, 112, 102, 100, 104, 96, 93, 96, 88, 85, 98, 90, 87, 109, 101, 98, 126, 118, 115, 140, 132, 129, 148, 140, 137, 126, 118, 115, 132, 124, 121, 139, 131, 128, 137, 129, 126, 125, 117, 114, 117, 109, 106, 125, 117, 114, 139, 131, 128, 132, 124, 121, 144, 136, 133, 146, 138, 135, 143, 135, 132, 143, 135, 132, 135, 127, 124, 127, 119, 116, 129, 121, 118, 127, 119, 116, 138, 130, 127, 153, 145, 142, 162, 154, 151, 161, 153, 150, 150, 142, 139, 137, 129, 126, 128, 121, 115, 141, 136, 130, 145, 141, 132, 150, 146, 137, 157, 153, 144, 169, 164, 158, 178, 173, 167, 176, 171, 165, 169, 164, 158, 177, 172, 166, 179, 174, 168, 183, 178, 174, 184, 179, 175, 183, 178, 174, 182, 177, 173, 181, 176, 172, 181, 176, 172, 196, 188, 185, 191, 183, 180, 185, 177, 174, 185, 177, 174, 190, 182, 179, 193, 185, 182, 192, 184, 181, 190, 182, 179, 196, 188, 185, 195, 187, 184, 195, 187, 184, 195, 187, 184, 195, 187, 184, 197, 189, 186, 198, 190, 187, 199, 191, 188, 201, 196, 190, 201, 196, 190, 201, 196, 192, 202, 197, 193, 202, 197, 193, 203, 198, 194, 204, 199, 195, 205, 200, 196, 203, 198, 195, 204, 199, 196, 205, 200, 197, 204, 199, 196, 201, 196, 193, 198, 193, 190, 198, 192, 192, 199, 193, 193, 204, 200, 199, 205, 201, 200, 207, 203, 202, 207, 203, 202, 205, 203, 204, 206, 204, 205, 210, 210, 212, 213, 213, 215, 217, 216, 221, 222, 221, 226, 227, 228, 232, 230, 231, 235, 230, 233, 238, 230, 233, 238, 232, 235, 240, 234, 237, 242, 239, 242, 247, 240, 243, 248, 241, 244, 249, 242, 245, 250, 243, 246, 251, 242, 245, 250, 242, 245, 250, 241, 244, 249, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 234, 237, 242, 234, 237, 242, 234, 237, 242, 235, 238, 243, 235, 238, 243, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 237, 240, 245, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 231, 236, 242, 231, 236, 240, 225, 235, 236, 219, 228, 227, 213, 215, 212, 199, 192, 186, 180, 157, 149, 162, 128, 118, 135, 93, 79, 134, 88, 72, 132, 89, 70, 138, 97, 79, 146, 107, 92, 156, 118, 107, 171, 130, 126, 182, 144, 141, 183, 155, 151, 179, 160, 154, 168, 150, 148, 146, 130, 130, 132, 114, 112, 124, 103, 98, 116, 89, 80, 106, 74, 63, 103, 65, 52, 100, 61, 46, 93, 53, 41, 89, 49, 37, 87, 47, 37, 85, 45, 35, 84, 42, 30, 82, 40, 26, 84, 38, 23, 79, 33, 18, 69, 25, 12, 58, 16, 4, 49, 9, 0, 46, 8, 0, 49, 12, 4, 51, 16, 10, 64, 29, 23, 61, 26, 20, 59, 21, 18, 56, 19, 13, 58, 19, 14, 62, 23, 16, 68, 27, 21, 74, 31, 24, 81, 37, 28, 84, 37, 29, 86, 39, 33, 87, 40, 34, 88, 41, 33, 93, 44, 37, 99, 49, 40, 106, 54, 43, 116, 62, 52, 123, 71, 58, 134, 84, 73, 144, 97, 87, 149, 109, 101, 155, 118, 112, 157, 126, 124, 160, 130, 128, 158, 133, 129, 160, 137, 131, 160, 135, 131, 152, 128, 124, 151, 127, 125, 156, 132, 130, 159, 138, 135, 159, 138, 135, 153, 132, 129, 154, 133, 130, 148, 129, 125, 139, 120, 114, 134, 117, 110, 139, 122, 114, 144, 127, 119, 146, 129, 121, 125, 110, 105, 121, 106, 103, 115, 100, 97, 111, 96, 93, 109, 94, 91, 107, 92, 89, 104, 89, 86, 102, 87, 84, 107, 92, 89, 103, 88, 85, 95, 80, 77, 89, 74, 71, 95, 80, 77, 111, 96, 93, 126, 111, 108, 132, 118, 115, 134, 121, 115, 126, 115, 109, 107, 96, 90, 81, 70, 64, 78, 67, 63, 100, 89, 85, 99, 88, 84, 69, 58, 54, 57, 48, 43, 67, 58, 53, 80, 70, 68, 92, 82, 80, 99, 91, 88, 102, 94, 91, 97, 89, 86, 90, 82, 79, 61, 54, 48, 68, 61, 55, 105, 98, 92, 136, 129, 123, 115, 108, 102, 77, 70, 64, 72, 65, 59, 86, 79, 73, 99, 92, 86, 115, 108, 102, 109, 102, 96, 98, 91, 85, 102, 95, 89, 100, 93, 87, 100, 93, 87, 114, 107, 101, 122, 112, 110, 107, 96, 94, 129, 118, 116, 82, 71, 69, 65, 54, 52, 123, 112, 110, 133, 122, 120, 135, 124, 122, 73, 63, 61, 78, 68, 66, 93, 85, 82, 151, 146, 142, 177, 174, 169, 143, 142, 137, 128, 127, 122, 127, 126, 121, 122, 119, 114, 109, 104, 100, 94, 89, 85, 88, 83, 79, 113, 108, 104, 101, 96, 92, 79, 74, 70, 131, 126, 122, 112, 107, 103, 61, 56, 52, 114, 109, 105, 203, 198, 194, 163, 158, 154, 105, 100, 96, 123, 118, 114, 133, 125, 122, 123, 114, 109, 121, 112, 107, 101, 96, 92, 84, 83, 78, 121, 124, 117, 180, 183, 176, 165, 168, 161, 94, 95, 89, 97, 93, 90, 88, 83, 80, 127, 119, 117, 100, 90, 89, 114, 106, 104, 159, 151, 149, 116, 110, 110, 114, 110, 109, 159, 159, 157, 153, 155, 152, 129, 130, 125, 62, 63, 58, 99, 98, 93, 162, 161, 156, 111, 108, 101, 77, 74, 67, 99, 92, 86, 121, 114, 108, 133, 124, 119, 128, 119, 114, 122, 111, 107, 113, 102, 98, 114, 100, 99, 122, 108, 107, 136, 125, 121, 138, 127, 123, 111, 100, 96, 137, 126, 122, 136, 125, 121, 122, 111, 107, 164, 153, 149, 156, 145, 141, 128, 117, 113, 125, 114, 110, 152, 141, 137, 152, 141, 137, 153, 142, 138, 86, 75, 71, 85, 74, 70, 148, 137, 133, 119, 109, 107, 114, 104, 102, 119, 109, 107, 150, 140, 138, 105, 95, 93, 138, 128, 126, 129, 120, 115, 117, 108, 103, 84, 73, 69, 124, 113, 109, 130, 119, 115, 127, 116, 112, 122, 109, 103, 138, 125, 119, 107, 94, 88, 128, 115, 109, 149, 134, 127, 139, 124, 117, 88, 75, 69, 102, 91, 85, 109, 98, 96, 162, 154, 151, 137, 132, 129, 124, 123, 119, 170, 169, 167, 157, 157, 155, 154, 156, 153, 149, 151, 148, 182, 184, 181, 200, 202, 199, 161, 166, 160, 160, 162, 157, 173, 172, 167, 157, 154, 149, 167, 164, 159, 142, 139, 134, 128, 123, 119, 143, 138, 134, 131, 124, 118, 130, 123, 117, 108, 99, 94, 93, 84, 79, 77, 68, 63, 102, 93, 88, 128, 117, 111, 130, 119, 113, 124, 113, 107, 104, 93, 87, 124, 110, 107, 131, 117, 114, 124, 110, 107, 111, 97, 94, 146, 135, 131, 143, 132, 128, 138, 129, 124, 140, 131, 126, 146, 137, 132, 137, 128, 123, 142, 131, 127, 137, 126, 122, 120, 106, 103, 124, 110, 107, 124, 110, 107, 90, 76, 73, 105, 94, 90, 151, 140, 136, 111, 100, 96, 102, 91, 87, 143, 132, 128, 168, 157, 153, 129, 118, 114, 143, 132, 128, 132, 121, 117, 119, 108, 104, 139, 128, 124, 146, 135, 131, 137, 126, 122, 134, 123, 119, 135, 124, 120, 154, 143, 139, 166, 155, 151, 100, 89, 85, 82, 71, 67, 104, 93, 89, 120, 109, 105, 114, 103, 99, 98, 88, 86, 104, 94, 92, 127, 117, 115, 135, 125, 123, 132, 124, 121, 95, 87, 84, 55, 47, 45, 69, 61, 59, 99, 91, 89, 99, 91, 89, 113, 105, 103, 108, 100, 98, 85, 77, 75, 97, 89, 87, 105, 97, 94, 114, 106, 103, 83, 75, 72, 115, 107, 104, 139, 131, 128, 142, 134, 131, 115, 108, 102, 94, 87, 81, 134, 127, 121, 149, 142, 136, 124, 117, 111, 140, 133, 127, 112, 101, 97, 113, 102, 98, 120, 109, 105, 143, 132, 128, 152, 141, 137, 151, 140, 136, 131, 120, 116, 120, 109, 105, 92, 81, 77, 95, 84, 80, 117, 106, 102, 116, 105, 101, 90, 79, 75, 107, 96, 92, 149, 138, 134, 162, 151, 147, 137, 128, 123, 149, 140, 135, 162, 153, 148, 134, 125, 120, 91, 82, 77, 101, 92, 87, 134, 125, 120, 134, 125, 120, 114, 105, 100, 137, 128, 123, 142, 133, 128, 114, 105, 100, 82, 73, 68, 82, 73, 68, 112, 103, 98, 140, 131, 126, 114, 103, 99, 101, 90, 86, 91, 80, 76, 101, 90, 86, 124, 113, 109, 141, 130, 126, 141, 130, 126, 134, 125, 120, 130, 121, 116, 131, 122, 117, 131, 122, 117, 129, 120, 115, 128, 119, 114, 131, 124, 118, 140, 133, 127, 148, 141, 135, 152, 143, 136, 146, 135, 129, 152, 141, 135, 167, 156, 150, 168, 157, 153, 154, 143, 139, 145, 134, 130, 148, 137, 133, 143, 132, 128, 162, 151, 147, 174, 163, 161, 167, 156, 154, 158, 147, 145, 157, 146, 144, 158, 147, 145, 157, 146, 144, 134, 123, 119, 128, 117, 113, 127, 116, 112, 124, 113, 109, 122, 111, 107, 128, 117, 113, 128, 117, 113, 117, 106, 102, 112, 101, 97, 112, 101, 97, 118, 107, 103, 124, 113, 109, 118, 107, 103, 111, 100, 96, 118, 107, 103, 131, 122, 117, 117, 107, 105, 109, 101, 98, 104, 96, 93, 107, 99, 96, 118, 110, 107, 128, 120, 117, 132, 124, 121, 132, 124, 121, 125, 117, 114, 119, 111, 108, 116, 108, 105, 119, 111, 108, 121, 113, 110, 120, 112, 109, 121, 113, 110, 124, 116, 113, 132, 124, 121, 142, 134, 131, 135, 127, 124, 119, 111, 108, 112, 104, 101, 106, 98, 95, 103, 95, 92, 109, 101, 98, 123, 115, 112, 140, 132, 129, 155, 147, 144, 152, 144, 141, 135, 127, 124, 120, 112, 109, 116, 108, 105, 120, 113, 107, 140, 135, 129, 161, 157, 148, 177, 173, 164, 176, 172, 163, 166, 161, 155, 162, 157, 151, 167, 162, 156, 172, 167, 161, 186, 181, 175, 183, 178, 172, 179, 174, 170, 176, 171, 167, 177, 172, 168, 180, 175, 171, 184, 179, 175, 187, 182, 178, 193, 185, 182, 191, 183, 180, 189, 181, 178, 190, 182, 179, 193, 185, 182, 195, 187, 184, 195, 187, 184, 195, 187, 184, 195, 187, 184, 194, 186, 183, 193, 185, 182, 193, 185, 182, 193, 185, 182, 194, 186, 183, 196, 188, 185, 196, 188, 185, 198, 193, 187, 198, 193, 187, 197, 192, 188, 197, 192, 188, 198, 193, 189, 200, 195, 191, 201, 196, 192, 202, 197, 193, 200, 195, 192, 202, 197, 194, 203, 198, 195, 202, 197, 194, 199, 194, 191, 198, 193, 190, 200, 194, 194, 202, 196, 196, 204, 200, 199, 205, 201, 200, 206, 202, 201, 205, 201, 200, 202, 200, 201, 205, 203, 204, 208, 208, 210, 212, 212, 214, 215, 214, 219, 220, 219, 224, 225, 226, 230, 230, 231, 235, 230, 233, 238, 232, 235, 240, 234, 237, 242, 236, 239, 244, 239, 242, 247, 240, 243, 248, 241, 244, 249, 242, 245, 250, 243, 246, 251, 242, 245, 250, 242, 245, 250, 241, 244, 249, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 234, 237, 242, 234, 237, 242, 234, 237, 242, 235, 238, 243, 235, 238, 243, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 237, 240, 245, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 232, 237, 243, 232, 237, 243, 232, 237, 243, 236, 239, 244, 233, 238, 241, 225, 235, 236, 221, 230, 229, 219, 223, 222, 211, 206, 202, 195, 175, 168, 180, 147, 138, 152, 110, 96, 144, 98, 82, 137, 94, 75, 144, 103, 83, 152, 113, 96, 159, 119, 107, 170, 127, 121, 175, 135, 133, 179, 151, 147, 179, 160, 154, 170, 155, 150, 149, 134, 131, 130, 112, 110, 121, 100, 95, 117, 88, 80, 112, 78, 66, 115, 75, 63, 112, 70, 56, 103, 63, 51, 98, 58, 48, 94, 54, 46, 92, 52, 42, 90, 47, 38, 88, 46, 34, 91, 45, 30, 89, 43, 28, 82, 38, 25, 71, 29, 17, 57, 17, 7, 48, 10, 1, 43, 8, 2, 43, 10, 5, 54, 21, 16, 54, 21, 16, 54, 19, 17, 51, 16, 12, 50, 12, 9, 52, 15, 9, 60, 21, 16, 67, 26, 20, 74, 29, 24, 77, 32, 27, 80, 35, 30, 81, 38, 32, 83, 40, 33, 86, 42, 33, 92, 44, 32, 98, 46, 33, 113, 55, 43, 122, 62, 51, 134, 76, 65, 143, 89, 79, 147, 100, 92, 148, 109, 102, 148, 117, 114, 147, 122, 118, 157, 133, 129, 162, 141, 136, 165, 141, 139, 156, 135, 132, 153, 132, 129, 154, 133, 130, 153, 132, 129, 148, 127, 124, 146, 127, 123, 149, 130, 126, 145, 126, 120, 135, 116, 110, 129, 110, 103, 131, 113, 103, 134, 116, 106, 135, 118, 110, 116, 101, 96, 116, 101, 98, 116, 101, 98, 116, 101, 98, 114, 99, 96, 109, 94, 91, 103, 88, 85, 99, 84, 81, 90, 75, 72, 89, 74, 71, 91, 76, 73, 96, 81, 78, 101, 86, 83, 108, 93, 90, 123, 108, 105, 136, 122, 119, 119, 106, 100, 116, 105, 99, 112, 101, 95, 92, 81, 75, 78, 67, 63, 94, 83, 79, 109, 100, 95, 102, 93, 88, 56, 47, 42, 58, 49, 44, 70, 60, 58, 86, 76, 74, 90, 82, 79, 89, 81, 78, 101, 93, 90, 120, 112, 109, 92, 85, 79, 61, 54, 48, 70, 63, 57, 112, 105, 99, 121, 114, 108, 95, 88, 82, 73, 66, 60, 65, 58, 52, 76, 69, 63, 103, 96, 90, 126, 119, 113, 121, 114, 108, 106, 99, 93, 109, 102, 96, 114, 107, 101, 108, 99, 94, 131, 120, 118, 112, 98, 97, 150, 136, 135, 152, 138, 137, 86, 72, 71, 67, 53, 52, 100, 89, 87, 127, 116, 114, 116, 106, 104, 120, 110, 108, 94, 86, 83, 89, 84, 80, 122, 119, 114, 169, 168, 163, 175, 174, 169, 118, 117, 112, 143, 140, 135, 136, 131, 127, 116, 111, 107, 78, 73, 69, 110, 105, 101, 129, 124, 120, 81, 76, 72, 85, 80, 76, 124, 119, 115, 103, 98, 94, 75, 70, 66, 136, 131, 127, 199, 194, 190, 163, 158, 154, 126, 121, 117, 133, 125, 122, 120, 109, 105, 103, 94, 89, 115, 110, 106, 96, 95, 90, 69, 72, 65, 132, 137, 130, 182, 187, 180, 136, 139, 132, 115, 114, 110, 84, 79, 76, 119, 111, 109, 119, 109, 108, 103, 93, 92, 150, 142, 140, 159, 150, 151, 119, 115, 114, 136, 136, 134, 150, 155, 151, 147, 149, 144, 85, 87, 82, 62, 63, 57, 120, 119, 114, 140, 137, 130, 98, 95, 88, 95, 88, 82, 136, 129, 123, 142, 133, 128, 132, 123, 118, 137, 126, 122, 119, 108, 104, 108, 94, 93, 130, 116, 115, 139, 128, 124, 141, 130, 126, 101, 90, 86, 137, 126, 122, 149, 138, 134, 120, 109, 105, 154, 143, 139, 158, 147, 143, 134, 123, 119, 129, 118, 114, 157, 146, 142, 152, 141, 137, 148, 137, 133, 76, 65, 61, 72, 61, 57, 147, 136, 132, 124, 114, 112, 102, 92, 90, 114, 104, 102, 163, 153, 151, 89, 79, 77, 124, 114, 112, 139, 130, 125, 130, 121, 116, 92, 81, 77, 124, 113, 109, 130, 119, 115, 134, 123, 119, 128, 115, 109, 135, 122, 116, 102, 89, 83, 130, 117, 111, 140, 125, 118, 139, 124, 117, 98, 85, 79, 112, 101, 95, 98, 87, 85, 165, 157, 154, 155, 150, 147, 140, 139, 135, 169, 168, 166, 158, 158, 156, 152, 154, 151, 160, 162, 159, 183, 188, 184, 198, 203, 199, 181, 186, 180, 160, 162, 157, 175, 174, 169, 168, 165, 160, 181, 178, 173, 155, 152, 147, 148, 143, 139, 150, 145, 141, 130, 123, 117, 156, 149, 143, 123, 116, 110, 80, 73, 67, 73, 64, 59, 122, 113, 108, 139, 128, 122, 130, 119, 113, 127, 116, 110, 94, 83, 77, 117, 103, 100, 140, 126, 123, 136, 122, 119, 105, 91, 88, 142, 131, 127, 134, 123, 119, 130, 121, 116, 130, 121, 116, 148, 139, 134, 133, 124, 119, 121, 110, 106, 144, 133, 129, 132, 118, 115, 116, 102, 99, 135, 121, 118, 105, 91, 88, 102, 91, 87, 146, 135, 131, 126, 115, 111, 73, 62, 58, 127, 116, 112, 150, 139, 135, 149, 138, 134, 142, 131, 127, 154, 143, 139, 116, 105, 101, 100, 89, 85, 138, 127, 123, 154, 143, 139, 144, 133, 129, 150, 139, 135, 144, 133, 129, 163, 152, 148, 129, 118, 114, 105, 94, 90, 90, 79, 75, 105, 94, 90, 113, 102, 98, 93, 83, 81, 104, 94, 92, 124, 114, 112, 132, 122, 120, 129, 121, 118, 99, 91, 88, 69, 61, 59, 73, 65, 63, 88, 80, 78, 84, 76, 74, 107, 99, 97, 102, 94, 92, 81, 73, 71, 110, 102, 100, 99, 91, 88, 109, 101, 98, 110, 102, 99, 107, 99, 96, 137, 129, 126, 134, 126, 123, 111, 104, 98, 120, 113, 107, 137, 130, 124, 130, 123, 117, 131, 124, 118, 130, 123, 117, 116, 105, 101, 127, 116, 112, 141, 130, 126, 147, 136, 132, 148, 137, 133, 139, 128, 124, 123, 112, 108, 108, 97, 93, 93, 82, 78, 109, 98, 94, 106, 95, 91, 93, 82, 78, 121, 110, 106, 173, 162, 158, 171, 160, 156, 123, 112, 108, 133, 124, 119, 154, 145, 140, 142, 133, 128, 103, 94, 89, 105, 96, 91, 143, 134, 129, 138, 129, 124, 93, 84, 79, 143, 134, 129, 143, 134, 129, 109, 100, 95, 70, 61, 56, 85, 76, 71, 133, 124, 119, 133, 124, 119, 94, 85, 80, 97, 86, 82, 99, 85, 82, 109, 95, 92, 131, 117, 114, 149, 138, 134, 149, 138, 134, 125, 116, 111, 102, 93, 88, 126, 117, 112, 130, 123, 117, 134, 127, 121, 133, 126, 120, 129, 122, 116, 131, 126, 120, 143, 138, 132, 153, 148, 142, 142, 133, 126, 139, 128, 122, 140, 129, 123, 144, 133, 127, 146, 135, 131, 148, 137, 133, 155, 144, 140, 164, 153, 149, 150, 139, 135, 154, 143, 139, 157, 146, 144, 159, 148, 146, 163, 152, 150, 166, 155, 153, 163, 152, 150, 158, 147, 145, 162, 151, 147, 158, 147, 143, 162, 151, 147, 159, 148, 144, 153, 142, 138, 161, 150, 146, 166, 155, 151, 153, 142, 138, 151, 140, 136, 134, 123, 119, 126, 115, 111, 134, 123, 119, 139, 128, 124, 133, 122, 118, 129, 118, 114, 131, 122, 117, 136, 126, 124, 134, 126, 123, 133, 125, 122, 134, 126, 123, 135, 127, 124, 136, 128, 125, 136, 128, 125, 136, 128, 125, 134, 126, 123, 128, 120, 117, 126, 118, 115, 131, 123, 120, 132, 124, 121, 124, 116, 113, 114, 106, 103, 108, 100, 97, 104, 96, 93, 111, 103, 100, 102, 94, 91, 90, 82, 79, 97, 89, 86, 107, 99, 96, 114, 106, 103, 121, 113, 110, 144, 136, 133, 145, 137, 134, 141, 133, 130, 132, 124, 121, 123, 115, 112, 125, 117, 114, 136, 128, 125, 148, 141, 135, 157, 152, 146, 173, 169, 160, 180, 176, 167, 167, 163, 154, 149, 144, 138, 149, 144, 138, 164, 159, 153, 180, 175, 169, 174, 169, 163, 171, 166, 160, 169, 164, 160, 170, 165, 161, 175, 170, 166, 181, 176, 172, 187, 182, 178, 190, 185, 181, 186, 178, 175, 189, 181, 178, 192, 184, 181, 194, 186, 183, 194, 186, 183, 195, 187, 184, 197, 189, 186, 198, 190, 187, 193, 185, 182, 192, 184, 181, 192, 184, 181, 191, 183, 180, 191, 183, 180, 192, 184, 181, 193, 185, 182, 194, 186, 183, 195, 190, 184, 194, 189, 183, 193, 188, 184, 192, 187, 183, 193, 188, 184, 195, 190, 186, 197, 192, 188, 199, 194, 190, 198, 193, 190, 199, 194, 191, 201, 196, 193, 200, 195, 192, 199, 194, 191, 199, 194, 191, 202, 196, 196, 205, 199, 199, 204, 200, 199, 205, 201, 200, 204, 200, 199, 203, 199, 198, 200, 198, 199, 203, 201, 202, 207, 207, 209, 211, 211, 213, 213, 212, 217, 218, 217, 222, 224, 225, 229, 229, 230, 234, 231, 234, 239, 234, 237, 242, 237, 240, 245, 239, 242, 247, 239, 242, 247, 240, 243, 248, 241, 244, 249, 242, 245, 250, 243, 246, 251, 242, 245, 250, 242, 245, 250, 241, 244, 249, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 234, 237, 242, 234, 237, 242, 234, 237, 242, 235, 238, 243, 235, 238, 243, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 237, 240, 245, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 238, 244, 233, 238, 244, 233, 238, 244, 232, 237, 243, 233, 236, 241, 237, 238, 242, 234, 238, 241, 228, 238, 240, 226, 236, 238, 226, 231, 234, 216, 215, 213, 197, 182, 179, 179, 152, 145, 161, 125, 113, 155, 114, 96, 150, 109, 89, 152, 111, 89, 151, 112, 95, 151, 111, 99, 158, 117, 111, 168, 130, 127, 172, 147, 143, 176, 158, 156, 172, 157, 154, 150, 135, 132, 129, 111, 107, 120, 99, 94, 118, 91, 82, 116, 84, 73, 124, 88, 76, 120, 82, 71, 112, 74, 65, 106, 68, 59, 103, 62, 56, 100, 60, 52, 98, 55, 46, 95, 53, 41, 96, 52, 39, 100, 54, 41, 96, 52, 41, 86, 43, 34, 70, 30, 22, 56, 17, 10, 45, 10, 4, 41, 8, 3, 42, 9, 4, 46, 15, 10, 52, 21, 18, 52, 19, 14, 45, 12, 7, 40, 7, 2, 42, 9, 2, 48, 11, 5, 66, 22, 19, 72, 27, 24, 76, 32, 29, 78, 37, 31, 80, 40, 32, 84, 41, 32, 89, 42, 32, 96, 44, 31, 110, 54, 41, 119, 61, 49, 131, 73, 61, 139, 85, 73, 143, 95, 85, 142, 102, 94, 142, 108, 99, 141, 112, 104, 146, 118, 114, 156, 131, 127, 164, 139, 135, 160, 136, 132, 159, 135, 133, 161, 137, 133, 155, 134, 131, 147, 126, 123, 148, 129, 125, 155, 136, 132, 156, 137, 131, 147, 130, 123, 138, 119, 112, 130, 113, 103, 125, 108, 98, 121, 104, 96, 123, 108, 103, 118, 103, 100, 108, 93, 90, 98, 83, 80, 93, 78, 75, 97, 82, 79, 107, 92, 89, 116, 101, 98, 100, 85, 82, 101, 87, 84, 106, 91, 88, 103, 89, 86, 91, 76, 73, 83, 69, 66, 102, 87, 84, 126, 112, 109, 121, 110, 106, 104, 93, 87, 110, 99, 93, 114, 103, 97, 85, 74, 70, 68, 57, 53, 93, 84, 79, 123, 114, 109, 102, 93, 88, 60, 51, 46, 43, 33, 31, 73, 63, 61, 100, 92, 89, 99, 91, 88, 98, 90, 87, 109, 101, 98, 126, 119, 113, 93, 86, 80, 77, 70, 64, 85, 78, 72, 93, 86, 80, 93, 86, 80, 86, 79, 73, 73, 66, 60, 61, 54, 48, 66, 59, 53, 114, 107, 101, 144, 137, 131, 124, 117, 111, 123, 116, 110, 131, 124, 118, 111, 104, 98, 135, 124, 122, 125, 114, 112, 107, 96, 94, 144, 133, 131, 141, 130, 128, 105, 94, 92, 105, 94, 92, 74, 64, 62, 114, 104, 102, 124, 116, 113, 124, 116, 113, 106, 101, 97, 68, 65, 60, 82, 79, 74, 155, 154, 149, 190, 189, 184, 154, 150, 147, 128, 123, 120, 134, 129, 126, 137, 132, 128, 101, 96, 93, 116, 111, 107, 134, 129, 126, 65, 60, 56, 43, 38, 34, 127, 122, 118, 95, 90, 86, 66, 61, 57, 135, 130, 126, 189, 184, 180, 181, 176, 172, 149, 141, 138, 117, 107, 105, 100, 90, 88, 108, 103, 99, 138, 137, 132, 134, 137, 130, 101, 104, 97, 113, 116, 109, 167, 168, 162, 153, 149, 146, 116, 111, 108, 114, 106, 104, 127, 119, 117, 102, 92, 91, 123, 115, 113, 171, 162, 163, 133, 127, 127, 114, 114, 112, 148, 150, 147, 160, 161, 156, 130, 131, 126, 60, 61, 55, 85, 84, 79, 167, 164, 159, 127, 124, 117, 109, 104, 100, 134, 127, 121, 124, 116, 113, 132, 123, 118, 154, 144, 142, 121, 110, 108, 97, 86, 84, 140, 129, 127, 144, 133, 129, 144, 133, 129, 93, 82, 78, 135, 124, 120, 158, 147, 143, 116, 105, 101, 139, 128, 124, 147, 136, 132, 141, 130, 126, 132, 121, 117, 157, 146, 142, 146, 135, 131, 140, 129, 125, 68, 57, 53, 66, 55, 51, 149, 138, 134, 135, 125, 123, 87, 77, 75, 96, 86, 84, 164, 154, 152, 82, 72, 70, 116, 106, 104, 139, 130, 125, 128, 119, 114, 108, 97, 93, 118, 107, 103, 122, 111, 107, 134, 123, 119, 118, 105, 99, 115, 102, 96, 83, 70, 64, 110, 97, 91, 139, 124, 119, 142, 127, 120, 119, 106, 100, 129, 118, 112, 77, 68, 63, 150, 142, 139, 157, 152, 149, 140, 136, 133, 171, 170, 168, 162, 162, 160, 154, 154, 152, 170, 172, 169, 189, 191, 188, 202, 207, 203, 201, 206, 202, 166, 168, 163, 189, 188, 184, 164, 161, 156, 189, 186, 181, 175, 172, 167, 159, 154, 150, 162, 157, 153, 144, 137, 131, 161, 154, 148, 144, 137, 131, 70, 61, 56, 66, 57, 52, 137, 128, 123, 140, 129, 125, 127, 116, 110, 139, 128, 124, 100, 89, 85, 104, 90, 87, 139, 125, 122, 140, 126, 123, 100, 86, 83, 138, 127, 123, 128, 117, 113, 124, 115, 110, 123, 114, 109, 139, 130, 125, 124, 115, 110, 95, 84, 80, 144, 133, 129, 147, 133, 130, 114, 100, 97, 146, 132, 129, 134, 120, 117, 118, 107, 103, 136, 125, 121, 135, 124, 120, 68, 57, 53, 117, 106, 102, 122, 111, 107, 154, 143, 139, 146, 135, 131, 154, 143, 139, 115, 104, 100, 88, 77, 73, 139, 128, 124, 155, 144, 140, 134, 123, 119, 158, 147, 143, 152, 141, 137, 151, 140, 136, 146, 135, 131, 116, 105, 101, 68, 57, 53, 80, 69, 65, 104, 93, 89, 90, 79, 77, 105, 95, 93, 126, 116, 114, 115, 105, 103, 108, 98, 96, 113, 105, 102, 110, 102, 99, 84, 76, 73, 68, 60, 58, 75, 67, 65, 112, 104, 102, 99, 91, 89, 74, 64, 63, 115, 107, 105, 91, 81, 79, 100, 92, 89, 126, 116, 114, 104, 96, 93, 139, 129, 127, 131, 123, 120, 122, 113, 108, 148, 141, 135, 136, 127, 122, 119, 112, 106, 147, 138, 133, 124, 115, 110, 124, 113, 109, 139, 128, 124, 153, 142, 138, 148, 137, 133, 145, 134, 130, 134, 123, 119, 120, 109, 105, 102, 91, 87, 95, 84, 80, 127, 116, 112, 142, 131, 127, 147, 136, 132, 150, 139, 135, 134, 123, 119, 128, 117, 113, 153, 142, 138, 146, 137, 130, 143, 134, 127, 90, 81, 74, 84, 75, 68, 143, 134, 127, 142, 133, 126, 114, 105, 100, 140, 131, 126, 132, 123, 118, 121, 112, 107, 118, 109, 104, 122, 113, 108, 117, 108, 103, 99, 90, 85, 87, 78, 73, 87, 78, 73, 115, 104, 102, 126, 112, 111, 134, 120, 119, 132, 118, 117, 122, 111, 109, 114, 103, 99, 113, 102, 98, 115, 106, 101, 116, 107, 102, 121, 112, 107, 128, 119, 114, 133, 124, 119, 133, 126, 120, 132, 125, 119, 130, 123, 117, 128, 121, 113, 135, 125, 116, 143, 130, 121, 142, 129, 121, 133, 120, 112, 128, 115, 109, 133, 120, 114, 138, 124, 121, 139, 125, 122, 141, 127, 124, 145, 131, 128, 150, 136, 133, 154, 140, 137, 155, 141, 138, 159, 145, 142, 168, 154, 151, 174, 163, 159, 150, 139, 135, 149, 138, 134, 153, 142, 138, 144, 133, 129, 126, 115, 111, 128, 117, 113, 130, 119, 115, 114, 103, 99, 117, 106, 102, 107, 96, 92, 107, 96, 92, 118, 107, 103, 119, 108, 104, 109, 98, 94, 106, 95, 91, 112, 102, 100, 85, 77, 74, 90, 82, 79, 94, 86, 83, 94, 86, 83, 94, 86, 83, 97, 89, 86, 105, 97, 94, 112, 104, 101, 118, 110, 107, 123, 115, 112, 133, 125, 122, 139, 131, 128, 131, 123, 120, 115, 107, 104, 103, 95, 92, 99, 91, 88, 103, 95, 92, 111, 103, 100, 106, 98, 95, 109, 101, 98, 135, 127, 124, 161, 153, 150, 173, 165, 162, 179, 171, 168, 159, 151, 148, 147, 139, 136, 137, 129, 126, 139, 131, 128, 150, 142, 139, 159, 151, 148, 157, 149, 146, 152, 145, 139, 155, 150, 144, 141, 137, 128, 128, 124, 115, 134, 130, 121, 158, 153, 147, 178, 171, 165, 174, 167, 161, 159, 152, 146, 148, 141, 135, 150, 143, 137, 156, 148, 145, 163, 158, 154, 171, 166, 162, 177, 172, 168, 179, 174, 170, 178, 173, 169, 179, 171, 168, 185, 177, 174, 192, 184, 181, 195, 187, 184, 193, 185, 182, 193, 185, 182, 195, 187, 184, 198, 190, 187, 192, 184, 181, 191, 183, 180, 190, 182, 179, 190, 182, 179, 190, 182, 179, 190, 182, 179, 191, 183, 180, 192, 184, 181, 192, 187, 181, 191, 186, 180, 189, 184, 180, 189, 184, 180, 190, 185, 181, 192, 187, 183, 194, 189, 185, 196, 191, 187, 196, 191, 188, 198, 193, 190, 199, 194, 191, 199, 194, 191, 198, 193, 190, 200, 195, 192, 203, 197, 197, 206, 200, 200, 204, 200, 199, 204, 200, 199, 204, 200, 199, 202, 198, 197, 199, 197, 198, 202, 200, 201, 206, 206, 208, 210, 210, 212, 211, 210, 215, 217, 216, 221, 223, 224, 228, 229, 230, 234, 231, 234, 239, 235, 238, 243, 239, 242, 247, 241, 244, 249, 239, 242, 247, 240, 243, 248, 241, 244, 249, 242, 245, 250, 243, 246, 251, 242, 245, 250, 242, 245, 250, 241, 244, 249, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 243, 235, 238, 243, 236, 239, 244, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 236, 239, 244, 235, 238, 243, 235, 238, 243, 235, 238, 243, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 235, 239, 232, 235, 240, 228, 237, 244, 227, 237, 246, 227, 237, 246, 224, 229, 235, 210, 206, 205, 197, 182, 177, 178, 150, 138, 161, 126, 107, 152, 111, 89, 159, 117, 93, 166, 125, 107, 164, 125, 110, 165, 128, 119, 168, 137, 134, 178, 156, 159, 176, 159, 165, 171, 155, 156, 157, 142, 139, 145, 128, 121, 137, 117, 108, 130, 108, 97, 125, 98, 89, 123, 94, 86, 125, 94, 89, 126, 91, 87, 122, 84, 81, 114, 75, 70, 107, 66, 60, 103, 60, 53, 101, 58, 49, 110, 65, 59, 102, 57, 51, 104, 59, 54, 105, 62, 56, 93, 52, 46, 80, 41, 36, 61, 24, 18, 38, 3, 0, 45, 12, 5, 42, 12, 4, 44, 13, 8, 46, 17, 9, 43, 14, 6, 38, 9, 1, 39, 10, 2, 46, 16, 8, 61, 20, 16, 68, 24, 21, 73, 30, 24, 80, 37, 31, 91, 48, 41, 101, 58, 51, 101, 57, 48, 96, 49, 39, 108, 60, 48, 111, 63, 51, 118, 70, 58, 126, 78, 66, 133, 87, 74, 138, 94, 81, 141, 99, 85, 141, 103, 92, 144, 109, 103, 152, 118, 116, 157, 126, 123, 158, 129, 125, 160, 132, 129, 162, 137, 132, 163, 139, 135, 159, 138, 133, 153, 134, 128, 149, 130, 124, 143, 126, 119, 139, 124, 117, 141, 124, 117, 137, 123, 114, 133, 119, 110, 129, 114, 107, 133, 118, 113, 120, 105, 100, 111, 96, 91, 110, 95, 90, 106, 92, 89, 101, 87, 84, 108, 94, 91, 121, 107, 104, 117, 103, 100, 106, 95, 91, 105, 91, 90, 92, 81, 79, 73, 59, 58, 65, 54, 52, 78, 64, 63, 83, 72, 68, 108, 97, 93, 128, 117, 113, 115, 104, 100, 110, 99, 95, 119, 108, 104, 82, 71, 67, 57, 46, 42, 91, 80, 76, 103, 94, 89, 84, 75, 70, 66, 57, 52, 69, 60, 55, 91, 82, 77, 103, 94, 89, 89, 82, 76, 67, 60, 54, 101, 96, 92, 121, 116, 112, 115, 110, 106, 79, 74, 70, 68, 63, 59, 91, 86, 82, 96, 91, 87, 75, 70, 66, 55, 50, 46, 80, 75, 71, 80, 75, 71, 97, 92, 88, 137, 132, 128, 128, 123, 119, 101, 96, 92, 114, 106, 103, 109, 102, 96, 135, 126, 121, 117, 108, 103, 94, 85, 80, 120, 111, 106, 136, 127, 122, 110, 101, 96, 83, 76, 70, 87, 80, 74, 106, 99, 93, 130, 123, 117, 113, 106, 100, 79, 74, 68, 100, 95, 89, 132, 127, 121, 124, 119, 115, 170, 166, 165, 161, 157, 156, 140, 136, 135, 121, 117, 114, 113, 107, 107, 108, 103, 100, 106, 100, 100, 110, 105, 102, 67, 62, 59, 82, 77, 74, 96, 88, 86, 80, 72, 70, 78, 70, 68, 138, 130, 128, 191, 183, 180, 189, 181, 178, 148, 140, 137, 109, 101, 99, 106, 101, 98, 128, 124, 121, 123, 119, 116, 112, 108, 105, 107, 103, 100, 98, 94, 91, 171, 166, 163, 164, 159, 156, 128, 123, 120, 102, 97, 94, 111, 103, 101, 117, 112, 109, 137, 132, 129, 178, 173, 170, 122, 118, 115, 126, 122, 119, 155, 151, 148, 157, 153, 150, 91, 87, 84, 79, 75, 72, 146, 142, 139, 164, 161, 156, 109, 105, 102, 140, 135, 131, 124, 119, 116, 109, 101, 98, 136, 128, 126, 140, 130, 129, 127, 117, 116, 145, 134, 132, 144, 133, 129, 135, 124, 120, 100, 89, 85, 126, 115, 111, 164, 153, 149, 137, 126, 122, 121, 110, 106, 138, 127, 123, 130, 119, 115, 126, 115, 111, 160, 149, 145, 159, 148, 144, 114, 103, 99, 73, 62, 58, 76, 65, 61, 135, 124, 120, 142, 131, 127, 109, 98, 94, 108, 97, 93, 136, 125, 121, 111, 100, 96, 100, 89, 85, 131, 120, 116, 113, 102, 98, 122, 111, 107, 125, 114, 110, 109, 98, 94, 113, 102, 98, 131, 120, 116, 109, 98, 94, 90, 79, 75, 115, 104, 98, 138, 127, 121, 147, 136, 130, 125, 114, 108, 156, 147, 140, 96, 87, 82, 146, 139, 133, 163, 158, 154, 139, 136, 131, 153, 149, 146, 177, 176, 174, 172, 171, 169, 164, 164, 164, 184, 184, 184, 201, 203, 202, 198, 200, 199, 186, 188, 187, 191, 190, 188, 179, 178, 174, 181, 177, 174, 179, 175, 172, 167, 162, 158, 166, 161, 157, 175, 168, 162, 175, 166, 161, 142, 133, 128, 122, 111, 107, 102, 91, 87, 124, 113, 109, 164, 155, 150, 148, 139, 134, 114, 104, 102, 131, 122, 117, 122, 111, 107, 136, 125, 121, 124, 113, 109, 86, 75, 71, 138, 127, 123, 125, 114, 110, 98, 87, 83, 119, 108, 104, 148, 137, 133, 129, 118, 114, 94, 83, 79, 113, 102, 98, 140, 129, 125, 128, 117, 113, 135, 124, 120, 153, 142, 138, 148, 137, 133, 128, 117, 113, 137, 126, 122, 109, 98, 94, 98, 87, 83, 113, 102, 98, 112, 101, 97, 153, 142, 138, 126, 115, 111, 166, 155, 151, 100, 89, 85, 93, 82, 78, 150, 139, 135, 141, 130, 126, 137, 126, 122, 155, 144, 140, 157, 143, 140, 135, 121, 118, 162, 148, 145, 114, 100, 97, 66, 52, 49, 100, 89, 85, 116, 105, 101, 114, 103, 99, 137, 126, 122, 139, 128, 124, 98, 87, 83, 106, 97, 92, 96, 87, 82, 77, 68, 63, 112, 102, 100, 97, 87, 85, 115, 105, 103, 75, 65, 63, 75, 64, 62, 112, 102, 100, 127, 116, 114, 113, 103, 101, 115, 104, 100, 129, 120, 115, 136, 125, 121, 139, 130, 125, 146, 135, 131, 134, 125, 120, 122, 111, 105, 124, 115, 108, 128, 117, 111, 125, 114, 108, 135, 124, 118, 140, 129, 123, 117, 106, 100, 134, 123, 117, 135, 124, 118, 117, 106, 100, 113, 102, 96, 64, 53, 47, 87, 76, 70, 145, 134, 128, 165, 154, 148, 142, 131, 125, 135, 124, 118, 140, 129, 123, 133, 122, 116, 124, 113, 107, 117, 108, 99, 84, 75, 66, 88, 79, 70, 117, 108, 99, 128, 119, 110, 132, 123, 114, 124, 115, 108, 99, 90, 83, 98, 89, 82, 124, 115, 108, 142, 133, 126, 136, 127, 120, 119, 110, 105, 114, 105, 100, 120, 111, 106, 127, 117, 115, 142, 130, 130, 155, 143, 143, 159, 147, 147, 137, 125, 125, 96, 84, 84, 67, 56, 54, 71, 60, 58, 89, 78, 76, 90, 79, 75, 95, 84, 80, 105, 92, 86, 114, 101, 95, 124, 111, 105, 132, 119, 113, 137, 124, 118, 139, 126, 117, 137, 123, 110, 147, 134, 118, 149, 135, 122, 133, 119, 108, 110, 96, 87, 103, 88, 81, 119, 104, 99, 138, 123, 118, 148, 133, 130, 146, 131, 128, 137, 122, 119, 128, 113, 108, 136, 121, 114, 154, 140, 131, 163, 149, 140, 159, 146, 137, 153, 140, 134, 171, 157, 154, 172, 158, 155, 149, 135, 132, 135, 124, 118, 145, 134, 128, 152, 141, 135, 147, 136, 130, 130, 119, 113, 118, 107, 101, 104, 95, 90, 93, 84, 79, 82, 72, 70, 74, 64, 62, 74, 64, 62, 78, 68, 66, 71, 63, 60, 73, 66, 60, 75, 68, 62, 76, 69, 63, 81, 74, 68, 90, 83, 77, 104, 97, 91, 113, 106, 100, 102, 95, 89, 106, 99, 93, 114, 107, 101, 119, 112, 106, 118, 111, 105, 116, 109, 103, 124, 117, 111, 135, 128, 122, 131, 124, 118, 146, 139, 133, 164, 157, 151, 170, 163, 157, 168, 161, 155, 167, 160, 154, 174, 167, 161, 183, 176, 170, 164, 157, 151, 182, 175, 169, 185, 178, 172, 163, 156, 150, 145, 138, 132, 148, 141, 135, 157, 150, 144, 158, 151, 145, 148, 143, 137, 136, 131, 125, 138, 131, 125, 158, 151, 145, 178, 171, 165, 177, 168, 163, 155, 146, 141, 134, 125, 120, 115, 106, 101, 139, 130, 125, 163, 154, 149, 170, 163, 157, 168, 161, 155, 170, 163, 157, 175, 170, 164, 181, 176, 172, 185, 180, 176, 181, 176, 173, 178, 173, 170, 180, 175, 172, 185, 180, 177, 191, 186, 183, 196, 191, 188, 199, 194, 191, 195, 190, 187, 193, 188, 185, 190, 185, 182, 188, 183, 180, 188, 183, 180, 191, 186, 183, 194, 189, 186, 197, 192, 188, 202, 195, 189, 198, 191, 185, 193, 185, 182, 189, 181, 178, 189, 181, 178, 192, 184, 181, 194, 189, 185, 198, 193, 189, 197, 192, 189, 197, 192, 189, 197, 192, 189, 198, 193, 190, 199, 195, 192, 201, 197, 194, 203, 199, 198, 204, 200, 199, 204, 200, 199, 204, 200, 199, 205, 201, 200, 205, 201, 200, 205, 204, 202, 207, 206, 204, 208, 208, 208, 210, 210, 210, 215, 215, 217, 221, 221, 223, 228, 229, 233, 235, 236, 240, 236, 240, 243, 239, 243, 246, 241, 244, 249, 243, 246, 251, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 244, 247, 252, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 243, 235, 238, 243, 236, 239, 244, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 236, 239, 244, 236, 239, 244, 235, 238, 243, 235, 238, 243, 235, 238, 243, 234, 237, 242, 234, 237, 242, 234, 237, 242, 235, 236, 240, 233, 236, 241, 228, 237, 246, 227, 237, 247, 228, 238, 248, 223, 232, 239, 211, 212, 216, 201, 191, 189, 185, 165, 154, 171, 140, 122, 161, 123, 102, 165, 124, 102, 170, 129, 111, 166, 129, 113, 166, 132, 122, 169, 140, 136, 179, 158, 163, 180, 163, 171, 179, 163, 166, 170, 155, 152, 160, 143, 136, 152, 134, 124, 142, 122, 113, 134, 111, 103, 129, 104, 99, 132, 104, 100, 134, 103, 101, 132, 98, 96, 126, 91, 87, 120, 83, 77, 115, 77, 68, 113, 73, 65, 110, 66, 63, 103, 59, 56, 106, 62, 59, 108, 67, 63, 99, 60, 55, 89, 50, 45, 73, 36, 30, 51, 16, 10, 46, 13, 6, 46, 16, 8, 49, 19, 11, 46, 17, 9, 37, 8, 0, 30, 3, 0, 36, 9, 0, 48, 19, 11, 59, 21, 18, 64, 23, 19, 73, 32, 28, 86, 45, 39, 99, 58, 52, 104, 64, 56, 104, 61, 54, 100, 57, 48, 97, 54, 45, 102, 60, 48, 110, 68, 56, 119, 77, 63, 129, 85, 72, 137, 93, 80, 141, 98, 82, 143, 101, 89, 153, 116, 108, 159, 124, 120, 164, 130, 128, 163, 132, 129, 163, 134, 130, 165, 137, 133, 163, 140, 134, 158, 138, 131, 149, 130, 124, 149, 132, 125, 147, 132, 125, 143, 128, 121, 137, 122, 115, 132, 117, 110, 130, 117, 109, 130, 117, 109, 124, 109, 104, 117, 102, 97, 114, 99, 94, 120, 105, 100, 123, 109, 106, 117, 103, 100, 106, 92, 89, 99, 85, 82, 112, 101, 97, 99, 88, 84, 105, 94, 92, 115, 104, 102, 100, 89, 87, 80, 69, 67, 75, 64, 62, 76, 65, 63, 105, 94, 90, 109, 98, 94, 112, 101, 97, 115, 104, 100, 112, 101, 97, 96, 85, 81, 76, 65, 61, 66, 55, 51, 76, 67, 62, 70, 61, 56, 68, 59, 54, 79, 70, 65, 96, 87, 82, 101, 92, 87, 83, 76, 70, 62, 55, 49, 101, 93, 90, 112, 107, 103, 100, 92, 89, 92, 87, 83, 105, 97, 94, 82, 77, 73, 65, 57, 54, 85, 80, 76, 74, 66, 63, 47, 42, 38, 68, 60, 57, 113, 108, 104, 125, 117, 114, 106, 101, 97, 106, 98, 95, 115, 107, 104, 115, 108, 102, 107, 100, 94, 135, 128, 122, 136, 129, 123, 93, 86, 80, 98, 91, 85, 130, 123, 117, 123, 116, 110, 106, 99, 93, 88, 81, 75, 98, 91, 85, 133, 126, 120, 132, 125, 119, 98, 91, 85, 96, 89, 83, 126, 121, 117, 138, 132, 132, 167, 163, 164, 175, 171, 170, 147, 143, 142, 119, 113, 113, 111, 105, 105, 111, 105, 105, 110, 104, 104, 105, 100, 97, 70, 65, 62, 98, 90, 88, 123, 115, 113, 83, 75, 73, 76, 68, 66, 135, 127, 124, 181, 173, 170, 200, 195, 192, 140, 135, 132, 108, 103, 100, 122, 117, 114, 131, 126, 123, 122, 117, 114, 114, 109, 106, 112, 107, 104, 138, 133, 130, 164, 159, 156, 159, 154, 151, 136, 131, 128, 127, 122, 119, 121, 116, 113, 131, 126, 123, 163, 158, 155, 136, 131, 128, 124, 119, 116, 139, 134, 131, 169, 164, 161, 128, 124, 121, 83, 79, 76, 115, 111, 108, 147, 143, 140, 129, 125, 122, 136, 132, 129, 126, 121, 118, 117, 112, 109, 127, 119, 117, 128, 120, 118, 123, 113, 112, 125, 115, 113, 154, 143, 141, 146, 135, 131, 108, 97, 93, 114, 103, 99, 144, 133, 129, 139, 128, 124, 132, 121, 117, 127, 116, 112, 134, 123, 119, 138, 127, 123, 166, 155, 151, 163, 152, 148, 127, 116, 112, 83, 72, 68, 81, 70, 66, 143, 132, 128, 130, 119, 115, 133, 122, 118, 135, 124, 120, 125, 114, 110, 96, 85, 81, 114, 103, 99, 142, 131, 127, 93, 82, 78, 110, 99, 95, 129, 118, 114, 108, 97, 93, 105, 94, 90, 142, 131, 127, 134, 123, 119, 103, 92, 88, 113, 102, 98, 123, 114, 107, 140, 131, 124, 135, 126, 119, 178, 169, 162, 130, 123, 117, 171, 164, 158, 173, 168, 164, 147, 142, 138, 148, 144, 141, 170, 166, 163, 169, 168, 166, 164, 164, 164, 184, 184, 184, 203, 203, 203, 202, 203, 205, 196, 198, 197, 191, 191, 191, 184, 183, 181, 179, 175, 172, 174, 170, 167, 169, 164, 160, 161, 156, 152, 168, 161, 155, 179, 170, 165, 157, 146, 142, 135, 124, 120, 146, 135, 131, 127, 116, 112, 143, 133, 131, 166, 156, 154, 139, 129, 127, 167, 157, 155, 121, 110, 106, 117, 106, 102, 122, 111, 107, 101, 90, 86, 146, 135, 131, 140, 129, 125, 117, 106, 102, 113, 102, 98, 152, 141, 137, 141, 130, 126, 101, 90, 86, 108, 97, 93, 134, 123, 119, 129, 118, 114, 126, 115, 111, 125, 114, 110, 150, 139, 135, 119, 108, 104, 117, 106, 102, 128, 117, 113, 105, 94, 90, 106, 95, 91, 143, 132, 128, 148, 137, 133, 141, 130, 126, 158, 147, 143, 121, 110, 106, 107, 96, 92, 135, 124, 120, 137, 126, 122, 132, 121, 117, 134, 123, 119, 142, 128, 125, 153, 139, 136, 165, 151, 148, 147, 133, 130, 64, 50, 47, 74, 60, 57, 144, 133, 129, 92, 81, 77, 121, 110, 106, 133, 122, 118, 101, 90, 86, 103, 92, 88, 90, 81, 76, 69, 60, 55, 98, 89, 84, 96, 87, 82, 94, 83, 81, 63, 52, 50, 80, 69, 67, 121, 110, 108, 125, 114, 112, 118, 107, 105, 121, 110, 106, 118, 107, 103, 115, 104, 100, 128, 117, 113, 142, 131, 127, 117, 106, 102, 113, 102, 96, 124, 113, 107, 109, 98, 92, 113, 102, 96, 154, 143, 137, 120, 109, 103, 127, 116, 110, 135, 124, 118, 117, 106, 100, 102, 91, 85, 84, 73, 67, 65, 54, 48, 147, 136, 130, 141, 130, 124, 139, 128, 122, 143, 132, 126, 136, 125, 119, 116, 105, 99, 114, 103, 97, 133, 122, 116, 95, 86, 77, 99, 90, 81, 115, 106, 97, 138, 129, 120, 144, 135, 126, 123, 114, 105, 105, 96, 89, 108, 99, 92, 105, 96, 89, 110, 101, 94, 122, 113, 106, 136, 127, 120, 140, 131, 126, 138, 129, 124, 140, 131, 126, 146, 136, 134, 140, 128, 128, 117, 105, 105, 95, 83, 85, 91, 79, 79, 96, 84, 84, 100, 86, 85, 96, 82, 81, 92, 78, 75, 104, 90, 87, 109, 95, 92, 118, 103, 98, 122, 107, 102, 122, 107, 102, 121, 106, 101, 120, 105, 98, 120, 106, 97, 121, 107, 94, 119, 103, 88, 115, 99, 86, 115, 99, 86, 118, 101, 93, 123, 106, 98, 126, 109, 102, 128, 110, 106, 138, 120, 116, 131, 113, 109, 121, 103, 99, 114, 97, 90, 119, 102, 94, 131, 114, 106, 138, 124, 113, 139, 125, 116, 116, 103, 97, 123, 109, 106, 127, 113, 110, 127, 113, 110, 126, 115, 109, 128, 117, 111, 126, 116, 107, 121, 111, 102, 132, 121, 115, 129, 118, 112, 128, 119, 114, 131, 122, 117, 128, 118, 116, 119, 109, 107, 111, 101, 100, 108, 98, 96, 103, 95, 92, 104, 97, 91, 109, 102, 96, 121, 114, 108, 133, 126, 120, 139, 132, 126, 137, 130, 124, 133, 126, 120, 148, 141, 135, 141, 134, 128, 137, 130, 124, 136, 129, 123, 133, 126, 120, 129, 122, 116, 128, 121, 115, 132, 125, 119, 119, 112, 106, 112, 105, 99, 105, 98, 92, 108, 101, 95, 121, 114, 108, 138, 131, 125, 151, 144, 138, 157, 150, 144, 163, 156, 150, 155, 148, 142, 142, 135, 129, 136, 129, 123, 147, 140, 134, 165, 158, 152, 167, 160, 154, 158, 151, 145, 146, 141, 135, 155, 150, 144, 174, 167, 161, 187, 180, 174, 185, 176, 171, 168, 159, 154, 152, 141, 137, 144, 133, 129, 147, 136, 132, 160, 149, 145, 168, 159, 154, 167, 158, 153, 165, 158, 152, 173, 166, 160, 185, 180, 174, 195, 190, 184, 181, 176, 173, 182, 177, 174, 184, 179, 176, 187, 182, 179, 190, 185, 182, 190, 185, 182, 188, 183, 180, 186, 181, 178, 190, 185, 182, 189, 184, 181, 188, 183, 180, 188, 183, 180, 189, 184, 181, 191, 186, 183, 194, 189, 186, 195, 190, 186, 191, 183, 180, 188, 181, 175, 183, 175, 172, 179, 171, 168, 178, 170, 167, 181, 173, 170, 183, 178, 174, 186, 181, 177, 196, 191, 188, 197, 192, 189, 197, 192, 189, 199, 194, 191, 200, 196, 193, 203, 199, 196, 206, 202, 201, 208, 204, 203, 205, 201, 200, 205, 201, 200, 205, 201, 200, 206, 202, 201, 205, 204, 202, 208, 207, 205, 209, 209, 209, 210, 210, 210, 216, 216, 218, 222, 222, 224, 229, 230, 234, 235, 236, 240, 236, 240, 243, 238, 242, 245, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 247, 252, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 244, 247, 254, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 243, 235, 238, 243, 236, 239, 244, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 236, 239, 244, 236, 239, 244, 236, 239, 244, 235, 238, 243, 235, 238, 243, 234, 237, 242, 234, 237, 242, 234, 237, 242, 235, 238, 243, 234, 239, 245, 230, 237, 245, 226, 236, 245, 228, 238, 247, 227, 236, 243, 220, 221, 225, 211, 206, 203, 201, 184, 176, 186, 160, 147, 173, 140, 123, 173, 136, 118, 173, 136, 118, 170, 133, 117, 168, 134, 124, 171, 140, 135, 179, 154, 157, 183, 162, 167, 186, 168, 168, 181, 166, 163, 173, 158, 151, 163, 149, 140, 151, 134, 126, 140, 121, 114, 135, 114, 109, 139, 115, 111, 143, 115, 112, 143, 114, 110, 140, 109, 104, 135, 102, 95, 129, 95, 86, 125, 91, 82, 112, 75, 69, 106, 68, 65, 110, 72, 69, 114, 79, 75, 109, 74, 70, 103, 68, 64, 90, 55, 51, 70, 37, 32, 53, 20, 15, 55, 24, 19, 58, 27, 22, 54, 25, 19, 42, 13, 7, 35, 6, 0, 43, 14, 8, 58, 27, 22, 62, 27, 25, 63, 25, 24, 75, 37, 36, 97, 59, 56, 110, 72, 69, 108, 71, 65, 105, 66, 61, 105, 66, 59, 98, 59, 52, 104, 66, 57, 114, 76, 67, 126, 88, 77, 138, 98, 88, 146, 106, 94, 151, 111, 99, 153, 115, 104, 157, 122, 116, 162, 131, 128, 167, 136, 133, 166, 137, 133, 164, 136, 133, 164, 139, 135, 163, 139, 135, 158, 137, 132, 152, 133, 127, 157, 140, 133, 158, 143, 138, 153, 138, 133, 142, 127, 122, 134, 119, 114, 133, 118, 113, 135, 120, 115, 122, 107, 102, 117, 102, 97, 114, 101, 95, 120, 107, 101, 131, 117, 114, 131, 117, 114, 112, 98, 95, 90, 76, 73, 83, 72, 68, 93, 82, 78, 106, 95, 93, 106, 95, 93, 101, 90, 88, 108, 97, 95, 105, 95, 93, 88, 78, 76, 107, 96, 92, 92, 81, 77, 108, 97, 93, 117, 106, 102, 102, 91, 87, 111, 100, 96, 109, 100, 95, 70, 61, 56, 64, 55, 50, 56, 47, 42, 56, 47, 42, 73, 64, 59, 95, 88, 82, 103, 96, 90, 89, 82, 76, 72, 65, 59, 66, 59, 53, 108, 101, 95, 119, 110, 105, 98, 91, 85, 94, 85, 80, 93, 86, 80, 81, 72, 67, 71, 64, 58, 109, 100, 95, 53, 46, 40, 47, 38, 33, 93, 86, 80, 124, 115, 110, 121, 114, 108, 109, 100, 95, 94, 87, 81, 114, 107, 101, 120, 113, 107, 122, 115, 109, 123, 116, 110, 121, 114, 108, 112, 105, 99, 114, 107, 101, 131, 124, 118, 155, 148, 142, 125, 118, 112, 82, 75, 69, 88, 81, 75, 129, 122, 116, 125, 118, 112, 102, 95, 89, 108, 103, 99, 135, 130, 127, 116, 112, 111, 135, 131, 130, 177, 173, 172, 174, 168, 168, 126, 120, 120, 104, 98, 98, 117, 111, 111, 103, 98, 95, 112, 107, 104, 121, 113, 111, 122, 114, 112, 105, 97, 94, 75, 67, 64, 86, 78, 75, 135, 127, 124, 177, 169, 167, 183, 175, 173, 155, 147, 145, 115, 107, 105, 112, 104, 102, 127, 119, 117, 125, 117, 115, 113, 105, 103, 94, 86, 84, 149, 141, 139, 178, 170, 168, 165, 157, 155, 141, 133, 131, 118, 110, 108, 116, 108, 106, 137, 129, 127, 157, 152, 149, 122, 117, 114, 97, 92, 89, 139, 134, 131, 146, 142, 139, 88, 84, 81, 90, 86, 83, 139, 135, 132, 155, 151, 148, 128, 124, 121, 121, 116, 113, 131, 126, 123, 127, 119, 117, 113, 105, 103, 110, 100, 99, 113, 103, 101, 152, 141, 139, 151, 140, 136, 123, 112, 108, 116, 105, 101, 128, 117, 113, 141, 130, 126, 141, 130, 126, 108, 97, 93, 131, 120, 116, 148, 137, 133, 165, 154, 150, 161, 150, 146, 139, 128, 124, 91, 80, 76, 82, 71, 67, 146, 135, 131, 126, 115, 111, 149, 138, 134, 154, 143, 139, 121, 110, 106, 88, 77, 73, 122, 111, 107, 146, 135, 131, 89, 78, 74, 99, 88, 84, 135, 124, 120, 119, 108, 104, 105, 94, 90, 140, 129, 125, 141, 130, 126, 110, 99, 95, 110, 99, 95, 115, 106, 99, 134, 125, 118, 139, 130, 123, 186, 177, 170, 159, 152, 146, 191, 184, 178, 179, 174, 170, 154, 149, 145, 150, 146, 143, 164, 160, 157, 169, 168, 166, 168, 168, 166, 183, 183, 183, 199, 201, 200, 200, 201, 203, 202, 204, 203, 188, 188, 188, 188, 188, 186, 179, 178, 176, 179, 175, 172, 180, 175, 171, 161, 156, 152, 156, 149, 143, 178, 171, 165, 150, 141, 136, 115, 106, 101, 160, 151, 146, 143, 134, 129, 140, 130, 128, 169, 159, 157, 140, 130, 128, 168, 158, 156, 128, 117, 113, 111, 100, 96, 127, 116, 112, 112, 101, 97, 139, 128, 124, 137, 126, 122, 127, 116, 112, 113, 102, 98, 136, 125, 121, 146, 135, 131, 116, 105, 101, 110, 99, 95, 127, 116, 112, 127, 116, 112, 126, 115, 111, 120, 109, 105, 144, 133, 129, 129, 118, 114, 99, 88, 84, 130, 119, 115, 127, 116, 112, 112, 101, 97, 154, 143, 139, 148, 137, 133, 135, 124, 120, 148, 137, 133, 137, 126, 122, 112, 101, 97, 133, 122, 118, 146, 135, 131, 126, 115, 111, 136, 125, 121, 134, 120, 117, 157, 143, 140, 144, 130, 127, 159, 145, 142, 128, 114, 111, 68, 54, 51, 86, 75, 71, 108, 97, 93, 99, 88, 84, 127, 116, 112, 107, 96, 92, 91, 80, 76, 81, 72, 67, 69, 60, 55, 86, 77, 72, 96, 87, 82, 107, 96, 94, 78, 67, 65, 92, 81, 79, 118, 107, 105, 107, 96, 94, 98, 87, 85, 101, 90, 86, 92, 81, 77, 117, 106, 102, 123, 112, 108, 143, 132, 128, 117, 106, 102, 126, 115, 109, 128, 117, 111, 89, 78, 72, 123, 112, 106, 153, 142, 136, 113, 102, 96, 139, 128, 122, 119, 108, 102, 92, 81, 75, 108, 97, 91, 104, 93, 87, 121, 110, 104, 156, 145, 139, 143, 132, 126, 134, 123, 117, 128, 117, 111, 121, 110, 104, 124, 113, 107, 127, 116, 110, 121, 110, 104, 93, 82, 76, 114, 103, 97, 127, 116, 110, 144, 133, 127, 151, 140, 134, 116, 105, 99, 93, 82, 78, 116, 105, 101, 120, 109, 105, 104, 93, 89, 97, 86, 82, 105, 94, 90, 109, 98, 94, 106, 95, 91, 112, 101, 97, 124, 113, 109, 111, 97, 96, 100, 86, 85, 93, 79, 79, 100, 86, 85, 110, 96, 95, 112, 97, 94, 108, 93, 90, 104, 89, 86, 107, 92, 89, 117, 102, 97, 128, 113, 108, 133, 118, 113, 130, 115, 108, 127, 112, 105, 128, 113, 106, 130, 115, 108, 120, 106, 97, 111, 97, 88, 104, 90, 81, 108, 94, 85, 119, 105, 96, 124, 110, 101, 117, 103, 94, 107, 92, 85, 132, 117, 110, 125, 110, 103, 122, 107, 100, 126, 111, 104, 133, 116, 109, 136, 119, 112, 140, 123, 116, 143, 128, 121, 159, 145, 142, 146, 132, 129, 137, 123, 120, 137, 123, 120, 127, 114, 108, 102, 89, 83, 75, 64, 58, 61, 50, 44, 75, 64, 58, 70, 59, 53, 71, 62, 57, 82, 73, 68, 94, 84, 82, 100, 90, 88, 104, 94, 93, 108, 98, 96, 108, 100, 97, 112, 105, 99, 120, 113, 107, 127, 120, 114, 131, 124, 118, 129, 122, 116, 122, 115, 109, 117, 110, 104, 98, 91, 85, 92, 85, 79, 87, 80, 74, 84, 77, 71, 79, 72, 66, 74, 67, 61, 74, 67, 61, 79, 72, 66, 87, 80, 74, 92, 85, 79, 104, 97, 91, 119, 112, 106, 131, 124, 118, 131, 124, 118, 121, 114, 108, 110, 103, 97, 117, 110, 104, 127, 120, 114, 143, 136, 130, 159, 152, 146, 169, 162, 156, 170, 163, 157, 164, 157, 151, 157, 150, 144, 167, 162, 156, 175, 170, 164, 185, 178, 172, 182, 175, 169, 167, 158, 153, 152, 143, 138, 153, 142, 138, 161, 150, 146, 156, 145, 141, 167, 156, 152, 175, 166, 161, 177, 168, 163, 177, 170, 164, 180, 173, 167, 182, 177, 171, 182, 177, 171, 178, 173, 170, 179, 174, 171, 180, 175, 172, 181, 176, 173, 181, 176, 173, 179, 174, 171, 177, 172, 169, 175, 170, 167, 187, 182, 179, 188, 183, 180, 190, 185, 182, 192, 187, 184, 193, 188, 185, 194, 189, 186, 194, 189, 186, 194, 189, 185, 191, 183, 180, 188, 181, 175, 184, 176, 173, 181, 173, 170, 181, 173, 170, 184, 176, 173, 186, 181, 177, 188, 183, 179, 196, 191, 188, 197, 192, 189, 198, 193, 190, 200, 195, 192, 202, 198, 195, 205, 201, 198, 208, 204, 203, 210, 206, 205, 205, 201, 200, 205, 201, 200, 205, 201, 200, 206, 202, 201, 206, 205, 203, 208, 207, 205, 209, 209, 209, 210, 210, 210, 218, 218, 220, 224, 224, 226, 230, 231, 235, 235, 236, 240, 235, 239, 242, 236, 240, 243, 238, 241, 246, 239, 242, 247, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 243, 235, 238, 243, 236, 239, 244, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 235, 238, 243, 235, 238, 243, 235, 238, 243, 234, 237, 242, 237, 240, 245, 235, 240, 246, 230, 237, 245, 227, 236, 245, 229, 238, 247, 231, 238, 244, 227, 231, 234, 223, 219, 218, 213, 200, 194, 199, 179, 170, 184, 158, 145, 178, 146, 133, 174, 141, 126, 171, 135, 121, 168, 134, 122, 170, 137, 128, 173, 145, 142, 179, 155, 155, 184, 164, 163, 184, 166, 162, 177, 164, 158, 167, 154, 148, 150, 137, 131, 135, 120, 115, 137, 119, 115, 140, 119, 114, 143, 119, 115, 147, 119, 116, 145, 117, 113, 141, 112, 106, 133, 104, 96, 128, 99, 91, 117, 86, 81, 111, 80, 77, 116, 85, 82, 122, 91, 88, 119, 88, 85, 114, 83, 80, 103, 72, 69, 85, 54, 51, 65, 34, 31, 66, 37, 33, 71, 40, 37, 71, 42, 38, 67, 38, 34, 61, 32, 28, 64, 35, 31, 71, 42, 38, 71, 40, 38, 68, 34, 33, 80, 46, 45, 106, 72, 70, 117, 83, 81, 109, 75, 73, 103, 68, 64, 106, 71, 67, 99, 64, 58, 105, 70, 64, 116, 82, 73, 128, 94, 85, 142, 105, 96, 152, 115, 106, 158, 121, 112, 159, 125, 116, 155, 124, 119, 161, 132, 128, 166, 138, 134, 166, 138, 135, 164, 139, 135, 165, 141, 137, 163, 142, 137, 159, 140, 134, 154, 137, 130, 155, 137, 133, 154, 139, 134, 150, 135, 130, 143, 128, 123, 136, 121, 116, 131, 116, 111, 129, 114, 109, 128, 113, 108, 123, 108, 103, 112, 99, 93, 108, 95, 89, 120, 106, 103, 132, 118, 115, 124, 110, 107, 107, 93, 90, 71, 60, 56, 76, 65, 61, 93, 82, 80, 106, 95, 93, 108, 97, 95, 113, 102, 100, 113, 103, 101, 102, 92, 90, 111, 100, 96, 92, 81, 77, 105, 94, 90, 111, 100, 96, 93, 82, 78, 109, 98, 94, 128, 119, 114, 110, 101, 96, 85, 76, 71, 61, 52, 47, 43, 34, 29, 55, 46, 41, 84, 77, 71, 105, 98, 92, 107, 100, 94, 100, 93, 87, 56, 47, 42, 85, 76, 71, 129, 120, 115, 113, 104, 99, 68, 59, 54, 89, 80, 75, 109, 100, 95, 67, 58, 53, 103, 94, 89, 93, 84, 79, 57, 48, 43, 58, 49, 44, 115, 106, 101, 142, 133, 128, 120, 111, 106, 103, 94, 89, 101, 94, 88, 121, 114, 108, 104, 97, 91, 100, 93, 87, 140, 133, 127, 146, 139, 133, 120, 113, 107, 117, 110, 104, 118, 111, 105, 157, 150, 144, 149, 142, 136, 110, 103, 97, 100, 93, 87, 108, 101, 95, 122, 115, 109, 140, 135, 131, 115, 111, 108, 122, 118, 117, 126, 122, 121, 130, 126, 125, 152, 146, 146, 178, 172, 172, 164, 158, 158, 122, 116, 116, 107, 102, 99, 117, 112, 109, 126, 118, 116, 126, 118, 116, 125, 117, 114, 121, 113, 110, 109, 101, 98, 98, 90, 87, 102, 94, 92, 171, 163, 161, 187, 179, 177, 142, 134, 132, 113, 105, 103, 107, 99, 97, 106, 98, 96, 112, 104, 102, 78, 70, 68, 126, 118, 116, 164, 156, 154, 168, 160, 158, 149, 141, 139, 119, 111, 109, 107, 99, 97, 119, 111, 109, 152, 147, 144, 122, 117, 114, 65, 60, 57, 97, 92, 89, 150, 146, 143, 113, 109, 106, 88, 84, 81, 118, 114, 111, 158, 154, 151, 127, 123, 120, 114, 109, 106, 131, 126, 123, 136, 128, 126, 111, 103, 101, 102, 92, 91, 118, 108, 106, 137, 126, 124, 141, 130, 126, 136, 125, 121, 137, 126, 122, 129, 118, 114, 135, 124, 120, 138, 127, 123, 98, 87, 83, 126, 115, 111, 150, 139, 135, 155, 144, 140, 154, 143, 139, 146, 135, 131, 97, 86, 82, 84, 73, 69, 143, 132, 128, 133, 122, 118, 144, 133, 129, 153, 142, 138, 126, 115, 111, 94, 83, 79, 120, 109, 105, 144, 133, 129, 113, 102, 98, 106, 95, 91, 133, 122, 118, 135, 124, 120, 121, 110, 106, 123, 112, 108, 122, 111, 107, 113, 102, 98, 112, 101, 97, 113, 104, 97, 125, 116, 109, 128, 119, 112, 169, 160, 153, 166, 159, 153, 192, 185, 179, 174, 169, 165, 159, 156, 151, 159, 155, 152, 159, 158, 154, 172, 172, 170, 174, 174, 172, 182, 184, 183, 194, 196, 195, 192, 193, 195, 202, 204, 203, 185, 185, 185, 194, 194, 192, 186, 185, 183, 187, 186, 184, 196, 192, 189, 168, 163, 159, 150, 142, 139, 175, 168, 162, 152, 143, 138, 95, 86, 81, 131, 122, 117, 157, 148, 143, 147, 137, 135, 149, 139, 137, 142, 132, 130, 156, 146, 144, 137, 126, 122, 126, 115, 111, 134, 123, 119, 102, 91, 87, 121, 110, 106, 119, 108, 104, 115, 104, 100, 112, 101, 97, 120, 109, 105, 150, 139, 135, 136, 125, 121, 124, 113, 109, 122, 111, 107, 111, 100, 96, 119, 108, 104, 126, 115, 111, 134, 123, 119, 152, 141, 137, 107, 96, 92, 109, 98, 94, 147, 136, 132, 136, 125, 121, 134, 123, 119, 148, 137, 133, 127, 116, 112, 146, 135, 131, 147, 136, 132, 114, 103, 99, 140, 129, 125, 155, 144, 140, 118, 107, 103, 145, 134, 130, 142, 128, 125, 125, 111, 108, 139, 125, 122, 152, 138, 135, 164, 150, 147, 113, 99, 96, 50, 39, 35, 112, 101, 97, 85, 74, 70, 125, 114, 110, 116, 105, 101, 73, 62, 58, 70, 61, 56, 86, 77, 72, 90, 81, 76, 98, 89, 84, 111, 100, 98, 86, 75, 73, 80, 69, 67, 94, 83, 81, 93, 82, 80, 84, 73, 71, 93, 82, 78, 114, 103, 99, 133, 122, 118, 124, 113, 109, 141, 130, 126, 123, 112, 108, 141, 130, 124, 126, 115, 109, 73, 62, 56, 140, 129, 123, 112, 101, 95, 121, 110, 104, 137, 126, 120, 103, 92, 86, 92, 81, 75, 125, 114, 108, 140, 129, 123, 160, 149, 143, 135, 124, 118, 139, 128, 122, 140, 129, 123, 122, 111, 105, 110, 99, 93, 126, 115, 109, 131, 120, 114, 108, 97, 91, 118, 107, 103, 116, 105, 101, 117, 103, 102, 129, 118, 114, 139, 125, 122, 115, 104, 100, 103, 89, 86, 116, 105, 101, 118, 104, 101, 112, 101, 97, 111, 97, 94, 108, 97, 93, 106, 92, 89, 102, 91, 85, 109, 95, 92, 118, 104, 101, 99, 85, 82, 107, 93, 90, 119, 105, 104, 127, 113, 110, 125, 110, 107, 121, 106, 103, 126, 111, 108, 135, 120, 117, 125, 110, 105, 133, 118, 113, 140, 125, 120, 136, 121, 116, 125, 110, 105, 118, 103, 96, 119, 104, 99, 123, 110, 104, 126, 113, 107, 127, 114, 108, 130, 117, 111, 134, 119, 112, 136, 121, 114, 135, 121, 112, 132, 118, 109, 129, 115, 106, 143, 129, 120, 138, 124, 115, 141, 126, 119, 150, 135, 128, 152, 134, 130, 140, 122, 120, 133, 115, 113, 136, 118, 116, 147, 132, 129, 139, 125, 122, 139, 125, 122, 149, 135, 132, 154, 141, 135, 146, 133, 127, 130, 119, 113, 122, 111, 105, 73, 62, 56, 63, 52, 46, 55, 46, 41, 58, 49, 44, 64, 54, 52, 65, 55, 53, 66, 56, 55, 68, 58, 56, 80, 72, 69, 89, 82, 76, 94, 87, 81, 86, 79, 73, 70, 63, 57, 62, 55, 49, 66, 59, 53, 75, 68, 62, 103, 96, 90, 107, 100, 94, 112, 105, 99, 113, 106, 100, 106, 99, 93, 100, 93, 87, 103, 96, 90, 112, 105, 99, 113, 106, 100, 117, 110, 104, 116, 109, 103, 106, 99, 93, 96, 89, 83, 98, 91, 85, 113, 106, 100, 128, 121, 115, 139, 132, 126, 142, 135, 129, 150, 143, 137, 155, 148, 142, 153, 146, 140, 153, 146, 140, 164, 157, 151, 178, 171, 165, 178, 173, 167, 171, 166, 160, 166, 159, 153, 161, 154, 148, 155, 146, 141, 150, 141, 136, 154, 143, 139, 159, 148, 144, 156, 145, 141, 165, 154, 150, 172, 163, 158, 176, 167, 162, 178, 171, 165, 180, 173, 167, 175, 170, 164, 170, 165, 159, 184, 179, 176, 182, 177, 174, 179, 174, 171, 175, 170, 167, 173, 168, 165, 175, 170, 167, 179, 174, 171, 183, 178, 175, 190, 185, 182, 192, 187, 184, 195, 190, 187, 197, 192, 189, 197, 192, 189, 195, 190, 187, 193, 188, 185, 191, 186, 182, 192, 184, 181, 190, 183, 177, 188, 180, 177, 187, 179, 176, 189, 181, 178, 192, 184, 181, 195, 190, 186, 198, 193, 189, 199, 194, 191, 199, 194, 191, 199, 194, 191, 201, 196, 193, 202, 198, 195, 204, 200, 197, 207, 203, 202, 208, 204, 203, 205, 201, 200, 205, 201, 200, 205, 201, 200, 206, 202, 201, 206, 205, 203, 208, 207, 205, 209, 209, 209, 211, 211, 211, 219, 219, 221, 225, 225, 227, 230, 231, 235, 235, 236, 240, 234, 238, 241, 235, 239, 242, 236, 239, 244, 237, 240, 245, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 243, 235, 238, 243, 236, 239, 244, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 236, 239, 244, 236, 239, 244, 236, 239, 244, 235, 238, 243, 235, 238, 243, 235, 238, 243, 236, 241, 247, 236, 241, 247, 231, 238, 246, 229, 236, 244, 231, 238, 246, 234, 241, 247, 233, 237, 240, 229, 229, 229, 218, 213, 210, 208, 195, 189, 192, 173, 166, 182, 158, 148, 175, 147, 136, 171, 139, 128, 169, 135, 123, 168, 134, 124, 169, 139, 131, 176, 148, 144, 182, 158, 154, 183, 165, 161, 179, 165, 162, 168, 159, 154, 150, 140, 138, 134, 123, 121, 134, 120, 117, 136, 118, 114, 138, 117, 112, 141, 117, 113, 141, 118, 112, 136, 113, 107, 127, 107, 98, 120, 100, 93, 118, 94, 90, 112, 87, 83, 116, 91, 87, 122, 97, 93, 118, 93, 89, 114, 89, 85, 106, 78, 75, 88, 60, 57, 81, 53, 50, 77, 49, 46, 81, 51, 49, 91, 61, 59, 98, 68, 66, 96, 66, 64, 91, 61, 59, 88, 58, 58, 85, 57, 56, 78, 50, 49, 86, 58, 57, 107, 79, 78, 115, 87, 86, 105, 77, 74, 99, 69, 67, 102, 72, 70, 89, 60, 56, 94, 65, 61, 104, 73, 68, 115, 84, 79, 127, 97, 89, 138, 108, 100, 146, 116, 108, 149, 120, 114, 149, 121, 117, 155, 130, 126, 161, 137, 133, 161, 137, 135, 161, 140, 137, 163, 144, 140, 164, 145, 141, 160, 142, 138, 153, 135, 131, 145, 130, 127, 139, 124, 121, 138, 123, 120, 141, 123, 121, 137, 119, 117, 127, 109, 107, 117, 102, 99, 129, 114, 109, 126, 113, 107, 115, 102, 96, 104, 91, 85, 109, 95, 92, 125, 111, 108, 130, 119, 115, 125, 114, 110, 103, 92, 88, 67, 56, 52, 74, 63, 61, 118, 107, 105, 129, 119, 117, 107, 97, 95, 95, 85, 83, 99, 89, 87, 105, 94, 90, 99, 88, 84, 102, 91, 87, 103, 92, 88, 89, 78, 74, 86, 75, 71, 108, 99, 94, 133, 124, 119, 112, 103, 98, 86, 77, 72, 61, 54, 48, 60, 53, 47, 74, 67, 61, 93, 86, 80, 110, 103, 97, 123, 116, 110, 104, 95, 90, 62, 51, 47, 93, 82, 78, 134, 123, 119, 98, 87, 83, 68, 57, 53, 83, 72, 68, 91, 80, 76, 74, 63, 59, 105, 94, 90, 91, 80, 76, 62, 51, 47, 84, 73, 69, 121, 110, 106, 134, 123, 119, 136, 127, 122, 108, 101, 95, 93, 88, 82, 109, 104, 98, 115, 110, 104, 103, 98, 92, 132, 127, 121, 157, 152, 146, 135, 130, 124, 101, 96, 90, 120, 115, 109, 149, 144, 138, 162, 157, 151, 146, 141, 135, 129, 124, 118, 135, 130, 124, 151, 146, 142, 130, 126, 123, 137, 133, 132, 137, 133, 132, 118, 114, 113, 117, 111, 111, 154, 148, 148, 181, 176, 173, 172, 167, 164, 160, 155, 152, 87, 82, 79, 107, 99, 97, 149, 141, 139, 125, 117, 114, 124, 116, 113, 142, 134, 131, 114, 106, 103, 96, 88, 85, 126, 118, 115, 157, 149, 146, 179, 171, 168, 167, 159, 156, 111, 103, 100, 86, 78, 75, 114, 106, 103, 98, 90, 87, 113, 105, 102, 135, 127, 124, 154, 146, 143, 153, 145, 142, 129, 121, 118, 114, 106, 103, 119, 111, 108, 127, 122, 119, 134, 129, 126, 78, 73, 70, 85, 80, 77, 154, 150, 147, 151, 147, 144, 107, 103, 100, 88, 84, 81, 127, 123, 120, 139, 135, 132, 118, 113, 110, 107, 102, 99, 135, 127, 125, 134, 126, 124, 116, 106, 105, 124, 114, 112, 126, 115, 113, 126, 115, 111, 135, 124, 120, 153, 142, 138, 133, 122, 118, 119, 108, 104, 131, 120, 116, 111, 100, 96, 132, 121, 117, 153, 142, 138, 147, 136, 132, 152, 141, 137, 155, 144, 140, 111, 100, 96, 99, 88, 84, 145, 134, 130, 133, 122, 118, 138, 127, 123, 148, 137, 133, 122, 111, 107, 96, 85, 81, 124, 113, 109, 149, 138, 134, 136, 125, 121, 133, 122, 118, 124, 113, 109, 134, 123, 119, 137, 126, 122, 119, 108, 104, 117, 106, 102, 129, 118, 114, 126, 115, 111, 106, 97, 92, 110, 101, 96, 110, 103, 97, 146, 139, 133, 171, 163, 160, 193, 185, 182, 168, 163, 160, 167, 163, 160, 164, 160, 159, 150, 149, 147, 170, 170, 168, 180, 180, 178, 188, 190, 189, 197, 199, 198, 190, 192, 191, 206, 208, 207, 194, 194, 194, 203, 203, 203, 191, 190, 188, 190, 189, 187, 202, 198, 195, 177, 172, 168, 158, 150, 147, 178, 170, 167, 165, 156, 151, 119, 110, 105, 112, 103, 98, 163, 154, 149, 145, 137, 134, 127, 119, 116, 172, 164, 162, 163, 153, 151, 140, 129, 125, 141, 130, 126, 129, 118, 114, 81, 70, 66, 116, 105, 101, 117, 106, 102, 101, 90, 86, 100, 89, 85, 124, 113, 109, 151, 140, 136, 139, 128, 124, 129, 118, 114, 120, 109, 105, 97, 86, 82, 102, 91, 87, 114, 103, 99, 136, 125, 121, 153, 142, 138, 136, 125, 121, 102, 91, 87, 139, 128, 124, 160, 149, 145, 123, 112, 108, 134, 123, 119, 143, 132, 128, 135, 124, 120, 154, 143, 139, 134, 123, 119, 132, 121, 117, 148, 137, 133, 127, 116, 112, 137, 126, 122, 149, 135, 132, 109, 95, 92, 150, 136, 133, 151, 137, 134, 130, 116, 113, 146, 132, 129, 118, 107, 103, 90, 79, 75, 83, 72, 68, 122, 111, 107, 128, 117, 113, 62, 51, 47, 61, 52, 47, 110, 101, 96, 103, 94, 89, 102, 93, 88, 111, 100, 98, 94, 83, 81, 70, 59, 57, 78, 67, 65, 96, 85, 83, 81, 70, 68, 88, 77, 73, 138, 127, 123, 127, 116, 112, 128, 117, 113, 134, 123, 119, 109, 98, 94, 129, 118, 112, 117, 106, 100, 69, 58, 52, 132, 121, 115, 85, 74, 68, 122, 111, 105, 100, 89, 83, 98, 87, 81, 122, 111, 105, 128, 117, 111, 140, 129, 123, 140, 129, 123, 140, 129, 123, 132, 121, 115, 129, 118, 112, 119, 108, 102, 100, 89, 83, 99, 88, 82, 113, 102, 96, 123, 112, 108, 138, 124, 123, 115, 101, 100, 114, 98, 99, 123, 109, 108, 118, 102, 102, 114, 100, 99, 117, 101, 101, 111, 97, 96, 112, 97, 94, 125, 111, 108, 132, 117, 112, 124, 111, 105, 120, 105, 100, 118, 105, 97, 106, 91, 86, 87, 74, 68, 85, 72, 66, 76, 63, 57, 71, 57, 54, 79, 66, 60, 91, 78, 72, 100, 87, 81, 107, 94, 88, 112, 99, 93, 102, 88, 85, 107, 93, 90, 108, 94, 91, 101, 87, 84, 91, 77, 74, 88, 75, 69, 95, 81, 78, 103, 89, 86, 113, 99, 99, 116, 104, 104, 119, 108, 106, 120, 106, 103, 114, 101, 93, 108, 95, 86, 106, 93, 84, 107, 95, 83, 107, 93, 82, 104, 90, 81, 110, 95, 88, 123, 108, 103, 125, 110, 107, 118, 102, 102, 118, 99, 101, 125, 107, 107, 129, 113, 113, 135, 120, 117, 139, 124, 121, 141, 126, 123, 147, 133, 130, 156, 142, 139, 158, 144, 141, 155, 141, 138, 151, 140, 136, 143, 132, 128, 137, 127, 125, 133, 123, 121, 122, 112, 110, 102, 92, 90, 83, 75, 73, 73, 65, 62, 59, 51, 48, 69, 62, 56, 76, 69, 63, 72, 65, 59, 63, 56, 50, 62, 55, 49, 74, 67, 61, 87, 80, 74, 100, 93, 87, 102, 95, 89, 111, 104, 98, 122, 115, 109, 125, 118, 112, 120, 113, 107, 115, 108, 102, 114, 107, 101, 124, 117, 111, 122, 115, 109, 108, 101, 95, 82, 75, 69, 62, 55, 49, 69, 62, 56, 102, 95, 89, 132, 125, 119, 136, 129, 123, 132, 125, 119, 136, 129, 123, 149, 142, 136, 161, 154, 148, 165, 158, 152, 167, 160, 154, 170, 163, 157, 160, 155, 149, 155, 150, 144, 157, 150, 144, 162, 155, 149, 165, 156, 151, 160, 151, 146, 154, 143, 139, 151, 140, 136, 169, 158, 154, 170, 159, 155, 166, 157, 152, 164, 155, 150, 167, 160, 154, 177, 170, 164, 182, 177, 171, 182, 177, 171, 185, 180, 177, 185, 180, 177, 184, 179, 176, 181, 176, 173, 179, 174, 171, 182, 177, 174, 189, 184, 181, 194, 189, 186, 190, 185, 182, 192, 187, 184, 195, 190, 187, 196, 191, 188, 195, 190, 187, 191, 186, 183, 187, 182, 179, 183, 178, 174, 184, 176, 173, 183, 176, 170, 183, 175, 172, 184, 176, 173, 187, 179, 176, 192, 184, 181, 194, 189, 185, 197, 192, 188, 200, 195, 192, 199, 194, 191, 199, 194, 191, 199, 194, 191, 199, 195, 192, 200, 196, 193, 202, 198, 197, 203, 199, 198, 206, 202, 201, 206, 202, 201, 206, 202, 201, 207, 203, 202, 206, 205, 203, 209, 208, 206, 210, 210, 210, 211, 211, 211, 219, 219, 221, 224, 224, 226, 230, 231, 235, 234, 235, 239, 234, 238, 241, 235, 239, 242, 236, 239, 244, 237, 240, 245, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 243, 235, 238, 243, 236, 239, 244, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 236, 239, 244, 236, 239, 244, 236, 239, 244, 235, 238, 243, 235, 238, 243, 234, 239, 245, 236, 241, 247, 235, 239, 248, 230, 237, 243, 233, 238, 244, 236, 241, 245, 234, 239, 243, 232, 233, 237, 222, 220, 221, 215, 209, 209, 202, 191, 189, 190, 172, 168, 181, 158, 150, 176, 148, 137, 173, 141, 128, 170, 136, 124, 173, 139, 129, 180, 147, 140, 182, 157, 152, 185, 166, 160, 185, 171, 170, 178, 168, 167, 162, 154, 152, 147, 139, 137, 139, 128, 126, 138, 123, 120, 137, 118, 114, 136, 117, 111, 136, 117, 110, 132, 113, 106, 124, 107, 100, 117, 100, 93, 117, 98, 94, 109, 90, 86, 113, 92, 91, 119, 98, 95, 115, 94, 93, 113, 89, 87, 104, 80, 80, 87, 63, 61, 93, 67, 68, 85, 59, 58, 85, 59, 60, 98, 72, 71, 114, 85, 87, 116, 88, 87, 108, 79, 81, 100, 71, 73, 96, 70, 71, 88, 64, 64, 90, 66, 66, 102, 78, 78, 108, 82, 83, 102, 76, 75, 97, 71, 70, 98, 72, 71, 89, 63, 62, 94, 66, 63, 99, 71, 68, 107, 79, 75, 118, 90, 86, 130, 103, 96, 140, 112, 108, 145, 117, 113, 145, 121, 117, 151, 130, 127, 157, 138, 134, 158, 139, 135, 159, 140, 136, 162, 144, 140, 163, 145, 141, 159, 144, 139, 160, 145, 142, 149, 134, 131, 139, 124, 121, 138, 123, 120, 146, 128, 126, 145, 127, 125, 135, 117, 117, 125, 107, 107, 125, 110, 107, 125, 112, 106, 121, 108, 102, 113, 100, 94, 112, 98, 95, 119, 105, 102, 125, 114, 110, 128, 117, 113, 129, 118, 114, 100, 89, 85, 80, 69, 67, 84, 73, 71, 101, 91, 89, 121, 111, 109, 121, 111, 109, 100, 90, 88, 96, 85, 81, 103, 92, 88, 101, 90, 86, 98, 87, 83, 92, 81, 77, 71, 60, 56, 76, 67, 62, 115, 106, 101, 120, 111, 106, 110, 101, 96, 99, 92, 86, 92, 85, 79, 82, 75, 69, 81, 74, 68, 99, 92, 86, 122, 115, 109, 137, 128, 123, 87, 76, 72, 73, 62, 58, 121, 110, 106, 138, 127, 123, 83, 72, 68, 57, 46, 42, 93, 82, 78, 91, 80, 76, 85, 74, 70, 96, 85, 81, 86, 75, 71, 64, 53, 49, 92, 81, 77, 128, 117, 113, 118, 109, 104, 135, 128, 122, 117, 112, 106, 111, 106, 100, 109, 104, 98, 105, 100, 94, 115, 110, 104, 140, 135, 129, 157, 152, 146, 163, 158, 152, 124, 119, 113, 105, 100, 94, 125, 120, 114, 156, 151, 145, 173, 168, 162, 161, 156, 150, 136, 131, 127, 153, 149, 146, 115, 111, 110, 122, 118, 117, 150, 146, 145, 135, 129, 129, 113, 107, 107, 133, 128, 125, 166, 161, 158, 177, 172, 169, 150, 145, 142, 123, 115, 113, 121, 113, 111, 125, 117, 114, 109, 101, 98, 111, 103, 100, 140, 132, 129, 132, 124, 121, 122, 114, 111, 127, 119, 116, 162, 154, 151, 189, 181, 178, 167, 159, 156, 124, 116, 113, 103, 95, 92, 112, 104, 101, 106, 98, 95, 110, 102, 99, 128, 120, 117, 140, 132, 129, 133, 125, 122, 118, 110, 107, 111, 103, 100, 120, 115, 112, 154, 149, 146, 111, 106, 103, 85, 80, 77, 130, 126, 123, 161, 157, 154, 140, 136, 133, 96, 92, 89, 89, 85, 82, 147, 143, 140, 126, 121, 118, 83, 78, 75, 122, 114, 112, 157, 149, 147, 140, 130, 129, 124, 114, 112, 132, 121, 119, 117, 106, 102, 121, 110, 106, 149, 138, 134, 131, 120, 116, 104, 93, 89, 125, 114, 110, 136, 125, 121, 144, 133, 129, 154, 143, 139, 141, 130, 126, 154, 143, 139, 163, 152, 148, 129, 118, 114, 123, 112, 108, 149, 138, 134, 124, 113, 109, 142, 131, 127, 154, 143, 139, 111, 100, 96, 91, 80, 76, 138, 127, 123, 158, 147, 143, 136, 125, 121, 154, 143, 139, 118, 107, 103, 120, 109, 105, 140, 129, 125, 137, 126, 122, 139, 128, 124, 151, 140, 136, 150, 139, 135, 100, 91, 86, 99, 90, 85, 101, 94, 88, 135, 128, 122, 184, 176, 173, 196, 191, 187, 163, 159, 156, 171, 167, 164, 161, 160, 158, 135, 134, 132, 165, 165, 163, 186, 186, 184, 197, 199, 198, 206, 208, 207, 194, 196, 195, 212, 214, 213, 208, 208, 208, 208, 208, 208, 193, 192, 190, 187, 186, 184, 197, 193, 190, 187, 183, 180, 173, 168, 164, 181, 173, 170, 151, 142, 137, 144, 135, 130, 126, 117, 112, 176, 167, 162, 152, 144, 141, 127, 119, 116, 187, 179, 177, 150, 142, 139, 137, 127, 125, 146, 135, 131, 127, 116, 112, 71, 60, 56, 120, 109, 105, 133, 122, 118, 106, 95, 91, 88, 77, 73, 121, 110, 106, 139, 128, 124, 120, 109, 105, 117, 106, 102, 123, 112, 108, 107, 96, 92, 104, 93, 89, 104, 93, 89, 140, 129, 125, 133, 122, 118, 158, 147, 143, 119, 108, 104, 117, 106, 102, 165, 154, 150, 141, 130, 126, 116, 105, 101, 153, 142, 138, 112, 101, 97, 142, 131, 127, 153, 142, 138, 121, 110, 106, 137, 126, 122, 155, 144, 140, 136, 125, 121, 143, 129, 126, 148, 134, 131, 125, 111, 108, 143, 129, 126, 139, 125, 122, 126, 112, 109, 144, 133, 129, 118, 107, 103, 90, 79, 75, 111, 100, 96, 140, 129, 125, 70, 59, 55, 59, 50, 45, 121, 112, 107, 106, 97, 92, 104, 95, 90, 109, 98, 96, 100, 89, 87, 82, 71, 69, 91, 80, 78, 109, 98, 96, 94, 83, 81, 94, 83, 79, 134, 123, 119, 109, 98, 94, 134, 123, 119, 127, 116, 112, 98, 87, 83, 115, 104, 98, 112, 101, 95, 85, 74, 68, 118, 107, 101, 112, 101, 95, 110, 99, 93, 59, 48, 42, 96, 85, 79, 141, 130, 124, 127, 116, 110, 139, 128, 122, 136, 125, 119, 128, 117, 111, 136, 125, 119, 116, 105, 99, 83, 72, 66, 81, 70, 64, 104, 93, 87, 126, 115, 109, 141, 127, 124, 130, 114, 114, 117, 101, 102, 127, 111, 112, 127, 111, 112, 105, 89, 89, 106, 90, 90, 113, 97, 97, 97, 82, 79, 110, 95, 92, 115, 100, 95, 105, 90, 85, 90, 75, 68, 96, 81, 74, 109, 95, 86, 95, 81, 72, 65, 50, 43, 61, 48, 40, 52, 39, 33, 48, 35, 29, 54, 41, 35, 61, 48, 42, 62, 49, 43, 60, 47, 41, 59, 46, 40, 53, 40, 34, 55, 41, 38, 56, 42, 39, 52, 38, 35, 49, 35, 32, 53, 39, 36, 65, 51, 48, 75, 61, 60, 71, 59, 61, 69, 57, 59, 68, 56, 56, 71, 60, 56, 79, 66, 60, 82, 69, 61, 81, 68, 59, 78, 66, 54, 75, 61, 52, 74, 60, 51, 77, 62, 55, 83, 68, 63, 86, 71, 68, 89, 73, 73, 98, 79, 81, 107, 88, 90, 94, 78, 78, 105, 90, 87, 111, 96, 93, 109, 94, 91, 111, 96, 93, 121, 107, 104, 129, 115, 112, 130, 116, 113, 141, 130, 126, 139, 128, 126, 139, 129, 127, 143, 133, 131, 142, 132, 130, 137, 127, 125, 135, 127, 125, 138, 130, 127, 113, 106, 100, 112, 105, 99, 111, 104, 98, 111, 104, 98, 108, 101, 95, 103, 96, 90, 96, 89, 83, 91, 84, 78, 84, 77, 71, 81, 74, 68, 90, 83, 77, 113, 106, 100, 133, 126, 120, 135, 128, 122, 124, 117, 111, 113, 106, 100, 109, 102, 96, 113, 106, 100, 114, 107, 101, 109, 102, 96, 102, 95, 89, 100, 93, 87, 105, 98, 92, 112, 105, 99, 117, 110, 104, 134, 127, 121, 155, 148, 142, 165, 158, 152, 161, 154, 148, 151, 144, 138, 141, 134, 128, 136, 129, 123, 154, 149, 143, 154, 149, 143, 159, 152, 146, 162, 155, 149, 160, 151, 146, 157, 148, 143, 162, 151, 147, 169, 158, 154, 167, 156, 152, 172, 161, 157, 175, 166, 161, 175, 166, 161, 178, 171, 165, 184, 177, 171, 183, 178, 172, 181, 176, 170, 169, 164, 161, 175, 170, 167, 181, 176, 173, 183, 178, 175, 181, 176, 173, 180, 175, 172, 183, 178, 175, 186, 181, 178, 186, 181, 178, 188, 183, 180, 190, 185, 182, 191, 186, 183, 190, 185, 182, 186, 181, 178, 182, 177, 174, 180, 175, 171, 185, 177, 174, 185, 178, 172, 185, 177, 174, 186, 178, 175, 188, 180, 177, 192, 184, 181, 193, 188, 184, 196, 191, 187, 195, 190, 187, 195, 190, 187, 195, 190, 187, 195, 190, 187, 195, 191, 188, 197, 193, 190, 199, 195, 194, 200, 196, 195, 206, 202, 201, 206, 202, 201, 206, 202, 201, 207, 203, 202, 207, 206, 204, 209, 208, 206, 210, 210, 210, 211, 211, 211, 217, 217, 219, 223, 223, 225, 229, 230, 234, 234, 235, 239, 234, 238, 241, 235, 239, 242, 236, 239, 244, 238, 241, 246, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 243, 235, 238, 243, 236, 239, 244, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 237, 240, 245, 237, 240, 245, 237, 240, 245, 236, 239, 244, 236, 239, 244, 236, 239, 244, 235, 238, 243, 232, 237, 243, 235, 239, 248, 236, 241, 247, 233, 238, 244, 234, 237, 244, 236, 241, 245, 234, 239, 243, 230, 233, 238, 226, 229, 234, 223, 222, 227, 212, 208, 209, 199, 189, 188, 190, 172, 168, 185, 161, 151, 180, 150, 139, 176, 143, 128, 178, 140, 127, 183, 146, 137, 184, 155, 147, 187, 166, 161, 191, 177, 176, 191, 181, 182, 181, 172, 173, 169, 160, 161, 154, 143, 141, 148, 134, 131, 143, 125, 121, 139, 122, 115, 138, 121, 114, 133, 118, 111, 125, 112, 106, 119, 105, 102, 118, 100, 98, 111, 93, 91, 115, 95, 96, 121, 101, 100, 119, 99, 100, 118, 97, 96, 110, 88, 90, 94, 73, 72, 98, 73, 76, 88, 64, 64, 85, 60, 63, 95, 71, 71, 107, 81, 84, 110, 84, 85, 108, 82, 85, 105, 80, 83, 100, 78, 80, 95, 73, 75, 91, 69, 71, 92, 70, 72, 99, 74, 77, 102, 78, 78, 101, 77, 77, 99, 75, 73, 102, 78, 76, 103, 77, 76, 104, 78, 77, 108, 83, 79, 117, 92, 88, 130, 105, 100, 141, 116, 112, 148, 124, 120, 147, 128, 124, 153, 135, 133, 159, 141, 139, 157, 142, 139, 157, 142, 139, 159, 144, 141, 159, 144, 141, 156, 142, 139, 163, 149, 148, 154, 140, 139, 145, 129, 129, 142, 126, 126, 147, 129, 129, 148, 130, 130, 144, 124, 126, 138, 120, 120, 130, 115, 112, 126, 113, 107, 124, 111, 105, 123, 110, 104, 117, 106, 102, 112, 101, 97, 114, 103, 99, 120, 109, 105, 128, 117, 113, 129, 118, 114, 110, 100, 98, 76, 66, 64, 71, 61, 59, 109, 99, 97, 129, 119, 117, 113, 103, 101, 102, 91, 89, 106, 95, 93, 98, 88, 86, 96, 86, 84, 98, 88, 86, 86, 76, 74, 80, 70, 68, 93, 83, 81, 114, 106, 103, 111, 103, 100, 113, 105, 102, 116, 108, 105, 106, 98, 95, 92, 84, 81, 93, 85, 82, 106, 98, 95, 126, 116, 114, 118, 108, 106, 97, 87, 85, 111, 101, 99, 143, 133, 131, 118, 108, 106, 75, 65, 63, 77, 67, 65, 95, 85, 83, 71, 61, 59, 81, 71, 69, 89, 79, 77, 73, 63, 61, 88, 78, 76, 108, 98, 96, 88, 80, 77, 116, 111, 107, 139, 136, 131, 119, 116, 111, 107, 104, 99, 132, 129, 124, 125, 122, 117, 109, 106, 101, 135, 132, 127, 156, 153, 148, 171, 168, 163, 138, 135, 130, 93, 90, 85, 103, 100, 95, 140, 137, 132, 155, 152, 147, 154, 151, 146, 136, 132, 129, 127, 123, 122, 129, 125, 124, 127, 123, 122, 127, 122, 119, 148, 143, 140, 146, 141, 138, 109, 104, 101, 133, 128, 125, 194, 189, 186, 166, 158, 155, 116, 108, 105, 132, 124, 121, 120, 112, 109, 98, 90, 87, 133, 125, 122, 132, 124, 121, 139, 131, 128, 135, 127, 124, 126, 118, 115, 149, 141, 138, 188, 180, 177, 176, 168, 165, 123, 115, 112, 109, 101, 98, 111, 103, 100, 112, 104, 101, 112, 104, 101, 122, 114, 111, 133, 125, 122, 121, 113, 110, 96, 88, 85, 102, 97, 94, 149, 144, 141, 132, 127, 124, 91, 86, 83, 94, 90, 87, 138, 134, 131, 161, 157, 154, 127, 123, 120, 81, 77, 74, 127, 123, 120, 120, 115, 112, 88, 83, 80, 115, 107, 105, 151, 143, 141, 148, 138, 137, 131, 121, 119, 140, 129, 127, 116, 105, 101, 105, 94, 90, 136, 125, 121, 132, 121, 117, 101, 90, 86, 119, 108, 104, 146, 135, 131, 149, 138, 134, 143, 132, 128, 125, 114, 110, 147, 136, 132, 159, 148, 144, 136, 125, 121, 137, 126, 122, 144, 133, 129, 122, 111, 107, 145, 134, 130, 160, 149, 145, 111, 100, 96, 94, 83, 79, 144, 133, 129, 152, 141, 137, 125, 114, 110, 150, 139, 135, 129, 118, 114, 116, 105, 101, 133, 122, 118, 157, 146, 142, 157, 146, 142, 157, 146, 142, 173, 162, 158, 114, 104, 102, 105, 95, 93, 101, 93, 90, 125, 117, 114, 186, 181, 178, 193, 188, 185, 152, 148, 145, 167, 163, 160, 165, 164, 162, 128, 127, 125, 163, 163, 161, 192, 192, 190, 206, 208, 207, 213, 215, 214, 191, 195, 194, 209, 213, 212, 207, 209, 208, 204, 206, 205, 196, 196, 194, 193, 192, 190, 199, 195, 192, 200, 196, 193, 185, 180, 176, 167, 162, 158, 151, 143, 140, 138, 130, 127, 133, 125, 122, 181, 173, 170, 168, 160, 157, 142, 134, 131, 168, 163, 160, 135, 127, 124, 142, 132, 130, 154, 143, 139, 148, 137, 133, 80, 69, 65, 105, 94, 90, 134, 123, 119, 129, 118, 114, 97, 86, 82, 109, 98, 94, 135, 124, 120, 116, 105, 101, 108, 97, 93, 123, 112, 108, 124, 113, 109, 120, 109, 105, 107, 96, 92, 126, 115, 111, 130, 119, 115, 151, 140, 136, 134, 123, 119, 118, 107, 103, 153, 142, 138, 158, 147, 143, 116, 105, 101, 146, 135, 131, 119, 108, 104, 118, 107, 103, 143, 132, 128, 133, 122, 118, 127, 116, 112, 152, 141, 137, 148, 137, 133, 133, 119, 116, 169, 155, 152, 112, 98, 95, 124, 110, 107, 166, 152, 149, 115, 101, 98, 101, 90, 86, 142, 131, 127, 98, 87, 83, 94, 83, 79, 151, 140, 136, 94, 83, 79, 62, 53, 48, 111, 102, 97, 93, 84, 79, 104, 95, 90, 102, 91, 89, 95, 84, 82, 103, 92, 90, 115, 104, 102, 115, 104, 102, 122, 111, 109, 129, 118, 114, 123, 112, 108, 97, 86, 82, 121, 110, 106, 103, 92, 88, 107, 96, 92, 120, 109, 103, 96, 85, 79, 94, 83, 77, 116, 105, 99, 132, 121, 115, 90, 79, 73, 78, 67, 61, 116, 105, 99, 137, 126, 120, 134, 123, 117, 140, 129, 123, 138, 127, 121, 109, 98, 92, 133, 122, 116, 101, 90, 84, 65, 54, 48, 96, 85, 79, 133, 122, 116, 132, 121, 115, 129, 115, 112, 112, 96, 96, 126, 107, 109, 132, 113, 115, 118, 99, 101, 102, 84, 84, 99, 81, 81, 91, 73, 71, 73, 55, 53, 84, 66, 62, 82, 65, 58, 72, 55, 48, 64, 47, 39, 78, 61, 53, 99, 82, 72, 100, 83, 73, 83, 69, 58, 65, 52, 43, 69, 56, 48, 77, 64, 56, 79, 66, 58, 70, 57, 49, 56, 43, 35, 50, 37, 29, 51, 38, 30, 46, 33, 25, 44, 31, 25, 41, 28, 22, 35, 22, 16, 32, 19, 13, 33, 20, 14, 37, 24, 18, 42, 28, 25, 43, 31, 31, 39, 27, 27, 40, 29, 27, 51, 40, 36, 71, 58, 52, 88, 75, 67, 96, 83, 75, 98, 85, 76, 94, 79, 72, 99, 84, 77, 99, 84, 77, 91, 76, 71, 87, 69, 67, 86, 68, 68, 86, 67, 69, 85, 67, 67, 97, 79, 77, 97, 79, 75, 100, 82, 80, 98, 83, 80, 90, 75, 72, 77, 62, 59, 70, 56, 55, 71, 57, 56, 70, 59, 57, 71, 59, 59, 74, 64, 63, 82, 72, 71, 90, 82, 79, 102, 94, 91, 123, 115, 112, 141, 133, 130, 145, 138, 132, 139, 132, 126, 132, 125, 119, 125, 118, 112, 116, 109, 103, 101, 94, 88, 82, 75, 69, 67, 60, 54, 76, 69, 63, 81, 74, 68, 97, 90, 84, 118, 111, 105, 133, 126, 120, 134, 127, 121, 130, 123, 117, 129, 122, 116, 139, 132, 126, 134, 127, 121, 127, 120, 114, 124, 117, 111, 127, 120, 114, 133, 126, 120, 139, 132, 126, 142, 135, 129, 164, 157, 151, 172, 165, 159, 166, 159, 153, 141, 134, 128, 120, 113, 107, 121, 114, 108, 135, 128, 122, 145, 138, 132, 156, 151, 145, 154, 149, 143, 155, 148, 142, 153, 146, 140, 149, 140, 135, 149, 140, 135, 160, 149, 145, 173, 162, 158, 154, 143, 139, 168, 157, 153, 180, 171, 166, 185, 176, 171, 184, 177, 171, 181, 174, 168, 173, 168, 162, 166, 161, 155, 163, 158, 155, 170, 165, 162, 178, 173, 170, 179, 174, 171, 175, 170, 167, 174, 169, 166, 177, 172, 169, 181, 176, 173, 184, 179, 176, 186, 181, 178, 188, 183, 180, 190, 185, 182, 190, 185, 182, 190, 185, 182, 188, 183, 180, 187, 182, 178, 195, 187, 184, 194, 187, 181, 193, 185, 182, 192, 184, 181, 192, 184, 181, 192, 184, 181, 191, 186, 182, 192, 187, 183, 185, 180, 177, 186, 181, 178, 187, 182, 179, 190, 185, 182, 192, 188, 185, 196, 192, 189, 199, 195, 194, 201, 197, 196, 206, 202, 201, 206, 202, 201, 207, 203, 202, 207, 203, 202, 207, 206, 204, 209, 208, 206, 210, 210, 210, 212, 212, 212, 215, 215, 217, 220, 220, 222, 227, 228, 232, 233, 234, 238, 234, 238, 241, 236, 240, 243, 238, 241, 246, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 243, 235, 238, 243, 236, 239, 244, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 246, 230, 234, 243, 235, 239, 248, 237, 240, 247, 235, 238, 243, 235, 238, 243, 236, 239, 244, 233, 238, 244, 228, 233, 239, 228, 235, 243, 227, 231, 240, 219, 220, 225, 205, 201, 202, 197, 183, 182, 191, 171, 164, 186, 159, 148, 181, 149, 134, 177, 140, 124, 182, 144, 131, 183, 153, 143, 188, 164, 160, 195, 179, 179, 199, 189, 190, 194, 185, 188, 184, 175, 176, 166, 154, 154, 158, 144, 141, 148, 133, 128, 142, 127, 120, 141, 126, 119, 137, 124, 118, 129, 118, 114, 123, 112, 108, 121, 105, 105, 116, 98, 98, 120, 102, 102, 127, 109, 109, 127, 107, 108, 126, 106, 107, 119, 99, 100, 104, 84, 85, 95, 75, 76, 87, 67, 68, 82, 62, 63, 85, 65, 66, 92, 70, 72, 95, 73, 75, 100, 78, 80, 105, 83, 85, 101, 81, 82, 98, 78, 79, 92, 70, 72, 86, 64, 66, 91, 69, 71, 101, 80, 79, 103, 82, 81, 100, 79, 78, 108, 84, 82, 106, 82, 80, 104, 80, 78, 106, 82, 80, 114, 90, 86, 127, 103, 99, 141, 116, 112, 146, 125, 122, 151, 133, 131, 155, 141, 138, 161, 146, 143, 158, 144, 141, 157, 143, 140, 158, 144, 141, 157, 143, 140, 153, 139, 136, 153, 139, 138, 148, 134, 133, 142, 126, 126, 136, 120, 120, 136, 118, 118, 137, 119, 119, 139, 119, 121, 139, 121, 121, 141, 126, 123, 129, 116, 110, 123, 110, 104, 125, 112, 106, 119, 108, 104, 109, 98, 94, 107, 96, 92, 113, 102, 98, 125, 114, 110, 119, 108, 104, 132, 122, 120, 136, 126, 124, 94, 84, 82, 59, 49, 47, 79, 69, 67, 119, 109, 107, 117, 106, 104, 108, 97, 95, 98, 88, 86, 96, 86, 84, 105, 95, 93, 114, 104, 102, 106, 96, 94, 90, 80, 78, 111, 103, 100, 100, 92, 89, 102, 94, 91, 120, 112, 109, 128, 120, 117, 115, 107, 104, 99, 91, 88, 94, 86, 83, 112, 104, 102, 112, 104, 102, 122, 112, 111, 133, 125, 123, 138, 128, 127, 126, 118, 116, 103, 93, 92, 78, 70, 68, 50, 40, 39, 73, 65, 63, 83, 73, 72, 80, 72, 70, 86, 76, 75, 91, 83, 81, 97, 87, 86, 103, 95, 93, 63, 58, 54, 104, 101, 96, 152, 149, 144, 150, 147, 142, 124, 121, 116, 134, 131, 126, 135, 132, 127, 98, 95, 90, 114, 111, 106, 170, 167, 162, 154, 151, 146, 111, 108, 103, 124, 121, 116, 132, 129, 124, 123, 120, 115, 140, 137, 132, 161, 157, 154, 127, 123, 122, 116, 112, 111, 121, 117, 116, 126, 121, 118, 149, 144, 141, 165, 160, 157, 151, 146, 143, 99, 94, 91, 127, 122, 119, 183, 175, 172, 182, 174, 171, 133, 125, 122, 136, 128, 125, 149, 141, 138, 115, 107, 104, 109, 101, 98, 130, 122, 119, 146, 138, 135, 125, 117, 114, 108, 100, 97, 147, 139, 136, 185, 177, 174, 178, 170, 167, 106, 98, 95, 127, 119, 116, 132, 124, 121, 116, 108, 105, 118, 110, 107, 140, 132, 129, 130, 122, 119, 91, 83, 80, 62, 57, 54, 120, 115, 112, 140, 135, 132, 111, 106, 103, 83, 79, 76, 116, 112, 109, 160, 156, 153, 138, 134, 131, 95, 91, 88, 97, 93, 90, 104, 99, 96, 110, 105, 102, 118, 110, 108, 130, 122, 120, 140, 130, 129, 142, 132, 130, 141, 130, 128, 116, 105, 101, 97, 86, 82, 129, 118, 114, 137, 126, 122, 105, 94, 90, 115, 104, 100, 141, 130, 126, 144, 133, 129, 128, 117, 113, 109, 98, 94, 136, 125, 121, 147, 136, 132, 132, 121, 117, 138, 127, 123, 132, 121, 117, 130, 119, 115, 143, 132, 128, 160, 149, 145, 120, 109, 105, 103, 92, 88, 139, 128, 124, 138, 127, 123, 117, 106, 102, 132, 121, 117, 146, 135, 131, 123, 112, 108, 125, 114, 110, 164, 153, 149, 157, 146, 142, 147, 136, 132, 186, 175, 171, 137, 127, 125, 118, 108, 106, 104, 96, 93, 115, 107, 104, 180, 175, 172, 182, 177, 174, 140, 136, 133, 162, 158, 155, 174, 173, 171, 128, 128, 126, 165, 165, 163, 196, 198, 195, 210, 212, 211, 214, 216, 215, 186, 190, 189, 201, 205, 204, 197, 199, 198, 196, 198, 197, 202, 202, 202, 204, 204, 202, 206, 205, 201, 211, 207, 204, 189, 184, 180, 149, 144, 140, 191, 183, 180, 128, 120, 117, 122, 114, 111, 171, 163, 160, 176, 168, 165, 154, 149, 145, 153, 148, 145, 148, 140, 137, 152, 142, 140, 167, 156, 152, 177, 166, 162, 94, 83, 79, 79, 68, 64, 119, 108, 104, 147, 136, 132, 116, 105, 101, 108, 97, 93, 151, 140, 136, 135, 124, 120, 111, 100, 96, 117, 106, 102, 126, 115, 111, 126, 115, 111, 107, 96, 92, 104, 93, 89, 145, 134, 130, 132, 121, 117, 135, 124, 120, 138, 127, 123, 139, 128, 124, 159, 148, 144, 129, 118, 114, 141, 130, 126, 157, 146, 142, 103, 92, 88, 119, 108, 104, 156, 145, 141, 116, 105, 101, 115, 104, 100, 153, 142, 138, 128, 114, 111, 139, 125, 122, 143, 129, 126, 114, 100, 97, 139, 125, 122, 143, 129, 126, 88, 77, 73, 107, 96, 92, 103, 92, 88, 80, 69, 65, 158, 147, 143, 115, 104, 100, 65, 56, 51, 97, 88, 83, 77, 68, 63, 103, 94, 89, 129, 118, 116, 113, 102, 100, 135, 124, 122, 135, 124, 122, 106, 95, 93, 128, 117, 115, 140, 129, 125, 88, 77, 73, 91, 80, 76, 92, 81, 77, 71, 60, 56, 121, 110, 106, 130, 119, 113, 70, 59, 53, 85, 74, 68, 120, 109, 103, 112, 101, 95, 72, 61, 55, 133, 122, 116, 154, 143, 137, 130, 119, 113, 140, 129, 123, 123, 112, 106, 103, 92, 86, 120, 109, 103, 113, 102, 96, 80, 69, 63, 94, 83, 77, 147, 136, 130, 135, 124, 118, 98, 87, 81, 110, 96, 93, 103, 87, 87, 133, 115, 115, 121, 102, 104, 95, 77, 77, 99, 81, 81, 95, 77, 75, 67, 49, 47, 50, 32, 28, 43, 26, 19, 53, 36, 28, 63, 46, 38, 68, 51, 41, 68, 51, 41, 65, 49, 36, 59, 43, 30, 54, 38, 25, 72, 58, 45, 62, 48, 37, 54, 40, 29, 56, 42, 31, 59, 45, 36, 57, 43, 32, 54, 40, 31, 53, 39, 28, 43, 29, 20, 42, 28, 19, 42, 28, 19, 43, 29, 20, 47, 30, 22, 50, 33, 25, 53, 36, 28, 52, 37, 30, 52, 38, 35, 49, 35, 32, 45, 31, 28, 44, 31, 25, 47, 34, 28, 54, 41, 35, 65, 50, 45, 71, 56, 51, 88, 73, 68, 106, 91, 86, 118, 103, 98, 117, 102, 99, 117, 99, 97, 119, 101, 101, 114, 96, 96, 105, 87, 85, 92, 74, 70, 83, 65, 61, 90, 72, 70, 107, 89, 87, 102, 84, 82, 74, 58, 58, 59, 43, 43, 62, 48, 48, 60, 48, 48, 64, 52, 52, 70, 60, 59, 70, 60, 59, 62, 54, 51, 56, 48, 45, 62, 54, 51, 73, 65, 62, 64, 57, 51, 71, 64, 58, 81, 74, 68, 89, 82, 76, 92, 85, 79, 94, 87, 81, 97, 90, 84, 100, 93, 87, 95, 88, 82, 114, 107, 101, 137, 130, 124, 145, 138, 132, 135, 128, 122, 125, 118, 112, 134, 127, 121, 149, 142, 136, 147, 140, 134, 144, 137, 131, 141, 134, 128, 138, 131, 125, 139, 132, 126, 143, 136, 130, 149, 142, 136, 153, 146, 140, 152, 145, 139, 148, 141, 135, 135, 128, 122, 125, 118, 112, 140, 133, 127, 169, 162, 156, 179, 172, 166, 171, 164, 158, 143, 138, 132, 143, 138, 132, 149, 142, 136, 156, 149, 143, 157, 148, 143, 150, 141, 136, 144, 133, 129, 143, 132, 128, 157, 146, 142, 166, 155, 151, 170, 161, 156, 168, 159, 154, 163, 156, 150, 165, 158, 152, 165, 160, 154, 164, 159, 153, 179, 174, 171, 182, 177, 174, 183, 178, 175, 179, 174, 171, 174, 169, 166, 176, 171, 168, 185, 180, 177, 193, 188, 185, 186, 181, 178, 187, 182, 179, 190, 185, 182, 192, 187, 184, 195, 190, 187, 197, 192, 189, 198, 193, 190, 198, 193, 189, 198, 190, 187, 196, 189, 183, 194, 186, 183, 191, 183, 180, 188, 180, 177, 186, 178, 175, 183, 178, 174, 182, 177, 173, 177, 172, 169, 178, 173, 170, 181, 176, 173, 186, 181, 178, 190, 186, 183, 196, 192, 189, 201, 197, 196, 204, 200, 199, 207, 203, 202, 206, 202, 201, 207, 203, 202, 208, 204, 203, 207, 206, 204, 209, 208, 206, 211, 211, 211, 212, 212, 212, 213, 213, 215, 219, 219, 221, 226, 227, 231, 233, 234, 238, 234, 238, 241, 237, 241, 244, 239, 242, 247, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 237, 240, 247, 237, 240, 247, 237, 240, 247, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 246, 235, 239, 248, 235, 239, 248, 236, 239, 246, 237, 238, 243, 237, 238, 243, 235, 238, 243, 233, 238, 244, 231, 238, 246, 226, 235, 244, 226, 234, 245, 225, 232, 240, 220, 221, 226, 212, 203, 204, 199, 184, 179, 191, 168, 160, 189, 159, 148, 185, 149, 133, 182, 144, 131, 179, 149, 139, 189, 164, 160, 196, 178, 178, 196, 181, 184, 192, 180, 184, 190, 178, 182, 181, 169, 171, 178, 164, 163, 171, 156, 153, 165, 150, 145, 163, 148, 143, 157, 144, 138, 139, 128, 124, 123, 112, 110, 128, 109, 111, 123, 103, 105, 121, 101, 103, 127, 107, 109, 134, 114, 116, 132, 112, 114, 119, 100, 102, 107, 88, 90, 100, 81, 83, 90, 71, 73, 81, 62, 64, 80, 61, 63, 83, 64, 66, 86, 67, 69, 91, 75, 76, 99, 81, 81, 109, 89, 90, 103, 83, 82, 95, 74, 73, 88, 67, 66, 85, 64, 63, 88, 67, 66, 93, 72, 71, 97, 76, 73, 109, 85, 83, 106, 82, 80, 103, 79, 77, 105, 81, 79, 112, 88, 86, 125, 101, 99, 138, 114, 112, 144, 123, 120, 151, 136, 133, 151, 140, 136, 157, 143, 140, 157, 146, 142, 157, 146, 142, 158, 147, 143, 160, 149, 147, 163, 152, 150, 156, 145, 143, 145, 131, 130, 131, 115, 116, 124, 108, 109, 128, 109, 111, 131, 112, 114, 130, 110, 112, 126, 108, 108, 129, 115, 112, 143, 132, 126, 143, 132, 126, 125, 114, 108, 117, 106, 102, 127, 116, 112, 133, 122, 118, 130, 119, 115, 112, 103, 98, 119, 110, 105, 125, 115, 113, 122, 112, 110, 110, 100, 98, 95, 85, 83, 83, 75, 72, 77, 69, 66, 102, 92, 90, 118, 108, 106, 105, 95, 93, 90, 80, 78, 110, 100, 98, 124, 114, 112, 125, 117, 114, 135, 127, 124, 123, 115, 112, 125, 117, 114, 98, 90, 87, 91, 83, 80, 128, 123, 119, 144, 139, 135, 115, 110, 106, 89, 84, 81, 90, 84, 84, 88, 82, 82, 88, 79, 80, 128, 122, 122, 152, 143, 144, 134, 128, 128, 131, 122, 123, 112, 106, 106, 96, 87, 88, 81, 75, 75, 78, 69, 70, 95, 89, 89, 103, 94, 95, 76, 70, 70, 80, 71, 72, 117, 111, 111, 98, 94, 91, 91, 88, 83, 98, 95, 90, 125, 122, 117, 147, 144, 139, 151, 148, 143, 148, 145, 140, 147, 144, 139, 131, 128, 123, 138, 135, 130, 158, 155, 150, 156, 153, 148, 140, 137, 132, 149, 146, 141, 149, 146, 141, 117, 114, 109, 165, 161, 158, 152, 148, 145, 137, 133, 130, 144, 140, 137, 160, 155, 152, 151, 146, 143, 149, 144, 140, 170, 165, 161, 170, 165, 161, 150, 145, 141, 154, 146, 143, 178, 170, 167, 179, 172, 166, 154, 147, 141, 142, 135, 129, 153, 146, 140, 143, 133, 131, 122, 112, 110, 120, 110, 108, 136, 126, 124, 131, 121, 119, 118, 108, 106, 144, 134, 132, 189, 179, 177, 168, 158, 156, 137, 127, 125, 119, 109, 107, 126, 116, 114, 128, 118, 116, 119, 109, 107, 125, 115, 113, 141, 133, 130, 90, 85, 82, 97, 92, 89, 125, 120, 117, 142, 137, 134, 110, 106, 103, 107, 103, 100, 149, 145, 142, 154, 150, 147, 109, 105, 102, 62, 58, 55, 92, 87, 84, 85, 80, 77, 126, 118, 116, 117, 109, 107, 101, 91, 90, 116, 106, 104, 144, 133, 131, 126, 115, 111, 108, 97, 93, 130, 119, 115, 147, 136, 132, 94, 83, 79, 128, 117, 113, 138, 127, 123, 132, 121, 117, 140, 129, 125, 106, 95, 91, 126, 115, 111, 146, 135, 131, 137, 126, 122, 146, 135, 131, 122, 111, 107, 136, 125, 121, 143, 132, 128, 146, 135, 131, 135, 124, 120, 96, 85, 81, 127, 116, 112, 120, 109, 105, 112, 101, 97, 130, 119, 115, 160, 149, 145, 125, 114, 110, 147, 136, 132, 160, 149, 145, 172, 161, 157, 151, 140, 136, 158, 147, 143, 173, 163, 161, 111, 103, 101, 146, 138, 136, 152, 144, 142, 163, 157, 157, 164, 158, 158, 181, 177, 176, 168, 164, 163, 201, 200, 198, 148, 148, 146, 154, 154, 152, 202, 204, 201, 215, 217, 214, 204, 209, 205, 201, 205, 204, 196, 200, 199, 202, 206, 207, 197, 201, 200, 196, 198, 197, 209, 209, 207, 221, 220, 216, 206, 205, 201, 189, 186, 181, 188, 185, 180, 189, 184, 180, 150, 145, 141, 87, 82, 78, 144, 139, 135, 199, 194, 191, 160, 155, 152, 154, 149, 146, 169, 164, 160, 169, 159, 157, 172, 161, 157, 195, 184, 180, 117, 106, 102, 92, 81, 77, 95, 84, 80, 105, 94, 90, 130, 119, 115, 122, 111, 107, 120, 109, 105, 156, 145, 141, 134, 123, 119, 115, 104, 100, 129, 118, 114, 114, 103, 99, 124, 113, 109, 135, 124, 120, 127, 116, 112, 135, 124, 120, 118, 107, 103, 144, 133, 129, 161, 150, 146, 123, 112, 108, 140, 129, 125, 122, 111, 107, 164, 153, 149, 137, 126, 122, 120, 109, 105, 150, 139, 135, 123, 112, 108, 98, 87, 83, 148, 137, 133, 132, 118, 115, 136, 122, 119, 141, 127, 124, 123, 109, 106, 123, 109, 106, 125, 111, 108, 100, 89, 85, 101, 90, 86, 128, 117, 113, 104, 93, 89, 129, 118, 114, 133, 122, 118, 54, 45, 40, 86, 77, 72, 108, 99, 94, 121, 112, 107, 126, 115, 113, 105, 94, 92, 115, 104, 102, 79, 68, 66, 108, 97, 95, 115, 104, 102, 107, 96, 92, 86, 75, 71, 78, 67, 63, 109, 98, 94, 73, 62, 58, 107, 96, 92, 132, 121, 115, 92, 81, 75, 114, 103, 97, 136, 125, 119, 93, 82, 76, 122, 111, 105, 139, 128, 122, 131, 120, 114, 124, 113, 107, 127, 116, 110, 120, 109, 103, 103, 92, 86, 150, 139, 133, 116, 105, 99, 127, 116, 110, 145, 134, 128, 118, 107, 101, 98, 87, 81, 110, 99, 93, 119, 106, 100, 108, 93, 90, 96, 81, 78, 77, 61, 61, 60, 45, 42, 48, 33, 30, 41, 26, 21, 37, 22, 17, 35, 20, 13, 44, 30, 21, 40, 26, 15, 34, 20, 9, 28, 14, 1, 25, 11, 0, 24, 11, 0, 24, 11, 0, 27, 11, 0, 40, 23, 7, 48, 31, 15, 49, 32, 16, 42, 25, 9, 43, 25, 11, 52, 35, 19, 58, 39, 25, 56, 37, 22, 44, 25, 11, 47, 28, 14, 43, 24, 10, 33, 14, 0, 33, 11, 0, 39, 17, 4, 41, 19, 6, 35, 16, 2, 42, 24, 14, 45, 28, 20, 51, 34, 26, 57, 40, 32, 60, 43, 36, 57, 42, 37, 56, 38, 34, 54, 36, 34, 65, 47, 45, 73, 55, 53, 76, 58, 56, 76, 58, 56, 87, 69, 67, 104, 86, 82, 108, 90, 86, 101, 83, 79, 116, 97, 91, 106, 87, 83, 96, 76, 75, 93, 75, 73, 99, 81, 81, 104, 88, 88, 105, 89, 90, 103, 88, 91, 93, 81, 83, 99, 87, 89, 111, 101, 100, 125, 115, 114, 128, 120, 117, 124, 116, 113, 121, 113, 110, 122, 114, 111, 96, 89, 83, 89, 82, 76, 95, 88, 82, 101, 94, 88, 102, 95, 89, 115, 108, 102, 122, 115, 109, 109, 102, 96, 108, 101, 95, 119, 112, 106, 123, 116, 110, 128, 121, 115, 129, 122, 116, 118, 111, 105, 124, 117, 111, 154, 147, 141, 156, 149, 143, 159, 152, 146, 156, 149, 143, 139, 132, 126, 118, 111, 105, 109, 102, 96, 116, 109, 103, 127, 120, 114, 117, 110, 104, 126, 119, 113, 138, 131, 125, 146, 139, 133, 149, 142, 136, 151, 144, 138, 154, 147, 141, 158, 151, 145, 153, 148, 142, 158, 153, 147, 159, 152, 146, 151, 144, 138, 147, 138, 133, 148, 139, 134, 153, 142, 138, 155, 144, 140, 170, 159, 155, 167, 156, 152, 161, 152, 147, 156, 147, 142, 154, 147, 141, 159, 152, 146, 167, 162, 156, 174, 169, 163, 180, 175, 172, 177, 172, 169, 176, 171, 168, 180, 175, 172, 187, 182, 179, 190, 185, 182, 187, 182, 179, 182, 177, 174, 196, 191, 188, 195, 190, 187, 193, 188, 185, 193, 188, 185, 193, 188, 185, 194, 189, 186, 196, 191, 188, 197, 192, 188, 194, 186, 183, 192, 185, 179, 188, 180, 177, 185, 177, 174, 183, 175, 172, 183, 175, 172, 182, 177, 173, 183, 178, 174, 182, 177, 174, 182, 177, 174, 183, 178, 175, 185, 180, 177, 188, 184, 181, 194, 190, 187, 199, 195, 194, 202, 198, 197, 207, 203, 202, 207, 203, 202, 207, 203, 202, 207, 203, 202, 206, 205, 203, 208, 207, 205, 208, 208, 208, 209, 209, 209, 213, 213, 215, 219, 219, 221, 226, 227, 231, 233, 234, 238, 235, 239, 242, 237, 241, 244, 240, 243, 248, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 237, 240, 247, 237, 240, 247, 237, 240, 247, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 247, 235, 239, 248, 236, 239, 248, 238, 238, 246, 238, 239, 244, 237, 238, 242, 235, 239, 242, 233, 238, 242, 230, 239, 246, 228, 238, 248, 228, 238, 248, 227, 236, 245, 224, 227, 234, 218, 213, 217, 208, 197, 195, 198, 181, 174, 193, 169, 159, 188, 156, 143, 184, 150, 138, 181, 151, 143, 188, 163, 159, 195, 175, 176, 195, 179, 182, 194, 179, 184, 194, 179, 184, 192, 178, 178, 184, 170, 169, 172, 157, 154, 161, 146, 141, 156, 143, 137, 152, 138, 135, 138, 127, 125, 126, 112, 111, 119, 100, 102, 116, 96, 98, 111, 91, 93, 109, 89, 91, 108, 88, 90, 109, 89, 91, 106, 87, 89, 105, 86, 88, 103, 87, 88, 94, 78, 79, 85, 69, 70, 83, 67, 68, 81, 65, 66, 78, 64, 64, 79, 65, 65, 83, 67, 67, 101, 83, 81, 97, 77, 76, 92, 71, 70, 87, 66, 65, 87, 66, 65, 91, 70, 69, 97, 76, 73, 101, 80, 77, 111, 87, 85, 111, 87, 85, 111, 87, 85, 112, 88, 86, 117, 93, 91, 128, 104, 102, 143, 119, 117, 151, 130, 127, 152, 137, 134, 152, 141, 137, 156, 145, 141, 157, 146, 142, 156, 145, 141, 156, 145, 141, 158, 147, 145, 159, 148, 146, 149, 138, 136, 142, 131, 129, 133, 119, 119, 123, 107, 108, 116, 97, 99, 110, 91, 93, 108, 88, 90, 105, 87, 87, 130, 116, 113, 125, 114, 108, 129, 118, 112, 138, 127, 121, 137, 126, 122, 127, 116, 112, 124, 113, 109, 129, 118, 114, 104, 95, 90, 99, 90, 85, 98, 88, 86, 106, 96, 94, 117, 107, 105, 116, 106, 104, 100, 92, 89, 85, 77, 74, 75, 65, 63, 78, 68, 66, 93, 83, 81, 107, 97, 95, 107, 97, 95, 104, 94, 92, 107, 99, 96, 109, 101, 98, 120, 112, 109, 138, 130, 127, 143, 135, 132, 122, 114, 111, 109, 104, 100, 125, 120, 116, 134, 129, 125, 122, 117, 114, 84, 78, 78, 86, 82, 83, 77, 71, 73, 88, 84, 85, 91, 85, 87, 88, 84, 85, 119, 113, 115, 133, 129, 130, 113, 107, 109, 102, 98, 99, 94, 88, 90, 99, 95, 96, 103, 97, 99, 82, 78, 79, 79, 73, 75, 101, 97, 96, 131, 127, 124, 116, 113, 108, 104, 101, 96, 109, 106, 101, 126, 123, 118, 147, 144, 139, 166, 163, 158, 178, 175, 170, 164, 161, 156, 136, 133, 128, 146, 143, 138, 171, 168, 163, 164, 161, 156, 152, 149, 144, 149, 146, 141, 138, 135, 130, 125, 121, 118, 167, 163, 160, 162, 158, 155, 127, 123, 120, 141, 136, 133, 179, 174, 171, 178, 173, 169, 151, 146, 142, 167, 162, 158, 157, 152, 148, 146, 138, 135, 147, 139, 136, 167, 160, 154, 185, 178, 172, 174, 167, 161, 152, 145, 139, 149, 139, 137, 140, 130, 128, 120, 110, 108, 105, 95, 93, 120, 110, 108, 144, 134, 132, 140, 130, 128, 117, 107, 105, 151, 141, 139, 150, 140, 138, 143, 133, 131, 135, 125, 123, 136, 126, 124, 142, 132, 130, 138, 128, 126, 127, 119, 116, 122, 114, 112, 113, 108, 105, 128, 123, 120, 137, 132, 129, 116, 112, 109, 96, 92, 89, 113, 109, 106, 150, 146, 143, 127, 123, 120, 76, 72, 69, 89, 84, 81, 91, 86, 83, 144, 136, 134, 127, 119, 117, 90, 80, 79, 100, 90, 88, 139, 128, 126, 127, 116, 112, 105, 94, 90, 112, 101, 97, 126, 115, 111, 82, 71, 67, 116, 105, 101, 123, 112, 108, 132, 121, 117, 145, 134, 130, 112, 101, 97, 130, 119, 115, 154, 143, 139, 137, 126, 122, 144, 133, 129, 136, 125, 121, 144, 133, 129, 143, 132, 128, 133, 122, 118, 131, 120, 116, 86, 75, 71, 104, 93, 89, 116, 105, 101, 117, 106, 102, 135, 124, 120, 151, 140, 136, 125, 114, 110, 153, 142, 138, 157, 146, 142, 165, 154, 150, 152, 141, 137, 153, 143, 141, 178, 168, 167, 119, 111, 109, 146, 138, 136, 159, 154, 151, 177, 171, 171, 163, 159, 158, 174, 170, 169, 179, 178, 176, 207, 207, 205, 164, 164, 162, 167, 169, 166, 206, 208, 205, 212, 217, 213, 206, 211, 207, 205, 209, 208, 199, 203, 202, 202, 206, 207, 206, 210, 211, 204, 206, 205, 205, 207, 206, 216, 216, 214, 213, 212, 208, 198, 194, 191, 189, 186, 181, 185, 180, 176, 165, 160, 156, 115, 110, 106, 137, 132, 128, 168, 163, 160, 167, 162, 159, 177, 173, 170, 156, 151, 148, 149, 139, 137, 186, 175, 171, 175, 164, 160, 127, 116, 112, 83, 72, 68, 124, 113, 109, 100, 89, 85, 142, 131, 127, 123, 112, 108, 111, 100, 96, 124, 113, 109, 156, 145, 141, 154, 143, 139, 141, 130, 126, 144, 133, 129, 135, 124, 120, 140, 129, 125, 129, 118, 114, 141, 130, 126, 135, 124, 120, 135, 124, 120, 153, 142, 138, 141, 130, 126, 127, 116, 112, 149, 138, 134, 129, 118, 114, 143, 132, 128, 119, 108, 104, 112, 101, 97, 143, 132, 128, 122, 111, 107, 92, 81, 77, 152, 138, 135, 117, 103, 100, 169, 155, 152, 137, 123, 120, 109, 95, 92, 136, 122, 119, 96, 85, 81, 100, 89, 85, 104, 93, 89, 145, 134, 130, 118, 107, 103, 142, 131, 127, 101, 92, 87, 96, 87, 82, 133, 124, 119, 118, 109, 104, 101, 90, 88, 100, 89, 87, 120, 109, 107, 92, 81, 79, 120, 109, 107, 126, 115, 113, 99, 88, 84, 56, 45, 41, 78, 67, 63, 95, 84, 80, 97, 86, 82, 132, 121, 117, 127, 116, 110, 87, 76, 70, 108, 97, 91, 129, 118, 112, 119, 108, 102, 133, 122, 116, 139, 128, 122, 127, 116, 110, 113, 102, 96, 110, 99, 93, 114, 103, 97, 118, 107, 101, 126, 115, 109, 137, 126, 120, 131, 120, 114, 119, 108, 102, 121, 110, 104, 119, 108, 102, 107, 96, 90, 98, 87, 81, 71, 57, 54, 60, 45, 42, 43, 28, 25, 30, 15, 10, 27, 12, 7, 30, 15, 8, 36, 21, 14, 40, 26, 17, 31, 17, 6, 31, 17, 6, 32, 18, 5, 34, 20, 7, 38, 24, 11, 43, 30, 14, 47, 34, 18, 52, 36, 20, 43, 24, 7, 50, 32, 12, 54, 33, 14, 49, 28, 9, 50, 29, 10, 59, 38, 19, 65, 42, 24, 64, 42, 21, 55, 33, 12, 62, 37, 17, 61, 36, 16, 56, 29, 10, 54, 27, 8, 55, 28, 9, 49, 20, 2, 38, 11, 0, 34, 11, 0, 31, 12, 0, 31, 12, 0, 34, 14, 3, 41, 21, 12, 49, 30, 24, 58, 39, 35, 64, 44, 43, 53, 33, 32, 55, 37, 35, 61, 43, 41, 66, 48, 44, 69, 51, 47, 73, 56, 49, 84, 67, 60, 96, 77, 71, 104, 83, 78, 100, 79, 74, 97, 76, 75, 99, 79, 78, 106, 86, 87, 110, 91, 93, 110, 94, 97, 109, 93, 96, 97, 82, 85, 85, 73, 75, 79, 69, 70, 87, 77, 76, 98, 90, 87, 106, 98, 95, 109, 101, 98, 111, 103, 100, 118, 111, 105, 114, 107, 101, 127, 120, 114, 142, 135, 129, 146, 139, 133, 140, 133, 127, 114, 107, 101, 76, 69, 63, 111, 104, 98, 100, 93, 87, 97, 90, 84, 118, 111, 105, 136, 129, 123, 124, 117, 111, 118, 111, 105, 137, 130, 124, 166, 159, 153, 156, 149, 143, 141, 134, 128, 130, 123, 117, 125, 118, 112, 124, 117, 111, 123, 116, 110, 122, 115, 109, 139, 132, 126, 146, 139, 133, 154, 147, 141, 159, 152, 146, 159, 152, 146, 158, 151, 145, 158, 151, 145, 159, 152, 146, 170, 165, 159, 173, 168, 162, 172, 165, 159, 165, 158, 152, 161, 152, 147, 164, 155, 150, 172, 161, 157, 177, 166, 162, 186, 175, 171, 181, 170, 166, 175, 166, 161, 174, 165, 160, 177, 170, 164, 180, 173, 167, 180, 175, 169, 179, 174, 168, 180, 175, 172, 183, 178, 175, 186, 181, 178, 187, 182, 179, 186, 181, 178, 184, 179, 176, 182, 177, 174, 182, 177, 174, 189, 184, 181, 189, 184, 181, 190, 185, 182, 190, 185, 182, 191, 186, 183, 192, 187, 184, 193, 188, 185, 193, 188, 184, 190, 182, 179, 189, 182, 176, 188, 180, 177, 188, 180, 177, 188, 180, 177, 189, 181, 178, 188, 183, 179, 189, 184, 180, 188, 183, 180, 188, 183, 180, 188, 183, 180, 189, 184, 181, 191, 187, 184, 194, 190, 187, 198, 194, 193, 200, 196, 195, 205, 201, 200, 205, 201, 200, 205, 201, 200, 206, 202, 201, 206, 205, 203, 208, 207, 205, 209, 209, 209, 211, 211, 211, 217, 217, 219, 222, 222, 224, 228, 229, 233, 234, 235, 239, 234, 238, 241, 235, 239, 242, 237, 240, 245, 238, 241, 246, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 237, 240, 247, 237, 240, 247, 237, 240, 247, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 247, 237, 240, 249, 237, 240, 249, 238, 238, 246, 238, 239, 244, 238, 237, 242, 237, 238, 242, 235, 238, 243, 232, 239, 245, 232, 242, 251, 228, 241, 250, 228, 238, 247, 228, 235, 243, 228, 227, 232, 220, 214, 214, 208, 197, 193, 202, 183, 176, 191, 167, 155, 187, 159, 148, 183, 156, 149, 187, 162, 158, 192, 171, 170, 194, 174, 176, 195, 176, 178, 195, 179, 180, 195, 179, 180, 186, 170, 170, 170, 156, 153, 157, 143, 140, 154, 140, 137, 153, 139, 136, 146, 132, 131, 138, 122, 122, 126, 106, 107, 122, 100, 102, 111, 91, 92, 99, 79, 80, 92, 72, 73, 94, 74, 75, 103, 85, 85, 112, 94, 94, 113, 97, 97, 105, 89, 89, 96, 82, 81, 93, 79, 78, 88, 74, 73, 79, 65, 64, 74, 60, 59, 73, 59, 58, 89, 69, 68, 88, 67, 64, 84, 63, 60, 83, 62, 59, 84, 63, 60, 89, 68, 65, 95, 74, 71, 99, 78, 75, 109, 85, 85, 113, 89, 89, 116, 92, 92, 117, 93, 93, 119, 95, 95, 128, 104, 104, 144, 118, 119, 154, 133, 132, 153, 138, 135, 155, 141, 138, 158, 144, 141, 159, 145, 142, 155, 144, 140, 153, 142, 138, 153, 142, 138, 154, 143, 139, 154, 143, 141, 154, 143, 141, 152, 138, 137, 143, 127, 127, 131, 112, 114, 119, 100, 102, 114, 95, 97, 111, 95, 95, 118, 104, 101, 109, 98, 92, 115, 104, 98, 133, 122, 116, 143, 132, 128, 138, 127, 123, 134, 125, 120, 138, 129, 124, 126, 117, 112, 107, 98, 93, 88, 80, 77, 88, 80, 77, 102, 94, 91, 116, 108, 105, 118, 110, 107, 113, 105, 102, 71, 61, 59, 53, 43, 41, 80, 70, 68, 111, 101, 99, 98, 90, 87, 92, 84, 81, 109, 101, 98, 116, 108, 105, 101, 93, 90, 112, 104, 101, 139, 134, 130, 134, 129, 125, 96, 91, 87, 97, 92, 88, 125, 120, 116, 130, 125, 122, 111, 107, 106, 109, 107, 108, 97, 93, 94, 96, 94, 95, 102, 98, 99, 111, 109, 110, 141, 137, 138, 150, 148, 149, 141, 137, 138, 140, 138, 139, 135, 131, 132, 127, 125, 126, 132, 128, 129, 126, 124, 125, 125, 121, 122, 131, 127, 126, 145, 141, 138, 141, 136, 132, 129, 124, 120, 119, 114, 110, 121, 116, 112, 134, 129, 125, 146, 141, 137, 152, 147, 143, 157, 152, 148, 142, 137, 133, 134, 129, 125, 123, 118, 114, 115, 110, 106, 135, 130, 126, 151, 146, 142, 139, 134, 130, 122, 118, 115, 154, 150, 147, 157, 153, 150, 128, 124, 121, 119, 114, 110, 138, 133, 129, 166, 161, 157, 185, 180, 176, 154, 149, 145, 164, 159, 155, 158, 151, 145, 135, 128, 122, 135, 128, 122, 162, 155, 149, 182, 175, 169, 183, 176, 170, 145, 136, 131, 144, 135, 130, 134, 125, 120, 115, 106, 101, 102, 93, 88, 107, 98, 93, 122, 113, 108, 135, 126, 121, 136, 127, 122, 150, 141, 136, 153, 144, 139, 145, 136, 131, 145, 136, 131, 151, 142, 137, 142, 133, 128, 121, 113, 110, 141, 133, 131, 119, 114, 111, 121, 116, 113, 118, 113, 110, 130, 126, 123, 125, 121, 118, 96, 92, 89, 121, 117, 114, 146, 142, 139, 109, 105, 102, 103, 98, 95, 85, 80, 77, 124, 116, 114, 127, 119, 117, 103, 93, 92, 112, 102, 100, 133, 122, 120, 126, 115, 111, 103, 92, 88, 97, 86, 82, 113, 102, 98, 79, 68, 64, 113, 102, 98, 121, 110, 106, 137, 126, 122, 153, 142, 138, 118, 107, 103, 134, 123, 119, 164, 153, 149, 139, 128, 124, 138, 127, 123, 151, 140, 136, 146, 135, 131, 136, 125, 121, 115, 104, 100, 137, 126, 122, 88, 77, 73, 86, 75, 71, 117, 106, 102, 119, 108, 104, 143, 132, 128, 136, 125, 121, 126, 115, 111, 163, 152, 148, 156, 145, 141, 155, 144, 140, 156, 145, 141, 149, 139, 137, 183, 173, 174, 140, 131, 132, 151, 145, 145, 173, 167, 167, 197, 191, 191, 170, 166, 165, 170, 166, 165, 197, 196, 194, 216, 216, 214, 187, 187, 185, 189, 191, 188, 210, 212, 209, 211, 216, 212, 209, 214, 210, 210, 215, 211, 202, 206, 205, 204, 210, 210, 214, 220, 220, 209, 213, 212, 203, 205, 204, 213, 213, 211, 217, 218, 213, 204, 203, 199, 191, 190, 186, 182, 179, 174, 177, 174, 169, 150, 146, 143, 148, 144, 141, 143, 139, 136, 154, 150, 147, 187, 183, 182, 164, 159, 156, 144, 134, 132, 203, 192, 188, 164, 153, 149, 134, 123, 119, 73, 62, 58, 144, 133, 129, 100, 89, 85, 142, 131, 127, 131, 120, 116, 128, 117, 113, 92, 81, 77, 139, 128, 124, 166, 155, 151, 128, 117, 113, 143, 132, 128, 158, 147, 143, 155, 144, 140, 142, 131, 127, 143, 132, 128, 151, 140, 136, 127, 116, 112, 136, 125, 121, 163, 152, 148, 124, 113, 109, 159, 148, 144, 106, 95, 91, 117, 106, 102, 149, 138, 134, 116, 105, 101, 97, 86, 82, 112, 101, 97, 99, 88, 84, 147, 133, 130, 103, 89, 86, 155, 141, 138, 150, 136, 133, 99, 85, 82, 112, 98, 95, 112, 101, 97, 96, 85, 81, 77, 66, 62, 138, 127, 123, 105, 94, 90, 120, 109, 105, 109, 100, 95, 100, 91, 86, 121, 112, 107, 107, 98, 93, 58, 47, 45, 92, 81, 79, 128, 117, 115, 100, 89, 87, 102, 91, 89, 105, 94, 92, 93, 82, 78, 65, 54, 50, 67, 56, 52, 74, 63, 59, 100, 89, 85, 111, 100, 96, 89, 78, 72, 89, 78, 72, 122, 111, 105, 142, 131, 125, 142, 131, 125, 140, 129, 123, 133, 122, 116, 117, 106, 100, 98, 87, 81, 93, 82, 76, 109, 98, 92, 129, 118, 112, 115, 104, 98, 151, 140, 134, 133, 122, 116, 110, 99, 93, 132, 121, 115, 121, 110, 104, 77, 66, 60, 65, 54, 48, 48, 35, 29, 39, 26, 20, 28, 15, 9, 21, 8, 2, 20, 7, 1, 24, 11, 3, 29, 16, 8, 32, 19, 10, 27, 15, 3, 28, 16, 4, 31, 19, 7, 34, 22, 8, 37, 25, 11, 41, 29, 15, 43, 31, 17, 47, 31, 15, 39, 21, 0, 47, 27, 3, 51, 29, 5, 50, 28, 4, 54, 30, 6, 61, 37, 13, 68, 42, 19, 68, 42, 17, 53, 25, 1, 58, 28, 4, 61, 29, 4, 64, 32, 7, 72, 38, 13, 78, 44, 19, 75, 39, 13, 66, 32, 7, 50, 22, 0, 44, 19, 0, 38, 12, 0, 32, 9, 0, 33, 9, 0, 39, 14, 7, 44, 20, 16, 49, 25, 23, 50, 29, 26, 51, 32, 28, 60, 41, 37, 69, 50, 46, 63, 46, 39, 58, 41, 33, 75, 58, 50, 101, 82, 75, 88, 67, 62, 90, 69, 64, 93, 72, 71, 96, 76, 75, 100, 80, 81, 100, 81, 83, 99, 83, 86, 98, 81, 87, 96, 81, 86, 83, 71, 73, 73, 63, 64, 74, 64, 63, 76, 68, 65, 79, 71, 68, 81, 76, 70, 85, 80, 74, 77, 70, 64, 66, 59, 53, 64, 57, 51, 75, 68, 62, 95, 88, 82, 120, 113, 107, 130, 123, 117, 121, 114, 108, 94, 87, 81, 91, 84, 78, 84, 77, 71, 81, 74, 68, 84, 77, 71, 87, 80, 74, 103, 96, 90, 130, 123, 117, 132, 125, 119, 122, 115, 109, 113, 106, 100, 113, 106, 100, 123, 116, 110, 136, 129, 123, 145, 138, 132, 149, 142, 136, 154, 147, 141, 158, 151, 145, 161, 154, 148, 163, 156, 150, 161, 154, 148, 160, 153, 147, 161, 154, 148, 162, 155, 149, 157, 152, 146, 158, 153, 147, 158, 151, 145, 154, 147, 141, 153, 144, 139, 157, 148, 143, 167, 156, 152, 175, 164, 160, 179, 168, 164, 179, 168, 164, 177, 168, 163, 176, 167, 162, 175, 168, 162, 176, 169, 163, 175, 170, 164, 177, 172, 166, 175, 170, 167, 183, 178, 175, 190, 185, 182, 190, 185, 182, 185, 180, 177, 182, 177, 174, 185, 180, 177, 189, 184, 181, 186, 181, 178, 187, 182, 179, 191, 186, 183, 193, 188, 185, 195, 190, 187, 195, 190, 187, 195, 190, 187, 194, 189, 185, 185, 177, 174, 186, 179, 173, 189, 181, 178, 191, 183, 180, 193, 185, 182, 195, 187, 184, 193, 188, 184, 193, 188, 184, 194, 189, 186, 194, 189, 186, 193, 188, 185, 193, 188, 185, 194, 190, 187, 196, 192, 189, 198, 194, 193, 199, 195, 194, 201, 197, 196, 202, 198, 197, 203, 199, 198, 205, 201, 200, 205, 204, 202, 209, 208, 206, 211, 211, 211, 212, 212, 212, 219, 219, 221, 224, 224, 226, 230, 231, 235, 234, 235, 239, 233, 237, 240, 234, 238, 241, 234, 237, 242, 235, 238, 243, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 237, 240, 247, 237, 240, 247, 237, 240, 247, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 247, 237, 240, 247, 239, 240, 245, 238, 239, 244, 239, 238, 243, 237, 238, 242, 235, 239, 242, 232, 239, 245, 235, 244, 251, 231, 241, 250, 229, 239, 248, 232, 239, 247, 235, 238, 243, 230, 230, 232, 218, 212, 212, 210, 199, 195, 198, 181, 173, 189, 171, 161, 183, 163, 156, 184, 163, 158, 187, 166, 165, 188, 167, 166, 191, 171, 172, 194, 176, 176, 189, 173, 173, 182, 168, 167, 171, 157, 156, 159, 148, 144, 160, 146, 143, 162, 148, 145, 158, 144, 141, 152, 136, 136, 136, 116, 117, 127, 107, 108, 111, 91, 92, 95, 75, 76, 87, 67, 68, 91, 71, 72, 101, 83, 83, 111, 93, 93, 111, 93, 93, 102, 86, 86, 98, 82, 82, 96, 80, 80, 91, 75, 75, 81, 65, 65, 71, 57, 56, 70, 55, 52, 79, 59, 58, 79, 58, 55, 79, 58, 55, 79, 58, 55, 81, 60, 57, 84, 63, 60, 88, 67, 66, 90, 69, 68, 102, 78, 78, 109, 85, 85, 115, 91, 91, 116, 92, 92, 115, 90, 93, 122, 98, 98, 138, 112, 115, 149, 128, 127, 153, 135, 133, 154, 140, 137, 157, 143, 140, 158, 144, 141, 156, 142, 139, 151, 140, 136, 150, 139, 135, 150, 139, 135, 148, 137, 135, 150, 139, 137, 154, 140, 139, 152, 138, 137, 148, 132, 133, 142, 123, 125, 135, 116, 118, 130, 114, 114, 115, 101, 98, 119, 108, 102, 119, 108, 102, 116, 105, 99, 122, 111, 107, 134, 123, 119, 137, 128, 123, 133, 124, 119, 141, 132, 127, 132, 123, 118, 116, 108, 105, 104, 96, 93, 98, 90, 87, 103, 95, 92, 113, 105, 102, 121, 113, 110, 97, 87, 85, 68, 58, 56, 63, 53, 51, 71, 61, 59, 61, 53, 50, 63, 55, 52, 87, 79, 76, 106, 98, 95, 100, 92, 89, 90, 82, 79, 111, 106, 102, 142, 137, 133, 139, 134, 130, 130, 125, 121, 138, 133, 129, 146, 142, 139, 142, 138, 137, 148, 147, 145, 145, 141, 142, 129, 128, 126, 118, 114, 115, 115, 114, 112, 128, 124, 125, 130, 129, 127, 142, 138, 139, 146, 145, 143, 135, 131, 132, 108, 107, 105, 105, 101, 102, 119, 118, 116, 136, 132, 133, 141, 137, 136, 152, 147, 144, 166, 161, 157, 174, 169, 165, 169, 164, 160, 168, 163, 159, 176, 171, 167, 179, 174, 170, 176, 171, 167, 165, 160, 156, 169, 164, 160, 156, 151, 147, 114, 109, 105, 83, 78, 74, 98, 93, 89, 116, 111, 107, 106, 101, 97, 123, 119, 116, 126, 122, 119, 149, 145, 142, 176, 172, 169, 163, 158, 154, 125, 120, 116, 124, 119, 115, 156, 151, 147, 146, 141, 137, 152, 147, 143, 160, 153, 147, 156, 149, 143, 140, 133, 127, 132, 125, 119, 152, 145, 139, 181, 174, 168, 185, 176, 171, 155, 146, 141, 126, 117, 112, 116, 107, 102, 110, 101, 96, 107, 98, 93, 118, 109, 104, 135, 126, 121, 132, 123, 118, 134, 125, 120, 138, 129, 124, 143, 134, 129, 142, 133, 128, 137, 128, 123, 133, 124, 119, 131, 124, 118, 115, 107, 105, 105, 100, 97, 126, 121, 118, 112, 107, 104, 129, 125, 122, 154, 150, 147, 114, 110, 107, 107, 103, 100, 128, 124, 121, 120, 116, 113, 132, 127, 124, 99, 94, 91, 90, 82, 80, 116, 108, 106, 130, 120, 119, 134, 124, 122, 133, 122, 120, 125, 114, 110, 106, 95, 91, 100, 89, 85, 123, 112, 108, 93, 82, 78, 122, 111, 107, 139, 128, 124, 147, 136, 132, 160, 149, 145, 120, 109, 105, 133, 122, 118, 171, 160, 156, 142, 131, 127, 129, 118, 114, 155, 144, 140, 143, 132, 128, 121, 110, 106, 101, 90, 86, 152, 141, 137, 107, 96, 92, 95, 84, 80, 130, 119, 115, 124, 113, 109, 147, 136, 132, 123, 112, 108, 131, 120, 116, 174, 163, 159, 159, 148, 144, 149, 138, 134, 164, 153, 149, 148, 138, 136, 177, 168, 169, 168, 159, 162, 165, 159, 159, 183, 177, 177, 208, 204, 203, 185, 181, 180, 174, 173, 171, 207, 206, 204, 222, 222, 220, 208, 208, 206, 208, 210, 207, 214, 216, 213, 209, 214, 210, 212, 217, 213, 214, 219, 215, 204, 209, 205, 210, 216, 216, 216, 222, 222, 210, 214, 213, 204, 208, 207, 213, 215, 212, 216, 216, 214, 206, 205, 201, 199, 198, 194, 184, 181, 176, 186, 183, 178, 173, 169, 166, 174, 170, 167, 151, 147, 144, 133, 129, 126, 169, 165, 164, 191, 186, 183, 147, 137, 135, 187, 176, 172, 169, 158, 154, 124, 113, 109, 78, 67, 63, 141, 130, 126, 134, 123, 119, 147, 136, 132, 117, 106, 102, 145, 134, 130, 99, 88, 84, 112, 101, 97, 161, 150, 146, 131, 120, 116, 123, 112, 108, 168, 157, 153, 166, 155, 151, 158, 147, 143, 135, 124, 120, 155, 144, 140, 131, 120, 116, 117, 106, 102, 163, 152, 148, 136, 125, 121, 140, 129, 125, 133, 122, 118, 82, 71, 67, 140, 129, 125, 151, 140, 136, 71, 60, 56, 95, 84, 80, 131, 120, 116, 130, 116, 113, 115, 101, 98, 106, 92, 89, 161, 147, 144, 116, 102, 99, 77, 63, 60, 143, 132, 128, 112, 101, 97, 97, 86, 82, 100, 89, 85, 125, 114, 110, 115, 104, 100, 95, 86, 81, 113, 104, 99, 111, 102, 97, 116, 107, 102, 60, 49, 47, 87, 76, 74, 108, 97, 95, 94, 83, 81, 92, 81, 79, 102, 91, 89, 107, 96, 92, 101, 90, 86, 66, 55, 51, 77, 66, 62, 102, 91, 87, 85, 74, 70, 73, 62, 56, 104, 93, 87, 126, 115, 109, 139, 128, 122, 142, 131, 125, 136, 125, 119, 122, 111, 105, 104, 93, 87, 93, 82, 76, 98, 87, 81, 113, 102, 96, 125, 114, 108, 132, 121, 115, 145, 134, 128, 127, 116, 110, 121, 110, 104, 129, 118, 112, 85, 74, 68, 32, 21, 15, 34, 23, 17, 31, 20, 14, 29, 18, 12, 27, 16, 10, 26, 15, 9, 26, 16, 7, 25, 15, 6, 21, 11, 2, 18, 8, 0, 20, 10, 0, 21, 11, 1, 22, 12, 2, 23, 13, 3, 22, 12, 0, 21, 11, 0, 19, 9, 0, 21, 8, 0, 29, 12, 0, 37, 17, 0, 42, 22, 0, 44, 24, 0, 48, 26, 2, 55, 31, 5, 62, 36, 11, 65, 38, 11, 71, 41, 15, 66, 35, 7, 62, 28, 1, 61, 26, 0, 66, 29, 2, 71, 34, 7, 72, 33, 4, 66, 29, 2, 73, 39, 12, 68, 38, 12, 65, 34, 13, 57, 29, 8, 50, 21, 5, 41, 13, 1, 33, 6, 0, 27, 2, 0, 47, 24, 18, 51, 30, 25, 61, 40, 35, 67, 48, 42, 63, 46, 38, 62, 45, 37, 76, 59, 51, 96, 77, 70, 89, 69, 62, 95, 71, 67, 98, 74, 72, 97, 75, 77, 95, 73, 76, 91, 70, 75, 90, 71, 77, 89, 72, 78, 78, 63, 68, 82, 70, 74, 90, 78, 82, 90, 80, 81, 79, 71, 69, 70, 62, 59, 73, 68, 62, 83, 78, 72, 68, 61, 55, 76, 69, 63, 86, 79, 73, 93, 86, 80, 101, 94, 88, 116, 109, 103, 127, 120, 114, 129, 122, 116, 91, 84, 78, 106, 99, 93, 106, 99, 93, 90, 83, 77, 90, 83, 77, 113, 106, 100, 141, 134, 128, 157, 150, 144, 140, 133, 127, 139, 132, 126, 133, 126, 120, 121, 114, 108, 111, 104, 98, 115, 108, 102, 131, 124, 118, 147, 140, 134, 166, 159, 153, 162, 155, 149, 156, 149, 143, 150, 143, 137, 145, 138, 132, 144, 137, 131, 146, 139, 133, 148, 141, 135, 139, 134, 128, 139, 134, 128, 144, 137, 131, 146, 139, 133, 147, 138, 133, 150, 141, 136, 161, 150, 146, 171, 160, 156, 160, 149, 145, 164, 153, 149, 165, 156, 151, 160, 151, 146, 153, 146, 140, 156, 149, 143, 165, 160, 154, 176, 171, 165, 180, 175, 172, 182, 177, 174, 183, 178, 175, 180, 175, 172, 176, 171, 168, 175, 170, 167, 178, 173, 170, 181, 176, 173, 179, 174, 171, 182, 177, 174, 187, 182, 179, 191, 186, 183, 193, 188, 185, 193, 188, 185, 191, 186, 183, 190, 185, 181, 183, 175, 172, 185, 178, 172, 189, 181, 178, 192, 184, 181, 195, 187, 184, 195, 187, 184, 192, 187, 183, 191, 186, 182, 193, 188, 185, 193, 188, 185, 194, 189, 186, 195, 190, 187, 195, 191, 188, 197, 193, 190, 199, 195, 194, 199, 195, 194, 198, 194, 193, 199, 195, 194, 200, 196, 195, 203, 199, 198, 205, 204, 202, 209, 208, 206, 211, 211, 211, 214, 214, 214, 218, 218, 220, 223, 223, 225, 229, 230, 234, 234, 235, 239, 234, 238, 241, 234, 238, 241, 236, 239, 244, 237, 240, 245, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 237, 240, 247, 237, 240, 247, 237, 240, 247, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 240, 240, 248, 239, 239, 247, 240, 239, 245, 240, 239, 245, 238, 239, 243, 238, 239, 243, 236, 240, 243, 234, 239, 243, 235, 242, 248, 230, 239, 246, 229, 238, 245, 233, 240, 248, 238, 243, 249, 234, 237, 242, 225, 225, 227, 217, 213, 212, 202, 197, 191, 194, 185, 176, 186, 173, 167, 184, 166, 162, 184, 163, 160, 184, 160, 158, 185, 164, 163, 190, 170, 169, 186, 170, 170, 184, 170, 169, 175, 165, 163, 169, 159, 157, 168, 157, 155, 169, 155, 152, 163, 148, 145, 157, 139, 137, 137, 119, 117, 122, 104, 102, 103, 85, 83, 87, 69, 67, 82, 64, 62, 85, 67, 65, 91, 73, 71, 94, 76, 74, 97, 79, 77, 91, 73, 71, 89, 71, 69, 90, 72, 70, 88, 70, 68, 80, 62, 60, 74, 56, 54, 73, 55, 53, 81, 61, 60, 81, 61, 60, 82, 62, 61, 83, 63, 62, 84, 64, 63, 84, 64, 63, 85, 65, 66, 85, 65, 66, 98, 76, 78, 106, 84, 86, 113, 91, 93, 113, 91, 93, 114, 89, 93, 118, 93, 96, 132, 107, 111, 142, 120, 122, 148, 130, 128, 151, 136, 131, 156, 141, 136, 157, 144, 138, 155, 142, 136, 152, 139, 133, 149, 138, 134, 149, 138, 134, 131, 120, 116, 130, 119, 115, 134, 120, 119, 139, 125, 124, 146, 130, 130, 145, 129, 129, 137, 121, 121, 129, 113, 113, 129, 115, 112, 132, 121, 115, 128, 117, 111, 114, 103, 97, 103, 94, 89, 102, 93, 88, 105, 96, 91, 106, 97, 92, 117, 108, 103, 126, 117, 112, 132, 124, 121, 130, 122, 119, 117, 109, 106, 104, 96, 93, 97, 89, 86, 95, 87, 84, 112, 102, 101, 101, 91, 90, 71, 63, 61, 55, 47, 45, 67, 59, 57, 81, 73, 71, 96, 88, 86, 119, 111, 109, 149, 144, 141, 137, 132, 129, 118, 113, 110, 124, 119, 116, 144, 139, 136, 133, 128, 125, 102, 98, 95, 90, 86, 83, 100, 96, 93, 130, 126, 123, 151, 145, 145, 125, 121, 118, 86, 80, 80, 71, 67, 64, 87, 81, 81, 110, 106, 103, 132, 126, 126, 139, 135, 132, 130, 124, 124, 96, 92, 89, 77, 71, 71, 90, 86, 83, 110, 104, 104, 114, 109, 106, 118, 113, 110, 136, 128, 126, 146, 138, 136, 141, 133, 131, 139, 131, 129, 149, 141, 139, 158, 150, 148, 160, 152, 150, 175, 167, 165, 168, 160, 158, 174, 166, 164, 175, 167, 165, 150, 142, 140, 123, 115, 113, 120, 112, 110, 127, 122, 119, 125, 121, 118, 116, 112, 109, 126, 122, 119, 154, 150, 147, 172, 167, 163, 168, 163, 159, 157, 152, 148, 149, 144, 140, 158, 153, 147, 136, 131, 125, 136, 129, 123, 162, 155, 149, 172, 165, 159, 152, 145, 139, 136, 129, 123, 137, 130, 124, 182, 173, 168, 188, 179, 174, 174, 165, 160, 140, 131, 126, 114, 105, 100, 110, 101, 96, 110, 101, 96, 106, 97, 92, 129, 120, 115, 128, 119, 114, 127, 118, 113, 125, 116, 111, 123, 114, 109, 124, 115, 110, 131, 122, 117, 139, 132, 126, 92, 84, 82, 84, 79, 76, 127, 122, 119, 123, 118, 115, 114, 110, 107, 143, 139, 136, 136, 132, 129, 126, 122, 119, 94, 90, 87, 86, 82, 79, 129, 124, 121, 133, 128, 125, 87, 79, 77, 104, 96, 94, 135, 125, 124, 137, 127, 125, 142, 131, 129, 129, 118, 114, 113, 102, 98, 109, 98, 94, 140, 129, 125, 110, 99, 95, 129, 118, 114, 152, 141, 137, 157, 146, 142, 162, 151, 147, 122, 111, 107, 130, 119, 115, 169, 158, 154, 144, 133, 129, 123, 112, 108, 148, 137, 133, 146, 135, 131, 107, 96, 92, 96, 85, 81, 158, 147, 143, 119, 108, 104, 119, 108, 104, 152, 141, 137, 139, 128, 124, 144, 133, 129, 113, 102, 98, 137, 126, 122, 183, 172, 168, 169, 158, 154, 150, 139, 135, 173, 162, 158, 149, 139, 137, 160, 151, 152, 188, 182, 184, 178, 172, 174, 182, 176, 178, 203, 199, 200, 198, 194, 195, 183, 181, 182, 204, 202, 203, 223, 223, 221, 219, 219, 217, 218, 220, 217, 216, 218, 215, 211, 216, 212, 215, 220, 216, 215, 221, 217, 206, 212, 208, 217, 223, 223, 213, 219, 219, 208, 212, 211, 210, 214, 213, 219, 221, 218, 210, 210, 208, 202, 201, 197, 208, 207, 203, 193, 189, 186, 198, 194, 191, 181, 177, 174, 185, 181, 178, 178, 177, 175, 142, 141, 139, 154, 153, 151, 201, 197, 194, 153, 143, 141, 146, 135, 131, 180, 169, 165, 112, 101, 97, 96, 85, 81, 125, 114, 110, 188, 177, 173, 164, 153, 149, 106, 95, 91, 127, 116, 112, 131, 120, 116, 117, 106, 102, 152, 141, 137, 165, 154, 150, 127, 116, 112, 141, 130, 126, 152, 141, 137, 161, 150, 146, 120, 109, 105, 149, 138, 134, 148, 137, 133, 105, 94, 90, 137, 126, 122, 141, 130, 126, 122, 111, 107, 162, 151, 147, 106, 95, 91, 86, 75, 71, 144, 133, 129, 132, 121, 117, 98, 87, 83, 119, 108, 104, 139, 125, 122, 126, 112, 109, 92, 78, 75, 159, 145, 142, 140, 126, 123, 81, 67, 64, 143, 132, 128, 145, 134, 130, 114, 103, 99, 71, 60, 56, 121, 110, 106, 128, 117, 113, 82, 73, 68, 91, 82, 77, 116, 107, 102, 103, 94, 89, 98, 87, 85, 84, 73, 71, 71, 60, 58, 94, 83, 81, 119, 108, 106, 133, 122, 120, 120, 109, 105, 103, 92, 88, 96, 85, 81, 101, 90, 86, 112, 101, 97, 102, 91, 87, 106, 95, 89, 111, 100, 94, 98, 87, 81, 114, 103, 97, 127, 116, 110, 128, 117, 111, 116, 105, 99, 100, 89, 83, 105, 94, 88, 124, 113, 107, 127, 116, 110, 116, 105, 99, 147, 136, 130, 125, 114, 108, 112, 101, 95, 110, 99, 93, 89, 78, 72, 43, 32, 26, 17, 6, 0, 20, 9, 3, 17, 8, 1, 17, 8, 1, 17, 8, 1, 20, 11, 4, 21, 12, 5, 20, 11, 4, 16, 7, 0, 13, 4, 0, 7, 0, 0, 7, 0, 0, 10, 1, 0, 12, 3, 0, 14, 5, 0, 14, 5, 0, 14, 5, 0, 15, 5, 0, 23, 10, 0, 27, 12, 0, 33, 18, 0, 40, 24, 1, 44, 26, 4, 49, 29, 5, 54, 32, 8, 61, 37, 11, 72, 44, 20, 67, 37, 11, 63, 29, 2, 63, 28, 0, 66, 29, 2, 67, 30, 1, 69, 30, 1, 68, 29, 0, 77, 40, 11, 78, 43, 15, 79, 43, 17, 75, 41, 16, 66, 34, 13, 54, 23, 5, 41, 12, 0, 33, 5, 0, 34, 7, 0, 43, 19, 9, 47, 27, 18, 48, 29, 22, 52, 35, 27, 63, 46, 38, 67, 53, 44, 68, 51, 43, 98, 75, 69, 100, 76, 72, 102, 78, 76, 100, 78, 80, 98, 76, 79, 97, 76, 81, 98, 79, 85, 98, 81, 89, 66, 51, 58, 72, 60, 64, 83, 71, 75, 87, 77, 78, 83, 75, 73, 81, 73, 70, 90, 85, 79, 104, 99, 93, 106, 99, 93, 119, 112, 106, 126, 119, 113, 122, 115, 109, 115, 108, 102, 108, 101, 95, 100, 93, 87, 97, 90, 84, 124, 117, 111, 121, 114, 108, 123, 116, 110, 132, 125, 119, 142, 135, 129, 149, 142, 136, 144, 137, 131, 133, 126, 120, 140, 133, 127, 145, 138, 132, 144, 137, 131, 132, 125, 119, 120, 113, 107, 125, 118, 112, 148, 141, 135, 170, 163, 157, 174, 167, 161, 164, 157, 151, 149, 142, 136, 135, 128, 122, 128, 121, 115, 128, 121, 115, 131, 124, 118, 133, 126, 120, 128, 123, 117, 129, 124, 118, 137, 130, 124, 145, 138, 132, 148, 139, 134, 148, 139, 134, 157, 146, 142, 168, 157, 153, 164, 153, 149, 157, 146, 142, 148, 139, 134, 145, 136, 131, 148, 141, 135, 159, 152, 146, 169, 164, 158, 177, 172, 166, 181, 176, 173, 173, 168, 165, 164, 159, 156, 159, 154, 151, 159, 154, 151, 162, 157, 154, 163, 158, 155, 162, 157, 154, 172, 167, 164, 175, 170, 167, 180, 175, 172, 184, 179, 176, 187, 182, 179, 186, 181, 178, 185, 180, 177, 183, 178, 174, 184, 176, 173, 186, 179, 173, 189, 181, 178, 191, 183, 180, 191, 183, 180, 190, 182, 179, 187, 182, 178, 185, 180, 176, 188, 183, 180, 189, 184, 181, 191, 186, 183, 194, 189, 186, 196, 192, 189, 198, 194, 191, 200, 196, 195, 200, 196, 195, 196, 192, 191, 197, 193, 192, 199, 195, 194, 202, 198, 197, 204, 203, 201, 208, 207, 205, 211, 211, 211, 213, 213, 213, 214, 214, 216, 220, 220, 222, 227, 228, 232, 233, 234, 238, 234, 238, 241, 237, 241, 244, 239, 242, 247, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 237, 240, 247, 237, 240, 247, 237, 240, 247, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 240, 240, 248, 240, 240, 248, 240, 239, 245, 240, 239, 245, 239, 240, 244, 238, 239, 243, 236, 240, 243, 236, 240, 243, 235, 240, 244, 231, 238, 244, 230, 237, 243, 232, 239, 245, 236, 241, 247, 234, 239, 245, 229, 232, 237, 223, 227, 230, 211, 213, 210, 201, 202, 196, 194, 187, 181, 189, 176, 170, 184, 165, 159, 181, 157, 153, 182, 158, 154, 186, 165, 162, 190, 175, 172, 189, 178, 176, 184, 176, 174, 177, 169, 167, 172, 162, 160, 167, 156, 152, 159, 144, 139, 151, 133, 129, 141, 126, 123, 125, 111, 108, 105, 91, 88, 91, 76, 73, 85, 70, 67, 87, 69, 67, 89, 71, 69, 89, 71, 69, 98, 78, 77, 92, 72, 71, 89, 68, 67, 90, 69, 68, 91, 70, 69, 87, 66, 65, 85, 64, 63, 87, 66, 65, 90, 70, 69, 90, 72, 70, 94, 74, 75, 96, 76, 77, 96, 76, 77, 94, 74, 75, 91, 71, 72, 89, 69, 70, 103, 81, 84, 109, 87, 90, 115, 93, 96, 116, 94, 97, 115, 92, 98, 118, 96, 99, 129, 104, 110, 135, 113, 116, 142, 122, 121, 147, 129, 125, 154, 136, 132, 156, 141, 136, 156, 141, 136, 154, 141, 135, 152, 138, 135, 150, 139, 135, 139, 128, 124, 135, 124, 120, 135, 121, 120, 141, 127, 126, 151, 135, 135, 153, 137, 137, 145, 129, 129, 135, 121, 118, 136, 122, 119, 122, 111, 105, 120, 109, 103, 124, 113, 107, 107, 98, 93, 80, 71, 66, 79, 70, 65, 99, 90, 85, 104, 95, 90, 104, 95, 90, 106, 98, 95, 113, 105, 102, 118, 110, 107, 114, 106, 103, 101, 93, 90, 90, 82, 79, 116, 106, 105, 132, 122, 121, 108, 100, 98, 85, 77, 75, 100, 92, 90, 110, 102, 100, 107, 99, 97, 117, 109, 107, 102, 97, 94, 123, 118, 115, 99, 94, 91, 75, 70, 67, 105, 100, 97, 130, 125, 122, 114, 110, 107, 98, 94, 91, 83, 78, 75, 103, 98, 94, 133, 128, 125, 126, 121, 117, 102, 97, 94, 84, 79, 75, 72, 67, 64, 81, 76, 72, 101, 96, 93, 122, 117, 113, 145, 140, 137, 143, 138, 134, 123, 118, 115, 113, 108, 104, 107, 102, 99, 95, 90, 87, 124, 116, 114, 138, 130, 128, 149, 141, 139, 149, 141, 139, 145, 137, 135, 148, 140, 138, 155, 147, 145, 159, 151, 149, 156, 148, 146, 158, 150, 148, 165, 157, 155, 174, 166, 164, 180, 172, 170, 181, 173, 171, 175, 167, 165, 166, 161, 158, 151, 146, 143, 131, 127, 124, 123, 119, 116, 125, 121, 118, 131, 126, 122, 145, 140, 136, 164, 159, 155, 172, 167, 163, 171, 166, 160, 147, 142, 136, 131, 124, 118, 138, 131, 125, 155, 148, 142, 160, 153, 147, 149, 142, 136, 137, 130, 124, 148, 139, 134, 175, 166, 161, 198, 189, 184, 187, 178, 173, 145, 136, 131, 108, 99, 94, 100, 91, 86, 111, 102, 97, 123, 114, 109, 135, 126, 121, 133, 124, 119, 114, 105, 100, 107, 98, 93, 121, 112, 107, 132, 123, 118, 129, 122, 116, 120, 112, 110, 77, 72, 69, 90, 85, 82, 120, 115, 112, 117, 113, 110, 128, 124, 121, 142, 138, 135, 131, 127, 124, 100, 96, 93, 56, 52, 49, 82, 77, 74, 128, 123, 120, 90, 82, 80, 96, 88, 86, 124, 114, 113, 139, 129, 127, 147, 136, 134, 136, 125, 121, 118, 107, 103, 104, 93, 89, 142, 131, 127, 123, 112, 108, 131, 120, 116, 149, 138, 134, 157, 146, 142, 158, 147, 143, 129, 118, 114, 131, 120, 116, 159, 148, 144, 142, 131, 127, 124, 113, 109, 145, 134, 130, 151, 140, 136, 98, 87, 83, 105, 94, 90, 153, 142, 138, 112, 101, 97, 138, 127, 123, 164, 153, 149, 153, 142, 138, 131, 120, 116, 106, 95, 91, 142, 131, 127, 185, 174, 170, 180, 169, 165, 155, 144, 140, 180, 169, 165, 151, 141, 139, 142, 133, 134, 198, 192, 194, 185, 179, 181, 183, 177, 179, 193, 189, 190, 207, 203, 204, 193, 191, 192, 198, 196, 197, 221, 221, 219, 222, 222, 220, 221, 223, 220, 218, 220, 217, 217, 222, 218, 220, 225, 221, 217, 223, 219, 210, 216, 212, 220, 226, 226, 214, 220, 220, 210, 214, 213, 217, 221, 220, 223, 225, 222, 209, 211, 208, 203, 202, 198, 213, 212, 208, 206, 202, 199, 210, 206, 203, 183, 179, 176, 182, 178, 175, 200, 199, 197, 178, 177, 175, 163, 162, 160, 191, 187, 184, 178, 168, 166, 138, 127, 123, 195, 184, 180, 126, 115, 111, 112, 101, 97, 107, 96, 92, 204, 193, 189, 168, 157, 153, 141, 130, 126, 111, 100, 96, 140, 129, 125, 119, 108, 104, 116, 105, 101, 164, 153, 149, 138, 127, 123, 100, 89, 85, 125, 114, 110, 150, 139, 135, 112, 101, 97, 139, 128, 124, 160, 149, 145, 108, 97, 93, 111, 100, 96, 134, 123, 119, 121, 110, 106, 136, 125, 121, 164, 153, 149, 91, 80, 76, 110, 99, 95, 160, 149, 145, 97, 86, 82, 122, 111, 107, 158, 144, 141, 116, 102, 99, 113, 99, 96, 137, 123, 120, 142, 128, 125, 114, 100, 97, 108, 97, 93, 155, 144, 140, 112, 101, 97, 83, 72, 68, 93, 82, 78, 133, 122, 118, 94, 85, 80, 61, 52, 47, 130, 121, 116, 80, 71, 66, 93, 82, 80, 80, 69, 67, 64, 53, 51, 111, 100, 98, 130, 119, 117, 130, 119, 117, 106, 95, 91, 87, 76, 72, 122, 111, 107, 108, 97, 93, 97, 86, 82, 114, 103, 99, 119, 108, 102, 87, 76, 70, 83, 72, 66, 120, 109, 103, 118, 107, 101, 124, 113, 107, 118, 107, 101, 110, 99, 93, 125, 114, 108, 148, 137, 131, 141, 130, 124, 115, 104, 98, 134, 123, 117, 100, 89, 83, 85, 74, 68, 69, 58, 52, 33, 22, 16, 24, 13, 7, 32, 21, 15, 20, 11, 4, 29, 22, 14, 24, 17, 9, 16, 9, 1, 12, 5, 0, 10, 3, 0, 11, 4, 0, 10, 3, 0, 10, 3, 0, 8, 1, 0, 9, 2, 0, 10, 3, 0, 11, 4, 0, 13, 6, 0, 14, 7, 1, 15, 8, 2, 16, 9, 1, 21, 15, 1, 23, 16, 0, 29, 22, 4, 39, 31, 12, 44, 33, 15, 46, 31, 10, 51, 35, 12, 60, 40, 16, 58, 36, 13, 61, 35, 12, 68, 38, 14, 77, 45, 20, 81, 47, 20, 78, 43, 15, 77, 40, 13, 80, 43, 14, 87, 48, 17, 87, 46, 16, 84, 45, 16, 78, 41, 14, 71, 35, 9, 63, 29, 4, 55, 23, 2, 48, 20, 0, 34, 7, 0, 38, 15, 0, 38, 16, 3, 34, 14, 5, 42, 23, 16, 58, 41, 34, 57, 42, 35, 48, 31, 24, 80, 57, 51, 83, 58, 54, 87, 63, 61, 93, 68, 71, 97, 75, 78, 102, 81, 86, 106, 85, 94, 105, 88, 96, 84, 67, 75, 71, 58, 65, 66, 54, 58, 70, 60, 61, 79, 71, 69, 88, 80, 77, 96, 91, 85, 104, 99, 93, 115, 108, 102, 113, 106, 100, 98, 91, 85, 88, 81, 75, 97, 90, 84, 108, 101, 95, 114, 107, 101, 120, 113, 107, 114, 107, 101, 96, 89, 83, 108, 101, 95, 139, 132, 126, 144, 137, 131, 133, 126, 120, 135, 128, 122, 146, 139, 133, 155, 148, 142, 148, 141, 135, 137, 130, 124, 126, 119, 113, 123, 116, 110, 129, 122, 116, 140, 133, 127, 150, 143, 137, 160, 153, 147, 151, 144, 138, 139, 132, 126, 132, 125, 119, 132, 125, 119, 138, 131, 125, 144, 137, 131, 148, 141, 135, 145, 140, 134, 142, 137, 131, 148, 141, 135, 156, 149, 143, 157, 148, 143, 154, 145, 140, 163, 152, 148, 176, 165, 161, 171, 160, 156, 152, 141, 137, 135, 126, 121, 138, 129, 124, 156, 149, 143, 172, 165, 159, 170, 165, 159, 163, 158, 152, 155, 150, 147, 147, 142, 139, 139, 134, 131, 141, 136, 133, 151, 146, 143, 161, 156, 153, 166, 161, 158, 167, 162, 159, 181, 176, 173, 183, 178, 175, 186, 181, 178, 189, 184, 181, 190, 185, 182, 190, 185, 182, 190, 185, 182, 189, 184, 180, 187, 179, 176, 187, 180, 174, 188, 180, 177, 188, 180, 177, 187, 179, 176, 186, 178, 175, 183, 178, 174, 182, 177, 173, 186, 181, 178, 188, 183, 180, 191, 186, 183, 194, 189, 186, 196, 192, 189, 198, 194, 191, 199, 195, 194, 199, 195, 194, 195, 191, 190, 196, 192, 191, 198, 194, 193, 201, 197, 196, 202, 201, 199, 207, 206, 204, 209, 209, 209, 211, 211, 211, 213, 213, 215, 219, 219, 221, 226, 227, 231, 233, 234, 238, 235, 239, 242, 237, 241, 244, 240, 243, 248, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 237, 240, 247, 237, 240, 247, 237, 240, 247, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 240, 241, 246, 241, 240, 246, 241, 240, 246, 240, 239, 245, 239, 240, 244, 239, 240, 244, 238, 239, 241, 236, 240, 243, 236, 240, 243, 235, 240, 244, 233, 238, 242, 233, 238, 244, 231, 238, 244, 231, 238, 246, 231, 238, 246, 231, 238, 244, 220, 230, 229, 210, 219, 214, 203, 202, 197, 196, 187, 180, 190, 171, 164, 182, 159, 153, 181, 158, 152, 183, 162, 157, 190, 175, 170, 188, 178, 176, 184, 179, 176, 175, 171, 168, 171, 163, 160, 166, 155, 151, 158, 143, 138, 148, 133, 126, 150, 137, 131, 137, 126, 120, 120, 109, 103, 103, 90, 84, 90, 77, 71, 88, 73, 68, 95, 77, 73, 100, 82, 78, 105, 86, 82, 97, 76, 73, 91, 67, 65, 89, 65, 63, 90, 64, 63, 89, 63, 62, 92, 64, 63, 93, 69, 69, 94, 74, 75, 94, 78, 78, 101, 82, 84, 104, 85, 87, 105, 86, 88, 102, 83, 85, 98, 79, 81, 95, 76, 78, 107, 86, 91, 110, 89, 94, 113, 92, 97, 115, 94, 99, 116, 95, 102, 118, 97, 102, 124, 101, 109, 126, 106, 108, 135, 115, 114, 140, 123, 116, 149, 131, 127, 154, 139, 134, 156, 141, 136, 155, 142, 136, 155, 142, 136, 155, 142, 136, 155, 144, 140, 152, 141, 137, 152, 138, 135, 154, 140, 137, 157, 143, 140, 159, 145, 142, 158, 142, 142, 154, 140, 137, 142, 128, 125, 121, 110, 104, 114, 105, 98, 122, 113, 106, 112, 103, 98, 90, 81, 76, 91, 82, 77, 111, 102, 97, 115, 108, 102, 99, 92, 86, 85, 77, 74, 90, 82, 79, 108, 100, 97, 120, 112, 109, 116, 108, 105, 107, 99, 96, 114, 106, 104, 130, 122, 120, 125, 117, 115, 100, 92, 90, 85, 77, 75, 80, 72, 70, 75, 67, 65, 71, 63, 61, 90, 85, 82, 117, 112, 109, 116, 111, 108, 87, 82, 79, 82, 78, 75, 106, 102, 99, 123, 119, 116, 124, 120, 117, 125, 120, 116, 113, 106, 100, 127, 119, 116, 137, 130, 124, 143, 135, 132, 131, 124, 118, 90, 82, 79, 77, 70, 64, 74, 66, 63, 85, 78, 72, 119, 111, 108, 147, 140, 134, 143, 135, 132, 131, 124, 118, 121, 113, 110, 108, 100, 97, 114, 106, 104, 125, 117, 115, 142, 134, 132, 155, 147, 145, 158, 150, 148, 157, 149, 147, 162, 154, 152, 171, 163, 161, 162, 154, 152, 174, 166, 164, 164, 156, 154, 145, 137, 135, 156, 148, 146, 183, 175, 173, 184, 176, 174, 161, 156, 153, 168, 163, 160, 152, 148, 145, 158, 155, 150, 166, 163, 158, 146, 141, 137, 123, 118, 114, 121, 116, 112, 124, 119, 115, 157, 152, 146, 157, 152, 146, 152, 145, 139, 138, 131, 125, 131, 124, 118, 136, 129, 123, 146, 139, 131, 151, 144, 136, 155, 146, 141, 137, 128, 123, 141, 132, 127, 173, 164, 159, 189, 180, 175, 168, 159, 154, 135, 126, 121, 118, 109, 104, 121, 112, 107, 134, 125, 120, 138, 129, 124, 127, 118, 113, 114, 105, 100, 112, 103, 98, 113, 104, 99, 111, 104, 98, 131, 123, 121, 99, 94, 91, 73, 68, 65, 113, 108, 105, 123, 119, 116, 110, 106, 103, 134, 130, 127, 123, 119, 116, 118, 114, 111, 71, 67, 64, 50, 45, 42, 95, 90, 87, 92, 84, 82, 107, 99, 97, 113, 103, 102, 130, 120, 118, 140, 129, 127, 141, 130, 126, 118, 107, 103, 83, 72, 68, 131, 120, 116, 138, 127, 123, 142, 131, 127, 144, 133, 129, 148, 137, 133, 152, 141, 137, 141, 130, 126, 135, 124, 120, 145, 134, 130, 138, 127, 123, 132, 121, 117, 151, 140, 136, 144, 133, 129, 91, 80, 76, 128, 117, 113, 151, 140, 136, 98, 87, 83, 144, 133, 129, 156, 145, 141, 149, 138, 134, 113, 102, 98, 101, 90, 86, 144, 133, 129, 182, 171, 167, 189, 178, 174, 160, 149, 145, 183, 172, 168, 152, 142, 140, 138, 129, 132, 204, 198, 202, 193, 187, 191, 195, 189, 193, 192, 188, 189, 214, 210, 211, 206, 204, 205, 202, 200, 201, 218, 218, 218, 220, 220, 220, 220, 222, 219, 220, 225, 221, 226, 231, 227, 227, 232, 228, 220, 226, 222, 216, 222, 218, 218, 224, 224, 221, 227, 227, 219, 223, 224, 219, 223, 222, 225, 227, 224, 217, 219, 216, 209, 208, 204, 213, 212, 208, 219, 218, 214, 205, 204, 200, 188, 187, 183, 191, 190, 186, 205, 204, 202, 195, 194, 192, 180, 179, 177, 192, 188, 185, 203, 193, 191, 167, 156, 152, 200, 189, 185, 164, 153, 149, 119, 108, 104, 107, 96, 92, 179, 168, 164, 168, 157, 153, 170, 159, 155, 133, 122, 118, 126, 115, 111, 117, 106, 102, 109, 98, 94, 130, 119, 115, 128, 117, 113, 99, 88, 84, 114, 103, 99, 143, 132, 128, 115, 104, 100, 123, 112, 108, 152, 141, 137, 124, 113, 109, 112, 101, 97, 134, 123, 119, 112, 101, 97, 106, 95, 91, 165, 154, 150, 147, 136, 132, 109, 98, 94, 121, 110, 106, 114, 103, 99, 133, 122, 118, 160, 146, 143, 119, 105, 102, 124, 110, 107, 127, 113, 110, 139, 125, 122, 136, 122, 119, 106, 95, 91, 135, 124, 120, 128, 117, 113, 121, 110, 106, 93, 82, 78, 108, 97, 93, 123, 114, 109, 86, 77, 72, 129, 120, 115, 99, 90, 85, 72, 61, 59, 83, 72, 70, 73, 62, 60, 116, 105, 103, 113, 102, 100, 113, 102, 100, 99, 88, 84, 91, 80, 76, 106, 95, 91, 102, 91, 87, 92, 81, 77, 120, 109, 105, 101, 90, 84, 68, 57, 51, 109, 98, 92, 138, 127, 121, 120, 109, 103, 122, 111, 105, 120, 109, 103, 121, 110, 104, 136, 125, 119, 149, 138, 132, 141, 130, 124, 121, 110, 104, 104, 93, 87, 71, 60, 54, 52, 41, 35, 33, 22, 16, 11, 0, 0, 23, 12, 6, 38, 27, 21, 20, 11, 4, 35, 28, 22, 26, 21, 15, 17, 12, 6, 10, 5, 0, 7, 2, 0, 6, 1, 0, 6, 1, 0, 5, 0, 0, 14, 9, 5, 13, 8, 4, 10, 5, 1, 8, 3, 0, 8, 3, 0, 9, 4, 1, 10, 5, 2, 10, 7, 2, 19, 20, 12, 19, 21, 10, 26, 26, 14, 38, 36, 23, 41, 37, 25, 41, 34, 18, 45, 36, 19, 56, 43, 26, 70, 53, 35, 74, 53, 34, 83, 58, 36, 88, 62, 39, 85, 55, 31, 75, 45, 21, 75, 43, 18, 85, 49, 23, 100, 59, 29, 101, 56, 25, 97, 53, 24, 90, 49, 19, 84, 45, 14, 76, 41, 11, 71, 37, 9, 66, 36, 10, 55, 27, 5, 48, 23, 3, 40, 17, 1, 35, 15, 4, 40, 21, 14, 47, 30, 23, 49, 34, 31, 49, 31, 27, 55, 31, 27, 60, 35, 31, 68, 44, 42, 82, 57, 60, 95, 73, 76, 103, 82, 87, 104, 83, 92, 100, 83, 91, 87, 70, 80, 76, 63, 70, 75, 63, 67, 83, 73, 74, 92, 84, 82, 91, 86, 82, 86, 81, 75, 82, 78, 69, 105, 98, 92, 114, 107, 101, 110, 103, 97, 107, 100, 94, 121, 114, 108, 129, 122, 116, 131, 124, 118, 138, 131, 125, 153, 146, 140, 139, 132, 126, 140, 133, 127, 137, 130, 124, 113, 106, 100, 99, 92, 86, 110, 103, 97, 121, 114, 108, 126, 119, 113, 115, 108, 102, 105, 98, 92, 108, 101, 95, 123, 116, 110, 140, 133, 127, 151, 144, 138, 155, 148, 142, 147, 140, 134, 143, 136, 130, 140, 133, 127, 142, 135, 129, 149, 142, 136, 158, 151, 145, 162, 155, 149, 164, 157, 151, 165, 160, 154, 155, 150, 144, 153, 146, 140, 155, 148, 142, 152, 143, 138, 146, 137, 132, 157, 146, 142, 174, 163, 159, 158, 147, 143, 149, 138, 134, 143, 134, 129, 150, 141, 136, 163, 156, 150, 169, 162, 156, 159, 154, 148, 148, 143, 137, 133, 128, 125, 134, 129, 126, 138, 133, 130, 146, 141, 138, 157, 152, 149, 168, 163, 160, 177, 172, 169, 181, 176, 173, 190, 185, 182, 190, 185, 182, 191, 186, 183, 192, 187, 184, 193, 188, 185, 193, 188, 185, 194, 189, 186, 194, 189, 185, 188, 180, 177, 188, 181, 175, 187, 179, 176, 186, 178, 175, 185, 177, 174, 186, 178, 175, 185, 180, 176, 185, 180, 176, 189, 184, 181, 191, 186, 183, 194, 189, 186, 197, 192, 189, 197, 193, 190, 198, 194, 191, 197, 193, 192, 196, 192, 191, 196, 192, 191, 196, 192, 191, 198, 194, 193, 200, 196, 195, 201, 200, 198, 205, 204, 202, 207, 207, 207, 209, 209, 209, 215, 215, 217, 221, 221, 223, 228, 229, 233, 233, 234, 238, 234, 238, 241, 236, 240, 243, 238, 241, 246, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 237, 240, 247, 237, 240, 247, 237, 240, 247, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 241, 246, 240, 241, 246, 241, 240, 246, 239, 240, 245, 239, 240, 244, 239, 240, 244, 238, 239, 243, 238, 239, 243, 237, 241, 244, 237, 241, 244, 235, 240, 244, 233, 238, 242, 231, 236, 242, 230, 237, 245, 234, 241, 249, 237, 246, 251, 228, 240, 240, 219, 228, 225, 211, 212, 207, 200, 195, 189, 190, 177, 171, 180, 163, 156, 178, 159, 153, 181, 164, 157, 184, 170, 167, 184, 174, 172, 179, 174, 171, 172, 167, 164, 169, 161, 158, 166, 155, 151, 162, 147, 142, 155, 140, 133, 149, 139, 130, 143, 132, 126, 129, 118, 112, 105, 94, 88, 87, 74, 68, 82, 69, 63, 93, 78, 73, 108, 90, 86, 102, 82, 81, 90, 71, 67, 82, 58, 58, 77, 53, 51, 76, 50, 49, 75, 49, 48, 80, 52, 51, 83, 57, 58, 93, 73, 74, 94, 78, 79, 102, 83, 85, 107, 88, 90, 109, 90, 92, 106, 87, 89, 103, 82, 87, 100, 79, 84, 108, 87, 92, 109, 88, 93, 110, 89, 94, 113, 92, 97, 116, 93, 99, 117, 96, 101, 119, 96, 102, 119, 99, 101, 129, 111, 107, 136, 119, 112, 147, 129, 125, 153, 138, 133, 157, 142, 137, 158, 143, 138, 158, 143, 138, 158, 145, 139, 152, 138, 135, 153, 139, 136, 154, 139, 136, 152, 137, 134, 150, 135, 132, 153, 135, 133, 158, 140, 138, 161, 146, 143, 159, 145, 142, 143, 132, 126, 125, 114, 108, 111, 102, 95, 106, 97, 92, 108, 99, 94, 112, 103, 98, 115, 106, 101, 123, 114, 109, 108, 101, 95, 96, 88, 85, 99, 91, 88, 114, 106, 103, 124, 116, 113, 120, 112, 109, 111, 103, 100, 96, 88, 85, 102, 94, 91, 117, 109, 107, 104, 96, 93, 68, 60, 58, 69, 61, 58, 88, 80, 78, 84, 76, 73, 93, 85, 83, 98, 93, 89, 124, 116, 114, 118, 113, 109, 79, 74, 71, 78, 73, 69, 116, 111, 108, 138, 133, 129, 122, 117, 111, 94, 89, 83, 103, 98, 92, 115, 110, 104, 133, 128, 122, 145, 138, 132, 131, 124, 118, 143, 136, 130, 96, 89, 83, 72, 65, 59, 76, 69, 63, 99, 91, 88, 109, 101, 98, 120, 112, 109, 139, 131, 128, 148, 140, 137, 130, 122, 119, 127, 119, 116, 131, 123, 121, 138, 130, 127, 137, 129, 127, 135, 127, 124, 145, 137, 135, 161, 153, 150, 171, 163, 161, 167, 159, 156, 163, 155, 153, 165, 157, 154, 167, 159, 157, 161, 153, 150, 162, 154, 152, 174, 166, 164, 174, 169, 166, 158, 154, 151, 152, 149, 144, 156, 153, 148, 167, 162, 158, 180, 175, 171, 161, 156, 152, 117, 112, 108, 132, 127, 121, 145, 140, 134, 162, 157, 151, 167, 160, 154, 151, 144, 138, 128, 121, 115, 120, 113, 107, 123, 116, 110, 133, 124, 119, 148, 139, 134, 147, 138, 133, 140, 131, 126, 163, 154, 149, 196, 187, 182, 184, 175, 170, 145, 136, 131, 123, 114, 109, 122, 113, 108, 135, 126, 121, 149, 140, 135, 132, 123, 118, 97, 88, 83, 87, 78, 73, 100, 90, 88, 94, 86, 84, 131, 126, 123, 104, 99, 96, 121, 116, 113, 112, 107, 104, 78, 74, 71, 122, 118, 115, 131, 127, 124, 107, 103, 100, 101, 97, 94, 57, 52, 49, 81, 76, 73, 104, 96, 94, 131, 123, 121, 105, 95, 94, 103, 93, 92, 128, 117, 115, 141, 130, 126, 115, 104, 100, 64, 53, 49, 120, 109, 105, 152, 141, 137, 157, 146, 142, 145, 134, 130, 138, 127, 123, 148, 137, 133, 151, 140, 136, 140, 129, 125, 135, 124, 120, 135, 124, 120, 140, 129, 125, 159, 148, 144, 131, 120, 116, 85, 74, 70, 149, 138, 134, 156, 145, 141, 90, 79, 75, 144, 133, 129, 140, 129, 125, 134, 123, 119, 100, 89, 85, 97, 86, 82, 145, 134, 130, 177, 168, 163, 193, 184, 179, 162, 153, 148, 182, 172, 170, 151, 143, 140, 142, 136, 138, 207, 203, 204, 198, 193, 197, 209, 205, 206, 198, 194, 195, 219, 217, 218, 216, 214, 215, 211, 209, 210, 217, 217, 217, 218, 218, 218, 218, 220, 217, 223, 228, 224, 235, 237, 234, 232, 237, 233, 224, 229, 225, 222, 227, 223, 215, 219, 218, 230, 234, 233, 228, 232, 233, 219, 223, 222, 224, 226, 223, 225, 227, 224, 216, 217, 212, 209, 210, 205, 229, 228, 224, 193, 194, 189, 196, 195, 191, 211, 212, 207, 202, 201, 199, 184, 184, 182, 188, 187, 185, 207, 203, 200, 204, 196, 193, 190, 181, 176, 190, 181, 176, 195, 186, 181, 121, 112, 107, 122, 111, 107, 157, 146, 142, 179, 168, 164, 151, 140, 136, 164, 153, 149, 119, 108, 104, 133, 122, 118, 151, 140, 136, 114, 103, 99, 115, 104, 100, 128, 117, 113, 122, 111, 107, 145, 134, 130, 123, 112, 108, 110, 99, 95, 137, 126, 122, 138, 127, 123, 129, 118, 114, 144, 133, 129, 93, 82, 78, 115, 104, 100, 116, 105, 101, 170, 159, 155, 134, 123, 119, 99, 88, 84, 159, 148, 144, 112, 101, 97, 155, 141, 138, 144, 130, 127, 120, 106, 103, 140, 126, 123, 150, 136, 133, 142, 128, 125, 144, 133, 129, 118, 107, 103, 133, 122, 118, 125, 114, 110, 95, 84, 80, 49, 38, 34, 119, 110, 105, 115, 106, 101, 91, 82, 77, 117, 108, 103, 85, 74, 72, 94, 83, 81, 66, 55, 53, 103, 92, 90, 106, 95, 93, 127, 116, 114, 120, 109, 105, 105, 94, 90, 72, 61, 57, 105, 94, 90, 120, 109, 105, 143, 132, 128, 95, 84, 78, 74, 63, 57, 141, 130, 124, 130, 119, 113, 125, 114, 108, 120, 109, 103, 121, 108, 102, 129, 116, 110, 138, 125, 119, 140, 127, 121, 135, 122, 116, 129, 116, 110, 81, 71, 62, 47, 37, 28, 27, 17, 8, 23, 13, 4, 20, 10, 1, 24, 14, 5, 26, 15, 9, 17, 6, 0, 11, 4, 0, 7, 2, 0, 6, 3, 0, 7, 4, 0, 10, 5, 1, 10, 5, 1, 9, 1, 0, 4, 0, 0, 7, 3, 0, 3, 2, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 2, 2, 4, 6, 6, 8, 5, 9, 10, 14, 23, 20, 11, 22, 16, 19, 29, 21, 31, 38, 31, 34, 39, 32, 32, 35, 26, 36, 36, 24, 47, 44, 29, 62, 55, 39, 65, 54, 36, 75, 58, 40, 82, 61, 42, 81, 56, 36, 79, 52, 31, 91, 63, 42, 111, 79, 56, 96, 59, 33, 100, 60, 34, 103, 63, 37, 102, 65, 38, 100, 65, 37, 95, 61, 33, 91, 57, 29, 86, 55, 26, 74, 44, 16, 55, 27, 3, 43, 16, 0, 40, 17, 3, 37, 17, 8, 33, 15, 11, 39, 25, 25, 52, 38, 37, 46, 25, 20, 54, 29, 24, 66, 40, 39, 84, 60, 60, 104, 78, 81, 111, 86, 90, 105, 84, 89, 96, 79, 87, 57, 44, 54, 69, 59, 68, 94, 84, 92, 115, 106, 109, 118, 110, 108, 100, 95, 91, 82, 77, 73, 73, 68, 62, 85, 80, 74, 105, 98, 92, 103, 96, 90, 91, 84, 78, 92, 85, 79, 95, 88, 82, 105, 98, 92, 126, 119, 113, 116, 109, 103, 122, 115, 109, 123, 116, 110, 111, 104, 98, 111, 104, 98, 139, 132, 126, 140, 133, 127, 106, 99, 93, 136, 129, 123, 125, 118, 112, 114, 107, 101, 111, 104, 98, 118, 111, 105, 129, 122, 116, 136, 129, 123, 138, 131, 125, 155, 148, 142, 153, 146, 140, 152, 145, 139, 156, 149, 143, 161, 154, 148, 163, 156, 150, 160, 153, 147, 156, 149, 143, 139, 134, 128, 123, 118, 112, 114, 107, 101, 110, 103, 97, 102, 95, 89, 97, 88, 83, 108, 99, 94, 128, 119, 114, 141, 132, 127, 152, 143, 138, 167, 158, 153, 172, 165, 159, 168, 161, 155, 159, 152, 146, 150, 145, 139, 146, 141, 137, 140, 135, 131, 149, 144, 141, 159, 154, 151, 164, 159, 156, 166, 161, 158, 169, 164, 161, 175, 170, 167, 180, 175, 172, 186, 181, 178, 185, 180, 177, 184, 179, 176, 183, 178, 175, 183, 178, 175, 184, 179, 176, 186, 181, 178, 187, 182, 178, 189, 181, 178, 188, 180, 177, 186, 178, 175, 185, 177, 174, 185, 177, 175, 187, 179, 176, 188, 183, 180, 190, 185, 182, 194, 189, 186, 196, 191, 188, 198, 193, 190, 199, 194, 191, 198, 194, 191, 197, 193, 190, 195, 191, 190, 194, 190, 189, 196, 192, 191, 197, 193, 192, 198, 194, 193, 200, 196, 195, 200, 199, 197, 204, 203, 201, 206, 206, 206, 207, 207, 207, 219, 219, 221, 223, 224, 226, 230, 231, 235, 234, 235, 239, 234, 238, 241, 234, 238, 241, 235, 238, 243, 236, 239, 244, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 234, 238, 241, 234, 238, 241, 234, 238, 241, 234, 238, 241, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 237, 240, 247, 237, 240, 247, 237, 240, 247, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 240, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 237, 240, 245, 236, 239, 244, 235, 240, 246, 235, 240, 246, 234, 239, 243, 236, 241, 244, 231, 235, 234, 224, 224, 224, 213, 212, 210, 204, 199, 196, 192, 184, 181, 180, 170, 168, 172, 162, 160, 179, 169, 167, 182, 172, 170, 185, 175, 173, 182, 173, 168, 173, 162, 158, 162, 149, 143, 152, 137, 130, 146, 131, 124, 132, 119, 111, 118, 108, 99, 103, 93, 84, 90, 79, 73, 79, 68, 62, 73, 62, 58, 80, 66, 63, 89, 75, 72, 84, 68, 68, 76, 61, 58, 79, 59, 60, 83, 63, 62, 77, 56, 55, 65, 44, 43, 70, 46, 46, 82, 61, 60, 95, 75, 76, 97, 78, 80, 99, 79, 81, 98, 78, 80, 96, 76, 78, 98, 78, 80, 105, 83, 86, 112, 90, 93, 113, 91, 94, 119, 97, 100, 126, 104, 107, 129, 107, 110, 129, 104, 107, 121, 99, 101, 119, 94, 97, 113, 93, 92, 115, 100, 95, 124, 111, 105, 136, 123, 117, 146, 131, 126, 150, 135, 130, 153, 138, 133, 158, 143, 138, 164, 146, 142, 149, 131, 127, 157, 139, 135, 165, 146, 142, 164, 143, 140, 156, 135, 132, 153, 129, 127, 154, 130, 128, 155, 135, 134, 158, 143, 140, 153, 139, 136, 151, 137, 134, 143, 132, 128, 122, 111, 107, 102, 91, 87, 103, 92, 88, 116, 107, 102, 138, 129, 124, 149, 140, 135, 139, 130, 125, 110, 101, 96, 97, 88, 83, 107, 98, 93, 108, 99, 94, 96, 87, 82, 72, 63, 58, 87, 78, 73, 112, 102, 100, 131, 122, 117, 120, 110, 108, 89, 80, 75, 80, 70, 68, 96, 87, 82, 78, 68, 66, 68, 61, 55, 97, 87, 85, 130, 123, 117, 124, 116, 113, 109, 102, 96, 118, 110, 107, 134, 127, 121, 142, 139, 132, 143, 140, 131, 127, 124, 115, 107, 104, 95, 97, 94, 87, 100, 95, 89, 120, 115, 109, 149, 144, 138, 158, 150, 147, 135, 127, 124, 107, 99, 96, 96, 88, 86, 109, 99, 98, 124, 114, 113, 122, 112, 111, 110, 100, 99, 153, 145, 142, 154, 147, 141, 144, 136, 133, 144, 137, 131, 159, 151, 148, 156, 149, 143, 144, 136, 133, 147, 140, 134, 145, 137, 134, 150, 143, 137, 150, 142, 139, 142, 135, 129, 143, 135, 132, 163, 156, 150, 161, 153, 150, 134, 126, 123, 141, 133, 130, 138, 133, 129, 138, 133, 129, 144, 139, 135, 152, 149, 144, 162, 159, 154, 169, 166, 161, 172, 169, 164, 165, 162, 157, 163, 160, 155, 155, 152, 147, 149, 144, 140, 150, 145, 141, 149, 144, 140, 133, 125, 122, 111, 104, 98, 114, 105, 100, 138, 129, 122, 133, 124, 117, 109, 100, 93, 117, 108, 101, 148, 139, 132, 168, 159, 154, 174, 165, 160, 143, 134, 129, 124, 115, 110, 107, 98, 93, 134, 125, 120, 145, 135, 133, 122, 112, 110, 118, 108, 106, 112, 102, 100, 91, 81, 80, 92, 84, 82, 116, 108, 106, 94, 89, 86, 114, 109, 106, 110, 105, 102, 61, 56, 53, 124, 119, 116, 130, 125, 122, 133, 128, 125, 71, 66, 63, 86, 81, 78, 111, 103, 101, 103, 95, 93, 124, 114, 113, 85, 75, 74, 112, 101, 99, 130, 119, 117, 108, 97, 95, 81, 70, 68, 131, 120, 116, 156, 145, 141, 131, 120, 114, 160, 149, 143, 147, 136, 130, 134, 123, 117, 160, 149, 145, 129, 118, 114, 143, 132, 130, 133, 122, 120, 133, 122, 120, 133, 122, 120, 147, 138, 133, 59, 50, 45, 149, 140, 135, 134, 125, 120, 132, 123, 118, 156, 147, 142, 134, 123, 121, 132, 121, 119, 85, 75, 73, 137, 127, 125, 119, 109, 107, 174, 166, 163, 195, 187, 184, 160, 152, 149, 194, 189, 186, 177, 173, 170, 142, 141, 139, 187, 186, 184, 206, 204, 205, 210, 209, 207, 222, 221, 219, 215, 215, 213, 206, 206, 204, 217, 217, 215, 219, 219, 217, 220, 220, 218, 223, 223, 221, 227, 229, 226, 232, 232, 230, 231, 233, 230, 228, 230, 227, 225, 227, 224, 225, 227, 224, 230, 232, 229, 230, 232, 231, 225, 227, 224, 222, 224, 221, 223, 225, 222, 224, 226, 223, 222, 224, 221, 225, 225, 223, 213, 215, 212, 200, 200, 198, 202, 204, 201, 214, 214, 212, 206, 208, 205, 197, 197, 195, 201, 202, 197, 210, 207, 202, 198, 193, 187, 197, 190, 184, 182, 175, 169, 157, 150, 144, 71, 62, 57, 168, 159, 154, 189, 180, 175, 177, 166, 162, 183, 172, 168, 122, 113, 108, 132, 123, 118, 191, 182, 177, 136, 127, 122, 147, 138, 133, 122, 113, 108, 140, 129, 125, 145, 134, 130, 117, 106, 102, 104, 93, 89, 158, 147, 143, 151, 140, 136, 105, 94, 90, 150, 139, 135, 141, 130, 126, 116, 105, 101, 105, 94, 90, 154, 143, 139, 151, 140, 136, 125, 114, 110, 137, 126, 122, 99, 88, 84, 143, 132, 128, 168, 157, 153, 115, 104, 100, 138, 127, 123, 137, 126, 122, 146, 135, 131, 142, 131, 127, 127, 116, 112, 98, 87, 83, 119, 108, 104, 106, 95, 91, 48, 37, 33, 89, 78, 74, 137, 126, 122, 95, 84, 80, 106, 95, 91, 111, 101, 99, 95, 85, 83, 66, 56, 54, 78, 68, 66, 117, 106, 102, 95, 84, 80, 130, 119, 115, 128, 117, 113, 94, 83, 77, 124, 113, 107, 128, 115, 109, 107, 94, 88, 110, 97, 91, 130, 117, 111, 137, 124, 118, 133, 120, 114, 124, 111, 103, 124, 111, 103, 118, 103, 98, 142, 127, 122, 139, 121, 119, 109, 91, 87, 114, 96, 92, 113, 98, 91, 62, 49, 40, 37, 25, 13, 16, 7, 0, 17, 7, 0, 25, 13, 1, 23, 10, 1, 20, 7, 0, 20, 7, 1, 18, 7, 5, 6, 0, 0, 2, 1, 0, 12, 13, 7, 15, 12, 7, 4, 0, 0, 7, 0, 0, 12, 4, 1, 1, 0, 0, 0, 3, 0, 0, 6, 3, 0, 4, 5, 0, 3, 6, 0, 9, 14, 0, 13, 19, 0, 15, 20, 16, 34, 36, 17, 35, 35, 18, 36, 36, 21, 40, 38, 23, 42, 40, 29, 46, 40, 34, 47, 38, 38, 48, 37, 47, 53, 39, 54, 55, 39, 67, 60, 42, 79, 66, 49, 89, 70, 53, 94, 71, 55, 94, 66, 52, 90, 63, 46, 103, 76, 59, 100, 73, 56, 103, 76, 59, 113, 86, 69, 114, 87, 68, 108, 80, 59, 106, 78, 54, 113, 83, 55, 91, 57, 29, 69, 35, 7, 60, 24, 0, 53, 22, 4, 36, 12, 2, 25, 10, 5, 25, 19, 21, 31, 22, 25, 31, 12, 6, 38, 11, 4, 75, 47, 43, 107, 79, 76, 106, 77, 73, 110, 82, 79, 116, 91, 94, 98, 81, 87, 99, 91, 104, 103, 101, 114, 90, 87, 98, 93, 88, 94, 124, 115, 116, 125, 117, 115, 100, 96, 95, 94, 93, 91, 114, 109, 105, 94, 89, 83, 84, 79, 73, 85, 80, 74, 70, 65, 59, 48, 43, 37, 54, 49, 43, 79, 74, 68, 86, 81, 75, 78, 73, 67, 83, 78, 72, 106, 101, 95, 123, 118, 112, 121, 116, 110, 110, 105, 99, 103, 98, 92, 118, 113, 109, 115, 110, 106, 115, 110, 106, 118, 113, 109, 121, 116, 112, 129, 124, 120, 148, 143, 139, 166, 161, 157, 162, 157, 153, 162, 157, 153, 163, 158, 154, 163, 158, 154, 160, 155, 151, 153, 148, 144, 146, 141, 137, 141, 136, 132, 133, 128, 124, 125, 120, 116, 114, 109, 105, 105, 100, 96, 103, 98, 94, 113, 105, 102, 127, 119, 116, 137, 129, 126, 136, 128, 125, 143, 135, 132, 148, 140, 137, 142, 137, 133, 135, 130, 126, 132, 127, 123, 138, 133, 129, 145, 140, 136, 159, 154, 150, 164, 159, 155, 172, 167, 163, 177, 172, 168, 178, 173, 169, 179, 174, 170, 181, 176, 172, 182, 177, 173, 178, 173, 169, 181, 176, 172, 185, 180, 176, 186, 181, 177, 185, 180, 176, 183, 178, 174, 183, 178, 174, 184, 179, 175, 182, 174, 172, 185, 177, 175, 190, 182, 180, 195, 187, 185, 195, 189, 189, 195, 190, 187, 193, 187, 187, 192, 186, 186, 196, 190, 190, 197, 191, 191, 197, 193, 192, 198, 194, 193, 199, 195, 194, 199, 195, 194, 198, 194, 193, 198, 194, 193, 197, 196, 194, 199, 198, 196, 200, 199, 197, 200, 199, 197, 200, 198, 199, 202, 200, 201, 204, 204, 206, 207, 207, 209, 219, 220, 224, 224, 225, 229, 230, 231, 235, 232, 236, 239, 235, 238, 243, 236, 239, 244, 238, 243, 247, 240, 245, 249, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 234, 238, 241, 234, 238, 241, 234, 238, 241, 234, 238, 241, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 237, 240, 247, 237, 240, 247, 237, 240, 247, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 240, 241, 245, 235, 236, 238, 229, 229, 231, 219, 219, 219, 209, 207, 208, 196, 195, 193, 185, 181, 180, 177, 172, 169, 180, 172, 170, 183, 175, 172, 187, 177, 175, 187, 176, 172, 181, 167, 164, 171, 158, 152, 161, 148, 142, 156, 143, 135, 143, 130, 122, 126, 113, 104, 101, 91, 82, 83, 72, 66, 70, 59, 55, 67, 56, 52, 75, 64, 62, 86, 75, 73, 91, 77, 76, 81, 67, 66, 81, 65, 65, 90, 72, 72, 89, 69, 68, 77, 57, 56, 73, 52, 51, 79, 58, 57, 90, 70, 71, 91, 71, 73, 93, 73, 75, 93, 73, 75, 93, 71, 74, 94, 72, 74, 95, 73, 76, 97, 75, 77, 105, 83, 85, 113, 92, 91, 126, 101, 104, 135, 111, 111, 137, 113, 113, 135, 111, 111, 133, 109, 109, 130, 109, 108, 127, 112, 107, 130, 119, 113, 139, 126, 120, 144, 131, 125, 146, 131, 126, 146, 131, 126, 148, 130, 126, 148, 130, 126, 152, 133, 129, 154, 135, 131, 158, 137, 134, 163, 139, 137, 164, 140, 138, 162, 138, 136, 157, 131, 130, 150, 129, 126, 149, 134, 131, 148, 134, 131, 148, 134, 131, 148, 134, 131, 146, 135, 131, 139, 128, 124, 123, 112, 108, 108, 97, 93, 102, 93, 88, 124, 115, 110, 142, 133, 128, 136, 127, 122, 112, 103, 98, 94, 85, 80, 92, 83, 78, 98, 89, 84, 81, 72, 67, 95, 86, 81, 99, 90, 85, 96, 87, 82, 104, 95, 90, 114, 105, 100, 109, 100, 95, 97, 88, 83, 100, 91, 86, 75, 66, 61, 71, 62, 57, 88, 79, 74, 107, 98, 93, 129, 120, 115, 142, 133, 128, 138, 131, 125, 144, 141, 132, 139, 139, 129, 132, 132, 122, 128, 125, 116, 114, 111, 104, 90, 87, 80, 86, 81, 75, 106, 101, 95, 130, 122, 119, 142, 134, 131, 147, 139, 137, 139, 131, 129, 128, 118, 119, 123, 113, 114, 125, 113, 115, 126, 116, 115, 109, 101, 98, 134, 127, 121, 141, 134, 128, 136, 129, 123, 140, 133, 127, 145, 138, 132, 147, 140, 134, 155, 148, 142, 169, 162, 156, 154, 147, 141, 147, 140, 134, 142, 135, 129, 132, 125, 119, 134, 127, 121, 145, 138, 132, 150, 143, 137, 162, 154, 151, 139, 131, 128, 117, 109, 106, 115, 110, 106, 135, 130, 126, 155, 152, 147, 164, 159, 155, 162, 159, 154, 157, 152, 148, 171, 168, 163, 177, 172, 168, 162, 157, 153, 145, 140, 136, 144, 136, 133, 151, 143, 140, 158, 149, 144, 115, 106, 101, 133, 124, 117, 133, 124, 117, 114, 105, 98, 102, 93, 86, 101, 92, 85, 113, 104, 99, 131, 122, 117, 173, 164, 159, 155, 146, 141, 111, 102, 97, 103, 94, 89, 123, 113, 111, 144, 134, 132, 154, 144, 142, 130, 120, 118, 126, 116, 115, 95, 85, 84, 111, 103, 101, 99, 91, 89, 85, 80, 77, 97, 92, 89, 85, 80, 77, 94, 89, 86, 120, 115, 112, 139, 134, 131, 83, 78, 75, 71, 66, 63, 102, 94, 92, 107, 99, 97, 117, 107, 106, 105, 95, 94, 101, 90, 88, 123, 112, 110, 118, 107, 105, 97, 86, 84, 126, 115, 111, 141, 130, 126, 129, 118, 112, 163, 152, 146, 140, 129, 123, 114, 103, 97, 134, 123, 119, 124, 113, 109, 142, 131, 129, 129, 118, 116, 133, 122, 120, 145, 135, 133, 151, 142, 137, 62, 55, 49, 139, 130, 125, 127, 118, 113, 132, 123, 118, 154, 145, 140, 127, 116, 114, 130, 119, 117, 101, 91, 89, 145, 135, 133, 143, 135, 132, 187, 179, 176, 191, 186, 183, 157, 152, 149, 184, 180, 177, 188, 187, 183, 156, 155, 153, 192, 192, 190, 208, 208, 206, 211, 211, 209, 224, 224, 222, 218, 218, 216, 206, 206, 204, 214, 214, 212, 220, 220, 218, 221, 221, 219, 223, 223, 221, 228, 228, 226, 232, 232, 230, 233, 233, 231, 230, 230, 228, 227, 227, 225, 222, 224, 221, 227, 229, 226, 229, 231, 228, 225, 227, 224, 224, 226, 223, 227, 229, 226, 229, 231, 228, 227, 229, 226, 224, 226, 223, 215, 217, 214, 203, 205, 202, 205, 207, 204, 215, 217, 214, 210, 212, 209, 201, 203, 200, 206, 207, 202, 207, 206, 201, 199, 196, 189, 189, 184, 178, 165, 160, 154, 162, 155, 149, 69, 62, 56, 129, 120, 115, 180, 171, 166, 154, 143, 139, 164, 153, 149, 173, 164, 159, 143, 134, 129, 161, 152, 147, 168, 159, 154, 157, 150, 144, 94, 85, 80, 125, 114, 110, 178, 167, 163, 169, 158, 154, 92, 81, 77, 97, 86, 82, 153, 142, 138, 151, 140, 136, 139, 128, 124, 150, 139, 135, 99, 88, 84, 117, 106, 102, 121, 110, 106, 119, 108, 104, 128, 117, 113, 106, 95, 91, 116, 105, 101, 127, 116, 112, 152, 141, 137, 113, 102, 98, 141, 130, 126, 144, 133, 129, 146, 135, 131, 134, 123, 119, 112, 101, 97, 117, 106, 102, 118, 107, 103, 125, 114, 110, 71, 60, 56, 66, 55, 51, 118, 107, 103, 119, 108, 104, 123, 112, 108, 129, 119, 117, 109, 99, 97, 83, 73, 71, 76, 66, 64, 123, 112, 108, 122, 111, 107, 133, 122, 118, 112, 101, 97, 119, 108, 102, 127, 116, 110, 114, 101, 95, 100, 87, 81, 119, 106, 100, 140, 127, 121, 128, 115, 109, 106, 93, 87, 128, 115, 109, 103, 90, 84, 111, 96, 91, 137, 119, 115, 113, 94, 90, 105, 86, 82, 118, 99, 93, 76, 57, 50, 39, 25, 14, 29, 17, 3, 21, 12, 0, 21, 12, 0, 21, 11, 0, 21, 8, 0, 21, 8, 0, 23, 9, 6, 17, 3, 3, 10, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 4, 0, 0, 4, 2, 3, 0, 3, 2, 0, 13, 12, 0, 19, 23, 0, 20, 24, 0, 19, 26, 0, 22, 30, 0, 23, 33, 0, 21, 30, 12, 37, 44, 13, 38, 43, 14, 39, 44, 17, 42, 46, 22, 47, 51, 29, 53, 53, 36, 58, 55, 41, 61, 52, 46, 62, 49, 51, 62, 46, 60, 63, 46, 70, 67, 48, 82, 71, 53, 90, 74, 58, 94, 75, 60, 96, 74, 60, 98, 79, 65, 96, 77, 63, 101, 81, 70, 113, 91, 78, 116, 94, 81, 112, 89, 73, 113, 88, 68, 120, 92, 68, 109, 78, 50, 91, 55, 29, 77, 39, 16, 66, 31, 12, 45, 18, 7, 33, 16, 9, 25, 16, 17, 19, 10, 11, 33, 14, 8, 48, 23, 16, 84, 59, 54, 110, 82, 78, 104, 75, 69, 104, 75, 71, 118, 94, 94, 122, 105, 111, 110, 106, 120, 118, 117, 131, 104, 102, 115, 94, 91, 98, 110, 101, 102, 104, 96, 94, 83, 81, 82, 85, 83, 84, 103, 100, 95, 95, 90, 84, 97, 92, 86, 106, 101, 95, 104, 99, 93, 93, 88, 82, 98, 93, 87, 114, 109, 103, 96, 91, 85, 112, 107, 101, 133, 128, 122, 141, 136, 130, 128, 123, 117, 114, 109, 103, 118, 113, 107, 133, 128, 122, 145, 140, 136, 140, 135, 131, 136, 131, 127, 140, 135, 131, 149, 144, 140, 157, 152, 148, 158, 153, 149, 156, 151, 147, 107, 102, 98, 119, 114, 110, 133, 128, 124, 142, 137, 133, 145, 140, 136, 148, 143, 139, 153, 148, 144, 158, 153, 149, 142, 137, 133, 135, 130, 126, 123, 118, 114, 110, 105, 101, 103, 98, 94, 105, 100, 96, 112, 107, 103, 119, 114, 110, 110, 105, 101, 124, 119, 115, 139, 134, 130, 146, 141, 137, 148, 143, 139, 154, 149, 145, 167, 162, 158, 179, 174, 170, 172, 167, 163, 172, 167, 163, 172, 167, 163, 174, 169, 165, 177, 172, 168, 180, 175, 171, 184, 179, 175, 186, 181, 177, 183, 178, 174, 183, 178, 174, 181, 176, 172, 178, 173, 169, 175, 170, 166, 174, 169, 165, 176, 171, 167, 179, 174, 170, 184, 176, 174, 186, 177, 178, 189, 180, 181, 191, 182, 183, 190, 184, 184, 190, 184, 184, 190, 184, 184, 189, 183, 183, 194, 188, 188, 196, 190, 190, 196, 192, 191, 198, 194, 193, 200, 196, 195, 200, 196, 195, 200, 196, 195, 200, 196, 195, 198, 197, 195, 200, 199, 197, 201, 200, 198, 201, 200, 198, 201, 199, 200, 203, 201, 202, 205, 205, 207, 208, 208, 210, 219, 220, 224, 224, 225, 229, 228, 232, 235, 232, 236, 239, 235, 238, 243, 236, 239, 244, 238, 243, 247, 240, 245, 249, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 234, 238, 241, 234, 238, 241, 234, 238, 241, 234, 238, 241, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 237, 240, 247, 237, 240, 247, 237, 240, 247, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 237, 240, 245, 236, 239, 244, 236, 239, 244, 236, 239, 244, 240, 241, 245, 238, 239, 241, 234, 235, 237, 228, 230, 229, 221, 221, 221, 209, 208, 206, 198, 194, 193, 189, 185, 182, 182, 177, 174, 186, 178, 175, 190, 180, 178, 189, 180, 175, 186, 175, 171, 179, 168, 164, 171, 160, 156, 168, 155, 149, 167, 154, 146, 149, 136, 128, 126, 113, 107, 106, 93, 87, 89, 78, 74, 80, 69, 65, 81, 70, 68, 87, 76, 74, 111, 97, 96, 100, 86, 85, 97, 81, 81, 105, 89, 89, 108, 90, 88, 93, 75, 73, 79, 59, 58, 72, 52, 51, 81, 61, 62, 80, 60, 61, 81, 61, 62, 84, 64, 65, 89, 67, 69, 88, 67, 66, 83, 61, 63, 78, 57, 56, 85, 64, 63, 95, 74, 71, 111, 87, 87, 123, 99, 97, 132, 108, 106, 136, 112, 110, 139, 115, 113, 139, 118, 115, 135, 120, 115, 135, 122, 116, 138, 123, 118, 142, 127, 122, 144, 129, 124, 143, 128, 123, 141, 123, 119, 137, 119, 115, 142, 123, 119, 137, 118, 114, 134, 115, 111, 142, 121, 118, 152, 131, 128, 154, 133, 130, 147, 123, 121, 133, 114, 110, 137, 122, 119, 140, 126, 123, 137, 123, 120, 133, 119, 116, 137, 126, 122, 143, 132, 128, 129, 118, 114, 106, 95, 91, 82, 73, 68, 91, 82, 77, 114, 105, 100, 130, 121, 116, 117, 108, 103, 92, 83, 78, 91, 82, 77, 108, 99, 94, 119, 109, 107, 111, 101, 99, 100, 90, 88, 95, 85, 83, 101, 91, 89, 110, 100, 98, 111, 101, 99, 103, 93, 91, 99, 89, 87, 103, 93, 91, 105, 95, 93, 98, 88, 86, 99, 89, 87, 124, 114, 112, 145, 135, 133, 143, 136, 130, 146, 142, 133, 138, 135, 126, 136, 133, 124, 147, 143, 134, 143, 138, 132, 115, 110, 104, 103, 98, 94, 121, 116, 112, 75, 67, 64, 95, 87, 84, 124, 116, 114, 152, 144, 142, 170, 162, 160, 169, 161, 159, 148, 138, 139, 125, 115, 114, 119, 111, 108, 133, 126, 120, 139, 132, 126, 136, 129, 123, 130, 123, 117, 121, 114, 108, 121, 114, 108, 132, 125, 119, 151, 144, 138, 142, 135, 129, 147, 140, 134, 154, 147, 141, 146, 139, 133, 141, 134, 128, 145, 138, 132, 145, 138, 132, 146, 136, 134, 141, 131, 129, 133, 123, 121, 127, 119, 116, 131, 123, 120, 143, 138, 134, 163, 155, 152, 173, 168, 164, 175, 167, 164, 163, 158, 154, 153, 145, 142, 149, 141, 138, 160, 152, 149, 172, 162, 160, 170, 160, 158, 161, 152, 147, 163, 154, 149, 153, 144, 137, 135, 126, 121, 122, 113, 108, 110, 101, 96, 93, 84, 79, 94, 85, 80, 115, 106, 101, 143, 133, 131, 158, 148, 146, 137, 127, 125, 117, 107, 105, 105, 95, 93, 112, 102, 100, 137, 127, 125, 133, 123, 121, 155, 145, 144, 127, 117, 116, 115, 107, 105, 103, 95, 93, 78, 73, 70, 93, 88, 85, 109, 104, 101, 84, 79, 76, 103, 98, 95, 140, 135, 132, 112, 107, 104, 73, 68, 65, 103, 95, 93, 127, 119, 117, 121, 111, 110, 131, 121, 120, 111, 100, 98, 120, 109, 107, 125, 114, 112, 119, 108, 106, 135, 124, 120, 145, 134, 130, 141, 130, 124, 164, 153, 147, 144, 133, 127, 99, 88, 82, 106, 95, 91, 122, 111, 107, 142, 131, 129, 120, 109, 107, 127, 116, 114, 156, 146, 144, 147, 138, 133, 73, 66, 60, 137, 128, 123, 126, 117, 112, 129, 120, 115, 145, 136, 131, 114, 103, 101, 135, 124, 122, 118, 108, 106, 137, 127, 125, 154, 146, 143, 190, 182, 179, 194, 189, 186, 169, 164, 161, 177, 173, 170, 196, 195, 191, 174, 173, 171, 199, 199, 197, 209, 209, 207, 214, 214, 212, 227, 227, 225, 222, 222, 220, 209, 209, 207, 211, 211, 209, 222, 222, 220, 222, 222, 220, 225, 225, 223, 229, 229, 227, 233, 233, 231, 234, 234, 232, 232, 232, 230, 229, 229, 227, 219, 221, 218, 225, 227, 224, 228, 230, 227, 226, 228, 225, 226, 228, 225, 231, 233, 230, 234, 236, 233, 233, 235, 232, 224, 226, 223, 218, 220, 217, 207, 209, 206, 208, 210, 207, 218, 220, 217, 214, 216, 213, 207, 209, 206, 212, 213, 208, 211, 208, 203, 206, 201, 195, 199, 194, 188, 164, 159, 153, 179, 172, 166, 90, 81, 76, 94, 83, 79, 165, 154, 150, 155, 144, 140, 136, 125, 121, 200, 189, 185, 151, 140, 136, 121, 112, 107, 172, 163, 158, 169, 160, 155, 112, 103, 98, 81, 70, 66, 154, 143, 139, 188, 177, 173, 115, 104, 100, 79, 68, 64, 141, 130, 126, 162, 151, 147, 120, 109, 105, 150, 139, 135, 114, 103, 99, 125, 114, 110, 116, 105, 101, 119, 108, 104, 130, 119, 115, 112, 101, 97, 138, 127, 123, 123, 112, 108, 149, 138, 134, 122, 111, 107, 138, 127, 123, 138, 127, 123, 138, 127, 123, 128, 117, 113, 100, 89, 85, 111, 100, 96, 127, 116, 112, 143, 132, 128, 97, 86, 82, 72, 61, 57, 103, 92, 88, 115, 104, 100, 125, 114, 110, 116, 106, 104, 119, 109, 107, 126, 116, 114, 87, 77, 75, 113, 102, 98, 126, 115, 111, 130, 119, 115, 122, 111, 107, 126, 115, 109, 124, 113, 107, 110, 97, 91, 108, 95, 89, 133, 120, 114, 143, 130, 124, 115, 102, 96, 84, 71, 65, 117, 106, 100, 102, 89, 83, 112, 97, 92, 127, 110, 103, 104, 85, 78, 101, 81, 74, 96, 76, 67, 37, 19, 9, 28, 12, 0, 34, 20, 7, 36, 24, 10, 27, 17, 5, 19, 9, 0, 17, 7, 0, 18, 8, 0, 21, 7, 4, 15, 0, 0, 19, 4, 9, 13, 9, 10, 3, 5, 4, 2, 3, 5, 4, 8, 11, 2, 5, 12, 0, 3, 9, 0, 13, 21, 0, 26, 33, 0, 37, 48, 1, 41, 53, 4, 40, 54, 6, 42, 56, 4, 40, 54, 0, 36, 50, 8, 42, 54, 8, 40, 51, 10, 40, 50, 13, 41, 52, 18, 47, 53, 27, 55, 58, 37, 63, 62, 44, 67, 61, 49, 69, 58, 51, 68, 52, 55, 68, 50, 61, 69, 48, 71, 73, 52, 85, 80, 60, 95, 87, 66, 102, 91, 71, 100, 84, 68, 101, 84, 68, 108, 89, 75, 117, 98, 84, 121, 102, 88, 122, 100, 87, 122, 101, 84, 126, 103, 85, 122, 95, 74, 110, 79, 58, 96, 63, 44, 79, 46, 29, 57, 29, 17, 47, 25, 14, 35, 20, 13, 18, 5, 0, 40, 21, 15, 60, 39, 34, 86, 67, 63, 102, 81, 78, 104, 79, 75, 108, 83, 79, 123, 102, 101, 137, 122, 127, 121, 115, 127, 128, 128, 140, 115, 113, 124, 97, 92, 98, 97, 87, 86, 88, 80, 77, 77, 76, 74, 88, 87, 85, 141, 138, 133, 134, 129, 123, 128, 123, 117, 123, 118, 112, 115, 110, 104, 105, 100, 94, 100, 95, 89, 102, 97, 91, 102, 97, 91, 104, 99, 93, 110, 105, 99, 114, 109, 103, 109, 104, 98, 103, 98, 92, 105, 100, 94, 112, 107, 101, 120, 115, 111, 136, 131, 127, 143, 138, 134, 131, 126, 122, 118, 113, 109, 120, 115, 111, 128, 123, 119, 132, 127, 123, 148, 143, 139, 147, 142, 138, 146, 141, 137, 145, 140, 136, 147, 142, 138, 149, 144, 140, 152, 147, 143, 153, 148, 144, 135, 130, 126, 133, 128, 124, 129, 124, 120, 125, 120, 116, 124, 119, 115, 128, 123, 119, 136, 131, 127, 142, 137, 133, 150, 145, 141, 154, 149, 145, 160, 155, 151, 166, 161, 157, 171, 166, 162, 173, 168, 164, 173, 168, 164, 173, 168, 164, 182, 177, 173, 175, 170, 166, 168, 163, 159, 167, 162, 158, 172, 167, 163, 180, 175, 171, 184, 179, 175, 186, 181, 177, 182, 177, 173, 180, 175, 171, 176, 171, 167, 172, 167, 163, 169, 164, 160, 171, 166, 162, 176, 171, 167, 181, 176, 172, 188, 180, 178, 188, 180, 178, 187, 179, 177, 186, 178, 176, 184, 179, 176, 185, 180, 177, 185, 180, 177, 186, 181, 178, 191, 186, 183, 193, 188, 185, 194, 190, 187, 197, 193, 190, 200, 196, 193, 201, 197, 194, 202, 198, 195, 202, 198, 195, 199, 198, 196, 201, 200, 198, 203, 202, 200, 203, 202, 200, 203, 201, 202, 204, 202, 203, 207, 207, 209, 210, 210, 212, 219, 220, 224, 224, 225, 229, 228, 232, 235, 232, 236, 239, 235, 238, 243, 236, 239, 244, 238, 243, 247, 240, 245, 249, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 234, 238, 241, 234, 238, 241, 234, 238, 241, 234, 238, 241, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 237, 240, 247, 237, 240, 247, 237, 240, 247, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 237, 240, 245, 236, 239, 244, 236, 239, 244, 237, 241, 244, 238, 239, 243, 237, 238, 242, 235, 236, 238, 231, 231, 233, 220, 220, 220, 208, 206, 207, 201, 197, 196, 188, 184, 183, 189, 184, 181, 191, 183, 181, 191, 181, 179, 188, 178, 176, 183, 173, 171, 175, 165, 163, 171, 160, 156, 163, 150, 144, 154, 141, 135, 143, 130, 124, 135, 122, 116, 122, 111, 107, 107, 96, 92, 97, 86, 84, 94, 83, 81, 119, 105, 104, 108, 94, 93, 105, 89, 89, 116, 100, 100, 123, 108, 105, 114, 96, 94, 93, 75, 73, 79, 61, 59, 70, 50, 51, 67, 47, 48, 68, 48, 49, 76, 56, 55, 86, 65, 64, 86, 65, 64, 77, 56, 55, 67, 46, 43, 65, 44, 41, 72, 51, 48, 86, 62, 60, 98, 74, 72, 109, 85, 83, 121, 97, 95, 131, 107, 105, 136, 115, 112, 136, 118, 114, 133, 118, 113, 134, 119, 114, 139, 124, 119, 145, 130, 125, 147, 132, 127, 145, 127, 123, 140, 122, 118, 133, 114, 110, 125, 106, 102, 118, 99, 95, 123, 104, 100, 134, 115, 111, 139, 120, 116, 134, 115, 111, 126, 108, 104, 131, 116, 113, 134, 120, 117, 129, 115, 112, 116, 102, 99, 108, 97, 93, 113, 102, 98, 120, 109, 105, 122, 111, 107, 105, 96, 91, 87, 78, 73, 87, 78, 73, 109, 100, 95, 120, 111, 106, 106, 97, 92, 89, 80, 75, 85, 76, 71, 112, 102, 100, 121, 111, 109, 123, 113, 111, 106, 96, 94, 91, 81, 79, 97, 87, 85, 103, 93, 91, 94, 84, 82, 81, 71, 69, 112, 102, 100, 137, 127, 125, 135, 125, 123, 125, 115, 113, 130, 120, 118, 141, 131, 129, 141, 133, 130, 143, 138, 132, 133, 129, 120, 124, 120, 111, 130, 126, 117, 138, 131, 125, 125, 120, 114, 120, 115, 111, 134, 129, 125, 119, 111, 108, 98, 90, 87, 79, 71, 69, 90, 82, 80, 126, 118, 116, 156, 148, 146, 155, 146, 147, 139, 131, 129, 137, 129, 126, 119, 112, 106, 115, 108, 102, 132, 125, 119, 142, 135, 129, 130, 123, 117, 125, 118, 112, 136, 129, 123, 130, 123, 117, 138, 131, 125, 150, 143, 137, 151, 144, 138, 148, 141, 135, 151, 144, 138, 138, 131, 125, 109, 100, 95, 131, 120, 118, 146, 135, 133, 160, 149, 147, 159, 149, 147, 147, 137, 135, 137, 129, 126, 140, 132, 129, 148, 140, 137, 141, 133, 130, 153, 145, 142, 161, 153, 150, 155, 145, 143, 143, 133, 131, 142, 131, 129, 154, 143, 141, 166, 155, 153, 161, 152, 147, 147, 138, 131, 134, 125, 120, 140, 131, 126, 146, 137, 132, 122, 113, 108, 92, 83, 78, 85, 76, 71, 89, 79, 77, 117, 107, 105, 139, 129, 127, 157, 147, 145, 129, 119, 117, 89, 79, 77, 102, 92, 90, 120, 110, 108, 137, 127, 126, 154, 144, 143, 120, 112, 110, 102, 94, 92, 91, 86, 83, 90, 85, 82, 113, 108, 105, 97, 92, 89, 85, 80, 77, 121, 116, 113, 137, 132, 129, 90, 85, 82, 100, 92, 90, 138, 130, 128, 125, 115, 114, 131, 121, 120, 131, 120, 118, 116, 105, 103, 112, 101, 99, 123, 112, 110, 143, 132, 128, 154, 143, 139, 151, 140, 134, 151, 140, 134, 156, 145, 139, 99, 88, 82, 91, 80, 76, 127, 116, 112, 142, 131, 129, 111, 100, 98, 115, 104, 102, 153, 143, 141, 142, 133, 128, 89, 82, 76, 145, 136, 131, 135, 126, 121, 126, 117, 112, 136, 127, 122, 104, 93, 91, 137, 126, 124, 123, 113, 111, 114, 104, 102, 143, 135, 132, 183, 175, 172, 199, 194, 191, 189, 184, 181, 174, 170, 167, 193, 192, 188, 186, 185, 183, 199, 199, 197, 206, 206, 204, 214, 214, 212, 229, 229, 227, 226, 226, 224, 213, 213, 211, 211, 211, 209, 225, 225, 223, 225, 225, 223, 226, 226, 224, 230, 230, 228, 234, 234, 232, 235, 235, 233, 234, 234, 232, 232, 232, 230, 222, 224, 221, 228, 230, 227, 231, 233, 230, 229, 231, 228, 228, 230, 227, 233, 235, 232, 235, 237, 234, 235, 237, 234, 223, 225, 222, 221, 223, 220, 211, 213, 210, 209, 211, 208, 219, 221, 218, 217, 219, 216, 211, 213, 210, 215, 216, 211, 206, 203, 198, 201, 196, 190, 210, 205, 199, 171, 164, 158, 184, 175, 170, 120, 111, 106, 86, 75, 71, 138, 127, 123, 161, 150, 146, 103, 92, 88, 156, 145, 141, 163, 152, 148, 125, 114, 110, 145, 136, 131, 163, 154, 149, 151, 142, 137, 80, 69, 65, 103, 92, 88, 147, 136, 132, 149, 138, 134, 121, 110, 106, 124, 113, 109, 139, 128, 124, 135, 124, 120, 117, 106, 102, 132, 121, 117, 105, 94, 90, 122, 111, 107, 129, 118, 114, 107, 96, 92, 127, 116, 112, 125, 114, 110, 127, 116, 112, 161, 150, 146, 143, 132, 128, 127, 116, 112, 117, 106, 102, 125, 114, 110, 128, 117, 113, 98, 87, 83, 77, 66, 62, 128, 117, 113, 138, 127, 123, 109, 98, 94, 112, 101, 97, 109, 98, 94, 96, 85, 81, 119, 108, 104, 100, 90, 88, 112, 102, 100, 146, 136, 134, 97, 87, 85, 110, 99, 95, 124, 113, 109, 124, 113, 109, 135, 124, 120, 114, 103, 97, 121, 110, 104, 122, 109, 103, 127, 114, 108, 141, 128, 122, 134, 121, 115, 106, 93, 87, 85, 72, 66, 105, 94, 90, 124, 110, 107, 123, 108, 101, 120, 101, 94, 115, 95, 84, 89, 67, 54, 53, 31, 18, 29, 10, 0, 40, 22, 10, 47, 33, 20, 47, 35, 23, 30, 20, 10, 18, 9, 0, 15, 8, 0, 13, 6, 0, 9, 0, 0, 18, 3, 10, 16, 3, 12, 5, 4, 9, 0, 2, 5, 0, 5, 8, 1, 12, 18, 4, 18, 29, 0, 21, 35, 0, 35, 50, 0, 48, 63, 3, 58, 78, 6, 61, 81, 10, 61, 82, 15, 62, 82, 14, 61, 79, 14, 57, 74, 10, 52, 68, 10, 47, 63, 7, 43, 59, 7, 40, 55, 12, 42, 53, 19, 48, 56, 26, 54, 58, 33, 59, 56, 43, 69, 60, 46, 70, 56, 50, 71, 52, 57, 75, 53, 65, 79, 54, 78, 86, 62, 91, 95, 70, 102, 100, 77, 103, 92, 72, 108, 93, 74, 115, 98, 82, 123, 104, 90, 127, 108, 94, 127, 108, 94, 126, 108, 94, 128, 109, 94, 121, 100, 83, 121, 95, 80, 116, 87, 71, 96, 64, 49, 69, 40, 26, 61, 33, 19, 51, 28, 14, 31, 11, 0, 43, 24, 17, 67, 49, 45, 85, 69, 69, 93, 77, 77, 109, 89, 88, 125, 104, 101, 131, 111, 112, 130, 115, 118, 117, 111, 121, 125, 123, 134, 119, 116, 123, 110, 104, 108, 117, 107, 105, 124, 115, 110, 130, 126, 125, 144, 143, 141, 128, 125, 120, 123, 118, 112, 112, 107, 101, 101, 96, 90, 98, 93, 87, 101, 96, 90, 103, 98, 92, 100, 95, 89, 129, 124, 118, 125, 120, 114, 124, 119, 113, 127, 122, 116, 128, 123, 117, 121, 116, 110, 109, 104, 98, 100, 95, 89, 102, 97, 93, 126, 121, 117, 137, 132, 128, 123, 118, 114, 112, 107, 103, 124, 119, 115, 143, 138, 134, 153, 148, 144, 148, 143, 139, 130, 125, 121, 113, 108, 104, 116, 111, 107, 134, 129, 125, 149, 144, 140, 151, 146, 142, 146, 141, 137, 134, 129, 125, 139, 134, 130, 145, 140, 136, 151, 146, 142, 157, 152, 148, 165, 160, 156, 173, 168, 164, 179, 174, 170, 175, 170, 166, 168, 163, 159, 165, 160, 156, 174, 169, 165, 188, 183, 179, 191, 186, 182, 180, 175, 171, 167, 162, 158, 178, 173, 169, 169, 164, 160, 161, 156, 152, 162, 157, 153, 170, 165, 161, 180, 175, 171, 183, 178, 174, 183, 178, 174, 177, 172, 168, 177, 172, 168, 175, 170, 166, 174, 169, 165, 174, 169, 165, 178, 173, 169, 185, 180, 176, 190, 185, 181, 192, 184, 182, 190, 182, 180, 186, 178, 176, 183, 175, 173, 180, 175, 172, 182, 177, 174, 184, 179, 176, 185, 180, 177, 187, 182, 179, 189, 184, 181, 191, 187, 184, 195, 191, 188, 198, 194, 191, 201, 197, 194, 202, 198, 195, 202, 198, 195, 201, 200, 198, 203, 202, 200, 204, 203, 201, 204, 203, 201, 204, 202, 203, 205, 203, 204, 208, 208, 210, 211, 211, 213, 219, 220, 224, 224, 225, 229, 228, 232, 235, 232, 236, 239, 235, 238, 243, 236, 239, 244, 238, 243, 247, 240, 245, 249, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 234, 238, 241, 234, 238, 241, 234, 238, 241, 234, 238, 241, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 237, 240, 247, 237, 240, 247, 237, 240, 247, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 237, 240, 245, 235, 238, 243, 235, 238, 243, 236, 239, 244, 236, 240, 243, 235, 236, 240, 228, 228, 230, 217, 217, 219, 209, 207, 208, 196, 194, 195, 195, 191, 190, 192, 186, 186, 191, 183, 181, 189, 181, 179, 183, 175, 173, 175, 167, 165, 170, 160, 158, 136, 125, 121, 134, 120, 117, 133, 119, 116, 136, 122, 119, 132, 118, 115, 120, 106, 103, 108, 94, 93, 103, 89, 88, 109, 98, 96, 100, 89, 87, 100, 86, 83, 110, 96, 93, 121, 107, 104, 119, 104, 101, 102, 87, 84, 88, 73, 70, 63, 45, 43, 60, 40, 39, 61, 41, 40, 71, 52, 48, 83, 64, 60, 87, 68, 64, 80, 59, 56, 70, 49, 46, 64, 43, 40, 67, 46, 41, 74, 50, 46, 82, 58, 54, 93, 69, 65, 108, 84, 80, 124, 100, 96, 132, 111, 106, 138, 119, 115, 135, 117, 113, 136, 118, 114, 141, 123, 119, 147, 129, 125, 150, 132, 128, 148, 130, 126, 144, 126, 122, 134, 116, 112, 127, 109, 105, 120, 102, 98, 118, 100, 96, 122, 104, 100, 128, 110, 106, 132, 114, 110, 132, 117, 112, 121, 107, 104, 118, 104, 101, 118, 104, 101, 117, 103, 100, 107, 96, 92, 102, 91, 87, 112, 101, 97, 128, 117, 113, 113, 104, 99, 90, 81, 76, 77, 68, 63, 96, 87, 82, 128, 119, 114, 138, 129, 124, 117, 108, 103, 93, 84, 79, 71, 63, 60, 109, 101, 98, 131, 123, 120, 107, 99, 96, 87, 79, 76, 107, 99, 96, 112, 104, 101, 83, 75, 72, 86, 78, 75, 87, 79, 76, 95, 87, 84, 116, 108, 105, 140, 132, 129, 148, 140, 137, 143, 135, 132, 138, 130, 127, 151, 144, 138, 152, 145, 139, 140, 133, 127, 132, 125, 119, 140, 131, 126, 140, 133, 127, 131, 123, 120, 127, 119, 116, 142, 134, 131, 127, 119, 116, 106, 98, 96, 94, 86, 84, 101, 96, 93, 124, 119, 116, 142, 137, 134, 151, 143, 141, 147, 139, 136, 129, 122, 116, 119, 112, 106, 127, 120, 114, 139, 132, 126, 144, 137, 131, 140, 133, 127, 133, 126, 120, 149, 142, 136, 155, 148, 142, 165, 158, 152, 163, 156, 150, 154, 147, 141, 154, 147, 141, 144, 137, 131, 123, 114, 109, 121, 110, 108, 130, 116, 115, 143, 129, 128, 155, 144, 142, 163, 152, 150, 157, 147, 145, 144, 134, 132, 133, 123, 121, 124, 114, 112, 140, 130, 128, 155, 145, 143, 154, 143, 141, 138, 127, 125, 127, 113, 112, 131, 117, 116, 139, 128, 126, 159, 150, 145, 160, 151, 146, 149, 140, 135, 138, 129, 124, 137, 127, 125, 130, 120, 118, 121, 111, 109, 122, 112, 110, 105, 95, 94, 100, 90, 89, 106, 96, 95, 147, 137, 136, 153, 143, 142, 120, 110, 109, 114, 104, 103, 115, 105, 104, 96, 86, 85, 135, 125, 124, 118, 110, 108, 111, 103, 101, 91, 86, 83, 78, 73, 70, 113, 108, 105, 106, 101, 98, 88, 83, 80, 99, 94, 91, 140, 135, 132, 100, 95, 92, 79, 71, 69, 122, 114, 112, 118, 108, 107, 107, 97, 96, 130, 119, 117, 110, 99, 97, 99, 88, 86, 114, 103, 101, 132, 121, 117, 142, 131, 127, 145, 134, 128, 136, 125, 119, 155, 144, 138, 103, 92, 86, 86, 75, 71, 133, 122, 118, 140, 129, 127, 110, 99, 97, 108, 97, 95, 142, 132, 130, 151, 142, 137, 106, 99, 93, 147, 138, 133, 142, 133, 128, 127, 118, 113, 143, 134, 129, 103, 92, 90, 124, 113, 111, 126, 116, 114, 108, 98, 96, 143, 135, 132, 182, 174, 171, 198, 193, 190, 193, 188, 185, 172, 168, 165, 188, 187, 183, 192, 191, 189, 195, 195, 193, 200, 200, 198, 213, 213, 211, 229, 229, 227, 229, 229, 227, 219, 219, 217, 216, 216, 214, 228, 228, 226, 227, 227, 225, 228, 228, 226, 231, 231, 229, 235, 235, 233, 237, 237, 235, 237, 237, 235, 235, 235, 233, 229, 231, 228, 234, 236, 233, 236, 238, 235, 232, 234, 231, 230, 232, 229, 233, 235, 232, 234, 236, 233, 233, 235, 232, 222, 224, 221, 224, 226, 223, 215, 217, 214, 210, 212, 209, 218, 220, 217, 219, 221, 218, 214, 216, 213, 216, 217, 212, 205, 202, 197, 191, 186, 180, 209, 202, 196, 163, 156, 150, 161, 152, 147, 142, 133, 128, 108, 97, 93, 118, 107, 103, 154, 140, 137, 91, 77, 74, 77, 63, 60, 158, 147, 143, 162, 151, 147, 130, 119, 115, 149, 140, 135, 148, 139, 134, 140, 129, 125, 113, 102, 98, 113, 102, 98, 149, 138, 134, 154, 143, 139, 126, 115, 111, 129, 118, 114, 158, 147, 143, 127, 116, 112, 149, 138, 134, 124, 113, 109, 137, 126, 122, 141, 130, 126, 119, 108, 104, 132, 121, 117, 122, 111, 107, 111, 100, 96, 158, 147, 143, 161, 150, 146, 120, 109, 105, 102, 91, 87, 115, 104, 100, 131, 120, 116, 101, 90, 86, 79, 68, 64, 121, 110, 106, 120, 109, 105, 115, 104, 100, 126, 115, 111, 113, 102, 98, 103, 92, 88, 112, 101, 97, 115, 105, 103, 106, 96, 94, 134, 124, 122, 101, 91, 89, 125, 114, 110, 130, 119, 115, 119, 108, 104, 129, 118, 114, 122, 111, 105, 126, 115, 109, 129, 116, 110, 133, 120, 114, 135, 122, 116, 118, 105, 99, 99, 86, 80, 97, 84, 78, 114, 103, 99, 128, 117, 113, 130, 115, 108, 116, 98, 86, 97, 75, 61, 60, 37, 19, 33, 10, 0, 42, 21, 4, 52, 33, 19, 51, 35, 22, 40, 27, 18, 22, 13, 6, 14, 7, 1, 15, 10, 4, 10, 7, 0, 3, 0, 0, 16, 9, 17, 1, 0, 7, 0, 1, 7, 0, 4, 7, 0, 11, 15, 1, 21, 30, 16, 44, 58, 30, 68, 87, 19, 76, 96, 17, 85, 108, 15, 89, 116, 14, 85, 113, 16, 80, 108, 19, 79, 105, 20, 76, 99, 20, 72, 93, 20, 68, 90, 17, 62, 83, 12, 53, 73, 8, 45, 64, 7, 40, 57, 11, 41, 52, 14, 43, 51, 17, 47, 49, 29, 60, 55, 35, 67, 54, 43, 74, 56, 51, 80, 58, 60, 86, 59, 70, 93, 64, 81, 100, 70, 94, 103, 76, 106, 102, 77, 116, 104, 82, 123, 106, 88, 128, 109, 92, 130, 111, 97, 131, 113, 99, 129, 113, 100, 127, 111, 98, 119, 103, 90, 128, 108, 97, 136, 109, 98, 115, 86, 72, 84, 53, 35, 72, 39, 20, 65, 34, 13, 50, 23, 4, 33, 15, 5, 65, 54, 52, 95, 85, 86, 102, 92, 93, 114, 100, 100, 133, 117, 117, 135, 119, 119, 119, 107, 109, 123, 116, 123, 122, 119, 126, 116, 111, 117, 108, 102, 102, 117, 108, 103, 129, 120, 113, 136, 132, 129, 145, 144, 140, 144, 141, 136, 146, 141, 135, 142, 137, 131, 137, 132, 126, 143, 138, 132, 156, 151, 145, 162, 157, 151, 160, 155, 149, 121, 116, 110, 141, 136, 130, 156, 151, 145, 145, 140, 134, 118, 113, 107, 100, 95, 89, 100, 95, 89, 108, 103, 97, 140, 135, 131, 143, 138, 134, 136, 131, 127, 129, 124, 120, 139, 134, 130, 156, 151, 147, 153, 148, 144, 137, 132, 128, 104, 99, 95, 94, 89, 85, 89, 84, 80, 102, 97, 93, 129, 124, 120, 151, 146, 142, 158, 153, 149, 155, 150, 146, 157, 152, 148, 162, 157, 153, 167, 162, 158, 171, 166, 162, 173, 168, 164, 174, 169, 165, 175, 170, 166, 177, 172, 168, 167, 162, 158, 164, 159, 155, 165, 160, 156, 172, 167, 163, 180, 175, 171, 181, 176, 172, 173, 168, 164, 164, 159, 155, 169, 164, 160, 163, 158, 154, 159, 154, 150, 164, 159, 155, 175, 170, 166, 183, 178, 174, 185, 180, 176, 183, 178, 174, 180, 175, 171, 181, 176, 172, 182, 177, 173, 182, 177, 173, 182, 177, 173, 184, 179, 175, 188, 183, 179, 191, 186, 182, 192, 184, 182, 190, 182, 180, 186, 178, 176, 183, 175, 173, 182, 174, 172, 184, 176, 174, 185, 180, 177, 188, 183, 180, 184, 179, 176, 186, 181, 178, 190, 185, 182, 194, 189, 186, 196, 192, 189, 199, 195, 192, 201, 197, 194, 201, 197, 194, 202, 201, 199, 203, 202, 200, 205, 204, 202, 205, 204, 202, 205, 203, 204, 206, 204, 205, 209, 209, 211, 212, 212, 214, 219, 220, 224, 224, 225, 229, 228, 232, 235, 232, 236, 239, 235, 238, 243, 236, 239, 244, 238, 243, 247, 240, 245, 249, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 234, 238, 241, 234, 238, 241, 234, 238, 241, 234, 238, 241, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 237, 240, 247, 237, 240, 247, 237, 240, 247, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 234, 239, 243, 234, 239, 243, 236, 239, 244, 237, 240, 245, 235, 238, 243, 231, 232, 236, 223, 224, 228, 217, 217, 219, 207, 207, 209, 202, 200, 201, 196, 192, 193, 192, 188, 189, 189, 185, 186, 186, 180, 180, 177, 171, 171, 173, 165, 163, 149, 138, 136, 141, 127, 124, 133, 119, 116, 131, 117, 114, 126, 112, 109, 116, 102, 99, 107, 93, 92, 102, 88, 87, 114, 103, 101, 106, 95, 93, 100, 86, 83, 98, 84, 81, 99, 85, 82, 94, 83, 79, 85, 71, 68, 75, 61, 58, 67, 49, 47, 63, 43, 42, 62, 42, 41, 70, 51, 47, 83, 64, 60, 90, 71, 67, 88, 67, 64, 82, 61, 58, 80, 59, 56, 81, 60, 55, 84, 60, 56, 88, 64, 60, 96, 72, 68, 110, 86, 82, 127, 103, 99, 136, 115, 110, 144, 123, 120, 142, 123, 119, 142, 123, 119, 142, 124, 120, 144, 126, 122, 144, 126, 122, 143, 125, 121, 141, 123, 119, 134, 116, 112, 129, 114, 109, 122, 107, 102, 114, 101, 95, 111, 98, 92, 115, 102, 96, 123, 110, 104, 129, 116, 110, 105, 91, 88, 94, 80, 77, 96, 82, 79, 114, 100, 97, 121, 110, 106, 113, 102, 98, 106, 95, 91, 108, 97, 93, 129, 120, 115, 113, 104, 99, 93, 84, 79, 92, 83, 78, 116, 107, 102, 145, 136, 131, 149, 140, 135, 138, 129, 124, 101, 93, 90, 94, 86, 83, 115, 107, 104, 134, 126, 123, 121, 113, 110, 110, 102, 99, 112, 104, 101, 109, 101, 98, 114, 106, 103, 87, 79, 76, 66, 58, 55, 80, 72, 69, 110, 102, 99, 122, 114, 111, 124, 116, 113, 134, 126, 123, 123, 114, 109, 139, 130, 125, 141, 130, 126, 138, 129, 124, 153, 144, 139, 161, 152, 147, 148, 138, 136, 133, 125, 122, 126, 118, 115, 136, 128, 125, 144, 136, 134, 144, 139, 136, 145, 140, 137, 147, 142, 139, 146, 141, 138, 142, 137, 133, 156, 149, 143, 162, 155, 149, 156, 149, 143, 132, 125, 119, 122, 115, 109, 138, 131, 125, 138, 131, 125, 112, 105, 99, 115, 108, 102, 112, 105, 99, 136, 129, 123, 165, 158, 152, 164, 157, 151, 153, 146, 140, 156, 149, 143, 164, 155, 150, 128, 117, 115, 137, 123, 122, 146, 132, 131, 152, 141, 139, 155, 144, 142, 155, 145, 143, 155, 145, 143, 155, 145, 143, 136, 126, 124, 132, 122, 120, 135, 124, 122, 144, 133, 131, 149, 135, 134, 138, 124, 123, 123, 109, 108, 111, 100, 98, 139, 130, 125, 170, 161, 156, 174, 165, 160, 145, 136, 131, 123, 113, 111, 122, 112, 110, 139, 129, 127, 160, 150, 148, 151, 141, 140, 136, 126, 125, 103, 93, 92, 107, 97, 96, 120, 110, 109, 126, 116, 115, 134, 124, 123, 120, 110, 109, 85, 75, 74, 99, 89, 88, 116, 108, 106, 130, 122, 120, 89, 84, 81, 77, 72, 69, 119, 114, 111, 110, 105, 102, 114, 109, 106, 100, 95, 92, 133, 128, 125, 109, 104, 101, 75, 67, 65, 106, 98, 96, 115, 105, 104, 94, 84, 83, 115, 104, 102, 121, 110, 108, 112, 101, 99, 117, 106, 104, 122, 111, 107, 123, 112, 108, 137, 126, 120, 138, 127, 121, 138, 127, 121, 110, 99, 93, 91, 80, 76, 139, 128, 124, 139, 128, 126, 120, 109, 107, 113, 102, 100, 130, 120, 118, 171, 162, 157, 120, 113, 107, 145, 136, 131, 143, 134, 129, 123, 114, 109, 155, 146, 141, 111, 100, 98, 104, 93, 91, 138, 128, 126, 129, 119, 117, 158, 150, 147, 189, 181, 178, 190, 185, 182, 180, 175, 172, 174, 170, 167, 186, 185, 181, 196, 195, 193, 193, 193, 191, 198, 198, 196, 214, 214, 212, 227, 227, 225, 229, 229, 227, 224, 224, 222, 222, 222, 220, 231, 231, 229, 229, 229, 227, 229, 229, 227, 232, 232, 230, 236, 236, 234, 239, 239, 237, 239, 239, 237, 238, 238, 236, 235, 237, 234, 240, 242, 239, 240, 242, 239, 235, 237, 234, 232, 234, 231, 233, 235, 232, 233, 235, 232, 231, 233, 230, 223, 225, 222, 229, 231, 228, 220, 222, 219, 212, 214, 211, 218, 220, 217, 220, 222, 219, 216, 218, 215, 217, 218, 213, 221, 218, 213, 197, 192, 186, 203, 196, 190, 162, 155, 149, 148, 139, 134, 164, 155, 150, 148, 137, 133, 125, 114, 110, 159, 145, 142, 123, 109, 106, 27, 13, 10, 120, 106, 103, 161, 150, 146, 127, 116, 112, 148, 139, 134, 126, 117, 112, 167, 156, 152, 157, 146, 142, 126, 115, 111, 135, 124, 120, 158, 147, 143, 144, 133, 129, 130, 119, 115, 128, 117, 113, 171, 160, 156, 153, 142, 138, 169, 158, 154, 146, 135, 131, 144, 133, 129, 158, 147, 143, 128, 117, 113, 131, 120, 116, 85, 74, 70, 131, 120, 116, 162, 151, 147, 125, 114, 110, 110, 99, 95, 113, 102, 98, 131, 120, 116, 104, 93, 89, 128, 117, 113, 126, 115, 111, 118, 107, 103, 126, 115, 111, 103, 92, 88, 93, 82, 78, 118, 107, 103, 100, 89, 85, 118, 108, 106, 118, 108, 106, 141, 131, 129, 119, 109, 107, 130, 119, 115, 112, 101, 97, 117, 106, 102, 134, 123, 119, 148, 137, 131, 135, 124, 118, 123, 110, 104, 122, 109, 103, 122, 109, 103, 104, 91, 85, 94, 81, 75, 104, 93, 87, 134, 123, 121, 111, 100, 94, 121, 107, 98, 101, 84, 68, 53, 32, 11, 40, 15, 0, 46, 21, 0, 52, 30, 9, 48, 29, 14, 38, 22, 9, 23, 10, 2, 12, 3, 0, 10, 7, 2, 13, 12, 8, 9, 10, 5, 2, 4, 3, 0, 0, 9, 0, 2, 12, 0, 15, 18, 20, 46, 47, 35, 60, 64, 33, 62, 70, 35, 71, 85, 44, 91, 111, 41, 105, 130, 36, 113, 141, 32, 113, 143, 24, 104, 137, 23, 94, 126, 23, 88, 116, 22, 82, 106, 20, 76, 99, 27, 79, 101, 24, 72, 94, 20, 62, 84, 15, 51, 73, 11, 44, 63, 10, 39, 55, 10, 38, 49, 10, 39, 45, 14, 48, 47, 23, 59, 49, 34, 72, 57, 44, 82, 59, 52, 88, 62, 60, 93, 62, 71, 100, 69, 84, 103, 73, 108, 108, 80, 122, 112, 85, 130, 114, 89, 132, 114, 92, 137, 116, 97, 138, 119, 104, 136, 118, 104, 131, 115, 102, 128, 114, 103, 138, 120, 110, 149, 125, 115, 137, 108, 94, 106, 73, 54, 88, 52, 28, 81, 44, 17, 66, 36, 12, 26, 8, 0, 57, 49, 46, 112, 108, 109, 131, 129, 132, 120, 114, 116, 127, 117, 118, 138, 124, 124, 125, 113, 113, 134, 128, 132, 129, 124, 128, 118, 112, 114, 110, 102, 100, 114, 103, 97, 123, 114, 107, 126, 121, 117, 127, 124, 119, 151, 146, 140, 154, 149, 143, 154, 149, 143, 149, 144, 138, 146, 141, 135, 146, 141, 135, 143, 138, 132, 138, 133, 127, 148, 143, 137, 158, 153, 147, 155, 150, 144, 131, 126, 120, 108, 103, 97, 113, 108, 102, 142, 137, 131, 167, 162, 156, 141, 136, 132, 147, 142, 138, 148, 143, 139, 144, 139, 135, 144, 139, 135, 143, 138, 134, 131, 126, 122, 116, 111, 107, 112, 107, 103, 122, 117, 113, 135, 130, 126, 145, 140, 136, 150, 145, 141, 154, 149, 145, 159, 154, 150, 163, 158, 154, 169, 164, 160, 172, 167, 163, 175, 170, 166, 175, 170, 166, 170, 165, 161, 165, 160, 156, 160, 155, 151, 159, 154, 150, 165, 160, 156, 173, 168, 164, 179, 174, 170, 176, 171, 167, 167, 162, 158, 161, 156, 152, 162, 157, 153, 165, 160, 156, 164, 159, 155, 163, 158, 154, 164, 159, 155, 171, 166, 162, 180, 175, 171, 187, 182, 178, 188, 183, 179, 187, 182, 178, 188, 183, 179, 188, 183, 179, 188, 183, 179, 184, 179, 175, 181, 176, 172, 179, 174, 170, 180, 175, 171, 182, 177, 173, 187, 179, 177, 185, 177, 175, 183, 175, 173, 182, 174, 172, 183, 175, 173, 186, 178, 176, 187, 182, 179, 190, 185, 182, 185, 180, 177, 187, 182, 179, 191, 186, 183, 194, 189, 186, 197, 193, 190, 199, 195, 192, 201, 197, 194, 201, 197, 194, 202, 201, 199, 204, 203, 201, 205, 204, 202, 205, 204, 202, 205, 203, 204, 206, 204, 205, 209, 209, 211, 212, 212, 214, 219, 220, 224, 224, 225, 229, 228, 232, 235, 232, 236, 239, 235, 238, 243, 236, 239, 244, 238, 243, 247, 240, 245, 249, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 234, 238, 241, 234, 238, 241, 234, 238, 241, 234, 238, 241, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 237, 240, 247, 237, 240, 247, 237, 240, 247, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 237, 242, 248, 234, 241, 247, 236, 241, 247, 236, 241, 245, 235, 240, 244, 233, 236, 241, 226, 229, 234, 224, 225, 229, 216, 217, 221, 209, 209, 211, 200, 200, 202, 197, 195, 198, 195, 193, 196, 194, 190, 191, 186, 182, 183, 181, 175, 177, 178, 168, 167, 163, 152, 150, 147, 136, 134, 137, 126, 124, 132, 118, 117, 122, 108, 107, 113, 99, 96, 109, 95, 92, 123, 109, 106, 117, 103, 100, 101, 90, 86, 86, 75, 71, 75, 64, 60, 70, 61, 56, 68, 57, 55, 65, 54, 52, 77, 61, 61, 73, 55, 55, 69, 51, 51, 72, 54, 52, 83, 63, 62, 91, 71, 70, 94, 74, 73, 93, 74, 70, 92, 73, 69, 94, 75, 71, 97, 76, 73, 100, 79, 76, 106, 85, 82, 117, 96, 93, 129, 108, 105, 137, 116, 113, 143, 122, 119, 144, 123, 120, 145, 124, 121, 143, 124, 120, 140, 121, 117, 139, 120, 116, 138, 120, 116, 140, 122, 118, 136, 121, 116, 132, 119, 113, 126, 113, 107, 118, 107, 101, 114, 103, 97, 114, 103, 97, 116, 105, 99, 119, 108, 102, 114, 100, 97, 97, 83, 80, 86, 72, 69, 96, 82, 79, 113, 102, 98, 121, 110, 106, 113, 102, 98, 102, 91, 87, 139, 130, 125, 137, 128, 123, 127, 118, 113, 116, 107, 102, 117, 108, 103, 131, 122, 117, 142, 133, 128, 144, 135, 130, 153, 145, 142, 110, 102, 99, 114, 106, 103, 141, 133, 130, 128, 120, 117, 108, 100, 97, 120, 112, 109, 138, 130, 127, 140, 132, 129, 126, 118, 115, 103, 95, 92, 93, 85, 82, 95, 87, 84, 87, 79, 76, 89, 81, 78, 110, 100, 98, 82, 71, 67, 92, 81, 77, 97, 83, 82, 102, 91, 89, 123, 112, 110, 134, 124, 122, 133, 123, 121, 132, 122, 120, 159, 151, 148, 153, 145, 142, 142, 137, 133, 136, 131, 127, 141, 136, 132, 148, 145, 140, 147, 144, 139, 142, 137, 133, 142, 135, 129, 152, 145, 139, 161, 154, 148, 149, 142, 136, 134, 127, 121, 142, 135, 129, 148, 141, 135, 134, 127, 121, 82, 75, 69, 65, 58, 52, 81, 74, 68, 121, 114, 108, 143, 136, 130, 148, 141, 135, 153, 146, 140, 158, 149, 144, 150, 139, 135, 162, 151, 147, 171, 160, 156, 165, 154, 150, 149, 138, 134, 137, 128, 123, 139, 130, 125, 145, 138, 132, 123, 116, 110, 138, 131, 125, 156, 147, 142, 155, 146, 141, 134, 123, 119, 116, 105, 101, 123, 112, 108, 142, 131, 127, 93, 83, 81, 134, 124, 122, 162, 152, 150, 162, 152, 150, 153, 143, 141, 138, 128, 126, 121, 111, 110, 115, 105, 104, 148, 138, 137, 158, 148, 147, 130, 120, 121, 105, 95, 96, 98, 88, 89, 109, 99, 100, 128, 118, 119, 114, 104, 105, 98, 88, 87, 88, 78, 77, 101, 93, 91, 120, 112, 110, 101, 96, 93, 85, 80, 77, 99, 94, 91, 112, 107, 104, 122, 117, 114, 105, 100, 97, 117, 112, 109, 118, 113, 110, 100, 92, 90, 108, 100, 98, 116, 106, 105, 98, 88, 87, 100, 89, 87, 135, 124, 122, 129, 118, 116, 123, 112, 110, 120, 109, 105, 113, 102, 98, 130, 119, 113, 139, 128, 122, 127, 116, 110, 129, 118, 112, 110, 99, 95, 151, 140, 136, 144, 133, 131, 137, 126, 124, 124, 113, 111, 119, 109, 107, 181, 172, 167, 134, 127, 121, 155, 146, 141, 146, 137, 132, 102, 93, 88, 148, 139, 134, 118, 107, 105, 100, 89, 87, 159, 149, 147, 154, 144, 142, 160, 152, 149, 186, 178, 175, 183, 178, 175, 173, 168, 165, 186, 182, 179, 183, 182, 178, 203, 202, 200, 195, 195, 193, 201, 201, 199, 217, 217, 215, 227, 227, 225, 228, 228, 226, 227, 227, 225, 226, 226, 224, 233, 233, 231, 231, 231, 229, 230, 230, 228, 233, 233, 231, 237, 237, 235, 240, 240, 238, 241, 241, 239, 240, 240, 238, 237, 239, 236, 242, 244, 241, 242, 244, 241, 237, 239, 236, 233, 235, 232, 235, 237, 234, 235, 237, 234, 233, 235, 232, 228, 230, 227, 235, 237, 234, 227, 229, 226, 216, 218, 215, 220, 222, 219, 223, 225, 222, 218, 220, 217, 219, 220, 215, 232, 227, 223, 213, 205, 202, 195, 187, 184, 172, 164, 161, 163, 153, 151, 181, 170, 168, 174, 160, 159, 139, 125, 124, 170, 156, 155, 176, 162, 161, 56, 42, 41, 104, 90, 89, 132, 121, 119, 123, 112, 110, 147, 136, 134, 115, 104, 102, 147, 136, 132, 170, 159, 155, 150, 139, 135, 142, 131, 127, 153, 142, 138, 153, 142, 138, 139, 128, 124, 102, 91, 87, 169, 158, 154, 141, 130, 126, 160, 149, 145, 142, 131, 127, 135, 124, 120, 158, 147, 143, 127, 116, 112, 110, 99, 95, 84, 73, 69, 106, 95, 91, 151, 140, 136, 136, 125, 121, 130, 119, 115, 113, 102, 98, 126, 115, 111, 110, 99, 95, 129, 118, 114, 130, 119, 115, 121, 110, 106, 135, 124, 120, 101, 90, 86, 79, 68, 64, 119, 108, 104, 107, 96, 92, 104, 94, 92, 130, 120, 118, 145, 135, 133, 128, 118, 116, 126, 115, 111, 94, 83, 79, 125, 114, 110, 142, 131, 127, 148, 137, 131, 132, 121, 115, 119, 106, 100, 119, 106, 100, 115, 102, 96, 93, 80, 74, 90, 77, 71, 112, 101, 95, 134, 123, 121, 105, 94, 88, 104, 88, 75, 72, 54, 34, 41, 19, 0, 52, 26, 0, 56, 30, 3, 54, 30, 6, 42, 21, 4, 27, 10, 0, 15, 2, 0, 12, 4, 2, 11, 10, 8, 9, 11, 8, 8, 13, 9, 4, 16, 14, 0, 6, 12, 0, 21, 29, 18, 56, 57, 51, 91, 90, 68, 104, 104, 60, 95, 99, 45, 83, 94, 32, 81, 98, 33, 99, 123, 32, 109, 137, 32, 112, 145, 27, 107, 140, 27, 98, 130, 26, 91, 119, 23, 83, 107, 19, 76, 96, 23, 75, 97, 22, 70, 92, 20, 62, 84, 16, 53, 72, 16, 44, 65, 12, 39, 56, 11, 37, 50, 8, 37, 45, 6, 40, 41, 15, 52, 45, 26, 66, 55, 34, 77, 57, 41, 83, 59, 50, 91, 61, 60, 100, 66, 77, 104, 71, 106, 113, 80, 124, 118, 86, 134, 120, 91, 138, 118, 91, 143, 121, 97, 150, 128, 105, 147, 129, 109, 140, 123, 107, 141, 125, 112, 140, 122, 112, 152, 128, 118, 155, 126, 112, 136, 101, 81, 115, 78, 51, 104, 65, 32, 90, 56, 28, 42, 24, 10, 45, 40, 36, 114, 115, 117, 163, 166, 171, 139, 138, 143, 124, 119, 123, 140, 130, 131, 134, 124, 123, 137, 131, 133, 137, 131, 133, 136, 130, 130, 135, 127, 124, 141, 131, 122, 153, 144, 135, 162, 157, 151, 163, 160, 153, 158, 153, 147, 160, 155, 149, 161, 156, 150, 157, 152, 146, 148, 143, 137, 140, 135, 129, 137, 132, 126, 138, 133, 127, 144, 139, 133, 129, 124, 118, 103, 98, 92, 85, 80, 74, 92, 87, 81, 120, 115, 109, 147, 142, 136, 158, 153, 147, 124, 119, 115, 143, 138, 134, 161, 156, 152, 163, 158, 154, 150, 145, 141, 141, 136, 132, 143, 138, 134, 149, 144, 140, 128, 123, 119, 144, 139, 135, 160, 155, 151, 162, 157, 153, 153, 148, 144, 147, 142, 138, 152, 147, 143, 161, 156, 152, 162, 157, 153, 166, 161, 157, 170, 165, 161, 171, 166, 162, 167, 162, 158, 162, 157, 153, 158, 153, 149, 157, 152, 148, 156, 151, 147, 163, 158, 154, 169, 164, 160, 171, 166, 162, 169, 164, 160, 169, 164, 160, 174, 169, 165, 179, 174, 170, 164, 159, 155, 165, 160, 156, 168, 163, 159, 172, 167, 163, 177, 172, 168, 182, 177, 173, 186, 181, 177, 187, 182, 178, 188, 183, 179, 185, 180, 176, 181, 176, 172, 175, 170, 166, 170, 165, 161, 169, 164, 160, 173, 168, 164, 176, 171, 167, 178, 170, 168, 179, 169, 168, 178, 170, 168, 180, 172, 170, 183, 175, 173, 186, 178, 176, 190, 182, 180, 192, 184, 182, 190, 185, 182, 192, 187, 184, 195, 190, 187, 198, 193, 190, 201, 196, 193, 203, 198, 195, 203, 199, 196, 203, 199, 196, 201, 200, 198, 203, 202, 200, 205, 204, 202, 205, 204, 202, 205, 203, 204, 206, 204, 205, 209, 209, 211, 212, 212, 214, 219, 220, 224, 224, 225, 229, 228, 232, 235, 232, 236, 239, 235, 238, 243, 236, 239, 244, 238, 243, 247, 240, 245, 249, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 234, 238, 241, 234, 238, 241, 234, 238, 241, 234, 238, 241, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 237, 240, 247, 237, 240, 247, 237, 240, 247, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 236, 241, 245, 240, 245, 251, 237, 244, 250, 237, 242, 248, 237, 242, 248, 236, 241, 245, 234, 239, 243, 230, 233, 238, 226, 229, 234, 222, 223, 228, 214, 215, 219, 205, 204, 209, 201, 200, 205, 201, 200, 205, 199, 199, 201, 194, 192, 197, 189, 184, 188, 177, 168, 169, 165, 153, 153, 151, 139, 139, 146, 135, 133, 144, 130, 129, 136, 122, 121, 127, 113, 110, 123, 109, 106, 115, 101, 98, 112, 98, 95, 98, 87, 83, 79, 68, 64, 66, 57, 52, 67, 58, 53, 75, 65, 63, 81, 70, 68, 87, 71, 71, 82, 64, 64, 75, 56, 58, 75, 57, 57, 82, 64, 64, 91, 73, 73, 98, 78, 79, 100, 80, 79, 94, 74, 73, 98, 78, 77, 103, 83, 82, 108, 89, 85, 114, 93, 92, 120, 101, 97, 128, 107, 106, 134, 113, 110, 136, 115, 112, 140, 119, 116, 143, 122, 119, 141, 122, 118, 137, 118, 114, 135, 117, 113, 139, 121, 117, 141, 126, 121, 147, 134, 128, 141, 130, 124, 136, 125, 119, 131, 122, 115, 129, 120, 113, 126, 117, 110, 122, 113, 106, 117, 108, 101, 144, 133, 129, 127, 113, 110, 97, 83, 80, 81, 67, 64, 95, 84, 80, 122, 111, 107, 130, 119, 115, 121, 110, 106, 84, 75, 70, 106, 97, 92, 135, 126, 121, 153, 144, 139, 155, 146, 141, 148, 139, 134, 142, 133, 128, 140, 131, 126, 145, 137, 134, 143, 135, 132, 135, 127, 124, 102, 94, 91, 82, 74, 71, 120, 112, 109, 152, 144, 141, 134, 126, 123, 155, 147, 144, 156, 148, 145, 142, 134, 131, 129, 121, 118, 121, 113, 110, 97, 89, 86, 72, 64, 61, 72, 62, 60, 102, 91, 89, 94, 80, 77, 78, 64, 63, 75, 64, 62, 90, 79, 77, 99, 88, 86, 109, 99, 97, 127, 117, 115, 138, 130, 127, 142, 134, 131, 140, 135, 131, 134, 129, 125, 130, 127, 122, 134, 131, 126, 137, 134, 129, 138, 135, 130, 145, 138, 132, 129, 122, 116, 145, 138, 132, 171, 164, 158, 161, 154, 148, 145, 138, 132, 150, 143, 137, 159, 152, 146, 152, 145, 139, 112, 105, 99, 84, 77, 71, 93, 86, 80, 129, 122, 116, 165, 158, 152, 169, 162, 156, 146, 139, 133, 135, 126, 121, 139, 128, 124, 148, 137, 133, 158, 149, 144, 165, 156, 151, 158, 151, 145, 141, 134, 128, 125, 120, 114, 146, 139, 133, 137, 130, 124, 134, 127, 121, 140, 131, 126, 142, 133, 128, 138, 127, 123, 137, 126, 122, 142, 131, 127, 141, 131, 129, 135, 125, 123, 125, 115, 113, 135, 125, 123, 163, 153, 151, 169, 159, 157, 146, 136, 135, 127, 117, 116, 117, 107, 106, 143, 133, 132, 140, 130, 131, 134, 124, 125, 127, 117, 118, 123, 113, 114, 124, 114, 115, 101, 91, 92, 103, 93, 92, 93, 83, 82, 76, 68, 66, 85, 77, 75, 113, 108, 105, 87, 82, 79, 59, 54, 51, 110, 105, 102, 103, 98, 95, 97, 92, 89, 96, 91, 88, 119, 114, 111, 125, 117, 115, 112, 104, 102, 111, 101, 100, 99, 89, 88, 86, 75, 73, 135, 124, 122, 127, 116, 114, 117, 106, 104, 118, 107, 103, 108, 97, 93, 118, 107, 101, 126, 115, 109, 128, 117, 111, 149, 138, 132, 132, 121, 117, 165, 154, 150, 150, 139, 137, 151, 140, 138, 132, 121, 119, 112, 102, 100, 178, 169, 164, 145, 138, 132, 173, 164, 159, 152, 143, 138, 78, 69, 64, 130, 121, 116, 121, 110, 108, 109, 98, 96, 176, 166, 164, 164, 154, 152, 146, 138, 135, 175, 167, 164, 181, 176, 173, 178, 173, 170, 199, 195, 192, 177, 176, 172, 208, 207, 205, 199, 199, 197, 205, 205, 203, 220, 220, 218, 226, 226, 224, 226, 226, 224, 228, 228, 226, 228, 228, 226, 234, 234, 232, 232, 232, 230, 231, 231, 229, 233, 233, 231, 237, 237, 235, 240, 240, 238, 242, 242, 240, 241, 241, 239, 236, 238, 235, 241, 243, 240, 242, 244, 241, 237, 239, 236, 235, 237, 234, 236, 238, 235, 237, 239, 236, 236, 238, 235, 231, 233, 230, 240, 242, 239, 232, 234, 231, 219, 221, 218, 222, 224, 221, 225, 227, 224, 220, 222, 219, 220, 221, 216, 223, 218, 215, 214, 206, 203, 183, 175, 172, 179, 171, 168, 181, 171, 169, 184, 173, 171, 170, 156, 155, 136, 122, 121, 163, 149, 148, 207, 193, 192, 118, 104, 103, 132, 118, 117, 124, 113, 111, 120, 109, 107, 134, 123, 121, 104, 93, 91, 138, 127, 123, 162, 151, 147, 158, 147, 143, 156, 145, 141, 150, 139, 135, 149, 138, 134, 156, 145, 141, 124, 113, 109, 153, 142, 138, 151, 140, 136, 137, 126, 122, 158, 147, 143, 152, 141, 137, 149, 138, 134, 160, 149, 145, 97, 86, 82, 104, 93, 89, 98, 87, 83, 143, 132, 128, 144, 133, 129, 145, 134, 130, 111, 100, 96, 121, 110, 106, 117, 106, 102, 73, 62, 58, 119, 108, 104, 113, 102, 98, 135, 124, 120, 127, 116, 112, 87, 76, 72, 116, 105, 101, 136, 125, 121, 102, 92, 90, 127, 117, 115, 122, 112, 110, 116, 106, 104, 133, 122, 118, 107, 96, 92, 140, 129, 125, 130, 119, 115, 126, 115, 109, 121, 110, 104, 122, 109, 103, 128, 115, 109, 115, 102, 96, 85, 72, 66, 88, 75, 69, 122, 109, 103, 117, 106, 102, 116, 103, 95, 89, 73, 57, 45, 25, 1, 60, 36, 8, 78, 53, 22, 49, 24, 0, 53, 29, 3, 41, 20, 3, 26, 9, 0, 17, 6, 2, 18, 12, 12, 14, 14, 14, 5, 11, 9, 4, 13, 10, 4, 22, 22, 0, 27, 33, 4, 49, 55, 24, 72, 74, 41, 87, 85, 53, 92, 91, 56, 91, 93, 45, 79, 88, 25, 68, 84, 15, 73, 93, 19, 86, 113, 23, 98, 129, 25, 100, 131, 30, 95, 125, 31, 91, 117, 27, 84, 104, 23, 76, 94, 14, 65, 84, 15, 62, 82, 17, 55, 74, 16, 49, 68, 16, 43, 60, 15, 38, 54, 12, 35, 49, 9, 36, 45, 5, 36, 39, 11, 47, 45, 21, 61, 53, 28, 70, 56, 33, 78, 57, 42, 86, 59, 55, 98, 68, 74, 105, 71, 103, 115, 79, 123, 121, 83, 136, 123, 88, 141, 123, 87, 150, 126, 92, 160, 135, 104, 159, 135, 109, 150, 130, 106, 147, 128, 111, 137, 118, 103, 148, 125, 111, 163, 134, 118, 158, 123, 101, 139, 102, 73, 126, 86, 50, 108, 75, 42, 67, 49, 29, 37, 30, 22, 104, 108, 109, 180, 187, 193, 157, 162, 168, 129, 128, 133, 141, 135, 137, 138, 129, 130, 145, 136, 137, 145, 139, 139, 149, 141, 138, 145, 136, 131, 140, 130, 121, 147, 137, 127, 153, 149, 140, 154, 151, 144, 156, 151, 145, 153, 148, 142, 151, 146, 140, 145, 140, 134, 135, 130, 124, 126, 121, 115, 131, 126, 120, 142, 137, 131, 140, 135, 129, 136, 131, 125, 126, 121, 115, 120, 115, 109, 130, 125, 119, 143, 138, 132, 142, 137, 131, 132, 127, 121, 160, 155, 151, 159, 154, 150, 160, 155, 151, 161, 156, 152, 153, 148, 144, 141, 136, 132, 136, 131, 127, 138, 133, 129, 153, 148, 144, 158, 153, 149, 160, 155, 151, 155, 150, 146, 146, 141, 137, 142, 137, 133, 146, 141, 137, 152, 147, 143, 159, 154, 150, 163, 158, 154, 169, 164, 160, 171, 166, 162, 169, 164, 160, 165, 160, 156, 162, 157, 153, 161, 156, 152, 162, 157, 153, 153, 148, 144, 148, 143, 139, 155, 150, 146, 168, 163, 159, 175, 170, 166, 171, 166, 162, 164, 159, 155, 164, 159, 155, 166, 161, 157, 168, 163, 159, 169, 164, 160, 170, 165, 161, 174, 169, 165, 180, 175, 171, 185, 180, 176, 180, 175, 171, 176, 171, 167, 170, 165, 161, 163, 158, 154, 160, 155, 151, 163, 158, 154, 171, 166, 162, 178, 173, 169, 172, 162, 161, 174, 164, 163, 175, 167, 165, 178, 170, 168, 182, 174, 172, 186, 178, 176, 190, 182, 180, 192, 184, 182, 194, 189, 186, 196, 191, 188, 199, 194, 191, 201, 196, 193, 204, 199, 196, 205, 200, 197, 205, 201, 198, 205, 201, 198, 201, 200, 198, 203, 202, 200, 204, 203, 201, 205, 204, 202, 204, 202, 203, 206, 204, 205, 208, 208, 210, 211, 211, 213, 219, 220, 224, 224, 225, 229, 228, 232, 235, 232, 236, 239, 235, 238, 243, 236, 239, 244, 238, 243, 247, 240, 245, 249, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 234, 238, 241, 234, 238, 241, 234, 238, 241, 234, 238, 241, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 237, 240, 247, 237, 240, 247, 237, 240, 247, 238, 241, 248, 238, 241, 248, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 243, 247, 238, 243, 249, 235, 242, 248, 235, 242, 248, 234, 241, 247, 235, 240, 246, 234, 239, 245, 234, 239, 245, 233, 238, 244, 230, 233, 240, 223, 226, 231, 218, 219, 224, 216, 217, 222, 217, 218, 223, 214, 215, 219, 206, 205, 211, 199, 197, 202, 182, 176, 178, 177, 167, 168, 165, 155, 156, 152, 142, 141, 143, 132, 130, 138, 127, 125, 138, 124, 121, 139, 125, 122, 132, 119, 113, 118, 105, 99, 103, 92, 88, 98, 87, 83, 94, 84, 82, 89, 79, 77, 83, 75, 72, 82, 72, 70, 87, 73, 73, 88, 72, 73, 81, 65, 68, 67, 51, 52, 60, 44, 45, 65, 49, 50, 78, 59, 61, 84, 66, 66, 79, 61, 61, 87, 69, 69, 95, 77, 77, 100, 82, 80, 108, 88, 89, 117, 99, 97, 126, 106, 107, 127, 107, 106, 125, 104, 103, 133, 112, 111, 140, 120, 119, 139, 119, 118, 134, 114, 113, 132, 114, 112, 139, 121, 119, 145, 130, 127, 144, 130, 127, 143, 132, 128, 146, 135, 131, 149, 140, 135, 152, 143, 138, 152, 145, 139, 150, 143, 137, 149, 142, 136, 142, 131, 127, 144, 130, 127, 124, 110, 107, 98, 84, 81, 86, 75, 71, 87, 76, 72, 103, 92, 88, 126, 115, 111, 120, 111, 106, 111, 102, 97, 91, 82, 77, 87, 78, 73, 123, 114, 109, 168, 159, 154, 173, 164, 159, 148, 139, 134, 144, 136, 133, 141, 133, 131, 124, 116, 114, 103, 95, 93, 97, 89, 87, 110, 102, 100, 123, 115, 113, 125, 117, 115, 159, 151, 149, 164, 156, 154, 154, 146, 144, 140, 132, 130, 133, 125, 123, 122, 114, 112, 112, 104, 102, 115, 105, 103, 91, 80, 78, 85, 71, 70, 72, 61, 59, 63, 52, 50, 65, 54, 52, 81, 71, 69, 107, 97, 95, 126, 116, 114, 135, 127, 124, 144, 136, 133, 145, 140, 136, 139, 134, 130, 140, 137, 132, 146, 143, 138, 139, 136, 129, 125, 122, 115, 136, 129, 123, 119, 112, 106, 113, 106, 100, 130, 123, 117, 151, 144, 138, 158, 151, 145, 157, 150, 144, 156, 149, 143, 147, 140, 134, 153, 146, 140, 165, 158, 152, 168, 161, 155, 153, 146, 140, 140, 133, 127, 150, 143, 137, 172, 165, 159, 160, 151, 146, 144, 135, 130, 129, 120, 115, 126, 119, 113, 132, 125, 119, 136, 131, 125, 142, 137, 131, 145, 142, 135, 165, 160, 154, 159, 154, 148, 138, 133, 127, 116, 109, 103, 107, 100, 94, 113, 104, 99, 116, 107, 102, 110, 101, 96, 145, 135, 133, 144, 134, 132, 122, 112, 110, 108, 98, 96, 116, 106, 104, 117, 107, 105, 129, 119, 118, 163, 153, 152, 130, 120, 119, 125, 115, 114, 145, 135, 136, 143, 133, 134, 105, 95, 96, 104, 94, 95, 126, 116, 117, 121, 111, 112, 84, 74, 73, 87, 77, 76, 90, 82, 80, 87, 79, 77, 85, 80, 77, 96, 91, 88, 88, 83, 80, 61, 56, 53, 85, 80, 77, 100, 95, 92, 83, 78, 75, 101, 96, 93, 129, 121, 119, 124, 116, 114, 117, 107, 106, 96, 86, 85, 111, 100, 98, 113, 102, 100, 120, 109, 107, 117, 106, 104, 84, 73, 69, 122, 111, 107, 108, 97, 91, 113, 102, 96, 120, 109, 103, 149, 138, 132, 156, 145, 141, 145, 134, 130, 153, 142, 140, 161, 150, 148, 142, 131, 129, 116, 106, 104, 171, 162, 157, 162, 155, 149, 157, 148, 143, 162, 153, 148, 110, 101, 96, 125, 116, 111, 121, 110, 108, 120, 109, 107, 179, 169, 167, 158, 148, 146, 145, 137, 134, 175, 167, 164, 183, 178, 175, 174, 169, 166, 187, 183, 180, 185, 184, 180, 187, 186, 184, 217, 217, 215, 218, 218, 216, 211, 211, 209, 223, 223, 221, 225, 225, 223, 223, 223, 221, 239, 239, 237, 228, 228, 226, 233, 233, 231, 238, 238, 236, 239, 239, 237, 237, 237, 235, 237, 237, 235, 240, 240, 238, 244, 244, 242, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 235, 237, 234, 234, 236, 233, 232, 234, 231, 230, 232, 229, 228, 230, 227, 225, 227, 224, 223, 225, 222, 224, 225, 220, 214, 210, 207, 214, 209, 205, 200, 192, 189, 167, 159, 156, 175, 165, 163, 192, 182, 180, 173, 162, 160, 169, 158, 156, 141, 127, 126, 197, 183, 182, 172, 161, 159, 147, 136, 134, 153, 142, 140, 141, 130, 128, 138, 128, 126, 139, 129, 127, 104, 93, 89, 166, 155, 151, 135, 124, 120, 155, 144, 140, 160, 149, 145, 158, 147, 143, 153, 142, 138, 152, 141, 137, 153, 142, 138, 161, 150, 146, 149, 138, 134, 142, 131, 127, 152, 141, 137, 147, 136, 132, 143, 132, 128, 161, 150, 146, 95, 84, 80, 112, 101, 97, 130, 119, 115, 166, 155, 151, 154, 143, 139, 99, 88, 84, 94, 83, 79, 120, 109, 105, 106, 95, 91, 107, 96, 92, 96, 85, 81, 119, 108, 104, 134, 123, 119, 105, 94, 90, 103, 92, 88, 127, 116, 112, 114, 104, 102, 126, 116, 114, 104, 94, 92, 100, 90, 88, 123, 112, 108, 88, 77, 73, 123, 112, 108, 133, 122, 118, 101, 90, 84, 107, 96, 90, 121, 108, 102, 110, 97, 91, 108, 95, 89, 62, 49, 43, 98, 85, 79, 121, 108, 102, 107, 94, 86, 110, 96, 85, 65, 48, 30, 42, 20, 0, 74, 49, 19, 75, 49, 16, 52, 25, 0, 60, 36, 8, 35, 14, 0, 26, 9, 0, 19, 10, 5, 17, 13, 12, 12, 16, 17, 10, 19, 18, 13, 23, 22, 11, 32, 35, 18, 61, 68, 20, 73, 81, 24, 75, 78, 139, 185, 183, 150, 185, 181, 141, 170, 168, 124, 148, 152, 40, 68, 79, 25, 68, 84, 0, 40, 61, 7, 67, 93, 8, 69, 97, 22, 78, 103, 40, 92, 113, 13, 62, 77, 18, 66, 80, 14, 57, 73, 16, 55, 70, 18, 51, 66, 16, 44, 58, 14, 36, 50, 12, 31, 45, 13, 31, 45, 13, 33, 44, 14, 41, 48, 2, 33, 36, 2, 38, 36, 19, 59, 50, 32, 75, 58, 37, 81, 58, 48, 92, 65, 72, 107, 74, 88, 104, 67, 121, 123, 83, 138, 129, 88, 134, 117, 74, 142, 115, 72, 160, 131, 91, 167, 139, 102, 157, 132, 101, 158, 134, 108, 149, 127, 104, 156, 129, 110, 172, 141, 121, 175, 141, 116, 158, 122, 90, 139, 101, 64, 126, 93, 58, 77, 55, 31, 70, 60, 48, 109, 111, 108, 160, 169, 174, 163, 170, 178, 134, 137, 144, 127, 123, 124, 137, 128, 129, 138, 129, 130, 150, 142, 140, 154, 144, 142, 143, 134, 127, 139, 129, 119, 149, 139, 129, 159, 152, 144, 161, 157, 148, 171, 166, 160, 171, 166, 160, 167, 162, 156, 161, 156, 150, 161, 156, 150, 167, 162, 156, 170, 165, 159, 170, 165, 159, 156, 151, 145, 145, 140, 134, 150, 145, 139, 156, 151, 145, 147, 142, 136, 141, 136, 130, 149, 144, 138, 154, 149, 143, 173, 168, 164, 148, 143, 139, 130, 125, 121, 133, 128, 124, 139, 134, 130, 138, 133, 129, 141, 136, 132, 150, 145, 141, 152, 147, 143, 161, 156, 152, 156, 151, 147, 138, 133, 129, 131, 126, 122, 143, 138, 134, 153, 148, 144, 154, 149, 145, 169, 164, 160, 164, 159, 155, 158, 153, 149, 157, 152, 148, 162, 157, 153, 170, 165, 161, 176, 171, 167, 180, 175, 171, 170, 165, 161, 172, 167, 163, 171, 166, 162, 166, 161, 157, 159, 154, 150, 158, 153, 149, 164, 159, 155, 170, 165, 161, 169, 164, 160, 173, 168, 164, 177, 172, 168, 178, 173, 169, 175, 170, 166, 170, 165, 161, 167, 162, 158, 166, 161, 157, 172, 167, 163, 173, 168, 164, 173, 168, 164, 173, 168, 164, 172, 167, 163, 170, 165, 161, 168, 163, 159, 167, 162, 158, 159, 149, 147, 163, 153, 151, 169, 159, 157, 173, 163, 161, 177, 167, 165, 181, 171, 169, 185, 177, 174, 189, 181, 178, 194, 186, 183, 195, 187, 184, 194, 189, 185, 194, 189, 185, 195, 190, 186, 198, 193, 189, 203, 198, 194, 206, 202, 199, 204, 203, 201, 205, 204, 202, 206, 205, 203, 205, 204, 202, 206, 204, 205, 208, 206, 207, 212, 212, 214, 217, 217, 219, 218, 219, 223, 223, 224, 228, 227, 231, 234, 232, 236, 239, 235, 238, 243, 237, 240, 245, 238, 243, 247, 241, 246, 250, 241, 245, 248, 241, 245, 248, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 234, 238, 241, 234, 238, 241, 234, 238, 241, 234, 238, 241, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 237, 240, 247, 237, 240, 247, 237, 240, 247, 238, 241, 248, 238, 241, 248, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 243, 247, 238, 243, 249, 235, 242, 248, 235, 242, 248, 234, 241, 247, 235, 240, 246, 234, 239, 245, 234, 239, 245, 234, 239, 245, 233, 236, 243, 227, 230, 237, 223, 224, 229, 222, 223, 228, 223, 224, 229, 220, 221, 226, 212, 213, 218, 206, 205, 211, 193, 188, 192, 186, 180, 182, 175, 166, 169, 165, 156, 157, 158, 148, 147, 153, 142, 140, 150, 136, 133, 147, 134, 128, 142, 129, 123, 137, 124, 118, 129, 118, 114, 119, 108, 104, 100, 90, 88, 80, 70, 68, 69, 61, 58, 69, 59, 58, 87, 75, 77, 92, 77, 80, 87, 72, 75, 72, 57, 60, 61, 46, 49, 65, 50, 53, 79, 63, 66, 89, 73, 74, 99, 83, 84, 109, 93, 94, 118, 102, 103, 122, 106, 106, 129, 111, 111, 133, 117, 117, 137, 119, 119, 136, 118, 118, 131, 111, 110, 136, 116, 115, 140, 120, 119, 138, 120, 118, 135, 117, 115, 135, 120, 117, 141, 126, 123, 147, 133, 130, 142, 131, 127, 145, 134, 130, 147, 138, 133, 146, 137, 132, 144, 137, 131, 147, 140, 134, 152, 147, 141, 161, 154, 148, 167, 156, 152, 173, 159, 156, 158, 144, 141, 126, 112, 109, 88, 77, 73, 59, 48, 44, 62, 51, 47, 87, 76, 72, 105, 96, 91, 123, 114, 109, 120, 111, 106, 91, 82, 77, 74, 65, 60, 94, 85, 80, 129, 120, 115, 150, 141, 136, 139, 131, 129, 156, 148, 146, 142, 134, 132, 100, 92, 90, 87, 79, 77, 111, 103, 101, 122, 114, 112, 109, 101, 99, 122, 114, 112, 124, 116, 114, 125, 117, 115, 130, 122, 120, 130, 122, 120, 115, 107, 105, 107, 99, 97, 118, 110, 108, 118, 107, 105, 105, 94, 92, 86, 75, 73, 70, 60, 58, 67, 57, 55, 78, 68, 66, 98, 88, 86, 112, 104, 101, 150, 142, 139, 140, 135, 131, 140, 135, 131, 148, 143, 139, 145, 142, 137, 133, 130, 125, 130, 127, 120, 136, 133, 126, 127, 120, 114, 134, 127, 121, 143, 136, 130, 143, 136, 130, 130, 123, 117, 122, 115, 109, 134, 127, 121, 153, 146, 140, 147, 140, 134, 146, 139, 133, 143, 136, 130, 139, 132, 126, 139, 132, 126, 142, 135, 129, 144, 137, 131, 143, 136, 130, 125, 116, 111, 124, 117, 111, 122, 115, 109, 112, 107, 101, 104, 99, 93, 108, 103, 97, 128, 125, 118, 150, 147, 140, 134, 131, 124, 151, 148, 141, 165, 160, 154, 157, 152, 146, 141, 134, 128, 125, 118, 112, 119, 110, 105, 117, 108, 103, 94, 84, 82, 139, 129, 127, 158, 148, 146, 141, 131, 129, 130, 120, 118, 127, 117, 115, 114, 104, 103, 99, 89, 88, 160, 150, 149, 152, 142, 141, 138, 128, 129, 115, 105, 106, 91, 81, 82, 84, 74, 75, 94, 84, 85, 103, 93, 94, 95, 85, 84, 97, 87, 86, 87, 79, 77, 103, 95, 93, 116, 111, 108, 75, 70, 67, 49, 44, 41, 85, 80, 77, 99, 94, 91, 98, 93, 90, 76, 71, 68, 97, 92, 89, 128, 120, 118, 120, 112, 110, 108, 98, 97, 87, 77, 76, 116, 105, 103, 121, 110, 108, 109, 98, 96, 112, 101, 99, 85, 74, 70, 109, 98, 94, 105, 94, 88, 98, 87, 81, 129, 118, 112, 156, 145, 139, 161, 150, 146, 148, 137, 133, 150, 139, 137, 156, 145, 143, 145, 134, 132, 131, 121, 119, 164, 155, 150, 167, 160, 154, 159, 150, 145, 161, 152, 147, 125, 116, 111, 137, 128, 123, 128, 117, 115, 126, 115, 113, 169, 159, 157, 142, 132, 130, 133, 125, 122, 169, 161, 158, 175, 170, 167, 168, 163, 160, 185, 181, 178, 182, 181, 177, 194, 193, 191, 220, 220, 218, 222, 222, 220, 214, 214, 212, 224, 224, 222, 225, 225, 223, 222, 222, 220, 237, 237, 235, 228, 228, 226, 233, 233, 231, 238, 238, 236, 239, 239, 237, 238, 238, 236, 238, 238, 236, 241, 241, 239, 244, 244, 242, 242, 244, 241, 242, 244, 241, 242, 244, 241, 242, 244, 241, 242, 244, 241, 242, 244, 241, 242, 244, 241, 242, 244, 241, 236, 238, 235, 236, 238, 235, 234, 236, 233, 231, 233, 230, 229, 231, 228, 227, 229, 226, 225, 227, 224, 225, 226, 221, 224, 220, 217, 218, 213, 209, 207, 199, 196, 179, 171, 168, 185, 175, 173, 195, 185, 183, 175, 164, 162, 173, 162, 160, 143, 129, 128, 185, 174, 172, 167, 156, 154, 156, 145, 143, 173, 162, 160, 166, 156, 154, 164, 154, 152, 167, 157, 155, 121, 110, 106, 136, 125, 121, 157, 146, 142, 140, 129, 125, 123, 112, 108, 172, 161, 157, 133, 122, 118, 119, 108, 104, 128, 117, 113, 156, 145, 141, 159, 148, 144, 137, 126, 122, 129, 118, 114, 138, 127, 123, 148, 137, 133, 154, 143, 139, 107, 96, 92, 87, 76, 72, 130, 119, 115, 163, 152, 148, 158, 147, 143, 124, 113, 109, 95, 84, 80, 127, 116, 112, 134, 123, 119, 128, 117, 113, 99, 88, 84, 105, 94, 90, 143, 132, 128, 121, 110, 106, 88, 77, 73, 117, 106, 102, 123, 113, 111, 125, 115, 113, 121, 111, 109, 108, 98, 96, 124, 113, 109, 102, 91, 87, 127, 116, 112, 132, 121, 117, 100, 89, 83, 110, 99, 93, 121, 108, 102, 109, 96, 90, 106, 93, 87, 72, 59, 53, 107, 94, 88, 123, 110, 102, 108, 94, 83, 82, 65, 49, 54, 33, 12, 51, 30, 1, 67, 42, 11, 71, 45, 12, 62, 35, 5, 53, 29, 1, 36, 18, 0, 25, 11, 0, 16, 9, 3, 13, 11, 12, 12, 18, 18, 10, 20, 21, 13, 25, 25, 10, 34, 38, 0, 37, 47, 0, 35, 46, 44, 93, 97, 208, 250, 248, 235, 255, 255, 242, 255, 255, 245, 255, 255, 211, 228, 235, 128, 156, 168, 62, 101, 118, 9, 56, 76, 0, 35, 56, 0, 40, 60, 0, 42, 59, 0, 34, 45, 12, 55, 64, 9, 46, 55, 13, 45, 56, 15, 43, 54, 15, 39, 49, 14, 34, 43, 13, 30, 40, 13, 30, 40, 13, 31, 41, 13, 33, 44, 2, 29, 36, 5, 34, 38, 16, 51, 47, 29, 67, 56, 36, 77, 59, 49, 93, 68, 70, 107, 76, 93, 115, 77, 114, 123, 80, 131, 128, 83, 141, 127, 80, 152, 126, 77, 163, 133, 83, 172, 141, 95, 174, 145, 103, 164, 138, 103, 159, 134, 103, 162, 135, 108, 171, 139, 114, 173, 139, 111, 161, 126, 94, 146, 111, 73, 135, 101, 64, 125, 98, 69, 86, 71, 52, 92, 93, 87, 150, 158, 161, 175, 184, 191, 150, 157, 163, 134, 132, 135, 135, 129, 129, 139, 134, 131, 148, 140, 137, 153, 143, 141, 149, 140, 133, 145, 132, 123, 143, 133, 123, 152, 145, 135, 160, 156, 147, 157, 152, 146, 160, 155, 149, 160, 155, 149, 159, 154, 148, 160, 155, 149, 163, 158, 152, 161, 156, 150, 156, 151, 145, 158, 153, 147, 161, 156, 150, 174, 169, 163, 176, 171, 165, 160, 155, 149, 154, 149, 143, 164, 159, 153, 170, 165, 159, 125, 120, 116, 128, 123, 119, 139, 134, 130, 148, 143, 139, 140, 135, 131, 125, 120, 116, 128, 123, 119, 142, 137, 133, 150, 145, 141, 152, 147, 143, 147, 142, 138, 142, 137, 133, 151, 146, 142, 167, 162, 158, 170, 165, 161, 161, 156, 152, 157, 152, 148, 157, 152, 148, 159, 154, 150, 162, 157, 153, 165, 160, 156, 166, 161, 157, 164, 159, 155, 161, 156, 152, 160, 155, 151, 155, 150, 146, 148, 143, 139, 146, 141, 137, 149, 144, 140, 158, 153, 149, 166, 161, 157, 172, 167, 163, 175, 170, 166, 176, 171, 167, 176, 171, 167, 174, 169, 165, 172, 167, 163, 172, 167, 163, 174, 169, 165, 176, 171, 167, 175, 170, 166, 174, 169, 165, 171, 166, 162, 168, 163, 159, 165, 160, 156, 161, 156, 152, 159, 154, 150, 157, 152, 148, 175, 165, 163, 176, 166, 164, 177, 167, 165, 175, 165, 163, 174, 164, 162, 176, 166, 164, 178, 170, 167, 182, 174, 171, 194, 186, 183, 196, 188, 185, 195, 190, 186, 196, 191, 187, 197, 192, 188, 200, 195, 191, 205, 200, 196, 208, 205, 200, 203, 199, 198, 203, 202, 200, 205, 204, 202, 205, 204, 202, 205, 203, 204, 207, 205, 206, 210, 210, 212, 213, 213, 215, 216, 217, 221, 221, 222, 226, 226, 230, 233, 231, 235, 238, 233, 236, 241, 235, 238, 243, 237, 242, 246, 239, 244, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 234, 238, 241, 234, 238, 241, 234, 238, 241, 234, 238, 241, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 237, 240, 247, 237, 240, 247, 237, 240, 247, 238, 241, 248, 238, 241, 248, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 243, 247, 238, 243, 249, 236, 243, 249, 235, 242, 248, 234, 241, 247, 235, 240, 246, 235, 240, 246, 234, 239, 245, 234, 239, 245, 236, 241, 247, 231, 236, 242, 228, 231, 238, 228, 231, 238, 229, 232, 239, 227, 230, 237, 221, 224, 231, 217, 218, 223, 204, 203, 208, 194, 192, 195, 183, 179, 180, 175, 169, 169, 172, 164, 162, 165, 155, 153, 155, 144, 140, 149, 136, 130, 132, 119, 113, 129, 116, 108, 128, 115, 109, 124, 113, 109, 110, 100, 98, 90, 80, 78, 71, 63, 61, 63, 55, 53, 83, 73, 74, 92, 80, 84, 94, 82, 86, 84, 72, 76, 75, 63, 67, 75, 63, 65, 85, 70, 73, 90, 75, 78, 101, 86, 89, 114, 99, 102, 127, 112, 115, 136, 122, 122, 144, 128, 129, 149, 135, 135, 152, 136, 137, 150, 134, 134, 151, 131, 130, 149, 129, 128, 146, 126, 125, 141, 123, 121, 137, 119, 117, 133, 118, 115, 133, 118, 115, 132, 118, 115, 130, 119, 115, 144, 133, 129, 158, 149, 144, 161, 154, 148, 153, 146, 140, 144, 137, 131, 140, 135, 129, 143, 136, 130, 163, 152, 148, 173, 159, 156, 169, 155, 152, 151, 137, 134, 117, 106, 102, 76, 65, 61, 59, 48, 44, 69, 58, 54, 84, 75, 70, 108, 99, 94, 122, 113, 108, 108, 99, 94, 85, 76, 71, 80, 71, 66, 96, 87, 82, 113, 104, 99, 137, 129, 127, 160, 155, 152, 158, 153, 150, 125, 120, 117, 111, 106, 103, 127, 122, 119, 131, 126, 123, 116, 111, 108, 99, 94, 91, 79, 74, 71, 67, 62, 59, 88, 83, 80, 115, 110, 107, 116, 111, 108, 113, 108, 105, 127, 119, 117, 146, 138, 136, 137, 127, 126, 124, 114, 113, 114, 106, 104, 115, 107, 105, 124, 116, 114, 133, 125, 122, 137, 132, 128, 149, 144, 140, 141, 136, 132, 140, 135, 129, 145, 142, 135, 142, 139, 132, 133, 130, 123, 136, 133, 126, 147, 144, 137, 131, 124, 118, 135, 128, 122, 144, 137, 131, 154, 147, 141, 154, 147, 141, 146, 139, 133, 140, 133, 127, 140, 133, 127, 161, 154, 148, 160, 153, 147, 149, 142, 136, 140, 133, 127, 149, 142, 136, 164, 157, 151, 162, 155, 149, 148, 141, 135, 127, 120, 114, 134, 127, 121, 141, 134, 128, 138, 133, 127, 133, 128, 122, 128, 125, 118, 131, 128, 121, 136, 133, 126, 132, 129, 122, 131, 128, 121, 137, 134, 127, 150, 147, 140, 160, 155, 149, 156, 151, 145, 148, 141, 135, 142, 135, 129, 121, 112, 107, 88, 79, 74, 93, 84, 79, 137, 128, 123, 162, 152, 150, 152, 142, 140, 128, 118, 116, 111, 101, 99, 98, 88, 87, 140, 130, 129, 157, 147, 146, 136, 126, 125, 102, 92, 91, 73, 63, 62, 79, 69, 68, 114, 104, 103, 99, 89, 88, 81, 71, 70, 58, 50, 48, 81, 73, 71, 113, 108, 105, 83, 78, 75, 46, 41, 38, 60, 55, 52, 106, 101, 98, 111, 106, 103, 87, 82, 79, 84, 79, 76, 108, 100, 98, 117, 109, 107, 102, 92, 91, 65, 55, 54, 105, 94, 92, 124, 113, 111, 98, 87, 85, 115, 104, 102, 98, 87, 83, 99, 88, 84, 112, 101, 95, 88, 77, 71, 146, 135, 129, 157, 146, 140, 152, 141, 137, 143, 132, 128, 150, 139, 137, 155, 144, 142, 148, 137, 135, 142, 132, 130, 151, 142, 137, 168, 161, 155, 153, 144, 139, 153, 144, 139, 148, 139, 134, 160, 151, 146, 145, 134, 132, 139, 128, 126, 161, 151, 149, 131, 121, 119, 133, 125, 122, 177, 169, 166, 178, 173, 170, 170, 165, 162, 194, 190, 187, 190, 189, 185, 202, 201, 199, 224, 224, 222, 226, 226, 224, 219, 219, 217, 224, 224, 222, 222, 222, 220, 220, 220, 218, 233, 233, 231, 230, 230, 228, 234, 234, 232, 238, 238, 236, 239, 239, 237, 239, 239, 237, 240, 240, 238, 242, 242, 240, 244, 244, 242, 243, 245, 242, 243, 245, 242, 243, 245, 242, 243, 245, 242, 243, 245, 242, 243, 245, 242, 243, 245, 242, 243, 245, 242, 239, 241, 238, 238, 240, 237, 236, 238, 235, 234, 236, 233, 231, 233, 230, 229, 231, 228, 227, 229, 226, 227, 228, 223, 231, 230, 226, 219, 216, 211, 211, 206, 202, 194, 189, 185, 199, 191, 188, 199, 191, 188, 177, 167, 165, 179, 169, 167, 166, 155, 153, 189, 178, 176, 172, 161, 159, 167, 157, 155, 182, 172, 170, 174, 164, 162, 170, 160, 158, 176, 166, 164, 149, 138, 134, 141, 130, 126, 163, 152, 148, 134, 123, 119, 88, 77, 73, 162, 151, 147, 161, 150, 146, 140, 129, 125, 137, 126, 122, 119, 108, 104, 124, 113, 109, 140, 129, 125, 133, 122, 118, 120, 109, 105, 130, 119, 115, 146, 135, 131, 128, 117, 113, 67, 56, 52, 116, 105, 101, 149, 138, 134, 156, 145, 141, 148, 137, 133, 96, 85, 81, 112, 101, 97, 133, 122, 118, 131, 120, 116, 105, 94, 90, 92, 81, 77, 141, 130, 126, 135, 124, 120, 88, 77, 73, 134, 123, 119, 130, 120, 118, 118, 108, 106, 140, 130, 128, 115, 105, 103, 121, 110, 106, 119, 108, 104, 130, 119, 115, 129, 118, 114, 100, 89, 83, 114, 103, 97, 120, 107, 101, 105, 92, 86, 100, 87, 81, 84, 71, 65, 116, 103, 97, 120, 106, 97, 97, 81, 65, 47, 29, 7, 42, 21, 0, 62, 39, 8, 59, 35, 1, 67, 41, 8, 69, 44, 13, 41, 20, 0, 36, 19, 1, 24, 12, 0, 14, 9, 3, 13, 15, 12, 15, 20, 23, 13, 24, 26, 12, 26, 27, 9, 30, 35, 9, 41, 54, 0, 36, 49, 101, 140, 147, 233, 255, 255, 241, 255, 255, 248, 255, 255, 254, 255, 255, 251, 255, 255, 242, 255, 255, 202, 230, 241, 78, 114, 128, 6, 45, 60, 0, 33, 47, 0, 19, 31, 0, 24, 32, 0, 35, 41, 2, 31, 37, 7, 32, 37, 11, 35, 39, 12, 33, 38, 12, 30, 34, 12, 27, 34, 11, 25, 34, 12, 26, 37, 6, 22, 35, 5, 25, 36, 7, 30, 38, 12, 40, 43, 22, 54, 49, 36, 74, 61, 52, 94, 74, 67, 106, 77, 92, 120, 82, 102, 119, 75, 123, 126, 79, 146, 136, 85, 158, 137, 82, 160, 134, 77, 169, 139, 85, 181, 151, 101, 174, 146, 99, 174, 146, 106, 175, 145, 111, 175, 142, 111, 176, 141, 109, 173, 139, 104, 161, 127, 89, 148, 114, 76, 116, 82, 45, 85, 61, 35, 89, 85, 74, 147, 153, 153, 175, 184, 191, 145, 154, 161, 122, 121, 126, 127, 123, 122, 149, 144, 141, 157, 149, 146, 165, 155, 153, 164, 155, 148, 158, 145, 137, 151, 141, 131, 158, 151, 141, 169, 165, 156, 168, 163, 157, 183, 178, 172, 191, 186, 180, 181, 176, 170, 163, 158, 152, 156, 151, 145, 160, 155, 149, 166, 161, 155, 161, 156, 150, 153, 148, 142, 154, 149, 143, 160, 155, 149, 165, 160, 154, 171, 166, 160, 165, 160, 154, 145, 140, 134, 136, 131, 127, 144, 139, 135, 155, 150, 146, 156, 151, 147, 139, 134, 130, 123, 118, 114, 128, 123, 119, 146, 141, 137, 169, 164, 160, 170, 165, 161, 165, 160, 156, 158, 153, 149, 162, 157, 153, 169, 164, 160, 165, 160, 156, 152, 147, 143, 165, 160, 156, 165, 160, 156, 166, 161, 157, 168, 163, 159, 170, 165, 161, 169, 164, 160, 166, 161, 157, 162, 157, 153, 167, 162, 158, 159, 154, 150, 151, 146, 142, 152, 147, 143, 161, 156, 152, 170, 165, 161, 174, 169, 165, 174, 169, 165, 165, 160, 156, 168, 163, 159, 172, 167, 163, 173, 168, 164, 174, 169, 165, 176, 171, 167, 179, 174, 170, 182, 177, 173, 170, 165, 161, 169, 164, 160, 168, 163, 159, 167, 162, 158, 167, 162, 158, 167, 162, 158, 168, 163, 159, 169, 164, 160, 178, 168, 166, 179, 169, 167, 178, 168, 166, 177, 167, 165, 177, 167, 165, 180, 170, 168, 185, 175, 173, 190, 180, 178, 185, 177, 174, 187, 179, 176, 189, 181, 178, 190, 182, 179, 188, 183, 179, 191, 186, 182, 195, 190, 186, 198, 195, 190, 198, 194, 193, 199, 198, 196, 203, 202, 200, 205, 204, 202, 206, 204, 205, 207, 205, 206, 208, 208, 210, 210, 210, 212, 215, 216, 220, 220, 221, 225, 224, 228, 231, 229, 233, 236, 231, 234, 239, 234, 237, 242, 235, 240, 244, 237, 242, 246, 241, 245, 248, 241, 245, 248, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 234, 238, 241, 234, 238, 241, 234, 238, 241, 234, 238, 241, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 237, 240, 247, 237, 240, 247, 237, 240, 247, 238, 241, 248, 238, 241, 248, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 238, 243, 249, 236, 243, 249, 235, 242, 248, 235, 242, 248, 236, 241, 247, 235, 240, 246, 235, 240, 246, 234, 239, 245, 237, 242, 248, 234, 239, 245, 233, 236, 243, 233, 236, 243, 234, 237, 244, 233, 236, 243, 229, 232, 239, 225, 228, 235, 211, 212, 217, 199, 200, 204, 185, 185, 187, 177, 175, 176, 174, 168, 168, 166, 158, 155, 151, 140, 136, 140, 127, 121, 121, 108, 100, 109, 96, 88, 104, 91, 85, 113, 100, 94, 118, 107, 105, 107, 97, 95, 84, 74, 73, 66, 58, 56, 66, 56, 57, 74, 65, 68, 81, 70, 74, 81, 70, 74, 81, 70, 74, 81, 71, 72, 79, 67, 69, 74, 64, 65, 79, 67, 69, 92, 80, 82, 108, 96, 98, 120, 108, 108, 134, 120, 120, 145, 133, 133, 154, 140, 140, 154, 140, 139, 163, 145, 145, 158, 140, 138, 151, 133, 131, 143, 128, 125, 137, 122, 119, 128, 114, 111, 117, 103, 100, 106, 95, 91, 117, 106, 102, 129, 120, 115, 146, 137, 132, 154, 147, 141, 151, 144, 138, 142, 135, 129, 131, 126, 120, 128, 121, 115, 133, 122, 118, 142, 128, 125, 142, 128, 125, 143, 129, 126, 146, 135, 131, 131, 120, 116, 100, 89, 85, 82, 71, 67, 84, 75, 70, 94, 85, 80, 109, 100, 95, 119, 110, 105, 114, 105, 100, 99, 90, 85, 87, 78, 73, 81, 74, 68, 89, 81, 79, 102, 97, 94, 119, 114, 111, 130, 125, 122, 136, 131, 128, 141, 136, 133, 144, 139, 136, 145, 140, 137, 139, 134, 131, 118, 113, 110, 90, 85, 82, 82, 77, 74, 92, 87, 84, 99, 94, 91, 110, 105, 102, 130, 125, 122, 117, 112, 109, 116, 111, 108, 116, 111, 108, 121, 116, 113, 128, 123, 120, 131, 126, 123, 129, 124, 120, 125, 120, 116, 136, 131, 127, 145, 140, 136, 144, 141, 134, 133, 130, 123, 133, 130, 123, 146, 143, 136, 154, 151, 144, 153, 148, 142, 144, 137, 131, 129, 122, 116, 120, 113, 107, 129, 122, 116, 144, 137, 131, 148, 141, 135, 134, 127, 121, 119, 112, 106, 141, 134, 128, 142, 135, 129, 139, 132, 126, 137, 130, 124, 145, 138, 132, 157, 150, 144, 158, 151, 145, 152, 145, 139, 175, 168, 162, 175, 168, 162, 170, 163, 157, 158, 153, 147, 149, 144, 138, 147, 144, 137, 150, 147, 140, 153, 150, 143, 142, 139, 132, 120, 117, 110, 109, 106, 99, 127, 122, 116, 149, 144, 138, 157, 150, 144, 153, 146, 140, 150, 143, 137, 145, 136, 131, 131, 122, 117, 113, 104, 99, 96, 87, 82, 111, 101, 99, 161, 151, 149, 165, 155, 153, 113, 103, 101, 97, 87, 86, 112, 102, 101, 127, 117, 116, 139, 129, 128, 141, 131, 130, 123, 113, 112, 94, 84, 83, 78, 68, 67, 118, 108, 107, 96, 86, 85, 82, 74, 72, 74, 66, 64, 80, 75, 72, 105, 100, 97, 91, 86, 83, 37, 32, 29, 77, 72, 69, 116, 111, 108, 108, 103, 100, 69, 64, 61, 78, 70, 68, 118, 110, 108, 115, 105, 104, 67, 57, 56, 92, 81, 79, 131, 120, 118, 101, 90, 88, 125, 114, 112, 110, 99, 95, 83, 72, 68, 114, 103, 97, 84, 73, 67, 160, 149, 143, 150, 139, 133, 133, 122, 118, 135, 124, 120, 152, 141, 139, 156, 145, 143, 148, 137, 135, 145, 135, 133, 155, 146, 141, 177, 170, 164, 145, 136, 131, 136, 127, 122, 162, 153, 148, 174, 165, 160, 155, 144, 142, 135, 124, 122, 144, 134, 132, 126, 116, 114, 142, 134, 131, 188, 180, 177, 182, 177, 174, 171, 166, 163, 198, 194, 191, 199, 198, 194, 208, 207, 205, 224, 224, 222, 227, 227, 225, 222, 222, 220, 222, 222, 220, 217, 217, 215, 216, 216, 214, 228, 228, 226, 232, 232, 230, 234, 234, 232, 237, 237, 235, 240, 240, 238, 241, 241, 239, 242, 242, 240, 243, 243, 241, 244, 244, 242, 245, 247, 244, 245, 247, 244, 245, 247, 244, 245, 247, 244, 245, 247, 244, 245, 247, 244, 245, 247, 244, 245, 247, 244, 241, 243, 240, 241, 243, 240, 239, 241, 238, 236, 238, 235, 234, 236, 233, 232, 234, 231, 230, 232, 229, 230, 230, 228, 232, 231, 227, 213, 210, 205, 211, 206, 202, 206, 201, 197, 209, 201, 198, 204, 196, 193, 183, 173, 171, 186, 176, 174, 187, 177, 175, 192, 182, 180, 178, 168, 166, 171, 161, 159, 173, 163, 161, 163, 155, 152, 162, 154, 151, 175, 167, 164, 161, 152, 147, 174, 163, 159, 154, 143, 139, 160, 149, 145, 99, 88, 84, 125, 114, 110, 185, 174, 170, 168, 157, 153, 155, 144, 140, 100, 89, 85, 94, 83, 79, 131, 120, 116, 139, 128, 124, 128, 117, 113, 124, 113, 109, 119, 108, 104, 148, 137, 133, 84, 73, 69, 106, 95, 91, 141, 130, 126, 152, 141, 137, 154, 143, 139, 116, 105, 101, 94, 83, 79, 121, 110, 106, 125, 114, 110, 123, 112, 108, 95, 84, 80, 121, 110, 106, 128, 117, 113, 98, 87, 83, 152, 141, 137, 131, 121, 119, 109, 99, 97, 150, 140, 138, 119, 109, 107, 120, 109, 105, 132, 121, 117, 134, 123, 119, 127, 116, 112, 108, 97, 91, 124, 113, 107, 121, 108, 102, 104, 91, 85, 92, 79, 73, 93, 80, 74, 118, 105, 99, 107, 93, 82, 67, 49, 27, 36, 15, 0, 45, 22, 0, 64, 39, 8, 57, 31, 0, 64, 40, 6, 67, 44, 13, 33, 13, 0, 33, 18, 0, 21, 13, 0, 14, 14, 6, 18, 23, 19, 20, 28, 30, 16, 27, 29, 9, 23, 26, 3, 22, 29, 0, 14, 29, 16, 45, 61, 161, 191, 201, 235, 255, 255, 236, 251, 254, 246, 254, 255, 249, 250, 254, 247, 250, 255, 244, 255, 255, 238, 255, 255, 105, 135, 146, 8, 40, 51, 1, 29, 41, 0, 22, 33, 7, 37, 45, 0, 21, 25, 0, 20, 27, 5, 23, 27, 8, 26, 28, 8, 26, 28, 6, 24, 26, 6, 21, 26, 5, 20, 27, 6, 20, 31, 4, 16, 32, 9, 22, 38, 10, 28, 42, 8, 31, 39, 15, 44, 42, 35, 68, 59, 54, 93, 75, 66, 106, 79, 79, 115, 77, 91, 118, 73, 116, 128, 80, 140, 138, 87, 153, 141, 83, 157, 137, 78, 162, 138, 78, 168, 142, 83, 176, 149, 96, 184, 156, 108, 188, 156, 115, 185, 151, 113, 185, 150, 112, 186, 151, 113, 176, 141, 101, 162, 125, 83, 117, 76, 32, 111, 78, 43, 119, 107, 91, 170, 172, 169, 210, 219, 224, 186, 195, 202, 144, 145, 149, 128, 126, 127, 145, 141, 140, 160, 155, 152, 173, 165, 162, 171, 162, 155, 164, 154, 145, 164, 154, 145, 168, 161, 151, 171, 167, 158, 173, 168, 162, 180, 175, 169, 180, 175, 169, 170, 165, 159, 160, 155, 149, 157, 152, 146, 159, 154, 148, 159, 154, 148, 153, 148, 142, 142, 137, 131, 138, 133, 127, 141, 136, 130, 153, 148, 142, 167, 162, 156, 158, 153, 147, 129, 124, 118, 153, 148, 144, 153, 148, 144, 157, 152, 148, 164, 159, 155, 164, 159, 155, 162, 157, 153, 167, 162, 158, 176, 171, 167, 162, 157, 153, 172, 167, 163, 175, 170, 166, 169, 164, 160, 164, 159, 155, 167, 162, 158, 171, 166, 162, 171, 166, 162, 178, 173, 169, 171, 166, 162, 164, 159, 155, 160, 155, 151, 162, 157, 153, 168, 163, 159, 173, 168, 164, 176, 171, 167, 171, 166, 162, 168, 163, 159, 166, 161, 157, 167, 162, 158, 169, 164, 160, 167, 162, 158, 162, 157, 153, 157, 152, 148, 150, 145, 141, 158, 153, 149, 169, 164, 160, 177, 172, 168, 180, 175, 171, 179, 174, 170, 177, 172, 168, 175, 170, 166, 171, 166, 162, 171, 166, 162, 170, 165, 161, 171, 166, 162, 173, 168, 164, 176, 171, 167, 180, 175, 171, 184, 176, 173, 175, 165, 163, 178, 168, 166, 180, 170, 168, 182, 172, 170, 183, 173, 171, 185, 175, 173, 190, 180, 178, 193, 183, 181, 182, 174, 171, 184, 176, 173, 186, 178, 175, 186, 178, 175, 183, 178, 174, 184, 179, 175, 186, 181, 177, 189, 184, 180, 195, 191, 190, 197, 196, 194, 203, 202, 200, 206, 205, 203, 207, 205, 206, 207, 205, 206, 207, 207, 209, 208, 208, 210, 213, 214, 218, 218, 219, 223, 223, 227, 230, 227, 231, 234, 230, 233, 238, 232, 235, 240, 234, 239, 243, 236, 241, 245, 241, 245, 248, 241, 245, 248, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 234, 238, 241, 234, 238, 241, 234, 238, 241, 234, 238, 241, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 237, 240, 247, 237, 240, 247, 237, 240, 247, 238, 241, 248, 238, 241, 248, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 237, 242, 246, 236, 241, 247, 236, 241, 247, 235, 240, 246, 235, 240, 246, 236, 241, 247, 235, 240, 246, 234, 238, 247, 234, 238, 247, 234, 238, 247, 233, 237, 246, 230, 234, 243, 228, 233, 239, 216, 221, 227, 203, 208, 212, 188, 192, 195, 180, 180, 182, 175, 171, 170, 163, 158, 154, 146, 137, 132, 134, 121, 115, 133, 120, 112, 118, 103, 96, 107, 92, 87, 111, 98, 92, 118, 104, 103, 110, 99, 97, 93, 81, 81, 78, 68, 67, 57, 48, 49, 55, 49, 49, 56, 47, 48, 59, 50, 51, 68, 59, 60, 76, 67, 68, 73, 63, 64, 64, 56, 54, 70, 60, 59, 81, 71, 70, 92, 82, 81, 100, 90, 89, 111, 99, 99, 123, 113, 111, 133, 122, 120, 136, 125, 123, 147, 131, 131, 145, 129, 129, 143, 127, 127, 143, 129, 128, 142, 128, 127, 133, 119, 118, 119, 105, 104, 106, 95, 93, 117, 106, 104, 113, 103, 101, 112, 102, 100, 117, 107, 105, 123, 115, 112, 129, 121, 118, 130, 122, 119, 129, 119, 117, 110, 99, 95, 117, 103, 100, 107, 93, 90, 107, 93, 90, 133, 122, 118, 149, 138, 134, 128, 117, 113, 101, 90, 86, 95, 86, 81, 95, 86, 81, 99, 90, 85, 100, 91, 86, 91, 82, 77, 80, 71, 66, 82, 73, 68, 90, 83, 77, 89, 81, 79, 94, 89, 86, 108, 103, 100, 124, 119, 116, 137, 132, 129, 145, 140, 137, 148, 143, 140, 149, 144, 141, 151, 146, 143, 167, 162, 159, 155, 150, 147, 121, 116, 113, 101, 96, 93, 105, 100, 97, 128, 123, 120, 155, 150, 147, 146, 142, 141, 146, 142, 141, 148, 144, 141, 152, 148, 145, 156, 152, 149, 154, 150, 147, 146, 143, 138, 139, 136, 131, 137, 134, 129, 145, 142, 137, 143, 140, 133, 132, 129, 122, 134, 130, 121, 148, 144, 135, 155, 151, 142, 151, 147, 138, 166, 159, 153, 160, 153, 147, 149, 142, 136, 140, 133, 127, 141, 134, 128, 154, 147, 141, 170, 163, 157, 180, 173, 167, 158, 151, 145, 146, 139, 133, 140, 133, 127, 143, 136, 130, 142, 135, 129, 132, 125, 119, 121, 114, 108, 118, 111, 105, 144, 135, 128, 162, 153, 146, 177, 168, 161, 175, 168, 160, 164, 157, 149, 152, 148, 139, 141, 137, 128, 132, 128, 119, 117, 113, 104, 111, 107, 98, 114, 110, 101, 128, 121, 113, 132, 125, 117, 131, 122, 115, 135, 126, 119, 144, 135, 128, 131, 122, 115, 151, 142, 135, 166, 157, 152, 137, 128, 123, 98, 89, 84, 111, 102, 97, 141, 132, 127, 139, 130, 125, 121, 111, 109, 100, 90, 88, 107, 97, 95, 121, 111, 109, 121, 111, 109, 130, 120, 118, 129, 119, 117, 102, 92, 90, 93, 83, 82, 89, 79, 78, 90, 82, 80, 73, 65, 63, 58, 53, 50, 92, 87, 84, 112, 107, 104, 84, 79, 76, 48, 43, 40, 98, 93, 90, 115, 110, 107, 74, 69, 66, 65, 57, 55, 107, 99, 97, 122, 112, 111, 100, 90, 89, 91, 80, 78, 136, 125, 123, 106, 95, 93, 119, 108, 106, 103, 92, 88, 62, 51, 47, 114, 103, 97, 98, 87, 81, 161, 150, 144, 144, 133, 127, 129, 118, 114, 140, 129, 125, 156, 145, 143, 148, 137, 135, 140, 129, 127, 149, 139, 137, 167, 158, 153, 188, 181, 175, 142, 133, 128, 120, 111, 106, 164, 155, 150, 175, 166, 161, 159, 148, 146, 121, 110, 108, 121, 111, 109, 126, 116, 114, 147, 139, 136, 187, 179, 176, 180, 175, 172, 166, 161, 158, 191, 187, 184, 198, 197, 193, 210, 209, 207, 220, 220, 218, 225, 225, 223, 223, 223, 221, 219, 219, 217, 212, 212, 210, 213, 213, 211, 224, 224, 222, 235, 235, 233, 235, 235, 233, 237, 237, 235, 240, 240, 238, 243, 243, 241, 245, 245, 243, 245, 245, 243, 244, 244, 242, 245, 247, 244, 245, 247, 244, 245, 247, 244, 245, 247, 244, 245, 247, 244, 245, 247, 244, 245, 247, 244, 245, 247, 244, 244, 246, 243, 243, 245, 242, 241, 243, 240, 239, 241, 238, 236, 238, 235, 234, 236, 233, 232, 234, 231, 232, 232, 230, 227, 226, 222, 202, 201, 197, 208, 204, 201, 210, 206, 203, 212, 207, 204, 208, 203, 200, 190, 182, 180, 193, 185, 183, 185, 177, 175, 182, 174, 172, 180, 172, 170, 171, 163, 161, 162, 154, 152, 157, 152, 149, 167, 162, 159, 192, 184, 181, 166, 157, 152, 176, 165, 161, 154, 143, 139, 185, 174, 170, 138, 127, 123, 118, 107, 103, 147, 136, 132, 159, 148, 144, 143, 132, 128, 128, 117, 113, 125, 114, 110, 124, 113, 109, 127, 116, 112, 148, 137, 133, 143, 132, 128, 103, 92, 88, 143, 132, 128, 123, 112, 108, 115, 104, 100, 149, 138, 134, 144, 133, 129, 133, 122, 118, 145, 134, 130, 104, 93, 89, 134, 123, 119, 134, 123, 119, 144, 133, 129, 113, 102, 98, 104, 93, 89, 117, 106, 102, 110, 99, 95, 140, 129, 125, 131, 121, 119, 110, 100, 98, 152, 142, 140, 124, 114, 112, 128, 117, 113, 140, 129, 125, 140, 129, 125, 131, 120, 116, 124, 113, 107, 138, 127, 121, 125, 112, 106, 110, 97, 91, 89, 76, 70, 100, 87, 81, 114, 101, 95, 92, 76, 63, 36, 16, 0, 49, 26, 0, 60, 36, 2, 59, 33, 0, 59, 33, 0, 65, 40, 9, 56, 35, 6, 32, 14, 0, 26, 15, 0, 21, 15, 1, 21, 23, 12, 26, 32, 28, 26, 36, 37, 17, 28, 32, 4, 17, 23, 0, 13, 21, 0, 18, 32, 38, 61, 75, 181, 209, 220, 234, 255, 255, 238, 255, 255, 244, 255, 255, 247, 255, 255, 245, 255, 255, 226, 246, 255, 233, 255, 255, 83, 113, 123, 0, 21, 32, 0, 24, 36, 0, 20, 31, 14, 37, 45, 0, 13, 20, 3, 16, 25, 7, 18, 24, 6, 21, 24, 3, 21, 21, 0, 20, 19, 0, 18, 19, 0, 16, 23, 2, 16, 27, 4, 16, 32, 11, 22, 40, 13, 26, 43, 7, 25, 37, 10, 34, 36, 27, 58, 50, 49, 88, 70, 64, 107, 80, 63, 107, 71, 84, 121, 78, 110, 133, 87, 129, 139, 87, 145, 143, 86, 156, 144, 84, 157, 141, 79, 154, 134, 71, 172, 148, 88, 184, 157, 102, 194, 162, 113, 193, 159, 113, 194, 157, 113, 194, 157, 113, 183, 146, 102, 171, 130, 84, 154, 104, 53, 147, 105, 63, 123, 107, 84, 153, 152, 147, 221, 230, 235, 227, 238, 244, 166, 170, 173, 118, 116, 117, 130, 126, 125, 154, 149, 146, 169, 161, 158, 164, 155, 150, 163, 152, 146, 172, 162, 153, 173, 166, 156, 165, 158, 150, 168, 163, 157, 158, 153, 147, 150, 145, 139, 156, 151, 145, 175, 170, 164, 185, 180, 174, 173, 168, 162, 153, 148, 142, 152, 147, 141, 161, 156, 150, 170, 165, 159, 162, 157, 151, 149, 144, 138, 156, 151, 145, 167, 162, 156, 162, 157, 151, 159, 154, 150, 160, 155, 151, 166, 161, 157, 175, 170, 166, 179, 174, 170, 175, 170, 166, 170, 165, 161, 167, 162, 158, 163, 158, 154, 169, 164, 160, 172, 167, 163, 168, 163, 159, 164, 159, 155, 166, 161, 157, 173, 168, 164, 177, 172, 168, 168, 163, 159, 160, 155, 151, 150, 145, 141, 145, 140, 136, 148, 143, 139, 157, 152, 148, 167, 162, 158, 172, 167, 163, 164, 159, 155, 167, 162, 158, 167, 162, 158, 162, 157, 153, 154, 149, 145, 148, 143, 139, 145, 140, 136, 145, 140, 136, 157, 152, 148, 164, 159, 155, 172, 167, 163, 177, 172, 168, 176, 171, 167, 173, 168, 164, 170, 165, 161, 168, 163, 159, 176, 171, 167, 175, 170, 166, 173, 168, 164, 172, 167, 163, 171, 166, 162, 171, 166, 162, 171, 166, 162, 173, 165, 162, 177, 167, 165, 181, 170, 168, 184, 173, 171, 185, 174, 172, 183, 173, 171, 181, 171, 169, 181, 171, 169, 182, 172, 170, 188, 180, 177, 190, 182, 179, 192, 184, 181, 191, 183, 180, 189, 181, 178, 188, 180, 177, 189, 181, 178, 189, 184, 180, 194, 190, 189, 196, 195, 193, 202, 201, 199, 206, 205, 203, 207, 205, 206, 208, 206, 207, 208, 208, 210, 209, 209, 211, 213, 214, 218, 218, 219, 223, 223, 227, 230, 227, 231, 234, 230, 233, 238, 232, 235, 240, 234, 239, 243, 236, 241, 245, 241, 245, 248, 241, 245, 248, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 234, 238, 241, 234, 238, 241, 234, 238, 241, 234, 238, 241, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 237, 240, 247, 237, 240, 247, 237, 240, 247, 238, 241, 248, 238, 241, 248, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 239, 244, 248, 239, 244, 248, 238, 243, 247, 238, 243, 247, 237, 242, 248, 236, 241, 247, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 240, 246, 235, 239, 248, 235, 239, 248, 234, 238, 247, 232, 236, 245, 230, 234, 243, 229, 233, 242, 221, 228, 234, 210, 217, 223, 197, 202, 206, 188, 189, 191, 179, 178, 176, 167, 162, 158, 153, 144, 139, 144, 131, 125, 145, 130, 123, 135, 120, 113, 125, 110, 105, 119, 104, 99, 112, 96, 96, 105, 91, 90, 104, 90, 90, 104, 94, 93, 79, 71, 69, 68, 63, 60, 56, 50, 50, 52, 47, 44, 63, 57, 57, 80, 72, 70, 86, 78, 76, 83, 75, 73, 87, 79, 77, 94, 86, 83, 99, 91, 89, 101, 91, 89, 104, 94, 92, 111, 101, 99, 117, 107, 105, 117, 107, 105, 125, 111, 110, 127, 113, 112, 133, 119, 118, 142, 128, 127, 148, 134, 133, 147, 133, 132, 137, 126, 124, 129, 118, 116, 120, 110, 108, 112, 102, 100, 106, 96, 94, 108, 98, 96, 114, 106, 103, 115, 107, 104, 108, 100, 97, 101, 91, 89, 97, 86, 82, 103, 89, 86, 88, 74, 71, 78, 64, 61, 98, 87, 83, 125, 114, 110, 128, 117, 113, 120, 109, 105, 93, 84, 79, 84, 75, 70, 76, 67, 62, 74, 65, 60, 74, 65, 60, 75, 66, 61, 81, 72, 67, 87, 79, 76, 112, 104, 102, 125, 120, 117, 125, 120, 117, 112, 107, 104, 118, 113, 110, 142, 137, 134, 151, 146, 143, 142, 137, 134, 134, 129, 126, 158, 153, 150, 159, 154, 151, 141, 136, 133, 141, 136, 133, 150, 145, 142, 152, 147, 144, 150, 146, 143, 144, 143, 141, 140, 140, 138, 135, 136, 131, 134, 133, 129, 134, 133, 129, 134, 133, 129, 134, 133, 128, 135, 132, 127, 154, 151, 146, 141, 138, 133, 136, 133, 126, 143, 140, 133, 145, 141, 132, 137, 133, 124, 136, 132, 123, 143, 139, 130, 136, 129, 123, 143, 136, 130, 145, 138, 132, 139, 132, 126, 133, 126, 120, 136, 129, 123, 142, 135, 129, 145, 138, 132, 171, 164, 158, 150, 143, 137, 140, 133, 127, 150, 143, 137, 156, 149, 143, 142, 135, 129, 124, 117, 111, 116, 109, 103, 116, 107, 100, 120, 111, 104, 126, 117, 110, 139, 130, 123, 158, 149, 142, 161, 154, 146, 134, 127, 119, 99, 95, 86, 95, 88, 80, 87, 80, 72, 85, 78, 70, 98, 91, 83, 120, 111, 104, 137, 128, 121, 151, 142, 135, 160, 151, 144, 146, 137, 130, 114, 105, 98, 126, 117, 112, 165, 156, 151, 153, 144, 139, 113, 104, 99, 117, 108, 103, 152, 143, 138, 120, 110, 108, 107, 97, 95, 123, 113, 111, 120, 110, 108, 86, 76, 74, 99, 89, 87, 138, 128, 126, 142, 132, 130, 97, 87, 86, 82, 72, 71, 63, 55, 53, 70, 62, 60, 85, 80, 77, 81, 76, 73, 86, 81, 78, 114, 109, 106, 64, 59, 56, 83, 78, 75, 112, 107, 104, 96, 91, 88, 73, 65, 63, 82, 74, 72, 101, 91, 90, 119, 109, 108, 85, 74, 72, 124, 113, 111, 100, 89, 87, 98, 87, 85, 92, 81, 77, 58, 47, 43, 128, 117, 111, 136, 125, 119, 158, 147, 141, 140, 129, 123, 134, 123, 119, 154, 143, 139, 160, 149, 147, 134, 123, 121, 123, 112, 110, 141, 131, 129, 150, 141, 136, 177, 170, 164, 138, 129, 124, 111, 102, 97, 160, 151, 146, 175, 166, 161, 177, 166, 164, 127, 116, 114, 119, 109, 107, 143, 133, 131, 153, 145, 142, 178, 170, 167, 185, 180, 177, 175, 170, 167, 190, 186, 183, 200, 199, 195, 210, 209, 207, 215, 215, 213, 223, 223, 221, 225, 225, 223, 218, 218, 216, 211, 211, 209, 214, 214, 212, 225, 225, 223, 237, 237, 235, 236, 236, 234, 237, 237, 235, 241, 241, 239, 245, 245, 243, 247, 247, 245, 246, 246, 244, 244, 244, 242, 246, 248, 245, 246, 248, 245, 246, 248, 245, 246, 248, 245, 246, 248, 245, 246, 248, 245, 246, 248, 245, 246, 248, 245, 245, 247, 244, 244, 246, 243, 242, 244, 241, 240, 242, 239, 237, 239, 236, 235, 237, 234, 233, 235, 232, 232, 234, 231, 224, 225, 220, 200, 199, 195, 210, 206, 203, 213, 209, 206, 214, 209, 206, 214, 209, 206, 200, 192, 190, 198, 190, 188, 189, 181, 179, 182, 174, 172, 191, 183, 181, 180, 172, 170, 162, 157, 154, 165, 160, 157, 177, 172, 169, 199, 191, 188, 182, 172, 170, 154, 143, 139, 158, 147, 143, 173, 162, 158, 159, 148, 144, 159, 148, 144, 119, 108, 104, 164, 153, 149, 144, 133, 129, 148, 137, 133, 157, 146, 142, 154, 143, 139, 140, 129, 125, 138, 127, 123, 142, 131, 127, 139, 128, 124, 117, 106, 102, 139, 128, 124, 126, 115, 111, 153, 142, 138, 129, 118, 114, 99, 88, 84, 142, 131, 127, 122, 111, 107, 143, 132, 128, 145, 134, 130, 141, 130, 126, 122, 111, 107, 113, 102, 98, 127, 116, 112, 134, 123, 119, 127, 116, 112, 136, 126, 124, 125, 115, 113, 149, 139, 137, 131, 121, 119, 143, 132, 128, 140, 129, 125, 145, 134, 130, 137, 126, 122, 138, 127, 121, 146, 135, 129, 126, 113, 107, 118, 105, 99, 88, 75, 69, 103, 90, 84, 105, 92, 86, 74, 58, 43, 33, 10, 0, 69, 44, 4, 72, 46, 9, 55, 29, 0, 61, 34, 4, 64, 39, 9, 49, 27, 3, 37, 21, 0, 24, 16, 0, 24, 21, 6, 28, 31, 20, 33, 40, 33, 27, 37, 36, 13, 24, 28, 0, 13, 19, 0, 8, 17, 0, 7, 20, 0, 13, 27, 74, 104, 112, 116, 149, 156, 162, 191, 197, 196, 223, 230, 223, 246, 254, 237, 255, 255, 231, 255, 255, 214, 248, 255, 64, 96, 107, 0, 23, 34, 9, 28, 42, 0, 13, 26, 5, 21, 34, 2, 14, 26, 7, 13, 25, 8, 15, 25, 4, 18, 21, 0, 17, 17, 0, 17, 15, 0, 16, 17, 0, 17, 23, 2, 19, 29, 7, 18, 36, 13, 21, 42, 14, 22, 43, 8, 22, 35, 4, 25, 28, 14, 45, 37, 39, 78, 60, 59, 105, 77, 55, 105, 70, 74, 119, 78, 98, 131, 86, 117, 137, 88, 136, 143, 89, 153, 151, 92, 159, 150, 85, 154, 140, 75, 168, 148, 85, 181, 155, 96, 194, 161, 107, 201, 164, 112, 202, 162, 113, 198, 157, 111, 186, 148, 101, 180, 137, 86, 174, 118, 61, 173, 125, 76, 122, 98, 72, 112, 108, 99, 175, 183, 186, 200, 211, 217, 157, 160, 165, 119, 119, 121, 133, 129, 130, 152, 146, 146, 167, 159, 157, 169, 161, 158, 174, 165, 158, 183, 173, 164, 178, 169, 160, 166, 159, 151, 152, 147, 141, 162, 157, 151, 170, 165, 159, 172, 167, 161, 172, 167, 161, 172, 167, 161, 169, 164, 158, 164, 159, 153, 175, 170, 164, 177, 172, 166, 183, 178, 172, 178, 173, 167, 166, 161, 155, 169, 164, 158, 179, 174, 168, 178, 173, 167, 168, 163, 159, 171, 166, 162, 170, 165, 161, 160, 155, 151, 147, 142, 138, 142, 137, 133, 147, 142, 138, 154, 149, 145, 172, 167, 163, 166, 161, 157, 160, 155, 151, 162, 157, 153, 167, 162, 158, 170, 165, 161, 168, 163, 159, 164, 159, 155, 158, 153, 149, 154, 149, 145, 150, 145, 141, 149, 144, 140, 153, 148, 144, 158, 153, 149, 162, 157, 153, 163, 158, 154, 170, 165, 161, 170, 165, 161, 167, 162, 158, 159, 154, 150, 151, 146, 142, 151, 146, 142, 159, 154, 150, 167, 162, 158, 177, 172, 168, 176, 171, 167, 173, 168, 164, 169, 164, 160, 164, 159, 155, 162, 157, 153, 164, 159, 155, 166, 161, 157, 164, 159, 155, 165, 160, 156, 166, 161, 157, 167, 162, 158, 167, 162, 158, 166, 161, 157, 165, 160, 156, 167, 159, 156, 167, 157, 155, 171, 160, 158, 174, 163, 161, 176, 165, 163, 174, 164, 162, 174, 164, 162, 176, 166, 164, 178, 168, 166, 181, 173, 170, 184, 176, 173, 187, 179, 176, 188, 180, 177, 186, 178, 175, 186, 178, 175, 186, 178, 175, 186, 181, 177, 193, 189, 186, 195, 194, 192, 199, 198, 196, 202, 201, 199, 204, 202, 203, 206, 204, 205, 207, 207, 209, 210, 210, 212, 215, 216, 220, 220, 221, 225, 224, 228, 231, 229, 233, 236, 231, 234, 239, 234, 237, 242, 235, 240, 244, 237, 242, 246, 241, 245, 248, 241, 245, 248, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 234, 238, 241, 234, 238, 241, 234, 238, 241, 234, 238, 241, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 237, 240, 247, 237, 240, 247, 237, 240, 247, 238, 241, 248, 238, 241, 248, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 239, 244, 248, 239, 244, 248, 239, 244, 248, 238, 243, 247, 237, 242, 246, 236, 241, 245, 236, 241, 247, 235, 240, 246, 235, 240, 246, 236, 241, 247, 237, 242, 248, 236, 241, 247, 233, 237, 246, 231, 235, 244, 230, 234, 243, 228, 235, 243, 223, 232, 239, 214, 225, 229, 204, 212, 215, 194, 198, 199, 184, 184, 182, 174, 171, 166, 166, 157, 152, 162, 149, 143, 152, 137, 130, 143, 126, 119, 130, 112, 108, 115, 100, 95, 104, 88, 88, 98, 84, 83, 104, 90, 90, 111, 99, 99, 98, 93, 90, 92, 89, 84, 82, 78, 75, 73, 70, 65, 74, 70, 67, 87, 82, 78, 97, 92, 88, 101, 96, 92, 99, 94, 90, 107, 102, 96, 114, 109, 105, 118, 111, 105, 120, 113, 107, 125, 118, 112, 127, 120, 114, 127, 118, 113, 129, 118, 116, 131, 120, 118, 136, 125, 123, 142, 131, 129, 147, 136, 134, 149, 138, 136, 147, 136, 134, 144, 133, 131, 124, 114, 112, 124, 114, 112, 125, 115, 113, 127, 117, 115, 126, 116, 114, 117, 107, 105, 102, 92, 90, 90, 80, 78, 102, 91, 87, 101, 87, 84, 90, 76, 73, 88, 74, 71, 98, 87, 83, 105, 94, 90, 112, 101, 97, 124, 113, 109, 100, 91, 86, 86, 77, 72, 72, 63, 58, 71, 62, 57, 82, 73, 68, 89, 80, 75, 84, 75, 70, 74, 66, 63, 85, 77, 75, 104, 98, 98, 111, 105, 105, 97, 91, 91, 97, 91, 91, 120, 114, 114, 140, 134, 134, 144, 138, 138, 146, 140, 140, 151, 145, 145, 142, 136, 136, 138, 132, 132, 153, 147, 147, 160, 154, 154, 147, 141, 141, 134, 130, 129, 144, 144, 142, 140, 142, 139, 135, 137, 134, 130, 130, 128, 127, 128, 123, 130, 131, 126, 135, 136, 130, 141, 140, 135, 154, 154, 146, 139, 139, 131, 135, 132, 125, 144, 141, 134, 149, 145, 136, 138, 134, 125, 129, 125, 116, 128, 124, 115, 145, 138, 132, 152, 145, 139, 158, 151, 145, 160, 153, 147, 162, 155, 149, 153, 146, 140, 129, 122, 116, 104, 97, 91, 123, 116, 110, 119, 112, 106, 120, 113, 107, 133, 126, 120, 146, 139, 133, 151, 144, 138, 148, 141, 135, 145, 136, 131, 152, 141, 135, 127, 116, 110, 91, 80, 74, 76, 67, 60, 99, 90, 83, 132, 123, 116, 140, 131, 124, 127, 120, 112, 111, 102, 95, 89, 80, 73, 67, 58, 51, 67, 58, 51, 98, 87, 81, 134, 123, 117, 153, 142, 136, 155, 144, 138, 147, 138, 131, 144, 135, 128, 125, 116, 109, 119, 110, 103, 148, 139, 132, 167, 158, 151, 145, 136, 131, 112, 103, 98, 144, 135, 130, 124, 115, 110, 117, 108, 103, 116, 107, 102, 110, 100, 98, 116, 106, 104, 121, 111, 109, 109, 99, 97, 154, 144, 143, 125, 115, 114, 97, 89, 87, 102, 94, 92, 115, 110, 107, 103, 98, 95, 84, 79, 76, 86, 81, 78, 90, 85, 82, 78, 73, 70, 105, 100, 97, 107, 102, 99, 85, 77, 75, 77, 69, 67, 85, 75, 74, 115, 105, 104, 88, 77, 75, 115, 104, 102, 105, 94, 92, 91, 80, 78, 98, 87, 83, 73, 62, 58, 136, 125, 119, 158, 147, 141, 162, 151, 145, 131, 120, 114, 122, 111, 107, 155, 144, 140, 168, 157, 155, 128, 117, 115, 98, 87, 85, 105, 95, 93, 125, 116, 111, 166, 159, 153, 147, 138, 133, 116, 107, 102, 154, 145, 140, 168, 159, 154, 192, 181, 179, 137, 126, 124, 131, 121, 119, 165, 155, 153, 150, 142, 139, 158, 150, 147, 188, 183, 180, 189, 184, 181, 190, 186, 183, 198, 197, 193, 210, 209, 207, 212, 212, 210, 222, 222, 220, 228, 228, 226, 220, 220, 218, 213, 213, 211, 219, 219, 217, 229, 229, 227, 239, 239, 237, 237, 237, 235, 237, 237, 235, 241, 241, 239, 246, 246, 244, 249, 249, 247, 247, 247, 245, 244, 244, 242, 245, 247, 244, 245, 247, 244, 245, 247, 244, 245, 247, 244, 245, 247, 244, 245, 247, 244, 245, 247, 244, 245, 247, 244, 245, 247, 244, 244, 246, 243, 243, 245, 242, 240, 242, 239, 238, 240, 237, 236, 238, 235, 234, 236, 233, 233, 235, 232, 230, 231, 226, 207, 208, 203, 216, 215, 211, 215, 214, 210, 214, 210, 207, 220, 216, 213, 207, 202, 199, 200, 195, 192, 197, 189, 187, 186, 178, 176, 202, 197, 194, 191, 186, 183, 173, 168, 165, 182, 177, 174, 183, 179, 176, 189, 184, 180, 174, 164, 162, 156, 145, 141, 159, 148, 144, 164, 153, 149, 158, 147, 143, 182, 171, 167, 140, 129, 125, 159, 148, 144, 164, 153, 149, 147, 136, 132, 148, 137, 133, 173, 162, 158, 173, 162, 158, 140, 129, 125, 134, 123, 119, 165, 154, 150, 120, 109, 105, 134, 123, 119, 135, 124, 120, 155, 144, 140, 133, 122, 118, 93, 82, 78, 112, 101, 97, 127, 116, 112, 123, 112, 108, 152, 141, 137, 124, 113, 109, 120, 109, 105, 133, 122, 118, 139, 128, 124, 155, 144, 140, 131, 120, 116, 141, 131, 129, 142, 132, 130, 140, 130, 128, 133, 123, 121, 154, 143, 139, 129, 118, 114, 142, 131, 127, 136, 125, 121, 138, 127, 121, 141, 130, 124, 116, 103, 97, 117, 104, 98, 81, 68, 62, 97, 84, 78, 89, 76, 70, 55, 37, 23, 57, 33, 0, 81, 54, 11, 76, 48, 9, 59, 30, 0, 59, 32, 2, 60, 34, 7, 49, 29, 5, 43, 28, 7, 29, 22, 3, 30, 28, 13, 34, 37, 26, 32, 42, 34, 22, 32, 31, 7, 18, 22, 0, 10, 18, 0, 11, 20, 11, 28, 38, 0, 13, 21, 0, 30, 36, 0, 38, 41, 35, 78, 84, 38, 81, 88, 68, 108, 118, 85, 127, 139, 138, 185, 195, 106, 153, 163, 17, 57, 69, 0, 16, 29, 6, 25, 40, 0, 12, 28, 2, 11, 28, 12, 18, 34, 10, 12, 27, 8, 12, 24, 3, 14, 20, 0, 14, 16, 0, 16, 16, 0, 20, 21, 1, 24, 30, 9, 27, 39, 11, 22, 42, 10, 18, 39, 10, 18, 39, 6, 18, 34, 0, 18, 21, 0, 30, 22, 24, 66, 46, 52, 101, 72, 50, 105, 73, 55, 107, 69, 73, 114, 72, 101, 129, 81, 125, 142, 88, 143, 148, 90, 155, 154, 90, 167, 159, 94, 175, 160, 95, 184, 160, 98, 197, 165, 108, 209, 170, 115, 210, 169, 117, 203, 160, 109, 197, 155, 105, 203, 153, 100, 192, 131, 68, 199, 144, 88, 138, 111, 82, 110, 104, 92, 162, 167, 170, 183, 194, 200, 156, 159, 164, 143, 143, 145, 149, 145, 146, 149, 145, 144, 161, 155, 155, 183, 175, 173, 194, 185, 180, 187, 176, 170, 176, 167, 160, 171, 164, 156, 146, 141, 135, 169, 164, 158, 183, 178, 172, 167, 162, 156, 141, 136, 130, 134, 129, 123, 149, 144, 138, 167, 162, 156, 184, 179, 173, 169, 164, 158, 167, 162, 156, 174, 169, 163, 174, 169, 163, 174, 169, 163, 172, 167, 161, 162, 157, 151, 158, 153, 149, 164, 159, 155, 161, 156, 152, 145, 140, 136, 132, 127, 123, 138, 133, 129, 159, 154, 150, 178, 173, 169, 159, 154, 150, 154, 149, 145, 155, 150, 146, 163, 158, 154, 171, 166, 162, 172, 167, 163, 168, 163, 159, 165, 160, 156, 163, 158, 154, 162, 157, 153, 161, 156, 152, 162, 157, 153, 165, 160, 156, 165, 160, 156, 164, 159, 155, 162, 157, 153, 167, 162, 158, 163, 158, 154, 158, 153, 149, 153, 148, 144, 153, 148, 144, 160, 155, 151, 169, 164, 160, 177, 172, 168, 170, 165, 161, 168, 163, 159, 164, 159, 155, 159, 154, 150, 155, 150, 146, 157, 152, 148, 162, 157, 153, 166, 161, 157, 158, 153, 149, 162, 157, 153, 167, 162, 158, 171, 166, 162, 173, 168, 164, 172, 167, 163, 170, 165, 161, 170, 162, 159, 159, 150, 145, 160, 149, 145, 159, 148, 144, 158, 147, 143, 157, 148, 143, 162, 153, 148, 169, 160, 155, 174, 165, 160, 167, 158, 153, 171, 162, 157, 176, 169, 163, 180, 173, 167, 182, 175, 169, 183, 176, 170, 185, 178, 172, 185, 180, 176, 191, 187, 184, 191, 190, 188, 194, 193, 191, 196, 195, 193, 198, 196, 197, 201, 199, 200, 205, 205, 207, 209, 209, 211, 216, 217, 221, 221, 222, 226, 226, 230, 233, 231, 235, 238, 233, 236, 241, 235, 238, 243, 237, 242, 246, 239, 244, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 234, 238, 241, 234, 238, 241, 234, 238, 241, 234, 238, 241, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 246, 237, 240, 247, 237, 240, 247, 237, 240, 247, 238, 241, 248, 238, 241, 248, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 245, 249, 239, 244, 248, 239, 244, 248, 238, 243, 247, 237, 242, 246, 236, 241, 245, 236, 241, 247, 235, 240, 246, 236, 241, 247, 238, 243, 249, 239, 244, 250, 237, 242, 248, 233, 238, 244, 230, 235, 241, 229, 233, 242, 228, 235, 243, 221, 230, 237, 215, 226, 230, 207, 215, 218, 197, 201, 202, 187, 187, 185, 179, 176, 171, 175, 168, 162, 173, 162, 156, 163, 150, 142, 143, 128, 121, 119, 104, 97, 104, 89, 84, 96, 81, 78, 91, 76, 73, 89, 75, 74, 89, 78, 76, 96, 91, 87, 101, 98, 93, 101, 98, 93, 91, 88, 83, 83, 80, 75, 85, 82, 77, 94, 89, 85, 99, 94, 90, 97, 92, 86, 109, 104, 98, 123, 118, 112, 131, 126, 120, 141, 133, 130, 148, 141, 135, 151, 144, 138, 150, 141, 136, 152, 141, 139, 151, 140, 138, 149, 138, 136, 147, 136, 134, 144, 133, 131, 143, 132, 130, 142, 131, 129, 142, 132, 130, 130, 120, 118, 131, 121, 119, 132, 122, 120, 131, 121, 119, 129, 119, 117, 128, 118, 116, 127, 117, 115, 128, 117, 115, 122, 111, 107, 109, 98, 94, 102, 91, 87, 115, 104, 100, 121, 112, 107, 102, 93, 88, 92, 83, 78, 106, 97, 92, 125, 116, 111, 120, 111, 106, 104, 95, 90, 85, 76, 71, 76, 67, 62, 79, 70, 65, 83, 74, 69, 82, 74, 71, 93, 88, 85, 106, 100, 100, 120, 114, 114, 120, 114, 114, 104, 98, 98, 95, 89, 89, 111, 105, 105, 136, 130, 130, 140, 134, 134, 150, 144, 144, 148, 142, 142, 140, 134, 134, 137, 131, 131, 139, 133, 133, 155, 149, 149, 180, 176, 175, 157, 157, 155, 157, 159, 156, 156, 156, 154, 149, 149, 147, 143, 142, 138, 139, 138, 134, 142, 141, 136, 146, 145, 140, 142, 139, 132, 144, 141, 134, 141, 136, 130, 137, 132, 126, 144, 139, 133, 153, 146, 138, 140, 133, 125, 118, 111, 103, 117, 110, 104, 131, 124, 118, 144, 137, 131, 150, 143, 137, 158, 151, 145, 165, 158, 152, 159, 152, 146, 147, 140, 134, 125, 118, 112, 140, 133, 127, 146, 139, 133, 135, 128, 122, 128, 121, 115, 133, 126, 120, 140, 133, 127, 141, 132, 127, 125, 114, 110, 139, 128, 122, 135, 124, 118, 105, 94, 88, 83, 74, 67, 91, 82, 75, 114, 105, 98, 128, 119, 112, 137, 128, 121, 130, 121, 114, 107, 98, 91, 79, 70, 63, 72, 61, 55, 87, 76, 70, 104, 93, 87, 110, 99, 93, 121, 110, 104, 151, 142, 135, 151, 142, 135, 134, 125, 118, 139, 130, 123, 144, 135, 128, 144, 135, 130, 155, 146, 141, 111, 102, 97, 126, 117, 112, 128, 119, 114, 122, 113, 108, 122, 112, 110, 119, 109, 107, 123, 113, 111, 140, 130, 128, 131, 121, 120, 129, 119, 118, 139, 131, 129, 121, 113, 111, 96, 88, 86, 119, 114, 111, 125, 117, 115, 69, 64, 61, 91, 83, 81, 69, 64, 61, 96, 88, 86, 102, 94, 92, 92, 84, 82, 96, 88, 86, 98, 88, 87, 114, 104, 103, 109, 98, 96, 125, 114, 112, 125, 114, 112, 103, 92, 90, 113, 102, 98, 83, 72, 68, 125, 114, 110, 146, 135, 129, 172, 161, 157, 120, 109, 105, 100, 89, 85, 145, 134, 130, 174, 163, 161, 132, 121, 119, 78, 67, 65, 65, 54, 52, 122, 113, 108, 174, 165, 160, 167, 158, 153, 128, 119, 114, 147, 138, 133, 151, 142, 137, 186, 175, 173, 128, 117, 115, 136, 126, 124, 171, 161, 159, 135, 127, 124, 132, 124, 121, 181, 176, 173, 191, 186, 183, 183, 178, 175, 189, 185, 182, 211, 210, 208, 210, 210, 208, 222, 222, 220, 230, 230, 228, 222, 222, 220, 215, 215, 213, 223, 223, 221, 233, 233, 231, 240, 240, 238, 237, 237, 235, 237, 237, 235, 241, 241, 239, 247, 247, 245, 250, 250, 248, 248, 248, 246, 244, 244, 242, 245, 247, 244, 245, 247, 244, 245, 247, 244, 245, 247, 244, 245, 247, 244, 245, 247, 244, 245, 247, 244, 245, 247, 244, 245, 247, 244, 244, 246, 243, 243, 245, 242, 240, 242, 239, 238, 240, 237, 236, 238, 235, 234, 236, 233, 233, 235, 232, 237, 238, 233, 215, 216, 211, 224, 223, 219, 219, 218, 214, 216, 212, 209, 225, 221, 218, 212, 208, 205, 202, 197, 194, 191, 186, 183, 179, 174, 171, 203, 198, 195, 197, 192, 189, 185, 180, 177, 199, 194, 191, 192, 188, 185, 186, 181, 178, 139, 129, 127, 178, 167, 163, 160, 149, 147, 181, 170, 166, 159, 148, 146, 164, 153, 149, 160, 149, 147, 113, 102, 98, 172, 161, 159, 153, 142, 138, 133, 122, 120, 151, 140, 136, 186, 175, 173, 176, 165, 161, 146, 135, 133, 145, 134, 130, 154, 143, 139, 134, 123, 119, 145, 134, 130, 162, 151, 147, 155, 144, 140, 115, 104, 100, 91, 80, 76, 127, 116, 112, 102, 91, 87, 162, 151, 147, 116, 105, 101, 115, 104, 100, 142, 131, 127, 136, 125, 121, 155, 144, 140, 133, 124, 119, 142, 133, 128, 152, 143, 138, 130, 121, 116, 131, 122, 117, 158, 147, 143, 116, 105, 101, 134, 123, 119, 131, 120, 116, 131, 120, 116, 130, 119, 115, 102, 91, 87, 111, 97, 94, 73, 58, 53, 91, 74, 67, 79, 61, 51, 43, 21, 0, 87, 59, 19, 84, 53, 6, 73, 44, 4, 63, 34, 0, 56, 29, 2, 55, 31, 7, 54, 34, 10, 48, 33, 12, 34, 27, 8, 33, 34, 16, 34, 42, 27, 29, 40, 32, 13, 27, 27, 0, 13, 16, 0, 11, 18, 1, 16, 23, 0, 6, 14, 4, 23, 29, 0, 30, 35, 0, 17, 23, 10, 50, 58, 0, 25, 35, 0, 40, 52, 1, 43, 57, 0, 42, 55, 14, 56, 68, 0, 34, 46, 0, 15, 27, 3, 21, 35, 5, 17, 33, 0, 6, 22, 4, 7, 22, 8, 10, 25, 7, 11, 23, 0, 12, 20, 0, 14, 19, 0, 17, 20, 0, 23, 27, 4, 31, 40, 16, 35, 49, 12, 25, 41, 8, 17, 34, 7, 14, 32, 4, 16, 30, 0, 13, 18, 0, 20, 15, 14, 55, 39, 46, 96, 71, 45, 104, 72, 35, 93, 55, 50, 97, 55, 86, 122, 74, 117, 137, 84, 131, 139, 80, 156, 152, 88, 185, 172, 104, 193, 172, 105, 196, 166, 102, 205, 169, 109, 218, 177, 121, 218, 175, 120, 209, 166, 111, 208, 165, 110, 221, 171, 112, 202, 139, 70, 197, 138, 78, 129, 99, 63, 116, 104, 90, 185, 187, 186, 201, 208, 214, 156, 159, 164, 135, 136, 138, 155, 155, 157, 137, 135, 136, 148, 144, 143, 186, 181, 178, 201, 192, 187, 178, 167, 161, 163, 154, 147, 169, 162, 156, 184, 179, 173, 182, 177, 171, 171, 166, 160, 154, 149, 143, 147, 142, 136, 155, 150, 144, 170, 165, 159, 180, 175, 169, 165, 160, 154, 159, 154, 148, 169, 164, 158, 176, 171, 165, 164, 159, 153, 152, 147, 141, 154, 149, 143, 158, 153, 147, 159, 154, 150, 168, 163, 159, 172, 167, 163, 164, 159, 155, 155, 150, 146, 156, 151, 147, 165, 160, 156, 172, 167, 163, 166, 161, 157, 170, 165, 161, 175, 170, 166, 175, 170, 166, 165, 160, 156, 151, 146, 142, 145, 140, 136, 147, 142, 138, 171, 166, 162, 168, 163, 159, 164, 159, 155, 163, 158, 154, 164, 159, 155, 165, 160, 156, 163, 158, 154, 162, 157, 153, 142, 137, 133, 137, 132, 128, 132, 127, 123, 135, 130, 126, 143, 138, 134, 150, 145, 141, 151, 146, 142, 150, 145, 141, 145, 140, 136, 148, 143, 139, 151, 146, 142, 153, 148, 144, 155, 150, 146, 157, 152, 148, 161, 156, 152, 165, 160, 156, 174, 169, 165, 177, 172, 168, 181, 176, 172, 183, 178, 174, 181, 176, 172, 176, 171, 167, 170, 165, 161, 167, 159, 156, 168, 159, 154, 163, 154, 149, 155, 144, 140, 145, 136, 131, 140, 131, 126, 144, 135, 130, 152, 143, 138, 159, 150, 145, 162, 153, 148, 168, 159, 154, 175, 168, 162, 181, 174, 168, 186, 179, 173, 190, 183, 177, 194, 187, 181, 194, 189, 185, 189, 185, 182, 190, 186, 185, 192, 188, 187, 191, 190, 188, 193, 191, 192, 197, 195, 196, 204, 202, 205, 208, 208, 210, 219, 218, 223, 223, 224, 228, 229, 230, 234, 232, 236, 239, 235, 238, 243, 237, 240, 245, 238, 243, 247, 241, 246, 250, 241, 244, 249, 241, 245, 248, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 235, 238, 243, 235, 238, 243, 235, 238, 243, 235, 238, 243, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 236, 239, 244, 234, 237, 244, 232, 237, 243, 225, 232, 240, 219, 226, 232, 211, 216, 220, 201, 205, 208, 192, 192, 192, 184, 183, 179, 182, 177, 173, 181, 174, 166, 160, 151, 142, 153, 143, 134, 135, 122, 114, 114, 101, 93, 103, 90, 82, 98, 85, 79, 86, 73, 67, 68, 57, 51, 76, 69, 63, 88, 83, 77, 101, 96, 90, 102, 97, 91, 96, 91, 85, 95, 90, 84, 108, 100, 97, 121, 113, 110, 123, 115, 112, 131, 123, 120, 141, 133, 130, 148, 140, 137, 156, 146, 145, 159, 149, 147, 154, 144, 142, 146, 136, 134, 158, 147, 145, 153, 139, 136, 146, 135, 131, 147, 136, 132, 152, 143, 138, 152, 143, 138, 145, 135, 133, 136, 128, 125, 151, 143, 140, 134, 126, 123, 138, 128, 126, 150, 140, 138, 149, 137, 137, 146, 134, 134, 138, 126, 126, 120, 109, 107, 130, 123, 117, 139, 134, 128, 133, 128, 122, 110, 105, 99, 98, 93, 87, 109, 104, 98, 127, 120, 114, 133, 126, 120, 128, 121, 115, 130, 123, 117, 133, 126, 120, 129, 122, 116, 111, 104, 98, 94, 87, 81, 96, 89, 83, 110, 102, 99, 108, 103, 100, 101, 96, 93, 101, 96, 93, 109, 104, 101, 110, 105, 102, 107, 102, 99, 116, 111, 108, 132, 127, 124, 126, 121, 118, 142, 137, 134, 156, 151, 148, 157, 152, 149, 152, 147, 144, 153, 148, 145, 157, 152, 149, 161, 156, 153, 168, 164, 161, 171, 167, 164, 165, 160, 157, 159, 154, 151, 161, 156, 153, 156, 151, 148, 151, 146, 142, 156, 151, 147, 154, 146, 143, 153, 145, 142, 151, 143, 140, 150, 143, 137, 153, 146, 140, 152, 143, 138, 139, 130, 125, 124, 115, 110, 90, 81, 74, 87, 78, 71, 98, 89, 82, 122, 113, 106, 140, 131, 126, 142, 133, 128, 139, 130, 125, 138, 129, 124, 126, 117, 112, 118, 109, 104, 136, 126, 124, 161, 151, 149, 153, 143, 141, 131, 121, 119, 126, 116, 114, 131, 122, 117, 132, 123, 118, 137, 128, 123, 147, 138, 133, 151, 142, 137, 137, 128, 123, 117, 108, 103, 109, 100, 95, 114, 105, 100, 103, 94, 89, 133, 124, 119, 149, 140, 135, 157, 148, 143, 158, 149, 144, 120, 111, 106, 82, 73, 68, 84, 73, 69, 85, 74, 70, 99, 88, 84, 106, 95, 91, 113, 102, 98, 125, 114, 110, 130, 119, 115, 138, 127, 123, 156, 145, 141, 144, 133, 129, 139, 128, 124, 106, 95, 91, 111, 100, 96, 146, 135, 131, 124, 113, 109, 97, 86, 82, 126, 115, 111, 110, 100, 98, 109, 99, 97, 138, 128, 126, 139, 129, 127, 102, 92, 90, 103, 95, 92, 119, 109, 108, 99, 91, 89, 87, 77, 76, 105, 97, 95, 109, 99, 98, 96, 86, 85, 98, 88, 89, 113, 103, 104, 107, 97, 98, 83, 73, 72, 125, 114, 112, 130, 119, 117, 111, 100, 98, 108, 97, 95, 111, 100, 98, 119, 108, 106, 143, 132, 130, 143, 132, 128, 164, 153, 151, 117, 106, 104, 98, 87, 85, 141, 130, 128, 145, 134, 132, 115, 104, 102, 57, 46, 44, 96, 85, 83, 114, 103, 99, 163, 152, 146, 178, 167, 163, 149, 138, 134, 136, 127, 122, 177, 168, 163, 194, 185, 180, 106, 97, 92, 140, 130, 128, 195, 185, 183, 135, 127, 124, 126, 118, 115, 208, 200, 197, 178, 170, 167, 199, 191, 189, 193, 188, 185, 204, 203, 201, 205, 205, 203, 221, 221, 219, 230, 230, 228, 222, 222, 220, 220, 220, 218, 230, 230, 228, 235, 235, 233, 241, 241, 239, 239, 239, 237, 239, 239, 237, 241, 241, 239, 244, 244, 242, 246, 246, 244, 245, 245, 243, 244, 244, 242, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 248, 248, 246, 248, 248, 246, 248, 248, 246, 246, 246, 244, 244, 244, 242, 242, 242, 240, 239, 239, 237, 238, 238, 236, 236, 235, 233, 234, 233, 231, 216, 215, 213, 209, 208, 206, 225, 224, 222, 226, 225, 223, 209, 208, 206, 204, 200, 199, 180, 176, 175, 174, 170, 169, 207, 203, 202, 192, 188, 187, 167, 161, 161, 197, 191, 191, 203, 197, 197, 182, 177, 174, 180, 170, 169, 138, 128, 126, 137, 127, 126, 182, 172, 170, 181, 171, 170, 169, 159, 157, 179, 169, 168, 156, 146, 144, 163, 153, 152, 166, 156, 154, 124, 114, 113, 133, 123, 121, 159, 149, 148, 175, 165, 163, 178, 168, 167, 115, 105, 103, 137, 127, 125, 142, 132, 130, 130, 120, 118, 145, 135, 133, 173, 163, 161, 143, 133, 131, 103, 93, 91, 114, 104, 102, 132, 122, 120, 159, 149, 147, 128, 118, 116, 132, 122, 120, 92, 82, 80, 146, 136, 134, 141, 131, 129, 153, 144, 139, 161, 152, 145, 158, 151, 141, 137, 130, 122, 144, 137, 131, 145, 136, 131, 115, 104, 100, 114, 100, 97, 125, 111, 108, 115, 104, 102, 142, 130, 130, 113, 101, 101, 108, 94, 93, 107, 90, 83, 99, 77, 66, 50, 23, 6, 69, 38, 9, 101, 67, 19, 86, 53, 0, 61, 29, 0, 54, 25, 0, 63, 37, 14, 62, 37, 17, 51, 29, 6, 47, 31, 8, 37, 29, 6, 37, 39, 17, 32, 45, 28, 30, 47, 37, 21, 41, 39, 0, 21, 24, 0, 8, 15, 3, 18, 23, 3, 12, 17, 4, 15, 19, 1, 16, 23, 0, 17, 27, 3, 22, 36, 8, 29, 46, 7, 30, 48, 2, 25, 43, 0, 26, 41, 1, 24, 38, 0, 22, 35, 1, 19, 31, 2, 16, 27, 5, 15, 25, 6, 14, 25, 7, 14, 24, 2, 6, 17, 2, 11, 18, 0, 11, 18, 0, 13, 18, 0, 31, 42, 22, 56, 68, 30, 59, 73, 24, 48, 60, 27, 44, 52, 17, 27, 36, 9, 18, 27, 15, 25, 35, 5, 23, 33, 0, 9, 13, 0, 32, 24, 31, 82, 65, 32, 95, 66, 28, 92, 55, 44, 97, 55, 84, 122, 73, 102, 121, 65, 122, 124, 61, 174, 159, 92, 197, 168, 100, 199, 162, 94, 208, 164, 101, 216, 171, 112, 219, 177, 119, 220, 178, 120, 218, 176, 118, 216, 175, 113, 221, 174, 106, 206, 147, 71, 183, 128, 61, 124, 91, 50, 84, 67, 47, 153, 148, 144, 225, 226, 230, 180, 181, 185, 123, 124, 126, 136, 140, 141, 142, 144, 143, 172, 171, 167, 196, 191, 187, 180, 171, 164, 158, 149, 142, 168, 161, 155, 190, 185, 181, 181, 178, 173, 185, 182, 177, 188, 185, 180, 189, 186, 181, 190, 185, 181, 183, 178, 174, 168, 163, 157, 152, 147, 141, 146, 141, 135, 167, 162, 156, 174, 167, 161, 165, 158, 152, 152, 145, 137, 139, 132, 124, 151, 144, 136, 185, 178, 172, 171, 166, 162, 174, 169, 165, 169, 164, 160, 162, 157, 153, 167, 162, 158, 182, 177, 173, 186, 181, 177, 179, 174, 170, 167, 162, 158, 163, 158, 154, 162, 157, 153, 162, 157, 153, 155, 150, 146, 151, 146, 142, 163, 158, 154, 180, 175, 171, 183, 178, 174, 172, 167, 163, 165, 160, 156, 172, 167, 163, 185, 180, 176, 185, 180, 176, 168, 163, 159, 150, 145, 141, 140, 135, 131, 137, 132, 128, 140, 135, 131, 153, 148, 144, 168, 163, 159, 172, 167, 163, 163, 158, 154, 152, 147, 143, 150, 145, 139, 153, 148, 142, 157, 152, 146, 161, 156, 150, 163, 158, 152, 163, 158, 152, 162, 157, 151, 160, 155, 149, 168, 163, 157, 169, 164, 158, 169, 164, 158, 167, 162, 156, 162, 157, 151, 158, 153, 147, 157, 152, 146, 157, 152, 146, 164, 156, 153, 159, 151, 148, 153, 143, 141, 149, 141, 138, 152, 144, 141, 158, 150, 147, 164, 156, 153, 166, 158, 155, 186, 178, 175, 184, 176, 173, 182, 174, 171, 180, 172, 169, 181, 173, 170, 183, 175, 172, 186, 178, 175, 188, 180, 177, 185, 180, 177, 187, 182, 179, 191, 186, 183, 195, 191, 188, 200, 196, 195, 203, 202, 200, 207, 205, 206, 208, 208, 208, 216, 216, 218, 217, 218, 220, 221, 222, 226, 225, 226, 230, 227, 230, 235, 230, 233, 238, 232, 235, 242, 232, 235, 240, 239, 242, 247, 239, 242, 247, 240, 243, 248, 241, 244, 249, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 248, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 235, 238, 243, 235, 238, 243, 235, 238, 243, 235, 238, 243, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 236, 239, 244, 234, 237, 242, 233, 236, 241, 228, 233, 239, 222, 227, 233, 214, 217, 222, 202, 206, 209, 194, 194, 194, 186, 185, 181, 182, 179, 174, 180, 176, 167, 169, 160, 153, 163, 154, 145, 148, 138, 128, 130, 120, 110, 124, 111, 103, 123, 110, 102, 117, 104, 96, 105, 94, 88, 74, 67, 61, 84, 79, 73, 98, 93, 87, 104, 99, 93, 104, 99, 93, 109, 104, 98, 122, 114, 111, 133, 125, 122, 142, 134, 131, 148, 140, 137, 153, 145, 143, 157, 149, 147, 161, 151, 150, 163, 153, 152, 157, 147, 146, 149, 139, 137, 135, 124, 122, 153, 142, 138, 168, 157, 153, 161, 152, 147, 142, 133, 128, 134, 127, 121, 146, 138, 135, 163, 155, 152, 137, 129, 126, 128, 120, 117, 133, 125, 122, 140, 130, 128, 136, 126, 125, 145, 133, 133, 158, 146, 146, 159, 149, 148, 143, 138, 134, 143, 140, 133, 135, 132, 125, 122, 119, 112, 118, 115, 108, 117, 114, 107, 102, 97, 91, 81, 76, 70, 118, 113, 107, 126, 121, 115, 140, 133, 127, 142, 135, 129, 128, 121, 115, 116, 109, 103, 124, 117, 111, 140, 132, 129, 146, 138, 136, 149, 144, 141, 146, 141, 138, 138, 133, 130, 139, 134, 131, 141, 136, 133, 128, 123, 120, 109, 104, 101, 110, 105, 102, 117, 112, 109, 125, 120, 117, 133, 128, 125, 145, 140, 137, 156, 151, 148, 164, 159, 156, 165, 160, 157, 154, 149, 146, 157, 152, 149, 151, 143, 141, 146, 138, 136, 150, 142, 140, 149, 141, 139, 146, 138, 135, 152, 144, 141, 149, 139, 137, 150, 140, 138, 147, 137, 135, 142, 132, 130, 140, 131, 126, 142, 133, 128, 142, 131, 127, 138, 127, 123, 143, 134, 127, 135, 126, 119, 134, 125, 118, 142, 133, 126, 146, 137, 132, 142, 133, 128, 140, 131, 126, 143, 134, 129, 136, 127, 122, 129, 120, 115, 131, 121, 119, 136, 126, 124, 141, 131, 129, 151, 141, 139, 151, 141, 139, 136, 126, 124, 125, 116, 111, 141, 132, 127, 143, 134, 129, 136, 127, 122, 150, 141, 136, 168, 159, 154, 150, 141, 136, 111, 102, 97, 124, 115, 110, 126, 117, 112, 108, 99, 94, 106, 97, 92, 132, 123, 118, 140, 131, 126, 136, 127, 122, 148, 139, 134, 104, 93, 89, 111, 100, 96, 110, 99, 95, 97, 86, 82, 94, 83, 79, 107, 96, 92, 122, 111, 107, 127, 116, 112, 140, 129, 125, 149, 138, 134, 129, 118, 114, 120, 109, 105, 137, 126, 122, 126, 115, 111, 106, 95, 91, 117, 106, 102, 104, 94, 92, 108, 98, 96, 125, 115, 113, 130, 120, 118, 111, 101, 99, 98, 88, 86, 112, 102, 101, 132, 122, 121, 103, 93, 92, 77, 67, 66, 93, 83, 82, 107, 97, 96, 92, 82, 83, 109, 99, 100, 113, 103, 104, 67, 57, 56, 104, 92, 92, 146, 135, 133, 137, 126, 124, 122, 111, 109, 113, 102, 100, 94, 83, 81, 112, 101, 99, 141, 130, 128, 148, 137, 135, 118, 107, 105, 103, 92, 90, 137, 126, 124, 138, 127, 125, 118, 107, 105, 64, 53, 51, 93, 82, 80, 161, 150, 146, 169, 158, 152, 170, 159, 155, 154, 143, 139, 130, 121, 116, 164, 155, 150, 194, 185, 180, 136, 127, 122, 140, 130, 128, 196, 186, 184, 148, 140, 137, 141, 133, 130, 210, 202, 199, 180, 172, 169, 199, 191, 189, 197, 192, 189, 205, 204, 202, 206, 206, 204, 221, 221, 219, 230, 230, 228, 223, 223, 221, 222, 222, 220, 232, 232, 230, 236, 236, 234, 241, 241, 239, 240, 240, 238, 239, 239, 237, 241, 241, 239, 244, 244, 242, 246, 246, 244, 245, 245, 243, 244, 244, 242, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 248, 248, 246, 248, 248, 246, 248, 248, 246, 247, 247, 245, 245, 245, 243, 242, 242, 240, 240, 240, 238, 238, 238, 236, 237, 236, 234, 234, 233, 231, 217, 216, 214, 211, 210, 208, 227, 226, 224, 230, 229, 227, 216, 215, 213, 210, 209, 207, 189, 185, 184, 174, 170, 169, 195, 191, 190, 191, 187, 186, 178, 172, 172, 191, 185, 185, 193, 187, 187, 192, 186, 186, 184, 174, 173, 181, 171, 170, 160, 150, 149, 168, 158, 157, 165, 155, 154, 140, 130, 129, 159, 149, 148, 193, 183, 182, 161, 151, 150, 165, 155, 154, 137, 127, 126, 150, 140, 139, 158, 148, 147, 155, 145, 144, 175, 165, 164, 152, 142, 141, 144, 134, 132, 141, 131, 129, 131, 121, 119, 136, 126, 124, 163, 153, 151, 170, 160, 158, 135, 125, 123, 97, 87, 85, 142, 132, 130, 176, 166, 164, 151, 141, 139, 142, 132, 130, 89, 79, 77, 133, 123, 121, 138, 128, 126, 161, 152, 147, 152, 145, 135, 154, 147, 137, 137, 133, 124, 153, 146, 138, 156, 147, 142, 124, 113, 109, 117, 102, 99, 117, 103, 100, 113, 99, 98, 142, 130, 130, 103, 93, 94, 84, 73, 71, 86, 67, 61, 92, 69, 55, 58, 26, 5, 72, 36, 2, 104, 67, 15, 90, 55, 1, 66, 34, 0, 59, 30, 0, 65, 39, 16, 63, 38, 18, 54, 32, 9, 54, 36, 12, 43, 36, 8, 44, 48, 21, 39, 57, 35, 36, 60, 46, 25, 50, 44, 0, 24, 24, 0, 9, 13, 4, 17, 23, 3, 13, 15, 8, 18, 20, 8, 19, 25, 4, 14, 24, 1, 13, 29, 5, 18, 35, 7, 22, 41, 7, 22, 41, 6, 22, 38, 4, 20, 35, 4, 18, 29, 3, 16, 25, 3, 13, 22, 2, 11, 20, 2, 11, 20, 3, 10, 18, 1, 5, 14, 2, 11, 16, 0, 11, 18, 0, 15, 22, 1, 33, 48, 23, 56, 73, 32, 61, 77, 27, 51, 63, 24, 42, 46, 21, 32, 34, 9, 18, 25, 6, 16, 25, 3, 21, 33, 0, 21, 28, 0, 34, 32, 14, 62, 48, 18, 81, 52, 18, 83, 43, 34, 90, 43, 77, 117, 64, 101, 121, 58, 125, 126, 56, 179, 161, 87, 203, 169, 95, 208, 166, 94, 216, 168, 102, 218, 172, 112, 217, 172, 113, 214, 172, 112, 216, 175, 113, 222, 179, 111, 230, 182, 106, 233, 175, 93, 200, 146, 74, 131, 94, 49, 72, 52, 28, 125, 116, 109, 215, 213, 216, 208, 208, 210, 161, 165, 166, 139, 143, 144, 126, 130, 129, 146, 147, 142, 181, 178, 171, 191, 182, 175, 180, 171, 164, 175, 170, 164, 177, 174, 169, 168, 165, 160, 173, 170, 165, 176, 173, 168, 175, 172, 167, 175, 170, 166, 173, 168, 164, 164, 159, 153, 154, 149, 143, 183, 178, 172, 182, 177, 171, 172, 165, 159, 170, 163, 157, 180, 173, 165, 176, 169, 161, 165, 158, 150, 166, 159, 151, 168, 163, 159, 167, 162, 158, 172, 167, 163, 185, 180, 176, 191, 186, 182, 182, 177, 173, 161, 156, 152, 145, 140, 136, 159, 154, 150, 154, 149, 145, 157, 152, 148, 168, 163, 159, 175, 170, 166, 174, 169, 165, 176, 171, 167, 181, 176, 172, 190, 185, 181, 182, 177, 173, 175, 170, 166, 172, 167, 163, 172, 167, 163, 169, 164, 160, 161, 156, 152, 153, 148, 144, 143, 138, 134, 156, 151, 147, 170, 165, 161, 176, 171, 167, 173, 168, 164, 170, 165, 161, 172, 167, 163, 176, 171, 167, 154, 149, 143, 155, 150, 144, 157, 152, 146, 158, 153, 147, 159, 154, 148, 159, 154, 148, 158, 153, 147, 158, 153, 147, 163, 158, 152, 162, 157, 151, 159, 154, 148, 155, 150, 144, 154, 149, 143, 157, 152, 146, 164, 159, 153, 169, 164, 158, 179, 171, 168, 173, 165, 162, 167, 159, 156, 164, 156, 153, 166, 158, 155, 171, 163, 160, 176, 168, 165, 178, 170, 167, 180, 172, 169, 181, 173, 170, 184, 176, 173, 186, 178, 175, 187, 179, 176, 186, 178, 175, 184, 176, 173, 183, 175, 172, 188, 180, 178, 190, 182, 180, 191, 186, 183, 196, 191, 188, 201, 197, 196, 206, 202, 201, 207, 205, 206, 209, 207, 208, 213, 213, 215, 216, 216, 218, 219, 220, 224, 225, 226, 230, 228, 231, 236, 232, 235, 240, 235, 238, 245, 236, 239, 246, 239, 242, 247, 239, 242, 247, 240, 243, 248, 241, 244, 249, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 248, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 235, 238, 243, 235, 238, 243, 235, 238, 243, 235, 238, 243, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 236, 239, 244, 234, 237, 242, 233, 236, 241, 229, 234, 240, 224, 229, 235, 216, 219, 224, 205, 209, 210, 197, 197, 197, 189, 188, 184, 185, 182, 177, 182, 178, 169, 173, 164, 157, 168, 159, 150, 156, 146, 137, 140, 130, 121, 131, 121, 112, 132, 122, 113, 134, 121, 115, 129, 118, 112, 99, 92, 86, 105, 100, 94, 113, 108, 102, 118, 113, 107, 121, 116, 110, 125, 120, 114, 134, 126, 123, 139, 131, 128, 152, 144, 141, 155, 147, 144, 155, 147, 144, 153, 145, 142, 154, 144, 143, 154, 144, 143, 149, 139, 138, 141, 131, 129, 128, 118, 116, 138, 129, 124, 148, 139, 134, 146, 139, 133, 133, 126, 120, 115, 110, 104, 103, 98, 94, 98, 93, 89, 112, 107, 103, 112, 107, 103, 123, 118, 114, 134, 126, 123, 135, 127, 125, 142, 132, 131, 150, 140, 139, 148, 138, 137, 141, 136, 132, 143, 140, 135, 143, 138, 134, 143, 138, 134, 148, 143, 139, 145, 140, 136, 122, 117, 113, 94, 89, 85, 56, 48, 45, 77, 69, 66, 106, 98, 95, 124, 116, 113, 126, 118, 115, 126, 118, 115, 140, 130, 128, 156, 148, 145, 147, 139, 137, 156, 148, 146, 158, 150, 148, 155, 147, 145, 159, 151, 149, 167, 159, 157, 161, 153, 151, 146, 138, 136, 145, 137, 135, 151, 143, 141, 155, 147, 145, 147, 139, 137, 135, 127, 125, 127, 119, 117, 128, 120, 118, 132, 124, 122, 139, 134, 131, 146, 141, 138, 145, 140, 137, 144, 139, 136, 151, 146, 143, 148, 143, 140, 144, 136, 133, 148, 140, 137, 129, 121, 118, 130, 122, 119, 127, 117, 115, 117, 107, 105, 113, 104, 99, 120, 111, 106, 130, 121, 116, 136, 127, 122, 149, 140, 133, 143, 134, 127, 141, 132, 125, 145, 136, 129, 146, 137, 132, 144, 135, 130, 143, 134, 129, 145, 136, 131, 117, 108, 103, 111, 102, 97, 113, 103, 101, 119, 109, 107, 130, 120, 118, 151, 141, 139, 161, 151, 149, 150, 140, 138, 155, 146, 141, 164, 155, 150, 167, 158, 153, 153, 144, 139, 132, 123, 118, 121, 112, 107, 127, 118, 113, 139, 130, 125, 123, 114, 109, 129, 120, 115, 109, 100, 95, 92, 83, 78, 106, 97, 92, 118, 109, 104, 121, 112, 107, 131, 122, 117, 146, 135, 131, 146, 135, 131, 146, 135, 131, 124, 113, 109, 102, 91, 87, 117, 106, 102, 132, 121, 117, 119, 108, 104, 121, 110, 106, 138, 127, 123, 136, 125, 121, 125, 114, 110, 131, 120, 116, 134, 123, 119, 116, 105, 101, 97, 86, 82, 123, 113, 111, 111, 101, 99, 89, 79, 77, 98, 88, 86, 128, 118, 116, 122, 112, 110, 87, 77, 76, 69, 59, 58, 102, 92, 91, 73, 63, 62, 79, 69, 68, 84, 74, 73, 76, 66, 67, 106, 96, 97, 126, 116, 117, 92, 82, 81, 75, 63, 63, 142, 131, 129, 145, 134, 132, 131, 120, 118, 120, 109, 107, 85, 74, 72, 96, 85, 83, 143, 132, 130, 134, 123, 121, 131, 120, 118, 120, 109, 107, 142, 131, 129, 141, 130, 128, 135, 124, 122, 90, 79, 77, 105, 94, 92, 181, 170, 166, 165, 154, 150, 159, 148, 144, 147, 136, 132, 111, 102, 97, 155, 146, 141, 196, 187, 182, 151, 142, 137, 141, 133, 130, 196, 188, 185, 168, 160, 157, 164, 156, 153, 210, 202, 200, 184, 176, 174, 199, 191, 189, 203, 198, 195, 207, 206, 204, 206, 206, 204, 220, 220, 218, 230, 230, 228, 226, 226, 224, 226, 226, 224, 234, 234, 232, 236, 236, 234, 241, 241, 239, 240, 240, 238, 240, 240, 238, 241, 241, 239, 245, 245, 243, 247, 247, 245, 246, 246, 244, 245, 245, 243, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 248, 248, 246, 248, 248, 246, 248, 248, 246, 247, 247, 245, 245, 245, 243, 243, 243, 241, 241, 241, 239, 239, 239, 237, 239, 239, 237, 234, 234, 232, 220, 219, 217, 215, 214, 212, 228, 227, 225, 233, 232, 230, 225, 224, 222, 218, 217, 215, 201, 197, 196, 180, 176, 175, 183, 179, 178, 188, 184, 183, 191, 187, 186, 187, 183, 182, 185, 179, 179, 204, 198, 198, 204, 194, 193, 196, 186, 185, 163, 153, 152, 159, 149, 148, 155, 145, 144, 137, 127, 126, 160, 150, 149, 192, 182, 181, 169, 159, 158, 166, 156, 155, 143, 133, 132, 161, 151, 150, 162, 152, 151, 145, 135, 134, 173, 163, 162, 183, 173, 172, 169, 159, 157, 150, 140, 138, 139, 129, 127, 138, 128, 126, 152, 142, 140, 180, 170, 168, 169, 159, 157, 120, 110, 108, 136, 126, 124, 179, 169, 167, 168, 158, 156, 154, 144, 142, 96, 86, 84, 127, 117, 115, 135, 125, 123, 159, 150, 145, 155, 148, 140, 151, 147, 136, 137, 133, 124, 155, 148, 142, 160, 151, 146, 134, 123, 119, 127, 112, 107, 121, 107, 104, 112, 98, 97, 141, 129, 129, 92, 82, 81, 66, 55, 51, 67, 48, 41, 85, 62, 46, 66, 34, 11, 76, 40, 4, 101, 64, 12, 92, 57, 3, 71, 42, 0, 62, 35, 5, 67, 41, 18, 63, 38, 18, 59, 35, 11, 61, 44, 16, 48, 42, 10, 53, 60, 26, 52, 72, 44, 47, 75, 52, 33, 61, 47, 6, 29, 23, 0, 9, 12, 6, 15, 20, 0, 8, 12, 3, 17, 20, 5, 20, 27, 0, 12, 23, 0, 6, 19, 0, 8, 24, 0, 14, 30, 0, 17, 33, 4, 20, 33, 3, 20, 30, 2, 16, 25, 0, 13, 21, 0, 9, 18, 0, 7, 15, 1, 5, 16, 1, 5, 14, 3, 6, 15, 2, 9, 15, 0, 11, 19, 0, 15, 24, 6, 32, 47, 25, 52, 71, 31, 57, 74, 30, 49, 63, 26, 41, 46, 30, 41, 43, 15, 24, 31, 2, 12, 21, 8, 24, 37, 14, 37, 45, 8, 40, 39, 1, 43, 29, 19, 79, 45, 22, 85, 38, 37, 92, 37, 78, 118, 55, 104, 128, 54, 127, 132, 50, 177, 162, 77, 196, 168, 84, 205, 168, 88, 216, 174, 102, 224, 180, 117, 223, 182, 120, 222, 178, 115, 220, 177, 109, 228, 181, 109, 237, 186, 105, 225, 163, 78, 205, 149, 74, 149, 111, 64, 85, 63, 39, 111, 102, 95, 199, 197, 200, 206, 206, 208, 150, 154, 157, 138, 142, 145, 118, 122, 123, 134, 134, 132, 175, 172, 167, 199, 192, 184, 196, 189, 181, 184, 181, 174, 174, 174, 166, 184, 181, 176, 188, 185, 180, 188, 185, 180, 181, 178, 173, 175, 170, 166, 171, 166, 162, 167, 162, 156, 162, 157, 151, 178, 173, 167, 179, 174, 168, 172, 165, 159, 167, 160, 154, 176, 169, 161, 181, 174, 166, 175, 168, 160, 173, 166, 158, 160, 155, 151, 161, 156, 152, 165, 160, 156, 161, 156, 152, 137, 132, 128, 113, 108, 104, 117, 112, 108, 137, 132, 128, 146, 141, 137, 149, 144, 140, 158, 153, 149, 169, 164, 160, 173, 168, 164, 169, 164, 160, 166, 161, 157, 168, 163, 159, 169, 164, 160, 171, 166, 162, 172, 167, 163, 169, 164, 160, 164, 159, 155, 162, 157, 153, 164, 159, 155, 167, 162, 158, 183, 178, 174, 181, 176, 172, 179, 174, 170, 179, 174, 170, 178, 173, 169, 172, 167, 163, 160, 155, 151, 151, 146, 142, 144, 137, 131, 145, 138, 132, 148, 141, 135, 151, 144, 138, 153, 146, 140, 155, 148, 142, 156, 149, 143, 156, 149, 143, 147, 140, 134, 148, 141, 135, 150, 143, 137, 153, 146, 140, 158, 151, 145, 166, 159, 153, 177, 170, 164, 184, 177, 171, 175, 167, 164, 170, 162, 159, 164, 156, 153, 161, 153, 150, 163, 155, 152, 166, 158, 155, 169, 161, 158, 170, 162, 159, 184, 176, 173, 184, 176, 173, 184, 176, 173, 184, 176, 173, 183, 175, 172, 183, 175, 172, 182, 174, 171, 182, 174, 171, 189, 181, 179, 191, 183, 181, 192, 187, 184, 197, 192, 189, 201, 197, 196, 206, 202, 201, 207, 205, 206, 209, 207, 208, 210, 210, 212, 213, 213, 215, 218, 219, 223, 224, 225, 229, 229, 232, 237, 234, 237, 242, 237, 240, 247, 239, 242, 249, 239, 242, 247, 239, 242, 247, 240, 243, 248, 241, 244, 249, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 248, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 235, 238, 243, 235, 238, 243, 235, 238, 243, 235, 238, 243, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 236, 239, 244, 234, 237, 242, 233, 236, 241, 230, 235, 241, 225, 230, 234, 219, 222, 227, 209, 213, 214, 201, 201, 201, 193, 192, 188, 188, 185, 180, 185, 181, 172, 176, 169, 161, 171, 162, 153, 159, 149, 140, 143, 133, 124, 132, 122, 113, 129, 119, 110, 134, 121, 115, 135, 124, 118, 134, 127, 121, 134, 129, 123, 138, 133, 127, 141, 136, 130, 144, 139, 133, 146, 141, 135, 150, 142, 139, 151, 143, 140, 156, 148, 145, 157, 149, 146, 154, 146, 143, 149, 141, 138, 148, 138, 137, 148, 138, 137, 143, 133, 132, 136, 126, 124, 134, 125, 120, 124, 117, 111, 120, 113, 107, 126, 121, 115, 137, 132, 126, 136, 131, 125, 119, 114, 110, 100, 97, 92, 84, 81, 76, 83, 80, 75, 88, 85, 80, 103, 98, 94, 120, 115, 112, 135, 127, 125, 132, 124, 122, 121, 113, 111, 126, 121, 117, 137, 134, 129, 149, 144, 140, 151, 146, 142, 153, 148, 144, 157, 152, 148, 156, 151, 147, 151, 146, 142, 116, 108, 105, 111, 103, 100, 100, 92, 89, 87, 79, 76, 78, 70, 67, 84, 76, 73, 105, 95, 93, 124, 114, 112, 117, 109, 107, 121, 113, 111, 135, 127, 125, 147, 139, 137, 141, 133, 131, 126, 118, 116, 126, 118, 116, 139, 131, 129, 152, 144, 142, 152, 144, 142, 154, 146, 144, 156, 148, 146, 153, 145, 143, 145, 137, 135, 138, 130, 128, 136, 128, 126, 139, 134, 131, 150, 145, 142, 155, 150, 147, 160, 155, 152, 166, 161, 158, 160, 155, 152, 151, 143, 140, 151, 143, 140, 164, 156, 153, 159, 151, 148, 145, 135, 133, 128, 118, 116, 119, 110, 105, 122, 113, 108, 127, 118, 113, 129, 120, 115, 113, 104, 97, 111, 102, 95, 117, 108, 101, 131, 122, 115, 147, 138, 133, 153, 144, 139, 151, 142, 137, 147, 138, 133, 128, 119, 114, 119, 110, 105, 130, 120, 118, 146, 136, 134, 142, 132, 130, 137, 127, 125, 145, 135, 133, 154, 144, 142, 157, 148, 143, 148, 139, 134, 153, 144, 139, 172, 163, 158, 174, 165, 160, 152, 143, 138, 131, 122, 117, 124, 115, 110, 130, 121, 116, 146, 137, 132, 141, 132, 127, 133, 124, 119, 146, 137, 132, 154, 145, 140, 144, 135, 130, 134, 125, 120, 132, 121, 117, 128, 117, 113, 145, 134, 130, 142, 131, 127, 116, 105, 101, 124, 113, 109, 138, 127, 123, 119, 108, 104, 107, 96, 92, 116, 105, 101, 127, 116, 112, 131, 120, 116, 136, 125, 121, 146, 135, 131, 130, 119, 115, 96, 85, 81, 124, 114, 112, 136, 126, 124, 114, 104, 102, 79, 69, 67, 81, 71, 69, 95, 85, 83, 88, 78, 77, 74, 64, 63, 96, 86, 85, 115, 105, 104, 103, 93, 92, 78, 68, 67, 83, 73, 74, 100, 90, 91, 102, 92, 93, 96, 86, 85, 72, 60, 60, 126, 115, 113, 135, 124, 122, 133, 122, 120, 123, 112, 110, 94, 83, 81, 103, 92, 90, 130, 119, 117, 117, 106, 104, 139, 128, 126, 131, 120, 118, 142, 131, 129, 142, 131, 129, 151, 140, 138, 118, 107, 105, 121, 110, 108, 165, 154, 150, 158, 147, 143, 159, 148, 144, 143, 132, 128, 97, 88, 83, 165, 156, 151, 202, 193, 188, 150, 141, 136, 146, 138, 135, 196, 188, 185, 186, 178, 175, 186, 178, 175, 208, 200, 198, 189, 181, 179, 198, 190, 188, 209, 204, 201, 210, 209, 207, 206, 206, 204, 218, 218, 216, 230, 230, 228, 228, 228, 226, 230, 230, 228, 236, 236, 234, 236, 236, 234, 242, 242, 240, 241, 241, 239, 240, 240, 238, 242, 242, 240, 245, 245, 243, 247, 247, 245, 247, 247, 245, 245, 245, 243, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 246, 246, 244, 244, 244, 242, 242, 242, 240, 241, 241, 239, 243, 243, 241, 237, 237, 235, 225, 224, 222, 219, 218, 216, 227, 226, 224, 233, 232, 230, 228, 227, 225, 220, 219, 217, 210, 206, 205, 197, 193, 192, 182, 178, 177, 186, 182, 181, 202, 198, 197, 193, 189, 188, 186, 180, 180, 209, 203, 203, 206, 198, 196, 178, 168, 167, 169, 159, 158, 177, 167, 166, 148, 138, 137, 142, 132, 131, 175, 165, 164, 168, 158, 157, 185, 175, 174, 171, 161, 160, 143, 133, 132, 158, 148, 147, 167, 157, 156, 153, 143, 142, 171, 161, 160, 186, 176, 175, 184, 174, 172, 161, 151, 149, 145, 135, 133, 137, 127, 125, 135, 125, 123, 153, 143, 141, 168, 158, 156, 164, 154, 152, 120, 110, 108, 162, 152, 150, 163, 153, 151, 156, 146, 144, 116, 106, 104, 139, 129, 127, 137, 127, 125, 143, 136, 130, 170, 163, 155, 158, 154, 145, 136, 131, 125, 148, 141, 135, 154, 145, 140, 140, 129, 125, 145, 130, 125, 140, 125, 120, 114, 100, 97, 135, 124, 122, 83, 72, 70, 69, 56, 50, 66, 48, 36, 78, 56, 35, 69, 37, 12, 82, 47, 9, 97, 60, 8, 93, 58, 4, 75, 46, 4, 66, 41, 10, 69, 43, 20, 64, 39, 17, 63, 39, 13, 68, 52, 19, 50, 46, 8, 56, 67, 25, 57, 85, 45, 53, 88, 55, 38, 71, 50, 8, 34, 23, 0, 8, 9, 6, 13, 19, 0, 11, 17, 1, 19, 23, 5, 22, 30, 2, 20, 30, 0, 18, 30, 1, 19, 33, 1, 19, 33, 0, 15, 28, 4, 21, 31, 4, 18, 27, 2, 15, 23, 1, 12, 18, 0, 7, 15, 0, 4, 13, 0, 2, 14, 0, 3, 12, 4, 7, 14, 5, 10, 16, 0, 11, 17, 0, 13, 24, 7, 26, 43, 20, 41, 60, 26, 45, 62, 22, 40, 54, 20, 33, 39, 26, 35, 40, 13, 22, 29, 2, 12, 21, 8, 22, 35, 11, 31, 40, 3, 29, 28, 0, 30, 15, 35, 91, 54, 42, 102, 50, 51, 105, 43, 86, 128, 56, 112, 137, 54, 131, 137, 47, 170, 160, 65, 186, 163, 70, 195, 163, 78, 212, 175, 97, 229, 188, 122, 235, 194, 130, 232, 188, 123, 229, 182, 112, 228, 179, 102, 235, 179, 96, 199, 135, 47, 197, 140, 63, 164, 124, 75, 107, 83, 57, 114, 104, 95, 194, 189, 193, 204, 203, 208, 139, 140, 144, 136, 140, 143, 126, 130, 131, 148, 148, 146, 185, 182, 177, 199, 192, 184, 195, 188, 178, 188, 185, 178, 183, 183, 175, 194, 191, 186, 200, 197, 192, 202, 199, 194, 193, 190, 185, 185, 180, 176, 180, 175, 171, 178, 173, 167, 175, 170, 164, 176, 171, 165, 177, 172, 166, 170, 163, 157, 157, 150, 144, 157, 150, 142, 164, 157, 149, 166, 159, 151, 165, 158, 150, 173, 168, 164, 173, 168, 164, 165, 160, 156, 141, 136, 132, 110, 105, 101, 103, 98, 94, 135, 130, 126, 174, 169, 165, 150, 145, 141, 162, 157, 153, 173, 168, 164, 171, 166, 162, 158, 153, 149, 148, 143, 139, 152, 147, 143, 161, 156, 152, 159, 154, 150, 165, 160, 156, 170, 165, 161, 171, 166, 162, 168, 163, 159, 167, 162, 158, 170, 165, 161, 174, 169, 165, 177, 172, 168, 168, 163, 159, 160, 155, 151, 162, 157, 153, 168, 163, 159, 168, 163, 159, 158, 153, 149, 148, 143, 139, 169, 162, 156, 171, 164, 158, 173, 166, 160, 174, 167, 161, 172, 165, 159, 168, 161, 155, 164, 157, 151, 161, 154, 148, 150, 143, 137, 156, 149, 143, 164, 157, 151, 170, 163, 157, 174, 167, 161, 176, 169, 163, 179, 172, 166, 181, 174, 168, 178, 170, 167, 174, 166, 163, 169, 161, 158, 167, 159, 156, 168, 160, 157, 169, 161, 158, 170, 162, 159, 170, 162, 159, 182, 174, 171, 176, 168, 165, 169, 161, 158, 163, 155, 152, 163, 155, 152, 167, 159, 156, 174, 166, 163, 179, 171, 168, 190, 182, 180, 192, 184, 182, 194, 189, 186, 198, 193, 190, 202, 198, 197, 206, 202, 201, 207, 205, 206, 209, 207, 208, 212, 212, 214, 215, 215, 217, 219, 220, 224, 225, 226, 230, 229, 232, 237, 233, 236, 241, 237, 240, 247, 238, 241, 248, 239, 242, 247, 239, 242, 247, 240, 243, 248, 241, 244, 249, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 248, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 235, 238, 243, 235, 238, 243, 235, 238, 243, 235, 238, 243, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 236, 239, 244, 234, 237, 242, 233, 236, 241, 230, 235, 241, 226, 231, 235, 221, 224, 229, 212, 216, 217, 204, 204, 204, 196, 195, 191, 190, 187, 182, 187, 183, 174, 181, 174, 166, 173, 166, 156, 162, 153, 144, 149, 140, 131, 140, 129, 123, 136, 125, 119, 140, 129, 123, 145, 136, 129, 153, 146, 140, 152, 147, 143, 154, 149, 145, 159, 154, 150, 163, 158, 154, 166, 161, 157, 168, 160, 157, 168, 160, 157, 166, 158, 155, 167, 159, 156, 163, 155, 152, 157, 149, 146, 156, 146, 144, 157, 147, 145, 153, 143, 141, 147, 137, 135, 138, 131, 125, 134, 127, 121, 126, 119, 113, 115, 110, 104, 112, 107, 101, 116, 113, 106, 127, 124, 119, 134, 133, 128, 122, 121, 116, 115, 114, 109, 102, 101, 96, 99, 96, 91, 114, 110, 107, 131, 126, 123, 133, 128, 125, 128, 123, 120, 124, 119, 115, 136, 131, 127, 145, 140, 136, 144, 139, 135, 142, 134, 131, 144, 136, 133, 152, 144, 141, 159, 151, 148, 157, 149, 146, 151, 143, 140, 139, 129, 127, 124, 114, 112, 113, 103, 101, 108, 98, 96, 104, 94, 92, 101, 91, 89, 106, 98, 95, 112, 104, 101, 130, 122, 119, 147, 139, 136, 143, 135, 132, 126, 118, 115, 122, 114, 111, 130, 122, 119, 138, 130, 127, 120, 112, 109, 113, 105, 102, 134, 126, 123, 162, 154, 151, 173, 165, 162, 165, 157, 154, 155, 147, 144, 148, 143, 140, 156, 152, 149, 157, 153, 150, 159, 155, 152, 167, 162, 158, 163, 158, 154, 155, 150, 146, 157, 152, 148, 154, 146, 143, 146, 138, 135, 132, 125, 119, 121, 114, 108, 122, 115, 109, 128, 121, 115, 129, 122, 116, 124, 117, 111, 150, 141, 134, 136, 127, 120, 120, 111, 104, 115, 106, 99, 116, 107, 102, 110, 101, 96, 91, 82, 77, 71, 62, 57, 118, 109, 104, 112, 103, 98, 123, 113, 111, 136, 126, 124, 128, 118, 116, 120, 110, 108, 123, 113, 111, 127, 117, 115, 101, 92, 87, 120, 111, 106, 128, 119, 114, 125, 116, 111, 139, 130, 125, 156, 147, 142, 142, 133, 128, 111, 102, 97, 108, 99, 94, 111, 102, 97, 101, 92, 87, 99, 90, 85, 123, 114, 109, 143, 134, 129, 136, 127, 122, 119, 110, 105, 107, 96, 92, 96, 85, 81, 122, 111, 107, 142, 131, 127, 124, 113, 109, 124, 113, 109, 139, 128, 124, 133, 122, 118, 112, 101, 97, 110, 99, 95, 123, 112, 108, 132, 121, 117, 128, 117, 113, 132, 121, 117, 134, 123, 119, 120, 109, 105, 97, 88, 83, 119, 110, 105, 133, 123, 121, 115, 105, 103, 99, 89, 87, 113, 103, 101, 116, 106, 104, 93, 83, 81, 75, 65, 64, 103, 93, 92, 112, 102, 101, 112, 102, 101, 122, 112, 111, 117, 107, 106, 99, 89, 90, 97, 87, 86, 89, 77, 77, 118, 107, 105, 133, 122, 120, 135, 124, 122, 112, 101, 99, 100, 89, 87, 118, 107, 105, 112, 101, 99, 101, 90, 88, 136, 125, 123, 125, 114, 112, 134, 123, 121, 135, 124, 122, 153, 142, 140, 134, 123, 121, 133, 122, 120, 156, 147, 142, 157, 148, 143, 162, 153, 148, 152, 143, 138, 100, 91, 86, 171, 162, 157, 196, 186, 184, 158, 148, 146, 156, 148, 145, 192, 184, 181, 196, 188, 185, 200, 192, 189, 198, 193, 190, 192, 187, 184, 193, 188, 185, 209, 205, 202, 212, 211, 209, 205, 205, 203, 215, 215, 213, 228, 228, 226, 230, 230, 228, 233, 233, 231, 238, 238, 236, 235, 235, 233, 243, 243, 241, 242, 242, 240, 241, 241, 239, 243, 243, 241, 246, 246, 244, 248, 248, 246, 248, 248, 246, 246, 246, 244, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 248, 248, 246, 248, 248, 246, 249, 249, 247, 248, 248, 246, 247, 247, 245, 245, 245, 243, 244, 244, 242, 243, 243, 241, 248, 248, 246, 240, 240, 238, 230, 230, 228, 224, 224, 222, 227, 226, 224, 232, 231, 229, 228, 227, 225, 217, 216, 214, 213, 212, 210, 215, 214, 212, 193, 189, 188, 189, 185, 184, 207, 203, 202, 203, 199, 198, 195, 191, 190, 205, 199, 199, 192, 184, 182, 186, 178, 176, 193, 185, 183, 195, 187, 185, 151, 143, 141, 138, 130, 128, 172, 164, 162, 167, 159, 157, 188, 180, 178, 180, 172, 170, 152, 144, 142, 154, 146, 144, 165, 157, 155, 158, 150, 148, 164, 156, 154, 173, 165, 163, 169, 159, 157, 168, 158, 156, 146, 136, 134, 124, 114, 112, 122, 112, 110, 130, 120, 118, 146, 136, 134, 168, 158, 156, 130, 120, 118, 154, 144, 142, 150, 140, 138, 146, 136, 134, 134, 124, 122, 157, 147, 145, 145, 135, 133, 129, 121, 118, 178, 171, 165, 163, 158, 152, 139, 134, 128, 149, 141, 138, 152, 143, 138, 146, 135, 131, 158, 143, 138, 150, 135, 130, 115, 102, 96, 124, 113, 109, 71, 60, 56, 76, 63, 55, 70, 53, 37, 69, 45, 21, 67, 33, 5, 86, 48, 9, 97, 57, 5, 94, 57, 4, 78, 49, 7, 70, 46, 12, 72, 46, 21, 67, 43, 17, 67, 42, 12, 75, 57, 21, 54, 53, 7, 58, 75, 23, 57, 94, 43, 54, 100, 54, 41, 82, 50, 11, 42, 26, 0, 10, 9, 6, 11, 17, 5, 20, 27, 5, 24, 31, 8, 27, 34, 13, 31, 41, 20, 38, 50, 23, 41, 53, 14, 30, 43, 2, 19, 29, 5, 19, 28, 4, 17, 23, 5, 14, 19, 3, 10, 16, 2, 7, 13, 2, 5, 12, 3, 3, 13, 2, 2, 12, 7, 10, 17, 5, 10, 16, 2, 9, 17, 2, 12, 22, 5, 18, 35, 11, 26, 45, 15, 28, 47, 12, 26, 39, 9, 20, 26, 10, 19, 24, 4, 13, 20, 2, 12, 22, 3, 15, 27, 0, 9, 17, 0, 8, 6, 0, 24, 7, 44, 96, 57, 54, 113, 57, 61, 113, 47, 92, 133, 55, 120, 144, 56, 135, 145, 48, 167, 159, 60, 179, 159, 62, 191, 161, 73, 206, 171, 90, 221, 182, 113, 229, 188, 122, 229, 184, 116, 226, 178, 106, 227, 174, 94, 232, 172, 86, 209, 142, 53, 206, 147, 67, 160, 118, 68, 97, 71, 44, 102, 89, 81, 187, 181, 185, 220, 218, 223, 164, 165, 170, 141, 144, 149, 138, 142, 145, 161, 161, 161, 190, 186, 183, 195, 188, 180, 189, 182, 172, 184, 184, 176, 183, 183, 175, 175, 172, 167, 185, 182, 177, 191, 188, 183, 189, 186, 181, 186, 181, 177, 184, 179, 175, 183, 178, 172, 181, 176, 170, 170, 165, 159, 159, 154, 148, 153, 146, 140, 154, 147, 141, 165, 158, 150, 175, 168, 160, 170, 163, 155, 157, 150, 142, 167, 162, 158, 166, 161, 157, 157, 152, 148, 146, 141, 137, 148, 143, 139, 161, 156, 152, 172, 167, 163, 174, 169, 165, 168, 163, 159, 177, 172, 168, 181, 176, 172, 173, 168, 164, 161, 156, 152, 158, 153, 149, 167, 162, 158, 176, 171, 167, 181, 176, 172, 177, 172, 168, 171, 166, 162, 166, 161, 157, 163, 158, 154, 163, 158, 154, 164, 159, 155, 165, 160, 156, 156, 151, 147, 162, 157, 153, 165, 160, 156, 159, 154, 150, 148, 143, 139, 145, 140, 136, 153, 148, 144, 163, 158, 154, 158, 151, 145, 164, 157, 151, 173, 166, 160, 180, 173, 167, 182, 175, 169, 180, 173, 167, 175, 168, 162, 171, 164, 158, 170, 163, 157, 174, 167, 161, 178, 171, 165, 179, 172, 166, 176, 169, 163, 172, 165, 159, 169, 162, 156, 169, 162, 156, 168, 160, 157, 165, 157, 154, 162, 154, 151, 161, 153, 150, 162, 154, 151, 163, 155, 152, 162, 154, 151, 160, 152, 149, 159, 151, 148, 155, 147, 144, 151, 143, 140, 149, 141, 138, 153, 145, 142, 162, 154, 151, 172, 164, 161, 178, 170, 167, 192, 184, 182, 194, 186, 184, 195, 190, 187, 199, 194, 191, 202, 198, 197, 206, 202, 201, 207, 205, 206, 209, 207, 208, 216, 216, 218, 219, 219, 221, 222, 223, 227, 226, 227, 231, 228, 231, 236, 232, 235, 240, 234, 237, 244, 235, 238, 245, 239, 242, 247, 239, 242, 247, 240, 243, 248, 241, 244, 249, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 248, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 235, 238, 243, 235, 238, 243, 235, 238, 243, 235, 238, 243, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 236, 239, 244, 234, 237, 242, 233, 236, 241, 230, 235, 241, 227, 232, 236, 222, 225, 230, 216, 217, 219, 207, 207, 207, 198, 197, 193, 192, 189, 184, 188, 183, 177, 176, 169, 161, 166, 159, 149, 158, 149, 140, 153, 144, 135, 151, 140, 134, 149, 138, 132, 153, 142, 136, 158, 149, 144, 169, 161, 158, 168, 163, 159, 169, 164, 160, 169, 164, 160, 169, 164, 160, 168, 163, 159, 169, 161, 158, 169, 161, 158, 170, 162, 159, 171, 163, 160, 168, 160, 157, 163, 155, 152, 163, 153, 151, 163, 153, 151, 159, 149, 147, 152, 142, 140, 145, 138, 132, 143, 136, 130, 134, 127, 121, 116, 111, 105, 100, 95, 89, 90, 87, 80, 91, 88, 83, 93, 92, 87, 125, 124, 119, 134, 133, 128, 127, 126, 121, 115, 114, 109, 121, 117, 114, 130, 126, 123, 133, 129, 126, 136, 132, 129, 132, 127, 123, 135, 130, 126, 138, 133, 129, 140, 135, 131, 140, 132, 129, 135, 127, 124, 130, 122, 119, 128, 120, 117, 130, 122, 119, 140, 132, 129, 151, 141, 139, 155, 145, 143, 155, 145, 143, 148, 138, 136, 133, 123, 121, 119, 109, 107, 129, 121, 118, 129, 121, 118, 122, 114, 111, 118, 110, 107, 133, 125, 122, 156, 148, 145, 162, 154, 151, 153, 145, 142, 138, 130, 127, 127, 119, 116, 122, 114, 111, 125, 117, 114, 126, 118, 115, 123, 115, 112, 127, 119, 116, 135, 130, 126, 150, 145, 142, 152, 148, 145, 146, 142, 139, 142, 138, 135, 151, 146, 142, 153, 148, 144, 155, 150, 146, 163, 158, 154, 177, 169, 166, 171, 163, 160, 161, 154, 148, 158, 151, 145, 166, 159, 153, 175, 168, 162, 173, 166, 160, 165, 158, 152, 171, 162, 155, 158, 149, 142, 141, 132, 125, 136, 127, 120, 146, 137, 132, 155, 146, 141, 149, 140, 135, 136, 127, 122, 116, 107, 102, 115, 106, 101, 110, 100, 98, 99, 89, 87, 96, 86, 84, 109, 99, 97, 104, 94, 92, 79, 69, 67, 67, 58, 53, 90, 81, 76, 108, 99, 94, 109, 100, 95, 106, 97, 92, 110, 101, 96, 115, 106, 101, 115, 106, 101, 119, 110, 105, 130, 121, 116, 131, 122, 117, 119, 110, 105, 113, 104, 99, 124, 115, 110, 141, 132, 127, 150, 141, 136, 128, 117, 113, 112, 101, 97, 124, 113, 109, 140, 129, 125, 124, 113, 109, 114, 103, 99, 126, 115, 111, 134, 123, 119, 118, 107, 103, 113, 102, 98, 117, 106, 102, 117, 106, 102, 101, 90, 86, 96, 85, 81, 113, 102, 98, 130, 119, 115, 100, 91, 86, 92, 83, 78, 110, 100, 98, 132, 122, 120, 130, 120, 118, 128, 118, 116, 120, 110, 108, 99, 89, 87, 84, 74, 73, 64, 54, 53, 88, 78, 77, 126, 116, 115, 129, 119, 118, 129, 119, 118, 131, 121, 122, 119, 109, 108, 88, 77, 75, 114, 103, 101, 133, 122, 120, 131, 120, 118, 103, 92, 90, 110, 99, 97, 139, 128, 126, 118, 107, 105, 107, 96, 94, 141, 130, 128, 121, 110, 108, 132, 121, 119, 134, 123, 121, 153, 142, 140, 145, 134, 132, 148, 137, 135, 150, 141, 136, 151, 142, 137, 155, 146, 141, 158, 149, 144, 101, 92, 87, 157, 148, 143, 168, 158, 156, 165, 155, 153, 168, 160, 157, 186, 178, 175, 197, 189, 186, 205, 197, 194, 187, 182, 179, 195, 190, 187, 189, 184, 181, 207, 203, 200, 213, 212, 210, 204, 204, 202, 212, 212, 210, 227, 227, 225, 232, 232, 230, 236, 236, 234, 238, 238, 236, 233, 233, 231, 244, 244, 242, 242, 242, 240, 242, 242, 240, 244, 244, 242, 247, 247, 245, 249, 249, 247, 248, 248, 246, 247, 247, 245, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 248, 248, 246, 247, 247, 245, 245, 245, 243, 244, 244, 242, 250, 250, 248, 241, 241, 239, 236, 236, 234, 232, 232, 230, 229, 228, 226, 233, 232, 230, 230, 229, 227, 215, 214, 212, 215, 214, 212, 228, 227, 225, 207, 203, 202, 199, 195, 194, 211, 207, 206, 208, 204, 203, 202, 198, 197, 195, 191, 190, 201, 193, 191, 217, 209, 207, 197, 189, 187, 185, 177, 175, 176, 168, 166, 157, 149, 147, 164, 156, 154, 172, 164, 162, 176, 168, 166, 186, 178, 176, 172, 164, 162, 161, 153, 151, 163, 155, 153, 154, 146, 144, 153, 145, 143, 166, 158, 156, 159, 149, 147, 178, 168, 166, 161, 151, 149, 130, 120, 118, 133, 123, 121, 145, 135, 133, 146, 136, 134, 149, 139, 137, 163, 153, 151, 167, 157, 155, 151, 141, 139, 139, 129, 127, 144, 134, 132, 169, 159, 157, 157, 147, 145, 130, 122, 119, 171, 164, 158, 161, 156, 150, 147, 142, 138, 159, 151, 148, 157, 148, 143, 150, 139, 133, 161, 146, 141, 147, 132, 125, 115, 102, 96, 118, 105, 99, 59, 48, 42, 73, 59, 48, 64, 45, 28, 56, 32, 6, 63, 30, 0, 85, 46, 3, 100, 57, 6, 97, 57, 5, 82, 51, 7, 74, 48, 13, 78, 53, 23, 74, 48, 21, 74, 48, 15, 79, 61, 21, 66, 69, 16, 65, 89, 29, 60, 106, 44, 57, 112, 57, 45, 95, 57, 17, 52, 30, 2, 14, 10, 2, 9, 15, 1, 16, 23, 0, 17, 24, 0, 17, 27, 6, 24, 34, 18, 35, 45, 22, 39, 49, 11, 25, 34, 0, 9, 16, 3, 16, 22, 3, 14, 18, 3, 11, 14, 3, 8, 12, 2, 5, 10, 4, 4, 12, 4, 2, 13, 4, 4, 14, 7, 10, 17, 4, 9, 15, 3, 8, 14, 3, 10, 20, 5, 12, 30, 5, 13, 32, 6, 14, 33, 5, 14, 29, 10, 19, 26, 7, 16, 21, 5, 14, 21, 11, 21, 31, 7, 19, 31, 0, 3, 12, 0, 5, 5, 3, 32, 14, 36, 87, 46, 53, 111, 53, 60, 111, 44, 92, 130, 53, 125, 149, 61, 143, 150, 55, 169, 161, 63, 179, 159, 64, 193, 166, 77, 202, 167, 86, 207, 171, 97, 212, 172, 102, 216, 172, 101, 220, 170, 97, 226, 171, 91, 232, 170, 85, 232, 163, 72, 223, 162, 81, 151, 110, 58, 82, 56, 29, 93, 78, 71, 169, 163, 167, 204, 202, 207, 157, 158, 163, 148, 151, 156, 142, 146, 149, 161, 161, 161, 185, 181, 178, 193, 186, 178, 190, 183, 173, 184, 184, 176, 178, 179, 171, 177, 174, 169, 183, 180, 175, 187, 184, 179, 184, 181, 176, 182, 177, 173, 180, 175, 171, 177, 172, 166, 172, 167, 161, 149, 144, 138, 147, 142, 136, 160, 153, 147, 170, 163, 157, 163, 156, 148, 156, 149, 141, 155, 148, 140, 152, 145, 137, 151, 146, 142, 162, 157, 153, 165, 160, 156, 158, 153, 149, 159, 154, 150, 168, 163, 159, 165, 160, 156, 154, 149, 145, 169, 164, 160, 168, 163, 159, 165, 160, 156, 163, 158, 154, 171, 166, 162, 183, 178, 174, 187, 182, 178, 184, 179, 175, 180, 175, 171, 167, 162, 158, 152, 147, 143, 143, 138, 134, 144, 139, 135, 151, 146, 142, 157, 152, 148, 160, 155, 151, 168, 163, 159, 170, 165, 161, 169, 164, 160, 163, 158, 154, 155, 150, 146, 150, 145, 141, 152, 147, 143, 155, 150, 146, 137, 130, 124, 143, 136, 130, 153, 146, 140, 162, 155, 149, 166, 159, 153, 164, 157, 151, 161, 154, 148, 157, 150, 144, 157, 150, 144, 158, 151, 145, 158, 151, 145, 157, 150, 144, 155, 148, 142, 156, 149, 143, 160, 153, 147, 163, 156, 150, 156, 148, 145, 155, 147, 144, 153, 145, 142, 154, 146, 143, 156, 148, 145, 156, 148, 145, 154, 146, 143, 151, 143, 140, 147, 139, 136, 150, 142, 139, 157, 149, 146, 165, 157, 154, 174, 166, 163, 182, 174, 171, 188, 180, 177, 191, 183, 180, 194, 186, 184, 195, 187, 185, 196, 191, 188, 200, 195, 192, 203, 199, 198, 207, 203, 202, 208, 206, 207, 209, 207, 208, 218, 218, 220, 220, 220, 222, 223, 224, 228, 227, 228, 232, 229, 232, 237, 231, 234, 239, 233, 236, 243, 234, 237, 244, 239, 242, 247, 239, 242, 247, 240, 243, 248, 241, 244, 249, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 248, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 235, 238, 243, 235, 238, 243, 235, 238, 243, 235, 238, 243, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 236, 239, 244, 234, 237, 242, 233, 236, 241, 229, 234, 240, 226, 231, 235, 222, 225, 230, 217, 218, 220, 208, 208, 208, 199, 198, 194, 192, 189, 184, 188, 183, 177, 175, 168, 160, 162, 155, 147, 156, 147, 140, 158, 149, 142, 162, 153, 148, 160, 151, 146, 162, 153, 148, 167, 157, 155, 178, 170, 167, 178, 173, 169, 179, 174, 170, 176, 171, 167, 171, 166, 162, 167, 162, 158, 168, 160, 157, 168, 160, 157, 169, 161, 158, 170, 162, 159, 168, 160, 157, 164, 156, 153, 164, 155, 150, 163, 154, 149, 157, 148, 143, 149, 140, 135, 149, 140, 135, 138, 131, 125, 129, 122, 116, 124, 119, 113, 125, 120, 114, 120, 117, 110, 108, 105, 100, 97, 94, 89, 81, 80, 75, 101, 100, 95, 103, 102, 97, 98, 97, 92, 112, 111, 107, 124, 123, 119, 126, 122, 119, 128, 124, 121, 135, 130, 126, 133, 128, 124, 136, 128, 125, 141, 133, 130, 139, 131, 128, 128, 120, 117, 114, 106, 103, 104, 96, 93, 139, 129, 127, 143, 133, 131, 139, 129, 127, 125, 115, 113, 117, 107, 105, 123, 113, 111, 133, 122, 120, 135, 125, 123, 151, 143, 140, 135, 127, 124, 107, 99, 96, 88, 80, 77, 99, 91, 88, 125, 117, 114, 134, 126, 123, 127, 119, 116, 125, 117, 114, 127, 119, 116, 133, 125, 122, 132, 124, 121, 113, 105, 102, 96, 88, 85, 103, 95, 92, 122, 117, 113, 139, 134, 131, 142, 138, 135, 137, 134, 129, 136, 133, 128, 145, 142, 137, 149, 146, 141, 153, 148, 144, 162, 157, 153, 179, 174, 168, 175, 170, 164, 166, 159, 153, 155, 148, 142, 150, 143, 137, 150, 143, 137, 145, 138, 130, 138, 131, 123, 137, 128, 121, 133, 124, 117, 125, 116, 109, 119, 110, 103, 127, 118, 113, 141, 132, 127, 146, 137, 132, 141, 132, 127, 158, 149, 144, 155, 146, 141, 143, 133, 131, 121, 111, 109, 110, 100, 98, 118, 108, 106, 109, 99, 97, 79, 69, 67, 86, 77, 72, 70, 61, 56, 79, 70, 65, 119, 110, 105, 148, 139, 134, 140, 131, 126, 118, 109, 104, 106, 97, 92, 120, 111, 106, 133, 124, 119, 141, 132, 127, 127, 118, 113, 104, 95, 90, 104, 95, 90, 129, 120, 115, 154, 145, 140, 136, 125, 121, 129, 118, 114, 126, 115, 111, 122, 111, 107, 110, 99, 95, 97, 86, 82, 101, 90, 86, 113, 102, 98, 121, 110, 106, 117, 106, 102, 109, 98, 94, 104, 93, 89, 100, 89, 85, 93, 82, 78, 97, 86, 82, 111, 100, 96, 119, 110, 105, 118, 109, 104, 110, 101, 96, 99, 90, 85, 86, 76, 74, 77, 67, 65, 96, 86, 84, 130, 120, 118, 114, 104, 102, 96, 86, 84, 97, 87, 86, 100, 90, 89, 96, 86, 85, 112, 102, 101, 124, 114, 113, 110, 100, 99, 86, 75, 73, 123, 112, 110, 129, 118, 116, 117, 106, 104, 110, 99, 97, 129, 118, 116, 150, 139, 137, 124, 113, 111, 125, 114, 112, 149, 138, 136, 118, 107, 105, 132, 121, 119, 135, 124, 122, 149, 138, 136, 148, 137, 135, 158, 147, 145, 121, 112, 107, 149, 140, 135, 156, 147, 142, 157, 148, 143, 103, 93, 91, 159, 149, 147, 151, 143, 140, 162, 154, 151, 180, 172, 169, 179, 171, 168, 189, 184, 181, 200, 195, 192, 176, 171, 168, 198, 193, 190, 186, 181, 178, 203, 199, 196, 213, 212, 210, 202, 202, 200, 209, 209, 207, 225, 225, 223, 232, 232, 230, 238, 238, 236, 239, 239, 237, 231, 231, 229, 244, 244, 242, 243, 243, 241, 242, 242, 240, 244, 244, 242, 248, 248, 246, 250, 250, 248, 249, 249, 247, 248, 248, 246, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 248, 248, 246, 246, 246, 244, 245, 245, 243, 248, 248, 246, 240, 240, 238, 241, 241, 239, 240, 240, 238, 234, 234, 232, 237, 237, 235, 236, 235, 233, 219, 218, 216, 218, 217, 215, 229, 228, 226, 213, 212, 210, 212, 211, 209, 214, 210, 209, 204, 200, 199, 203, 199, 198, 186, 182, 181, 208, 200, 198, 220, 212, 210, 193, 185, 183, 182, 174, 172, 184, 176, 174, 174, 166, 164, 176, 168, 166, 173, 165, 163, 169, 161, 159, 184, 176, 174, 180, 172, 170, 172, 164, 162, 172, 164, 162, 154, 146, 144, 143, 135, 133, 163, 155, 153, 171, 161, 159, 176, 166, 164, 176, 166, 164, 162, 152, 150, 150, 140, 138, 157, 147, 145, 161, 151, 149, 151, 141, 139, 179, 169, 167, 180, 170, 168, 165, 155, 153, 146, 136, 134, 153, 143, 141, 172, 162, 160, 167, 157, 155, 140, 132, 129, 163, 155, 152, 158, 153, 149, 152, 147, 144, 164, 156, 153, 156, 147, 142, 148, 137, 131, 159, 144, 139, 141, 126, 119, 120, 107, 99, 123, 110, 102, 52, 42, 33, 57, 43, 30, 46, 28, 6, 49, 24, 0, 70, 36, 0, 89, 48, 4, 106, 60, 8, 102, 59, 6, 85, 53, 6, 81, 53, 14, 86, 60, 27, 84, 57, 27, 81, 55, 20, 82, 68, 23, 88, 93, 35, 79, 108, 42, 66, 121, 53, 61, 125, 64, 51, 110, 64, 20, 64, 37, 1, 20, 14, 0, 8, 13, 0, 8, 17, 0, 9, 19, 0, 7, 18, 0, 9, 20, 2, 16, 27, 6, 20, 29, 0, 12, 20, 0, 3, 7, 0, 10, 12, 0, 8, 10, 1, 6, 9, 1, 5, 8, 0, 4, 7, 2, 3, 8, 4, 3, 11, 3, 3, 13, 4, 9, 15, 2, 7, 11, 2, 7, 11, 5, 9, 18, 6, 9, 24, 3, 8, 27, 3, 8, 27, 4, 12, 25, 11, 20, 25, 8, 19, 21, 6, 17, 23, 10, 23, 32, 10, 22, 34, 0, 7, 15, 0, 7, 7, 6, 33, 14, 32, 80, 38, 51, 109, 50, 60, 109, 44, 92, 128, 56, 132, 151, 72, 150, 154, 69, 173, 162, 72, 182, 158, 68, 201, 171, 85, 202, 167, 85, 202, 166, 90, 206, 168, 95, 216, 172, 99, 223, 173, 100, 229, 172, 93, 231, 169, 84, 233, 164, 73, 229, 166, 86, 144, 103, 51, 84, 59, 29, 108, 93, 86, 165, 159, 163, 183, 178, 185, 135, 134, 142, 148, 151, 158, 145, 148, 153, 163, 163, 165, 185, 181, 178, 189, 185, 176, 191, 187, 176, 192, 192, 184, 188, 189, 181, 198, 195, 190, 197, 194, 189, 191, 188, 183, 183, 180, 175, 180, 175, 171, 179, 174, 170, 173, 168, 162, 166, 161, 155, 158, 153, 147, 156, 151, 145, 174, 167, 161, 179, 172, 166, 148, 141, 133, 123, 116, 108, 131, 124, 116, 145, 138, 130, 163, 158, 154, 173, 168, 164, 179, 174, 170, 171, 166, 162, 159, 154, 150, 153, 148, 144, 157, 152, 148, 163, 158, 154, 157, 152, 148, 158, 153, 149, 157, 152, 148, 161, 156, 152, 174, 169, 165, 186, 181, 177, 182, 177, 173, 170, 165, 161, 151, 146, 142, 146, 141, 137, 140, 135, 131, 139, 134, 130, 146, 141, 137, 156, 151, 147, 166, 161, 157, 172, 167, 163, 166, 161, 157, 163, 158, 154, 163, 158, 154, 169, 164, 160, 176, 171, 167, 174, 169, 165, 164, 159, 155, 154, 149, 145, 164, 157, 151, 163, 156, 150, 162, 155, 149, 158, 151, 145, 153, 146, 140, 146, 139, 133, 139, 132, 126, 135, 128, 122, 142, 135, 129, 144, 137, 131, 147, 140, 134, 148, 141, 135, 150, 143, 137, 153, 146, 140, 158, 151, 145, 162, 155, 149, 169, 161, 158, 169, 161, 158, 169, 161, 158, 171, 163, 160, 174, 166, 163, 174, 166, 163, 171, 163, 160, 168, 160, 157, 159, 151, 148, 163, 155, 152, 170, 162, 159, 179, 171, 168, 186, 178, 175, 192, 184, 181, 195, 187, 184, 197, 189, 186, 195, 187, 185, 196, 188, 186, 197, 192, 189, 201, 196, 193, 203, 199, 198, 207, 203, 202, 208, 206, 207, 209, 207, 208, 216, 216, 218, 218, 218, 220, 222, 223, 227, 227, 228, 232, 229, 232, 237, 233, 236, 241, 235, 238, 245, 237, 240, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 241, 244, 249, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 248, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 235, 238, 243, 235, 238, 243, 235, 238, 243, 235, 238, 243, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 236, 239, 244, 234, 237, 242, 233, 236, 241, 228, 233, 239, 227, 230, 235, 224, 225, 229, 217, 218, 220, 210, 208, 209, 199, 198, 194, 193, 190, 185, 188, 183, 177, 186, 179, 173, 172, 165, 157, 164, 155, 148, 170, 161, 154, 175, 166, 161, 172, 165, 159, 172, 162, 160, 174, 166, 163, 168, 163, 159, 173, 168, 164, 178, 173, 169, 178, 173, 169, 176, 171, 167, 174, 169, 165, 179, 171, 168, 183, 175, 172, 173, 165, 162, 175, 167, 164, 174, 166, 163, 170, 162, 159, 169, 160, 155, 166, 157, 152, 159, 150, 145, 150, 141, 136, 152, 141, 137, 139, 130, 125, 123, 114, 109, 113, 106, 100, 115, 108, 102, 123, 118, 112, 134, 129, 125, 139, 136, 131, 131, 128, 123, 131, 130, 125, 109, 108, 103, 92, 91, 86, 110, 109, 105, 126, 125, 121, 125, 121, 118, 121, 117, 114, 133, 128, 124, 132, 127, 123, 136, 128, 125, 136, 128, 125, 126, 118, 115, 109, 101, 98, 95, 87, 84, 89, 81, 78, 69, 59, 57, 100, 90, 88, 128, 118, 116, 134, 124, 122, 132, 122, 120, 135, 125, 123, 142, 131, 129, 143, 133, 131, 150, 140, 138, 130, 122, 119, 116, 108, 105, 117, 109, 106, 115, 107, 104, 105, 97, 94, 102, 94, 91, 107, 99, 96, 120, 112, 109, 108, 100, 97, 111, 103, 100, 133, 125, 122, 145, 137, 134, 134, 126, 123, 118, 110, 107, 111, 103, 100, 124, 119, 116, 134, 130, 127, 138, 135, 130, 144, 141, 136, 156, 153, 148, 156, 153, 148, 153, 148, 144, 157, 152, 148, 148, 143, 137, 150, 145, 139, 147, 140, 134, 137, 130, 124, 130, 123, 117, 132, 125, 119, 135, 128, 120, 136, 129, 121, 128, 119, 112, 137, 128, 121, 139, 130, 123, 132, 123, 116, 130, 121, 116, 137, 128, 123, 142, 133, 128, 140, 131, 126, 144, 135, 130, 140, 131, 126, 147, 137, 135, 151, 141, 139, 139, 129, 127, 134, 124, 122, 136, 126, 124, 134, 124, 122, 110, 101, 96, 107, 98, 93, 85, 76, 71, 59, 50, 45, 65, 56, 51, 101, 92, 87, 131, 122, 117, 139, 130, 125, 156, 147, 142, 127, 118, 113, 101, 92, 87, 89, 80, 75, 85, 76, 71, 88, 79, 74, 94, 85, 80, 95, 86, 81, 124, 113, 109, 135, 124, 120, 130, 119, 115, 119, 108, 104, 116, 105, 101, 110, 99, 95, 109, 98, 94, 118, 107, 103, 128, 117, 113, 124, 113, 109, 108, 97, 93, 108, 97, 93, 128, 117, 113, 124, 113, 109, 101, 90, 86, 92, 81, 77, 118, 109, 104, 128, 119, 114, 100, 91, 86, 87, 78, 73, 115, 105, 103, 106, 96, 94, 70, 60, 58, 65, 55, 53, 91, 81, 79, 139, 129, 127, 121, 111, 110, 71, 61, 60, 80, 70, 69, 108, 98, 97, 105, 95, 94, 96, 86, 85, 100, 89, 87, 143, 132, 130, 126, 115, 113, 105, 94, 92, 121, 110, 108, 143, 132, 130, 142, 131, 129, 110, 99, 97, 133, 122, 120, 148, 137, 135, 108, 97, 95, 126, 115, 113, 127, 116, 114, 136, 125, 123, 139, 128, 126, 154, 143, 141, 89, 80, 75, 158, 149, 144, 174, 165, 160, 160, 151, 146, 111, 101, 99, 183, 173, 171, 162, 154, 151, 161, 153, 150, 187, 179, 176, 175, 167, 164, 184, 179, 176, 197, 192, 189, 169, 164, 161, 199, 194, 191, 184, 179, 176, 200, 196, 193, 213, 212, 210, 201, 201, 199, 207, 207, 205, 224, 224, 222, 232, 232, 230, 238, 238, 236, 239, 239, 237, 230, 230, 228, 245, 245, 243, 243, 243, 241, 243, 243, 241, 245, 245, 243, 248, 248, 246, 250, 250, 248, 249, 249, 247, 248, 248, 246, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 248, 248, 246, 249, 249, 247, 249, 249, 247, 250, 250, 248, 249, 249, 247, 248, 248, 246, 247, 247, 245, 246, 246, 244, 246, 246, 244, 239, 239, 237, 244, 244, 242, 246, 246, 244, 239, 239, 237, 243, 243, 241, 242, 241, 239, 224, 223, 221, 221, 220, 218, 225, 224, 222, 215, 214, 212, 224, 223, 221, 216, 212, 211, 198, 194, 193, 201, 197, 196, 181, 177, 176, 187, 182, 179, 199, 191, 189, 212, 204, 202, 207, 199, 197, 163, 155, 153, 160, 152, 150, 197, 189, 187, 185, 177, 175, 171, 163, 161, 177, 169, 167, 176, 168, 166, 178, 170, 168, 184, 176, 174, 160, 152, 150, 139, 131, 129, 160, 152, 150, 185, 175, 173, 158, 148, 146, 175, 165, 163, 188, 178, 176, 152, 142, 140, 143, 133, 131, 165, 155, 153, 167, 157, 155, 172, 162, 160, 182, 172, 170, 179, 169, 167, 158, 148, 146, 162, 152, 150, 173, 163, 161, 171, 161, 159, 148, 140, 137, 159, 154, 150, 157, 152, 148, 152, 147, 144, 159, 154, 150, 149, 139, 137, 143, 132, 126, 158, 143, 138, 142, 127, 120, 128, 113, 106, 132, 119, 110, 54, 41, 32, 44, 31, 15, 33, 13, 0, 48, 21, 0, 80, 46, 8, 94, 52, 4, 114, 64, 11, 108, 61, 5, 90, 54, 4, 87, 56, 12, 95, 65, 29, 92, 64, 27, 86, 61, 21, 85, 71, 24, 104, 114, 53, 91, 124, 55, 72, 132, 58, 64, 135, 67, 53, 120, 67, 21, 75, 41, 0, 26, 14, 0, 9, 12, 1, 14, 22, 4, 14, 24, 2, 12, 22, 0, 7, 17, 0, 6, 17, 1, 10, 19, 1, 10, 15, 0, 6, 9, 0, 4, 7, 0, 4, 4, 0, 2, 3, 0, 2, 3, 0, 1, 5, 1, 2, 7, 3, 2, 10, 3, 3, 11, 2, 7, 11, 0, 6, 9, 1, 6, 10, 5, 10, 16, 8, 10, 23, 5, 8, 23, 6, 9, 26, 6, 14, 25, 1, 12, 16, 0, 13, 14, 0, 8, 14, 0, 10, 18, 0, 13, 22, 0, 5, 11, 0, 4, 2, 0, 22, 1, 35, 84, 39, 58, 113, 55, 66, 112, 50, 97, 129, 64, 138, 151, 81, 156, 154, 77, 177, 159, 77, 183, 155, 71, 206, 171, 87, 206, 170, 86, 207, 172, 91, 216, 179, 99, 228, 184, 109, 233, 184, 108, 233, 176, 97, 229, 167, 84, 228, 159, 68, 225, 164, 83, 136, 95, 43, 87, 61, 34, 128, 113, 106, 181, 175, 179, 193, 188, 195, 148, 147, 155, 141, 144, 151, 148, 151, 156, 173, 173, 175, 191, 187, 186, 188, 183, 177, 191, 187, 178, 201, 201, 193, 208, 209, 201, 202, 199, 194, 196, 193, 188, 186, 183, 178, 178, 175, 170, 178, 173, 169, 181, 176, 172, 179, 174, 168, 173, 168, 162, 166, 161, 155, 138, 133, 127, 143, 136, 130, 162, 155, 149, 156, 149, 141, 148, 141, 133, 160, 153, 145, 172, 165, 157, 164, 159, 155, 153, 148, 144, 152, 147, 143, 163, 158, 154, 168, 163, 159, 160, 155, 151, 154, 149, 145, 155, 150, 146, 153, 148, 144, 165, 160, 156, 173, 168, 164, 173, 168, 164, 174, 169, 165, 175, 170, 166, 167, 162, 158, 155, 150, 146, 139, 134, 130, 146, 141, 137, 155, 150, 146, 164, 159, 155, 170, 165, 161, 175, 170, 166, 182, 177, 173, 186, 181, 177, 162, 157, 153, 176, 171, 167, 189, 184, 180, 188, 183, 179, 172, 167, 163, 155, 150, 146, 147, 142, 138, 146, 141, 137, 147, 140, 134, 145, 138, 132, 142, 135, 129, 140, 133, 127, 138, 131, 125, 139, 132, 126, 140, 133, 127, 141, 134, 128, 156, 149, 143, 162, 155, 149, 168, 161, 155, 170, 163, 157, 168, 161, 155, 163, 156, 150, 159, 152, 146, 157, 150, 144, 168, 160, 157, 168, 160, 157, 170, 162, 159, 173, 165, 162, 176, 168, 165, 176, 168, 165, 173, 165, 162, 170, 162, 159, 171, 163, 160, 171, 163, 160, 170, 162, 159, 171, 163, 160, 174, 166, 163, 178, 170, 167, 183, 175, 172, 186, 178, 175, 196, 188, 186, 197, 189, 187, 198, 193, 190, 201, 196, 193, 204, 200, 199, 207, 203, 202, 208, 206, 207, 209, 207, 208, 213, 213, 215, 216, 216, 218, 220, 221, 225, 226, 227, 231, 230, 233, 238, 235, 238, 243, 239, 242, 249, 240, 243, 250, 239, 242, 247, 239, 242, 247, 240, 243, 248, 241, 244, 249, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 248, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 233, 236, 241, 233, 236, 241, 234, 237, 242, 234, 237, 242, 235, 238, 243, 235, 238, 243, 235, 238, 243, 235, 238, 243, 236, 239, 244, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 237, 240, 245, 234, 237, 242, 232, 235, 240, 231, 234, 239, 230, 233, 238, 224, 227, 232, 219, 220, 224, 212, 213, 215, 208, 206, 207, 203, 202, 198, 199, 196, 191, 195, 192, 185, 188, 183, 177, 183, 178, 172, 180, 173, 167, 179, 172, 166, 181, 173, 170, 184, 179, 175, 190, 182, 180, 189, 184, 181, 183, 178, 175, 182, 177, 174, 182, 177, 174, 180, 175, 172, 179, 174, 171, 178, 173, 170, 179, 171, 168, 179, 171, 168, 174, 166, 163, 173, 165, 162, 173, 166, 160, 172, 165, 159, 171, 162, 157, 165, 156, 151, 156, 147, 140, 151, 140, 134, 157, 143, 140, 148, 134, 131, 136, 122, 119, 124, 113, 109, 121, 112, 107, 122, 115, 109, 123, 118, 114, 124, 121, 116, 156, 153, 148, 162, 159, 154, 158, 155, 150, 143, 140, 135, 134, 130, 127, 137, 133, 130, 141, 136, 133, 139, 134, 131, 132, 127, 124, 127, 122, 119, 133, 128, 125, 148, 143, 140, 151, 146, 143, 133, 128, 125, 117, 109, 107, 110, 102, 100, 79, 71, 69, 63, 55, 53, 64, 54, 53, 92, 82, 81, 122, 112, 111, 134, 124, 123, 133, 123, 122, 131, 121, 120, 151, 141, 139, 147, 137, 135, 144, 134, 132, 145, 135, 133, 149, 139, 137, 153, 143, 141, 156, 146, 144, 157, 147, 145, 150, 140, 138, 149, 139, 137, 148, 138, 136, 148, 138, 136, 150, 140, 138, 154, 144, 142, 158, 148, 146, 159, 151, 148, 157, 152, 148, 149, 146, 141, 142, 137, 133, 142, 137, 133, 151, 146, 142, 156, 151, 147, 146, 141, 135, 130, 125, 119, 110, 103, 97, 108, 101, 95, 119, 112, 104, 140, 133, 125, 154, 147, 139, 159, 152, 144, 163, 156, 148, 171, 164, 156, 170, 161, 154, 169, 160, 153, 166, 157, 150, 159, 150, 143, 152, 143, 138, 149, 140, 135, 151, 142, 137, 154, 145, 140, 154, 145, 140, 125, 116, 111, 135, 125, 123, 123, 113, 111, 134, 124, 122, 152, 142, 140, 119, 109, 107, 121, 111, 109, 157, 146, 142, 149, 138, 134, 144, 133, 129, 137, 126, 122, 121, 110, 106, 110, 99, 95, 124, 113, 109, 147, 136, 132, 154, 143, 139, 137, 126, 122, 129, 118, 114, 106, 95, 91, 70, 59, 55, 72, 61, 57, 99, 88, 84, 105, 94, 90, 99, 88, 84, 92, 81, 77, 78, 67, 63, 78, 67, 63, 110, 99, 95, 144, 133, 129, 140, 129, 125, 113, 102, 98, 98, 87, 83, 97, 86, 82, 97, 86, 82, 101, 90, 86, 114, 103, 99, 125, 114, 110, 125, 114, 110, 119, 108, 104, 98, 87, 83, 110, 99, 95, 122, 111, 107, 104, 93, 89, 108, 97, 93, 133, 122, 118, 122, 111, 107, 110, 99, 95, 129, 118, 116, 90, 79, 77, 119, 108, 106, 96, 85, 83, 55, 43, 43, 82, 70, 70, 94, 82, 82, 97, 85, 85, 124, 113, 111, 137, 126, 124, 117, 106, 104, 106, 95, 93, 115, 104, 102, 124, 113, 111, 125, 114, 112, 109, 98, 96, 151, 140, 138, 111, 100, 98, 135, 124, 122, 153, 142, 140, 139, 128, 126, 130, 119, 117, 123, 112, 110, 136, 125, 123, 102, 92, 90, 148, 138, 136, 175, 167, 164, 148, 140, 137, 149, 141, 138, 173, 165, 162, 166, 158, 156, 167, 159, 157, 180, 175, 172, 173, 168, 165, 195, 190, 187, 194, 189, 186, 190, 184, 184, 194, 188, 188, 182, 178, 177, 194, 190, 189, 218, 217, 215, 211, 211, 209, 211, 211, 209, 222, 222, 220, 234, 234, 232, 239, 239, 237, 239, 239, 237, 239, 239, 237, 244, 244, 242, 245, 245, 243, 246, 246, 244, 247, 247, 245, 248, 248, 246, 249, 249, 247, 250, 250, 248, 250, 250, 248, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 250, 250, 248, 250, 250, 248, 249, 249, 247, 249, 249, 247, 249, 249, 247, 248, 248, 246, 248, 248, 246, 248, 248, 246, 243, 245, 242, 245, 247, 244, 244, 244, 242, 238, 238, 236, 237, 237, 235, 239, 239, 237, 239, 239, 237, 236, 236, 234, 222, 221, 219, 223, 222, 220, 224, 223, 221, 222, 221, 219, 217, 216, 214, 205, 204, 202, 192, 191, 189, 184, 180, 179, 182, 177, 174, 191, 183, 181, 202, 194, 192, 197, 189, 187, 205, 197, 195, 193, 185, 183, 171, 163, 161, 205, 197, 195, 189, 181, 179, 159, 151, 149, 193, 185, 183, 190, 182, 180, 174, 166, 164, 176, 168, 166, 143, 135, 133, 133, 125, 123, 192, 184, 181, 181, 173, 170, 182, 174, 171, 180, 172, 169, 158, 150, 147, 146, 138, 135, 162, 154, 151, 181, 173, 170, 176, 168, 165, 186, 178, 175, 171, 163, 160, 154, 146, 143, 144, 136, 133, 172, 164, 161, 191, 183, 180, 138, 130, 127, 146, 141, 137, 162, 159, 154, 151, 147, 144, 162, 157, 153, 165, 155, 153, 139, 128, 122, 144, 129, 124, 149, 134, 127, 142, 128, 119, 103, 90, 81, 60, 47, 38, 38, 25, 9, 42, 22, 0, 56, 30, 0, 75, 40, 0, 92, 48, 1, 109, 58, 1, 115, 65, 6, 106, 65, 11, 96, 60, 10, 99, 66, 23, 110, 81, 39, 108, 84, 38, 89, 77, 25, 101, 113, 49, 70, 108, 35, 78, 142, 64, 51, 129, 54, 32, 106, 47, 29, 91, 52, 0, 33, 15, 0, 10, 8, 0, 10, 16, 8, 12, 23, 9, 13, 24, 8, 12, 23, 9, 11, 23, 4, 7, 16, 0, 2, 9, 1, 5, 8, 1, 2, 4, 1, 3, 2, 1, 3, 2, 1, 3, 2, 1, 2, 4, 1, 2, 7, 1, 1, 9, 0, 2, 9, 0, 8, 11, 1, 11, 13, 2, 10, 12, 3, 8, 14, 3, 5, 17, 2, 6, 18, 5, 8, 23, 4, 13, 22, 7, 18, 20, 3, 17, 18, 4, 19, 24, 0, 4, 11, 0, 3, 12, 0, 7, 13, 0, 5, 0, 1, 25, 3, 52, 101, 54, 75, 130, 72, 87, 131, 72, 101, 129, 70, 137, 146, 83, 154, 145, 76, 164, 138, 63, 187, 152, 71, 207, 169, 84, 202, 165, 77, 209, 173, 87, 231, 193, 108, 241, 200, 118, 234, 187, 107, 230, 175, 95, 235, 174, 91, 236, 169, 80, 190, 129, 49, 144, 102, 52, 110, 86, 60, 126, 113, 107, 166, 161, 167, 160, 157, 164, 139, 139, 147, 144, 147, 154, 153, 156, 161, 176, 176, 178, 194, 190, 189, 197, 190, 184, 196, 189, 181, 197, 197, 189, 200, 201, 195, 201, 198, 193, 193, 190, 185, 189, 186, 181, 190, 187, 182, 189, 184, 180, 180, 175, 171, 170, 165, 159, 166, 161, 155, 147, 142, 136, 168, 163, 157, 179, 172, 166, 165, 158, 152, 152, 145, 137, 155, 148, 140, 164, 157, 149, 167, 160, 152, 154, 149, 145, 175, 170, 166, 185, 180, 176, 175, 170, 166, 166, 161, 157, 167, 162, 158, 166, 161, 157, 158, 153, 149, 160, 155, 151, 162, 157, 153, 163, 158, 154, 164, 159, 155, 162, 157, 153, 161, 156, 152, 161, 156, 152, 162, 157, 153, 173, 168, 164, 177, 172, 168, 177, 172, 168, 171, 166, 162, 164, 159, 155, 163, 158, 154, 170, 165, 161, 179, 174, 170, 186, 181, 177, 171, 166, 162, 168, 163, 159, 165, 160, 156, 153, 148, 144, 154, 149, 145, 162, 157, 153, 156, 151, 147, 132, 125, 119, 138, 129, 124, 144, 135, 130, 145, 136, 131, 145, 136, 131, 147, 138, 133, 152, 143, 138, 158, 149, 144, 152, 143, 138, 159, 150, 145, 166, 157, 152, 168, 159, 154, 165, 156, 151, 164, 155, 150, 167, 158, 153, 171, 162, 157, 164, 156, 153, 166, 158, 155, 168, 160, 157, 171, 163, 160, 173, 165, 162, 174, 166, 163, 175, 167, 164, 175, 167, 164, 174, 166, 163, 170, 162, 159, 165, 157, 154, 163, 155, 152, 167, 159, 156, 177, 169, 166, 187, 179, 176, 195, 187, 184, 187, 179, 177, 189, 181, 179, 190, 185, 182, 193, 188, 185, 195, 191, 190, 200, 196, 195, 206, 204, 205, 211, 209, 210, 214, 214, 216, 218, 218, 220, 223, 224, 228, 227, 228, 232, 228, 231, 236, 231, 234, 239, 235, 238, 245, 238, 241, 248, 238, 241, 246, 239, 242, 247, 241, 244, 249, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 234, 237, 242, 234, 237, 242, 235, 238, 243, 235, 238, 243, 235, 238, 243, 235, 238, 243, 236, 239, 244, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 237, 240, 245, 234, 237, 242, 232, 235, 240, 231, 234, 239, 229, 232, 237, 224, 227, 232, 218, 219, 223, 211, 212, 214, 208, 206, 207, 203, 202, 198, 199, 195, 192, 195, 192, 187, 189, 184, 178, 186, 181, 175, 184, 177, 171, 181, 176, 170, 184, 179, 175, 187, 182, 178, 189, 184, 181, 189, 184, 181, 186, 181, 178, 185, 180, 177, 185, 180, 177, 183, 178, 175, 182, 177, 174, 181, 176, 173, 182, 174, 171, 181, 173, 170, 176, 168, 165, 175, 167, 164, 173, 166, 160, 171, 164, 158, 169, 160, 155, 163, 154, 149, 155, 146, 139, 150, 139, 133, 140, 126, 123, 138, 123, 120, 134, 119, 116, 131, 117, 114, 128, 117, 113, 126, 117, 112, 123, 115, 112, 119, 114, 110, 130, 127, 122, 141, 138, 133, 148, 145, 140, 148, 145, 140, 149, 145, 142, 153, 149, 146, 154, 149, 146, 148, 143, 140, 139, 134, 131, 134, 129, 126, 129, 124, 121, 130, 125, 122, 136, 131, 128, 141, 136, 133, 137, 129, 127, 129, 121, 119, 117, 109, 107, 103, 95, 93, 97, 87, 86, 108, 98, 97, 126, 116, 115, 134, 124, 123, 131, 121, 120, 127, 117, 116, 125, 115, 113, 131, 121, 119, 142, 132, 130, 155, 145, 143, 163, 153, 151, 164, 154, 152, 159, 149, 147, 153, 143, 141, 160, 150, 148, 160, 150, 148, 160, 150, 148, 158, 148, 146, 156, 146, 144, 154, 144, 142, 152, 142, 140, 149, 141, 138, 150, 145, 141, 154, 151, 146, 157, 152, 148, 153, 148, 144, 149, 144, 140, 143, 138, 134, 133, 128, 122, 124, 119, 113, 126, 119, 113, 139, 132, 126, 140, 133, 125, 131, 124, 116, 140, 133, 125, 164, 157, 149, 171, 164, 156, 161, 152, 145, 148, 139, 132, 156, 147, 140, 162, 153, 146, 158, 149, 142, 147, 138, 133, 138, 129, 124, 138, 129, 124, 141, 132, 127, 100, 91, 86, 74, 65, 60, 84, 74, 72, 73, 63, 61, 85, 75, 73, 109, 99, 97, 89, 79, 77, 98, 88, 86, 124, 113, 109, 135, 124, 120, 135, 124, 120, 122, 111, 107, 116, 105, 101, 122, 111, 107, 126, 115, 111, 121, 110, 106, 148, 137, 133, 156, 145, 141, 152, 141, 137, 138, 127, 123, 122, 111, 107, 107, 96, 92, 102, 91, 87, 109, 98, 94, 131, 120, 116, 137, 126, 122, 121, 110, 106, 85, 74, 70, 65, 54, 50, 86, 75, 71, 126, 115, 111, 155, 144, 140, 127, 116, 112, 112, 101, 97, 113, 102, 98, 123, 112, 108, 107, 96, 92, 84, 73, 69, 100, 89, 85, 140, 129, 125, 113, 102, 98, 122, 111, 107, 132, 121, 117, 107, 96, 92, 99, 88, 84, 120, 109, 105, 123, 112, 108, 131, 120, 116, 119, 108, 106, 97, 86, 84, 102, 91, 89, 115, 104, 102, 91, 79, 79, 80, 68, 68, 91, 79, 79, 74, 62, 62, 104, 93, 91, 113, 102, 100, 105, 94, 92, 93, 82, 80, 77, 66, 64, 88, 77, 75, 117, 106, 104, 105, 94, 92, 144, 133, 131, 130, 119, 117, 157, 146, 144, 154, 143, 141, 134, 123, 121, 140, 129, 127, 131, 120, 118, 116, 105, 103, 112, 102, 100, 151, 141, 139, 175, 167, 164, 158, 150, 147, 164, 156, 153, 177, 169, 166, 165, 157, 155, 176, 168, 166, 180, 175, 172, 169, 164, 161, 192, 187, 184, 194, 189, 186, 184, 178, 178, 189, 183, 183, 184, 180, 179, 187, 186, 184, 214, 213, 211, 210, 210, 208, 212, 212, 210, 223, 223, 221, 232, 232, 230, 236, 236, 234, 238, 238, 236, 241, 241, 239, 244, 244, 242, 245, 245, 243, 246, 246, 244, 247, 247, 245, 248, 248, 246, 249, 249, 247, 250, 250, 248, 250, 250, 248, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 250, 250, 248, 250, 250, 248, 250, 250, 248, 249, 249, 247, 249, 249, 247, 248, 248, 246, 248, 248, 246, 248, 248, 246, 243, 245, 242, 246, 248, 245, 245, 245, 243, 239, 239, 237, 238, 238, 236, 240, 240, 238, 239, 239, 237, 236, 236, 234, 225, 224, 222, 224, 223, 221, 223, 222, 220, 223, 222, 220, 221, 220, 218, 213, 212, 210, 202, 201, 199, 194, 190, 189, 189, 184, 181, 200, 192, 190, 214, 206, 204, 204, 196, 194, 209, 201, 199, 212, 204, 202, 191, 183, 181, 197, 189, 187, 197, 189, 187, 196, 188, 186, 183, 175, 173, 185, 177, 175, 189, 181, 179, 179, 171, 169, 167, 159, 157, 154, 146, 144, 173, 165, 162, 171, 163, 160, 183, 175, 172, 188, 180, 177, 171, 163, 160, 157, 149, 146, 160, 152, 149, 164, 156, 153, 181, 173, 170, 188, 180, 177, 178, 170, 167, 161, 153, 150, 140, 132, 129, 155, 147, 144, 184, 176, 173, 156, 151, 147, 152, 147, 143, 163, 160, 155, 151, 147, 144, 165, 160, 156, 173, 165, 162, 152, 141, 135, 151, 136, 131, 150, 133, 126, 128, 114, 105, 95, 81, 72, 51, 39, 27, 28, 12, 0, 35, 13, 0, 58, 29, 0, 81, 43, 4, 94, 50, 1, 117, 65, 8, 121, 69, 9, 111, 66, 7, 99, 60, 5, 104, 66, 17, 117, 85, 38, 118, 92, 43, 101, 90, 34, 108, 120, 54, 87, 125, 48, 84, 149, 67, 65, 144, 65, 50, 126, 62, 41, 109, 60, 9, 58, 29, 0, 15, 3, 0, 9, 9, 6, 6, 14, 6, 6, 16, 6, 4, 15, 5, 3, 14, 1, 0, 8, 0, 0, 5, 3, 2, 7, 2, 2, 4, 2, 2, 2, 2, 2, 0, 1, 3, 2, 1, 2, 4, 1, 2, 6, 1, 2, 7, 0, 3, 9, 0, 9, 11, 0, 10, 12, 2, 10, 12, 3, 8, 12, 2, 5, 14, 2, 6, 17, 2, 8, 20, 4, 13, 20, 0, 8, 10, 0, 11, 11, 2, 17, 22, 0, 6, 13, 0, 8, 17, 2, 16, 19, 1, 14, 5, 17, 41, 15, 54, 102, 52, 72, 124, 62, 79, 119, 59, 95, 116, 59, 135, 136, 76, 160, 145, 80, 178, 148, 76, 205, 167, 86, 213, 171, 85, 209, 170, 79, 216, 179, 88, 233, 198, 108, 242, 202, 115, 235, 190, 105, 234, 182, 99, 243, 182, 99, 229, 163, 76, 200, 141, 65, 144, 106, 59, 107, 83, 59, 147, 136, 132, 195, 190, 196, 172, 171, 177, 150, 150, 158, 132, 135, 142, 144, 147, 152, 171, 171, 173, 194, 190, 189, 204, 197, 191, 206, 199, 193, 206, 203, 198, 207, 206, 201, 192, 189, 184, 198, 195, 190, 199, 196, 191, 186, 183, 178, 167, 162, 158, 157, 152, 148, 162, 157, 151, 171, 166, 160, 179, 174, 168, 156, 151, 145, 139, 132, 126, 144, 137, 131, 161, 154, 146, 174, 167, 159, 179, 172, 164, 180, 173, 165, 170, 165, 161, 181, 176, 172, 185, 180, 176, 175, 170, 166, 163, 158, 154, 158, 153, 149, 155, 150, 146, 152, 147, 143, 140, 135, 131, 151, 146, 142, 165, 160, 156, 172, 167, 163, 171, 166, 162, 166, 161, 157, 162, 157, 153, 161, 156, 152, 167, 162, 158, 162, 157, 153, 156, 151, 147, 153, 148, 144, 156, 151, 147, 162, 157, 153, 167, 162, 158, 171, 166, 162, 172, 167, 163, 175, 170, 166, 179, 174, 170, 173, 168, 164, 167, 162, 158, 172, 167, 163, 160, 155, 151, 128, 123, 119, 117, 108, 103, 121, 112, 107, 128, 119, 114, 134, 125, 120, 140, 131, 126, 147, 138, 133, 153, 144, 139, 158, 149, 144, 163, 154, 149, 163, 154, 149, 165, 156, 151, 167, 158, 153, 168, 159, 154, 167, 158, 153, 165, 156, 151, 163, 154, 149, 161, 153, 150, 163, 155, 152, 166, 158, 155, 168, 160, 157, 171, 163, 160, 172, 164, 161, 173, 165, 162, 173, 165, 162, 173, 165, 162, 168, 160, 157, 163, 155, 152, 160, 152, 149, 162, 154, 151, 169, 161, 158, 178, 170, 167, 184, 176, 173, 193, 185, 183, 195, 187, 185, 196, 191, 188, 198, 193, 190, 199, 195, 194, 204, 200, 199, 209, 207, 208, 213, 211, 212, 210, 210, 212, 214, 214, 216, 219, 220, 224, 224, 225, 229, 226, 229, 234, 229, 232, 237, 233, 236, 243, 237, 240, 247, 238, 241, 246, 239, 242, 247, 241, 244, 249, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 234, 237, 242, 234, 237, 242, 235, 238, 243, 235, 238, 243, 235, 238, 243, 235, 238, 243, 236, 239, 244, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 237, 240, 245, 234, 237, 242, 232, 235, 240, 231, 234, 239, 228, 231, 236, 222, 225, 230, 217, 218, 222, 210, 211, 213, 207, 205, 206, 202, 201, 197, 199, 195, 192, 195, 192, 187, 191, 186, 180, 190, 185, 179, 188, 183, 179, 189, 184, 180, 191, 186, 183, 191, 187, 184, 190, 186, 185, 188, 184, 183, 190, 184, 184, 189, 183, 183, 188, 182, 182, 186, 180, 180, 185, 180, 177, 183, 178, 175, 184, 176, 173, 184, 176, 173, 180, 173, 167, 177, 170, 164, 172, 165, 159, 168, 161, 155, 165, 156, 149, 160, 151, 144, 154, 145, 138, 150, 139, 133, 136, 121, 118, 134, 119, 116, 131, 116, 113, 130, 116, 113, 130, 119, 115, 130, 121, 116, 129, 121, 118, 126, 121, 117, 113, 110, 105, 124, 121, 116, 137, 134, 129, 147, 144, 139, 154, 150, 147, 157, 153, 150, 150, 146, 143, 140, 136, 133, 132, 128, 125, 139, 135, 132, 135, 131, 128, 122, 118, 115, 122, 118, 115, 137, 133, 130, 148, 143, 140, 145, 140, 137, 138, 133, 130, 133, 128, 125, 129, 121, 119, 128, 120, 118, 138, 130, 128, 150, 142, 140, 152, 144, 142, 147, 139, 137, 140, 130, 128, 140, 131, 126, 142, 133, 128, 145, 136, 131, 146, 137, 132, 144, 135, 130, 139, 130, 125, 135, 126, 121, 135, 126, 121, 138, 129, 124, 143, 134, 129, 148, 139, 134, 150, 141, 136, 149, 140, 135, 147, 138, 133, 144, 137, 131, 132, 127, 123, 142, 137, 133, 154, 146, 143, 159, 151, 148, 160, 153, 147, 157, 150, 144, 147, 140, 134, 136, 129, 123, 120, 111, 104, 138, 129, 122, 140, 131, 124, 128, 119, 112, 138, 129, 122, 167, 158, 151, 173, 164, 157, 158, 149, 142, 148, 139, 132, 145, 136, 129, 140, 131, 124, 133, 124, 117, 126, 117, 112, 122, 113, 108, 122, 113, 108, 123, 114, 109, 119, 110, 105, 103, 94, 89, 115, 105, 103, 107, 97, 95, 115, 105, 103, 133, 123, 121, 119, 109, 107, 130, 120, 118, 103, 92, 88, 115, 104, 100, 121, 110, 106, 119, 108, 104, 124, 113, 109, 131, 120, 116, 126, 115, 111, 113, 102, 98, 121, 110, 106, 143, 132, 128, 141, 130, 126, 138, 127, 123, 152, 141, 137, 144, 133, 129, 134, 123, 119, 151, 140, 136, 131, 120, 116, 136, 125, 121, 140, 129, 125, 135, 124, 120, 119, 108, 104, 100, 89, 85, 82, 71, 67, 71, 60, 56, 107, 96, 92, 119, 108, 104, 135, 124, 120, 143, 132, 128, 140, 129, 125, 130, 119, 115, 121, 110, 106, 116, 105, 101, 125, 114, 108, 122, 111, 105, 127, 116, 110, 104, 93, 87, 93, 82, 78, 102, 91, 87, 102, 91, 87, 116, 105, 101, 146, 135, 131, 134, 123, 119, 95, 84, 82, 109, 98, 96, 91, 80, 78, 59, 48, 46, 91, 80, 78, 85, 74, 72, 100, 89, 87, 101, 90, 88, 110, 99, 97, 108, 97, 95, 64, 53, 51, 73, 62, 60, 126, 115, 113, 109, 98, 96, 130, 119, 117, 139, 128, 126, 159, 148, 146, 131, 120, 118, 107, 96, 94, 138, 127, 125, 134, 123, 121, 89, 78, 76, 130, 120, 118, 152, 144, 141, 164, 156, 153, 153, 145, 142, 170, 162, 160, 182, 174, 172, 168, 163, 160, 187, 182, 179, 165, 160, 157, 152, 147, 144, 181, 175, 175, 193, 187, 187, 180, 176, 175, 191, 187, 186, 201, 197, 196, 197, 196, 194, 209, 208, 206, 209, 209, 207, 215, 215, 213, 224, 224, 222, 229, 229, 227, 231, 231, 229, 236, 236, 234, 243, 243, 241, 244, 244, 242, 245, 245, 243, 246, 246, 244, 247, 247, 245, 248, 248, 246, 249, 249, 247, 250, 250, 248, 250, 250, 248, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 250, 250, 248, 250, 250, 248, 250, 250, 248, 249, 249, 247, 249, 249, 247, 249, 249, 247, 248, 248, 246, 248, 248, 246, 244, 246, 243, 246, 248, 245, 245, 247, 244, 240, 242, 239, 238, 240, 237, 240, 242, 239, 240, 240, 238, 236, 236, 234, 230, 230, 228, 226, 226, 224, 223, 222, 220, 224, 223, 221, 226, 225, 223, 223, 222, 220, 213, 212, 210, 206, 202, 201, 190, 185, 182, 199, 194, 191, 216, 211, 208, 203, 198, 195, 198, 193, 190, 216, 211, 208, 204, 199, 196, 180, 175, 172, 189, 184, 181, 219, 214, 211, 176, 171, 168, 181, 176, 173, 201, 196, 193, 183, 178, 175, 188, 183, 180, 169, 164, 161, 164, 156, 153, 168, 160, 157, 184, 176, 173, 192, 184, 181, 182, 174, 171, 175, 167, 164, 169, 161, 158, 159, 151, 148, 175, 167, 164, 178, 170, 167, 180, 172, 169, 176, 168, 165, 150, 142, 139, 149, 141, 138, 178, 170, 167, 177, 172, 168, 162, 157, 153, 166, 163, 158, 157, 153, 150, 169, 164, 160, 179, 171, 168, 165, 154, 148, 159, 144, 139, 152, 135, 128, 141, 126, 119, 104, 90, 81, 56, 42, 31, 29, 13, 0, 34, 12, 0, 57, 28, 0, 80, 42, 5, 95, 48, 2, 120, 65, 8, 124, 70, 8, 120, 70, 9, 113, 68, 9, 118, 75, 20, 128, 93, 39, 128, 101, 46, 112, 102, 43, 107, 120, 51, 102, 139, 61, 83, 145, 60, 77, 150, 68, 66, 142, 70, 52, 123, 63, 29, 86, 45, 0, 20, 0, 0, 9, 2, 2, 1, 6, 3, 2, 8, 5, 2, 9, 1, 0, 5, 1, 0, 5, 1, 0, 5, 6, 4, 9, 3, 1, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 4, 1, 2, 6, 0, 2, 7, 0, 3, 7, 0, 8, 10, 0, 10, 11, 1, 10, 9, 0, 8, 10, 1, 6, 12, 1, 5, 14, 2, 9, 19, 3, 12, 17, 1, 13, 13, 0, 15, 14, 7, 22, 27, 0, 13, 20, 0, 14, 21, 5, 19, 20, 4, 17, 7, 24, 49, 20, 65, 110, 55, 73, 122, 56, 80, 114, 53, 100, 116, 54, 142, 138, 77, 170, 149, 82, 190, 154, 80, 213, 171, 89, 211, 167, 80, 210, 169, 77, 216, 181, 87, 230, 195, 101, 235, 196, 105, 231, 187, 100, 234, 182, 96, 244, 186, 102, 220, 155, 71, 205, 148, 77, 143, 106, 62, 94, 73, 52, 140, 130, 128, 181, 179, 184, 148, 147, 153, 127, 130, 135, 141, 146, 150, 152, 157, 160, 173, 173, 173, 190, 186, 183, 204, 195, 190, 206, 199, 193, 204, 200, 197, 203, 202, 198, 189, 186, 181, 191, 188, 183, 185, 182, 177, 173, 170, 165, 169, 164, 160, 170, 165, 161, 164, 159, 153, 154, 149, 143, 125, 120, 114, 126, 121, 115, 151, 144, 138, 183, 176, 170, 186, 179, 171, 161, 154, 146, 148, 141, 133, 155, 148, 140, 176, 171, 167, 172, 167, 163, 166, 161, 157, 159, 154, 150, 151, 146, 142, 147, 142, 138, 153, 148, 144, 162, 157, 153, 152, 147, 143, 156, 151, 147, 160, 155, 151, 160, 155, 151, 158, 153, 149, 159, 154, 150, 165, 160, 156, 171, 166, 162, 185, 180, 176, 173, 168, 164, 163, 158, 154, 163, 158, 154, 171, 166, 162, 175, 170, 166, 170, 165, 161, 163, 158, 154, 162, 157, 153, 156, 151, 147, 155, 150, 146, 155, 150, 146, 157, 152, 148, 161, 156, 152, 150, 145, 141, 126, 121, 117, 114, 105, 100, 117, 108, 103, 123, 114, 109, 133, 124, 119, 145, 136, 131, 155, 146, 141, 161, 152, 147, 163, 154, 149, 165, 156, 151, 161, 152, 147, 158, 149, 144, 162, 153, 148, 169, 160, 155, 171, 162, 157, 166, 157, 152, 161, 152, 147, 159, 151, 148, 161, 153, 150, 163, 155, 152, 165, 157, 154, 167, 159, 156, 168, 160, 157, 168, 160, 157, 168, 160, 157, 174, 166, 163, 170, 162, 159, 165, 157, 154, 162, 154, 151, 163, 155, 152, 169, 161, 158, 176, 168, 165, 181, 173, 170, 194, 186, 184, 197, 189, 187, 198, 193, 190, 199, 194, 191, 200, 196, 195, 204, 200, 199, 207, 205, 206, 211, 209, 210, 204, 204, 206, 209, 209, 211, 215, 216, 220, 221, 222, 226, 223, 226, 231, 227, 230, 235, 232, 235, 242, 235, 238, 245, 238, 241, 246, 239, 242, 247, 241, 244, 249, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 234, 237, 242, 234, 237, 242, 235, 238, 243, 235, 238, 243, 235, 238, 243, 235, 238, 243, 236, 239, 244, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 237, 240, 245, 234, 237, 242, 232, 235, 240, 231, 234, 239, 226, 229, 234, 221, 225, 228, 216, 217, 221, 210, 212, 211, 207, 205, 206, 202, 201, 197, 199, 195, 192, 195, 192, 187, 195, 190, 184, 194, 189, 183, 194, 189, 185, 196, 191, 187, 197, 193, 190, 195, 191, 188, 192, 188, 187, 189, 185, 184, 191, 185, 185, 190, 184, 184, 189, 183, 183, 187, 181, 181, 185, 180, 177, 184, 179, 176, 184, 176, 173, 183, 175, 172, 182, 175, 169, 178, 171, 165, 172, 165, 159, 166, 159, 151, 163, 154, 147, 158, 149, 142, 152, 143, 136, 149, 138, 132, 150, 135, 132, 141, 126, 123, 131, 116, 113, 124, 110, 107, 125, 114, 110, 132, 123, 118, 140, 132, 129, 143, 138, 134, 139, 136, 131, 143, 140, 135, 149, 146, 141, 155, 154, 149, 162, 158, 155, 159, 158, 154, 151, 147, 144, 141, 137, 134, 122, 118, 115, 139, 135, 132, 146, 142, 139, 134, 130, 127, 121, 117, 114, 124, 120, 117, 138, 133, 130, 148, 143, 140, 145, 140, 137, 150, 145, 142, 147, 142, 139, 140, 132, 130, 142, 134, 132, 151, 143, 141, 152, 144, 142, 145, 137, 134, 159, 149, 147, 157, 148, 143, 155, 146, 141, 154, 145, 140, 153, 144, 139, 150, 141, 136, 145, 136, 131, 140, 131, 126, 159, 150, 145, 160, 151, 146, 162, 153, 148, 162, 153, 148, 160, 151, 146, 156, 147, 142, 152, 143, 138, 149, 140, 135, 151, 143, 140, 150, 142, 139, 150, 142, 139, 156, 148, 145, 165, 158, 152, 164, 157, 151, 146, 139, 133, 126, 117, 112, 132, 123, 116, 136, 127, 120, 138, 129, 122, 139, 130, 123, 140, 131, 124, 141, 130, 124, 134, 123, 117, 126, 115, 109, 140, 131, 124, 128, 119, 112, 114, 105, 98, 108, 99, 92, 108, 99, 94, 107, 98, 93, 100, 91, 86, 92, 83, 78, 102, 93, 88, 100, 91, 86, 120, 110, 108, 120, 110, 108, 125, 115, 113, 136, 126, 124, 124, 114, 112, 132, 122, 120, 120, 109, 105, 116, 105, 101, 125, 114, 110, 143, 132, 128, 149, 138, 134, 142, 131, 127, 140, 129, 125, 146, 135, 131, 122, 111, 107, 134, 123, 119, 133, 122, 118, 133, 122, 118, 140, 129, 125, 132, 121, 117, 120, 109, 105, 124, 113, 109, 143, 132, 128, 136, 125, 121, 126, 115, 111, 110, 99, 95, 90, 79, 75, 85, 74, 70, 106, 95, 91, 133, 122, 118, 120, 109, 105, 129, 118, 114, 128, 117, 113, 122, 111, 107, 134, 123, 119, 154, 143, 139, 153, 142, 138, 136, 125, 121, 151, 140, 134, 135, 124, 118, 136, 125, 119, 127, 116, 110, 122, 111, 107, 118, 107, 103, 98, 87, 83, 98, 87, 83, 120, 109, 105, 137, 126, 122, 125, 114, 112, 130, 119, 117, 114, 103, 101, 79, 68, 66, 86, 75, 73, 91, 80, 78, 115, 104, 102, 103, 92, 90, 118, 107, 105, 134, 123, 121, 85, 74, 72, 88, 77, 75, 144, 133, 131, 109, 98, 96, 127, 116, 114, 134, 123, 121, 141, 130, 128, 107, 96, 94, 88, 77, 75, 135, 124, 122, 143, 132, 130, 83, 73, 71, 148, 138, 136, 151, 143, 140, 145, 137, 134, 128, 120, 117, 157, 149, 147, 187, 179, 177, 173, 168, 165, 180, 175, 172, 161, 156, 153, 147, 142, 139, 176, 170, 170, 195, 189, 189, 181, 177, 176, 193, 189, 188, 212, 208, 207, 203, 202, 200, 203, 202, 200, 207, 207, 205, 217, 217, 215, 226, 226, 224, 228, 228, 226, 228, 228, 226, 235, 235, 233, 244, 244, 242, 244, 244, 242, 245, 245, 243, 246, 246, 244, 247, 247, 245, 248, 248, 246, 249, 249, 247, 250, 250, 248, 250, 250, 248, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 250, 250, 248, 250, 250, 248, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 244, 246, 243, 247, 249, 246, 246, 248, 245, 242, 244, 241, 240, 242, 239, 242, 244, 241, 241, 241, 239, 237, 237, 235, 238, 238, 236, 230, 230, 228, 225, 224, 222, 225, 224, 222, 228, 227, 225, 227, 226, 224, 218, 217, 215, 210, 209, 207, 197, 192, 189, 198, 193, 190, 217, 212, 209, 208, 203, 200, 189, 184, 181, 206, 201, 198, 211, 206, 203, 183, 178, 175, 174, 169, 166, 203, 198, 195, 185, 180, 177, 184, 179, 176, 194, 189, 186, 191, 186, 183, 194, 189, 186, 178, 173, 170, 173, 165, 162, 174, 166, 163, 183, 175, 172, 187, 179, 176, 186, 178, 175, 189, 181, 178, 186, 178, 175, 170, 162, 159, 167, 159, 156, 159, 151, 148, 171, 163, 160, 187, 179, 176, 174, 166, 163, 161, 153, 150, 176, 168, 165, 185, 180, 176, 172, 169, 164, 172, 169, 164, 167, 163, 160, 170, 165, 161, 173, 166, 160, 166, 155, 149, 161, 146, 141, 157, 140, 133, 154, 139, 132, 103, 88, 81, 50, 36, 27, 33, 15, 1, 40, 15, 0, 52, 21, 0, 75, 35, 0, 99, 52, 6, 113, 61, 4, 124, 69, 5, 129, 75, 11, 130, 80, 17, 135, 89, 27, 141, 103, 41, 137, 108, 50, 122, 111, 49, 114, 124, 53, 118, 151, 72, 89, 142, 54, 89, 155, 67, 84, 156, 74, 71, 141, 69, 57, 120, 63, 0, 43, 4, 0, 13, 0, 0, 1, 0, 0, 0, 0, 6, 6, 8, 3, 1, 6, 1, 0, 4, 7, 2, 8, 9, 4, 10, 3, 1, 4, 3, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 4, 1, 2, 4, 0, 3, 6, 0, 3, 7, 0, 7, 10, 0, 8, 10, 1, 10, 9, 0, 9, 8, 0, 5, 9, 0, 4, 13, 1, 8, 16, 3, 12, 17, 2, 14, 14, 1, 15, 15, 11, 26, 31, 4, 19, 26, 3, 18, 25, 7, 21, 22, 9, 25, 14, 38, 62, 30, 78, 119, 63, 84, 125, 57, 94, 120, 55, 116, 127, 61, 154, 145, 78, 175, 151, 79, 188, 149, 70, 203, 158, 73, 212, 168, 79, 212, 173, 80, 220, 185, 93, 229, 196, 103, 231, 194, 105, 230, 186, 97, 237, 186, 97, 248, 191, 104, 232, 171, 90, 204, 151, 85, 151, 117, 79, 110, 91, 74, 138, 130, 128, 168, 167, 173, 143, 144, 149, 126, 130, 133, 154, 159, 162, 166, 172, 172, 176, 176, 174, 184, 180, 177, 199, 190, 185, 204, 195, 190, 201, 196, 193, 204, 200, 199, 196, 192, 189, 199, 196, 191, 191, 188, 183, 180, 177, 172, 181, 176, 172, 180, 175, 171, 159, 154, 148, 130, 125, 119, 126, 121, 115, 141, 136, 130, 167, 160, 154, 176, 169, 163, 150, 143, 135, 124, 117, 109, 139, 132, 124, 175, 168, 160, 173, 168, 164, 162, 157, 153, 159, 154, 150, 163, 158, 154, 159, 154, 150, 149, 144, 140, 150, 145, 141, 162, 157, 153, 155, 150, 146, 151, 146, 142, 146, 141, 137, 147, 142, 138, 155, 150, 146, 166, 161, 157, 175, 170, 166, 181, 176, 172, 163, 158, 154, 155, 150, 146, 150, 145, 141, 154, 149, 145, 162, 157, 153, 163, 158, 154, 153, 148, 144, 142, 137, 133, 156, 151, 147, 132, 127, 123, 127, 122, 118, 143, 138, 134, 144, 139, 135, 128, 123, 119, 123, 118, 114, 130, 125, 121, 121, 112, 107, 120, 111, 106, 122, 113, 108, 130, 121, 116, 141, 132, 127, 150, 141, 136, 152, 143, 138, 151, 142, 137, 145, 136, 131, 144, 135, 130, 144, 135, 130, 149, 140, 135, 156, 147, 142, 161, 152, 147, 160, 151, 146, 159, 150, 145, 161, 153, 150, 162, 154, 151, 163, 155, 152, 163, 155, 152, 163, 155, 152, 163, 155, 152, 162, 154, 151, 161, 153, 150, 166, 158, 155, 164, 156, 153, 162, 154, 151, 162, 154, 151, 165, 157, 154, 172, 164, 161, 179, 171, 168, 183, 175, 172, 190, 182, 180, 193, 185, 183, 194, 189, 186, 196, 191, 188, 196, 192, 191, 199, 195, 194, 201, 199, 200, 204, 202, 203, 202, 202, 204, 207, 207, 209, 213, 214, 218, 219, 220, 224, 222, 225, 230, 227, 230, 235, 232, 235, 242, 236, 239, 246, 238, 241, 246, 239, 242, 247, 240, 243, 248, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 232, 235, 240, 232, 235, 240, 232, 235, 240, 232, 235, 240, 232, 235, 240, 232, 235, 240, 232, 235, 240, 232, 235, 240, 233, 236, 241, 233, 236, 241, 234, 237, 242, 234, 237, 242, 235, 238, 243, 235, 238, 243, 235, 238, 243, 235, 238, 243, 236, 239, 244, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 237, 240, 245, 234, 237, 242, 232, 235, 240, 231, 234, 239, 228, 229, 234, 223, 224, 228, 216, 217, 221, 210, 212, 211, 208, 206, 207, 203, 202, 198, 200, 196, 193, 197, 194, 189, 198, 195, 188, 198, 195, 188, 198, 195, 190, 200, 197, 192, 200, 196, 193, 198, 194, 193, 191, 189, 190, 189, 185, 186, 191, 185, 187, 190, 184, 186, 188, 182, 182, 186, 180, 180, 184, 179, 176, 182, 177, 174, 182, 174, 171, 181, 173, 170, 182, 175, 169, 177, 170, 164, 171, 164, 156, 165, 158, 150, 162, 153, 146, 157, 148, 139, 152, 143, 134, 149, 138, 132, 155, 141, 138, 147, 132, 129, 133, 119, 116, 123, 112, 108, 124, 115, 110, 131, 124, 118, 139, 134, 130, 144, 141, 136, 165, 162, 157, 158, 157, 152, 156, 155, 150, 159, 160, 154, 164, 163, 159, 164, 165, 160, 162, 161, 157, 159, 158, 154, 132, 131, 127, 133, 132, 128, 138, 137, 133, 137, 136, 132, 126, 125, 121, 115, 114, 110, 122, 118, 115, 135, 131, 128, 149, 145, 142, 157, 153, 150, 156, 152, 149, 144, 139, 136, 135, 130, 127, 134, 129, 126, 128, 123, 120, 121, 113, 110, 121, 111, 109, 130, 121, 116, 145, 136, 131, 160, 151, 146, 167, 158, 153, 164, 155, 150, 153, 144, 139, 145, 136, 131, 164, 155, 150, 164, 155, 150, 163, 154, 149, 162, 153, 148, 160, 151, 146, 157, 148, 143, 155, 146, 141, 154, 145, 140, 153, 144, 139, 148, 139, 134, 143, 134, 129, 146, 137, 132, 156, 147, 142, 161, 152, 147, 149, 140, 135, 133, 122, 118, 141, 130, 124, 142, 131, 125, 142, 131, 125, 141, 130, 124, 138, 128, 119, 133, 120, 112, 123, 110, 102, 113, 103, 94, 134, 125, 118, 131, 122, 115, 128, 119, 112, 127, 118, 111, 125, 116, 111, 121, 112, 107, 114, 105, 100, 109, 100, 95, 113, 104, 99, 113, 104, 99, 125, 115, 113, 119, 109, 107, 113, 103, 101, 111, 101, 99, 100, 90, 88, 104, 94, 92, 108, 97, 93, 101, 87, 84, 97, 83, 80, 95, 81, 78, 81, 67, 64, 62, 48, 45, 60, 46, 43, 69, 55, 52, 91, 77, 74, 95, 81, 78, 118, 104, 101, 136, 122, 119, 132, 118, 115, 127, 113, 110, 119, 105, 102, 101, 87, 84, 85, 74, 70, 92, 81, 77, 109, 98, 94, 124, 113, 109, 117, 106, 102, 97, 86, 82, 90, 79, 75, 97, 86, 82, 140, 129, 125, 130, 119, 115, 130, 119, 115, 137, 126, 122, 130, 119, 115, 118, 107, 103, 126, 115, 111, 147, 136, 132, 149, 136, 130, 133, 120, 114, 139, 126, 120, 136, 123, 117, 133, 120, 114, 124, 111, 105, 98, 84, 81, 97, 83, 80, 103, 89, 86, 120, 106, 103, 141, 127, 126, 123, 109, 108, 124, 110, 109, 130, 116, 115, 109, 95, 94, 122, 108, 107, 131, 120, 118, 106, 95, 93, 103, 92, 90, 133, 122, 120, 104, 93, 91, 104, 93, 91, 151, 140, 138, 106, 95, 93, 131, 120, 118, 124, 113, 111, 127, 116, 114, 114, 103, 101, 101, 90, 88, 142, 131, 129, 158, 147, 145, 100, 90, 88, 158, 148, 146, 149, 141, 138, 138, 130, 127, 117, 109, 106, 143, 138, 135, 186, 181, 178, 168, 163, 160, 138, 133, 130, 173, 167, 167, 164, 158, 158, 181, 177, 176, 197, 193, 192, 184, 180, 179, 189, 185, 184, 209, 205, 204, 198, 197, 195, 200, 199, 197, 206, 206, 204, 218, 218, 216, 227, 227, 225, 227, 227, 225, 227, 227, 225, 234, 234, 232, 245, 245, 243, 244, 244, 242, 245, 245, 243, 246, 246, 244, 247, 247, 245, 248, 248, 246, 249, 249, 247, 250, 250, 248, 250, 250, 248, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 250, 250, 248, 250, 250, 248, 250, 250, 248, 249, 249, 247, 249, 249, 247, 244, 246, 243, 248, 250, 247, 248, 250, 247, 244, 246, 243, 242, 244, 241, 243, 245, 242, 242, 242, 240, 237, 237, 235, 243, 243, 241, 236, 236, 234, 229, 229, 227, 226, 226, 224, 227, 226, 224, 225, 224, 222, 217, 216, 214, 210, 209, 207, 213, 208, 205, 205, 200, 197, 220, 215, 212, 221, 216, 213, 190, 185, 182, 192, 187, 184, 216, 211, 208, 205, 200, 197, 175, 170, 167, 174, 169, 166, 201, 196, 193, 185, 180, 177, 172, 167, 164, 196, 191, 188, 194, 189, 186, 192, 187, 184, 181, 173, 170, 177, 169, 166, 181, 173, 170, 185, 177, 174, 188, 180, 177, 196, 188, 185, 195, 187, 184, 179, 171, 168, 178, 170, 167, 154, 146, 143, 160, 152, 149, 182, 174, 171, 185, 177, 174, 174, 166, 163, 171, 163, 160, 180, 175, 171, 179, 176, 169, 175, 175, 167, 178, 175, 170, 170, 165, 161, 161, 154, 148, 160, 149, 143, 160, 145, 140, 162, 145, 138, 149, 131, 127, 84, 67, 60, 32, 15, 8, 29, 11, 0, 40, 14, 0, 44, 12, 0, 69, 29, 0, 106, 59, 15, 115, 63, 6, 125, 70, 6, 132, 77, 12, 139, 84, 17, 145, 94, 28, 149, 108, 42, 149, 119, 55, 140, 127, 59, 132, 138, 64, 138, 163, 80, 109, 149, 60, 107, 162, 69, 106, 166, 76, 97, 162, 78, 90, 157, 80, 37, 88, 31, 0, 24, 0, 0, 4, 0, 0, 2, 0, 4, 9, 5, 3, 4, 6, 1, 0, 5, 6, 4, 9, 4, 2, 7, 3, 1, 6, 3, 1, 4, 2, 2, 4, 2, 2, 4, 1, 2, 4, 1, 2, 4, 0, 3, 6, 0, 3, 6, 0, 5, 9, 1, 6, 9, 2, 8, 6, 1, 7, 5, 0, 5, 7, 0, 4, 10, 0, 7, 13, 3, 11, 14, 0, 3, 4, 0, 6, 6, 9, 20, 26, 7, 17, 26, 9, 20, 26, 13, 27, 27, 24, 40, 27, 62, 86, 52, 89, 122, 67, 90, 123, 54, 100, 120, 49, 123, 129, 55, 156, 142, 67, 172, 145, 64, 183, 145, 60, 197, 153, 66, 215, 174, 86, 218, 181, 93, 226, 191, 107, 233, 198, 114, 234, 196, 111, 236, 192, 105, 244, 190, 100, 250, 193, 106, 239, 177, 102, 169, 117, 59, 131, 98, 65, 120, 104, 89, 137, 133, 132, 166, 169, 174, 156, 159, 164, 132, 137, 140, 145, 154, 153, 168, 174, 172, 181, 181, 179, 188, 184, 181, 204, 195, 190, 209, 198, 196, 203, 194, 195, 204, 200, 199, 177, 173, 170, 197, 194, 189, 205, 202, 197, 193, 190, 185, 184, 179, 175, 183, 178, 174, 177, 172, 166, 165, 160, 154, 173, 168, 162, 172, 167, 161, 165, 158, 152, 147, 140, 134, 134, 127, 119, 139, 132, 124, 165, 158, 150, 189, 182, 174, 177, 172, 168, 164, 159, 155, 164, 159, 155, 175, 170, 166, 172, 167, 163, 155, 150, 146, 148, 143, 139, 154, 149, 145, 167, 162, 158, 159, 154, 150, 154, 149, 145, 158, 153, 149, 167, 162, 158, 168, 163, 159, 158, 153, 149, 146, 141, 137, 135, 130, 126, 134, 129, 125, 135, 130, 126, 140, 135, 131, 148, 143, 139, 153, 148, 144, 155, 150, 146, 154, 149, 145, 151, 146, 142, 141, 136, 132, 145, 140, 136, 159, 154, 150, 154, 149, 145, 128, 123, 119, 119, 114, 110, 132, 127, 123, 155, 146, 141, 151, 142, 137, 148, 139, 134, 151, 142, 137, 155, 146, 141, 157, 148, 143, 155, 146, 141, 151, 142, 137, 135, 126, 121, 139, 130, 125, 143, 134, 129, 145, 136, 131, 145, 136, 131, 147, 138, 133, 152, 143, 138, 156, 147, 142, 164, 156, 153, 164, 156, 153, 164, 156, 153, 163, 155, 152, 162, 154, 151, 160, 152, 149, 158, 150, 147, 156, 148, 145, 154, 146, 143, 155, 147, 144, 156, 148, 145, 160, 152, 149, 166, 158, 155, 174, 166, 163, 181, 173, 170, 186, 178, 175, 187, 179, 177, 191, 183, 181, 193, 188, 185, 195, 190, 187, 195, 191, 190, 197, 193, 192, 198, 196, 197, 201, 199, 200, 203, 203, 205, 208, 208, 210, 214, 215, 219, 220, 221, 225, 223, 226, 231, 228, 231, 236, 233, 236, 243, 237, 240, 247, 237, 240, 245, 238, 241, 246, 240, 243, 248, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 232, 235, 240, 232, 235, 240, 232, 235, 240, 232, 235, 240, 232, 235, 240, 232, 235, 240, 232, 235, 240, 232, 235, 240, 233, 236, 241, 233, 236, 241, 234, 237, 242, 234, 237, 242, 235, 238, 243, 235, 238, 243, 235, 238, 243, 235, 238, 243, 236, 239, 244, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 237, 240, 245, 234, 237, 242, 232, 235, 240, 231, 234, 239, 228, 229, 234, 223, 224, 228, 217, 218, 220, 212, 212, 212, 209, 207, 208, 205, 204, 200, 202, 198, 195, 198, 195, 190, 202, 199, 192, 201, 198, 191, 200, 197, 192, 201, 197, 194, 201, 197, 196, 199, 195, 194, 192, 190, 191, 188, 186, 187, 191, 185, 187, 190, 184, 186, 188, 182, 182, 186, 180, 180, 183, 177, 177, 181, 176, 173, 181, 173, 171, 180, 172, 169, 178, 171, 165, 174, 167, 161, 170, 163, 155, 166, 159, 151, 163, 154, 145, 158, 149, 140, 151, 142, 133, 148, 138, 129, 146, 132, 129, 142, 128, 125, 136, 125, 121, 133, 124, 119, 133, 126, 120, 133, 128, 122, 132, 129, 124, 130, 129, 124, 136, 135, 130, 129, 130, 124, 126, 127, 121, 130, 133, 126, 136, 138, 133, 140, 142, 137, 146, 148, 143, 153, 154, 149, 151, 152, 147, 134, 133, 129, 125, 124, 120, 131, 130, 126, 133, 132, 128, 124, 123, 119, 123, 119, 116, 128, 124, 121, 139, 135, 132, 146, 142, 139, 151, 147, 144, 148, 144, 141, 145, 140, 137, 143, 138, 135, 139, 134, 131, 135, 130, 127, 123, 115, 112, 130, 121, 116, 139, 130, 125, 149, 140, 135, 155, 146, 141, 153, 144, 139, 147, 138, 133, 141, 132, 127, 134, 125, 120, 134, 125, 120, 136, 127, 122, 138, 129, 124, 140, 131, 126, 142, 133, 128, 143, 134, 129, 144, 135, 130, 136, 127, 122, 138, 129, 124, 138, 129, 124, 136, 127, 122, 140, 131, 126, 149, 140, 135, 154, 143, 139, 154, 143, 139, 142, 131, 125, 151, 140, 134, 148, 137, 131, 135, 124, 118, 137, 124, 116, 147, 134, 126, 143, 130, 122, 129, 116, 108, 135, 124, 118, 135, 126, 119, 131, 122, 115, 121, 112, 105, 113, 104, 99, 119, 110, 105, 137, 128, 123, 153, 144, 139, 155, 146, 141, 153, 144, 139, 152, 142, 140, 142, 132, 130, 133, 123, 121, 130, 120, 118, 130, 120, 118, 136, 126, 124, 144, 130, 127, 149, 135, 132, 138, 124, 121, 110, 96, 93, 89, 75, 72, 84, 70, 67, 80, 66, 63, 74, 60, 57, 88, 74, 71, 82, 68, 65, 107, 93, 90, 124, 110, 107, 114, 100, 97, 118, 104, 101, 124, 110, 107, 105, 91, 88, 104, 93, 89, 94, 83, 79, 97, 86, 82, 118, 107, 103, 141, 130, 126, 150, 139, 135, 154, 143, 139, 158, 147, 143, 140, 129, 125, 142, 131, 127, 143, 132, 128, 141, 130, 126, 135, 124, 120, 128, 117, 113, 121, 110, 106, 117, 106, 102, 124, 111, 105, 117, 104, 98, 129, 116, 110, 123, 110, 104, 116, 103, 97, 112, 99, 93, 98, 84, 81, 107, 93, 90, 125, 111, 108, 116, 102, 99, 130, 116, 115, 102, 88, 87, 117, 103, 102, 154, 140, 139, 127, 113, 112, 132, 118, 117, 137, 126, 124, 115, 104, 102, 83, 72, 70, 117, 106, 104, 117, 106, 104, 114, 103, 101, 153, 142, 140, 122, 111, 109, 123, 112, 110, 109, 98, 96, 121, 110, 108, 135, 124, 122, 118, 107, 105, 137, 126, 124, 158, 147, 145, 110, 100, 98, 159, 149, 147, 142, 134, 131, 148, 140, 137, 136, 128, 125, 145, 140, 137, 187, 182, 179, 160, 155, 152, 95, 90, 87, 172, 166, 166, 175, 169, 169, 180, 176, 175, 196, 192, 191, 193, 189, 188, 192, 188, 187, 210, 206, 205, 207, 206, 204, 199, 198, 196, 205, 205, 203, 218, 218, 216, 228, 228, 226, 229, 229, 227, 229, 229, 227, 235, 235, 233, 244, 244, 242, 244, 244, 242, 245, 245, 243, 246, 246, 244, 247, 247, 245, 248, 248, 246, 249, 249, 247, 250, 250, 248, 250, 250, 248, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 252, 252, 250, 251, 251, 249, 251, 251, 249, 251, 251, 249, 250, 250, 248, 250, 250, 248, 250, 250, 248, 249, 249, 247, 244, 246, 243, 248, 250, 247, 249, 251, 248, 246, 248, 245, 245, 247, 244, 245, 247, 244, 242, 242, 240, 237, 237, 235, 244, 244, 242, 240, 240, 238, 236, 236, 234, 231, 231, 229, 227, 226, 224, 221, 220, 218, 215, 214, 212, 211, 210, 208, 218, 213, 210, 207, 202, 199, 213, 208, 205, 222, 217, 214, 191, 186, 183, 178, 173, 170, 209, 204, 201, 216, 211, 208, 194, 189, 186, 172, 167, 164, 207, 202, 199, 184, 179, 176, 163, 158, 155, 196, 191, 188, 196, 191, 188, 205, 200, 197, 182, 174, 171, 175, 167, 164, 181, 173, 170, 190, 182, 179, 193, 185, 182, 195, 187, 184, 192, 184, 181, 178, 170, 167, 198, 190, 187, 167, 159, 156, 162, 154, 151, 169, 161, 158, 176, 168, 165, 174, 166, 163, 164, 156, 153, 173, 168, 164, 179, 176, 169, 174, 174, 166, 184, 181, 176, 169, 164, 160, 155, 148, 142, 160, 149, 143, 160, 145, 140, 163, 146, 139, 154, 136, 132, 85, 67, 63, 32, 14, 10, 32, 12, 3, 43, 17, 2, 43, 11, 0, 68, 25, 0, 103, 56, 14, 121, 70, 15, 127, 73, 9, 136, 77, 11, 144, 85, 17, 151, 97, 27, 157, 113, 42, 162, 132, 62, 161, 147, 76, 143, 146, 69, 142, 160, 76, 128, 159, 66, 121, 162, 66, 113, 165, 67, 110, 170, 74, 101, 167, 77, 67, 123, 52, 22, 52, 16, 0, 9, 0, 0, 5, 0, 0, 8, 0, 0, 3, 1, 0, 0, 2, 4, 3, 9, 0, 0, 5, 3, 0, 7, 3, 1, 6, 2, 1, 6, 2, 2, 4, 2, 2, 4, 1, 2, 4, 1, 2, 6, 0, 3, 6, 2, 3, 8, 1, 5, 8, 2, 6, 5, 0, 6, 4, 0, 4, 6, 0, 5, 8, 0, 6, 12, 2, 10, 13, 0, 6, 8, 0, 5, 7, 10, 17, 25, 6, 15, 24, 6, 15, 22, 11, 23, 23, 25, 42, 26, 73, 94, 61, 91, 118, 63, 87, 112, 44, 97, 110, 38, 121, 122, 44, 148, 133, 48, 166, 139, 48, 185, 149, 55, 203, 162, 70, 211, 171, 84, 215, 178, 97, 220, 187, 110, 225, 191, 117, 230, 191, 114, 234, 187, 105, 238, 183, 93, 239, 179, 93, 238, 178, 106, 144, 94, 41, 109, 80, 50, 119, 105, 94, 139, 137, 138, 169, 174, 180, 157, 162, 165, 121, 130, 129, 141, 150, 147, 177, 183, 179, 195, 196, 191, 199, 196, 191, 213, 202, 198, 208, 197, 195, 193, 184, 185, 192, 186, 188, 189, 185, 182, 193, 190, 185, 192, 189, 184, 186, 183, 178, 189, 184, 180, 196, 191, 187, 194, 189, 183, 186, 181, 175, 167, 162, 156, 173, 168, 162, 168, 161, 155, 151, 144, 138, 150, 143, 135, 164, 157, 149, 171, 164, 156, 167, 160, 152, 175, 170, 166, 153, 148, 144, 139, 134, 130, 143, 138, 134, 148, 143, 139, 149, 144, 140, 158, 153, 149, 173, 168, 164, 182, 177, 173, 169, 164, 160, 156, 151, 147, 156, 151, 147, 163, 158, 154, 163, 158, 154, 153, 148, 144, 141, 136, 132, 153, 148, 144, 152, 147, 143, 150, 145, 141, 149, 144, 140, 152, 147, 143, 160, 155, 151, 172, 167, 163, 180, 175, 171, 156, 151, 147, 171, 166, 162, 170, 165, 161, 159, 154, 150, 157, 152, 148, 159, 154, 150, 160, 155, 151, 165, 160, 156, 175, 166, 161, 172, 163, 158, 168, 159, 154, 166, 157, 152, 164, 155, 150, 161, 152, 147, 157, 148, 143, 154, 145, 140, 155, 146, 141, 160, 151, 146, 163, 154, 149, 160, 151, 146, 154, 145, 140, 152, 143, 138, 158, 149, 144, 164, 155, 150, 164, 156, 153, 164, 156, 153, 164, 156, 153, 164, 156, 153, 163, 155, 152, 162, 154, 151, 160, 152, 149, 159, 151, 148, 163, 155, 152, 164, 156, 153, 167, 159, 156, 171, 163, 160, 177, 169, 166, 184, 176, 173, 189, 181, 178, 192, 184, 181, 188, 180, 178, 192, 184, 182, 195, 190, 187, 199, 194, 191, 200, 196, 195, 201, 197, 196, 202, 200, 201, 205, 203, 204, 204, 204, 206, 209, 209, 211, 215, 216, 220, 221, 222, 226, 223, 226, 231, 227, 230, 235, 232, 235, 242, 235, 238, 245, 237, 240, 245, 238, 241, 246, 239, 242, 247, 241, 244, 249, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 232, 235, 240, 232, 235, 240, 232, 235, 240, 232, 235, 240, 232, 235, 240, 232, 235, 240, 232, 235, 240, 232, 235, 240, 233, 236, 241, 233, 236, 241, 234, 237, 242, 234, 237, 242, 235, 238, 243, 235, 238, 243, 235, 238, 243, 235, 238, 243, 236, 239, 244, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 237, 240, 245, 234, 237, 242, 232, 235, 240, 231, 234, 239, 229, 230, 234, 224, 225, 229, 219, 219, 221, 213, 213, 213, 210, 208, 209, 206, 205, 201, 204, 200, 197, 200, 197, 192, 205, 202, 197, 203, 200, 195, 201, 197, 194, 200, 196, 193, 198, 197, 195, 196, 195, 193, 192, 190, 191, 189, 187, 188, 192, 186, 188, 191, 185, 187, 189, 183, 185, 187, 181, 181, 184, 178, 178, 181, 176, 173, 181, 173, 171, 180, 172, 169, 173, 166, 160, 171, 164, 158, 169, 162, 154, 167, 160, 152, 165, 156, 147, 159, 150, 141, 152, 143, 134, 146, 137, 128, 136, 125, 121, 137, 126, 122, 141, 130, 126, 144, 135, 130, 145, 138, 132, 140, 135, 129, 131, 130, 125, 125, 126, 120, 107, 108, 102, 102, 105, 98, 104, 107, 100, 109, 114, 107, 111, 116, 110, 110, 115, 109, 116, 121, 115, 127, 129, 124, 145, 145, 143, 138, 138, 136, 133, 133, 131, 133, 133, 131, 135, 135, 133, 134, 134, 132, 134, 133, 131, 135, 134, 132, 134, 133, 131, 133, 132, 130, 139, 135, 134, 145, 141, 140, 145, 141, 140, 141, 137, 136, 141, 137, 136, 144, 139, 136, 154, 146, 143, 152, 143, 138, 150, 141, 136, 149, 140, 135, 150, 141, 136, 150, 141, 136, 148, 139, 134, 146, 137, 132, 145, 136, 131, 146, 137, 132, 148, 139, 134, 148, 139, 134, 146, 137, 132, 142, 133, 128, 138, 129, 124, 135, 126, 121, 151, 140, 136, 149, 138, 134, 143, 132, 128, 135, 124, 120, 135, 124, 120, 142, 131, 127, 147, 136, 130, 147, 136, 130, 157, 144, 138, 158, 145, 139, 154, 141, 135, 147, 134, 128, 144, 131, 123, 143, 130, 122, 139, 124, 117, 130, 117, 109, 126, 115, 109, 117, 108, 101, 105, 96, 89, 94, 85, 78, 94, 85, 80, 107, 98, 93, 128, 119, 114, 144, 135, 130, 113, 104, 99, 116, 107, 102, 119, 109, 107, 123, 113, 111, 129, 119, 117, 139, 129, 127, 153, 143, 141, 162, 152, 150, 150, 136, 133, 157, 143, 140, 153, 139, 136, 139, 125, 122, 135, 121, 118, 139, 125, 122, 136, 122, 119, 126, 112, 109, 134, 120, 117, 129, 115, 112, 126, 112, 109, 116, 102, 99, 99, 85, 82, 87, 73, 70, 81, 67, 64, 75, 61, 58, 86, 75, 71, 105, 94, 90, 125, 114, 110, 127, 116, 112, 109, 98, 94, 92, 81, 77, 93, 82, 78, 103, 92, 88, 136, 125, 121, 146, 135, 131, 131, 120, 116, 101, 90, 86, 102, 91, 87, 133, 122, 118, 143, 132, 128, 127, 116, 112, 128, 115, 109, 125, 112, 106, 136, 123, 117, 126, 113, 107, 121, 108, 102, 124, 111, 105, 112, 98, 95, 117, 103, 100, 117, 103, 100, 113, 99, 96, 124, 110, 107, 128, 114, 111, 138, 124, 123, 146, 132, 131, 122, 108, 107, 94, 80, 79, 120, 109, 107, 122, 111, 109, 77, 66, 64, 110, 99, 97, 134, 123, 121, 118, 107, 105, 150, 139, 137, 146, 135, 133, 114, 103, 101, 102, 91, 89, 122, 111, 109, 146, 135, 133, 114, 103, 101, 114, 103, 101, 148, 137, 135, 116, 106, 104, 157, 147, 145, 128, 120, 117, 161, 153, 151, 167, 159, 157, 154, 149, 146, 187, 182, 179, 169, 164, 161, 96, 91, 88, 163, 157, 157, 181, 175, 175, 174, 170, 169, 190, 186, 185, 202, 198, 197, 196, 192, 191, 212, 208, 209, 219, 217, 218, 200, 199, 197, 204, 204, 202, 216, 216, 214, 228, 228, 226, 232, 232, 230, 232, 232, 230, 236, 236, 234, 243, 243, 241, 244, 244, 242, 245, 245, 243, 246, 246, 244, 247, 247, 245, 248, 248, 246, 249, 249, 247, 250, 250, 248, 250, 250, 248, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 251, 251, 249, 251, 251, 249, 251, 251, 249, 250, 250, 248, 250, 250, 248, 250, 250, 248, 245, 247, 244, 249, 251, 248, 251, 253, 250, 248, 250, 247, 246, 248, 245, 246, 248, 245, 242, 244, 241, 236, 238, 235, 240, 240, 238, 242, 242, 240, 242, 242, 240, 237, 237, 235, 228, 228, 226, 219, 219, 217, 216, 215, 213, 215, 214, 212, 217, 212, 209, 212, 207, 204, 207, 202, 199, 217, 212, 209, 196, 191, 188, 178, 173, 170, 204, 199, 196, 211, 206, 203, 208, 203, 200, 198, 193, 190, 198, 193, 190, 189, 184, 181, 183, 178, 175, 191, 186, 183, 194, 189, 186, 199, 194, 191, 189, 184, 180, 176, 171, 167, 180, 175, 171, 194, 189, 185, 194, 189, 185, 190, 185, 181, 188, 183, 179, 183, 178, 174, 191, 186, 182, 175, 170, 166, 175, 170, 166, 164, 159, 155, 162, 157, 153, 164, 159, 155, 155, 150, 146, 171, 166, 162, 175, 172, 165, 166, 166, 158, 183, 180, 175, 171, 166, 162, 160, 153, 147, 171, 160, 154, 164, 149, 144, 159, 142, 135, 156, 138, 134, 98, 80, 76, 44, 26, 22, 32, 12, 5, 41, 15, 2, 50, 18, 0, 71, 27, 0, 92, 44, 4, 116, 66, 13, 127, 73, 11, 144, 85, 17, 159, 99, 27, 167, 111, 37, 170, 122, 48, 170, 138, 65, 170, 152, 78, 151, 149, 72, 141, 151, 65, 148, 169, 76, 132, 164, 63, 117, 160, 55, 115, 171, 64, 95, 160, 56, 85, 143, 59, 60, 96, 50, 13, 35, 12, 0, 7, 0, 0, 10, 0, 0, 4, 0, 0, 3, 3, 4, 7, 12, 0, 0, 5, 2, 1, 7, 2, 1, 6, 3, 1, 6, 2, 1, 6, 2, 1, 6, 1, 2, 6, 1, 2, 6, 1, 2, 6, 2, 1, 7, 4, 3, 8, 3, 5, 4, 0, 4, 3, 0, 4, 4, 0, 4, 6, 0, 7, 10, 1, 9, 12, 6, 11, 14, 3, 8, 11, 13, 17, 26, 7, 11, 22, 1, 8, 16, 4, 14, 15, 24, 38, 23, 76, 95, 63, 92, 112, 61, 90, 106, 41, 105, 113, 38, 131, 129, 46, 151, 134, 42, 164, 139, 39, 187, 151, 54, 205, 166, 73, 209, 173, 89, 212, 178, 104, 216, 185, 120, 223, 189, 125, 231, 191, 122, 236, 187, 111, 235, 178, 91, 230, 168, 85, 233, 174, 104, 161, 113, 64, 129, 102, 75, 133, 120, 111, 153, 151, 154, 173, 178, 184, 151, 156, 159, 121, 130, 129, 146, 155, 152, 187, 193, 189, 202, 203, 198, 198, 195, 190, 208, 197, 193, 202, 191, 189, 190, 179, 183, 194, 188, 190, 221, 217, 214, 202, 199, 194, 185, 182, 177, 182, 179, 174, 192, 187, 183, 193, 188, 184, 179, 174, 168, 163, 158, 152, 167, 162, 156, 167, 162, 156, 155, 148, 142, 138, 131, 125, 140, 133, 125, 158, 151, 143, 165, 158, 150, 158, 151, 143, 152, 147, 143, 133, 128, 124, 120, 115, 111, 126, 121, 117, 139, 134, 130, 152, 147, 143, 166, 161, 157, 178, 173, 169, 162, 157, 153, 154, 149, 145, 147, 142, 138, 148, 143, 139, 158, 153, 149, 168, 163, 159, 175, 170, 166, 177, 172, 168, 160, 155, 151, 159, 154, 150, 157, 152, 148, 156, 151, 147, 158, 153, 149, 162, 157, 153, 168, 163, 159, 172, 167, 163, 166, 161, 157, 181, 176, 172, 169, 164, 160, 148, 143, 139, 153, 148, 144, 167, 162, 158, 172, 167, 163, 175, 170, 166, 155, 146, 141, 155, 146, 141, 155, 146, 141, 151, 142, 137, 147, 138, 133, 144, 135, 130, 143, 134, 129, 144, 135, 130, 169, 160, 155, 168, 159, 154, 166, 157, 152, 164, 155, 150, 161, 152, 147, 161, 152, 147, 163, 154, 149, 165, 156, 151, 159, 151, 148, 161, 153, 150, 163, 155, 152, 165, 157, 154, 167, 159, 156, 168, 160, 157, 168, 160, 157, 168, 160, 157, 178, 170, 167, 178, 170, 167, 179, 171, 168, 181, 173, 170, 183, 175, 172, 185, 177, 174, 186, 178, 175, 187, 179, 176, 188, 180, 178, 192, 184, 182, 197, 192, 189, 201, 196, 193, 203, 199, 198, 205, 201, 200, 206, 204, 205, 208, 206, 207, 205, 205, 207, 210, 210, 212, 215, 216, 220, 220, 221, 225, 221, 224, 229, 225, 228, 233, 229, 232, 239, 232, 235, 242, 237, 240, 245, 238, 241, 246, 239, 242, 247, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 231, 234, 239, 231, 234, 239, 231, 234, 239, 231, 234, 239, 231, 234, 239, 231, 234, 239, 231, 234, 239, 231, 234, 239, 233, 236, 241, 233, 236, 241, 234, 237, 242, 234, 237, 242, 235, 238, 243, 235, 238, 243, 235, 238, 243, 235, 238, 243, 236, 239, 244, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 237, 240, 245, 234, 237, 242, 232, 235, 240, 231, 234, 239, 229, 230, 234, 225, 226, 228, 219, 219, 221, 214, 214, 214, 211, 210, 208, 207, 206, 204, 205, 201, 198, 202, 199, 194, 207, 203, 200, 204, 200, 197, 201, 197, 194, 199, 195, 192, 196, 195, 193, 195, 194, 192, 192, 191, 189, 191, 187, 186, 194, 188, 188, 193, 187, 187, 191, 185, 185, 188, 182, 182, 185, 179, 179, 183, 178, 175, 183, 175, 173, 182, 174, 171, 169, 162, 156, 169, 162, 156, 169, 162, 154, 168, 161, 153, 167, 158, 151, 160, 151, 142, 152, 143, 134, 145, 136, 129, 137, 126, 120, 140, 129, 125, 144, 135, 130, 149, 140, 135, 151, 144, 138, 147, 142, 136, 140, 137, 132, 133, 132, 127, 118, 119, 113, 116, 119, 112, 121, 124, 117, 124, 129, 122, 120, 125, 119, 109, 114, 108, 109, 114, 108, 119, 121, 116, 121, 121, 119, 143, 143, 141, 155, 155, 153, 146, 146, 144, 136, 136, 134, 138, 138, 136, 146, 145, 143, 147, 146, 144, 153, 152, 150, 141, 140, 138, 136, 132, 131, 134, 130, 129, 124, 120, 119, 108, 104, 103, 102, 98, 97, 106, 101, 98, 113, 105, 102, 118, 111, 105, 128, 121, 115, 138, 131, 125, 144, 137, 131, 143, 136, 130, 138, 129, 124, 132, 123, 118, 140, 131, 126, 145, 136, 131, 153, 144, 139, 159, 150, 145, 161, 152, 147, 159, 150, 145, 154, 145, 140, 150, 141, 136, 154, 143, 139, 143, 132, 128, 131, 120, 116, 131, 120, 116, 145, 134, 130, 160, 149, 145, 161, 150, 144, 153, 142, 136, 141, 130, 124, 125, 114, 108, 134, 121, 115, 157, 146, 140, 163, 150, 144, 141, 128, 120, 133, 120, 114, 146, 133, 127, 138, 129, 124, 126, 117, 112, 118, 109, 104, 124, 115, 110, 139, 130, 125, 144, 135, 130, 134, 125, 120, 120, 111, 106, 90, 81, 76, 98, 87, 83, 102, 91, 87, 112, 101, 99, 120, 109, 107, 126, 115, 113, 137, 126, 124, 141, 130, 128, 157, 143, 140, 141, 127, 124, 133, 119, 116, 138, 124, 121, 134, 120, 117, 114, 100, 97, 97, 83, 80, 92, 78, 75, 97, 83, 80, 119, 105, 102, 120, 106, 103, 116, 102, 99, 120, 105, 102, 99, 85, 82, 78, 63, 60, 83, 69, 66, 78, 67, 63, 85, 76, 71, 104, 93, 89, 130, 119, 115, 147, 136, 132, 140, 129, 125, 110, 99, 95, 82, 71, 67, 89, 78, 74, 108, 97, 93, 126, 115, 111, 123, 114, 109, 103, 94, 89, 93, 83, 81, 110, 100, 98, 135, 126, 121, 129, 118, 112, 122, 109, 103, 128, 115, 109, 120, 107, 101, 124, 111, 105, 130, 117, 111, 105, 91, 88, 94, 80, 77, 122, 108, 105, 121, 107, 104, 103, 89, 86, 126, 112, 109, 123, 109, 106, 112, 98, 95, 135, 121, 120, 105, 94, 92, 90, 79, 77, 119, 108, 106, 75, 64, 62, 109, 98, 96, 144, 133, 131, 115, 104, 102, 140, 129, 127, 156, 145, 143, 118, 107, 105, 109, 99, 97, 131, 120, 118, 149, 139, 137, 102, 92, 90, 97, 87, 85, 145, 135, 133, 128, 118, 116, 155, 147, 144, 116, 108, 105, 165, 157, 155, 187, 179, 177, 159, 154, 151, 188, 183, 180, 186, 181, 178, 122, 117, 114, 166, 160, 160, 192, 186, 186, 176, 172, 171, 187, 183, 182, 205, 201, 200, 193, 189, 188, 202, 198, 199, 216, 214, 215, 201, 200, 198, 204, 204, 202, 215, 215, 213, 228, 228, 226, 234, 234, 232, 234, 234, 232, 237, 237, 235, 242, 242, 240, 244, 244, 242, 245, 245, 243, 246, 246, 244, 247, 247, 245, 248, 248, 246, 249, 249, 247, 250, 250, 248, 250, 250, 248, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 251, 251, 249, 251, 251, 249, 251, 251, 249, 250, 250, 248, 250, 250, 248, 250, 250, 248, 245, 247, 244, 249, 251, 248, 251, 253, 250, 249, 251, 248, 247, 249, 246, 247, 249, 246, 242, 244, 241, 236, 238, 235, 237, 237, 235, 242, 242, 240, 246, 246, 244, 241, 241, 239, 230, 230, 228, 220, 220, 218, 219, 218, 216, 220, 219, 217, 221, 217, 216, 223, 219, 216, 212, 206, 206, 220, 215, 212, 210, 205, 202, 193, 188, 185, 210, 205, 202, 211, 206, 203, 208, 203, 200, 223, 218, 215, 184, 179, 176, 196, 191, 188, 211, 206, 203, 186, 181, 178, 189, 184, 181, 181, 176, 173, 203, 198, 194, 183, 178, 174, 182, 177, 173, 195, 190, 186, 193, 188, 184, 188, 183, 179, 192, 187, 183, 195, 190, 186, 170, 165, 161, 175, 170, 166, 190, 185, 181, 170, 165, 161, 158, 153, 149, 160, 155, 151, 153, 148, 144, 173, 168, 164, 172, 169, 162, 160, 157, 150, 181, 176, 170, 173, 168, 162, 168, 161, 155, 182, 173, 168, 167, 154, 148, 152, 137, 130, 135, 117, 113, 92, 75, 68, 40, 23, 16, 18, 0, 0, 30, 6, 0, 53, 25, 4, 73, 36, 9, 82, 38, 0, 105, 56, 0, 124, 71, 5, 154, 94, 24, 179, 117, 42, 188, 130, 48, 185, 133, 49, 178, 138, 53, 173, 145, 62, 171, 156, 75, 154, 149, 65, 177, 183, 93, 154, 171, 75, 129, 162, 58, 128, 176, 67, 95, 157, 50, 99, 158, 66, 93, 133, 73, 32, 60, 20, 0, 20, 0, 0, 14, 0, 0, 5, 0, 0, 6, 9, 9, 12, 19, 2, 2, 10, 2, 1, 7, 2, 1, 6, 2, 2, 4, 2, 2, 4, 1, 2, 6, 1, 2, 7, 1, 1, 9, 1, 1, 9, 1, 1, 9, 2, 3, 8, 3, 4, 6, 2, 4, 3, 0, 2, 3, 0, 3, 6, 1, 5, 8, 4, 7, 12, 0, 3, 8, 0, 1, 7, 7, 11, 20, 0, 7, 15, 0, 7, 9, 6, 18, 8, 32, 46, 21, 91, 107, 70, 91, 109, 59, 96, 107, 47, 121, 123, 50, 151, 143, 60, 166, 145, 56, 171, 140, 49, 185, 148, 59, 198, 161, 73, 218, 185, 104, 221, 191, 118, 227, 196, 132, 234, 200, 137, 246, 202, 137, 251, 199, 124, 247, 185, 98, 234, 172, 87, 185, 135, 72, 156, 119, 75, 137, 115, 91, 125, 115, 106, 143, 141, 144, 155, 158, 165, 128, 133, 136, 120, 126, 126, 144, 153, 150, 185, 192, 185, 196, 197, 191, 187, 182, 176, 197, 188, 183, 202, 191, 189, 203, 192, 196, 220, 211, 214, 188, 183, 180, 184, 181, 176, 187, 184, 179, 191, 188, 183, 192, 187, 183, 185, 180, 174, 182, 177, 171, 184, 180, 171, 173, 168, 162, 157, 152, 146, 140, 133, 127, 141, 134, 128, 161, 154, 146, 172, 165, 157, 153, 146, 138, 122, 117, 111, 124, 119, 115, 127, 122, 118, 140, 135, 131, 161, 156, 152, 175, 170, 166, 172, 167, 163, 158, 153, 149, 146, 141, 137, 154, 149, 145, 160, 155, 151, 166, 161, 157, 168, 163, 159, 165, 160, 156, 162, 157, 153, 163, 155, 152, 161, 156, 152, 152, 147, 143, 155, 150, 146, 162, 157, 153, 171, 166, 162, 178, 173, 169, 179, 174, 170, 174, 169, 165, 169, 164, 160, 169, 164, 160, 172, 167, 163, 161, 156, 152, 155, 150, 146, 159, 154, 150, 147, 142, 138, 131, 126, 122, 135, 127, 124, 152, 145, 139, 155, 148, 142, 159, 150, 145, 158, 149, 144, 154, 145, 140, 153, 144, 139, 156, 147, 142, 159, 150, 145, 156, 147, 142, 151, 142, 137, 146, 137, 132, 147, 138, 133, 152, 143, 138, 156, 147, 142, 155, 146, 141, 152, 143, 138, 154, 147, 141, 157, 150, 144, 161, 153, 150, 166, 158, 155, 170, 162, 159, 173, 165, 162, 175, 167, 164, 176, 168, 165, 180, 172, 169, 179, 171, 168, 178, 170, 167, 176, 168, 165, 174, 166, 163, 171, 163, 160, 169, 161, 158, 168, 160, 157, 185, 177, 175, 190, 182, 180, 195, 190, 187, 201, 196, 193, 203, 199, 198, 205, 201, 200, 206, 204, 205, 209, 207, 208, 206, 204, 207, 209, 209, 211, 215, 214, 219, 218, 219, 223, 221, 222, 227, 222, 225, 230, 226, 229, 236, 229, 232, 239, 236, 239, 244, 237, 240, 245, 239, 242, 247, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 229, 232, 237, 229, 232, 237, 230, 233, 238, 231, 234, 239, 232, 235, 240, 232, 235, 240, 233, 236, 241, 233, 236, 241, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 235, 238, 243, 235, 238, 243, 235, 238, 243, 236, 239, 244, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 235, 238, 243, 233, 236, 241, 232, 236, 239, 231, 232, 234, 227, 227, 227, 222, 222, 222, 218, 218, 218, 216, 215, 213, 213, 212, 210, 210, 209, 207, 207, 206, 202, 207, 206, 204, 205, 204, 200, 205, 201, 198, 202, 198, 195, 199, 195, 192, 198, 194, 191, 197, 193, 190, 197, 193, 190, 195, 190, 187, 193, 188, 185, 191, 186, 183, 190, 185, 182, 192, 184, 182, 190, 182, 179, 185, 177, 174, 182, 175, 169, 177, 168, 163, 171, 162, 157, 164, 155, 150, 164, 155, 148, 166, 157, 150, 164, 155, 148, 156, 147, 140, 149, 140, 133, 134, 123, 117, 136, 125, 119, 141, 130, 124, 147, 138, 131, 155, 146, 139, 159, 152, 144, 157, 152, 146, 156, 151, 145, 159, 156, 149, 155, 155, 147, 151, 151, 143, 146, 147, 139, 141, 142, 136, 132, 135, 128, 123, 126, 119, 118, 119, 114, 118, 118, 116, 119, 119, 117, 125, 124, 122, 134, 133, 131, 144, 143, 141, 152, 151, 149, 156, 155, 153, 157, 156, 154, 177, 173, 172, 163, 159, 158, 145, 141, 140, 129, 125, 124, 118, 114, 113, 105, 101, 100, 91, 85, 85, 80, 75, 72, 79, 74, 70, 82, 77, 71, 90, 85, 79, 103, 98, 92, 119, 114, 108, 134, 129, 123, 148, 141, 135, 154, 147, 141, 154, 147, 141, 159, 152, 146, 165, 158, 152, 168, 161, 155, 164, 157, 151, 159, 152, 146, 154, 147, 141, 151, 144, 138, 127, 118, 113, 150, 141, 136, 154, 145, 140, 153, 144, 139, 159, 150, 145, 145, 136, 131, 132, 123, 118, 143, 134, 129, 148, 139, 134, 134, 125, 120, 129, 118, 114, 130, 121, 116, 118, 107, 103, 98, 87, 81, 102, 91, 87, 121, 112, 107, 132, 122, 121, 131, 122, 123, 126, 116, 115, 134, 124, 123, 154, 144, 142, 149, 139, 137, 133, 122, 118, 132, 121, 117, 120, 109, 103, 106, 93, 87, 102, 89, 83, 118, 104, 101, 132, 117, 114, 134, 119, 116, 137, 121, 121, 145, 129, 129, 141, 127, 126, 141, 127, 126, 143, 127, 127, 139, 123, 123, 127, 111, 111, 116, 100, 100, 115, 100, 97, 121, 106, 103, 109, 94, 91, 105, 90, 87, 113, 98, 95, 128, 113, 110, 132, 114, 110, 122, 107, 102, 128, 110, 106, 138, 124, 121, 94, 83, 79, 94, 86, 83, 104, 95, 90, 114, 105, 100, 114, 105, 100, 109, 100, 95, 118, 109, 102, 134, 125, 118, 151, 142, 137, 135, 126, 121, 128, 118, 116, 134, 126, 123, 131, 126, 122, 114, 109, 106, 97, 93, 90, 95, 90, 86, 111, 102, 97, 126, 115, 109, 149, 138, 132, 146, 133, 127, 122, 108, 105, 125, 110, 107, 136, 120, 120, 126, 110, 110, 112, 96, 96, 129, 113, 113, 118, 103, 100, 104, 90, 87, 140, 126, 123, 129, 118, 112, 92, 81, 77, 137, 126, 122, 105, 94, 90, 117, 108, 103, 90, 80, 78, 94, 84, 82, 123, 113, 111, 128, 118, 116, 138, 128, 126, 147, 137, 135, 94, 84, 83, 137, 129, 127, 121, 111, 110, 141, 133, 131, 142, 134, 132, 115, 107, 105, 134, 126, 124, 113, 105, 103, 137, 129, 126, 133, 125, 122, 154, 146, 143, 180, 172, 169, 161, 153, 151, 196, 188, 186, 163, 158, 155, 142, 137, 134, 179, 174, 171, 191, 186, 183, 168, 162, 162, 192, 186, 186, 209, 205, 204, 193, 189, 188, 208, 204, 203, 207, 206, 204, 202, 201, 199, 207, 207, 205, 219, 219, 217, 230, 230, 228, 233, 233, 231, 232, 232, 230, 236, 236, 234, 243, 243, 241, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 247, 247, 245, 248, 248, 246, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 249, 249, 247, 248, 248, 246, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 246, 244, 245, 245, 243, 242, 242, 240, 238, 238, 236, 232, 232, 230, 227, 227, 225, 222, 222, 220, 221, 220, 218, 204, 203, 201, 209, 208, 206, 213, 209, 210, 211, 207, 206, 209, 205, 204, 211, 207, 206, 210, 206, 205, 207, 203, 202, 208, 204, 203, 207, 203, 202, 206, 201, 198, 204, 199, 196, 202, 197, 194, 200, 195, 192, 199, 194, 191, 199, 194, 191, 206, 201, 198, 181, 176, 173, 176, 171, 168, 200, 195, 192, 191, 186, 183, 192, 187, 184, 211, 206, 203, 175, 170, 167, 184, 179, 176, 175, 170, 167, 164, 159, 156, 191, 186, 183, 180, 175, 172, 136, 131, 128, 152, 147, 144, 183, 178, 174, 166, 161, 155, 163, 156, 148, 175, 166, 159, 185, 178, 170, 180, 175, 169, 176, 171, 165, 160, 153, 147, 129, 119, 110, 137, 120, 112, 83, 65, 55, 48, 31, 21, 20, 3, 0, 19, 3, 0, 44, 25, 8, 60, 33, 6, 78, 43, 1, 107, 61, 1, 124, 70, 0, 157, 97, 24, 183, 120, 40, 193, 130, 35, 205, 146, 44, 205, 152, 48, 183, 137, 39, 195, 158, 70, 182, 155, 74, 175, 160, 79, 169, 172, 85, 152, 173, 78, 124, 164, 65, 105, 161, 62, 106, 163, 69, 106, 151, 70, 73, 110, 43, 20, 51, 7, 0, 11, 0, 0, 6, 3, 9, 16, 26, 8, 10, 23, 0, 0, 9, 0, 0, 4, 3, 3, 3, 2, 7, 3, 0, 2, 0, 0, 1, 4, 0, 0, 9, 4, 3, 19, 5, 6, 24, 0, 1, 13, 0, 3, 12, 0, 2, 7, 3, 3, 5, 6, 4, 5, 9, 5, 6, 8, 6, 9, 7, 6, 12, 4, 7, 16, 0, 1, 11, 0, 9, 19, 4, 15, 17, 2, 16, 3, 30, 45, 16, 74, 90, 43, 97, 114, 60, 103, 121, 71, 109, 119, 66, 125, 122, 53, 147, 129, 55, 168, 135, 64, 183, 143, 73, 198, 155, 87, 207, 169, 98, 228, 196, 119, 210, 183, 104, 225, 197, 124, 253, 219, 148, 255, 210, 142, 251, 194, 115, 255, 190, 94, 247, 190, 101, 182, 149, 95, 129, 110, 78, 118, 105, 86, 150, 141, 132, 156, 152, 153, 131, 130, 136, 120, 121, 126, 129, 133, 136, 155, 159, 158, 176, 178, 173, 195, 195, 187, 212, 208, 199, 217, 208, 201, 202, 191, 187, 192, 180, 180, 199, 189, 188, 184, 179, 175, 188, 185, 178, 191, 186, 180, 185, 180, 174, 183, 176, 170, 184, 177, 169, 182, 175, 167, 178, 171, 161, 155, 148, 140, 146, 139, 131, 158, 151, 143, 174, 167, 159, 161, 156, 150, 141, 136, 130, 135, 130, 124, 136, 131, 125, 151, 146, 142, 145, 140, 136, 139, 134, 130, 151, 146, 142, 155, 150, 146, 128, 123, 119, 132, 124, 121, 177, 169, 166, 175, 167, 164, 182, 174, 171, 166, 158, 155, 134, 126, 123, 124, 116, 113, 142, 134, 131, 152, 142, 140, 144, 136, 133, 174, 166, 164, 173, 165, 163, 173, 165, 163, 175, 167, 165, 179, 171, 169, 178, 170, 168, 173, 165, 163, 168, 160, 158, 165, 157, 155, 170, 162, 160, 175, 167, 165, 173, 165, 163, 166, 158, 156, 158, 150, 148, 153, 145, 143, 152, 144, 141, 148, 141, 135, 134, 129, 123, 127, 120, 114, 130, 123, 117, 143, 136, 130, 151, 144, 138, 148, 141, 135, 141, 134, 128, 143, 134, 129, 138, 129, 124, 136, 127, 122, 139, 130, 125, 147, 138, 133, 155, 146, 141, 158, 149, 144, 158, 149, 144, 146, 137, 132, 150, 141, 134, 157, 148, 143, 165, 156, 151, 173, 164, 159, 180, 171, 166, 184, 175, 170, 187, 178, 173, 181, 174, 168, 178, 171, 165, 173, 165, 162, 168, 160, 157, 162, 157, 153, 161, 156, 152, 161, 156, 152, 161, 156, 152, 172, 167, 163, 177, 172, 168, 184, 179, 175, 191, 186, 182, 197, 193, 190, 202, 198, 195, 205, 201, 200, 204, 202, 203, 203, 201, 204, 204, 204, 206, 208, 207, 212, 212, 213, 217, 219, 220, 225, 226, 227, 232, 231, 232, 237, 234, 235, 240, 233, 236, 243, 234, 237, 244, 236, 239, 244, 238, 241, 246, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 229, 232, 237, 229, 232, 237, 230, 233, 238, 231, 234, 239, 232, 235, 240, 232, 235, 240, 233, 236, 241, 233, 236, 241, 234, 237, 242, 234, 237, 242, 234, 237, 242, 235, 238, 243, 235, 238, 243, 235, 238, 243, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 235, 238, 243, 233, 236, 241, 232, 236, 239, 231, 231, 233, 227, 227, 227, 221, 221, 221, 217, 217, 217, 216, 215, 213, 213, 212, 210, 209, 208, 206, 206, 205, 203, 207, 206, 204, 205, 204, 202, 205, 201, 198, 202, 198, 195, 199, 195, 192, 198, 194, 191, 197, 193, 190, 197, 193, 190, 195, 190, 186, 193, 188, 184, 191, 186, 182, 190, 185, 181, 192, 184, 181, 190, 182, 179, 185, 178, 172, 182, 175, 169, 180, 171, 166, 176, 167, 162, 172, 163, 158, 172, 163, 158, 174, 165, 158, 171, 162, 155, 162, 153, 146, 154, 145, 138, 157, 146, 140, 155, 144, 138, 150, 139, 133, 146, 135, 129, 141, 132, 125, 140, 131, 124, 140, 133, 127, 141, 134, 128, 151, 146, 140, 147, 144, 137, 144, 141, 134, 142, 142, 134, 144, 143, 138, 147, 148, 142, 149, 150, 144, 149, 150, 144, 132, 133, 128, 125, 125, 123, 118, 117, 115, 115, 114, 112, 119, 118, 116, 128, 127, 125, 137, 136, 134, 143, 142, 140, 148, 144, 143, 146, 142, 141, 143, 139, 138, 141, 137, 136, 138, 134, 133, 130, 126, 125, 119, 113, 113, 110, 105, 102, 109, 106, 101, 113, 110, 103, 114, 111, 104, 109, 106, 99, 102, 97, 91, 101, 96, 90, 109, 104, 98, 118, 113, 107, 140, 133, 127, 143, 136, 130, 146, 139, 133, 146, 139, 133, 142, 135, 129, 137, 130, 124, 135, 128, 122, 134, 127, 121, 144, 135, 130, 143, 134, 129, 130, 121, 116, 127, 118, 113, 142, 133, 128, 152, 143, 138, 149, 140, 135, 147, 138, 133, 131, 122, 117, 113, 104, 99, 103, 94, 89, 109, 100, 95, 110, 101, 96, 100, 91, 86, 91, 82, 77, 91, 81, 79, 121, 113, 111, 127, 118, 119, 125, 115, 116, 127, 117, 116, 137, 127, 125, 139, 130, 125, 147, 136, 132, 166, 155, 149, 140, 127, 121, 132, 119, 113, 133, 118, 113, 136, 121, 116, 129, 114, 111, 115, 100, 97, 117, 99, 99, 126, 110, 110, 138, 124, 123, 143, 129, 128, 151, 137, 136, 152, 138, 137, 142, 126, 126, 124, 108, 108, 114, 99, 96, 113, 98, 95, 116, 101, 98, 107, 92, 89, 106, 88, 86, 113, 95, 93, 120, 102, 98, 121, 103, 99, 125, 107, 103, 128, 113, 108, 133, 122, 118, 133, 124, 119, 137, 128, 123, 140, 131, 124, 137, 126, 120, 125, 114, 108, 117, 106, 100, 114, 104, 95, 91, 80, 74, 113, 102, 96, 141, 132, 127, 148, 139, 134, 125, 117, 114, 104, 99, 95, 119, 114, 111, 150, 145, 141, 139, 130, 125, 135, 124, 118, 117, 106, 100, 139, 128, 122, 177, 163, 160, 148, 133, 130, 113, 97, 97, 138, 122, 122, 129, 113, 113, 129, 113, 113, 121, 106, 103, 99, 85, 82, 115, 104, 100, 135, 124, 118, 114, 103, 97, 113, 102, 96, 119, 110, 105, 138, 129, 124, 107, 97, 95, 96, 86, 84, 119, 109, 107, 132, 122, 120, 143, 133, 131, 142, 132, 130, 101, 93, 91, 151, 143, 141, 147, 139, 137, 142, 134, 132, 137, 132, 129, 134, 129, 126, 145, 139, 139, 115, 110, 107, 165, 157, 155, 155, 147, 144, 155, 147, 144, 160, 152, 149, 144, 136, 134, 185, 177, 175, 170, 165, 162, 167, 162, 159, 187, 182, 179, 203, 198, 195, 175, 169, 169, 190, 184, 184, 205, 201, 200, 192, 188, 187, 209, 205, 204, 207, 206, 204, 204, 203, 201, 208, 208, 206, 219, 219, 217, 230, 230, 228, 234, 234, 232, 233, 233, 231, 237, 237, 235, 243, 243, 241, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 247, 247, 245, 248, 248, 246, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 249, 249, 247, 249, 249, 247, 248, 248, 246, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 246, 244, 244, 244, 242, 241, 241, 239, 236, 236, 234, 232, 232, 230, 227, 227, 225, 225, 225, 223, 210, 208, 209, 207, 205, 206, 202, 200, 201, 200, 198, 199, 207, 203, 202, 212, 208, 207, 207, 203, 202, 197, 193, 192, 205, 201, 200, 208, 204, 203, 209, 204, 201, 204, 199, 196, 202, 197, 194, 203, 198, 195, 201, 196, 193, 196, 191, 188, 208, 203, 200, 193, 188, 185, 184, 179, 176, 199, 194, 191, 194, 189, 186, 192, 187, 184, 206, 201, 198, 183, 178, 175, 173, 168, 165, 179, 174, 171, 174, 169, 166, 194, 189, 186, 193, 188, 185, 164, 159, 156, 166, 161, 158, 171, 166, 163, 169, 161, 158, 164, 157, 149, 173, 164, 155, 180, 171, 162, 176, 171, 165, 175, 172, 167, 165, 160, 154, 144, 135, 128, 116, 99, 89, 69, 51, 39, 41, 24, 14, 17, 3, 0, 14, 2, 0, 39, 23, 7, 55, 31, 5, 76, 43, 0, 105, 57, 0, 118, 60, 0, 150, 87, 10, 185, 119, 33, 202, 137, 35, 216, 152, 42, 218, 158, 44, 202, 148, 40, 204, 157, 67, 196, 158, 77, 188, 162, 85, 177, 170, 89, 157, 172, 79, 132, 166, 69, 111, 161, 64, 104, 160, 63, 98, 145, 49, 95, 137, 53, 55, 93, 32, 0, 28, 0, 0, 6, 0, 0, 7, 14, 11, 13, 26, 3, 1, 14, 1, 0, 5, 3, 3, 5, 2, 6, 5, 0, 7, 4, 0, 5, 8, 0, 2, 11, 0, 0, 12, 0, 0, 14, 0, 5, 14, 0, 5, 12, 1, 4, 9, 6, 6, 8, 10, 6, 7, 11, 7, 8, 12, 7, 11, 9, 10, 15, 0, 6, 18, 0, 10, 24, 2, 19, 29, 3, 21, 23, 13, 31, 17, 54, 71, 37, 95, 112, 60, 107, 122, 65, 112, 130, 80, 121, 131, 79, 143, 135, 73, 163, 140, 73, 178, 140, 77, 191, 147, 86, 209, 164, 105, 224, 185, 120, 228, 198, 125, 225, 198, 119, 236, 207, 131, 247, 211, 137, 252, 204, 130, 255, 204, 125, 255, 194, 100, 227, 172, 90, 141, 117, 71, 123, 115, 92, 131, 124, 108, 146, 139, 131, 146, 140, 142, 137, 135, 140, 138, 137, 143, 144, 145, 149, 166, 168, 167, 193, 194, 188, 204, 204, 194, 197, 193, 182, 192, 185, 177, 190, 181, 176, 196, 185, 183, 207, 196, 194, 193, 188, 184, 183, 180, 173, 179, 174, 168, 182, 177, 171, 189, 182, 174, 182, 175, 167, 162, 155, 145, 145, 138, 128, 183, 176, 166, 171, 164, 154, 166, 159, 151, 160, 153, 145, 145, 140, 134, 143, 138, 132, 147, 144, 137, 144, 141, 134, 134, 129, 125, 143, 138, 134, 145, 140, 136, 147, 142, 138, 157, 152, 148, 159, 154, 150, 159, 151, 148, 165, 157, 154, 153, 145, 142, 165, 157, 154, 157, 149, 146, 135, 127, 124, 140, 130, 128, 172, 162, 160, 187, 177, 175, 179, 169, 167, 154, 146, 144, 165, 157, 155, 175, 167, 165, 177, 169, 167, 170, 162, 160, 163, 155, 153, 164, 156, 154, 167, 159, 157, 165, 157, 155, 168, 160, 158, 171, 163, 161, 171, 163, 161, 168, 160, 158, 167, 159, 157, 169, 161, 159, 172, 164, 161, 157, 152, 148, 151, 146, 140, 146, 141, 135, 145, 140, 134, 150, 143, 137, 153, 146, 140, 152, 145, 139, 150, 143, 137, 153, 144, 139, 153, 144, 139, 152, 143, 138, 153, 144, 139, 152, 143, 138, 148, 139, 134, 142, 133, 128, 137, 128, 123, 149, 140, 133, 152, 143, 136, 157, 148, 141, 162, 153, 146, 168, 159, 154, 173, 164, 159, 176, 167, 162, 177, 168, 163, 179, 172, 166, 179, 172, 166, 178, 170, 167, 177, 169, 166, 174, 169, 165, 172, 167, 163, 170, 165, 161, 169, 164, 160, 180, 175, 171, 183, 178, 174, 189, 184, 180, 195, 190, 186, 200, 196, 193, 203, 199, 196, 205, 201, 200, 206, 202, 201, 203, 201, 204, 205, 203, 206, 207, 206, 211, 213, 212, 217, 218, 219, 224, 225, 226, 231, 231, 232, 237, 234, 235, 240, 232, 235, 242, 234, 237, 244, 236, 239, 244, 238, 241, 246, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 249, 244, 248, 249, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 229, 232, 237, 229, 232, 237, 230, 233, 238, 231, 234, 239, 232, 235, 240, 232, 235, 240, 233, 236, 241, 233, 236, 241, 234, 237, 242, 234, 237, 242, 234, 237, 242, 235, 238, 243, 235, 238, 243, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 235, 238, 243, 233, 236, 241, 232, 236, 239, 230, 230, 232, 225, 225, 225, 220, 220, 220, 216, 216, 216, 215, 214, 212, 213, 212, 210, 209, 208, 206, 206, 205, 203, 207, 206, 204, 205, 204, 202, 205, 201, 198, 202, 198, 195, 199, 195, 192, 198, 194, 191, 197, 193, 190, 197, 193, 190, 195, 190, 186, 193, 188, 184, 191, 186, 182, 190, 185, 181, 192, 184, 181, 190, 182, 179, 185, 178, 172, 182, 175, 169, 177, 168, 163, 171, 162, 157, 165, 156, 151, 162, 153, 148, 163, 154, 147, 162, 153, 146, 158, 149, 142, 154, 145, 138, 151, 140, 134, 150, 139, 133, 145, 134, 128, 138, 127, 121, 133, 124, 117, 136, 127, 120, 144, 137, 131, 152, 145, 139, 150, 145, 139, 145, 142, 135, 139, 136, 131, 133, 132, 127, 131, 130, 125, 130, 129, 124, 126, 127, 121, 124, 125, 119, 132, 131, 127, 129, 128, 124, 125, 124, 120, 124, 123, 119, 124, 123, 119, 124, 123, 119, 122, 121, 117, 120, 119, 115, 134, 130, 127, 137, 133, 130, 143, 139, 136, 150, 146, 143, 157, 152, 149, 160, 155, 152, 162, 157, 154, 162, 157, 154, 148, 145, 140, 147, 144, 137, 143, 138, 132, 135, 130, 124, 125, 120, 114, 121, 116, 110, 123, 118, 112, 126, 121, 115, 134, 127, 121, 131, 124, 118, 126, 119, 113, 120, 113, 107, 116, 109, 103, 117, 110, 104, 124, 115, 110, 128, 119, 114, 150, 141, 136, 153, 144, 139, 160, 151, 146, 160, 151, 146, 160, 151, 146, 161, 152, 147, 142, 133, 128, 108, 99, 94, 110, 101, 96, 106, 97, 92, 106, 97, 92, 113, 104, 99, 123, 114, 109, 126, 117, 112, 119, 110, 105, 111, 102, 97, 113, 103, 101, 130, 120, 118, 145, 135, 133, 155, 146, 141, 156, 145, 141, 143, 132, 126, 135, 124, 118, 143, 133, 124, 135, 125, 116, 130, 120, 111, 131, 118, 112, 131, 118, 112, 120, 106, 103, 104, 90, 87, 100, 85, 82, 104, 90, 87, 119, 105, 104, 116, 105, 103, 116, 105, 103, 113, 102, 100, 107, 93, 92, 99, 85, 84, 99, 85, 82, 104, 90, 87, 121, 107, 104, 115, 101, 98, 109, 94, 89, 107, 92, 87, 115, 100, 95, 121, 106, 101, 117, 102, 97, 108, 93, 88, 131, 118, 112, 132, 122, 113, 138, 125, 117, 142, 129, 121, 149, 136, 128, 153, 140, 131, 149, 135, 126, 140, 126, 117, 122, 109, 101, 97, 84, 76, 83, 70, 62, 95, 82, 74, 115, 104, 98, 123, 114, 109, 124, 115, 110, 123, 114, 109, 137, 126, 120, 143, 132, 126, 145, 134, 130, 119, 108, 104, 104, 90, 89, 139, 125, 124, 156, 142, 141, 123, 109, 108, 130, 116, 115, 123, 109, 108, 139, 125, 124, 120, 106, 103, 90, 79, 75, 107, 96, 92, 122, 111, 105, 116, 105, 99, 123, 114, 109, 137, 128, 123, 110, 100, 98, 106, 96, 94, 126, 116, 114, 136, 126, 124, 149, 139, 137, 152, 142, 140, 114, 106, 104, 147, 139, 137, 162, 154, 152, 147, 139, 137, 134, 129, 126, 144, 139, 136, 145, 139, 139, 127, 122, 119, 166, 158, 156, 168, 160, 157, 165, 157, 154, 164, 156, 153, 158, 150, 148, 185, 177, 175, 165, 160, 157, 158, 153, 150, 187, 182, 179, 212, 207, 204, 181, 175, 175, 187, 181, 181, 201, 197, 196, 193, 189, 188, 210, 206, 205, 207, 206, 204, 208, 207, 205, 210, 210, 208, 220, 220, 218, 230, 230, 228, 235, 235, 233, 235, 235, 233, 238, 238, 236, 244, 244, 242, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 247, 247, 245, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 249, 249, 247, 249, 249, 247, 249, 249, 247, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 247, 247, 245, 246, 246, 244, 244, 244, 242, 241, 241, 239, 237, 237, 235, 234, 234, 232, 232, 232, 230, 223, 221, 222, 212, 210, 211, 198, 196, 197, 196, 194, 195, 209, 205, 204, 216, 212, 211, 207, 203, 202, 191, 187, 186, 199, 195, 194, 210, 206, 205, 213, 208, 205, 204, 199, 196, 203, 198, 195, 209, 204, 201, 205, 200, 197, 193, 188, 185, 205, 200, 197, 206, 201, 198, 194, 189, 186, 198, 193, 190, 199, 194, 191, 194, 189, 186, 199, 194, 191, 192, 187, 184, 168, 163, 160, 186, 181, 178, 181, 176, 173, 185, 180, 177, 195, 190, 187, 189, 184, 181, 180, 175, 172, 167, 162, 159, 177, 169, 166, 174, 167, 161, 177, 168, 159, 177, 170, 160, 172, 168, 159, 173, 168, 162, 170, 163, 157, 156, 145, 139, 105, 88, 80, 62, 44, 34, 39, 26, 18, 18, 8, 0, 12, 2, 0, 33, 17, 1, 50, 24, 0, 78, 39, 0, 121, 68, 2, 129, 66, 0, 155, 87, 6, 191, 120, 30, 209, 138, 34, 211, 144, 31, 208, 147, 32, 199, 145, 37, 203, 156, 66, 201, 163, 82, 195, 170, 90, 179, 171, 88, 161, 172, 78, 140, 170, 72, 118, 164, 66, 105, 155, 56, 97, 144, 40, 111, 155, 60, 93, 133, 62, 41, 73, 26, 0, 19, 0, 0, 4, 0, 1, 6, 12, 9, 7, 20, 2, 0, 10, 1, 0, 9, 0, 0, 7, 0, 4, 10, 1, 9, 12, 4, 9, 13, 0, 4, 7, 0, 1, 2, 1, 7, 7, 1, 7, 5, 6, 6, 6, 9, 7, 8, 10, 8, 9, 11, 11, 13, 9, 13, 16, 6, 15, 22, 3, 19, 32, 8, 27, 41, 10, 33, 47, 11, 34, 40, 30, 53, 45, 77, 97, 72, 109, 127, 87, 109, 125, 76, 116, 132, 83, 129, 138, 85, 154, 145, 90, 172, 147, 90, 184, 146, 84, 195, 151, 88, 213, 172, 106, 231, 194, 126, 224, 191, 120, 236, 206, 134, 245, 209, 135, 236, 194, 118, 242, 193, 116, 255, 206, 126, 242, 184, 102, 186, 137, 70, 106, 84, 45, 108, 100, 81, 125, 117, 104, 132, 125, 119, 125, 119, 121, 119, 117, 122, 134, 133, 138, 156, 156, 158, 179, 179, 177, 190, 191, 185, 181, 181, 171, 174, 170, 159, 193, 186, 178, 213, 204, 199, 210, 199, 197, 198, 188, 186, 193, 188, 184, 186, 183, 178, 181, 176, 170, 175, 170, 164, 163, 156, 148, 149, 142, 134, 150, 143, 133, 160, 153, 143, 167, 160, 150, 163, 156, 146, 162, 155, 147, 156, 149, 141, 151, 146, 140, 165, 160, 154, 172, 169, 164, 163, 160, 155, 155, 150, 146, 157, 152, 148, 163, 158, 154, 165, 160, 156, 167, 162, 158, 174, 169, 165, 167, 159, 156, 142, 134, 131, 162, 154, 151, 139, 131, 128, 114, 106, 103, 112, 104, 101, 137, 127, 125, 163, 153, 151, 169, 159, 157, 161, 151, 149, 152, 144, 142, 161, 153, 151, 170, 162, 160, 170, 162, 160, 163, 155, 153, 159, 151, 149, 162, 154, 152, 167, 159, 157, 158, 150, 148, 161, 153, 151, 165, 157, 155, 167, 159, 157, 167, 159, 157, 167, 159, 157, 169, 161, 159, 171, 163, 160, 162, 157, 153, 161, 156, 150, 159, 154, 148, 154, 149, 143, 151, 144, 138, 149, 142, 136, 149, 142, 136, 151, 144, 138, 159, 150, 145, 161, 152, 147, 161, 152, 147, 158, 149, 144, 151, 142, 137, 145, 136, 131, 140, 131, 126, 139, 130, 125, 154, 145, 138, 155, 146, 139, 158, 149, 142, 161, 152, 145, 164, 155, 150, 166, 157, 152, 168, 159, 154, 169, 160, 155, 163, 156, 150, 166, 159, 153, 172, 164, 161, 177, 169, 166, 179, 174, 170, 180, 175, 171, 179, 174, 170, 179, 174, 170, 183, 178, 174, 185, 180, 176, 189, 184, 180, 194, 189, 185, 197, 193, 190, 200, 196, 193, 202, 198, 197, 202, 198, 197, 203, 201, 204, 205, 203, 206, 207, 206, 211, 212, 211, 216, 218, 219, 224, 224, 225, 230, 230, 231, 236, 233, 234, 239, 232, 235, 242, 233, 236, 243, 236, 239, 244, 238, 241, 246, 239, 242, 247, 240, 243, 248, 241, 244, 249, 240, 243, 248, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 249, 244, 248, 249, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 229, 232, 237, 229, 232, 237, 230, 233, 238, 231, 234, 239, 232, 235, 240, 232, 235, 240, 233, 236, 241, 233, 236, 241, 234, 237, 242, 235, 238, 243, 235, 238, 243, 235, 238, 243, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 235, 238, 243, 233, 236, 241, 232, 236, 239, 228, 228, 230, 224, 224, 224, 219, 219, 219, 216, 216, 216, 215, 214, 212, 213, 212, 210, 210, 209, 207, 207, 206, 204, 207, 206, 204, 205, 204, 202, 205, 201, 198, 202, 198, 195, 199, 195, 192, 198, 194, 191, 197, 193, 190, 197, 193, 190, 195, 190, 186, 193, 188, 184, 191, 186, 182, 190, 185, 181, 192, 184, 181, 190, 182, 179, 185, 178, 172, 182, 175, 169, 178, 169, 164, 170, 161, 156, 159, 150, 145, 152, 143, 138, 150, 141, 134, 152, 143, 136, 154, 145, 138, 155, 146, 139, 143, 132, 126, 145, 134, 128, 144, 133, 127, 137, 128, 121, 133, 124, 117, 137, 128, 121, 148, 141, 135, 159, 152, 146, 166, 161, 155, 166, 161, 155, 164, 161, 156, 162, 159, 154, 155, 154, 149, 144, 143, 138, 131, 132, 126, 122, 123, 117, 136, 135, 131, 136, 135, 131, 138, 137, 133, 139, 138, 134, 140, 139, 135, 136, 135, 131, 130, 129, 125, 125, 124, 120, 129, 125, 122, 127, 123, 120, 123, 119, 116, 121, 117, 114, 125, 120, 117, 134, 129, 126, 147, 142, 139, 157, 152, 148, 141, 138, 131, 134, 131, 124, 131, 126, 120, 138, 133, 127, 151, 146, 140, 158, 153, 147, 154, 149, 143, 147, 142, 136, 148, 141, 135, 142, 135, 129, 133, 126, 120, 125, 118, 112, 122, 115, 109, 129, 122, 116, 141, 132, 127, 150, 141, 136, 143, 134, 129, 150, 141, 136, 161, 152, 147, 147, 138, 133, 124, 115, 110, 135, 126, 121, 145, 136, 131, 123, 114, 109, 106, 97, 92, 125, 116, 111, 139, 130, 125, 137, 128, 123, 134, 125, 120, 141, 132, 127, 150, 141, 136, 153, 144, 139, 147, 138, 133, 140, 131, 126, 133, 124, 117, 131, 122, 115, 133, 122, 116, 129, 119, 110, 129, 119, 110, 134, 124, 115, 130, 120, 111, 119, 109, 100, 116, 103, 97, 122, 109, 103, 128, 114, 111, 125, 111, 108, 118, 104, 101, 113, 102, 98, 116, 105, 103, 109, 98, 96, 102, 91, 89, 95, 84, 82, 87, 76, 74, 82, 71, 69, 87, 73, 70, 95, 81, 78, 80, 66, 63, 91, 77, 74, 98, 83, 78, 101, 86, 81, 114, 99, 94, 128, 113, 108, 125, 110, 105, 111, 96, 91, 118, 105, 97, 121, 108, 100, 118, 104, 95, 110, 96, 87, 116, 102, 93, 132, 118, 109, 142, 125, 115, 140, 123, 113, 141, 127, 118, 126, 112, 103, 114, 100, 91, 115, 100, 93, 121, 108, 100, 129, 116, 110, 139, 126, 120, 147, 136, 130, 152, 141, 135, 119, 108, 102, 140, 129, 125, 138, 127, 123, 79, 68, 66, 87, 76, 74, 138, 127, 125, 138, 127, 125, 129, 118, 116, 110, 99, 97, 133, 122, 120, 140, 129, 127, 103, 92, 88, 94, 83, 79, 115, 104, 100, 123, 112, 106, 123, 114, 109, 126, 117, 112, 111, 101, 99, 126, 116, 114, 142, 132, 130, 133, 123, 121, 142, 132, 130, 152, 142, 140, 126, 118, 116, 127, 119, 117, 158, 150, 148, 156, 148, 146, 135, 130, 127, 137, 132, 129, 136, 130, 130, 144, 139, 136, 157, 149, 147, 168, 160, 157, 169, 161, 158, 170, 162, 159, 179, 171, 169, 189, 181, 179, 159, 154, 151, 132, 127, 124, 172, 167, 164, 208, 203, 200, 181, 175, 175, 183, 177, 177, 200, 196, 195, 194, 190, 189, 210, 206, 205, 208, 207, 205, 212, 211, 209, 212, 212, 210, 219, 219, 217, 230, 230, 228, 236, 236, 234, 236, 236, 234, 239, 239, 237, 244, 244, 242, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 247, 247, 245, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 248, 248, 246, 248, 248, 246, 248, 248, 246, 247, 247, 245, 246, 246, 244, 246, 246, 244, 246, 246, 244, 245, 245, 243, 243, 243, 241, 241, 241, 239, 238, 238, 236, 237, 237, 235, 236, 234, 235, 224, 222, 223, 209, 207, 208, 204, 202, 203, 214, 210, 209, 221, 217, 216, 212, 208, 207, 199, 195, 194, 195, 191, 190, 211, 207, 206, 216, 211, 208, 204, 199, 196, 204, 199, 196, 214, 209, 206, 209, 204, 201, 192, 187, 184, 192, 187, 184, 209, 204, 201, 203, 198, 195, 198, 193, 190, 205, 200, 197, 198, 193, 190, 192, 187, 184, 199, 194, 191, 177, 172, 169, 194, 189, 186, 182, 177, 174, 171, 166, 163, 184, 179, 176, 191, 186, 183, 184, 179, 176, 178, 173, 170, 189, 181, 179, 188, 181, 175, 186, 179, 169, 181, 174, 164, 172, 169, 160, 170, 165, 159, 166, 157, 152, 158, 145, 139, 111, 92, 85, 67, 50, 42, 44, 33, 27, 22, 15, 7, 10, 3, 0, 25, 12, 0, 46, 19, 0, 79, 38, 0, 135, 78, 11, 144, 77, 0, 169, 97, 13, 200, 125, 32, 208, 136, 28, 200, 130, 16, 197, 134, 20, 201, 144, 37, 202, 153, 61, 204, 166, 83, 201, 173, 90, 184, 172, 86, 168, 174, 78, 156, 177, 76, 135, 170, 68, 116, 159, 54, 112, 155, 48, 108, 152, 54, 106, 147, 68, 89, 127, 66, 46, 76, 38, 0, 21, 0, 0, 4, 0, 3, 6, 11, 6, 4, 15, 3, 0, 13, 0, 0, 12, 0, 1, 13, 0, 5, 11, 1, 6, 9, 3, 8, 4, 5, 10, 3, 3, 5, 0, 4, 6, 1, 6, 6, 4, 8, 8, 8, 9, 10, 12, 8, 13, 17, 5, 16, 20, 1, 18, 26, 13, 37, 47, 12, 40, 52, 14, 44, 55, 24, 53, 59, 50, 77, 70, 86, 109, 89, 106, 125, 93, 108, 123, 80, 115, 129, 76, 129, 134, 78, 153, 140, 88, 175, 148, 95, 190, 152, 90, 200, 157, 89, 211, 171, 99, 222, 186, 112, 219, 184, 116, 239, 202, 132, 244, 202, 128, 233, 186, 108, 237, 186, 105, 245, 192, 114, 208, 155, 85, 141, 100, 46, 113, 94, 64, 100, 93, 77, 105, 96, 87, 116, 111, 107, 116, 110, 114, 104, 99, 105, 124, 122, 127, 166, 166, 166, 181, 182, 177, 185, 185, 177, 176, 174, 162, 176, 174, 162, 204, 197, 189, 218, 211, 205, 206, 194, 194, 188, 178, 177, 186, 181, 177, 182, 179, 174, 183, 178, 172, 177, 172, 166, 156, 149, 141, 138, 131, 123, 151, 144, 134, 179, 172, 162, 149, 142, 132, 151, 144, 134, 164, 157, 149, 174, 167, 159, 172, 167, 161, 174, 169, 163, 167, 164, 159, 152, 149, 144, 144, 139, 135, 132, 127, 123, 149, 144, 140, 172, 167, 163, 173, 168, 164, 178, 173, 169, 178, 170, 167, 159, 151, 148, 136, 128, 125, 114, 106, 103, 116, 108, 105, 148, 140, 137, 168, 158, 156, 155, 145, 143, 140, 130, 128, 141, 131, 129, 169, 161, 159, 165, 157, 155, 161, 153, 151, 162, 154, 152, 167, 159, 157, 170, 162, 160, 171, 163, 161, 169, 161, 159, 160, 152, 150, 164, 156, 154, 168, 160, 158, 171, 163, 161, 169, 161, 159, 166, 158, 156, 162, 154, 152, 159, 151, 148, 164, 159, 153, 164, 159, 153, 162, 157, 151, 159, 154, 148, 157, 150, 144, 154, 147, 141, 151, 144, 138, 151, 144, 138, 156, 147, 142, 157, 148, 143, 156, 147, 142, 151, 142, 137, 147, 138, 133, 149, 140, 135, 157, 148, 143, 164, 155, 150, 150, 141, 134, 150, 141, 134, 151, 142, 135, 153, 144, 137, 155, 146, 141, 157, 148, 143, 159, 150, 145, 160, 151, 146, 167, 160, 154, 168, 161, 155, 170, 162, 159, 171, 163, 160, 168, 163, 159, 167, 162, 158, 165, 160, 156, 164, 159, 155, 176, 171, 167, 178, 173, 169, 182, 177, 173, 186, 181, 177, 189, 185, 182, 193, 189, 186, 196, 192, 191, 197, 193, 192, 203, 201, 204, 205, 203, 206, 207, 206, 211, 212, 211, 216, 217, 218, 223, 223, 224, 229, 228, 229, 234, 231, 232, 237, 232, 235, 242, 233, 236, 243, 235, 238, 243, 237, 240, 245, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 249, 244, 248, 249, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 229, 232, 237, 229, 232, 237, 230, 233, 238, 231, 234, 239, 232, 235, 240, 232, 235, 240, 233, 236, 241, 233, 236, 241, 235, 238, 243, 235, 238, 243, 235, 238, 243, 236, 239, 244, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 235, 238, 243, 233, 236, 241, 232, 236, 239, 228, 228, 230, 224, 224, 224, 219, 219, 219, 216, 216, 216, 216, 215, 213, 214, 213, 211, 211, 210, 208, 208, 207, 205, 207, 206, 204, 205, 204, 202, 205, 201, 198, 202, 198, 195, 199, 195, 192, 198, 194, 191, 197, 193, 190, 197, 193, 190, 195, 190, 186, 193, 188, 184, 191, 186, 182, 190, 185, 181, 192, 184, 181, 190, 182, 179, 185, 178, 172, 182, 175, 169, 181, 172, 167, 177, 168, 163, 170, 161, 156, 165, 156, 151, 161, 152, 145, 158, 149, 142, 156, 147, 140, 155, 146, 139, 152, 143, 136, 154, 145, 138, 153, 144, 137, 145, 136, 129, 136, 127, 122, 132, 125, 119, 137, 130, 124, 144, 137, 131, 156, 151, 145, 160, 155, 149, 166, 163, 158, 173, 170, 165, 174, 173, 168, 170, 169, 164, 162, 161, 156, 156, 155, 150, 156, 155, 150, 149, 148, 143, 140, 139, 134, 135, 134, 129, 135, 134, 129, 137, 136, 131, 142, 139, 134, 143, 140, 135, 139, 136, 131, 132, 129, 124, 120, 117, 112, 109, 106, 101, 106, 101, 97, 112, 107, 103, 125, 120, 116, 135, 130, 126, 134, 129, 123, 131, 126, 120, 133, 128, 122, 146, 141, 135, 162, 157, 151, 169, 164, 158, 164, 157, 151, 155, 148, 142, 154, 147, 141, 155, 148, 142, 154, 147, 141, 153, 146, 140, 154, 145, 140, 156, 147, 142, 161, 152, 147, 166, 157, 152, 149, 140, 135, 155, 146, 141, 160, 151, 146, 135, 126, 121, 104, 95, 90, 118, 109, 104, 140, 131, 126, 130, 121, 116, 116, 107, 102, 140, 131, 126, 153, 144, 139, 139, 130, 125, 124, 115, 110, 129, 120, 115, 145, 136, 131, 154, 145, 138, 138, 127, 121, 127, 117, 108, 119, 109, 100, 117, 107, 98, 116, 106, 97, 118, 108, 99, 126, 116, 107, 132, 122, 113, 120, 110, 101, 110, 100, 91, 102, 91, 85, 105, 94, 88, 113, 102, 96, 116, 105, 99, 113, 102, 98, 111, 100, 96, 111, 100, 98, 108, 98, 96, 107, 97, 95, 105, 95, 93, 95, 85, 83, 80, 70, 68, 71, 60, 56, 69, 58, 54, 72, 59, 53, 89, 76, 70, 95, 82, 76, 87, 74, 68, 88, 73, 66, 98, 83, 76, 96, 81, 74, 83, 68, 61, 89, 74, 67, 94, 79, 72, 88, 73, 66, 73, 58, 51, 70, 56, 47, 84, 70, 61, 100, 86, 77, 105, 91, 82, 123, 109, 100, 138, 124, 115, 154, 139, 132, 154, 139, 132, 140, 125, 118, 131, 116, 109, 139, 124, 117, 153, 140, 134, 146, 133, 127, 144, 130, 127, 130, 119, 117, 128, 117, 115, 130, 119, 117, 109, 99, 97, 102, 92, 90, 125, 115, 113, 131, 121, 119, 109, 99, 97, 108, 98, 96, 134, 123, 121, 139, 128, 126, 124, 113, 109, 118, 104, 101, 109, 98, 94, 121, 112, 107, 134, 125, 120, 128, 118, 116, 142, 132, 130, 148, 138, 136, 135, 125, 123, 136, 126, 124, 130, 120, 118, 131, 123, 121, 124, 116, 114, 161, 153, 151, 163, 155, 153, 134, 129, 126, 137, 132, 129, 147, 141, 141, 157, 152, 149, 162, 154, 152, 163, 155, 152, 157, 149, 146, 154, 146, 143, 176, 168, 166, 187, 179, 177, 168, 163, 160, 125, 120, 117, 150, 145, 142, 197, 192, 189, 176, 170, 170, 181, 175, 175, 202, 198, 197, 193, 189, 188, 208, 204, 203, 210, 209, 207, 215, 214, 212, 213, 213, 211, 219, 219, 217, 229, 229, 227, 236, 236, 234, 237, 237, 235, 239, 239, 237, 243, 243, 241, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 247, 247, 245, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 250, 250, 248, 250, 250, 248, 249, 249, 247, 249, 249, 247, 249, 249, 247, 248, 248, 246, 248, 248, 246, 248, 248, 246, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 244, 244, 242, 242, 242, 240, 240, 240, 238, 239, 239, 237, 240, 238, 239, 235, 233, 234, 225, 223, 224, 216, 214, 215, 215, 214, 212, 217, 216, 214, 216, 212, 211, 209, 205, 204, 194, 190, 189, 211, 207, 206, 215, 211, 208, 204, 200, 197, 205, 200, 197, 216, 211, 208, 212, 207, 204, 195, 190, 187, 177, 172, 169, 203, 198, 195, 207, 202, 199, 198, 193, 190, 207, 202, 199, 202, 197, 194, 189, 184, 181, 200, 195, 192, 189, 184, 181, 199, 194, 191, 186, 181, 178, 170, 165, 162, 182, 177, 174, 185, 180, 177, 178, 173, 170, 191, 186, 183, 190, 182, 180, 194, 186, 183, 190, 183, 173, 182, 178, 166, 177, 175, 163, 172, 168, 159, 164, 153, 149, 158, 143, 138, 115, 96, 90, 68, 50, 46, 42, 34, 31, 19, 16, 11, 6, 3, 0, 21, 9, 0, 47, 17, 0, 85, 40, 0, 135, 77, 13, 154, 87, 8, 182, 108, 21, 207, 131, 35, 212, 139, 28, 202, 131, 15, 205, 140, 24, 219, 161, 53, 208, 157, 65, 212, 170, 84, 210, 178, 93, 197, 178, 86, 186, 181, 81, 179, 186, 82, 163, 182, 75, 143, 172, 64, 132, 171, 62, 111, 156, 53, 104, 150, 60, 105, 151, 76, 85, 124, 67, 38, 70, 29, 5, 25, 0, 0, 8, 0, 5, 6, 10, 2, 0, 11, 2, 0, 14, 4, 3, 17, 1, 1, 11, 0, 1, 4, 0, 1, 0, 4, 7, 0, 3, 4, 0, 3, 4, 0, 5, 5, 7, 6, 7, 12, 5, 10, 16, 3, 13, 22, 0, 17, 25, 0, 21, 28, 14, 44, 54, 6, 40, 49, 11, 48, 54, 38, 72, 73, 68, 98, 90, 86, 111, 92, 99, 118, 88, 115, 128, 85, 123, 132, 77, 134, 132, 75, 158, 138, 88, 186, 153, 102, 206, 167, 102, 214, 172, 98, 214, 176, 95, 216, 179, 98, 228, 188, 118, 242, 197, 129, 250, 198, 123, 248, 193, 113, 246, 191, 108, 226, 174, 98, 171, 126, 69, 116, 82, 44, 146, 128, 108, 124, 115, 106, 108, 98, 96, 108, 102, 102, 119, 113, 117, 120, 115, 121, 136, 134, 137, 172, 171, 169, 182, 181, 176, 194, 194, 184, 199, 197, 185, 197, 195, 183, 197, 190, 182, 186, 179, 173, 185, 173, 173, 195, 185, 184, 183, 178, 174, 174, 171, 166, 178, 173, 167, 188, 183, 177, 185, 178, 170, 165, 158, 150, 155, 148, 140, 158, 151, 143, 175, 168, 160, 166, 159, 151, 177, 170, 162, 190, 183, 175, 176, 171, 165, 155, 150, 144, 139, 136, 131, 129, 126, 121, 147, 142, 138, 139, 134, 130, 153, 148, 144, 164, 159, 155, 153, 148, 144, 154, 149, 145, 159, 151, 148, 143, 135, 132, 155, 147, 144, 157, 149, 146, 164, 156, 153, 167, 159, 156, 155, 145, 143, 143, 133, 131, 152, 142, 140, 173, 163, 161, 168, 160, 157, 166, 158, 155, 166, 158, 155, 169, 161, 158, 173, 165, 162, 174, 166, 163, 171, 163, 160, 167, 159, 156, 174, 166, 163, 173, 165, 162, 173, 165, 162, 173, 165, 162, 172, 164, 161, 171, 163, 160, 168, 160, 157, 166, 158, 155, 169, 164, 158, 165, 160, 154, 163, 158, 152, 165, 160, 154, 170, 163, 157, 169, 162, 156, 163, 156, 150, 157, 150, 144, 155, 146, 141, 156, 147, 142, 155, 146, 141, 151, 142, 137, 149, 140, 135, 153, 144, 139, 162, 153, 148, 170, 161, 156, 145, 136, 129, 145, 136, 129, 145, 136, 129, 147, 138, 131, 149, 140, 135, 153, 144, 139, 156, 147, 142, 158, 149, 144, 163, 156, 150, 163, 156, 150, 163, 155, 152, 165, 157, 154, 165, 160, 156, 169, 164, 160, 173, 168, 164, 175, 170, 166, 171, 166, 162, 173, 168, 164, 177, 172, 168, 181, 176, 172, 186, 182, 179, 191, 187, 184, 196, 192, 191, 198, 194, 193, 203, 201, 204, 205, 203, 206, 207, 206, 211, 211, 210, 215, 216, 217, 222, 222, 223, 228, 227, 228, 233, 229, 230, 235, 231, 234, 241, 233, 236, 243, 235, 238, 243, 237, 240, 245, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 241, 245, 248, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 248, 243, 247, 248, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 229, 232, 237, 229, 232, 237, 230, 233, 238, 231, 234, 239, 232, 235, 240, 232, 235, 240, 233, 236, 241, 233, 236, 241, 235, 238, 243, 235, 238, 243, 236, 239, 244, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 235, 238, 243, 233, 236, 241, 232, 236, 239, 228, 228, 230, 225, 225, 225, 220, 220, 220, 217, 217, 217, 217, 216, 214, 215, 214, 212, 212, 211, 209, 210, 209, 207, 207, 206, 204, 205, 204, 202, 205, 201, 198, 202, 198, 195, 199, 195, 192, 198, 194, 191, 197, 193, 190, 197, 193, 190, 195, 190, 186, 193, 188, 184, 191, 186, 182, 190, 185, 181, 192, 184, 181, 190, 182, 179, 185, 178, 172, 182, 175, 169, 174, 165, 160, 177, 168, 163, 179, 170, 165, 179, 170, 165, 172, 163, 156, 161, 152, 145, 149, 140, 133, 142, 133, 126, 140, 131, 124, 144, 135, 128, 146, 137, 130, 146, 137, 130, 143, 136, 130, 143, 136, 130, 147, 140, 134, 152, 145, 139, 152, 147, 141, 152, 147, 141, 154, 151, 146, 158, 155, 150, 160, 159, 154, 160, 159, 154, 156, 155, 150, 153, 152, 147, 153, 152, 147, 148, 147, 142, 142, 141, 136, 138, 137, 132, 135, 134, 129, 132, 131, 126, 130, 127, 122, 127, 124, 119, 131, 128, 123, 127, 124, 119, 123, 120, 115, 122, 119, 114, 126, 121, 117, 133, 128, 124, 140, 135, 131, 145, 140, 136, 146, 141, 135, 151, 146, 140, 157, 152, 146, 157, 152, 146, 151, 146, 140, 144, 139, 133, 141, 134, 128, 140, 133, 127, 135, 128, 122, 144, 137, 131, 156, 149, 143, 163, 156, 150, 164, 155, 150, 159, 150, 145, 152, 143, 138, 148, 139, 134, 149, 140, 135, 148, 139, 134, 142, 133, 128, 122, 113, 108, 108, 99, 94, 116, 107, 102, 122, 113, 108, 111, 102, 97, 129, 120, 115, 140, 131, 126, 141, 132, 127, 128, 119, 114, 121, 112, 107, 129, 120, 115, 140, 131, 126, 145, 136, 129, 125, 115, 106, 126, 116, 106, 136, 126, 116, 139, 129, 119, 126, 116, 106, 119, 109, 99, 124, 114, 105, 126, 116, 107, 121, 111, 102, 120, 109, 103, 115, 104, 98, 106, 95, 89, 98, 87, 81, 95, 84, 78, 98, 87, 83, 102, 91, 87, 106, 95, 93, 102, 92, 90, 101, 90, 88, 100, 90, 88, 97, 86, 84, 87, 76, 72, 81, 70, 66, 81, 70, 66, 106, 93, 87, 111, 98, 92, 100, 87, 81, 73, 60, 54, 57, 42, 35, 55, 40, 33, 53, 38, 31, 44, 29, 22, 41, 28, 22, 49, 36, 30, 53, 40, 34, 48, 35, 29, 44, 31, 23, 50, 37, 29, 63, 50, 42, 71, 58, 50, 84, 71, 63, 82, 69, 61, 85, 72, 66, 99, 86, 80, 118, 105, 99, 132, 119, 113, 136, 123, 117, 133, 120, 114, 139, 125, 122, 152, 138, 135, 141, 130, 128, 121, 110, 108, 118, 108, 106, 123, 113, 111, 116, 108, 105, 109, 101, 98, 115, 107, 104, 123, 115, 112, 116, 106, 104, 127, 117, 115, 146, 135, 133, 140, 129, 127, 131, 117, 114, 115, 101, 98, 113, 102, 98, 137, 128, 123, 138, 128, 126, 142, 132, 130, 146, 136, 134, 146, 136, 134, 148, 138, 136, 127, 117, 115, 132, 124, 122, 144, 136, 134, 174, 166, 164, 168, 160, 158, 130, 125, 122, 144, 139, 136, 173, 167, 167, 158, 153, 150, 152, 144, 142, 148, 140, 137, 154, 146, 143, 155, 147, 144, 177, 169, 167, 186, 178, 176, 182, 177, 174, 120, 115, 112, 143, 138, 135, 192, 187, 184, 174, 168, 168, 184, 178, 178, 205, 201, 200, 190, 186, 185, 203, 199, 198, 213, 212, 210, 217, 216, 214, 214, 214, 212, 217, 217, 215, 227, 227, 225, 235, 235, 233, 237, 237, 235, 239, 239, 237, 242, 242, 240, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 247, 247, 245, 248, 248, 246, 249, 249, 247, 249, 249, 247, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 250, 250, 248, 250, 250, 248, 250, 250, 248, 249, 249, 247, 249, 249, 247, 249, 249, 247, 248, 248, 246, 248, 248, 246, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 244, 244, 242, 242, 242, 240, 241, 241, 239, 240, 240, 238, 237, 235, 236, 239, 237, 238, 235, 233, 234, 224, 222, 223, 217, 216, 214, 215, 214, 212, 217, 213, 212, 215, 211, 210, 198, 194, 193, 209, 205, 204, 213, 209, 206, 206, 202, 199, 207, 202, 199, 215, 210, 207, 213, 208, 205, 201, 196, 193, 173, 168, 165, 196, 191, 188, 208, 203, 200, 197, 192, 189, 203, 198, 195, 205, 200, 197, 190, 185, 182, 198, 193, 190, 194, 189, 186, 202, 197, 194, 193, 188, 185, 177, 172, 169, 191, 186, 183, 190, 185, 182, 172, 167, 164, 191, 186, 183, 183, 174, 175, 189, 181, 179, 182, 178, 169, 176, 174, 161, 179, 177, 165, 174, 170, 159, 164, 151, 145, 159, 141, 139, 109, 90, 86, 58, 43, 40, 31, 27, 24, 13, 13, 11, 2, 3, 0, 17, 7, 0, 44, 16, 0, 85, 41, 2, 139, 81, 18, 164, 99, 19, 189, 118, 28, 208, 135, 33, 217, 141, 29, 210, 138, 20, 214, 147, 32, 231, 171, 61, 220, 167, 71, 220, 175, 84, 218, 181, 92, 211, 185, 90, 205, 187, 85, 198, 190, 83, 187, 189, 79, 172, 185, 77, 148, 180, 73, 130, 172, 72, 110, 157, 63, 98, 148, 63, 95, 143, 69, 82, 124, 61, 47, 79, 32, 15, 36, 5, 0, 6, 0, 0, 1, 0, 0, 0, 7, 5, 5, 17, 7, 7, 17, 0, 1, 6, 0, 1, 0, 4, 6, 1, 1, 3, 0, 2, 3, 5, 4, 4, 12, 3, 7, 18, 3, 10, 26, 1, 15, 28, 0, 19, 30, 0, 23, 31, 2, 35, 40, 0, 38, 39, 16, 52, 50, 52, 85, 76, 82, 110, 95, 88, 111, 85, 99, 114, 81, 126, 135, 90, 141, 142, 84, 150, 140, 78, 171, 144, 91, 199, 162, 107, 223, 180, 112, 230, 187, 108, 227, 187, 100, 225, 185, 98, 245, 199, 124, 253, 201, 128, 255, 201, 121, 255, 204, 121, 253, 197, 114, 205, 157, 85, 146, 108, 63, 111, 83, 59, 146, 129, 119, 146, 136, 134, 121, 112, 113, 100, 94, 96, 120, 114, 118, 145, 140, 144, 155, 153, 154, 167, 166, 162, 191, 191, 183, 192, 192, 180, 191, 189, 176, 192, 190, 178, 196, 189, 181, 187, 179, 176, 188, 178, 177, 203, 193, 194, 187, 182, 179, 185, 182, 177, 188, 183, 177, 188, 183, 177, 177, 170, 164, 160, 153, 145, 156, 149, 141, 163, 156, 148, 187, 180, 172, 170, 163, 155, 172, 165, 157, 180, 173, 165, 163, 158, 152, 144, 139, 133, 143, 140, 135, 150, 147, 142, 123, 118, 114, 142, 137, 133, 155, 150, 146, 149, 144, 140, 147, 142, 138, 168, 163, 159, 180, 172, 169, 166, 158, 155, 164, 156, 153, 170, 162, 159, 156, 148, 145, 130, 122, 119, 127, 117, 115, 148, 138, 136, 159, 149, 147, 153, 143, 141, 151, 143, 140, 164, 156, 153, 177, 169, 166, 181, 173, 170, 174, 166, 163, 164, 156, 153, 161, 153, 150, 161, 153, 150, 171, 163, 160, 166, 158, 155, 160, 152, 149, 159, 151, 148, 162, 154, 151, 168, 160, 157, 172, 164, 161, 174, 166, 163, 161, 156, 150, 158, 153, 147, 158, 153, 147, 163, 158, 152, 171, 164, 158, 171, 164, 158, 164, 157, 151, 157, 150, 144, 160, 151, 146, 161, 152, 147, 161, 152, 147, 158, 149, 144, 154, 145, 140, 152, 143, 138, 152, 143, 138, 153, 144, 139, 156, 147, 140, 156, 147, 140, 156, 147, 140, 157, 148, 141, 159, 150, 145, 164, 155, 150, 168, 159, 154, 170, 161, 156, 166, 159, 153, 166, 159, 153, 166, 158, 155, 168, 160, 157, 171, 166, 162, 177, 172, 168, 183, 178, 174, 187, 182, 178, 174, 169, 165, 176, 171, 167, 178, 173, 169, 183, 178, 174, 188, 184, 181, 194, 190, 187, 199, 195, 194, 202, 198, 197, 203, 201, 204, 204, 202, 205, 206, 205, 210, 211, 210, 215, 215, 216, 221, 220, 221, 226, 225, 226, 231, 228, 229, 234, 231, 234, 241, 232, 235, 242, 234, 237, 242, 237, 240, 245, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 241, 245, 248, 241, 245, 248, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 248, 243, 247, 248, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 229, 232, 237, 229, 232, 237, 230, 233, 238, 231, 234, 239, 232, 235, 240, 232, 235, 240, 233, 236, 241, 233, 236, 241, 235, 238, 243, 236, 239, 244, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 235, 238, 243, 233, 236, 241, 232, 236, 239, 229, 229, 231, 225, 225, 225, 221, 221, 221, 218, 218, 218, 218, 217, 215, 217, 216, 214, 214, 213, 211, 212, 211, 209, 207, 206, 204, 205, 204, 202, 205, 201, 198, 202, 198, 195, 199, 195, 192, 198, 194, 191, 197, 193, 190, 197, 193, 190, 195, 190, 186, 193, 188, 184, 191, 186, 182, 190, 185, 181, 192, 184, 181, 190, 182, 179, 185, 178, 172, 182, 175, 169, 171, 162, 157, 174, 165, 160, 177, 168, 163, 174, 165, 160, 165, 156, 149, 152, 143, 136, 140, 131, 124, 133, 124, 117, 129, 120, 115, 131, 122, 117, 133, 126, 120, 139, 132, 126, 146, 139, 133, 153, 146, 140, 158, 153, 147, 161, 156, 150, 175, 170, 166, 175, 170, 166, 173, 170, 165, 172, 169, 164, 169, 165, 162, 162, 158, 155, 153, 149, 146, 146, 143, 138, 141, 140, 135, 142, 142, 134, 143, 143, 135, 143, 143, 135, 141, 138, 131, 132, 129, 122, 120, 117, 110, 111, 108, 101, 109, 106, 99, 109, 106, 99, 113, 108, 102, 122, 117, 111, 134, 129, 123, 143, 138, 132, 147, 142, 136, 147, 142, 136, 144, 139, 133, 149, 144, 138, 151, 146, 140, 144, 139, 133, 133, 126, 120, 123, 116, 110, 123, 116, 110, 126, 119, 113, 130, 123, 117, 138, 131, 125, 149, 140, 135, 155, 146, 141, 153, 144, 139, 146, 137, 132, 139, 130, 125, 134, 125, 120, 131, 122, 117, 123, 114, 109, 98, 89, 84, 84, 75, 70, 97, 88, 83, 115, 106, 101, 126, 117, 112, 135, 126, 121, 147, 138, 133, 147, 138, 133, 143, 134, 129, 137, 128, 123, 137, 128, 123, 143, 134, 129, 150, 141, 136, 152, 143, 136, 160, 150, 140, 147, 135, 123, 142, 129, 120, 135, 122, 113, 117, 107, 98, 118, 108, 99, 132, 121, 115, 136, 125, 119, 125, 114, 108, 128, 117, 113, 125, 116, 111, 117, 108, 103, 111, 102, 97, 109, 100, 95, 111, 102, 97, 113, 102, 98, 112, 101, 97, 104, 93, 89, 100, 86, 83, 97, 86, 82, 98, 84, 81, 95, 81, 78, 96, 82, 79, 99, 86, 80, 85, 72, 66, 82, 69, 63, 69, 54, 49, 50, 35, 30, 42, 27, 22, 44, 29, 24, 43, 28, 23, 37, 24, 18, 28, 17, 13, 27, 17, 15, 30, 20, 18, 32, 22, 20, 28, 18, 16, 22, 12, 10, 21, 13, 10, 26, 18, 15, 16, 6, 4, 29, 19, 17, 40, 30, 28, 44, 34, 32, 55, 44, 40, 83, 72, 68, 122, 111, 107, 150, 139, 135, 160, 146, 145, 113, 99, 98, 122, 111, 109, 155, 144, 142, 123, 114, 109, 82, 73, 68, 104, 97, 91, 147, 142, 136, 115, 110, 104, 130, 123, 117, 125, 116, 111, 135, 126, 121, 137, 126, 124, 130, 119, 117, 143, 129, 128, 138, 124, 123, 121, 110, 106, 123, 114, 109, 122, 112, 110, 141, 131, 129, 143, 133, 131, 135, 125, 123, 148, 138, 136, 148, 138, 136, 137, 129, 127, 154, 146, 144, 169, 161, 159, 175, 167, 165, 128, 123, 120, 129, 124, 121, 180, 174, 174, 154, 149, 146, 132, 124, 122, 133, 125, 122, 163, 155, 152, 172, 164, 161, 184, 176, 174, 187, 179, 177, 198, 193, 190, 120, 115, 112, 155, 150, 147, 201, 196, 193, 179, 173, 173, 189, 183, 183, 208, 204, 203, 184, 180, 179, 196, 192, 191, 217, 216, 214, 219, 218, 216, 214, 214, 212, 216, 216, 214, 225, 225, 223, 234, 234, 232, 237, 237, 235, 238, 238, 236, 241, 241, 239, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 247, 247, 245, 248, 248, 246, 249, 249, 247, 249, 249, 247, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 250, 250, 248, 250, 250, 248, 250, 250, 248, 249, 249, 247, 249, 249, 247, 249, 249, 247, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 247, 247, 245, 246, 246, 244, 244, 244, 242, 242, 242, 240, 241, 241, 239, 237, 237, 237, 241, 241, 241, 239, 237, 238, 230, 228, 229, 222, 221, 219, 220, 219, 217, 217, 216, 214, 214, 213, 211, 202, 198, 197, 207, 203, 202, 209, 205, 202, 207, 203, 200, 208, 204, 201, 212, 208, 205, 213, 208, 205, 209, 204, 201, 183, 178, 175, 193, 188, 185, 210, 205, 202, 194, 189, 186, 193, 188, 185, 205, 200, 197, 193, 188, 185, 197, 192, 189, 193, 188, 185, 200, 195, 192, 190, 185, 182, 169, 164, 161, 193, 188, 185, 200, 195, 192, 171, 166, 163, 183, 178, 175, 183, 174, 175, 186, 178, 176, 172, 168, 159, 165, 163, 150, 174, 172, 159, 172, 165, 155, 158, 143, 138, 152, 132, 131, 109, 88, 87, 56, 40, 40, 28, 26, 27, 13, 17, 18, 3, 8, 4, 15, 8, 0, 37, 10, 0, 75, 32, 0, 127, 75, 17, 156, 94, 17, 176, 109, 18, 195, 124, 20, 216, 143, 28, 222, 150, 30, 222, 155, 38, 232, 170, 59, 228, 174, 74, 222, 173, 80, 220, 177, 82, 218, 183, 83, 215, 184, 78, 205, 181, 71, 198, 180, 68, 189, 187, 78, 156, 178, 77, 142, 179, 83, 122, 169, 73, 103, 157, 63, 99, 155, 66, 99, 152, 70, 82, 125, 54, 56, 91, 33, 23, 45, 6, 3, 17, 0, 0, 3, 0, 0, 1, 4, 6, 9, 18, 7, 7, 17, 4, 5, 10, 6, 7, 11, 0, 5, 9, 0, 6, 14, 1, 7, 23, 3, 10, 29, 2, 12, 37, 2, 17, 38, 0, 22, 36, 0, 25, 32, 0, 28, 27, 14, 47, 38, 35, 67, 52, 64, 94, 70, 90, 113, 84, 95, 111, 74, 103, 115, 69, 128, 133, 79, 154, 146, 83, 164, 145, 79, 182, 150, 89, 206, 165, 101, 225, 179, 104, 232, 187, 104, 234, 193, 103, 239, 195, 106, 251, 203, 119, 255, 204, 121, 255, 200, 114, 255, 199, 115, 241, 182, 104, 182, 134, 72, 125, 92, 57, 108, 87, 70, 116, 101, 98, 137, 126, 130, 128, 119, 124, 110, 104, 108, 130, 124, 128, 153, 148, 152, 161, 160, 158, 173, 172, 167, 190, 190, 180, 186, 186, 174, 176, 174, 161, 178, 176, 164, 201, 194, 186, 209, 201, 198, 204, 194, 195, 201, 192, 193, 187, 182, 179, 192, 189, 184, 192, 187, 183, 174, 169, 163, 153, 146, 140, 145, 138, 132, 158, 151, 143, 175, 168, 160, 166, 159, 151, 160, 153, 145, 164, 157, 151, 165, 158, 152, 150, 145, 141, 146, 141, 137, 157, 154, 149, 165, 162, 157, 158, 153, 149, 175, 170, 166, 171, 166, 162, 153, 148, 144, 152, 147, 143, 156, 151, 147, 153, 145, 142, 147, 139, 136, 104, 96, 93, 120, 112, 109, 133, 125, 122, 144, 136, 133, 164, 154, 152, 175, 165, 163, 156, 146, 144, 125, 115, 113, 153, 145, 142, 163, 155, 152, 174, 166, 163, 175, 167, 164, 166, 158, 155, 158, 150, 147, 156, 148, 145, 158, 150, 147, 154, 146, 143, 151, 143, 140, 150, 142, 139, 154, 146, 143, 160, 152, 149, 164, 156, 153, 165, 157, 154, 163, 155, 152, 149, 144, 138, 153, 148, 142, 159, 154, 148, 163, 158, 152, 166, 159, 153, 164, 157, 151, 161, 154, 148, 158, 151, 145, 163, 154, 149, 160, 151, 146, 157, 148, 143, 155, 146, 141, 155, 146, 141, 154, 145, 140, 152, 143, 138, 150, 141, 136, 165, 156, 149, 164, 155, 148, 162, 153, 146, 162, 153, 146, 164, 155, 150, 167, 158, 153, 171, 162, 157, 174, 165, 160, 179, 172, 166, 178, 171, 165, 176, 168, 165, 174, 166, 163, 170, 165, 161, 169, 164, 160, 169, 164, 160, 168, 163, 159, 181, 176, 172, 181, 176, 172, 182, 177, 173, 185, 180, 176, 189, 185, 182, 194, 190, 187, 199, 195, 194, 202, 198, 197, 203, 201, 204, 204, 202, 205, 206, 205, 210, 210, 209, 214, 214, 215, 220, 219, 220, 225, 224, 225, 230, 227, 228, 233, 231, 234, 241, 232, 235, 242, 234, 237, 242, 236, 239, 244, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 242, 246, 249, 242, 246, 249, 243, 247, 248, 243, 247, 248, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 229, 232, 237, 229, 232, 237, 230, 233, 238, 231, 234, 239, 232, 235, 240, 232, 235, 240, 233, 236, 241, 233, 236, 241, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 235, 238, 243, 233, 236, 241, 232, 236, 239, 229, 229, 231, 226, 226, 226, 221, 221, 221, 219, 219, 219, 219, 218, 216, 218, 217, 215, 215, 214, 212, 213, 212, 210, 207, 206, 204, 205, 204, 202, 205, 201, 198, 202, 198, 195, 199, 195, 192, 198, 194, 191, 197, 193, 190, 197, 193, 190, 195, 190, 186, 193, 188, 184, 191, 186, 182, 190, 185, 181, 192, 184, 181, 190, 182, 179, 185, 178, 172, 182, 175, 169, 182, 173, 168, 180, 171, 166, 175, 166, 161, 166, 157, 152, 155, 146, 139, 146, 137, 130, 141, 132, 125, 140, 131, 124, 147, 138, 133, 143, 134, 129, 138, 131, 125, 137, 130, 124, 140, 133, 127, 144, 137, 131, 144, 139, 133, 144, 139, 133, 168, 163, 159, 173, 168, 164, 179, 176, 171, 185, 182, 177, 184, 180, 177, 174, 170, 167, 159, 155, 152, 149, 146, 141, 151, 148, 143, 144, 144, 136, 137, 137, 129, 132, 132, 124, 132, 129, 122, 130, 127, 120, 128, 125, 118, 126, 123, 116, 130, 127, 120, 125, 122, 115, 125, 120, 114, 131, 126, 120, 142, 137, 131, 149, 144, 138, 149, 144, 138, 145, 140, 134, 153, 148, 142, 149, 144, 138, 145, 140, 134, 143, 138, 132, 146, 139, 133, 148, 141, 135, 150, 143, 137, 150, 143, 137, 150, 143, 137, 151, 144, 138, 151, 142, 137, 149, 140, 135, 145, 136, 131, 143, 134, 129, 144, 135, 130, 145, 136, 131, 121, 112, 107, 134, 125, 120, 131, 122, 117, 134, 125, 120, 152, 143, 138, 146, 137, 132, 129, 120, 115, 134, 125, 120, 167, 158, 153, 166, 157, 152, 162, 153, 148, 156, 147, 142, 148, 139, 134, 145, 136, 131, 149, 140, 135, 156, 145, 139, 149, 136, 127, 132, 119, 110, 134, 121, 112, 144, 131, 123, 138, 128, 119, 133, 122, 116, 123, 112, 106, 103, 92, 88, 93, 82, 78, 92, 81, 77, 91, 80, 76, 95, 86, 81, 108, 97, 93, 115, 106, 101, 113, 102, 98, 104, 93, 89, 94, 81, 75, 92, 77, 72, 92, 77, 72, 94, 79, 74, 88, 73, 68, 72, 57, 52, 58, 43, 38, 50, 37, 31, 49, 36, 30, 42, 29, 23, 33, 18, 13, 27, 12, 7, 30, 15, 10, 33, 18, 13, 27, 12, 7, 18, 4, 1, 21, 11, 10, 9, 4, 1, 10, 2, 0, 17, 11, 11, 20, 14, 14, 13, 7, 7, 9, 3, 3, 12, 8, 7, 9, 3, 3, 18, 12, 12, 21, 16, 13, 15, 7, 5, 12, 4, 2, 28, 18, 16, 55, 45, 43, 75, 64, 62, 122, 108, 107, 148, 134, 133, 130, 119, 117, 132, 121, 117, 156, 147, 142, 117, 108, 103, 93, 86, 80, 146, 142, 133, 151, 144, 138, 120, 113, 107, 104, 95, 90, 137, 128, 123, 143, 132, 130, 130, 119, 117, 150, 136, 135, 145, 131, 130, 149, 138, 134, 111, 102, 97, 100, 90, 88, 145, 135, 133, 143, 133, 131, 104, 94, 92, 125, 115, 113, 163, 153, 151, 143, 135, 133, 147, 139, 137, 151, 143, 141, 181, 173, 171, 129, 124, 121, 103, 98, 95, 168, 162, 162, 150, 145, 142, 130, 122, 120, 129, 121, 118, 169, 161, 158, 175, 167, 164, 176, 168, 166, 182, 174, 172, 214, 209, 206, 136, 131, 128, 172, 167, 164, 212, 207, 204, 184, 178, 178, 193, 187, 187, 209, 205, 204, 179, 175, 174, 192, 188, 187, 220, 219, 217, 220, 219, 217, 214, 214, 212, 215, 215, 213, 224, 224, 222, 233, 233, 231, 237, 237, 235, 238, 238, 236, 240, 240, 238, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 247, 247, 245, 248, 248, 246, 249, 249, 247, 249, 249, 247, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 250, 250, 248, 250, 250, 248, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 251, 251, 249, 251, 251, 249, 250, 250, 248, 249, 249, 247, 248, 248, 246, 245, 245, 243, 243, 243, 241, 242, 242, 240, 242, 242, 242, 243, 243, 243, 241, 239, 240, 234, 232, 233, 230, 229, 227, 227, 226, 224, 222, 221, 219, 215, 214, 212, 206, 202, 201, 206, 202, 201, 206, 202, 199, 208, 204, 201, 209, 205, 202, 210, 206, 203, 212, 207, 204, 214, 209, 206, 195, 190, 187, 195, 190, 187, 211, 206, 203, 192, 187, 184, 184, 179, 176, 203, 198, 195, 197, 192, 189, 196, 191, 188, 193, 188, 185, 198, 193, 190, 181, 176, 173, 152, 147, 144, 185, 180, 177, 207, 202, 199, 174, 169, 166, 177, 171, 171, 189, 180, 183, 186, 181, 178, 168, 164, 155, 157, 155, 142, 166, 164, 151, 163, 156, 146, 147, 132, 127, 141, 121, 120, 116, 95, 94, 60, 46, 46, 33, 33, 35, 19, 24, 27, 6, 14, 16, 10, 9, 5, 26, 4, 0, 58, 21, 0, 100, 53, 0, 130, 74, 0, 150, 87, 0, 175, 107, 0, 215, 143, 23, 238, 164, 41, 239, 170, 51, 241, 178, 65, 232, 175, 72, 219, 169, 70, 215, 169, 71, 218, 176, 74, 215, 176, 71, 202, 168, 58, 200, 168, 57, 195, 178, 72, 165, 172, 76, 146, 173, 80, 137, 174, 79, 129, 176, 80, 115, 169, 71, 98, 153, 59, 92, 142, 53, 95, 138, 59, 78, 109, 49, 35, 58, 14, 0, 11, 0, 0, 5, 0, 0, 6, 8, 0, 5, 11, 0, 0, 7, 0, 0, 9, 0, 8, 17, 0, 9, 21, 0, 10, 28, 1, 13, 37, 4, 16, 42, 4, 19, 42, 5, 23, 37, 6, 27, 30, 1, 27, 18, 34, 61, 42, 60, 85, 56, 77, 97, 60, 97, 110, 66, 102, 110, 59, 106, 111, 55, 127, 123, 62, 156, 143, 75, 167, 143, 73, 186, 149, 79, 203, 161, 87, 215, 169, 91, 223, 177, 92, 234, 190, 103, 245, 202, 110, 247, 197, 108, 255, 201, 112, 255, 194, 107, 251, 184, 103, 219, 162, 95, 156, 114, 64, 106, 80, 53, 97, 83, 72, 93, 81, 83, 120, 110, 118, 130, 120, 128, 135, 128, 135, 151, 145, 149, 151, 147, 148, 162, 158, 155, 194, 193, 188, 176, 176, 166, 195, 195, 183, 196, 194, 181, 186, 182, 171, 192, 187, 181, 204, 196, 193, 203, 193, 194, 198, 189, 190, 182, 177, 174, 180, 177, 172, 174, 169, 165, 165, 160, 156, 163, 156, 150, 163, 156, 150, 159, 152, 144, 151, 144, 136, 154, 147, 139, 164, 157, 149, 175, 168, 162, 167, 160, 154, 144, 139, 135, 140, 135, 131, 142, 139, 134, 136, 133, 128, 175, 170, 166, 173, 168, 164, 158, 153, 149, 155, 150, 146, 159, 154, 150, 135, 130, 126, 121, 113, 110, 137, 129, 126, 129, 121, 118, 136, 128, 125, 156, 148, 145, 175, 167, 164, 171, 161, 159, 156, 146, 144, 164, 154, 152, 186, 176, 174, 172, 164, 161, 167, 159, 156, 160, 152, 149, 158, 150, 147, 160, 152, 149, 161, 153, 150, 160, 152, 149, 158, 150, 147, 145, 137, 134, 149, 141, 138, 157, 149, 146, 167, 159, 156, 173, 165, 162, 170, 162, 159, 159, 151, 148, 149, 141, 138, 150, 145, 139, 160, 155, 149, 170, 165, 159, 173, 168, 162, 169, 162, 156, 164, 157, 151, 165, 158, 152, 168, 161, 155, 162, 153, 148, 154, 145, 140, 145, 136, 131, 144, 135, 130, 150, 141, 136, 158, 149, 144, 163, 154, 149, 165, 156, 151, 157, 148, 141, 155, 146, 139, 153, 144, 137, 151, 142, 135, 152, 143, 138, 154, 145, 140, 158, 149, 144, 160, 151, 146, 149, 142, 136, 153, 146, 140, 160, 152, 149, 167, 159, 156, 171, 166, 162, 175, 170, 166, 177, 172, 168, 178, 173, 169, 184, 179, 175, 184, 179, 175, 184, 179, 175, 185, 180, 176, 187, 183, 180, 191, 187, 184, 195, 191, 190, 198, 194, 193, 203, 201, 204, 204, 202, 205, 206, 205, 210, 210, 209, 214, 214, 215, 220, 219, 220, 225, 223, 224, 229, 226, 227, 232, 231, 234, 241, 232, 235, 242, 234, 237, 242, 236, 239, 244, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 244, 247, 241, 245, 248, 241, 245, 248, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 247, 243, 247, 248, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 226, 229, 234, 227, 230, 235, 228, 231, 236, 230, 233, 238, 231, 234, 239, 233, 236, 241, 234, 237, 242, 235, 238, 243, 235, 238, 243, 236, 239, 244, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 236, 239, 244, 233, 236, 241, 231, 234, 239, 230, 234, 237, 226, 226, 228, 223, 223, 223, 220, 220, 220, 219, 219, 219, 219, 218, 216, 218, 217, 215, 215, 214, 212, 212, 211, 209, 210, 209, 207, 207, 206, 204, 207, 203, 200, 206, 202, 199, 206, 202, 199, 205, 201, 198, 203, 199, 196, 200, 196, 193, 196, 191, 187, 192, 187, 183, 189, 184, 180, 186, 181, 177, 187, 179, 176, 185, 177, 174, 181, 174, 168, 178, 171, 165, 176, 167, 162, 169, 160, 155, 160, 151, 146, 153, 144, 139, 149, 140, 133, 148, 139, 132, 146, 137, 130, 145, 136, 129, 150, 143, 137, 153, 146, 140, 158, 151, 145, 161, 154, 148, 159, 154, 150, 156, 151, 147, 152, 147, 143, 149, 144, 140, 159, 154, 150, 166, 161, 157, 171, 166, 163, 171, 166, 163, 171, 166, 163, 169, 164, 161, 163, 158, 155, 155, 152, 147, 133, 130, 125, 132, 129, 122, 130, 127, 120, 130, 127, 120, 135, 132, 125, 136, 133, 126, 128, 123, 117, 115, 110, 104, 107, 102, 96, 107, 102, 96, 109, 104, 98, 113, 108, 102, 123, 116, 110, 132, 125, 119, 140, 133, 127, 145, 138, 132, 144, 137, 131, 145, 138, 132, 148, 141, 135, 155, 148, 142, 163, 156, 150, 171, 164, 158, 177, 170, 164, 181, 174, 168, 163, 154, 149, 145, 136, 131, 151, 142, 137, 158, 149, 144, 133, 124, 119, 113, 104, 99, 125, 114, 110, 141, 130, 126, 135, 124, 120, 159, 148, 144, 170, 159, 155, 153, 142, 138, 133, 122, 118, 131, 120, 116, 142, 131, 127, 149, 138, 134, 152, 141, 137, 149, 138, 134, 149, 138, 134, 152, 141, 137, 152, 141, 137, 146, 135, 131, 142, 131, 127, 142, 131, 125, 126, 113, 105, 135, 122, 113, 140, 127, 119, 137, 124, 118, 130, 117, 111, 121, 107, 104, 110, 96, 95, 100, 86, 85, 112, 98, 97, 118, 104, 103, 126, 112, 111, 101, 90, 88, 113, 99, 96, 143, 132, 128, 123, 109, 106, 99, 86, 80, 78, 61, 54, 80, 61, 55, 79, 62, 55, 75, 58, 51, 67, 50, 43, 56, 39, 32, 45, 28, 21, 36, 21, 14, 42, 27, 22, 36, 21, 16, 30, 15, 12, 24, 9, 6, 20, 6, 3, 18, 4, 1, 15, 1, 0, 10, 0, 0, 10, 2, 0, 7, 3, 2, 9, 3, 3, 9, 5, 6, 8, 4, 5, 5, 3, 4, 3, 1, 2, 2, 0, 1, 7, 3, 4, 5, 1, 2, 3, 0, 0, 4, 0, 0, 6, 0, 0, 10, 2, 0, 15, 5, 3, 19, 8, 4, 47, 33, 32, 74, 60, 59, 111, 100, 96, 140, 129, 125, 144, 135, 130, 134, 125, 118, 127, 118, 111, 127, 120, 110, 143, 134, 127, 144, 135, 128, 134, 125, 118, 123, 114, 107, 120, 109, 105, 116, 105, 101, 132, 118, 117, 159, 145, 144, 150, 139, 135, 129, 120, 115, 96, 86, 84, 114, 104, 102, 154, 144, 142, 128, 118, 116, 115, 105, 103, 168, 158, 156, 166, 158, 156, 164, 156, 154, 157, 149, 147, 166, 158, 156, 148, 143, 140, 127, 122, 119, 139, 133, 133, 140, 135, 132, 135, 127, 125, 161, 153, 150, 170, 162, 159, 181, 173, 170, 166, 158, 156, 167, 159, 157, 183, 178, 175, 175, 170, 167, 182, 177, 174, 214, 209, 206, 186, 180, 180, 180, 174, 174, 202, 198, 197, 190, 186, 185, 191, 187, 186, 214, 213, 211, 216, 215, 213, 215, 215, 213, 213, 213, 211, 215, 215, 213, 225, 225, 223, 237, 237, 235, 241, 241, 239, 239, 239, 237, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 246, 246, 244, 247, 247, 245, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 250, 250, 248, 250, 250, 248, 250, 250, 248, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 248, 248, 246, 247, 247, 245, 246, 246, 244, 246, 246, 244, 245, 245, 243, 242, 242, 242, 240, 240, 240, 237, 237, 237, 236, 236, 236, 233, 233, 231, 229, 229, 227, 224, 223, 221, 219, 218, 216, 207, 206, 204, 199, 198, 196, 198, 194, 191, 206, 202, 199, 215, 211, 208, 214, 210, 207, 208, 204, 201, 204, 200, 197, 210, 205, 202, 190, 185, 182, 193, 188, 185, 196, 191, 188, 187, 182, 179, 196, 191, 188, 203, 198, 195, 183, 178, 175, 205, 200, 197, 194, 189, 186, 191, 186, 183, 187, 182, 179, 176, 171, 168, 182, 177, 174, 188, 183, 180, 176, 170, 170, 187, 181, 183, 189, 183, 183, 181, 176, 170, 160, 156, 145, 151, 147, 136, 164, 157, 147, 163, 148, 143, 136, 117, 113, 103, 82, 81, 66, 52, 52, 36, 35, 40, 23, 30, 36, 8, 17, 24, 3, 7, 10, 22, 9, 3, 39, 11, 0, 84, 42, 0, 110, 58, 0, 143, 82, 0, 183, 115, 4, 220, 146, 23, 238, 163, 36, 241, 169, 48, 239, 172, 59, 232, 174, 67, 223, 169, 69, 225, 175, 76, 230, 185, 84, 222, 179, 75, 205, 164, 58, 203, 165, 58, 209, 180, 78, 191, 182, 91, 175, 181, 93, 151, 172, 81, 128, 164, 68, 121, 167, 68, 123, 175, 74, 120, 172, 71, 113, 160, 66, 105, 147, 65, 92, 127, 61, 57, 84, 39, 12, 35, 7, 0, 7, 0, 0, 5, 2, 0, 9, 13, 0, 10, 16, 0, 19, 25, 0, 20, 29, 1, 20, 35, 3, 20, 40, 4, 19, 42, 6, 19, 36, 6, 19, 27, 5, 20, 15, 22, 37, 18, 62, 76, 43, 97, 108, 66, 104, 111, 60, 106, 107, 50, 117, 115, 54, 131, 126, 60, 138, 128, 59, 168, 147, 80, 173, 145, 72, 196, 159, 79, 217, 177, 92, 224, 179, 96, 232, 187, 104, 243, 201, 117, 250, 206, 119, 247, 198, 105, 255, 207, 114, 249, 187, 100, 245, 185, 112, 178, 126, 76, 92, 56, 22, 92, 75, 55, 94, 87, 79, 117, 108, 111, 100, 90, 98, 104, 94, 102, 128, 122, 126, 152, 146, 148, 173, 169, 168, 190, 187, 182, 194, 191, 184, 193, 190, 181, 194, 192, 180, 190, 186, 175, 188, 184, 173, 197, 192, 186, 204, 199, 196, 194, 185, 186, 175, 166, 167, 186, 181, 178, 184, 180, 177, 176, 171, 167, 164, 159, 155, 160, 153, 147, 155, 148, 142, 141, 134, 126, 124, 117, 109, 167, 160, 152, 171, 164, 156, 160, 153, 147, 138, 131, 125, 133, 128, 124, 154, 149, 145, 171, 167, 164, 174, 170, 167, 147, 142, 138, 155, 150, 146, 145, 140, 136, 119, 114, 110, 103, 98, 94, 106, 101, 97, 114, 106, 103, 112, 104, 101, 103, 95, 92, 147, 139, 136, 185, 177, 174, 188, 180, 177, 178, 168, 166, 174, 164, 162, 174, 164, 162, 172, 162, 160, 169, 161, 158, 169, 161, 158, 167, 159, 156, 163, 155, 152, 158, 150, 147, 156, 148, 145, 158, 150, 147, 161, 153, 150, 155, 147, 144, 165, 157, 154, 171, 163, 160, 169, 161, 158, 164, 156, 153, 163, 155, 152, 162, 154, 151, 160, 152, 149, 171, 166, 160, 170, 165, 159, 169, 164, 158, 170, 165, 159, 171, 164, 158, 166, 159, 153, 157, 150, 144, 150, 143, 137, 147, 138, 133, 145, 136, 131, 147, 138, 133, 152, 143, 138, 151, 142, 137, 143, 134, 129, 137, 128, 123, 134, 125, 120, 137, 128, 121, 142, 133, 126, 148, 139, 132, 151, 142, 135, 150, 141, 136, 147, 138, 133, 144, 135, 130, 144, 135, 130, 142, 135, 129, 147, 140, 134, 154, 146, 143, 163, 155, 152, 167, 162, 158, 171, 166, 162, 172, 167, 163, 172, 167, 163, 169, 164, 160, 175, 170, 166, 183, 178, 174, 189, 184, 180, 190, 186, 183, 191, 187, 184, 192, 188, 187, 194, 190, 189, 197, 195, 198, 199, 197, 200, 200, 199, 204, 203, 202, 207, 206, 207, 212, 214, 215, 220, 223, 224, 229, 229, 230, 235, 230, 233, 240, 231, 234, 241, 233, 236, 241, 236, 239, 244, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 248, 244, 248, 249, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 226, 229, 234, 227, 230, 235, 228, 231, 236, 230, 233, 238, 231, 234, 239, 233, 236, 241, 234, 237, 242, 235, 238, 243, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 236, 239, 244, 234, 237, 242, 231, 234, 239, 230, 234, 237, 226, 226, 228, 223, 223, 223, 220, 220, 220, 218, 218, 218, 219, 218, 216, 217, 216, 214, 214, 213, 211, 211, 210, 208, 210, 209, 207, 207, 206, 204, 207, 203, 200, 206, 202, 199, 206, 202, 199, 205, 201, 198, 203, 199, 196, 200, 196, 193, 198, 193, 189, 194, 189, 185, 191, 186, 182, 188, 183, 179, 189, 181, 178, 187, 179, 176, 183, 176, 170, 180, 173, 167, 177, 168, 163, 171, 162, 157, 163, 154, 149, 157, 148, 143, 157, 148, 141, 159, 150, 143, 161, 152, 145, 162, 153, 146, 163, 156, 150, 161, 154, 148, 157, 150, 144, 156, 149, 143, 155, 150, 146, 160, 155, 151, 165, 160, 156, 169, 164, 160, 169, 164, 160, 172, 167, 163, 172, 167, 164, 168, 163, 160, 164, 159, 156, 160, 155, 152, 153, 148, 145, 147, 142, 139, 155, 152, 147, 152, 149, 142, 146, 143, 136, 137, 134, 127, 130, 127, 120, 125, 122, 115, 120, 115, 109, 115, 110, 104, 109, 104, 98, 112, 107, 101, 117, 112, 106, 123, 118, 112, 131, 124, 118, 135, 128, 122, 137, 130, 124, 137, 130, 124, 134, 127, 121, 141, 134, 128, 149, 142, 136, 151, 144, 138, 146, 139, 133, 139, 132, 126, 134, 127, 121, 131, 124, 118, 120, 111, 106, 120, 111, 106, 126, 117, 112, 121, 112, 107, 110, 101, 96, 121, 112, 107, 140, 129, 125, 142, 131, 127, 152, 141, 137, 148, 137, 133, 146, 135, 131, 146, 135, 131, 145, 134, 130, 145, 134, 130, 147, 136, 132, 150, 139, 135, 140, 129, 125, 136, 125, 121, 138, 127, 123, 145, 134, 130, 149, 138, 134, 145, 134, 130, 139, 128, 124, 137, 126, 120, 155, 142, 134, 143, 130, 122, 127, 114, 108, 117, 104, 98, 119, 105, 102, 125, 111, 110, 121, 107, 107, 112, 98, 98, 114, 100, 100, 106, 92, 92, 111, 95, 95, 98, 83, 80, 100, 85, 82, 111, 96, 91, 89, 74, 69, 81, 64, 57, 76, 56, 49, 72, 52, 43, 64, 44, 35, 57, 37, 28, 51, 31, 24, 47, 28, 21, 46, 27, 21, 46, 29, 22, 34, 19, 14, 30, 15, 12, 23, 9, 6, 20, 6, 5, 19, 5, 4, 16, 5, 3, 15, 3, 3, 12, 2, 1, 7, 1, 1, 7, 3, 2, 7, 3, 4, 5, 3, 4, 6, 4, 7, 5, 5, 7, 5, 5, 7, 5, 5, 7, 10, 8, 11, 9, 7, 8, 9, 5, 4, 8, 3, 0, 10, 2, 0, 12, 2, 0, 14, 5, 0, 16, 5, 1, 19, 8, 6, 15, 1, 0, 24, 13, 9, 60, 49, 43, 103, 92, 86, 131, 121, 112, 138, 128, 119, 137, 127, 117, 139, 129, 120, 126, 116, 107, 121, 111, 102, 135, 124, 118, 137, 126, 120, 114, 103, 99, 107, 93, 92, 124, 113, 111, 133, 124, 119, 139, 130, 125, 114, 104, 102, 108, 98, 96, 142, 132, 130, 154, 144, 142, 146, 136, 134, 158, 148, 146, 157, 149, 147, 158, 150, 148, 158, 150, 148, 154, 146, 144, 127, 122, 119, 136, 131, 128, 165, 159, 159, 139, 134, 131, 142, 134, 132, 156, 148, 145, 176, 168, 165, 177, 169, 166, 168, 160, 158, 176, 168, 166, 185, 180, 177, 184, 179, 176, 178, 173, 170, 202, 197, 194, 176, 170, 170, 181, 175, 175, 209, 205, 204, 196, 192, 191, 195, 191, 190, 218, 217, 215, 217, 216, 214, 215, 215, 213, 213, 213, 211, 216, 216, 214, 226, 226, 224, 237, 237, 235, 241, 241, 239, 239, 239, 237, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 246, 246, 244, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 250, 250, 248, 250, 250, 248, 250, 250, 248, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 248, 248, 246, 247, 247, 245, 246, 246, 244, 246, 246, 244, 245, 245, 243, 245, 245, 245, 243, 243, 243, 240, 240, 240, 239, 239, 239, 236, 236, 234, 232, 232, 230, 227, 226, 224, 222, 221, 219, 216, 215, 213, 202, 201, 199, 195, 191, 188, 200, 196, 193, 210, 206, 203, 213, 209, 206, 208, 204, 201, 204, 200, 197, 213, 208, 205, 200, 195, 192, 196, 191, 188, 182, 177, 174, 169, 164, 161, 186, 181, 178, 197, 192, 189, 175, 170, 167, 186, 181, 178, 188, 183, 180, 194, 189, 186, 189, 184, 181, 183, 178, 175, 194, 189, 186, 198, 193, 190, 183, 177, 177, 188, 184, 185, 189, 183, 183, 184, 179, 173, 172, 168, 157, 169, 165, 154, 184, 175, 168, 174, 161, 155, 142, 124, 120, 98, 79, 75, 64, 50, 50, 36, 35, 41, 27, 34, 44, 12, 24, 36, 5, 13, 24, 11, 9, 14, 22, 4, 0, 71, 38, 0, 113, 66, 0, 155, 96, 4, 197, 129, 18, 236, 161, 34, 246, 167, 38, 242, 166, 44, 249, 178, 62, 248, 186, 77, 228, 173, 70, 217, 168, 66, 222, 174, 74, 225, 180, 79, 219, 174, 73, 211, 167, 68, 206, 168, 71, 199, 172, 81, 186, 172, 83, 165, 166, 73, 143, 158, 63, 132, 162, 62, 131, 172, 68, 129, 172, 67, 120, 165, 62, 109, 150, 56, 106, 143, 63, 92, 126, 65, 71, 100, 56, 48, 74, 45, 29, 54, 35, 15, 35, 24, 2, 23, 16, 1, 28, 21, 0, 24, 21, 0, 22, 28, 6, 24, 34, 9, 23, 34, 9, 20, 26, 11, 20, 15, 17, 24, 6, 85, 89, 56, 103, 104, 60, 116, 115, 61, 117, 111, 51, 121, 112, 47, 136, 123, 53, 150, 136, 65, 158, 140, 68, 187, 162, 95, 189, 159, 87, 201, 167, 80, 212, 172, 84, 220, 178, 94, 238, 196, 114, 252, 209, 131, 251, 206, 123, 255, 219, 125, 235, 186, 93, 255, 208, 128, 211, 159, 99, 119, 76, 41, 87, 58, 40, 72, 62, 50, 90, 89, 84, 95, 89, 93, 97, 87, 95, 112, 105, 112, 131, 125, 129, 138, 132, 132, 153, 148, 145, 180, 177, 170, 197, 194, 185, 191, 188, 179, 190, 188, 176, 191, 187, 176, 194, 190, 181, 202, 197, 193, 206, 201, 198, 200, 191, 192, 186, 180, 180, 188, 184, 181, 175, 171, 168, 156, 151, 147, 146, 141, 137, 156, 149, 143, 172, 165, 159, 175, 168, 160, 168, 161, 153, 153, 146, 138, 128, 121, 113, 110, 103, 97, 128, 121, 115, 168, 163, 159, 192, 187, 183, 178, 174, 171, 154, 150, 147, 131, 126, 122, 106, 101, 97, 93, 88, 84, 106, 101, 97, 123, 118, 114, 127, 122, 118, 129, 121, 118, 132, 124, 121, 171, 163, 160, 184, 176, 173, 188, 180, 177, 178, 170, 167, 173, 163, 161, 179, 169, 167, 181, 171, 169, 176, 166, 164, 156, 148, 145, 165, 157, 154, 168, 160, 157, 156, 148, 145, 137, 129, 126, 127, 119, 116, 133, 125, 122, 143, 135, 132, 154, 146, 143, 165, 157, 154, 176, 168, 165, 180, 172, 169, 181, 173, 170, 179, 171, 168, 174, 166, 163, 168, 160, 157, 170, 165, 159, 170, 165, 159, 169, 164, 158, 164, 159, 153, 160, 153, 147, 158, 151, 145, 159, 152, 146, 162, 155, 149, 173, 164, 159, 172, 163, 158, 167, 158, 153, 156, 147, 142, 139, 130, 125, 128, 119, 114, 133, 124, 119, 144, 135, 130, 161, 152, 145, 164, 155, 148, 167, 158, 151, 166, 157, 150, 162, 153, 148, 156, 147, 142, 152, 143, 138, 151, 142, 137, 158, 151, 145, 160, 153, 147, 162, 154, 151, 164, 156, 153, 165, 160, 156, 167, 162, 158, 169, 164, 160, 170, 165, 161, 173, 168, 164, 177, 172, 168, 183, 178, 174, 187, 182, 178, 188, 184, 181, 189, 185, 182, 192, 188, 187, 193, 189, 188, 195, 193, 196, 199, 197, 200, 204, 203, 208, 209, 208, 213, 212, 213, 218, 217, 218, 223, 223, 224, 229, 228, 229, 234, 226, 229, 236, 228, 231, 238, 231, 234, 239, 234, 237, 242, 237, 240, 245, 239, 242, 247, 241, 244, 249, 241, 244, 249, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 248, 244, 248, 249, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 226, 229, 234, 227, 230, 235, 228, 231, 236, 230, 233, 238, 231, 234, 239, 233, 236, 241, 234, 237, 242, 235, 238, 243, 236, 239, 244, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 239, 242, 247, 238, 241, 246, 236, 239, 244, 234, 237, 242, 231, 234, 239, 230, 234, 237, 225, 225, 227, 222, 222, 222, 219, 219, 219, 217, 217, 217, 218, 217, 215, 216, 215, 213, 213, 212, 210, 210, 209, 207, 210, 209, 207, 207, 206, 204, 207, 203, 200, 206, 202, 199, 206, 202, 199, 205, 201, 198, 203, 199, 196, 200, 196, 193, 199, 194, 190, 196, 191, 187, 192, 187, 183, 190, 185, 181, 191, 183, 180, 188, 180, 177, 185, 178, 172, 182, 175, 169, 173, 164, 159, 167, 158, 153, 160, 151, 146, 155, 146, 141, 156, 147, 140, 159, 150, 143, 161, 152, 145, 162, 153, 146, 162, 155, 149, 156, 151, 145, 152, 147, 143, 150, 145, 141, 153, 148, 144, 159, 154, 150, 167, 162, 158, 173, 168, 164, 168, 163, 160, 169, 164, 161, 169, 164, 161, 168, 163, 160, 167, 162, 159, 167, 162, 159, 166, 160, 160, 165, 160, 157, 156, 153, 148, 156, 153, 146, 152, 149, 142, 145, 142, 135, 139, 134, 128, 139, 134, 128, 143, 138, 132, 149, 144, 138, 141, 136, 130, 136, 131, 125, 132, 125, 119, 130, 123, 117, 133, 126, 120, 140, 133, 127, 145, 138, 132, 148, 141, 135, 135, 128, 122, 141, 134, 128, 146, 139, 133, 146, 139, 133, 142, 135, 129, 138, 131, 125, 139, 130, 125, 141, 132, 127, 129, 120, 115, 134, 125, 120, 145, 134, 130, 146, 135, 131, 145, 134, 130, 158, 147, 143, 167, 156, 152, 162, 151, 147, 157, 146, 142, 142, 131, 127, 137, 126, 122, 149, 138, 134, 156, 145, 141, 148, 137, 133, 142, 131, 127, 145, 134, 130, 140, 129, 125, 123, 112, 108, 110, 99, 95, 116, 105, 101, 133, 122, 118, 146, 135, 131, 153, 142, 138, 156, 145, 139, 119, 109, 100, 115, 105, 96, 111, 100, 94, 111, 100, 94, 122, 108, 105, 129, 115, 114, 125, 109, 110, 115, 99, 100, 82, 66, 67, 69, 53, 54, 82, 64, 64, 92, 74, 72, 97, 80, 73, 92, 75, 68, 78, 61, 53, 85, 67, 57, 64, 42, 31, 60, 36, 24, 52, 28, 18, 44, 22, 11, 41, 18, 10, 40, 20, 11, 41, 22, 15, 43, 26, 19, 25, 10, 5, 21, 7, 4, 15, 4, 2, 13, 3, 2, 14, 4, 3, 15, 5, 4, 14, 5, 6, 11, 5, 5, 4, 0, 0, 3, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 2, 1, 1, 3, 2, 2, 4, 3, 4, 6, 0, 0, 0, 1, 0, 0, 4, 0, 0, 6, 1, 0, 10, 3, 0, 12, 3, 0, 14, 3, 0, 15, 4, 0, 17, 6, 2, 12, 1, 0, 13, 2, 0, 25, 14, 8, 47, 34, 26, 73, 60, 51, 102, 89, 80, 124, 112, 100, 138, 125, 116, 130, 117, 108, 124, 111, 102, 135, 122, 114, 141, 130, 124, 123, 112, 108, 103, 92, 90, 104, 93, 91, 140, 131, 126, 126, 117, 112, 114, 104, 102, 127, 117, 115, 151, 141, 139, 157, 147, 145, 155, 145, 143, 163, 153, 151, 162, 154, 152, 153, 145, 143, 154, 146, 144, 150, 142, 140, 118, 113, 110, 138, 133, 130, 178, 172, 172, 147, 142, 139, 155, 147, 145, 148, 140, 137, 183, 175, 172, 169, 161, 158, 168, 160, 158, 186, 178, 176, 182, 177, 174, 193, 188, 185, 184, 179, 176, 194, 189, 186, 166, 160, 160, 183, 177, 177, 215, 211, 210, 197, 193, 192, 194, 190, 189, 217, 216, 214, 218, 217, 215, 214, 214, 212, 212, 212, 210, 217, 217, 215, 227, 227, 225, 236, 236, 234, 240, 240, 238, 240, 240, 238, 243, 243, 241, 244, 244, 242, 244, 244, 242, 245, 245, 243, 246, 246, 244, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 250, 250, 248, 250, 250, 248, 250, 250, 248, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 248, 248, 246, 247, 247, 245, 246, 246, 244, 246, 246, 244, 245, 245, 243, 247, 247, 247, 245, 245, 245, 243, 243, 243, 242, 242, 242, 240, 240, 238, 236, 236, 234, 230, 230, 228, 225, 225, 223, 225, 224, 222, 207, 206, 204, 193, 192, 188, 195, 194, 190, 205, 201, 198, 209, 205, 202, 207, 203, 200, 204, 200, 197, 208, 203, 200, 207, 202, 199, 204, 199, 196, 183, 178, 175, 169, 164, 161, 190, 185, 182, 201, 196, 193, 178, 173, 170, 179, 174, 171, 190, 185, 182, 199, 194, 191, 194, 189, 186, 186, 181, 178, 193, 188, 185, 193, 188, 185, 176, 172, 171, 180, 178, 179, 187, 183, 182, 192, 185, 179, 181, 174, 166, 173, 166, 158, 176, 167, 160, 160, 147, 141, 125, 110, 105, 95, 76, 72, 64, 50, 49, 44, 38, 48, 39, 42, 57, 26, 39, 58, 13, 28, 47, 6, 15, 30, 4, 0, 0, 57, 32, 2, 113, 71, 13, 158, 104, 16, 202, 136, 24, 243, 165, 39, 240, 157, 27, 231, 151, 28, 251, 176, 59, 253, 187, 75, 235, 178, 71, 221, 170, 65, 218, 170, 70, 223, 177, 81, 224, 180, 85, 217, 172, 79, 209, 164, 71, 213, 168, 75, 208, 172, 78, 193, 170, 77, 172, 166, 72, 160, 167, 72, 153, 173, 74, 148, 174, 73, 142, 172, 72, 129, 163, 66, 123, 157, 70, 114, 150, 76, 104, 140, 78, 89, 123, 73, 72, 104, 63, 64, 94, 60, 62, 91, 63, 45, 75, 49, 24, 53, 31, 11, 35, 21, 13, 33, 24, 21, 34, 25, 30, 38, 25, 54, 56, 34, 82, 79, 44, 124, 118, 70, 123, 112, 56, 121, 107, 44, 124, 107, 38, 134, 114, 45, 149, 127, 54, 162, 138, 64, 169, 145, 73, 191, 164, 97, 193, 165, 92, 205, 173, 86, 215, 180, 90, 226, 188, 105, 250, 209, 130, 255, 220, 146, 254, 211, 133, 254, 213, 123, 246, 204, 118, 212, 169, 101, 148, 110, 65, 150, 119, 101, 136, 117, 113, 84, 81, 76, 127, 129, 126, 88, 83, 87, 97, 91, 95, 120, 114, 116, 136, 130, 130, 137, 132, 129, 150, 145, 141, 179, 174, 168, 198, 194, 185, 197, 193, 184, 194, 190, 181, 194, 190, 181, 198, 193, 187, 198, 193, 189, 190, 185, 182, 183, 177, 177, 180, 174, 174, 170, 166, 163, 177, 173, 170, 182, 177, 173, 177, 172, 168, 172, 165, 159, 168, 161, 155, 164, 157, 151, 160, 153, 147, 154, 147, 141, 124, 117, 111, 114, 107, 101, 149, 142, 136, 192, 187, 183, 197, 192, 188, 161, 157, 154, 125, 121, 118, 116, 111, 107, 84, 79, 75, 84, 79, 75, 130, 125, 121, 167, 162, 158, 167, 162, 158, 166, 158, 155, 177, 169, 166, 169, 161, 158, 172, 164, 161, 167, 159, 156, 156, 148, 145, 153, 143, 141, 158, 148, 146, 157, 147, 145, 149, 139, 137, 164, 157, 151, 166, 159, 153, 162, 155, 149, 147, 140, 134, 132, 125, 119, 132, 125, 119, 148, 141, 135, 164, 157, 151, 177, 170, 164, 176, 169, 163, 170, 163, 157, 165, 158, 152, 166, 159, 153, 173, 166, 160, 175, 168, 162, 173, 166, 160, 172, 167, 161, 172, 167, 161, 167, 162, 156, 154, 149, 143, 143, 136, 130, 141, 134, 128, 150, 143, 137, 160, 153, 147, 155, 146, 141, 154, 145, 140, 154, 145, 140, 150, 141, 136, 143, 134, 129, 142, 133, 128, 153, 144, 139, 168, 159, 154, 160, 151, 144, 163, 154, 147, 167, 158, 151, 167, 158, 151, 165, 156, 151, 162, 153, 148, 161, 152, 147, 161, 152, 147, 157, 150, 144, 157, 150, 144, 158, 150, 147, 159, 151, 148, 161, 156, 152, 166, 161, 157, 170, 165, 161, 173, 168, 164, 184, 179, 175, 186, 181, 177, 188, 183, 179, 189, 184, 180, 187, 183, 180, 187, 183, 180, 189, 185, 184, 191, 187, 186, 190, 188, 191, 196, 194, 197, 203, 202, 207, 210, 209, 214, 213, 214, 219, 217, 218, 223, 221, 222, 227, 224, 225, 230, 223, 226, 233, 226, 229, 236, 229, 232, 237, 234, 237, 242, 237, 240, 245, 240, 243, 248, 242, 245, 250, 243, 246, 251, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 248, 244, 248, 249, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 226, 229, 234, 227, 230, 235, 228, 231, 236, 230, 233, 238, 231, 234, 239, 233, 236, 241, 234, 237, 242, 235, 238, 243, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 238, 241, 246, 236, 239, 244, 233, 236, 241, 231, 234, 239, 229, 233, 236, 224, 224, 226, 221, 221, 221, 218, 218, 218, 216, 216, 216, 217, 216, 214, 215, 214, 212, 212, 211, 209, 210, 209, 207, 210, 209, 207, 207, 206, 204, 207, 203, 200, 206, 202, 199, 206, 202, 199, 205, 201, 198, 203, 199, 196, 200, 196, 193, 199, 194, 190, 196, 191, 187, 192, 187, 183, 190, 185, 181, 190, 182, 179, 188, 180, 177, 184, 177, 171, 181, 174, 168, 175, 166, 161, 171, 162, 157, 165, 156, 151, 161, 152, 147, 160, 151, 144, 158, 149, 142, 156, 147, 140, 153, 146, 138, 154, 149, 143, 156, 151, 145, 159, 154, 150, 162, 157, 153, 164, 159, 155, 165, 160, 156, 165, 160, 156, 164, 159, 155, 155, 150, 147, 153, 148, 145, 152, 147, 144, 155, 150, 147, 157, 152, 149, 159, 154, 151, 163, 157, 157, 168, 163, 160, 169, 166, 161, 165, 162, 155, 160, 157, 150, 156, 153, 146, 153, 148, 142, 150, 145, 139, 152, 147, 141, 156, 151, 145, 143, 138, 132, 126, 121, 115, 106, 99, 93, 94, 87, 81, 97, 90, 84, 112, 105, 99, 130, 123, 117, 141, 134, 128, 173, 166, 160, 165, 158, 152, 154, 147, 141, 145, 138, 132, 143, 136, 130, 147, 140, 134, 153, 144, 139, 157, 148, 143, 166, 157, 152, 149, 140, 135, 144, 133, 129, 148, 137, 133, 142, 131, 127, 129, 118, 114, 126, 115, 111, 133, 122, 118, 135, 124, 120, 137, 126, 122, 146, 135, 131, 155, 144, 140, 152, 141, 137, 142, 131, 127, 139, 128, 124, 143, 132, 128, 111, 100, 96, 112, 101, 97, 123, 112, 108, 143, 132, 128, 155, 144, 140, 148, 137, 133, 130, 119, 115, 116, 105, 99, 99, 89, 80, 110, 100, 91, 116, 105, 99, 112, 101, 95, 105, 91, 88, 97, 83, 82, 92, 76, 77, 88, 69, 71, 89, 71, 71, 78, 58, 59, 82, 62, 61, 91, 72, 66, 88, 68, 61, 69, 49, 38, 54, 34, 23, 61, 39, 26, 50, 24, 9, 51, 25, 10, 52, 26, 13, 49, 26, 12, 45, 23, 10, 39, 19, 8, 33, 15, 5, 29, 12, 5, 21, 8, 2, 15, 4, 2, 10, 2, 0, 7, 1, 1, 8, 2, 2, 9, 5, 6, 9, 4, 8, 6, 4, 5, 3, 2, 0, 2, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 4, 0, 2, 5, 0, 3, 4, 0, 0, 2, 0, 0, 0, 3, 2, 0, 7, 3, 0, 11, 4, 0, 13, 4, 0, 13, 3, 0, 13, 2, 0, 8, 0, 0, 20, 9, 5, 31, 20, 14, 32, 19, 11, 25, 11, 2, 35, 18, 8, 69, 52, 42, 104, 88, 75, 100, 84, 71, 123, 106, 96, 125, 108, 98, 115, 101, 92, 128, 115, 107, 143, 132, 126, 140, 129, 125, 129, 119, 117, 146, 137, 132, 122, 113, 108, 119, 109, 107, 138, 128, 126, 150, 140, 138, 154, 144, 142, 156, 146, 144, 154, 144, 142, 173, 165, 163, 160, 152, 150, 150, 142, 140, 157, 149, 147, 139, 134, 131, 139, 134, 131, 168, 162, 162, 163, 158, 155, 168, 160, 158, 142, 134, 131, 186, 178, 175, 158, 150, 147, 167, 159, 157, 186, 178, 176, 175, 170, 167, 191, 186, 183, 199, 194, 191, 193, 188, 185, 161, 155, 155, 183, 177, 177, 213, 209, 208, 191, 187, 186, 189, 185, 184, 213, 212, 210, 219, 218, 216, 212, 212, 210, 211, 211, 209, 217, 217, 215, 227, 227, 225, 234, 234, 232, 238, 238, 236, 241, 241, 239, 243, 243, 241, 243, 243, 241, 244, 244, 242, 245, 245, 243, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 250, 250, 248, 250, 250, 248, 250, 250, 248, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 248, 248, 246, 247, 247, 245, 246, 246, 244, 246, 246, 244, 245, 245, 243, 247, 247, 247, 246, 246, 246, 244, 244, 244, 243, 243, 243, 241, 241, 239, 237, 237, 235, 231, 231, 229, 227, 227, 225, 224, 223, 221, 213, 212, 210, 202, 201, 197, 201, 200, 196, 203, 199, 196, 203, 199, 196, 203, 199, 196, 206, 202, 199, 199, 194, 191, 203, 198, 195, 210, 205, 202, 202, 197, 194, 192, 187, 184, 204, 199, 196, 211, 206, 203, 196, 191, 188, 181, 176, 173, 186, 181, 178, 194, 189, 186, 195, 190, 187, 190, 185, 182, 187, 182, 179, 185, 180, 177, 180, 176, 173, 163, 163, 161, 176, 175, 173, 192, 185, 179, 186, 177, 172, 171, 162, 157, 164, 155, 150, 146, 135, 129, 117, 104, 98, 96, 79, 72, 69, 53, 53, 52, 44, 55, 51, 52, 72, 40, 54, 80, 26, 47, 74, 9, 31, 55, 0, 8, 17, 33, 21, 7, 93, 62, 18, 140, 93, 15, 188, 127, 21, 230, 154, 32, 220, 137, 7, 211, 127, 5, 242, 163, 45, 238, 168, 54, 236, 176, 64, 232, 180, 70, 225, 176, 71, 223, 175, 77, 224, 178, 84, 223, 176, 84, 221, 170, 78, 229, 173, 76, 231, 179, 80, 223, 183, 88, 210, 184, 89, 195, 182, 88, 180, 180, 84, 172, 178, 80, 163, 178, 77, 156, 174, 75, 142, 167, 75, 130, 159, 75, 120, 152, 76, 102, 137, 69, 91, 125, 64, 102, 133, 76, 119, 149, 99, 104, 133, 87, 75, 102, 61, 55, 76, 43, 56, 72, 43, 61, 70, 41, 67, 71, 38, 96, 93, 50, 130, 123, 69, 121, 107, 44, 119, 100, 31, 122, 100, 27, 134, 111, 35, 149, 123, 48, 160, 132, 58, 171, 143, 69, 179, 151, 78, 196, 167, 97, 200, 170, 97, 219, 189, 103, 237, 203, 114, 244, 206, 125, 252, 211, 132, 255, 213, 140, 251, 207, 132, 245, 204, 122, 255, 219, 144, 153, 120, 67, 127, 100, 70, 164, 143, 138, 118, 107, 111, 86, 86, 86, 98, 100, 99, 108, 104, 105, 110, 104, 106, 127, 121, 121, 146, 141, 138, 157, 152, 148, 173, 168, 162, 190, 186, 177, 194, 190, 181, 195, 191, 182, 190, 185, 179, 191, 186, 180, 195, 190, 186, 189, 184, 181, 173, 168, 165, 167, 162, 159, 171, 166, 163, 178, 174, 171, 175, 171, 168, 168, 163, 159, 159, 154, 150, 156, 148, 145, 157, 150, 144, 159, 152, 146, 161, 154, 148, 117, 110, 104, 126, 119, 113, 143, 136, 130, 160, 153, 147, 161, 156, 152, 145, 140, 136, 121, 117, 114, 106, 102, 99, 119, 114, 110, 117, 112, 108, 135, 130, 126, 165, 160, 156, 176, 171, 167, 167, 162, 158, 165, 157, 154, 172, 164, 161, 151, 143, 140, 158, 150, 147, 159, 151, 148, 150, 142, 139, 145, 135, 133, 149, 139, 137, 153, 143, 141, 154, 144, 142, 174, 167, 161, 169, 162, 156, 162, 155, 149, 156, 149, 143, 156, 149, 143, 159, 152, 146, 164, 157, 151, 167, 160, 154, 172, 165, 159, 166, 159, 153, 154, 147, 141, 146, 139, 133, 150, 143, 137, 161, 154, 148, 167, 160, 154, 166, 159, 153, 162, 157, 151, 160, 155, 149, 153, 148, 142, 143, 138, 132, 136, 129, 123, 136, 129, 123, 145, 138, 132, 154, 147, 141, 154, 145, 140, 148, 139, 134, 148, 139, 134, 155, 146, 141, 161, 152, 147, 159, 150, 145, 155, 146, 141, 153, 144, 139, 156, 147, 140, 159, 150, 143, 161, 152, 145, 162, 153, 146, 160, 151, 146, 160, 151, 146, 161, 152, 147, 162, 153, 148, 148, 141, 135, 150, 143, 137, 155, 147, 144, 161, 153, 150, 167, 162, 158, 174, 169, 165, 181, 176, 172, 184, 179, 175, 191, 186, 182, 191, 186, 182, 191, 186, 182, 189, 184, 180, 185, 181, 178, 185, 181, 178, 187, 183, 182, 190, 186, 185, 186, 184, 187, 191, 189, 192, 197, 196, 201, 203, 202, 207, 207, 208, 213, 212, 213, 218, 218, 219, 224, 222, 223, 228, 228, 231, 238, 229, 232, 239, 232, 235, 240, 236, 239, 244, 239, 242, 247, 241, 244, 249, 242, 245, 250, 243, 246, 251, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 248, 244, 248, 249, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 226, 229, 234, 227, 230, 235, 228, 231, 236, 230, 233, 238, 231, 234, 239, 233, 236, 241, 234, 237, 242, 235, 238, 243, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 239, 242, 247, 238, 241, 246, 235, 238, 243, 232, 235, 240, 229, 232, 237, 227, 231, 234, 224, 224, 226, 221, 221, 221, 218, 218, 218, 216, 216, 216, 217, 216, 214, 215, 214, 212, 212, 211, 209, 210, 209, 207, 210, 209, 207, 207, 206, 204, 207, 203, 200, 206, 202, 199, 206, 202, 199, 205, 201, 198, 203, 199, 196, 200, 196, 193, 197, 192, 188, 194, 189, 185, 190, 185, 181, 188, 183, 179, 189, 181, 178, 186, 178, 175, 183, 176, 170, 180, 173, 167, 182, 173, 168, 181, 172, 167, 179, 170, 165, 179, 170, 165, 177, 168, 161, 173, 164, 157, 166, 157, 150, 160, 153, 145, 162, 157, 151, 166, 163, 158, 172, 169, 164, 177, 174, 169, 178, 173, 169, 175, 170, 166, 169, 164, 161, 165, 160, 157, 158, 153, 150, 149, 144, 141, 145, 137, 135, 144, 136, 134, 141, 132, 133, 136, 127, 128, 138, 129, 130, 142, 137, 134, 163, 160, 155, 153, 150, 143, 149, 146, 139, 155, 152, 145, 159, 154, 148, 154, 149, 143, 149, 144, 138, 147, 142, 136, 167, 160, 154, 153, 146, 140, 137, 130, 124, 132, 125, 119, 140, 133, 127, 157, 150, 144, 172, 165, 159, 180, 173, 167, 171, 164, 158, 160, 153, 147, 148, 141, 135, 145, 138, 132, 151, 142, 137, 154, 145, 140, 151, 142, 137, 146, 137, 132, 141, 132, 127, 124, 115, 110, 111, 100, 96, 111, 100, 96, 114, 103, 99, 114, 103, 99, 120, 109, 105, 134, 123, 119, 145, 131, 128, 157, 143, 140, 161, 147, 144, 150, 136, 133, 137, 123, 120, 131, 117, 114, 128, 114, 111, 124, 110, 107, 123, 109, 106, 135, 121, 118, 150, 136, 133, 151, 137, 134, 132, 118, 115, 108, 94, 91, 96, 82, 79, 95, 84, 78, 81, 71, 62, 87, 79, 68, 90, 80, 71, 85, 74, 68, 86, 72, 69, 96, 82, 79, 112, 96, 96, 122, 104, 104, 110, 90, 89, 101, 80, 77, 86, 62, 58, 77, 54, 46, 65, 41, 29, 50, 27, 13, 45, 19, 2, 42, 17, 0, 49, 22, 3, 52, 25, 6, 56, 30, 13, 55, 32, 16, 51, 29, 15, 40, 21, 7, 29, 12, 2, 21, 7, 0, 21, 10, 4, 15, 7, 4, 7, 3, 2, 3, 1, 2, 3, 3, 5, 2, 3, 7, 0, 3, 8, 0, 2, 5, 6, 8, 7, 5, 7, 6, 3, 4, 6, 0, 3, 6, 0, 2, 5, 0, 2, 6, 0, 3, 6, 0, 3, 6, 5, 10, 14, 6, 10, 13, 9, 11, 10, 11, 10, 8, 13, 8, 4, 13, 6, 0, 12, 3, 0, 11, 2, 0, 11, 2, 0, 11, 2, 0, 15, 4, 0, 23, 10, 2, 30, 13, 3, 35, 17, 5, 45, 26, 12, 58, 36, 23, 75, 53, 40, 114, 95, 81, 131, 113, 101, 122, 105, 95, 124, 111, 103, 135, 124, 118, 135, 126, 121, 130, 121, 116, 133, 124, 119, 142, 133, 128, 142, 132, 130, 126, 116, 114, 128, 118, 116, 161, 151, 149, 163, 153, 151, 124, 114, 112, 163, 155, 153, 178, 170, 168, 156, 148, 146, 156, 148, 146, 166, 161, 158, 158, 153, 150, 165, 159, 159, 176, 171, 168, 179, 171, 169, 141, 133, 130, 183, 175, 172, 149, 141, 138, 168, 160, 158, 178, 170, 168, 169, 164, 161, 180, 175, 172, 204, 199, 196, 191, 186, 183, 159, 153, 153, 181, 175, 175, 206, 202, 201, 184, 180, 179, 189, 185, 184, 216, 215, 213, 219, 218, 216, 210, 210, 208, 208, 208, 206, 217, 217, 215, 227, 227, 225, 232, 232, 230, 236, 236, 234, 241, 241, 239, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 245, 245, 243, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 250, 250, 248, 250, 250, 248, 250, 250, 248, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 248, 248, 246, 247, 247, 245, 246, 246, 244, 246, 246, 244, 245, 245, 243, 245, 247, 246, 243, 245, 244, 241, 243, 242, 241, 243, 242, 240, 240, 238, 237, 237, 235, 231, 231, 229, 227, 227, 225, 219, 218, 216, 217, 216, 214, 216, 215, 211, 213, 212, 208, 205, 204, 200, 197, 196, 192, 199, 198, 194, 207, 203, 200, 200, 195, 192, 196, 191, 188, 203, 198, 195, 209, 204, 201, 205, 200, 197, 204, 199, 196, 209, 204, 201, 211, 206, 203, 185, 180, 177, 180, 175, 172, 184, 179, 176, 196, 191, 188, 199, 194, 191, 190, 185, 182, 190, 185, 182, 201, 197, 194, 160, 162, 159, 166, 167, 162, 183, 173, 171, 189, 175, 172, 185, 174, 172, 182, 172, 170, 159, 152, 146, 125, 116, 107, 97, 80, 72, 72, 57, 54, 58, 46, 56, 57, 55, 77, 48, 63, 96, 37, 63, 100, 15, 49, 84, 0, 26, 50, 1, 4, 11, 52, 34, 12, 104, 70, 7, 168, 115, 23, 217, 146, 32, 208, 126, 1, 198, 113, 0, 226, 145, 27, 224, 154, 33, 229, 167, 48, 235, 178, 62, 233, 181, 69, 233, 182, 77, 234, 182, 81, 231, 179, 80, 227, 173, 73, 235, 173, 70, 238, 179, 75, 238, 188, 89, 232, 192, 96, 219, 188, 95, 202, 179, 85, 187, 171, 75, 179, 169, 71, 173, 170, 73, 166, 171, 77, 159, 174, 83, 146, 169, 81, 122, 147, 64, 105, 129, 51, 111, 135, 57, 129, 151, 78, 128, 149, 84, 109, 127, 67, 101, 115, 62, 110, 118, 67, 107, 111, 60, 97, 96, 40, 105, 97, 34, 125, 113, 39, 121, 104, 24, 126, 106, 20, 138, 113, 29, 153, 127, 43, 165, 138, 57, 174, 147, 68, 187, 160, 83, 201, 172, 96, 219, 187, 112, 219, 186, 109, 238, 205, 124, 255, 223, 141, 254, 216, 135, 246, 203, 124, 250, 203, 125, 252, 206, 129, 249, 207, 135, 202, 167, 109, 155, 129, 92, 157, 140, 124, 114, 102, 104, 76, 71, 78, 103, 101, 104, 80, 78, 79, 126, 122, 121, 127, 123, 120, 144, 139, 135, 163, 158, 152, 178, 171, 163, 195, 188, 180, 203, 196, 188, 196, 189, 181, 189, 182, 176, 186, 179, 173, 190, 182, 179, 197, 189, 187, 189, 184, 181, 176, 171, 168, 172, 168, 165, 178, 174, 171, 179, 175, 172, 160, 156, 153, 145, 140, 137, 144, 139, 135, 154, 146, 143, 151, 143, 140, 134, 127, 121, 118, 111, 105, 101, 94, 88, 139, 132, 126, 170, 162, 159, 164, 156, 153, 141, 136, 133, 129, 124, 121, 127, 123, 120, 126, 122, 119, 106, 101, 97, 137, 132, 128, 159, 154, 150, 155, 150, 146, 148, 143, 139, 152, 147, 143, 156, 148, 145, 150, 142, 139, 146, 138, 135, 145, 137, 134, 140, 132, 129, 136, 128, 125, 140, 130, 128, 152, 142, 140, 165, 155, 153, 173, 163, 161, 164, 157, 151, 166, 159, 153, 168, 161, 155, 169, 162, 156, 164, 157, 151, 154, 147, 141, 139, 132, 126, 129, 122, 116, 137, 130, 124, 141, 134, 128, 146, 139, 133, 152, 145, 139, 162, 155, 149, 169, 162, 156, 165, 158, 152, 157, 150, 144, 150, 145, 139, 147, 142, 136, 143, 138, 132, 141, 136, 130, 144, 137, 131, 148, 141, 135, 150, 143, 137, 152, 145, 139, 155, 146, 141, 150, 141, 136, 153, 144, 139, 163, 154, 149, 170, 161, 156, 165, 156, 151, 155, 146, 141, 149, 140, 135, 169, 160, 153, 169, 160, 153, 167, 158, 151, 163, 154, 147, 158, 149, 144, 155, 146, 141, 155, 146, 141, 156, 147, 142, 153, 146, 140, 157, 150, 144, 164, 156, 153, 171, 163, 160, 175, 170, 166, 178, 173, 169, 180, 175, 171, 180, 175, 171, 178, 173, 169, 180, 175, 171, 182, 177, 173, 182, 177, 173, 182, 178, 175, 185, 181, 178, 190, 186, 185, 193, 189, 188, 189, 187, 190, 192, 190, 193, 195, 194, 199, 199, 198, 203, 203, 204, 209, 211, 212, 217, 220, 221, 226, 226, 227, 232, 235, 238, 245, 236, 239, 246, 237, 240, 245, 239, 242, 247, 240, 243, 248, 241, 244, 249, 241, 244, 249, 240, 243, 248, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 248, 244, 248, 249, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 226, 229, 234, 227, 230, 235, 228, 231, 236, 230, 233, 238, 231, 234, 239, 233, 236, 241, 234, 237, 242, 235, 238, 243, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 238, 241, 246, 236, 239, 244, 233, 236, 241, 230, 233, 238, 227, 230, 235, 225, 229, 232, 225, 225, 227, 222, 222, 222, 219, 219, 219, 217, 217, 217, 218, 217, 215, 216, 215, 213, 213, 212, 210, 210, 209, 207, 210, 209, 207, 207, 206, 204, 207, 203, 200, 206, 202, 199, 206, 202, 199, 205, 201, 198, 203, 199, 196, 200, 196, 193, 197, 192, 188, 194, 189, 185, 190, 185, 181, 188, 183, 179, 188, 180, 177, 186, 178, 175, 182, 175, 169, 179, 172, 166, 180, 171, 166, 180, 171, 166, 180, 171, 166, 182, 173, 168, 182, 173, 166, 179, 170, 163, 173, 164, 157, 168, 161, 153, 167, 162, 158, 168, 165, 160, 170, 167, 162, 171, 168, 163, 172, 167, 163, 170, 165, 161, 168, 163, 160, 167, 162, 159, 178, 173, 170, 166, 161, 158, 159, 151, 149, 157, 149, 147, 151, 142, 143, 142, 133, 134, 142, 133, 134, 147, 142, 139, 147, 142, 138, 136, 133, 126, 135, 132, 125, 149, 146, 139, 159, 154, 148, 153, 148, 142, 144, 139, 133, 141, 136, 130, 126, 119, 113, 125, 118, 112, 128, 121, 115, 139, 132, 126, 153, 146, 140, 161, 154, 148, 159, 152, 146, 155, 148, 142, 140, 133, 127, 140, 133, 127, 145, 138, 132, 155, 148, 142, 161, 152, 147, 155, 146, 141, 138, 129, 124, 123, 114, 109, 99, 90, 85, 120, 111, 106, 126, 115, 111, 124, 113, 109, 142, 131, 127, 162, 151, 147, 162, 151, 147, 155, 144, 140, 145, 131, 128, 148, 134, 131, 141, 127, 124, 129, 115, 112, 131, 117, 114, 142, 128, 125, 141, 127, 124, 129, 115, 112, 146, 132, 129, 150, 136, 133, 144, 130, 127, 116, 102, 99, 80, 66, 63, 67, 53, 50, 90, 76, 73, 119, 108, 102, 108, 99, 90, 103, 95, 84, 95, 85, 76, 88, 78, 69, 92, 79, 73, 100, 86, 83, 106, 88, 86, 105, 85, 84, 98, 77, 74, 91, 68, 62, 63, 38, 31, 51, 24, 13, 46, 20, 5, 48, 21, 2, 60, 33, 12, 55, 27, 5, 58, 30, 8, 58, 32, 9, 57, 32, 10, 53, 31, 10, 48, 27, 10, 39, 22, 6, 30, 16, 3, 24, 14, 4, 22, 15, 7, 15, 12, 7, 7, 7, 5, 1, 5, 6, 0, 4, 7, 0, 5, 8, 0, 4, 9, 0, 3, 8, 0, 1, 4, 0, 1, 4, 0, 2, 6, 0, 3, 6, 0, 2, 7, 0, 3, 7, 0, 3, 9, 0, 3, 9, 0, 3, 9, 0, 3, 5, 0, 2, 5, 2, 4, 3, 7, 6, 4, 11, 8, 3, 14, 9, 3, 17, 10, 2, 22, 15, 9, 15, 8, 0, 13, 4, 0, 21, 8, 0, 28, 11, 1, 30, 11, 0, 32, 9, 0, 33, 10, 0, 66, 40, 27, 95, 72, 58, 122, 103, 89, 140, 124, 111, 141, 128, 119, 124, 115, 106, 114, 107, 99, 121, 114, 108, 137, 128, 123, 143, 134, 129, 143, 133, 131, 133, 123, 121, 132, 122, 120, 148, 138, 136, 150, 140, 138, 130, 120, 118, 140, 132, 130, 191, 183, 181, 167, 159, 157, 150, 142, 140, 178, 173, 170, 185, 180, 177, 179, 173, 173, 178, 173, 170, 185, 177, 175, 146, 138, 135, 177, 169, 166, 148, 140, 137, 176, 168, 166, 170, 162, 160, 173, 168, 165, 171, 166, 163, 194, 189, 186, 187, 182, 179, 163, 157, 157, 183, 177, 177, 200, 196, 195, 180, 176, 175, 193, 189, 188, 221, 220, 218, 218, 217, 215, 207, 207, 205, 205, 205, 203, 217, 217, 215, 227, 227, 225, 229, 229, 227, 233, 233, 231, 240, 240, 238, 242, 242, 240, 243, 243, 241, 243, 243, 241, 244, 244, 242, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 250, 250, 248, 250, 250, 248, 250, 250, 248, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 248, 248, 246, 247, 247, 245, 246, 246, 244, 246, 246, 244, 245, 245, 243, 244, 246, 245, 242, 244, 243, 241, 243, 242, 240, 242, 241, 240, 240, 238, 237, 237, 235, 232, 232, 230, 228, 228, 226, 218, 217, 215, 220, 219, 217, 224, 223, 219, 222, 221, 217, 212, 211, 207, 201, 200, 196, 200, 199, 195, 205, 204, 200, 210, 205, 202, 196, 191, 188, 192, 187, 184, 199, 194, 191, 199, 194, 191, 193, 188, 185, 198, 193, 190, 210, 205, 202, 201, 196, 193, 193, 188, 185, 188, 183, 180, 195, 190, 187, 203, 198, 195, 194, 189, 186, 190, 185, 182, 200, 199, 195, 180, 185, 181, 168, 170, 165, 172, 162, 160, 183, 167, 167, 193, 179, 179, 192, 182, 181, 160, 155, 149, 118, 111, 101, 99, 85, 74, 78, 60, 56, 61, 48, 58, 56, 52, 77, 49, 63, 100, 44, 75, 119, 28, 73, 115, 11, 54, 89, 0, 7, 35, 13, 12, 10, 66, 45, 0, 144, 101, 22, 199, 134, 30, 202, 123, 5, 199, 114, 0, 217, 134, 14, 223, 149, 26, 223, 155, 30, 226, 167, 41, 236, 180, 57, 245, 189, 76, 245, 189, 80, 236, 179, 72, 228, 170, 63, 234, 171, 65, 234, 173, 67, 234, 179, 78, 236, 186, 87, 229, 185, 88, 213, 173, 77, 199, 163, 66, 192, 163, 63, 191, 169, 70, 185, 172, 76, 174, 173, 80, 160, 167, 74, 141, 151, 62, 128, 143, 52, 133, 146, 54, 144, 157, 67, 123, 134, 55, 112, 120, 47, 109, 114, 47, 116, 119, 52, 117, 116, 49, 113, 106, 34, 117, 109, 26, 133, 119, 30, 140, 121, 26, 150, 127, 31, 159, 134, 41, 165, 138, 47, 172, 144, 60, 185, 158, 77, 203, 176, 97, 217, 188, 108, 233, 198, 116, 231, 194, 114, 243, 207, 131, 255, 219, 144, 255, 213, 134, 253, 206, 124, 255, 208, 124, 255, 209, 130, 217, 172, 107, 140, 106, 60, 143, 123, 99, 128, 117, 111, 94, 89, 93, 97, 94, 101, 98, 93, 99, 120, 114, 116, 129, 126, 121, 142, 139, 132, 167, 162, 156, 180, 176, 167, 183, 176, 166, 194, 187, 177, 205, 198, 190, 201, 194, 186, 198, 191, 185, 198, 190, 187, 200, 192, 190, 201, 193, 191, 194, 189, 186, 184, 179, 176, 177, 174, 169, 178, 175, 170, 144, 140, 137, 150, 146, 143, 161, 156, 153, 165, 160, 157, 154, 146, 143, 130, 122, 119, 111, 104, 98, 104, 97, 91, 155, 148, 142, 177, 170, 164, 183, 175, 172, 165, 157, 154, 148, 143, 140, 148, 143, 140, 145, 141, 138, 135, 131, 128, 130, 125, 121, 158, 153, 149, 163, 158, 154, 142, 137, 133, 139, 134, 130, 159, 154, 150, 162, 154, 151, 142, 134, 131, 118, 110, 107, 114, 106, 103, 117, 109, 106, 133, 125, 122, 155, 145, 143, 167, 157, 155, 167, 157, 155, 162, 152, 150, 156, 149, 143, 160, 153, 147, 162, 155, 149, 154, 147, 141, 141, 134, 128, 133, 126, 120, 134, 127, 121, 138, 131, 125, 143, 136, 130, 148, 141, 135, 152, 145, 139, 155, 148, 142, 161, 154, 148, 167, 160, 154, 167, 160, 154, 162, 155, 149, 161, 156, 150, 157, 152, 146, 154, 149, 143, 153, 148, 142, 155, 148, 142, 153, 146, 140, 147, 140, 134, 141, 134, 128, 133, 124, 119, 136, 127, 122, 145, 136, 131, 154, 145, 140, 157, 148, 143, 157, 148, 143, 161, 152, 147, 168, 159, 154, 161, 152, 145, 160, 151, 144, 158, 149, 142, 153, 144, 137, 149, 140, 135, 148, 139, 134, 150, 141, 136, 153, 144, 139, 158, 151, 145, 161, 154, 148, 165, 157, 154, 168, 160, 157, 165, 160, 156, 162, 157, 153, 158, 153, 149, 155, 150, 146, 159, 154, 150, 164, 159, 155, 170, 165, 161, 176, 171, 167, 181, 177, 174, 187, 183, 180, 193, 189, 188, 198, 194, 193, 195, 193, 196, 197, 195, 198, 198, 197, 202, 202, 201, 206, 206, 207, 212, 215, 216, 221, 226, 227, 232, 233, 234, 239, 237, 240, 247, 238, 241, 248, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 238, 241, 246, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 248, 244, 248, 249, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 226, 229, 234, 227, 230, 235, 228, 231, 236, 230, 233, 238, 231, 234, 239, 233, 236, 241, 234, 237, 242, 235, 238, 243, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 239, 242, 247, 238, 241, 246, 237, 240, 245, 235, 238, 243, 232, 235, 240, 228, 231, 236, 225, 228, 233, 223, 227, 230, 226, 226, 228, 223, 223, 223, 220, 220, 220, 218, 218, 218, 219, 218, 216, 217, 216, 214, 214, 213, 211, 211, 210, 208, 210, 209, 207, 207, 206, 204, 207, 203, 200, 206, 202, 199, 206, 202, 199, 205, 201, 198, 203, 199, 196, 200, 196, 193, 199, 194, 190, 195, 190, 186, 192, 187, 183, 189, 184, 180, 190, 182, 179, 188, 180, 177, 184, 177, 171, 181, 174, 168, 179, 170, 165, 176, 167, 162, 172, 163, 158, 170, 161, 156, 170, 161, 154, 169, 160, 153, 166, 157, 150, 163, 156, 148, 160, 155, 151, 159, 156, 151, 160, 157, 152, 162, 159, 154, 163, 160, 155, 163, 160, 155, 165, 160, 157, 165, 160, 157, 179, 174, 171, 166, 161, 158, 162, 154, 152, 164, 156, 154, 161, 152, 153, 151, 142, 143, 152, 143, 144, 159, 154, 151, 157, 152, 148, 147, 144, 139, 148, 143, 139, 159, 154, 150, 161, 156, 152, 148, 143, 139, 140, 135, 131, 142, 137, 133, 127, 119, 116, 126, 118, 115, 130, 122, 119, 141, 133, 130, 152, 144, 141, 154, 146, 143, 146, 136, 134, 137, 127, 125, 144, 137, 131, 149, 142, 136, 157, 148, 143, 159, 150, 145, 151, 142, 137, 137, 128, 123, 122, 113, 108, 112, 103, 98, 115, 104, 100, 145, 134, 130, 154, 143, 139, 146, 135, 131, 154, 143, 139, 158, 147, 143, 141, 130, 126, 126, 115, 111, 126, 112, 109, 121, 107, 104, 119, 105, 102, 128, 114, 111, 146, 132, 129, 159, 145, 142, 157, 143, 140, 148, 134, 131, 132, 118, 115, 127, 113, 110, 120, 106, 103, 113, 99, 96, 102, 88, 85, 92, 78, 75, 92, 78, 75, 96, 85, 79, 96, 88, 77, 102, 96, 82, 108, 100, 89, 110, 100, 91, 111, 98, 90, 108, 95, 89, 100, 82, 78, 89, 70, 64, 77, 57, 50, 70, 47, 39, 44, 17, 6, 45, 17, 3, 49, 22, 1, 48, 20, 0, 61, 34, 7, 53, 26, 0, 59, 32, 5, 58, 32, 7, 56, 32, 8, 50, 30, 6, 45, 27, 7, 39, 23, 7, 32, 20, 6, 27, 19, 8, 21, 17, 8, 14, 13, 8, 5, 9, 8, 0, 9, 8, 0, 9, 11, 0, 9, 13, 0, 8, 14, 0, 7, 13, 0, 2, 7, 0, 5, 10, 0, 11, 17, 2, 15, 21, 2, 17, 24, 0, 16, 24, 0, 13, 23, 0, 11, 19, 0, 4, 12, 0, 4, 11, 0, 3, 9, 0, 3, 6, 1, 5, 6, 7, 7, 5, 12, 11, 7, 17, 14, 9, 11, 6, 0, 15, 8, 0, 20, 11, 2, 26, 14, 2, 28, 10, 0, 30, 8, 0, 41, 15, 2, 52, 26, 11, 42, 14, 0, 55, 29, 16, 74, 52, 39, 104, 86, 74, 129, 116, 107, 127, 118, 109, 121, 114, 106, 128, 121, 113, 141, 132, 127, 137, 128, 123, 136, 126, 124, 144, 134, 132, 147, 137, 135, 138, 128, 126, 140, 130, 128, 156, 146, 144, 140, 132, 130, 186, 178, 176, 170, 162, 160, 156, 148, 146, 178, 173, 170, 188, 183, 180, 185, 179, 179, 172, 167, 164, 188, 180, 178, 154, 146, 143, 172, 164, 161, 153, 145, 142, 189, 181, 179, 167, 159, 157, 187, 182, 179, 170, 165, 162, 183, 178, 175, 188, 183, 180, 175, 169, 169, 191, 185, 185, 197, 193, 192, 175, 171, 170, 190, 186, 185, 216, 215, 213, 217, 216, 214, 204, 204, 202, 202, 202, 200, 216, 216, 214, 226, 226, 224, 226, 226, 224, 230, 230, 228, 239, 239, 237, 242, 242, 240, 242, 242, 240, 243, 243, 241, 244, 244, 242, 244, 244, 242, 245, 245, 243, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 250, 250, 248, 250, 250, 248, 250, 250, 248, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 248, 248, 246, 247, 247, 245, 246, 246, 244, 246, 246, 244, 245, 245, 243, 244, 246, 245, 243, 245, 244, 242, 244, 243, 241, 243, 242, 242, 242, 240, 239, 239, 237, 234, 234, 232, 230, 230, 228, 226, 226, 224, 222, 222, 220, 221, 220, 216, 223, 222, 218, 220, 219, 215, 211, 210, 206, 205, 204, 200, 204, 203, 199, 212, 207, 204, 203, 198, 195, 195, 190, 187, 195, 190, 187, 200, 195, 192, 198, 193, 190, 198, 193, 190, 202, 197, 194, 206, 201, 198, 209, 204, 201, 196, 191, 188, 187, 182, 179, 198, 193, 190, 199, 194, 191, 187, 182, 179, 179, 178, 174, 194, 201, 194, 179, 181, 176, 177, 167, 165, 182, 166, 166, 184, 169, 172, 180, 170, 169, 152, 147, 141, 115, 111, 100, 108, 96, 84, 88, 71, 64, 70, 53, 63, 58, 52, 78, 50, 65, 106, 54, 88, 136, 47, 101, 148, 35, 89, 135, 17, 51, 97, 0, 13, 34, 30, 23, 0, 107, 76, 11, 163, 107, 14, 185, 111, 2, 202, 118, 6, 214, 129, 12, 225, 148, 20, 221, 151, 19, 230, 163, 30, 244, 181, 50, 247, 186, 61, 240, 178, 59, 238, 173, 55, 238, 175, 61, 240, 180, 68, 230, 173, 66, 228, 174, 68, 235, 182, 78, 237, 184, 82, 230, 177, 75, 223, 171, 69, 219, 171, 69, 215, 176, 75, 202, 172, 74, 182, 163, 68, 166, 156, 61, 161, 156, 62, 165, 162, 65, 166, 164, 63, 163, 161, 61, 134, 132, 45, 124, 121, 40, 117, 114, 37, 117, 111, 33, 120, 115, 34, 127, 120, 32, 141, 131, 34, 155, 142, 38, 158, 141, 33, 172, 151, 44, 179, 156, 54, 179, 155, 57, 186, 161, 69, 203, 179, 93, 215, 193, 108, 222, 196, 111, 235, 198, 109, 242, 200, 116, 247, 205, 133, 246, 203, 134, 249, 202, 124, 255, 210, 124, 255, 202, 109, 232, 176, 93, 151, 102, 44, 117, 81, 45, 108, 89, 75, 84, 76, 74, 87, 85, 86, 93, 91, 94, 83, 72, 78, 131, 119, 121, 132, 127, 121, 152, 150, 138, 181, 177, 166, 190, 186, 175, 186, 180, 168, 192, 185, 175, 203, 196, 188, 200, 193, 185, 200, 193, 187, 203, 195, 192, 202, 194, 192, 197, 188, 189, 189, 184, 181, 184, 179, 176, 175, 172, 167, 166, 163, 158, 144, 140, 137, 152, 148, 145, 162, 157, 154, 158, 153, 150, 143, 135, 132, 133, 125, 122, 148, 141, 135, 171, 164, 158, 186, 179, 173, 178, 171, 165, 161, 153, 150, 146, 138, 135, 140, 135, 132, 145, 140, 137, 141, 137, 134, 133, 129, 126, 179, 174, 170, 179, 174, 170, 169, 164, 160, 158, 153, 149, 157, 152, 148, 160, 155, 151, 147, 139, 136, 125, 117, 114, 125, 117, 114, 127, 119, 116, 141, 133, 130, 162, 154, 151, 177, 167, 165, 174, 164, 162, 159, 149, 147, 146, 136, 134, 149, 142, 136, 150, 143, 137, 147, 140, 134, 141, 134, 128, 137, 130, 124, 143, 136, 130, 157, 150, 144, 170, 163, 157, 162, 155, 149, 163, 156, 150, 158, 151, 145, 150, 143, 137, 149, 142, 136, 156, 149, 143, 163, 156, 150, 166, 159, 153, 165, 160, 154, 166, 161, 155, 166, 161, 155, 163, 158, 152, 159, 152, 146, 151, 144, 138, 145, 138, 132, 141, 134, 128, 145, 136, 131, 145, 136, 131, 148, 139, 134, 153, 144, 139, 152, 143, 138, 150, 141, 136, 153, 144, 139, 158, 149, 144, 145, 136, 129, 144, 135, 128, 142, 133, 126, 139, 130, 123, 137, 128, 123, 139, 130, 125, 144, 135, 130, 148, 139, 134, 152, 145, 139, 153, 146, 140, 155, 147, 144, 157, 149, 146, 155, 150, 146, 155, 150, 146, 154, 149, 145, 153, 148, 144, 162, 157, 153, 167, 162, 158, 175, 170, 166, 181, 176, 172, 184, 180, 177, 188, 184, 181, 192, 188, 187, 195, 191, 190, 193, 191, 194, 197, 195, 198, 201, 200, 205, 206, 205, 210, 211, 212, 217, 219, 220, 225, 227, 228, 233, 233, 234, 239, 233, 236, 243, 234, 237, 244, 236, 239, 244, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 248, 244, 248, 249, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 226, 229, 234, 227, 230, 235, 228, 231, 236, 230, 233, 238, 231, 234, 239, 233, 236, 241, 234, 237, 242, 235, 238, 243, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 238, 241, 246, 238, 241, 246, 236, 239, 244, 234, 237, 242, 231, 234, 239, 227, 230, 235, 224, 227, 232, 222, 226, 229, 225, 226, 228, 223, 223, 223, 220, 220, 220, 219, 219, 219, 219, 217, 218, 218, 217, 215, 215, 214, 212, 212, 211, 209, 210, 209, 207, 207, 206, 204, 207, 203, 200, 206, 202, 199, 206, 202, 199, 205, 201, 198, 203, 199, 196, 200, 197, 192, 201, 196, 192, 197, 192, 188, 194, 189, 185, 191, 186, 182, 192, 184, 181, 190, 182, 179, 186, 179, 173, 183, 176, 170, 189, 180, 175, 182, 173, 168, 172, 163, 158, 164, 155, 150, 161, 152, 145, 160, 151, 144, 159, 150, 143, 157, 150, 144, 155, 150, 144, 158, 153, 147, 163, 158, 154, 168, 163, 157, 170, 165, 161, 170, 165, 161, 168, 163, 159, 167, 162, 158, 158, 153, 150, 145, 140, 136, 141, 133, 131, 145, 137, 135, 141, 133, 131, 130, 122, 120, 130, 121, 122, 138, 133, 130, 149, 145, 142, 146, 143, 138, 154, 151, 146, 169, 166, 161, 172, 167, 163, 164, 159, 155, 167, 162, 158, 179, 174, 170, 180, 175, 171, 171, 163, 160, 159, 151, 148, 156, 148, 145, 160, 152, 149, 164, 156, 153, 160, 152, 149, 155, 147, 144, 138, 131, 125, 144, 137, 131, 147, 140, 134, 140, 133, 127, 131, 122, 117, 127, 118, 113, 135, 126, 121, 144, 135, 130, 143, 134, 129, 148, 139, 134, 140, 129, 125, 134, 123, 119, 135, 124, 120, 125, 114, 110, 118, 107, 103, 130, 119, 115, 154, 140, 137, 144, 130, 127, 143, 129, 126, 154, 140, 137, 154, 141, 135, 136, 123, 117, 116, 103, 97, 108, 95, 89, 159, 145, 142, 122, 107, 104, 90, 75, 72, 94, 79, 76, 117, 102, 99, 122, 108, 105, 102, 88, 85, 80, 67, 61, 111, 101, 91, 125, 115, 103, 133, 123, 113, 123, 110, 102, 101, 88, 82, 82, 67, 62, 70, 53, 46, 64, 45, 38, 48, 26, 15, 47, 19, 7, 33, 1, 0, 58, 26, 5, 71, 39, 14, 60, 31, 1, 67, 38, 6, 57, 28, 0, 54, 24, 0, 53, 27, 0, 53, 31, 7, 50, 34, 11, 44, 31, 14, 36, 27, 12, 29, 20, 11, 22, 18, 9, 17, 16, 11, 10, 15, 9, 3, 12, 9, 0, 11, 11, 0, 12, 17, 0, 14, 21, 0, 14, 25, 0, 13, 24, 5, 19, 28, 10, 24, 33, 15, 33, 43, 18, 42, 52, 18, 46, 58, 14, 46, 59, 11, 44, 59, 8, 41, 56, 9, 41, 54, 8, 36, 48, 5, 27, 38, 1, 20, 27, 0, 13, 19, 1, 11, 13, 2, 10, 12, 5, 10, 6, 19, 19, 11, 16, 12, 1, 16, 9, 0, 22, 12, 2, 31, 14, 6, 31, 11, 0, 33, 9, 0, 37, 11, 0, 49, 21, 7, 48, 22, 5, 39, 13, 0, 45, 24, 7, 81, 65, 50, 109, 97, 83, 107, 97, 85, 97, 89, 78, 123, 114, 105, 152, 143, 136, 151, 140, 136, 132, 122, 120, 140, 130, 128, 154, 144, 142, 157, 148, 143, 159, 150, 145, 158, 148, 146, 173, 165, 162, 164, 156, 154, 171, 162, 163, 177, 171, 171, 174, 168, 168, 177, 172, 169, 167, 162, 159, 189, 181, 179, 161, 153, 150, 169, 161, 158, 159, 151, 148, 200, 192, 190, 167, 159, 157, 199, 194, 191, 173, 168, 165, 180, 175, 172, 194, 189, 186, 188, 182, 182, 199, 193, 193, 195, 191, 190, 169, 165, 164, 182, 178, 177, 206, 202, 201, 216, 215, 213, 202, 202, 200, 202, 201, 199, 215, 215, 213, 225, 225, 223, 224, 224, 222, 228, 228, 226, 239, 239, 237, 242, 242, 240, 242, 242, 240, 243, 243, 241, 243, 243, 241, 244, 244, 242, 245, 245, 243, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 250, 250, 248, 250, 250, 248, 250, 250, 248, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 248, 248, 246, 247, 247, 245, 246, 246, 244, 246, 246, 244, 245, 245, 243, 246, 248, 247, 244, 246, 245, 243, 245, 244, 243, 245, 244, 243, 243, 241, 241, 241, 239, 236, 236, 234, 232, 232, 230, 236, 236, 234, 223, 223, 221, 216, 215, 211, 219, 218, 214, 224, 223, 219, 220, 219, 215, 210, 209, 205, 205, 201, 198, 206, 202, 199, 209, 205, 202, 206, 201, 198, 202, 198, 195, 212, 207, 204, 215, 211, 208, 207, 202, 199, 197, 193, 190, 189, 184, 181, 205, 201, 198, 193, 188, 185, 174, 170, 167, 191, 186, 183, 207, 203, 200, 192, 187, 184, 168, 167, 163, 193, 195, 190, 188, 189, 184, 193, 183, 182, 190, 176, 176, 178, 163, 166, 170, 160, 159, 158, 153, 149, 140, 136, 127, 117, 107, 98, 95, 81, 78, 76, 60, 70, 64, 56, 79, 57, 70, 105, 66, 99, 144, 64, 120, 169, 56, 116, 168, 53, 102, 158, 0, 28, 66, 1, 12, 8, 67, 52, 13, 120, 75, 7, 159, 94, 2, 195, 118, 14, 211, 127, 11, 223, 141, 13, 227, 151, 14, 240, 171, 34, 252, 185, 52, 241, 176, 48, 226, 160, 37, 235, 166, 45, 253, 186, 71, 251, 191, 81, 235, 178, 73, 230, 173, 70, 238, 180, 80, 247, 188, 88, 245, 187, 87, 243, 185, 85, 243, 190, 88, 227, 182, 81, 215, 177, 78, 195, 167, 70, 185, 162, 66, 188, 172, 74, 191, 178, 76, 173, 160, 56, 147, 135, 33, 154, 145, 52, 150, 143, 53, 147, 140, 52, 145, 135, 48, 143, 134, 43, 145, 135, 38, 149, 138, 33, 150, 138, 28, 172, 156, 43, 187, 169, 57, 197, 176, 69, 199, 175, 75, 210, 185, 92, 230, 204, 117, 236, 210, 126, 232, 200, 117, 248, 202, 114, 255, 212, 125, 255, 212, 134, 242, 194, 118, 241, 193, 109, 255, 205, 118, 228, 176, 90, 168, 118, 45, 89, 46, 3, 101, 69, 48, 108, 90, 86, 120, 114, 116, 75, 73, 74, 67, 66, 64, 144, 133, 137, 145, 135, 134, 139, 134, 128, 157, 154, 145, 183, 179, 168, 192, 188, 177, 191, 184, 174, 197, 190, 180, 203, 196, 188, 194, 187, 181, 182, 174, 171, 189, 181, 178, 190, 182, 180, 184, 176, 174, 181, 176, 173, 184, 179, 176, 176, 173, 168, 163, 160, 155, 173, 169, 166, 163, 158, 155, 162, 157, 154, 175, 170, 167, 185, 177, 174, 177, 169, 166, 164, 157, 151, 157, 150, 144, 175, 168, 162, 159, 152, 146, 145, 137, 134, 141, 136, 132, 145, 140, 136, 153, 148, 144, 165, 161, 158, 178, 175, 170, 162, 157, 153, 147, 142, 138, 147, 142, 138, 165, 160, 156, 175, 170, 166, 161, 156, 152, 142, 134, 131, 132, 124, 121, 162, 154, 151, 164, 156, 153, 168, 160, 157, 167, 159, 156, 156, 146, 144, 140, 130, 128, 129, 119, 117, 128, 118, 116, 135, 128, 122, 136, 129, 123, 141, 134, 128, 152, 145, 139, 164, 157, 151, 169, 162, 156, 166, 159, 153, 161, 154, 148, 145, 138, 132, 154, 147, 141, 159, 152, 146, 156, 149, 143, 153, 146, 140, 156, 149, 143, 159, 152, 146, 159, 152, 146, 146, 141, 135, 155, 150, 144, 163, 158, 152, 163, 158, 152, 159, 152, 146, 154, 147, 141, 156, 149, 143, 160, 153, 147, 166, 157, 152, 157, 148, 143, 154, 145, 140, 164, 155, 150, 173, 164, 159, 171, 162, 157, 161, 152, 147, 154, 145, 140, 151, 142, 137, 149, 140, 133, 144, 135, 130, 137, 128, 123, 132, 123, 118, 131, 122, 117, 134, 125, 120, 138, 129, 124, 146, 139, 133, 147, 140, 134, 151, 143, 140, 156, 148, 145, 161, 156, 152, 168, 163, 159, 175, 170, 166, 179, 174, 170, 178, 173, 169, 183, 178, 174, 189, 184, 180, 192, 187, 183, 191, 186, 183, 189, 185, 182, 189, 184, 181, 188, 184, 183, 189, 185, 186, 193, 191, 192, 202, 200, 203, 208, 207, 212, 214, 213, 218, 219, 220, 225, 224, 225, 230, 228, 229, 234, 228, 231, 238, 229, 232, 239, 232, 235, 240, 235, 238, 243, 237, 240, 245, 239, 242, 247, 239, 242, 247, 239, 242, 247, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 226, 229, 234, 226, 229, 234, 228, 231, 236, 230, 233, 238, 232, 235, 240, 234, 237, 242, 235, 238, 243, 236, 239, 244, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 236, 239, 244, 234, 237, 242, 232, 235, 240, 230, 234, 237, 229, 230, 232, 226, 227, 229, 221, 222, 224, 219, 221, 220, 219, 219, 219, 218, 218, 218, 216, 215, 213, 214, 213, 211, 211, 207, 204, 211, 207, 204, 210, 206, 203, 209, 205, 202, 208, 203, 199, 205, 200, 196, 203, 198, 194, 202, 197, 193, 196, 191, 187, 197, 192, 186, 197, 192, 186, 196, 191, 185, 195, 188, 182, 190, 183, 177, 185, 178, 172, 181, 174, 168, 183, 174, 169, 181, 172, 167, 178, 169, 164, 175, 166, 161, 172, 163, 158, 171, 162, 157, 170, 161, 156, 169, 160, 155, 168, 161, 155, 163, 156, 148, 158, 151, 145, 157, 150, 142, 159, 152, 146, 158, 151, 145, 154, 147, 141, 150, 143, 137, 154, 146, 143, 153, 146, 140, 152, 144, 141, 149, 141, 138, 143, 138, 134, 136, 131, 127, 128, 123, 120, 123, 118, 115, 132, 128, 125, 120, 119, 115, 116, 115, 111, 127, 126, 122, 145, 142, 137, 155, 152, 147, 158, 155, 150, 159, 156, 151, 136, 133, 128, 141, 136, 132, 145, 140, 134, 150, 145, 139, 158, 153, 147, 165, 160, 154, 161, 156, 150, 153, 148, 142, 143, 138, 134, 152, 147, 143, 154, 149, 145, 145, 140, 136, 144, 136, 133, 149, 141, 138, 153, 145, 142, 151, 143, 140, 159, 151, 148, 142, 134, 131, 116, 106, 104, 98, 88, 86, 101, 91, 89, 122, 112, 110, 142, 132, 130, 153, 142, 140, 173, 159, 158, 162, 148, 145, 143, 129, 126, 122, 111, 105, 114, 104, 95, 118, 108, 99, 127, 117, 108, 135, 122, 114, 117, 102, 97, 117, 99, 97, 121, 103, 103, 123, 105, 105, 106, 88, 88, 88, 72, 72, 101, 87, 86, 130, 115, 112, 131, 114, 106, 119, 102, 94, 100, 83, 76, 84, 66, 64, 73, 55, 55, 66, 48, 46, 61, 43, 39, 60, 40, 33, 37, 9, 0, 57, 24, 7, 80, 39, 17, 82, 40, 15, 72, 33, 2, 61, 27, 0, 61, 33, 0, 68, 40, 3, 71, 36, 6, 69, 39, 13, 53, 35, 13, 32, 25, 7, 25, 21, 12, 28, 27, 23, 30, 29, 27, 24, 24, 24, 17, 21, 20, 9, 18, 15, 0, 4, 2, 0, 7, 10, 6, 25, 32, 0, 19, 32, 1, 34, 53, 21, 52, 72, 30, 49, 63, 76, 96, 107, 66, 95, 109, 28, 67, 84, 21, 72, 91, 31, 89, 109, 32, 97, 119, 31, 96, 118, 32, 90, 112, 32, 83, 104, 30, 73, 90, 24, 60, 74, 16, 46, 57, 9, 34, 41, 2, 25, 31, 3, 19, 19, 8, 16, 5, 14, 14, 2, 17, 14, 5, 20, 15, 9, 25, 14, 10, 30, 15, 10, 36, 16, 7, 39, 16, 2, 31, 5, 0, 40, 13, 0, 50, 24, 1, 55, 31, 7, 54, 34, 9, 62, 44, 20, 86, 69, 49, 108, 95, 76, 114, 102, 88, 124, 114, 104, 144, 131, 125, 153, 142, 138, 152, 141, 139, 149, 138, 134, 159, 149, 140, 172, 164, 153, 171, 162, 153, 181, 172, 167, 174, 165, 166, 160, 151, 154, 165, 156, 161, 178, 169, 172, 179, 174, 171, 175, 170, 166, 183, 178, 175, 183, 178, 175, 177, 172, 169, 179, 174, 171, 189, 184, 181, 189, 184, 181, 188, 183, 180, 198, 193, 190, 209, 204, 201, 186, 181, 178, 201, 196, 193, 205, 200, 197, 178, 173, 170, 199, 194, 191, 175, 170, 167, 203, 199, 196, 209, 205, 202, 190, 189, 185, 201, 197, 194, 219, 218, 214, 219, 218, 216, 221, 220, 218, 232, 231, 229, 235, 234, 232, 236, 236, 236, 239, 239, 239, 243, 243, 243, 244, 244, 244, 244, 244, 244, 244, 244, 244, 245, 245, 245, 247, 247, 247, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 249, 249, 247, 249, 249, 247, 249, 249, 247, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 247, 247, 245, 246, 246, 244, 244, 244, 242, 242, 242, 240, 240, 240, 238, 238, 238, 236, 237, 237, 235, 229, 228, 226, 228, 227, 225, 226, 225, 223, 223, 222, 220, 221, 217, 216, 217, 213, 212, 212, 208, 207, 210, 206, 205, 191, 187, 186, 197, 196, 194, 210, 206, 205, 205, 204, 202, 201, 197, 196, 208, 207, 205, 214, 210, 209, 201, 200, 198, 185, 181, 180, 187, 186, 184, 189, 185, 184, 186, 185, 183, 194, 190, 189, 198, 197, 195, 194, 190, 189, 181, 177, 176, 184, 180, 179, 184, 180, 179, 183, 177, 177, 184, 175, 176, 181, 171, 170, 170, 160, 158, 152, 144, 141, 137, 129, 127, 108, 99, 100, 91, 80, 84, 77, 66, 72, 71, 65, 79, 65, 73, 96, 60, 86, 121, 61, 109, 157, 71, 131, 185, 81, 142, 197, 49, 100, 145, 11, 41, 65, 5, 9, 8, 57, 33, 0, 135, 85, 22, 189, 120, 27, 207, 127, 12, 211, 128, 0, 217, 135, 0, 237, 161, 26, 245, 175, 45, 232, 166, 44, 235, 168, 51, 251, 184, 69, 255, 190, 78, 248, 185, 82, 232, 172, 74, 233, 172, 79, 236, 175, 84, 230, 169, 78, 235, 178, 88, 241, 188, 96, 230, 181, 88, 234, 191, 96, 219, 183, 86, 206, 176, 78, 199, 174, 74, 193, 169, 71, 186, 164, 65, 185, 161, 61, 183, 163, 64, 176, 166, 68, 168, 162, 64, 168, 159, 64, 171, 161, 66, 173, 161, 63, 171, 159, 59, 174, 161, 56, 179, 167, 57, 194, 181, 67, 211, 195, 82, 226, 205, 98, 220, 196, 96, 215, 185, 95, 231, 196, 114, 239, 201, 126, 232, 186, 111, 255, 216, 132, 255, 198, 109, 255, 202, 109, 234, 184, 89, 237, 191, 97, 212, 170, 86, 121, 82, 15, 89, 55, 10, 123, 95, 73, 111, 91, 84, 98, 84, 84, 95, 89, 91, 104, 103, 101, 108, 107, 103, 119, 118, 113, 142, 139, 134, 144, 141, 136, 169, 164, 158, 192, 187, 181, 199, 194, 188, 199, 194, 188, 197, 192, 186, 190, 185, 179, 181, 176, 172, 176, 171, 167, 192, 187, 183, 193, 188, 184, 177, 172, 168, 173, 168, 164, 183, 178, 174, 180, 175, 171, 163, 158, 154, 158, 153, 150, 173, 165, 163, 187, 179, 177, 190, 182, 180, 181, 173, 170, 172, 164, 161, 170, 165, 161, 176, 171, 167, 143, 138, 134, 161, 156, 152, 181, 176, 170, 189, 186, 179, 184, 181, 174, 169, 166, 159, 151, 148, 143, 138, 135, 128, 128, 123, 117, 155, 148, 142, 181, 174, 168, 184, 177, 171, 161, 154, 148, 139, 132, 126, 144, 137, 131, 162, 155, 149, 183, 176, 170, 163, 156, 150, 159, 152, 146, 174, 167, 161, 168, 161, 155, 141, 134, 128, 131, 124, 118, 142, 135, 129, 153, 146, 140, 160, 153, 147, 168, 161, 155, 170, 163, 157, 167, 160, 154, 162, 155, 149, 160, 153, 147, 161, 154, 148, 144, 137, 131, 157, 150, 144, 157, 150, 144, 140, 133, 127, 131, 124, 118, 141, 134, 128, 152, 145, 139, 154, 147, 141, 167, 162, 158, 167, 162, 158, 167, 162, 158, 168, 163, 159, 168, 163, 159, 164, 159, 155, 160, 152, 149, 155, 147, 144, 170, 162, 159, 168, 160, 157, 165, 157, 154, 162, 154, 151, 162, 152, 150, 163, 153, 151, 165, 155, 153, 166, 156, 154, 159, 151, 148, 156, 149, 143, 150, 142, 139, 143, 135, 132, 144, 136, 133, 150, 142, 139, 152, 144, 141, 150, 142, 139, 161, 153, 150, 163, 155, 152, 165, 157, 154, 169, 161, 158, 173, 165, 162, 179, 171, 168, 183, 175, 172, 186, 178, 175, 185, 180, 177, 185, 180, 177, 186, 178, 175, 187, 179, 176, 188, 180, 177, 188, 183, 179, 191, 183, 180, 190, 185, 182, 201, 196, 193, 198, 194, 193, 197, 193, 194, 198, 196, 197, 205, 205, 207, 215, 214, 219, 221, 222, 226, 224, 225, 229, 225, 228, 233, 228, 231, 236, 233, 236, 241, 235, 238, 243, 236, 239, 244, 237, 240, 245, 240, 243, 248, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 226, 229, 234, 227, 230, 235, 228, 231, 236, 230, 233, 238, 232, 235, 240, 234, 237, 242, 235, 238, 243, 236, 239, 244, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 253, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 236, 239, 244, 234, 237, 242, 232, 235, 240, 230, 234, 237, 229, 230, 234, 225, 226, 228, 221, 222, 224, 218, 219, 221, 218, 218, 218, 217, 217, 217, 215, 214, 212, 213, 212, 210, 214, 210, 207, 214, 210, 207, 214, 210, 207, 212, 208, 205, 211, 206, 202, 209, 204, 200, 206, 201, 197, 205, 200, 196, 198, 193, 187, 199, 194, 188, 199, 194, 188, 198, 193, 187, 197, 190, 184, 192, 185, 179, 187, 180, 174, 183, 176, 170, 169, 160, 155, 172, 163, 158, 174, 165, 160, 174, 165, 160, 171, 162, 157, 165, 156, 151, 157, 148, 143, 153, 144, 139, 155, 146, 139, 149, 140, 133, 142, 133, 126, 140, 131, 124, 142, 133, 126, 144, 135, 128, 143, 136, 130, 142, 135, 129, 143, 136, 130, 149, 142, 136, 154, 147, 141, 153, 146, 140, 146, 141, 137, 142, 137, 133, 141, 136, 132, 143, 138, 134, 143, 139, 136, 149, 148, 144, 160, 159, 155, 162, 161, 157, 151, 150, 145, 136, 135, 130, 134, 131, 126, 138, 135, 130, 146, 143, 138, 147, 144, 139, 147, 142, 136, 146, 141, 135, 149, 144, 138, 154, 149, 143, 155, 150, 144, 151, 146, 140, 149, 144, 140, 156, 151, 147, 155, 150, 146, 144, 139, 135, 133, 128, 124, 130, 125, 121, 127, 119, 116, 121, 113, 110, 112, 104, 101, 110, 102, 99, 104, 96, 93, 103, 95, 92, 115, 105, 103, 136, 126, 124, 153, 143, 141, 161, 150, 148, 132, 118, 117, 116, 101, 98, 107, 94, 88, 118, 108, 99, 137, 127, 118, 137, 129, 118, 117, 107, 97, 99, 86, 78, 123, 105, 101, 127, 109, 107, 129, 109, 110, 124, 104, 105, 121, 101, 103, 122, 104, 104, 124, 108, 108, 127, 112, 109, 105, 86, 80, 94, 74, 67, 78, 59, 55, 71, 51, 50, 67, 49, 49, 61, 41, 40, 47, 28, 22, 39, 15, 5, 49, 18, 0, 65, 29, 5, 82, 38, 11, 83, 38, 7, 76, 33, 0, 67, 32, 0, 67, 39, 0, 73, 45, 6, 77, 42, 12, 73, 41, 16, 52, 37, 16, 30, 28, 13, 23, 26, 19, 24, 28, 29, 22, 26, 29, 15, 18, 23, 7, 15, 17, 0, 10, 10, 13, 29, 29, 3, 22, 26, 6, 28, 39, 16, 45, 63, 2, 40, 63, 25, 61, 83, 54, 77, 91, 65, 87, 98, 38, 71, 86, 6, 53, 69, 5, 66, 85, 15, 86, 108, 16, 92, 116, 16, 90, 115, 18, 85, 111, 20, 80, 104, 21, 72, 93, 20, 61, 79, 16, 52, 66, 11, 43, 54, 8, 36, 47, 9, 33, 37, 10, 25, 18, 15, 23, 12, 15, 21, 11, 17, 17, 9, 20, 15, 9, 25, 15, 6, 32, 15, 5, 37, 18, 4, 46, 23, 5, 47, 25, 2, 50, 26, 2, 46, 25, 0, 44, 23, 0, 50, 29, 2, 70, 48, 24, 90, 69, 48, 86, 71, 52, 97, 85, 71, 116, 103, 95, 132, 118, 115, 143, 129, 128, 149, 138, 134, 156, 146, 136, 161, 151, 139, 166, 158, 147, 174, 167, 159, 173, 165, 163, 165, 156, 159, 167, 158, 163, 173, 167, 169, 177, 172, 168, 177, 172, 166, 185, 180, 176, 186, 181, 178, 182, 177, 174, 184, 179, 176, 193, 188, 185, 192, 187, 184, 189, 184, 181, 196, 191, 188, 193, 188, 185, 188, 183, 180, 205, 200, 197, 200, 195, 192, 175, 170, 167, 206, 201, 198, 182, 177, 174, 197, 192, 189, 209, 205, 202, 194, 190, 187, 202, 198, 195, 219, 215, 212, 218, 217, 215, 219, 218, 216, 229, 228, 226, 233, 232, 230, 236, 236, 236, 239, 239, 239, 242, 242, 242, 244, 244, 244, 244, 244, 244, 244, 244, 244, 245, 245, 245, 247, 247, 247, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 249, 249, 247, 249, 249, 247, 249, 249, 247, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 247, 247, 245, 246, 246, 244, 244, 244, 242, 242, 242, 240, 240, 240, 238, 239, 239, 237, 238, 238, 236, 231, 230, 228, 230, 229, 227, 228, 227, 225, 225, 224, 222, 223, 219, 218, 218, 214, 213, 214, 210, 209, 212, 208, 207, 198, 197, 195, 192, 191, 189, 198, 197, 195, 206, 205, 203, 204, 203, 201, 205, 204, 202, 206, 205, 203, 199, 198, 196, 194, 193, 191, 198, 197, 195, 194, 193, 191, 184, 183, 181, 181, 180, 178, 189, 188, 186, 195, 194, 192, 198, 194, 193, 192, 186, 186, 182, 176, 176, 178, 172, 174, 186, 180, 180, 195, 187, 184, 187, 178, 173, 164, 154, 153, 145, 136, 137, 121, 112, 117, 99, 89, 97, 80, 69, 75, 75, 68, 76, 74, 76, 91, 73, 90, 116, 70, 111, 155, 76, 131, 185, 68, 129, 186, 84, 139, 193, 67, 109, 151, 21, 42, 63, 16, 11, 5, 81, 51, 15, 165, 112, 42, 215, 147, 48, 208, 129, 10, 222, 139, 9, 229, 150, 19, 243, 169, 38, 254, 183, 59, 244, 175, 54, 248, 179, 60, 255, 206, 93, 255, 195, 92, 245, 185, 87, 244, 183, 90, 240, 181, 89, 227, 170, 81, 229, 173, 86, 233, 183, 94, 227, 181, 93, 217, 178, 87, 212, 177, 85, 215, 182, 87, 219, 189, 93, 221, 190, 97, 216, 185, 92, 213, 180, 87, 209, 180, 86, 199, 181, 83, 191, 177, 78, 190, 174, 76, 192, 176, 78, 194, 176, 76, 192, 174, 74, 194, 176, 76, 199, 181, 81, 204, 186, 88, 212, 189, 95, 233, 208, 116, 250, 220, 132, 246, 209, 128, 245, 204, 125, 255, 215, 140, 255, 222, 146, 252, 191, 108, 255, 198, 109, 250, 194, 101, 225, 175, 86, 173, 131, 49, 125, 90, 24, 115, 84, 40, 108, 84, 60, 83, 63, 56, 78, 64, 64, 78, 67, 71, 93, 87, 89, 119, 115, 112, 129, 128, 123, 136, 137, 131, 152, 151, 146, 164, 161, 156, 181, 176, 172, 193, 188, 184, 196, 191, 187, 195, 190, 186, 196, 191, 187, 192, 187, 183, 184, 179, 175, 193, 188, 184, 187, 182, 178, 183, 178, 174, 187, 182, 178, 191, 186, 182, 183, 178, 174, 160, 155, 151, 139, 134, 130, 159, 151, 149, 167, 159, 157, 160, 152, 150, 146, 138, 136, 152, 144, 141, 173, 165, 162, 173, 168, 164, 157, 152, 148, 175, 170, 166, 170, 165, 161, 173, 170, 163, 178, 175, 168, 163, 160, 153, 138, 135, 128, 132, 129, 122, 143, 140, 133, 170, 163, 157, 172, 165, 159, 160, 153, 147, 141, 134, 128, 143, 136, 130, 161, 154, 148, 164, 157, 151, 151, 144, 138, 166, 159, 153, 165, 158, 152, 161, 154, 148, 150, 143, 137, 134, 127, 121, 131, 124, 118, 153, 146, 140, 178, 171, 165, 168, 161, 155, 169, 162, 156, 169, 162, 156, 165, 158, 152, 160, 153, 147, 157, 150, 144, 159, 152, 146, 162, 155, 149, 157, 150, 144, 162, 155, 149, 157, 150, 144, 145, 138, 132, 146, 139, 133, 162, 155, 149, 174, 167, 161, 175, 168, 162, 174, 169, 165, 173, 168, 164, 173, 168, 164, 174, 169, 165, 174, 169, 165, 173, 168, 164, 170, 162, 159, 167, 159, 156, 168, 160, 157, 166, 158, 155, 164, 156, 153, 161, 153, 150, 160, 150, 148, 156, 146, 144, 151, 141, 139, 147, 137, 135, 143, 135, 132, 147, 139, 136, 149, 141, 138, 152, 144, 141, 161, 153, 150, 172, 164, 161, 177, 169, 166, 175, 167, 164, 169, 161, 158, 169, 161, 158, 169, 161, 158, 169, 161, 158, 170, 162, 159, 172, 164, 161, 174, 166, 163, 175, 167, 164, 182, 177, 174, 182, 177, 174, 184, 176, 173, 185, 177, 174, 186, 178, 175, 188, 180, 177, 191, 183, 180, 192, 184, 181, 197, 192, 189, 196, 191, 188, 195, 191, 190, 196, 195, 193, 204, 202, 205, 212, 212, 214, 218, 219, 223, 222, 223, 227, 224, 227, 232, 228, 231, 236, 232, 235, 240, 235, 238, 243, 236, 239, 244, 237, 240, 245, 240, 243, 248, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 226, 229, 234, 227, 230, 235, 228, 231, 236, 230, 233, 238, 232, 235, 240, 234, 237, 242, 236, 239, 244, 236, 239, 244, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 236, 239, 244, 234, 237, 242, 232, 235, 240, 230, 234, 237, 228, 229, 233, 224, 225, 227, 220, 221, 223, 217, 218, 220, 217, 217, 217, 216, 216, 216, 214, 213, 211, 212, 211, 209, 214, 210, 207, 214, 210, 207, 214, 210, 207, 212, 208, 205, 211, 206, 202, 209, 204, 200, 206, 201, 197, 205, 200, 196, 200, 195, 189, 200, 195, 189, 200, 195, 189, 199, 194, 188, 197, 190, 184, 193, 186, 180, 188, 181, 175, 185, 178, 172, 174, 165, 160, 175, 166, 161, 176, 167, 162, 175, 166, 161, 171, 162, 157, 165, 156, 151, 157, 148, 143, 153, 144, 139, 148, 139, 132, 142, 133, 126, 135, 128, 122, 132, 125, 119, 134, 127, 121, 139, 132, 126, 142, 135, 129, 144, 137, 131, 147, 142, 138, 156, 151, 147, 164, 159, 155, 163, 158, 154, 157, 152, 148, 154, 149, 145, 159, 154, 150, 166, 161, 157, 158, 154, 151, 160, 156, 153, 161, 157, 154, 152, 148, 145, 134, 131, 126, 124, 121, 116, 131, 128, 123, 144, 141, 136, 141, 136, 132, 142, 137, 133, 137, 132, 126, 129, 124, 118, 128, 121, 115, 133, 126, 120, 138, 131, 125, 139, 132, 126, 137, 132, 128, 131, 126, 122, 117, 109, 106, 99, 91, 88, 94, 86, 83, 105, 97, 94, 120, 112, 109, 129, 121, 118, 106, 96, 94, 120, 110, 108, 134, 124, 122, 141, 131, 129, 143, 133, 131, 141, 131, 129, 136, 125, 123, 128, 117, 115, 118, 104, 101, 116, 101, 98, 121, 108, 102, 130, 120, 111, 131, 121, 112, 119, 109, 99, 111, 98, 89, 110, 97, 89, 135, 117, 113, 143, 124, 120, 138, 117, 116, 123, 103, 102, 129, 109, 110, 143, 125, 125, 130, 114, 114, 104, 89, 86, 74, 55, 51, 72, 53, 47, 68, 49, 45, 64, 45, 41, 57, 38, 34, 47, 28, 21, 39, 17, 4, 34, 9, 0, 63, 31, 8, 72, 35, 6, 82, 39, 7, 84, 39, 6, 79, 39, 4, 74, 40, 3, 72, 46, 9, 76, 50, 17, 81, 47, 20, 70, 42, 20, 48, 37, 17, 30, 31, 17, 25, 30, 24, 22, 31, 30, 18, 21, 26, 6, 11, 17, 6, 16, 18, 0, 14, 17, 20, 38, 42, 0, 15, 22, 9, 32, 46, 19, 48, 66, 0, 37, 60, 87, 124, 143, 150, 173, 181, 144, 165, 170, 111, 144, 151, 55, 99, 110, 4, 60, 75, 0, 43, 61, 0, 47, 68, 0, 63, 87, 7, 67, 91, 9, 64, 85, 14, 59, 80, 17, 54, 72, 17, 49, 64, 17, 45, 57, 15, 42, 53, 16, 41, 46, 18, 39, 40, 19, 38, 32, 21, 34, 24, 21, 27, 13, 23, 22, 4, 26, 17, 0, 30, 17, 0, 35, 18, 2, 48, 31, 15, 45, 28, 12, 42, 27, 8, 41, 24, 4, 42, 21, 0, 43, 21, 0, 57, 29, 7, 69, 42, 21, 68, 51, 31, 77, 64, 48, 93, 78, 71, 110, 96, 93, 135, 121, 120, 159, 145, 142, 162, 152, 142, 156, 146, 134, 163, 155, 142, 168, 161, 151, 175, 167, 164, 173, 167, 167, 169, 163, 165, 169, 163, 163, 174, 169, 163, 178, 175, 168, 185, 180, 176, 190, 185, 182, 188, 183, 180, 190, 185, 182, 198, 193, 190, 196, 191, 188, 188, 183, 180, 191, 186, 183, 181, 176, 173, 193, 188, 185, 210, 205, 202, 199, 194, 191, 173, 168, 165, 214, 209, 206, 193, 188, 185, 193, 188, 185, 208, 204, 201, 198, 194, 191, 204, 200, 197, 217, 213, 210, 215, 214, 212, 216, 215, 213, 224, 223, 221, 228, 227, 225, 236, 236, 236, 239, 239, 239, 242, 242, 242, 244, 244, 244, 243, 243, 243, 243, 243, 243, 245, 245, 245, 247, 247, 247, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 249, 249, 247, 249, 249, 247, 249, 249, 247, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 245, 245, 243, 244, 244, 242, 242, 242, 240, 241, 241, 239, 239, 239, 237, 239, 239, 237, 235, 234, 232, 233, 232, 230, 230, 229, 227, 227, 226, 224, 225, 221, 220, 221, 217, 216, 217, 213, 212, 216, 212, 211, 211, 210, 208, 193, 192, 190, 195, 194, 192, 211, 210, 208, 212, 211, 209, 206, 205, 203, 204, 203, 201, 201, 200, 198, 201, 200, 198, 207, 206, 204, 205, 204, 202, 191, 190, 188, 180, 179, 177, 183, 182, 180, 195, 194, 192, 207, 203, 202, 196, 191, 188, 185, 180, 177, 183, 177, 177, 193, 188, 185, 197, 189, 186, 180, 171, 166, 155, 147, 145, 142, 133, 134, 135, 126, 131, 110, 99, 105, 88, 73, 78, 79, 66, 73, 76, 73, 84, 75, 87, 109, 79, 111, 149, 86, 132, 181, 89, 137, 199, 96, 145, 204, 101, 143, 193, 75, 108, 141, 32, 49, 59, 25, 21, 9, 94, 65, 25, 179, 128, 62, 187, 118, 25, 210, 130, 19, 202, 118, 0, 214, 132, 0, 254, 176, 40, 250, 176, 41, 224, 154, 24, 229, 165, 41, 231, 173, 63, 226, 171, 68, 231, 177, 77, 234, 180, 82, 228, 175, 81, 228, 179, 87, 233, 186, 98, 229, 185, 98, 210, 172, 87, 211, 175, 89, 220, 184, 100, 231, 195, 111, 237, 199, 116, 236, 195, 113, 234, 192, 110, 233, 193, 108, 228, 194, 104, 221, 190, 97, 219, 191, 94, 222, 194, 95, 220, 195, 95, 216, 192, 96, 217, 191, 104, 222, 195, 116, 238, 208, 138, 223, 189, 126, 226, 187, 128, 241, 200, 138, 249, 204, 136, 254, 206, 130, 255, 208, 126, 253, 203, 116, 226, 175, 84, 255, 205, 118, 213, 165, 89, 147, 103, 42, 83, 45, 0, 102, 69, 38, 152, 125, 108, 90, 67, 59, 85, 67, 65, 83, 71, 71, 86, 77, 78, 108, 102, 102, 141, 137, 136, 157, 153, 150, 158, 157, 153, 169, 165, 162, 184, 179, 175, 188, 183, 179, 190, 185, 181, 190, 185, 181, 194, 189, 185, 199, 194, 190, 199, 194, 190, 194, 189, 185, 209, 204, 200, 190, 185, 181, 177, 172, 168, 172, 167, 163, 155, 150, 146, 133, 128, 124, 129, 124, 120, 142, 137, 133, 185, 177, 175, 165, 157, 155, 158, 150, 148, 170, 162, 160, 174, 166, 163, 160, 152, 149, 150, 145, 141, 155, 150, 146, 166, 161, 157, 164, 159, 155, 164, 159, 153, 161, 156, 150, 149, 146, 139, 140, 137, 130, 147, 144, 137, 162, 159, 152, 150, 143, 137, 129, 122, 116, 125, 118, 112, 146, 139, 133, 159, 152, 146, 153, 146, 140, 148, 141, 135, 152, 145, 139, 147, 140, 134, 156, 149, 143, 154, 147, 141, 144, 137, 131, 146, 139, 133, 162, 155, 149, 171, 164, 158, 169, 162, 156, 159, 152, 146, 160, 153, 147, 159, 152, 146, 157, 150, 144, 154, 147, 141, 152, 145, 139, 154, 147, 141, 157, 150, 144, 163, 156, 150, 164, 157, 151, 160, 153, 147, 154, 147, 141, 160, 153, 147, 174, 167, 161, 177, 170, 164, 171, 164, 158, 165, 160, 156, 163, 158, 154, 162, 157, 153, 164, 159, 155, 166, 161, 157, 167, 162, 158, 168, 160, 157, 167, 159, 156, 163, 155, 152, 159, 151, 148, 156, 148, 145, 156, 148, 145, 160, 150, 148, 160, 150, 148, 157, 147, 145, 152, 142, 140, 147, 139, 136, 151, 143, 140, 154, 146, 143, 157, 149, 146, 163, 155, 152, 170, 162, 159, 170, 162, 159, 165, 157, 154, 166, 158, 155, 166, 158, 155, 166, 158, 155, 166, 158, 155, 166, 158, 155, 167, 159, 156, 167, 159, 156, 168, 160, 157, 175, 170, 167, 175, 170, 167, 178, 170, 167, 179, 171, 168, 181, 173, 170, 184, 176, 173, 187, 179, 176, 188, 180, 177, 193, 188, 185, 193, 188, 185, 193, 189, 188, 195, 194, 192, 202, 200, 203, 209, 209, 211, 216, 217, 221, 220, 221, 225, 224, 227, 232, 227, 230, 235, 232, 235, 240, 234, 237, 242, 235, 238, 243, 237, 240, 245, 239, 242, 247, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 226, 229, 234, 227, 230, 235, 229, 232, 237, 231, 234, 239, 233, 236, 241, 235, 238, 243, 236, 239, 244, 237, 240, 245, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 236, 239, 244, 234, 237, 242, 232, 235, 240, 230, 234, 237, 227, 228, 232, 223, 224, 226, 219, 220, 222, 216, 217, 219, 216, 216, 216, 215, 215, 215, 214, 213, 211, 211, 210, 208, 211, 207, 204, 211, 207, 204, 210, 206, 203, 209, 205, 202, 208, 203, 199, 205, 200, 196, 203, 198, 194, 202, 197, 193, 200, 195, 189, 200, 195, 189, 199, 194, 188, 197, 192, 186, 196, 189, 183, 192, 185, 179, 188, 181, 175, 186, 179, 173, 186, 177, 172, 183, 174, 169, 177, 168, 163, 171, 162, 157, 166, 157, 152, 164, 155, 150, 163, 154, 149, 163, 154, 149, 156, 147, 140, 154, 145, 138, 150, 143, 137, 149, 142, 136, 151, 144, 138, 154, 147, 141, 157, 150, 144, 157, 152, 146, 160, 155, 151, 163, 158, 154, 165, 160, 156, 163, 158, 154, 158, 153, 149, 156, 151, 147, 158, 153, 149, 161, 156, 152, 154, 150, 147, 138, 134, 131, 122, 118, 115, 116, 112, 109, 117, 114, 109, 122, 119, 114, 131, 128, 123, 140, 137, 132, 130, 125, 121, 133, 128, 124, 130, 125, 119, 121, 116, 110, 119, 112, 106, 123, 116, 110, 130, 123, 117, 134, 127, 121, 125, 117, 114, 128, 123, 119, 136, 128, 125, 137, 129, 126, 137, 129, 126, 134, 126, 123, 130, 122, 119, 126, 118, 115, 135, 125, 123, 146, 136, 134, 153, 143, 141, 149, 139, 137, 139, 129, 127, 130, 120, 118, 122, 111, 109, 117, 103, 102, 147, 132, 129, 142, 127, 122, 138, 125, 119, 131, 118, 110, 111, 101, 92, 102, 92, 82, 124, 111, 102, 153, 138, 131, 149, 130, 124, 152, 133, 129, 140, 119, 118, 122, 101, 100, 124, 103, 102, 130, 110, 109, 107, 89, 87, 72, 54, 52, 61, 43, 41, 70, 52, 48, 76, 57, 53, 65, 46, 40, 46, 26, 17, 38, 16, 2, 44, 22, 1, 58, 31, 4, 74, 41, 10, 81, 42, 9, 88, 44, 9, 90, 46, 11, 88, 48, 13, 84, 49, 17, 77, 51, 18, 75, 50, 20, 77, 47, 23, 64, 39, 19, 41, 34, 15, 29, 33, 18, 25, 35, 27, 21, 31, 30, 13, 18, 22, 0, 6, 12, 0, 8, 14, 11, 26, 31, 6, 23, 30, 2, 22, 33, 36, 59, 75, 17, 45, 66, 34, 72, 95, 196, 231, 250, 241, 255, 255, 244, 255, 255, 237, 255, 255, 181, 215, 224, 107, 153, 166, 46, 99, 115, 0, 55, 74, 0, 47, 67, 0, 45, 66, 0, 43, 64, 3, 40, 59, 5, 38, 55, 8, 36, 50, 9, 36, 47, 10, 34, 44, 10, 35, 42, 22, 50, 54, 27, 53, 50, 33, 55, 42, 33, 51, 29, 32, 41, 14, 31, 31, 3, 32, 26, 0, 35, 24, 2, 34, 23, 5, 34, 21, 4, 36, 23, 4, 44, 29, 8, 50, 30, 6, 52, 28, 4, 59, 27, 6, 63, 32, 12, 65, 44, 23, 69, 53, 37, 76, 59, 49, 89, 74, 69, 124, 109, 106, 160, 146, 143, 169, 159, 150, 158, 150, 137, 166, 158, 145, 167, 161, 149, 178, 173, 167, 183, 178, 174, 173, 168, 165, 165, 162, 157, 170, 167, 160, 176, 173, 166, 182, 177, 173, 192, 187, 184, 191, 186, 183, 192, 187, 184, 199, 194, 191, 196, 191, 188, 186, 181, 178, 183, 178, 175, 186, 181, 178, 199, 194, 191, 210, 205, 202, 202, 197, 194, 174, 169, 166, 210, 205, 202, 197, 192, 189, 199, 194, 191, 207, 203, 200, 203, 199, 196, 206, 202, 199, 214, 210, 207, 213, 212, 210, 213, 212, 210, 219, 218, 216, 225, 224, 222, 235, 235, 235, 238, 238, 238, 242, 242, 242, 243, 243, 243, 243, 243, 243, 243, 243, 243, 245, 245, 245, 246, 246, 246, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 249, 249, 247, 249, 249, 247, 249, 249, 247, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 246, 244, 245, 245, 243, 244, 244, 242, 243, 243, 241, 241, 241, 239, 240, 240, 238, 240, 240, 238, 238, 237, 235, 236, 235, 233, 233, 232, 230, 228, 227, 225, 226, 222, 221, 223, 219, 218, 220, 216, 215, 219, 215, 214, 216, 215, 213, 204, 203, 201, 208, 207, 205, 217, 216, 214, 213, 212, 210, 209, 208, 206, 210, 209, 207, 207, 206, 204, 199, 198, 196, 207, 206, 204, 211, 210, 208, 205, 204, 202, 193, 192, 190, 188, 187, 185, 190, 189, 187, 197, 193, 192, 194, 189, 186, 194, 186, 184, 196, 190, 190, 198, 193, 190, 183, 175, 172, 153, 144, 139, 134, 126, 124, 132, 123, 124, 141, 132, 137, 118, 106, 110, 95, 76, 78, 77, 61, 62, 69, 58, 66, 67, 70, 85, 78, 102, 130, 97, 130, 173, 112, 144, 203, 98, 134, 194, 102, 142, 191, 112, 150, 187, 84, 116, 137, 42, 57, 62, 45, 37, 24, 86, 53, 18, 146, 92, 30, 192, 122, 34, 204, 126, 15, 210, 128, 0, 235, 157, 21, 241, 165, 27, 216, 146, 12, 206, 141, 13, 215, 153, 40, 214, 156, 49, 222, 165, 60, 232, 177, 76, 239, 185, 87, 243, 190, 96, 240, 191, 99, 232, 186, 98, 224, 182, 96, 223, 182, 100, 224, 186, 103, 232, 191, 111, 234, 192, 110, 233, 188, 107, 236, 188, 106, 239, 192, 110, 243, 201, 117, 237, 199, 114, 236, 201, 111, 237, 203, 113, 235, 204, 113, 233, 202, 112, 233, 200, 119, 238, 202, 128, 241, 200, 134, 255, 213, 153, 255, 221, 162, 255, 202, 140, 237, 183, 113, 249, 193, 116, 255, 206, 121, 253, 202, 113, 221, 180, 92, 160, 123, 45, 132, 95, 40, 142, 106, 70, 99, 66, 49, 88, 59, 55, 126, 102, 102, 98, 79, 81, 100, 86, 85, 106, 96, 94, 113, 105, 103, 130, 125, 122, 158, 152, 152, 172, 166, 166, 176, 170, 170, 184, 179, 176, 189, 184, 180, 185, 180, 176, 183, 178, 174, 186, 181, 177, 195, 190, 186, 203, 198, 194, 204, 199, 195, 201, 196, 192, 186, 181, 177, 165, 160, 156, 151, 146, 142, 148, 143, 139, 140, 135, 131, 133, 128, 124, 147, 142, 138, 172, 167, 163, 165, 157, 155, 151, 143, 141, 155, 147, 145, 169, 161, 159, 157, 149, 146, 128, 120, 117, 125, 120, 116, 148, 143, 139, 161, 156, 152, 178, 173, 169, 176, 171, 165, 153, 148, 142, 141, 138, 131, 147, 144, 137, 142, 139, 132, 126, 121, 115, 106, 99, 93, 112, 105, 99, 139, 132, 126, 168, 161, 155, 163, 156, 150, 138, 131, 125, 138, 131, 125, 159, 152, 146, 153, 146, 140, 162, 155, 149, 163, 156, 150, 158, 151, 145, 162, 155, 149, 168, 161, 155, 158, 151, 145, 140, 133, 127, 131, 124, 118, 136, 129, 123, 144, 137, 131, 151, 144, 138, 154, 147, 141, 154, 147, 141, 152, 145, 139, 151, 144, 138, 154, 147, 141, 161, 154, 148, 166, 159, 153, 169, 162, 156, 174, 167, 161, 178, 171, 165, 173, 166, 160, 163, 156, 150, 161, 156, 152, 159, 154, 150, 158, 153, 149, 160, 155, 151, 165, 160, 156, 169, 164, 160, 172, 164, 161, 172, 164, 161, 171, 163, 160, 163, 155, 152, 156, 148, 145, 155, 147, 144, 161, 151, 149, 166, 156, 154, 167, 157, 155, 165, 155, 153, 163, 155, 152, 164, 156, 153, 163, 155, 152, 159, 151, 148, 158, 150, 147, 159, 151, 148, 155, 147, 144, 148, 140, 137, 154, 146, 143, 155, 147, 144, 159, 151, 148, 162, 154, 151, 166, 158, 155, 169, 161, 158, 171, 163, 160, 172, 164, 161, 170, 165, 162, 171, 166, 163, 173, 165, 162, 175, 167, 164, 177, 169, 166, 180, 172, 169, 183, 175, 172, 184, 176, 173, 189, 184, 181, 191, 186, 183, 194, 190, 189, 196, 195, 193, 201, 199, 202, 208, 208, 210, 215, 216, 220, 220, 221, 225, 223, 226, 231, 227, 230, 235, 231, 234, 239, 234, 237, 242, 235, 238, 243, 236, 239, 244, 238, 241, 246, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 227, 230, 235, 228, 231, 236, 229, 232, 237, 231, 234, 239, 233, 236, 241, 235, 238, 243, 237, 240, 245, 237, 240, 245, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 236, 239, 244, 234, 237, 242, 232, 235, 240, 230, 234, 237, 227, 228, 232, 223, 224, 226, 219, 220, 222, 216, 217, 219, 216, 216, 216, 215, 215, 215, 214, 213, 211, 211, 210, 208, 211, 207, 204, 211, 207, 204, 210, 206, 203, 209, 205, 202, 208, 203, 199, 205, 200, 196, 203, 198, 194, 202, 197, 193, 199, 194, 188, 198, 193, 187, 197, 192, 186, 194, 189, 183, 193, 186, 180, 189, 182, 176, 186, 179, 173, 185, 178, 172, 186, 177, 172, 182, 173, 168, 175, 166, 161, 169, 160, 155, 164, 155, 150, 162, 153, 148, 162, 153, 148, 163, 154, 149, 166, 159, 153, 167, 160, 154, 169, 162, 156, 171, 164, 158, 168, 163, 159, 168, 163, 159, 168, 163, 159, 168, 163, 159, 160, 155, 152, 153, 149, 146, 147, 143, 140, 145, 141, 138, 147, 143, 140, 148, 144, 141, 145, 141, 138, 142, 138, 135, 134, 129, 126, 121, 116, 113, 114, 109, 106, 122, 117, 114, 132, 127, 123, 131, 126, 122, 120, 115, 111, 111, 106, 102, 132, 124, 121, 138, 130, 127, 141, 134, 128, 137, 130, 124, 134, 127, 121, 138, 131, 125, 145, 136, 131, 146, 139, 133, 148, 140, 137, 151, 143, 140, 158, 148, 146, 161, 151, 149, 156, 146, 144, 143, 133, 131, 129, 119, 117, 121, 111, 109, 141, 130, 128, 141, 130, 128, 132, 121, 119, 119, 108, 106, 116, 105, 103, 126, 115, 113, 142, 128, 127, 151, 137, 136, 159, 144, 141, 137, 122, 117, 119, 106, 100, 119, 106, 98, 126, 116, 107, 134, 124, 115, 144, 131, 123, 153, 138, 131, 149, 130, 124, 145, 124, 119, 135, 111, 109, 119, 98, 95, 111, 90, 87, 100, 81, 77, 79, 60, 56, 56, 38, 36, 66, 50, 50, 69, 54, 51, 68, 50, 46, 53, 33, 26, 38, 16, 2, 39, 14, 0, 57, 31, 4, 80, 50, 16, 82, 47, 9, 88, 49, 10, 97, 51, 15, 100, 56, 21, 98, 57, 25, 89, 56, 25, 77, 51, 24, 69, 48, 21, 68, 41, 20, 53, 35, 15, 35, 32, 13, 29, 35, 21, 27, 39, 29, 21, 32, 28, 11, 16, 20, 0, 5, 13, 0, 2, 11, 13, 30, 38, 0, 12, 22, 13, 35, 48, 21, 44, 62, 0, 23, 44, 86, 124, 145, 231, 255, 255, 248, 255, 255, 254, 255, 255, 247, 255, 255, 240, 255, 255, 233, 255, 255, 177, 213, 229, 55, 93, 112, 0, 24, 44, 0, 28, 50, 0, 28, 47, 0, 25, 44, 0, 25, 40, 0, 24, 36, 0, 22, 33, 0, 22, 33, 0, 24, 31, 21, 52, 57, 29, 64, 60, 41, 76, 56, 48, 79, 48, 45, 71, 32, 41, 59, 17, 40, 48, 11, 42, 41, 10, 36, 30, 4, 35, 25, 0, 38, 24, 0, 44, 29, 0, 51, 30, 1, 56, 29, 2, 64, 29, 7, 67, 35, 14, 59, 37, 14, 59, 41, 21, 57, 39, 27, 66, 47, 41, 99, 84, 81, 146, 132, 129, 169, 159, 150, 167, 159, 148, 171, 163, 150, 170, 164, 152, 184, 180, 169, 189, 186, 177, 173, 170, 163, 163, 163, 155, 169, 169, 159, 172, 169, 162, 177, 172, 168, 190, 185, 182, 191, 186, 183, 190, 185, 182, 197, 192, 189, 195, 190, 187, 182, 177, 174, 176, 171, 168, 197, 192, 189, 198, 193, 190, 200, 195, 192, 203, 198, 195, 174, 169, 166, 194, 189, 186, 190, 185, 182, 206, 201, 198, 204, 200, 197, 207, 203, 200, 209, 205, 202, 211, 207, 204, 212, 211, 209, 211, 210, 208, 215, 214, 212, 223, 222, 220, 235, 235, 235, 238, 238, 238, 241, 241, 241, 243, 243, 243, 243, 243, 243, 243, 243, 243, 244, 244, 244, 246, 246, 246, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 249, 249, 247, 249, 249, 247, 249, 249, 247, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 246, 244, 245, 245, 243, 244, 244, 242, 243, 243, 241, 242, 242, 240, 242, 242, 240, 241, 241, 239, 240, 239, 237, 238, 237, 235, 233, 232, 230, 229, 228, 226, 226, 222, 221, 224, 220, 219, 222, 218, 217, 221, 217, 216, 208, 207, 205, 214, 213, 211, 222, 221, 219, 216, 215, 213, 204, 203, 201, 208, 207, 205, 215, 214, 212, 209, 208, 206, 202, 201, 199, 203, 202, 200, 206, 205, 203, 208, 207, 205, 204, 203, 201, 197, 196, 194, 189, 188, 186, 188, 184, 183, 194, 186, 184, 194, 186, 184, 196, 190, 190, 196, 191, 188, 181, 173, 170, 155, 148, 142, 138, 130, 128, 134, 125, 126, 138, 127, 131, 121, 106, 109, 100, 79, 78, 79, 55, 53, 59, 41, 41, 55, 48, 55, 73, 84, 104, 101, 120, 153, 112, 128, 179, 121, 142, 195, 118, 151, 194, 109, 148, 181, 107, 147, 173, 103, 132, 150, 69, 77, 88, 31, 18, 12, 73, 38, 10, 121, 69, 12, 178, 112, 25, 205, 133, 22, 200, 129, 1, 201, 129, 0, 213, 143, 13, 223, 153, 29, 242, 172, 60, 235, 164, 58, 228, 159, 55, 233, 166, 61, 246, 181, 79, 252, 190, 89, 243, 187, 90, 237, 184, 90, 237, 190, 100, 236, 190, 104, 238, 193, 108, 238, 196, 110, 237, 193, 106, 232, 187, 96, 234, 187, 95, 237, 191, 103, 247, 206, 127, 241, 203, 128, 241, 203, 128, 244, 208, 132, 244, 208, 130, 241, 204, 124, 244, 203, 121, 251, 205, 120, 251, 199, 113, 255, 199, 112, 255, 199, 112, 255, 196, 109, 255, 197, 110, 255, 201, 117, 245, 180, 98, 197, 144, 66, 149, 115, 43, 81, 56, 0, 120, 94, 61, 152, 126, 113, 120, 95, 101, 101, 79, 92, 95, 78, 88, 97, 85, 89, 91, 81, 79, 113, 106, 100, 132, 127, 123, 151, 146, 143, 171, 165, 165, 181, 172, 173, 185, 177, 175, 193, 185, 182, 191, 186, 182, 185, 180, 176, 182, 177, 173, 188, 183, 179, 197, 192, 188, 200, 195, 191, 197, 192, 188, 192, 187, 183, 179, 174, 170, 160, 155, 151, 148, 143, 139, 160, 155, 151, 180, 175, 171, 185, 180, 176, 170, 165, 161, 152, 147, 143, 133, 128, 125, 158, 153, 150, 158, 153, 150, 128, 123, 120, 116, 111, 107, 137, 132, 128, 155, 150, 146, 152, 147, 143, 167, 162, 158, 179, 174, 170, 176, 171, 165, 156, 151, 145, 149, 144, 138, 153, 148, 142, 137, 132, 126, 110, 105, 99, 133, 126, 120, 171, 164, 158, 182, 175, 169, 150, 143, 137, 134, 127, 121, 152, 145, 139, 166, 159, 153, 159, 152, 146, 165, 158, 152, 171, 164, 158, 172, 165, 159, 159, 152, 146, 138, 131, 125, 126, 119, 113, 132, 125, 119, 143, 136, 130, 128, 121, 115, 133, 126, 120, 142, 135, 129, 151, 144, 138, 158, 151, 145, 160, 153, 147, 159, 152, 146, 157, 150, 144, 151, 144, 138, 161, 154, 148, 171, 164, 158, 175, 168, 162, 175, 168, 162, 175, 168, 162, 173, 166, 160, 170, 163, 157, 168, 163, 159, 166, 161, 157, 166, 161, 157, 170, 165, 161, 175, 170, 166, 180, 175, 171, 185, 177, 174, 186, 178, 175, 180, 172, 169, 174, 166, 163, 168, 160, 157, 164, 156, 153, 165, 155, 153, 163, 153, 151, 160, 150, 148, 156, 146, 144, 162, 154, 151, 163, 155, 152, 161, 153, 150, 158, 150, 147, 161, 153, 150, 166, 158, 155, 166, 158, 155, 163, 155, 152, 151, 143, 140, 154, 146, 143, 159, 151, 148, 165, 157, 154, 171, 163, 160, 175, 167, 164, 178, 170, 167, 179, 171, 168, 173, 168, 165, 173, 168, 165, 176, 168, 165, 177, 169, 166, 179, 171, 168, 182, 174, 171, 184, 176, 173, 185, 177, 174, 186, 181, 178, 191, 186, 183, 195, 191, 190, 198, 197, 195, 202, 200, 203, 208, 208, 210, 215, 216, 220, 222, 223, 227, 222, 225, 230, 226, 229, 234, 230, 233, 238, 233, 236, 241, 234, 237, 242, 235, 238, 243, 237, 240, 245, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 227, 230, 235, 228, 231, 236, 230, 233, 238, 231, 234, 239, 234, 237, 242, 235, 238, 243, 237, 240, 245, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 236, 239, 244, 234, 237, 242, 232, 235, 240, 230, 234, 237, 228, 229, 233, 224, 225, 227, 220, 221, 223, 217, 218, 220, 217, 217, 217, 216, 216, 216, 214, 213, 211, 212, 211, 209, 214, 210, 207, 214, 210, 207, 214, 210, 207, 212, 208, 205, 211, 206, 202, 209, 204, 200, 206, 201, 197, 205, 200, 196, 200, 195, 189, 198, 193, 187, 196, 191, 185, 192, 187, 181, 191, 184, 178, 188, 181, 175, 186, 179, 173, 185, 178, 172, 186, 177, 172, 185, 176, 171, 184, 175, 170, 182, 173, 168, 178, 169, 164, 173, 164, 159, 168, 159, 154, 165, 156, 151, 170, 163, 157, 174, 167, 161, 178, 171, 165, 178, 171, 165, 173, 168, 164, 169, 164, 160, 167, 162, 158, 166, 161, 157, 159, 155, 152, 149, 145, 142, 140, 136, 133, 140, 136, 133, 148, 144, 141, 153, 149, 146, 150, 146, 143, 145, 141, 138, 127, 122, 119, 125, 120, 117, 129, 124, 121, 140, 135, 132, 144, 139, 135, 138, 133, 129, 127, 122, 118, 121, 116, 112, 135, 127, 124, 142, 134, 131, 146, 139, 133, 145, 138, 132, 145, 138, 132, 149, 142, 136, 151, 142, 137, 150, 141, 136, 140, 132, 129, 131, 123, 120, 125, 115, 113, 126, 116, 114, 128, 118, 116, 128, 118, 116, 131, 121, 119, 136, 126, 124, 129, 118, 116, 132, 121, 119, 131, 120, 118, 126, 115, 113, 126, 115, 113, 134, 123, 121, 143, 129, 128, 145, 131, 128, 140, 122, 118, 132, 117, 110, 130, 115, 108, 140, 127, 119, 152, 142, 133, 157, 144, 136, 144, 129, 124, 130, 113, 106, 135, 116, 110, 128, 107, 102, 121, 97, 93, 114, 90, 86, 102, 78, 76, 84, 63, 60, 71, 50, 47, 64, 46, 44, 71, 57, 56, 56, 42, 41, 40, 22, 18, 30, 10, 0, 37, 11, 0, 51, 23, 0, 69, 40, 8, 82, 50, 12, 90, 53, 11, 98, 55, 13, 104, 59, 20, 106, 62, 27, 100, 61, 30, 88, 57, 28, 75, 51, 25, 66, 46, 22, 62, 41, 20, 51, 36, 17, 36, 38, 17, 32, 43, 26, 31, 43, 33, 20, 31, 27, 7, 15, 17, 0, 6, 14, 0, 10, 19, 10, 24, 35, 0, 12, 26, 12, 31, 46, 0, 5, 23, 7, 36, 54, 168, 205, 223, 233, 255, 255, 244, 254, 255, 248, 250, 249, 244, 252, 255, 236, 251, 255, 238, 255, 255, 207, 235, 249, 59, 88, 106, 0, 17, 38, 0, 24, 43, 0, 23, 41, 2, 21, 38, 1, 19, 33, 0, 18, 30, 0, 17, 27, 0, 16, 26, 0, 17, 23, 10, 41, 44, 24, 61, 54, 42, 86, 61, 54, 100, 63, 55, 101, 52, 55, 92, 41, 58, 81, 35, 65, 76, 34, 67, 63, 25, 63, 51, 13, 57, 40, 0, 55, 34, 0, 54, 29, 0, 56, 26, 0, 64, 30, 3, 71, 36, 14, 60, 34, 9, 57, 35, 12, 52, 30, 16, 54, 34, 25, 80, 61, 57, 124, 109, 106, 164, 151, 145, 180, 170, 161, 172, 164, 153, 168, 164, 152, 184, 180, 168, 188, 186, 174, 170, 170, 160, 168, 168, 160, 173, 173, 165, 165, 165, 157, 171, 168, 163, 187, 182, 179, 188, 183, 180, 185, 180, 177, 193, 188, 185, 193, 188, 185, 181, 176, 173, 172, 167, 164, 199, 194, 191, 192, 187, 184, 189, 184, 181, 204, 199, 196, 173, 168, 165, 180, 175, 172, 183, 178, 175, 209, 204, 201, 201, 197, 194, 210, 206, 203, 211, 207, 204, 209, 205, 202, 211, 210, 208, 212, 211, 209, 214, 213, 211, 224, 223, 221, 234, 234, 234, 237, 237, 237, 241, 241, 241, 242, 242, 242, 242, 242, 242, 242, 242, 242, 244, 244, 244, 246, 246, 246, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 249, 249, 247, 249, 249, 247, 249, 249, 247, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 246, 244, 246, 246, 244, 245, 245, 243, 245, 245, 243, 244, 244, 242, 243, 243, 241, 243, 243, 241, 242, 242, 240, 241, 240, 238, 238, 237, 235, 233, 232, 230, 227, 226, 224, 225, 221, 220, 223, 219, 218, 222, 218, 217, 222, 218, 217, 200, 199, 197, 213, 212, 210, 223, 222, 220, 212, 211, 209, 196, 195, 193, 203, 202, 200, 214, 213, 211, 209, 208, 206, 211, 210, 208, 202, 201, 199, 197, 196, 194, 202, 201, 199, 206, 205, 203, 202, 201, 199, 195, 194, 192, 193, 189, 188, 197, 189, 187, 191, 183, 181, 186, 180, 180, 187, 183, 180, 192, 184, 181, 183, 175, 172, 163, 155, 153, 145, 136, 137, 133, 122, 126, 120, 105, 108, 107, 82, 78, 88, 59, 53, 66, 38, 34, 57, 39, 39, 70, 68, 79, 92, 99, 125, 115, 124, 167, 123, 141, 189, 120, 152, 190, 113, 154, 186, 114, 159, 190, 118, 157, 186, 103, 127, 155, 82, 87, 106, 48, 34, 34, 46, 14, 0, 89, 44, 0, 156, 100, 15, 181, 118, 12, 189, 120, 3, 206, 134, 14, 221, 146, 29, 248, 170, 59, 236, 158, 49, 215, 139, 27, 212, 136, 24, 228, 155, 44, 242, 172, 61, 243, 179, 73, 248, 186, 85, 242, 186, 91, 245, 192, 100, 252, 201, 112, 255, 206, 117, 252, 202, 113, 243, 194, 101, 241, 191, 94, 243, 194, 101, 249, 202, 120, 246, 200, 123, 245, 201, 126, 249, 205, 132, 249, 205, 130, 247, 201, 123, 250, 200, 113, 255, 201, 108, 255, 211, 111, 247, 184, 81, 241, 178, 75, 252, 189, 92, 246, 186, 100, 216, 158, 84, 166, 111, 47, 115, 70, 15, 103, 77, 28, 83, 67, 31, 123, 105, 91, 107, 89, 89, 98, 82, 93, 128, 114, 129, 108, 97, 105, 101, 92, 93, 104, 99, 93, 136, 132, 123, 164, 159, 155, 179, 173, 173, 193, 184, 185, 192, 183, 184, 188, 178, 176, 189, 182, 176, 200, 192, 189, 190, 185, 181, 186, 181, 177, 192, 187, 183, 195, 190, 186, 190, 185, 181, 181, 176, 172, 177, 172, 168, 185, 180, 176, 182, 177, 173, 177, 172, 168, 176, 171, 167, 185, 180, 176, 187, 182, 178, 167, 162, 158, 141, 136, 132, 157, 152, 149, 167, 162, 159, 163, 158, 155, 148, 143, 140, 150, 145, 141, 166, 161, 157, 171, 166, 162, 162, 157, 153, 174, 169, 165, 165, 160, 156, 163, 158, 152, 169, 164, 158, 170, 165, 159, 163, 158, 152, 158, 153, 147, 158, 153, 147, 179, 172, 166, 186, 179, 173, 169, 162, 156, 138, 131, 125, 138, 131, 125, 164, 157, 151, 172, 165, 159, 157, 150, 144, 149, 142, 136, 143, 136, 130, 145, 138, 132, 150, 143, 137, 142, 135, 129, 129, 122, 116, 132, 125, 119, 147, 140, 134, 154, 147, 141, 152, 145, 139, 152, 145, 139, 156, 149, 143, 161, 154, 148, 166, 159, 153, 168, 161, 155, 169, 162, 156, 162, 155, 149, 163, 156, 150, 162, 155, 149, 158, 151, 145, 152, 145, 139, 150, 143, 137, 153, 146, 140, 158, 151, 145, 154, 149, 145, 154, 149, 145, 156, 151, 147, 161, 156, 152, 167, 162, 158, 172, 167, 163, 176, 168, 165, 176, 168, 165, 167, 159, 156, 168, 160, 157, 170, 162, 159, 169, 161, 158, 165, 155, 153, 159, 149, 147, 153, 143, 141, 149, 139, 137, 149, 141, 138, 151, 143, 140, 151, 143, 140, 151, 143, 140, 157, 149, 146, 166, 158, 155, 169, 161, 158, 167, 159, 156, 159, 151, 148, 162, 154, 151, 167, 159, 156, 172, 164, 161, 176, 168, 165, 178, 170, 167, 178, 170, 167, 178, 170, 167, 179, 174, 171, 179, 174, 171, 180, 172, 169, 181, 173, 170, 182, 174, 171, 184, 176, 173, 186, 178, 175, 187, 179, 176, 183, 178, 175, 189, 184, 181, 195, 191, 190, 198, 197, 195, 202, 200, 203, 207, 207, 209, 215, 216, 220, 222, 223, 227, 221, 224, 229, 225, 228, 233, 229, 232, 237, 232, 235, 240, 233, 236, 241, 234, 237, 242, 237, 240, 245, 239, 242, 247, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 228, 231, 236, 228, 231, 236, 230, 233, 238, 232, 235, 240, 234, 237, 242, 236, 239, 244, 237, 240, 245, 238, 241, 246, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 236, 239, 244, 234, 237, 242, 232, 235, 240, 230, 234, 237, 229, 230, 234, 225, 226, 228, 221, 222, 224, 218, 219, 221, 218, 218, 218, 217, 217, 217, 215, 214, 212, 213, 212, 210, 214, 210, 207, 214, 210, 207, 214, 210, 207, 212, 208, 205, 211, 206, 202, 209, 204, 200, 206, 201, 197, 205, 200, 196, 202, 197, 191, 200, 195, 189, 197, 192, 186, 193, 188, 182, 192, 185, 179, 189, 182, 176, 188, 181, 175, 187, 180, 174, 192, 183, 178, 191, 182, 177, 190, 181, 176, 188, 179, 174, 185, 176, 171, 181, 172, 167, 177, 168, 163, 175, 166, 161, 175, 167, 164, 176, 171, 167, 178, 173, 169, 175, 170, 166, 169, 164, 160, 164, 159, 155, 162, 158, 155, 163, 159, 156, 165, 161, 158, 158, 154, 151, 149, 148, 146, 147, 146, 144, 152, 151, 149, 157, 156, 154, 158, 157, 155, 159, 155, 154, 144, 139, 136, 141, 136, 133, 141, 136, 133, 145, 140, 137, 149, 141, 138, 147, 139, 136, 146, 138, 135, 149, 141, 138, 142, 134, 131, 144, 136, 133, 144, 135, 130, 141, 132, 127, 142, 133, 128, 145, 136, 131, 143, 134, 129, 138, 129, 124, 105, 95, 93, 107, 97, 95, 120, 110, 108, 140, 130, 128, 151, 140, 138, 146, 135, 133, 138, 127, 125, 136, 125, 123, 121, 110, 108, 131, 120, 118, 144, 130, 129, 148, 134, 133, 147, 133, 132, 140, 126, 125, 123, 109, 108, 108, 94, 91, 122, 105, 98, 141, 126, 119, 155, 140, 133, 150, 137, 131, 143, 130, 124, 140, 127, 121, 131, 116, 113, 121, 103, 99, 118, 99, 93, 112, 91, 86, 106, 82, 78, 100, 75, 70, 92, 67, 63, 84, 60, 56, 77, 56, 51, 74, 56, 52, 61, 47, 46, 43, 29, 28, 26, 9, 2, 25, 3, 0, 42, 15, 0, 64, 34, 8, 80, 47, 14, 87, 52, 14, 100, 58, 18, 106, 61, 20, 112, 64, 26, 108, 64, 29, 97, 58, 27, 84, 53, 25, 72, 50, 26, 65, 49, 24, 63, 47, 24, 53, 42, 22, 42, 47, 25, 40, 53, 33, 34, 48, 33, 18, 29, 21, 7, 12, 15, 2, 7, 13, 2, 10, 21, 4, 16, 28, 1, 17, 32, 5, 22, 38, 0, 9, 26, 41, 68, 85, 175, 211, 225, 231, 255, 255, 240, 255, 255, 248, 255, 255, 244, 255, 255, 237, 255, 255, 238, 255, 255, 171, 197, 210, 29, 55, 70, 12, 35, 53, 1, 22, 39, 3, 20, 36, 5, 18, 34, 5, 17, 29, 3, 16, 25, 1, 16, 23, 0, 15, 22, 0, 15, 19, 0, 23, 22, 12, 50, 37, 32, 85, 55, 48, 111, 66, 55, 122, 68, 63, 122, 64, 79, 120, 64, 96, 117, 61, 100, 99, 45, 103, 86, 30, 100, 75, 11, 92, 62, 0, 79, 48, 0, 67, 35, 0, 64, 31, 0, 65, 34, 6, 65, 36, 6, 62, 35, 8, 57, 30, 11, 50, 26, 14, 58, 37, 32, 90, 72, 68, 137, 122, 119, 170, 159, 153, 166, 157, 148, 164, 160, 148, 180, 176, 164, 181, 179, 167, 165, 165, 155, 174, 174, 166, 180, 181, 173, 162, 161, 156, 168, 164, 161, 185, 180, 177, 187, 182, 179, 182, 177, 174, 190, 185, 182, 193, 188, 185, 182, 177, 174, 172, 167, 164, 193, 188, 185, 192, 187, 184, 188, 183, 180, 208, 203, 200, 177, 172, 169, 181, 176, 173, 188, 183, 180, 212, 207, 204, 198, 194, 191, 212, 208, 205, 212, 208, 205, 208, 204, 201, 211, 210, 208, 213, 212, 210, 215, 214, 212, 226, 225, 223, 234, 234, 234, 237, 237, 237, 241, 241, 241, 242, 242, 242, 242, 242, 242, 242, 242, 242, 244, 244, 244, 245, 245, 245, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 249, 249, 247, 249, 249, 247, 249, 249, 247, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 246, 244, 246, 246, 244, 245, 245, 243, 245, 245, 243, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 241, 240, 238, 237, 236, 234, 231, 230, 228, 226, 225, 223, 224, 220, 219, 222, 218, 217, 221, 217, 216, 222, 218, 217, 205, 204, 202, 207, 206, 204, 215, 214, 212, 212, 211, 209, 200, 199, 197, 203, 202, 200, 212, 211, 209, 211, 210, 208, 212, 211, 209, 201, 200, 198, 195, 194, 192, 202, 201, 199, 208, 207, 205, 205, 204, 202, 201, 200, 198, 203, 199, 198, 200, 192, 190, 198, 190, 187, 187, 182, 179, 179, 175, 172, 186, 178, 175, 188, 180, 177, 167, 159, 157, 140, 131, 132, 132, 121, 125, 121, 105, 106, 114, 86, 82, 104, 71, 62, 89, 55, 45, 76, 47, 41, 73, 58, 61, 77, 76, 94, 109, 123, 160, 101, 128, 171, 109, 144, 182, 120, 163, 197, 119, 165, 199, 109, 152, 187, 113, 146, 187, 129, 151, 188, 93, 100, 126, 59, 54, 58, 46, 28, 4, 94, 61, 10, 161, 111, 38, 192, 128, 38, 193, 117, 19, 194, 111, 5, 216, 136, 21, 214, 135, 16, 199, 119, 0, 194, 114, 0, 212, 132, 7, 229, 151, 27, 243, 168, 49, 255, 189, 78, 248, 181, 77, 250, 186, 89, 255, 194, 103, 255, 198, 110, 252, 195, 106, 244, 187, 97, 244, 188, 95, 250, 194, 97, 252, 194, 97, 248, 192, 97, 248, 193, 103, 252, 198, 112, 252, 197, 114, 248, 192, 105, 250, 192, 95, 253, 194, 90, 250, 188, 77, 253, 193, 81, 254, 197, 92, 221, 170, 79, 155, 113, 41, 115, 79, 29, 120, 91, 59, 134, 112, 91, 136, 120, 105, 102, 89, 80, 83, 71, 71, 97, 86, 90, 114, 105, 108, 97, 91, 91, 98, 95, 88, 150, 148, 136, 150, 148, 136, 176, 173, 164, 191, 188, 183, 197, 191, 191, 205, 196, 197, 203, 195, 193, 194, 185, 178, 190, 183, 175, 202, 195, 189, 192, 187, 183, 189, 184, 180, 194, 189, 185, 193, 188, 184, 183, 178, 174, 174, 169, 165, 173, 168, 164, 171, 166, 162, 180, 175, 171, 181, 176, 172, 170, 165, 161, 163, 158, 154, 167, 162, 158, 176, 171, 167, 180, 175, 171, 175, 170, 167, 154, 149, 146, 152, 147, 144, 172, 167, 164, 181, 176, 172, 166, 161, 157, 155, 150, 146, 158, 153, 149, 186, 181, 177, 174, 169, 165, 170, 165, 159, 173, 168, 162, 166, 159, 153, 150, 143, 137, 153, 146, 140, 169, 162, 156, 165, 158, 152, 148, 141, 135, 137, 130, 124, 143, 136, 130, 150, 143, 137, 150, 143, 137, 147, 140, 134, 147, 140, 134, 131, 124, 118, 126, 119, 113, 136, 129, 123, 158, 151, 145, 169, 162, 156, 161, 154, 148, 150, 143, 137, 147, 140, 134, 165, 158, 152, 161, 154, 148, 159, 152, 146, 161, 154, 148, 165, 158, 152, 168, 161, 155, 168, 161, 155, 166, 159, 153, 158, 151, 145, 149, 142, 136, 141, 134, 128, 139, 132, 126, 139, 132, 126, 139, 132, 126, 141, 134, 128, 144, 137, 131, 141, 136, 132, 142, 137, 133, 146, 141, 137, 152, 147, 143, 159, 154, 150, 163, 158, 154, 164, 156, 153, 163, 155, 152, 161, 153, 150, 164, 156, 153, 164, 156, 153, 159, 151, 148, 153, 143, 141, 149, 139, 137, 151, 141, 139, 156, 146, 144, 147, 139, 136, 150, 142, 139, 151, 143, 140, 150, 142, 139, 154, 146, 143, 158, 150, 147, 156, 148, 145, 151, 143, 140, 158, 150, 147, 161, 153, 150, 166, 158, 155, 171, 163, 160, 174, 166, 163, 175, 167, 164, 174, 166, 163, 173, 165, 162, 178, 173, 170, 178, 173, 170, 179, 171, 168, 178, 170, 167, 178, 170, 167, 179, 171, 168, 180, 172, 169, 181, 173, 170, 178, 173, 170, 186, 181, 178, 194, 190, 189, 197, 196, 194, 199, 197, 200, 204, 204, 206, 212, 213, 217, 220, 221, 225, 221, 224, 229, 224, 227, 232, 229, 232, 237, 231, 234, 239, 232, 235, 240, 234, 237, 242, 236, 239, 244, 238, 241, 246, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 228, 231, 236, 228, 231, 236, 230, 233, 238, 232, 235, 240, 234, 237, 242, 236, 239, 244, 237, 240, 245, 238, 241, 246, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 236, 239, 244, 234, 237, 242, 232, 235, 240, 230, 234, 237, 229, 230, 234, 226, 227, 229, 221, 222, 224, 219, 220, 222, 219, 219, 219, 218, 218, 218, 216, 215, 213, 214, 213, 211, 211, 207, 204, 211, 207, 204, 210, 206, 203, 209, 205, 202, 208, 203, 199, 205, 200, 196, 203, 198, 194, 202, 197, 193, 204, 199, 193, 202, 197, 191, 198, 193, 187, 194, 189, 183, 193, 186, 180, 191, 184, 178, 190, 183, 177, 189, 182, 176, 194, 185, 180, 189, 180, 175, 182, 173, 168, 176, 167, 162, 173, 164, 159, 174, 165, 160, 177, 168, 163, 179, 172, 166, 182, 174, 171, 181, 176, 172, 179, 174, 170, 173, 168, 164, 165, 160, 156, 161, 156, 152, 161, 157, 154, 164, 160, 157, 168, 164, 161, 164, 160, 157, 157, 156, 154, 152, 151, 149, 149, 148, 146, 151, 150, 148, 156, 155, 153, 160, 159, 157, 161, 156, 153, 153, 148, 145, 149, 144, 141, 153, 148, 145, 158, 150, 147, 153, 145, 142, 144, 136, 133, 139, 131, 128, 154, 146, 143, 151, 143, 140, 145, 136, 131, 139, 130, 125, 140, 131, 126, 142, 133, 128, 138, 129, 124, 130, 121, 116, 127, 117, 115, 120, 110, 108, 121, 111, 109, 132, 122, 120, 139, 128, 126, 135, 124, 122, 132, 121, 119, 134, 123, 121, 112, 101, 99, 119, 108, 106, 128, 114, 113, 133, 119, 118, 137, 123, 122, 133, 119, 118, 118, 104, 103, 103, 89, 86, 121, 106, 99, 139, 124, 117, 140, 127, 121, 122, 108, 105, 114, 100, 97, 123, 109, 108, 128, 112, 112, 122, 104, 102, 108, 89, 85, 108, 84, 80, 98, 73, 68, 87, 62, 57, 83, 58, 53, 86, 61, 56, 84, 60, 56, 76, 57, 53, 45, 34, 32, 36, 25, 21, 32, 13, 6, 35, 12, 0, 49, 21, 0, 71, 37, 10, 90, 54, 22, 102, 62, 26, 107, 63, 26, 111, 66, 27, 114, 66, 30, 106, 61, 28, 93, 54, 25, 79, 49, 21, 70, 50, 23, 67, 53, 27, 67, 52, 29, 57, 51, 27, 48, 56, 32, 47, 61, 38, 37, 51, 34, 17, 29, 19, 6, 10, 11, 3, 6, 13, 0, 1, 11, 3, 13, 25, 2, 15, 31, 0, 4, 20, 0, 14, 30, 6, 29, 43, 34, 66, 77, 114, 147, 154, 178, 207, 205, 215, 241, 238, 235, 255, 255, 234, 255, 255, 234, 255, 255, 151, 179, 191, 0, 24, 36, 4, 27, 41, 2, 19, 35, 5, 19, 32, 5, 17, 29, 6, 16, 26, 5, 14, 23, 4, 13, 20, 3, 12, 19, 0, 14, 17, 0, 9, 10, 3, 39, 27, 22, 81, 49, 40, 113, 67, 52, 133, 74, 67, 142, 77, 93, 145, 81, 117, 146, 80, 116, 117, 49, 129, 111, 39, 137, 105, 28, 131, 95, 17, 111, 74, 3, 84, 50, 0, 68, 34, 0, 64, 30, 0, 67, 33, 0, 64, 31, 0, 57, 25, 2, 44, 15, 0, 35, 11, 1, 54, 33, 28, 102, 84, 80, 144, 131, 125, 160, 151, 144, 160, 153, 143, 174, 170, 159, 174, 172, 160, 161, 161, 151, 178, 178, 170, 185, 186, 180, 161, 160, 156, 167, 163, 160, 185, 180, 177, 186, 181, 178, 180, 175, 172, 189, 184, 181, 194, 189, 186, 183, 178, 175, 174, 169, 166, 188, 183, 180, 196, 191, 188, 195, 190, 187, 214, 209, 206, 184, 179, 176, 191, 186, 183, 198, 193, 190, 215, 210, 207, 196, 192, 189, 213, 209, 206, 213, 209, 206, 207, 203, 200, 212, 211, 209, 214, 213, 211, 215, 214, 212, 228, 227, 225, 234, 234, 234, 237, 237, 237, 241, 241, 241, 242, 242, 242, 242, 242, 242, 242, 242, 242, 243, 243, 243, 245, 245, 245, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 249, 249, 247, 249, 249, 247, 249, 249, 247, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 246, 244, 245, 245, 243, 245, 245, 243, 245, 245, 243, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 240, 239, 237, 236, 235, 233, 230, 229, 227, 225, 224, 222, 222, 218, 217, 221, 217, 216, 221, 217, 216, 221, 217, 216, 216, 215, 213, 203, 202, 200, 207, 206, 204, 216, 215, 213, 210, 209, 207, 205, 204, 202, 212, 211, 209, 216, 215, 213, 206, 205, 203, 199, 198, 196, 200, 199, 197, 210, 209, 207, 213, 212, 210, 207, 206, 204, 203, 202, 200, 207, 203, 200, 203, 195, 193, 209, 201, 198, 198, 193, 190, 175, 172, 167, 168, 161, 155, 168, 160, 157, 150, 142, 140, 124, 115, 116, 134, 123, 127, 122, 106, 106, 118, 89, 83, 119, 83, 71, 112, 73, 58, 96, 60, 48, 78, 54, 50, 68, 58, 67, 91, 101, 128, 105, 128, 160, 118, 147, 177, 115, 150, 180, 115, 154, 187, 125, 163, 202, 121, 158, 202, 110, 143, 188, 109, 134, 174, 103, 120, 146, 53, 60, 66, 36, 29, 13, 96, 68, 31, 141, 94, 40, 141, 78, 9, 142, 70, 0, 184, 115, 14, 197, 127, 16, 194, 123, 7, 191, 119, 0, 207, 132, 7, 219, 144, 19, 236, 159, 41, 255, 186, 74, 253, 180, 77, 250, 180, 84, 249, 180, 89, 245, 179, 92, 238, 174, 87, 233, 172, 83, 240, 179, 88, 253, 190, 93, 247, 184, 81, 245, 182, 79, 244, 184, 86, 248, 189, 97, 246, 189, 100, 240, 185, 95, 239, 182, 92, 243, 184, 92, 229, 170, 76, 205, 150, 60, 161, 112, 33, 108, 67, 1, 80, 52, 5, 106, 86, 59, 137, 127, 117, 144, 138, 138, 116, 106, 114, 152, 142, 151, 107, 98, 103, 100, 94, 94, 112, 107, 101, 84, 82, 70, 113, 111, 98, 156, 157, 141, 180, 180, 168, 193, 193, 185, 194, 190, 187, 190, 186, 183, 200, 195, 192, 207, 199, 196, 203, 196, 186, 200, 193, 183, 197, 192, 186, 189, 184, 180, 188, 183, 179, 193, 188, 184, 191, 186, 182, 182, 177, 173, 176, 171, 167, 179, 174, 170, 183, 178, 174, 178, 173, 169, 172, 167, 163, 168, 163, 159, 169, 164, 160, 172, 167, 163, 176, 171, 167, 180, 175, 171, 173, 168, 165, 165, 160, 157, 158, 153, 150, 158, 153, 150, 168, 163, 159, 178, 173, 169, 178, 173, 169, 174, 169, 165, 165, 160, 156, 173, 168, 164, 173, 168, 162, 156, 151, 145, 137, 130, 124, 129, 122, 116, 135, 128, 122, 145, 138, 132, 124, 117, 111, 141, 134, 128, 146, 139, 133, 133, 126, 120, 127, 120, 114, 135, 128, 122, 139, 132, 126, 132, 125, 119, 138, 131, 125, 152, 145, 139, 169, 162, 156, 176, 169, 163, 168, 161, 155, 158, 151, 145, 157, 150, 144, 163, 156, 150, 153, 146, 140, 154, 147, 141, 157, 150, 144, 163, 156, 150, 168, 161, 155, 168, 161, 155, 161, 154, 148, 155, 148, 142, 137, 130, 124, 127, 120, 114, 124, 117, 111, 135, 128, 122, 150, 143, 137, 158, 151, 145, 157, 150, 144, 156, 149, 143, 151, 146, 142, 153, 148, 144, 159, 154, 150, 166, 161, 157, 172, 167, 163, 175, 170, 166, 175, 167, 164, 173, 165, 162, 180, 172, 169, 176, 168, 165, 165, 157, 154, 148, 140, 137, 134, 124, 122, 133, 123, 121, 146, 136, 134, 159, 149, 147, 153, 145, 142, 157, 149, 146, 160, 152, 149, 160, 152, 149, 162, 154, 151, 162, 154, 151, 156, 148, 145, 147, 139, 136, 148, 140, 137, 152, 144, 141, 158, 150, 147, 164, 156, 153, 168, 160, 157, 170, 162, 159, 170, 162, 159, 169, 161, 158, 173, 168, 165, 172, 167, 164, 173, 165, 162, 171, 163, 160, 171, 163, 160, 171, 163, 160, 171, 163, 160, 172, 164, 161, 174, 169, 166, 183, 178, 175, 192, 188, 187, 195, 194, 192, 197, 195, 198, 201, 201, 203, 210, 211, 215, 218, 219, 223, 221, 224, 229, 224, 227, 232, 228, 231, 236, 231, 234, 239, 232, 235, 240, 233, 236, 241, 236, 239, 244, 238, 241, 246, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 229, 232, 237, 230, 233, 238, 231, 234, 239, 233, 236, 241, 234, 237, 242, 236, 239, 244, 237, 240, 245, 238, 241, 246, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 241, 244, 249, 240, 243, 248, 238, 241, 246, 235, 238, 243, 233, 236, 241, 232, 236, 239, 231, 232, 236, 227, 228, 230, 222, 223, 225, 219, 220, 222, 219, 219, 219, 217, 217, 217, 216, 215, 213, 213, 212, 210, 217, 213, 210, 216, 212, 209, 215, 211, 208, 213, 209, 206, 211, 206, 202, 208, 203, 199, 205, 200, 196, 203, 198, 194, 204, 199, 193, 202, 197, 191, 200, 195, 189, 197, 192, 186, 195, 188, 182, 192, 185, 179, 190, 183, 177, 189, 182, 176, 180, 171, 166, 182, 173, 168, 181, 172, 167, 180, 171, 166, 181, 172, 167, 184, 175, 170, 182, 173, 168, 175, 168, 162, 181, 173, 170, 175, 170, 166, 172, 167, 163, 169, 164, 160, 161, 156, 152, 151, 146, 142, 147, 143, 140, 149, 145, 142, 166, 162, 159, 167, 163, 160, 166, 165, 163, 168, 167, 165, 169, 168, 166, 170, 169, 167, 170, 169, 167, 170, 169, 167, 158, 153, 150, 157, 152, 149, 153, 148, 145, 147, 142, 139, 143, 135, 132, 140, 132, 129, 141, 133, 130, 143, 135, 132, 143, 135, 132, 143, 135, 132, 140, 131, 126, 124, 115, 110, 104, 95, 90, 98, 89, 84, 115, 106, 101, 137, 128, 123, 113, 103, 101, 119, 109, 107, 134, 124, 122, 148, 138, 136, 147, 136, 134, 135, 124, 122, 129, 118, 116, 133, 122, 120, 132, 121, 119, 127, 116, 114, 132, 118, 117, 146, 132, 131, 143, 129, 128, 111, 97, 96, 98, 84, 83, 116, 102, 99, 140, 125, 118, 118, 103, 96, 106, 93, 87, 118, 104, 101, 127, 115, 115, 125, 111, 111, 117, 101, 102, 116, 98, 98, 104, 83, 80, 87, 63, 59, 92, 67, 62, 106, 79, 72, 92, 67, 60, 78, 53, 48, 73, 49, 45, 66, 47, 43, 43, 32, 28, 31, 20, 14, 25, 7, 0, 35, 9, 0, 63, 32, 12, 92, 56, 32, 103, 64, 35, 100, 57, 25, 113, 67, 34, 120, 71, 38, 115, 69, 36, 103, 60, 28, 93, 56, 27, 90, 61, 31, 79, 60, 28, 66, 52, 23, 64, 55, 26, 56, 55, 27, 49, 59, 32, 49, 65, 39, 45, 58, 41, 28, 38, 29, 13, 15, 14, 1, 2, 7, 4, 8, 17, 1, 9, 20, 0, 11, 25, 0, 13, 29, 1, 17, 32, 2, 21, 35, 0, 27, 36, 0, 31, 35, 9, 54, 51, 43, 92, 88, 69, 118, 115, 113, 158, 161, 142, 185, 192, 76, 114, 123, 0, 29, 39, 0, 19, 31, 1, 21, 32, 1, 18, 28, 5, 15, 25, 4, 13, 20, 3, 10, 16, 5, 10, 16, 5, 10, 16, 2, 11, 16, 0, 7, 11, 0, 31, 24, 13, 73, 47, 50, 129, 84, 51, 139, 79, 54, 135, 66, 96, 156, 84, 121, 153, 78, 145, 148, 69, 147, 129, 45, 157, 126, 36, 167, 130, 41, 161, 123, 40, 144, 106, 35, 112, 73, 16, 76, 38, 0, 78, 36, 0, 78, 38, 2, 81, 45, 13, 54, 19, 0, 38, 9, 0, 38, 14, 4, 52, 31, 26, 104, 89, 84, 155, 144, 140, 163, 156, 150, 175, 171, 162, 189, 186, 177, 164, 164, 154, 163, 163, 155, 196, 195, 191, 180, 179, 175, 176, 172, 169, 185, 180, 177, 180, 175, 172, 175, 170, 167, 187, 182, 179, 195, 190, 187, 190, 185, 182, 186, 181, 178, 192, 187, 184, 192, 187, 184, 192, 187, 184, 200, 195, 192, 208, 203, 200, 199, 194, 191, 195, 190, 187, 207, 202, 199, 193, 189, 186, 203, 199, 196, 214, 210, 207, 218, 214, 211, 215, 214, 212, 214, 213, 211, 218, 217, 215, 223, 222, 220, 231, 231, 231, 235, 235, 235, 240, 240, 240, 243, 243, 243, 243, 243, 243, 242, 242, 242, 243, 243, 243, 245, 245, 245, 244, 244, 242, 245, 245, 243, 245, 245, 243, 246, 246, 244, 247, 247, 245, 248, 248, 246, 248, 248, 246, 249, 249, 247, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 249, 249, 247, 249, 249, 247, 248, 248, 246, 248, 248, 246, 248, 248, 246, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 245, 245, 243, 244, 244, 242, 242, 242, 240, 241, 241, 239, 243, 242, 240, 239, 238, 236, 233, 232, 230, 228, 227, 225, 226, 222, 221, 222, 218, 217, 216, 212, 211, 212, 208, 207, 218, 217, 215, 201, 200, 198, 196, 195, 193, 212, 211, 209, 221, 220, 218, 216, 215, 213, 214, 213, 211, 221, 220, 218, 213, 212, 210, 206, 205, 203, 202, 201, 199, 197, 196, 194, 196, 195, 193, 208, 207, 205, 210, 209, 207, 197, 193, 190, 206, 201, 198, 195, 187, 184, 200, 195, 191, 180, 177, 172, 168, 161, 155, 169, 162, 156, 139, 134, 131, 122, 113, 114, 129, 118, 122, 128, 109, 111, 128, 98, 90, 123, 83, 71, 111, 68, 51, 103, 61, 47, 99, 69, 61, 101, 83, 83, 75, 74, 82, 89, 97, 110, 116, 129, 146, 136, 152, 177, 135, 156, 187, 123, 149, 184, 114, 146, 185, 114, 149, 191, 119, 158, 201, 112, 151, 190, 95, 128, 159, 63, 84, 103, 35, 36, 40, 37, 21, 8, 82, 46, 20, 128, 84, 39, 142, 95, 27, 141, 90, 7, 151, 97, 7, 172, 114, 15, 188, 123, 19, 200, 132, 25, 226, 154, 46, 251, 178, 75, 217, 143, 46, 219, 146, 52, 224, 153, 65, 229, 159, 74, 227, 159, 74, 224, 158, 71, 226, 161, 71, 231, 167, 70, 242, 177, 75, 235, 172, 69, 255, 197, 97, 241, 187, 91, 216, 166, 77, 209, 161, 79, 190, 142, 70, 188, 138, 77, 150, 100, 49, 106, 58, 18, 91, 47, 18, 63, 30, 11, 60, 40, 29, 104, 95, 90, 130, 131, 133, 148, 151, 158, 134, 127, 145, 104, 93, 110, 82, 73, 78, 96, 91, 85, 126, 123, 106, 144, 143, 123, 155, 154, 136, 163, 161, 148, 195, 192, 185, 194, 190, 187, 194, 190, 187, 197, 194, 189, 202, 197, 191, 205, 201, 192, 205, 201, 190, 204, 200, 189, 205, 200, 194, 209, 204, 200, 200, 195, 191, 196, 191, 187, 200, 195, 191, 190, 185, 181, 181, 176, 172, 190, 185, 181, 185, 180, 176, 181, 176, 172, 185, 180, 176, 193, 188, 184, 188, 183, 179, 172, 167, 163, 160, 155, 151, 158, 153, 149, 159, 155, 152, 158, 154, 151, 167, 163, 160, 180, 176, 173, 179, 176, 171, 164, 161, 156, 154, 149, 145, 154, 149, 145, 178, 173, 169, 177, 172, 168, 164, 157, 151, 138, 131, 125, 121, 114, 108, 129, 122, 116, 152, 143, 138, 169, 160, 155, 150, 143, 137, 140, 133, 127, 112, 105, 99, 102, 95, 89, 129, 122, 116, 152, 145, 139, 159, 152, 146, 166, 159, 153, 191, 184, 178, 162, 155, 149, 151, 144, 138, 159, 152, 146, 158, 151, 145, 155, 148, 142, 157, 150, 144, 159, 152, 146, 149, 142, 136, 148, 141, 135, 151, 144, 138, 159, 152, 146, 166, 159, 153, 163, 156, 150, 150, 143, 137, 138, 131, 125, 136, 129, 123, 134, 127, 121, 137, 130, 124, 147, 140, 134, 160, 153, 147, 163, 156, 150, 155, 148, 142, 146, 139, 133, 162, 157, 153, 170, 165, 161, 173, 168, 164, 168, 163, 159, 162, 157, 153, 162, 157, 153, 167, 159, 156, 168, 160, 157, 168, 160, 157, 165, 157, 154, 160, 152, 149, 154, 146, 143, 150, 140, 138, 146, 136, 134, 144, 134, 132, 144, 134, 132, 155, 147, 144, 156, 148, 145, 159, 151, 148, 161, 153, 150, 164, 156, 153, 167, 159, 156, 169, 161, 158, 170, 162, 159, 170, 162, 159, 166, 158, 155, 162, 154, 151, 161, 153, 150, 163, 155, 152, 166, 158, 155, 168, 160, 157, 168, 160, 157, 165, 160, 157, 167, 162, 159, 170, 162, 159, 169, 161, 158, 168, 160, 157, 168, 160, 157, 170, 162, 159, 173, 165, 162, 177, 172, 169, 181, 176, 173, 186, 182, 181, 190, 189, 187, 196, 194, 197, 203, 203, 205, 210, 211, 215, 215, 216, 220, 223, 226, 231, 228, 231, 236, 234, 237, 242, 237, 240, 245, 237, 240, 245, 236, 239, 244, 235, 238, 243, 235, 238, 243, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 230, 233, 238, 230, 233, 238, 232, 235, 240, 233, 236, 241, 235, 238, 243, 236, 239, 244, 237, 240, 245, 238, 241, 246, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 241, 244, 249, 240, 243, 248, 238, 241, 246, 235, 238, 243, 233, 236, 241, 231, 235, 238, 230, 231, 235, 227, 228, 230, 222, 223, 225, 219, 220, 222, 219, 219, 219, 217, 217, 217, 216, 215, 213, 213, 212, 210, 216, 212, 209, 216, 212, 209, 214, 210, 207, 212, 208, 205, 211, 206, 202, 207, 202, 198, 204, 199, 195, 202, 197, 193, 198, 193, 187, 197, 192, 186, 195, 190, 184, 192, 187, 181, 190, 183, 177, 187, 180, 174, 185, 178, 172, 184, 177, 171, 178, 169, 164, 180, 171, 166, 179, 170, 165, 176, 167, 162, 177, 168, 163, 179, 170, 165, 177, 168, 163, 171, 162, 157, 178, 170, 167, 172, 167, 163, 171, 166, 162, 170, 165, 161, 165, 160, 156, 159, 154, 150, 158, 154, 151, 163, 159, 156, 177, 173, 170, 178, 174, 171, 177, 176, 174, 177, 176, 174, 175, 174, 172, 171, 170, 168, 167, 166, 164, 166, 162, 161, 168, 163, 160, 163, 158, 155, 154, 149, 146, 147, 142, 139, 147, 139, 136, 150, 142, 139, 155, 147, 144, 158, 150, 147, 140, 132, 129, 141, 133, 130, 141, 132, 127, 136, 127, 122, 129, 120, 115, 125, 116, 111, 132, 123, 118, 141, 132, 127, 140, 130, 128, 131, 121, 119, 123, 113, 111, 122, 112, 110, 121, 110, 108, 119, 108, 106, 127, 116, 114, 138, 127, 125, 138, 127, 125, 141, 130, 128, 141, 127, 126, 140, 126, 125, 135, 121, 120, 117, 103, 102, 111, 97, 96, 124, 110, 107, 120, 107, 99, 121, 108, 100, 120, 107, 101, 117, 106, 104, 121, 109, 111, 123, 111, 113, 115, 100, 103, 105, 86, 88, 90, 69, 68, 87, 63, 59, 101, 76, 71, 111, 84, 77, 96, 71, 64, 81, 56, 49, 69, 45, 41, 53, 34, 28, 37, 26, 20, 27, 17, 8, 28, 8, 0, 45, 19, 4, 77, 42, 23, 99, 61, 38, 107, 66, 38, 107, 62, 31, 107, 60, 30, 114, 68, 35, 114, 67, 37, 104, 61, 29, 97, 61, 29, 94, 65, 31, 85, 65, 30, 71, 58, 23, 69, 65, 30, 58, 62, 29, 49, 62, 32, 48, 64, 38, 42, 55, 38, 27, 34, 26, 14, 14, 14, 5, 4, 10, 5, 8, 17, 2, 9, 19, 1, 11, 21, 0, 12, 24, 2, 14, 26, 2, 19, 29, 0, 23, 31, 0, 27, 32, 0, 47, 47, 0, 50, 47, 0, 31, 35, 0, 36, 42, 13, 56, 65, 0, 34, 45, 0, 12, 23, 4, 31, 42, 0, 19, 28, 2, 16, 25, 4, 15, 21, 4, 11, 17, 5, 10, 14, 5, 10, 14, 6, 9, 14, 2, 11, 18, 0, 16, 26, 0, 35, 36, 9, 72, 53, 45, 126, 85, 51, 140, 82, 57, 140, 68, 99, 160, 83, 122, 157, 75, 152, 157, 73, 158, 142, 54, 170, 143, 52, 183, 148, 56, 181, 144, 56, 174, 133, 54, 154, 109, 42, 129, 83, 24, 106, 59, 7, 98, 51, 7, 90, 46, 7, 61, 22, 0, 46, 12, 0, 41, 12, 0, 42, 18, 8, 77, 58, 54, 120, 106, 103, 159, 149, 147, 171, 164, 158, 177, 172, 166, 175, 172, 165, 165, 162, 157, 177, 173, 170, 178, 174, 173, 178, 173, 170, 188, 183, 180, 184, 179, 176, 179, 174, 171, 188, 183, 180, 193, 188, 185, 189, 184, 181, 188, 183, 180, 190, 185, 182, 195, 190, 187, 195, 190, 187, 200, 195, 192, 208, 203, 200, 203, 198, 195, 198, 193, 190, 205, 200, 197, 197, 193, 190, 204, 200, 197, 212, 208, 205, 214, 210, 207, 211, 210, 208, 212, 211, 209, 219, 218, 216, 226, 225, 223, 231, 231, 231, 235, 235, 235, 240, 240, 240, 242, 242, 242, 242, 242, 242, 242, 242, 242, 243, 243, 243, 245, 245, 245, 244, 244, 242, 245, 245, 243, 245, 245, 243, 246, 246, 244, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 249, 249, 247, 249, 249, 247, 249, 249, 247, 248, 248, 246, 248, 248, 246, 248, 248, 246, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 243, 243, 241, 242, 242, 240, 241, 241, 239, 243, 242, 240, 239, 238, 236, 234, 233, 231, 230, 229, 227, 228, 224, 223, 224, 220, 219, 218, 214, 213, 214, 210, 209, 211, 210, 208, 209, 208, 206, 208, 207, 205, 210, 209, 207, 211, 210, 208, 210, 209, 207, 209, 208, 206, 210, 209, 207, 214, 213, 211, 209, 208, 206, 206, 205, 203, 201, 200, 198, 196, 195, 193, 205, 204, 202, 209, 208, 206, 199, 195, 194, 200, 195, 192, 207, 202, 198, 191, 188, 183, 192, 187, 181, 180, 173, 165, 165, 158, 152, 164, 159, 156, 130, 124, 124, 124, 115, 120, 120, 104, 105, 122, 91, 86, 119, 79, 67, 114, 68, 52, 106, 63, 47, 103, 69, 60, 105, 80, 73, 106, 87, 80, 97, 83, 80, 100, 90, 98, 119, 115, 130, 140, 142, 167, 147, 158, 188, 141, 162, 193, 131, 162, 193, 107, 145, 181, 111, 153, 191, 114, 156, 194, 107, 141, 176, 86, 103, 129, 61, 63, 78, 54, 39, 42, 57, 34, 20, 69, 41, 4, 81, 48, 0, 111, 73, 11, 149, 104, 36, 172, 119, 41, 173, 115, 31, 176, 112, 25, 183, 117, 31, 177, 111, 27, 187, 120, 39, 202, 136, 58, 213, 150, 73, 206, 147, 69, 196, 139, 60, 198, 142, 59, 208, 152, 67, 218, 161, 74, 228, 172, 85, 226, 175, 92, 169, 123, 45, 120, 82, 11, 111, 75, 15, 100, 64, 16, 104, 68, 34, 93, 57, 35, 94, 57, 48, 98, 64, 63, 82, 56, 59, 92, 76, 79, 111, 105, 109, 103, 104, 108, 113, 113, 121, 97, 90, 108, 93, 82, 98, 102, 96, 96, 136, 132, 121, 167, 164, 145, 181, 178, 159, 188, 184, 172, 194, 191, 184, 181, 177, 176, 185, 181, 182, 193, 189, 186, 201, 198, 191, 207, 203, 192, 207, 203, 191, 203, 199, 188, 200, 196, 187, 200, 195, 189, 198, 193, 189, 182, 177, 173, 173, 168, 164, 177, 172, 168, 174, 169, 165, 173, 168, 164, 186, 181, 177, 177, 172, 168, 172, 167, 163, 169, 164, 160, 166, 161, 157, 154, 149, 145, 142, 137, 133, 146, 141, 137, 158, 153, 149, 162, 158, 155, 156, 152, 149, 144, 140, 137, 126, 122, 119, 109, 106, 101, 109, 106, 101, 134, 129, 125, 159, 154, 150, 156, 151, 147, 122, 117, 113, 96, 89, 83, 109, 102, 96, 144, 137, 131, 161, 154, 148, 141, 132, 127, 112, 103, 98, 120, 113, 107, 118, 111, 105, 113, 106, 100, 127, 120, 114, 155, 148, 142, 165, 158, 152, 164, 157, 151, 173, 166, 160, 168, 161, 155, 149, 142, 136, 145, 138, 132, 153, 146, 140, 151, 144, 138, 148, 141, 135, 149, 142, 136, 146, 139, 133, 147, 140, 134, 147, 140, 134, 147, 140, 134, 147, 140, 134, 145, 138, 132, 140, 133, 127, 135, 128, 122, 132, 125, 119, 145, 138, 132, 154, 147, 141, 162, 155, 149, 162, 155, 149, 156, 149, 143, 156, 149, 143, 166, 159, 153, 176, 169, 163, 168, 163, 159, 168, 163, 159, 162, 157, 153, 154, 149, 145, 151, 146, 142, 152, 147, 143, 152, 144, 141, 148, 140, 137, 152, 144, 141, 153, 145, 142, 155, 147, 144, 157, 149, 146, 159, 149, 147, 159, 149, 147, 158, 148, 146, 157, 147, 145, 153, 145, 142, 155, 147, 144, 159, 151, 148, 164, 156, 153, 169, 161, 158, 174, 166, 163, 178, 170, 167, 180, 172, 169, 176, 168, 165, 172, 164, 161, 167, 159, 156, 165, 157, 154, 166, 158, 155, 168, 160, 157, 169, 161, 158, 169, 161, 158, 168, 163, 160, 168, 163, 160, 170, 162, 159, 168, 160, 157, 167, 159, 156, 167, 159, 156, 171, 163, 160, 174, 166, 163, 176, 171, 168, 181, 176, 173, 187, 183, 182, 192, 191, 189, 199, 197, 200, 206, 206, 208, 214, 215, 219, 220, 221, 225, 223, 226, 231, 227, 230, 235, 230, 233, 238, 232, 235, 240, 233, 236, 241, 234, 237, 242, 237, 240, 245, 239, 242, 247, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 230, 233, 238, 231, 234, 239, 232, 235, 240, 234, 237, 242, 235, 238, 243, 237, 240, 245, 238, 241, 246, 239, 242, 247, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 241, 244, 249, 241, 244, 249, 240, 243, 248, 238, 241, 246, 235, 238, 243, 233, 236, 241, 231, 235, 238, 230, 231, 235, 226, 227, 229, 221, 222, 224, 219, 220, 222, 219, 219, 219, 218, 218, 218, 216, 215, 213, 214, 213, 211, 215, 211, 208, 214, 210, 207, 213, 209, 206, 211, 207, 204, 209, 204, 200, 206, 201, 197, 203, 198, 194, 201, 196, 192, 196, 191, 185, 195, 190, 184, 193, 188, 182, 190, 185, 179, 189, 182, 176, 186, 179, 173, 184, 177, 171, 183, 176, 170, 187, 178, 173, 187, 178, 173, 185, 176, 171, 181, 172, 167, 181, 172, 167, 183, 174, 169, 180, 171, 166, 174, 165, 160, 169, 162, 156, 166, 159, 153, 166, 159, 153, 168, 161, 155, 165, 160, 156, 163, 158, 154, 167, 162, 158, 174, 169, 165, 158, 154, 151, 161, 157, 154, 164, 160, 157, 166, 162, 159, 166, 162, 159, 164, 160, 157, 161, 157, 154, 159, 155, 152, 166, 161, 158, 159, 154, 151, 151, 146, 143, 148, 143, 140, 149, 144, 140, 152, 147, 143, 152, 147, 143, 151, 146, 142, 149, 141, 138, 143, 135, 132, 136, 129, 123, 131, 124, 118, 128, 121, 115, 124, 117, 111, 120, 111, 106, 116, 107, 102, 126, 118, 115, 126, 118, 115, 127, 117, 115, 120, 110, 108, 107, 97, 95, 98, 88, 86, 104, 94, 92, 116, 106, 104, 112, 101, 99, 126, 115, 113, 127, 116, 114, 116, 105, 103, 110, 99, 97, 103, 92, 90, 102, 88, 87, 109, 95, 92, 109, 96, 87, 128, 118, 108, 134, 123, 119, 121, 111, 110, 118, 107, 111, 125, 112, 119, 115, 100, 107, 92, 76, 79, 89, 69, 70, 89, 65, 63, 92, 67, 62, 87, 62, 55, 71, 46, 39, 63, 38, 31, 62, 38, 34, 55, 36, 30, 33, 20, 12, 23, 10, 1, 32, 10, 0, 59, 32, 15, 90, 53, 34, 105, 65, 40, 111, 67, 40, 115, 70, 39, 105, 58, 28, 114, 68, 35, 118, 72, 39, 111, 68, 34, 106, 70, 34, 104, 76, 37, 94, 75, 33, 80, 68, 26, 78, 76, 37, 63, 71, 34, 49, 66, 32, 42, 60, 34, 34, 48, 31, 22, 29, 22, 13, 13, 15, 7, 6, 12, 5, 8, 17, 2, 9, 17, 1, 10, 19, 0, 10, 19, 2, 12, 22, 0, 14, 23, 0, 18, 25, 0, 21, 28, 0, 21, 27, 0, 25, 31, 0, 20, 32, 0, 25, 37, 2, 31, 47, 0, 22, 37, 0, 12, 26, 0, 15, 29, 1, 15, 26, 1, 14, 22, 3, 12, 17, 2, 12, 14, 2, 10, 13, 2, 10, 12, 3, 11, 14, 0, 12, 20, 12, 35, 53, 7, 47, 59, 10, 71, 63, 46, 123, 91, 60, 145, 88, 69, 146, 74, 108, 165, 84, 128, 164, 77, 159, 169, 83, 166, 159, 71, 180, 160, 74, 191, 164, 77, 193, 157, 73, 196, 151, 70, 193, 140, 64, 181, 124, 53, 151, 95, 34, 131, 79, 22, 111, 61, 10, 79, 35, 0, 62, 24, 0, 49, 15, 0, 33, 5, 0, 44, 21, 15, 94, 76, 74, 163, 149, 149, 173, 163, 161, 171, 163, 160, 188, 180, 177, 172, 167, 163, 166, 161, 158, 186, 180, 180, 181, 176, 173, 192, 187, 184, 189, 184, 181, 184, 179, 176, 189, 184, 181, 190, 185, 182, 188, 183, 180, 191, 186, 183, 177, 172, 169, 190, 185, 182, 193, 188, 185, 195, 190, 187, 206, 201, 198, 208, 203, 200, 203, 198, 195, 204, 199, 196, 199, 195, 192, 205, 201, 198, 210, 206, 203, 211, 207, 204, 207, 206, 204, 211, 210, 208, 220, 219, 217, 229, 228, 226, 231, 231, 231, 235, 235, 235, 240, 240, 240, 242, 242, 242, 242, 242, 242, 242, 242, 242, 243, 243, 243, 244, 244, 244, 244, 244, 242, 244, 244, 242, 245, 245, 243, 246, 246, 244, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 249, 249, 247, 249, 249, 247, 249, 249, 247, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 244, 244, 242, 242, 242, 240, 241, 241, 239, 240, 240, 238, 244, 243, 241, 240, 239, 237, 236, 235, 233, 233, 232, 230, 232, 228, 227, 227, 223, 222, 221, 217, 216, 217, 213, 212, 209, 208, 206, 219, 218, 216, 221, 220, 218, 212, 211, 209, 206, 205, 203, 208, 207, 205, 208, 207, 205, 203, 202, 200, 214, 213, 211, 211, 210, 208, 212, 211, 209, 206, 205, 203, 196, 195, 193, 200, 199, 197, 205, 204, 202, 198, 197, 195, 188, 184, 181, 210, 206, 203, 175, 172, 167, 191, 186, 180, 182, 175, 167, 162, 155, 147, 195, 190, 186, 157, 151, 151, 128, 122, 126, 123, 108, 111, 121, 92, 88, 121, 83, 72, 121, 75, 59, 114, 71, 55, 107, 73, 64, 111, 77, 67, 120, 79, 57, 115, 74, 54, 109, 74, 68, 112, 85, 92, 117, 99, 115, 121, 113, 134, 126, 129, 148, 129, 142, 159, 122, 145, 163, 114, 142, 164, 113, 144, 173, 118, 147, 177, 117, 136, 168, 100, 110, 137, 77, 78, 96, 65, 58, 65, 46, 31, 24, 49, 28, 11, 61, 33, 9, 83, 50, 15, 98, 57, 13, 99, 53, 1, 102, 51, 0, 107, 55, 0, 137, 85, 25, 140, 88, 28, 149, 101, 39, 152, 106, 46, 135, 94, 32, 114, 75, 10, 115, 77, 12, 132, 94, 29, 110, 65, 8, 131, 88, 35, 117, 81, 31, 76, 44, 3, 84, 60, 26, 116, 96, 71, 116, 99, 81, 120, 103, 93, 84, 65, 61, 102, 82, 83, 103, 81, 84, 86, 64, 67, 100, 81, 83, 108, 92, 92, 95, 83, 83, 112, 102, 103, 141, 131, 139, 143, 134, 139, 159, 152, 146, 181, 175, 163, 193, 187, 173, 193, 186, 176, 198, 189, 190, 205, 198, 205, 196, 188, 199, 198, 191, 198, 200, 197, 192, 202, 200, 188, 199, 197, 184, 193, 191, 178, 186, 183, 176, 181, 178, 173, 179, 174, 170, 184, 179, 175, 183, 178, 174, 183, 178, 174, 187, 182, 178, 184, 179, 175, 179, 174, 170, 182, 177, 173, 152, 147, 143, 145, 140, 136, 146, 141, 137, 155, 150, 146, 156, 151, 147, 144, 139, 135, 134, 129, 125, 132, 127, 123, 143, 139, 136, 141, 140, 136, 130, 129, 125, 108, 107, 103, 99, 96, 91, 112, 109, 104, 141, 136, 132, 163, 158, 154, 103, 95, 92, 103, 95, 92, 108, 101, 95, 113, 106, 100, 108, 99, 94, 101, 92, 87, 107, 98, 93, 120, 111, 106, 123, 116, 110, 146, 139, 133, 158, 151, 145, 153, 146, 140, 150, 143, 137, 150, 143, 137, 156, 149, 143, 168, 161, 155, 161, 154, 148, 155, 148, 142, 159, 152, 146, 163, 156, 150, 160, 153, 147, 161, 154, 148, 161, 154, 148, 152, 145, 139, 165, 158, 152, 166, 159, 153, 165, 158, 152, 160, 153, 147, 155, 148, 142, 154, 147, 141, 158, 151, 145, 162, 155, 149, 172, 165, 159, 164, 157, 151, 153, 146, 140, 147, 140, 134, 146, 139, 133, 149, 142, 136, 151, 144, 138, 153, 146, 140, 152, 147, 143, 152, 147, 143, 151, 146, 142, 153, 148, 144, 161, 156, 152, 168, 163, 159, 166, 158, 155, 158, 150, 147, 155, 147, 144, 158, 150, 147, 162, 154, 151, 165, 157, 154, 166, 156, 154, 163, 153, 151, 159, 149, 147, 156, 146, 144, 156, 148, 145, 158, 150, 147, 161, 153, 150, 165, 157, 154, 169, 161, 158, 173, 165, 162, 176, 168, 165, 178, 170, 167, 177, 169, 166, 173, 165, 162, 169, 161, 158, 166, 158, 155, 167, 159, 156, 168, 160, 157, 167, 159, 156, 166, 158, 155, 169, 164, 161, 169, 164, 161, 170, 162, 159, 167, 159, 156, 165, 157, 154, 167, 159, 156, 171, 163, 160, 175, 167, 164, 176, 171, 168, 181, 176, 173, 187, 183, 182, 193, 192, 190, 201, 199, 202, 209, 209, 211, 217, 218, 222, 223, 224, 228, 222, 225, 230, 224, 227, 232, 226, 229, 234, 227, 230, 235, 228, 231, 236, 232, 235, 240, 239, 242, 247, 243, 246, 251, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 231, 234, 239, 232, 235, 240, 233, 236, 241, 234, 237, 242, 236, 239, 244, 238, 241, 246, 239, 242, 247, 239, 242, 247, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 239, 242, 247, 237, 240, 245, 235, 238, 243, 232, 235, 240, 231, 235, 238, 228, 229, 233, 225, 226, 228, 221, 222, 224, 218, 219, 221, 219, 219, 219, 218, 218, 218, 216, 215, 213, 214, 213, 211, 214, 210, 207, 213, 209, 206, 212, 208, 205, 210, 206, 203, 208, 203, 199, 205, 200, 196, 202, 197, 193, 200, 195, 191, 199, 194, 188, 198, 193, 187, 196, 191, 185, 194, 189, 183, 193, 186, 180, 191, 184, 178, 189, 182, 176, 188, 181, 175, 191, 182, 177, 191, 182, 177, 187, 178, 173, 182, 173, 168, 181, 172, 167, 182, 173, 168, 180, 171, 166, 174, 165, 160, 164, 157, 151, 161, 154, 148, 162, 155, 149, 164, 157, 151, 163, 158, 154, 163, 158, 154, 168, 163, 159, 176, 171, 167, 167, 162, 159, 167, 163, 160, 168, 164, 161, 169, 165, 162, 170, 166, 163, 171, 167, 164, 172, 168, 165, 172, 168, 165, 164, 159, 156, 160, 155, 152, 156, 151, 148, 157, 152, 149, 159, 154, 150, 155, 150, 146, 144, 139, 135, 134, 129, 125, 130, 122, 119, 124, 116, 113, 115, 108, 102, 110, 103, 97, 113, 106, 100, 118, 111, 105, 120, 111, 106, 115, 108, 102, 138, 130, 127, 150, 142, 139, 158, 148, 146, 142, 132, 130, 111, 101, 99, 88, 78, 76, 87, 77, 75, 96, 86, 84, 111, 100, 98, 128, 117, 115, 134, 123, 121, 129, 118, 116, 123, 112, 110, 111, 100, 98, 108, 94, 93, 113, 102, 98, 117, 107, 97, 133, 124, 115, 137, 128, 123, 125, 115, 116, 122, 111, 117, 125, 114, 122, 112, 99, 108, 91, 74, 80, 97, 77, 79, 88, 67, 64, 84, 61, 55, 77, 52, 45, 60, 35, 28, 47, 22, 17, 51, 27, 23, 60, 39, 34, 31, 16, 9, 20, 6, 0, 34, 10, 0, 66, 37, 21, 94, 58, 36, 103, 61, 36, 110, 66, 37, 119, 74, 41, 111, 67, 32, 121, 77, 42, 126, 82, 47, 120, 80, 44, 117, 82, 42, 116, 87, 43, 105, 84, 37, 88, 77, 31, 82, 85, 42, 65, 77, 39, 45, 66, 33, 32, 55, 29, 24, 38, 25, 12, 21, 16, 9, 8, 13, 8, 7, 15, 5, 8, 17, 2, 9, 17, 0, 9, 16, 0, 9, 16, 0, 10, 19, 0, 12, 20, 0, 16, 23, 0, 18, 26, 0, 22, 34, 0, 20, 34, 3, 24, 41, 4, 23, 40, 0, 15, 36, 5, 18, 37, 8, 19, 37, 1, 10, 25, 3, 11, 22, 2, 11, 18, 1, 10, 15, 0, 10, 12, 1, 11, 13, 1, 11, 13, 2, 12, 14, 0, 13, 24, 25, 49, 73, 17, 55, 74, 10, 70, 68, 42, 118, 92, 66, 149, 97, 79, 154, 85, 115, 172, 91, 136, 172, 84, 161, 175, 87, 168, 166, 79, 179, 167, 83, 189, 164, 82, 189, 154, 73, 196, 149, 69, 206, 148, 66, 203, 140, 61, 194, 131, 60, 172, 113, 47, 144, 89, 24, 111, 62, 3, 84, 43, 0, 59, 24, 0, 35, 5, 0, 25, 1, 0, 73, 54, 50, 143, 127, 128, 167, 155, 155, 167, 157, 156, 184, 174, 172, 177, 169, 166, 171, 163, 161, 192, 184, 182, 183, 178, 175, 194, 189, 186, 193, 188, 185, 188, 183, 180, 190, 185, 182, 188, 183, 180, 187, 182, 179, 195, 190, 187, 164, 159, 156, 183, 178, 175, 189, 184, 181, 190, 185, 182, 203, 198, 195, 211, 206, 203, 208, 203, 200, 206, 201, 198, 198, 194, 191, 204, 200, 197, 211, 207, 204, 212, 208, 205, 209, 208, 206, 211, 210, 208, 220, 219, 217, 227, 226, 224, 231, 231, 231, 234, 234, 234, 239, 239, 239, 242, 242, 242, 242, 242, 242, 242, 242, 242, 243, 243, 243, 244, 244, 244, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 246, 246, 244, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 249, 249, 247, 249, 249, 247, 249, 249, 247, 248, 248, 246, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 244, 244, 242, 244, 244, 242, 245, 245, 243, 244, 244, 242, 244, 244, 242, 242, 242, 240, 241, 241, 239, 240, 240, 238, 244, 243, 241, 241, 240, 238, 238, 237, 235, 236, 235, 233, 235, 231, 230, 231, 227, 226, 225, 221, 220, 220, 216, 215, 214, 213, 211, 218, 217, 215, 220, 219, 217, 217, 216, 214, 215, 214, 212, 214, 213, 211, 213, 212, 210, 210, 209, 207, 213, 212, 210, 211, 210, 208, 215, 214, 212, 209, 208, 206, 195, 194, 192, 194, 193, 191, 200, 199, 197, 198, 197, 195, 198, 197, 193, 211, 207, 204, 179, 176, 171, 178, 173, 167, 165, 158, 150, 156, 149, 141, 189, 181, 178, 164, 158, 158, 143, 137, 141, 131, 119, 123, 128, 100, 97, 129, 92, 83, 132, 88, 75, 127, 85, 71, 118, 83, 77, 120, 83, 74, 120, 72, 50, 121, 70, 49, 115, 72, 63, 111, 77, 78, 105, 77, 89, 97, 79, 91, 98, 88, 97, 100, 99, 107, 109, 116, 124, 103, 116, 125, 109, 125, 141, 131, 146, 167, 147, 158, 180, 138, 143, 163, 112, 111, 127, 92, 86, 96, 78, 67, 71, 66, 51, 48, 53, 33, 24, 48, 22, 5, 49, 17, 0, 57, 20, 0, 75, 35, 0, 92, 53, 14, 114, 75, 36, 104, 66, 27, 100, 66, 28, 100, 71, 31, 90, 65, 25, 80, 57, 16, 92, 70, 29, 118, 93, 53, 113, 79, 44, 133, 96, 67, 104, 74, 50, 71, 45, 28, 91, 74, 66, 111, 100, 96, 98, 90, 88, 96, 90, 90, 97, 91, 91, 100, 92, 90, 99, 89, 87, 95, 84, 80, 99, 85, 82, 105, 91, 90, 122, 106, 107, 149, 135, 135, 166, 156, 155, 171, 163, 160, 185, 178, 168, 199, 192, 182, 202, 195, 187, 198, 190, 188, 200, 190, 199, 206, 195, 209, 195, 187, 200, 195, 188, 195, 194, 189, 185, 192, 190, 178, 191, 189, 176, 192, 190, 178, 193, 192, 187, 195, 194, 190, 209, 204, 200, 203, 198, 194, 187, 182, 178, 170, 165, 161, 163, 158, 154, 163, 158, 154, 164, 159, 155, 166, 161, 157, 153, 148, 144, 154, 149, 145, 163, 158, 154, 173, 168, 164, 168, 163, 159, 152, 147, 143, 140, 135, 131, 139, 136, 131, 160, 159, 155, 157, 156, 152, 145, 144, 140, 134, 133, 129, 139, 136, 131, 148, 145, 140, 145, 140, 136, 133, 128, 124, 126, 118, 115, 113, 105, 102, 105, 98, 92, 106, 99, 93, 103, 94, 89, 100, 91, 86, 117, 108, 103, 142, 133, 128, 162, 155, 149, 186, 179, 173, 186, 179, 173, 158, 151, 145, 148, 141, 135, 162, 155, 149, 172, 165, 159, 168, 161, 155, 156, 149, 143, 157, 150, 144, 164, 157, 151, 165, 158, 152, 161, 154, 148, 167, 160, 154, 170, 163, 157, 160, 153, 147, 168, 161, 155, 167, 160, 154, 165, 158, 152, 162, 155, 149, 160, 153, 147, 161, 154, 148, 164, 157, 151, 166, 159, 153, 151, 144, 138, 139, 132, 126, 127, 120, 114, 126, 119, 113, 136, 129, 123, 147, 140, 134, 152, 145, 139, 151, 144, 138, 156, 151, 147, 161, 156, 152, 164, 159, 155, 167, 162, 158, 171, 166, 162, 171, 166, 162, 165, 157, 154, 155, 147, 144, 160, 152, 149, 162, 154, 151, 164, 156, 153, 165, 157, 154, 165, 155, 153, 163, 153, 151, 160, 150, 148, 157, 147, 145, 166, 158, 155, 165, 157, 154, 165, 157, 154, 165, 157, 154, 164, 156, 153, 164, 156, 153, 163, 155, 152, 163, 155, 152, 171, 163, 160, 168, 160, 157, 165, 157, 154, 163, 155, 152, 164, 156, 153, 165, 157, 154, 164, 156, 153, 163, 155, 152, 168, 163, 160, 168, 163, 160, 168, 160, 157, 165, 157, 154, 164, 156, 153, 166, 158, 155, 171, 163, 160, 176, 168, 165, 178, 173, 170, 182, 177, 174, 188, 184, 183, 192, 191, 189, 199, 197, 200, 206, 206, 208, 213, 214, 218, 219, 220, 224, 216, 219, 224, 219, 222, 227, 223, 226, 231, 226, 229, 234, 229, 232, 237, 233, 236, 241, 238, 241, 246, 242, 245, 250, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 232, 235, 240, 233, 236, 241, 234, 237, 242, 235, 238, 243, 237, 240, 245, 238, 241, 246, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 239, 242, 247, 237, 240, 245, 234, 237, 242, 232, 235, 240, 230, 234, 237, 227, 228, 232, 224, 225, 227, 220, 221, 223, 218, 219, 221, 218, 218, 218, 218, 218, 218, 217, 216, 214, 215, 214, 212, 213, 209, 206, 213, 209, 206, 212, 208, 205, 210, 206, 203, 208, 203, 199, 205, 200, 196, 202, 197, 193, 200, 195, 191, 200, 195, 189, 200, 195, 189, 198, 193, 187, 196, 191, 185, 195, 188, 182, 193, 186, 180, 192, 185, 179, 191, 184, 178, 186, 177, 172, 186, 177, 172, 181, 172, 167, 174, 165, 160, 173, 164, 159, 175, 166, 161, 173, 164, 159, 167, 158, 153, 173, 164, 157, 171, 162, 155, 170, 163, 157, 173, 166, 160, 172, 165, 159, 170, 163, 157, 174, 167, 161, 179, 174, 168, 188, 183, 179, 185, 180, 176, 180, 175, 171, 176, 171, 167, 173, 168, 164, 173, 168, 164, 174, 169, 165, 175, 170, 166, 176, 172, 169, 171, 167, 164, 166, 162, 159, 165, 161, 158, 164, 161, 156, 156, 153, 148, 142, 139, 134, 130, 127, 122, 148, 143, 139, 149, 144, 140, 145, 140, 134, 137, 132, 126, 138, 131, 125, 145, 138, 132, 149, 142, 136, 147, 140, 134, 134, 126, 123, 133, 128, 124, 129, 121, 118, 111, 103, 100, 95, 87, 84, 91, 83, 80, 101, 93, 90, 111, 103, 100, 133, 123, 121, 137, 127, 125, 137, 127, 125, 136, 126, 124, 129, 119, 117, 109, 99, 97, 105, 94, 92, 120, 109, 105, 134, 124, 115, 128, 119, 110, 123, 113, 111, 121, 112, 115, 122, 112, 121, 118, 106, 118, 106, 93, 103, 97, 82, 89, 98, 79, 81, 91, 70, 69, 90, 67, 61, 94, 69, 62, 77, 52, 45, 47, 22, 17, 38, 14, 10, 51, 30, 27, 31, 14, 7, 23, 6, 0, 38, 12, 0, 69, 38, 18, 93, 56, 30, 100, 59, 29, 109, 66, 31, 120, 78, 38, 119, 77, 37, 128, 86, 44, 132, 90, 50, 126, 87, 46, 122, 88, 43, 120, 92, 44, 110, 88, 38, 91, 81, 30, 85, 91, 45, 63, 81, 41, 40, 66, 31, 25, 49, 25, 12, 28, 17, 3, 12, 11, 5, 4, 12, 8, 6, 17, 5, 8, 17, 2, 9, 17, 0, 9, 14, 0, 10, 14, 0, 11, 17, 0, 12, 21, 0, 15, 25, 0, 15, 28, 7, 16, 33, 4, 11, 30, 9, 14, 34, 7, 9, 30, 0, 0, 23, 7, 8, 29, 17, 16, 34, 3, 5, 20, 3, 7, 18, 0, 7, 15, 0, 7, 13, 0, 9, 11, 0, 10, 12, 0, 11, 15, 1, 12, 18, 0, 13, 26, 24, 49, 71, 14, 52, 71, 0, 60, 61, 31, 106, 86, 61, 144, 100, 78, 154, 89, 114, 171, 90, 137, 176, 85, 158, 175, 83, 165, 168, 79, 177, 169, 86, 186, 165, 86, 184, 151, 74, 195, 149, 71, 213, 152, 69, 216, 150, 64, 216, 149, 70, 202, 139, 60, 176, 117, 37, 144, 92, 16, 108, 63, 0, 75, 35, 0, 50, 17, 0, 27, 0, 0, 41, 17, 13, 90, 71, 73, 144, 130, 130, 165, 153, 153, 173, 162, 160, 181, 172, 167, 182, 172, 170, 185, 175, 173, 187, 179, 177, 193, 188, 185, 192, 187, 184, 190, 185, 182, 192, 187, 184, 187, 182, 179, 186, 181, 178, 196, 191, 188, 173, 168, 165, 190, 185, 182, 194, 189, 186, 192, 187, 184, 203, 198, 195, 211, 206, 203, 207, 202, 199, 204, 199, 196, 194, 190, 187, 203, 199, 196, 213, 209, 206, 217, 213, 210, 214, 213, 211, 214, 213, 211, 219, 218, 216, 224, 223, 221, 230, 230, 230, 234, 234, 234, 239, 239, 239, 241, 241, 241, 241, 241, 241, 241, 241, 241, 242, 242, 242, 243, 243, 243, 243, 243, 241, 244, 244, 242, 244, 244, 242, 245, 245, 243, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 249, 249, 247, 249, 249, 247, 248, 248, 246, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 244, 244, 242, 243, 243, 241, 241, 241, 239, 240, 240, 238, 243, 242, 240, 242, 241, 239, 240, 239, 237, 239, 238, 236, 239, 235, 234, 234, 230, 229, 228, 224, 223, 223, 219, 218, 218, 217, 215, 206, 205, 203, 205, 204, 202, 218, 217, 215, 225, 224, 222, 220, 219, 217, 217, 216, 214, 220, 219, 217, 211, 210, 208, 209, 208, 206, 214, 213, 211, 211, 210, 208, 194, 193, 191, 189, 188, 186, 196, 195, 193, 197, 196, 194, 190, 189, 187, 184, 183, 179, 185, 184, 179, 171, 168, 161, 162, 155, 145, 174, 167, 157, 178, 170, 167, 173, 167, 167, 145, 140, 146, 133, 120, 127, 127, 103, 103, 132, 97, 91, 139, 99, 89, 140, 102, 91, 134, 103, 100, 135, 104, 101, 129, 89, 79, 116, 73, 64, 101, 66, 64, 107, 78, 80, 120, 95, 101, 119, 100, 106, 106, 90, 93, 94, 79, 82, 88, 78, 77, 76, 68, 66, 69, 63, 63, 78, 72, 72, 91, 81, 82, 92, 78, 78, 85, 65, 66, 76, 57, 53, 95, 78, 70, 92, 75, 65, 88, 69, 55, 82, 59, 43, 78, 51, 34, 81, 52, 34, 95, 67, 46, 111, 83, 62, 175, 149, 132, 153, 130, 114, 133, 114, 100, 124, 108, 95, 112, 99, 90, 100, 90, 81, 104, 93, 89, 123, 104, 97, 105, 73, 58, 131, 95, 79, 112, 79, 72, 90, 64, 63, 94, 75, 79, 83, 70, 77, 80, 74, 76, 100, 99, 95, 88, 90, 79, 75, 77, 63, 105, 108, 89, 141, 144, 127, 130, 130, 120, 129, 125, 124, 162, 155, 162, 178, 172, 176, 153, 148, 142, 164, 160, 149, 183, 179, 168, 200, 195, 189, 207, 201, 201, 201, 195, 199, 194, 184, 195, 189, 179, 190, 195, 185, 194, 195, 189, 193, 195, 190, 186, 193, 189, 180, 190, 187, 178, 191, 188, 181, 194, 193, 189, 199, 198, 194, 187, 182, 178, 189, 184, 180, 188, 183, 179, 181, 176, 172, 177, 172, 168, 181, 176, 172, 181, 176, 172, 175, 170, 166, 167, 162, 158, 168, 163, 159, 169, 164, 160, 158, 153, 149, 136, 131, 127, 124, 119, 115, 142, 137, 133, 168, 165, 160, 176, 175, 171, 166, 167, 162, 152, 151, 147, 147, 146, 142, 159, 156, 151, 168, 165, 160, 153, 148, 144, 129, 124, 120, 142, 134, 131, 117, 109, 106, 104, 95, 90, 117, 108, 103, 136, 125, 121, 146, 135, 131, 156, 145, 141, 168, 159, 154, 154, 147, 141, 146, 139, 133, 138, 131, 125, 138, 131, 125, 153, 146, 140, 171, 164, 158, 169, 162, 156, 153, 146, 140, 143, 136, 130, 142, 135, 129, 147, 140, 134, 147, 140, 134, 144, 137, 131, 154, 147, 141, 161, 154, 148, 155, 148, 142, 169, 162, 156, 165, 158, 152, 164, 157, 151, 167, 160, 154, 172, 165, 159, 171, 164, 158, 164, 157, 151, 157, 150, 144, 132, 125, 119, 141, 134, 128, 146, 139, 133, 141, 134, 128, 132, 125, 119, 134, 127, 121, 149, 142, 136, 164, 157, 151, 152, 147, 143, 158, 153, 149, 160, 155, 151, 154, 149, 145, 149, 144, 140, 149, 144, 140, 151, 143, 140, 149, 141, 138, 143, 135, 132, 145, 137, 134, 148, 140, 137, 152, 144, 141, 159, 149, 147, 165, 155, 153, 169, 159, 157, 172, 162, 160, 172, 164, 161, 171, 163, 160, 169, 161, 158, 167, 159, 156, 164, 156, 153, 161, 153, 150, 160, 152, 149, 159, 151, 148, 167, 159, 156, 165, 157, 154, 162, 154, 151, 163, 155, 152, 164, 156, 153, 165, 157, 154, 164, 156, 153, 163, 155, 152, 162, 157, 154, 163, 158, 155, 164, 156, 153, 163, 155, 152, 163, 155, 152, 165, 157, 154, 171, 163, 160, 175, 167, 164, 180, 175, 172, 184, 179, 176, 188, 184, 183, 190, 189, 187, 195, 193, 196, 199, 199, 201, 205, 206, 210, 210, 211, 215, 210, 213, 218, 216, 219, 224, 223, 226, 231, 229, 232, 237, 232, 235, 240, 234, 237, 242, 236, 239, 244, 238, 241, 246, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 233, 236, 241, 233, 236, 241, 234, 237, 242, 236, 239, 244, 238, 241, 246, 239, 242, 247, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 238, 241, 246, 236, 239, 244, 234, 237, 242, 231, 234, 239, 230, 234, 237, 226, 227, 231, 223, 224, 226, 219, 220, 222, 217, 218, 220, 218, 218, 218, 218, 218, 218, 217, 216, 214, 215, 214, 212, 214, 210, 207, 213, 209, 206, 212, 208, 205, 210, 206, 203, 208, 203, 199, 205, 200, 196, 202, 197, 193, 200, 195, 191, 197, 192, 186, 196, 191, 185, 195, 190, 184, 193, 188, 182, 193, 186, 180, 191, 184, 178, 190, 183, 177, 189, 182, 176, 189, 180, 175, 188, 179, 174, 183, 174, 169, 176, 167, 162, 175, 166, 161, 178, 169, 164, 176, 167, 162, 172, 163, 158, 187, 178, 171, 185, 176, 169, 185, 178, 172, 187, 180, 174, 184, 177, 171, 179, 172, 166, 180, 173, 167, 184, 177, 171, 186, 181, 177, 183, 178, 174, 179, 174, 170, 176, 171, 167, 174, 169, 165, 174, 169, 165, 176, 171, 167, 178, 173, 169, 178, 174, 171, 171, 167, 164, 161, 157, 154, 155, 151, 148, 151, 148, 143, 147, 144, 139, 141, 138, 133, 136, 133, 128, 136, 131, 127, 146, 141, 137, 148, 143, 137, 138, 133, 127, 133, 126, 120, 134, 127, 121, 134, 127, 121, 128, 121, 115, 125, 120, 116, 114, 109, 105, 102, 94, 91, 95, 87, 84, 104, 96, 93, 119, 111, 108, 125, 117, 114, 122, 114, 111, 146, 136, 134, 136, 126, 124, 121, 111, 109, 114, 104, 102, 107, 97, 95, 92, 82, 80, 94, 83, 81, 112, 103, 98, 133, 124, 115, 113, 106, 98, 104, 96, 94, 112, 103, 108, 117, 107, 118, 108, 97, 111, 103, 91, 103, 109, 93, 103, 108, 89, 93, 100, 79, 78, 89, 66, 60, 84, 59, 52, 70, 45, 38, 41, 18, 12, 30, 6, 2, 43, 22, 19, 27, 10, 3, 28, 10, 0, 46, 20, 7, 74, 42, 21, 97, 58, 29, 105, 65, 29, 114, 72, 30, 123, 82, 36, 126, 85, 39, 135, 94, 48, 137, 96, 52, 129, 91, 44, 124, 90, 42, 124, 94, 42, 114, 91, 37, 95, 86, 31, 84, 94, 44, 61, 84, 40, 36, 66, 32, 18, 46, 23, 6, 23, 15, 0, 7, 9, 2, 2, 14, 7, 6, 20, 4, 8, 19, 1, 10, 17, 0, 11, 15, 0, 11, 15, 2, 13, 19, 1, 14, 23, 0, 16, 29, 1, 17, 32, 0, 9, 24, 3, 9, 25, 13, 16, 35, 18, 19, 39, 18, 16, 37, 19, 18, 36, 14, 13, 29, 0, 0, 13, 1, 4, 13, 0, 5, 11, 0, 6, 9, 0, 7, 9, 0, 8, 13, 1, 10, 17, 3, 12, 21, 0, 14, 27, 13, 34, 53, 5, 41, 57, 0, 45, 49, 15, 91, 78, 49, 135, 98, 67, 148, 89, 105, 166, 86, 134, 175, 83, 153, 173, 78, 164, 168, 74, 181, 171, 86, 192, 171, 92, 192, 160, 83, 205, 162, 83, 226, 168, 84, 232, 166, 79, 221, 154, 67, 217, 150, 61, 195, 134, 43, 172, 117, 27, 132, 85, 5, 97, 56, 0, 75, 40, 0, 42, 11, 0, 18, 0, 0, 42, 22, 23, 122, 103, 105, 167, 153, 153, 174, 160, 159, 191, 180, 176, 197, 183, 180, 183, 172, 168, 188, 180, 177, 189, 184, 181, 187, 182, 179, 189, 184, 181, 193, 188, 185, 188, 183, 180, 186, 181, 178, 196, 191, 188, 194, 189, 186, 203, 198, 195, 202, 197, 194, 199, 194, 191, 206, 201, 198, 206, 201, 198, 201, 196, 193, 203, 198, 195, 194, 190, 187, 204, 200, 197, 216, 212, 209, 220, 216, 213, 217, 216, 214, 216, 215, 213, 220, 219, 217, 224, 223, 221, 230, 230, 230, 234, 234, 234, 238, 238, 238, 241, 241, 241, 241, 241, 241, 241, 241, 241, 242, 242, 242, 243, 243, 243, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 245, 245, 243, 246, 246, 244, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 246, 244, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 245, 245, 243, 244, 244, 242, 242, 242, 240, 241, 241, 239, 242, 241, 239, 241, 240, 238, 240, 239, 237, 240, 239, 237, 241, 237, 236, 237, 233, 232, 230, 226, 225, 225, 221, 220, 220, 219, 217, 200, 199, 197, 196, 195, 193, 214, 213, 211, 224, 223, 221, 218, 217, 215, 216, 215, 213, 224, 223, 221, 212, 211, 209, 207, 206, 204, 213, 212, 210, 213, 212, 210, 197, 196, 194, 190, 189, 187, 195, 194, 192, 197, 196, 194, 184, 184, 182, 175, 175, 173, 194, 193, 189, 179, 176, 169, 172, 165, 155, 186, 177, 168, 167, 159, 156, 160, 154, 156, 137, 132, 139, 126, 115, 123, 120, 98, 100, 127, 96, 93, 141, 102, 95, 149, 112, 104, 150, 122, 121, 155, 129, 130, 137, 101, 101, 128, 90, 89, 116, 85, 82, 117, 89, 85, 119, 95, 93, 119, 98, 97, 118, 96, 98, 118, 98, 100, 142, 123, 127, 121, 107, 107, 99, 87, 87, 89, 79, 77, 90, 79, 75, 98, 83, 80, 111, 90, 87, 120, 99, 94, 98, 80, 70, 102, 84, 72, 105, 87, 75, 104, 84, 73, 101, 78, 70, 102, 79, 71, 108, 85, 77, 112, 92, 85, 110, 93, 86, 99, 86, 80, 91, 80, 78, 91, 83, 81, 94, 85, 88, 91, 85, 89, 91, 81, 89, 95, 80, 85, 99, 76, 70, 104, 77, 70, 82, 58, 56, 86, 64, 66, 91, 75, 78, 73, 61, 65, 79, 70, 71, 98, 95, 90, 106, 106, 96, 91, 93, 80, 132, 136, 121, 185, 189, 175, 163, 166, 157, 153, 153, 151, 189, 187, 192, 190, 188, 189, 177, 177, 167, 180, 181, 167, 187, 184, 175, 193, 190, 185, 199, 193, 195, 199, 193, 197, 198, 189, 194, 195, 186, 191, 197, 188, 189, 202, 194, 192, 203, 198, 195, 201, 196, 192, 193, 189, 186, 186, 182, 179, 184, 180, 177, 185, 181, 178, 206, 201, 197, 202, 197, 193, 193, 188, 184, 175, 170, 166, 158, 153, 149, 157, 152, 148, 154, 149, 145, 140, 135, 131, 179, 174, 170, 160, 155, 151, 145, 140, 136, 145, 140, 136, 150, 145, 141, 155, 150, 146, 167, 162, 158, 179, 176, 171, 164, 163, 159, 160, 161, 156, 157, 156, 152, 157, 156, 152, 163, 160, 155, 163, 160, 155, 152, 147, 143, 136, 131, 127, 111, 103, 100, 116, 108, 105, 132, 123, 118, 146, 137, 132, 150, 139, 135, 148, 137, 133, 157, 146, 142, 170, 161, 156, 138, 129, 124, 125, 118, 112, 138, 131, 125, 162, 155, 149, 158, 151, 145, 141, 134, 128, 139, 132, 126, 146, 139, 133, 151, 144, 138, 142, 135, 129, 143, 136, 130, 147, 140, 134, 147, 140, 134, 156, 149, 143, 165, 158, 152, 162, 155, 149, 163, 156, 150, 163, 156, 150, 168, 161, 155, 181, 174, 168, 192, 185, 179, 193, 186, 180, 183, 176, 170, 171, 164, 158, 152, 145, 139, 156, 149, 143, 157, 150, 144, 151, 144, 138, 142, 135, 129, 137, 130, 124, 140, 133, 127, 145, 138, 132, 140, 135, 131, 142, 137, 133, 136, 131, 127, 123, 118, 114, 116, 111, 107, 123, 118, 114, 138, 130, 127, 146, 138, 135, 135, 127, 124, 136, 128, 125, 139, 131, 128, 145, 137, 134, 153, 143, 141, 161, 151, 149, 169, 159, 157, 173, 163, 161, 170, 162, 159, 170, 162, 159, 170, 162, 159, 169, 161, 158, 169, 161, 158, 169, 161, 158, 169, 161, 158, 169, 161, 158, 169, 161, 158, 167, 159, 156, 165, 157, 154, 165, 157, 154, 166, 158, 155, 166, 158, 155, 164, 156, 153, 162, 154, 151, 152, 147, 144, 155, 150, 147, 160, 152, 149, 161, 153, 150, 162, 154, 151, 165, 157, 154, 169, 161, 158, 173, 165, 162, 181, 176, 173, 184, 179, 176, 187, 183, 182, 188, 187, 185, 191, 189, 192, 195, 195, 197, 200, 201, 205, 204, 205, 209, 209, 212, 217, 215, 218, 223, 224, 227, 232, 230, 233, 238, 233, 236, 241, 233, 236, 241, 234, 237, 242, 235, 238, 243, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 233, 236, 241, 234, 237, 242, 235, 238, 243, 237, 240, 245, 238, 241, 246, 240, 243, 248, 241, 244, 249, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 239, 242, 247, 238, 241, 246, 236, 239, 244, 234, 237, 242, 231, 234, 239, 230, 234, 237, 225, 226, 230, 222, 223, 225, 218, 219, 221, 217, 218, 220, 218, 218, 218, 218, 218, 218, 217, 216, 214, 215, 214, 212, 214, 210, 207, 214, 210, 207, 213, 209, 206, 211, 207, 204, 209, 204, 200, 205, 200, 196, 202, 197, 193, 201, 196, 192, 195, 190, 184, 194, 189, 183, 193, 188, 182, 192, 187, 181, 192, 185, 179, 190, 183, 177, 189, 182, 176, 188, 181, 175, 196, 187, 182, 194, 185, 180, 188, 179, 174, 182, 173, 168, 181, 172, 167, 185, 176, 171, 185, 176, 171, 181, 172, 167, 186, 177, 170, 186, 177, 170, 188, 179, 172, 191, 182, 175, 187, 178, 171, 179, 170, 163, 175, 168, 162, 178, 171, 165, 184, 177, 171, 185, 178, 172, 187, 180, 174, 188, 181, 175, 187, 182, 178, 186, 181, 177, 185, 180, 176, 184, 179, 175, 161, 157, 154, 155, 154, 150, 150, 149, 145, 144, 143, 139, 141, 140, 135, 140, 139, 134, 143, 140, 135, 143, 140, 135, 146, 143, 138, 156, 153, 148, 160, 155, 149, 154, 149, 143, 155, 150, 144, 165, 160, 154, 168, 163, 157, 162, 157, 151, 156, 151, 147, 151, 146, 142, 141, 136, 132, 133, 128, 124, 136, 131, 127, 143, 138, 134, 139, 131, 128, 127, 119, 116, 146, 138, 135, 140, 132, 129, 120, 112, 109, 105, 97, 94, 107, 97, 95, 109, 99, 97, 113, 103, 101, 123, 114, 109, 116, 107, 98, 101, 94, 86, 97, 89, 87, 105, 99, 103, 109, 101, 112, 106, 95, 109, 111, 99, 113, 126, 110, 121, 121, 102, 106, 121, 100, 99, 98, 75, 69, 70, 47, 39, 59, 36, 30, 48, 25, 19, 38, 14, 10, 38, 17, 14, 18, 0, 0, 33, 13, 6, 59, 31, 17, 86, 51, 29, 107, 68, 37, 121, 79, 39, 126, 85, 39, 129, 89, 38, 133, 96, 44, 140, 103, 50, 141, 104, 52, 133, 97, 45, 130, 97, 44, 132, 103, 47, 126, 101, 44, 106, 97, 40, 83, 97, 44, 59, 86, 41, 34, 68, 33, 17, 46, 26, 2, 21, 17, 0, 6, 12, 0, 2, 17, 9, 8, 24, 4, 8, 20, 1, 10, 17, 0, 13, 16, 0, 14, 17, 2, 15, 23, 4, 18, 29, 3, 21, 35, 3, 22, 36, 16, 39, 47, 7, 27, 34, 0, 9, 19, 0, 3, 14, 0, 6, 18, 1, 9, 22, 3, 11, 22, 8, 15, 25, 0, 3, 9, 0, 4, 7, 0, 5, 7, 0, 5, 10, 0, 6, 14, 4, 8, 19, 6, 9, 24, 5, 11, 25, 6, 20, 31, 0, 31, 38, 0, 37, 38, 3, 83, 72, 39, 132, 101, 57, 146, 92, 98, 167, 87, 133, 178, 85, 152, 173, 72, 167, 167, 67, 187, 173, 84, 200, 175, 93, 202, 169, 92, 213, 172, 93, 229, 177, 94, 233, 173, 85, 224, 155, 62, 225, 155, 59, 205, 142, 39, 193, 135, 36, 161, 111, 22, 130, 86, 13, 109, 71, 22, 63, 32, 4, 25, 0, 0, 27, 5, 7, 99, 79, 81, 150, 134, 135, 168, 153, 150, 189, 176, 170, 191, 176, 171, 183, 172, 166, 187, 179, 176, 184, 179, 176, 180, 175, 172, 186, 181, 178, 195, 190, 187, 189, 184, 181, 185, 180, 177, 195, 190, 187, 202, 197, 194, 203, 198, 195, 199, 194, 191, 199, 194, 191, 205, 200, 197, 201, 196, 193, 198, 193, 190, 207, 202, 199, 199, 195, 192, 207, 203, 200, 216, 212, 209, 219, 215, 212, 216, 215, 213, 216, 215, 213, 222, 221, 219, 228, 227, 225, 229, 229, 229, 233, 233, 233, 238, 238, 238, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 243, 243, 243, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 245, 245, 243, 246, 246, 244, 246, 246, 244, 247, 247, 245, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 248, 248, 246, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 246, 244, 245, 245, 243, 243, 243, 241, 242, 242, 240, 240, 239, 237, 240, 239, 237, 241, 240, 238, 241, 240, 238, 243, 239, 238, 238, 234, 233, 232, 228, 227, 226, 222, 221, 222, 221, 219, 212, 211, 209, 207, 206, 204, 211, 210, 208, 215, 214, 212, 215, 214, 212, 217, 216, 214, 222, 221, 219, 215, 214, 212, 207, 206, 204, 212, 211, 209, 215, 214, 212, 203, 202, 200, 195, 194, 192, 198, 197, 195, 200, 199, 197, 208, 208, 208, 206, 206, 204, 196, 195, 191, 186, 183, 176, 172, 163, 154, 162, 153, 144, 151, 143, 140, 122, 116, 118, 139, 134, 141, 127, 117, 126, 121, 101, 103, 126, 98, 95, 138, 103, 97, 148, 115, 110, 155, 130, 133, 167, 142, 146, 146, 111, 117, 146, 110, 110, 140, 110, 99, 130, 103, 86, 117, 91, 74, 113, 89, 77, 126, 102, 102, 140, 120, 129, 138, 124, 141, 133, 126, 144, 133, 132, 148, 135, 139, 150, 134, 137, 146, 127, 126, 134, 122, 114, 125, 123, 112, 118, 123, 108, 105, 122, 103, 97, 116, 97, 93, 112, 92, 91, 116, 96, 97, 121, 101, 103, 120, 101, 103, 115, 99, 99, 108, 97, 95, 115, 106, 101, 119, 110, 105, 117, 108, 103, 115, 106, 101, 114, 103, 99, 108, 94, 93, 97, 83, 82, 108, 98, 96, 95, 88, 82, 80, 71, 64, 106, 96, 87, 122, 109, 101, 113, 100, 92, 124, 111, 105, 125, 114, 112, 148, 138, 139, 149, 140, 143, 167, 162, 166, 195, 193, 194, 178, 177, 175, 169, 168, 164, 201, 198, 191, 194, 194, 184, 199, 201, 188, 198, 200, 189, 194, 193, 188, 187, 186, 184, 190, 186, 185, 198, 194, 191, 209, 205, 196, 215, 211, 200, 187, 180, 170, 193, 186, 178, 197, 192, 189, 196, 190, 192, 191, 185, 189, 187, 183, 184, 189, 185, 182, 192, 189, 184, 190, 185, 181, 169, 164, 160, 142, 137, 133, 112, 107, 103, 101, 96, 92, 130, 125, 121, 162, 157, 153, 166, 161, 157, 182, 177, 173, 159, 154, 150, 147, 142, 138, 166, 161, 157, 193, 188, 184, 200, 195, 191, 190, 185, 181, 179, 176, 171, 171, 170, 166, 162, 163, 158, 156, 157, 152, 152, 153, 148, 145, 144, 139, 132, 131, 126, 122, 119, 114, 118, 113, 109, 126, 118, 115, 127, 119, 116, 136, 127, 122, 150, 141, 136, 164, 153, 149, 164, 153, 149, 152, 141, 137, 140, 131, 126, 165, 156, 151, 166, 159, 153, 183, 176, 170, 185, 178, 172, 157, 150, 144, 137, 130, 124, 145, 138, 132, 155, 148, 142, 161, 154, 148, 144, 137, 131, 143, 136, 130, 154, 147, 141, 158, 151, 145, 162, 155, 149, 168, 161, 155, 168, 161, 155, 146, 139, 133, 153, 146, 140, 164, 157, 151, 176, 169, 163, 183, 176, 170, 180, 173, 167, 169, 162, 156, 160, 153, 147, 154, 147, 141, 149, 142, 136, 146, 139, 133, 148, 141, 135, 153, 146, 140, 154, 147, 141, 150, 143, 137, 145, 138, 132, 149, 144, 140, 145, 140, 136, 134, 129, 125, 121, 116, 112, 118, 113, 109, 126, 121, 117, 137, 129, 126, 141, 133, 130, 147, 139, 136, 148, 140, 137, 151, 143, 140, 154, 146, 143, 158, 148, 146, 161, 151, 149, 163, 153, 151, 164, 154, 152, 165, 157, 154, 166, 158, 155, 167, 159, 156, 169, 161, 158, 171, 163, 160, 173, 165, 162, 174, 166, 163, 175, 167, 164, 172, 164, 161, 170, 162, 159, 167, 159, 156, 165, 157, 154, 164, 156, 153, 161, 153, 150, 157, 149, 146, 153, 145, 142, 142, 137, 134, 147, 142, 139, 155, 147, 144, 160, 152, 149, 162, 154, 151, 165, 157, 154, 168, 160, 157, 170, 162, 159, 179, 174, 171, 182, 177, 174, 186, 182, 181, 188, 187, 185, 191, 189, 192, 195, 195, 197, 201, 202, 206, 206, 207, 211, 213, 216, 221, 217, 220, 225, 223, 226, 231, 227, 230, 235, 229, 232, 237, 231, 234, 239, 234, 237, 242, 236, 239, 244, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 234, 237, 242, 234, 237, 242, 235, 238, 243, 237, 240, 245, 239, 242, 247, 240, 243, 248, 241, 244, 249, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 239, 242, 247, 238, 241, 246, 236, 239, 244, 233, 236, 241, 231, 234, 239, 229, 233, 236, 225, 226, 230, 221, 222, 224, 218, 219, 221, 217, 219, 218, 218, 218, 218, 218, 218, 216, 217, 216, 214, 215, 214, 210, 215, 211, 208, 214, 211, 206, 213, 209, 206, 211, 208, 203, 209, 204, 200, 206, 201, 197, 203, 198, 194, 201, 196, 192, 196, 191, 185, 196, 191, 185, 194, 189, 183, 193, 188, 182, 193, 186, 180, 192, 185, 179, 191, 184, 178, 190, 183, 177, 191, 184, 178, 190, 183, 177, 185, 176, 171, 178, 171, 165, 179, 170, 165, 182, 175, 169, 183, 174, 169, 179, 172, 166, 175, 166, 161, 175, 168, 160, 180, 171, 166, 183, 176, 168, 180, 171, 166, 169, 162, 156, 165, 158, 152, 166, 159, 153, 172, 165, 159, 175, 168, 162, 179, 172, 166, 180, 173, 167, 176, 171, 167, 169, 164, 160, 161, 156, 152, 156, 151, 147, 147, 144, 139, 150, 147, 142, 154, 150, 147, 155, 152, 147, 153, 150, 145, 151, 148, 143, 152, 149, 144, 153, 150, 145, 153, 150, 145, 155, 152, 147, 147, 142, 136, 133, 128, 122, 135, 130, 124, 150, 145, 139, 155, 150, 144, 148, 143, 137, 141, 136, 130, 150, 145, 139, 149, 144, 140, 137, 132, 126, 131, 126, 122, 139, 134, 128, 149, 144, 140, 152, 147, 141, 125, 117, 114, 132, 125, 119, 117, 109, 106, 100, 93, 87, 111, 101, 99, 128, 119, 114, 131, 121, 119, 128, 119, 114, 99, 92, 84, 98, 91, 85, 99, 93, 93, 105, 99, 103, 106, 98, 109, 110, 99, 113, 123, 111, 125, 141, 125, 136, 121, 102, 108, 141, 121, 123, 123, 102, 99, 86, 66, 59, 77, 57, 50, 73, 53, 46, 49, 28, 23, 27, 8, 4, 13, 0, 0, 35, 15, 8, 69, 40, 24, 97, 60, 34, 120, 77, 42, 135, 91, 46, 138, 95, 44, 135, 92, 37, 144, 103, 47, 150, 111, 54, 150, 111, 54, 141, 104, 49, 137, 105, 48, 141, 112, 54, 137, 113, 53, 119, 110, 51, 81, 100, 45, 57, 90, 43, 36, 70, 37, 19, 46, 27, 5, 21, 18, 0, 5, 12, 2, 4, 19, 9, 11, 26, 2, 9, 19, 0, 11, 17, 0, 13, 16, 1, 15, 18, 6, 16, 25, 7, 19, 31, 7, 23, 38, 7, 25, 37, 30, 53, 59, 20, 44, 46, 1, 20, 26, 0, 13, 20, 10, 23, 31, 5, 15, 24, 0, 3, 10, 0, 9, 16, 0, 2, 8, 0, 3, 6, 0, 3, 6, 0, 4, 10, 1, 5, 14, 4, 6, 18, 7, 9, 22, 7, 11, 23, 5, 14, 21, 2, 27, 31, 0, 33, 37, 5, 80, 73, 41, 131, 103, 57, 147, 95, 97, 170, 89, 135, 185, 88, 152, 174, 74, 166, 168, 69, 187, 173, 85, 203, 176, 95, 205, 170, 89, 213, 171, 89, 225, 173, 87, 227, 168, 78, 226, 160, 64, 227, 159, 60, 210, 145, 41, 208, 146, 43, 185, 131, 33, 158, 112, 27, 137, 97, 35, 82, 49, 8, 45, 13, 0, 30, 5, 0, 73, 58, 65, 116, 103, 112, 147, 132, 129, 172, 155, 148, 168, 155, 147, 176, 165, 159, 187, 179, 176, 181, 176, 173, 176, 171, 168, 184, 179, 176, 195, 190, 187, 191, 186, 183, 185, 180, 177, 194, 189, 186, 195, 190, 187, 192, 187, 184, 188, 183, 180, 194, 189, 186, 202, 197, 194, 197, 192, 189, 198, 193, 190, 213, 208, 205, 203, 199, 196, 209, 205, 202, 215, 211, 208, 216, 212, 209, 213, 212, 210, 216, 215, 213, 225, 224, 222, 233, 232, 230, 229, 229, 229, 233, 233, 233, 238, 238, 238, 240, 240, 240, 241, 241, 241, 240, 240, 240, 241, 241, 241, 243, 243, 243, 242, 242, 240, 243, 243, 241, 243, 243, 241, 244, 244, 242, 245, 245, 243, 246, 246, 244, 246, 246, 244, 247, 247, 245, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 248, 248, 246, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 247, 247, 245, 246, 246, 244, 244, 244, 242, 243, 243, 241, 240, 239, 237, 240, 239, 237, 240, 239, 237, 242, 241, 239, 243, 239, 238, 239, 235, 234, 232, 228, 227, 226, 222, 221, 225, 224, 222, 228, 227, 225, 224, 223, 221, 212, 211, 209, 208, 207, 205, 213, 212, 210, 219, 218, 216, 220, 219, 217, 218, 217, 215, 207, 206, 204, 212, 211, 209, 218, 217, 215, 208, 207, 205, 200, 199, 197, 202, 201, 199, 203, 202, 200, 200, 200, 198, 210, 210, 208, 169, 168, 164, 177, 174, 169, 168, 161, 153, 149, 140, 133, 172, 164, 161, 129, 123, 125, 150, 145, 151, 138, 128, 136, 127, 111, 114, 127, 103, 103, 133, 105, 102, 143, 115, 112, 152, 132, 134, 166, 145, 150, 159, 129, 137, 147, 117, 117, 135, 107, 96, 133, 107, 90, 137, 111, 94, 140, 116, 104, 143, 121, 123, 146, 129, 139, 162, 151, 168, 151, 148, 169, 142, 148, 164, 142, 149, 165, 139, 147, 158, 136, 143, 153, 140, 139, 153, 146, 140, 150, 150, 140, 141, 144, 130, 129, 135, 121, 121, 137, 122, 127, 149, 136, 143, 157, 144, 151, 148, 137, 143, 133, 124, 127, 107, 101, 101, 127, 123, 120, 142, 137, 133, 138, 133, 129, 139, 132, 126, 147, 138, 133, 146, 135, 131, 136, 126, 124, 123, 122, 120, 129, 131, 126, 138, 138, 130, 164, 160, 149, 155, 147, 136, 140, 130, 120, 166, 153, 145, 168, 154, 153, 156, 144, 148, 183, 172, 180, 186, 179, 187, 195, 190, 196, 191, 187, 188, 186, 183, 178, 205, 203, 191, 194, 195, 181, 202, 204, 191, 209, 210, 202, 210, 211, 206, 200, 199, 197, 188, 187, 183, 186, 183, 176, 187, 185, 173, 189, 186, 171, 202, 198, 186, 203, 199, 190, 199, 193, 193, 188, 183, 187, 178, 171, 178, 173, 168, 172, 178, 174, 171, 184, 181, 176, 144, 141, 136, 144, 141, 136, 149, 146, 141, 143, 140, 135, 140, 137, 132, 161, 158, 153, 176, 173, 168, 165, 162, 157, 150, 145, 141, 148, 145, 140, 155, 150, 146, 163, 158, 154, 161, 156, 152, 153, 148, 144, 153, 148, 144, 160, 157, 152, 172, 171, 167, 146, 147, 142, 124, 123, 119, 116, 115, 111, 114, 113, 108, 111, 110, 105, 117, 114, 109, 125, 122, 117, 138, 133, 129, 154, 146, 143, 164, 157, 151, 163, 156, 150, 160, 151, 146, 161, 152, 147, 165, 156, 151, 166, 157, 152, 170, 163, 157, 168, 161, 155, 157, 150, 144, 133, 126, 120, 127, 120, 114, 155, 148, 142, 163, 156, 150, 134, 127, 121, 151, 144, 138, 129, 122, 116, 128, 121, 115, 146, 139, 133, 152, 145, 139, 151, 144, 138, 154, 147, 141, 154, 147, 141, 160, 153, 147, 168, 161, 155, 179, 170, 165, 180, 173, 167, 172, 163, 158, 158, 151, 145, 145, 138, 132, 138, 131, 125, 154, 147, 141, 163, 156, 150, 169, 162, 156, 162, 155, 149, 148, 141, 135, 140, 133, 127, 146, 139, 133, 156, 149, 143, 139, 131, 128, 137, 132, 128, 137, 129, 126, 139, 134, 130, 153, 145, 142, 167, 159, 156, 171, 163, 160, 168, 160, 157, 155, 147, 144, 158, 150, 147, 163, 155, 152, 167, 159, 156, 170, 160, 158, 170, 160, 158, 167, 157, 155, 166, 156, 154, 162, 154, 151, 163, 155, 152, 164, 156, 153, 166, 158, 155, 168, 160, 157, 170, 162, 159, 171, 163, 160, 172, 164, 161, 173, 165, 162, 170, 162, 159, 166, 158, 155, 162, 154, 151, 159, 151, 148, 154, 146, 143, 147, 139, 136, 143, 135, 132, 137, 129, 127, 143, 135, 133, 152, 144, 141, 159, 151, 148, 163, 155, 152, 165, 157, 154, 167, 159, 156, 168, 160, 157, 179, 171, 169, 180, 175, 172, 185, 181, 180, 188, 187, 185, 193, 191, 192, 198, 198, 200, 204, 205, 209, 209, 210, 214, 218, 221, 226, 220, 223, 228, 223, 226, 231, 224, 227, 232, 226, 229, 234, 229, 232, 237, 235, 238, 243, 239, 242, 247, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 236, 239, 244, 237, 240, 245, 237, 240, 245, 238, 241, 246, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 241, 244, 249, 240, 243, 248, 242, 245, 250, 241, 244, 249, 240, 243, 248, 238, 241, 246, 235, 238, 243, 232, 235, 240, 229, 232, 237, 227, 231, 234, 224, 225, 229, 220, 221, 223, 217, 219, 218, 215, 217, 216, 216, 216, 214, 215, 216, 211, 214, 213, 209, 212, 211, 206, 213, 210, 205, 213, 210, 203, 213, 210, 205, 213, 210, 203, 211, 206, 200, 207, 202, 196, 203, 198, 194, 201, 196, 192, 196, 191, 187, 196, 191, 187, 198, 193, 189, 199, 194, 190, 199, 194, 190, 199, 194, 190, 198, 193, 189, 197, 192, 188, 198, 193, 189, 192, 187, 183, 187, 179, 176, 180, 175, 171, 179, 171, 168, 177, 172, 168, 177, 169, 166, 174, 169, 165, 157, 149, 146, 160, 155, 149, 171, 163, 160, 176, 171, 165, 183, 175, 172, 181, 176, 172, 179, 174, 170, 177, 172, 168, 174, 169, 165, 171, 166, 162, 167, 162, 158, 162, 157, 153, 159, 154, 150, 158, 153, 149, 159, 154, 150, 159, 154, 150, 168, 163, 159, 161, 156, 150, 154, 149, 145, 153, 148, 142, 151, 146, 140, 149, 144, 138, 150, 145, 139, 154, 149, 143, 158, 153, 147, 156, 151, 145, 152, 147, 141, 150, 145, 139, 152, 149, 142, 155, 152, 145, 149, 146, 139, 141, 136, 130, 133, 126, 120, 116, 109, 101, 124, 117, 111, 138, 131, 123, 125, 120, 114, 109, 105, 96, 101, 96, 90, 90, 87, 78, 101, 96, 90, 113, 109, 100, 112, 107, 101, 123, 119, 110, 146, 139, 133, 129, 122, 114, 98, 89, 84, 96, 87, 82, 109, 99, 97, 111, 103, 101, 115, 109, 109, 114, 108, 112, 108, 101, 108, 119, 109, 118, 125, 113, 123, 118, 105, 115, 112, 95, 105, 109, 90, 96, 123, 103, 105, 117, 97, 96, 94, 75, 69, 101, 84, 76, 88, 71, 63, 32, 15, 8, 24, 9, 6, 37, 17, 10, 77, 46, 26, 118, 77, 47, 140, 91, 48, 148, 97, 44, 158, 106, 48, 166, 114, 54, 170, 121, 62, 165, 121, 60, 160, 119, 57, 153, 115, 53, 145, 111, 48, 137, 109, 46, 134, 110, 46, 120, 116, 53, 74, 102, 43, 51, 91, 41, 36, 65, 34, 19, 40, 23, 7, 17, 16, 4, 9, 15, 3, 7, 16, 2, 6, 15, 0, 8, 13, 0, 9, 11, 0, 9, 14, 0, 9, 16, 1, 10, 19, 1, 9, 20, 0, 10, 22, 0, 11, 20, 6, 17, 23, 4, 13, 18, 0, 9, 14, 0, 4, 10, 0, 3, 9, 0, 3, 9, 0, 5, 11, 2, 7, 13, 0, 2, 6, 0, 2, 6, 0, 3, 7, 0, 4, 8, 2, 5, 12, 5, 8, 15, 7, 10, 17, 9, 12, 19, 0, 2, 9, 0, 12, 19, 0, 18, 26, 0, 59, 57, 53, 132, 103, 84, 165, 109, 94, 166, 82, 121, 175, 77, 134, 161, 68, 170, 176, 88, 186, 175, 95, 215, 188, 111, 218, 180, 97, 208, 161, 73, 228, 172, 79, 229, 169, 73, 221, 161, 65, 220, 160, 64, 228, 164, 66, 223, 159, 59, 209, 148, 42, 197, 145, 44, 166, 125, 43, 122, 87, 23, 84, 45, 2, 24, 0, 0, 35, 29, 41, 91, 88, 107, 138, 120, 120, 165, 145, 134, 164, 156, 145, 165, 161, 152, 185, 178, 172, 186, 178, 175, 194, 186, 183, 202, 194, 191, 197, 192, 188, 187, 182, 178, 185, 182, 177, 193, 190, 185, 197, 194, 189, 191, 188, 183, 183, 180, 175, 191, 188, 183, 205, 200, 196, 202, 197, 193, 200, 195, 191, 213, 208, 204, 213, 209, 206, 200, 196, 193, 214, 210, 207, 228, 224, 221, 217, 216, 214, 224, 223, 221, 237, 236, 234, 229, 228, 226, 229, 229, 229, 233, 233, 233, 238, 238, 238, 240, 240, 240, 240, 240, 240, 240, 240, 240, 241, 241, 241, 242, 242, 242, 243, 243, 243, 244, 244, 244, 244, 244, 244, 245, 245, 245, 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 249, 249, 249, 249, 249, 249, 249, 249, 249, 250, 249, 247, 250, 249, 247, 250, 249, 247, 250, 249, 247, 250, 249, 247, 250, 249, 247, 250, 249, 247, 250, 249, 247, 249, 248, 246, 249, 248, 246, 248, 247, 245, 248, 247, 245, 248, 247, 245, 247, 246, 244, 247, 246, 244, 247, 246, 244, 247, 245, 246, 246, 244, 245, 246, 244, 245, 246, 244, 245, 245, 243, 244, 245, 243, 244, 245, 243, 244, 244, 242, 243, 241, 239, 240, 241, 239, 240, 240, 238, 239, 239, 237, 238, 237, 235, 236, 234, 232, 233, 232, 230, 231, 230, 228, 229, 216, 212, 211, 227, 223, 222, 231, 227, 226, 222, 218, 217, 215, 211, 210, 214, 210, 209, 211, 207, 206, 205, 201, 200, 218, 214, 213, 211, 207, 206, 209, 205, 204, 212, 208, 207, 212, 208, 207, 209, 205, 204, 211, 207, 206, 217, 213, 212, 201, 200, 198, 189, 185, 182, 171, 167, 164, 153, 148, 145, 150, 145, 142, 168, 160, 158, 172, 164, 162, 155, 146, 147, 152, 143, 148, 115, 104, 110, 117, 102, 107, 130, 114, 117, 121, 102, 104, 134, 115, 117, 161, 145, 148, 163, 147, 150, 167, 146, 151, 159, 137, 139, 151, 130, 127, 137, 116, 113, 126, 105, 102, 137, 117, 116, 152, 136, 139, 152, 139, 146, 140, 133, 140, 146, 143, 150, 155, 155, 163, 152, 157, 163, 147, 152, 158, 151, 154, 159, 154, 154, 162, 146, 145, 151, 140, 138, 141, 156, 154, 155, 162, 160, 163, 153, 151, 154, 152, 150, 155, 160, 158, 163, 153, 152, 157, 135, 135, 137, 140, 140, 142, 151, 152, 154, 160, 160, 160, 156, 156, 156, 151, 151, 151, 153, 153, 153, 160, 158, 159, 165, 163, 164, 155, 155, 153, 155, 156, 151, 159, 158, 153, 160, 157, 152, 152, 149, 142, 151, 146, 140, 170, 165, 161, 194, 189, 186, 184, 178, 178, 183, 179, 178, 185, 181, 182, 187, 186, 184, 191, 190, 188, 192, 191, 187, 189, 188, 183, 186, 186, 178, 182, 182, 174, 185, 184, 179, 190, 189, 184, 194, 193, 189, 197, 196, 192, 196, 195, 190, 195, 194, 189, 195, 192, 185, 188, 185, 178, 191, 188, 183, 192, 188, 187, 189, 187, 188, 192, 188, 189, 191, 189, 190, 184, 183, 181, 176, 175, 171, 155, 154, 150, 166, 165, 161, 163, 162, 158, 149, 148, 144, 154, 153, 149, 174, 173, 169, 176, 175, 171, 162, 161, 157, 156, 152, 149, 140, 139, 135, 129, 125, 122, 121, 117, 114, 114, 110, 107, 112, 108, 105, 125, 121, 118, 142, 138, 135, 157, 153, 150, 164, 163, 159, 161, 157, 154, 153, 149, 146, 156, 152, 149, 160, 156, 153, 162, 158, 155, 169, 165, 162, 152, 149, 144, 161, 156, 152, 154, 149, 145, 139, 134, 130, 142, 137, 133, 161, 156, 152, 162, 157, 151, 148, 143, 137, 131, 126, 120, 112, 107, 101, 101, 96, 90, 112, 107, 101, 128, 123, 117, 133, 128, 122, 131, 126, 120, 131, 126, 120, 128, 123, 117, 132, 127, 121, 133, 128, 122, 124, 119, 113, 115, 110, 104, 119, 114, 108, 137, 132, 126, 155, 148, 142, 154, 145, 140, 169, 160, 155, 180, 169, 165, 168, 159, 154, 146, 135, 131, 131, 122, 117, 135, 126, 121, 146, 137, 132, 151, 142, 137, 155, 146, 141, 158, 151, 145, 160, 153, 147, 160, 153, 147, 161, 154, 148, 163, 156, 150, 165, 158, 152, 155, 148, 142, 160, 153, 147, 166, 157, 152, 166, 159, 153, 165, 156, 151, 164, 155, 150, 167, 158, 153, 171, 162, 157, 158, 149, 144, 160, 151, 146, 162, 153, 148, 166, 157, 152, 170, 161, 156, 173, 164, 159, 176, 167, 162, 177, 168, 163, 174, 164, 162, 169, 159, 157, 167, 157, 155, 167, 157, 155, 165, 155, 153, 161, 151, 149, 161, 151, 149, 164, 154, 152, 168, 158, 156, 170, 160, 158, 172, 162, 160, 171, 161, 159, 170, 160, 158, 170, 160, 158, 172, 162, 160, 174, 164, 162, 161, 151, 149, 165, 155, 153, 168, 158, 156, 169, 159, 157, 168, 159, 154, 171, 162, 157, 179, 169, 167, 184, 176, 173, 183, 175, 172, 183, 178, 175, 184, 180, 179, 185, 184, 182, 188, 186, 187, 194, 194, 194, 202, 203, 205, 208, 209, 213, 217, 220, 225, 220, 223, 230, 224, 227, 232, 226, 229, 234, 228, 231, 236, 231, 234, 239, 235, 238, 243, 239, 242, 247, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 236, 239, 244, 237, 240, 245, 237, 240, 245, 238, 241, 246, 239, 242, 247, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 241, 244, 249, 240, 243, 248, 241, 244, 249, 241, 244, 249, 240, 243, 248, 238, 241, 246, 235, 238, 243, 232, 235, 240, 229, 232, 237, 227, 231, 234, 225, 226, 230, 222, 223, 225, 218, 220, 219, 216, 218, 217, 217, 217, 215, 216, 217, 212, 216, 215, 210, 214, 213, 208, 212, 209, 202, 212, 209, 202, 212, 209, 202, 211, 208, 201, 210, 205, 199, 206, 201, 195, 203, 198, 194, 201, 196, 192, 201, 196, 192, 201, 196, 192, 201, 196, 192, 201, 196, 192, 200, 195, 191, 198, 193, 189, 196, 191, 187, 195, 190, 186, 196, 191, 187, 191, 186, 182, 185, 180, 176, 181, 176, 172, 181, 176, 172, 181, 176, 172, 180, 175, 171, 179, 174, 170, 175, 170, 166, 178, 173, 169, 183, 178, 174, 188, 183, 179, 190, 185, 181, 189, 184, 180, 187, 182, 178, 185, 180, 176, 194, 189, 185, 190, 185, 181, 185, 180, 176, 179, 174, 170, 172, 167, 163, 167, 162, 158, 164, 159, 155, 162, 157, 153, 151, 144, 138, 158, 151, 145, 170, 163, 157, 179, 172, 166, 176, 169, 163, 166, 159, 153, 160, 155, 149, 162, 157, 151, 170, 165, 159, 167, 162, 156, 161, 156, 150, 156, 151, 145, 155, 152, 145, 153, 150, 143, 143, 140, 133, 131, 126, 120, 144, 137, 129, 121, 112, 105, 114, 107, 99, 120, 113, 105, 113, 109, 100, 112, 108, 99, 118, 115, 106, 119, 116, 107, 108, 105, 96, 133, 130, 121, 139, 135, 126, 134, 130, 121, 133, 126, 118, 111, 104, 96, 102, 93, 86, 122, 113, 108, 145, 135, 134, 131, 122, 123, 111, 105, 105, 94, 88, 90, 97, 91, 95, 122, 115, 122, 131, 121, 130, 112, 100, 110, 127, 111, 121, 114, 97, 105, 118, 99, 103, 112, 94, 94, 101, 83, 79, 114, 99, 92, 101, 87, 78, 44, 29, 22, 19, 4, 1, 45, 25, 18, 93, 61, 40, 135, 92, 58, 157, 106, 59, 169, 113, 56, 177, 118, 58, 178, 123, 59, 182, 131, 68, 174, 126, 62, 164, 120, 55, 158, 119, 52, 154, 119, 53, 148, 119, 51, 138, 115, 48, 119, 115, 51, 69, 99, 37, 41, 81, 29, 38, 65, 30, 31, 50, 31, 10, 21, 15, 1, 6, 10, 2, 7, 11, 0, 5, 8, 0, 8, 11, 0, 9, 11, 0, 7, 13, 1, 8, 16, 1, 8, 18, 1, 8, 18, 1, 10, 19, 2, 9, 17, 8, 13, 19, 7, 10, 15, 3, 6, 11, 0, 3, 8, 0, 1, 6, 0, 2, 7, 0, 3, 8, 2, 5, 10, 0, 1, 6, 0, 1, 6, 0, 2, 7, 0, 3, 8, 2, 5, 10, 4, 7, 12, 7, 10, 15, 8, 11, 16, 5, 6, 10, 0, 11, 17, 0, 17, 23, 2, 57, 52, 52, 126, 93, 77, 157, 98, 87, 159, 73, 112, 169, 72, 140, 173, 82, 167, 179, 95, 179, 172, 94, 205, 182, 106, 216, 181, 97, 214, 169, 78, 232, 179, 83, 230, 174, 77, 232, 177, 84, 232, 176, 83, 240, 177, 82, 236, 171, 71, 226, 158, 49, 217, 156, 49, 185, 141, 46, 145, 108, 30, 102, 61, 5, 30, 3, 0, 18, 20, 35, 62, 68, 92, 120, 106, 106, 165, 147, 137, 168, 159, 150, 163, 159, 150, 189, 182, 176, 189, 179, 177, 193, 185, 182, 200, 192, 189, 197, 192, 188, 190, 185, 181, 188, 185, 180, 193, 190, 185, 196, 193, 188, 193, 190, 185, 186, 183, 178, 191, 188, 183, 206, 201, 197, 206, 201, 197, 205, 200, 196, 214, 209, 205, 215, 211, 208, 203, 199, 196, 216, 212, 209, 229, 225, 222, 218, 217, 215, 222, 221, 219, 232, 231, 229, 224, 223, 221, 229, 229, 229, 233, 233, 233, 238, 238, 238, 240, 240, 240, 240, 240, 240, 240, 240, 240, 241, 241, 241, 242, 242, 242, 243, 243, 243, 243, 243, 243, 244, 244, 244, 245, 245, 245, 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 249, 249, 249, 249, 249, 249, 249, 249, 249, 250, 249, 247, 250, 249, 247, 250, 249, 247, 250, 249, 247, 250, 249, 247, 250, 249, 247, 250, 249, 247, 250, 249, 247, 250, 249, 247, 249, 248, 246, 249, 248, 246, 249, 248, 246, 248, 247, 245, 248, 247, 245, 248, 247, 245, 247, 246, 244, 247, 245, 246, 247, 245, 246, 246, 244, 245, 246, 244, 245, 245, 243, 244, 245, 243, 244, 245, 243, 244, 245, 243, 244, 242, 240, 241, 241, 239, 240, 241, 239, 240, 240, 238, 239, 238, 236, 237, 235, 233, 234, 233, 231, 232, 232, 230, 231, 220, 216, 215, 227, 223, 222, 228, 224, 223, 221, 217, 216, 216, 212, 211, 217, 213, 212, 214, 210, 209, 208, 204, 203, 215, 211, 210, 220, 216, 215, 218, 214, 213, 210, 206, 205, 207, 203, 202, 212, 208, 207, 213, 209, 208, 210, 206, 205, 195, 191, 188, 175, 171, 168, 161, 156, 153, 142, 137, 134, 128, 122, 122, 150, 144, 144, 175, 166, 167, 166, 157, 158, 155, 144, 148, 170, 159, 163, 129, 117, 121, 97, 85, 89, 132, 120, 124, 154, 142, 146, 152, 137, 142, 166, 151, 154, 172, 156, 159, 169, 150, 152, 165, 145, 147, 151, 131, 133, 134, 115, 119, 137, 121, 124, 153, 138, 143, 154, 143, 147, 162, 156, 158, 158, 156, 157, 157, 157, 159, 164, 165, 167, 168, 172, 175, 165, 169, 172, 162, 163, 167, 165, 166, 170, 155, 159, 162, 167, 171, 174, 166, 170, 173, 153, 157, 160, 152, 156, 159, 161, 165, 168, 160, 164, 167, 147, 151, 154, 154, 158, 161, 160, 164, 167, 162, 166, 169, 156, 160, 163, 153, 157, 160, 160, 164, 167, 169, 173, 176, 176, 177, 179, 153, 153, 151, 161, 160, 156, 174, 173, 169, 184, 183, 179, 182, 181, 177, 177, 176, 172, 183, 182, 178, 196, 195, 191, 201, 200, 196, 199, 198, 194, 195, 194, 190, 191, 190, 186, 191, 190, 186, 193, 192, 188, 197, 196, 192, 200, 199, 195, 187, 186, 181, 187, 186, 181, 187, 186, 181, 186, 185, 180, 183, 182, 178, 178, 177, 173, 174, 173, 169, 172, 171, 167, 179, 178, 174, 186, 185, 181, 189, 188, 186, 186, 185, 183, 181, 180, 178, 175, 174, 172, 164, 163, 161, 153, 152, 150, 165, 166, 161, 165, 166, 161, 169, 170, 165, 179, 180, 175, 190, 191, 186, 190, 191, 186, 178, 177, 173, 164, 163, 159, 161, 160, 156, 151, 150, 146, 150, 149, 145, 166, 165, 161, 182, 178, 175, 181, 177, 174, 173, 169, 166, 168, 164, 161, 152, 148, 145, 169, 165, 162, 171, 167, 164, 161, 157, 154, 153, 149, 146, 142, 138, 135, 136, 132, 129, 140, 136, 133, 153, 150, 145, 155, 152, 147, 158, 155, 150, 164, 161, 156, 170, 167, 162, 169, 166, 161, 152, 149, 142, 134, 131, 124, 141, 136, 130, 140, 135, 129, 145, 140, 134, 149, 144, 138, 147, 142, 136, 143, 138, 132, 149, 144, 138, 161, 156, 150, 153, 148, 142, 152, 147, 141, 149, 144, 138, 143, 138, 132, 139, 134, 128, 141, 136, 130, 149, 144, 138, 158, 151, 145, 157, 148, 143, 163, 152, 148, 166, 155, 151, 161, 150, 146, 150, 139, 135, 146, 135, 131, 149, 140, 135, 156, 147, 142, 155, 146, 141, 155, 146, 141, 154, 147, 141, 153, 146, 140, 153, 146, 140, 158, 151, 145, 166, 159, 153, 171, 164, 158, 172, 163, 158, 174, 165, 160, 175, 166, 161, 172, 163, 158, 166, 157, 152, 161, 152, 147, 161, 152, 147, 162, 153, 148, 151, 142, 137, 155, 146, 141, 161, 152, 147, 166, 157, 152, 168, 159, 154, 166, 157, 152, 162, 153, 148, 159, 150, 145, 158, 148, 146, 154, 144, 142, 154, 144, 142, 157, 147, 145, 158, 148, 146, 156, 146, 144, 157, 147, 145, 161, 151, 149, 160, 150, 148, 162, 152, 150, 165, 155, 153, 164, 154, 152, 162, 152, 150, 161, 151, 149, 161, 151, 149, 162, 152, 150, 162, 152, 150, 163, 153, 151, 166, 156, 154, 167, 157, 155, 170, 161, 156, 174, 165, 160, 180, 170, 168, 185, 175, 173, 178, 170, 167, 180, 175, 171, 185, 179, 179, 188, 187, 185, 194, 192, 193, 201, 201, 201, 209, 210, 212, 216, 217, 221, 220, 223, 228, 224, 227, 234, 229, 232, 237, 232, 235, 240, 234, 237, 242, 236, 239, 244, 239, 242, 247, 242, 245, 250, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 249, 244, 248, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 239, 242, 247, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 237, 240, 245, 234, 237, 242, 231, 234, 239, 229, 232, 237, 227, 231, 234, 227, 228, 232, 224, 225, 227, 220, 222, 221, 217, 219, 218, 218, 218, 216, 217, 218, 213, 216, 215, 210, 214, 213, 208, 212, 209, 202, 211, 208, 201, 211, 208, 201, 209, 206, 199, 208, 203, 199, 205, 200, 196, 202, 197, 193, 200, 195, 191, 205, 200, 196, 205, 200, 196, 204, 199, 195, 202, 197, 193, 200, 195, 191, 197, 192, 188, 194, 189, 185, 192, 187, 183, 192, 187, 183, 188, 183, 179, 184, 179, 175, 183, 178, 174, 184, 179, 175, 186, 181, 177, 187, 182, 178, 186, 181, 177, 193, 188, 184, 194, 189, 185, 194, 189, 185, 195, 190, 186, 195, 190, 186, 193, 188, 184, 192, 187, 183, 191, 186, 182, 193, 188, 184, 192, 187, 183, 189, 184, 180, 185, 180, 176, 180, 175, 171, 175, 170, 166, 170, 165, 161, 168, 163, 159, 155, 148, 142, 161, 154, 148, 169, 162, 156, 169, 162, 156, 156, 149, 143, 140, 133, 127, 134, 129, 123, 138, 133, 127, 138, 133, 127, 141, 136, 130, 143, 138, 132, 144, 139, 133, 149, 146, 139, 155, 152, 145, 154, 151, 144, 149, 144, 138, 140, 133, 127, 129, 120, 115, 132, 125, 119, 142, 135, 129, 138, 133, 127, 133, 128, 122, 133, 130, 123, 132, 129, 122, 128, 125, 118, 144, 141, 134, 147, 142, 136, 146, 141, 135, 151, 144, 138, 136, 129, 123, 130, 121, 116, 145, 136, 131, 150, 142, 139, 124, 116, 114, 100, 94, 94, 95, 89, 91, 102, 97, 101, 123, 117, 121, 131, 121, 129, 119, 108, 116, 145, 129, 139, 130, 113, 121, 132, 113, 119, 131, 112, 114, 131, 113, 111, 146, 131, 126, 125, 110, 103, 62, 49, 41, 26, 11, 8, 66, 46, 37, 114, 82, 61, 142, 99, 65, 159, 107, 59, 168, 112, 55, 170, 112, 49, 167, 109, 45, 188, 135, 69, 177, 128, 62, 165, 120, 53, 161, 121, 52, 160, 126, 55, 155, 127, 54, 142, 118, 48, 121, 114, 44, 77, 102, 36, 37, 75, 16, 43, 71, 31, 46, 69, 43, 16, 29, 20, 0, 6, 5, 3, 8, 12, 0, 5, 9, 1, 6, 10, 1, 6, 10, 1, 6, 12, 2, 7, 13, 2, 6, 15, 3, 7, 16, 1, 8, 14, 3, 8, 14, 7, 10, 15, 5, 8, 13, 2, 5, 10, 0, 2, 7, 0, 0, 5, 0, 1, 6, 0, 2, 7, 0, 3, 8, 0, 2, 7, 0, 2, 7, 0, 2, 7, 0, 3, 8, 2, 5, 10, 4, 7, 12, 6, 9, 14, 9, 10, 14, 9, 9, 11, 0, 11, 11, 0, 17, 17, 0, 58, 43, 45, 121, 82, 66, 151, 84, 79, 155, 65, 103, 165, 66, 143, 179, 89, 162, 177, 92, 169, 168, 88, 190, 174, 96, 205, 179, 94, 211, 177, 87, 224, 184, 89, 223, 179, 84, 217, 171, 77, 223, 170, 78, 234, 171, 78, 235, 167, 68, 233, 159, 50, 229, 161, 52, 207, 153, 55, 176, 131, 50, 118, 78, 17, 38, 14, 0, 12, 22, 34, 41, 57, 82, 92, 87, 93, 144, 131, 125, 163, 154, 149, 169, 162, 156, 191, 181, 179, 187, 177, 175, 187, 179, 176, 193, 185, 182, 194, 189, 185, 192, 187, 183, 189, 186, 181, 191, 188, 183, 195, 192, 187, 197, 194, 189, 190, 187, 182, 191, 188, 183, 206, 201, 197, 210, 205, 201, 208, 203, 199, 212, 207, 203, 216, 212, 209, 206, 202, 199, 218, 214, 211, 230, 226, 223, 220, 219, 217, 221, 220, 218, 227, 226, 224, 219, 218, 216, 229, 229, 229, 233, 233, 233, 238, 238, 238, 240, 240, 240, 240, 240, 240, 240, 240, 240, 241, 241, 241, 242, 242, 242, 243, 243, 243, 243, 243, 243, 244, 244, 244, 244, 244, 244, 245, 245, 245, 246, 246, 246, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 249, 249, 249, 249, 249, 249, 249, 249, 249, 250, 249, 247, 250, 249, 247, 250, 249, 247, 250, 249, 247, 250, 249, 247, 250, 249, 247, 250, 249, 247, 250, 249, 247, 251, 250, 248, 250, 249, 247, 250, 249, 247, 250, 249, 247, 249, 248, 246, 249, 248, 246, 249, 248, 246, 248, 247, 245, 247, 245, 246, 247, 245, 246, 246, 244, 245, 246, 244, 245, 246, 244, 245, 245, 243, 244, 245, 243, 244, 245, 243, 244, 243, 241, 242, 243, 241, 242, 243, 241, 242, 242, 240, 241, 240, 238, 239, 238, 236, 237, 235, 233, 234, 234, 232, 233, 227, 223, 222, 228, 224, 223, 225, 221, 220, 219, 215, 214, 219, 215, 214, 222, 218, 217, 220, 216, 215, 214, 210, 209, 211, 207, 206, 225, 221, 220, 224, 220, 219, 206, 202, 201, 199, 195, 194, 208, 204, 203, 210, 206, 205, 201, 197, 196, 211, 207, 204, 196, 192, 189, 185, 180, 177, 165, 160, 157, 143, 137, 137, 150, 144, 144, 169, 160, 161, 167, 158, 159, 158, 147, 151, 188, 177, 181, 142, 131, 135, 102, 91, 95, 141, 129, 133, 154, 142, 146, 140, 128, 132, 164, 149, 152, 158, 142, 145, 156, 140, 141, 161, 142, 144, 155, 136, 138, 141, 122, 126, 143, 127, 130, 158, 143, 148, 162, 151, 155, 178, 174, 175, 171, 169, 170, 161, 161, 163, 171, 172, 174, 188, 192, 195, 179, 183, 186, 171, 172, 176, 185, 186, 190, 180, 181, 183, 186, 187, 189, 179, 180, 182, 164, 165, 167, 162, 163, 165, 174, 175, 177, 177, 178, 180, 170, 171, 173, 171, 172, 174, 174, 175, 177, 173, 174, 176, 170, 171, 173, 172, 173, 175, 179, 180, 182, 184, 185, 187, 184, 186, 185, 173, 173, 171, 179, 178, 174, 190, 189, 185, 199, 198, 194, 196, 195, 191, 185, 184, 180, 177, 176, 172, 177, 176, 172, 202, 201, 197, 202, 201, 197, 199, 198, 194, 193, 192, 188, 187, 186, 182, 187, 186, 182, 192, 191, 187, 197, 196, 192, 204, 203, 198, 203, 202, 197, 199, 198, 193, 194, 193, 188, 189, 188, 184, 184, 183, 179, 181, 180, 176, 179, 178, 174, 189, 188, 184, 190, 189, 185, 186, 185, 183, 177, 176, 174, 172, 171, 169, 175, 174, 172, 179, 178, 176, 179, 178, 176, 174, 175, 170, 164, 165, 160, 168, 169, 164, 183, 184, 179, 181, 182, 177, 161, 162, 157, 149, 148, 144, 153, 152, 148, 150, 149, 145, 158, 157, 153, 173, 169, 166, 180, 176, 173, 175, 171, 168, 163, 159, 156, 158, 154, 151, 161, 157, 154, 183, 179, 176, 188, 184, 181, 172, 168, 165, 143, 139, 136, 129, 126, 121, 128, 125, 120, 141, 138, 133, 160, 157, 152, 172, 169, 164, 163, 160, 155, 159, 156, 149, 161, 158, 151, 155, 152, 145, 138, 135, 128, 123, 120, 113, 119, 116, 109, 140, 135, 129, 150, 143, 137, 160, 153, 147, 161, 154, 148, 151, 144, 138, 143, 136, 130, 149, 142, 136, 162, 155, 149, 167, 160, 154, 164, 157, 151, 159, 152, 146, 155, 148, 142, 153, 146, 140, 151, 144, 138, 148, 141, 135, 146, 139, 133, 163, 154, 149, 163, 152, 148, 162, 151, 147, 162, 151, 147, 162, 151, 147, 162, 151, 147, 159, 150, 145, 157, 148, 143, 148, 139, 134, 149, 140, 135, 149, 142, 136, 150, 143, 137, 151, 144, 138, 156, 149, 143, 162, 155, 149, 167, 160, 154, 161, 152, 147, 162, 153, 148, 160, 151, 146, 156, 147, 142, 148, 139, 134, 142, 133, 128, 139, 130, 125, 138, 129, 124, 154, 145, 140, 157, 148, 143, 160, 151, 146, 162, 153, 148, 161, 152, 147, 157, 148, 143, 153, 144, 139, 150, 141, 136, 148, 138, 136, 146, 136, 134, 149, 139, 137, 155, 145, 143, 159, 149, 147, 159, 149, 147, 162, 152, 150, 167, 157, 155, 173, 163, 161, 176, 166, 164, 178, 168, 166, 178, 168, 166, 175, 165, 163, 172, 162, 160, 170, 160, 158, 170, 160, 158, 162, 152, 150, 161, 151, 149, 161, 151, 149, 164, 154, 152, 171, 162, 157, 177, 168, 163, 181, 171, 169, 182, 172, 170, 178, 170, 167, 181, 176, 172, 189, 183, 183, 192, 191, 189, 199, 197, 198, 205, 205, 205, 211, 212, 214, 216, 217, 221, 220, 223, 228, 225, 228, 235, 232, 235, 240, 236, 239, 244, 238, 241, 246, 239, 242, 247, 240, 243, 248, 241, 244, 249, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 248, 244, 248, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 237, 240, 245, 237, 240, 245, 238, 241, 246, 239, 242, 247, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 241, 244, 249, 240, 243, 248, 239, 242, 247, 239, 242, 247, 238, 241, 246, 237, 240, 245, 234, 237, 242, 232, 235, 240, 229, 232, 237, 228, 232, 235, 227, 228, 232, 224, 225, 227, 219, 221, 220, 217, 219, 218, 217, 217, 215, 216, 217, 212, 215, 214, 210, 213, 212, 207, 211, 208, 201, 211, 208, 201, 209, 206, 199, 207, 204, 197, 206, 201, 197, 203, 198, 194, 201, 196, 192, 200, 195, 191, 203, 198, 194, 203, 198, 194, 202, 197, 193, 201, 196, 192, 198, 193, 189, 196, 191, 187, 193, 188, 184, 192, 187, 183, 186, 181, 177, 184, 179, 175, 182, 177, 173, 183, 178, 174, 186, 181, 177, 189, 184, 180, 190, 185, 181, 190, 185, 181, 196, 191, 187, 195, 190, 186, 193, 188, 184, 191, 186, 182, 190, 185, 181, 190, 185, 181, 190, 185, 181, 191, 186, 182, 180, 175, 171, 182, 177, 173, 184, 179, 175, 185, 180, 176, 185, 180, 176, 183, 178, 174, 181, 176, 172, 179, 174, 170, 177, 170, 164, 165, 158, 152, 150, 143, 137, 134, 127, 121, 118, 111, 105, 110, 103, 97, 113, 108, 102, 123, 118, 112, 154, 149, 143, 160, 155, 149, 160, 155, 149, 150, 145, 139, 141, 138, 131, 141, 138, 131, 147, 144, 137, 151, 146, 140, 156, 149, 143, 160, 151, 146, 167, 160, 154, 169, 162, 156, 151, 146, 140, 128, 123, 117, 114, 111, 104, 110, 107, 100, 123, 120, 113, 136, 133, 126, 142, 137, 131, 145, 140, 134, 148, 141, 135, 135, 128, 122, 127, 118, 113, 136, 129, 123, 140, 133, 127, 113, 108, 104, 111, 106, 103, 126, 122, 121, 129, 125, 126, 123, 118, 122, 127, 121, 125, 133, 123, 131, 145, 132, 141, 143, 128, 135, 154, 137, 143, 160, 144, 147, 163, 147, 147, 171, 157, 154, 139, 126, 120, 73, 60, 54, 47, 32, 29, 92, 72, 63, 130, 98, 77, 142, 99, 64, 153, 101, 53, 167, 108, 50, 167, 107, 44, 163, 106, 39, 179, 126, 58, 174, 124, 55, 169, 122, 52, 166, 124, 52, 163, 127, 53, 155, 126, 50, 146, 120, 45, 126, 118, 43, 98, 115, 44, 48, 78, 16, 52, 80, 32, 60, 85, 53, 21, 39, 23, 0, 6, 2, 1, 9, 11, 2, 7, 11, 3, 4, 9, 3, 4, 9, 1, 4, 11, 1, 6, 12, 1, 6, 12, 1, 6, 10, 3, 7, 10, 3, 7, 10, 3, 6, 11, 2, 5, 10, 0, 3, 8, 0, 1, 6, 0, 0, 5, 0, 0, 5, 0, 1, 6, 0, 1, 6, 0, 2, 7, 0, 2, 7, 0, 2, 7, 0, 3, 8, 1, 4, 9, 3, 6, 11, 5, 8, 13, 8, 9, 13, 11, 9, 12, 0, 7, 6, 0, 18, 12, 5, 63, 41, 44, 122, 74, 63, 149, 78, 79, 155, 65, 105, 167, 70, 136, 172, 82, 157, 172, 87, 172, 169, 88, 186, 171, 90, 198, 174, 86, 207, 176, 86, 216, 179, 88, 217, 176, 84, 213, 170, 78, 219, 170, 77, 228, 167, 74, 230, 160, 62, 233, 155, 44, 231, 155, 43, 214, 151, 48, 192, 140, 54, 133, 92, 30, 44, 24, 0, 18, 34, 49, 46, 70, 96, 77, 81, 92, 110, 101, 104, 142, 132, 131, 175, 163, 163, 187, 177, 175, 183, 173, 171, 180, 172, 169, 185, 177, 174, 189, 184, 180, 192, 187, 183, 190, 187, 182, 189, 186, 181, 197, 194, 189, 200, 197, 192, 193, 190, 185, 191, 188, 183, 203, 198, 194, 207, 202, 198, 203, 198, 194, 204, 199, 195, 212, 208, 205, 206, 202, 199, 217, 213, 210, 228, 224, 221, 221, 220, 218, 221, 220, 218, 224, 223, 221, 219, 218, 216, 229, 229, 229, 233, 233, 233, 238, 238, 238, 240, 240, 240, 240, 240, 240, 240, 240, 240, 241, 241, 241, 242, 242, 242, 242, 242, 242, 243, 243, 243, 243, 243, 243, 244, 244, 244, 245, 245, 245, 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 249, 249, 249, 249, 249, 249, 249, 249, 249, 250, 249, 247, 250, 249, 247, 250, 249, 247, 250, 249, 247, 250, 249, 247, 250, 249, 247, 250, 249, 247, 250, 249, 247, 251, 250, 248, 251, 250, 248, 251, 250, 248, 250, 249, 247, 250, 249, 247, 250, 249, 247, 249, 248, 246, 249, 248, 246, 247, 245, 246, 247, 245, 246, 247, 245, 246, 246, 244, 245, 246, 244, 245, 246, 244, 245, 245, 243, 244, 245, 243, 244, 244, 242, 243, 244, 242, 243, 244, 242, 243, 243, 241, 242, 242, 240, 241, 240, 238, 239, 238, 236, 237, 237, 235, 236, 234, 230, 229, 229, 225, 224, 222, 218, 217, 219, 215, 214, 222, 218, 217, 225, 221, 220, 224, 220, 219, 221, 217, 216, 212, 208, 207, 223, 219, 218, 223, 219, 218, 208, 204, 203, 198, 194, 193, 201, 197, 196, 202, 198, 197, 196, 192, 191, 189, 185, 182, 198, 194, 191, 189, 184, 181, 180, 175, 172, 186, 180, 180, 179, 173, 173, 176, 167, 168, 190, 181, 182, 146, 135, 139, 132, 121, 125, 133, 122, 126, 144, 133, 137, 143, 131, 135, 143, 131, 135, 158, 146, 150, 175, 163, 167, 155, 140, 143, 150, 134, 135, 153, 137, 138, 155, 139, 140, 150, 131, 135, 151, 135, 138, 159, 147, 151, 161, 150, 154, 170, 166, 167, 178, 178, 178, 172, 172, 174, 175, 176, 178, 192, 196, 199, 186, 190, 193, 177, 178, 182, 190, 191, 193, 191, 192, 194, 194, 195, 197, 188, 189, 191, 176, 177, 179, 175, 176, 178, 187, 188, 190, 192, 193, 195, 188, 189, 191, 177, 178, 180, 180, 181, 183, 183, 184, 186, 185, 186, 188, 190, 191, 193, 194, 195, 197, 189, 190, 192, 181, 181, 181, 181, 180, 178, 180, 179, 175, 184, 183, 179, 190, 189, 185, 195, 194, 190, 194, 193, 189, 190, 189, 185, 187, 186, 182, 188, 187, 183, 194, 193, 189, 199, 198, 194, 196, 195, 191, 188, 187, 183, 182, 181, 177, 183, 182, 178, 186, 185, 181, 194, 193, 188, 192, 191, 186, 190, 189, 184, 188, 187, 182, 186, 185, 181, 186, 185, 181, 186, 185, 181, 186, 185, 181, 181, 180, 176, 183, 182, 178, 180, 179, 177, 173, 172, 170, 171, 170, 168, 178, 177, 175, 185, 184, 182, 189, 188, 186, 169, 170, 165, 164, 165, 160, 164, 165, 160, 162, 163, 158, 143, 144, 139, 122, 123, 118, 133, 132, 128, 159, 158, 154, 167, 166, 162, 174, 173, 169, 178, 174, 171, 165, 161, 158, 141, 137, 134, 128, 124, 121, 135, 131, 128, 148, 144, 141, 139, 135, 132, 155, 151, 148, 157, 152, 149, 149, 146, 141, 152, 147, 143, 154, 151, 146, 162, 157, 153, 174, 171, 166, 168, 163, 159, 164, 161, 154, 162, 157, 151, 158, 155, 148, 152, 147, 141, 145, 142, 135, 151, 146, 140, 161, 156, 150, 158, 151, 145, 156, 149, 143, 157, 150, 144, 159, 152, 146, 160, 153, 147, 157, 150, 144, 155, 148, 142, 155, 148, 142, 152, 145, 139, 153, 146, 140, 154, 147, 141, 156, 149, 143, 155, 148, 142, 153, 146, 140, 150, 143, 137, 148, 141, 135, 161, 150, 146, 160, 149, 145, 159, 148, 144, 159, 148, 144, 159, 148, 144, 154, 143, 139, 145, 136, 131, 139, 130, 125, 136, 127, 122, 142, 133, 128, 149, 142, 136, 154, 147, 141, 156, 149, 143, 156, 149, 143, 156, 149, 143, 157, 150, 144, 166, 157, 152, 166, 157, 152, 166, 157, 152, 164, 155, 150, 160, 151, 146, 157, 148, 143, 154, 145, 140, 153, 144, 139, 167, 158, 153, 164, 155, 150, 160, 151, 146, 157, 148, 143, 155, 146, 141, 156, 147, 142, 158, 149, 144, 160, 151, 146, 154, 144, 142, 153, 143, 141, 157, 147, 145, 165, 155, 153, 170, 160, 158, 170, 160, 158, 173, 163, 161, 178, 168, 166, 173, 163, 161, 176, 166, 164, 179, 169, 167, 178, 168, 166, 174, 164, 162, 169, 159, 157, 167, 157, 155, 166, 156, 154, 160, 150, 148, 157, 147, 145, 156, 146, 144, 161, 151, 149, 170, 161, 156, 177, 168, 163, 179, 169, 167, 179, 169, 167, 183, 175, 172, 186, 181, 177, 193, 187, 187, 196, 195, 193, 199, 197, 198, 202, 202, 202, 205, 206, 208, 208, 209, 213, 216, 219, 224, 222, 225, 232, 230, 233, 238, 236, 239, 244, 238, 241, 246, 238, 241, 246, 237, 240, 245, 238, 241, 246, 241, 245, 248, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 248, 243, 247, 248, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 240, 243, 248, 241, 244, 249, 241, 244, 249, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 241, 244, 249, 240, 243, 248, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 235, 238, 243, 232, 235, 240, 230, 233, 238, 229, 233, 236, 227, 228, 232, 223, 224, 226, 219, 221, 220, 216, 218, 217, 216, 216, 214, 214, 215, 210, 213, 212, 208, 210, 209, 204, 212, 209, 204, 211, 208, 203, 209, 206, 201, 206, 203, 198, 205, 200, 196, 203, 198, 194, 201, 196, 192, 201, 196, 192, 197, 192, 188, 197, 192, 188, 198, 193, 189, 197, 192, 188, 196, 191, 187, 195, 190, 186, 193, 188, 184, 192, 187, 183, 182, 177, 173, 181, 176, 172, 180, 175, 171, 183, 178, 174, 186, 181, 177, 189, 184, 180, 190, 185, 181, 189, 184, 180, 190, 185, 181, 189, 184, 180, 187, 182, 178, 186, 181, 177, 186, 181, 177, 187, 182, 178, 188, 183, 179, 190, 185, 181, 185, 180, 176, 186, 181, 177, 187, 182, 178, 188, 183, 179, 186, 181, 177, 183, 178, 174, 180, 175, 171, 178, 173, 169, 178, 171, 165, 159, 152, 146, 139, 132, 126, 129, 122, 116, 129, 122, 116, 134, 127, 121, 140, 135, 129, 148, 143, 137, 141, 136, 130, 152, 147, 141, 155, 150, 144, 142, 137, 131, 127, 124, 117, 131, 128, 121, 149, 146, 139, 166, 161, 155, 159, 151, 148, 165, 157, 154, 164, 156, 153, 151, 143, 140, 129, 124, 120, 113, 108, 104, 112, 109, 104, 123, 120, 115, 123, 120, 115, 145, 142, 137, 159, 154, 150, 150, 145, 141, 128, 120, 117, 109, 101, 98, 116, 108, 105, 141, 134, 128, 152, 145, 139, 133, 128, 122, 130, 125, 121, 137, 133, 130, 138, 134, 133, 139, 135, 136, 139, 134, 138, 135, 129, 133, 130, 119, 125, 140, 127, 134, 158, 143, 148, 163, 148, 151, 161, 147, 147, 163, 152, 150, 132, 121, 119, 76, 65, 61, 68, 54, 51, 113, 93, 84, 140, 108, 85, 140, 98, 60, 155, 103, 53, 175, 116, 56, 183, 124, 58, 186, 127, 57, 172, 118, 46, 177, 125, 52, 179, 131, 55, 175, 134, 55, 167, 130, 50, 157, 126, 46, 153, 126, 45, 142, 131, 51, 119, 130, 52, 66, 91, 23, 60, 87, 32, 63, 91, 51, 22, 48, 23, 0, 8, 0, 0, 4, 3, 1, 4, 9, 3, 2, 8, 3, 2, 10, 2, 2, 12, 0, 4, 10, 0, 5, 11, 0, 5, 8, 4, 5, 7, 4, 5, 7, 1, 5, 8, 0, 3, 8, 0, 2, 7, 0, 1, 6, 0, 0, 5, 0, 0, 5, 0, 0, 5, 0, 0, 5, 0, 2, 7, 0, 2, 7, 0, 2, 7, 0, 2, 7, 0, 3, 8, 2, 5, 10, 4, 7, 12, 8, 7, 13, 13, 6, 13, 0, 2, 5, 0, 21, 10, 17, 72, 43, 50, 127, 75, 70, 152, 80, 88, 160, 74, 115, 170, 77, 132, 160, 75, 161, 169, 86, 191, 180, 98, 198, 176, 91, 202, 172, 84, 211, 174, 85, 215, 174, 86, 219, 175, 88, 231, 190, 100, 237, 190, 98, 241, 180, 89, 238, 166, 66, 238, 154, 42, 229, 145, 29, 212, 138, 29, 197, 138, 46, 152, 111, 47, 43, 27, 1, 19, 42, 56, 67, 101, 129, 89, 105, 121, 91, 91, 101, 116, 105, 111, 162, 147, 150, 183, 171, 171, 180, 170, 169, 179, 171, 169, 183, 175, 173, 189, 184, 181, 196, 191, 188, 195, 191, 188, 192, 188, 185, 199, 195, 192, 200, 196, 193, 192, 188, 185, 191, 187, 184, 201, 196, 193, 200, 195, 192, 194, 189, 186, 196, 191, 188, 208, 204, 201, 205, 201, 198, 213, 209, 206, 224, 220, 217, 222, 221, 219, 222, 221, 219, 224, 223, 221, 223, 222, 220, 229, 229, 229, 233, 233, 233, 238, 238, 238, 240, 240, 240, 240, 240, 240, 240, 240, 240, 241, 241, 241, 242, 242, 242, 242, 242, 242, 242, 242, 242, 243, 243, 243, 244, 244, 244, 244, 244, 244, 245, 245, 245, 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 249, 249, 249, 249, 249, 249, 249, 249, 249, 250, 249, 247, 250, 249, 247, 250, 249, 247, 250, 249, 247, 250, 249, 247, 250, 249, 247, 250, 249, 247, 250, 249, 247, 251, 250, 248, 251, 250, 248, 251, 250, 248, 250, 249, 247, 250, 249, 247, 250, 249, 247, 249, 248, 246, 249, 248, 246, 248, 246, 247, 248, 246, 247, 247, 245, 246, 247, 245, 246, 247, 245, 246, 246, 244, 245, 246, 244, 245, 246, 244, 245, 244, 242, 243, 244, 242, 243, 245, 243, 244, 244, 242, 243, 243, 241, 242, 242, 240, 241, 240, 238, 239, 239, 237, 238, 237, 236, 234, 229, 228, 226, 221, 220, 218, 220, 219, 217, 223, 222, 220, 224, 223, 221, 224, 223, 221, 223, 222, 220, 220, 219, 217, 219, 218, 216, 219, 218, 216, 215, 214, 212, 207, 206, 204, 198, 197, 195, 197, 196, 194, 200, 199, 197, 195, 191, 188, 212, 208, 205, 173, 168, 165, 153, 148, 145, 181, 175, 175, 158, 152, 152, 130, 124, 124, 167, 161, 161, 171, 162, 165, 123, 114, 117, 137, 128, 131, 166, 157, 160, 145, 134, 138, 139, 128, 132, 163, 152, 156, 166, 154, 158, 179, 167, 169, 164, 149, 152, 160, 145, 148, 162, 147, 150, 158, 142, 145, 156, 141, 144, 157, 145, 149, 153, 144, 147, 152, 148, 149, 181, 181, 181, 187, 187, 189, 179, 180, 182, 189, 190, 192, 192, 193, 195, 186, 186, 188, 188, 188, 190, 188, 188, 190, 193, 193, 193, 193, 193, 193, 189, 189, 189, 191, 191, 191, 199, 199, 199, 202, 202, 202, 199, 199, 199, 187, 187, 187, 188, 188, 188, 188, 188, 188, 189, 189, 189, 194, 194, 194, 197, 197, 197, 191, 191, 191, 181, 181, 181, 193, 192, 190, 189, 188, 184, 185, 184, 180, 187, 186, 182, 194, 193, 189, 199, 198, 194, 197, 196, 192, 191, 190, 186, 183, 182, 178, 190, 189, 185, 196, 195, 191, 195, 194, 190, 188, 187, 183, 183, 182, 178, 185, 184, 180, 189, 188, 184, 187, 186, 181, 186, 185, 180, 186, 185, 180, 186, 185, 180, 188, 187, 183, 190, 189, 185, 193, 192, 188, 194, 193, 189, 159, 158, 154, 173, 172, 168, 188, 187, 185, 196, 195, 193, 200, 199, 197, 200, 199, 197, 195, 194, 192, 188, 187, 185, 162, 163, 158, 169, 170, 165, 172, 173, 168, 164, 165, 160, 150, 149, 145, 145, 144, 140, 159, 158, 154, 177, 176, 172, 173, 172, 168, 166, 165, 161, 157, 153, 150, 147, 143, 140, 143, 139, 136, 143, 139, 136, 141, 137, 134, 138, 134, 131, 129, 124, 120, 139, 134, 130, 140, 132, 129, 136, 131, 127, 148, 140, 137, 152, 147, 141, 153, 146, 140, 154, 149, 143, 148, 141, 135, 149, 144, 138, 151, 144, 138, 148, 144, 135, 156, 149, 141, 163, 159, 150, 167, 160, 152, 163, 156, 148, 159, 152, 146, 154, 147, 141, 148, 141, 135, 148, 141, 135, 153, 146, 140, 158, 151, 145, 154, 147, 141, 149, 142, 136, 141, 134, 128, 148, 141, 135, 156, 149, 143, 160, 153, 147, 158, 151, 145, 156, 149, 143, 158, 151, 145, 161, 154, 148, 151, 140, 136, 150, 139, 135, 148, 137, 133, 142, 131, 127, 135, 124, 120, 132, 121, 117, 131, 122, 117, 132, 123, 118, 140, 131, 126, 146, 137, 132, 151, 144, 138, 156, 149, 143, 157, 150, 144, 157, 150, 144, 158, 151, 145, 159, 152, 146, 172, 163, 158, 172, 163, 158, 172, 163, 158, 172, 163, 158, 173, 164, 159, 172, 163, 158, 170, 161, 156, 168, 159, 154, 167, 158, 153, 165, 156, 151, 163, 154, 149, 161, 152, 147, 161, 152, 147, 161, 152, 147, 163, 154, 149, 164, 155, 150, 161, 151, 149, 160, 150, 148, 164, 154, 152, 171, 161, 159, 175, 165, 163, 174, 164, 162, 175, 165, 163, 179, 169, 167, 174, 164, 162, 176, 166, 164, 178, 168, 166, 176, 166, 164, 172, 162, 160, 167, 157, 155, 165, 155, 153, 165, 155, 153, 160, 150, 148, 156, 146, 144, 155, 145, 143, 159, 149, 147, 168, 159, 154, 175, 166, 161, 177, 167, 165, 176, 166, 164, 182, 174, 171, 185, 180, 176, 192, 186, 186, 194, 193, 191, 198, 196, 197, 201, 201, 201, 204, 205, 207, 207, 208, 212, 216, 219, 224, 222, 225, 232, 230, 233, 238, 236, 239, 244, 238, 241, 246, 238, 241, 246, 237, 240, 245, 238, 241, 246, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 242, 246, 249, 242, 246, 249, 243, 247, 248, 243, 247, 248, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 238, 241, 246, 238, 241, 246, 239, 242, 247, 240, 243, 248, 240, 243, 248, 241, 244, 249, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 241, 244, 249, 240, 243, 248, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 236, 239, 244, 234, 237, 242, 232, 235, 240, 231, 234, 239, 228, 229, 233, 225, 226, 228, 220, 221, 223, 217, 219, 218, 216, 216, 214, 215, 215, 213, 213, 212, 208, 210, 209, 204, 213, 210, 205, 211, 208, 203, 209, 206, 201, 205, 202, 197, 204, 199, 195, 202, 197, 193, 202, 197, 193, 202, 197, 193, 195, 190, 186, 195, 190, 186, 196, 191, 187, 196, 191, 187, 195, 190, 186, 193, 188, 184, 192, 187, 183, 191, 186, 182, 183, 178, 174, 182, 177, 173, 182, 177, 173, 184, 179, 175, 187, 182, 178, 189, 184, 180, 188, 183, 179, 187, 182, 178, 188, 183, 179, 188, 183, 179, 187, 182, 178, 186, 181, 177, 186, 181, 177, 188, 183, 179, 189, 184, 180, 190, 185, 181, 193, 188, 184, 191, 186, 182, 187, 182, 178, 181, 176, 172, 175, 170, 166, 168, 163, 159, 162, 157, 153, 159, 154, 150, 166, 159, 153, 155, 148, 142, 149, 142, 136, 157, 150, 144, 167, 160, 154, 171, 164, 158, 168, 163, 157, 166, 161, 155, 158, 153, 147, 165, 160, 154, 162, 157, 151, 143, 138, 132, 124, 121, 114, 124, 121, 114, 140, 137, 130, 153, 150, 143, 153, 145, 142, 160, 152, 149, 153, 145, 142, 136, 131, 127, 125, 120, 116, 119, 114, 110, 122, 119, 114, 136, 133, 128, 133, 130, 125, 135, 132, 127, 136, 131, 127, 128, 123, 119, 118, 110, 107, 114, 106, 103, 127, 119, 116, 146, 138, 135, 152, 148, 139, 139, 136, 127, 122, 119, 112, 107, 106, 101, 118, 117, 113, 151, 150, 148, 159, 155, 156, 134, 129, 133, 117, 108, 113, 130, 119, 125, 142, 130, 134, 138, 126, 130, 136, 124, 126, 143, 133, 132, 126, 116, 115, 86, 76, 74, 86, 72, 69, 126, 106, 95, 141, 109, 84, 138, 96, 58, 156, 105, 52, 175, 117, 54, 182, 123, 55, 191, 133, 60, 179, 123, 49, 186, 134, 58, 193, 146, 66, 190, 148, 66, 178, 140, 57, 166, 134, 49, 163, 135, 51, 158, 142, 57, 133, 136, 55, 87, 105, 31, 66, 92, 29, 60, 92, 43, 29, 60, 28, 0, 18, 0, 0, 5, 0, 0, 1, 4, 2, 0, 6, 3, 0, 9, 1, 1, 11, 0, 2, 11, 0, 4, 10, 0, 4, 7, 2, 4, 3, 3, 5, 4, 1, 2, 6, 0, 2, 7, 0, 2, 7, 0, 2, 7, 0, 1, 6, 0, 1, 6, 0, 0, 5, 0, 0, 5, 0, 3, 8, 0, 3, 8, 0, 2, 7, 0, 2, 7, 0, 3, 8, 1, 4, 9, 3, 6, 11, 7, 6, 12, 12, 4, 15, 0, 0, 5, 0, 24, 12, 27, 82, 50, 60, 135, 79, 78, 155, 83, 97, 165, 80, 124, 173, 84, 139, 158, 76, 173, 170, 89, 210, 192, 108, 213, 183, 95, 213, 176, 85, 223, 180, 88, 219, 172, 84, 221, 173, 88, 231, 187, 98, 237, 190, 100, 240, 179, 88, 238, 164, 65, 238, 153, 37, 228, 139, 19, 214, 133, 18, 205, 141, 44, 168, 127, 63, 40, 28, 2, 20, 47, 64, 91, 130, 163, 119, 143, 169, 98, 105, 123, 99, 89, 100, 136, 119, 125, 174, 162, 164, 178, 168, 167, 181, 173, 171, 185, 177, 175, 191, 186, 183, 200, 195, 192, 201, 197, 194, 198, 194, 191, 201, 197, 194, 195, 191, 188, 188, 184, 181, 193, 189, 186, 203, 198, 195, 194, 189, 186, 186, 181, 178, 194, 189, 186, 208, 204, 201, 207, 203, 200, 211, 207, 204, 219, 215, 212, 220, 219, 217, 221, 220, 218, 223, 222, 220, 227, 226, 224, 229, 229, 229, 233, 233, 233, 238, 238, 238, 240, 240, 240, 240, 240, 240, 240, 240, 240, 241, 241, 241, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 243, 243, 243, 244, 244, 244, 245, 245, 245, 245, 245, 245, 246, 246, 246, 247, 247, 247, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 249, 249, 249, 249, 249, 249, 249, 249, 249, 250, 249, 247, 250, 249, 247, 250, 249, 247, 250, 249, 247, 250, 249, 247, 250, 249, 247, 250, 249, 247, 250, 249, 247, 251, 250, 248, 250, 249, 247, 250, 249, 247, 250, 249, 247, 249, 248, 246, 249, 248, 246, 249, 248, 246, 248, 247, 245, 248, 246, 247, 248, 246, 247, 248, 246, 247, 247, 245, 246, 247, 245, 246, 247, 245, 246, 246, 244, 245, 246, 244, 245, 244, 242, 243, 244, 242, 243, 245, 243, 244, 245, 243, 244, 244, 242, 243, 243, 241, 242, 241, 239, 240, 240, 238, 239, 239, 238, 236, 231, 230, 228, 225, 224, 222, 225, 224, 222, 225, 224, 222, 222, 221, 219, 222, 221, 219, 226, 225, 223, 228, 227, 225, 221, 220, 218, 219, 218, 216, 222, 221, 219, 218, 217, 215, 208, 207, 205, 203, 202, 200, 206, 205, 203, 183, 179, 176, 192, 188, 185, 139, 134, 131, 118, 113, 110, 160, 154, 154, 146, 140, 140, 132, 126, 126, 191, 185, 185, 197, 188, 191, 170, 161, 164, 155, 146, 149, 154, 145, 148, 152, 143, 146, 159, 150, 153, 167, 156, 160, 164, 153, 157, 188, 178, 179, 167, 155, 157, 159, 147, 149, 162, 147, 150, 155, 140, 143, 150, 138, 140, 153, 142, 146, 154, 145, 148, 146, 142, 143, 177, 177, 177, 197, 197, 199, 187, 188, 190, 183, 184, 186, 194, 195, 197, 197, 197, 199, 186, 186, 186, 183, 183, 183, 190, 190, 188, 195, 195, 195, 198, 198, 196, 202, 202, 202, 206, 206, 204, 205, 205, 205, 201, 201, 199, 203, 203, 203, 198, 198, 196, 189, 189, 189, 182, 182, 180, 185, 185, 185, 192, 192, 190, 193, 193, 193, 189, 189, 187, 196, 195, 191, 193, 192, 188, 188, 187, 183, 185, 184, 180, 189, 188, 184, 193, 192, 188, 186, 185, 181, 176, 175, 171, 185, 184, 180, 186, 185, 181, 185, 184, 180, 182, 181, 177, 178, 177, 173, 180, 179, 175, 187, 186, 182, 193, 192, 188, 192, 191, 186, 192, 191, 186, 192, 191, 186, 193, 192, 187, 193, 192, 188, 193, 192, 188, 193, 192, 188, 193, 192, 188, 209, 208, 204, 209, 208, 204, 204, 203, 201, 194, 193, 191, 183, 182, 180, 171, 170, 168, 154, 153, 151, 140, 139, 137, 168, 169, 164, 176, 177, 172, 181, 182, 177, 179, 180, 175, 181, 180, 176, 184, 183, 179, 177, 176, 172, 164, 163, 159, 146, 145, 141, 154, 153, 149, 161, 157, 154, 159, 155, 152, 155, 151, 148, 153, 149, 146, 148, 144, 141, 143, 138, 135, 156, 148, 145, 153, 145, 142, 134, 126, 123, 122, 114, 111, 130, 123, 117, 139, 132, 126, 143, 136, 130, 148, 141, 135, 155, 148, 142, 143, 136, 130, 127, 120, 112, 124, 117, 109, 141, 134, 126, 159, 152, 144, 157, 150, 142, 143, 136, 128, 142, 135, 129, 148, 141, 135, 150, 143, 137, 144, 137, 131, 141, 134, 128, 145, 138, 132, 150, 143, 137, 152, 145, 139, 155, 148, 142, 160, 153, 147, 163, 156, 150, 159, 152, 146, 151, 144, 138, 145, 138, 132, 146, 139, 133, 149, 142, 136, 154, 143, 139, 151, 140, 136, 144, 133, 129, 133, 122, 118, 126, 115, 111, 129, 118, 114, 141, 132, 127, 153, 144, 139, 156, 147, 142, 155, 146, 141, 152, 145, 139, 150, 143, 137, 150, 143, 137, 155, 148, 142, 163, 156, 150, 170, 163, 157, 162, 153, 148, 160, 151, 146, 159, 150, 145, 160, 151, 146, 162, 153, 148, 162, 153, 148, 159, 150, 145, 156, 147, 142, 158, 149, 144, 162, 153, 148, 168, 159, 154, 172, 163, 158, 172, 163, 158, 168, 159, 154, 162, 153, 148, 158, 149, 144, 159, 149, 147, 158, 148, 146, 162, 152, 150, 168, 158, 156, 170, 160, 158, 167, 157, 155, 167, 157, 155, 169, 159, 157, 173, 163, 161, 174, 164, 162, 174, 164, 162, 171, 161, 159, 167, 157, 155, 164, 154, 152, 164, 154, 152, 166, 156, 154, 162, 152, 150, 160, 150, 148, 160, 150, 148, 162, 152, 150, 168, 159, 154, 173, 164, 159, 176, 166, 164, 178, 168, 166, 176, 168, 165, 179, 174, 170, 186, 180, 180, 190, 189, 187, 196, 194, 195, 202, 202, 202, 209, 210, 212, 214, 215, 219, 220, 223, 228, 225, 228, 235, 232, 235, 240, 236, 239, 244, 238, 241, 246, 239, 242, 247, 240, 243, 248, 241, 244, 249, 240, 244, 247, 240, 244, 247, 241, 245, 248, 241, 245, 248, 241, 245, 248, 242, 246, 249, 242, 246, 247, 242, 246, 247, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 238, 241, 246, 238, 241, 246, 239, 242, 247, 240, 243, 248, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 241, 244, 249, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 237, 240, 245, 236, 239, 244, 234, 237, 242, 232, 235, 240, 232, 233, 237, 228, 229, 231, 223, 224, 226, 220, 222, 221, 219, 219, 217, 217, 217, 215, 215, 214, 210, 213, 212, 208, 215, 212, 207, 212, 209, 204, 209, 206, 201, 205, 202, 197, 204, 199, 195, 203, 198, 194, 203, 198, 195, 203, 198, 195, 199, 194, 190, 199, 194, 190, 198, 193, 189, 197, 192, 188, 195, 190, 186, 192, 187, 183, 190, 185, 181, 188, 183, 179, 187, 182, 178, 186, 181, 177, 186, 181, 177, 187, 182, 178, 189, 184, 180, 190, 185, 181, 188, 183, 179, 185, 180, 176, 190, 185, 181, 190, 185, 181, 190, 185, 181, 190, 185, 181, 189, 184, 180, 189, 184, 180, 188, 183, 179, 188, 183, 179, 185, 180, 176, 182, 177, 173, 178, 173, 169, 172, 167, 163, 167, 162, 158, 162, 157, 153, 160, 155, 151, 158, 153, 149, 169, 162, 156, 165, 158, 152, 166, 159, 153, 175, 168, 162, 180, 173, 167, 177, 170, 164, 169, 164, 158, 166, 161, 155, 156, 151, 145, 159, 154, 148, 158, 153, 147, 154, 149, 143, 154, 151, 144, 165, 162, 155, 176, 173, 166, 181, 178, 171, 165, 157, 154, 167, 159, 157, 149, 144, 141, 135, 130, 127, 134, 129, 126, 125, 121, 118, 113, 109, 106, 112, 108, 105, 127, 123, 120, 109, 105, 102, 98, 94, 91, 102, 98, 95, 114, 109, 106, 125, 120, 117, 136, 128, 126, 139, 131, 128, 144, 140, 131, 127, 124, 115, 116, 113, 104, 112, 112, 104, 122, 121, 117, 142, 142, 140, 150, 148, 149, 139, 135, 136, 122, 113, 118, 132, 121, 127, 135, 124, 130, 127, 116, 122, 131, 120, 124, 148, 139, 142, 138, 132, 134, 109, 101, 99, 88, 77, 73, 127, 107, 96, 141, 109, 84, 144, 102, 64, 167, 116, 63, 180, 122, 58, 179, 120, 50, 189, 132, 55, 193, 137, 60, 198, 145, 65, 203, 155, 71, 201, 156, 71, 191, 151, 63, 179, 144, 54, 171, 140, 50, 162, 142, 53, 141, 137, 50, 108, 119, 40, 76, 101, 33, 63, 96, 41, 46, 83, 42, 8, 38, 14, 0, 6, 0, 0, 4, 4, 4, 0, 6, 4, 0, 8, 0, 0, 10, 0, 1, 10, 0, 3, 9, 0, 4, 6, 1, 3, 0, 2, 4, 1, 0, 1, 5, 0, 2, 7, 0, 2, 7, 0, 3, 8, 0, 3, 8, 0, 2, 7, 0, 1, 6, 0, 0, 5, 0, 3, 8, 0, 3, 8, 0, 2, 7, 0, 2, 7, 0, 2, 7, 1, 4, 9, 2, 5, 10, 5, 5, 13, 10, 6, 21, 0, 1, 9, 0, 31, 17, 35, 93, 55, 65, 140, 81, 80, 156, 82, 101, 162, 82, 129, 168, 85, 153, 165, 83, 182, 171, 89, 219, 192, 103, 220, 181, 88, 222, 176, 80, 238, 185, 91, 225, 170, 80, 222, 168, 80, 214, 167, 79, 225, 175, 86, 229, 168, 77, 229, 157, 55, 236, 149, 33, 227, 137, 14, 217, 132, 13, 216, 148, 49, 164, 122, 62, 42, 31, 11, 34, 62, 83, 113, 155, 193, 140, 170, 204, 107, 123, 148, 93, 86, 102, 117, 102, 109, 160, 148, 150, 171, 161, 160, 179, 171, 169, 183, 175, 173, 187, 182, 179, 198, 193, 190, 201, 197, 194, 198, 194, 191, 200, 196, 193, 187, 183, 180, 182, 178, 175, 197, 193, 190, 207, 202, 199, 192, 187, 184, 185, 180, 177, 200, 195, 192, 213, 209, 206, 212, 208, 205, 211, 207, 204, 215, 211, 208, 217, 216, 214, 217, 216, 214, 220, 219, 217, 227, 226, 224, 229, 229, 229, 233, 233, 233, 238, 238, 238, 240, 240, 240, 240, 240, 240, 240, 240, 240, 241, 241, 241, 242, 242, 242, 241, 241, 241, 242, 242, 242, 242, 242, 242, 243, 243, 243, 244, 244, 244, 245, 245, 245, 245, 245, 245, 245, 245, 245, 247, 247, 247, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 249, 249, 249, 249, 249, 249, 249, 249, 249, 250, 249, 247, 250, 249, 247, 250, 249, 247, 250, 249, 247, 250, 249, 247, 250, 249, 247, 250, 249, 247, 250, 249, 247, 250, 249, 247, 249, 248, 246, 249, 248, 246, 249, 248, 246, 248, 247, 245, 248, 247, 245, 248, 247, 245, 247, 246, 244, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 247, 245, 246, 247, 245, 246, 246, 244, 245, 246, 244, 245, 243, 241, 242, 244, 242, 243, 244, 242, 243, 244, 242, 243, 244, 242, 243, 243, 241, 242, 241, 239, 240, 241, 239, 240, 238, 237, 235, 232, 231, 229, 230, 229, 227, 230, 229, 227, 226, 225, 223, 218, 217, 215, 219, 218, 216, 226, 225, 223, 225, 224, 222, 222, 221, 219, 218, 217, 215, 217, 216, 214, 220, 219, 217, 219, 218, 216, 212, 211, 209, 204, 203, 201, 211, 207, 204, 204, 200, 197, 164, 159, 156, 146, 141, 138, 159, 153, 153, 142, 136, 136, 141, 135, 135, 189, 183, 183, 175, 169, 171, 182, 176, 178, 169, 163, 165, 150, 144, 146, 154, 148, 150, 171, 165, 167, 184, 175, 178, 188, 179, 182, 189, 180, 183, 171, 160, 164, 164, 153, 157, 161, 149, 153, 145, 133, 137, 139, 127, 131, 151, 140, 144, 161, 155, 157, 156, 152, 153, 165, 165, 165, 190, 190, 190, 192, 194, 193, 179, 181, 180, 193, 195, 194, 204, 204, 204, 187, 185, 186, 185, 184, 182, 191, 190, 186, 198, 197, 195, 204, 203, 199, 207, 206, 204, 208, 207, 203, 205, 204, 202, 201, 200, 196, 213, 212, 210, 208, 207, 203, 197, 196, 194, 186, 185, 181, 184, 183, 181, 190, 189, 185, 194, 193, 191, 194, 193, 189, 182, 181, 177, 183, 182, 178, 180, 179, 175, 179, 178, 174, 187, 186, 182, 198, 197, 193, 198, 197, 193, 190, 189, 185, 189, 188, 184, 187, 186, 182, 183, 182, 178, 181, 180, 176, 181, 180, 176, 184, 183, 179, 188, 187, 183, 191, 190, 186, 186, 185, 180, 187, 186, 181, 187, 186, 181, 187, 186, 181, 185, 184, 180, 182, 181, 177, 178, 177, 173, 176, 175, 171, 179, 178, 174, 169, 168, 164, 154, 153, 151, 147, 146, 144, 153, 152, 150, 165, 164, 162, 169, 168, 166, 165, 164, 162, 173, 172, 168, 173, 172, 168, 171, 170, 166, 172, 171, 167, 180, 179, 175, 183, 182, 178, 171, 170, 166, 154, 153, 149, 151, 147, 144, 170, 166, 163, 183, 179, 176, 178, 174, 171, 167, 162, 159, 164, 159, 156, 165, 160, 157, 165, 160, 157, 131, 123, 120, 143, 134, 129, 144, 135, 130, 144, 135, 130, 154, 145, 140, 157, 148, 143, 154, 145, 138, 155, 146, 139, 167, 158, 151, 149, 140, 133, 135, 126, 119, 139, 130, 123, 151, 142, 133, 160, 151, 142, 162, 153, 144, 162, 153, 146, 137, 130, 124, 152, 145, 139, 162, 155, 149, 156, 149, 143, 149, 142, 136, 152, 145, 139, 160, 153, 147, 163, 156, 150, 165, 158, 152, 162, 155, 149, 157, 150, 144, 151, 144, 138, 147, 140, 134, 144, 137, 131, 143, 136, 130, 143, 136, 130, 157, 146, 142, 154, 143, 139, 147, 136, 132, 140, 129, 125, 136, 125, 121, 141, 130, 126, 151, 142, 137, 161, 152, 147, 157, 148, 143, 154, 145, 140, 148, 141, 135, 143, 136, 130, 143, 136, 130, 149, 142, 136, 158, 151, 145, 166, 159, 153, 160, 151, 146, 158, 149, 144, 157, 148, 143, 159, 150, 145, 163, 154, 149, 164, 155, 150, 161, 152, 147, 158, 149, 144, 160, 151, 146, 166, 157, 152, 174, 165, 160, 179, 170, 165, 178, 169, 164, 172, 163, 158, 163, 154, 149, 156, 147, 142, 156, 146, 144, 155, 145, 143, 159, 149, 147, 166, 156, 154, 168, 158, 156, 164, 154, 152, 163, 153, 151, 164, 154, 152, 156, 146, 144, 156, 146, 144, 153, 143, 141, 149, 139, 137, 146, 136, 134, 145, 135, 133, 148, 138, 136, 151, 141, 139, 166, 156, 154, 168, 158, 156, 169, 159, 157, 169, 159, 157, 170, 161, 156, 173, 164, 159, 178, 168, 166, 182, 172, 170, 179, 171, 168, 181, 176, 172, 186, 180, 180, 189, 188, 186, 195, 193, 194, 202, 202, 202, 210, 211, 213, 217, 218, 222, 220, 223, 228, 224, 227, 234, 229, 232, 237, 232, 235, 240, 234, 237, 242, 236, 239, 244, 239, 242, 247, 242, 245, 250, 240, 244, 247, 240, 244, 247, 240, 244, 247, 241, 245, 248, 241, 245, 248, 242, 246, 249, 242, 246, 247, 242, 246, 247, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 238, 241, 246, 239, 242, 247, 239, 242, 247, 240, 243, 248, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 238, 241, 246, 237, 240, 245, 235, 238, 243, 234, 237, 242, 235, 236, 240, 231, 232, 236, 226, 227, 229, 223, 224, 226, 222, 222, 222, 220, 220, 218, 218, 217, 213, 215, 214, 210, 215, 212, 207, 213, 210, 205, 209, 206, 201, 205, 202, 197, 204, 199, 195, 203, 198, 194, 203, 198, 195, 204, 199, 196, 204, 199, 195, 204, 199, 195, 202, 197, 193, 199, 194, 190, 196, 191, 187, 192, 187, 183, 188, 183, 179, 186, 181, 177, 191, 186, 182, 190, 185, 181, 189, 184, 180, 190, 185, 181, 191, 186, 182, 191, 186, 182, 188, 183, 179, 185, 180, 176, 192, 187, 183, 192, 187, 183, 192, 187, 183, 192, 187, 183, 190, 185, 181, 188, 183, 179, 186, 181, 177, 184, 179, 175, 175, 170, 166, 174, 169, 165, 173, 168, 164, 172, 167, 163, 173, 168, 164, 176, 171, 167, 179, 174, 170, 181, 176, 172, 183, 176, 170, 178, 171, 165, 175, 168, 162, 175, 168, 162, 172, 165, 159, 169, 162, 156, 170, 165, 159, 175, 170, 164, 156, 151, 145, 151, 146, 140, 144, 139, 133, 142, 137, 131, 149, 146, 139, 157, 154, 147, 154, 151, 144, 145, 142, 135, 149, 144, 141, 144, 136, 134, 119, 114, 111, 110, 105, 102, 129, 125, 122, 136, 132, 129, 126, 122, 119, 123, 119, 116, 135, 131, 128, 130, 126, 123, 132, 128, 125, 135, 131, 128, 134, 129, 126, 138, 133, 130, 153, 145, 143, 160, 155, 151, 149, 146, 137, 125, 123, 111, 132, 132, 122, 159, 159, 151, 150, 151, 145, 124, 125, 120, 125, 124, 122, 141, 139, 140, 132, 126, 130, 142, 133, 138, 143, 132, 138, 137, 128, 133, 148, 139, 144, 168, 162, 166, 160, 155, 159, 131, 125, 125, 81, 70, 66, 120, 102, 90, 141, 111, 85, 157, 115, 75, 189, 138, 83, 201, 143, 79, 195, 137, 64, 207, 148, 72, 205, 148, 69, 206, 151, 69, 206, 156, 71, 204, 158, 70, 200, 156, 67, 186, 149, 58, 173, 140, 47, 158, 135, 42, 146, 137, 46, 126, 131, 47, 87, 109, 36, 70, 104, 43, 65, 103, 56, 24, 57, 26, 0, 10, 0, 3, 9, 5, 1, 0, 4, 3, 0, 7, 0, 0, 10, 0, 1, 10, 0, 3, 8, 0, 4, 6, 1, 3, 2, 1, 3, 0, 0, 2, 5, 0, 1, 6, 0, 3, 8, 0, 3, 8, 0, 3, 8, 0, 3, 8, 0, 2, 7, 0, 1, 6, 0, 3, 8, 0, 3, 8, 0, 2, 7, 0, 2, 7, 0, 2, 7, 0, 3, 8, 2, 5, 10, 2, 5, 14, 7, 9, 24, 0, 3, 9, 0, 37, 17, 38, 99, 57, 67, 143, 78, 80, 157, 79, 102, 161, 81, 129, 164, 82, 162, 170, 87, 185, 169, 84, 217, 186, 93, 216, 174, 76, 223, 175, 75, 241, 189, 90, 224, 167, 77, 217, 161, 74, 218, 166, 80, 231, 177, 87, 231, 170, 77, 232, 161, 57, 237, 152, 33, 225, 136, 10, 216, 130, 9, 217, 147, 51, 149, 108, 54, 45, 38, 22, 54, 80, 103, 129, 171, 213, 145, 180, 220, 108, 129, 160, 93, 90, 109, 113, 100, 109, 145, 135, 136, 162, 152, 151, 174, 166, 164, 178, 170, 168, 182, 177, 174, 192, 187, 184, 196, 192, 189, 195, 191, 188, 198, 194, 191, 182, 178, 175, 177, 173, 170, 199, 195, 192, 212, 207, 204, 192, 187, 184, 186, 181, 178, 208, 203, 200, 218, 214, 211, 216, 212, 209, 211, 207, 204, 212, 208, 205, 215, 214, 212, 214, 213, 211, 216, 215, 213, 225, 224, 222, 229, 229, 229, 233, 233, 233, 238, 238, 238, 240, 240, 240, 240, 240, 240, 240, 240, 240, 241, 241, 241, 242, 242, 242, 241, 241, 241, 241, 241, 241, 242, 242, 242, 243, 243, 243, 244, 244, 244, 244, 244, 244, 245, 245, 245, 245, 245, 245, 247, 247, 247, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 249, 249, 249, 249, 249, 249, 249, 249, 249, 250, 249, 247, 250, 249, 247, 250, 249, 247, 250, 249, 247, 250, 249, 247, 250, 249, 247, 250, 249, 247, 250, 249, 247, 249, 248, 246, 249, 248, 246, 248, 247, 245, 248, 247, 245, 248, 247, 245, 247, 246, 244, 247, 246, 244, 247, 246, 244, 249, 247, 248, 248, 246, 247, 248, 246, 247, 248, 246, 247, 247, 245, 246, 247, 245, 246, 247, 245, 246, 246, 244, 245, 243, 241, 242, 243, 241, 242, 244, 242, 243, 244, 242, 243, 244, 242, 243, 243, 241, 242, 242, 240, 241, 241, 239, 240, 237, 236, 234, 233, 232, 230, 233, 232, 230, 234, 233, 231, 226, 225, 223, 216, 215, 213, 217, 216, 214, 226, 225, 223, 216, 215, 213, 221, 220, 218, 216, 215, 213, 208, 207, 205, 214, 213, 211, 225, 224, 222, 216, 215, 213, 195, 194, 192, 208, 204, 201, 196, 192, 189, 191, 186, 183, 193, 188, 185, 182, 176, 176, 161, 155, 155, 167, 161, 161, 196, 190, 190, 175, 169, 171, 186, 180, 182, 198, 192, 194, 178, 172, 174, 141, 135, 137, 143, 137, 139, 168, 162, 164, 175, 169, 171, 207, 201, 203, 193, 184, 187, 185, 176, 179, 173, 162, 166, 143, 132, 136, 129, 118, 122, 147, 138, 141, 166, 160, 162, 167, 163, 164, 153, 153, 153, 176, 178, 177, 192, 194, 193, 176, 178, 177, 190, 190, 190, 207, 205, 206, 186, 185, 183, 188, 187, 185, 193, 192, 188, 200, 199, 195, 205, 204, 200, 207, 206, 202, 206, 205, 201, 203, 202, 198, 200, 199, 195, 212, 211, 207, 211, 210, 206, 205, 204, 200, 195, 194, 190, 191, 190, 186, 192, 191, 187, 192, 191, 187, 190, 189, 185, 204, 203, 199, 202, 201, 197, 193, 192, 188, 183, 182, 178, 186, 185, 181, 199, 198, 194, 203, 202, 198, 199, 198, 194, 197, 196, 192, 196, 195, 191, 197, 196, 192, 198, 197, 193, 200, 199, 195, 199, 198, 194, 195, 194, 190, 191, 190, 186, 195, 194, 189, 197, 196, 191, 198, 197, 192, 199, 198, 193, 196, 195, 191, 192, 191, 187, 187, 186, 182, 184, 183, 179, 181, 180, 176, 171, 170, 166, 158, 157, 155, 156, 155, 153, 170, 169, 167, 186, 185, 183, 189, 188, 186, 184, 183, 181, 168, 167, 163, 160, 159, 155, 153, 152, 148, 152, 151, 147, 157, 156, 152, 164, 163, 159, 171, 170, 166, 174, 173, 169, 169, 165, 162, 166, 162, 159, 157, 153, 150, 152, 148, 145, 162, 157, 154, 174, 169, 166, 173, 168, 165, 162, 157, 153, 160, 150, 148, 164, 155, 150, 150, 141, 136, 133, 124, 119, 133, 124, 119, 140, 131, 126, 152, 143, 136, 167, 158, 151, 161, 152, 145, 155, 146, 139, 163, 154, 147, 175, 166, 159, 161, 152, 143, 132, 123, 114, 122, 113, 104, 133, 124, 115, 120, 113, 107, 135, 128, 122, 146, 139, 133, 145, 138, 132, 143, 136, 130, 147, 140, 134, 149, 142, 136, 146, 139, 133, 157, 150, 144, 149, 142, 136, 143, 136, 130, 146, 139, 133, 157, 150, 144, 167, 160, 154, 170, 163, 157, 169, 160, 155, 148, 137, 133, 147, 136, 132, 146, 135, 131, 145, 134, 130, 144, 133, 129, 144, 133, 129, 143, 134, 129, 142, 133, 128, 147, 138, 133, 146, 137, 132, 144, 137, 131, 141, 134, 128, 140, 133, 127, 142, 135, 129, 147, 140, 134, 152, 145, 139, 149, 140, 135, 148, 139, 134, 148, 139, 134, 153, 144, 139, 160, 151, 146, 163, 154, 149, 162, 153, 148, 159, 150, 145, 173, 164, 159, 175, 166, 161, 178, 169, 164, 179, 170, 165, 177, 168, 163, 173, 164, 159, 167, 158, 153, 163, 154, 149, 157, 147, 145, 157, 147, 145, 161, 151, 149, 169, 159, 157, 171, 161, 159, 167, 157, 155, 166, 156, 154, 168, 158, 156, 160, 150, 148, 158, 148, 146, 155, 145, 143, 150, 140, 138, 147, 137, 135, 148, 138, 136, 153, 143, 141, 158, 148, 146, 170, 160, 158, 174, 164, 162, 176, 166, 164, 175, 165, 163, 173, 164, 159, 174, 165, 160, 180, 170, 168, 186, 176, 174, 188, 180, 177, 188, 183, 179, 190, 184, 184, 190, 189, 187, 193, 191, 192, 199, 199, 199, 207, 208, 210, 213, 214, 218, 217, 220, 225, 220, 223, 230, 224, 227, 232, 226, 229, 234, 228, 231, 236, 231, 234, 239, 235, 238, 243, 239, 242, 247, 240, 244, 247, 240, 244, 247, 240, 244, 247, 241, 245, 248, 241, 245, 248, 241, 245, 248, 242, 246, 247, 242, 246, 247, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 239, 242, 247, 240, 243, 248, 241, 244, 249, 242, 245, 250, 243, 246, 251, 242, 245, 250, 242, 245, 250, 241, 244, 249, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 239, 242, 247, 237, 240, 245, 236, 239, 244, 234, 237, 242, 233, 234, 238, 231, 232, 236, 227, 228, 230, 223, 224, 226, 220, 220, 220, 217, 217, 215, 217, 216, 212, 216, 215, 211, 215, 212, 207, 212, 209, 204, 207, 204, 199, 203, 200, 195, 202, 197, 194, 203, 198, 195, 205, 200, 197, 206, 201, 198, 204, 199, 195, 202, 197, 193, 199, 194, 190, 195, 190, 186, 191, 186, 182, 188, 183, 179, 187, 182, 178, 186, 181, 177, 191, 186, 182, 190, 185, 181, 189, 184, 180, 188, 183, 179, 190, 185, 181, 193, 188, 184, 196, 191, 187, 198, 193, 189, 195, 190, 186, 196, 191, 187, 197, 192, 188, 197, 192, 188, 194, 189, 185, 189, 184, 180, 184, 179, 175, 181, 176, 172, 177, 172, 168, 176, 171, 167, 179, 174, 170, 180, 175, 171, 178, 173, 169, 175, 170, 166, 180, 175, 171, 188, 183, 179, 184, 177, 171, 176, 169, 163, 167, 160, 154, 164, 157, 151, 166, 159, 153, 170, 163, 157, 169, 164, 158, 169, 164, 158, 154, 149, 143, 154, 149, 143, 152, 147, 141, 146, 141, 135, 139, 136, 129, 137, 134, 127, 140, 137, 130, 144, 141, 134, 148, 143, 140, 137, 132, 129, 128, 123, 120, 124, 119, 116, 120, 116, 113, 117, 113, 110, 114, 113, 109, 117, 116, 112, 139, 138, 134, 147, 146, 142, 149, 145, 142, 143, 139, 136, 149, 144, 141, 159, 154, 151, 154, 149, 146, 139, 134, 130, 133, 130, 121, 159, 157, 145, 173, 173, 163, 157, 157, 149, 125, 126, 120, 112, 114, 109, 124, 124, 122, 140, 139, 137, 157, 151, 153, 146, 140, 142, 133, 124, 129, 128, 119, 124, 140, 133, 140, 157, 152, 158, 152, 147, 153, 131, 127, 128, 76, 66, 64, 91, 73, 61, 165, 135, 109, 167, 128, 87, 180, 129, 74, 219, 162, 95, 203, 145, 72, 223, 164, 88, 221, 164, 85, 222, 167, 85, 205, 153, 69, 203, 156, 68, 196, 151, 60, 179, 140, 47, 179, 144, 50, 162, 136, 43, 161, 144, 54, 138, 136, 51, 99, 118, 39, 75, 106, 38, 64, 103, 48, 43, 80, 39, 12, 35, 9, 0, 4, 0, 8, 8, 6, 0, 0, 4, 0, 0, 7, 0, 1, 9, 0, 4, 9, 0, 3, 4, 0, 1, 0, 2, 4, 3, 0, 4, 7, 0, 3, 8, 0, 3, 8, 0, 2, 7, 0, 2, 7, 0, 1, 6, 0, 1, 6, 0, 1, 6, 0, 2, 7, 0, 2, 7, 0, 2, 7, 0, 2, 7, 0, 3, 8, 0, 3, 8, 0, 3, 8, 0, 5, 11, 4, 12, 23, 0, 8, 5, 7, 56, 26, 55, 124, 69, 61, 141, 68, 57, 132, 49, 85, 143, 59, 126, 160, 76, 160, 165, 81, 188, 172, 84, 209, 179, 83, 217, 178, 77, 222, 179, 77, 228, 180, 82, 223, 172, 81, 213, 159, 71, 231, 175, 88, 246, 187, 97, 253, 190, 93, 244, 173, 65, 221, 141, 18, 198, 113, 0, 200, 117, 0, 210, 144, 50, 161, 123, 78, 33, 26, 20, 79, 100, 127, 140, 177, 221, 136, 173, 217, 130, 156, 191, 114, 115, 135, 139, 128, 136, 144, 134, 135, 164, 154, 153, 168, 160, 158, 169, 161, 159, 185, 180, 177, 201, 196, 193, 199, 195, 192, 194, 190, 187, 182, 178, 175, 181, 177, 174, 187, 183, 180, 197, 193, 190, 203, 198, 195, 203, 198, 195, 208, 203, 200, 217, 212, 209, 205, 201, 198, 203, 199, 196, 209, 205, 202, 220, 216, 213, 221, 220, 218, 218, 217, 215, 221, 220, 218, 229, 228, 226, 235, 235, 235, 236, 236, 236, 237, 237, 237, 239, 239, 239, 240, 240, 240, 242, 242, 242, 243, 243, 243, 244, 244, 244, 245, 245, 245, 245, 245, 245, 245, 245, 245, 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247, 247, 247, 247, 247, 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 250, 249, 247, 250, 249, 247, 250, 249, 247, 250, 249, 247, 249, 248, 246, 249, 248, 246, 249, 248, 246, 248, 247, 245, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 250, 248, 249, 249, 247, 248, 248, 246, 247, 247, 245, 246, 247, 245, 246, 248, 246, 247, 249, 247, 248, 250, 248, 249, 245, 243, 244, 245, 243, 244, 245, 243, 244, 244, 242, 243, 243, 241, 242, 242, 240, 241, 242, 240, 241, 241, 239, 240, 239, 239, 237, 239, 239, 237, 237, 237, 235, 234, 234, 232, 230, 230, 228, 226, 226, 224, 222, 222, 220, 220, 220, 218, 228, 228, 226, 223, 223, 221, 215, 215, 213, 211, 211, 209, 215, 215, 213, 220, 220, 218, 216, 216, 214, 209, 208, 206, 207, 203, 200, 195, 190, 187, 208, 204, 201, 192, 188, 185, 184, 180, 179, 167, 163, 162, 136, 132, 131, 171, 167, 166, 188, 184, 185, 199, 195, 196, 185, 181, 182, 180, 176, 177, 160, 156, 157, 142, 138, 139, 166, 162, 163, 175, 171, 172, 198, 194, 195, 210, 206, 207, 211, 205, 207, 194, 185, 188, 173, 164, 167, 160, 151, 154, 152, 143, 146, 141, 137, 138, 155, 153, 154, 161, 161, 161, 175, 177, 176, 188, 190, 189, 192, 192, 192, 188, 188, 188, 187, 185, 186, 191, 187, 186, 198, 197, 195, 197, 196, 192, 197, 196, 192, 198, 197, 193, 201, 200, 196, 205, 204, 200, 208, 207, 203, 210, 209, 205, 205, 204, 200, 212, 211, 207, 219, 218, 214, 220, 219, 215, 214, 213, 209, 207, 206, 202, 202, 201, 197, 201, 200, 196, 204, 203, 199, 204, 203, 199, 204, 203, 199, 202, 201, 197, 200, 199, 195, 197, 196, 192, 194, 193, 189, 193, 192, 188, 198, 197, 193, 193, 192, 188, 190, 189, 185, 194, 193, 189, 201, 200, 196, 203, 202, 198, 196, 195, 191, 188, 187, 183, 184, 183, 178, 170, 169, 164, 162, 161, 156, 170, 169, 164, 184, 183, 179, 192, 191, 187, 193, 192, 188, 192, 191, 187, 191, 190, 186, 192, 191, 187, 186, 185, 183, 173, 172, 170, 163, 162, 160, 164, 163, 161, 172, 171, 169, 179, 178, 176, 165, 164, 160, 156, 155, 151, 159, 158, 154, 163, 162, 158, 155, 151, 148, 148, 144, 141, 148, 144, 141, 144, 140, 137, 137, 133, 130, 152, 148, 145, 159, 154, 151, 162, 157, 154, 166, 161, 158, 152, 147, 144, 141, 136, 133, 151, 146, 142, 144, 134, 132, 148, 139, 134, 142, 133, 128, 144, 135, 130, 164, 155, 150, 172, 163, 158, 158, 149, 142, 146, 137, 130, 156, 147, 140, 151, 142, 135, 142, 133, 126, 133, 124, 117, 126, 117, 108, 122, 113, 104, 120, 111, 102, 120, 111, 102, 119, 110, 105, 129, 120, 115, 150, 141, 136, 167, 158, 153, 165, 156, 151, 151, 142, 137, 144, 135, 130, 147, 138, 133, 152, 143, 138, 152, 143, 138, 155, 146, 141, 162, 153, 148, 171, 162, 157, 175, 166, 161, 173, 164, 159, 170, 161, 156, 152, 141, 137, 145, 134, 130, 139, 128, 124, 138, 127, 123, 136, 125, 121, 134, 123, 119, 135, 126, 121, 140, 131, 126, 140, 131, 126, 139, 130, 125, 139, 132, 126, 144, 137, 131, 151, 144, 138, 154, 147, 141, 152, 145, 139, 148, 141, 135, 147, 138, 133, 151, 142, 137, 148, 139, 134, 142, 133, 128, 146, 137, 132, 160, 151, 146, 168, 159, 154, 166, 157, 152, 173, 164, 159, 172, 163, 158, 169, 160, 155, 162, 153, 148, 153, 144, 139, 144, 135, 130, 139, 130, 125, 138, 129, 124, 144, 134, 132, 154, 144, 142, 168, 158, 156, 174, 164, 162, 172, 162, 160, 167, 157, 155, 162, 152, 150, 161, 151, 149, 166, 156, 154, 160, 150, 148, 150, 140, 138, 144, 134, 132, 145, 135, 133, 153, 143, 141, 164, 154, 152, 172, 162, 160, 169, 159, 157, 170, 160, 158, 172, 162, 160, 172, 162, 160, 173, 164, 159, 176, 167, 162, 182, 172, 170, 186, 176, 174, 189, 181, 178, 190, 185, 181, 193, 187, 187, 193, 192, 190, 195, 193, 194, 198, 198, 198, 202, 203, 205, 207, 208, 212, 215, 218, 223, 217, 220, 227, 220, 223, 228, 224, 227, 232, 228, 231, 236, 231, 234, 239, 232, 235, 240, 233, 236, 241, 239, 243, 246, 239, 243, 246, 240, 244, 247, 241, 245, 248, 242, 246, 249, 242, 246, 249, 243, 247, 248, 243, 247, 248, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 239, 242, 247, 240, 243, 248, 241, 244, 249, 242, 245, 250, 243, 246, 251, 242, 245, 250, 242, 245, 250, 241, 244, 249, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 239, 242, 247, 237, 240, 245, 236, 239, 244, 234, 237, 242, 233, 234, 238, 231, 232, 236, 227, 228, 232, 223, 224, 226, 220, 220, 220, 218, 218, 218, 217, 216, 214, 216, 215, 211, 215, 211, 208, 213, 210, 205, 209, 206, 201, 205, 202, 197, 204, 199, 196, 203, 198, 195, 203, 198, 195, 204, 199, 196, 207, 202, 198, 205, 200, 196, 202, 197, 193, 200, 195, 191, 197, 192, 188, 196, 191, 187, 195, 190, 186, 195, 190, 186, 190, 185, 181, 190, 185, 181, 191, 186, 182, 192, 187, 183, 195, 190, 186, 197, 192, 188, 200, 195, 191, 202, 197, 193, 198, 193, 189, 199, 194, 190, 199, 194, 190, 198, 193, 189, 195, 190, 186, 189, 184, 180, 184, 179, 175, 181, 176, 172, 183, 178, 174, 183, 178, 174, 187, 182, 178, 190, 185, 181, 187, 182, 178, 182, 177, 173, 183, 178, 174, 188, 183, 179, 192, 185, 179, 184, 177, 171, 174, 167, 161, 168, 161, 155, 166, 159, 153, 165, 158, 152, 161, 156, 150, 159, 154, 148, 170, 165, 159, 160, 155, 149, 150, 145, 139, 149, 144, 138, 153, 150, 143, 156, 153, 146, 152, 149, 142, 146, 143, 136, 132, 127, 124, 124, 119, 116, 118, 113, 110, 117, 113, 110, 118, 114, 111, 120, 116, 113, 124, 123, 119, 131, 130, 126, 140, 139, 135, 150, 149, 145, 156, 152, 149, 151, 147, 144, 154, 149, 146, 159, 154, 151, 152, 147, 144, 139, 134, 130, 146, 143, 134, 154, 151, 142, 151, 151, 141, 137, 137, 129, 124, 125, 119, 130, 133, 126, 151, 152, 147, 168, 167, 165, 166, 162, 163, 154, 148, 150, 140, 131, 136, 122, 116, 120, 121, 116, 122, 146, 141, 147, 146, 144, 149, 120, 116, 117, 134, 126, 123, 119, 103, 90, 162, 135, 108, 170, 131, 90, 175, 126, 70, 219, 162, 95, 217, 159, 86, 205, 146, 70, 215, 158, 79, 220, 165, 83, 210, 155, 72, 212, 162, 75, 206, 161, 70, 190, 149, 57, 189, 153, 59, 172, 143, 49, 171, 148, 55, 144, 137, 47, 119, 131, 49, 89, 115, 42, 61, 97, 35, 54, 91, 40, 39, 63, 27, 1, 15, 0, 0, 3, 0, 0, 2, 0, 0, 3, 6, 0, 2, 8, 0, 3, 8, 0, 5, 8, 0, 3, 4, 0, 1, 3, 0, 4, 7, 0, 3, 8, 0, 3, 8, 0, 2, 7, 0, 2, 7, 0, 2, 7, 0, 1, 6, 0, 1, 6, 0, 2, 7, 0, 2, 7, 0, 2, 7, 0, 3, 8, 0, 3, 8, 0, 3, 8, 1, 4, 9, 0, 6, 9, 0, 4, 5, 0, 10, 0, 12, 63, 22, 64, 130, 66, 81, 156, 74, 86, 156, 68, 116, 166, 79, 149, 177, 92, 177, 177, 89, 197, 178, 86, 209, 179, 81, 217, 179, 80, 224, 182, 84, 229, 185, 90, 231, 184, 94, 230, 178, 92, 245, 185, 97, 242, 179, 86, 234, 169, 69, 231, 161, 50, 225, 147, 23, 209, 130, 3, 198, 119, 1, 183, 121, 34, 122, 89, 54, 52, 47, 51, 113, 130, 160, 148, 181, 226, 139, 177, 222, 136, 164, 201, 106, 109, 128, 114, 104, 112, 130, 119, 123, 153, 143, 142, 169, 161, 159, 182, 174, 172, 198, 193, 190, 200, 195, 192, 187, 183, 180, 179, 175, 172, 179, 175, 172, 186, 182, 179, 192, 188, 185, 193, 189, 186, 198, 193, 190, 207, 202, 199, 212, 207, 204, 213, 208, 205, 206, 202, 199, 206, 202, 199, 212, 208, 205, 219, 215, 212, 217, 216, 214, 214, 213, 211, 220, 219, 217, 231, 230, 228, 236, 236, 236, 236, 236, 236, 237, 237, 237, 239, 239, 239, 240, 240, 240, 242, 242, 242, 243, 243, 243, 244, 244, 244, 244, 244, 244, 244, 244, 244, 245, 245, 245, 245, 245, 245, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 250, 249, 247, 250, 249, 247, 250, 249, 247, 249, 248, 246, 249, 248, 246, 249, 248, 246, 248, 247, 245, 248, 247, 245, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 250, 248, 249, 249, 247, 248, 248, 246, 247, 247, 245, 246, 247, 245, 246, 248, 246, 247, 249, 247, 248, 250, 248, 249, 247, 245, 246, 247, 245, 246, 247, 245, 246, 246, 244, 245, 245, 243, 244, 244, 242, 243, 244, 242, 243, 243, 241, 242, 240, 240, 238, 240, 240, 238, 238, 238, 236, 235, 235, 233, 232, 232, 230, 228, 228, 226, 224, 224, 222, 222, 222, 220, 225, 225, 223, 223, 223, 221, 218, 218, 216, 213, 213, 211, 215, 215, 213, 220, 220, 218, 218, 218, 216, 213, 212, 210, 222, 218, 215, 211, 206, 203, 199, 195, 192, 178, 174, 171, 172, 168, 167, 172, 168, 167, 157, 153, 152, 162, 158, 157, 173, 169, 170, 185, 181, 182, 179, 175, 176, 182, 178, 179, 170, 166, 167, 155, 153, 154, 179, 175, 176, 186, 184, 185, 192, 190, 191, 204, 202, 203, 210, 206, 207, 200, 194, 196, 187, 181, 183, 179, 173, 175, 171, 165, 167, 163, 159, 160, 166, 164, 165, 166, 166, 166, 174, 176, 175, 189, 191, 190, 198, 198, 198, 196, 194, 195, 192, 188, 189, 189, 185, 184, 182, 181, 177, 186, 185, 181, 192, 191, 187, 198, 197, 193, 203, 202, 198, 205, 204, 200, 205, 204, 200, 204, 203, 199, 201, 200, 196, 205, 204, 200, 207, 206, 202, 206, 205, 201, 202, 201, 197, 199, 198, 194, 199, 198, 194, 201, 200, 196, 208, 207, 203, 209, 208, 204, 209, 208, 204, 210, 209, 205, 209, 208, 204, 208, 207, 203, 207, 206, 202, 206, 205, 201, 197, 196, 192, 200, 199, 195, 203, 202, 198, 201, 200, 196, 197, 196, 192, 194, 193, 189, 194, 193, 189, 196, 195, 191, 183, 182, 177, 184, 183, 178, 188, 187, 182, 193, 192, 187, 192, 191, 187, 187, 186, 182, 185, 184, 180, 187, 186, 182, 194, 193, 189, 201, 200, 196, 197, 196, 194, 181, 180, 178, 166, 165, 163, 162, 161, 159, 159, 158, 156, 156, 155, 153, 169, 168, 164, 164, 163, 159, 161, 160, 156, 145, 144, 140, 125, 121, 118, 124, 120, 117, 140, 136, 133, 149, 145, 142, 139, 135, 132, 165, 161, 158, 158, 153, 150, 133, 128, 125, 140, 135, 132, 155, 150, 147, 142, 137, 134, 123, 115, 113, 126, 116, 114, 131, 122, 117, 143, 134, 129, 166, 157, 152, 173, 164, 159, 148, 139, 134, 128, 119, 112, 133, 124, 117, 144, 135, 128, 140, 131, 124, 134, 125, 118, 131, 122, 115, 133, 124, 115, 140, 131, 122, 149, 140, 131, 155, 146, 139, 148, 139, 134, 150, 141, 136, 156, 147, 142, 161, 152, 147, 156, 147, 142, 147, 138, 133, 149, 140, 135, 158, 149, 144, 170, 161, 156, 166, 157, 152, 162, 153, 148, 161, 152, 147, 162, 153, 148, 162, 153, 148, 159, 150, 145, 155, 146, 141, 158, 147, 143, 155, 144, 140, 154, 143, 139, 151, 140, 136, 143, 132, 128, 137, 126, 122, 138, 129, 124, 146, 137, 132, 153, 144, 139, 154, 145, 140, 156, 149, 143, 161, 154, 148, 165, 158, 152, 167, 160, 154, 165, 158, 152, 162, 155, 149, 161, 152, 147, 162, 153, 148, 155, 146, 141, 144, 135, 130, 144, 135, 130, 157, 148, 143, 169, 160, 155, 172, 163, 158, 170, 161, 156, 171, 162, 157, 170, 161, 156, 165, 156, 151, 159, 150, 145, 153, 144, 139, 150, 141, 136, 149, 140, 135, 149, 139, 137, 155, 145, 143, 162, 152, 150, 166, 156, 154, 167, 157, 155, 166, 156, 154, 165, 155, 153, 165, 155, 153, 160, 150, 148, 154, 144, 142, 147, 137, 135, 143, 133, 131, 144, 134, 132, 152, 142, 140, 161, 151, 149, 167, 157, 155, 171, 161, 159, 172, 162, 160, 173, 163, 161, 172, 162, 160, 171, 162, 157, 173, 164, 159, 177, 167, 165, 180, 170, 168, 181, 173, 170, 183, 178, 174, 188, 182, 182, 190, 189, 187, 195, 193, 194, 201, 201, 201, 207, 208, 210, 213, 214, 218, 214, 217, 222, 216, 219, 226, 220, 223, 228, 224, 227, 232, 228, 231, 236, 231, 234, 239, 232, 235, 240, 233, 236, 241, 238, 242, 245, 239, 243, 246, 239, 243, 246, 240, 244, 247, 241, 245, 248, 242, 246, 249, 242, 246, 247, 243, 247, 248, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 239, 242, 247, 240, 243, 248, 241, 244, 249, 242, 245, 250, 243, 246, 251, 242, 245, 250, 242, 245, 250, 241, 244, 249, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 239, 242, 247, 237, 240, 245, 236, 239, 244, 234, 237, 242, 233, 234, 239, 231, 232, 236, 227, 228, 232, 223, 224, 226, 221, 221, 221, 218, 218, 218, 217, 216, 214, 216, 215, 211, 216, 212, 209, 214, 210, 207, 212, 208, 205, 209, 205, 202, 207, 202, 199, 204, 199, 196, 201, 196, 193, 200, 195, 192, 199, 194, 190, 198, 193, 189, 197, 192, 188, 196, 191, 187, 195, 190, 186, 195, 190, 186, 196, 191, 187, 196, 191, 187, 191, 186, 182, 193, 188, 184, 195, 190, 186, 198, 193, 189, 201, 196, 192, 202, 197, 193, 203, 198, 194, 203, 198, 194, 199, 194, 190, 200, 195, 191, 201, 196, 192, 199, 194, 190, 196, 191, 187, 191, 186, 182, 185, 180, 176, 182, 177, 173, 178, 173, 169, 178, 173, 169, 182, 177, 173, 185, 180, 176, 182, 177, 173, 174, 169, 165, 172, 167, 163, 174, 169, 165, 173, 166, 160, 169, 162, 156, 165, 158, 152, 164, 157, 151, 166, 159, 153, 169, 162, 156, 168, 163, 157, 168, 163, 157, 170, 165, 159, 162, 157, 151, 154, 149, 143, 156, 151, 145, 163, 160, 153, 168, 165, 158, 167, 164, 157, 162, 159, 152, 151, 146, 143, 145, 140, 137, 139, 135, 132, 136, 132, 129, 133, 129, 126, 130, 129, 125, 135, 134, 130, 144, 143, 139, 150, 149, 145, 159, 158, 154, 162, 161, 157, 155, 154, 150, 155, 151, 148, 159, 155, 152, 158, 153, 150, 151, 146, 142, 181, 176, 170, 171, 168, 161, 152, 152, 144, 138, 138, 130, 137, 138, 132, 152, 153, 147, 169, 168, 164, 176, 175, 171, 173, 169, 168, 164, 160, 159, 157, 151, 153, 134, 128, 132, 126, 121, 127, 167, 162, 168, 182, 180, 185, 146, 144, 145, 107, 102, 98, 64, 50, 37, 103, 77, 50, 173, 136, 94, 193, 144, 88, 205, 150, 85, 224, 165, 95, 219, 160, 84, 208, 151, 72, 217, 162, 80, 212, 157, 74, 218, 168, 81, 214, 167, 79, 198, 157, 67, 197, 160, 69, 183, 149, 59, 175, 149, 56, 154, 139, 48, 140, 144, 59, 110, 129, 50, 70, 100, 30, 78, 109, 49, 75, 101, 53, 31, 48, 14, 0, 5, 0, 0, 4, 0, 0, 5, 3, 0, 4, 6, 0, 3, 9, 0, 6, 9, 0, 4, 7, 0, 0, 4, 0, 3, 8, 0, 3, 8, 0, 3, 8, 0, 3, 8, 0, 2, 7, 0, 2, 7, 0, 2, 7, 0, 1, 6, 0, 2, 7, 0, 2, 7, 0, 2, 7, 0, 3, 8, 0, 3, 8, 1, 4, 9, 1, 4, 9, 0, 6, 6, 0, 5, 0, 3, 29, 2, 40, 87, 33, 84, 142, 68, 99, 163, 76, 110, 167, 73, 135, 171, 83, 158, 172, 84, 196, 186, 97, 202, 177, 85, 209, 175, 78, 217, 177, 81, 221, 180, 88, 227, 183, 96, 234, 189, 106, 246, 194, 110, 243, 179, 91, 234, 166, 69, 225, 156, 52, 227, 156, 42, 232, 157, 32, 226, 151, 26, 209, 136, 25, 178, 122, 45, 68, 44, 20, 67, 67, 79, 135, 150, 183, 141, 168, 213, 133, 170, 215, 136, 166, 202, 95, 98, 115, 88, 78, 86, 109, 98, 102, 129, 119, 120, 152, 143, 144, 179, 170, 171, 198, 192, 192, 193, 187, 187, 176, 172, 171, 174, 170, 169, 176, 172, 171, 189, 185, 184, 194, 190, 189, 188, 184, 183, 193, 187, 187, 207, 201, 201, 213, 207, 207, 208, 202, 202, 207, 203, 200, 210, 206, 203, 215, 211, 208, 217, 213, 210, 211, 210, 208, 209, 208, 206, 219, 218, 216, 233, 232, 230, 237, 237, 237, 237, 237, 237, 238, 238, 238, 239, 239, 239, 241, 241, 241, 242, 242, 242, 243, 243, 243, 243, 243, 243, 243, 243, 243, 244, 244, 244, 244, 244, 244, 244, 244, 244, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 250, 249, 247, 250, 249, 247, 250, 249, 247, 249, 248, 246, 249, 248, 246, 248, 247, 245, 248, 247, 245, 248, 247, 245, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 250, 248, 249, 249, 247, 248, 248, 246, 247, 247, 245, 246, 247, 245, 246, 248, 246, 247, 249, 247, 248, 250, 248, 249, 249, 247, 248, 249, 247, 248, 248, 246, 247, 247, 245, 246, 247, 245, 246, 246, 244, 245, 245, 243, 244, 245, 243, 244, 241, 241, 239, 241, 241, 239, 240, 240, 238, 238, 238, 236, 235, 235, 233, 231, 231, 229, 228, 228, 226, 226, 226, 224, 223, 223, 221, 224, 224, 222, 222, 222, 220, 217, 217, 215, 215, 215, 213, 218, 218, 216, 218, 218, 216, 216, 215, 213, 212, 208, 205, 214, 209, 206, 188, 184, 181, 168, 164, 161, 159, 155, 154, 172, 168, 167, 191, 187, 186, 175, 171, 170, 165, 163, 164, 176, 174, 175, 178, 176, 177, 186, 184, 185, 181, 179, 180, 171, 171, 171, 186, 184, 185, 192, 192, 192, 194, 194, 196, 203, 203, 205, 210, 208, 211, 209, 204, 208, 203, 198, 202, 198, 193, 197, 190, 186, 187, 182, 178, 179, 183, 181, 182, 174, 174, 174, 171, 173, 170, 181, 183, 180, 194, 194, 192, 197, 196, 194, 195, 191, 190, 191, 187, 186, 179, 178, 174, 183, 182, 178, 188, 187, 183, 194, 193, 189, 200, 199, 195, 203, 202, 198, 205, 204, 200, 206, 205, 201, 205, 204, 200, 205, 204, 200, 204, 203, 199, 201, 200, 196, 199, 198, 194, 201, 200, 196, 206, 205, 201, 210, 209, 205, 199, 198, 194, 201, 200, 196, 205, 204, 200, 209, 208, 204, 212, 211, 207, 215, 214, 210, 217, 216, 212, 217, 216, 212, 210, 209, 205, 212, 211, 207, 213, 212, 208, 208, 207, 203, 199, 198, 194, 191, 190, 186, 188, 187, 183, 187, 186, 182, 194, 193, 188, 195, 194, 189, 198, 197, 192, 201, 200, 195, 193, 192, 188, 179, 178, 174, 168, 167, 163, 165, 164, 160, 168, 167, 163, 180, 179, 175, 180, 179, 177, 164, 163, 161, 156, 155, 153, 160, 159, 157, 160, 159, 157, 152, 151, 149, 161, 160, 156, 169, 168, 164, 179, 175, 172, 169, 165, 162, 155, 151, 148, 163, 159, 156, 178, 174, 171, 178, 174, 171, 158, 153, 150, 164, 159, 156, 161, 156, 153, 159, 154, 151, 163, 158, 155, 159, 154, 151, 157, 149, 147, 160, 152, 150, 188, 178, 176, 173, 163, 161, 152, 142, 140, 139, 129, 127, 126, 117, 112, 110, 101, 96, 118, 109, 104, 149, 140, 135, 151, 142, 137, 146, 137, 132, 141, 132, 125, 139, 130, 123, 145, 136, 129, 156, 147, 140, 169, 160, 153, 178, 169, 162, 172, 163, 158, 171, 162, 157, 172, 163, 158, 172, 163, 158, 168, 159, 154, 164, 155, 150, 168, 159, 154, 177, 168, 163, 163, 154, 149, 160, 151, 146, 157, 148, 143, 157, 148, 143, 159, 150, 145, 161, 152, 147, 161, 152, 147, 160, 151, 146, 167, 156, 152, 160, 149, 145, 155, 144, 140, 152, 141, 137, 148, 137, 133, 142, 131, 127, 139, 130, 125, 141, 132, 127, 148, 139, 134, 153, 144, 139, 158, 151, 145, 161, 154, 148, 161, 154, 148, 160, 153, 147, 159, 152, 146, 159, 152, 146, 167, 158, 153, 169, 160, 155, 164, 155, 150, 152, 143, 138, 147, 138, 133, 153, 144, 139, 162, 153, 148, 166, 157, 152, 169, 160, 155, 170, 161, 156, 169, 160, 155, 165, 156, 151, 160, 151, 146, 154, 145, 140, 152, 143, 138, 152, 143, 138, 162, 152, 150, 160, 150, 148, 159, 149, 147, 159, 149, 147, 162, 152, 150, 164, 154, 152, 164, 154, 152, 163, 153, 151, 162, 152, 150, 159, 149, 147, 155, 145, 143, 153, 143, 141, 156, 146, 144, 161, 151, 149, 168, 158, 156, 172, 162, 160, 173, 163, 161, 174, 164, 162, 174, 164, 162, 172, 162, 160, 170, 161, 156, 170, 161, 156, 173, 163, 161, 176, 166, 164, 177, 169, 166, 180, 175, 171, 187, 181, 181, 191, 190, 188, 198, 196, 197, 206, 206, 206, 214, 215, 217, 220, 221, 225, 217, 220, 225, 219, 222, 229, 222, 225, 230, 226, 229, 234, 230, 233, 238, 233, 236, 241, 234, 237, 242, 235, 238, 243, 237, 241, 244, 238, 242, 245, 238, 242, 245, 239, 243, 246, 240, 244, 247, 241, 245, 248, 241, 245, 246, 242, 246, 247, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 239, 242, 247, 240, 243, 248, 241, 244, 249, 242, 245, 250, 243, 246, 251, 242, 245, 250, 242, 245, 250, 241, 244, 249, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 239, 242, 247, 237, 240, 245, 236, 239, 244, 234, 237, 242, 234, 235, 240, 231, 232, 237, 228, 229, 233, 224, 225, 227, 221, 221, 223, 218, 218, 218, 218, 217, 215, 217, 216, 214, 217, 213, 210, 216, 212, 209, 215, 211, 208, 212, 208, 205, 209, 204, 201, 205, 200, 197, 201, 196, 193, 198, 193, 190, 194, 189, 185, 194, 189, 185, 194, 189, 185, 194, 189, 185, 195, 190, 186, 196, 191, 187, 198, 193, 189, 199, 194, 190, 197, 192, 188, 198, 193, 189, 201, 196, 192, 203, 198, 194, 204, 199, 195, 203, 198, 194, 201, 196, 192, 200, 195, 191, 196, 191, 187, 198, 193, 189, 199, 194, 190, 199, 194, 190, 197, 192, 188, 193, 188, 184, 189, 184, 180, 186, 181, 177, 175, 170, 166, 172, 167, 163, 172, 167, 163, 174, 169, 165, 171, 166, 162, 165, 160, 156, 163, 158, 154, 165, 160, 156, 172, 165, 159, 169, 162, 156, 165, 158, 152, 162, 155, 149, 161, 154, 148, 161, 154, 148, 159, 154, 148, 159, 154, 148, 151, 146, 140, 152, 147, 141, 151, 146, 140, 147, 142, 136, 141, 138, 131, 141, 138, 131, 146, 143, 136, 150, 147, 140, 146, 141, 137, 144, 139, 136, 143, 139, 136, 144, 140, 137, 138, 137, 133, 133, 132, 128, 136, 135, 131, 142, 141, 137, 159, 158, 154, 165, 164, 160, 164, 163, 159, 156, 155, 151, 154, 150, 147, 159, 155, 152, 166, 161, 158, 168, 163, 159, 185, 180, 176, 176, 171, 165, 162, 159, 154, 151, 150, 145, 154, 153, 148, 161, 162, 156, 164, 163, 159, 159, 158, 154, 157, 153, 152, 156, 152, 151, 159, 153, 155, 136, 130, 132, 122, 117, 121, 167, 165, 170, 193, 191, 196, 155, 153, 156, 84, 79, 76, 60, 48, 36, 80, 56, 30, 157, 122, 82, 193, 146, 92, 198, 143, 79, 226, 167, 97, 231, 173, 99, 209, 152, 75, 218, 163, 83, 211, 159, 76, 218, 167, 84, 214, 166, 81, 200, 156, 69, 200, 163, 75, 190, 155, 65, 178, 145, 52, 166, 143, 50, 152, 145, 57, 126, 134, 49, 96, 117, 40, 97, 123, 52, 97, 121, 61, 75, 95, 46, 11, 25, 0, 0, 9, 0, 0, 3, 0, 0, 2, 0, 1, 6, 9, 0, 3, 8, 0, 1, 6, 1, 2, 6, 1, 4, 9, 1, 4, 9, 0, 3, 8, 0, 3, 8, 0, 3, 8, 0, 2, 7, 0, 2, 7, 0, 2, 7, 0, 2, 7, 0, 3, 8, 0, 3, 8, 0, 3, 8, 1, 4, 9, 1, 4, 9, 1, 4, 9, 0, 6, 4, 0, 7, 0, 28, 56, 18, 74, 116, 53, 100, 151, 72, 108, 161, 71, 122, 166, 71, 147, 167, 78, 165, 165, 75, 206, 185, 94, 205, 172, 77, 207, 167, 72, 216, 173, 81, 219, 174, 89, 219, 174, 93, 228, 181, 101, 244, 192, 108, 251, 186, 94, 251, 179, 77, 245, 173, 63, 233, 161, 43, 220, 145, 20, 205, 133, 12, 185, 116, 13, 147, 98, 31, 37, 23, 10, 78, 84, 106, 139, 153, 188, 127, 152, 193, 131, 165, 210, 136, 165, 199, 88, 90, 105, 80, 69, 75, 96, 85, 89, 107, 97, 98, 127, 118, 119, 162, 153, 154, 186, 180, 180, 183, 177, 177, 176, 172, 171, 186, 182, 181, 180, 176, 175, 186, 182, 181, 189, 185, 184, 188, 184, 183, 192, 186, 186, 200, 194, 194, 207, 201, 201, 208, 202, 202, 208, 204, 201, 214, 210, 207, 218, 214, 211, 215, 211, 208, 206, 205, 203, 206, 205, 203, 220, 219, 217, 235, 234, 232, 238, 238, 238, 238, 238, 238, 239, 239, 239, 240, 240, 240, 241, 241, 241, 242, 242, 242, 242, 242, 242, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 244, 244, 244, 244, 244, 244, 244, 244, 244, 245, 245, 245, 245, 245, 245, 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 250, 249, 247, 249, 248, 246, 249, 248, 246, 249, 248, 246, 248, 247, 245, 248, 247, 245, 248, 247, 245, 248, 247, 245, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 250, 248, 249, 249, 247, 248, 248, 246, 247, 247, 245, 246, 247, 245, 246, 248, 246, 247, 249, 247, 248, 250, 248, 249, 249, 247, 248, 248, 246, 247, 248, 246, 247, 247, 245, 246, 246, 244, 245, 245, 243, 244, 245, 243, 244, 245, 243, 244, 242, 242, 240, 242, 242, 240, 241, 241, 239, 240, 240, 238, 237, 237, 235, 235, 235, 233, 232, 232, 230, 230, 230, 228, 223, 223, 221, 227, 227, 225, 226, 226, 224, 219, 219, 217, 214, 214, 212, 214, 214, 212, 214, 214, 212, 213, 212, 210, 196, 192, 189, 213, 208, 205, 190, 186, 183, 181, 177, 174, 160, 156, 155, 162, 158, 157, 206, 202, 201, 190, 189, 187, 177, 175, 176, 183, 181, 182, 188, 186, 187, 194, 194, 194, 190, 190, 190, 181, 181, 181, 183, 183, 183, 184, 186, 185, 199, 200, 202, 204, 205, 207, 210, 210, 212, 212, 210, 213, 208, 206, 209, 203, 198, 202, 193, 189, 190, 183, 181, 182, 194, 194, 194, 182, 182, 182, 172, 174, 171, 174, 176, 173, 183, 182, 180, 189, 188, 186, 196, 190, 190, 199, 195, 194, 197, 196, 192, 195, 194, 190, 192, 191, 187, 191, 190, 186, 194, 193, 189, 200, 199, 195, 207, 206, 202, 212, 211, 207, 205, 204, 200, 204, 203, 199, 203, 202, 198, 202, 201, 197, 203, 202, 198, 206, 205, 201, 210, 209, 205, 214, 213, 209, 198, 197, 193, 199, 198, 194, 201, 200, 196, 202, 201, 197, 203, 202, 198, 203, 202, 198, 202, 201, 197, 202, 201, 197, 203, 202, 198, 198, 197, 193, 195, 194, 190, 198, 197, 193, 201, 200, 196, 196, 195, 191, 182, 181, 177, 170, 169, 165, 188, 187, 182, 180, 179, 174, 177, 176, 171, 184, 183, 178, 190, 189, 185, 182, 181, 177, 167, 166, 162, 156, 155, 151, 171, 170, 166, 180, 179, 175, 174, 173, 171, 155, 154, 152, 148, 147, 145, 159, 158, 156, 164, 163, 161, 157, 156, 154, 127, 126, 122, 136, 135, 131, 149, 145, 142, 150, 146, 143, 154, 150, 147, 171, 167, 164, 174, 170, 167, 156, 152, 149, 141, 136, 133, 146, 141, 138, 159, 154, 151, 172, 167, 164, 164, 159, 156, 146, 141, 138, 156, 148, 146, 182, 174, 172, 142, 132, 130, 151, 141, 139, 144, 134, 132, 132, 122, 120, 138, 128, 126, 149, 140, 135, 156, 147, 142, 165, 156, 151, 151, 142, 137, 149, 140, 135, 148, 139, 134, 149, 140, 133, 153, 144, 137, 159, 150, 143, 166, 157, 150, 170, 161, 154, 169, 160, 155, 173, 164, 159, 178, 169, 164, 179, 170, 165, 172, 163, 158, 161, 152, 147, 153, 144, 139, 151, 142, 137, 146, 137, 132, 148, 139, 134, 152, 143, 138, 158, 149, 144, 163, 154, 149, 166, 157, 152, 168, 159, 154, 168, 159, 154, 158, 147, 143, 144, 133, 129, 133, 122, 118, 137, 126, 122, 145, 134, 130, 148, 137, 133, 146, 137, 132, 144, 135, 130, 157, 148, 143, 164, 155, 150, 169, 162, 156, 171, 164, 158, 168, 161, 155, 165, 158, 152, 165, 158, 152, 167, 160, 154, 162, 153, 148, 167, 158, 153, 169, 160, 155, 164, 155, 150, 155, 146, 141, 151, 142, 137, 151, 142, 137, 152, 143, 138, 167, 158, 153, 168, 159, 154, 166, 157, 152, 161, 152, 147, 154, 145, 140, 147, 138, 133, 144, 135, 130, 143, 134, 129, 148, 138, 136, 145, 135, 133, 143, 133, 131, 146, 136, 134, 154, 144, 142, 160, 150, 148, 162, 152, 150, 161, 151, 149, 163, 153, 151, 163, 153, 151, 162, 152, 150, 163, 153, 151, 165, 155, 153, 169, 159, 157, 173, 163, 161, 175, 165, 163, 173, 163, 161, 174, 164, 162, 175, 165, 163, 175, 165, 163, 173, 164, 159, 173, 164, 159, 175, 165, 163, 177, 167, 165, 182, 174, 171, 185, 180, 176, 191, 185, 185, 194, 193, 191, 200, 198, 199, 207, 207, 207, 214, 215, 217, 219, 220, 224, 218, 221, 226, 220, 223, 230, 224, 227, 232, 228, 231, 236, 232, 235, 240, 234, 237, 242, 236, 239, 244, 237, 240, 245, 237, 241, 244, 237, 241, 244, 238, 242, 245, 238, 242, 245, 239, 243, 246, 240, 244, 247, 241, 245, 246, 241, 245, 246, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 239, 242, 247, 240, 243, 248, 241, 244, 249, 242, 245, 250, 243, 246, 251, 242, 245, 250, 242, 245, 250, 241, 244, 249, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 239, 242, 247, 237, 240, 245, 236, 239, 244, 234, 237, 242, 234, 235, 240, 232, 233, 238, 228, 229, 233, 224, 225, 227, 221, 221, 223, 219, 219, 219, 218, 217, 215, 217, 216, 214, 218, 214, 211, 217, 213, 210, 216, 212, 209, 213, 209, 206, 210, 205, 202, 206, 201, 198, 202, 196, 196, 199, 194, 191, 200, 195, 191, 200, 195, 191, 200, 195, 191, 200, 195, 191, 202, 197, 193, 204, 199, 195, 206, 201, 197, 207, 202, 198, 204, 199, 195, 205, 200, 196, 205, 200, 196, 205, 200, 196, 203, 198, 194, 199, 194, 190, 195, 190, 186, 192, 187, 183, 191, 186, 182, 193, 188, 184, 196, 191, 187, 197, 192, 188, 197, 192, 188, 195, 190, 186, 192, 187, 183, 190, 185, 181, 183, 178, 174, 177, 172, 168, 172, 167, 163, 171, 166, 162, 170, 165, 161, 168, 163, 159, 169, 164, 160, 173, 168, 164, 170, 163, 157, 168, 161, 155, 165, 158, 152, 162, 155, 149, 160, 153, 147, 161, 154, 148, 162, 157, 151, 164, 159, 153, 166, 161, 155, 165, 160, 154, 161, 156, 150, 153, 148, 142, 144, 141, 134, 140, 137, 130, 141, 138, 131, 144, 141, 134, 156, 151, 147, 156, 151, 147, 157, 154, 149, 159, 156, 151, 152, 151, 146, 142, 141, 136, 136, 137, 131, 136, 137, 131, 151, 152, 146, 157, 158, 152, 161, 160, 155, 157, 156, 151, 157, 154, 149, 159, 156, 151, 164, 159, 155, 167, 162, 158, 154, 146, 143, 154, 149, 145, 153, 149, 146, 151, 150, 145, 155, 154, 149, 160, 159, 154, 158, 157, 152, 152, 151, 146, 162, 158, 155, 166, 161, 158, 170, 164, 164, 146, 140, 142, 123, 118, 122, 151, 149, 152, 171, 169, 174, 142, 140, 143, 93, 89, 86, 95, 85, 73, 71, 47, 21, 94, 59, 19, 157, 111, 59, 193, 139, 77, 216, 159, 90, 221, 163, 90, 220, 162, 89, 228, 172, 97, 218, 165, 87, 221, 170, 89, 213, 165, 83, 200, 155, 72, 205, 164, 82, 197, 160, 72, 184, 145, 52, 183, 150, 57, 156, 139, 47, 135, 131, 42, 125, 135, 49, 104, 121, 41, 89, 111, 38, 101, 123, 61, 50, 66, 19, 13, 24, 0, 0, 4, 0, 0, 2, 0, 7, 8, 10, 0, 0, 5, 0, 0, 5, 5, 6, 11, 1, 4, 9, 1, 4, 9, 1, 4, 9, 0, 3, 8, 0, 3, 8, 0, 3, 8, 0, 2, 7, 0, 2, 7, 0, 3, 8, 0, 3, 8, 0, 3, 8, 1, 4, 9, 1, 4, 9, 1, 4, 9, 2, 5, 10, 0, 8, 3, 0, 8, 0, 45, 74, 28, 95, 134, 67, 112, 155, 73, 120, 161, 69, 140, 169, 76, 171, 177, 87, 193, 179, 90, 212, 179, 84, 211, 168, 73, 212, 165, 73, 222, 172, 85, 221, 172, 93, 217, 168, 91, 222, 170, 94, 235, 179, 94, 245, 179, 82, 249, 177, 69, 249, 174, 59, 232, 156, 36, 209, 131, 7, 193, 120, 5, 169, 103, 9, 118, 75, 20, 42, 38, 37, 89, 104, 133, 139, 155, 189, 128, 152, 190, 141, 174, 215, 133, 159, 192, 82, 78, 93, 81, 64, 70, 104, 92, 94, 108, 98, 99, 124, 115, 116, 158, 149, 150, 184, 178, 178, 183, 177, 177, 182, 178, 177, 198, 194, 193, 187, 183, 182, 179, 175, 174, 181, 177, 176, 193, 189, 188, 196, 190, 190, 191, 185, 185, 198, 192, 192, 213, 207, 207, 209, 205, 202, 216, 212, 209, 220, 216, 213, 213, 209, 206, 204, 203, 201, 208, 207, 205, 223, 222, 220, 236, 235, 233, 239, 239, 239, 239, 239, 239, 240, 240, 240, 240, 240, 240, 241, 241, 241, 242, 242, 242, 242, 242, 242, 242, 242, 242, 243, 243, 243, 243, 243, 243, 243, 243, 243, 244, 244, 244, 244, 244, 244, 244, 244, 244, 245, 245, 245, 245, 245, 245, 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 249, 248, 246, 249, 248, 246, 249, 248, 246, 248, 247, 245, 248, 247, 245, 248, 247, 245, 247, 246, 244, 247, 246, 244, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 250, 248, 249, 249, 247, 248, 248, 246, 247, 247, 245, 246, 247, 245, 246, 248, 246, 247, 249, 247, 248, 250, 248, 249, 247, 245, 246, 247, 245, 246, 246, 244, 245, 246, 244, 245, 245, 243, 244, 244, 242, 243, 243, 241, 242, 243, 241, 242, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 240, 240, 238, 238, 238, 236, 235, 235, 233, 234, 234, 232, 227, 227, 225, 231, 231, 229, 229, 229, 227, 221, 221, 219, 214, 214, 212, 212, 212, 210, 210, 210, 208, 207, 206, 204, 207, 203, 200, 219, 214, 211, 201, 197, 194, 206, 202, 199, 184, 180, 179, 164, 160, 159, 195, 194, 192, 192, 191, 189, 193, 191, 192, 190, 190, 190, 196, 196, 196, 199, 199, 199, 198, 198, 198, 190, 192, 191, 181, 183, 182, 182, 184, 183, 196, 200, 201, 198, 202, 205, 204, 205, 209, 208, 207, 212, 206, 204, 207, 197, 195, 198, 189, 187, 188, 184, 182, 183, 192, 192, 192, 186, 188, 187, 183, 185, 182, 184, 186, 183, 185, 184, 180, 186, 185, 181, 195, 190, 187, 201, 197, 194, 207, 206, 204, 203, 203, 201, 198, 198, 196, 195, 195, 193, 194, 194, 192, 196, 196, 194, 199, 199, 197, 202, 202, 200, 195, 195, 193, 195, 195, 193, 196, 196, 194, 199, 199, 197, 202, 202, 200, 204, 204, 202, 204, 204, 202, 204, 204, 202, 213, 212, 208, 211, 210, 206, 207, 206, 202, 202, 201, 197, 196, 195, 191, 189, 188, 184, 183, 182, 178, 180, 179, 175, 176, 175, 171, 175, 174, 170, 178, 177, 173, 187, 186, 182, 194, 193, 189, 192, 191, 187, 180, 179, 175, 168, 167, 163, 163, 162, 157, 158, 157, 152, 163, 162, 157, 179, 178, 173, 192, 191, 187, 191, 190, 186, 179, 178, 174, 170, 169, 165, 181, 180, 176, 184, 183, 179, 172, 171, 169, 148, 147, 145, 135, 134, 132, 136, 135, 133, 133, 132, 130, 124, 123, 121, 102, 98, 95, 108, 104, 101, 117, 113, 110, 121, 117, 114, 132, 128, 125, 157, 153, 150, 168, 163, 160, 153, 148, 145, 155, 150, 147, 175, 170, 167, 178, 173, 170, 151, 146, 143, 127, 119, 117, 127, 119, 117, 130, 122, 120, 125, 117, 115, 140, 132, 130, 149, 141, 139, 146, 138, 136, 144, 136, 133, 155, 147, 144, 153, 145, 142, 135, 127, 124, 121, 113, 110, 142, 134, 131, 146, 139, 133, 152, 145, 139, 156, 149, 143, 158, 151, 145, 156, 149, 143, 153, 146, 140, 150, 143, 137, 125, 116, 111, 136, 127, 122, 150, 141, 136, 158, 149, 144, 159, 150, 145, 154, 145, 140, 144, 135, 130, 137, 128, 123, 145, 136, 131, 151, 142, 137, 160, 151, 146, 166, 157, 152, 168, 159, 154, 165, 156, 151, 161, 152, 147, 158, 149, 144, 140, 129, 125, 131, 120, 116, 125, 114, 110, 128, 117, 113, 135, 124, 120, 143, 132, 128, 152, 143, 138, 160, 151, 146, 162, 153, 148, 167, 158, 153, 170, 163, 157, 169, 162, 156, 165, 158, 152, 162, 155, 149, 164, 157, 151, 166, 159, 153, 161, 152, 147, 163, 154, 149, 165, 156, 151, 164, 155, 150, 158, 149, 144, 151, 142, 137, 149, 140, 135, 151, 142, 137, 162, 153, 148, 162, 153, 148, 162, 153, 148, 157, 148, 143, 151, 142, 137, 145, 136, 131, 143, 134, 129, 142, 133, 128, 125, 115, 113, 125, 115, 113, 129, 119, 117, 140, 130, 128, 152, 142, 140, 161, 151, 149, 163, 153, 151, 162, 152, 150, 160, 150, 148, 160, 150, 148, 161, 151, 149, 163, 153, 151, 165, 155, 153, 167, 157, 155, 169, 159, 157, 170, 160, 158, 172, 162, 160, 174, 164, 162, 177, 167, 165, 178, 168, 166, 177, 168, 163, 178, 169, 164, 179, 169, 167, 182, 172, 170, 187, 179, 176, 188, 183, 179, 192, 186, 186, 193, 192, 190, 196, 194, 195, 199, 199, 199, 204, 205, 207, 209, 210, 214, 214, 217, 222, 217, 220, 227, 220, 223, 228, 224, 227, 232, 228, 231, 236, 231, 234, 239, 232, 235, 240, 233, 236, 241, 237, 241, 244, 237, 241, 244, 238, 242, 245, 238, 242, 245, 239, 243, 246, 240, 244, 247, 241, 245, 246, 241, 245, 246, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 239, 242, 247, 240, 243, 248, 241, 244, 249, 242, 245, 250, 243, 246, 251, 242, 245, 250, 242, 245, 250, 241, 244, 249, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 239, 242, 247, 237, 240, 245, 236, 239, 244, 234, 237, 242, 234, 235, 240, 232, 233, 238, 229, 230, 234, 225, 226, 228, 222, 222, 224, 219, 219, 219, 218, 217, 215, 218, 217, 215, 219, 215, 212, 218, 214, 211, 216, 212, 209, 213, 209, 206, 210, 205, 202, 207, 202, 199, 205, 199, 199, 204, 199, 196, 201, 196, 193, 201, 196, 192, 200, 195, 191, 200, 195, 191, 200, 195, 191, 202, 197, 193, 203, 198, 194, 204, 199, 195, 207, 202, 198, 207, 202, 198, 205, 200, 196, 201, 196, 192, 197, 192, 188, 193, 188, 184, 189, 184, 180, 187, 182, 178, 188, 183, 179, 190, 185, 181, 193, 188, 184, 195, 190, 186, 195, 190, 186, 193, 188, 184, 191, 186, 182, 189, 184, 180, 184, 179, 175, 175, 170, 166, 168, 163, 159, 168, 163, 159, 170, 165, 161, 171, 166, 162, 174, 169, 165, 179, 174, 170, 169, 162, 156, 168, 161, 155, 165, 158, 152, 163, 156, 150, 162, 155, 149, 166, 159, 153, 172, 167, 161, 178, 173, 167, 177, 172, 166, 168, 163, 157, 159, 154, 148, 159, 154, 148, 165, 162, 155, 169, 166, 159, 166, 163, 156, 161, 158, 151, 163, 158, 154, 161, 156, 152, 163, 160, 155, 171, 168, 163, 171, 170, 165, 165, 164, 159, 157, 158, 152, 154, 155, 149, 141, 142, 136, 147, 148, 142, 156, 155, 150, 160, 159, 154, 161, 158, 153, 157, 154, 149, 154, 149, 145, 152, 147, 143, 149, 141, 139, 156, 148, 146, 157, 152, 149, 155, 151, 148, 154, 153, 149, 159, 158, 153, 161, 160, 155, 160, 159, 154, 173, 168, 165, 178, 173, 170, 178, 172, 172, 158, 152, 152, 135, 131, 132, 136, 134, 137, 145, 143, 148, 138, 138, 140, 125, 124, 120, 91, 83, 72, 46, 24, 0, 73, 39, 1, 158, 115, 64, 185, 134, 71, 182, 125, 58, 217, 158, 88, 232, 175, 104, 241, 185, 111, 229, 176, 100, 228, 176, 100, 218, 169, 92, 203, 157, 79, 209, 168, 88, 205, 165, 80, 194, 151, 59, 196, 157, 62, 164, 138, 43, 145, 130, 37, 142, 141, 49, 106, 116, 29, 81, 100, 18, 105, 127, 54, 87, 105, 45, 41, 54, 11, 6, 11, 0, 4, 6, 0, 8, 7, 5, 3, 0, 4, 1, 0, 5, 8, 7, 13, 4, 5, 10, 1, 4, 9, 1, 4, 9, 1, 4, 9, 0, 3, 8, 0, 3, 8, 0, 3, 8, 0, 3, 8, 0, 3, 8, 0, 3, 8, 1, 4, 9, 1, 4, 9, 1, 4, 9, 2, 5, 10, 2, 5, 10, 0, 9, 3, 7, 33, 4, 60, 98, 47, 102, 148, 75, 113, 159, 71, 124, 163, 72, 150, 174, 80, 181, 181, 91, 206, 187, 93, 214, 176, 79, 220, 172, 74, 223, 173, 78, 228, 177, 88, 229, 176, 98, 225, 172, 96, 225, 170, 90, 231, 171, 83, 238, 173, 69, 238, 167, 53, 239, 162, 44, 229, 149, 28, 214, 134, 13, 209, 136, 25, 179, 114, 30, 109, 71, 26, 53, 57, 66, 92, 116, 152, 134, 153, 186, 132, 155, 189, 142, 176, 213, 121, 144, 175, 72, 64, 77, 79, 58, 63, 120, 105, 108, 123, 113, 114, 137, 128, 129, 167, 158, 159, 189, 183, 183, 187, 181, 181, 183, 179, 178, 196, 192, 191, 195, 191, 190, 180, 176, 175, 180, 176, 175, 197, 193, 192, 200, 194, 194, 188, 182, 182, 195, 189, 189, 217, 211, 211, 209, 205, 202, 217, 213, 210, 220, 216, 213, 213, 209, 206, 207, 206, 204, 214, 213, 211, 227, 226, 224, 235, 234, 232, 240, 240, 240, 240, 240, 240, 241, 241, 241, 241, 241, 241, 241, 241, 241, 242, 242, 242, 242, 242, 242, 242, 242, 242, 243, 243, 243, 244, 244, 244, 244, 244, 244, 244, 244, 244, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 249, 248, 246, 249, 248, 246, 248, 247, 245, 248, 247, 245, 248, 247, 245, 247, 246, 244, 247, 246, 244, 247, 246, 244, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 250, 248, 249, 249, 247, 248, 248, 246, 247, 247, 245, 246, 247, 245, 246, 248, 246, 247, 249, 247, 248, 250, 248, 249, 247, 245, 246, 246, 244, 245, 246, 244, 245, 245, 243, 244, 244, 242, 243, 244, 242, 243, 243, 241, 242, 243, 241, 242, 242, 242, 240, 243, 243, 241, 243, 243, 241, 242, 242, 240, 241, 241, 239, 240, 240, 238, 238, 238, 236, 237, 237, 235, 231, 231, 229, 233, 233, 231, 231, 231, 229, 224, 224, 222, 219, 219, 217, 217, 217, 215, 212, 212, 210, 206, 205, 203, 219, 215, 212, 219, 214, 211, 204, 200, 197, 216, 212, 209, 213, 209, 208, 186, 182, 181, 186, 185, 183, 199, 198, 196, 201, 201, 201, 191, 191, 191, 197, 197, 197, 199, 199, 199, 202, 204, 203, 203, 205, 204, 190, 192, 191, 189, 193, 192, 187, 192, 195, 189, 194, 197, 196, 200, 203, 203, 204, 208, 201, 201, 203, 194, 192, 195, 191, 189, 190, 192, 192, 192, 181, 183, 182, 185, 187, 186, 193, 195, 192, 199, 201, 198, 198, 197, 193, 192, 188, 185, 191, 186, 183, 194, 190, 187, 197, 196, 194, 198, 198, 196, 201, 201, 199, 202, 202, 200, 200, 200, 198, 195, 195, 193, 190, 190, 188, 186, 186, 184, 194, 194, 192, 195, 195, 193, 198, 198, 196, 203, 203, 201, 208, 208, 206, 208, 208, 206, 205, 205, 203, 202, 202, 200, 211, 210, 206, 210, 209, 205, 208, 207, 203, 205, 204, 200, 200, 199, 195, 195, 194, 190, 191, 190, 186, 189, 188, 184, 180, 179, 175, 186, 185, 181, 193, 192, 188, 194, 193, 189, 189, 188, 184, 181, 180, 176, 177, 176, 172, 175, 174, 170, 160, 159, 154, 165, 164, 159, 176, 175, 170, 187, 186, 181, 188, 187, 183, 181, 180, 176, 176, 175, 171, 175, 174, 170, 164, 163, 159, 166, 165, 161, 163, 162, 160, 156, 155, 153, 150, 149, 147, 145, 144, 142, 139, 138, 136, 132, 131, 129, 137, 133, 130, 149, 145, 142, 166, 162, 159, 168, 164, 161, 160, 156, 153, 165, 161, 158, 168, 163, 160, 157, 152, 149, 160, 155, 152, 149, 144, 141, 142, 137, 134, 132, 127, 124, 121, 113, 111, 118, 110, 108, 121, 113, 111, 118, 110, 108, 151, 143, 141, 136, 128, 126, 124, 116, 114, 136, 128, 126, 152, 144, 141, 147, 139, 136, 146, 138, 135, 162, 154, 151, 161, 153, 150, 164, 156, 153, 168, 161, 155, 169, 162, 156, 164, 157, 151, 155, 148, 142, 144, 137, 131, 137, 130, 124, 124, 115, 110, 133, 124, 119, 143, 134, 129, 149, 140, 135, 155, 146, 141, 160, 151, 146, 159, 150, 145, 153, 144, 139, 147, 138, 133, 156, 147, 142, 167, 158, 153, 174, 165, 160, 173, 164, 159, 166, 157, 152, 159, 150, 145, 155, 146, 141, 146, 135, 131, 147, 136, 132, 147, 136, 132, 141, 130, 126, 129, 118, 114, 127, 116, 112, 142, 133, 128, 161, 152, 147, 161, 152, 147, 162, 153, 148, 160, 153, 147, 157, 150, 144, 154, 147, 141, 154, 147, 141, 155, 148, 142, 158, 151, 145, 164, 155, 150, 156, 147, 142, 151, 142, 137, 151, 142, 137, 151, 142, 137, 151, 142, 137, 155, 146, 141, 161, 152, 147, 154, 145, 140, 156, 147, 142, 158, 149, 144, 157, 148, 143, 154, 145, 140, 152, 143, 138, 151, 142, 137, 152, 143, 138, 144, 134, 132, 146, 136, 134, 151, 141, 139, 157, 147, 145, 163, 153, 151, 166, 156, 154, 165, 155, 153, 163, 153, 151, 167, 157, 155, 167, 157, 155, 167, 157, 155, 168, 158, 156, 169, 159, 157, 170, 160, 158, 172, 162, 160, 172, 162, 160, 171, 161, 159, 175, 165, 163, 178, 168, 166, 180, 170, 168, 180, 171, 166, 180, 171, 166, 181, 171, 169, 183, 173, 171, 185, 177, 174, 185, 180, 176, 189, 183, 183, 188, 187, 185, 190, 188, 189, 192, 192, 192, 196, 197, 199, 200, 201, 205, 211, 214, 219, 213, 216, 223, 216, 219, 224, 221, 224, 229, 224, 227, 232, 227, 230, 235, 229, 232, 237, 230, 233, 238, 237, 241, 244, 238, 242, 245, 238, 242, 245, 239, 243, 246, 240, 244, 247, 241, 245, 248, 241, 245, 246, 242, 246, 247, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 239, 242, 247, 240, 243, 248, 241, 244, 249, 242, 245, 250, 243, 246, 251, 242, 245, 250, 242, 245, 250, 241, 244, 249, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 239, 242, 247, 237, 240, 245, 236, 239, 244, 234, 237, 242, 235, 236, 241, 233, 234, 239, 229, 230, 234, 225, 226, 228, 222, 222, 224, 219, 219, 219, 219, 218, 216, 218, 217, 215, 220, 216, 213, 218, 214, 211, 214, 210, 207, 211, 207, 204, 209, 204, 201, 208, 203, 200, 208, 202, 202, 209, 204, 201, 202, 197, 194, 201, 196, 192, 199, 194, 190, 198, 193, 189, 197, 192, 188, 196, 191, 187, 197, 192, 188, 197, 192, 188, 206, 201, 197, 204, 199, 195, 200, 195, 191, 195, 190, 186, 191, 186, 182, 188, 183, 179, 186, 181, 177, 186, 181, 177, 190, 185, 181, 191, 186, 182, 193, 188, 184, 193, 188, 184, 192, 187, 183, 189, 184, 180, 185, 180, 176, 182, 177, 173, 174, 169, 165, 166, 161, 157, 162, 157, 153, 165, 160, 156, 170, 165, 161, 172, 167, 163, 174, 169, 165, 177, 172, 168, 189, 182, 176, 184, 177, 171, 175, 168, 162, 163, 156, 150, 153, 146, 140, 152, 145, 139, 155, 150, 144, 161, 156, 150, 158, 153, 147, 151, 146, 140, 146, 141, 135, 150, 145, 139, 161, 158, 151, 169, 166, 159, 170, 167, 160, 166, 163, 156, 146, 141, 137, 141, 136, 132, 143, 140, 135, 157, 154, 149, 169, 168, 163, 174, 173, 168, 172, 173, 167, 170, 171, 165, 155, 156, 150, 153, 154, 148, 154, 153, 148, 158, 157, 152, 160, 157, 152, 156, 153, 148, 152, 147, 143, 150, 145, 141, 168, 160, 158, 173, 164, 165, 171, 165, 165, 165, 161, 158, 161, 160, 156, 164, 163, 159, 166, 165, 160, 166, 165, 160, 171, 166, 163, 175, 170, 167, 168, 162, 162, 154, 148, 148, 136, 132, 133, 113, 111, 112, 114, 112, 115, 137, 137, 137, 177, 176, 172, 109, 101, 90, 74, 54, 29, 91, 59, 20, 162, 119, 68, 190, 140, 79, 172, 117, 52, 217, 160, 91, 233, 176, 107, 245, 188, 117, 235, 181, 109, 236, 184, 109, 223, 174, 98, 206, 160, 83, 210, 168, 92, 206, 164, 82, 204, 157, 65, 204, 160, 63, 182, 146, 50, 162, 138, 42, 150, 141, 46, 123, 128, 34, 102, 119, 27, 108, 130, 47, 108, 128, 59, 78, 92, 41, 41, 46, 16, 17, 15, 2, 8, 3, 0, 7, 1, 5, 9, 4, 10, 9, 6, 13, 4, 5, 10, 2, 5, 10, 1, 4, 9, 1, 4, 9, 1, 4, 9, 0, 3, 8, 0, 3, 8, 0, 3, 8, 0, 3, 8, 1, 4, 9, 1, 4, 9, 1, 4, 9, 2, 5, 10, 2, 5, 10, 2, 5, 10, 0, 11, 4, 36, 73, 40, 71, 124, 68, 95, 151, 76, 99, 153, 65, 120, 163, 73, 149, 174, 82, 174, 175, 82, 195, 176, 81, 211, 174, 70, 224, 177, 73, 229, 179, 82, 230, 179, 88, 231, 178, 98, 233, 180, 100, 234, 178, 93, 232, 173, 79, 247, 183, 75, 243, 172, 54, 244, 164, 43, 229, 145, 23, 210, 127, 7, 206, 129, 23, 165, 102, 25, 80, 46, 9, 68, 80, 96, 97, 129, 168, 132, 155, 187, 131, 156, 186, 135, 170, 202, 116, 137, 164, 89, 77, 89, 109, 84, 88, 122, 107, 110, 127, 117, 118, 137, 128, 129, 160, 151, 152, 180, 174, 174, 182, 176, 176, 179, 175, 174, 189, 185, 184, 198, 194, 193, 188, 184, 183, 188, 184, 183, 198, 194, 193, 200, 194, 194, 195, 189, 189, 202, 196, 196, 218, 212, 212, 208, 204, 201, 217, 213, 210, 219, 215, 212, 213, 209, 206, 211, 210, 208, 221, 220, 218, 231, 230, 228, 233, 232, 230, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 242, 242, 242, 242, 242, 242, 242, 242, 242, 244, 244, 244, 244, 244, 244, 245, 245, 245, 245, 245, 245, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 249, 248, 246, 248, 247, 245, 248, 247, 245, 248, 247, 245, 247, 246, 244, 247, 246, 244, 247, 246, 244, 246, 245, 243, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 250, 248, 249, 249, 247, 248, 248, 246, 247, 247, 245, 246, 247, 245, 246, 248, 246, 247, 249, 247, 248, 250, 248, 249, 248, 246, 247, 248, 246, 247, 248, 246, 247, 247, 245, 246, 246, 244, 245, 245, 243, 244, 245, 243, 244, 244, 242, 243, 242, 242, 240, 242, 242, 240, 243, 243, 241, 243, 243, 241, 242, 242, 240, 241, 241, 239, 240, 240, 238, 239, 239, 237, 234, 234, 232, 234, 234, 232, 230, 230, 228, 227, 227, 225, 227, 227, 225, 227, 227, 225, 220, 220, 218, 212, 211, 209, 218, 214, 211, 218, 213, 210, 212, 208, 205, 207, 203, 200, 216, 212, 211, 196, 192, 191, 172, 171, 169, 209, 208, 206, 209, 209, 209, 191, 191, 191, 196, 198, 197, 196, 198, 197, 205, 207, 206, 213, 215, 214, 197, 201, 200, 201, 205, 204, 188, 193, 196, 190, 195, 198, 197, 201, 204, 204, 205, 209, 200, 200, 202, 191, 191, 193, 193, 193, 193, 203, 203, 203, 180, 182, 181, 180, 182, 181, 186, 188, 185, 194, 196, 193, 197, 196, 192, 193, 189, 186, 188, 183, 180, 187, 182, 179, 186, 185, 183, 190, 190, 188, 197, 197, 195, 202, 202, 200, 203, 203, 201, 199, 199, 197, 192, 192, 190, 188, 188, 186, 198, 198, 196, 198, 198, 196, 199, 199, 197, 204, 204, 202, 209, 209, 207, 210, 210, 208, 207, 207, 205, 203, 203, 201, 200, 199, 195, 201, 200, 196, 201, 200, 196, 202, 201, 197, 201, 200, 196, 200, 199, 195, 199, 198, 194, 198, 197, 193, 196, 195, 191, 197, 196, 192, 195, 194, 190, 189, 188, 184, 181, 180, 176, 176, 175, 171, 176, 175, 171, 178, 177, 173, 181, 180, 175, 176, 175, 170, 173, 172, 167, 171, 170, 165, 168, 167, 163, 164, 163, 159, 167, 166, 162, 172, 171, 167, 167, 166, 162, 165, 164, 160, 170, 169, 167, 182, 181, 179, 189, 188, 186, 187, 186, 184, 187, 186, 184, 191, 190, 188, 188, 184, 181, 190, 186, 183, 200, 196, 193, 195, 191, 188, 170, 166, 163, 147, 143, 140, 130, 125, 122, 113, 108, 105, 107, 102, 99, 80, 75, 72, 92, 87, 84, 129, 124, 121, 138, 130, 128, 130, 122, 120, 139, 131, 129, 155, 147, 145, 142, 134, 132, 142, 134, 132, 144, 136, 134, 150, 142, 140, 148, 140, 138, 131, 123, 121, 133, 125, 123, 157, 149, 147, 174, 166, 163, 173, 165, 162, 169, 161, 158, 163, 155, 152, 155, 147, 144, 147, 139, 136, 139, 132, 126, 135, 128, 122, 161, 152, 147, 162, 153, 148, 157, 148, 143, 148, 139, 134, 147, 138, 133, 152, 143, 138, 151, 142, 137, 145, 136, 131, 151, 142, 137, 160, 151, 146, 171, 162, 157, 176, 167, 162, 174, 165, 160, 168, 159, 154, 164, 155, 150, 161, 152, 147, 154, 143, 139, 154, 143, 139, 154, 143, 139, 151, 140, 136, 143, 132, 128, 138, 127, 123, 144, 135, 130, 155, 146, 141, 172, 163, 158, 167, 158, 153, 159, 152, 146, 155, 148, 142, 155, 148, 142, 157, 150, 144, 159, 152, 146, 160, 153, 147, 152, 143, 138, 139, 130, 125, 132, 123, 118, 138, 129, 124, 146, 137, 132, 149, 140, 135, 154, 145, 140, 160, 151, 146, 153, 144, 139, 155, 146, 141, 157, 148, 143, 157, 148, 143, 155, 146, 141, 153, 144, 139, 153, 144, 139, 154, 145, 140, 167, 157, 155, 169, 159, 157, 171, 161, 159, 171, 161, 159, 169, 159, 157, 166, 156, 154, 165, 155, 153, 165, 155, 153, 176, 166, 164, 175, 165, 163, 173, 163, 161, 173, 163, 161, 173, 163, 161, 174, 164, 162, 175, 165, 163, 176, 166, 164, 173, 163, 161, 176, 166, 164, 180, 170, 168, 181, 171, 169, 179, 170, 165, 177, 168, 163, 177, 167, 165, 178, 168, 166, 179, 171, 168, 181, 176, 172, 185, 179, 179, 187, 186, 184, 191, 189, 190, 195, 195, 195, 201, 202, 204, 206, 207, 211, 215, 218, 223, 217, 220, 227, 220, 223, 228, 225, 228, 233, 228, 231, 236, 231, 234, 239, 233, 236, 241, 234, 237, 242, 238, 242, 245, 239, 243, 246, 239, 243, 246, 240, 244, 247, 241, 245, 248, 242, 246, 249, 242, 246, 247, 243, 247, 248, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 239, 242, 247, 240, 243, 248, 241, 244, 249, 242, 245, 250, 243, 246, 251, 242, 245, 250, 242, 245, 250, 241, 244, 249, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 246, 250, 243, 247, 250, 245, 246, 250, 243, 247, 250, 245, 246, 250, 243, 247, 250, 245, 246, 250, 243, 247, 250, 245, 246, 250, 243, 247, 250, 245, 246, 250, 243, 247, 250, 245, 246, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 239, 242, 247, 237, 240, 245, 236, 239, 244, 234, 237, 242, 235, 236, 241, 233, 234, 239, 229, 230, 234, 225, 226, 230, 222, 222, 224, 220, 220, 220, 219, 217, 218, 218, 217, 215, 221, 217, 216, 218, 214, 213, 213, 209, 208, 209, 205, 202, 208, 203, 200, 209, 204, 201, 211, 205, 205, 212, 206, 206, 210, 205, 202, 209, 204, 200, 206, 201, 197, 204, 199, 195, 202, 197, 193, 201, 196, 192, 200, 195, 191, 200, 195, 191, 202, 197, 193, 200, 195, 191, 195, 190, 186, 191, 186, 182, 187, 182, 178, 186, 181, 177, 186, 181, 177, 187, 182, 178, 193, 188, 184, 193, 188, 184, 194, 189, 185, 193, 188, 184, 189, 184, 180, 184, 179, 175, 179, 174, 170, 176, 171, 167, 170, 165, 161, 164, 159, 155, 163, 158, 154, 170, 165, 161, 177, 172, 168, 178, 173, 169, 178, 173, 169, 179, 174, 170, 184, 176, 173, 179, 172, 166, 169, 161, 158, 156, 149, 143, 146, 138, 135, 146, 139, 133, 152, 147, 143, 160, 155, 149, 170, 165, 161, 171, 166, 160, 171, 166, 162, 169, 164, 158, 165, 162, 157, 166, 163, 156, 172, 169, 164, 177, 174, 169, 191, 186, 182, 176, 171, 167, 163, 160, 155, 166, 163, 158, 172, 169, 164, 168, 167, 162, 160, 159, 154, 154, 153, 148, 180, 179, 174, 168, 167, 162, 156, 155, 150, 154, 151, 146, 155, 152, 147, 155, 152, 147, 158, 153, 149, 160, 155, 151, 167, 162, 159, 171, 166, 163, 171, 166, 163, 168, 164, 161, 166, 165, 161, 169, 168, 164, 169, 168, 163, 167, 164, 159, 194, 189, 186, 196, 191, 188, 180, 174, 174, 168, 162, 162, 153, 149, 148, 114, 110, 111, 108, 106, 107, 151, 151, 151, 164, 163, 161, 125, 116, 107, 101, 83, 63, 50, 19, 0, 100, 57, 14, 202, 151, 94, 206, 151, 86, 217, 159, 86, 228, 170, 96, 242, 184, 110, 238, 182, 108, 238, 186, 113, 226, 176, 105, 206, 159, 89, 208, 166, 94, 202, 158, 83, 206, 160, 75, 202, 158, 69, 195, 156, 63, 177, 149, 52, 158, 139, 44, 150, 144, 46, 140, 145, 51, 122, 135, 47, 120, 134, 55, 107, 119, 55, 71, 77, 29, 25, 26, 0, 7, 1, 0, 13, 5, 3, 18, 8, 16, 9, 3, 13, 5, 4, 10, 4, 5, 10, 4, 4, 12, 3, 3, 11, 3, 4, 9, 2, 3, 8, 3, 2, 8, 2, 3, 7, 3, 4, 9, 3, 4, 9, 1, 4, 11, 1, 4, 11, 1, 6, 12, 1, 6, 10, 0, 9, 8, 0, 14, 0, 47, 94, 52, 70, 130, 66, 83, 142, 60, 89, 142, 50, 120, 160, 64, 154, 174, 79, 175, 170, 78, 191, 166, 73, 206, 168, 69, 222, 177, 76, 227, 181, 85, 226, 176, 87, 229, 178, 97, 238, 186, 103, 241, 184, 95, 235, 175, 77, 222, 158, 50, 225, 154, 36, 235, 153, 28, 217, 133, 9, 191, 112, 0, 183, 114, 19, 143, 93, 30, 61, 39, 16, 87, 103, 126, 114, 146, 187, 141, 166, 197, 135, 159, 187, 139, 166, 193, 130, 145, 166, 127, 112, 119, 158, 129, 131, 118, 98, 99, 122, 106, 106, 127, 112, 115, 141, 129, 131, 162, 153, 156, 171, 165, 167, 176, 172, 173, 187, 183, 182, 199, 195, 194, 195, 194, 192, 197, 193, 192, 198, 194, 193, 198, 194, 193, 201, 197, 196, 210, 205, 202, 216, 212, 209, 208, 204, 201, 214, 213, 209, 218, 214, 213, 211, 210, 208, 214, 213, 211, 226, 225, 223, 233, 232, 230, 232, 231, 229, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 241, 241, 241, 241, 241, 241, 241, 241, 241, 245, 245, 245, 245, 245, 245, 245, 245, 245, 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247, 247, 247, 247, 247, 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 247, 245, 248, 247, 245, 248, 247, 245, 248, 247, 245, 247, 246, 244, 247, 246, 244, 246, 245, 243, 246, 245, 243, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 250, 248, 249, 249, 247, 248, 248, 246, 247, 247, 245, 246, 247, 245, 246, 248, 246, 247, 249, 247, 248, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 249, 247, 248, 248, 246, 247, 247, 245, 246, 247, 245, 246, 246, 244, 245, 241, 241, 239, 242, 242, 240, 242, 242, 240, 243, 243, 241, 242, 242, 240, 241, 241, 239, 240, 240, 238, 239, 239, 237, 235, 235, 233, 233, 233, 231, 230, 230, 228, 229, 229, 227, 233, 233, 231, 236, 236, 234, 228, 228, 226, 218, 217, 215, 217, 213, 212, 227, 223, 220, 229, 225, 224, 197, 193, 192, 199, 195, 194, 182, 178, 177, 148, 147, 145, 208, 207, 205, 217, 215, 216, 194, 194, 194, 198, 198, 198, 194, 196, 195, 205, 207, 206, 217, 219, 218, 202, 204, 203, 205, 209, 208, 196, 202, 202, 197, 203, 203, 203, 207, 208, 208, 209, 211, 200, 200, 202, 189, 189, 189, 194, 194, 194, 207, 207, 207, 185, 187, 186, 175, 177, 176, 170, 172, 169, 177, 177, 175, 185, 186, 181, 187, 186, 182, 185, 181, 178, 184, 180, 177, 185, 184, 182, 187, 187, 185, 192, 192, 190, 197, 197, 195, 200, 200, 198, 202, 202, 200, 202, 202, 200, 202, 202, 200, 194, 194, 192, 192, 192, 190, 191, 191, 189, 194, 194, 192, 199, 199, 197, 202, 202, 200, 200, 200, 198, 196, 196, 194, 201, 202, 197, 200, 201, 196, 200, 199, 195, 197, 196, 192, 194, 193, 189, 190, 189, 185, 187, 186, 182, 185, 184, 180, 188, 187, 183, 176, 175, 171, 163, 162, 158, 161, 160, 156, 169, 168, 164, 177, 176, 172, 179, 178, 174, 178, 177, 173, 192, 191, 186, 168, 167, 162, 144, 143, 138, 138, 137, 132, 147, 146, 142, 160, 159, 155, 171, 170, 166, 178, 177, 173, 179, 178, 174, 167, 166, 162, 166, 165, 163, 179, 178, 176, 185, 184, 182, 184, 180, 179, 189, 185, 184, 201, 197, 196, 190, 186, 183, 171, 167, 164, 163, 158, 155, 161, 157, 154, 150, 145, 142, 138, 133, 130, 125, 120, 117, 111, 106, 103, 108, 103, 100, 120, 115, 112, 146, 141, 138, 158, 153, 149, 151, 143, 141, 151, 143, 140, 152, 144, 142, 138, 130, 128, 148, 138, 137, 170, 160, 159, 168, 158, 157, 136, 126, 125, 108, 98, 97, 98, 88, 87, 112, 102, 101, 134, 124, 123, 157, 147, 145, 152, 142, 140, 145, 135, 133, 138, 128, 126, 135, 125, 123, 135, 125, 123, 138, 129, 124, 141, 132, 127, 138, 129, 124, 140, 131, 126, 135, 126, 121, 128, 119, 114, 131, 122, 117, 143, 134, 129, 148, 139, 134, 144, 135, 130, 163, 154, 149, 169, 160, 155, 176, 167, 162, 177, 168, 163, 172, 163, 158, 165, 156, 151, 161, 152, 147, 160, 151, 146, 143, 132, 128, 134, 123, 119, 133, 122, 118, 147, 136, 132, 165, 154, 150, 171, 160, 156, 167, 158, 153, 163, 154, 149, 163, 154, 149, 154, 145, 140, 143, 134, 129, 137, 130, 124, 140, 131, 126, 143, 136, 130, 146, 137, 132, 146, 137, 132, 132, 123, 118, 120, 111, 106, 117, 108, 103, 131, 122, 117, 145, 136, 131, 147, 138, 133, 147, 138, 133, 149, 140, 135, 156, 147, 142, 158, 149, 144, 159, 150, 145, 156, 147, 142, 152, 143, 138, 148, 139, 134, 147, 138, 133, 147, 138, 133, 154, 145, 140, 158, 149, 144, 162, 152, 150, 162, 152, 150, 160, 150, 148, 161, 151, 149, 166, 156, 154, 171, 161, 159, 174, 164, 162, 172, 162, 160, 170, 160, 158, 168, 158, 156, 167, 157, 155, 168, 158, 156, 169, 159, 157, 171, 161, 159, 175, 165, 163, 178, 168, 166, 181, 171, 169, 180, 170, 168, 177, 168, 163, 174, 165, 160, 172, 162, 160, 171, 163, 160, 176, 168, 165, 179, 174, 171, 184, 180, 179, 189, 187, 188, 195, 195, 195, 202, 203, 205, 211, 212, 214, 217, 218, 222, 222, 225, 230, 225, 228, 235, 228, 231, 236, 232, 235, 240, 236, 239, 244, 239, 242, 247, 240, 243, 248, 241, 244, 249, 239, 243, 246, 239, 243, 246, 240, 244, 247, 241, 245, 248, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 247, 246, 251, 246, 247, 251, 247, 246, 251, 246, 247, 251, 247, 246, 251, 246, 247, 251, 247, 246, 251, 246, 247, 251, 247, 246, 251, 246, 247, 251, 247, 246, 251, 246, 247, 251, 247, 246, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 241, 244, 249, 240, 243, 248, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 237, 240, 245, 234, 237, 242, 232, 233, 238, 230, 231, 235, 227, 228, 232, 223, 224, 226, 218, 218, 220, 214, 214, 216, 217, 215, 218, 213, 211, 212, 211, 207, 208, 209, 205, 204, 211, 207, 206, 213, 209, 208, 214, 210, 209, 215, 211, 210, 215, 210, 207, 213, 208, 205, 211, 206, 203, 207, 202, 199, 203, 198, 195, 200, 195, 192, 197, 192, 189, 195, 190, 187, 193, 188, 185, 191, 186, 183, 190, 185, 182, 190, 185, 182, 192, 187, 184, 192, 187, 184, 190, 185, 182, 189, 184, 181, 189, 184, 181, 190, 185, 182, 191, 186, 183, 191, 186, 183, 190, 185, 182, 188, 183, 180, 186, 181, 178, 184, 179, 176, 184, 179, 176, 180, 175, 172, 173, 168, 165, 167, 162, 159, 165, 160, 157, 167, 162, 159, 171, 166, 163, 173, 168, 165, 165, 160, 157, 161, 156, 152, 159, 154, 151, 161, 156, 152, 161, 156, 153, 161, 156, 152, 167, 162, 159, 174, 169, 165, 177, 172, 169, 177, 172, 168, 177, 172, 169, 177, 172, 168, 177, 172, 169, 173, 168, 164, 167, 162, 159, 163, 158, 154, 162, 157, 153, 175, 170, 166, 179, 174, 170, 171, 166, 162, 165, 160, 156, 169, 166, 161, 173, 170, 165, 171, 168, 163, 170, 167, 162, 166, 163, 158, 162, 159, 154, 162, 157, 153, 164, 159, 155, 163, 158, 154, 158, 153, 149, 153, 150, 145, 149, 148, 143, 151, 150, 145, 156, 155, 150, 163, 162, 157, 170, 169, 164, 175, 174, 169, 180, 177, 172, 180, 177, 172, 179, 174, 171, 192, 187, 184, 198, 194, 191, 169, 165, 162, 129, 125, 122, 126, 122, 121, 135, 134, 132, 129, 127, 128, 137, 133, 134, 163, 153, 152, 107, 87, 80, 58, 26, 11, 90, 45, 14, 166, 114, 67, 228, 171, 104, 225, 166, 88, 230, 170, 84, 236, 179, 92, 245, 188, 111, 245, 191, 119, 237, 186, 121, 226, 178, 116, 218, 172, 110, 214, 170, 105, 214, 176, 105, 196, 160, 82, 182, 148, 61, 179, 148, 55, 176, 147, 53, 161, 141, 44, 150, 137, 45, 143, 139, 48, 119, 123, 36, 120, 128, 45, 109, 120, 44, 78, 86, 26, 38, 40, 1, 10, 7, 0, 7, 0, 5, 13, 2, 19, 13, 7, 17, 5, 4, 10, 4, 1, 12, 8, 5, 16, 12, 6, 16, 7, 2, 9, 4, 0, 4, 3, 0, 2, 3, 1, 6, 3, 2, 10, 3, 3, 15, 5, 9, 21, 2, 11, 18, 0, 4, 4, 0, 13, 3, 17, 46, 18, 89, 140, 84, 101, 162, 85, 105, 160, 66, 112, 157, 54, 152, 178, 77, 186, 192, 96, 196, 178, 92, 202, 167, 83, 227, 183, 96, 228, 182, 94, 227, 182, 97, 227, 182, 99, 230, 183, 105, 237, 184, 104, 243, 186, 96, 250, 187, 90, 247, 179, 78, 234, 161, 50, 232, 148, 23, 201, 122, 0, 184, 116, 5, 157, 110, 28, 89, 67, 26, 52, 53, 48, 106, 126, 151, 134, 162, 201, 135, 160, 191, 136, 156, 181, 172, 187, 206, 178, 181, 190, 135, 117, 115, 95, 66, 60, 116, 87, 83, 114, 86, 83, 130, 105, 109, 145, 126, 132, 147, 134, 141, 165, 155, 163, 183, 178, 182, 182, 180, 181, 205, 204, 202, 174, 174, 172, 204, 202, 203, 191, 190, 188, 173, 172, 170, 207, 206, 202, 210, 207, 202, 199, 198, 193, 205, 204, 202, 209, 209, 207, 216, 214, 215, 218, 218, 218, 219, 219, 219, 221, 221, 221, 227, 227, 227, 232, 232, 232, 236, 236, 236, 239, 239, 239, 242, 242, 242, 243, 243, 243, 242, 242, 242, 241, 241, 241, 242, 242, 242, 244, 244, 244, 246, 244, 245, 246, 244, 245, 246, 244, 245, 247, 245, 246, 247, 245, 246, 247, 245, 246, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 249, 247, 248, 250, 248, 249, 250, 248, 249, 250, 248, 249, 248, 246, 247, 247, 245, 246, 246, 244, 245, 246, 244, 245, 246, 244, 245, 246, 244, 245, 247, 245, 246, 247, 245, 246, 248, 246, 247, 248, 246, 247, 248, 246, 247, 247, 245, 246, 247, 245, 246, 247, 245, 246, 246, 244, 245, 245, 243, 244, 243, 241, 242, 241, 239, 240, 240, 238, 239, 242, 240, 241, 240, 238, 239, 237, 235, 236, 236, 234, 235, 235, 233, 234, 232, 230, 231, 228, 226, 227, 224, 222, 223, 218, 218, 218, 219, 219, 217, 229, 229, 229, 214, 212, 213, 203, 201, 202, 186, 184, 185, 166, 162, 163, 191, 187, 188, 221, 217, 218, 203, 201, 202, 195, 193, 194, 205, 205, 205, 215, 215, 215, 213, 215, 214, 206, 208, 207, 203, 205, 204, 214, 216, 215, 200, 202, 201, 196, 198, 197, 207, 207, 207, 213, 213, 213, 206, 206, 204, 200, 200, 198, 202, 202, 200, 193, 193, 191, 192, 192, 190, 194, 194, 192, 195, 195, 193, 190, 190, 188, 182, 182, 180, 180, 179, 177, 183, 182, 180, 174, 173, 171, 193, 192, 190, 202, 201, 199, 194, 193, 191, 193, 192, 190, 202, 201, 199, 203, 202, 200, 195, 194, 192, 203, 202, 200, 206, 205, 203, 200, 199, 197, 187, 186, 184, 184, 183, 181, 193, 192, 190, 200, 199, 197, 198, 198, 196, 195, 195, 193, 199, 201, 198, 203, 203, 201, 197, 197, 195, 186, 186, 184, 181, 181, 179, 185, 186, 181, 191, 192, 187, 186, 187, 182, 177, 178, 173, 167, 166, 162, 165, 164, 160, 176, 175, 170, 188, 187, 182, 187, 186, 181, 179, 178, 173, 178, 174, 171, 173, 169, 166, 180, 179, 175, 185, 184, 180, 182, 183, 178, 190, 191, 186, 193, 194, 189, 179, 180, 175, 170, 169, 165, 174, 173, 169, 173, 169, 166, 175, 171, 168, 186, 182, 179, 189, 184, 181, 186, 181, 178, 190, 185, 182, 175, 170, 167, 168, 163, 160, 158, 150, 148, 147, 142, 139, 152, 144, 141, 162, 154, 151, 169, 161, 158, 169, 161, 158, 172, 164, 161, 168, 160, 157, 163, 155, 152, 160, 153, 147, 160, 152, 149, 165, 158, 152, 172, 164, 161, 178, 168, 166, 158, 147, 145, 162, 151, 149, 142, 131, 129, 120, 109, 107, 126, 115, 113, 146, 135, 133, 158, 147, 145, 165, 154, 152, 173, 162, 160, 144, 133, 131, 125, 114, 112, 131, 120, 118, 141, 130, 128, 137, 126, 124, 127, 116, 114, 123, 112, 110, 117, 106, 102, 135, 124, 120, 143, 132, 128, 133, 122, 118, 123, 112, 108, 128, 117, 113, 140, 129, 125, 148, 137, 133, 150, 139, 135, 150, 139, 135, 153, 142, 138, 160, 149, 145, 167, 156, 152, 168, 157, 153, 162, 151, 147, 156, 145, 141, 159, 148, 146, 166, 155, 153, 173, 162, 160, 171, 160, 158, 162, 151, 149, 154, 143, 141, 151, 140, 138, 153, 142, 140, 162, 151, 149, 160, 149, 147, 156, 145, 143, 150, 140, 138, 148, 137, 135, 144, 134, 132, 144, 133, 131, 143, 132, 128, 140, 129, 125, 142, 131, 125, 146, 135, 129, 149, 138, 132, 151, 140, 134, 152, 141, 135, 151, 140, 134, 150, 139, 133, 164, 153, 147, 158, 147, 141, 153, 142, 136, 150, 139, 133, 147, 136, 130, 146, 135, 129, 152, 141, 135, 161, 150, 144, 150, 141, 134, 149, 140, 133, 149, 140, 135, 151, 142, 137, 155, 146, 141, 161, 152, 147, 167, 158, 153, 171, 162, 157, 170, 161, 156, 172, 163, 158, 173, 163, 161, 173, 163, 161, 171, 161, 159, 169, 159, 157, 170, 160, 158, 172, 162, 160, 178, 170, 167, 180, 172, 169, 183, 173, 171, 182, 172, 170, 179, 169, 167, 175, 165, 163, 172, 164, 161, 172, 164, 161, 181, 173, 171, 181, 176, 173, 185, 181, 180, 190, 188, 189, 198, 198, 200, 208, 209, 213, 216, 217, 221, 219, 222, 227, 226, 229, 234, 229, 232, 237, 233, 236, 241, 234, 237, 242, 235, 238, 243, 235, 238, 243, 237, 240, 245, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 246, 249, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 240, 243, 248, 239, 242, 247, 239, 242, 247, 238, 241, 246, 239, 242, 247, 236, 239, 244, 234, 235, 240, 232, 233, 238, 229, 230, 234, 225, 226, 230, 221, 220, 225, 217, 216, 221, 217, 215, 218, 213, 211, 214, 210, 206, 207, 209, 205, 206, 210, 206, 205, 212, 208, 207, 213, 209, 208, 213, 209, 208, 213, 208, 205, 212, 207, 204, 210, 205, 202, 207, 202, 199, 204, 199, 196, 201, 196, 193, 198, 193, 190, 197, 192, 189, 196, 191, 188, 194, 189, 186, 192, 187, 184, 192, 187, 184, 194, 189, 186, 194, 189, 186, 192, 187, 184, 190, 185, 182, 189, 184, 181, 190, 185, 182, 192, 187, 184, 193, 188, 185, 192, 187, 184, 190, 185, 182, 188, 183, 180, 187, 182, 179, 190, 185, 182, 186, 181, 178, 180, 175, 172, 175, 170, 167, 173, 168, 165, 174, 169, 166, 177, 172, 169, 179, 174, 171, 180, 175, 172, 173, 168, 165, 169, 164, 161, 173, 168, 165, 176, 171, 168, 173, 168, 165, 169, 164, 161, 167, 162, 159, 156, 151, 148, 161, 156, 153, 169, 164, 161, 177, 172, 169, 179, 174, 171, 175, 170, 167, 166, 161, 158, 159, 154, 151, 145, 140, 136, 158, 153, 149, 168, 163, 159, 168, 163, 159, 164, 159, 155, 163, 158, 154, 162, 157, 153, 160, 155, 151, 165, 160, 156, 166, 161, 157, 169, 164, 160, 171, 166, 162, 167, 162, 158, 154, 149, 145, 134, 129, 125, 119, 116, 111, 124, 125, 117, 137, 140, 131, 155, 156, 150, 165, 166, 160, 169, 168, 163, 172, 171, 166, 181, 178, 173, 188, 185, 180, 203, 198, 195, 199, 194, 191, 195, 191, 188, 175, 171, 168, 143, 139, 136, 134, 130, 127, 141, 140, 138, 141, 140, 138, 168, 163, 167, 168, 159, 162, 123, 105, 105, 89, 60, 54, 92, 51, 31, 130, 82, 42, 201, 145, 84, 235, 176, 98, 232, 173, 83, 230, 169, 78, 229, 171, 89, 236, 180, 105, 242, 189, 123, 240, 190, 129, 226, 180, 120, 211, 171, 110, 208, 174, 111, 195, 162, 93, 187, 154, 75, 187, 152, 68, 183, 149, 60, 170, 140, 52, 158, 136, 50, 153, 138, 53, 158, 154, 65, 142, 147, 55, 124, 133, 44, 103, 114, 35, 84, 90, 30, 57, 57, 23, 30, 21, 14, 11, 0, 6, 21, 17, 18, 17, 17, 19, 16, 15, 23, 13, 10, 21, 5, 2, 13, 1, 0, 7, 2, 0, 5, 10, 9, 14, 0, 0, 8, 1, 3, 15, 0, 2, 16, 0, 1, 12, 0, 7, 10, 0, 13, 7, 16, 40, 18, 46, 78, 37, 81, 127, 63, 97, 149, 66, 114, 160, 61, 136, 169, 64, 169, 181, 79, 189, 180, 85, 200, 173, 86, 216, 176, 91, 236, 190, 104, 235, 189, 104, 230, 187, 108, 229, 186, 108, 232, 184, 110, 236, 183, 103, 243, 182, 91, 246, 180, 83, 233, 164, 63, 238, 164, 55, 232, 148, 24, 194, 115, 0, 168, 109, 9, 122, 87, 19, 59, 55, 30, 63, 77, 86, 124, 148, 176, 134, 160, 197, 128, 148, 181, 145, 159, 185, 179, 185, 199, 152, 146, 148, 105, 85, 78, 104, 76, 65, 135, 102, 93, 130, 99, 94, 142, 113, 115, 154, 131, 137, 160, 145, 152, 175, 165, 173, 188, 183, 187, 184, 182, 183, 193, 193, 193, 177, 177, 177, 191, 191, 191, 184, 184, 184, 177, 176, 174, 198, 197, 193, 203, 202, 197, 193, 192, 187, 205, 205, 203, 209, 209, 209, 213, 213, 213, 215, 215, 215, 216, 216, 216, 221, 221, 221, 228, 228, 228, 234, 234, 234, 236, 236, 236, 239, 239, 239, 242, 242, 242, 243, 243, 243, 242, 242, 242, 241, 241, 241, 242, 242, 242, 244, 244, 244, 246, 244, 245, 246, 244, 245, 246, 244, 245, 247, 245, 246, 247, 245, 246, 247, 245, 246, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 250, 248, 249, 250, 248, 249, 250, 248, 249, 249, 247, 248, 247, 245, 246, 247, 245, 246, 246, 244, 245, 246, 244, 245, 247, 245, 246, 247, 245, 246, 247, 245, 246, 248, 246, 247, 248, 246, 247, 248, 246, 247, 246, 244, 245, 247, 245, 246, 247, 245, 246, 246, 244, 245, 245, 243, 244, 243, 241, 242, 242, 240, 241, 241, 239, 240, 243, 241, 242, 241, 239, 240, 238, 236, 237, 237, 235, 236, 236, 234, 235, 234, 232, 233, 230, 228, 229, 225, 225, 225, 212, 212, 212, 212, 214, 213, 222, 222, 222, 213, 213, 213, 210, 208, 209, 199, 197, 198, 183, 179, 180, 203, 199, 200, 218, 214, 215, 209, 205, 206, 204, 202, 203, 211, 209, 210, 213, 213, 213, 208, 208, 208, 203, 205, 204, 203, 205, 204, 213, 213, 211, 212, 212, 210, 211, 211, 209, 210, 210, 208, 212, 212, 210, 213, 213, 211, 208, 208, 206, 201, 201, 199, 196, 196, 194, 196, 196, 194, 198, 198, 196, 202, 202, 200, 200, 200, 198, 196, 196, 194, 197, 197, 195, 201, 201, 199, 195, 194, 192, 193, 192, 190, 193, 192, 190, 194, 193, 191, 198, 197, 195, 200, 199, 197, 201, 200, 198, 200, 199, 197, 198, 197, 195, 203, 202, 200, 201, 200, 198, 190, 189, 187, 185, 184, 182, 190, 189, 187, 194, 193, 191, 193, 193, 191, 187, 187, 185, 184, 186, 183, 180, 182, 179, 179, 181, 178, 180, 180, 178, 182, 182, 180, 184, 185, 180, 185, 186, 181, 195, 196, 191, 187, 188, 183, 174, 173, 169, 165, 164, 160, 167, 166, 161, 173, 172, 167, 172, 171, 166, 165, 164, 159, 173, 169, 166, 161, 157, 154, 157, 156, 152, 157, 156, 152, 157, 158, 153, 169, 170, 165, 175, 176, 171, 163, 164, 159, 147, 146, 142, 155, 154, 150, 153, 149, 146, 144, 140, 137, 139, 134, 131, 124, 119, 116, 113, 105, 103, 115, 107, 105, 120, 112, 110, 135, 127, 125, 150, 142, 140, 153, 145, 143, 148, 140, 137, 144, 136, 133, 143, 135, 132, 144, 136, 133, 163, 155, 152, 161, 153, 150, 159, 152, 146, 156, 149, 143, 151, 144, 138, 141, 134, 128, 128, 121, 115, 120, 111, 106, 101, 90, 88, 143, 129, 128, 169, 155, 154, 169, 155, 154, 163, 149, 148, 152, 138, 137, 140, 126, 125, 136, 122, 121, 125, 111, 110, 138, 124, 123, 141, 127, 126, 131, 117, 116, 127, 113, 112, 132, 118, 117, 132, 118, 117, 125, 111, 110, 133, 122, 118, 140, 129, 125, 142, 131, 127, 134, 123, 119, 131, 120, 116, 137, 126, 122, 142, 131, 127, 141, 130, 126, 134, 123, 119, 137, 126, 122, 143, 132, 128, 152, 141, 137, 162, 151, 147, 169, 158, 154, 172, 161, 157, 173, 162, 158, 162, 151, 149, 161, 150, 148, 158, 147, 145, 152, 141, 139, 148, 137, 135, 149, 138, 136, 155, 144, 142, 160, 149, 147, 162, 151, 149, 163, 152, 150, 163, 152, 150, 163, 152, 150, 160, 149, 147, 156, 145, 143, 152, 141, 139, 150, 139, 135, 154, 143, 139, 150, 139, 133, 145, 134, 128, 143, 132, 126, 147, 136, 130, 155, 144, 138, 163, 152, 146, 168, 157, 151, 149, 138, 132, 145, 134, 128, 144, 133, 127, 144, 133, 127, 138, 127, 121, 130, 119, 113, 127, 116, 110, 129, 118, 112, 140, 131, 124, 143, 134, 127, 150, 141, 134, 157, 148, 141, 163, 154, 149, 168, 159, 154, 171, 162, 157, 172, 163, 158, 174, 165, 160, 175, 166, 161, 175, 165, 163, 174, 164, 162, 172, 162, 160, 171, 161, 159, 173, 163, 161, 175, 165, 163, 171, 163, 160, 174, 166, 163, 178, 168, 166, 179, 169, 167, 178, 168, 166, 176, 166, 164, 175, 167, 164, 175, 167, 164, 184, 179, 176, 185, 181, 178, 189, 185, 186, 191, 191, 191, 199, 198, 203, 207, 208, 212, 213, 216, 221, 217, 220, 225, 225, 228, 233, 228, 231, 236, 232, 235, 240, 234, 237, 242, 234, 237, 242, 235, 238, 243, 237, 240, 245, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 241, 244, 249, 241, 244, 249, 240, 243, 248, 239, 242, 247, 239, 242, 247, 240, 243, 248, 237, 240, 245, 234, 237, 242, 232, 235, 240, 231, 232, 236, 228, 229, 233, 223, 222, 227, 219, 218, 223, 216, 214, 217, 212, 210, 213, 208, 206, 207, 207, 205, 206, 210, 206, 205, 211, 207, 206, 212, 208, 207, 211, 207, 206, 210, 205, 202, 210, 205, 202, 208, 203, 200, 206, 201, 198, 204, 199, 196, 202, 197, 194, 201, 196, 193, 200, 195, 192, 198, 193, 190, 196, 191, 188, 194, 189, 186, 194, 189, 186, 196, 191, 188, 196, 191, 188, 194, 189, 186, 192, 187, 184, 189, 184, 181, 190, 185, 182, 192, 187, 184, 194, 189, 186, 194, 189, 186, 193, 188, 185, 191, 186, 183, 189, 184, 181, 192, 187, 184, 189, 184, 181, 184, 179, 176, 180, 175, 172, 178, 173, 170, 178, 173, 170, 180, 175, 172, 182, 177, 174, 180, 175, 172, 172, 167, 164, 169, 164, 161, 176, 171, 168, 181, 176, 173, 176, 171, 168, 164, 159, 156, 156, 151, 148, 162, 157, 154, 168, 163, 160, 177, 172, 169, 185, 180, 177, 187, 182, 179, 184, 179, 176, 177, 172, 169, 172, 167, 164, 164, 159, 155, 161, 156, 152, 158, 153, 149, 155, 150, 146, 150, 145, 141, 148, 143, 139, 156, 151, 147, 167, 162, 158, 152, 147, 143, 150, 145, 141, 150, 145, 141, 155, 150, 146, 163, 158, 154, 169, 164, 160, 170, 165, 161, 167, 164, 159, 160, 161, 153, 165, 168, 159, 173, 174, 168, 175, 176, 170, 173, 172, 167, 169, 168, 163, 170, 167, 162, 171, 168, 163, 197, 192, 189, 189, 184, 181, 193, 189, 186, 195, 191, 188, 174, 173, 169, 150, 149, 145, 134, 133, 131, 124, 123, 121, 156, 151, 155, 150, 144, 146, 129, 117, 119, 105, 84, 79, 71, 42, 26, 78, 39, 6, 151, 104, 50, 209, 155, 83, 225, 165, 79, 224, 160, 70, 224, 160, 72, 231, 170, 87, 239, 185, 111, 241, 192, 125, 228, 187, 123, 215, 179, 117, 211, 177, 114, 205, 171, 107, 201, 167, 96, 198, 164, 90, 191, 157, 83, 179, 147, 72, 169, 143, 69, 163, 145, 69, 159, 151, 70, 139, 139, 51, 121, 126, 36, 114, 122, 36, 114, 120, 46, 99, 103, 44, 70, 68, 30, 40, 38, 15, 4, 6, 0, 0, 5, 0, 3, 7, 8, 6, 11, 15, 5, 9, 18, 0, 5, 13, 0, 6, 13, 0, 10, 19, 0, 11, 20, 3, 17, 28, 0, 12, 22, 0, 7, 13, 0, 21, 16, 23, 48, 29, 59, 86, 53, 93, 125, 75, 94, 131, 61, 112, 148, 61, 135, 162, 67, 159, 173, 75, 180, 176, 77, 190, 167, 71, 210, 171, 78, 236, 189, 97, 240, 193, 101, 238, 192, 104, 232, 191, 111, 232, 188, 115, 235, 185, 114, 238, 181, 104, 242, 176, 82, 243, 171, 69, 243, 172, 68, 252, 178, 69, 236, 152, 36, 193, 116, 10, 159, 103, 20, 95, 65, 13, 46, 48, 35, 83, 105, 119, 134, 161, 191, 128, 154, 189, 133, 149, 182, 173, 179, 203, 191, 187, 201, 129, 117, 117, 92, 70, 59, 127, 99, 85, 137, 105, 94, 130, 100, 92, 137, 109, 108, 150, 130, 132, 162, 147, 152, 174, 165, 170, 178, 173, 177, 170, 168, 169, 175, 175, 175, 186, 186, 186, 180, 178, 181, 184, 182, 185, 186, 184, 187, 188, 186, 187, 201, 200, 198, 196, 195, 191, 206, 206, 206, 208, 208, 208, 211, 211, 211, 213, 213, 213, 216, 216, 216, 221, 221, 221, 228, 228, 228, 233, 233, 233, 236, 236, 236, 239, 239, 239, 242, 242, 242, 243, 243, 243, 242, 242, 242, 241, 241, 241, 242, 242, 242, 244, 244, 244, 245, 243, 244, 246, 244, 245, 246, 244, 245, 246, 244, 245, 247, 245, 246, 247, 245, 246, 247, 245, 246, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 249, 247, 248, 249, 247, 248, 250, 248, 249, 250, 248, 249, 250, 248, 249, 249, 247, 248, 248, 246, 247, 247, 245, 246, 247, 245, 246, 247, 245, 246, 247, 245, 246, 247, 245, 246, 247, 245, 246, 247, 245, 246, 247, 245, 246, 247, 245, 246, 246, 244, 245, 246, 244, 245, 246, 244, 245, 246, 244, 245, 245, 243, 244, 244, 242, 243, 242, 240, 241, 241, 239, 240, 244, 242, 243, 242, 240, 241, 240, 238, 239, 239, 237, 238, 239, 237, 238, 237, 235, 236, 233, 231, 232, 229, 229, 229, 214, 214, 214, 211, 213, 212, 218, 218, 218, 215, 215, 215, 217, 215, 216, 211, 209, 210, 198, 194, 195, 207, 203, 204, 213, 209, 210, 212, 208, 209, 213, 211, 212, 216, 214, 215, 212, 212, 212, 205, 205, 205, 201, 203, 202, 204, 206, 205, 201, 201, 199, 212, 212, 210, 213, 213, 211, 205, 205, 203, 204, 204, 202, 210, 210, 208, 206, 206, 204, 193, 193, 191, 189, 189, 187, 188, 188, 186, 190, 190, 188, 195, 195, 193, 196, 196, 194, 196, 196, 194, 201, 201, 199, 207, 207, 205, 201, 200, 198, 182, 181, 179, 172, 171, 169, 181, 180, 178, 188, 187, 185, 184, 183, 181, 183, 182, 180, 188, 187, 185, 184, 183, 181, 193, 192, 190, 198, 197, 195, 193, 192, 190, 187, 186, 184, 188, 187, 185, 192, 191, 189, 192, 192, 190, 188, 188, 186, 178, 180, 177, 170, 172, 169, 172, 174, 171, 181, 181, 179, 186, 186, 184, 184, 185, 180, 179, 180, 175, 172, 171, 167, 176, 175, 171, 178, 177, 173, 174, 173, 169, 171, 170, 165, 166, 165, 160, 158, 157, 152, 149, 148, 143, 162, 158, 155, 163, 159, 156, 171, 170, 166, 180, 179, 175, 182, 181, 177, 182, 181, 177, 169, 170, 165, 148, 149, 144, 152, 151, 147, 149, 148, 144, 138, 134, 131, 132, 128, 125, 134, 129, 126, 116, 111, 108, 90, 82, 80, 75, 67, 65, 99, 91, 89, 103, 95, 93, 103, 95, 93, 98, 90, 88, 94, 86, 83, 100, 92, 89, 115, 107, 104, 127, 119, 116, 153, 145, 142, 158, 150, 147, 159, 152, 146, 150, 143, 137, 132, 125, 119, 110, 103, 97, 94, 87, 81, 88, 79, 74, 133, 122, 120, 154, 143, 141, 154, 143, 141, 134, 123, 121, 122, 111, 109, 119, 108, 106, 125, 114, 112, 136, 125, 123, 125, 114, 112, 133, 122, 120, 135, 124, 122, 134, 123, 121, 144, 133, 131, 159, 148, 146, 159, 148, 146, 148, 137, 135, 158, 147, 143, 152, 141, 137, 141, 130, 126, 131, 120, 116, 128, 117, 113, 127, 116, 112, 120, 109, 105, 109, 98, 94, 141, 130, 126, 145, 134, 130, 151, 140, 136, 154, 143, 139, 155, 144, 140, 154, 143, 139, 153, 142, 138, 154, 143, 139, 160, 149, 147, 154, 143, 141, 147, 136, 134, 144, 133, 131, 147, 136, 134, 154, 143, 141, 160, 149, 147, 164, 153, 151, 164, 153, 151, 161, 150, 148, 157, 146, 144, 153, 142, 140, 149, 138, 136, 146, 135, 133, 144, 133, 131, 143, 132, 128, 148, 137, 133, 148, 137, 131, 148, 137, 131, 151, 140, 134, 154, 143, 137, 155, 144, 138, 154, 143, 137, 152, 141, 135, 153, 142, 136, 147, 136, 130, 140, 129, 123, 135, 124, 118, 126, 115, 109, 114, 103, 97, 108, 97, 91, 108, 97, 91, 129, 120, 113, 135, 126, 119, 145, 136, 129, 155, 146, 139, 161, 152, 147, 162, 153, 148, 160, 151, 146, 159, 150, 145, 165, 156, 151, 166, 157, 152, 167, 157, 155, 166, 156, 154, 167, 157, 155, 169, 159, 157, 175, 165, 163, 179, 169, 167, 168, 160, 157, 171, 163, 160, 177, 167, 165, 179, 169, 167, 180, 170, 168, 180, 170, 168, 181, 173, 170, 183, 175, 172, 190, 185, 182, 190, 186, 183, 193, 189, 190, 194, 194, 194, 201, 200, 205, 207, 208, 212, 212, 215, 220, 216, 219, 224, 224, 227, 232, 227, 230, 235, 231, 234, 239, 233, 236, 241, 234, 237, 242, 235, 238, 243, 237, 240, 245, 239, 242, 247, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 241, 244, 249, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 237, 240, 245, 234, 237, 242, 231, 234, 239, 231, 232, 236, 228, 229, 233, 224, 223, 228, 220, 219, 224, 215, 213, 216, 212, 210, 213, 208, 206, 207, 207, 205, 206, 210, 206, 205, 211, 207, 206, 210, 206, 205, 209, 205, 204, 208, 203, 200, 208, 203, 200, 207, 202, 199, 206, 201, 198, 205, 200, 197, 203, 198, 195, 202, 197, 194, 202, 197, 194, 199, 194, 191, 197, 192, 189, 195, 190, 187, 195, 190, 187, 196, 191, 188, 195, 190, 187, 193, 188, 185, 191, 186, 183, 188, 183, 180, 190, 185, 182, 192, 187, 184, 193, 188, 185, 194, 189, 186, 193, 188, 185, 191, 186, 183, 190, 185, 182, 189, 184, 181, 187, 182, 179, 184, 179, 176, 180, 175, 172, 178, 173, 170, 178, 173, 170, 178, 173, 170, 178, 173, 170, 174, 169, 166, 169, 164, 161, 168, 163, 160, 173, 168, 165, 175, 170, 167, 169, 164, 161, 162, 157, 154, 158, 153, 150, 174, 169, 166, 176, 171, 168, 179, 174, 171, 179, 174, 171, 178, 173, 170, 177, 172, 169, 177, 172, 169, 177, 172, 169, 174, 169, 165, 164, 159, 155, 158, 153, 149, 158, 153, 149, 156, 151, 147, 154, 149, 145, 165, 160, 156, 181, 176, 172, 180, 175, 171, 169, 164, 160, 155, 150, 146, 147, 142, 138, 150, 145, 141, 157, 152, 148, 163, 158, 154, 165, 162, 157, 131, 132, 124, 127, 130, 121, 130, 131, 125, 146, 147, 141, 169, 168, 163, 185, 184, 179, 189, 186, 181, 186, 183, 178, 176, 171, 168, 176, 171, 168, 184, 180, 177, 195, 191, 188, 189, 188, 184, 166, 165, 161, 133, 132, 130, 107, 105, 106, 135, 130, 134, 149, 143, 147, 163, 154, 157, 140, 129, 127, 87, 69, 57, 78, 50, 26, 136, 97, 54, 186, 138, 76, 214, 157, 78, 225, 161, 73, 233, 168, 76, 237, 173, 83, 235, 179, 96, 230, 182, 106, 226, 187, 118, 225, 190, 126, 216, 182, 119, 216, 182, 118, 217, 182, 116, 212, 177, 111, 203, 168, 102, 191, 157, 93, 181, 153, 88, 174, 154, 85, 149, 135, 60, 135, 128, 47, 121, 121, 33, 115, 119, 32, 116, 121, 39, 114, 117, 46, 105, 106, 48, 93, 96, 51, 36, 41, 11, 15, 22, 4, 0, 6, 0, 0, 7, 3, 4, 15, 17, 4, 19, 24, 0, 17, 24, 0, 13, 20, 0, 19, 27, 1, 26, 33, 0, 20, 24, 0, 21, 17, 21, 48, 31, 58, 85, 54, 92, 120, 72, 119, 148, 84, 125, 152, 73, 141, 162, 71, 156, 167, 73, 171, 168, 73, 184, 163, 70, 199, 164, 70, 223, 177, 83, 244, 194, 99, 238, 189, 94, 233, 190, 98, 230, 189, 110, 232, 188, 117, 239, 186, 116, 243, 182, 102, 246, 174, 76, 243, 166, 58, 248, 174, 65, 241, 164, 56, 223, 140, 34, 188, 115, 23, 137, 86, 21, 77, 54, 20, 59, 68, 67, 102, 129, 150, 126, 157, 188, 121, 145, 179, 157, 168, 198, 202, 200, 222, 182, 172, 183, 124, 106, 106, 111, 87, 77, 144, 116, 102, 130, 101, 87, 125, 97, 86, 128, 103, 99, 145, 125, 126, 163, 151, 155, 175, 166, 171, 169, 165, 166, 155, 153, 154, 157, 157, 157, 193, 193, 195, 178, 176, 181, 188, 186, 191, 194, 192, 197, 180, 178, 181, 204, 202, 203, 211, 209, 210, 202, 202, 202, 205, 205, 205, 210, 210, 210, 215, 215, 215, 220, 220, 220, 224, 224, 224, 227, 227, 227, 230, 230, 230, 236, 236, 236, 239, 239, 239, 242, 242, 242, 243, 243, 243, 242, 242, 242, 241, 241, 241, 242, 242, 242, 244, 244, 244, 245, 243, 244, 245, 243, 244, 246, 244, 245, 246, 244, 245, 246, 244, 245, 247, 245, 246, 247, 245, 246, 247, 245, 246, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 249, 247, 248, 250, 248, 249, 250, 248, 249, 251, 249, 250, 250, 248, 249, 249, 247, 248, 248, 246, 247, 247, 245, 246, 248, 246, 247, 248, 246, 247, 247, 245, 246, 247, 245, 246, 247, 245, 246, 247, 245, 246, 247, 245, 246, 247, 245, 246, 245, 243, 244, 245, 243, 244, 246, 244, 245, 246, 244, 245, 245, 243, 244, 244, 242, 243, 243, 241, 242, 242, 240, 241, 244, 242, 243, 243, 241, 242, 241, 239, 240, 241, 239, 240, 241, 239, 240, 240, 238, 239, 236, 234, 235, 232, 232, 232, 225, 225, 225, 219, 221, 220, 219, 219, 219, 218, 218, 218, 220, 218, 219, 214, 212, 213, 202, 198, 199, 198, 194, 195, 209, 205, 206, 211, 207, 208, 213, 211, 212, 217, 215, 216, 215, 215, 215, 210, 210, 210, 205, 207, 206, 204, 206, 205, 194, 194, 192, 204, 204, 202, 209, 209, 207, 205, 205, 203, 203, 203, 201, 205, 205, 203, 203, 203, 201, 197, 197, 195, 187, 187, 185, 184, 184, 182, 185, 185, 183, 188, 188, 186, 188, 188, 186, 188, 188, 186, 193, 193, 191, 201, 201, 199, 212, 211, 209, 196, 195, 193, 187, 186, 184, 192, 191, 189, 197, 196, 194, 193, 192, 190, 190, 189, 187, 193, 192, 190, 170, 169, 167, 182, 181, 179, 193, 192, 190, 194, 193, 191, 190, 189, 187, 188, 187, 185, 191, 190, 188, 194, 193, 191, 195, 195, 193, 187, 189, 186, 182, 184, 181, 182, 184, 181, 187, 187, 185, 188, 188, 186, 183, 184, 179, 177, 178, 173, 178, 177, 173, 178, 177, 173, 169, 168, 164, 154, 153, 149, 146, 145, 140, 150, 149, 144, 159, 158, 153, 165, 164, 159, 178, 174, 171, 175, 171, 168, 168, 167, 163, 161, 160, 156, 160, 159, 155, 170, 169, 165, 178, 179, 174, 179, 180, 175, 168, 167, 163, 170, 169, 165, 166, 162, 159, 164, 160, 157, 169, 164, 161, 156, 151, 148, 138, 130, 128, 130, 122, 120, 117, 109, 107, 118, 110, 108, 127, 119, 117, 143, 135, 133, 159, 151, 148, 168, 160, 157, 172, 164, 161, 174, 166, 163, 169, 161, 158, 179, 171, 168, 185, 178, 172, 175, 168, 162, 156, 149, 143, 147, 140, 134, 153, 146, 140, 164, 157, 151, 157, 147, 145, 158, 147, 145, 141, 130, 128, 126, 115, 113, 131, 120, 118, 137, 126, 124, 137, 126, 124, 138, 127, 125, 145, 134, 132, 122, 111, 109, 106, 95, 93, 108, 97, 95, 112, 101, 99, 109, 98, 96, 109, 98, 96, 115, 104, 102, 125, 114, 110, 121, 110, 106, 119, 108, 104, 124, 113, 109, 137, 126, 122, 147, 136, 132, 148, 137, 133, 145, 134, 130, 135, 124, 120, 144, 133, 129, 154, 143, 139, 158, 147, 143, 154, 143, 139, 148, 137, 133, 144, 133, 129, 143, 132, 128, 137, 126, 124, 133, 122, 120, 132, 121, 119, 137, 126, 124, 145, 134, 132, 150, 139, 137, 148, 137, 135, 144, 133, 131, 139, 128, 126, 135, 124, 122, 130, 119, 117, 129, 118, 116, 134, 123, 121, 146, 135, 133, 159, 148, 146, 167, 156, 152, 158, 147, 143, 157, 146, 140, 157, 146, 140, 157, 146, 140, 155, 144, 138, 148, 137, 131, 137, 126, 120, 128, 117, 111, 152, 141, 135, 141, 130, 124, 129, 118, 112, 125, 114, 108, 124, 113, 107, 125, 114, 108, 132, 121, 115, 140, 129, 123, 136, 127, 120, 142, 133, 126, 150, 141, 134, 156, 147, 140, 159, 150, 145, 158, 149, 144, 154, 145, 140, 151, 142, 137, 151, 142, 137, 152, 143, 138, 155, 145, 143, 157, 147, 145, 160, 150, 148, 165, 155, 153, 173, 163, 161, 179, 169, 167, 173, 165, 162, 176, 168, 165, 181, 171, 169, 183, 173, 171, 184, 174, 172, 185, 175, 173, 187, 179, 176, 190, 182, 179, 190, 185, 182, 191, 187, 184, 193, 189, 190, 196, 196, 196, 202, 201, 206, 209, 210, 214, 214, 217, 222, 218, 221, 226, 222, 225, 230, 226, 229, 234, 230, 233, 238, 232, 235, 240, 233, 236, 241, 234, 237, 242, 237, 240, 245, 239, 242, 247, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 241, 244, 249, 241, 244, 249, 240, 243, 248, 239, 242, 247, 239, 242, 247, 237, 240, 245, 235, 238, 243, 232, 235, 240, 230, 233, 238, 231, 232, 236, 227, 228, 232, 223, 222, 227, 220, 219, 224, 214, 214, 216, 211, 211, 213, 209, 207, 208, 208, 206, 207, 211, 207, 206, 211, 207, 206, 209, 205, 204, 207, 203, 202, 207, 202, 199, 207, 202, 199, 206, 201, 198, 206, 201, 198, 205, 200, 197, 204, 199, 196, 203, 198, 195, 203, 198, 195, 199, 194, 191, 197, 192, 189, 194, 189, 186, 194, 189, 186, 194, 189, 186, 194, 189, 186, 191, 186, 183, 189, 184, 181, 188, 183, 180, 190, 185, 182, 191, 186, 183, 193, 188, 185, 193, 188, 185, 191, 186, 183, 190, 185, 182, 188, 183, 180, 187, 182, 179, 186, 181, 178, 184, 179, 176, 182, 177, 174, 180, 175, 172, 179, 174, 171, 177, 172, 169, 177, 172, 169, 178, 173, 170, 177, 172, 169, 177, 172, 169, 175, 170, 167, 168, 163, 160, 161, 156, 153, 162, 157, 154, 168, 163, 160, 165, 160, 157, 168, 163, 160, 170, 165, 162, 168, 163, 160, 165, 160, 157, 164, 159, 156, 165, 160, 157, 167, 162, 159, 155, 150, 146, 155, 150, 144, 164, 159, 153, 177, 172, 166, 179, 174, 168, 170, 165, 159, 168, 163, 157, 173, 168, 162, 179, 174, 168, 176, 171, 165, 173, 168, 162, 173, 168, 162, 172, 167, 161, 167, 162, 156, 157, 152, 146, 148, 145, 138, 149, 149, 141, 143, 144, 136, 143, 142, 137, 153, 152, 147, 170, 167, 162, 176, 173, 168, 171, 168, 163, 162, 159, 154, 175, 171, 168, 180, 176, 173, 178, 174, 171, 176, 172, 169, 182, 181, 177, 179, 178, 174, 151, 151, 149, 122, 120, 121, 119, 114, 118, 136, 131, 137, 169, 167, 172, 168, 164, 165, 121, 114, 108, 90, 74, 58, 108, 81, 51, 152, 112, 63, 213, 158, 91, 228, 166, 83, 243, 177, 83, 247, 183, 85, 240, 184, 91, 233, 185, 100, 229, 190, 115, 228, 194, 123, 221, 186, 118, 224, 189, 123, 225, 190, 126, 219, 183, 121, 209, 175, 114, 198, 166, 107, 189, 160, 100, 182, 158, 94, 165, 148, 78, 154, 142, 66, 140, 135, 54, 128, 127, 45, 122, 125, 46, 120, 124, 50, 121, 124, 57, 118, 123, 65, 117, 122, 81, 82, 89, 58, 41, 50, 29, 18, 30, 18, 11, 27, 24, 8, 29, 30, 6, 31, 35, 4, 33, 37, 0, 25, 29, 1, 31, 33, 0, 30, 25, 13, 41, 26, 52, 79, 48, 85, 113, 65, 105, 131, 68, 119, 142, 64, 142, 157, 66, 159, 165, 67, 172, 167, 73, 179, 160, 68, 193, 159, 70, 220, 175, 84, 239, 186, 92, 238, 184, 88, 235, 187, 89, 231, 188, 96, 229, 188, 109, 235, 191, 120, 246, 192, 118, 251, 186, 102, 250, 176, 69, 246, 167, 49, 228, 151, 35, 207, 130, 22, 201, 121, 26, 172, 104, 29, 96, 53, 10, 57, 41, 26, 83, 100, 110, 118, 149, 177, 121, 154, 185, 123, 146, 178, 178, 183, 212, 198, 190, 211, 141, 125, 136, 110, 90, 91, 130, 108, 97, 135, 112, 96, 135, 107, 93, 132, 106, 93, 133, 110, 104, 151, 133, 131, 177, 165, 167, 185, 179, 181, 175, 171, 172, 160, 158, 159, 145, 145, 145, 190, 190, 192, 180, 178, 183, 190, 187, 194, 195, 192, 199, 176, 173, 180, 205, 203, 208, 226, 224, 227, 199, 199, 199, 203, 203, 203, 211, 211, 211, 219, 219, 219, 225, 225, 225, 228, 228, 228, 227, 227, 227, 226, 226, 226, 236, 236, 236, 239, 239, 239, 242, 242, 242, 243, 243, 243, 242, 242, 242, 241, 241, 241, 242, 242, 242, 244, 244, 244, 245, 243, 244, 245, 243, 244, 245, 243, 244, 245, 243, 244, 246, 244, 245, 246, 244, 245, 247, 245, 246, 247, 245, 246, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 252, 250, 251, 252, 250, 251, 252, 250, 251, 252, 250, 251, 252, 250, 251, 252, 250, 251, 252, 250, 251, 252, 250, 251, 250, 248, 249, 250, 248, 249, 251, 249, 250, 251, 249, 250, 251, 249, 250, 250, 248, 249, 248, 246, 247, 248, 246, 247, 249, 247, 248, 248, 246, 247, 248, 246, 247, 247, 245, 246, 247, 245, 246, 246, 244, 245, 246, 244, 245, 246, 244, 245, 244, 242, 243, 245, 243, 244, 245, 243, 244, 246, 244, 245, 246, 244, 245, 245, 243, 244, 244, 242, 243, 243, 241, 242, 244, 242, 243, 243, 241, 242, 242, 240, 241, 242, 240, 241, 243, 241, 242, 243, 241, 242, 240, 238, 239, 236, 236, 236, 232, 232, 232, 226, 228, 227, 219, 219, 219, 220, 220, 220, 220, 218, 219, 214, 212, 213, 206, 202, 203, 189, 185, 186, 207, 203, 204, 208, 204, 205, 208, 206, 207, 213, 211, 212, 219, 219, 219, 221, 221, 221, 214, 216, 215, 206, 208, 207, 200, 200, 198, 199, 199, 197, 205, 205, 203, 213, 213, 211, 213, 213, 211, 207, 207, 205, 207, 207, 205, 213, 213, 211, 199, 199, 197, 196, 196, 194, 194, 194, 192, 194, 194, 192, 191, 191, 189, 188, 188, 186, 191, 191, 189, 197, 197, 195, 207, 206, 204, 206, 205, 203, 204, 203, 201, 203, 202, 200, 202, 201, 199, 201, 200, 198, 197, 196, 194, 194, 193, 191, 174, 173, 171, 181, 180, 178, 191, 190, 188, 194, 193, 191, 190, 189, 187, 184, 183, 181, 184, 183, 181, 187, 186, 184, 186, 186, 184, 189, 189, 187, 192, 192, 190, 191, 191, 189, 187, 187, 185, 182, 182, 180, 179, 180, 175, 178, 179, 174, 173, 172, 168, 182, 181, 177, 183, 182, 178, 171, 170, 166, 159, 156, 151, 152, 149, 144, 151, 148, 143, 151, 148, 143, 152, 148, 145, 161, 157, 154, 159, 158, 154, 150, 149, 145, 146, 145, 141, 152, 151, 147, 164, 163, 159, 176, 175, 171, 152, 151, 147, 169, 168, 164, 176, 172, 169, 167, 163, 160, 157, 152, 149, 144, 139, 136, 145, 137, 135, 157, 149, 147, 161, 153, 151, 157, 149, 147, 159, 151, 149, 168, 160, 158, 171, 163, 160, 162, 154, 151, 154, 146, 143, 151, 143, 140, 180, 172, 169, 178, 170, 167, 171, 164, 158, 159, 152, 146, 148, 141, 135, 145, 138, 132, 151, 144, 138, 158, 151, 145, 149, 140, 135, 145, 136, 131, 131, 122, 117, 129, 120, 115, 143, 134, 129, 145, 136, 131, 131, 122, 117, 122, 113, 108, 125, 116, 111, 117, 108, 103, 110, 101, 96, 100, 91, 86, 82, 73, 68, 70, 61, 56, 84, 75, 70, 109, 100, 95, 110, 99, 95, 108, 97, 93, 110, 99, 95, 118, 107, 103, 127, 116, 112, 134, 123, 119, 140, 129, 125, 144, 133, 129, 146, 135, 131, 151, 140, 136, 155, 144, 140, 153, 142, 138, 147, 136, 132, 141, 130, 126, 140, 129, 125, 141, 130, 126, 142, 131, 127, 140, 129, 125, 141, 130, 126, 149, 138, 134, 159, 148, 144, 161, 150, 146, 155, 144, 140, 147, 136, 132, 143, 132, 128, 139, 128, 124, 134, 123, 119, 132, 121, 117, 137, 126, 122, 147, 136, 132, 158, 147, 143, 166, 155, 151, 152, 141, 137, 145, 134, 130, 140, 129, 125, 141, 130, 126, 148, 137, 133, 155, 144, 140, 157, 146, 142, 156, 145, 141, 155, 144, 140, 141, 130, 126, 128, 117, 113, 124, 113, 109, 128, 117, 113, 134, 123, 119, 145, 134, 130, 154, 143, 139, 154, 145, 138, 156, 147, 140, 160, 151, 144, 164, 155, 148, 166, 157, 152, 167, 158, 153, 166, 157, 152, 165, 156, 151, 157, 148, 143, 159, 150, 145, 161, 151, 149, 161, 151, 149, 162, 152, 150, 166, 156, 154, 171, 161, 159, 176, 166, 164, 177, 169, 166, 179, 171, 168, 182, 172, 170, 182, 172, 170, 182, 172, 170, 183, 173, 171, 185, 177, 174, 188, 180, 177, 186, 181, 178, 187, 183, 180, 191, 187, 188, 194, 194, 194, 202, 201, 206, 210, 211, 215, 215, 218, 223, 220, 223, 228, 221, 224, 229, 224, 227, 232, 229, 232, 237, 231, 234, 239, 233, 236, 241, 234, 237, 242, 237, 240, 245, 239, 242, 247, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 241, 244, 249, 240, 243, 248, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 237, 240, 245, 234, 237, 242, 232, 235, 240, 230, 233, 238, 231, 232, 236, 228, 229, 233, 224, 223, 228, 220, 219, 224, 214, 214, 216, 212, 212, 214, 211, 209, 210, 210, 208, 209, 212, 208, 207, 211, 207, 206, 208, 204, 203, 206, 202, 201, 208, 203, 200, 208, 203, 200, 207, 202, 199, 206, 201, 198, 205, 200, 197, 203, 198, 195, 203, 198, 195, 202, 197, 194, 200, 195, 192, 197, 192, 189, 195, 190, 187, 194, 189, 186, 194, 189, 186, 193, 188, 185, 191, 186, 183, 188, 183, 180, 192, 187, 184, 193, 188, 185, 194, 189, 186, 194, 189, 186, 193, 188, 185, 191, 186, 183, 189, 184, 181, 187, 182, 179, 189, 184, 181, 189, 184, 181, 189, 184, 181, 188, 183, 180, 186, 181, 178, 183, 178, 175, 180, 175, 172, 178, 173, 170, 178, 173, 170, 178, 173, 170, 176, 171, 168, 170, 165, 162, 158, 153, 150, 151, 146, 143, 157, 152, 149, 169, 164, 161, 166, 161, 158, 174, 169, 166, 182, 177, 174, 185, 180, 177, 181, 176, 173, 176, 171, 168, 173, 168, 165, 173, 168, 164, 166, 161, 155, 166, 161, 155, 170, 165, 159, 175, 170, 164, 174, 169, 163, 165, 160, 154, 158, 153, 147, 157, 152, 146, 169, 164, 158, 167, 162, 156, 167, 162, 156, 166, 161, 155, 162, 157, 151, 149, 144, 138, 133, 128, 122, 119, 116, 109, 147, 147, 139, 157, 158, 150, 171, 170, 165, 180, 179, 174, 183, 180, 175, 180, 177, 172, 178, 175, 170, 178, 175, 170, 175, 171, 168, 189, 185, 182, 187, 183, 180, 180, 179, 175, 193, 192, 188, 195, 196, 191, 168, 168, 166, 138, 138, 138, 116, 111, 115, 111, 109, 114, 138, 139, 144, 162, 163, 167, 144, 146, 145, 91, 87, 78, 68, 50, 30, 109, 76, 41, 205, 156, 100, 221, 163, 89, 240, 175, 83, 251, 187, 89, 254, 196, 97, 248, 197, 105, 237, 195, 113, 229, 191, 116, 228, 188, 118, 230, 191, 124, 228, 190, 127, 218, 182, 122, 211, 176, 120, 204, 172, 115, 194, 165, 107, 183, 159, 97, 177, 158, 90, 165, 151, 80, 151, 141, 69, 143, 136, 64, 139, 136, 65, 134, 134, 64, 127, 128, 62, 121, 122, 62, 140, 140, 90, 123, 125, 85, 102, 107, 75, 79, 89, 65, 54, 71, 55, 35, 56, 47, 27, 52, 48, 27, 56, 52, 26, 55, 50, 29, 59, 49, 33, 62, 44, 55, 82, 51, 93, 116, 70, 114, 136, 74, 118, 139, 64, 127, 141, 53, 140, 146, 46, 160, 157, 54, 180, 165, 70, 191, 164, 75, 208, 168, 83, 235, 187, 102, 246, 192, 102, 228, 175, 83, 235, 189, 93, 232, 189, 97, 231, 190, 108, 239, 193, 115, 249, 194, 112, 250, 185, 91, 246, 171, 54, 237, 157, 34, 220, 143, 25, 197, 123, 18, 189, 117, 33, 153, 94, 38, 64, 32, 9, 46, 40, 42, 102, 123, 144, 122, 155, 186, 131, 160, 192, 133, 153, 180, 179, 179, 203, 174, 163, 180, 112, 92, 103, 106, 84, 86, 138, 118, 111, 129, 107, 94, 145, 122, 108, 142, 118, 106, 136, 115, 110, 149, 133, 133, 179, 169, 170, 190, 184, 186, 180, 176, 177, 171, 169, 170, 150, 150, 150, 179, 179, 179, 182, 180, 185, 188, 185, 192, 189, 186, 195, 179, 176, 183, 201, 199, 204, 228, 226, 229, 200, 200, 200, 203, 203, 203, 210, 210, 210, 219, 219, 219, 227, 227, 227, 230, 230, 230, 229, 229, 229, 226, 226, 226, 236, 236, 236, 239, 239, 239, 242, 242, 242, 243, 243, 243, 242, 242, 242, 241, 241, 241, 242, 242, 242, 244, 244, 244, 244, 242, 243, 244, 242, 243, 245, 243, 244, 245, 243, 244, 245, 243, 244, 246, 244, 245, 246, 244, 245, 246, 244, 245, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 250, 248, 249, 251, 249, 250, 251, 249, 250, 252, 250, 251, 251, 249, 250, 250, 248, 249, 249, 247, 248, 248, 246, 247, 249, 247, 248, 249, 247, 248, 248, 246, 247, 248, 246, 247, 247, 245, 246, 246, 244, 245, 245, 243, 244, 245, 243, 244, 243, 241, 242, 244, 242, 243, 245, 243, 244, 246, 244, 245, 246, 244, 245, 245, 243, 244, 244, 242, 243, 244, 242, 243, 243, 241, 242, 242, 240, 241, 242, 240, 241, 243, 241, 242, 244, 242, 243, 244, 242, 243, 242, 240, 241, 238, 238, 238, 232, 232, 232, 228, 230, 229, 219, 219, 219, 222, 222, 222, 220, 218, 219, 215, 213, 214, 213, 209, 210, 188, 184, 185, 206, 202, 203, 208, 204, 205, 207, 205, 206, 211, 209, 210, 218, 218, 218, 225, 225, 225, 219, 221, 220, 210, 212, 211, 203, 203, 201, 194, 194, 192, 197, 197, 195, 209, 209, 207, 211, 211, 209, 203, 203, 201, 204, 204, 202, 214, 214, 212, 205, 205, 203, 201, 201, 199, 200, 200, 198, 199, 199, 197, 193, 193, 191, 187, 187, 185, 187, 187, 185, 192, 192, 190, 195, 194, 192, 199, 198, 196, 202, 201, 199, 202, 201, 199, 201, 200, 198, 199, 198, 196, 194, 193, 191, 188, 187, 185, 189, 188, 186, 188, 187, 185, 190, 189, 187, 193, 192, 190, 189, 188, 186, 180, 179, 177, 176, 175, 173, 178, 177, 175, 169, 169, 167, 179, 179, 177, 187, 187, 185, 186, 186, 184, 177, 177, 175, 172, 172, 170, 174, 175, 170, 179, 180, 175, 166, 165, 161, 180, 179, 175, 189, 188, 184, 183, 182, 178, 172, 169, 164, 162, 159, 154, 156, 153, 148, 153, 150, 145, 137, 133, 130, 164, 160, 157, 181, 180, 176, 184, 183, 179, 182, 181, 177, 174, 173, 169, 166, 165, 161, 168, 167, 163, 195, 194, 190, 192, 191, 187, 181, 177, 174, 173, 169, 166, 177, 172, 169, 169, 164, 161, 159, 151, 149, 156, 148, 146, 159, 151, 149, 159, 151, 149, 165, 157, 155, 171, 163, 161, 167, 159, 156, 161, 153, 150, 170, 162, 159, 185, 177, 174, 175, 167, 164, 163, 155, 152, 153, 146, 140, 155, 148, 142, 164, 157, 151, 167, 160, 154, 158, 151, 145, 147, 140, 134, 130, 121, 116, 134, 125, 120, 129, 120, 115, 131, 122, 117, 143, 134, 129, 147, 138, 133, 146, 137, 132, 152, 143, 138, 137, 128, 123, 148, 139, 134, 149, 140, 135, 137, 128, 123, 134, 125, 120, 143, 134, 129, 149, 140, 135, 146, 137, 132, 116, 105, 101, 116, 105, 101, 122, 111, 107, 131, 120, 116, 138, 127, 123, 144, 133, 129, 153, 142, 138, 163, 152, 148, 163, 152, 148, 159, 148, 144, 153, 142, 138, 145, 134, 130, 140, 129, 125, 139, 128, 124, 143, 132, 128, 147, 136, 132, 160, 149, 145, 154, 143, 139, 150, 139, 135, 153, 142, 138, 160, 149, 145, 164, 153, 149, 161, 150, 146, 157, 146, 142, 156, 145, 141, 155, 144, 140, 153, 142, 138, 149, 138, 134, 144, 133, 129, 139, 128, 124, 134, 123, 119, 131, 120, 116, 136, 125, 121, 132, 121, 117, 131, 120, 116, 136, 125, 121, 145, 134, 130, 149, 138, 134, 146, 135, 131, 141, 130, 126, 135, 124, 120, 127, 116, 112, 124, 113, 109, 130, 119, 115, 138, 127, 123, 143, 132, 128, 147, 136, 132, 150, 139, 135, 155, 146, 139, 156, 147, 140, 159, 150, 143, 163, 154, 147, 167, 158, 153, 170, 161, 156, 173, 164, 159, 175, 166, 161, 177, 168, 163, 178, 169, 164, 179, 169, 167, 177, 167, 165, 173, 163, 161, 171, 161, 159, 171, 161, 159, 173, 163, 161, 175, 167, 164, 176, 168, 165, 178, 168, 166, 177, 167, 165, 176, 166, 164, 177, 167, 165, 179, 171, 168, 182, 174, 171, 183, 178, 175, 184, 180, 177, 188, 184, 185, 191, 191, 191, 199, 198, 203, 207, 208, 212, 213, 216, 221, 218, 221, 226, 219, 222, 227, 223, 226, 231, 227, 230, 235, 230, 233, 238, 232, 235, 240, 234, 237, 242, 236, 239, 244, 239, 242, 247, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 241, 244, 249, 240, 243, 248, 240, 243, 248, 239, 242, 247, 238, 241, 246, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 236, 239, 244, 233, 236, 241, 232, 235, 240, 231, 235, 238, 228, 232, 235, 226, 227, 231, 222, 223, 227, 215, 215, 217, 213, 213, 215, 212, 210, 211, 212, 210, 211, 212, 211, 209, 210, 209, 207, 208, 204, 203, 205, 201, 200, 210, 205, 202, 209, 204, 201, 208, 203, 200, 206, 201, 198, 204, 199, 196, 203, 198, 195, 201, 196, 193, 201, 196, 193, 202, 197, 194, 200, 195, 192, 197, 192, 189, 196, 191, 188, 196, 191, 188, 195, 190, 187, 192, 187, 184, 189, 184, 181, 197, 192, 189, 198, 193, 190, 199, 194, 191, 198, 193, 190, 196, 191, 188, 193, 188, 185, 190, 185, 182, 188, 183, 180, 189, 184, 181, 190, 185, 182, 191, 186, 183, 191, 186, 183, 189, 184, 181, 186, 181, 178, 182, 177, 174, 179, 174, 171, 171, 166, 163, 168, 163, 160, 167, 162, 159, 165, 160, 157, 161, 156, 153, 158, 153, 150, 165, 160, 157, 175, 170, 167, 184, 179, 176, 191, 186, 183, 199, 194, 191, 199, 194, 191, 191, 186, 183, 184, 179, 176, 182, 177, 174, 182, 177, 173, 186, 181, 175, 184, 180, 171, 178, 174, 165, 169, 165, 156, 165, 161, 152, 164, 160, 151, 161, 157, 148, 156, 152, 143, 120, 116, 107, 119, 115, 106, 122, 118, 109, 130, 126, 117, 141, 137, 128, 149, 145, 136, 150, 146, 137, 148, 145, 136, 152, 152, 144, 161, 161, 153, 171, 170, 165, 173, 172, 167, 171, 168, 163, 169, 166, 161, 175, 170, 166, 180, 175, 171, 179, 175, 172, 191, 187, 184, 189, 188, 184, 191, 190, 186, 203, 202, 198, 195, 196, 191, 168, 168, 166, 152, 152, 152, 145, 140, 146, 129, 126, 133, 130, 131, 136, 148, 153, 157, 171, 176, 179, 135, 135, 133, 80, 70, 61, 104, 79, 57, 168, 129, 88, 196, 145, 82, 227, 169, 85, 250, 187, 92, 253, 195, 96, 249, 195, 99, 241, 194, 106, 239, 192, 114, 242, 195, 125, 240, 195, 130, 232, 190, 130, 221, 182, 125, 216, 181, 127, 213, 182, 127, 201, 175, 114, 187, 163, 99, 181, 162, 94, 174, 156, 90, 165, 150, 85, 156, 145, 83, 151, 141, 82, 144, 138, 80, 138, 133, 75, 133, 128, 72, 125, 118, 64, 127, 123, 75, 131, 129, 88, 127, 131, 96, 110, 119, 92, 88, 102, 79, 75, 92, 73, 71, 92, 73, 74, 96, 75, 76, 99, 71, 84, 104, 67, 105, 123, 75, 130, 144, 83, 134, 146, 72, 135, 145, 59, 149, 155, 59, 156, 153, 46, 167, 156, 50, 189, 171, 73, 207, 177, 89, 216, 178, 97, 235, 189, 111, 243, 195, 113, 230, 182, 97, 235, 191, 102, 233, 190, 98, 232, 188, 99, 236, 189, 99, 241, 185, 88, 236, 172, 64, 224, 150, 27, 210, 132, 6, 216, 141, 26, 193, 123, 27, 153, 94, 26, 110, 68, 28, 57, 38, 32, 66, 69, 86, 121, 142, 173, 123, 149, 184, 137, 158, 189, 142, 154, 178, 167, 164, 181, 168, 156, 166, 142, 125, 131, 141, 123, 123, 158, 140, 136, 159, 140, 133, 163, 141, 130, 156, 133, 125, 138, 119, 115, 142, 128, 128, 171, 160, 164, 186, 180, 182, 183, 179, 180, 183, 182, 180, 175, 174, 172, 173, 171, 172, 187, 182, 188, 187, 182, 188, 190, 185, 192, 196, 191, 198, 198, 196, 201, 222, 220, 223, 207, 207, 207, 206, 206, 206, 208, 208, 208, 214, 214, 214, 224, 224, 224, 231, 231, 231, 233, 233, 233, 233, 233, 233, 236, 236, 236, 239, 239, 239, 242, 242, 242, 243, 243, 243, 242, 242, 242, 241, 241, 241, 242, 242, 242, 244, 244, 244, 244, 242, 243, 244, 242, 243, 244, 242, 243, 245, 243, 244, 245, 243, 244, 246, 244, 245, 246, 244, 245, 246, 244, 245, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 250, 248, 249, 251, 249, 250, 252, 250, 251, 252, 250, 251, 251, 249, 250, 250, 248, 249, 249, 247, 248, 248, 246, 247, 250, 248, 249, 250, 248, 249, 249, 247, 248, 248, 246, 247, 247, 245, 246, 246, 244, 245, 245, 243, 244, 244, 242, 243, 243, 241, 242, 243, 241, 242, 245, 243, 244, 246, 244, 245, 246, 244, 245, 246, 244, 245, 245, 243, 244, 244, 242, 243, 242, 240, 241, 241, 239, 240, 241, 239, 240, 243, 241, 242, 245, 243, 244, 245, 243, 244, 243, 241, 242, 240, 240, 240, 235, 235, 235, 234, 236, 235, 224, 224, 224, 227, 227, 227, 220, 218, 219, 214, 212, 213, 218, 214, 215, 187, 183, 184, 206, 202, 203, 213, 209, 210, 214, 212, 213, 211, 209, 210, 213, 213, 213, 220, 220, 220, 220, 222, 221, 215, 217, 216, 204, 204, 202, 198, 198, 196, 194, 194, 192, 196, 196, 194, 201, 201, 199, 202, 202, 200, 202, 202, 200, 202, 202, 200, 199, 199, 197, 197, 197, 195, 198, 198, 196, 199, 199, 197, 195, 195, 193, 189, 189, 187, 188, 188, 186, 191, 191, 189, 205, 204, 202, 196, 195, 193, 196, 195, 193, 208, 207, 205, 214, 213, 211, 207, 206, 204, 198, 197, 195, 196, 195, 193, 196, 195, 193, 187, 186, 184, 184, 183, 181, 188, 187, 185, 188, 187, 185, 182, 181, 179, 179, 178, 176, 180, 179, 177, 174, 174, 172, 180, 180, 178, 184, 184, 182, 178, 178, 176, 169, 169, 167, 165, 165, 163, 172, 171, 167, 180, 179, 175, 193, 192, 188, 188, 187, 183, 174, 170, 167, 152, 148, 145, 141, 138, 133, 151, 148, 143, 170, 167, 162, 185, 182, 177, 172, 168, 165, 185, 181, 178, 182, 178, 175, 176, 172, 169, 181, 180, 176, 183, 182, 178, 181, 180, 176, 188, 187, 183, 181, 180, 176, 167, 166, 162, 147, 143, 140, 145, 141, 138, 163, 158, 155, 164, 156, 154, 143, 135, 133, 130, 122, 120, 139, 131, 129, 143, 135, 133, 155, 147, 145, 165, 157, 155, 155, 147, 144, 135, 127, 124, 130, 122, 119, 138, 130, 127, 177, 169, 166, 165, 157, 154, 152, 145, 139, 147, 140, 134, 144, 137, 131, 130, 123, 117, 104, 97, 91, 84, 77, 71, 108, 101, 95, 129, 122, 116, 151, 144, 138, 170, 163, 157, 183, 176, 170, 180, 173, 167, 176, 169, 163, 183, 176, 170, 165, 158, 152, 165, 158, 152, 160, 153, 147, 157, 150, 144, 165, 158, 152, 173, 166, 160, 160, 153, 147, 139, 130, 125, 171, 160, 156, 162, 151, 147, 158, 147, 143, 159, 148, 144, 157, 146, 142, 150, 139, 135, 149, 138, 134, 155, 144, 140, 149, 138, 134, 146, 135, 131, 144, 133, 129, 145, 134, 130, 150, 139, 135, 156, 145, 141, 161, 150, 146, 163, 152, 148, 148, 137, 131, 142, 131, 125, 136, 125, 119, 134, 123, 117, 136, 125, 119, 138, 127, 121, 138, 127, 121, 137, 126, 120, 138, 127, 121, 142, 131, 125, 147, 136, 130, 151, 140, 134, 151, 140, 134, 147, 136, 130, 141, 130, 124, 137, 126, 120, 153, 142, 138, 149, 138, 134, 147, 136, 132, 147, 136, 132, 146, 135, 131, 134, 123, 119, 114, 103, 99, 98, 87, 83, 103, 92, 88, 103, 92, 88, 112, 101, 97, 133, 122, 118, 152, 141, 137, 161, 150, 146, 164, 153, 149, 166, 155, 151, 152, 143, 136, 154, 145, 138, 157, 148, 141, 160, 151, 144, 164, 155, 150, 167, 158, 153, 169, 160, 155, 170, 161, 156, 179, 170, 165, 182, 173, 168, 184, 174, 172, 183, 173, 171, 179, 169, 167, 174, 164, 162, 171, 161, 159, 170, 160, 158, 173, 165, 162, 174, 166, 163, 175, 165, 163, 174, 164, 162, 174, 164, 162, 175, 165, 163, 178, 170, 167, 182, 174, 171, 183, 178, 175, 183, 179, 176, 186, 182, 183, 188, 188, 188, 195, 194, 199, 202, 203, 207, 207, 210, 215, 211, 214, 219, 218, 221, 226, 222, 225, 230, 227, 230, 235, 230, 233, 238, 231, 234, 239, 233, 236, 241, 236, 239, 244, 239, 242, 247, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 240, 243, 248, 240, 243, 248, 239, 242, 247, 238, 241, 246, 237, 240, 245, 237, 240, 245, 236, 239, 244, 236, 239, 244, 240, 243, 248, 238, 241, 246, 235, 238, 243, 234, 237, 242, 233, 237, 240, 230, 234, 237, 228, 229, 233, 225, 226, 230, 216, 216, 218, 214, 214, 216, 213, 211, 212, 213, 211, 212, 213, 212, 210, 211, 210, 208, 209, 205, 204, 205, 201, 200, 211, 206, 203, 210, 205, 202, 208, 203, 200, 206, 201, 198, 204, 199, 196, 202, 197, 194, 200, 195, 192, 200, 195, 192, 205, 200, 197, 202, 197, 194, 199, 194, 191, 198, 193, 190, 198, 193, 190, 197, 192, 189, 194, 189, 186, 191, 186, 183, 202, 197, 194, 202, 197, 194, 202, 197, 194, 201, 196, 193, 199, 194, 191, 195, 190, 187, 191, 186, 183, 189, 184, 181, 187, 182, 179, 189, 184, 181, 190, 185, 182, 191, 186, 183, 189, 184, 181, 185, 180, 177, 180, 175, 172, 177, 172, 169, 168, 163, 160, 163, 158, 155, 164, 159, 156, 170, 165, 162, 177, 172, 169, 181, 176, 173, 187, 182, 179, 193, 188, 185, 191, 186, 183, 193, 188, 185, 192, 187, 184, 184, 179, 176, 172, 167, 164, 165, 160, 157, 167, 162, 159, 171, 166, 162, 171, 166, 160, 180, 176, 167, 185, 181, 172, 182, 178, 169, 183, 179, 170, 186, 182, 173, 178, 174, 165, 164, 160, 151, 156, 152, 143, 155, 151, 142, 157, 153, 144, 164, 160, 151, 171, 167, 158, 175, 171, 162, 172, 168, 159, 169, 165, 156, 179, 176, 169, 172, 172, 164, 166, 165, 160, 164, 163, 158, 171, 168, 163, 181, 178, 173, 192, 187, 183, 198, 193, 189, 197, 193, 190, 193, 189, 186, 178, 177, 173, 177, 176, 172, 186, 187, 182, 177, 178, 173, 165, 167, 164, 173, 173, 173, 160, 155, 161, 154, 149, 156, 130, 131, 135, 125, 130, 133, 177, 185, 188, 176, 180, 183, 109, 103, 103, 105, 88, 80, 125, 93, 68, 170, 128, 80, 218, 168, 97, 242, 186, 99, 239, 183, 88, 234, 178, 81, 241, 186, 95, 252, 197, 115, 255, 202, 132, 252, 201, 138, 242, 193, 137, 228, 185, 132, 222, 187, 133, 222, 191, 136, 209, 183, 122, 192, 171, 106, 197, 178, 110, 196, 177, 111, 189, 170, 111, 173, 156, 100, 156, 141, 86, 146, 133, 80, 149, 136, 83, 155, 142, 87, 145, 133, 75, 138, 127, 71, 134, 127, 75, 136, 132, 85, 137, 135, 94, 131, 135, 98, 127, 135, 98, 125, 135, 98, 106, 119, 76, 109, 121, 73, 117, 126, 71, 135, 141, 77, 146, 150, 74, 139, 141, 57, 142, 141, 49, 165, 161, 62, 185, 174, 68, 181, 167, 62, 200, 177, 83, 217, 190, 103, 218, 182, 104, 225, 183, 109, 238, 194, 119, 241, 195, 117, 235, 191, 104, 232, 187, 94, 231, 183, 85, 232, 180, 78, 232, 174, 66, 221, 156, 40, 199, 129, 7, 181, 109, 0, 190, 121, 18, 163, 104, 24, 93, 52, 0, 53, 31, 8, 54, 53, 61, 95, 106, 134, 139, 157, 195, 127, 145, 181, 137, 149, 175, 147, 150, 167, 159, 154, 161, 182, 170, 170, 201, 185, 185, 192, 174, 170, 186, 168, 164, 205, 186, 180, 182, 162, 155, 170, 151, 145, 143, 127, 127, 139, 127, 131, 168, 159, 164, 185, 180, 184, 188, 186, 187, 197, 196, 194, 200, 199, 197, 172, 171, 169, 192, 187, 191, 188, 183, 187, 192, 187, 193, 211, 206, 212, 200, 195, 199, 217, 215, 216, 213, 213, 213, 209, 209, 209, 205, 205, 205, 209, 209, 209, 219, 219, 219, 230, 230, 230, 237, 237, 237, 239, 239, 239, 236, 236, 236, 239, 239, 239, 242, 242, 242, 243, 243, 243, 242, 242, 242, 241, 241, 241, 242, 242, 242, 244, 244, 244, 244, 242, 243, 244, 242, 243, 244, 242, 243, 245, 243, 244, 245, 243, 244, 245, 243, 244, 246, 244, 245, 246, 244, 245, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 251, 249, 250, 251, 249, 250, 252, 250, 251, 252, 250, 251, 252, 250, 251, 251, 249, 250, 249, 247, 248, 248, 246, 247, 250, 248, 249, 250, 248, 249, 249, 247, 248, 248, 246, 247, 246, 244, 245, 245, 243, 244, 244, 242, 243, 244, 242, 243, 242, 240, 241, 243, 241, 242, 244, 242, 243, 246, 244, 245, 246, 244, 245, 246, 244, 245, 245, 243, 244, 245, 243, 244, 242, 240, 241, 241, 239, 240, 241, 239, 240, 243, 241, 242, 245, 243, 244, 246, 244, 245, 244, 242, 243, 240, 240, 240, 242, 242, 242, 242, 244, 243, 230, 230, 230, 232, 232, 232, 220, 218, 219, 212, 210, 211, 218, 214, 215, 183, 179, 180, 205, 201, 202, 218, 214, 215, 221, 219, 220, 214, 212, 213, 207, 207, 207, 213, 213, 213, 218, 220, 219, 219, 221, 220, 213, 213, 211, 212, 212, 210, 203, 203, 201, 194, 194, 192, 199, 199, 197, 210, 210, 208, 209, 209, 207, 197, 197, 195, 197, 197, 195, 197, 197, 195, 200, 200, 198, 205, 205, 203, 203, 203, 201, 197, 197, 195, 196, 196, 194, 200, 200, 198, 202, 201, 199, 175, 174, 172, 170, 169, 167, 195, 194, 192, 209, 208, 206, 195, 194, 192, 184, 183, 181, 189, 188, 186, 194, 193, 191, 181, 180, 178, 175, 174, 172, 183, 182, 180, 190, 189, 187, 188, 187, 185, 187, 186, 184, 190, 189, 187, 194, 194, 192, 193, 193, 191, 187, 187, 185, 177, 177, 175, 167, 167, 165, 165, 165, 163, 172, 171, 167, 179, 178, 174, 175, 174, 170, 182, 181, 177, 183, 179, 176, 171, 167, 164, 157, 154, 149, 150, 147, 142, 146, 143, 138, 143, 140, 135, 151, 147, 144, 163, 159, 156, 160, 156, 153, 160, 156, 153, 173, 172, 168, 170, 169, 165, 154, 153, 149, 150, 149, 145, 157, 156, 152, 171, 170, 166, 177, 173, 170, 174, 169, 166, 173, 165, 163, 167, 159, 157, 169, 161, 159, 182, 174, 172, 162, 154, 152, 138, 130, 128, 118, 110, 108, 115, 107, 105, 114, 106, 103, 112, 104, 101, 121, 113, 110, 136, 128, 125, 134, 126, 123, 142, 134, 131, 152, 145, 139, 158, 151, 145, 155, 148, 142, 149, 142, 136, 142, 135, 129, 138, 131, 125, 145, 138, 132, 152, 145, 139, 154, 147, 141, 158, 151, 145, 162, 155, 149, 154, 147, 141, 148, 141, 135, 156, 149, 143, 143, 136, 130, 140, 133, 127, 146, 139, 133, 156, 149, 143, 151, 144, 138, 137, 130, 124, 135, 128, 122, 144, 137, 131, 136, 125, 121, 125, 114, 110, 122, 111, 107, 131, 120, 116, 139, 128, 124, 138, 127, 123, 139, 128, 124, 143, 132, 128, 152, 141, 137, 152, 141, 137, 154, 143, 139, 159, 148, 144, 162, 151, 147, 160, 149, 145, 151, 140, 136, 143, 132, 128, 151, 140, 134, 148, 137, 131, 144, 133, 127, 141, 130, 124, 140, 129, 123, 138, 127, 121, 136, 125, 119, 133, 122, 116, 141, 130, 124, 144, 133, 127, 148, 137, 131, 152, 141, 135, 154, 143, 137, 154, 143, 137, 152, 141, 135, 151, 140, 134, 155, 144, 140, 147, 136, 132, 141, 130, 126, 143, 132, 128, 150, 139, 135, 152, 141, 137, 146, 135, 131, 139, 128, 124, 124, 113, 109, 121, 110, 106, 125, 114, 110, 140, 129, 125, 153, 142, 138, 157, 146, 142, 155, 144, 140, 153, 142, 138, 161, 152, 145, 162, 153, 146, 165, 156, 149, 167, 158, 151, 168, 159, 154, 167, 158, 153, 166, 157, 152, 164, 155, 150, 165, 156, 151, 170, 161, 156, 176, 166, 164, 179, 169, 167, 177, 167, 165, 174, 164, 162, 171, 161, 159, 170, 160, 158, 172, 164, 161, 174, 166, 163, 176, 166, 164, 175, 165, 163, 176, 166, 164, 179, 169, 167, 183, 175, 172, 187, 179, 176, 184, 179, 176, 184, 180, 177, 186, 182, 183, 187, 187, 187, 192, 191, 196, 198, 199, 203, 201, 204, 209, 205, 208, 213, 217, 220, 225, 221, 224, 229, 226, 229, 234, 229, 232, 237, 231, 234, 239, 233, 236, 241, 236, 239, 244, 239, 242, 247, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 235, 240, 244, 235, 240, 244, 233, 238, 242, 231, 236, 240, 229, 233, 236, 226, 230, 233, 225, 226, 230, 223, 224, 228, 220, 220, 222, 216, 216, 218, 212, 212, 212, 210, 210, 210, 212, 211, 209, 213, 212, 210, 213, 212, 210, 214, 210, 209, 211, 206, 203, 208, 203, 200, 205, 200, 197, 203, 198, 195, 202, 197, 194, 202, 197, 194, 204, 199, 196, 205, 200, 197, 202, 197, 194, 203, 198, 195, 203, 198, 195, 202, 197, 194, 201, 196, 193, 199, 194, 191, 197, 192, 189, 196, 191, 188, 198, 193, 190, 197, 192, 189, 195, 190, 187, 193, 188, 185, 191, 186, 183, 190, 185, 182, 189, 184, 181, 189, 184, 181, 181, 176, 173, 184, 179, 176, 188, 183, 180, 188, 183, 180, 185, 180, 177, 181, 176, 173, 178, 173, 170, 177, 172, 169, 167, 162, 159, 170, 165, 162, 169, 164, 161, 164, 159, 156, 163, 158, 155, 169, 164, 161, 174, 169, 166, 175, 170, 167, 180, 175, 172, 176, 171, 168, 170, 165, 162, 167, 162, 159, 166, 161, 158, 165, 160, 157, 164, 159, 156, 163, 158, 154, 168, 163, 157, 170, 166, 157, 177, 173, 164, 179, 175, 166, 164, 160, 151, 147, 143, 134, 154, 150, 141, 174, 170, 161, 176, 172, 163, 173, 169, 160, 175, 171, 162, 177, 173, 164, 168, 164, 155, 154, 150, 141, 151, 147, 138, 157, 153, 144, 161, 158, 151, 166, 163, 156, 176, 173, 168, 185, 182, 177, 192, 187, 183, 189, 184, 180, 181, 176, 172, 174, 169, 165, 175, 171, 168, 185, 181, 178, 196, 195, 191, 202, 201, 197, 199, 200, 195, 196, 197, 192, 194, 196, 193, 196, 196, 196, 177, 170, 177, 147, 140, 147, 133, 133, 135, 138, 139, 141, 142, 146, 149, 158, 159, 164, 144, 141, 148, 101, 91, 92, 138, 116, 105, 131, 100, 71, 176, 136, 84, 227, 180, 108, 238, 183, 100, 250, 193, 103, 255, 205, 114, 252, 190, 107, 255, 203, 134, 251, 191, 131, 235, 182, 128, 229, 182, 130, 226, 186, 134, 220, 189, 132, 217, 191, 130, 216, 195, 130, 196, 177, 111, 195, 175, 112, 193, 173, 114, 188, 167, 110, 180, 159, 104, 170, 149, 94, 161, 140, 83, 155, 135, 76, 152, 132, 73, 148, 129, 70, 146, 131, 72, 147, 135, 77, 145, 134, 78, 137, 130, 75, 134, 129, 74, 134, 132, 75, 135, 133, 72, 140, 139, 72, 148, 144, 70, 149, 144, 62, 145, 139, 51, 148, 139, 46, 156, 146, 49, 165, 151, 54, 187, 169, 71, 198, 178, 83, 209, 185, 97, 214, 188, 104, 218, 189, 111, 224, 190, 116, 227, 189, 116, 227, 186, 107, 233, 187, 101, 240, 190, 93, 246, 192, 84, 246, 187, 71, 231, 169, 50, 209, 144, 26, 187, 119, 8, 172, 107, 7, 168, 110, 28, 127, 85, 25, 64, 45, 13, 37, 38, 33, 68, 85, 105, 114, 134, 171, 133, 148, 187, 135, 143, 179, 150, 148, 169, 127, 120, 128, 156, 145, 141, 176, 162, 151, 188, 172, 159, 210, 192, 180, 201, 181, 174, 189, 168, 163, 160, 141, 137, 166, 148, 148, 161, 146, 151, 155, 144, 152, 166, 159, 167, 182, 177, 183, 185, 183, 186, 184, 183, 181, 190, 186, 183, 170, 166, 163, 172, 166, 166, 193, 187, 189, 198, 192, 196, 194, 190, 191, 203, 199, 198, 217, 216, 212, 213, 213, 213, 207, 207, 207, 205, 205, 205, 214, 214, 214, 224, 224, 224, 230, 230, 230, 234, 234, 234, 239, 239, 239, 239, 239, 239, 240, 240, 240, 242, 242, 242, 243, 243, 243, 244, 244, 244, 244, 244, 244, 244, 244, 244, 243, 243, 243, 244, 242, 243, 245, 243, 244, 245, 243, 244, 245, 243, 244, 246, 244, 245, 246, 244, 245, 246, 244, 245, 247, 245, 246, 247, 245, 246, 247, 245, 246, 247, 245, 246, 248, 246, 247, 248, 246, 247, 249, 247, 248, 249, 247, 248, 249, 247, 248, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 249, 247, 248, 249, 247, 248, 250, 248, 249, 250, 248, 249, 250, 248, 249, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 250, 248, 249, 250, 248, 249, 250, 248, 249, 249, 247, 248, 249, 247, 248, 249, 247, 248, 248, 246, 247, 248, 246, 247, 247, 245, 246, 247, 245, 246, 246, 244, 245, 246, 244, 245, 245, 243, 244, 245, 243, 244, 245, 243, 244, 245, 243, 244, 245, 243, 244, 244, 242, 243, 244, 242, 243, 244, 242, 243, 243, 241, 242, 243, 241, 242, 243, 241, 242, 242, 242, 242, 242, 242, 242, 240, 242, 241, 240, 240, 240, 235, 235, 235, 228, 226, 227, 217, 215, 216, 210, 206, 207, 204, 200, 201, 181, 177, 178, 232, 228, 229, 227, 225, 226, 199, 197, 198, 209, 209, 209, 215, 215, 215, 208, 210, 209, 219, 221, 220, 209, 209, 207, 210, 210, 208, 210, 210, 208, 210, 210, 208, 209, 209, 207, 207, 207, 205, 205, 205, 203, 204, 204, 202, 194, 194, 192, 202, 202, 200, 204, 204, 202, 197, 197, 195, 188, 188, 186, 187, 187, 185, 192, 192, 190, 196, 196, 194, 189, 188, 186, 187, 186, 184, 183, 182, 180, 180, 179, 177, 185, 184, 182, 192, 191, 189, 192, 191, 189, 187, 186, 184, 181, 180, 178, 200, 199, 197, 201, 200, 198, 177, 176, 174, 161, 160, 158, 168, 167, 165, 179, 178, 176, 180, 179, 177, 181, 181, 179, 192, 192, 190, 195, 194, 192, 186, 185, 183, 184, 183, 181, 190, 189, 187, 187, 186, 182, 175, 174, 170, 172, 168, 165, 159, 155, 152, 165, 161, 158, 181, 177, 174, 189, 186, 181, 193, 190, 185, 183, 178, 174, 157, 152, 148, 161, 156, 153, 153, 148, 145, 144, 140, 137, 144, 140, 137, 149, 145, 142, 152, 148, 145, 148, 147, 143, 144, 143, 139, 151, 147, 144, 140, 136, 133, 130, 125, 122, 135, 130, 127, 159, 151, 149, 178, 170, 168, 174, 164, 163, 157, 147, 146, 148, 140, 138, 150, 142, 140, 145, 137, 135, 139, 131, 129, 146, 138, 135, 161, 153, 150, 169, 161, 158, 166, 158, 155, 168, 160, 157, 162, 154, 151, 162, 155, 149, 168, 161, 155, 169, 162, 156, 158, 151, 145, 142, 135, 129, 132, 125, 119, 139, 132, 124, 147, 140, 132, 153, 146, 138, 154, 147, 139, 154, 147, 139, 151, 144, 136, 143, 136, 128, 134, 127, 119, 146, 139, 131, 144, 137, 129, 140, 133, 125, 137, 130, 122, 134, 127, 119, 130, 123, 115, 125, 118, 110, 121, 114, 106, 118, 107, 103, 131, 120, 116, 147, 136, 132, 155, 144, 140, 155, 144, 140, 153, 142, 138, 153, 142, 138, 155, 144, 140, 165, 154, 150, 170, 159, 155, 160, 149, 145, 153, 142, 138, 158, 147, 143, 154, 143, 139, 147, 136, 132, 155, 144, 140, 157, 146, 140, 155, 144, 138, 156, 145, 139, 161, 150, 144, 159, 148, 142, 149, 138, 132, 139, 128, 122, 135, 124, 118, 137, 126, 120, 135, 124, 118, 134, 123, 117, 137, 126, 120, 143, 132, 126, 150, 139, 133, 154, 143, 137, 156, 145, 139, 153, 142, 138, 146, 135, 131, 141, 130, 126, 144, 133, 129, 154, 143, 139, 162, 151, 147, 165, 154, 150, 164, 153, 149, 159, 148, 144, 160, 149, 145, 159, 148, 144, 157, 146, 142, 159, 148, 144, 164, 153, 149, 164, 153, 149, 160, 149, 145, 159, 150, 143, 155, 146, 139, 150, 141, 134, 151, 142, 135, 158, 149, 144, 167, 158, 153, 173, 164, 159, 175, 166, 161, 178, 169, 164, 181, 172, 167, 180, 170, 168, 173, 163, 161, 170, 160, 158, 171, 161, 159, 173, 163, 161, 172, 162, 160, 174, 166, 163, 173, 165, 162, 174, 164, 162, 174, 164, 162, 176, 166, 164, 179, 169, 167, 182, 174, 171, 184, 176, 173, 181, 176, 173, 183, 179, 176, 188, 184, 185, 190, 190, 190, 195, 194, 199, 201, 202, 206, 207, 210, 215, 213, 216, 221, 223, 226, 231, 225, 228, 233, 229, 232, 237, 233, 236, 241, 237, 240, 245, 240, 243, 248, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 235, 240, 244, 235, 240, 244, 234, 239, 243, 232, 237, 241, 230, 234, 237, 227, 231, 234, 226, 227, 231, 224, 225, 229, 220, 220, 222, 217, 217, 219, 212, 212, 212, 211, 211, 211, 212, 211, 209, 213, 212, 210, 212, 211, 209, 211, 210, 208, 213, 208, 205, 212, 207, 204, 209, 204, 201, 207, 202, 199, 206, 201, 198, 205, 200, 197, 204, 199, 196, 204, 199, 196, 202, 197, 194, 202, 197, 194, 202, 197, 194, 201, 196, 193, 200, 195, 192, 198, 193, 190, 196, 191, 188, 195, 190, 187, 193, 188, 185, 194, 189, 186, 197, 192, 189, 199, 194, 191, 199, 194, 191, 197, 192, 189, 195, 190, 187, 193, 188, 185, 175, 170, 167, 178, 173, 170, 182, 177, 174, 183, 178, 175, 182, 177, 174, 179, 174, 171, 178, 173, 170, 178, 173, 170, 168, 163, 160, 170, 165, 162, 166, 161, 158, 158, 153, 150, 154, 149, 146, 158, 153, 150, 161, 156, 153, 162, 157, 154, 169, 164, 161, 168, 163, 160, 168, 163, 160, 171, 166, 163, 176, 171, 168, 180, 175, 172, 182, 177, 174, 182, 177, 173, 188, 183, 177, 182, 178, 169, 182, 178, 169, 183, 179, 170, 172, 168, 159, 155, 151, 142, 152, 148, 139, 161, 157, 148, 178, 174, 165, 175, 171, 162, 176, 172, 163, 178, 174, 165, 173, 169, 160, 165, 161, 152, 166, 162, 153, 174, 170, 161, 155, 152, 145, 159, 156, 149, 164, 161, 156, 170, 167, 162, 177, 172, 168, 181, 176, 172, 184, 179, 175, 185, 180, 176, 188, 184, 181, 189, 185, 182, 190, 189, 185, 192, 193, 188, 194, 195, 190, 192, 194, 189, 188, 190, 187, 187, 187, 187, 172, 167, 173, 151, 144, 151, 134, 132, 133, 118, 118, 118, 105, 106, 108, 127, 128, 133, 150, 149, 157, 142, 135, 143, 117, 103, 103, 116, 94, 80, 123, 93, 57, 181, 142, 87, 244, 195, 126, 236, 181, 99, 226, 164, 79, 255, 200, 118, 253, 186, 115, 249, 185, 121, 247, 189, 126, 244, 194, 135, 237, 195, 135, 229, 195, 134, 223, 195, 132, 221, 197, 133, 214, 193, 130, 211, 189, 129, 207, 185, 127, 203, 178, 122, 197, 170, 115, 191, 165, 108, 186, 160, 101, 183, 157, 96, 173, 149, 87, 165, 144, 79, 160, 141, 75, 157, 138, 70, 150, 133, 64, 140, 125, 56, 137, 122, 53, 138, 126, 52, 140, 129, 50, 147, 135, 51, 155, 141, 52, 156, 143, 47, 157, 143, 46, 161, 145, 47, 171, 153, 55, 179, 158, 65, 207, 181, 94, 213, 187, 103, 216, 189, 108, 217, 190, 109, 221, 194, 115, 230, 201, 125, 240, 204, 130, 245, 204, 125, 247, 200, 112, 252, 197, 97, 254, 192, 79, 249, 184, 64, 238, 171, 54, 215, 149, 39, 181, 116, 24, 149, 91, 17, 114, 68, 9, 74, 48, 11, 32, 32, 20, 33, 51, 61, 73, 100, 130, 107, 132, 172, 132, 144, 182, 154, 153, 184, 120, 107, 124, 118, 102, 102, 147, 131, 116, 157, 141, 118, 158, 140, 118, 164, 143, 124, 150, 123, 112, 145, 120, 115, 147, 127, 126, 161, 145, 148, 168, 155, 164, 161, 149, 159, 152, 144, 155, 157, 152, 159, 172, 170, 173, 189, 188, 186, 182, 178, 175, 175, 172, 167, 181, 176, 173, 196, 190, 190, 204, 198, 198, 205, 199, 199, 207, 203, 200, 208, 207, 203, 216, 215, 213, 209, 209, 209, 208, 208, 208, 216, 216, 216, 226, 226, 226, 232, 232, 232, 236, 236, 236, 240, 240, 240, 239, 239, 239, 240, 240, 240, 242, 242, 242, 243, 243, 243, 244, 244, 244, 244, 244, 244, 244, 244, 244, 243, 243, 243, 245, 243, 244, 245, 243, 244, 245, 243, 244, 245, 243, 244, 246, 244, 245, 246, 244, 245, 247, 245, 246, 247, 245, 246, 247, 245, 246, 247, 245, 246, 248, 246, 247, 248, 246, 247, 248, 246, 247, 249, 247, 248, 249, 247, 248, 249, 247, 248, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 249, 247, 248, 249, 247, 248, 250, 248, 249, 250, 248, 249, 250, 248, 249, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 249, 247, 248, 249, 247, 248, 248, 246, 247, 248, 246, 247, 247, 245, 246, 247, 245, 246, 247, 245, 246, 246, 244, 245, 246, 244, 245, 245, 243, 244, 245, 243, 244, 245, 243, 244, 245, 243, 244, 245, 243, 244, 244, 242, 243, 244, 242, 243, 244, 242, 243, 243, 241, 242, 243, 241, 242, 242, 242, 242, 242, 242, 242, 241, 243, 242, 240, 240, 240, 236, 236, 236, 230, 228, 229, 221, 219, 220, 215, 211, 212, 209, 205, 206, 197, 193, 194, 210, 206, 207, 198, 196, 197, 195, 193, 194, 216, 216, 216, 223, 223, 223, 215, 217, 216, 220, 222, 221, 214, 214, 212, 214, 214, 212, 213, 213, 211, 211, 211, 209, 209, 209, 207, 208, 208, 206, 207, 207, 205, 206, 206, 204, 210, 210, 208, 196, 196, 194, 195, 195, 193, 206, 206, 204, 204, 204, 202, 186, 186, 184, 184, 184, 182, 197, 197, 195, 164, 163, 161, 183, 182, 180, 199, 198, 196, 198, 197, 195, 189, 188, 186, 188, 187, 185, 194, 193, 191, 201, 200, 198, 189, 188, 186, 178, 177, 175, 180, 179, 177, 191, 190, 188, 184, 183, 181, 167, 166, 164, 171, 170, 168, 191, 190, 188, 183, 183, 181, 189, 189, 187, 187, 186, 184, 177, 176, 174, 175, 174, 172, 181, 180, 178, 177, 176, 172, 165, 164, 160, 186, 182, 179, 178, 174, 171, 179, 175, 172, 176, 172, 169, 163, 160, 155, 165, 162, 157, 176, 171, 167, 175, 170, 166, 176, 171, 168, 170, 165, 162, 161, 157, 154, 157, 153, 150, 155, 151, 148, 154, 150, 147, 149, 148, 144, 146, 145, 141, 159, 155, 152, 142, 138, 135, 131, 126, 123, 134, 129, 126, 146, 138, 136, 154, 146, 144, 163, 153, 152, 172, 162, 161, 179, 171, 169, 181, 173, 171, 177, 169, 167, 170, 162, 160, 168, 160, 157, 170, 162, 159, 166, 158, 155, 158, 150, 147, 133, 125, 122, 128, 120, 117, 127, 120, 114, 133, 126, 120, 137, 130, 124, 137, 130, 124, 139, 132, 126, 142, 135, 129, 159, 152, 144, 160, 153, 145, 157, 150, 142, 151, 144, 136, 147, 140, 132, 147, 140, 132, 144, 137, 129, 139, 132, 124, 145, 138, 130, 151, 144, 136, 154, 147, 139, 146, 139, 131, 133, 126, 118, 125, 118, 110, 127, 120, 112, 134, 125, 118, 141, 130, 126, 150, 139, 135, 160, 149, 145, 164, 153, 149, 163, 152, 148, 162, 151, 147, 166, 155, 151, 170, 159, 155, 148, 137, 133, 157, 146, 142, 155, 144, 140, 154, 143, 139, 161, 150, 146, 154, 143, 139, 145, 134, 130, 148, 137, 133, 155, 144, 138, 151, 140, 134, 150, 139, 133, 154, 143, 137, 155, 144, 138, 150, 139, 133, 147, 136, 130, 147, 136, 130, 145, 134, 128, 142, 131, 125, 139, 128, 122, 139, 128, 122, 141, 130, 124, 145, 134, 128, 147, 136, 130, 148, 137, 131, 159, 148, 144, 155, 144, 140, 151, 140, 136, 152, 141, 137, 154, 143, 139, 151, 140, 136, 142, 131, 127, 134, 123, 119, 153, 142, 138, 154, 143, 139, 151, 140, 136, 146, 135, 131, 143, 132, 128, 140, 129, 125, 133, 122, 118, 124, 113, 109, 132, 123, 116, 131, 122, 115, 128, 119, 112, 127, 118, 111, 131, 122, 117, 143, 134, 129, 160, 151, 146, 172, 163, 158, 174, 165, 160, 179, 170, 165, 179, 169, 167, 174, 164, 162, 171, 161, 159, 173, 163, 161, 173, 163, 161, 171, 161, 159, 175, 167, 164, 175, 167, 164, 175, 165, 163, 174, 164, 162, 175, 165, 163, 175, 165, 163, 175, 167, 164, 176, 168, 165, 186, 181, 178, 188, 184, 181, 193, 189, 190, 194, 194, 194, 198, 197, 202, 204, 205, 209, 210, 213, 218, 216, 219, 224, 223, 226, 231, 225, 228, 233, 229, 232, 237, 233, 236, 241, 236, 239, 244, 239, 242, 247, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 236, 241, 245, 236, 241, 245, 235, 240, 244, 233, 238, 242, 232, 236, 239, 229, 233, 236, 226, 230, 233, 225, 229, 232, 221, 222, 224, 217, 218, 220, 213, 213, 213, 211, 211, 211, 212, 211, 209, 212, 211, 209, 211, 210, 208, 210, 209, 207, 215, 210, 207, 215, 210, 207, 214, 209, 206, 212, 207, 204, 210, 205, 202, 207, 202, 199, 204, 199, 196, 202, 197, 194, 201, 196, 193, 201, 196, 193, 201, 196, 193, 200, 195, 192, 199, 194, 191, 197, 192, 189, 195, 190, 187, 193, 188, 185, 191, 186, 183, 194, 189, 186, 199, 194, 191, 202, 197, 194, 201, 196, 193, 197, 192, 189, 192, 187, 184, 188, 183, 180, 180, 175, 172, 182, 177, 174, 183, 178, 175, 181, 176, 173, 177, 172, 169, 173, 168, 165, 171, 166, 163, 171, 166, 163, 160, 155, 152, 162, 157, 154, 160, 155, 152, 154, 149, 146, 153, 148, 145, 159, 154, 151, 165, 160, 157, 167, 162, 159, 175, 170, 167, 174, 169, 166, 174, 169, 166, 177, 172, 169, 180, 175, 172, 181, 176, 173, 180, 175, 172, 177, 172, 168, 167, 162, 156, 157, 152, 146, 154, 149, 143, 163, 158, 152, 170, 165, 159, 169, 164, 158, 172, 167, 161, 179, 174, 168, 180, 175, 169, 175, 170, 164, 170, 165, 159, 167, 162, 156, 161, 156, 150, 157, 152, 146, 160, 155, 149, 166, 161, 155, 160, 157, 150, 171, 168, 161, 188, 183, 179, 197, 192, 188, 199, 194, 190, 196, 191, 187, 193, 188, 184, 192, 187, 183, 199, 195, 192, 194, 190, 187, 188, 187, 183, 190, 191, 186, 196, 197, 192, 198, 200, 195, 194, 196, 193, 189, 191, 190, 193, 191, 194, 181, 176, 180, 167, 163, 162, 140, 136, 135, 114, 112, 113, 132, 130, 133, 163, 162, 170, 169, 166, 177, 114, 107, 114, 105, 91, 88, 107, 86, 67, 122, 92, 56, 160, 120, 68, 226, 177, 110, 255, 202, 128, 243, 180, 100, 248, 186, 103, 255, 193, 113, 255, 205, 126, 255, 210, 135, 252, 208, 137, 241, 202, 135, 231, 200, 136, 227, 198, 138, 228, 202, 143, 224, 199, 142, 218, 193, 137, 213, 187, 130, 209, 180, 124, 207, 177, 117, 206, 174, 113, 205, 175, 113, 188, 160, 97, 178, 155, 88, 173, 150, 80, 171, 149, 76, 167, 145, 69, 161, 140, 61, 159, 138, 59, 162, 141, 58, 156, 136, 47, 162, 142, 47, 169, 150, 48, 173, 154, 51, 178, 156, 54, 185, 163, 62, 195, 171, 75, 203, 177, 90, 222, 190, 115, 227, 193, 122, 228, 196, 123, 227, 195, 118, 230, 199, 119, 236, 205, 123, 243, 206, 126, 245, 203, 119, 241, 187, 97, 245, 183, 84, 242, 175, 62, 235, 166, 49, 227, 159, 50, 206, 141, 49, 161, 100, 35, 115, 64, 19, 65, 34, 3, 32, 23, 8, 22, 37, 42, 65, 93, 115, 111, 145, 180, 116, 141, 181, 103, 111, 147, 106, 101, 124, 107, 90, 100, 131, 108, 102, 154, 132, 109, 155, 132, 101, 154, 129, 98, 151, 124, 97, 141, 112, 96, 154, 127, 120, 168, 150, 150, 171, 158, 165, 178, 166, 176, 171, 161, 172, 151, 145, 157, 142, 139, 148, 156, 154, 157, 175, 174, 172, 186, 183, 178, 186, 181, 177, 183, 175, 173, 176, 168, 166, 173, 168, 165, 182, 177, 174, 199, 196, 191, 214, 213, 209, 217, 216, 214, 210, 210, 210, 210, 210, 210, 219, 219, 219, 229, 229, 229, 234, 234, 234, 238, 238, 238, 242, 242, 242, 239, 239, 239, 240, 240, 240, 242, 242, 242, 243, 243, 243, 244, 244, 244, 244, 244, 244, 244, 244, 244, 243, 243, 243, 245, 243, 244, 245, 243, 244, 245, 243, 244, 246, 244, 245, 246, 244, 245, 246, 244, 245, 247, 245, 246, 247, 245, 246, 247, 245, 246, 248, 246, 247, 248, 246, 247, 248, 246, 247, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 249, 247, 248, 249, 247, 248, 250, 248, 249, 250, 248, 249, 250, 248, 249, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 250, 248, 249, 250, 248, 249, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 248, 246, 247, 247, 245, 246, 247, 245, 246, 247, 245, 246, 246, 244, 245, 246, 244, 245, 246, 244, 245, 246, 244, 245, 245, 243, 244, 245, 243, 244, 245, 243, 244, 244, 242, 243, 244, 242, 243, 243, 241, 242, 243, 241, 242, 242, 242, 242, 242, 242, 242, 241, 243, 242, 241, 241, 241, 239, 239, 239, 234, 232, 233, 227, 225, 226, 223, 219, 220, 218, 214, 215, 212, 208, 209, 192, 188, 189, 182, 180, 181, 195, 193, 194, 208, 208, 208, 211, 211, 211, 213, 215, 214, 219, 221, 220, 221, 221, 219, 219, 219, 217, 216, 216, 214, 213, 213, 211, 211, 211, 209, 209, 209, 207, 209, 209, 207, 209, 209, 207, 211, 211, 209, 194, 194, 192, 190, 190, 188, 204, 204, 202, 209, 209, 207, 197, 197, 195, 191, 191, 189, 197, 197, 195, 170, 169, 167, 177, 176, 174, 183, 182, 180, 186, 185, 183, 189, 188, 186, 192, 191, 189, 191, 190, 188, 186, 185, 183, 188, 187, 185, 191, 190, 188, 189, 188, 186, 183, 182, 180, 179, 178, 176, 177, 176, 174, 170, 169, 167, 162, 161, 159, 184, 183, 181, 183, 182, 180, 174, 173, 171, 164, 163, 161, 166, 165, 163, 175, 174, 172, 178, 174, 171, 170, 166, 163, 157, 153, 150, 167, 163, 160, 185, 181, 178, 189, 185, 182, 176, 171, 167, 166, 161, 157, 166, 161, 157, 163, 158, 154, 146, 141, 138, 147, 142, 139, 148, 143, 140, 149, 144, 141, 149, 145, 142, 152, 148, 145, 156, 152, 149, 159, 155, 152, 166, 162, 159, 158, 154, 151, 163, 158, 155, 172, 167, 164, 165, 157, 155, 144, 136, 134, 142, 132, 131, 156, 146, 145, 174, 166, 164, 177, 169, 167, 175, 167, 165, 168, 160, 158, 162, 154, 151, 156, 148, 145, 143, 135, 132, 131, 123, 120, 133, 125, 122, 122, 114, 111, 110, 103, 97, 101, 94, 88, 94, 87, 81, 93, 86, 80, 100, 93, 87, 110, 103, 97, 111, 102, 95, 115, 106, 99, 117, 108, 101, 118, 109, 102, 124, 115, 108, 134, 125, 118, 140, 131, 124, 141, 132, 125, 140, 131, 124, 149, 140, 133, 157, 148, 141, 158, 149, 142, 152, 143, 136, 150, 141, 134, 155, 146, 139, 161, 152, 145, 156, 145, 141, 160, 149, 145, 164, 153, 149, 164, 153, 149, 163, 152, 148, 165, 154, 150, 171, 160, 156, 176, 165, 161, 167, 156, 152, 172, 161, 157, 169, 158, 154, 166, 155, 151, 167, 156, 152, 159, 148, 144, 149, 138, 134, 150, 139, 135, 154, 143, 139, 147, 136, 132, 142, 131, 127, 143, 132, 128, 145, 134, 130, 144, 133, 129, 145, 134, 130, 148, 137, 133, 151, 140, 136, 149, 138, 134, 147, 136, 132, 145, 134, 130, 145, 134, 130, 146, 135, 131, 147, 136, 132, 148, 137, 133, 162, 151, 149, 156, 145, 143, 151, 140, 138, 147, 136, 134, 144, 133, 131, 138, 127, 125, 128, 117, 115, 121, 110, 108, 134, 123, 121, 138, 127, 125, 141, 130, 128, 140, 129, 127, 140, 129, 127, 139, 128, 126, 132, 121, 119, 122, 111, 107, 121, 112, 105, 126, 117, 110, 130, 121, 114, 128, 119, 112, 127, 118, 113, 136, 127, 122, 153, 144, 139, 167, 158, 153, 169, 160, 155, 175, 166, 161, 178, 168, 166, 176, 166, 164, 174, 164, 162, 175, 165, 163, 174, 164, 162, 171, 161, 159, 164, 156, 153, 167, 159, 156, 172, 162, 160, 177, 167, 165, 181, 171, 169, 185, 175, 173, 186, 178, 175, 187, 179, 176, 193, 188, 185, 195, 191, 188, 198, 194, 195, 198, 198, 198, 202, 201, 206, 207, 208, 212, 213, 216, 221, 218, 221, 226, 223, 226, 231, 225, 228, 233, 228, 231, 236, 232, 235, 240, 236, 239, 244, 238, 241, 246, 239, 242, 247, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 237, 242, 246, 237, 242, 246, 237, 242, 246, 235, 240, 244, 234, 238, 241, 231, 235, 238, 229, 233, 236, 227, 231, 234, 223, 224, 226, 219, 220, 222, 215, 215, 215, 212, 212, 212, 213, 212, 210, 212, 211, 209, 211, 210, 208, 210, 209, 207, 215, 210, 207, 215, 210, 207, 215, 210, 207, 214, 209, 206, 211, 206, 203, 207, 202, 199, 202, 197, 194, 199, 194, 191, 201, 196, 193, 201, 196, 193, 200, 195, 192, 199, 194, 191, 198, 193, 190, 195, 190, 187, 193, 188, 185, 191, 186, 183, 196, 191, 188, 197, 192, 189, 198, 193, 190, 198, 193, 190, 195, 190, 187, 189, 184, 181, 183, 178, 175, 179, 174, 171, 184, 179, 176, 184, 179, 176, 184, 179, 176, 181, 176, 173, 176, 171, 168, 173, 168, 165, 173, 168, 165, 174, 169, 166, 163, 158, 155, 166, 161, 158, 165, 160, 157, 160, 155, 152, 160, 155, 152, 168, 163, 160, 175, 170, 167, 177, 172, 169, 179, 174, 171, 178, 173, 170, 178, 173, 170, 178, 173, 170, 178, 173, 170, 176, 171, 168, 170, 165, 162, 166, 161, 158, 169, 164, 160, 156, 151, 145, 146, 141, 135, 147, 142, 136, 152, 147, 141, 157, 152, 146, 165, 160, 154, 173, 168, 162, 145, 140, 134, 137, 132, 126, 126, 121, 115, 116, 111, 105, 108, 103, 97, 104, 99, 93, 106, 101, 95, 110, 105, 99, 130, 127, 120, 147, 144, 137, 171, 166, 162, 187, 182, 178, 192, 187, 183, 194, 189, 185, 196, 191, 187, 199, 194, 190, 189, 185, 182, 186, 185, 181, 187, 186, 182, 191, 192, 187, 196, 198, 193, 198, 203, 197, 198, 203, 199, 198, 200, 197, 192, 192, 192, 186, 184, 185, 179, 175, 174, 158, 154, 151, 134, 130, 127, 132, 128, 129, 129, 126, 133, 114, 111, 120, 157, 154, 163, 88, 82, 86, 92, 79, 73, 133, 112, 93, 137, 107, 71, 164, 124, 73, 218, 170, 108, 237, 183, 109, 234, 176, 92, 245, 186, 96, 253, 196, 107, 255, 202, 116, 253, 204, 125, 249, 205, 132, 242, 203, 138, 236, 200, 140, 230, 198, 141, 226, 197, 141, 222, 193, 137, 217, 188, 130, 214, 182, 123, 212, 178, 117, 210, 174, 114, 208, 174, 113, 200, 170, 106, 193, 168, 101, 193, 166, 95, 195, 169, 94, 192, 166, 89, 187, 162, 80, 185, 160, 78, 189, 163, 78, 176, 151, 59, 181, 155, 58, 185, 160, 57, 190, 166, 60, 197, 170, 67, 204, 176, 77, 214, 185, 93, 222, 190, 107, 227, 190, 120, 234, 195, 128, 239, 200, 131, 240, 202, 127, 240, 203, 122, 239, 203, 117, 234, 194, 109, 229, 183, 97, 247, 192, 102, 252, 187, 93, 244, 175, 71, 228, 157, 53, 207, 141, 47, 175, 115, 42, 122, 69, 25, 69, 29, 4, 40, 18, 5, 36, 35, 33, 53, 72, 87, 96, 126, 154, 124, 154, 188, 108, 128, 163, 86, 90, 119, 90, 78, 98, 137, 118, 122, 166, 142, 132, 174, 148, 125, 164, 138, 105, 169, 140, 106, 170, 141, 111, 174, 145, 127, 199, 174, 167, 200, 184, 185, 176, 165, 173, 169, 159, 170, 174, 166, 179, 172, 166, 178, 165, 162, 169, 163, 161, 164, 163, 159, 158, 178, 173, 169, 187, 182, 178, 194, 186, 184, 190, 182, 180, 178, 169, 170, 167, 162, 159, 180, 176, 173, 207, 206, 202, 216, 215, 213, 210, 210, 210, 210, 210, 210, 220, 220, 220, 230, 230, 230, 235, 235, 235, 238, 238, 238, 241, 241, 241, 239, 239, 239, 240, 240, 240, 242, 242, 242, 243, 243, 243, 244, 244, 244, 244, 244, 244, 244, 244, 244, 243, 243, 243, 245, 243, 244, 245, 243, 244, 246, 244, 245, 246, 244, 245, 246, 244, 245, 247, 245, 246, 247, 245, 246, 247, 245, 246, 248, 246, 247, 248, 246, 247, 248, 246, 247, 249, 247, 248, 249, 247, 248, 249, 247, 248, 250, 248, 249, 250, 248, 249, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 249, 247, 248, 249, 247, 248, 250, 248, 249, 250, 248, 249, 250, 248, 249, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 250, 248, 249, 250, 248, 249, 249, 247, 248, 249, 247, 248, 249, 247, 248, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 247, 245, 246, 247, 245, 246, 246, 244, 245, 246, 244, 245, 245, 243, 244, 245, 243, 244, 245, 243, 244, 245, 243, 244, 244, 242, 243, 244, 242, 243, 244, 242, 243, 242, 242, 242, 242, 242, 242, 241, 243, 242, 242, 242, 242, 241, 241, 241, 238, 236, 237, 234, 232, 233, 231, 227, 228, 228, 224, 225, 220, 216, 217, 198, 194, 195, 198, 196, 197, 204, 202, 203, 189, 189, 189, 188, 188, 188, 207, 209, 208, 217, 219, 218, 227, 227, 225, 224, 224, 222, 220, 220, 218, 216, 216, 214, 213, 213, 211, 212, 212, 210, 211, 211, 209, 211, 211, 209, 195, 195, 193, 198, 198, 196, 195, 195, 193, 190, 190, 188, 197, 197, 195, 209, 209, 207, 209, 209, 207, 200, 200, 198, 198, 197, 195, 191, 190, 188, 180, 179, 177, 174, 173, 171, 180, 179, 177, 188, 187, 185, 188, 187, 185, 181, 180, 178, 169, 168, 166, 181, 180, 178, 184, 183, 181, 175, 174, 172, 177, 176, 174, 189, 188, 186, 185, 184, 182, 170, 169, 167, 183, 182, 180, 176, 175, 173, 162, 161, 159, 152, 151, 149, 158, 157, 155, 174, 173, 171, 185, 181, 178, 184, 180, 177, 149, 145, 142, 143, 139, 136, 140, 136, 133, 142, 138, 135, 147, 142, 138, 154, 149, 145, 160, 155, 151, 160, 155, 151, 159, 154, 151, 162, 157, 154, 163, 158, 155, 158, 153, 150, 149, 145, 142, 147, 143, 140, 150, 146, 143, 156, 152, 149, 168, 164, 161, 172, 168, 165, 185, 180, 177, 193, 188, 185, 181, 173, 171, 155, 147, 145, 144, 134, 133, 149, 139, 138, 157, 149, 147, 161, 153, 151, 167, 159, 157, 174, 166, 164, 183, 175, 172, 189, 181, 178, 190, 182, 179, 188, 180, 177, 154, 146, 143, 143, 135, 132, 130, 123, 117, 124, 117, 111, 122, 115, 109, 123, 116, 110, 131, 124, 118, 139, 132, 126, 148, 139, 132, 153, 144, 137, 155, 146, 139, 152, 143, 136, 151, 142, 135, 152, 143, 136, 149, 140, 133, 143, 134, 127, 150, 141, 134, 150, 141, 134, 154, 145, 138, 162, 153, 146, 168, 159, 152, 168, 159, 152, 160, 151, 144, 153, 144, 137, 148, 137, 133, 151, 140, 136, 154, 143, 139, 155, 144, 140, 155, 144, 140, 158, 147, 143, 163, 152, 148, 168, 157, 153, 170, 159, 155, 168, 157, 153, 159, 148, 144, 152, 141, 137, 149, 138, 134, 146, 135, 131, 145, 134, 130, 147, 136, 132, 161, 150, 146, 152, 141, 137, 146, 135, 131, 146, 135, 131, 145, 134, 130, 143, 132, 128, 143, 132, 128, 146, 135, 131, 150, 139, 135, 150, 139, 135, 149, 138, 134, 147, 136, 132, 145, 134, 130, 145, 134, 130, 147, 136, 132, 149, 138, 134, 133, 122, 120, 126, 115, 113, 118, 107, 105, 115, 104, 102, 120, 109, 107, 127, 116, 114, 134, 123, 121, 137, 126, 124, 129, 118, 116, 135, 124, 122, 140, 129, 127, 145, 134, 132, 151, 140, 138, 157, 146, 144, 156, 145, 143, 150, 139, 135, 134, 125, 120, 140, 131, 124, 147, 138, 131, 148, 139, 132, 145, 136, 131, 145, 136, 131, 149, 140, 135, 154, 145, 140, 165, 156, 151, 173, 164, 159, 178, 168, 166, 177, 167, 165, 176, 166, 164, 177, 167, 165, 175, 165, 163, 172, 162, 160, 161, 153, 150, 166, 158, 155, 174, 164, 162, 182, 172, 170, 190, 180, 178, 195, 185, 183, 196, 188, 185, 198, 190, 187, 196, 191, 188, 198, 194, 191, 201, 197, 198, 201, 201, 201, 204, 203, 208, 209, 210, 214, 214, 217, 222, 219, 222, 227, 224, 227, 232, 225, 228, 233, 229, 232, 237, 232, 235, 240, 235, 238, 243, 237, 240, 245, 238, 241, 246, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 239, 244, 248, 237, 245, 248, 238, 243, 247, 237, 242, 246, 235, 240, 243, 233, 238, 241, 232, 236, 239, 230, 234, 237, 227, 228, 230, 222, 223, 225, 218, 218, 218, 214, 214, 214, 213, 213, 211, 212, 212, 210, 211, 210, 208, 209, 208, 206, 213, 208, 205, 213, 208, 205, 213, 208, 205, 212, 207, 204, 209, 204, 201, 205, 200, 197, 200, 195, 192, 197, 192, 189, 201, 196, 193, 201, 196, 193, 201, 196, 193, 199, 194, 191, 197, 192, 189, 194, 189, 186, 192, 187, 184, 190, 185, 182, 198, 193, 190, 197, 192, 189, 196, 191, 188, 193, 188, 185, 190, 185, 182, 187, 182, 179, 185, 180, 177, 184, 179, 176, 185, 180, 177, 185, 180, 177, 184, 179, 176, 181, 176, 173, 178, 173, 170, 177, 172, 169, 180, 175, 172, 183, 178, 175, 179, 174, 171, 182, 177, 174, 179, 174, 171, 172, 167, 164, 168, 163, 160, 171, 166, 163, 173, 168, 165, 173, 168, 165, 168, 163, 160, 168, 163, 160, 171, 166, 163, 175, 170, 167, 179, 174, 171, 180, 175, 172, 178, 173, 170, 175, 170, 167, 181, 176, 172, 176, 171, 167, 171, 166, 162, 165, 160, 156, 159, 154, 150, 157, 152, 148, 162, 157, 153, 170, 165, 161, 175, 170, 166, 170, 165, 161, 160, 155, 151, 150, 145, 141, 147, 142, 138, 149, 144, 140, 152, 147, 143, 153, 148, 144, 176, 171, 165, 178, 173, 167, 177, 172, 168, 169, 164, 160, 160, 155, 151, 157, 152, 148, 163, 158, 154, 170, 165, 161, 174, 170, 167, 179, 178, 174, 188, 187, 183, 192, 193, 188, 192, 194, 189, 191, 196, 190, 193, 198, 194, 196, 201, 197, 186, 188, 185, 186, 186, 184, 183, 182, 178, 169, 165, 162, 146, 142, 139, 127, 123, 120, 101, 97, 98, 69, 67, 72, 122, 119, 126, 125, 120, 127, 116, 107, 110, 124, 111, 105, 145, 124, 105, 134, 107, 77, 142, 108, 63, 190, 148, 88, 205, 152, 72, 216, 159, 69, 223, 167, 74, 228, 173, 82, 239, 185, 99, 251, 198, 120, 251, 202, 135, 245, 199, 139, 234, 193, 137, 230, 195, 139, 228, 196, 137, 225, 193, 132, 221, 190, 126, 217, 183, 122, 214, 175, 118, 208, 172, 114, 216, 184, 123, 211, 184, 117, 212, 184, 111, 215, 187, 113, 212, 184, 110, 204, 177, 100, 199, 172, 95, 200, 171, 93, 197, 169, 85, 200, 171, 79, 201, 173, 74, 203, 176, 73, 208, 179, 77, 214, 184, 88, 224, 190, 101, 230, 193, 113, 234, 194, 122, 241, 198, 129, 246, 202, 131, 249, 203, 126, 249, 204, 121, 248, 202, 114, 237, 192, 101, 229, 179, 90, 220, 162, 78, 222, 160, 77, 215, 148, 61, 191, 125, 41, 159, 101, 28, 122, 73, 17, 77, 35, 10, 37, 9, 0, 33, 18, 15, 59, 58, 64, 81, 94, 113, 90, 107, 135, 92, 107, 138, 93, 103, 130, 115, 112, 133, 146, 134, 146, 160, 144, 147, 184, 164, 155, 178, 151, 130, 166, 136, 108, 176, 143, 112, 180, 150, 124, 190, 164, 149, 208, 189, 183, 199, 187, 187, 163, 154, 159, 152, 145, 153, 169, 163, 173, 182, 179, 188, 189, 186, 193, 184, 179, 183, 167, 163, 160, 174, 169, 165, 160, 152, 149, 148, 138, 137, 152, 143, 144, 155, 146, 149, 141, 135, 137, 157, 153, 154, 199, 198, 196, 214, 212, 213, 208, 208, 208, 209, 209, 209, 220, 220, 220, 230, 230, 230, 234, 234, 234, 236, 236, 236, 239, 239, 239, 239, 239, 239, 240, 240, 240, 242, 242, 242, 243, 243, 243, 244, 244, 244, 244, 244, 244, 244, 244, 244, 243, 243, 243, 246, 244, 245, 246, 244, 245, 246, 244, 245, 247, 245, 246, 247, 245, 246, 247, 245, 246, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 249, 247, 248, 249, 247, 248, 249, 247, 248, 250, 248, 249, 250, 248, 249, 250, 248, 249, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 249, 247, 248, 249, 247, 248, 250, 248, 249, 250, 248, 249, 250, 248, 249, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 252, 250, 251, 251, 249, 250, 251, 249, 250, 251, 249, 250, 250, 248, 249, 250, 248, 249, 250, 248, 249, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 248, 246, 247, 248, 246, 247, 248, 246, 247, 247, 245, 246, 247, 245, 246, 246, 244, 245, 246, 244, 245, 245, 243, 244, 245, 243, 244, 245, 243, 244, 244, 242, 243, 244, 242, 243, 243, 243, 243, 243, 243, 243, 242, 244, 243, 243, 243, 243, 242, 242, 242, 241, 239, 240, 238, 236, 237, 237, 233, 234, 235, 231, 232, 228, 224, 225, 218, 214, 215, 221, 219, 220, 212, 210, 211, 183, 183, 183, 190, 190, 190, 214, 216, 215, 216, 218, 217, 228, 228, 226, 226, 226, 224, 223, 223, 221, 219, 219, 217, 216, 216, 214, 214, 214, 212, 213, 213, 211, 212, 212, 210, 196, 196, 194, 203, 203, 201, 199, 199, 197, 187, 187, 185, 187, 187, 185, 202, 202, 200, 208, 208, 206, 203, 203, 201, 205, 204, 202, 211, 210, 208, 208, 207, 205, 191, 190, 188, 177, 176, 174, 178, 177, 175, 191, 190, 188, 201, 200, 198, 190, 189, 187, 173, 172, 170, 175, 174, 172, 193, 192, 190, 191, 190, 188, 171, 170, 168, 171, 170, 168, 190, 189, 187, 182, 181, 179, 171, 170, 168, 155, 154, 152, 146, 145, 143, 153, 149, 148, 168, 164, 163, 181, 177, 174, 187, 183, 180, 189, 185, 182, 177, 173, 170, 161, 156, 153, 152, 147, 144, 154, 149, 145, 153, 148, 144, 146, 141, 137, 141, 136, 132, 144, 139, 136, 150, 145, 142, 154, 149, 146, 152, 147, 144, 147, 143, 140, 150, 146, 143, 160, 156, 153, 170, 166, 163, 144, 140, 137, 143, 139, 136, 139, 134, 131, 133, 128, 125, 133, 125, 123, 139, 129, 128, 146, 134, 134, 147, 137, 136, 171, 163, 161, 165, 157, 155, 159, 151, 149, 158, 150, 148, 160, 152, 149, 162, 154, 151, 165, 157, 154, 167, 159, 156, 161, 153, 150, 154, 146, 143, 151, 144, 138, 157, 150, 144, 165, 158, 152, 169, 162, 156, 172, 165, 159, 175, 168, 162, 146, 137, 130, 151, 140, 134, 153, 142, 136, 151, 140, 134, 149, 138, 132, 150, 139, 133, 146, 135, 129, 141, 130, 124, 141, 130, 124, 143, 132, 126, 149, 138, 132, 161, 150, 144, 169, 158, 152, 168, 157, 151, 156, 145, 139, 145, 134, 128, 136, 125, 121, 141, 130, 126, 147, 136, 132, 152, 141, 137, 155, 144, 140, 157, 146, 142, 159, 148, 144, 160, 149, 145, 163, 152, 148, 158, 147, 143, 154, 143, 139, 151, 140, 136, 149, 138, 134, 152, 141, 137, 157, 146, 142, 159, 148, 144, 160, 149, 147, 154, 143, 141, 152, 141, 139, 155, 144, 142, 155, 144, 142, 151, 140, 138, 148, 137, 135, 148, 137, 135, 141, 130, 128, 141, 130, 128, 140, 129, 127, 135, 124, 122, 128, 117, 115, 124, 113, 111, 123, 112, 110, 125, 114, 112, 118, 107, 105, 111, 100, 98, 101, 90, 88, 96, 85, 83, 99, 88, 86, 107, 96, 94, 117, 106, 104, 124, 113, 111, 139, 128, 126, 142, 131, 129, 144, 133, 131, 146, 135, 133, 153, 142, 140, 161, 150, 148, 163, 152, 150, 159, 148, 144, 147, 138, 133, 147, 138, 131, 148, 139, 132, 150, 141, 134, 152, 143, 138, 152, 143, 138, 149, 140, 135, 147, 138, 133, 165, 156, 151, 173, 164, 159, 178, 168, 166, 178, 168, 166, 177, 167, 165, 178, 168, 166, 177, 167, 165, 174, 164, 162, 171, 163, 160, 174, 166, 163, 180, 170, 168, 186, 176, 174, 190, 180, 178, 192, 182, 180, 192, 184, 181, 192, 184, 181, 196, 191, 188, 198, 194, 191, 201, 197, 198, 201, 201, 201, 204, 203, 208, 208, 209, 213, 213, 216, 221, 218, 221, 226, 225, 228, 233, 227, 230, 235, 229, 232, 237, 233, 236, 241, 235, 238, 243, 237, 240, 245, 238, 241, 246, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 240, 245, 249, 240, 245, 249, 238, 246, 249, 240, 245, 249, 239, 244, 248, 237, 242, 245, 235, 240, 243, 234, 238, 241, 233, 237, 240, 231, 232, 234, 226, 227, 229, 221, 221, 221, 217, 217, 217, 215, 215, 213, 213, 213, 211, 212, 211, 209, 210, 209, 207, 210, 206, 203, 211, 206, 203, 210, 205, 202, 209, 204, 201, 206, 201, 198, 203, 198, 195, 201, 196, 193, 199, 194, 191, 202, 197, 194, 202, 197, 194, 201, 196, 193, 200, 195, 192, 197, 192, 189, 194, 189, 186, 191, 186, 183, 190, 185, 182, 194, 189, 186, 194, 189, 186, 193, 188, 185, 193, 188, 185, 193, 188, 185, 194, 189, 186, 196, 191, 188, 197, 192, 189, 197, 192, 189, 195, 190, 187, 189, 184, 181, 181, 176, 173, 174, 169, 166, 171, 166, 163, 172, 167, 164, 174, 169, 166, 178, 173, 170, 183, 178, 175, 184, 179, 176, 178, 173, 170, 175, 170, 167, 175, 170, 167, 175, 170, 167, 172, 167, 164, 164, 159, 156, 165, 160, 157, 167, 162, 159, 172, 167, 164, 178, 173, 170, 181, 176, 173, 182, 177, 174, 181, 176, 173, 173, 168, 164, 183, 178, 174, 191, 186, 182, 190, 185, 181, 182, 177, 173, 177, 172, 168, 179, 174, 170, 184, 179, 175, 164, 159, 155, 164, 159, 155, 162, 157, 153, 160, 155, 151, 167, 162, 158, 178, 173, 169, 183, 178, 174, 182, 177, 173, 172, 167, 161, 177, 172, 166, 182, 177, 173, 183, 178, 174, 181, 176, 172, 182, 177, 173, 185, 180, 176, 189, 184, 180, 178, 174, 171, 186, 185, 181, 196, 195, 191, 198, 200, 195, 195, 197, 192, 192, 197, 191, 194, 200, 196, 198, 204, 200, 191, 198, 191, 198, 203, 197, 197, 198, 193, 178, 177, 173, 158, 155, 150, 139, 136, 131, 116, 112, 109, 96, 92, 91, 74, 72, 77, 118, 115, 122, 131, 125, 135, 103, 93, 101, 102, 88, 85, 139, 122, 106, 151, 132, 102, 138, 107, 61, 186, 138, 72, 205, 150, 70, 214, 158, 73, 218, 161, 72, 230, 170, 84, 247, 185, 108, 252, 193, 125, 246, 192, 130, 244, 198, 139, 241, 201, 140, 240, 205, 139, 239, 206, 137, 236, 203, 134, 232, 197, 133, 227, 188, 131, 223, 184, 129, 220, 186, 125, 216, 185, 120, 218, 188, 118, 222, 194, 121, 222, 194, 121, 218, 189, 119, 218, 187, 120, 220, 190, 120, 229, 197, 122, 227, 196, 113, 225, 194, 101, 226, 193, 96, 228, 194, 97, 233, 198, 106, 239, 201, 118, 242, 204, 123, 246, 205, 125, 249, 203, 125, 248, 199, 123, 249, 196, 118, 253, 199, 113, 254, 200, 110, 248, 195, 103, 238, 184, 96, 197, 140, 63, 189, 129, 59, 174, 111, 44, 145, 87, 24, 108, 58, 5, 73, 34, 0, 45, 18, 1, 30, 11, 7, 57, 42, 45, 76, 68, 79, 79, 80, 100, 77, 79, 104, 95, 95, 119, 122, 119, 138, 144, 136, 149, 158, 147, 155, 153, 143, 144, 173, 158, 151, 170, 144, 129, 168, 138, 114, 179, 145, 120, 184, 156, 135, 196, 178, 168, 195, 184, 182, 186, 178, 176, 161, 155, 157, 159, 154, 160, 170, 167, 174, 173, 170, 177, 180, 178, 183, 183, 179, 180, 167, 163, 160, 167, 159, 156, 131, 123, 120, 105, 95, 96, 129, 118, 122, 159, 150, 155, 149, 143, 147, 150, 144, 148, 182, 180, 183, 213, 211, 212, 208, 208, 208, 210, 210, 210, 221, 221, 221, 231, 231, 231, 234, 234, 234, 236, 236, 236, 238, 238, 238, 239, 239, 239, 240, 240, 240, 242, 242, 242, 243, 243, 243, 244, 244, 244, 244, 244, 244, 244, 244, 244, 243, 243, 243, 246, 244, 245, 246, 244, 245, 247, 245, 246, 247, 245, 246, 247, 245, 246, 248, 246, 247, 248, 246, 247, 248, 246, 247, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 250, 248, 249, 250, 248, 249, 250, 248, 249, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 249, 247, 248, 249, 247, 248, 250, 248, 249, 250, 248, 249, 250, 248, 249, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 252, 250, 251, 252, 250, 251, 251, 249, 250, 251, 249, 250, 251, 249, 250, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 249, 247, 248, 249, 247, 248, 248, 246, 247, 248, 246, 247, 248, 246, 247, 246, 244, 245, 246, 244, 245, 246, 244, 245, 245, 243, 244, 245, 243, 244, 245, 243, 244, 244, 242, 243, 243, 243, 243, 243, 243, 243, 242, 244, 243, 243, 243, 243, 242, 242, 242, 242, 240, 241, 240, 238, 239, 240, 236, 237, 239, 235, 236, 237, 233, 234, 233, 229, 230, 230, 228, 229, 215, 213, 214, 199, 199, 199, 215, 215, 215, 229, 231, 230, 217, 219, 218, 224, 224, 222, 224, 224, 222, 224, 224, 222, 222, 222, 220, 220, 220, 218, 216, 216, 214, 214, 214, 212, 212, 212, 210, 215, 215, 213, 207, 207, 205, 200, 200, 198, 198, 198, 196, 192, 192, 190, 186, 186, 184, 189, 189, 187, 198, 198, 196, 196, 195, 193, 202, 201, 199, 203, 202, 200, 197, 196, 194, 190, 189, 187, 190, 189, 187, 191, 190, 188, 190, 189, 187, 204, 203, 201, 193, 192, 190, 191, 190, 188, 195, 194, 192, 187, 186, 184, 169, 168, 166, 165, 164, 162, 173, 172, 170, 177, 176, 174, 170, 169, 167, 159, 158, 156, 150, 149, 147, 151, 147, 146, 156, 152, 151, 166, 162, 159, 174, 170, 167, 157, 153, 150, 169, 165, 162, 178, 173, 170, 185, 180, 177, 192, 187, 183, 189, 184, 180, 182, 177, 173, 185, 180, 176, 171, 166, 163, 169, 164, 161, 162, 157, 154, 148, 143, 140, 134, 130, 127, 129, 125, 122, 134, 130, 127, 141, 137, 134, 143, 139, 136, 136, 132, 129, 123, 118, 115, 115, 107, 105, 124, 114, 113, 142, 132, 131, 151, 139, 139, 147, 137, 136, 139, 129, 128, 129, 121, 119, 124, 116, 114, 128, 120, 118, 134, 126, 123, 141, 133, 130, 150, 142, 139, 158, 150, 147, 160, 152, 149, 158, 150, 147, 160, 153, 147, 167, 160, 154, 171, 164, 158, 168, 161, 155, 166, 159, 153, 169, 160, 155, 186, 175, 169, 184, 173, 167, 176, 165, 159, 162, 151, 145, 153, 142, 136, 149, 138, 132, 145, 134, 128, 139, 128, 122, 143, 132, 126, 151, 140, 134, 161, 150, 144, 165, 154, 148, 161, 150, 144, 154, 143, 137, 148, 137, 131, 146, 135, 129, 141, 130, 126, 146, 135, 131, 154, 143, 139, 162, 151, 147, 166, 155, 151, 167, 156, 152, 165, 154, 150, 163, 152, 148, 168, 157, 153, 163, 152, 148, 166, 155, 151, 166, 155, 151, 158, 147, 143, 157, 146, 142, 158, 147, 143, 152, 141, 137, 137, 126, 124, 135, 124, 122, 137, 126, 124, 145, 134, 132, 148, 137, 135, 145, 134, 132, 141, 130, 128, 141, 130, 128, 132, 121, 119, 132, 121, 119, 128, 117, 115, 117, 106, 104, 103, 92, 90, 92, 81, 79, 87, 76, 74, 87, 76, 74, 100, 89, 87, 101, 90, 88, 103, 92, 90, 107, 96, 94, 112, 101, 99, 118, 107, 105, 124, 113, 111, 127, 116, 114, 133, 122, 120, 136, 125, 123, 137, 126, 124, 138, 127, 125, 145, 134, 132, 155, 144, 142, 158, 147, 145, 156, 145, 141, 157, 148, 143, 151, 142, 135, 146, 137, 130, 146, 137, 130, 152, 143, 138, 159, 150, 145, 162, 153, 148, 163, 154, 149, 169, 160, 155, 175, 166, 161, 179, 169, 167, 178, 168, 166, 176, 166, 164, 178, 168, 166, 179, 169, 167, 176, 166, 164, 169, 161, 158, 171, 163, 160, 176, 166, 164, 181, 171, 169, 186, 176, 174, 190, 180, 178, 191, 183, 180, 192, 184, 181, 194, 189, 186, 196, 192, 189, 199, 195, 196, 200, 200, 200, 204, 203, 208, 209, 210, 214, 214, 217, 222, 219, 222, 227, 227, 230, 235, 228, 231, 236, 231, 234, 239, 234, 237, 242, 236, 239, 244, 238, 241, 246, 239, 242, 247, 239, 242, 247, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 247, 251, 254, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 241, 246, 250, 241, 246, 250, 239, 247, 250, 241, 246, 250, 240, 245, 249, 239, 244, 247, 237, 242, 245, 236, 240, 243, 235, 239, 242, 234, 235, 237, 229, 230, 232, 224, 224, 224, 219, 219, 219, 217, 217, 215, 215, 215, 213, 212, 212, 210, 211, 210, 208, 211, 207, 204, 211, 206, 203, 209, 204, 201, 206, 201, 198, 205, 200, 197, 204, 199, 196, 204, 199, 196, 204, 199, 196, 204, 199, 196, 203, 198, 195, 202, 197, 194, 200, 195, 192, 198, 193, 190, 194, 189, 186, 191, 186, 183, 190, 185, 182, 189, 184, 181, 190, 185, 182, 192, 187, 184, 195, 190, 187, 196, 191, 188, 197, 192, 189, 197, 192, 189, 196, 191, 188, 196, 191, 188, 192, 187, 184, 185, 180, 177, 176, 171, 168, 168, 163, 160, 165, 160, 157, 167, 162, 159, 169, 164, 161, 174, 169, 166, 181, 176, 173, 185, 180, 177, 183, 178, 175, 181, 176, 173, 180, 175, 172, 177, 172, 169, 173, 168, 165, 167, 162, 159, 165, 160, 157, 164, 159, 156, 166, 161, 158, 170, 165, 162, 173, 168, 165, 174, 169, 166, 174, 169, 166, 172, 167, 163, 181, 176, 172, 186, 181, 177, 181, 176, 172, 171, 166, 162, 165, 160, 156, 165, 160, 156, 166, 161, 157, 150, 145, 141, 155, 150, 146, 157, 152, 148, 158, 153, 149, 168, 163, 159, 180, 175, 171, 182, 177, 173, 176, 171, 167, 166, 161, 155, 175, 170, 164, 187, 182, 178, 196, 191, 187, 198, 190, 187, 189, 181, 178, 175, 170, 166, 167, 162, 158, 182, 178, 175, 183, 182, 178, 188, 187, 183, 191, 193, 188, 195, 197, 192, 197, 202, 196, 199, 205, 201, 202, 209, 202, 186, 196, 187, 193, 203, 194, 192, 197, 191, 178, 180, 175, 166, 165, 160, 155, 152, 147, 136, 133, 126, 120, 117, 112, 114, 110, 111, 61, 58, 65, 89, 83, 97, 133, 127, 141, 112, 105, 113, 109, 101, 99, 135, 128, 112, 140, 120, 93, 146, 104, 62, 185, 130, 74, 213, 154, 88, 221, 159, 84, 228, 161, 83, 241, 173, 98, 252, 185, 117, 250, 189, 126, 253, 199, 135, 248, 203, 135, 246, 209, 131, 244, 211, 130, 243, 211, 134, 243, 209, 138, 244, 205, 146, 243, 204, 147, 229, 193, 131, 224, 190, 126, 223, 190, 121, 225, 195, 125, 228, 197, 132, 230, 198, 137, 234, 203, 146, 242, 210, 153, 248, 214, 151, 244, 212, 139, 239, 207, 122, 239, 204, 114, 241, 204, 113, 246, 206, 119, 250, 207, 128, 252, 210, 128, 247, 206, 114, 248, 203, 110, 249, 194, 111, 246, 188, 106, 248, 186, 99, 246, 185, 96, 235, 176, 86, 219, 163, 80, 205, 148, 81, 175, 118, 65, 142, 85, 40, 109, 60, 20, 74, 36, 0, 45, 20, 0, 36, 23, 7, 46, 35, 29, 82, 66, 66, 94, 77, 83, 95, 78, 94, 103, 86, 104, 136, 118, 134, 157, 139, 151, 145, 132, 139, 128, 119, 122, 156, 152, 153, 171, 161, 159, 173, 150, 142, 178, 149, 135, 179, 146, 129, 187, 161, 148, 201, 193, 190, 184, 184, 184, 183, 179, 178, 177, 171, 171, 185, 180, 184, 182, 180, 185, 163, 161, 166, 168, 166, 169, 180, 176, 175, 167, 163, 160, 155, 147, 144, 142, 134, 132, 140, 129, 133, 178, 167, 173, 215, 205, 214, 193, 186, 194, 162, 155, 163, 168, 166, 171, 215, 213, 216, 210, 210, 210, 212, 212, 212, 223, 223, 223, 233, 233, 233, 237, 237, 237, 238, 238, 238, 239, 239, 239, 239, 239, 239, 240, 240, 240, 242, 242, 242, 243, 243, 243, 244, 244, 244, 244, 244, 244, 244, 244, 244, 243, 243, 243, 246, 244, 245, 246, 244, 245, 247, 245, 246, 247, 245, 246, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 249, 247, 248, 249, 247, 248, 249, 247, 248, 250, 248, 249, 250, 248, 249, 250, 248, 249, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 249, 247, 248, 249, 247, 248, 250, 248, 249, 250, 248, 249, 250, 248, 249, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 252, 250, 251, 252, 250, 251, 252, 250, 251, 251, 249, 250, 251, 249, 250, 251, 249, 250, 250, 248, 249, 250, 248, 249, 251, 249, 250, 250, 248, 249, 250, 248, 249, 250, 248, 249, 249, 247, 248, 249, 247, 248, 249, 247, 248, 248, 246, 247, 247, 245, 246, 246, 244, 245, 246, 244, 245, 246, 244, 245, 245, 243, 244, 245, 243, 244, 245, 243, 244, 243, 243, 243, 244, 244, 244, 242, 244, 243, 243, 243, 243, 241, 241, 241, 241, 239, 240, 240, 238, 239, 241, 237, 238, 241, 237, 238, 239, 235, 236, 239, 235, 236, 230, 228, 229, 218, 216, 217, 215, 215, 215, 225, 225, 225, 227, 229, 228, 217, 219, 218, 219, 219, 217, 221, 221, 219, 223, 223, 221, 224, 224, 222, 223, 223, 221, 218, 218, 216, 214, 214, 212, 210, 210, 208, 223, 223, 221, 213, 213, 211, 205, 205, 203, 203, 203, 201, 199, 199, 197, 191, 191, 189, 184, 184, 182, 181, 181, 179, 187, 186, 184, 187, 186, 184, 187, 186, 184, 191, 190, 188, 198, 197, 195, 198, 197, 195, 185, 184, 182, 168, 167, 165, 174, 173, 171, 181, 180, 178, 182, 181, 179, 178, 177, 175, 183, 182, 180, 190, 189, 187, 181, 180, 178, 164, 163, 161, 164, 163, 161, 166, 165, 163, 167, 166, 164, 166, 165, 163, 161, 157, 156, 156, 152, 151, 159, 155, 152, 165, 161, 158, 177, 173, 170, 184, 180, 177, 176, 171, 168, 162, 157, 154, 159, 154, 150, 157, 152, 148, 163, 158, 154, 182, 177, 173, 182, 174, 172, 177, 169, 167, 167, 162, 159, 157, 152, 149, 150, 146, 143, 154, 150, 147, 164, 160, 157, 172, 168, 165, 173, 168, 165, 164, 159, 156, 159, 151, 149, 163, 155, 153, 173, 163, 162, 177, 167, 166, 173, 161, 161, 167, 157, 156, 170, 160, 159, 161, 153, 151, 158, 150, 148, 162, 154, 152, 165, 157, 154, 162, 154, 151, 163, 155, 152, 168, 160, 157, 152, 144, 141, 158, 150, 147, 167, 160, 154, 168, 161, 155, 160, 153, 147, 153, 146, 140, 159, 152, 146, 171, 162, 157, 158, 147, 141, 162, 149, 143, 161, 148, 142, 157, 144, 138, 156, 143, 137, 158, 145, 139, 158, 145, 139, 154, 141, 135, 156, 143, 137, 158, 145, 139, 159, 146, 140, 156, 143, 137, 151, 138, 132, 146, 133, 127, 143, 130, 124, 143, 130, 124, 155, 144, 140, 158, 147, 143, 164, 153, 149, 170, 159, 155, 175, 164, 160, 175, 164, 160, 172, 161, 157, 169, 158, 154, 162, 151, 147, 153, 142, 138, 153, 142, 138, 150, 139, 135, 135, 124, 120, 131, 120, 116, 130, 119, 115, 121, 110, 106, 122, 111, 109, 119, 108, 106, 122, 111, 109, 129, 118, 116, 133, 122, 120, 131, 120, 118, 128, 117, 115, 128, 117, 115, 130, 119, 117, 130, 119, 117, 125, 114, 112, 111, 100, 98, 92, 81, 79, 77, 66, 64, 71, 60, 58, 70, 59, 57, 70, 59, 57, 81, 70, 68, 97, 86, 84, 114, 103, 101, 128, 117, 115, 138, 127, 125, 144, 133, 131, 147, 136, 134, 125, 114, 112, 130, 119, 117, 134, 123, 121, 139, 128, 126, 148, 137, 135, 157, 146, 144, 159, 148, 146, 156, 145, 141, 161, 152, 147, 159, 150, 143, 156, 147, 140, 155, 146, 139, 158, 149, 144, 165, 156, 151, 174, 165, 160, 180, 171, 166, 174, 165, 160, 179, 170, 165, 181, 171, 169, 177, 167, 165, 175, 165, 163, 178, 168, 166, 180, 170, 168, 179, 169, 167, 169, 161, 158, 170, 162, 159, 174, 164, 162, 179, 169, 167, 184, 174, 172, 190, 180, 178, 194, 186, 183, 197, 189, 186, 193, 188, 185, 195, 191, 188, 199, 195, 196, 200, 200, 200, 205, 204, 209, 210, 211, 215, 216, 219, 224, 222, 225, 230, 228, 231, 236, 230, 233, 238, 232, 235, 240, 235, 238, 243, 237, 240, 245, 239, 242, 247, 239, 242, 247, 239, 242, 247, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 247, 251, 254, 247, 251, 254, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 241, 246, 250, 240, 245, 248, 238, 243, 246, 237, 241, 244, 236, 240, 243, 236, 237, 241, 231, 232, 234, 224, 225, 227, 219, 220, 222, 218, 218, 218, 215, 217, 216, 213, 213, 213, 211, 211, 211, 212, 208, 207, 210, 206, 203, 208, 203, 200, 205, 201, 198, 205, 200, 197, 205, 200, 197, 207, 202, 199, 208, 203, 200, 205, 200, 197, 204, 199, 196, 203, 198, 195, 201, 196, 193, 198, 193, 190, 195, 190, 187, 192, 187, 184, 190, 185, 182, 186, 181, 178, 189, 184, 181, 193, 188, 185, 196, 191, 188, 196, 191, 188, 192, 187, 184, 188, 183, 180, 185, 180, 177, 173, 168, 165, 172, 167, 164, 170, 165, 162, 167, 162, 159, 166, 161, 158, 171, 166, 163, 178, 173, 170, 184, 179, 176, 184, 179, 176, 191, 186, 183, 194, 189, 186, 190, 185, 182, 183, 178, 175, 178, 173, 170, 170, 165, 162, 163, 158, 155, 160, 155, 152, 157, 152, 149, 156, 151, 148, 157, 152, 149, 162, 157, 154, 167, 162, 159, 170, 165, 162, 171, 166, 163, 159, 154, 150, 160, 155, 151, 155, 150, 146, 145, 140, 136, 139, 134, 130, 142, 137, 133, 148, 143, 139, 150, 145, 141, 161, 156, 152, 166, 161, 157, 167, 162, 158, 165, 160, 156, 171, 166, 162, 178, 173, 169, 175, 167, 164, 162, 157, 153, 174, 169, 165, 177, 172, 168, 184, 179, 175, 191, 186, 182, 197, 189, 186, 194, 186, 183, 185, 180, 176, 178, 173, 169, 171, 166, 163, 166, 162, 159, 164, 163, 159, 171, 172, 167, 184, 186, 181, 193, 198, 192, 199, 204, 200, 199, 204, 198, 192, 199, 191, 198, 205, 198, 195, 200, 196, 192, 194, 191, 193, 194, 189, 183, 182, 177, 154, 154, 146, 128, 127, 122, 116, 115, 113, 94, 92, 97, 89, 86, 97, 126, 122, 136, 151, 148, 159, 124, 119, 123, 94, 91, 86, 111, 99, 85, 79, 49, 25, 136, 93, 58, 185, 137, 89, 206, 151, 94, 214, 153, 88, 232, 167, 99, 250, 185, 119, 255, 196, 129, 254, 197, 126, 251, 199, 124, 248, 203, 122, 246, 206, 121, 247, 209, 128, 249, 211, 138, 254, 213, 151, 255, 215, 154, 255, 216, 151, 245, 208, 138, 236, 199, 129, 234, 197, 129, 233, 195, 132, 235, 196, 137, 243, 204, 149, 252, 213, 156, 250, 210, 149, 245, 205, 136, 240, 199, 119, 237, 196, 108, 241, 195, 107, 245, 198, 110, 250, 199, 116, 251, 201, 114, 246, 198, 98, 247, 198, 96, 248, 191, 101, 244, 183, 100, 239, 178, 95, 224, 167, 86, 200, 147, 69, 176, 129, 61, 143, 97, 47, 101, 59, 21, 64, 23, 0, 47, 11, 0, 35, 8, 0, 31, 12, 0, 48, 38, 28, 79, 70, 65, 81, 67, 66, 108, 92, 95, 127, 107, 118, 133, 113, 124, 144, 123, 132, 146, 127, 131, 139, 127, 127, 137, 132, 129, 180, 179, 177, 186, 181, 178, 184, 167, 160, 183, 160, 152, 167, 143, 133, 173, 156, 149, 196, 194, 195, 173, 177, 180, 180, 179, 177, 184, 180, 177, 198, 196, 197, 192, 190, 193, 166, 166, 168, 175, 173, 176, 190, 189, 187, 179, 175, 172, 180, 175, 172, 169, 164, 161, 148, 139, 142, 153, 144, 149, 177, 170, 177, 175, 168, 176, 173, 168, 174, 198, 196, 201, 215, 215, 217, 212, 212, 212, 214, 214, 214, 226, 226, 226, 236, 236, 236, 239, 239, 239, 240, 240, 240, 241, 241, 241, 239, 239, 239, 240, 240, 240, 242, 242, 242, 243, 243, 243, 244, 244, 244, 244, 244, 244, 244, 244, 244, 243, 243, 243, 246, 244, 245, 247, 245, 246, 247, 245, 246, 247, 245, 246, 248, 246, 247, 248, 246, 247, 248, 246, 247, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 250, 248, 249, 250, 248, 249, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 249, 247, 248, 249, 247, 248, 250, 248, 249, 250, 248, 249, 250, 248, 249, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 252, 250, 251, 252, 250, 251, 252, 250, 251, 251, 249, 250, 251, 249, 250, 251, 249, 250, 250, 248, 249, 250, 248, 249, 251, 249, 250, 251, 249, 250, 250, 248, 249, 250, 248, 249, 250, 248, 249, 249, 247, 248, 249, 247, 248, 249, 247, 248, 247, 245, 246, 247, 245, 246, 246, 244, 245, 246, 244, 245, 245, 243, 244, 245, 243, 244, 245, 243, 244, 245, 243, 244, 244, 244, 244, 243, 243, 243, 242, 242, 242, 242, 240, 241, 241, 239, 240, 240, 238, 239, 241, 237, 238, 240, 236, 237, 236, 232, 233, 239, 237, 238, 233, 231, 232, 222, 220, 221, 218, 218, 218, 216, 216, 216, 213, 215, 214, 216, 218, 217, 215, 215, 213, 218, 218, 216, 223, 223, 221, 225, 225, 223, 224, 224, 222, 220, 220, 218, 213, 213, 211, 209, 209, 207, 215, 215, 213, 220, 220, 218, 212, 212, 210, 197, 197, 195, 201, 201, 199, 211, 211, 209, 195, 195, 193, 165, 165, 163, 178, 177, 175, 193, 192, 190, 204, 203, 201, 201, 200, 198, 191, 190, 188, 184, 183, 181, 181, 180, 178, 179, 178, 176, 179, 178, 176, 154, 153, 151, 154, 153, 151, 184, 183, 181, 199, 195, 194, 177, 176, 174, 161, 157, 156, 161, 160, 158, 153, 149, 146, 161, 160, 156, 177, 173, 170, 182, 178, 175, 175, 171, 168, 163, 159, 156, 161, 157, 154, 166, 163, 158, 159, 155, 152, 173, 170, 165, 176, 171, 168, 176, 171, 167, 182, 177, 173, 175, 170, 166, 168, 163, 159, 176, 171, 167, 184, 176, 174, 177, 169, 167, 163, 158, 155, 153, 148, 145, 149, 145, 142, 154, 150, 147, 165, 161, 158, 175, 170, 167, 163, 158, 155, 147, 142, 139, 146, 138, 136, 164, 156, 154, 175, 165, 164, 169, 159, 158, 167, 155, 155, 171, 161, 160, 160, 152, 150, 156, 148, 146, 160, 152, 150, 172, 164, 162, 177, 169, 166, 170, 162, 159, 167, 159, 156, 169, 161, 158, 145, 137, 134, 155, 147, 144, 162, 155, 149, 151, 144, 138, 127, 120, 114, 113, 106, 100, 124, 117, 111, 145, 136, 131, 151, 140, 134, 159, 146, 140, 162, 149, 143, 159, 146, 140, 154, 141, 135, 147, 134, 128, 137, 124, 118, 126, 113, 107, 116, 103, 97, 110, 97, 91, 108, 95, 89, 121, 108, 102, 143, 130, 124, 162, 149, 143, 169, 156, 150, 167, 156, 150, 164, 153, 149, 165, 154, 150, 167, 156, 152, 172, 161, 157, 175, 164, 160, 176, 165, 161, 173, 162, 158, 170, 159, 155, 164, 153, 149, 149, 138, 134, 144, 133, 129, 138, 127, 123, 123, 112, 108, 124, 113, 109, 132, 121, 117, 125, 114, 110, 129, 118, 116, 125, 114, 112, 124, 113, 111, 128, 117, 115, 130, 119, 117, 126, 115, 113, 124, 113, 111, 125, 114, 112, 131, 120, 118, 132, 121, 119, 128, 117, 115, 115, 104, 102, 96, 85, 83, 81, 70, 68, 75, 64, 62, 75, 64, 62, 90, 79, 77, 96, 85, 83, 105, 94, 92, 111, 100, 98, 112, 101, 99, 110, 99, 97, 108, 97, 95, 107, 96, 94, 132, 121, 119, 138, 127, 125, 145, 134, 132, 150, 139, 137, 157, 146, 144, 162, 151, 149, 159, 148, 146, 153, 142, 138, 154, 145, 140, 161, 152, 145, 167, 158, 151, 166, 157, 150, 162, 153, 148, 163, 154, 149, 171, 162, 157, 179, 170, 165, 178, 169, 164, 182, 173, 168, 182, 172, 170, 177, 167, 165, 175, 165, 163, 178, 168, 166, 181, 171, 169, 180, 170, 168, 185, 175, 173, 184, 174, 172, 183, 173, 171, 182, 172, 170, 184, 174, 172, 186, 178, 175, 189, 181, 178, 189, 184, 180, 192, 187, 184, 195, 191, 188, 197, 195, 196, 202, 200, 201, 206, 205, 210, 212, 213, 217, 221, 222, 227, 225, 228, 233, 230, 233, 238, 231, 234, 239, 234, 237, 242, 236, 239, 244, 238, 241, 246, 239, 242, 247, 240, 243, 248, 240, 243, 248, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 247, 251, 254, 247, 251, 254, 247, 251, 254, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 241, 244, 249, 240, 243, 248, 238, 241, 246, 237, 240, 245, 235, 238, 243, 235, 238, 243, 230, 233, 238, 229, 233, 236, 226, 230, 233, 222, 226, 229, 219, 220, 224, 212, 216, 219, 210, 211, 215, 207, 208, 210, 212, 210, 211, 209, 208, 206, 207, 203, 202, 203, 202, 200, 204, 200, 199, 205, 201, 200, 208, 204, 201, 210, 206, 203, 202, 198, 195, 202, 198, 195, 202, 198, 195, 200, 196, 193, 197, 192, 188, 192, 187, 183, 188, 183, 179, 185, 180, 176, 194, 189, 186, 192, 187, 184, 191, 186, 183, 191, 186, 183, 193, 188, 185, 193, 188, 185, 191, 186, 183, 189, 184, 181, 177, 172, 169, 178, 173, 170, 182, 177, 174, 186, 181, 178, 188, 183, 180, 185, 180, 177, 179, 174, 171, 173, 168, 165, 174, 169, 166, 177, 172, 169, 177, 172, 169, 174, 169, 166, 169, 164, 161, 167, 162, 159, 170, 165, 162, 174, 169, 166, 165, 160, 157, 165, 160, 157, 166, 161, 158, 168, 163, 160, 172, 167, 164, 178, 173, 170, 183, 178, 175, 187, 182, 179, 184, 179, 175, 184, 179, 173, 179, 174, 168, 166, 161, 155, 150, 145, 139, 138, 133, 127, 136, 129, 123, 137, 130, 124, 142, 135, 129, 150, 143, 137, 162, 155, 149, 172, 165, 159, 175, 168, 162, 175, 168, 162, 175, 166, 161, 173, 165, 162, 179, 174, 170, 176, 172, 169, 167, 162, 159, 165, 160, 157, 179, 171, 169, 185, 177, 175, 184, 176, 174, 188, 183, 180, 182, 177, 174, 182, 178, 175, 185, 181, 178, 190, 189, 185, 198, 197, 193, 203, 204, 199, 205, 206, 201, 205, 206, 201, 197, 196, 194, 200, 199, 197, 203, 203, 203, 205, 205, 205, 198, 198, 196, 179, 181, 178, 155, 157, 154, 137, 142, 138, 115, 119, 118, 118, 119, 121, 110, 109, 114, 90, 88, 93, 91, 86, 92, 118, 112, 114, 125, 116, 117, 101, 92, 87, 98, 84, 75, 137, 118, 101, 120, 94, 67, 120, 88, 50, 167, 125, 77, 203, 154, 96, 236, 181, 116, 255, 197, 127, 247, 188, 112, 249, 190, 110, 243, 186, 105, 252, 197, 117, 255, 214, 138, 255, 208, 137, 245, 196, 130, 249, 201, 135, 248, 206, 132, 239, 197, 121, 243, 201, 125, 255, 212, 139, 255, 209, 141, 242, 193, 127, 241, 191, 128, 254, 203, 138, 253, 200, 132, 252, 198, 126, 250, 195, 115, 250, 194, 107, 253, 198, 107, 255, 201, 106, 252, 196, 99, 246, 188, 88, 243, 185, 78, 247, 185, 82, 239, 178, 85, 213, 157, 72, 185, 136, 60, 167, 126, 60, 146, 111, 57, 117, 90, 47, 65, 44, 13, 42, 24, 2, 52, 34, 20, 77, 60, 50, 76, 59, 52, 74, 56, 52, 93, 75, 73, 108, 92, 92, 123, 112, 116, 131, 125, 129, 141, 132, 137, 140, 131, 134, 142, 132, 133, 153, 143, 141, 168, 161, 155, 176, 171, 165, 185, 182, 175, 198, 193, 187, 186, 179, 173, 160, 151, 146, 167, 158, 153, 198, 190, 188, 194, 192, 195, 165, 164, 169, 160, 158, 159, 184, 183, 181, 181, 179, 180, 180, 178, 179, 171, 169, 170, 172, 170, 171, 195, 193, 194, 183, 182, 180, 185, 181, 180, 185, 181, 180, 198, 194, 195, 180, 176, 177, 178, 173, 177, 119, 114, 118, 145, 143, 146, 207, 205, 208, 207, 207, 207, 220, 220, 220, 223, 223, 223, 224, 224, 224, 234, 234, 234, 239, 239, 239, 239, 239, 239, 244, 244, 244, 241, 241, 241, 241, 241, 241, 242, 242, 242, 243, 243, 243, 243, 243, 243, 244, 244, 244, 245, 245, 245, 245, 245, 245, 246, 244, 245, 246, 244, 245, 246, 244, 245, 247, 245, 246, 247, 245, 246, 247, 245, 246, 248, 246, 247, 248, 246, 247, 251, 249, 250, 251, 249, 250, 251, 249, 250, 250, 248, 249, 250, 248, 249, 250, 248, 249, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 250, 248, 249, 250, 248, 249, 250, 248, 249, 251, 249, 250, 251, 249, 250, 251, 249, 250, 250, 248, 249, 250, 248, 249, 251, 249, 250, 251, 249, 250, 251, 249, 250, 252, 250, 251, 252, 250, 251, 252, 250, 251, 252, 250, 251, 252, 250, 251, 252, 250, 251, 252, 250, 251, 252, 250, 251, 252, 250, 251, 252, 250, 251, 252, 250, 251, 250, 248, 249, 250, 248, 249, 250, 248, 249, 249, 247, 248, 249, 247, 248, 249, 247, 248, 248, 246, 247, 248, 246, 247, 247, 245, 246, 246, 244, 245, 246, 244, 245, 245, 243, 244, 244, 242, 243, 243, 241, 242, 243, 241, 242, 243, 241, 242, 241, 239, 240, 241, 239, 240, 240, 238, 239, 240, 238, 239, 240, 238, 239, 241, 239, 240, 242, 240, 241, 243, 241, 242, 237, 235, 236, 238, 238, 238, 239, 239, 239, 234, 234, 234, 225, 225, 225, 219, 219, 219, 217, 217, 217, 218, 218, 218, 215, 217, 216, 217, 219, 218, 219, 221, 220, 218, 220, 219, 216, 218, 217, 213, 215, 214, 213, 215, 214, 214, 216, 215, 220, 222, 221, 215, 217, 216, 213, 215, 214, 213, 215, 214, 206, 208, 207, 195, 197, 196, 196, 198, 197, 206, 206, 206, 185, 183, 184, 186, 184, 185, 191, 189, 190, 198, 196, 197, 205, 201, 200, 203, 199, 198, 195, 191, 190, 187, 183, 182, 180, 176, 175, 162, 158, 157, 155, 151, 148, 169, 165, 162, 185, 180, 177, 182, 178, 175, 174, 169, 166, 168, 164, 161, 165, 160, 156, 156, 153, 148, 149, 144, 140, 154, 149, 145, 173, 168, 164, 190, 185, 181, 190, 185, 181, 180, 175, 169, 166, 161, 157, 168, 163, 157, 176, 171, 167, 163, 158, 152, 144, 139, 133, 166, 161, 155, 187, 182, 176, 170, 165, 159, 182, 177, 173, 172, 167, 163, 172, 167, 163, 172, 167, 163, 162, 157, 153, 158, 153, 149, 159, 154, 150, 157, 149, 146, 162, 154, 151, 182, 174, 171, 197, 189, 186, 190, 182, 179, 168, 158, 156, 148, 138, 136, 137, 127, 125, 133, 123, 121, 139, 131, 128, 159, 154, 150, 173, 168, 164, 167, 162, 158, 162, 154, 151, 167, 159, 156, 168, 161, 155, 163, 156, 150, 150, 141, 136, 155, 146, 141, 160, 151, 146, 161, 152, 147, 158, 149, 142, 156, 147, 140, 158, 149, 142, 161, 152, 145, 156, 145, 141, 151, 140, 136, 147, 136, 132, 147, 136, 132, 150, 139, 135, 154, 143, 139, 156, 145, 141, 156, 145, 141, 142, 131, 127, 135, 124, 120, 139, 128, 124, 154, 143, 139, 161, 150, 146, 158, 147, 143, 163, 152, 148, 175, 164, 160, 159, 148, 144, 161, 152, 147, 165, 156, 151, 170, 161, 156, 175, 164, 160, 178, 167, 163, 179, 168, 164, 180, 169, 165, 178, 167, 163, 175, 164, 160, 171, 157, 154, 164, 150, 147, 157, 143, 140, 153, 139, 136, 149, 135, 132, 148, 134, 131, 148, 137, 133, 140, 129, 125, 134, 123, 119, 137, 126, 122, 144, 133, 129, 147, 136, 132, 140, 129, 125, 133, 122, 118, 130, 119, 115, 120, 109, 105, 114, 103, 99, 112, 101, 97, 102, 91, 87, 92, 81, 77, 100, 89, 85, 119, 108, 104, 111, 102, 97, 112, 103, 98, 115, 106, 101, 119, 110, 105, 120, 111, 106, 118, 109, 104, 112, 103, 98, 107, 98, 93, 115, 106, 101, 128, 119, 114, 130, 121, 116, 131, 122, 117, 138, 129, 124, 132, 123, 118, 132, 123, 118, 149, 140, 135, 151, 140, 136, 152, 141, 137, 153, 142, 138, 154, 143, 139, 157, 146, 142, 163, 152, 148, 171, 160, 156, 177, 166, 162, 180, 169, 165, 179, 168, 164, 178, 167, 163, 178, 167, 163, 179, 168, 164, 181, 170, 166, 183, 172, 168, 184, 173, 169, 180, 169, 167, 181, 171, 169, 183, 173, 171, 186, 176, 174, 187, 179, 176, 188, 180, 177, 188, 180, 177, 186, 181, 177, 195, 190, 187, 197, 193, 190, 200, 198, 199, 207, 205, 206, 212, 211, 216, 217, 218, 222, 221, 222, 227, 224, 225, 230, 231, 234, 239, 232, 235, 240, 235, 238, 243, 238, 241, 246, 241, 244, 249, 242, 245, 250, 243, 246, 251, 243, 246, 251, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 242, 245, 250, 241, 244, 249, 240, 243, 248, 238, 241, 246, 237, 240, 245, 236, 239, 244, 235, 238, 243, 231, 234, 239, 229, 232, 237, 227, 230, 235, 223, 226, 231, 218, 221, 226, 213, 216, 221, 208, 211, 216, 208, 209, 213, 209, 209, 209, 208, 207, 205, 204, 203, 201, 202, 201, 199, 201, 200, 198, 202, 201, 199, 206, 202, 199, 207, 203, 200, 203, 199, 196, 203, 199, 196, 203, 199, 196, 203, 199, 196, 202, 197, 193, 198, 193, 189, 195, 190, 186, 193, 188, 184, 196, 191, 188, 193, 188, 185, 190, 185, 182, 189, 184, 181, 191, 186, 183, 193, 188, 185, 192, 187, 184, 192, 187, 184, 197, 192, 189, 193, 188, 185, 186, 181, 178, 182, 177, 174, 178, 173, 170, 175, 170, 167, 172, 167, 164, 169, 164, 161, 177, 172, 169, 175, 170, 167, 170, 165, 162, 163, 158, 155, 158, 153, 150, 158, 153, 150, 165, 160, 157, 171, 166, 163, 178, 173, 170, 179, 174, 171, 180, 175, 172, 181, 176, 173, 182, 177, 174, 183, 178, 175, 183, 178, 175, 183, 178, 174, 174, 169, 165, 174, 169, 163, 175, 170, 164, 175, 170, 164, 172, 167, 161, 167, 162, 156, 162, 155, 149, 157, 150, 144, 141, 134, 128, 146, 139, 133, 152, 145, 139, 156, 149, 143, 159, 150, 145, 160, 151, 146, 162, 153, 148, 163, 156, 150, 160, 155, 151, 163, 159, 156, 161, 156, 153, 162, 157, 154, 174, 166, 164, 173, 165, 163, 167, 159, 157, 170, 162, 160, 185, 180, 177, 188, 183, 180, 191, 187, 184, 198, 194, 191, 201, 200, 196, 202, 201, 197, 200, 201, 196, 199, 198, 194, 207, 203, 202, 213, 209, 210, 214, 210, 211, 201, 201, 201, 185, 185, 185, 168, 172, 171, 164, 168, 167, 164, 170, 168, 162, 168, 166, 118, 122, 121, 103, 105, 104, 114, 112, 113, 101, 97, 98, 79, 73, 75, 92, 81, 85, 117, 107, 108, 94, 86, 84, 116, 107, 102, 109, 95, 84, 109, 88, 67, 119, 88, 57, 136, 97, 54, 172, 125, 73, 180, 128, 68, 207, 150, 83, 234, 174, 102, 242, 182, 110, 234, 176, 103, 232, 178, 106, 235, 182, 112, 241, 190, 124, 255, 207, 138, 241, 193, 117, 249, 202, 124, 251, 202, 125, 243, 194, 117, 242, 188, 114, 245, 189, 115, 239, 181, 107, 228, 171, 94, 223, 164, 86, 243, 182, 101, 253, 192, 109, 251, 189, 102, 252, 191, 100, 255, 199, 102, 251, 191, 93, 237, 178, 78, 229, 169, 71, 220, 161, 69, 214, 158, 73, 204, 155, 79, 172, 131, 69, 121, 87, 39, 67, 43, 7, 32, 14, 0, 66, 54, 38, 83, 76, 66, 125, 120, 114, 149, 141, 139, 126, 114, 114, 106, 90, 90, 118, 98, 99, 131, 115, 116, 127, 121, 125, 139, 137, 140, 151, 149, 152, 155, 154, 152, 160, 156, 153, 169, 166, 159, 181, 176, 170, 188, 184, 175, 192, 188, 179, 190, 186, 177, 174, 171, 166, 155, 151, 148, 154, 153, 151, 169, 167, 168, 175, 173, 178, 169, 167, 170, 164, 162, 165, 180, 178, 179, 174, 172, 173, 176, 174, 175, 177, 175, 176, 181, 179, 180, 193, 191, 192, 176, 174, 175, 186, 184, 185, 211, 209, 210, 202, 200, 201, 176, 174, 175, 197, 195, 196, 128, 126, 127, 126, 124, 125, 202, 200, 201, 204, 204, 204, 219, 219, 219, 224, 224, 224, 226, 226, 226, 235, 235, 235, 240, 240, 240, 239, 239, 239, 243, 243, 243, 241, 241, 241, 241, 241, 241, 242, 242, 242, 243, 243, 243, 243, 243, 243, 244, 244, 244, 245, 245, 245, 245, 245, 245, 246, 244, 245, 246, 244, 245, 246, 244, 245, 247, 245, 246, 247, 245, 246, 247, 245, 246, 248, 246, 247, 248, 246, 247, 251, 249, 250, 251, 249, 250, 251, 249, 250, 250, 248, 249, 250, 248, 249, 250, 248, 249, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 250, 248, 249, 250, 248, 249, 250, 248, 249, 251, 249, 250, 251, 249, 250, 251, 249, 250, 250, 248, 249, 250, 248, 249, 251, 249, 250, 251, 249, 250, 251, 249, 250, 252, 250, 251, 252, 250, 251, 252, 250, 251, 252, 250, 251, 252, 250, 251, 252, 250, 251, 252, 250, 251, 252, 250, 251, 252, 250, 251, 252, 250, 251, 252, 250, 251, 251, 249, 250, 251, 249, 250, 250, 248, 249, 250, 248, 249, 250, 248, 249, 249, 247, 248, 249, 247, 248, 249, 247, 248, 247, 245, 246, 246, 244, 245, 246, 244, 245, 245, 243, 244, 244, 242, 243, 243, 241, 242, 243, 241, 242, 243, 241, 242, 243, 239, 240, 243, 239, 240, 242, 238, 239, 242, 238, 239, 240, 238, 239, 241, 239, 240, 243, 241, 242, 243, 241, 242, 238, 238, 238, 240, 240, 240, 240, 240, 240, 235, 235, 235, 228, 228, 228, 222, 222, 222, 220, 220, 220, 221, 221, 221, 219, 221, 220, 221, 223, 222, 222, 224, 223, 221, 223, 222, 218, 220, 219, 216, 218, 217, 216, 218, 217, 216, 218, 217, 212, 214, 213, 209, 211, 210, 211, 213, 212, 215, 217, 216, 212, 214, 213, 205, 207, 206, 207, 209, 208, 215, 217, 216, 199, 197, 198, 193, 191, 192, 188, 186, 187, 188, 186, 187, 194, 190, 189, 198, 194, 193, 198, 194, 193, 196, 192, 191, 172, 168, 167, 184, 180, 179, 198, 193, 190, 196, 191, 188, 179, 174, 171, 167, 162, 159, 173, 168, 165, 188, 183, 180, 178, 173, 169, 178, 173, 167, 178, 173, 167, 178, 173, 167, 178, 173, 167, 172, 167, 161, 157, 152, 146, 142, 137, 131, 120, 115, 109, 126, 121, 115, 145, 140, 134, 149, 144, 138, 142, 137, 131, 165, 160, 154, 185, 180, 174, 172, 167, 161, 179, 174, 170, 168, 163, 159, 171, 166, 162, 174, 169, 165, 162, 157, 153, 151, 146, 142, 151, 143, 140, 148, 140, 137, 170, 162, 159, 168, 160, 157, 154, 146, 143, 134, 126, 123, 129, 119, 117, 141, 131, 129, 156, 146, 144, 162, 154, 151, 166, 158, 155, 171, 166, 162, 166, 161, 157, 150, 145, 141, 143, 135, 132, 143, 135, 132, 138, 131, 125, 126, 119, 113, 130, 121, 116, 139, 130, 125, 150, 141, 136, 156, 147, 142, 155, 146, 139, 153, 144, 137, 153, 144, 137, 154, 145, 138, 156, 145, 141, 150, 139, 135, 148, 137, 133, 154, 143, 139, 164, 153, 149, 167, 156, 152, 160, 149, 145, 152, 141, 137, 132, 121, 117, 127, 116, 112, 134, 123, 119, 150, 139, 135, 157, 146, 142, 154, 143, 139, 157, 146, 142, 167, 156, 152, 161, 152, 147, 162, 153, 148, 163, 154, 149, 165, 156, 151, 167, 156, 152, 169, 158, 154, 170, 159, 155, 170, 159, 155, 167, 156, 152, 165, 154, 150, 163, 149, 146, 158, 144, 141, 152, 138, 135, 147, 133, 130, 143, 129, 126, 141, 127, 124, 134, 123, 119, 127, 116, 112, 121, 110, 106, 120, 109, 105, 122, 111, 107, 122, 111, 107, 115, 104, 100, 109, 98, 94, 87, 76, 72, 85, 74, 70, 94, 83, 79, 106, 95, 91, 107, 96, 92, 98, 87, 83, 100, 89, 85, 111, 100, 96, 124, 115, 110, 124, 115, 110, 126, 117, 112, 130, 121, 116, 134, 125, 120, 136, 127, 122, 136, 127, 122, 135, 126, 121, 135, 126, 121, 138, 129, 124, 130, 121, 116, 124, 115, 110, 125, 116, 111, 120, 111, 106, 121, 112, 107, 137, 128, 123, 147, 136, 132, 150, 139, 135, 154, 143, 139, 157, 146, 142, 160, 149, 145, 163, 152, 148, 168, 157, 153, 172, 161, 157, 172, 161, 157, 173, 162, 158, 175, 164, 160, 177, 166, 162, 179, 168, 164, 181, 170, 166, 183, 172, 168, 184, 173, 169, 183, 172, 170, 185, 174, 172, 186, 176, 174, 189, 179, 177, 190, 182, 179, 192, 184, 181, 190, 185, 181, 190, 185, 181, 195, 191, 188, 196, 192, 189, 198, 196, 197, 203, 201, 202, 209, 208, 213, 216, 215, 220, 220, 221, 226, 223, 224, 229, 230, 233, 238, 231, 234, 239, 234, 237, 242, 237, 240, 245, 240, 243, 248, 241, 244, 249, 242, 245, 250, 242, 245, 250, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 242, 245, 250, 241, 244, 249, 240, 243, 248, 239, 242, 247, 238, 241, 246, 237, 240, 245, 236, 239, 244, 232, 235, 240, 231, 234, 239, 228, 231, 236, 224, 227, 232, 219, 222, 227, 214, 217, 222, 210, 213, 218, 209, 210, 214, 208, 208, 208, 207, 206, 204, 204, 203, 201, 202, 201, 199, 200, 199, 197, 201, 200, 198, 204, 200, 197, 205, 201, 198, 204, 200, 197, 204, 200, 197, 205, 201, 198, 205, 201, 198, 205, 200, 196, 203, 198, 194, 202, 197, 193, 201, 196, 192, 200, 195, 192, 196, 191, 188, 193, 188, 185, 192, 187, 184, 194, 189, 186, 196, 191, 188, 197, 192, 189, 196, 191, 188, 197, 192, 189, 192, 187, 184, 186, 181, 178, 181, 176, 173, 179, 174, 171, 177, 172, 169, 174, 169, 166, 172, 167, 164, 178, 173, 170, 177, 172, 169, 174, 169, 166, 170, 165, 162, 167, 162, 159, 168, 163, 160, 173, 168, 165, 177, 172, 169, 177, 172, 169, 179, 174, 171, 182, 177, 174, 184, 179, 176, 185, 180, 177, 184, 179, 176, 182, 177, 174, 180, 175, 171, 163, 158, 154, 160, 155, 149, 159, 154, 148, 164, 159, 153, 172, 167, 161, 175, 170, 164, 173, 166, 160, 168, 161, 155, 178, 171, 165, 178, 171, 165, 177, 170, 164, 171, 164, 158, 163, 154, 149, 154, 145, 140, 149, 140, 135, 145, 138, 132, 172, 167, 163, 177, 174, 169, 175, 170, 166, 173, 168, 164, 180, 172, 169, 175, 167, 164, 169, 161, 158, 172, 164, 161, 164, 159, 155, 163, 158, 154, 160, 157, 152, 162, 159, 154, 167, 166, 161, 176, 175, 170, 185, 186, 180, 192, 191, 187, 195, 191, 190, 199, 195, 194, 200, 196, 195, 191, 191, 189, 181, 181, 179, 176, 181, 177, 182, 187, 183, 189, 195, 191, 174, 179, 175, 159, 164, 160, 153, 155, 152, 143, 142, 140, 117, 113, 112, 96, 90, 90, 94, 84, 85, 91, 81, 82, 120, 109, 113, 120, 108, 110, 118, 103, 100, 124, 104, 97, 109, 81, 67, 103, 68, 46, 121, 82, 53, 108, 64, 27, 149, 100, 57, 189, 137, 87, 214, 163, 106, 223, 173, 112, 239, 190, 124, 250, 203, 133, 244, 197, 127, 234, 186, 114, 247, 195, 120, 254, 201, 125, 255, 199, 122, 246, 189, 108, 243, 187, 104, 243, 186, 99, 232, 172, 84, 213, 154, 64, 229, 170, 78, 237, 178, 84, 241, 182, 90, 235, 176, 84, 227, 168, 78, 222, 165, 75, 225, 165, 77, 223, 167, 82, 214, 162, 86, 188, 141, 73, 159, 113, 53, 124, 81, 30, 78, 41, 0, 54, 23, 0, 86, 61, 39, 137, 118, 104, 150, 137, 129, 137, 128, 123, 131, 123, 121, 124, 116, 114, 117, 107, 106, 125, 114, 112, 146, 131, 128, 152, 141, 139, 138, 134, 135, 151, 151, 153, 169, 167, 170, 177, 176, 174, 182, 178, 175, 188, 185, 178, 194, 191, 184, 196, 193, 184, 195, 192, 183, 182, 179, 170, 168, 165, 160, 159, 155, 152, 150, 149, 147, 149, 147, 148, 160, 159, 164, 177, 177, 179, 162, 160, 163, 180, 178, 179, 180, 178, 179, 182, 180, 181, 183, 181, 182, 184, 182, 183, 190, 188, 189, 180, 178, 179, 183, 181, 182, 207, 205, 206, 202, 200, 201, 189, 187, 188, 212, 210, 211, 158, 156, 157, 150, 148, 149, 213, 211, 212, 202, 202, 202, 218, 218, 218, 225, 225, 225, 228, 228, 228, 238, 238, 238, 241, 241, 241, 238, 238, 238, 241, 241, 241, 241, 241, 241, 241, 241, 241, 242, 242, 242, 243, 243, 243, 243, 243, 243, 244, 244, 244, 245, 245, 245, 245, 245, 245, 246, 244, 245, 246, 244, 245, 247, 245, 246, 247, 245, 246, 247, 245, 246, 248, 246, 247, 248, 246, 247, 248, 246, 247, 251, 249, 250, 251, 249, 250, 251, 249, 250, 250, 248, 249, 250, 248, 249, 250, 248, 249, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 250, 248, 249, 250, 248, 249, 250, 248, 249, 251, 249, 250, 251, 249, 250, 251, 249, 250, 250, 248, 249, 250, 248, 249, 250, 248, 249, 251, 249, 250, 251, 249, 250, 251, 249, 250, 252, 250, 251, 252, 250, 251, 252, 250, 251, 252, 250, 251, 252, 250, 251, 252, 250, 251, 252, 250, 251, 252, 250, 251, 252, 250, 251, 252, 250, 251, 252, 250, 251, 252, 250, 251, 251, 249, 250, 251, 249, 250, 251, 249, 250, 250, 248, 249, 250, 248, 249, 250, 248, 249, 247, 245, 246, 246, 244, 245, 246, 244, 245, 245, 243, 244, 244, 242, 243, 243, 241, 242, 243, 241, 242, 243, 241, 242, 244, 240, 241, 243, 239, 240, 242, 238, 239, 242, 238, 239, 241, 239, 240, 242, 240, 241, 243, 241, 242, 244, 242, 243, 240, 240, 240, 242, 242, 242, 242, 242, 242, 238, 238, 238, 232, 232, 232, 228, 228, 228, 226, 226, 226, 226, 226, 226, 223, 225, 224, 225, 227, 226, 226, 228, 227, 225, 227, 226, 222, 224, 223, 219, 221, 220, 218, 220, 219, 219, 221, 220, 212, 214, 213, 211, 213, 212, 212, 214, 213, 213, 215, 214, 208, 210, 209, 200, 202, 201, 197, 199, 198, 200, 202, 201, 211, 209, 210, 202, 200, 201, 193, 191, 192, 188, 186, 187, 192, 188, 187, 194, 190, 189, 194, 190, 189, 193, 189, 188, 184, 180, 179, 179, 175, 174, 171, 166, 163, 167, 162, 159, 174, 169, 166, 186, 181, 178, 191, 186, 183, 190, 185, 182, 180, 177, 172, 181, 178, 173, 181, 178, 173, 179, 176, 171, 175, 172, 167, 172, 169, 164, 170, 167, 162, 169, 166, 161, 145, 142, 137, 147, 144, 139, 164, 161, 156, 171, 168, 163, 161, 158, 153, 166, 163, 158, 172, 169, 164, 158, 155, 150, 133, 128, 124, 124, 119, 115, 137, 132, 128, 158, 153, 149, 158, 153, 149, 156, 151, 147, 166, 158, 155, 174, 166, 163, 167, 159, 156, 174, 166, 163, 174, 166, 163, 169, 161, 158, 178, 168, 166, 190, 180, 178, 185, 175, 173, 169, 161, 158, 161, 153, 150, 166, 161, 157, 165, 160, 156, 157, 152, 148, 158, 150, 147, 165, 157, 154, 167, 160, 154, 161, 154, 148, 157, 148, 143, 164, 155, 150, 169, 160, 155, 168, 159, 154, 159, 150, 143, 148, 139, 132, 141, 132, 125, 138, 129, 122, 152, 141, 137, 143, 132, 128, 137, 126, 122, 143, 132, 128, 154, 143, 139, 155, 144, 140, 143, 132, 128, 130, 119, 115, 135, 124, 120, 134, 123, 119, 144, 133, 129, 160, 149, 145, 167, 156, 152, 163, 152, 148, 162, 151, 147, 168, 157, 153, 178, 169, 164, 176, 167, 162, 172, 163, 158, 168, 159, 154, 165, 154, 150, 162, 151, 147, 161, 150, 146, 160, 149, 145, 157, 146, 142, 157, 146, 142, 158, 144, 141, 155, 141, 138, 151, 137, 134, 146, 132, 129, 141, 127, 124, 138, 124, 121, 135, 124, 120, 133, 122, 118, 131, 120, 116, 128, 117, 113, 124, 113, 109, 117, 106, 102, 108, 97, 93, 101, 90, 86, 76, 65, 61, 69, 58, 54, 69, 58, 54, 80, 69, 65, 86, 75, 71, 89, 78, 74, 98, 87, 83, 111, 100, 96, 119, 110, 105, 124, 115, 110, 131, 122, 117, 139, 130, 125, 145, 136, 131, 148, 139, 134, 149, 140, 135, 149, 140, 135, 153, 144, 139, 149, 140, 135, 137, 128, 123, 129, 120, 115, 127, 118, 113, 119, 110, 105, 115, 106, 101, 123, 114, 109, 131, 120, 116, 135, 124, 120, 142, 131, 127, 146, 135, 131, 148, 137, 133, 149, 138, 134, 151, 140, 136, 153, 142, 138, 156, 145, 141, 159, 148, 144, 164, 153, 149, 169, 158, 154, 173, 162, 158, 176, 165, 161, 177, 166, 162, 177, 166, 162, 183, 172, 170, 185, 174, 172, 187, 177, 175, 190, 180, 178, 192, 184, 181, 193, 185, 182, 192, 187, 183, 193, 188, 184, 196, 192, 189, 197, 193, 190, 196, 194, 195, 200, 198, 199, 205, 204, 209, 213, 212, 217, 219, 220, 225, 224, 225, 230, 228, 231, 236, 230, 233, 238, 233, 236, 241, 236, 239, 244, 238, 241, 246, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 240, 243, 248, 239, 242, 247, 238, 241, 246, 238, 241, 246, 237, 240, 245, 234, 237, 242, 233, 236, 241, 230, 233, 238, 226, 229, 234, 221, 224, 229, 216, 219, 224, 212, 215, 220, 211, 212, 216, 209, 209, 209, 209, 208, 206, 207, 206, 204, 204, 203, 201, 203, 202, 200, 202, 201, 199, 205, 201, 198, 205, 201, 198, 204, 200, 197, 204, 200, 197, 204, 200, 197, 203, 199, 196, 203, 198, 194, 201, 196, 192, 200, 195, 191, 200, 195, 191, 200, 195, 192, 199, 194, 191, 198, 193, 190, 199, 194, 191, 202, 197, 194, 202, 197, 194, 200, 195, 192, 198, 193, 190, 187, 182, 179, 187, 182, 179, 187, 182, 179, 187, 182, 179, 187, 182, 179, 182, 177, 174, 176, 171, 168, 170, 165, 162, 172, 167, 164, 176, 171, 168, 181, 176, 173, 184, 179, 176, 185, 180, 177, 184, 179, 176, 182, 177, 174, 181, 176, 173, 173, 168, 165, 173, 168, 165, 173, 168, 165, 172, 167, 164, 171, 166, 163, 170, 165, 162, 169, 164, 161, 168, 163, 159, 184, 179, 175, 177, 172, 166, 169, 164, 158, 166, 161, 155, 170, 165, 159, 178, 173, 167, 185, 178, 172, 187, 180, 174, 177, 170, 164, 180, 173, 167, 182, 175, 169, 180, 173, 167, 173, 164, 159, 164, 155, 150, 157, 148, 143, 153, 146, 140, 152, 147, 143, 156, 153, 148, 152, 147, 143, 148, 143, 139, 157, 149, 146, 159, 151, 148, 160, 152, 149, 169, 161, 158, 172, 167, 163, 171, 166, 162, 169, 166, 161, 169, 166, 161, 168, 167, 162, 173, 172, 167, 179, 180, 174, 185, 184, 179, 183, 179, 176, 182, 178, 177, 181, 180, 178, 185, 185, 183, 190, 190, 188, 192, 194, 191, 187, 192, 188, 183, 189, 185, 158, 163, 159, 177, 182, 178, 182, 182, 180, 155, 154, 152, 137, 133, 132, 145, 139, 139, 136, 127, 128, 100, 90, 91, 96, 86, 87, 88, 76, 78, 80, 64, 65, 102, 84, 84, 113, 89, 85, 105, 78, 69, 108, 76, 65, 94, 59, 40, 120, 83, 57, 137, 96, 64, 147, 105, 65, 155, 112, 67, 181, 138, 85, 215, 173, 115, 235, 194, 132, 244, 198, 136, 249, 198, 135, 242, 187, 123, 241, 186, 119, 251, 195, 121, 251, 195, 118, 236, 181, 98, 221, 165, 78, 215, 160, 70, 215, 161, 71, 216, 162, 74, 226, 174, 88, 239, 187, 104, 227, 175, 99, 196, 144, 71, 175, 125, 56, 173, 125, 61, 133, 93, 41, 101, 67, 21, 77, 42, 2, 80, 45, 13, 94, 62, 37, 105, 76, 60, 129, 105, 95, 162, 143, 137, 130, 114, 114, 111, 101, 100, 95, 86, 87, 95, 89, 89, 125, 117, 115, 159, 149, 147, 165, 156, 151, 147, 139, 136, 151, 149, 150, 165, 165, 167, 181, 179, 180, 187, 186, 184, 191, 187, 184, 195, 192, 187, 197, 194, 187, 196, 193, 184, 187, 184, 175, 179, 176, 169, 172, 169, 164, 165, 164, 160, 155, 154, 152, 149, 149, 149, 164, 164, 166, 187, 187, 189, 154, 152, 153, 182, 180, 181, 195, 193, 194, 192, 190, 191, 185, 183, 184, 180, 178, 179, 186, 184, 185, 194, 192, 193, 189, 187, 188, 186, 184, 185, 199, 197, 198, 210, 208, 209, 205, 203, 204, 183, 181, 182, 195, 193, 194, 221, 219, 220, 202, 202, 202, 219, 219, 219, 227, 227, 227, 231, 231, 231, 240, 240, 240, 242, 242, 242, 238, 238, 238, 239, 239, 239, 241, 241, 241, 241, 241, 241, 242, 242, 242, 243, 243, 243, 243, 243, 243, 244, 244, 244, 245, 245, 245, 245, 245, 245, 246, 244, 245, 247, 245, 246, 247, 245, 246, 247, 245, 246, 248, 246, 247, 248, 246, 247, 248, 246, 247, 249, 247, 248, 251, 249, 250, 251, 249, 250, 251, 249, 250, 250, 248, 249, 250, 248, 249, 250, 248, 249, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 250, 248, 249, 250, 248, 249, 250, 248, 249, 251, 249, 250, 251, 249, 250, 251, 249, 250, 249, 247, 248, 250, 248, 249, 250, 248, 249, 250, 248, 249, 251, 249, 250, 251, 249, 250, 251, 249, 250, 252, 250, 251, 252, 250, 251, 252, 250, 251, 252, 250, 251, 252, 250, 251, 252, 250, 251, 252, 250, 251, 252, 250, 251, 252, 250, 251, 252, 250, 251, 252, 250, 251, 252, 250, 251, 252, 250, 251, 251, 249, 250, 251, 249, 250, 251, 249, 250, 250, 248, 249, 247, 245, 246, 246, 244, 245, 246, 244, 245, 245, 243, 244, 244, 242, 243, 243, 241, 242, 243, 241, 242, 243, 241, 242, 244, 240, 241, 243, 239, 240, 243, 239, 240, 243, 239, 240, 241, 239, 240, 242, 240, 241, 243, 241, 242, 244, 242, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 241, 241, 241, 237, 237, 237, 234, 234, 234, 232, 232, 232, 231, 231, 231, 227, 229, 228, 228, 230, 229, 229, 231, 230, 227, 229, 228, 223, 225, 224, 220, 222, 221, 219, 221, 220, 219, 221, 220, 218, 220, 219, 218, 220, 219, 217, 219, 218, 215, 217, 216, 208, 210, 209, 198, 200, 199, 191, 193, 192, 188, 190, 189, 210, 208, 209, 206, 204, 205, 202, 200, 201, 201, 199, 200, 202, 198, 197, 198, 194, 193, 190, 186, 185, 183, 179, 178, 174, 170, 169, 190, 186, 185, 193, 188, 185, 174, 169, 166, 157, 152, 149, 162, 157, 154, 178, 173, 170, 188, 183, 180, 182, 179, 174, 177, 174, 169, 173, 170, 165, 170, 167, 162, 169, 166, 161, 170, 167, 162, 177, 174, 169, 185, 182, 177, 190, 187, 182, 185, 182, 177, 192, 189, 184, 194, 191, 186, 181, 178, 173, 172, 169, 164, 165, 162, 157, 150, 147, 142, 146, 141, 137, 137, 132, 128, 151, 146, 142, 174, 169, 165, 175, 170, 166, 172, 167, 163, 186, 178, 175, 198, 190, 187, 176, 168, 165, 177, 169, 166, 165, 157, 154, 151, 143, 140, 159, 149, 147, 178, 168, 166, 180, 170, 168, 165, 157, 154, 161, 153, 150, 170, 165, 161, 176, 171, 167, 172, 167, 163, 171, 163, 160, 175, 167, 164, 179, 172, 166, 179, 172, 166, 171, 162, 157, 173, 164, 159, 172, 163, 158, 166, 157, 152, 157, 148, 141, 150, 141, 134, 148, 139, 132, 149, 140, 133, 144, 133, 129, 138, 127, 123, 134, 123, 119, 139, 128, 124, 149, 138, 134, 154, 143, 139, 149, 138, 134, 143, 132, 128, 143, 132, 128, 145, 134, 130, 155, 144, 140, 168, 157, 153, 173, 162, 158, 167, 156, 152, 164, 153, 149, 165, 154, 150, 171, 162, 157, 169, 160, 155, 166, 157, 152, 163, 154, 149, 161, 150, 146, 160, 149, 145, 160, 149, 145, 161, 150, 146, 155, 144, 140, 156, 145, 141, 159, 145, 142, 158, 144, 141, 155, 141, 138, 150, 136, 133, 145, 131, 128, 141, 127, 124, 143, 132, 128, 144, 133, 129, 144, 133, 129, 141, 130, 126, 134, 123, 119, 124, 113, 109, 114, 103, 99, 107, 96, 92, 101, 90, 86, 88, 77, 73, 79, 68, 64, 79, 68, 64, 85, 74, 70, 92, 81, 77, 103, 92, 88, 114, 103, 99, 116, 107, 102, 124, 115, 110, 135, 126, 121, 144, 135, 130, 147, 138, 133, 145, 136, 131, 142, 133, 128, 140, 131, 126, 155, 146, 141, 151, 142, 137, 147, 138, 133, 147, 138, 133, 145, 136, 131, 135, 126, 121, 125, 116, 111, 124, 115, 110, 125, 114, 110, 129, 118, 114, 133, 122, 118, 136, 125, 121, 137, 126, 122, 139, 128, 124, 142, 131, 127, 144, 133, 129, 143, 132, 128, 147, 136, 132, 154, 143, 139, 162, 151, 147, 167, 156, 152, 170, 159, 155, 170, 159, 155, 170, 159, 155, 181, 170, 168, 182, 171, 169, 185, 175, 173, 189, 179, 177, 191, 183, 180, 193, 185, 182, 193, 188, 184, 194, 189, 185, 200, 196, 193, 199, 195, 192, 197, 195, 196, 200, 198, 199, 205, 204, 209, 213, 212, 217, 221, 222, 227, 226, 227, 232, 227, 230, 235, 229, 232, 237, 231, 234, 239, 234, 237, 242, 237, 240, 245, 238, 241, 246, 239, 242, 247, 239, 242, 247, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 236, 239, 244, 235, 238, 243, 232, 235, 240, 228, 231, 236, 223, 226, 231, 218, 221, 226, 214, 217, 222, 213, 214, 218, 212, 212, 212, 212, 211, 209, 210, 209, 207, 208, 207, 205, 206, 205, 203, 205, 204, 202, 206, 202, 199, 206, 202, 199, 204, 200, 197, 202, 198, 195, 200, 196, 193, 198, 194, 191, 197, 192, 188, 195, 190, 186, 194, 189, 185, 193, 188, 184, 193, 188, 185, 195, 190, 187, 198, 193, 190, 202, 197, 194, 204, 199, 196, 203, 198, 195, 198, 193, 190, 193, 188, 185, 193, 188, 185, 191, 186, 183, 189, 184, 181, 188, 183, 180, 186, 181, 178, 181, 176, 173, 174, 169, 166, 168, 163, 160, 176, 171, 168, 178, 173, 170, 181, 176, 173, 184, 179, 176, 185, 180, 177, 183, 178, 175, 179, 174, 171, 176, 171, 168, 178, 173, 170, 174, 169, 166, 168, 163, 160, 162, 157, 154, 159, 154, 151, 160, 155, 152, 161, 156, 153, 163, 158, 154, 165, 160, 156, 162, 157, 151, 156, 151, 145, 148, 143, 137, 143, 138, 132, 146, 141, 135, 156, 149, 143, 164, 157, 151, 163, 156, 150, 164, 157, 151, 164, 157, 151, 161, 154, 148, 157, 148, 143, 153, 144, 139, 152, 143, 138, 151, 144, 138, 152, 147, 141, 157, 154, 147, 156, 151, 145, 159, 154, 148, 174, 167, 161, 181, 174, 168, 185, 178, 172, 194, 187, 181, 161, 156, 150, 170, 165, 159, 182, 179, 172, 191, 188, 181, 192, 192, 184, 191, 191, 183, 188, 189, 181, 189, 188, 183, 193, 189, 186, 192, 188, 185, 191, 190, 186, 193, 194, 189, 196, 197, 192, 193, 195, 190, 185, 190, 184, 179, 184, 178, 199, 204, 198, 178, 183, 177, 171, 172, 167, 169, 168, 164, 158, 154, 151, 147, 142, 139, 142, 134, 132, 135, 125, 124, 109, 99, 97, 105, 94, 92, 70, 56, 55, 77, 63, 62, 101, 85, 85, 89, 71, 69, 86, 65, 64, 96, 72, 68, 99, 72, 63, 108, 79, 65, 117, 86, 65, 115, 81, 54, 106, 70, 36, 115, 77, 38, 145, 106, 63, 175, 132, 89, 197, 150, 108, 192, 143, 100, 194, 146, 98, 205, 155, 102, 209, 160, 101, 201, 153, 89, 186, 141, 73, 179, 134, 66, 160, 117, 48, 156, 116, 47, 153, 113, 51, 149, 108, 52, 137, 97, 46, 117, 79, 34, 95, 58, 16, 76, 44, 6, 90, 67, 36, 104, 84, 57, 117, 95, 74, 133, 107, 92, 145, 118, 109, 131, 106, 102, 108, 84, 84, 98, 78, 80, 98, 82, 85, 114, 102, 106, 122, 113, 116, 123, 117, 117, 141, 136, 133, 165, 160, 156, 167, 162, 156, 153, 150, 145, 170, 170, 170, 179, 180, 182, 189, 189, 189, 190, 190, 188, 190, 189, 185, 193, 192, 187, 193, 193, 185, 191, 191, 183, 170, 170, 162, 175, 175, 167, 177, 176, 171, 171, 170, 166, 164, 163, 161, 165, 165, 165, 177, 177, 179, 189, 189, 191, 153, 151, 152, 178, 176, 177, 193, 191, 192, 189, 187, 188, 188, 186, 187, 182, 180, 181, 180, 178, 179, 195, 193, 194, 200, 198, 199, 191, 189, 190, 197, 195, 196, 210, 208, 209, 194, 192, 193, 189, 187, 188, 199, 197, 198, 214, 212, 213, 206, 206, 206, 223, 223, 223, 230, 230, 230, 233, 233, 233, 241, 241, 241, 242, 242, 242, 237, 237, 237, 238, 238, 238, 241, 241, 241, 241, 241, 241, 242, 242, 242, 243, 243, 243, 243, 243, 243, 244, 244, 244, 245, 245, 245, 245, 245, 245, 247, 245, 246, 247, 245, 246, 247, 245, 246, 248, 246, 247, 248, 246, 247, 249, 247, 248, 249, 247, 248, 249, 247, 248, 251, 249, 250, 251, 249, 250, 251, 249, 250, 250, 248, 249, 250, 248, 249, 250, 248, 249, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 250, 248, 249, 250, 248, 249, 250, 248, 249, 251, 249, 250, 251, 249, 250, 251, 249, 250, 249, 247, 248, 249, 247, 248, 249, 247, 248, 250, 248, 249, 250, 248, 249, 251, 249, 250, 251, 249, 250, 251, 249, 250, 252, 250, 251, 252, 250, 251, 252, 250, 251, 252, 250, 251, 252, 250, 251, 252, 250, 251, 252, 250, 251, 252, 250, 251, 252, 250, 251, 252, 250, 251, 252, 250, 251, 252, 250, 251, 251, 249, 250, 251, 249, 250, 251, 249, 250, 250, 248, 249, 247, 245, 246, 246, 244, 245, 246, 244, 245, 245, 243, 244, 244, 242, 243, 243, 241, 242, 243, 241, 242, 243, 241, 242, 244, 240, 241, 244, 240, 241, 243, 239, 240, 243, 239, 240, 241, 239, 240, 242, 240, 241, 244, 242, 243, 245, 243, 244, 244, 244, 244, 243, 243, 243, 242, 242, 242, 242, 242, 242, 241, 241, 241, 239, 239, 239, 237, 237, 237, 235, 235, 235, 229, 231, 230, 231, 233, 232, 231, 233, 232, 229, 231, 230, 224, 226, 225, 220, 222, 221, 218, 220, 219, 218, 220, 219, 220, 222, 221, 220, 222, 221, 220, 222, 221, 216, 218, 217, 212, 214, 213, 207, 209, 208, 200, 202, 201, 194, 196, 195, 201, 199, 200, 200, 198, 199, 202, 200, 201, 206, 204, 205, 208, 207, 205, 205, 204, 202, 197, 193, 192, 189, 185, 184, 169, 165, 164, 186, 182, 181, 195, 191, 188, 187, 183, 180, 180, 175, 172, 182, 177, 174, 186, 181, 178, 186, 181, 178, 172, 168, 165, 165, 164, 160, 165, 164, 160, 170, 169, 165, 172, 171, 167, 167, 166, 162, 165, 164, 160, 167, 166, 162, 176, 175, 171, 171, 170, 166, 174, 173, 169, 179, 178, 174, 178, 177, 173, 176, 175, 171, 171, 170, 166, 164, 160, 157, 170, 165, 161, 161, 156, 152, 169, 164, 160, 175, 170, 166, 157, 152, 148, 136, 131, 127, 132, 124, 121, 133, 125, 122, 132, 124, 121, 135, 127, 124, 130, 122, 119, 124, 116, 113, 137, 127, 125, 166, 156, 154, 184, 174, 172, 185, 177, 174, 167, 159, 156, 162, 157, 153, 156, 151, 147, 152, 147, 143, 155, 147, 144, 157, 149, 146, 156, 149, 143, 153, 146, 140, 163, 154, 149, 159, 150, 145, 150, 141, 136, 138, 129, 124, 130, 121, 114, 131, 122, 115, 140, 131, 124, 148, 139, 132, 167, 156, 152, 168, 157, 153, 168, 157, 153, 167, 156, 152, 163, 152, 148, 158, 147, 143, 152, 141, 137, 149, 138, 134, 142, 131, 127, 145, 134, 130, 152, 141, 137, 160, 149, 145, 162, 151, 147, 157, 146, 142, 153, 142, 138, 151, 140, 136, 146, 137, 132, 146, 137, 132, 147, 138, 133, 150, 141, 136, 154, 143, 139, 157, 146, 142, 160, 149, 145, 162, 151, 147, 152, 141, 137, 154, 143, 139, 157, 143, 140, 157, 143, 140, 155, 141, 138, 150, 136, 133, 145, 131, 128, 142, 128, 125, 137, 126, 122, 133, 122, 118, 126, 115, 111, 118, 107, 103, 112, 101, 97, 109, 98, 94, 108, 97, 93, 108, 97, 93, 93, 82, 78, 88, 77, 73, 86, 75, 71, 89, 78, 74, 94, 83, 79, 97, 86, 82, 99, 88, 84, 102, 91, 87, 105, 94, 90, 113, 102, 98, 125, 114, 110, 135, 124, 120, 143, 132, 128, 149, 138, 134, 155, 144, 140, 160, 149, 145, 149, 138, 134, 144, 133, 129, 147, 136, 132, 154, 143, 139, 154, 143, 139, 150, 139, 135, 146, 135, 131, 143, 132, 128, 142, 131, 127, 143, 132, 128, 143, 132, 128, 143, 132, 128, 143, 132, 128, 147, 136, 132, 153, 142, 138, 157, 146, 142, 149, 138, 134, 153, 142, 138, 160, 149, 145, 166, 155, 151, 171, 160, 156, 173, 162, 158, 173, 162, 158, 173, 162, 158, 180, 169, 167, 183, 172, 170, 185, 175, 173, 190, 180, 178, 193, 185, 182, 196, 188, 185, 196, 191, 187, 197, 192, 188, 203, 199, 196, 202, 198, 195, 200, 198, 199, 202, 200, 201, 207, 206, 211, 215, 214, 219, 222, 223, 228, 227, 228, 233, 226, 229, 234, 228, 231, 236, 230, 233, 238, 233, 236, 241, 236, 239, 244, 237, 240, 245, 238, 241, 246, 239, 242, 247, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 238, 241, 246, 237, 240, 245, 234, 237, 242, 230, 233, 238, 225, 228, 233, 220, 223, 228, 216, 219, 224, 215, 216, 220, 213, 213, 213, 214, 213, 211, 213, 212, 210, 211, 210, 208, 209, 208, 206, 206, 205, 203, 207, 203, 200, 206, 202, 199, 203, 199, 196, 201, 197, 194, 198, 194, 191, 195, 191, 188, 193, 188, 184, 192, 187, 183, 191, 186, 182, 191, 186, 182, 188, 183, 180, 189, 184, 181, 192, 187, 184, 197, 192, 189, 200, 195, 192, 198, 193, 190, 194, 189, 186, 189, 184, 181, 195, 190, 187, 189, 184, 181, 183, 178, 175, 179, 174, 171, 180, 175, 172, 182, 177, 174, 184, 179, 176, 184, 179, 176, 195, 190, 187, 189, 184, 181, 182, 177, 174, 178, 173, 170, 177, 172, 169, 179, 174, 171, 179, 174, 171, 179, 174, 171, 172, 167, 164, 168, 163, 160, 164, 159, 156, 162, 157, 154, 165, 160, 157, 172, 167, 164, 180, 175, 172, 185, 180, 176, 178, 173, 169, 181, 176, 170, 183, 178, 172, 178, 173, 167, 170, 165, 159, 166, 161, 155, 172, 165, 159, 177, 170, 164, 177, 170, 164, 173, 166, 160, 165, 158, 152, 157, 150, 144, 152, 143, 138, 153, 144, 139, 158, 149, 144, 161, 154, 148, 153, 148, 142, 157, 154, 147, 156, 151, 145, 161, 156, 150, 175, 168, 162, 173, 166, 160, 163, 156, 150, 162, 155, 149, 160, 155, 149, 165, 160, 154, 171, 168, 161, 175, 172, 165, 175, 175, 167, 179, 179, 171, 186, 187, 179, 193, 194, 186, 197, 196, 191, 203, 202, 198, 207, 206, 202, 203, 204, 199, 195, 197, 192, 193, 195, 190, 198, 203, 197, 206, 211, 205, 219, 224, 218, 193, 195, 190, 185, 186, 181, 194, 193, 189, 186, 182, 179, 169, 164, 161, 160, 152, 150, 155, 147, 144, 163, 154, 149, 163, 152, 146, 105, 96, 91, 81, 71, 69, 86, 76, 75, 63, 53, 52, 66, 54, 54, 94, 80, 79, 92, 77, 74, 93, 74, 68, 107, 85, 74, 114, 88, 75, 99, 70, 52, 86, 55, 34, 90, 56, 31, 94, 58, 32, 84, 44, 19, 101, 61, 35, 105, 66, 35, 96, 58, 22, 101, 63, 24, 115, 78, 36, 108, 71, 27, 83, 49, 4, 70, 37, 0, 93, 61, 20, 99, 69, 31, 91, 62, 30, 102, 75, 48, 127, 100, 79, 119, 93, 76, 85, 66, 49, 114, 102, 86, 149, 140, 125, 153, 139, 128, 122, 105, 98, 100, 81, 77, 93, 71, 73, 100, 79, 84, 121, 102, 108, 138, 123, 128, 158, 147, 151, 158, 152, 154, 145, 141, 142, 152, 148, 147, 165, 164, 160, 169, 168, 164, 166, 167, 162, 188, 190, 189, 194, 196, 195, 198, 198, 198, 194, 194, 192, 193, 192, 188, 193, 192, 188, 192, 191, 186, 189, 189, 181, 166, 166, 158, 176, 175, 170, 180, 179, 175, 173, 174, 169, 172, 172, 170, 178, 180, 179, 183, 184, 186, 181, 182, 184, 160, 160, 160, 169, 167, 168, 176, 174, 175, 176, 174, 175, 192, 190, 191, 192, 190, 191, 174, 172, 173, 184, 182, 183, 193, 191, 192, 207, 205, 206, 188, 186, 187, 192, 190, 191, 192, 190, 191, 192, 190, 191, 182, 180, 181, 215, 213, 214, 214, 214, 214, 229, 229, 229, 234, 234, 234, 234, 234, 234, 241, 241, 241, 242, 242, 242, 237, 237, 237, 238, 238, 238, 241, 241, 241, 241, 241, 241, 242, 242, 242, 243, 243, 243, 243, 243, 243, 244, 244, 244, 245, 245, 245, 245, 245, 245, 247, 245, 246, 247, 245, 246, 248, 246, 247, 248, 246, 247, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 251, 249, 250, 251, 249, 250, 251, 249, 250, 250, 248, 249, 250, 248, 249, 250, 248, 249, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 250, 248, 249, 250, 248, 249, 250, 248, 249, 251, 249, 250, 251, 249, 250, 251, 249, 250, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 250, 248, 249, 250, 248, 249, 251, 249, 250, 251, 249, 250, 252, 250, 251, 252, 250, 251, 252, 250, 251, 252, 250, 251, 252, 250, 251, 252, 250, 251, 252, 250, 251, 252, 250, 251, 252, 250, 251, 252, 250, 251, 251, 249, 250, 251, 249, 250, 251, 249, 250, 250, 248, 249, 250, 248, 249, 250, 248, 249, 247, 245, 246, 246, 244, 245, 246, 244, 245, 245, 243, 244, 244, 242, 243, 243, 241, 242, 243, 241, 242, 243, 241, 242, 245, 241, 242, 244, 240, 241, 244, 240, 241, 243, 239, 240, 242, 240, 241, 243, 241, 242, 244, 242, 243, 245, 243, 244, 243, 243, 243, 242, 242, 242, 241, 241, 241, 242, 242, 242, 243, 243, 243, 243, 243, 243, 240, 240, 240, 237, 237, 237, 233, 235, 234, 234, 236, 235, 234, 236, 235, 231, 233, 232, 225, 227, 226, 221, 223, 222, 219, 221, 220, 219, 221, 220, 222, 224, 223, 222, 224, 223, 218, 220, 219, 210, 212, 211, 205, 207, 206, 202, 204, 203, 194, 196, 195, 184, 186, 185, 194, 194, 194, 193, 191, 192, 193, 191, 192, 198, 196, 197, 204, 203, 201, 207, 206, 204, 208, 204, 203, 204, 200, 199, 189, 185, 184, 175, 171, 170, 161, 157, 154, 165, 161, 158, 188, 183, 180, 207, 202, 199, 207, 202, 199, 195, 191, 188, 192, 188, 185, 179, 178, 174, 173, 172, 168, 175, 174, 170, 173, 172, 168, 165, 164, 160, 165, 164, 160, 171, 170, 166, 176, 175, 171, 173, 172, 168, 169, 168, 164, 169, 168, 164, 176, 175, 171, 183, 182, 178, 180, 179, 175, 170, 169, 165, 162, 157, 153, 163, 158, 154, 174, 169, 165, 175, 170, 166, 155, 150, 146, 137, 132, 128, 132, 124, 121, 125, 117, 114, 118, 110, 107, 135, 127, 124, 156, 148, 145, 171, 163, 160, 183, 173, 171, 190, 180, 178, 190, 180, 178, 185, 177, 174, 176, 168, 165, 155, 150, 146, 136, 131, 127, 136, 131, 127, 151, 143, 140, 160, 152, 149, 155, 148, 142, 146, 139, 133, 156, 147, 142, 150, 141, 136, 138, 129, 124, 124, 115, 110, 117, 108, 101, 122, 113, 106, 134, 125, 118, 146, 137, 130, 161, 150, 146, 167, 156, 152, 172, 161, 157, 170, 159, 155, 159, 148, 144, 147, 136, 132, 139, 128, 124, 135, 124, 120, 145, 134, 130, 147, 136, 132, 151, 140, 136, 153, 142, 138, 154, 143, 139, 153, 142, 138, 151, 140, 136, 150, 139, 135, 154, 145, 140, 155, 146, 141, 155, 146, 141, 156, 147, 142, 156, 145, 141, 155, 144, 140, 154, 143, 139, 153, 142, 138, 147, 136, 132, 147, 136, 132, 149, 135, 132, 148, 134, 131, 146, 132, 129, 143, 129, 126, 139, 125, 122, 137, 123, 120, 132, 121, 117, 119, 108, 104, 101, 90, 86, 89, 78, 74, 86, 75, 71, 92, 81, 77, 101, 90, 86, 106, 95, 91, 96, 85, 81, 96, 85, 81, 98, 87, 83, 101, 90, 86, 107, 96, 92, 115, 104, 100, 123, 112, 108, 128, 117, 113, 118, 107, 103, 120, 109, 105, 121, 110, 106, 120, 109, 105, 120, 109, 105, 127, 116, 112, 138, 127, 123, 147, 136, 132, 141, 130, 126, 134, 123, 119, 139, 128, 124, 146, 135, 131, 145, 134, 130, 149, 138, 134, 158, 147, 143, 159, 148, 144, 155, 144, 140, 154, 143, 139, 153, 142, 138, 151, 140, 136, 151, 140, 136, 155, 144, 140, 162, 151, 147, 167, 156, 152, 166, 155, 151, 169, 158, 154, 172, 161, 157, 176, 165, 161, 178, 167, 163, 179, 168, 164, 179, 168, 164, 178, 167, 163, 180, 169, 167, 183, 172, 170, 186, 176, 174, 191, 181, 179, 195, 187, 184, 198, 190, 187, 199, 194, 190, 200, 195, 191, 203, 199, 196, 203, 199, 196, 202, 200, 201, 205, 203, 204, 210, 209, 214, 216, 215, 220, 222, 223, 228, 226, 227, 232, 226, 229, 234, 228, 231, 236, 230, 233, 238, 233, 236, 241, 236, 239, 244, 237, 240, 245, 238, 241, 246, 238, 241, 246, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 239, 242, 247, 238, 241, 246, 236, 239, 244, 232, 235, 240, 227, 230, 235, 222, 225, 230, 217, 220, 225, 217, 218, 222, 213, 213, 213, 213, 212, 210, 212, 211, 209, 211, 210, 208, 208, 207, 205, 206, 205, 203, 205, 201, 198, 204, 200, 197, 202, 198, 195, 200, 196, 193, 197, 193, 190, 195, 191, 188, 195, 190, 186, 195, 190, 186, 196, 191, 187, 197, 192, 188, 192, 187, 184, 190, 185, 182, 190, 185, 182, 191, 186, 183, 194, 189, 186, 196, 191, 188, 196, 191, 188, 195, 190, 187, 190, 185, 182, 185, 180, 177, 180, 175, 172, 178, 173, 170, 181, 176, 173, 186, 181, 178, 190, 185, 182, 192, 187, 184, 193, 188, 185, 185, 180, 177, 176, 171, 168, 172, 167, 164, 175, 170, 167, 179, 174, 171, 181, 176, 173, 182, 177, 174, 166, 161, 158, 165, 160, 157, 165, 160, 157, 167, 162, 159, 172, 167, 164, 181, 176, 173, 189, 184, 181, 194, 189, 185, 175, 170, 166, 175, 170, 164, 174, 169, 163, 171, 166, 160, 166, 161, 155, 163, 158, 152, 163, 156, 150, 163, 156, 150, 174, 167, 161, 174, 167, 161, 175, 168, 162, 174, 167, 161, 175, 166, 161, 178, 169, 164, 183, 174, 169, 186, 179, 173, 179, 174, 168, 176, 173, 166, 168, 163, 157, 167, 162, 156, 178, 171, 165, 170, 163, 157, 151, 144, 138, 143, 136, 130, 175, 170, 164, 177, 172, 166, 176, 173, 166, 172, 169, 162, 167, 167, 159, 170, 170, 162, 180, 181, 173, 189, 190, 182, 195, 194, 189, 200, 199, 194, 204, 203, 198, 201, 202, 196, 196, 199, 192, 198, 201, 194, 208, 211, 204, 218, 221, 214, 193, 196, 189, 196, 199, 192, 204, 205, 199, 204, 203, 198, 203, 200, 195, 209, 206, 201, 206, 201, 197, 188, 180, 177, 171, 162, 157, 168, 159, 152, 126, 119, 111, 107, 100, 94, 98, 93, 87, 84, 79, 73, 96, 91, 85, 108, 103, 97, 102, 95, 89, 86, 75, 69, 81, 68, 60, 84, 67, 60, 89, 69, 62, 107, 82, 77, 119, 90, 84, 110, 81, 73, 87, 59, 48, 108, 80, 68, 112, 84, 72, 99, 71, 57, 101, 73, 59, 116, 90, 75, 113, 87, 72, 91, 68, 54, 91, 69, 56, 119, 99, 88, 142, 124, 114, 146, 129, 121, 145, 130, 125, 140, 126, 123, 112, 101, 97, 78, 69, 64, 96, 92, 81, 104, 102, 90, 85, 78, 68, 71, 60, 54, 98, 84, 81, 122, 106, 106, 126, 110, 111, 133, 118, 121, 141, 129, 131, 164, 155, 158, 169, 165, 166, 169, 167, 168, 186, 186, 186, 195, 195, 195, 182, 182, 182, 170, 172, 171, 194, 196, 195, 198, 202, 201, 201, 203, 202, 198, 200, 197, 196, 197, 192, 194, 195, 190, 191, 190, 185, 186, 185, 180, 183, 182, 177, 183, 182, 177, 181, 182, 177, 180, 181, 176, 183, 183, 181, 185, 187, 184, 181, 183, 182, 174, 176, 175, 166, 166, 166, 168, 166, 167, 172, 170, 171, 172, 170, 171, 195, 193, 194, 198, 196, 197, 172, 170, 171, 186, 184, 185, 188, 186, 187, 204, 202, 203, 187, 185, 186, 197, 195, 196, 188, 186, 187, 199, 197, 198, 191, 189, 190, 218, 216, 217, 222, 222, 222, 235, 235, 235, 237, 237, 237, 235, 235, 235, 240, 240, 240, 240, 240, 240, 236, 236, 236, 239, 239, 239, 241, 241, 241, 241, 241, 241, 242, 242, 242, 243, 243, 243, 243, 243, 243, 244, 244, 244, 245, 245, 245, 245, 245, 245, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 249, 247, 248, 249, 247, 248, 250, 248, 249, 250, 248, 249, 251, 249, 250, 251, 249, 250, 251, 249, 250, 250, 248, 249, 250, 248, 249, 250, 248, 249, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 250, 248, 249, 250, 248, 249, 250, 248, 249, 251, 249, 250, 251, 249, 250, 251, 249, 250, 248, 246, 247, 248, 246, 247, 249, 247, 248, 249, 247, 248, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 252, 250, 251, 252, 250, 251, 252, 250, 251, 252, 250, 251, 252, 250, 251, 252, 250, 251, 252, 250, 251, 252, 250, 251, 251, 249, 250, 251, 249, 250, 250, 248, 249, 250, 248, 249, 250, 248, 249, 249, 247, 248, 249, 247, 248, 249, 247, 248, 247, 245, 246, 246, 244, 245, 246, 244, 245, 245, 243, 244, 244, 242, 243, 243, 241, 242, 243, 241, 242, 243, 241, 242, 245, 241, 242, 245, 241, 242, 244, 240, 241, 244, 240, 241, 242, 240, 241, 243, 241, 242, 244, 242, 243, 245, 243, 244, 242, 242, 242, 240, 240, 240, 239, 239, 239, 241, 241, 241, 244, 244, 244, 245, 245, 245, 241, 241, 241, 238, 238, 238, 238, 240, 239, 239, 241, 240, 238, 240, 239, 234, 236, 235, 229, 231, 230, 223, 225, 224, 221, 223, 222, 221, 223, 222, 227, 229, 228, 226, 228, 227, 218, 220, 219, 207, 209, 208, 202, 204, 203, 201, 203, 202, 193, 195, 194, 182, 184, 183, 196, 196, 196, 192, 192, 192, 190, 188, 189, 191, 189, 190, 197, 196, 194, 200, 199, 197, 200, 199, 197, 198, 197, 195, 197, 193, 192, 196, 192, 191, 190, 186, 183, 176, 172, 169, 160, 156, 153, 158, 154, 151, 178, 173, 170, 200, 196, 193, 207, 203, 202, 194, 193, 191, 188, 187, 185, 184, 183, 181, 172, 171, 169, 159, 158, 156, 163, 162, 160, 178, 177, 175, 191, 190, 188, 192, 191, 189, 181, 180, 178, 170, 169, 167, 177, 176, 174, 187, 186, 184, 179, 178, 176, 163, 162, 158, 174, 169, 165, 179, 174, 170, 188, 183, 179, 182, 177, 173, 171, 166, 162, 179, 174, 170, 194, 186, 183, 192, 184, 181, 172, 164, 161, 170, 162, 159, 172, 164, 161, 178, 170, 167, 176, 166, 164, 163, 153, 151, 154, 144, 142, 152, 144, 141, 173, 165, 162, 161, 156, 152, 153, 148, 144, 156, 151, 147, 164, 156, 153, 164, 156, 153, 158, 151, 145, 153, 146, 140, 149, 140, 135, 149, 140, 135, 146, 137, 132, 142, 133, 128, 141, 132, 125, 147, 138, 131, 159, 150, 143, 169, 160, 153, 133, 122, 118, 134, 123, 119, 136, 125, 121, 138, 127, 123, 140, 129, 125, 142, 131, 127, 144, 133, 129, 145, 134, 130, 151, 140, 136, 153, 142, 138, 152, 141, 137, 151, 140, 136, 153, 142, 138, 158, 147, 143, 162, 151, 147, 162, 151, 147, 173, 164, 159, 174, 165, 160, 173, 164, 159, 171, 162, 157, 166, 155, 151, 158, 147, 143, 150, 139, 135, 146, 135, 131, 142, 131, 127, 141, 130, 126, 141, 127, 124, 138, 124, 121, 136, 122, 119, 133, 119, 116, 131, 117, 114, 130, 116, 113, 132, 121, 117, 119, 108, 104, 102, 91, 87, 94, 83, 79, 95, 84, 80, 100, 89, 85, 103, 92, 88, 103, 92, 88, 116, 105, 101, 122, 111, 107, 126, 115, 111, 126, 115, 111, 128, 117, 113, 137, 126, 122, 147, 136, 132, 153, 142, 138, 147, 136, 132, 146, 135, 131, 139, 128, 124, 126, 115, 111, 111, 100, 96, 102, 91, 87, 102, 91, 87, 105, 94, 90, 134, 123, 119, 128, 117, 113, 137, 126, 122, 145, 134, 130, 138, 127, 123, 141, 130, 126, 153, 142, 138, 156, 145, 141, 156, 145, 141, 157, 146, 142, 158, 147, 143, 157, 146, 142, 157, 146, 142, 158, 147, 143, 162, 151, 147, 166, 155, 151, 175, 164, 160, 174, 163, 159, 174, 163, 159, 173, 162, 158, 173, 162, 158, 172, 161, 157, 172, 161, 157, 171, 160, 156, 175, 164, 162, 177, 166, 164, 181, 171, 169, 186, 176, 174, 191, 183, 180, 195, 187, 184, 195, 190, 186, 197, 192, 188, 201, 197, 194, 202, 198, 195, 203, 201, 202, 207, 205, 206, 211, 210, 215, 216, 215, 220, 219, 220, 225, 222, 223, 228, 226, 229, 234, 228, 231, 236, 231, 234, 239, 234, 237, 242, 236, 239, 244, 238, 241, 246, 239, 242, 247, 239, 242, 247, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 239, 242, 247, 236, 239, 244, 233, 236, 241, 228, 231, 236, 222, 225, 230, 218, 221, 226, 217, 218, 222, 211, 211, 211, 212, 211, 209, 211, 210, 208, 210, 209, 207, 207, 206, 204, 204, 203, 201, 203, 199, 196, 201, 197, 194, 201, 197, 194, 200, 196, 193, 198, 194, 191, 197, 193, 190, 198, 193, 189, 200, 195, 191, 202, 197, 193, 204, 199, 195, 201, 196, 193, 196, 191, 188, 191, 186, 183, 190, 185, 182, 193, 188, 185, 198, 193, 190, 202, 197, 194, 205, 200, 197, 193, 188, 185, 191, 186, 183, 188, 183, 180, 187, 182, 179, 186, 181, 178, 183, 178, 175, 179, 174, 171, 175, 170, 167, 167, 162, 159, 163, 158, 155, 161, 156, 153, 165, 160, 157, 171, 166, 163, 176, 171, 168, 177, 172, 169, 175, 170, 167, 175, 170, 167, 174, 169, 166, 172, 167, 164, 171, 166, 163, 171, 166, 163, 172, 167, 164, 173, 168, 165, 174, 169, 165, 185, 180, 176, 175, 170, 164, 163, 158, 152, 157, 152, 146, 157, 152, 146, 158, 153, 147, 158, 151, 145, 154, 147, 141, 171, 164, 158, 178, 171, 165, 185, 178, 172, 188, 181, 175, 184, 175, 170, 176, 167, 162, 168, 159, 154, 163, 156, 150, 159, 154, 148, 149, 146, 139, 134, 129, 123, 131, 126, 120, 145, 138, 132, 144, 137, 131, 129, 122, 116, 122, 115, 109, 116, 111, 105, 135, 130, 124, 159, 156, 149, 178, 175, 168, 185, 185, 177, 187, 187, 179, 188, 189, 181, 191, 192, 184, 199, 198, 193, 196, 195, 190, 193, 194, 188, 195, 196, 190, 197, 200, 193, 198, 201, 194, 196, 199, 192, 192, 195, 188, 216, 219, 212, 208, 209, 203, 207, 206, 201, 201, 200, 195, 191, 188, 183, 192, 189, 184, 202, 197, 193, 203, 198, 194, 193, 185, 182, 180, 172, 169, 158, 153, 149, 158, 153, 147, 147, 144, 137, 141, 138, 129, 149, 146, 137, 128, 125, 116, 87, 83, 74, 97, 90, 82, 106, 97, 90, 93, 82, 78, 77, 62, 59, 86, 68, 68, 93, 73, 74, 77, 57, 56, 87, 68, 61, 91, 73, 63, 96, 77, 70, 96, 77, 71, 94, 75, 71, 92, 72, 71, 92, 72, 73, 90, 71, 73, 92, 76, 79, 77, 62, 65, 71, 59, 61, 77, 65, 67, 71, 61, 62, 60, 51, 52, 68, 62, 62, 90, 86, 83, 85, 85, 77, 110, 107, 98, 107, 103, 94, 106, 99, 93, 130, 119, 115, 137, 126, 124, 132, 121, 119, 141, 131, 130, 155, 147, 145, 179, 175, 174, 182, 181, 179, 173, 173, 173, 179, 181, 180, 186, 187, 189, 186, 187, 189, 193, 194, 196, 190, 194, 193, 196, 200, 199, 202, 204, 201, 200, 202, 199, 198, 199, 194, 195, 196, 191, 189, 188, 183, 181, 180, 175, 205, 204, 199, 192, 191, 186, 183, 184, 179, 187, 188, 183, 190, 192, 189, 186, 188, 185, 176, 180, 179, 172, 174, 173, 166, 166, 166, 174, 172, 173, 183, 181, 182, 178, 176, 177, 195, 193, 194, 196, 194, 195, 174, 172, 173, 199, 197, 198, 202, 200, 201, 195, 193, 194, 199, 197, 198, 221, 219, 220, 177, 175, 176, 202, 200, 201, 211, 209, 210, 208, 206, 207, 228, 228, 228, 239, 239, 239, 239, 239, 239, 235, 235, 235, 240, 240, 240, 240, 240, 240, 236, 236, 236, 239, 239, 239, 241, 241, 241, 241, 241, 241, 242, 242, 242, 243, 243, 243, 243, 243, 243, 244, 244, 244, 245, 245, 245, 245, 245, 245, 248, 246, 247, 248, 246, 247, 248, 246, 247, 249, 247, 248, 249, 247, 248, 249, 247, 248, 250, 248, 249, 250, 248, 249, 251, 249, 250, 251, 249, 250, 251, 249, 250, 250, 248, 249, 250, 248, 249, 250, 248, 249, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 250, 248, 249, 250, 248, 249, 250, 248, 249, 251, 249, 250, 251, 249, 250, 251, 249, 250, 248, 246, 247, 248, 246, 247, 249, 247, 248, 249, 247, 248, 249, 247, 248, 250, 248, 249, 250, 248, 249, 250, 248, 249, 252, 250, 251, 252, 250, 251, 252, 250, 251, 252, 250, 251, 252, 250, 251, 252, 250, 251, 252, 250, 251, 252, 250, 251, 250, 248, 249, 250, 248, 249, 250, 248, 249, 249, 247, 248, 249, 247, 248, 249, 247, 248, 248, 246, 247, 248, 246, 247, 247, 245, 246, 246, 244, 245, 246, 244, 245, 245, 243, 244, 244, 242, 243, 243, 241, 242, 243, 241, 242, 243, 241, 242, 245, 241, 242, 245, 241, 242, 244, 240, 241, 244, 240, 241, 242, 240, 241, 243, 241, 242, 245, 243, 244, 245, 243, 244, 241, 241, 241, 238, 238, 238, 237, 237, 237, 240, 240, 240, 244, 244, 244, 245, 245, 245, 242, 242, 242, 238, 238, 238, 241, 243, 242, 242, 244, 243, 241, 243, 242, 237, 239, 238, 231, 233, 232, 226, 228, 227, 223, 225, 224, 223, 225, 224, 228, 230, 229, 228, 230, 229, 222, 224, 223, 214, 216, 215, 214, 216, 215, 220, 222, 221, 217, 219, 218, 207, 209, 208, 201, 201, 201, 197, 197, 197, 194, 192, 193, 193, 191, 192, 194, 193, 191, 191, 190, 188, 185, 184, 182, 179, 178, 176, 202, 198, 197, 192, 188, 187, 189, 185, 182, 194, 190, 187, 190, 186, 183, 175, 171, 168, 166, 161, 158, 164, 160, 157, 147, 146, 144, 157, 156, 154, 177, 176, 174, 193, 192, 190, 185, 184, 182, 170, 169, 167, 174, 173, 171, 191, 190, 188, 176, 175, 173, 182, 181, 179, 171, 170, 168, 158, 157, 155, 169, 168, 166, 185, 184, 182, 177, 176, 174, 157, 156, 152, 166, 161, 158, 164, 159, 155, 153, 148, 144, 127, 122, 118, 112, 107, 103, 133, 128, 124, 162, 154, 151, 167, 159, 156, 156, 148, 145, 147, 139, 136, 151, 143, 140, 167, 159, 156, 170, 160, 158, 152, 142, 140, 138, 128, 126, 135, 127, 124, 125, 117, 114, 140, 135, 131, 162, 157, 153, 175, 170, 166, 172, 164, 161, 162, 154, 151, 163, 156, 150, 170, 163, 157, 172, 163, 158, 174, 165, 160, 174, 165, 160, 169, 160, 155, 162, 153, 146, 158, 149, 142, 160, 151, 144, 163, 154, 147, 164, 153, 149, 150, 139, 135, 133, 122, 118, 123, 112, 108, 126, 115, 111, 134, 123, 119, 141, 130, 126, 144, 133, 129, 150, 139, 135, 151, 140, 136, 148, 137, 133, 146, 135, 131, 149, 138, 134, 159, 148, 144, 166, 155, 151, 168, 157, 153, 166, 157, 152, 168, 159, 154, 171, 162, 157, 172, 163, 158, 170, 159, 155, 163, 152, 148, 155, 144, 140, 150, 139, 135, 141, 130, 126, 139, 128, 124, 137, 123, 120, 133, 119, 116, 130, 116, 113, 129, 115, 112, 128, 114, 111, 128, 114, 111, 130, 119, 115, 122, 111, 107, 115, 104, 100, 115, 104, 100, 119, 108, 104, 116, 105, 101, 105, 94, 90, 95, 84, 80, 87, 76, 72, 105, 94, 90, 124, 113, 109, 129, 118, 114, 124, 113, 109, 118, 107, 103, 110, 99, 95, 105, 94, 90, 122, 111, 107, 131, 120, 116, 140, 129, 125, 140, 129, 125, 134, 123, 119, 127, 116, 112, 125, 114, 110, 126, 115, 111, 128, 117, 113, 127, 116, 112, 144, 133, 129, 153, 142, 138, 141, 130, 126, 137, 126, 122, 144, 133, 129, 142, 131, 127, 157, 146, 142, 161, 150, 146, 164, 153, 149, 166, 155, 151, 165, 154, 150, 164, 153, 149, 165, 154, 150, 166, 155, 151, 171, 160, 156, 169, 158, 154, 166, 155, 151, 163, 152, 148, 160, 149, 145, 159, 148, 144, 158, 147, 143, 158, 147, 143, 167, 156, 154, 169, 158, 156, 173, 163, 161, 179, 169, 167, 183, 175, 172, 188, 180, 177, 189, 184, 180, 190, 185, 181, 198, 194, 191, 200, 196, 193, 202, 200, 201, 207, 205, 206, 211, 210, 215, 215, 214, 219, 217, 218, 223, 218, 219, 224, 227, 230, 235, 228, 231, 236, 231, 234, 239, 234, 237, 242, 236, 239, 244, 238, 241, 246, 239, 242, 247, 239, 242, 247, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 242, 245, 250, 242, 245, 250, 241, 244, 249, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 235, 238, 243, 234, 237, 242, 233, 236, 241, 231, 234, 239, 227, 230, 235, 224, 227, 232, 220, 223, 228, 220, 221, 225, 223, 223, 223, 220, 219, 217, 215, 214, 212, 212, 211, 209, 210, 209, 207, 209, 208, 206, 208, 204, 201, 205, 201, 198, 208, 204, 201, 206, 202, 199, 203, 199, 196, 202, 198, 195, 203, 198, 194, 202, 197, 193, 199, 194, 190, 196, 191, 187, 190, 185, 182, 190, 185, 182, 191, 186, 183, 196, 191, 188, 200, 195, 192, 203, 198, 195, 203, 198, 195, 202, 197, 194, 195, 190, 187, 193, 188, 185, 191, 186, 183, 186, 181, 178, 181, 176, 173, 176, 171, 168, 171, 166, 163, 168, 163, 160, 181, 176, 173, 172, 167, 164, 160, 155, 152, 154, 149, 146, 157, 152, 149, 165, 160, 157, 175, 170, 167, 181, 176, 173, 187, 182, 179, 186, 181, 178, 186, 181, 178, 185, 180, 177, 184, 179, 176, 184, 179, 176, 184, 179, 176, 184, 179, 175, 183, 178, 174, 188, 183, 177, 192, 187, 181, 190, 185, 179, 183, 178, 172, 177, 172, 166, 177, 170, 164, 177, 170, 164, 183, 176, 170, 182, 175, 169, 181, 174, 168, 180, 173, 167, 177, 168, 163, 165, 156, 151, 149, 140, 135, 135, 128, 122, 133, 128, 122, 119, 116, 109, 108, 103, 97, 111, 106, 100, 130, 123, 117, 147, 140, 134, 155, 148, 142, 155, 148, 142, 159, 154, 148, 170, 165, 159, 155, 152, 145, 148, 145, 138, 164, 164, 156, 161, 161, 153, 144, 145, 137, 147, 148, 140, 169, 170, 164, 179, 180, 174, 192, 193, 187, 203, 204, 198, 209, 210, 204, 211, 212, 206, 211, 212, 206, 212, 213, 207, 205, 206, 200, 207, 208, 202, 209, 208, 203, 208, 207, 202, 205, 202, 197, 197, 194, 189, 188, 185, 180, 183, 179, 176, 181, 175, 179, 194, 188, 192, 189, 185, 186, 170, 166, 165, 168, 165, 160, 178, 175, 168, 167, 164, 155, 143, 139, 128, 126, 122, 111, 121, 117, 106, 110, 103, 93, 99, 90, 83, 97, 88, 81, 107, 96, 92, 116, 105, 103, 120, 109, 103, 103, 91, 79, 104, 92, 78, 98, 86, 74, 86, 73, 64, 80, 65, 60, 79, 64, 61, 78, 62, 63, 74, 58, 61, 87, 71, 74, 78, 63, 66, 66, 54, 54, 71, 60, 58, 81, 72, 67, 78, 69, 62, 78, 71, 61, 92, 85, 75, 109, 105, 96, 120, 115, 109, 131, 124, 118, 133, 124, 119, 136, 127, 122, 146, 137, 132, 155, 148, 142, 157, 152, 148, 179, 176, 171, 191, 192, 187, 175, 177, 172, 165, 167, 164, 190, 192, 191, 198, 199, 201, 184, 184, 186, 178, 179, 181, 205, 209, 208, 188, 193, 189, 193, 195, 192, 207, 209, 206, 202, 203, 198, 192, 193, 188, 194, 193, 189, 197, 196, 192, 197, 196, 192, 189, 188, 184, 184, 185, 180, 187, 188, 183, 188, 190, 187, 187, 189, 186, 185, 190, 186, 189, 191, 188, 161, 161, 161, 179, 177, 178, 179, 177, 178, 176, 174, 175, 192, 190, 191, 206, 204, 205, 203, 201, 202, 196, 194, 195, 213, 211, 212, 204, 202, 203, 214, 212, 213, 220, 218, 219, 203, 201, 202, 197, 195, 196, 214, 212, 213, 228, 226, 227, 226, 226, 226, 234, 234, 234, 238, 238, 238, 238, 238, 238, 238, 238, 238, 241, 241, 241, 242, 242, 242, 240, 240, 240, 243, 243, 243, 243, 243, 243, 244, 244, 244, 244, 244, 244, 244, 244, 244, 245, 245, 245, 245, 245, 245, 245, 245, 245, 247, 245, 246, 247, 245, 246, 247, 245, 246, 248, 246, 247, 248, 246, 247, 248, 246, 247, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 243, 241, 242, 243, 241, 242, 245, 243, 244, 246, 244, 245, 248, 246, 247, 250, 248, 249, 251, 249, 250, 252, 250, 251, 251, 249, 250, 251, 249, 250, 250, 248, 249, 250, 248, 249, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 245, 243, 244, 245, 243, 244, 246, 244, 245, 247, 245, 246, 247, 245, 246, 246, 244, 245, 245, 243, 244, 245, 243, 244, 247, 243, 244, 246, 242, 243, 245, 241, 242, 244, 240, 241, 242, 240, 241, 243, 241, 242, 244, 242, 243, 244, 242, 243, 237, 237, 237, 238, 238, 238, 240, 240, 240, 242, 242, 242, 243, 243, 243, 243, 243, 243, 242, 242, 242, 241, 241, 241, 241, 243, 242, 241, 243, 242, 241, 243, 242, 240, 242, 241, 238, 240, 239, 236, 238, 237, 234, 236, 235, 233, 235, 234, 211, 213, 212, 217, 219, 218, 222, 224, 223, 224, 226, 225, 221, 223, 222, 218, 220, 219, 217, 219, 218, 218, 220, 219, 222, 222, 222, 210, 210, 210, 196, 196, 196, 189, 189, 189, 192, 192, 190, 198, 198, 196, 203, 202, 200, 204, 203, 201, 174, 173, 171, 184, 183, 181, 198, 194, 191, 202, 198, 195, 198, 194, 191, 189, 185, 182, 183, 179, 176, 180, 176, 173, 169, 168, 166, 170, 169, 167, 174, 173, 171, 177, 176, 174, 173, 172, 170, 168, 167, 165, 172, 171, 169, 182, 181, 179, 181, 180, 178, 190, 189, 187, 194, 193, 191, 188, 187, 185, 182, 181, 179, 182, 181, 179, 182, 181, 179, 179, 178, 174, 176, 171, 168, 177, 172, 168, 174, 169, 165, 166, 161, 157, 152, 147, 143, 139, 134, 130, 132, 124, 121, 128, 120, 117, 169, 161, 158, 181, 173, 170, 189, 181, 178, 183, 175, 172, 166, 156, 154, 152, 142, 140, 151, 141, 139, 155, 147, 144, 161, 153, 150, 173, 168, 164, 180, 175, 171, 167, 162, 158, 152, 144, 141, 149, 141, 138, 161, 154, 148, 173, 166, 160, 186, 177, 172, 174, 165, 160, 171, 162, 157, 159, 150, 145, 129, 120, 113, 117, 108, 101, 140, 131, 124, 166, 157, 150, 165, 154, 150, 178, 167, 163, 182, 171, 167, 171, 160, 156, 159, 148, 144, 158, 147, 143, 160, 149, 145, 158, 147, 143, 160, 149, 145, 154, 143, 139, 146, 135, 131, 140, 129, 125, 137, 126, 122, 138, 127, 123, 142, 131, 127, 145, 134, 130, 151, 142, 137, 158, 149, 144, 164, 155, 150, 161, 152, 147, 150, 139, 135, 136, 125, 121, 124, 113, 109, 119, 108, 104, 109, 98, 94, 117, 106, 102, 128, 114, 111, 130, 116, 113, 124, 110, 107, 117, 103, 100, 113, 99, 96, 112, 98, 95, 117, 106, 102, 112, 101, 97, 105, 94, 90, 102, 91, 87, 104, 93, 89, 111, 100, 96, 121, 110, 106, 128, 117, 113, 119, 108, 104, 123, 112, 108, 128, 117, 113, 128, 117, 113, 121, 110, 106, 111, 100, 96, 102, 91, 87, 97, 86, 82, 109, 98, 94, 109, 98, 94, 110, 99, 95, 112, 101, 97, 115, 104, 100, 119, 108, 104, 123, 112, 108, 125, 114, 110, 129, 118, 114, 133, 122, 118, 140, 129, 125, 146, 135, 131, 150, 139, 135, 153, 142, 138, 153, 142, 138, 152, 141, 137, 168, 157, 153, 165, 154, 150, 163, 152, 148, 165, 154, 150, 167, 156, 152, 166, 155, 151, 160, 149, 145, 154, 143, 139, 155, 144, 140, 160, 149, 145, 166, 155, 151, 169, 158, 154, 168, 157, 153, 166, 155, 151, 165, 154, 150, 164, 153, 149, 170, 159, 157, 170, 159, 157, 169, 159, 157, 169, 159, 157, 171, 163, 160, 179, 171, 168, 187, 182, 178, 195, 190, 186, 192, 188, 185, 196, 192, 189, 199, 197, 198, 204, 202, 203, 208, 207, 212, 214, 213, 218, 220, 221, 226, 225, 226, 231, 229, 232, 237, 232, 235, 240, 236, 239, 244, 238, 241, 246, 239, 242, 247, 240, 243, 248, 242, 245, 250, 244, 247, 252, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 242, 245, 250, 242, 245, 250, 241, 244, 249, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 235, 238, 243, 234, 237, 242, 233, 236, 241, 230, 233, 238, 227, 230, 235, 223, 226, 231, 220, 223, 228, 220, 221, 225, 221, 221, 221, 218, 217, 215, 214, 213, 211, 211, 210, 208, 210, 209, 207, 209, 208, 206, 208, 204, 201, 206, 202, 199, 207, 203, 200, 205, 201, 198, 202, 198, 195, 200, 196, 193, 201, 196, 192, 200, 195, 191, 197, 192, 188, 195, 190, 186, 191, 186, 183, 191, 186, 183, 193, 188, 185, 197, 192, 189, 201, 196, 193, 204, 199, 196, 203, 198, 195, 202, 197, 194, 193, 188, 185, 191, 186, 183, 187, 182, 179, 182, 177, 174, 175, 170, 167, 168, 163, 160, 162, 157, 154, 159, 154, 151, 166, 161, 158, 161, 156, 153, 156, 151, 148, 155, 150, 147, 161, 156, 153, 170, 165, 162, 180, 175, 172, 185, 180, 177, 182, 177, 174, 179, 174, 171, 174, 169, 166, 171, 166, 163, 171, 166, 163, 174, 169, 166, 179, 174, 171, 182, 177, 173, 179, 174, 170, 179, 174, 168, 177, 172, 166, 173, 168, 162, 169, 164, 158, 170, 165, 159, 177, 170, 164, 183, 176, 170, 179, 172, 166, 173, 166, 160, 165, 158, 152, 160, 153, 147, 159, 150, 145, 158, 149, 144, 158, 149, 144, 157, 150, 144, 153, 148, 142, 153, 150, 143, 160, 155, 149, 173, 168, 162, 186, 179, 173, 187, 180, 174, 178, 171, 165, 167, 160, 154, 160, 155, 149, 156, 151, 145, 124, 121, 114, 110, 107, 100, 134, 134, 126, 155, 155, 147, 163, 164, 156, 180, 181, 173, 190, 191, 185, 189, 190, 184, 187, 188, 182, 183, 184, 178, 178, 179, 173, 175, 176, 170, 175, 176, 170, 176, 177, 171, 194, 195, 189, 196, 197, 191, 200, 199, 194, 200, 199, 194, 200, 197, 192, 194, 191, 186, 187, 184, 179, 183, 179, 176, 190, 188, 191, 198, 196, 199, 196, 191, 195, 181, 177, 176, 178, 174, 171, 185, 182, 177, 181, 176, 170, 166, 162, 153, 163, 159, 150, 161, 157, 148, 154, 147, 139, 143, 136, 130, 139, 132, 126, 141, 136, 130, 144, 139, 135, 143, 138, 132, 140, 134, 120, 128, 121, 105, 114, 106, 93, 108, 100, 89, 113, 102, 96, 116, 105, 101, 117, 103, 102, 113, 99, 98, 97, 83, 83, 105, 91, 90, 106, 95, 91, 111, 100, 94, 119, 110, 101, 121, 113, 102, 129, 121, 108, 146, 138, 127, 153, 144, 139, 163, 153, 151, 171, 161, 159, 167, 157, 155, 157, 148, 143, 157, 150, 144, 169, 164, 158, 183, 180, 175, 179, 180, 174, 198, 201, 194, 186, 191, 185, 173, 178, 172, 189, 191, 188, 194, 196, 195, 186, 186, 188, 190, 190, 192, 197, 199, 196, 195, 200, 196, 204, 206, 203, 203, 205, 202, 190, 191, 186, 188, 189, 184, 198, 197, 193, 199, 198, 194, 173, 172, 168, 176, 175, 171, 182, 183, 178, 187, 188, 183, 185, 185, 183, 178, 180, 177, 177, 179, 176, 181, 183, 180, 171, 171, 171, 188, 186, 187, 188, 186, 187, 179, 177, 178, 181, 179, 180, 187, 185, 186, 195, 193, 194, 206, 204, 205, 203, 201, 202, 210, 208, 209, 218, 216, 217, 209, 207, 208, 198, 196, 197, 212, 210, 211, 228, 226, 227, 223, 221, 222, 227, 227, 227, 234, 234, 234, 238, 238, 238, 238, 238, 238, 238, 238, 238, 241, 241, 241, 242, 242, 242, 240, 240, 240, 243, 243, 243, 243, 243, 243, 244, 244, 244, 244, 244, 244, 244, 244, 244, 245, 245, 245, 245, 245, 245, 245, 245, 245, 247, 245, 246, 247, 245, 246, 247, 245, 246, 248, 246, 247, 248, 246, 247, 248, 246, 247, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 245, 243, 244, 245, 243, 244, 246, 244, 245, 247, 245, 246, 248, 246, 247, 249, 247, 248, 250, 248, 249, 250, 248, 249, 251, 249, 250, 251, 249, 250, 250, 248, 249, 250, 248, 249, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 245, 243, 244, 246, 244, 245, 246, 244, 245, 247, 245, 246, 247, 245, 246, 246, 244, 245, 245, 243, 244, 244, 242, 243, 246, 242, 243, 246, 242, 243, 245, 241, 242, 244, 240, 241, 242, 240, 241, 243, 241, 242, 244, 242, 243, 245, 243, 244, 239, 239, 239, 240, 240, 240, 240, 240, 240, 241, 241, 241, 242, 242, 242, 242, 242, 242, 243, 243, 243, 243, 243, 243, 242, 244, 243, 242, 244, 243, 242, 244, 243, 241, 243, 242, 240, 242, 241, 238, 240, 239, 236, 238, 237, 234, 236, 235, 226, 228, 227, 221, 223, 222, 218, 220, 219, 221, 223, 222, 227, 229, 228, 227, 229, 228, 218, 220, 219, 209, 211, 210, 213, 213, 213, 210, 210, 210, 205, 205, 205, 199, 199, 199, 195, 195, 193, 194, 194, 192, 197, 196, 194, 200, 199, 197, 192, 191, 189, 190, 189, 187, 188, 184, 181, 184, 180, 177, 182, 178, 175, 185, 181, 178, 191, 187, 184, 196, 192, 189, 184, 183, 181, 186, 185, 183, 184, 183, 181, 179, 178, 176, 181, 180, 178, 185, 184, 182, 180, 179, 177, 169, 168, 166, 179, 178, 176, 165, 164, 162, 160, 159, 157, 173, 172, 170, 188, 187, 185, 189, 188, 186, 182, 181, 179, 177, 176, 172, 198, 193, 189, 198, 193, 189, 197, 192, 188, 192, 187, 183, 181, 176, 172, 165, 160, 156, 150, 142, 139, 139, 131, 128, 149, 141, 138, 146, 138, 135, 144, 136, 133, 146, 138, 135, 153, 143, 141, 162, 152, 150, 169, 159, 157, 172, 164, 161, 171, 163, 160, 167, 162, 158, 159, 154, 150, 148, 143, 139, 146, 138, 135, 151, 143, 140, 158, 151, 145, 160, 153, 147, 153, 144, 139, 125, 116, 111, 113, 104, 99, 119, 110, 105, 125, 116, 109, 138, 129, 122, 160, 151, 144, 173, 164, 157, 146, 135, 131, 160, 149, 145, 167, 156, 152, 161, 150, 146, 156, 145, 141, 159, 148, 144, 165, 154, 150, 166, 155, 151, 161, 150, 146, 161, 150, 146, 160, 149, 145, 161, 150, 146, 162, 151, 147, 164, 153, 149, 166, 155, 151, 168, 157, 153, 167, 158, 153, 164, 155, 150, 158, 149, 144, 150, 141, 136, 142, 131, 127, 135, 124, 120, 133, 122, 118, 133, 122, 118, 131, 120, 116, 134, 123, 119, 137, 123, 120, 134, 120, 117, 126, 112, 109, 116, 102, 99, 108, 94, 91, 104, 90, 87, 109, 98, 94, 110, 99, 95, 112, 101, 97, 114, 103, 99, 118, 107, 103, 122, 111, 107, 127, 116, 112, 131, 120, 116, 126, 115, 111, 128, 117, 113, 131, 120, 116, 132, 121, 117, 130, 119, 115, 128, 117, 113, 126, 115, 111, 125, 114, 110, 126, 115, 111, 131, 120, 116, 136, 125, 121, 139, 128, 124, 136, 125, 121, 129, 118, 114, 120, 109, 105, 114, 103, 99, 102, 91, 87, 107, 96, 92, 116, 105, 101, 127, 116, 112, 137, 126, 122, 146, 135, 131, 152, 141, 137, 155, 144, 140, 155, 144, 140, 155, 144, 140, 157, 146, 142, 161, 150, 146, 165, 154, 150, 166, 155, 151, 164, 153, 149, 162, 151, 147, 161, 150, 146, 164, 153, 149, 167, 156, 152, 168, 157, 153, 167, 156, 152, 167, 156, 152, 168, 157, 153, 170, 159, 155, 172, 161, 159, 172, 161, 159, 170, 160, 158, 170, 160, 158, 171, 163, 160, 177, 169, 166, 183, 178, 174, 190, 185, 181, 195, 191, 188, 199, 195, 192, 202, 200, 201, 206, 204, 205, 210, 209, 214, 216, 215, 220, 222, 223, 228, 227, 228, 233, 227, 230, 235, 231, 234, 239, 235, 238, 243, 237, 240, 245, 238, 241, 246, 239, 242, 247, 241, 244, 249, 243, 246, 251, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 242, 245, 250, 242, 245, 250, 241, 244, 249, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 234, 237, 242, 234, 237, 242, 232, 235, 240, 230, 233, 238, 227, 230, 235, 223, 226, 231, 220, 223, 228, 220, 221, 225, 218, 218, 218, 216, 215, 213, 212, 211, 209, 210, 209, 207, 210, 209, 207, 209, 208, 206, 209, 205, 202, 208, 204, 201, 206, 202, 199, 204, 200, 197, 201, 197, 194, 200, 196, 193, 201, 196, 192, 200, 195, 191, 197, 192, 188, 194, 189, 185, 190, 185, 182, 190, 185, 182, 191, 186, 183, 195, 190, 187, 199, 194, 191, 201, 196, 193, 200, 195, 192, 199, 194, 191, 188, 183, 180, 186, 181, 178, 183, 178, 175, 179, 174, 171, 173, 168, 165, 168, 163, 160, 163, 158, 155, 160, 155, 152, 158, 153, 150, 158, 153, 150, 159, 154, 151, 162, 157, 154, 167, 162, 159, 173, 168, 165, 179, 174, 171, 182, 177, 174, 177, 172, 169, 175, 170, 167, 173, 168, 165, 172, 167, 164, 173, 168, 165, 175, 170, 167, 177, 172, 169, 179, 174, 170, 180, 175, 171, 178, 173, 167, 172, 167, 161, 164, 159, 153, 156, 151, 145, 152, 147, 141, 154, 147, 141, 156, 149, 143, 150, 143, 137, 155, 148, 142, 160, 153, 147, 165, 158, 152, 167, 158, 153, 168, 159, 154, 169, 160, 155, 170, 163, 157, 165, 160, 154, 165, 162, 155, 169, 164, 158, 174, 169, 163, 179, 172, 166, 179, 172, 166, 174, 167, 161, 169, 162, 156, 156, 151, 145, 170, 165, 159, 165, 162, 155, 163, 160, 153, 180, 180, 172, 188, 188, 180, 188, 189, 181, 200, 201, 193, 175, 178, 171, 174, 177, 170, 175, 176, 170, 176, 177, 171, 179, 180, 174, 186, 187, 181, 193, 192, 187, 198, 197, 192, 203, 202, 197, 205, 204, 199, 209, 208, 203, 212, 211, 206, 211, 210, 205, 208, 207, 202, 203, 202, 197, 200, 199, 194, 196, 197, 192, 202, 203, 198, 204, 203, 199, 199, 195, 192, 192, 188, 185, 189, 184, 181, 186, 177, 178, 180, 172, 170, 179, 171, 169, 182, 174, 172, 179, 174, 171, 175, 170, 167, 174, 169, 166, 176, 172, 169, 173, 172, 168, 170, 169, 164, 160, 157, 148, 138, 136, 124, 126, 122, 111, 137, 133, 122, 156, 149, 139, 159, 152, 142, 154, 145, 138, 150, 140, 131, 135, 124, 118, 156, 146, 137, 163, 153, 144, 158, 148, 139, 158, 148, 138, 159, 149, 139, 167, 159, 148, 182, 173, 166, 173, 163, 164, 174, 162, 166, 178, 166, 170, 182, 170, 172, 178, 168, 167, 177, 169, 167, 188, 184, 181, 205, 204, 199, 179, 182, 175, 199, 204, 197, 195, 200, 193, 180, 185, 179, 186, 188, 183, 188, 188, 186, 190, 189, 187, 201, 200, 198, 194, 196, 193, 200, 202, 197, 206, 206, 204, 196, 196, 194, 186, 185, 183, 196, 195, 193, 202, 201, 199, 192, 191, 189, 166, 165, 163, 173, 172, 170, 184, 183, 181, 188, 188, 186, 182, 182, 180, 174, 176, 173, 176, 178, 173, 185, 187, 184, 192, 192, 192, 196, 194, 195, 190, 188, 189, 184, 182, 183, 183, 181, 182, 182, 180, 181, 192, 190, 191, 213, 211, 212, 194, 192, 193, 210, 208, 209, 221, 219, 220, 208, 206, 207, 191, 189, 190, 201, 199, 200, 219, 217, 218, 223, 221, 222, 227, 227, 227, 234, 234, 234, 239, 239, 239, 238, 238, 238, 238, 238, 238, 241, 241, 241, 242, 242, 242, 240, 240, 240, 243, 243, 243, 243, 243, 243, 244, 244, 244, 244, 244, 244, 244, 244, 244, 245, 245, 245, 245, 245, 245, 245, 245, 245, 247, 245, 246, 247, 245, 246, 247, 245, 246, 248, 246, 247, 248, 246, 247, 248, 246, 247, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 251, 249, 250, 251, 249, 250, 250, 248, 249, 250, 248, 249, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 251, 249, 250, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 246, 244, 245, 246, 244, 245, 247, 245, 246, 247, 245, 246, 247, 245, 246, 246, 244, 245, 245, 243, 244, 244, 242, 243, 246, 242, 243, 245, 241, 242, 244, 240, 241, 244, 240, 241, 242, 240, 241, 243, 241, 242, 245, 243, 244, 245, 243, 244, 243, 243, 243, 242, 242, 242, 240, 240, 240, 239, 239, 239, 240, 240, 240, 242, 242, 242, 244, 244, 244, 245, 245, 245, 242, 244, 243, 242, 244, 243, 242, 244, 243, 242, 244, 243, 241, 243, 242, 239, 241, 240, 237, 239, 238, 236, 238, 237, 233, 235, 234, 227, 229, 228, 222, 224, 223, 224, 226, 225, 229, 231, 230, 228, 230, 229, 219, 221, 220, 210, 212, 211, 206, 206, 206, 211, 211, 211, 214, 214, 214, 210, 210, 210, 201, 201, 199, 194, 194, 192, 194, 194, 192, 197, 197, 195, 201, 200, 198, 198, 197, 195, 195, 194, 190, 192, 191, 187, 190, 186, 183, 184, 180, 177, 178, 174, 171, 173, 169, 166, 185, 184, 180, 190, 189, 185, 180, 179, 175, 159, 158, 154, 156, 155, 151, 170, 169, 165, 172, 171, 167, 161, 160, 156, 148, 147, 143, 128, 127, 123, 128, 127, 123, 160, 159, 155, 191, 190, 186, 199, 198, 194, 199, 198, 194, 204, 203, 199, 189, 184, 180, 190, 185, 181, 192, 187, 183, 193, 188, 184, 192, 187, 183, 185, 180, 176, 177, 169, 166, 170, 162, 159, 163, 155, 152, 150, 142, 139, 136, 128, 125, 131, 123, 120, 140, 130, 128, 153, 143, 141, 164, 154, 152, 169, 161, 158, 165, 157, 154, 164, 159, 155, 163, 158, 154, 158, 153, 149, 157, 149, 146, 152, 144, 141, 141, 134, 128, 129, 122, 116, 108, 99, 94, 101, 92, 87, 122, 113, 108, 159, 150, 145, 171, 162, 155, 154, 145, 138, 120, 111, 104, 87, 78, 71, 127, 116, 112, 137, 126, 122, 143, 132, 128, 141, 130, 126, 140, 129, 125, 147, 136, 132, 157, 146, 142, 163, 152, 148, 169, 158, 154, 171, 160, 156, 173, 162, 158, 174, 163, 159, 172, 161, 157, 167, 156, 152, 162, 151, 147, 158, 147, 143, 160, 151, 146, 153, 144, 139, 143, 134, 129, 135, 126, 121, 134, 123, 119, 135, 124, 120, 136, 125, 121, 137, 126, 122, 119, 108, 104, 117, 106, 102, 117, 103, 100, 116, 102, 99, 115, 101, 98, 112, 98, 95, 108, 94, 91, 104, 90, 87, 105, 94, 90, 109, 98, 94, 114, 103, 99, 117, 106, 102, 118, 107, 103, 120, 109, 105, 122, 111, 107, 124, 113, 109, 118, 107, 103, 117, 106, 102, 116, 105, 101, 115, 104, 100, 116, 105, 101, 118, 107, 103, 121, 110, 106, 123, 112, 108, 120, 106, 103, 127, 113, 110, 136, 122, 119, 143, 129, 126, 143, 129, 126, 136, 122, 119, 127, 113, 110, 121, 107, 104, 136, 122, 119, 137, 123, 120, 141, 127, 124, 144, 130, 127, 147, 133, 130, 150, 136, 133, 151, 137, 134, 152, 138, 135, 149, 138, 134, 153, 142, 138, 157, 146, 142, 161, 150, 146, 162, 151, 147, 163, 152, 148, 166, 155, 151, 168, 157, 153, 163, 152, 148, 163, 152, 148, 162, 151, 147, 160, 149, 145, 158, 147, 143, 160, 149, 145, 165, 154, 150, 169, 158, 154, 170, 159, 157, 171, 160, 158, 172, 162, 160, 173, 163, 161, 174, 166, 163, 180, 172, 169, 186, 181, 177, 192, 187, 183, 198, 194, 191, 201, 197, 194, 204, 202, 203, 208, 206, 207, 212, 211, 216, 218, 217, 222, 223, 224, 229, 228, 229, 234, 226, 229, 234, 229, 232, 237, 233, 236, 241, 235, 238, 243, 236, 239, 244, 237, 240, 245, 239, 242, 247, 241, 244, 249, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 242, 245, 250, 242, 245, 250, 241, 244, 249, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 234, 237, 242, 234, 237, 242, 232, 235, 240, 230, 233, 238, 227, 230, 235, 223, 226, 231, 220, 223, 228, 220, 221, 225, 216, 216, 216, 214, 213, 211, 211, 210, 208, 209, 208, 206, 210, 209, 207, 210, 209, 207, 210, 206, 203, 209, 205, 202, 207, 203, 200, 205, 201, 198, 202, 198, 195, 201, 197, 194, 202, 197, 193, 201, 196, 192, 198, 193, 189, 195, 190, 186, 188, 183, 180, 188, 183, 180, 188, 183, 180, 191, 186, 183, 195, 190, 187, 196, 191, 188, 195, 190, 187, 193, 188, 185, 182, 177, 174, 182, 177, 174, 182, 177, 174, 181, 176, 173, 179, 174, 171, 177, 172, 169, 174, 169, 166, 173, 168, 165, 166, 161, 158, 169, 164, 161, 172, 167, 164, 174, 169, 166, 174, 169, 166, 173, 168, 165, 173, 168, 165, 173, 168, 165, 165, 160, 157, 169, 164, 161, 176, 171, 168, 180, 175, 172, 181, 176, 173, 178, 173, 170, 172, 167, 164, 168, 163, 159, 180, 175, 171, 182, 177, 171, 183, 178, 172, 179, 174, 168, 170, 165, 159, 158, 153, 147, 148, 141, 135, 141, 134, 128, 164, 157, 151, 171, 164, 158, 178, 171, 165, 177, 170, 164, 168, 159, 154, 155, 146, 141, 146, 137, 132, 141, 134, 128, 166, 161, 155, 163, 160, 153, 161, 156, 150, 156, 151, 145, 156, 149, 143, 157, 150, 144, 161, 154, 148, 165, 158, 152, 171, 166, 160, 197, 192, 186, 206, 203, 196, 200, 197, 190, 191, 191, 183, 176, 176, 168, 165, 166, 158, 169, 170, 162, 179, 182, 175, 180, 183, 176, 182, 183, 177, 186, 187, 181, 190, 191, 185, 194, 195, 189, 196, 195, 190, 196, 195, 190, 192, 191, 186, 194, 193, 188, 197, 196, 191, 200, 199, 194, 200, 199, 194, 198, 197, 192, 195, 194, 189, 192, 191, 186, 195, 197, 186, 199, 201, 190, 206, 208, 197, 208, 208, 200, 200, 196, 193, 186, 180, 180, 178, 172, 174, 177, 171, 173, 186, 177, 180, 188, 182, 186, 189, 183, 187, 187, 181, 183, 186, 182, 183, 188, 184, 183, 184, 183, 181, 179, 179, 177, 172, 173, 168, 152, 153, 148, 149, 148, 143, 170, 170, 162, 189, 186, 179, 183, 179, 170, 170, 163, 153, 163, 156, 146, 175, 166, 157, 194, 185, 176, 194, 185, 176, 179, 170, 163, 174, 165, 158, 176, 167, 162, 181, 174, 168, 190, 182, 180, 184, 173, 179, 167, 156, 164, 164, 153, 159, 181, 170, 176, 194, 183, 187, 193, 184, 185, 193, 189, 188, 199, 200, 195, 179, 181, 176, 194, 199, 192, 193, 198, 191, 182, 187, 180, 185, 187, 182, 188, 189, 184, 193, 192, 190, 205, 204, 202, 202, 203, 198, 195, 197, 192, 194, 194, 192, 193, 193, 191, 196, 195, 193, 207, 206, 204, 202, 201, 199, 179, 178, 176, 186, 185, 183, 186, 185, 183, 188, 187, 185, 189, 188, 186, 185, 184, 182, 181, 181, 179, 187, 188, 183, 197, 198, 193, 205, 203, 204, 195, 193, 194, 185, 183, 184, 191, 189, 190, 202, 200, 201, 197, 195, 196, 197, 195, 196, 212, 210, 211, 195, 193, 194, 203, 201, 202, 216, 214, 215, 213, 211, 212, 187, 185, 186, 172, 170, 171, 193, 191, 192, 224, 222, 223, 227, 227, 227, 234, 234, 234, 239, 239, 239, 238, 238, 238, 238, 238, 238, 242, 242, 242, 243, 243, 243, 241, 241, 241, 243, 243, 243, 243, 243, 243, 244, 244, 244, 244, 244, 244, 244, 244, 244, 245, 245, 245, 245, 245, 245, 245, 245, 245, 247, 245, 246, 247, 245, 246, 247, 245, 246, 248, 246, 247, 248, 246, 247, 248, 246, 247, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 250, 248, 249, 250, 248, 249, 249, 247, 248, 249, 247, 248, 248, 246, 247, 247, 245, 246, 246, 244, 245, 246, 244, 245, 251, 249, 250, 251, 249, 250, 250, 248, 249, 250, 248, 249, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 246, 244, 245, 247, 245, 246, 247, 245, 246, 247, 245, 246, 247, 245, 246, 245, 243, 244, 244, 242, 243, 243, 241, 242, 245, 241, 242, 244, 240, 241, 244, 240, 241, 244, 240, 241, 243, 241, 242, 244, 242, 243, 245, 243, 244, 246, 244, 245, 246, 246, 246, 244, 244, 244, 241, 241, 241, 239, 239, 239, 239, 239, 239, 241, 241, 241, 245, 245, 245, 247, 247, 247, 240, 242, 241, 241, 243, 242, 241, 243, 242, 241, 243, 242, 240, 242, 241, 238, 240, 239, 237, 239, 238, 235, 237, 236, 227, 229, 228, 230, 232, 231, 232, 234, 233, 229, 231, 230, 224, 226, 225, 220, 222, 221, 219, 221, 220, 220, 222, 221, 207, 207, 207, 212, 212, 212, 215, 215, 215, 214, 214, 214, 209, 209, 207, 203, 203, 201, 201, 201, 199, 201, 201, 199, 203, 202, 200, 202, 201, 199, 201, 200, 196, 200, 199, 195, 199, 195, 192, 188, 184, 181, 173, 169, 166, 161, 157, 154, 185, 184, 180, 201, 200, 196, 204, 203, 199, 187, 186, 182, 174, 173, 169, 176, 175, 171, 183, 182, 178, 183, 182, 178, 186, 185, 181, 175, 174, 170, 171, 170, 166, 176, 175, 171, 173, 172, 168, 162, 161, 157, 160, 159, 155, 169, 165, 162, 184, 179, 175, 185, 180, 176, 184, 179, 175, 180, 175, 171, 176, 171, 167, 174, 169, 165, 179, 171, 168, 182, 174, 171, 152, 144, 141, 149, 141, 138, 142, 134, 131, 134, 126, 123, 132, 122, 120, 138, 128, 126, 150, 140, 138, 158, 150, 147, 160, 152, 149, 169, 164, 160, 175, 170, 166, 170, 165, 161, 159, 151, 148, 146, 138, 135, 134, 127, 121, 124, 117, 111, 152, 143, 138, 126, 117, 112, 112, 103, 98, 115, 106, 101, 121, 112, 105, 134, 125, 118, 149, 140, 133, 152, 143, 136, 161, 150, 146, 162, 151, 147, 158, 147, 143, 149, 138, 134, 143, 132, 128, 146, 135, 131, 155, 144, 140, 163, 152, 148, 173, 162, 158, 174, 163, 159, 175, 164, 160, 173, 162, 158, 168, 157, 153, 159, 148, 144, 151, 140, 136, 146, 135, 131, 145, 136, 131, 141, 132, 127, 137, 128, 123, 137, 128, 123, 141, 130, 126, 142, 131, 127, 138, 127, 123, 134, 123, 119, 142, 131, 127, 135, 124, 120, 129, 115, 112, 124, 110, 107, 123, 109, 106, 120, 106, 103, 115, 101, 98, 110, 96, 93, 106, 95, 91, 109, 98, 94, 111, 100, 96, 109, 98, 94, 105, 94, 90, 104, 93, 89, 106, 95, 91, 108, 97, 93, 115, 104, 100, 113, 102, 98, 112, 101, 97, 113, 102, 98, 117, 106, 102, 121, 110, 106, 124, 113, 109, 125, 114, 110, 119, 105, 102, 121, 107, 104, 125, 111, 108, 130, 116, 113, 135, 121, 118, 138, 124, 121, 141, 127, 124, 142, 128, 125, 141, 127, 124, 144, 130, 127, 149, 135, 132, 153, 139, 136, 154, 140, 137, 153, 139, 136, 151, 137, 134, 149, 135, 132, 152, 141, 137, 157, 146, 142, 161, 150, 146, 162, 151, 147, 160, 149, 145, 159, 148, 144, 163, 152, 148, 168, 157, 153, 160, 149, 145, 158, 147, 143, 154, 143, 139, 149, 138, 134, 147, 136, 132, 150, 139, 135, 157, 146, 142, 163, 152, 148, 168, 157, 155, 171, 160, 158, 174, 164, 162, 178, 168, 166, 182, 174, 171, 188, 180, 177, 194, 189, 185, 200, 195, 191, 198, 194, 191, 201, 197, 194, 204, 202, 203, 208, 206, 207, 211, 210, 215, 217, 216, 221, 222, 223, 228, 227, 228, 233, 224, 227, 232, 227, 230, 235, 231, 234, 239, 233, 236, 241, 234, 237, 242, 235, 238, 243, 237, 240, 245, 239, 242, 247, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 242, 245, 250, 242, 245, 250, 241, 244, 249, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 235, 238, 243, 235, 238, 243, 233, 236, 241, 231, 234, 239, 228, 231, 236, 224, 227, 232, 221, 224, 229, 221, 222, 226, 217, 217, 217, 215, 214, 212, 211, 210, 208, 210, 209, 207, 210, 209, 207, 210, 209, 207, 211, 207, 204, 209, 205, 202, 209, 205, 202, 206, 202, 199, 203, 199, 196, 202, 198, 195, 203, 198, 194, 202, 197, 193, 199, 194, 190, 197, 192, 188, 191, 186, 183, 190, 185, 182, 190, 185, 182, 192, 187, 184, 195, 190, 187, 196, 191, 188, 194, 189, 186, 192, 187, 184, 183, 178, 175, 183, 178, 175, 183, 178, 175, 183, 178, 175, 182, 177, 174, 180, 175, 172, 178, 173, 170, 177, 172, 169, 173, 168, 165, 178, 173, 170, 182, 177, 174, 183, 178, 175, 179, 174, 171, 174, 169, 166, 172, 167, 164, 172, 167, 164, 159, 154, 151, 163, 158, 155, 170, 165, 162, 175, 170, 167, 176, 171, 168, 172, 167, 164, 165, 160, 157, 161, 156, 152, 173, 168, 164, 178, 173, 167, 186, 181, 175, 192, 187, 181, 192, 187, 181, 186, 181, 175, 178, 171, 165, 171, 164, 158, 182, 175, 169, 183, 176, 170, 180, 173, 167, 171, 164, 158, 159, 150, 145, 150, 141, 136, 146, 137, 132, 145, 138, 132, 167, 162, 158, 172, 169, 164, 179, 174, 170, 181, 176, 172, 179, 171, 168, 173, 165, 162, 169, 161, 158, 167, 159, 156, 159, 154, 150, 162, 157, 153, 149, 146, 141, 134, 131, 126, 131, 130, 125, 140, 139, 134, 152, 153, 147, 165, 166, 160, 174, 176, 171, 172, 174, 169, 170, 172, 167, 173, 175, 170, 179, 180, 175, 182, 183, 178, 183, 182, 178, 182, 181, 177, 191, 187, 184, 192, 188, 185, 194, 190, 187, 195, 191, 188, 192, 191, 187, 190, 189, 185, 187, 186, 182, 185, 185, 177, 191, 193, 179, 192, 195, 178, 197, 199, 185, 202, 202, 190, 195, 195, 187, 185, 181, 178, 182, 178, 177, 187, 183, 184, 205, 199, 203, 205, 200, 206, 202, 197, 203, 194, 189, 195, 190, 185, 191, 189, 184, 188, 185, 183, 186, 179, 179, 181, 196, 197, 201, 179, 183, 186, 180, 181, 183, 197, 199, 198, 204, 205, 200, 190, 189, 184, 177, 174, 167, 174, 171, 164, 187, 182, 176, 196, 191, 185, 187, 182, 178, 172, 167, 164, 175, 171, 170, 185, 181, 182, 189, 184, 190, 194, 189, 195, 202, 195, 202, 184, 178, 182, 181, 172, 177, 195, 186, 191, 203, 194, 197, 192, 186, 186, 184, 180, 179, 183, 182, 178, 186, 187, 182, 189, 194, 188, 187, 192, 186, 185, 190, 184, 193, 195, 192, 198, 198, 196, 201, 200, 198, 206, 205, 203, 202, 203, 198, 190, 191, 186, 193, 192, 188, 202, 201, 197, 206, 202, 201, 207, 203, 202, 198, 194, 195, 181, 177, 178, 202, 198, 199, 195, 191, 192, 192, 188, 187, 191, 190, 188, 192, 191, 187, 188, 189, 184, 189, 190, 185, 192, 193, 188, 192, 190, 191, 186, 184, 185, 186, 184, 185, 202, 200, 201, 215, 213, 214, 204, 202, 203, 198, 196, 197, 211, 209, 210, 198, 196, 197, 202, 200, 201, 207, 205, 206, 205, 203, 204, 191, 189, 190, 177, 175, 176, 190, 188, 189, 217, 215, 216, 228, 228, 228, 235, 235, 235, 240, 240, 240, 239, 239, 239, 239, 239, 239, 242, 242, 242, 243, 243, 243, 241, 241, 241, 243, 243, 243, 243, 243, 243, 244, 244, 244, 244, 244, 244, 244, 244, 244, 245, 245, 245, 245, 245, 245, 245, 245, 245, 247, 245, 246, 247, 245, 246, 247, 245, 246, 248, 246, 247, 248, 246, 247, 248, 246, 247, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 251, 249, 250, 251, 249, 250, 250, 248, 249, 249, 247, 248, 248, 246, 247, 247, 245, 246, 246, 244, 245, 246, 244, 245, 251, 249, 250, 251, 249, 250, 250, 248, 249, 250, 248, 249, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 247, 245, 246, 248, 246, 247, 248, 246, 247, 248, 246, 247, 247, 245, 246, 245, 243, 244, 243, 241, 242, 242, 240, 241, 244, 240, 241, 244, 240, 241, 243, 239, 240, 244, 240, 241, 243, 241, 242, 244, 242, 243, 246, 244, 245, 247, 245, 246, 248, 248, 248, 245, 245, 245, 242, 242, 242, 240, 240, 240, 239, 239, 239, 242, 242, 242, 245, 245, 245, 247, 247, 247, 238, 240, 239, 239, 241, 240, 239, 241, 240, 239, 241, 240, 238, 240, 239, 237, 239, 238, 236, 238, 237, 235, 237, 236, 225, 227, 226, 228, 230, 229, 230, 232, 231, 228, 230, 229, 224, 226, 225, 221, 223, 222, 222, 224, 223, 224, 226, 225, 215, 217, 216, 212, 214, 213, 211, 213, 212, 212, 214, 213, 216, 216, 214, 216, 216, 214, 211, 211, 209, 207, 207, 205, 214, 213, 211, 203, 202, 200, 190, 189, 185, 183, 182, 178, 185, 184, 180, 189, 188, 184, 192, 191, 187, 192, 191, 187, 179, 176, 171, 193, 190, 185, 211, 208, 203, 217, 214, 209, 208, 205, 200, 193, 190, 185, 187, 184, 179, 188, 185, 180, 176, 173, 168, 185, 182, 177, 189, 186, 181, 183, 180, 175, 175, 172, 167, 173, 170, 165, 178, 175, 170, 182, 179, 174, 170, 165, 161, 175, 170, 166, 174, 169, 165, 162, 157, 153, 145, 140, 136, 135, 130, 126, 140, 132, 129, 146, 138, 135, 162, 154, 151, 164, 156, 153, 165, 157, 154, 161, 153, 150, 157, 147, 145, 153, 143, 141, 154, 144, 142, 155, 147, 144, 159, 151, 148, 160, 155, 151, 157, 152, 148, 149, 144, 140, 147, 139, 136, 151, 143, 140, 154, 147, 141, 155, 148, 142, 142, 133, 128, 138, 129, 124, 148, 139, 134, 162, 153, 148, 165, 156, 149, 170, 161, 154, 176, 167, 160, 172, 163, 156, 175, 164, 160, 168, 157, 153, 157, 146, 142, 146, 135, 131, 138, 127, 123, 138, 127, 123, 145, 134, 130, 154, 143, 139, 164, 153, 149, 165, 154, 150, 167, 156, 152, 168, 157, 153, 167, 156, 152, 166, 155, 151, 163, 152, 148, 162, 151, 147, 152, 143, 138, 149, 140, 135, 147, 138, 133, 148, 139, 134, 149, 138, 134, 145, 134, 130, 137, 126, 122, 129, 118, 114, 113, 102, 98, 106, 95, 91, 100, 86, 83, 96, 82, 79, 97, 83, 80, 97, 83, 80, 95, 81, 78, 92, 78, 75, 101, 90, 86, 106, 95, 91, 110, 99, 95, 108, 97, 93, 102, 91, 87, 97, 86, 82, 96, 85, 81, 98, 87, 83, 106, 95, 91, 106, 95, 91, 108, 97, 93, 113, 102, 98, 120, 109, 105, 123, 112, 108, 123, 112, 108, 121, 110, 106, 128, 114, 111, 127, 113, 110, 126, 112, 109, 126, 112, 109, 128, 114, 111, 133, 119, 116, 138, 124, 121, 141, 127, 124, 132, 118, 115, 138, 124, 121, 147, 133, 130, 155, 141, 138, 158, 144, 141, 156, 142, 139, 152, 138, 135, 148, 134, 131, 148, 137, 133, 152, 141, 137, 156, 145, 141, 157, 146, 142, 155, 144, 140, 156, 145, 141, 162, 151, 147, 167, 156, 152, 164, 153, 149, 161, 150, 146, 157, 146, 142, 151, 140, 136, 149, 138, 134, 151, 140, 136, 157, 146, 142, 163, 152, 148, 173, 162, 160, 177, 166, 164, 181, 171, 169, 186, 176, 174, 188, 180, 177, 193, 185, 182, 196, 191, 187, 200, 195, 191, 197, 193, 190, 200, 196, 193, 202, 200, 201, 206, 204, 205, 209, 208, 213, 214, 213, 218, 219, 220, 225, 224, 225, 230, 223, 226, 231, 226, 229, 234, 230, 233, 238, 232, 235, 240, 233, 236, 241, 234, 237, 242, 236, 239, 244, 238, 241, 246, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 242, 245, 250, 242, 245, 250, 241, 244, 249, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 237, 240, 245, 236, 239, 244, 235, 238, 243, 232, 235, 240, 229, 232, 237, 225, 228, 233, 222, 225, 230, 222, 223, 227, 219, 219, 219, 217, 216, 214, 213, 212, 210, 211, 210, 208, 211, 210, 208, 211, 210, 208, 211, 207, 204, 209, 205, 202, 209, 205, 202, 206, 202, 199, 203, 199, 196, 202, 198, 195, 203, 198, 194, 202, 197, 193, 199, 194, 190, 196, 191, 187, 195, 190, 187, 194, 189, 186, 194, 189, 186, 196, 191, 188, 198, 193, 190, 198, 193, 190, 196, 191, 188, 194, 189, 186, 188, 183, 180, 187, 182, 179, 185, 180, 177, 183, 178, 175, 179, 174, 171, 175, 170, 167, 172, 167, 164, 170, 165, 162, 170, 165, 162, 176, 171, 168, 181, 176, 173, 182, 177, 174, 178, 173, 170, 175, 170, 167, 175, 170, 167, 178, 173, 170, 174, 169, 166, 174, 169, 166, 173, 168, 165, 173, 168, 165, 173, 168, 165, 172, 167, 164, 172, 167, 164, 171, 166, 162, 169, 164, 160, 169, 164, 158, 171, 166, 160, 176, 171, 165, 183, 178, 172, 187, 182, 176, 190, 183, 177, 189, 182, 176, 172, 165, 159, 176, 169, 163, 180, 173, 167, 181, 174, 168, 179, 170, 165, 175, 166, 161, 172, 163, 158, 170, 163, 157, 160, 155, 151, 164, 161, 156, 171, 166, 162, 174, 169, 165, 175, 167, 164, 173, 165, 162, 171, 163, 160, 171, 163, 160, 147, 142, 138, 137, 132, 128, 123, 120, 115, 126, 123, 118, 146, 145, 140, 170, 169, 164, 178, 179, 173, 177, 178, 172, 144, 146, 141, 141, 143, 138, 141, 143, 138, 151, 153, 148, 169, 170, 165, 187, 188, 183, 201, 200, 196, 206, 205, 201, 205, 201, 198, 205, 201, 198, 206, 202, 199, 206, 202, 199, 203, 202, 198, 201, 200, 196, 198, 197, 193, 197, 196, 191, 191, 193, 180, 188, 190, 176, 187, 189, 176, 189, 191, 178, 189, 190, 182, 189, 188, 183, 195, 194, 190, 203, 202, 200, 202, 201, 199, 203, 201, 202, 199, 197, 198, 195, 191, 192, 192, 188, 189, 195, 191, 192, 194, 190, 189, 189, 187, 188, 198, 199, 203, 187, 191, 194, 187, 188, 190, 196, 198, 195, 201, 202, 197, 196, 195, 190, 194, 191, 186, 196, 193, 188, 197, 194, 189, 195, 192, 187, 179, 175, 172, 170, 166, 165, 180, 176, 177, 188, 186, 191, 190, 187, 194, 195, 193, 198, 199, 197, 198, 196, 195, 193, 201, 197, 196, 204, 200, 199, 197, 191, 191, 184, 178, 178, 179, 175, 174, 184, 180, 177, 194, 195, 190, 191, 193, 188, 190, 192, 187, 195, 197, 194, 203, 203, 201, 208, 206, 207, 209, 205, 206, 207, 203, 202, 195, 194, 190, 193, 194, 189, 204, 203, 199, 210, 209, 205, 201, 197, 196, 195, 191, 190, 196, 192, 193, 192, 188, 189, 196, 192, 193, 192, 188, 189, 192, 188, 187, 197, 193, 192, 197, 196, 192, 191, 190, 186, 182, 183, 178, 179, 180, 175, 176, 175, 173, 184, 182, 183, 195, 193, 194, 209, 207, 208, 212, 210, 211, 197, 195, 196, 195, 193, 194, 214, 212, 213, 199, 197, 198, 209, 207, 208, 202, 200, 201, 192, 190, 191, 200, 198, 199, 212, 210, 211, 213, 211, 212, 211, 209, 210, 228, 228, 228, 235, 235, 235, 240, 240, 240, 239, 239, 239, 239, 239, 239, 242, 242, 242, 243, 243, 243, 241, 241, 241, 243, 243, 243, 243, 243, 243, 244, 244, 244, 244, 244, 244, 244, 244, 244, 245, 245, 245, 245, 245, 245, 245, 245, 245, 247, 245, 246, 247, 245, 246, 247, 245, 246, 248, 246, 247, 248, 246, 247, 248, 246, 247, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 251, 249, 250, 251, 249, 250, 250, 248, 249, 249, 247, 248, 249, 247, 248, 248, 246, 247, 247, 245, 246, 247, 245, 246, 251, 249, 250, 251, 249, 250, 250, 248, 249, 250, 248, 249, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 246, 244, 245, 244, 242, 243, 243, 241, 242, 241, 239, 240, 243, 239, 240, 243, 239, 240, 243, 239, 240, 244, 240, 241, 243, 241, 242, 245, 243, 244, 247, 245, 246, 248, 246, 247, 248, 248, 248, 246, 246, 246, 244, 244, 244, 242, 242, 242, 242, 242, 242, 243, 243, 243, 244, 244, 244, 245, 245, 245, 238, 240, 239, 238, 240, 239, 239, 241, 240, 239, 241, 240, 239, 241, 240, 238, 240, 239, 237, 239, 238, 236, 238, 237, 234, 236, 235, 227, 229, 228, 221, 223, 222, 223, 225, 224, 229, 231, 230, 231, 233, 232, 226, 228, 227, 219, 221, 220, 221, 223, 222, 216, 218, 217, 211, 213, 212, 213, 215, 214, 219, 219, 217, 220, 220, 218, 215, 215, 213, 210, 210, 208, 221, 220, 218, 210, 209, 207, 195, 194, 190, 185, 184, 180, 184, 183, 179, 190, 189, 185, 198, 197, 193, 204, 203, 199, 188, 185, 180, 178, 175, 170, 176, 173, 168, 186, 183, 178, 192, 189, 184, 186, 183, 178, 180, 177, 172, 180, 177, 172, 179, 176, 171, 187, 184, 179, 189, 186, 181, 183, 180, 175, 182, 179, 174, 186, 183, 178, 183, 180, 175, 176, 173, 168, 150, 145, 141, 162, 157, 153, 173, 168, 164, 171, 166, 162, 160, 155, 151, 150, 145, 141, 151, 143, 140, 155, 147, 144, 188, 180, 177, 185, 177, 174, 184, 176, 173, 186, 178, 175, 191, 181, 179, 189, 179, 177, 181, 171, 169, 172, 164, 161, 140, 132, 129, 136, 131, 127, 134, 129, 125, 139, 134, 130, 155, 147, 144, 167, 159, 156, 168, 161, 155, 161, 154, 148, 168, 159, 154, 153, 144, 139, 145, 136, 131, 142, 133, 128, 140, 131, 124, 149, 140, 133, 155, 146, 139, 150, 141, 134, 136, 125, 121, 132, 121, 117, 131, 120, 116, 134, 123, 119, 137, 126, 122, 141, 130, 126, 152, 141, 137, 163, 152, 148, 158, 147, 143, 159, 148, 144, 160, 149, 145, 161, 150, 146, 162, 151, 147, 164, 153, 149, 164, 153, 149, 165, 154, 150, 160, 151, 146, 155, 146, 141, 148, 139, 134, 140, 131, 126, 134, 123, 119, 126, 115, 111, 119, 108, 104, 114, 103, 99, 101, 90, 86, 97, 86, 82, 96, 82, 79, 96, 82, 79, 100, 86, 83, 104, 90, 87, 108, 94, 91, 109, 95, 92, 91, 80, 76, 100, 89, 85, 108, 97, 93, 109, 98, 94, 102, 91, 87, 96, 85, 81, 95, 84, 80, 97, 86, 82, 109, 98, 94, 108, 97, 93, 108, 97, 93, 112, 101, 97, 115, 104, 100, 113, 102, 98, 106, 95, 91, 99, 88, 84, 101, 87, 84, 103, 89, 86, 106, 92, 89, 109, 95, 92, 112, 98, 95, 115, 101, 98, 116, 102, 99, 117, 103, 100, 116, 102, 99, 123, 109, 106, 135, 121, 118, 146, 132, 129, 153, 139, 136, 154, 140, 137, 152, 138, 135, 150, 136, 133, 139, 128, 124, 142, 131, 127, 145, 134, 130, 149, 138, 134, 152, 141, 137, 157, 146, 142, 163, 152, 148, 167, 156, 152, 171, 160, 156, 171, 160, 156, 168, 157, 153, 164, 153, 149, 161, 150, 146, 161, 150, 146, 164, 153, 149, 167, 156, 152, 176, 165, 163, 180, 169, 167, 184, 174, 172, 188, 178, 176, 189, 181, 178, 190, 182, 179, 191, 186, 182, 193, 188, 184, 195, 191, 188, 199, 195, 192, 201, 199, 200, 204, 202, 203, 207, 206, 211, 212, 211, 216, 217, 218, 223, 221, 222, 227, 222, 225, 230, 225, 228, 233, 230, 233, 238, 232, 235, 240, 232, 235, 240, 233, 236, 241, 235, 238, 243, 237, 240, 245, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 242, 245, 250, 242, 245, 250, 241, 244, 249, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 236, 239, 244, 234, 237, 242, 230, 233, 238, 227, 230, 235, 223, 226, 231, 224, 225, 229, 222, 222, 222, 220, 219, 217, 215, 214, 212, 213, 212, 210, 212, 211, 209, 211, 210, 208, 210, 206, 203, 208, 204, 201, 206, 202, 199, 203, 199, 196, 201, 197, 194, 199, 195, 192, 200, 195, 191, 199, 194, 190, 196, 191, 187, 194, 189, 185, 194, 189, 186, 193, 188, 185, 192, 187, 184, 193, 188, 185, 195, 190, 187, 195, 190, 187, 193, 188, 185, 190, 185, 182, 188, 183, 180, 187, 182, 179, 186, 181, 178, 183, 178, 175, 179, 174, 171, 174, 169, 166, 171, 166, 163, 169, 164, 161, 166, 161, 158, 171, 166, 163, 175, 170, 167, 174, 169, 166, 169, 164, 161, 168, 163, 160, 173, 168, 165, 178, 173, 170, 187, 182, 179, 185, 180, 177, 183, 178, 175, 180, 175, 172, 179, 174, 171, 178, 173, 170, 178, 173, 170, 179, 174, 170, 171, 166, 162, 164, 159, 153, 158, 153, 147, 157, 152, 146, 162, 157, 151, 170, 165, 159, 177, 170, 164, 179, 172, 166, 176, 169, 163, 177, 170, 164, 179, 172, 166, 181, 174, 168, 180, 171, 166, 173, 164, 159, 164, 155, 150, 156, 149, 143, 152, 147, 143, 147, 143, 140, 143, 138, 135, 142, 137, 134, 149, 141, 139, 159, 151, 149, 170, 162, 160, 176, 168, 166, 173, 168, 165, 171, 166, 163, 172, 168, 165, 181, 177, 174, 190, 189, 185, 196, 195, 191, 185, 186, 181, 167, 168, 163, 155, 157, 152, 149, 154, 148, 150, 152, 147, 159, 161, 156, 176, 177, 172, 192, 191, 187, 203, 199, 196, 205, 201, 198, 192, 188, 185, 193, 189, 186, 193, 189, 186, 194, 190, 187, 191, 190, 186, 190, 189, 185, 188, 189, 184, 187, 188, 183, 189, 188, 184, 189, 188, 184, 187, 188, 183, 188, 189, 183, 191, 192, 186, 194, 195, 187, 195, 196, 188, 194, 196, 185, 187, 189, 178, 191, 193, 182, 193, 195, 184, 193, 193, 185, 197, 194, 187, 203, 200, 193, 204, 201, 194, 202, 199, 192, 192, 191, 186, 188, 187, 182, 187, 187, 179, 192, 192, 184, 201, 198, 189, 205, 202, 193, 203, 199, 190, 199, 194, 188, 205, 200, 194, 199, 194, 190, 184, 179, 175, 180, 176, 173, 189, 185, 184, 190, 186, 185, 187, 185, 186, 195, 195, 193, 187, 193, 183, 192, 198, 186, 198, 201, 192, 197, 197, 189, 191, 188, 181, 185, 182, 177, 188, 183, 179, 190, 186, 183, 199, 198, 194, 194, 194, 192, 197, 197, 195, 203, 203, 203, 206, 206, 206, 206, 204, 207, 205, 200, 204, 201, 197, 198, 194, 193, 189, 202, 201, 196, 210, 209, 205, 203, 202, 198, 191, 187, 186, 195, 191, 190, 204, 198, 200, 197, 191, 193, 194, 188, 190, 194, 188, 190, 197, 193, 192, 202, 198, 197, 198, 197, 193, 191, 190, 186, 186, 185, 180, 187, 186, 182, 189, 188, 186, 197, 195, 196, 202, 200, 201, 206, 204, 205, 206, 204, 205, 196, 194, 195, 196, 194, 195, 213, 211, 212, 204, 202, 203, 216, 214, 215, 208, 206, 207, 197, 195, 196, 209, 207, 208, 221, 219, 220, 220, 218, 219, 221, 219, 220, 228, 228, 228, 235, 235, 235, 240, 240, 240, 239, 239, 239, 240, 240, 240, 243, 243, 243, 244, 244, 244, 242, 242, 242, 243, 243, 243, 243, 243, 243, 244, 244, 244, 244, 244, 244, 244, 244, 244, 245, 245, 245, 245, 245, 245, 245, 245, 245, 247, 245, 246, 247, 245, 246, 247, 245, 246, 248, 246, 247, 248, 246, 247, 248, 246, 247, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 250, 248, 249, 250, 248, 249, 250, 248, 249, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 248, 246, 247, 251, 249, 250, 251, 249, 250, 250, 248, 249, 250, 248, 249, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 248, 246, 247, 246, 244, 245, 244, 242, 243, 242, 240, 241, 241, 239, 240, 243, 239, 240, 243, 239, 240, 243, 239, 240, 243, 239, 240, 243, 241, 242, 245, 243, 244, 247, 245, 246, 248, 246, 247, 247, 247, 247, 246, 246, 246, 246, 246, 246, 245, 245, 245, 244, 244, 244, 244, 244, 244, 243, 243, 243, 243, 243, 243, 240, 242, 241, 240, 242, 241, 241, 243, 242, 242, 244, 243, 242, 244, 243, 241, 243, 242, 240, 242, 241, 239, 241, 240, 241, 243, 242, 233, 235, 234, 225, 227, 226, 226, 228, 227, 231, 233, 232, 232, 234, 233, 226, 228, 227, 219, 221, 220, 220, 222, 221, 220, 222, 221, 219, 221, 220, 218, 220, 219, 218, 218, 216, 214, 214, 212, 210, 210, 208, 206, 206, 204, 214, 214, 212, 213, 213, 211, 211, 210, 206, 205, 204, 200, 198, 197, 193, 194, 193, 189, 193, 192, 188, 193, 192, 188, 213, 210, 205, 198, 193, 187, 180, 175, 169, 174, 169, 163, 182, 177, 171, 192, 187, 181, 192, 187, 181, 187, 182, 176, 179, 174, 168, 178, 173, 167, 180, 175, 169, 184, 179, 173, 186, 181, 175, 181, 176, 170, 174, 169, 163, 169, 164, 158, 159, 154, 150, 168, 163, 159, 179, 174, 170, 188, 183, 179, 191, 186, 182, 189, 184, 180, 188, 180, 177, 185, 177, 174, 105, 97, 94, 102, 94, 91, 100, 92, 89, 102, 94, 91, 111, 101, 99, 120, 110, 108, 127, 117, 115, 130, 122, 119, 136, 128, 125, 138, 133, 129, 144, 139, 135, 150, 145, 141, 159, 151, 148, 162, 154, 151, 153, 146, 140, 141, 134, 128, 134, 125, 120, 128, 119, 114, 130, 121, 116, 131, 122, 117, 126, 117, 110, 130, 121, 114, 130, 121, 114, 119, 110, 103, 133, 122, 118, 135, 124, 120, 145, 134, 130, 161, 150, 146, 170, 159, 155, 171, 160, 156, 176, 165, 161, 183, 172, 168, 162, 151, 147, 162, 151, 147, 161, 150, 146, 160, 149, 145, 158, 147, 143, 155, 144, 140, 153, 142, 138, 151, 140, 136, 149, 140, 135, 146, 137, 132, 139, 130, 125, 128, 119, 114, 117, 106, 102, 107, 96, 92, 101, 90, 86, 98, 87, 83, 95, 84, 80, 93, 82, 78, 92, 78, 75, 87, 73, 70, 83, 69, 66, 81, 67, 64, 83, 69, 66, 85, 71, 68, 92, 81, 77, 95, 84, 80, 95, 84, 80, 88, 77, 73, 79, 68, 64, 78, 67, 63, 86, 75, 71, 94, 83, 79, 112, 101, 97, 109, 98, 94, 108, 97, 93, 112, 101, 97, 116, 105, 101, 114, 103, 99, 106, 95, 91, 99, 88, 84, 77, 63, 60, 82, 68, 65, 90, 76, 73, 98, 84, 81, 106, 92, 89, 111, 97, 94, 114, 100, 97, 115, 101, 98, 92, 78, 75, 99, 85, 82, 110, 96, 93, 124, 110, 107, 136, 122, 119, 146, 132, 129, 152, 138, 135, 155, 141, 138, 144, 133, 129, 143, 132, 128, 144, 133, 129, 147, 136, 132, 154, 143, 139, 160, 149, 145, 164, 153, 149, 166, 155, 151, 169, 158, 154, 171, 160, 156, 172, 161, 157, 170, 159, 155, 166, 155, 151, 163, 152, 148, 162, 151, 147, 163, 152, 148, 162, 151, 149, 168, 157, 155, 175, 165, 163, 182, 172, 170, 185, 177, 174, 188, 180, 177, 190, 185, 181, 192, 187, 183, 196, 192, 189, 199, 195, 192, 201, 199, 200, 205, 203, 204, 207, 206, 211, 211, 210, 215, 216, 217, 222, 221, 222, 227, 222, 225, 230, 226, 229, 234, 230, 233, 238, 232, 235, 240, 232, 235, 240, 233, 236, 241, 235, 238, 243, 238, 241, 246, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 242, 245, 250, 242, 245, 250, 241, 244, 249, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 237, 240, 245, 235, 238, 243, 231, 234, 239, 228, 231, 236, 224, 227, 232, 225, 226, 230, 225, 225, 225, 222, 221, 219, 217, 215, 216, 214, 213, 211, 212, 211, 209, 211, 210, 208, 210, 206, 205, 207, 203, 200, 203, 199, 196, 201, 197, 194, 198, 194, 191, 197, 193, 190, 198, 193, 189, 197, 192, 188, 194, 189, 185, 191, 186, 182, 189, 184, 181, 188, 183, 180, 187, 182, 179, 188, 183, 180, 190, 185, 182, 189, 184, 181, 186, 181, 178, 184, 179, 176, 185, 180, 177, 185, 180, 177, 185, 180, 177, 184, 179, 176, 182, 177, 174, 180, 175, 172, 178, 173, 170, 176, 171, 168, 166, 161, 158, 170, 165, 162, 171, 166, 163, 167, 162, 159, 160, 155, 152, 159, 154, 151, 165, 160, 157, 172, 167, 164, 180, 175, 172, 182, 177, 174, 184, 179, 176, 185, 180, 177, 183, 178, 175, 178, 173, 170, 173, 168, 165, 169, 164, 161, 171, 166, 162, 164, 159, 153, 157, 152, 146, 155, 150, 144, 161, 156, 150, 169, 164, 158, 175, 168, 162, 177, 170, 164, 172, 165, 159, 161, 154, 148, 148, 141, 135, 142, 135, 129, 145, 136, 131, 151, 142, 137, 155, 146, 141, 155, 147, 144, 153, 148, 144, 148, 143, 139, 144, 139, 136, 147, 142, 138, 158, 150, 148, 170, 162, 159, 180, 172, 170, 186, 178, 175, 174, 169, 166, 177, 172, 168, 179, 175, 172, 175, 172, 167, 170, 166, 163, 175, 174, 169, 185, 184, 180, 185, 186, 181, 177, 179, 174, 174, 176, 171, 173, 175, 170, 180, 181, 176, 187, 188, 183, 190, 189, 185, 185, 184, 180, 179, 178, 174, 180, 176, 173, 179, 178, 174, 182, 178, 175, 181, 180, 175, 182, 181, 177, 182, 181, 176, 180, 181, 176, 180, 181, 176, 185, 183, 184, 191, 189, 190, 195, 194, 192, 195, 196, 191, 198, 199, 194, 195, 198, 191, 183, 184, 176, 168, 171, 160, 191, 193, 180, 197, 199, 186, 200, 202, 189, 200, 202, 189, 203, 203, 193, 208, 205, 196, 206, 203, 194, 202, 199, 190, 205, 202, 193, 202, 202, 192, 202, 199, 190, 203, 200, 191, 209, 206, 197, 209, 206, 197, 197, 192, 186, 180, 175, 169, 199, 194, 190, 194, 189, 185, 185, 182, 177, 189, 185, 182, 197, 193, 190, 190, 189, 185, 191, 190, 188, 205, 206, 201, 198, 204, 192, 198, 204, 190, 194, 197, 186, 190, 192, 181, 191, 191, 183, 197, 194, 187, 195, 192, 187, 188, 184, 181, 197, 196, 192, 195, 194, 192, 200, 200, 200, 207, 207, 207, 203, 201, 202, 197, 195, 198, 197, 192, 196, 192, 190, 191, 201, 200, 196, 209, 208, 204, 207, 206, 202, 188, 187, 183, 183, 182, 180, 206, 202, 201, 212, 208, 209, 191, 187, 188, 200, 196, 197, 201, 197, 198, 204, 200, 199, 202, 201, 199, 195, 194, 190, 191, 190, 186, 198, 197, 193, 209, 208, 204, 215, 214, 212, 211, 211, 211, 201, 199, 200, 198, 198, 198, 206, 204, 205, 204, 204, 204, 202, 200, 201, 208, 208, 208, 209, 207, 208, 216, 216, 216, 216, 214, 215, 214, 214, 214, 213, 211, 212, 199, 199, 199, 207, 205, 206, 237, 237, 237, 228, 228, 228, 236, 236, 236, 240, 240, 240, 240, 240, 240, 240, 240, 240, 243, 243, 243, 244, 244, 244, 242, 242, 242, 243, 243, 243, 243, 243, 243, 244, 244, 244, 244, 244, 244, 244, 244, 244, 245, 245, 245, 245, 245, 245, 245, 245, 245, 247, 245, 246, 247, 245, 246, 247, 245, 246, 248, 246, 247, 248, 246, 247, 248, 246, 247, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 250, 248, 249, 250, 248, 249, 250, 248, 249, 251, 249, 250, 251, 249, 250, 250, 248, 249, 250, 248, 249, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 248, 246, 247, 246, 244, 245, 244, 242, 243, 242, 240, 241, 240, 238, 239, 242, 238, 239, 242, 238, 239, 242, 238, 239, 243, 239, 240, 243, 241, 242, 245, 243, 244, 247, 245, 246, 249, 247, 248, 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247, 247, 246, 246, 246, 245, 245, 245, 243, 243, 243, 241, 241, 241, 242, 244, 243, 243, 245, 244, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 243, 245, 244, 242, 244, 243, 240, 242, 241, 241, 243, 242, 239, 241, 240, 234, 236, 235, 227, 229, 228, 223, 225, 224, 224, 226, 225, 226, 228, 227, 217, 219, 218, 222, 224, 223, 227, 229, 228, 224, 226, 225, 216, 216, 214, 206, 206, 204, 202, 202, 200, 202, 202, 200, 208, 208, 206, 210, 210, 208, 211, 211, 209, 207, 208, 203, 202, 201, 199, 198, 199, 194, 201, 200, 198, 204, 203, 199, 201, 198, 193, 209, 206, 201, 206, 201, 197, 192, 187, 183, 189, 184, 180, 196, 191, 187, 189, 184, 180, 172, 167, 161, 186, 181, 177, 179, 174, 168, 182, 177, 173, 190, 185, 179, 181, 176, 170, 158, 153, 147, 148, 143, 137, 154, 149, 145, 167, 162, 158, 162, 157, 153, 158, 153, 149, 161, 156, 152, 165, 160, 156, 163, 158, 154, 153, 148, 144, 145, 137, 134, 139, 131, 128, 140, 132, 129, 133, 125, 122, 119, 111, 108, 108, 100, 97, 114, 104, 102, 137, 127, 125, 157, 149, 146, 162, 154, 151, 167, 162, 156, 169, 161, 158, 156, 149, 143, 140, 132, 129, 133, 126, 120, 133, 126, 120, 134, 127, 121, 145, 136, 131, 154, 145, 140, 170, 161, 156, 173, 164, 159, 163, 154, 147, 164, 155, 148, 170, 161, 154, 165, 156, 149, 155, 146, 141, 157, 148, 143, 170, 159, 155, 184, 175, 170, 186, 175, 171, 173, 164, 159, 164, 153, 149, 164, 153, 149, 165, 154, 150, 167, 156, 152, 168, 157, 153, 167, 156, 152, 164, 153, 149, 159, 148, 144, 154, 143, 139, 151, 140, 136, 136, 125, 121, 138, 129, 124, 139, 128, 124, 132, 121, 117, 119, 108, 104, 106, 95, 91, 99, 88, 84, 97, 86, 82, 94, 83, 79, 96, 85, 81, 99, 85, 82, 97, 83, 80, 93, 79, 76, 92, 78, 75, 97, 83, 80, 102, 88, 85, 101, 90, 86, 94, 83, 79, 79, 68, 64, 59, 48, 44, 47, 36, 32, 52, 41, 37, 71, 60, 56, 89, 78, 74, 75, 64, 60, 73, 62, 58, 76, 65, 61, 86, 75, 71, 99, 88, 84, 106, 95, 91, 105, 94, 90, 102, 91, 87, 99, 85, 82, 101, 87, 84, 106, 92, 89, 113, 99, 96, 121, 107, 104, 129, 115, 112, 135, 121, 118, 138, 124, 121, 133, 119, 116, 133, 119, 116, 134, 120, 117, 136, 122, 119, 140, 126, 123, 145, 131, 128, 150, 136, 133, 153, 139, 136, 161, 147, 144, 154, 143, 139, 152, 138, 135, 152, 141, 137, 158, 147, 143, 163, 152, 148, 164, 153, 149, 162, 151, 147, 160, 149, 145, 164, 153, 149, 168, 157, 153, 167, 156, 152, 163, 152, 148, 158, 147, 143, 154, 143, 139, 153, 142, 138, 144, 133, 129, 152, 141, 137, 163, 153, 151, 175, 166, 161, 183, 173, 171, 190, 183, 177, 195, 187, 184, 197, 192, 188, 199, 194, 190, 201, 197, 194, 203, 202, 200, 206, 204, 205, 208, 208, 210, 212, 212, 214, 217, 218, 222, 221, 222, 226, 222, 225, 230, 226, 229, 234, 230, 233, 238, 232, 235, 240, 233, 236, 241, 233, 236, 241, 236, 239, 244, 238, 241, 246, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 243, 247, 250, 242, 246, 249, 242, 246, 249, 242, 246, 249, 241, 245, 248, 241, 245, 248, 241, 245, 248, 240, 244, 247, 241, 245, 248, 241, 245, 248, 240, 244, 247, 238, 242, 245, 236, 240, 243, 233, 237, 240, 230, 234, 237, 231, 232, 236, 223, 223, 225, 220, 220, 220, 215, 215, 217, 211, 211, 211, 209, 209, 209, 209, 209, 207, 211, 210, 208, 212, 211, 209, 209, 205, 204, 207, 203, 202, 204, 199, 196, 202, 197, 194, 201, 196, 192, 199, 194, 190, 198, 190, 187, 195, 187, 184, 192, 187, 184, 190, 185, 182, 189, 184, 181, 189, 184, 181, 191, 186, 183, 192, 187, 184, 190, 185, 182, 188, 183, 180, 190, 185, 182, 189, 184, 181, 186, 181, 178, 183, 178, 175, 181, 176, 173, 179, 174, 171, 178, 173, 170, 178, 173, 170, 173, 168, 165, 171, 166, 163, 166, 161, 158, 162, 157, 154, 163, 158, 155, 170, 165, 162, 182, 177, 174, 190, 185, 182, 189, 184, 181, 185, 180, 177, 180, 175, 172, 176, 171, 168, 174, 169, 166, 172, 167, 164, 170, 165, 162, 167, 162, 159, 173, 165, 162, 176, 168, 165, 175, 167, 164, 172, 164, 161, 172, 164, 161, 175, 167, 164, 175, 167, 164, 172, 164, 161, 175, 167, 164, 156, 148, 145, 134, 126, 123, 125, 117, 114, 133, 125, 122, 146, 138, 135, 154, 146, 143, 156, 148, 145, 167, 159, 156, 178, 171, 165, 189, 181, 178, 190, 183, 177, 182, 174, 171, 174, 167, 161, 172, 167, 163, 176, 171, 165, 165, 160, 156, 158, 153, 147, 155, 150, 146, 144, 141, 134, 130, 127, 122, 136, 133, 126, 156, 153, 148, 163, 162, 157, 179, 180, 175, 180, 181, 176, 178, 179, 174, 172, 173, 168, 165, 166, 160, 163, 164, 158, 168, 169, 163, 173, 174, 168, 176, 175, 170, 175, 176, 170, 172, 171, 166, 164, 165, 157, 159, 160, 154, 164, 165, 157, 177, 178, 172, 189, 190, 184, 177, 176, 172, 187, 183, 182, 189, 185, 182, 181, 180, 176, 175, 174, 170, 177, 178, 173, 185, 184, 179, 188, 189, 183, 204, 203, 198, 201, 202, 196, 201, 202, 196, 200, 201, 195, 196, 197, 191, 196, 195, 190, 204, 203, 198, 215, 214, 209, 193, 192, 188, 191, 192, 187, 193, 192, 188, 198, 197, 193, 201, 200, 196, 198, 197, 193, 188, 187, 183, 179, 178, 174, 204, 203, 199, 202, 201, 197, 197, 196, 192, 190, 189, 187, 187, 186, 184, 190, 190, 188, 201, 201, 199, 210, 211, 206, 196, 197, 191, 187, 188, 180, 186, 187, 179, 196, 196, 188, 201, 200, 195, 194, 193, 188, 188, 187, 183, 188, 187, 183, 197, 196, 192, 195, 194, 190, 201, 200, 198, 210, 209, 207, 209, 208, 206, 198, 196, 197, 192, 190, 191, 195, 194, 192, 209, 208, 206, 198, 198, 196, 194, 194, 192, 200, 200, 198, 203, 203, 201, 200, 199, 197, 198, 197, 195, 200, 199, 197, 195, 194, 192, 203, 202, 200, 207, 206, 204, 200, 200, 198, 194, 194, 192, 197, 197, 195, 205, 205, 203, 210, 210, 208, 217, 217, 217, 193, 195, 194, 193, 193, 193, 214, 216, 215, 216, 216, 216, 196, 198, 197, 197, 197, 197, 218, 220, 219, 210, 210, 210, 219, 221, 220, 218, 218, 218, 217, 219, 218, 225, 225, 225, 218, 220, 219, 216, 216, 216, 231, 231, 231, 235, 235, 235, 237, 235, 236, 239, 237, 238, 241, 239, 240, 242, 240, 241, 243, 241, 242, 243, 241, 242, 243, 241, 242, 244, 242, 243, 244, 242, 243, 244, 242, 243, 245, 243, 244, 245, 243, 244, 246, 244, 245, 246, 244, 245, 246, 244, 245, 246, 244, 245, 247, 245, 246, 247, 245, 246, 247, 245, 246, 248, 246, 247, 248, 246, 247, 248, 246, 247, 249, 247, 248, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 250, 248, 249, 247, 246, 244, 247, 246, 244, 248, 247, 245, 248, 247, 245, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 250, 249, 247, 250, 249, 247, 249, 248, 246, 247, 246, 244, 247, 246, 244, 249, 248, 246, 252, 251, 249, 251, 251, 251, 249, 249, 249, 247, 247, 247, 248, 248, 248, 250, 250, 250, 251, 251, 251, 249, 249, 249, 248, 248, 248, 249, 249, 249, 249, 249, 249, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 249, 247, 247, 247, 246, 246, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 247, 245, 248, 247, 245, 248, 247, 245, 247, 246, 244, 246, 245, 243, 245, 244, 242, 246, 242, 241, 245, 241, 240, 244, 240, 239, 243, 239, 238, 240, 238, 239, 240, 238, 239, 241, 239, 240, 241, 239, 240, 242, 240, 241, 243, 241, 242, 243, 243, 243, 243, 243, 243, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 243, 243, 243, 243, 243, 243, 243, 243, 243, 244, 244, 244, 243, 243, 243, 242, 242, 242, 240, 240, 240, 237, 237, 237, 234, 234, 234, 231, 231, 231, 229, 229, 229, 228, 228, 228, 227, 229, 228, 223, 225, 224, 219, 221, 220, 217, 219, 218, 217, 219, 218, 217, 219, 218, 217, 219, 218, 216, 218, 217, 193, 195, 194, 200, 202, 201, 209, 211, 210, 212, 214, 211, 210, 210, 210, 208, 210, 207, 211, 211, 211, 214, 214, 212, 201, 200, 198, 202, 201, 197, 195, 191, 188, 187, 183, 180, 189, 185, 182, 187, 183, 180, 186, 182, 179, 194, 191, 186, 191, 187, 184, 191, 188, 183, 189, 184, 181, 184, 179, 175, 188, 183, 179, 198, 193, 189, 206, 201, 197, 208, 203, 199, 195, 191, 188, 192, 188, 185, 189, 185, 182, 185, 181, 178, 178, 174, 171, 170, 166, 163, 171, 167, 164, 178, 173, 170, 194, 189, 185, 177, 172, 168, 183, 178, 174, 189, 184, 180, 177, 172, 168, 183, 175, 172, 195, 188, 182, 189, 182, 176, 183, 176, 170, 160, 153, 145, 149, 140, 135, 140, 131, 124, 127, 118, 113, 136, 127, 120, 159, 150, 143, 167, 158, 151, 168, 159, 152, 172, 163, 156, 169, 160, 153, 156, 147, 140, 146, 137, 130, 145, 136, 129, 150, 141, 134, 154, 145, 138, 164, 155, 150, 163, 155, 152, 162, 152, 150, 159, 151, 148, 159, 150, 145, 161, 154, 148, 168, 159, 154, 173, 164, 159, 162, 153, 146, 161, 152, 145, 160, 151, 144, 160, 151, 144, 159, 150, 143, 154, 145, 138, 148, 137, 131, 143, 132, 126, 136, 125, 121, 141, 130, 126, 140, 126, 123, 128, 114, 111, 121, 107, 104, 119, 105, 102, 112, 98, 95, 101, 87, 84, 115, 101, 98, 111, 97, 94, 106, 92, 89, 103, 89, 86, 103, 89, 86, 103, 89, 86, 101, 87, 84, 100, 86, 83, 101, 90, 88, 93, 82, 80, 95, 84, 82, 103, 92, 90, 95, 84, 82, 77, 66, 64, 82, 71, 69, 101, 90, 88, 102, 91, 89, 99, 88, 86, 97, 86, 84, 98, 87, 85, 103, 92, 90, 112, 101, 99, 121, 110, 108, 127, 116, 112, 125, 111, 108, 130, 117, 111, 134, 121, 115, 133, 120, 114, 129, 116, 110, 126, 113, 107, 127, 114, 108, 130, 117, 111, 136, 123, 117, 138, 125, 119, 137, 124, 118, 133, 120, 114, 134, 121, 115, 140, 127, 121, 142, 129, 123, 141, 128, 122, 151, 138, 132, 155, 142, 136, 159, 144, 139, 158, 145, 139, 156, 143, 137, 157, 144, 138, 162, 149, 143, 167, 154, 148, 179, 166, 160, 181, 168, 162, 181, 170, 164, 180, 169, 163, 176, 165, 159, 173, 162, 156, 171, 160, 154, 170, 159, 153, 175, 164, 158, 177, 166, 160, 181, 170, 166, 182, 173, 166, 185, 176, 171, 188, 181, 173, 193, 186, 180, 195, 190, 184, 197, 192, 186, 199, 196, 191, 201, 200, 195, 204, 203, 199, 206, 206, 204, 211, 211, 211, 217, 217, 219, 220, 221, 223, 222, 226, 229, 224, 227, 232, 227, 230, 235, 231, 234, 239, 235, 238, 243, 237, 240, 245, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 247, 251, 254, 247, 251, 254, 247, 251, 254, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 240, 244, 247, 239, 243, 246, 236, 240, 243, 233, 237, 240, 231, 235, 238, 229, 233, 236, 223, 224, 226, 221, 221, 223, 216, 216, 218, 211, 211, 213, 208, 208, 208, 207, 207, 207, 209, 208, 206, 210, 209, 207, 210, 206, 205, 207, 203, 202, 204, 199, 196, 203, 198, 195, 202, 197, 193, 200, 195, 191, 199, 191, 188, 196, 188, 185, 190, 185, 182, 188, 183, 180, 187, 182, 179, 188, 183, 180, 191, 186, 183, 192, 187, 184, 191, 186, 183, 190, 185, 182, 187, 182, 179, 185, 180, 177, 183, 178, 175, 180, 175, 172, 177, 172, 169, 176, 171, 168, 175, 170, 167, 175, 170, 167, 179, 174, 171, 177, 172, 169, 174, 169, 166, 169, 164, 161, 166, 161, 158, 166, 161, 158, 169, 164, 161, 171, 166, 163, 172, 167, 164, 175, 170, 167, 180, 175, 172, 184, 179, 176, 183, 178, 175, 177, 172, 169, 167, 162, 159, 160, 155, 152, 165, 157, 154, 169, 161, 158, 170, 162, 159, 167, 159, 156, 168, 160, 157, 171, 163, 160, 170, 162, 159, 167, 159, 156, 153, 145, 142, 151, 143, 140, 150, 142, 139, 153, 145, 142, 160, 152, 149, 167, 159, 156, 171, 163, 160, 173, 165, 162, 171, 164, 158, 159, 152, 146, 148, 141, 135, 150, 143, 137, 161, 154, 148, 173, 166, 160, 175, 170, 164, 173, 168, 162, 162, 157, 151, 155, 150, 144, 153, 148, 142, 144, 139, 133, 131, 128, 121, 139, 136, 129, 158, 155, 148, 167, 164, 157, 171, 170, 166, 170, 171, 166, 171, 170, 166, 167, 168, 163, 167, 166, 161, 167, 168, 162, 172, 171, 166, 176, 177, 171, 167, 166, 161, 163, 164, 158, 157, 157, 149, 148, 149, 141, 147, 147, 139, 153, 154, 146, 166, 166, 158, 176, 176, 168, 181, 177, 174, 186, 182, 179, 185, 181, 178, 178, 174, 171, 174, 173, 169, 183, 182, 178, 195, 194, 190, 203, 202, 198, 181, 180, 176, 182, 181, 177, 191, 192, 187, 204, 205, 200, 208, 209, 204, 200, 201, 196, 187, 188, 183, 180, 181, 176, 169, 169, 167, 173, 173, 171, 180, 180, 178, 186, 186, 184, 190, 190, 188, 194, 194, 192, 197, 197, 195, 198, 198, 196, 193, 193, 191, 193, 193, 191, 191, 191, 189, 187, 187, 185, 183, 183, 181, 184, 184, 182, 190, 190, 188, 195, 196, 191, 198, 197, 192, 194, 193, 188, 195, 194, 189, 199, 198, 193, 198, 197, 193, 192, 191, 187, 192, 191, 187, 198, 197, 193, 202, 201, 197, 196, 195, 191, 196, 195, 193, 203, 202, 200, 206, 205, 203, 200, 199, 197, 196, 195, 193, 197, 196, 194, 196, 196, 194, 208, 208, 206, 208, 208, 206, 194, 194, 192, 194, 194, 192, 207, 207, 205, 210, 210, 208, 200, 200, 198, 199, 199, 197, 202, 202, 200, 202, 202, 200, 198, 198, 196, 198, 198, 196, 204, 204, 202, 207, 207, 205, 206, 206, 204, 204, 206, 205, 201, 203, 202, 204, 206, 205, 209, 211, 210, 206, 208, 207, 200, 202, 201, 205, 207, 206, 216, 218, 217, 219, 221, 220, 220, 222, 221, 210, 212, 211, 204, 206, 205, 209, 211, 210, 208, 210, 209, 214, 216, 215, 233, 235, 234, 237, 235, 236, 238, 236, 237, 239, 237, 238, 241, 239, 240, 242, 240, 241, 243, 241, 242, 243, 241, 242, 242, 240, 241, 244, 242, 243, 244, 242, 243, 244, 242, 243, 245, 243, 244, 245, 243, 244, 245, 243, 244, 246, 244, 245, 246, 244, 245, 246, 244, 245, 246, 244, 245, 247, 245, 246, 247, 245, 246, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 247, 246, 244, 247, 246, 244, 248, 247, 245, 248, 247, 245, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 250, 249, 247, 250, 249, 247, 249, 248, 246, 247, 246, 244, 247, 246, 244, 249, 248, 246, 252, 251, 249, 250, 250, 250, 249, 249, 249, 247, 247, 247, 248, 248, 248, 250, 250, 250, 251, 251, 251, 249, 249, 249, 247, 247, 247, 249, 249, 249, 249, 249, 249, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 249, 247, 247, 247, 246, 246, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 247, 245, 248, 247, 245, 247, 246, 244, 247, 246, 244, 246, 245, 243, 245, 244, 242, 246, 242, 241, 244, 240, 239, 244, 240, 239, 243, 239, 238, 240, 238, 239, 240, 238, 239, 241, 239, 240, 241, 239, 240, 242, 240, 241, 243, 241, 242, 243, 243, 243, 243, 243, 243, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 242, 242, 242, 242, 242, 242, 242, 242, 242, 243, 243, 243, 243, 243, 243, 243, 243, 243, 244, 244, 244, 244, 244, 244, 243, 243, 243, 242, 242, 242, 240, 240, 240, 238, 238, 238, 235, 235, 235, 233, 233, 233, 231, 231, 231, 230, 230, 230, 220, 222, 221, 217, 219, 218, 215, 217, 216, 216, 218, 217, 220, 222, 221, 224, 226, 225, 226, 228, 227, 226, 228, 227, 221, 223, 222, 215, 217, 216, 207, 209, 208, 200, 202, 201, 197, 199, 198, 196, 198, 197, 196, 198, 197, 197, 199, 198, 197, 196, 194, 196, 195, 193, 186, 185, 183, 181, 180, 178, 191, 187, 186, 192, 188, 187, 190, 186, 183, 195, 191, 188, 193, 189, 186, 192, 188, 185, 188, 183, 180, 181, 176, 173, 182, 177, 173, 190, 185, 181, 197, 192, 188, 197, 194, 189, 189, 185, 184, 176, 175, 173, 172, 168, 165, 178, 174, 171, 187, 183, 180, 189, 185, 182, 186, 182, 179, 185, 181, 178, 172, 167, 163, 174, 169, 165, 192, 187, 183, 207, 202, 198, 201, 196, 192, 188, 183, 179, 178, 171, 165, 166, 159, 153, 156, 147, 140, 123, 114, 107, 102, 93, 86, 98, 89, 82, 102, 93, 86, 122, 113, 106, 144, 135, 128, 147, 138, 131, 132, 123, 116, 134, 125, 118, 131, 122, 115, 126, 117, 110, 128, 119, 112, 139, 130, 123, 154, 145, 138, 163, 154, 147, 149, 141, 138, 153, 145, 142, 158, 150, 147, 162, 154, 151, 163, 156, 150, 164, 157, 151, 165, 158, 152, 166, 159, 153, 166, 157, 150, 165, 156, 149, 164, 155, 148, 163, 154, 147, 160, 151, 144, 154, 145, 138, 146, 135, 129, 139, 128, 122, 150, 136, 133, 149, 135, 132, 138, 124, 121, 120, 106, 103, 110, 96, 93, 109, 95, 92, 106, 92, 89, 99, 85, 82, 102, 88, 85, 98, 84, 81, 95, 81, 78, 96, 82, 79, 101, 87, 84, 109, 95, 92, 115, 101, 98, 118, 104, 101, 108, 97, 95, 114, 103, 101, 128, 117, 115, 134, 123, 121, 121, 110, 108, 102, 91, 89, 104, 93, 91, 118, 107, 105, 122, 111, 109, 122, 111, 109, 122, 111, 109, 123, 112, 110, 123, 112, 110, 124, 113, 111, 125, 114, 112, 126, 115, 111, 130, 116, 113, 131, 118, 112, 132, 119, 113, 129, 116, 110, 125, 112, 106, 124, 111, 105, 127, 114, 108, 131, 118, 112, 133, 120, 114, 136, 123, 117, 137, 124, 118, 135, 122, 116, 137, 124, 118, 143, 130, 124, 146, 133, 127, 144, 131, 125, 158, 143, 138, 159, 144, 139, 160, 145, 140, 159, 144, 139, 157, 144, 138, 157, 144, 138, 159, 146, 140, 162, 149, 143, 165, 152, 146, 169, 156, 150, 172, 161, 155, 175, 164, 158, 175, 164, 158, 176, 165, 159, 177, 166, 160, 179, 168, 162, 175, 164, 158, 178, 167, 161, 181, 170, 164, 183, 172, 166, 184, 175, 168, 187, 178, 171, 191, 184, 176, 195, 188, 180, 196, 191, 185, 198, 195, 188, 202, 199, 194, 203, 202, 198, 205, 205, 203, 210, 210, 208, 216, 216, 216, 219, 220, 222, 224, 225, 229, 224, 227, 232, 227, 230, 235, 231, 234, 239, 234, 237, 242, 236, 239, 244, 237, 240, 245, 238, 241, 246, 238, 241, 246, 239, 242, 247, 240, 243, 248, 241, 244, 249, 242, 245, 250, 242, 245, 250, 241, 244, 249, 240, 243, 248, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 247, 251, 254, 247, 251, 254, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 242, 246, 249, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 240, 244, 247, 239, 243, 246, 237, 241, 244, 234, 238, 241, 232, 236, 239, 230, 234, 237, 227, 228, 230, 224, 225, 227, 220, 220, 222, 214, 214, 216, 210, 210, 210, 207, 207, 207, 207, 205, 206, 207, 205, 206, 207, 203, 202, 204, 200, 199, 202, 197, 194, 200, 195, 192, 200, 195, 191, 198, 193, 189, 197, 189, 186, 194, 186, 183, 189, 184, 181, 187, 182, 179, 186, 181, 178, 188, 183, 180, 190, 185, 182, 192, 187, 184, 191, 186, 183, 189, 184, 181, 186, 181, 178, 185, 180, 177, 182, 177, 174, 180, 175, 172, 178, 173, 170, 176, 171, 168, 176, 171, 168, 176, 171, 168, 178, 173, 170, 179, 174, 171, 181, 176, 173, 181, 176, 173, 180, 175, 172, 178, 173, 170, 175, 170, 167, 174, 169, 166, 173, 168, 165, 171, 166, 163, 168, 163, 160, 166, 161, 158, 166, 161, 158, 167, 162, 159, 169, 164, 161, 170, 165, 162, 166, 158, 155, 172, 164, 161, 175, 167, 164, 174, 166, 163, 175, 167, 164, 178, 170, 167, 177, 169, 166, 173, 165, 162, 173, 165, 162, 179, 171, 168, 184, 176, 173, 184, 176, 173, 177, 169, 166, 170, 162, 159, 166, 158, 155, 165, 157, 154, 167, 160, 154, 160, 153, 147, 157, 150, 144, 166, 159, 153, 178, 171, 165, 177, 170, 164, 158, 153, 147, 141, 136, 130, 134, 129, 123, 140, 135, 129, 158, 153, 147, 170, 165, 159, 166, 163, 156, 170, 167, 160, 176, 173, 166, 174, 171, 164, 171, 167, 164, 168, 167, 163, 169, 165, 162, 166, 165, 161, 168, 165, 160, 167, 166, 161, 171, 168, 163, 170, 169, 164, 187, 184, 179, 174, 173, 168, 161, 158, 151, 151, 151, 143, 155, 152, 145, 165, 165, 157, 182, 179, 172, 191, 188, 181, 191, 187, 184, 180, 176, 173, 167, 163, 160, 167, 163, 160, 183, 179, 176, 196, 192, 189, 192, 191, 187, 181, 180, 176, 185, 184, 180, 189, 188, 184, 193, 194, 189, 194, 195, 190, 185, 186, 181, 174, 175, 170, 172, 173, 168, 177, 178, 173, 187, 188, 183, 190, 191, 186, 192, 193, 188, 188, 189, 184, 181, 182, 177, 179, 180, 175, 184, 185, 180, 190, 191, 186, 183, 184, 179, 186, 187, 182, 190, 191, 186, 192, 193, 188, 193, 194, 189, 195, 196, 191, 198, 199, 194, 201, 202, 197, 199, 198, 193, 199, 198, 193, 200, 199, 194, 199, 198, 193, 193, 192, 188, 189, 188, 184, 196, 195, 191, 207, 206, 202, 199, 198, 194, 193, 192, 188, 193, 192, 190, 201, 200, 198, 205, 204, 202, 201, 200, 198, 196, 195, 193, 194, 193, 191, 199, 199, 197, 208, 208, 206, 206, 206, 204, 196, 196, 194, 199, 199, 197, 214, 214, 212, 214, 214, 212, 200, 200, 198, 201, 201, 199, 201, 201, 199, 198, 198, 196, 196, 196, 194, 201, 201, 199, 208, 208, 206, 207, 207, 205, 202, 202, 200, 191, 193, 192, 207, 209, 208, 214, 216, 215, 203, 205, 204, 197, 199, 198, 206, 208, 207, 214, 216, 215, 213, 215, 214, 225, 227, 226, 222, 224, 223, 211, 213, 212, 205, 207, 206, 208, 210, 209, 208, 210, 209, 216, 218, 217, 232, 234, 233, 238, 236, 237, 239, 237, 238, 240, 238, 239, 242, 240, 241, 242, 240, 241, 243, 241, 242, 242, 240, 241, 242, 240, 241, 244, 242, 243, 244, 242, 243, 244, 242, 243, 244, 242, 243, 245, 243, 244, 245, 243, 244, 245, 243, 244, 246, 244, 245, 246, 244, 245, 246, 244, 245, 247, 245, 246, 247, 245, 246, 247, 245, 246, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 247, 246, 244, 247, 246, 244, 248, 247, 245, 248, 247, 245, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 250, 249, 247, 250, 249, 247, 249, 248, 246, 247, 246, 244, 247, 246, 244, 249, 248, 246, 252, 251, 249, 250, 250, 250, 248, 248, 248, 247, 247, 247, 248, 248, 248, 250, 250, 250, 250, 250, 250, 249, 249, 249, 247, 247, 247, 249, 249, 249, 249, 249, 249, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 249, 247, 247, 247, 246, 246, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 247, 245, 248, 247, 245, 247, 246, 244, 247, 246, 244, 248, 244, 243, 247, 243, 242, 245, 241, 240, 244, 240, 239, 243, 239, 238, 243, 239, 238, 239, 237, 238, 240, 238, 239, 240, 238, 239, 241, 239, 240, 242, 240, 241, 243, 241, 242, 243, 241, 242, 244, 242, 243, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 242, 242, 242, 242, 242, 242, 242, 242, 242, 243, 243, 243, 243, 243, 243, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 243, 243, 243, 241, 241, 241, 239, 239, 239, 237, 237, 237, 235, 235, 235, 233, 233, 233, 233, 233, 233, 226, 228, 227, 223, 225, 224, 219, 221, 220, 219, 221, 220, 220, 222, 221, 222, 224, 223, 222, 224, 223, 222, 224, 223, 227, 229, 228, 221, 223, 222, 216, 218, 217, 214, 216, 215, 213, 215, 214, 207, 209, 208, 195, 197, 196, 185, 187, 186, 187, 186, 184, 194, 193, 191, 195, 194, 192, 201, 200, 198, 215, 211, 210, 212, 208, 207, 201, 197, 194, 200, 196, 193, 196, 192, 189, 197, 193, 190, 193, 188, 185, 187, 182, 179, 188, 183, 179, 196, 191, 187, 201, 196, 192, 201, 198, 193, 192, 188, 187, 176, 175, 173, 167, 163, 160, 166, 162, 159, 168, 164, 161, 163, 159, 156, 156, 152, 149, 151, 147, 144, 142, 137, 133, 151, 146, 142, 158, 153, 149, 168, 163, 159, 174, 169, 165, 164, 159, 155, 154, 147, 141, 156, 149, 143, 190, 181, 174, 171, 162, 155, 163, 154, 147, 167, 158, 151, 166, 157, 150, 165, 156, 149, 160, 151, 144, 149, 140, 133, 149, 140, 133, 145, 136, 129, 140, 131, 124, 136, 127, 120, 137, 128, 121, 143, 134, 127, 150, 141, 134, 154, 145, 138, 160, 152, 149, 161, 153, 150, 163, 155, 152, 164, 156, 153, 163, 156, 150, 161, 154, 148, 160, 151, 146, 158, 149, 144, 163, 154, 147, 163, 154, 147, 164, 155, 148, 167, 158, 151, 169, 158, 152, 166, 155, 149, 160, 149, 143, 156, 145, 139, 139, 125, 122, 137, 123, 120, 130, 116, 113, 118, 104, 101, 113, 99, 96, 114, 100, 97, 114, 100, 97, 111, 97, 94, 110, 96, 93, 111, 97, 94, 113, 99, 96, 116, 102, 99, 119, 105, 102, 118, 104, 101, 114, 100, 97, 110, 96, 93, 93, 82, 80, 101, 90, 88, 111, 100, 98, 115, 104, 102, 113, 102, 100, 109, 98, 96, 108, 97, 95, 109, 98, 96, 113, 102, 100, 113, 102, 100, 113, 102, 100, 114, 103, 101, 117, 106, 104, 119, 108, 106, 122, 111, 109, 124, 113, 109, 133, 119, 116, 135, 122, 116, 136, 123, 117, 134, 121, 115, 131, 118, 112, 129, 116, 110, 130, 117, 111, 131, 118, 112, 131, 118, 112, 134, 121, 115, 134, 121, 115, 133, 120, 114, 136, 123, 117, 144, 131, 125, 148, 135, 129, 148, 135, 129, 158, 143, 138, 155, 140, 135, 152, 137, 132, 151, 136, 131, 151, 138, 132, 151, 138, 132, 150, 137, 131, 149, 136, 130, 147, 134, 128, 152, 139, 133, 158, 147, 141, 164, 153, 147, 169, 158, 152, 174, 163, 157, 179, 168, 162, 183, 172, 166, 175, 164, 160, 178, 167, 163, 180, 169, 165, 182, 171, 167, 182, 173, 166, 185, 176, 169, 189, 182, 174, 192, 185, 177, 195, 190, 184, 197, 194, 187, 201, 198, 193, 202, 201, 197, 204, 204, 202, 209, 209, 207, 215, 215, 215, 218, 219, 221, 224, 225, 229, 223, 226, 231, 226, 229, 234, 230, 233, 238, 233, 236, 241, 235, 238, 243, 236, 239, 244, 236, 239, 244, 238, 241, 246, 239, 242, 247, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 247, 251, 254, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 242, 246, 249, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 240, 244, 247, 238, 242, 245, 236, 240, 243, 233, 237, 240, 232, 236, 239, 233, 234, 236, 230, 231, 233, 225, 225, 227, 219, 219, 221, 214, 214, 214, 209, 209, 209, 208, 206, 207, 207, 205, 206, 203, 199, 198, 201, 197, 196, 199, 194, 191, 197, 192, 189, 197, 192, 188, 196, 191, 187, 195, 187, 184, 192, 184, 181, 193, 188, 185, 190, 185, 182, 188, 183, 180, 188, 183, 180, 189, 184, 181, 189, 184, 181, 187, 182, 179, 185, 180, 177, 189, 184, 181, 187, 182, 179, 185, 180, 177, 183, 178, 175, 181, 176, 173, 180, 175, 172, 180, 175, 172, 180, 175, 172, 173, 168, 165, 174, 169, 166, 177, 172, 169, 180, 175, 172, 182, 177, 174, 181, 176, 173, 178, 173, 170, 175, 170, 167, 172, 167, 164, 168, 163, 160, 161, 156, 153, 155, 150, 147, 154, 149, 146, 158, 153, 150, 166, 161, 158, 172, 167, 164, 170, 162, 159, 176, 168, 165, 180, 172, 169, 180, 172, 169, 182, 174, 171, 185, 177, 174, 184, 176, 173, 179, 171, 168, 179, 171, 168, 183, 175, 172, 186, 178, 175, 186, 178, 175, 184, 176, 173, 182, 174, 171, 183, 175, 172, 184, 176, 173, 181, 174, 168, 175, 168, 162, 166, 159, 153, 158, 151, 145, 153, 146, 140, 153, 146, 140, 153, 148, 142, 155, 150, 144, 142, 137, 131, 149, 144, 138, 169, 164, 158, 184, 179, 173, 182, 179, 172, 181, 178, 171, 178, 175, 168, 169, 166, 159, 166, 162, 159, 165, 161, 158, 167, 162, 159, 168, 164, 161, 171, 166, 162, 171, 168, 163, 173, 168, 164, 171, 168, 163, 163, 158, 154, 165, 162, 157, 173, 168, 162, 182, 179, 172, 188, 183, 177, 182, 179, 172, 168, 163, 157, 154, 151, 144, 152, 148, 145, 152, 148, 145, 153, 149, 146, 159, 155, 152, 173, 169, 166, 182, 178, 175, 176, 175, 171, 166, 165, 161, 177, 176, 172, 169, 168, 164, 163, 164, 159, 165, 166, 161, 168, 169, 164, 171, 172, 167, 179, 180, 175, 187, 188, 183, 182, 183, 178, 184, 185, 180, 185, 186, 181, 184, 185, 180, 182, 183, 178, 183, 184, 179, 188, 189, 184, 193, 194, 189, 185, 186, 181, 188, 189, 184, 192, 193, 188, 196, 197, 192, 199, 200, 195, 201, 202, 197, 202, 203, 198, 203, 204, 199, 198, 197, 192, 197, 196, 191, 194, 193, 188, 191, 190, 185, 188, 187, 183, 189, 188, 184, 196, 195, 191, 204, 203, 199, 186, 185, 181, 189, 188, 184, 196, 195, 193, 201, 200, 198, 201, 200, 198, 197, 196, 194, 193, 192, 190, 192, 191, 189, 212, 212, 210, 199, 199, 197, 195, 195, 193, 206, 206, 204, 215, 215, 213, 211, 211, 209, 202, 202, 200, 197, 197, 195, 197, 197, 195, 200, 200, 198, 199, 199, 197, 197, 197, 195, 200, 200, 198, 205, 205, 203, 205, 205, 203, 202, 202, 200, 191, 193, 192, 206, 208, 207, 210, 212, 211, 199, 201, 200, 197, 199, 198, 210, 212, 211, 216, 218, 217, 210, 212, 211, 221, 223, 222, 220, 222, 221, 219, 221, 220, 223, 225, 224, 225, 227, 226, 223, 225, 224, 223, 225, 224, 230, 232, 231, 239, 237, 238, 240, 238, 239, 241, 239, 240, 242, 240, 241, 243, 241, 242, 243, 241, 242, 242, 240, 241, 242, 240, 241, 243, 241, 242, 243, 241, 242, 244, 242, 243, 244, 242, 243, 244, 242, 243, 245, 243, 244, 245, 243, 244, 245, 243, 244, 246, 244, 245, 246, 244, 245, 246, 244, 245, 247, 245, 246, 247, 245, 246, 247, 245, 246, 248, 246, 247, 248, 246, 247, 247, 245, 246, 247, 245, 246, 247, 245, 246, 247, 245, 246, 247, 245, 246, 247, 245, 246, 247, 245, 246, 247, 245, 246, 247, 246, 244, 247, 246, 244, 248, 247, 245, 248, 247, 245, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 250, 249, 247, 250, 249, 247, 249, 248, 246, 247, 246, 244, 247, 246, 244, 249, 248, 246, 252, 251, 249, 250, 250, 250, 248, 248, 248, 246, 246, 246, 247, 247, 247, 249, 249, 249, 250, 250, 250, 249, 249, 249, 247, 247, 247, 249, 249, 249, 249, 249, 249, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 249, 247, 247, 247, 246, 246, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 247, 245, 248, 247, 245, 247, 246, 244, 246, 245, 243, 247, 243, 242, 246, 242, 241, 245, 241, 240, 244, 240, 239, 243, 239, 238, 242, 238, 237, 239, 237, 238, 239, 237, 238, 240, 238, 239, 241, 239, 240, 242, 240, 241, 242, 240, 241, 243, 241, 242, 243, 241, 242, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 242, 242, 242, 243, 243, 243, 243, 243, 243, 243, 243, 243, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 243, 243, 243, 241, 241, 241, 240, 240, 240, 238, 238, 238, 237, 237, 237, 237, 237, 237, 230, 232, 231, 226, 228, 227, 222, 224, 223, 220, 222, 221, 220, 222, 221, 220, 222, 221, 220, 222, 221, 219, 221, 220, 215, 217, 216, 214, 216, 215, 215, 217, 216, 218, 220, 219, 219, 221, 220, 215, 217, 216, 207, 209, 208, 200, 202, 201, 182, 181, 179, 192, 191, 189, 194, 193, 191, 196, 195, 193, 206, 202, 201, 204, 200, 199, 199, 195, 192, 204, 200, 197, 201, 197, 194, 203, 199, 196, 202, 197, 194, 196, 191, 188, 194, 189, 185, 196, 191, 187, 195, 190, 186, 191, 188, 183, 200, 196, 195, 193, 192, 190, 188, 184, 181, 179, 175, 172, 166, 162, 159, 153, 149, 146, 151, 147, 144, 154, 150, 147, 136, 131, 127, 143, 138, 134, 134, 129, 125, 133, 128, 124, 148, 143, 139, 144, 139, 135, 141, 134, 128, 158, 151, 145, 125, 116, 109, 134, 125, 118, 154, 145, 138, 174, 165, 158, 179, 170, 163, 174, 165, 158, 169, 160, 153, 166, 157, 150, 163, 154, 147, 162, 153, 146, 165, 156, 149, 173, 164, 157, 179, 170, 163, 180, 171, 164, 180, 171, 164, 180, 171, 166, 174, 166, 163, 170, 162, 159, 164, 156, 153, 161, 153, 150, 161, 154, 148, 163, 156, 150, 166, 157, 152, 167, 158, 153, 172, 163, 156, 166, 157, 150, 158, 149, 142, 151, 142, 135, 146, 135, 129, 139, 128, 122, 133, 122, 116, 128, 117, 111, 137, 123, 120, 139, 125, 122, 139, 125, 122, 137, 123, 120, 135, 121, 118, 133, 119, 116, 129, 115, 112, 126, 112, 109, 120, 106, 103, 118, 104, 101, 116, 102, 99, 115, 101, 98, 113, 99, 96, 110, 96, 93, 104, 90, 87, 100, 86, 83, 100, 89, 87, 94, 83, 81, 84, 73, 71, 85, 74, 72, 104, 93, 91, 124, 113, 111, 123, 112, 110, 111, 100, 98, 100, 89, 87, 96, 85, 83, 92, 81, 79, 90, 79, 77, 94, 83, 81, 102, 91, 89, 112, 101, 99, 118, 107, 103, 119, 106, 100, 124, 111, 105, 132, 119, 113, 139, 126, 120, 142, 129, 123, 143, 130, 124, 143, 130, 124, 142, 129, 123, 133, 120, 114, 133, 120, 114, 130, 117, 111, 126, 113, 107, 128, 115, 109, 138, 125, 119, 145, 132, 126, 147, 134, 128, 150, 135, 130, 145, 130, 125, 141, 126, 121, 142, 127, 122, 144, 131, 125, 146, 133, 127, 144, 131, 125, 141, 128, 122, 139, 126, 120, 144, 131, 125, 149, 138, 132, 155, 144, 138, 160, 149, 143, 166, 155, 149, 172, 161, 155, 176, 165, 159, 175, 164, 160, 177, 166, 162, 180, 169, 165, 181, 170, 166, 181, 172, 167, 184, 175, 168, 187, 180, 172, 191, 184, 176, 195, 190, 184, 197, 194, 189, 201, 197, 194, 202, 201, 197, 204, 204, 202, 209, 209, 207, 215, 215, 215, 218, 219, 221, 224, 225, 229, 223, 226, 231, 226, 229, 234, 229, 232, 237, 232, 235, 240, 234, 237, 242, 235, 238, 243, 235, 238, 243, 237, 240, 245, 238, 241, 246, 239, 242, 247, 240, 243, 248, 241, 244, 249, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 242, 246, 249, 241, 245, 248, 241, 245, 248, 241, 245, 248, 240, 244, 247, 239, 243, 246, 237, 241, 244, 235, 239, 242, 234, 238, 241, 238, 239, 241, 235, 236, 238, 230, 231, 233, 224, 225, 227, 219, 219, 221, 213, 213, 215, 210, 208, 209, 208, 206, 207, 206, 202, 201, 203, 199, 198, 200, 196, 193, 199, 195, 192, 200, 195, 192, 199, 194, 191, 197, 192, 188, 194, 189, 185, 198, 193, 190, 195, 190, 187, 191, 186, 183, 190, 185, 182, 189, 184, 181, 187, 182, 179, 184, 179, 176, 181, 176, 173, 188, 183, 180, 187, 182, 179, 185, 180, 177, 183, 178, 175, 181, 176, 173, 180, 175, 172, 180, 175, 172, 180, 175, 172, 173, 168, 165, 170, 165, 162, 167, 162, 159, 166, 161, 158, 168, 163, 160, 167, 162, 159, 164, 159, 156, 161, 156, 153, 164, 159, 156, 168, 163, 160, 171, 166, 163, 171, 166, 163, 167, 162, 159, 163, 158, 155, 161, 156, 153, 161, 156, 153, 170, 162, 159, 175, 167, 164, 178, 170, 167, 178, 170, 167, 180, 172, 169, 183, 175, 172, 183, 175, 172, 179, 171, 168, 174, 166, 163, 173, 165, 162, 174, 166, 163, 179, 171, 168, 185, 177, 174, 190, 182, 179, 192, 184, 181, 191, 183, 180, 175, 168, 162, 177, 170, 164, 176, 169, 163, 170, 163, 157, 164, 157, 151, 165, 158, 152, 174, 169, 163, 184, 179, 173, 187, 182, 176, 176, 171, 165, 173, 168, 162, 171, 166, 160, 163, 160, 153, 166, 163, 156, 171, 168, 161, 167, 164, 157, 160, 155, 152, 163, 158, 155, 169, 161, 159, 171, 166, 163, 175, 167, 164, 173, 168, 164, 176, 168, 165, 174, 169, 165, 179, 171, 168, 170, 165, 161, 165, 158, 152, 159, 154, 148, 159, 152, 146, 147, 142, 136, 133, 126, 120, 118, 113, 107, 160, 156, 153, 179, 175, 172, 191, 187, 184, 183, 179, 176, 168, 164, 161, 164, 160, 157, 169, 168, 164, 177, 176, 172, 142, 141, 137, 130, 129, 125, 130, 129, 125, 155, 154, 150, 185, 186, 181, 197, 198, 193, 189, 190, 185, 178, 179, 174, 175, 174, 169, 174, 173, 168, 174, 173, 168, 180, 179, 174, 187, 186, 181, 192, 191, 186, 193, 192, 187, 192, 191, 186, 191, 190, 185, 191, 190, 185, 191, 190, 185, 193, 192, 187, 194, 193, 188, 195, 194, 189, 195, 194, 189, 194, 193, 188, 194, 193, 188, 189, 188, 183, 183, 182, 177, 181, 180, 175, 184, 183, 179, 190, 189, 185, 193, 192, 188, 192, 191, 187, 182, 181, 177, 190, 189, 185, 195, 194, 192, 192, 191, 189, 186, 185, 183, 186, 185, 183, 194, 193, 191, 201, 200, 198, 206, 206, 204, 202, 202, 200, 204, 204, 202, 212, 212, 210, 211, 211, 209, 200, 200, 198, 193, 193, 191, 192, 192, 190, 190, 190, 188, 199, 199, 197, 204, 204, 202, 200, 200, 198, 196, 196, 194, 199, 199, 197, 203, 203, 201, 204, 204, 202, 201, 203, 202, 201, 203, 202, 199, 201, 200, 199, 201, 200, 205, 207, 206, 213, 215, 214, 213, 215, 214, 208, 210, 209, 216, 218, 217, 215, 217, 216, 223, 225, 224, 234, 236, 235, 237, 239, 238, 234, 236, 235, 233, 235, 234, 232, 234, 233, 240, 238, 239, 241, 239, 240, 242, 240, 241, 243, 241, 242, 243, 241, 242, 243, 241, 242, 242, 240, 241, 241, 239, 240, 243, 241, 242, 243, 241, 242, 243, 241, 242, 244, 242, 243, 244, 242, 243, 244, 242, 243, 245, 243, 244, 245, 243, 244, 245, 243, 244, 245, 243, 244, 246, 244, 245, 246, 244, 245, 246, 244, 245, 247, 245, 246, 247, 245, 246, 247, 245, 246, 246, 244, 245, 246, 244, 245, 246, 244, 245, 246, 244, 245, 246, 244, 245, 246, 244, 245, 246, 244, 245, 246, 244, 245, 247, 246, 244, 247, 246, 244, 248, 247, 245, 248, 247, 245, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 250, 249, 247, 250, 249, 247, 249, 248, 246, 247, 246, 244, 247, 246, 244, 249, 248, 246, 252, 251, 249, 250, 248, 249, 248, 246, 247, 247, 245, 246, 248, 246, 247, 250, 248, 249, 251, 249, 250, 249, 247, 248, 247, 245, 246, 250, 248, 249, 250, 248, 249, 251, 249, 250, 251, 249, 250, 251, 249, 250, 250, 248, 249, 248, 246, 247, 247, 245, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 247, 245, 248, 247, 245, 248, 247, 245, 248, 247, 245, 246, 245, 243, 246, 245, 243, 247, 243, 242, 246, 242, 241, 245, 241, 240, 243, 239, 238, 243, 239, 238, 242, 238, 237, 241, 237, 238, 241, 237, 238, 241, 237, 238, 242, 238, 239, 241, 239, 240, 242, 240, 241, 242, 240, 241, 243, 241, 242, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 244, 244, 244, 244, 244, 244, 244, 244, 244, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 244, 244, 244, 243, 243, 243, 243, 243, 243, 242, 242, 242, 241, 241, 241, 241, 241, 241, 223, 225, 224, 221, 223, 222, 218, 220, 219, 219, 221, 220, 222, 224, 223, 225, 227, 226, 226, 228, 227, 226, 228, 227, 218, 220, 219, 215, 217, 216, 207, 209, 208, 199, 201, 200, 195, 197, 196, 199, 201, 200, 210, 212, 211, 219, 221, 220, 213, 212, 210, 217, 216, 214, 207, 206, 204, 193, 192, 190, 189, 188, 186, 188, 187, 185, 199, 195, 192, 216, 212, 209, 218, 214, 211, 221, 217, 214, 219, 215, 212, 213, 209, 206, 208, 203, 199, 205, 200, 196, 198, 193, 189, 190, 187, 182, 199, 195, 194, 195, 194, 192, 197, 193, 190, 197, 193, 190, 193, 189, 186, 189, 185, 182, 193, 189, 186, 200, 196, 193, 188, 183, 179, 193, 188, 184, 179, 174, 170, 169, 164, 160, 168, 163, 159, 145, 140, 136, 126, 119, 113, 132, 125, 119, 139, 130, 125, 141, 132, 127, 145, 136, 131, 152, 143, 138, 160, 151, 146, 162, 153, 148, 167, 158, 153, 176, 167, 162, 145, 136, 131, 142, 133, 128, 147, 138, 133, 160, 151, 146, 168, 159, 154, 167, 158, 153, 167, 158, 153, 169, 160, 155, 166, 158, 155, 162, 154, 151, 159, 151, 148, 160, 152, 149, 167, 160, 154, 174, 167, 161, 180, 171, 166, 181, 172, 167, 177, 168, 161, 167, 158, 151, 154, 143, 137, 142, 131, 125, 135, 124, 118, 131, 120, 114, 128, 117, 111, 127, 116, 110, 146, 132, 129, 143, 129, 126, 140, 126, 123, 136, 122, 119, 129, 115, 112, 120, 106, 103, 112, 98, 95, 109, 95, 92, 91, 77, 74, 85, 71, 68, 78, 64, 61, 77, 63, 60, 83, 69, 66, 92, 78, 75, 101, 87, 84, 106, 92, 89, 103, 92, 88, 93, 82, 78, 78, 67, 63, 73, 62, 58, 93, 82, 78, 118, 107, 103, 122, 111, 107, 109, 98, 94, 113, 102, 98, 109, 98, 94, 104, 93, 89, 101, 90, 86, 102, 91, 87, 106, 95, 91, 112, 101, 97, 116, 105, 101, 106, 93, 87, 108, 95, 89, 114, 101, 95, 122, 109, 103, 131, 118, 112, 140, 127, 121, 145, 132, 126, 148, 135, 129, 136, 123, 117, 135, 122, 116, 128, 115, 109, 120, 107, 101, 122, 109, 103, 131, 118, 112, 140, 127, 121, 143, 130, 124, 147, 132, 127, 143, 128, 123, 141, 126, 121, 143, 128, 123, 148, 135, 129, 152, 139, 133, 151, 138, 132, 149, 136, 130, 148, 135, 129, 151, 138, 132, 153, 142, 136, 155, 144, 138, 157, 146, 140, 160, 149, 143, 164, 153, 147, 168, 157, 151, 174, 163, 159, 176, 165, 163, 179, 168, 166, 180, 169, 165, 181, 172, 167, 184, 175, 170, 187, 180, 174, 191, 184, 178, 196, 191, 187, 198, 195, 190, 202, 198, 195, 203, 202, 200, 205, 205, 205, 210, 210, 210, 216, 216, 218, 219, 220, 222, 225, 226, 230, 224, 227, 232, 227, 230, 235, 229, 232, 237, 232, 235, 240, 233, 236, 241, 234, 237, 242, 234, 237, 242, 236, 239, 244, 237, 240, 245, 238, 241, 246, 239, 242, 247, 240, 243, 248, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 240, 243, 248, 241, 244, 249, 242, 245, 250, 242, 245, 250, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 240, 244, 247, 238, 242, 245, 236, 240, 243, 235, 239, 242, 240, 241, 243, 237, 238, 240, 233, 234, 236, 227, 228, 230, 222, 222, 224, 216, 216, 218, 212, 210, 211, 210, 208, 209, 211, 207, 206, 209, 205, 204, 206, 202, 199, 206, 202, 199, 207, 202, 199, 206, 201, 198, 204, 199, 195, 201, 196, 192, 199, 194, 191, 196, 191, 188, 193, 188, 185, 191, 186, 183, 190, 185, 182, 188, 183, 180, 184, 179, 176, 181, 176, 173, 184, 179, 176, 183, 178, 175, 181, 176, 173, 179, 174, 171, 178, 173, 170, 178, 173, 170, 178, 173, 170, 178, 173, 170, 174, 169, 166, 169, 164, 161, 164, 159, 156, 165, 160, 157, 169, 164, 161, 172, 167, 164, 171, 166, 163, 168, 163, 160, 173, 168, 165, 177, 172, 169, 179, 174, 171, 177, 172, 169, 171, 166, 163, 168, 163, 160, 170, 165, 162, 173, 168, 165, 178, 170, 167, 182, 174, 171, 183, 175, 172, 180, 172, 169, 182, 174, 171, 186, 178, 175, 187, 179, 176, 185, 177, 174, 180, 172, 169, 178, 170, 167, 178, 170, 167, 179, 171, 168, 181, 173, 170, 178, 170, 167, 170, 162, 159, 164, 156, 153, 161, 154, 148, 166, 159, 153, 174, 167, 161, 182, 175, 169, 186, 179, 173, 184, 177, 171, 176, 171, 165, 170, 165, 159, 181, 176, 170, 170, 165, 159, 169, 164, 158, 173, 168, 162, 174, 171, 164, 184, 181, 174, 191, 188, 181, 186, 183, 178, 170, 165, 162, 177, 169, 167, 181, 173, 171, 178, 170, 168, 170, 162, 159, 163, 155, 152, 160, 152, 149, 161, 153, 150, 155, 147, 144, 148, 140, 137, 142, 135, 129, 148, 141, 135, 163, 156, 150, 180, 173, 167, 190, 183, 177, 192, 187, 181, 193, 188, 185, 189, 185, 182, 181, 177, 174, 172, 168, 165, 171, 167, 164, 176, 172, 169, 175, 174, 170, 173, 172, 168, 154, 153, 149, 158, 157, 153, 168, 167, 163, 180, 179, 175, 182, 183, 178, 178, 179, 174, 177, 178, 173, 179, 180, 175, 197, 196, 191, 191, 190, 185, 186, 185, 180, 187, 186, 181, 191, 190, 185, 192, 191, 186, 188, 187, 182, 182, 181, 176, 185, 184, 179, 186, 185, 180, 188, 187, 182, 192, 191, 186, 197, 196, 191, 199, 198, 193, 198, 197, 192, 197, 196, 191, 185, 184, 179, 183, 182, 177, 179, 178, 173, 178, 177, 172, 184, 183, 179, 191, 190, 186, 189, 188, 184, 181, 180, 176, 189, 188, 184, 193, 192, 188, 190, 189, 187, 178, 177, 175, 173, 172, 170, 183, 182, 180, 200, 199, 197, 212, 211, 209, 191, 191, 189, 216, 216, 214, 225, 225, 223, 207, 207, 205, 190, 190, 188, 192, 192, 190, 196, 196, 194, 193, 193, 191, 189, 189, 187, 201, 201, 199, 208, 208, 206, 204, 204, 202, 197, 197, 195, 198, 198, 196, 203, 203, 201, 207, 207, 205, 211, 213, 212, 201, 203, 202, 196, 198, 197, 203, 205, 204, 213, 215, 214, 216, 218, 217, 213, 215, 214, 210, 212, 211, 220, 222, 221, 213, 215, 214, 220, 222, 221, 231, 233, 232, 233, 235, 234, 236, 238, 237, 240, 242, 241, 237, 239, 238, 241, 239, 240, 242, 240, 241, 243, 241, 242, 243, 241, 242, 243, 241, 242, 242, 240, 241, 241, 239, 240, 241, 239, 240, 242, 240, 241, 243, 241, 242, 243, 241, 242, 243, 241, 242, 244, 242, 243, 244, 242, 243, 244, 242, 243, 244, 242, 243, 245, 243, 244, 245, 243, 244, 245, 243, 244, 246, 244, 245, 246, 244, 245, 246, 244, 245, 247, 245, 246, 247, 245, 246, 247, 245, 246, 247, 245, 246, 247, 245, 246, 247, 245, 246, 247, 245, 246, 247, 245, 246, 247, 245, 246, 247, 245, 246, 247, 246, 244, 247, 246, 244, 248, 247, 245, 248, 247, 245, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 250, 249, 247, 250, 249, 247, 249, 248, 246, 247, 246, 244, 247, 246, 244, 249, 248, 246, 252, 251, 249, 250, 248, 249, 248, 246, 247, 247, 245, 246, 247, 245, 246, 249, 247, 248, 250, 248, 249, 249, 247, 248, 247, 245, 246, 250, 248, 249, 250, 248, 249, 251, 249, 250, 251, 249, 250, 251, 249, 250, 250, 248, 249, 248, 246, 247, 247, 245, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 247, 245, 248, 247, 245, 248, 247, 245, 248, 247, 245, 246, 245, 243, 245, 244, 242, 247, 243, 242, 245, 241, 240, 244, 240, 239, 243, 239, 238, 242, 238, 237, 242, 238, 237, 240, 236, 237, 241, 237, 238, 241, 237, 238, 242, 238, 239, 241, 239, 240, 241, 239, 240, 242, 240, 241, 242, 240, 241, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 244, 244, 244, 244, 244, 244, 244, 244, 244, 245, 245, 245, 245, 245, 245, 245, 245, 245, 246, 246, 246, 246, 246, 246, 246, 246, 246, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 233, 235, 234, 229, 231, 230, 225, 227, 226, 223, 225, 224, 223, 225, 224, 224, 226, 225, 224, 226, 225, 223, 225, 224, 226, 228, 227, 226, 228, 227, 222, 224, 223, 211, 213, 212, 201, 203, 202, 197, 199, 198, 203, 205, 204, 210, 212, 211, 217, 217, 215, 227, 226, 224, 222, 221, 219, 209, 208, 206, 199, 198, 196, 187, 186, 184, 184, 180, 177, 193, 189, 186, 194, 190, 187, 198, 194, 191, 199, 195, 192, 197, 193, 190, 198, 193, 189, 200, 195, 191, 199, 194, 190, 194, 191, 186, 190, 186, 185, 177, 176, 174, 172, 168, 165, 176, 172, 169, 184, 180, 177, 185, 181, 178, 181, 177, 174, 179, 175, 172, 197, 192, 188, 198, 193, 189, 190, 185, 181, 184, 179, 175, 179, 174, 170, 161, 156, 152, 148, 141, 135, 149, 142, 136, 191, 182, 177, 177, 168, 163, 156, 147, 142, 150, 141, 136, 158, 149, 144, 155, 146, 141, 147, 138, 133, 148, 139, 134, 161, 152, 147, 151, 142, 137, 146, 137, 132, 149, 140, 135, 147, 138, 133, 141, 132, 127, 143, 134, 129, 152, 143, 138, 161, 153, 150, 160, 152, 149, 161, 153, 150, 167, 159, 156, 174, 167, 161, 177, 170, 164, 175, 166, 161, 171, 162, 157, 163, 154, 147, 155, 146, 139, 143, 132, 126, 135, 124, 118, 132, 121, 115, 133, 122, 116, 135, 124, 118, 137, 126, 120, 116, 102, 99, 106, 92, 89, 97, 83, 80, 91, 77, 74, 83, 69, 66, 75, 61, 58, 73, 59, 56, 77, 63, 60, 57, 43, 40, 61, 47, 44, 69, 55, 52, 79, 65, 62, 90, 76, 73, 97, 83, 80, 98, 84, 81, 98, 84, 81, 88, 77, 73, 91, 80, 76, 88, 77, 73, 79, 68, 64, 82, 71, 67, 94, 83, 79, 101, 90, 86, 99, 88, 84, 116, 105, 101, 119, 108, 104, 123, 112, 108, 127, 116, 112, 128, 117, 113, 126, 115, 111, 124, 113, 109, 122, 111, 107, 121, 108, 102, 114, 101, 95, 105, 92, 86, 102, 89, 83, 106, 93, 87, 114, 101, 95, 122, 109, 103, 126, 113, 107, 137, 124, 118, 137, 124, 118, 132, 119, 113, 125, 112, 106, 126, 113, 107, 134, 121, 115, 140, 127, 121, 141, 128, 122, 150, 135, 130, 149, 134, 129, 149, 134, 129, 153, 138, 133, 157, 144, 138, 161, 148, 142, 164, 151, 145, 164, 151, 145, 162, 149, 143, 163, 150, 144, 162, 151, 145, 161, 150, 144, 159, 148, 142, 160, 149, 143, 163, 152, 146, 166, 155, 151, 172, 161, 159, 174, 163, 161, 178, 167, 165, 180, 169, 167, 181, 172, 167, 185, 176, 171, 190, 183, 177, 194, 187, 181, 199, 194, 190, 201, 197, 194, 205, 201, 200, 206, 205, 203, 208, 208, 208, 212, 212, 212, 218, 218, 220, 222, 223, 227, 226, 227, 232, 225, 228, 233, 228, 231, 236, 230, 233, 238, 232, 235, 240, 233, 236, 241, 234, 237, 242, 234, 237, 242, 235, 238, 243, 236, 239, 244, 237, 240, 245, 238, 241, 246, 239, 242, 247, 239, 242, 247, 238, 241, 246, 237, 240, 245, 236, 239, 244, 237, 240, 245, 238, 241, 246, 239, 242, 247, 240, 243, 248, 241, 244, 249, 242, 245, 250, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 241, 245, 248, 241, 245, 248, 242, 246, 249, 241, 245, 248, 241, 245, 248, 239, 243, 246, 237, 241, 244, 236, 240, 243, 238, 239, 243, 236, 237, 241, 232, 233, 237, 227, 228, 232, 222, 222, 224, 216, 216, 218, 211, 211, 211, 208, 208, 208, 210, 209, 207, 208, 207, 205, 207, 203, 202, 207, 203, 202, 208, 203, 200, 208, 203, 200, 206, 201, 198, 203, 198, 195, 196, 191, 188, 194, 189, 186, 192, 187, 184, 191, 186, 183, 192, 187, 184, 191, 186, 183, 189, 184, 181, 186, 181, 178, 183, 178, 175, 182, 177, 174, 181, 176, 173, 179, 174, 171, 178, 173, 170, 178, 173, 170, 178, 173, 170, 179, 174, 171, 181, 176, 173, 177, 172, 169, 173, 168, 165, 175, 170, 167, 182, 177, 174, 185, 180, 177, 183, 178, 175, 179, 174, 171, 178, 173, 170, 180, 175, 172, 179, 174, 171, 174, 169, 166, 169, 164, 161, 171, 166, 163, 180, 175, 172, 188, 183, 180, 187, 179, 176, 188, 180, 177, 186, 178, 175, 181, 173, 170, 182, 174, 171, 187, 179, 176, 190, 182, 179, 189, 181, 178, 173, 165, 162, 176, 168, 165, 178, 170, 167, 177, 169, 166, 172, 164, 161, 166, 158, 155, 162, 154, 151, 161, 153, 150, 173, 165, 162, 162, 154, 151, 151, 143, 140, 148, 140, 137, 154, 146, 143, 161, 153, 150, 162, 157, 153, 162, 157, 153, 159, 154, 150, 154, 149, 145, 164, 159, 155, 180, 175, 171, 187, 184, 179, 195, 192, 187, 194, 191, 186, 182, 179, 174, 171, 166, 163, 180, 175, 172, 185, 180, 177, 179, 174, 171, 163, 158, 154, 150, 145, 141, 147, 142, 138, 149, 144, 140, 149, 144, 140, 159, 154, 150, 176, 171, 165, 194, 189, 183, 202, 197, 191, 197, 192, 186, 182, 177, 171, 169, 164, 158, 163, 158, 155, 146, 141, 138, 131, 126, 123, 137, 132, 129, 164, 160, 157, 186, 182, 179, 184, 180, 177, 171, 167, 164, 184, 183, 179, 195, 194, 190, 203, 202, 198, 194, 193, 189, 173, 172, 168, 159, 158, 154, 170, 169, 165, 188, 187, 183, 195, 194, 189, 191, 191, 183, 186, 186, 178, 184, 184, 176, 185, 185, 177, 189, 189, 181, 192, 192, 184, 194, 194, 186, 182, 182, 174, 184, 184, 176, 188, 188, 180, 194, 194, 186, 199, 199, 191, 197, 197, 189, 190, 190, 182, 184, 184, 176, 175, 174, 169, 182, 181, 176, 186, 185, 180, 184, 183, 178, 187, 186, 182, 191, 190, 186, 187, 186, 182, 179, 178, 174, 194, 193, 189, 193, 192, 188, 185, 184, 182, 176, 175, 173, 179, 178, 176, 194, 193, 191, 205, 204, 202, 207, 206, 204, 201, 201, 199, 218, 218, 216, 218, 218, 216, 197, 197, 195, 184, 184, 182, 193, 193, 191, 202, 202, 200, 200, 200, 198, 196, 196, 194, 203, 203, 201, 208, 208, 206, 206, 206, 204, 204, 204, 202, 206, 206, 204, 208, 208, 206, 206, 206, 204, 215, 217, 216, 211, 213, 212, 208, 210, 209, 210, 212, 211, 215, 217, 216, 219, 221, 220, 218, 220, 219, 215, 217, 216, 225, 227, 226, 214, 216, 215, 220, 222, 221, 231, 233, 232, 232, 234, 233, 236, 238, 237, 242, 244, 243, 237, 239, 238, 242, 240, 241, 243, 241, 242, 243, 241, 242, 244, 242, 243, 243, 241, 242, 242, 240, 241, 241, 239, 240, 240, 238, 239, 242, 240, 241, 242, 240, 241, 243, 241, 242, 243, 241, 242, 243, 241, 242, 244, 242, 243, 244, 242, 243, 244, 242, 243, 245, 243, 244, 245, 243, 244, 245, 243, 244, 245, 243, 244, 246, 244, 245, 246, 244, 245, 247, 245, 246, 247, 245, 246, 247, 245, 246, 247, 245, 246, 247, 245, 246, 247, 245, 246, 247, 245, 246, 247, 245, 246, 247, 245, 246, 247, 245, 246, 247, 246, 244, 247, 246, 244, 248, 247, 245, 248, 247, 245, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 250, 249, 247, 250, 249, 247, 249, 248, 246, 247, 246, 244, 247, 246, 244, 249, 248, 246, 252, 251, 249, 250, 248, 249, 248, 246, 247, 246, 244, 245, 247, 245, 246, 249, 247, 248, 250, 248, 249, 248, 246, 247, 247, 245, 246, 250, 248, 249, 250, 248, 249, 251, 249, 250, 251, 249, 250, 251, 249, 250, 250, 248, 249, 248, 246, 247, 247, 245, 246, 248, 247, 245, 248, 247, 245, 248, 247, 245, 248, 247, 245, 248, 247, 245, 248, 247, 245, 248, 247, 245, 248, 247, 245, 248, 244, 243, 247, 243, 242, 246, 242, 241, 245, 241, 240, 245, 239, 239, 244, 238, 238, 243, 237, 237, 242, 236, 236, 240, 236, 237, 240, 236, 237, 241, 237, 238, 242, 238, 239, 242, 238, 239, 243, 239, 240, 242, 240, 241, 242, 240, 241, 244, 242, 243, 244, 242, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 244, 244, 244, 244, 244, 244, 244, 244, 244, 245, 245, 245, 245, 245, 245, 245, 245, 245, 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 247, 249, 248, 242, 244, 243, 235, 237, 236, 230, 232, 231, 227, 229, 228, 224, 226, 225, 221, 223, 222, 218, 220, 219, 225, 227, 226, 229, 231, 230, 232, 234, 233, 231, 233, 232, 224, 226, 225, 215, 217, 216, 205, 207, 206, 200, 202, 201, 195, 195, 193, 205, 205, 203, 207, 206, 204, 206, 205, 203, 205, 204, 202, 190, 189, 187, 171, 170, 166, 166, 165, 161, 164, 160, 157, 165, 161, 158, 164, 160, 157, 161, 157, 154, 166, 163, 158, 178, 175, 170, 187, 182, 178, 188, 185, 180, 191, 187, 186, 175, 174, 172, 165, 161, 158, 163, 159, 156, 163, 159, 156, 157, 153, 150, 149, 145, 142, 144, 140, 137, 160, 155, 151, 153, 148, 144, 160, 155, 151, 170, 165, 161, 172, 167, 163, 178, 173, 169, 189, 182, 176, 192, 185, 179, 178, 169, 164, 175, 166, 161, 168, 159, 154, 176, 167, 162, 195, 186, 181, 194, 185, 180, 182, 173, 168, 183, 174, 169, 185, 176, 171, 176, 167, 162, 173, 164, 159, 176, 167, 162, 171, 162, 157, 164, 155, 150, 171, 162, 157, 186, 177, 172, 173, 165, 162, 170, 162, 159, 169, 159, 157, 172, 162, 160, 176, 167, 162, 177, 168, 163, 170, 161, 156, 164, 155, 150, 159, 148, 142, 150, 139, 133, 137, 126, 120, 125, 114, 108, 116, 105, 99, 110, 99, 93, 105, 94, 88, 102, 91, 85, 90, 76, 73, 82, 68, 65, 77, 63, 60, 78, 64, 61, 77, 63, 60, 73, 59, 56, 76, 62, 59, 83, 69, 66, 79, 65, 62, 86, 72, 69, 98, 84, 81, 110, 96, 93, 116, 102, 99, 112, 98, 95, 103, 89, 86, 95, 81, 78, 98, 84, 81, 104, 90, 87, 108, 94, 91, 104, 90, 87, 101, 87, 84, 105, 91, 88, 113, 99, 96, 118, 104, 101, 116, 102, 99, 121, 107, 104, 128, 114, 111, 133, 119, 116, 134, 120, 117, 131, 117, 114, 125, 111, 108, 120, 106, 103, 129, 116, 110, 120, 107, 101, 111, 98, 92, 106, 93, 87, 107, 94, 88, 111, 98, 92, 114, 101, 95, 115, 102, 96, 133, 120, 114, 138, 125, 119, 141, 128, 122, 140, 127, 121, 142, 129, 123, 146, 133, 127, 146, 133, 127, 143, 130, 124, 146, 131, 126, 148, 133, 128, 151, 136, 131, 153, 138, 133, 154, 141, 135, 158, 145, 139, 163, 150, 144, 166, 153, 147, 166, 153, 147, 166, 153, 147, 164, 153, 147, 162, 151, 145, 160, 149, 143, 161, 150, 144, 164, 153, 147, 167, 156, 152, 170, 159, 157, 173, 161, 161, 177, 166, 164, 180, 169, 167, 183, 173, 171, 187, 177, 175, 192, 184, 181, 197, 189, 186, 202, 197, 194, 204, 200, 197, 208, 204, 203, 209, 208, 206, 211, 211, 211, 215, 215, 217, 221, 220, 225, 224, 225, 229, 228, 229, 234, 227, 230, 235, 229, 232, 237, 231, 234, 239, 233, 236, 241, 234, 237, 242, 234, 237, 242, 234, 237, 242, 235, 238, 243, 236, 239, 244, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 235, 238, 243, 236, 239, 244, 237, 240, 245, 238, 241, 246, 240, 243, 248, 241, 244, 249, 242, 245, 250, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 245, 248, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 246, 249, 241, 245, 248, 241, 245, 248, 242, 246, 249, 242, 246, 249, 241, 245, 248, 240, 244, 247, 238, 242, 245, 237, 241, 244, 235, 236, 240, 233, 234, 238, 231, 232, 236, 226, 227, 231, 221, 221, 223, 215, 215, 217, 210, 210, 210, 207, 207, 207, 206, 204, 205, 204, 203, 201, 204, 200, 199, 204, 200, 199, 205, 200, 197, 205, 200, 197, 203, 198, 195, 200, 195, 192, 193, 188, 185, 191, 186, 183, 190, 185, 182, 191, 186, 183, 194, 189, 186, 195, 190, 187, 194, 189, 186, 192, 187, 184, 186, 181, 178, 185, 180, 177, 184, 179, 176, 182, 177, 174, 181, 176, 173, 181, 176, 173, 182, 177, 174, 182, 177, 174, 193, 188, 185, 187, 182, 179, 182, 177, 174, 182, 177, 174, 184, 179, 176, 182, 177, 174, 174, 169, 166, 167, 162, 159, 159, 154, 151, 169, 164, 161, 181, 176, 173, 184, 179, 176, 181, 176, 173, 176, 171, 168, 176, 171, 168, 178, 173, 170, 184, 176, 173, 184, 176, 173, 179, 171, 168, 173, 165, 162, 173, 165, 162, 179, 171, 168, 183, 175, 172, 183, 175, 172, 180, 172, 169, 184, 176, 173, 184, 176, 173, 173, 165, 162, 158, 150, 147, 150, 142, 139, 154, 146, 143, 161, 153, 150, 169, 161, 158, 171, 163, 160, 176, 168, 165, 180, 172, 169, 181, 173, 170, 178, 170, 167, 169, 164, 160, 163, 158, 154, 179, 174, 170, 166, 161, 157, 162, 157, 153, 164, 159, 155, 161, 158, 153, 163, 160, 155, 159, 156, 151, 145, 142, 137, 151, 146, 143, 165, 160, 157, 178, 173, 170, 176, 171, 168, 162, 157, 153, 153, 148, 144, 155, 150, 146, 162, 157, 153, 150, 145, 141, 151, 146, 142, 155, 150, 144, 161, 156, 150, 168, 163, 157, 173, 168, 162, 174, 169, 163, 174, 169, 163, 162, 157, 154, 166, 161, 158, 168, 163, 160, 167, 162, 159, 170, 166, 163, 178, 174, 171, 184, 180, 177, 185, 181, 178, 178, 177, 173, 171, 170, 166, 170, 169, 165, 180, 179, 175, 189, 188, 184, 189, 188, 184, 184, 183, 179, 180, 179, 174, 185, 184, 179, 184, 184, 176, 179, 179, 171, 171, 171, 163, 165, 165, 157, 168, 168, 160, 178, 178, 170, 188, 188, 180, 189, 189, 181, 189, 189, 181, 191, 191, 183, 192, 192, 184, 188, 188, 180, 175, 175, 167, 157, 157, 149, 144, 144, 136, 168, 167, 162, 184, 183, 178, 195, 194, 189, 193, 192, 187, 189, 188, 184, 190, 189, 185, 187, 186, 182, 181, 180, 176, 192, 191, 187, 190, 189, 185, 184, 183, 181, 183, 182, 180, 195, 194, 192, 209, 208, 206, 206, 205, 203, 194, 193, 191, 227, 227, 225, 208, 208, 206, 192, 192, 190, 191, 191, 189, 195, 195, 193, 198, 198, 196, 202, 202, 200, 208, 208, 206, 203, 203, 201, 206, 206, 204, 207, 207, 205, 207, 207, 205, 211, 211, 209, 215, 215, 213, 212, 212, 210, 205, 205, 203, 214, 216, 215, 221, 223, 222, 221, 223, 222, 214, 216, 215, 214, 216, 215, 221, 223, 222, 224, 226, 225, 218, 220, 219, 228, 230, 229, 217, 219, 218, 226, 228, 227, 239, 241, 240, 237, 239, 238, 239, 241, 240, 241, 243, 242, 232, 234, 233, 243, 241, 242, 243, 241, 242, 244, 242, 243, 244, 242, 243, 243, 241, 242, 242, 240, 241, 241, 239, 240, 240, 238, 239, 242, 240, 241, 242, 240, 241, 242, 240, 241, 243, 241, 242, 243, 241, 242, 244, 242, 243, 244, 242, 243, 244, 242, 243, 244, 242, 243, 245, 243, 244, 245, 243, 244, 245, 243, 244, 246, 244, 245, 246, 244, 245, 246, 244, 245, 247, 245, 246, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 248, 246, 247, 247, 246, 244, 247, 246, 244, 248, 247, 245, 248, 247, 245, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 250, 249, 247, 250, 249, 247, 249, 248, 246, 247, 246, 244, 247, 246, 244, 249, 248, 246, 252, 251, 249, 249, 247, 248, 248, 246, 247, 246, 244, 245, 247, 245, 246, 249, 247, 248, 250, 248, 249, 248, 246, 247, 246, 244, 245, 250, 248, 249, 250, 248, 249, 251, 249, 250, 251, 249, 250, 251, 249, 250, 250, 248, 249, 248, 246, 247, 247, 245, 246, 248, 247, 245, 248, 247, 245, 248, 247, 245, 248, 247, 245, 248, 247, 245, 248, 247, 245, 248, 247, 245, 248, 247, 245, 247, 243, 242, 247, 243, 242, 246, 242, 241, 245, 241, 240, 245, 239, 239, 244, 238, 238, 243, 237, 237, 242, 236, 236, 240, 236, 237, 240, 236, 237, 241, 237, 238, 241, 237, 238, 242, 238, 239, 243, 239, 240, 242, 240, 241, 242, 240, 241, 244, 242, 243, 244, 242, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 245, 245, 245, 245, 245, 245, 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 249, 249, 249, 249, 249, 249, 249, 249, 249, 245, 247, 246, 241, 243, 242, 236, 238, 237, 233, 235, 234, 232, 234, 233, 231, 233, 232, 230, 232, 231, 228, 230, 229, 224, 226, 225, 220, 222, 221, 217, 219, 218, 218, 220, 219, 222, 224, 223, 221, 223, 222, 215, 217, 216, 209, 211, 210, 219, 219, 217, 214, 214, 212, 202, 201, 199, 202, 201, 199, 215, 214, 212, 217, 216, 214, 207, 206, 202, 205, 204, 200, 201, 197, 194, 197, 193, 190, 187, 183, 180, 177, 173, 170, 178, 175, 170, 190, 187, 182, 202, 197, 193, 206, 203, 198, 197, 196, 194, 194, 193, 191, 192, 188, 185, 187, 183, 180, 177, 173, 170, 168, 164, 161, 168, 164, 161, 173, 169, 166, 181, 176, 172, 169, 164, 160, 180, 175, 171, 189, 184, 180, 173, 168, 164, 169, 164, 160, 172, 165, 159, 160, 153, 147, 157, 148, 143, 165, 156, 151, 163, 154, 149, 165, 156, 151, 174, 165, 160, 166, 157, 152, 160, 151, 146, 171, 162, 157, 175, 166, 161, 170, 161, 156, 173, 164, 159, 179, 170, 165, 171, 162, 157, 157, 148, 143, 161, 152, 147, 175, 166, 161, 181, 173, 170, 174, 166, 163, 168, 158, 156, 168, 158, 156, 175, 166, 161, 181, 172, 167, 182, 173, 168, 180, 171, 166, 165, 154, 148, 159, 148, 142, 150, 139, 133, 141, 130, 124, 133, 122, 116, 124, 113, 107, 116, 105, 99, 110, 99, 93, 112, 98, 95, 108, 94, 91, 111, 97, 94, 121, 107, 104, 122, 108, 105, 117, 103, 100, 116, 102, 99, 121, 107, 104, 129, 115, 112, 123, 109, 106, 117, 103, 100, 113, 99, 96, 114, 100, 97, 117, 103, 100, 119, 105, 102, 119, 105, 102, 104, 90, 87, 102, 88, 85, 101, 87, 84, 104, 90, 87, 110, 96, 93, 118, 104, 101, 125, 111, 108, 130, 116, 113, 130, 116, 113, 130, 116, 113, 129, 115, 112, 127, 113, 110, 122, 108, 105, 116, 102, 99, 110, 96, 93, 107, 93, 90, 110, 97, 91, 110, 97, 91, 114, 101, 95, 122, 109, 103, 131, 118, 112, 136, 123, 117, 135, 122, 116, 131, 118, 112, 129, 116, 110, 139, 126, 120, 148, 135, 129, 153, 140, 134, 156, 143, 137, 157, 144, 138, 152, 139, 133, 145, 132, 126, 137, 122, 117, 141, 126, 121, 145, 130, 125, 146, 131, 126, 144, 131, 125, 146, 133, 127, 153, 140, 134, 158, 145, 139, 161, 148, 142, 162, 149, 143, 160, 149, 143, 159, 148, 142, 157, 146, 140, 159, 148, 142, 163, 152, 146, 167, 156, 152, 168, 157, 155, 172, 160, 160, 176, 165, 163, 180, 169, 167, 183, 173, 171, 189, 179, 177, 194, 186, 183, 199, 191, 188, 203, 198, 195, 205, 201, 198, 209, 205, 204, 211, 210, 208, 213, 213, 215, 217, 217, 219, 223, 222, 227, 226, 227, 231, 229, 230, 235, 228, 231, 236, 230, 233, 238, 232, 235, 240, 234, 237, 242, 235, 238, 243, 235, 238, 243, 235, 238, 243, 234, 237, 242, 235, 238, 243, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 234, 237, 242, 235, 238, 243, 236, 239, 244, 238, 241, 246, 239, 242, 247, 241, 244, 249, 242, 245, 250, 243, 246, 251, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 245, 248, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 246, 249, 241, 245, 248, 239, 243, 246, 238, 242, 245, 236, 240, 243, 235, 239, 242, 234, 238, 241, 232, 236, 239, 232, 236, 239, 232, 233, 237, 228, 229, 233, 223, 224, 226, 216, 217, 219, 211, 211, 213, 208, 208, 208, 210, 208, 209, 208, 206, 207, 208, 204, 203, 205, 201, 200, 202, 198, 195, 200, 196, 193, 199, 195, 192, 199, 195, 192, 197, 192, 189, 193, 188, 185, 190, 185, 182, 192, 187, 184, 195, 190, 187, 196, 191, 188, 193, 188, 185, 190, 185, 182, 186, 181, 178, 184, 179, 176, 181, 176, 173, 178, 173, 170, 176, 171, 168, 177, 172, 169, 180, 175, 172, 183, 178, 175, 179, 174, 171, 181, 176, 173, 183, 178, 175, 183, 178, 175, 180, 175, 172, 173, 168, 165, 166, 161, 158, 162, 157, 154, 166, 161, 158, 170, 165, 162, 176, 171, 168, 180, 175, 172, 181, 176, 173, 178, 173, 170, 174, 169, 166, 171, 166, 163, 186, 178, 175, 183, 175, 172, 177, 169, 166, 173, 165, 162, 171, 163, 160, 172, 164, 161, 175, 167, 164, 177, 169, 166, 171, 163, 160, 168, 160, 157, 160, 152, 149, 149, 141, 138, 142, 134, 131, 147, 139, 136, 161, 153, 150, 174, 166, 163, 164, 156, 153, 170, 162, 159, 176, 168, 165, 179, 171, 168, 178, 170, 167, 179, 171, 168, 182, 177, 173, 186, 181, 177, 194, 189, 185, 193, 188, 184, 177, 172, 168, 160, 155, 151, 153, 150, 145, 144, 141, 136, 140, 137, 132, 147, 144, 139, 157, 153, 150, 142, 138, 135, 140, 136, 133, 142, 138, 135, 136, 133, 128, 136, 133, 128, 144, 141, 136, 146, 143, 138, 126, 123, 118, 115, 112, 107, 118, 115, 108, 137, 134, 127, 148, 145, 138, 147, 144, 137, 154, 151, 144, 168, 165, 158, 185, 180, 177, 181, 176, 173, 175, 170, 167, 172, 167, 164, 178, 173, 170, 187, 182, 179, 188, 184, 181, 184, 180, 177, 187, 183, 180, 184, 180, 177, 182, 178, 175, 181, 177, 174, 182, 181, 177, 188, 187, 183, 195, 194, 190, 199, 198, 193, 177, 176, 171, 156, 156, 148, 148, 148, 140, 166, 166, 158, 184, 184, 176, 185, 185, 177, 182, 182, 174, 184, 184, 176, 173, 173, 165, 161, 161, 153, 145, 145, 137, 134, 134, 126, 135, 135, 127, 148, 148, 140, 166, 166, 158, 178, 178, 170, 176, 175, 170, 190, 189, 184, 190, 189, 184, 173, 172, 167, 166, 165, 161, 178, 177, 173, 188, 187, 183, 186, 185, 181, 184, 183, 179, 188, 187, 183, 192, 191, 189, 193, 192, 190, 193, 192, 190, 196, 195, 193, 203, 202, 200, 210, 209, 207, 212, 212, 210, 196, 196, 194, 195, 195, 193, 198, 198, 196, 192, 192, 190, 198, 198, 196, 206, 206, 204, 199, 199, 197, 218, 218, 216, 218, 218, 216, 218, 218, 216, 217, 217, 215, 215, 215, 213, 213, 213, 211, 210, 210, 208, 209, 209, 207, 218, 220, 219, 221, 223, 222, 222, 224, 223, 220, 222, 221, 216, 218, 217, 216, 218, 217, 219, 221, 220, 224, 226, 225, 222, 224, 223, 225, 227, 226, 229, 231, 230, 234, 236, 235, 238, 240, 239, 239, 241, 240, 240, 242, 241, 240, 242, 241, 243, 241, 242, 242, 240, 241, 241, 239, 240, 241, 239, 240, 241, 239, 240, 241, 239, 240, 242, 240, 241, 243, 241, 242, 242, 240, 241, 242, 240, 241, 241, 239, 240, 241, 239, 240, 242, 240, 241, 244, 242, 243, 245, 243, 244, 246, 244, 245, 245, 243, 244, 245, 243, 244, 245, 243, 244, 245, 243, 244, 246, 244, 245, 246, 244, 245, 247, 245, 246, 247, 245, 246, 247, 245, 246, 249, 247, 248, 250, 248, 249, 250, 248, 249, 248, 246, 247, 247, 245, 246, 248, 246, 247, 250, 248, 249, 248, 247, 245, 248, 247, 245, 248, 247, 245, 248, 247, 245, 248, 247, 245, 248, 247, 245, 248, 247, 245, 248, 247, 245, 250, 249, 247, 250, 249, 247, 249, 248, 246, 249, 248, 246, 249, 248, 246, 248, 247, 245, 248, 247, 245, 248, 247, 245, 248, 247, 245, 248, 247, 245, 248, 247, 245, 247, 246, 244, 247, 246, 244, 246, 245, 243, 246, 245, 243, 246, 245, 243, 247, 246, 244, 248, 247, 245, 250, 249, 247, 251, 250, 248, 251, 250, 248, 251, 250, 248, 251, 250, 248, 250, 249, 247, 251, 250, 248, 250, 249, 247, 249, 248, 246, 247, 246, 244, 248, 244, 243, 248, 244, 243, 249, 245, 244, 249, 245, 244, 246, 242, 241, 245, 241, 240, 246, 240, 240, 246, 240, 240, 245, 239, 239, 245, 239, 239, 245, 239, 239, 244, 238, 238, 241, 235, 237, 240, 234, 236, 239, 235, 236, 239, 235, 236, 241, 237, 238, 243, 239, 240, 247, 243, 244, 249, 245, 246, 245, 243, 244, 245, 243, 244, 246, 244, 245, 247, 245, 246, 247, 245, 246, 246, 244, 245, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 245, 245, 245, 245, 245, 245, 245, 245, 245, 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 249, 249, 249, 249, 249, 249, 249, 249, 249, 245, 247, 246, 244, 246, 245, 241, 243, 242, 238, 240, 239, 234, 236, 235, 230, 232, 231, 228, 230, 229, 226, 228, 227, 232, 234, 233, 228, 230, 229, 221, 223, 222, 214, 216, 215, 211, 213, 212, 212, 214, 213, 215, 217, 216, 217, 219, 218, 216, 216, 214, 218, 218, 216, 220, 220, 218, 220, 220, 218, 218, 218, 216, 217, 217, 215, 220, 219, 215, 222, 221, 217, 206, 205, 201, 204, 203, 199, 205, 201, 198, 206, 202, 199, 208, 205, 200, 208, 205, 200, 206, 203, 198, 203, 200, 195, 203, 202, 200, 195, 194, 192, 186, 182, 179, 179, 175, 172, 177, 173, 170, 178, 174, 171, 180, 176, 173, 181, 177, 174, 182, 177, 173, 181, 176, 172, 184, 179, 175, 186, 181, 177, 183, 178, 174, 177, 172, 168, 178, 171, 165, 181, 174, 168, 179, 172, 166, 172, 165, 159, 160, 153, 147, 148, 141, 135, 144, 137, 131, 152, 145, 139, 167, 160, 154, 180, 173, 167, 175, 168, 162, 167, 160, 154, 161, 154, 148, 164, 157, 151, 168, 161, 155, 169, 162, 156, 171, 164, 158, 175, 168, 162, 170, 160, 158, 171, 161, 159, 173, 163, 161, 175, 165, 163, 176, 167, 162, 175, 166, 161, 173, 162, 158, 171, 160, 156, 164, 153, 147, 159, 148, 142, 151, 140, 134, 144, 133, 127, 141, 128, 122, 136, 123, 117, 130, 117, 111, 126, 113, 107, 120, 106, 103, 121, 107, 104, 123, 109, 106, 126, 112, 109, 128, 114, 111, 126, 112, 109, 121, 107, 104, 117, 103, 100, 114, 100, 97, 112, 98, 95, 110, 96, 93, 110, 96, 93, 113, 99, 96, 114, 100, 97, 114, 100, 97, 113, 99, 96, 107, 94, 88, 113, 100, 94, 119, 106, 100, 122, 109, 103, 123, 110, 104, 127, 114, 108, 134, 121, 115, 140, 127, 121, 133, 120, 114, 140, 127, 121, 146, 133, 127, 145, 132, 126, 136, 123, 117, 126, 113, 107, 119, 106, 100, 116, 103, 97, 110, 97, 91, 107, 94, 88, 106, 93, 87, 113, 100, 94, 126, 113, 107, 140, 127, 121, 149, 136, 130, 153, 140, 134, 154, 141, 135, 153, 140, 134, 151, 138, 132, 150, 137, 131, 150, 137, 131, 151, 138, 132, 152, 139, 133, 153, 140, 134, 149, 134, 129, 145, 130, 125, 142, 127, 122, 142, 127, 122, 144, 131, 125, 143, 130, 124, 139, 126, 120, 135, 122, 116, 153, 140, 134, 156, 143, 137, 157, 146, 140, 158, 147, 141, 160, 149, 143, 163, 152, 146, 168, 157, 151, 172, 161, 157, 170, 159, 157, 173, 161, 161, 177, 166, 164, 180, 169, 167, 184, 174, 172, 190, 180, 178, 197, 189, 186, 203, 195, 192, 207, 202, 199, 209, 205, 202, 213, 209, 208, 213, 212, 210, 214, 214, 216, 216, 216, 218, 220, 219, 224, 222, 223, 227, 223, 224, 229, 222, 225, 230, 224, 227, 232, 226, 229, 234, 229, 232, 237, 231, 234, 239, 233, 236, 241, 234, 237, 242, 232, 235, 240, 233, 236, 241, 234, 237, 242, 235, 238, 243, 236, 239, 244, 236, 239, 244, 235, 238, 243, 234, 237, 242, 234, 237, 242, 235, 238, 243, 236, 239, 244, 237, 240, 245, 239, 242, 247, 240, 243, 248, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 240, 244, 247, 241, 245, 248, 242, 246, 249, 243, 247, 250, 244, 248, 251, 243, 247, 250, 243, 247, 250, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 243, 247, 250, 242, 246, 249, 241, 245, 248, 239, 243, 246, 238, 242, 245, 237, 241, 244, 236, 240, 243, 232, 236, 239, 231, 235, 238, 232, 233, 237, 228, 229, 233, 223, 224, 226, 216, 217, 219, 212, 212, 214, 209, 209, 211, 209, 207, 208, 208, 206, 207, 207, 203, 202, 204, 200, 199, 202, 198, 195, 201, 197, 194, 200, 196, 193, 200, 196, 193, 198, 193, 190, 195, 190, 187, 192, 187, 184, 193, 188, 185, 196, 191, 188, 196, 191, 188, 194, 189, 186, 190, 185, 182, 190, 185, 182, 184, 179, 176, 179, 174, 171, 179, 174, 171, 182, 177, 174, 185, 180, 177, 183, 178, 175, 181, 176, 173, 180, 175, 172, 181, 176, 173, 181, 176, 173, 181, 176, 173, 180, 175, 172, 178, 173, 170, 176, 171, 168, 174, 169, 166, 176, 171, 168, 177, 172, 169, 178, 173, 170, 180, 175, 172, 182, 177, 174, 184, 179, 176, 185, 180, 177, 185, 180, 177, 183, 175, 172, 182, 174, 171, 180, 172, 169, 177, 169, 166, 171, 163, 160, 165, 157, 154, 159, 151, 148, 156, 148, 145, 158, 150, 147, 161, 153, 150, 163, 155, 152, 161, 153, 150, 158, 150, 147, 160, 152, 149, 169, 161, 158, 177, 169, 166, 176, 168, 165, 178, 170, 167, 179, 171, 168, 178, 170, 167, 176, 168, 165, 175, 167, 164, 173, 168, 164, 175, 170, 166, 150, 145, 141, 161, 156, 152, 165, 160, 156, 168, 163, 159, 175, 172, 167, 173, 170, 165, 169, 166, 161, 175, 172, 167, 173, 169, 166, 165, 161, 158, 156, 152, 149, 142, 138, 135, 133, 130, 125, 148, 145, 140, 165, 162, 157, 165, 162, 157, 162, 159, 154, 163, 160, 155, 169, 166, 159, 179, 176, 169, 186, 183, 176, 187, 184, 177, 185, 182, 175, 184, 181, 174, 170, 165, 162, 160, 155, 152, 146, 141, 138, 141, 136, 133, 152, 147, 144, 165, 160, 157, 166, 162, 159, 159, 155, 152, 146, 142, 139, 157, 153, 150, 172, 168, 165, 181, 177, 174, 180, 179, 175, 173, 172, 168, 165, 164, 160, 160, 159, 155, 174, 173, 168, 166, 166, 158, 170, 170, 162, 184, 184, 176, 188, 188, 180, 175, 175, 167, 165, 165, 157, 165, 165, 157, 144, 144, 136, 148, 148, 140, 155, 155, 147, 165, 165, 157, 175, 175, 167, 179, 179, 171, 179, 179, 171, 177, 177, 169, 178, 177, 172, 177, 176, 171, 175, 174, 169, 173, 172, 167, 175, 174, 170, 177, 176, 172, 177, 176, 172, 175, 174, 170, 175, 174, 170, 180, 179, 175, 187, 186, 184, 193, 192, 190, 197, 196, 194, 199, 198, 196, 202, 201, 199, 204, 203, 201, 198, 198, 196, 178, 178, 176, 180, 180, 178, 195, 195, 193, 195, 195, 193, 195, 195, 193, 201, 201, 199, 202, 202, 200, 217, 217, 215, 217, 217, 215, 216, 216, 214, 214, 214, 212, 212, 212, 210, 209, 209, 207, 206, 206, 204, 205, 205, 203, 216, 218, 217, 219, 221, 220, 221, 223, 222, 221, 223, 222, 219, 221, 220, 220, 222, 221, 224, 226, 225, 228, 230, 229, 227, 229, 228, 229, 231, 230, 232, 234, 233, 236, 238, 237, 239, 241, 240, 240, 242, 241, 240, 242, 241, 240, 242, 241, 243, 241, 242, 243, 241, 242, 242, 240, 241, 241, 239, 240, 241, 239, 240, 242, 240, 241, 243, 241, 242, 243, 241, 242, 242, 240, 241, 242, 240, 241, 242, 240, 241, 242, 240, 241, 242, 240, 241, 244, 242, 243, 245, 243, 244, 246, 244, 245, 244, 242, 243, 245, 243, 244, 245, 243, 244, 245, 243, 244, 246, 244, 245, 246, 244, 245, 246, 244, 245, 247, 245, 246, 246, 244, 245, 248, 246, 247, 250, 248, 249, 249, 247, 248, 247, 245, 246, 246, 244, 245, 247, 245, 246, 249, 247, 248, 248, 247, 245, 248, 247, 245, 248, 247, 245, 248, 247, 245, 248, 247, 245, 248, 247, 245, 248, 247, 245, 248, 247, 245, 250, 249, 247, 250, 249, 247, 249, 248, 246, 249, 248, 246, 248, 247, 245, 248, 247, 245, 248, 247, 245, 248, 247, 245, 249, 248, 246, 248, 247, 245, 248, 247, 245, 248, 247, 245, 247, 246, 244, 247, 246, 244, 247, 246, 244, 246, 245, 243, 248, 247, 245, 249, 248, 246, 250, 249, 247, 251, 250, 248, 251, 250, 248, 250, 249, 247, 249, 248, 246, 248, 247, 245, 251, 250, 248, 250, 249, 247, 248, 247, 245, 247, 246, 244, 248, 244, 243, 248, 244, 243, 248, 244, 243, 249, 245, 244, 245, 241, 240, 245, 241, 240, 246, 240, 240, 246, 240, 240, 245, 239, 239, 245, 239, 239, 244, 238, 238, 244, 238, 238, 241, 235, 237, 241, 235, 237, 239, 235, 236, 239, 235, 236, 240, 236, 237, 243, 239, 240, 246, 242, 243, 248, 244, 245, 244, 242, 243, 245, 243, 244, 246, 244, 245, 247, 245, 246, 247, 245, 246, 246, 244, 245, 244, 244, 244, 243, 243, 243, 244, 244, 244, 244, 244, 244, 244, 244, 244, 245, 245, 245, 245, 245, 245, 245, 245, 245, 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 249, 249, 249, 249, 249, 249, 249, 249, 249, 246, 248, 247, 245, 247, 246, 243, 245, 244, 239, 241, 240, 236, 238, 237, 232, 234, 233, 230, 232, 231, 229, 231, 230, 228, 230, 229, 227, 229, 228, 225, 227, 226, 222, 224, 223, 219, 221, 220, 217, 219, 218, 216, 218, 217, 215, 217, 216, 213, 213, 211, 212, 212, 210, 211, 211, 209, 210, 210, 208, 209, 209, 207, 208, 208, 206, 208, 207, 203, 208, 207, 203, 221, 220, 216, 217, 216, 212, 216, 212, 209, 214, 210, 207, 215, 212, 207, 216, 213, 208, 215, 212, 207, 214, 211, 206, 210, 209, 207, 210, 209, 207, 211, 207, 204, 211, 207, 204, 209, 205, 202, 204, 200, 197, 197, 193, 190, 192, 188, 185, 191, 186, 182, 186, 181, 177, 182, 177, 173, 180, 175, 171, 175, 170, 166, 169, 164, 160, 172, 165, 159, 177, 170, 164, 184, 177, 171, 173, 166, 160, 160, 153, 147, 155, 148, 142, 160, 153, 147, 167, 160, 154, 172, 165, 159, 173, 166, 160, 164, 157, 151, 167, 160, 154, 171, 164, 158, 173, 166, 160, 167, 160, 154, 159, 152, 146, 160, 153, 147, 166, 159, 153, 170, 160, 158, 172, 162, 160, 172, 162, 160, 170, 160, 158, 165, 156, 151, 163, 154, 149, 165, 154, 150, 168, 157, 153, 151, 140, 134, 146, 135, 129, 138, 127, 121, 131, 120, 114, 127, 114, 108, 122, 109, 103, 116, 103, 97, 112, 99, 93, 119, 105, 102, 115, 101, 98, 110, 96, 93, 110, 96, 93, 114, 100, 97, 121, 107, 104, 126, 112, 109, 128, 114, 111, 132, 118, 115, 128, 114, 111, 123, 109, 106, 121, 107, 104, 119, 105, 102, 118, 104, 101, 115, 101, 98, 112, 98, 95, 130, 117, 111, 131, 118, 112, 132, 119, 113, 130, 117, 111, 126, 113, 107, 123, 110, 104, 122, 109, 103, 122, 109, 103, 130, 117, 111, 134, 121, 115, 139, 126, 120, 141, 128, 122, 140, 127, 121, 138, 125, 119, 136, 123, 117, 136, 123, 117, 133, 120, 114, 129, 116, 110, 125, 112, 106, 128, 115, 109, 137, 124, 118, 147, 134, 128, 153, 140, 134, 155, 142, 136, 152, 139, 133, 154, 141, 135, 156, 143, 137, 157, 144, 138, 158, 145, 139, 157, 144, 138, 156, 143, 137, 155, 142, 136, 157, 142, 137, 152, 137, 132, 147, 132, 127, 146, 131, 126, 148, 135, 129, 151, 138, 132, 150, 137, 131, 149, 136, 130, 154, 141, 135, 156, 143, 137, 157, 146, 140, 158, 147, 141, 159, 148, 142, 161, 150, 144, 165, 154, 148, 169, 158, 154, 173, 162, 160, 176, 164, 164, 179, 168, 166, 183, 172, 170, 185, 175, 173, 191, 181, 179, 198, 190, 187, 203, 195, 192, 203, 198, 195, 205, 201, 198, 209, 205, 204, 209, 208, 206, 209, 209, 209, 211, 211, 213, 215, 214, 219, 217, 218, 222, 222, 223, 228, 220, 223, 228, 222, 225, 230, 225, 228, 233, 227, 230, 235, 229, 232, 237, 231, 234, 239, 232, 235, 240, 232, 235, 240, 232, 235, 240, 234, 237, 242, 235, 238, 243, 235, 238, 243, 235, 238, 243, 234, 237, 242, 234, 237, 242, 233, 236, 241, 234, 237, 242, 235, 238, 243, 237, 240, 245, 238, 241, 246, 240, 243, 248, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 240, 244, 247, 241, 245, 248, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 243, 247, 250, 243, 247, 250, 241, 245, 248, 240, 244, 247, 239, 243, 246, 238, 242, 245, 237, 241, 244, 232, 235, 240, 231, 234, 239, 230, 234, 237, 226, 230, 233, 223, 224, 228, 217, 218, 222, 213, 213, 215, 210, 210, 212, 207, 207, 207, 206, 206, 206, 205, 204, 202, 202, 201, 199, 203, 199, 198, 202, 198, 197, 202, 198, 197, 202, 198, 197, 200, 195, 192, 198, 193, 190, 196, 191, 188, 195, 190, 187, 197, 192, 189, 196, 191, 188, 194, 189, 186, 192, 187, 184, 191, 186, 183, 183, 178, 175, 178, 173, 170, 181, 176, 173, 189, 184, 181, 192, 187, 184, 186, 181, 178, 179, 174, 171, 178, 173, 170, 177, 172, 169, 176, 171, 168, 176, 171, 168, 177, 172, 169, 179, 174, 171, 182, 177, 174, 184, 179, 176, 183, 178, 175, 181, 176, 173, 179, 174, 171, 179, 174, 171, 182, 177, 174, 188, 183, 180, 194, 189, 186, 198, 193, 190, 193, 185, 182, 192, 184, 181, 190, 182, 179, 186, 178, 175, 180, 172, 169, 173, 165, 162, 167, 159, 156, 163, 155, 152, 180, 172, 169, 183, 175, 172, 185, 177, 174, 183, 175, 172, 180, 172, 169, 179, 171, 168, 184, 176, 173, 188, 180, 177, 171, 163, 160, 170, 162, 159, 170, 162, 159, 172, 164, 161, 177, 169, 166, 182, 174, 171, 182, 177, 173, 183, 178, 174, 162, 157, 153, 172, 167, 163, 174, 169, 165, 173, 168, 164, 172, 169, 164, 162, 159, 154, 150, 147, 142, 151, 148, 143, 157, 156, 152, 173, 172, 168, 186, 185, 181, 178, 177, 173, 168, 167, 162, 175, 174, 169, 174, 173, 168, 155, 154, 149, 171, 170, 165, 175, 174, 169, 173, 173, 165, 167, 167, 159, 169, 169, 161, 175, 175, 167, 173, 173, 165, 167, 164, 157, 150, 145, 142, 142, 134, 132, 127, 122, 119, 127, 122, 119, 143, 138, 135, 158, 153, 150, 158, 153, 150, 149, 144, 141, 147, 143, 140, 157, 153, 150, 169, 165, 162, 174, 170, 167, 172, 168, 165, 169, 165, 162, 169, 168, 164, 172, 171, 167, 183, 180, 175, 179, 176, 171, 180, 177, 172, 182, 179, 174, 175, 172, 167, 164, 161, 156, 167, 164, 159, 179, 176, 171, 191, 188, 183, 182, 179, 174, 172, 169, 164, 169, 166, 161, 171, 168, 163, 173, 170, 165, 170, 167, 162, 166, 163, 158, 189, 188, 183, 175, 174, 169, 170, 169, 164, 181, 180, 175, 190, 189, 185, 186, 185, 181, 178, 177, 173, 174, 173, 169, 186, 185, 181, 186, 185, 181, 187, 186, 184, 190, 189, 187, 193, 192, 190, 193, 192, 190, 191, 190, 188, 188, 187, 185, 185, 185, 183, 168, 168, 166, 175, 175, 173, 197, 197, 195, 200, 200, 198, 196, 196, 194, 201, 201, 199, 210, 210, 208, 217, 217, 215, 216, 216, 214, 214, 214, 212, 211, 211, 209, 208, 208, 206, 205, 205, 203, 203, 203, 201, 202, 202, 200, 214, 216, 215, 217, 219, 218, 220, 222, 221, 222, 224, 223, 223, 225, 224, 226, 228, 227, 231, 233, 232, 235, 237, 236, 234, 236, 235, 235, 237, 236, 237, 239, 238, 239, 241, 240, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 244, 242, 243, 243, 241, 242, 242, 240, 241, 242, 240, 241, 242, 240, 241, 242, 240, 241, 243, 241, 242, 244, 242, 243, 243, 241, 242, 243, 241, 242, 242, 240, 241, 242, 240, 241, 243, 241, 242, 244, 242, 243, 245, 243, 244, 246, 244, 245, 244, 242, 243, 244, 242, 243, 245, 243, 244, 245, 243, 244, 245, 243, 244, 246, 244, 245, 246, 244, 245, 246, 244, 245, 245, 243, 244, 247, 245, 246, 248, 246, 247, 248, 246, 247, 246, 244, 245, 245, 243, 244, 246, 244, 245, 248, 246, 247, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 248, 247, 245, 248, 247, 245, 247, 246, 244, 247, 246, 244, 251, 247, 246, 251, 247, 246, 251, 247, 246, 250, 246, 245, 250, 246, 245, 250, 246, 245, 249, 245, 244, 249, 245, 244, 252, 248, 247, 252, 248, 247, 253, 249, 248, 252, 248, 247, 252, 248, 247, 250, 246, 245, 249, 245, 244, 248, 244, 243, 250, 249, 247, 249, 248, 246, 250, 246, 245, 248, 244, 243, 248, 244, 243, 247, 243, 242, 248, 244, 243, 248, 244, 243, 246, 240, 240, 246, 240, 240, 246, 240, 240, 245, 239, 239, 245, 239, 239, 245, 239, 239, 246, 237, 238, 246, 237, 238, 242, 236, 238, 241, 235, 237, 240, 234, 236, 240, 234, 236, 240, 236, 237, 243, 239, 240, 245, 241, 242, 247, 243, 244, 246, 242, 243, 247, 243, 244, 246, 244, 245, 246, 244, 245, 246, 244, 245, 246, 244, 245, 245, 243, 244, 244, 242, 243, 244, 244, 244, 244, 244, 244, 244, 244, 244, 245, 245, 245, 245, 245, 245, 245, 245, 245, 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 249, 249, 249, 249, 249, 249, 249, 249, 249, 248, 250, 249, 247, 249, 248, 245, 247, 246, 242, 244, 243, 239, 241, 240, 236, 238, 237, 234, 236, 235, 233, 235, 234, 224, 226, 225, 226, 228, 227, 228, 230, 229, 229, 231, 230, 227, 229, 228, 223, 225, 224, 217, 219, 218, 214, 216, 215, 213, 213, 211, 209, 209, 207, 205, 205, 203, 204, 204, 202, 205, 205, 203, 204, 204, 202, 200, 201, 196, 195, 196, 191, 199, 198, 194, 195, 194, 190, 191, 190, 186, 192, 191, 187, 199, 196, 191, 207, 204, 199, 213, 210, 205, 216, 213, 208, 215, 214, 212, 209, 208, 206, 203, 199, 196, 196, 192, 189, 193, 189, 186, 192, 188, 185, 190, 186, 183, 188, 184, 181, 173, 168, 164, 165, 160, 156, 159, 154, 150, 158, 153, 149, 158, 153, 149, 159, 154, 150, 167, 160, 154, 174, 167, 161, 180, 172, 169, 176, 168, 165, 170, 162, 159, 166, 158, 155, 165, 157, 154, 165, 157, 154, 166, 158, 155, 165, 157, 154, 165, 157, 154, 167, 159, 156, 173, 165, 162, 179, 171, 168, 176, 168, 165, 166, 158, 155, 160, 152, 149, 160, 152, 149, 167, 157, 155, 169, 159, 157, 169, 159, 157, 165, 155, 153, 161, 150, 146, 161, 150, 146, 166, 155, 151, 171, 160, 156, 162, 151, 145, 157, 146, 140, 152, 139, 133, 145, 132, 126, 140, 127, 121, 135, 122, 116, 130, 117, 111, 126, 113, 107, 125, 111, 108, 120, 106, 103, 116, 102, 99, 117, 103, 100, 123, 109, 106, 131, 117, 114, 138, 124, 121, 142, 128, 125, 136, 122, 119, 133, 119, 116, 130, 116, 113, 128, 114, 111, 129, 115, 112, 128, 114, 111, 127, 113, 110, 125, 111, 108, 127, 114, 108, 127, 114, 108, 127, 114, 108, 129, 116, 110, 129, 116, 110, 128, 115, 109, 124, 111, 105, 120, 107, 101, 135, 122, 116, 134, 121, 115, 134, 121, 115, 136, 123, 117, 139, 126, 120, 141, 128, 122, 140, 127, 121, 139, 126, 120, 141, 128, 122, 137, 124, 118, 133, 120, 114, 134, 121, 115, 139, 126, 120, 145, 132, 126, 150, 137, 131, 151, 138, 132, 153, 140, 134, 153, 140, 134, 153, 140, 134, 154, 141, 135, 154, 141, 135, 155, 142, 136, 156, 143, 137, 156, 143, 137, 159, 144, 139, 154, 139, 134, 150, 135, 130, 149, 134, 129, 151, 138, 132, 156, 143, 137, 160, 147, 141, 161, 148, 142, 160, 147, 141, 162, 149, 143, 162, 151, 145, 162, 151, 145, 161, 150, 144, 163, 152, 146, 167, 156, 150, 170, 159, 155, 179, 168, 166, 182, 171, 169, 185, 174, 172, 188, 177, 175, 190, 181, 176, 195, 186, 181, 200, 193, 187, 205, 198, 192, 201, 196, 192, 203, 199, 196, 207, 203, 202, 207, 206, 204, 207, 207, 207, 209, 209, 209, 212, 212, 214, 214, 215, 219, 219, 220, 225, 218, 221, 226, 220, 223, 228, 222, 225, 230, 224, 227, 232, 227, 230, 235, 228, 231, 236, 229, 232, 237, 230, 233, 238, 231, 234, 239, 232, 235, 240, 233, 236, 241, 234, 237, 242, 233, 236, 241, 233, 236, 241, 232, 235, 240, 233, 236, 241, 233, 236, 241, 234, 237, 242, 236, 239, 244, 238, 241, 246, 239, 242, 247, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 244, 247, 240, 244, 247, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 241, 245, 248, 240, 244, 247, 239, 243, 246, 238, 242, 245, 237, 241, 244, 237, 241, 244, 232, 235, 240, 232, 235, 240, 230, 234, 237, 227, 231, 234, 225, 226, 230, 219, 220, 224, 215, 215, 217, 212, 212, 214, 207, 207, 207, 205, 205, 205, 205, 204, 202, 203, 202, 200, 203, 199, 198, 203, 199, 198, 203, 199, 198, 203, 199, 198, 202, 197, 194, 201, 196, 193, 199, 194, 191, 197, 192, 189, 197, 192, 189, 195, 190, 187, 193, 188, 185, 192, 187, 184, 185, 180, 177, 182, 177, 174, 181, 176, 173, 184, 179, 176, 188, 183, 180, 189, 184, 181, 185, 180, 177, 181, 176, 173, 172, 167, 164, 172, 167, 164, 172, 167, 164, 173, 168, 165, 174, 169, 166, 177, 172, 169, 180, 175, 172, 181, 176, 173, 182, 177, 174, 181, 176, 173, 179, 174, 171, 180, 175, 172, 183, 178, 175, 189, 184, 181, 196, 191, 188, 200, 195, 192, 200, 192, 189, 196, 188, 185, 191, 183, 180, 186, 178, 175, 183, 175, 172, 184, 176, 173, 186, 178, 175, 188, 180, 177, 180, 172, 169, 179, 171, 168, 176, 168, 165, 171, 163, 160, 168, 160, 157, 170, 162, 159, 176, 168, 165, 182, 174, 171, 182, 174, 171, 177, 169, 166, 171, 163, 160, 169, 161, 158, 172, 164, 161, 173, 165, 162, 168, 163, 159, 165, 160, 156, 168, 163, 159, 173, 168, 164, 169, 164, 160, 163, 158, 154, 162, 159, 154, 155, 152, 147, 150, 147, 142, 156, 153, 148, 161, 157, 154, 165, 164, 160, 172, 168, 165, 162, 161, 157, 156, 153, 148, 169, 168, 163, 185, 182, 177, 179, 178, 173, 157, 154, 149, 158, 157, 152, 163, 160, 153, 162, 162, 154, 167, 164, 157, 165, 165, 157, 162, 159, 152, 156, 153, 146, 170, 165, 162, 169, 161, 159, 162, 157, 154, 163, 158, 155, 172, 167, 164, 180, 175, 172, 178, 173, 170, 171, 166, 163, 169, 165, 162, 175, 171, 168, 178, 174, 171, 176, 172, 169, 171, 167, 164, 176, 172, 169, 187, 186, 182, 200, 199, 195, 193, 190, 185, 189, 186, 181, 184, 181, 176, 177, 174, 169, 166, 163, 158, 158, 155, 150, 165, 162, 157, 177, 174, 169, 198, 195, 190, 178, 175, 170, 154, 151, 146, 145, 142, 137, 154, 151, 146, 170, 167, 162, 184, 181, 176, 189, 186, 181, 189, 188, 183, 179, 178, 173, 174, 173, 168, 181, 180, 175, 190, 189, 185, 191, 190, 186, 183, 182, 178, 176, 175, 171, 195, 194, 190, 190, 189, 185, 185, 184, 182, 185, 184, 182, 189, 188, 186, 190, 189, 187, 188, 187, 185, 185, 184, 182, 180, 180, 178, 182, 182, 180, 193, 193, 191, 203, 203, 201, 202, 202, 200, 201, 201, 199, 208, 208, 206, 217, 217, 215, 219, 219, 217, 218, 218, 216, 215, 215, 213, 211, 211, 209, 208, 208, 206, 206, 206, 204, 204, 204, 202, 203, 203, 201, 214, 216, 215, 216, 218, 217, 220, 222, 221, 224, 226, 225, 228, 230, 229, 234, 236, 235, 239, 241, 240, 242, 244, 243, 241, 243, 242, 241, 243, 242, 242, 244, 243, 242, 244, 243, 243, 245, 244, 242, 244, 243, 242, 244, 243, 242, 244, 243, 245, 243, 244, 244, 242, 243, 243, 241, 242, 242, 240, 241, 242, 240, 241, 243, 241, 242, 244, 242, 243, 245, 243, 244, 244, 242, 243, 244, 242, 243, 243, 241, 242, 243, 241, 242, 243, 241, 242, 244, 242, 243, 245, 243, 244, 245, 243, 244, 244, 242, 243, 244, 242, 243, 244, 242, 243, 245, 243, 244, 245, 243, 244, 245, 243, 244, 246, 244, 245, 246, 244, 245, 244, 242, 243, 246, 244, 245, 247, 245, 246, 247, 245, 246, 245, 243, 244, 244, 242, 243, 245, 243, 244, 247, 245, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 248, 247, 245, 248, 247, 245, 247, 246, 244, 247, 246, 244, 247, 246, 244, 252, 248, 247, 251, 247, 246, 251, 247, 246, 251, 247, 246, 250, 246, 245, 250, 246, 245, 250, 246, 245, 249, 245, 244, 253, 249, 248, 253, 249, 248, 253, 249, 248, 252, 248, 247, 251, 247, 246, 249, 245, 244, 247, 243, 242, 246, 242, 241, 250, 249, 247, 249, 248, 246, 249, 245, 244, 248, 244, 243, 247, 243, 242, 247, 243, 242, 247, 243, 242, 247, 243, 242, 246, 240, 240, 246, 240, 240, 245, 239, 239, 245, 239, 239, 245, 239, 239, 244, 238, 238, 246, 237, 238, 246, 237, 238, 242, 236, 238, 241, 235, 237, 240, 234, 236, 239, 233, 235, 239, 235, 236, 242, 238, 239, 244, 240, 241, 246, 242, 243, 246, 242, 243, 246, 242, 243, 245, 243, 244, 246, 244, 245, 246, 244, 245, 245, 243, 244, 244, 242, 243, 244, 242, 243, 244, 244, 244, 244, 244, 244, 244, 244, 244, 245, 245, 245, 245, 245, 245, 245, 245, 245, 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 251, 250, 248, 250, 249, 247, 249, 248, 244, 246, 245, 242, 244, 243, 240, 242, 241, 238, 240, 239, 237, 239, 238, 224, 226, 225, 226, 228, 227, 229, 231, 230, 230, 232, 231, 229, 231, 230, 224, 226, 225, 219, 221, 220, 216, 218, 217, 218, 218, 216, 212, 212, 210, 206, 206, 204, 206, 206, 204, 210, 210, 208, 210, 210, 208, 204, 205, 200, 198, 199, 194, 178, 177, 173, 173, 172, 168, 168, 167, 163, 169, 168, 164, 177, 174, 169, 187, 184, 179, 196, 193, 188, 201, 198, 193, 197, 196, 194, 190, 189, 187, 183, 179, 176, 177, 173, 170, 177, 173, 170, 181, 177, 174, 185, 181, 178, 187, 183, 180, 172, 167, 163, 165, 160, 156, 160, 155, 151, 162, 157, 153, 165, 160, 156, 168, 163, 159, 176, 169, 163, 183, 176, 170, 177, 169, 166, 185, 177, 174, 189, 181, 178, 180, 172, 169, 164, 156, 153, 158, 150, 147, 164, 156, 153, 175, 167, 164, 174, 166, 163, 162, 154, 151, 156, 148, 145, 165, 157, 154, 176, 168, 165, 175, 167, 164, 163, 155, 152, 154, 146, 143, 162, 152, 150, 162, 152, 150, 163, 153, 151, 165, 155, 153, 169, 158, 154, 171, 160, 156, 172, 161, 157, 172, 161, 157, 153, 142, 136, 149, 138, 132, 146, 133, 127, 141, 128, 122, 139, 126, 120, 136, 123, 117, 132, 119, 113, 129, 116, 110, 138, 124, 121, 139, 125, 122, 141, 127, 124, 145, 131, 128, 150, 136, 133, 151, 137, 134, 149, 135, 132, 147, 133, 130, 136, 122, 119, 133, 119, 116, 130, 116, 113, 129, 115, 112, 130, 116, 113, 131, 117, 114, 130, 116, 113, 128, 114, 111, 116, 103, 97, 115, 102, 96, 117, 104, 98, 124, 111, 105, 131, 118, 112, 134, 121, 115, 130, 117, 111, 126, 113, 107, 131, 118, 112, 129, 116, 110, 128, 115, 109, 132, 119, 113, 138, 125, 119, 141, 128, 122, 139, 126, 120, 135, 122, 116, 135, 122, 116, 133, 120, 114, 132, 119, 113, 132, 119, 113, 136, 123, 117, 141, 128, 122, 146, 133, 127, 148, 135, 129, 152, 139, 133, 149, 136, 130, 144, 131, 125, 141, 128, 122, 140, 127, 121, 142, 129, 123, 145, 132, 126, 148, 135, 129, 149, 134, 129, 148, 133, 128, 147, 132, 127, 149, 134, 129, 152, 139, 133, 157, 144, 138, 161, 148, 142, 163, 150, 144, 168, 155, 149, 170, 157, 151, 169, 158, 152, 168, 157, 151, 167, 156, 150, 168, 157, 151, 171, 160, 154, 173, 162, 156, 182, 171, 167, 186, 175, 173, 190, 179, 177, 193, 182, 178, 194, 185, 180, 198, 189, 184, 202, 195, 189, 205, 198, 192, 203, 198, 194, 205, 202, 197, 208, 204, 201, 208, 207, 205, 208, 208, 208, 209, 209, 209, 213, 213, 215, 215, 216, 218, 216, 217, 221, 215, 218, 223, 217, 220, 225, 219, 222, 227, 221, 224, 229, 224, 227, 232, 225, 228, 233, 226, 229, 234, 228, 231, 236, 229, 232, 237, 230, 233, 238, 231, 234, 239, 232, 235, 240, 231, 234, 239, 231, 234, 239, 230, 233, 238, 231, 234, 239, 232, 235, 240, 233, 236, 241, 235, 238, 243, 236, 239, 244, 238, 241, 246, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 243, 246, 240, 244, 247, 241, 245, 248, 242, 246, 249, 243, 247, 250, 243, 247, 250, 242, 246, 249, 241, 245, 248, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 240, 244, 247, 239, 243, 246, 239, 243, 246, 238, 242, 245, 238, 242, 245, 237, 241, 244, 237, 241, 244, 236, 240, 243, 234, 237, 242, 233, 236, 241, 232, 235, 240, 229, 232, 237, 227, 228, 232, 222, 223, 227, 217, 218, 220, 214, 215, 217, 208, 208, 208, 207, 207, 207, 205, 203, 204, 203, 201, 202, 204, 200, 199, 203, 199, 198, 203, 199, 198, 203, 199, 198, 202, 197, 194, 202, 197, 194, 201, 196, 193, 198, 193, 190, 195, 190, 187, 193, 188, 185, 191, 186, 183, 191, 186, 183, 177, 172, 169, 182, 177, 174, 186, 181, 178, 186, 181, 178, 182, 177, 174, 179, 174, 171, 181, 176, 173, 183, 178, 175, 171, 166, 163, 172, 167, 164, 174, 169, 166, 176, 171, 168, 177, 172, 169, 177, 172, 169, 176, 171, 168, 175, 170, 167, 181, 176, 173, 182, 177, 174, 183, 178, 175, 185, 180, 177, 188, 183, 180, 191, 186, 183, 194, 189, 186, 195, 190, 187, 189, 181, 178, 186, 178, 175, 182, 174, 171, 179, 171, 168, 179, 171, 168, 181, 173, 170, 185, 177, 174, 188, 180, 177, 165, 157, 154, 164, 156, 153, 163, 155, 152, 162, 154, 151, 163, 155, 152, 168, 160, 157, 174, 166, 163, 179, 171, 168, 176, 168, 166, 170, 162, 160, 164, 156, 154, 161, 153, 151, 162, 154, 152, 161, 153, 151, 155, 150, 147, 150, 145, 142, 147, 142, 139, 154, 149, 146, 152, 147, 144, 151, 146, 143, 157, 153, 150, 159, 155, 152, 162, 158, 155, 172, 168, 165, 167, 163, 160, 158, 154, 151, 157, 152, 149, 152, 148, 145, 141, 136, 132, 141, 138, 133, 152, 147, 143, 154, 151, 146, 142, 137, 133, 141, 138, 133, 156, 151, 145, 176, 173, 166, 182, 177, 171, 167, 164, 157, 155, 150, 144, 153, 148, 142, 178, 170, 168, 182, 174, 172, 180, 172, 170, 172, 164, 162, 166, 161, 158, 169, 164, 161, 173, 168, 165, 174, 169, 166, 168, 163, 160, 178, 173, 170, 187, 183, 180, 187, 183, 180, 179, 175, 172, 174, 170, 167, 177, 173, 170, 182, 178, 175, 161, 157, 154, 165, 161, 158, 172, 168, 165, 179, 175, 172, 181, 177, 174, 179, 175, 172, 178, 174, 171, 181, 177, 174, 160, 156, 153, 152, 148, 145, 146, 142, 139, 153, 149, 146, 169, 165, 162, 184, 180, 177, 190, 186, 183, 190, 186, 183, 174, 173, 168, 180, 179, 174, 177, 176, 171, 170, 169, 164, 174, 173, 169, 185, 184, 180, 186, 185, 181, 176, 175, 171, 182, 181, 177, 181, 180, 176, 182, 181, 179, 188, 187, 185, 196, 195, 193, 199, 198, 196, 196, 195, 193, 192, 191, 189, 182, 182, 180, 206, 206, 204, 216, 216, 214, 203, 203, 201, 196, 196, 194, 205, 205, 203, 215, 215, 213, 217, 217, 215, 224, 224, 222, 222, 222, 220, 218, 218, 216, 215, 215, 213, 212, 212, 210, 210, 210, 208, 209, 209, 207, 209, 209, 207, 217, 219, 218, 218, 220, 219, 221, 223, 222, 226, 228, 227, 233, 235, 234, 240, 242, 241, 244, 246, 245, 247, 249, 248, 246, 248, 247, 245, 247, 246, 245, 247, 246, 244, 246, 245, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 246, 244, 245, 245, 243, 244, 244, 242, 243, 243, 241, 242, 243, 241, 242, 244, 242, 243, 245, 243, 244, 246, 244, 245, 246, 244, 245, 245, 243, 244, 244, 242, 243, 243, 241, 242, 243, 241, 242, 243, 241, 242, 244, 242, 243, 245, 243, 244, 243, 241, 242, 244, 242, 243, 244, 242, 243, 244, 242, 243, 245, 243, 244, 245, 243, 244, 245, 243, 244, 245, 243, 244, 244, 242, 243, 246, 244, 245, 247, 245, 246, 246, 244, 245, 244, 242, 243, 243, 241, 242, 245, 243, 244, 247, 245, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 248, 247, 245, 248, 247, 245, 248, 247, 245, 247, 246, 244, 247, 246, 244, 247, 246, 244, 246, 245, 243, 251, 247, 246, 251, 247, 246, 251, 247, 246, 250, 246, 245, 250, 246, 245, 249, 245, 244, 249, 245, 244, 249, 245, 244, 252, 248, 247, 252, 248, 247, 252, 248, 247, 251, 247, 246, 250, 246, 245, 248, 244, 243, 246, 242, 241, 245, 241, 240, 251, 247, 246, 250, 246, 245, 248, 244, 243, 247, 243, 242, 246, 242, 241, 246, 242, 241, 247, 241, 241, 248, 242, 242, 245, 239, 239, 245, 239, 239, 245, 239, 239, 244, 238, 238, 246, 237, 238, 246, 237, 238, 245, 236, 237, 245, 236, 237, 242, 236, 238, 241, 235, 237, 240, 234, 236, 239, 233, 235, 240, 234, 236, 242, 236, 238, 243, 239, 240, 245, 241, 242, 245, 241, 242, 246, 242, 243, 247, 243, 244, 248, 244, 245, 246, 244, 245, 245, 243, 244, 244, 242, 243, 243, 241, 242, 244, 244, 244, 244, 244, 244, 244, 244, 244, 245, 245, 245, 245, 245, 245, 245, 245, 245, 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 249, 249, 249, 249, 249, 249, 249, 249, 249, 250, 252, 251, 249, 251, 250, 248, 250, 249, 246, 248, 247, 245, 247, 246, 243, 245, 244, 242, 244, 243, 241, 243, 242, 230, 232, 231, 230, 232, 231, 229, 231, 230, 227, 229, 228, 225, 227, 226, 223, 225, 224, 221, 223, 222, 220, 222, 221, 220, 222, 219, 214, 216, 213, 209, 211, 208, 210, 212, 209, 216, 216, 214, 217, 217, 215, 212, 213, 208, 206, 207, 202, 199, 198, 194, 192, 191, 187, 184, 183, 179, 180, 179, 175, 181, 180, 175, 185, 184, 179, 189, 188, 183, 192, 191, 186, 181, 180, 178, 184, 183, 181, 192, 188, 185, 199, 195, 192, 204, 200, 197, 205, 201, 198, 201, 197, 194, 197, 193, 190, 200, 195, 191, 193, 188, 184, 189, 184, 180, 192, 187, 183, 193, 188, 184, 191, 186, 182, 192, 185, 179, 193, 186, 180, 179, 171, 168, 187, 179, 176, 191, 183, 180, 182, 174, 171, 169, 161, 158, 166, 158, 155, 176, 168, 165, 189, 181, 178, 180, 172, 169, 162, 154, 151, 148, 140, 137, 150, 142, 139, 160, 152, 149, 163, 155, 152, 158, 150, 147, 154, 146, 143, 164, 154, 152, 160, 150, 148, 161, 150, 148, 167, 156, 154, 176, 165, 161, 177, 166, 162, 168, 157, 153, 159, 148, 144, 147, 134, 128, 144, 131, 125, 140, 127, 121, 138, 125, 119, 139, 126, 120, 139, 126, 120, 138, 123, 118, 136, 121, 116, 148, 134, 131, 149, 135, 132, 152, 138, 135, 154, 140, 137, 155, 141, 138, 151, 137, 134, 144, 130, 127, 138, 124, 121, 139, 125, 122, 135, 121, 118, 130, 116, 113, 126, 112, 109, 123, 109, 106, 121, 107, 104, 117, 103, 100, 114, 100, 97, 128, 113, 108, 126, 111, 106, 125, 110, 105, 129, 114, 109, 134, 119, 114, 135, 120, 115, 131, 116, 111, 126, 111, 106, 120, 105, 100, 120, 105, 100, 124, 109, 104, 132, 117, 112, 142, 127, 122, 146, 131, 126, 143, 128, 123, 139, 124, 119, 135, 122, 116, 134, 121, 115, 133, 120, 114, 133, 120, 114, 133, 120, 114, 136, 123, 117, 140, 127, 121, 143, 130, 124, 145, 132, 126, 144, 131, 125, 142, 129, 123, 139, 126, 120, 137, 124, 118, 134, 121, 115, 132, 119, 113, 131, 118, 112, 137, 122, 117, 141, 126, 121, 147, 132, 127, 152, 137, 132, 155, 142, 136, 157, 144, 138, 159, 146, 140, 160, 147, 141, 170, 157, 151, 171, 158, 152, 170, 159, 153, 169, 158, 152, 168, 157, 151, 168, 157, 151, 171, 160, 154, 173, 162, 156, 177, 166, 162, 181, 170, 166, 186, 175, 171, 190, 179, 175, 191, 182, 177, 194, 185, 178, 197, 190, 182, 200, 193, 185, 203, 198, 192, 204, 201, 196, 207, 203, 200, 207, 206, 202, 206, 206, 204, 207, 207, 205, 210, 210, 210, 212, 213, 215, 213, 214, 218, 212, 215, 220, 214, 217, 222, 216, 219, 224, 219, 222, 227, 221, 224, 229, 223, 226, 231, 224, 227, 232, 226, 229, 234, 227, 230, 235, 228, 231, 236, 229, 232, 237, 230, 233, 238, 229, 232, 237, 229, 232, 237, 228, 231, 236, 230, 233, 238, 231, 234, 239, 232, 235, 240, 234, 237, 242, 235, 238, 243, 237, 240, 245, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 243, 246, 240, 244, 247, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 241, 245, 248, 241, 245, 248, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 239, 243, 246, 239, 243, 246, 239, 243, 246, 239, 243, 246, 238, 242, 245, 238, 242, 245, 238, 242, 245, 238, 242, 245, 235, 238, 243, 235, 238, 243, 234, 237, 242, 232, 235, 240, 230, 231, 235, 225, 226, 230, 220, 221, 223, 217, 218, 220, 211, 211, 211, 209, 209, 209, 207, 205, 206, 204, 202, 203, 204, 200, 199, 202, 198, 197, 201, 197, 196, 201, 197, 196, 201, 196, 193, 202, 197, 194, 201, 196, 193, 197, 192, 189, 192, 187, 184, 189, 184, 181, 188, 183, 180, 189, 184, 181, 176, 171, 168, 183, 178, 175, 188, 183, 180, 185, 180, 177, 176, 171, 168, 172, 167, 164, 177, 172, 169, 184, 179, 176, 174, 169, 166, 176, 171, 168, 178, 173, 170, 179, 174, 171, 180, 175, 172, 179, 174, 171, 177, 172, 169, 176, 171, 168, 184, 179, 176, 186, 181, 178, 189, 184, 181, 191, 186, 183, 192, 187, 184, 192, 187, 184, 190, 185, 182, 189, 184, 181, 180, 172, 169, 181, 173, 170, 182, 174, 171, 182, 174, 171, 181, 173, 170, 178, 170, 167, 175, 167, 164, 173, 165, 162, 168, 160, 157, 169, 161, 158, 170, 162, 159, 172, 164, 161, 172, 164, 161, 172, 164, 161, 170, 162, 159, 169, 161, 158, 159, 151, 149, 158, 150, 148, 157, 149, 147, 157, 149, 147, 157, 149, 147, 155, 147, 145, 150, 145, 142, 146, 141, 138, 133, 128, 125, 143, 138, 135, 145, 140, 137, 145, 140, 137, 150, 146, 143, 146, 142, 139, 142, 138, 135, 147, 143, 140, 154, 149, 146, 146, 141, 138, 157, 149, 147, 167, 162, 159, 163, 155, 152, 153, 148, 144, 152, 144, 141, 147, 142, 138, 173, 165, 162, 156, 151, 147, 155, 148, 142, 163, 158, 152, 165, 158, 152, 148, 143, 137, 147, 140, 134, 157, 150, 144, 155, 147, 145, 161, 153, 151, 161, 153, 151, 152, 144, 142, 144, 139, 136, 152, 147, 144, 167, 162, 159, 177, 172, 169, 172, 167, 164, 178, 173, 170, 182, 178, 175, 180, 176, 173, 171, 167, 164, 165, 161, 158, 164, 160, 157, 166, 162, 159, 158, 154, 151, 158, 154, 151, 161, 157, 154, 166, 162, 159, 174, 170, 167, 182, 178, 175, 186, 182, 179, 187, 183, 180, 170, 166, 163, 169, 165, 162, 170, 166, 163, 176, 172, 169, 180, 176, 173, 178, 174, 171, 167, 163, 160, 157, 153, 150, 168, 167, 162, 182, 181, 176, 184, 183, 178, 171, 170, 165, 172, 171, 167, 188, 187, 183, 193, 192, 188, 184, 183, 179, 178, 177, 173, 183, 182, 178, 191, 190, 188, 198, 197, 195, 201, 200, 198, 198, 197, 195, 190, 189, 187, 183, 182, 180, 189, 189, 187, 219, 219, 217, 219, 219, 217, 193, 193, 191, 191, 191, 189, 210, 210, 208, 218, 218, 216, 215, 215, 213, 228, 228, 226, 225, 225, 223, 222, 222, 220, 218, 218, 216, 216, 216, 214, 216, 216, 214, 217, 217, 215, 218, 218, 216, 223, 225, 224, 223, 225, 224, 224, 226, 225, 229, 231, 230, 237, 239, 238, 243, 245, 244, 247, 249, 248, 248, 250, 249, 247, 249, 248, 246, 248, 247, 245, 247, 246, 244, 246, 245, 243, 245, 244, 243, 245, 244, 244, 246, 245, 245, 247, 246, 246, 244, 245, 246, 244, 245, 245, 243, 244, 244, 242, 243, 244, 242, 243, 245, 243, 244, 246, 244, 245, 246, 244, 245, 247, 245, 246, 246, 244, 245, 245, 243, 244, 244, 242, 243, 243, 241, 242, 243, 241, 242, 244, 242, 243, 245, 243, 244, 243, 241, 242, 243, 241, 242, 243, 241, 242, 244, 242, 243, 244, 242, 243, 245, 243, 244, 245, 243, 244, 245, 243, 244, 244, 242, 243, 246, 244, 245, 247, 245, 246, 246, 244, 245, 244, 242, 243, 244, 242, 243, 245, 243, 244, 247, 245, 246, 248, 247, 245, 248, 247, 245, 248, 247, 245, 248, 247, 245, 248, 247, 245, 248, 247, 245, 248, 247, 245, 248, 247, 245, 248, 247, 245, 248, 247, 245, 248, 247, 245, 247, 246, 244, 247, 246, 244, 247, 246, 244, 246, 245, 243, 246, 245, 243, 250, 246, 245, 250, 246, 245, 250, 246, 245, 249, 245, 244, 249, 245, 244, 248, 244, 243, 248, 244, 243, 248, 244, 243, 249, 245, 244, 250, 246, 245, 250, 246, 245, 250, 246, 245, 249, 245, 244, 248, 244, 243, 246, 242, 241, 245, 241, 240, 250, 246, 245, 249, 245, 244, 247, 243, 242, 246, 242, 241, 245, 241, 240, 245, 241, 240, 246, 240, 240, 247, 241, 241, 245, 239, 239, 245, 239, 239, 244, 238, 238, 244, 238, 238, 246, 237, 238, 245, 236, 237, 245, 236, 237, 245, 236, 237, 243, 237, 239, 242, 236, 238, 240, 234, 236, 239, 233, 235, 239, 233, 235, 241, 235, 237, 242, 238, 239, 244, 240, 241, 245, 241, 242, 246, 242, 243, 247, 243, 244, 247, 243, 244, 245, 243, 244, 245, 243, 244, 244, 242, 243, 243, 241, 242, 244, 244, 244, 244, 244, 244, 244, 244, 244, 245, 245, 245, 245, 245, 245, 245, 245, 245, 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 249, 249, 249, 249, 249, 249, 249, 249, 249, 250, 252, 251, 250, 252, 251, 249, 251, 250, 248, 250, 249, 247, 249, 248, 246, 248, 247, 245, 247, 246, 245, 247, 246, 238, 240, 239, 236, 238, 237, 231, 233, 232, 227, 229, 228, 224, 226, 225, 223, 225, 224, 223, 225, 224, 223, 225, 224, 220, 222, 219, 216, 218, 215, 213, 215, 212, 214, 216, 213, 217, 217, 215, 218, 218, 216, 215, 216, 211, 211, 212, 207, 215, 214, 210, 211, 210, 206, 205, 204, 200, 202, 201, 197, 202, 201, 196, 203, 202, 197, 203, 202, 197, 202, 201, 196, 200, 199, 197, 199, 198, 196, 200, 196, 193, 201, 197, 194, 203, 199, 196, 202, 198, 195, 198, 194, 191, 195, 191, 188, 191, 186, 182, 186, 181, 177, 185, 180, 176, 192, 187, 183, 196, 191, 187, 193, 188, 184, 190, 183, 177, 187, 180, 174, 176, 168, 165, 172, 164, 161, 167, 159, 156, 165, 157, 154, 168, 160, 157, 172, 164, 161, 176, 168, 165, 178, 170, 167, 183, 175, 172, 174, 166, 163, 165, 157, 154, 159, 151, 148, 154, 146, 143, 153, 145, 142, 160, 152, 149, 169, 161, 158, 170, 160, 158, 166, 156, 154, 166, 155, 153, 169, 158, 156, 173, 162, 158, 169, 158, 154, 155, 144, 140, 142, 131, 127, 156, 143, 137, 153, 140, 134, 150, 137, 131, 150, 137, 131, 152, 139, 133, 153, 140, 134, 153, 138, 133, 151, 136, 131, 148, 134, 131, 143, 129, 126, 138, 124, 121, 134, 120, 117, 133, 119, 116, 132, 118, 115, 130, 116, 113, 129, 115, 112, 130, 116, 113, 127, 113, 110, 123, 109, 106, 121, 107, 104, 120, 106, 103, 119, 105, 102, 117, 103, 100, 115, 101, 98, 135, 120, 115, 133, 118, 113, 131, 116, 111, 132, 117, 112, 134, 119, 114, 135, 120, 115, 134, 119, 114, 132, 117, 112, 128, 113, 108, 129, 114, 109, 132, 117, 112, 137, 122, 117, 140, 125, 120, 139, 124, 119, 134, 119, 114, 131, 116, 111, 131, 118, 112, 131, 118, 112, 130, 117, 111, 127, 114, 108, 124, 111, 105, 123, 110, 104, 125, 112, 106, 128, 115, 109, 136, 123, 117, 140, 127, 121, 146, 133, 127, 149, 136, 130, 146, 133, 127, 138, 125, 119, 127, 114, 108, 121, 108, 102, 131, 116, 111, 138, 123, 118, 147, 132, 127, 154, 139, 134, 156, 143, 137, 157, 144, 138, 159, 146, 140, 160, 147, 141, 165, 152, 146, 166, 153, 147, 165, 154, 148, 165, 154, 148, 163, 152, 146, 164, 153, 147, 167, 156, 150, 170, 159, 153, 169, 158, 154, 174, 163, 159, 180, 169, 165, 184, 173, 169, 186, 177, 170, 189, 180, 173, 192, 185, 177, 195, 188, 180, 199, 194, 188, 201, 198, 191, 204, 201, 196, 203, 202, 198, 202, 202, 200, 203, 203, 201, 206, 206, 206, 207, 208, 210, 212, 213, 217, 211, 214, 219, 212, 215, 220, 215, 218, 223, 217, 220, 225, 220, 223, 228, 221, 224, 229, 222, 225, 230, 224, 227, 232, 225, 228, 233, 226, 229, 234, 227, 230, 235, 228, 231, 236, 228, 231, 236, 227, 230, 235, 226, 229, 234, 229, 232, 237, 230, 233, 238, 231, 234, 239, 232, 235, 240, 234, 237, 242, 236, 239, 244, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 242, 245, 239, 243, 246, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 241, 245, 248, 241, 245, 248, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 237, 240, 245, 237, 240, 245, 236, 239, 244, 234, 237, 242, 230, 234, 237, 225, 229, 232, 223, 224, 226, 220, 221, 223, 213, 213, 215, 211, 211, 213, 209, 207, 208, 205, 203, 204, 201, 200, 198, 199, 198, 196, 199, 195, 194, 198, 194, 193, 199, 194, 191, 201, 196, 193, 201, 196, 193, 196, 191, 188, 189, 184, 181, 185, 180, 177, 185, 180, 177, 186, 181, 178, 184, 179, 176, 186, 181, 178, 186, 181, 178, 181, 176, 173, 175, 170, 167, 173, 168, 165, 176, 171, 168, 181, 176, 173, 176, 171, 168, 175, 170, 167, 175, 170, 167, 175, 170, 167, 176, 171, 168, 178, 173, 170, 180, 175, 172, 182, 177, 174, 187, 182, 179, 188, 183, 180, 189, 184, 181, 189, 184, 181, 188, 183, 180, 186, 181, 178, 183, 178, 175, 182, 177, 174, 181, 173, 170, 182, 174, 171, 182, 174, 171, 182, 174, 171, 180, 172, 169, 176, 168, 165, 173, 165, 162, 171, 163, 160, 176, 168, 165, 174, 166, 163, 170, 162, 159, 168, 160, 157, 166, 158, 155, 164, 156, 153, 160, 152, 149, 158, 150, 147, 172, 164, 162, 174, 166, 164, 173, 165, 163, 168, 160, 158, 158, 150, 148, 148, 140, 138, 138, 133, 130, 134, 129, 126, 125, 120, 117, 137, 132, 129, 144, 139, 136, 149, 144, 141, 156, 152, 149, 153, 149, 146, 147, 143, 140, 152, 147, 144, 159, 151, 149, 149, 141, 139, 150, 140, 139, 156, 148, 146, 165, 155, 153, 184, 176, 173, 199, 189, 187, 196, 188, 185, 186, 176, 174, 169, 161, 158, 154, 145, 140, 148, 141, 135, 148, 139, 134, 147, 140, 134, 156, 147, 142, 166, 159, 153, 155, 147, 145, 164, 156, 154, 169, 161, 159, 167, 159, 157, 164, 159, 156, 171, 166, 163, 181, 176, 173, 186, 181, 178, 179, 174, 171, 176, 171, 168, 169, 165, 162, 163, 159, 156, 161, 157, 154, 165, 161, 158, 174, 170, 167, 182, 178, 175, 195, 191, 190, 188, 184, 183, 175, 171, 170, 160, 156, 155, 153, 149, 148, 155, 151, 150, 159, 155, 154, 161, 157, 156, 183, 179, 178, 181, 177, 176, 180, 176, 175, 179, 175, 174, 178, 174, 173, 174, 170, 169, 168, 164, 163, 163, 159, 156, 169, 168, 163, 178, 177, 172, 182, 181, 176, 182, 181, 176, 185, 184, 180, 193, 192, 188, 195, 194, 190, 192, 191, 187, 190, 189, 185, 194, 193, 189, 196, 195, 193, 196, 195, 193, 191, 190, 188, 186, 185, 183, 181, 180, 178, 180, 179, 177, 201, 201, 199, 216, 216, 214, 202, 202, 200, 181, 181, 179, 194, 194, 192, 218, 218, 216, 223, 223, 221, 220, 220, 218, 229, 229, 227, 227, 227, 225, 223, 223, 221, 220, 220, 218, 219, 219, 217, 221, 221, 219, 223, 223, 221, 224, 224, 222, 229, 231, 230, 227, 229, 228, 227, 229, 228, 232, 234, 233, 239, 241, 240, 245, 247, 246, 247, 249, 248, 246, 248, 247, 247, 249, 248, 246, 248, 247, 244, 246, 245, 242, 244, 243, 242, 244, 243, 243, 245, 244, 245, 247, 246, 246, 248, 247, 247, 245, 246, 246, 244, 245, 245, 243, 244, 245, 243, 244, 245, 243, 244, 245, 243, 244, 246, 244, 245, 247, 245, 246, 248, 246, 247, 247, 245, 246, 245, 243, 244, 244, 242, 243, 243, 241, 242, 243, 241, 242, 244, 242, 243, 244, 242, 243, 243, 241, 242, 243, 241, 242, 243, 241, 242, 244, 242, 243, 244, 242, 243, 244, 242, 243, 245, 243, 244, 245, 243, 244, 245, 243, 244, 246, 244, 245, 248, 246, 247, 247, 245, 246, 245, 243, 244, 244, 242, 243, 246, 244, 245, 248, 246, 247, 246, 245, 243, 246, 245, 243, 246, 245, 243, 246, 245, 243, 246, 245, 243, 246, 245, 243, 246, 245, 243, 246, 245, 243, 248, 247, 245, 248, 247, 245, 247, 246, 244, 247, 246, 244, 247, 246, 244, 246, 245, 243, 246, 245, 243, 246, 245, 243, 249, 245, 242, 249, 245, 242, 248, 244, 241, 248, 244, 241, 248, 244, 241, 247, 243, 240, 247, 243, 240, 247, 243, 240, 247, 243, 240, 248, 244, 241, 248, 244, 241, 249, 245, 242, 249, 245, 242, 248, 244, 241, 248, 244, 241, 247, 243, 240, 249, 245, 244, 248, 244, 243, 247, 243, 242, 245, 241, 240, 245, 241, 240, 244, 240, 239, 246, 240, 240, 246, 240, 240, 245, 239, 239, 245, 239, 239, 244, 238, 238, 244, 238, 238, 245, 236, 237, 245, 236, 237, 245, 236, 237, 245, 236, 237, 243, 237, 239, 242, 236, 238, 240, 234, 236, 239, 233, 235, 239, 233, 235, 240, 234, 236, 241, 237, 238, 243, 239, 240, 245, 241, 242, 245, 241, 242, 246, 242, 243, 247, 243, 244, 245, 243, 244, 244, 242, 243, 243, 241, 242, 243, 241, 242, 244, 244, 244, 244, 244, 244, 244, 244, 244, 245, 245, 245, 245, 245, 245, 245, 245, 245, 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 249, 249, 249, 249, 249, 249, 249, 249, 249, 250, 252, 251, 249, 251, 250, 249, 251, 250, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 247, 249, 248, 245, 247, 246, 242, 244, 243, 238, 240, 239, 233, 235, 234, 229, 231, 230, 226, 228, 227, 225, 227, 226, 224, 226, 225, 223, 225, 222, 222, 224, 221, 220, 222, 219, 218, 220, 217, 217, 217, 215, 215, 215, 213, 214, 215, 210, 213, 214, 209, 208, 209, 204, 208, 209, 204, 209, 208, 204, 210, 209, 205, 212, 211, 206, 211, 210, 205, 207, 206, 201, 204, 203, 198, 211, 210, 208, 203, 202, 200, 195, 191, 188, 187, 183, 180, 183, 179, 176, 182, 178, 175, 182, 178, 175, 182, 178, 175, 171, 166, 162, 165, 160, 156, 165, 160, 156, 174, 169, 165, 181, 176, 172, 180, 175, 171, 177, 170, 164, 174, 167, 161, 175, 170, 166, 167, 162, 158, 159, 154, 150, 157, 152, 148, 159, 154, 150, 161, 156, 152, 158, 153, 149, 154, 149, 145, 170, 165, 161, 169, 164, 160, 168, 163, 159, 167, 162, 158, 161, 156, 152, 158, 153, 149, 166, 161, 157, 178, 170, 167, 174, 164, 162, 176, 165, 163, 176, 165, 163, 174, 163, 161, 167, 156, 152, 159, 148, 144, 151, 140, 136, 146, 135, 131, 153, 140, 134, 150, 137, 131, 147, 134, 128, 146, 133, 127, 148, 133, 128, 148, 133, 128, 146, 131, 126, 145, 130, 125, 141, 127, 124, 134, 120, 117, 124, 110, 107, 119, 105, 102, 119, 105, 102, 123, 109, 106, 128, 114, 111, 130, 116, 113, 123, 109, 106, 121, 107, 104, 119, 105, 102, 120, 106, 103, 123, 109, 106, 125, 111, 108, 125, 111, 108, 124, 110, 107, 122, 107, 102, 122, 107, 102, 122, 107, 102, 120, 105, 100, 119, 104, 99, 122, 107, 102, 126, 111, 106, 130, 115, 110, 140, 125, 120, 141, 126, 121, 139, 124, 119, 135, 120, 115, 128, 113, 108, 123, 108, 103, 120, 105, 100, 119, 104, 99, 123, 110, 104, 125, 112, 106, 126, 113, 107, 123, 110, 104, 119, 106, 100, 119, 106, 100, 122, 109, 103, 125, 112, 106, 136, 123, 117, 140, 127, 121, 145, 132, 126, 149, 136, 130, 147, 134, 128, 141, 128, 122, 134, 121, 115, 129, 116, 110, 129, 114, 109, 136, 121, 116, 144, 129, 124, 150, 135, 130, 151, 138, 132, 153, 140, 134, 157, 144, 138, 160, 147, 141, 161, 148, 142, 163, 150, 144, 162, 151, 145, 162, 151, 145, 161, 150, 144, 163, 152, 146, 166, 155, 149, 169, 158, 152, 167, 156, 150, 172, 161, 155, 180, 169, 163, 185, 174, 168, 188, 179, 172, 192, 183, 176, 194, 187, 179, 197, 190, 182, 200, 195, 189, 201, 198, 191, 204, 201, 196, 203, 202, 198, 201, 201, 199, 202, 202, 200, 205, 205, 205, 206, 207, 209, 211, 212, 216, 210, 213, 218, 212, 215, 220, 214, 217, 222, 216, 219, 224, 219, 222, 227, 220, 223, 228, 221, 224, 229, 223, 226, 231, 224, 227, 232, 225, 228, 233, 226, 229, 234, 226, 229, 234, 226, 229, 234, 225, 228, 233, 225, 228, 233, 228, 231, 236, 229, 232, 237, 230, 233, 238, 232, 235, 240, 233, 236, 241, 235, 238, 243, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 242, 245, 239, 243, 246, 240, 244, 247, 241, 245, 248, 242, 246, 249, 241, 245, 248, 241, 245, 248, 240, 244, 247, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 238, 241, 246, 238, 241, 246, 238, 241, 246, 235, 238, 243, 232, 236, 239, 227, 231, 234, 225, 226, 230, 222, 223, 225, 215, 215, 217, 213, 213, 215, 210, 208, 209, 205, 204, 202, 201, 200, 198, 198, 197, 193, 198, 194, 191, 197, 193, 190, 197, 193, 190, 200, 195, 192, 200, 195, 192, 195, 190, 187, 187, 182, 179, 182, 177, 174, 182, 177, 174, 185, 180, 177, 193, 188, 185, 188, 183, 180, 183, 178, 175, 178, 173, 170, 177, 172, 169, 177, 172, 169, 177, 172, 169, 178, 173, 170, 174, 169, 166, 171, 166, 163, 168, 163, 160, 167, 162, 159, 169, 164, 161, 175, 170, 167, 181, 176, 173, 185, 180, 177, 187, 182, 179, 186, 181, 178, 184, 179, 176, 182, 177, 174, 179, 174, 171, 177, 172, 169, 176, 171, 168, 175, 170, 167, 179, 171, 168, 176, 168, 165, 172, 164, 161, 169, 161, 158, 168, 160, 157, 170, 162, 159, 174, 166, 163, 176, 168, 165, 194, 186, 183, 187, 179, 176, 178, 170, 167, 173, 165, 162, 174, 166, 163, 179, 171, 168, 184, 176, 173, 187, 179, 176, 170, 162, 160, 176, 168, 166, 181, 173, 171, 178, 170, 168, 169, 161, 159, 159, 151, 149, 151, 146, 143, 150, 145, 142, 140, 135, 132, 152, 147, 144, 158, 153, 150, 164, 159, 156, 173, 169, 166, 174, 170, 167, 173, 169, 166, 181, 176, 173, 171, 163, 161, 176, 166, 164, 181, 171, 170, 178, 168, 166, 178, 168, 166, 187, 177, 175, 175, 165, 163, 145, 135, 133, 124, 114, 112, 129, 121, 118, 133, 124, 119, 134, 127, 121, 143, 134, 129, 153, 146, 140, 155, 148, 142, 151, 144, 138, 159, 151, 148, 167, 162, 159, 176, 171, 168, 178, 173, 170, 177, 172, 169, 171, 167, 164, 163, 158, 155, 153, 149, 146, 164, 159, 156, 160, 156, 153, 158, 154, 151, 159, 155, 152, 165, 161, 158, 175, 171, 168, 185, 181, 178, 191, 187, 184, 178, 174, 173, 183, 179, 178, 182, 178, 177, 171, 167, 166, 160, 156, 155, 154, 150, 149, 152, 148, 147, 151, 147, 146, 176, 172, 171, 177, 173, 172, 180, 176, 175, 181, 177, 176, 181, 177, 176, 179, 175, 174, 177, 173, 172, 174, 173, 169, 165, 164, 160, 163, 162, 157, 170, 169, 165, 183, 182, 178, 191, 190, 186, 189, 188, 184, 186, 185, 181, 187, 186, 182, 196, 195, 191, 195, 194, 190, 190, 189, 187, 182, 181, 179, 177, 176, 174, 179, 178, 176, 188, 187, 185, 195, 195, 193, 212, 212, 210, 209, 209, 207, 185, 185, 183, 175, 175, 173, 203, 203, 201, 227, 227, 225, 228, 228, 226, 227, 227, 225, 229, 229, 227, 226, 226, 224, 223, 223, 221, 221, 221, 219, 221, 221, 219, 222, 222, 220, 225, 225, 223, 227, 227, 225, 234, 236, 235, 231, 233, 232, 229, 231, 230, 233, 235, 234, 241, 243, 242, 246, 248, 247, 247, 249, 248, 245, 247, 246, 246, 248, 247, 244, 246, 245, 242, 244, 243, 241, 243, 242, 241, 243, 242, 243, 245, 244, 245, 247, 246, 246, 248, 247, 246, 246, 246, 247, 245, 246, 246, 244, 245, 245, 243, 244, 245, 243, 244, 246, 244, 245, 247, 245, 246, 247, 245, 246, 248, 246, 247, 247, 245, 246, 246, 244, 245, 244, 242, 243, 243, 241, 242, 243, 241, 242, 244, 242, 243, 244, 242, 243, 243, 241, 242, 243, 241, 242, 243, 241, 242, 243, 241, 242, 244, 242, 243, 244, 242, 243, 244, 242, 243, 245, 243, 244, 245, 243, 244, 247, 245, 246, 248, 246, 247, 248, 246, 247, 246, 244, 245, 245, 243, 244, 246, 244, 245, 248, 246, 247, 246, 245, 243, 246, 245, 243, 246, 245, 243, 246, 245, 243, 246, 245, 243, 246, 245, 243, 246, 245, 243, 246, 245, 243, 248, 247, 245, 248, 247, 245, 247, 246, 244, 247, 246, 244, 249, 245, 244, 246, 245, 243, 248, 244, 243, 248, 244, 243, 248, 244, 241, 248, 244, 241, 248, 244, 241, 247, 243, 240, 247, 243, 240, 246, 242, 239, 246, 242, 239, 246, 242, 239, 245, 241, 238, 246, 242, 239, 247, 243, 240, 249, 245, 242, 249, 245, 242, 249, 245, 242, 249, 244, 241, 248, 244, 241, 249, 245, 244, 248, 244, 243, 246, 242, 241, 245, 241, 240, 244, 240, 239, 244, 240, 239, 245, 239, 239, 246, 240, 240, 245, 239, 239, 244, 238, 238, 244, 238, 238, 244, 238, 238, 245, 236, 237, 245, 236, 237, 245, 236, 237, 244, 235, 236, 245, 236, 239, 244, 235, 238, 242, 233, 236, 239, 233, 235, 241, 232, 235, 240, 234, 236, 242, 236, 238, 242, 238, 239, 244, 240, 241, 245, 241, 242, 246, 242, 243, 247, 243, 244, 245, 243, 244, 244, 242, 243, 243, 241, 242, 242, 240, 241, 244, 244, 244, 244, 244, 244, 244, 244, 244, 245, 245, 245, 245, 245, 245, 245, 245, 245, 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 248, 250, 249, 246, 248, 247, 243, 245, 244, 239, 241, 240, 234, 236, 235, 230, 232, 231, 226, 228, 227, 224, 226, 225, 228, 230, 227, 228, 230, 227, 227, 229, 226, 223, 225, 222, 218, 218, 216, 214, 214, 212, 213, 213, 211, 213, 214, 209, 209, 209, 207, 209, 210, 205, 210, 210, 208, 211, 212, 207, 210, 209, 205, 203, 204, 199, 195, 194, 190, 189, 188, 184, 191, 190, 188, 191, 190, 188, 195, 191, 188, 196, 192, 189, 196, 192, 189, 191, 187, 184, 184, 180, 177, 178, 174, 171, 184, 179, 175, 176, 171, 167, 171, 166, 162, 176, 171, 167, 180, 175, 171, 177, 172, 168, 172, 165, 159, 169, 162, 156, 186, 181, 177, 186, 181, 177, 181, 176, 172, 172, 167, 163, 160, 155, 151, 151, 146, 142, 148, 143, 139, 147, 142, 138, 148, 143, 139, 145, 140, 136, 149, 144, 140, 159, 154, 150, 167, 162, 158, 168, 163, 159, 167, 162, 158, 170, 162, 159, 173, 163, 161, 181, 170, 168, 185, 174, 172, 178, 167, 165, 164, 153, 149, 155, 144, 140, 157, 146, 142, 162, 151, 147, 158, 145, 139, 155, 142, 136, 150, 137, 131, 148, 135, 129, 148, 133, 128, 147, 132, 127, 144, 129, 124, 142, 127, 122, 136, 122, 119, 131, 117, 114, 124, 110, 107, 122, 108, 105, 125, 111, 108, 130, 116, 113, 135, 121, 118, 138, 124, 121, 133, 119, 116, 130, 116, 113, 126, 112, 109, 124, 110, 107, 124, 110, 107, 124, 110, 107, 122, 108, 105, 121, 108, 102, 112, 97, 92, 112, 97, 90, 110, 95, 90, 104, 89, 82, 99, 84, 79, 100, 85, 78, 106, 91, 86, 113, 98, 91, 136, 121, 116, 136, 121, 114, 133, 118, 113, 126, 111, 104, 118, 103, 98, 114, 99, 92, 117, 102, 97, 121, 106, 101, 121, 108, 102, 123, 112, 106, 129, 116, 110, 130, 117, 111, 128, 115, 109, 130, 117, 111, 135, 122, 116, 140, 127, 121, 143, 130, 124, 141, 128, 122, 139, 126, 120, 138, 125, 119, 138, 125, 119, 140, 127, 121, 143, 130, 124, 145, 132, 126, 128, 113, 108, 133, 118, 113, 139, 124, 119, 143, 128, 123, 144, 129, 124, 147, 134, 128, 154, 141, 135, 160, 147, 141, 162, 149, 143, 163, 150, 144, 165, 152, 146, 163, 152, 146, 163, 152, 146, 165, 154, 148, 168, 157, 151, 172, 161, 155, 171, 160, 154, 177, 166, 160, 184, 173, 169, 190, 181, 176, 194, 185, 180, 197, 190, 184, 201, 194, 188, 202, 197, 191, 203, 198, 192, 205, 202, 197, 205, 204, 199, 206, 205, 201, 206, 205, 203, 205, 205, 203, 209, 207, 208, 210, 210, 210, 211, 212, 216, 210, 214, 217, 211, 214, 219, 214, 218, 221, 216, 219, 224, 218, 222, 225, 220, 223, 228, 221, 224, 229, 222, 225, 230, 223, 226, 231, 224, 227, 232, 225, 228, 233, 226, 229, 234, 225, 228, 233, 225, 228, 233, 224, 227, 232, 228, 231, 236, 228, 231, 236, 230, 233, 238, 231, 234, 239, 233, 236, 241, 234, 237, 242, 235, 238, 243, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 238, 242, 245, 239, 243, 246, 240, 244, 247, 241, 245, 248, 242, 246, 249, 241, 245, 248, 241, 245, 248, 240, 244, 247, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 242, 246, 249, 241, 245, 248, 241, 245, 248, 241, 245, 248, 244, 245, 250, 242, 243, 248, 237, 240, 245, 235, 238, 243, 234, 237, 242, 231, 235, 238, 226, 230, 233, 223, 227, 230, 218, 219, 221, 213, 215, 214, 207, 207, 205, 203, 202, 198, 200, 199, 194, 199, 196, 191, 197, 192, 186, 194, 191, 186, 193, 189, 186, 194, 190, 189, 195, 191, 188, 194, 190, 187, 192, 188, 185, 188, 184, 181, 184, 180, 177, 182, 178, 175, 181, 176, 172, 185, 180, 176, 187, 182, 178, 186, 181, 177, 181, 176, 172, 179, 174, 170, 184, 176, 173, 188, 180, 177, 184, 179, 176, 179, 174, 171, 173, 168, 165, 171, 166, 163, 173, 168, 165, 178, 173, 170, 181, 176, 173, 183, 178, 175, 180, 175, 172, 182, 177, 174, 186, 181, 178, 188, 183, 180, 188, 183, 180, 184, 179, 176, 179, 174, 171, 175, 170, 167, 181, 176, 173, 177, 172, 169, 173, 168, 165, 174, 169, 166, 178, 173, 170, 180, 175, 172, 178, 173, 170, 175, 170, 167, 179, 174, 171, 173, 168, 165, 167, 162, 159, 168, 163, 160, 175, 170, 167, 180, 175, 172, 179, 174, 171, 175, 170, 167, 180, 175, 172, 186, 181, 178, 186, 181, 178, 177, 172, 169, 174, 169, 166, 176, 171, 168, 173, 168, 165, 164, 159, 156, 156, 151, 148, 157, 152, 149, 152, 147, 144, 145, 140, 137, 149, 144, 141, 161, 156, 153, 162, 157, 154, 153, 148, 145, 137, 129, 126, 153, 144, 139, 161, 153, 150, 148, 141, 135, 124, 117, 111, 110, 103, 97, 117, 110, 104, 131, 124, 118, 127, 120, 114, 150, 145, 139, 171, 164, 158, 156, 151, 145, 140, 133, 127, 149, 144, 138, 165, 160, 154, 160, 157, 150, 169, 166, 161, 165, 162, 157, 166, 163, 158, 162, 159, 154, 152, 148, 145, 151, 150, 146, 160, 156, 153, 155, 154, 150, 164, 160, 157, 161, 160, 156, 166, 165, 163, 178, 177, 175, 190, 189, 187, 193, 192, 190, 184, 183, 181, 174, 173, 171, 167, 166, 162, 179, 178, 174, 186, 185, 181, 182, 181, 177, 176, 172, 169, 172, 168, 165, 171, 166, 163, 170, 165, 162, 165, 160, 157, 181, 176, 173, 187, 183, 180, 178, 174, 171, 171, 170, 166, 174, 173, 169, 171, 170, 166, 161, 160, 156, 165, 164, 160, 175, 176, 171, 179, 179, 177, 174, 174, 172, 180, 180, 178, 194, 194, 192, 197, 197, 195, 188, 188, 186, 166, 166, 164, 185, 185, 183, 201, 201, 199, 198, 198, 196, 186, 186, 184, 183, 183, 181, 195, 195, 193, 207, 207, 205, 214, 214, 214, 171, 173, 172, 158, 160, 159, 195, 197, 196, 229, 231, 230, 228, 230, 229, 223, 225, 224, 229, 231, 230, 224, 226, 225, 226, 228, 227, 227, 229, 228, 226, 228, 227, 225, 227, 226, 227, 229, 228, 233, 235, 234, 238, 240, 239, 238, 240, 239, 237, 239, 238, 237, 239, 238, 239, 241, 240, 244, 246, 245, 246, 248, 247, 246, 248, 247, 245, 247, 246, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 245, 243, 244, 245, 243, 244, 244, 242, 243, 243, 241, 242, 244, 240, 241, 244, 240, 241, 243, 239, 240, 243, 239, 240, 240, 239, 237, 241, 240, 238, 241, 240, 238, 242, 241, 239, 243, 242, 240, 244, 243, 241, 244, 243, 241, 245, 244, 242, 246, 245, 243, 246, 245, 243, 247, 246, 244, 247, 246, 244, 248, 247, 245, 248, 247, 245, 248, 247, 245, 248, 247, 245, 247, 246, 244, 247, 246, 244, 247, 246, 244, 247, 246, 244, 249, 245, 244, 249, 245, 244, 249, 245, 244, 249, 245, 244, 252, 248, 247, 249, 245, 244, 246, 242, 241, 245, 241, 240, 248, 242, 242, 249, 245, 244, 251, 245, 245, 249, 245, 244, 244, 240, 239, 245, 241, 240, 247, 243, 242, 249, 245, 244, 249, 245, 244, 247, 243, 242, 246, 240, 240, 245, 239, 239, 245, 239, 239, 248, 242, 242, 248, 242, 242, 246, 240, 240, 246, 240, 240, 250, 244, 244, 252, 243, 244, 247, 241, 241, 247, 243, 242, 243, 242, 240, 242, 241, 239, 242, 241, 239, 246, 242, 241, 247, 243, 242, 246, 242, 241, 244, 240, 239, 247, 241, 241, 246, 240, 240, 246, 237, 238, 244, 235, 236, 244, 234, 235, 243, 233, 234, 243, 233, 234, 243, 233, 234, 246, 235, 239, 244, 233, 237, 242, 231, 235, 240, 231, 234, 241, 230, 234, 241, 232, 235, 243, 234, 237, 243, 237, 239, 247, 241, 243, 246, 240, 242, 244, 240, 241, 244, 240, 241, 244, 240, 241, 244, 240, 241, 243, 241, 242, 244, 242, 243, 242, 242, 242, 243, 243, 243, 244, 244, 244, 246, 246, 246, 246, 246, 246, 247, 247, 247, 246, 246, 246, 246, 246, 246, 248, 248, 248, 248, 248, 248, 248, 248, 248, 249, 249, 249, 249, 249, 249, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 248, 250, 249, 246, 248, 247, 243, 245, 244, 239, 241, 240, 235, 237, 236, 231, 233, 232, 229, 231, 230, 233, 235, 234, 229, 231, 230, 223, 225, 224, 218, 220, 219, 216, 218, 217, 213, 215, 214, 209, 211, 210, 206, 208, 205, 209, 211, 210, 209, 211, 208, 210, 212, 211, 212, 214, 211, 212, 212, 210, 207, 209, 206, 200, 200, 198, 195, 195, 193, 204, 203, 201, 199, 198, 196, 196, 195, 193, 199, 198, 196, 199, 198, 194, 195, 194, 190, 192, 191, 187, 192, 191, 187, 197, 193, 190, 191, 187, 184, 176, 173, 168, 161, 158, 153, 165, 160, 156, 179, 174, 170, 182, 177, 173, 175, 170, 166, 174, 169, 163, 162, 157, 151, 159, 154, 148, 160, 155, 149, 156, 151, 145, 160, 155, 149, 162, 157, 151, 154, 149, 143, 159, 154, 148, 170, 165, 159, 176, 171, 165, 177, 172, 166, 181, 176, 170, 188, 183, 177, 187, 182, 176, 181, 174, 168, 178, 168, 166, 171, 161, 159, 164, 154, 152, 165, 155, 153, 171, 162, 157, 176, 167, 162, 174, 163, 159, 169, 158, 154, 167, 156, 152, 164, 153, 149, 160, 149, 143, 159, 148, 142, 160, 147, 141, 156, 143, 137, 149, 136, 130, 143, 130, 124, 142, 129, 123, 139, 126, 120, 134, 121, 115, 129, 116, 110, 127, 114, 108, 128, 115, 109, 131, 118, 112, 133, 120, 114, 134, 121, 115, 139, 126, 120, 144, 131, 125, 143, 130, 124, 138, 125, 119, 134, 121, 115, 133, 120, 114, 135, 122, 116, 128, 113, 106, 132, 118, 109, 128, 113, 106, 118, 104, 95, 113, 98, 91, 117, 103, 94, 115, 100, 93, 107, 93, 84, 116, 101, 94, 110, 96, 87, 105, 90, 83, 105, 91, 82, 113, 98, 91, 125, 111, 102, 136, 121, 114, 142, 129, 121, 140, 129, 123, 137, 128, 123, 135, 124, 120, 132, 121, 117, 128, 117, 113, 125, 114, 110, 123, 112, 108, 122, 111, 107, 137, 126, 122, 138, 127, 123, 142, 128, 125, 144, 130, 127, 145, 131, 128, 145, 131, 128, 144, 130, 127, 143, 129, 126, 137, 122, 119, 141, 123, 121, 143, 125, 123, 141, 126, 123, 140, 125, 122, 142, 127, 124, 145, 130, 127, 148, 133, 130, 158, 143, 140, 157, 143, 140, 157, 143, 140, 157, 143, 140, 158, 144, 141, 164, 150, 147, 172, 158, 155, 178, 164, 161, 180, 169, 165, 185, 174, 170, 190, 180, 178, 195, 185, 183, 198, 188, 186, 201, 193, 190, 203, 198, 194, 205, 202, 197, 208, 205, 200, 208, 207, 203, 211, 210, 206, 213, 212, 210, 214, 213, 211, 214, 213, 211, 215, 211, 210, 212, 210, 211, 213, 214, 216, 212, 213, 215, 212, 213, 217, 211, 212, 214, 212, 213, 217, 213, 214, 216, 214, 215, 219, 215, 216, 220, 220, 224, 227, 220, 224, 227, 220, 224, 227, 220, 224, 227, 219, 224, 228, 220, 225, 229, 220, 225, 229, 220, 225, 229, 224, 228, 231, 225, 229, 232, 228, 232, 235, 230, 234, 237, 232, 236, 239, 234, 238, 241, 234, 238, 241, 234, 238, 241, 235, 239, 242, 235, 239, 242, 235, 239, 242, 234, 238, 241, 234, 238, 241, 234, 238, 241, 234, 238, 241, 234, 238, 241, 238, 242, 245, 238, 242, 245, 239, 243, 246, 239, 243, 246, 239, 243, 246, 240, 244, 247, 240, 244, 247, 240, 244, 247, 240, 244, 247, 241, 245, 248, 242, 246, 249, 243, 247, 250, 244, 248, 251, 243, 247, 250, 243, 247, 250, 242, 246, 249, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 244, 248, 249, 244, 248, 249, 244, 248, 249, 244, 248, 249, 244, 248, 249, 244, 248, 249, 244, 248, 249, 244, 248, 249, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 247, 251, 254, 247, 251, 254, 247, 251, 254, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 242, 246, 249, 241, 245, 248, 241, 245, 248, 241, 245, 248, 244, 245, 250, 242, 243, 248, 237, 240, 245, 236, 239, 244, 234, 237, 242, 232, 235, 240, 227, 231, 234, 223, 227, 230, 219, 220, 222, 214, 216, 215, 208, 208, 206, 203, 204, 199, 203, 200, 195, 201, 198, 191, 199, 195, 186, 195, 192, 185, 191, 187, 184, 189, 188, 186, 191, 187, 184, 190, 186, 183, 189, 185, 182, 186, 182, 179, 184, 180, 177, 183, 179, 176, 187, 182, 178, 189, 184, 180, 191, 186, 182, 191, 186, 182, 189, 184, 180, 187, 182, 178, 188, 181, 175, 188, 181, 175, 190, 185, 182, 182, 177, 174, 173, 168, 165, 167, 162, 159, 167, 162, 159, 170, 165, 162, 174, 169, 166, 175, 170, 167, 180, 175, 172, 181, 176, 173, 183, 178, 175, 185, 180, 177, 184, 179, 176, 181, 176, 173, 178, 173, 170, 176, 171, 168, 176, 171, 168, 171, 166, 163, 166, 161, 158, 166, 161, 158, 170, 165, 162, 173, 168, 165, 173, 168, 165, 172, 167, 164, 177, 172, 169, 172, 167, 164, 169, 164, 161, 172, 167, 164, 178, 173, 170, 183, 178, 175, 181, 176, 173, 177, 172, 169, 183, 178, 175, 183, 178, 175, 177, 172, 169, 166, 161, 158, 160, 155, 152, 161, 156, 153, 156, 151, 148, 147, 142, 139, 155, 150, 147, 159, 154, 151, 162, 157, 154, 163, 158, 155, 165, 160, 157, 168, 163, 160, 164, 159, 156, 157, 152, 149, 172, 164, 161, 168, 159, 154, 160, 153, 147, 157, 150, 144, 160, 153, 147, 166, 159, 153, 173, 166, 160, 176, 169, 163, 196, 191, 185, 193, 188, 182, 186, 181, 175, 169, 164, 158, 153, 148, 142, 156, 151, 145, 155, 152, 145, 140, 137, 130, 128, 127, 122, 122, 121, 116, 127, 126, 121, 129, 128, 123, 120, 119, 115, 128, 127, 123, 156, 155, 151, 176, 175, 171, 170, 169, 165, 170, 169, 165, 172, 171, 169, 178, 177, 175, 183, 182, 180, 179, 178, 176, 169, 168, 166, 160, 159, 157, 156, 155, 151, 161, 160, 156, 162, 161, 157, 155, 154, 150, 152, 148, 145, 153, 149, 146, 156, 151, 148, 157, 152, 149, 163, 158, 155, 173, 168, 165, 172, 168, 165, 163, 159, 156, 159, 158, 154, 167, 166, 162, 168, 167, 163, 162, 161, 157, 130, 130, 128, 157, 157, 155, 181, 181, 179, 189, 189, 187, 188, 188, 186, 183, 183, 181, 166, 166, 164, 146, 146, 144, 191, 191, 189, 199, 199, 197, 195, 195, 193, 182, 182, 180, 184, 184, 182, 203, 203, 201, 214, 214, 212, 212, 212, 210, 188, 190, 189, 187, 189, 188, 199, 201, 200, 222, 224, 223, 235, 237, 236, 231, 233, 232, 222, 224, 223, 218, 220, 219, 225, 227, 226, 224, 226, 225, 224, 226, 225, 226, 228, 227, 230, 232, 231, 233, 235, 234, 235, 237, 236, 236, 238, 237, 239, 241, 240, 238, 240, 239, 238, 240, 239, 241, 243, 242, 245, 247, 246, 247, 249, 248, 247, 249, 248, 246, 248, 247, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 244, 245, 245, 243, 244, 245, 243, 244, 244, 242, 243, 245, 241, 242, 244, 240, 241, 244, 240, 241, 243, 239, 240, 240, 239, 237, 241, 240, 238, 241, 240, 238, 242, 241, 239, 243, 242, 240, 244, 243, 241, 244, 243, 241, 244, 243, 241, 246, 245, 243, 246, 245, 243, 246, 245, 243, 247, 246, 244, 247, 246, 244, 248, 247, 245, 248, 247, 245, 248, 247, 245, 247, 246, 244, 247, 246, 244, 247, 246, 244, 247, 246, 244, 249, 245, 244, 249, 245, 244, 249, 245, 244, 249, 245, 244, 252, 248, 247, 249, 245, 244, 247, 241, 241, 246, 240, 240, 248, 242, 242, 250, 244, 244, 250, 244, 244, 250, 244, 244, 244, 240, 239, 245, 241, 240, 247, 243, 242, 248, 244, 243, 248, 244, 243, 247, 243, 242, 246, 240, 240, 245, 239, 239, 245, 239, 239, 248, 242, 242, 248, 242, 242, 245, 239, 239, 248, 239, 240, 251, 242, 243, 252, 243, 244, 247, 241, 241, 246, 242, 241, 243, 242, 240, 241, 240, 238, 242, 241, 239, 246, 242, 241, 247, 243, 242, 245, 241, 240, 243, 239, 238, 247, 241, 241, 245, 239, 239, 246, 237, 238, 244, 235, 236, 243, 233, 234, 243, 233, 234, 243, 233, 234, 243, 233, 234, 246, 234, 238, 245, 233, 237, 242, 231, 235, 241, 230, 234, 241, 230, 234, 241, 232, 235, 243, 234, 237, 244, 235, 238, 247, 241, 243, 247, 241, 243, 245, 241, 242, 244, 240, 241, 244, 240, 241, 245, 241, 242, 244, 242, 243, 244, 242, 243, 242, 242, 242, 243, 243, 243, 244, 244, 244, 246, 246, 246, 246, 246, 246, 247, 247, 247, 246, 246, 246, 246, 246, 246, 248, 248, 248, 248, 248, 248, 248, 248, 248, 249, 249, 249, 249, 249, 249, 249, 249, 249, 250, 250, 250, 250, 250, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 247, 249, 248, 245, 247, 246, 242, 244, 243, 239, 241, 240, 236, 238, 237, 234, 236, 235, 229, 231, 230, 225, 227, 226, 220, 222, 221, 217, 219, 218, 215, 217, 216, 213, 215, 214, 210, 212, 211, 207, 209, 208, 218, 220, 219, 219, 221, 220, 221, 223, 222, 225, 227, 226, 227, 229, 228, 225, 227, 226, 221, 223, 222, 217, 219, 218, 209, 209, 207, 205, 204, 202, 202, 201, 199, 204, 203, 201, 205, 204, 200, 203, 202, 198, 202, 201, 197, 202, 201, 197, 218, 214, 211, 214, 210, 207, 206, 203, 198, 200, 197, 192, 201, 196, 192, 202, 197, 193, 195, 190, 186, 185, 180, 176, 164, 159, 153, 164, 159, 153, 178, 173, 167, 190, 185, 179, 190, 185, 179, 191, 186, 180, 188, 183, 177, 177, 172, 166, 190, 185, 179, 194, 189, 183, 191, 186, 180, 182, 177, 171, 179, 174, 168, 182, 177, 171, 180, 175, 169, 174, 169, 163, 174, 166, 163, 176, 166, 164, 177, 167, 165, 178, 168, 166, 176, 167, 162, 171, 162, 157, 166, 155, 151, 161, 150, 146, 155, 144, 140, 163, 152, 148, 168, 157, 151, 163, 152, 146, 152, 139, 133, 139, 126, 120, 134, 121, 115, 133, 120, 114, 133, 120, 114, 134, 121, 115, 135, 122, 116, 136, 123, 117, 137, 124, 118, 137, 124, 118, 137, 124, 118, 137, 124, 118, 138, 125, 119, 138, 125, 119, 137, 124, 118, 133, 120, 114, 128, 115, 109, 125, 112, 106, 125, 112, 106, 126, 113, 107, 135, 120, 113, 139, 125, 116, 135, 121, 112, 127, 113, 104, 124, 110, 101, 127, 113, 104, 126, 112, 103, 120, 106, 97, 119, 105, 96, 119, 105, 96, 121, 107, 98, 126, 112, 103, 131, 117, 108, 135, 121, 112, 135, 121, 112, 133, 120, 112, 142, 131, 125, 142, 131, 127, 140, 129, 125, 138, 127, 123, 135, 121, 118, 129, 115, 112, 123, 109, 106, 119, 105, 102, 139, 125, 122, 141, 127, 124, 145, 130, 127, 148, 133, 130, 149, 134, 131, 147, 132, 129, 145, 130, 127, 144, 129, 126, 141, 123, 121, 142, 124, 122, 142, 124, 122, 140, 122, 120, 136, 121, 118, 135, 120, 117, 137, 122, 119, 139, 124, 121, 149, 134, 131, 151, 136, 133, 151, 137, 134, 153, 139, 136, 155, 141, 138, 160, 146, 143, 168, 154, 151, 173, 159, 156, 180, 169, 167, 184, 173, 171, 190, 180, 178, 195, 185, 183, 197, 189, 187, 199, 194, 191, 202, 198, 195, 205, 201, 198, 206, 205, 201, 208, 207, 203, 211, 210, 208, 213, 212, 210, 216, 212, 211, 216, 212, 211, 215, 211, 210, 212, 211, 209, 212, 212, 212, 211, 212, 214, 210, 211, 213, 210, 211, 213, 210, 211, 213, 211, 212, 214, 212, 213, 215, 213, 214, 216, 216, 220, 223, 216, 220, 223, 217, 221, 224, 218, 222, 225, 217, 222, 226, 218, 223, 227, 219, 224, 228, 219, 224, 228, 221, 225, 228, 223, 227, 230, 225, 229, 232, 228, 232, 235, 230, 234, 237, 231, 235, 238, 232, 236, 239, 232, 236, 239, 234, 238, 241, 234, 238, 241, 234, 238, 241, 234, 238, 241, 234, 238, 241, 234, 238, 241, 234, 238, 241, 234, 238, 241, 237, 241, 244, 237, 241, 244, 238, 242, 245, 238, 242, 245, 239, 243, 246, 239, 243, 246, 240, 244, 247, 240, 244, 247, 240, 244, 247, 241, 245, 248, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 246, 249, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 243, 247, 248, 244, 248, 249, 244, 248, 249, 244, 248, 249, 244, 248, 249, 244, 248, 249, 244, 248, 249, 244, 248, 249, 244, 248, 249, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 247, 251, 254, 247, 251, 254, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 242, 246, 249, 241, 245, 248, 241, 245, 248, 241, 245, 248, 244, 245, 250, 242, 243, 248, 237, 240, 245, 236, 239, 244, 235, 238, 243, 232, 235, 240, 228, 232, 235, 224, 228, 231, 221, 222, 224, 216, 218, 217, 211, 211, 209, 205, 206, 201, 205, 202, 197, 203, 200, 193, 201, 197, 188, 197, 194, 187, 191, 187, 184, 188, 187, 185, 189, 185, 182, 187, 183, 180, 187, 183, 180, 187, 183, 180, 187, 183, 180, 187, 183, 180, 194, 189, 185, 190, 185, 181, 185, 180, 176, 182, 177, 173, 183, 178, 174, 185, 180, 176, 188, 181, 175, 188, 181, 175, 182, 177, 174, 175, 170, 167, 166, 161, 158, 160, 155, 152, 161, 156, 153, 165, 160, 157, 170, 165, 162, 172, 167, 164, 180, 175, 172, 180, 175, 172, 180, 175, 172, 179, 174, 171, 179, 174, 171, 178, 173, 170, 178, 173, 170, 177, 172, 169, 180, 175, 172, 176, 171, 168, 172, 167, 164, 171, 166, 163, 174, 169, 166, 177, 172, 169, 179, 174, 171, 180, 175, 172, 170, 165, 162, 167, 162, 159, 164, 159, 156, 165, 160, 157, 168, 163, 160, 168, 163, 160, 163, 158, 155, 158, 153, 150, 155, 150, 147, 156, 151, 148, 154, 149, 146, 154, 149, 146, 163, 158, 155, 173, 168, 165, 175, 170, 167, 170, 165, 162, 149, 144, 141, 151, 146, 143, 157, 152, 149, 163, 158, 155, 162, 157, 154, 157, 152, 149, 155, 150, 147, 157, 152, 149, 188, 180, 177, 179, 171, 168, 173, 165, 162, 176, 168, 165, 183, 175, 172, 181, 173, 170, 167, 159, 156, 154, 146, 143, 156, 151, 147, 145, 140, 136, 144, 139, 135, 149, 144, 140, 152, 149, 144, 161, 158, 153, 163, 160, 155, 154, 151, 146, 143, 140, 135, 132, 129, 124, 134, 131, 126, 140, 137, 132, 136, 132, 129, 145, 141, 138, 169, 165, 162, 187, 183, 180, 169, 165, 162, 171, 167, 164, 175, 171, 170, 177, 173, 172, 174, 170, 169, 168, 164, 163, 160, 156, 155, 154, 150, 149, 137, 136, 132, 143, 142, 138, 147, 146, 142, 150, 149, 145, 158, 154, 151, 167, 163, 160, 174, 169, 166, 173, 168, 165, 156, 151, 148, 157, 152, 149, 149, 145, 142, 138, 134, 131, 137, 136, 132, 148, 147, 143, 152, 151, 147, 147, 146, 142, 171, 171, 169, 176, 176, 174, 171, 171, 169, 158, 158, 156, 155, 155, 153, 169, 169, 167, 182, 182, 180, 186, 186, 184, 193, 193, 191, 199, 199, 197, 191, 191, 189, 182, 182, 180, 198, 198, 196, 225, 225, 223, 224, 224, 222, 202, 202, 200, 150, 152, 151, 187, 189, 188, 220, 222, 221, 229, 231, 230, 226, 228, 227, 227, 229, 228, 225, 227, 226, 219, 221, 220, 223, 225, 224, 223, 225, 224, 225, 227, 226, 229, 231, 230, 235, 237, 236, 238, 240, 239, 238, 240, 239, 237, 239, 238, 242, 244, 243, 240, 242, 241, 240, 242, 241, 243, 245, 244, 246, 248, 247, 249, 251, 250, 248, 250, 249, 247, 249, 248, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 247, 245, 246, 246, 244, 245, 246, 244, 245, 245, 243, 244, 246, 242, 243, 245, 241, 242, 245, 241, 242, 244, 240, 241, 242, 238, 237, 242, 238, 237, 243, 239, 238, 244, 240, 239, 245, 241, 240, 245, 241, 240, 246, 242, 241, 246, 242, 241, 247, 243, 242, 248, 244, 243, 248, 244, 243, 248, 244, 243, 249, 245, 244, 249, 245, 244, 249, 245, 244, 249, 245, 244, 246, 245, 243, 246, 245, 243, 246, 245, 243, 246, 245, 243, 248, 244, 243, 248, 244, 243, 248, 244, 243, 248, 244, 243, 251, 247, 246, 248, 244, 243, 247, 241, 241, 246, 240, 240, 248, 242, 242, 250, 244, 244, 250, 244, 244, 249, 243, 243, 245, 241, 240, 245, 241, 240, 247, 243, 242, 247, 243, 242, 248, 242, 242, 248, 242, 242, 246, 240, 240, 246, 240, 240, 244, 238, 238, 248, 242, 242, 250, 241, 242, 247, 238, 239, 248, 239, 240, 251, 242, 243, 251, 242, 243, 246, 240, 240, 246, 242, 241, 242, 241, 239, 243, 239, 238, 243, 239, 238, 245, 241, 240, 246, 242, 241, 246, 240, 240, 244, 238, 238, 248, 239, 240, 247, 238, 239, 245, 236, 237, 243, 234, 235, 243, 233, 234, 243, 233, 234, 243, 233, 234, 243, 233, 234, 245, 234, 238, 244, 233, 237, 243, 232, 236, 242, 231, 235, 241, 232, 235, 242, 233, 236, 243, 234, 237, 242, 236, 238, 247, 241, 243, 247, 241, 243, 245, 241, 242, 244, 240, 241, 244, 240, 241, 245, 241, 242, 244, 242, 243, 244, 242, 243, 242, 242, 242, 243, 243, 243, 244, 244, 244, 246, 246, 246, 246, 246, 246, 247, 247, 247, 246, 246, 246, 246, 246, 246, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 249, 249, 249, 249, 249, 249, 249, 249, 249, 250, 250, 250, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 249, 251, 250, 249, 251, 250, 249, 251, 250, 248, 250, 249, 246, 248, 247, 243, 245, 244, 241, 243, 242, 240, 242, 241, 236, 238, 237, 233, 235, 234, 229, 231, 230, 227, 229, 228, 226, 228, 227, 223, 225, 224, 220, 222, 221, 217, 219, 218, 221, 223, 222, 219, 221, 220, 216, 218, 217, 214, 216, 215, 210, 212, 211, 204, 206, 205, 197, 199, 198, 191, 193, 192, 200, 200, 198, 196, 196, 194, 192, 191, 189, 190, 189, 187, 190, 189, 185, 191, 190, 186, 190, 189, 185, 190, 189, 185, 185, 181, 178, 179, 175, 172, 177, 174, 169, 182, 179, 174, 185, 182, 177, 180, 177, 172, 175, 170, 166, 172, 167, 163, 191, 186, 182, 186, 181, 177, 189, 184, 180, 187, 182, 178, 175, 170, 166, 172, 167, 163, 173, 168, 164, 166, 161, 157, 168, 163, 159, 172, 167, 163, 174, 169, 165, 172, 167, 163, 175, 170, 166, 182, 177, 173, 185, 180, 176, 183, 178, 174, 182, 174, 171, 187, 179, 176, 194, 184, 182, 193, 183, 181, 186, 176, 174, 179, 169, 167, 175, 166, 161, 174, 165, 160, 172, 161, 157, 168, 157, 153, 157, 146, 140, 140, 129, 123, 123, 112, 106, 117, 106, 100, 122, 109, 103, 128, 115, 109, 135, 122, 116, 139, 126, 120, 146, 133, 127, 152, 139, 133, 155, 142, 136, 154, 141, 135, 151, 138, 132, 149, 136, 130, 146, 133, 127, 141, 128, 122, 136, 123, 117, 132, 119, 113, 132, 119, 113, 133, 120, 114, 133, 120, 114, 133, 120, 114, 132, 119, 111, 135, 122, 114, 134, 121, 113, 130, 117, 109, 131, 118, 110, 135, 122, 114, 137, 124, 116, 134, 121, 113, 130, 117, 109, 132, 119, 111, 135, 122, 114, 139, 126, 118, 142, 129, 121, 141, 128, 120, 136, 123, 115, 132, 119, 111, 135, 122, 116, 138, 124, 121, 142, 128, 125, 145, 131, 128, 146, 131, 128, 143, 128, 125, 139, 124, 121, 136, 121, 118, 138, 120, 118, 141, 123, 121, 145, 127, 125, 148, 130, 128, 149, 131, 129, 147, 129, 127, 143, 125, 123, 140, 122, 120, 141, 123, 121, 142, 124, 122, 143, 125, 123, 141, 123, 121, 137, 122, 119, 137, 122, 119, 140, 125, 122, 142, 127, 124, 146, 131, 128, 149, 134, 131, 151, 137, 134, 154, 140, 137, 157, 143, 140, 161, 147, 144, 167, 153, 150, 171, 157, 154, 179, 168, 166, 184, 173, 171, 189, 179, 177, 195, 185, 183, 197, 189, 187, 199, 194, 191, 203, 199, 196, 206, 202, 199, 207, 206, 202, 208, 207, 203, 211, 210, 208, 213, 212, 210, 214, 213, 211, 213, 212, 210, 214, 210, 209, 211, 210, 208, 210, 210, 210, 209, 209, 209, 207, 208, 210, 207, 208, 210, 207, 208, 210, 207, 208, 210, 208, 209, 211, 209, 210, 212, 210, 214, 217, 211, 215, 218, 212, 216, 219, 213, 217, 220, 215, 219, 222, 217, 221, 224, 217, 222, 226, 217, 222, 226, 218, 221, 226, 220, 223, 228, 222, 225, 230, 225, 228, 233, 227, 230, 235, 228, 231, 236, 229, 232, 237, 229, 232, 237, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 234, 237, 242, 234, 237, 242, 234, 237, 242, 234, 237, 242, 235, 239, 242, 236, 240, 243, 236, 240, 243, 237, 241, 244, 238, 242, 245, 238, 242, 245, 239, 243, 246, 239, 243, 246, 240, 244, 247, 240, 244, 247, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 247, 251, 254, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 242, 246, 249, 241, 245, 248, 241, 245, 248, 241, 245, 248, 244, 245, 250, 242, 243, 248, 238, 241, 246, 237, 240, 245, 236, 239, 244, 234, 237, 242, 229, 233, 236, 226, 230, 233, 224, 225, 227, 218, 220, 219, 213, 213, 213, 208, 209, 204, 208, 204, 201, 205, 202, 197, 203, 198, 192, 200, 197, 190, 196, 192, 189, 192, 191, 189, 192, 188, 185, 190, 186, 183, 190, 186, 183, 191, 187, 184, 193, 189, 186, 195, 191, 188, 196, 191, 187, 185, 180, 176, 172, 167, 163, 166, 161, 157, 168, 163, 159, 175, 170, 166, 181, 174, 168, 183, 176, 170, 164, 159, 156, 160, 155, 152, 157, 152, 149, 158, 153, 150, 163, 158, 155, 169, 164, 161, 174, 169, 166, 177, 172, 169, 180, 175, 172, 179, 174, 171, 177, 172, 169, 175, 170, 167, 175, 170, 167, 176, 171, 168, 178, 173, 170, 179, 174, 171, 183, 178, 175, 182, 177, 174, 181, 176, 173, 182, 177, 174, 183, 178, 175, 184, 179, 176, 184, 179, 176, 184, 179, 176, 172, 167, 164, 169, 164, 161, 166, 161, 158, 163, 158, 155, 160, 155, 152, 154, 149, 146, 146, 141, 138, 140, 135, 132, 140, 135, 132, 138, 133, 130, 136, 131, 128, 140, 135, 132, 148, 143, 140, 154, 149, 146, 153, 148, 145, 148, 143, 140, 161, 156, 153, 157, 152, 149, 159, 154, 151, 164, 159, 156, 161, 156, 153, 154, 149, 146, 159, 154, 151, 171, 166, 163, 143, 135, 132, 146, 138, 135, 151, 143, 140, 152, 144, 141, 147, 139, 136, 133, 125, 122, 117, 109, 106, 106, 98, 95, 113, 108, 104, 109, 104, 100, 124, 119, 115, 146, 141, 137, 150, 147, 142, 153, 150, 145, 159, 156, 151, 160, 157, 152, 160, 157, 152, 150, 147, 142, 150, 147, 142, 156, 153, 148, 160, 156, 153, 168, 164, 161, 165, 161, 158, 149, 145, 142, 156, 152, 149, 162, 158, 155, 170, 166, 165, 173, 169, 168, 169, 165, 164, 165, 161, 160, 162, 158, 157, 161, 157, 156, 146, 145, 141, 154, 153, 149, 162, 161, 157, 169, 168, 164, 178, 174, 171, 182, 178, 175, 178, 173, 170, 170, 165, 162, 164, 159, 156, 163, 158, 155, 156, 152, 149, 153, 149, 146, 158, 157, 153, 171, 170, 166, 176, 175, 171, 173, 172, 168, 199, 199, 197, 195, 195, 193, 183, 183, 181, 171, 171, 169, 170, 170, 168, 180, 180, 178, 188, 188, 186, 188, 188, 186, 180, 180, 178, 192, 192, 190, 201, 201, 199, 205, 205, 203, 213, 213, 211, 216, 216, 214, 195, 195, 193, 167, 167, 165, 156, 158, 157, 192, 194, 193, 220, 222, 221, 218, 220, 219, 212, 214, 213, 219, 221, 220, 225, 227, 226, 224, 226, 225, 219, 221, 220, 224, 226, 225, 231, 233, 232, 236, 238, 237, 237, 239, 238, 237, 239, 238, 240, 242, 241, 242, 244, 243, 244, 246, 245, 243, 245, 244, 243, 245, 244, 245, 247, 246, 248, 250, 249, 250, 252, 251, 250, 252, 251, 248, 250, 249, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 247, 245, 246, 247, 245, 246, 246, 244, 245, 246, 244, 245, 247, 243, 244, 246, 242, 243, 245, 241, 242, 245, 241, 242, 242, 238, 237, 242, 238, 237, 243, 239, 238, 243, 239, 238, 244, 240, 239, 245, 241, 240, 245, 241, 240, 246, 242, 241, 247, 243, 242, 247, 243, 242, 247, 243, 242, 247, 243, 242, 248, 244, 243, 248, 244, 243, 249, 245, 244, 249, 245, 244, 246, 245, 243, 246, 245, 243, 246, 245, 243, 246, 245, 243, 248, 244, 243, 248, 244, 243, 248, 244, 243, 248, 244, 243, 249, 245, 244, 247, 243, 242, 247, 241, 241, 247, 241, 241, 249, 243, 243, 250, 244, 244, 249, 243, 243, 247, 241, 241, 246, 240, 240, 245, 241, 240, 246, 242, 241, 246, 242, 241, 247, 241, 241, 247, 241, 241, 246, 240, 240, 246, 240, 240, 244, 238, 238, 247, 241, 241, 250, 241, 242, 247, 238, 239, 247, 238, 239, 251, 242, 243, 251, 242, 243, 248, 239, 240, 246, 242, 241, 244, 240, 239, 242, 238, 237, 243, 239, 238, 245, 241, 240, 246, 242, 241, 245, 239, 239, 244, 238, 238, 248, 239, 240, 247, 238, 239, 245, 236, 237, 243, 234, 235, 243, 233, 234, 242, 232, 233, 242, 232, 233, 243, 233, 234, 244, 233, 237, 243, 232, 236, 243, 232, 236, 242, 233, 236, 242, 233, 236, 242, 233, 236, 240, 234, 236, 241, 235, 237, 247, 241, 243, 246, 240, 242, 244, 240, 241, 243, 239, 240, 243, 239, 240, 244, 240, 241, 243, 241, 242, 244, 242, 243, 242, 242, 242, 243, 243, 243, 244, 244, 244, 246, 246, 246, 246, 246, 246, 247, 247, 247, 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 248, 248, 248, 249, 249, 249, 249, 249, 249, 249, 249, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 248, 250, 249, 248, 250, 249, 247, 249, 248, 246, 248, 247, 244, 246, 245, 244, 246, 245, 244, 246, 245, 241, 243, 242, 237, 239, 238, 234, 236, 235, 232, 234, 233, 228, 230, 229, 224, 226, 225, 220, 222, 221, 216, 218, 217, 214, 216, 215, 211, 213, 212, 210, 212, 211, 210, 212, 211, 208, 210, 209, 204, 206, 205, 200, 202, 201, 197, 197, 195, 194, 194, 192, 190, 189, 187, 184, 183, 181, 184, 183, 179, 187, 186, 182, 186, 185, 181, 183, 182, 178, 177, 173, 170, 164, 160, 157, 158, 155, 150, 164, 161, 156, 167, 164, 159, 166, 163, 158, 171, 166, 162, 179, 174, 170, 191, 186, 182, 184, 179, 175, 183, 178, 174, 176, 171, 167, 164, 159, 155, 166, 161, 157, 177, 172, 168, 179, 174, 170, 184, 179, 175, 186, 181, 177, 188, 183, 179, 188, 183, 179, 188, 183, 179, 188, 183, 179, 186, 181, 177, 183, 178, 174, 190, 182, 179, 190, 182, 179, 191, 181, 179, 190, 180, 178, 188, 178, 176, 187, 177, 175, 188, 179, 174, 189, 180, 175, 173, 162, 158, 156, 145, 141, 135, 124, 118, 123, 112, 106, 123, 112, 106, 128, 117, 111, 133, 120, 114, 133, 120, 114, 127, 114, 108, 131, 118, 112, 137, 124, 118, 142, 129, 123, 143, 130, 124, 141, 128, 122, 137, 124, 118, 134, 121, 115, 132, 119, 113, 127, 114, 108, 124, 111, 105, 126, 113, 107, 132, 119, 113, 136, 123, 117, 136, 123, 117, 134, 121, 115, 120, 107, 101, 122, 109, 101, 123, 110, 104, 124, 111, 103, 127, 114, 108, 131, 118, 110, 135, 122, 116, 135, 122, 114, 132, 119, 113, 129, 116, 108, 125, 112, 106, 123, 110, 102, 125, 112, 106, 128, 115, 107, 129, 116, 110, 129, 116, 110, 127, 112, 109, 129, 114, 111, 133, 118, 115, 138, 123, 120, 143, 125, 123, 144, 126, 124, 144, 126, 124, 144, 126, 124, 143, 123, 122, 146, 126, 125, 151, 131, 130, 154, 134, 133, 155, 135, 134, 151, 131, 130, 147, 127, 126, 144, 124, 123, 141, 123, 121, 143, 125, 123, 146, 128, 126, 147, 129, 127, 146, 131, 128, 148, 133, 130, 153, 138, 135, 156, 141, 138, 153, 138, 135, 156, 141, 138, 160, 146, 143, 162, 148, 145, 164, 150, 147, 166, 152, 149, 170, 156, 153, 173, 159, 156, 179, 168, 166, 184, 173, 171, 189, 179, 177, 194, 186, 183, 198, 190, 188, 200, 195, 192, 204, 200, 197, 207, 203, 200, 208, 207, 203, 209, 208, 204, 212, 211, 209, 214, 213, 211, 214, 213, 211, 213, 212, 210, 214, 210, 209, 211, 210, 208, 209, 207, 208, 207, 207, 207, 205, 206, 208, 204, 205, 207, 204, 205, 207, 204, 205, 207, 205, 206, 208, 205, 206, 208, 204, 208, 211, 205, 209, 212, 207, 211, 214, 209, 213, 216, 211, 215, 218, 213, 217, 220, 213, 218, 222, 214, 219, 223, 216, 219, 224, 218, 221, 226, 220, 223, 228, 223, 226, 231, 225, 228, 233, 226, 229, 234, 227, 230, 235, 227, 230, 235, 230, 233, 238, 230, 233, 238, 231, 234, 239, 231, 234, 239, 232, 235, 240, 233, 236, 241, 233, 236, 241, 233, 236, 241, 233, 236, 241, 234, 238, 241, 234, 238, 241, 235, 239, 242, 236, 240, 243, 237, 241, 244, 238, 242, 245, 238, 242, 245, 239, 243, 246, 240, 244, 247, 241, 245, 248, 242, 246, 249, 243, 247, 250, 243, 247, 250, 242, 246, 249, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 242, 246, 249, 241, 245, 248, 241, 245, 248, 241, 245, 248, 242, 245, 250, 240, 243, 248, 238, 241, 246, 237, 240, 245, 237, 240, 245, 235, 238, 243, 231, 235, 238, 228, 232, 235, 225, 226, 228, 220, 222, 221, 214, 214, 214, 209, 210, 205, 209, 205, 202, 207, 204, 199, 205, 200, 194, 201, 198, 193, 203, 199, 196, 199, 198, 196, 198, 194, 191, 196, 192, 189, 196, 192, 189, 198, 194, 191, 200, 196, 193, 201, 197, 194, 193, 188, 184, 185, 180, 176, 175, 170, 166, 170, 165, 161, 172, 167, 163, 175, 170, 166, 178, 171, 165, 177, 170, 164, 160, 155, 152, 159, 154, 151, 161, 156, 153, 166, 161, 158, 173, 168, 165, 179, 174, 171, 181, 176, 173, 182, 177, 174, 181, 176, 173, 179, 174, 171, 177, 172, 169, 175, 170, 167, 175, 170, 167, 177, 172, 169, 180, 175, 172, 182, 177, 174, 178, 173, 170, 181, 176, 173, 184, 179, 176, 186, 181, 178, 185, 180, 177, 182, 177, 174, 180, 175, 172, 178, 173, 170, 183, 178, 175, 181, 176, 173, 178, 173, 170, 174, 169, 166, 170, 165, 162, 163, 158, 155, 155, 150, 147, 150, 145, 142, 158, 153, 150, 154, 149, 146, 153, 148, 145, 156, 151, 148, 158, 153, 150, 154, 149, 146, 148, 143, 140, 144, 139, 136, 160, 155, 152, 156, 151, 148, 158, 153, 150, 163, 158, 155, 159, 154, 151, 150, 145, 142, 153, 148, 145, 165, 160, 157, 147, 139, 136, 153, 145, 142, 160, 152, 149, 162, 154, 151, 161, 153, 150, 161, 153, 150, 162, 157, 153, 165, 160, 156, 141, 136, 132, 132, 127, 123, 143, 138, 134, 163, 158, 154, 163, 160, 155, 160, 157, 152, 164, 161, 156, 166, 163, 158, 164, 161, 156, 168, 165, 160, 174, 171, 166, 173, 170, 165, 176, 172, 169, 186, 182, 179, 171, 167, 164, 137, 133, 130, 154, 150, 147, 163, 159, 156, 172, 168, 167, 174, 170, 169, 171, 167, 166, 168, 164, 163, 169, 165, 164, 171, 167, 166, 171, 170, 166, 175, 174, 170, 176, 175, 171, 173, 172, 168, 171, 167, 164, 164, 160, 157, 151, 146, 143, 138, 133, 130, 161, 156, 153, 163, 158, 155, 165, 161, 158, 173, 169, 166, 184, 183, 179, 196, 195, 191, 200, 199, 195, 198, 197, 193, 201, 201, 199, 196, 196, 194, 190, 190, 188, 188, 188, 186, 189, 189, 187, 187, 187, 185, 174, 174, 172, 161, 161, 159, 182, 182, 180, 192, 192, 190, 207, 207, 205, 214, 214, 212, 202, 202, 200, 178, 178, 176, 158, 158, 156, 150, 150, 148, 199, 201, 200, 210, 212, 211, 217, 219, 218, 216, 218, 217, 213, 215, 214, 215, 217, 216, 218, 220, 219, 220, 222, 221, 216, 218, 217, 228, 230, 229, 240, 242, 241, 241, 243, 242, 236, 238, 237, 234, 236, 235, 241, 243, 242, 250, 252, 251, 246, 248, 247, 245, 247, 246, 244, 246, 245, 246, 248, 247, 249, 251, 250, 251, 253, 252, 250, 252, 251, 249, 251, 250, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 247, 245, 246, 247, 245, 246, 246, 244, 245, 246, 244, 245, 247, 243, 244, 246, 242, 243, 245, 241, 242, 245, 241, 242, 241, 237, 236, 242, 238, 237, 242, 238, 237, 243, 239, 238, 244, 240, 239, 244, 240, 239, 245, 241, 240, 245, 241, 240, 246, 242, 241, 246, 242, 241, 246, 242, 241, 247, 243, 242, 247, 243, 242, 247, 243, 242, 248, 244, 243, 248, 244, 243, 245, 244, 242, 245, 244, 242, 247, 243, 242, 247, 243, 242, 247, 243, 242, 247, 243, 242, 247, 243, 242, 247, 243, 242, 249, 243, 243, 247, 241, 241, 247, 241, 241, 248, 242, 242, 250, 244, 244, 250, 244, 244, 250, 241, 242, 246, 240, 240, 247, 241, 241, 246, 240, 240, 246, 240, 240, 246, 240, 240, 246, 240, 240, 246, 240, 240, 248, 239, 240, 249, 240, 241, 245, 236, 237, 249, 240, 241, 249, 240, 241, 246, 237, 238, 248, 238, 239, 251, 241, 242, 252, 242, 243, 248, 239, 240, 247, 241, 241, 245, 239, 239, 244, 238, 238, 244, 238, 238, 246, 240, 240, 247, 241, 241, 248, 239, 240, 246, 237, 238, 247, 238, 239, 246, 237, 238, 245, 235, 236, 244, 234, 235, 242, 232, 233, 242, 232, 233, 242, 232, 233, 242, 232, 233, 242, 233, 234, 242, 233, 234, 242, 233, 234, 243, 234, 235, 243, 234, 235, 240, 234, 234, 240, 234, 234, 240, 234, 234, 245, 241, 240, 244, 240, 239, 243, 239, 238, 242, 238, 237, 242, 238, 237, 243, 239, 238, 244, 240, 239, 243, 242, 240, 242, 242, 242, 243, 243, 243, 244, 244, 244, 246, 246, 246, 246, 246, 246, 247, 247, 247, 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 248, 248, 248, 249, 249, 249, 249, 249, 249, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 244, 246, 245, 244, 246, 245, 245, 247, 246, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 247, 246, 244, 246, 245, 242, 244, 243, 239, 241, 240, 235, 237, 236, 232, 234, 233, 229, 231, 230, 224, 226, 225, 217, 219, 218, 212, 214, 213, 217, 219, 218, 214, 216, 215, 210, 212, 211, 208, 210, 209, 207, 209, 208, 206, 208, 207, 204, 206, 205, 202, 204, 203, 202, 202, 200, 204, 204, 202, 201, 201, 199, 196, 196, 194, 199, 198, 196, 206, 205, 203, 207, 206, 202, 202, 201, 197, 200, 199, 195, 185, 184, 180, 176, 172, 169, 177, 173, 170, 176, 173, 168, 174, 171, 166, 181, 178, 173, 193, 188, 184, 186, 181, 177, 187, 179, 176, 195, 187, 184, 196, 188, 185, 187, 179, 176, 189, 181, 178, 197, 189, 186, 196, 188, 185, 204, 196, 193, 199, 191, 188, 194, 186, 183, 190, 182, 179, 186, 178, 175, 183, 175, 172, 183, 175, 172, 184, 176, 173, 188, 180, 177, 183, 175, 172, 179, 171, 168, 180, 172, 169, 184, 176, 173, 185, 177, 174, 181, 172, 167, 176, 167, 162, 143, 134, 129, 139, 130, 125, 139, 128, 124, 146, 135, 131, 157, 146, 140, 160, 149, 143, 154, 143, 137, 145, 134, 128, 160, 149, 143, 161, 150, 144, 161, 150, 144, 160, 149, 143, 158, 147, 141, 155, 144, 138, 152, 141, 135, 150, 139, 133, 131, 120, 114, 130, 119, 113, 131, 120, 114, 137, 126, 120, 144, 133, 127, 147, 136, 130, 145, 134, 128, 141, 130, 124, 139, 126, 120, 138, 125, 119, 137, 123, 120, 138, 125, 119, 139, 125, 122, 139, 126, 120, 140, 126, 123, 143, 130, 124, 140, 126, 123, 135, 122, 116, 128, 114, 111, 126, 113, 107, 128, 114, 111, 133, 120, 114, 137, 123, 120, 139, 125, 122, 151, 136, 133, 149, 134, 131, 147, 132, 129, 145, 130, 127, 147, 129, 127, 148, 130, 128, 150, 132, 130, 151, 133, 131, 153, 135, 133, 156, 138, 136, 160, 140, 139, 163, 143, 142, 163, 143, 142, 160, 140, 139, 156, 136, 135, 153, 133, 132, 146, 128, 126, 148, 130, 128, 149, 134, 131, 149, 134, 131, 150, 135, 132, 152, 137, 134, 156, 141, 138, 160, 145, 142, 159, 145, 142, 162, 148, 145, 165, 151, 148, 166, 152, 149, 166, 152, 149, 167, 153, 150, 168, 157, 153, 170, 159, 155, 179, 168, 166, 184, 173, 171, 190, 180, 178, 195, 187, 184, 199, 191, 189, 202, 197, 194, 206, 202, 199, 209, 205, 202, 210, 209, 205, 211, 210, 206, 213, 212, 210, 215, 214, 212, 215, 214, 212, 214, 213, 211, 214, 210, 209, 211, 210, 208, 208, 206, 207, 206, 206, 206, 205, 205, 205, 203, 203, 203, 202, 203, 205, 202, 203, 205, 202, 203, 205, 203, 204, 206, 202, 203, 205, 203, 204, 206, 202, 206, 209, 204, 208, 211, 207, 211, 214, 209, 213, 216, 210, 214, 217, 211, 214, 219, 214, 219, 223, 215, 220, 226, 217, 222, 228, 220, 225, 231, 222, 227, 233, 223, 228, 234, 224, 229, 235, 224, 229, 235, 226, 231, 237, 226, 231, 237, 227, 232, 238, 228, 233, 239, 229, 234, 240, 230, 235, 241, 230, 235, 241, 231, 236, 240, 231, 234, 239, 231, 234, 239, 232, 235, 240, 233, 236, 241, 235, 238, 243, 236, 239, 244, 237, 240, 245, 238, 241, 246, 239, 242, 247, 240, 243, 248, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 242, 246, 249, 241, 245, 248, 241, 245, 248, 241, 245, 248, 242, 245, 250, 240, 243, 248, 238, 241, 246, 238, 241, 246, 238, 241, 246, 236, 239, 244, 232, 236, 239, 229, 233, 236, 226, 227, 231, 221, 222, 224, 215, 215, 215, 210, 210, 208, 208, 207, 203, 208, 205, 200, 206, 201, 197, 202, 199, 194, 203, 202, 198, 202, 201, 199, 203, 199, 196, 201, 197, 194, 201, 197, 194, 201, 197, 194, 201, 197, 194, 201, 197, 194, 190, 185, 181, 190, 185, 181, 189, 184, 180, 189, 184, 180, 188, 183, 179, 184, 179, 175, 179, 172, 166, 174, 167, 161, 175, 170, 167, 174, 169, 166, 173, 168, 165, 175, 170, 167, 179, 174, 171, 183, 178, 175, 184, 179, 176, 183, 178, 175, 182, 177, 174, 181, 176, 173, 179, 174, 171, 178, 173, 170, 179, 174, 171, 181, 176, 173, 183, 178, 175, 185, 180, 177, 181, 176, 173, 185, 180, 177, 188, 183, 180, 188, 183, 180, 185, 180, 177, 181, 176, 173, 178, 173, 170, 177, 172, 169, 180, 175, 172, 180, 175, 172, 180, 175, 172, 178, 173, 170, 176, 171, 168, 173, 168, 165, 171, 166, 163, 170, 165, 162, 174, 169, 166, 172, 167, 164, 175, 170, 167, 180, 175, 172, 180, 175, 172, 176, 171, 168, 175, 170, 167, 178, 173, 170, 158, 153, 150, 161, 156, 153, 166, 161, 158, 171, 166, 163, 168, 163, 160, 158, 153, 150, 152, 147, 144, 152, 147, 144, 167, 159, 156, 170, 162, 159, 176, 168, 165, 186, 178, 175, 194, 186, 183, 195, 187, 184, 188, 183, 179, 182, 177, 173, 153, 148, 144, 134, 129, 125, 134, 129, 125, 148, 143, 139, 155, 152, 147, 162, 159, 154, 170, 167, 162, 171, 168, 163, 181, 178, 173, 192, 189, 184, 199, 196, 191, 188, 185, 180, 177, 173, 170, 183, 179, 176, 179, 175, 172, 157, 153, 150, 167, 163, 160, 172, 168, 165, 178, 174, 173, 177, 173, 172, 172, 168, 167, 167, 163, 162, 165, 161, 160, 166, 162, 161, 164, 163, 159, 168, 167, 163, 168, 167, 163, 163, 162, 158, 162, 158, 155, 161, 157, 154, 158, 153, 150, 152, 147, 144, 165, 160, 157, 169, 164, 161, 176, 172, 169, 185, 181, 178, 189, 188, 184, 190, 189, 185, 187, 186, 182, 184, 183, 179, 198, 198, 196, 188, 188, 186, 179, 179, 177, 179, 179, 177, 186, 186, 184, 190, 190, 188, 187, 187, 185, 182, 182, 180, 188, 188, 186, 188, 188, 186, 194, 194, 192, 196, 196, 194, 180, 180, 178, 162, 162, 160, 166, 166, 164, 185, 185, 183, 210, 212, 211, 207, 209, 208, 208, 210, 209, 214, 216, 215, 217, 219, 218, 216, 218, 217, 214, 216, 215, 215, 217, 216, 222, 224, 223, 232, 234, 233, 242, 244, 243, 242, 244, 243, 236, 238, 237, 235, 237, 236, 243, 245, 244, 252, 254, 253, 248, 250, 249, 246, 248, 247, 245, 247, 246, 247, 249, 248, 249, 251, 250, 251, 253, 252, 250, 252, 251, 248, 250, 249, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 247, 245, 246, 246, 244, 245, 246, 244, 245, 245, 243, 244, 246, 242, 243, 245, 241, 242, 245, 241, 242, 244, 240, 241, 241, 237, 236, 241, 237, 236, 242, 238, 237, 242, 238, 237, 243, 239, 238, 244, 240, 239, 245, 241, 240, 245, 241, 240, 245, 241, 240, 245, 241, 240, 245, 241, 240, 246, 242, 241, 246, 242, 241, 247, 243, 242, 247, 243, 242, 247, 243, 242, 244, 243, 241, 244, 243, 241, 246, 242, 241, 246, 242, 241, 246, 242, 241, 246, 242, 241, 246, 242, 241, 246, 242, 241, 248, 242, 242, 247, 241, 241, 247, 241, 241, 248, 242, 242, 250, 244, 244, 250, 244, 244, 249, 240, 241, 247, 238, 239, 247, 241, 241, 246, 240, 240, 245, 239, 239, 244, 238, 238, 244, 238, 238, 245, 239, 239, 248, 239, 240, 249, 240, 241, 245, 236, 237, 249, 240, 241, 249, 240, 241, 246, 237, 238, 247, 237, 238, 251, 241, 242, 251, 241, 242, 248, 238, 239, 250, 241, 242, 246, 240, 240, 245, 239, 239, 246, 240, 240, 247, 241, 241, 248, 242, 242, 249, 240, 241, 247, 238, 239, 247, 238, 239, 246, 237, 238, 245, 235, 236, 243, 233, 234, 242, 232, 233, 242, 232, 233, 242, 232, 233, 242, 232, 233, 241, 232, 233, 242, 233, 234, 243, 234, 235, 244, 235, 236, 242, 236, 236, 241, 235, 235, 240, 234, 234, 239, 233, 233, 243, 239, 238, 242, 238, 237, 241, 237, 236, 240, 236, 235, 240, 236, 235, 241, 237, 236, 242, 238, 237, 241, 240, 238, 243, 241, 242, 243, 243, 243, 244, 244, 244, 246, 246, 246, 246, 246, 246, 247, 247, 247, 246, 246, 246, 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 243, 245, 244, 244, 246, 245, 245, 247, 246, 245, 247, 246, 246, 248, 247, 245, 247, 246, 244, 246, 245, 244, 246, 245, 245, 247, 246, 243, 245, 244, 240, 242, 241, 238, 240, 239, 235, 237, 236, 229, 231, 230, 222, 224, 223, 217, 219, 218, 217, 219, 218, 211, 213, 212, 204, 206, 205, 198, 200, 199, 194, 196, 195, 192, 194, 193, 189, 191, 190, 187, 189, 188, 193, 193, 191, 199, 199, 197, 199, 199, 197, 196, 196, 194, 202, 201, 199, 211, 210, 208, 212, 211, 207, 204, 203, 199, 193, 192, 188, 188, 187, 183, 186, 182, 179, 186, 182, 179, 185, 182, 177, 185, 182, 177, 188, 185, 180, 194, 191, 186, 200, 195, 191, 194, 186, 183, 193, 185, 182, 189, 181, 178, 180, 172, 169, 183, 175, 172, 192, 184, 181, 191, 183, 180, 193, 185, 182, 183, 175, 172, 175, 167, 164, 173, 165, 162, 174, 166, 163, 178, 170, 167, 188, 180, 177, 199, 191, 188, 190, 182, 179, 186, 178, 175, 185, 177, 174, 189, 181, 178, 193, 185, 182, 188, 180, 177, 174, 165, 160, 160, 151, 146, 155, 146, 141, 159, 150, 145, 165, 154, 150, 168, 157, 153, 168, 157, 151, 166, 155, 149, 164, 153, 147, 163, 152, 146, 151, 140, 134, 148, 137, 131, 145, 134, 128, 141, 130, 124, 137, 126, 120, 135, 124, 118, 133, 122, 116, 133, 122, 116, 138, 127, 121, 140, 129, 123, 143, 132, 126, 147, 136, 130, 151, 140, 134, 151, 140, 134, 149, 138, 132, 146, 135, 129, 149, 135, 132, 144, 130, 127, 141, 127, 124, 141, 127, 124, 138, 124, 121, 132, 118, 115, 131, 117, 114, 134, 120, 117, 140, 126, 123, 138, 124, 121, 138, 124, 121, 139, 125, 122, 142, 128, 125, 143, 129, 126, 142, 128, 125, 140, 126, 123, 155, 141, 138, 151, 137, 134, 147, 133, 130, 143, 129, 126, 143, 128, 125, 145, 130, 127, 149, 134, 131, 152, 137, 134, 151, 136, 133, 152, 137, 134, 155, 137, 135, 156, 138, 136, 155, 137, 135, 154, 136, 134, 151, 133, 131, 150, 132, 130, 154, 136, 134, 155, 137, 135, 153, 138, 135, 150, 135, 132, 147, 132, 129, 147, 132, 129, 148, 133, 130, 150, 135, 132, 156, 142, 139, 158, 144, 141, 160, 146, 143, 160, 146, 143, 160, 146, 143, 162, 148, 145, 164, 153, 149, 167, 156, 152, 180, 169, 167, 184, 174, 172, 191, 181, 179, 197, 189, 186, 199, 194, 191, 204, 199, 196, 208, 204, 201, 212, 208, 205, 213, 212, 208, 214, 213, 209, 216, 215, 213, 217, 216, 214, 217, 216, 214, 216, 215, 213, 216, 212, 211, 212, 211, 209, 207, 207, 207, 206, 206, 206, 205, 205, 205, 203, 203, 203, 201, 202, 204, 201, 202, 204, 202, 203, 205, 202, 203, 205, 200, 201, 203, 201, 202, 204, 200, 204, 207, 202, 206, 209, 203, 207, 210, 205, 209, 212, 206, 210, 213, 207, 211, 214, 210, 215, 221, 212, 217, 223, 214, 219, 225, 217, 222, 228, 219, 224, 230, 220, 225, 231, 220, 225, 231, 221, 226, 232, 222, 227, 233, 223, 228, 234, 223, 228, 234, 225, 230, 236, 226, 231, 237, 227, 232, 238, 228, 233, 239, 229, 234, 240, 228, 231, 236, 229, 232, 237, 230, 233, 238, 232, 235, 240, 234, 237, 242, 235, 238, 243, 236, 239, 244, 237, 240, 245, 238, 241, 246, 239, 242, 247, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 242, 246, 249, 241, 245, 248, 241, 245, 248, 241, 245, 248, 242, 246, 249, 240, 244, 247, 239, 242, 247, 238, 241, 246, 238, 243, 247, 236, 241, 245, 232, 237, 241, 229, 234, 237, 224, 228, 231, 221, 222, 224, 215, 215, 215, 210, 210, 208, 208, 207, 203, 206, 205, 200, 205, 202, 197, 202, 199, 194, 201, 200, 196, 201, 200, 198, 203, 199, 196, 202, 198, 195, 201, 197, 194, 198, 194, 191, 196, 192, 189, 195, 191, 188, 191, 186, 182, 193, 188, 184, 194, 189, 185, 192, 187, 183, 187, 182, 178, 181, 176, 172, 179, 172, 166, 178, 171, 165, 188, 183, 180, 183, 178, 175, 176, 171, 168, 173, 168, 165, 175, 170, 167, 179, 174, 171, 182, 177, 174, 184, 179, 176, 184, 179, 176, 183, 178, 175, 183, 178, 175, 183, 178, 175, 184, 179, 176, 185, 180, 177, 187, 182, 179, 187, 182, 179, 186, 181, 178, 188, 183, 180, 187, 182, 179, 182, 177, 174, 176, 171, 168, 173, 168, 165, 175, 170, 167, 178, 173, 170, 175, 170, 167, 175, 170, 167, 175, 170, 167, 174, 169, 166, 173, 168, 165, 173, 168, 165, 175, 170, 167, 177, 172, 169, 175, 170, 167, 171, 166, 163, 169, 164, 161, 168, 163, 160, 160, 155, 152, 152, 147, 144, 156, 151, 148, 167, 162, 159, 173, 168, 165, 178, 173, 170, 181, 176, 173, 180, 175, 172, 178, 173, 170, 174, 169, 166, 164, 159, 156, 153, 148, 145, 139, 131, 128, 142, 134, 131, 150, 142, 139, 160, 152, 149, 164, 159, 155, 157, 152, 148, 140, 135, 131, 126, 121, 117, 152, 147, 143, 141, 136, 132, 140, 137, 132, 142, 139, 134, 139, 136, 131, 146, 143, 138, 159, 156, 151, 162, 159, 154, 186, 183, 178, 179, 176, 171, 180, 177, 172, 175, 172, 167, 160, 156, 153, 156, 152, 149, 161, 157, 154, 160, 156, 153, 173, 169, 166, 174, 170, 167, 175, 171, 170, 171, 167, 166, 165, 161, 160, 157, 153, 152, 151, 147, 146, 149, 145, 144, 148, 147, 143, 159, 158, 154, 167, 166, 162, 169, 168, 164, 172, 168, 165, 177, 173, 170, 181, 176, 173, 181, 176, 173, 181, 176, 173, 186, 181, 178, 194, 190, 187, 200, 196, 193, 196, 195, 191, 187, 186, 182, 180, 179, 175, 177, 176, 172, 173, 173, 171, 178, 178, 176, 187, 187, 185, 197, 197, 195, 200, 200, 198, 196, 196, 194, 192, 192, 190, 191, 191, 189, 195, 195, 193, 190, 190, 188, 186, 186, 184, 182, 182, 180, 178, 178, 176, 181, 181, 179, 197, 197, 195, 214, 214, 212, 199, 201, 200, 204, 206, 205, 210, 212, 211, 213, 215, 214, 214, 216, 215, 216, 218, 217, 220, 222, 221, 223, 225, 224, 234, 236, 235, 235, 237, 236, 237, 239, 238, 238, 240, 239, 239, 241, 240, 242, 244, 243, 245, 247, 246, 248, 250, 249, 248, 250, 249, 246, 248, 247, 245, 247, 246, 247, 249, 248, 249, 251, 250, 250, 252, 251, 249, 251, 250, 248, 250, 249, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 244, 245, 245, 243, 244, 245, 243, 244, 244, 242, 243, 245, 241, 242, 244, 240, 241, 244, 240, 241, 243, 239, 240, 241, 237, 236, 241, 237, 236, 241, 237, 236, 242, 238, 237, 243, 239, 238, 244, 240, 239, 244, 240, 239, 245, 241, 240, 244, 240, 239, 245, 241, 240, 245, 241, 240, 245, 241, 240, 246, 242, 241, 246, 242, 241, 246, 242, 241, 247, 243, 242, 246, 242, 241, 246, 242, 241, 246, 242, 241, 246, 242, 241, 246, 242, 241, 246, 242, 241, 247, 241, 241, 247, 241, 241, 247, 241, 241, 246, 240, 240, 247, 241, 241, 249, 243, 243, 252, 243, 244, 252, 243, 244, 249, 240, 241, 246, 237, 238, 250, 241, 242, 248, 239, 240, 247, 238, 239, 245, 236, 237, 245, 236, 237, 247, 238, 239, 248, 239, 240, 250, 241, 242, 246, 236, 237, 249, 239, 240, 250, 240, 241, 247, 237, 238, 247, 237, 238, 251, 241, 242, 252, 240, 242, 248, 238, 239, 251, 243, 241, 249, 241, 239, 248, 240, 238, 249, 241, 239, 251, 243, 241, 251, 243, 241, 251, 241, 240, 249, 239, 238, 248, 238, 237, 247, 237, 236, 245, 235, 234, 243, 233, 232, 242, 232, 231, 241, 231, 230, 241, 231, 230, 242, 232, 231, 240, 231, 232, 239, 233, 233, 241, 235, 235, 242, 236, 236, 242, 236, 236, 241, 235, 235, 239, 233, 233, 238, 232, 232, 242, 236, 236, 241, 235, 235, 240, 234, 234, 240, 234, 234, 239, 235, 234, 239, 235, 234, 240, 236, 235, 239, 238, 236, 243, 241, 242, 243, 243, 243, 244, 244, 244, 246, 246, 246, 246, 246, 246, 247, 247, 247, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 248, 248, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 245, 247, 246, 245, 247, 246, 246, 248, 247, 247, 249, 248, 246, 248, 247, 246, 248, 247, 245, 247, 246, 244, 246, 245, 246, 248, 247, 245, 247, 246, 244, 246, 245, 244, 246, 245, 244, 246, 245, 240, 242, 241, 234, 236, 235, 229, 231, 230, 216, 218, 217, 212, 214, 213, 207, 209, 208, 206, 208, 207, 208, 210, 209, 212, 214, 213, 214, 216, 215, 215, 217, 216, 193, 193, 193, 201, 201, 201, 202, 202, 200, 195, 195, 193, 195, 195, 193, 201, 201, 199, 197, 196, 194, 184, 183, 181, 183, 182, 178, 187, 186, 182, 188, 187, 183, 185, 184, 180, 187, 183, 180, 192, 188, 185, 196, 193, 188, 196, 193, 188, 187, 182, 178, 175, 170, 166, 172, 167, 163, 171, 166, 162, 170, 165, 161, 181, 176, 172, 194, 189, 185, 194, 189, 185, 197, 192, 188, 188, 183, 179, 182, 177, 173, 183, 178, 174, 182, 177, 173, 180, 175, 171, 185, 180, 176, 194, 189, 185, 190, 185, 182, 191, 186, 183, 194, 189, 186, 196, 191, 188, 198, 190, 187, 190, 182, 179, 177, 169, 166, 167, 159, 156, 184, 177, 171, 181, 174, 168, 176, 167, 162, 171, 162, 157, 166, 157, 152, 163, 154, 149, 161, 152, 147, 160, 151, 146, 148, 139, 132, 147, 138, 131, 146, 137, 130, 144, 135, 128, 142, 133, 126, 141, 132, 125, 140, 131, 124, 140, 131, 124, 128, 119, 112, 131, 122, 115, 135, 126, 119, 138, 129, 122, 139, 130, 123, 141, 132, 125, 143, 134, 127, 146, 137, 130, 147, 136, 132, 140, 129, 127, 139, 128, 126, 142, 131, 129, 141, 130, 128, 135, 124, 122, 136, 125, 123, 141, 130, 128, 148, 137, 135, 148, 137, 135, 150, 139, 137, 153, 142, 140, 154, 143, 141, 153, 142, 140, 148, 137, 135, 144, 133, 131, 144, 135, 130, 142, 133, 128, 140, 129, 125, 138, 127, 123, 137, 126, 122, 138, 127, 123, 139, 128, 124, 141, 130, 126, 148, 134, 131, 147, 133, 130, 146, 132, 129, 145, 131, 128, 144, 130, 127, 144, 130, 127, 145, 130, 127, 145, 130, 127, 154, 139, 136, 154, 139, 136, 153, 138, 135, 150, 135, 132, 146, 131, 128, 144, 129, 126, 144, 130, 127, 146, 132, 129, 147, 133, 130, 149, 135, 132, 150, 136, 133, 151, 137, 134, 151, 140, 136, 155, 144, 140, 162, 151, 147, 168, 157, 153, 181, 171, 169, 186, 176, 174, 193, 183, 181, 198, 190, 187, 201, 196, 193, 206, 201, 198, 211, 207, 204, 212, 211, 207, 215, 214, 210, 216, 215, 211, 217, 217, 215, 218, 218, 216, 219, 218, 216, 217, 216, 214, 215, 214, 212, 213, 212, 210, 209, 209, 209, 208, 208, 208, 206, 206, 206, 204, 204, 204, 203, 203, 203, 203, 203, 203, 202, 203, 205, 202, 203, 205, 200, 201, 203, 201, 202, 204, 201, 202, 204, 202, 203, 205, 201, 205, 208, 202, 206, 209, 202, 206, 209, 202, 206, 209, 205, 210, 216, 207, 212, 218, 209, 214, 220, 212, 217, 223, 214, 219, 225, 215, 220, 226, 215, 220, 226, 216, 221, 227, 219, 224, 230, 219, 224, 230, 220, 225, 231, 222, 227, 233, 223, 228, 234, 225, 230, 236, 226, 231, 237, 227, 232, 238, 227, 230, 235, 227, 230, 235, 229, 232, 237, 230, 233, 238, 232, 235, 240, 234, 237, 242, 236, 239, 244, 236, 239, 244, 238, 241, 246, 239, 242, 247, 240, 243, 248, 241, 244, 249, 242, 245, 250, 241, 244, 249, 241, 244, 249, 240, 243, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 242, 246, 249, 241, 245, 248, 241, 245, 248, 241, 245, 248, 242, 246, 249, 240, 244, 247, 239, 242, 247, 239, 242, 247, 238, 243, 247, 237, 242, 246, 233, 238, 242, 230, 235, 239, 224, 228, 231, 219, 223, 226, 214, 215, 217, 210, 210, 210, 208, 207, 205, 206, 205, 201, 205, 201, 198, 202, 198, 195, 198, 197, 195, 198, 197, 195, 201, 197, 194, 201, 197, 194, 199, 195, 192, 195, 191, 188, 191, 187, 184, 189, 185, 182, 194, 189, 185, 193, 188, 184, 188, 183, 179, 179, 174, 170, 171, 166, 162, 170, 165, 161, 177, 170, 164, 183, 176, 170, 189, 184, 181, 181, 176, 173, 170, 165, 162, 164, 159, 156, 165, 160, 157, 173, 168, 165, 181, 176, 173, 186, 181, 178, 184, 179, 176, 185, 180, 177, 186, 181, 178, 187, 182, 179, 188, 183, 180, 188, 183, 180, 189, 184, 181, 189, 184, 181, 182, 177, 174, 180, 175, 172, 175, 170, 167, 166, 161, 158, 159, 154, 151, 158, 153, 150, 164, 159, 156, 170, 165, 162, 180, 175, 172, 180, 175, 172, 178, 173, 170, 175, 170, 167, 172, 167, 164, 173, 168, 165, 176, 171, 168, 179, 174, 171, 171, 166, 163, 165, 160, 157, 161, 156, 153, 155, 150, 147, 144, 139, 136, 138, 133, 130, 149, 144, 141, 167, 162, 159, 161, 156, 153, 164, 159, 156, 159, 154, 151, 150, 145, 142, 149, 144, 141, 153, 148, 145, 146, 141, 138, 133, 128, 125, 154, 146, 143, 157, 149, 146, 161, 153, 150, 165, 157, 154, 165, 160, 156, 165, 160, 156, 165, 160, 156, 165, 160, 156, 154, 149, 145, 163, 158, 154, 176, 173, 168, 171, 168, 163, 152, 149, 144, 152, 149, 144, 170, 167, 162, 181, 178, 173, 188, 185, 180, 159, 156, 151, 153, 150, 145, 168, 165, 160, 165, 161, 158, 155, 151, 148, 159, 155, 152, 166, 162, 159, 168, 164, 161, 167, 163, 160, 165, 161, 160, 161, 157, 156, 155, 151, 150, 147, 143, 142, 139, 135, 134, 134, 130, 129, 156, 155, 151, 171, 170, 166, 185, 184, 180, 186, 185, 181, 182, 178, 175, 177, 173, 170, 174, 169, 166, 170, 165, 162, 162, 157, 154, 169, 164, 161, 181, 177, 174, 190, 186, 183, 186, 185, 181, 177, 176, 172, 174, 173, 169, 176, 175, 171, 188, 188, 186, 191, 191, 189, 195, 195, 193, 192, 192, 190, 183, 183, 181, 177, 177, 175, 185, 185, 183, 197, 197, 195, 207, 207, 205, 204, 204, 202, 195, 195, 193, 188, 188, 186, 192, 192, 190, 204, 204, 202, 209, 209, 207, 205, 205, 203, 207, 209, 208, 224, 226, 225, 231, 233, 232, 220, 222, 221, 210, 212, 211, 216, 218, 217, 226, 228, 227, 231, 233, 232, 244, 246, 245, 237, 239, 238, 231, 233, 232, 234, 236, 235, 242, 244, 243, 248, 250, 249, 247, 249, 248, 243, 245, 244, 248, 250, 249, 247, 249, 248, 245, 247, 246, 247, 249, 248, 249, 251, 250, 250, 252, 251, 249, 251, 250, 247, 249, 248, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 245, 243, 244, 245, 243, 244, 244, 242, 243, 243, 241, 242, 244, 240, 241, 244, 240, 241, 243, 239, 240, 243, 239, 240, 240, 236, 235, 241, 237, 236, 241, 237, 236, 242, 238, 237, 243, 239, 238, 244, 240, 239, 244, 240, 239, 245, 241, 240, 244, 240, 239, 244, 240, 239, 245, 241, 240, 245, 241, 240, 245, 241, 240, 246, 242, 241, 246, 242, 241, 246, 242, 241, 245, 241, 240, 245, 241, 240, 245, 241, 240, 245, 241, 240, 245, 241, 240, 245, 241, 240, 246, 240, 240, 246, 240, 240, 246, 240, 240, 246, 240, 240, 247, 241, 241, 249, 243, 243, 253, 244, 245, 252, 243, 244, 249, 240, 241, 245, 236, 237, 250, 241, 242, 248, 239, 240, 246, 237, 238, 245, 236, 237, 245, 236, 237, 246, 237, 238, 248, 239, 240, 250, 241, 242, 246, 236, 237, 249, 239, 240, 249, 239, 240, 247, 237, 238, 247, 237, 238, 251, 241, 242, 252, 240, 242, 249, 237, 239, 253, 243, 242, 250, 242, 240, 250, 240, 239, 250, 242, 240, 253, 243, 242, 253, 243, 242, 252, 242, 241, 250, 240, 239, 248, 238, 237, 246, 236, 235, 245, 235, 234, 243, 233, 232, 242, 232, 231, 241, 231, 230, 241, 231, 230, 240, 232, 230, 240, 231, 232, 239, 233, 233, 241, 235, 235, 243, 237, 237, 243, 237, 237, 241, 235, 235, 239, 233, 233, 238, 232, 232, 241, 235, 235, 240, 234, 234, 239, 233, 233, 238, 232, 232, 238, 232, 232, 238, 234, 233, 240, 234, 234, 240, 236, 235, 243, 241, 242, 243, 243, 243, 244, 244, 244, 246, 246, 246, 246, 246, 246, 247, 247, 247, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 248, 248, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 245, 247, 246, 244, 246, 245, 238, 240, 239, 238, 240, 239, 239, 241, 240, 241, 243, 242, 243, 245, 244, 241, 243, 242, 236, 238, 237, 231, 233, 232, 230, 232, 231, 224, 226, 225, 217, 219, 218, 212, 214, 213, 212, 214, 213, 213, 215, 214, 214, 216, 215, 214, 216, 215, 218, 218, 218, 226, 226, 226, 223, 223, 221, 210, 210, 208, 204, 204, 202, 204, 204, 202, 194, 193, 191, 176, 175, 173, 182, 181, 177, 187, 186, 182, 183, 182, 178, 170, 169, 165, 169, 165, 162, 177, 173, 170, 181, 178, 173, 178, 175, 170, 177, 172, 168, 173, 168, 164, 182, 177, 173, 193, 188, 184, 196, 191, 187, 199, 194, 190, 198, 193, 189, 186, 181, 177, 174, 169, 165, 171, 166, 162, 175, 170, 166, 185, 180, 176, 185, 180, 176, 175, 170, 166, 171, 166, 162, 174, 169, 165, 184, 179, 176, 188, 183, 180, 190, 185, 182, 189, 184, 181, 186, 178, 175, 182, 174, 171, 181, 173, 170, 182, 174, 171, 177, 170, 164, 170, 163, 157, 168, 159, 154, 175, 166, 161, 182, 173, 168, 178, 169, 164, 160, 151, 146, 143, 134, 129, 137, 128, 121, 138, 129, 122, 140, 131, 124, 142, 133, 126, 143, 134, 127, 143, 134, 127, 143, 134, 127, 142, 133, 126, 142, 133, 126, 146, 137, 130, 151, 142, 135, 153, 144, 137, 155, 146, 139, 160, 151, 144, 170, 161, 154, 178, 169, 164, 189, 178, 176, 184, 173, 171, 185, 174, 172, 194, 183, 181, 198, 187, 185, 196, 185, 183, 200, 189, 187, 208, 197, 195, 203, 192, 190, 202, 191, 189, 200, 189, 187, 200, 189, 187, 200, 189, 187, 199, 188, 186, 196, 185, 183, 192, 182, 180, 186, 179, 173, 184, 177, 171, 181, 172, 167, 176, 167, 162, 170, 161, 156, 165, 156, 151, 160, 151, 146, 158, 149, 144, 155, 144, 140, 153, 142, 138, 150, 139, 135, 147, 136, 132, 146, 135, 131, 147, 136, 132, 151, 137, 134, 153, 139, 136, 151, 136, 133, 152, 137, 134, 153, 138, 135, 151, 136, 133, 149, 134, 131, 149, 134, 131, 150, 136, 133, 152, 138, 135, 141, 127, 124, 142, 128, 125, 144, 130, 127, 145, 131, 128, 147, 136, 132, 155, 144, 140, 165, 154, 150, 172, 161, 157, 181, 171, 169, 187, 177, 175, 193, 185, 182, 199, 191, 188, 202, 197, 194, 207, 203, 200, 210, 209, 205, 214, 213, 209, 216, 215, 211, 218, 217, 213, 218, 218, 216, 219, 219, 217, 220, 219, 217, 218, 217, 215, 216, 215, 213, 214, 213, 211, 210, 210, 210, 209, 209, 209, 207, 207, 207, 205, 205, 205, 204, 204, 204, 203, 203, 203, 202, 203, 205, 202, 203, 205, 201, 202, 204, 201, 202, 204, 201, 202, 204, 201, 202, 204, 200, 204, 207, 200, 204, 207, 200, 204, 207, 200, 204, 207, 201, 206, 210, 203, 208, 214, 205, 210, 216, 208, 213, 219, 210, 215, 221, 211, 216, 222, 212, 217, 223, 212, 217, 223, 217, 222, 228, 217, 222, 228, 219, 224, 230, 220, 225, 231, 222, 227, 233, 223, 228, 234, 225, 230, 236, 225, 230, 236, 226, 229, 234, 226, 229, 234, 228, 231, 236, 230, 233, 238, 232, 235, 240, 234, 237, 242, 235, 238, 243, 236, 239, 244, 238, 241, 246, 239, 242, 247, 240, 243, 248, 241, 244, 249, 242, 245, 250, 241, 244, 249, 241, 244, 249, 240, 243, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 242, 246, 249, 241, 245, 248, 241, 245, 248, 240, 244, 247, 238, 243, 246, 237, 242, 245, 234, 239, 243, 231, 236, 240, 229, 234, 238, 227, 232, 236, 226, 230, 233, 221, 225, 228, 215, 216, 218, 207, 207, 207, 203, 201, 202, 202, 201, 199, 205, 201, 200, 207, 203, 202, 207, 206, 204, 201, 200, 198, 195, 191, 188, 190, 186, 183, 188, 184, 181, 189, 185, 182, 190, 186, 183, 190, 186, 183, 184, 179, 175, 183, 178, 174, 181, 176, 172, 181, 176, 172, 181, 176, 172, 181, 176, 172, 180, 173, 167, 177, 170, 164, 156, 151, 148, 160, 155, 152, 167, 162, 159, 175, 170, 167, 181, 176, 173, 186, 181, 178, 188, 183, 180, 189, 184, 181, 185, 180, 177, 183, 178, 175, 181, 176, 173, 184, 179, 176, 187, 182, 179, 184, 179, 176, 174, 169, 166, 165, 160, 157, 178, 173, 170, 174, 169, 166, 167, 162, 159, 163, 158, 155, 164, 159, 156, 170, 165, 162, 178, 173, 170, 184, 179, 176, 176, 171, 168, 178, 173, 170, 179, 174, 171, 176, 171, 168, 171, 166, 163, 166, 161, 158, 164, 159, 156, 163, 158, 155, 147, 142, 139, 155, 150, 147, 165, 160, 157, 169, 164, 161, 168, 163, 160, 167, 162, 159, 170, 165, 162, 173, 168, 165, 169, 164, 161, 171, 166, 163, 174, 169, 166, 175, 170, 167, 171, 166, 163, 163, 158, 155, 154, 149, 146, 149, 144, 141, 167, 162, 159, 167, 162, 159, 167, 162, 159, 168, 163, 160, 168, 163, 160, 163, 158, 155, 155, 151, 148, 149, 145, 142, 141, 137, 134, 143, 139, 136, 148, 144, 141, 157, 153, 150, 171, 170, 166, 184, 183, 179, 183, 182, 178, 178, 174, 171, 195, 192, 187, 193, 188, 184, 186, 181, 177, 179, 174, 170, 177, 172, 169, 178, 173, 170, 174, 169, 166, 166, 161, 158, 154, 149, 146, 150, 145, 142, 136, 130, 130, 131, 125, 125, 137, 131, 131, 135, 129, 129, 147, 141, 141, 177, 173, 172, 182, 181, 177, 182, 181, 177, 182, 181, 177, 181, 180, 176, 180, 176, 173, 173, 169, 166, 164, 159, 156, 157, 152, 149, 190, 185, 182, 191, 186, 183, 186, 182, 179, 175, 171, 168, 161, 160, 156, 162, 161, 157, 175, 174, 170, 189, 188, 184, 205, 205, 203, 189, 189, 187, 170, 170, 168, 167, 167, 165, 183, 183, 181, 203, 203, 201, 207, 207, 205, 201, 201, 199, 206, 206, 204, 200, 200, 198, 189, 189, 187, 179, 179, 177, 180, 180, 178, 195, 195, 193, 216, 216, 214, 231, 231, 229, 222, 224, 223, 215, 217, 216, 209, 211, 210, 208, 210, 209, 215, 217, 216, 223, 225, 224, 230, 232, 231, 233, 235, 234, 239, 241, 240, 239, 241, 240, 239, 241, 240, 241, 243, 242, 243, 245, 244, 247, 249, 248, 250, 252, 251, 252, 254, 253, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 247, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 244, 245, 246, 244, 245, 244, 242, 243, 242, 240, 241, 242, 238, 239, 240, 236, 237, 239, 235, 236, 238, 234, 235, 240, 234, 234, 240, 234, 234, 242, 236, 236, 243, 237, 237, 243, 237, 237, 243, 237, 237, 242, 236, 236, 242, 236, 236, 244, 238, 238, 244, 238, 238, 244, 238, 238, 245, 239, 239, 245, 239, 239, 245, 239, 239, 246, 240, 240, 246, 240, 240, 246, 242, 241, 246, 242, 241, 246, 242, 241, 246, 242, 241, 247, 241, 241, 247, 241, 241, 247, 241, 241, 247, 241, 241, 247, 238, 239, 247, 238, 239, 248, 239, 240, 248, 239, 240, 249, 240, 241, 249, 240, 241, 249, 240, 241, 250, 241, 242, 247, 238, 239, 246, 237, 238, 245, 235, 236, 245, 235, 236, 246, 236, 237, 248, 238, 239, 251, 241, 242, 253, 243, 244, 252, 240, 242, 250, 238, 240, 246, 234, 236, 244, 232, 234, 244, 232, 234, 245, 233, 235, 248, 236, 238, 250, 238, 240, 250, 238, 238, 249, 239, 238, 252, 240, 240, 252, 242, 241, 253, 241, 241, 252, 242, 241, 251, 241, 240, 251, 241, 240, 245, 235, 234, 245, 235, 234, 244, 234, 233, 243, 233, 232, 243, 233, 232, 242, 232, 231, 241, 231, 230, 240, 232, 230, 240, 231, 232, 238, 232, 232, 239, 233, 233, 239, 233, 233, 240, 234, 234, 241, 235, 235, 244, 235, 236, 244, 235, 236, 241, 232, 233, 243, 234, 235, 244, 235, 236, 242, 233, 234, 240, 231, 232, 236, 230, 230, 239, 230, 231, 238, 232, 232, 241, 239, 240, 242, 242, 242, 245, 245, 245, 246, 246, 246, 245, 245, 245, 244, 244, 244, 245, 245, 245, 247, 247, 247, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 245, 247, 246, 245, 247, 246, 244, 246, 245, 242, 244, 243, 240, 242, 241, 239, 241, 240, 238, 240, 239, 237, 239, 238, 225, 227, 226, 223, 225, 224, 221, 223, 222, 218, 220, 219, 216, 218, 217, 215, 217, 216, 215, 217, 216, 215, 217, 216, 215, 217, 216, 217, 219, 218, 218, 218, 218, 214, 214, 214, 208, 208, 208, 205, 205, 205, 206, 206, 204, 209, 209, 207, 212, 211, 209, 208, 207, 205, 194, 193, 189, 175, 174, 170, 168, 167, 163, 171, 170, 166, 171, 170, 166, 166, 162, 159, 168, 163, 160, 173, 168, 165, 180, 175, 172, 183, 178, 175, 178, 173, 170, 163, 158, 155, 144, 139, 136, 132, 127, 124, 145, 140, 137, 163, 158, 155, 181, 176, 173, 185, 180, 177, 177, 172, 169, 170, 165, 162, 173, 168, 165, 179, 174, 171, 187, 183, 180, 185, 181, 178, 184, 180, 177, 184, 180, 177, 187, 182, 179, 187, 182, 179, 185, 180, 176, 183, 178, 174, 173, 165, 162, 169, 161, 158, 165, 157, 154, 163, 155, 152, 164, 157, 151, 166, 159, 153, 166, 159, 153, 165, 158, 152, 178, 169, 164, 183, 174, 169, 190, 181, 176, 198, 189, 184, 204, 195, 190, 209, 200, 195, 212, 203, 198, 213, 204, 199, 209, 200, 195, 213, 204, 199, 217, 208, 203, 216, 207, 202, 212, 203, 198, 210, 201, 196, 212, 203, 198, 215, 206, 201, 203, 193, 191, 196, 186, 184, 192, 182, 180, 193, 183, 181, 192, 182, 180, 187, 177, 175, 183, 173, 171, 183, 173, 171, 174, 164, 162, 171, 161, 159, 169, 159, 157, 172, 162, 160, 176, 166, 164, 175, 165, 163, 167, 157, 155, 158, 148, 146, 175, 168, 162, 176, 169, 163, 178, 171, 165, 181, 174, 168, 183, 176, 170, 185, 178, 172, 188, 179, 174, 189, 180, 175, 193, 184, 179, 195, 186, 181, 197, 186, 182, 194, 183, 179, 187, 176, 172, 176, 165, 161, 165, 154, 150, 159, 145, 142, 149, 134, 131, 146, 131, 128, 145, 130, 127, 148, 133, 130, 152, 138, 135, 153, 139, 136, 150, 136, 133, 146, 132, 129, 144, 133, 129, 145, 134, 130, 147, 136, 132, 151, 140, 136, 157, 146, 142, 164, 153, 149, 170, 159, 155, 173, 162, 158, 187, 177, 175, 192, 182, 180, 197, 189, 186, 201, 193, 190, 202, 197, 194, 205, 201, 198, 207, 206, 202, 210, 209, 205, 212, 213, 208, 214, 215, 210, 216, 216, 214, 219, 219, 217, 219, 219, 217, 219, 219, 217, 218, 217, 215, 217, 216, 214, 213, 212, 210, 213, 212, 210, 211, 211, 211, 210, 210, 210, 209, 209, 209, 207, 207, 207, 207, 207, 207, 206, 206, 206, 206, 207, 209, 205, 206, 208, 203, 204, 206, 201, 202, 204, 198, 199, 201, 196, 197, 199, 194, 195, 197, 191, 195, 198, 200, 205, 209, 201, 206, 210, 202, 207, 211, 204, 209, 213, 205, 210, 214, 207, 212, 216, 208, 213, 217, 209, 214, 218, 214, 219, 223, 214, 219, 223, 215, 220, 224, 217, 222, 226, 219, 224, 228, 220, 225, 229, 221, 226, 230, 222, 227, 231, 221, 224, 229, 224, 227, 232, 227, 230, 235, 228, 231, 236, 229, 232, 237, 230, 233, 238, 234, 237, 242, 236, 239, 244, 235, 238, 243, 236, 239, 244, 238, 241, 246, 239, 242, 247, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 242, 246, 249, 241, 245, 248, 241, 245, 248, 240, 244, 247, 239, 244, 247, 237, 242, 245, 235, 240, 244, 232, 237, 241, 229, 234, 238, 228, 233, 237, 223, 227, 230, 221, 225, 228, 220, 221, 225, 215, 216, 218, 212, 212, 214, 209, 207, 208, 208, 204, 205, 207, 203, 202, 203, 202, 200, 198, 197, 195, 193, 189, 186, 189, 185, 182, 188, 184, 181, 188, 184, 181, 186, 182, 179, 185, 181, 178, 190, 185, 181, 188, 183, 179, 184, 179, 175, 180, 175, 171, 175, 170, 166, 166, 161, 157, 158, 151, 145, 151, 144, 138, 161, 156, 153, 165, 160, 157, 173, 168, 165, 179, 174, 171, 183, 178, 175, 182, 177, 174, 179, 174, 171, 176, 171, 168, 171, 166, 163, 174, 169, 166, 175, 170, 167, 171, 166, 163, 166, 161, 158, 167, 162, 159, 175, 170, 167, 183, 178, 175, 175, 170, 167, 173, 168, 165, 172, 167, 164, 172, 167, 164, 175, 170, 167, 180, 175, 172, 186, 181, 178, 190, 185, 182, 188, 183, 180, 186, 181, 178, 183, 178, 175, 180, 175, 172, 179, 174, 171, 178, 173, 170, 178, 173, 170, 178, 173, 170, 181, 176, 173, 179, 174, 171, 178, 173, 170, 177, 172, 169, 178, 173, 170, 179, 174, 171, 180, 175, 172, 179, 174, 171, 178, 173, 170, 176, 171, 168, 174, 169, 166, 172, 167, 164, 169, 164, 161, 167, 162, 159, 165, 160, 157, 164, 159, 156, 143, 138, 135, 144, 139, 136, 143, 138, 135, 140, 135, 132, 134, 129, 126, 127, 122, 119, 118, 114, 111, 114, 110, 107, 141, 137, 134, 148, 144, 141, 153, 149, 146, 156, 152, 149, 157, 156, 152, 158, 157, 153, 150, 149, 145, 140, 139, 135, 169, 164, 160, 165, 160, 156, 158, 153, 149, 155, 150, 146, 162, 157, 154, 172, 167, 164, 174, 169, 166, 170, 165, 162, 162, 157, 154, 166, 161, 158, 157, 151, 151, 155, 149, 149, 169, 163, 163, 172, 166, 166, 165, 159, 159, 165, 161, 160, 172, 168, 165, 172, 171, 167, 176, 175, 171, 181, 180, 176, 187, 183, 180, 185, 181, 178, 181, 176, 173, 177, 172, 169, 136, 131, 128, 132, 127, 124, 127, 123, 120, 131, 127, 124, 141, 140, 136, 157, 156, 152, 172, 171, 167, 180, 179, 175, 176, 176, 174, 186, 186, 184, 197, 197, 195, 203, 203, 201, 210, 210, 208, 215, 215, 213, 215, 215, 213, 211, 211, 209, 189, 189, 187, 200, 200, 198, 195, 195, 193, 181, 181, 179, 191, 191, 189, 219, 219, 217, 226, 226, 224, 211, 211, 209, 197, 199, 198, 208, 210, 209, 219, 221, 220, 222, 224, 223, 220, 222, 221, 221, 223, 222, 228, 230, 229, 236, 238, 237, 238, 240, 239, 239, 241, 240, 241, 243, 242, 243, 245, 244, 245, 247, 246, 247, 249, 248, 249, 251, 250, 250, 252, 251, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 247, 249, 248, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 248, 246, 247, 248, 246, 247, 246, 244, 245, 244, 242, 243, 244, 240, 241, 242, 238, 239, 241, 237, 238, 240, 236, 237, 239, 233, 233, 240, 234, 234, 242, 236, 236, 243, 237, 237, 243, 237, 237, 243, 237, 237, 242, 236, 236, 242, 236, 236, 244, 238, 238, 244, 238, 238, 244, 238, 238, 245, 239, 239, 245, 239, 239, 245, 239, 239, 246, 240, 240, 246, 240, 240, 246, 242, 241, 246, 242, 241, 246, 242, 241, 246, 242, 241, 247, 241, 241, 247, 241, 241, 247, 241, 241, 247, 241, 241, 247, 238, 239, 247, 238, 239, 247, 238, 239, 248, 239, 240, 248, 239, 240, 248, 239, 240, 249, 240, 241, 249, 240, 241, 247, 238, 239, 246, 237, 238, 246, 236, 237, 245, 235, 236, 245, 235, 236, 247, 237, 238, 249, 239, 240, 251, 241, 242, 251, 239, 241, 249, 237, 239, 246, 234, 236, 243, 231, 233, 243, 231, 233, 244, 232, 234, 247, 235, 237, 249, 237, 239, 248, 236, 236, 249, 237, 237, 250, 238, 238, 251, 239, 239, 252, 240, 240, 251, 239, 239, 251, 239, 239, 249, 239, 238, 245, 235, 234, 245, 235, 234, 245, 235, 234, 244, 234, 233, 243, 233, 232, 242, 232, 231, 242, 232, 231, 242, 232, 231, 240, 231, 232, 238, 232, 232, 239, 233, 233, 239, 233, 233, 240, 234, 234, 241, 235, 235, 243, 234, 235, 244, 235, 236, 242, 233, 234, 243, 234, 235, 244, 235, 236, 242, 233, 234, 240, 230, 231, 238, 229, 230, 240, 230, 231, 238, 232, 232, 240, 238, 239, 242, 242, 242, 245, 245, 245, 246, 246, 246, 245, 245, 245, 244, 244, 244, 245, 245, 245, 247, 247, 247, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 245, 247, 246, 245, 247, 246, 244, 246, 245, 242, 244, 243, 241, 243, 242, 239, 241, 240, 238, 240, 239, 238, 240, 239, 237, 239, 238, 236, 238, 237, 234, 236, 235, 232, 234, 233, 229, 231, 230, 227, 229, 228, 225, 227, 226, 224, 226, 225, 208, 210, 209, 208, 210, 209, 207, 207, 207, 202, 202, 202, 196, 196, 196, 196, 196, 196, 200, 200, 198, 204, 204, 202, 203, 202, 200, 212, 211, 209, 217, 216, 212, 214, 213, 209, 210, 209, 205, 201, 200, 196, 184, 183, 179, 166, 165, 161, 178, 174, 171, 178, 174, 171, 175, 170, 167, 164, 160, 157, 155, 150, 147, 149, 145, 142, 152, 147, 144, 155, 151, 148, 175, 170, 167, 180, 176, 173, 185, 180, 177, 179, 175, 172, 171, 166, 163, 169, 165, 162, 179, 174, 171, 188, 184, 181, 190, 186, 183, 187, 183, 180, 185, 181, 178, 184, 180, 177, 186, 181, 178, 185, 180, 177, 183, 178, 174, 180, 175, 171, 187, 179, 176, 191, 183, 180, 198, 190, 187, 209, 201, 198, 218, 211, 205, 223, 216, 210, 223, 216, 210, 222, 215, 209, 214, 205, 200, 213, 204, 199, 211, 202, 197, 208, 199, 194, 205, 196, 191, 200, 191, 186, 197, 188, 183, 195, 186, 181, 191, 182, 177, 187, 178, 173, 179, 170, 165, 166, 157, 152, 154, 145, 140, 148, 139, 134, 149, 140, 135, 152, 143, 138, 158, 148, 146, 153, 143, 141, 150, 140, 138, 148, 138, 136, 142, 132, 130, 133, 123, 121, 128, 118, 116, 128, 118, 116, 131, 121, 119, 128, 118, 116, 126, 116, 114, 130, 120, 118, 136, 126, 124, 137, 127, 125, 132, 122, 120, 126, 116, 114, 117, 108, 103, 118, 109, 104, 119, 110, 105, 121, 112, 107, 123, 114, 109, 126, 117, 112, 130, 119, 115, 132, 121, 117, 142, 131, 127, 150, 139, 135, 162, 151, 147, 177, 163, 160, 189, 175, 172, 197, 183, 180, 201, 187, 184, 203, 189, 186, 196, 181, 178, 187, 172, 169, 174, 159, 156, 164, 149, 146, 156, 142, 139, 149, 135, 132, 143, 129, 126, 138, 124, 121, 138, 127, 123, 144, 133, 129, 154, 143, 139, 165, 154, 150, 173, 162, 158, 177, 166, 162, 178, 167, 163, 178, 167, 163, 189, 179, 177, 193, 183, 181, 198, 190, 187, 202, 197, 193, 205, 200, 197, 208, 204, 201, 211, 210, 206, 214, 213, 209, 213, 214, 209, 215, 216, 211, 217, 217, 215, 219, 219, 217, 220, 220, 218, 220, 220, 218, 219, 218, 216, 218, 217, 215, 216, 215, 213, 215, 214, 212, 213, 213, 213, 212, 212, 212, 211, 211, 211, 210, 210, 210, 209, 209, 209, 209, 209, 209, 207, 208, 210, 206, 207, 209, 204, 205, 207, 202, 203, 205, 200, 201, 203, 198, 199, 201, 197, 198, 200, 196, 197, 199, 197, 201, 204, 197, 202, 206, 198, 203, 207, 199, 204, 208, 200, 205, 209, 202, 207, 211, 203, 208, 212, 203, 208, 212, 209, 214, 218, 210, 215, 219, 211, 216, 220, 213, 218, 222, 214, 219, 223, 216, 221, 225, 217, 222, 226, 218, 223, 227, 218, 221, 226, 221, 224, 229, 224, 227, 232, 225, 228, 233, 226, 229, 234, 228, 231, 236, 231, 234, 239, 234, 237, 242, 234, 237, 242, 235, 238, 243, 237, 240, 245, 239, 242, 247, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 242, 246, 249, 241, 245, 248, 240, 245, 248, 239, 244, 247, 239, 244, 247, 238, 243, 246, 235, 240, 244, 233, 238, 242, 230, 235, 239, 229, 234, 238, 221, 226, 230, 223, 227, 230, 226, 227, 231, 225, 226, 228, 222, 222, 224, 215, 215, 215, 209, 207, 208, 204, 202, 203, 201, 200, 198, 198, 197, 195, 196, 192, 189, 194, 190, 187, 192, 188, 185, 190, 186, 183, 187, 183, 180, 184, 180, 177, 184, 179, 175, 184, 179, 175, 184, 179, 175, 184, 179, 175, 181, 176, 172, 173, 168, 164, 165, 158, 152, 158, 151, 145, 168, 163, 160, 173, 168, 165, 179, 174, 171, 183, 178, 175, 182, 177, 174, 176, 171, 168, 168, 163, 160, 163, 158, 155, 160, 155, 152, 163, 158, 155, 166, 161, 158, 165, 160, 157, 164, 159, 156, 169, 164, 161, 179, 174, 171, 189, 184, 181, 177, 172, 169, 177, 172, 169, 177, 172, 169, 177, 172, 169, 179, 174, 171, 181, 176, 173, 183, 178, 175, 184, 179, 176, 182, 177, 174, 176, 171, 168, 170, 165, 162, 168, 163, 160, 172, 167, 164, 176, 171, 168, 177, 172, 169, 177, 172, 169, 175, 170, 167, 171, 166, 163, 169, 164, 161, 173, 168, 165, 180, 175, 172, 183, 178, 175, 179, 174, 171, 173, 168, 165, 172, 167, 164, 169, 164, 161, 164, 159, 156, 157, 152, 149, 150, 145, 142, 143, 138, 135, 138, 133, 130, 136, 131, 128, 136, 131, 128, 141, 136, 133, 145, 140, 137, 143, 138, 135, 137, 133, 130, 133, 129, 126, 132, 128, 125, 134, 130, 127, 138, 134, 131, 144, 140, 137, 146, 145, 141, 146, 145, 141, 146, 145, 141, 146, 145, 141, 142, 141, 137, 136, 135, 131, 149, 144, 140, 150, 145, 141, 153, 148, 144, 160, 155, 151, 171, 166, 163, 177, 172, 169, 168, 163, 160, 155, 150, 147, 148, 143, 140, 163, 158, 155, 164, 158, 158, 162, 156, 156, 176, 170, 170, 185, 179, 179, 175, 169, 169, 161, 157, 156, 157, 153, 150, 157, 156, 152, 162, 161, 157, 169, 168, 164, 176, 172, 169, 177, 173, 170, 175, 170, 167, 171, 166, 163, 148, 143, 140, 138, 133, 130, 127, 123, 120, 126, 122, 119, 135, 134, 130, 153, 152, 148, 169, 168, 164, 179, 178, 174, 193, 193, 191, 205, 205, 203, 214, 214, 212, 213, 213, 211, 209, 209, 207, 208, 208, 206, 207, 207, 205, 206, 206, 204, 196, 196, 194, 203, 203, 201, 198, 198, 196, 189, 189, 187, 199, 199, 197, 214, 214, 212, 200, 200, 198, 170, 170, 168, 187, 189, 188, 201, 203, 202, 217, 219, 218, 226, 228, 227, 226, 228, 227, 226, 228, 227, 231, 233, 232, 237, 239, 238, 237, 239, 238, 239, 241, 240, 242, 244, 243, 246, 248, 247, 248, 250, 249, 249, 251, 250, 248, 250, 249, 248, 250, 249, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 246, 245, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 250, 248, 249, 249, 247, 248, 247, 245, 246, 246, 244, 245, 245, 241, 242, 244, 240, 241, 242, 238, 239, 241, 237, 238, 239, 233, 233, 240, 234, 234, 241, 235, 235, 242, 236, 236, 243, 237, 237, 242, 236, 236, 242, 236, 236, 241, 235, 235, 243, 237, 237, 244, 238, 238, 244, 238, 238, 244, 238, 238, 245, 239, 239, 245, 239, 239, 245, 239, 239, 246, 240, 240, 246, 240, 240, 246, 240, 240, 246, 240, 240, 246, 240, 240, 246, 240, 240, 246, 240, 240, 248, 239, 240, 248, 239, 240, 247, 238, 239, 247, 238, 239, 247, 238, 239, 247, 238, 239, 248, 238, 239, 248, 238, 239, 248, 238, 239, 248, 238, 239, 249, 239, 240, 248, 238, 239, 247, 237, 238, 246, 236, 237, 246, 234, 236, 247, 235, 237, 248, 236, 238, 248, 236, 238, 248, 236, 238, 247, 235, 237, 246, 231, 234, 244, 229, 232, 244, 229, 232, 245, 230, 233, 247, 232, 235, 248, 233, 236, 248, 234, 234, 248, 234, 234, 250, 236, 236, 251, 237, 237, 251, 237, 237, 249, 237, 237, 248, 236, 236, 248, 236, 236, 246, 234, 234, 246, 234, 234, 245, 235, 234, 244, 234, 233, 244, 234, 233, 243, 233, 232, 243, 233, 232, 243, 233, 232, 240, 232, 230, 240, 232, 230, 241, 233, 231, 241, 233, 231, 242, 234, 232, 242, 234, 232, 243, 233, 232, 244, 234, 233, 243, 233, 232, 244, 234, 233, 244, 234, 233, 242, 232, 231, 240, 228, 228, 238, 228, 227, 241, 229, 229, 241, 232, 233, 240, 238, 239, 242, 242, 242, 245, 245, 245, 246, 246, 246, 245, 245, 245, 245, 245, 245, 246, 246, 246, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 244, 246, 245, 243, 245, 244, 241, 243, 242, 240, 242, 241, 239, 241, 240, 239, 241, 240, 237, 239, 238, 237, 239, 238, 237, 239, 238, 235, 237, 236, 232, 234, 233, 227, 229, 228, 223, 225, 224, 220, 222, 221, 224, 226, 225, 221, 223, 222, 215, 217, 216, 207, 209, 208, 201, 203, 202, 200, 202, 201, 205, 205, 205, 209, 209, 209, 202, 202, 200, 208, 208, 206, 212, 211, 209, 212, 211, 209, 213, 212, 208, 211, 210, 206, 203, 202, 198, 193, 192, 188, 189, 188, 184, 192, 191, 187, 195, 191, 188, 185, 184, 180, 176, 172, 169, 171, 170, 166, 180, 176, 173, 187, 186, 182, 195, 191, 188, 191, 190, 186, 186, 182, 179, 174, 173, 169, 168, 164, 161, 166, 165, 161, 175, 171, 168, 182, 178, 175, 189, 185, 184, 189, 185, 184, 192, 188, 185, 198, 194, 191, 205, 201, 198, 211, 207, 204, 214, 210, 207, 214, 210, 207, 222, 217, 213, 219, 214, 210, 214, 209, 205, 207, 202, 198, 198, 193, 189, 186, 181, 177, 175, 168, 162, 166, 159, 153, 178, 171, 165, 175, 168, 162, 170, 163, 157, 165, 158, 152, 159, 152, 146, 155, 148, 142, 151, 144, 138, 150, 143, 137, 147, 140, 134, 146, 139, 133, 142, 135, 129, 137, 130, 124, 134, 127, 121, 135, 128, 122, 140, 133, 127, 145, 138, 132, 155, 147, 144, 155, 147, 144, 155, 147, 144, 154, 146, 143, 144, 136, 133, 133, 125, 122, 130, 122, 119, 133, 125, 122, 133, 125, 122, 128, 120, 117, 125, 117, 114, 125, 117, 114, 128, 120, 117, 128, 120, 117, 124, 116, 113, 121, 111, 109, 127, 116, 112, 125, 114, 110, 123, 112, 108, 121, 110, 106, 120, 109, 105, 121, 110, 106, 125, 111, 108, 126, 112, 109, 139, 125, 122, 141, 127, 124, 144, 130, 127, 147, 132, 129, 148, 133, 130, 148, 133, 130, 146, 131, 128, 145, 130, 127, 166, 151, 148, 174, 160, 157, 188, 174, 171, 201, 187, 184, 207, 193, 190, 202, 188, 185, 187, 176, 172, 177, 166, 162, 159, 148, 144, 158, 147, 143, 159, 148, 144, 162, 151, 147, 169, 160, 155, 180, 171, 166, 190, 181, 176, 197, 188, 183, 198, 188, 186, 202, 192, 190, 205, 197, 194, 206, 201, 197, 207, 202, 199, 207, 203, 200, 208, 207, 203, 210, 209, 205, 215, 216, 211, 216, 217, 212, 219, 219, 217, 221, 221, 219, 222, 222, 220, 221, 221, 219, 220, 220, 218, 219, 219, 217, 218, 217, 215, 218, 217, 215, 217, 216, 214, 216, 215, 213, 215, 214, 212, 213, 212, 210, 212, 212, 212, 211, 211, 211, 209, 209, 209, 208, 208, 208, 206, 207, 209, 204, 205, 207, 203, 204, 206, 201, 202, 204, 200, 201, 203, 200, 201, 203, 196, 200, 203, 196, 200, 203, 197, 201, 204, 198, 202, 205, 199, 203, 206, 199, 203, 206, 200, 204, 207, 201, 205, 208, 204, 208, 211, 205, 209, 212, 206, 210, 213, 207, 211, 214, 209, 213, 216, 211, 215, 218, 212, 216, 219, 212, 215, 220, 214, 217, 222, 216, 219, 226, 220, 223, 230, 222, 225, 232, 223, 226, 233, 224, 227, 234, 228, 231, 238, 231, 234, 241, 233, 236, 243, 234, 237, 244, 236, 239, 246, 238, 241, 248, 239, 242, 249, 239, 242, 249, 239, 242, 249, 239, 242, 249, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 242, 246, 249, 241, 245, 248, 240, 245, 248, 240, 245, 248, 239, 244, 247, 238, 243, 246, 236, 241, 245, 234, 239, 243, 232, 237, 241, 230, 235, 239, 227, 232, 236, 228, 233, 237, 230, 231, 235, 228, 229, 233, 223, 223, 225, 215, 215, 217, 208, 206, 207, 203, 201, 202, 204, 203, 201, 202, 201, 199, 202, 198, 195, 201, 197, 194, 200, 196, 193, 196, 192, 189, 191, 187, 184, 186, 182, 179, 178, 173, 169, 178, 173, 169, 180, 175, 171, 183, 178, 174, 185, 180, 176, 183, 178, 174, 181, 174, 168, 177, 170, 164, 176, 171, 168, 178, 173, 170, 181, 176, 173, 181, 176, 173, 178, 173, 170, 172, 167, 164, 164, 159, 156, 160, 155, 152, 159, 154, 151, 159, 154, 151, 164, 159, 156, 174, 169, 166, 185, 180, 177, 189, 184, 181, 184, 179, 176, 178, 173, 170, 185, 180, 177, 183, 178, 175, 179, 174, 171, 174, 169, 166, 170, 165, 162, 168, 163, 160, 167, 162, 159, 167, 162, 159, 169, 164, 161, 162, 157, 154, 156, 151, 148, 158, 153, 150, 165, 160, 157, 171, 166, 163, 170, 165, 162, 167, 162, 159, 153, 148, 145, 156, 151, 148, 163, 158, 155, 172, 167, 164, 177, 172, 169, 174, 169, 166, 164, 159, 156, 156, 151, 148, 156, 151, 148, 160, 155, 152, 165, 160, 157, 169, 164, 161, 168, 163, 160, 163, 158, 155, 157, 152, 149, 153, 148, 145, 155, 150, 147, 162, 157, 154, 168, 163, 160, 167, 162, 159, 161, 157, 154, 158, 154, 151, 163, 159, 156, 168, 164, 161, 165, 161, 158, 163, 159, 156, 157, 156, 152, 154, 153, 149, 161, 160, 156, 170, 169, 165, 174, 173, 169, 171, 170, 166, 180, 175, 171, 176, 171, 167, 169, 164, 160, 168, 163, 159, 173, 168, 165, 175, 170, 167, 164, 159, 156, 150, 145, 142, 146, 141, 138, 160, 155, 152, 167, 161, 161, 162, 156, 156, 161, 155, 155, 165, 159, 159, 167, 161, 161, 167, 163, 162, 172, 168, 165, 170, 169, 165, 172, 171, 167, 174, 173, 169, 178, 174, 171, 176, 172, 169, 173, 168, 165, 168, 163, 160, 176, 171, 168, 181, 176, 173, 185, 181, 178, 185, 181, 178, 181, 180, 176, 185, 184, 180, 194, 193, 189, 203, 202, 198, 196, 196, 194, 198, 198, 196, 198, 198, 196, 198, 198, 196, 202, 202, 200, 209, 209, 207, 210, 210, 208, 206, 206, 204, 199, 199, 197, 190, 190, 188, 190, 190, 188, 203, 203, 201, 213, 213, 211, 208, 208, 206, 194, 194, 192, 185, 185, 183, 200, 202, 201, 202, 204, 203, 207, 209, 208, 217, 219, 218, 228, 230, 229, 235, 237, 236, 235, 237, 236, 233, 235, 234, 237, 239, 238, 240, 242, 241, 244, 246, 245, 248, 250, 249, 250, 252, 251, 250, 252, 251, 248, 250, 249, 246, 248, 247, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 246, 245, 244, 246, 245, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 249, 247, 248, 248, 246, 247, 247, 245, 246, 245, 243, 244, 245, 241, 242, 243, 239, 240, 241, 237, 238, 241, 237, 238, 239, 233, 233, 240, 234, 234, 241, 235, 235, 242, 236, 236, 242, 236, 236, 242, 236, 236, 241, 235, 235, 241, 235, 235, 243, 237, 237, 243, 237, 237, 244, 238, 238, 244, 238, 238, 244, 238, 238, 245, 239, 239, 245, 239, 239, 245, 239, 239, 246, 240, 240, 246, 240, 240, 246, 240, 240, 246, 240, 240, 246, 240, 240, 246, 240, 240, 248, 239, 240, 248, 239, 240, 246, 237, 238, 246, 237, 238, 246, 237, 238, 246, 237, 238, 247, 237, 238, 247, 237, 238, 246, 236, 237, 246, 236, 237, 249, 239, 240, 248, 238, 239, 247, 237, 238, 246, 236, 237, 246, 234, 236, 245, 233, 235, 245, 233, 235, 245, 233, 235, 246, 234, 236, 245, 233, 235, 245, 230, 233, 244, 229, 232, 244, 229, 232, 244, 229, 232, 245, 230, 233, 246, 231, 234, 245, 231, 231, 246, 232, 232, 247, 233, 233, 248, 234, 234, 249, 235, 235, 248, 234, 234, 248, 234, 234, 245, 233, 233, 246, 234, 234, 246, 234, 234, 245, 235, 234, 245, 235, 234, 244, 234, 233, 244, 234, 233, 244, 234, 233, 244, 234, 233, 241, 233, 231, 241, 233, 231, 241, 233, 231, 241, 233, 231, 241, 233, 231, 242, 232, 231, 242, 232, 231, 243, 233, 232, 243, 233, 232, 245, 233, 233, 244, 232, 232, 241, 229, 229, 241, 227, 227, 238, 226, 226, 242, 228, 228, 242, 232, 231, 241, 237, 238, 241, 241, 241, 244, 244, 244, 246, 246, 246, 245, 245, 245, 245, 245, 245, 247, 247, 247, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 244, 246, 245, 243, 245, 244, 242, 244, 243, 241, 243, 242, 241, 243, 242, 240, 242, 241, 234, 236, 235, 235, 237, 236, 235, 237, 236, 234, 236, 235, 230, 232, 231, 224, 226, 225, 218, 220, 219, 215, 217, 216, 224, 226, 225, 220, 222, 221, 213, 215, 214, 205, 207, 206, 198, 200, 199, 194, 196, 195, 194, 194, 194, 194, 194, 194, 203, 203, 201, 199, 199, 197, 195, 194, 192, 193, 192, 190, 198, 197, 193, 206, 205, 201, 213, 212, 208, 215, 214, 210, 200, 199, 195, 201, 200, 196, 199, 198, 194, 194, 193, 189, 187, 186, 182, 184, 183, 179, 187, 186, 182, 192, 191, 187, 171, 170, 166, 175, 174, 170, 181, 180, 176, 189, 188, 184, 198, 197, 193, 208, 207, 203, 216, 215, 211, 221, 220, 216, 226, 222, 221, 222, 218, 217, 219, 215, 212, 216, 212, 209, 215, 211, 208, 213, 209, 206, 209, 205, 202, 206, 202, 199, 183, 178, 174, 178, 173, 169, 172, 167, 163, 168, 163, 159, 167, 162, 158, 166, 161, 157, 166, 159, 153, 164, 157, 151, 164, 157, 151, 162, 155, 149, 159, 152, 146, 157, 150, 144, 156, 149, 143, 156, 149, 143, 158, 151, 145, 159, 152, 146, 157, 150, 144, 160, 153, 147, 163, 156, 150, 164, 157, 151, 164, 157, 151, 161, 154, 148, 159, 152, 146, 158, 151, 145, 145, 137, 134, 146, 138, 135, 149, 141, 138, 145, 137, 134, 133, 125, 122, 119, 111, 108, 116, 108, 105, 120, 112, 109, 131, 123, 120, 128, 120, 117, 125, 117, 114, 126, 118, 115, 130, 122, 119, 133, 125, 122, 133, 125, 122, 133, 123, 121, 102, 91, 87, 105, 91, 88, 108, 94, 91, 113, 99, 96, 120, 106, 103, 129, 115, 112, 138, 123, 120, 143, 128, 125, 153, 138, 135, 155, 140, 137, 159, 144, 141, 161, 146, 143, 163, 145, 143, 161, 143, 141, 158, 140, 138, 153, 138, 135, 154, 139, 136, 151, 137, 134, 150, 136, 133, 154, 140, 137, 164, 150, 147, 179, 165, 162, 191, 180, 176, 199, 188, 184, 203, 192, 188, 197, 186, 182, 187, 176, 172, 179, 168, 164, 176, 167, 162, 179, 170, 165, 185, 176, 171, 189, 180, 175, 197, 187, 185, 200, 192, 189, 205, 197, 194, 207, 202, 198, 207, 203, 200, 210, 206, 203, 211, 210, 206, 212, 213, 208, 216, 217, 212, 218, 219, 214, 220, 220, 218, 222, 222, 220, 223, 223, 221, 223, 223, 221, 221, 221, 219, 220, 220, 218, 219, 218, 216, 219, 218, 216, 218, 217, 215, 217, 216, 214, 215, 214, 212, 214, 213, 211, 212, 212, 212, 212, 212, 212, 210, 210, 210, 210, 210, 210, 208, 209, 211, 206, 207, 209, 205, 206, 208, 204, 205, 207, 203, 204, 206, 202, 203, 205, 197, 201, 204, 197, 201, 204, 197, 201, 204, 198, 202, 205, 198, 202, 205, 198, 202, 205, 199, 203, 206, 199, 203, 206, 199, 203, 206, 199, 203, 206, 201, 205, 208, 202, 206, 209, 204, 208, 211, 205, 209, 212, 206, 210, 213, 207, 211, 214, 210, 213, 218, 213, 216, 223, 217, 220, 227, 219, 222, 229, 220, 223, 230, 222, 225, 232, 226, 229, 236, 229, 232, 239, 231, 234, 241, 232, 235, 242, 234, 237, 244, 236, 239, 246, 237, 240, 247, 238, 241, 248, 238, 241, 248, 238, 241, 248, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 242, 246, 249, 241, 245, 248, 239, 245, 245, 240, 246, 246, 239, 244, 247, 239, 244, 247, 235, 243, 246, 233, 241, 244, 231, 239, 242, 230, 238, 241, 235, 240, 244, 233, 238, 242, 231, 232, 236, 224, 225, 229, 218, 218, 220, 210, 210, 212, 205, 203, 206, 202, 200, 201, 205, 204, 202, 204, 203, 201, 205, 201, 198, 204, 200, 197, 203, 199, 196, 199, 195, 192, 192, 188, 185, 187, 183, 180, 184, 179, 175, 181, 176, 172, 178, 173, 169, 176, 171, 167, 177, 172, 168, 177, 172, 168, 178, 171, 165, 176, 169, 163, 180, 175, 172, 180, 175, 172, 178, 173, 170, 176, 171, 168, 174, 169, 166, 171, 166, 163, 168, 163, 160, 166, 161, 158, 164, 159, 156, 167, 162, 159, 174, 169, 166, 185, 180, 177, 194, 189, 186, 194, 189, 186, 185, 180, 177, 176, 171, 168, 190, 185, 182, 185, 180, 177, 177, 172, 169, 169, 164, 161, 163, 158, 155, 161, 156, 153, 161, 156, 153, 162, 157, 154, 171, 166, 163, 167, 162, 159, 165, 160, 157, 169, 164, 161, 177, 172, 169, 180, 175, 172, 177, 172, 169, 171, 166, 163, 164, 159, 156, 172, 167, 164, 181, 176, 173, 184, 179, 176, 179, 174, 171, 170, 165, 162, 163, 158, 155, 159, 154, 151, 164, 159, 156, 168, 163, 160, 174, 169, 166, 178, 173, 170, 178, 173, 170, 174, 169, 166, 168, 163, 160, 164, 159, 156, 176, 171, 168, 179, 174, 171, 178, 173, 170, 170, 165, 162, 157, 153, 150, 150, 146, 143, 150, 146, 143, 154, 150, 147, 169, 168, 164, 161, 160, 156, 151, 150, 146, 147, 146, 142, 156, 155, 151, 166, 165, 161, 165, 164, 160, 157, 156, 152, 156, 151, 147, 141, 136, 132, 119, 114, 110, 109, 104, 100, 120, 115, 112, 143, 138, 135, 159, 154, 151, 164, 159, 156, 171, 166, 163, 168, 163, 160, 172, 166, 166, 175, 169, 169, 167, 161, 161, 160, 154, 154, 165, 159, 159, 172, 168, 167, 177, 173, 170, 175, 174, 170, 176, 175, 171, 179, 178, 174, 183, 179, 176, 182, 178, 175, 179, 174, 171, 176, 171, 168, 174, 169, 166, 184, 179, 176, 196, 192, 189, 201, 197, 194, 194, 193, 189, 186, 185, 181, 180, 179, 175, 177, 176, 172, 194, 194, 192, 199, 199, 197, 202, 202, 200, 202, 202, 200, 203, 203, 201, 205, 205, 203, 202, 202, 200, 196, 196, 194, 212, 212, 210, 206, 206, 204, 207, 207, 205, 216, 216, 214, 218, 218, 216, 211, 211, 209, 207, 207, 205, 210, 210, 208, 208, 210, 209, 209, 211, 210, 213, 215, 214, 221, 223, 222, 230, 232, 231, 234, 236, 235, 233, 235, 234, 230, 232, 231, 239, 241, 240, 241, 243, 242, 246, 248, 247, 249, 251, 250, 251, 253, 252, 250, 252, 251, 248, 250, 249, 246, 248, 247, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 245, 247, 246, 244, 246, 245, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 247, 245, 246, 246, 244, 245, 245, 243, 244, 243, 241, 242, 243, 239, 240, 241, 237, 238, 239, 235, 236, 239, 235, 236, 238, 232, 232, 239, 233, 233, 240, 234, 234, 241, 235, 235, 242, 236, 236, 242, 236, 236, 241, 235, 235, 240, 234, 234, 243, 237, 237, 243, 237, 237, 243, 237, 237, 243, 237, 237, 244, 238, 238, 244, 238, 238, 245, 239, 239, 245, 239, 239, 246, 240, 240, 246, 240, 240, 246, 240, 240, 246, 240, 240, 246, 240, 240, 246, 240, 240, 248, 239, 240, 248, 239, 240, 246, 237, 238, 246, 237, 238, 246, 236, 237, 246, 236, 237, 245, 235, 236, 245, 235, 236, 244, 234, 235, 244, 234, 235, 248, 236, 238, 248, 236, 238, 248, 236, 238, 247, 235, 237, 246, 234, 236, 245, 233, 235, 246, 231, 234, 245, 230, 233, 246, 231, 234, 246, 231, 234, 245, 230, 233, 244, 229, 232, 245, 229, 232, 245, 229, 232, 245, 229, 232, 245, 229, 232, 244, 228, 229, 245, 229, 229, 246, 230, 230, 247, 231, 231, 248, 232, 232, 246, 232, 231, 246, 232, 231, 245, 231, 230, 245, 234, 232, 245, 234, 232, 245, 234, 232, 245, 234, 232, 244, 234, 232, 244, 234, 232, 244, 234, 232, 244, 234, 232, 242, 232, 231, 242, 232, 231, 242, 232, 231, 242, 232, 231, 242, 232, 231, 242, 230, 230, 242, 230, 230, 242, 230, 230, 243, 231, 231, 245, 231, 231, 244, 230, 230, 241, 227, 227, 239, 223, 224, 238, 224, 224, 242, 226, 227, 242, 230, 230, 240, 236, 237, 240, 240, 240, 244, 244, 244, 245, 245, 245, 245, 245, 245, 246, 246, 246, 247, 247, 247, 249, 249, 249, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 244, 246, 245, 243, 245, 244, 243, 245, 244, 242, 244, 243, 242, 244, 243, 241, 243, 242, 241, 243, 242, 242, 244, 243, 241, 243, 242, 237, 239, 238, 231, 233, 232, 225, 227, 226, 221, 223, 222, 221, 222, 224, 219, 220, 222, 216, 217, 219, 213, 214, 216, 209, 211, 210, 204, 206, 205, 200, 200, 200, 196, 196, 196, 200, 200, 198, 198, 198, 196, 198, 198, 196, 202, 202, 200, 207, 206, 204, 208, 207, 205, 208, 207, 205, 208, 207, 205, 204, 205, 200, 192, 193, 188, 177, 178, 173, 168, 169, 164, 169, 170, 165, 176, 177, 172, 182, 183, 178, 185, 186, 181, 209, 210, 205, 210, 211, 206, 212, 213, 208, 215, 216, 211, 217, 218, 213, 217, 218, 213, 214, 215, 210, 212, 213, 208, 211, 210, 208, 206, 205, 203, 198, 197, 195, 190, 189, 187, 183, 182, 178, 176, 175, 171, 170, 166, 163, 165, 161, 158, 177, 173, 170, 174, 170, 167, 171, 166, 162, 169, 164, 160, 170, 165, 161, 172, 167, 163, 172, 167, 163, 171, 166, 162, 159, 154, 150, 158, 153, 149, 155, 150, 146, 153, 148, 144, 153, 148, 144, 155, 150, 146, 157, 152, 148, 159, 154, 150, 153, 148, 144, 154, 149, 145, 154, 149, 145, 155, 150, 146, 153, 148, 144, 148, 143, 139, 142, 137, 133, 138, 133, 129, 148, 141, 135, 149, 142, 136, 149, 142, 136, 143, 136, 130, 129, 122, 116, 114, 107, 101, 110, 103, 97, 114, 107, 101, 127, 120, 114, 123, 116, 110, 117, 110, 104, 111, 104, 98, 107, 100, 94, 104, 97, 91, 100, 93, 87, 99, 90, 85, 113, 102, 98, 116, 102, 99, 118, 104, 101, 122, 108, 105, 127, 113, 110, 134, 120, 117, 140, 126, 123, 143, 129, 126, 144, 129, 126, 149, 134, 131, 155, 140, 137, 161, 146, 143, 166, 148, 146, 164, 146, 144, 161, 143, 141, 156, 141, 138, 157, 142, 139, 150, 136, 133, 140, 126, 123, 134, 120, 117, 136, 122, 119, 146, 132, 129, 158, 147, 143, 168, 157, 153, 185, 174, 170, 190, 179, 175, 196, 187, 182, 203, 194, 189, 205, 196, 191, 203, 194, 189, 199, 190, 185, 196, 187, 182, 188, 180, 177, 194, 186, 183, 201, 193, 190, 205, 200, 196, 209, 205, 202, 214, 210, 207, 217, 216, 212, 220, 221, 216, 217, 218, 213, 218, 220, 215, 220, 222, 219, 222, 224, 221, 224, 224, 222, 224, 224, 222, 222, 222, 220, 221, 221, 219, 219, 218, 216, 218, 217, 215, 217, 216, 214, 216, 215, 213, 215, 214, 212, 214, 213, 211, 212, 212, 212, 212, 212, 212, 212, 212, 212, 211, 211, 211, 210, 210, 210, 208, 208, 208, 206, 207, 209, 204, 205, 207, 203, 204, 206, 202, 203, 205, 197, 198, 200, 197, 198, 200, 197, 198, 200, 196, 197, 199, 196, 197, 199, 196, 197, 199, 195, 196, 198, 195, 196, 198, 196, 197, 199, 197, 198, 200, 198, 199, 201, 199, 200, 202, 201, 202, 204, 203, 204, 206, 204, 205, 207, 204, 205, 209, 206, 209, 214, 210, 213, 220, 213, 216, 223, 216, 219, 226, 217, 220, 227, 220, 223, 230, 224, 227, 234, 227, 230, 237, 227, 230, 237, 229, 232, 239, 231, 234, 241, 233, 236, 243, 235, 238, 245, 236, 239, 246, 236, 239, 246, 236, 239, 246, 236, 239, 244, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 242, 246, 249, 241, 245, 248, 239, 245, 245, 240, 246, 246, 240, 245, 248, 239, 244, 247, 236, 244, 247, 234, 242, 245, 233, 241, 244, 232, 240, 243, 239, 244, 248, 234, 239, 243, 228, 232, 235, 221, 222, 226, 214, 213, 218, 208, 208, 210, 205, 203, 206, 203, 201, 202, 204, 202, 203, 203, 202, 200, 203, 199, 196, 202, 198, 195, 201, 197, 194, 197, 193, 190, 191, 187, 184, 187, 183, 180, 194, 189, 185, 189, 184, 180, 183, 178, 174, 179, 174, 170, 179, 174, 170, 180, 175, 171, 182, 175, 169, 182, 175, 169, 180, 175, 172, 179, 174, 171, 177, 172, 169, 174, 169, 166, 173, 168, 165, 173, 168, 165, 173, 168, 165, 173, 168, 165, 171, 166, 163, 178, 173, 170, 184, 179, 176, 185, 180, 177, 181, 176, 173, 179, 174, 171, 182, 177, 174, 186, 181, 178, 186, 181, 178, 182, 177, 174, 176, 171, 168, 170, 165, 162, 168, 163, 160, 169, 164, 161, 172, 167, 164, 175, 170, 167, 179, 174, 171, 177, 172, 169, 177, 172, 169, 181, 176, 173, 186, 181, 178, 186, 181, 178, 182, 177, 174, 178, 173, 170, 177, 172, 169, 183, 178, 175, 187, 182, 179, 185, 180, 177, 179, 174, 171, 176, 171, 168, 179, 174, 171, 183, 178, 175, 177, 172, 169, 175, 170, 167, 171, 166, 163, 167, 162, 159, 161, 156, 153, 157, 152, 149, 153, 148, 145, 151, 146, 143, 183, 178, 175, 181, 176, 173, 175, 170, 167, 164, 159, 156, 151, 147, 144, 143, 139, 136, 142, 138, 135, 144, 140, 137, 145, 144, 140, 143, 142, 138, 140, 139, 135, 141, 140, 136, 148, 147, 143, 152, 151, 147, 146, 145, 141, 134, 133, 129, 125, 120, 116, 116, 111, 107, 101, 96, 92, 92, 87, 83, 102, 97, 94, 124, 119, 116, 143, 138, 135, 151, 146, 143, 176, 171, 168, 160, 155, 152, 164, 158, 158, 181, 175, 175, 184, 178, 178, 180, 174, 174, 180, 174, 174, 179, 173, 173, 177, 173, 170, 176, 175, 171, 179, 178, 174, 185, 184, 180, 193, 189, 186, 197, 193, 190, 198, 193, 190, 196, 191, 188, 213, 208, 205, 202, 197, 194, 190, 186, 183, 189, 185, 182, 196, 195, 191, 203, 202, 198, 205, 204, 200, 203, 202, 198, 207, 207, 205, 214, 214, 212, 214, 214, 212, 202, 202, 200, 190, 190, 188, 191, 191, 189, 200, 200, 198, 208, 208, 206, 211, 211, 209, 223, 223, 221, 224, 224, 222, 212, 212, 210, 206, 206, 204, 212, 212, 210, 214, 214, 212, 210, 210, 208, 206, 208, 207, 218, 220, 219, 231, 233, 232, 235, 237, 236, 231, 233, 232, 227, 229, 228, 228, 230, 229, 232, 234, 233, 242, 244, 243, 243, 245, 244, 246, 248, 247, 249, 251, 250, 250, 252, 251, 250, 252, 251, 248, 250, 249, 248, 250, 249, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 248, 250, 249, 247, 249, 248, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 247, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 244, 245, 245, 243, 244, 244, 242, 243, 242, 240, 241, 242, 238, 239, 240, 236, 237, 239, 235, 236, 238, 234, 235, 238, 232, 232, 239, 233, 233, 240, 234, 234, 241, 235, 235, 242, 236, 236, 241, 235, 235, 241, 235, 235, 240, 234, 234, 242, 236, 236, 242, 236, 236, 243, 237, 237, 243, 237, 237, 243, 237, 237, 244, 238, 238, 244, 238, 238, 244, 238, 238, 245, 239, 239, 245, 239, 239, 245, 239, 239, 245, 239, 239, 245, 239, 239, 245, 239, 239, 247, 238, 239, 247, 238, 239, 246, 237, 238, 245, 236, 237, 246, 236, 237, 245, 235, 236, 244, 234, 235, 243, 233, 234, 243, 233, 234, 242, 232, 233, 245, 233, 235, 246, 234, 236, 247, 235, 237, 247, 235, 237, 247, 235, 237, 245, 233, 235, 246, 231, 234, 245, 230, 233, 245, 230, 233, 245, 230, 233, 245, 230, 233, 245, 230, 233, 246, 230, 233, 245, 229, 232, 244, 228, 231, 244, 228, 229, 245, 226, 228, 246, 228, 228, 245, 229, 229, 246, 230, 230, 246, 230, 230, 246, 230, 230, 244, 230, 229, 244, 230, 229, 245, 231, 230, 243, 232, 230, 243, 232, 230, 244, 233, 231, 243, 233, 231, 244, 234, 232, 244, 234, 232, 244, 234, 232, 242, 232, 231, 242, 232, 231, 242, 232, 231, 242, 232, 231, 242, 230, 230, 242, 230, 230, 241, 229, 229, 241, 229, 229, 244, 230, 230, 244, 230, 230, 242, 226, 227, 239, 223, 224, 236, 220, 221, 236, 220, 221, 240, 224, 225, 241, 229, 229, 239, 235, 236, 240, 240, 240, 243, 243, 243, 245, 245, 245, 245, 245, 245, 246, 246, 246, 248, 248, 248, 250, 250, 250, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 243, 245, 244, 243, 245, 244, 243, 245, 244, 241, 243, 242, 238, 240, 239, 233, 235, 234, 229, 231, 230, 227, 229, 228, 221, 222, 224, 221, 222, 224, 222, 223, 225, 224, 225, 227, 225, 227, 226, 222, 224, 223, 218, 218, 218, 213, 213, 213, 209, 209, 207, 203, 203, 201, 201, 201, 199, 204, 204, 202, 206, 205, 203, 202, 201, 199, 200, 199, 197, 202, 201, 199, 178, 179, 174, 173, 174, 169, 172, 173, 168, 183, 184, 179, 204, 205, 200, 221, 222, 217, 229, 230, 225, 229, 230, 225, 228, 229, 224, 224, 225, 220, 216, 217, 212, 207, 208, 203, 198, 199, 194, 190, 191, 186, 185, 186, 181, 182, 183, 178, 191, 190, 188, 189, 188, 186, 188, 187, 185, 189, 188, 186, 191, 190, 186, 192, 191, 187, 193, 189, 186, 191, 187, 184, 194, 190, 187, 196, 192, 189, 201, 196, 192, 207, 202, 198, 211, 206, 202, 211, 206, 202, 207, 202, 198, 203, 198, 194, 206, 201, 197, 206, 201, 197, 206, 201, 197, 205, 200, 196, 206, 201, 197, 207, 202, 198, 209, 204, 200, 210, 205, 201, 210, 205, 201, 207, 202, 198, 203, 198, 194, 203, 198, 194, 205, 200, 196, 207, 202, 198, 208, 203, 199, 207, 202, 198, 203, 196, 190, 202, 195, 189, 202, 195, 189, 200, 193, 187, 193, 186, 180, 185, 178, 172, 185, 178, 172, 191, 184, 178, 184, 177, 171, 182, 175, 169, 177, 170, 164, 169, 162, 156, 162, 155, 149, 155, 148, 142, 149, 142, 136, 147, 140, 134, 126, 115, 111, 128, 117, 113, 131, 120, 116, 136, 125, 121, 140, 129, 125, 144, 133, 129, 147, 136, 132, 149, 138, 134, 160, 146, 143, 162, 148, 145, 165, 151, 148, 166, 152, 149, 166, 151, 148, 163, 148, 145, 159, 144, 141, 156, 141, 138, 148, 134, 131, 155, 141, 138, 163, 149, 146, 167, 153, 150, 167, 153, 150, 165, 151, 148, 161, 150, 146, 160, 149, 145, 154, 143, 139, 161, 150, 146, 171, 162, 157, 184, 175, 170, 195, 186, 181, 203, 194, 189, 208, 199, 194, 210, 201, 196, 200, 192, 189, 203, 195, 192, 206, 201, 197, 208, 203, 199, 208, 204, 201, 207, 206, 202, 210, 209, 205, 211, 212, 207, 216, 218, 213, 218, 220, 215, 220, 222, 219, 222, 224, 221, 224, 224, 222, 224, 224, 222, 222, 222, 220, 221, 221, 219, 220, 219, 217, 219, 218, 216, 218, 217, 215, 217, 216, 214, 216, 215, 213, 215, 214, 212, 213, 213, 213, 212, 212, 212, 213, 213, 213, 212, 212, 212, 211, 211, 211, 208, 208, 208, 205, 206, 208, 202, 203, 205, 201, 202, 204, 200, 201, 203, 192, 193, 195, 192, 193, 195, 191, 192, 194, 190, 191, 193, 189, 190, 192, 188, 189, 191, 187, 188, 190, 187, 188, 190, 191, 192, 194, 191, 192, 194, 193, 194, 196, 194, 195, 197, 196, 197, 199, 197, 198, 200, 198, 199, 201, 199, 200, 204, 202, 205, 210, 205, 208, 215, 209, 212, 219, 212, 215, 222, 214, 217, 224, 216, 219, 226, 220, 223, 230, 224, 227, 234, 224, 227, 234, 225, 228, 235, 227, 230, 237, 230, 233, 240, 232, 235, 242, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 243, 235, 238, 243, 235, 238, 243, 236, 239, 244, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 242, 246, 249, 241, 245, 248, 239, 245, 245, 240, 246, 246, 238, 246, 248, 238, 246, 248, 237, 245, 248, 235, 243, 246, 234, 242, 245, 233, 241, 244, 235, 240, 244, 231, 236, 240, 226, 229, 234, 221, 222, 226, 216, 215, 220, 211, 210, 215, 209, 207, 210, 208, 206, 207, 207, 205, 206, 205, 204, 202, 204, 200, 197, 202, 198, 195, 201, 197, 194, 198, 194, 191, 194, 190, 187, 190, 186, 183, 195, 190, 186, 191, 186, 182, 188, 183, 179, 186, 181, 177, 186, 181, 177, 187, 182, 178, 187, 180, 174, 186, 179, 173, 178, 173, 170, 178, 173, 170, 178, 173, 170, 177, 172, 169, 177, 172, 169, 176, 171, 168, 175, 170, 167, 174, 169, 166, 180, 175, 172, 183, 178, 175, 184, 179, 176, 181, 176, 173, 176, 171, 168, 176, 171, 168, 182, 177, 174, 188, 183, 180, 179, 174, 171, 179, 174, 171, 178, 173, 170, 177, 172, 169, 179, 174, 171, 181, 176, 173, 183, 178, 175, 185, 180, 177, 184, 179, 176, 183, 178, 175, 182, 177, 174, 181, 176, 173, 181, 176, 173, 181, 176, 173, 181, 176, 173, 181, 176, 173, 174, 169, 166, 175, 170, 167, 176, 171, 168, 177, 172, 169, 179, 174, 171, 182, 177, 174, 185, 180, 177, 188, 183, 180, 173, 168, 165, 173, 168, 165, 173, 168, 165, 173, 168, 165, 173, 168, 165, 174, 169, 166, 174, 169, 166, 174, 169, 166, 177, 171, 171, 173, 167, 167, 166, 162, 161, 159, 155, 154, 155, 151, 150, 153, 149, 148, 154, 150, 149, 155, 151, 150, 147, 146, 144, 155, 154, 152, 161, 160, 158, 161, 160, 158, 162, 161, 159, 165, 164, 162, 164, 164, 162, 162, 161, 157, 167, 162, 158, 171, 163, 160, 169, 161, 158, 162, 154, 151, 156, 148, 146, 154, 146, 144, 150, 142, 140, 146, 138, 136, 171, 163, 161, 161, 153, 151, 167, 158, 159, 180, 171, 172, 183, 174, 175, 190, 181, 182, 194, 185, 186, 183, 177, 177, 188, 184, 181, 186, 185, 181, 187, 186, 182, 192, 191, 187, 198, 194, 191, 201, 197, 194, 201, 196, 193, 200, 195, 192, 172, 167, 164, 158, 153, 150, 144, 140, 137, 146, 142, 139, 163, 162, 158, 185, 184, 180, 200, 199, 195, 206, 205, 201, 193, 193, 191, 198, 198, 196, 197, 197, 195, 189, 189, 187, 187, 187, 185, 199, 199, 197, 216, 216, 214, 227, 227, 225, 187, 187, 185, 201, 201, 199, 210, 210, 208, 209, 209, 207, 211, 211, 209, 219, 219, 217, 224, 224, 222, 222, 222, 220, 217, 219, 218, 225, 227, 226, 234, 236, 235, 235, 237, 236, 229, 231, 230, 227, 229, 228, 231, 233, 232, 238, 240, 239, 245, 247, 246, 246, 248, 247, 246, 248, 247, 247, 249, 248, 248, 250, 249, 249, 251, 250, 249, 251, 250, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 249, 251, 250, 249, 251, 250, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 247, 249, 248, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 248, 246, 247, 247, 245, 246, 245, 243, 244, 243, 241, 242, 243, 239, 240, 241, 237, 238, 240, 236, 237, 239, 235, 236, 238, 232, 232, 241, 232, 233, 242, 233, 234, 243, 234, 235, 243, 234, 235, 243, 234, 235, 242, 233, 234, 242, 233, 234, 244, 235, 236, 244, 235, 236, 244, 235, 236, 245, 236, 237, 245, 236, 237, 246, 237, 238, 246, 237, 238, 246, 237, 238, 245, 239, 239, 245, 239, 239, 245, 239, 239, 245, 239, 239, 247, 238, 239, 247, 238, 239, 247, 238, 239, 247, 238, 239, 245, 236, 237, 245, 236, 237, 245, 235, 236, 244, 234, 235, 243, 233, 234, 242, 232, 233, 241, 231, 232, 241, 231, 232, 242, 230, 232, 243, 231, 233, 245, 233, 235, 247, 235, 237, 249, 234, 237, 248, 233, 236, 247, 232, 235, 246, 231, 234, 245, 230, 233, 245, 230, 233, 247, 231, 234, 247, 231, 234, 247, 231, 234, 246, 230, 233, 245, 229, 232, 244, 228, 229, 244, 225, 227, 245, 227, 227, 246, 228, 228, 247, 229, 229, 246, 230, 230, 246, 230, 230, 245, 229, 229, 243, 229, 228, 243, 229, 228, 243, 229, 228, 242, 231, 229, 242, 231, 229, 242, 232, 230, 243, 233, 231, 243, 233, 231, 244, 234, 232, 243, 233, 232, 243, 233, 232, 243, 231, 231, 242, 230, 230, 242, 230, 230, 241, 229, 229, 242, 228, 228, 242, 228, 228, 244, 228, 229, 243, 227, 228, 242, 223, 225, 238, 219, 221, 235, 216, 218, 236, 217, 219, 240, 221, 223, 242, 228, 228, 239, 235, 236, 239, 239, 239, 243, 243, 243, 245, 245, 245, 246, 246, 246, 246, 246, 246, 249, 249, 249, 251, 251, 251, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 242, 244, 243, 241, 243, 242, 239, 241, 240, 237, 239, 238, 234, 236, 235, 232, 234, 233, 230, 232, 231, 229, 231, 230, 217, 218, 220, 215, 216, 218, 213, 214, 216, 214, 215, 217, 216, 218, 217, 215, 217, 216, 210, 212, 211, 206, 208, 207, 213, 213, 213, 202, 202, 202, 196, 196, 194, 200, 200, 198, 202, 202, 200, 203, 203, 201, 208, 207, 205, 216, 215, 213, 235, 235, 233, 229, 231, 228, 223, 225, 222, 219, 221, 218, 215, 217, 214, 206, 208, 205, 194, 196, 193, 184, 186, 183, 180, 182, 179, 184, 186, 183, 188, 190, 187, 192, 194, 191, 196, 198, 195, 202, 204, 201, 209, 211, 208, 216, 216, 214, 224, 223, 221, 222, 221, 219, 220, 219, 217, 220, 219, 217, 221, 220, 216, 221, 220, 216, 219, 218, 214, 217, 216, 212, 220, 216, 213, 220, 216, 213, 220, 217, 212, 220, 217, 212, 220, 215, 211, 214, 209, 205, 207, 202, 198, 201, 196, 192, 205, 200, 196, 206, 201, 197, 207, 202, 198, 208, 203, 199, 209, 204, 200, 208, 203, 199, 208, 203, 199, 207, 202, 198, 216, 211, 207, 211, 206, 202, 206, 201, 197, 205, 200, 196, 206, 201, 197, 207, 202, 198, 204, 199, 195, 201, 196, 192, 209, 202, 196, 203, 196, 190, 199, 192, 186, 199, 192, 186, 198, 191, 185, 195, 188, 182, 197, 190, 184, 202, 195, 189, 196, 189, 183, 199, 192, 186, 205, 198, 192, 209, 202, 196, 211, 204, 198, 212, 205, 199, 214, 207, 201, 215, 208, 202, 210, 203, 197, 208, 201, 195, 203, 196, 190, 196, 189, 183, 187, 178, 173, 176, 167, 162, 166, 157, 152, 160, 151, 146, 138, 129, 124, 138, 129, 124, 139, 128, 124, 140, 129, 125, 143, 132, 128, 148, 137, 133, 152, 141, 137, 155, 144, 140, 161, 147, 144, 159, 145, 142, 155, 141, 138, 150, 136, 133, 146, 135, 131, 152, 141, 137, 162, 151, 147, 171, 160, 156, 173, 162, 158, 170, 159, 155, 166, 157, 152, 165, 156, 151, 170, 161, 156, 179, 170, 165, 188, 179, 174, 194, 185, 180, 209, 201, 198, 212, 204, 201, 212, 207, 203, 212, 207, 203, 210, 206, 203, 206, 205, 201, 207, 206, 202, 207, 208, 203, 216, 218, 213, 217, 219, 214, 220, 222, 219, 222, 224, 221, 224, 224, 222, 223, 223, 221, 222, 222, 220, 221, 221, 219, 222, 221, 219, 222, 221, 219, 221, 220, 218, 220, 219, 217, 218, 217, 215, 217, 216, 214, 216, 215, 213, 216, 215, 213, 215, 215, 215, 213, 213, 213, 211, 211, 211, 207, 207, 207, 204, 204, 204, 201, 201, 201, 197, 198, 200, 196, 197, 199, 191, 191, 191, 191, 191, 191, 190, 190, 190, 189, 189, 189, 187, 187, 187, 186, 186, 186, 185, 185, 185, 184, 184, 184, 186, 186, 186, 186, 186, 186, 187, 187, 187, 189, 189, 189, 191, 191, 191, 192, 192, 192, 193, 193, 193, 193, 194, 196, 195, 198, 203, 199, 202, 209, 203, 206, 213, 206, 209, 216, 208, 211, 218, 211, 214, 221, 215, 218, 225, 219, 222, 229, 220, 223, 230, 222, 225, 232, 224, 227, 234, 227, 230, 237, 230, 233, 240, 231, 234, 241, 232, 235, 242, 232, 235, 242, 234, 237, 244, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 235, 238, 245, 236, 239, 246, 236, 239, 246, 238, 241, 248, 238, 241, 248, 238, 241, 248, 239, 242, 249, 239, 242, 249, 239, 242, 249, 240, 243, 250, 240, 243, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 242, 246, 249, 241, 245, 248, 239, 244, 247, 240, 245, 248, 240, 245, 248, 238, 246, 248, 239, 244, 248, 236, 244, 247, 236, 241, 245, 235, 240, 244, 229, 234, 238, 228, 233, 237, 226, 229, 234, 222, 225, 230, 219, 220, 224, 216, 215, 220, 212, 211, 216, 210, 210, 212, 212, 212, 212, 210, 209, 207, 206, 205, 203, 203, 202, 200, 202, 201, 197, 202, 198, 195, 198, 194, 191, 195, 191, 188, 192, 187, 183, 190, 185, 181, 187, 182, 178, 185, 180, 176, 183, 178, 174, 179, 174, 170, 175, 168, 162, 171, 163, 160, 175, 170, 167, 177, 172, 169, 180, 175, 172, 182, 177, 174, 181, 176, 173, 178, 173, 170, 174, 169, 166, 171, 166, 163, 188, 183, 180, 183, 178, 175, 178, 173, 170, 179, 174, 171, 184, 179, 176, 187, 182, 179, 184, 179, 176, 179, 174, 171, 176, 171, 168, 178, 173, 169, 181, 176, 173, 183, 178, 174, 185, 180, 177, 185, 180, 176, 185, 180, 177, 184, 179, 175, 190, 185, 182, 189, 184, 180, 186, 181, 178, 181, 176, 172, 178, 173, 170, 178, 173, 169, 182, 177, 174, 186, 181, 178, 176, 171, 168, 174, 169, 166, 174, 169, 166, 178, 173, 170, 183, 178, 175, 182, 177, 174, 175, 170, 167, 168, 163, 160, 171, 166, 163, 175, 170, 167, 181, 176, 173, 184, 179, 176, 184, 179, 176, 179, 174, 171, 173, 168, 165, 168, 163, 160, 168, 163, 160, 162, 157, 154, 155, 149, 149, 150, 146, 143, 151, 145, 145, 151, 147, 144, 153, 147, 147, 152, 148, 145, 153, 149, 148, 166, 162, 159, 173, 169, 168, 165, 161, 158, 156, 152, 151, 157, 153, 150, 166, 165, 163, 176, 172, 169, 167, 162, 159, 177, 172, 168, 185, 177, 174, 182, 177, 173, 181, 173, 171, 182, 174, 172, 183, 175, 173, 182, 174, 172, 183, 175, 173, 185, 177, 175, 191, 182, 183, 181, 172, 173, 167, 158, 159, 178, 169, 170, 192, 183, 184, 182, 176, 176, 172, 168, 165, 170, 166, 163, 167, 163, 160, 165, 161, 158, 164, 160, 157, 162, 157, 154, 158, 153, 150, 154, 149, 146, 156, 151, 148, 165, 160, 157, 176, 172, 169, 185, 181, 178, 190, 186, 183, 189, 188, 184, 188, 187, 183, 187, 186, 182, 181, 180, 178, 184, 184, 182, 188, 188, 186, 194, 194, 192, 203, 203, 201, 208, 208, 206, 201, 201, 199, 191, 191, 189, 201, 201, 199, 196, 196, 194, 207, 207, 205, 226, 226, 224, 229, 229, 227, 216, 216, 214, 213, 213, 211, 223, 223, 221, 237, 239, 238, 230, 232, 231, 223, 225, 224, 221, 223, 222, 226, 228, 227, 234, 236, 235, 240, 242, 241, 242, 244, 243, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 247, 249, 248, 248, 250, 249, 250, 252, 251, 251, 253, 252, 251, 253, 252, 251, 253, 252, 251, 253, 252, 251, 253, 252, 251, 253, 252, 251, 253, 252, 251, 253, 252, 251, 253, 252, 250, 252, 251, 249, 251, 250, 249, 251, 250, 249, 251, 250, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 248, 248, 248, 249, 247, 248, 247, 245, 246, 245, 243, 244, 245, 241, 242, 243, 239, 240, 242, 238, 239, 241, 237, 238, 238, 232, 232, 240, 231, 232, 242, 233, 234, 243, 234, 235, 243, 234, 235, 243, 234, 235, 242, 233, 234, 242, 233, 234, 244, 235, 236, 244, 235, 236, 244, 235, 236, 245, 236, 237, 245, 236, 237, 245, 236, 237, 246, 237, 238, 246, 237, 238, 245, 239, 239, 245, 239, 239, 245, 239, 239, 245, 239, 239, 247, 238, 239, 247, 238, 239, 247, 238, 239, 247, 238, 239, 245, 236, 237, 245, 236, 237, 245, 235, 236, 244, 234, 235, 242, 232, 233, 241, 231, 232, 240, 230, 231, 240, 230, 231, 240, 228, 230, 241, 229, 231, 244, 232, 234, 247, 235, 237, 248, 236, 238, 247, 235, 237, 248, 233, 236, 247, 232, 235, 245, 230, 233, 246, 231, 234, 247, 231, 234, 248, 232, 235, 247, 231, 234, 246, 230, 233, 245, 229, 232, 244, 228, 229, 244, 226, 226, 243, 227, 227, 244, 228, 228, 245, 229, 229, 246, 230, 230, 245, 229, 229, 245, 229, 229, 244, 228, 228, 243, 227, 228, 243, 227, 227, 243, 229, 229, 244, 230, 229, 244, 230, 229, 243, 232, 230, 244, 233, 231, 243, 233, 231, 242, 234, 231, 242, 234, 231, 243, 232, 230, 244, 230, 229, 243, 229, 228, 241, 230, 228, 239, 229, 227, 240, 229, 227, 242, 228, 227, 244, 226, 226, 244, 219, 222, 241, 214, 219, 237, 212, 216, 237, 215, 218, 239, 220, 222, 239, 227, 229, 238, 234, 233, 239, 239, 239, 243, 243, 243, 245, 245, 245, 246, 246, 246, 247, 247, 247, 249, 249, 249, 251, 251, 251, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 248, 247, 245, 247, 246, 242, 244, 243, 239, 241, 240, 237, 239, 238, 236, 238, 237, 236, 238, 237, 237, 239, 238, 237, 239, 238, 230, 232, 231, 224, 224, 224, 219, 221, 220, 218, 220, 219, 216, 218, 217, 212, 214, 213, 207, 209, 208, 203, 203, 203, 197, 197, 195, 201, 201, 199, 214, 214, 212, 222, 222, 220, 222, 221, 217, 224, 223, 219, 230, 229, 225, 209, 210, 205, 204, 205, 200, 195, 196, 191, 187, 188, 183, 184, 185, 180, 186, 187, 182, 192, 193, 188, 198, 199, 194, 212, 213, 208, 218, 219, 214, 223, 224, 219, 222, 223, 218, 218, 219, 214, 213, 214, 209, 213, 214, 209, 215, 216, 211, 207, 206, 202, 206, 202, 199, 202, 198, 195, 199, 195, 192, 197, 193, 190, 194, 191, 186, 190, 186, 183, 187, 184, 179, 177, 172, 169, 174, 169, 165, 171, 166, 162, 171, 166, 162, 176, 168, 165, 178, 170, 167, 179, 171, 168, 179, 171, 168, 174, 166, 163, 174, 166, 163, 174, 166, 163, 172, 164, 161, 168, 160, 157, 163, 155, 152, 157, 149, 146, 154, 147, 141, 154, 146, 143, 154, 147, 141, 157, 150, 144, 163, 156, 150, 168, 161, 155, 167, 160, 154, 160, 153, 147, 154, 147, 141, 163, 154, 149, 152, 143, 138, 141, 132, 127, 134, 125, 120, 129, 120, 115, 122, 113, 108, 119, 110, 105, 121, 112, 107, 121, 112, 107, 126, 117, 112, 131, 122, 117, 133, 124, 119, 132, 123, 118, 130, 121, 116, 129, 120, 115, 127, 120, 114, 153, 146, 140, 160, 153, 145, 172, 165, 159, 185, 178, 170, 196, 189, 183, 203, 196, 188, 207, 198, 193, 207, 200, 192, 203, 194, 189, 194, 185, 178, 180, 171, 166, 166, 157, 150, 156, 147, 142, 151, 142, 135, 151, 142, 137, 153, 142, 136, 137, 126, 122, 145, 132, 126, 153, 139, 136, 154, 143, 137, 154, 143, 139, 155, 144, 138, 158, 147, 143, 161, 150, 146, 168, 157, 153, 169, 160, 155, 174, 165, 160, 179, 170, 165, 185, 176, 171, 190, 181, 176, 195, 186, 181, 196, 189, 183, 198, 190, 187, 201, 196, 192, 207, 202, 198, 212, 207, 203, 215, 211, 208, 219, 215, 212, 221, 220, 216, 224, 225, 220, 216, 217, 212, 217, 219, 214, 221, 221, 219, 223, 223, 221, 224, 224, 222, 223, 223, 221, 222, 222, 220, 221, 221, 219, 224, 224, 222, 223, 223, 221, 223, 222, 220, 221, 221, 219, 221, 220, 218, 219, 219, 217, 219, 218, 216, 217, 217, 215, 216, 216, 216, 214, 214, 214, 211, 211, 211, 207, 207, 207, 202, 202, 202, 198, 198, 198, 194, 195, 197, 193, 194, 196, 194, 194, 194, 193, 193, 193, 192, 192, 192, 190, 190, 190, 189, 189, 189, 187, 187, 187, 187, 185, 186, 185, 185, 185, 182, 180, 181, 183, 181, 182, 184, 182, 183, 186, 184, 185, 187, 185, 186, 189, 187, 188, 190, 188, 189, 190, 190, 190, 193, 194, 198, 196, 197, 202, 201, 202, 207, 204, 205, 210, 206, 207, 212, 207, 210, 215, 211, 214, 219, 215, 218, 223, 218, 221, 228, 220, 223, 230, 223, 226, 233, 225, 230, 236, 227, 232, 238, 229, 234, 240, 230, 235, 241, 230, 235, 241, 233, 236, 243, 233, 236, 243, 234, 237, 244, 234, 237, 244, 235, 238, 245, 235, 238, 245, 235, 238, 245, 235, 238, 245, 237, 240, 247, 238, 241, 248, 238, 241, 248, 238, 241, 248, 239, 242, 249, 239, 242, 249, 239, 242, 249, 240, 243, 248, 241, 244, 249, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 242, 246, 249, 241, 245, 248, 245, 249, 252, 244, 247, 252, 242, 245, 250, 239, 244, 248, 238, 241, 246, 235, 240, 244, 235, 238, 243, 234, 237, 242, 229, 232, 237, 227, 230, 235, 224, 227, 232, 222, 225, 230, 221, 224, 229, 220, 221, 226, 215, 216, 221, 212, 213, 217, 206, 207, 211, 206, 206, 208, 203, 203, 205, 199, 199, 199, 196, 196, 194, 195, 194, 192, 194, 193, 189, 194, 193, 189, 191, 188, 183, 192, 189, 184, 189, 186, 181, 183, 180, 175, 176, 171, 167, 173, 168, 164, 175, 170, 166, 178, 173, 169, 185, 177, 175, 181, 173, 171, 180, 172, 170, 182, 174, 172, 181, 173, 171, 178, 170, 168, 177, 172, 169, 180, 175, 172, 182, 177, 174, 178, 173, 170, 176, 171, 168, 181, 176, 173, 187, 183, 180, 189, 185, 182, 184, 180, 177, 178, 173, 170, 183, 178, 174, 188, 181, 175, 191, 183, 180, 192, 185, 179, 192, 184, 181, 188, 181, 175, 184, 176, 173, 182, 175, 169, 177, 169, 166, 179, 172, 166, 179, 171, 168, 180, 173, 167, 184, 176, 173, 189, 182, 176, 185, 177, 174, 177, 169, 166, 171, 166, 162, 176, 171, 167, 181, 176, 172, 182, 177, 173, 177, 172, 168, 171, 166, 162, 165, 160, 156, 162, 157, 153, 167, 162, 158, 170, 165, 161, 174, 169, 165, 172, 167, 163, 169, 164, 160, 167, 162, 158, 169, 164, 160, 173, 168, 164, 176, 168, 165, 171, 163, 160, 163, 155, 153, 154, 149, 145, 153, 145, 143, 153, 148, 144, 161, 153, 151, 164, 159, 155, 178, 173, 170, 182, 177, 173, 181, 176, 173, 172, 167, 163, 161, 156, 153, 160, 155, 151, 170, 165, 162, 180, 175, 172, 181, 176, 173, 186, 182, 179, 190, 185, 182, 182, 178, 175, 176, 171, 168, 172, 167, 164, 168, 163, 160, 164, 159, 156, 178, 172, 172, 180, 174, 174, 177, 168, 169, 163, 154, 155, 150, 141, 144, 151, 142, 145, 169, 160, 163, 187, 178, 179, 183, 178, 175, 167, 162, 159, 169, 164, 161, 188, 183, 180, 185, 180, 177, 164, 156, 154, 156, 148, 146, 168, 160, 158, 176, 171, 168, 192, 187, 184, 199, 194, 191, 191, 186, 183, 186, 181, 178, 184, 180, 177, 174, 170, 167, 157, 156, 152, 142, 141, 137, 181, 180, 176, 213, 212, 208, 212, 211, 207, 196, 195, 193, 190, 189, 187, 195, 194, 192, 198, 197, 195, 215, 215, 215, 222, 222, 222, 226, 226, 226, 219, 219, 219, 210, 210, 210, 211, 211, 211, 224, 226, 225, 239, 241, 240, 227, 229, 228, 229, 231, 230, 232, 234, 233, 235, 237, 236, 238, 240, 239, 240, 242, 241, 241, 243, 242, 242, 244, 243, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 248, 248, 248, 248, 248, 248, 248, 248, 248, 247, 247, 247, 247, 247, 247, 246, 246, 246, 246, 246, 246, 246, 246, 246, 248, 246, 249, 248, 246, 249, 248, 246, 249, 247, 245, 248, 246, 246, 248, 246, 246, 248, 244, 245, 247, 244, 245, 247, 242, 244, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 241, 242, 241, 239, 240, 239, 238, 236, 240, 236, 235, 241, 235, 235, 242, 236, 236, 242, 236, 236, 243, 237, 237, 244, 235, 236, 243, 234, 235, 242, 233, 234, 241, 232, 233, 244, 235, 236, 243, 234, 235, 243, 233, 234, 242, 232, 233, 244, 234, 235, 246, 236, 237, 249, 239, 240, 250, 241, 242, 242, 236, 236, 243, 237, 237, 244, 238, 238, 244, 238, 238, 246, 237, 238, 246, 237, 238, 245, 236, 237, 244, 235, 236, 246, 236, 237, 245, 235, 236, 244, 234, 235, 243, 233, 234, 242, 232, 233, 242, 232, 233, 243, 233, 234, 244, 234, 235, 241, 229, 231, 243, 231, 233, 244, 234, 235, 246, 236, 237, 247, 237, 238, 246, 236, 237, 245, 233, 235, 244, 232, 234, 241, 229, 231, 241, 229, 231, 243, 228, 231, 244, 228, 231, 244, 228, 231, 246, 227, 231, 246, 227, 231, 246, 227, 229, 244, 229, 226, 243, 229, 226, 242, 228, 225, 242, 228, 227, 242, 228, 227, 241, 227, 227, 241, 227, 227, 242, 226, 227, 242, 223, 227, 242, 223, 225, 243, 222, 227, 242, 223, 225, 242, 223, 225, 240, 224, 225, 240, 224, 225, 237, 226, 224, 234, 231, 226, 235, 232, 225, 242, 231, 225, 246, 231, 226, 246, 231, 224, 243, 233, 224, 238, 234, 223, 238, 234, 223, 236, 225, 219, 251, 232, 228, 241, 206, 210, 232, 191, 199, 249, 209, 218, 247, 216, 222, 231, 215, 218, 237, 228, 229, 240, 239, 237, 241, 241, 239, 245, 245, 243, 248, 248, 246, 250, 250, 248, 251, 251, 249, 250, 250, 248, 250, 250, 248, 248, 248, 246, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 246, 244, 246, 246, 244, 243, 243, 243, 243, 243, 243, 244, 244, 244, 245, 245, 245, 246, 246, 246, 247, 247, 247, 247, 247, 247, 248, 248, 248, 246, 246, 246, 246, 246, 246, 245, 245, 245, 245, 245, 245, 245, 245, 245, 246, 246, 246, 247, 247, 247, 248, 248, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 246, 248, 247, 244, 246, 245, 242, 244, 243, 240, 242, 241, 238, 240, 239, 240, 242, 241, 238, 240, 239, 236, 238, 237, 233, 235, 234, 230, 232, 231, 228, 230, 229, 226, 228, 227, 225, 227, 226, 223, 223, 221, 224, 224, 222, 225, 224, 222, 220, 220, 218, 216, 216, 214, 213, 213, 211, 213, 213, 213, 215, 215, 215, 209, 209, 207, 211, 211, 209, 214, 213, 211, 212, 211, 207, 207, 206, 202, 200, 197, 192, 191, 188, 183, 185, 182, 177, 196, 193, 188, 204, 201, 196, 213, 210, 205, 216, 213, 208, 216, 213, 208, 215, 212, 207, 217, 214, 209, 221, 218, 213, 213, 210, 205, 209, 206, 201, 205, 202, 197, 202, 199, 194, 200, 197, 192, 197, 194, 189, 193, 190, 185, 190, 187, 182, 184, 179, 175, 184, 179, 175, 185, 180, 176, 185, 180, 176, 185, 180, 176, 184, 179, 173, 184, 176, 173, 183, 176, 170, 183, 175, 172, 183, 176, 170, 182, 175, 169, 181, 174, 168, 179, 170, 165, 176, 167, 162, 173, 164, 159, 172, 163, 158, 171, 162, 157, 170, 161, 156, 168, 159, 154, 168, 159, 154, 167, 158, 153, 163, 154, 149, 157, 148, 143, 153, 144, 137, 154, 143, 139, 149, 138, 132, 148, 137, 131, 152, 141, 135, 154, 141, 135, 148, 135, 129, 144, 131, 125, 143, 130, 124, 162, 151, 145, 163, 152, 146, 162, 151, 145, 154, 143, 137, 143, 132, 126, 136, 125, 119, 136, 125, 119, 139, 128, 122, 142, 131, 125, 131, 120, 114, 125, 114, 108, 131, 120, 114, 135, 124, 118, 127, 116, 110, 111, 100, 94, 101, 90, 84, 92, 81, 75, 102, 93, 84, 115, 106, 99, 122, 113, 104, 126, 117, 110, 133, 124, 115, 149, 138, 132, 160, 151, 142, 184, 173, 167, 193, 183, 174, 203, 192, 186, 208, 198, 189, 206, 195, 189, 201, 191, 182, 199, 188, 182, 199, 189, 180, 173, 162, 156, 168, 158, 149, 161, 150, 144, 155, 145, 136, 153, 142, 136, 154, 145, 136, 158, 149, 142, 161, 152, 145, 169, 160, 153, 175, 166, 159, 182, 173, 166, 187, 180, 172, 189, 182, 174, 191, 184, 176, 193, 186, 180, 194, 187, 181, 203, 198, 194, 204, 201, 196, 208, 205, 200, 213, 210, 205, 218, 214, 211, 222, 218, 215, 222, 221, 217, 223, 222, 218, 222, 221, 217, 221, 222, 217, 223, 222, 220, 222, 222, 220, 223, 223, 221, 224, 224, 222, 225, 225, 223, 225, 225, 223, 222, 222, 220, 221, 223, 220, 222, 222, 220, 221, 223, 220, 220, 220, 218, 218, 220, 217, 217, 217, 217, 215, 217, 216, 214, 216, 215, 212, 214, 213, 210, 211, 213, 207, 208, 210, 204, 205, 207, 201, 202, 204, 198, 199, 201, 197, 198, 200, 191, 191, 191, 189, 188, 186, 187, 186, 184, 187, 186, 184, 188, 187, 185, 187, 186, 184, 187, 183, 182, 183, 182, 180, 188, 184, 183, 187, 183, 182, 186, 182, 181, 185, 181, 180, 185, 181, 180, 185, 181, 180, 186, 182, 181, 186, 182, 181, 190, 188, 189, 192, 192, 192, 195, 195, 195, 196, 196, 196, 198, 198, 200, 200, 201, 203, 205, 206, 210, 206, 210, 213, 209, 212, 217, 212, 217, 221, 218, 223, 229, 220, 227, 233, 222, 229, 237, 223, 230, 238, 225, 232, 240, 227, 234, 242, 232, 236, 245, 231, 235, 244, 230, 234, 243, 230, 234, 243, 232, 235, 244, 233, 236, 245, 234, 237, 244, 235, 238, 245, 237, 240, 247, 236, 239, 246, 238, 238, 246, 238, 238, 246, 238, 239, 244, 240, 241, 246, 242, 243, 248, 243, 244, 249, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 245, 248, 253, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 248, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 248, 249, 253, 248, 249, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 242, 246, 249, 241, 245, 248, 242, 245, 250, 241, 244, 249, 240, 243, 248, 238, 241, 246, 236, 239, 244, 234, 237, 242, 233, 236, 241, 232, 235, 240, 230, 233, 238, 228, 231, 236, 225, 228, 233, 223, 226, 231, 222, 225, 230, 219, 222, 227, 214, 217, 222, 211, 214, 219, 207, 208, 212, 205, 206, 210, 202, 203, 205, 198, 200, 199, 196, 196, 196, 194, 194, 192, 194, 193, 189, 194, 193, 189, 195, 192, 187, 196, 193, 188, 194, 191, 186, 188, 185, 180, 183, 178, 174, 180, 175, 171, 182, 177, 173, 185, 180, 176, 186, 178, 176, 181, 173, 171, 179, 171, 169, 181, 173, 171, 179, 171, 169, 176, 168, 166, 174, 169, 166, 177, 172, 169, 174, 169, 166, 173, 168, 165, 173, 168, 165, 177, 172, 169, 181, 177, 174, 183, 179, 176, 180, 176, 173, 175, 172, 167, 182, 174, 171, 182, 175, 169, 182, 175, 169, 181, 174, 168, 180, 173, 167, 179, 172, 166, 178, 171, 165, 177, 170, 164, 191, 184, 178, 189, 182, 176, 184, 177, 171, 178, 171, 165, 177, 170, 164, 177, 170, 164, 171, 164, 158, 162, 155, 149, 162, 157, 153, 167, 162, 158, 173, 168, 164, 176, 171, 167, 176, 171, 167, 174, 169, 165, 173, 168, 164, 173, 168, 164, 154, 149, 145, 161, 156, 152, 170, 165, 161, 175, 170, 166, 177, 172, 168, 177, 172, 168, 180, 175, 171, 182, 177, 173, 190, 182, 179, 180, 172, 169, 167, 159, 156, 158, 150, 147, 156, 148, 145, 158, 150, 147, 160, 152, 149, 161, 153, 150, 183, 175, 172, 168, 160, 157, 153, 145, 142, 150, 142, 139, 160, 152, 149, 169, 161, 158, 172, 164, 161, 167, 162, 158, 179, 174, 171, 170, 166, 163, 156, 152, 149, 146, 142, 139, 150, 146, 143, 166, 162, 159, 180, 175, 172, 185, 180, 177, 159, 153, 153, 155, 149, 149, 153, 144, 145, 155, 146, 147, 163, 154, 157, 172, 163, 166, 178, 169, 172, 181, 172, 173, 176, 167, 168, 174, 166, 164, 180, 172, 170, 188, 180, 178, 183, 175, 173, 171, 163, 161, 167, 159, 157, 171, 166, 163, 175, 170, 167, 186, 181, 178, 189, 184, 181, 183, 178, 175, 184, 179, 176, 194, 189, 186, 197, 193, 190, 191, 187, 184, 199, 198, 194, 202, 201, 197, 205, 204, 200, 204, 203, 199, 200, 199, 197, 199, 198, 196, 208, 207, 205, 219, 218, 216, 207, 207, 207, 210, 210, 210, 215, 215, 215, 219, 219, 219, 221, 221, 221, 220, 220, 220, 216, 218, 217, 214, 216, 215, 223, 225, 224, 225, 227, 226, 230, 232, 231, 236, 238, 237, 241, 243, 242, 245, 247, 246, 248, 250, 249, 249, 251, 250, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 248, 248, 248, 248, 248, 248, 248, 248, 248, 247, 247, 247, 247, 247, 247, 247, 247, 247, 246, 246, 246, 246, 246, 246, 248, 246, 249, 248, 246, 249, 248, 246, 249, 247, 245, 248, 246, 246, 248, 246, 246, 248, 244, 245, 247, 244, 245, 247, 243, 245, 244, 243, 245, 244, 244, 244, 244, 243, 243, 243, 242, 240, 241, 240, 238, 239, 238, 237, 235, 239, 235, 234, 241, 235, 235, 241, 235, 235, 242, 236, 236, 242, 236, 236, 244, 235, 236, 243, 234, 235, 242, 233, 234, 241, 232, 233, 243, 234, 235, 243, 234, 235, 243, 233, 234, 242, 232, 233, 244, 234, 235, 246, 236, 237, 248, 238, 239, 250, 240, 241, 244, 235, 236, 243, 237, 237, 244, 238, 238, 245, 239, 239, 247, 238, 239, 246, 237, 238, 245, 236, 237, 244, 235, 236, 246, 236, 237, 245, 235, 236, 243, 233, 234, 242, 232, 233, 242, 232, 233, 242, 232, 233, 243, 233, 234, 243, 233, 234, 241, 229, 231, 243, 231, 233, 244, 234, 235, 246, 236, 237, 246, 236, 237, 245, 235, 236, 244, 234, 235, 243, 233, 234, 242, 230, 232, 242, 230, 232, 244, 229, 232, 245, 229, 232, 247, 228, 232, 247, 228, 232, 247, 226, 231, 247, 227, 229, 245, 227, 225, 245, 227, 223, 243, 228, 225, 241, 227, 224, 241, 227, 226, 241, 227, 227, 241, 226, 229, 242, 226, 229, 242, 223, 227, 243, 222, 227, 243, 222, 227, 243, 222, 227, 243, 223, 225, 242, 223, 225, 242, 223, 225, 239, 225, 224, 235, 230, 226, 238, 231, 225, 244, 229, 224, 248, 229, 225, 249, 230, 224, 245, 230, 223, 240, 234, 222, 239, 233, 221, 244, 230, 221, 252, 224, 221, 237, 195, 197, 231, 184, 190, 248, 205, 212, 245, 214, 219, 230, 218, 218, 237, 236, 232, 240, 240, 238, 242, 242, 240, 245, 245, 243, 248, 248, 246, 250, 250, 248, 250, 250, 248, 250, 250, 248, 249, 249, 247, 249, 249, 247, 249, 249, 247, 248, 248, 246, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 248, 248, 248, 246, 246, 246, 246, 246, 246, 245, 245, 245, 245, 245, 245, 245, 245, 245, 246, 246, 246, 247, 247, 247, 248, 248, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 247, 246, 244, 246, 245, 242, 244, 243, 240, 242, 241, 239, 241, 240, 227, 229, 228, 220, 222, 221, 210, 212, 211, 202, 204, 203, 201, 203, 202, 206, 208, 207, 214, 216, 215, 220, 222, 219, 217, 216, 214, 218, 217, 213, 218, 217, 215, 217, 216, 214, 214, 214, 212, 209, 209, 207, 205, 205, 205, 202, 202, 202, 206, 206, 204, 197, 197, 195, 185, 184, 180, 174, 173, 169, 171, 168, 163, 174, 171, 166, 181, 176, 170, 186, 181, 175, 192, 187, 181, 183, 178, 172, 176, 171, 165, 181, 176, 170, 191, 186, 180, 194, 189, 183, 183, 178, 172, 170, 165, 159, 176, 171, 165, 180, 175, 169, 188, 183, 177, 197, 192, 186, 202, 197, 191, 201, 196, 190, 195, 190, 184, 189, 184, 178, 189, 182, 176, 190, 183, 177, 191, 184, 178, 192, 185, 179, 193, 186, 180, 193, 186, 180, 193, 184, 179, 193, 184, 179, 189, 180, 175, 188, 179, 174, 186, 177, 172, 183, 174, 169, 180, 169, 165, 175, 164, 160, 171, 160, 156, 169, 158, 154, 174, 163, 159, 173, 162, 158, 173, 162, 158, 175, 164, 160, 179, 168, 164, 180, 169, 165, 179, 168, 162, 178, 167, 161, 167, 154, 148, 158, 145, 139, 151, 138, 130, 150, 137, 129, 149, 134, 127, 145, 130, 123, 145, 130, 123, 147, 132, 125, 153, 140, 134, 155, 142, 136, 158, 145, 139, 162, 149, 143, 163, 150, 144, 161, 148, 142, 156, 143, 137, 152, 139, 133, 146, 133, 127, 134, 121, 115, 128, 115, 109, 137, 124, 118, 149, 136, 130, 150, 137, 131, 141, 128, 122, 134, 121, 115, 122, 112, 103, 125, 115, 106, 128, 118, 109, 126, 116, 107, 123, 113, 104, 125, 115, 106, 132, 122, 113, 140, 130, 121, 136, 126, 117, 141, 131, 122, 148, 138, 129, 153, 143, 134, 157, 147, 138, 164, 154, 145, 173, 163, 154, 180, 170, 161, 210, 200, 191, 211, 201, 192, 212, 202, 193, 211, 201, 192, 206, 197, 188, 200, 191, 182, 194, 185, 176, 190, 181, 172, 176, 167, 160, 178, 169, 162, 179, 172, 164, 182, 175, 167, 186, 179, 171, 193, 186, 178, 202, 195, 189, 206, 201, 195, 211, 206, 202, 211, 208, 203, 213, 210, 205, 214, 211, 206, 215, 211, 208, 215, 211, 208, 213, 212, 208, 212, 211, 207, 222, 221, 217, 222, 221, 217, 223, 222, 220, 224, 223, 221, 224, 224, 222, 224, 224, 222, 225, 225, 223, 225, 225, 223, 221, 223, 220, 222, 224, 221, 222, 224, 221, 221, 223, 220, 220, 222, 219, 218, 220, 217, 216, 218, 217, 215, 217, 216, 213, 215, 214, 212, 214, 213, 210, 211, 213, 207, 208, 210, 203, 204, 206, 200, 201, 203, 198, 199, 201, 197, 199, 198, 192, 190, 191, 190, 189, 187, 188, 187, 185, 187, 186, 184, 190, 186, 185, 189, 185, 184, 187, 183, 182, 185, 181, 180, 187, 183, 182, 186, 182, 181, 186, 180, 180, 185, 179, 179, 185, 179, 179, 185, 179, 179, 186, 180, 180, 185, 181, 180, 190, 186, 185, 190, 189, 187, 193, 192, 190, 195, 194, 192, 195, 195, 195, 198, 198, 198, 201, 202, 204, 205, 206, 208, 204, 208, 211, 208, 213, 217, 214, 219, 225, 216, 223, 229, 218, 225, 233, 219, 228, 235, 222, 231, 238, 225, 232, 240, 229, 233, 242, 229, 233, 242, 228, 232, 241, 228, 232, 241, 229, 232, 241, 231, 234, 243, 232, 235, 242, 233, 236, 243, 235, 238, 245, 235, 238, 245, 237, 237, 245, 237, 237, 245, 238, 239, 244, 240, 241, 246, 241, 242, 247, 242, 243, 248, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 248, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 248, 249, 253, 248, 249, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 242, 246, 249, 241, 245, 248, 240, 243, 248, 239, 242, 247, 238, 241, 246, 236, 239, 244, 235, 238, 243, 233, 236, 241, 232, 235, 240, 231, 234, 239, 232, 235, 240, 230, 233, 238, 227, 230, 235, 225, 228, 233, 224, 227, 232, 221, 224, 229, 216, 219, 224, 212, 215, 220, 208, 209, 213, 206, 207, 211, 203, 204, 206, 199, 201, 200, 197, 197, 197, 195, 195, 193, 194, 193, 189, 194, 193, 189, 197, 194, 189, 197, 194, 189, 196, 193, 188, 192, 189, 184, 188, 183, 179, 186, 181, 177, 187, 182, 179, 189, 184, 181, 186, 178, 176, 181, 173, 171, 179, 171, 169, 179, 171, 169, 177, 169, 167, 172, 164, 162, 169, 164, 161, 172, 167, 164, 170, 165, 162, 172, 167, 164, 175, 170, 167, 179, 174, 171, 180, 176, 173, 181, 177, 174, 180, 176, 173, 179, 176, 171, 190, 182, 179, 188, 181, 175, 184, 177, 171, 182, 175, 169, 180, 173, 167, 181, 174, 168, 182, 175, 169, 183, 176, 170, 180, 173, 167, 181, 174, 168, 178, 171, 165, 174, 167, 161, 175, 168, 162, 178, 171, 165, 176, 169, 163, 170, 163, 157, 166, 161, 157, 170, 165, 161, 175, 170, 166, 178, 173, 169, 179, 174, 170, 180, 175, 171, 183, 178, 174, 185, 180, 176, 171, 166, 162, 177, 172, 168, 184, 179, 175, 187, 182, 178, 185, 180, 176, 180, 175, 171, 175, 170, 166, 173, 168, 164, 178, 170, 167, 172, 164, 161, 164, 156, 153, 162, 154, 151, 163, 155, 152, 165, 157, 154, 164, 156, 153, 161, 153, 150, 154, 146, 143, 135, 127, 124, 120, 112, 109, 125, 117, 114, 147, 139, 136, 165, 157, 154, 169, 161, 158, 163, 158, 154, 158, 153, 149, 161, 158, 153, 167, 164, 159, 173, 170, 165, 180, 175, 171, 180, 175, 171, 166, 161, 158, 151, 146, 143, 136, 131, 128, 137, 132, 129, 147, 138, 139, 165, 156, 157, 184, 175, 176, 192, 183, 184, 185, 176, 177, 176, 167, 168, 171, 162, 163, 181, 172, 173, 187, 181, 181, 187, 181, 181, 184, 178, 178, 184, 178, 178, 184, 178, 178, 183, 177, 177, 174, 168, 168, 181, 177, 176, 182, 178, 177, 177, 173, 172, 180, 176, 175, 194, 190, 189, 204, 200, 199, 203, 199, 198, 208, 207, 203, 196, 195, 191, 191, 190, 186, 195, 194, 190, 192, 191, 189, 183, 182, 180, 186, 186, 184, 199, 199, 197, 203, 203, 203, 207, 207, 207, 214, 214, 214, 220, 220, 220, 223, 225, 224, 221, 223, 222, 215, 217, 216, 211, 213, 212, 226, 228, 227, 229, 231, 230, 233, 235, 234, 239, 241, 240, 244, 246, 245, 248, 250, 249, 250, 252, 251, 251, 253, 252, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 247, 247, 247, 247, 247, 247, 247, 247, 247, 246, 246, 246, 248, 246, 249, 248, 246, 249, 248, 246, 249, 247, 245, 248, 246, 246, 248, 246, 246, 248, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 245, 245, 245, 243, 243, 243, 242, 241, 239, 240, 239, 237, 239, 235, 234, 238, 234, 233, 241, 235, 235, 241, 235, 235, 244, 235, 236, 244, 235, 236, 244, 235, 236, 243, 234, 235, 241, 232, 233, 241, 232, 233, 243, 233, 234, 243, 233, 234, 242, 232, 233, 242, 232, 233, 243, 233, 234, 245, 235, 236, 248, 236, 238, 248, 238, 239, 244, 235, 236, 245, 236, 237, 246, 237, 238, 247, 238, 239, 247, 238, 239, 246, 237, 238, 246, 236, 237, 245, 235, 236, 245, 235, 236, 244, 234, 235, 243, 233, 234, 242, 232, 233, 243, 231, 233, 243, 231, 233, 244, 232, 234, 244, 232, 234, 242, 230, 230, 243, 231, 231, 244, 232, 232, 245, 233, 233, 245, 235, 234, 244, 234, 233, 244, 232, 232, 244, 232, 232, 243, 231, 231, 243, 231, 231, 245, 231, 231, 245, 229, 230, 247, 228, 230, 247, 228, 230, 247, 227, 229, 248, 226, 228, 248, 224, 224, 248, 224, 222, 246, 225, 224, 244, 224, 223, 243, 225, 225, 241, 225, 225, 241, 225, 226, 241, 225, 226, 240, 224, 227, 242, 223, 227, 242, 223, 225, 242, 223, 225, 242, 223, 225, 242, 223, 225, 242, 224, 224, 240, 224, 224, 241, 225, 226, 244, 225, 227, 249, 224, 227, 253, 224, 228, 254, 225, 227, 251, 225, 224, 248, 227, 222, 247, 227, 220, 255, 230, 224, 250, 212, 209, 231, 183, 183, 229, 180, 183, 245, 205, 206, 241, 215, 214, 230, 223, 217, 241, 244, 237, 240, 241, 236, 242, 242, 240, 245, 245, 243, 248, 248, 246, 250, 250, 248, 250, 250, 248, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 248, 248, 246, 248, 248, 246, 248, 248, 246, 247, 247, 245, 250, 250, 250, 249, 249, 249, 249, 249, 249, 249, 249, 249, 248, 248, 248, 248, 248, 248, 248, 248, 248, 247, 247, 247, 246, 246, 246, 246, 246, 246, 245, 245, 245, 245, 245, 245, 245, 245, 245, 246, 246, 246, 247, 247, 247, 248, 248, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 247, 246, 244, 246, 245, 242, 244, 243, 240, 242, 241, 239, 241, 240, 227, 229, 228, 220, 222, 221, 209, 211, 210, 202, 204, 203, 201, 203, 202, 208, 210, 209, 218, 220, 219, 226, 228, 225, 219, 218, 216, 217, 216, 212, 215, 215, 213, 216, 216, 214, 216, 216, 216, 212, 212, 212, 203, 203, 203, 195, 195, 195, 184, 184, 182, 182, 182, 180, 179, 178, 174, 176, 175, 171, 177, 174, 169, 178, 175, 170, 181, 176, 170, 182, 177, 171, 194, 191, 186, 178, 175, 170, 163, 160, 155, 164, 161, 156, 173, 170, 165, 174, 171, 166, 159, 156, 151, 143, 140, 135, 157, 154, 149, 163, 160, 155, 174, 171, 166, 186, 183, 178, 195, 192, 187, 197, 194, 189, 193, 190, 185, 190, 185, 181, 191, 184, 178, 191, 184, 178, 190, 183, 177, 190, 183, 177, 189, 182, 176, 188, 181, 175, 187, 180, 174, 187, 180, 174, 185, 176, 171, 186, 177, 172, 187, 178, 173, 187, 178, 173, 188, 177, 173, 187, 176, 172, 185, 174, 170, 184, 173, 169, 180, 171, 166, 178, 169, 164, 177, 166, 162, 177, 166, 162, 179, 168, 164, 179, 168, 164, 178, 167, 161, 176, 165, 159, 183, 170, 164, 174, 161, 155, 166, 153, 145, 161, 148, 140, 156, 143, 135, 148, 135, 127, 144, 129, 122, 143, 128, 121, 142, 129, 123, 140, 127, 121, 143, 130, 124, 152, 139, 133, 163, 150, 144, 170, 157, 151, 168, 155, 149, 163, 150, 144, 167, 154, 148, 153, 140, 134, 137, 124, 118, 129, 116, 110, 125, 112, 106, 125, 112, 106, 130, 117, 111, 136, 123, 117, 131, 118, 110, 129, 116, 108, 127, 114, 106, 126, 113, 105, 127, 114, 106, 131, 118, 110, 136, 123, 115, 140, 127, 119, 142, 129, 121, 141, 128, 120, 139, 126, 118, 135, 122, 114, 132, 119, 111, 133, 120, 112, 138, 125, 117, 142, 129, 121, 142, 132, 123, 151, 141, 132, 168, 158, 149, 186, 176, 167, 200, 190, 181, 209, 199, 190, 214, 203, 197, 215, 204, 198, 214, 205, 198, 213, 204, 197, 209, 200, 193, 203, 194, 187, 198, 189, 184, 197, 188, 183, 198, 191, 185, 199, 194, 188, 207, 202, 198, 207, 204, 199, 210, 207, 202, 213, 210, 205, 216, 212, 209, 217, 213, 210, 216, 215, 211, 216, 215, 211, 223, 222, 218, 223, 222, 218, 224, 223, 221, 224, 223, 221, 224, 224, 222, 225, 225, 223, 225, 225, 223, 226, 226, 224, 222, 224, 221, 222, 224, 221, 222, 224, 221, 222, 224, 221, 221, 223, 220, 219, 221, 218, 217, 219, 218, 216, 218, 217, 213, 215, 214, 212, 214, 213, 209, 210, 212, 206, 207, 209, 203, 204, 206, 200, 201, 203, 198, 199, 201, 196, 198, 197, 194, 192, 193, 192, 191, 189, 189, 188, 186, 188, 187, 185, 191, 187, 186, 190, 186, 185, 187, 183, 182, 185, 181, 180, 186, 182, 181, 185, 181, 180, 185, 179, 179, 184, 178, 178, 183, 177, 177, 184, 178, 178, 184, 178, 178, 184, 180, 179, 186, 182, 181, 187, 186, 184, 189, 188, 186, 190, 189, 187, 190, 190, 190, 192, 192, 192, 195, 196, 198, 199, 200, 202, 197, 201, 204, 201, 206, 209, 208, 213, 217, 211, 219, 222, 214, 221, 227, 217, 224, 230, 220, 227, 235, 222, 229, 237, 226, 230, 239, 225, 229, 238, 225, 229, 238, 225, 229, 238, 226, 231, 237, 227, 232, 238, 230, 233, 240, 231, 234, 241, 233, 236, 243, 233, 236, 243, 234, 237, 244, 235, 238, 245, 236, 239, 244, 237, 240, 245, 238, 241, 246, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 248, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 248, 249, 253, 248, 249, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 242, 246, 249, 241, 245, 248, 240, 243, 248, 239, 242, 247, 238, 241, 246, 237, 240, 245, 236, 239, 244, 234, 237, 242, 233, 236, 241, 233, 236, 241, 234, 237, 242, 232, 235, 240, 229, 232, 237, 227, 230, 235, 226, 229, 234, 223, 226, 231, 218, 221, 226, 215, 218, 223, 210, 211, 215, 208, 209, 213, 204, 205, 207, 200, 202, 201, 198, 198, 198, 195, 195, 193, 195, 194, 190, 194, 193, 189, 196, 193, 188, 195, 192, 187, 194, 191, 186, 192, 189, 184, 190, 185, 181, 188, 183, 179, 188, 183, 180, 188, 183, 180, 187, 179, 177, 182, 174, 172, 178, 170, 168, 178, 170, 168, 174, 166, 164, 169, 161, 159, 165, 160, 157, 168, 163, 160, 173, 168, 165, 178, 173, 170, 183, 178, 175, 185, 180, 177, 185, 181, 178, 185, 181, 178, 186, 182, 179, 188, 184, 181, 191, 183, 180, 190, 183, 177, 188, 181, 175, 186, 179, 173, 185, 178, 172, 184, 177, 171, 184, 177, 171, 184, 177, 171, 162, 155, 149, 168, 161, 155, 173, 166, 160, 176, 169, 163, 181, 174, 168, 187, 180, 174, 187, 180, 174, 183, 176, 170, 177, 172, 168, 178, 173, 169, 179, 174, 170, 177, 172, 168, 175, 170, 166, 175, 170, 166, 178, 173, 169, 180, 175, 171, 189, 184, 180, 190, 185, 181, 190, 185, 181, 186, 181, 177, 178, 173, 169, 168, 163, 159, 159, 154, 150, 154, 149, 145, 150, 142, 139, 152, 144, 141, 154, 146, 143, 152, 144, 141, 147, 139, 136, 140, 132, 129, 134, 126, 123, 131, 123, 120, 153, 145, 142, 150, 142, 139, 146, 138, 135, 146, 138, 135, 151, 143, 140, 157, 149, 146, 163, 155, 152, 166, 158, 155, 178, 173, 169, 176, 173, 168, 171, 168, 163, 165, 162, 157, 165, 160, 156, 168, 163, 159, 166, 161, 158, 161, 156, 153, 158, 153, 150, 160, 155, 152, 164, 155, 156, 169, 160, 161, 173, 164, 165, 173, 164, 165, 171, 162, 163, 168, 159, 160, 188, 179, 180, 188, 182, 182, 191, 185, 185, 192, 186, 186, 193, 187, 187, 191, 185, 185, 187, 181, 181, 182, 178, 177, 188, 184, 183, 196, 192, 191, 200, 196, 195, 199, 195, 194, 203, 199, 198, 210, 209, 207, 218, 214, 213, 216, 215, 213, 198, 197, 193, 196, 195, 191, 195, 194, 190, 193, 192, 188, 184, 183, 181, 178, 177, 175, 184, 184, 182, 197, 197, 195, 211, 211, 211, 219, 219, 219, 225, 225, 225, 223, 223, 223, 216, 218, 217, 216, 218, 217, 225, 227, 226, 234, 236, 235, 236, 238, 237, 237, 239, 238, 240, 242, 241, 242, 244, 243, 245, 247, 246, 246, 248, 247, 247, 249, 248, 247, 249, 248, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 249, 249, 249, 249, 249, 249, 248, 248, 248, 248, 248, 248, 248, 248, 248, 247, 247, 247, 247, 247, 247, 247, 247, 247, 248, 246, 249, 248, 246, 249, 248, 246, 249, 247, 245, 248, 246, 246, 248, 246, 246, 248, 244, 246, 245, 244, 246, 245, 245, 247, 246, 245, 247, 246, 245, 245, 245, 243, 243, 243, 242, 241, 239, 239, 238, 236, 239, 235, 234, 237, 233, 232, 240, 234, 234, 241, 235, 235, 243, 234, 235, 244, 235, 236, 243, 234, 235, 242, 233, 234, 241, 232, 233, 240, 231, 232, 242, 232, 233, 242, 232, 233, 242, 232, 233, 242, 232, 233, 243, 233, 234, 244, 234, 235, 246, 234, 236, 246, 234, 236, 245, 235, 236, 245, 236, 237, 246, 237, 238, 246, 237, 238, 246, 237, 238, 246, 237, 238, 246, 236, 237, 245, 235, 236, 245, 235, 236, 244, 234, 235, 243, 233, 234, 242, 232, 233, 242, 230, 232, 243, 231, 233, 243, 231, 233, 244, 232, 234, 242, 230, 230, 242, 230, 230, 243, 231, 231, 244, 232, 232, 244, 232, 232, 244, 232, 232, 244, 232, 232, 244, 232, 232, 244, 232, 232, 245, 231, 231, 246, 230, 231, 247, 228, 230, 247, 228, 230, 247, 227, 229, 247, 227, 229, 249, 224, 227, 249, 220, 222, 250, 220, 220, 247, 221, 222, 246, 222, 222, 243, 223, 224, 243, 225, 225, 241, 225, 226, 241, 225, 226, 240, 224, 227, 240, 224, 225, 242, 223, 225, 242, 223, 225, 243, 223, 225, 243, 223, 224, 243, 223, 224, 243, 223, 224, 243, 223, 225, 245, 223, 226, 248, 223, 227, 250, 223, 228, 252, 223, 227, 252, 223, 225, 252, 224, 221, 252, 223, 219, 255, 226, 220, 245, 202, 196, 226, 177, 173, 230, 185, 182, 246, 211, 207, 239, 218, 213, 230, 226, 217, 241, 244, 237, 241, 242, 237, 243, 243, 241, 246, 246, 244, 248, 248, 246, 250, 250, 248, 250, 250, 248, 249, 249, 247, 248, 248, 246, 250, 250, 248, 250, 250, 248, 249, 249, 247, 249, 249, 247, 249, 249, 247, 248, 248, 246, 248, 248, 246, 248, 248, 246, 250, 250, 250, 250, 250, 250, 249, 249, 249, 248, 248, 248, 247, 247, 247, 246, 246, 246, 246, 246, 246, 245, 245, 245, 246, 246, 246, 246, 246, 246, 245, 245, 245, 245, 245, 245, 245, 245, 245, 246, 246, 246, 247, 247, 247, 248, 248, 248, 245, 247, 246, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 247, 246, 243, 245, 244, 241, 243, 242, 240, 242, 241, 236, 238, 237, 234, 236, 235, 232, 234, 233, 230, 232, 231, 230, 232, 231, 230, 232, 231, 231, 233, 232, 231, 233, 232, 229, 228, 226, 224, 223, 219, 218, 218, 216, 218, 218, 216, 221, 221, 221, 218, 218, 218, 209, 209, 209, 201, 201, 201, 181, 181, 179, 187, 187, 185, 197, 196, 194, 205, 204, 200, 209, 206, 201, 206, 203, 198, 202, 197, 191, 198, 193, 187, 203, 200, 195, 199, 196, 191, 193, 190, 185, 186, 183, 178, 181, 178, 173, 176, 173, 168, 173, 170, 165, 171, 168, 163, 180, 177, 172, 178, 175, 170, 177, 174, 169, 179, 176, 171, 184, 181, 176, 189, 186, 181, 192, 189, 184, 193, 190, 185, 195, 190, 184, 196, 189, 183, 193, 186, 180, 190, 183, 177, 187, 180, 174, 184, 177, 171, 183, 176, 170, 182, 175, 169, 183, 174, 169, 184, 175, 170, 185, 176, 171, 186, 177, 172, 188, 177, 173, 188, 177, 173, 187, 176, 172, 187, 176, 172, 176, 167, 162, 174, 165, 160, 174, 163, 159, 174, 163, 159, 173, 162, 158, 169, 158, 154, 163, 152, 146, 158, 147, 141, 166, 153, 147, 163, 150, 144, 162, 149, 141, 165, 152, 144, 162, 149, 141, 152, 139, 131, 143, 128, 121, 139, 124, 117, 134, 121, 115, 127, 114, 108, 120, 107, 101, 119, 106, 100, 123, 110, 104, 129, 116, 110, 132, 119, 113, 133, 120, 114, 162, 149, 143, 162, 149, 143, 157, 144, 138, 142, 129, 123, 119, 106, 100, 101, 88, 82, 100, 87, 81, 109, 96, 90, 118, 105, 97, 116, 103, 95, 118, 103, 96, 123, 110, 102, 134, 119, 112, 142, 129, 121, 147, 132, 125, 147, 134, 126, 145, 130, 123, 145, 132, 124, 147, 132, 125, 146, 133, 125, 147, 132, 125, 146, 133, 125, 148, 133, 126, 147, 134, 126, 152, 139, 131, 151, 141, 132, 153, 143, 134, 157, 147, 138, 162, 152, 143, 168, 158, 149, 173, 162, 156, 176, 165, 159, 199, 190, 183, 204, 195, 188, 211, 202, 195, 215, 206, 199, 216, 207, 202, 216, 207, 202, 215, 208, 202, 216, 209, 203, 207, 202, 198, 208, 205, 200, 211, 208, 203, 215, 212, 207, 218, 214, 211, 220, 216, 213, 220, 219, 215, 220, 219, 215, 223, 222, 218, 224, 223, 219, 224, 223, 221, 225, 224, 222, 225, 225, 223, 226, 226, 224, 226, 226, 224, 227, 227, 225, 223, 225, 222, 224, 226, 223, 224, 226, 223, 223, 225, 222, 222, 224, 221, 220, 222, 219, 218, 220, 219, 217, 219, 218, 213, 215, 214, 212, 214, 213, 210, 211, 213, 206, 207, 209, 203, 204, 206, 200, 201, 203, 198, 199, 201, 196, 198, 197, 196, 194, 195, 193, 192, 190, 191, 190, 188, 190, 189, 187, 192, 188, 187, 191, 187, 186, 188, 184, 183, 185, 181, 180, 184, 180, 179, 184, 180, 179, 183, 177, 177, 182, 176, 176, 182, 176, 176, 182, 176, 176, 183, 177, 177, 183, 177, 177, 183, 179, 178, 183, 182, 180, 185, 184, 182, 185, 184, 182, 184, 184, 184, 186, 186, 186, 190, 190, 192, 192, 193, 195, 193, 194, 198, 196, 200, 203, 204, 207, 212, 208, 213, 217, 212, 217, 223, 213, 220, 226, 216, 223, 229, 219, 226, 234, 223, 227, 236, 223, 227, 236, 222, 226, 235, 223, 227, 236, 224, 229, 235, 226, 231, 237, 228, 231, 238, 229, 232, 239, 230, 233, 240, 231, 234, 241, 232, 235, 242, 234, 237, 244, 235, 238, 243, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 248, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 248, 249, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 242, 246, 249, 241, 245, 248, 242, 245, 250, 241, 244, 249, 241, 244, 249, 240, 243, 248, 238, 241, 246, 237, 240, 245, 237, 240, 245, 236, 239, 244, 237, 240, 245, 234, 237, 242, 232, 235, 240, 230, 233, 238, 229, 232, 237, 226, 229, 234, 221, 224, 229, 217, 220, 225, 213, 214, 218, 211, 212, 216, 207, 208, 210, 203, 205, 204, 200, 200, 200, 197, 197, 195, 196, 195, 191, 195, 194, 190, 197, 194, 189, 196, 193, 188, 194, 191, 186, 193, 190, 185, 193, 188, 184, 191, 186, 182, 189, 184, 181, 187, 182, 179, 187, 179, 177, 182, 174, 172, 178, 170, 168, 178, 170, 168, 174, 166, 164, 168, 160, 158, 164, 159, 156, 167, 162, 159, 176, 171, 168, 181, 176, 173, 186, 181, 178, 188, 183, 180, 187, 183, 180, 187, 183, 180, 188, 184, 181, 189, 185, 182, 176, 168, 165, 178, 170, 167, 180, 172, 169, 181, 173, 170, 180, 172, 169, 178, 170, 167, 175, 167, 164, 173, 165, 162, 165, 157, 154, 174, 166, 163, 182, 174, 171, 185, 177, 174, 188, 180, 177, 189, 181, 178, 186, 178, 175, 180, 172, 169, 180, 175, 171, 179, 174, 170, 177, 172, 168, 173, 168, 164, 169, 164, 160, 168, 163, 159, 169, 164, 160, 172, 167, 163, 181, 176, 172, 179, 174, 170, 176, 171, 167, 172, 167, 163, 167, 162, 158, 161, 156, 152, 155, 150, 146, 151, 146, 142, 146, 138, 135, 154, 146, 143, 160, 152, 149, 158, 150, 147, 150, 142, 139, 146, 138, 135, 150, 142, 139, 156, 148, 145, 165, 157, 154, 174, 166, 163, 183, 175, 172, 182, 174, 171, 175, 167, 164, 171, 163, 160, 175, 167, 164, 181, 173, 170, 164, 159, 153, 167, 162, 156, 163, 158, 152, 152, 147, 141, 147, 142, 136, 154, 149, 143, 167, 162, 158, 176, 171, 167, 167, 162, 158, 163, 158, 154, 157, 152, 149, 156, 151, 148, 161, 156, 153, 171, 166, 163, 183, 178, 175, 190, 185, 182, 199, 193, 193, 185, 181, 180, 181, 177, 176, 190, 186, 185, 195, 191, 190, 187, 183, 182, 178, 174, 173, 176, 172, 171, 183, 179, 178, 186, 185, 183, 189, 188, 186, 189, 188, 186, 191, 190, 188, 195, 195, 193, 201, 200, 198, 203, 202, 200, 187, 186, 182, 189, 188, 184, 183, 182, 178, 172, 171, 167, 173, 172, 170, 190, 189, 187, 206, 206, 204, 214, 214, 212, 221, 221, 221, 225, 225, 225, 226, 228, 227, 223, 225, 224, 219, 221, 220, 222, 224, 223, 233, 235, 234, 244, 246, 245, 238, 240, 239, 239, 241, 240, 241, 243, 242, 244, 246, 245, 246, 248, 247, 247, 249, 248, 247, 249, 248, 247, 249, 248, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 249, 249, 249, 249, 249, 249, 249, 249, 249, 248, 248, 248, 248, 248, 248, 248, 248, 248, 247, 247, 247, 247, 247, 247, 248, 246, 249, 248, 246, 249, 247, 247, 249, 246, 246, 248, 246, 246, 248, 246, 246, 248, 244, 246, 245, 244, 246, 245, 245, 245, 245, 245, 245, 245, 246, 245, 243, 244, 243, 241, 244, 240, 239, 242, 238, 237, 240, 234, 234, 239, 233, 233, 242, 233, 234, 242, 233, 234, 243, 234, 235, 243, 234, 235, 243, 234, 235, 242, 233, 234, 242, 232, 233, 241, 231, 232, 241, 231, 232, 241, 231, 232, 243, 231, 233, 243, 231, 233, 243, 231, 233, 243, 231, 233, 243, 231, 233, 243, 231, 233, 244, 234, 235, 244, 234, 235, 245, 235, 236, 246, 236, 237, 246, 236, 237, 245, 235, 236, 245, 233, 235, 245, 233, 235, 245, 233, 235, 245, 233, 235, 243, 231, 233, 242, 230, 232, 244, 229, 232, 244, 229, 232, 245, 230, 233, 245, 230, 233, 244, 230, 230, 244, 230, 230, 244, 230, 230, 244, 230, 230, 244, 230, 230, 245, 231, 231, 246, 232, 232, 246, 232, 232, 246, 232, 232, 246, 230, 231, 246, 230, 231, 247, 228, 230, 247, 227, 229, 247, 225, 228, 246, 224, 227, 249, 223, 226, 248, 218, 220, 248, 218, 218, 247, 218, 220, 246, 220, 221, 243, 221, 223, 242, 224, 224, 240, 224, 225, 240, 224, 225, 240, 224, 225, 240, 224, 225, 242, 223, 225, 243, 223, 224, 244, 222, 224, 246, 222, 222, 246, 222, 222, 246, 221, 224, 243, 221, 223, 243, 223, 225, 243, 224, 226, 244, 225, 227, 245, 225, 227, 246, 224, 226, 248, 222, 221, 252, 221, 218, 255, 219, 214, 241, 196, 190, 227, 180, 174, 237, 194, 188, 251, 218, 213, 244, 223, 218, 235, 228, 222, 240, 239, 235, 242, 242, 240, 244, 244, 242, 246, 246, 244, 249, 249, 247, 250, 250, 248, 249, 249, 247, 248, 248, 246, 247, 247, 245, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 248, 248, 248, 248, 248, 248, 247, 247, 247, 246, 246, 246, 245, 245, 245, 244, 244, 244, 244, 244, 244, 243, 243, 243, 246, 246, 246, 246, 246, 246, 245, 245, 245, 245, 245, 245, 245, 245, 245, 246, 246, 246, 247, 247, 247, 248, 248, 248, 246, 248, 247, 246, 248, 247, 247, 249, 248, 247, 249, 248, 246, 248, 247, 245, 247, 246, 243, 245, 244, 242, 244, 243, 239, 241, 240, 241, 243, 242, 243, 245, 244, 243, 245, 244, 241, 243, 242, 236, 238, 237, 230, 232, 231, 227, 229, 228, 235, 234, 232, 227, 226, 224, 217, 217, 215, 215, 215, 213, 218, 218, 218, 219, 219, 219, 213, 215, 214, 208, 210, 209, 210, 210, 210, 208, 208, 206, 206, 205, 203, 205, 204, 200, 208, 205, 200, 211, 208, 203, 216, 211, 207, 218, 213, 209, 207, 203, 200, 210, 209, 205, 211, 210, 206, 205, 204, 200, 194, 193, 189, 189, 188, 184, 194, 193, 189, 200, 199, 195, 203, 202, 198, 195, 194, 190, 186, 185, 181, 181, 180, 176, 181, 180, 176, 185, 184, 180, 188, 187, 183, 192, 189, 184, 201, 196, 190, 199, 194, 188, 197, 192, 186, 194, 189, 183, 194, 187, 181, 193, 186, 180, 193, 186, 180, 193, 186, 180, 189, 180, 175, 188, 179, 174, 186, 177, 172, 183, 174, 169, 179, 170, 165, 175, 166, 161, 171, 162, 157, 169, 160, 155, 170, 161, 156, 171, 162, 157, 175, 166, 161, 178, 169, 164, 179, 168, 164, 174, 163, 159, 165, 154, 148, 158, 147, 141, 153, 142, 136, 151, 140, 134, 157, 144, 136, 164, 151, 143, 168, 155, 147, 163, 150, 142, 159, 146, 138, 158, 145, 137, 152, 139, 133, 149, 136, 130, 141, 128, 122, 130, 117, 111, 120, 107, 101, 116, 103, 97, 119, 106, 100, 123, 110, 104, 129, 116, 110, 141, 128, 122, 158, 145, 139, 167, 154, 148, 157, 144, 138, 135, 122, 116, 117, 104, 98, 111, 98, 92, 119, 104, 97, 117, 102, 95, 121, 104, 97, 127, 112, 105, 140, 123, 116, 145, 130, 123, 148, 131, 124, 143, 128, 121, 141, 124, 117, 140, 125, 118, 143, 126, 119, 144, 129, 122, 151, 134, 127, 153, 138, 131, 157, 140, 133, 157, 142, 135, 156, 143, 135, 156, 143, 135, 156, 143, 135, 158, 145, 137, 165, 152, 144, 174, 161, 153, 182, 171, 165, 188, 177, 171, 170, 159, 153, 178, 167, 161, 188, 179, 174, 199, 190, 185, 207, 198, 193, 213, 204, 199, 218, 209, 204, 221, 214, 208, 219, 214, 210, 219, 216, 211, 220, 217, 212, 220, 217, 212, 220, 216, 213, 219, 215, 212, 216, 215, 211, 215, 214, 210, 224, 223, 219, 225, 224, 220, 225, 224, 222, 226, 225, 223, 226, 226, 224, 226, 226, 224, 227, 227, 225, 227, 227, 225, 225, 227, 224, 225, 227, 224, 225, 227, 224, 224, 226, 223, 223, 225, 222, 221, 223, 220, 220, 222, 221, 218, 220, 219, 214, 216, 215, 213, 215, 214, 210, 211, 213, 207, 208, 210, 204, 205, 207, 201, 202, 204, 199, 200, 202, 197, 199, 198, 198, 196, 197, 195, 194, 192, 192, 191, 189, 191, 190, 188, 191, 190, 188, 189, 188, 186, 188, 184, 183, 186, 182, 181, 183, 179, 178, 183, 179, 178, 181, 177, 176, 180, 176, 175, 181, 175, 175, 181, 175, 175, 182, 176, 176, 182, 176, 176, 181, 177, 176, 182, 178, 177, 182, 181, 179, 181, 180, 178, 181, 179, 180, 181, 181, 181, 184, 184, 186, 186, 187, 189, 189, 190, 194, 192, 196, 199, 199, 203, 206, 205, 209, 212, 209, 212, 217, 211, 216, 220, 214, 219, 223, 217, 222, 228, 219, 224, 230, 219, 224, 230, 219, 224, 230, 220, 225, 231, 221, 226, 232, 223, 228, 234, 225, 230, 236, 227, 232, 238, 225, 230, 236, 227, 232, 238, 229, 234, 240, 232, 237, 243, 234, 239, 245, 235, 240, 246, 235, 240, 246, 234, 239, 245, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 248, 253, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 242, 246, 249, 241, 245, 248, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 241, 244, 249, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 237, 240, 245, 234, 237, 242, 232, 235, 240, 231, 234, 239, 228, 231, 236, 223, 226, 231, 219, 222, 227, 216, 217, 221, 214, 215, 219, 210, 211, 213, 205, 206, 208, 202, 202, 202, 199, 199, 197, 198, 197, 193, 197, 196, 192, 201, 198, 193, 199, 196, 191, 197, 194, 189, 196, 193, 188, 197, 192, 188, 195, 190, 186, 190, 185, 182, 186, 181, 178, 187, 179, 177, 182, 174, 172, 179, 171, 169, 178, 170, 168, 175, 167, 165, 169, 161, 159, 166, 161, 158, 168, 163, 160, 175, 170, 167, 176, 171, 168, 179, 174, 171, 181, 176, 173, 182, 178, 175, 181, 177, 174, 180, 176, 173, 179, 175, 172, 169, 161, 158, 172, 164, 161, 176, 168, 165, 180, 172, 169, 180, 172, 169, 178, 170, 167, 174, 166, 163, 172, 164, 161, 171, 163, 160, 181, 173, 170, 189, 181, 178, 190, 182, 179, 190, 182, 179, 189, 181, 178, 186, 178, 175, 181, 173, 170, 184, 179, 175, 184, 179, 175, 184, 179, 175, 181, 176, 172, 177, 172, 168, 176, 171, 167, 177, 172, 168, 179, 174, 170, 182, 177, 173, 178, 173, 169, 174, 169, 165, 172, 167, 163, 171, 166, 162, 169, 164, 160, 166, 161, 157, 163, 158, 154, 173, 165, 162, 175, 167, 164, 174, 166, 163, 166, 158, 155, 158, 150, 147, 159, 151, 148, 171, 163, 160, 182, 174, 171, 165, 157, 154, 170, 162, 159, 173, 165, 162, 169, 161, 158, 161, 153, 150, 154, 146, 143, 153, 145, 142, 155, 147, 144, 131, 126, 120, 153, 148, 142, 174, 169, 163, 177, 172, 166, 169, 164, 158, 160, 155, 149, 155, 150, 146, 152, 147, 143, 154, 149, 145, 155, 150, 146, 161, 156, 153, 173, 168, 165, 186, 181, 178, 194, 189, 186, 195, 190, 187, 192, 187, 184, 178, 174, 173, 165, 161, 160, 163, 159, 158, 180, 176, 175, 191, 187, 186, 186, 182, 181, 182, 178, 177, 182, 181, 179, 173, 172, 170, 171, 170, 168, 168, 167, 165, 162, 162, 160, 159, 159, 157, 159, 159, 157, 164, 164, 162, 168, 168, 166, 175, 174, 170, 179, 178, 174, 177, 176, 172, 177, 176, 172, 194, 193, 191, 217, 216, 214, 221, 221, 219, 211, 211, 209, 223, 223, 223, 219, 219, 219, 216, 218, 217, 221, 223, 222, 230, 232, 231, 234, 236, 235, 233, 235, 234, 229, 231, 230, 232, 234, 233, 234, 236, 235, 238, 240, 239, 243, 245, 244, 247, 249, 248, 250, 252, 251, 252, 254, 253, 253, 255, 254, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 250, 250, 249, 249, 249, 249, 249, 249, 249, 249, 249, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 246, 249, 248, 246, 249, 247, 247, 249, 246, 246, 248, 246, 246, 248, 246, 246, 248, 244, 246, 245, 244, 246, 245, 243, 243, 243, 243, 243, 243, 244, 243, 241, 244, 243, 241, 245, 241, 240, 243, 239, 238, 242, 236, 236, 241, 235, 235, 241, 232, 233, 242, 233, 234, 243, 234, 235, 243, 234, 235, 242, 233, 234, 241, 232, 233, 241, 231, 232, 240, 230, 231, 239, 229, 230, 240, 230, 231, 242, 230, 232, 243, 231, 233, 243, 231, 233, 242, 230, 232, 241, 229, 231, 240, 228, 230, 243, 231, 233, 243, 233, 234, 244, 234, 235, 244, 234, 235, 244, 234, 235, 244, 234, 235, 244, 232, 234, 243, 231, 233, 245, 233, 235, 244, 232, 234, 243, 231, 233, 242, 230, 232, 244, 229, 232, 244, 229, 232, 244, 229, 232, 245, 230, 233, 244, 230, 230, 243, 229, 229, 244, 228, 229, 242, 228, 228, 242, 228, 228, 244, 230, 230, 245, 231, 231, 246, 232, 232, 246, 230, 231, 247, 228, 230, 247, 228, 230, 246, 226, 228, 246, 224, 227, 245, 223, 226, 246, 221, 225, 246, 220, 223, 245, 216, 218, 245, 217, 216, 244, 218, 219, 243, 219, 219, 242, 220, 222, 242, 222, 223, 242, 223, 225, 240, 224, 225, 242, 223, 225, 242, 224, 224, 243, 223, 224, 244, 223, 222, 246, 222, 222, 247, 221, 222, 249, 220, 222, 249, 220, 222, 245, 219, 220, 241, 221, 222, 240, 224, 225, 240, 226, 226, 240, 226, 226, 243, 225, 225, 247, 221, 220, 253, 219, 217, 253, 212, 206, 242, 197, 191, 235, 190, 184, 243, 204, 197, 251, 222, 218, 249, 229, 228, 241, 231, 230, 239, 235, 236, 244, 243, 241, 244, 244, 242, 247, 247, 245, 249, 249, 247, 249, 249, 247, 249, 249, 247, 247, 247, 245, 246, 246, 244, 248, 248, 246, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 246, 244, 246, 246, 244, 246, 246, 246, 246, 246, 246, 246, 246, 246, 245, 245, 245, 245, 245, 245, 244, 244, 244, 244, 244, 244, 244, 244, 244, 246, 246, 246, 246, 246, 246, 245, 245, 245, 245, 245, 245, 245, 245, 245, 246, 246, 246, 247, 247, 247, 248, 248, 248, 247, 249, 248, 247, 249, 248, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 246, 248, 247, 245, 247, 246, 245, 247, 246, 245, 247, 246, 243, 245, 244, 240, 242, 241, 237, 239, 238, 234, 236, 235, 232, 234, 233, 230, 232, 231, 232, 232, 230, 226, 225, 223, 217, 217, 215, 213, 213, 211, 214, 214, 214, 216, 216, 216, 215, 217, 216, 214, 216, 215, 219, 219, 219, 214, 214, 214, 207, 206, 204, 200, 199, 197, 198, 194, 191, 198, 195, 190, 202, 197, 193, 203, 200, 195, 202, 201, 197, 203, 202, 198, 203, 202, 198, 203, 202, 198, 202, 201, 197, 202, 201, 197, 202, 201, 197, 202, 201, 197, 203, 202, 198, 199, 198, 194, 195, 194, 190, 194, 193, 189, 193, 192, 188, 193, 192, 188, 192, 191, 187, 190, 189, 185, 195, 190, 186, 194, 189, 183, 192, 187, 181, 191, 186, 180, 194, 187, 181, 196, 189, 183, 199, 192, 186, 201, 194, 188, 194, 185, 180, 194, 185, 180, 193, 184, 179, 191, 182, 177, 188, 179, 174, 184, 175, 170, 181, 172, 167, 179, 170, 165, 186, 177, 172, 187, 178, 173, 188, 179, 174, 189, 180, 175, 188, 177, 173, 180, 169, 165, 170, 159, 153, 162, 151, 145, 157, 146, 140, 149, 138, 132, 143, 130, 122, 142, 129, 121, 142, 129, 121, 140, 127, 119, 141, 128, 120, 145, 132, 124, 150, 137, 131, 156, 143, 137, 160, 147, 141, 158, 145, 139, 150, 137, 131, 145, 132, 126, 146, 133, 127, 149, 136, 130, 129, 116, 110, 125, 112, 106, 131, 118, 112, 149, 136, 130, 165, 152, 146, 166, 153, 147, 156, 143, 137, 147, 134, 128, 131, 116, 109, 128, 113, 106, 131, 114, 107, 134, 119, 112, 144, 127, 120, 147, 132, 125, 149, 132, 125, 145, 130, 123, 157, 140, 133, 149, 134, 127, 142, 125, 118, 136, 121, 114, 139, 122, 115, 142, 127, 120, 148, 131, 124, 148, 133, 126, 155, 142, 134, 157, 144, 136, 160, 147, 139, 164, 151, 143, 168, 155, 147, 172, 159, 151, 173, 162, 156, 175, 164, 158, 185, 174, 168, 186, 175, 169, 186, 177, 172, 187, 178, 173, 189, 180, 175, 194, 185, 180, 201, 192, 187, 206, 199, 193, 217, 212, 208, 217, 214, 209, 219, 216, 211, 222, 219, 214, 223, 219, 216, 224, 220, 217, 222, 221, 217, 222, 221, 217, 225, 224, 220, 225, 224, 220, 226, 225, 223, 227, 226, 224, 226, 226, 224, 227, 227, 225, 228, 228, 226, 228, 228, 226, 226, 228, 225, 226, 228, 225, 226, 228, 225, 226, 228, 225, 224, 226, 223, 222, 224, 221, 221, 223, 222, 220, 222, 221, 215, 217, 216, 214, 216, 215, 212, 213, 215, 209, 210, 212, 205, 206, 208, 202, 203, 205, 200, 201, 203, 199, 201, 200, 199, 199, 199, 197, 196, 194, 194, 193, 191, 192, 191, 189, 192, 191, 189, 190, 189, 187, 189, 185, 184, 186, 182, 181, 183, 179, 178, 183, 179, 178, 181, 177, 176, 180, 176, 175, 181, 175, 175, 181, 175, 175, 182, 176, 176, 182, 176, 176, 180, 176, 175, 181, 177, 176, 180, 179, 177, 179, 178, 176, 178, 176, 177, 178, 176, 177, 180, 180, 182, 183, 183, 185, 186, 185, 190, 190, 191, 195, 197, 198, 202, 200, 204, 207, 203, 206, 211, 205, 208, 213, 208, 211, 216, 210, 215, 219, 214, 219, 225, 214, 219, 225, 214, 219, 225, 215, 220, 226, 217, 222, 228, 219, 224, 230, 221, 226, 232, 223, 228, 234, 222, 227, 233, 224, 229, 235, 228, 233, 239, 231, 236, 242, 233, 238, 244, 234, 239, 245, 233, 238, 244, 233, 238, 244, 235, 238, 243, 235, 238, 243, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 248, 253, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 242, 246, 249, 241, 245, 248, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 241, 244, 249, 238, 241, 246, 236, 239, 244, 234, 237, 242, 233, 236, 241, 230, 233, 238, 225, 228, 233, 221, 224, 229, 219, 220, 224, 217, 218, 222, 213, 214, 216, 208, 209, 211, 205, 205, 205, 201, 201, 199, 200, 199, 195, 199, 198, 194, 201, 197, 194, 198, 194, 191, 195, 191, 188, 195, 191, 188, 196, 191, 188, 193, 188, 185, 186, 181, 178, 181, 176, 173, 188, 180, 178, 183, 175, 173, 180, 172, 170, 180, 172, 170, 177, 169, 167, 172, 164, 162, 169, 164, 161, 172, 167, 164, 172, 167, 164, 170, 165, 162, 169, 164, 161, 172, 167, 164, 175, 171, 168, 175, 171, 168, 171, 167, 164, 166, 162, 159, 174, 166, 164, 176, 168, 166, 179, 171, 169, 182, 174, 172, 183, 175, 173, 184, 176, 174, 184, 176, 174, 183, 175, 173, 177, 169, 167, 185, 177, 175, 190, 182, 180, 188, 180, 178, 186, 178, 176, 188, 180, 178, 189, 181, 179, 189, 181, 179, 188, 183, 179, 189, 184, 180, 190, 185, 181, 187, 182, 178, 184, 179, 175, 181, 176, 172, 181, 176, 172, 182, 177, 173, 182, 177, 173, 180, 175, 171, 179, 174, 170, 181, 176, 172, 183, 178, 174, 181, 176, 172, 176, 171, 167, 170, 165, 161, 184, 176, 173, 177, 169, 166, 166, 158, 155, 155, 147, 144, 148, 140, 137, 146, 138, 135, 146, 138, 135, 146, 138, 135, 163, 155, 152, 160, 152, 149, 151, 143, 140, 135, 127, 124, 119, 111, 108, 112, 104, 101, 116, 108, 105, 122, 114, 111, 164, 157, 151, 172, 165, 157, 175, 168, 160, 167, 160, 152, 157, 152, 146, 156, 151, 145, 160, 155, 149, 162, 157, 151, 166, 161, 157, 171, 166, 162, 176, 171, 167, 175, 170, 166, 169, 164, 160, 164, 159, 155, 161, 156, 152, 160, 155, 152, 165, 161, 160, 166, 165, 163, 169, 168, 166, 172, 171, 169, 175, 174, 172, 177, 176, 174, 179, 178, 176, 179, 178, 176, 176, 175, 173, 175, 175, 173, 177, 177, 175, 180, 180, 178, 179, 179, 177, 176, 178, 175, 179, 181, 178, 184, 184, 182, 195, 194, 190, 199, 198, 194, 204, 205, 200, 214, 215, 210, 226, 226, 224, 230, 230, 228, 223, 223, 221, 213, 213, 211, 217, 219, 218, 214, 216, 215, 214, 216, 215, 221, 223, 222, 231, 233, 232, 234, 236, 235, 230, 232, 231, 223, 225, 224, 232, 234, 233, 234, 236, 235, 237, 239, 238, 242, 244, 243, 245, 247, 246, 248, 250, 249, 250, 252, 251, 251, 253, 252, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 249, 249, 249, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 246, 249, 248, 246, 249, 247, 247, 247, 246, 246, 246, 246, 246, 246, 246, 246, 246, 245, 245, 245, 245, 245, 245, 240, 240, 238, 241, 241, 239, 243, 242, 240, 243, 242, 240, 245, 241, 240, 245, 239, 239, 246, 237, 238, 246, 237, 238, 242, 232, 231, 243, 233, 232, 243, 233, 232, 244, 234, 233, 243, 233, 232, 242, 232, 231, 242, 230, 230, 241, 229, 229, 240, 228, 228, 241, 229, 229, 242, 230, 230, 243, 231, 231, 245, 231, 231, 243, 229, 229, 241, 227, 227, 238, 226, 226, 241, 229, 229, 242, 230, 230, 243, 231, 231, 243, 231, 231, 243, 231, 231, 243, 231, 231, 244, 230, 230, 243, 229, 229, 247, 233, 233, 246, 232, 232, 245, 231, 231, 244, 230, 230, 244, 228, 229, 245, 229, 230, 245, 229, 230, 246, 230, 231, 245, 229, 230, 244, 228, 229, 245, 226, 228, 242, 226, 227, 242, 226, 227, 244, 228, 229, 246, 230, 231, 247, 231, 232, 247, 228, 230, 246, 227, 229, 246, 226, 228, 246, 224, 227, 244, 222, 225, 245, 220, 224, 245, 218, 223, 243, 218, 221, 238, 217, 216, 238, 219, 215, 238, 218, 217, 239, 219, 218, 241, 221, 222, 242, 222, 223, 242, 222, 223, 242, 224, 224, 243, 223, 224, 243, 223, 224, 244, 222, 224, 246, 222, 222, 247, 221, 222, 249, 221, 220, 251, 219, 220, 251, 219, 220, 248, 216, 217, 244, 218, 217, 241, 223, 221, 237, 226, 224, 236, 226, 224, 239, 225, 222, 246, 221, 217, 252, 219, 214, 252, 211, 205, 246, 203, 196, 241, 203, 194, 243, 210, 203, 247, 221, 220, 251, 232, 234, 249, 236, 245, 244, 234, 242, 244, 242, 243, 245, 245, 243, 247, 247, 245, 249, 249, 247, 249, 249, 247, 248, 248, 246, 247, 247, 245, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 246, 244, 246, 246, 244, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 245, 246, 246, 246, 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 246, 246, 246, 246, 246, 246, 245, 245, 245, 245, 245, 245, 245, 245, 245, 246, 246, 246, 247, 247, 247, 248, 248, 248, 248, 250, 249, 249, 251, 250, 249, 251, 250, 250, 252, 251, 250, 252, 251, 249, 251, 250, 248, 250, 249, 247, 249, 248, 250, 252, 251, 248, 250, 249, 246, 248, 247, 244, 246, 245, 242, 244, 243, 241, 243, 242, 240, 242, 241, 240, 242, 241, 234, 234, 232, 231, 231, 229, 228, 228, 228, 225, 225, 225, 223, 225, 224, 223, 225, 224, 225, 226, 228, 225, 226, 228, 212, 214, 213, 212, 214, 213, 211, 211, 209, 209, 208, 206, 206, 202, 199, 199, 195, 192, 193, 190, 185, 190, 187, 182, 203, 202, 198, 201, 200, 198, 201, 200, 198, 204, 203, 201, 207, 206, 204, 207, 206, 204, 203, 202, 200, 199, 198, 196, 200, 199, 197, 200, 199, 197, 201, 200, 198, 204, 203, 201, 206, 205, 203, 205, 204, 202, 201, 200, 198, 198, 197, 193, 196, 191, 187, 194, 189, 183, 191, 186, 180, 189, 184, 178, 188, 183, 177, 190, 185, 179, 194, 187, 181, 196, 189, 183, 192, 185, 179, 193, 186, 180, 195, 186, 181, 197, 188, 183, 198, 189, 184, 198, 189, 184, 197, 188, 183, 197, 188, 183, 196, 187, 182, 193, 184, 179, 189, 180, 175, 185, 176, 171, 181, 172, 167, 174, 165, 160, 168, 157, 151, 163, 152, 146, 156, 145, 139, 143, 132, 126, 130, 120, 111, 122, 112, 103, 118, 105, 97, 112, 99, 91, 112, 99, 91, 115, 102, 94, 128, 115, 109, 133, 120, 114, 141, 128, 122, 147, 134, 128, 150, 137, 131, 150, 137, 131, 150, 137, 131, 150, 137, 131, 147, 134, 128, 132, 119, 113, 121, 108, 102, 126, 113, 107, 139, 126, 120, 152, 139, 133, 163, 150, 144, 170, 157, 151, 154, 141, 135, 149, 136, 130, 144, 129, 124, 141, 128, 122, 144, 129, 124, 147, 134, 128, 152, 137, 132, 153, 140, 134, 156, 141, 136, 150, 137, 131, 145, 130, 125, 144, 131, 125, 151, 136, 131, 156, 143, 137, 161, 146, 141, 161, 148, 142, 153, 140, 132, 157, 144, 136, 164, 151, 145, 171, 158, 152, 177, 164, 158, 182, 169, 163, 184, 171, 165, 184, 171, 165, 188, 177, 173, 189, 178, 174, 191, 180, 176, 192, 181, 177, 194, 185, 180, 199, 190, 185, 207, 198, 193, 212, 205, 199, 209, 204, 200, 210, 207, 202, 215, 212, 207, 220, 217, 212, 225, 221, 218, 229, 225, 222, 229, 228, 224, 230, 229, 225, 226, 225, 221, 226, 225, 221, 226, 225, 223, 227, 226, 224, 227, 227, 225, 228, 228, 226, 228, 228, 226, 229, 229, 227, 227, 229, 226, 227, 229, 226, 227, 229, 226, 226, 228, 225, 225, 227, 224, 223, 225, 222, 222, 224, 223, 220, 222, 221, 217, 219, 218, 216, 218, 217, 213, 214, 216, 210, 211, 213, 207, 208, 210, 204, 205, 207, 202, 203, 205, 200, 202, 201, 200, 200, 200, 198, 198, 196, 195, 194, 192, 193, 192, 190, 192, 191, 189, 191, 190, 188, 187, 186, 184, 184, 183, 181, 184, 180, 179, 183, 179, 178, 182, 178, 177, 181, 177, 176, 180, 176, 175, 181, 177, 176, 182, 176, 176, 183, 177, 177, 180, 176, 175, 181, 177, 176, 182, 178, 177, 180, 176, 175, 177, 175, 176, 177, 175, 176, 179, 177, 178, 181, 181, 181, 181, 181, 183, 186, 186, 188, 192, 192, 194, 195, 196, 198, 198, 199, 203, 199, 200, 204, 202, 203, 207, 202, 206, 209, 207, 212, 216, 207, 212, 216, 207, 212, 216, 208, 213, 217, 210, 215, 219, 213, 218, 222, 215, 220, 224, 217, 222, 226, 219, 224, 228, 222, 227, 231, 225, 232, 238, 229, 236, 242, 231, 238, 244, 231, 238, 244, 230, 237, 243, 231, 236, 242, 235, 238, 243, 235, 238, 243, 235, 238, 243, 236, 239, 244, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 248, 253, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 242, 246, 249, 241, 245, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 242, 245, 250, 239, 242, 247, 237, 240, 245, 235, 238, 243, 234, 237, 242, 231, 234, 239, 226, 229, 234, 222, 225, 230, 221, 222, 226, 219, 220, 224, 214, 215, 219, 209, 210, 212, 206, 206, 206, 202, 202, 202, 201, 200, 198, 200, 199, 195, 198, 194, 191, 194, 190, 187, 191, 187, 184, 190, 186, 183, 191, 186, 183, 188, 183, 180, 180, 175, 172, 174, 169, 166, 188, 180, 178, 183, 175, 173, 180, 172, 170, 181, 173, 171, 178, 170, 168, 174, 166, 164, 171, 166, 163, 174, 169, 166, 172, 167, 164, 167, 162, 159, 165, 160, 157, 168, 163, 160, 172, 168, 165, 173, 169, 166, 166, 162, 159, 159, 155, 152, 176, 168, 166, 176, 168, 166, 176, 168, 166, 177, 169, 167, 180, 172, 170, 184, 176, 174, 187, 179, 177, 189, 181, 179, 190, 182, 180, 194, 186, 184, 192, 184, 182, 184, 176, 174, 179, 171, 169, 181, 173, 171, 185, 177, 175, 187, 179, 177, 184, 179, 175, 185, 180, 176, 185, 180, 176, 182, 177, 173, 176, 171, 167, 171, 166, 162, 169, 164, 160, 169, 164, 160, 163, 158, 154, 165, 160, 156, 170, 165, 161, 178, 173, 169, 184, 179, 175, 185, 180, 176, 179, 174, 170, 172, 167, 163, 161, 153, 150, 155, 147, 144, 152, 144, 141, 159, 151, 148, 170, 162, 159, 173, 165, 162, 165, 157, 154, 156, 148, 145, 135, 127, 124, 138, 130, 127, 134, 126, 123, 119, 111, 108, 107, 99, 96, 114, 106, 103, 141, 133, 130, 166, 159, 153, 177, 170, 164, 174, 167, 159, 164, 157, 149, 153, 146, 138, 148, 143, 137, 155, 150, 144, 163, 158, 152, 166, 161, 155, 163, 158, 154, 164, 159, 155, 154, 149, 145, 128, 123, 119, 105, 100, 96, 111, 106, 102, 144, 139, 135, 175, 171, 168, 180, 179, 177, 197, 196, 194, 198, 197, 195, 178, 177, 175, 161, 160, 158, 161, 160, 158, 161, 160, 158, 155, 154, 152, 149, 149, 147, 159, 159, 157, 178, 178, 176, 198, 198, 196, 208, 210, 207, 210, 212, 209, 212, 214, 211, 216, 218, 215, 217, 218, 213, 212, 211, 207, 212, 213, 208, 214, 215, 210, 206, 206, 204, 195, 195, 193, 199, 199, 197, 213, 213, 211, 212, 214, 213, 216, 218, 217, 221, 223, 222, 222, 224, 223, 222, 224, 223, 224, 226, 225, 229, 231, 230, 234, 236, 235, 237, 239, 238, 239, 241, 240, 240, 242, 241, 242, 244, 243, 243, 245, 244, 244, 246, 245, 244, 246, 245, 243, 245, 244, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 246, 249, 248, 246, 249, 247, 247, 247, 246, 246, 246, 246, 246, 246, 246, 246, 246, 245, 245, 245, 245, 245, 245, 238, 238, 236, 239, 239, 237, 242, 241, 239, 245, 241, 240, 247, 241, 241, 246, 240, 240, 248, 239, 240, 247, 238, 239, 242, 232, 231, 243, 233, 232, 243, 233, 232, 243, 233, 232, 243, 233, 232, 242, 232, 231, 242, 230, 230, 241, 229, 229, 239, 227, 227, 240, 228, 228, 242, 230, 230, 243, 231, 231, 245, 231, 231, 243, 229, 229, 240, 226, 226, 239, 225, 225, 242, 228, 228, 241, 229, 229, 242, 230, 230, 242, 230, 230, 242, 230, 230, 244, 230, 230, 243, 229, 229, 242, 228, 228, 247, 233, 233, 246, 232, 232, 245, 231, 231, 245, 229, 230, 244, 228, 229, 244, 228, 229, 245, 229, 230, 248, 229, 231, 247, 228, 230, 246, 227, 229, 244, 225, 227, 243, 224, 226, 243, 224, 226, 243, 227, 228, 248, 229, 231, 249, 230, 232, 246, 227, 229, 247, 227, 229, 247, 225, 228, 247, 222, 226, 245, 220, 224, 245, 218, 223, 244, 217, 222, 242, 217, 220, 235, 217, 215, 234, 219, 214, 237, 219, 217, 239, 219, 218, 241, 219, 221, 242, 220, 222, 243, 221, 223, 244, 222, 224, 244, 222, 224, 244, 223, 222, 244, 223, 222, 246, 222, 220, 247, 221, 220, 249, 221, 218, 250, 220, 218, 251, 220, 218, 249, 215, 216, 247, 217, 217, 241, 221, 220, 238, 224, 221, 239, 225, 224, 242, 222, 221, 249, 219, 217, 255, 215, 213, 255, 211, 206, 253, 208, 202, 247, 210, 202, 241, 212, 206, 241, 220, 219, 251, 235, 238, 254, 241, 251, 247, 237, 246, 245, 243, 244, 245, 245, 243, 247, 247, 245, 249, 249, 247, 249, 249, 247, 248, 248, 246, 247, 247, 245, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 245, 245, 243, 245, 245, 243, 245, 245, 243, 244, 244, 242, 244, 244, 242, 246, 246, 246, 246, 246, 246, 247, 247, 247, 248, 248, 248, 249, 249, 249, 250, 250, 250, 250, 250, 250, 251, 251, 251, 246, 246, 246, 246, 246, 246, 245, 245, 245, 245, 245, 245, 245, 245, 245, 246, 246, 246, 247, 247, 247, 248, 248, 248, 249, 251, 250, 249, 251, 250, 250, 252, 251, 251, 253, 252, 251, 253, 252, 251, 253, 252, 250, 252, 251, 249, 251, 250, 244, 246, 245, 246, 248, 247, 248, 250, 249, 250, 252, 251, 249, 251, 250, 247, 249, 248, 244, 246, 245, 242, 244, 243, 240, 240, 238, 242, 242, 240, 243, 243, 243, 242, 242, 242, 238, 240, 239, 237, 239, 238, 237, 238, 240, 239, 240, 242, 220, 222, 221, 218, 220, 219, 215, 215, 213, 211, 211, 209, 209, 208, 204, 209, 205, 202, 208, 205, 200, 208, 205, 200, 207, 206, 204, 211, 210, 208, 215, 214, 212, 216, 215, 213, 213, 212, 210, 209, 208, 206, 206, 205, 203, 206, 205, 203, 206, 205, 203, 205, 204, 202, 205, 204, 202, 207, 206, 204, 210, 209, 207, 212, 211, 209, 210, 209, 207, 208, 207, 203, 212, 209, 204, 209, 204, 198, 203, 198, 192, 196, 191, 185, 192, 187, 181, 190, 185, 179, 192, 185, 179, 192, 185, 179, 191, 184, 178, 191, 184, 178, 193, 184, 179, 193, 184, 179, 192, 183, 178, 190, 181, 176, 189, 180, 175, 188, 179, 174, 181, 172, 167, 176, 167, 162, 170, 161, 156, 167, 158, 153, 167, 158, 153, 168, 159, 154, 170, 159, 153, 169, 158, 152, 174, 163, 157, 165, 154, 148, 158, 148, 139, 154, 144, 135, 153, 140, 132, 146, 133, 125, 143, 130, 122, 144, 131, 123, 151, 138, 132, 146, 133, 127, 142, 129, 123, 143, 130, 124, 148, 135, 129, 151, 138, 132, 148, 135, 129, 144, 131, 125, 142, 129, 123, 142, 129, 123, 141, 128, 122, 138, 125, 119, 133, 120, 114, 135, 122, 116, 150, 137, 131, 167, 154, 148, 184, 171, 165, 173, 162, 156, 161, 148, 142, 146, 135, 129, 141, 128, 122, 140, 129, 123, 148, 135, 129, 150, 139, 133, 158, 145, 139, 155, 144, 138, 158, 145, 139, 162, 151, 145, 170, 157, 151, 170, 159, 153, 168, 155, 149, 164, 151, 145, 169, 156, 148, 170, 157, 149, 171, 158, 152, 172, 159, 153, 174, 161, 155, 177, 164, 158, 179, 166, 160, 180, 167, 161, 183, 172, 168, 189, 178, 174, 196, 185, 181, 201, 190, 186, 202, 193, 188, 203, 194, 189, 205, 196, 191, 205, 198, 192, 214, 209, 205, 215, 212, 207, 217, 214, 209, 220, 217, 212, 222, 218, 215, 224, 220, 217, 222, 221, 217, 223, 222, 218, 226, 225, 221, 226, 225, 221, 227, 226, 224, 228, 227, 225, 227, 227, 225, 228, 228, 226, 229, 229, 227, 229, 229, 227, 227, 229, 226, 227, 229, 226, 227, 229, 226, 227, 229, 226, 226, 228, 225, 224, 226, 223, 222, 224, 223, 221, 223, 222, 218, 220, 219, 217, 219, 218, 214, 215, 217, 211, 212, 214, 208, 209, 211, 205, 206, 208, 203, 204, 206, 201, 203, 202, 201, 201, 201, 198, 198, 196, 196, 195, 193, 194, 193, 191, 193, 192, 190, 191, 190, 188, 187, 186, 184, 185, 184, 182, 184, 180, 179, 183, 179, 178, 182, 178, 177, 181, 177, 176, 181, 177, 176, 181, 177, 176, 183, 177, 177, 183, 177, 177, 180, 176, 175, 181, 177, 176, 182, 178, 177, 180, 176, 175, 176, 174, 175, 176, 174, 175, 178, 176, 177, 181, 179, 180, 179, 177, 180, 182, 182, 184, 189, 187, 190, 192, 192, 194, 193, 193, 195, 194, 195, 197, 197, 196, 201, 198, 199, 203, 203, 207, 210, 202, 207, 211, 202, 207, 211, 203, 208, 212, 206, 211, 215, 208, 213, 217, 211, 216, 220, 212, 217, 221, 218, 223, 227, 221, 226, 230, 224, 231, 237, 228, 235, 241, 231, 238, 244, 231, 238, 244, 230, 237, 243, 229, 236, 242, 234, 237, 242, 235, 238, 243, 235, 238, 243, 235, 238, 243, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 248, 253, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 238, 241, 246, 236, 239, 244, 233, 236, 241, 229, 232, 237, 226, 229, 234, 224, 227, 232, 232, 233, 238, 225, 226, 230, 217, 218, 222, 209, 210, 212, 206, 206, 206, 203, 203, 203, 201, 200, 198, 199, 198, 196, 196, 192, 189, 197, 193, 190, 197, 193, 190, 195, 191, 188, 191, 186, 183, 185, 180, 177, 178, 172, 172, 174, 168, 168, 184, 176, 174, 188, 180, 178, 187, 179, 177, 174, 166, 164, 157, 149, 147, 150, 142, 140, 155, 150, 147, 164, 159, 156, 158, 153, 150, 168, 163, 160, 179, 174, 171, 182, 177, 174, 177, 173, 170, 172, 168, 165, 172, 168, 165, 174, 170, 167, 185, 177, 175, 185, 177, 175, 185, 177, 175, 186, 178, 176, 188, 180, 178, 190, 182, 180, 193, 185, 183, 194, 186, 184, 200, 192, 190, 191, 183, 181, 182, 174, 172, 181, 173, 171, 185, 177, 175, 188, 180, 178, 186, 178, 176, 182, 174, 172, 186, 181, 177, 185, 180, 176, 184, 179, 175, 185, 180, 176, 184, 179, 175, 177, 172, 168, 165, 160, 156, 155, 150, 146, 160, 155, 151, 167, 162, 158, 174, 169, 165, 176, 171, 167, 174, 169, 165, 171, 166, 162, 172, 167, 163, 174, 169, 165, 168, 160, 157, 170, 162, 159, 175, 167, 164, 178, 170, 167, 178, 170, 167, 177, 169, 166, 174, 166, 163, 171, 163, 160, 163, 155, 152, 159, 151, 148, 150, 142, 139, 145, 137, 134, 151, 143, 140, 163, 155, 152, 171, 163, 160, 171, 164, 158, 173, 164, 159, 166, 157, 150, 149, 142, 134, 139, 132, 124, 150, 143, 137, 168, 161, 155, 163, 158, 152, 146, 141, 135, 124, 119, 115, 132, 127, 123, 136, 133, 128, 138, 135, 130, 148, 145, 140, 163, 160, 155, 168, 165, 160, 165, 161, 158, 177, 176, 174, 183, 181, 182, 185, 183, 184, 181, 179, 180, 175, 175, 175, 165, 165, 165, 146, 146, 146, 127, 127, 127, 166, 166, 166, 188, 188, 188, 206, 208, 207, 210, 212, 211, 209, 211, 210, 209, 211, 210, 205, 207, 206, 198, 200, 197, 199, 200, 195, 193, 194, 189, 186, 187, 182, 184, 185, 180, 189, 189, 187, 201, 201, 199, 214, 216, 213, 223, 225, 222, 223, 225, 224, 227, 229, 228, 229, 231, 230, 226, 228, 227, 219, 223, 222, 220, 224, 223, 228, 232, 231, 236, 240, 239, 240, 242, 241, 241, 243, 242, 241, 243, 242, 243, 245, 244, 244, 246, 245, 245, 247, 246, 246, 248, 247, 246, 248, 247, 251, 253, 252, 251, 253, 252, 251, 253, 252, 251, 253, 252, 251, 253, 252, 251, 253, 252, 251, 253, 252, 251, 253, 252, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 249, 249, 249, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 247, 247, 247, 247, 247, 247, 246, 246, 246, 246, 246, 246, 246, 246, 246, 245, 245, 245, 245, 245, 243, 245, 245, 243, 242, 241, 239, 242, 241, 239, 244, 240, 239, 243, 239, 238, 244, 239, 236, 246, 238, 236, 246, 236, 235, 246, 236, 235, 241, 229, 229, 241, 229, 229, 241, 229, 229, 241, 229, 229, 241, 229, 229, 242, 230, 230, 242, 230, 230, 242, 230, 230, 244, 230, 230, 243, 229, 229, 241, 227, 227, 240, 226, 226, 241, 225, 226, 241, 225, 226, 242, 226, 227, 241, 227, 227, 243, 229, 229, 243, 229, 229, 243, 229, 229, 243, 229, 229, 243, 229, 229, 244, 228, 229, 244, 228, 229, 244, 228, 229, 246, 230, 231, 246, 230, 231, 246, 230, 231, 247, 228, 230, 247, 228, 230, 247, 228, 230, 246, 227, 229, 246, 227, 229, 248, 228, 229, 248, 228, 229, 247, 227, 228, 247, 227, 228, 246, 226, 227, 245, 227, 227, 246, 226, 227, 246, 226, 227, 244, 224, 225, 245, 223, 225, 244, 222, 224, 245, 220, 223, 244, 218, 221, 245, 216, 220, 244, 215, 219, 242, 216, 219, 237, 219, 217, 235, 220, 217, 239, 219, 218, 241, 220, 219, 243, 218, 221, 245, 219, 222, 248, 219, 223, 246, 220, 223, 240, 216, 216, 243, 222, 221, 248, 227, 226, 250, 229, 226, 249, 228, 223, 246, 226, 219, 246, 223, 217, 248, 220, 217, 244, 208, 212, 247, 211, 215, 241, 215, 218, 236, 214, 216, 240, 216, 216, 250, 220, 220, 255, 219, 220, 255, 216, 215, 248, 194, 192, 246, 197, 192, 245, 208, 200, 250, 223, 216, 248, 233, 230, 245, 235, 236, 246, 236, 244, 248, 243, 249, 243, 241, 242, 243, 243, 241, 245, 245, 243, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 246, 246, 246, 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 251, 253, 252, 250, 252, 251, 249, 251, 250, 246, 248, 247, 244, 246, 245, 242, 244, 243, 241, 243, 242, 240, 242, 241, 240, 240, 238, 239, 239, 237, 236, 238, 237, 234, 236, 235, 231, 232, 234, 229, 230, 232, 225, 229, 230, 224, 228, 229, 233, 234, 236, 230, 232, 231, 226, 226, 224, 221, 221, 219, 218, 217, 213, 216, 215, 211, 217, 214, 209, 217, 214, 209, 218, 217, 215, 212, 211, 209, 205, 204, 202, 204, 203, 201, 207, 206, 204, 208, 207, 205, 204, 203, 201, 200, 199, 197, 198, 197, 195, 200, 199, 197, 203, 202, 200, 205, 204, 202, 205, 204, 202, 204, 203, 201, 203, 202, 200, 202, 201, 197, 202, 199, 194, 202, 199, 192, 203, 198, 192, 203, 198, 192, 202, 197, 191, 201, 196, 190, 200, 195, 189, 200, 195, 189, 202, 195, 189, 201, 194, 188, 201, 194, 188, 199, 192, 186, 196, 189, 183, 193, 186, 180, 192, 183, 178, 190, 181, 176, 177, 170, 164, 175, 168, 162, 174, 165, 160, 173, 164, 159, 174, 165, 160, 173, 164, 159, 171, 162, 155, 169, 160, 153, 165, 154, 148, 164, 153, 147, 163, 153, 144, 163, 153, 144, 165, 155, 146, 164, 154, 145, 161, 151, 142, 159, 149, 140, 156, 143, 137, 155, 142, 136, 154, 141, 135, 156, 143, 137, 159, 146, 140, 160, 147, 141, 160, 147, 141, 158, 145, 139, 159, 146, 140, 154, 141, 135, 149, 136, 130, 149, 136, 130, 151, 138, 132, 152, 139, 133, 149, 136, 130, 145, 132, 126, 153, 142, 136, 157, 148, 141, 164, 153, 147, 166, 157, 150, 164, 153, 147, 155, 146, 139, 146, 135, 129, 138, 129, 122, 160, 149, 143, 160, 151, 144, 164, 153, 147, 165, 156, 149, 168, 157, 151, 168, 159, 152, 170, 159, 153, 170, 159, 153, 176, 163, 157, 176, 163, 157, 177, 164, 158, 178, 165, 159, 179, 166, 160, 180, 167, 161, 179, 168, 164, 180, 169, 165, 188, 177, 173, 191, 180, 176, 195, 186, 181, 198, 189, 184, 201, 191, 189, 204, 194, 192, 209, 199, 197, 212, 204, 201, 215, 210, 206, 215, 212, 207, 217, 214, 209, 219, 216, 211, 221, 217, 214, 222, 218, 215, 220, 219, 215, 220, 219, 215, 226, 225, 221, 227, 226, 222, 227, 226, 224, 228, 227, 225, 228, 228, 226, 229, 229, 227, 229, 229, 227, 230, 230, 228, 227, 229, 226, 227, 229, 226, 227, 229, 226, 226, 228, 225, 226, 228, 225, 225, 227, 224, 225, 227, 226, 225, 227, 226, 228, 230, 229, 224, 226, 225, 218, 219, 221, 211, 212, 214, 207, 208, 210, 204, 205, 207, 204, 205, 207, 204, 206, 205, 203, 203, 203, 200, 200, 198, 197, 197, 195, 195, 195, 193, 192, 192, 190, 188, 188, 186, 183, 182, 180, 179, 178, 176, 183, 182, 180, 184, 183, 181, 187, 183, 182, 188, 184, 183, 187, 183, 182, 185, 181, 180, 183, 179, 178, 181, 177, 176, 179, 175, 174, 179, 175, 174, 179, 175, 174, 179, 175, 174, 179, 175, 174, 179, 175, 174, 179, 175, 174, 179, 175, 174, 182, 178, 179, 182, 180, 181, 186, 182, 183, 187, 185, 186, 190, 188, 189, 191, 191, 191, 192, 190, 193, 192, 192, 194, 198, 199, 201, 196, 200, 203, 196, 200, 203, 197, 201, 204, 201, 205, 208, 205, 209, 212, 208, 213, 217, 211, 216, 220, 217, 222, 226, 221, 226, 230, 224, 231, 237, 226, 233, 239, 226, 233, 239, 226, 233, 239, 227, 234, 240, 228, 235, 241, 233, 236, 241, 232, 235, 240, 231, 234, 239, 230, 233, 238, 232, 235, 240, 234, 237, 242, 237, 240, 245, 239, 242, 247, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 237, 240, 245, 238, 241, 246, 239, 242, 247, 240, 243, 248, 241, 244, 249, 242, 245, 250, 243, 246, 251, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 249, 250, 254, 249, 250, 254, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 236, 239, 244, 234, 237, 242, 231, 234, 239, 230, 233, 238, 228, 229, 234, 222, 223, 228, 213, 214, 218, 206, 207, 211, 203, 203, 205, 200, 200, 200, 198, 197, 195, 196, 195, 193, 196, 192, 189, 196, 192, 189, 195, 191, 188, 192, 188, 185, 189, 184, 181, 184, 179, 176, 180, 174, 174, 177, 171, 171, 186, 178, 176, 188, 180, 178, 185, 177, 175, 175, 167, 165, 163, 155, 153, 158, 150, 148, 161, 156, 153, 168, 163, 160, 172, 167, 164, 178, 173, 170, 184, 179, 176, 184, 179, 176, 180, 176, 173, 177, 173, 170, 177, 173, 170, 178, 174, 171, 190, 182, 180, 189, 181, 179, 189, 181, 179, 189, 181, 179, 190, 182, 180, 192, 184, 182, 194, 186, 184, 195, 187, 185, 194, 186, 184, 190, 182, 180, 186, 178, 176, 186, 178, 176, 188, 180, 178, 189, 181, 179, 186, 178, 176, 182, 174, 172, 187, 182, 178, 184, 179, 175, 180, 175, 171, 178, 173, 169, 177, 172, 168, 174, 169, 165, 167, 162, 158, 161, 156, 152, 170, 165, 161, 173, 168, 164, 176, 171, 167, 174, 169, 165, 168, 163, 159, 164, 159, 155, 163, 158, 154, 163, 158, 154, 158, 150, 147, 162, 154, 151, 168, 160, 157, 171, 163, 160, 170, 162, 159, 166, 158, 155, 159, 151, 148, 155, 147, 144, 148, 140, 137, 161, 153, 150, 170, 162, 159, 166, 158, 155, 157, 149, 146, 152, 144, 141, 150, 142, 139, 149, 141, 138, 134, 125, 120, 146, 137, 130, 153, 146, 138, 157, 150, 142, 164, 157, 151, 168, 161, 155, 151, 146, 140, 130, 125, 119, 136, 131, 127, 145, 140, 136, 144, 141, 136, 132, 129, 124, 129, 126, 121, 143, 140, 135, 163, 160, 155, 176, 172, 169, 167, 166, 164, 162, 160, 161, 169, 167, 168, 189, 187, 188, 203, 203, 203, 203, 203, 203, 195, 195, 195, 190, 190, 190, 203, 203, 203, 208, 208, 208, 204, 206, 205, 192, 194, 193, 186, 188, 187, 190, 192, 191, 195, 197, 196, 195, 197, 194, 190, 190, 188, 182, 183, 178, 179, 180, 175, 191, 192, 187, 211, 211, 209, 226, 226, 224, 227, 229, 226, 223, 225, 222, 220, 222, 221, 224, 226, 225, 227, 229, 228, 226, 228, 227, 221, 225, 224, 224, 228, 227, 232, 236, 235, 240, 244, 243, 241, 243, 242, 241, 243, 242, 242, 244, 243, 244, 246, 245, 245, 247, 246, 246, 248, 247, 247, 249, 248, 247, 249, 248, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 249, 249, 249, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 247, 247, 247, 247, 247, 247, 246, 246, 246, 246, 246, 246, 246, 246, 246, 245, 245, 245, 245, 245, 243, 245, 245, 243, 242, 241, 239, 242, 241, 239, 244, 240, 239, 244, 238, 238, 245, 237, 235, 245, 237, 235, 245, 235, 234, 245, 235, 234, 243, 231, 231, 243, 231, 231, 243, 231, 231, 243, 231, 231, 242, 230, 230, 242, 230, 230, 242, 230, 230, 241, 229, 229, 243, 229, 229, 242, 228, 228, 241, 227, 227, 240, 226, 226, 241, 225, 226, 241, 225, 226, 242, 226, 227, 242, 226, 227, 243, 229, 229, 243, 229, 229, 243, 229, 229, 243, 229, 229, 244, 228, 229, 244, 228, 229, 244, 228, 229, 244, 228, 229, 245, 229, 230, 245, 229, 230, 247, 228, 230, 246, 227, 229, 246, 227, 229, 245, 226, 228, 245, 226, 228, 246, 226, 228, 247, 225, 227, 247, 225, 227, 247, 225, 227, 246, 226, 227, 245, 225, 226, 245, 225, 226, 244, 224, 225, 244, 224, 225, 244, 222, 224, 246, 221, 224, 245, 220, 223, 245, 219, 222, 246, 217, 221, 245, 216, 220, 245, 214, 219, 244, 215, 219, 238, 218, 217, 239, 219, 218, 242, 218, 218, 244, 218, 219, 248, 217, 222, 249, 218, 223, 250, 218, 223, 250, 220, 222, 246, 220, 221, 244, 223, 220, 242, 223, 219, 239, 222, 215, 237, 220, 212, 238, 219, 212, 240, 221, 214, 245, 221, 217, 244, 212, 215, 246, 214, 219, 243, 217, 220, 242, 216, 217, 248, 216, 217, 255, 215, 215, 255, 206, 209, 255, 200, 200, 244, 183, 182, 247, 194, 190, 247, 208, 201, 246, 221, 214, 243, 230, 224, 241, 236, 232, 243, 239, 240, 242, 240, 243, 243, 243, 243, 244, 244, 242, 246, 246, 244, 247, 247, 245, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 246, 246, 246, 247, 247, 247, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 248, 248, 248, 249, 249, 249, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 250, 252, 251, 250, 252, 251, 249, 251, 250, 247, 249, 248, 245, 247, 246, 244, 246, 245, 243, 245, 244, 242, 244, 243, 242, 242, 240, 241, 241, 239, 238, 240, 239, 236, 238, 237, 233, 234, 236, 231, 232, 234, 228, 232, 233, 227, 231, 232, 219, 220, 222, 223, 224, 226, 230, 230, 230, 233, 233, 231, 234, 233, 231, 229, 228, 224, 225, 221, 218, 220, 216, 213, 208, 207, 203, 206, 205, 203, 202, 201, 199, 198, 197, 195, 196, 195, 193, 198, 197, 195, 202, 201, 199, 206, 205, 203, 198, 197, 195, 196, 195, 193, 196, 195, 193, 197, 196, 194, 201, 200, 198, 208, 207, 205, 215, 214, 212, 219, 218, 214, 205, 202, 197, 203, 200, 193, 200, 195, 189, 197, 192, 186, 195, 190, 184, 195, 190, 184, 196, 191, 185, 197, 192, 186, 194, 187, 181, 193, 186, 180, 193, 186, 180, 191, 184, 178, 189, 182, 176, 186, 179, 173, 184, 175, 170, 183, 174, 169, 190, 183, 177, 188, 181, 175, 187, 178, 173, 186, 177, 172, 187, 178, 173, 187, 178, 173, 184, 175, 168, 182, 173, 166, 180, 169, 163, 177, 166, 160, 174, 164, 155, 172, 162, 153, 171, 161, 152, 167, 157, 148, 162, 152, 143, 158, 148, 139, 159, 146, 140, 157, 144, 138, 156, 143, 137, 157, 144, 138, 159, 146, 140, 160, 147, 141, 159, 146, 140, 157, 144, 138, 149, 136, 130, 147, 134, 128, 145, 132, 126, 146, 133, 127, 149, 136, 130, 152, 139, 133, 152, 139, 133, 150, 139, 133, 155, 146, 139, 160, 151, 144, 167, 158, 151, 173, 164, 157, 174, 165, 158, 170, 161, 154, 164, 155, 148, 160, 151, 144, 158, 149, 142, 159, 150, 143, 161, 152, 145, 163, 154, 147, 166, 157, 150, 169, 160, 153, 170, 161, 154, 171, 162, 155, 180, 169, 163, 183, 170, 164, 184, 171, 165, 185, 172, 166, 186, 173, 167, 185, 174, 168, 186, 175, 171, 187, 176, 172, 189, 178, 174, 192, 183, 178, 196, 187, 182, 199, 190, 185, 202, 192, 190, 205, 195, 193, 210, 200, 198, 212, 204, 201, 215, 210, 206, 216, 213, 208, 218, 215, 210, 220, 217, 212, 222, 218, 215, 222, 218, 215, 221, 220, 216, 221, 220, 216, 226, 225, 221, 226, 225, 221, 227, 226, 224, 228, 227, 225, 227, 227, 225, 228, 228, 226, 229, 229, 227, 229, 229, 227, 227, 229, 226, 227, 229, 226, 227, 229, 226, 226, 228, 225, 226, 228, 225, 226, 228, 225, 225, 227, 226, 225, 227, 226, 221, 223, 222, 221, 223, 222, 221, 222, 224, 219, 220, 222, 215, 216, 218, 208, 209, 211, 202, 203, 205, 199, 201, 200, 201, 201, 201, 198, 198, 196, 195, 195, 193, 192, 192, 190, 191, 191, 189, 189, 189, 187, 187, 186, 184, 184, 183, 181, 184, 183, 181, 185, 184, 182, 188, 184, 183, 188, 184, 183, 187, 183, 182, 185, 181, 180, 182, 178, 177, 181, 177, 176, 179, 175, 174, 179, 175, 174, 178, 174, 173, 178, 174, 173, 178, 174, 173, 178, 174, 173, 178, 174, 173, 178, 174, 173, 178, 174, 175, 180, 176, 177, 182, 178, 179, 185, 181, 182, 188, 184, 185, 187, 185, 186, 190, 186, 187, 188, 186, 187, 193, 193, 195, 192, 193, 195, 193, 194, 198, 193, 197, 200, 199, 200, 204, 201, 205, 208, 206, 209, 214, 207, 212, 216, 213, 218, 222, 217, 222, 226, 222, 227, 233, 223, 230, 236, 223, 230, 236, 223, 230, 236, 224, 231, 237, 225, 232, 238, 230, 233, 238, 229, 232, 237, 228, 231, 236, 229, 232, 237, 230, 233, 238, 233, 236, 241, 235, 238, 243, 237, 240, 245, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 237, 240, 245, 238, 241, 246, 238, 241, 246, 240, 243, 248, 241, 244, 249, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 249, 250, 254, 249, 250, 254, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 237, 240, 245, 236, 239, 244, 235, 238, 243, 225, 226, 231, 220, 221, 226, 212, 213, 217, 206, 207, 211, 203, 203, 205, 200, 200, 200, 198, 197, 195, 195, 194, 192, 196, 192, 189, 194, 190, 187, 191, 187, 184, 188, 184, 181, 186, 180, 180, 184, 178, 178, 182, 176, 176, 182, 176, 176, 187, 179, 177, 186, 178, 176, 183, 175, 173, 177, 169, 167, 171, 163, 161, 170, 162, 160, 170, 165, 162, 174, 169, 166, 185, 180, 177, 184, 179, 176, 183, 178, 175, 181, 176, 173, 180, 176, 173, 180, 176, 173, 180, 176, 173, 181, 177, 174, 194, 186, 183, 193, 185, 182, 192, 184, 181, 191, 183, 180, 191, 183, 180, 191, 183, 180, 192, 184, 181, 193, 185, 182, 188, 180, 177, 189, 181, 178, 190, 182, 179, 191, 183, 180, 190, 182, 179, 188, 180, 177, 185, 177, 174, 183, 175, 172, 177, 172, 168, 173, 168, 164, 169, 164, 160, 168, 163, 159, 171, 166, 162, 175, 170, 166, 177, 172, 168, 177, 172, 168, 177, 172, 168, 178, 173, 169, 177, 172, 168, 174, 169, 165, 168, 163, 159, 165, 160, 156, 164, 159, 155, 165, 160, 156, 168, 160, 157, 170, 162, 159, 172, 164, 161, 172, 164, 161, 170, 162, 159, 167, 159, 156, 162, 154, 151, 159, 151, 148, 167, 159, 156, 174, 166, 163, 174, 166, 163, 163, 155, 152, 151, 143, 140, 150, 142, 139, 154, 146, 143, 157, 149, 146, 145, 136, 131, 148, 139, 134, 142, 133, 128, 131, 122, 117, 128, 121, 115, 136, 129, 123, 138, 130, 127, 133, 125, 122, 151, 146, 142, 145, 140, 136, 137, 133, 130, 138, 134, 131, 151, 150, 146, 169, 168, 164, 176, 175, 171, 174, 173, 169, 178, 177, 175, 164, 162, 163, 165, 163, 164, 181, 179, 180, 186, 184, 185, 173, 171, 172, 168, 168, 168, 176, 176, 176, 173, 173, 173, 179, 179, 179, 183, 183, 183, 185, 185, 185, 188, 190, 189, 195, 197, 196, 198, 200, 199, 196, 198, 195, 202, 202, 200, 198, 199, 194, 199, 200, 195, 209, 210, 205, 222, 224, 221, 225, 227, 224, 216, 218, 215, 205, 207, 204, 218, 220, 219, 222, 224, 223, 224, 228, 227, 224, 228, 227, 224, 228, 227, 228, 232, 231, 236, 240, 239, 243, 247, 246, 243, 245, 244, 243, 245, 244, 244, 246, 245, 245, 247, 246, 246, 248, 247, 247, 249, 248, 248, 250, 249, 249, 251, 250, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 249, 249, 249, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 247, 247, 247, 247, 247, 247, 247, 247, 247, 246, 246, 246, 246, 246, 244, 246, 246, 244, 245, 245, 243, 245, 245, 243, 243, 242, 240, 243, 242, 240, 244, 240, 237, 244, 239, 236, 245, 237, 235, 245, 235, 234, 245, 233, 233, 244, 232, 232, 245, 233, 233, 245, 233, 233, 247, 233, 233, 247, 233, 233, 246, 232, 232, 245, 231, 231, 243, 229, 229, 243, 229, 229, 244, 228, 229, 243, 227, 228, 242, 226, 227, 241, 225, 226, 240, 224, 225, 240, 224, 225, 241, 225, 226, 242, 226, 227, 243, 227, 228, 243, 227, 228, 243, 227, 228, 243, 227, 228, 245, 226, 228, 245, 226, 228, 245, 226, 228, 245, 226, 228, 245, 226, 228, 245, 226, 228, 246, 226, 228, 245, 225, 227, 245, 225, 227, 245, 225, 227, 244, 224, 226, 244, 224, 226, 245, 223, 225, 247, 222, 225, 247, 222, 225, 244, 222, 224, 244, 222, 224, 244, 222, 224, 243, 221, 223, 243, 221, 223, 245, 220, 223, 245, 220, 223, 245, 219, 222, 247, 218, 222, 246, 217, 221, 246, 215, 220, 246, 214, 219, 245, 214, 219, 243, 217, 218, 243, 217, 218, 247, 217, 219, 249, 217, 220, 253, 217, 221, 253, 217, 221, 253, 218, 222, 250, 220, 222, 246, 220, 221, 242, 223, 219, 238, 223, 218, 236, 223, 215, 238, 224, 215, 239, 225, 214, 243, 226, 216, 245, 226, 219, 253, 233, 234, 247, 227, 229, 240, 220, 221, 241, 215, 214, 251, 216, 214, 255, 215, 211, 255, 211, 210, 255, 207, 204, 235, 170, 166, 249, 192, 185, 251, 213, 204, 244, 220, 210, 236, 226, 216, 239, 236, 227, 240, 241, 235, 238, 239, 234, 245, 245, 243, 246, 246, 244, 247, 247, 245, 248, 248, 246, 249, 249, 247, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 247, 247, 247, 248, 248, 248, 248, 248, 248, 248, 248, 248, 249, 249, 249, 249, 249, 249, 249, 249, 249, 250, 250, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 248, 250, 249, 248, 250, 249, 247, 249, 248, 246, 248, 247, 245, 247, 246, 245, 247, 246, 243, 243, 243, 243, 243, 243, 240, 242, 241, 238, 240, 239, 234, 238, 239, 232, 236, 237, 231, 235, 236, 230, 234, 235, 232, 236, 237, 229, 230, 232, 223, 223, 223, 216, 216, 214, 211, 210, 208, 208, 207, 203, 209, 205, 202, 209, 205, 202, 208, 207, 203, 209, 208, 204, 206, 205, 201, 198, 197, 193, 190, 189, 185, 190, 189, 185, 198, 197, 193, 206, 205, 201, 214, 213, 209, 210, 209, 205, 206, 205, 201, 202, 201, 197, 201, 200, 196, 203, 202, 198, 206, 205, 201, 208, 207, 203, 209, 206, 201, 206, 203, 196, 199, 196, 189, 194, 191, 184, 192, 187, 181, 193, 188, 182, 195, 190, 184, 197, 192, 186, 196, 191, 185, 196, 191, 185, 198, 191, 185, 196, 189, 183, 194, 187, 181, 192, 185, 179, 189, 182, 176, 188, 181, 175, 192, 185, 179, 189, 182, 176, 187, 180, 174, 187, 180, 174, 188, 181, 175, 187, 180, 174, 186, 177, 170, 184, 175, 168, 185, 176, 169, 182, 173, 166, 180, 170, 161, 177, 167, 158, 174, 164, 155, 170, 160, 151, 165, 155, 146, 161, 151, 142, 138, 125, 119, 136, 123, 117, 134, 121, 115, 134, 121, 115, 135, 122, 116, 135, 122, 116, 133, 120, 114, 131, 118, 112, 147, 134, 128, 149, 136, 130, 152, 139, 133, 155, 142, 136, 157, 144, 138, 161, 148, 142, 166, 153, 147, 168, 157, 151, 167, 158, 153, 169, 162, 156, 174, 167, 161, 179, 172, 166, 182, 175, 169, 182, 175, 169, 181, 174, 168, 180, 173, 167, 165, 158, 152, 165, 158, 152, 166, 159, 153, 167, 160, 154, 170, 163, 157, 173, 166, 160, 176, 169, 163, 179, 170, 165, 184, 173, 167, 185, 174, 168, 186, 175, 169, 187, 176, 170, 189, 178, 174, 190, 181, 176, 191, 182, 177, 191, 182, 177, 191, 182, 177, 194, 185, 180, 198, 188, 186, 201, 193, 190, 203, 195, 192, 206, 198, 195, 210, 202, 199, 214, 206, 203, 216, 211, 207, 216, 213, 208, 219, 216, 211, 221, 218, 213, 222, 218, 215, 223, 219, 216, 222, 221, 217, 221, 220, 216, 225, 224, 220, 226, 225, 221, 226, 225, 223, 227, 226, 224, 227, 227, 225, 227, 227, 225, 228, 228, 226, 228, 228, 226, 227, 229, 226, 227, 229, 226, 227, 229, 226, 227, 229, 226, 226, 228, 225, 226, 228, 225, 226, 228, 227, 225, 227, 226, 221, 223, 222, 221, 223, 222, 222, 223, 225, 220, 221, 223, 216, 217, 219, 211, 212, 214, 205, 206, 208, 201, 203, 202, 201, 201, 201, 197, 197, 195, 192, 192, 190, 190, 190, 188, 190, 190, 188, 190, 190, 188, 189, 189, 187, 188, 188, 186, 186, 185, 183, 186, 185, 183, 186, 185, 183, 186, 185, 183, 186, 182, 181, 184, 180, 179, 182, 178, 177, 180, 176, 175, 179, 173, 173, 179, 173, 173, 179, 173, 173, 178, 172, 172, 178, 172, 172, 178, 172, 172, 177, 171, 171, 177, 171, 171, 174, 168, 168, 176, 170, 170, 178, 172, 172, 181, 175, 175, 183, 177, 177, 183, 179, 178, 185, 179, 179, 184, 180, 179, 187, 185, 186, 186, 186, 186, 187, 187, 189, 189, 190, 192, 194, 194, 196, 198, 199, 201, 203, 204, 208, 204, 208, 211, 209, 212, 217, 212, 217, 221, 217, 222, 228, 220, 225, 231, 218, 225, 231, 219, 226, 232, 220, 227, 235, 221, 228, 234, 226, 229, 234, 226, 229, 234, 226, 229, 234, 227, 230, 235, 229, 232, 237, 231, 234, 239, 234, 237, 242, 235, 238, 243, 240, 243, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 238, 241, 246, 239, 242, 247, 241, 244, 249, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 249, 250, 254, 249, 250, 254, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 239, 242, 247, 240, 243, 248, 240, 243, 248, 239, 242, 247, 238, 241, 246, 236, 239, 244, 234, 237, 242, 233, 236, 241, 225, 226, 231, 221, 222, 227, 214, 215, 219, 209, 210, 214, 206, 206, 208, 203, 203, 205, 200, 198, 199, 197, 196, 194, 196, 192, 191, 193, 189, 186, 189, 185, 182, 185, 181, 178, 184, 178, 178, 184, 178, 178, 185, 179, 179, 186, 180, 180, 188, 180, 178, 185, 177, 175, 181, 173, 171, 178, 170, 168, 179, 171, 169, 180, 172, 170, 178, 173, 170, 178, 173, 170, 185, 180, 177, 180, 175, 172, 175, 170, 167, 174, 169, 166, 175, 171, 168, 179, 175, 172, 181, 177, 174, 182, 178, 175, 194, 186, 183, 193, 185, 182, 191, 183, 180, 188, 180, 177, 187, 179, 176, 186, 178, 175, 186, 178, 175, 186, 178, 175, 185, 177, 174, 187, 179, 176, 189, 181, 178, 188, 180, 177, 186, 178, 175, 184, 176, 173, 184, 176, 173, 186, 178, 175, 172, 167, 163, 170, 165, 161, 167, 162, 158, 167, 162, 158, 169, 164, 160, 173, 168, 164, 176, 171, 167, 178, 173, 169, 177, 172, 168, 177, 172, 168, 176, 171, 167, 175, 170, 166, 175, 170, 166, 176, 171, 167, 178, 173, 169, 179, 174, 170, 183, 175, 172, 181, 173, 170, 177, 169, 166, 175, 167, 164, 173, 165, 162, 174, 166, 163, 176, 168, 165, 177, 169, 166, 180, 172, 169, 173, 165, 162, 160, 152, 149, 150, 142, 139, 151, 143, 140, 160, 152, 149, 166, 158, 155, 165, 157, 154, 166, 157, 152, 161, 152, 147, 149, 140, 135, 140, 131, 126, 145, 136, 131, 161, 154, 148, 176, 168, 165, 181, 173, 170, 148, 143, 139, 147, 142, 138, 150, 146, 143, 166, 162, 159, 183, 182, 178, 191, 190, 186, 181, 180, 176, 166, 165, 163, 174, 172, 173, 168, 166, 167, 169, 167, 168, 173, 171, 172, 168, 166, 167, 159, 157, 158, 162, 162, 162, 176, 176, 176, 187, 187, 187, 191, 191, 191, 197, 197, 197, 204, 204, 204, 210, 212, 211, 212, 214, 213, 208, 210, 209, 203, 205, 202, 199, 199, 197, 206, 207, 202, 214, 215, 210, 219, 220, 215, 219, 221, 218, 217, 219, 216, 217, 219, 216, 217, 219, 216, 220, 222, 221, 223, 225, 224, 225, 229, 228, 226, 230, 229, 228, 232, 231, 231, 235, 234, 237, 241, 240, 242, 246, 245, 244, 246, 245, 244, 246, 245, 245, 247, 246, 246, 248, 247, 248, 250, 249, 249, 251, 250, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 249, 249, 249, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 247, 247, 247, 247, 247, 247, 247, 247, 247, 246, 246, 244, 246, 246, 244, 246, 246, 244, 245, 245, 243, 244, 243, 241, 245, 241, 240, 245, 240, 237, 245, 237, 235, 245, 235, 234, 243, 233, 232, 243, 231, 231, 242, 230, 230, 245, 233, 233, 246, 234, 234, 249, 235, 235, 249, 235, 235, 248, 234, 234, 245, 231, 231, 243, 229, 229, 242, 228, 228, 243, 227, 228, 242, 226, 227, 241, 225, 226, 240, 224, 225, 239, 223, 224, 240, 224, 225, 240, 224, 225, 241, 225, 226, 242, 226, 227, 242, 226, 227, 242, 226, 227, 242, 226, 227, 244, 225, 227, 244, 225, 227, 244, 225, 227, 244, 225, 227, 243, 224, 226, 243, 224, 226, 244, 224, 226, 244, 224, 226, 243, 223, 225, 243, 223, 225, 242, 222, 224, 243, 221, 224, 245, 220, 223, 245, 220, 223, 245, 220, 223, 244, 219, 222, 244, 219, 222, 241, 219, 221, 243, 218, 221, 243, 218, 221, 244, 219, 222, 245, 219, 222, 246, 217, 221, 246, 217, 221, 246, 215, 220, 245, 214, 219, 246, 214, 219, 246, 214, 219, 246, 216, 218, 247, 217, 219, 250, 215, 219, 252, 216, 220, 255, 216, 221, 255, 217, 222, 253, 218, 222, 251, 221, 223, 245, 221, 219, 242, 223, 217, 240, 225, 218, 241, 227, 218, 243, 226, 216, 242, 224, 212, 241, 219, 208, 238, 215, 207, 244, 223, 222, 237, 216, 215, 236, 211, 207, 243, 210, 203, 253, 209, 200, 255, 200, 191, 255, 190, 181, 254, 184, 176, 232, 165, 157, 251, 194, 187, 255, 218, 209, 244, 222, 211, 235, 225, 215, 240, 238, 226, 243, 243, 233, 237, 238, 232, 246, 247, 242, 247, 247, 245, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 248, 248, 246, 247, 247, 245, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 249, 249, 249, 249, 249, 249, 249, 249, 249, 250, 250, 250, 250, 250, 250, 250, 250, 250, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 244, 244, 244, 244, 244, 244, 241, 243, 242, 240, 242, 241, 236, 240, 241, 234, 238, 239, 233, 237, 238, 232, 236, 237, 229, 233, 234, 222, 226, 227, 213, 215, 214, 205, 205, 205, 203, 202, 200, 206, 205, 203, 214, 210, 207, 218, 214, 211, 217, 216, 212, 217, 216, 212, 213, 212, 208, 206, 205, 201, 198, 197, 193, 194, 193, 189, 196, 195, 191, 199, 198, 194, 201, 200, 196, 203, 202, 198, 205, 204, 200, 207, 206, 202, 208, 207, 203, 207, 206, 202, 205, 204, 200, 204, 203, 198, 209, 206, 199, 207, 204, 197, 203, 200, 193, 200, 197, 190, 199, 194, 188, 199, 194, 188, 200, 195, 189, 201, 196, 190, 203, 198, 192, 203, 198, 192, 205, 198, 192, 204, 197, 191, 202, 195, 189, 200, 193, 187, 198, 191, 185, 196, 189, 183, 189, 182, 176, 186, 179, 173, 184, 177, 171, 184, 177, 171, 185, 178, 172, 184, 177, 171, 183, 174, 167, 181, 172, 165, 180, 171, 164, 177, 168, 161, 176, 166, 157, 175, 165, 156, 174, 164, 155, 172, 162, 153, 168, 158, 149, 164, 154, 145, 148, 135, 129, 146, 133, 127, 143, 130, 124, 142, 129, 123, 143, 130, 124, 142, 129, 123, 139, 126, 120, 137, 124, 118, 148, 135, 129, 153, 140, 134, 159, 146, 140, 161, 148, 142, 162, 149, 143, 166, 153, 147, 173, 160, 154, 178, 167, 161, 177, 168, 163, 177, 170, 164, 179, 172, 166, 181, 174, 168, 183, 176, 170, 184, 177, 171, 185, 178, 172, 186, 179, 173, 181, 174, 168, 180, 173, 167, 179, 172, 166, 179, 172, 166, 180, 173, 167, 182, 175, 169, 185, 178, 172, 188, 179, 174, 182, 173, 166, 184, 173, 167, 185, 174, 168, 186, 177, 170, 188, 179, 174, 190, 181, 176, 191, 182, 177, 192, 183, 178, 194, 185, 180, 196, 189, 183, 201, 193, 190, 203, 195, 192, 205, 197, 194, 208, 200, 197, 212, 204, 201, 214, 209, 205, 216, 213, 208, 218, 215, 210, 220, 217, 212, 222, 219, 214, 224, 220, 217, 224, 220, 217, 223, 222, 218, 223, 222, 218, 225, 224, 220, 225, 224, 220, 226, 225, 223, 227, 226, 224, 226, 226, 224, 227, 227, 225, 228, 228, 226, 228, 228, 226, 228, 230, 227, 228, 230, 227, 227, 229, 226, 227, 229, 226, 227, 229, 226, 226, 228, 225, 226, 228, 227, 226, 228, 227, 228, 230, 229, 225, 227, 226, 220, 221, 223, 215, 216, 218, 211, 212, 214, 210, 211, 213, 211, 212, 214, 212, 214, 213, 206, 206, 206, 201, 201, 199, 194, 194, 192, 190, 190, 188, 190, 190, 188, 191, 191, 189, 191, 191, 189, 190, 190, 188, 188, 187, 185, 188, 187, 185, 187, 186, 184, 185, 184, 182, 185, 181, 180, 183, 179, 178, 181, 177, 176, 180, 176, 175, 178, 172, 172, 178, 172, 172, 177, 171, 171, 177, 171, 171, 176, 170, 170, 176, 170, 170, 175, 169, 169, 175, 169, 169, 172, 166, 166, 173, 167, 167, 176, 170, 170, 178, 172, 172, 180, 174, 174, 181, 175, 175, 183, 174, 175, 181, 175, 175, 184, 180, 179, 182, 180, 181, 183, 181, 184, 185, 185, 187, 190, 190, 192, 195, 195, 197, 200, 199, 204, 202, 203, 207, 206, 207, 212, 209, 212, 217, 214, 217, 224, 216, 221, 227, 217, 222, 228, 215, 222, 228, 216, 223, 231, 220, 225, 231, 222, 225, 232, 223, 226, 231, 224, 227, 232, 227, 230, 235, 229, 232, 237, 232, 235, 240, 234, 237, 242, 235, 238, 243, 238, 241, 246, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 237, 240, 245, 238, 241, 246, 239, 242, 247, 240, 243, 248, 241, 244, 249, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 249, 250, 254, 249, 250, 254, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 239, 242, 247, 238, 241, 246, 235, 238, 243, 231, 234, 239, 228, 231, 236, 227, 230, 235, 224, 225, 230, 219, 220, 225, 214, 215, 219, 209, 210, 214, 207, 207, 209, 204, 204, 206, 200, 198, 199, 197, 196, 194, 196, 192, 191, 193, 189, 188, 188, 184, 183, 184, 180, 179, 183, 177, 177, 184, 178, 178, 187, 181, 181, 189, 183, 183, 188, 180, 178, 184, 176, 174, 180, 172, 170, 179, 171, 169, 181, 173, 171, 183, 175, 173, 180, 175, 172, 178, 173, 170, 179, 174, 171, 175, 170, 167, 172, 167, 164, 172, 167, 164, 175, 171, 168, 181, 177, 174, 184, 180, 177, 186, 182, 179, 189, 181, 178, 188, 181, 175, 185, 178, 172, 183, 176, 170, 181, 174, 168, 179, 172, 166, 179, 172, 166, 179, 172, 166, 185, 178, 172, 185, 178, 172, 183, 176, 170, 179, 172, 166, 176, 169, 163, 177, 170, 164, 180, 173, 167, 184, 177, 171, 172, 167, 163, 172, 167, 163, 173, 168, 164, 172, 167, 163, 170, 165, 161, 169, 164, 160, 168, 163, 159, 169, 164, 160, 175, 170, 166, 174, 169, 165, 174, 169, 165, 175, 170, 166, 178, 173, 169, 181, 176, 172, 184, 179, 175, 185, 180, 176, 175, 167, 164, 176, 168, 165, 176, 168, 165, 177, 169, 166, 177, 169, 166, 177, 169, 166, 177, 169, 166, 177, 169, 166, 159, 151, 148, 162, 154, 151, 163, 155, 152, 163, 155, 152, 166, 158, 155, 167, 159, 156, 160, 152, 149, 150, 142, 139, 137, 127, 125, 139, 128, 126, 142, 131, 129, 148, 138, 136, 157, 147, 145, 160, 150, 148, 150, 142, 140, 139, 131, 129, 149, 144, 141, 167, 162, 159, 185, 181, 180, 190, 186, 185, 179, 178, 176, 169, 168, 166, 169, 169, 167, 177, 176, 174, 185, 183, 184, 187, 183, 184, 185, 181, 182, 184, 180, 181, 188, 186, 187, 197, 195, 196, 202, 200, 201, 202, 200, 201, 208, 206, 207, 199, 197, 198, 188, 188, 188, 185, 185, 185, 190, 190, 190, 199, 199, 199, 209, 209, 209, 217, 217, 215, 209, 209, 207, 212, 213, 208, 214, 216, 211, 213, 215, 210, 211, 213, 210, 212, 214, 211, 218, 220, 217, 224, 226, 223, 223, 227, 226, 225, 229, 228, 227, 231, 230, 229, 233, 232, 230, 234, 233, 233, 237, 236, 235, 241, 239, 239, 243, 242, 245, 247, 246, 245, 247, 246, 246, 248, 247, 247, 249, 248, 249, 251, 250, 250, 252, 251, 251, 253, 252, 251, 253, 252, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 249, 249, 249, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 247, 249, 248, 247, 249, 248, 247, 249, 246, 246, 248, 245, 246, 248, 245, 245, 247, 244, 246, 246, 244, 246, 246, 244, 245, 244, 240, 246, 242, 239, 245, 240, 237, 245, 237, 235, 243, 233, 232, 242, 230, 230, 242, 228, 227, 242, 228, 227, 245, 231, 230, 246, 232, 231, 248, 234, 233, 249, 235, 234, 248, 234, 233, 245, 231, 230, 244, 228, 228, 242, 226, 226, 242, 226, 226, 241, 225, 225, 242, 224, 224, 241, 223, 223, 240, 222, 222, 241, 223, 223, 241, 223, 223, 242, 224, 224, 242, 224, 224, 242, 224, 224, 242, 224, 224, 242, 224, 224, 243, 223, 224, 243, 223, 224, 243, 223, 224, 243, 223, 224, 243, 223, 224, 243, 223, 224, 244, 222, 224, 243, 221, 223, 243, 221, 223, 243, 221, 223, 242, 220, 222, 242, 220, 222, 243, 218, 221, 244, 218, 221, 244, 218, 221, 244, 218, 221, 243, 217, 220, 242, 217, 220, 243, 217, 220, 242, 216, 219, 243, 217, 220, 243, 217, 220, 245, 216, 220, 246, 215, 220, 246, 214, 219, 246, 214, 219, 248, 213, 219, 248, 213, 219, 247, 215, 218, 249, 214, 218, 251, 215, 219, 254, 215, 220, 254, 215, 220, 253, 217, 221, 251, 219, 222, 247, 221, 222, 247, 226, 223, 242, 225, 218, 239, 222, 215, 240, 221, 214, 245, 220, 213, 248, 218, 210, 249, 212, 206, 247, 208, 203, 253, 218, 214, 253, 216, 210, 255, 216, 205, 255, 219, 205, 255, 209, 191, 255, 185, 167, 236, 160, 144, 222, 149, 134, 236, 170, 158, 252, 200, 189, 255, 222, 214, 248, 225, 217, 238, 228, 219, 244, 240, 231, 247, 244, 237, 240, 239, 234, 248, 247, 243, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 248, 248, 246, 247, 247, 245, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 249, 249, 249, 249, 249, 249, 249, 249, 249, 250, 250, 250, 250, 250, 250, 250, 250, 250, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 242, 244, 243, 242, 244, 243, 240, 241, 243, 239, 240, 242, 236, 240, 241, 234, 238, 239, 233, 237, 240, 233, 237, 240, 225, 229, 230, 224, 228, 229, 225, 227, 226, 221, 223, 222, 217, 217, 215, 211, 211, 209, 207, 206, 202, 203, 202, 198, 214, 211, 206, 212, 209, 204, 210, 207, 202, 210, 207, 202, 211, 208, 203, 207, 204, 199, 201, 198, 193, 195, 192, 187, 198, 195, 190, 199, 196, 191, 201, 198, 193, 201, 198, 193, 200, 197, 192, 198, 195, 190, 195, 192, 187, 194, 191, 186, 201, 198, 191, 202, 199, 192, 204, 201, 194, 206, 203, 196, 206, 203, 196, 205, 202, 195, 204, 199, 193, 202, 197, 191, 200, 195, 189, 200, 195, 189, 200, 195, 189, 199, 194, 188, 200, 193, 187, 198, 191, 185, 196, 189, 183, 195, 188, 182, 195, 188, 182, 193, 186, 180, 191, 184, 178, 190, 183, 177, 191, 184, 178, 191, 184, 178, 189, 180, 173, 187, 178, 171, 182, 173, 166, 180, 171, 164, 177, 168, 159, 176, 167, 158, 177, 167, 158, 174, 164, 155, 170, 160, 151, 167, 157, 148, 170, 157, 151, 167, 154, 148, 164, 151, 145, 163, 150, 144, 163, 150, 144, 162, 149, 143, 159, 146, 140, 157, 144, 138, 149, 136, 130, 154, 141, 135, 158, 145, 139, 160, 147, 141, 160, 147, 141, 162, 149, 143, 169, 156, 150, 173, 162, 156, 176, 167, 162, 176, 167, 162, 176, 167, 162, 177, 168, 163, 180, 171, 166, 182, 173, 168, 185, 176, 171, 187, 178, 173, 193, 184, 179, 192, 183, 178, 190, 181, 176, 189, 180, 175, 188, 179, 174, 188, 179, 174, 189, 180, 175, 189, 180, 175, 183, 174, 167, 184, 175, 168, 185, 176, 171, 187, 178, 173, 189, 180, 175, 191, 184, 178, 192, 185, 179, 193, 186, 180, 197, 189, 186, 198, 193, 189, 202, 197, 193, 205, 200, 196, 206, 201, 197, 209, 204, 200, 213, 208, 205, 216, 211, 208, 218, 215, 210, 219, 216, 211, 221, 218, 213, 223, 220, 215, 225, 221, 218, 226, 222, 219, 224, 223, 219, 224, 223, 219, 225, 224, 220, 226, 225, 221, 226, 225, 223, 227, 226, 224, 227, 227, 225, 228, 228, 226, 228, 228, 226, 229, 229, 227, 228, 230, 227, 228, 230, 227, 228, 230, 227, 227, 229, 226, 227, 229, 226, 227, 229, 226, 226, 228, 227, 226, 228, 227, 229, 231, 230, 226, 228, 227, 221, 222, 224, 216, 217, 219, 214, 215, 217, 214, 215, 217, 215, 216, 218, 216, 218, 217, 212, 214, 213, 206, 208, 205, 199, 201, 198, 194, 196, 193, 192, 192, 190, 192, 192, 190, 191, 191, 189, 190, 190, 188, 191, 190, 188, 190, 189, 187, 187, 186, 184, 184, 183, 181, 181, 180, 178, 179, 178, 176, 178, 177, 175, 179, 175, 174, 177, 171, 171, 177, 171, 171, 176, 170, 170, 175, 169, 169, 174, 168, 168, 174, 168, 168, 175, 167, 165, 174, 166, 164, 174, 166, 164, 175, 167, 165, 177, 169, 167, 179, 171, 169, 181, 173, 171, 181, 173, 171, 182, 172, 171, 181, 173, 171, 181, 177, 176, 182, 178, 177, 183, 179, 180, 183, 181, 182, 187, 185, 188, 192, 192, 194, 196, 195, 200, 198, 199, 203, 202, 203, 208, 204, 207, 212, 209, 212, 219, 212, 217, 223, 213, 217, 226, 214, 218, 227, 215, 219, 228, 217, 222, 228, 219, 222, 229, 221, 224, 229, 223, 226, 231, 227, 230, 235, 230, 233, 238, 233, 236, 241, 234, 237, 242, 235, 238, 243, 236, 239, 244, 236, 239, 244, 236, 239, 244, 236, 239, 244, 235, 238, 243, 235, 238, 243, 235, 238, 243, 234, 237, 242, 236, 239, 244, 237, 240, 245, 237, 240, 245, 239, 242, 247, 240, 243, 248, 241, 244, 249, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 249, 250, 254, 249, 250, 254, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 238, 241, 246, 236, 239, 244, 233, 236, 241, 229, 232, 237, 225, 228, 233, 223, 226, 231, 223, 224, 229, 219, 220, 225, 214, 215, 220, 211, 212, 216, 209, 209, 211, 205, 205, 207, 201, 199, 200, 197, 195, 196, 197, 193, 192, 194, 190, 189, 190, 186, 185, 186, 182, 181, 185, 179, 179, 185, 179, 179, 187, 181, 181, 188, 182, 182, 185, 177, 175, 183, 175, 173, 180, 172, 170, 179, 171, 169, 180, 172, 170, 180, 172, 170, 177, 172, 169, 175, 170, 167, 174, 169, 166, 175, 170, 167, 176, 171, 168, 178, 173, 170, 180, 176, 173, 184, 180, 177, 187, 183, 180, 189, 186, 181, 186, 178, 175, 185, 178, 172, 182, 175, 169, 179, 172, 166, 177, 170, 164, 176, 169, 163, 175, 168, 162, 175, 168, 162, 183, 176, 170, 179, 172, 166, 174, 167, 161, 170, 163, 157, 168, 161, 155, 170, 163, 157, 172, 165, 159, 174, 167, 161, 159, 154, 150, 164, 159, 155, 171, 166, 162, 174, 169, 165, 175, 170, 166, 175, 170, 166, 175, 170, 166, 176, 171, 167, 176, 171, 167, 174, 169, 165, 173, 168, 164, 174, 169, 165, 177, 172, 168, 178, 173, 169, 177, 172, 168, 176, 171, 167, 166, 158, 155, 171, 163, 160, 179, 171, 168, 184, 176, 173, 185, 177, 174, 181, 173, 170, 175, 167, 164, 171, 163, 160, 160, 152, 149, 173, 165, 162, 183, 175, 172, 179, 171, 168, 169, 161, 158, 163, 155, 152, 160, 152, 149, 158, 150, 147, 175, 164, 162, 164, 153, 151, 152, 141, 139, 149, 138, 136, 152, 142, 140, 154, 144, 142, 149, 141, 139, 143, 135, 133, 180, 175, 172, 181, 177, 174, 185, 181, 180, 183, 182, 180, 177, 176, 174, 174, 173, 171, 183, 183, 181, 196, 196, 194, 203, 199, 200, 193, 189, 190, 179, 175, 176, 176, 172, 173, 189, 187, 188, 201, 199, 200, 192, 190, 191, 174, 172, 173, 180, 178, 179, 171, 169, 170, 163, 163, 163, 165, 165, 165, 172, 172, 172, 184, 184, 184, 202, 202, 202, 218, 218, 216, 223, 223, 221, 215, 216, 211, 206, 208, 203, 205, 207, 202, 211, 213, 210, 217, 219, 216, 219, 221, 218, 218, 220, 217, 225, 229, 228, 226, 230, 229, 228, 232, 231, 231, 235, 234, 233, 237, 236, 236, 240, 239, 236, 242, 240, 236, 242, 240, 245, 247, 246, 245, 247, 246, 246, 248, 247, 247, 249, 248, 249, 251, 250, 250, 252, 251, 251, 253, 252, 251, 253, 252, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 249, 249, 249, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 247, 249, 248, 247, 249, 248, 247, 249, 246, 247, 249, 246, 246, 248, 245, 246, 248, 245, 246, 246, 244, 246, 246, 244, 247, 243, 240, 246, 242, 239, 247, 239, 237, 244, 236, 234, 243, 231, 231, 240, 228, 228, 240, 226, 225, 239, 225, 224, 240, 226, 225, 242, 228, 227, 245, 231, 230, 247, 233, 232, 247, 233, 232, 245, 231, 230, 243, 227, 227, 241, 225, 225, 241, 225, 225, 240, 224, 224, 241, 223, 223, 240, 222, 222, 240, 222, 222, 240, 222, 222, 241, 223, 223, 241, 223, 223, 241, 223, 223, 241, 223, 223, 241, 223, 223, 241, 223, 223, 242, 222, 223, 242, 222, 223, 242, 222, 223, 242, 222, 223, 243, 223, 224, 243, 223, 224, 243, 221, 223, 243, 221, 223, 242, 220, 222, 242, 220, 222, 242, 220, 222, 244, 219, 222, 244, 218, 221, 243, 217, 220, 243, 217, 220, 243, 217, 220, 242, 216, 219, 242, 216, 219, 242, 216, 219, 241, 215, 218, 242, 216, 219, 244, 215, 219, 245, 214, 219, 245, 214, 219, 246, 214, 219, 246, 214, 219, 248, 213, 219, 248, 213, 219, 248, 213, 217, 248, 213, 217, 250, 214, 218, 251, 215, 219, 251, 215, 219, 249, 217, 220, 248, 219, 221, 245, 221, 219, 246, 227, 221, 240, 223, 216, 237, 217, 210, 244, 217, 210, 255, 220, 214, 255, 222, 217, 255, 219, 218, 255, 217, 216, 255, 215, 212, 255, 201, 194, 255, 188, 175, 255, 179, 159, 254, 164, 140, 237, 145, 120, 227, 139, 115, 224, 146, 124, 247, 181, 165, 253, 203, 192, 255, 223, 216, 249, 228, 223, 245, 231, 230, 247, 239, 237, 251, 243, 241, 246, 241, 238, 248, 247, 245, 248, 248, 246, 248, 248, 246, 249, 249, 247, 248, 248, 246, 247, 247, 245, 246, 246, 244, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 247, 247, 247, 248, 248, 248, 248, 248, 248, 248, 248, 248, 249, 249, 249, 249, 249, 249, 249, 249, 249, 250, 250, 250, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 244, 246, 245, 243, 245, 244, 243, 245, 244, 242, 244, 243, 242, 244, 243, 239, 241, 240, 238, 240, 239, 238, 239, 241, 237, 238, 240, 233, 237, 238, 232, 236, 237, 231, 235, 238, 231, 235, 238, 225, 229, 230, 220, 224, 225, 214, 216, 215, 204, 206, 205, 194, 194, 192, 185, 185, 183, 179, 178, 174, 175, 174, 170, 191, 188, 183, 190, 187, 182, 194, 191, 186, 202, 199, 194, 211, 208, 203, 212, 209, 204, 204, 201, 196, 196, 193, 188, 205, 202, 197, 201, 198, 193, 194, 191, 186, 188, 185, 180, 184, 181, 176, 183, 180, 175, 185, 182, 177, 186, 183, 178, 195, 192, 185, 198, 195, 188, 203, 200, 193, 207, 204, 197, 208, 205, 198, 206, 203, 196, 204, 199, 193, 201, 196, 190, 202, 197, 191, 202, 197, 191, 202, 197, 191, 202, 197, 191, 203, 196, 190, 201, 194, 188, 199, 192, 186, 198, 191, 185, 200, 193, 187, 198, 191, 185, 196, 189, 183, 195, 188, 182, 196, 189, 183, 196, 189, 183, 194, 185, 178, 192, 183, 176, 196, 187, 180, 193, 184, 177, 190, 181, 172, 187, 178, 169, 185, 175, 166, 181, 171, 162, 175, 165, 156, 171, 161, 152, 177, 164, 158, 174, 161, 155, 172, 159, 153, 171, 158, 152, 171, 158, 152, 170, 157, 151, 168, 155, 149, 165, 152, 146, 162, 149, 143, 163, 150, 144, 165, 152, 146, 166, 153, 147, 167, 154, 148, 169, 156, 150, 173, 160, 154, 176, 163, 157, 170, 159, 155, 169, 160, 155, 172, 161, 157, 173, 164, 159, 178, 167, 163, 181, 172, 167, 186, 175, 171, 188, 179, 174, 192, 181, 177, 191, 182, 177, 193, 182, 178, 192, 183, 178, 192, 181, 177, 189, 180, 175, 188, 177, 173, 186, 177, 172, 187, 178, 171, 188, 179, 172, 190, 181, 176, 191, 184, 178, 193, 186, 180, 196, 189, 183, 198, 191, 185, 199, 192, 186, 198, 193, 189, 201, 196, 192, 205, 200, 196, 207, 202, 198, 209, 204, 200, 211, 206, 202, 215, 210, 207, 218, 213, 210, 219, 216, 211, 220, 217, 212, 222, 219, 214, 224, 221, 216, 226, 222, 219, 227, 223, 220, 225, 224, 220, 225, 224, 220, 226, 225, 221, 227, 226, 222, 227, 226, 224, 228, 227, 225, 228, 228, 226, 229, 229, 227, 229, 229, 227, 230, 230, 228, 229, 231, 228, 228, 230, 227, 228, 230, 227, 228, 230, 227, 227, 229, 226, 227, 229, 226, 227, 229, 228, 227, 229, 228, 222, 224, 223, 223, 225, 224, 225, 226, 228, 225, 226, 228, 223, 224, 226, 219, 220, 222, 215, 216, 218, 212, 214, 213, 216, 218, 217, 211, 213, 210, 205, 207, 204, 200, 202, 199, 198, 198, 196, 196, 196, 194, 193, 193, 191, 191, 191, 189, 194, 193, 191, 191, 190, 188, 188, 187, 185, 184, 183, 181, 180, 179, 177, 178, 177, 175, 177, 176, 174, 176, 175, 173, 177, 171, 171, 176, 170, 170, 175, 169, 169, 174, 168, 168, 173, 167, 167, 172, 166, 166, 173, 165, 163, 172, 164, 162, 174, 166, 164, 175, 167, 165, 177, 169, 167, 179, 171, 169, 181, 171, 170, 181, 171, 170, 181, 171, 169, 181, 171, 169, 182, 176, 176, 180, 176, 175, 181, 177, 178, 183, 179, 180, 186, 181, 185, 188, 186, 189, 192, 190, 195, 194, 193, 198, 197, 196, 202, 200, 201, 206, 204, 207, 214, 207, 210, 217, 208, 212, 221, 209, 213, 222, 211, 215, 224, 213, 218, 224, 214, 217, 224, 217, 220, 225, 221, 224, 229, 225, 228, 233, 229, 232, 237, 232, 235, 240, 233, 236, 241, 234, 237, 242, 235, 238, 243, 235, 238, 243, 234, 237, 242, 234, 237, 242, 234, 237, 242, 233, 236, 241, 233, 236, 241, 233, 236, 241, 236, 239, 244, 236, 239, 244, 237, 240, 245, 238, 241, 246, 239, 242, 247, 241, 244, 249, 241, 244, 249, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 249, 250, 254, 249, 250, 254, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 238, 241, 246, 238, 241, 246, 237, 240, 245, 236, 239, 244, 233, 236, 241, 230, 233, 238, 228, 231, 236, 226, 229, 234, 228, 228, 236, 225, 226, 231, 221, 222, 227, 218, 219, 223, 216, 216, 218, 212, 212, 214, 208, 206, 207, 204, 202, 203, 198, 194, 193, 196, 192, 191, 193, 189, 188, 189, 185, 184, 187, 181, 181, 186, 180, 180, 186, 180, 180, 187, 181, 181, 183, 175, 173, 182, 174, 172, 181, 173, 171, 178, 170, 168, 175, 167, 165, 173, 165, 163, 170, 165, 162, 170, 165, 162, 170, 165, 162, 177, 172, 169, 184, 179, 176, 186, 181, 178, 184, 180, 177, 182, 178, 175, 184, 180, 177, 186, 183, 178, 187, 179, 176, 185, 178, 172, 183, 176, 170, 181, 174, 168, 179, 172, 166, 178, 171, 165, 177, 170, 164, 177, 170, 164, 178, 171, 165, 173, 166, 160, 166, 159, 153, 164, 157, 151, 165, 158, 152, 165, 158, 152, 162, 155, 149, 159, 152, 146, 156, 151, 147, 163, 158, 154, 171, 166, 162, 175, 170, 166, 176, 171, 167, 177, 172, 168, 180, 175, 171, 182, 177, 173, 177, 172, 168, 175, 170, 166, 174, 169, 165, 177, 172, 168, 180, 175, 171, 179, 174, 170, 175, 170, 166, 171, 166, 162, 173, 165, 162, 175, 167, 164, 179, 171, 168, 181, 173, 170, 181, 173, 170, 178, 170, 167, 175, 167, 164, 172, 164, 161, 178, 170, 167, 183, 175, 172, 181, 173, 170, 168, 160, 157, 158, 150, 147, 159, 151, 148, 168, 160, 157, 174, 166, 163, 169, 157, 157, 153, 141, 141, 134, 122, 122, 125, 113, 113, 128, 118, 117, 143, 133, 132, 162, 154, 152, 177, 169, 167, 192, 186, 186, 176, 172, 171, 167, 163, 162, 173, 172, 170, 185, 183, 184, 186, 186, 186, 185, 185, 185, 185, 185, 185, 178, 174, 175, 168, 164, 165, 161, 157, 158, 168, 164, 165, 179, 175, 176, 183, 179, 180, 176, 172, 173, 168, 164, 165, 185, 183, 184, 185, 183, 184, 190, 188, 189, 197, 195, 196, 196, 196, 196, 192, 192, 192, 197, 197, 197, 207, 207, 205, 205, 207, 204, 203, 205, 200, 202, 204, 199, 208, 210, 205, 218, 220, 217, 225, 227, 224, 228, 230, 227, 227, 229, 226, 223, 227, 226, 224, 228, 227, 227, 231, 230, 231, 235, 234, 235, 241, 239, 239, 245, 243, 240, 246, 244, 239, 245, 243, 245, 247, 246, 245, 247, 246, 246, 248, 247, 247, 249, 248, 248, 250, 249, 249, 251, 250, 250, 252, 251, 251, 253, 252, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 249, 249, 249, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 250, 247, 248, 250, 247, 247, 249, 246, 247, 249, 246, 246, 248, 245, 246, 248, 245, 247, 247, 245, 247, 247, 245, 248, 244, 241, 247, 243, 240, 247, 239, 237, 244, 236, 234, 242, 231, 229, 239, 228, 226, 239, 225, 224, 238, 222, 222, 234, 220, 219, 237, 223, 222, 241, 227, 226, 245, 231, 230, 247, 231, 231, 245, 229, 229, 243, 227, 227, 240, 224, 224, 243, 225, 225, 242, 224, 224, 241, 223, 223, 240, 222, 222, 239, 221, 221, 239, 221, 221, 240, 222, 222, 241, 223, 223, 241, 221, 222, 241, 221, 222, 241, 221, 222, 241, 221, 222, 241, 221, 222, 241, 221, 222, 241, 221, 222, 241, 221, 222, 244, 222, 224, 244, 222, 224, 243, 221, 223, 243, 221, 223, 244, 219, 222, 244, 219, 222, 244, 219, 222, 244, 219, 222, 243, 217, 218, 245, 216, 218, 243, 217, 218, 243, 217, 218, 242, 216, 217, 242, 216, 217, 241, 215, 216, 241, 215, 216, 242, 213, 215, 242, 213, 215, 244, 214, 216, 244, 214, 216, 245, 213, 216, 248, 213, 217, 249, 213, 217, 248, 213, 217, 245, 213, 216, 244, 214, 216, 246, 214, 217, 246, 214, 217, 246, 216, 218, 244, 218, 219, 242, 221, 218, 241, 222, 218, 241, 224, 217, 239, 220, 214, 241, 216, 211, 250, 215, 211, 255, 212, 211, 255, 203, 204, 255, 187, 193, 255, 174, 177, 255, 148, 148, 254, 127, 121, 240, 110, 97, 233, 102, 82, 227, 97, 71, 222, 101, 72, 233, 128, 99, 246, 158, 134, 255, 193, 176, 252, 206, 193, 249, 220, 216, 249, 229, 230, 248, 233, 238, 248, 235, 244, 250, 237, 246, 250, 241, 246, 250, 246, 247, 247, 247, 245, 248, 248, 246, 248, 248, 246, 247, 247, 245, 246, 246, 244, 244, 244, 242, 243, 243, 241, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 246, 246, 246, 247, 247, 247, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 248, 248, 248, 249, 249, 249, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 247, 246, 244, 246, 245, 243, 245, 244, 242, 244, 243, 240, 242, 241, 239, 241, 240, 237, 239, 238, 237, 239, 238, 235, 237, 236, 235, 237, 236, 234, 235, 237, 233, 234, 236, 230, 234, 235, 229, 233, 234, 229, 233, 236, 228, 232, 235, 213, 217, 218, 206, 210, 211, 196, 198, 197, 185, 187, 186, 178, 178, 176, 175, 175, 173, 176, 175, 171, 178, 177, 173, 171, 168, 163, 176, 171, 165, 184, 179, 173, 193, 188, 182, 201, 196, 190, 204, 199, 193, 204, 199, 193, 203, 198, 192, 189, 184, 178, 188, 183, 177, 187, 182, 176, 187, 182, 176, 191, 186, 180, 198, 193, 187, 204, 199, 193, 208, 203, 197, 201, 198, 191, 203, 200, 193, 206, 203, 196, 207, 204, 197, 208, 205, 198, 206, 203, 196, 205, 200, 194, 203, 198, 192, 209, 204, 198, 209, 204, 198, 209, 204, 198, 209, 204, 198, 210, 203, 197, 209, 202, 196, 207, 200, 194, 206, 199, 193, 204, 197, 191, 201, 194, 188, 199, 192, 186, 199, 192, 186, 199, 192, 186, 199, 192, 186, 197, 190, 182, 194, 187, 179, 204, 195, 188, 201, 192, 185, 198, 189, 180, 196, 187, 178, 195, 186, 177, 191, 182, 173, 187, 177, 168, 183, 173, 164, 190, 177, 171, 188, 175, 169, 186, 173, 167, 185, 172, 166, 186, 173, 167, 186, 173, 167, 184, 171, 165, 181, 168, 162, 175, 162, 156, 174, 161, 155, 173, 160, 154, 175, 162, 156, 179, 166, 160, 182, 169, 163, 183, 170, 164, 183, 170, 164, 175, 161, 158, 174, 163, 159, 177, 163, 160, 177, 166, 162, 181, 167, 164, 182, 171, 167, 186, 172, 169, 185, 174, 170, 185, 171, 168, 186, 175, 171, 192, 178, 175, 193, 182, 178, 196, 182, 179, 192, 181, 177, 191, 177, 174, 187, 176, 172, 189, 180, 175, 189, 182, 176, 191, 184, 178, 194, 187, 181, 196, 189, 183, 197, 192, 186, 199, 194, 188, 200, 195, 189, 201, 196, 192, 204, 199, 195, 207, 204, 199, 209, 206, 201, 210, 206, 203, 212, 208, 205, 215, 211, 208, 218, 214, 211, 220, 217, 212, 221, 218, 213, 223, 220, 215, 225, 222, 217, 227, 223, 220, 228, 224, 221, 226, 225, 221, 226, 225, 221, 228, 227, 223, 228, 227, 223, 229, 228, 226, 229, 228, 226, 229, 229, 227, 230, 230, 228, 230, 230, 228, 231, 231, 229, 229, 231, 228, 229, 231, 228, 228, 230, 227, 228, 230, 227, 228, 230, 227, 227, 229, 226, 227, 229, 228, 227, 229, 228, 222, 224, 223, 224, 226, 225, 226, 227, 229, 226, 227, 229, 225, 226, 228, 221, 222, 224, 217, 218, 220, 215, 217, 216, 215, 217, 216, 212, 214, 211, 208, 210, 207, 206, 208, 205, 205, 205, 203, 203, 203, 201, 199, 199, 197, 196, 196, 194, 194, 194, 192, 192, 192, 190, 188, 187, 185, 183, 182, 180, 179, 178, 176, 177, 176, 174, 176, 175, 173, 176, 175, 173, 176, 170, 170, 176, 170, 170, 174, 168, 168, 173, 167, 167, 173, 164, 165, 172, 163, 164, 171, 163, 161, 170, 162, 160, 174, 164, 163, 175, 165, 164, 177, 167, 165, 178, 168, 166, 179, 169, 167, 179, 169, 167, 180, 169, 167, 179, 169, 167, 182, 173, 174, 180, 174, 174, 179, 173, 173, 179, 175, 174, 181, 177, 178, 183, 181, 182, 186, 184, 187, 187, 186, 191, 190, 189, 195, 193, 194, 199, 197, 200, 207, 201, 204, 211, 203, 206, 215, 204, 207, 216, 205, 209, 218, 207, 212, 218, 208, 211, 218, 211, 214, 219, 216, 219, 224, 221, 224, 229, 226, 229, 234, 229, 232, 237, 230, 233, 238, 230, 233, 238, 234, 237, 242, 234, 237, 242, 233, 236, 241, 233, 236, 241, 233, 236, 241, 232, 235, 240, 232, 235, 240, 232, 235, 240, 235, 238, 243, 236, 239, 244, 237, 240, 245, 238, 241, 246, 239, 242, 247, 240, 243, 248, 241, 244, 249, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 249, 250, 254, 249, 250, 254, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 235, 238, 243, 236, 239, 244, 236, 239, 244, 236, 239, 244, 235, 238, 243, 233, 236, 241, 232, 235, 240, 231, 234, 239, 236, 236, 244, 233, 233, 241, 230, 231, 236, 227, 228, 233, 224, 225, 229, 220, 221, 223, 215, 215, 217, 211, 211, 211, 197, 195, 196, 196, 195, 193, 195, 191, 190, 191, 187, 186, 189, 183, 183, 187, 181, 181, 186, 180, 180, 185, 179, 179, 181, 173, 171, 182, 174, 172, 181, 173, 171, 178, 170, 168, 172, 164, 162, 168, 160, 158, 165, 160, 157, 166, 161, 158, 167, 162, 159, 177, 172, 169, 187, 182, 179, 190, 185, 182, 184, 179, 176, 179, 174, 171, 178, 173, 170, 181, 176, 172, 189, 181, 178, 187, 180, 174, 185, 178, 172, 183, 176, 170, 182, 175, 169, 181, 174, 168, 181, 174, 168, 181, 174, 168, 173, 166, 160, 168, 161, 155, 162, 155, 149, 163, 156, 150, 165, 158, 152, 163, 156, 150, 155, 148, 142, 147, 140, 134, 175, 170, 166, 178, 173, 169, 180, 175, 171, 177, 172, 168, 171, 166, 162, 167, 162, 158, 168, 163, 159, 170, 165, 161, 176, 171, 167, 175, 170, 166, 176, 171, 167, 181, 176, 172, 185, 180, 176, 186, 181, 177, 180, 175, 171, 175, 170, 166, 181, 173, 170, 177, 169, 166, 170, 162, 159, 164, 156, 153, 163, 155, 152, 165, 157, 154, 170, 162, 159, 173, 165, 162, 173, 165, 162, 168, 160, 157, 158, 150, 147, 151, 143, 140, 153, 145, 142, 160, 152, 149, 163, 155, 152, 161, 153, 150, 159, 149, 148, 161, 151, 150, 165, 155, 154, 168, 158, 157, 167, 157, 156, 164, 156, 154, 171, 163, 161, 178, 173, 170, 167, 161, 161, 165, 161, 160, 172, 168, 167, 179, 178, 176, 176, 175, 173, 162, 161, 159, 153, 151, 152, 154, 153, 151, 168, 164, 163, 166, 162, 161, 175, 171, 170, 189, 185, 186, 187, 183, 184, 175, 171, 172, 180, 176, 177, 195, 193, 194, 191, 189, 190, 192, 190, 191, 200, 198, 199, 205, 205, 205, 201, 201, 201, 193, 193, 193, 197, 197, 197, 209, 209, 207, 206, 208, 205, 215, 217, 214, 224, 226, 223, 224, 226, 223, 217, 219, 216, 211, 213, 210, 212, 214, 213, 216, 218, 217, 220, 224, 223, 221, 225, 224, 225, 229, 228, 231, 235, 234, 238, 242, 241, 242, 248, 246, 245, 249, 248, 244, 248, 247, 244, 246, 245, 245, 247, 246, 246, 248, 247, 247, 249, 248, 248, 250, 249, 249, 251, 250, 250, 252, 251, 250, 252, 251, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 249, 249, 249, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 250, 247, 248, 250, 247, 247, 249, 246, 247, 249, 246, 247, 249, 246, 246, 248, 245, 247, 247, 245, 247, 247, 245, 246, 245, 243, 247, 243, 240, 245, 240, 237, 244, 236, 234, 241, 231, 230, 239, 228, 226, 238, 224, 223, 237, 221, 221, 233, 215, 213, 236, 218, 216, 242, 224, 222, 246, 228, 226, 248, 230, 228, 247, 229, 229, 242, 226, 226, 240, 224, 224, 240, 224, 224, 240, 224, 224, 238, 222, 222, 239, 221, 221, 239, 221, 221, 240, 220, 219, 242, 221, 220, 242, 220, 222, 241, 221, 222, 240, 222, 222, 240, 222, 222, 241, 221, 222, 241, 221, 222, 241, 221, 222, 241, 221, 222, 241, 221, 222, 243, 223, 224, 243, 223, 224, 242, 222, 223, 242, 222, 223, 243, 221, 223, 245, 219, 222, 247, 218, 222, 247, 218, 222, 245, 216, 218, 245, 216, 218, 245, 216, 218, 245, 216, 218, 244, 215, 217, 244, 215, 217, 243, 214, 216, 243, 214, 216, 243, 213, 215, 243, 213, 215, 243, 213, 215, 245, 213, 216, 247, 212, 216, 247, 212, 216, 248, 213, 217, 248, 213, 217, 243, 213, 215, 243, 213, 215, 244, 214, 216, 244, 215, 217, 242, 216, 219, 242, 218, 218, 240, 221, 217, 240, 221, 215, 244, 221, 213, 249, 219, 211, 255, 214, 207, 255, 206, 200, 255, 187, 183, 249, 153, 154, 224, 115, 118, 210, 86, 88, 224, 81, 75, 226, 74, 63, 230, 78, 64, 238, 93, 74, 240, 104, 80, 240, 119, 92, 254, 152, 127, 255, 190, 169, 255, 203, 186, 246, 208, 197, 241, 217, 213, 245, 229, 230, 248, 235, 242, 247, 234, 244, 250, 234, 245, 251, 240, 248, 250, 246, 247, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 246, 244, 245, 245, 243, 243, 243, 241, 242, 242, 240, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 246, 246, 246, 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 247, 246, 244, 246, 245, 242, 244, 243, 240, 242, 241, 238, 240, 239, 236, 238, 237, 234, 236, 235, 234, 236, 235, 234, 234, 234, 233, 233, 233, 233, 233, 235, 232, 232, 234, 230, 231, 233, 230, 231, 233, 229, 230, 232, 229, 230, 232, 230, 231, 233, 228, 229, 231, 225, 225, 225, 217, 217, 217, 204, 204, 202, 190, 189, 187, 177, 176, 174, 171, 167, 164, 166, 161, 157, 174, 169, 165, 184, 179, 175, 189, 184, 178, 190, 185, 179, 193, 188, 182, 200, 195, 189, 206, 201, 195, 192, 187, 181, 195, 190, 184, 199, 194, 188, 203, 198, 192, 206, 201, 195, 206, 203, 196, 207, 202, 196, 206, 203, 196, 213, 210, 205, 210, 209, 204, 211, 208, 203, 209, 206, 199, 208, 205, 200, 207, 204, 197, 207, 204, 199, 207, 204, 197, 208, 203, 197, 209, 204, 198, 209, 204, 198, 209, 204, 198, 208, 203, 197, 207, 202, 196, 207, 200, 194, 204, 199, 193, 210, 205, 199, 207, 202, 196, 205, 200, 194, 205, 200, 194, 205, 200, 194, 205, 200, 194, 203, 198, 192, 200, 196, 187, 200, 193, 187, 199, 192, 184, 198, 191, 183, 199, 192, 184, 200, 193, 185, 199, 192, 184, 198, 189, 182, 195, 186, 179, 188, 177, 171, 186, 175, 169, 184, 173, 169, 184, 173, 167, 185, 174, 170, 185, 174, 168, 183, 172, 168, 181, 170, 164, 173, 162, 158, 170, 159, 153, 168, 157, 153, 171, 160, 154, 177, 166, 162, 182, 171, 165, 182, 171, 167, 180, 169, 163, 186, 172, 169, 186, 173, 167, 185, 171, 168, 184, 171, 165, 183, 169, 166, 182, 169, 163, 181, 167, 164, 180, 167, 161, 179, 165, 162, 184, 171, 165, 191, 177, 174, 197, 184, 178, 200, 186, 183, 198, 185, 179, 195, 181, 178, 190, 179, 175, 188, 179, 174, 188, 181, 175, 190, 183, 177, 193, 186, 180, 194, 189, 183, 196, 191, 185, 198, 193, 187, 200, 195, 189, 202, 197, 193, 205, 200, 196, 208, 205, 200, 210, 207, 202, 211, 208, 203, 212, 209, 204, 216, 212, 209, 219, 216, 211, 220, 217, 212, 221, 218, 213, 223, 220, 215, 226, 223, 218, 227, 223, 220, 228, 224, 221, 226, 225, 221, 226, 225, 221, 228, 227, 223, 229, 228, 224, 229, 228, 226, 230, 229, 227, 230, 230, 228, 231, 231, 229, 231, 231, 229, 232, 232, 230, 230, 230, 228, 229, 231, 228, 229, 231, 228, 228, 230, 227, 228, 230, 227, 227, 229, 226, 227, 229, 228, 227, 229, 228, 229, 231, 230, 227, 229, 228, 223, 224, 226, 220, 221, 223, 219, 220, 222, 220, 221, 223, 222, 223, 225, 223, 225, 224, 213, 215, 214, 211, 213, 210, 210, 212, 211, 209, 211, 208, 210, 210, 210, 208, 208, 206, 204, 204, 204, 200, 200, 198, 195, 195, 195, 192, 192, 190, 187, 187, 187, 182, 182, 180, 179, 177, 178, 175, 175, 173, 175, 173, 174, 175, 174, 172, 175, 171, 170, 175, 169, 169, 174, 168, 168, 172, 166, 166, 171, 165, 165, 171, 162, 163, 170, 162, 160, 169, 161, 159, 172, 164, 162, 173, 165, 163, 175, 165, 163, 177, 167, 165, 178, 168, 166, 178, 168, 166, 177, 167, 165, 177, 167, 165, 181, 172, 173, 180, 171, 172, 177, 171, 171, 177, 171, 171, 179, 173, 175, 181, 177, 178, 184, 180, 181, 183, 181, 184, 184, 183, 188, 189, 188, 193, 194, 195, 200, 196, 199, 204, 198, 201, 206, 199, 202, 207, 200, 205, 211, 202, 207, 211, 204, 207, 212, 207, 210, 215, 212, 215, 220, 218, 221, 226, 223, 226, 231, 226, 229, 234, 227, 230, 235, 227, 230, 235, 233, 236, 241, 232, 237, 241, 233, 236, 241, 231, 236, 240, 231, 236, 240, 231, 236, 240, 230, 235, 239, 230, 235, 239, 235, 238, 243, 236, 239, 244, 237, 240, 245, 238, 241, 246, 239, 242, 247, 240, 243, 248, 241, 244, 249, 241, 244, 249, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 249, 250, 254, 249, 250, 254, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 242, 246, 249, 241, 245, 248, 241, 245, 248, 241, 245, 248, 240, 244, 247, 239, 243, 246, 239, 243, 246, 239, 243, 246, 238, 242, 245, 238, 242, 245, 238, 242, 245, 238, 242, 245, 238, 241, 246, 231, 234, 241, 229, 232, 239, 227, 230, 237, 225, 228, 233, 223, 226, 231, 218, 222, 225, 214, 215, 217, 209, 211, 210, 205, 205, 205, 200, 200, 200, 196, 195, 193, 193, 189, 188, 191, 186, 183, 188, 183, 180, 186, 178, 176, 184, 176, 174, 177, 171, 171, 179, 173, 173, 179, 173, 173, 175, 169, 169, 171, 162, 163, 168, 159, 160, 170, 162, 160, 174, 166, 164, 185, 177, 175, 183, 175, 173, 181, 173, 171, 179, 171, 169, 178, 170, 167, 179, 171, 168, 180, 172, 169, 181, 173, 170, 191, 183, 180, 183, 175, 172, 172, 164, 161, 165, 157, 154, 170, 162, 159, 179, 171, 168, 182, 174, 171, 178, 170, 167, 173, 165, 162, 167, 159, 156, 162, 154, 151, 161, 153, 150, 167, 159, 156, 176, 168, 165, 183, 175, 172, 187, 179, 176, 181, 176, 170, 179, 174, 168, 176, 171, 165, 173, 168, 162, 172, 167, 161, 172, 167, 161, 173, 168, 162, 174, 169, 163, 172, 167, 161, 174, 169, 163, 177, 172, 166, 178, 173, 167, 177, 172, 166, 173, 168, 162, 168, 163, 157, 165, 160, 154, 156, 149, 143, 154, 147, 141, 151, 144, 138, 150, 143, 137, 153, 146, 140, 159, 152, 146, 167, 159, 156, 173, 165, 162, 171, 163, 160, 173, 165, 162, 170, 162, 159, 161, 153, 150, 158, 150, 148, 165, 157, 155, 175, 167, 165, 181, 173, 171, 179, 171, 169, 181, 173, 171, 183, 175, 173, 184, 176, 174, 182, 174, 172, 175, 170, 167, 170, 165, 162, 166, 161, 158, 165, 160, 157, 178, 173, 170, 177, 172, 169, 151, 147, 144, 128, 124, 121, 131, 127, 124, 152, 148, 147, 169, 165, 162, 170, 165, 162, 176, 171, 168, 180, 176, 173, 179, 175, 174, 178, 174, 173, 183, 179, 178, 194, 192, 193, 205, 203, 204, 197, 195, 198, 193, 193, 195, 192, 192, 192, 198, 200, 199, 208, 210, 209, 214, 216, 215, 212, 214, 211, 208, 210, 207, 202, 204, 203, 203, 205, 204, 206, 208, 207, 209, 211, 210, 212, 214, 213, 213, 215, 214, 214, 215, 217, 215, 216, 218, 231, 232, 234, 232, 233, 235, 234, 235, 237, 236, 237, 239, 238, 239, 241, 239, 243, 244, 242, 243, 245, 243, 244, 246, 245, 247, 246, 246, 246, 246, 246, 246, 246, 247, 247, 247, 248, 248, 248, 249, 249, 249, 249, 249, 249, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 247, 247, 247, 247, 247, 247, 247, 249, 248, 247, 249, 248, 247, 249, 248, 248, 250, 249, 249, 249, 249, 249, 249, 247, 252, 251, 249, 253, 249, 248, 251, 245, 245, 249, 241, 239, 245, 235, 234, 241, 229, 229, 236, 224, 224, 237, 221, 221, 219, 193, 192, 233, 205, 202, 247, 221, 220, 254, 230, 228, 254, 230, 228, 248, 228, 227, 243, 228, 225, 242, 228, 225, 233, 222, 220, 234, 223, 221, 236, 222, 219, 237, 222, 219, 241, 221, 220, 244, 220, 218, 247, 219, 218, 246, 220, 221, 241, 221, 223, 238, 222, 223, 238, 222, 223, 241, 222, 224, 242, 222, 223, 244, 222, 224, 244, 223, 222, 244, 223, 222, 241, 223, 221, 239, 224, 221, 238, 222, 222, 238, 222, 222, 241, 219, 222, 245, 216, 221, 249, 212, 220, 249, 212, 220, 246, 216, 218, 245, 217, 216, 244, 216, 215, 245, 215, 215, 244, 214, 214, 243, 213, 213, 244, 212, 213, 243, 211, 212, 248, 214, 215, 248, 214, 215, 248, 214, 215, 248, 214, 215, 248, 214, 215, 248, 214, 215, 248, 214, 215, 246, 214, 215, 248, 216, 219, 243, 211, 214, 238, 207, 212, 245, 216, 220, 250, 225, 229, 240, 219, 218, 235, 214, 211, 246, 221, 214, 255, 222, 210, 255, 215, 202, 255, 186, 173, 238, 140, 129, 226, 103, 95, 229, 90, 83, 237, 85, 80, 238, 81, 72, 248, 91, 72, 235, 85, 61, 235, 95, 72, 248, 122, 100, 250, 139, 120, 240, 147, 130, 244, 168, 154, 255, 197, 186, 255, 215, 207, 250, 223, 216, 246, 231, 226, 245, 235, 233, 246, 237, 238, 249, 238, 242, 255, 240, 247, 255, 244, 248, 251, 245, 247, 248, 247, 245, 248, 247, 245, 248, 247, 245, 248, 247, 245, 248, 247, 245, 248, 247, 245, 248, 247, 245, 246, 245, 243, 246, 245, 243, 246, 245, 243, 246, 245, 243, 246, 245, 243, 246, 245, 243, 246, 245, 243, 246, 245, 243, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 250, 250, 248, 249, 249, 247, 248, 248, 246, 247, 247, 245, 247, 247, 245, 248, 248, 246, 249, 249, 247, 250, 250, 248, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 244, 244, 244, 243, 243, 243, 243, 243, 243, 242, 242, 242, 241, 241, 241, 240, 240, 240, 240, 240, 240, 239, 239, 239, 235, 233, 234, 231, 229, 230, 225, 223, 224, 221, 219, 220, 220, 218, 219, 219, 217, 218, 217, 215, 216, 215, 213, 214, 206, 204, 205, 206, 204, 205, 214, 212, 213, 221, 219, 220, 215, 213, 214, 203, 199, 200, 200, 196, 197, 207, 203, 202, 189, 183, 183, 187, 182, 179, 155, 150, 147, 134, 129, 125, 149, 141, 138, 156, 148, 145, 160, 153, 147, 181, 174, 168, 188, 181, 175, 194, 187, 181, 200, 195, 189, 206, 201, 195, 209, 206, 201, 210, 209, 204, 215, 212, 207, 215, 214, 209, 225, 224, 220, 224, 225, 220, 225, 224, 220, 224, 223, 218, 224, 223, 219, 224, 223, 218, 224, 223, 219, 224, 223, 218, 229, 226, 221, 228, 225, 220, 226, 223, 218, 224, 221, 216, 222, 219, 214, 219, 216, 211, 219, 214, 208, 217, 214, 207, 205, 202, 197, 204, 201, 196, 204, 201, 196, 203, 200, 195, 202, 199, 194, 201, 198, 193, 200, 197, 192, 199, 196, 189, 198, 195, 190, 198, 195, 188, 198, 195, 188, 198, 195, 188, 199, 196, 189, 199, 196, 189, 199, 196, 189, 200, 195, 189, 196, 189, 183, 196, 187, 182, 193, 183, 181, 190, 181, 176, 187, 177, 175, 184, 175, 170, 182, 172, 170, 181, 172, 167, 173, 163, 161, 176, 167, 162, 180, 170, 168, 183, 174, 169, 186, 176, 174, 186, 177, 172, 185, 175, 173, 184, 175, 170, 181, 170, 164, 180, 170, 161, 179, 168, 162, 178, 168, 159, 178, 167, 161, 179, 169, 160, 180, 169, 163, 181, 171, 162, 181, 170, 164, 182, 172, 163, 184, 173, 167, 187, 177, 168, 190, 179, 173, 193, 183, 174, 196, 185, 179, 197, 186, 180, 199, 190, 185, 199, 190, 185, 198, 191, 185, 196, 189, 183, 195, 188, 182, 196, 189, 183, 201, 194, 188, 205, 198, 192, 203, 198, 192, 204, 199, 193, 206, 201, 195, 209, 204, 198, 212, 207, 201, 215, 210, 204, 216, 213, 208, 217, 214, 209, 219, 218, 213, 220, 219, 215, 222, 221, 217, 224, 223, 219, 225, 224, 220, 225, 224, 220, 225, 224, 220, 225, 224, 220, 230, 229, 225, 230, 229, 225, 230, 229, 225, 231, 230, 226, 231, 230, 226, 231, 230, 226, 232, 231, 227, 231, 232, 227, 231, 232, 227, 230, 231, 226, 230, 231, 226, 230, 231, 226, 229, 229, 227, 229, 229, 227, 229, 229, 227, 228, 228, 226, 225, 225, 225, 225, 225, 225, 225, 225, 225, 224, 224, 224, 222, 222, 222, 220, 220, 220, 218, 218, 218, 216, 216, 216, 213, 215, 214, 213, 215, 214, 213, 214, 216, 213, 215, 214, 213, 214, 216, 214, 216, 215, 214, 215, 217, 214, 216, 215, 187, 188, 190, 187, 189, 188, 186, 187, 189, 184, 186, 185, 182, 182, 184, 178, 180, 179, 177, 177, 179, 175, 175, 175, 174, 170, 169, 173, 169, 168, 171, 167, 166, 169, 165, 164, 167, 163, 160, 166, 161, 158, 164, 159, 156, 164, 159, 156, 170, 165, 162, 170, 165, 162, 172, 164, 161, 173, 165, 162, 173, 165, 162, 174, 166, 163, 174, 166, 163, 174, 166, 163, 178, 169, 170, 178, 169, 170, 179, 170, 171, 178, 172, 172, 179, 173, 173, 180, 176, 175, 180, 176, 175, 179, 177, 178, 179, 179, 179, 183, 183, 183, 186, 188, 187, 189, 191, 190, 188, 192, 191, 189, 193, 192, 192, 196, 197, 194, 198, 199, 202, 203, 208, 207, 207, 215, 214, 214, 222, 219, 219, 227, 220, 223, 230, 222, 225, 232, 224, 229, 235, 226, 231, 237, 228, 233, 239, 228, 235, 241, 231, 236, 242, 228, 235, 241, 226, 233, 239, 225, 232, 238, 227, 234, 240, 229, 236, 242, 232, 237, 243, 233, 236, 243, 235, 238, 245, 236, 239, 246, 238, 241, 248, 239, 242, 249, 240, 243, 248, 241, 244, 249, 240, 243, 248, 241, 244, 249, 241, 244, 249, 242, 245, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 250, 254, 245, 250, 254, 245, 250, 254, 245, 250, 254, 245, 250, 254, 245, 250, 254, 245, 250, 254, 245, 250, 254, 245, 250, 254, 245, 250, 254, 245, 250, 254, 245, 250, 254, 245, 250, 254, 245, 250, 254, 245, 250, 254, 245, 250, 254, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 240, 244, 247, 239, 243, 246, 239, 243, 246, 238, 242, 245, 237, 241, 244, 237, 241, 244, 236, 240, 243, 236, 240, 243, 235, 238, 245, 233, 236, 243, 231, 234, 241, 229, 232, 239, 226, 231, 235, 221, 226, 230, 216, 220, 223, 211, 215, 216, 204, 206, 205, 199, 201, 200, 195, 194, 192, 190, 189, 187, 190, 185, 182, 186, 181, 178, 184, 176, 174, 181, 173, 171, 177, 171, 171, 176, 170, 170, 172, 166, 166, 165, 159, 159, 163, 154, 155, 163, 154, 155, 170, 162, 160, 176, 168, 166, 178, 170, 168, 180, 172, 170, 183, 173, 172, 185, 175, 174, 187, 177, 175, 186, 176, 174, 186, 176, 174, 185, 175, 173, 178, 170, 167, 175, 167, 164, 170, 162, 159, 169, 161, 158, 175, 167, 164, 183, 175, 172, 182, 174, 171, 176, 168, 165, 170, 162, 159, 169, 161, 158, 168, 160, 157, 169, 161, 158, 172, 164, 161, 177, 169, 166, 180, 172, 169, 183, 175, 172, 171, 166, 160, 170, 165, 159, 170, 165, 159, 170, 165, 159, 171, 166, 160, 173, 168, 162, 176, 171, 165, 177, 172, 166, 178, 173, 167, 177, 172, 166, 174, 169, 163, 170, 165, 159, 167, 162, 156, 165, 160, 154, 163, 158, 152, 162, 157, 151, 173, 166, 160, 169, 162, 156, 164, 157, 151, 162, 155, 149, 163, 156, 150, 166, 159, 153, 169, 161, 158, 170, 162, 159, 174, 166, 163, 177, 169, 166, 174, 166, 163, 166, 158, 155, 161, 153, 151, 164, 156, 154, 169, 161, 159, 170, 162, 160, 170, 165, 162, 171, 166, 163, 172, 167, 164, 173, 168, 165, 173, 168, 165, 172, 167, 164, 171, 166, 163, 171, 166, 163, 187, 182, 179, 173, 168, 165, 145, 140, 137, 120, 115, 112, 115, 110, 107, 132, 127, 124, 150, 145, 142, 157, 152, 149, 170, 165, 161, 169, 164, 160, 167, 163, 160, 167, 163, 160, 170, 166, 165, 176, 172, 171, 182, 180, 181, 187, 185, 186, 196, 196, 198, 203, 203, 205, 207, 209, 208, 200, 202, 201, 188, 190, 189, 185, 187, 186, 193, 195, 192, 204, 206, 203, 187, 188, 190, 190, 191, 193, 196, 197, 199, 202, 203, 205, 208, 209, 211, 213, 214, 216, 216, 217, 219, 218, 219, 221, 231, 232, 234, 232, 233, 235, 234, 235, 237, 236, 237, 239, 239, 240, 242, 241, 242, 244, 243, 244, 246, 244, 245, 247, 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247, 247, 248, 248, 248, 249, 249, 249, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 247, 247, 247, 247, 247, 247, 247, 249, 248, 247, 249, 248, 248, 250, 249, 248, 250, 249, 249, 249, 249, 249, 249, 249, 250, 249, 247, 248, 247, 245, 249, 243, 243, 245, 239, 239, 242, 234, 232, 238, 228, 227, 235, 223, 223, 236, 220, 220, 229, 204, 200, 236, 207, 203, 244, 214, 212, 251, 223, 220, 253, 227, 226, 250, 229, 226, 246, 226, 225, 239, 224, 221, 235, 221, 220, 235, 221, 220, 237, 221, 221, 239, 221, 219, 242, 221, 220, 245, 219, 220, 249, 217, 218, 248, 218, 220, 244, 219, 222, 242, 220, 223, 241, 221, 222, 242, 222, 223, 243, 221, 223, 244, 223, 222, 246, 222, 222, 244, 223, 222, 242, 222, 221, 241, 223, 221, 238, 222, 222, 240, 222, 222, 243, 218, 221, 246, 215, 221, 252, 210, 220, 252, 211, 219, 248, 216, 219, 245, 217, 216, 246, 216, 216, 245, 215, 215, 245, 213, 214, 244, 212, 213, 246, 212, 213, 246, 212, 213, 248, 212, 214, 248, 212, 214, 247, 213, 214, 247, 213, 214, 247, 213, 214, 247, 213, 214, 245, 213, 214, 245, 213, 214, 249, 214, 218, 244, 209, 213, 243, 212, 217, 244, 218, 221, 242, 217, 220, 242, 218, 218, 248, 220, 216, 255, 220, 212, 255, 211, 200, 252, 174, 162, 232, 128, 117, 228, 100, 89, 237, 89, 79, 248, 86, 75, 254, 83, 73, 253, 83, 68, 255, 105, 80, 252, 107, 78, 250, 120, 94, 255, 146, 123, 255, 163, 146, 248, 174, 161, 252, 193, 185, 255, 214, 209, 245, 214, 209, 240, 221, 215, 239, 228, 224, 239, 234, 230, 240, 235, 232, 244, 236, 234, 249, 237, 239, 250, 239, 243, 247, 241, 241, 244, 243, 241, 244, 243, 241, 244, 243, 241, 244, 243, 241, 244, 243, 241, 244, 243, 241, 244, 243, 241, 246, 245, 243, 246, 245, 243, 246, 245, 243, 246, 245, 243, 246, 245, 243, 246, 245, 243, 246, 245, 243, 246, 245, 243, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 249, 249, 247, 248, 248, 246, 247, 247, 245, 246, 246, 244, 246, 246, 244, 247, 247, 245, 248, 248, 246, 249, 249, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 246, 246, 246, 246, 246, 246, 246, 246, 246, 245, 245, 245, 245, 245, 245, 242, 242, 242, 242, 242, 242, 241, 241, 241, 241, 241, 241, 240, 240, 240, 239, 239, 239, 239, 239, 239, 238, 238, 238, 243, 241, 242, 244, 240, 241, 241, 237, 238, 235, 231, 232, 223, 219, 220, 205, 201, 202, 186, 182, 183, 173, 169, 170, 159, 155, 156, 151, 147, 148, 151, 147, 148, 168, 164, 165, 186, 182, 183, 192, 188, 189, 185, 181, 182, 177, 173, 174, 168, 162, 162, 192, 186, 186, 158, 153, 150, 98, 93, 90, 91, 83, 80, 115, 107, 104, 137, 130, 124, 154, 147, 141, 164, 157, 151, 173, 166, 160, 183, 178, 172, 194, 189, 183, 200, 197, 192, 203, 202, 197, 206, 205, 200, 208, 207, 202, 207, 207, 205, 208, 208, 206, 210, 211, 206, 213, 214, 209, 218, 217, 213, 220, 219, 215, 223, 222, 218, 224, 223, 219, 221, 220, 215, 222, 221, 216, 227, 224, 219, 229, 226, 221, 232, 229, 224, 235, 232, 227, 237, 234, 227, 238, 235, 228, 233, 232, 227, 230, 229, 224, 226, 225, 220, 220, 219, 214, 213, 212, 207, 207, 206, 201, 203, 202, 197, 200, 199, 194, 199, 198, 193, 199, 198, 193, 199, 198, 193, 199, 198, 193, 199, 198, 193, 199, 198, 193, 198, 197, 192, 200, 197, 192, 203, 198, 194, 204, 196, 193, 203, 195, 192, 200, 192, 189, 198, 190, 187, 196, 188, 185, 195, 187, 184, 194, 186, 183, 181, 173, 170, 181, 173, 170, 181, 173, 170, 182, 174, 171, 184, 176, 173, 185, 177, 174, 187, 179, 176, 188, 181, 175, 181, 172, 165, 182, 172, 163, 183, 173, 164, 183, 173, 164, 182, 172, 163, 181, 171, 162, 180, 170, 161, 179, 169, 160, 183, 173, 164, 183, 173, 164, 185, 175, 166, 186, 176, 167, 188, 178, 169, 189, 179, 170, 191, 181, 172, 190, 181, 174, 195, 186, 181, 198, 189, 184, 200, 193, 187, 200, 193, 187, 199, 192, 186, 199, 192, 186, 200, 193, 187, 202, 195, 189, 204, 199, 193, 205, 200, 194, 207, 202, 196, 210, 205, 199, 213, 208, 202, 215, 210, 204, 216, 213, 206, 217, 214, 207, 220, 219, 215, 221, 220, 216, 223, 222, 218, 224, 223, 219, 226, 225, 221, 226, 225, 221, 226, 225, 221, 226, 225, 221, 230, 229, 225, 230, 229, 225, 230, 229, 225, 231, 230, 226, 231, 230, 226, 231, 230, 226, 232, 231, 227, 232, 231, 227, 231, 232, 227, 231, 232, 227, 230, 231, 226, 230, 231, 226, 229, 229, 227, 229, 229, 227, 229, 229, 227, 229, 229, 227, 225, 225, 225, 225, 225, 225, 225, 225, 225, 224, 224, 224, 223, 223, 223, 220, 220, 220, 218, 218, 218, 217, 217, 217, 214, 215, 217, 214, 215, 217, 214, 215, 217, 213, 214, 216, 213, 214, 216, 212, 213, 215, 212, 213, 215, 212, 213, 215, 204, 205, 207, 199, 200, 202, 191, 192, 194, 183, 184, 186, 178, 179, 181, 175, 176, 178, 175, 176, 178, 177, 177, 177, 175, 173, 174, 173, 169, 168, 168, 164, 163, 164, 160, 159, 162, 158, 155, 163, 159, 156, 168, 163, 160, 170, 165, 162, 171, 166, 163, 171, 166, 163, 171, 166, 162, 171, 166, 162, 174, 166, 163, 174, 166, 163, 174, 166, 163, 174, 166, 163, 177, 168, 169, 178, 169, 170, 179, 170, 171, 180, 171, 172, 179, 173, 173, 180, 174, 174, 180, 176, 175, 180, 176, 175, 176, 175, 173, 179, 179, 177, 183, 183, 181, 185, 187, 184, 185, 187, 184, 185, 190, 186, 187, 192, 188, 189, 193, 192, 197, 198, 203, 202, 202, 210, 209, 209, 217, 214, 214, 222, 215, 218, 225, 218, 221, 228, 222, 225, 232, 223, 228, 234, 225, 230, 236, 225, 232, 238, 226, 233, 239, 226, 233, 239, 223, 232, 237, 222, 231, 236, 224, 233, 238, 227, 234, 240, 231, 236, 242, 233, 236, 243, 234, 237, 244, 236, 239, 246, 237, 240, 247, 239, 242, 249, 240, 243, 248, 241, 244, 249, 240, 243, 248, 240, 243, 248, 241, 244, 249, 242, 245, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 250, 254, 245, 250, 254, 245, 250, 254, 245, 250, 254, 245, 250, 254, 245, 250, 254, 245, 250, 254, 245, 250, 254, 245, 250, 254, 245, 250, 254, 245, 250, 254, 245, 250, 254, 245, 250, 254, 245, 250, 254, 245, 250, 254, 245, 250, 254, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 242, 246, 249, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 239, 243, 246, 238, 242, 245, 236, 240, 243, 235, 239, 242, 234, 238, 241, 233, 237, 240, 235, 238, 245, 233, 236, 243, 231, 234, 239, 229, 232, 237, 227, 230, 235, 222, 225, 230, 216, 220, 223, 211, 215, 216, 204, 206, 205, 199, 201, 200, 195, 194, 192, 189, 188, 186, 188, 182, 182, 184, 178, 178, 182, 174, 172, 178, 170, 168, 177, 171, 171, 172, 166, 166, 164, 158, 158, 157, 151, 151, 154, 148, 148, 159, 153, 153, 171, 163, 161, 179, 171, 169, 177, 169, 167, 180, 172, 170, 186, 176, 175, 189, 179, 178, 189, 179, 177, 186, 176, 174, 182, 172, 170, 178, 168, 166, 166, 158, 155, 169, 161, 158, 171, 163, 160, 174, 166, 163, 181, 173, 170, 186, 178, 175, 183, 175, 172, 175, 167, 164, 168, 160, 157, 172, 164, 161, 176, 168, 165, 178, 170, 167, 178, 170, 167, 177, 169, 166, 177, 169, 166, 178, 170, 167, 179, 171, 168, 178, 170, 167, 178, 170, 167, 178, 170, 167, 180, 172, 169, 181, 173, 170, 184, 176, 173, 185, 177, 174, 181, 173, 170, 177, 169, 166, 171, 163, 160, 165, 157, 154, 163, 155, 152, 164, 156, 153, 168, 160, 157, 170, 162, 159, 176, 169, 163, 173, 166, 160, 171, 164, 158, 173, 166, 160, 179, 172, 166, 183, 176, 170, 183, 175, 172, 181, 173, 170, 177, 169, 166, 182, 174, 171, 183, 175, 172, 178, 170, 167, 174, 166, 164, 174, 166, 164, 174, 166, 164, 171, 163, 161, 164, 159, 156, 163, 158, 155, 162, 157, 154, 162, 157, 154, 165, 160, 157, 169, 164, 161, 173, 168, 165, 176, 171, 168, 179, 174, 171, 168, 163, 160, 155, 150, 147, 153, 148, 145, 169, 164, 161, 188, 183, 180, 194, 189, 186, 189, 184, 181, 159, 154, 150, 157, 152, 148, 157, 153, 150, 166, 162, 159, 180, 176, 175, 192, 188, 187, 198, 196, 197, 200, 198, 199, 200, 200, 202, 198, 198, 200, 195, 197, 196, 194, 196, 195, 195, 197, 196, 195, 197, 196, 193, 195, 192, 190, 192, 189, 189, 190, 192, 193, 194, 196, 199, 200, 202, 207, 208, 210, 214, 215, 217, 221, 222, 224, 225, 226, 228, 227, 228, 230, 229, 230, 232, 229, 230, 232, 231, 232, 234, 234, 235, 237, 236, 237, 239, 238, 239, 241, 240, 241, 243, 241, 242, 244, 246, 246, 246, 246, 246, 246, 247, 247, 247, 248, 248, 248, 248, 248, 248, 249, 249, 249, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 250, 249, 248, 250, 249, 250, 250, 250, 250, 250, 250, 247, 246, 244, 246, 245, 243, 247, 241, 241, 244, 238, 238, 242, 234, 232, 238, 228, 227, 235, 223, 223, 236, 220, 220, 239, 218, 213, 238, 213, 208, 236, 211, 206, 241, 216, 211, 251, 223, 220, 252, 226, 225, 247, 223, 223, 240, 219, 218, 239, 219, 220, 239, 219, 220, 240, 220, 221, 241, 219, 222, 243, 218, 222, 247, 218, 223, 248, 217, 223, 251, 216, 222, 252, 216, 220, 251, 216, 220, 248, 218, 220, 246, 220, 221, 245, 221, 221, 246, 222, 220, 244, 223, 220, 244, 223, 220, 245, 221, 221, 245, 221, 221, 244, 220, 220, 245, 219, 220, 247, 217, 219, 249, 214, 220, 252, 211, 219, 251, 212, 217, 248, 216, 217, 246, 218, 217, 246, 216, 216, 245, 215, 215, 246, 214, 215, 245, 213, 214, 246, 212, 213, 246, 212, 213, 247, 211, 213, 247, 211, 213, 246, 212, 213, 246, 212, 213, 246, 212, 213, 246, 212, 213, 244, 212, 213, 246, 212, 213, 250, 214, 216, 243, 208, 212, 246, 217, 219, 244, 220, 220, 232, 211, 210, 244, 216, 213, 255, 221, 216, 255, 204, 200, 252, 171, 167, 230, 125, 121, 214, 85, 80, 226, 79, 72, 245, 87, 78, 252, 88, 79, 255, 88, 79, 255, 93, 78, 255, 109, 85, 255, 120, 94, 255, 137, 113, 255, 157, 134, 255, 174, 158, 255, 191, 179, 255, 206, 197, 255, 217, 212, 244, 216, 212, 241, 223, 219, 239, 230, 225, 238, 235, 230, 239, 235, 232, 241, 237, 234, 246, 237, 238, 249, 240, 241, 246, 242, 241, 244, 243, 241, 244, 243, 241, 244, 243, 241, 244, 243, 241, 244, 243, 241, 244, 243, 241, 244, 243, 241, 247, 246, 244, 247, 246, 244, 247, 246, 244, 247, 246, 244, 247, 246, 244, 247, 246, 244, 247, 246, 244, 247, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 246, 244, 245, 245, 243, 244, 244, 242, 244, 244, 242, 245, 245, 243, 246, 246, 244, 247, 247, 245, 247, 247, 247, 247, 247, 247, 246, 246, 246, 245, 245, 245, 244, 244, 244, 243, 243, 243, 242, 242, 242, 241, 241, 241, 240, 240, 240, 239, 239, 239, 239, 239, 239, 239, 239, 239, 238, 238, 238, 238, 238, 238, 237, 237, 237, 237, 237, 237, 230, 228, 229, 234, 232, 233, 239, 237, 238, 241, 239, 240, 236, 234, 235, 221, 219, 220, 202, 200, 201, 189, 187, 188, 195, 193, 194, 184, 182, 183, 174, 172, 173, 177, 175, 176, 191, 189, 190, 198, 196, 197, 186, 184, 185, 167, 165, 166, 151, 147, 146, 179, 175, 174, 193, 187, 187, 188, 183, 180, 175, 167, 164, 141, 133, 130, 121, 114, 108, 133, 126, 120, 165, 158, 152, 173, 166, 160, 182, 177, 171, 191, 186, 180, 195, 192, 187, 197, 194, 189, 197, 196, 191, 198, 197, 192, 197, 197, 195, 199, 199, 197, 201, 202, 197, 204, 205, 200, 209, 208, 204, 212, 211, 207, 214, 213, 209, 215, 214, 210, 208, 207, 202, 209, 208, 203, 212, 209, 204, 214, 211, 206, 216, 213, 208, 218, 215, 210, 219, 216, 209, 220, 217, 210, 227, 224, 219, 228, 225, 220, 230, 227, 222, 232, 229, 224, 234, 231, 226, 237, 234, 229, 238, 235, 230, 239, 236, 231, 232, 229, 224, 229, 226, 221, 225, 222, 217, 220, 217, 212, 214, 211, 206, 208, 205, 200, 204, 201, 196, 202, 199, 194, 200, 195, 191, 200, 195, 191, 200, 195, 191, 199, 194, 190, 198, 193, 189, 198, 193, 189, 197, 192, 188, 197, 192, 188, 200, 195, 191, 197, 192, 188, 191, 186, 182, 186, 181, 177, 183, 178, 174, 182, 177, 173, 183, 178, 174, 186, 179, 173, 186, 177, 170, 186, 177, 170, 187, 178, 171, 187, 178, 171, 186, 177, 170, 185, 176, 169, 183, 174, 167, 182, 173, 166, 187, 178, 171, 188, 179, 172, 188, 179, 172, 188, 179, 172, 189, 180, 173, 189, 180, 173, 189, 180, 173, 189, 180, 173, 193, 184, 179, 196, 189, 183, 202, 195, 189, 204, 197, 191, 204, 197, 191, 202, 195, 189, 202, 195, 189, 202, 195, 189, 206, 201, 195, 207, 202, 196, 209, 204, 198, 212, 207, 201, 213, 210, 203, 215, 212, 205, 217, 214, 207, 218, 215, 208, 221, 220, 216, 222, 221, 217, 224, 223, 219, 226, 225, 221, 227, 226, 222, 227, 226, 222, 227, 226, 222, 227, 226, 222, 230, 229, 225, 230, 229, 225, 230, 229, 225, 231, 230, 226, 231, 230, 226, 231, 230, 226, 232, 231, 227, 232, 231, 227, 231, 232, 227, 231, 232, 227, 230, 231, 226, 230, 231, 226, 230, 230, 228, 229, 229, 227, 229, 229, 227, 229, 229, 227, 226, 226, 226, 226, 226, 226, 226, 226, 226, 225, 225, 225, 223, 223, 223, 221, 221, 221, 219, 219, 219, 218, 218, 218, 216, 217, 219, 216, 217, 219, 214, 215, 217, 213, 214, 216, 211, 212, 214, 210, 211, 213, 209, 210, 212, 208, 209, 211, 214, 215, 217, 209, 210, 212, 201, 202, 204, 192, 193, 195, 184, 185, 187, 178, 179, 181, 174, 175, 177, 173, 173, 173, 171, 169, 170, 171, 167, 166, 167, 163, 162, 165, 161, 160, 164, 160, 157, 166, 162, 159, 169, 164, 161, 171, 166, 163, 172, 167, 164, 172, 167, 164, 172, 167, 163, 172, 167, 163, 174, 166, 163, 174, 166, 163, 174, 166, 163, 174, 166, 163, 178, 168, 169, 178, 168, 169, 178, 169, 170, 179, 170, 171, 178, 172, 172, 178, 172, 172, 178, 174, 173, 178, 174, 173, 172, 171, 169, 174, 174, 172, 177, 177, 175, 178, 180, 177, 179, 181, 178, 180, 182, 179, 183, 185, 182, 186, 188, 187, 189, 190, 195, 194, 194, 202, 201, 201, 209, 207, 207, 215, 211, 211, 219, 214, 217, 224, 218, 221, 228, 220, 225, 231, 220, 225, 231, 223, 228, 234, 222, 229, 235, 222, 229, 235, 221, 228, 234, 221, 228, 234, 222, 231, 236, 225, 232, 238, 230, 235, 241, 232, 235, 242, 233, 236, 243, 235, 238, 245, 236, 239, 246, 238, 241, 248, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 242, 246, 249, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 247, 251, 254, 247, 251, 254, 247, 251, 254, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 250, 254, 245, 250, 254, 245, 250, 254, 245, 250, 254, 245, 250, 254, 245, 250, 254, 245, 250, 254, 245, 250, 254, 245, 250, 254, 245, 250, 254, 245, 250, 254, 245, 250, 254, 245, 250, 254, 245, 250, 254, 245, 250, 254, 245, 250, 254, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 242, 246, 249, 241, 245, 248, 241, 245, 248, 242, 246, 249, 242, 246, 249, 240, 244, 247, 238, 242, 245, 236, 240, 243, 234, 238, 241, 232, 236, 239, 231, 235, 238, 231, 234, 241, 229, 232, 239, 226, 229, 234, 224, 227, 232, 222, 225, 230, 218, 221, 226, 212, 216, 219, 207, 211, 214, 204, 205, 207, 199, 201, 200, 194, 194, 194, 189, 188, 186, 187, 183, 182, 184, 178, 178, 181, 173, 171, 178, 170, 168, 177, 171, 171, 172, 166, 166, 165, 159, 159, 159, 153, 153, 159, 153, 153, 165, 159, 159, 176, 168, 166, 183, 175, 173, 185, 177, 175, 187, 179, 177, 190, 180, 179, 189, 179, 178, 186, 176, 174, 180, 170, 168, 174, 164, 162, 170, 160, 158, 166, 158, 155, 170, 162, 159, 174, 166, 163, 177, 169, 166, 183, 175, 172, 187, 179, 176, 184, 176, 173, 177, 169, 166, 172, 164, 161, 176, 168, 165, 181, 173, 170, 181, 173, 170, 179, 171, 168, 176, 168, 165, 176, 168, 165, 177, 169, 166, 185, 177, 174, 184, 176, 173, 183, 175, 172, 182, 174, 171, 180, 172, 169, 180, 172, 169, 179, 171, 168, 179, 171, 168, 176, 168, 165, 173, 165, 162, 169, 161, 158, 167, 159, 156, 168, 160, 157, 173, 165, 162, 178, 170, 167, 182, 174, 171, 176, 169, 163, 174, 167, 161, 174, 167, 161, 179, 172, 166, 187, 180, 174, 191, 184, 178, 189, 181, 178, 185, 177, 174, 168, 160, 157, 176, 168, 165, 181, 173, 170, 181, 173, 170, 181, 173, 171, 182, 174, 172, 179, 171, 169, 174, 166, 164, 165, 160, 157, 162, 157, 154, 159, 154, 151, 157, 152, 149, 161, 156, 153, 167, 162, 159, 175, 170, 167, 180, 175, 172, 172, 167, 164, 177, 172, 169, 184, 179, 176, 190, 185, 182, 193, 188, 185, 192, 187, 184, 187, 182, 179, 181, 176, 173, 179, 174, 170, 181, 176, 172, 184, 180, 177, 190, 186, 183, 196, 192, 191, 201, 197, 196, 201, 199, 200, 201, 199, 200, 199, 199, 201, 195, 195, 197, 192, 194, 193, 199, 201, 200, 208, 210, 209, 209, 211, 210, 198, 200, 197, 187, 189, 186, 200, 201, 203, 203, 204, 206, 208, 209, 211, 214, 215, 217, 220, 221, 223, 225, 226, 228, 228, 229, 231, 230, 231, 233, 225, 226, 228, 226, 227, 229, 228, 229, 231, 230, 231, 233, 233, 234, 236, 235, 236, 238, 237, 238, 240, 238, 239, 241, 246, 246, 246, 247, 247, 247, 247, 247, 247, 248, 248, 248, 249, 249, 249, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 248, 248, 248, 248, 248, 248, 248, 248, 248, 249, 249, 249, 248, 250, 249, 249, 251, 250, 250, 250, 250, 250, 250, 250, 247, 246, 244, 247, 246, 244, 247, 243, 242, 245, 239, 239, 244, 236, 234, 239, 231, 229, 237, 227, 226, 238, 224, 223, 243, 226, 219, 241, 221, 214, 238, 215, 209, 239, 214, 209, 244, 216, 213, 247, 219, 216, 247, 219, 218, 246, 217, 219, 243, 217, 218, 242, 217, 220, 242, 217, 221, 243, 218, 222, 243, 218, 224, 244, 217, 224, 247, 217, 227, 249, 216, 225, 252, 216, 220, 252, 216, 218, 248, 218, 218, 246, 220, 221, 245, 221, 221, 244, 223, 222, 246, 222, 222, 247, 221, 222, 248, 219, 221, 249, 219, 221, 249, 217, 220, 249, 217, 220, 248, 216, 217, 249, 215, 216, 248, 214, 215, 248, 214, 215, 247, 217, 217, 246, 218, 217, 246, 216, 216, 245, 215, 215, 246, 214, 215, 245, 213, 214, 246, 212, 213, 246, 212, 213, 246, 210, 212, 246, 210, 212, 245, 211, 212, 245, 211, 212, 245, 211, 212, 245, 211, 212, 243, 211, 212, 245, 211, 212, 251, 215, 217, 241, 207, 208, 245, 217, 216, 243, 219, 217, 233, 208, 204, 251, 213, 210, 255, 206, 203, 248, 168, 167, 217, 111, 111, 224, 96, 95, 233, 88, 85, 247, 92, 87, 255, 96, 88, 255, 94, 85, 255, 95, 85, 255, 102, 88, 249, 108, 88, 253, 129, 105, 255, 148, 127, 251, 163, 143, 249, 180, 164, 254, 200, 188, 254, 211, 204, 244, 213, 208, 249, 225, 221, 245, 231, 228, 245, 237, 234, 244, 241, 236, 243, 242, 238, 244, 243, 239, 248, 244, 243, 250, 246, 245, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 247, 246, 244, 247, 246, 244, 247, 246, 244, 247, 246, 244, 247, 246, 244, 247, 246, 244, 247, 246, 244, 247, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 245, 245, 243, 244, 244, 242, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 245, 245, 243, 247, 247, 247, 246, 246, 246, 245, 245, 245, 243, 243, 243, 242, 242, 242, 240, 240, 240, 239, 239, 239, 238, 238, 238, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 241, 239, 240, 241, 239, 240, 241, 239, 240, 240, 238, 239, 236, 234, 235, 227, 225, 226, 217, 215, 216, 209, 207, 208, 210, 208, 209, 215, 213, 214, 212, 210, 211, 202, 200, 201, 200, 198, 199, 206, 204, 205, 205, 203, 204, 197, 195, 196, 213, 209, 208, 205, 201, 200, 206, 200, 200, 226, 220, 220, 236, 228, 226, 212, 204, 201, 202, 194, 191, 223, 216, 210, 205, 198, 192, 209, 202, 196, 211, 206, 200, 212, 207, 201, 210, 207, 202, 208, 205, 200, 206, 205, 200, 206, 205, 201, 208, 208, 206, 208, 208, 206, 208, 209, 204, 207, 208, 203, 208, 207, 203, 208, 207, 203, 208, 207, 203, 208, 207, 203, 214, 213, 208, 214, 213, 208, 215, 212, 207, 214, 211, 206, 213, 210, 205, 211, 208, 203, 211, 208, 201, 210, 207, 200, 211, 208, 203, 211, 208, 203, 212, 209, 204, 214, 211, 206, 215, 212, 207, 217, 214, 209, 218, 215, 210, 218, 215, 210, 224, 221, 216, 224, 221, 216, 225, 222, 217, 226, 223, 218, 227, 224, 219, 227, 224, 219, 228, 225, 220, 228, 225, 220, 227, 222, 218, 224, 219, 215, 219, 214, 210, 213, 208, 204, 206, 201, 197, 200, 195, 191, 195, 190, 186, 192, 187, 183, 196, 191, 187, 194, 189, 185, 192, 187, 183, 189, 184, 180, 188, 183, 179, 188, 183, 179, 189, 184, 180, 189, 184, 180, 190, 183, 177, 190, 181, 174, 189, 180, 173, 187, 178, 171, 188, 179, 172, 189, 180, 173, 190, 181, 174, 192, 183, 176, 193, 184, 177, 193, 184, 177, 193, 184, 177, 194, 185, 178, 195, 186, 179, 195, 186, 179, 196, 187, 180, 196, 187, 180, 193, 186, 180, 197, 190, 184, 202, 195, 189, 204, 197, 191, 204, 197, 191, 205, 198, 192, 206, 199, 193, 207, 200, 194, 209, 204, 198, 210, 205, 199, 212, 207, 201, 214, 209, 203, 215, 212, 205, 217, 214, 207, 218, 215, 208, 219, 216, 209, 222, 221, 217, 223, 222, 218, 225, 224, 220, 227, 226, 222, 228, 227, 223, 228, 227, 223, 228, 227, 223, 228, 227, 223, 230, 229, 225, 230, 229, 225, 230, 229, 225, 231, 230, 226, 231, 230, 226, 231, 230, 226, 232, 231, 227, 232, 231, 227, 231, 232, 227, 231, 232, 227, 231, 232, 227, 230, 231, 226, 230, 230, 228, 230, 230, 228, 229, 229, 227, 229, 229, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 226, 226, 226, 225, 225, 225, 222, 222, 222, 220, 220, 220, 219, 219, 219, 218, 219, 221, 217, 218, 220, 215, 216, 218, 213, 214, 216, 211, 212, 214, 208, 209, 211, 207, 208, 210, 206, 207, 209, 207, 208, 210, 208, 209, 211, 209, 210, 212, 206, 207, 209, 199, 200, 202, 189, 190, 192, 179, 180, 182, 173, 173, 173, 168, 166, 167, 171, 167, 166, 171, 167, 166, 172, 168, 167, 171, 167, 164, 170, 166, 163, 170, 165, 162, 169, 164, 161, 172, 167, 164, 172, 167, 164, 172, 167, 163, 172, 167, 163, 174, 166, 163, 173, 165, 162, 173, 165, 162, 173, 165, 162, 177, 167, 168, 177, 167, 168, 176, 167, 168, 177, 168, 169, 178, 169, 170, 176, 170, 170, 176, 170, 170, 176, 172, 171, 171, 167, 166, 171, 170, 168, 174, 173, 171, 174, 174, 172, 174, 174, 172, 175, 177, 174, 179, 179, 177, 181, 183, 182, 184, 185, 189, 189, 190, 195, 195, 195, 203, 201, 201, 209, 206, 206, 214, 211, 211, 219, 215, 218, 225, 219, 222, 229, 218, 221, 228, 219, 224, 230, 222, 227, 233, 220, 227, 233, 219, 226, 232, 220, 227, 233, 221, 230, 235, 224, 231, 237, 229, 234, 240, 231, 234, 241, 232, 235, 242, 234, 237, 244, 235, 238, 245, 237, 240, 247, 238, 241, 246, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 241, 244, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 247, 251, 254, 247, 251, 254, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 250, 254, 245, 250, 254, 245, 250, 254, 245, 250, 254, 245, 250, 254, 245, 250, 254, 245, 250, 254, 245, 250, 254, 245, 250, 254, 245, 250, 254, 245, 250, 254, 245, 250, 254, 245, 250, 254, 245, 250, 254, 245, 250, 254, 245, 250, 254, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 242, 246, 249, 240, 244, 247, 238, 242, 245, 236, 240, 243, 234, 238, 241, 232, 236, 239, 232, 236, 239, 229, 232, 239, 227, 230, 237, 225, 228, 233, 223, 226, 231, 221, 224, 229, 217, 220, 225, 210, 214, 217, 206, 210, 213, 206, 207, 209, 201, 203, 202, 195, 195, 195, 191, 189, 190, 189, 185, 184, 185, 181, 180, 182, 176, 176, 178, 172, 172, 180, 174, 174, 177, 171, 171, 173, 167, 167, 171, 165, 165, 173, 167, 167, 176, 170, 170, 182, 174, 172, 185, 177, 175, 193, 185, 183, 192, 184, 182, 191, 183, 181, 189, 181, 179, 186, 176, 174, 182, 172, 170, 178, 168, 166, 175, 165, 163, 175, 167, 164, 178, 170, 167, 180, 172, 169, 179, 171, 168, 182, 174, 171, 186, 178, 175, 185, 177, 174, 181, 173, 170, 180, 172, 169, 180, 172, 169, 179, 171, 168, 177, 169, 166, 175, 167, 164, 175, 167, 164, 177, 169, 166, 179, 171, 168, 175, 167, 164, 175, 167, 164, 174, 166, 163, 173, 165, 162, 172, 164, 161, 171, 163, 160, 169, 161, 158, 169, 161, 158, 175, 167, 164, 175, 167, 164, 175, 167, 164, 175, 167, 164, 176, 168, 165, 179, 171, 168, 182, 174, 171, 183, 175, 172, 180, 173, 167, 178, 171, 165, 177, 170, 164, 179, 172, 166, 182, 175, 169, 181, 174, 168, 177, 169, 166, 172, 164, 161, 163, 155, 152, 170, 162, 159, 175, 167, 164, 176, 168, 165, 178, 170, 168, 179, 171, 169, 174, 166, 164, 166, 158, 156, 170, 165, 162, 167, 162, 159, 163, 158, 155, 162, 157, 154, 164, 159, 156, 170, 165, 162, 177, 172, 169, 182, 177, 174, 180, 175, 172, 181, 176, 173, 182, 177, 174, 180, 175, 172, 174, 169, 166, 170, 165, 162, 172, 167, 164, 177, 172, 169, 184, 179, 175, 193, 188, 184, 201, 197, 194, 204, 200, 197, 200, 196, 195, 196, 192, 191, 195, 193, 194, 197, 195, 196, 194, 194, 196, 203, 203, 205, 209, 211, 210, 206, 208, 207, 196, 198, 197, 191, 193, 192, 195, 197, 194, 202, 204, 201, 202, 203, 205, 204, 205, 207, 209, 210, 212, 215, 216, 218, 221, 222, 224, 225, 226, 228, 228, 229, 231, 229, 230, 232, 228, 229, 231, 229, 230, 232, 231, 232, 234, 233, 234, 236, 236, 237, 239, 238, 239, 241, 240, 241, 243, 241, 242, 244, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 249, 249, 249, 250, 250, 250, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 248, 248, 248, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 251, 250, 249, 251, 250, 250, 250, 250, 251, 251, 251, 249, 248, 246, 249, 248, 246, 249, 245, 244, 248, 242, 242, 247, 239, 237, 244, 236, 234, 242, 232, 231, 241, 230, 228, 241, 226, 221, 245, 226, 220, 244, 224, 217, 242, 217, 212, 241, 212, 208, 242, 211, 209, 246, 215, 213, 251, 219, 220, 245, 215, 217, 244, 215, 219, 243, 216, 221, 242, 217, 221, 242, 217, 223, 241, 218, 226, 243, 217, 228, 243, 217, 226, 245, 219, 222, 244, 220, 220, 242, 221, 220, 242, 222, 223, 241, 223, 223, 243, 223, 224, 247, 221, 224, 250, 219, 224, 253, 216, 223, 255, 215, 221, 255, 214, 220, 254, 215, 218, 250, 216, 215, 245, 217, 214, 241, 218, 212, 241, 218, 212, 243, 218, 214, 245, 217, 214, 245, 215, 213, 245, 215, 213, 245, 214, 212, 244, 213, 211, 245, 211, 210, 245, 211, 210, 245, 209, 209, 245, 209, 209, 245, 209, 209, 245, 209, 209, 244, 210, 209, 244, 210, 209, 242, 211, 209, 244, 210, 209, 251, 215, 217, 240, 206, 207, 240, 212, 211, 243, 215, 212, 243, 209, 207, 255, 204, 201, 253, 175, 175, 229, 126, 127, 202, 73, 77, 234, 88, 89, 255, 103, 101, 255, 107, 102, 255, 107, 97, 255, 110, 99, 255, 109, 97, 248, 108, 93, 248, 121, 102, 255, 145, 126, 255, 165, 147, 252, 176, 160, 249, 193, 178, 255, 213, 201, 251, 221, 213, 241, 217, 213, 250, 232, 230, 248, 237, 235, 247, 242, 238, 246, 245, 241, 245, 245, 243, 245, 245, 243, 246, 246, 244, 248, 248, 246, 251, 250, 248, 251, 250, 248, 251, 250, 248, 251, 250, 248, 251, 250, 248, 251, 250, 248, 251, 250, 248, 251, 250, 248, 247, 246, 244, 247, 246, 244, 247, 246, 244, 247, 246, 244, 247, 246, 244, 247, 246, 244, 247, 246, 244, 247, 246, 244, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 244, 244, 242, 243, 243, 241, 242, 242, 240, 241, 241, 239, 241, 241, 239, 242, 242, 240, 243, 243, 241, 244, 244, 242, 246, 246, 246, 245, 245, 245, 244, 244, 244, 242, 242, 242, 240, 240, 240, 239, 239, 239, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 243, 243, 243, 239, 239, 239, 234, 234, 234, 230, 230, 230, 226, 226, 226, 220, 220, 220, 213, 213, 213, 208, 208, 208, 202, 202, 202, 214, 214, 214, 218, 218, 218, 207, 207, 207, 199, 199, 199, 205, 205, 205, 212, 212, 212, 213, 213, 213, 189, 187, 188, 178, 176, 177, 150, 146, 145, 131, 127, 126, 155, 150, 147, 194, 189, 185, 219, 211, 208, 225, 217, 214, 226, 219, 213, 228, 221, 215, 226, 221, 215, 226, 221, 215, 224, 221, 216, 225, 222, 217, 226, 225, 221, 229, 228, 224, 225, 225, 223, 225, 225, 223, 223, 224, 219, 222, 223, 218, 221, 220, 216, 219, 218, 214, 218, 217, 213, 217, 216, 212, 216, 215, 210, 216, 215, 210, 217, 214, 209, 217, 214, 209, 216, 213, 208, 215, 212, 207, 215, 212, 205, 214, 211, 204, 215, 212, 207, 214, 211, 206, 212, 209, 204, 211, 208, 203, 209, 206, 201, 207, 204, 199, 205, 202, 197, 205, 202, 197, 209, 206, 201, 210, 207, 202, 212, 209, 204, 215, 212, 207, 218, 215, 210, 220, 217, 212, 222, 219, 214, 223, 220, 215, 232, 227, 223, 232, 227, 223, 231, 226, 222, 229, 224, 220, 227, 222, 218, 226, 221, 217, 225, 220, 216, 224, 219, 215, 212, 207, 203, 211, 206, 202, 208, 203, 199, 203, 198, 194, 197, 192, 188, 190, 185, 181, 184, 179, 175, 180, 175, 171, 193, 186, 180, 190, 183, 177, 185, 178, 172, 182, 175, 169, 183, 176, 170, 187, 180, 174, 192, 185, 179, 196, 189, 183, 191, 184, 178, 191, 184, 178, 193, 186, 180, 194, 187, 181, 196, 189, 183, 198, 191, 185, 199, 192, 186, 200, 193, 187, 198, 191, 185, 200, 193, 187, 201, 194, 188, 202, 195, 189, 203, 196, 190, 206, 199, 193, 209, 204, 198, 213, 208, 202, 212, 207, 201, 213, 208, 202, 214, 209, 203, 216, 211, 205, 217, 214, 207, 218, 215, 208, 220, 217, 210, 221, 218, 211, 222, 221, 217, 223, 222, 218, 225, 224, 220, 227, 226, 222, 228, 227, 223, 229, 228, 224, 229, 228, 224, 229, 228, 224, 230, 229, 225, 230, 229, 225, 230, 229, 225, 231, 230, 226, 231, 230, 226, 231, 230, 226, 232, 231, 227, 232, 231, 227, 232, 233, 228, 232, 233, 228, 231, 232, 227, 231, 232, 227, 231, 231, 229, 230, 230, 228, 230, 230, 228, 230, 230, 228, 229, 229, 229, 229, 229, 229, 228, 228, 228, 227, 227, 227, 226, 226, 226, 224, 224, 224, 221, 221, 221, 220, 220, 220, 219, 220, 222, 218, 219, 221, 216, 217, 219, 214, 215, 217, 211, 212, 214, 208, 209, 211, 206, 207, 209, 205, 206, 208, 202, 203, 205, 204, 205, 207, 207, 208, 210, 208, 209, 211, 205, 206, 208, 198, 199, 201, 190, 191, 193, 186, 186, 186, 178, 176, 177, 177, 176, 174, 176, 172, 171, 174, 170, 169, 172, 168, 167, 172, 168, 167, 173, 169, 166, 173, 169, 166, 172, 167, 164, 172, 167, 164, 172, 167, 164, 171, 166, 163, 171, 166, 162, 170, 165, 161, 172, 164, 161, 171, 163, 160, 175, 165, 166, 175, 165, 166, 175, 165, 166, 174, 165, 166, 174, 165, 166, 173, 167, 167, 173, 167, 167, 173, 167, 167, 171, 165, 165, 172, 168, 167, 173, 169, 168, 171, 170, 168, 171, 170, 168, 172, 172, 170, 177, 176, 174, 179, 179, 179, 182, 181, 186, 186, 185, 190, 192, 191, 197, 197, 196, 202, 201, 202, 207, 206, 207, 212, 213, 214, 219, 216, 219, 224, 214, 217, 222, 216, 221, 225, 219, 224, 230, 220, 225, 231, 218, 225, 231, 219, 226, 232, 222, 229, 235, 224, 231, 237, 228, 233, 239, 230, 233, 240, 231, 234, 241, 232, 235, 242, 234, 237, 244, 235, 238, 245, 237, 240, 245, 237, 240, 245, 239, 242, 247, 239, 242, 247, 240, 243, 248, 241, 244, 249, 241, 245, 248, 242, 246, 249, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 247, 251, 254, 247, 251, 254, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 241, 245, 248, 239, 243, 246, 237, 241, 244, 236, 240, 243, 235, 239, 242, 234, 238, 241, 234, 237, 242, 232, 235, 242, 230, 233, 238, 228, 231, 236, 226, 229, 234, 221, 224, 229, 215, 219, 222, 210, 214, 217, 207, 208, 210, 203, 204, 206, 198, 198, 198, 194, 194, 194, 192, 190, 191, 191, 187, 186, 188, 182, 182, 185, 179, 179, 185, 179, 179, 183, 177, 177, 181, 175, 175, 182, 176, 176, 184, 178, 178, 186, 180, 180, 187, 179, 177, 186, 178, 176, 192, 184, 182, 192, 184, 182, 193, 185, 183, 193, 185, 183, 193, 183, 181, 191, 181, 179, 190, 180, 178, 188, 178, 176, 181, 173, 170, 184, 176, 173, 183, 175, 172, 180, 172, 169, 180, 172, 169, 184, 176, 173, 185, 177, 174, 183, 175, 172, 185, 177, 174, 180, 172, 169, 173, 165, 162, 171, 163, 160, 173, 165, 162, 176, 168, 165, 178, 170, 167, 178, 170, 167, 166, 158, 155, 168, 160, 157, 170, 162, 159, 172, 164, 161, 173, 165, 162, 173, 165, 162, 173, 165, 162, 173, 165, 162, 177, 169, 166, 178, 170, 167, 178, 170, 167, 178, 170, 167, 176, 168, 165, 175, 167, 164, 173, 165, 162, 171, 163, 160, 169, 162, 156, 170, 163, 157, 172, 165, 159, 173, 166, 160, 173, 166, 160, 172, 165, 159, 172, 164, 161, 172, 164, 161, 177, 169, 166, 180, 172, 169, 180, 172, 169, 178, 170, 167, 179, 171, 169, 179, 171, 169, 173, 165, 163, 165, 157, 155, 174, 169, 166, 173, 168, 165, 171, 166, 163, 171, 166, 163, 172, 167, 164, 176, 171, 168, 180, 175, 172, 183, 178, 175, 171, 166, 163, 165, 160, 157, 163, 158, 155, 171, 166, 163, 179, 174, 171, 182, 177, 174, 186, 181, 178, 189, 184, 181, 174, 169, 165, 183, 178, 174, 192, 188, 185, 192, 188, 185, 186, 182, 181, 182, 178, 177, 184, 182, 183, 189, 187, 188, 196, 196, 198, 194, 194, 196, 191, 193, 192, 188, 190, 189, 189, 191, 190, 195, 197, 196, 204, 206, 203, 212, 214, 211, 206, 207, 209, 209, 210, 212, 215, 216, 218, 221, 222, 224, 228, 229, 231, 233, 234, 236, 237, 238, 240, 239, 240, 242, 234, 235, 237, 235, 236, 238, 237, 238, 240, 239, 240, 242, 242, 243, 245, 244, 245, 247, 246, 247, 249, 247, 248, 250, 247, 247, 247, 247, 247, 247, 248, 248, 248, 249, 249, 249, 250, 250, 250, 250, 250, 250, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 250, 250, 250, 249, 251, 250, 249, 251, 250, 251, 251, 251, 251, 251, 251, 250, 249, 247, 250, 249, 247, 252, 248, 247, 250, 246, 245, 249, 244, 241, 248, 240, 238, 245, 237, 235, 245, 235, 233, 239, 226, 220, 246, 229, 222, 249, 228, 223, 247, 222, 217, 243, 214, 210, 240, 209, 206, 246, 212, 210, 252, 218, 217, 246, 214, 215, 245, 215, 215, 242, 216, 219, 242, 217, 220, 242, 217, 221, 240, 217, 223, 241, 218, 226, 240, 219, 226, 241, 221, 222, 241, 221, 220, 240, 222, 222, 239, 223, 223, 239, 223, 224, 242, 223, 225, 246, 221, 225, 250, 219, 225, 253, 216, 223, 255, 215, 221, 255, 214, 220, 254, 215, 216, 248, 217, 214, 243, 218, 211, 238, 220, 210, 238, 220, 210, 242, 217, 212, 243, 215, 212, 244, 214, 212, 243, 213, 211, 243, 212, 210, 242, 211, 209, 244, 210, 209, 244, 210, 209, 244, 208, 208, 244, 208, 208, 244, 208, 208, 244, 208, 208, 243, 209, 208, 243, 209, 208, 243, 209, 208, 241, 210, 208, 247, 213, 214, 241, 210, 208, 236, 208, 205, 242, 211, 208, 254, 209, 206, 253, 188, 186, 237, 141, 143, 219, 99, 101, 219, 76, 80, 246, 93, 95, 255, 107, 102, 255, 108, 101, 255, 114, 102, 255, 124, 111, 255, 125, 110, 244, 118, 103, 249, 136, 120, 254, 157, 141, 255, 177, 162, 250, 188, 175, 246, 202, 191, 248, 218, 208, 245, 225, 218, 239, 221, 219, 246, 232, 231, 246, 236, 235, 246, 241, 238, 244, 243, 239, 242, 242, 240, 241, 243, 240, 242, 244, 241, 244, 246, 243, 245, 245, 243, 246, 245, 243, 246, 245, 243, 246, 245, 243, 246, 245, 243, 246, 245, 243, 246, 245, 243, 246, 245, 243, 246, 245, 243, 246, 245, 243, 246, 245, 243, 246, 245, 243, 246, 245, 243, 246, 245, 243, 246, 245, 243, 246, 245, 243, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 242, 242, 240, 242, 242, 240, 243, 243, 241, 244, 244, 244, 243, 243, 243, 243, 243, 243, 241, 241, 241, 240, 240, 240, 239, 239, 239, 238, 238, 238, 238, 238, 238, 237, 237, 237, 237, 237, 237, 238, 238, 238, 238, 238, 238, 239, 239, 239, 239, 239, 239, 239, 239, 239, 240, 240, 240, 230, 230, 230, 229, 231, 230, 231, 231, 231, 232, 234, 233, 233, 233, 233, 229, 231, 230, 224, 224, 224, 218, 220, 219, 222, 222, 222, 222, 224, 223, 220, 220, 220, 212, 214, 213, 210, 210, 210, 209, 211, 210, 210, 210, 210, 207, 207, 207, 190, 190, 190, 187, 185, 186, 178, 174, 173, 171, 167, 166, 176, 171, 168, 184, 179, 176, 186, 178, 175, 182, 174, 171, 193, 186, 180, 197, 190, 184, 201, 196, 190, 207, 202, 196, 212, 209, 204, 219, 216, 211, 225, 224, 220, 231, 230, 226, 230, 230, 228, 230, 230, 228, 230, 231, 226, 231, 232, 227, 233, 232, 228, 233, 232, 228, 234, 233, 229, 234, 233, 229, 227, 226, 221, 226, 225, 220, 226, 223, 218, 223, 220, 215, 221, 218, 213, 218, 215, 210, 216, 213, 206, 215, 212, 205, 213, 210, 205, 214, 211, 206, 215, 212, 207, 216, 213, 208, 218, 215, 210, 220, 217, 212, 221, 218, 213, 221, 218, 213, 215, 212, 207, 215, 212, 207, 213, 210, 205, 211, 208, 203, 209, 206, 201, 207, 204, 199, 205, 202, 197, 204, 201, 196, 209, 204, 200, 211, 206, 202, 213, 208, 204, 217, 212, 208, 221, 216, 212, 224, 219, 215, 227, 222, 218, 229, 224, 220, 230, 225, 221, 230, 225, 221, 228, 223, 219, 224, 219, 215, 218, 213, 209, 209, 204, 200, 202, 197, 193, 197, 192, 188, 200, 193, 187, 196, 189, 183, 191, 184, 178, 186, 179, 173, 185, 178, 172, 188, 181, 175, 192, 185, 179, 195, 188, 182, 188, 181, 175, 189, 182, 176, 190, 183, 177, 192, 185, 179, 194, 187, 181, 196, 189, 183, 198, 191, 185, 199, 192, 186, 200, 193, 187, 201, 194, 188, 202, 195, 189, 202, 195, 189, 203, 196, 190, 208, 201, 195, 213, 208, 202, 218, 213, 207, 215, 210, 204, 215, 210, 204, 216, 211, 205, 218, 213, 207, 218, 215, 208, 220, 217, 210, 221, 218, 211, 222, 219, 214, 222, 221, 217, 223, 222, 218, 225, 224, 220, 227, 226, 222, 228, 227, 223, 229, 228, 224, 228, 227, 223, 228, 227, 223, 230, 229, 225, 230, 229, 225, 230, 229, 225, 231, 230, 226, 231, 230, 226, 231, 230, 226, 232, 231, 227, 232, 231, 227, 232, 233, 228, 232, 233, 228, 232, 233, 228, 231, 232, 227, 231, 231, 229, 231, 231, 229, 230, 230, 228, 230, 230, 228, 230, 230, 230, 230, 230, 230, 229, 229, 229, 229, 229, 229, 227, 227, 227, 225, 225, 225, 223, 223, 223, 221, 221, 221, 220, 221, 223, 219, 220, 222, 217, 218, 220, 215, 216, 218, 212, 213, 215, 210, 211, 213, 208, 209, 211, 207, 208, 210, 206, 207, 209, 204, 205, 207, 201, 202, 204, 199, 200, 202, 198, 199, 201, 199, 200, 202, 200, 201, 203, 201, 202, 204, 196, 194, 195, 190, 189, 187, 183, 179, 178, 175, 171, 170, 171, 167, 166, 173, 169, 168, 177, 173, 170, 180, 176, 173, 172, 167, 164, 171, 166, 163, 171, 166, 163, 170, 165, 162, 169, 164, 160, 168, 163, 159, 169, 161, 158, 169, 161, 158, 172, 162, 161, 172, 162, 163, 172, 162, 163, 172, 162, 163, 171, 162, 163, 171, 162, 163, 171, 162, 163, 169, 163, 163, 170, 164, 164, 170, 164, 164, 171, 165, 165, 169, 165, 164, 169, 165, 164, 169, 168, 166, 176, 172, 171, 177, 176, 174, 180, 178, 181, 182, 182, 184, 187, 186, 191, 191, 190, 195, 195, 194, 199, 200, 201, 206, 207, 208, 213, 212, 213, 218, 211, 212, 217, 212, 215, 220, 216, 219, 226, 216, 221, 227, 217, 222, 228, 217, 224, 230, 220, 227, 233, 225, 230, 236, 228, 231, 238, 228, 231, 238, 230, 233, 240, 231, 234, 241, 233, 236, 243, 234, 237, 244, 235, 238, 243, 236, 239, 244, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 241, 245, 248, 242, 246, 249, 242, 246, 249, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 251, 254, 247, 251, 254, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 242, 246, 249, 241, 245, 248, 241, 245, 248, 240, 244, 247, 239, 243, 246, 238, 242, 245, 238, 242, 245, 237, 241, 244, 240, 241, 246, 238, 239, 244, 233, 236, 241, 232, 235, 240, 230, 234, 237, 225, 229, 232, 219, 223, 226, 214, 218, 221, 207, 211, 212, 203, 207, 208, 200, 201, 203, 197, 197, 197, 197, 195, 196, 194, 192, 193, 193, 189, 190, 191, 187, 188, 189, 185, 184, 185, 181, 180, 182, 178, 177, 183, 179, 178, 187, 181, 181, 189, 183, 183, 187, 182, 179, 184, 179, 176, 187, 179, 177, 189, 181, 179, 193, 185, 183, 196, 188, 186, 195, 187, 184, 192, 184, 181, 188, 180, 177, 185, 177, 174, 178, 170, 167, 183, 175, 172, 184, 176, 173, 181, 173, 170, 180, 172, 169, 183, 175, 172, 185, 177, 174, 183, 175, 172, 185, 177, 174, 176, 168, 165, 168, 160, 157, 168, 160, 157, 174, 166, 163, 179, 171, 168, 178, 170, 167, 174, 166, 163, 168, 160, 158, 170, 162, 160, 172, 164, 162, 175, 167, 165, 176, 168, 166, 176, 168, 166, 175, 167, 165, 174, 166, 164, 170, 162, 160, 170, 162, 160, 169, 161, 159, 168, 160, 158, 166, 158, 156, 164, 156, 154, 162, 154, 152, 161, 153, 150, 158, 149, 144, 164, 155, 150, 169, 160, 155, 169, 160, 155, 167, 158, 153, 167, 158, 153, 173, 163, 161, 178, 168, 166, 184, 174, 172, 183, 173, 171, 180, 170, 168, 176, 166, 164, 178, 168, 167, 181, 171, 170, 178, 168, 167, 170, 162, 160, 172, 167, 164, 174, 169, 166, 177, 172, 169, 179, 174, 171, 182, 177, 174, 183, 178, 175, 184, 179, 176, 184, 179, 176, 173, 168, 165, 166, 161, 158, 167, 162, 159, 179, 174, 171, 187, 182, 179, 183, 178, 175, 178, 173, 170, 176, 171, 168, 195, 190, 186, 193, 188, 184, 188, 184, 181, 179, 175, 172, 171, 167, 166, 167, 163, 162, 166, 164, 165, 169, 167, 168, 191, 191, 193, 182, 182, 184, 174, 176, 175, 181, 183, 182, 198, 200, 199, 210, 212, 211, 211, 213, 210, 206, 208, 205, 216, 217, 219, 218, 219, 221, 223, 224, 226, 228, 229, 231, 232, 233, 235, 236, 237, 239, 238, 239, 241, 239, 240, 242, 235, 236, 238, 236, 237, 239, 238, 239, 241, 240, 241, 243, 243, 244, 246, 245, 246, 248, 247, 248, 250, 248, 249, 251, 247, 247, 247, 248, 248, 248, 248, 248, 248, 249, 249, 249, 250, 250, 250, 251, 251, 251, 251, 251, 251, 252, 252, 252, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 250, 248, 249, 250, 248, 249, 250, 250, 250, 250, 250, 250, 250, 250, 250, 251, 251, 251, 250, 252, 251, 250, 252, 251, 249, 249, 247, 249, 249, 247, 250, 249, 247, 251, 247, 246, 250, 245, 242, 247, 242, 239, 245, 240, 237, 246, 238, 235, 238, 227, 223, 243, 228, 223, 247, 228, 224, 249, 225, 221, 249, 221, 217, 247, 216, 213, 244, 213, 210, 243, 212, 209, 246, 215, 212, 245, 216, 212, 242, 216, 215, 241, 217, 215, 242, 218, 218, 242, 217, 220, 243, 218, 222, 241, 219, 222, 241, 221, 222, 241, 221, 220, 241, 221, 220, 241, 223, 223, 239, 223, 224, 240, 224, 225, 242, 223, 225, 244, 222, 225, 246, 220, 223, 249, 219, 221, 251, 216, 220, 251, 217, 216, 247, 218, 214, 243, 218, 211, 239, 219, 210, 239, 219, 210, 240, 215, 210, 243, 213, 211, 243, 212, 210, 243, 212, 210, 244, 210, 209, 243, 209, 208, 243, 207, 207, 243, 207, 207, 245, 206, 207, 245, 206, 207, 243, 207, 207, 243, 207, 207, 243, 207, 207, 242, 208, 207, 242, 208, 207, 240, 209, 207, 238, 208, 206, 245, 215, 213, 239, 208, 205, 245, 206, 201, 255, 205, 203, 248, 167, 166, 226, 113, 117, 228, 95, 98, 239, 93, 94, 250, 102, 100, 252, 114, 104, 248, 121, 106, 246, 125, 108, 248, 131, 113, 253, 136, 119, 252, 140, 126, 252, 151, 139, 251, 167, 156, 251, 185, 173, 247, 199, 187, 241, 211, 201, 240, 221, 214, 239, 225, 222, 237, 226, 224, 244, 232, 232, 246, 236, 235, 246, 241, 238, 245, 241, 238, 241, 241, 239, 239, 241, 238, 238, 243, 239, 239, 244, 240, 242, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 245, 244, 242, 245, 244, 242, 245, 244, 242, 245, 244, 242, 245, 244, 242, 245, 244, 242, 245, 244, 242, 245, 244, 242, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 243, 243, 241, 243, 243, 241, 242, 242, 240, 241, 241, 239, 241, 241, 239, 242, 242, 240, 243, 243, 241, 243, 243, 241, 242, 242, 242, 242, 242, 242, 241, 241, 241, 241, 241, 241, 241, 241, 241, 240, 240, 240, 240, 240, 240, 240, 240, 240, 238, 238, 238, 239, 239, 239, 239, 239, 239, 240, 240, 240, 241, 241, 241, 241, 241, 241, 242, 242, 242, 242, 242, 242, 243, 245, 244, 240, 244, 243, 242, 244, 243, 240, 244, 243, 240, 242, 241, 233, 237, 236, 228, 230, 229, 220, 224, 223, 220, 222, 221, 212, 216, 215, 211, 213, 212, 212, 216, 215, 215, 217, 216, 210, 214, 213, 209, 211, 210, 209, 211, 210, 221, 221, 221, 205, 205, 205, 199, 198, 196, 203, 202, 200, 194, 190, 187, 173, 169, 166, 164, 159, 155, 165, 160, 156, 159, 154, 150, 167, 162, 158, 180, 175, 171, 191, 186, 182, 199, 196, 191, 205, 202, 197, 211, 207, 204, 213, 212, 208, 220, 220, 218, 221, 221, 219, 222, 223, 218, 225, 226, 221, 228, 227, 223, 231, 230, 226, 233, 232, 228, 234, 233, 229, 240, 239, 234, 239, 238, 233, 240, 237, 232, 238, 235, 230, 236, 233, 228, 234, 231, 226, 232, 229, 222, 231, 228, 221, 219, 216, 211, 218, 215, 210, 217, 214, 209, 214, 211, 206, 212, 209, 204, 210, 207, 202, 208, 205, 200, 207, 204, 199, 208, 205, 200, 209, 206, 201, 210, 207, 202, 212, 209, 204, 213, 210, 205, 215, 212, 207, 216, 213, 208, 217, 214, 209, 212, 207, 203, 211, 206, 202, 208, 203, 199, 204, 199, 195, 199, 194, 190, 195, 190, 186, 192, 187, 183, 191, 186, 182, 207, 202, 198, 209, 204, 200, 213, 208, 204, 218, 213, 209, 223, 218, 214, 228, 223, 219, 231, 226, 222, 232, 227, 223, 214, 209, 205, 212, 207, 203, 208, 203, 199, 203, 198, 194, 199, 194, 190, 195, 190, 186, 193, 188, 184, 192, 187, 183, 190, 185, 181, 190, 185, 181, 191, 186, 182, 191, 186, 182, 192, 187, 183, 193, 188, 184, 193, 188, 184, 194, 189, 185, 197, 189, 186, 200, 192, 189, 204, 196, 193, 206, 198, 195, 206, 201, 197, 209, 204, 200, 214, 209, 205, 218, 213, 209, 217, 212, 208, 217, 212, 208, 217, 214, 209, 218, 215, 210, 220, 217, 212, 221, 218, 213, 222, 219, 214, 223, 220, 215, 221, 220, 216, 223, 222, 218, 224, 223, 219, 226, 225, 221, 227, 226, 222, 228, 227, 223, 228, 227, 223, 228, 227, 223, 230, 229, 225, 230, 229, 225, 230, 229, 225, 231, 230, 226, 231, 230, 226, 231, 230, 226, 232, 231, 227, 232, 231, 227, 232, 233, 228, 232, 233, 228, 232, 233, 228, 232, 233, 228, 231, 231, 229, 231, 231, 229, 230, 230, 228, 230, 230, 228, 231, 231, 231, 231, 231, 231, 230, 230, 230, 230, 230, 230, 228, 228, 228, 226, 226, 226, 224, 224, 224, 222, 222, 222, 220, 221, 223, 219, 220, 222, 217, 218, 220, 216, 217, 219, 214, 215, 217, 212, 213, 215, 210, 211, 213, 210, 211, 213, 210, 211, 213, 207, 208, 210, 202, 203, 205, 197, 198, 200, 195, 196, 198, 197, 198, 200, 199, 200, 202, 201, 202, 204, 202, 200, 201, 199, 197, 198, 193, 192, 190, 186, 185, 183, 182, 178, 177, 178, 174, 173, 175, 171, 170, 174, 170, 169, 170, 166, 163, 169, 165, 162, 169, 164, 161, 168, 163, 160, 167, 162, 159, 166, 161, 158, 165, 160, 156, 167, 159, 156, 170, 160, 159, 171, 159, 159, 169, 159, 158, 169, 159, 158, 169, 159, 158, 168, 160, 158, 167, 159, 157, 167, 159, 157, 169, 161, 159, 167, 162, 159, 167, 162, 159, 166, 161, 158, 165, 160, 157, 166, 162, 159, 172, 167, 164, 176, 172, 171, 177, 175, 176, 180, 178, 179, 183, 181, 184, 186, 184, 187, 189, 187, 190, 194, 193, 198, 201, 200, 205, 205, 206, 210, 205, 206, 210, 206, 210, 213, 210, 213, 218, 212, 215, 220, 213, 216, 221, 214, 219, 223, 218, 223, 229, 221, 226, 232, 227, 230, 237, 228, 231, 238, 229, 232, 239, 230, 233, 240, 232, 235, 242, 233, 236, 243, 235, 238, 243, 235, 238, 243, 238, 241, 246, 239, 242, 247, 239, 242, 247, 240, 243, 248, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 251, 254, 247, 251, 254, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 246, 249, 241, 245, 248, 241, 245, 248, 241, 245, 248, 240, 244, 247, 240, 244, 247, 240, 244, 247, 240, 244, 247, 240, 244, 247, 240, 241, 246, 238, 239, 244, 234, 237, 242, 232, 235, 240, 230, 234, 237, 225, 229, 232, 219, 223, 226, 214, 218, 221, 208, 212, 213, 204, 208, 209, 202, 203, 205, 199, 200, 202, 199, 199, 201, 198, 196, 197, 196, 194, 195, 195, 191, 192, 192, 188, 187, 187, 183, 182, 182, 178, 177, 181, 177, 176, 185, 179, 179, 188, 182, 182, 187, 182, 179, 184, 179, 176, 183, 175, 173, 188, 180, 178, 193, 185, 183, 196, 188, 186, 194, 186, 183, 187, 179, 176, 178, 170, 167, 171, 163, 160, 171, 163, 160, 179, 171, 168, 183, 175, 172, 182, 174, 171, 182, 174, 171, 184, 176, 173, 184, 176, 173, 181, 173, 170, 183, 175, 172, 173, 165, 162, 164, 156, 153, 167, 159, 156, 177, 169, 166, 182, 174, 171, 177, 169, 166, 169, 161, 158, 168, 160, 158, 169, 161, 159, 171, 163, 161, 171, 163, 161, 170, 162, 160, 167, 159, 157, 164, 156, 154, 162, 154, 152, 158, 150, 148, 158, 150, 148, 157, 149, 147, 156, 148, 146, 156, 148, 146, 158, 150, 148, 159, 151, 149, 160, 152, 149, 164, 155, 150, 170, 161, 156, 174, 165, 160, 170, 161, 156, 161, 152, 147, 158, 149, 144, 164, 154, 152, 172, 162, 160, 171, 161, 159, 169, 159, 157, 164, 154, 152, 161, 151, 149, 166, 156, 155, 173, 163, 162, 174, 164, 163, 168, 160, 158, 170, 162, 160, 172, 167, 164, 178, 173, 170, 184, 179, 176, 188, 183, 180, 188, 183, 180, 187, 182, 179, 186, 181, 178, 197, 192, 189, 190, 185, 182, 190, 185, 182, 195, 190, 187, 195, 190, 187, 191, 186, 183, 193, 188, 185, 202, 197, 194, 202, 197, 193, 192, 187, 183, 178, 174, 171, 171, 167, 164, 171, 167, 166, 176, 172, 171, 179, 177, 178, 182, 180, 181, 177, 177, 179, 188, 188, 190, 199, 201, 200, 203, 205, 204, 200, 202, 201, 197, 199, 198, 198, 200, 197, 201, 203, 200, 220, 221, 223, 221, 222, 224, 223, 224, 226, 224, 225, 227, 225, 226, 228, 225, 226, 228, 225, 226, 228, 225, 226, 228, 232, 233, 235, 233, 234, 236, 235, 236, 238, 237, 238, 240, 240, 241, 243, 242, 243, 245, 244, 245, 247, 245, 246, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 249, 249, 249, 250, 250, 250, 251, 251, 251, 251, 251, 251, 252, 252, 252, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 250, 248, 249, 250, 248, 249, 250, 250, 250, 250, 250, 250, 250, 250, 250, 251, 251, 251, 250, 252, 251, 250, 252, 251, 248, 248, 246, 248, 248, 246, 249, 248, 246, 248, 247, 245, 248, 244, 241, 247, 242, 239, 245, 240, 237, 246, 238, 236, 239, 229, 227, 240, 226, 225, 243, 225, 223, 248, 227, 224, 254, 229, 225, 253, 225, 221, 244, 215, 209, 236, 207, 201, 244, 215, 209, 245, 216, 210, 245, 216, 210, 245, 216, 212, 247, 216, 213, 247, 216, 213, 249, 215, 214, 251, 215, 215, 255, 215, 213, 255, 215, 213, 255, 215, 213, 253, 218, 216, 250, 219, 217, 247, 221, 220, 244, 223, 220, 243, 223, 222, 242, 222, 221, 243, 222, 219, 245, 219, 218, 247, 219, 216, 247, 218, 214, 245, 217, 213, 242, 217, 210, 242, 217, 212, 242, 212, 210, 243, 212, 210, 242, 211, 209, 244, 210, 209, 243, 209, 208, 243, 207, 207, 242, 206, 206, 244, 205, 206, 244, 205, 206, 244, 205, 206, 244, 205, 206, 242, 206, 206, 242, 206, 206, 242, 206, 206, 242, 206, 206, 241, 207, 206, 233, 203, 201, 250, 221, 217, 242, 209, 204, 247, 202, 199, 255, 201, 199, 242, 152, 152, 219, 100, 104, 240, 104, 106, 246, 102, 102, 251, 110, 103, 253, 127, 113, 252, 139, 121, 241, 136, 115, 230, 129, 109, 244, 141, 124, 255, 163, 151, 255, 170, 161, 254, 181, 174, 252, 198, 188, 250, 213, 204, 244, 224, 215, 240, 229, 223, 241, 233, 230, 244, 235, 236, 245, 235, 236, 248, 238, 239, 249, 241, 239, 246, 242, 239, 242, 242, 240, 240, 242, 239, 238, 243, 239, 240, 245, 241, 242, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 244, 243, 241, 244, 243, 241, 244, 243, 241, 244, 243, 241, 244, 243, 241, 244, 243, 241, 244, 243, 241, 244, 243, 241, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 243, 243, 241, 243, 243, 241, 242, 242, 240, 241, 241, 239, 241, 241, 239, 242, 242, 240, 243, 243, 241, 243, 243, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 239, 239, 239, 240, 240, 240, 240, 240, 240, 241, 241, 241, 242, 242, 242, 243, 243, 243, 243, 243, 243, 243, 245, 244, 244, 246, 245, 239, 243, 242, 236, 240, 239, 235, 239, 238, 236, 240, 239, 237, 241, 240, 236, 240, 239, 234, 238, 237, 232, 236, 235, 226, 230, 229, 226, 230, 229, 229, 233, 232, 222, 226, 225, 209, 213, 212, 206, 210, 209, 213, 217, 216, 215, 217, 216, 224, 224, 224, 217, 215, 216, 195, 194, 192, 194, 190, 187, 211, 207, 204, 202, 197, 193, 168, 163, 159, 164, 159, 155, 174, 169, 165, 188, 183, 179, 200, 195, 191, 204, 201, 196, 205, 202, 197, 204, 200, 197, 202, 201, 197, 210, 209, 207, 209, 209, 207, 211, 212, 207, 213, 214, 209, 216, 215, 211, 218, 217, 213, 220, 219, 215, 220, 219, 215, 213, 212, 207, 215, 214, 209, 220, 217, 212, 224, 221, 216, 228, 225, 220, 232, 229, 224, 236, 233, 226, 237, 234, 227, 238, 235, 230, 237, 234, 229, 235, 232, 227, 231, 228, 223, 228, 225, 220, 225, 222, 217, 223, 220, 215, 221, 218, 213, 213, 210, 205, 213, 210, 205, 213, 210, 205, 212, 209, 204, 212, 209, 204, 211, 208, 203, 211, 208, 203, 211, 208, 203, 210, 205, 201, 209, 204, 200, 208, 203, 199, 207, 202, 198, 205, 200, 196, 204, 199, 195, 203, 198, 194, 202, 197, 193, 199, 194, 190, 198, 193, 189, 197, 192, 188, 197, 192, 188, 199, 194, 190, 203, 198, 194, 207, 202, 198, 210, 205, 201, 230, 225, 221, 229, 224, 220, 228, 223, 219, 224, 219, 215, 217, 212, 208, 207, 202, 198, 198, 193, 189, 193, 188, 184, 197, 192, 188, 197, 192, 188, 196, 191, 187, 196, 191, 187, 195, 190, 186, 194, 189, 185, 194, 189, 185, 193, 188, 184, 193, 185, 182, 199, 191, 188, 206, 198, 195, 211, 203, 200, 211, 206, 202, 212, 207, 203, 214, 209, 205, 216, 211, 207, 218, 213, 209, 218, 213, 209, 218, 215, 210, 219, 216, 211, 221, 218, 213, 222, 219, 214, 223, 220, 215, 223, 220, 215, 221, 220, 216, 222, 221, 217, 224, 223, 219, 226, 225, 221, 227, 226, 222, 227, 226, 222, 227, 226, 222, 227, 226, 222, 230, 229, 225, 230, 229, 225, 230, 229, 225, 231, 230, 226, 231, 230, 226, 231, 230, 226, 232, 231, 227, 232, 231, 227, 233, 234, 229, 232, 233, 228, 232, 233, 228, 232, 233, 228, 231, 231, 229, 231, 231, 229, 231, 231, 229, 230, 230, 228, 231, 231, 231, 231, 231, 231, 231, 231, 231, 230, 230, 230, 228, 228, 228, 226, 226, 226, 224, 224, 224, 223, 223, 223, 219, 220, 222, 219, 220, 222, 218, 219, 221, 216, 217, 219, 215, 216, 218, 213, 214, 216, 212, 213, 215, 212, 213, 215, 209, 210, 212, 208, 209, 211, 206, 207, 209, 203, 204, 206, 199, 200, 202, 196, 197, 199, 192, 193, 195, 190, 191, 193, 197, 195, 196, 200, 198, 199, 204, 203, 201, 203, 202, 200, 198, 194, 193, 185, 181, 180, 170, 166, 165, 161, 157, 156, 169, 165, 162, 169, 165, 162, 169, 164, 161, 168, 163, 160, 166, 161, 158, 165, 160, 157, 164, 159, 155, 166, 158, 155, 168, 158, 157, 169, 157, 157, 168, 158, 157, 167, 157, 156, 167, 157, 156, 167, 157, 156, 165, 157, 155, 165, 157, 155, 167, 159, 157, 167, 159, 157, 164, 159, 156, 162, 157, 154, 161, 156, 153, 164, 159, 156, 169, 164, 161, 174, 169, 166, 177, 173, 172, 177, 176, 174, 180, 178, 179, 182, 180, 181, 185, 183, 184, 190, 188, 191, 197, 195, 198, 201, 200, 205, 202, 201, 206, 204, 205, 209, 208, 209, 214, 208, 211, 216, 209, 212, 217, 212, 215, 220, 216, 219, 226, 219, 222, 229, 226, 229, 236, 227, 230, 237, 228, 231, 238, 230, 233, 240, 231, 234, 241, 233, 236, 243, 234, 237, 242, 235, 238, 243, 238, 241, 246, 238, 241, 246, 239, 242, 247, 240, 243, 248, 241, 245, 248, 241, 245, 248, 242, 246, 249, 242, 246, 249, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 251, 254, 247, 251, 254, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 242, 246, 249, 241, 245, 248, 241, 245, 248, 241, 245, 248, 240, 244, 247, 240, 244, 247, 241, 242, 247, 238, 239, 244, 232, 235, 240, 230, 233, 238, 229, 233, 236, 226, 230, 233, 222, 227, 230, 218, 223, 226, 213, 217, 220, 213, 217, 220, 212, 216, 219, 212, 213, 217, 210, 209, 214, 205, 205, 207, 200, 200, 202, 199, 197, 198, 199, 195, 194, 195, 191, 190, 189, 185, 184, 182, 178, 177, 177, 173, 172, 174, 170, 169, 175, 170, 167, 175, 170, 167, 182, 177, 174, 184, 179, 176, 186, 181, 178, 187, 182, 179, 187, 179, 176, 183, 175, 172, 178, 170, 167, 175, 167, 164, 181, 173, 170, 181, 173, 170, 181, 173, 170, 180, 172, 169, 179, 171, 168, 176, 168, 165, 174, 166, 163, 173, 165, 162, 172, 164, 161, 165, 157, 154, 168, 160, 157, 179, 171, 168, 180, 172, 169, 166, 158, 155, 156, 148, 145, 155, 147, 144, 164, 154, 152, 167, 157, 155, 172, 162, 160, 175, 165, 163, 172, 162, 160, 166, 156, 154, 158, 148, 146, 153, 143, 141, 151, 141, 139, 158, 148, 146, 158, 148, 146, 152, 142, 140, 155, 145, 143, 164, 154, 152, 163, 153, 151, 153, 143, 141, 164, 155, 150, 160, 151, 146, 155, 146, 141, 150, 141, 136, 150, 141, 136, 154, 145, 140, 159, 149, 147, 163, 153, 151, 163, 153, 151, 158, 148, 146, 156, 146, 144, 161, 151, 149, 171, 161, 160, 177, 167, 166, 177, 167, 166, 173, 165, 163, 177, 169, 167, 177, 172, 169, 180, 175, 172, 183, 178, 175, 185, 180, 177, 187, 182, 179, 187, 182, 179, 187, 182, 179, 181, 176, 173, 183, 178, 175, 187, 182, 179, 190, 185, 182, 192, 187, 184, 193, 188, 185, 192, 187, 184, 191, 186, 183, 182, 177, 173, 180, 175, 171, 180, 176, 173, 183, 179, 176, 181, 177, 176, 177, 173, 172, 177, 175, 176, 183, 181, 182, 182, 182, 184, 189, 189, 191, 194, 196, 195, 194, 196, 195, 193, 195, 194, 201, 203, 202, 219, 221, 218, 235, 237, 234, 220, 221, 223, 226, 227, 229, 225, 226, 228, 227, 228, 230, 235, 236, 238, 232, 233, 235, 223, 224, 226, 225, 226, 228, 234, 235, 237, 236, 237, 239, 240, 241, 243, 243, 244, 246, 244, 245, 247, 243, 244, 246, 240, 241, 243, 239, 240, 242, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 248, 248, 248, 249, 249, 249, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 249, 249, 249, 248, 248, 248, 248, 248, 248, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 248, 248, 248, 248, 248, 248, 248, 248, 248, 247, 247, 247, 247, 247, 247, 247, 247, 247, 249, 247, 248, 249, 247, 248, 248, 248, 248, 249, 249, 249, 249, 249, 249, 250, 250, 250, 249, 251, 250, 249, 251, 250, 250, 252, 249, 249, 251, 248, 249, 249, 247, 249, 248, 246, 247, 246, 242, 247, 243, 240, 246, 242, 239, 247, 242, 239, 246, 237, 238, 247, 235, 237, 246, 232, 232, 246, 228, 228, 243, 224, 220, 242, 218, 214, 241, 216, 211, 241, 214, 207, 216, 187, 179, 232, 202, 192, 247, 214, 205, 255, 219, 210, 255, 224, 217, 255, 227, 221, 255, 216, 212, 255, 198, 195, 255, 186, 181, 255, 197, 193, 255, 203, 198, 255, 201, 195, 255, 209, 204, 255, 225, 217, 255, 228, 219, 241, 221, 210, 237, 223, 214, 238, 225, 216, 244, 225, 219, 246, 222, 218, 247, 217, 217, 247, 213, 214, 248, 212, 214, 249, 213, 215, 243, 209, 208, 242, 208, 207, 241, 207, 206, 240, 204, 204, 239, 203, 203, 241, 202, 203, 242, 203, 204, 243, 203, 204, 241, 201, 202, 241, 201, 202, 241, 201, 202, 240, 201, 202, 240, 201, 202, 240, 201, 202, 240, 201, 202, 238, 202, 202, 242, 208, 207, 242, 208, 206, 243, 208, 204, 248, 203, 198, 253, 188, 186, 249, 161, 160, 241, 126, 129, 236, 103, 104, 243, 103, 102, 250, 115, 109, 250, 132, 118, 247, 142, 123, 240, 148, 127, 241, 153, 133, 250, 159, 141, 254, 168, 155, 255, 181, 175, 253, 192, 187, 252, 207, 201, 249, 220, 214, 242, 229, 223, 238, 233, 229, 239, 235, 234, 242, 236, 236, 245, 236, 237, 246, 236, 237, 245, 237, 235, 243, 238, 235, 240, 239, 237, 239, 239, 237, 236, 241, 237, 238, 240, 237, 242, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 242, 241, 239, 242, 241, 239, 241, 240, 238, 241, 240, 238, 241, 240, 238, 240, 239, 237, 240, 239, 237, 240, 239, 237, 239, 239, 237, 240, 240, 238, 241, 241, 239, 242, 242, 240, 243, 243, 241, 242, 242, 240, 242, 242, 240, 241, 241, 239, 240, 240, 238, 240, 240, 238, 241, 241, 239, 241, 241, 239, 241, 241, 239, 242, 242, 240, 242, 242, 240, 242, 242, 240, 244, 244, 244, 243, 243, 243, 242, 242, 242, 241, 241, 241, 241, 241, 241, 242, 242, 242, 243, 243, 243, 244, 244, 244, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 244, 246, 245, 244, 246, 245, 241, 245, 244, 240, 244, 243, 238, 242, 241, 236, 240, 239, 234, 238, 237, 232, 236, 235, 231, 235, 234, 233, 237, 236, 232, 236, 235, 231, 235, 234, 233, 237, 236, 234, 238, 237, 230, 234, 233, 220, 224, 223, 211, 215, 214, 215, 216, 218, 214, 216, 215, 213, 213, 213, 213, 213, 211, 212, 211, 207, 210, 206, 203, 205, 200, 196, 201, 196, 192, 201, 196, 192, 198, 193, 189, 194, 189, 185, 192, 187, 183, 192, 188, 185, 198, 194, 191, 205, 201, 198, 207, 206, 202, 215, 214, 212, 215, 215, 213, 217, 218, 213, 219, 220, 215, 221, 220, 216, 221, 220, 216, 221, 220, 216, 221, 220, 216, 219, 218, 213, 219, 218, 213, 221, 218, 213, 220, 217, 212, 220, 217, 212, 220, 217, 212, 219, 216, 209, 219, 216, 209, 227, 222, 218, 227, 222, 218, 229, 224, 220, 231, 226, 222, 233, 228, 224, 235, 230, 226, 237, 232, 228, 238, 233, 229, 232, 227, 223, 231, 226, 222, 228, 223, 219, 224, 219, 215, 221, 216, 212, 217, 212, 208, 214, 209, 205, 213, 208, 204, 214, 211, 206, 213, 210, 205, 212, 209, 204, 211, 208, 203, 210, 207, 202, 209, 206, 201, 208, 205, 200, 207, 204, 199, 200, 197, 192, 202, 199, 194, 203, 200, 195, 204, 201, 196, 203, 200, 195, 200, 197, 192, 197, 194, 189, 194, 191, 186, 185, 181, 178, 188, 184, 181, 197, 193, 190, 213, 209, 206, 228, 224, 221, 235, 231, 228, 234, 230, 227, 229, 225, 222, 216, 212, 209, 211, 207, 204, 203, 199, 196, 195, 191, 188, 192, 188, 185, 192, 188, 185, 195, 191, 188, 197, 193, 190, 198, 193, 189, 201, 196, 192, 205, 200, 196, 209, 204, 200, 212, 207, 203, 212, 207, 203, 210, 207, 202, 209, 206, 201, 218, 215, 210, 218, 215, 210, 220, 217, 212, 222, 219, 214, 222, 221, 216, 224, 223, 218, 225, 224, 219, 226, 225, 220, 227, 226, 222, 227, 226, 222, 227, 226, 222, 228, 227, 223, 229, 228, 224, 230, 229, 225, 230, 229, 225, 231, 230, 226, 232, 231, 227, 232, 231, 227, 232, 231, 227, 233, 232, 228, 233, 232, 228, 233, 232, 228, 234, 233, 229, 234, 233, 229, 231, 232, 227, 231, 232, 227, 231, 232, 227, 231, 232, 227, 231, 231, 229, 231, 231, 229, 231, 231, 229, 231, 231, 229, 231, 231, 231, 230, 230, 230, 230, 230, 230, 230, 230, 230, 229, 229, 229, 229, 229, 229, 229, 229, 229, 228, 228, 228, 223, 224, 226, 223, 224, 226, 222, 223, 225, 220, 221, 223, 218, 219, 221, 217, 218, 220, 216, 217, 219, 215, 216, 218, 214, 215, 217, 212, 213, 215, 210, 211, 213, 206, 207, 209, 202, 203, 205, 199, 200, 202, 196, 197, 199, 195, 196, 198, 194, 192, 193, 192, 190, 191, 191, 189, 190, 192, 190, 191, 194, 192, 193, 195, 193, 194, 194, 193, 191, 192, 191, 189, 171, 167, 166, 169, 165, 164, 166, 162, 159, 163, 159, 156, 163, 158, 155, 162, 157, 154, 163, 158, 155, 165, 157, 155, 162, 152, 151, 164, 154, 153, 166, 156, 155, 167, 157, 156, 167, 157, 156, 166, 156, 155, 164, 154, 153, 162, 152, 151, 163, 155, 153, 163, 155, 153, 165, 157, 155, 167, 159, 157, 168, 160, 158, 170, 162, 160, 171, 163, 161, 170, 165, 162, 180, 175, 172, 174, 170, 167, 170, 166, 165, 173, 169, 168, 182, 178, 177, 186, 184, 185, 188, 186, 187, 186, 186, 188, 197, 197, 199, 197, 198, 200, 199, 200, 204, 202, 203, 207, 207, 208, 213, 212, 213, 218, 216, 217, 222, 216, 219, 224, 217, 220, 227, 221, 224, 231, 225, 228, 235, 227, 230, 237, 228, 231, 238, 230, 233, 240, 232, 235, 240, 234, 237, 242, 236, 239, 244, 237, 240, 245, 239, 242, 247, 241, 244, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 241, 245, 248, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 242, 246, 249, 241, 245, 248, 241, 245, 248, 241, 245, 248, 240, 244, 247, 240, 244, 247, 237, 238, 243, 235, 236, 241, 231, 234, 239, 231, 234, 239, 232, 236, 239, 233, 237, 240, 230, 235, 238, 228, 233, 236, 225, 229, 232, 224, 228, 231, 222, 226, 229, 218, 222, 225, 214, 215, 219, 209, 208, 213, 203, 202, 207, 199, 199, 201, 189, 187, 188, 188, 184, 183, 183, 179, 178, 179, 175, 174, 176, 172, 171, 175, 171, 170, 177, 172, 169, 178, 173, 170, 186, 181, 178, 186, 181, 178, 185, 180, 177, 184, 179, 176, 185, 177, 174, 183, 175, 172, 182, 174, 171, 181, 173, 170, 179, 171, 168, 178, 170, 167, 178, 170, 167, 177, 169, 166, 175, 167, 164, 173, 165, 162, 171, 163, 160, 170, 162, 159, 176, 168, 165, 179, 171, 168, 178, 170, 167, 170, 162, 159, 163, 155, 152, 162, 154, 151, 166, 158, 155, 170, 162, 159, 171, 161, 159, 171, 161, 159, 171, 161, 159, 169, 159, 157, 165, 155, 153, 159, 149, 147, 152, 142, 140, 149, 139, 137, 169, 159, 157, 161, 151, 149, 152, 142, 140, 148, 138, 136, 147, 137, 135, 150, 140, 138, 157, 147, 145, 165, 155, 153, 159, 150, 145, 158, 149, 144, 156, 147, 142, 156, 147, 142, 158, 149, 144, 163, 154, 149, 168, 158, 156, 172, 162, 160, 160, 150, 148, 157, 147, 145, 157, 147, 145, 163, 153, 151, 171, 161, 160, 175, 165, 164, 173, 163, 162, 168, 158, 157, 178, 170, 168, 180, 175, 172, 186, 181, 178, 190, 185, 182, 192, 187, 184, 191, 186, 183, 188, 183, 180, 185, 180, 177, 192, 187, 184, 192, 187, 184, 191, 186, 183, 189, 184, 181, 186, 181, 178, 183, 178, 175, 180, 175, 172, 178, 173, 170, 184, 179, 175, 184, 179, 175, 187, 183, 180, 191, 187, 184, 189, 185, 184, 184, 180, 179, 181, 179, 180, 185, 183, 184, 198, 198, 200, 199, 199, 201, 201, 203, 202, 204, 206, 205, 209, 211, 210, 214, 216, 215, 219, 221, 218, 222, 224, 221, 227, 228, 230, 230, 231, 233, 225, 226, 228, 222, 223, 225, 227, 228, 230, 223, 224, 226, 217, 218, 220, 220, 221, 223, 221, 222, 224, 225, 226, 228, 231, 232, 234, 237, 238, 240, 242, 243, 245, 244, 245, 247, 245, 246, 248, 244, 245, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 248, 248, 248, 249, 249, 249, 249, 249, 249, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 249, 249, 249, 248, 248, 248, 248, 248, 248, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 248, 248, 248, 248, 248, 248, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 249, 247, 248, 249, 247, 248, 248, 248, 248, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 251, 250, 249, 251, 250, 250, 252, 249, 249, 251, 248, 249, 249, 247, 248, 248, 246, 247, 246, 242, 246, 245, 241, 246, 242, 239, 246, 242, 239, 245, 239, 241, 246, 237, 240, 245, 235, 236, 242, 230, 230, 242, 227, 224, 242, 223, 219, 240, 219, 214, 242, 217, 210, 224, 197, 188, 225, 192, 183, 217, 179, 168, 203, 156, 146, 186, 132, 122, 169, 106, 99, 149, 80, 73, 140, 57, 49, 161, 57, 46, 204, 90, 79, 237, 123, 113, 243, 135, 125, 242, 145, 136, 253, 173, 162, 255, 206, 192, 255, 225, 211, 252, 224, 210, 244, 222, 209, 241, 216, 209, 243, 215, 212, 247, 215, 218, 250, 215, 221, 249, 214, 220, 247, 212, 218, 244, 208, 210, 243, 207, 207, 242, 206, 206, 242, 203, 204, 242, 203, 204, 242, 202, 203, 243, 203, 204, 244, 202, 204, 242, 200, 202, 242, 200, 202, 242, 200, 202, 241, 201, 202, 241, 201, 202, 241, 201, 202, 241, 201, 202, 240, 201, 202, 244, 205, 206, 244, 206, 205, 245, 207, 204, 247, 204, 198, 250, 191, 187, 246, 166, 165, 241, 135, 135, 237, 113, 113, 245, 113, 111, 251, 122, 116, 251, 134, 124, 246, 144, 129, 239, 150, 132, 240, 157, 139, 249, 167, 153, 250, 176, 165, 251, 188, 183, 248, 199, 195, 247, 212, 208, 244, 223, 218, 240, 231, 226, 236, 235, 231, 238, 237, 235, 242, 238, 239, 249, 240, 241, 250, 240, 241, 249, 241, 239, 247, 242, 239, 246, 242, 241, 243, 243, 241, 242, 244, 241, 242, 244, 241, 242, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 242, 241, 239, 242, 241, 239, 241, 240, 238, 241, 240, 238, 241, 240, 238, 239, 239, 237, 240, 240, 238, 241, 241, 239, 242, 242, 240, 243, 243, 241, 243, 243, 241, 242, 242, 240, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 242, 242, 240, 242, 242, 240, 242, 242, 240, 243, 243, 241, 247, 247, 247, 246, 246, 246, 246, 246, 246, 245, 245, 245, 245, 245, 245, 246, 246, 246, 246, 246, 246, 247, 247, 247, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 244, 246, 245, 247, 249, 248, 244, 248, 247, 243, 247, 246, 241, 245, 244, 239, 243, 242, 237, 241, 240, 236, 240, 239, 235, 239, 238, 230, 234, 233, 228, 232, 231, 226, 230, 229, 226, 230, 229, 226, 230, 229, 225, 229, 228, 223, 227, 226, 221, 225, 224, 207, 208, 210, 206, 207, 209, 206, 206, 206, 206, 206, 206, 208, 207, 205, 206, 205, 201, 204, 200, 197, 201, 196, 192, 206, 201, 197, 205, 200, 196, 203, 198, 194, 202, 197, 193, 202, 198, 195, 204, 200, 197, 207, 203, 200, 207, 206, 202, 213, 212, 210, 213, 213, 211, 215, 216, 211, 217, 218, 213, 219, 218, 214, 219, 218, 214, 219, 218, 214, 219, 218, 214, 220, 219, 214, 219, 218, 213, 221, 218, 213, 221, 218, 213, 220, 217, 212, 220, 217, 212, 220, 217, 210, 219, 216, 209, 219, 214, 210, 220, 215, 211, 221, 216, 212, 222, 217, 213, 224, 219, 215, 225, 220, 216, 227, 222, 218, 227, 222, 218, 232, 227, 223, 233, 228, 224, 233, 228, 224, 234, 229, 225, 234, 229, 225, 235, 230, 226, 235, 230, 226, 236, 231, 227, 213, 210, 205, 212, 209, 204, 211, 208, 203, 210, 207, 202, 209, 206, 201, 208, 205, 200, 208, 205, 200, 207, 204, 199, 209, 206, 201, 208, 205, 200, 205, 202, 197, 203, 200, 195, 200, 197, 192, 199, 196, 191, 198, 195, 190, 197, 194, 189, 197, 193, 190, 198, 194, 191, 199, 195, 192, 200, 196, 193, 202, 198, 195, 205, 201, 198, 210, 206, 203, 214, 210, 207, 229, 225, 222, 229, 225, 222, 228, 224, 221, 224, 220, 217, 217, 213, 210, 208, 204, 201, 200, 196, 193, 195, 191, 188, 200, 195, 191, 201, 196, 192, 203, 198, 194, 206, 201, 197, 210, 205, 201, 214, 209, 205, 216, 213, 208, 218, 215, 210, 218, 215, 210, 219, 216, 211, 220, 217, 212, 222, 219, 214, 222, 221, 216, 224, 223, 218, 225, 224, 219, 226, 225, 220, 227, 226, 222, 227, 226, 222, 228, 227, 223, 228, 227, 223, 229, 228, 224, 230, 229, 225, 231, 230, 226, 231, 230, 226, 232, 231, 227, 232, 231, 227, 232, 231, 227, 233, 232, 228, 233, 232, 228, 233, 232, 228, 234, 233, 229, 234, 233, 229, 232, 233, 228, 232, 233, 228, 232, 233, 228, 232, 233, 228, 232, 232, 230, 232, 232, 230, 232, 232, 230, 232, 232, 230, 231, 231, 231, 231, 231, 231, 230, 230, 230, 230, 230, 230, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 224, 225, 227, 223, 224, 226, 222, 223, 225, 220, 221, 223, 219, 220, 222, 217, 218, 220, 216, 217, 219, 215, 216, 218, 214, 215, 217, 212, 213, 215, 210, 211, 213, 206, 207, 209, 203, 204, 206, 199, 200, 202, 197, 198, 200, 196, 197, 199, 191, 191, 191, 190, 188, 189, 189, 187, 188, 189, 187, 188, 190, 188, 189, 190, 188, 189, 188, 187, 185, 186, 185, 183, 194, 190, 189, 188, 184, 183, 179, 175, 172, 169, 165, 162, 163, 158, 155, 160, 155, 152, 160, 155, 152, 161, 156, 153, 162, 154, 152, 160, 150, 149, 157, 147, 146, 155, 145, 144, 156, 146, 145, 161, 151, 150, 166, 156, 155, 170, 160, 159, 165, 157, 155, 166, 158, 156, 166, 158, 156, 167, 159, 157, 168, 160, 158, 168, 160, 158, 169, 161, 159, 169, 161, 159, 169, 164, 161, 170, 165, 162, 171, 166, 163, 172, 168, 165, 176, 172, 171, 183, 179, 178, 191, 187, 188, 195, 193, 194, 193, 191, 194, 193, 193, 195, 196, 195, 200, 198, 199, 203, 203, 204, 209, 208, 209, 214, 212, 213, 218, 215, 216, 221, 216, 219, 226, 220, 223, 230, 224, 227, 234, 227, 230, 237, 228, 231, 238, 229, 232, 239, 232, 235, 240, 234, 237, 242, 236, 239, 244, 237, 240, 245, 239, 242, 247, 241, 244, 249, 242, 246, 249, 243, 247, 250, 242, 246, 249, 242, 246, 249, 241, 245, 248, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 242, 246, 249, 241, 245, 248, 241, 245, 248, 241, 245, 248, 240, 244, 247, 240, 244, 247, 239, 240, 244, 237, 238, 242, 235, 236, 240, 236, 237, 241, 235, 239, 242, 235, 239, 242, 233, 238, 241, 231, 236, 239, 232, 237, 241, 231, 236, 240, 228, 231, 236, 223, 226, 231, 215, 218, 223, 209, 210, 215, 201, 202, 207, 198, 197, 202, 187, 185, 186, 184, 183, 181, 183, 179, 178, 181, 177, 176, 180, 176, 175, 182, 178, 177, 184, 180, 177, 186, 182, 179, 190, 185, 182, 188, 183, 180, 185, 180, 177, 182, 177, 174, 181, 176, 172, 183, 178, 174, 187, 179, 176, 189, 181, 178, 180, 172, 169, 180, 172, 169, 179, 171, 168, 177, 169, 166, 176, 168, 165, 174, 166, 163, 173, 165, 162, 172, 164, 161, 174, 166, 163, 180, 172, 169, 174, 166, 163, 158, 150, 147, 154, 146, 143, 163, 155, 152, 168, 160, 157, 162, 154, 151, 148, 139, 134, 150, 141, 136, 152, 143, 138, 154, 145, 140, 156, 147, 142, 157, 148, 143, 158, 149, 144, 158, 149, 144, 172, 163, 158, 148, 139, 134, 135, 126, 121, 147, 138, 133, 162, 153, 148, 163, 154, 149, 160, 151, 146, 161, 152, 147, 159, 148, 144, 158, 147, 143, 158, 147, 143, 158, 147, 143, 159, 148, 144, 159, 148, 144, 160, 149, 147, 161, 150, 148, 167, 156, 154, 163, 152, 150, 160, 149, 147, 162, 151, 149, 169, 157, 157, 173, 161, 161, 174, 162, 162, 171, 161, 160, 163, 155, 153, 167, 162, 159, 177, 172, 169, 185, 180, 177, 190, 185, 182, 189, 184, 181, 186, 181, 178, 184, 179, 176, 183, 178, 175, 182, 177, 174, 179, 174, 171, 177, 172, 169, 174, 169, 166, 173, 168, 165, 172, 167, 164, 172, 167, 164, 186, 181, 177, 188, 183, 179, 194, 190, 187, 202, 198, 195, 203, 199, 198, 199, 195, 194, 197, 195, 196, 200, 198, 199, 189, 189, 191, 189, 189, 191, 192, 194, 193, 206, 208, 207, 223, 225, 224, 231, 233, 232, 229, 231, 228, 223, 225, 222, 215, 216, 218, 218, 219, 221, 212, 213, 215, 208, 209, 211, 213, 214, 216, 212, 213, 215, 209, 210, 212, 215, 216, 218, 221, 222, 224, 225, 226, 228, 230, 231, 233, 237, 238, 240, 242, 243, 245, 245, 246, 248, 247, 248, 250, 247, 248, 250, 247, 247, 247, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 249, 249, 249, 249, 249, 249, 249, 249, 249, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 249, 249, 249, 248, 248, 248, 248, 248, 248, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 247, 247, 247, 247, 247, 247, 246, 246, 246, 246, 246, 246, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 247, 248, 249, 249, 249, 249, 249, 249, 248, 250, 249, 249, 251, 250, 249, 251, 248, 249, 251, 248, 248, 250, 247, 246, 248, 245, 246, 247, 242, 245, 246, 241, 245, 244, 240, 244, 243, 239, 244, 242, 243, 245, 241, 242, 244, 238, 240, 243, 234, 235, 242, 230, 230, 241, 227, 224, 242, 224, 220, 243, 223, 216, 254, 227, 220, 249, 215, 206, 240, 196, 187, 221, 167, 157, 185, 118, 109, 134, 57, 49, 87, 2, 0, 72, 0, 0, 125, 0, 0, 179, 40, 17, 225, 83, 63, 237, 94, 78, 232, 94, 81, 231, 107, 95, 236, 134, 120, 236, 154, 140, 255, 193, 181, 250, 200, 189, 251, 206, 201, 252, 212, 212, 249, 214, 218, 246, 215, 221, 240, 214, 223, 240, 215, 221, 243, 209, 210, 245, 207, 206, 244, 206, 205, 243, 203, 203, 242, 202, 202, 243, 201, 202, 244, 202, 203, 246, 202, 203, 244, 200, 201, 244, 200, 201, 244, 200, 201, 242, 200, 201, 242, 200, 201, 242, 200, 201, 242, 200, 201, 242, 200, 201, 246, 201, 204, 244, 202, 203, 243, 205, 202, 243, 204, 199, 245, 196, 191, 241, 176, 172, 239, 148, 147, 238, 128, 127, 249, 125, 125, 255, 128, 125, 255, 137, 131, 251, 144, 134, 245, 153, 140, 243, 164, 149, 250, 176, 163, 251, 187, 177, 249, 196, 192, 245, 205, 203, 245, 217, 213, 242, 227, 222, 239, 234, 230, 238, 237, 235, 239, 237, 238, 243, 239, 240, 248, 242, 242, 250, 241, 242, 250, 242, 240, 248, 243, 240, 247, 243, 240, 245, 244, 240, 244, 244, 242, 244, 244, 242, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 244, 243, 241, 244, 243, 241, 243, 242, 240, 243, 242, 240, 243, 242, 240, 242, 241, 239, 242, 241, 239, 242, 241, 239, 240, 240, 238, 240, 240, 238, 242, 242, 240, 243, 243, 241, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 241, 241, 239, 242, 242, 240, 242, 242, 240, 242, 242, 240, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 248, 248, 248, 247, 247, 247, 246, 246, 246, 245, 245, 245, 245, 245, 245, 246, 246, 246, 247, 247, 247, 248, 248, 248, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 246, 248, 247, 250, 252, 251, 248, 252, 251, 246, 250, 249, 245, 249, 248, 243, 247, 246, 242, 246, 245, 240, 244, 243, 240, 244, 243, 233, 237, 236, 231, 235, 234, 227, 231, 230, 222, 226, 225, 218, 222, 221, 218, 222, 221, 222, 226, 225, 225, 229, 228, 228, 232, 233, 225, 229, 230, 222, 224, 223, 218, 220, 219, 216, 216, 214, 213, 212, 208, 210, 206, 203, 206, 202, 199, 203, 198, 194, 205, 200, 196, 207, 202, 199, 209, 204, 201, 211, 206, 203, 212, 207, 204, 211, 207, 206, 209, 208, 206, 211, 210, 208, 212, 212, 210, 213, 214, 209, 215, 216, 211, 217, 216, 212, 218, 217, 213, 218, 217, 213, 218, 217, 213, 220, 219, 214, 220, 219, 214, 222, 219, 214, 221, 218, 213, 221, 218, 213, 220, 217, 212, 220, 217, 210, 220, 217, 210, 216, 211, 207, 216, 211, 207, 217, 212, 208, 217, 212, 208, 218, 213, 209, 218, 213, 209, 218, 213, 209, 219, 214, 210, 222, 217, 213, 223, 218, 214, 225, 220, 216, 227, 222, 218, 230, 225, 221, 232, 227, 223, 234, 229, 225, 235, 230, 226, 237, 234, 229, 235, 232, 227, 231, 228, 223, 226, 223, 218, 220, 217, 212, 214, 211, 206, 210, 207, 202, 208, 205, 200, 210, 207, 202, 207, 204, 199, 204, 201, 196, 201, 198, 193, 201, 198, 193, 202, 199, 194, 205, 202, 197, 207, 204, 199, 205, 200, 196, 206, 201, 197, 205, 200, 196, 198, 193, 189, 190, 185, 181, 189, 184, 180, 195, 190, 186, 202, 197, 193, 200, 195, 191, 206, 201, 197, 215, 210, 206, 224, 219, 215, 229, 224, 220, 229, 224, 220, 226, 221, 217, 224, 219, 215, 211, 206, 202, 210, 205, 201, 208, 203, 199, 208, 203, 199, 209, 206, 201, 213, 210, 205, 218, 215, 210, 220, 217, 212, 219, 216, 211, 219, 216, 211, 219, 218, 213, 220, 219, 214, 222, 221, 216, 224, 223, 218, 225, 224, 219, 225, 224, 219, 227, 226, 222, 227, 226, 222, 228, 227, 223, 229, 228, 224, 229, 228, 224, 230, 229, 225, 231, 230, 226, 231, 230, 226, 232, 231, 227, 232, 231, 227, 232, 231, 227, 233, 232, 228, 233, 232, 228, 233, 232, 228, 234, 233, 229, 234, 233, 229, 232, 233, 228, 232, 233, 228, 232, 233, 228, 232, 233, 228, 232, 232, 230, 232, 232, 230, 232, 232, 230, 232, 232, 230, 231, 231, 231, 231, 231, 231, 230, 230, 230, 230, 230, 230, 230, 230, 230, 229, 229, 229, 229, 229, 229, 229, 229, 229, 224, 225, 227, 224, 225, 227, 223, 224, 226, 221, 222, 224, 219, 220, 222, 218, 219, 221, 217, 218, 220, 216, 217, 219, 214, 215, 217, 212, 213, 215, 210, 211, 213, 207, 208, 210, 203, 204, 206, 200, 201, 203, 198, 199, 201, 197, 198, 200, 194, 194, 194, 192, 192, 192, 189, 189, 189, 188, 188, 188, 189, 187, 188, 188, 186, 187, 185, 183, 184, 183, 181, 182, 183, 182, 180, 186, 185, 183, 191, 187, 186, 190, 186, 185, 184, 180, 177, 173, 169, 166, 161, 157, 154, 155, 150, 147, 163, 155, 153, 163, 155, 153, 162, 154, 152, 161, 153, 151, 160, 152, 150, 159, 151, 149, 158, 150, 148, 158, 150, 148, 163, 155, 153, 163, 155, 153, 163, 155, 153, 163, 155, 153, 163, 155, 153, 163, 155, 153, 163, 155, 153, 163, 155, 153, 165, 157, 154, 169, 161, 158, 173, 165, 162, 171, 166, 162, 171, 166, 163, 175, 171, 168, 188, 184, 183, 196, 195, 193, 188, 186, 187, 189, 187, 188, 191, 189, 192, 194, 194, 196, 199, 198, 203, 204, 203, 208, 209, 208, 214, 210, 211, 216, 214, 217, 224, 218, 221, 228, 223, 226, 233, 226, 229, 236, 227, 230, 237, 229, 232, 239, 231, 234, 239, 234, 237, 242, 236, 239, 244, 237, 240, 245, 239, 242, 247, 241, 244, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 242, 246, 249, 241, 245, 248, 241, 245, 248, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 242, 246, 249, 241, 245, 248, 241, 245, 248, 241, 245, 248, 240, 244, 247, 240, 244, 247, 245, 246, 250, 242, 243, 247, 239, 240, 244, 238, 239, 243, 235, 239, 242, 233, 237, 240, 229, 234, 237, 226, 231, 234, 231, 236, 240, 229, 234, 238, 227, 230, 235, 221, 224, 229, 214, 217, 222, 205, 208, 213, 200, 201, 206, 196, 197, 201, 193, 193, 193, 192, 191, 189, 191, 187, 186, 189, 185, 184, 189, 185, 184, 192, 188, 187, 194, 190, 187, 197, 193, 190, 191, 186, 183, 189, 184, 181, 187, 182, 179, 185, 180, 177, 184, 179, 175, 185, 180, 176, 189, 181, 178, 191, 183, 180, 185, 177, 174, 184, 176, 173, 183, 175, 172, 181, 173, 170, 179, 171, 168, 178, 170, 167, 177, 169, 166, 177, 169, 166, 170, 162, 159, 165, 157, 154, 157, 149, 146, 155, 147, 144, 163, 155, 152, 169, 161, 158, 156, 148, 145, 137, 129, 126, 132, 123, 118, 137, 128, 123, 143, 134, 129, 151, 142, 137, 158, 149, 144, 163, 154, 149, 165, 156, 151, 167, 158, 153, 150, 141, 136, 145, 136, 131, 148, 139, 134, 161, 152, 147, 166, 157, 152, 158, 149, 144, 149, 140, 135, 146, 137, 132, 145, 134, 130, 147, 136, 132, 149, 138, 134, 152, 141, 137, 152, 141, 137, 151, 140, 136, 149, 138, 136, 147, 136, 134, 159, 148, 146, 152, 141, 139, 144, 133, 131, 141, 130, 128, 145, 133, 133, 152, 140, 140, 158, 146, 146, 160, 150, 149, 164, 156, 154, 166, 161, 158, 173, 168, 165, 179, 174, 171, 183, 178, 175, 183, 178, 175, 182, 177, 174, 180, 175, 172, 182, 177, 174, 182, 177, 174, 182, 177, 174, 184, 179, 176, 187, 182, 179, 192, 187, 184, 196, 191, 188, 199, 194, 191, 213, 208, 204, 210, 205, 201, 206, 202, 199, 202, 198, 195, 193, 189, 188, 182, 178, 177, 176, 174, 175, 178, 176, 177, 197, 197, 199, 194, 194, 196, 195, 197, 196, 204, 206, 205, 214, 216, 215, 217, 219, 218, 209, 211, 208, 201, 203, 200, 199, 200, 202, 207, 208, 210, 206, 207, 209, 207, 208, 210, 215, 216, 218, 217, 218, 220, 218, 219, 221, 226, 227, 229, 238, 239, 241, 239, 240, 242, 241, 242, 244, 244, 245, 247, 245, 246, 248, 246, 247, 249, 246, 247, 249, 245, 246, 248, 247, 247, 247, 248, 248, 248, 248, 248, 248, 248, 248, 248, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 249, 249, 249, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 247, 247, 247, 247, 247, 247, 246, 246, 246, 246, 246, 246, 246, 246, 246, 248, 246, 247, 248, 246, 247, 249, 247, 248, 249, 247, 248, 248, 248, 248, 249, 249, 249, 248, 250, 249, 248, 250, 249, 248, 250, 247, 248, 250, 247, 247, 249, 246, 246, 248, 245, 246, 247, 242, 245, 246, 241, 246, 245, 241, 244, 245, 240, 245, 245, 243, 244, 244, 244, 243, 241, 242, 243, 239, 240, 242, 236, 236, 242, 232, 231, 244, 230, 229, 246, 228, 224, 249, 224, 219, 251, 218, 211, 255, 216, 207, 255, 211, 201, 249, 182, 173, 211, 133, 123, 176, 89, 80, 167, 65, 50, 176, 52, 24, 208, 67, 37, 232, 80, 56, 239, 83, 61, 240, 83, 66, 241, 93, 79, 239, 109, 95, 232, 120, 106, 238, 144, 132, 245, 167, 157, 255, 191, 188, 255, 207, 208, 255, 210, 215, 241, 210, 216, 233, 214, 220, 234, 215, 219, 240, 208, 209, 245, 205, 205, 244, 204, 204, 243, 201, 202, 242, 200, 201, 244, 200, 201, 245, 201, 202, 246, 200, 202, 243, 197, 199, 243, 197, 199, 243, 197, 199, 242, 198, 199, 243, 197, 199, 242, 198, 199, 242, 198, 199, 242, 198, 199, 245, 199, 202, 244, 198, 201, 241, 201, 201, 241, 201, 199, 241, 198, 192, 241, 183, 179, 241, 161, 160, 242, 144, 143, 250, 136, 136, 255, 136, 137, 255, 140, 140, 251, 146, 142, 245, 156, 148, 246, 169, 159, 249, 185, 173, 250, 198, 187, 248, 205, 199, 244, 213, 210, 244, 223, 220, 242, 231, 227, 239, 235, 232, 238, 238, 236, 241, 239, 240, 245, 241, 240, 246, 240, 240, 246, 241, 238, 246, 241, 238, 245, 241, 238, 243, 242, 238, 243, 242, 238, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 242, 241, 239, 242, 241, 239, 242, 241, 239, 241, 240, 238, 241, 240, 238, 241, 240, 238, 240, 240, 238, 241, 241, 239, 242, 242, 240, 243, 243, 241, 244, 244, 242, 243, 243, 241, 243, 243, 241, 242, 242, 240, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 245, 245, 245, 245, 244, 244, 244, 243, 243, 243, 243, 243, 243, 244, 244, 244, 245, 245, 245, 245, 245, 245, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 251, 253, 252, 248, 252, 251, 247, 251, 250, 246, 250, 249, 245, 249, 248, 243, 247, 246, 242, 246, 245, 242, 246, 245, 243, 247, 246, 242, 246, 245, 237, 241, 240, 228, 232, 231, 218, 222, 221, 215, 219, 218, 218, 222, 221, 223, 227, 226, 227, 231, 232, 223, 227, 228, 218, 220, 219, 213, 215, 214, 210, 210, 208, 206, 206, 204, 205, 201, 198, 201, 197, 194, 198, 193, 189, 199, 194, 190, 202, 197, 194, 206, 201, 198, 210, 205, 202, 213, 208, 205, 214, 210, 209, 215, 211, 210, 213, 212, 210, 213, 213, 211, 215, 216, 211, 216, 217, 212, 219, 218, 214, 219, 218, 214, 219, 218, 214, 219, 218, 214, 221, 220, 215, 221, 220, 215, 222, 219, 214, 222, 219, 214, 222, 219, 214, 221, 218, 213, 221, 218, 211, 221, 218, 211, 221, 216, 212, 221, 216, 212, 220, 215, 211, 220, 215, 211, 219, 214, 210, 219, 214, 210, 219, 214, 210, 219, 214, 210, 216, 211, 207, 216, 211, 207, 216, 211, 207, 216, 211, 207, 216, 211, 207, 216, 211, 207, 216, 211, 207, 216, 211, 207, 227, 224, 219, 228, 225, 220, 229, 226, 221, 230, 227, 222, 232, 229, 224, 233, 230, 225, 234, 231, 226, 235, 232, 227, 217, 214, 209, 215, 212, 207, 212, 209, 204, 209, 206, 201, 207, 204, 199, 206, 203, 198, 206, 203, 198, 207, 204, 199, 203, 198, 194, 206, 201, 197, 208, 203, 199, 205, 200, 196, 200, 195, 191, 197, 192, 188, 198, 193, 189, 200, 195, 191, 200, 195, 191, 201, 196, 192, 203, 198, 194, 207, 202, 198, 211, 206, 202, 217, 212, 208, 221, 216, 212, 224, 219, 215, 224, 219, 215, 223, 218, 214, 220, 215, 211, 217, 212, 208, 215, 212, 207, 214, 211, 206, 215, 212, 207, 216, 213, 208, 220, 217, 212, 221, 218, 213, 220, 219, 214, 221, 220, 215, 223, 222, 217, 224, 223, 218, 225, 224, 219, 226, 225, 220, 227, 226, 222, 228, 227, 223, 228, 227, 223, 229, 228, 224, 230, 229, 225, 231, 230, 226, 231, 230, 226, 231, 230, 226, 232, 231, 227, 232, 231, 227, 232, 231, 227, 233, 232, 228, 233, 232, 228, 233, 232, 228, 234, 233, 229, 234, 233, 229, 232, 233, 228, 232, 233, 228, 232, 233, 228, 232, 233, 228, 232, 232, 230, 232, 232, 230, 232, 232, 230, 232, 232, 230, 231, 231, 231, 231, 231, 231, 231, 231, 231, 230, 230, 230, 230, 230, 230, 230, 230, 230, 229, 229, 229, 229, 229, 229, 225, 226, 228, 224, 225, 227, 223, 224, 226, 222, 223, 225, 220, 221, 223, 219, 220, 222, 217, 218, 220, 217, 218, 220, 214, 215, 217, 213, 214, 216, 210, 211, 213, 208, 209, 211, 204, 205, 207, 202, 203, 205, 199, 200, 202, 198, 199, 201, 200, 200, 200, 197, 197, 197, 194, 194, 194, 191, 191, 191, 191, 189, 190, 189, 187, 188, 185, 183, 184, 182, 180, 181, 167, 166, 164, 173, 172, 170, 184, 180, 179, 190, 186, 185, 191, 187, 184, 185, 181, 178, 177, 173, 170, 171, 167, 164, 156, 151, 148, 158, 150, 148, 158, 150, 148, 159, 151, 149, 160, 152, 150, 161, 153, 151, 163, 155, 153, 163, 155, 153, 163, 155, 153, 163, 155, 153, 163, 155, 153, 164, 156, 154, 164, 156, 154, 165, 157, 155, 165, 157, 155, 165, 157, 154, 167, 160, 154, 168, 161, 155, 169, 162, 156, 169, 161, 158, 168, 163, 159, 173, 168, 165, 182, 177, 174, 189, 185, 184, 185, 181, 182, 184, 182, 183, 187, 185, 188, 191, 189, 192, 195, 194, 199, 200, 199, 204, 205, 204, 210, 208, 207, 213, 214, 214, 222, 216, 219, 226, 220, 223, 230, 224, 227, 234, 225, 228, 235, 227, 230, 237, 230, 233, 238, 232, 235, 240, 236, 239, 244, 237, 240, 245, 239, 242, 247, 240, 243, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 240, 244, 247, 241, 245, 248, 241, 245, 248, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 242, 246, 249, 241, 245, 248, 241, 245, 248, 241, 245, 248, 240, 244, 247, 240, 244, 247, 244, 245, 249, 242, 241, 246, 238, 239, 243, 237, 238, 242, 235, 239, 242, 233, 237, 240, 229, 234, 238, 227, 232, 236, 227, 232, 236, 226, 231, 235, 224, 229, 233, 219, 224, 228, 214, 217, 222, 208, 211, 216, 201, 204, 211, 200, 201, 206, 200, 200, 200, 199, 198, 196, 196, 195, 193, 193, 192, 190, 195, 191, 190, 196, 192, 191, 198, 194, 191, 200, 196, 193, 190, 186, 183, 190, 186, 183, 190, 185, 182, 190, 185, 182, 189, 184, 180, 188, 183, 179, 187, 182, 178, 186, 181, 177, 188, 180, 177, 186, 178, 175, 184, 176, 173, 181, 173, 170, 179, 171, 168, 179, 171, 168, 179, 171, 168, 179, 171, 168, 175, 167, 164, 162, 154, 151, 157, 149, 146, 167, 159, 156, 175, 167, 164, 167, 159, 156, 151, 143, 140, 140, 132, 129, 147, 138, 133, 151, 142, 135, 158, 149, 142, 163, 154, 147, 164, 155, 148, 161, 152, 145, 156, 147, 140, 153, 144, 137, 133, 124, 117, 157, 148, 141, 171, 162, 155, 156, 147, 140, 132, 123, 116, 123, 114, 107, 129, 120, 113, 137, 128, 121, 128, 117, 113, 133, 122, 118, 140, 129, 125, 148, 137, 133, 153, 142, 138, 155, 144, 140, 154, 143, 141, 153, 142, 140, 157, 146, 144, 153, 142, 140, 149, 138, 136, 147, 136, 134, 149, 137, 137, 153, 141, 141, 158, 146, 146, 159, 149, 148, 179, 171, 169, 178, 173, 170, 178, 173, 170, 178, 173, 170, 179, 174, 171, 179, 174, 171, 180, 175, 172, 180, 175, 172, 185, 180, 177, 185, 180, 177, 185, 180, 177, 187, 182, 179, 192, 187, 184, 197, 192, 189, 202, 197, 194, 205, 200, 197, 208, 203, 199, 201, 196, 192, 192, 188, 185, 185, 181, 178, 176, 172, 171, 169, 165, 164, 168, 166, 167, 174, 172, 173, 198, 198, 200, 198, 198, 200, 199, 201, 200, 201, 203, 202, 202, 204, 203, 201, 203, 202, 199, 201, 198, 197, 199, 196, 203, 204, 206, 215, 216, 218, 220, 221, 223, 224, 225, 227, 234, 235, 237, 234, 235, 237, 234, 235, 237, 243, 244, 246, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 246, 247, 249, 245, 246, 248, 244, 245, 247, 248, 248, 248, 248, 248, 248, 248, 248, 248, 249, 249, 249, 249, 249, 249, 249, 249, 249, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 249, 249, 249, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 247, 247, 247, 247, 247, 247, 247, 247, 247, 246, 246, 246, 246, 246, 246, 246, 246, 246, 245, 245, 245, 248, 246, 247, 250, 246, 247, 248, 246, 247, 249, 247, 248, 248, 248, 248, 248, 248, 248, 248, 250, 249, 248, 250, 249, 245, 250, 246, 245, 250, 246, 247, 249, 246, 246, 248, 245, 246, 247, 242, 246, 247, 242, 245, 246, 241, 245, 246, 241, 246, 247, 242, 246, 246, 244, 244, 244, 244, 244, 242, 243, 244, 240, 241, 243, 237, 239, 244, 235, 236, 248, 234, 234, 245, 227, 225, 242, 217, 212, 248, 214, 205, 255, 216, 207, 255, 207, 196, 255, 188, 177, 251, 175, 162, 255, 171, 151, 243, 138, 106, 245, 125, 90, 242, 104, 75, 237, 89, 63, 243, 86, 67, 255, 101, 83, 255, 119, 104, 255, 132, 120, 239, 118, 109, 240, 133, 127, 249, 155, 155, 255, 180, 182, 255, 200, 203, 247, 211, 213, 232, 216, 217, 229, 215, 214, 239, 207, 208, 245, 203, 204, 243, 201, 202, 244, 200, 201, 243, 199, 200, 244, 198, 200, 244, 198, 200, 246, 197, 200, 243, 194, 197, 243, 194, 197, 243, 194, 197, 241, 195, 197, 243, 194, 197, 241, 195, 197, 241, 195, 197, 241, 195, 197, 245, 196, 200, 241, 195, 198, 238, 196, 198, 238, 198, 198, 240, 196, 195, 241, 187, 185, 241, 171, 171, 243, 157, 158, 247, 147, 149, 251, 145, 145, 251, 145, 145, 249, 151, 148, 245, 162, 156, 245, 177, 168, 247, 193, 181, 247, 204, 195, 247, 214, 207, 245, 222, 216, 244, 229, 224, 242, 234, 231, 238, 237, 233, 238, 238, 236, 241, 240, 238, 243, 242, 240, 245, 241, 240, 245, 241, 238, 243, 242, 238, 243, 242, 237, 242, 243, 238, 243, 242, 238, 243, 242, 240, 245, 241, 242, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 241, 240, 238, 241, 240, 238, 241, 240, 238, 240, 239, 237, 240, 239, 237, 240, 239, 237, 239, 238, 236, 239, 238, 236, 240, 240, 238, 241, 241, 239, 242, 242, 240, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 242, 242, 240, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 246, 245, 245, 245, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 245, 245, 245, 246, 246, 246, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 249, 251, 250, 248, 250, 249, 248, 250, 249, 247, 249, 248, 246, 248, 247, 245, 247, 246, 244, 246, 245, 244, 246, 245, 246, 248, 247, 247, 249, 248, 246, 248, 247, 239, 241, 240, 230, 232, 231, 224, 226, 225, 224, 226, 225, 224, 228, 227, 217, 221, 222, 212, 218, 218, 209, 213, 212, 209, 211, 210, 211, 211, 209, 213, 213, 211, 216, 212, 209, 216, 212, 209, 206, 201, 198, 205, 200, 197, 204, 199, 196, 205, 200, 197, 207, 201, 201, 210, 204, 204, 214, 208, 208, 215, 211, 210, 216, 215, 213, 216, 216, 214, 218, 219, 214, 220, 221, 216, 222, 221, 217, 222, 221, 217, 222, 221, 217, 222, 221, 217, 222, 221, 216, 222, 221, 216, 223, 220, 215, 223, 220, 215, 222, 219, 214, 222, 219, 214, 222, 219, 212, 222, 219, 212, 225, 220, 216, 225, 220, 216, 224, 219, 215, 224, 219, 215, 223, 218, 214, 222, 217, 213, 222, 217, 213, 221, 216, 212, 222, 217, 213, 221, 216, 212, 220, 215, 211, 219, 214, 210, 217, 212, 208, 216, 211, 207, 215, 210, 206, 214, 209, 205, 213, 210, 205, 215, 212, 207, 217, 214, 209, 220, 217, 212, 223, 220, 215, 227, 224, 219, 229, 226, 221, 230, 227, 222, 230, 227, 222, 229, 226, 221, 227, 224, 219, 224, 221, 216, 219, 216, 211, 213, 210, 205, 208, 205, 200, 205, 202, 197, 207, 202, 198, 204, 199, 195, 202, 197, 193, 203, 198, 194, 206, 201, 197, 206, 201, 197, 202, 197, 193, 199, 194, 190, 211, 206, 202, 208, 203, 199, 204, 199, 195, 201, 196, 192, 202, 197, 193, 206, 201, 197, 212, 207, 203, 215, 210, 206, 226, 221, 218, 226, 221, 218, 227, 222, 219, 227, 222, 219, 224, 220, 217, 221, 217, 214, 218, 214, 211, 217, 213, 210, 221, 220, 216, 221, 220, 216, 222, 221, 217, 223, 222, 218, 224, 223, 219, 225, 224, 220, 226, 225, 221, 226, 225, 221, 228, 227, 223, 228, 227, 223, 229, 228, 224, 229, 228, 224, 230, 229, 225, 231, 230, 226, 232, 231, 227, 232, 231, 227, 232, 231, 227, 232, 231, 227, 232, 231, 227, 233, 232, 228, 233, 232, 228, 233, 232, 228, 234, 233, 229, 234, 233, 229, 233, 234, 229, 233, 234, 229, 233, 234, 229, 233, 234, 229, 233, 233, 231, 233, 233, 231, 233, 233, 231, 233, 233, 231, 232, 232, 232, 232, 232, 232, 231, 231, 231, 231, 231, 231, 231, 231, 231, 230, 230, 230, 230, 230, 230, 230, 230, 230, 226, 227, 229, 225, 226, 228, 224, 225, 227, 223, 224, 226, 221, 222, 224, 219, 220, 222, 218, 219, 221, 218, 219, 221, 214, 215, 217, 213, 214, 216, 211, 212, 214, 208, 209, 211, 205, 206, 208, 203, 204, 206, 201, 202, 204, 200, 201, 203, 202, 202, 204, 199, 199, 201, 195, 195, 197, 192, 192, 194, 190, 190, 190, 187, 187, 187, 184, 182, 183, 181, 179, 180, 181, 180, 178, 175, 174, 172, 170, 166, 165, 166, 162, 161, 168, 164, 163, 176, 172, 171, 185, 181, 180, 192, 188, 185, 182, 177, 174, 175, 170, 166, 164, 159, 155, 155, 150, 146, 150, 145, 141, 150, 145, 141, 154, 149, 145, 157, 152, 148, 163, 155, 152, 163, 155, 152, 164, 156, 153, 166, 158, 155, 167, 159, 156, 168, 160, 157, 169, 161, 158, 170, 162, 159, 166, 157, 152, 163, 154, 147, 161, 154, 146, 165, 158, 152, 173, 166, 160, 178, 173, 169, 182, 177, 174, 182, 178, 175, 180, 176, 175, 182, 178, 179, 183, 181, 184, 187, 185, 188, 193, 191, 196, 198, 196, 201, 203, 201, 206, 205, 204, 210, 210, 210, 218, 212, 215, 222, 217, 220, 227, 220, 223, 230, 222, 225, 232, 225, 228, 235, 228, 231, 236, 230, 233, 238, 234, 237, 242, 236, 239, 244, 237, 240, 245, 239, 242, 247, 240, 244, 247, 241, 245, 248, 241, 245, 248, 241, 245, 248, 240, 244, 247, 240, 244, 247, 240, 244, 247, 241, 245, 248, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 247, 251, 254, 247, 251, 254, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 242, 246, 249, 241, 245, 248, 241, 245, 248, 241, 245, 248, 240, 244, 247, 240, 244, 247, 239, 238, 243, 237, 236, 241, 235, 236, 240, 236, 237, 241, 237, 241, 244, 238, 242, 245, 236, 241, 245, 234, 239, 243, 228, 233, 237, 227, 232, 236, 226, 231, 235, 223, 228, 232, 219, 222, 227, 213, 216, 221, 208, 211, 218, 206, 207, 212, 201, 201, 201, 200, 199, 197, 196, 195, 193, 193, 192, 190, 194, 190, 189, 195, 191, 190, 197, 193, 190, 198, 194, 191, 192, 188, 185, 192, 188, 185, 193, 188, 185, 192, 187, 184, 190, 185, 181, 188, 183, 179, 186, 181, 177, 184, 179, 175, 187, 179, 176, 184, 176, 173, 181, 173, 170, 178, 170, 167, 176, 168, 165, 176, 168, 165, 177, 169, 166, 178, 170, 167, 183, 175, 172, 174, 166, 163, 174, 166, 163, 180, 172, 169, 174, 166, 163, 160, 152, 149, 158, 150, 147, 166, 159, 153, 151, 142, 135, 155, 146, 139, 159, 150, 143, 161, 152, 145, 157, 148, 141, 149, 140, 133, 140, 131, 124, 134, 125, 118, 141, 132, 125, 145, 136, 129, 136, 127, 120, 117, 108, 101, 113, 104, 97, 125, 116, 109, 134, 125, 118, 131, 122, 115, 137, 126, 122, 141, 130, 126, 148, 137, 133, 153, 142, 138, 156, 145, 141, 156, 145, 141, 154, 143, 141, 152, 141, 139, 150, 139, 137, 152, 141, 139, 155, 144, 142, 158, 147, 145, 159, 147, 147, 158, 146, 146, 157, 145, 145, 155, 145, 144, 164, 156, 154, 162, 157, 154, 163, 158, 155, 166, 161, 158, 170, 165, 162, 176, 171, 168, 182, 177, 174, 185, 180, 177, 194, 189, 186, 194, 189, 186, 193, 188, 185, 192, 187, 184, 191, 186, 183, 192, 187, 184, 193, 188, 185, 193, 188, 185, 187, 182, 178, 182, 177, 173, 178, 174, 171, 179, 175, 172, 181, 177, 176, 185, 181, 180, 195, 193, 194, 206, 204, 205, 195, 195, 197, 200, 200, 202, 203, 205, 204, 204, 206, 205, 202, 204, 203, 203, 205, 204, 208, 210, 207, 212, 214, 211, 212, 213, 215, 225, 226, 228, 231, 232, 234, 234, 235, 237, 239, 240, 242, 236, 237, 239, 234, 235, 237, 242, 243, 245, 244, 245, 247, 244, 245, 247, 244, 245, 247, 244, 245, 247, 245, 246, 248, 246, 247, 249, 246, 247, 249, 247, 248, 250, 248, 248, 248, 248, 248, 248, 249, 249, 249, 249, 249, 249, 249, 249, 249, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 249, 249, 249, 248, 248, 248, 248, 248, 248, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 246, 246, 246, 246, 246, 246, 246, 246, 246, 245, 245, 245, 245, 245, 245, 249, 245, 246, 250, 246, 247, 248, 246, 247, 248, 246, 247, 248, 248, 248, 248, 248, 248, 247, 249, 248, 247, 249, 248, 245, 250, 246, 244, 249, 245, 246, 248, 245, 246, 248, 245, 247, 248, 243, 246, 247, 242, 246, 247, 242, 246, 247, 242, 247, 248, 243, 246, 247, 242, 245, 245, 243, 245, 243, 244, 244, 242, 245, 243, 241, 244, 245, 240, 244, 247, 238, 241, 249, 237, 237, 246, 231, 228, 249, 226, 220, 255, 222, 213, 255, 214, 202, 253, 201, 187, 247, 190, 173, 252, 184, 161, 255, 172, 140, 255, 161, 126, 255, 143, 113, 255, 126, 100, 253, 114, 91, 254, 113, 93, 255, 122, 104, 255, 130, 115, 255, 131, 119, 240, 123, 114, 231, 123, 120, 237, 145, 146, 252, 182, 184, 255, 209, 209, 242, 216, 215, 232, 211, 208, 239, 203, 203, 244, 200, 201, 243, 199, 200, 242, 196, 198, 242, 196, 198, 243, 194, 197, 244, 195, 198, 245, 195, 198, 242, 192, 195, 242, 192, 195, 242, 192, 195, 241, 192, 195, 241, 192, 195, 241, 192, 195, 241, 192, 195, 239, 193, 195, 241, 195, 198, 237, 192, 195, 236, 191, 194, 237, 192, 195, 241, 192, 195, 243, 187, 190, 242, 176, 178, 242, 166, 168, 242, 156, 157, 245, 153, 154, 245, 154, 153, 245, 160, 157, 244, 171, 165, 245, 186, 178, 245, 201, 190, 243, 211, 200, 246, 221, 214, 245, 228, 221, 242, 233, 226, 241, 236, 230, 238, 237, 233, 238, 238, 236, 241, 240, 238, 244, 243, 241, 246, 245, 241, 246, 245, 241, 245, 246, 240, 244, 247, 240, 245, 246, 241, 245, 246, 241, 248, 244, 245, 248, 244, 245, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 242, 241, 239, 241, 240, 238, 241, 240, 238, 241, 240, 238, 240, 239, 237, 240, 239, 237, 240, 239, 237, 239, 238, 236, 241, 241, 239, 242, 242, 240, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 250, 250, 250, 249, 249, 249, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 249, 249, 249, 250, 250, 250, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 247, 249, 248, 247, 249, 248, 246, 248, 247, 245, 247, 246, 245, 247, 246, 244, 246, 245, 243, 245, 244, 243, 245, 244, 239, 241, 240, 241, 243, 242, 243, 245, 244, 241, 243, 242, 238, 240, 239, 234, 236, 235, 231, 233, 232, 229, 233, 232, 225, 231, 231, 220, 226, 226, 214, 218, 217, 210, 214, 213, 214, 214, 212, 216, 216, 214, 219, 218, 214, 221, 217, 214, 219, 214, 211, 217, 212, 209, 213, 208, 205, 211, 206, 203, 210, 204, 204, 211, 205, 205, 213, 207, 207, 214, 210, 209, 218, 217, 215, 219, 219, 217, 220, 221, 216, 222, 223, 218, 224, 223, 219, 225, 224, 220, 225, 224, 220, 225, 224, 220, 222, 221, 216, 222, 221, 216, 224, 221, 216, 224, 221, 216, 223, 220, 215, 223, 220, 215, 223, 220, 213, 222, 219, 212, 224, 219, 215, 224, 219, 215, 224, 219, 215, 223, 218, 214, 223, 218, 214, 222, 217, 213, 222, 217, 213, 222, 217, 213, 222, 217, 213, 222, 217, 213, 222, 217, 213, 222, 217, 213, 221, 216, 212, 221, 216, 212, 221, 216, 212, 221, 216, 212, 221, 218, 213, 220, 217, 212, 219, 216, 211, 217, 214, 209, 214, 211, 206, 212, 209, 204, 211, 208, 203, 210, 207, 202, 223, 220, 215, 225, 222, 217, 228, 225, 220, 229, 226, 221, 229, 226, 221, 227, 224, 219, 223, 220, 215, 221, 218, 213, 219, 214, 210, 210, 205, 201, 200, 195, 191, 197, 192, 188, 200, 195, 191, 203, 198, 194, 201, 196, 192, 197, 192, 188, 194, 189, 185, 195, 190, 186, 198, 193, 189, 202, 197, 193, 206, 201, 197, 210, 205, 201, 213, 208, 204, 215, 210, 206, 217, 212, 209, 220, 215, 212, 224, 219, 216, 228, 223, 220, 229, 225, 222, 229, 225, 222, 227, 223, 220, 226, 222, 219, 224, 223, 219, 224, 223, 219, 225, 224, 220, 225, 224, 220, 226, 225, 221, 227, 226, 222, 227, 226, 222, 228, 227, 223, 228, 227, 223, 228, 227, 223, 229, 228, 224, 230, 229, 225, 231, 230, 226, 231, 230, 226, 232, 231, 227, 232, 231, 227, 232, 231, 227, 232, 231, 227, 232, 231, 227, 233, 232, 228, 233, 232, 228, 233, 232, 228, 234, 233, 229, 234, 233, 229, 233, 234, 229, 233, 234, 229, 233, 234, 229, 233, 234, 229, 233, 233, 231, 233, 233, 231, 233, 233, 231, 233, 233, 231, 232, 232, 232, 232, 232, 232, 232, 232, 232, 231, 231, 231, 231, 231, 231, 231, 231, 231, 230, 230, 230, 230, 230, 230, 227, 228, 230, 226, 227, 229, 225, 226, 228, 223, 224, 226, 222, 223, 225, 220, 221, 223, 219, 220, 222, 218, 219, 221, 214, 215, 217, 213, 214, 216, 211, 212, 214, 209, 210, 212, 206, 207, 209, 204, 205, 207, 202, 203, 205, 201, 202, 204, 200, 200, 202, 197, 197, 199, 193, 193, 195, 190, 190, 192, 188, 188, 188, 185, 185, 185, 182, 180, 181, 179, 177, 178, 190, 189, 187, 183, 182, 180, 175, 171, 170, 167, 163, 162, 163, 159, 158, 165, 161, 160, 170, 166, 165, 173, 169, 166, 186, 181, 178, 186, 181, 177, 186, 181, 177, 182, 177, 173, 176, 171, 167, 168, 163, 159, 159, 154, 150, 154, 149, 145, 158, 150, 147, 158, 150, 147, 159, 151, 148, 159, 151, 148, 160, 152, 149, 161, 153, 150, 161, 153, 150, 162, 155, 149, 160, 151, 144, 157, 148, 141, 157, 150, 142, 165, 158, 150, 177, 170, 164, 185, 178, 172, 183, 178, 174, 179, 174, 171, 176, 170, 170, 177, 173, 172, 180, 175, 179, 183, 181, 184, 189, 187, 192, 195, 193, 198, 200, 198, 203, 202, 201, 206, 206, 206, 214, 208, 211, 218, 213, 216, 223, 217, 220, 227, 219, 222, 229, 222, 225, 232, 225, 228, 233, 228, 231, 236, 233, 236, 241, 234, 237, 242, 236, 239, 244, 237, 240, 245, 239, 243, 246, 239, 243, 246, 239, 243, 246, 239, 243, 246, 240, 244, 247, 240, 244, 247, 240, 244, 247, 240, 244, 247, 241, 245, 248, 241, 245, 248, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 247, 251, 254, 247, 251, 254, 247, 251, 254, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 242, 246, 249, 241, 245, 248, 241, 245, 248, 241, 245, 248, 240, 244, 247, 240, 244, 247, 241, 240, 245, 239, 238, 243, 237, 238, 242, 239, 240, 244, 240, 244, 247, 241, 245, 248, 239, 244, 248, 238, 243, 247, 228, 236, 239, 228, 236, 239, 228, 233, 239, 225, 230, 236, 220, 225, 231, 213, 218, 224, 209, 212, 219, 208, 209, 214, 199, 199, 199, 198, 197, 195, 195, 194, 192, 192, 191, 189, 194, 190, 189, 195, 191, 190, 198, 194, 191, 200, 196, 193, 199, 195, 192, 196, 192, 189, 193, 188, 185, 189, 184, 181, 186, 181, 177, 185, 180, 176, 185, 180, 176, 186, 181, 177, 188, 180, 177, 186, 178, 175, 182, 174, 171, 178, 170, 167, 177, 169, 166, 177, 169, 166, 178, 170, 167, 180, 172, 169, 182, 174, 171, 182, 174, 171, 182, 174, 171, 177, 169, 166, 168, 160, 157, 161, 153, 150, 163, 155, 152, 169, 162, 156, 150, 141, 134, 151, 142, 133, 153, 144, 135, 152, 143, 134, 149, 140, 131, 142, 133, 124, 135, 126, 117, 130, 121, 112, 133, 124, 115, 116, 107, 98, 101, 92, 83, 107, 98, 89, 130, 121, 112, 148, 139, 130, 144, 135, 126, 131, 122, 115, 150, 139, 135, 152, 141, 137, 154, 143, 139, 154, 143, 139, 151, 140, 136, 147, 136, 132, 141, 130, 128, 138, 127, 125, 132, 121, 119, 133, 122, 120, 134, 123, 121, 134, 123, 121, 135, 123, 123, 137, 125, 125, 140, 128, 128, 141, 131, 130, 143, 135, 133, 144, 139, 136, 148, 143, 140, 155, 150, 147, 162, 157, 154, 169, 164, 161, 175, 170, 167, 178, 173, 170, 195, 190, 187, 195, 190, 187, 196, 191, 188, 197, 192, 189, 198, 193, 190, 197, 192, 189, 196, 191, 188, 196, 191, 188, 198, 193, 189, 193, 188, 184, 189, 185, 182, 188, 184, 181, 188, 184, 183, 190, 186, 185, 196, 194, 195, 206, 204, 205, 212, 212, 214, 215, 215, 217, 216, 218, 217, 215, 217, 216, 210, 212, 211, 207, 209, 208, 207, 209, 206, 208, 210, 207, 218, 219, 221, 230, 231, 233, 232, 233, 235, 231, 232, 234, 233, 234, 236, 229, 230, 232, 229, 230, 232, 238, 239, 241, 242, 243, 245, 242, 243, 245, 242, 243, 245, 242, 243, 245, 243, 244, 246, 245, 246, 248, 247, 248, 250, 248, 249, 251, 248, 248, 248, 249, 249, 249, 249, 249, 249, 249, 249, 249, 250, 250, 250, 250, 250, 250, 250, 250, 250, 251, 251, 251, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 249, 249, 249, 248, 248, 248, 248, 248, 248, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 246, 246, 246, 246, 246, 246, 246, 246, 246, 245, 245, 245, 245, 245, 245, 245, 245, 245, 249, 245, 246, 249, 245, 246, 248, 246, 247, 248, 246, 247, 247, 247, 247, 248, 248, 248, 247, 249, 248, 247, 249, 248, 244, 249, 245, 244, 249, 245, 244, 249, 245, 244, 249, 245, 246, 248, 243, 246, 248, 243, 247, 248, 243, 246, 247, 242, 247, 246, 241, 247, 246, 241, 247, 246, 244, 246, 244, 245, 246, 244, 247, 245, 243, 248, 244, 243, 249, 244, 242, 247, 234, 232, 235, 241, 236, 233, 247, 238, 231, 252, 235, 225, 255, 233, 219, 255, 227, 209, 250, 215, 193, 246, 202, 177, 236, 175, 147, 246, 171, 142, 255, 167, 141, 255, 163, 139, 255, 156, 132, 255, 147, 121, 249, 143, 117, 249, 145, 120, 255, 151, 131, 245, 138, 122, 236, 127, 120, 239, 137, 133, 252, 164, 163, 255, 189, 189, 252, 204, 202, 245, 205, 203, 243, 199, 200, 243, 197, 199, 242, 196, 198, 240, 194, 196, 241, 192, 195, 242, 192, 195, 243, 193, 196, 244, 192, 196, 240, 188, 192, 240, 188, 192, 240, 188, 192, 239, 189, 192, 239, 189, 192, 239, 189, 192, 239, 189, 192, 236, 190, 192, 236, 194, 196, 233, 191, 193, 233, 186, 192, 238, 185, 193, 243, 186, 193, 246, 183, 191, 243, 176, 183, 241, 170, 174, 237, 165, 166, 238, 164, 163, 237, 166, 162, 239, 172, 166, 241, 184, 177, 244, 197, 189, 243, 209, 197, 240, 216, 204, 245, 228, 218, 242, 232, 223, 243, 236, 228, 241, 238, 231, 238, 237, 233, 238, 239, 234, 241, 240, 238, 243, 242, 240, 245, 244, 240, 244, 245, 239, 241, 246, 239, 241, 246, 239, 243, 245, 240, 244, 245, 240, 247, 243, 244, 247, 243, 244, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 244, 243, 241, 244, 243, 241, 244, 243, 241, 243, 242, 240, 243, 242, 240, 243, 242, 240, 242, 241, 239, 242, 241, 239, 241, 241, 239, 242, 242, 240, 243, 243, 241, 244, 244, 242, 245, 245, 243, 244, 244, 242, 244, 244, 242, 243, 243, 241, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 251, 251, 251, 250, 250, 250, 249, 249, 249, 248, 248, 248, 248, 248, 248, 249, 249, 249, 250, 250, 250, 251, 251, 251, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 246, 245, 244, 246, 245, 237, 239, 238, 236, 238, 237, 235, 237, 236, 236, 238, 237, 236, 238, 237, 235, 237, 236, 231, 233, 232, 226, 230, 229, 223, 229, 229, 216, 222, 222, 206, 210, 211, 199, 203, 202, 198, 198, 196, 198, 198, 196, 200, 199, 195, 202, 198, 195, 216, 211, 208, 217, 212, 209, 217, 212, 209, 217, 212, 209, 217, 211, 211, 217, 211, 211, 217, 211, 211, 216, 212, 211, 219, 218, 216, 219, 219, 217, 221, 222, 217, 223, 224, 219, 225, 224, 220, 225, 224, 220, 225, 224, 220, 225, 224, 220, 223, 222, 217, 223, 222, 217, 225, 222, 217, 224, 221, 216, 224, 221, 216, 223, 220, 215, 223, 220, 213, 223, 220, 213, 223, 218, 214, 225, 217, 214, 225, 217, 214, 225, 217, 214, 225, 217, 214, 225, 217, 214, 225, 217, 214, 225, 217, 214, 221, 213, 210, 221, 213, 210, 221, 213, 210, 222, 214, 211, 222, 214, 211, 222, 214, 211, 222, 214, 211, 220, 215, 211, 215, 212, 207, 213, 212, 207, 214, 213, 208, 214, 213, 208, 215, 214, 209, 216, 215, 210, 217, 216, 211, 217, 216, 211, 210, 209, 204, 211, 210, 205, 214, 213, 208, 217, 216, 211, 221, 220, 215, 223, 222, 217, 225, 224, 219, 228, 225, 220, 226, 221, 215, 224, 217, 211, 218, 211, 205, 213, 206, 200, 209, 202, 196, 207, 200, 194, 204, 197, 191, 203, 196, 190, 201, 194, 188, 203, 196, 190, 206, 199, 193, 209, 202, 196, 210, 203, 197, 209, 202, 196, 207, 200, 194, 206, 198, 195, 213, 208, 205, 215, 210, 207, 218, 214, 211, 221, 217, 214, 225, 221, 218, 228, 224, 221, 230, 226, 223, 231, 227, 224, 227, 226, 222, 227, 226, 222, 227, 226, 222, 228, 227, 223, 228, 227, 223, 229, 228, 224, 228, 229, 224, 228, 229, 224, 228, 227, 223, 229, 228, 224, 229, 228, 224, 230, 229, 225, 231, 230, 226, 232, 231, 227, 232, 231, 227, 233, 232, 228, 232, 231, 227, 232, 231, 227, 232, 231, 227, 233, 232, 228, 233, 232, 228, 233, 232, 228, 234, 233, 229, 234, 233, 229, 233, 234, 229, 233, 234, 229, 233, 234, 229, 233, 234, 229, 233, 233, 231, 233, 233, 231, 233, 233, 231, 233, 233, 231, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 231, 231, 231, 231, 231, 231, 230, 230, 230, 230, 230, 230, 227, 228, 230, 227, 228, 230, 225, 226, 228, 224, 225, 227, 222, 223, 225, 221, 222, 224, 220, 221, 223, 219, 220, 222, 214, 215, 217, 213, 214, 216, 211, 212, 214, 209, 210, 212, 207, 208, 210, 205, 206, 208, 203, 204, 206, 203, 204, 206, 201, 201, 203, 197, 197, 199, 194, 194, 196, 191, 191, 193, 189, 189, 189, 187, 187, 187, 184, 182, 183, 181, 179, 180, 181, 179, 180, 182, 180, 181, 183, 182, 180, 180, 179, 177, 176, 172, 171, 167, 163, 162, 157, 153, 152, 152, 148, 145, 151, 147, 144, 159, 156, 151, 172, 169, 164, 184, 181, 176, 190, 187, 182, 189, 186, 181, 185, 180, 176, 182, 177, 173, 165, 160, 156, 164, 159, 155, 165, 157, 154, 164, 156, 153, 162, 154, 151, 161, 153, 150, 160, 152, 149, 159, 152, 146, 161, 152, 145, 164, 155, 146, 168, 159, 152, 174, 165, 158, 177, 170, 164, 178, 171, 165, 176, 168, 165, 171, 166, 163, 170, 164, 164, 171, 167, 166, 174, 169, 173, 179, 174, 178, 184, 182, 187, 190, 188, 193, 195, 193, 198, 197, 196, 201, 202, 202, 210, 204, 207, 214, 210, 213, 220, 214, 217, 224, 216, 219, 226, 219, 222, 229, 223, 226, 231, 225, 228, 233, 231, 234, 239, 232, 235, 240, 234, 237, 242, 236, 239, 244, 237, 241, 244, 237, 241, 244, 237, 241, 244, 237, 241, 244, 239, 243, 246, 239, 243, 246, 240, 244, 247, 240, 244, 247, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 247, 251, 254, 247, 251, 254, 247, 251, 254, 248, 252, 255, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 242, 246, 249, 241, 245, 248, 241, 245, 248, 241, 245, 248, 240, 244, 247, 242, 243, 247, 248, 249, 253, 246, 247, 251, 243, 244, 248, 242, 243, 247, 241, 245, 248, 240, 244, 247, 237, 242, 246, 234, 239, 243, 231, 236, 240, 230, 235, 239, 228, 233, 239, 224, 229, 235, 218, 223, 229, 211, 216, 222, 206, 209, 216, 204, 205, 210, 198, 198, 200, 197, 195, 196, 195, 193, 194, 193, 192, 190, 194, 192, 193, 198, 194, 193, 202, 198, 197, 204, 200, 197, 205, 201, 198, 199, 195, 192, 192, 187, 184, 185, 180, 177, 182, 177, 173, 182, 177, 173, 185, 180, 176, 188, 183, 179, 192, 184, 181, 189, 181, 178, 185, 177, 174, 182, 174, 171, 180, 172, 169, 181, 173, 170, 182, 174, 171, 184, 176, 173, 174, 166, 163, 178, 170, 167, 175, 167, 164, 165, 157, 154, 164, 156, 153, 168, 160, 157, 162, 154, 151, 148, 141, 135, 165, 156, 149, 164, 155, 146, 161, 152, 145, 156, 147, 138, 151, 142, 135, 145, 136, 127, 139, 130, 123, 136, 127, 118, 105, 96, 89, 106, 97, 88, 121, 112, 105, 142, 133, 124, 148, 139, 132, 139, 130, 121, 135, 126, 119, 139, 130, 123, 143, 132, 128, 144, 133, 129, 145, 134, 130, 146, 135, 131, 144, 133, 129, 140, 129, 125, 136, 125, 123, 133, 122, 120, 145, 134, 132, 141, 130, 128, 133, 122, 120, 127, 116, 114, 127, 116, 114, 136, 125, 123, 149, 137, 137, 158, 148, 146, 153, 145, 143, 155, 147, 145, 159, 151, 149, 162, 154, 152, 164, 156, 154, 164, 156, 154, 163, 155, 153, 160, 155, 152, 156, 148, 146, 157, 152, 149, 166, 158, 156, 170, 165, 162, 176, 171, 168, 179, 174, 171, 181, 176, 173, 181, 176, 173, 190, 185, 182, 187, 182, 179, 185, 181, 178, 187, 183, 180, 187, 183, 182, 188, 184, 183, 192, 190, 191, 200, 198, 199, 205, 205, 205, 208, 208, 208, 213, 213, 213, 218, 220, 219, 222, 224, 223, 223, 225, 224, 222, 224, 221, 220, 222, 219, 225, 227, 226, 235, 236, 238, 235, 236, 238, 231, 232, 234, 233, 234, 236, 231, 232, 234, 234, 235, 237, 247, 248, 250, 247, 248, 250, 246, 247, 249, 245, 246, 248, 244, 245, 247, 244, 245, 247, 244, 245, 247, 245, 246, 248, 246, 247, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 250, 250, 250, 250, 250, 250, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 249, 249, 249, 248, 248, 248, 248, 248, 248, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 246, 246, 246, 246, 246, 246, 246, 246, 246, 245, 245, 245, 245, 245, 245, 245, 245, 245, 247, 245, 246, 247, 245, 246, 247, 245, 246, 248, 246, 247, 247, 247, 247, 248, 248, 248, 247, 249, 248, 247, 249, 248, 246, 248, 245, 244, 249, 245, 246, 248, 245, 246, 248, 245, 246, 248, 245, 246, 248, 243, 247, 247, 245, 247, 248, 243, 247, 246, 241, 249, 246, 241, 249, 245, 242, 249, 245, 246, 246, 244, 247, 246, 244, 249, 245, 244, 249, 245, 244, 249, 246, 246, 248, 248, 248, 246, 245, 242, 237, 237, 230, 222, 238, 228, 216, 248, 235, 219, 251, 234, 216, 250, 223, 204, 255, 220, 201, 255, 201, 181, 246, 181, 163, 245, 172, 153, 247, 169, 147, 245, 165, 140, 241, 160, 133, 243, 157, 132, 247, 155, 134, 251, 154, 138, 255, 152, 143, 251, 152, 147, 246, 156, 155, 245, 169, 169, 249, 189, 189, 254, 204, 203, 243, 197, 199, 242, 196, 199, 240, 194, 196, 241, 192, 195, 241, 191, 194, 242, 190, 194, 242, 190, 192, 243, 191, 193, 239, 187, 189, 241, 186, 189, 241, 186, 189, 241, 186, 189, 239, 187, 191, 239, 187, 191, 238, 188, 191, 237, 188, 191, 238, 194, 195, 234, 189, 192, 234, 183, 188, 238, 183, 189, 244, 183, 191, 245, 182, 190, 242, 177, 183, 239, 173, 177, 236, 170, 172, 235, 171, 171, 234, 173, 172, 236, 181, 178, 238, 193, 188, 242, 205, 197, 242, 215, 206, 239, 221, 211, 241, 231, 222, 241, 234, 226, 241, 236, 230, 239, 238, 233, 238, 237, 233, 237, 238, 233, 241, 240, 238, 243, 242, 240, 241, 242, 237, 241, 242, 236, 240, 242, 237, 238, 243, 237, 240, 242, 237, 241, 241, 239, 244, 240, 239, 244, 240, 241, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 247, 246, 244, 247, 246, 244, 246, 245, 243, 246, 245, 243, 246, 245, 243, 245, 244, 242, 245, 244, 242, 245, 244, 242, 241, 241, 239, 242, 242, 240, 243, 243, 241, 244, 244, 242, 245, 245, 243, 244, 244, 242, 244, 244, 242, 243, 243, 241, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 248, 246, 248, 247, 246, 246, 246, 244, 246, 245, 245, 245, 245, 245, 247, 246, 247, 247, 247, 247, 249, 248, 247, 247, 247, 246, 248, 247, 247, 247, 247, 246, 248, 247, 247, 247, 247, 246, 248, 247, 247, 247, 247, 246, 248, 247, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 245, 247, 246, 242, 244, 243, 237, 239, 238, 231, 233, 232, 230, 232, 231, 231, 233, 232, 229, 231, 230, 225, 227, 226, 220, 222, 221, 225, 229, 228, 218, 222, 221, 210, 212, 211, 205, 205, 205, 203, 203, 201, 206, 205, 201, 209, 208, 204, 212, 208, 205, 201, 197, 194, 206, 201, 198, 213, 208, 205, 218, 214, 211, 223, 218, 215, 223, 219, 216, 223, 217, 217, 221, 217, 214, 218, 217, 215, 219, 218, 214, 221, 220, 216, 223, 222, 218, 224, 223, 219, 225, 224, 220, 227, 223, 220, 224, 223, 219, 225, 222, 217, 225, 222, 217, 225, 222, 217, 225, 222, 217, 224, 221, 216, 224, 221, 216, 223, 220, 213, 224, 219, 213, 223, 218, 214, 225, 217, 214, 226, 218, 215, 226, 218, 215, 227, 219, 216, 227, 219, 216, 227, 219, 216, 228, 220, 217, 227, 219, 216, 226, 218, 215, 225, 217, 214, 224, 216, 213, 222, 214, 211, 221, 213, 210, 220, 212, 209, 217, 212, 208, 219, 216, 211, 217, 216, 211, 215, 214, 209, 214, 213, 208, 212, 211, 206, 210, 209, 204, 209, 208, 203, 208, 207, 202, 216, 215, 210, 213, 212, 207, 210, 209, 204, 206, 205, 200, 204, 203, 198, 205, 204, 199, 206, 205, 200, 209, 206, 201, 225, 220, 214, 233, 226, 220, 239, 232, 226, 236, 229, 223, 227, 220, 214, 217, 210, 204, 212, 205, 199, 211, 204, 198, 211, 204, 198, 212, 205, 199, 212, 205, 199, 213, 206, 200, 215, 208, 202, 216, 209, 203, 218, 211, 205, 217, 212, 206, 218, 213, 209, 216, 212, 209, 215, 211, 208, 216, 212, 209, 218, 214, 211, 222, 218, 215, 226, 222, 219, 229, 225, 222, 228, 227, 223, 229, 228, 224, 229, 228, 224, 229, 228, 224, 230, 229, 225, 230, 229, 225, 229, 230, 225, 229, 230, 225, 229, 228, 224, 229, 228, 224, 229, 228, 224, 230, 229, 225, 231, 230, 226, 232, 231, 227, 232, 231, 227, 233, 232, 228, 232, 231, 227, 232, 231, 227, 232, 231, 227, 233, 232, 228, 233, 232, 228, 233, 232, 228, 234, 233, 229, 234, 233, 229, 233, 234, 229, 233, 234, 229, 233, 234, 229, 233, 234, 229, 233, 233, 231, 233, 233, 231, 233, 233, 231, 233, 233, 231, 233, 233, 233, 232, 232, 232, 232, 232, 232, 232, 232, 232, 231, 231, 231, 231, 231, 231, 231, 231, 231, 230, 230, 230, 228, 229, 231, 227, 228, 230, 226, 227, 229, 224, 225, 227, 223, 224, 226, 221, 222, 224, 220, 221, 223, 219, 220, 222, 214, 215, 217, 213, 214, 216, 211, 212, 214, 209, 210, 212, 207, 208, 210, 206, 207, 209, 204, 205, 207, 203, 204, 206, 204, 204, 206, 201, 201, 203, 197, 197, 199, 195, 195, 197, 194, 194, 194, 191, 191, 191, 189, 187, 188, 186, 184, 185, 180, 178, 179, 180, 178, 179, 179, 177, 178, 177, 176, 174, 175, 171, 172, 170, 166, 165, 165, 161, 162, 163, 159, 158, 163, 159, 156, 157, 154, 149, 150, 146, 143, 147, 144, 139, 151, 148, 143, 161, 158, 153, 175, 170, 166, 184, 179, 175, 189, 184, 180, 187, 182, 178, 187, 179, 176, 183, 175, 172, 179, 171, 168, 176, 168, 165, 173, 165, 162, 172, 165, 159, 168, 159, 154, 175, 166, 159, 183, 174, 169, 183, 174, 169, 174, 167, 161, 166, 158, 155, 163, 155, 152, 162, 154, 152, 166, 161, 158, 168, 162, 162, 171, 165, 167, 175, 171, 172, 182, 177, 181, 188, 183, 187, 194, 189, 193, 195, 193, 198, 200, 201, 206, 202, 205, 210, 208, 211, 216, 212, 215, 220, 215, 218, 223, 217, 220, 225, 221, 224, 229, 224, 227, 232, 230, 233, 238, 231, 234, 239, 233, 236, 241, 233, 238, 242, 236, 239, 244, 235, 240, 244, 235, 240, 244, 235, 240, 244, 239, 243, 246, 239, 243, 246, 240, 244, 247, 240, 244, 247, 240, 244, 247, 241, 245, 248, 241, 245, 248, 241, 245, 248, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 247, 251, 254, 247, 251, 254, 248, 252, 255, 248, 252, 255, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 244, 245, 249, 244, 245, 249, 241, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 237, 240, 245, 231, 234, 239, 230, 233, 238, 228, 231, 236, 224, 227, 232, 220, 223, 228, 215, 218, 223, 211, 214, 219, 211, 212, 217, 205, 204, 209, 203, 203, 205, 201, 201, 203, 198, 198, 198, 196, 196, 198, 196, 194, 195, 196, 194, 195, 196, 195, 193, 193, 189, 188, 192, 188, 187, 190, 185, 182, 188, 183, 180, 186, 181, 178, 186, 181, 178, 187, 179, 177, 187, 179, 177, 189, 184, 181, 186, 181, 178, 185, 180, 177, 189, 184, 181, 193, 188, 185, 191, 186, 183, 185, 177, 175, 178, 170, 168, 173, 165, 162, 173, 165, 162, 175, 167, 164, 173, 165, 162, 165, 155, 153, 153, 143, 141, 149, 140, 135, 152, 143, 138, 163, 156, 150, 164, 157, 149, 159, 152, 146, 152, 145, 137, 152, 145, 139, 155, 148, 140, 148, 141, 135, 136, 129, 121, 134, 127, 121, 140, 133, 125, 148, 141, 135, 152, 145, 137, 149, 142, 136, 143, 136, 128, 136, 129, 123, 134, 125, 120, 125, 114, 110, 149, 138, 134, 161, 150, 146, 149, 138, 134, 137, 126, 122, 134, 123, 119, 131, 120, 116, 122, 111, 107, 115, 106, 101, 108, 99, 94, 104, 95, 90, 111, 102, 97, 128, 119, 114, 144, 135, 130, 153, 143, 141, 155, 146, 141, 156, 146, 144, 155, 145, 143, 150, 140, 138, 142, 132, 130, 132, 122, 120, 123, 113, 111, 116, 106, 104, 112, 104, 101, 146, 136, 135, 150, 142, 140, 158, 148, 147, 164, 156, 154, 170, 162, 160, 176, 168, 166, 183, 174, 175, 185, 179, 179, 197, 191, 191, 192, 188, 187, 186, 182, 181, 183, 179, 178, 187, 183, 182, 197, 193, 192, 207, 206, 204, 215, 214, 212, 214, 213, 211, 216, 216, 214, 219, 219, 217, 222, 222, 220, 224, 224, 222, 223, 223, 221, 221, 221, 219, 220, 220, 218, 219, 221, 220, 222, 224, 223, 225, 227, 226, 225, 227, 226, 225, 227, 226, 225, 227, 226, 227, 229, 228, 229, 231, 230, 232, 234, 233, 234, 236, 235, 237, 239, 238, 241, 243, 242, 244, 246, 245, 247, 249, 248, 248, 250, 249, 249, 251, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 251, 251, 251, 251, 251, 251, 251, 251, 251, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 250, 250, 250, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 247, 247, 247, 247, 247, 247, 247, 247, 247, 246, 246, 246, 246, 246, 246, 246, 246, 246, 250, 250, 250, 249, 251, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 248, 250, 250, 250, 250, 250, 248, 247, 246, 244, 247, 246, 242, 247, 246, 244, 246, 245, 243, 246, 244, 245, 246, 244, 245, 245, 243, 244, 245, 243, 244, 244, 242, 243, 243, 242, 240, 244, 240, 237, 243, 238, 235, 244, 236, 233, 243, 234, 229, 242, 233, 226, 247, 230, 223, 247, 216, 211, 252, 213, 206, 253, 210, 201, 253, 205, 193, 251, 198, 182, 250, 189, 171, 248, 181, 164, 249, 176, 159, 255, 173, 159, 255, 168, 158, 251, 162, 156, 246, 161, 158, 245, 167, 167, 245, 177, 178, 248, 188, 190, 248, 196, 200, 242, 197, 202, 240, 195, 200, 240, 191, 195, 241, 191, 194, 244, 189, 194, 243, 188, 191, 241, 187, 187, 238, 184, 184, 241, 187, 185, 242, 186, 185, 244, 185, 187, 243, 184, 186, 241, 185, 188, 239, 184, 189, 237, 185, 189, 236, 186, 189, 238, 188, 191, 239, 187, 191, 238, 186, 190, 239, 184, 189, 238, 182, 185, 240, 179, 184, 240, 178, 181, 242, 177, 181, 238, 173, 177, 237, 175, 178, 238, 179, 183, 236, 186, 187, 236, 196, 196, 237, 208, 204, 237, 218, 212, 236, 225, 219, 244, 236, 233, 242, 238, 235, 243, 239, 236, 242, 241, 237, 243, 242, 240, 243, 242, 240, 242, 241, 239, 241, 240, 238, 241, 240, 238, 241, 240, 236, 240, 240, 238, 240, 240, 238, 240, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 242, 241, 239, 242, 241, 239, 242, 241, 239, 243, 242, 240, 243, 242, 240, 244, 243, 241, 244, 243, 241, 244, 243, 241, 245, 244, 242, 245, 244, 242, 245, 244, 242, 246, 245, 243, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 246, 246, 246, 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 249, 251, 248, 247, 252, 248, 248, 250, 247, 246, 251, 247, 247, 249, 246, 245, 250, 246, 247, 249, 246, 245, 250, 246, 246, 248, 245, 245, 250, 246, 247, 249, 246, 245, 250, 246, 246, 248, 245, 243, 248, 244, 243, 245, 242, 242, 244, 243, 242, 244, 243, 242, 243, 245, 242, 243, 245, 241, 242, 244, 240, 241, 243, 240, 241, 243, 239, 240, 242, 239, 240, 242, 235, 236, 238, 240, 241, 243, 242, 243, 245, 236, 237, 239, 230, 231, 233, 227, 228, 230, 224, 225, 227, 220, 220, 220, 219, 218, 216, 219, 218, 214, 221, 217, 214, 221, 217, 214, 215, 211, 208, 207, 204, 199, 208, 205, 200, 213, 210, 205, 215, 212, 207, 219, 216, 211, 222, 219, 214, 216, 215, 210, 211, 208, 203, 207, 206, 201, 215, 211, 208, 221, 218, 213, 225, 221, 218, 225, 222, 217, 225, 222, 217, 224, 221, 216, 224, 221, 216, 223, 220, 215, 224, 219, 215, 222, 219, 214, 227, 222, 218, 227, 222, 218, 227, 222, 218, 227, 222, 218, 227, 222, 218, 227, 222, 218, 227, 222, 218, 227, 222, 218, 226, 221, 215, 226, 221, 215, 226, 221, 215, 226, 221, 215, 225, 220, 214, 225, 220, 214, 224, 219, 213, 224, 219, 213, 223, 218, 212, 223, 218, 212, 222, 217, 211, 222, 217, 211, 221, 216, 210, 221, 216, 210, 221, 216, 210, 221, 216, 210, 218, 215, 210, 218, 215, 210, 218, 215, 210, 217, 214, 209, 217, 214, 209, 217, 214, 209, 216, 213, 208, 216, 213, 208, 213, 210, 205, 212, 209, 204, 212, 209, 204, 211, 208, 203, 210, 207, 202, 210, 207, 202, 209, 206, 201, 209, 206, 201, 208, 203, 197, 210, 205, 199, 213, 208, 202, 217, 212, 206, 223, 218, 212, 229, 224, 218, 234, 229, 223, 237, 232, 226, 216, 211, 205, 214, 209, 203, 212, 207, 201, 210, 205, 199, 210, 205, 199, 213, 208, 202, 215, 210, 204, 217, 212, 206, 224, 221, 214, 220, 219, 214, 218, 217, 212, 216, 215, 210, 217, 216, 211, 220, 219, 214, 223, 222, 217, 225, 224, 219, 222, 221, 217, 224, 223, 219, 228, 227, 223, 231, 230, 226, 232, 231, 227, 233, 232, 228, 232, 231, 229, 231, 230, 228, 230, 229, 225, 230, 229, 225, 231, 230, 226, 231, 230, 226, 231, 230, 226, 232, 231, 227, 232, 231, 227, 232, 231, 227, 234, 233, 229, 234, 233, 229, 234, 233, 229, 234, 233, 229, 234, 233, 229, 234, 233, 229, 234, 233, 229, 234, 233, 229, 233, 234, 229, 233, 234, 229, 233, 234, 229, 233, 234, 229, 233, 234, 229, 233, 234, 229, 233, 233, 231, 233, 233, 231, 232, 232, 230, 232, 232, 230, 232, 232, 230, 232, 232, 230, 231, 231, 231, 231, 231, 231, 230, 230, 230, 230, 230, 230, 228, 230, 229, 228, 230, 229, 226, 228, 227, 225, 227, 226, 223, 225, 224, 222, 224, 223, 221, 223, 222, 220, 222, 221, 217, 219, 218, 215, 217, 216, 213, 215, 214, 212, 214, 213, 211, 213, 212, 209, 211, 210, 205, 207, 206, 202, 204, 203, 203, 203, 205, 201, 201, 203, 198, 198, 200, 194, 194, 196, 191, 191, 193, 189, 189, 191, 189, 187, 190, 189, 187, 190, 183, 181, 184, 179, 177, 180, 179, 174, 178, 185, 181, 182, 191, 186, 190, 184, 180, 181, 165, 160, 164, 148, 144, 145, 155, 151, 150, 157, 153, 150, 157, 151, 151, 152, 147, 144, 145, 140, 137, 142, 137, 134, 144, 139, 136, 148, 143, 140, 163, 155, 153, 166, 158, 156, 172, 164, 161, 178, 170, 167, 184, 176, 173, 187, 179, 176, 189, 179, 177, 189, 179, 177, 183, 175, 172, 178, 170, 167, 169, 161, 158, 162, 154, 151, 157, 149, 146, 157, 149, 147, 160, 152, 150, 162, 154, 152, 166, 158, 156, 169, 161, 159, 173, 164, 165, 176, 170, 170, 182, 176, 176, 188, 182, 182, 192, 186, 186, 193, 189, 190, 197, 197, 199, 200, 201, 205, 205, 206, 210, 208, 209, 213, 211, 212, 216, 215, 216, 220, 218, 222, 225, 222, 226, 229, 225, 230, 234, 228, 233, 237, 232, 237, 243, 231, 238, 244, 233, 238, 244, 231, 238, 244, 232, 239, 245, 234, 241, 247, 237, 242, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 243, 246, 251, 244, 247, 252, 245, 248, 253, 245, 248, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 251, 245, 249, 252, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 244, 245, 249, 244, 245, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 238, 241, 246, 238, 241, 246, 238, 241, 246, 234, 237, 242, 233, 236, 241, 232, 235, 240, 229, 232, 237, 225, 228, 233, 221, 224, 229, 218, 221, 226, 216, 219, 224, 213, 214, 218, 212, 211, 216, 208, 208, 210, 204, 204, 206, 200, 200, 202, 196, 196, 198, 195, 193, 194, 194, 192, 193, 193, 189, 188, 192, 188, 187, 191, 186, 183, 189, 184, 181, 187, 182, 179, 187, 182, 179, 189, 181, 179, 189, 181, 179, 188, 182, 182, 192, 186, 186, 194, 189, 186, 190, 185, 182, 182, 177, 174, 177, 172, 169, 181, 173, 171, 185, 177, 175, 183, 175, 172, 181, 173, 170, 179, 171, 168, 176, 168, 165, 168, 158, 156, 159, 149, 147, 160, 151, 146, 165, 156, 151, 168, 161, 155, 172, 165, 159, 171, 164, 158, 165, 158, 152, 164, 157, 151, 166, 159, 153, 162, 155, 149, 153, 146, 140, 162, 155, 149, 162, 155, 149, 159, 152, 146, 154, 147, 141, 148, 141, 135, 143, 136, 130, 141, 134, 128, 140, 133, 127, 151, 140, 136, 151, 140, 136, 143, 132, 128, 132, 121, 117, 127, 116, 112, 126, 115, 111, 117, 106, 102, 104, 93, 89, 105, 96, 91, 110, 101, 96, 122, 113, 108, 138, 129, 124, 152, 143, 138, 155, 146, 141, 148, 141, 135, 140, 133, 127, 131, 120, 116, 138, 127, 123, 145, 134, 132, 143, 132, 130, 136, 125, 123, 134, 123, 121, 139, 129, 127, 147, 137, 135, 152, 142, 141, 156, 146, 145, 162, 152, 151, 169, 159, 158, 174, 166, 164, 182, 174, 172, 190, 181, 182, 194, 188, 188, 195, 189, 189, 193, 189, 188, 192, 188, 187, 193, 189, 188, 197, 193, 192, 204, 200, 199, 208, 207, 205, 213, 212, 210, 211, 210, 208, 211, 210, 208, 210, 210, 208, 209, 209, 207, 210, 210, 208, 210, 210, 208, 211, 211, 209, 212, 212, 210, 222, 224, 223, 222, 224, 223, 222, 224, 223, 220, 222, 221, 218, 220, 219, 220, 222, 221, 224, 226, 225, 227, 229, 228, 236, 238, 237, 238, 240, 239, 241, 243, 242, 244, 246, 245, 247, 249, 248, 249, 251, 250, 250, 252, 251, 250, 252, 251, 250, 250, 250, 250, 250, 250, 250, 250, 250, 251, 251, 251, 251, 251, 251, 251, 251, 251, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 249, 249, 249, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 247, 247, 247, 247, 247, 247, 247, 247, 247, 246, 246, 246, 246, 246, 246, 246, 246, 246, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 247, 246, 244, 247, 246, 244, 247, 246, 244, 246, 245, 243, 246, 245, 243, 246, 245, 243, 245, 244, 242, 245, 244, 242, 248, 244, 243, 247, 243, 242, 246, 242, 241, 244, 240, 239, 244, 238, 238, 242, 236, 236, 241, 235, 235, 244, 234, 233, 247, 227, 226, 250, 224, 223, 250, 222, 218, 248, 218, 210, 247, 211, 199, 246, 202, 189, 247, 194, 180, 250, 188, 175, 252, 182, 172, 251, 177, 168, 246, 171, 166, 240, 169, 165, 238, 172, 173, 241, 181, 183, 246, 189, 195, 247, 196, 201, 242, 195, 201, 240, 193, 199, 240, 189, 194, 242, 187, 192, 246, 187, 193, 245, 186, 188, 240, 184, 185, 238, 182, 181, 242, 184, 182, 242, 184, 182, 243, 181, 182, 243, 181, 184, 242, 181, 186, 241, 182, 186, 237, 182, 187, 237, 182, 187, 240, 184, 187, 240, 184, 187, 239, 183, 186, 237, 182, 185, 237, 181, 182, 238, 179, 181, 238, 178, 180, 238, 176, 179, 236, 174, 179, 238, 177, 184, 238, 183, 189, 238, 192, 195, 238, 204, 205, 238, 214, 212, 238, 223, 220, 238, 228, 226, 241, 237, 234, 240, 239, 237, 241, 240, 238, 242, 241, 239, 243, 242, 240, 243, 242, 240, 242, 241, 239, 241, 240, 238, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 241, 240, 238, 241, 240, 238, 242, 241, 239, 242, 241, 239, 242, 241, 239, 243, 242, 240, 243, 242, 240, 243, 242, 240, 244, 243, 241, 244, 243, 241, 244, 243, 241, 245, 244, 242, 245, 244, 242, 246, 245, 243, 246, 245, 243, 246, 245, 243, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 246, 246, 246, 246, 246, 246, 246, 246, 246, 247, 247, 247, 248, 250, 247, 246, 251, 247, 246, 251, 247, 245, 250, 246, 245, 250, 246, 245, 250, 246, 244, 249, 245, 244, 249, 245, 244, 249, 245, 245, 250, 246, 245, 250, 246, 245, 250, 246, 244, 249, 245, 243, 248, 244, 241, 246, 242, 240, 245, 241, 243, 245, 244, 242, 243, 245, 242, 243, 245, 240, 241, 243, 239, 240, 242, 238, 239, 241, 237, 238, 240, 237, 238, 240, 226, 227, 229, 231, 232, 234, 233, 234, 236, 231, 232, 234, 229, 230, 232, 229, 230, 232, 224, 225, 227, 218, 218, 218, 230, 226, 223, 224, 219, 215, 215, 210, 206, 208, 203, 199, 200, 197, 192, 196, 193, 188, 201, 198, 193, 209, 206, 201, 207, 204, 199, 211, 208, 203, 213, 212, 207, 214, 213, 208, 213, 212, 207, 213, 212, 207, 218, 217, 212, 222, 221, 216, 227, 222, 218, 227, 222, 218, 227, 222, 218, 226, 221, 217, 226, 221, 217, 226, 221, 217, 226, 221, 217, 226, 221, 217, 227, 222, 218, 227, 222, 218, 227, 222, 218, 227, 222, 218, 227, 222, 218, 227, 222, 218, 227, 222, 218, 227, 222, 218, 227, 222, 216, 226, 221, 215, 226, 221, 215, 226, 221, 215, 225, 220, 214, 225, 220, 214, 225, 220, 214, 224, 219, 213, 224, 219, 213, 223, 218, 212, 223, 218, 212, 223, 218, 212, 222, 217, 211, 222, 217, 211, 222, 217, 211, 221, 216, 210, 219, 216, 211, 219, 216, 211, 219, 216, 211, 218, 215, 210, 218, 215, 210, 218, 215, 210, 217, 214, 209, 217, 214, 209, 214, 211, 206, 214, 211, 206, 213, 210, 205, 212, 209, 204, 212, 209, 204, 211, 208, 203, 210, 207, 202, 210, 207, 202, 207, 202, 196, 207, 202, 196, 208, 203, 197, 210, 205, 199, 213, 208, 202, 216, 211, 205, 219, 214, 208, 221, 216, 210, 230, 225, 219, 229, 224, 218, 227, 222, 216, 224, 219, 213, 220, 215, 209, 216, 211, 205, 212, 207, 201, 209, 206, 199, 214, 211, 204, 215, 215, 207, 219, 218, 213, 222, 221, 216, 224, 223, 218, 223, 222, 217, 221, 220, 215, 220, 219, 214, 223, 222, 218, 224, 223, 219, 227, 226, 222, 230, 229, 225, 231, 230, 226, 232, 231, 227, 231, 230, 228, 230, 229, 227, 231, 230, 226, 231, 230, 226, 231, 230, 226, 232, 231, 227, 232, 231, 227, 233, 232, 228, 233, 232, 228, 233, 232, 228, 234, 233, 229, 234, 233, 229, 234, 233, 229, 234, 233, 229, 234, 233, 229, 234, 233, 229, 234, 233, 229, 234, 233, 229, 233, 234, 229, 233, 234, 229, 233, 234, 229, 233, 234, 229, 233, 234, 229, 233, 234, 229, 233, 233, 231, 233, 233, 231, 233, 233, 231, 232, 232, 230, 232, 232, 230, 232, 232, 230, 231, 231, 231, 231, 231, 231, 231, 231, 231, 230, 230, 230, 228, 230, 229, 228, 230, 229, 227, 229, 228, 225, 227, 226, 223, 225, 224, 222, 224, 223, 221, 223, 222, 220, 222, 221, 218, 220, 219, 216, 218, 217, 213, 215, 214, 212, 214, 213, 211, 213, 212, 209, 211, 210, 204, 206, 205, 201, 203, 202, 201, 201, 203, 199, 199, 201, 197, 197, 199, 194, 194, 196, 191, 191, 193, 190, 190, 192, 190, 188, 191, 190, 188, 191, 187, 185, 188, 182, 180, 183, 181, 176, 180, 184, 179, 183, 188, 183, 187, 185, 180, 184, 174, 169, 173, 163, 159, 160, 157, 153, 154, 156, 152, 151, 154, 148, 148, 150, 144, 144, 147, 142, 139, 147, 142, 139, 150, 145, 142, 153, 148, 145, 151, 143, 141, 153, 145, 143, 155, 147, 144, 159, 151, 148, 161, 153, 150, 163, 155, 152, 165, 155, 153, 166, 156, 154, 163, 155, 153, 161, 153, 151, 158, 150, 148, 155, 147, 145, 156, 148, 146, 159, 151, 149, 163, 155, 153, 165, 157, 155, 163, 155, 153, 165, 157, 155, 169, 161, 159, 175, 167, 165, 180, 172, 170, 185, 177, 175, 189, 181, 179, 190, 184, 184, 193, 191, 192, 196, 196, 198, 200, 201, 203, 204, 205, 207, 208, 209, 213, 212, 213, 217, 215, 219, 222, 219, 223, 226, 222, 227, 231, 225, 230, 234, 228, 233, 239, 228, 235, 241, 228, 235, 241, 228, 235, 241, 229, 238, 245, 232, 239, 245, 236, 241, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 243, 246, 251, 244, 247, 252, 245, 248, 253, 245, 248, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 249, 246, 247, 249, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 244, 245, 249, 244, 245, 249, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 237, 240, 245, 237, 240, 245, 236, 239, 244, 235, 238, 243, 232, 235, 240, 229, 232, 237, 226, 229, 234, 225, 228, 233, 224, 225, 229, 222, 223, 227, 218, 217, 222, 211, 210, 215, 205, 205, 207, 199, 199, 201, 196, 194, 195, 193, 191, 192, 193, 189, 188, 192, 188, 187, 191, 185, 185, 189, 183, 183, 188, 183, 180, 187, 182, 179, 189, 181, 179, 190, 182, 180, 187, 181, 181, 190, 184, 184, 191, 186, 183, 187, 182, 179, 180, 175, 172, 178, 173, 170, 185, 177, 175, 191, 183, 181, 188, 180, 177, 184, 176, 173, 181, 173, 170, 176, 168, 165, 170, 160, 158, 164, 154, 152, 168, 159, 154, 176, 167, 162, 171, 164, 158, 177, 170, 164, 180, 173, 167, 176, 169, 163, 173, 166, 160, 173, 166, 160, 171, 164, 158, 167, 160, 154, 165, 158, 152, 163, 156, 150, 159, 152, 146, 156, 149, 143, 153, 146, 140, 152, 145, 139, 152, 145, 139, 153, 146, 140, 152, 141, 137, 142, 131, 127, 131, 120, 116, 126, 115, 111, 126, 115, 111, 124, 113, 109, 114, 105, 100, 105, 96, 91, 115, 106, 101, 125, 116, 111, 137, 128, 123, 143, 134, 129, 138, 131, 125, 131, 124, 118, 126, 119, 113, 124, 117, 111, 113, 102, 98, 122, 111, 107, 133, 122, 120, 141, 130, 128, 145, 135, 133, 152, 142, 140, 163, 153, 151, 171, 161, 159, 163, 153, 152, 165, 155, 154, 167, 159, 157, 171, 163, 161, 175, 167, 165, 183, 175, 173, 191, 182, 183, 196, 190, 190, 192, 186, 186, 194, 190, 189, 198, 194, 193, 203, 199, 198, 206, 205, 203, 208, 207, 205, 210, 209, 207, 210, 209, 207, 220, 219, 217, 219, 218, 216, 216, 216, 214, 215, 215, 213, 216, 216, 214, 220, 220, 218, 223, 223, 221, 226, 226, 224, 225, 227, 226, 224, 226, 225, 222, 224, 223, 220, 222, 221, 219, 221, 220, 223, 225, 224, 229, 231, 230, 234, 236, 235, 241, 243, 242, 243, 245, 244, 245, 247, 246, 247, 249, 248, 249, 251, 250, 250, 252, 251, 250, 252, 251, 250, 252, 251, 249, 249, 249, 250, 250, 250, 250, 250, 250, 250, 250, 250, 251, 251, 251, 251, 251, 251, 251, 251, 251, 252, 252, 252, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 249, 249, 249, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 247, 247, 247, 247, 247, 247, 247, 247, 247, 246, 246, 246, 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 245, 246, 246, 244, 247, 246, 244, 247, 246, 244, 246, 245, 243, 246, 245, 243, 246, 245, 243, 245, 244, 242, 249, 245, 244, 249, 245, 244, 248, 244, 243, 247, 243, 242, 245, 241, 240, 244, 240, 239, 244, 238, 238, 246, 238, 236, 248, 234, 233, 251, 233, 231, 249, 232, 225, 248, 228, 219, 247, 220, 209, 245, 213, 200, 245, 205, 193, 248, 200, 188, 250, 193, 184, 248, 188, 180, 244, 181, 176, 238, 177, 176, 234, 178, 177, 236, 184, 186, 240, 191, 195, 242, 195, 201, 242, 193, 199, 242, 189, 197, 242, 185, 192, 243, 184, 190, 246, 183, 191, 245, 183, 186, 241, 181, 183, 239, 179, 179, 240, 178, 179, 240, 178, 179, 243, 177, 181, 243, 177, 181, 242, 177, 183, 240, 178, 183, 238, 179, 185, 236, 179, 185, 239, 180, 184, 237, 181, 184, 236, 180, 183, 235, 179, 182, 236, 177, 181, 235, 176, 180, 236, 175, 180, 235, 174, 179, 235, 174, 181, 238, 179, 185, 239, 186, 192, 243, 198, 201, 242, 210, 211, 242, 221, 218, 242, 228, 225, 240, 232, 229, 241, 237, 234, 240, 239, 237, 241, 240, 238, 242, 241, 239, 243, 242, 240, 243, 242, 240, 242, 241, 239, 241, 240, 238, 245, 244, 242, 245, 244, 242, 245, 244, 242, 245, 244, 242, 245, 244, 242, 245, 244, 242, 245, 244, 242, 245, 244, 242, 242, 241, 239, 242, 241, 239, 243, 242, 240, 243, 242, 240, 243, 242, 240, 244, 243, 241, 244, 243, 241, 244, 243, 241, 245, 244, 242, 245, 244, 242, 245, 244, 242, 245, 244, 242, 246, 245, 243, 246, 245, 243, 247, 246, 244, 247, 246, 244, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 244, 244, 244, 244, 244, 244, 244, 244, 244, 245, 245, 245, 245, 245, 245, 245, 245, 245, 246, 246, 246, 246, 246, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 246, 248, 245, 246, 248, 245, 246, 248, 245, 245, 247, 244, 245, 247, 244, 246, 248, 245, 246, 248, 245, 246, 248, 245, 246, 248, 245, 246, 248, 245, 244, 246, 243, 243, 245, 242, 242, 244, 241, 244, 244, 244, 243, 243, 243, 242, 242, 242, 240, 240, 240, 238, 238, 238, 236, 236, 236, 235, 235, 235, 234, 234, 234, 235, 235, 235, 235, 235, 235, 233, 233, 233, 229, 229, 229, 228, 228, 228, 224, 224, 224, 214, 214, 214, 203, 202, 200, 193, 189, 186, 193, 188, 184, 197, 192, 188, 204, 199, 195, 206, 201, 197, 204, 199, 195, 203, 200, 195, 206, 203, 198, 206, 203, 198, 209, 206, 201, 213, 210, 205, 217, 214, 209, 217, 216, 211, 218, 217, 212, 219, 218, 213, 219, 218, 213, 227, 222, 218, 227, 222, 218, 227, 222, 218, 228, 223, 219, 228, 223, 219, 228, 223, 219, 229, 224, 220, 229, 224, 220, 227, 222, 218, 227, 222, 218, 227, 222, 218, 227, 222, 218, 227, 222, 218, 227, 222, 218, 227, 222, 218, 227, 222, 218, 227, 222, 216, 227, 222, 216, 226, 221, 215, 226, 221, 215, 226, 221, 215, 225, 220, 214, 225, 220, 214, 225, 220, 214, 225, 220, 214, 225, 220, 214, 224, 219, 213, 224, 219, 213, 224, 219, 213, 223, 218, 212, 223, 218, 212, 223, 218, 212, 221, 218, 213, 221, 218, 213, 220, 217, 212, 220, 217, 212, 219, 216, 211, 219, 216, 211, 219, 216, 211, 219, 216, 211, 216, 213, 208, 216, 213, 208, 215, 212, 207, 215, 212, 207, 214, 211, 206, 213, 210, 205, 212, 209, 204, 212, 209, 204, 209, 204, 198, 209, 204, 198, 207, 202, 196, 206, 201, 195, 206, 201, 195, 206, 201, 195, 207, 202, 196, 208, 203, 197, 221, 216, 210, 223, 218, 212, 226, 221, 215, 229, 224, 218, 229, 224, 218, 227, 222, 216, 224, 219, 213, 221, 218, 211, 214, 211, 204, 215, 215, 207, 219, 218, 213, 223, 222, 217, 225, 224, 219, 224, 223, 218, 223, 222, 217, 221, 220, 215, 223, 222, 218, 225, 224, 220, 227, 226, 222, 229, 228, 224, 230, 229, 225, 230, 229, 225, 230, 229, 227, 230, 229, 227, 232, 231, 227, 232, 231, 227, 233, 232, 228, 233, 232, 228, 233, 232, 228, 234, 233, 229, 234, 233, 229, 234, 233, 229, 234, 233, 229, 234, 233, 229, 234, 233, 229, 234, 233, 229, 234, 233, 229, 234, 233, 229, 234, 233, 229, 234, 233, 229, 234, 235, 230, 234, 235, 230, 234, 235, 230, 234, 235, 230, 234, 235, 230, 234, 235, 230, 234, 234, 232, 234, 234, 232, 233, 233, 231, 233, 233, 231, 232, 232, 230, 232, 232, 230, 232, 232, 232, 231, 231, 231, 231, 231, 231, 231, 231, 231, 229, 231, 230, 228, 230, 229, 227, 229, 228, 225, 227, 226, 224, 226, 225, 222, 224, 223, 221, 223, 222, 220, 222, 221, 220, 222, 221, 217, 219, 218, 215, 217, 216, 213, 215, 214, 212, 214, 213, 208, 210, 209, 204, 206, 205, 200, 202, 201, 199, 199, 201, 198, 198, 200, 195, 195, 197, 193, 193, 195, 192, 192, 194, 191, 191, 193, 191, 189, 192, 192, 190, 193, 191, 189, 192, 188, 186, 189, 184, 182, 185, 182, 180, 183, 185, 180, 184, 184, 179, 183, 182, 177, 181, 180, 176, 177, 163, 159, 160, 158, 154, 153, 152, 148, 147, 149, 145, 144, 151, 146, 143, 154, 149, 146, 156, 151, 148, 157, 152, 149, 155, 147, 145, 154, 146, 144, 154, 146, 143, 153, 145, 142, 153, 145, 142, 154, 146, 143, 155, 147, 144, 156, 148, 145, 152, 144, 142, 152, 144, 142, 153, 145, 143, 154, 146, 144, 157, 149, 147, 160, 152, 150, 163, 155, 153, 165, 157, 155, 160, 152, 150, 162, 154, 152, 165, 157, 155, 170, 162, 160, 175, 167, 165, 180, 172, 170, 184, 176, 174, 184, 178, 178, 186, 184, 185, 189, 189, 189, 195, 195, 197, 199, 199, 201, 202, 203, 205, 207, 208, 210, 211, 215, 218, 215, 219, 222, 218, 221, 226, 220, 225, 229, 224, 229, 235, 226, 231, 237, 225, 232, 238, 226, 233, 239, 228, 235, 241, 230, 237, 243, 234, 239, 243, 236, 239, 244, 236, 239, 244, 237, 240, 245, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 240, 243, 248, 241, 244, 249, 241, 244, 249, 242, 245, 250, 243, 246, 251, 244, 247, 252, 244, 247, 252, 245, 248, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 249, 246, 247, 249, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 244, 245, 249, 244, 245, 249, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 236, 239, 244, 234, 237, 242, 232, 235, 240, 231, 234, 239, 229, 230, 234, 226, 227, 231, 223, 222, 227, 216, 215, 220, 209, 209, 211, 202, 202, 204, 197, 195, 196, 194, 192, 193, 191, 187, 186, 190, 186, 185, 190, 184, 184, 188, 182, 182, 187, 182, 179, 187, 182, 179, 189, 181, 179, 189, 181, 179, 187, 181, 181, 183, 177, 177, 180, 175, 172, 183, 178, 175, 191, 186, 183, 195, 190, 187, 196, 188, 186, 192, 184, 182, 184, 176, 173, 181, 173, 170, 179, 171, 168, 175, 167, 164, 170, 160, 158, 164, 154, 152, 168, 159, 154, 176, 167, 162, 168, 161, 155, 174, 167, 161, 178, 171, 165, 176, 169, 163, 170, 163, 157, 167, 160, 154, 167, 160, 154, 167, 160, 154, 155, 148, 142, 155, 148, 142, 157, 150, 144, 159, 152, 146, 160, 153, 147, 159, 152, 146, 155, 148, 142, 152, 145, 139, 144, 133, 129, 141, 130, 126, 142, 131, 127, 144, 133, 129, 138, 127, 123, 127, 116, 112, 120, 111, 106, 121, 112, 107, 128, 119, 114, 129, 120, 115, 123, 114, 109, 111, 102, 97, 99, 92, 86, 102, 95, 89, 120, 113, 107, 137, 130, 124, 149, 140, 135, 151, 140, 136, 153, 142, 140, 157, 146, 144, 159, 149, 147, 159, 149, 147, 156, 146, 144, 153, 143, 141, 168, 158, 157, 169, 159, 158, 168, 160, 158, 168, 160, 158, 170, 162, 160, 176, 168, 166, 184, 175, 176, 188, 182, 182, 190, 186, 185, 194, 190, 189, 200, 196, 195, 206, 202, 201, 208, 207, 205, 210, 209, 207, 210, 209, 207, 209, 208, 206, 208, 207, 205, 208, 207, 205, 207, 207, 205, 209, 209, 207, 212, 212, 210, 216, 216, 214, 220, 220, 218, 223, 223, 221, 212, 214, 213, 214, 216, 215, 217, 219, 218, 219, 221, 220, 222, 224, 223, 227, 229, 228, 234, 236, 235, 240, 242, 241, 244, 246, 245, 245, 247, 246, 246, 248, 247, 248, 250, 249, 249, 251, 250, 249, 251, 250, 248, 250, 249, 248, 250, 249, 249, 249, 249, 249, 249, 249, 250, 250, 250, 250, 250, 250, 250, 250, 250, 251, 251, 251, 251, 251, 251, 251, 251, 251, 249, 249, 249, 249, 249, 249, 248, 248, 248, 248, 248, 248, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 247, 247, 247, 247, 247, 247, 247, 247, 247, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 247, 247, 245, 247, 247, 245, 247, 246, 244, 247, 246, 244, 247, 246, 244, 246, 245, 243, 246, 245, 243, 246, 245, 243, 249, 245, 244, 249, 245, 244, 248, 244, 243, 247, 243, 242, 246, 242, 241, 245, 241, 240, 245, 239, 239, 245, 239, 239, 245, 237, 235, 244, 236, 233, 244, 235, 228, 242, 232, 223, 243, 226, 216, 241, 219, 208, 240, 212, 201, 243, 206, 197, 247, 202, 196, 245, 196, 191, 240, 189, 186, 235, 184, 183, 231, 183, 183, 232, 186, 189, 233, 191, 195, 238, 193, 198, 241, 190, 197, 242, 185, 194, 243, 182, 190, 243, 180, 189, 246, 179, 188, 246, 179, 186, 242, 177, 181, 240, 176, 177, 238, 174, 175, 240, 174, 176, 242, 173, 178, 242, 173, 178, 242, 172, 180, 239, 174, 180, 237, 176, 183, 236, 177, 183, 236, 177, 181, 236, 177, 181, 235, 176, 180, 235, 176, 180, 234, 175, 179, 234, 175, 179, 233, 174, 178, 233, 174, 178, 233, 174, 180, 235, 180, 185, 239, 190, 194, 243, 203, 204, 245, 215, 215, 244, 225, 221, 242, 231, 227, 242, 234, 231, 241, 237, 234, 240, 239, 237, 241, 240, 238, 242, 241, 239, 243, 242, 240, 243, 242, 240, 242, 241, 239, 241, 240, 238, 244, 243, 241, 244, 243, 241, 244, 243, 241, 244, 243, 241, 244, 243, 241, 244, 243, 241, 244, 243, 241, 244, 243, 241, 243, 242, 240, 243, 242, 240, 243, 242, 240, 244, 243, 241, 244, 243, 241, 244, 243, 241, 245, 244, 242, 245, 244, 242, 245, 244, 242, 245, 244, 242, 245, 244, 242, 246, 245, 243, 246, 245, 243, 247, 246, 244, 247, 246, 244, 247, 246, 244, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 245, 245, 245, 245, 245, 245, 245, 245, 245, 246, 246, 246, 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247, 247, 246, 248, 245, 246, 248, 245, 246, 248, 245, 245, 247, 244, 245, 247, 244, 245, 247, 244, 244, 246, 243, 244, 246, 243, 244, 246, 243, 245, 247, 244, 245, 247, 244, 245, 247, 244, 244, 246, 243, 243, 245, 242, 241, 243, 240, 240, 242, 239, 243, 243, 243, 242, 242, 242, 241, 241, 241, 238, 238, 238, 235, 235, 235, 233, 233, 233, 231, 231, 231, 230, 230, 230, 239, 239, 239, 237, 237, 237, 231, 231, 231, 226, 226, 226, 225, 225, 225, 220, 220, 220, 207, 207, 207, 193, 192, 190, 163, 159, 156, 164, 159, 155, 173, 168, 164, 189, 184, 180, 202, 197, 193, 207, 202, 198, 210, 205, 201, 212, 209, 204, 214, 211, 206, 215, 212, 207, 217, 214, 209, 221, 218, 213, 222, 221, 216, 222, 221, 216, 217, 216, 211, 215, 212, 207, 226, 221, 217, 226, 221, 217, 226, 221, 217, 227, 222, 218, 228, 223, 219, 229, 224, 220, 229, 224, 220, 229, 224, 220, 227, 222, 218, 227, 222, 218, 227, 222, 218, 227, 222, 218, 227, 222, 218, 227, 222, 218, 227, 222, 218, 227, 222, 218, 227, 222, 216, 227, 222, 216, 227, 222, 216, 226, 221, 215, 226, 221, 215, 226, 221, 215, 225, 220, 214, 225, 220, 214, 226, 221, 215, 226, 221, 215, 225, 220, 214, 225, 220, 214, 225, 220, 214, 224, 219, 213, 224, 219, 213, 224, 219, 213, 222, 219, 214, 222, 219, 214, 222, 219, 214, 221, 218, 213, 221, 218, 213, 221, 218, 213, 220, 217, 212, 220, 217, 212, 218, 215, 210, 218, 215, 210, 217, 214, 209, 217, 214, 209, 216, 213, 208, 215, 212, 207, 215, 212, 207, 214, 211, 206, 216, 211, 205, 214, 209, 203, 212, 207, 201, 210, 205, 199, 209, 204, 198, 208, 203, 197, 208, 203, 197, 208, 203, 197, 205, 200, 194, 209, 204, 198, 214, 209, 203, 221, 216, 210, 226, 221, 215, 230, 225, 219, 232, 227, 221, 232, 229, 222, 227, 224, 217, 224, 224, 216, 221, 220, 215, 219, 218, 213, 220, 219, 214, 223, 222, 217, 226, 225, 220, 228, 227, 222, 225, 224, 220, 225, 224, 220, 226, 225, 221, 228, 227, 223, 229, 228, 224, 229, 228, 224, 230, 229, 227, 230, 229, 227, 233, 232, 228, 233, 232, 228, 234, 233, 229, 234, 233, 229, 235, 234, 230, 235, 234, 230, 235, 234, 230, 235, 234, 230, 234, 233, 229, 234, 233, 229, 234, 233, 229, 234, 233, 229, 234, 233, 229, 234, 233, 229, 234, 233, 229, 234, 233, 229, 234, 235, 230, 234, 235, 230, 234, 235, 230, 234, 235, 230, 234, 235, 230, 234, 235, 230, 234, 234, 232, 234, 234, 232, 233, 233, 231, 233, 233, 231, 233, 233, 231, 232, 232, 230, 232, 232, 232, 232, 232, 232, 231, 231, 231, 231, 231, 231, 229, 231, 230, 228, 230, 229, 227, 229, 228, 226, 228, 227, 224, 226, 225, 223, 225, 224, 221, 223, 222, 221, 223, 222, 222, 224, 223, 219, 221, 220, 216, 218, 217, 214, 216, 215, 213, 215, 214, 209, 211, 210, 204, 206, 205, 201, 203, 202, 198, 198, 200, 197, 197, 199, 196, 196, 198, 194, 194, 196, 193, 193, 195, 192, 192, 194, 194, 192, 195, 194, 192, 195, 193, 191, 194, 192, 190, 193, 190, 188, 191, 186, 184, 187, 184, 179, 183, 182, 177, 181, 183, 178, 182, 185, 181, 182, 173, 169, 170, 165, 161, 160, 156, 152, 151, 153, 149, 148, 156, 151, 148, 158, 153, 150, 158, 153, 150, 157, 152, 149, 164, 156, 154, 162, 154, 152, 159, 151, 148, 157, 149, 146, 156, 148, 145, 157, 149, 146, 159, 151, 148, 160, 152, 149, 158, 150, 148, 158, 150, 148, 160, 152, 150, 161, 153, 151, 161, 153, 151, 160, 152, 150, 160, 152, 150, 159, 151, 149, 159, 151, 149, 160, 152, 150, 163, 155, 153, 168, 160, 158, 172, 164, 162, 176, 168, 166, 179, 171, 169, 179, 174, 171, 181, 179, 180, 184, 184, 184, 190, 190, 192, 195, 195, 197, 199, 199, 201, 203, 204, 206, 208, 209, 213, 211, 215, 218, 214, 217, 222, 218, 221, 226, 221, 226, 232, 224, 229, 235, 225, 230, 236, 224, 231, 237, 227, 234, 240, 231, 236, 242, 233, 236, 241, 234, 237, 242, 234, 237, 242, 235, 238, 243, 236, 239, 244, 237, 240, 245, 238, 241, 246, 238, 241, 246, 240, 243, 248, 240, 243, 248, 241, 244, 249, 242, 245, 250, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 246, 247, 249, 245, 249, 252, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 248, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 244, 245, 249, 244, 245, 249, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 238, 241, 246, 236, 239, 244, 234, 237, 242, 233, 236, 241, 227, 228, 232, 225, 226, 230, 222, 223, 227, 217, 218, 222, 212, 212, 214, 205, 205, 207, 200, 198, 199, 197, 195, 196, 190, 186, 187, 189, 185, 186, 188, 184, 183, 186, 182, 181, 187, 182, 179, 187, 182, 179, 187, 182, 179, 188, 183, 180, 187, 181, 181, 185, 179, 179, 185, 180, 177, 190, 185, 182, 198, 193, 190, 199, 194, 191, 196, 188, 186, 190, 182, 180, 180, 172, 169, 179, 171, 168, 179, 171, 168, 178, 170, 167, 173, 163, 161, 166, 156, 154, 167, 158, 153, 174, 165, 160, 169, 162, 156, 171, 164, 158, 173, 166, 160, 170, 163, 157, 163, 156, 150, 158, 151, 145, 158, 151, 145, 162, 155, 149, 164, 157, 151, 163, 156, 150, 162, 155, 149, 163, 156, 150, 163, 156, 150, 161, 154, 148, 155, 148, 142, 150, 143, 137, 158, 147, 143, 155, 144, 140, 155, 144, 140, 156, 145, 141, 150, 139, 135, 138, 127, 123, 130, 121, 116, 130, 121, 116, 126, 117, 112, 113, 104, 99, 96, 89, 83, 92, 85, 79, 104, 97, 91, 127, 120, 114, 150, 143, 137, 164, 157, 151, 160, 151, 146, 165, 156, 151, 170, 160, 158, 170, 160, 158, 165, 155, 153, 158, 148, 146, 155, 145, 143, 154, 144, 142, 156, 148, 146, 157, 149, 147, 158, 150, 148, 160, 152, 150, 161, 156, 153, 169, 164, 161, 178, 172, 172, 185, 179, 179, 190, 186, 185, 192, 188, 187, 195, 194, 192, 200, 199, 197, 204, 203, 201, 207, 206, 204, 208, 207, 205, 209, 208, 206, 203, 203, 201, 205, 205, 203, 207, 207, 205, 210, 210, 208, 212, 212, 210, 212, 212, 210, 212, 212, 210, 211, 211, 209, 194, 196, 195, 200, 202, 201, 210, 212, 211, 218, 220, 219, 225, 227, 226, 231, 233, 232, 236, 238, 237, 239, 241, 240, 243, 245, 244, 244, 246, 245, 245, 247, 246, 246, 248, 247, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 250, 250, 250, 250, 250, 250, 251, 251, 251, 251, 251, 251, 248, 248, 248, 248, 248, 248, 248, 248, 248, 247, 247, 247, 247, 247, 247, 247, 247, 247, 246, 246, 246, 246, 246, 246, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 247, 247, 247, 247, 247, 247, 247, 247, 247, 246, 246, 246, 246, 246, 246, 246, 246, 246, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 246, 244, 247, 246, 244, 246, 245, 243, 246, 245, 243, 245, 244, 242, 245, 244, 242, 247, 243, 242, 246, 242, 241, 245, 241, 240, 245, 241, 240, 244, 240, 239, 244, 240, 239, 241, 240, 236, 241, 240, 235, 242, 239, 234, 241, 236, 230, 239, 232, 224, 238, 225, 217, 238, 219, 212, 239, 214, 209, 240, 209, 204, 241, 203, 202, 236, 194, 195, 231, 189, 191, 228, 186, 190, 227, 186, 190, 228, 189, 194, 231, 190, 196, 239, 188, 195, 243, 183, 193, 242, 179, 188, 244, 176, 187, 247, 177, 187, 246, 176, 184, 241, 175, 179, 239, 173, 177, 237, 171, 175, 237, 171, 175, 240, 171, 176, 240, 171, 176, 241, 171, 179, 239, 172, 179, 236, 175, 182, 235, 176, 182, 235, 174, 181, 235, 174, 181, 235, 174, 181, 234, 175, 181, 234, 175, 179, 233, 174, 178, 233, 174, 178, 231, 175, 178, 230, 175, 180, 232, 182, 185, 236, 191, 194, 240, 204, 206, 242, 216, 217, 241, 226, 223, 241, 231, 229, 240, 235, 231, 241, 237, 234, 240, 239, 237, 241, 240, 238, 242, 241, 239, 243, 242, 240, 243, 242, 240, 242, 241, 239, 241, 240, 238, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 243, 242, 240, 243, 242, 240, 243, 242, 240, 244, 243, 241, 244, 243, 241, 244, 243, 241, 245, 244, 242, 245, 244, 242, 245, 244, 242, 245, 244, 242, 245, 244, 242, 245, 244, 242, 246, 245, 243, 246, 245, 243, 246, 245, 243, 247, 246, 244, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 246, 246, 244, 246, 246, 244, 245, 245, 243, 245, 245, 243, 245, 245, 243, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 242, 242, 240, 240, 240, 238, 239, 239, 237, 241, 241, 239, 240, 240, 238, 238, 238, 236, 236, 236, 234, 233, 233, 231, 230, 230, 228, 229, 229, 227, 228, 228, 226, 226, 226, 224, 224, 224, 222, 219, 219, 217, 216, 216, 214, 219, 219, 217, 219, 219, 217, 209, 209, 207, 198, 197, 195, 184, 179, 176, 172, 164, 162, 162, 154, 152, 166, 158, 156, 180, 172, 170, 193, 188, 185, 208, 203, 200, 218, 213, 210, 218, 213, 210, 219, 214, 211, 221, 217, 214, 225, 221, 218, 229, 225, 222, 229, 225, 222, 225, 221, 218, 222, 218, 215, 226, 221, 217, 226, 221, 217, 226, 221, 217, 227, 222, 218, 227, 222, 218, 227, 222, 218, 228, 223, 219, 228, 223, 219, 228, 223, 219, 228, 223, 219, 228, 223, 219, 228, 223, 219, 228, 223, 219, 228, 223, 219, 228, 223, 219, 228, 223, 219, 228, 223, 217, 227, 222, 216, 227, 222, 216, 227, 222, 216, 226, 221, 215, 226, 221, 215, 226, 221, 215, 226, 221, 215, 226, 221, 215, 226, 221, 215, 226, 221, 215, 225, 220, 214, 225, 220, 214, 225, 220, 214, 224, 219, 213, 224, 219, 213, 224, 219, 213, 224, 219, 213, 224, 219, 213, 223, 218, 212, 223, 218, 212, 222, 217, 211, 222, 217, 211, 222, 217, 211, 221, 216, 210, 221, 216, 210, 220, 215, 209, 219, 214, 208, 219, 214, 208, 218, 213, 207, 217, 212, 206, 217, 212, 206, 218, 213, 207, 217, 212, 206, 215, 210, 204, 214, 209, 203, 213, 208, 202, 213, 208, 202, 214, 209, 203, 214, 209, 203, 214, 209, 203, 213, 208, 202, 213, 208, 202, 215, 210, 204, 217, 212, 206, 221, 216, 210, 224, 219, 213, 225, 222, 215, 235, 232, 225, 230, 230, 222, 227, 226, 221, 224, 223, 218, 223, 222, 217, 224, 223, 218, 226, 225, 220, 228, 227, 222, 227, 226, 222, 227, 226, 222, 227, 226, 222, 227, 226, 222, 228, 227, 223, 229, 228, 224, 230, 229, 227, 230, 229, 227, 234, 233, 229, 234, 233, 229, 234, 233, 229, 235, 234, 230, 235, 234, 230, 235, 234, 230, 236, 235, 231, 236, 235, 231, 235, 234, 230, 235, 234, 230, 235, 234, 230, 235, 234, 230, 235, 234, 230, 235, 234, 230, 235, 234, 230, 235, 234, 230, 234, 235, 230, 234, 235, 230, 234, 235, 230, 234, 235, 230, 234, 235, 230, 234, 235, 230, 234, 234, 232, 234, 234, 232, 234, 234, 232, 233, 233, 231, 233, 233, 231, 233, 233, 231, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 230, 232, 231, 229, 231, 230, 228, 230, 229, 226, 228, 227, 225, 227, 226, 223, 225, 224, 222, 224, 223, 221, 223, 222, 223, 225, 224, 221, 223, 222, 218, 220, 219, 216, 218, 217, 215, 217, 216, 212, 214, 213, 207, 209, 208, 203, 205, 204, 201, 201, 203, 200, 200, 202, 198, 198, 200, 196, 196, 198, 195, 195, 197, 195, 195, 197, 195, 195, 197, 195, 195, 197, 194, 192, 195, 196, 194, 197, 196, 194, 197, 191, 189, 192, 184, 182, 185, 179, 177, 180, 179, 174, 178, 180, 176, 177, 183, 179, 180, 175, 171, 170, 165, 161, 160, 160, 156, 155, 160, 154, 154, 161, 155, 155, 158, 153, 150, 155, 150, 147, 158, 153, 150, 156, 151, 148, 155, 147, 145, 154, 146, 144, 153, 145, 142, 155, 147, 144, 157, 149, 146, 158, 150, 147, 161, 153, 151, 162, 154, 152, 163, 155, 153, 163, 155, 153, 162, 154, 152, 160, 152, 150, 158, 150, 148, 156, 148, 146, 159, 151, 149, 160, 152, 150, 163, 155, 153, 167, 159, 157, 170, 162, 160, 174, 166, 164, 177, 169, 167, 176, 171, 168, 180, 176, 177, 182, 180, 181, 187, 185, 186, 191, 191, 191, 195, 195, 197, 198, 199, 201, 204, 205, 207, 208, 209, 211, 210, 214, 217, 214, 218, 221, 219, 222, 227, 221, 226, 230, 223, 228, 234, 225, 230, 236, 228, 233, 239, 230, 235, 241, 231, 234, 239, 231, 234, 239, 232, 235, 240, 233, 236, 241, 235, 238, 243, 236, 239, 244, 237, 240, 245, 238, 241, 246, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 242, 245, 250, 243, 246, 251, 243, 246, 251, 244, 247, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 244, 245, 249, 244, 245, 249, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 237, 240, 245, 235, 238, 243, 233, 236, 241, 232, 235, 240, 226, 227, 231, 225, 226, 230, 223, 224, 228, 219, 220, 224, 214, 214, 216, 207, 207, 209, 202, 200, 203, 198, 196, 197, 191, 187, 188, 190, 186, 187, 189, 185, 184, 188, 184, 183, 189, 184, 181, 189, 184, 181, 190, 185, 182, 190, 185, 182, 188, 182, 182, 195, 189, 189, 201, 196, 193, 200, 195, 192, 193, 188, 185, 186, 181, 178, 186, 178, 176, 187, 179, 177, 182, 174, 171, 182, 174, 171, 182, 174, 171, 181, 173, 170, 176, 166, 164, 168, 158, 156, 169, 160, 155, 175, 166, 161, 175, 168, 162, 170, 163, 157, 167, 160, 154, 165, 158, 152, 161, 154, 148, 156, 149, 143, 157, 150, 144, 163, 156, 150, 172, 165, 159, 167, 160, 154, 161, 154, 148, 161, 154, 148, 164, 157, 151, 166, 159, 153, 165, 158, 152, 163, 154, 149, 163, 152, 148, 155, 144, 140, 147, 136, 132, 147, 136, 132, 152, 141, 137, 154, 143, 139, 147, 138, 133, 141, 132, 127, 128, 119, 114, 113, 104, 99, 104, 97, 91, 120, 113, 107, 150, 143, 137, 169, 162, 156, 165, 158, 152, 154, 147, 141, 135, 126, 121, 148, 139, 134, 158, 148, 146, 154, 144, 142, 141, 131, 129, 135, 125, 123, 142, 132, 130, 151, 143, 140, 141, 133, 131, 145, 137, 135, 150, 142, 140, 155, 147, 145, 161, 156, 153, 170, 165, 162, 181, 175, 175, 188, 184, 183, 188, 184, 183, 190, 186, 185, 191, 190, 188, 195, 194, 192, 199, 198, 196, 203, 202, 200, 206, 205, 203, 207, 206, 204, 211, 211, 209, 212, 212, 210, 214, 214, 212, 215, 215, 213, 214, 214, 212, 211, 211, 209, 207, 207, 205, 204, 204, 202, 199, 201, 200, 207, 209, 208, 218, 220, 219, 229, 231, 230, 235, 237, 236, 240, 242, 241, 243, 245, 244, 245, 247, 246, 241, 243, 242, 242, 244, 243, 244, 246, 245, 245, 247, 246, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 247, 246, 248, 248, 248, 248, 248, 248, 249, 249, 249, 249, 249, 249, 249, 249, 249, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 249, 248, 248, 248, 248, 248, 248, 248, 248, 248, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 248, 248, 248, 248, 248, 248, 247, 247, 247, 247, 247, 247, 247, 247, 247, 246, 246, 246, 246, 246, 246, 246, 246, 246, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 248, 247, 245, 247, 246, 244, 247, 246, 244, 247, 246, 244, 245, 244, 242, 245, 244, 242, 247, 243, 242, 246, 242, 241, 246, 242, 241, 246, 242, 241, 245, 241, 240, 243, 242, 240, 244, 245, 240, 244, 245, 240, 244, 245, 239, 243, 242, 237, 242, 239, 234, 241, 233, 230, 239, 228, 224, 241, 223, 221, 238, 214, 212, 238, 208, 208, 235, 200, 204, 230, 194, 198, 228, 189, 194, 227, 188, 193, 226, 190, 194, 231, 190, 196, 238, 187, 194, 242, 182, 192, 241, 178, 187, 244, 176, 187, 246, 176, 186, 245, 175, 185, 240, 173, 180, 237, 172, 176, 236, 170, 174, 236, 170, 174, 239, 170, 175, 240, 171, 176, 241, 171, 179, 238, 173, 179, 236, 175, 182, 235, 176, 182, 235, 174, 181, 235, 174, 181, 235, 174, 181, 235, 174, 181, 234, 175, 179, 232, 176, 179, 233, 177, 180, 230, 178, 180, 230, 180, 183, 230, 185, 188, 233, 194, 197, 235, 205, 205, 237, 216, 215, 239, 225, 222, 240, 232, 229, 240, 236, 233, 239, 238, 236, 240, 239, 237, 241, 240, 238, 242, 241, 239, 243, 242, 240, 243, 242, 240, 242, 241, 239, 241, 240, 238, 240, 239, 237, 240, 239, 237, 240, 239, 237, 240, 239, 237, 240, 239, 237, 240, 239, 237, 240, 239, 237, 240, 239, 237, 242, 241, 239, 242, 241, 239, 243, 242, 240, 243, 242, 240, 243, 242, 240, 244, 243, 241, 244, 243, 241, 244, 243, 241, 243, 242, 240, 244, 243, 241, 244, 243, 241, 244, 243, 241, 245, 244, 242, 245, 244, 242, 245, 244, 242, 246, 245, 243, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 248, 248, 248, 245, 245, 243, 245, 245, 243, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 243, 243, 241, 241, 241, 239, 241, 241, 239, 242, 242, 240, 241, 241, 239, 241, 241, 239, 239, 239, 237, 238, 238, 236, 237, 237, 235, 237, 237, 235, 236, 236, 234, 235, 235, 233, 233, 233, 231, 231, 231, 229, 229, 229, 227, 228, 228, 226, 227, 227, 225, 221, 221, 219, 219, 219, 217, 213, 213, 211, 208, 208, 206, 208, 208, 206, 209, 209, 207, 204, 204, 202, 198, 197, 195, 193, 188, 185, 178, 170, 168, 165, 157, 155, 169, 161, 159, 183, 175, 173, 196, 188, 186, 203, 198, 195, 209, 204, 201, 213, 208, 205, 216, 211, 208, 221, 217, 214, 226, 222, 219, 231, 227, 224, 234, 230, 227, 235, 231, 228, 236, 232, 229, 229, 224, 220, 229, 224, 220, 229, 224, 220, 228, 223, 219, 228, 223, 219, 227, 222, 218, 227, 222, 218, 227, 222, 218, 228, 223, 219, 228, 223, 219, 228, 223, 219, 228, 223, 219, 228, 223, 219, 228, 223, 219, 228, 223, 219, 228, 223, 219, 228, 223, 217, 228, 223, 217, 228, 223, 217, 227, 222, 216, 227, 222, 216, 226, 221, 215, 226, 221, 215, 226, 221, 215, 226, 221, 215, 226, 221, 215, 226, 221, 215, 225, 220, 214, 225, 220, 214, 224, 219, 213, 224, 219, 213, 224, 219, 213, 224, 219, 213, 224, 219, 213, 224, 219, 213, 223, 218, 212, 223, 218, 212, 222, 217, 211, 222, 217, 211, 222, 217, 211, 222, 217, 211, 222, 217, 211, 221, 216, 210, 220, 215, 209, 219, 214, 208, 219, 214, 208, 218, 213, 207, 218, 213, 207, 216, 211, 205, 215, 210, 204, 215, 210, 204, 214, 209, 203, 215, 210, 204, 216, 211, 205, 217, 212, 206, 218, 213, 207, 222, 217, 211, 220, 215, 209, 217, 212, 206, 215, 210, 204, 216, 211, 205, 219, 214, 208, 222, 217, 211, 223, 220, 213, 229, 226, 219, 229, 229, 221, 231, 230, 225, 233, 232, 227, 232, 231, 226, 229, 228, 223, 225, 224, 219, 223, 222, 217, 230, 229, 225, 229, 228, 224, 228, 227, 223, 228, 227, 223, 228, 227, 223, 229, 228, 224, 230, 229, 227, 231, 230, 228, 233, 232, 228, 234, 233, 229, 234, 233, 229, 234, 233, 229, 235, 234, 230, 235, 234, 230, 235, 234, 230, 235, 234, 230, 235, 234, 230, 235, 234, 230, 235, 234, 230, 235, 234, 230, 235, 234, 230, 235, 234, 230, 235, 234, 230, 235, 234, 230, 235, 236, 231, 235, 236, 231, 235, 236, 231, 235, 236, 231, 235, 236, 231, 235, 236, 231, 235, 235, 233, 235, 235, 233, 234, 234, 232, 234, 234, 232, 234, 234, 232, 233, 233, 231, 233, 233, 233, 232, 232, 232, 232, 232, 232, 232, 232, 232, 230, 232, 231, 229, 231, 230, 228, 230, 229, 227, 229, 228, 225, 227, 226, 223, 225, 224, 222, 224, 223, 222, 224, 223, 223, 225, 224, 221, 223, 222, 219, 221, 220, 218, 220, 219, 218, 220, 219, 216, 218, 217, 212, 214, 213, 208, 210, 209, 206, 206, 208, 205, 205, 207, 202, 202, 204, 200, 200, 202, 199, 199, 201, 198, 198, 200, 198, 198, 200, 198, 198, 200, 195, 193, 196, 197, 195, 198, 198, 196, 199, 195, 193, 196, 188, 186, 189, 181, 179, 182, 178, 173, 177, 177, 172, 176, 186, 182, 183, 181, 177, 176, 174, 170, 169, 169, 165, 164, 166, 160, 160, 162, 156, 156, 159, 154, 151, 156, 151, 148, 155, 150, 147, 154, 149, 146, 155, 147, 145, 154, 146, 144, 154, 146, 143, 154, 146, 143, 155, 147, 144, 156, 148, 145, 155, 147, 145, 156, 148, 146, 158, 150, 148, 159, 151, 149, 160, 152, 150, 160, 152, 150, 159, 151, 149, 159, 151, 149, 159, 151, 149, 160, 152, 150, 162, 154, 152, 165, 157, 155, 168, 160, 158, 171, 163, 161, 174, 166, 164, 173, 168, 165, 178, 174, 173, 179, 177, 178, 184, 182, 183, 188, 186, 187, 191, 189, 192, 194, 194, 196, 198, 198, 200, 201, 202, 204, 207, 208, 212, 209, 213, 216, 214, 217, 222, 218, 221, 226, 220, 223, 230, 222, 227, 233, 226, 231, 237, 228, 233, 239, 228, 231, 236, 229, 232, 237, 230, 233, 238, 232, 235, 240, 234, 237, 242, 235, 238, 243, 236, 239, 244, 237, 240, 245, 239, 242, 247, 240, 243, 248, 240, 243, 248, 241, 244, 249, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 244, 245, 249, 244, 245, 249, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 242, 245, 250, 242, 245, 250, 241, 244, 249, 240, 243, 248, 238, 241, 246, 235, 238, 243, 232, 235, 240, 231, 234, 239, 228, 229, 233, 228, 229, 233, 226, 227, 231, 222, 223, 227, 216, 215, 220, 208, 208, 210, 201, 201, 203, 196, 196, 198, 192, 190, 191, 192, 190, 191, 193, 189, 188, 192, 188, 187, 193, 187, 187, 193, 187, 187, 194, 189, 186, 195, 190, 187, 194, 188, 188, 199, 193, 193, 201, 196, 193, 196, 191, 188, 187, 182, 179, 180, 175, 172, 182, 174, 172, 184, 176, 174, 188, 180, 177, 185, 177, 174, 182, 174, 171, 179, 171, 168, 173, 163, 161, 167, 157, 155, 170, 161, 156, 178, 169, 164, 180, 171, 166, 169, 160, 155, 161, 152, 147, 162, 153, 148, 162, 153, 148, 160, 151, 146, 163, 154, 149, 170, 161, 156, 164, 155, 150, 160, 151, 146, 156, 147, 142, 157, 148, 143, 162, 153, 148, 164, 155, 150, 160, 151, 146, 156, 147, 142, 140, 129, 125, 144, 133, 129, 142, 133, 128, 138, 129, 124, 143, 134, 129, 150, 141, 136, 148, 139, 134, 138, 129, 124, 130, 123, 117, 133, 126, 120, 143, 136, 130, 159, 152, 146, 170, 163, 157, 164, 157, 151, 142, 135, 129, 122, 115, 109, 137, 128, 123, 135, 126, 121, 129, 121, 118, 121, 113, 110, 115, 107, 104, 115, 107, 104, 122, 114, 111, 128, 120, 117, 142, 134, 132, 145, 140, 137, 151, 146, 143, 158, 153, 150, 165, 160, 157, 173, 168, 165, 181, 177, 176, 187, 183, 182, 184, 180, 179, 185, 184, 182, 190, 189, 187, 195, 194, 192, 200, 199, 197, 202, 201, 199, 202, 202, 200, 202, 202, 200, 203, 203, 201, 203, 203, 201, 203, 203, 201, 203, 203, 201, 202, 204, 201, 202, 204, 201, 201, 203, 200, 200, 202, 199, 218, 220, 219, 223, 225, 224, 230, 232, 231, 235, 237, 236, 238, 240, 239, 239, 241, 240, 242, 244, 243, 244, 246, 245, 241, 243, 242, 242, 244, 243, 244, 246, 245, 246, 248, 247, 247, 249, 248, 248, 250, 249, 248, 250, 249, 247, 249, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 249, 249, 249, 249, 249, 249, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 249, 249, 249, 248, 248, 248, 248, 248, 248, 248, 248, 248, 247, 247, 247, 247, 247, 247, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 248, 248, 248, 248, 248, 248, 247, 247, 247, 247, 247, 247, 247, 247, 247, 246, 246, 246, 246, 246, 246, 246, 246, 246, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 246, 246, 244, 247, 246, 244, 247, 246, 244, 247, 246, 244, 247, 246, 244, 246, 245, 243, 246, 245, 243, 248, 244, 243, 248, 244, 243, 248, 244, 243, 248, 244, 243, 247, 246, 242, 247, 246, 242, 247, 246, 242, 246, 245, 241, 245, 241, 238, 243, 238, 235, 242, 232, 231, 242, 228, 228, 238, 218, 220, 237, 212, 216, 236, 205, 210, 233, 198, 204, 230, 193, 200, 231, 191, 199, 232, 191, 197, 236, 191, 198, 238, 187, 194, 240, 183, 190, 240, 179, 187, 240, 177, 186, 243, 178, 186, 242, 177, 185, 239, 174, 182, 235, 173, 178, 235, 170, 176, 235, 170, 176, 237, 170, 177, 238, 171, 178, 239, 172, 179, 238, 176, 181, 236, 177, 181, 235, 178, 184, 236, 175, 182, 237, 174, 183, 236, 175, 182, 237, 176, 183, 236, 177, 183, 234, 177, 183, 231, 179, 183, 230, 180, 183, 233, 188, 191, 232, 192, 193, 230, 198, 199, 232, 206, 205, 235, 217, 215, 236, 226, 224, 239, 234, 231, 240, 239, 235, 239, 238, 236, 240, 239, 237, 241, 240, 238, 242, 241, 239, 243, 242, 240, 243, 242, 240, 242, 241, 239, 241, 240, 238, 240, 239, 237, 240, 239, 237, 240, 239, 237, 240, 239, 237, 240, 239, 237, 240, 239, 237, 240, 239, 237, 240, 239, 237, 241, 240, 238, 241, 240, 238, 242, 241, 239, 242, 241, 239, 242, 241, 239, 243, 242, 240, 243, 242, 240, 243, 242, 240, 242, 241, 239, 242, 241, 239, 243, 242, 240, 243, 242, 240, 243, 242, 240, 244, 243, 241, 244, 243, 241, 244, 243, 241, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 243, 243, 243, 244, 244, 244, 244, 244, 244, 244, 244, 244, 245, 245, 245, 245, 245, 245, 245, 245, 245, 246, 246, 246, 245, 244, 242, 245, 244, 242, 244, 243, 241, 244, 243, 241, 244, 243, 241, 243, 242, 240, 243, 242, 240, 243, 242, 240, 239, 238, 236, 240, 239, 237, 240, 239, 237, 240, 239, 237, 239, 238, 236, 238, 237, 235, 236, 235, 233, 235, 234, 232, 234, 233, 229, 234, 233, 229, 233, 232, 228, 232, 231, 227, 231, 230, 226, 229, 228, 224, 229, 228, 224, 228, 227, 223, 224, 223, 219, 223, 222, 218, 217, 216, 212, 207, 206, 202, 203, 202, 198, 205, 204, 200, 206, 205, 201, 205, 201, 198, 193, 188, 185, 182, 174, 172, 175, 167, 165, 185, 177, 175, 201, 193, 191, 208, 200, 198, 205, 200, 197, 202, 197, 194, 212, 207, 204, 217, 212, 209, 223, 218, 215, 227, 222, 219, 227, 223, 220, 231, 227, 224, 237, 233, 230, 242, 238, 235, 235, 230, 226, 234, 229, 225, 233, 228, 224, 232, 227, 223, 230, 225, 221, 229, 224, 220, 228, 223, 219, 227, 222, 218, 229, 224, 220, 229, 224, 220, 229, 224, 220, 229, 224, 220, 229, 224, 220, 229, 224, 220, 229, 224, 220, 229, 224, 220, 228, 223, 217, 228, 223, 217, 228, 223, 217, 227, 222, 216, 227, 222, 216, 227, 222, 216, 226, 221, 215, 226, 221, 215, 225, 220, 214, 225, 220, 214, 225, 220, 214, 224, 219, 213, 224, 219, 213, 224, 219, 213, 223, 218, 212, 223, 218, 212, 224, 219, 213, 224, 219, 213, 223, 218, 212, 223, 218, 212, 222, 217, 211, 222, 217, 211, 222, 217, 211, 222, 217, 211, 222, 217, 211, 222, 217, 211, 221, 216, 210, 220, 215, 209, 220, 215, 209, 219, 214, 208, 218, 213, 207, 218, 213, 207, 216, 211, 205, 215, 210, 204, 215, 210, 204, 215, 210, 204, 215, 210, 204, 216, 211, 205, 217, 212, 206, 218, 213, 207, 218, 213, 207, 219, 214, 208, 219, 214, 208, 220, 215, 209, 221, 216, 210, 223, 218, 212, 225, 220, 214, 225, 222, 215, 223, 220, 213, 224, 224, 216, 228, 227, 222, 231, 230, 225, 231, 230, 225, 230, 229, 224, 228, 227, 222, 226, 225, 220, 232, 231, 227, 231, 230, 226, 229, 228, 224, 228, 227, 223, 228, 227, 223, 230, 229, 225, 231, 230, 228, 233, 232, 230, 233, 232, 228, 233, 232, 228, 233, 232, 228, 234, 233, 229, 234, 233, 229, 234, 233, 229, 235, 234, 230, 235, 234, 230, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 235, 236, 231, 235, 236, 231, 235, 236, 231, 235, 236, 231, 235, 236, 231, 235, 236, 231, 235, 235, 233, 235, 235, 233, 234, 234, 232, 234, 234, 232, 234, 234, 232, 233, 233, 231, 233, 233, 233, 233, 233, 233, 232, 232, 232, 232, 232, 232, 230, 232, 231, 230, 232, 231, 228, 230, 229, 227, 229, 228, 225, 227, 226, 224, 226, 225, 222, 224, 223, 222, 224, 223, 223, 225, 224, 221, 223, 222, 220, 222, 221, 220, 222, 221, 221, 223, 222, 220, 222, 221, 216, 218, 217, 213, 215, 214, 211, 212, 214, 209, 210, 212, 206, 207, 209, 203, 204, 206, 202, 202, 204, 200, 200, 202, 199, 199, 201, 199, 199, 201, 197, 197, 199, 196, 196, 198, 196, 194, 197, 194, 192, 195, 191, 189, 192, 187, 185, 188, 182, 180, 183, 179, 177, 180, 183, 179, 180, 183, 179, 180, 181, 177, 176, 177, 173, 172, 170, 166, 165, 164, 160, 159, 162, 156, 156, 161, 155, 155, 159, 154, 151, 160, 155, 152, 160, 155, 152, 160, 155, 152, 160, 152, 150, 159, 151, 149, 157, 149, 146, 156, 148, 145, 154, 146, 144, 154, 146, 144, 155, 147, 145, 156, 148, 146, 158, 150, 148, 159, 151, 149, 160, 152, 150, 160, 152, 150, 157, 149, 147, 158, 150, 148, 160, 152, 150, 163, 155, 153, 165, 157, 155, 168, 160, 158, 170, 162, 160, 169, 164, 161, 175, 171, 170, 178, 174, 173, 182, 178, 177, 183, 182, 180, 185, 183, 184, 187, 187, 187, 191, 191, 193, 194, 194, 196, 201, 201, 203, 205, 206, 208, 210, 211, 215, 213, 217, 220, 215, 218, 223, 218, 221, 226, 222, 225, 230, 225, 228, 233, 227, 230, 235, 227, 230, 235, 229, 232, 237, 230, 233, 238, 232, 235, 240, 234, 237, 242, 236, 239, 244, 236, 239, 244, 239, 242, 247, 239, 242, 247, 240, 243, 248, 241, 244, 249, 241, 244, 249, 242, 245, 250, 243, 246, 251, 243, 246, 251, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 244, 245, 249, 244, 245, 249, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 244, 247, 252, 244, 247, 252, 243, 246, 251, 241, 244, 249, 238, 241, 246, 235, 238, 243, 232, 235, 240, 231, 234, 239, 233, 234, 238, 232, 233, 237, 229, 230, 234, 224, 225, 229, 218, 217, 222, 209, 208, 213, 200, 200, 202, 195, 195, 197, 196, 194, 195, 195, 193, 194, 196, 192, 191, 195, 191, 190, 196, 190, 190, 197, 191, 191, 198, 193, 190, 199, 194, 191, 201, 195, 195, 194, 188, 188, 186, 181, 178, 185, 180, 177, 187, 182, 179, 188, 183, 180, 185, 177, 175, 181, 173, 171, 191, 183, 180, 186, 178, 175, 179, 171, 168, 173, 165, 162, 166, 156, 154, 162, 152, 150, 169, 160, 155, 179, 170, 165, 181, 172, 167, 165, 156, 151, 155, 146, 141, 158, 149, 144, 162, 153, 148, 162, 153, 148, 167, 158, 153, 174, 165, 160, 157, 148, 143, 155, 146, 141, 154, 145, 140, 157, 148, 143, 157, 148, 143, 149, 140, 135, 134, 125, 120, 122, 113, 108, 119, 108, 104, 143, 132, 128, 155, 146, 141, 144, 135, 130, 132, 123, 118, 130, 121, 116, 127, 118, 113, 118, 109, 104, 121, 114, 108, 145, 138, 132, 172, 165, 159, 176, 169, 163, 157, 150, 144, 131, 124, 118, 115, 108, 102, 110, 103, 97, 132, 123, 118, 111, 102, 97, 93, 85, 82, 98, 90, 87, 122, 114, 111, 144, 136, 133, 151, 143, 140, 148, 140, 137, 151, 146, 143, 155, 150, 147, 161, 156, 153, 166, 161, 158, 169, 164, 161, 174, 169, 166, 178, 174, 173, 181, 177, 176, 179, 178, 176, 184, 183, 181, 191, 190, 188, 198, 197, 195, 202, 201, 199, 203, 202, 200, 200, 200, 198, 199, 199, 197, 208, 208, 206, 208, 208, 206, 208, 208, 206, 210, 210, 208, 212, 214, 211, 217, 219, 216, 222, 224, 221, 226, 228, 225, 226, 228, 227, 227, 229, 228, 228, 230, 229, 227, 229, 228, 226, 228, 227, 225, 227, 226, 227, 229, 228, 230, 232, 231, 241, 243, 242, 242, 244, 243, 244, 246, 245, 247, 249, 248, 249, 251, 250, 250, 252, 251, 250, 252, 251, 250, 252, 251, 248, 248, 248, 248, 248, 248, 248, 248, 248, 249, 249, 249, 249, 249, 249, 249, 249, 249, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 249, 249, 249, 248, 248, 248, 248, 248, 248, 248, 248, 248, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 248, 248, 248, 248, 248, 248, 247, 247, 247, 247, 247, 247, 247, 247, 247, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 246, 244, 247, 246, 244, 249, 248, 246, 249, 248, 246, 249, 248, 246, 249, 248, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 247, 243, 240, 246, 245, 241, 248, 244, 241, 247, 243, 240, 245, 241, 240, 242, 236, 236, 240, 231, 232, 240, 228, 230, 237, 221, 224, 237, 216, 221, 236, 209, 214, 233, 202, 208, 234, 197, 204, 234, 195, 200, 236, 193, 200, 239, 194, 199, 237, 188, 192, 237, 184, 190, 237, 180, 187, 239, 178, 186, 241, 178, 186, 240, 177, 185, 237, 174, 182, 235, 172, 180, 233, 170, 178, 236, 171, 177, 238, 171, 178, 239, 172, 179, 240, 173, 180, 238, 176, 181, 237, 178, 182, 236, 180, 183, 237, 176, 184, 238, 175, 184, 237, 176, 183, 236, 177, 183, 235, 178, 184, 234, 179, 184, 232, 182, 185, 229, 183, 185, 235, 195, 196, 232, 198, 197, 230, 202, 201, 229, 209, 208, 232, 218, 217, 236, 228, 225, 240, 236, 233, 242, 241, 237, 239, 238, 236, 240, 239, 237, 241, 240, 238, 242, 241, 239, 243, 242, 240, 243, 242, 240, 242, 241, 239, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 242, 241, 239, 242, 241, 239, 242, 241, 239, 243, 242, 240, 241, 240, 238, 242, 241, 239, 242, 241, 239, 242, 241, 239, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 241, 241, 241, 241, 241, 241, 241, 241, 241, 242, 242, 242, 242, 242, 242, 242, 242, 242, 243, 243, 243, 243, 243, 243, 244, 243, 241, 244, 243, 241, 244, 243, 241, 244, 243, 241, 243, 242, 240, 243, 242, 240, 242, 241, 239, 242, 241, 239, 238, 237, 235, 238, 237, 235, 239, 238, 236, 239, 238, 236, 238, 237, 235, 236, 235, 233, 235, 234, 232, 234, 233, 231, 232, 231, 227, 232, 231, 227, 231, 230, 226, 231, 230, 226, 230, 229, 225, 229, 228, 224, 229, 228, 224, 229, 228, 224, 219, 218, 214, 220, 219, 215, 216, 215, 211, 209, 208, 204, 207, 206, 202, 213, 212, 208, 220, 219, 215, 225, 221, 218, 216, 211, 208, 198, 190, 188, 182, 174, 172, 184, 176, 174, 198, 190, 188, 207, 199, 197, 208, 203, 200, 208, 203, 200, 216, 211, 208, 222, 217, 214, 227, 222, 219, 227, 222, 219, 223, 219, 216, 224, 220, 217, 232, 228, 225, 239, 235, 232, 240, 235, 231, 239, 234, 230, 237, 232, 228, 235, 230, 226, 233, 228, 224, 231, 226, 222, 229, 224, 220, 228, 223, 219, 229, 224, 220, 229, 224, 220, 229, 224, 220, 229, 224, 220, 229, 224, 220, 229, 224, 220, 229, 224, 220, 229, 224, 220, 228, 223, 217, 228, 223, 217, 228, 223, 217, 228, 223, 217, 227, 222, 216, 227, 222, 216, 227, 222, 216, 226, 221, 215, 225, 220, 214, 225, 220, 214, 224, 219, 213, 224, 219, 213, 224, 219, 213, 223, 218, 212, 223, 218, 212, 223, 218, 212, 223, 218, 212, 223, 218, 212, 223, 218, 212, 223, 218, 212, 222, 217, 211, 222, 217, 211, 221, 216, 210, 221, 216, 210, 222, 217, 211, 222, 217, 211, 221, 216, 210, 220, 215, 209, 220, 215, 209, 219, 214, 208, 218, 213, 207, 218, 213, 207, 219, 214, 208, 218, 213, 207, 217, 212, 206, 217, 212, 206, 216, 211, 205, 217, 212, 206, 218, 213, 207, 219, 214, 208, 219, 214, 208, 220, 215, 209, 223, 218, 212, 225, 220, 214, 224, 219, 213, 222, 217, 211, 220, 215, 209, 217, 214, 207, 224, 221, 214, 221, 221, 213, 220, 219, 214, 220, 219, 214, 223, 222, 217, 228, 227, 222, 233, 232, 227, 237, 236, 231, 234, 233, 229, 232, 231, 227, 230, 229, 225, 229, 228, 224, 229, 228, 224, 230, 229, 225, 232, 231, 229, 234, 233, 231, 232, 231, 227, 232, 231, 227, 233, 232, 228, 233, 232, 228, 233, 232, 228, 234, 233, 229, 234, 233, 229, 234, 233, 229, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 235, 236, 231, 235, 236, 231, 235, 236, 231, 235, 236, 231, 235, 236, 231, 235, 236, 231, 235, 235, 233, 235, 235, 233, 234, 234, 232, 234, 234, 232, 234, 234, 232, 234, 234, 232, 233, 233, 233, 233, 233, 233, 233, 233, 233, 232, 232, 232, 230, 232, 231, 230, 232, 231, 229, 231, 230, 227, 229, 228, 225, 227, 226, 224, 226, 225, 223, 225, 224, 222, 224, 223, 223, 225, 224, 221, 223, 222, 220, 222, 221, 221, 223, 222, 223, 225, 224, 222, 224, 223, 219, 221, 220, 217, 219, 218, 214, 215, 217, 213, 214, 216, 209, 210, 212, 206, 207, 209, 204, 204, 206, 202, 202, 204, 201, 201, 203, 200, 200, 202, 199, 199, 201, 196, 196, 198, 194, 192, 195, 192, 190, 193, 192, 190, 193, 192, 190, 193, 189, 187, 190, 186, 184, 187, 178, 174, 175, 182, 178, 179, 185, 181, 180, 181, 177, 176, 173, 169, 168, 166, 162, 161, 165, 159, 159, 165, 159, 159, 161, 156, 153, 162, 157, 154, 163, 158, 155, 162, 157, 154, 162, 154, 152, 158, 150, 148, 154, 146, 143, 152, 144, 141, 161, 153, 151, 160, 152, 150, 159, 151, 149, 158, 150, 148, 157, 149, 147, 158, 150, 148, 159, 151, 149, 160, 152, 150, 156, 148, 146, 156, 148, 146, 158, 150, 148, 160, 152, 150, 163, 155, 153, 165, 157, 155, 167, 159, 157, 168, 160, 158, 174, 168, 168, 176, 172, 171, 179, 175, 174, 181, 177, 176, 182, 178, 179, 183, 181, 182, 186, 184, 187, 188, 188, 190, 197, 197, 199, 201, 201, 203, 207, 206, 211, 210, 211, 215, 214, 215, 220, 215, 218, 223, 219, 222, 227, 222, 225, 230, 226, 229, 234, 226, 229, 234, 228, 231, 236, 230, 233, 238, 232, 235, 240, 234, 237, 242, 235, 238, 243, 236, 239, 244, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 241, 244, 249, 242, 245, 250, 243, 246, 251, 243, 246, 251, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 240, 243, 248, 239, 242, 247, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 229, 232, 237, 228, 231, 236, 228, 229, 234, 224, 225, 230, 220, 221, 225, 215, 216, 220, 212, 212, 214, 209, 209, 211, 205, 203, 204, 202, 200, 201, 202, 198, 199, 202, 198, 199, 203, 199, 198, 204, 200, 199, 203, 199, 198, 202, 198, 197, 191, 185, 185, 191, 185, 185, 190, 185, 182, 189, 184, 181, 187, 182, 179, 185, 180, 177, 185, 177, 175, 183, 175, 173, 181, 173, 170, 178, 170, 167, 175, 167, 164, 172, 164, 161, 173, 163, 161, 175, 165, 163, 178, 169, 164, 181, 172, 167, 154, 145, 140, 162, 153, 148, 161, 152, 147, 154, 145, 140, 154, 145, 140, 163, 154, 149, 165, 156, 151, 160, 151, 146, 149, 140, 135, 135, 126, 121, 129, 120, 115, 136, 127, 122, 138, 129, 124, 129, 120, 115, 123, 114, 109, 124, 115, 110, 131, 122, 117, 149, 140, 135, 141, 132, 127, 121, 112, 107, 118, 109, 104, 121, 112, 107, 125, 118, 112, 137, 130, 124, 151, 144, 138, 151, 144, 138, 154, 147, 141, 158, 151, 145, 147, 142, 136, 127, 122, 116, 109, 104, 98, 102, 97, 91, 90, 83, 77, 102, 95, 89, 122, 114, 111, 142, 134, 131, 152, 147, 143, 154, 149, 145, 148, 143, 139, 141, 136, 132, 140, 135, 132, 149, 144, 141, 161, 157, 154, 172, 168, 165, 177, 173, 170, 178, 174, 171, 178, 174, 173, 178, 174, 173, 180, 179, 177, 185, 184, 182, 191, 190, 188, 195, 194, 192, 195, 195, 193, 195, 195, 193, 196, 196, 194, 197, 197, 195, 206, 206, 204, 209, 209, 207, 213, 215, 212, 217, 219, 216, 219, 221, 218, 218, 220, 217, 217, 219, 216, 215, 217, 214, 221, 223, 222, 225, 227, 226, 229, 231, 230, 232, 234, 233, 234, 236, 235, 237, 239, 238, 241, 243, 242, 244, 246, 245, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 245, 247, 246, 243, 245, 244, 242, 244, 243, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 248, 248, 248, 248, 248, 248, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 249, 249, 249, 248, 248, 248, 248, 248, 248, 251, 251, 251, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 249, 249, 249, 248, 248, 248, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 247, 249, 246, 247, 249, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 250, 249, 247, 248, 247, 245, 246, 245, 243, 244, 243, 241, 244, 243, 241, 246, 245, 243, 248, 247, 245, 252, 248, 247, 244, 240, 237, 246, 243, 238, 249, 244, 241, 251, 246, 243, 250, 244, 244, 247, 241, 241, 245, 236, 239, 244, 233, 237, 238, 226, 230, 239, 223, 226, 241, 219, 222, 241, 212, 217, 240, 205, 211, 238, 199, 204, 235, 192, 199, 234, 189, 194, 237, 191, 194, 238, 187, 192, 238, 183, 189, 238, 178, 186, 238, 175, 184, 238, 175, 184, 239, 176, 185, 239, 178, 186, 240, 177, 186, 238, 173, 181, 235, 168, 177, 234, 167, 176, 235, 168, 175, 235, 173, 178, 234, 175, 179, 233, 177, 180, 236, 175, 183, 234, 173, 181, 231, 170, 178, 229, 169, 177, 229, 172, 179, 230, 177, 183, 233, 184, 188, 232, 190, 192, 230, 194, 196, 233, 205, 204, 235, 214, 213, 232, 217, 214, 232, 222, 220, 234, 229, 226, 237, 233, 232, 234, 233, 231, 237, 236, 234, 238, 237, 235, 239, 238, 236, 240, 239, 237, 241, 240, 238, 241, 240, 238, 240, 239, 237, 239, 238, 236, 247, 246, 244, 246, 245, 243, 246, 245, 243, 245, 244, 242, 245, 244, 242, 244, 243, 241, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 240, 239, 237, 241, 240, 238, 242, 241, 239, 243, 242, 240, 245, 244, 242, 246, 245, 243, 247, 246, 244, 248, 247, 245, 247, 246, 244, 247, 246, 244, 246, 245, 243, 245, 244, 242, 245, 244, 242, 244, 243, 241, 243, 242, 240, 243, 242, 240, 240, 239, 237, 239, 238, 236, 239, 238, 236, 238, 237, 235, 237, 236, 234, 237, 236, 234, 236, 235, 233, 236, 235, 233, 240, 239, 237, 240, 239, 237, 239, 238, 236, 238, 237, 235, 237, 236, 234, 237, 236, 234, 236, 235, 233, 235, 234, 232, 236, 235, 231, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 239, 238, 234, 225, 224, 220, 225, 224, 220, 224, 223, 219, 220, 219, 215, 213, 212, 208, 205, 204, 200, 197, 196, 192, 195, 191, 188, 214, 209, 206, 228, 220, 218, 234, 226, 224, 225, 217, 215, 204, 199, 196, 195, 190, 187, 204, 199, 196, 216, 211, 208, 227, 222, 219, 225, 220, 217, 222, 218, 215, 222, 218, 215, 223, 219, 216, 226, 222, 219, 229, 225, 222, 232, 228, 225, 226, 221, 217, 232, 227, 223, 239, 234, 230, 245, 240, 236, 246, 241, 237, 242, 237, 233, 235, 230, 226, 231, 226, 222, 225, 220, 216, 227, 222, 218, 230, 225, 221, 232, 227, 223, 232, 227, 223, 229, 224, 220, 226, 221, 217, 224, 219, 215, 226, 221, 215, 227, 222, 216, 229, 224, 218, 230, 225, 219, 230, 225, 219, 229, 224, 218, 228, 223, 217, 227, 222, 216, 226, 221, 215, 226, 221, 215, 226, 221, 215, 225, 220, 214, 225, 220, 214, 225, 220, 214, 224, 219, 213, 224, 219, 213, 223, 219, 210, 223, 219, 210, 223, 219, 210, 222, 218, 209, 222, 218, 209, 222, 218, 209, 221, 217, 208, 221, 217, 208, 219, 215, 206, 219, 215, 206, 219, 215, 206, 219, 215, 206, 219, 215, 206, 219, 215, 206, 219, 215, 206, 219, 215, 206, 219, 214, 208, 219, 214, 208, 220, 215, 209, 220, 215, 209, 220, 215, 209, 221, 216, 210, 221, 216, 210, 221, 216, 210, 223, 218, 212, 223, 218, 212, 224, 219, 213, 224, 219, 213, 224, 219, 213, 225, 220, 214, 225, 220, 214, 224, 221, 214, 226, 223, 216, 224, 224, 216, 224, 223, 218, 225, 224, 219, 226, 225, 220, 227, 226, 221, 227, 226, 221, 228, 227, 222, 234, 233, 229, 234, 233, 229, 234, 233, 229, 235, 234, 230, 235, 234, 230, 236, 235, 231, 236, 235, 233, 236, 235, 233, 232, 231, 227, 233, 232, 228, 233, 232, 228, 233, 232, 228, 234, 233, 229, 234, 233, 229, 234, 233, 229, 235, 234, 230, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 234, 235, 230, 234, 235, 230, 234, 235, 230, 234, 235, 230, 234, 235, 230, 234, 235, 230, 234, 234, 232, 234, 234, 232, 235, 235, 233, 235, 235, 233, 234, 234, 232, 234, 234, 232, 234, 234, 234, 233, 233, 233, 233, 233, 233, 233, 233, 233, 231, 233, 232, 231, 233, 232, 230, 232, 231, 230, 232, 231, 229, 231, 230, 228, 230, 229, 227, 229, 228, 227, 229, 228, 225, 227, 226, 225, 227, 226, 224, 226, 225, 222, 224, 223, 220, 222, 221, 219, 221, 220, 218, 220, 219, 217, 219, 218, 216, 217, 219, 215, 216, 218, 213, 214, 216, 211, 212, 214, 208, 209, 211, 206, 207, 209, 205, 205, 207, 204, 204, 206, 201, 201, 203, 200, 200, 202, 198, 198, 200, 196, 196, 198, 194, 192, 195, 192, 190, 193, 190, 188, 191, 189, 187, 190, 181, 179, 180, 182, 180, 181, 183, 181, 182, 182, 180, 181, 180, 176, 177, 173, 169, 170, 165, 161, 160, 160, 156, 155, 164, 160, 159, 164, 160, 159, 163, 158, 155, 161, 156, 153, 159, 154, 151, 157, 152, 149, 156, 151, 148, 155, 150, 147, 163, 155, 153, 162, 154, 152, 160, 152, 150, 158, 150, 148, 157, 149, 147, 156, 148, 146, 156, 148, 146, 157, 149, 147, 156, 148, 146, 157, 149, 147, 159, 151, 149, 161, 153, 151, 164, 156, 154, 166, 158, 156, 168, 160, 158, 169, 161, 159, 169, 164, 161, 170, 165, 162, 172, 167, 164, 174, 170, 167, 177, 173, 172, 182, 178, 177, 185, 181, 182, 185, 183, 184, 192, 190, 193, 195, 195, 197, 201, 201, 203, 205, 206, 208, 209, 210, 214, 214, 215, 219, 220, 221, 225, 224, 225, 229, 221, 224, 229, 222, 225, 230, 225, 228, 233, 229, 232, 237, 232, 235, 240, 234, 237, 242, 235, 238, 243, 235, 238, 243, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 239, 242, 247, 242, 246, 249, 242, 246, 249, 242, 246, 249, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 240, 243, 248, 239, 242, 247, 238, 241, 246, 238, 241, 246, 237, 240, 245, 236, 239, 244, 235, 238, 243, 234, 235, 240, 231, 232, 237, 226, 227, 231, 221, 222, 226, 217, 217, 219, 215, 215, 217, 208, 206, 209, 205, 203, 204, 203, 199, 200, 201, 197, 198, 201, 197, 196, 200, 196, 195, 198, 194, 193, 196, 192, 191, 192, 186, 186, 192, 186, 186, 191, 186, 183, 189, 184, 181, 187, 182, 179, 184, 179, 176, 183, 175, 173, 182, 174, 172, 182, 174, 171, 181, 173, 170, 180, 172, 169, 179, 171, 168, 179, 169, 167, 179, 169, 167, 178, 169, 164, 178, 169, 164, 167, 158, 153, 167, 158, 153, 164, 155, 150, 160, 151, 146, 159, 150, 145, 159, 150, 145, 153, 144, 139, 145, 136, 131, 128, 119, 114, 137, 128, 123, 144, 135, 130, 142, 133, 128, 136, 127, 122, 133, 124, 119, 133, 124, 119, 133, 124, 119, 126, 117, 112, 122, 113, 108, 108, 99, 94, 112, 103, 98, 140, 131, 126, 154, 145, 140, 144, 137, 131, 137, 130, 124, 125, 118, 112, 142, 135, 129, 156, 149, 143, 150, 143, 137, 127, 122, 116, 112, 107, 101, 111, 106, 100, 117, 112, 106, 108, 101, 95, 129, 122, 116, 155, 147, 144, 168, 160, 157, 162, 157, 153, 152, 147, 143, 145, 140, 136, 143, 138, 134, 172, 167, 164, 173, 169, 166, 174, 170, 167, 175, 171, 168, 178, 174, 171, 184, 180, 177, 192, 188, 187, 196, 195, 193, 185, 184, 182, 187, 186, 184, 190, 189, 187, 193, 192, 190, 196, 196, 194, 202, 202, 200, 210, 210, 208, 215, 215, 213, 213, 213, 211, 215, 215, 213, 216, 218, 215, 218, 220, 217, 219, 221, 218, 218, 220, 217, 216, 218, 215, 215, 217, 214, 241, 243, 242, 242, 244, 243, 243, 245, 244, 242, 244, 243, 240, 242, 241, 239, 241, 240, 241, 243, 242, 242, 244, 243, 244, 246, 245, 245, 247, 246, 246, 248, 247, 247, 249, 248, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 249, 249, 249, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 249, 249, 249, 248, 248, 248, 248, 248, 248, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 248, 245, 246, 248, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 245, 243, 246, 245, 243, 247, 246, 244, 247, 246, 244, 247, 246, 244, 247, 246, 244, 246, 245, 243, 246, 245, 241, 245, 241, 238, 247, 242, 238, 249, 244, 241, 250, 245, 242, 250, 244, 244, 247, 241, 241, 244, 238, 240, 243, 234, 237, 239, 230, 233, 240, 228, 230, 242, 223, 225, 241, 216, 219, 240, 210, 212, 237, 202, 206, 236, 195, 199, 234, 192, 196, 236, 191, 194, 237, 188, 192, 237, 182, 188, 237, 177, 185, 236, 175, 183, 237, 174, 183, 237, 176, 184, 238, 175, 184, 237, 174, 183, 236, 170, 180, 235, 165, 176, 235, 163, 174, 235, 165, 173, 236, 169, 176, 234, 173, 178, 234, 175, 179, 238, 178, 186, 236, 176, 184, 234, 173, 181, 232, 172, 180, 230, 175, 181, 231, 180, 185, 232, 187, 190, 231, 192, 193, 228, 196, 197, 232, 208, 206, 235, 217, 215, 233, 222, 220, 233, 225, 223, 235, 231, 228, 238, 234, 233, 234, 233, 231, 240, 239, 237, 241, 240, 238, 242, 241, 239, 243, 242, 240, 244, 243, 241, 243, 242, 240, 243, 242, 240, 242, 241, 239, 236, 235, 233, 237, 236, 234, 239, 238, 236, 241, 240, 238, 243, 242, 240, 246, 245, 243, 247, 246, 244, 248, 247, 245, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 243, 242, 240, 243, 242, 240, 242, 241, 239, 242, 241, 239, 241, 240, 238, 240, 239, 237, 240, 239, 237, 239, 238, 236, 236, 235, 233, 236, 235, 233, 236, 235, 233, 237, 236, 234, 238, 237, 235, 238, 237, 235, 239, 238, 236, 239, 238, 236, 239, 238, 236, 239, 238, 236, 239, 238, 236, 238, 237, 235, 238, 237, 235, 238, 237, 235, 237, 236, 234, 237, 236, 234, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 247, 246, 242, 240, 239, 235, 229, 228, 224, 218, 217, 213, 209, 208, 204, 205, 204, 200, 205, 204, 200, 205, 204, 200, 197, 192, 189, 203, 195, 193, 214, 206, 204, 230, 225, 222, 242, 237, 234, 240, 235, 232, 224, 219, 216, 208, 203, 200, 218, 213, 210, 219, 215, 212, 222, 218, 215, 226, 222, 219, 228, 224, 221, 229, 225, 222, 230, 226, 223, 230, 226, 223, 225, 220, 216, 228, 223, 219, 232, 227, 223, 236, 231, 227, 239, 234, 230, 241, 236, 232, 241, 236, 232, 241, 236, 232, 233, 228, 224, 232, 227, 223, 229, 224, 220, 227, 222, 218, 227, 222, 218, 230, 225, 221, 233, 228, 224, 235, 230, 226, 229, 224, 218, 227, 222, 216, 225, 220, 214, 225, 220, 214, 225, 220, 214, 227, 222, 216, 230, 225, 219, 232, 227, 221, 226, 221, 215, 226, 221, 215, 226, 221, 215, 225, 220, 214, 225, 220, 214, 225, 220, 214, 224, 219, 213, 224, 219, 213, 223, 219, 210, 223, 219, 210, 223, 219, 210, 223, 219, 210, 222, 218, 209, 222, 218, 209, 221, 217, 208, 221, 217, 208, 219, 215, 206, 219, 215, 206, 219, 215, 206, 219, 215, 206, 219, 215, 206, 219, 215, 206, 219, 215, 206, 219, 215, 206, 220, 215, 209, 220, 215, 209, 220, 215, 209, 220, 215, 209, 221, 216, 210, 221, 216, 210, 221, 216, 210, 222, 217, 211, 224, 219, 213, 224, 219, 213, 224, 219, 213, 224, 219, 213, 225, 220, 214, 225, 220, 214, 226, 221, 215, 225, 222, 215, 226, 223, 216, 224, 224, 216, 225, 224, 219, 226, 225, 220, 226, 225, 220, 227, 226, 221, 228, 227, 222, 228, 227, 222, 233, 232, 228, 233, 232, 228, 234, 233, 229, 234, 233, 229, 234, 233, 229, 235, 234, 230, 235, 234, 232, 235, 234, 232, 233, 232, 228, 233, 232, 228, 234, 233, 229, 234, 233, 229, 234, 233, 229, 235, 234, 230, 235, 234, 230, 235, 234, 230, 236, 235, 231, 236, 235, 231, 236, 235, 231, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 238, 237, 233, 235, 236, 231, 235, 236, 231, 235, 236, 231, 235, 236, 231, 235, 236, 231, 235, 236, 231, 235, 235, 233, 235, 235, 233, 235, 235, 233, 235, 235, 233, 235, 235, 233, 234, 234, 232, 234, 234, 234, 233, 233, 233, 233, 233, 233, 233, 233, 233, 231, 233, 232, 231, 233, 232, 230, 232, 231, 230, 232, 231, 229, 231, 230, 228, 230, 229, 227, 229, 228, 227, 229, 228, 226, 228, 227, 225, 227, 226, 224, 226, 225, 222, 224, 223, 221, 223, 222, 219, 221, 220, 218, 220, 219, 217, 219, 218, 216, 217, 219, 215, 216, 218, 213, 214, 216, 211, 212, 214, 208, 209, 211, 206, 207, 209, 205, 205, 207, 204, 204, 206, 201, 201, 203, 200, 200, 202, 199, 199, 201, 196, 196, 198, 195, 193, 196, 192, 190, 193, 191, 189, 192, 190, 188, 191, 182, 180, 181, 183, 181, 182, 183, 181, 182, 183, 181, 182, 181, 177, 178, 177, 173, 174, 172, 168, 167, 169, 165, 164, 166, 162, 161, 165, 161, 160, 165, 160, 157, 163, 158, 155, 161, 156, 153, 159, 154, 151, 157, 152, 149, 157, 152, 149, 163, 155, 153, 162, 154, 152, 160, 152, 150, 158, 150, 148, 157, 149, 147, 157, 149, 147, 157, 149, 147, 157, 149, 147, 156, 148, 146, 157, 149, 147, 159, 151, 149, 161, 153, 151, 163, 155, 153, 165, 157, 155, 167, 159, 157, 168, 160, 158, 168, 163, 160, 169, 164, 161, 170, 165, 162, 173, 168, 165, 176, 170, 170, 179, 175, 174, 183, 179, 180, 185, 181, 182, 189, 184, 188, 191, 189, 192, 197, 195, 198, 201, 201, 203, 205, 204, 209, 209, 210, 214, 215, 216, 220, 219, 220, 224, 218, 221, 226, 220, 223, 228, 223, 226, 231, 226, 229, 234, 229, 232, 237, 231, 234, 239, 232, 235, 240, 233, 236, 241, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 243, 246, 251, 242, 245, 250, 242, 245, 250, 241, 244, 249, 240, 243, 248, 239, 242, 247, 239, 242, 247, 238, 241, 246, 239, 242, 247, 238, 241, 246, 235, 238, 243, 231, 234, 239, 228, 229, 233, 223, 224, 228, 219, 218, 223, 216, 216, 218, 209, 209, 211, 205, 205, 207, 201, 199, 200, 198, 196, 197, 198, 194, 193, 196, 192, 191, 193, 189, 188, 191, 187, 186, 194, 188, 188, 193, 187, 187, 192, 187, 184, 190, 185, 182, 187, 182, 179, 184, 179, 176, 182, 174, 172, 181, 173, 171, 181, 173, 170, 181, 173, 170, 182, 174, 171, 182, 174, 171, 182, 172, 170, 179, 169, 167, 175, 166, 161, 173, 164, 159, 177, 166, 162, 170, 159, 155, 166, 155, 151, 168, 157, 153, 166, 155, 151, 157, 146, 142, 147, 136, 132, 142, 131, 127, 128, 117, 113, 146, 135, 131, 155, 144, 140, 146, 135, 131, 140, 129, 125, 142, 131, 127, 139, 128, 124, 130, 119, 115, 119, 110, 105, 126, 117, 112, 131, 122, 117, 137, 128, 123, 139, 132, 126, 126, 119, 113, 113, 106, 100, 114, 107, 101, 130, 123, 117, 150, 143, 137, 158, 153, 147, 144, 139, 133, 126, 121, 115, 127, 122, 116, 141, 136, 130, 152, 147, 141, 176, 171, 165, 178, 173, 167, 175, 170, 166, 163, 158, 154, 149, 144, 140, 143, 138, 134, 147, 144, 139, 154, 151, 146, 170, 166, 163, 170, 166, 163, 169, 165, 162, 163, 162, 158, 160, 159, 155, 159, 158, 154, 161, 160, 158, 164, 163, 161, 166, 165, 163, 170, 170, 168, 178, 178, 176, 185, 185, 183, 192, 192, 190, 199, 199, 197, 207, 207, 205, 212, 212, 210, 224, 226, 223, 226, 228, 225, 228, 230, 227, 232, 234, 231, 235, 237, 234, 239, 241, 238, 239, 244, 240, 240, 245, 241, 230, 232, 231, 231, 233, 232, 233, 235, 234, 232, 234, 233, 231, 233, 232, 231, 233, 232, 234, 236, 235, 236, 238, 237, 239, 241, 240, 241, 243, 242, 244, 246, 245, 247, 249, 248, 249, 251, 250, 251, 253, 252, 252, 254, 253, 252, 254, 253, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 250, 250, 250, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 250, 250, 250, 249, 249, 249, 249, 249, 249, 249, 249, 249, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 247, 244, 245, 247, 244, 245, 247, 244, 245, 247, 244, 245, 247, 244, 245, 247, 244, 246, 246, 244, 246, 246, 244, 241, 241, 239, 243, 243, 241, 247, 246, 244, 249, 248, 246, 249, 248, 246, 247, 246, 244, 244, 243, 241, 242, 241, 237, 246, 242, 239, 247, 244, 239, 248, 245, 240, 249, 246, 241, 248, 244, 241, 246, 242, 239, 243, 239, 238, 241, 237, 236, 242, 238, 237, 241, 236, 233, 242, 230, 230, 240, 224, 224, 238, 217, 216, 237, 208, 210, 236, 202, 203, 236, 197, 200, 234, 192, 194, 235, 189, 191, 235, 182, 188, 235, 178, 185, 235, 173, 184, 236, 173, 184, 236, 173, 184, 236, 173, 184, 236, 170, 182, 235, 167, 178, 235, 163, 175, 235, 162, 173, 236, 163, 172, 237, 166, 174, 237, 171, 175, 236, 174, 179, 241, 181, 189, 237, 180, 189, 236, 176, 186, 233, 176, 185, 231, 178, 186, 232, 183, 189, 232, 190, 194, 230, 196, 197, 226, 200, 199, 232, 213, 209, 236, 222, 219, 235, 227, 224, 236, 231, 228, 238, 234, 231, 239, 235, 234, 236, 232, 231, 240, 239, 237, 240, 239, 237, 242, 241, 239, 243, 242, 240, 243, 242, 240, 243, 242, 240, 242, 241, 239, 242, 241, 239, 239, 238, 236, 239, 238, 236, 239, 238, 236, 239, 238, 236, 239, 238, 236, 239, 238, 236, 239, 238, 236, 239, 238, 236, 239, 238, 236, 239, 238, 236, 239, 238, 236, 239, 238, 236, 239, 238, 236, 239, 238, 236, 239, 238, 236, 239, 238, 236, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 242, 241, 239, 242, 241, 239, 241, 240, 238, 240, 239, 237, 238, 237, 235, 237, 236, 234, 236, 235, 233, 236, 235, 233, 238, 237, 235, 238, 237, 235, 238, 237, 235, 237, 236, 234, 237, 236, 234, 236, 235, 233, 236, 235, 233, 236, 235, 233, 232, 231, 229, 233, 232, 230, 234, 233, 231, 236, 235, 233, 238, 237, 235, 239, 238, 236, 240, 239, 237, 241, 240, 238, 237, 236, 234, 238, 237, 235, 238, 237, 235, 238, 237, 235, 239, 238, 236, 239, 238, 236, 239, 238, 236, 239, 238, 236, 235, 235, 233, 235, 235, 233, 235, 235, 233, 234, 234, 232, 233, 233, 231, 232, 232, 230, 232, 232, 230, 231, 231, 229, 239, 239, 237, 239, 239, 237, 238, 238, 236, 235, 235, 233, 229, 229, 227, 221, 221, 219, 213, 213, 211, 209, 208, 206, 215, 209, 209, 212, 206, 206, 209, 203, 203, 211, 205, 205, 219, 213, 213, 228, 224, 223, 238, 234, 233, 243, 239, 238, 223, 219, 218, 224, 220, 219, 225, 221, 220, 225, 224, 222, 226, 225, 223, 226, 225, 223, 225, 224, 222, 227, 223, 220, 230, 225, 221, 229, 224, 220, 228, 223, 219, 228, 223, 219, 231, 226, 222, 235, 230, 226, 240, 235, 231, 243, 238, 234, 248, 243, 239, 245, 240, 236, 239, 234, 230, 233, 228, 224, 229, 224, 220, 227, 222, 218, 228, 223, 219, 228, 223, 219, 233, 228, 222, 232, 227, 221, 229, 224, 218, 226, 221, 215, 224, 219, 213, 223, 218, 212, 223, 218, 212, 223, 218, 212, 226, 221, 215, 226, 221, 215, 226, 221, 215, 225, 220, 214, 225, 220, 214, 225, 220, 214, 224, 219, 213, 224, 219, 213, 226, 219, 211, 226, 219, 211, 225, 218, 210, 225, 218, 210, 224, 217, 209, 224, 217, 209, 224, 217, 209, 224, 217, 209, 222, 215, 207, 222, 215, 207, 222, 215, 207, 222, 215, 207, 222, 215, 207, 222, 215, 207, 222, 215, 207, 222, 215, 207, 220, 215, 209, 221, 216, 210, 221, 216, 210, 221, 216, 210, 222, 217, 211, 222, 217, 211, 222, 217, 211, 223, 218, 212, 224, 219, 213, 224, 219, 213, 225, 220, 214, 225, 220, 214, 225, 220, 214, 226, 221, 215, 226, 221, 215, 225, 222, 215, 226, 223, 216, 225, 225, 217, 225, 224, 219, 226, 225, 220, 227, 226, 221, 228, 227, 222, 228, 227, 222, 229, 228, 223, 232, 231, 227, 232, 231, 227, 232, 231, 227, 233, 232, 228, 233, 232, 228, 233, 232, 228, 234, 233, 231, 234, 233, 231, 234, 233, 229, 234, 233, 229, 235, 234, 230, 235, 234, 230, 235, 234, 230, 236, 235, 231, 236, 235, 231, 236, 235, 231, 235, 234, 230, 235, 234, 230, 235, 234, 230, 236, 235, 231, 236, 235, 231, 237, 236, 232, 237, 236, 232, 237, 236, 232, 235, 236, 231, 235, 236, 231, 235, 236, 231, 235, 236, 231, 235, 236, 231, 235, 236, 231, 235, 235, 233, 235, 235, 233, 235, 235, 233, 235, 235, 233, 235, 235, 233, 234, 234, 232, 234, 234, 234, 234, 234, 234, 233, 233, 233, 233, 233, 233, 232, 234, 233, 231, 233, 232, 231, 233, 232, 230, 232, 231, 229, 231, 230, 228, 230, 229, 228, 230, 229, 227, 229, 228, 226, 228, 227, 226, 228, 227, 224, 226, 225, 223, 225, 224, 221, 223, 222, 220, 222, 221, 219, 221, 220, 218, 220, 219, 214, 218, 219, 213, 217, 218, 214, 215, 217, 211, 212, 214, 209, 210, 212, 207, 208, 210, 205, 206, 208, 204, 205, 207, 202, 202, 204, 201, 201, 203, 199, 199, 201, 197, 197, 199, 194, 194, 196, 192, 192, 194, 190, 190, 192, 189, 189, 191, 185, 183, 184, 185, 183, 184, 184, 182, 183, 182, 180, 181, 180, 178, 179, 178, 176, 177, 178, 174, 175, 177, 173, 174, 169, 165, 164, 168, 164, 163, 167, 163, 162, 165, 161, 160, 164, 159, 156, 162, 157, 154, 160, 155, 152, 159, 154, 151, 163, 155, 153, 162, 154, 152, 160, 152, 150, 159, 151, 149, 157, 149, 147, 157, 149, 147, 157, 149, 147, 157, 149, 147, 157, 149, 147, 158, 150, 148, 159, 151, 149, 161, 153, 151, 162, 154, 152, 164, 156, 154, 165, 157, 155, 166, 158, 156, 167, 159, 156, 168, 160, 157, 169, 161, 159, 172, 164, 162, 175, 167, 165, 177, 172, 169, 180, 174, 174, 181, 177, 176, 183, 179, 180, 185, 183, 184, 191, 189, 192, 195, 193, 196, 199, 197, 200, 203, 203, 205, 208, 207, 212, 211, 212, 216, 214, 217, 222, 216, 219, 224, 219, 222, 227, 223, 226, 231, 226, 229, 234, 228, 231, 236, 230, 233, 238, 230, 233, 238, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 238, 241, 246, 238, 241, 246, 240, 244, 247, 240, 244, 247, 240, 244, 247, 240, 244, 247, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 247, 251, 252, 247, 251, 252, 247, 251, 252, 247, 251, 252, 247, 251, 252, 247, 251, 252, 247, 251, 252, 247, 251, 252, 246, 250, 251, 246, 250, 251, 246, 250, 251, 246, 250, 251, 246, 250, 251, 246, 250, 251, 246, 250, 251, 246, 250, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 241, 244, 249, 240, 243, 248, 239, 242, 247, 239, 242, 247, 235, 238, 243, 234, 237, 242, 231, 234, 239, 227, 230, 235, 224, 225, 229, 219, 220, 224, 215, 214, 219, 212, 211, 216, 209, 209, 211, 205, 205, 207, 201, 199, 200, 198, 196, 197, 198, 194, 193, 196, 192, 191, 193, 189, 188, 190, 186, 185, 195, 189, 189, 195, 189, 189, 193, 188, 185, 191, 186, 183, 188, 183, 180, 184, 179, 176, 183, 175, 173, 181, 173, 171, 181, 173, 170, 181, 173, 170, 180, 172, 169, 178, 170, 167, 177, 167, 165, 174, 164, 162, 172, 163, 158, 171, 162, 157, 176, 165, 161, 169, 158, 154, 168, 157, 153, 172, 161, 157, 168, 157, 153, 156, 145, 141, 153, 142, 138, 158, 147, 143, 153, 142, 138, 155, 144, 140, 152, 141, 137, 147, 136, 132, 147, 136, 132, 146, 135, 131, 134, 123, 119, 118, 107, 103, 129, 120, 115, 138, 129, 124, 145, 136, 131, 135, 126, 121, 106, 99, 93, 82, 75, 69, 88, 81, 75, 112, 105, 99, 154, 147, 141, 161, 154, 148, 154, 149, 143, 141, 136, 130, 143, 138, 132, 163, 158, 152, 176, 171, 165, 174, 169, 163, 187, 182, 176, 167, 162, 156, 142, 137, 133, 126, 121, 117, 126, 121, 117, 137, 132, 128, 149, 146, 141, 157, 154, 149, 153, 149, 146, 155, 151, 148, 155, 154, 150, 156, 155, 151, 157, 156, 152, 161, 160, 156, 167, 166, 164, 171, 170, 168, 169, 169, 167, 181, 181, 179, 198, 198, 196, 214, 214, 212, 225, 225, 223, 230, 230, 228, 233, 233, 231, 235, 235, 233, 239, 241, 238, 236, 238, 235, 233, 235, 232, 229, 231, 228, 226, 228, 225, 224, 226, 223, 221, 226, 222, 221, 226, 222, 233, 235, 234, 234, 236, 235, 235, 237, 236, 234, 236, 235, 233, 235, 234, 235, 237, 236, 238, 240, 239, 242, 244, 243, 240, 242, 241, 242, 244, 243, 245, 247, 246, 248, 250, 249, 250, 252, 251, 252, 254, 253, 253, 255, 254, 253, 255, 254, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 248, 248, 248, 248, 248, 248, 248, 248, 248, 247, 247, 247, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 244, 246, 243, 244, 246, 243, 244, 246, 243, 244, 246, 243, 244, 246, 243, 244, 246, 243, 245, 245, 243, 245, 245, 243, 242, 242, 240, 243, 243, 241, 246, 245, 243, 247, 246, 244, 247, 246, 244, 246, 245, 243, 244, 243, 241, 243, 242, 240, 245, 244, 240, 247, 244, 239, 248, 244, 241, 248, 244, 241, 248, 244, 241, 246, 242, 239, 242, 241, 239, 241, 240, 238, 243, 244, 239, 243, 242, 238, 243, 238, 234, 241, 231, 229, 239, 224, 221, 237, 216, 215, 237, 208, 210, 238, 204, 205, 234, 195, 196, 236, 192, 193, 235, 186, 190, 235, 180, 186, 235, 175, 185, 234, 172, 183, 234, 172, 183, 235, 172, 183, 236, 170, 182, 238, 167, 181, 238, 164, 177, 238, 162, 174, 238, 162, 174, 238, 165, 174, 240, 171, 176, 240, 175, 181, 242, 182, 190, 237, 181, 190, 234, 178, 187, 230, 177, 185, 230, 179, 186, 230, 185, 190, 231, 192, 195, 228, 198, 198, 227, 206, 203, 233, 218, 215, 237, 227, 225, 237, 232, 228, 237, 233, 230, 240, 236, 233, 239, 235, 234, 236, 232, 231, 236, 235, 233, 236, 235, 233, 238, 237, 235, 239, 238, 236, 239, 238, 236, 239, 238, 236, 238, 237, 235, 238, 237, 235, 242, 241, 239, 241, 240, 238, 240, 239, 237, 239, 238, 236, 238, 237, 235, 237, 236, 234, 236, 235, 233, 235, 234, 232, 239, 238, 236, 239, 238, 236, 239, 238, 236, 239, 238, 236, 239, 238, 236, 239, 238, 236, 239, 238, 236, 239, 238, 236, 240, 239, 237, 240, 239, 237, 240, 239, 237, 240, 239, 237, 240, 239, 237, 240, 239, 237, 240, 239, 237, 240, 239, 237, 241, 240, 238, 240, 239, 237, 240, 239, 237, 239, 238, 236, 238, 237, 235, 237, 236, 234, 236, 235, 233, 236, 235, 233, 235, 234, 232, 235, 234, 232, 235, 234, 232, 235, 234, 232, 235, 234, 232, 234, 233, 231, 234, 233, 231, 234, 233, 231, 233, 232, 230, 234, 233, 231, 235, 234, 232, 236, 235, 233, 237, 236, 234, 238, 237, 235, 239, 238, 236, 239, 238, 236, 236, 235, 233, 237, 236, 234, 237, 236, 234, 238, 237, 235, 239, 238, 236, 240, 239, 237, 241, 240, 238, 241, 240, 238, 238, 238, 236, 238, 238, 236, 237, 237, 235, 235, 235, 233, 234, 234, 232, 233, 233, 231, 232, 232, 230, 231, 231, 229, 225, 225, 223, 231, 231, 229, 238, 238, 236, 243, 243, 241, 243, 243, 241, 237, 237, 235, 229, 229, 227, 224, 223, 221, 215, 211, 210, 220, 214, 214, 223, 217, 217, 220, 216, 215, 216, 212, 211, 218, 214, 213, 227, 223, 222, 236, 232, 231, 239, 235, 234, 235, 234, 232, 230, 229, 227, 226, 225, 223, 223, 222, 220, 222, 221, 219, 223, 222, 220, 223, 222, 218, 235, 231, 228, 234, 229, 225, 230, 225, 221, 227, 222, 218, 226, 221, 217, 228, 223, 219, 232, 227, 223, 234, 229, 225, 243, 238, 234, 244, 239, 235, 244, 239, 235, 243, 238, 234, 239, 234, 230, 233, 228, 224, 228, 223, 219, 224, 219, 215, 226, 221, 215, 228, 223, 217, 230, 225, 219, 231, 226, 220, 230, 225, 219, 227, 222, 216, 223, 218, 212, 221, 216, 210, 226, 221, 215, 226, 221, 215, 226, 221, 215, 225, 220, 214, 225, 220, 214, 225, 220, 214, 224, 219, 213, 224, 219, 213, 226, 219, 211, 226, 219, 211, 226, 219, 211, 225, 218, 210, 225, 218, 210, 224, 217, 209, 224, 217, 209, 224, 217, 209, 223, 216, 208, 223, 216, 208, 223, 216, 208, 223, 216, 208, 223, 216, 208, 223, 216, 208, 223, 216, 208, 223, 216, 208, 222, 217, 211, 222, 217, 211, 222, 217, 211, 222, 217, 211, 223, 218, 212, 223, 218, 212, 224, 219, 213, 224, 219, 213, 225, 220, 214, 225, 220, 214, 225, 220, 214, 226, 221, 215, 226, 221, 215, 227, 222, 216, 227, 222, 216, 226, 223, 216, 227, 224, 217, 226, 226, 218, 226, 225, 220, 227, 226, 221, 228, 227, 222, 229, 228, 223, 229, 228, 223, 229, 228, 223, 231, 230, 226, 231, 230, 226, 231, 230, 226, 232, 231, 227, 232, 231, 227, 232, 231, 227, 233, 232, 230, 233, 232, 230, 235, 234, 230, 235, 234, 230, 235, 234, 230, 236, 235, 231, 236, 235, 231, 236, 235, 231, 237, 236, 232, 237, 236, 232, 234, 233, 229, 234, 233, 229, 235, 234, 230, 235, 234, 230, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 235, 236, 231, 235, 236, 231, 235, 236, 231, 235, 236, 231, 235, 236, 231, 235, 236, 231, 235, 235, 233, 235, 235, 233, 236, 236, 234, 236, 236, 234, 235, 235, 233, 235, 235, 233, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 232, 234, 233, 232, 234, 233, 231, 233, 232, 230, 232, 231, 229, 231, 230, 229, 231, 230, 228, 230, 229, 228, 230, 229, 227, 229, 228, 226, 228, 227, 225, 227, 226, 224, 226, 225, 222, 224, 223, 220, 222, 221, 219, 221, 220, 219, 221, 220, 215, 219, 220, 214, 218, 219, 215, 216, 218, 212, 213, 215, 210, 211, 213, 207, 208, 210, 206, 207, 209, 205, 206, 208, 203, 203, 205, 202, 202, 204, 200, 200, 202, 198, 198, 200, 195, 195, 197, 193, 193, 195, 191, 191, 193, 190, 190, 192, 190, 188, 189, 188, 186, 187, 184, 182, 183, 180, 178, 179, 178, 176, 177, 177, 175, 176, 179, 175, 176, 179, 175, 176, 172, 168, 167, 171, 167, 166, 169, 165, 164, 168, 164, 163, 166, 161, 158, 165, 160, 157, 163, 158, 155, 162, 157, 154, 164, 156, 154, 163, 155, 153, 161, 153, 151, 159, 151, 149, 158, 150, 148, 157, 149, 147, 157, 149, 147, 157, 149, 147, 158, 150, 148, 158, 150, 148, 159, 151, 149, 160, 152, 150, 161, 153, 151, 162, 154, 152, 163, 155, 153, 164, 156, 154, 164, 156, 153, 165, 157, 154, 166, 158, 156, 168, 160, 158, 171, 163, 161, 175, 167, 165, 176, 170, 170, 178, 172, 172, 180, 174, 176, 182, 178, 179, 188, 183, 187, 190, 188, 191, 194, 192, 195, 198, 196, 199, 203, 201, 206, 206, 205, 210, 213, 214, 219, 213, 216, 221, 217, 220, 225, 221, 224, 229, 224, 227, 232, 227, 230, 235, 229, 232, 237, 229, 232, 237, 234, 237, 242, 234, 237, 242, 234, 237, 242, 235, 238, 243, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 238, 242, 245, 238, 242, 245, 239, 243, 246, 239, 243, 246, 240, 244, 247, 241, 245, 248, 241, 245, 248, 241, 245, 248, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 247, 251, 252, 247, 251, 252, 247, 251, 252, 247, 251, 252, 247, 251, 252, 247, 251, 252, 247, 251, 252, 247, 251, 252, 246, 250, 251, 246, 250, 251, 246, 250, 251, 246, 250, 251, 246, 250, 251, 246, 250, 251, 246, 250, 251, 246, 250, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 241, 244, 249, 240, 243, 248, 239, 242, 247, 239, 242, 247, 231, 234, 241, 230, 233, 240, 228, 231, 236, 225, 228, 233, 222, 223, 228, 218, 219, 224, 214, 215, 219, 211, 212, 216, 208, 208, 210, 205, 205, 207, 201, 199, 200, 199, 197, 198, 200, 196, 197, 199, 195, 196, 196, 192, 191, 194, 190, 189, 196, 190, 190, 196, 190, 190, 194, 189, 186, 192, 187, 184, 190, 185, 182, 186, 181, 178, 185, 177, 175, 183, 175, 173, 186, 178, 175, 184, 176, 173, 179, 171, 168, 175, 167, 164, 174, 164, 162, 174, 164, 162, 175, 166, 161, 176, 167, 162, 176, 165, 161, 172, 161, 157, 173, 162, 158, 173, 162, 158, 163, 152, 148, 153, 142, 138, 159, 148, 144, 175, 164, 160, 170, 159, 155, 157, 146, 142, 150, 139, 135, 152, 141, 137, 150, 139, 135, 140, 129, 125, 130, 119, 115, 127, 116, 112, 141, 132, 127, 120, 111, 106, 100, 93, 87, 91, 84, 78, 87, 80, 74, 95, 88, 82, 120, 113, 107, 144, 137, 131, 149, 144, 138, 153, 148, 142, 148, 143, 137, 145, 140, 134, 158, 153, 147, 179, 174, 168, 179, 176, 169, 165, 162, 155, 149, 146, 139, 141, 138, 131, 133, 130, 125, 136, 133, 128, 146, 143, 138, 157, 154, 149, 162, 159, 154, 163, 160, 155, 160, 159, 155, 160, 159, 155, 159, 158, 154, 159, 158, 154, 162, 163, 158, 171, 172, 167, 182, 182, 180, 190, 190, 188, 212, 212, 210, 220, 220, 218, 230, 230, 228, 237, 237, 235, 237, 237, 235, 234, 234, 232, 229, 231, 228, 226, 228, 225, 216, 218, 215, 217, 219, 216, 220, 222, 219, 225, 227, 224, 229, 234, 230, 236, 241, 237, 241, 246, 242, 245, 250, 246, 237, 239, 238, 236, 238, 237, 234, 236, 235, 230, 232, 231, 226, 228, 227, 225, 227, 226, 227, 229, 228, 230, 232, 231, 245, 247, 246, 246, 248, 247, 248, 250, 249, 249, 251, 250, 250, 252, 251, 251, 253, 252, 250, 252, 251, 250, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 248, 248, 248, 248, 248, 248, 248, 248, 248, 247, 247, 247, 247, 247, 247, 246, 246, 246, 246, 246, 246, 246, 246, 246, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 243, 245, 242, 243, 245, 242, 243, 245, 242, 243, 245, 242, 243, 245, 242, 243, 245, 242, 244, 244, 242, 244, 244, 242, 246, 246, 244, 245, 245, 243, 243, 243, 241, 242, 242, 240, 243, 242, 240, 244, 243, 241, 246, 245, 243, 247, 246, 244, 246, 245, 243, 246, 245, 241, 248, 244, 243, 248, 244, 241, 247, 243, 240, 246, 242, 239, 243, 242, 238, 241, 242, 237, 244, 246, 241, 243, 245, 240, 242, 241, 236, 241, 236, 232, 239, 229, 227, 237, 221, 221, 236, 216, 217, 237, 211, 212, 234, 203, 201, 236, 198, 197, 236, 191, 194, 234, 185, 189, 234, 178, 187, 233, 176, 185, 235, 175, 187, 236, 174, 187, 236, 172, 186, 240, 172, 185, 243, 169, 182, 241, 165, 177, 239, 163, 175, 237, 164, 173, 241, 170, 176, 241, 176, 182, 238, 181, 190, 233, 180, 190, 231, 178, 186, 229, 178, 185, 229, 180, 186, 229, 187, 191, 230, 194, 196, 228, 200, 199, 230, 210, 209, 233, 222, 218, 238, 230, 227, 236, 233, 228, 237, 233, 230, 240, 236, 235, 241, 235, 237, 238, 232, 234, 237, 233, 232, 236, 235, 233, 237, 236, 234, 238, 237, 235, 238, 237, 235, 238, 237, 235, 237, 236, 234, 237, 236, 234, 234, 233, 231, 235, 234, 232, 237, 236, 234, 239, 238, 236, 241, 240, 238, 243, 242, 240, 244, 243, 241, 245, 244, 242, 240, 239, 237, 240, 239, 237, 240, 239, 237, 240, 239, 237, 240, 239, 237, 240, 239, 237, 240, 239, 237, 240, 239, 237, 239, 238, 236, 239, 238, 236, 239, 238, 236, 239, 238, 236, 239, 238, 236, 239, 238, 236, 239, 238, 236, 239, 238, 236, 240, 236, 235, 240, 236, 235, 240, 236, 235, 240, 236, 235, 241, 237, 236, 241, 237, 236, 241, 237, 236, 241, 237, 236, 237, 233, 232, 237, 233, 232, 237, 233, 232, 237, 233, 232, 237, 233, 232, 237, 233, 232, 237, 233, 232, 235, 234, 232, 238, 237, 235, 237, 237, 235, 236, 236, 234, 236, 236, 234, 236, 236, 234, 235, 235, 233, 235, 235, 233, 235, 235, 233, 236, 236, 234, 236, 236, 234, 237, 237, 235, 238, 238, 236, 239, 239, 237, 240, 240, 238, 240, 240, 238, 241, 241, 239, 241, 241, 241, 241, 241, 241, 240, 240, 240, 239, 239, 239, 237, 237, 237, 236, 236, 236, 235, 235, 235, 234, 234, 234, 233, 233, 233, 232, 232, 232, 230, 230, 230, 230, 230, 230, 232, 232, 232, 236, 236, 236, 241, 241, 241, 245, 243, 244, 236, 232, 231, 228, 224, 223, 220, 216, 215, 217, 216, 214, 223, 222, 220, 227, 226, 224, 225, 224, 222, 221, 220, 218, 237, 236, 234, 236, 236, 234, 235, 235, 233, 233, 233, 231, 230, 230, 228, 227, 227, 225, 224, 224, 222, 222, 223, 218, 233, 229, 226, 233, 228, 224, 231, 226, 222, 229, 224, 220, 228, 223, 219, 228, 223, 219, 228, 223, 219, 228, 223, 219, 226, 221, 217, 229, 224, 220, 234, 229, 225, 239, 234, 230, 242, 237, 233, 243, 238, 234, 242, 237, 233, 241, 236, 232, 223, 218, 212, 224, 219, 213, 226, 221, 215, 228, 223, 217, 230, 225, 219, 232, 227, 221, 233, 228, 222, 233, 228, 222, 226, 221, 215, 226, 221, 215, 226, 221, 215, 225, 220, 214, 225, 220, 214, 225, 220, 214, 224, 219, 213, 224, 219, 213, 227, 220, 212, 226, 219, 211, 226, 219, 211, 226, 219, 211, 225, 218, 210, 225, 218, 210, 225, 218, 210, 224, 217, 209, 225, 218, 210, 225, 218, 210, 225, 218, 210, 225, 218, 210, 225, 218, 210, 225, 218, 210, 225, 218, 210, 225, 218, 210, 223, 218, 212, 223, 218, 212, 223, 218, 212, 224, 219, 213, 224, 219, 213, 224, 219, 213, 225, 220, 214, 225, 220, 214, 226, 221, 215, 226, 221, 215, 226, 221, 215, 227, 222, 216, 227, 222, 216, 227, 222, 216, 228, 223, 217, 227, 224, 217, 228, 225, 218, 226, 226, 218, 227, 226, 221, 228, 227, 222, 229, 228, 223, 229, 228, 223, 230, 229, 224, 230, 229, 224, 230, 229, 225, 231, 230, 226, 231, 230, 226, 231, 230, 226, 232, 231, 227, 232, 231, 227, 232, 231, 229, 232, 231, 229, 235, 234, 230, 235, 234, 230, 235, 234, 230, 236, 235, 231, 236, 235, 231, 236, 235, 231, 237, 236, 232, 237, 236, 232, 234, 233, 229, 234, 233, 229, 235, 234, 230, 235, 234, 230, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 237, 232, 236, 237, 232, 236, 237, 232, 236, 237, 232, 236, 237, 232, 236, 237, 232, 236, 236, 234, 236, 236, 234, 236, 236, 234, 236, 236, 234, 236, 236, 234, 235, 235, 233, 235, 235, 235, 235, 235, 235, 234, 234, 234, 234, 234, 234, 232, 234, 233, 232, 234, 233, 232, 234, 233, 231, 233, 232, 230, 232, 231, 229, 231, 230, 229, 231, 230, 228, 230, 229, 228, 230, 229, 227, 229, 228, 226, 228, 227, 224, 226, 225, 223, 225, 224, 221, 223, 222, 220, 222, 221, 219, 221, 220, 216, 220, 221, 215, 219, 220, 213, 217, 218, 211, 215, 216, 211, 212, 214, 208, 209, 211, 206, 207, 209, 206, 207, 209, 202, 203, 205, 201, 202, 204, 201, 201, 203, 198, 198, 200, 196, 196, 198, 194, 194, 196, 192, 192, 194, 191, 191, 193, 194, 192, 195, 190, 188, 191, 185, 183, 186, 179, 177, 180, 175, 173, 174, 173, 171, 172, 173, 171, 172, 173, 171, 172, 174, 170, 169, 173, 169, 168, 172, 168, 167, 170, 166, 165, 169, 163, 163, 167, 161, 161, 166, 160, 160, 165, 159, 159, 164, 156, 154, 163, 155, 153, 161, 153, 151, 159, 151, 149, 158, 150, 148, 158, 150, 148, 158, 150, 148, 158, 150, 148, 159, 151, 149, 159, 151, 149, 159, 151, 149, 160, 152, 150, 160, 152, 150, 161, 153, 151, 161, 153, 151, 161, 153, 151, 163, 153, 151, 163, 153, 151, 164, 154, 152, 166, 156, 154, 168, 160, 158, 171, 163, 161, 174, 166, 164, 173, 168, 165, 177, 171, 171, 180, 176, 175, 185, 181, 182, 189, 185, 186, 193, 188, 192, 195, 193, 196, 200, 198, 201, 203, 202, 207, 211, 212, 217, 211, 214, 219, 215, 218, 223, 219, 222, 227, 223, 226, 231, 226, 229, 234, 227, 230, 235, 228, 231, 236, 231, 234, 239, 231, 234, 239, 232, 235, 240, 233, 236, 241, 234, 237, 242, 235, 238, 243, 235, 238, 243, 236, 239, 244, 236, 240, 243, 237, 241, 244, 238, 242, 245, 238, 242, 245, 239, 243, 246, 240, 244, 247, 241, 245, 248, 241, 245, 248, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 247, 251, 252, 247, 251, 252, 247, 251, 252, 247, 251, 252, 247, 251, 252, 247, 251, 252, 247, 251, 252, 247, 251, 252, 246, 250, 251, 246, 250, 251, 246, 250, 251, 246, 250, 251, 246, 250, 251, 246, 250, 251, 246, 250, 251, 246, 250, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 243, 246, 251, 242, 245, 250, 242, 245, 250, 241, 244, 249, 240, 243, 248, 239, 242, 247, 239, 242, 247, 238, 241, 246, 233, 236, 243, 233, 236, 243, 231, 234, 239, 229, 232, 237, 228, 229, 234, 224, 225, 230, 221, 222, 226, 219, 220, 224, 212, 212, 214, 208, 208, 210, 205, 203, 204, 202, 200, 201, 203, 199, 200, 202, 198, 199, 200, 196, 195, 197, 193, 192, 196, 190, 190, 196, 190, 190, 195, 190, 187, 194, 189, 186, 192, 187, 184, 190, 185, 182, 189, 181, 179, 188, 180, 178, 191, 183, 180, 188, 180, 177, 183, 175, 172, 179, 171, 168, 178, 168, 166, 179, 169, 167, 182, 173, 168, 184, 175, 170, 181, 170, 166, 180, 169, 165, 177, 166, 162, 170, 159, 155, 158, 147, 143, 152, 141, 137, 160, 149, 145, 171, 160, 156, 162, 151, 147, 156, 145, 141, 157, 146, 142, 161, 150, 146, 151, 140, 136, 137, 126, 122, 138, 127, 123, 151, 140, 136, 133, 124, 119, 113, 104, 99, 100, 93, 87, 100, 93, 87, 105, 98, 92, 122, 115, 109, 143, 136, 130, 152, 145, 139, 140, 135, 129, 151, 146, 140, 160, 155, 149, 164, 159, 153, 171, 166, 160, 177, 172, 166, 170, 167, 160, 157, 154, 147, 159, 156, 149, 161, 158, 151, 162, 159, 154, 159, 156, 151, 156, 153, 148, 156, 153, 148, 159, 156, 151, 163, 160, 155, 140, 139, 135, 152, 151, 147, 171, 170, 166, 189, 188, 184, 203, 204, 199, 213, 214, 209, 220, 220, 218, 224, 224, 222, 217, 217, 215, 219, 219, 217, 220, 220, 218, 219, 219, 217, 216, 216, 214, 215, 215, 213, 216, 218, 215, 217, 219, 216, 246, 248, 245, 244, 246, 243, 241, 243, 240, 237, 239, 236, 230, 235, 231, 226, 231, 227, 223, 228, 224, 221, 226, 222, 223, 225, 224, 223, 225, 224, 222, 224, 223, 220, 222, 221, 219, 221, 220, 221, 223, 222, 226, 228, 227, 230, 232, 231, 249, 251, 250, 249, 251, 250, 250, 252, 251, 251, 253, 252, 251, 253, 252, 250, 252, 251, 249, 251, 250, 248, 250, 249, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 249, 249, 249, 248, 248, 248, 248, 248, 248, 247, 247, 247, 247, 247, 247, 247, 247, 247, 246, 246, 246, 246, 246, 246, 246, 246, 246, 245, 245, 245, 245, 245, 245, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 243, 245, 242, 243, 245, 242, 243, 245, 242, 243, 245, 242, 243, 245, 242, 243, 245, 242, 244, 244, 242, 244, 244, 242, 248, 248, 246, 246, 246, 244, 243, 243, 241, 241, 241, 239, 242, 241, 239, 244, 243, 241, 247, 246, 244, 249, 248, 246, 247, 247, 245, 247, 246, 244, 248, 244, 243, 248, 242, 242, 248, 242, 242, 246, 242, 239, 244, 243, 239, 242, 243, 238, 243, 245, 240, 241, 246, 240, 241, 244, 237, 240, 239, 234, 239, 234, 230, 238, 227, 225, 238, 222, 223, 239, 218, 217, 236, 211, 207, 237, 206, 203, 237, 198, 199, 236, 191, 194, 235, 186, 192, 234, 181, 189, 233, 180, 190, 236, 178, 190, 238, 176, 189, 242, 176, 190, 245, 173, 187, 242, 168, 181, 236, 163, 174, 234, 163, 171, 238, 169, 174, 238, 176, 181, 235, 179, 188, 230, 179, 188, 229, 178, 185, 228, 179, 185, 229, 182, 188, 230, 189, 193, 232, 198, 199, 230, 204, 203, 233, 215, 213, 234, 225, 220, 236, 231, 227, 234, 230, 227, 234, 230, 229, 239, 233, 233, 242, 233, 236, 238, 232, 234, 239, 235, 234, 238, 237, 235, 239, 238, 236, 240, 239, 237, 241, 240, 238, 241, 240, 238, 240, 239, 237, 239, 238, 236, 238, 237, 235, 239, 238, 236, 239, 238, 236, 240, 239, 237, 241, 240, 238, 241, 240, 238, 242, 241, 239, 242, 241, 239, 240, 239, 237, 240, 239, 237, 240, 239, 237, 240, 239, 237, 240, 239, 237, 240, 239, 237, 240, 239, 237, 240, 239, 237, 238, 237, 235, 238, 237, 235, 238, 237, 235, 238, 237, 235, 238, 237, 235, 238, 237, 235, 238, 237, 235, 238, 237, 235, 239, 235, 234, 239, 235, 234, 239, 235, 234, 240, 236, 235, 240, 236, 235, 240, 236, 235, 241, 237, 236, 241, 237, 236, 236, 232, 231, 237, 233, 232, 237, 233, 232, 237, 233, 232, 238, 234, 233, 238, 234, 233, 239, 235, 234, 237, 236, 234, 240, 239, 237, 239, 239, 237, 238, 238, 236, 237, 237, 235, 236, 236, 234, 236, 236, 234, 235, 235, 233, 235, 235, 233, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 239, 239, 237, 239, 239, 237, 239, 239, 237, 240, 240, 238, 242, 242, 242, 242, 242, 242, 242, 242, 242, 241, 241, 241, 240, 240, 240, 239, 239, 239, 239, 239, 239, 238, 238, 238, 236, 236, 236, 234, 234, 234, 233, 233, 233, 231, 231, 231, 231, 231, 231, 231, 231, 231, 232, 232, 232, 233, 233, 233, 249, 248, 246, 246, 242, 241, 236, 235, 233, 227, 226, 224, 220, 219, 217, 220, 219, 217, 224, 223, 221, 227, 227, 225, 222, 222, 220, 227, 227, 225, 235, 235, 233, 240, 240, 238, 241, 241, 239, 237, 237, 235, 230, 232, 229, 226, 227, 222, 227, 223, 220, 229, 224, 220, 230, 225, 221, 231, 226, 222, 232, 227, 223, 232, 227, 223, 231, 226, 222, 231, 226, 222, 230, 225, 221, 229, 224, 220, 229, 224, 220, 229, 224, 220, 233, 228, 224, 238, 233, 229, 243, 238, 234, 246, 241, 237, 243, 238, 232, 239, 234, 228, 232, 227, 221, 227, 222, 216, 225, 220, 214, 226, 221, 215, 229, 224, 218, 232, 227, 221, 226, 221, 215, 226, 221, 215, 226, 221, 215, 225, 220, 214, 225, 220, 214, 225, 220, 214, 224, 219, 213, 224, 219, 213, 227, 220, 212, 227, 220, 212, 226, 219, 211, 226, 219, 211, 226, 219, 211, 225, 218, 210, 225, 218, 210, 225, 218, 210, 226, 219, 211, 226, 219, 211, 226, 219, 211, 226, 219, 211, 226, 219, 211, 226, 219, 211, 226, 219, 211, 226, 219, 211, 224, 219, 213, 224, 219, 213, 224, 219, 213, 225, 220, 214, 225, 220, 214, 226, 221, 215, 226, 221, 215, 226, 221, 215, 227, 222, 216, 227, 222, 216, 227, 222, 216, 227, 222, 216, 228, 223, 217, 228, 223, 217, 228, 223, 217, 228, 225, 218, 229, 226, 219, 227, 227, 219, 228, 227, 222, 229, 228, 223, 229, 228, 223, 230, 229, 224, 231, 230, 225, 231, 230, 225, 231, 230, 226, 231, 230, 226, 231, 230, 226, 231, 230, 226, 232, 231, 227, 232, 231, 227, 233, 232, 230, 233, 232, 230, 234, 233, 229, 234, 233, 229, 235, 234, 230, 235, 234, 230, 235, 234, 230, 236, 235, 231, 236, 235, 231, 236, 235, 231, 235, 234, 230, 235, 234, 230, 235, 234, 230, 236, 235, 231, 236, 235, 231, 237, 236, 232, 237, 236, 232, 237, 236, 232, 236, 237, 232, 236, 237, 232, 236, 237, 232, 236, 237, 232, 236, 237, 232, 236, 237, 232, 236, 236, 234, 236, 236, 234, 237, 237, 235, 236, 236, 234, 236, 236, 234, 236, 236, 234, 235, 235, 235, 235, 235, 235, 235, 235, 235, 234, 234, 234, 233, 235, 234, 232, 234, 233, 232, 234, 233, 231, 233, 232, 230, 232, 231, 230, 232, 231, 229, 231, 230, 229, 231, 230, 229, 231, 230, 228, 230, 229, 227, 229, 228, 225, 227, 226, 224, 226, 225, 222, 224, 223, 221, 223, 222, 220, 222, 221, 217, 221, 222, 216, 220, 221, 214, 218, 219, 212, 216, 217, 211, 212, 214, 209, 210, 212, 207, 208, 210, 206, 207, 209, 203, 204, 206, 202, 203, 205, 201, 201, 203, 199, 199, 201, 197, 197, 199, 194, 194, 196, 193, 193, 195, 192, 192, 194, 194, 192, 195, 191, 189, 192, 185, 183, 186, 179, 177, 180, 175, 173, 174, 172, 170, 171, 171, 169, 170, 170, 168, 169, 176, 172, 171, 175, 171, 170, 174, 170, 169, 172, 168, 167, 171, 165, 165, 169, 163, 163, 167, 161, 161, 166, 160, 160, 164, 156, 154, 163, 155, 153, 162, 154, 152, 160, 152, 150, 158, 150, 148, 158, 150, 148, 158, 150, 148, 158, 150, 148, 159, 151, 149, 159, 151, 149, 159, 151, 149, 159, 151, 149, 159, 151, 149, 159, 151, 149, 159, 151, 149, 159, 151, 149, 161, 151, 149, 161, 151, 149, 162, 152, 150, 164, 154, 152, 166, 156, 155, 168, 160, 158, 171, 163, 161, 172, 164, 162, 176, 170, 170, 179, 173, 173, 183, 179, 180, 187, 183, 184, 190, 185, 189, 194, 189, 193, 197, 195, 198, 199, 199, 201, 207, 208, 213, 207, 210, 215, 211, 214, 219, 215, 218, 223, 220, 223, 228, 223, 226, 231, 225, 228, 233, 226, 229, 234, 228, 231, 236, 229, 232, 237, 230, 233, 238, 231, 234, 239, 232, 235, 240, 233, 236, 241, 234, 237, 242, 235, 238, 243, 235, 239, 242, 235, 239, 242, 236, 240, 243, 238, 242, 245, 239, 243, 246, 240, 244, 247, 241, 245, 248, 241, 245, 248, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 247, 251, 252, 247, 251, 252, 247, 251, 252, 247, 251, 252, 247, 251, 252, 247, 251, 252, 247, 251, 252, 247, 251, 252, 247, 251, 252, 247, 251, 252, 247, 251, 252, 247, 251, 252, 247, 251, 252, 247, 251, 252, 247, 251, 252, 247, 251, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 240, 243, 248, 239, 242, 247, 238, 241, 246, 238, 241, 246, 237, 240, 245, 236, 239, 246, 236, 239, 246, 236, 239, 244, 235, 238, 243, 233, 236, 241, 230, 233, 238, 230, 231, 235, 229, 230, 234, 220, 220, 222, 216, 216, 218, 211, 209, 210, 207, 205, 206, 205, 203, 204, 202, 200, 201, 200, 196, 197, 197, 193, 194, 195, 189, 189, 196, 190, 190, 196, 191, 188, 196, 191, 188, 195, 190, 187, 193, 188, 185, 194, 186, 184, 193, 185, 183, 188, 180, 177, 187, 179, 176, 185, 177, 174, 183, 175, 172, 183, 173, 171, 183, 173, 171, 184, 175, 170, 185, 176, 171, 181, 170, 166, 179, 168, 164, 172, 161, 157, 163, 152, 148, 159, 148, 144, 160, 149, 145, 160, 149, 145, 157, 146, 142, 154, 143, 139, 159, 148, 144, 164, 153, 149, 164, 153, 149, 158, 147, 143, 151, 140, 136, 152, 141, 137, 157, 146, 142, 133, 124, 119, 133, 126, 120, 143, 136, 130, 143, 136, 130, 133, 126, 120, 141, 134, 128, 153, 146, 140, 150, 143, 137, 158, 153, 147, 163, 158, 152, 170, 165, 159, 176, 171, 165, 176, 173, 166, 174, 171, 164, 169, 166, 159, 164, 161, 154, 172, 169, 162, 166, 163, 156, 157, 154, 149, 149, 146, 141, 147, 144, 139, 154, 151, 146, 164, 163, 158, 173, 172, 167, 205, 204, 200, 212, 211, 207, 219, 220, 215, 222, 223, 218, 219, 220, 215, 212, 213, 208, 205, 205, 203, 201, 201, 199, 205, 205, 203, 208, 208, 206, 211, 211, 209, 214, 214, 212, 218, 218, 216, 224, 224, 222, 231, 233, 230, 236, 238, 235, 215, 217, 214, 216, 218, 215, 217, 222, 218, 218, 223, 219, 218, 223, 219, 217, 222, 218, 215, 220, 216, 214, 219, 215, 226, 228, 227, 228, 230, 229, 229, 231, 230, 230, 232, 231, 234, 236, 235, 240, 242, 241, 249, 251, 250, 254, 255, 255, 248, 250, 249, 249, 251, 250, 250, 252, 251, 251, 253, 252, 251, 253, 252, 251, 253, 252, 250, 252, 251, 249, 251, 250, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 248, 248, 248, 248, 248, 248, 248, 248, 248, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 246, 246, 246, 246, 246, 246, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 246, 243, 244, 246, 243, 244, 246, 243, 244, 246, 243, 244, 246, 243, 244, 246, 243, 244, 246, 243, 244, 246, 243, 246, 246, 244, 246, 246, 244, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 247, 246, 244, 247, 246, 244, 249, 247, 248, 248, 246, 247, 249, 243, 245, 250, 241, 242, 249, 240, 241, 249, 240, 241, 246, 242, 239, 244, 243, 239, 241, 244, 237, 239, 244, 237, 238, 243, 237, 239, 240, 235, 239, 235, 232, 240, 230, 229, 240, 225, 228, 241, 223, 223, 239, 218, 213, 239, 214, 209, 238, 207, 205, 237, 198, 199, 234, 192, 196, 234, 187, 195, 235, 185, 196, 235, 183, 195, 235, 179, 190, 241, 179, 192, 244, 176, 189, 239, 169, 180, 232, 160, 171, 229, 159, 167, 232, 166, 170, 233, 172, 177, 232, 179, 187, 229, 179, 188, 228, 178, 187, 228, 181, 189, 231, 186, 191, 234, 195, 198, 236, 204, 207, 235, 211, 211, 234, 219, 216, 234, 227, 221, 233, 230, 225, 228, 227, 223, 230, 226, 225, 236, 230, 230, 241, 232, 235, 241, 232, 235, 239, 235, 234, 238, 237, 235, 239, 238, 236, 240, 239, 237, 240, 239, 237, 240, 239, 237, 239, 238, 236, 239, 238, 236, 243, 242, 240, 243, 242, 240, 242, 241, 239, 240, 239, 237, 239, 238, 236, 237, 236, 234, 236, 235, 233, 235, 234, 232, 238, 237, 235, 238, 237, 235, 238, 237, 235, 238, 237, 235, 238, 237, 235, 238, 237, 235, 238, 237, 235, 238, 237, 235, 238, 237, 235, 238, 237, 235, 238, 237, 235, 238, 237, 235, 238, 237, 235, 238, 237, 235, 238, 237, 235, 238, 237, 235, 239, 235, 232, 239, 235, 232, 238, 234, 231, 238, 234, 231, 237, 233, 230, 236, 232, 229, 235, 231, 228, 235, 231, 228, 235, 231, 228, 235, 231, 228, 236, 232, 229, 237, 233, 230, 237, 233, 230, 238, 234, 231, 238, 234, 231, 237, 236, 232, 239, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 240, 240, 238, 240, 240, 238, 239, 239, 237, 239, 239, 237, 239, 239, 237, 238, 238, 236, 238, 238, 236, 238, 238, 236, 240, 242, 241, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 234, 235, 237, 235, 236, 238, 236, 237, 239, 235, 236, 238, 232, 233, 235, 226, 227, 229, 221, 222, 224, 218, 218, 218, 218, 217, 215, 235, 234, 232, 252, 251, 249, 255, 255, 253, 244, 244, 242, 228, 228, 226, 218, 218, 216, 215, 215, 213, 222, 222, 220, 224, 226, 223, 228, 230, 227, 233, 235, 232, 235, 237, 234, 236, 238, 235, 235, 237, 234, 235, 236, 231, 231, 227, 224, 232, 227, 223, 231, 226, 222, 231, 226, 222, 232, 227, 223, 232, 227, 223, 232, 227, 223, 233, 228, 224, 237, 232, 228, 235, 230, 226, 231, 226, 222, 228, 223, 219, 227, 222, 218, 228, 223, 219, 230, 225, 221, 231, 226, 222, 247, 242, 236, 245, 240, 234, 241, 236, 230, 237, 232, 226, 232, 227, 221, 228, 223, 217, 224, 219, 213, 222, 217, 211, 226, 221, 215, 226, 221, 215, 226, 221, 215, 225, 220, 214, 225, 220, 214, 225, 220, 214, 224, 219, 213, 224, 219, 213, 227, 220, 212, 227, 220, 212, 227, 220, 212, 226, 219, 211, 226, 219, 211, 226, 219, 211, 225, 218, 210, 225, 218, 210, 227, 220, 212, 227, 220, 212, 227, 220, 212, 227, 220, 212, 227, 220, 212, 227, 220, 212, 227, 220, 212, 227, 220, 212, 225, 220, 214, 225, 220, 214, 225, 220, 214, 226, 221, 215, 226, 221, 215, 226, 221, 215, 227, 222, 216, 227, 222, 216, 227, 222, 216, 227, 222, 216, 228, 223, 217, 228, 223, 217, 228, 223, 217, 229, 224, 218, 229, 224, 218, 228, 225, 218, 229, 226, 219, 228, 228, 220, 228, 227, 222, 229, 228, 223, 230, 229, 224, 231, 230, 225, 231, 230, 225, 232, 231, 226, 231, 230, 226, 231, 230, 226, 232, 231, 227, 232, 231, 227, 233, 232, 228, 233, 232, 228, 233, 232, 230, 233, 232, 230, 233, 232, 228, 233, 232, 228, 234, 233, 229, 234, 233, 229, 234, 233, 229, 235, 234, 230, 235, 234, 230, 235, 234, 230, 236, 235, 231, 236, 235, 231, 236, 235, 231, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 238, 237, 233, 236, 237, 232, 236, 237, 232, 236, 237, 232, 236, 237, 232, 236, 237, 232, 236, 237, 232, 236, 236, 234, 236, 236, 234, 237, 237, 235, 237, 237, 235, 236, 236, 234, 236, 236, 234, 236, 236, 236, 235, 235, 235, 235, 235, 235, 235, 235, 235, 233, 235, 234, 233, 235, 234, 232, 234, 233, 231, 233, 232, 231, 233, 232, 230, 232, 231, 229, 231, 230, 229, 231, 230, 229, 231, 230, 229, 231, 230, 227, 229, 228, 226, 228, 227, 224, 226, 225, 223, 225, 224, 221, 223, 222, 221, 223, 222, 217, 221, 222, 216, 220, 221, 215, 219, 220, 212, 216, 217, 210, 214, 215, 208, 212, 213, 208, 209, 211, 207, 208, 210, 204, 205, 207, 203, 204, 206, 202, 202, 204, 200, 200, 202, 197, 197, 199, 195, 195, 197, 193, 193, 195, 192, 192, 194, 190, 190, 192, 188, 188, 190, 185, 183, 186, 181, 179, 182, 178, 176, 177, 175, 173, 174, 173, 171, 172, 173, 171, 172, 177, 173, 174, 176, 172, 173, 174, 170, 169, 172, 168, 167, 170, 166, 165, 168, 164, 163, 168, 162, 162, 167, 161, 161, 165, 157, 155, 164, 156, 154, 162, 154, 152, 160, 152, 150, 159, 151, 149, 158, 150, 148, 158, 150, 148, 159, 151, 149, 160, 152, 150, 160, 152, 150, 159, 151, 149, 159, 151, 149, 158, 150, 148, 158, 150, 148, 157, 149, 147, 157, 149, 147, 160, 150, 148, 161, 150, 146, 162, 151, 149, 162, 152, 150, 165, 155, 153, 167, 157, 155, 169, 161, 159, 170, 162, 160, 173, 167, 167, 177, 171, 171, 182, 176, 178, 185, 179, 181, 187, 183, 184, 190, 186, 187, 195, 190, 194, 197, 195, 198, 201, 202, 207, 201, 204, 209, 205, 208, 213, 210, 213, 218, 215, 218, 223, 218, 221, 226, 220, 223, 228, 221, 224, 229, 226, 229, 234, 227, 230, 235, 228, 231, 236, 229, 232, 237, 231, 234, 239, 232, 235, 240, 233, 236, 241, 234, 237, 242, 234, 238, 241, 234, 238, 241, 235, 239, 242, 237, 241, 244, 238, 242, 245, 240, 244, 247, 241, 245, 248, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 247, 251, 252, 247, 251, 252, 247, 251, 252, 247, 251, 252, 247, 251, 252, 247, 251, 252, 247, 251, 252, 247, 251, 252, 247, 251, 252, 247, 251, 252, 247, 251, 252, 247, 251, 252, 247, 251, 252, 247, 251, 252, 247, 251, 252, 247, 251, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 240, 243, 248, 239, 242, 247, 238, 241, 246, 238, 241, 246, 237, 240, 245, 237, 240, 245, 236, 239, 246, 237, 240, 247, 237, 240, 245, 237, 240, 245, 236, 239, 244, 234, 237, 242, 234, 235, 239, 233, 234, 238, 226, 227, 231, 222, 222, 224, 215, 215, 217, 210, 210, 212, 205, 205, 207, 201, 201, 203, 197, 195, 198, 194, 192, 193, 194, 190, 191, 194, 190, 189, 196, 190, 190, 197, 192, 189, 196, 191, 188, 196, 191, 188, 194, 189, 186, 196, 188, 186, 181, 173, 170, 182, 174, 171, 183, 175, 172, 184, 176, 173, 185, 175, 173, 184, 174, 172, 182, 173, 168, 181, 172, 167, 175, 164, 160, 172, 161, 157, 163, 152, 148, 156, 145, 141, 162, 151, 147, 170, 159, 155, 162, 151, 147, 146, 135, 131, 158, 147, 143, 164, 153, 149, 165, 154, 150, 162, 151, 147, 166, 155, 151, 172, 161, 157, 162, 151, 147, 144, 135, 130, 155, 146, 141, 149, 142, 136, 150, 142, 139, 147, 140, 134, 146, 138, 135, 167, 160, 154, 181, 173, 170, 168, 163, 157, 185, 180, 176, 172, 167, 161, 164, 159, 155, 166, 163, 156, 171, 168, 163, 170, 170, 162, 171, 168, 163, 169, 169, 161, 160, 159, 154, 150, 149, 144, 145, 144, 139, 156, 155, 150, 182, 181, 176, 209, 208, 203, 225, 224, 219, 231, 230, 225, 212, 211, 207, 204, 203, 199, 193, 192, 188, 182, 183, 178, 183, 182, 178, 195, 194, 190, 212, 211, 209, 225, 224, 222, 233, 233, 231, 233, 233, 231, 232, 232, 230, 225, 225, 223, 215, 215, 213, 206, 206, 204, 198, 200, 197, 195, 197, 194, 200, 202, 199, 204, 206, 203, 209, 213, 212, 216, 221, 217, 221, 225, 224, 223, 228, 224, 223, 227, 226, 223, 227, 226, 229, 231, 230, 230, 232, 231, 229, 231, 230, 229, 231, 230, 230, 232, 231, 236, 238, 237, 243, 245, 244, 249, 251, 250, 247, 249, 248, 248, 250, 249, 249, 251, 250, 251, 253, 252, 252, 254, 253, 252, 254, 253, 252, 254, 253, 252, 254, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 247, 247, 247, 247, 247, 247, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 245, 245, 245, 245, 245, 245, 245, 245, 245, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 246, 246, 244, 245, 247, 244, 246, 246, 244, 245, 247, 244, 246, 246, 244, 245, 247, 244, 246, 246, 244, 246, 246, 244, 243, 243, 241, 245, 245, 243, 247, 247, 245, 249, 249, 247, 249, 249, 247, 247, 247, 245, 246, 245, 243, 244, 243, 241, 249, 247, 248, 248, 246, 247, 248, 244, 245, 248, 242, 244, 249, 240, 241, 247, 241, 241, 246, 242, 239, 245, 244, 240, 240, 241, 236, 239, 241, 236, 238, 240, 235, 238, 239, 234, 240, 236, 235, 240, 231, 232, 240, 228, 230, 241, 227, 227, 239, 224, 219, 239, 220, 214, 237, 212, 208, 235, 203, 204, 235, 196, 201, 233, 192, 198, 232, 189, 196, 235, 188, 196, 232, 181, 190, 238, 181, 190, 241, 178, 187, 236, 169, 178, 230, 159, 167, 226, 155, 161, 231, 160, 166, 234, 167, 174, 235, 178, 185, 231, 180, 189, 230, 180, 189, 230, 183, 191, 232, 189, 196, 235, 199, 203, 239, 209, 211, 237, 215, 217, 235, 221, 220, 235, 227, 224, 232, 228, 225, 225, 224, 220, 227, 223, 222, 234, 228, 228, 241, 232, 233, 242, 233, 234, 235, 231, 230, 234, 233, 231, 235, 234, 232, 236, 235, 233, 237, 236, 234, 236, 235, 233, 236, 235, 233, 235, 234, 232, 234, 233, 231, 235, 234, 232, 236, 235, 233, 237, 236, 234, 239, 238, 236, 240, 239, 237, 241, 240, 238, 242, 241, 239, 236, 235, 233, 236, 235, 233, 236, 235, 233, 236, 235, 233, 236, 235, 233, 236, 235, 233, 236, 235, 233, 236, 235, 233, 238, 237, 235, 238, 237, 235, 238, 237, 235, 238, 237, 235, 238, 237, 235, 238, 237, 235, 238, 237, 235, 238, 237, 235, 241, 237, 234, 240, 236, 233, 238, 234, 231, 236, 232, 229, 234, 230, 227, 231, 227, 224, 230, 226, 223, 229, 225, 222, 234, 230, 227, 234, 230, 227, 235, 231, 228, 235, 231, 228, 236, 232, 229, 237, 233, 230, 238, 234, 231, 236, 235, 231, 235, 235, 233, 236, 236, 234, 237, 237, 235, 238, 238, 236, 240, 240, 238, 241, 241, 239, 242, 242, 240, 243, 243, 241, 242, 242, 240, 241, 241, 239, 240, 240, 238, 240, 240, 238, 239, 239, 237, 238, 238, 236, 237, 237, 235, 237, 237, 235, 239, 239, 239, 238, 240, 239, 239, 239, 241, 239, 241, 240, 240, 240, 242, 240, 242, 241, 241, 241, 243, 241, 243, 242, 248, 248, 250, 240, 242, 241, 231, 231, 233, 221, 223, 222, 218, 218, 220, 219, 221, 220, 225, 225, 227, 230, 230, 230, 229, 229, 229, 218, 217, 215, 211, 210, 208, 221, 220, 218, 240, 240, 238, 252, 252, 250, 246, 246, 244, 235, 235, 233, 236, 236, 234, 230, 232, 229, 224, 224, 222, 220, 220, 218, 221, 221, 219, 228, 228, 226, 236, 236, 234, 243, 242, 238, 241, 237, 234, 239, 234, 230, 235, 230, 226, 231, 226, 222, 229, 224, 220, 228, 223, 219, 229, 224, 220, 229, 224, 220, 226, 221, 217, 228, 223, 219, 231, 226, 222, 232, 227, 221, 231, 226, 220, 229, 224, 218, 225, 220, 214, 223, 218, 212, 222, 217, 211, 230, 225, 219, 241, 236, 230, 249, 244, 238, 250, 245, 239, 243, 238, 232, 233, 228, 222, 225, 220, 214, 226, 221, 215, 226, 221, 215, 226, 221, 215, 224, 221, 216, 225, 220, 216, 224, 221, 216, 223, 220, 215, 224, 219, 213, 227, 220, 212, 227, 220, 212, 227, 220, 212, 226, 219, 211, 226, 219, 211, 226, 219, 211, 225, 218, 210, 225, 218, 210, 227, 220, 212, 227, 220, 212, 227, 220, 212, 227, 220, 212, 227, 220, 212, 227, 220, 212, 227, 220, 212, 225, 221, 212, 225, 220, 214, 225, 220, 214, 226, 221, 215, 226, 221, 215, 227, 222, 216, 227, 222, 216, 227, 222, 216, 227, 222, 216, 227, 222, 216, 228, 223, 217, 228, 223, 217, 228, 223, 217, 229, 224, 218, 229, 224, 218, 229, 224, 218, 229, 226, 219, 228, 228, 220, 228, 228, 220, 229, 228, 223, 229, 228, 223, 230, 229, 224, 231, 230, 225, 232, 231, 226, 232, 231, 226, 232, 231, 226, 232, 231, 226, 232, 231, 227, 233, 232, 227, 233, 232, 228, 233, 232, 228, 234, 233, 229, 234, 233, 229, 232, 231, 227, 233, 232, 228, 233, 232, 228, 233, 232, 228, 234, 233, 229, 234, 233, 229, 234, 233, 229, 235, 234, 230, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 237, 238, 233, 237, 238, 233, 237, 238, 233, 237, 238, 233, 237, 238, 233, 237, 238, 233, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 236, 236, 234, 236, 236, 234, 236, 236, 236, 235, 235, 235, 235, 235, 235, 235, 235, 235, 233, 235, 234, 233, 235, 234, 232, 234, 233, 232, 234, 233, 231, 233, 232, 230, 232, 231, 229, 231, 230, 229, 231, 230, 230, 232, 231, 229, 231, 230, 228, 230, 229, 226, 228, 227, 225, 227, 226, 223, 225, 224, 222, 224, 223, 221, 223, 222, 218, 222, 223, 217, 221, 222, 215, 219, 220, 213, 217, 218, 210, 214, 215, 208, 212, 213, 208, 209, 211, 207, 208, 210, 204, 205, 207, 203, 204, 206, 202, 202, 204, 200, 200, 202, 198, 198, 200, 195, 195, 197, 194, 194, 196, 193, 193, 195, 186, 186, 188, 186, 186, 188, 185, 183, 186, 183, 181, 184, 181, 179, 180, 179, 177, 178, 177, 175, 176, 176, 174, 175, 177, 173, 174, 176, 172, 173, 175, 171, 170, 173, 169, 168, 171, 167, 166, 169, 165, 164, 168, 162, 162, 168, 162, 162, 163, 157, 157, 164, 156, 154, 162, 154, 152, 160, 152, 150, 159, 151, 149, 158, 150, 148, 158, 150, 148, 159, 151, 149, 160, 152, 150, 160, 152, 150, 159, 151, 149, 159, 151, 149, 158, 150, 148, 157, 149, 147, 156, 148, 146, 157, 147, 145, 160, 151, 146, 160, 151, 146, 162, 151, 149, 162, 152, 150, 164, 154, 152, 166, 156, 154, 168, 160, 158, 169, 161, 159, 171, 165, 165, 175, 169, 169, 179, 173, 175, 183, 177, 179, 185, 179, 181, 188, 184, 185, 193, 187, 191, 196, 191, 195, 198, 197, 202, 199, 200, 204, 203, 204, 208, 208, 209, 213, 213, 214, 218, 214, 217, 222, 217, 220, 225, 218, 221, 226, 225, 228, 233, 226, 229, 234, 227, 230, 235, 228, 231, 236, 230, 233, 238, 231, 236, 242, 232, 237, 243, 232, 237, 241, 232, 237, 241, 234, 238, 241, 235, 238, 243, 236, 240, 243, 238, 241, 246, 240, 244, 247, 241, 245, 248, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 247, 251, 252, 249, 250, 252, 247, 251, 252, 249, 250, 252, 247, 251, 252, 249, 250, 252, 247, 251, 252, 249, 250, 252, 247, 251, 252, 249, 250, 252, 247, 251, 252, 249, 250, 252, 247, 251, 252, 249, 250, 252, 249, 250, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 248, 253, 248, 249, 253, 249, 248, 253, 248, 249, 253, 249, 248, 253, 248, 249, 253, 249, 248, 253, 248, 249, 253, 249, 248, 253, 248, 249, 253, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 242, 246, 249, 241, 245, 248, 241, 244, 249, 240, 243, 248, 239, 242, 247, 237, 240, 245, 234, 237, 242, 230, 233, 238, 227, 230, 235, 225, 228, 233, 214, 217, 222, 215, 216, 220, 214, 215, 219, 210, 211, 215, 205, 206, 210, 199, 200, 204, 194, 195, 199, 191, 190, 195, 190, 188, 189, 191, 189, 190, 196, 192, 193, 196, 192, 191, 195, 191, 190, 191, 187, 186, 186, 182, 179, 184, 179, 176, 180, 175, 171, 178, 173, 169, 178, 170, 167, 177, 169, 166, 177, 168, 163, 178, 169, 164, 179, 170, 165, 180, 171, 166, 181, 170, 166, 173, 162, 158, 165, 154, 150, 164, 153, 149, 166, 155, 151, 167, 156, 152, 163, 152, 148, 158, 147, 143, 151, 140, 136, 151, 140, 136, 156, 145, 141, 166, 155, 151, 172, 161, 157, 166, 155, 151, 149, 138, 134, 132, 123, 118, 149, 139, 137, 152, 144, 141, 160, 152, 150, 170, 162, 159, 177, 172, 169, 181, 176, 172, 180, 175, 172, 177, 174, 169, 164, 160, 157, 165, 162, 157, 165, 161, 158, 161, 160, 155, 158, 157, 153, 160, 161, 155, 168, 167, 163, 174, 175, 169, 168, 170, 165, 189, 191, 186, 212, 213, 208, 221, 222, 217, 218, 219, 214, 206, 207, 202, 190, 191, 186, 176, 177, 172, 173, 172, 168, 185, 184, 180, 201, 200, 196, 216, 215, 211, 227, 223, 220, 230, 226, 223, 230, 226, 223, 229, 225, 222, 191, 190, 188, 186, 186, 184, 180, 180, 180, 174, 174, 174, 173, 173, 173, 180, 180, 180, 190, 192, 191, 199, 201, 200, 201, 203, 202, 208, 210, 209, 216, 220, 221, 222, 226, 225, 224, 228, 229, 223, 227, 226, 222, 226, 227, 222, 226, 225, 218, 220, 219, 225, 227, 226, 234, 236, 235, 241, 243, 242, 244, 246, 245, 246, 248, 247, 247, 249, 248, 248, 250, 249, 249, 251, 250, 250, 252, 251, 250, 252, 251, 250, 252, 251, 251, 253, 252, 251, 253, 252, 251, 253, 252, 251, 253, 252, 248, 248, 248, 249, 249, 249, 249, 249, 249, 249, 249, 249, 250, 250, 250, 250, 250, 250, 250, 250, 250, 251, 251, 251, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 253, 253, 253, 252, 252, 252, 249, 249, 249, 247, 247, 247, 245, 245, 245, 244, 244, 244, 244, 244, 244, 244, 244, 244, 248, 248, 248, 248, 248, 248, 247, 247, 247, 247, 247, 247, 246, 246, 246, 245, 245, 245, 244, 244, 244, 244, 244, 244, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 241, 241, 241, 241, 241, 241, 242, 242, 242, 242, 242, 242, 243, 243, 243, 244, 244, 244, 245, 245, 245, 245, 245, 245, 244, 244, 242, 244, 244, 242, 245, 244, 242, 244, 244, 242, 245, 244, 242, 244, 244, 242, 245, 244, 242, 245, 244, 242, 250, 249, 247, 249, 248, 246, 248, 247, 245, 247, 246, 244, 246, 245, 243, 247, 246, 244, 247, 246, 244, 248, 247, 245, 244, 244, 242, 244, 244, 242, 245, 244, 242, 245, 244, 242, 245, 244, 242, 245, 244, 242, 245, 244, 242, 245, 244, 242, 241, 240, 238, 242, 242, 240, 242, 242, 240, 240, 239, 237, 237, 233, 232, 237, 231, 231, 241, 235, 235, 248, 240, 238, 239, 228, 224, 240, 225, 220, 239, 218, 215, 237, 211, 212, 236, 204, 207, 234, 198, 202, 232, 193, 198, 233, 191, 195, 230, 184, 187, 237, 185, 189, 232, 173, 177, 232, 166, 170, 242, 167, 172, 235, 154, 160, 229, 144, 151, 235, 154, 161, 237, 170, 179, 231, 174, 183, 228, 177, 184, 229, 184, 191, 230, 194, 198, 235, 204, 209, 239, 214, 217, 240, 221, 223, 233, 219, 219, 233, 225, 223, 232, 231, 229, 233, 233, 231, 232, 231, 229, 231, 227, 226, 234, 224, 225, 233, 223, 224, 237, 231, 231, 237, 233, 232, 237, 233, 232, 236, 232, 231, 235, 231, 230, 236, 232, 231, 239, 235, 234, 242, 238, 237, 238, 234, 233, 236, 232, 231, 233, 229, 228, 231, 227, 226, 231, 227, 226, 233, 229, 228, 236, 232, 231, 239, 235, 234, 237, 233, 232, 237, 233, 232, 237, 233, 232, 237, 233, 232, 237, 233, 232, 237, 233, 232, 237, 233, 232, 237, 233, 232, 239, 235, 234, 239, 235, 234, 239, 235, 234, 238, 234, 233, 238, 234, 233, 237, 233, 232, 237, 233, 232, 237, 233, 232, 237, 236, 234, 237, 236, 234, 237, 236, 234, 237, 236, 234, 237, 236, 234, 237, 236, 234, 237, 236, 234, 237, 236, 234, 233, 232, 230, 233, 232, 230, 233, 232, 230, 234, 233, 231, 234, 233, 231, 234, 233, 231, 235, 234, 232, 235, 234, 232, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 239, 239, 237, 239, 239, 237, 238, 238, 236, 239, 239, 237, 240, 240, 238, 242, 242, 240, 243, 243, 241, 245, 245, 243, 239, 239, 237, 238, 238, 236, 238, 236, 237, 236, 236, 234, 236, 234, 235, 236, 236, 234, 238, 236, 237, 238, 238, 236, 237, 235, 236, 235, 235, 233, 234, 232, 233, 231, 231, 229, 229, 227, 228, 226, 226, 224, 225, 223, 224, 223, 223, 223, 219, 219, 219, 219, 219, 219, 219, 219, 217, 221, 221, 219, 225, 225, 223, 232, 232, 230, 240, 239, 237, 244, 243, 241, 246, 245, 241, 242, 243, 238, 237, 236, 232, 233, 232, 228, 230, 229, 225, 230, 229, 225, 232, 231, 227, 235, 231, 228, 241, 236, 233, 244, 239, 236, 245, 240, 237, 240, 235, 232, 232, 227, 223, 226, 221, 217, 227, 222, 218, 230, 225, 221, 229, 224, 218, 229, 224, 218, 229, 224, 218, 229, 225, 216, 230, 226, 217, 231, 227, 218, 232, 228, 219, 232, 228, 219, 228, 221, 213, 229, 222, 214, 231, 224, 216, 234, 227, 219, 239, 232, 226, 243, 236, 230, 245, 240, 234, 248, 243, 237, 237, 234, 229, 234, 231, 226, 230, 227, 222, 224, 223, 219, 223, 219, 216, 221, 220, 216, 221, 220, 216, 224, 221, 216, 227, 220, 212, 228, 219, 210, 228, 221, 211, 228, 221, 211, 228, 221, 211, 227, 220, 210, 227, 220, 210, 227, 220, 210, 226, 222, 213, 226, 222, 213, 226, 222, 213, 226, 222, 213, 226, 222, 213, 226, 222, 213, 226, 221, 215, 225, 222, 215, 225, 222, 215, 225, 222, 215, 225, 222, 215, 226, 223, 216, 226, 223, 216, 226, 223, 216, 227, 224, 217, 227, 224, 217, 229, 226, 219, 229, 226, 219, 229, 226, 219, 230, 227, 220, 230, 227, 220, 231, 228, 221, 231, 228, 221, 231, 228, 221, 229, 229, 221, 230, 230, 222, 230, 230, 222, 230, 230, 222, 231, 231, 223, 231, 231, 223, 231, 231, 223, 232, 232, 224, 232, 232, 224, 232, 232, 224, 232, 231, 226, 233, 233, 225, 233, 232, 227, 234, 233, 228, 234, 233, 228, 234, 233, 228, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 233, 235, 234, 233, 235, 234, 232, 234, 233, 232, 234, 233, 232, 234, 233, 231, 233, 232, 231, 233, 232, 231, 233, 232, 228, 230, 229, 228, 230, 229, 228, 230, 229, 227, 229, 228, 227, 229, 228, 226, 228, 227, 226, 228, 227, 226, 228, 227, 220, 221, 223, 220, 221, 223, 220, 221, 223, 218, 219, 221, 216, 217, 219, 214, 215, 217, 211, 212, 214, 210, 211, 213, 207, 208, 210, 204, 205, 207, 201, 202, 204, 199, 200, 202, 198, 199, 201, 196, 197, 199, 192, 193, 195, 189, 190, 192, 188, 188, 188, 188, 188, 188, 187, 187, 187, 185, 185, 185, 184, 184, 184, 183, 183, 183, 184, 182, 183, 183, 181, 182, 177, 175, 176, 177, 175, 176, 179, 175, 176, 178, 174, 175, 174, 170, 171, 170, 166, 167, 165, 161, 162, 163, 159, 158, 162, 158, 157, 163, 157, 157, 162, 156, 156, 161, 155, 155, 159, 154, 151, 158, 153, 150, 157, 152, 149, 157, 152, 149, 158, 150, 148, 157, 149, 147, 156, 148, 145, 155, 147, 144, 155, 147, 144, 155, 147, 144, 157, 147, 145, 157, 147, 145, 157, 148, 143, 157, 150, 142, 160, 151, 146, 161, 154, 148, 164, 157, 151, 166, 159, 153, 168, 160, 157, 169, 161, 158, 172, 164, 162, 175, 167, 165, 179, 170, 171, 182, 173, 174, 184, 175, 176, 185, 179, 179, 191, 182, 185, 192, 186, 188, 194, 189, 193, 195, 193, 196, 200, 200, 202, 204, 204, 206, 207, 207, 209, 210, 211, 215, 216, 217, 221, 219, 220, 224, 216, 219, 224, 219, 222, 227, 222, 227, 233, 225, 230, 236, 226, 231, 237, 225, 232, 240, 228, 235, 243, 230, 237, 245, 228, 235, 241, 231, 236, 240, 233, 238, 244, 234, 239, 243, 237, 242, 248, 238, 243, 247, 240, 245, 249, 241, 246, 250, 241, 244, 249, 242, 245, 250, 242, 245, 250, 243, 246, 251, 244, 248, 251, 245, 249, 252, 247, 248, 252, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 254, 249, 250, 254, 250, 249, 254, 249, 250, 254, 250, 249, 254, 249, 250, 254, 250, 249, 254, 249, 250, 254, 250, 249, 254, 249, 250, 254, 250, 249, 254, 249, 250, 254, 250, 249, 254, 249, 250, 254, 250, 249, 254, 249, 250, 254, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 252, 248, 249, 253, 248, 249, 254, 248, 249, 254, 248, 249, 254, 248, 249, 254, 248, 249, 254, 248, 249, 254, 248, 249, 254, 249, 250, 255, 249, 250, 255, 249, 250, 255, 249, 250, 255, 249, 250, 255, 249, 250, 255, 249, 250, 255, 249, 250, 255, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 248, 249, 253, 246, 250, 253, 248, 249, 253, 246, 250, 253, 248, 249, 253, 246, 250, 253, 248, 249, 253, 246, 250, 253, 248, 249, 253, 246, 250, 253, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 242, 246, 249, 241, 245, 248, 241, 245, 248, 241, 245, 248, 238, 241, 246, 238, 241, 246, 237, 240, 245, 235, 238, 243, 233, 236, 241, 230, 233, 238, 227, 230, 235, 226, 229, 234, 218, 221, 226, 217, 220, 225, 216, 219, 224, 213, 216, 221, 209, 212, 217, 203, 206, 211, 198, 201, 206, 197, 198, 202, 195, 195, 197, 196, 194, 195, 195, 193, 194, 194, 192, 193, 193, 189, 188, 189, 185, 184, 185, 181, 178, 183, 179, 176, 176, 171, 167, 178, 173, 169, 182, 174, 171, 184, 176, 173, 187, 178, 173, 187, 178, 173, 186, 177, 172, 185, 176, 171, 180, 169, 165, 172, 161, 157, 165, 154, 150, 163, 152, 148, 168, 157, 153, 171, 160, 156, 170, 159, 155, 167, 156, 152, 166, 155, 151, 172, 161, 157, 176, 165, 161, 173, 162, 158, 163, 152, 148, 153, 144, 139, 151, 140, 136, 149, 140, 135, 164, 156, 154, 161, 156, 153, 164, 159, 156, 172, 167, 164, 180, 175, 172, 181, 177, 174, 175, 171, 168, 166, 165, 161, 174, 170, 167, 156, 155, 151, 143, 142, 138, 148, 149, 144, 171, 172, 167, 194, 195, 190, 205, 206, 201, 206, 208, 203, 217, 219, 214, 207, 212, 206, 190, 192, 187, 170, 172, 167, 163, 165, 160, 175, 177, 172, 194, 195, 190, 206, 207, 202, 227, 226, 222, 220, 219, 215, 215, 211, 208, 214, 210, 207, 213, 209, 206, 203, 199, 196, 184, 179, 176, 167, 163, 160, 167, 166, 164, 169, 169, 167, 173, 173, 173, 179, 179, 179, 186, 186, 186, 197, 197, 197, 208, 210, 209, 216, 218, 217, 208, 209, 211, 213, 214, 216, 218, 222, 223, 223, 227, 228, 223, 227, 228, 222, 226, 227, 222, 226, 227, 222, 226, 227, 223, 225, 224, 229, 231, 230, 237, 239, 238, 242, 244, 243, 245, 247, 246, 245, 247, 246, 246, 248, 247, 247, 249, 248, 248, 250, 249, 248, 250, 249, 249, 251, 250, 249, 251, 250, 249, 251, 250, 250, 252, 251, 250, 252, 251, 250, 252, 251, 248, 248, 248, 248, 248, 248, 249, 249, 249, 249, 249, 249, 249, 249, 249, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 251, 251, 251, 250, 250, 250, 248, 248, 248, 246, 246, 246, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 248, 248, 248, 247, 247, 247, 247, 247, 247, 246, 246, 246, 245, 245, 245, 245, 245, 245, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 241, 241, 241, 242, 242, 242, 242, 242, 242, 243, 243, 243, 243, 243, 243, 244, 244, 244, 245, 245, 245, 245, 245, 245, 245, 244, 242, 245, 244, 242, 245, 244, 242, 245, 244, 242, 245, 244, 242, 245, 244, 242, 245, 244, 242, 245, 244, 242, 249, 248, 246, 248, 247, 245, 247, 246, 244, 246, 245, 243, 246, 245, 243, 246, 245, 243, 246, 245, 243, 247, 246, 244, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 244, 242, 245, 244, 242, 243, 242, 240, 243, 242, 240, 241, 240, 238, 239, 238, 236, 238, 234, 233, 238, 234, 233, 240, 236, 235, 244, 239, 236, 235, 225, 223, 238, 224, 221, 240, 222, 220, 241, 217, 217, 239, 210, 212, 234, 202, 205, 230, 195, 199, 230, 191, 194, 228, 186, 188, 232, 186, 188, 230, 175, 178, 231, 169, 172, 241, 169, 173, 237, 155, 161, 233, 142, 151, 237, 150, 159, 240, 168, 179, 234, 174, 182, 230, 179, 186, 228, 187, 191, 228, 196, 201, 231, 205, 208, 235, 215, 217, 237, 221, 222, 234, 222, 224, 235, 226, 227, 234, 233, 231, 234, 234, 232, 232, 231, 229, 231, 227, 226, 233, 225, 223, 234, 224, 223, 235, 229, 229, 236, 232, 231, 237, 233, 232, 236, 232, 231, 235, 231, 230, 234, 230, 229, 235, 231, 230, 237, 233, 232, 242, 238, 237, 240, 236, 235, 238, 234, 233, 236, 232, 231, 235, 231, 230, 236, 232, 231, 238, 234, 233, 239, 235, 234, 237, 233, 232, 237, 233, 232, 237, 233, 232, 237, 233, 232, 237, 233, 232, 237, 233, 232, 237, 233, 232, 237, 233, 232, 238, 234, 233, 238, 234, 233, 237, 233, 232, 237, 233, 232, 237, 233, 232, 237, 233, 232, 236, 232, 231, 236, 232, 231, 237, 236, 234, 237, 236, 234, 237, 236, 234, 237, 236, 234, 237, 236, 234, 237, 236, 234, 237, 236, 234, 237, 236, 234, 235, 234, 232, 235, 234, 232, 236, 235, 233, 236, 235, 233, 237, 236, 234, 237, 236, 234, 237, 236, 234, 237, 236, 234, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 242, 242, 240, 241, 241, 239, 240, 240, 238, 239, 239, 237, 239, 239, 237, 239, 239, 237, 240, 240, 238, 241, 241, 239, 241, 240, 238, 240, 239, 237, 238, 237, 235, 237, 236, 234, 236, 235, 233, 236, 235, 233, 236, 235, 233, 237, 236, 234, 237, 236, 234, 236, 235, 233, 235, 234, 232, 232, 231, 229, 230, 229, 227, 228, 227, 225, 226, 225, 223, 226, 225, 223, 223, 223, 223, 223, 223, 223, 223, 223, 221, 224, 224, 222, 226, 226, 224, 230, 230, 228, 234, 233, 231, 237, 236, 234, 245, 244, 240, 247, 246, 242, 249, 248, 244, 248, 247, 243, 245, 241, 238, 236, 232, 229, 228, 225, 220, 222, 219, 214, 229, 224, 221, 232, 227, 224, 236, 231, 228, 240, 235, 232, 241, 236, 232, 238, 233, 229, 232, 227, 223, 228, 223, 219, 227, 222, 216, 228, 223, 217, 230, 226, 217, 232, 228, 219, 231, 227, 218, 229, 225, 214, 227, 223, 212, 225, 221, 210, 228, 219, 212, 228, 219, 212, 228, 221, 213, 229, 222, 214, 231, 224, 218, 233, 226, 220, 234, 229, 223, 235, 230, 224, 239, 234, 230, 237, 234, 229, 236, 232, 229, 231, 230, 226, 227, 226, 224, 224, 223, 221, 220, 219, 217, 219, 218, 214, 232, 225, 217, 231, 222, 213, 227, 220, 210, 225, 218, 208, 225, 218, 208, 228, 221, 211, 231, 224, 214, 233, 226, 216, 226, 222, 213, 226, 222, 213, 226, 222, 213, 226, 222, 213, 226, 222, 213, 226, 222, 213, 225, 222, 215, 225, 222, 215, 225, 222, 215, 225, 222, 215, 226, 223, 216, 226, 223, 216, 226, 223, 216, 227, 224, 217, 227, 224, 217, 227, 224, 217, 229, 226, 219, 229, 226, 219, 230, 227, 220, 230, 227, 220, 230, 227, 220, 231, 228, 221, 231, 228, 221, 231, 228, 221, 230, 230, 222, 230, 230, 222, 230, 230, 222, 230, 230, 222, 231, 231, 223, 231, 231, 223, 232, 232, 224, 232, 232, 224, 232, 232, 224, 232, 232, 224, 233, 233, 225, 233, 233, 225, 233, 233, 225, 234, 234, 226, 234, 234, 226, 234, 233, 228, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 233, 235, 234, 233, 235, 234, 233, 235, 234, 232, 234, 233, 232, 234, 233, 232, 234, 233, 231, 233, 232, 231, 233, 232, 229, 231, 230, 228, 230, 229, 228, 230, 229, 228, 230, 229, 227, 229, 228, 227, 229, 228, 227, 229, 228, 226, 228, 227, 222, 223, 225, 222, 223, 225, 221, 222, 224, 220, 221, 223, 218, 219, 221, 215, 216, 218, 213, 214, 216, 211, 212, 214, 208, 209, 211, 205, 206, 208, 202, 203, 205, 200, 201, 203, 199, 200, 202, 197, 198, 200, 193, 194, 196, 190, 191, 193, 190, 190, 190, 190, 190, 190, 190, 190, 190, 189, 189, 189, 188, 188, 188, 186, 186, 186, 185, 183, 184, 184, 182, 183, 179, 177, 178, 179, 177, 178, 180, 176, 177, 178, 174, 175, 175, 171, 172, 171, 167, 168, 167, 163, 164, 164, 160, 161, 163, 159, 158, 163, 159, 158, 163, 157, 157, 162, 156, 156, 161, 156, 153, 160, 155, 152, 159, 154, 151, 159, 154, 151, 159, 151, 149, 158, 150, 148, 157, 149, 146, 156, 148, 145, 155, 147, 144, 156, 148, 145, 157, 147, 145, 158, 148, 146, 157, 150, 144, 158, 151, 143, 160, 153, 147, 162, 155, 149, 164, 157, 151, 166, 159, 153, 168, 160, 157, 169, 161, 158, 172, 164, 162, 175, 167, 165, 179, 170, 171, 181, 172, 173, 183, 174, 175, 185, 176, 177, 188, 179, 182, 190, 184, 186, 189, 183, 185, 192, 188, 189, 196, 194, 195, 200, 198, 199, 203, 201, 204, 206, 206, 208, 211, 212, 216, 214, 215, 219, 215, 218, 223, 218, 221, 226, 222, 227, 233, 224, 229, 235, 223, 230, 238, 225, 232, 240, 226, 235, 244, 229, 238, 245, 228, 235, 241, 229, 236, 242, 232, 237, 243, 234, 239, 245, 236, 241, 247, 238, 243, 249, 240, 245, 249, 240, 245, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 243, 246, 251, 244, 248, 251, 245, 249, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 249, 254, 250, 249, 254, 250, 249, 254, 250, 249, 254, 250, 249, 254, 250, 249, 254, 250, 249, 254, 250, 249, 254, 250, 249, 254, 250, 249, 254, 250, 249, 254, 250, 249, 254, 250, 249, 254, 250, 249, 254, 250, 249, 254, 250, 249, 254, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 254, 248, 249, 254, 248, 249, 254, 248, 249, 254, 248, 249, 254, 248, 249, 254, 248, 249, 254, 248, 249, 254, 249, 250, 255, 249, 250, 255, 249, 250, 255, 249, 250, 255, 249, 250, 255, 249, 250, 255, 249, 250, 255, 249, 250, 255, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 241, 245, 248, 241, 245, 248, 241, 245, 248, 240, 244, 247, 240, 244, 247, 240, 244, 247, 235, 238, 243, 235, 238, 243, 235, 238, 243, 235, 238, 243, 233, 236, 241, 231, 234, 239, 230, 233, 238, 228, 231, 236, 224, 227, 232, 223, 226, 231, 223, 226, 231, 221, 224, 229, 217, 220, 225, 212, 215, 220, 208, 211, 216, 207, 208, 212, 204, 204, 206, 202, 200, 201, 198, 197, 195, 193, 192, 190, 190, 186, 185, 186, 182, 181, 185, 180, 177, 183, 178, 175, 180, 172, 169, 182, 174, 171, 186, 179, 173, 189, 182, 176, 190, 181, 176, 188, 179, 174, 184, 175, 168, 181, 172, 165, 177, 166, 162, 172, 161, 157, 166, 155, 151, 166, 155, 151, 171, 160, 156, 176, 165, 161, 176, 167, 162, 175, 166, 161, 170, 161, 156, 174, 165, 160, 175, 166, 161, 168, 159, 154, 158, 149, 144, 153, 146, 140, 160, 151, 146, 166, 159, 153, 159, 155, 152, 173, 169, 166, 187, 183, 180, 187, 183, 180, 175, 171, 168, 161, 160, 156, 158, 157, 153, 158, 159, 154, 134, 133, 129, 154, 155, 150, 184, 185, 180, 207, 209, 204, 215, 217, 212, 205, 207, 202, 187, 189, 184, 173, 175, 170, 145, 147, 142, 163, 165, 160, 184, 186, 181, 201, 203, 198, 214, 215, 210, 224, 225, 220, 226, 227, 222, 223, 224, 219, 199, 198, 194, 193, 192, 188, 190, 186, 183, 190, 186, 183, 193, 189, 186, 190, 186, 183, 179, 174, 171, 167, 163, 160, 173, 172, 170, 178, 178, 176, 186, 186, 184, 192, 192, 190, 197, 197, 197, 202, 202, 202, 206, 208, 207, 209, 211, 210, 229, 231, 230, 231, 233, 232, 233, 234, 236, 231, 232, 234, 226, 230, 231, 223, 227, 228, 222, 226, 227, 223, 227, 228, 229, 231, 230, 234, 236, 235, 240, 242, 241, 244, 246, 245, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 247, 249, 248, 247, 249, 248, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 249, 249, 249, 249, 249, 249, 249, 249, 249, 250, 250, 250, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 248, 248, 248, 247, 247, 247, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 247, 247, 247, 248, 248, 248, 246, 246, 246, 246, 246, 246, 246, 246, 246, 245, 245, 245, 245, 245, 245, 244, 244, 244, 244, 244, 244, 244, 244, 244, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 242, 242, 242, 243, 243, 243, 243, 243, 243, 243, 243, 243, 244, 244, 244, 244, 244, 244, 245, 245, 245, 245, 245, 245, 245, 244, 242, 245, 244, 242, 245, 244, 242, 245, 244, 242, 245, 244, 242, 245, 244, 242, 245, 244, 242, 245, 244, 242, 248, 247, 245, 247, 246, 244, 245, 244, 242, 244, 243, 241, 244, 243, 241, 244, 243, 241, 245, 244, 242, 245, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 244, 242, 245, 244, 242, 244, 243, 241, 242, 241, 239, 241, 237, 236, 240, 236, 235, 241, 237, 236, 241, 237, 236, 241, 237, 236, 241, 236, 233, 234, 224, 222, 238, 224, 223, 242, 224, 224, 243, 221, 223, 242, 216, 219, 237, 208, 210, 231, 201, 203, 229, 195, 196, 226, 190, 190, 229, 187, 188, 229, 179, 180, 234, 175, 177, 242, 173, 176, 238, 159, 164, 233, 143, 152, 232, 146, 155, 238, 168, 178, 233, 176, 183, 231, 184, 190, 228, 192, 194, 228, 199, 203, 227, 207, 208, 232, 213, 215, 234, 220, 220, 236, 226, 227, 236, 230, 230, 237, 233, 232, 235, 234, 232, 232, 231, 229, 230, 226, 225, 232, 224, 222, 231, 223, 221, 223, 217, 217, 228, 222, 222, 233, 227, 227, 235, 229, 229, 236, 230, 230, 236, 230, 230, 237, 231, 231, 239, 233, 233, 239, 233, 233, 239, 233, 233, 238, 232, 232, 238, 232, 232, 237, 231, 231, 237, 231, 231, 236, 230, 230, 236, 230, 230, 237, 233, 232, 237, 233, 232, 237, 233, 232, 237, 233, 232, 237, 233, 232, 237, 233, 232, 237, 233, 232, 237, 233, 232, 236, 232, 231, 236, 232, 231, 236, 232, 231, 236, 232, 231, 235, 231, 230, 235, 231, 230, 235, 231, 230, 235, 231, 230, 235, 234, 232, 235, 234, 232, 235, 234, 232, 235, 234, 232, 235, 234, 232, 235, 234, 232, 235, 234, 232, 235, 234, 232, 238, 237, 235, 238, 237, 235, 238, 237, 235, 239, 238, 236, 239, 238, 236, 239, 238, 236, 240, 239, 237, 240, 239, 237, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 244, 244, 242, 242, 242, 240, 241, 241, 239, 239, 239, 237, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 242, 241, 239, 241, 240, 238, 239, 238, 236, 238, 237, 235, 236, 235, 233, 235, 234, 232, 234, 233, 231, 233, 232, 230, 236, 235, 233, 235, 234, 232, 234, 233, 231, 232, 231, 229, 231, 230, 228, 229, 228, 226, 228, 227, 225, 227, 226, 224, 227, 227, 225, 227, 227, 225, 227, 227, 225, 227, 227, 225, 227, 227, 225, 227, 227, 225, 229, 228, 226, 229, 228, 226, 229, 228, 224, 235, 234, 230, 245, 241, 238, 251, 247, 244, 252, 249, 244, 248, 245, 240, 242, 239, 234, 237, 234, 229, 227, 222, 219, 225, 220, 217, 226, 221, 218, 233, 228, 225, 241, 236, 233, 244, 239, 236, 239, 234, 230, 232, 227, 223, 232, 227, 221, 232, 227, 221, 230, 225, 219, 229, 225, 216, 227, 223, 214, 225, 221, 212, 224, 220, 211, 224, 220, 211, 230, 221, 212, 229, 220, 211, 228, 219, 212, 227, 218, 211, 226, 219, 211, 226, 219, 211, 227, 220, 214, 225, 220, 214, 234, 229, 223, 234, 231, 224, 236, 233, 228, 237, 234, 229, 236, 232, 229, 230, 229, 225, 226, 225, 221, 226, 223, 218, 221, 217, 208, 226, 219, 209, 230, 223, 213, 233, 226, 216, 233, 226, 216, 230, 223, 213, 226, 219, 211, 223, 216, 208, 226, 222, 213, 226, 222, 213, 226, 222, 213, 226, 222, 213, 225, 222, 215, 225, 222, 215, 225, 222, 215, 225, 222, 215, 226, 223, 216, 226, 223, 216, 226, 223, 216, 226, 223, 216, 227, 224, 217, 227, 224, 217, 228, 225, 218, 228, 225, 218, 229, 226, 219, 230, 227, 220, 230, 227, 220, 230, 227, 220, 231, 228, 221, 231, 228, 221, 231, 228, 221, 231, 228, 221, 230, 229, 224, 230, 229, 224, 230, 229, 224, 231, 230, 225, 231, 230, 225, 231, 230, 225, 232, 231, 226, 232, 231, 226, 232, 231, 226, 233, 232, 227, 233, 232, 227, 233, 232, 227, 234, 233, 228, 234, 233, 228, 234, 233, 228, 234, 233, 228, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 234, 236, 235, 234, 236, 235, 233, 235, 234, 233, 235, 234, 232, 234, 233, 232, 234, 233, 232, 234, 233, 232, 234, 233, 229, 231, 230, 229, 231, 230, 229, 231, 230, 229, 231, 230, 228, 230, 229, 228, 230, 229, 227, 229, 228, 227, 229, 228, 224, 225, 227, 224, 225, 227, 224, 225, 227, 222, 223, 225, 220, 221, 223, 218, 219, 221, 215, 216, 218, 214, 215, 217, 210, 211, 213, 207, 208, 210, 203, 204, 206, 201, 202, 204, 201, 202, 204, 199, 200, 202, 195, 196, 198, 192, 193, 195, 192, 192, 192, 193, 193, 193, 194, 194, 194, 194, 194, 194, 193, 193, 193, 190, 190, 190, 187, 185, 186, 185, 183, 184, 180, 178, 179, 180, 178, 179, 179, 177, 178, 176, 174, 175, 175, 171, 172, 171, 167, 168, 168, 164, 165, 166, 162, 163, 165, 161, 160, 165, 161, 160, 164, 160, 159, 163, 159, 158, 163, 158, 155, 163, 158, 155, 162, 157, 154, 162, 157, 154, 161, 153, 151, 160, 152, 150, 159, 151, 148, 157, 149, 146, 156, 148, 145, 156, 148, 145, 157, 149, 146, 157, 149, 146, 159, 152, 146, 159, 152, 146, 161, 154, 148, 162, 155, 149, 164, 157, 151, 166, 159, 153, 167, 159, 156, 168, 160, 157, 173, 165, 163, 176, 168, 166, 178, 169, 170, 180, 171, 172, 180, 171, 172, 181, 172, 173, 184, 175, 176, 185, 179, 179, 183, 177, 177, 186, 182, 181, 191, 187, 188, 193, 191, 192, 196, 194, 197, 200, 200, 202, 204, 205, 209, 208, 209, 213, 213, 216, 221, 216, 219, 224, 220, 225, 231, 223, 228, 234, 222, 229, 237, 224, 231, 239, 226, 233, 241, 229, 236, 244, 227, 234, 240, 228, 235, 241, 232, 237, 243, 234, 239, 245, 236, 241, 247, 238, 243, 249, 239, 244, 248, 240, 245, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 243, 246, 251, 244, 248, 251, 244, 248, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 249, 254, 250, 249, 254, 250, 249, 254, 250, 249, 254, 250, 249, 254, 250, 249, 254, 250, 249, 254, 250, 249, 254, 250, 249, 254, 250, 249, 254, 250, 249, 254, 250, 249, 254, 250, 249, 254, 250, 249, 254, 250, 249, 254, 250, 249, 254, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 254, 248, 249, 254, 248, 249, 254, 248, 249, 254, 248, 249, 254, 248, 249, 254, 248, 249, 254, 248, 249, 254, 248, 249, 254, 248, 249, 254, 248, 249, 254, 248, 249, 254, 248, 249, 254, 248, 249, 254, 248, 249, 254, 248, 249, 254, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 241, 245, 248, 241, 245, 248, 241, 245, 248, 240, 244, 247, 240, 244, 247, 240, 244, 247, 239, 243, 246, 239, 243, 246, 235, 238, 243, 235, 238, 243, 236, 239, 244, 236, 239, 244, 236, 239, 244, 235, 238, 243, 234, 237, 242, 233, 236, 241, 230, 233, 238, 230, 233, 238, 230, 233, 238, 228, 231, 236, 225, 228, 233, 221, 224, 229, 216, 219, 224, 216, 217, 221, 212, 212, 214, 209, 207, 208, 201, 200, 198, 193, 192, 190, 189, 185, 184, 185, 181, 180, 184, 179, 176, 184, 179, 176, 186, 178, 175, 187, 179, 176, 187, 180, 174, 186, 179, 173, 183, 174, 169, 179, 170, 165, 174, 165, 158, 170, 161, 154, 175, 164, 160, 173, 162, 158, 172, 161, 157, 174, 163, 159, 178, 167, 163, 179, 170, 165, 177, 168, 163, 175, 166, 161, 169, 160, 155, 166, 159, 153, 165, 156, 151, 166, 159, 153, 171, 164, 158, 174, 169, 163, 179, 172, 166, 177, 172, 168, 184, 183, 178, 184, 185, 180, 180, 181, 176, 169, 170, 165, 156, 157, 152, 150, 151, 146, 154, 155, 150, 160, 161, 156, 216, 217, 212, 213, 214, 209, 201, 203, 198, 184, 186, 181, 167, 169, 164, 161, 163, 158, 167, 169, 164, 175, 177, 172, 204, 206, 201, 212, 214, 209, 218, 220, 215, 215, 217, 212, 208, 209, 204, 197, 198, 193, 183, 184, 179, 171, 172, 167, 173, 172, 168, 178, 177, 173, 184, 180, 177, 183, 179, 176, 178, 174, 171, 177, 173, 170, 181, 176, 173, 184, 180, 177, 177, 176, 174, 183, 183, 181, 193, 193, 191, 202, 202, 200, 208, 208, 208, 212, 212, 212, 215, 217, 216, 217, 219, 218, 228, 230, 229, 229, 231, 230, 230, 231, 233, 228, 229, 231, 224, 228, 229, 224, 228, 229, 227, 231, 232, 229, 233, 234, 235, 237, 236, 239, 241, 240, 244, 246, 245, 246, 248, 247, 245, 247, 246, 243, 245, 244, 243, 245, 244, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 248, 247, 246, 248, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 248, 248, 248, 249, 249, 249, 249, 249, 249, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 246, 246, 246, 247, 247, 247, 249, 249, 249, 250, 250, 250, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 244, 244, 244, 244, 244, 244, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 244, 242, 245, 244, 242, 245, 244, 242, 245, 244, 242, 245, 244, 242, 245, 244, 242, 245, 244, 242, 245, 244, 242, 246, 245, 243, 245, 244, 242, 244, 243, 241, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 244, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 243, 241, 244, 243, 241, 245, 244, 242, 241, 240, 238, 239, 235, 234, 239, 235, 234, 243, 239, 238, 244, 240, 239, 241, 237, 236, 238, 232, 232, 237, 227, 226, 238, 227, 225, 241, 225, 225, 241, 223, 223, 240, 218, 220, 237, 212, 215, 234, 208, 211, 233, 204, 206, 228, 196, 197, 227, 191, 191, 229, 185, 186, 235, 183, 185, 243, 178, 182, 239, 164, 169, 231, 148, 156, 227, 146, 155, 236, 166, 176, 233, 176, 183, 233, 188, 193, 232, 198, 199, 227, 202, 205, 226, 208, 208, 228, 214, 214, 230, 218, 218, 236, 226, 227, 237, 228, 229, 236, 230, 230, 234, 230, 229, 230, 226, 225, 227, 223, 222, 226, 221, 218, 229, 221, 219, 224, 215, 216, 226, 220, 220, 234, 225, 226, 235, 229, 229, 236, 227, 228, 232, 226, 226, 233, 224, 225, 231, 225, 225, 229, 220, 221, 228, 222, 222, 232, 223, 224, 232, 226, 226, 235, 226, 227, 233, 227, 227, 234, 225, 226, 232, 226, 226, 236, 232, 231, 236, 232, 231, 236, 232, 231, 236, 232, 231, 236, 232, 231, 236, 232, 231, 236, 232, 231, 236, 232, 231, 233, 229, 228, 234, 230, 229, 234, 230, 229, 234, 230, 229, 234, 230, 229, 234, 230, 229, 235, 231, 230, 235, 231, 230, 234, 233, 231, 234, 233, 231, 234, 233, 231, 234, 233, 231, 234, 233, 231, 234, 233, 231, 234, 233, 231, 234, 233, 231, 238, 237, 235, 238, 237, 235, 238, 237, 235, 238, 237, 235, 239, 238, 236, 239, 238, 236, 240, 239, 237, 240, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 241, 241, 239, 240, 240, 238, 239, 239, 237, 237, 237, 235, 236, 236, 234, 236, 236, 234, 237, 237, 235, 237, 237, 235, 241, 240, 238, 241, 240, 238, 240, 239, 237, 238, 237, 235, 236, 235, 233, 233, 232, 230, 231, 230, 228, 230, 229, 227, 233, 232, 230, 232, 231, 229, 231, 230, 228, 230, 229, 227, 229, 228, 226, 228, 227, 225, 227, 226, 224, 227, 226, 224, 228, 228, 226, 228, 228, 226, 229, 229, 227, 230, 230, 228, 229, 229, 227, 228, 228, 226, 227, 226, 224, 226, 225, 223, 222, 221, 217, 224, 223, 219, 230, 226, 223, 235, 231, 228, 242, 239, 234, 249, 246, 241, 254, 251, 246, 255, 254, 249, 241, 236, 233, 235, 230, 227, 229, 224, 221, 228, 223, 220, 232, 227, 224, 237, 232, 229, 239, 234, 230, 240, 235, 231, 241, 236, 232, 237, 232, 226, 231, 226, 220, 225, 220, 214, 222, 217, 211, 223, 219, 210, 226, 222, 213, 229, 225, 216, 233, 226, 216, 233, 224, 215, 231, 222, 215, 229, 220, 213, 227, 220, 212, 227, 220, 212, 227, 220, 214, 228, 221, 215, 225, 220, 214, 227, 222, 216, 231, 226, 222, 233, 230, 225, 236, 233, 228, 238, 235, 230, 238, 234, 231, 238, 235, 230, 226, 222, 213, 229, 222, 212, 230, 223, 213, 230, 223, 213, 229, 222, 212, 226, 219, 209, 223, 216, 208, 221, 214, 206, 227, 223, 214, 227, 223, 214, 227, 223, 214, 227, 223, 214, 226, 223, 216, 226, 223, 216, 226, 223, 216, 226, 223, 216, 226, 223, 216, 227, 224, 217, 227, 224, 217, 227, 224, 217, 228, 225, 218, 228, 225, 218, 228, 225, 218, 229, 226, 219, 230, 227, 220, 230, 227, 220, 230, 227, 220, 231, 228, 221, 231, 228, 221, 231, 228, 221, 232, 229, 222, 232, 229, 222, 230, 229, 224, 230, 229, 224, 231, 230, 225, 231, 230, 225, 231, 230, 225, 232, 231, 226, 232, 231, 226, 232, 231, 226, 233, 232, 227, 233, 232, 227, 233, 232, 227, 234, 233, 228, 234, 233, 228, 234, 233, 228, 235, 234, 229, 235, 234, 229, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 235, 237, 236, 234, 236, 235, 234, 236, 235, 234, 236, 235, 233, 235, 234, 233, 235, 234, 233, 235, 234, 232, 234, 233, 231, 233, 232, 230, 232, 231, 230, 232, 231, 230, 232, 231, 229, 231, 230, 229, 231, 230, 229, 231, 230, 228, 230, 229, 227, 228, 230, 227, 228, 230, 226, 227, 229, 225, 226, 228, 223, 224, 226, 220, 221, 223, 218, 219, 221, 216, 217, 219, 212, 213, 215, 209, 210, 212, 206, 207, 209, 204, 205, 207, 203, 204, 206, 201, 202, 204, 197, 198, 200, 194, 195, 197, 195, 195, 195, 196, 196, 196, 198, 198, 198, 198, 198, 198, 196, 196, 196, 192, 192, 192, 189, 187, 188, 186, 184, 185, 180, 178, 179, 179, 177, 178, 177, 175, 176, 175, 173, 174, 173, 169, 170, 170, 166, 167, 167, 163, 164, 166, 162, 163, 167, 163, 162, 167, 163, 162, 166, 162, 161, 166, 162, 161, 166, 161, 158, 166, 161, 158, 165, 160, 157, 165, 160, 157, 163, 155, 153, 162, 154, 152, 160, 152, 149, 159, 151, 148, 158, 150, 147, 157, 149, 146, 158, 150, 147, 158, 150, 147, 160, 153, 147, 161, 154, 148, 161, 154, 148, 162, 155, 149, 164, 157, 151, 165, 158, 152, 166, 158, 155, 166, 158, 155, 172, 164, 162, 174, 166, 164, 176, 167, 168, 177, 168, 169, 176, 167, 168, 176, 167, 168, 178, 169, 170, 181, 172, 173, 177, 171, 171, 180, 176, 175, 186, 182, 183, 190, 186, 187, 191, 189, 192, 195, 193, 196, 200, 199, 204, 202, 203, 207, 211, 212, 217, 213, 216, 221, 218, 221, 228, 220, 225, 231, 222, 226, 235, 222, 229, 237, 225, 232, 240, 227, 234, 242, 227, 234, 240, 227, 234, 240, 231, 236, 242, 233, 238, 244, 235, 240, 246, 237, 242, 248, 238, 243, 247, 239, 244, 248, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 243, 247, 250, 244, 248, 251, 246, 247, 251, 247, 248, 252, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 249, 254, 250, 249, 254, 250, 249, 254, 250, 249, 254, 250, 249, 254, 250, 249, 254, 250, 249, 254, 250, 249, 254, 250, 249, 254, 250, 249, 254, 250, 249, 254, 250, 249, 254, 250, 249, 254, 250, 249, 254, 250, 249, 254, 250, 249, 254, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 254, 248, 249, 254, 248, 249, 254, 248, 249, 254, 248, 249, 254, 248, 249, 254, 248, 249, 254, 248, 249, 254, 248, 249, 254, 248, 249, 254, 248, 249, 254, 248, 249, 254, 248, 249, 254, 248, 249, 254, 248, 249, 254, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 241, 245, 248, 241, 245, 248, 241, 245, 248, 240, 244, 247, 240, 244, 247, 240, 244, 247, 239, 243, 246, 239, 243, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 240, 243, 248, 240, 243, 248, 239, 242, 247, 238, 241, 246, 237, 240, 245, 234, 237, 242, 234, 237, 242, 234, 237, 242, 232, 235, 240, 229, 232, 237, 225, 228, 233, 221, 224, 229, 220, 221, 225, 216, 216, 216, 212, 211, 209, 205, 201, 200, 197, 193, 192, 190, 186, 183, 186, 182, 179, 186, 181, 178, 186, 181, 178, 190, 182, 179, 188, 180, 177, 186, 177, 172, 182, 173, 168, 179, 170, 163, 176, 167, 160, 175, 164, 158, 174, 163, 157, 175, 164, 160, 177, 166, 164, 180, 169, 167, 183, 172, 170, 183, 173, 171, 179, 169, 167, 174, 164, 162, 168, 160, 157, 171, 163, 160, 168, 163, 159, 172, 164, 161, 176, 171, 167, 184, 179, 175, 186, 183, 178, 184, 179, 175, 177, 176, 171, 172, 175, 168, 149, 154, 147, 130, 133, 126, 133, 136, 129, 158, 161, 154, 190, 193, 186, 210, 213, 206, 218, 221, 214, 176, 179, 172, 165, 168, 161, 159, 162, 155, 168, 171, 164, 191, 194, 187, 213, 216, 209, 223, 224, 218, 223, 224, 218, 213, 214, 209, 205, 206, 201, 189, 190, 185, 173, 174, 169, 169, 168, 164, 175, 174, 170, 181, 180, 176, 183, 182, 178, 189, 185, 182, 193, 189, 186, 195, 191, 188, 191, 187, 184, 183, 179, 176, 181, 177, 174, 186, 181, 178, 191, 187, 184, 192, 191, 189, 196, 196, 194, 202, 202, 200, 208, 208, 206, 211, 211, 209, 215, 215, 213, 219, 219, 219, 222, 222, 222, 209, 211, 210, 212, 214, 213, 215, 216, 218, 218, 219, 221, 221, 222, 224, 227, 228, 230, 232, 236, 237, 237, 241, 242, 239, 241, 240, 242, 244, 243, 245, 247, 246, 245, 247, 246, 243, 245, 244, 242, 244, 243, 242, 244, 243, 242, 244, 243, 242, 244, 243, 242, 244, 243, 243, 245, 244, 243, 245, 244, 243, 245, 244, 244, 246, 245, 244, 246, 245, 244, 246, 245, 246, 246, 246, 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 248, 248, 248, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 245, 245, 245, 247, 247, 247, 249, 249, 249, 250, 250, 250, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 246, 246, 246, 246, 246, 246, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 246, 246, 246, 246, 246, 246, 246, 246, 246, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 244, 242, 245, 244, 242, 245, 244, 242, 245, 244, 242, 245, 244, 242, 245, 244, 242, 245, 244, 242, 245, 244, 242, 245, 244, 242, 244, 243, 241, 243, 242, 240, 242, 241, 239, 242, 241, 239, 242, 241, 239, 243, 242, 240, 243, 242, 240, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 243, 241, 244, 243, 241, 244, 243, 241, 244, 243, 241, 244, 243, 241, 240, 239, 237, 239, 235, 234, 240, 236, 235, 244, 240, 239, 244, 240, 239, 240, 236, 235, 237, 231, 231, 241, 233, 231, 241, 229, 229, 239, 225, 225, 236, 220, 221, 236, 217, 219, 236, 216, 217, 237, 217, 218, 238, 217, 216, 232, 208, 208, 226, 198, 197, 228, 192, 192, 238, 192, 194, 243, 184, 188, 239, 170, 175, 233, 156, 164, 225, 148, 156, 230, 163, 172, 232, 175, 182, 236, 191, 196, 234, 202, 203, 227, 207, 208, 225, 211, 210, 226, 214, 214, 230, 218, 218, 234, 222, 224, 236, 224, 226, 235, 225, 226, 232, 223, 224, 228, 219, 220, 224, 218, 218, 225, 217, 215, 226, 218, 216, 231, 222, 223, 234, 225, 226, 238, 228, 229, 237, 228, 229, 234, 224, 225, 228, 219, 220, 225, 215, 216, 223, 214, 215, 222, 212, 213, 223, 214, 215, 228, 218, 219, 230, 221, 222, 234, 224, 225, 234, 225, 226, 236, 226, 227, 235, 226, 227, 236, 230, 230, 235, 231, 230, 235, 231, 230, 235, 231, 230, 235, 231, 230, 235, 231, 230, 235, 231, 230, 235, 231, 230, 232, 228, 227, 232, 228, 227, 232, 228, 227, 233, 229, 228, 233, 229, 228, 234, 230, 229, 234, 230, 229, 235, 231, 230, 234, 233, 231, 234, 233, 231, 234, 233, 231, 234, 233, 231, 234, 233, 231, 234, 233, 231, 234, 233, 231, 234, 233, 231, 236, 235, 233, 236, 235, 233, 236, 235, 233, 236, 235, 233, 237, 236, 234, 237, 236, 234, 238, 237, 235, 238, 237, 235, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 236, 236, 234, 236, 236, 234, 235, 235, 233, 235, 235, 233, 236, 236, 234, 237, 237, 235, 239, 239, 237, 240, 240, 238, 239, 238, 236, 240, 239, 237, 239, 238, 236, 238, 237, 235, 236, 235, 233, 233, 232, 230, 230, 229, 227, 228, 227, 225, 228, 227, 225, 228, 227, 225, 228, 227, 225, 228, 227, 225, 227, 226, 224, 227, 226, 224, 226, 225, 223, 226, 225, 223, 226, 226, 224, 227, 227, 225, 229, 229, 227, 230, 230, 228, 231, 230, 228, 230, 229, 227, 229, 228, 224, 228, 227, 223, 233, 232, 228, 230, 229, 225, 228, 224, 221, 226, 222, 219, 228, 225, 220, 234, 231, 226, 240, 237, 232, 244, 241, 236, 248, 244, 241, 247, 243, 242, 242, 238, 235, 235, 231, 228, 228, 224, 221, 227, 223, 220, 231, 227, 224, 236, 233, 228, 238, 235, 230, 237, 234, 229, 234, 231, 226, 231, 228, 221, 228, 225, 218, 227, 224, 217, 227, 224, 217, 228, 224, 215, 232, 225, 215, 232, 223, 214, 231, 222, 213, 230, 221, 212, 230, 221, 212, 230, 221, 212, 230, 223, 215, 231, 224, 216, 226, 219, 211, 226, 219, 211, 227, 220, 214, 227, 222, 216, 231, 226, 220, 235, 230, 224, 239, 234, 230, 242, 237, 231, 247, 240, 232, 240, 233, 223, 230, 223, 213, 222, 215, 205, 220, 213, 203, 223, 216, 206, 227, 223, 214, 232, 228, 219, 228, 224, 215, 228, 224, 215, 228, 223, 217, 228, 223, 217, 227, 224, 217, 227, 224, 217, 227, 224, 217, 227, 224, 217, 227, 224, 217, 227, 224, 217, 228, 225, 218, 228, 225, 218, 228, 225, 218, 229, 226, 219, 229, 226, 219, 229, 226, 219, 230, 227, 220, 230, 227, 220, 231, 228, 221, 231, 228, 221, 231, 228, 221, 232, 229, 222, 232, 229, 222, 232, 229, 222, 231, 230, 225, 231, 230, 225, 231, 230, 225, 232, 231, 226, 232, 231, 226, 232, 231, 226, 233, 232, 227, 233, 232, 227, 233, 232, 227, 233, 232, 227, 234, 233, 228, 234, 233, 228, 234, 233, 228, 235, 234, 229, 235, 234, 229, 235, 234, 229, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 235, 237, 236, 235, 237, 236, 235, 237, 236, 234, 236, 235, 234, 236, 235, 234, 236, 235, 233, 235, 234, 233, 235, 234, 232, 234, 233, 232, 234, 233, 231, 233, 232, 231, 233, 232, 231, 233, 232, 230, 232, 231, 230, 232, 231, 230, 232, 231, 229, 230, 232, 229, 230, 232, 228, 229, 231, 227, 228, 230, 225, 226, 228, 222, 223, 225, 220, 221, 223, 218, 219, 221, 215, 216, 218, 212, 213, 215, 208, 209, 211, 206, 207, 209, 205, 206, 208, 203, 204, 206, 200, 201, 203, 197, 198, 200, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 196, 196, 196, 192, 192, 192, 189, 189, 189, 186, 186, 186, 180, 178, 179, 178, 176, 177, 175, 173, 174, 172, 170, 171, 169, 167, 168, 166, 164, 165, 166, 162, 163, 165, 161, 162, 168, 164, 163, 168, 164, 163, 168, 164, 163, 168, 164, 163, 168, 162, 162, 168, 162, 162, 168, 163, 160, 168, 163, 160, 164, 159, 156, 163, 158, 155, 163, 155, 153, 161, 153, 151, 159, 151, 148, 159, 151, 148, 159, 151, 148, 159, 151, 148, 161, 154, 148, 161, 154, 148, 162, 155, 149, 162, 155, 149, 162, 154, 151, 163, 155, 152, 163, 155, 152, 163, 155, 152, 168, 160, 158, 170, 162, 160, 172, 164, 162, 172, 164, 162, 171, 162, 163, 171, 162, 163, 173, 164, 165, 175, 166, 167, 174, 168, 168, 178, 172, 172, 183, 179, 178, 187, 183, 182, 188, 186, 187, 192, 190, 191, 197, 197, 199, 199, 200, 202, 207, 208, 212, 209, 212, 217, 214, 217, 224, 217, 222, 228, 219, 224, 230, 221, 226, 232, 222, 229, 237, 225, 232, 240, 226, 233, 239, 227, 234, 240, 230, 235, 241, 232, 237, 243, 234, 239, 245, 236, 241, 247, 237, 242, 246, 238, 243, 247, 240, 243, 248, 241, 244, 249, 241, 244, 249, 242, 245, 250, 243, 247, 250, 243, 247, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 241, 245, 248, 241, 245, 248, 241, 245, 248, 240, 244, 247, 240, 244, 247, 240, 244, 247, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 240, 243, 248, 239, 242, 247, 237, 240, 245, 236, 239, 244, 236, 239, 244, 234, 237, 242, 230, 233, 238, 225, 228, 233, 221, 224, 229, 220, 221, 225, 215, 215, 215, 212, 211, 209, 206, 202, 201, 199, 195, 194, 193, 189, 186, 190, 186, 183, 190, 185, 182, 190, 185, 182, 189, 181, 178, 188, 180, 177, 186, 177, 172, 184, 175, 170, 183, 174, 167, 183, 174, 167, 186, 175, 169, 187, 176, 172, 177, 166, 164, 180, 169, 167, 184, 173, 171, 185, 175, 173, 183, 173, 171, 177, 169, 166, 170, 162, 159, 164, 159, 155, 167, 162, 158, 172, 167, 163, 177, 172, 168, 177, 174, 169, 174, 171, 166, 170, 169, 164, 171, 168, 163, 169, 170, 164, 149, 154, 147, 167, 174, 166, 195, 200, 193, 212, 217, 210, 209, 214, 207, 186, 191, 184, 157, 162, 155, 137, 142, 135, 164, 167, 160, 177, 180, 173, 198, 201, 194, 218, 219, 213, 222, 223, 217, 207, 208, 202, 180, 181, 175, 159, 160, 154, 163, 162, 158, 166, 167, 162, 171, 170, 166, 173, 172, 168, 179, 178, 174, 184, 183, 179, 182, 181, 177, 176, 175, 171, 188, 184, 181, 186, 182, 179, 184, 180, 177, 187, 183, 180, 193, 189, 186, 198, 194, 191, 200, 195, 192, 198, 194, 191, 204, 203, 201, 206, 206, 204, 209, 209, 207, 211, 211, 209, 211, 211, 209, 212, 212, 210, 215, 215, 215, 217, 217, 217, 218, 220, 219, 220, 222, 221, 223, 224, 226, 224, 225, 227, 225, 226, 228, 228, 229, 231, 231, 235, 236, 234, 238, 239, 239, 241, 240, 242, 244, 243, 243, 245, 244, 243, 245, 244, 241, 243, 242, 239, 241, 240, 240, 242, 241, 241, 243, 242, 241, 243, 242, 241, 243, 242, 242, 244, 243, 242, 244, 243, 242, 244, 243, 243, 245, 244, 243, 245, 244, 243, 245, 244, 245, 245, 245, 245, 245, 245, 246, 246, 246, 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247, 247, 247, 247, 247, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 245, 245, 245, 246, 246, 246, 248, 248, 248, 249, 249, 249, 245, 245, 245, 245, 245, 245, 246, 246, 246, 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 247, 247, 247, 247, 247, 247, 247, 247, 247, 246, 246, 246, 246, 246, 246, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 244, 242, 245, 244, 242, 245, 244, 242, 245, 244, 242, 245, 244, 242, 245, 244, 242, 245, 244, 242, 245, 244, 242, 245, 244, 242, 244, 243, 241, 243, 242, 240, 242, 241, 239, 242, 241, 239, 242, 241, 239, 243, 242, 240, 243, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 242, 241, 239, 240, 239, 237, 242, 238, 237, 243, 239, 238, 243, 239, 238, 243, 239, 238, 240, 236, 235, 238, 232, 232, 243, 235, 233, 240, 230, 229, 236, 224, 224, 234, 220, 220, 234, 218, 219, 235, 219, 220, 238, 222, 223, 241, 225, 225, 239, 221, 221, 227, 206, 205, 230, 200, 200, 238, 199, 200, 240, 190, 193, 239, 178, 183, 237, 166, 174, 226, 153, 162, 224, 157, 166, 230, 173, 180, 238, 193, 198, 237, 207, 207, 231, 211, 212, 224, 213, 211, 227, 215, 215, 231, 219, 219, 233, 218, 221, 236, 220, 223, 235, 220, 223, 233, 218, 221, 228, 216, 218, 225, 215, 216, 226, 216, 215, 227, 217, 216, 224, 214, 215, 228, 218, 219, 232, 222, 223, 234, 224, 225, 234, 224, 225, 233, 223, 224, 234, 224, 225, 235, 225, 226, 226, 216, 217, 227, 217, 218, 229, 219, 220, 232, 222, 223, 235, 225, 226, 238, 228, 229, 240, 230, 231, 240, 231, 232, 235, 229, 229, 234, 230, 229, 234, 230, 229, 234, 230, 229, 234, 230, 229, 234, 230, 229, 234, 230, 229, 234, 230, 229, 231, 227, 226, 231, 227, 226, 232, 228, 227, 233, 229, 228, 234, 230, 229, 234, 230, 229, 235, 231, 230, 235, 231, 230, 234, 233, 231, 234, 233, 231, 234, 233, 231, 234, 233, 231, 234, 233, 231, 234, 233, 231, 234, 233, 231, 234, 233, 231, 234, 233, 231, 234, 233, 231, 235, 234, 232, 235, 234, 232, 235, 234, 232, 236, 235, 233, 236, 235, 233, 236, 235, 233, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 233, 233, 231, 233, 233, 231, 233, 233, 231, 234, 234, 232, 235, 235, 233, 237, 237, 235, 239, 239, 237, 240, 240, 238, 236, 235, 233, 237, 236, 234, 238, 237, 235, 238, 237, 235, 236, 235, 233, 233, 232, 230, 230, 229, 227, 228, 227, 225, 226, 225, 223, 227, 226, 224, 227, 226, 224, 227, 226, 224, 227, 226, 224, 227, 226, 224, 227, 226, 224, 227, 226, 224, 227, 227, 225, 227, 227, 225, 227, 227, 225, 228, 228, 226, 230, 229, 227, 231, 230, 228, 231, 230, 226, 232, 231, 227, 231, 230, 226, 230, 229, 225, 230, 226, 223, 228, 224, 221, 227, 224, 219, 226, 223, 218, 227, 224, 219, 227, 224, 219, 241, 237, 234, 247, 243, 242, 251, 247, 244, 247, 243, 240, 237, 233, 230, 228, 224, 221, 226, 222, 219, 228, 224, 221, 227, 224, 219, 231, 228, 223, 237, 234, 229, 240, 237, 232, 240, 237, 230, 235, 232, 225, 228, 225, 218, 225, 220, 214, 228, 221, 213, 229, 220, 211, 228, 219, 210, 228, 219, 210, 228, 219, 210, 229, 220, 211, 229, 222, 214, 230, 223, 215, 232, 225, 217, 230, 223, 215, 228, 221, 215, 226, 219, 213, 227, 220, 214, 227, 222, 216, 231, 226, 220, 233, 229, 220, 239, 232, 222, 240, 233, 223, 241, 234, 224, 240, 233, 223, 239, 232, 222, 236, 229, 219, 231, 227, 218, 229, 225, 216, 229, 225, 216, 229, 225, 216, 229, 224, 218, 229, 224, 218, 228, 225, 218, 228, 225, 218, 228, 225, 218, 228, 225, 218, 228, 225, 218, 228, 225, 218, 228, 225, 218, 229, 226, 219, 229, 226, 219, 230, 227, 220, 230, 227, 220, 230, 227, 220, 231, 228, 221, 231, 228, 221, 231, 228, 221, 231, 228, 221, 232, 229, 222, 232, 229, 222, 232, 229, 222, 233, 230, 223, 231, 230, 225, 231, 230, 225, 232, 231, 226, 232, 231, 226, 232, 231, 226, 233, 232, 227, 233, 232, 227, 233, 232, 227, 234, 233, 228, 234, 233, 228, 234, 233, 228, 234, 233, 228, 235, 234, 229, 235, 234, 229, 235, 234, 229, 236, 235, 230, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 236, 238, 237, 236, 238, 237, 236, 238, 237, 235, 237, 236, 235, 237, 236, 234, 236, 235, 234, 236, 235, 234, 236, 235, 233, 235, 234, 233, 235, 234, 232, 234, 233, 232, 234, 233, 232, 234, 233, 231, 233, 232, 231, 233, 232, 231, 233, 232, 230, 231, 233, 230, 231, 233, 229, 230, 232, 228, 229, 231, 226, 227, 229, 224, 225, 227, 221, 222, 224, 220, 221, 223, 217, 218, 220, 214, 215, 217, 210, 211, 213, 208, 209, 211, 208, 209, 211, 206, 207, 209, 202, 203, 205, 199, 200, 202, 200, 200, 200, 199, 199, 199, 197, 197, 197, 194, 194, 194, 192, 192, 192, 189, 189, 189, 188, 188, 188, 187, 187, 187, 181, 179, 180, 179, 177, 178, 175, 173, 174, 171, 169, 170, 168, 166, 167, 166, 164, 165, 167, 163, 164, 166, 162, 163, 169, 165, 164, 169, 165, 164, 169, 165, 164, 169, 165, 164, 170, 164, 164, 170, 164, 164, 170, 165, 162, 170, 165, 162, 166, 161, 158, 165, 160, 157, 165, 157, 155, 162, 154, 152, 161, 153, 150, 160, 152, 149, 159, 151, 148, 159, 151, 148, 161, 154, 148, 161, 154, 148, 161, 154, 148, 161, 154, 148, 161, 153, 150, 161, 153, 150, 160, 152, 149, 160, 152, 149, 162, 154, 152, 165, 157, 155, 167, 159, 157, 167, 159, 157, 166, 157, 158, 167, 158, 159, 169, 160, 161, 171, 162, 163, 172, 166, 166, 176, 170, 170, 180, 176, 175, 184, 180, 179, 188, 184, 185, 190, 188, 189, 195, 193, 196, 198, 198, 200, 204, 203, 208, 207, 208, 212, 210, 213, 218, 214, 217, 224, 215, 220, 226, 218, 223, 229, 221, 225, 234, 222, 229, 237, 225, 232, 238, 226, 233, 239, 229, 234, 240, 231, 236, 242, 233, 238, 244, 235, 240, 246, 237, 242, 246, 237, 242, 246, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 242, 246, 249, 243, 247, 250, 246, 247, 251, 246, 247, 251, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 242, 246, 249, 241, 245, 248, 241, 245, 248, 241, 245, 248, 242, 245, 250, 242, 245, 250, 243, 246, 251, 242, 245, 250, 241, 244, 249, 240, 243, 248, 238, 241, 246, 237, 240, 245, 237, 240, 245, 237, 240, 245, 235, 238, 243, 233, 236, 241, 228, 231, 236, 222, 225, 230, 217, 220, 225, 216, 217, 221, 211, 211, 211, 209, 208, 206, 207, 203, 202, 201, 197, 196, 197, 193, 190, 194, 190, 187, 193, 188, 185, 193, 188, 185, 188, 180, 177, 188, 180, 177, 189, 180, 175, 189, 180, 175, 189, 180, 173, 188, 179, 172, 189, 178, 172, 189, 178, 174, 179, 168, 166, 181, 169, 169, 181, 171, 170, 180, 170, 169, 178, 168, 167, 174, 166, 164, 172, 164, 162, 170, 165, 162, 168, 163, 160, 164, 160, 157, 162, 158, 155, 161, 160, 156, 166, 165, 161, 172, 173, 168, 178, 177, 173, 180, 181, 176, 217, 222, 215, 203, 210, 202, 179, 184, 177, 152, 157, 150, 140, 145, 138, 155, 160, 153, 190, 193, 186, 218, 221, 214, 221, 222, 216, 214, 215, 209, 198, 199, 193, 175, 174, 169, 152, 151, 146, 145, 144, 139, 153, 152, 147, 164, 163, 158, 165, 161, 158, 166, 165, 161, 172, 168, 165, 176, 172, 169, 184, 180, 177, 192, 188, 185, 192, 188, 185, 186, 182, 179, 188, 184, 181, 186, 182, 179, 185, 181, 178, 186, 182, 179, 190, 186, 183, 192, 188, 185, 194, 189, 186, 192, 188, 185, 191, 190, 188, 196, 195, 193, 204, 203, 201, 210, 209, 207, 213, 213, 211, 217, 217, 215, 221, 221, 219, 223, 223, 221, 228, 228, 228, 230, 230, 230, 231, 233, 232, 231, 233, 232, 229, 231, 230, 229, 231, 230, 231, 232, 234, 233, 234, 236, 238, 240, 239, 240, 242, 241, 241, 243, 242, 240, 242, 241, 238, 240, 239, 237, 239, 238, 239, 241, 240, 240, 242, 241, 241, 243, 242, 241, 243, 242, 241, 243, 242, 242, 244, 243, 242, 244, 243, 243, 245, 244, 243, 245, 244, 243, 245, 244, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247, 247, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 245, 245, 245, 244, 244, 244, 244, 244, 244, 244, 244, 244, 245, 245, 245, 246, 246, 246, 247, 247, 247, 246, 246, 246, 246, 246, 246, 246, 246, 246, 247, 247, 247, 248, 248, 248, 249, 249, 249, 249, 249, 249, 249, 249, 249, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 248, 248, 248, 247, 247, 247, 246, 246, 246, 246, 246, 246, 245, 245, 245, 245, 245, 245, 245, 244, 242, 245, 244, 242, 245, 244, 242, 245, 244, 242, 245, 244, 242, 245, 244, 242, 245, 244, 242, 245, 244, 242, 246, 245, 243, 245, 244, 242, 243, 242, 240, 242, 241, 239, 242, 241, 239, 242, 241, 239, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 240, 236, 235, 243, 239, 238, 245, 241, 240, 245, 241, 240, 243, 237, 237, 241, 235, 235, 240, 234, 234, 240, 234, 234, 238, 233, 230, 238, 230, 228, 236, 226, 227, 235, 223, 225, 234, 222, 224, 235, 223, 225, 236, 226, 227, 237, 227, 226, 245, 233, 233, 228, 214, 213, 228, 207, 206, 237, 205, 206, 236, 194, 196, 237, 185, 189, 237, 174, 182, 227, 160, 169, 219, 151, 162, 231, 170, 178, 239, 194, 199, 240, 208, 209, 232, 214, 214, 226, 215, 213, 229, 217, 217, 235, 221, 221, 235, 216, 220, 237, 216, 221, 238, 217, 222, 235, 216, 220, 230, 214, 217, 229, 214, 217, 229, 217, 217, 230, 220, 219, 221, 211, 212, 223, 214, 215, 227, 218, 219, 230, 221, 222, 232, 223, 224, 235, 226, 227, 240, 231, 232, 243, 234, 235, 234, 225, 226, 233, 224, 225, 232, 223, 224, 232, 223, 224, 233, 224, 225, 236, 227, 228, 239, 230, 231, 241, 232, 233, 235, 229, 229, 234, 230, 229, 234, 230, 229, 234, 230, 229, 234, 230, 229, 234, 230, 229, 234, 230, 229, 234, 230, 229, 231, 227, 226, 231, 227, 226, 232, 228, 227, 233, 229, 228, 234, 230, 229, 235, 231, 230, 236, 232, 231, 236, 232, 231, 235, 234, 232, 235, 234, 232, 235, 234, 232, 235, 234, 232, 235, 234, 232, 235, 234, 232, 235, 234, 232, 235, 234, 232, 235, 234, 232, 235, 234, 232, 235, 234, 232, 235, 234, 232, 236, 235, 233, 236, 235, 233, 237, 236, 234, 237, 236, 234, 236, 236, 234, 236, 236, 234, 236, 236, 234, 236, 236, 234, 236, 236, 234, 236, 236, 234, 236, 236, 234, 236, 236, 234, 235, 235, 233, 235, 235, 233, 234, 234, 232, 233, 233, 231, 234, 234, 232, 235, 235, 233, 236, 236, 234, 237, 237, 235, 233, 232, 230, 235, 234, 232, 237, 236, 234, 238, 237, 235, 237, 236, 234, 234, 233, 231, 231, 230, 228, 229, 228, 226, 227, 226, 224, 228, 227, 225, 228, 227, 225, 229, 228, 226, 229, 228, 226, 230, 229, 227, 230, 229, 227, 230, 229, 227, 232, 231, 229, 231, 230, 228, 229, 228, 226, 228, 227, 225, 228, 227, 223, 229, 228, 224, 231, 230, 226, 232, 231, 227, 228, 224, 221, 229, 225, 222, 229, 226, 221, 230, 227, 222, 231, 226, 222, 230, 225, 221, 230, 225, 221, 229, 224, 220, 231, 227, 224, 235, 231, 228, 241, 237, 234, 244, 240, 237, 243, 239, 236, 239, 235, 232, 235, 231, 228, 232, 228, 225, 225, 221, 218, 228, 224, 221, 232, 229, 224, 236, 233, 228, 237, 234, 229, 235, 232, 227, 232, 229, 224, 231, 226, 220, 230, 223, 215, 230, 221, 212, 229, 220, 211, 228, 219, 210, 228, 219, 210, 228, 219, 210, 229, 220, 211, 229, 220, 211, 232, 223, 216, 232, 223, 216, 231, 222, 215, 230, 221, 214, 229, 220, 213, 228, 221, 213, 228, 221, 213, 228, 221, 213, 224, 217, 207, 231, 224, 214, 241, 234, 226, 249, 242, 234, 248, 244, 235, 243, 239, 230, 235, 231, 222, 229, 225, 216, 229, 224, 218, 229, 224, 218, 228, 225, 218, 228, 225, 218, 228, 225, 218, 228, 225, 218, 228, 225, 218, 228, 225, 218, 227, 226, 221, 227, 226, 221, 227, 226, 221, 227, 226, 221, 228, 227, 222, 228, 227, 222, 229, 228, 223, 229, 228, 223, 229, 228, 223, 229, 228, 223, 229, 228, 223, 230, 229, 224, 230, 229, 224, 230, 229, 224, 231, 230, 225, 231, 230, 225, 231, 230, 225, 231, 230, 225, 232, 231, 226, 232, 231, 226, 233, 232, 227, 233, 232, 227, 233, 232, 227, 233, 232, 227, 234, 233, 228, 234, 233, 228, 234, 233, 228, 235, 234, 229, 235, 234, 229, 235, 234, 229, 236, 235, 230, 236, 235, 230, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 239, 238, 237, 239, 238, 236, 238, 237, 236, 238, 237, 235, 237, 236, 235, 237, 236, 235, 237, 236, 235, 237, 236, 234, 236, 235, 234, 236, 235, 233, 235, 234, 233, 235, 234, 233, 235, 234, 232, 234, 233, 232, 234, 233, 232, 234, 233, 231, 232, 234, 230, 231, 233, 230, 231, 233, 229, 230, 232, 227, 228, 230, 224, 225, 227, 222, 223, 225, 220, 221, 223, 219, 220, 222, 216, 217, 219, 212, 213, 215, 210, 211, 213, 209, 210, 212, 207, 208, 210, 204, 205, 207, 201, 202, 204, 200, 202, 201, 197, 199, 198, 192, 194, 193, 188, 190, 189, 186, 186, 186, 186, 186, 186, 186, 186, 186, 187, 187, 187, 183, 183, 183, 181, 181, 181, 178, 176, 177, 173, 171, 172, 170, 168, 169, 168, 166, 167, 168, 166, 167, 168, 166, 167, 169, 165, 166, 169, 165, 166, 169, 165, 164, 169, 165, 164, 169, 165, 164, 170, 166, 165, 171, 165, 165, 171, 165, 165, 168, 163, 160, 166, 161, 158, 164, 159, 156, 162, 157, 154, 162, 154, 152, 161, 153, 151, 160, 152, 149, 160, 152, 149, 161, 153, 150, 161, 153, 150, 160, 152, 149, 160, 152, 149, 159, 151, 148, 158, 150, 147, 158, 150, 147, 158, 150, 147, 157, 149, 147, 159, 151, 149, 162, 154, 152, 163, 155, 153, 162, 154, 152, 163, 155, 153, 166, 158, 156, 168, 160, 158, 169, 164, 161, 173, 168, 165, 178, 173, 170, 181, 177, 174, 185, 181, 180, 187, 186, 184, 192, 190, 191, 195, 195, 197, 200, 199, 204, 203, 204, 208, 206, 209, 214, 210, 213, 218, 213, 216, 223, 215, 220, 226, 218, 223, 229, 221, 226, 232, 224, 231, 237, 225, 232, 238, 229, 234, 240, 231, 236, 242, 233, 238, 244, 235, 240, 246, 236, 241, 245, 237, 242, 246, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 242, 246, 249, 243, 247, 250, 245, 246, 250, 246, 247, 251, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 242, 246, 249, 241, 245, 248, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 240, 243, 248, 238, 241, 246, 236, 239, 244, 235, 238, 243, 237, 240, 245, 236, 239, 244, 235, 238, 243, 231, 234, 239, 226, 229, 234, 220, 223, 228, 214, 217, 222, 213, 214, 218, 208, 208, 208, 207, 206, 204, 206, 202, 201, 203, 199, 198, 199, 195, 194, 197, 193, 190, 196, 191, 188, 195, 190, 187, 189, 181, 178, 191, 183, 180, 194, 184, 182, 194, 185, 180, 192, 183, 178, 187, 178, 171, 183, 172, 166, 179, 168, 164, 181, 170, 168, 180, 170, 169, 178, 168, 167, 175, 165, 164, 171, 163, 161, 172, 164, 162, 173, 168, 165, 177, 172, 169, 176, 172, 169, 159, 155, 152, 143, 142, 138, 151, 150, 146, 177, 178, 173, 201, 202, 197, 210, 211, 206, 207, 209, 204, 158, 163, 156, 149, 154, 147, 152, 155, 148, 176, 179, 172, 209, 212, 205, 222, 225, 218, 209, 210, 204, 188, 189, 183, 168, 167, 162, 158, 157, 152, 152, 149, 144, 153, 150, 145, 163, 158, 154, 170, 165, 161, 169, 164, 160, 165, 160, 156, 175, 171, 168, 177, 173, 170, 178, 174, 171, 180, 176, 173, 187, 183, 180, 193, 189, 186, 190, 186, 183, 184, 180, 177, 184, 180, 177, 193, 189, 186, 200, 196, 193, 197, 193, 190, 189, 185, 182, 186, 182, 179, 194, 189, 186, 201, 197, 194, 200, 199, 197, 205, 204, 202, 211, 210, 208, 213, 212, 210, 211, 211, 209, 207, 207, 205, 204, 204, 202, 203, 203, 201, 206, 206, 206, 211, 211, 211, 217, 219, 218, 222, 224, 223, 226, 228, 227, 229, 231, 230, 233, 234, 236, 236, 237, 239, 236, 238, 237, 238, 240, 239, 239, 241, 240, 239, 241, 240, 237, 239, 238, 236, 238, 237, 238, 240, 239, 240, 242, 241, 241, 243, 242, 241, 243, 242, 242, 244, 243, 242, 244, 243, 242, 244, 243, 243, 245, 244, 243, 245, 244, 243, 245, 244, 244, 244, 244, 244, 244, 244, 245, 245, 245, 245, 245, 245, 245, 245, 245, 246, 246, 246, 246, 246, 246, 246, 246, 246, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 247, 247, 247, 246, 246, 246, 245, 245, 245, 244, 244, 244, 244, 244, 244, 244, 244, 244, 245, 245, 245, 246, 246, 246, 246, 246, 246, 246, 246, 246, 247, 247, 247, 248, 248, 248, 249, 249, 249, 250, 250, 250, 250, 250, 250, 250, 250, 250, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 249, 249, 249, 249, 249, 249, 248, 248, 248, 247, 247, 247, 247, 247, 247, 246, 246, 246, 245, 245, 245, 245, 245, 245, 245, 244, 242, 245, 244, 242, 245, 244, 242, 245, 244, 242, 245, 244, 242, 245, 244, 242, 245, 244, 242, 245, 244, 242, 246, 245, 243, 245, 244, 242, 244, 243, 241, 243, 242, 240, 242, 241, 239, 243, 242, 240, 243, 242, 240, 244, 243, 241, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 238, 234, 233, 243, 239, 238, 247, 243, 242, 247, 243, 242, 243, 237, 237, 239, 233, 233, 239, 233, 233, 241, 235, 235, 234, 229, 226, 234, 229, 226, 236, 227, 228, 237, 227, 228, 237, 227, 228, 235, 226, 227, 234, 225, 226, 232, 226, 226, 247, 242, 239, 228, 218, 217, 227, 211, 211, 234, 210, 210, 233, 197, 199, 236, 190, 193, 237, 182, 188, 226, 165, 173, 215, 149, 159, 229, 168, 176, 239, 194, 199, 241, 211, 211, 234, 216, 216, 227, 217, 215, 231, 219, 219, 237, 223, 223, 235, 216, 220, 238, 215, 221, 239, 216, 222, 236, 215, 220, 232, 216, 219, 231, 216, 219, 231, 219, 219, 233, 223, 222, 236, 227, 228, 234, 228, 228, 235, 226, 227, 230, 224, 224, 229, 220, 221, 226, 220, 220, 229, 220, 221, 229, 223, 223, 239, 230, 231, 235, 229, 229, 233, 224, 225, 229, 223, 223, 230, 221, 222, 230, 224, 224, 235, 226, 227, 235, 229, 229, 233, 229, 228, 233, 229, 228, 233, 229, 228, 233, 229, 228, 233, 229, 228, 233, 229, 228, 233, 229, 228, 233, 229, 228, 231, 227, 226, 231, 227, 226, 232, 228, 227, 233, 229, 228, 234, 230, 229, 236, 232, 231, 237, 233, 232, 237, 233, 232, 235, 234, 232, 235, 234, 232, 235, 234, 232, 235, 234, 232, 235, 234, 232, 235, 234, 232, 235, 234, 232, 235, 234, 232, 236, 235, 233, 236, 235, 233, 236, 235, 233, 237, 236, 234, 237, 236, 234, 237, 236, 234, 238, 237, 235, 238, 237, 235, 235, 235, 233, 235, 235, 233, 235, 235, 233, 235, 235, 233, 235, 235, 233, 235, 235, 233, 235, 235, 233, 235, 235, 233, 238, 238, 236, 237, 237, 235, 235, 235, 233, 234, 234, 232, 233, 233, 231, 232, 232, 230, 232, 232, 230, 233, 233, 231, 231, 230, 228, 233, 232, 230, 236, 235, 233, 238, 237, 235, 237, 236, 234, 235, 234, 232, 232, 231, 229, 229, 228, 226, 229, 228, 226, 229, 228, 226, 230, 229, 227, 231, 230, 228, 232, 231, 229, 232, 231, 229, 233, 232, 230, 233, 232, 230, 237, 236, 234, 234, 233, 231, 230, 229, 227, 227, 226, 224, 226, 225, 221, 227, 226, 222, 229, 228, 224, 231, 230, 226, 236, 232, 229, 234, 230, 227, 231, 228, 223, 228, 225, 220, 228, 223, 219, 229, 224, 220, 231, 226, 222, 233, 228, 224, 227, 223, 220, 225, 221, 218, 225, 221, 218, 231, 227, 224, 241, 237, 234, 247, 243, 240, 247, 243, 240, 244, 240, 237, 231, 227, 224, 228, 224, 221, 224, 221, 216, 223, 220, 215, 225, 222, 217, 231, 228, 223, 238, 235, 230, 244, 239, 233, 235, 228, 220, 235, 226, 217, 233, 224, 215, 231, 222, 213, 230, 221, 212, 229, 220, 211, 229, 220, 211, 229, 220, 211, 225, 216, 209, 227, 218, 211, 230, 221, 214, 233, 224, 217, 234, 225, 218, 233, 224, 217, 230, 223, 215, 229, 222, 214, 232, 225, 215, 229, 222, 212, 226, 219, 211, 225, 218, 210, 227, 223, 214, 235, 231, 222, 244, 240, 231, 250, 246, 237, 230, 225, 219, 230, 225, 219, 229, 226, 219, 229, 226, 219, 229, 226, 219, 229, 226, 219, 229, 226, 219, 229, 226, 219, 227, 226, 221, 227, 226, 221, 227, 226, 221, 228, 227, 222, 228, 227, 222, 229, 228, 223, 229, 228, 223, 229, 228, 223, 229, 228, 223, 229, 228, 223, 229, 228, 223, 230, 229, 224, 230, 229, 224, 231, 230, 225, 231, 230, 225, 231, 230, 225, 231, 230, 225, 232, 231, 226, 232, 231, 226, 232, 231, 226, 233, 232, 227, 233, 232, 227, 233, 232, 227, 234, 233, 228, 234, 233, 228, 234, 233, 228, 234, 233, 228, 235, 234, 229, 235, 234, 229, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 239, 238, 237, 239, 238, 237, 239, 238, 236, 238, 237, 236, 238, 237, 235, 237, 236, 235, 237, 236, 235, 237, 236, 234, 236, 235, 234, 236, 235, 234, 236, 235, 233, 235, 234, 233, 235, 234, 233, 235, 234, 232, 234, 233, 232, 234, 233, 231, 232, 234, 231, 232, 234, 230, 231, 233, 229, 230, 232, 227, 228, 230, 224, 225, 227, 222, 223, 225, 220, 221, 223, 220, 221, 223, 217, 218, 220, 213, 214, 216, 211, 212, 214, 210, 211, 213, 208, 209, 211, 205, 206, 208, 202, 203, 205, 201, 203, 202, 197, 199, 198, 190, 192, 191, 184, 186, 185, 182, 182, 182, 183, 183, 183, 185, 185, 185, 187, 187, 187, 186, 186, 186, 183, 183, 183, 180, 178, 179, 176, 174, 175, 172, 170, 171, 171, 169, 170, 170, 168, 169, 171, 169, 170, 168, 164, 165, 168, 164, 165, 169, 165, 164, 169, 165, 164, 170, 166, 165, 170, 166, 165, 171, 165, 165, 172, 166, 166, 169, 164, 161, 167, 162, 159, 165, 160, 157, 162, 157, 154, 162, 154, 152, 161, 153, 151, 160, 152, 149, 160, 152, 149, 161, 153, 150, 160, 152, 149, 160, 152, 149, 159, 151, 148, 158, 150, 147, 157, 149, 146, 156, 148, 145, 156, 148, 145, 153, 145, 143, 156, 148, 146, 159, 151, 149, 160, 152, 150, 160, 152, 150, 162, 154, 152, 165, 157, 155, 167, 159, 157, 167, 162, 159, 170, 165, 162, 176, 171, 168, 180, 175, 172, 183, 177, 177, 187, 183, 182, 192, 188, 189, 194, 192, 193, 198, 198, 200, 202, 201, 206, 206, 207, 212, 208, 211, 216, 211, 214, 221, 214, 217, 224, 217, 222, 228, 220, 225, 231, 224, 231, 237, 225, 232, 238, 228, 233, 239, 230, 235, 241, 232, 237, 243, 234, 239, 245, 236, 241, 245, 236, 241, 245, 239, 242, 247, 240, 243, 248, 240, 243, 248, 241, 244, 249, 242, 246, 249, 243, 247, 250, 245, 246, 250, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 236, 239, 244, 235, 238, 243, 234, 237, 242, 231, 234, 239, 228, 231, 236, 224, 227, 232, 221, 224, 229, 221, 222, 226, 217, 217, 219, 216, 214, 215, 213, 211, 212, 208, 207, 205, 203, 202, 200, 198, 197, 195, 197, 193, 190, 195, 191, 188, 194, 189, 186, 192, 187, 183, 192, 184, 181, 191, 184, 178, 189, 182, 176, 185, 178, 172, 181, 172, 167, 176, 167, 162, 177, 167, 165, 176, 168, 166, 178, 170, 168, 180, 172, 170, 180, 172, 170, 177, 169, 167, 170, 165, 162, 165, 160, 157, 154, 150, 147, 166, 162, 159, 187, 186, 182, 210, 209, 205, 219, 218, 214, 203, 202, 198, 169, 170, 165, 143, 144, 139, 173, 176, 169, 194, 197, 190, 216, 217, 211, 216, 217, 211, 196, 195, 190, 170, 169, 164, 155, 154, 149, 151, 150, 145, 169, 166, 161, 164, 161, 156, 161, 156, 152, 164, 159, 155, 173, 165, 162, 178, 170, 167, 177, 169, 166, 175, 167, 164, 178, 173, 170, 180, 175, 172, 183, 178, 175, 186, 181, 178, 186, 181, 178, 183, 178, 175, 180, 175, 172, 177, 172, 169, 186, 181, 178, 183, 178, 175, 180, 175, 172, 181, 176, 173, 187, 182, 179, 193, 188, 185, 196, 192, 189, 199, 195, 192, 194, 193, 189, 197, 196, 192, 202, 201, 197, 204, 203, 199, 205, 204, 202, 206, 205, 203, 208, 208, 206, 210, 210, 208, 212, 212, 210, 216, 216, 214, 221, 221, 221, 225, 225, 225, 226, 228, 227, 228, 230, 229, 231, 233, 232, 233, 235, 234, 231, 233, 232, 233, 235, 234, 235, 237, 236, 238, 240, 239, 238, 240, 239, 237, 239, 238, 236, 238, 237, 235, 237, 236, 237, 239, 238, 239, 241, 240, 242, 244, 243, 245, 247, 246, 246, 248, 247, 244, 246, 245, 242, 244, 243, 241, 243, 242, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 245, 245, 245, 245, 245, 245, 246, 246, 246, 246, 246, 246, 245, 245, 245, 246, 246, 246, 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247, 247, 247, 247, 247, 248, 248, 248, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 249, 249, 249, 249, 249, 249, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 247, 247, 247, 247, 247, 247, 246, 246, 246, 246, 246, 246, 248, 247, 245, 248, 247, 245, 247, 246, 244, 246, 245, 243, 246, 245, 243, 245, 244, 242, 244, 243, 241, 244, 243, 241, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 243, 239, 238, 243, 239, 238, 244, 240, 239, 244, 240, 239, 242, 238, 237, 245, 241, 240, 245, 239, 239, 239, 233, 233, 237, 231, 231, 238, 232, 232, 236, 230, 230, 232, 226, 226, 233, 228, 225, 235, 230, 227, 239, 230, 231, 238, 229, 230, 235, 226, 227, 234, 225, 226, 233, 227, 227, 233, 229, 228, 231, 227, 226, 227, 222, 219, 223, 212, 210, 226, 206, 205, 237, 207, 209, 245, 204, 208, 242, 193, 199, 233, 178, 184, 217, 154, 163, 227, 167, 175, 240, 198, 202, 243, 215, 214, 227, 211, 211, 222, 214, 211, 231, 221, 220, 233, 221, 221, 237, 221, 224, 233, 212, 217, 235, 214, 219, 235, 216, 220, 228, 213, 216, 232, 220, 222, 240, 230, 229, 236, 228, 226, 230, 224, 224, 229, 225, 224, 230, 224, 224, 229, 225, 224, 230, 224, 224, 229, 225, 224, 230, 224, 224, 229, 225, 224, 230, 224, 224, 232, 228, 227, 235, 229, 229, 233, 229, 228, 229, 223, 223, 227, 223, 222, 230, 224, 224, 232, 228, 227, 235, 231, 230, 237, 233, 232, 239, 235, 234, 239, 235, 234, 237, 233, 232, 233, 229, 228, 228, 224, 223, 225, 221, 220, 234, 230, 229, 234, 230, 229, 234, 230, 229, 234, 230, 229, 234, 230, 229, 234, 230, 229, 234, 230, 229, 234, 230, 229, 233, 232, 230, 234, 233, 231, 235, 234, 232, 236, 235, 233, 236, 235, 233, 236, 235, 233, 235, 234, 232, 235, 234, 232, 236, 235, 233, 236, 235, 233, 236, 235, 233, 236, 235, 233, 236, 235, 233, 236, 235, 233, 236, 235, 233, 236, 235, 233, 236, 235, 233, 236, 235, 233, 236, 235, 233, 235, 234, 232, 235, 234, 232, 234, 233, 231, 234, 233, 231, 234, 233, 231, 233, 232, 230, 233, 232, 230, 233, 232, 230, 233, 232, 230, 233, 232, 230, 233, 232, 230, 233, 232, 230, 233, 232, 230, 231, 230, 228, 230, 229, 227, 230, 229, 227, 230, 229, 227, 231, 230, 228, 233, 232, 230, 234, 233, 231, 235, 234, 232, 221, 220, 218, 224, 223, 221, 228, 227, 225, 231, 230, 228, 232, 231, 229, 231, 230, 228, 230, 229, 227, 230, 229, 227, 240, 239, 235, 237, 236, 232, 232, 231, 227, 229, 228, 224, 230, 226, 223, 231, 227, 224, 232, 229, 224, 233, 230, 225, 231, 228, 223, 232, 229, 224, 233, 228, 224, 233, 228, 224, 232, 227, 221, 230, 225, 219, 228, 223, 217, 227, 222, 216, 227, 224, 219, 227, 224, 219, 228, 225, 220, 229, 226, 221, 232, 229, 224, 234, 231, 226, 237, 234, 229, 238, 235, 230, 253, 250, 245, 247, 244, 239, 238, 235, 230, 229, 226, 221, 224, 220, 217, 224, 220, 217, 226, 222, 219, 230, 225, 221, 243, 236, 230, 244, 237, 229, 243, 234, 227, 235, 226, 219, 227, 218, 211, 223, 214, 207, 225, 216, 209, 229, 220, 213, 229, 220, 211, 230, 221, 212, 230, 221, 212, 230, 221, 212, 231, 222, 213, 231, 222, 213, 231, 222, 213, 231, 224, 214, 230, 223, 215, 228, 224, 215, 229, 225, 216, 229, 225, 216, 229, 225, 216, 230, 226, 217, 229, 226, 219, 229, 226, 219, 247, 244, 237, 242, 239, 232, 234, 231, 224, 228, 225, 218, 224, 223, 218, 225, 224, 219, 229, 228, 223, 232, 231, 226, 235, 234, 229, 233, 232, 227, 229, 228, 223, 226, 225, 220, 225, 224, 219, 226, 225, 220, 228, 227, 222, 230, 229, 224, 230, 229, 224, 230, 229, 224, 231, 230, 225, 231, 230, 225, 231, 230, 225, 232, 231, 226, 232, 231, 226, 232, 231, 226, 232, 231, 227, 232, 231, 227, 232, 231, 227, 233, 232, 228, 233, 232, 228, 234, 233, 229, 234, 233, 229, 234, 233, 229, 234, 233, 229, 234, 233, 229, 234, 233, 229, 235, 234, 230, 235, 234, 230, 235, 234, 230, 236, 235, 231, 236, 235, 231, 235, 234, 230, 235, 234, 230, 236, 235, 231, 236, 235, 231, 236, 235, 231, 237, 236, 232, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 236, 238, 237, 236, 238, 237, 236, 238, 237, 236, 238, 237, 235, 237, 236, 235, 237, 236, 234, 236, 235, 234, 236, 235, 234, 236, 235, 234, 236, 235, 233, 235, 234, 233, 235, 234, 233, 235, 234, 232, 234, 233, 232, 234, 233, 232, 234, 233, 233, 234, 236, 232, 233, 235, 231, 232, 234, 229, 230, 232, 227, 228, 230, 225, 226, 228, 223, 224, 226, 222, 223, 225, 217, 218, 220, 216, 217, 219, 214, 215, 217, 212, 213, 215, 209, 210, 212, 207, 208, 210, 205, 206, 208, 204, 205, 207, 196, 197, 199, 195, 196, 198, 193, 194, 196, 190, 191, 193, 188, 189, 191, 187, 188, 190, 187, 187, 189, 187, 187, 189, 185, 185, 187, 184, 184, 186, 182, 182, 184, 180, 180, 182, 178, 176, 179, 176, 174, 177, 174, 172, 175, 173, 171, 174, 171, 169, 170, 170, 168, 169, 169, 167, 168, 167, 165, 166, 169, 165, 166, 169, 165, 166, 169, 165, 164, 169, 165, 164, 163, 159, 158, 163, 159, 158, 164, 159, 156, 163, 158, 155, 163, 158, 155, 162, 157, 154, 162, 157, 154, 162, 157, 154, 161, 153, 151, 159, 151, 149, 156, 148, 146, 153, 145, 143, 151, 143, 141, 151, 143, 141, 152, 144, 142, 153, 145, 143, 150, 142, 139, 152, 144, 141, 154, 146, 143, 156, 148, 145, 157, 149, 146, 159, 151, 148, 164, 156, 153, 168, 160, 157, 168, 160, 157, 171, 163, 160, 175, 167, 165, 177, 172, 169, 181, 176, 173, 183, 179, 178, 185, 181, 182, 184, 182, 183, 192, 192, 194, 196, 196, 198, 202, 203, 207, 207, 208, 212, 208, 211, 216, 211, 214, 219, 215, 218, 223, 217, 222, 226, 220, 227, 233, 222, 229, 235, 226, 231, 237, 229, 234, 240, 232, 237, 243, 233, 238, 244, 234, 239, 243, 235, 240, 244, 238, 241, 246, 239, 242, 247, 240, 243, 248, 242, 245, 250, 242, 246, 249, 242, 246, 249, 244, 245, 249, 244, 245, 249, 244, 245, 249, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 250, 254, 249, 250, 254, 250, 251, 255, 250, 251, 255, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 238, 241, 246, 238, 241, 246, 237, 240, 245, 234, 237, 242, 231, 234, 239, 228, 231, 236, 225, 228, 233, 225, 226, 230, 220, 220, 222, 218, 218, 218, 216, 214, 215, 211, 209, 210, 206, 204, 205, 202, 201, 199, 200, 196, 195, 198, 194, 191, 198, 193, 190, 194, 189, 186, 189, 184, 181, 188, 180, 177, 188, 180, 177, 189, 182, 176, 188, 181, 175, 187, 179, 176, 184, 176, 173, 180, 172, 170, 174, 166, 164, 171, 163, 161, 171, 163, 161, 172, 164, 162, 171, 166, 163, 170, 165, 162, 212, 208, 205, 210, 206, 203, 199, 195, 192, 179, 178, 174, 168, 164, 161, 172, 171, 167, 198, 197, 193, 221, 220, 215, 210, 209, 204, 196, 195, 190, 176, 173, 168, 153, 150, 145, 143, 138, 134, 148, 143, 139, 165, 160, 156, 180, 175, 171, 161, 153, 150, 165, 157, 154, 171, 163, 160, 176, 166, 164, 177, 167, 165, 176, 166, 164, 176, 166, 164, 176, 166, 164, 177, 169, 167, 175, 170, 167, 178, 170, 168, 176, 171, 168, 176, 171, 168, 175, 170, 167, 175, 170, 167, 174, 169, 166, 184, 179, 176, 184, 179, 176, 184, 179, 176, 187, 182, 179, 192, 187, 184, 196, 191, 188, 198, 194, 191, 198, 194, 191, 193, 192, 188, 196, 195, 191, 201, 200, 196, 203, 202, 198, 204, 203, 201, 205, 204, 202, 207, 207, 205, 209, 209, 207, 212, 212, 210, 216, 216, 214, 220, 220, 220, 223, 223, 223, 224, 226, 225, 225, 227, 226, 228, 230, 229, 231, 233, 232, 229, 231, 230, 231, 233, 232, 234, 236, 235, 236, 238, 237, 238, 240, 239, 238, 240, 239, 237, 239, 238, 237, 239, 238, 239, 241, 240, 239, 241, 240, 240, 242, 241, 240, 242, 241, 241, 243, 242, 243, 245, 244, 244, 246, 245, 245, 247, 246, 244, 244, 244, 244, 244, 244, 244, 244, 244, 245, 245, 245, 245, 245, 245, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 249, 249, 249, 249, 249, 249, 248, 248, 248, 248, 248, 248, 247, 247, 247, 247, 247, 247, 247, 247, 247, 246, 246, 246, 246, 246, 246, 246, 246, 246, 247, 246, 244, 247, 246, 244, 246, 245, 243, 245, 244, 242, 245, 244, 242, 244, 243, 241, 243, 242, 240, 243, 242, 240, 242, 241, 239, 242, 241, 239, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 239, 238, 236, 238, 237, 235, 238, 237, 235, 238, 237, 235, 239, 235, 234, 239, 235, 234, 239, 235, 234, 238, 234, 233, 240, 236, 235, 243, 239, 238, 242, 236, 236, 236, 230, 230, 235, 229, 229, 237, 231, 231, 237, 231, 231, 234, 228, 228, 235, 230, 227, 234, 229, 226, 234, 225, 226, 233, 224, 225, 233, 224, 225, 233, 224, 225, 232, 226, 226, 231, 227, 226, 229, 225, 224, 227, 223, 222, 224, 216, 214, 225, 209, 209, 232, 207, 210, 239, 204, 208, 236, 195, 201, 232, 183, 189, 218, 158, 166, 224, 167, 174, 234, 193, 197, 238, 210, 209, 222, 208, 207, 218, 210, 207, 227, 219, 217, 229, 219, 218, 232, 217, 220, 227, 211, 214, 230, 214, 217, 233, 217, 220, 226, 214, 216, 230, 220, 221, 236, 228, 226, 230, 225, 222, 229, 225, 224, 229, 225, 224, 229, 225, 224, 229, 225, 224, 229, 225, 224, 230, 226, 225, 230, 226, 225, 230, 226, 225, 228, 224, 223, 231, 227, 226, 233, 229, 228, 231, 227, 226, 227, 223, 222, 226, 222, 221, 228, 224, 223, 231, 227, 226, 233, 229, 228, 234, 230, 229, 236, 232, 231, 237, 233, 232, 236, 232, 231, 234, 230, 229, 232, 228, 227, 231, 227, 226, 234, 230, 229, 234, 230, 229, 234, 230, 229, 234, 230, 229, 234, 230, 229, 234, 230, 229, 234, 230, 229, 234, 230, 229, 232, 231, 229, 233, 232, 230, 234, 233, 231, 235, 234, 232, 236, 235, 233, 235, 234, 232, 235, 234, 232, 234, 233, 231, 235, 234, 232, 235, 234, 232, 235, 234, 232, 235, 234, 232, 235, 234, 232, 235, 234, 232, 235, 234, 232, 235, 234, 232, 235, 234, 232, 235, 234, 232, 235, 234, 232, 234, 233, 231, 234, 233, 231, 234, 233, 231, 233, 232, 230, 233, 232, 230, 233, 232, 230, 233, 232, 230, 233, 232, 230, 233, 232, 230, 233, 232, 230, 233, 232, 230, 233, 232, 230, 233, 232, 230, 231, 230, 228, 232, 231, 229, 232, 231, 229, 231, 230, 228, 230, 229, 227, 231, 230, 228, 233, 232, 230, 235, 234, 232, 232, 231, 229, 229, 228, 226, 226, 225, 223, 226, 225, 223, 230, 229, 227, 232, 231, 229, 232, 231, 229, 230, 229, 227, 231, 230, 226, 238, 237, 233, 242, 241, 237, 239, 238, 234, 232, 228, 225, 226, 222, 219, 228, 225, 220, 233, 230, 225, 231, 228, 223, 232, 229, 224, 233, 228, 224, 233, 228, 224, 233, 228, 222, 232, 227, 221, 231, 226, 220, 230, 225, 219, 227, 222, 216, 226, 223, 216, 226, 223, 218, 227, 224, 217, 229, 226, 221, 231, 228, 223, 233, 230, 225, 234, 231, 226, 241, 238, 233, 244, 241, 236, 246, 243, 238, 246, 243, 238, 242, 238, 235, 233, 229, 226, 224, 220, 217, 219, 214, 210, 225, 220, 214, 232, 225, 217, 238, 231, 223, 241, 232, 225, 238, 229, 222, 232, 223, 216, 227, 218, 211, 224, 215, 208, 230, 221, 212, 230, 221, 212, 230, 221, 212, 230, 221, 212, 230, 221, 212, 231, 222, 213, 231, 222, 213, 230, 223, 213, 230, 223, 215, 228, 224, 215, 229, 225, 216, 229, 225, 216, 229, 225, 216, 230, 226, 217, 229, 226, 219, 229, 226, 219, 232, 229, 222, 234, 231, 224, 237, 234, 227, 240, 237, 230, 237, 236, 231, 234, 233, 228, 230, 229, 224, 227, 226, 221, 226, 225, 220, 228, 227, 222, 231, 230, 225, 233, 232, 227, 233, 232, 227, 231, 230, 225, 228, 227, 222, 226, 225, 220, 230, 229, 224, 230, 229, 224, 231, 230, 225, 231, 230, 225, 231, 230, 225, 232, 231, 226, 232, 231, 226, 232, 231, 226, 232, 231, 227, 232, 231, 227, 233, 232, 228, 233, 232, 228, 233, 232, 228, 234, 233, 229, 234, 233, 229, 234, 233, 229, 234, 233, 229, 234, 233, 229, 234, 233, 229, 235, 234, 230, 235, 234, 230, 236, 235, 231, 236, 235, 231, 236, 235, 231, 235, 234, 230, 235, 234, 230, 236, 235, 231, 236, 235, 231, 236, 235, 231, 237, 236, 232, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 237, 239, 238, 236, 238, 237, 236, 238, 237, 236, 238, 237, 235, 237, 236, 235, 237, 236, 235, 237, 236, 234, 236, 235, 234, 236, 235, 234, 236, 235, 234, 236, 235, 233, 235, 234, 233, 235, 234, 232, 234, 233, 232, 234, 233, 232, 234, 233, 233, 234, 236, 232, 233, 235, 231, 232, 234, 229, 230, 232, 227, 228, 230, 225, 226, 228, 224, 225, 227, 223, 224, 226, 218, 219, 221, 218, 219, 221, 216, 217, 219, 213, 214, 216, 211, 212, 214, 209, 210, 212, 207, 208, 210, 206, 207, 209, 200, 201, 203, 199, 200, 202, 196, 197, 199, 194, 195, 197, 192, 193, 195, 191, 192, 194, 191, 191, 193, 191, 191, 193, 187, 187, 189, 186, 186, 188, 184, 184, 186, 182, 182, 184, 180, 178, 181, 178, 176, 179, 176, 174, 177, 175, 173, 176, 170, 168, 169, 169, 167, 168, 167, 165, 166, 166, 164, 165, 167, 163, 164, 166, 162, 163, 167, 163, 162, 167, 163, 162, 163, 159, 158, 163, 159, 158, 164, 159, 156, 164, 159, 156, 163, 158, 155, 163, 158, 155, 162, 157, 154, 162, 157, 154, 160, 152, 150, 158, 150, 148, 156, 148, 146, 153, 145, 143, 151, 143, 141, 151, 143, 141, 151, 143, 141, 152, 144, 142, 149, 141, 138, 151, 143, 140, 153, 145, 142, 154, 146, 143, 155, 147, 144, 157, 149, 146, 162, 154, 151, 165, 157, 154, 168, 160, 157, 170, 162, 159, 174, 166, 164, 178, 170, 168, 181, 176, 173, 184, 179, 176, 185, 181, 180, 186, 182, 183, 191, 189, 192, 194, 194, 196, 200, 199, 204, 203, 204, 208, 207, 208, 213, 210, 213, 218, 215, 218, 223, 219, 222, 227, 221, 226, 232, 221, 228, 234, 226, 231, 237, 229, 234, 240, 231, 236, 242, 233, 238, 244, 234, 239, 243, 234, 239, 243, 237, 240, 245, 238, 241, 246, 240, 243, 248, 241, 244, 249, 242, 246, 249, 242, 246, 249, 244, 245, 249, 243, 244, 248, 244, 245, 249, 244, 245, 249, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 250, 254, 249, 250, 254, 249, 250, 254, 250, 251, 255, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 240, 243, 248, 238, 241, 246, 235, 238, 243, 232, 235, 240, 229, 232, 237, 228, 231, 236, 225, 226, 230, 223, 224, 226, 220, 220, 222, 216, 216, 218, 211, 211, 213, 206, 206, 206, 204, 202, 203, 202, 201, 199, 202, 198, 197, 198, 194, 191, 192, 188, 185, 190, 185, 182, 189, 184, 181, 188, 183, 179, 186, 181, 177, 185, 180, 176, 170, 165, 161, 179, 174, 170, 183, 178, 174, 176, 171, 167, 169, 164, 160, 181, 176, 172, 212, 207, 203, 240, 235, 231, 190, 185, 181, 182, 177, 173, 182, 177, 173, 196, 193, 188, 218, 213, 209, 221, 218, 213, 205, 202, 197, 186, 183, 178, 159, 154, 150, 152, 147, 141, 148, 141, 135, 150, 143, 137, 160, 153, 147, 169, 162, 156, 174, 167, 161, 175, 168, 162, 169, 160, 155, 175, 166, 161, 179, 170, 165, 177, 166, 162, 169, 158, 154, 164, 153, 149, 164, 153, 149, 168, 157, 155, 176, 166, 165, 173, 165, 163, 173, 163, 162, 171, 163, 161, 172, 164, 162, 174, 166, 164, 176, 168, 166, 178, 170, 168, 179, 174, 171, 182, 177, 174, 187, 182, 179, 193, 188, 185, 196, 191, 188, 198, 193, 190, 196, 192, 189, 195, 191, 188, 194, 190, 187, 198, 194, 191, 200, 199, 195, 202, 201, 197, 203, 202, 198, 205, 204, 200, 207, 206, 204, 209, 208, 206, 212, 212, 210, 215, 215, 213, 219, 219, 217, 221, 221, 219, 221, 221, 221, 223, 223, 223, 226, 226, 226, 229, 229, 229, 229, 231, 230, 230, 232, 231, 233, 235, 234, 235, 237, 236, 237, 239, 238, 238, 240, 239, 238, 240, 239, 238, 240, 239, 240, 242, 241, 239, 241, 240, 237, 239, 238, 236, 238, 237, 238, 240, 239, 242, 244, 243, 246, 248, 247, 249, 251, 250, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 246, 246, 246, 246, 246, 246, 246, 246, 246, 247, 247, 247, 246, 246, 246, 247, 247, 247, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 249, 249, 249, 249, 249, 249, 249, 249, 249, 247, 247, 247, 247, 247, 247, 247, 247, 247, 246, 246, 246, 246, 246, 246, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 244, 242, 244, 243, 241, 244, 243, 241, 244, 243, 241, 243, 242, 240, 243, 242, 240, 242, 241, 239, 242, 241, 239, 243, 242, 240, 243, 242, 240, 242, 241, 239, 242, 241, 239, 242, 241, 239, 241, 240, 238, 241, 240, 238, 241, 240, 238, 240, 239, 237, 239, 238, 236, 240, 236, 235, 239, 235, 234, 238, 234, 233, 237, 233, 232, 236, 232, 231, 236, 232, 231, 238, 232, 232, 240, 234, 234, 237, 231, 231, 232, 226, 226, 232, 226, 226, 236, 230, 230, 240, 231, 232, 236, 230, 230, 237, 232, 229, 231, 226, 223, 227, 219, 217, 227, 217, 216, 230, 220, 221, 233, 223, 224, 231, 222, 223, 228, 222, 222, 225, 221, 220, 227, 223, 222, 228, 220, 218, 225, 214, 212, 227, 207, 208, 232, 203, 205, 232, 197, 201, 232, 190, 194, 222, 167, 173, 221, 168, 174, 228, 187, 191, 230, 204, 203, 219, 205, 204, 216, 208, 205, 222, 217, 214, 226, 218, 216, 224, 214, 215, 221, 209, 211, 227, 215, 217, 230, 220, 221, 225, 216, 217, 226, 220, 220, 230, 225, 222, 224, 220, 217, 229, 225, 224, 227, 226, 224, 227, 226, 224, 227, 226, 224, 228, 227, 225, 228, 227, 225, 228, 227, 225, 228, 227, 225, 226, 225, 223, 228, 227, 225, 229, 228, 226, 228, 227, 225, 225, 224, 222, 224, 223, 221, 225, 224, 222, 227, 226, 224, 231, 227, 226, 232, 228, 227, 232, 228, 227, 233, 229, 228, 234, 230, 229, 235, 231, 230, 235, 231, 230, 236, 232, 231, 234, 230, 229, 234, 230, 229, 234, 230, 229, 234, 230, 229, 234, 230, 229, 234, 230, 229, 234, 230, 229, 234, 230, 229, 231, 230, 228, 232, 231, 229, 233, 232, 230, 234, 233, 231, 235, 234, 232, 234, 233, 231, 234, 233, 231, 233, 232, 230, 233, 232, 230, 233, 232, 230, 233, 232, 230, 233, 232, 230, 233, 232, 230, 233, 232, 230, 233, 232, 230, 233, 232, 230, 233, 232, 230, 233, 232, 230, 233, 232, 230, 233, 232, 230, 233, 232, 230, 233, 232, 230, 233, 232, 230, 233, 232, 230, 233, 232, 230, 233, 232, 230, 233, 232, 230, 233, 232, 230, 233, 232, 230, 233, 232, 230, 233, 232, 230, 233, 232, 230, 231, 230, 228, 234, 233, 231, 236, 235, 233, 234, 233, 231, 230, 229, 227, 228, 227, 225, 231, 230, 228, 234, 233, 231, 243, 242, 240, 236, 235, 233, 227, 226, 224, 225, 224, 222, 228, 227, 225, 231, 230, 228, 232, 231, 229, 231, 230, 228, 229, 228, 224, 235, 234, 230, 244, 240, 237, 244, 240, 237, 239, 236, 231, 232, 229, 224, 228, 225, 220, 227, 224, 219, 232, 227, 223, 232, 227, 223, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 235, 228, 222, 233, 228, 222, 227, 222, 216, 227, 223, 214, 226, 221, 215, 226, 222, 213, 226, 221, 215, 227, 222, 216, 229, 224, 218, 230, 225, 219, 230, 225, 219, 237, 232, 226, 247, 242, 238, 253, 248, 244, 253, 248, 244, 245, 240, 236, 234, 229, 225, 227, 222, 218, 221, 216, 210, 224, 219, 213, 230, 225, 219, 238, 231, 225, 240, 233, 227, 238, 231, 225, 231, 224, 216, 226, 219, 211, 229, 222, 214, 229, 222, 214, 230, 221, 212, 230, 221, 212, 230, 221, 212, 230, 221, 212, 230, 221, 212, 229, 222, 212, 230, 223, 215, 229, 225, 216, 229, 225, 216, 229, 225, 216, 229, 226, 219, 229, 226, 219, 229, 226, 219, 230, 227, 220, 224, 221, 214, 229, 226, 219, 234, 233, 228, 240, 239, 234, 242, 241, 236, 239, 238, 233, 234, 233, 228, 231, 230, 225, 226, 225, 220, 228, 227, 222, 231, 230, 225, 234, 233, 228, 234, 233, 228, 232, 231, 226, 230, 229, 224, 228, 227, 222, 230, 229, 224, 231, 230, 225, 231, 230, 225, 231, 230, 225, 232, 231, 226, 232, 231, 226, 232, 231, 226, 233, 232, 227, 232, 231, 227, 233, 232, 228, 233, 232, 228, 233, 232, 228, 234, 233, 229, 234, 233, 229, 234, 233, 229, 234, 233, 229, 234, 233, 229, 234, 233, 229, 235, 234, 230, 235, 234, 230, 235, 234, 230, 236, 235, 231, 236, 235, 231, 236, 235, 231, 235, 234, 230, 236, 235, 231, 236, 235, 231, 236, 235, 231, 237, 236, 232, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 237, 239, 238, 237, 239, 238, 236, 238, 237, 236, 238, 237, 236, 238, 237, 235, 237, 236, 235, 237, 236, 235, 237, 236, 234, 236, 235, 234, 236, 235, 234, 236, 235, 233, 235, 234, 233, 235, 234, 233, 235, 234, 232, 234, 233, 232, 234, 233, 233, 234, 236, 233, 234, 236, 231, 232, 234, 230, 231, 233, 228, 229, 231, 227, 228, 230, 225, 226, 228, 225, 226, 228, 221, 222, 224, 221, 222, 224, 219, 220, 222, 216, 217, 219, 214, 215, 217, 212, 213, 215, 210, 211, 213, 209, 210, 212, 203, 207, 208, 202, 206, 207, 201, 202, 204, 199, 200, 202, 197, 198, 200, 195, 196, 198, 195, 196, 198, 195, 196, 198, 190, 190, 192, 189, 189, 191, 187, 187, 189, 185, 185, 187, 183, 183, 185, 180, 180, 182, 178, 178, 180, 178, 178, 180, 170, 168, 169, 169, 167, 168, 167, 165, 166, 165, 163, 164, 163, 161, 162, 162, 160, 161, 164, 160, 161, 164, 160, 161, 164, 160, 159, 164, 160, 159, 164, 160, 159, 163, 159, 158, 164, 159, 156, 163, 158, 155, 163, 158, 155, 163, 158, 155, 159, 150, 151, 158, 149, 150, 156, 147, 148, 153, 144, 145, 152, 144, 142, 151, 143, 141, 151, 143, 141, 151, 143, 141, 149, 141, 138, 151, 143, 140, 153, 145, 142, 153, 145, 142, 153, 146, 140, 155, 148, 142, 159, 152, 146, 163, 156, 150, 168, 159, 154, 170, 161, 156, 173, 165, 162, 177, 169, 166, 181, 173, 171, 183, 178, 175, 184, 180, 179, 184, 180, 179, 189, 187, 188, 191, 191, 191, 195, 195, 197, 198, 199, 201, 202, 203, 207, 209, 210, 214, 216, 217, 222, 220, 223, 228, 220, 225, 231, 219, 226, 232, 224, 229, 235, 228, 233, 239, 231, 236, 242, 232, 237, 243, 234, 239, 243, 234, 239, 243, 237, 240, 245, 238, 241, 246, 239, 242, 247, 241, 244, 249, 241, 245, 248, 242, 246, 249, 243, 244, 248, 243, 244, 248, 244, 245, 249, 244, 245, 249, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 239, 242, 247, 237, 240, 245, 235, 238, 243, 233, 236, 241, 231, 234, 239, 231, 232, 236, 229, 230, 234, 225, 226, 230, 221, 222, 224, 216, 217, 219, 212, 212, 214, 208, 208, 210, 208, 206, 207, 204, 202, 203, 203, 199, 198, 199, 195, 194, 195, 191, 188, 191, 187, 184, 186, 181, 178, 179, 174, 171, 174, 169, 165, 186, 183, 178, 167, 164, 159, 160, 157, 152, 185, 180, 176, 220, 215, 211, 229, 224, 220, 200, 195, 191, 166, 161, 157, 187, 182, 178, 197, 192, 188, 208, 203, 199, 212, 204, 201, 202, 194, 191, 187, 179, 176, 174, 166, 163, 167, 159, 156, 161, 152, 147, 154, 145, 140, 147, 138, 133, 151, 142, 137, 163, 152, 148, 172, 163, 158, 175, 166, 161, 174, 165, 160, 174, 163, 159, 173, 162, 158, 169, 158, 154, 162, 151, 147, 157, 146, 142, 156, 145, 141, 162, 151, 147, 167, 156, 152, 172, 160, 160, 171, 161, 160, 172, 162, 161, 174, 164, 163, 177, 167, 166, 179, 171, 169, 182, 174, 172, 183, 175, 173, 177, 169, 167, 181, 176, 173, 190, 185, 182, 197, 192, 189, 198, 193, 190, 197, 192, 189, 194, 190, 187, 192, 188, 185, 194, 190, 187, 198, 194, 191, 200, 199, 195, 203, 202, 198, 204, 203, 199, 205, 204, 200, 208, 207, 205, 210, 209, 207, 212, 212, 210, 214, 214, 212, 217, 217, 215, 218, 218, 216, 219, 219, 219, 221, 221, 221, 224, 224, 224, 228, 228, 228, 233, 235, 234, 233, 235, 234, 234, 236, 235, 235, 237, 236, 236, 238, 237, 236, 238, 237, 236, 238, 237, 236, 238, 237, 238, 240, 239, 237, 239, 238, 237, 239, 238, 238, 240, 239, 240, 242, 241, 243, 245, 244, 246, 248, 247, 248, 250, 249, 245, 245, 245, 245, 245, 245, 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 248, 248, 248, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 246, 246, 246, 246, 246, 246, 245, 245, 245, 245, 245, 245, 245, 245, 245, 244, 244, 244, 244, 244, 244, 244, 244, 244, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 244, 243, 241, 244, 243, 241, 243, 242, 240, 243, 242, 240, 242, 241, 239, 241, 240, 238, 241, 240, 238, 241, 240, 238, 243, 242, 240, 243, 242, 240, 243, 239, 238, 242, 238, 237, 240, 236, 235, 238, 234, 233, 237, 233, 232, 236, 232, 231, 235, 229, 229, 236, 230, 230, 234, 228, 228, 229, 223, 223, 230, 224, 224, 235, 229, 229, 240, 231, 232, 237, 231, 231, 238, 233, 230, 229, 224, 221, 222, 214, 212, 223, 211, 211, 228, 216, 218, 232, 220, 222, 230, 220, 221, 226, 217, 218, 223, 217, 217, 229, 223, 223, 232, 224, 222, 227, 215, 215, 225, 207, 207, 227, 202, 205, 229, 200, 202, 234, 195, 198, 230, 177, 185, 222, 169, 175, 223, 182, 186, 228, 200, 199, 221, 203, 203, 217, 207, 205, 226, 216, 215, 227, 219, 217, 221, 211, 212, 219, 209, 210, 226, 217, 218, 229, 223, 223, 224, 220, 219, 226, 222, 221, 229, 224, 221, 222, 218, 215, 227, 223, 222, 226, 225, 223, 228, 224, 223, 227, 226, 224, 229, 225, 224, 228, 227, 225, 230, 226, 225, 229, 228, 226, 230, 226, 225, 229, 228, 226, 231, 227, 226, 228, 227, 225, 229, 225, 224, 226, 225, 223, 228, 224, 223, 229, 225, 224, 233, 229, 228, 232, 228, 227, 231, 227, 226, 231, 227, 226, 231, 227, 226, 233, 229, 228, 235, 231, 230, 236, 232, 231, 233, 229, 228, 233, 229, 228, 233, 229, 228, 233, 229, 228, 233, 229, 228, 233, 229, 228, 233, 229, 228, 233, 229, 228, 230, 229, 227, 230, 229, 227, 232, 231, 229, 233, 232, 230, 233, 232, 230, 233, 232, 230, 232, 231, 229, 232, 231, 229, 231, 230, 228, 231, 230, 228, 231, 230, 228, 231, 230, 228, 231, 230, 228, 231, 230, 228, 231, 230, 228, 231, 230, 228, 231, 230, 228, 231, 230, 228, 231, 230, 228, 232, 231, 229, 232, 231, 229, 232, 231, 229, 232, 231, 229, 232, 231, 229, 232, 231, 229, 232, 231, 229, 232, 231, 229, 232, 231, 229, 232, 231, 229, 232, 231, 229, 232, 231, 229, 232, 231, 229, 231, 230, 228, 235, 234, 232, 238, 237, 235, 236, 235, 233, 230, 229, 227, 227, 226, 224, 229, 228, 226, 233, 232, 230, 242, 241, 239, 240, 239, 237, 236, 235, 233, 231, 230, 228, 228, 227, 225, 228, 227, 225, 229, 228, 226, 231, 230, 228, 235, 234, 230, 230, 229, 225, 229, 225, 222, 236, 232, 229, 245, 242, 237, 246, 243, 238, 235, 232, 227, 223, 220, 215, 231, 226, 222, 231, 226, 222, 230, 225, 219, 230, 225, 219, 231, 226, 220, 231, 226, 220, 234, 227, 221, 235, 228, 222, 229, 225, 216, 228, 224, 213, 227, 223, 214, 226, 222, 213, 226, 222, 213, 226, 222, 213, 227, 222, 216, 227, 222, 216, 226, 221, 215, 229, 224, 218, 233, 228, 224, 238, 233, 229, 244, 239, 235, 248, 243, 239, 250, 245, 241, 252, 247, 243, 238, 233, 229, 233, 228, 222, 227, 222, 218, 227, 222, 216, 231, 226, 220, 237, 230, 224, 237, 230, 224, 235, 228, 220, 230, 223, 215, 230, 223, 215, 231, 222, 215, 231, 222, 213, 231, 222, 213, 230, 221, 212, 230, 221, 212, 229, 222, 212, 231, 224, 216, 229, 225, 216, 229, 225, 216, 230, 226, 217, 229, 226, 219, 229, 226, 219, 230, 227, 220, 230, 227, 220, 231, 228, 221, 231, 228, 221, 229, 228, 223, 230, 229, 224, 232, 231, 226, 234, 233, 228, 237, 236, 231, 239, 238, 233, 236, 235, 230, 234, 233, 228, 231, 230, 225, 228, 227, 222, 228, 227, 222, 229, 228, 223, 232, 231, 226, 234, 233, 228, 231, 230, 225, 231, 230, 225, 231, 230, 225, 232, 231, 226, 232, 231, 226, 232, 231, 226, 233, 232, 227, 233, 232, 227, 233, 232, 228, 233, 232, 228, 233, 232, 228, 234, 233, 229, 234, 233, 229, 234, 233, 229, 235, 234, 230, 235, 234, 230, 235, 234, 230, 235, 234, 230, 235, 234, 230, 235, 234, 230, 236, 235, 231, 236, 235, 231, 237, 236, 232, 237, 236, 232, 236, 235, 231, 236, 235, 231, 236, 235, 231, 237, 236, 232, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 237, 239, 238, 237, 239, 238, 237, 239, 238, 236, 238, 237, 236, 238, 237, 236, 238, 237, 235, 237, 236, 235, 237, 236, 235, 237, 236, 235, 237, 236, 234, 236, 235, 234, 236, 235, 233, 235, 234, 233, 235, 234, 233, 235, 234, 233, 235, 234, 234, 235, 237, 233, 234, 236, 232, 233, 235, 231, 232, 234, 229, 230, 232, 228, 229, 231, 227, 228, 230, 227, 228, 230, 225, 226, 228, 224, 225, 227, 222, 223, 225, 220, 221, 223, 217, 218, 220, 215, 216, 218, 213, 214, 216, 212, 213, 215, 207, 211, 212, 205, 209, 210, 205, 206, 208, 202, 203, 205, 200, 201, 203, 199, 200, 202, 198, 199, 201, 198, 199, 201, 194, 194, 196, 193, 193, 195, 191, 191, 193, 189, 189, 191, 186, 186, 188, 184, 184, 186, 182, 182, 184, 181, 181, 183, 173, 171, 174, 172, 170, 171, 169, 167, 168, 167, 165, 166, 164, 162, 163, 163, 161, 162, 165, 161, 162, 164, 160, 161, 165, 161, 160, 165, 161, 160, 164, 160, 159, 164, 160, 159, 165, 160, 157, 164, 159, 156, 164, 159, 156, 164, 159, 156, 159, 150, 151, 159, 150, 151, 157, 148, 149, 155, 146, 147, 154, 146, 144, 152, 144, 142, 152, 144, 142, 151, 143, 141, 150, 142, 139, 152, 144, 141, 154, 146, 143, 154, 146, 143, 153, 146, 140, 155, 148, 142, 158, 151, 145, 161, 154, 148, 166, 157, 152, 168, 159, 154, 171, 163, 160, 176, 168, 165, 180, 172, 170, 183, 175, 173, 183, 177, 177, 183, 179, 178, 188, 184, 185, 188, 186, 187, 191, 189, 192, 193, 193, 195, 198, 197, 202, 204, 205, 209, 214, 215, 220, 218, 221, 226, 217, 222, 228, 217, 224, 230, 222, 227, 233, 226, 231, 237, 229, 234, 240, 231, 236, 242, 232, 237, 241, 233, 238, 242, 236, 239, 244, 237, 240, 245, 238, 241, 246, 240, 243, 248, 241, 245, 248, 241, 245, 248, 242, 243, 247, 242, 243, 247, 244, 245, 249, 244, 245, 249, 244, 245, 249, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 250, 254, 249, 250, 254, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 240, 243, 248, 239, 242, 247, 238, 241, 246, 236, 239, 244, 234, 237, 242, 233, 236, 241, 234, 237, 242, 232, 235, 240, 228, 231, 236, 224, 228, 231, 219, 223, 226, 216, 217, 219, 212, 213, 215, 212, 212, 214, 207, 207, 209, 203, 201, 202, 196, 194, 195, 190, 189, 187, 187, 186, 184, 186, 182, 181, 183, 179, 178, 180, 176, 173, 171, 170, 165, 202, 202, 194, 228, 228, 220, 221, 218, 211, 188, 185, 178, 171, 168, 161, 186, 181, 175, 209, 204, 198, 222, 215, 209, 215, 208, 202, 199, 192, 186, 182, 173, 168, 167, 158, 153, 163, 154, 149, 168, 159, 154, 175, 166, 161, 172, 161, 157, 168, 157, 153, 163, 152, 148, 160, 149, 145, 165, 151, 148, 167, 156, 152, 171, 160, 156, 173, 162, 158, 156, 145, 141, 152, 141, 137, 147, 138, 133, 150, 141, 136, 157, 148, 143, 165, 156, 151, 169, 160, 155, 172, 161, 157, 163, 151, 151, 167, 155, 155, 173, 161, 161, 178, 168, 167, 182, 172, 171, 185, 175, 174, 185, 175, 174, 184, 176, 174, 181, 173, 171, 188, 180, 178, 195, 190, 187, 200, 195, 192, 199, 194, 191, 196, 191, 188, 193, 189, 186, 192, 188, 185, 195, 192, 187, 198, 195, 190, 203, 199, 196, 205, 201, 198, 204, 203, 199, 206, 205, 201, 208, 207, 203, 210, 209, 205, 213, 212, 210, 214, 213, 211, 216, 216, 214, 217, 217, 215, 217, 217, 215, 220, 220, 218, 225, 225, 225, 229, 229, 229, 238, 240, 239, 238, 240, 239, 237, 239, 238, 236, 238, 237, 235, 237, 236, 234, 236, 235, 234, 236, 235, 234, 236, 235, 235, 237, 236, 237, 239, 238, 240, 242, 241, 242, 244, 243, 244, 246, 245, 244, 246, 245, 244, 246, 245, 243, 245, 244, 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 249, 249, 249, 249, 249, 249, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 248, 248, 248, 248, 248, 248, 247, 247, 247, 247, 247, 247, 246, 246, 246, 246, 246, 246, 245, 245, 245, 245, 245, 245, 244, 244, 244, 244, 244, 244, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 242, 241, 239, 242, 241, 239, 244, 243, 241, 244, 243, 241, 243, 242, 240, 242, 241, 239, 241, 240, 238, 240, 239, 237, 240, 239, 237, 239, 238, 236, 244, 240, 239, 243, 239, 238, 242, 238, 237, 240, 236, 235, 239, 235, 234, 237, 233, 232, 237, 231, 231, 236, 230, 230, 233, 227, 227, 235, 229, 229, 233, 227, 227, 230, 224, 224, 232, 223, 224, 238, 229, 230, 240, 231, 232, 236, 230, 230, 238, 233, 230, 229, 224, 220, 222, 212, 210, 221, 210, 208, 229, 213, 214, 233, 217, 218, 231, 216, 219, 225, 213, 215, 224, 214, 215, 230, 221, 222, 232, 224, 222, 226, 216, 215, 222, 206, 206, 223, 203, 204, 226, 202, 202, 233, 197, 199, 236, 183, 191, 224, 167, 174, 220, 175, 180, 229, 195, 196, 227, 202, 205, 225, 207, 207, 229, 215, 215, 229, 217, 217, 221, 211, 212, 218, 209, 210, 225, 219, 219, 230, 226, 225, 227, 223, 222, 229, 223, 223, 232, 224, 222, 225, 217, 215, 226, 220, 220, 226, 222, 221, 227, 221, 221, 227, 223, 222, 229, 223, 223, 229, 225, 224, 231, 225, 225, 230, 226, 225, 234, 228, 228, 232, 228, 227, 232, 226, 226, 231, 227, 226, 232, 226, 226, 231, 227, 226, 231, 225, 225, 229, 225, 224, 235, 231, 230, 234, 230, 229, 232, 228, 227, 231, 227, 226, 230, 226, 225, 230, 226, 225, 231, 227, 226, 232, 228, 227, 232, 228, 227, 232, 228, 227, 232, 228, 227, 232, 228, 227, 232, 228, 227, 232, 228, 227, 232, 228, 227, 232, 228, 227, 228, 227, 225, 229, 228, 226, 230, 229, 227, 231, 230, 228, 231, 230, 228, 231, 230, 228, 230, 229, 227, 230, 229, 227, 230, 229, 227, 230, 229, 227, 230, 229, 227, 230, 229, 227, 230, 229, 227, 230, 229, 227, 230, 229, 227, 230, 229, 227, 232, 228, 227, 232, 228, 227, 233, 229, 228, 233, 229, 228, 234, 230, 229, 234, 230, 229, 235, 231, 230, 235, 231, 230, 234, 230, 229, 234, 230, 229, 234, 230, 229, 234, 230, 229, 234, 230, 229, 234, 230, 229, 234, 230, 229, 234, 230, 229, 231, 230, 228, 235, 234, 232, 238, 237, 235, 237, 236, 234, 232, 231, 229, 229, 228, 226, 230, 229, 227, 231, 230, 228, 232, 231, 229, 240, 239, 237, 245, 244, 242, 242, 241, 239, 232, 231, 229, 226, 225, 223, 227, 226, 224, 231, 230, 228, 237, 233, 230, 229, 225, 222, 224, 220, 217, 230, 226, 223, 241, 238, 233, 246, 243, 238, 242, 237, 233, 234, 229, 225, 231, 226, 220, 230, 225, 219, 229, 224, 218, 228, 223, 217, 230, 223, 217, 231, 224, 218, 232, 225, 219, 233, 226, 218, 234, 227, 217, 233, 227, 215, 231, 224, 214, 230, 223, 213, 229, 222, 212, 229, 222, 212, 229, 222, 214, 230, 223, 215, 231, 224, 216, 228, 221, 213, 226, 219, 213, 227, 220, 214, 233, 226, 220, 243, 236, 230, 254, 246, 243, 255, 254, 250, 252, 249, 244, 243, 240, 235, 233, 229, 226, 227, 224, 219, 229, 226, 221, 233, 228, 222, 235, 230, 224, 234, 229, 223, 232, 225, 219, 232, 225, 217, 232, 225, 217, 231, 224, 216, 232, 223, 216, 231, 222, 215, 231, 222, 213, 229, 222, 212, 231, 224, 216, 229, 225, 216, 230, 225, 219, 230, 225, 219, 230, 227, 220, 230, 227, 220, 230, 227, 220, 230, 227, 220, 233, 232, 227, 230, 229, 224, 226, 225, 220, 223, 222, 217, 224, 223, 218, 228, 227, 222, 234, 233, 229, 237, 236, 232, 239, 240, 235, 237, 238, 233, 233, 234, 229, 229, 230, 225, 227, 228, 223, 228, 229, 224, 230, 231, 226, 231, 232, 227, 230, 231, 226, 230, 231, 226, 231, 232, 227, 231, 232, 227, 232, 233, 228, 232, 233, 228, 232, 233, 228, 232, 233, 228, 233, 232, 228, 233, 232, 228, 234, 233, 229, 234, 233, 229, 234, 233, 229, 235, 234, 230, 235, 234, 230, 235, 234, 230, 235, 234, 230, 235, 234, 230, 236, 235, 231, 236, 235, 231, 236, 235, 231, 237, 236, 232, 237, 236, 232, 237, 236, 232, 236, 235, 231, 236, 235, 231, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 238, 240, 239, 237, 239, 238, 237, 239, 238, 237, 239, 238, 236, 238, 237, 236, 238, 237, 236, 238, 237, 236, 238, 237, 235, 237, 236, 235, 237, 236, 235, 237, 236, 234, 236, 235, 234, 236, 235, 234, 236, 235, 233, 235, 234, 233, 235, 234, 234, 235, 237, 234, 235, 237, 233, 234, 236, 232, 233, 235, 231, 232, 234, 230, 231, 233, 229, 230, 232, 229, 230, 232, 228, 229, 231, 227, 228, 230, 225, 226, 228, 223, 224, 226, 220, 221, 223, 218, 219, 221, 216, 217, 219, 215, 216, 218, 208, 212, 215, 207, 211, 214, 205, 209, 212, 202, 206, 209, 202, 203, 207, 201, 202, 206, 200, 201, 205, 200, 201, 205, 196, 197, 201, 195, 196, 200, 194, 193, 198, 192, 191, 196, 190, 189, 194, 187, 186, 191, 186, 185, 190, 185, 185, 187, 179, 177, 180, 177, 175, 178, 174, 172, 175, 171, 169, 172, 168, 166, 167, 166, 164, 165, 165, 163, 164, 164, 162, 163, 166, 162, 161, 165, 161, 160, 165, 161, 160, 165, 161, 160, 165, 159, 159, 165, 159, 159, 165, 159, 159, 164, 158, 158, 161, 152, 153, 161, 152, 153, 160, 151, 152, 159, 150, 151, 157, 148, 149, 155, 146, 147, 154, 146, 144, 153, 145, 143, 153, 145, 142, 154, 146, 143, 155, 148, 142, 155, 148, 142, 154, 147, 141, 155, 148, 142, 158, 151, 145, 160, 153, 147, 165, 156, 151, 167, 158, 153, 171, 162, 157, 175, 166, 161, 178, 170, 167, 181, 173, 170, 181, 176, 173, 181, 177, 174, 185, 181, 180, 185, 183, 184, 188, 186, 189, 189, 189, 191, 194, 193, 198, 201, 200, 205, 209, 210, 214, 213, 216, 221, 213, 218, 224, 213, 220, 226, 219, 224, 230, 222, 227, 233, 226, 231, 237, 228, 233, 239, 230, 235, 239, 231, 236, 240, 235, 238, 243, 236, 239, 244, 238, 241, 246, 239, 242, 247, 240, 244, 247, 240, 244, 247, 242, 243, 247, 241, 242, 246, 243, 244, 248, 243, 244, 248, 244, 245, 249, 244, 245, 249, 244, 245, 249, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 244, 249, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 237, 240, 245, 236, 239, 244, 235, 238, 243, 237, 240, 245, 235, 238, 243, 231, 234, 239, 227, 230, 235, 222, 225, 230, 217, 221, 224, 216, 217, 221, 214, 215, 217, 210, 210, 212, 202, 202, 204, 193, 191, 194, 187, 185, 186, 188, 186, 187, 193, 192, 190, 201, 197, 196, 202, 201, 197, 226, 227, 221, 207, 208, 200, 191, 191, 183, 194, 194, 186, 212, 209, 202, 222, 219, 212, 216, 211, 205, 205, 200, 194, 189, 182, 176, 173, 166, 160, 161, 152, 147, 167, 156, 152, 182, 171, 167, 189, 178, 174, 182, 168, 165, 168, 154, 151, 160, 146, 143, 168, 154, 151, 178, 164, 161, 183, 169, 166, 179, 165, 162, 170, 156, 153, 157, 146, 142, 151, 140, 136, 148, 137, 133, 146, 137, 132, 149, 140, 135, 157, 148, 143, 167, 158, 153, 169, 162, 156, 165, 156, 151, 158, 149, 144, 159, 147, 147, 163, 151, 151, 170, 158, 158, 177, 165, 165, 180, 170, 169, 182, 172, 171, 181, 171, 170, 180, 170, 169, 186, 178, 176, 192, 184, 182, 196, 191, 188, 197, 192, 189, 194, 189, 186, 191, 186, 183, 190, 186, 183, 192, 188, 185, 193, 190, 185, 196, 193, 188, 201, 197, 194, 203, 199, 196, 202, 201, 197, 203, 202, 198, 206, 205, 201, 208, 207, 203, 212, 211, 209, 214, 213, 211, 215, 215, 213, 216, 216, 214, 218, 218, 216, 222, 222, 220, 228, 228, 228, 233, 233, 233, 241, 243, 242, 240, 242, 241, 238, 240, 239, 236, 238, 237, 235, 237, 236, 235, 237, 236, 236, 238, 237, 236, 238, 237, 237, 239, 238, 239, 241, 240, 243, 245, 244, 245, 247, 246, 246, 248, 247, 245, 247, 246, 242, 244, 243, 240, 242, 241, 247, 247, 247, 247, 247, 247, 247, 247, 247, 248, 248, 248, 248, 248, 248, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 250, 250, 250, 250, 250, 250, 250, 250, 250, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 248, 248, 248, 248, 248, 248, 247, 247, 247, 246, 246, 246, 246, 246, 246, 245, 245, 245, 244, 244, 244, 244, 244, 244, 244, 244, 244, 243, 243, 243, 243, 243, 243, 243, 243, 243, 242, 242, 242, 242, 242, 242, 242, 242, 242, 241, 241, 241, 240, 239, 237, 240, 239, 237, 240, 239, 237, 241, 240, 238, 241, 240, 238, 242, 241, 239, 242, 241, 239, 242, 241, 239, 244, 243, 241, 244, 243, 241, 243, 242, 240, 241, 240, 238, 240, 239, 237, 239, 238, 236, 238, 237, 235, 237, 236, 234, 238, 234, 233, 238, 234, 233, 237, 233, 232, 236, 232, 231, 234, 230, 229, 233, 229, 228, 233, 227, 227, 233, 227, 227, 232, 226, 226, 235, 229, 229, 236, 230, 230, 233, 227, 227, 236, 227, 228, 239, 230, 231, 239, 230, 231, 234, 229, 226, 235, 230, 226, 229, 224, 220, 225, 215, 213, 226, 212, 211, 231, 212, 214, 233, 214, 216, 232, 213, 217, 228, 212, 215, 226, 211, 214, 229, 219, 220, 231, 221, 220, 224, 214, 213, 220, 206, 205, 222, 204, 204, 223, 203, 202, 231, 197, 198, 236, 180, 189, 219, 158, 166, 213, 162, 169, 227, 186, 190, 230, 198, 203, 227, 202, 205, 230, 208, 211, 228, 209, 211, 225, 210, 213, 220, 210, 211, 227, 218, 219, 231, 225, 225, 227, 221, 221, 230, 221, 222, 234, 222, 222, 228, 216, 216, 226, 217, 218, 224, 218, 218, 227, 218, 219, 226, 220, 220, 230, 221, 222, 229, 223, 223, 232, 223, 224, 230, 224, 224, 236, 227, 228, 232, 226, 226, 232, 223, 224, 231, 225, 225, 235, 226, 227, 233, 227, 227, 233, 224, 225, 229, 223, 223, 233, 229, 228, 233, 229, 228, 232, 228, 227, 231, 227, 226, 231, 227, 226, 230, 226, 225, 229, 225, 224, 229, 225, 224, 230, 226, 225, 230, 226, 225, 230, 226, 225, 230, 226, 225, 230, 226, 225, 230, 226, 225, 230, 226, 225, 230, 226, 225, 226, 225, 223, 227, 226, 224, 228, 227, 225, 229, 228, 226, 230, 229, 227, 230, 229, 227, 229, 228, 226, 228, 227, 225, 229, 228, 226, 229, 228, 226, 229, 228, 226, 229, 228, 226, 229, 228, 226, 229, 228, 226, 229, 228, 226, 229, 228, 226, 231, 227, 226, 232, 228, 227, 232, 228, 227, 233, 229, 228, 234, 230, 229, 235, 231, 230, 236, 232, 231, 236, 232, 231, 234, 230, 229, 234, 230, 229, 234, 230, 229, 234, 230, 229, 234, 230, 229, 234, 230, 229, 234, 230, 229, 234, 230, 229, 232, 231, 229, 233, 232, 230, 235, 234, 232, 236, 235, 233, 236, 235, 233, 234, 233, 231, 231, 230, 228, 229, 228, 226, 225, 224, 222, 236, 235, 233, 246, 245, 243, 247, 246, 244, 238, 237, 235, 230, 229, 227, 228, 227, 225, 230, 229, 227, 228, 224, 221, 230, 226, 223, 232, 228, 225, 231, 227, 224, 230, 227, 222, 233, 230, 225, 242, 237, 233, 248, 243, 239, 234, 229, 223, 232, 227, 221, 229, 224, 218, 227, 222, 216, 228, 221, 215, 229, 222, 216, 230, 223, 217, 231, 224, 216, 234, 227, 217, 233, 227, 215, 232, 226, 214, 231, 225, 213, 230, 223, 213, 230, 223, 213, 231, 224, 216, 231, 224, 216, 233, 226, 218, 230, 223, 215, 228, 221, 215, 227, 220, 214, 229, 222, 216, 234, 227, 221, 240, 232, 229, 242, 237, 233, 248, 244, 241, 243, 242, 238, 242, 238, 235, 239, 235, 232, 237, 233, 230, 235, 232, 227, 232, 227, 223, 229, 224, 218, 235, 228, 222, 235, 228, 222, 234, 227, 219, 233, 226, 218, 233, 224, 217, 233, 224, 217, 232, 223, 214, 231, 224, 214, 232, 225, 217, 230, 226, 217, 230, 225, 219, 231, 226, 220, 230, 227, 220, 230, 227, 220, 231, 228, 221, 231, 228, 221, 228, 227, 222, 228, 227, 222, 228, 227, 222, 228, 227, 222, 228, 227, 222, 228, 227, 222, 228, 227, 223, 228, 227, 223, 232, 233, 228, 234, 235, 230, 236, 237, 232, 237, 238, 233, 236, 237, 232, 233, 234, 229, 229, 230, 225, 226, 227, 222, 231, 232, 227, 231, 232, 227, 231, 232, 227, 232, 233, 228, 232, 233, 228, 232, 233, 228, 233, 234, 229, 233, 234, 229, 234, 233, 229, 234, 233, 229, 234, 233, 229, 234, 233, 229, 235, 234, 230, 235, 234, 230, 235, 234, 230, 236, 235, 231, 235, 234, 230, 236, 235, 231, 236, 235, 231, 236, 235, 231, 237, 236, 232, 237, 236, 232, 237, 236, 232, 238, 237, 233, 237, 236, 232, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 238, 240, 239, 238, 240, 239, 238, 240, 239, 237, 239, 238, 237, 239, 238, 236, 238, 237, 236, 238, 237, 236, 238, 237, 236, 238, 237, 235, 237, 236, 235, 237, 236, 235, 237, 236, 234, 236, 235, 234, 236, 235, 234, 236, 235, 233, 235, 234, 234, 235, 237, 234, 235, 237, 234, 235, 237, 233, 234, 236, 232, 233, 235, 231, 232, 234, 231, 232, 234, 231, 232, 234, 230, 231, 233, 229, 230, 232, 227, 228, 230, 225, 226, 228, 222, 223, 225, 220, 221, 223, 218, 219, 221, 217, 218, 220, 210, 214, 217, 209, 213, 216, 207, 211, 214, 204, 208, 211, 204, 205, 209, 203, 204, 208, 202, 203, 207, 202, 203, 207, 198, 199, 203, 197, 198, 202, 197, 196, 201, 194, 193, 198, 192, 191, 196, 190, 189, 194, 188, 187, 192, 187, 186, 191, 183, 181, 184, 181, 179, 182, 178, 176, 179, 174, 172, 175, 170, 168, 169, 168, 166, 167, 166, 164, 165, 166, 164, 165, 166, 162, 161, 166, 162, 161, 166, 162, 161, 166, 162, 161, 166, 160, 160, 166, 160, 160, 165, 159, 159, 165, 159, 159, 164, 155, 156, 164, 155, 156, 164, 155, 156, 163, 154, 155, 162, 153, 154, 159, 150, 151, 157, 149, 147, 155, 147, 145, 153, 145, 142, 155, 147, 144, 155, 148, 142, 154, 147, 141, 152, 145, 139, 153, 146, 140, 155, 148, 142, 158, 151, 145, 163, 154, 149, 165, 156, 151, 169, 160, 155, 174, 165, 160, 177, 169, 166, 180, 172, 169, 180, 175, 172, 181, 176, 173, 182, 178, 177, 184, 180, 179, 186, 184, 185, 189, 187, 190, 191, 190, 195, 196, 195, 200, 202, 203, 207, 206, 210, 213, 209, 214, 220, 209, 216, 222, 215, 220, 226, 219, 224, 230, 223, 228, 234, 226, 231, 237, 227, 232, 236, 228, 233, 237, 234, 237, 242, 235, 238, 243, 237, 240, 245, 238, 241, 246, 239, 243, 246, 239, 243, 246, 241, 242, 246, 240, 241, 245, 243, 244, 248, 243, 244, 248, 243, 244, 248, 244, 245, 249, 244, 245, 249, 244, 245, 249, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 239, 242, 247, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 239, 242, 247, 238, 241, 246, 237, 242, 248, 235, 240, 246, 232, 237, 243, 227, 232, 236, 222, 227, 231, 218, 223, 226, 215, 219, 222, 213, 217, 220, 208, 209, 213, 205, 206, 208, 201, 201, 203, 200, 200, 200, 203, 203, 203, 208, 208, 208, 212, 210, 211, 213, 212, 210, 189, 190, 184, 199, 202, 193, 213, 214, 206, 218, 219, 211, 210, 210, 202, 193, 190, 183, 173, 168, 162, 160, 155, 149, 161, 154, 148, 172, 163, 158, 181, 170, 166, 177, 166, 162, 167, 153, 150, 164, 150, 147, 175, 160, 157, 187, 172, 169, 188, 173, 170, 182, 167, 164, 172, 158, 155, 163, 149, 146, 157, 143, 140, 155, 141, 138, 152, 141, 137, 152, 141, 137, 157, 148, 143, 160, 151, 146, 166, 157, 152, 169, 162, 156, 170, 163, 157, 163, 158, 152, 157, 150, 144, 151, 144, 138, 166, 154, 154, 170, 156, 156, 171, 159, 159, 174, 162, 162, 176, 164, 164, 176, 164, 164, 175, 165, 164, 175, 165, 164, 185, 177, 175, 189, 181, 179, 189, 184, 181, 185, 180, 177, 179, 174, 171, 177, 172, 169, 180, 176, 173, 185, 181, 178, 188, 185, 180, 192, 189, 184, 196, 193, 188, 199, 196, 191, 200, 196, 193, 201, 197, 194, 201, 200, 196, 204, 203, 199, 212, 211, 209, 214, 213, 211, 215, 215, 213, 216, 216, 214, 219, 219, 217, 225, 225, 223, 233, 233, 231, 238, 238, 236, 238, 240, 239, 237, 239, 238, 236, 238, 237, 236, 238, 237, 237, 239, 238, 239, 241, 240, 242, 244, 243, 243, 245, 244, 243, 245, 244, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 243, 245, 244, 242, 244, 243, 242, 244, 243, 247, 247, 247, 248, 248, 248, 248, 248, 248, 248, 248, 248, 249, 249, 249, 249, 249, 249, 249, 249, 249, 250, 250, 250, 249, 249, 249, 249, 249, 249, 250, 250, 250, 250, 250, 250, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 247, 247, 247, 247, 247, 247, 246, 246, 246, 245, 245, 245, 244, 244, 244, 243, 243, 243, 242, 242, 242, 242, 242, 242, 243, 243, 243, 242, 242, 242, 242, 242, 242, 242, 242, 242, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 240, 239, 237, 240, 239, 237, 240, 239, 237, 241, 240, 238, 242, 241, 239, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 242, 241, 239, 240, 239, 237, 239, 238, 236, 237, 236, 234, 236, 235, 233, 236, 235, 233, 235, 231, 230, 235, 231, 230, 235, 231, 230, 234, 230, 229, 234, 230, 229, 234, 230, 229, 234, 228, 228, 234, 228, 228, 232, 226, 226, 237, 231, 231, 240, 234, 234, 238, 232, 232, 240, 231, 232, 241, 232, 233, 239, 230, 231, 231, 226, 223, 231, 226, 222, 230, 225, 219, 231, 220, 218, 232, 216, 216, 233, 213, 215, 232, 212, 214, 231, 211, 213, 230, 211, 213, 227, 211, 212, 230, 216, 216, 227, 217, 216, 221, 211, 210, 220, 206, 205, 221, 205, 205, 221, 203, 201, 227, 195, 196, 230, 170, 180, 210, 142, 153, 205, 145, 155, 223, 174, 180, 230, 189, 197, 229, 194, 200, 226, 197, 202, 222, 197, 201, 229, 208, 213, 222, 206, 209, 225, 215, 216, 229, 220, 221, 226, 216, 217, 230, 218, 220, 236, 220, 221, 230, 214, 215, 225, 213, 215, 224, 215, 216, 226, 216, 217, 226, 217, 218, 229, 219, 220, 229, 220, 221, 231, 221, 222, 231, 222, 223, 236, 226, 227, 231, 222, 223, 230, 220, 221, 230, 221, 222, 234, 224, 225, 233, 224, 225, 232, 222, 223, 228, 219, 220, 228, 222, 222, 229, 225, 224, 231, 227, 226, 233, 229, 228, 233, 229, 228, 232, 228, 227, 231, 227, 226, 229, 225, 224, 229, 225, 224, 229, 225, 224, 229, 225, 224, 229, 225, 224, 229, 225, 224, 229, 225, 224, 229, 225, 224, 229, 225, 224, 225, 224, 222, 226, 225, 223, 227, 226, 224, 228, 227, 225, 229, 228, 226, 228, 227, 225, 228, 227, 225, 227, 226, 224, 229, 228, 226, 229, 228, 226, 229, 228, 226, 229, 228, 226, 229, 228, 226, 229, 228, 226, 229, 228, 226, 229, 228, 226, 231, 227, 226, 232, 228, 227, 233, 229, 228, 234, 230, 229, 235, 231, 230, 236, 232, 231, 237, 233, 232, 237, 233, 232, 233, 229, 228, 233, 229, 228, 233, 229, 228, 233, 229, 228, 233, 229, 228, 233, 229, 228, 233, 229, 228, 233, 229, 228, 233, 232, 230, 231, 230, 228, 230, 229, 227, 234, 233, 231, 240, 239, 237, 240, 239, 237, 234, 233, 231, 228, 227, 225, 226, 225, 223, 230, 229, 227, 237, 236, 234, 243, 242, 240, 244, 243, 241, 239, 238, 236, 232, 231, 229, 227, 226, 224, 228, 224, 221, 233, 229, 226, 235, 232, 227, 232, 229, 224, 226, 223, 218, 227, 224, 219, 237, 232, 228, 246, 241, 237, 240, 235, 229, 237, 232, 226, 233, 228, 222, 229, 224, 218, 229, 222, 216, 229, 222, 216, 231, 224, 216, 232, 225, 215, 233, 225, 214, 232, 224, 211, 231, 223, 210, 231, 223, 210, 231, 223, 212, 231, 223, 212, 232, 223, 214, 233, 224, 215, 232, 223, 214, 232, 223, 214, 232, 223, 216, 231, 222, 215, 231, 222, 217, 231, 222, 217, 231, 222, 217, 230, 222, 219, 232, 231, 227, 236, 236, 234, 241, 240, 238, 243, 242, 238, 240, 239, 235, 235, 234, 229, 234, 231, 226, 232, 229, 224, 235, 230, 224, 235, 230, 224, 236, 229, 223, 235, 228, 222, 234, 227, 219, 233, 226, 218, 233, 224, 217, 232, 225, 217, 232, 225, 219, 230, 225, 219, 229, 226, 219, 230, 227, 220, 230, 227, 220, 231, 228, 221, 231, 228, 221, 231, 228, 221, 225, 224, 219, 227, 226, 221, 229, 228, 223, 231, 230, 225, 232, 231, 227, 231, 230, 226, 228, 229, 224, 226, 227, 222, 228, 229, 224, 230, 231, 226, 234, 235, 230, 237, 238, 233, 238, 239, 234, 237, 238, 233, 234, 235, 230, 232, 233, 228, 231, 232, 227, 231, 232, 227, 231, 232, 227, 232, 233, 228, 232, 233, 228, 233, 234, 229, 233, 234, 229, 233, 234, 229, 234, 233, 231, 234, 233, 231, 234, 233, 231, 235, 234, 232, 235, 234, 232, 235, 234, 232, 236, 235, 233, 236, 235, 233, 236, 235, 233, 236, 235, 233, 236, 235, 233, 237, 236, 234, 237, 236, 234, 237, 236, 234, 238, 237, 235, 238, 237, 235, 237, 236, 232, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 238, 240, 239, 238, 240, 239, 238, 240, 239, 237, 239, 238, 237, 239, 238, 237, 239, 238, 236, 238, 237, 236, 238, 237, 236, 238, 237, 236, 238, 237, 235, 237, 236, 235, 237, 236, 235, 237, 236, 234, 236, 235, 234, 236, 235, 234, 236, 235, 235, 236, 238, 235, 236, 238, 234, 235, 237, 234, 235, 237, 233, 234, 236, 233, 234, 236, 232, 233, 235, 232, 233, 235, 231, 232, 234, 230, 231, 233, 228, 229, 231, 226, 227, 229, 223, 224, 226, 221, 222, 224, 219, 220, 222, 218, 219, 221, 213, 217, 220, 212, 216, 219, 210, 214, 217, 207, 211, 214, 205, 209, 212, 204, 208, 211, 205, 206, 210, 205, 206, 210, 200, 201, 205, 199, 200, 204, 198, 197, 202, 196, 195, 200, 193, 192, 197, 191, 190, 195, 189, 188, 193, 188, 187, 192, 184, 184, 186, 182, 182, 184, 179, 177, 180, 175, 173, 176, 171, 169, 170, 168, 166, 167, 166, 164, 165, 165, 163, 164, 167, 163, 164, 167, 163, 164, 166, 162, 161, 166, 162, 161, 166, 162, 161, 165, 161, 160, 166, 160, 160, 166, 160, 160, 167, 158, 161, 167, 158, 161, 168, 159, 160, 168, 159, 160, 166, 157, 158, 163, 154, 155, 160, 152, 150, 158, 150, 148, 151, 143, 140, 153, 145, 142, 153, 146, 140, 151, 144, 138, 149, 142, 136, 149, 142, 136, 151, 144, 136, 153, 146, 138, 162, 153, 146, 165, 154, 148, 168, 159, 154, 172, 163, 158, 176, 168, 165, 179, 171, 168, 179, 174, 171, 180, 175, 172, 179, 175, 174, 183, 179, 178, 185, 183, 184, 188, 186, 187, 190, 190, 192, 193, 193, 195, 197, 196, 201, 200, 201, 205, 205, 210, 216, 206, 213, 219, 211, 216, 222, 216, 221, 227, 220, 225, 231, 223, 228, 234, 225, 230, 234, 226, 231, 235, 234, 237, 242, 235, 238, 243, 236, 239, 244, 238, 241, 246, 239, 243, 246, 239, 243, 246, 240, 241, 245, 240, 241, 245, 243, 244, 248, 243, 244, 248, 243, 244, 248, 243, 244, 248, 244, 245, 249, 244, 245, 249, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 240, 243, 248, 241, 244, 249, 242, 245, 250, 243, 246, 251, 243, 246, 251, 242, 245, 250, 241, 244, 249, 241, 244, 249, 239, 242, 247, 236, 241, 245, 234, 237, 242, 228, 233, 237, 224, 227, 232, 219, 223, 226, 216, 220, 223, 214, 218, 221, 207, 208, 212, 210, 211, 215, 216, 216, 218, 222, 222, 224, 224, 224, 224, 220, 220, 220, 212, 212, 212, 205, 205, 203, 219, 220, 214, 216, 217, 209, 209, 210, 202, 198, 198, 190, 185, 185, 177, 176, 173, 166, 170, 165, 159, 169, 162, 156, 180, 173, 167, 178, 169, 164, 178, 167, 163, 184, 173, 169, 193, 179, 176, 191, 177, 174, 180, 165, 162, 167, 153, 150, 168, 153, 150, 161, 147, 144, 155, 141, 138, 155, 141, 138, 161, 147, 144, 168, 154, 151, 168, 157, 153, 167, 156, 152, 162, 153, 148, 168, 159, 154, 174, 165, 160, 172, 165, 159, 167, 160, 154, 163, 156, 150, 164, 157, 151, 167, 160, 154, 178, 167, 165, 178, 164, 163, 174, 162, 162, 173, 162, 160, 172, 160, 160, 173, 162, 160, 173, 163, 162, 174, 164, 162, 179, 171, 169, 181, 173, 170, 178, 173, 170, 172, 167, 163, 164, 159, 156, 162, 157, 153, 169, 164, 161, 175, 172, 167, 184, 181, 176, 188, 185, 180, 192, 189, 184, 193, 192, 187, 196, 192, 189, 195, 194, 190, 198, 197, 193, 200, 199, 195, 212, 211, 209, 212, 212, 210, 215, 215, 213, 217, 217, 215, 221, 221, 219, 227, 227, 225, 235, 235, 233, 241, 241, 239, 235, 237, 236, 234, 236, 235, 234, 236, 235, 236, 238, 237, 239, 241, 240, 243, 245, 244, 247, 249, 248, 249, 251, 250, 250, 252, 251, 248, 250, 249, 244, 246, 245, 242, 244, 243, 241, 243, 242, 241, 243, 242, 243, 245, 244, 245, 247, 246, 248, 248, 248, 248, 248, 248, 248, 248, 248, 249, 249, 249, 249, 249, 249, 249, 249, 249, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 251, 251, 251, 251, 251, 251, 251, 251, 251, 252, 252, 252, 252, 252, 252, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 247, 247, 247, 246, 246, 246, 245, 245, 245, 244, 244, 244, 243, 243, 243, 242, 242, 242, 241, 241, 241, 240, 240, 240, 242, 242, 242, 242, 242, 242, 242, 242, 242, 241, 241, 241, 241, 241, 241, 241, 241, 241, 240, 240, 240, 240, 240, 240, 240, 239, 237, 240, 239, 237, 241, 240, 238, 241, 240, 238, 242, 241, 239, 243, 242, 240, 244, 243, 241, 244, 243, 241, 243, 242, 240, 242, 241, 239, 241, 240, 238, 240, 239, 237, 238, 237, 235, 236, 235, 233, 235, 234, 232, 234, 233, 231, 237, 233, 232, 237, 233, 232, 237, 233, 232, 237, 233, 232, 237, 233, 232, 237, 233, 232, 238, 232, 232, 238, 232, 232, 232, 226, 226, 238, 232, 232, 242, 236, 236, 242, 236, 236, 243, 234, 235, 243, 234, 235, 238, 229, 230, 231, 223, 221, 229, 224, 220, 232, 224, 221, 235, 224, 222, 235, 219, 220, 233, 214, 216, 231, 211, 213, 231, 211, 213, 231, 212, 214, 227, 211, 212, 228, 214, 214, 225, 213, 213, 221, 209, 209, 221, 207, 206, 224, 206, 206, 222, 202, 201, 227, 192, 196, 223, 161, 172, 202, 130, 142, 197, 134, 145, 219, 163, 172, 231, 181, 190, 228, 185, 194, 224, 187, 194, 218, 187, 193, 232, 205, 210, 224, 203, 208, 227, 211, 214, 228, 216, 218, 224, 212, 214, 229, 214, 217, 234, 218, 221, 229, 213, 216, 224, 212, 214, 223, 213, 214, 225, 215, 216, 226, 216, 217, 228, 218, 219, 229, 219, 220, 231, 221, 222, 231, 221, 222, 233, 223, 224, 229, 220, 221, 226, 217, 218, 227, 218, 219, 230, 221, 222, 231, 222, 223, 228, 219, 220, 225, 216, 217, 222, 216, 216, 224, 220, 219, 230, 224, 224, 233, 229, 228, 235, 231, 230, 235, 231, 230, 233, 229, 228, 231, 227, 226, 227, 223, 222, 227, 223, 222, 227, 223, 222, 227, 223, 222, 227, 223, 222, 227, 223, 222, 227, 223, 222, 227, 223, 222, 227, 223, 222, 225, 224, 222, 229, 225, 224, 228, 227, 225, 230, 226, 225, 228, 227, 225, 229, 225, 224, 227, 226, 224, 232, 228, 227, 230, 229, 227, 232, 228, 227, 230, 229, 227, 232, 228, 227, 230, 229, 227, 232, 228, 227, 230, 229, 227, 232, 228, 227, 230, 229, 227, 233, 229, 228, 232, 231, 229, 235, 231, 230, 235, 234, 232, 238, 234, 233, 236, 235, 233, 233, 229, 228, 231, 230, 228, 233, 229, 228, 231, 230, 228, 233, 229, 228, 231, 230, 228, 233, 229, 228, 231, 230, 228, 234, 233, 231, 229, 228, 226, 227, 226, 224, 233, 232, 230, 242, 241, 239, 244, 243, 241, 236, 235, 233, 227, 226, 224, 230, 229, 227, 227, 226, 224, 227, 226, 224, 236, 235, 233, 247, 246, 244, 248, 247, 245, 237, 236, 234, 225, 224, 222, 236, 232, 229, 233, 229, 226, 231, 228, 223, 229, 226, 221, 230, 227, 222, 231, 228, 223, 233, 228, 224, 233, 228, 224, 244, 239, 233, 241, 236, 230, 236, 231, 225, 232, 227, 221, 231, 224, 218, 231, 224, 218, 232, 225, 217, 233, 226, 216, 231, 221, 209, 231, 222, 207, 230, 220, 208, 230, 220, 208, 231, 221, 209, 232, 222, 212, 233, 223, 213, 233, 224, 215, 230, 221, 212, 230, 221, 212, 230, 221, 214, 230, 221, 214, 231, 222, 217, 231, 222, 217, 231, 222, 217, 230, 223, 217, 226, 223, 218, 230, 229, 225, 238, 237, 233, 240, 239, 235, 239, 236, 231, 238, 235, 230, 239, 236, 231, 242, 239, 234, 236, 233, 226, 236, 231, 225, 236, 231, 225, 234, 229, 223, 233, 228, 222, 232, 227, 221, 231, 226, 220, 231, 226, 220, 230, 225, 219, 230, 225, 219, 230, 227, 220, 230, 227, 220, 230, 227, 220, 231, 228, 221, 231, 228, 221, 231, 228, 221, 227, 226, 221, 227, 226, 221, 228, 227, 222, 229, 228, 223, 230, 229, 225, 232, 231, 227, 232, 233, 228, 233, 234, 229, 230, 231, 226, 229, 230, 225, 229, 230, 225, 229, 230, 225, 232, 233, 228, 237, 238, 233, 242, 243, 238, 245, 246, 241, 231, 232, 227, 231, 232, 227, 232, 233, 228, 232, 233, 228, 232, 233, 228, 233, 234, 229, 233, 234, 229, 233, 234, 229, 234, 233, 231, 234, 233, 231, 234, 233, 231, 235, 234, 232, 235, 234, 232, 236, 235, 233, 236, 235, 233, 236, 235, 233, 236, 235, 233, 236, 235, 233, 236, 235, 233, 237, 236, 234, 237, 236, 234, 237, 236, 234, 238, 237, 235, 238, 237, 235, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 238, 240, 239, 238, 240, 239, 238, 240, 239, 238, 240, 239, 237, 239, 238, 237, 239, 238, 237, 239, 238, 236, 238, 237, 236, 238, 237, 236, 238, 237, 235, 237, 236, 235, 237, 236, 235, 237, 236, 234, 236, 235, 234, 236, 235, 234, 236, 235, 235, 236, 238, 235, 236, 238, 234, 235, 237, 234, 235, 237, 234, 235, 237, 233, 234, 236, 233, 234, 236, 233, 234, 236, 231, 232, 234, 230, 231, 233, 229, 230, 232, 226, 227, 229, 224, 225, 227, 221, 222, 224, 220, 221, 223, 219, 220, 222, 216, 220, 223, 215, 219, 222, 212, 216, 219, 210, 214, 217, 208, 212, 215, 206, 210, 213, 208, 209, 213, 208, 209, 213, 200, 201, 205, 199, 200, 204, 199, 198, 203, 196, 195, 200, 194, 193, 198, 192, 191, 196, 190, 189, 194, 189, 189, 191, 184, 184, 186, 182, 182, 182, 179, 177, 180, 174, 172, 173, 170, 168, 169, 167, 165, 166, 165, 163, 164, 164, 162, 163, 167, 163, 164, 167, 163, 162, 167, 163, 162, 166, 162, 161, 166, 162, 161, 166, 162, 159, 166, 160, 160, 166, 160, 160, 169, 160, 161, 169, 160, 161, 170, 161, 162, 170, 161, 162, 169, 160, 161, 166, 157, 158, 162, 154, 152, 160, 152, 150, 149, 141, 138, 150, 142, 139, 150, 142, 139, 148, 141, 135, 146, 138, 135, 145, 138, 132, 147, 140, 134, 151, 142, 137, 162, 151, 147, 164, 153, 149, 168, 157, 153, 172, 162, 160, 176, 166, 164, 178, 170, 167, 180, 172, 170, 179, 174, 171, 179, 173, 173, 182, 178, 177, 187, 183, 182, 189, 187, 188, 190, 188, 189, 191, 191, 191, 193, 193, 195, 195, 196, 198, 203, 208, 211, 206, 211, 215, 209, 214, 218, 214, 219, 223, 218, 223, 227, 221, 226, 230, 223, 228, 232, 224, 229, 233, 233, 236, 241, 234, 237, 242, 236, 239, 244, 237, 240, 245, 238, 241, 246, 238, 242, 245, 240, 241, 245, 240, 241, 245, 242, 243, 247, 243, 244, 248, 243, 244, 248, 243, 244, 248, 244, 245, 249, 244, 245, 249, 244, 245, 249, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 242, 246, 249, 242, 246, 249, 242, 246, 249, 241, 245, 248, 241, 245, 248, 241, 245, 248, 240, 244, 247, 238, 242, 245, 237, 241, 244, 237, 238, 242, 232, 236, 239, 232, 233, 237, 229, 230, 232, 227, 228, 230, 226, 227, 229, 227, 228, 230, 227, 228, 230, 225, 226, 228, 223, 224, 226, 220, 221, 223, 217, 218, 220, 213, 214, 216, 212, 212, 212, 203, 202, 197, 198, 198, 190, 191, 191, 183, 188, 185, 178, 186, 183, 176, 185, 180, 174, 182, 177, 171, 182, 175, 169, 177, 170, 164, 179, 172, 166, 181, 172, 167, 183, 172, 168, 181, 170, 166, 178, 167, 163, 176, 162, 159, 171, 160, 156, 171, 157, 154, 167, 156, 152, 167, 156, 152, 169, 158, 154, 171, 160, 156, 170, 159, 155, 164, 153, 149, 159, 148, 144, 177, 166, 162, 177, 166, 162, 174, 163, 159, 169, 160, 155, 164, 155, 150, 162, 153, 148, 164, 155, 150, 166, 157, 152, 176, 165, 161, 166, 155, 151, 177, 166, 164, 182, 171, 167, 167, 157, 155, 173, 164, 159, 190, 180, 178, 187, 178, 173, 165, 157, 154, 163, 156, 150, 158, 150, 147, 152, 145, 139, 154, 146, 143, 164, 157, 151, 173, 165, 162, 173, 168, 164, 175, 172, 167, 179, 178, 174, 186, 185, 181, 187, 188, 183, 188, 187, 185, 190, 190, 188, 200, 200, 198, 208, 208, 206, 212, 212, 210, 203, 205, 202, 201, 203, 202, 213, 215, 214, 232, 234, 233, 243, 245, 244, 238, 240, 239, 229, 231, 230, 221, 223, 222, 226, 228, 227, 233, 235, 234, 241, 243, 242, 245, 247, 246, 246, 248, 247, 245, 247, 246, 244, 246, 245, 237, 239, 238, 238, 240, 239, 239, 241, 240, 241, 243, 242, 242, 244, 243, 244, 246, 245, 245, 247, 246, 246, 248, 247, 247, 249, 246, 247, 249, 246, 248, 250, 247, 248, 250, 247, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 246, 244, 246, 246, 244, 245, 245, 243, 245, 245, 243, 247, 246, 244, 246, 245, 243, 246, 245, 243, 245, 244, 242, 244, 243, 241, 244, 243, 241, 243, 242, 240, 243, 242, 240, 242, 241, 239, 242, 241, 239, 241, 240, 238, 240, 239, 237, 240, 239, 237, 241, 240, 238, 242, 241, 239, 242, 241, 239, 237, 237, 235, 238, 238, 236, 239, 239, 237, 240, 240, 238, 242, 241, 239, 242, 241, 239, 241, 240, 238, 240, 239, 237, 238, 237, 235, 236, 235, 233, 238, 234, 233, 239, 235, 234, 242, 238, 237, 243, 239, 238, 242, 238, 237, 241, 237, 236, 235, 234, 232, 235, 234, 232, 238, 234, 233, 239, 235, 234, 239, 235, 234, 238, 234, 233, 237, 233, 232, 237, 233, 232, 236, 230, 230, 237, 231, 231, 239, 233, 233, 240, 234, 234, 240, 234, 234, 238, 232, 232, 238, 229, 230, 236, 227, 228, 237, 227, 226, 231, 219, 219, 234, 220, 220, 233, 218, 221, 225, 210, 213, 226, 211, 214, 229, 215, 215, 221, 209, 209, 221, 211, 210, 221, 211, 210, 222, 210, 210, 223, 209, 209, 222, 204, 204, 218, 196, 198, 215, 189, 192, 222, 181, 187, 225, 163, 174, 219, 147, 159, 208, 140, 151, 212, 150, 161, 221, 165, 174, 223, 172, 181, 217, 172, 179, 211, 171, 179, 224, 191, 198, 229, 202, 207, 231, 210, 215, 227, 211, 214, 223, 211, 215, 224, 213, 217, 227, 216, 220, 227, 217, 218, 222, 210, 212, 226, 214, 216, 227, 217, 218, 226, 216, 217, 224, 214, 215, 224, 214, 215, 228, 219, 220, 233, 224, 225, 230, 221, 222, 229, 223, 223, 230, 224, 224, 231, 225, 225, 231, 225, 225, 230, 224, 224, 228, 224, 223, 227, 223, 222, 227, 221, 223, 227, 221, 223, 230, 221, 224, 229, 223, 225, 229, 223, 225, 228, 222, 224, 227, 221, 223, 227, 221, 223, 227, 221, 223, 227, 221, 223, 227, 223, 224, 228, 224, 225, 228, 224, 225, 227, 223, 224, 226, 222, 223, 226, 222, 223, 229, 225, 226, 229, 225, 226, 230, 224, 226, 229, 225, 226, 230, 224, 226, 229, 225, 226, 230, 224, 226, 229, 225, 226, 230, 224, 226, 229, 225, 226, 231, 225, 227, 230, 226, 227, 231, 225, 227, 231, 227, 228, 232, 226, 228, 231, 227, 228, 230, 228, 229, 229, 229, 229, 230, 228, 229, 229, 229, 229, 231, 229, 230, 230, 230, 230, 232, 230, 231, 231, 231, 231, 241, 239, 240, 234, 234, 234, 228, 226, 227, 227, 227, 227, 232, 230, 231, 233, 233, 233, 233, 231, 232, 230, 229, 227, 231, 230, 228, 232, 228, 225, 231, 227, 224, 231, 227, 224, 233, 229, 226, 237, 233, 230, 240, 239, 237, 243, 242, 240, 221, 220, 218, 230, 229, 227, 230, 230, 230, 225, 225, 225, 229, 229, 229, 243, 243, 243, 248, 248, 248, 243, 242, 240, 225, 221, 218, 237, 233, 230, 240, 236, 233, 230, 226, 223, 228, 223, 220, 233, 228, 225, 233, 228, 224, 225, 220, 216, 227, 219, 216, 245, 237, 234, 252, 244, 241, 240, 232, 229, 228, 221, 215, 230, 223, 217, 232, 225, 219, 229, 220, 211, 230, 218, 206, 235, 222, 206, 238, 226, 212, 236, 224, 210, 232, 220, 206, 229, 217, 205, 230, 218, 206, 231, 221, 211, 231, 221, 211, 231, 221, 211, 230, 221, 212, 230, 221, 212, 229, 222, 214, 229, 222, 214, 229, 222, 214, 229, 222, 214, 226, 222, 213, 227, 223, 214, 229, 224, 218, 231, 228, 221, 236, 231, 225, 239, 236, 229, 243, 240, 233, 245, 242, 235, 234, 231, 226, 235, 234, 229, 239, 238, 233, 241, 240, 235, 239, 238, 233, 234, 233, 228, 227, 226, 222, 222, 221, 216, 235, 232, 227, 235, 232, 225, 233, 230, 225, 232, 229, 224, 232, 229, 224, 232, 229, 224, 230, 229, 224, 230, 229, 224, 230, 229, 225, 230, 229, 225, 230, 229, 225, 230, 229, 225, 229, 230, 225, 229, 230, 225, 229, 229, 227, 229, 229, 227, 231, 230, 226, 231, 230, 226, 232, 231, 227, 232, 231, 227, 233, 232, 228, 233, 232, 228, 233, 232, 228, 233, 232, 228, 244, 243, 239, 241, 240, 236, 237, 236, 232, 234, 233, 229, 232, 231, 227, 232, 231, 227, 233, 232, 228, 234, 233, 229, 233, 234, 229, 233, 234, 229, 233, 234, 229, 233, 234, 229, 233, 234, 229, 233, 234, 229, 233, 234, 229, 233, 234, 229, 235, 236, 231, 235, 236, 231, 235, 236, 231, 236, 237, 232, 236, 237, 232, 236, 237, 232, 237, 238, 233, 237, 238, 233, 236, 237, 232, 236, 237, 232, 236, 237, 232, 237, 238, 233, 237, 238, 233, 238, 239, 234, 238, 239, 234, 238, 239, 234, 238, 239, 234, 238, 239, 234, 238, 239, 234, 238, 239, 234, 238, 239, 234, 238, 239, 234, 238, 239, 234, 238, 239, 234, 238, 238, 236, 239, 239, 237, 239, 239, 237, 239, 239, 237, 240, 240, 238, 240, 240, 238, 240, 240, 238, 241, 241, 239, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 238, 240, 237, 238, 240, 237, 238, 240, 237, 238, 240, 237, 238, 240, 237, 238, 240, 237, 238, 240, 237, 238, 240, 237, 238, 240, 237, 238, 240, 237, 238, 240, 237, 237, 239, 236, 237, 239, 236, 237, 239, 236, 236, 238, 235, 236, 238, 237, 236, 237, 239, 236, 237, 239, 235, 236, 238, 235, 236, 238, 235, 236, 238, 234, 235, 237, 234, 235, 237, 234, 235, 237, 232, 233, 235, 231, 232, 234, 230, 231, 233, 229, 230, 232, 227, 228, 230, 225, 226, 228, 224, 225, 227, 224, 225, 227, 225, 226, 228, 223, 224, 226, 221, 222, 224, 217, 218, 220, 213, 214, 216, 210, 211, 213, 207, 208, 210, 206, 207, 209, 202, 203, 205, 201, 202, 204, 199, 200, 202, 197, 198, 200, 194, 195, 197, 192, 193, 195, 190, 191, 193, 191, 191, 193, 186, 186, 186, 184, 183, 181, 179, 177, 178, 176, 175, 173, 174, 173, 171, 171, 170, 168, 166, 165, 163, 163, 162, 160, 167, 163, 162, 167, 163, 160, 168, 164, 161, 168, 164, 161, 168, 163, 160, 167, 162, 158, 165, 160, 157, 164, 159, 156, 164, 159, 156, 164, 159, 156, 164, 159, 156, 164, 159, 156, 164, 159, 156, 164, 159, 156, 166, 158, 156, 166, 158, 156, 159, 151, 149, 155, 147, 145, 150, 142, 140, 144, 136, 133, 143, 133, 132, 143, 133, 131, 146, 136, 134, 147, 137, 135, 158, 147, 145, 162, 148, 147, 165, 151, 150, 168, 156, 156, 173, 161, 161, 177, 167, 166, 180, 170, 169, 181, 173, 171, 181, 176, 173, 180, 176, 173, 182, 178, 175, 182, 181, 179, 185, 184, 182, 189, 188, 186, 192, 191, 189, 193, 193, 191, 198, 202, 201, 202, 206, 205, 206, 210, 211, 210, 214, 215, 214, 218, 221, 219, 222, 227, 226, 229, 234, 230, 233, 238, 229, 232, 239, 230, 233, 240, 232, 235, 242, 234, 237, 244, 236, 239, 246, 237, 240, 245, 237, 240, 245, 237, 240, 245, 237, 240, 245, 238, 241, 246, 240, 243, 248, 242, 245, 250, 243, 246, 251, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 250, 245, 249, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 251, 252, 254, 251, 252, 254, 251, 252, 254, 251, 252, 254, 251, 252, 254, 251, 252, 254, 251, 252, 254, 251, 252, 254, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 240, 241, 243, 239, 240, 242, 238, 239, 241, 237, 238, 240, 236, 237, 239, 235, 236, 238, 234, 235, 237, 233, 234, 236, 228, 229, 231, 227, 228, 230, 225, 226, 228, 223, 224, 226, 219, 220, 222, 215, 216, 218, 211, 212, 214, 210, 210, 210, 204, 203, 198, 201, 198, 191, 195, 192, 185, 190, 187, 180, 189, 184, 178, 186, 181, 175, 186, 179, 173, 183, 176, 170, 178, 171, 165, 179, 172, 166, 181, 172, 167, 182, 173, 168, 181, 170, 166, 177, 166, 162, 173, 162, 158, 171, 160, 156, 171, 160, 156, 177, 166, 162, 180, 169, 165, 174, 163, 159, 165, 154, 150, 161, 150, 146, 165, 154, 150, 172, 161, 157, 172, 161, 157, 172, 161, 157, 170, 159, 155, 167, 156, 152, 163, 152, 148, 162, 151, 147, 164, 153, 149, 167, 156, 152, 174, 163, 159, 176, 165, 161, 179, 168, 164, 172, 161, 157, 164, 155, 150, 171, 162, 157, 173, 164, 159, 161, 152, 147, 146, 139, 133, 155, 148, 142, 166, 159, 153, 171, 164, 158, 171, 164, 158, 169, 162, 156, 164, 157, 151, 157, 152, 146, 181, 177, 174, 183, 182, 178, 186, 187, 182, 189, 190, 185, 190, 190, 188, 190, 190, 188, 190, 190, 188, 191, 191, 189, 196, 198, 195, 212, 214, 211, 232, 234, 233, 244, 246, 245, 242, 244, 243, 232, 234, 233, 224, 226, 225, 219, 221, 220, 233, 235, 234, 235, 237, 236, 239, 241, 240, 241, 243, 242, 242, 244, 243, 241, 243, 242, 239, 241, 240, 238, 240, 239, 238, 240, 239, 239, 241, 240, 240, 242, 241, 241, 243, 242, 243, 245, 244, 244, 246, 245, 245, 247, 246, 246, 248, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 249, 251, 248, 249, 251, 248, 249, 251, 248, 250, 252, 249, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 249, 249, 247, 248, 248, 246, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 246, 244, 246, 246, 244, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 245, 243, 246, 245, 243, 245, 244, 242, 244, 243, 241, 243, 242, 240, 243, 242, 240, 242, 241, 239, 242, 241, 239, 241, 240, 238, 241, 240, 238, 240, 239, 237, 239, 238, 236, 239, 238, 236, 240, 239, 237, 241, 240, 238, 241, 240, 238, 237, 237, 235, 238, 238, 236, 239, 239, 237, 240, 240, 238, 241, 240, 238, 241, 240, 238, 240, 239, 237, 240, 239, 237, 239, 238, 236, 237, 236, 234, 237, 233, 232, 237, 233, 232, 238, 234, 233, 238, 234, 233, 237, 233, 232, 234, 230, 229, 235, 234, 232, 236, 235, 233, 239, 235, 234, 239, 235, 234, 239, 235, 234, 239, 235, 234, 238, 234, 233, 237, 233, 232, 236, 230, 230, 237, 231, 231, 238, 232, 232, 239, 233, 233, 238, 232, 232, 236, 230, 230, 236, 227, 228, 235, 225, 226, 238, 226, 228, 233, 218, 221, 235, 220, 223, 234, 219, 222, 224, 212, 214, 224, 212, 214, 226, 216, 215, 221, 211, 210, 222, 214, 212, 223, 213, 212, 224, 212, 212, 224, 210, 210, 223, 203, 204, 220, 195, 198, 218, 187, 192, 222, 179, 186, 226, 164, 175, 220, 150, 161, 211, 143, 154, 215, 152, 161, 224, 164, 174, 223, 170, 178, 217, 170, 178, 212, 171, 177, 226, 189, 196, 229, 198, 204, 230, 205, 211, 226, 207, 211, 224, 209, 214, 224, 213, 217, 224, 215, 218, 222, 213, 216, 223, 213, 214, 226, 214, 216, 228, 218, 219, 227, 217, 218, 224, 214, 215, 224, 214, 215, 227, 218, 219, 231, 222, 223, 228, 219, 220, 227, 221, 221, 228, 222, 222, 228, 224, 223, 228, 224, 223, 227, 223, 222, 226, 222, 221, 226, 222, 221, 227, 221, 223, 229, 220, 223, 230, 221, 224, 231, 222, 225, 229, 223, 225, 228, 222, 224, 227, 221, 223, 227, 221, 223, 227, 221, 223, 228, 222, 224, 228, 224, 225, 228, 224, 225, 228, 224, 225, 228, 224, 225, 227, 223, 224, 226, 222, 223, 230, 224, 226, 230, 224, 226, 230, 224, 226, 230, 224, 226, 230, 224, 226, 230, 224, 226, 230, 224, 226, 230, 224, 226, 230, 224, 226, 230, 224, 226, 230, 224, 226, 231, 225, 227, 231, 225, 227, 232, 226, 228, 232, 226, 228, 231, 227, 228, 229, 227, 228, 229, 229, 229, 229, 229, 229, 229, 229, 229, 230, 230, 230, 230, 230, 230, 230, 230, 230, 231, 231, 231, 233, 233, 233, 234, 234, 234, 233, 233, 233, 231, 231, 231, 229, 229, 229, 229, 229, 229, 230, 230, 230, 232, 232, 230, 234, 230, 229, 233, 229, 226, 231, 227, 224, 230, 226, 223, 232, 228, 225, 235, 231, 228, 237, 236, 234, 240, 239, 237, 238, 237, 235, 228, 227, 225, 225, 225, 225, 232, 232, 232, 232, 232, 232, 228, 228, 228, 234, 234, 234, 249, 248, 246, 246, 242, 239, 233, 229, 226, 227, 223, 220, 232, 228, 225, 232, 227, 224, 225, 220, 217, 226, 221, 217, 236, 231, 227, 236, 228, 225, 231, 223, 220, 236, 228, 225, 247, 239, 236, 245, 238, 232, 232, 225, 219, 226, 219, 213, 232, 223, 216, 231, 219, 207, 234, 221, 205, 236, 223, 207, 235, 221, 208, 233, 219, 206, 231, 219, 205, 231, 219, 207, 232, 220, 208, 231, 221, 211, 231, 221, 211, 230, 221, 212, 230, 221, 212, 230, 221, 212, 229, 222, 214, 229, 222, 214, 229, 222, 214, 228, 221, 211, 229, 222, 212, 228, 224, 215, 230, 226, 217, 234, 230, 221, 237, 233, 224, 240, 235, 229, 241, 238, 231, 241, 238, 233, 236, 235, 230, 233, 232, 228, 229, 230, 225, 229, 230, 225, 232, 233, 228, 235, 235, 233, 238, 239, 234, 228, 227, 222, 229, 226, 219, 227, 224, 219, 227, 224, 219, 228, 225, 220, 231, 228, 223, 232, 231, 226, 234, 233, 228, 231, 230, 226, 231, 230, 226, 231, 230, 226, 231, 230, 226, 230, 231, 226, 230, 231, 226, 230, 230, 228, 230, 230, 228, 231, 230, 226, 232, 231, 227, 232, 231, 227, 232, 231, 227, 233, 232, 228, 233, 232, 228, 233, 232, 228, 234, 233, 229, 238, 237, 233, 238, 237, 233, 238, 237, 233, 237, 236, 232, 236, 235, 231, 235, 234, 230, 233, 232, 228, 232, 231, 227, 234, 235, 230, 234, 235, 230, 234, 235, 230, 234, 235, 230, 234, 235, 230, 234, 235, 230, 234, 235, 230, 234, 235, 230, 235, 236, 231, 235, 236, 231, 235, 236, 231, 236, 237, 232, 236, 237, 232, 236, 237, 232, 237, 238, 233, 237, 238, 233, 236, 237, 232, 236, 237, 232, 237, 238, 233, 237, 238, 233, 237, 238, 233, 238, 239, 234, 238, 239, 234, 238, 239, 234, 238, 239, 234, 238, 239, 234, 238, 239, 234, 238, 239, 234, 238, 239, 234, 238, 239, 234, 238, 239, 234, 238, 239, 234, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 240, 240, 238, 240, 240, 238, 241, 241, 239, 241, 241, 239, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 239, 241, 238, 239, 241, 238, 239, 241, 238, 239, 241, 238, 239, 241, 238, 239, 241, 238, 239, 241, 238, 239, 241, 238, 238, 240, 237, 238, 240, 237, 238, 240, 237, 238, 240, 237, 237, 239, 236, 237, 239, 236, 236, 238, 235, 236, 238, 235, 236, 237, 239, 235, 236, 238, 235, 236, 238, 235, 236, 238, 234, 235, 237, 234, 235, 237, 234, 235, 237, 233, 234, 236, 232, 233, 235, 232, 233, 235, 231, 232, 234, 229, 230, 232, 228, 229, 231, 226, 227, 229, 225, 226, 228, 225, 226, 228, 225, 226, 228, 223, 224, 226, 221, 222, 224, 217, 218, 220, 214, 215, 217, 211, 212, 214, 208, 209, 211, 207, 208, 210, 202, 203, 205, 201, 202, 204, 200, 201, 203, 197, 198, 200, 195, 196, 198, 192, 193, 195, 190, 191, 193, 189, 190, 192, 185, 185, 185, 183, 182, 180, 179, 178, 176, 176, 175, 173, 175, 174, 172, 172, 171, 169, 168, 167, 165, 165, 164, 162, 169, 165, 162, 169, 165, 162, 169, 165, 162, 168, 164, 161, 168, 163, 159, 166, 161, 157, 164, 159, 155, 163, 158, 154, 163, 158, 155, 163, 158, 155, 163, 158, 155, 163, 158, 155, 163, 158, 155, 163, 158, 155, 166, 158, 156, 166, 158, 156, 159, 151, 149, 156, 148, 146, 151, 143, 141, 146, 138, 136, 144, 134, 133, 145, 135, 134, 147, 137, 136, 148, 138, 137, 160, 146, 146, 162, 148, 148, 165, 151, 151, 170, 156, 156, 172, 160, 160, 177, 165, 165, 179, 169, 168, 181, 171, 170, 180, 172, 170, 179, 174, 171, 180, 175, 172, 182, 178, 175, 185, 181, 178, 187, 186, 182, 190, 189, 185, 191, 192, 187, 197, 199, 196, 198, 203, 199, 203, 207, 206, 207, 211, 210, 210, 214, 215, 216, 220, 223, 222, 225, 230, 227, 230, 235, 228, 231, 238, 229, 232, 239, 232, 235, 242, 234, 237, 244, 236, 239, 246, 237, 240, 247, 237, 240, 245, 237, 240, 245, 237, 240, 247, 238, 241, 248, 240, 243, 248, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 250, 245, 249, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 242, 246, 249, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 242, 244, 241, 242, 244, 241, 242, 244, 241, 242, 244, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 229, 230, 232, 228, 229, 231, 226, 227, 229, 222, 223, 225, 218, 219, 221, 213, 214, 216, 208, 209, 211, 207, 207, 207, 205, 204, 200, 203, 200, 195, 198, 193, 189, 194, 189, 185, 191, 186, 182, 188, 183, 179, 187, 180, 174, 184, 177, 171, 184, 175, 170, 184, 175, 170, 186, 175, 171, 185, 174, 170, 183, 172, 168, 179, 168, 164, 175, 164, 160, 173, 162, 158, 177, 166, 162, 180, 169, 165, 179, 168, 164, 171, 160, 156, 161, 150, 146, 158, 147, 143, 165, 154, 150, 173, 162, 158, 167, 156, 152, 167, 156, 152, 166, 155, 151, 163, 152, 148, 160, 149, 145, 159, 148, 144, 161, 150, 146, 164, 153, 149, 159, 148, 144, 174, 163, 159, 171, 160, 156, 161, 150, 146, 171, 160, 156, 180, 169, 165, 167, 158, 153, 150, 141, 136, 156, 147, 142, 160, 151, 146, 163, 156, 150, 162, 155, 149, 161, 154, 148, 162, 155, 149, 166, 159, 153, 169, 164, 158, 188, 184, 181, 192, 191, 187, 193, 192, 188, 185, 184, 180, 174, 175, 170, 177, 178, 173, 194, 194, 192, 212, 212, 210, 225, 225, 223, 234, 234, 232, 240, 242, 241, 233, 235, 234, 220, 222, 221, 213, 215, 214, 218, 220, 219, 227, 229, 228, 244, 246, 245, 244, 246, 245, 242, 244, 243, 240, 242, 241, 238, 240, 239, 235, 237, 236, 233, 235, 234, 232, 234, 233, 240, 242, 241, 240, 242, 241, 241, 243, 242, 242, 244, 243, 244, 246, 245, 245, 247, 246, 246, 248, 247, 246, 248, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 249, 251, 248, 249, 251, 248, 250, 252, 249, 250, 252, 249, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 245, 245, 243, 245, 245, 243, 245, 245, 243, 244, 244, 242, 244, 243, 241, 244, 243, 241, 243, 242, 240, 243, 242, 240, 242, 241, 239, 241, 240, 238, 240, 239, 237, 240, 239, 237, 240, 239, 237, 240, 239, 237, 239, 238, 236, 238, 237, 235, 238, 237, 235, 239, 238, 236, 240, 239, 237, 240, 239, 237, 237, 237, 235, 238, 238, 236, 239, 239, 237, 240, 240, 238, 241, 240, 238, 240, 239, 237, 239, 238, 236, 239, 238, 236, 239, 238, 236, 236, 235, 233, 236, 232, 231, 235, 231, 230, 235, 231, 230, 234, 230, 229, 232, 228, 227, 229, 225, 224, 235, 234, 232, 236, 235, 233, 239, 235, 234, 239, 235, 234, 239, 235, 234, 239, 235, 234, 238, 234, 233, 237, 233, 232, 237, 231, 231, 237, 231, 231, 237, 231, 231, 237, 231, 231, 235, 229, 229, 233, 227, 227, 232, 223, 224, 232, 222, 223, 239, 227, 229, 232, 220, 222, 233, 221, 223, 232, 220, 222, 224, 212, 214, 225, 213, 215, 227, 217, 216, 222, 212, 211, 224, 216, 214, 225, 215, 214, 225, 213, 213, 226, 210, 211, 225, 203, 205, 221, 195, 198, 219, 187, 192, 222, 179, 186, 229, 169, 179, 224, 156, 167, 217, 151, 161, 220, 159, 167, 225, 168, 177, 224, 171, 179, 219, 172, 180, 215, 174, 180, 225, 188, 195, 225, 194, 199, 224, 199, 203, 222, 202, 204, 223, 207, 210, 225, 213, 215, 222, 211, 215, 217, 206, 210, 224, 212, 214, 226, 214, 216, 228, 216, 218, 227, 215, 217, 224, 214, 215, 224, 214, 215, 226, 216, 217, 227, 218, 219, 226, 217, 218, 224, 218, 218, 226, 220, 220, 227, 221, 221, 227, 221, 221, 226, 222, 221, 225, 221, 220, 224, 220, 219, 227, 221, 223, 230, 221, 224, 230, 221, 224, 231, 222, 225, 229, 223, 225, 228, 222, 224, 228, 222, 224, 227, 221, 223, 228, 222, 224, 228, 222, 224, 228, 224, 225, 229, 225, 226, 229, 225, 226, 228, 224, 225, 227, 223, 224, 227, 223, 224, 229, 223, 225, 229, 223, 225, 229, 223, 225, 229, 223, 225, 229, 223, 225, 229, 223, 225, 229, 223, 225, 229, 223, 225, 230, 224, 226, 230, 224, 226, 230, 224, 226, 231, 225, 227, 231, 225, 227, 231, 225, 227, 232, 226, 228, 231, 227, 228, 229, 227, 228, 228, 228, 228, 229, 229, 229, 229, 229, 229, 229, 229, 229, 230, 230, 230, 230, 230, 230, 230, 230, 230, 227, 227, 227, 233, 233, 233, 237, 237, 237, 235, 235, 235, 229, 229, 229, 226, 226, 226, 229, 229, 229, 233, 233, 231, 234, 230, 229, 233, 229, 226, 231, 227, 224, 230, 226, 223, 231, 227, 224, 233, 229, 226, 235, 231, 228, 237, 233, 230, 244, 243, 241, 235, 234, 232, 231, 230, 228, 234, 233, 231, 229, 228, 226, 221, 220, 218, 228, 227, 225, 244, 243, 241, 255, 253, 250, 238, 234, 231, 227, 222, 219, 229, 224, 221, 230, 225, 221, 225, 220, 216, 227, 222, 218, 237, 232, 228, 236, 228, 225, 225, 217, 214, 227, 220, 214, 244, 237, 231, 252, 245, 239, 242, 235, 229, 232, 223, 218, 230, 221, 214, 233, 221, 209, 231, 219, 205, 230, 218, 204, 231, 219, 207, 233, 221, 209, 234, 222, 210, 232, 220, 208, 229, 219, 207, 231, 221, 211, 231, 221, 211, 231, 221, 211, 230, 222, 211, 230, 222, 211, 230, 221, 212, 230, 221, 212, 230, 221, 212, 229, 222, 212, 229, 222, 212, 229, 222, 212, 230, 223, 213, 232, 225, 217, 232, 228, 219, 235, 231, 222, 235, 232, 223, 244, 241, 234, 238, 238, 230, 232, 231, 226, 228, 227, 222, 228, 227, 222, 232, 233, 227, 238, 239, 234, 242, 243, 238, 232, 231, 226, 232, 229, 222, 229, 226, 221, 228, 225, 220, 228, 225, 220, 230, 227, 222, 232, 231, 226, 234, 233, 228, 231, 230, 226, 231, 230, 226, 231, 230, 226, 231, 230, 226, 230, 231, 226, 230, 231, 226, 230, 230, 228, 230, 230, 228, 232, 231, 227, 232, 231, 227, 232, 231, 227, 233, 232, 228, 233, 232, 228, 233, 232, 228, 234, 233, 229, 234, 233, 229, 232, 231, 227, 235, 234, 230, 237, 236, 232, 240, 239, 235, 239, 238, 234, 237, 236, 232, 234, 233, 229, 232, 231, 227, 234, 235, 230, 234, 235, 230, 234, 235, 230, 234, 235, 230, 234, 235, 230, 234, 235, 230, 234, 235, 230, 234, 235, 230, 235, 236, 231, 235, 236, 231, 236, 237, 232, 236, 237, 232, 236, 237, 232, 237, 238, 233, 237, 238, 233, 237, 238, 233, 236, 237, 232, 237, 238, 233, 237, 238, 233, 237, 238, 233, 238, 239, 234, 238, 239, 234, 238, 239, 234, 238, 239, 234, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 239, 237, 239, 239, 237, 239, 239, 237, 240, 240, 238, 240, 240, 238, 240, 240, 238, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 239, 241, 238, 239, 241, 238, 239, 241, 238, 239, 241, 238, 239, 241, 238, 239, 241, 238, 239, 241, 238, 239, 241, 238, 239, 241, 238, 239, 241, 238, 238, 240, 237, 238, 240, 237, 237, 239, 236, 237, 239, 236, 237, 239, 236, 237, 239, 236, 235, 236, 238, 235, 236, 238, 235, 236, 238, 234, 235, 237, 234, 235, 237, 234, 235, 237, 233, 234, 236, 233, 234, 236, 233, 234, 236, 232, 233, 235, 232, 233, 235, 230, 231, 233, 229, 230, 232, 228, 229, 231, 227, 228, 230, 226, 227, 229, 225, 226, 228, 224, 225, 227, 222, 223, 225, 218, 219, 221, 215, 216, 218, 212, 213, 215, 210, 211, 213, 208, 209, 211, 204, 205, 207, 203, 204, 206, 201, 202, 204, 198, 199, 201, 195, 196, 198, 193, 194, 196, 191, 192, 194, 190, 191, 193, 186, 186, 186, 183, 183, 183, 180, 179, 177, 178, 177, 175, 177, 176, 174, 175, 174, 172, 172, 171, 169, 169, 168, 166, 171, 167, 164, 170, 166, 163, 169, 165, 162, 167, 163, 160, 165, 161, 158, 162, 158, 155, 161, 156, 152, 160, 155, 151, 161, 156, 153, 161, 156, 153, 162, 157, 154, 162, 157, 154, 162, 157, 154, 163, 158, 155, 165, 157, 155, 165, 157, 155, 160, 152, 150, 157, 149, 147, 153, 145, 143, 148, 140, 138, 147, 137, 136, 148, 138, 137, 149, 139, 138, 150, 140, 139, 160, 146, 146, 162, 148, 148, 165, 151, 151, 169, 155, 155, 171, 159, 159, 175, 163, 163, 177, 167, 166, 179, 169, 168, 178, 170, 168, 176, 171, 168, 178, 173, 170, 179, 175, 172, 183, 179, 176, 186, 182, 179, 188, 187, 183, 188, 189, 184, 193, 195, 192, 196, 198, 195, 200, 202, 201, 204, 206, 205, 208, 209, 211, 213, 214, 218, 220, 221, 226, 225, 226, 231, 227, 230, 237, 228, 231, 238, 230, 233, 240, 233, 236, 243, 235, 238, 243, 236, 239, 244, 237, 240, 245, 237, 240, 245, 236, 239, 246, 237, 240, 247, 239, 242, 247, 241, 244, 249, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 250, 245, 249, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 242, 246, 249, 241, 245, 248, 241, 245, 248, 244, 245, 247, 244, 245, 247, 243, 244, 246, 242, 243, 245, 241, 242, 244, 240, 241, 243, 240, 241, 243, 239, 240, 242, 230, 231, 233, 229, 230, 232, 226, 227, 229, 222, 223, 225, 217, 218, 220, 212, 213, 215, 207, 208, 210, 205, 205, 205, 205, 204, 200, 203, 200, 195, 199, 194, 190, 195, 190, 186, 192, 187, 183, 189, 184, 180, 187, 180, 174, 184, 177, 171, 190, 181, 176, 189, 180, 175, 190, 179, 175, 188, 177, 173, 185, 174, 170, 181, 170, 166, 178, 167, 163, 176, 165, 161, 178, 167, 163, 171, 160, 156, 164, 153, 149, 161, 150, 146, 162, 151, 147, 164, 153, 149, 163, 152, 148, 161, 150, 146, 166, 155, 151, 166, 155, 151, 164, 153, 149, 160, 149, 145, 156, 145, 141, 155, 144, 140, 156, 145, 141, 159, 148, 144, 151, 140, 136, 167, 156, 152, 161, 150, 146, 160, 149, 145, 183, 172, 168, 183, 172, 168, 160, 151, 146, 152, 143, 138, 158, 149, 144, 154, 145, 140, 150, 143, 137, 148, 141, 135, 150, 143, 137, 161, 154, 148, 182, 175, 169, 197, 192, 186, 194, 191, 186, 183, 182, 178, 173, 172, 168, 169, 168, 164, 178, 179, 174, 200, 201, 196, 226, 226, 224, 243, 243, 241, 239, 239, 237, 229, 229, 227, 214, 216, 215, 206, 208, 207, 208, 210, 209, 219, 221, 220, 233, 235, 234, 242, 244, 243, 243, 245, 244, 241, 243, 242, 237, 239, 238, 235, 237, 236, 233, 235, 234, 232, 234, 233, 233, 235, 234, 234, 236, 235, 241, 243, 242, 242, 244, 243, 242, 244, 243, 243, 245, 244, 244, 246, 245, 245, 247, 246, 246, 248, 247, 246, 248, 247, 247, 249, 246, 247, 249, 246, 248, 250, 247, 248, 250, 247, 248, 250, 247, 249, 251, 248, 249, 251, 248, 249, 251, 248, 246, 248, 245, 246, 248, 245, 246, 248, 245, 246, 248, 245, 246, 248, 245, 246, 248, 245, 246, 248, 245, 246, 248, 245, 247, 247, 245, 246, 246, 244, 246, 246, 244, 246, 246, 244, 245, 245, 243, 245, 245, 243, 245, 245, 243, 244, 244, 242, 246, 246, 244, 246, 246, 244, 245, 245, 243, 245, 245, 243, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 242, 240, 243, 242, 240, 242, 241, 239, 241, 240, 238, 240, 239, 237, 240, 239, 237, 239, 238, 236, 239, 238, 236, 239, 238, 236, 239, 238, 236, 238, 237, 235, 237, 236, 234, 237, 236, 234, 238, 237, 235, 239, 238, 236, 239, 238, 236, 237, 237, 235, 238, 238, 236, 239, 239, 237, 239, 239, 237, 240, 239, 237, 239, 238, 236, 238, 237, 235, 237, 236, 234, 237, 236, 234, 235, 234, 232, 235, 231, 230, 234, 230, 229, 235, 231, 230, 235, 231, 230, 233, 229, 228, 230, 226, 225, 235, 234, 232, 235, 234, 232, 238, 234, 233, 239, 235, 234, 239, 235, 234, 238, 234, 233, 237, 233, 232, 237, 233, 232, 238, 232, 232, 237, 231, 231, 236, 230, 230, 234, 228, 228, 232, 226, 226, 230, 224, 224, 230, 221, 222, 229, 220, 221, 238, 228, 229, 231, 221, 222, 233, 223, 224, 233, 221, 223, 225, 213, 215, 225, 213, 215, 227, 217, 216, 222, 212, 211, 226, 216, 215, 225, 215, 214, 228, 214, 214, 228, 209, 211, 224, 202, 204, 223, 194, 198, 218, 186, 191, 221, 178, 185, 230, 173, 182, 227, 164, 173, 223, 162, 170, 227, 167, 175, 228, 172, 181, 225, 174, 181, 222, 175, 183, 219, 178, 184, 222, 187, 193, 221, 190, 195, 218, 191, 196, 217, 195, 198, 222, 203, 207, 225, 210, 213, 220, 208, 212, 212, 200, 204, 223, 211, 213, 224, 212, 214, 225, 213, 215, 226, 214, 216, 225, 213, 215, 223, 213, 214, 223, 213, 214, 224, 214, 215, 225, 215, 216, 225, 216, 217, 227, 218, 219, 226, 220, 220, 227, 221, 221, 226, 220, 220, 226, 220, 220, 226, 220, 220, 228, 219, 222, 229, 220, 223, 230, 221, 224, 231, 222, 225, 229, 223, 225, 228, 222, 224, 227, 221, 223, 226, 220, 222, 227, 221, 223, 228, 222, 224, 228, 224, 225, 229, 225, 226, 229, 225, 226, 228, 224, 225, 227, 223, 224, 226, 222, 223, 229, 223, 225, 229, 223, 225, 229, 223, 225, 229, 223, 225, 229, 223, 225, 229, 223, 225, 229, 223, 225, 229, 223, 225, 229, 223, 225, 229, 223, 225, 230, 224, 226, 230, 224, 226, 231, 225, 227, 231, 225, 227, 231, 225, 227, 230, 226, 227, 229, 227, 228, 228, 228, 228, 228, 228, 228, 229, 229, 229, 229, 229, 229, 229, 229, 229, 230, 230, 230, 230, 230, 230, 226, 226, 226, 231, 231, 231, 235, 235, 235, 235, 235, 235, 232, 232, 232, 229, 229, 229, 229, 229, 229, 231, 230, 228, 234, 230, 227, 233, 229, 226, 231, 227, 224, 230, 226, 223, 230, 226, 223, 230, 226, 223, 231, 227, 224, 232, 228, 225, 233, 232, 230, 244, 243, 241, 243, 242, 240, 229, 228, 226, 222, 221, 219, 228, 227, 225, 233, 232, 230, 229, 228, 224, 243, 239, 236, 247, 243, 240, 242, 237, 234, 228, 223, 220, 225, 220, 216, 233, 228, 224, 233, 228, 224, 225, 220, 216, 226, 218, 215, 232, 224, 221, 232, 225, 219, 230, 223, 217, 240, 233, 227, 251, 244, 238, 245, 236, 231, 228, 219, 212, 234, 224, 214, 229, 219, 207, 228, 216, 204, 229, 217, 205, 234, 222, 210, 236, 224, 212, 231, 221, 209, 228, 218, 206, 231, 221, 211, 231, 221, 211, 231, 221, 211, 231, 221, 211, 231, 221, 211, 230, 222, 211, 231, 221, 211, 230, 222, 211, 231, 223, 212, 229, 222, 212, 229, 222, 212, 228, 221, 211, 229, 222, 212, 230, 223, 215, 232, 225, 217, 230, 226, 217, 238, 233, 227, 238, 235, 228, 239, 236, 231, 237, 236, 231, 237, 236, 231, 236, 235, 230, 234, 233, 229, 233, 232, 227, 243, 240, 233, 242, 239, 232, 240, 237, 232, 237, 234, 229, 234, 231, 226, 232, 229, 224, 229, 228, 223, 228, 227, 222, 231, 230, 226, 231, 230, 226, 231, 230, 226, 231, 230, 226, 230, 231, 226, 230, 231, 226, 230, 230, 228, 230, 230, 228, 232, 231, 227, 232, 231, 227, 233, 232, 228, 233, 232, 228, 233, 232, 228, 234, 233, 229, 234, 233, 229, 234, 233, 229, 232, 231, 227, 233, 232, 228, 236, 235, 231, 238, 237, 233, 238, 237, 233, 238, 237, 233, 237, 236, 232, 236, 235, 231, 235, 236, 231, 235, 236, 231, 235, 236, 231, 235, 236, 231, 235, 236, 231, 235, 236, 231, 235, 236, 231, 235, 236, 231, 235, 236, 231, 236, 237, 232, 236, 237, 232, 236, 237, 232, 237, 238, 233, 237, 238, 233, 237, 238, 233, 238, 239, 234, 237, 238, 233, 237, 238, 233, 237, 238, 233, 238, 239, 234, 238, 239, 234, 238, 239, 234, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 239, 237, 239, 239, 237, 240, 240, 238, 240, 240, 238, 240, 240, 238, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 239, 241, 238, 239, 241, 238, 239, 241, 238, 239, 241, 238, 239, 241, 238, 239, 241, 238, 239, 241, 238, 239, 241, 238, 239, 241, 238, 239, 241, 238, 239, 241, 238, 238, 240, 237, 238, 240, 237, 237, 239, 236, 237, 239, 236, 237, 239, 236, 235, 236, 238, 235, 236, 238, 235, 236, 238, 234, 235, 237, 234, 235, 237, 234, 235, 237, 233, 234, 236, 233, 234, 236, 234, 235, 237, 233, 234, 236, 233, 234, 236, 232, 233, 235, 231, 232, 234, 230, 231, 233, 229, 230, 232, 229, 230, 232, 226, 227, 229, 225, 226, 228, 223, 224, 226, 220, 221, 223, 217, 218, 220, 214, 215, 217, 212, 213, 215, 211, 212, 214, 206, 207, 209, 205, 206, 208, 203, 204, 206, 200, 201, 203, 197, 198, 200, 194, 195, 197, 192, 193, 195, 190, 191, 193, 189, 189, 189, 186, 186, 186, 184, 183, 181, 182, 181, 179, 182, 181, 179, 181, 180, 178, 178, 177, 175, 175, 174, 172, 172, 168, 165, 170, 166, 163, 167, 163, 160, 164, 160, 157, 160, 156, 153, 158, 154, 151, 157, 152, 148, 156, 151, 147, 159, 154, 151, 160, 155, 152, 160, 155, 152, 161, 156, 153, 161, 156, 153, 162, 157, 154, 164, 156, 154, 165, 157, 155, 161, 153, 151, 159, 151, 149, 155, 147, 145, 152, 144, 142, 151, 141, 140, 151, 141, 140, 152, 142, 141, 153, 143, 142, 161, 147, 147, 162, 148, 148, 165, 151, 151, 168, 154, 154, 170, 158, 158, 173, 161, 161, 175, 165, 164, 176, 166, 165, 177, 169, 167, 177, 169, 167, 177, 172, 169, 179, 174, 171, 181, 177, 174, 185, 181, 178, 186, 185, 181, 188, 187, 183, 190, 190, 188, 193, 195, 192, 197, 199, 198, 201, 203, 202, 205, 206, 208, 210, 211, 213, 217, 218, 223, 222, 223, 228, 224, 227, 234, 226, 229, 236, 228, 231, 238, 231, 234, 241, 233, 236, 241, 235, 238, 243, 236, 239, 244, 236, 239, 244, 236, 239, 246, 237, 240, 247, 238, 241, 246, 240, 243, 248, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 249, 244, 248, 249, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 242, 246, 249, 247, 248, 250, 246, 247, 249, 244, 245, 247, 242, 243, 245, 239, 240, 242, 237, 238, 240, 235, 236, 238, 235, 236, 238, 231, 232, 234, 230, 231, 233, 227, 228, 230, 223, 224, 226, 218, 219, 221, 213, 214, 216, 208, 209, 211, 207, 207, 207, 207, 203, 202, 204, 199, 196, 200, 195, 192, 197, 192, 189, 196, 188, 185, 193, 185, 182, 188, 180, 177, 184, 176, 173, 190, 180, 178, 189, 179, 177, 188, 177, 173, 185, 174, 170, 183, 169, 166, 180, 166, 163, 176, 162, 159, 175, 161, 158, 170, 156, 153, 166, 152, 149, 162, 148, 145, 162, 148, 145, 164, 150, 147, 164, 150, 147, 161, 147, 144, 158, 144, 141, 167, 153, 150, 167, 153, 150, 164, 150, 147, 159, 145, 142, 153, 139, 136, 151, 137, 134, 152, 138, 135, 154, 140, 137, 156, 145, 139, 160, 149, 143, 155, 144, 138, 165, 154, 148, 184, 173, 167, 169, 158, 152, 146, 135, 129, 151, 140, 134, 139, 130, 123, 139, 130, 123, 147, 138, 131, 158, 149, 142, 167, 158, 151, 174, 165, 158, 187, 180, 172, 200, 195, 189, 191, 188, 183, 171, 170, 166, 163, 162, 158, 185, 184, 180, 222, 221, 217, 244, 243, 239, 237, 237, 235, 222, 222, 220, 201, 201, 199, 202, 202, 200, 206, 208, 205, 219, 221, 218, 235, 237, 236, 244, 246, 245, 243, 245, 244, 239, 241, 240, 230, 232, 231, 229, 231, 230, 228, 230, 229, 228, 230, 229, 230, 232, 231, 233, 235, 234, 237, 239, 238, 240, 242, 241, 242, 244, 243, 242, 244, 243, 243, 245, 244, 243, 245, 244, 244, 246, 245, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 248, 245, 246, 248, 245, 246, 248, 245, 247, 249, 246, 247, 249, 246, 247, 249, 246, 248, 250, 247, 248, 250, 247, 245, 247, 244, 245, 247, 244, 245, 247, 244, 245, 247, 244, 245, 247, 244, 245, 247, 244, 245, 247, 244, 245, 247, 244, 245, 245, 243, 245, 245, 243, 245, 245, 243, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 245, 245, 243, 245, 245, 243, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 243, 243, 241, 242, 241, 239, 242, 241, 239, 241, 240, 238, 240, 239, 237, 240, 239, 237, 239, 238, 236, 238, 237, 235, 238, 237, 235, 239, 238, 236, 238, 237, 235, 237, 236, 234, 237, 236, 234, 237, 236, 234, 237, 236, 234, 238, 237, 235, 239, 238, 236, 237, 237, 235, 238, 238, 236, 238, 238, 236, 238, 238, 236, 239, 238, 236, 238, 237, 235, 236, 235, 233, 235, 234, 232, 235, 234, 232, 233, 232, 230, 234, 230, 229, 235, 231, 230, 237, 233, 232, 238, 234, 233, 237, 233, 232, 236, 232, 231, 233, 232, 230, 234, 233, 231, 237, 233, 232, 238, 234, 233, 238, 234, 233, 237, 233, 232, 236, 232, 231, 235, 231, 230, 238, 232, 232, 236, 230, 230, 234, 228, 228, 232, 226, 226, 230, 224, 224, 228, 222, 222, 229, 220, 221, 228, 219, 220, 237, 228, 229, 230, 221, 222, 231, 222, 223, 231, 221, 222, 223, 213, 214, 224, 214, 215, 227, 217, 216, 221, 211, 210, 223, 213, 212, 224, 212, 212, 226, 210, 211, 227, 207, 209, 225, 200, 203, 222, 191, 196, 219, 184, 190, 220, 177, 184, 223, 170, 178, 224, 164, 174, 222, 165, 174, 225, 169, 178, 225, 172, 182, 221, 171, 180, 219, 174, 181, 219, 180, 185, 218, 183, 189, 217, 186, 191, 215, 188, 193, 216, 191, 195, 219, 198, 203, 224, 205, 209, 219, 203, 206, 210, 195, 198, 221, 206, 209, 221, 206, 209, 222, 207, 210, 224, 209, 212, 225, 210, 213, 223, 211, 213, 221, 209, 211, 219, 209, 210, 224, 214, 215, 224, 215, 216, 226, 217, 218, 228, 219, 220, 229, 220, 221, 227, 221, 221, 227, 221, 221, 226, 220, 220, 227, 218, 219, 228, 219, 220, 229, 220, 221, 229, 220, 221, 229, 220, 221, 229, 220, 221, 226, 220, 220, 225, 219, 219, 227, 221, 221, 227, 221, 221, 228, 222, 222, 229, 223, 223, 228, 224, 223, 227, 223, 222, 226, 222, 221, 226, 222, 221, 228, 222, 222, 228, 222, 222, 228, 222, 222, 228, 222, 222, 228, 222, 222, 228, 222, 222, 228, 222, 222, 228, 222, 222, 229, 223, 223, 229, 223, 223, 229, 223, 223, 230, 224, 224, 230, 224, 224, 230, 224, 224, 231, 225, 225, 230, 226, 225, 228, 227, 225, 229, 228, 226, 229, 228, 226, 229, 228, 226, 230, 229, 227, 230, 229, 227, 230, 229, 227, 230, 229, 227, 230, 229, 227, 229, 228, 226, 229, 228, 226, 232, 231, 229, 236, 235, 233, 236, 235, 233, 231, 230, 228, 227, 226, 224, 233, 229, 226, 233, 229, 226, 231, 227, 224, 230, 226, 223, 230, 226, 223, 229, 225, 222, 229, 225, 222, 229, 225, 222, 226, 222, 219, 240, 236, 233, 244, 240, 237, 235, 231, 228, 230, 226, 223, 235, 231, 228, 234, 230, 227, 226, 222, 219, 228, 223, 220, 244, 239, 235, 250, 245, 241, 241, 236, 232, 233, 228, 224, 234, 229, 225, 232, 225, 219, 223, 216, 210, 226, 219, 213, 233, 226, 220, 233, 226, 220, 226, 219, 213, 230, 221, 214, 243, 234, 227, 246, 237, 230, 238, 229, 222, 236, 227, 218, 231, 223, 212, 227, 217, 207, 228, 218, 208, 231, 221, 211, 233, 223, 213, 231, 221, 211, 228, 218, 208, 230, 220, 208, 230, 220, 208, 232, 220, 208, 232, 220, 208, 232, 220, 208, 230, 220, 208, 232, 220, 208, 230, 220, 208, 232, 222, 210, 230, 222, 211, 229, 221, 210, 228, 220, 209, 228, 220, 209, 228, 221, 211, 229, 222, 212, 228, 224, 213, 228, 224, 215, 231, 228, 219, 236, 233, 226, 241, 238, 231, 243, 240, 233, 241, 238, 231, 238, 235, 230, 235, 232, 227, 241, 238, 231, 242, 239, 232, 243, 240, 235, 243, 240, 235, 240, 237, 232, 236, 233, 228, 229, 228, 223, 226, 225, 220, 232, 231, 227, 232, 231, 227, 232, 231, 227, 232, 231, 227, 231, 232, 227, 231, 232, 227, 231, 231, 229, 231, 231, 229, 233, 232, 228, 233, 232, 228, 233, 232, 228, 233, 232, 228, 234, 233, 229, 234, 233, 229, 234, 233, 229, 235, 234, 230, 235, 234, 230, 234, 233, 229, 233, 232, 228, 233, 232, 228, 234, 233, 229, 237, 236, 232, 239, 238, 234, 241, 240, 236, 236, 237, 232, 236, 237, 232, 236, 237, 232, 236, 237, 232, 236, 237, 232, 236, 237, 232, 236, 237, 232, 236, 237, 232, 236, 237, 232, 236, 237, 232, 236, 237, 232, 237, 238, 233, 237, 238, 233, 238, 239, 234, 238, 239, 234, 238, 239, 234, 237, 238, 233, 237, 238, 233, 238, 239, 234, 238, 239, 234, 238, 239, 234, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 240, 235, 240, 240, 238, 240, 240, 238, 240, 240, 238, 241, 241, 239, 241, 241, 239, 241, 241, 239, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 240, 242, 239, 240, 242, 239, 240, 242, 239, 240, 242, 239, 240, 242, 239, 240, 242, 239, 240, 242, 239, 240, 242, 239, 240, 242, 239, 239, 241, 238, 239, 241, 238, 239, 241, 238, 238, 240, 237, 238, 240, 237, 238, 240, 237, 237, 239, 236, 236, 237, 239, 236, 237, 239, 236, 237, 239, 235, 236, 238, 235, 236, 238, 234, 235, 237, 234, 235, 237, 234, 235, 237, 234, 235, 237, 234, 235, 237, 234, 235, 237, 233, 234, 236, 232, 233, 235, 232, 233, 235, 231, 232, 234, 231, 232, 234, 229, 230, 232, 227, 228, 230, 226, 227, 229, 223, 224, 226, 220, 221, 223, 218, 219, 221, 216, 217, 219, 215, 216, 218, 210, 211, 213, 208, 209, 211, 206, 207, 209, 203, 204, 206, 199, 200, 202, 196, 197, 199, 193, 194, 196, 192, 193, 195, 193, 193, 193, 190, 190, 190, 187, 187, 187, 186, 186, 186, 186, 185, 183, 185, 184, 182, 182, 181, 179, 179, 178, 176, 169, 168, 166, 166, 165, 163, 164, 160, 157, 160, 156, 153, 156, 152, 149, 154, 150, 147, 153, 149, 146, 152, 148, 145, 158, 153, 150, 159, 154, 151, 159, 154, 151, 160, 155, 152, 161, 156, 153, 162, 157, 154, 165, 157, 155, 165, 157, 155, 162, 154, 152, 161, 153, 151, 158, 150, 148, 156, 148, 146, 155, 145, 144, 155, 145, 144, 155, 145, 144, 156, 146, 145, 161, 147, 146, 162, 148, 147, 162, 151, 149, 165, 154, 152, 168, 157, 155, 171, 160, 158, 172, 162, 160, 173, 163, 161, 176, 168, 165, 176, 168, 165, 176, 171, 167, 178, 173, 169, 180, 177, 172, 184, 181, 176, 187, 184, 179, 187, 186, 182, 188, 188, 186, 192, 192, 190, 196, 196, 196, 200, 200, 200, 203, 204, 206, 208, 209, 211, 215, 216, 221, 219, 220, 225, 223, 224, 229, 225, 226, 231, 225, 228, 233, 228, 231, 236, 231, 234, 239, 233, 236, 241, 234, 237, 242, 234, 237, 242, 235, 238, 245, 236, 239, 246, 238, 241, 246, 239, 242, 247, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 249, 244, 248, 249, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 247, 248, 250, 246, 247, 249, 244, 245, 247, 241, 242, 244, 238, 239, 241, 235, 236, 238, 233, 234, 236, 232, 233, 235, 232, 233, 235, 231, 232, 234, 229, 230, 232, 226, 227, 229, 221, 222, 224, 216, 217, 219, 212, 213, 215, 211, 211, 211, 209, 205, 204, 207, 202, 199, 204, 199, 196, 201, 196, 193, 201, 193, 191, 196, 188, 185, 190, 182, 179, 186, 178, 175, 187, 177, 175, 185, 175, 173, 183, 172, 168, 179, 168, 164, 176, 162, 159, 173, 159, 156, 170, 156, 153, 168, 154, 151, 161, 147, 144, 167, 153, 150, 170, 156, 153, 165, 151, 148, 156, 142, 139, 151, 137, 134, 155, 141, 138, 161, 147, 144, 161, 147, 144, 160, 146, 143, 157, 143, 140, 153, 139, 136, 148, 134, 131, 146, 132, 129, 147, 133, 130, 149, 135, 132, 149, 138, 132, 145, 134, 128, 148, 137, 131, 166, 155, 149, 174, 163, 157, 156, 145, 139, 145, 134, 128, 157, 146, 140, 153, 144, 137, 147, 138, 131, 149, 140, 133, 161, 152, 145, 170, 161, 154, 173, 164, 157, 180, 173, 165, 189, 184, 178, 184, 181, 176, 195, 194, 190, 215, 214, 210, 233, 232, 228, 239, 238, 234, 226, 225, 221, 201, 201, 199, 182, 182, 180, 191, 191, 189, 207, 207, 205, 228, 230, 227, 243, 245, 242, 245, 247, 246, 239, 241, 240, 230, 232, 231, 226, 228, 227, 219, 221, 220, 220, 222, 221, 221, 223, 222, 224, 226, 225, 229, 231, 230, 235, 237, 236, 241, 243, 242, 244, 246, 245, 242, 244, 243, 242, 244, 243, 243, 245, 244, 243, 245, 244, 243, 245, 244, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 243, 244, 246, 243, 245, 247, 244, 245, 247, 244, 245, 247, 244, 246, 248, 245, 246, 248, 245, 246, 248, 245, 243, 245, 242, 243, 245, 242, 243, 245, 242, 243, 245, 242, 243, 245, 242, 243, 245, 242, 243, 245, 242, 243, 245, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 241, 239, 242, 241, 239, 241, 240, 238, 240, 239, 237, 239, 238, 236, 239, 238, 236, 238, 237, 235, 238, 237, 235, 239, 238, 236, 238, 237, 235, 237, 236, 234, 237, 236, 234, 237, 236, 234, 237, 236, 234, 238, 237, 235, 239, 238, 236, 237, 237, 235, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 237, 235, 236, 235, 233, 235, 234, 232, 234, 233, 231, 234, 233, 231, 233, 232, 230, 234, 230, 229, 236, 232, 231, 239, 235, 234, 240, 236, 235, 240, 236, 235, 238, 234, 233, 232, 231, 229, 232, 231, 229, 235, 231, 230, 236, 232, 231, 236, 232, 231, 235, 231, 230, 234, 230, 229, 234, 230, 229, 237, 231, 231, 235, 229, 229, 233, 227, 227, 230, 224, 224, 229, 223, 223, 228, 222, 222, 230, 221, 222, 230, 221, 222, 234, 228, 228, 227, 221, 221, 228, 222, 222, 229, 220, 221, 222, 212, 213, 223, 213, 214, 226, 216, 215, 220, 210, 209, 219, 207, 207, 221, 207, 207, 224, 205, 207, 224, 204, 206, 223, 197, 200, 221, 190, 195, 218, 183, 189, 218, 177, 183, 213, 162, 171, 214, 161, 169, 217, 164, 172, 220, 169, 176, 219, 169, 178, 213, 168, 175, 212, 171, 177, 217, 178, 183, 214, 179, 185, 215, 184, 189, 216, 187, 192, 215, 188, 193, 216, 193, 199, 220, 199, 204, 218, 199, 203, 213, 194, 198, 215, 199, 202, 215, 199, 202, 216, 200, 203, 219, 204, 207, 222, 207, 210, 223, 208, 211, 220, 205, 208, 215, 203, 205, 223, 211, 213, 223, 213, 214, 225, 215, 216, 226, 217, 218, 227, 218, 219, 227, 218, 219, 227, 218, 219, 225, 219, 219, 225, 216, 217, 226, 217, 218, 227, 218, 219, 228, 219, 220, 228, 219, 220, 227, 218, 219, 224, 218, 218, 223, 217, 217, 225, 219, 219, 226, 220, 220, 227, 221, 221, 227, 221, 221, 226, 222, 221, 226, 222, 221, 225, 221, 220, 224, 220, 219, 227, 221, 221, 227, 221, 221, 227, 221, 221, 227, 221, 221, 227, 221, 221, 227, 221, 221, 227, 221, 221, 227, 221, 221, 228, 222, 222, 229, 223, 223, 229, 223, 223, 229, 223, 223, 230, 224, 224, 230, 224, 224, 230, 224, 224, 230, 226, 225, 230, 226, 225, 228, 227, 225, 228, 227, 225, 229, 228, 226, 229, 228, 226, 230, 229, 227, 230, 229, 227, 230, 229, 227, 233, 232, 230, 228, 227, 225, 226, 225, 223, 229, 228, 226, 235, 234, 232, 237, 236, 234, 232, 231, 229, 227, 226, 224, 232, 228, 225, 232, 228, 225, 231, 227, 224, 231, 227, 224, 231, 227, 224, 230, 226, 223, 229, 225, 222, 229, 225, 222, 230, 226, 223, 225, 221, 218, 230, 226, 223, 243, 239, 236, 244, 240, 237, 232, 228, 225, 227, 223, 220, 232, 229, 224, 228, 223, 219, 229, 224, 220, 240, 235, 231, 253, 248, 244, 248, 243, 239, 231, 226, 222, 225, 218, 212, 230, 223, 217, 234, 227, 221, 227, 220, 214, 227, 220, 214, 232, 225, 219, 231, 222, 215, 225, 216, 209, 234, 225, 218, 250, 241, 234, 240, 231, 222, 236, 227, 218, 231, 222, 213, 229, 221, 210, 230, 220, 210, 230, 220, 210, 230, 220, 210, 229, 219, 209, 230, 220, 208, 230, 220, 208, 232, 220, 208, 232, 220, 208, 232, 220, 208, 232, 220, 206, 232, 220, 206, 232, 220, 206, 234, 222, 210, 232, 222, 210, 231, 221, 211, 229, 221, 210, 229, 221, 210, 229, 221, 210, 230, 221, 212, 230, 223, 213, 225, 218, 210, 225, 221, 212, 228, 223, 217, 232, 229, 222, 236, 233, 226, 241, 238, 231, 244, 241, 236, 246, 243, 238, 231, 228, 221, 234, 231, 224, 237, 234, 229, 240, 237, 232, 240, 237, 232, 238, 235, 230, 233, 232, 227, 232, 231, 226, 232, 231, 227, 232, 231, 227, 232, 231, 227, 232, 231, 227, 231, 232, 227, 231, 232, 227, 231, 231, 229, 231, 231, 229, 233, 232, 228, 233, 232, 228, 233, 232, 228, 234, 233, 229, 234, 233, 229, 235, 234, 230, 235, 234, 230, 235, 234, 230, 237, 236, 232, 235, 234, 230, 233, 232, 228, 232, 231, 227, 233, 232, 228, 236, 235, 231, 239, 238, 234, 242, 241, 237, 237, 238, 233, 237, 238, 233, 237, 238, 233, 237, 238, 233, 237, 238, 233, 237, 238, 233, 237, 238, 233, 237, 238, 233, 236, 237, 232, 236, 237, 232, 237, 238, 233, 237, 238, 233, 238, 239, 234, 238, 239, 234, 238, 239, 234, 238, 239, 234, 238, 239, 234, 238, 239, 234, 238, 239, 234, 238, 239, 234, 239, 240, 235, 239, 240, 235, 239, 240, 235, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 240, 238, 240, 240, 238, 241, 241, 239, 241, 241, 239, 241, 241, 239, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 240, 242, 239, 240, 242, 239, 240, 242, 239, 240, 242, 239, 240, 242, 239, 240, 242, 239, 240, 242, 239, 240, 242, 239, 240, 242, 239, 240, 242, 239, 239, 241, 238, 239, 241, 238, 239, 241, 238, 238, 240, 237, 238, 240, 237, 238, 240, 237, 238, 239, 241, 237, 238, 240, 237, 238, 240, 237, 238, 240, 236, 237, 239, 236, 237, 239, 236, 237, 239, 235, 236, 238, 235, 236, 238, 235, 236, 238, 235, 236, 238, 235, 236, 238, 234, 235, 237, 234, 235, 237, 234, 235, 237, 233, 234, 236, 231, 232, 234, 230, 231, 233, 228, 229, 231, 226, 227, 229, 224, 225, 227, 222, 223, 225, 220, 221, 223, 219, 220, 222, 213, 214, 216, 212, 213, 215, 209, 210, 212, 206, 207, 209, 202, 203, 205, 198, 199, 201, 196, 197, 199, 194, 195, 197, 196, 196, 196, 193, 193, 193, 190, 190, 190, 188, 188, 188, 188, 187, 185, 186, 185, 183, 183, 182, 180, 180, 179, 177, 169, 168, 166, 166, 165, 163, 163, 159, 156, 159, 155, 152, 155, 151, 148, 154, 150, 147, 154, 150, 147, 154, 150, 147, 158, 153, 150, 158, 153, 150, 159, 154, 151, 160, 155, 152, 162, 157, 154, 163, 158, 155, 166, 158, 156, 166, 158, 156, 163, 155, 153, 162, 154, 152, 161, 153, 151, 159, 151, 149, 159, 149, 148, 158, 148, 147, 158, 148, 147, 158, 148, 147, 160, 149, 147, 163, 149, 148, 162, 151, 149, 164, 153, 151, 167, 156, 154, 169, 158, 156, 169, 159, 157, 170, 160, 158, 173, 165, 162, 174, 166, 163, 173, 168, 164, 175, 170, 166, 179, 174, 170, 181, 178, 173, 185, 182, 177, 187, 184, 179, 186, 185, 181, 189, 189, 187, 193, 193, 193, 197, 197, 197, 201, 201, 203, 205, 206, 208, 212, 213, 217, 216, 217, 222, 219, 220, 225, 221, 222, 227, 222, 225, 230, 225, 228, 233, 228, 231, 236, 230, 233, 238, 232, 235, 240, 232, 235, 240, 234, 237, 244, 235, 238, 245, 237, 240, 245, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 248, 244, 248, 249, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 242, 246, 249, 242, 246, 249, 244, 245, 249, 243, 244, 248, 242, 243, 247, 240, 241, 245, 238, 239, 243, 237, 238, 242, 235, 236, 240, 235, 236, 240, 233, 234, 238, 232, 233, 237, 231, 232, 236, 228, 229, 233, 224, 225, 229, 220, 221, 225, 217, 218, 222, 215, 215, 217, 214, 210, 211, 212, 206, 206, 209, 203, 203, 207, 201, 201, 207, 198, 199, 202, 194, 192, 196, 188, 186, 191, 183, 181, 188, 178, 176, 186, 176, 174, 182, 171, 169, 177, 166, 164, 173, 162, 158, 169, 158, 154, 168, 154, 151, 167, 153, 150, 165, 151, 148, 167, 153, 150, 166, 152, 149, 157, 143, 140, 145, 131, 128, 141, 127, 124, 146, 132, 129, 153, 139, 136, 148, 134, 131, 148, 134, 131, 147, 133, 130, 144, 130, 127, 141, 127, 124, 141, 127, 124, 144, 130, 127, 147, 133, 130, 143, 132, 126, 141, 130, 124, 155, 144, 138, 166, 155, 149, 157, 146, 140, 150, 139, 133, 156, 145, 139, 163, 152, 146, 165, 156, 149, 148, 139, 132, 140, 131, 124, 151, 142, 135, 164, 157, 149, 174, 167, 159, 188, 181, 173, 202, 197, 191, 204, 201, 196, 224, 223, 218, 241, 240, 235, 232, 231, 226, 205, 204, 200, 185, 184, 180, 186, 185, 181, 196, 195, 191, 221, 221, 219, 232, 232, 230, 241, 241, 239, 238, 238, 236, 226, 226, 224, 216, 216, 214, 214, 216, 213, 218, 220, 217, 218, 220, 219, 219, 221, 220, 222, 224, 223, 226, 228, 227, 231, 233, 232, 236, 238, 237, 240, 242, 241, 242, 244, 243, 242, 244, 243, 242, 244, 243, 242, 244, 243, 242, 244, 243, 242, 244, 243, 242, 244, 243, 242, 244, 243, 242, 244, 243, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 244, 244, 242, 243, 243, 241, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 242, 242, 240, 241, 241, 239, 242, 241, 239, 242, 241, 239, 241, 240, 238, 241, 240, 238, 240, 239, 237, 239, 238, 236, 238, 237, 235, 238, 237, 235, 240, 239, 237, 239, 238, 236, 238, 237, 235, 237, 236, 234, 237, 236, 234, 238, 237, 235, 239, 238, 236, 240, 239, 237, 237, 237, 235, 238, 238, 236, 238, 238, 236, 237, 237, 235, 237, 236, 234, 235, 234, 232, 234, 233, 231, 233, 232, 230, 236, 235, 233, 235, 234, 232, 235, 231, 230, 236, 232, 231, 237, 233, 232, 238, 234, 233, 237, 233, 232, 235, 231, 230, 230, 229, 227, 230, 229, 227, 233, 229, 228, 234, 230, 229, 234, 230, 229, 233, 229, 228, 232, 228, 227, 232, 228, 227, 235, 229, 229, 234, 228, 228, 231, 225, 225, 229, 223, 223, 229, 223, 223, 229, 223, 223, 232, 223, 224, 231, 225, 225, 231, 227, 226, 225, 221, 220, 227, 221, 221, 228, 219, 220, 221, 211, 212, 221, 211, 212, 226, 214, 214, 220, 208, 208, 215, 201, 201, 216, 202, 202, 220, 201, 203, 221, 199, 202, 223, 194, 198, 220, 188, 193, 218, 181, 188, 218, 177, 183, 206, 159, 167, 211, 162, 168, 217, 167, 176, 219, 172, 180, 216, 171, 178, 211, 168, 175, 213, 173, 181, 219, 182, 189, 209, 174, 180, 213, 182, 187, 217, 188, 193, 215, 188, 193, 215, 190, 194, 216, 194, 197, 217, 195, 198, 214, 194, 196, 210, 191, 193, 208, 192, 193, 210, 194, 195, 215, 199, 200, 221, 205, 206, 221, 207, 207, 218, 204, 204, 212, 200, 200, 218, 206, 206, 219, 209, 208, 221, 211, 210, 223, 213, 212, 224, 214, 213, 224, 216, 214, 224, 216, 214, 224, 216, 214, 224, 214, 215, 225, 215, 216, 225, 216, 217, 226, 217, 218, 226, 217, 218, 225, 216, 217, 224, 215, 216, 223, 214, 215, 224, 218, 218, 224, 218, 218, 225, 219, 219, 226, 220, 220, 226, 220, 220, 225, 219, 219, 223, 219, 218, 223, 219, 218, 227, 221, 221, 227, 221, 221, 227, 221, 221, 227, 221, 221, 227, 221, 221, 227, 221, 221, 227, 221, 221, 227, 221, 221, 228, 222, 222, 228, 222, 222, 229, 223, 223, 229, 223, 223, 229, 223, 223, 230, 224, 224, 230, 224, 224, 229, 225, 224, 230, 226, 225, 228, 227, 225, 228, 227, 225, 229, 228, 226, 229, 228, 226, 229, 228, 226, 230, 229, 227, 230, 229, 227, 231, 230, 228, 229, 228, 226, 228, 227, 225, 229, 228, 226, 230, 229, 227, 232, 231, 229, 233, 232, 230, 233, 232, 230, 230, 226, 223, 230, 226, 223, 231, 227, 224, 232, 228, 225, 232, 228, 225, 231, 227, 224, 232, 227, 223, 231, 226, 222, 235, 230, 226, 224, 219, 215, 226, 221, 217, 240, 235, 231, 246, 241, 237, 236, 231, 227, 229, 224, 220, 231, 226, 222, 234, 229, 225, 224, 219, 213, 226, 221, 215, 242, 237, 231, 251, 244, 238, 241, 234, 228, 232, 225, 219, 232, 225, 219, 235, 228, 220, 227, 220, 212, 227, 218, 211, 233, 224, 217, 231, 222, 215, 223, 214, 207, 229, 220, 211, 242, 233, 224, 242, 235, 227, 240, 233, 225, 236, 229, 221, 231, 224, 214, 227, 218, 209, 226, 217, 208, 228, 218, 208, 231, 221, 211, 232, 220, 208, 232, 220, 208, 233, 219, 206, 233, 219, 206, 233, 219, 206, 233, 220, 204, 233, 220, 204, 233, 220, 204, 234, 222, 208, 232, 223, 208, 231, 221, 209, 231, 221, 209, 231, 221, 209, 231, 223, 210, 232, 224, 213, 231, 225, 213, 229, 222, 212, 228, 221, 211, 228, 221, 213, 228, 224, 215, 231, 227, 218, 236, 232, 223, 241, 236, 230, 244, 239, 233, 236, 233, 226, 235, 232, 225, 235, 232, 227, 235, 232, 227, 236, 233, 228, 238, 235, 230, 239, 238, 233, 240, 239, 234, 232, 231, 227, 232, 231, 227, 232, 231, 227, 232, 231, 227, 231, 232, 227, 231, 232, 227, 231, 231, 229, 231, 231, 229, 233, 232, 228, 233, 232, 228, 234, 233, 229, 234, 233, 229, 234, 233, 229, 235, 234, 230, 235, 234, 230, 235, 234, 230, 236, 235, 231, 235, 234, 230, 235, 234, 230, 235, 234, 230, 235, 234, 230, 236, 235, 231, 237, 236, 232, 237, 236, 232, 237, 238, 233, 237, 238, 233, 237, 238, 233, 237, 238, 233, 237, 238, 233, 237, 238, 233, 237, 238, 233, 237, 238, 233, 237, 238, 233, 237, 238, 233, 237, 238, 233, 237, 238, 233, 238, 239, 234, 238, 239, 234, 239, 240, 235, 239, 240, 235, 238, 239, 234, 238, 239, 234, 238, 239, 234, 239, 240, 235, 239, 240, 235, 239, 240, 235, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 240, 238, 240, 240, 238, 241, 241, 239, 241, 241, 239, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 240, 242, 239, 240, 242, 239, 240, 242, 239, 240, 242, 239, 240, 242, 239, 240, 242, 239, 240, 242, 239, 240, 242, 239, 240, 242, 239, 240, 242, 239, 240, 242, 239, 239, 241, 238, 239, 241, 238, 239, 241, 238, 238, 240, 237, 238, 240, 237, 239, 240, 242, 239, 240, 242, 239, 240, 242, 238, 239, 241, 238, 239, 241, 237, 238, 240, 237, 238, 240, 237, 238, 240, 236, 237, 239, 236, 237, 239, 236, 237, 239, 236, 237, 239, 235, 236, 238, 235, 236, 238, 235, 236, 238, 235, 236, 238, 233, 234, 236, 233, 234, 236, 231, 232, 234, 229, 230, 232, 227, 228, 230, 225, 226, 228, 223, 224, 226, 223, 224, 226, 217, 218, 220, 215, 216, 218, 212, 213, 215, 209, 210, 212, 204, 205, 207, 201, 202, 204, 198, 199, 201, 196, 197, 199, 197, 197, 197, 193, 193, 193, 189, 189, 189, 187, 187, 187, 185, 185, 185, 182, 182, 182, 179, 178, 176, 176, 175, 173, 171, 170, 168, 168, 167, 165, 163, 162, 160, 158, 157, 155, 158, 154, 151, 157, 153, 150, 158, 154, 151, 159, 155, 152, 158, 153, 150, 158, 153, 150, 159, 154, 151, 161, 156, 153, 162, 157, 154, 164, 159, 156, 167, 159, 157, 167, 159, 157, 164, 156, 154, 163, 155, 153, 163, 155, 153, 162, 154, 152, 162, 152, 151, 161, 151, 150, 161, 151, 150, 160, 150, 149, 160, 149, 147, 161, 150, 148, 162, 151, 149, 164, 153, 151, 166, 155, 153, 167, 156, 154, 168, 158, 156, 168, 158, 156, 169, 161, 158, 169, 161, 158, 171, 163, 160, 173, 165, 162, 176, 168, 165, 178, 173, 169, 181, 176, 172, 182, 179, 174, 182, 181, 177, 185, 184, 180, 190, 189, 187, 193, 193, 193, 197, 197, 199, 202, 202, 204, 207, 208, 212, 212, 213, 217, 216, 217, 222, 218, 219, 224, 219, 222, 227, 223, 226, 231, 226, 229, 234, 228, 231, 236, 229, 233, 236, 230, 233, 238, 233, 236, 243, 235, 238, 245, 236, 239, 244, 238, 241, 246, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 245, 248, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 248, 243, 247, 248, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 246, 249, 241, 242, 246, 241, 242, 246, 241, 242, 246, 240, 241, 245, 240, 241, 245, 239, 240, 244, 239, 240, 244, 239, 240, 244, 234, 235, 239, 233, 234, 238, 232, 233, 237, 230, 231, 235, 226, 227, 231, 223, 224, 228, 220, 221, 225, 219, 219, 221, 217, 213, 214, 216, 210, 210, 214, 208, 210, 212, 206, 206, 211, 202, 203, 206, 197, 198, 200, 191, 192, 195, 187, 185, 193, 183, 182, 190, 180, 178, 186, 175, 173, 181, 170, 168, 176, 165, 161, 172, 161, 157, 171, 157, 154, 170, 156, 153, 175, 161, 158, 165, 151, 148, 152, 138, 135, 142, 128, 125, 139, 125, 122, 138, 124, 121, 138, 124, 121, 137, 123, 120, 137, 123, 120, 138, 124, 121, 139, 125, 122, 138, 124, 121, 137, 123, 120, 139, 125, 122, 143, 129, 126, 147, 133, 130, 154, 143, 137, 156, 145, 139, 173, 162, 156, 171, 160, 154, 145, 134, 128, 144, 133, 127, 158, 147, 141, 154, 145, 138, 138, 129, 122, 123, 114, 107, 123, 114, 107, 149, 140, 133, 176, 169, 161, 194, 187, 179, 212, 205, 197, 226, 222, 213, 241, 238, 233, 223, 222, 217, 198, 197, 192, 177, 176, 171, 171, 170, 166, 188, 187, 183, 216, 215, 211, 238, 237, 233, 233, 233, 231, 234, 234, 232, 232, 232, 230, 224, 224, 222, 214, 214, 212, 210, 210, 208, 211, 213, 210, 216, 218, 215, 221, 223, 222, 223, 225, 224, 225, 227, 226, 229, 231, 230, 232, 234, 233, 235, 237, 236, 237, 239, 238, 239, 241, 240, 242, 244, 243, 242, 244, 243, 242, 244, 243, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 242, 242, 240, 242, 242, 240, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 241, 241, 239, 243, 243, 241, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 243, 242, 240, 242, 241, 239, 242, 241, 239, 241, 240, 238, 240, 239, 237, 239, 238, 236, 239, 238, 236, 238, 237, 235, 240, 239, 237, 240, 239, 237, 239, 238, 236, 238, 237, 235, 238, 237, 235, 239, 238, 236, 240, 239, 237, 240, 239, 237, 237, 237, 235, 238, 238, 236, 238, 238, 236, 237, 237, 235, 237, 236, 234, 235, 234, 232, 233, 232, 230, 232, 231, 229, 239, 238, 236, 236, 235, 233, 236, 232, 231, 235, 231, 230, 235, 231, 230, 235, 231, 230, 232, 228, 227, 230, 226, 225, 229, 228, 226, 229, 228, 226, 232, 228, 227, 233, 229, 228, 233, 229, 228, 232, 228, 227, 231, 227, 226, 231, 227, 226, 234, 228, 228, 233, 227, 227, 231, 225, 225, 229, 223, 223, 229, 223, 223, 230, 224, 224, 234, 225, 226, 233, 227, 227, 231, 227, 226, 222, 221, 219, 225, 221, 220, 227, 218, 219, 220, 210, 211, 222, 210, 212, 225, 213, 213, 221, 207, 207, 211, 197, 197, 214, 198, 199, 218, 198, 200, 219, 197, 200, 221, 192, 196, 219, 187, 192, 218, 181, 188, 218, 177, 185, 205, 162, 169, 211, 166, 171, 216, 173, 180, 221, 178, 185, 217, 176, 182, 213, 174, 179, 216, 179, 186, 224, 189, 195, 205, 173, 178, 213, 182, 187, 219, 190, 195, 216, 189, 194, 213, 188, 192, 215, 190, 194, 216, 194, 197, 216, 194, 197, 206, 186, 188, 205, 186, 188, 205, 189, 190, 212, 196, 197, 219, 203, 204, 221, 205, 206, 216, 202, 202, 212, 198, 198, 215, 203, 203, 216, 204, 204, 218, 206, 206, 219, 209, 208, 221, 211, 210, 222, 212, 211, 221, 213, 211, 221, 213, 211, 223, 213, 214, 224, 214, 215, 224, 215, 216, 225, 216, 217, 225, 216, 217, 224, 215, 216, 223, 214, 215, 222, 213, 214, 223, 217, 217, 223, 217, 217, 224, 218, 218, 225, 219, 219, 225, 219, 219, 224, 218, 218, 222, 218, 217, 222, 218, 217, 226, 220, 220, 226, 220, 220, 226, 220, 220, 226, 220, 220, 226, 220, 220, 226, 220, 220, 226, 220, 220, 226, 220, 220, 228, 222, 222, 228, 222, 222, 229, 223, 223, 229, 223, 223, 229, 223, 223, 230, 224, 224, 230, 224, 224, 229, 225, 224, 230, 226, 225, 228, 227, 225, 228, 227, 225, 228, 227, 225, 229, 228, 226, 229, 228, 226, 229, 228, 226, 230, 229, 227, 227, 226, 224, 231, 230, 228, 232, 231, 229, 230, 229, 227, 226, 225, 223, 226, 225, 223, 233, 232, 230, 239, 238, 236, 229, 225, 222, 230, 226, 223, 231, 227, 224, 232, 228, 225, 233, 229, 226, 233, 229, 226, 233, 228, 224, 232, 227, 223, 232, 227, 223, 234, 229, 225, 231, 226, 222, 226, 221, 217, 235, 230, 226, 246, 241, 235, 241, 233, 230, 222, 217, 211, 234, 229, 223, 230, 225, 219, 222, 217, 211, 221, 216, 210, 240, 233, 227, 255, 250, 244, 248, 241, 235, 227, 220, 212, 228, 221, 213, 235, 228, 220, 235, 226, 219, 225, 216, 209, 225, 216, 209, 234, 225, 218, 233, 224, 215, 224, 215, 206, 243, 236, 228, 243, 236, 228, 241, 234, 226, 233, 226, 218, 226, 217, 208, 223, 214, 205, 227, 217, 207, 232, 222, 212, 231, 219, 207, 231, 219, 207, 232, 218, 205, 232, 218, 205, 232, 219, 203, 232, 219, 203, 234, 218, 203, 232, 219, 203, 235, 221, 208, 234, 222, 208, 231, 221, 209, 231, 221, 209, 232, 222, 210, 233, 223, 211, 233, 225, 214, 234, 226, 215, 235, 226, 217, 234, 227, 217, 234, 227, 219, 233, 226, 218, 230, 226, 217, 229, 225, 216, 228, 223, 217, 228, 223, 217, 250, 247, 240, 245, 242, 235, 239, 236, 231, 235, 232, 227, 234, 231, 226, 237, 234, 229, 241, 240, 235, 244, 243, 238, 233, 232, 228, 233, 232, 228, 233, 232, 228, 233, 232, 228, 232, 233, 228, 232, 233, 228, 232, 232, 230, 232, 232, 230, 233, 232, 228, 234, 233, 229, 234, 233, 229, 234, 233, 229, 235, 234, 230, 235, 234, 230, 235, 234, 230, 235, 234, 230, 233, 232, 228, 235, 234, 230, 237, 236, 232, 239, 238, 234, 239, 238, 234, 237, 236, 232, 234, 233, 229, 232, 231, 227, 238, 239, 234, 238, 239, 234, 238, 239, 234, 238, 239, 234, 238, 239, 234, 238, 239, 234, 238, 239, 234, 238, 239, 234, 237, 238, 233, 237, 238, 233, 237, 238, 233, 238, 239, 234, 238, 239, 234, 238, 239, 234, 239, 240, 235, 239, 240, 235, 238, 239, 234, 238, 239, 234, 238, 239, 234, 239, 240, 235, 239, 240, 235, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 240, 238, 241, 241, 239, 241, 241, 239, 241, 241, 239, 242, 242, 240, 242, 242, 240, 242, 242, 240, 243, 243, 241, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 240, 242, 239, 240, 242, 239, 240, 242, 239, 239, 241, 238, 239, 241, 238, 239, 241, 238, 238, 240, 237, 238, 240, 237, 240, 241, 243, 240, 241, 243, 240, 241, 243, 239, 240, 242, 239, 240, 242, 238, 239, 241, 238, 239, 241, 238, 239, 241, 236, 237, 239, 236, 237, 239, 236, 237, 239, 236, 237, 239, 236, 237, 239, 236, 237, 239, 236, 237, 239, 236, 237, 239, 235, 236, 238, 234, 235, 237, 233, 234, 236, 231, 232, 234, 229, 230, 232, 227, 228, 230, 225, 226, 228, 225, 226, 228, 219, 220, 222, 217, 218, 220, 214, 215, 217, 210, 211, 213, 206, 207, 209, 202, 203, 205, 199, 200, 202, 198, 199, 201, 196, 196, 196, 192, 192, 192, 188, 188, 188, 185, 185, 185, 182, 182, 182, 179, 179, 179, 176, 175, 173, 172, 171, 169, 173, 172, 170, 170, 169, 167, 165, 164, 162, 161, 160, 158, 160, 156, 153, 160, 156, 153, 162, 158, 155, 163, 159, 156, 158, 153, 150, 158, 153, 150, 160, 155, 152, 161, 156, 153, 163, 158, 155, 165, 160, 157, 168, 160, 158, 168, 160, 158, 164, 156, 154, 164, 156, 154, 164, 156, 154, 163, 155, 153, 163, 153, 152, 162, 152, 151, 162, 152, 151, 161, 151, 150, 160, 149, 147, 161, 150, 148, 162, 151, 149, 163, 152, 150, 165, 154, 152, 166, 155, 153, 167, 157, 155, 167, 157, 155, 165, 157, 154, 166, 158, 155, 167, 159, 156, 169, 161, 158, 173, 165, 162, 176, 168, 165, 180, 172, 169, 180, 175, 171, 180, 176, 173, 182, 181, 177, 186, 185, 183, 190, 189, 187, 194, 192, 193, 198, 198, 200, 205, 204, 209, 209, 210, 214, 214, 215, 220, 216, 217, 222, 217, 220, 225, 221, 224, 229, 224, 227, 232, 227, 230, 235, 228, 232, 235, 229, 233, 236, 233, 236, 243, 234, 237, 244, 236, 239, 244, 238, 241, 246, 239, 242, 247, 240, 243, 248, 239, 242, 247, 239, 242, 247, 241, 245, 248, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 248, 243, 247, 248, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 243, 247, 242, 243, 247, 242, 243, 247, 241, 242, 246, 241, 242, 246, 241, 242, 246, 240, 241, 245, 240, 241, 245, 236, 237, 241, 236, 237, 241, 235, 236, 240, 233, 234, 238, 231, 232, 236, 228, 229, 233, 225, 226, 230, 224, 223, 228, 217, 215, 218, 217, 213, 214, 215, 210, 214, 212, 208, 209, 209, 203, 205, 206, 200, 200, 203, 197, 197, 202, 197, 194, 199, 191, 189, 195, 187, 185, 192, 182, 180, 188, 178, 176, 186, 175, 171, 182, 171, 167, 177, 166, 162, 173, 162, 158, 167, 153, 150, 164, 150, 147, 159, 145, 142, 154, 140, 137, 151, 137, 134, 151, 137, 134, 151, 137, 134, 152, 138, 135, 149, 135, 132, 152, 138, 135, 156, 142, 139, 161, 147, 144, 163, 149, 146, 163, 149, 146, 161, 147, 144, 160, 146, 143, 161, 150, 144, 175, 164, 158, 170, 161, 154, 150, 141, 134, 146, 137, 130, 155, 146, 139, 143, 134, 127, 116, 107, 100, 124, 115, 108, 127, 120, 112, 141, 134, 126, 168, 161, 153, 200, 193, 185, 225, 218, 210, 234, 230, 221, 236, 232, 223, 194, 191, 186, 178, 175, 170, 166, 163, 158, 175, 172, 167, 200, 199, 194, 225, 224, 219, 233, 232, 228, 232, 231, 227, 238, 237, 233, 229, 228, 224, 216, 217, 212, 206, 207, 202, 204, 204, 202, 209, 209, 207, 218, 218, 216, 225, 225, 223, 216, 218, 217, 220, 222, 221, 226, 228, 227, 230, 232, 231, 233, 235, 234, 236, 238, 237, 240, 242, 241, 243, 245, 244, 240, 242, 241, 240, 242, 241, 241, 243, 242, 241, 243, 242, 241, 243, 242, 240, 242, 241, 238, 240, 239, 237, 239, 238, 240, 240, 238, 239, 239, 237, 239, 239, 237, 238, 238, 236, 239, 239, 237, 240, 240, 238, 241, 241, 239, 242, 242, 240, 238, 238, 236, 240, 240, 238, 243, 243, 241, 244, 244, 242, 245, 245, 243, 244, 244, 242, 242, 242, 240, 241, 241, 239, 242, 242, 240, 241, 241, 239, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 241, 241, 239, 242, 242, 240, 240, 240, 238, 240, 240, 238, 241, 241, 239, 241, 241, 239, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 244, 243, 241, 243, 242, 240, 243, 242, 240, 242, 241, 239, 241, 240, 238, 240, 239, 237, 239, 238, 236, 239, 238, 236, 240, 239, 237, 240, 239, 237, 239, 238, 236, 239, 238, 236, 239, 238, 236, 238, 237, 235, 238, 237, 235, 238, 237, 235, 239, 239, 237, 238, 238, 236, 237, 237, 235, 235, 235, 233, 235, 234, 232, 235, 234, 232, 236, 235, 233, 236, 235, 233, 236, 235, 233, 236, 235, 233, 237, 233, 232, 237, 233, 232, 236, 232, 231, 235, 231, 230, 234, 230, 229, 234, 230, 229, 233, 232, 230, 233, 232, 230, 234, 230, 229, 233, 229, 228, 232, 228, 227, 229, 225, 224, 227, 223, 222, 226, 222, 221, 236, 230, 230, 234, 228, 228, 233, 227, 227, 233, 227, 227, 234, 228, 228, 233, 227, 227, 232, 223, 224, 227, 221, 221, 225, 224, 222, 220, 219, 217, 218, 214, 213, 222, 213, 214, 228, 218, 219, 229, 217, 219, 225, 211, 211, 219, 203, 204, 215, 199, 200, 215, 196, 198, 215, 195, 197, 218, 193, 197, 220, 191, 195, 219, 187, 192, 217, 180, 187, 215, 175, 183, 215, 174, 180, 213, 172, 178, 214, 175, 180, 218, 179, 184, 219, 182, 189, 218, 181, 188, 218, 183, 189, 220, 188, 193, 210, 179, 184, 211, 182, 186, 214, 185, 189, 217, 191, 194, 220, 195, 198, 220, 195, 198, 217, 192, 195, 211, 189, 191, 208, 188, 190, 205, 186, 188, 209, 190, 192, 219, 200, 202, 222, 206, 207, 221, 205, 206, 218, 204, 204, 218, 204, 204, 217, 203, 203, 215, 203, 203, 215, 203, 203, 216, 204, 204, 216, 206, 205, 219, 209, 208, 221, 211, 210, 222, 212, 211, 217, 207, 208, 219, 209, 210, 221, 211, 212, 223, 213, 214, 224, 214, 215, 222, 212, 213, 219, 210, 211, 218, 209, 210, 223, 214, 215, 223, 214, 215, 222, 216, 216, 223, 217, 217, 223, 217, 217, 224, 218, 218, 225, 219, 219, 225, 219, 219, 225, 219, 219, 225, 219, 219, 225, 219, 219, 226, 220, 220, 226, 220, 220, 227, 221, 221, 227, 221, 221, 227, 221, 221, 228, 222, 222, 228, 222, 222, 229, 223, 223, 229, 223, 223, 229, 223, 223, 230, 224, 224, 230, 224, 224, 229, 225, 224, 230, 226, 225, 228, 227, 225, 228, 227, 225, 228, 227, 225, 228, 227, 225, 228, 227, 225, 228, 227, 225, 228, 227, 225, 229, 228, 226, 229, 228, 226, 229, 228, 226, 229, 228, 226, 229, 228, 226, 229, 228, 226, 229, 228, 226, 229, 228, 226, 243, 239, 236, 235, 231, 228, 227, 223, 220, 223, 219, 216, 227, 222, 218, 230, 225, 221, 230, 225, 221, 229, 224, 220, 234, 227, 221, 231, 224, 218, 227, 220, 214, 226, 219, 213, 228, 221, 215, 234, 227, 219, 242, 233, 228, 245, 238, 232, 224, 217, 211, 235, 228, 222, 234, 227, 219, 223, 216, 208, 221, 214, 206, 236, 229, 221, 248, 241, 233, 250, 243, 235, 227, 218, 211, 232, 223, 214, 235, 226, 217, 233, 224, 215, 229, 220, 211, 227, 218, 209, 230, 220, 211, 231, 222, 213, 222, 215, 207, 236, 229, 221, 248, 241, 233, 247, 240, 232, 236, 227, 218, 226, 217, 208, 226, 216, 206, 230, 220, 210, 236, 224, 212, 233, 221, 209, 231, 217, 204, 231, 217, 204, 233, 220, 204, 235, 222, 206, 236, 220, 205, 232, 219, 203, 234, 220, 207, 233, 221, 207, 234, 222, 208, 234, 222, 208, 232, 222, 210, 233, 223, 211, 233, 223, 213, 232, 224, 213, 232, 224, 213, 232, 224, 213, 231, 224, 214, 232, 225, 215, 230, 226, 217, 230, 226, 217, 231, 227, 218, 231, 227, 218, 228, 225, 218, 233, 230, 223, 242, 239, 234, 248, 245, 240, 248, 245, 240, 243, 240, 235, 234, 233, 228, 228, 227, 222, 246, 245, 241, 243, 242, 238, 238, 237, 233, 234, 233, 229, 230, 231, 226, 230, 231, 226, 231, 231, 229, 232, 232, 230, 234, 233, 229, 234, 233, 229, 234, 233, 229, 234, 233, 229, 234, 233, 229, 234, 233, 229, 234, 233, 229, 234, 233, 229, 234, 233, 229, 234, 233, 229, 234, 233, 229, 235, 234, 230, 235, 234, 230, 235, 234, 230, 236, 235, 231, 236, 235, 231, 236, 237, 232, 236, 237, 232, 236, 237, 232, 237, 238, 233, 237, 238, 233, 237, 238, 233, 238, 239, 234, 238, 239, 234, 237, 238, 233, 237, 238, 233, 237, 238, 233, 237, 238, 233, 237, 238, 233, 237, 238, 233, 237, 238, 233, 237, 238, 233, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 240, 235, 240, 241, 236, 240, 241, 236, 240, 241, 236, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 240, 242, 239, 240, 242, 239, 240, 242, 239, 240, 242, 239, 240, 242, 239, 240, 242, 239, 240, 242, 239, 240, 242, 239, 240, 241, 243, 240, 241, 243, 240, 241, 243, 239, 240, 242, 239, 240, 242, 239, 240, 242, 238, 239, 241, 238, 239, 241, 238, 239, 241, 237, 238, 240, 237, 238, 240, 237, 238, 240, 236, 237, 239, 236, 237, 239, 236, 237, 239, 236, 237, 239, 235, 236, 238, 235, 236, 238, 233, 234, 236, 231, 232, 234, 229, 230, 232, 227, 228, 230, 226, 227, 229, 225, 226, 228, 221, 222, 224, 217, 218, 220, 213, 214, 216, 210, 211, 213, 207, 208, 210, 202, 203, 205, 196, 197, 199, 192, 193, 195, 188, 189, 191, 186, 187, 189, 186, 186, 186, 185, 185, 185, 185, 185, 185, 183, 183, 183, 179, 179, 179, 176, 176, 176, 175, 174, 172, 172, 171, 169, 169, 168, 166, 167, 166, 164, 166, 165, 163, 164, 163, 161, 161, 160, 158, 160, 156, 155, 159, 154, 151, 159, 154, 151, 158, 153, 150, 157, 152, 149, 157, 152, 149, 157, 152, 149, 160, 152, 150, 161, 153, 151, 163, 155, 153, 163, 155, 153, 163, 155, 153, 162, 154, 152, 163, 153, 152, 163, 153, 152, 162, 152, 151, 162, 152, 151, 160, 149, 147, 160, 149, 147, 160, 149, 147, 160, 149, 147, 162, 151, 149, 164, 153, 151, 165, 155, 153, 166, 156, 154, 164, 154, 152, 165, 155, 153, 167, 157, 155, 169, 159, 157, 172, 162, 160, 174, 164, 162, 176, 166, 164, 176, 168, 165, 178, 174, 171, 182, 178, 175, 187, 183, 182, 189, 188, 186, 192, 190, 191, 195, 195, 197, 200, 199, 204, 203, 202, 207, 211, 212, 217, 213, 214, 219, 214, 217, 222, 215, 218, 223, 215, 220, 223, 218, 223, 226, 223, 228, 231, 226, 231, 234, 229, 232, 239, 232, 235, 242, 236, 239, 244, 237, 240, 245, 237, 240, 245, 237, 240, 245, 239, 242, 247, 240, 243, 248, 241, 245, 248, 241, 245, 248, 242, 246, 249, 242, 246, 249, 243, 247, 250, 244, 248, 251, 245, 249, 250, 245, 249, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 244, 248, 243, 244, 248, 243, 244, 248, 242, 243, 247, 242, 243, 247, 242, 243, 247, 241, 242, 246, 241, 242, 246, 238, 239, 243, 238, 239, 243, 237, 238, 242, 235, 236, 240, 233, 234, 238, 230, 231, 235, 227, 228, 232, 227, 226, 231, 222, 220, 225, 223, 218, 222, 220, 215, 219, 216, 211, 215, 212, 207, 211, 209, 203, 205, 206, 200, 202, 205, 199, 199, 206, 197, 198, 202, 194, 192, 198, 188, 186, 195, 185, 183, 192, 183, 178, 188, 179, 174, 185, 174, 170, 181, 170, 166, 172, 161, 157, 172, 158, 155, 168, 154, 151, 165, 151, 148, 164, 150, 147, 165, 151, 148, 168, 154, 151, 169, 155, 152, 171, 157, 154, 173, 159, 156, 175, 161, 158, 177, 163, 160, 177, 163, 160, 175, 161, 158, 172, 158, 155, 168, 157, 153, 175, 164, 158, 179, 170, 163, 171, 162, 155, 148, 139, 132, 132, 123, 116, 134, 125, 118, 142, 133, 126, 145, 138, 130, 141, 134, 126, 151, 144, 136, 177, 170, 162, 213, 209, 200, 243, 236, 228, 237, 233, 224, 205, 201, 192, 174, 169, 163, 166, 163, 156, 173, 170, 165, 189, 186, 181, 211, 208, 203, 230, 229, 224, 240, 239, 234, 238, 237, 233, 233, 232, 228, 219, 218, 214, 215, 214, 210, 209, 210, 205, 205, 206, 201, 205, 205, 203, 210, 210, 208, 216, 216, 214, 220, 220, 218, 217, 219, 218, 222, 224, 223, 230, 232, 231, 235, 237, 236, 237, 239, 238, 237, 239, 238, 238, 240, 239, 239, 241, 240, 239, 241, 240, 240, 242, 241, 240, 242, 241, 241, 243, 242, 240, 242, 241, 239, 241, 240, 238, 240, 239, 237, 239, 238, 240, 240, 238, 239, 239, 237, 238, 238, 236, 238, 238, 236, 239, 239, 237, 240, 240, 238, 241, 241, 239, 242, 242, 240, 239, 239, 237, 241, 241, 239, 242, 242, 240, 244, 244, 242, 244, 244, 242, 243, 243, 241, 241, 241, 239, 240, 240, 238, 242, 242, 240, 241, 241, 239, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 241, 241, 239, 242, 242, 240, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 241, 240, 238, 241, 240, 238, 241, 240, 238, 240, 239, 237, 240, 239, 237, 239, 238, 236, 239, 238, 236, 239, 238, 236, 240, 239, 237, 240, 239, 237, 240, 239, 237, 240, 239, 237, 239, 238, 236, 239, 238, 236, 239, 238, 236, 238, 237, 235, 239, 239, 237, 238, 238, 236, 237, 237, 235, 235, 235, 233, 236, 235, 233, 236, 235, 233, 236, 235, 233, 236, 235, 233, 236, 235, 233, 236, 235, 233, 237, 233, 232, 237, 233, 232, 236, 232, 231, 235, 231, 230, 235, 231, 230, 234, 230, 229, 232, 231, 229, 232, 231, 229, 234, 230, 229, 233, 229, 228, 232, 228, 227, 230, 226, 225, 227, 223, 222, 226, 222, 221, 234, 228, 228, 233, 227, 227, 231, 225, 225, 231, 225, 225, 232, 226, 226, 231, 225, 225, 230, 221, 222, 225, 219, 219, 225, 224, 222, 220, 219, 217, 219, 213, 213, 222, 213, 214, 227, 215, 217, 229, 214, 217, 223, 207, 208, 217, 201, 202, 216, 197, 199, 215, 195, 197, 215, 193, 196, 217, 192, 196, 220, 191, 195, 219, 187, 192, 217, 180, 187, 213, 176, 183, 212, 176, 180, 211, 175, 179, 211, 176, 180, 215, 180, 184, 217, 182, 188, 215, 183, 188, 216, 184, 189, 218, 187, 192, 211, 182, 186, 210, 184, 187, 212, 186, 189, 215, 190, 193, 219, 194, 197, 219, 197, 199, 219, 194, 197, 215, 193, 195, 209, 189, 191, 206, 187, 189, 209, 190, 192, 218, 199, 201, 220, 204, 205, 218, 202, 203, 215, 201, 201, 216, 202, 202, 217, 203, 203, 217, 203, 203, 215, 203, 203, 216, 204, 204, 216, 206, 205, 218, 208, 207, 220, 210, 209, 222, 212, 211, 219, 209, 210, 220, 210, 211, 221, 211, 212, 222, 212, 213, 222, 212, 213, 222, 212, 213, 221, 212, 213, 220, 211, 212, 223, 214, 215, 223, 214, 215, 221, 215, 215, 222, 216, 216, 223, 217, 217, 224, 218, 218, 224, 218, 218, 225, 219, 219, 225, 219, 219, 225, 219, 219, 226, 220, 220, 226, 220, 220, 226, 220, 220, 227, 221, 221, 227, 221, 221, 227, 221, 221, 228, 222, 222, 228, 222, 222, 229, 223, 223, 229, 223, 223, 229, 223, 223, 230, 224, 224, 230, 224, 224, 230, 224, 224, 230, 226, 225, 228, 227, 225, 228, 227, 225, 228, 227, 225, 228, 227, 225, 228, 227, 225, 228, 227, 225, 228, 227, 225, 229, 228, 226, 229, 228, 226, 229, 228, 226, 229, 228, 226, 229, 228, 226, 229, 228, 226, 229, 228, 226, 229, 228, 226, 238, 234, 231, 234, 230, 227, 229, 225, 222, 226, 222, 219, 227, 222, 218, 229, 224, 220, 229, 224, 220, 229, 224, 218, 232, 225, 219, 230, 223, 217, 228, 221, 215, 228, 219, 212, 229, 220, 213, 233, 224, 217, 238, 229, 222, 241, 232, 225, 246, 239, 231, 230, 223, 217, 222, 215, 207, 228, 221, 213, 233, 226, 218, 230, 223, 215, 234, 227, 219, 244, 237, 229, 252, 243, 234, 233, 224, 215, 222, 213, 204, 227, 218, 209, 233, 224, 215, 230, 221, 212, 227, 217, 208, 227, 217, 208, 226, 217, 210, 226, 219, 211, 231, 224, 216, 241, 234, 224, 249, 240, 231, 246, 237, 228, 233, 223, 213, 221, 211, 201, 228, 216, 204, 230, 218, 206, 233, 219, 206, 234, 220, 207, 233, 219, 206, 233, 220, 204, 234, 221, 205, 236, 223, 207, 233, 221, 207, 233, 221, 207, 234, 222, 208, 234, 222, 208, 232, 222, 210, 233, 223, 211, 233, 223, 213, 232, 224, 213, 232, 224, 213, 232, 224, 213, 231, 224, 214, 232, 225, 215, 230, 226, 217, 230, 226, 217, 231, 227, 218, 231, 227, 218, 229, 226, 219, 232, 229, 222, 236, 233, 228, 240, 237, 232, 242, 239, 234, 241, 238, 233, 238, 237, 232, 236, 235, 230, 235, 234, 230, 237, 236, 232, 239, 238, 234, 241, 240, 236, 239, 240, 235, 236, 237, 232, 233, 233, 231, 230, 230, 228, 234, 233, 229, 234, 233, 229, 234, 233, 229, 234, 233, 229, 234, 233, 229, 234, 233, 229, 234, 233, 229, 234, 233, 229, 234, 233, 229, 234, 233, 229, 234, 233, 229, 235, 234, 230, 235, 234, 230, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 237, 232, 236, 237, 232, 236, 237, 232, 237, 238, 233, 237, 238, 233, 237, 238, 233, 238, 239, 234, 238, 239, 234, 238, 239, 234, 238, 239, 234, 238, 239, 234, 238, 239, 234, 238, 239, 234, 238, 239, 234, 238, 239, 234, 238, 239, 234, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 240, 235, 240, 241, 236, 240, 241, 236, 240, 241, 236, 241, 242, 237, 241, 242, 237, 241, 242, 237, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 240, 242, 239, 240, 242, 239, 240, 242, 239, 240, 242, 239, 240, 242, 239, 240, 242, 239, 240, 242, 239, 240, 242, 239, 240, 241, 243, 240, 241, 243, 240, 241, 243, 239, 240, 242, 239, 240, 242, 239, 240, 242, 238, 239, 241, 238, 239, 241, 238, 239, 241, 238, 239, 241, 237, 238, 240, 237, 238, 240, 237, 238, 240, 236, 237, 239, 236, 237, 239, 236, 237, 239, 236, 237, 239, 235, 236, 238, 233, 234, 236, 232, 233, 235, 230, 231, 233, 228, 229, 231, 226, 227, 229, 226, 227, 229, 222, 223, 225, 219, 220, 222, 215, 216, 218, 212, 213, 215, 210, 211, 213, 206, 207, 209, 200, 201, 203, 196, 197, 199, 192, 193, 195, 189, 190, 192, 187, 187, 187, 186, 186, 186, 186, 186, 186, 185, 185, 185, 182, 182, 182, 179, 179, 179, 179, 178, 176, 176, 175, 173, 172, 171, 169, 170, 169, 167, 168, 167, 165, 166, 165, 163, 162, 161, 159, 159, 158, 156, 157, 152, 149, 157, 152, 149, 156, 151, 148, 155, 150, 147, 156, 151, 148, 157, 152, 149, 160, 152, 150, 160, 152, 150, 163, 155, 153, 163, 155, 153, 163, 155, 153, 163, 155, 153, 163, 153, 152, 163, 153, 152, 163, 153, 152, 163, 153, 152, 161, 150, 148, 160, 149, 147, 160, 149, 147, 160, 149, 147, 161, 150, 148, 162, 151, 149, 162, 152, 150, 163, 153, 151, 164, 154, 152, 165, 155, 153, 167, 157, 155, 169, 159, 157, 171, 161, 159, 174, 164, 162, 175, 165, 163, 175, 167, 164, 176, 171, 168, 179, 175, 172, 184, 180, 179, 187, 183, 182, 190, 186, 187, 192, 190, 191, 197, 195, 198, 200, 199, 204, 206, 207, 212, 208, 209, 214, 209, 212, 217, 211, 214, 219, 212, 217, 220, 216, 221, 224, 221, 226, 229, 225, 230, 233, 228, 231, 238, 232, 235, 242, 235, 238, 243, 237, 240, 245, 236, 239, 244, 237, 240, 245, 238, 241, 246, 240, 243, 248, 241, 245, 248, 241, 245, 248, 242, 246, 249, 242, 246, 249, 243, 247, 250, 244, 248, 251, 245, 249, 250, 245, 249, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 246, 250, 245, 246, 250, 244, 245, 249, 244, 245, 249, 244, 245, 249, 243, 244, 248, 243, 244, 248, 243, 244, 248, 240, 241, 245, 240, 241, 245, 240, 241, 245, 238, 239, 243, 236, 237, 241, 234, 235, 239, 231, 232, 236, 230, 231, 235, 229, 228, 233, 228, 226, 231, 224, 222, 227, 220, 218, 221, 215, 213, 216, 212, 208, 209, 209, 205, 206, 207, 203, 202, 208, 202, 202, 205, 200, 197, 202, 194, 191, 199, 191, 188, 197, 189, 186, 193, 185, 182, 190, 181, 176, 187, 178, 173, 183, 172, 168, 181, 170, 166, 180, 169, 165, 179, 168, 164, 180, 169, 165, 183, 172, 168, 185, 174, 170, 187, 176, 172, 191, 180, 176, 191, 180, 176, 191, 180, 176, 190, 179, 175, 187, 176, 172, 183, 172, 168, 178, 167, 163, 176, 165, 161, 182, 173, 168, 173, 166, 160, 164, 157, 151, 158, 151, 145, 152, 145, 139, 148, 141, 135, 149, 142, 136, 152, 147, 141, 169, 164, 158, 204, 199, 193, 240, 235, 229, 241, 238, 231, 215, 210, 204, 185, 182, 175, 176, 173, 166, 180, 177, 170, 183, 180, 173, 202, 199, 192, 227, 224, 219, 244, 241, 236, 246, 243, 238, 236, 233, 228, 220, 219, 214, 212, 211, 206, 203, 202, 198, 204, 203, 199, 206, 205, 201, 209, 208, 204, 211, 212, 207, 215, 216, 211, 217, 217, 215, 219, 219, 217, 218, 220, 219, 225, 227, 226, 233, 235, 234, 238, 240, 239, 239, 241, 240, 237, 239, 238, 235, 237, 236, 234, 236, 235, 238, 240, 239, 238, 240, 239, 239, 241, 240, 240, 242, 241, 240, 242, 241, 239, 241, 240, 238, 240, 239, 237, 239, 238, 239, 239, 237, 240, 239, 237, 239, 238, 236, 239, 238, 236, 239, 238, 236, 240, 239, 237, 242, 241, 239, 242, 241, 239, 241, 240, 238, 242, 241, 239, 243, 242, 240, 243, 242, 240, 243, 242, 240, 242, 241, 239, 240, 239, 237, 239, 238, 236, 242, 242, 240, 242, 242, 240, 241, 241, 239, 240, 240, 238, 240, 240, 238, 241, 241, 239, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 239, 238, 236, 239, 238, 236, 239, 238, 236, 239, 238, 236, 240, 239, 237, 240, 239, 237, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 240, 239, 237, 240, 239, 237, 239, 238, 236, 239, 238, 236, 239, 238, 236, 240, 240, 238, 239, 239, 237, 237, 237, 235, 236, 236, 234, 236, 235, 233, 236, 235, 233, 236, 235, 233, 237, 236, 234, 236, 235, 233, 236, 235, 233, 238, 234, 233, 237, 233, 232, 236, 232, 231, 235, 231, 230, 235, 231, 230, 234, 230, 229, 231, 230, 228, 231, 230, 228, 233, 229, 228, 233, 229, 228, 231, 227, 226, 230, 226, 225, 228, 224, 223, 227, 223, 222, 233, 227, 227, 231, 225, 225, 230, 224, 224, 230, 224, 224, 231, 225, 225, 230, 224, 224, 229, 220, 221, 224, 218, 218, 227, 223, 222, 221, 220, 218, 220, 214, 214, 222, 212, 213, 226, 211, 214, 226, 210, 213, 220, 204, 205, 216, 197, 199, 215, 195, 197, 214, 194, 196, 214, 192, 195, 216, 191, 195, 217, 191, 194, 218, 187, 192, 216, 181, 187, 212, 177, 183, 210, 178, 183, 210, 178, 183, 212, 180, 185, 212, 181, 186, 214, 183, 188, 214, 185, 189, 216, 187, 191, 215, 189, 192, 213, 187, 190, 211, 186, 189, 211, 186, 189, 211, 189, 191, 216, 194, 196, 219, 199, 200, 221, 199, 201, 219, 199, 200, 212, 193, 195, 209, 190, 192, 209, 193, 194, 216, 200, 201, 219, 203, 204, 216, 200, 201, 213, 199, 199, 213, 199, 199, 215, 203, 203, 215, 203, 203, 215, 203, 203, 216, 204, 204, 216, 206, 205, 218, 208, 207, 220, 210, 209, 221, 211, 210, 222, 212, 211, 222, 212, 211, 221, 211, 210, 221, 211, 210, 221, 211, 210, 222, 212, 211, 223, 213, 212, 224, 214, 213, 222, 214, 212, 222, 214, 212, 223, 215, 213, 224, 216, 214, 223, 218, 215, 223, 218, 215, 224, 219, 216, 224, 219, 216, 225, 220, 217, 226, 221, 218, 226, 221, 218, 226, 221, 218, 227, 222, 219, 227, 222, 219, 227, 222, 219, 227, 222, 219, 228, 223, 220, 229, 224, 221, 229, 224, 221, 229, 224, 221, 230, 225, 222, 230, 225, 222, 230, 225, 222, 231, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 231, 227, 224, 232, 228, 225, 232, 228, 225, 230, 226, 223, 228, 223, 219, 227, 222, 218, 229, 222, 216, 230, 223, 217, 231, 222, 217, 230, 221, 214, 229, 220, 213, 230, 220, 211, 230, 220, 211, 232, 222, 213, 233, 223, 214, 234, 224, 215, 250, 241, 234, 235, 228, 220, 229, 222, 214, 233, 226, 218, 232, 225, 215, 224, 217, 207, 226, 217, 208, 234, 225, 216, 255, 246, 237, 244, 235, 226, 231, 221, 211, 225, 215, 205, 228, 218, 208, 231, 221, 211, 228, 218, 208, 223, 213, 203, 229, 220, 211, 223, 214, 205, 222, 213, 204, 232, 224, 213, 248, 238, 228, 252, 242, 232, 242, 232, 222, 230, 220, 210, 222, 212, 200, 227, 217, 205, 234, 222, 210, 235, 223, 211, 232, 220, 208, 231, 219, 205, 234, 222, 208, 237, 225, 211, 233, 221, 207, 233, 221, 207, 234, 222, 210, 234, 222, 210, 232, 222, 210, 233, 223, 211, 232, 224, 213, 232, 224, 213, 232, 223, 214, 231, 224, 214, 232, 225, 215, 232, 225, 215, 230, 226, 217, 231, 227, 218, 231, 227, 218, 231, 227, 218, 231, 228, 221, 231, 228, 221, 231, 228, 223, 232, 229, 224, 235, 232, 227, 238, 235, 230, 240, 239, 234, 242, 241, 236, 232, 231, 227, 234, 233, 229, 238, 237, 233, 241, 240, 236, 241, 242, 237, 239, 240, 235, 237, 237, 235, 235, 235, 233, 235, 234, 230, 235, 234, 230, 235, 234, 230, 235, 234, 230, 235, 234, 230, 235, 234, 230, 235, 234, 230, 235, 234, 230, 234, 233, 229, 234, 233, 229, 235, 234, 230, 235, 234, 230, 235, 234, 230, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 237, 232, 236, 237, 232, 236, 237, 232, 237, 238, 233, 237, 238, 233, 237, 238, 233, 238, 239, 234, 238, 239, 234, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 240, 235, 240, 241, 236, 240, 241, 236, 240, 241, 236, 241, 242, 237, 241, 242, 237, 241, 242, 237, 242, 243, 238, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 240, 242, 239, 240, 242, 239, 240, 242, 239, 240, 242, 239, 240, 242, 239, 240, 242, 239, 240, 242, 239, 240, 242, 239, 241, 242, 244, 240, 241, 243, 240, 241, 243, 240, 241, 243, 239, 240, 242, 239, 240, 242, 239, 240, 242, 238, 239, 241, 238, 239, 241, 238, 239, 241, 238, 239, 241, 237, 238, 240, 237, 238, 240, 236, 237, 239, 236, 237, 239, 236, 237, 239, 236, 237, 239, 235, 236, 238, 234, 235, 237, 232, 233, 235, 231, 232, 234, 229, 230, 232, 228, 229, 231, 227, 228, 230, 223, 224, 226, 221, 222, 224, 218, 219, 221, 216, 217, 219, 215, 216, 218, 212, 213, 215, 207, 208, 210, 203, 204, 206, 198, 199, 201, 194, 195, 197, 190, 191, 193, 188, 189, 191, 187, 188, 190, 186, 187, 189, 186, 186, 186, 184, 184, 184, 183, 183, 183, 180, 180, 180, 176, 175, 173, 173, 172, 170, 170, 169, 167, 167, 166, 164, 162, 161, 159, 159, 158, 156, 155, 150, 147, 154, 149, 146, 154, 149, 146, 153, 148, 145, 154, 149, 146, 155, 150, 147, 158, 150, 148, 159, 151, 149, 163, 155, 153, 163, 155, 153, 163, 155, 153, 163, 155, 153, 163, 153, 152, 163, 153, 152, 163, 153, 152, 163, 153, 152, 161, 151, 149, 160, 151, 146, 159, 150, 145, 158, 149, 144, 158, 149, 144, 158, 149, 144, 160, 149, 145, 160, 149, 145, 164, 153, 149, 165, 154, 150, 167, 156, 152, 169, 158, 154, 172, 161, 157, 174, 163, 159, 176, 165, 161, 176, 167, 162, 175, 167, 164, 176, 171, 167, 181, 176, 173, 184, 180, 179, 186, 182, 183, 188, 186, 187, 192, 190, 193, 195, 195, 197, 199, 200, 204, 202, 203, 207, 203, 207, 210, 207, 211, 214, 208, 213, 216, 213, 218, 221, 219, 224, 227, 223, 228, 231, 227, 230, 237, 230, 233, 240, 234, 237, 242, 235, 238, 243, 235, 238, 243, 236, 239, 244, 238, 241, 246, 240, 243, 248, 240, 244, 247, 241, 245, 248, 241, 245, 248, 242, 246, 249, 243, 247, 250, 244, 248, 251, 244, 248, 249, 245, 249, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 244, 245, 249, 244, 245, 249, 243, 244, 248, 243, 244, 248, 243, 244, 248, 242, 243, 247, 240, 241, 245, 237, 238, 242, 235, 236, 240, 234, 235, 239, 234, 233, 239, 232, 231, 237, 228, 227, 233, 224, 222, 227, 218, 216, 221, 213, 211, 214, 209, 207, 210, 209, 205, 206, 207, 203, 202, 205, 199, 199, 201, 196, 193, 200, 192, 189, 198, 190, 187, 196, 188, 185, 192, 185, 179, 189, 182, 176, 193, 184, 179, 192, 183, 178, 192, 181, 177, 191, 182, 177, 193, 182, 178, 194, 185, 180, 197, 186, 182, 197, 188, 183, 196, 185, 181, 194, 185, 180, 194, 183, 179, 191, 182, 177, 188, 177, 173, 183, 174, 169, 180, 169, 165, 177, 168, 163, 175, 168, 162, 175, 168, 162, 174, 166, 163, 171, 166, 160, 173, 165, 162, 173, 168, 162, 178, 173, 169, 183, 178, 172, 234, 229, 225, 230, 227, 220, 220, 217, 212, 204, 201, 194, 189, 186, 181, 183, 180, 173, 186, 183, 178, 193, 190, 183, 231, 228, 221, 237, 234, 227, 243, 240, 235, 240, 237, 232, 228, 225, 220, 213, 210, 205, 201, 200, 195, 197, 196, 191, 203, 202, 198, 206, 205, 201, 210, 209, 205, 215, 214, 210, 218, 219, 214, 221, 222, 217, 223, 223, 221, 223, 223, 221, 222, 224, 223, 226, 228, 227, 232, 234, 233, 234, 236, 235, 234, 236, 235, 232, 234, 233, 232, 234, 233, 232, 234, 233, 236, 238, 237, 237, 239, 238, 238, 240, 239, 239, 241, 240, 239, 241, 240, 239, 241, 240, 238, 240, 239, 237, 239, 238, 240, 239, 237, 239, 238, 236, 239, 238, 236, 238, 237, 235, 239, 238, 236, 240, 239, 237, 241, 240, 238, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 241, 240, 238, 240, 239, 237, 239, 238, 236, 239, 238, 236, 243, 243, 241, 242, 242, 240, 241, 241, 239, 240, 240, 238, 240, 240, 238, 241, 241, 239, 242, 242, 240, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 239, 238, 236, 239, 238, 236, 240, 239, 237, 241, 240, 238, 242, 241, 239, 242, 241, 239, 243, 242, 240, 244, 243, 241, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 240, 239, 237, 240, 239, 237, 239, 238, 236, 239, 238, 236, 240, 240, 238, 239, 239, 237, 237, 237, 235, 236, 236, 234, 236, 235, 233, 236, 235, 233, 236, 235, 233, 237, 236, 234, 236, 235, 233, 236, 235, 233, 237, 233, 232, 236, 232, 231, 235, 231, 230, 235, 231, 230, 234, 230, 229, 234, 230, 229, 230, 229, 227, 230, 229, 227, 232, 228, 227, 232, 228, 227, 231, 227, 226, 230, 226, 225, 228, 224, 223, 227, 223, 222, 233, 227, 227, 231, 225, 225, 230, 224, 224, 230, 224, 224, 231, 225, 225, 230, 224, 224, 229, 220, 221, 224, 218, 218, 225, 221, 220, 222, 218, 217, 221, 212, 213, 221, 211, 212, 223, 208, 211, 223, 204, 208, 218, 199, 201, 214, 194, 196, 214, 194, 196, 213, 193, 195, 213, 191, 194, 216, 191, 195, 217, 191, 194, 217, 188, 192, 214, 182, 187, 210, 178, 183, 210, 179, 184, 212, 183, 187, 214, 183, 188, 212, 183, 187, 213, 184, 188, 215, 189, 192, 216, 190, 193, 213, 188, 191, 217, 192, 195, 212, 190, 192, 210, 188, 190, 210, 190, 191, 215, 195, 196, 219, 201, 201, 222, 204, 204, 223, 205, 205, 219, 200, 202, 215, 196, 198, 213, 197, 198, 218, 202, 203, 220, 204, 205, 216, 202, 202, 213, 199, 199, 214, 200, 200, 217, 205, 205, 216, 204, 204, 216, 204, 204, 215, 205, 204, 216, 206, 205, 218, 208, 207, 220, 210, 209, 221, 211, 210, 225, 215, 214, 223, 213, 212, 221, 211, 210, 220, 210, 209, 221, 211, 210, 223, 213, 212, 225, 215, 214, 227, 217, 216, 222, 214, 212, 223, 215, 213, 223, 215, 213, 224, 216, 214, 223, 218, 215, 223, 218, 215, 224, 219, 216, 224, 219, 216, 226, 221, 218, 226, 221, 218, 226, 221, 218, 227, 222, 219, 227, 222, 219, 227, 222, 219, 228, 223, 220, 228, 223, 220, 229, 224, 221, 229, 224, 221, 229, 224, 221, 230, 225, 222, 230, 225, 222, 230, 225, 222, 231, 226, 223, 231, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 225, 221, 218, 230, 226, 223, 234, 230, 227, 233, 229, 226, 229, 224, 220, 225, 220, 216, 227, 220, 214, 230, 223, 217, 228, 219, 212, 229, 220, 213, 231, 221, 212, 231, 221, 212, 230, 220, 211, 229, 219, 209, 230, 217, 208, 227, 217, 207, 227, 218, 209, 244, 237, 229, 251, 244, 236, 236, 229, 221, 223, 216, 206, 223, 216, 206, 227, 218, 209, 224, 215, 206, 230, 221, 212, 251, 242, 233, 255, 245, 235, 234, 224, 214, 221, 211, 201, 228, 218, 208, 231, 221, 211, 224, 214, 204, 230, 220, 210, 228, 220, 209, 227, 217, 207, 226, 216, 206, 228, 218, 208, 235, 225, 215, 245, 235, 225, 253, 243, 233, 231, 221, 209, 231, 221, 209, 232, 220, 208, 231, 219, 207, 231, 219, 207, 230, 220, 208, 234, 222, 210, 235, 223, 211, 233, 221, 207, 233, 221, 207, 234, 222, 210, 232, 222, 210, 232, 222, 210, 233, 223, 211, 232, 224, 213, 232, 224, 213, 231, 224, 214, 232, 225, 215, 232, 225, 215, 230, 226, 215, 231, 227, 218, 231, 227, 218, 231, 227, 218, 232, 228, 219, 232, 229, 222, 231, 228, 221, 230, 227, 222, 230, 227, 222, 231, 228, 223, 235, 232, 227, 237, 236, 231, 239, 238, 233, 240, 239, 235, 238, 237, 233, 236, 235, 231, 234, 233, 229, 234, 235, 230, 237, 238, 233, 241, 241, 239, 243, 243, 241, 235, 234, 230, 235, 234, 230, 235, 234, 230, 235, 234, 230, 235, 234, 230, 235, 234, 230, 235, 234, 230, 235, 234, 230, 235, 234, 230, 235, 234, 230, 235, 234, 230, 235, 234, 230, 236, 235, 231, 236, 235, 231, 237, 236, 232, 237, 236, 232, 236, 237, 232, 236, 237, 232, 236, 237, 232, 237, 238, 233, 237, 238, 233, 237, 238, 233, 238, 239, 234, 238, 239, 234, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 241, 236, 241, 242, 237, 241, 242, 237, 241, 242, 237, 242, 243, 238, 242, 243, 238, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 242, 244, 241, 242, 244, 240, 241, 243, 240, 241, 243, 240, 241, 243, 239, 240, 242, 239, 240, 242, 239, 240, 242, 238, 239, 241, 238, 239, 241, 238, 239, 241, 238, 239, 241, 237, 238, 240, 237, 238, 240, 237, 238, 240, 236, 237, 239, 236, 237, 239, 236, 237, 239, 235, 236, 238, 233, 234, 236, 232, 233, 235, 231, 232, 234, 230, 231, 233, 229, 230, 232, 226, 227, 229, 224, 225, 227, 222, 223, 225, 221, 222, 224, 220, 221, 223, 218, 219, 221, 214, 215, 217, 210, 211, 213, 204, 205, 207, 200, 201, 203, 195, 196, 198, 192, 193, 195, 191, 192, 194, 191, 192, 194, 190, 190, 190, 188, 188, 188, 186, 186, 186, 182, 182, 182, 178, 177, 175, 174, 173, 171, 171, 170, 168, 166, 165, 163, 161, 160, 158, 157, 156, 154, 153, 148, 145, 153, 148, 145, 152, 147, 144, 152, 147, 144, 153, 148, 145, 154, 149, 146, 157, 149, 147, 158, 150, 148, 161, 153, 151, 161, 153, 151, 162, 154, 152, 162, 154, 152, 163, 153, 152, 163, 153, 152, 164, 154, 153, 164, 154, 152, 162, 152, 150, 161, 152, 147, 159, 150, 145, 157, 148, 143, 156, 147, 142, 155, 146, 141, 156, 145, 141, 156, 145, 141, 163, 152, 148, 164, 153, 149, 166, 155, 151, 168, 157, 153, 170, 159, 155, 173, 162, 158, 174, 163, 159, 174, 165, 160, 173, 165, 162, 175, 170, 166, 179, 174, 171, 182, 177, 174, 184, 180, 181, 187, 183, 184, 189, 187, 190, 192, 192, 194, 194, 193, 198, 197, 198, 202, 199, 203, 206, 203, 207, 210, 206, 211, 214, 211, 216, 219, 218, 223, 226, 222, 227, 230, 224, 227, 232, 228, 231, 238, 232, 235, 240, 234, 237, 242, 234, 237, 242, 235, 238, 243, 237, 240, 245, 239, 242, 247, 240, 244, 247, 240, 244, 247, 241, 245, 248, 242, 246, 249, 243, 247, 250, 243, 247, 250, 244, 248, 249, 244, 248, 249, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 247, 248, 253, 247, 248, 253, 247, 248, 253, 246, 247, 252, 246, 247, 252, 245, 246, 251, 245, 246, 251, 245, 246, 251, 244, 245, 250, 244, 245, 250, 244, 245, 250, 243, 244, 249, 242, 243, 248, 240, 241, 246, 238, 239, 244, 237, 238, 243, 235, 235, 243, 233, 234, 239, 229, 230, 235, 225, 224, 229, 219, 218, 223, 214, 214, 216, 210, 210, 212, 209, 207, 208, 207, 206, 204, 206, 202, 201, 203, 199, 196, 202, 197, 194, 201, 196, 192, 199, 194, 190, 195, 190, 184, 194, 187, 181, 200, 193, 187, 199, 192, 186, 200, 191, 186, 198, 191, 185, 198, 189, 184, 197, 190, 184, 198, 189, 184, 197, 190, 184, 191, 182, 177, 189, 182, 176, 189, 180, 175, 187, 180, 174, 186, 177, 172, 182, 175, 169, 181, 172, 167, 179, 172, 166, 175, 167, 164, 188, 183, 179, 192, 187, 184, 179, 176, 171, 175, 170, 167, 192, 189, 184, 218, 214, 211, 233, 230, 225, 226, 222, 219, 214, 213, 208, 201, 200, 196, 192, 191, 186, 192, 191, 187, 200, 199, 194, 211, 210, 206, 219, 218, 213, 246, 243, 236, 239, 234, 228, 225, 222, 215, 214, 211, 204, 207, 204, 199, 206, 203, 198, 208, 205, 200, 210, 207, 202, 212, 211, 206, 213, 212, 207, 214, 213, 209, 217, 216, 212, 220, 219, 215, 223, 222, 218, 225, 226, 221, 226, 226, 224, 225, 227, 226, 227, 229, 228, 227, 229, 228, 227, 229, 228, 225, 227, 226, 226, 228, 227, 229, 231, 230, 232, 234, 233, 235, 237, 236, 235, 237, 236, 237, 239, 238, 238, 240, 239, 239, 241, 240, 239, 241, 240, 238, 240, 239, 238, 240, 239, 240, 239, 237, 239, 238, 236, 238, 237, 235, 238, 237, 235, 238, 237, 235, 240, 239, 237, 241, 240, 238, 242, 241, 239, 242, 241, 239, 242, 241, 239, 241, 240, 238, 241, 240, 238, 240, 239, 237, 240, 239, 237, 240, 239, 237, 240, 239, 237, 243, 243, 241, 242, 242, 240, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 242, 242, 240, 243, 243, 241, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 241, 240, 238, 241, 240, 238, 242, 241, 239, 243, 242, 240, 243, 242, 240, 244, 243, 241, 245, 244, 242, 245, 244, 242, 241, 240, 238, 241, 240, 238, 241, 240, 238, 240, 239, 237, 240, 239, 237, 239, 238, 236, 239, 238, 236, 239, 238, 236, 239, 239, 237, 238, 238, 236, 236, 236, 234, 235, 235, 233, 235, 234, 232, 235, 234, 232, 235, 234, 232, 236, 235, 233, 235, 234, 232, 234, 233, 231, 236, 232, 231, 235, 231, 230, 234, 230, 229, 233, 229, 228, 233, 229, 228, 233, 229, 228, 229, 228, 226, 229, 228, 226, 232, 228, 227, 232, 228, 227, 231, 227, 226, 230, 226, 225, 228, 224, 223, 227, 223, 222, 234, 228, 228, 232, 226, 226, 231, 225, 225, 231, 225, 225, 232, 226, 226, 231, 225, 225, 230, 221, 222, 227, 218, 219, 222, 216, 216, 221, 215, 215, 221, 211, 212, 220, 208, 210, 221, 205, 208, 219, 200, 204, 216, 196, 198, 213, 193, 195, 214, 194, 196, 213, 193, 195, 213, 191, 194, 214, 192, 195, 217, 192, 195, 216, 190, 193, 213, 184, 188, 210, 181, 185, 211, 182, 187, 214, 187, 192, 217, 188, 193, 211, 184, 189, 213, 187, 190, 217, 192, 195, 218, 193, 196, 212, 190, 192, 220, 198, 200, 216, 196, 197, 212, 192, 191, 211, 193, 191, 215, 197, 195, 218, 203, 200, 221, 206, 203, 223, 208, 205, 223, 207, 207, 219, 203, 203, 217, 201, 201, 221, 205, 205, 222, 208, 207, 218, 204, 203, 216, 202, 201, 215, 204, 202, 219, 208, 206, 218, 207, 205, 217, 207, 205, 217, 207, 205, 217, 207, 205, 218, 210, 207, 219, 211, 208, 221, 211, 209, 226, 216, 215, 226, 214, 214, 224, 212, 212, 222, 210, 210, 222, 212, 211, 224, 214, 213, 226, 216, 215, 228, 218, 217, 223, 215, 213, 223, 215, 213, 224, 216, 214, 225, 217, 215, 226, 218, 216, 226, 218, 216, 227, 219, 217, 227, 219, 217, 226, 221, 218, 226, 221, 218, 227, 222, 219, 227, 222, 219, 227, 222, 219, 228, 223, 220, 228, 223, 220, 228, 223, 220, 229, 224, 221, 229, 224, 221, 230, 225, 222, 230, 225, 222, 231, 226, 223, 231, 226, 223, 231, 226, 223, 231, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 229, 225, 222, 229, 225, 222, 229, 225, 222, 229, 225, 222, 229, 225, 222, 229, 225, 222, 229, 225, 222, 229, 225, 222, 223, 219, 216, 228, 224, 221, 233, 229, 226, 233, 229, 226, 229, 224, 220, 225, 220, 216, 227, 220, 214, 229, 222, 216, 227, 218, 211, 227, 218, 211, 230, 220, 211, 230, 220, 211, 232, 219, 210, 230, 217, 208, 228, 214, 205, 226, 213, 204, 216, 207, 198, 236, 229, 219, 248, 241, 231, 240, 233, 223, 230, 221, 212, 229, 220, 211, 227, 219, 208, 221, 213, 202, 215, 207, 196, 237, 229, 218, 255, 245, 235, 251, 241, 231, 236, 226, 214, 226, 216, 204, 227, 217, 205, 230, 220, 208, 229, 219, 207, 233, 223, 211, 235, 223, 211, 229, 217, 205, 223, 211, 199, 227, 215, 203, 240, 230, 218, 254, 244, 232, 246, 236, 226, 237, 227, 217, 228, 218, 208, 224, 214, 204, 227, 217, 207, 230, 222, 211, 231, 221, 211, 229, 219, 209, 231, 221, 209, 231, 221, 209, 232, 222, 210, 232, 222, 210, 232, 222, 212, 232, 224, 213, 232, 223, 214, 232, 223, 214, 232, 225, 215, 232, 225, 215, 230, 226, 217, 231, 227, 218, 231, 226, 220, 231, 228, 221, 231, 228, 221, 231, 228, 221, 233, 230, 223, 233, 230, 223, 232, 229, 224, 232, 229, 224, 232, 229, 224, 232, 229, 224, 230, 229, 224, 230, 229, 224, 242, 241, 237, 240, 239, 235, 237, 236, 232, 235, 234, 230, 234, 235, 230, 236, 237, 232, 239, 239, 237, 241, 241, 239, 235, 234, 230, 235, 234, 230, 235, 234, 230, 235, 234, 230, 235, 234, 230, 235, 234, 230, 235, 234, 230, 235, 234, 230, 235, 234, 230, 235, 234, 230, 236, 235, 231, 236, 235, 231, 236, 235, 231, 237, 236, 232, 237, 236, 232, 237, 236, 232, 236, 237, 232, 236, 237, 232, 236, 237, 232, 237, 238, 233, 237, 238, 233, 237, 238, 233, 238, 239, 234, 238, 239, 234, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 241, 236, 241, 242, 237, 241, 242, 237, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 242, 244, 241, 242, 244, 241, 242, 244, 241, 242, 244, 240, 241, 243, 240, 241, 243, 239, 240, 242, 239, 240, 242, 239, 240, 242, 239, 240, 242, 238, 239, 241, 238, 239, 241, 238, 239, 241, 237, 238, 240, 237, 238, 240, 237, 238, 240, 237, 238, 240, 236, 237, 239, 235, 236, 238, 234, 235, 237, 233, 234, 236, 232, 233, 235, 232, 233, 235, 231, 232, 234, 229, 230, 232, 227, 228, 230, 225, 226, 228, 224, 225, 227, 224, 225, 227, 222, 223, 225, 218, 219, 221, 215, 216, 218, 209, 210, 212, 206, 207, 209, 201, 202, 204, 198, 199, 201, 197, 198, 200, 196, 197, 199, 194, 194, 194, 192, 192, 192, 187, 187, 187, 183, 183, 183, 177, 177, 177, 173, 173, 173, 170, 169, 167, 166, 165, 163, 160, 159, 157, 156, 155, 153, 155, 150, 147, 154, 149, 146, 153, 148, 145, 152, 147, 144, 152, 147, 144, 153, 148, 145, 156, 148, 146, 156, 148, 146, 159, 151, 149, 160, 152, 150, 160, 152, 150, 160, 152, 150, 162, 152, 151, 163, 153, 152, 163, 153, 152, 163, 153, 151, 162, 152, 150, 160, 151, 146, 158, 149, 144, 156, 147, 142, 155, 146, 141, 154, 145, 140, 155, 144, 140, 155, 144, 140, 162, 151, 147, 163, 152, 148, 164, 153, 149, 167, 156, 152, 171, 157, 154, 173, 159, 156, 175, 161, 158, 174, 163, 159, 175, 165, 163, 177, 169, 166, 181, 173, 171, 182, 177, 174, 183, 179, 180, 186, 182, 183, 188, 186, 189, 191, 191, 193, 191, 190, 195, 194, 195, 199, 196, 200, 203, 201, 205, 208, 204, 209, 212, 209, 214, 217, 214, 223, 222, 221, 226, 229, 222, 225, 230, 225, 228, 235, 229, 232, 237, 232, 235, 240, 233, 236, 241, 234, 237, 242, 236, 239, 244, 238, 241, 246, 240, 244, 247, 240, 244, 247, 240, 244, 247, 241, 245, 248, 242, 246, 249, 243, 247, 250, 243, 247, 248, 244, 248, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 247, 248, 253, 247, 248, 253, 247, 248, 253, 246, 247, 252, 246, 247, 252, 246, 247, 252, 245, 246, 251, 245, 246, 251, 244, 245, 250, 244, 245, 250, 244, 245, 250, 244, 245, 250, 243, 244, 249, 241, 242, 247, 239, 240, 245, 238, 239, 244, 236, 236, 244, 234, 234, 242, 231, 232, 237, 226, 227, 232, 222, 221, 227, 217, 216, 221, 214, 214, 216, 212, 212, 212, 213, 211, 212, 211, 210, 208, 209, 205, 202, 208, 204, 201, 209, 204, 200, 207, 202, 198, 204, 199, 193, 202, 197, 191, 205, 198, 192, 204, 197, 191, 203, 196, 190, 202, 195, 189, 200, 193, 187, 198, 191, 185, 197, 190, 184, 196, 189, 183, 190, 183, 177, 190, 183, 177, 189, 182, 176, 189, 182, 176, 188, 181, 175, 188, 181, 175, 188, 181, 175, 186, 181, 175, 186, 181, 178, 191, 187, 184, 192, 188, 185, 194, 190, 187, 210, 206, 203, 231, 227, 224, 233, 229, 226, 220, 219, 215, 190, 189, 185, 199, 198, 194, 208, 207, 203, 208, 207, 203, 205, 204, 200, 213, 214, 209, 235, 236, 231, 255, 254, 249, 232, 229, 224, 223, 218, 212, 208, 205, 198, 201, 198, 191, 203, 200, 195, 210, 207, 202, 215, 212, 207, 218, 215, 210, 217, 216, 211, 217, 216, 211, 216, 215, 211, 217, 216, 212, 218, 217, 213, 221, 220, 216, 223, 224, 219, 224, 225, 220, 226, 228, 227, 226, 228, 227, 225, 227, 226, 222, 224, 223, 221, 223, 222, 223, 225, 224, 228, 230, 229, 232, 234, 233, 233, 235, 234, 234, 236, 235, 236, 238, 237, 237, 239, 238, 238, 240, 239, 238, 240, 239, 238, 240, 239, 238, 240, 239, 239, 238, 236, 239, 238, 236, 238, 237, 235, 238, 237, 235, 238, 237, 235, 239, 238, 236, 240, 239, 237, 241, 240, 238, 242, 241, 239, 241, 240, 238, 240, 239, 237, 240, 239, 237, 240, 239, 237, 242, 241, 239, 243, 242, 240, 244, 243, 241, 243, 243, 241, 243, 243, 241, 242, 242, 240, 241, 241, 239, 241, 241, 239, 242, 242, 240, 243, 243, 241, 243, 243, 241, 245, 245, 243, 245, 245, 243, 244, 244, 242, 243, 243, 241, 243, 243, 241, 242, 242, 240, 241, 241, 239, 241, 241, 239, 242, 241, 239, 242, 241, 239, 243, 242, 240, 243, 242, 240, 243, 242, 240, 244, 243, 241, 244, 243, 241, 244, 243, 241, 240, 239, 237, 240, 239, 237, 239, 238, 236, 239, 238, 236, 239, 238, 236, 238, 237, 235, 238, 237, 235, 238, 237, 235, 237, 237, 235, 236, 236, 234, 235, 235, 233, 233, 233, 231, 234, 233, 231, 234, 233, 231, 234, 233, 231, 234, 233, 231, 233, 232, 230, 233, 232, 230, 234, 230, 229, 233, 229, 228, 232, 228, 227, 232, 228, 227, 231, 227, 226, 231, 227, 226, 228, 227, 225, 228, 227, 225, 231, 227, 226, 231, 227, 226, 231, 227, 226, 230, 226, 225, 229, 225, 224, 228, 224, 223, 233, 227, 227, 231, 225, 225, 230, 224, 224, 230, 224, 224, 231, 225, 225, 230, 224, 224, 229, 220, 221, 226, 217, 218, 218, 212, 212, 219, 210, 211, 220, 208, 210, 220, 205, 208, 220, 201, 205, 218, 197, 202, 216, 194, 197, 214, 192, 195, 215, 193, 196, 213, 193, 195, 214, 192, 195, 215, 193, 196, 218, 193, 196, 216, 191, 194, 213, 187, 190, 209, 183, 186, 212, 185, 190, 219, 192, 197, 220, 193, 198, 212, 187, 191, 213, 188, 191, 219, 197, 199, 219, 197, 199, 212, 192, 193, 224, 204, 205, 219, 201, 201, 215, 197, 195, 212, 197, 194, 215, 200, 197, 218, 204, 201, 220, 206, 203, 220, 206, 203, 227, 211, 211, 222, 206, 206, 220, 204, 204, 223, 207, 207, 223, 209, 208, 221, 207, 206, 217, 206, 204, 218, 207, 205, 221, 210, 208, 220, 210, 208, 219, 209, 207, 219, 209, 207, 218, 210, 207, 219, 211, 208, 220, 212, 209, 221, 213, 210, 226, 216, 215, 226, 214, 214, 225, 213, 213, 225, 213, 213, 225, 215, 214, 226, 216, 215, 227, 217, 216, 228, 218, 217, 225, 217, 215, 225, 217, 215, 225, 217, 215, 226, 218, 216, 227, 219, 217, 228, 220, 218, 228, 220, 218, 229, 221, 219, 227, 222, 219, 227, 222, 219, 227, 222, 219, 227, 222, 219, 228, 223, 220, 228, 223, 220, 228, 223, 220, 229, 224, 221, 230, 225, 222, 230, 225, 222, 230, 225, 222, 231, 226, 223, 231, 226, 223, 231, 226, 223, 232, 227, 224, 232, 227, 224, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 228, 224, 221, 228, 224, 221, 228, 224, 221, 228, 224, 221, 228, 224, 221, 228, 224, 221, 228, 224, 221, 228, 224, 221, 224, 220, 217, 227, 223, 220, 230, 226, 223, 230, 226, 223, 229, 224, 220, 227, 222, 218, 228, 221, 215, 228, 221, 213, 226, 217, 210, 226, 217, 208, 228, 218, 209, 229, 219, 209, 230, 217, 208, 229, 216, 207, 228, 214, 203, 226, 214, 202, 227, 218, 209, 218, 211, 201, 222, 215, 205, 239, 232, 222, 247, 238, 229, 236, 227, 218, 225, 217, 206, 224, 216, 205, 226, 218, 207, 216, 208, 197, 229, 219, 209, 255, 246, 236, 255, 248, 236, 233, 223, 211, 222, 212, 200, 233, 223, 211, 231, 219, 205, 231, 219, 205, 232, 220, 206, 232, 220, 208, 232, 220, 208, 233, 221, 209, 234, 222, 210, 233, 223, 211, 250, 240, 230, 242, 232, 222, 233, 223, 213, 227, 219, 208, 227, 219, 208, 229, 220, 211, 229, 220, 211, 228, 219, 210, 231, 221, 211, 231, 221, 209, 232, 222, 210, 232, 222, 210, 231, 223, 212, 232, 224, 213, 232, 223, 214, 231, 224, 214, 232, 225, 215, 230, 226, 215, 231, 227, 218, 231, 227, 218, 231, 228, 221, 231, 228, 221, 231, 228, 221, 231, 228, 221, 232, 229, 222, 233, 230, 223, 234, 231, 226, 235, 232, 227, 234, 231, 226, 231, 228, 223, 227, 226, 221, 225, 224, 219, 234, 233, 229, 236, 235, 231, 239, 238, 234, 241, 240, 236, 240, 241, 236, 238, 239, 234, 235, 235, 233, 233, 233, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 235, 234, 230, 236, 235, 231, 236, 235, 231, 236, 235, 231, 237, 236, 232, 237, 236, 232, 237, 236, 232, 238, 237, 233, 236, 237, 232, 236, 237, 232, 236, 237, 232, 237, 238, 233, 237, 238, 233, 237, 238, 233, 238, 239, 234, 238, 239, 234, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 240, 235, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 241, 236, 241, 242, 237, 241, 242, 237, 241, 242, 237, 242, 243, 238, 242, 243, 238, 242, 243, 238, 243, 244, 239, 243, 244, 239, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 242, 243, 245, 242, 243, 245, 241, 242, 244, 241, 242, 244, 241, 242, 244, 240, 241, 243, 240, 241, 243, 240, 241, 243, 239, 240, 242, 239, 240, 242, 239, 240, 242, 238, 239, 241, 238, 239, 241, 238, 239, 241, 237, 238, 240, 237, 238, 240, 237, 238, 240, 237, 238, 240, 236, 237, 239, 235, 236, 238, 235, 236, 238, 234, 235, 237, 233, 234, 236, 233, 234, 236, 232, 233, 235, 229, 230, 232, 227, 228, 230, 226, 227, 229, 226, 227, 229, 224, 225, 227, 220, 221, 223, 216, 217, 219, 213, 214, 216, 210, 211, 213, 208, 209, 211, 206, 207, 209, 205, 206, 208, 202, 203, 205, 198, 198, 198, 194, 194, 194, 187, 187, 187, 183, 183, 183, 178, 178, 178, 173, 173, 173, 171, 170, 168, 167, 166, 164, 161, 160, 158, 158, 157, 155, 159, 154, 151, 158, 153, 150, 156, 151, 148, 154, 149, 146, 153, 148, 145, 152, 147, 144, 154, 146, 144, 154, 146, 144, 157, 149, 147, 157, 149, 147, 158, 150, 148, 159, 151, 149, 160, 150, 149, 161, 151, 150, 162, 152, 151, 162, 152, 150, 161, 151, 149, 160, 151, 146, 158, 149, 144, 156, 147, 142, 155, 146, 141, 154, 145, 140, 155, 144, 140, 155, 144, 140, 160, 149, 145, 161, 150, 146, 163, 152, 148, 165, 154, 150, 170, 156, 153, 172, 158, 155, 174, 160, 157, 173, 162, 158, 175, 165, 163, 177, 169, 166, 181, 173, 171, 183, 175, 173, 183, 177, 179, 185, 181, 182, 187, 185, 188, 190, 188, 191, 189, 188, 193, 191, 192, 196, 194, 198, 201, 198, 202, 205, 201, 206, 209, 206, 211, 214, 210, 219, 218, 215, 223, 225, 219, 222, 227, 223, 226, 233, 228, 231, 236, 230, 233, 238, 231, 234, 239, 232, 235, 240, 235, 238, 243, 237, 240, 245, 239, 243, 246, 240, 244, 247, 240, 244, 247, 241, 245, 248, 242, 246, 249, 242, 246, 249, 243, 247, 248, 243, 247, 248, 246, 247, 249, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 247, 248, 253, 247, 248, 253, 246, 247, 252, 246, 247, 252, 246, 247, 252, 245, 246, 251, 245, 246, 251, 245, 246, 251, 243, 244, 249, 243, 244, 249, 244, 245, 250, 243, 244, 249, 242, 243, 248, 241, 242, 247, 239, 240, 245, 238, 239, 244, 235, 238, 245, 234, 237, 244, 231, 234, 241, 227, 230, 235, 225, 226, 231, 221, 222, 226, 218, 219, 221, 216, 218, 217, 216, 216, 216, 214, 214, 212, 212, 211, 207, 211, 210, 206, 213, 210, 205, 212, 209, 204, 210, 207, 200, 207, 204, 197, 204, 199, 193, 204, 199, 193, 204, 199, 193, 203, 198, 192, 202, 197, 191, 200, 195, 189, 198, 193, 187, 197, 192, 186, 194, 189, 183, 193, 188, 182, 192, 187, 181, 192, 187, 181, 192, 187, 181, 193, 188, 182, 194, 189, 183, 195, 190, 184, 197, 192, 189, 193, 189, 186, 199, 195, 192, 217, 216, 212, 236, 235, 231, 235, 234, 230, 213, 212, 208, 191, 190, 186, 212, 211, 207, 198, 199, 194, 193, 194, 189, 209, 210, 205, 235, 236, 231, 248, 249, 244, 239, 240, 235, 224, 225, 219, 218, 215, 210, 216, 211, 205, 211, 206, 200, 210, 205, 199, 210, 207, 202, 212, 209, 204, 213, 210, 205, 214, 211, 206, 218, 217, 212, 218, 217, 212, 219, 218, 214, 220, 219, 215, 222, 221, 217, 223, 222, 218, 224, 223, 219, 223, 224, 219, 224, 226, 225, 225, 227, 226, 225, 227, 226, 225, 227, 226, 224, 226, 225, 225, 227, 226, 228, 230, 229, 232, 234, 233, 232, 234, 233, 233, 235, 234, 235, 237, 236, 236, 238, 237, 238, 240, 239, 238, 240, 239, 238, 240, 239, 238, 240, 239, 239, 238, 236, 238, 237, 235, 238, 237, 235, 237, 236, 234, 238, 237, 235, 239, 238, 236, 240, 239, 237, 241, 240, 238, 241, 240, 238, 240, 239, 237, 240, 239, 237, 240, 239, 237, 241, 240, 238, 244, 243, 241, 247, 246, 244, 249, 248, 246, 244, 244, 242, 243, 243, 241, 242, 242, 240, 241, 241, 239, 241, 241, 239, 242, 242, 240, 243, 243, 241, 244, 244, 242, 246, 246, 244, 246, 246, 244, 245, 245, 243, 244, 244, 242, 243, 243, 241, 242, 242, 240, 241, 241, 239, 240, 240, 238, 242, 241, 239, 242, 241, 239, 241, 240, 238, 241, 240, 238, 241, 240, 238, 240, 239, 237, 240, 239, 237, 240, 239, 237, 239, 238, 236, 239, 238, 236, 238, 237, 235, 238, 237, 235, 237, 236, 234, 237, 236, 234, 237, 236, 234, 237, 236, 234, 236, 236, 234, 235, 235, 233, 233, 233, 231, 232, 232, 230, 232, 231, 229, 232, 231, 229, 232, 231, 229, 233, 232, 230, 231, 230, 228, 231, 230, 228, 232, 228, 227, 231, 227, 226, 231, 227, 226, 230, 226, 225, 229, 225, 224, 229, 225, 224, 227, 226, 224, 227, 226, 224, 230, 226, 225, 231, 227, 226, 231, 227, 226, 230, 226, 225, 229, 225, 224, 228, 224, 223, 230, 224, 224, 228, 222, 222, 227, 221, 221, 227, 221, 221, 228, 222, 222, 227, 221, 221, 225, 216, 217, 222, 213, 214, 215, 206, 207, 216, 207, 208, 218, 206, 208, 220, 204, 207, 219, 198, 203, 217, 194, 200, 216, 194, 197, 215, 193, 196, 216, 194, 197, 215, 193, 196, 214, 194, 196, 215, 195, 197, 217, 195, 197, 218, 193, 196, 215, 189, 192, 211, 185, 188, 214, 187, 192, 222, 197, 201, 222, 197, 201, 212, 190, 193, 213, 191, 194, 222, 200, 203, 221, 201, 202, 212, 194, 194, 226, 208, 208, 221, 205, 205, 218, 203, 200, 215, 201, 198, 217, 203, 200, 216, 205, 201, 216, 205, 201, 215, 204, 200, 226, 212, 211, 221, 205, 205, 218, 204, 203, 221, 207, 206, 223, 209, 208, 221, 207, 206, 218, 207, 205, 220, 209, 207, 223, 213, 211, 222, 212, 210, 221, 211, 209, 220, 212, 209, 220, 212, 209, 221, 213, 210, 220, 215, 211, 222, 214, 211, 224, 214, 213, 226, 214, 214, 227, 215, 215, 228, 216, 216, 228, 218, 217, 227, 217, 216, 227, 217, 216, 226, 216, 215, 227, 217, 216, 227, 217, 216, 227, 219, 217, 228, 220, 218, 229, 221, 219, 229, 221, 219, 230, 222, 220, 230, 222, 220, 227, 222, 219, 227, 222, 219, 227, 222, 219, 228, 223, 220, 228, 223, 220, 228, 223, 220, 229, 224, 221, 229, 224, 221, 230, 225, 222, 230, 225, 222, 230, 225, 222, 231, 226, 223, 231, 226, 223, 232, 227, 224, 232, 227, 224, 232, 227, 224, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 227, 223, 220, 227, 223, 220, 227, 223, 220, 227, 223, 220, 227, 223, 220, 227, 223, 220, 227, 223, 220, 227, 223, 220, 227, 223, 220, 226, 222, 219, 225, 221, 218, 226, 222, 219, 229, 224, 220, 229, 224, 220, 229, 222, 216, 228, 219, 212, 227, 216, 210, 227, 217, 208, 228, 215, 207, 228, 215, 206, 230, 216, 207, 230, 216, 205, 230, 216, 205, 229, 217, 205, 232, 223, 214, 215, 208, 198, 213, 204, 195, 230, 221, 212, 243, 235, 224, 239, 231, 220, 231, 223, 212, 230, 222, 211, 236, 226, 216, 218, 208, 198, 217, 207, 195, 238, 228, 216, 254, 244, 232, 246, 236, 224, 233, 223, 211, 231, 219, 207, 231, 217, 204, 229, 216, 200, 229, 216, 200, 232, 218, 205, 236, 222, 209, 235, 223, 209, 230, 218, 206, 225, 213, 201, 238, 228, 218, 242, 232, 222, 243, 234, 225, 238, 229, 220, 229, 220, 211, 224, 217, 209, 227, 220, 212, 233, 224, 215, 231, 221, 211, 231, 221, 209, 231, 223, 212, 231, 223, 212, 231, 223, 212, 232, 224, 213, 231, 224, 214, 231, 224, 214, 233, 226, 218, 231, 227, 218, 231, 226, 220, 230, 227, 220, 231, 228, 221, 231, 228, 221, 232, 229, 224, 232, 229, 224, 231, 228, 221, 232, 229, 222, 233, 230, 225, 233, 230, 225, 233, 230, 225, 232, 229, 224, 229, 228, 223, 229, 228, 223, 229, 228, 224, 232, 231, 227, 236, 235, 231, 239, 238, 234, 240, 241, 236, 239, 240, 235, 238, 238, 236, 236, 236, 234, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 237, 236, 232, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 236, 237, 232, 236, 237, 232, 236, 237, 232, 237, 238, 233, 237, 238, 233, 237, 238, 233, 238, 239, 234, 238, 239, 234, 238, 239, 234, 238, 239, 234, 238, 239, 234, 238, 239, 234, 238, 239, 234, 238, 239, 234, 238, 239, 234, 238, 239, 234, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 242, 243, 238, 242, 243, 238, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 242, 244, 241, 242, 244, 241, 242, 244, 241, 242, 244, 241, 242, 244, 241, 242, 244, 241, 242, 244, 241, 242, 244, 241, 242, 243, 245, 242, 243, 245, 242, 243, 245, 241, 242, 244, 241, 242, 244, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 239, 240, 242, 239, 240, 242, 239, 240, 242, 238, 239, 241, 238, 239, 241, 238, 239, 241, 237, 238, 240, 237, 238, 240, 237, 238, 240, 237, 238, 240, 236, 237, 239, 236, 237, 239, 235, 236, 238, 235, 236, 238, 235, 236, 238, 234, 235, 237, 231, 232, 234, 229, 230, 232, 228, 229, 231, 227, 228, 230, 224, 225, 227, 219, 220, 222, 216, 217, 219, 214, 215, 217, 213, 214, 216, 213, 214, 216, 213, 214, 216, 211, 212, 214, 206, 207, 209, 199, 200, 202, 193, 194, 196, 188, 188, 188, 184, 184, 184, 180, 180, 180, 176, 176, 176, 173, 173, 173, 169, 169, 169, 165, 164, 162, 162, 161, 159, 165, 160, 157, 163, 158, 155, 160, 155, 152, 157, 152, 149, 154, 149, 146, 152, 147, 144, 153, 145, 143, 153, 145, 143, 154, 146, 144, 155, 147, 145, 156, 148, 146, 157, 149, 147, 159, 149, 148, 160, 150, 149, 161, 151, 150, 161, 151, 149, 160, 150, 148, 159, 150, 145, 157, 148, 143, 156, 147, 142, 155, 146, 141, 155, 146, 141, 157, 146, 142, 157, 146, 142, 160, 149, 145, 161, 150, 146, 164, 150, 147, 167, 153, 150, 169, 155, 152, 171, 157, 154, 173, 159, 156, 172, 161, 157, 173, 163, 161, 176, 166, 164, 179, 171, 169, 181, 173, 171, 181, 175, 177, 182, 178, 179, 184, 182, 185, 187, 185, 188, 186, 185, 190, 188, 189, 193, 190, 194, 197, 194, 198, 201, 196, 201, 204, 201, 206, 209, 205, 214, 213, 209, 217, 219, 218, 221, 226, 221, 224, 231, 226, 229, 234, 229, 232, 237, 230, 233, 238, 232, 235, 240, 234, 237, 242, 237, 240, 245, 239, 243, 246, 239, 243, 246, 240, 244, 247, 241, 245, 248, 241, 245, 248, 242, 246, 249, 243, 247, 248, 243, 247, 248, 246, 247, 249, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 252, 246, 247, 252, 246, 247, 252, 246, 247, 252, 245, 246, 251, 245, 246, 251, 245, 246, 251, 244, 245, 250, 242, 243, 248, 242, 243, 248, 243, 244, 249, 243, 244, 249, 242, 243, 248, 241, 242, 247, 239, 240, 245, 238, 239, 244, 237, 240, 247, 235, 238, 245, 233, 236, 243, 229, 232, 237, 228, 229, 234, 225, 226, 230, 222, 223, 227, 221, 222, 224, 217, 217, 217, 214, 214, 212, 212, 212, 210, 212, 211, 209, 212, 211, 207, 212, 211, 207, 211, 208, 203, 209, 206, 201, 203, 200, 195, 205, 200, 194, 206, 201, 197, 206, 201, 195, 205, 200, 196, 204, 199, 193, 202, 197, 193, 201, 196, 190, 198, 193, 189, 198, 193, 187, 196, 191, 187, 196, 191, 185, 196, 191, 187, 197, 192, 186, 198, 193, 189, 197, 194, 189, 196, 192, 189, 205, 204, 200, 226, 225, 221, 235, 234, 230, 215, 214, 210, 188, 187, 183, 189, 188, 184, 209, 208, 204, 199, 200, 195, 213, 214, 209, 231, 232, 227, 242, 243, 238, 240, 241, 236, 228, 229, 224, 214, 215, 210, 205, 206, 201, 208, 205, 200, 213, 208, 202, 217, 212, 208, 218, 213, 209, 216, 213, 208, 214, 211, 206, 215, 212, 207, 216, 213, 208, 217, 216, 211, 220, 219, 214, 223, 222, 218, 226, 225, 221, 228, 227, 223, 228, 227, 223, 227, 226, 222, 226, 225, 221, 222, 222, 220, 225, 225, 223, 229, 229, 227, 230, 230, 228, 230, 230, 228, 229, 229, 227, 230, 230, 228, 230, 232, 229, 232, 232, 230, 232, 234, 231, 235, 235, 235, 236, 238, 235, 237, 239, 238, 238, 240, 239, 238, 240, 239, 239, 239, 239, 238, 238, 236, 237, 237, 235, 238, 237, 235, 236, 236, 234, 238, 237, 235, 238, 238, 236, 240, 239, 237, 240, 240, 238, 240, 239, 237, 238, 238, 236, 239, 238, 236, 239, 239, 237, 242, 241, 239, 244, 244, 242, 249, 248, 246, 250, 250, 248, 244, 244, 242, 243, 243, 241, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 243, 243, 241, 244, 244, 242, 247, 247, 245, 246, 246, 244, 245, 245, 243, 244, 244, 242, 243, 243, 241, 242, 242, 240, 241, 241, 239, 240, 240, 238, 241, 240, 238, 240, 239, 237, 240, 239, 237, 239, 238, 236, 238, 237, 235, 237, 236, 234, 236, 235, 233, 236, 235, 233, 238, 237, 235, 238, 237, 235, 237, 236, 234, 237, 236, 234, 237, 236, 234, 236, 235, 233, 236, 235, 233, 236, 235, 233, 236, 235, 233, 234, 234, 232, 233, 232, 230, 232, 231, 229, 231, 230, 228, 231, 230, 228, 231, 230, 228, 232, 231, 229, 230, 229, 227, 230, 229, 227, 231, 227, 226, 230, 226, 225, 229, 225, 224, 229, 225, 224, 228, 224, 223, 228, 224, 223, 226, 225, 223, 227, 226, 224, 230, 226, 225, 230, 226, 225, 231, 227, 226, 230, 226, 225, 229, 225, 224, 228, 224, 223, 227, 221, 221, 225, 219, 219, 224, 218, 218, 224, 218, 218, 225, 219, 219, 224, 218, 218, 222, 213, 214, 219, 210, 211, 213, 203, 204, 215, 205, 206, 217, 205, 207, 219, 203, 206, 217, 198, 202, 216, 195, 200, 216, 194, 197, 216, 194, 197, 215, 195, 197, 215, 195, 197, 214, 195, 197, 215, 196, 198, 217, 197, 198, 216, 196, 197, 213, 191, 193, 209, 187, 189, 213, 191, 194, 221, 201, 203, 222, 202, 204, 213, 193, 195, 213, 193, 195, 222, 203, 205, 220, 204, 204, 211, 195, 195, 225, 211, 210, 222, 208, 207, 219, 205, 204, 216, 205, 201, 217, 206, 204, 216, 207, 202, 214, 204, 202, 212, 202, 200, 225, 211, 210, 219, 205, 204, 216, 202, 201, 218, 207, 205, 222, 208, 207, 218, 207, 205, 218, 207, 205, 220, 209, 207, 224, 214, 212, 224, 214, 212, 222, 214, 211, 221, 213, 210, 221, 213, 210, 221, 213, 210, 222, 214, 211, 223, 215, 212, 223, 213, 212, 225, 215, 214, 227, 217, 216, 229, 219, 218, 230, 220, 219, 228, 220, 218, 227, 217, 216, 224, 216, 214, 228, 218, 217, 227, 219, 217, 228, 220, 218, 229, 221, 219, 230, 222, 220, 230, 222, 220, 231, 223, 221, 231, 223, 221, 227, 222, 219, 227, 222, 219, 227, 222, 219, 228, 223, 220, 228, 223, 220, 229, 224, 221, 229, 224, 221, 229, 224, 221, 230, 225, 222, 230, 225, 222, 231, 226, 223, 231, 226, 223, 231, 226, 223, 232, 227, 224, 232, 227, 224, 231, 227, 224, 230, 226, 223, 230, 226, 225, 230, 226, 225, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 231, 226, 223, 228, 223, 220, 228, 223, 219, 228, 223, 220, 228, 223, 219, 228, 223, 220, 227, 224, 219, 228, 223, 220, 227, 223, 220, 229, 225, 222, 225, 221, 218, 222, 218, 215, 224, 219, 215, 229, 224, 220, 232, 225, 219, 231, 222, 215, 227, 218, 209, 227, 217, 208, 226, 216, 206, 227, 214, 205, 227, 215, 203, 229, 215, 204, 230, 216, 205, 231, 217, 206, 233, 219, 208, 223, 213, 203, 228, 220, 209, 226, 216, 207, 219, 209, 199, 225, 215, 205, 239, 229, 217, 243, 233, 223, 235, 225, 215, 230, 220, 210, 234, 224, 214, 225, 215, 205, 215, 205, 195, 232, 222, 212, 255, 247, 237, 250, 240, 230, 223, 213, 201, 230, 216, 203, 230, 216, 203, 229, 215, 202, 228, 214, 201, 228, 214, 201, 228, 216, 204, 230, 218, 206, 232, 220, 208, 224, 214, 204, 240, 230, 220, 252, 243, 234, 248, 239, 230, 231, 224, 214, 221, 214, 204, 227, 220, 212, 238, 229, 220, 230, 222, 211, 230, 222, 211, 231, 223, 212, 231, 223, 212, 231, 222, 213, 231, 224, 214, 231, 224, 214, 231, 224, 214, 231, 227, 218, 231, 227, 218, 230, 227, 220, 231, 228, 221, 231, 228, 221, 231, 228, 221, 232, 229, 224, 232, 229, 224, 231, 228, 221, 230, 227, 220, 230, 227, 222, 230, 227, 222, 231, 228, 223, 233, 230, 225, 233, 232, 227, 235, 234, 229, 231, 230, 226, 230, 229, 225, 230, 229, 225, 231, 230, 226, 234, 233, 229, 238, 239, 234, 244, 243, 239, 248, 247, 243, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 237, 236, 232, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 236, 237, 232, 236, 237, 232, 236, 237, 232, 237, 238, 233, 237, 238, 233, 237, 238, 233, 238, 239, 234, 238, 239, 234, 237, 238, 233, 237, 238, 233, 237, 238, 233, 237, 238, 233, 237, 238, 233, 237, 238, 233, 237, 238, 233, 237, 238, 233, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 242, 243, 238, 242, 243, 238, 242, 243, 238, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 242, 244, 241, 242, 244, 241, 242, 244, 241, 242, 244, 241, 242, 244, 241, 242, 244, 241, 242, 244, 241, 242, 244, 241, 242, 244, 243, 242, 243, 245, 242, 243, 245, 241, 242, 244, 241, 242, 244, 241, 242, 244, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 239, 240, 242, 239, 240, 242, 238, 239, 241, 238, 239, 241, 238, 239, 241, 238, 239, 241, 237, 238, 240, 237, 238, 240, 237, 238, 240, 237, 238, 240, 236, 237, 239, 236, 237, 239, 236, 237, 239, 235, 236, 238, 235, 236, 238, 232, 233, 235, 230, 231, 233, 228, 229, 231, 226, 227, 229, 223, 224, 226, 218, 219, 221, 215, 216, 218, 214, 215, 217, 215, 216, 218, 216, 217, 219, 217, 218, 220, 215, 216, 218, 209, 210, 212, 200, 201, 203, 193, 194, 196, 189, 189, 189, 186, 186, 186, 181, 181, 181, 178, 178, 178, 176, 176, 176, 172, 172, 172, 169, 168, 166, 165, 164, 162, 167, 163, 160, 166, 161, 158, 163, 158, 155, 159, 154, 151, 155, 150, 147, 153, 148, 145, 153, 145, 143, 152, 144, 142, 153, 145, 143, 153, 145, 143, 154, 146, 144, 155, 147, 145, 158, 148, 147, 159, 149, 147, 160, 150, 149, 160, 150, 148, 159, 149, 147, 158, 149, 144, 157, 147, 145, 156, 147, 142, 156, 146, 144, 156, 147, 142, 157, 147, 145, 158, 149, 144, 159, 148, 146, 160, 149, 145, 162, 151, 149, 164, 153, 149, 167, 156, 154, 169, 158, 154, 171, 160, 158, 172, 161, 159, 171, 161, 159, 174, 164, 163, 177, 169, 167, 179, 171, 169, 179, 173, 173, 181, 175, 175, 184, 180, 181, 185, 183, 184, 185, 183, 186, 187, 187, 189, 190, 191, 193, 193, 194, 196, 193, 197, 198, 198, 202, 203, 203, 209, 209, 207, 212, 215, 217, 220, 225, 220, 223, 230, 225, 228, 235, 228, 231, 236, 230, 233, 238, 231, 234, 239, 234, 237, 242, 236, 239, 244, 239, 242, 247, 239, 243, 246, 240, 244, 247, 240, 244, 247, 241, 245, 248, 242, 246, 249, 243, 247, 250, 243, 247, 248, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 247, 250, 242, 247, 250, 242, 247, 250, 242, 247, 250, 242, 247, 250, 242, 247, 250, 242, 247, 250, 242, 247, 250, 242, 247, 250, 242, 247, 250, 242, 247, 250, 242, 247, 250, 242, 247, 250, 242, 247, 250, 242, 247, 250, 242, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 244, 245, 249, 244, 245, 249, 244, 245, 249, 245, 246, 250, 244, 245, 249, 244, 245, 249, 244, 245, 249, 243, 244, 248, 243, 244, 248, 243, 244, 248, 242, 243, 247, 239, 242, 247, 238, 241, 246, 236, 239, 244, 234, 237, 242, 231, 234, 239, 229, 233, 236, 229, 230, 234, 228, 229, 233, 224, 225, 227, 222, 223, 225, 219, 220, 222, 217, 217, 217, 214, 214, 214, 212, 212, 212, 212, 210, 211, 211, 210, 208, 216, 212, 209, 214, 211, 206, 211, 207, 204, 208, 205, 200, 206, 202, 199, 205, 202, 197, 204, 200, 197, 204, 201, 196, 194, 190, 187, 200, 197, 192, 206, 202, 199, 206, 203, 198, 201, 197, 194, 198, 195, 190, 200, 196, 193, 204, 200, 197, 235, 234, 230, 227, 227, 225, 216, 216, 214, 205, 205, 203, 199, 199, 197, 197, 197, 195, 199, 198, 196, 200, 199, 197, 228, 227, 225, 239, 238, 236, 246, 245, 243, 236, 235, 233, 217, 216, 214, 204, 203, 201, 206, 205, 203, 213, 212, 208, 214, 210, 207, 214, 211, 206, 216, 212, 209, 217, 213, 210, 219, 215, 212, 220, 216, 213, 222, 218, 215, 222, 218, 215, 224, 220, 217, 224, 220, 217, 224, 220, 217, 225, 221, 218, 225, 221, 218, 226, 222, 219, 226, 222, 219, 226, 222, 219, 228, 227, 222, 224, 223, 218, 222, 221, 217, 225, 224, 220, 230, 229, 225, 231, 230, 226, 227, 226, 222, 221, 222, 217, 238, 237, 233, 238, 239, 234, 241, 240, 238, 241, 242, 237, 240, 240, 238, 238, 238, 236, 235, 235, 233, 233, 233, 231, 232, 232, 232, 230, 232, 231, 232, 232, 232, 237, 239, 238, 243, 243, 243, 243, 245, 244, 240, 240, 240, 233, 235, 234, 237, 237, 237, 238, 240, 239, 241, 241, 241, 243, 245, 244, 245, 245, 245, 243, 245, 244, 243, 243, 243, 242, 242, 242, 240, 240, 240, 241, 241, 241, 242, 242, 242, 244, 244, 244, 246, 246, 246, 248, 248, 248, 249, 249, 249, 250, 250, 250, 243, 243, 243, 243, 243, 243, 242, 242, 242, 242, 242, 242, 242, 242, 242, 241, 241, 241, 241, 241, 241, 241, 241, 241, 240, 239, 237, 239, 238, 236, 237, 236, 234, 236, 235, 233, 236, 235, 233, 236, 235, 233, 237, 236, 234, 237, 236, 234, 235, 234, 232, 235, 234, 232, 235, 234, 232, 234, 233, 231, 234, 233, 231, 234, 233, 231, 233, 232, 230, 233, 232, 230, 230, 229, 227, 230, 229, 227, 233, 229, 228, 233, 229, 228, 233, 229, 228, 234, 230, 229, 234, 230, 229, 234, 230, 229, 226, 222, 221, 227, 223, 222, 228, 224, 223, 229, 225, 224, 230, 226, 225, 230, 226, 225, 229, 225, 224, 228, 224, 223, 227, 223, 220, 227, 223, 220, 228, 224, 221, 229, 225, 222, 229, 225, 222, 228, 224, 221, 227, 223, 220, 227, 223, 220, 226, 221, 218, 225, 220, 217, 225, 220, 217, 224, 219, 216, 222, 217, 214, 219, 214, 211, 219, 211, 209, 218, 208, 207, 217, 205, 205, 217, 205, 205, 218, 204, 204, 217, 203, 203, 217, 201, 202, 217, 201, 202, 216, 200, 201, 216, 200, 201, 220, 204, 205, 218, 202, 203, 216, 200, 201, 213, 197, 198, 213, 197, 198, 213, 197, 198, 214, 198, 199, 215, 199, 200, 215, 199, 200, 215, 201, 201, 219, 205, 205, 211, 197, 197, 203, 189, 189, 215, 203, 203, 223, 211, 211, 207, 195, 195, 216, 204, 204, 222, 212, 211, 221, 211, 210, 214, 204, 202, 218, 208, 207, 226, 218, 215, 220, 212, 210, 206, 196, 195, 213, 203, 202, 216, 204, 204, 219, 207, 207, 221, 211, 210, 223, 211, 211, 222, 212, 211, 221, 211, 210, 220, 210, 209, 221, 211, 210, 221, 211, 210, 221, 211, 210, 222, 212, 211, 222, 212, 211, 223, 213, 212, 223, 213, 212, 222, 214, 212, 225, 217, 215, 225, 217, 215, 226, 218, 216, 226, 218, 216, 226, 218, 216, 225, 220, 217, 227, 219, 217, 225, 220, 217, 229, 221, 219, 227, 222, 219, 227, 222, 219, 228, 223, 220, 228, 223, 220, 228, 223, 220, 229, 224, 221, 229, 224, 221, 231, 223, 221, 231, 223, 221, 231, 223, 221, 231, 223, 221, 229, 224, 221, 229, 224, 221, 229, 224, 221, 229, 224, 221, 231, 228, 223, 231, 228, 223, 231, 228, 223, 230, 227, 222, 230, 227, 222, 230, 227, 222, 229, 226, 221, 227, 226, 221, 229, 228, 226, 229, 227, 228, 228, 226, 227, 228, 227, 225, 229, 225, 222, 228, 224, 221, 228, 223, 219, 230, 222, 219, 229, 221, 218, 229, 222, 216, 229, 221, 218, 229, 222, 216, 228, 220, 217, 226, 221, 215, 227, 219, 216, 225, 220, 216, 222, 217, 213, 225, 220, 216, 227, 222, 218, 228, 221, 215, 225, 218, 212, 226, 217, 210, 230, 221, 214, 236, 226, 217, 228, 215, 207, 225, 212, 203, 224, 210, 201, 226, 212, 201, 233, 216, 206, 234, 218, 205, 232, 216, 203, 228, 212, 199, 229, 215, 204, 226, 214, 202, 225, 211, 202, 224, 210, 199, 225, 211, 200, 233, 219, 206, 243, 229, 218, 251, 237, 226, 232, 218, 207, 229, 216, 207, 227, 214, 205, 224, 214, 205, 225, 215, 206, 229, 220, 211, 240, 231, 224, 250, 241, 232, 227, 214, 205, 232, 220, 208, 230, 218, 206, 222, 210, 198, 226, 214, 202, 237, 224, 215, 236, 223, 214, 223, 213, 203, 232, 222, 212, 229, 219, 209, 230, 222, 211, 238, 230, 219, 247, 239, 228, 245, 237, 226, 233, 224, 215, 221, 212, 203, 236, 227, 218, 233, 226, 216, 231, 224, 214, 229, 222, 212, 229, 222, 214, 230, 223, 215, 233, 226, 218, 232, 228, 219, 231, 226, 220, 231, 226, 220, 231, 226, 220, 232, 227, 221, 231, 228, 223, 232, 229, 224, 232, 229, 224, 232, 229, 224, 232, 229, 224, 232, 229, 224, 232, 229, 224, 233, 230, 225, 233, 230, 225, 233, 230, 225, 234, 231, 226, 234, 231, 226, 233, 230, 225, 234, 231, 226, 235, 232, 227, 236, 233, 228, 237, 234, 229, 236, 235, 230, 239, 236, 231, 238, 237, 233, 239, 238, 234, 238, 237, 233, 236, 235, 231, 235, 234, 230, 236, 235, 231, 238, 237, 233, 241, 240, 236, 243, 242, 238, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 240, 240, 238, 240, 240, 238, 240, 240, 238, 241, 241, 239, 241, 241, 239, 241, 241, 239, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 246, 245, 244, 246, 245, 243, 245, 244, 243, 245, 244, 243, 245, 244, 242, 244, 243, 242, 244, 243, 242, 244, 243, 241, 243, 242, 241, 243, 242, 241, 243, 242, 240, 242, 241, 240, 242, 241, 240, 242, 241, 239, 241, 240, 239, 241, 240, 240, 241, 243, 239, 240, 242, 239, 240, 242, 238, 239, 241, 237, 238, 240, 236, 237, 239, 236, 237, 239, 235, 236, 238, 233, 234, 236, 233, 234, 236, 232, 233, 235, 231, 232, 234, 229, 230, 232, 226, 227, 229, 224, 225, 227, 222, 223, 225, 212, 216, 219, 211, 215, 218, 209, 213, 216, 207, 211, 214, 206, 210, 213, 205, 209, 212, 207, 208, 210, 208, 209, 211, 205, 206, 208, 199, 200, 202, 190, 191, 193, 181, 182, 184, 176, 176, 176, 175, 175, 175, 177, 177, 177, 179, 178, 176, 169, 165, 162, 167, 163, 160, 163, 159, 156, 159, 155, 152, 157, 152, 149, 154, 149, 146, 152, 147, 143, 151, 146, 142, 146, 141, 137, 148, 143, 139, 153, 145, 142, 156, 148, 145, 158, 150, 147, 159, 152, 146, 159, 151, 148, 159, 151, 148, 156, 148, 145, 156, 148, 145, 157, 149, 147, 157, 149, 146, 157, 149, 147, 158, 150, 147, 158, 150, 148, 158, 150, 147, 158, 148, 147, 160, 150, 148, 163, 153, 152, 166, 156, 154, 169, 159, 158, 170, 160, 158, 171, 161, 160, 171, 161, 160, 170, 160, 159, 171, 161, 160, 172, 164, 162, 174, 166, 164, 178, 170, 168, 180, 175, 172, 184, 179, 176, 185, 181, 178, 187, 183, 182, 187, 186, 184, 189, 187, 188, 191, 189, 190, 193, 193, 193, 198, 198, 200, 205, 205, 207, 209, 210, 214, 212, 215, 222, 215, 220, 226, 221, 226, 232, 225, 230, 236, 227, 232, 238, 230, 235, 241, 234, 239, 245, 237, 242, 246, 236, 239, 244, 237, 240, 245, 239, 242, 247, 240, 243, 248, 243, 244, 249, 243, 244, 248, 243, 244, 248, 242, 243, 247, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 247, 250, 242, 247, 250, 242, 247, 250, 242, 247, 250, 242, 247, 250, 242, 247, 250, 242, 247, 250, 242, 247, 250, 242, 247, 250, 242, 247, 250, 242, 247, 250, 242, 247, 250, 242, 247, 250, 242, 247, 250, 242, 247, 250, 242, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 244, 245, 249, 244, 245, 249, 244, 245, 249, 245, 246, 250, 245, 246, 250, 244, 245, 249, 244, 245, 249, 243, 244, 248, 243, 244, 248, 243, 244, 248, 243, 244, 248, 241, 244, 249, 240, 243, 248, 238, 241, 246, 236, 239, 244, 233, 237, 240, 231, 235, 238, 231, 232, 236, 231, 232, 236, 226, 227, 231, 224, 225, 229, 221, 222, 224, 218, 219, 221, 216, 216, 218, 214, 214, 216, 213, 213, 215, 212, 212, 212, 214, 210, 209, 213, 209, 206, 212, 208, 205, 211, 207, 204, 210, 206, 203, 209, 205, 202, 208, 204, 201, 208, 204, 201, 201, 197, 194, 211, 207, 204, 216, 212, 209, 210, 206, 203, 199, 195, 192, 199, 195, 192, 214, 210, 207, 228, 227, 223, 225, 224, 222, 219, 219, 217, 210, 210, 208, 200, 200, 198, 195, 195, 193, 201, 201, 199, 216, 215, 213, 228, 227, 225, 237, 236, 234, 234, 233, 231, 227, 226, 224, 217, 216, 214, 210, 206, 205, 208, 204, 203, 214, 210, 209, 220, 216, 215, 215, 211, 208, 216, 212, 209, 217, 213, 210, 218, 214, 211, 220, 216, 213, 221, 217, 214, 222, 218, 215, 223, 219, 216, 224, 220, 217, 224, 220, 217, 225, 221, 218, 225, 221, 218, 225, 221, 218, 226, 222, 219, 226, 222, 219, 226, 223, 218, 226, 223, 218, 227, 224, 217, 229, 226, 221, 229, 226, 221, 229, 226, 221, 229, 226, 221, 229, 228, 223, 230, 229, 224, 240, 239, 235, 239, 238, 234, 238, 237, 233, 237, 236, 232, 235, 236, 231, 235, 236, 231, 235, 235, 233, 235, 235, 233, 230, 232, 231, 231, 233, 232, 234, 236, 235, 238, 240, 239, 241, 243, 242, 241, 243, 242, 239, 241, 240, 236, 238, 237, 238, 240, 239, 239, 241, 240, 241, 243, 242, 243, 245, 244, 243, 245, 244, 243, 245, 244, 241, 243, 242, 240, 242, 241, 242, 242, 242, 242, 242, 242, 243, 243, 243, 244, 244, 244, 245, 245, 245, 246, 246, 246, 247, 247, 247, 247, 247, 247, 242, 242, 242, 242, 242, 242, 242, 242, 242, 241, 241, 241, 241, 241, 241, 241, 241, 241, 240, 240, 240, 240, 240, 240, 239, 238, 236, 238, 237, 235, 237, 236, 234, 236, 235, 233, 236, 235, 233, 236, 235, 233, 237, 236, 234, 237, 236, 234, 235, 234, 232, 235, 234, 232, 234, 233, 231, 234, 233, 231, 234, 233, 231, 233, 232, 230, 233, 232, 230, 233, 232, 230, 232, 228, 227, 232, 228, 227, 232, 228, 227, 232, 228, 227, 232, 228, 227, 233, 229, 228, 233, 229, 228, 233, 229, 228, 227, 223, 222, 228, 224, 223, 229, 225, 224, 230, 226, 225, 230, 226, 225, 230, 226, 225, 229, 225, 224, 229, 225, 224, 227, 223, 220, 227, 223, 220, 228, 224, 221, 229, 225, 222, 228, 224, 221, 228, 224, 221, 227, 223, 220, 226, 222, 219, 224, 219, 216, 224, 219, 216, 224, 219, 216, 223, 218, 215, 221, 216, 213, 218, 213, 210, 218, 210, 208, 217, 207, 206, 217, 205, 205, 219, 205, 205, 218, 204, 204, 218, 204, 204, 217, 203, 203, 216, 202, 202, 216, 202, 202, 215, 201, 201, 221, 207, 207, 219, 205, 205, 217, 203, 203, 215, 201, 201, 214, 200, 200, 215, 201, 201, 216, 202, 202, 217, 203, 203, 216, 204, 204, 216, 204, 204, 219, 207, 207, 212, 200, 200, 204, 194, 193, 217, 207, 206, 224, 214, 213, 210, 200, 199, 215, 205, 204, 223, 213, 212, 221, 213, 211, 214, 206, 204, 216, 208, 206, 224, 216, 214, 222, 214, 212, 211, 203, 201, 215, 205, 204, 216, 206, 205, 219, 209, 208, 221, 211, 210, 222, 212, 211, 222, 212, 211, 221, 211, 210, 220, 210, 209, 222, 212, 211, 222, 212, 211, 223, 213, 212, 223, 213, 212, 223, 213, 212, 224, 214, 213, 224, 214, 213, 223, 215, 213, 226, 218, 216, 224, 219, 216, 224, 219, 216, 224, 219, 216, 225, 220, 217, 225, 220, 217, 226, 221, 218, 226, 221, 218, 227, 222, 219, 227, 222, 219, 227, 222, 219, 228, 223, 220, 228, 223, 220, 229, 224, 221, 229, 224, 221, 229, 224, 221, 231, 223, 221, 231, 223, 221, 231, 223, 221, 231, 223, 221, 229, 224, 221, 229, 224, 221, 229, 224, 221, 229, 224, 221, 231, 228, 223, 231, 228, 223, 231, 228, 223, 230, 227, 222, 230, 227, 222, 229, 226, 221, 227, 227, 219, 227, 226, 221, 228, 228, 228, 227, 227, 227, 228, 226, 227, 227, 226, 224, 228, 224, 221, 228, 223, 219, 230, 222, 219, 230, 223, 217, 230, 221, 216, 230, 221, 216, 229, 220, 215, 229, 220, 215, 228, 221, 215, 227, 220, 214, 227, 220, 214, 227, 220, 214, 224, 216, 213, 224, 219, 213, 228, 221, 215, 227, 220, 214, 226, 217, 210, 226, 217, 210, 230, 220, 211, 234, 224, 215, 230, 217, 208, 227, 215, 203, 225, 211, 200, 225, 211, 200, 231, 215, 202, 232, 216, 203, 232, 214, 200, 229, 213, 198, 231, 217, 204, 230, 216, 205, 230, 213, 203, 227, 210, 200, 227, 211, 198, 231, 215, 202, 238, 222, 209, 244, 228, 215, 246, 232, 221, 227, 213, 202, 221, 208, 199, 231, 221, 212, 233, 222, 216, 222, 213, 206, 227, 220, 214, 246, 237, 230, 246, 236, 227, 232, 219, 210, 225, 212, 203, 232, 219, 210, 234, 221, 212, 228, 215, 206, 225, 215, 205, 231, 221, 211, 232, 222, 212, 230, 220, 210, 229, 221, 210, 234, 226, 215, 242, 234, 223, 244, 236, 225, 240, 232, 221, 235, 227, 216, 230, 223, 215, 229, 222, 214, 228, 221, 213, 229, 222, 214, 231, 224, 216, 232, 225, 217, 230, 226, 217, 229, 225, 216, 231, 226, 220, 231, 226, 220, 231, 226, 220, 232, 227, 221, 231, 228, 223, 232, 229, 224, 232, 229, 224, 232, 229, 224, 232, 229, 224, 232, 229, 224, 232, 229, 224, 233, 230, 225, 233, 230, 225, 233, 230, 225, 234, 231, 226, 234, 231, 226, 233, 230, 225, 234, 231, 226, 235, 232, 227, 236, 233, 228, 237, 234, 229, 238, 235, 230, 239, 236, 231, 239, 236, 231, 241, 240, 236, 240, 239, 235, 238, 237, 233, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 238, 237, 233, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 240, 240, 238, 240, 240, 238, 240, 240, 238, 241, 241, 239, 241, 241, 239, 241, 241, 239, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 245, 244, 243, 245, 244, 243, 245, 244, 242, 244, 243, 242, 244, 243, 242, 244, 243, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 240, 242, 241, 240, 242, 241, 240, 242, 241, 239, 241, 240, 239, 241, 240, 239, 241, 240, 239, 240, 242, 239, 240, 242, 238, 239, 241, 237, 238, 240, 236, 237, 239, 236, 237, 239, 235, 236, 238, 235, 236, 238, 233, 234, 236, 232, 233, 235, 232, 233, 235, 231, 232, 234, 229, 230, 232, 226, 227, 229, 224, 225, 227, 222, 223, 225, 216, 220, 223, 214, 218, 221, 211, 215, 218, 208, 212, 215, 205, 209, 212, 203, 207, 210, 204, 205, 207, 203, 204, 206, 204, 205, 207, 204, 205, 207, 203, 204, 206, 200, 201, 203, 194, 194, 194, 186, 186, 186, 177, 177, 177, 173, 172, 170, 169, 165, 162, 167, 163, 160, 163, 159, 156, 158, 154, 151, 155, 150, 147, 152, 147, 144, 150, 145, 141, 149, 144, 140, 147, 142, 138, 147, 142, 138, 151, 143, 140, 152, 144, 141, 153, 146, 140, 155, 148, 142, 156, 149, 143, 157, 150, 144, 150, 142, 140, 150, 142, 140, 151, 143, 141, 153, 145, 143, 155, 147, 145, 156, 148, 146, 157, 149, 147, 158, 150, 148, 158, 150, 148, 159, 151, 149, 159, 151, 149, 160, 152, 150, 161, 153, 151, 162, 154, 152, 163, 155, 153, 164, 156, 154, 168, 158, 159, 169, 159, 160, 170, 162, 160, 173, 165, 163, 176, 168, 165, 180, 172, 169, 182, 177, 173, 184, 179, 175, 186, 182, 179, 188, 184, 181, 191, 187, 186, 193, 189, 188, 193, 191, 192, 198, 196, 197, 204, 202, 205, 208, 207, 212, 209, 212, 219, 212, 216, 225, 218, 223, 229, 222, 227, 233, 224, 229, 235, 227, 232, 238, 231, 236, 242, 234, 239, 245, 236, 239, 244, 237, 240, 245, 239, 242, 247, 240, 243, 248, 243, 244, 249, 243, 244, 249, 243, 244, 248, 243, 244, 248, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 247, 250, 242, 247, 250, 242, 247, 250, 242, 247, 250, 242, 247, 250, 242, 247, 250, 242, 247, 250, 242, 247, 250, 242, 247, 250, 242, 247, 250, 242, 247, 250, 242, 247, 250, 242, 247, 250, 242, 247, 250, 242, 247, 250, 242, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 244, 245, 249, 244, 245, 249, 245, 246, 250, 245, 246, 250, 244, 245, 249, 244, 245, 249, 244, 245, 249, 243, 244, 248, 243, 244, 248, 243, 244, 248, 242, 245, 250, 241, 244, 249, 240, 243, 248, 238, 241, 246, 236, 240, 243, 234, 238, 241, 234, 235, 239, 233, 234, 238, 229, 230, 234, 227, 228, 232, 224, 225, 227, 221, 222, 224, 219, 219, 221, 217, 217, 219, 216, 216, 218, 215, 215, 215, 213, 209, 208, 214, 210, 207, 214, 210, 207, 215, 211, 208, 214, 210, 207, 213, 209, 206, 212, 208, 205, 211, 207, 204, 215, 211, 208, 208, 204, 201, 202, 198, 195, 206, 202, 199, 218, 214, 211, 228, 224, 221, 230, 226, 223, 225, 224, 220, 213, 212, 208, 207, 208, 203, 202, 203, 198, 200, 201, 196, 207, 208, 203, 219, 220, 215, 233, 232, 228, 241, 240, 236, 235, 234, 230, 223, 222, 218, 212, 208, 205, 206, 202, 199, 209, 205, 202, 214, 210, 207, 217, 213, 210, 217, 213, 210, 218, 214, 211, 218, 214, 211, 219, 215, 212, 220, 216, 213, 222, 218, 215, 223, 219, 216, 224, 220, 217, 224, 220, 217, 224, 220, 217, 225, 221, 218, 225, 221, 218, 225, 221, 218, 226, 222, 219, 226, 222, 219, 226, 222, 219, 226, 223, 218, 224, 221, 216, 229, 226, 219, 233, 230, 225, 232, 229, 224, 227, 224, 219, 228, 225, 220, 232, 231, 226, 239, 238, 233, 239, 238, 234, 237, 236, 232, 233, 232, 228, 231, 230, 226, 229, 230, 225, 231, 232, 227, 234, 234, 232, 236, 236, 234, 228, 230, 229, 232, 234, 233, 237, 239, 238, 239, 241, 240, 239, 241, 240, 238, 240, 239, 239, 241, 240, 239, 241, 240, 241, 243, 242, 242, 244, 243, 243, 245, 244, 243, 245, 244, 243, 245, 244, 242, 244, 243, 240, 242, 241, 239, 241, 240, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 240, 240, 240, 240, 240, 240, 240, 240, 240, 239, 239, 239, 239, 238, 236, 238, 237, 235, 237, 236, 234, 236, 235, 233, 235, 234, 232, 235, 234, 232, 236, 235, 233, 237, 236, 234, 234, 233, 231, 234, 233, 231, 234, 233, 231, 234, 233, 231, 233, 232, 230, 233, 232, 230, 232, 231, 229, 232, 231, 229, 231, 227, 226, 231, 227, 226, 231, 227, 226, 231, 227, 226, 231, 227, 226, 231, 227, 226, 231, 227, 226, 231, 227, 226, 228, 224, 223, 229, 225, 224, 230, 226, 225, 231, 227, 226, 231, 227, 226, 230, 226, 225, 229, 225, 224, 229, 225, 224, 226, 222, 219, 227, 223, 220, 227, 223, 220, 228, 224, 221, 229, 224, 221, 228, 223, 220, 226, 221, 218, 226, 221, 218, 222, 217, 214, 222, 217, 214, 224, 216, 214, 223, 215, 213, 221, 213, 211, 219, 211, 209, 217, 209, 207, 216, 206, 205, 217, 205, 205, 219, 205, 205, 219, 205, 205, 218, 204, 204, 218, 204, 204, 217, 203, 203, 217, 203, 203, 217, 203, 203, 223, 209, 209, 221, 207, 207, 219, 205, 205, 217, 203, 203, 217, 203, 203, 218, 204, 204, 219, 205, 205, 220, 206, 206, 220, 208, 208, 220, 208, 208, 222, 210, 210, 216, 204, 204, 210, 200, 199, 220, 210, 209, 225, 215, 214, 215, 205, 204, 215, 207, 205, 223, 215, 213, 224, 216, 214, 216, 208, 206, 215, 207, 205, 223, 215, 213, 226, 218, 216, 221, 213, 211, 217, 207, 206, 218, 208, 207, 220, 210, 209, 222, 212, 211, 223, 213, 212, 223, 213, 212, 222, 212, 211, 222, 212, 211, 224, 214, 213, 224, 214, 213, 224, 214, 213, 225, 215, 214, 225, 215, 214, 226, 216, 215, 226, 216, 215, 225, 217, 215, 226, 218, 216, 224, 219, 216, 225, 220, 217, 225, 220, 217, 225, 220, 217, 226, 221, 218, 226, 221, 218, 226, 221, 218, 227, 222, 219, 227, 222, 219, 228, 223, 220, 228, 223, 220, 228, 223, 220, 229, 224, 221, 229, 224, 221, 229, 224, 221, 230, 224, 224, 230, 224, 224, 230, 224, 224, 230, 224, 224, 230, 225, 222, 230, 225, 222, 229, 225, 222, 229, 225, 222, 231, 227, 224, 231, 227, 224, 230, 227, 222, 230, 227, 222, 228, 227, 222, 227, 226, 221, 227, 226, 221, 227, 226, 222, 227, 227, 225, 227, 227, 227, 227, 225, 226, 226, 225, 223, 227, 223, 220, 228, 223, 219, 229, 221, 218, 229, 222, 216, 229, 220, 215, 229, 220, 213, 229, 220, 213, 228, 219, 212, 228, 219, 212, 227, 218, 211, 227, 218, 213, 226, 219, 213, 224, 217, 211, 226, 219, 213, 226, 219, 213, 225, 218, 210, 225, 216, 209, 225, 216, 209, 229, 219, 210, 232, 222, 213, 233, 220, 211, 229, 217, 205, 226, 212, 201, 224, 210, 197, 228, 212, 199, 229, 213, 200, 229, 213, 198, 229, 213, 198, 231, 217, 204, 231, 217, 204, 232, 216, 203, 230, 214, 201, 227, 211, 198, 228, 212, 199, 231, 215, 202, 234, 218, 205, 249, 235, 224, 235, 221, 210, 227, 214, 205, 231, 221, 212, 231, 220, 214, 223, 214, 207, 223, 216, 210, 233, 224, 217, 255, 245, 236, 241, 228, 219, 232, 219, 210, 235, 222, 213, 232, 222, 212, 223, 213, 203, 223, 213, 203, 231, 221, 211, 231, 221, 211, 230, 220, 210, 229, 221, 210, 230, 222, 211, 235, 227, 216, 241, 233, 222, 246, 238, 227, 249, 241, 230, 230, 223, 215, 228, 221, 213, 226, 219, 211, 229, 222, 214, 233, 226, 218, 235, 228, 220, 229, 225, 216, 225, 221, 212, 231, 226, 220, 231, 226, 220, 231, 226, 220, 232, 227, 221, 231, 228, 223, 232, 229, 224, 232, 229, 224, 232, 229, 224, 232, 229, 224, 232, 229, 224, 232, 229, 224, 233, 230, 225, 233, 230, 225, 233, 230, 225, 234, 231, 226, 234, 231, 226, 234, 231, 226, 234, 231, 226, 235, 232, 227, 236, 233, 228, 236, 233, 228, 237, 234, 229, 238, 235, 230, 238, 235, 230, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 238, 237, 233, 236, 235, 231, 234, 233, 229, 233, 232, 228, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 240, 240, 238, 240, 240, 238, 241, 241, 239, 241, 241, 239, 241, 241, 239, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 245, 244, 242, 244, 243, 242, 244, 243, 242, 244, 243, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 240, 242, 241, 240, 242, 241, 240, 242, 241, 239, 241, 240, 239, 241, 240, 238, 240, 239, 238, 240, 239, 238, 240, 239, 238, 239, 241, 238, 239, 241, 237, 238, 240, 236, 237, 239, 235, 236, 238, 235, 236, 238, 234, 235, 237, 234, 235, 237, 232, 233, 235, 232, 233, 235, 232, 233, 235, 230, 231, 233, 228, 229, 231, 226, 227, 229, 223, 224, 226, 222, 223, 225, 218, 222, 225, 216, 220, 223, 214, 215, 217, 210, 211, 213, 206, 207, 209, 202, 203, 205, 200, 201, 203, 200, 201, 203, 194, 194, 194, 198, 198, 198, 202, 202, 202, 205, 205, 205, 203, 203, 203, 196, 196, 196, 190, 189, 187, 185, 184, 182, 167, 163, 160, 165, 161, 158, 162, 158, 155, 158, 154, 151, 155, 150, 147, 153, 148, 145, 151, 146, 142, 150, 145, 141, 156, 151, 147, 155, 150, 146, 156, 148, 145, 155, 147, 144, 155, 148, 142, 157, 150, 144, 159, 152, 146, 161, 154, 148, 164, 156, 154, 164, 156, 154, 164, 156, 154, 164, 156, 154, 164, 156, 154, 164, 156, 154, 164, 156, 154, 164, 156, 154, 166, 158, 156, 164, 156, 154, 162, 154, 152, 159, 151, 149, 158, 150, 148, 158, 150, 148, 160, 152, 150, 160, 152, 150, 165, 155, 154, 166, 156, 155, 168, 158, 157, 171, 161, 160, 173, 165, 162, 177, 169, 166, 179, 174, 170, 181, 176, 172, 184, 181, 176, 187, 184, 179, 190, 186, 183, 192, 188, 187, 192, 190, 191, 196, 194, 195, 202, 200, 203, 205, 204, 209, 204, 207, 212, 208, 213, 219, 213, 218, 224, 218, 223, 229, 221, 226, 232, 224, 229, 235, 229, 232, 239, 232, 235, 242, 236, 239, 244, 237, 240, 245, 239, 242, 247, 240, 243, 248, 243, 244, 249, 244, 245, 250, 244, 245, 250, 244, 245, 250, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 242, 247, 250, 242, 247, 250, 242, 247, 250, 242, 247, 250, 242, 247, 250, 242, 247, 250, 242, 247, 250, 242, 247, 250, 242, 247, 250, 242, 247, 250, 242, 247, 250, 242, 247, 250, 242, 247, 250, 242, 247, 250, 242, 247, 250, 242, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 249, 246, 247, 249, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 244, 245, 249, 245, 246, 250, 245, 246, 250, 245, 246, 250, 244, 245, 249, 244, 245, 249, 244, 245, 249, 243, 244, 248, 243, 244, 248, 242, 245, 250, 241, 244, 249, 240, 243, 248, 238, 241, 246, 236, 240, 243, 235, 239, 242, 235, 236, 240, 235, 236, 240, 232, 233, 237, 230, 231, 235, 227, 228, 230, 224, 225, 227, 222, 222, 224, 220, 220, 222, 219, 219, 221, 218, 218, 218, 213, 212, 210, 216, 212, 209, 217, 213, 210, 217, 213, 210, 216, 212, 209, 214, 210, 207, 211, 207, 204, 210, 206, 203, 211, 207, 204, 203, 199, 196, 202, 198, 195, 215, 211, 208, 234, 230, 227, 240, 236, 233, 228, 224, 221, 211, 210, 206, 207, 208, 203, 203, 204, 199, 203, 204, 199, 213, 214, 209, 228, 229, 224, 235, 236, 231, 232, 231, 227, 225, 224, 220, 218, 217, 213, 212, 211, 207, 210, 206, 203, 212, 208, 205, 219, 215, 212, 221, 217, 214, 217, 213, 210, 211, 207, 204, 220, 216, 213, 221, 217, 214, 221, 217, 214, 222, 218, 215, 223, 219, 216, 224, 220, 217, 225, 221, 218, 225, 221, 218, 225, 221, 218, 225, 221, 218, 225, 221, 218, 226, 222, 219, 226, 222, 219, 226, 222, 219, 227, 223, 220, 227, 224, 219, 227, 224, 217, 229, 226, 219, 232, 229, 224, 231, 228, 223, 230, 227, 222, 232, 229, 224, 236, 235, 230, 241, 240, 235, 234, 233, 229, 233, 232, 228, 231, 230, 226, 230, 229, 225, 229, 230, 225, 230, 231, 226, 231, 231, 229, 232, 232, 230, 228, 230, 229, 233, 235, 234, 239, 241, 240, 240, 242, 241, 237, 239, 238, 236, 238, 237, 239, 241, 240, 242, 244, 243, 244, 246, 245, 244, 246, 245, 244, 246, 245, 243, 245, 244, 242, 244, 243, 241, 243, 242, 240, 242, 241, 239, 241, 240, 244, 244, 244, 244, 244, 244, 244, 244, 244, 243, 243, 243, 242, 242, 242, 241, 241, 241, 241, 241, 241, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 239, 239, 239, 239, 239, 239, 239, 239, 239, 238, 238, 238, 238, 238, 238, 238, 237, 235, 237, 236, 234, 236, 235, 233, 235, 234, 232, 234, 233, 231, 235, 234, 232, 235, 234, 232, 236, 235, 233, 234, 233, 231, 233, 232, 230, 233, 232, 230, 233, 232, 230, 232, 231, 229, 232, 231, 229, 232, 231, 229, 231, 230, 228, 231, 227, 226, 231, 227, 226, 230, 226, 225, 230, 226, 225, 230, 226, 225, 230, 226, 225, 230, 226, 225, 229, 225, 224, 229, 225, 224, 230, 226, 225, 231, 227, 226, 231, 227, 226, 231, 227, 226, 230, 226, 225, 229, 225, 224, 228, 224, 223, 226, 222, 219, 226, 222, 219, 227, 223, 220, 227, 223, 220, 227, 222, 219, 226, 221, 218, 225, 220, 217, 224, 219, 216, 220, 215, 212, 220, 215, 212, 222, 214, 212, 221, 213, 211, 220, 212, 210, 218, 210, 208, 216, 208, 206, 216, 206, 205, 218, 206, 206, 220, 206, 206, 219, 205, 205, 219, 205, 205, 219, 205, 205, 219, 205, 205, 219, 205, 205, 219, 205, 205, 223, 209, 209, 221, 207, 207, 219, 205, 205, 218, 204, 204, 218, 204, 204, 219, 205, 205, 221, 207, 207, 220, 208, 208, 221, 209, 209, 223, 211, 211, 222, 210, 210, 217, 205, 205, 214, 204, 203, 221, 211, 210, 224, 214, 213, 219, 209, 208, 216, 208, 206, 224, 216, 214, 225, 217, 215, 219, 211, 209, 216, 208, 206, 222, 214, 212, 228, 220, 218, 230, 222, 220, 220, 210, 209, 221, 211, 210, 222, 212, 211, 223, 213, 212, 223, 213, 212, 223, 213, 212, 223, 213, 212, 223, 213, 212, 226, 216, 215, 226, 216, 215, 226, 216, 215, 227, 217, 216, 227, 217, 216, 227, 217, 216, 228, 218, 217, 227, 219, 217, 225, 220, 217, 225, 220, 217, 225, 220, 217, 226, 221, 218, 226, 221, 218, 227, 222, 219, 227, 222, 219, 227, 222, 219, 228, 223, 220, 228, 223, 220, 228, 223, 220, 228, 223, 220, 229, 224, 221, 229, 224, 221, 230, 225, 222, 230, 225, 222, 230, 224, 224, 230, 224, 224, 230, 224, 224, 230, 224, 224, 230, 225, 222, 229, 225, 222, 229, 225, 222, 229, 225, 222, 230, 226, 223, 230, 226, 223, 230, 227, 222, 230, 227, 222, 227, 226, 221, 227, 226, 221, 226, 225, 220, 226, 225, 221, 226, 226, 224, 225, 225, 223, 226, 225, 223, 227, 223, 220, 227, 222, 218, 226, 221, 215, 228, 221, 215, 228, 221, 213, 228, 219, 212, 228, 219, 212, 227, 218, 211, 227, 218, 211, 227, 218, 211, 226, 217, 210, 226, 217, 212, 226, 217, 212, 224, 217, 211, 224, 217, 209, 224, 217, 209, 223, 216, 208, 224, 215, 208, 224, 215, 206, 227, 217, 208, 228, 218, 208, 234, 222, 210, 231, 219, 207, 227, 213, 200, 224, 210, 197, 226, 210, 197, 227, 211, 198, 228, 212, 197, 229, 213, 198, 228, 214, 201, 229, 215, 202, 232, 216, 203, 231, 215, 202, 228, 212, 199, 226, 210, 197, 227, 211, 198, 229, 213, 200, 232, 218, 207, 246, 232, 221, 244, 231, 222, 225, 215, 205, 220, 210, 201, 229, 220, 213, 230, 223, 217, 221, 212, 205, 238, 228, 219, 250, 237, 228, 250, 237, 228, 234, 221, 212, 223, 213, 203, 228, 218, 208, 230, 220, 210, 225, 215, 205, 228, 218, 208, 230, 220, 210, 230, 222, 211, 230, 222, 211, 230, 222, 211, 234, 226, 215, 243, 235, 224, 250, 242, 231, 239, 232, 224, 233, 226, 218, 228, 221, 213, 229, 222, 214, 233, 226, 218, 234, 227, 219, 229, 225, 216, 225, 221, 212, 231, 226, 220, 231, 226, 220, 231, 226, 220, 232, 227, 221, 231, 228, 223, 232, 229, 224, 232, 229, 224, 232, 229, 224, 232, 229, 224, 232, 229, 224, 232, 229, 224, 233, 230, 225, 233, 230, 225, 233, 230, 225, 234, 231, 226, 234, 231, 226, 234, 231, 226, 234, 231, 226, 235, 232, 227, 235, 232, 227, 236, 233, 228, 236, 233, 228, 237, 234, 229, 237, 234, 229, 236, 235, 231, 237, 236, 232, 239, 238, 234, 240, 239, 235, 240, 239, 235, 238, 237, 233, 235, 234, 230, 233, 232, 228, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 240, 240, 238, 241, 241, 239, 241, 241, 239, 241, 241, 239, 242, 242, 240, 242, 242, 240, 242, 242, 240, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 242, 244, 243, 242, 244, 243, 242, 244, 243, 241, 243, 242, 241, 243, 242, 241, 243, 242, 240, 242, 241, 240, 242, 241, 240, 242, 241, 240, 242, 241, 239, 241, 240, 239, 241, 240, 239, 241, 240, 238, 240, 239, 238, 240, 239, 238, 240, 239, 237, 238, 240, 237, 238, 240, 236, 237, 239, 236, 237, 239, 235, 236, 238, 234, 235, 237, 233, 234, 236, 233, 234, 236, 232, 233, 235, 232, 233, 235, 231, 232, 234, 230, 231, 233, 228, 229, 231, 225, 226, 228, 223, 224, 226, 221, 222, 224, 217, 221, 224, 215, 219, 220, 213, 214, 216, 209, 210, 212, 205, 206, 208, 202, 203, 205, 200, 201, 203, 199, 201, 200, 194, 194, 194, 193, 193, 193, 191, 191, 191, 190, 190, 190, 189, 189, 189, 190, 190, 188, 192, 191, 189, 192, 191, 189, 195, 191, 188, 191, 187, 184, 183, 179, 176, 174, 170, 167, 166, 161, 158, 158, 153, 150, 152, 147, 143, 149, 144, 140, 148, 143, 139, 146, 141, 137, 144, 136, 133, 142, 134, 131, 141, 134, 128, 143, 136, 130, 146, 139, 133, 148, 141, 135, 154, 146, 144, 155, 147, 145, 156, 148, 146, 158, 150, 148, 160, 152, 150, 161, 153, 151, 163, 155, 153, 163, 155, 153, 177, 169, 167, 173, 165, 163, 168, 160, 158, 163, 155, 153, 160, 152, 150, 160, 152, 150, 161, 153, 151, 162, 154, 152, 162, 152, 151, 163, 153, 152, 165, 155, 154, 167, 157, 156, 170, 162, 159, 174, 166, 163, 176, 171, 167, 178, 173, 169, 182, 177, 173, 184, 181, 176, 188, 184, 181, 191, 187, 184, 191, 190, 188, 194, 192, 193, 198, 196, 199, 201, 201, 203, 201, 204, 209, 205, 210, 216, 211, 216, 222, 215, 220, 226, 219, 224, 230, 222, 227, 233, 227, 230, 237, 230, 233, 240, 234, 237, 242, 236, 239, 244, 238, 241, 246, 240, 243, 248, 243, 244, 249, 244, 245, 250, 244, 245, 250, 244, 245, 250, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 249, 246, 247, 249, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 244, 245, 249, 244, 245, 249, 244, 245, 249, 240, 243, 248, 240, 243, 248, 239, 242, 247, 237, 240, 245, 236, 240, 243, 234, 238, 241, 235, 236, 240, 235, 236, 240, 235, 236, 240, 233, 234, 238, 230, 231, 233, 227, 228, 230, 225, 225, 227, 223, 223, 225, 222, 222, 224, 221, 221, 221, 217, 216, 214, 217, 216, 212, 216, 215, 211, 215, 214, 210, 214, 213, 209, 211, 210, 206, 209, 208, 204, 208, 207, 203, 202, 201, 197, 217, 216, 212, 231, 230, 226, 233, 232, 228, 222, 221, 217, 212, 211, 207, 211, 210, 206, 214, 213, 209, 210, 211, 206, 214, 215, 210, 220, 221, 216, 227, 228, 223, 231, 230, 226, 228, 227, 223, 220, 219, 215, 214, 213, 209, 208, 207, 203, 210, 209, 205, 216, 212, 209, 221, 217, 214, 224, 220, 217, 223, 219, 216, 218, 214, 211, 214, 210, 207, 222, 219, 214, 223, 220, 215, 223, 220, 215, 224, 221, 216, 224, 221, 216, 225, 222, 217, 225, 222, 217, 226, 223, 218, 225, 222, 217, 225, 222, 217, 226, 223, 218, 226, 223, 218, 226, 223, 218, 227, 224, 219, 227, 224, 219, 227, 224, 219, 232, 229, 222, 229, 226, 219, 227, 224, 219, 230, 227, 222, 236, 233, 228, 240, 237, 232, 238, 237, 232, 236, 235, 230, 228, 227, 223, 229, 228, 224, 231, 230, 226, 232, 231, 227, 232, 233, 228, 231, 232, 227, 229, 229, 227, 228, 228, 226, 229, 231, 230, 234, 236, 235, 239, 241, 240, 239, 241, 240, 237, 239, 238, 236, 238, 237, 240, 242, 241, 244, 246, 245, 245, 247, 246, 244, 246, 245, 243, 245, 244, 242, 244, 243, 241, 243, 242, 240, 242, 241, 240, 242, 241, 240, 242, 241, 244, 244, 244, 244, 244, 244, 243, 243, 243, 242, 242, 242, 241, 241, 241, 239, 239, 239, 239, 239, 239, 238, 238, 238, 239, 239, 239, 239, 239, 239, 239, 239, 239, 238, 238, 238, 238, 238, 238, 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 236, 234, 236, 235, 233, 235, 234, 232, 234, 233, 231, 233, 232, 230, 234, 233, 231, 234, 233, 231, 235, 234, 232, 233, 232, 230, 233, 232, 230, 232, 231, 229, 232, 231, 229, 232, 231, 229, 231, 230, 228, 231, 230, 228, 231, 230, 228, 231, 227, 226, 231, 227, 226, 230, 226, 225, 230, 226, 225, 229, 225, 224, 229, 225, 224, 228, 224, 223, 228, 224, 223, 230, 226, 225, 230, 226, 225, 231, 227, 226, 231, 227, 226, 230, 226, 225, 229, 225, 224, 228, 224, 223, 227, 223, 222, 226, 221, 218, 227, 222, 219, 227, 222, 219, 227, 222, 219, 228, 220, 218, 226, 218, 216, 225, 217, 215, 223, 215, 213, 220, 212, 210, 220, 212, 210, 222, 212, 211, 221, 211, 210, 220, 210, 209, 219, 209, 208, 217, 207, 206, 216, 206, 205, 218, 206, 206, 218, 206, 206, 218, 206, 206, 218, 206, 206, 219, 207, 207, 219, 207, 207, 219, 207, 207, 219, 207, 207, 220, 208, 208, 218, 206, 206, 217, 205, 205, 215, 203, 203, 216, 204, 204, 217, 205, 205, 219, 207, 207, 220, 208, 208, 222, 210, 210, 223, 213, 212, 220, 210, 209, 216, 206, 205, 217, 207, 206, 220, 210, 209, 221, 211, 210, 222, 212, 211, 219, 211, 209, 224, 216, 214, 226, 218, 216, 222, 214, 212, 217, 212, 209, 220, 215, 212, 226, 221, 218, 230, 225, 222, 223, 215, 213, 223, 215, 213, 222, 214, 212, 222, 214, 212, 223, 215, 213, 223, 215, 213, 224, 216, 214, 224, 216, 214, 226, 218, 216, 226, 218, 216, 226, 218, 216, 227, 219, 217, 227, 219, 217, 228, 220, 218, 228, 220, 218, 228, 220, 218, 226, 221, 218, 226, 221, 218, 226, 221, 218, 227, 222, 219, 227, 222, 219, 227, 222, 219, 228, 223, 220, 228, 223, 220, 228, 223, 220, 228, 223, 220, 229, 224, 221, 229, 224, 221, 229, 224, 221, 230, 225, 222, 230, 225, 222, 230, 225, 222, 229, 225, 224, 229, 225, 226, 229, 225, 224, 229, 225, 224, 229, 225, 224, 229, 225, 224, 229, 225, 224, 227, 226, 224, 228, 227, 223, 228, 227, 223, 227, 226, 222, 227, 226, 222, 227, 226, 222, 226, 225, 221, 226, 225, 221, 226, 225, 221, 225, 224, 222, 225, 224, 222, 227, 223, 222, 226, 222, 219, 226, 221, 217, 227, 220, 214, 228, 219, 214, 227, 218, 211, 228, 217, 211, 228, 218, 209, 227, 217, 208, 227, 217, 208, 226, 216, 207, 226, 216, 207, 225, 216, 209, 225, 216, 209, 226, 217, 210, 224, 215, 208, 223, 214, 207, 222, 213, 204, 224, 214, 205, 224, 214, 205, 225, 215, 206, 225, 215, 205, 231, 219, 207, 230, 218, 206, 229, 215, 202, 226, 212, 199, 226, 210, 197, 225, 209, 196, 227, 211, 196, 228, 212, 197, 222, 209, 193, 225, 212, 196, 230, 214, 199, 230, 214, 199, 228, 212, 197, 227, 211, 196, 228, 212, 197, 230, 214, 199, 220, 206, 193, 242, 228, 215, 248, 236, 224, 230, 220, 210, 220, 210, 201, 227, 218, 209, 231, 224, 216, 226, 217, 210, 220, 210, 201, 243, 230, 221, 251, 241, 231, 239, 229, 219, 226, 216, 206, 226, 216, 206, 230, 220, 210, 229, 219, 209, 224, 216, 205, 229, 221, 210, 232, 224, 213, 231, 223, 212, 228, 220, 209, 229, 221, 210, 234, 226, 215, 240, 232, 221, 249, 242, 234, 242, 235, 227, 234, 227, 219, 230, 223, 215, 231, 224, 216, 232, 225, 217, 230, 226, 217, 228, 224, 215, 231, 226, 220, 231, 226, 220, 231, 226, 220, 232, 227, 221, 231, 228, 223, 232, 229, 224, 232, 229, 224, 232, 229, 224, 232, 229, 224, 232, 229, 224, 232, 229, 224, 233, 230, 225, 233, 230, 225, 233, 230, 225, 234, 231, 226, 234, 231, 226, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 236, 233, 228, 236, 233, 228, 236, 233, 228, 231, 230, 226, 233, 232, 228, 236, 235, 231, 239, 238, 234, 240, 239, 235, 240, 239, 235, 239, 238, 234, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 242, 241, 237, 241, 241, 239, 241, 241, 239, 241, 241, 239, 242, 242, 240, 242, 242, 240, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 243, 245, 244, 243, 245, 244, 242, 244, 243, 242, 244, 243, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 240, 242, 241, 240, 242, 241, 240, 242, 241, 239, 241, 240, 239, 241, 240, 239, 241, 240, 238, 240, 239, 238, 240, 239, 237, 238, 240, 237, 238, 240, 236, 237, 239, 236, 237, 239, 235, 236, 238, 234, 235, 237, 233, 234, 236, 233, 234, 236, 231, 232, 234, 231, 232, 234, 231, 232, 234, 230, 231, 233, 228, 229, 231, 225, 226, 228, 223, 224, 226, 221, 222, 224, 215, 216, 218, 213, 214, 216, 212, 212, 214, 208, 208, 208, 206, 206, 206, 204, 204, 204, 203, 203, 203, 203, 203, 203, 204, 202, 203, 199, 198, 196, 191, 190, 188, 183, 182, 180, 178, 177, 175, 177, 176, 174, 180, 176, 175, 181, 177, 174, 192, 188, 187, 190, 186, 185, 187, 183, 180, 184, 180, 177, 183, 178, 175, 181, 176, 173, 180, 175, 172, 180, 175, 172, 163, 158, 154, 160, 155, 151, 159, 151, 148, 156, 148, 145, 155, 147, 144, 156, 148, 145, 159, 152, 146, 161, 154, 148, 156, 148, 146, 158, 150, 148, 161, 153, 151, 166, 158, 156, 171, 163, 161, 176, 168, 166, 180, 172, 170, 182, 174, 172, 179, 171, 169, 176, 168, 166, 170, 162, 160, 164, 156, 154, 161, 153, 151, 160, 152, 150, 161, 153, 151, 162, 154, 152, 159, 149, 148, 160, 150, 149, 162, 152, 151, 164, 154, 153, 167, 159, 156, 171, 163, 160, 175, 167, 164, 175, 170, 166, 180, 175, 171, 183, 178, 174, 187, 183, 180, 189, 185, 182, 189, 188, 186, 191, 190, 188, 195, 193, 194, 197, 197, 199, 201, 202, 207, 204, 207, 212, 210, 213, 218, 215, 218, 223, 218, 221, 226, 222, 225, 230, 227, 230, 235, 230, 233, 238, 232, 235, 240, 234, 237, 242, 236, 239, 244, 238, 241, 246, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 245, 248, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 249, 246, 247, 249, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 244, 245, 249, 244, 245, 249, 240, 243, 248, 239, 242, 247, 239, 242, 247, 237, 240, 245, 236, 240, 243, 235, 239, 242, 236, 237, 241, 236, 237, 241, 237, 238, 242, 235, 236, 240, 232, 233, 235, 229, 230, 232, 227, 227, 229, 225, 225, 227, 224, 224, 226, 223, 223, 223, 220, 219, 217, 219, 218, 214, 217, 216, 212, 215, 214, 210, 214, 213, 209, 214, 213, 209, 214, 213, 209, 214, 213, 209, 230, 229, 225, 235, 234, 230, 237, 236, 232, 228, 227, 223, 215, 214, 210, 207, 206, 202, 209, 208, 204, 215, 214, 210, 219, 220, 215, 229, 230, 225, 236, 237, 232, 230, 231, 226, 216, 215, 211, 208, 207, 203, 212, 211, 207, 220, 219, 215, 212, 211, 207, 214, 213, 209, 219, 215, 212, 220, 216, 213, 220, 216, 213, 220, 216, 213, 222, 218, 215, 224, 220, 217, 224, 221, 216, 224, 221, 216, 224, 221, 216, 224, 221, 216, 225, 222, 217, 225, 222, 217, 225, 222, 217, 225, 222, 217, 226, 223, 218, 226, 223, 218, 226, 223, 218, 226, 223, 218, 227, 224, 219, 227, 224, 219, 227, 224, 219, 228, 225, 220, 233, 230, 223, 229, 226, 219, 228, 225, 220, 232, 229, 224, 240, 237, 232, 243, 240, 235, 236, 235, 230, 231, 230, 225, 226, 225, 221, 228, 227, 223, 231, 230, 226, 234, 233, 229, 234, 235, 230, 232, 233, 228, 229, 229, 227, 227, 227, 225, 232, 234, 233, 234, 236, 235, 237, 239, 238, 237, 239, 238, 237, 239, 238, 238, 240, 239, 241, 243, 242, 243, 245, 244, 243, 245, 244, 242, 244, 243, 241, 243, 242, 239, 241, 240, 239, 241, 240, 239, 241, 240, 240, 242, 241, 241, 243, 242, 242, 242, 242, 242, 242, 242, 241, 241, 241, 240, 240, 240, 240, 240, 240, 239, 239, 239, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, 237, 237, 237, 237, 237, 237, 237, 237, 237, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 235, 233, 235, 234, 232, 234, 233, 231, 233, 232, 230, 233, 232, 230, 233, 232, 230, 234, 233, 231, 234, 233, 231, 232, 231, 229, 232, 231, 229, 232, 231, 229, 231, 230, 228, 231, 230, 228, 230, 229, 227, 230, 229, 227, 230, 229, 227, 232, 228, 227, 232, 228, 227, 231, 227, 226, 230, 226, 225, 229, 225, 224, 229, 225, 224, 228, 224, 223, 228, 224, 223, 229, 225, 224, 230, 226, 225, 230, 226, 225, 230, 226, 225, 229, 225, 224, 228, 224, 223, 226, 222, 221, 225, 221, 220, 226, 221, 218, 226, 221, 218, 226, 221, 218, 226, 221, 218, 226, 218, 216, 225, 217, 215, 223, 215, 213, 222, 214, 212, 219, 211, 209, 220, 212, 210, 221, 211, 210, 221, 211, 210, 220, 210, 209, 219, 209, 208, 218, 208, 207, 217, 207, 206, 218, 206, 206, 219, 207, 207, 219, 207, 207, 219, 207, 207, 220, 208, 208, 220, 208, 208, 221, 209, 209, 221, 209, 209, 220, 208, 208, 218, 206, 206, 217, 205, 205, 216, 204, 204, 216, 204, 204, 218, 206, 206, 220, 208, 208, 222, 210, 210, 221, 211, 210, 224, 214, 213, 219, 209, 208, 216, 206, 205, 221, 211, 210, 220, 210, 209, 218, 208, 207, 225, 215, 214, 223, 215, 213, 224, 216, 214, 225, 217, 215, 224, 216, 214, 222, 217, 214, 222, 217, 214, 225, 220, 217, 228, 223, 220, 226, 218, 216, 225, 217, 215, 224, 216, 214, 223, 215, 213, 223, 215, 213, 224, 216, 214, 225, 217, 215, 226, 218, 216, 226, 218, 216, 227, 219, 217, 227, 219, 217, 227, 219, 217, 228, 220, 218, 228, 220, 218, 228, 220, 218, 229, 221, 219, 227, 222, 219, 227, 222, 219, 227, 222, 219, 227, 222, 219, 228, 223, 220, 228, 223, 220, 228, 223, 220, 229, 224, 221, 228, 223, 220, 229, 224, 221, 229, 224, 221, 229, 224, 221, 230, 225, 222, 230, 225, 222, 230, 225, 222, 231, 226, 223, 230, 226, 227, 230, 226, 227, 230, 226, 225, 230, 226, 225, 230, 226, 225, 230, 226, 225, 228, 227, 225, 228, 227, 225, 228, 227, 223, 227, 226, 222, 227, 226, 222, 227, 226, 222, 226, 225, 221, 226, 225, 221, 226, 225, 221, 225, 224, 220, 224, 223, 219, 224, 223, 219, 225, 221, 218, 226, 221, 217, 227, 220, 214, 226, 219, 211, 226, 217, 210, 226, 217, 208, 227, 217, 208, 226, 216, 206, 226, 216, 207, 226, 216, 207, 225, 215, 206, 225, 215, 206, 225, 215, 206, 223, 214, 205, 226, 217, 210, 223, 214, 205, 220, 211, 202, 220, 211, 202, 223, 213, 204, 224, 214, 204, 223, 213, 203, 221, 211, 199, 226, 214, 202, 228, 216, 204, 230, 216, 203, 228, 214, 201, 227, 211, 198, 226, 210, 197, 226, 210, 195, 228, 212, 197, 221, 208, 192, 223, 210, 194, 228, 212, 197, 228, 212, 197, 227, 211, 196, 228, 212, 197, 230, 214, 199, 232, 216, 201, 224, 210, 197, 226, 212, 199, 236, 224, 212, 243, 233, 221, 234, 224, 214, 219, 210, 201, 222, 215, 207, 238, 229, 220, 220, 210, 201, 227, 214, 205, 238, 228, 218, 248, 238, 228, 240, 230, 220, 224, 214, 204, 224, 214, 204, 237, 227, 217, 224, 216, 205, 229, 221, 210, 233, 225, 214, 232, 224, 213, 228, 220, 209, 226, 218, 207, 228, 220, 209, 231, 222, 213, 248, 241, 233, 245, 238, 230, 240, 233, 225, 235, 228, 220, 232, 225, 217, 231, 224, 216, 230, 226, 217, 231, 227, 218, 231, 226, 220, 231, 226, 220, 231, 226, 220, 232, 227, 221, 231, 228, 223, 232, 229, 224, 232, 229, 224, 232, 229, 224, 232, 229, 224, 232, 229, 224, 232, 229, 224, 233, 230, 225, 233, 230, 225, 233, 230, 225, 234, 231, 226, 234, 231, 226, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 230, 229, 225, 231, 230, 226, 234, 233, 229, 237, 236, 232, 239, 238, 234, 240, 239, 235, 241, 240, 236, 241, 240, 236, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 242, 241, 237, 243, 242, 238, 241, 241, 239, 241, 241, 239, 242, 242, 240, 242, 242, 240, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 244, 246, 245, 244, 246, 245, 243, 245, 244, 243, 245, 244, 243, 245, 244, 242, 244, 243, 242, 244, 243, 242, 244, 243, 241, 243, 242, 241, 243, 242, 241, 243, 242, 240, 242, 241, 240, 242, 241, 240, 242, 241, 239, 241, 240, 239, 241, 240, 238, 239, 241, 238, 239, 241, 237, 238, 240, 236, 237, 239, 235, 236, 238, 235, 236, 238, 234, 235, 237, 234, 235, 237, 231, 232, 234, 231, 232, 234, 230, 231, 233, 229, 230, 232, 227, 228, 230, 225, 226, 228, 222, 223, 225, 221, 222, 224, 214, 215, 217, 212, 213, 215, 210, 210, 210, 208, 208, 208, 205, 205, 205, 203, 203, 203, 203, 203, 203, 202, 202, 202, 196, 195, 193, 194, 193, 191, 191, 190, 188, 187, 186, 184, 182, 181, 179, 178, 177, 175, 177, 173, 170, 175, 171, 168, 167, 163, 162, 168, 164, 163, 169, 165, 162, 172, 168, 165, 176, 171, 168, 180, 175, 172, 184, 179, 176, 186, 181, 178, 185, 180, 176, 184, 179, 175, 184, 176, 173, 182, 174, 171, 181, 173, 170, 182, 174, 171, 184, 177, 171, 185, 177, 174, 182, 174, 172, 182, 174, 172, 182, 174, 172, 183, 175, 173, 184, 176, 174, 185, 177, 175, 185, 177, 175, 186, 178, 176, 172, 164, 162, 169, 161, 159, 165, 157, 155, 161, 153, 151, 158, 150, 148, 157, 149, 147, 156, 148, 146, 157, 149, 147, 157, 147, 146, 158, 148, 147, 160, 150, 149, 162, 152, 151, 165, 157, 154, 169, 161, 158, 173, 165, 162, 175, 167, 164, 177, 172, 168, 181, 176, 172, 185, 181, 178, 188, 184, 181, 188, 187, 185, 189, 188, 186, 191, 189, 190, 193, 193, 195, 198, 199, 203, 201, 204, 209, 207, 210, 215, 212, 215, 220, 216, 219, 224, 220, 223, 228, 225, 228, 233, 228, 231, 236, 230, 233, 238, 231, 234, 239, 234, 237, 242, 236, 239, 244, 238, 241, 246, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 249, 246, 247, 249, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 244, 245, 249, 244, 245, 249, 242, 245, 250, 241, 244, 249, 241, 244, 249, 240, 243, 248, 239, 243, 246, 238, 242, 245, 239, 240, 244, 239, 240, 244, 238, 239, 243, 236, 237, 241, 233, 234, 236, 230, 231, 233, 228, 228, 230, 226, 226, 228, 225, 225, 227, 224, 224, 224, 222, 221, 219, 220, 219, 217, 217, 216, 214, 215, 214, 212, 216, 215, 213, 220, 219, 217, 225, 224, 222, 228, 227, 225, 242, 241, 239, 231, 230, 228, 218, 217, 215, 213, 212, 210, 216, 215, 213, 221, 220, 218, 222, 221, 219, 221, 220, 218, 230, 229, 225, 232, 231, 227, 230, 229, 225, 222, 221, 217, 212, 211, 207, 209, 208, 204, 214, 213, 209, 221, 220, 216, 221, 217, 214, 220, 216, 213, 218, 214, 211, 218, 214, 211, 220, 215, 212, 222, 217, 214, 224, 219, 216, 225, 220, 217, 224, 221, 216, 224, 221, 216, 224, 221, 216, 224, 221, 216, 224, 221, 216, 225, 222, 217, 225, 222, 217, 225, 222, 217, 226, 223, 218, 226, 223, 218, 226, 223, 218, 227, 224, 219, 227, 224, 219, 227, 224, 219, 228, 225, 220, 228, 225, 220, 229, 226, 219, 231, 228, 221, 234, 231, 226, 238, 235, 230, 240, 237, 232, 238, 235, 230, 233, 232, 227, 229, 228, 223, 229, 228, 224, 230, 229, 225, 231, 230, 226, 232, 231, 227, 232, 233, 228, 232, 233, 228, 232, 232, 230, 232, 232, 230, 237, 237, 237, 235, 235, 235, 235, 235, 235, 236, 236, 236, 240, 240, 240, 242, 242, 242, 243, 243, 243, 243, 243, 243, 241, 241, 241, 240, 240, 240, 239, 239, 239, 238, 238, 238, 238, 238, 238, 240, 240, 240, 242, 242, 242, 244, 244, 244, 240, 240, 240, 240, 240, 240, 240, 240, 240, 239, 239, 239, 239, 239, 239, 239, 239, 239, 238, 238, 238, 238, 238, 238, 237, 237, 237, 237, 237, 237, 237, 237, 237, 236, 236, 236, 236, 236, 236, 235, 235, 235, 235, 235, 235, 235, 235, 235, 236, 235, 233, 235, 234, 232, 234, 233, 231, 233, 232, 230, 232, 231, 229, 232, 231, 229, 233, 232, 230, 234, 233, 231, 231, 230, 228, 231, 230, 228, 231, 230, 228, 231, 230, 228, 230, 229, 227, 230, 229, 227, 229, 228, 226, 229, 228, 226, 233, 229, 228, 233, 229, 228, 232, 228, 227, 231, 227, 226, 230, 226, 225, 229, 225, 224, 228, 224, 223, 228, 224, 223, 229, 225, 224, 229, 225, 224, 229, 225, 224, 229, 225, 224, 228, 224, 223, 226, 222, 221, 224, 220, 219, 223, 219, 218, 226, 221, 218, 228, 220, 218, 228, 220, 218, 227, 219, 217, 225, 217, 215, 223, 215, 213, 222, 212, 211, 221, 211, 210, 220, 210, 209, 221, 211, 210, 221, 211, 210, 221, 211, 210, 222, 210, 210, 221, 209, 209, 219, 207, 207, 219, 207, 207, 218, 208, 207, 218, 208, 207, 218, 208, 207, 219, 209, 208, 220, 210, 209, 221, 211, 210, 221, 211, 210, 221, 211, 210, 221, 211, 210, 219, 209, 208, 218, 208, 207, 217, 207, 206, 218, 208, 207, 220, 210, 209, 223, 213, 212, 224, 214, 213, 223, 213, 212, 227, 217, 216, 220, 210, 209, 217, 207, 206, 225, 215, 214, 221, 211, 210, 217, 209, 207, 227, 219, 217, 226, 218, 216, 223, 215, 213, 221, 216, 213, 225, 220, 217, 226, 221, 218, 224, 219, 216, 222, 217, 214, 222, 217, 214, 229, 221, 219, 227, 219, 217, 225, 217, 215, 224, 216, 214, 223, 215, 213, 224, 216, 214, 226, 218, 216, 227, 219, 217, 226, 218, 216, 227, 219, 217, 227, 219, 217, 227, 219, 217, 228, 220, 218, 228, 220, 218, 228, 220, 218, 228, 220, 218, 227, 222, 219, 227, 222, 219, 228, 223, 220, 228, 223, 220, 228, 223, 220, 229, 224, 221, 229, 224, 221, 229, 224, 221, 229, 224, 221, 229, 224, 221, 229, 224, 221, 230, 225, 222, 230, 225, 222, 230, 225, 222, 231, 226, 223, 231, 226, 223, 230, 226, 227, 228, 226, 227, 228, 226, 227, 228, 226, 227, 228, 227, 225, 228, 227, 225, 228, 227, 225, 228, 227, 225, 227, 226, 224, 227, 226, 224, 229, 225, 222, 228, 224, 221, 228, 224, 221, 228, 224, 221, 227, 223, 220, 227, 223, 220, 225, 221, 218, 225, 222, 217, 226, 221, 217, 225, 220, 214, 226, 219, 213, 226, 217, 210, 227, 217, 208, 226, 216, 206, 228, 215, 206, 227, 215, 203, 227, 214, 205, 227, 214, 205, 226, 213, 204, 226, 213, 204, 226, 213, 204, 224, 214, 204, 227, 217, 208, 223, 213, 203, 220, 210, 200, 219, 209, 199, 222, 212, 202, 223, 213, 201, 223, 211, 199, 221, 209, 197, 221, 207, 196, 225, 211, 198, 230, 216, 203, 231, 217, 204, 230, 214, 199, 227, 211, 196, 226, 210, 195, 227, 211, 196, 223, 210, 194, 225, 212, 196, 228, 212, 196, 227, 211, 195, 226, 210, 194, 226, 210, 194, 229, 213, 197, 232, 216, 200, 229, 216, 200, 219, 206, 190, 226, 214, 200, 243, 233, 221, 243, 233, 223, 225, 217, 206, 220, 213, 203, 235, 226, 217, 229, 219, 210, 222, 212, 203, 227, 217, 208, 242, 232, 223, 246, 236, 227, 236, 226, 217, 229, 220, 211, 233, 224, 215, 228, 219, 210, 229, 220, 211, 230, 221, 212, 230, 221, 212, 228, 221, 211, 227, 220, 210, 229, 222, 212, 230, 223, 213, 234, 227, 219, 239, 232, 224, 244, 237, 229, 242, 235, 227, 236, 229, 221, 231, 224, 216, 229, 225, 216, 232, 228, 219, 231, 226, 220, 231, 226, 220, 231, 226, 220, 232, 227, 221, 231, 228, 223, 232, 229, 224, 232, 229, 224, 232, 229, 224, 232, 229, 224, 232, 229, 224, 232, 229, 224, 233, 230, 225, 233, 230, 225, 233, 230, 225, 234, 231, 226, 234, 231, 226, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 234, 231, 226, 234, 231, 226, 234, 231, 226, 234, 231, 226, 234, 233, 229, 234, 233, 229, 234, 233, 229, 234, 233, 229, 236, 235, 231, 238, 237, 233, 240, 239, 235, 241, 240, 236, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 242, 241, 237, 243, 242, 238, 243, 242, 238, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 245, 247, 246, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 246, 245, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 242, 244, 243, 242, 244, 243, 242, 244, 243, 241, 243, 242, 241, 243, 242, 241, 243, 242, 240, 242, 241, 239, 240, 242, 239, 240, 242, 238, 239, 241, 237, 238, 240, 236, 237, 239, 236, 237, 239, 235, 236, 238, 235, 236, 238, 231, 232, 234, 231, 232, 234, 230, 231, 233, 229, 230, 232, 227, 228, 230, 224, 225, 227, 222, 223, 225, 220, 221, 223, 218, 218, 218, 215, 215, 215, 212, 212, 212, 208, 208, 208, 205, 204, 202, 202, 201, 199, 200, 199, 197, 200, 199, 197, 185, 184, 182, 186, 185, 183, 190, 186, 183, 190, 186, 183, 188, 184, 181, 185, 181, 178, 181, 177, 174, 179, 175, 172, 177, 173, 172, 174, 170, 169, 169, 165, 164, 163, 159, 158, 159, 154, 151, 154, 149, 146, 151, 146, 143, 150, 145, 142, 163, 158, 155, 163, 158, 155, 166, 158, 155, 166, 158, 155, 166, 158, 155, 166, 158, 155, 166, 158, 155, 166, 158, 155, 171, 163, 161, 170, 162, 160, 169, 161, 159, 167, 159, 157, 164, 156, 154, 162, 154, 152, 160, 152, 150, 159, 151, 149, 163, 155, 153, 162, 154, 152, 161, 153, 151, 159, 151, 149, 157, 149, 147, 155, 147, 145, 154, 146, 144, 153, 145, 143, 156, 146, 145, 158, 146, 146, 159, 149, 147, 161, 151, 149, 165, 155, 153, 169, 159, 157, 172, 165, 159, 174, 167, 161, 176, 171, 167, 180, 175, 171, 184, 180, 177, 187, 183, 180, 188, 184, 183, 189, 185, 184, 189, 187, 188, 190, 190, 192, 194, 195, 199, 198, 199, 203, 205, 206, 210, 211, 212, 216, 215, 216, 220, 219, 220, 224, 224, 225, 230, 227, 228, 233, 227, 230, 235, 229, 232, 237, 231, 234, 239, 234, 237, 242, 237, 240, 245, 238, 241, 246, 239, 242, 247, 239, 242, 247, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 249, 246, 247, 249, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 244, 245, 249, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 241, 245, 248, 240, 244, 247, 242, 243, 247, 241, 242, 246, 238, 239, 243, 237, 238, 242, 234, 235, 237, 230, 231, 233, 228, 228, 230, 226, 226, 228, 225, 225, 227, 225, 225, 225, 222, 220, 221, 219, 218, 216, 216, 215, 213, 216, 215, 213, 219, 218, 216, 226, 225, 223, 234, 233, 231, 239, 238, 236, 215, 214, 212, 218, 217, 215, 218, 217, 215, 214, 213, 211, 211, 210, 208, 217, 216, 214, 231, 230, 228, 244, 243, 241, 236, 235, 231, 224, 223, 219, 213, 212, 208, 213, 212, 208, 221, 220, 216, 226, 225, 221, 220, 219, 215, 212, 211, 207, 222, 218, 215, 219, 215, 212, 217, 213, 210, 220, 216, 213, 226, 221, 218, 227, 222, 219, 222, 217, 214, 217, 212, 209, 224, 221, 216, 224, 221, 216, 224, 221, 216, 224, 221, 216, 224, 221, 216, 224, 221, 216, 224, 221, 216, 224, 221, 216, 226, 223, 218, 226, 223, 218, 226, 223, 218, 227, 224, 219, 227, 224, 219, 228, 225, 220, 228, 225, 220, 228, 225, 220, 224, 221, 214, 232, 229, 222, 241, 238, 233, 243, 240, 235, 238, 235, 230, 233, 230, 225, 229, 228, 223, 230, 229, 224, 233, 232, 228, 232, 231, 227, 230, 229, 225, 229, 228, 224, 229, 230, 225, 231, 232, 227, 235, 235, 233, 237, 237, 235, 239, 239, 239, 235, 235, 235, 232, 232, 232, 235, 235, 235, 241, 241, 241, 244, 244, 244, 244, 244, 244, 241, 241, 241, 240, 240, 240, 238, 238, 238, 237, 237, 237, 237, 237, 237, 238, 238, 238, 240, 240, 240, 243, 243, 243, 245, 245, 245, 238, 238, 238, 238, 238, 238, 238, 238, 238, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 237, 237, 237, 236, 236, 236, 236, 236, 236, 236, 236, 236, 235, 235, 235, 235, 235, 235, 235, 235, 235, 234, 234, 234, 235, 234, 232, 235, 234, 232, 233, 232, 230, 232, 231, 229, 232, 231, 229, 232, 231, 229, 233, 232, 230, 233, 232, 230, 231, 230, 228, 231, 230, 228, 231, 230, 228, 230, 229, 227, 230, 229, 227, 229, 228, 226, 229, 228, 226, 229, 228, 226, 234, 230, 229, 234, 230, 229, 233, 229, 228, 232, 228, 227, 230, 226, 225, 229, 225, 224, 228, 224, 223, 228, 224, 223, 228, 224, 223, 229, 225, 224, 229, 225, 224, 228, 224, 223, 227, 223, 222, 225, 221, 220, 223, 219, 218, 222, 218, 217, 228, 220, 218, 228, 220, 218, 228, 220, 218, 227, 219, 217, 225, 217, 215, 223, 215, 213, 222, 212, 211, 220, 210, 209, 220, 210, 209, 221, 211, 210, 221, 211, 210, 222, 212, 211, 222, 210, 210, 221, 209, 209, 220, 208, 208, 219, 207, 207, 218, 208, 207, 218, 208, 207, 219, 209, 208, 220, 210, 209, 220, 210, 209, 221, 211, 210, 222, 212, 211, 222, 212, 211, 223, 213, 212, 222, 212, 211, 220, 210, 209, 220, 210, 209, 221, 211, 210, 223, 213, 212, 225, 215, 214, 227, 217, 216, 225, 215, 214, 229, 219, 218, 221, 211, 210, 219, 209, 208, 228, 218, 217, 223, 213, 212, 218, 210, 208, 230, 222, 220, 228, 220, 218, 223, 215, 213, 220, 215, 212, 226, 221, 218, 229, 224, 221, 226, 221, 218, 220, 215, 212, 217, 212, 209, 230, 222, 220, 228, 220, 218, 226, 218, 216, 224, 216, 214, 224, 216, 214, 225, 217, 215, 226, 218, 216, 228, 220, 218, 226, 218, 216, 226, 218, 216, 227, 219, 217, 227, 219, 217, 227, 219, 217, 228, 220, 218, 228, 220, 218, 228, 220, 218, 227, 222, 219, 228, 223, 220, 228, 223, 220, 228, 223, 220, 229, 224, 221, 229, 224, 221, 229, 224, 221, 230, 225, 222, 229, 224, 221, 229, 224, 221, 229, 224, 221, 230, 225, 222, 230, 225, 222, 230, 225, 222, 231, 226, 223, 230, 226, 223, 228, 227, 225, 228, 226, 227, 228, 226, 227, 228, 226, 227, 228, 227, 225, 228, 227, 225, 228, 227, 225, 228, 227, 225, 227, 226, 224, 227, 226, 224, 229, 225, 222, 228, 224, 221, 228, 224, 221, 228, 224, 221, 227, 223, 220, 227, 224, 219, 225, 222, 217, 226, 221, 215, 225, 220, 214, 226, 219, 211, 226, 217, 210, 227, 217, 208, 226, 216, 206, 228, 216, 204, 227, 215, 203, 227, 215, 203, 227, 215, 203, 226, 214, 202, 226, 214, 202, 226, 214, 202, 225, 212, 203, 225, 213, 201, 229, 216, 207, 223, 213, 201, 219, 209, 199, 219, 209, 197, 222, 212, 200, 223, 213, 201, 223, 211, 199, 219, 207, 195, 217, 203, 190, 223, 209, 196, 231, 217, 204, 233, 219, 206, 232, 216, 201, 228, 212, 197, 226, 210, 195, 227, 211, 196, 227, 214, 198, 228, 215, 199, 229, 213, 197, 226, 210, 194, 224, 208, 192, 225, 209, 193, 228, 212, 196, 231, 215, 199, 228, 215, 199, 224, 211, 195, 226, 214, 200, 234, 225, 210, 242, 232, 222, 239, 231, 220, 227, 220, 210, 219, 212, 202, 233, 223, 214, 232, 222, 213, 226, 216, 207, 226, 216, 207, 241, 231, 222, 254, 244, 235, 243, 234, 225, 221, 212, 203, 231, 222, 213, 230, 221, 212, 228, 219, 210, 227, 218, 209, 228, 221, 211, 230, 223, 213, 233, 226, 216, 235, 228, 218, 220, 213, 205, 232, 225, 217, 245, 238, 230, 247, 240, 232, 240, 233, 225, 232, 225, 217, 229, 225, 216, 232, 228, 219, 231, 226, 220, 231, 226, 220, 231, 226, 220, 232, 227, 221, 231, 228, 223, 232, 229, 224, 232, 229, 224, 232, 229, 224, 232, 229, 224, 232, 229, 224, 232, 229, 224, 233, 230, 225, 233, 230, 225, 233, 230, 225, 234, 231, 226, 234, 231, 226, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 234, 231, 226, 234, 231, 226, 233, 230, 225, 233, 230, 225, 239, 238, 234, 237, 236, 232, 235, 234, 230, 233, 232, 228, 233, 232, 228, 235, 234, 230, 238, 237, 233, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 242, 241, 237, 243, 242, 238, 243, 242, 238, 242, 242, 240, 242, 242, 240, 242, 242, 240, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 246, 245, 244, 246, 245, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 242, 244, 243, 242, 244, 243, 241, 243, 242, 241, 243, 242, 240, 241, 243, 239, 240, 242, 239, 240, 242, 238, 239, 241, 237, 238, 240, 236, 237, 239, 236, 237, 239, 235, 236, 238, 231, 232, 234, 231, 232, 234, 230, 231, 233, 229, 230, 232, 227, 228, 230, 224, 225, 227, 222, 223, 225, 220, 221, 223, 221, 221, 221, 218, 218, 218, 214, 214, 214, 208, 208, 208, 204, 203, 201, 199, 198, 196, 197, 196, 194, 195, 194, 192, 192, 191, 189, 191, 190, 188, 189, 185, 182, 186, 182, 179, 182, 178, 175, 178, 174, 171, 176, 172, 169, 175, 171, 168, 176, 172, 171, 173, 169, 168, 169, 165, 164, 165, 161, 160, 162, 157, 154, 158, 153, 150, 156, 151, 148, 155, 150, 147, 143, 138, 135, 144, 139, 136, 148, 140, 137, 149, 141, 138, 150, 142, 139, 149, 141, 138, 148, 140, 137, 148, 140, 137, 149, 141, 139, 150, 142, 140, 152, 144, 142, 154, 146, 144, 157, 149, 147, 159, 151, 149, 161, 153, 151, 162, 154, 152, 159, 151, 149, 159, 151, 149, 160, 152, 150, 160, 152, 150, 159, 151, 149, 157, 149, 147, 155, 147, 145, 154, 146, 144, 157, 145, 145, 157, 145, 145, 158, 148, 146, 161, 151, 149, 165, 155, 153, 169, 159, 157, 171, 164, 158, 173, 166, 160, 175, 170, 166, 179, 174, 170, 184, 179, 176, 187, 183, 180, 188, 184, 183, 188, 184, 183, 187, 185, 186, 189, 187, 188, 191, 191, 193, 195, 196, 200, 202, 203, 207, 207, 208, 212, 212, 213, 217, 216, 217, 221, 221, 222, 227, 224, 225, 230, 226, 229, 234, 227, 230, 235, 230, 233, 238, 233, 236, 241, 236, 239, 244, 237, 240, 245, 238, 241, 246, 238, 241, 246, 240, 244, 247, 241, 245, 248, 241, 245, 248, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 250, 254, 249, 250, 254, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 245, 250, 241, 245, 248, 241, 245, 248, 243, 244, 248, 242, 243, 247, 237, 238, 242, 236, 237, 241, 234, 235, 237, 232, 233, 235, 230, 230, 232, 228, 228, 230, 226, 226, 228, 225, 225, 225, 227, 227, 227, 221, 221, 219, 217, 217, 215, 224, 224, 222, 234, 234, 232, 238, 238, 236, 231, 231, 229, 222, 222, 220, 220, 220, 218, 212, 212, 210, 207, 207, 205, 214, 214, 212, 228, 228, 226, 239, 239, 237, 239, 239, 237, 234, 234, 232, 219, 218, 214, 219, 218, 213, 219, 218, 213, 218, 217, 212, 220, 217, 212, 219, 216, 211, 219, 216, 211, 219, 216, 211, 221, 218, 213, 221, 218, 213, 223, 218, 214, 223, 218, 214, 224, 219, 215, 224, 219, 215, 224, 219, 215, 224, 219, 215, 222, 219, 214, 223, 220, 215, 223, 220, 215, 224, 221, 216, 225, 222, 217, 226, 223, 218, 226, 223, 218, 226, 223, 218, 222, 219, 214, 227, 224, 219, 232, 229, 224, 232, 229, 224, 228, 225, 220, 226, 223, 218, 228, 225, 220, 232, 229, 224, 244, 241, 234, 241, 238, 231, 237, 234, 229, 233, 230, 225, 230, 227, 222, 230, 227, 222, 230, 229, 224, 231, 230, 225, 235, 234, 230, 227, 226, 222, 227, 226, 222, 236, 235, 231, 236, 237, 232, 230, 231, 226, 233, 233, 231, 243, 243, 241, 228, 228, 226, 233, 233, 231, 240, 240, 238, 245, 245, 243, 246, 246, 244, 242, 242, 240, 236, 236, 234, 232, 232, 230, 229, 229, 227, 233, 233, 231, 237, 237, 235, 239, 239, 237, 237, 237, 235, 235, 235, 233, 235, 235, 233, 236, 236, 234, 241, 240, 238, 244, 243, 241, 240, 239, 237, 231, 230, 228, 233, 232, 230, 242, 241, 239, 242, 241, 239, 235, 234, 232, 237, 236, 234, 235, 234, 232, 233, 232, 230, 233, 232, 230, 235, 234, 232, 237, 236, 234, 237, 236, 234, 237, 236, 234, 237, 236, 234, 234, 233, 231, 230, 229, 227, 230, 229, 227, 232, 231, 229, 235, 234, 232, 236, 235, 233, 236, 235, 233, 232, 231, 229, 232, 231, 229, 231, 230, 228, 231, 230, 228, 230, 229, 227, 230, 229, 227, 230, 229, 227, 230, 229, 227, 232, 228, 227, 232, 228, 227, 231, 227, 226, 231, 227, 226, 230, 226, 225, 229, 225, 224, 228, 224, 223, 228, 224, 223, 230, 226, 225, 229, 225, 224, 228, 224, 223, 226, 222, 221, 225, 221, 220, 223, 219, 218, 222, 218, 217, 221, 217, 216, 227, 219, 217, 227, 219, 217, 226, 218, 216, 224, 216, 214, 223, 215, 213, 222, 214, 212, 222, 212, 211, 222, 212, 211, 222, 212, 211, 222, 212, 211, 221, 211, 210, 220, 210, 209, 221, 209, 209, 222, 210, 210, 223, 211, 211, 223, 211, 211, 222, 212, 211, 222, 212, 211, 222, 212, 211, 222, 212, 211, 222, 212, 211, 222, 212, 211, 222, 212, 211, 222, 212, 211, 221, 211, 210, 221, 211, 210, 220, 210, 209, 220, 210, 209, 221, 211, 210, 223, 213, 212, 224, 214, 213, 225, 215, 214, 224, 214, 213, 224, 214, 213, 223, 215, 213, 223, 215, 213, 223, 215, 213, 223, 215, 213, 223, 215, 213, 223, 215, 213, 223, 218, 215, 224, 219, 216, 225, 220, 217, 225, 220, 217, 225, 220, 217, 225, 220, 217, 223, 219, 216, 223, 218, 215, 230, 222, 220, 230, 222, 220, 229, 221, 219, 229, 221, 219, 228, 220, 218, 228, 220, 218, 228, 220, 218, 227, 219, 217, 228, 220, 218, 229, 221, 219, 229, 221, 219, 229, 221, 219, 230, 222, 220, 230, 222, 220, 230, 222, 220, 230, 222, 220, 229, 224, 221, 229, 224, 221, 229, 224, 221, 229, 224, 221, 229, 224, 221, 229, 224, 221, 229, 224, 221, 229, 224, 221, 230, 225, 222, 230, 225, 222, 230, 225, 222, 230, 225, 222, 230, 225, 222, 230, 225, 222, 230, 225, 222, 229, 225, 222, 228, 227, 225, 227, 227, 225, 227, 227, 225, 227, 227, 225, 228, 227, 225, 228, 227, 225, 228, 227, 225, 228, 227, 225, 230, 226, 223, 230, 226, 223, 229, 225, 222, 228, 224, 221, 228, 223, 220, 226, 221, 218, 226, 221, 217, 225, 220, 216, 223, 218, 214, 225, 218, 212, 224, 217, 211, 225, 216, 209, 224, 215, 206, 224, 214, 204, 225, 212, 203, 226, 212, 201, 224, 210, 199, 224, 210, 197, 224, 210, 197, 224, 210, 197, 224, 210, 197, 224, 210, 197, 224, 210, 199, 223, 211, 197, 225, 213, 201, 224, 212, 198, 223, 211, 199, 223, 211, 197, 223, 211, 197, 223, 211, 197, 225, 211, 198, 226, 212, 199, 221, 207, 194, 220, 206, 193, 221, 208, 192, 226, 213, 197, 231, 218, 202, 233, 220, 204, 229, 216, 200, 224, 211, 195, 224, 211, 195, 223, 210, 194, 225, 209, 193, 225, 209, 193, 226, 210, 194, 228, 212, 196, 229, 213, 197, 230, 214, 198, 235, 222, 206, 228, 215, 199, 222, 210, 196, 224, 215, 200, 234, 224, 214, 238, 230, 219, 234, 227, 217, 228, 221, 211, 227, 217, 208, 226, 216, 207, 225, 215, 206, 226, 216, 207, 230, 221, 212, 237, 228, 219, 244, 235, 226, 248, 239, 230, 225, 216, 207, 227, 218, 209, 229, 222, 212, 231, 224, 214, 232, 225, 215, 231, 224, 214, 231, 224, 214, 231, 224, 214, 234, 227, 219, 231, 224, 216, 231, 224, 216, 238, 231, 223, 247, 240, 232, 247, 240, 232, 236, 232, 223, 225, 221, 212, 228, 223, 217, 233, 228, 222, 237, 232, 226, 235, 230, 224, 229, 226, 221, 226, 223, 218, 228, 225, 220, 231, 228, 223, 232, 229, 224, 233, 230, 225, 233, 230, 225, 233, 230, 225, 234, 231, 226, 234, 231, 226, 234, 231, 226, 235, 232, 227, 234, 231, 226, 234, 231, 226, 235, 232, 227, 235, 232, 227, 236, 233, 228, 236, 233, 228, 236, 233, 228, 236, 233, 228, 234, 233, 229, 234, 233, 229, 234, 233, 229, 235, 234, 230, 235, 234, 230, 235, 234, 230, 236, 235, 231, 236, 235, 231, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 242, 241, 237, 241, 241, 239, 241, 241, 239, 241, 241, 239, 242, 242, 240, 242, 242, 240, 243, 243, 241, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 247, 246, 244, 246, 245, 244, 246, 245, 244, 246, 245, 243, 245, 244, 243, 245, 244, 243, 245, 244, 242, 244, 243, 240, 241, 243, 240, 241, 243, 239, 240, 242, 239, 240, 242, 238, 239, 241, 237, 238, 240, 236, 237, 239, 236, 237, 239, 235, 236, 238, 235, 236, 238, 233, 234, 236, 231, 232, 234, 227, 228, 230, 224, 225, 227, 220, 221, 223, 218, 219, 221, 213, 213, 213, 211, 211, 211, 208, 208, 208, 204, 204, 204, 201, 200, 198, 198, 197, 195, 196, 195, 193, 196, 195, 193, 190, 189, 187, 188, 187, 185, 186, 182, 179, 184, 180, 177, 183, 179, 176, 181, 177, 174, 178, 174, 171, 175, 171, 168, 175, 171, 170, 172, 168, 167, 169, 165, 164, 166, 162, 161, 164, 158, 158, 160, 154, 154, 155, 149, 149, 150, 144, 144, 153, 148, 145, 152, 147, 144, 152, 144, 142, 150, 142, 140, 149, 141, 138, 149, 141, 138, 149, 141, 138, 150, 142, 139, 150, 142, 140, 150, 142, 140, 149, 141, 139, 149, 141, 139, 150, 142, 140, 151, 143, 141, 153, 145, 143, 154, 146, 144, 160, 152, 150, 160, 152, 150, 160, 152, 150, 160, 152, 150, 158, 150, 148, 156, 148, 146, 155, 147, 145, 153, 145, 143, 157, 146, 144, 157, 146, 144, 159, 148, 146, 161, 150, 148, 164, 155, 150, 167, 158, 153, 170, 163, 157, 172, 165, 159, 176, 169, 163, 175, 170, 164, 177, 172, 168, 181, 176, 173, 183, 179, 178, 186, 182, 181, 188, 184, 183, 188, 186, 187, 191, 191, 193, 194, 194, 196, 198, 198, 200, 201, 201, 203, 206, 206, 208, 212, 212, 214, 219, 220, 224, 224, 225, 229, 223, 224, 229, 226, 227, 232, 228, 231, 236, 233, 236, 241, 236, 239, 246, 237, 240, 247, 237, 242, 248, 237, 242, 246, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 246, 247, 249, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 250, 251, 253, 251, 252, 254, 251, 252, 254, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 250, 254, 249, 250, 254, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 241, 245, 248, 241, 245, 248, 243, 244, 248, 243, 244, 248, 238, 239, 243, 237, 238, 242, 236, 237, 239, 233, 234, 236, 232, 232, 234, 230, 230, 232, 228, 228, 230, 227, 227, 227, 224, 224, 224, 225, 225, 223, 228, 228, 226, 230, 230, 228, 231, 231, 229, 228, 228, 226, 224, 224, 222, 221, 221, 219, 214, 214, 212, 219, 219, 217, 226, 226, 224, 233, 233, 231, 235, 235, 233, 233, 233, 231, 228, 228, 226, 224, 225, 220, 220, 219, 215, 220, 219, 214, 219, 218, 213, 219, 218, 213, 221, 218, 213, 220, 217, 212, 220, 217, 212, 220, 217, 212, 221, 218, 213, 221, 218, 213, 222, 217, 213, 223, 218, 214, 223, 218, 214, 223, 218, 214, 224, 219, 215, 224, 219, 215, 222, 219, 214, 223, 220, 215, 223, 220, 215, 224, 221, 216, 225, 222, 217, 226, 223, 218, 226, 223, 218, 227, 224, 219, 227, 224, 219, 228, 225, 220, 229, 226, 221, 228, 225, 220, 227, 224, 219, 229, 226, 221, 232, 229, 224, 235, 232, 227, 241, 238, 231, 239, 236, 229, 235, 232, 227, 232, 229, 224, 230, 227, 222, 231, 228, 223, 230, 229, 224, 232, 231, 226, 227, 226, 222, 234, 233, 229, 233, 232, 228, 227, 226, 222, 230, 231, 226, 242, 243, 238, 241, 241, 239, 231, 231, 229, 234, 234, 232, 237, 237, 235, 241, 241, 239, 244, 244, 242, 243, 243, 241, 240, 240, 238, 235, 235, 233, 232, 232, 230, 232, 232, 230, 233, 233, 231, 234, 234, 232, 234, 234, 232, 235, 235, 233, 236, 236, 234, 237, 237, 235, 238, 238, 236, 238, 237, 235, 239, 238, 236, 238, 237, 235, 234, 233, 231, 236, 235, 233, 240, 239, 237, 239, 238, 236, 236, 235, 233, 237, 236, 234, 235, 234, 232, 233, 232, 230, 233, 232, 230, 236, 235, 233, 237, 236, 234, 237, 236, 234, 236, 235, 233, 236, 235, 233, 233, 232, 230, 230, 229, 227, 230, 229, 227, 233, 232, 230, 235, 234, 232, 236, 235, 233, 235, 234, 232, 232, 231, 229, 231, 230, 228, 231, 230, 228, 231, 230, 228, 230, 229, 227, 230, 229, 227, 230, 229, 227, 229, 228, 226, 232, 228, 227, 232, 228, 227, 231, 227, 226, 230, 226, 225, 230, 226, 225, 229, 225, 224, 228, 224, 223, 228, 224, 223, 229, 225, 224, 229, 225, 224, 228, 224, 223, 226, 222, 221, 225, 221, 220, 223, 219, 218, 222, 218, 217, 221, 217, 216, 225, 220, 217, 227, 219, 217, 226, 218, 216, 225, 217, 215, 224, 216, 214, 223, 215, 213, 223, 213, 212, 222, 212, 211, 223, 213, 212, 222, 212, 211, 221, 211, 210, 221, 211, 210, 222, 210, 210, 222, 210, 210, 223, 211, 211, 223, 213, 212, 223, 213, 212, 223, 213, 212, 223, 213, 212, 223, 213, 212, 223, 213, 212, 223, 213, 212, 223, 213, 212, 223, 213, 212, 221, 211, 210, 221, 211, 210, 221, 211, 210, 221, 211, 210, 222, 212, 211, 223, 213, 212, 225, 215, 214, 226, 216, 215, 224, 214, 213, 224, 214, 213, 223, 215, 213, 223, 215, 213, 223, 215, 213, 223, 215, 213, 223, 215, 213, 223, 215, 213, 223, 218, 215, 224, 219, 216, 225, 220, 217, 226, 221, 218, 226, 221, 218, 225, 220, 217, 223, 219, 216, 222, 218, 215, 228, 223, 220, 229, 221, 219, 229, 221, 219, 229, 221, 219, 229, 221, 219, 228, 220, 218, 228, 220, 218, 228, 220, 218, 229, 221, 219, 229, 221, 219, 229, 221, 219, 230, 222, 220, 230, 222, 220, 230, 222, 220, 231, 223, 221, 231, 223, 221, 229, 224, 221, 229, 224, 221, 229, 224, 221, 229, 224, 221, 229, 224, 221, 229, 224, 221, 229, 224, 221, 229, 224, 221, 230, 225, 222, 230, 225, 222, 230, 225, 222, 230, 225, 222, 230, 225, 222, 230, 225, 222, 230, 225, 222, 229, 225, 222, 228, 227, 225, 227, 227, 225, 226, 226, 224, 226, 226, 224, 227, 226, 224, 227, 226, 224, 227, 226, 224, 227, 226, 222, 228, 224, 221, 227, 223, 220, 227, 223, 220, 226, 221, 218, 225, 220, 217, 224, 219, 215, 225, 217, 214, 225, 218, 212, 225, 218, 212, 224, 217, 209, 225, 216, 209, 224, 215, 206, 224, 214, 204, 225, 213, 201, 226, 212, 201, 225, 211, 198, 224, 210, 197, 226, 210, 195, 226, 210, 197, 226, 210, 195, 226, 210, 197, 224, 210, 197, 224, 210, 197, 224, 210, 197, 226, 212, 199, 224, 212, 198, 223, 211, 197, 222, 210, 196, 222, 210, 196, 223, 211, 197, 225, 211, 198, 226, 212, 199, 223, 209, 196, 221, 207, 194, 221, 208, 192, 224, 211, 195, 229, 216, 200, 231, 218, 202, 229, 216, 200, 226, 213, 197, 224, 211, 195, 224, 211, 195, 225, 209, 193, 225, 209, 193, 226, 210, 194, 228, 212, 196, 229, 213, 197, 230, 214, 198, 233, 220, 204, 228, 215, 199, 224, 212, 198, 225, 215, 203, 232, 222, 212, 235, 227, 216, 233, 226, 216, 230, 223, 213, 228, 219, 210, 227, 217, 208, 226, 216, 207, 227, 217, 208, 229, 220, 211, 235, 226, 217, 241, 232, 223, 245, 236, 227, 236, 227, 218, 232, 223, 214, 227, 220, 210, 226, 219, 209, 229, 222, 212, 232, 225, 215, 232, 225, 215, 231, 224, 214, 233, 226, 218, 230, 223, 215, 228, 221, 213, 232, 225, 217, 240, 233, 225, 243, 236, 228, 239, 235, 226, 235, 231, 222, 232, 227, 221, 231, 226, 220, 231, 226, 220, 232, 227, 221, 232, 229, 224, 233, 230, 225, 232, 229, 224, 231, 228, 223, 232, 229, 224, 233, 230, 225, 233, 230, 225, 233, 230, 225, 234, 231, 226, 234, 231, 226, 234, 231, 226, 235, 232, 227, 234, 231, 226, 234, 231, 226, 235, 232, 227, 235, 232, 227, 236, 233, 228, 236, 233, 228, 236, 233, 228, 236, 233, 228, 234, 233, 229, 234, 233, 229, 234, 233, 229, 235, 234, 230, 235, 234, 230, 236, 235, 231, 236, 235, 231, 236, 235, 231, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 242, 241, 237, 241, 241, 239, 241, 241, 239, 242, 242, 240, 242, 242, 240, 242, 242, 240, 243, 243, 241, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 246, 245, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 241, 242, 244, 241, 242, 244, 240, 241, 243, 240, 241, 243, 239, 240, 242, 238, 239, 241, 237, 238, 240, 237, 238, 240, 236, 237, 239, 236, 237, 239, 234, 235, 237, 232, 233, 235, 229, 230, 232, 225, 226, 228, 222, 223, 225, 220, 221, 223, 214, 214, 214, 212, 212, 212, 208, 208, 208, 204, 204, 204, 201, 200, 198, 198, 197, 195, 197, 196, 194, 196, 195, 193, 193, 192, 190, 190, 189, 187, 188, 184, 181, 186, 182, 179, 186, 182, 179, 184, 180, 177, 180, 176, 173, 177, 173, 170, 178, 174, 173, 176, 172, 171, 172, 168, 167, 169, 165, 164, 168, 162, 162, 164, 158, 158, 158, 152, 152, 154, 148, 148, 156, 151, 148, 154, 149, 146, 154, 146, 144, 152, 144, 142, 150, 142, 139, 149, 141, 138, 149, 141, 138, 149, 141, 138, 147, 139, 137, 147, 139, 137, 147, 139, 137, 147, 139, 137, 148, 140, 138, 150, 142, 140, 152, 144, 142, 153, 145, 143, 159, 151, 149, 160, 152, 150, 160, 152, 150, 159, 151, 149, 158, 150, 148, 157, 149, 147, 155, 147, 145, 154, 146, 144, 157, 146, 144, 158, 147, 145, 159, 148, 146, 161, 150, 148, 164, 155, 150, 167, 158, 153, 170, 161, 156, 171, 164, 158, 175, 168, 162, 177, 170, 164, 177, 172, 168, 180, 175, 171, 182, 178, 175, 185, 181, 180, 187, 183, 182, 188, 184, 183, 188, 186, 187, 190, 190, 192, 193, 193, 195, 197, 197, 199, 201, 201, 203, 207, 207, 209, 215, 214, 219, 219, 220, 224, 222, 223, 228, 225, 226, 231, 227, 230, 235, 231, 234, 239, 235, 238, 245, 237, 240, 247, 236, 241, 247, 236, 241, 245, 241, 244, 249, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 246, 247, 249, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 250, 251, 253, 251, 252, 254, 251, 252, 254, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 250, 254, 249, 250, 254, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 245, 250, 242, 246, 249, 241, 245, 248, 243, 244, 248, 243, 244, 248, 240, 241, 245, 239, 240, 244, 238, 239, 241, 236, 237, 239, 234, 234, 236, 232, 232, 234, 231, 231, 233, 230, 230, 230, 222, 222, 222, 231, 231, 229, 238, 238, 236, 235, 235, 233, 225, 225, 223, 218, 218, 216, 219, 219, 217, 223, 223, 221, 218, 218, 216, 230, 230, 228, 242, 242, 240, 243, 243, 241, 233, 233, 231, 223, 223, 221, 219, 219, 217, 219, 220, 215, 221, 220, 216, 221, 220, 215, 223, 220, 215, 222, 219, 214, 222, 219, 214, 222, 219, 214, 221, 218, 213, 221, 218, 213, 221, 216, 212, 221, 216, 212, 222, 217, 213, 222, 217, 213, 222, 217, 213, 223, 218, 214, 225, 217, 214, 223, 218, 214, 223, 220, 213, 223, 220, 213, 224, 221, 214, 224, 221, 214, 225, 222, 215, 226, 223, 216, 227, 224, 217, 227, 224, 217, 232, 229, 222, 229, 226, 219, 225, 222, 215, 225, 222, 215, 229, 226, 219, 233, 230, 223, 236, 233, 226, 238, 235, 228, 237, 234, 227, 235, 232, 225, 233, 230, 225, 231, 228, 223, 230, 227, 222, 231, 228, 223, 231, 230, 225, 232, 231, 226, 227, 226, 222, 233, 232, 228, 233, 232, 228, 228, 227, 223, 233, 234, 229, 244, 245, 240, 241, 241, 239, 228, 228, 226, 243, 242, 240, 243, 242, 240, 243, 242, 240, 242, 241, 239, 240, 239, 237, 237, 236, 234, 234, 233, 231, 232, 231, 229, 237, 236, 234, 234, 233, 231, 231, 230, 228, 231, 230, 228, 235, 234, 232, 238, 237, 235, 240, 239, 237, 241, 240, 238, 234, 233, 231, 233, 232, 230, 234, 233, 231, 239, 238, 236, 240, 239, 237, 236, 235, 233, 235, 234, 232, 236, 235, 233, 236, 235, 233, 234, 233, 231, 233, 232, 230, 234, 233, 231, 236, 235, 233, 237, 236, 234, 237, 236, 234, 235, 234, 232, 235, 234, 232, 233, 232, 230, 230, 229, 227, 231, 230, 228, 233, 232, 230, 235, 234, 232, 235, 234, 232, 234, 233, 231, 231, 230, 228, 231, 230, 228, 231, 230, 228, 230, 229, 227, 230, 229, 227, 230, 229, 227, 229, 228, 226, 229, 228, 226, 232, 228, 227, 231, 227, 226, 231, 227, 226, 230, 226, 225, 229, 225, 224, 229, 225, 224, 228, 224, 223, 228, 224, 223, 229, 225, 224, 228, 224, 223, 227, 223, 222, 226, 222, 221, 225, 221, 220, 224, 220, 219, 223, 219, 218, 222, 218, 217, 225, 220, 217, 225, 220, 217, 224, 219, 216, 223, 218, 215, 224, 216, 214, 223, 215, 213, 223, 215, 213, 222, 214, 212, 223, 215, 213, 222, 214, 212, 222, 212, 211, 221, 211, 210, 221, 211, 210, 222, 212, 211, 223, 213, 212, 224, 214, 213, 224, 214, 213, 223, 215, 213, 223, 215, 213, 223, 215, 213, 223, 215, 213, 223, 215, 213, 223, 215, 213, 223, 215, 213, 221, 213, 211, 221, 213, 211, 221, 213, 211, 221, 213, 211, 221, 213, 211, 223, 215, 213, 224, 216, 214, 225, 217, 215, 224, 216, 214, 224, 216, 214, 224, 216, 214, 224, 216, 214, 224, 216, 214, 224, 216, 214, 222, 217, 214, 222, 217, 214, 224, 219, 216, 225, 220, 217, 226, 221, 218, 226, 221, 218, 225, 221, 218, 225, 221, 218, 224, 220, 217, 223, 219, 216, 227, 222, 219, 227, 222, 219, 227, 222, 219, 227, 222, 219, 227, 222, 219, 227, 222, 219, 227, 222, 219, 227, 222, 219, 227, 222, 219, 227, 222, 219, 228, 223, 220, 228, 223, 220, 229, 224, 221, 229, 224, 221, 229, 224, 221, 229, 224, 221, 230, 225, 222, 230, 225, 222, 230, 225, 222, 230, 225, 222, 230, 225, 222, 230, 225, 222, 230, 225, 222, 230, 225, 222, 230, 225, 222, 230, 225, 222, 230, 225, 222, 230, 225, 222, 230, 225, 222, 230, 225, 222, 230, 225, 222, 229, 225, 222, 227, 226, 222, 226, 227, 222, 227, 226, 222, 227, 226, 222, 226, 225, 221, 226, 225, 221, 228, 224, 221, 228, 224, 221, 226, 221, 218, 226, 221, 217, 225, 220, 216, 226, 218, 215, 225, 217, 214, 223, 216, 210, 224, 215, 210, 223, 214, 209, 224, 215, 208, 224, 215, 206, 225, 215, 206, 224, 214, 204, 225, 213, 201, 224, 212, 198, 225, 211, 198, 226, 210, 195, 225, 209, 194, 226, 209, 193, 226, 208, 194, 225, 209, 193, 225, 209, 194, 225, 209, 194, 225, 209, 194, 223, 210, 194, 225, 212, 196, 224, 211, 195, 223, 210, 194, 223, 210, 194, 223, 210, 194, 223, 210, 194, 224, 211, 195, 225, 212, 196, 225, 212, 196, 223, 210, 194, 221, 208, 192, 222, 209, 193, 226, 213, 197, 229, 216, 200, 229, 216, 200, 228, 215, 199, 225, 212, 196, 225, 212, 196, 226, 210, 195, 226, 210, 195, 226, 210, 195, 227, 211, 196, 229, 213, 198, 230, 214, 199, 229, 215, 202, 229, 215, 202, 228, 216, 204, 227, 217, 205, 229, 219, 209, 230, 221, 212, 231, 224, 216, 232, 225, 217, 230, 221, 212, 228, 219, 210, 227, 218, 209, 226, 217, 208, 228, 219, 210, 232, 223, 214, 236, 227, 218, 239, 230, 221, 246, 239, 229, 238, 231, 221, 228, 221, 211, 224, 217, 207, 227, 220, 210, 231, 224, 214, 230, 226, 215, 229, 225, 214, 231, 224, 216, 229, 222, 214, 227, 220, 212, 228, 221, 213, 231, 224, 216, 237, 230, 222, 241, 237, 228, 244, 240, 231, 238, 233, 227, 232, 227, 221, 227, 222, 216, 229, 224, 218, 234, 231, 226, 238, 235, 230, 235, 232, 227, 231, 228, 223, 232, 229, 224, 233, 230, 225, 233, 230, 225, 233, 230, 225, 234, 231, 226, 234, 231, 226, 234, 231, 226, 235, 232, 227, 234, 231, 226, 234, 231, 226, 235, 232, 227, 235, 232, 227, 236, 233, 228, 236, 233, 228, 236, 233, 228, 236, 233, 228, 234, 233, 229, 234, 233, 229, 235, 234, 230, 235, 234, 230, 235, 234, 230, 236, 235, 231, 236, 235, 231, 236, 235, 231, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 242, 241, 237, 243, 242, 238, 241, 241, 239, 242, 242, 240, 242, 242, 240, 242, 242, 240, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 246, 245, 244, 246, 245, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 244, 246, 242, 243, 245, 242, 243, 245, 241, 242, 244, 240, 241, 243, 239, 240, 242, 239, 240, 242, 239, 240, 242, 238, 239, 241, 237, 238, 240, 236, 237, 239, 234, 235, 237, 231, 232, 234, 228, 229, 231, 225, 226, 228, 223, 224, 226, 217, 218, 220, 215, 216, 218, 212, 212, 212, 208, 208, 208, 205, 205, 205, 202, 202, 202, 200, 200, 200, 199, 199, 199, 196, 195, 193, 193, 192, 190, 190, 189, 187, 188, 187, 185, 187, 186, 184, 185, 184, 182, 184, 180, 177, 181, 177, 174, 182, 178, 177, 179, 175, 176, 176, 172, 173, 173, 169, 170, 172, 166, 166, 168, 162, 162, 163, 157, 157, 159, 153, 153, 159, 153, 153, 157, 151, 151, 156, 148, 146, 153, 145, 143, 150, 142, 140, 148, 140, 138, 147, 139, 137, 146, 138, 136, 142, 134, 132, 142, 134, 132, 143, 135, 133, 144, 136, 134, 146, 138, 136, 149, 141, 139, 151, 143, 141, 153, 145, 143, 159, 151, 149, 159, 151, 149, 160, 152, 150, 159, 151, 149, 158, 150, 148, 157, 149, 147, 155, 147, 145, 154, 146, 144, 158, 147, 145, 158, 147, 145, 159, 148, 144, 161, 150, 146, 164, 153, 149, 167, 158, 153, 170, 161, 156, 172, 163, 158, 174, 167, 161, 176, 169, 163, 176, 171, 167, 178, 173, 169, 181, 176, 173, 184, 179, 176, 185, 181, 180, 186, 182, 181, 185, 181, 182, 185, 183, 184, 189, 187, 188, 192, 190, 191, 196, 194, 197, 201, 201, 203, 209, 209, 211, 214, 214, 216, 220, 221, 225, 222, 223, 227, 225, 228, 233, 230, 233, 238, 232, 237, 243, 234, 239, 245, 235, 240, 246, 235, 240, 244, 239, 242, 247, 239, 243, 246, 239, 243, 246, 240, 244, 247, 240, 244, 247, 240, 244, 247, 241, 245, 248, 241, 245, 248, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 246, 247, 249, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 250, 251, 253, 251, 252, 254, 251, 252, 254, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 250, 254, 249, 250, 254, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 242, 245, 250, 242, 246, 249, 242, 246, 249, 243, 244, 248, 243, 244, 248, 242, 243, 247, 241, 242, 246, 240, 241, 243, 238, 239, 241, 237, 237, 239, 235, 235, 237, 234, 234, 236, 233, 233, 235, 227, 227, 227, 233, 233, 231, 236, 236, 234, 231, 231, 229, 222, 222, 220, 217, 217, 215, 221, 221, 219, 227, 227, 225, 231, 231, 229, 237, 237, 235, 239, 239, 237, 233, 233, 231, 222, 222, 220, 216, 216, 214, 218, 218, 216, 223, 223, 221, 222, 221, 217, 222, 221, 216, 224, 221, 216, 223, 220, 215, 223, 220, 215, 223, 220, 215, 222, 219, 214, 222, 219, 214, 221, 216, 212, 221, 216, 212, 221, 216, 212, 222, 217, 213, 222, 217, 213, 222, 217, 213, 225, 217, 214, 223, 218, 214, 224, 219, 213, 223, 220, 213, 224, 221, 214, 225, 222, 215, 226, 223, 216, 226, 223, 216, 227, 224, 217, 227, 224, 217, 232, 229, 222, 228, 225, 218, 225, 222, 215, 228, 225, 218, 234, 231, 224, 238, 235, 228, 238, 235, 228, 236, 233, 226, 233, 230, 223, 232, 229, 222, 231, 228, 223, 230, 227, 222, 231, 228, 223, 232, 229, 224, 231, 230, 225, 233, 232, 227, 232, 231, 227, 225, 224, 220, 229, 228, 224, 240, 239, 235, 240, 241, 236, 231, 232, 227, 231, 231, 229, 240, 240, 238, 249, 248, 246, 246, 245, 243, 243, 242, 240, 239, 238, 236, 235, 234, 232, 234, 233, 231, 233, 232, 230, 233, 232, 230, 235, 234, 232, 233, 232, 230, 231, 230, 228, 234, 233, 231, 238, 237, 235, 240, 239, 237, 239, 238, 236, 237, 236, 234, 231, 230, 228, 228, 227, 225, 233, 232, 230, 243, 242, 240, 242, 241, 239, 233, 232, 230, 230, 229, 227, 236, 235, 233, 235, 234, 232, 233, 232, 230, 233, 232, 230, 234, 233, 231, 237, 236, 234, 237, 236, 234, 236, 235, 233, 234, 233, 231, 234, 233, 231, 232, 231, 229, 230, 229, 227, 231, 230, 228, 234, 233, 231, 235, 234, 232, 234, 233, 231, 233, 232, 230, 231, 230, 228, 231, 230, 228, 230, 229, 227, 230, 229, 227, 230, 229, 227, 229, 228, 226, 229, 228, 226, 229, 228, 226, 231, 227, 226, 231, 227, 226, 231, 227, 226, 230, 226, 225, 229, 225, 224, 228, 224, 223, 228, 224, 223, 227, 223, 222, 228, 224, 223, 228, 224, 223, 227, 223, 222, 226, 222, 221, 225, 221, 220, 224, 220, 219, 223, 219, 218, 223, 219, 218, 225, 220, 217, 225, 220, 217, 224, 219, 216, 224, 219, 216, 225, 217, 215, 225, 217, 215, 224, 216, 214, 224, 216, 214, 224, 216, 214, 223, 215, 213, 223, 213, 212, 223, 213, 212, 223, 213, 212, 223, 213, 212, 224, 214, 213, 224, 216, 214, 225, 217, 215, 225, 217, 215, 225, 217, 215, 225, 217, 215, 225, 217, 215, 225, 217, 215, 225, 217, 215, 225, 217, 215, 222, 214, 212, 222, 214, 212, 222, 214, 212, 222, 214, 212, 223, 215, 213, 224, 216, 214, 226, 218, 216, 227, 219, 217, 225, 217, 215, 225, 217, 215, 225, 217, 215, 225, 217, 215, 225, 217, 215, 225, 217, 215, 223, 218, 215, 223, 218, 215, 225, 220, 217, 225, 220, 217, 226, 221, 218, 227, 222, 219, 226, 222, 219, 225, 221, 218, 224, 220, 217, 224, 220, 217, 227, 222, 219, 227, 222, 219, 227, 222, 219, 227, 222, 219, 228, 223, 220, 228, 223, 220, 228, 223, 220, 228, 223, 220, 228, 223, 220, 228, 223, 220, 229, 224, 221, 229, 224, 221, 229, 224, 221, 230, 225, 222, 230, 225, 222, 230, 225, 222, 230, 225, 222, 230, 225, 222, 230, 225, 222, 230, 225, 222, 230, 225, 222, 230, 225, 222, 230, 225, 222, 230, 225, 222, 230, 225, 222, 230, 225, 222, 230, 225, 222, 230, 225, 222, 230, 225, 222, 230, 225, 222, 230, 225, 222, 229, 225, 222, 227, 226, 222, 226, 227, 222, 226, 225, 221, 226, 225, 221, 225, 224, 220, 224, 223, 219, 226, 222, 219, 226, 223, 218, 226, 221, 217, 225, 220, 216, 226, 218, 215, 225, 218, 212, 225, 216, 211, 224, 215, 210, 223, 214, 209, 222, 213, 206, 223, 214, 205, 223, 215, 204, 223, 213, 203, 222, 212, 200, 223, 211, 197, 224, 211, 195, 225, 209, 194, 225, 209, 193, 226, 209, 193, 226, 209, 193, 226, 209, 193, 226, 209, 193, 226, 209, 193, 225, 209, 193, 225, 209, 194, 225, 209, 194, 226, 210, 195, 224, 211, 195, 223, 210, 194, 222, 209, 193, 222, 209, 193, 223, 210, 194, 224, 211, 195, 224, 211, 195, 226, 213, 197, 224, 211, 195, 222, 209, 193, 221, 208, 192, 223, 210, 194, 226, 213, 197, 228, 215, 199, 230, 217, 201, 226, 213, 197, 226, 213, 197, 227, 211, 196, 226, 210, 195, 227, 211, 196, 227, 211, 196, 228, 212, 197, 229, 213, 198, 226, 212, 199, 229, 215, 202, 231, 219, 207, 228, 218, 208, 226, 216, 207, 226, 217, 208, 229, 222, 214, 233, 226, 218, 232, 223, 216, 231, 222, 213, 228, 219, 210, 227, 218, 209, 227, 218, 209, 229, 220, 211, 232, 223, 214, 234, 225, 216, 245, 238, 228, 242, 235, 225, 236, 229, 219, 231, 224, 214, 227, 220, 210, 227, 220, 210, 227, 223, 212, 230, 226, 215, 230, 223, 215, 231, 224, 216, 231, 224, 216, 228, 221, 213, 227, 220, 212, 231, 224, 216, 237, 233, 224, 243, 239, 230, 241, 236, 230, 237, 232, 226, 232, 227, 221, 232, 227, 221, 233, 230, 225, 235, 232, 227, 234, 231, 226, 232, 229, 224, 232, 229, 224, 233, 230, 225, 233, 230, 225, 233, 230, 225, 234, 231, 226, 234, 231, 226, 234, 231, 226, 235, 232, 227, 234, 231, 226, 234, 231, 226, 235, 232, 227, 235, 232, 227, 236, 233, 228, 236, 233, 228, 236, 233, 228, 236, 233, 228, 235, 234, 230, 235, 234, 230, 235, 234, 230, 235, 234, 230, 236, 235, 231, 236, 235, 231, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 242, 241, 237, 243, 242, 238, 243, 242, 238, 242, 242, 240, 242, 242, 240, 242, 242, 240, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 246, 245, 244, 246, 245, 243, 245, 244, 243, 245, 244, 244, 245, 247, 244, 245, 247, 243, 244, 246, 243, 244, 246, 242, 243, 245, 241, 242, 244, 240, 241, 243, 240, 241, 243, 239, 240, 242, 239, 240, 242, 238, 239, 241, 236, 237, 239, 233, 234, 236, 230, 231, 233, 227, 228, 230, 226, 227, 229, 223, 224, 226, 221, 222, 224, 218, 218, 220, 214, 214, 214, 210, 210, 210, 208, 208, 208, 206, 206, 206, 205, 205, 205, 200, 198, 199, 197, 196, 194, 194, 193, 191, 192, 191, 189, 191, 190, 188, 189, 188, 186, 187, 183, 182, 185, 181, 180, 183, 179, 180, 181, 177, 178, 177, 173, 174, 175, 171, 172, 174, 168, 168, 171, 165, 165, 166, 160, 160, 162, 156, 156, 160, 154, 154, 158, 152, 152, 156, 148, 146, 152, 144, 142, 148, 140, 138, 146, 138, 136, 144, 136, 134, 143, 135, 133, 139, 131, 129, 140, 132, 130, 141, 133, 131, 142, 134, 132, 145, 137, 135, 148, 140, 138, 151, 143, 141, 153, 145, 143, 158, 150, 148, 159, 151, 149, 159, 151, 149, 159, 151, 149, 159, 151, 149, 157, 149, 147, 156, 148, 146, 156, 146, 145, 159, 148, 146, 159, 148, 146, 160, 149, 145, 162, 151, 147, 164, 153, 149, 167, 156, 152, 169, 160, 155, 171, 162, 157, 173, 166, 160, 174, 167, 161, 174, 169, 165, 177, 172, 168, 179, 174, 171, 182, 177, 174, 183, 179, 178, 184, 180, 179, 182, 178, 179, 184, 180, 181, 186, 184, 185, 189, 187, 188, 193, 191, 194, 198, 196, 199, 204, 204, 206, 210, 210, 212, 217, 218, 222, 219, 220, 224, 222, 225, 230, 227, 230, 235, 230, 235, 241, 232, 237, 243, 233, 238, 244, 234, 239, 243, 237, 240, 245, 237, 241, 244, 238, 242, 245, 238, 242, 245, 239, 243, 246, 240, 244, 247, 240, 244, 247, 240, 244, 247, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 246, 247, 249, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 250, 251, 253, 251, 252, 254, 251, 252, 254, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 248, 247, 252, 248, 247, 252, 248, 247, 252, 248, 247, 252, 248, 247, 252, 248, 247, 252, 248, 247, 252, 247, 248, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 250, 254, 249, 250, 254, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 247, 250, 242, 246, 249, 244, 245, 249, 244, 245, 249, 243, 244, 248, 242, 243, 247, 241, 242, 244, 240, 241, 243, 239, 239, 241, 238, 238, 240, 237, 237, 239, 236, 236, 238, 234, 234, 234, 232, 232, 232, 228, 228, 228, 224, 224, 224, 222, 222, 222, 224, 224, 224, 229, 229, 229, 232, 232, 232, 236, 236, 236, 233, 233, 233, 228, 228, 228, 222, 222, 222, 218, 218, 218, 218, 218, 218, 220, 220, 220, 223, 223, 221, 223, 222, 218, 224, 221, 216, 224, 221, 216, 224, 221, 216, 223, 220, 215, 223, 220, 215, 224, 219, 215, 224, 219, 215, 221, 216, 212, 221, 216, 212, 222, 217, 213, 222, 217, 213, 225, 217, 214, 225, 217, 214, 225, 217, 214, 223, 218, 214, 225, 220, 214, 224, 221, 214, 224, 221, 214, 225, 222, 215, 226, 223, 216, 227, 224, 217, 227, 224, 217, 228, 225, 218, 228, 225, 218, 227, 224, 217, 229, 226, 219, 234, 231, 224, 240, 237, 230, 241, 238, 231, 236, 233, 226, 231, 228, 221, 230, 227, 220, 230, 227, 220, 230, 227, 222, 231, 228, 223, 231, 228, 223, 232, 229, 224, 231, 230, 225, 232, 231, 226, 229, 228, 224, 228, 227, 223, 236, 235, 231, 244, 243, 239, 237, 238, 233, 226, 227, 222, 232, 232, 230, 247, 247, 245, 250, 249, 247, 246, 245, 243, 241, 240, 238, 236, 235, 233, 232, 231, 229, 232, 231, 229, 232, 231, 229, 233, 232, 230, 230, 229, 227, 232, 231, 229, 236, 235, 233, 240, 239, 237, 242, 241, 239, 240, 239, 237, 236, 235, 233, 232, 231, 229, 231, 227, 226, 229, 225, 224, 236, 232, 231, 246, 242, 241, 244, 240, 239, 233, 229, 228, 230, 226, 225, 237, 233, 232, 235, 231, 230, 235, 231, 230, 235, 231, 230, 237, 233, 232, 239, 235, 234, 239, 235, 234, 237, 233, 232, 234, 230, 229, 232, 231, 229, 231, 230, 228, 230, 229, 227, 232, 231, 229, 234, 233, 231, 235, 234, 232, 234, 233, 231, 232, 231, 229, 230, 229, 227, 230, 229, 227, 230, 229, 227, 230, 229, 227, 229, 228, 226, 229, 228, 226, 229, 228, 226, 228, 227, 225, 231, 227, 226, 231, 227, 226, 230, 226, 225, 229, 225, 224, 228, 224, 223, 228, 224, 223, 227, 223, 222, 227, 223, 222, 227, 223, 222, 227, 223, 222, 226, 222, 221, 226, 222, 221, 225, 221, 220, 224, 220, 219, 224, 220, 219, 224, 220, 219, 224, 220, 217, 224, 220, 217, 224, 220, 217, 223, 219, 216, 224, 219, 216, 224, 219, 216, 224, 219, 216, 224, 219, 216, 223, 218, 215, 222, 217, 214, 224, 216, 214, 223, 215, 213, 223, 215, 213, 224, 216, 214, 224, 216, 214, 225, 217, 215, 226, 218, 216, 224, 219, 216, 224, 219, 216, 224, 219, 216, 224, 219, 216, 224, 219, 216, 224, 219, 216, 224, 219, 216, 222, 217, 214, 221, 216, 213, 221, 216, 213, 221, 216, 213, 222, 217, 214, 223, 218, 215, 225, 220, 217, 226, 221, 218, 227, 219, 217, 227, 219, 217, 227, 219, 217, 227, 219, 217, 225, 220, 217, 225, 220, 217, 225, 220, 217, 225, 220, 217, 226, 221, 218, 226, 221, 218, 226, 222, 219, 227, 223, 220, 227, 223, 220, 226, 222, 219, 225, 221, 218, 225, 221, 218, 226, 221, 218, 227, 222, 219, 227, 222, 219, 228, 223, 220, 228, 223, 220, 229, 224, 221, 229, 224, 221, 229, 224, 221, 229, 224, 221, 229, 224, 221, 229, 224, 221, 230, 225, 222, 230, 225, 222, 230, 225, 222, 231, 226, 223, 231, 226, 223, 230, 225, 222, 230, 225, 222, 230, 225, 222, 230, 225, 222, 230, 225, 222, 230, 225, 222, 230, 225, 222, 230, 225, 222, 230, 225, 222, 230, 225, 222, 230, 225, 222, 230, 225, 222, 230, 225, 222, 230, 225, 222, 230, 225, 222, 229, 225, 222, 227, 226, 221, 226, 225, 220, 225, 224, 219, 225, 224, 219, 225, 222, 217, 225, 222, 217, 225, 220, 216, 224, 219, 213, 228, 221, 215, 227, 220, 214, 228, 219, 214, 226, 217, 212, 226, 215, 211, 225, 214, 208, 224, 213, 207, 224, 213, 207, 222, 212, 203, 222, 212, 202, 223, 210, 201, 223, 211, 199, 223, 209, 196, 222, 209, 193, 223, 207, 192, 224, 207, 191, 225, 208, 192, 225, 208, 190, 226, 207, 190, 225, 208, 190, 225, 208, 190, 225, 208, 190, 225, 208, 192, 224, 208, 192, 225, 209, 193, 225, 209, 193, 224, 208, 192, 223, 207, 191, 223, 207, 191, 224, 208, 192, 225, 209, 193, 225, 209, 193, 225, 212, 196, 224, 211, 195, 223, 210, 194, 222, 209, 193, 222, 209, 193, 224, 211, 195, 227, 214, 198, 229, 216, 200, 228, 214, 201, 227, 213, 200, 228, 212, 199, 227, 211, 198, 227, 211, 198, 227, 211, 198, 228, 212, 199, 229, 213, 200, 225, 211, 200, 230, 216, 205, 232, 219, 210, 228, 218, 208, 224, 214, 205, 223, 214, 207, 227, 220, 214, 233, 226, 218, 234, 225, 218, 232, 223, 216, 230, 221, 214, 229, 220, 213, 228, 219, 212, 228, 219, 212, 228, 221, 213, 229, 222, 214, 234, 227, 219, 241, 234, 226, 245, 238, 230, 241, 234, 226, 229, 225, 216, 222, 218, 209, 224, 220, 211, 229, 225, 216, 228, 221, 213, 232, 225, 217, 235, 228, 220, 233, 226, 218, 229, 222, 214, 228, 221, 213, 230, 226, 217, 235, 231, 222, 240, 235, 229, 242, 237, 231, 242, 237, 231, 238, 233, 227, 231, 228, 223, 229, 226, 221, 230, 227, 222, 233, 230, 225, 232, 229, 224, 233, 230, 225, 233, 230, 225, 233, 230, 225, 234, 231, 226, 234, 231, 226, 234, 231, 226, 235, 232, 227, 234, 231, 226, 234, 231, 226, 235, 232, 227, 235, 232, 227, 236, 233, 228, 236, 233, 228, 236, 233, 228, 236, 233, 228, 235, 234, 230, 235, 234, 230, 236, 235, 231, 236, 235, 231, 236, 235, 231, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 242, 242, 240, 242, 242, 240, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 246, 245, 244, 246, 245, 245, 246, 248, 245, 246, 248, 244, 245, 247, 243, 244, 246, 243, 244, 246, 242, 243, 245, 241, 242, 244, 241, 242, 244, 240, 241, 243, 240, 241, 243, 239, 240, 242, 238, 239, 241, 235, 236, 238, 232, 233, 235, 230, 231, 233, 228, 229, 231, 222, 226, 229, 220, 224, 225, 218, 219, 221, 214, 215, 217, 210, 211, 213, 208, 209, 211, 206, 207, 209, 205, 207, 206, 202, 202, 202, 199, 199, 199, 195, 195, 195, 193, 193, 193, 192, 192, 192, 190, 190, 188, 188, 187, 185, 185, 184, 182, 183, 179, 180, 180, 176, 177, 177, 173, 174, 176, 172, 173, 175, 169, 171, 172, 166, 168, 167, 161, 161, 163, 157, 157, 160, 154, 154, 158, 152, 152, 156, 148, 146, 152, 144, 142, 148, 140, 138, 144, 136, 134, 143, 135, 133, 142, 134, 132, 140, 132, 130, 140, 132, 130, 141, 133, 131, 143, 135, 133, 145, 137, 135, 148, 140, 138, 151, 143, 141, 153, 145, 143, 157, 149, 147, 158, 150, 148, 159, 151, 149, 159, 151, 149, 159, 151, 149, 158, 150, 148, 157, 149, 147, 157, 147, 146, 159, 148, 146, 162, 148, 147, 160, 149, 145, 162, 151, 147, 164, 153, 149, 167, 156, 152, 169, 160, 153, 170, 161, 154, 172, 165, 159, 173, 166, 160, 173, 168, 164, 175, 170, 166, 177, 172, 169, 179, 174, 171, 181, 175, 175, 182, 176, 176, 181, 177, 176, 184, 180, 179, 187, 183, 182, 190, 186, 185, 191, 189, 190, 196, 194, 195, 202, 202, 204, 208, 208, 210, 213, 214, 218, 216, 217, 221, 219, 222, 227, 225, 228, 233, 228, 233, 239, 230, 235, 241, 232, 237, 243, 232, 237, 241, 235, 238, 243, 235, 239, 242, 236, 240, 243, 237, 241, 244, 238, 242, 245, 239, 243, 246, 240, 244, 247, 240, 244, 247, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 246, 247, 249, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 250, 251, 253, 251, 252, 254, 251, 252, 254, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 248, 247, 252, 248, 247, 252, 248, 247, 252, 248, 247, 252, 248, 247, 252, 248, 247, 252, 248, 247, 252, 247, 248, 252, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 250, 254, 249, 250, 254, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 247, 250, 243, 247, 250, 244, 245, 249, 244, 245, 249, 243, 244, 248, 243, 244, 248, 242, 243, 245, 241, 242, 244, 241, 241, 243, 240, 240, 242, 239, 239, 241, 238, 238, 240, 238, 238, 238, 231, 231, 231, 223, 223, 223, 221, 221, 221, 226, 226, 226, 232, 232, 232, 234, 234, 234, 234, 234, 234, 229, 229, 229, 225, 225, 225, 221, 221, 221, 221, 221, 221, 224, 224, 224, 224, 224, 224, 221, 221, 221, 217, 217, 215, 224, 220, 217, 224, 221, 216, 224, 221, 216, 224, 221, 216, 223, 220, 215, 223, 220, 215, 223, 218, 214, 223, 218, 214, 222, 217, 213, 222, 217, 213, 223, 218, 214, 223, 218, 214, 226, 218, 215, 226, 218, 215, 226, 218, 215, 224, 219, 215, 225, 220, 214, 224, 221, 214, 225, 222, 215, 226, 223, 216, 226, 223, 216, 227, 224, 217, 228, 225, 218, 228, 225, 218, 226, 223, 216, 229, 226, 219, 233, 230, 223, 238, 235, 228, 241, 238, 231, 238, 235, 228, 233, 230, 223, 228, 225, 218, 230, 227, 220, 231, 228, 221, 231, 228, 223, 232, 229, 224, 232, 229, 224, 233, 230, 225, 231, 230, 225, 231, 230, 225, 224, 223, 219, 240, 239, 235, 245, 244, 240, 234, 233, 229, 228, 229, 224, 236, 237, 232, 243, 243, 241, 243, 243, 241, 245, 244, 242, 242, 241, 239, 237, 236, 234, 233, 232, 230, 231, 230, 228, 231, 230, 228, 233, 232, 230, 235, 234, 232, 228, 227, 225, 234, 233, 231, 242, 241, 239, 245, 244, 242, 242, 241, 239, 236, 235, 233, 231, 230, 228, 229, 228, 226, 230, 226, 225, 234, 230, 229, 240, 236, 235, 244, 240, 239, 240, 236, 235, 232, 228, 227, 230, 226, 225, 234, 230, 229, 234, 230, 229, 234, 230, 229, 235, 231, 230, 237, 233, 232, 240, 236, 235, 239, 235, 234, 236, 232, 231, 233, 229, 228, 231, 230, 228, 230, 229, 227, 230, 229, 227, 232, 231, 229, 235, 234, 232, 235, 234, 232, 233, 232, 230, 230, 229, 227, 230, 229, 227, 230, 229, 227, 230, 229, 227, 229, 228, 226, 229, 228, 226, 228, 227, 225, 228, 227, 225, 228, 227, 225, 231, 227, 226, 230, 226, 225, 230, 226, 225, 229, 225, 224, 228, 224, 223, 227, 223, 222, 227, 223, 222, 226, 222, 221, 226, 222, 221, 226, 222, 221, 226, 222, 221, 226, 222, 221, 225, 221, 220, 225, 221, 220, 225, 221, 220, 225, 221, 220, 224, 220, 217, 224, 220, 217, 224, 220, 217, 224, 220, 217, 225, 220, 217, 225, 220, 217, 225, 220, 217, 225, 220, 217, 224, 219, 216, 224, 219, 216, 225, 217, 215, 224, 216, 214, 224, 216, 214, 225, 217, 215, 226, 218, 216, 226, 218, 216, 224, 219, 216, 224, 219, 216, 224, 219, 216, 224, 219, 216, 224, 219, 216, 224, 219, 216, 224, 219, 216, 224, 219, 216, 223, 218, 215, 222, 217, 214, 222, 217, 214, 222, 217, 214, 223, 218, 215, 224, 219, 216, 226, 221, 218, 227, 222, 219, 228, 220, 218, 228, 220, 218, 228, 220, 218, 228, 220, 218, 226, 221, 218, 226, 221, 218, 226, 221, 218, 226, 221, 218, 226, 221, 218, 227, 222, 219, 227, 223, 220, 228, 224, 221, 228, 224, 221, 227, 223, 220, 226, 222, 219, 225, 221, 218, 226, 221, 218, 226, 221, 218, 227, 222, 219, 228, 223, 220, 229, 224, 221, 229, 224, 221, 230, 225, 222, 230, 225, 222, 230, 225, 222, 230, 225, 222, 230, 225, 222, 230, 225, 222, 231, 226, 223, 231, 226, 223, 232, 227, 224, 232, 227, 224, 231, 226, 223, 231, 226, 223, 231, 226, 223, 231, 226, 223, 231, 226, 223, 231, 226, 223, 231, 226, 223, 231, 226, 223, 230, 225, 222, 230, 225, 222, 230, 225, 222, 230, 225, 222, 230, 225, 222, 230, 225, 222, 230, 225, 222, 229, 225, 222, 228, 225, 220, 226, 225, 220, 225, 224, 219, 223, 222, 217, 224, 221, 216, 223, 220, 215, 223, 218, 212, 223, 218, 212, 227, 220, 214, 228, 219, 214, 227, 218, 213, 227, 216, 210, 225, 214, 208, 224, 213, 207, 225, 212, 206, 225, 212, 204, 221, 211, 201, 220, 210, 198, 222, 210, 198, 221, 209, 195, 221, 208, 192, 222, 206, 191, 223, 206, 190, 223, 206, 188, 224, 207, 189, 224, 207, 189, 225, 206, 189, 225, 206, 189, 224, 207, 189, 224, 207, 189, 224, 207, 191, 224, 207, 191, 225, 209, 193, 224, 208, 192, 223, 207, 191, 222, 206, 190, 222, 206, 190, 223, 207, 191, 224, 208, 192, 225, 209, 193, 223, 210, 194, 224, 211, 195, 225, 212, 196, 224, 211, 195, 222, 209, 193, 222, 209, 193, 225, 212, 196, 228, 215, 199, 229, 215, 202, 228, 214, 201, 229, 213, 200, 228, 212, 199, 227, 211, 198, 227, 211, 198, 228, 212, 199, 228, 212, 199, 226, 212, 201, 229, 215, 204, 231, 218, 209, 227, 217, 208, 224, 213, 207, 223, 214, 207, 226, 219, 213, 231, 224, 218, 234, 225, 218, 233, 224, 217, 232, 223, 216, 230, 221, 214, 229, 220, 213, 229, 220, 213, 228, 221, 213, 228, 221, 213, 227, 220, 212, 237, 230, 222, 246, 239, 231, 245, 238, 230, 234, 230, 221, 226, 222, 213, 225, 221, 212, 227, 223, 214, 228, 221, 213, 233, 226, 218, 237, 230, 222, 236, 229, 221, 232, 225, 217, 228, 221, 213, 227, 223, 214, 229, 225, 216, 236, 231, 225, 241, 236, 230, 245, 240, 234, 241, 236, 230, 233, 230, 225, 228, 225, 220, 229, 226, 221, 233, 230, 225, 232, 229, 224, 233, 230, 225, 233, 230, 225, 233, 230, 225, 234, 231, 226, 234, 231, 226, 234, 231, 226, 235, 232, 227, 234, 231, 226, 234, 231, 226, 235, 232, 227, 235, 232, 227, 236, 233, 228, 236, 233, 228, 236, 233, 228, 236, 233, 228, 235, 234, 230, 236, 235, 231, 236, 235, 231, 236, 235, 231, 237, 236, 232, 237, 236, 232, 237, 236, 232, 238, 237, 233, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 242, 241, 237, 243, 242, 238, 243, 242, 238, 243, 242, 238, 244, 243, 239, 244, 243, 239, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 246, 245, 245, 246, 248, 245, 246, 248, 244, 245, 247, 243, 244, 246, 243, 244, 246, 242, 243, 245, 241, 242, 244, 241, 242, 244, 240, 241, 243, 240, 241, 243, 239, 240, 242, 238, 239, 241, 236, 237, 239, 234, 235, 237, 231, 232, 234, 230, 231, 233, 220, 224, 227, 218, 222, 225, 216, 217, 219, 212, 213, 215, 208, 209, 211, 206, 207, 209, 204, 205, 207, 203, 204, 206, 202, 202, 202, 200, 200, 200, 196, 196, 196, 194, 194, 194, 193, 193, 193, 191, 191, 191, 189, 188, 186, 186, 185, 183, 183, 179, 180, 181, 177, 178, 178, 174, 175, 176, 172, 173, 176, 170, 172, 173, 167, 169, 168, 162, 162, 165, 159, 159, 161, 155, 155, 159, 153, 153, 157, 149, 147, 153, 145, 143, 149, 141, 139, 147, 139, 137, 145, 137, 135, 144, 136, 134, 143, 135, 133, 144, 136, 134, 144, 136, 134, 145, 137, 135, 147, 139, 137, 150, 142, 140, 152, 144, 142, 154, 146, 144, 156, 148, 146, 157, 149, 147, 158, 150, 148, 159, 151, 149, 159, 151, 149, 158, 150, 148, 157, 149, 147, 158, 148, 147, 160, 149, 147, 162, 148, 147, 161, 150, 146, 162, 151, 147, 164, 153, 149, 166, 155, 151, 168, 159, 152, 169, 160, 153, 171, 164, 158, 172, 165, 159, 171, 166, 162, 173, 168, 164, 175, 170, 167, 177, 172, 169, 178, 172, 172, 179, 173, 173, 181, 177, 176, 184, 180, 179, 187, 183, 182, 189, 185, 184, 192, 188, 189, 195, 193, 194, 201, 201, 203, 206, 206, 208, 210, 211, 215, 213, 214, 218, 216, 219, 224, 222, 225, 230, 226, 231, 237, 229, 234, 240, 230, 235, 241, 230, 235, 241, 233, 236, 241, 234, 238, 241, 234, 238, 241, 236, 240, 243, 237, 241, 244, 238, 242, 245, 239, 243, 246, 240, 244, 247, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 246, 247, 249, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 250, 251, 253, 251, 252, 254, 251, 252, 254, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 248, 247, 252, 248, 247, 252, 248, 247, 252, 248, 247, 252, 248, 247, 252, 248, 247, 252, 248, 247, 252, 247, 248, 252, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 250, 254, 249, 250, 254, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 247, 250, 243, 247, 250, 244, 245, 249, 244, 245, 249, 243, 244, 248, 243, 244, 248, 242, 243, 245, 241, 242, 244, 241, 241, 243, 241, 241, 243, 240, 240, 242, 240, 240, 242, 235, 235, 235, 231, 231, 231, 228, 228, 228, 229, 229, 229, 232, 232, 232, 234, 234, 234, 233, 233, 233, 232, 232, 232, 223, 223, 223, 222, 222, 222, 221, 221, 221, 223, 223, 223, 225, 225, 225, 225, 225, 225, 221, 221, 221, 217, 217, 215, 224, 221, 216, 224, 221, 214, 223, 220, 213, 223, 220, 213, 222, 219, 212, 222, 219, 212, 223, 218, 212, 223, 218, 212, 224, 219, 213, 224, 219, 213, 224, 219, 213, 224, 219, 213, 227, 220, 214, 227, 220, 214, 227, 220, 214, 226, 221, 215, 225, 220, 214, 224, 221, 214, 225, 222, 215, 226, 223, 216, 227, 224, 217, 227, 224, 217, 228, 225, 218, 228, 225, 218, 228, 225, 218, 232, 229, 222, 237, 234, 227, 238, 235, 228, 236, 233, 226, 233, 230, 223, 230, 227, 220, 229, 226, 219, 232, 229, 222, 232, 229, 222, 233, 230, 225, 233, 230, 225, 233, 230, 225, 233, 230, 225, 230, 229, 224, 229, 228, 223, 235, 234, 230, 242, 241, 237, 239, 238, 234, 229, 228, 224, 230, 231, 226, 243, 244, 239, 248, 248, 246, 242, 242, 240, 238, 237, 233, 236, 235, 231, 233, 232, 228, 231, 230, 226, 231, 230, 226, 232, 231, 227, 234, 233, 229, 236, 235, 231, 230, 229, 225, 239, 238, 234, 247, 246, 242, 245, 244, 240, 237, 236, 232, 229, 228, 224, 229, 228, 224, 231, 230, 226, 231, 227, 224, 240, 236, 233, 246, 242, 239, 241, 237, 234, 234, 230, 227, 232, 228, 225, 232, 228, 225, 231, 227, 224, 233, 229, 226, 233, 229, 226, 235, 231, 228, 238, 234, 231, 240, 236, 233, 239, 235, 232, 236, 232, 229, 232, 228, 225, 230, 229, 227, 230, 229, 227, 230, 229, 227, 233, 232, 230, 235, 234, 232, 235, 234, 232, 232, 231, 229, 229, 228, 226, 230, 229, 227, 230, 229, 227, 229, 228, 226, 229, 228, 226, 229, 228, 226, 228, 227, 225, 228, 227, 225, 228, 227, 225, 230, 226, 225, 230, 226, 225, 229, 225, 224, 229, 225, 224, 228, 224, 223, 227, 223, 222, 226, 222, 221, 226, 222, 221, 226, 222, 221, 226, 222, 221, 226, 222, 221, 225, 221, 220, 225, 221, 220, 225, 221, 220, 225, 221, 220, 225, 221, 220, 224, 220, 217, 224, 220, 217, 224, 220, 217, 224, 220, 217, 225, 221, 218, 225, 221, 218, 225, 221, 218, 225, 221, 218, 225, 220, 217, 225, 220, 217, 224, 219, 216, 223, 218, 215, 223, 218, 215, 224, 219, 216, 227, 219, 217, 227, 219, 217, 223, 218, 215, 223, 218, 215, 223, 218, 215, 223, 218, 215, 223, 218, 215, 223, 218, 215, 223, 218, 215, 223, 218, 215, 224, 219, 216, 223, 218, 215, 223, 218, 215, 223, 218, 215, 224, 219, 216, 225, 220, 217, 227, 222, 219, 228, 223, 220, 229, 221, 219, 229, 221, 219, 229, 221, 219, 229, 221, 219, 227, 222, 219, 227, 222, 219, 227, 222, 219, 227, 222, 219, 227, 222, 219, 228, 223, 220, 228, 224, 221, 228, 224, 221, 228, 224, 221, 228, 224, 221, 227, 223, 220, 226, 222, 219, 226, 221, 218, 226, 221, 218, 227, 222, 219, 228, 223, 220, 229, 224, 221, 230, 225, 222, 231, 226, 223, 231, 226, 223, 230, 225, 222, 230, 225, 222, 231, 226, 223, 231, 226, 223, 231, 226, 223, 232, 227, 224, 232, 227, 224, 232, 227, 224, 231, 226, 223, 231, 226, 223, 231, 226, 223, 231, 226, 223, 231, 226, 223, 231, 226, 223, 231, 226, 223, 231, 226, 223, 230, 225, 222, 230, 225, 222, 230, 225, 222, 230, 225, 222, 230, 225, 222, 230, 225, 222, 230, 225, 222, 229, 225, 222, 228, 225, 220, 225, 225, 217, 226, 223, 216, 225, 222, 215, 224, 219, 213, 223, 218, 212, 224, 217, 211, 223, 216, 210, 226, 217, 210, 225, 216, 209, 225, 214, 208, 226, 213, 207, 225, 212, 206, 224, 211, 203, 224, 209, 202, 222, 209, 201, 220, 210, 200, 219, 209, 197, 221, 209, 197, 220, 208, 194, 220, 207, 191, 221, 205, 190, 222, 205, 189, 221, 204, 186, 224, 205, 188, 224, 206, 186, 224, 206, 186, 224, 206, 186, 224, 205, 188, 224, 205, 188, 223, 206, 188, 223, 206, 188, 225, 208, 190, 224, 207, 189, 223, 208, 189, 222, 207, 188, 222, 206, 190, 223, 207, 191, 223, 207, 191, 224, 208, 192, 220, 207, 190, 224, 211, 194, 227, 214, 198, 226, 213, 197, 223, 210, 194, 222, 209, 193, 222, 210, 194, 224, 212, 196, 230, 216, 203, 229, 215, 204, 229, 212, 202, 228, 211, 201, 227, 211, 198, 227, 211, 198, 228, 212, 199, 228, 212, 199, 228, 214, 203, 229, 215, 204, 228, 215, 206, 225, 215, 206, 224, 213, 207, 224, 215, 208, 225, 218, 212, 228, 221, 215, 234, 225, 218, 234, 225, 218, 233, 224, 217, 232, 223, 216, 231, 222, 215, 230, 221, 214, 229, 222, 214, 228, 221, 213, 227, 220, 212, 231, 224, 216, 235, 231, 222, 239, 235, 226, 240, 236, 227, 236, 232, 223, 229, 225, 216, 224, 220, 211, 228, 221, 213, 231, 224, 216, 234, 227, 219, 235, 228, 220, 233, 226, 218, 232, 225, 217, 230, 226, 217, 230, 226, 217, 231, 226, 220, 235, 230, 224, 239, 234, 228, 241, 236, 230, 238, 235, 230, 235, 232, 227, 232, 229, 224, 231, 228, 223, 232, 229, 224, 233, 230, 225, 233, 230, 225, 233, 230, 225, 234, 231, 226, 234, 231, 226, 234, 231, 226, 235, 232, 227, 234, 231, 226, 234, 231, 226, 235, 232, 227, 235, 232, 227, 236, 233, 228, 236, 233, 228, 236, 233, 228, 236, 233, 228, 236, 235, 231, 236, 235, 231, 236, 235, 231, 237, 236, 232, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 242, 241, 237, 243, 242, 238, 243, 242, 238, 244, 243, 239, 244, 243, 239, 244, 243, 239, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 246, 245, 245, 246, 248, 244, 245, 247, 244, 245, 247, 243, 244, 246, 242, 243, 245, 241, 242, 244, 241, 242, 244, 241, 242, 244, 240, 241, 243, 240, 241, 243, 239, 240, 242, 238, 239, 241, 237, 238, 240, 234, 235, 237, 232, 233, 235, 231, 232, 234, 222, 226, 229, 220, 224, 227, 217, 221, 224, 213, 217, 220, 209, 213, 216, 206, 210, 213, 206, 207, 209, 206, 207, 209, 201, 202, 204, 198, 199, 201, 195, 196, 198, 193, 194, 196, 193, 193, 193, 191, 191, 191, 188, 188, 188, 186, 184, 185, 185, 181, 182, 182, 178, 179, 180, 176, 177, 178, 174, 175, 178, 172, 174, 176, 170, 172, 171, 165, 165, 168, 162, 162, 164, 158, 158, 162, 156, 156, 161, 152, 153, 157, 148, 149, 154, 146, 144, 152, 144, 142, 150, 142, 140, 150, 142, 140, 149, 141, 139, 149, 141, 139, 148, 140, 138, 149, 141, 139, 150, 142, 140, 152, 144, 142, 154, 146, 144, 155, 147, 145, 156, 148, 146, 157, 149, 147, 158, 150, 148, 159, 151, 149, 159, 151, 149, 159, 151, 149, 158, 150, 148, 158, 148, 147, 161, 150, 148, 163, 149, 148, 163, 149, 146, 164, 150, 147, 164, 153, 147, 166, 155, 149, 167, 158, 151, 169, 160, 153, 170, 163, 157, 171, 164, 158, 172, 164, 161, 174, 166, 163, 173, 168, 165, 175, 170, 167, 176, 170, 170, 177, 171, 171, 181, 176, 173, 183, 178, 175, 186, 180, 180, 187, 183, 182, 190, 186, 187, 193, 191, 192, 198, 198, 200, 203, 203, 205, 208, 209, 213, 211, 212, 216, 214, 217, 222, 220, 223, 228, 224, 229, 235, 227, 232, 238, 229, 233, 242, 229, 234, 240, 232, 235, 240, 232, 236, 239, 233, 237, 240, 235, 239, 242, 236, 240, 243, 238, 242, 245, 239, 243, 246, 239, 243, 246, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 246, 247, 249, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 250, 251, 253, 251, 252, 254, 251, 252, 254, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 247, 246, 251, 246, 247, 251, 247, 246, 251, 246, 247, 251, 247, 246, 251, 246, 247, 251, 248, 247, 252, 247, 248, 252, 248, 247, 252, 247, 248, 252, 248, 247, 252, 247, 248, 252, 248, 247, 252, 247, 248, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 250, 254, 249, 250, 254, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 248, 253, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 247, 250, 243, 247, 250, 245, 246, 250, 244, 245, 249, 243, 244, 248, 243, 244, 248, 242, 243, 245, 241, 242, 244, 242, 242, 244, 241, 241, 243, 240, 240, 242, 240, 240, 242, 230, 230, 230, 233, 233, 233, 236, 236, 236, 237, 237, 237, 236, 236, 236, 233, 233, 233, 230, 230, 230, 229, 229, 229, 225, 225, 225, 225, 225, 225, 223, 223, 223, 222, 222, 222, 221, 221, 221, 221, 221, 219, 223, 223, 223, 226, 225, 223, 223, 220, 215, 223, 220, 213, 223, 220, 213, 222, 219, 212, 222, 219, 212, 222, 219, 212, 222, 217, 211, 222, 217, 211, 224, 219, 213, 225, 220, 214, 225, 220, 214, 225, 220, 214, 226, 221, 215, 226, 221, 215, 228, 221, 215, 226, 221, 215, 224, 221, 214, 225, 222, 215, 225, 222, 215, 226, 223, 216, 227, 224, 217, 228, 225, 218, 228, 225, 218, 228, 225, 218, 231, 228, 221, 235, 232, 225, 238, 235, 228, 236, 233, 226, 231, 228, 221, 228, 225, 218, 229, 226, 219, 233, 230, 223, 233, 230, 223, 234, 231, 224, 234, 231, 226, 235, 232, 227, 234, 231, 226, 233, 230, 225, 229, 228, 223, 228, 227, 222, 253, 252, 248, 233, 232, 228, 223, 222, 218, 233, 232, 228, 243, 242, 238, 242, 243, 238, 244, 243, 239, 248, 247, 243, 233, 232, 228, 232, 231, 227, 231, 230, 226, 230, 229, 225, 231, 230, 226, 233, 232, 228, 235, 234, 230, 237, 236, 232, 234, 233, 229, 243, 242, 238, 249, 248, 244, 244, 243, 239, 231, 230, 226, 224, 223, 219, 228, 227, 223, 235, 234, 230, 232, 228, 225, 245, 241, 238, 249, 245, 242, 239, 235, 232, 231, 227, 224, 232, 228, 225, 233, 229, 226, 229, 225, 222, 232, 228, 225, 233, 229, 226, 235, 231, 228, 238, 234, 231, 240, 236, 233, 239, 235, 232, 235, 231, 228, 232, 228, 225, 230, 229, 227, 229, 228, 226, 230, 229, 227, 233, 232, 230, 235, 234, 232, 235, 234, 232, 232, 231, 229, 229, 228, 226, 230, 229, 227, 229, 228, 226, 229, 228, 226, 229, 228, 226, 228, 227, 225, 228, 227, 225, 228, 227, 225, 228, 227, 225, 230, 226, 225, 230, 226, 223, 229, 225, 224, 229, 225, 222, 228, 224, 223, 227, 223, 222, 226, 222, 221, 226, 222, 221, 225, 221, 220, 225, 221, 220, 225, 221, 220, 225, 221, 220, 225, 221, 220, 225, 221, 220, 225, 221, 220, 225, 221, 220, 224, 220, 217, 224, 220, 217, 224, 220, 217, 225, 221, 218, 225, 221, 218, 226, 222, 219, 226, 222, 219, 226, 222, 219, 226, 221, 218, 225, 220, 217, 224, 219, 216, 223, 218, 215, 223, 218, 215, 224, 219, 216, 227, 219, 217, 228, 220, 218, 223, 218, 215, 223, 218, 215, 223, 218, 215, 223, 218, 215, 223, 218, 215, 223, 218, 215, 223, 218, 215, 223, 218, 215, 224, 219, 216, 224, 219, 216, 223, 218, 215, 224, 219, 216, 224, 219, 216, 226, 221, 218, 227, 222, 219, 228, 223, 220, 227, 222, 219, 227, 222, 219, 229, 221, 219, 227, 222, 219, 227, 222, 219, 227, 222, 219, 227, 222, 219, 227, 222, 219, 227, 222, 219, 228, 223, 220, 228, 224, 221, 229, 225, 222, 229, 225, 222, 228, 224, 221, 227, 223, 220, 226, 222, 219, 224, 220, 217, 225, 221, 218, 227, 222, 219, 227, 223, 220, 229, 224, 221, 229, 225, 222, 231, 226, 223, 231, 227, 224, 231, 226, 223, 230, 226, 223, 231, 226, 223, 230, 226, 223, 232, 227, 224, 231, 227, 224, 232, 227, 224, 232, 228, 225, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 231, 226, 223, 230, 225, 222, 230, 225, 222, 230, 225, 222, 230, 225, 222, 230, 225, 222, 230, 225, 221, 230, 225, 222, 230, 225, 221, 228, 225, 220, 225, 225, 217, 226, 223, 216, 224, 221, 214, 224, 219, 213, 222, 217, 211, 223, 216, 210, 223, 214, 207, 223, 214, 207, 224, 213, 207, 225, 212, 204, 224, 211, 203, 223, 209, 200, 222, 208, 199, 221, 207, 198, 221, 207, 196, 221, 209, 197, 221, 209, 195, 220, 208, 194, 220, 207, 191, 221, 205, 190, 221, 205, 189, 221, 204, 186, 221, 204, 186, 224, 206, 186, 224, 206, 186, 224, 206, 186, 224, 206, 186, 224, 206, 186, 224, 206, 186, 224, 205, 188, 224, 205, 188, 225, 208, 190, 224, 207, 189, 222, 206, 190, 222, 206, 190, 222, 206, 190, 222, 206, 190, 223, 207, 191, 224, 208, 192, 218, 205, 188, 223, 210, 193, 228, 215, 199, 228, 215, 199, 224, 211, 195, 221, 208, 192, 221, 209, 193, 223, 211, 195, 230, 216, 203, 229, 215, 204, 230, 213, 203, 228, 211, 201, 227, 211, 198, 227, 211, 198, 228, 212, 199, 226, 212, 199, 229, 215, 204, 228, 214, 203, 227, 214, 205, 226, 213, 204, 225, 215, 206, 225, 216, 207, 226, 217, 210, 227, 218, 211, 234, 225, 218, 234, 225, 218, 234, 225, 218, 233, 224, 217, 232, 223, 216, 231, 222, 215, 230, 223, 215, 229, 222, 214, 232, 225, 217, 227, 220, 212, 225, 221, 212, 232, 228, 219, 243, 239, 230, 244, 240, 231, 233, 229, 220, 222, 218, 209, 229, 222, 214, 229, 222, 214, 230, 223, 215, 231, 224, 216, 233, 226, 218, 235, 228, 220, 234, 230, 221, 234, 230, 221, 228, 223, 217, 228, 223, 217, 231, 226, 220, 239, 234, 228, 244, 241, 236, 244, 241, 236, 236, 233, 228, 229, 226, 221, 232, 229, 224, 233, 230, 225, 233, 230, 225, 233, 230, 225, 234, 231, 226, 234, 231, 226, 234, 231, 226, 235, 232, 227, 234, 231, 226, 234, 231, 226, 235, 232, 227, 235, 232, 227, 236, 233, 228, 234, 233, 228, 236, 233, 228, 234, 233, 228, 236, 235, 231, 236, 235, 231, 236, 235, 231, 237, 236, 232, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 243, 242, 238, 243, 242, 238, 243, 242, 238, 244, 243, 239, 244, 243, 239, 244, 243, 239, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 245, 247, 244, 245, 247, 243, 244, 246, 243, 244, 246, 242, 243, 245, 241, 242, 244, 241, 242, 244, 240, 241, 243, 239, 240, 242, 239, 240, 242, 239, 240, 242, 238, 239, 241, 237, 238, 240, 234, 235, 237, 232, 233, 235, 231, 232, 234, 228, 232, 235, 226, 230, 233, 222, 226, 229, 218, 222, 225, 214, 218, 221, 212, 216, 219, 212, 213, 215, 211, 212, 214, 201, 202, 204, 198, 199, 201, 195, 196, 198, 193, 194, 196, 193, 193, 193, 191, 191, 191, 187, 187, 187, 184, 184, 184, 184, 182, 183, 182, 180, 181, 180, 178, 179, 178, 176, 177, 180, 176, 177, 177, 173, 174, 173, 169, 168, 169, 165, 164, 165, 161, 160, 165, 159, 159, 162, 156, 156, 158, 152, 152, 156, 151, 148, 154, 149, 146, 155, 147, 145, 154, 146, 144, 152, 144, 142, 152, 144, 142, 151, 143, 141, 151, 143, 141, 152, 144, 142, 153, 145, 142, 155, 147, 145, 156, 148, 145, 155, 147, 145, 156, 148, 145, 158, 150, 148, 159, 151, 149, 159, 151, 149, 159, 151, 149, 158, 150, 148, 158, 150, 148, 161, 149, 149, 161, 150, 148, 161, 150, 148, 162, 151, 147, 164, 153, 149, 165, 156, 151, 167, 158, 153, 168, 159, 154, 170, 163, 157, 170, 163, 157, 172, 164, 161, 173, 165, 162, 175, 167, 165, 174, 169, 166, 177, 169, 167, 176, 171, 168, 180, 175, 172, 182, 177, 174, 184, 178, 178, 186, 182, 181, 188, 184, 185, 191, 189, 190, 196, 196, 198, 201, 201, 203, 207, 208, 212, 210, 211, 215, 213, 216, 221, 219, 222, 227, 224, 227, 234, 226, 231, 237, 228, 232, 241, 229, 234, 240, 231, 234, 239, 231, 235, 238, 233, 237, 240, 234, 238, 241, 236, 240, 243, 237, 241, 244, 239, 243, 246, 239, 243, 246, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 246, 247, 251, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 250, 251, 253, 251, 252, 254, 251, 252, 254, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 244, 248, 251, 246, 247, 251, 244, 248, 251, 246, 247, 251, 244, 248, 251, 246, 247, 251, 244, 248, 251, 246, 247, 251, 244, 248, 251, 246, 247, 251, 244, 248, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 249, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 243, 244, 248, 243, 244, 248, 242, 243, 247, 241, 242, 246, 241, 242, 246, 240, 241, 245, 239, 240, 244, 239, 240, 242, 238, 240, 239, 237, 239, 238, 234, 236, 235, 232, 234, 233, 230, 232, 231, 228, 230, 229, 229, 229, 229, 229, 229, 229, 224, 224, 222, 224, 224, 222, 224, 223, 221, 224, 223, 221, 224, 223, 221, 223, 222, 218, 223, 222, 220, 223, 222, 218, 223, 220, 215, 223, 220, 213, 223, 220, 213, 223, 220, 213, 223, 220, 213, 223, 220, 213, 223, 220, 213, 223, 220, 213, 223, 220, 213, 223, 220, 213, 223, 220, 213, 224, 221, 214, 224, 221, 214, 224, 221, 214, 226, 221, 215, 225, 222, 215, 221, 218, 211, 226, 223, 216, 231, 228, 221, 231, 228, 221, 228, 225, 218, 226, 223, 216, 228, 225, 218, 231, 228, 221, 241, 238, 231, 238, 235, 228, 233, 230, 223, 230, 227, 220, 228, 225, 218, 228, 225, 218, 230, 227, 220, 231, 228, 221, 236, 233, 228, 228, 225, 220, 228, 225, 220, 236, 233, 228, 237, 234, 229, 231, 228, 223, 233, 230, 225, 242, 239, 234, 236, 233, 228, 236, 233, 228, 239, 236, 231, 245, 242, 237, 250, 247, 242, 247, 246, 241, 242, 239, 234, 233, 232, 228, 232, 231, 227, 236, 236, 234, 235, 236, 231, 227, 228, 223, 230, 229, 225, 238, 237, 233, 236, 235, 231, 225, 224, 220, 244, 243, 238, 247, 246, 241, 243, 240, 235, 232, 229, 224, 231, 228, 223, 237, 234, 229, 234, 231, 226, 225, 222, 217, 244, 243, 238, 240, 239, 234, 234, 233, 228, 230, 229, 224, 230, 229, 224, 231, 230, 225, 231, 230, 225, 231, 230, 225, 232, 231, 226, 231, 230, 225, 237, 236, 231, 242, 241, 236, 236, 235, 230, 224, 223, 218, 226, 225, 220, 236, 235, 230, 226, 225, 221, 230, 229, 225, 234, 233, 229, 235, 234, 230, 233, 232, 228, 230, 229, 225, 228, 227, 223, 227, 226, 222, 228, 227, 223, 228, 227, 223, 227, 226, 222, 227, 226, 222, 227, 226, 222, 226, 225, 221, 226, 225, 221, 226, 225, 221, 228, 224, 221, 228, 225, 220, 228, 224, 221, 228, 225, 220, 228, 224, 221, 228, 224, 221, 228, 224, 221, 228, 224, 221, 227, 223, 220, 227, 223, 220, 227, 223, 220, 227, 223, 220, 227, 223, 222, 227, 223, 222, 227, 223, 222, 227, 223, 222, 226, 221, 218, 226, 221, 217, 226, 221, 217, 226, 221, 217, 226, 221, 217, 226, 221, 217, 226, 221, 217, 226, 221, 217, 226, 221, 217, 226, 221, 217, 226, 221, 217, 226, 221, 217, 226, 221, 217, 226, 221, 217, 226, 221, 217, 226, 221, 217, 226, 221, 218, 226, 221, 218, 226, 221, 218, 226, 221, 218, 226, 221, 218, 226, 221, 218, 226, 221, 218, 226, 221, 218, 227, 222, 219, 227, 222, 219, 227, 222, 219, 227, 222, 219, 227, 222, 219, 227, 222, 219, 227, 222, 219, 227, 222, 219, 228, 223, 220, 227, 223, 220, 228, 223, 220, 227, 223, 220, 227, 223, 220, 227, 223, 220, 227, 223, 220, 227, 223, 220, 227, 223, 220, 227, 223, 220, 228, 224, 221, 228, 224, 221, 228, 224, 221, 229, 225, 222, 229, 225, 222, 229, 225, 222, 229, 225, 224, 227, 226, 224, 229, 225, 224, 228, 227, 225, 230, 226, 225, 228, 227, 225, 231, 227, 226, 229, 228, 226, 230, 226, 225, 228, 227, 225, 230, 226, 225, 228, 227, 225, 230, 226, 225, 228, 227, 225, 230, 226, 225, 228, 227, 225, 229, 228, 226, 229, 228, 226, 229, 228, 226, 228, 227, 225, 228, 227, 225, 228, 227, 225, 227, 226, 222, 229, 225, 222, 230, 227, 222, 230, 227, 222, 230, 225, 221, 229, 224, 220, 228, 223, 219, 228, 223, 217, 229, 221, 218, 227, 222, 218, 224, 221, 216, 223, 220, 215, 222, 219, 214, 221, 218, 213, 221, 216, 210, 222, 215, 209, 222, 213, 206, 222, 213, 206, 221, 210, 204, 222, 209, 201, 222, 209, 200, 222, 208, 197, 223, 207, 194, 222, 206, 191, 222, 206, 191, 221, 205, 190, 222, 206, 191, 220, 207, 191, 219, 206, 190, 221, 205, 190, 221, 205, 190, 221, 204, 188, 222, 203, 186, 222, 203, 186, 222, 204, 184, 222, 204, 184, 224, 203, 182, 224, 203, 182, 224, 203, 182, 224, 203, 182, 224, 203, 184, 224, 203, 184, 225, 206, 191, 224, 207, 191, 224, 206, 192, 224, 206, 192, 224, 206, 192, 224, 206, 192, 223, 207, 192, 223, 207, 192, 225, 209, 194, 225, 209, 194, 225, 209, 194, 225, 209, 194, 223, 210, 194, 223, 210, 194, 223, 210, 194, 223, 210, 194, 224, 210, 197, 228, 214, 201, 232, 218, 205, 230, 216, 203, 226, 212, 199, 224, 210, 197, 225, 211, 198, 227, 215, 201, 228, 216, 202, 228, 216, 202, 228, 216, 204, 228, 216, 204, 227, 217, 205, 227, 217, 205, 228, 218, 206, 227, 219, 208, 229, 220, 211, 227, 218, 209, 232, 223, 214, 239, 230, 221, 234, 227, 217, 223, 216, 206, 224, 217, 209, 234, 227, 219, 229, 222, 214, 228, 221, 213, 226, 221, 215, 232, 227, 221, 239, 234, 228, 242, 237, 231, 240, 235, 229, 236, 231, 225, 225, 220, 214, 230, 225, 219, 234, 229, 223, 232, 227, 221, 227, 222, 216, 225, 220, 214, 229, 224, 218, 233, 228, 222, 232, 227, 221, 232, 227, 221, 233, 228, 222, 234, 229, 223, 236, 231, 225, 239, 234, 228, 241, 236, 230, 243, 238, 232, 227, 224, 219, 232, 229, 224, 236, 233, 228, 235, 232, 227, 230, 227, 222, 229, 226, 221, 230, 229, 224, 235, 234, 229, 234, 233, 228, 234, 233, 228, 234, 233, 228, 234, 233, 228, 235, 234, 229, 234, 235, 229, 236, 235, 230, 236, 235, 230, 235, 234, 230, 236, 235, 233, 236, 235, 233, 236, 235, 233, 237, 236, 234, 237, 236, 234, 237, 236, 234, 238, 237, 235, 238, 237, 235, 238, 237, 235, 238, 237, 235, 239, 238, 236, 239, 238, 236, 240, 239, 237, 240, 239, 237, 240, 239, 237, 239, 239, 237, 240, 240, 238, 240, 240, 238, 240, 240, 238, 241, 241, 239, 241, 241, 239, 241, 241, 239, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 245, 247, 246, 242, 244, 243, 242, 244, 243, 242, 244, 243, 241, 243, 242, 241, 243, 242, 241, 243, 242, 240, 242, 241, 240, 242, 241, 240, 242, 241, 240, 242, 241, 239, 241, 240, 238, 240, 239, 236, 238, 237, 235, 237, 236, 234, 236, 235, 234, 236, 235, 231, 232, 234, 229, 230, 232, 227, 228, 230, 224, 225, 227, 220, 221, 223, 217, 218, 220, 215, 216, 218, 213, 214, 216, 209, 210, 212, 207, 208, 210, 204, 205, 207, 203, 204, 206, 202, 203, 205, 199, 200, 202, 195, 196, 198, 191, 192, 194, 187, 188, 190, 186, 187, 189, 184, 185, 187, 181, 182, 184, 180, 180, 180, 177, 177, 177, 176, 174, 175, 175, 173, 174, 174, 172, 173, 173, 169, 170, 170, 166, 165, 167, 163, 162, 165, 161, 160, 161, 157, 156, 156, 150, 150, 152, 146, 146, 157, 149, 147, 155, 147, 145, 152, 144, 141, 150, 142, 139, 150, 142, 139, 151, 144, 138, 154, 146, 143, 156, 149, 143, 155, 147, 144, 155, 148, 142, 157, 149, 146, 158, 150, 147, 160, 152, 149, 161, 153, 150, 163, 155, 153, 163, 155, 153, 163, 155, 153, 163, 155, 153, 163, 155, 153, 163, 155, 152, 163, 155, 152, 163, 155, 152, 163, 155, 152, 163, 155, 152, 171, 161, 159, 171, 161, 159, 171, 161, 159, 172, 162, 160, 174, 164, 162, 175, 167, 164, 178, 168, 166, 179, 171, 168, 177, 172, 168, 179, 176, 171, 183, 179, 176, 187, 183, 180, 189, 185, 184, 190, 188, 189, 193, 193, 195, 197, 197, 199, 202, 203, 207, 206, 207, 211, 211, 212, 217, 214, 217, 224, 217, 220, 229, 221, 224, 233, 226, 228, 240, 230, 233, 242, 231, 234, 241, 232, 235, 240, 233, 236, 241, 234, 237, 242, 235, 238, 243, 236, 239, 244, 237, 240, 245, 238, 241, 246, 239, 242, 247, 240, 243, 248, 240, 243, 248, 241, 244, 249, 242, 245, 250, 243, 246, 251, 243, 246, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 249, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 243, 244, 248, 243, 244, 248, 242, 243, 247, 242, 243, 247, 241, 242, 246, 240, 241, 245, 239, 240, 244, 239, 240, 242, 238, 239, 241, 236, 238, 237, 234, 236, 235, 231, 233, 232, 229, 231, 230, 228, 230, 229, 228, 228, 228, 228, 228, 228, 224, 224, 222, 224, 224, 222, 225, 224, 222, 224, 223, 221, 224, 223, 219, 224, 223, 219, 223, 222, 218, 223, 222, 218, 224, 221, 216, 224, 221, 214, 224, 221, 214, 224, 221, 214, 224, 221, 214, 224, 221, 214, 224, 221, 214, 224, 221, 214, 223, 220, 213, 223, 220, 213, 224, 221, 214, 224, 221, 214, 224, 221, 214, 225, 222, 215, 225, 222, 215, 225, 222, 215, 226, 223, 216, 227, 224, 217, 228, 225, 218, 227, 224, 217, 226, 223, 216, 228, 225, 218, 231, 228, 221, 234, 231, 224, 238, 235, 228, 236, 233, 226, 232, 229, 222, 229, 226, 219, 228, 225, 218, 229, 226, 219, 231, 228, 221, 232, 229, 222, 231, 228, 223, 233, 230, 225, 233, 230, 225, 231, 228, 223, 232, 229, 224, 236, 233, 228, 238, 235, 230, 237, 234, 229, 236, 233, 228, 238, 235, 230, 242, 239, 234, 246, 243, 238, 248, 245, 240, 245, 242, 237, 240, 237, 232, 233, 232, 227, 236, 235, 233, 232, 232, 230, 231, 232, 227, 232, 233, 228, 234, 233, 229, 233, 232, 228, 233, 232, 228, 235, 234, 230, 244, 243, 238, 244, 243, 238, 241, 238, 233, 234, 231, 226, 231, 228, 223, 234, 231, 226, 235, 232, 225, 232, 229, 222, 243, 242, 237, 239, 238, 233, 233, 232, 227, 230, 229, 224, 230, 229, 224, 231, 230, 225, 231, 230, 225, 230, 229, 224, 230, 229, 224, 233, 232, 227, 238, 237, 232, 239, 238, 233, 233, 232, 227, 226, 225, 220, 227, 226, 221, 234, 233, 228, 226, 225, 221, 230, 229, 225, 234, 233, 229, 235, 234, 230, 232, 231, 227, 229, 228, 224, 228, 227, 223, 227, 226, 222, 228, 227, 223, 228, 227, 223, 227, 226, 222, 227, 226, 222, 227, 226, 222, 226, 225, 221, 226, 225, 221, 226, 225, 221, 228, 225, 220, 228, 225, 220, 228, 225, 220, 228, 225, 220, 228, 225, 220, 228, 225, 220, 228, 224, 221, 228, 224, 221, 227, 223, 220, 227, 223, 220, 227, 223, 220, 227, 223, 220, 227, 223, 222, 227, 223, 222, 227, 223, 222, 227, 223, 222, 226, 221, 218, 226, 221, 217, 226, 221, 217, 226, 221, 217, 226, 221, 217, 226, 221, 217, 226, 221, 217, 226, 221, 217, 226, 221, 217, 226, 221, 217, 226, 221, 217, 226, 221, 217, 226, 221, 217, 226, 221, 217, 226, 221, 217, 226, 221, 217, 226, 221, 218, 226, 221, 218, 226, 221, 218, 226, 221, 218, 226, 221, 218, 226, 221, 218, 226, 221, 218, 226, 221, 218, 227, 222, 219, 227, 222, 219, 227, 222, 219, 227, 222, 219, 227, 222, 219, 227, 222, 219, 227, 222, 219, 227, 222, 219, 227, 223, 220, 227, 223, 220, 227, 223, 220, 227, 223, 220, 227, 223, 220, 227, 223, 220, 227, 223, 220, 227, 223, 220, 227, 223, 220, 227, 223, 220, 228, 224, 221, 228, 224, 221, 228, 224, 221, 229, 225, 222, 229, 225, 222, 229, 225, 222, 227, 226, 224, 227, 226, 224, 227, 226, 224, 228, 227, 225, 228, 227, 225, 228, 227, 225, 229, 228, 226, 229, 228, 226, 228, 227, 225, 228, 227, 225, 228, 227, 225, 228, 227, 225, 228, 227, 225, 228, 227, 225, 228, 227, 225, 228, 227, 225, 228, 228, 228, 228, 228, 228, 228, 228, 226, 227, 227, 225, 227, 227, 225, 226, 226, 224, 227, 226, 222, 227, 226, 222, 230, 227, 222, 229, 226, 221, 230, 225, 221, 229, 224, 220, 228, 223, 217, 227, 222, 216, 228, 221, 215, 228, 221, 215, 225, 220, 214, 224, 221, 214, 223, 220, 215, 222, 217, 211, 223, 216, 210, 221, 214, 208, 221, 212, 205, 221, 210, 204, 222, 209, 201, 222, 209, 200, 222, 208, 197, 223, 207, 194, 224, 206, 192, 223, 206, 190, 222, 205, 187, 222, 205, 187, 222, 206, 191, 222, 206, 191, 221, 205, 190, 221, 205, 190, 221, 204, 188, 221, 204, 188, 222, 203, 186, 222, 203, 186, 222, 204, 184, 222, 204, 184, 224, 203, 184, 224, 203, 182, 225, 203, 182, 225, 203, 182, 225, 203, 182, 224, 203, 184, 225, 206, 191, 224, 206, 192, 224, 206, 192, 224, 206, 192, 224, 206, 192, 224, 206, 192, 223, 207, 192, 223, 207, 192, 225, 209, 194, 225, 209, 194, 225, 209, 194, 225, 209, 194, 223, 210, 194, 223, 210, 194, 223, 210, 194, 223, 210, 194, 224, 210, 197, 228, 214, 201, 231, 217, 204, 230, 216, 203, 226, 212, 199, 224, 210, 197, 224, 212, 198, 227, 215, 201, 228, 216, 202, 228, 216, 202, 228, 216, 202, 228, 216, 202, 227, 218, 203, 227, 218, 203, 228, 219, 204, 228, 218, 206, 228, 220, 209, 228, 219, 210, 231, 222, 213, 235, 226, 217, 232, 225, 215, 228, 221, 211, 227, 220, 212, 231, 224, 216, 231, 224, 216, 229, 222, 214, 226, 221, 215, 228, 223, 217, 233, 228, 222, 237, 232, 226, 239, 234, 228, 240, 235, 229, 233, 228, 222, 231, 226, 220, 230, 225, 219, 229, 224, 218, 230, 225, 219, 230, 225, 219, 230, 225, 219, 229, 224, 218, 232, 227, 221, 232, 227, 221, 232, 227, 221, 233, 228, 222, 235, 230, 224, 238, 233, 227, 240, 235, 229, 242, 237, 231, 235, 232, 227, 233, 230, 225, 232, 229, 224, 232, 229, 224, 233, 230, 225, 234, 231, 226, 232, 231, 226, 231, 230, 225, 234, 233, 228, 234, 233, 228, 234, 233, 228, 234, 233, 228, 234, 235, 229, 234, 235, 229, 235, 236, 230, 235, 236, 230, 235, 234, 232, 236, 235, 233, 236, 235, 233, 236, 235, 233, 237, 236, 234, 237, 236, 234, 237, 236, 234, 238, 237, 235, 238, 237, 235, 238, 237, 235, 238, 237, 235, 239, 238, 236, 239, 238, 236, 240, 239, 237, 240, 239, 237, 240, 239, 237, 239, 239, 237, 240, 240, 238, 240, 240, 238, 240, 240, 238, 241, 241, 239, 241, 241, 239, 241, 241, 239, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 243, 245, 244, 243, 245, 244, 243, 245, 244, 242, 244, 243, 242, 244, 243, 242, 244, 243, 241, 243, 242, 241, 243, 242, 241, 243, 242, 240, 242, 241, 239, 241, 240, 238, 240, 239, 237, 239, 238, 236, 238, 237, 235, 237, 236, 234, 236, 235, 233, 234, 236, 232, 233, 235, 230, 231, 233, 227, 228, 230, 224, 225, 227, 221, 222, 224, 219, 220, 222, 218, 219, 221, 216, 217, 219, 214, 215, 217, 211, 212, 214, 210, 211, 213, 209, 210, 212, 206, 207, 209, 202, 203, 205, 198, 199, 201, 192, 196, 197, 191, 195, 196, 189, 193, 194, 186, 190, 191, 184, 186, 185, 181, 183, 182, 180, 180, 180, 179, 179, 179, 177, 175, 176, 174, 172, 173, 170, 169, 167, 167, 166, 164, 166, 162, 161, 162, 158, 157, 156, 152, 151, 151, 147, 146, 151, 143, 141, 150, 142, 140, 147, 139, 136, 145, 137, 134, 146, 139, 133, 148, 141, 135, 151, 144, 138, 153, 146, 140, 155, 148, 142, 155, 148, 142, 157, 150, 144, 158, 151, 145, 160, 152, 149, 161, 153, 150, 163, 155, 153, 163, 155, 153, 161, 155, 155, 161, 155, 155, 161, 156, 153, 161, 156, 153, 163, 155, 153, 163, 155, 153, 163, 155, 153, 163, 155, 153, 170, 160, 158, 170, 160, 158, 170, 160, 158, 171, 161, 159, 173, 163, 161, 175, 165, 163, 177, 168, 163, 177, 170, 164, 176, 171, 167, 179, 176, 171, 183, 179, 176, 186, 182, 179, 186, 185, 183, 189, 188, 186, 192, 192, 192, 196, 196, 198, 200, 199, 204, 203, 204, 208, 208, 209, 214, 212, 212, 220, 214, 217, 226, 218, 221, 230, 223, 225, 237, 227, 230, 239, 231, 234, 241, 231, 234, 239, 232, 235, 240, 234, 237, 242, 235, 238, 243, 236, 239, 244, 237, 240, 245, 238, 241, 246, 239, 242, 247, 239, 242, 247, 240, 243, 248, 241, 244, 249, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 249, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 243, 244, 248, 243, 244, 248, 243, 244, 248, 242, 243, 247, 241, 242, 246, 240, 241, 245, 240, 241, 245, 239, 240, 242, 237, 238, 240, 235, 237, 236, 233, 235, 234, 230, 232, 231, 228, 230, 229, 227, 229, 228, 227, 227, 227, 227, 227, 227, 225, 225, 223, 225, 225, 223, 225, 224, 222, 225, 224, 222, 224, 223, 219, 224, 223, 219, 224, 223, 219, 224, 223, 219, 224, 221, 216, 224, 221, 216, 224, 221, 216, 224, 221, 216, 224, 221, 216, 224, 221, 216, 224, 221, 216, 224, 221, 216, 224, 221, 216, 224, 221, 216, 224, 221, 216, 225, 222, 217, 225, 222, 217, 225, 222, 217, 226, 223, 218, 226, 223, 218, 230, 227, 222, 227, 224, 219, 224, 221, 216, 224, 221, 216, 227, 224, 219, 232, 229, 224, 235, 232, 227, 236, 233, 228, 234, 231, 226, 232, 229, 224, 230, 227, 222, 229, 226, 221, 229, 226, 221, 230, 227, 222, 232, 229, 224, 234, 231, 226, 227, 224, 219, 236, 233, 228, 236, 233, 228, 227, 224, 219, 229, 226, 221, 240, 237, 232, 242, 239, 234, 233, 230, 225, 238, 235, 230, 241, 238, 233, 245, 242, 237, 246, 243, 238, 244, 241, 236, 240, 237, 232, 237, 234, 229, 234, 233, 228, 238, 237, 235, 228, 228, 226, 228, 229, 224, 237, 238, 233, 237, 236, 232, 229, 228, 224, 234, 233, 229, 247, 246, 242, 243, 242, 237, 238, 237, 232, 237, 234, 229, 235, 232, 227, 232, 229, 224, 231, 228, 223, 235, 232, 225, 242, 239, 232, 243, 240, 235, 239, 236, 231, 234, 231, 226, 232, 229, 224, 232, 229, 224, 233, 230, 225, 232, 229, 224, 231, 228, 223, 231, 228, 223, 238, 235, 230, 241, 238, 233, 237, 234, 229, 231, 228, 223, 231, 228, 223, 232, 229, 224, 231, 228, 223, 227, 226, 222, 230, 229, 225, 233, 232, 228, 233, 232, 228, 231, 230, 226, 228, 227, 223, 227, 226, 222, 227, 226, 222, 228, 227, 223, 227, 226, 222, 227, 226, 222, 227, 226, 222, 226, 225, 221, 226, 225, 221, 226, 225, 221, 225, 224, 220, 228, 225, 220, 228, 225, 220, 228, 225, 220, 228, 225, 220, 228, 224, 221, 228, 224, 221, 228, 224, 221, 228, 224, 221, 227, 223, 220, 227, 223, 220, 227, 223, 222, 227, 223, 222, 227, 223, 222, 227, 223, 222, 227, 223, 222, 227, 223, 222, 225, 221, 218, 225, 221, 218, 225, 221, 218, 225, 221, 218, 225, 221, 218, 225, 221, 218, 225, 221, 218, 225, 221, 218, 225, 221, 218, 225, 221, 218, 225, 221, 218, 225, 221, 218, 225, 221, 218, 225, 221, 218, 225, 221, 218, 225, 221, 218, 226, 221, 218, 226, 221, 218, 226, 221, 218, 226, 221, 218, 226, 221, 218, 226, 221, 218, 226, 221, 218, 226, 221, 218, 227, 222, 219, 227, 222, 219, 227, 222, 219, 227, 222, 219, 227, 222, 219, 227, 222, 219, 227, 222, 219, 227, 222, 219, 227, 223, 220, 227, 223, 220, 227, 223, 220, 227, 223, 220, 227, 223, 220, 227, 223, 220, 227, 223, 220, 227, 223, 220, 227, 223, 220, 228, 224, 221, 228, 224, 221, 228, 224, 221, 229, 225, 222, 229, 225, 222, 229, 225, 222, 230, 226, 223, 229, 225, 222, 229, 225, 222, 229, 225, 222, 230, 226, 223, 230, 226, 223, 230, 226, 223, 231, 227, 224, 231, 227, 224, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 228, 227, 223, 228, 228, 226, 228, 228, 226, 227, 227, 225, 227, 227, 225, 228, 227, 225, 227, 226, 224, 229, 225, 222, 229, 225, 222, 229, 226, 221, 229, 226, 221, 229, 224, 218, 228, 223, 217, 229, 222, 216, 228, 221, 215, 227, 220, 212, 227, 220, 212, 225, 221, 212, 225, 221, 212, 224, 219, 213, 223, 219, 210, 222, 215, 207, 221, 212, 205, 220, 209, 203, 218, 207, 201, 221, 208, 200, 222, 208, 199, 223, 206, 196, 223, 207, 194, 223, 205, 191, 222, 205, 189, 222, 203, 186, 221, 204, 186, 221, 205, 190, 221, 205, 190, 221, 205, 189, 221, 205, 189, 221, 204, 188, 221, 204, 188, 221, 202, 185, 221, 202, 185, 222, 203, 186, 222, 204, 184, 224, 203, 184, 224, 203, 184, 224, 203, 182, 224, 203, 182, 225, 203, 182, 224, 203, 184, 225, 206, 191, 224, 206, 192, 224, 206, 192, 224, 206, 192, 224, 206, 192, 224, 206, 192, 223, 207, 192, 223, 207, 192, 225, 209, 194, 225, 209, 194, 223, 210, 194, 223, 210, 194, 223, 210, 194, 223, 210, 194, 223, 210, 194, 223, 210, 194, 225, 211, 198, 227, 213, 202, 230, 216, 205, 229, 215, 204, 227, 213, 202, 226, 212, 201, 225, 213, 201, 226, 214, 202, 228, 216, 204, 228, 216, 204, 228, 216, 204, 228, 216, 204, 227, 217, 205, 227, 217, 205, 228, 218, 206, 228, 218, 206, 228, 220, 209, 230, 221, 212, 231, 222, 213, 230, 221, 212, 231, 224, 214, 234, 227, 217, 232, 225, 217, 226, 219, 211, 231, 224, 216, 230, 223, 215, 227, 222, 216, 226, 221, 215, 226, 221, 215, 231, 226, 220, 237, 232, 226, 242, 237, 231, 242, 237, 231, 235, 230, 224, 228, 223, 217, 227, 222, 216, 232, 227, 221, 234, 229, 223, 231, 226, 220, 227, 222, 216, 231, 226, 220, 231, 226, 220, 231, 226, 220, 232, 227, 221, 234, 229, 223, 236, 231, 225, 238, 233, 227, 239, 234, 228, 244, 241, 236, 236, 233, 228, 230, 227, 222, 230, 227, 222, 235, 232, 227, 237, 234, 229, 233, 232, 227, 229, 228, 223, 234, 233, 228, 234, 233, 228, 234, 233, 228, 234, 233, 228, 234, 235, 229, 234, 235, 229, 235, 236, 230, 235, 236, 230, 235, 234, 232, 236, 235, 233, 236, 235, 233, 236, 235, 233, 237, 236, 234, 237, 236, 234, 237, 236, 234, 238, 237, 235, 238, 237, 235, 238, 237, 235, 238, 237, 235, 239, 238, 236, 239, 238, 236, 240, 239, 237, 240, 239, 237, 240, 239, 237, 239, 239, 237, 240, 240, 238, 240, 240, 238, 240, 240, 238, 241, 241, 239, 241, 241, 239, 241, 241, 239, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 246, 245, 244, 246, 245, 243, 245, 244, 243, 245, 244, 243, 245, 244, 241, 243, 242, 241, 243, 242, 240, 242, 241, 239, 241, 240, 238, 240, 239, 237, 239, 238, 236, 238, 237, 235, 237, 236, 235, 236, 238, 234, 235, 237, 233, 234, 236, 231, 232, 234, 229, 230, 232, 227, 228, 230, 225, 226, 228, 225, 226, 228, 223, 224, 226, 221, 222, 224, 218, 219, 221, 217, 218, 220, 216, 217, 219, 214, 215, 217, 209, 210, 212, 206, 207, 209, 201, 205, 206, 199, 203, 204, 199, 200, 202, 195, 196, 198, 191, 193, 192, 187, 189, 188, 185, 185, 185, 183, 183, 183, 180, 179, 177, 176, 175, 173, 174, 170, 169, 170, 166, 165, 166, 162, 161, 161, 157, 156, 154, 150, 149, 150, 146, 145, 147, 139, 137, 145, 137, 135, 143, 135, 132, 143, 135, 132, 144, 137, 131, 147, 140, 134, 151, 144, 138, 153, 146, 140, 155, 148, 142, 155, 148, 142, 157, 150, 144, 158, 151, 145, 160, 152, 149, 161, 153, 150, 163, 155, 153, 163, 155, 153, 161, 155, 155, 161, 155, 155, 161, 156, 153, 161, 156, 153, 163, 155, 153, 163, 155, 153, 163, 155, 153, 163, 155, 153, 168, 158, 156, 168, 158, 156, 168, 158, 156, 169, 159, 157, 171, 161, 159, 173, 163, 161, 175, 166, 161, 176, 169, 163, 176, 171, 167, 178, 175, 170, 182, 178, 175, 185, 181, 178, 185, 184, 182, 188, 187, 185, 192, 190, 191, 194, 194, 196, 196, 195, 200, 200, 199, 204, 204, 205, 210, 208, 209, 214, 210, 213, 220, 214, 217, 224, 219, 222, 231, 223, 226, 235, 229, 232, 239, 230, 233, 238, 231, 234, 239, 233, 236, 241, 234, 237, 242, 236, 239, 244, 237, 240, 245, 237, 240, 245, 238, 241, 246, 239, 242, 247, 239, 242, 247, 240, 243, 248, 241, 244, 249, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 249, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 244, 245, 249, 244, 245, 249, 243, 244, 248, 242, 243, 247, 241, 242, 246, 241, 242, 246, 240, 241, 245, 240, 241, 243, 236, 237, 239, 234, 236, 235, 232, 234, 233, 229, 231, 230, 227, 229, 228, 226, 228, 227, 227, 227, 227, 227, 227, 227, 226, 226, 224, 225, 225, 223, 226, 225, 223, 226, 225, 223, 225, 224, 220, 225, 224, 220, 225, 224, 220, 224, 223, 219, 225, 222, 217, 225, 222, 217, 225, 222, 217, 225, 222, 217, 225, 222, 217, 225, 222, 217, 225, 222, 217, 225, 222, 217, 225, 222, 217, 225, 222, 217, 225, 222, 217, 225, 222, 217, 226, 223, 218, 226, 223, 218, 226, 223, 218, 227, 224, 219, 230, 227, 222, 226, 223, 218, 223, 220, 215, 226, 223, 218, 232, 229, 224, 236, 233, 228, 236, 233, 228, 234, 231, 226, 230, 227, 222, 230, 227, 222, 229, 226, 221, 229, 226, 221, 230, 227, 222, 231, 228, 223, 233, 230, 225, 235, 232, 227, 230, 227, 222, 235, 232, 227, 235, 232, 227, 230, 227, 222, 231, 228, 223, 238, 235, 230, 240, 237, 232, 236, 233, 228, 240, 237, 232, 244, 241, 236, 247, 244, 239, 246, 243, 238, 240, 237, 232, 235, 232, 227, 235, 232, 227, 235, 234, 230, 234, 234, 232, 230, 230, 228, 231, 232, 227, 235, 236, 231, 236, 235, 231, 233, 232, 228, 239, 238, 234, 250, 249, 245, 241, 240, 235, 233, 232, 227, 233, 230, 225, 236, 233, 228, 234, 231, 226, 229, 226, 221, 236, 233, 226, 250, 247, 240, 240, 237, 232, 237, 234, 229, 233, 230, 225, 232, 229, 224, 232, 229, 224, 233, 230, 225, 232, 229, 224, 230, 227, 222, 231, 228, 223, 240, 237, 232, 242, 239, 234, 232, 229, 224, 228, 225, 220, 233, 230, 225, 233, 230, 225, 227, 224, 219, 227, 226, 222, 229, 228, 224, 232, 231, 227, 232, 231, 227, 229, 228, 224, 227, 226, 222, 227, 226, 222, 228, 227, 223, 227, 226, 222, 227, 226, 222, 227, 226, 222, 226, 225, 221, 226, 225, 221, 226, 225, 221, 225, 224, 220, 225, 224, 220, 227, 224, 219, 227, 224, 219, 227, 224, 219, 227, 224, 219, 227, 223, 220, 227, 223, 220, 227, 223, 220, 227, 223, 220, 227, 223, 220, 227, 223, 220, 227, 223, 222, 227, 223, 222, 227, 223, 222, 227, 223, 222, 227, 223, 222, 227, 223, 222, 226, 222, 221, 226, 222, 219, 226, 222, 219, 226, 222, 219, 226, 222, 219, 226, 222, 219, 226, 222, 219, 226, 222, 219, 226, 222, 219, 226, 222, 219, 226, 222, 219, 226, 222, 219, 226, 222, 219, 226, 222, 219, 226, 222, 219, 226, 222, 219, 227, 222, 219, 227, 222, 219, 227, 222, 219, 227, 222, 219, 227, 222, 219, 227, 222, 219, 227, 222, 219, 227, 222, 219, 227, 222, 219, 227, 222, 219, 227, 222, 219, 227, 222, 219, 227, 222, 219, 227, 222, 219, 227, 222, 219, 227, 222, 219, 228, 224, 221, 228, 224, 221, 228, 224, 221, 228, 224, 221, 228, 224, 221, 228, 224, 221, 228, 224, 221, 228, 224, 221, 228, 224, 221, 228, 224, 221, 228, 224, 221, 229, 225, 222, 229, 225, 222, 229, 225, 222, 230, 226, 223, 230, 226, 223, 229, 225, 222, 229, 225, 222, 229, 225, 222, 230, 226, 223, 230, 226, 223, 230, 226, 223, 231, 227, 224, 231, 227, 224, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 228, 227, 223, 228, 227, 225, 227, 227, 225, 227, 227, 225, 227, 227, 225, 227, 226, 224, 227, 226, 222, 228, 224, 221, 228, 225, 220, 229, 226, 221, 229, 226, 221, 228, 223, 217, 227, 222, 216, 228, 221, 215, 226, 219, 213, 225, 218, 210, 225, 218, 210, 226, 219, 211, 224, 220, 211, 226, 219, 211, 225, 218, 210, 224, 215, 208, 220, 211, 204, 218, 207, 201, 218, 205, 197, 221, 207, 198, 221, 207, 196, 222, 206, 193, 221, 205, 190, 222, 205, 189, 221, 204, 186, 221, 202, 185, 220, 203, 185, 222, 205, 189, 221, 205, 190, 221, 205, 189, 220, 204, 188, 221, 204, 188, 220, 203, 187, 221, 202, 185, 221, 202, 185, 222, 203, 186, 222, 203, 186, 224, 203, 184, 224, 203, 184, 224, 203, 182, 224, 203, 182, 225, 203, 182, 224, 203, 184, 225, 206, 191, 224, 206, 192, 224, 206, 192, 224, 206, 192, 224, 206, 192, 224, 206, 192, 223, 207, 192, 223, 207, 192, 225, 209, 194, 225, 209, 194, 223, 210, 194, 223, 210, 194, 223, 210, 194, 223, 210, 194, 223, 210, 194, 223, 210, 194, 225, 211, 200, 226, 212, 201, 228, 214, 203, 229, 215, 204, 228, 214, 203, 227, 213, 202, 226, 214, 202, 226, 214, 202, 228, 216, 204, 228, 216, 204, 228, 216, 204, 228, 216, 204, 227, 217, 205, 227, 217, 205, 228, 218, 206, 228, 218, 206, 228, 219, 210, 232, 223, 214, 230, 221, 212, 225, 216, 207, 229, 222, 212, 238, 231, 221, 235, 228, 220, 224, 217, 209, 228, 221, 213, 230, 223, 215, 229, 224, 218, 227, 222, 216, 225, 220, 214, 227, 222, 216, 233, 228, 222, 240, 235, 229, 244, 239, 233, 238, 233, 227, 232, 227, 221, 229, 224, 218, 231, 226, 220, 232, 227, 221, 231, 226, 220, 230, 225, 219, 230, 225, 219, 230, 225, 219, 230, 225, 219, 231, 226, 220, 232, 227, 221, 234, 229, 223, 236, 231, 225, 237, 232, 226, 245, 242, 237, 240, 237, 232, 234, 231, 226, 232, 229, 224, 234, 231, 226, 236, 233, 228, 233, 232, 227, 231, 230, 225, 234, 233, 228, 234, 233, 228, 234, 233, 228, 234, 233, 228, 234, 235, 229, 234, 235, 229, 235, 236, 230, 235, 236, 230, 235, 234, 232, 236, 235, 233, 236, 235, 233, 236, 235, 233, 237, 236, 234, 237, 236, 234, 237, 236, 234, 238, 237, 235, 238, 237, 235, 238, 237, 235, 238, 237, 235, 239, 238, 236, 239, 238, 236, 240, 239, 237, 240, 239, 237, 240, 239, 237, 239, 239, 237, 240, 240, 238, 240, 240, 238, 240, 240, 238, 241, 241, 239, 241, 241, 239, 241, 241, 239, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 246, 245, 243, 245, 244, 242, 244, 243, 241, 243, 242, 240, 242, 241, 239, 241, 240, 238, 240, 239, 237, 239, 238, 236, 238, 237, 235, 236, 238, 235, 236, 238, 234, 235, 237, 232, 233, 235, 231, 232, 234, 229, 230, 232, 228, 229, 231, 228, 229, 231, 226, 227, 229, 223, 224, 226, 221, 222, 224, 220, 221, 223, 219, 220, 222, 216, 217, 219, 212, 213, 215, 208, 209, 211, 204, 208, 209, 202, 206, 207, 201, 202, 204, 197, 198, 200, 192, 194, 193, 188, 190, 189, 185, 185, 185, 183, 183, 183, 178, 177, 175, 174, 173, 171, 171, 167, 166, 167, 163, 162, 163, 159, 158, 157, 153, 152, 150, 146, 145, 146, 140, 140, 145, 137, 135, 144, 136, 134, 142, 134, 131, 142, 134, 131, 144, 137, 131, 148, 141, 135, 152, 145, 139, 154, 147, 141, 155, 148, 142, 155, 148, 142, 157, 150, 144, 158, 151, 145, 160, 152, 149, 161, 153, 150, 163, 155, 153, 163, 155, 153, 162, 156, 156, 162, 156, 156, 162, 157, 154, 162, 157, 154, 164, 156, 154, 164, 156, 154, 164, 156, 154, 164, 156, 154, 166, 156, 154, 166, 156, 154, 167, 157, 155, 167, 157, 155, 169, 159, 157, 171, 161, 159, 173, 164, 159, 174, 167, 161, 175, 170, 166, 177, 174, 169, 181, 177, 174, 184, 180, 177, 183, 182, 180, 186, 185, 183, 189, 187, 188, 193, 191, 192, 193, 193, 195, 197, 196, 201, 201, 202, 207, 206, 207, 212, 209, 209, 217, 211, 214, 221, 216, 219, 228, 220, 223, 230, 227, 230, 235, 228, 231, 236, 229, 232, 237, 231, 234, 239, 233, 236, 241, 234, 237, 242, 236, 239, 244, 237, 240, 245, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 240, 243, 248, 241, 244, 249, 242, 245, 250, 242, 245, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 249, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 244, 245, 249, 244, 245, 249, 243, 244, 248, 243, 244, 248, 242, 243, 247, 241, 242, 246, 240, 241, 245, 240, 241, 243, 236, 237, 239, 234, 236, 235, 232, 234, 233, 229, 231, 230, 227, 229, 228, 226, 228, 227, 227, 227, 227, 227, 227, 227, 226, 226, 224, 226, 226, 224, 227, 226, 224, 226, 225, 223, 226, 225, 221, 226, 225, 221, 225, 224, 220, 225, 224, 220, 226, 223, 218, 226, 223, 218, 226, 223, 218, 226, 223, 218, 226, 223, 218, 226, 223, 218, 226, 223, 218, 226, 223, 218, 225, 222, 217, 226, 223, 218, 226, 223, 218, 226, 223, 218, 227, 224, 219, 227, 224, 219, 227, 224, 219, 227, 224, 219, 227, 224, 219, 226, 223, 218, 227, 224, 219, 232, 229, 224, 238, 235, 230, 239, 236, 231, 234, 231, 226, 229, 226, 221, 229, 226, 221, 229, 226, 221, 229, 226, 221, 230, 227, 222, 231, 228, 223, 233, 230, 225, 234, 231, 226, 235, 232, 227, 234, 233, 229, 229, 228, 224, 229, 228, 224, 234, 233, 229, 236, 235, 231, 232, 231, 227, 234, 233, 229, 240, 239, 235, 240, 239, 235, 243, 242, 238, 245, 244, 240, 241, 240, 236, 235, 234, 230, 232, 231, 227, 233, 232, 228, 236, 235, 231, 229, 229, 227, 235, 235, 233, 236, 237, 232, 231, 232, 227, 233, 232, 228, 241, 240, 236, 246, 245, 241, 244, 243, 239, 239, 238, 233, 231, 230, 225, 231, 228, 223, 236, 233, 228, 236, 233, 228, 233, 230, 225, 239, 236, 229, 250, 247, 240, 237, 234, 229, 234, 231, 226, 232, 229, 224, 231, 228, 223, 232, 229, 224, 232, 229, 224, 231, 228, 223, 229, 226, 221, 233, 230, 225, 240, 237, 232, 240, 237, 232, 230, 227, 222, 227, 224, 219, 232, 229, 224, 232, 229, 224, 226, 223, 218, 229, 226, 221, 231, 228, 223, 233, 230, 225, 232, 229, 224, 229, 226, 221, 228, 225, 220, 228, 225, 220, 230, 227, 222, 229, 226, 221, 229, 226, 221, 228, 225, 220, 228, 225, 220, 227, 224, 219, 227, 224, 219, 227, 224, 219, 227, 224, 219, 225, 224, 219, 225, 224, 219, 225, 224, 220, 225, 224, 220, 225, 224, 220, 225, 224, 220, 225, 224, 220, 225, 224, 220, 225, 224, 222, 225, 224, 222, 225, 224, 222, 225, 224, 222, 225, 224, 222, 225, 224, 222, 225, 223, 224, 225, 224, 222, 224, 223, 221, 224, 223, 221, 224, 223, 221, 224, 223, 221, 224, 223, 221, 224, 223, 221, 224, 223, 221, 224, 223, 221, 224, 223, 221, 224, 223, 221, 224, 223, 221, 224, 223, 221, 224, 223, 221, 224, 223, 221, 224, 223, 221, 226, 222, 221, 227, 222, 219, 227, 222, 219, 227, 222, 219, 227, 222, 219, 227, 222, 219, 227, 222, 219, 227, 222, 219, 227, 222, 219, 228, 223, 220, 228, 223, 220, 228, 223, 220, 228, 223, 220, 228, 223, 220, 228, 223, 220, 228, 223, 220, 228, 223, 220, 228, 224, 221, 228, 224, 221, 228, 224, 221, 228, 224, 221, 228, 224, 221, 228, 224, 221, 228, 224, 221, 228, 224, 221, 228, 224, 221, 228, 224, 221, 229, 225, 222, 229, 225, 222, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 229, 225, 222, 229, 225, 222, 229, 225, 222, 230, 226, 223, 230, 226, 223, 230, 226, 223, 231, 227, 224, 231, 227, 224, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 228, 227, 223, 228, 227, 225, 227, 227, 225, 227, 226, 224, 227, 226, 224, 227, 226, 222, 226, 225, 221, 228, 224, 221, 228, 225, 220, 230, 225, 221, 229, 224, 218, 230, 223, 217, 228, 221, 215, 226, 219, 211, 225, 218, 210, 224, 215, 208, 224, 215, 208, 225, 216, 207, 224, 217, 207, 226, 217, 208, 226, 217, 208, 224, 215, 206, 221, 211, 202, 220, 207, 199, 217, 204, 195, 220, 206, 197, 222, 205, 195, 222, 204, 192, 221, 203, 189, 221, 202, 187, 221, 202, 185, 220, 201, 184, 219, 202, 184, 222, 205, 189, 220, 204, 188, 221, 204, 188, 221, 204, 188, 220, 203, 187, 220, 203, 187, 220, 203, 185, 219, 202, 184, 222, 203, 186, 222, 203, 186, 222, 204, 184, 222, 204, 184, 224, 203, 184, 224, 203, 184, 224, 203, 184, 224, 203, 186, 225, 206, 191, 224, 206, 192, 224, 206, 192, 224, 206, 192, 223, 207, 192, 223, 207, 192, 223, 207, 192, 223, 207, 192, 225, 209, 194, 225, 209, 194, 223, 210, 194, 223, 210, 194, 223, 210, 194, 223, 210, 194, 223, 210, 194, 223, 210, 194, 225, 211, 200, 225, 211, 200, 226, 212, 201, 228, 214, 203, 228, 216, 204, 228, 216, 204, 227, 215, 203, 226, 214, 202, 228, 216, 204, 228, 216, 204, 226, 216, 204, 226, 216, 204, 227, 217, 205, 227, 217, 205, 228, 218, 206, 228, 218, 206, 228, 219, 210, 232, 223, 214, 229, 220, 211, 224, 215, 206, 228, 221, 211, 238, 231, 221, 236, 229, 221, 226, 219, 211, 224, 217, 209, 229, 222, 214, 231, 226, 220, 231, 226, 220, 228, 223, 217, 227, 222, 216, 229, 224, 218, 233, 228, 222, 239, 234, 228, 240, 235, 229, 239, 234, 228, 234, 229, 223, 229, 224, 218, 228, 223, 217, 231, 226, 220, 234, 229, 223, 230, 225, 219, 230, 225, 219, 230, 225, 219, 230, 225, 219, 231, 226, 220, 233, 228, 222, 234, 229, 223, 236, 231, 225, 240, 237, 232, 241, 238, 233, 241, 238, 233, 237, 234, 229, 232, 229, 224, 231, 228, 223, 232, 231, 226, 236, 235, 230, 234, 233, 228, 234, 233, 228, 234, 233, 228, 234, 233, 228, 234, 235, 229, 234, 235, 229, 235, 236, 230, 235, 236, 230, 235, 234, 232, 236, 235, 233, 236, 235, 233, 236, 235, 233, 237, 236, 234, 237, 236, 234, 237, 236, 234, 238, 237, 235, 238, 237, 235, 238, 237, 235, 238, 237, 235, 239, 238, 236, 239, 238, 236, 240, 239, 237, 240, 239, 237, 240, 239, 237, 239, 239, 237, 240, 240, 238, 240, 240, 238, 240, 240, 238, 241, 241, 239, 241, 241, 239, 241, 241, 239, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 247, 249, 248, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 245, 247, 246, 244, 246, 245, 243, 245, 244, 243, 245, 244, 241, 243, 242, 240, 242, 241, 239, 241, 240, 238, 240, 239, 238, 240, 239, 235, 236, 238, 234, 235, 237, 233, 234, 236, 232, 233, 235, 230, 231, 233, 229, 230, 232, 228, 229, 231, 227, 228, 230, 223, 224, 226, 221, 222, 224, 218, 219, 221, 217, 218, 220, 216, 217, 219, 213, 214, 216, 209, 210, 212, 205, 206, 208, 203, 205, 204, 202, 204, 203, 198, 200, 199, 194, 196, 195, 189, 191, 190, 185, 187, 186, 183, 183, 183, 181, 181, 181, 175, 174, 172, 171, 170, 168, 168, 164, 163, 164, 160, 159, 159, 155, 152, 153, 149, 146, 147, 142, 139, 143, 138, 135, 143, 135, 133, 142, 134, 132, 140, 132, 129, 140, 132, 129, 142, 135, 129, 146, 139, 133, 150, 143, 137, 152, 145, 139, 155, 148, 142, 155, 148, 142, 157, 150, 144, 158, 151, 145, 160, 152, 149, 161, 153, 150, 163, 155, 153, 163, 155, 153, 163, 157, 157, 163, 157, 157, 163, 158, 155, 163, 158, 155, 165, 157, 155, 165, 157, 155, 165, 157, 155, 165, 157, 155, 165, 155, 153, 165, 155, 153, 165, 155, 153, 166, 156, 154, 168, 158, 156, 170, 160, 158, 172, 163, 158, 173, 166, 160, 174, 169, 165, 177, 172, 168, 180, 176, 173, 182, 178, 175, 183, 179, 178, 185, 181, 180, 187, 185, 186, 190, 188, 189, 192, 192, 194, 195, 195, 197, 201, 200, 205, 204, 205, 209, 207, 208, 213, 211, 212, 217, 217, 217, 225, 220, 220, 228, 224, 227, 232, 225, 228, 233, 226, 229, 234, 228, 231, 236, 230, 233, 238, 232, 235, 240, 234, 237, 242, 235, 238, 243, 237, 240, 245, 237, 240, 245, 238, 241, 246, 239, 242, 247, 239, 242, 247, 240, 243, 248, 241, 244, 249, 241, 244, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 249, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 244, 245, 249, 244, 245, 249, 243, 244, 248, 242, 243, 247, 241, 242, 246, 241, 242, 246, 241, 242, 244, 237, 238, 240, 235, 237, 236, 233, 235, 234, 230, 232, 231, 228, 230, 229, 227, 229, 228, 227, 227, 227, 227, 227, 227, 227, 227, 225, 227, 227, 225, 228, 227, 225, 227, 226, 224, 227, 226, 222, 226, 225, 221, 226, 225, 221, 226, 225, 221, 227, 224, 219, 227, 224, 219, 227, 224, 219, 227, 224, 219, 227, 224, 219, 227, 224, 219, 227, 224, 219, 227, 224, 219, 226, 223, 218, 226, 223, 218, 227, 224, 219, 227, 224, 219, 227, 224, 219, 228, 225, 220, 228, 225, 220, 228, 225, 220, 226, 223, 218, 228, 225, 220, 233, 230, 225, 238, 235, 230, 240, 237, 232, 238, 235, 230, 232, 229, 224, 227, 224, 219, 230, 227, 222, 230, 227, 222, 231, 228, 223, 232, 229, 224, 233, 230, 225, 234, 231, 226, 234, 231, 226, 234, 231, 226, 238, 237, 233, 228, 227, 223, 228, 227, 223, 238, 237, 233, 239, 238, 234, 232, 231, 227, 234, 233, 229, 244, 243, 239, 243, 242, 238, 242, 241, 237, 241, 240, 236, 238, 237, 233, 234, 233, 229, 233, 232, 228, 234, 233, 229, 236, 235, 231, 228, 228, 226, 236, 236, 234, 236, 237, 232, 230, 231, 226, 235, 234, 230, 247, 246, 242, 247, 246, 242, 236, 235, 231, 236, 235, 230, 230, 229, 224, 230, 227, 222, 235, 232, 227, 239, 236, 231, 240, 237, 232, 241, 238, 231, 244, 241, 234, 234, 231, 226, 232, 229, 224, 231, 228, 223, 231, 228, 223, 232, 229, 224, 232, 229, 224, 230, 227, 222, 227, 224, 219, 237, 234, 229, 238, 235, 230, 235, 232, 227, 230, 227, 222, 228, 225, 220, 230, 227, 222, 229, 226, 221, 226, 223, 218, 229, 226, 221, 231, 228, 223, 231, 228, 223, 230, 227, 222, 228, 225, 220, 227, 224, 219, 228, 225, 220, 230, 227, 222, 228, 225, 220, 228, 225, 220, 228, 225, 220, 227, 224, 219, 227, 224, 219, 227, 224, 219, 226, 223, 218, 226, 223, 218, 227, 224, 219, 225, 224, 219, 225, 224, 220, 225, 224, 220, 225, 224, 220, 225, 224, 220, 225, 224, 220, 225, 224, 220, 225, 224, 222, 225, 224, 222, 225, 224, 222, 225, 224, 222, 225, 224, 222, 225, 224, 222, 225, 223, 224, 225, 223, 224, 225, 224, 222, 225, 224, 222, 225, 224, 222, 225, 224, 222, 225, 224, 222, 225, 224, 222, 225, 224, 222, 225, 224, 222, 225, 224, 222, 225, 224, 222, 225, 224, 222, 225, 224, 222, 225, 224, 222, 225, 224, 222, 225, 224, 222, 225, 224, 222, 228, 223, 220, 228, 223, 220, 228, 223, 220, 228, 223, 220, 228, 223, 220, 228, 223, 220, 228, 223, 220, 228, 223, 220, 228, 223, 220, 228, 223, 220, 228, 223, 220, 228, 223, 220, 228, 223, 220, 228, 223, 220, 228, 223, 220, 228, 223, 220, 228, 224, 221, 228, 224, 221, 228, 224, 221, 228, 224, 221, 228, 224, 221, 228, 224, 221, 228, 224, 221, 228, 224, 221, 229, 225, 222, 229, 225, 222, 229, 225, 222, 230, 226, 223, 230, 226, 223, 230, 226, 223, 231, 227, 224, 231, 227, 224, 229, 225, 222, 229, 225, 222, 229, 225, 222, 230, 226, 223, 230, 226, 223, 230, 226, 223, 231, 227, 224, 231, 227, 224, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 228, 227, 225, 226, 226, 224, 227, 226, 224, 227, 226, 222, 226, 225, 221, 226, 225, 220, 228, 225, 220, 227, 224, 219, 229, 224, 218, 229, 224, 218, 229, 222, 216, 227, 220, 212, 225, 218, 210, 223, 216, 208, 222, 213, 206, 222, 213, 204, 221, 212, 203, 222, 214, 203, 226, 216, 207, 227, 217, 207, 225, 215, 206, 224, 211, 202, 220, 207, 198, 219, 205, 194, 221, 204, 194, 220, 204, 191, 221, 203, 189, 220, 203, 187, 220, 201, 184, 219, 200, 183, 219, 201, 181, 219, 201, 181, 221, 204, 188, 220, 204, 188, 221, 204, 188, 220, 203, 187, 220, 203, 187, 220, 203, 187, 219, 202, 184, 219, 202, 184, 222, 203, 186, 222, 203, 186, 222, 204, 184, 222, 204, 184, 224, 203, 184, 224, 203, 184, 224, 203, 184, 222, 203, 186, 224, 207, 191, 224, 206, 192, 224, 206, 192, 224, 206, 192, 223, 207, 192, 223, 207, 192, 223, 207, 192, 223, 207, 192, 225, 209, 194, 225, 209, 194, 223, 210, 194, 223, 210, 194, 223, 210, 194, 223, 210, 194, 223, 210, 194, 223, 210, 194, 225, 211, 200, 224, 210, 199, 224, 210, 199, 227, 213, 202, 229, 217, 205, 230, 218, 206, 228, 216, 204, 226, 214, 202, 228, 216, 204, 228, 216, 204, 226, 216, 204, 226, 216, 204, 227, 217, 205, 227, 217, 205, 228, 218, 206, 228, 218, 206, 229, 220, 211, 230, 221, 212, 228, 219, 210, 226, 217, 208, 228, 221, 211, 234, 227, 217, 235, 228, 220, 232, 225, 217, 226, 219, 211, 229, 222, 214, 231, 226, 220, 232, 227, 221, 230, 225, 219, 228, 223, 217, 228, 223, 217, 228, 223, 217, 233, 228, 222, 238, 233, 227, 241, 236, 230, 238, 233, 227, 231, 226, 220, 228, 223, 217, 231, 226, 220, 235, 230, 224, 231, 226, 220, 230, 225, 219, 230, 225, 219, 230, 225, 219, 231, 226, 220, 232, 227, 221, 234, 229, 223, 235, 230, 224, 235, 232, 227, 240, 237, 232, 243, 240, 235, 241, 238, 233, 234, 231, 226, 231, 228, 223, 232, 231, 226, 237, 236, 231, 234, 233, 228, 234, 233, 228, 234, 233, 228, 234, 233, 228, 234, 235, 229, 234, 235, 229, 235, 236, 230, 235, 236, 230, 235, 234, 230, 236, 235, 233, 236, 235, 233, 236, 235, 233, 237, 236, 234, 237, 236, 234, 237, 236, 234, 238, 237, 235, 238, 237, 235, 238, 237, 235, 238, 237, 235, 239, 238, 236, 239, 238, 236, 240, 239, 237, 240, 239, 237, 240, 239, 237, 239, 239, 237, 240, 240, 238, 240, 240, 238, 240, 240, 238, 241, 241, 239, 241, 241, 239, 241, 241, 239, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 244, 246, 245, 243, 245, 244, 241, 243, 242, 240, 242, 241, 239, 241, 240, 239, 241, 240, 235, 236, 238, 234, 235, 237, 233, 234, 236, 231, 232, 234, 229, 230, 232, 227, 228, 230, 225, 226, 228, 225, 226, 228, 220, 221, 223, 218, 219, 221, 215, 216, 218, 214, 215, 217, 213, 214, 216, 210, 211, 213, 206, 207, 209, 202, 203, 205, 200, 202, 201, 198, 200, 199, 195, 197, 196, 191, 193, 192, 187, 189, 188, 183, 185, 184, 181, 181, 181, 180, 180, 180, 174, 173, 171, 171, 170, 168, 168, 164, 163, 164, 160, 159, 160, 156, 153, 155, 151, 148, 150, 145, 142, 145, 140, 137, 143, 135, 133, 142, 134, 132, 140, 132, 129, 139, 131, 128, 140, 133, 127, 143, 136, 130, 147, 140, 134, 150, 143, 137, 155, 148, 142, 155, 148, 142, 157, 150, 144, 158, 151, 145, 160, 152, 149, 161, 153, 150, 163, 155, 153, 163, 155, 153, 164, 158, 158, 164, 158, 158, 164, 159, 156, 164, 159, 156, 166, 158, 156, 166, 158, 156, 166, 158, 156, 166, 158, 156, 165, 155, 153, 165, 155, 153, 165, 155, 153, 166, 156, 154, 167, 157, 155, 170, 160, 158, 172, 163, 158, 173, 164, 159, 176, 168, 165, 176, 171, 167, 180, 175, 172, 181, 177, 174, 182, 178, 177, 183, 179, 178, 187, 183, 184, 188, 186, 187, 190, 188, 191, 193, 193, 195, 198, 197, 202, 202, 201, 206, 205, 206, 211, 209, 210, 215, 214, 215, 220, 218, 219, 224, 220, 223, 228, 221, 224, 229, 223, 226, 231, 225, 228, 233, 228, 231, 236, 230, 233, 238, 232, 235, 240, 233, 236, 241, 236, 239, 244, 236, 239, 244, 237, 240, 245, 238, 241, 246, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 249, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 244, 245, 249, 243, 244, 248, 242, 243, 247, 242, 243, 247, 241, 242, 246, 241, 242, 244, 238, 239, 241, 236, 238, 237, 234, 236, 235, 231, 233, 232, 229, 231, 230, 228, 230, 229, 228, 228, 228, 228, 228, 228, 228, 228, 226, 228, 228, 226, 228, 227, 225, 228, 227, 225, 227, 226, 222, 227, 226, 222, 227, 226, 222, 227, 226, 222, 225, 224, 219, 225, 224, 219, 225, 224, 219, 225, 224, 219, 225, 224, 219, 225, 224, 219, 225, 224, 219, 225, 224, 219, 225, 224, 219, 225, 224, 219, 225, 224, 219, 226, 225, 220, 226, 225, 220, 226, 225, 220, 227, 226, 221, 227, 226, 221, 227, 226, 221, 231, 230, 225, 235, 234, 229, 237, 236, 231, 235, 234, 229, 231, 230, 225, 229, 228, 223, 228, 227, 222, 230, 229, 224, 230, 229, 224, 232, 231, 226, 232, 231, 226, 233, 232, 227, 232, 231, 226, 232, 231, 226, 231, 230, 225, 236, 235, 231, 234, 233, 229, 234, 233, 229, 236, 235, 231, 238, 237, 233, 237, 236, 232, 239, 238, 234, 242, 241, 237, 245, 244, 240, 241, 240, 236, 236, 235, 231, 234, 233, 229, 235, 234, 230, 236, 235, 231, 237, 236, 232, 236, 235, 231, 233, 233, 231, 231, 231, 229, 230, 231, 226, 234, 235, 230, 244, 243, 239, 248, 247, 243, 241, 240, 236, 232, 231, 227, 233, 232, 227, 231, 230, 225, 231, 228, 223, 232, 229, 224, 241, 238, 233, 248, 245, 240, 243, 240, 233, 234, 231, 224, 232, 229, 222, 231, 228, 221, 230, 227, 220, 230, 227, 220, 232, 229, 222, 232, 229, 222, 229, 226, 219, 226, 223, 216, 242, 239, 232, 235, 232, 225, 231, 228, 221, 231, 228, 221, 230, 227, 220, 226, 223, 216, 226, 223, 216, 228, 225, 218, 230, 225, 221, 231, 226, 222, 232, 227, 223, 230, 225, 221, 227, 222, 218, 227, 222, 218, 229, 224, 220, 231, 226, 222, 229, 224, 220, 229, 224, 220, 229, 224, 220, 228, 223, 219, 228, 223, 219, 227, 222, 218, 227, 222, 218, 226, 223, 218, 226, 223, 218, 226, 223, 218, 226, 222, 219, 226, 222, 219, 226, 222, 219, 226, 222, 219, 226, 222, 219, 226, 222, 219, 227, 223, 222, 227, 223, 222, 227, 223, 222, 227, 223, 222, 227, 223, 222, 227, 223, 222, 227, 223, 222, 227, 223, 222, 225, 224, 222, 225, 224, 222, 225, 224, 222, 225, 224, 222, 225, 224, 222, 225, 224, 222, 225, 224, 222, 225, 224, 222, 225, 224, 222, 225, 224, 222, 225, 224, 222, 225, 224, 222, 225, 224, 222, 225, 224, 222, 225, 224, 222, 225, 224, 222, 228, 223, 220, 228, 223, 220, 228, 223, 220, 228, 223, 220, 228, 223, 220, 228, 223, 220, 228, 223, 220, 228, 223, 220, 229, 224, 221, 229, 224, 221, 229, 224, 221, 229, 224, 221, 229, 224, 221, 229, 224, 221, 229, 224, 221, 229, 224, 221, 229, 225, 222, 229, 225, 222, 229, 225, 222, 229, 225, 222, 229, 225, 222, 229, 225, 222, 229, 225, 222, 229, 225, 222, 229, 225, 222, 229, 225, 222, 229, 225, 222, 230, 226, 223, 230, 226, 223, 231, 227, 224, 231, 227, 224, 231, 227, 224, 229, 225, 222, 229, 225, 222, 229, 225, 222, 230, 226, 223, 230, 226, 223, 230, 226, 223, 231, 227, 224, 231, 227, 224, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 227, 226, 222, 227, 226, 222, 229, 225, 222, 228, 224, 221, 228, 224, 221, 228, 225, 220, 228, 223, 219, 228, 223, 217, 231, 224, 218, 230, 223, 217, 229, 220, 213, 227, 218, 211, 225, 216, 209, 223, 214, 205, 221, 212, 203, 220, 211, 202, 218, 208, 198, 220, 210, 198, 226, 213, 204, 228, 216, 204, 228, 215, 206, 226, 212, 201, 223, 209, 198, 222, 205, 195, 220, 203, 193, 220, 202, 190, 220, 202, 188, 219, 202, 186, 219, 200, 183, 219, 200, 183, 220, 199, 180, 218, 200, 180, 221, 204, 188, 221, 204, 188, 220, 203, 187, 220, 203, 187, 220, 203, 187, 219, 202, 186, 219, 202, 186, 219, 202, 186, 221, 204, 186, 221, 204, 186, 221, 204, 186, 221, 204, 186, 222, 203, 186, 222, 203, 186, 222, 203, 186, 222, 203, 186, 224, 207, 191, 223, 207, 192, 223, 207, 192, 223, 207, 192, 223, 207, 192, 223, 207, 192, 223, 207, 192, 223, 207, 192, 223, 210, 194, 223, 210, 194, 223, 210, 194, 223, 210, 194, 222, 210, 194, 222, 210, 194, 222, 210, 194, 222, 210, 194, 226, 212, 201, 224, 210, 199, 222, 210, 198, 225, 213, 201, 229, 217, 205, 231, 219, 207, 229, 217, 205, 225, 213, 201, 226, 216, 204, 226, 216, 204, 226, 216, 204, 226, 216, 204, 227, 217, 205, 227, 217, 205, 227, 219, 206, 227, 219, 206, 229, 220, 211, 227, 218, 209, 228, 219, 210, 230, 221, 212, 229, 222, 212, 228, 221, 211, 232, 225, 217, 238, 231, 223, 233, 226, 218, 231, 224, 216, 227, 222, 216, 228, 223, 217, 229, 224, 218, 230, 225, 219, 229, 224, 218, 227, 222, 216, 231, 226, 220, 234, 229, 223, 237, 232, 226, 238, 233, 227, 236, 231, 225, 234, 229, 223, 231, 226, 220, 230, 225, 219, 232, 227, 221, 231, 226, 220, 231, 226, 220, 231, 226, 220, 231, 226, 220, 232, 227, 221, 234, 229, 223, 234, 229, 223, 233, 230, 225, 236, 233, 228, 239, 236, 231, 240, 237, 232, 239, 236, 231, 237, 234, 229, 233, 232, 227, 232, 231, 226, 234, 233, 228, 234, 233, 228, 234, 233, 228, 234, 233, 228, 234, 235, 229, 234, 235, 229, 235, 236, 230, 235, 236, 230, 235, 234, 230, 236, 235, 231, 236, 235, 231, 236, 235, 231, 237, 236, 232, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 239, 239, 237, 240, 240, 238, 240, 240, 238, 240, 240, 238, 241, 241, 239, 241, 241, 239, 241, 241, 239, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 248, 247, 245, 247, 246, 245, 247, 246, 243, 245, 244, 242, 244, 243, 241, 243, 242, 240, 242, 241, 240, 242, 241, 238, 239, 241, 236, 237, 239, 234, 235, 237, 232, 233, 235, 229, 230, 232, 226, 227, 229, 224, 225, 227, 223, 224, 226, 220, 221, 223, 217, 218, 220, 215, 216, 218, 214, 215, 217, 213, 214, 216, 210, 211, 213, 206, 207, 209, 202, 203, 205, 198, 200, 199, 197, 199, 198, 195, 197, 196, 192, 194, 193, 189, 189, 189, 186, 186, 186, 185, 184, 182, 184, 183, 181, 178, 177, 175, 175, 174, 172, 173, 169, 166, 170, 166, 163, 168, 163, 160, 163, 158, 155, 157, 152, 149, 153, 148, 145, 151, 143, 141, 149, 141, 139, 146, 138, 135, 145, 137, 134, 145, 138, 132, 147, 140, 134, 151, 144, 138, 153, 146, 140, 155, 148, 142, 155, 148, 142, 157, 150, 144, 158, 151, 145, 160, 152, 149, 161, 153, 150, 163, 155, 153, 163, 155, 153, 164, 158, 158, 164, 158, 158, 164, 159, 156, 164, 159, 156, 166, 158, 156, 166, 158, 156, 166, 158, 156, 166, 158, 156, 165, 155, 153, 165, 155, 153, 165, 155, 153, 166, 156, 154, 167, 157, 155, 170, 160, 158, 172, 163, 158, 173, 164, 159, 175, 167, 164, 176, 171, 167, 179, 174, 171, 181, 176, 173, 181, 176, 173, 182, 178, 175, 185, 181, 180, 186, 185, 183, 186, 184, 185, 190, 188, 189, 194, 194, 196, 198, 198, 200, 201, 200, 205, 206, 205, 210, 210, 211, 215, 214, 215, 220, 217, 220, 225, 218, 221, 226, 220, 223, 228, 222, 225, 230, 225, 228, 233, 228, 231, 236, 230, 233, 238, 231, 234, 239, 236, 239, 244, 236, 239, 244, 236, 239, 244, 237, 240, 245, 238, 241, 246, 239, 242, 247, 239, 242, 247, 240, 243, 248, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 249, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 244, 245, 249, 243, 244, 248, 243, 244, 248, 242, 243, 247, 241, 242, 246, 241, 242, 244, 238, 239, 241, 237, 239, 238, 234, 236, 235, 232, 234, 233, 230, 232, 231, 228, 230, 229, 229, 229, 229, 229, 229, 229, 228, 228, 226, 228, 228, 226, 229, 228, 226, 228, 227, 225, 228, 227, 223, 227, 226, 222, 227, 226, 222, 227, 226, 222, 225, 224, 219, 225, 224, 219, 225, 224, 219, 225, 224, 219, 225, 224, 219, 225, 224, 219, 225, 224, 219, 225, 224, 219, 225, 224, 219, 225, 224, 219, 226, 225, 220, 226, 225, 220, 226, 225, 220, 227, 226, 221, 227, 226, 221, 227, 226, 221, 231, 230, 225, 235, 234, 229, 237, 236, 231, 235, 234, 229, 230, 229, 224, 227, 226, 221, 229, 228, 223, 232, 231, 226, 231, 230, 225, 232, 231, 226, 233, 232, 227, 234, 233, 228, 234, 233, 228, 233, 232, 227, 232, 231, 226, 231, 230, 225, 232, 231, 227, 240, 239, 235, 240, 239, 235, 233, 232, 228, 234, 233, 229, 244, 243, 239, 245, 244, 240, 239, 238, 234, 246, 245, 241, 240, 239, 235, 233, 232, 228, 232, 231, 227, 235, 234, 230, 238, 237, 233, 238, 237, 233, 236, 235, 231, 239, 239, 237, 226, 226, 224, 224, 225, 220, 240, 241, 236, 252, 251, 247, 245, 244, 240, 235, 234, 230, 231, 230, 226, 232, 231, 226, 232, 231, 226, 231, 228, 223, 231, 228, 223, 242, 239, 234, 253, 250, 245, 245, 242, 235, 227, 224, 217, 231, 228, 221, 230, 227, 220, 229, 226, 219, 230, 227, 220, 232, 229, 222, 232, 229, 222, 229, 226, 219, 226, 223, 216, 245, 242, 235, 233, 230, 223, 228, 225, 218, 232, 229, 222, 232, 229, 222, 224, 221, 214, 223, 220, 213, 229, 226, 219, 230, 225, 221, 231, 226, 222, 231, 226, 222, 229, 224, 220, 227, 222, 218, 226, 221, 217, 229, 224, 220, 231, 226, 222, 229, 224, 220, 229, 224, 220, 228, 223, 219, 228, 223, 219, 228, 223, 219, 227, 222, 218, 227, 222, 218, 227, 222, 218, 226, 223, 218, 226, 223, 218, 226, 222, 219, 226, 222, 219, 226, 222, 219, 226, 222, 219, 226, 222, 219, 226, 222, 219, 227, 223, 222, 227, 223, 222, 227, 223, 222, 227, 223, 222, 227, 223, 222, 227, 223, 222, 227, 223, 222, 227, 223, 222, 225, 224, 222, 225, 224, 222, 225, 224, 222, 225, 224, 222, 225, 224, 222, 225, 224, 222, 225, 224, 222, 225, 224, 222, 225, 224, 222, 225, 224, 222, 225, 224, 222, 225, 224, 222, 225, 224, 222, 225, 224, 222, 225, 224, 222, 227, 223, 222, 228, 223, 220, 228, 223, 220, 228, 223, 220, 228, 223, 220, 228, 223, 220, 228, 223, 220, 228, 223, 220, 228, 223, 220, 229, 224, 221, 229, 224, 221, 229, 224, 221, 229, 224, 221, 229, 224, 221, 229, 224, 221, 229, 224, 221, 229, 224, 221, 229, 225, 222, 229, 225, 222, 229, 225, 222, 229, 225, 222, 229, 225, 222, 229, 225, 222, 229, 225, 222, 229, 225, 222, 229, 225, 222, 229, 225, 222, 230, 226, 223, 230, 226, 223, 230, 226, 223, 231, 227, 224, 231, 227, 224, 231, 227, 224, 229, 225, 222, 229, 225, 222, 229, 225, 222, 230, 226, 223, 230, 226, 223, 230, 226, 223, 231, 227, 224, 231, 227, 224, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 229, 225, 222, 227, 226, 222, 229, 225, 222, 228, 225, 220, 228, 225, 220, 228, 225, 220, 228, 223, 217, 228, 223, 217, 231, 224, 218, 230, 223, 215, 229, 220, 213, 227, 218, 209, 224, 215, 206, 222, 213, 204, 220, 211, 202, 220, 210, 200, 217, 205, 193, 220, 208, 196, 225, 213, 201, 228, 216, 204, 229, 215, 204, 227, 213, 202, 226, 209, 199, 223, 206, 196, 220, 202, 190, 220, 202, 188, 219, 201, 187, 219, 202, 186, 219, 200, 183, 218, 199, 182, 219, 198, 179, 217, 199, 179, 221, 204, 188, 221, 204, 188, 220, 203, 187, 220, 203, 187, 220, 203, 187, 219, 202, 186, 219, 202, 186, 219, 202, 186, 221, 204, 186, 221, 204, 186, 221, 204, 186, 221, 204, 186, 221, 204, 186, 221, 204, 186, 222, 203, 186, 221, 204, 188, 223, 207, 192, 223, 207, 192, 223, 207, 192, 223, 207, 192, 223, 207, 192, 223, 207, 192, 223, 207, 192, 223, 207, 192, 223, 210, 194, 223, 210, 194, 223, 210, 194, 223, 210, 194, 222, 210, 194, 222, 210, 194, 222, 210, 194, 222, 210, 196, 226, 212, 201, 223, 209, 198, 221, 209, 197, 225, 213, 201, 230, 218, 206, 232, 220, 208, 229, 217, 205, 225, 213, 201, 226, 216, 204, 226, 216, 204, 226, 216, 204, 226, 216, 204, 227, 217, 205, 227, 217, 205, 227, 219, 206, 227, 219, 208, 229, 220, 211, 225, 216, 207, 227, 218, 209, 233, 224, 215, 230, 223, 213, 224, 217, 207, 230, 223, 215, 243, 236, 228, 240, 233, 225, 233, 226, 218, 224, 219, 213, 223, 218, 212, 227, 222, 216, 230, 225, 219, 231, 226, 220, 229, 224, 218, 232, 227, 221, 230, 225, 219, 231, 226, 220, 236, 231, 225, 241, 236, 230, 240, 235, 229, 233, 228, 222, 225, 220, 214, 233, 228, 222, 232, 227, 221, 231, 226, 220, 231, 226, 220, 231, 226, 220, 232, 227, 221, 234, 229, 223, 234, 229, 223, 233, 230, 225, 232, 229, 224, 233, 230, 225, 239, 236, 231, 244, 241, 236, 244, 241, 236, 234, 233, 228, 227, 226, 221, 234, 233, 228, 234, 233, 228, 234, 233, 228, 234, 233, 228, 234, 235, 229, 234, 235, 229, 235, 236, 230, 235, 236, 230, 235, 234, 230, 236, 235, 231, 236, 235, 231, 236, 235, 231, 237, 236, 232, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 239, 239, 237, 240, 240, 238, 240, 240, 238, 240, 240, 238, 241, 241, 239, 241, 241, 239, 241, 241, 239, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 245, 247, 246, 244, 246, 245, 246, 248, 247, 246, 248, 247, 245, 247, 246, 244, 246, 245, 243, 245, 244, 241, 243, 242, 241, 243, 242, 240, 242, 241, 240, 241, 243, 239, 240, 242, 236, 237, 239, 233, 234, 236, 229, 230, 232, 226, 227, 229, 224, 225, 227, 222, 223, 225, 221, 222, 224, 219, 220, 222, 216, 217, 219, 215, 216, 218, 214, 215, 217, 212, 213, 215, 207, 208, 210, 204, 205, 207, 199, 201, 200, 198, 200, 199, 196, 198, 197, 193, 195, 194, 192, 192, 192, 189, 189, 189, 188, 187, 185, 187, 186, 184, 182, 181, 179, 179, 178, 176, 178, 174, 171, 175, 171, 168, 174, 169, 166, 170, 165, 162, 164, 159, 156, 160, 155, 152, 160, 152, 150, 158, 150, 148, 155, 147, 144, 153, 145, 142, 153, 146, 140, 154, 147, 141, 157, 150, 144, 159, 152, 146, 155, 148, 142, 155, 148, 142, 157, 150, 144, 158, 151, 145, 160, 152, 149, 161, 153, 150, 163, 155, 153, 163, 155, 153, 165, 159, 159, 165, 159, 159, 165, 160, 157, 165, 160, 157, 167, 159, 157, 167, 159, 157, 167, 159, 157, 167, 159, 157, 165, 155, 153, 165, 155, 153, 165, 155, 153, 166, 156, 154, 168, 158, 156, 170, 160, 158, 172, 163, 158, 173, 164, 159, 175, 167, 164, 177, 169, 166, 179, 174, 171, 180, 175, 172, 181, 176, 173, 182, 177, 174, 184, 180, 179, 187, 183, 182, 185, 181, 182, 186, 184, 185, 192, 190, 193, 195, 195, 197, 198, 198, 200, 202, 201, 206, 208, 207, 212, 211, 212, 216, 215, 218, 223, 216, 219, 224, 218, 221, 226, 221, 224, 229, 223, 226, 231, 226, 229, 234, 228, 231, 236, 229, 232, 237, 235, 238, 243, 236, 239, 244, 236, 239, 244, 237, 240, 245, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 249, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 244, 245, 249, 243, 244, 248, 242, 243, 247, 242, 243, 247, 241, 242, 246, 241, 242, 244, 239, 240, 242, 237, 239, 238, 235, 237, 236, 232, 234, 233, 230, 232, 231, 229, 231, 230, 229, 229, 229, 229, 229, 229, 228, 228, 226, 228, 228, 226, 229, 228, 226, 228, 227, 225, 228, 227, 223, 228, 227, 223, 227, 226, 222, 227, 226, 222, 228, 227, 223, 228, 227, 223, 228, 227, 223, 228, 227, 223, 228, 227, 223, 228, 227, 223, 228, 227, 223, 228, 227, 223, 226, 225, 221, 230, 229, 225, 234, 233, 229, 233, 232, 228, 229, 228, 224, 227, 226, 222, 230, 229, 225, 233, 232, 228, 235, 234, 230, 234, 233, 229, 232, 231, 227, 231, 230, 226, 230, 229, 225, 230, 229, 225, 230, 229, 225, 231, 230, 226, 232, 231, 227, 232, 231, 227, 232, 231, 227, 232, 231, 227, 232, 231, 227, 232, 231, 227, 232, 231, 227, 232, 231, 227, 237, 238, 233, 236, 237, 232, 236, 237, 232, 237, 238, 233, 238, 239, 234, 241, 242, 237, 244, 245, 240, 245, 246, 241, 242, 243, 238, 238, 239, 234, 233, 234, 229, 233, 234, 229, 236, 237, 232, 237, 238, 233, 235, 236, 231, 232, 233, 228, 229, 229, 227, 236, 236, 234, 243, 244, 239, 244, 245, 240, 241, 240, 236, 236, 235, 231, 234, 233, 229, 235, 234, 230, 235, 234, 229, 229, 228, 223, 234, 231, 226, 245, 242, 237, 249, 246, 241, 240, 237, 232, 231, 228, 221, 229, 226, 219, 239, 234, 228, 234, 229, 223, 233, 228, 222, 235, 230, 224, 231, 226, 220, 225, 220, 214, 230, 225, 219, 242, 237, 231, 234, 229, 223, 233, 228, 222, 231, 226, 220, 230, 225, 219, 228, 223, 217, 228, 223, 217, 228, 223, 217, 228, 223, 217, 234, 227, 221, 233, 226, 220, 231, 224, 218, 230, 223, 217, 229, 222, 216, 229, 222, 216, 229, 222, 216, 230, 223, 217, 230, 223, 217, 230, 223, 217, 230, 223, 217, 229, 222, 216, 229, 222, 216, 229, 222, 216, 228, 221, 215, 226, 221, 215, 224, 221, 216, 224, 221, 216, 224, 221, 216, 224, 221, 216, 224, 221, 216, 224, 221, 216, 224, 221, 216, 224, 221, 216, 225, 221, 218, 225, 221, 218, 225, 221, 218, 225, 221, 218, 225, 221, 218, 225, 221, 218, 225, 221, 220, 225, 221, 220, 226, 222, 219, 226, 222, 219, 226, 222, 219, 226, 222, 219, 226, 222, 219, 226, 222, 219, 226, 222, 219, 226, 222, 219, 227, 223, 220, 227, 223, 220, 227, 223, 220, 227, 223, 220, 227, 223, 220, 227, 223, 220, 227, 223, 220, 227, 223, 220, 227, 222, 219, 228, 223, 220, 228, 223, 220, 228, 223, 220, 229, 224, 221, 229, 224, 221, 229, 224, 221, 230, 225, 222, 227, 222, 219, 227, 222, 219, 228, 223, 220, 228, 223, 220, 228, 223, 220, 229, 224, 221, 229, 224, 221, 229, 224, 221, 228, 224, 221, 228, 224, 221, 228, 224, 221, 228, 224, 221, 228, 224, 221, 228, 224, 221, 228, 224, 221, 228, 224, 221, 228, 224, 221, 228, 224, 221, 228, 224, 221, 228, 224, 221, 228, 224, 221, 228, 224, 221, 228, 224, 221, 228, 224, 221, 231, 226, 222, 231, 226, 222, 231, 226, 222, 230, 225, 221, 230, 225, 221, 230, 225, 221, 229, 224, 220, 229, 224, 220, 231, 226, 222, 231, 226, 222, 231, 226, 222, 231, 226, 222, 231, 226, 222, 231, 226, 222, 231, 226, 222, 230, 227, 222, 227, 224, 219, 227, 224, 219, 226, 223, 218, 225, 222, 217, 225, 220, 216, 225, 220, 214, 226, 219, 213, 226, 219, 213, 227, 218, 211, 226, 217, 210, 225, 216, 209, 224, 215, 206, 223, 213, 204, 221, 211, 201, 220, 210, 200, 219, 209, 199, 218, 206, 192, 220, 206, 193, 222, 208, 195, 224, 210, 197, 227, 211, 198, 227, 211, 198, 226, 210, 197, 226, 210, 197, 223, 205, 193, 223, 205, 191, 222, 204, 190, 221, 204, 188, 221, 202, 185, 220, 201, 184, 219, 201, 181, 218, 200, 180, 218, 201, 185, 219, 202, 186, 219, 202, 186, 219, 202, 186, 220, 203, 187, 220, 203, 187, 220, 203, 187, 221, 204, 188, 220, 203, 187, 220, 203, 187, 220, 203, 187, 221, 204, 188, 221, 204, 188, 221, 205, 189, 222, 205, 189, 221, 205, 189, 222, 206, 191, 222, 206, 193, 222, 206, 193, 223, 207, 194, 221, 207, 194, 221, 207, 194, 222, 208, 195, 222, 208, 195, 224, 210, 197, 224, 210, 197, 223, 211, 197, 223, 211, 197, 223, 211, 197, 223, 211, 197, 223, 211, 197, 223, 211, 197, 226, 214, 202, 227, 214, 205, 227, 214, 205, 228, 215, 206, 229, 216, 207, 229, 216, 207, 228, 218, 208, 228, 218, 208, 226, 216, 206, 226, 216, 206, 225, 217, 206, 225, 217, 206, 225, 217, 206, 225, 217, 206, 225, 217, 206, 225, 217, 206, 228, 219, 210, 228, 219, 210, 228, 219, 210, 229, 220, 211, 228, 221, 211, 228, 221, 211, 229, 222, 214, 229, 222, 214, 240, 233, 225, 234, 227, 219, 227, 222, 216, 226, 221, 215, 229, 224, 218, 232, 227, 221, 230, 225, 219, 227, 222, 216, 227, 222, 216, 227, 222, 216, 231, 226, 220, 237, 232, 226, 244, 239, 233, 244, 239, 233, 238, 233, 227, 231, 226, 220, 226, 221, 215, 228, 223, 217, 232, 227, 221, 235, 230, 224, 236, 231, 225, 235, 230, 224, 234, 229, 223, 233, 228, 222, 233, 230, 225, 233, 230, 225, 233, 230, 225, 234, 231, 226, 235, 232, 227, 238, 235, 230, 238, 237, 232, 239, 238, 233, 231, 230, 225, 232, 231, 226, 233, 232, 227, 234, 233, 228, 234, 235, 229, 235, 236, 230, 235, 236, 230, 235, 236, 230, 236, 235, 231, 236, 235, 231, 237, 236, 232, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 240, 240, 238, 240, 240, 238, 241, 241, 239, 241, 241, 239, 241, 241, 239, 242, 242, 240, 242, 242, 240, 242, 242, 240, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 246, 245, 244, 246, 245, 245, 247, 246, 244, 246, 245, 243, 245, 244, 242, 244, 243, 241, 243, 242, 240, 242, 241, 239, 241, 240, 238, 240, 239, 233, 234, 236, 233, 234, 236, 231, 232, 234, 229, 230, 232, 226, 227, 229, 222, 223, 225, 219, 220, 222, 217, 218, 220, 214, 215, 217, 213, 214, 216, 212, 213, 215, 210, 211, 213, 208, 209, 211, 207, 208, 210, 206, 207, 209, 205, 206, 208, 202, 204, 203, 199, 201, 200, 196, 196, 194, 194, 194, 192, 193, 193, 191, 191, 191, 189, 188, 187, 185, 185, 184, 182, 187, 183, 180, 182, 178, 175, 178, 173, 170, 174, 169, 166, 172, 167, 164, 169, 164, 161, 168, 160, 157, 165, 157, 154, 160, 152, 150, 159, 151, 149, 157, 149, 146, 155, 147, 144, 154, 147, 141, 154, 147, 141, 154, 147, 141, 154, 147, 141, 153, 146, 140, 154, 147, 141, 155, 148, 142, 156, 149, 143, 157, 149, 146, 159, 151, 148, 160, 152, 150, 160, 152, 150, 160, 154, 154, 161, 155, 155, 163, 158, 155, 165, 160, 157, 168, 160, 158, 168, 160, 158, 168, 160, 158, 168, 160, 158, 166, 156, 154, 165, 155, 153, 164, 154, 152, 163, 153, 151, 164, 154, 152, 166, 156, 154, 169, 160, 155, 171, 162, 157, 173, 165, 162, 174, 166, 163, 176, 168, 166, 179, 171, 169, 180, 175, 172, 183, 178, 175, 185, 179, 179, 185, 181, 180, 185, 181, 180, 185, 184, 182, 188, 186, 187, 192, 190, 191, 197, 195, 196, 200, 200, 202, 203, 203, 205, 204, 205, 209, 208, 211, 216, 210, 213, 218, 214, 217, 222, 219, 222, 227, 223, 226, 231, 227, 230, 235, 229, 232, 237, 230, 233, 238, 231, 234, 239, 232, 235, 240, 234, 237, 242, 237, 240, 245, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 249, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 244, 245, 249, 243, 244, 248, 243, 244, 248, 242, 243, 247, 241, 242, 246, 241, 242, 244, 239, 240, 242, 238, 240, 239, 235, 237, 236, 233, 235, 234, 231, 233, 232, 229, 231, 230, 230, 230, 230, 230, 230, 230, 229, 229, 227, 228, 228, 226, 229, 228, 226, 229, 228, 226, 228, 227, 223, 228, 227, 223, 228, 227, 223, 227, 226, 222, 228, 227, 223, 228, 227, 223, 228, 227, 223, 228, 227, 223, 228, 227, 223, 228, 227, 223, 228, 227, 223, 228, 227, 223, 230, 229, 225, 230, 229, 225, 230, 229, 225, 228, 227, 223, 227, 226, 222, 229, 228, 224, 233, 232, 228, 236, 235, 231, 235, 234, 230, 234, 233, 229, 232, 231, 227, 231, 230, 226, 230, 229, 225, 230, 229, 225, 231, 230, 226, 231, 230, 226, 232, 231, 227, 232, 231, 227, 232, 231, 227, 233, 232, 228, 233, 232, 228, 233, 232, 228, 233, 232, 228, 233, 232, 228, 236, 237, 232, 236, 237, 232, 237, 238, 233, 239, 240, 235, 240, 241, 236, 241, 242, 237, 242, 243, 238, 243, 244, 239, 240, 241, 236, 237, 238, 233, 234, 235, 230, 234, 235, 230, 237, 238, 233, 237, 238, 233, 235, 236, 231, 231, 232, 227, 233, 233, 231, 238, 238, 236, 242, 243, 238, 242, 243, 238, 239, 238, 234, 235, 234, 230, 234, 233, 229, 235, 234, 230, 234, 233, 228, 230, 229, 224, 236, 233, 228, 246, 243, 238, 247, 244, 239, 238, 235, 230, 231, 228, 221, 231, 228, 221, 237, 232, 226, 233, 228, 222, 232, 227, 221, 235, 230, 224, 231, 226, 220, 227, 222, 216, 232, 227, 221, 242, 237, 231, 234, 229, 223, 233, 228, 222, 231, 226, 220, 230, 225, 219, 228, 223, 217, 228, 223, 217, 228, 223, 217, 228, 223, 217, 234, 227, 221, 233, 226, 220, 231, 224, 218, 230, 223, 217, 229, 222, 216, 229, 222, 216, 229, 222, 216, 230, 223, 217, 230, 223, 217, 230, 223, 217, 229, 222, 216, 229, 222, 216, 229, 222, 216, 228, 221, 215, 228, 221, 215, 228, 221, 215, 225, 220, 214, 224, 221, 214, 225, 220, 216, 224, 221, 216, 225, 220, 216, 224, 221, 216, 225, 220, 216, 224, 221, 216, 226, 221, 217, 225, 221, 218, 226, 221, 218, 225, 221, 218, 226, 221, 218, 225, 221, 218, 226, 221, 218, 225, 221, 218, 226, 222, 219, 226, 222, 219, 226, 222, 219, 226, 222, 219, 226, 222, 219, 226, 222, 219, 226, 222, 219, 226, 222, 219, 227, 223, 220, 227, 223, 220, 227, 223, 220, 227, 223, 220, 227, 223, 220, 227, 223, 220, 227, 223, 220, 227, 223, 220, 227, 222, 219, 227, 222, 219, 228, 223, 220, 228, 223, 220, 228, 223, 220, 229, 224, 221, 229, 224, 221, 229, 224, 221, 228, 223, 220, 228, 223, 220, 228, 223, 220, 228, 223, 220, 229, 224, 221, 229, 224, 221, 230, 225, 222, 230, 225, 222, 228, 224, 221, 228, 224, 221, 228, 224, 221, 228, 224, 221, 228, 224, 221, 228, 224, 221, 228, 224, 221, 228, 224, 221, 229, 225, 222, 229, 225, 222, 229, 225, 222, 229, 225, 222, 229, 225, 222, 229, 225, 222, 229, 225, 222, 229, 225, 222, 231, 226, 222, 231, 226, 222, 231, 226, 222, 231, 226, 222, 230, 225, 221, 230, 225, 221, 230, 225, 221, 229, 224, 220, 230, 225, 221, 230, 225, 221, 230, 225, 221, 230, 225, 221, 230, 225, 221, 230, 225, 221, 230, 225, 221, 230, 225, 221, 226, 223, 218, 226, 223, 218, 225, 222, 217, 225, 222, 217, 225, 220, 214, 224, 219, 213, 226, 219, 213, 225, 218, 210, 226, 217, 210, 226, 217, 208, 225, 216, 207, 223, 214, 205, 223, 213, 203, 221, 211, 201, 220, 210, 200, 221, 209, 197, 221, 207, 194, 221, 208, 192, 222, 208, 195, 222, 208, 195, 225, 209, 196, 226, 210, 197, 226, 210, 197, 226, 210, 197, 224, 206, 194, 223, 205, 193, 222, 204, 190, 221, 204, 188, 221, 202, 187, 220, 201, 184, 219, 200, 183, 218, 199, 182, 218, 201, 183, 219, 202, 186, 219, 202, 186, 219, 202, 186, 220, 203, 187, 220, 203, 187, 220, 203, 187, 221, 204, 188, 220, 203, 187, 220, 203, 187, 221, 204, 188, 220, 204, 188, 220, 204, 188, 221, 205, 189, 221, 205, 189, 221, 205, 190, 222, 206, 193, 222, 206, 193, 222, 206, 193, 223, 207, 194, 221, 207, 194, 221, 207, 194, 222, 208, 195, 222, 208, 195, 224, 210, 197, 224, 210, 197, 223, 211, 197, 223, 211, 197, 223, 211, 197, 223, 211, 197, 223, 211, 197, 223, 211, 197, 225, 212, 203, 226, 213, 204, 226, 213, 204, 227, 214, 205, 228, 215, 206, 229, 216, 207, 227, 217, 207, 228, 218, 208, 227, 217, 207, 227, 217, 207, 226, 218, 207, 226, 218, 207, 226, 218, 207, 226, 218, 207, 226, 218, 207, 226, 218, 207, 228, 219, 210, 228, 219, 210, 228, 219, 210, 229, 220, 211, 228, 221, 211, 228, 221, 211, 229, 222, 214, 229, 222, 214, 237, 230, 222, 234, 227, 219, 229, 224, 218, 228, 223, 217, 228, 223, 217, 230, 225, 219, 230, 225, 219, 229, 224, 218, 230, 225, 219, 230, 225, 219, 230, 225, 219, 233, 228, 222, 237, 232, 226, 239, 234, 228, 239, 234, 228, 238, 233, 227, 231, 226, 220, 230, 225, 219, 231, 226, 220, 233, 228, 222, 235, 230, 224, 236, 231, 225, 234, 229, 223, 232, 227, 221, 233, 230, 225, 233, 230, 225, 233, 230, 225, 234, 231, 226, 235, 232, 227, 237, 234, 229, 237, 236, 231, 239, 238, 233, 234, 233, 228, 234, 233, 228, 233, 232, 227, 233, 232, 227, 233, 234, 228, 234, 235, 229, 235, 236, 230, 235, 236, 230, 236, 235, 231, 236, 235, 231, 237, 236, 232, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 240, 240, 238, 240, 240, 238, 241, 241, 239, 241, 241, 239, 241, 241, 239, 242, 242, 240, 242, 242, 240, 242, 242, 240, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 246, 245, 245, 247, 246, 244, 246, 245, 244, 246, 245, 242, 244, 243, 241, 243, 242, 240, 242, 241, 239, 241, 240, 239, 241, 240, 232, 233, 235, 232, 233, 235, 230, 231, 233, 228, 229, 231, 224, 225, 227, 221, 222, 224, 217, 218, 220, 216, 217, 219, 215, 216, 218, 215, 216, 218, 213, 214, 216, 210, 211, 213, 207, 208, 210, 203, 204, 206, 200, 201, 203, 198, 199, 201, 199, 201, 200, 196, 198, 197, 193, 193, 191, 190, 190, 188, 188, 188, 186, 185, 185, 183, 182, 181, 179, 179, 178, 176, 182, 178, 175, 178, 174, 171, 174, 169, 166, 171, 166, 163, 169, 164, 161, 167, 162, 159, 166, 158, 155, 163, 155, 152, 159, 151, 149, 158, 150, 148, 156, 148, 145, 154, 146, 143, 152, 145, 139, 151, 144, 138, 151, 144, 138, 151, 144, 138, 148, 141, 135, 149, 142, 136, 150, 143, 137, 152, 145, 139, 154, 146, 143, 156, 148, 145, 158, 150, 148, 158, 150, 148, 159, 153, 153, 161, 155, 155, 162, 157, 154, 164, 159, 156, 168, 160, 158, 168, 160, 158, 168, 160, 158, 168, 160, 158, 167, 157, 155, 166, 156, 154, 164, 154, 152, 163, 153, 151, 164, 154, 152, 166, 156, 154, 168, 159, 154, 169, 160, 155, 171, 163, 160, 173, 165, 162, 174, 166, 164, 177, 169, 167, 180, 172, 170, 180, 175, 172, 182, 176, 176, 183, 177, 177, 182, 178, 177, 184, 180, 179, 187, 183, 184, 189, 187, 188, 194, 192, 193, 198, 196, 197, 200, 200, 200, 201, 201, 203, 206, 207, 211, 207, 210, 215, 211, 214, 219, 216, 219, 224, 221, 224, 229, 224, 227, 232, 227, 230, 235, 228, 231, 236, 231, 234, 239, 232, 235, 240, 234, 237, 242, 237, 240, 245, 238, 241, 246, 239, 242, 247, 240, 243, 248, 240, 243, 248, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 249, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 244, 245, 249, 244, 245, 249, 243, 244, 248, 242, 243, 247, 242, 243, 247, 241, 242, 244, 240, 241, 243, 238, 240, 239, 236, 238, 237, 233, 235, 234, 231, 233, 232, 230, 232, 231, 230, 230, 230, 230, 230, 230, 229, 229, 227, 229, 229, 227, 230, 229, 227, 229, 228, 226, 229, 228, 224, 228, 227, 223, 228, 227, 223, 228, 227, 223, 228, 227, 223, 228, 227, 223, 228, 227, 223, 228, 227, 223, 228, 227, 223, 228, 227, 223, 228, 227, 223, 228, 227, 223, 234, 233, 229, 230, 229, 225, 225, 224, 220, 224, 223, 219, 227, 226, 222, 232, 231, 227, 236, 235, 231, 238, 237, 233, 235, 234, 230, 234, 233, 229, 232, 231, 227, 231, 230, 226, 231, 230, 226, 231, 230, 226, 232, 231, 227, 232, 231, 227, 233, 232, 228, 233, 232, 228, 233, 232, 228, 233, 232, 228, 234, 233, 229, 234, 233, 229, 234, 233, 229, 234, 233, 229, 234, 234, 232, 236, 236, 234, 239, 239, 237, 241, 241, 239, 242, 242, 240, 242, 242, 240, 240, 240, 238, 239, 239, 237, 236, 236, 234, 235, 235, 233, 234, 234, 232, 236, 236, 234, 237, 237, 235, 237, 237, 235, 234, 234, 232, 231, 231, 229, 239, 239, 237, 241, 241, 239, 241, 242, 237, 239, 240, 235, 236, 235, 231, 234, 233, 229, 234, 233, 229, 235, 234, 230, 233, 232, 227, 233, 232, 227, 240, 237, 232, 245, 242, 237, 243, 240, 235, 235, 232, 227, 231, 228, 221, 233, 230, 223, 235, 230, 224, 232, 227, 221, 232, 227, 221, 234, 229, 223, 232, 227, 221, 230, 225, 219, 235, 230, 224, 242, 237, 231, 234, 229, 223, 233, 228, 222, 231, 226, 220, 229, 224, 218, 229, 224, 218, 228, 223, 217, 229, 224, 218, 229, 224, 218, 233, 226, 218, 232, 225, 217, 231, 224, 216, 229, 222, 214, 229, 222, 214, 229, 222, 214, 229, 222, 214, 229, 222, 214, 229, 222, 214, 229, 222, 214, 229, 222, 214, 229, 222, 214, 228, 221, 213, 228, 221, 213, 227, 220, 212, 227, 220, 212, 226, 219, 211, 224, 220, 211, 226, 219, 213, 224, 219, 213, 226, 219, 213, 224, 219, 213, 226, 219, 213, 224, 219, 213, 227, 220, 214, 225, 220, 216, 227, 219, 216, 225, 220, 216, 227, 219, 216, 225, 220, 216, 227, 219, 216, 225, 220, 216, 226, 221, 217, 226, 221, 217, 226, 221, 217, 226, 221, 217, 226, 221, 217, 226, 221, 217, 226, 221, 217, 226, 221, 217, 227, 222, 218, 227, 222, 218, 227, 222, 218, 227, 222, 218, 227, 222, 218, 227, 222, 218, 227, 222, 218, 227, 222, 218, 227, 222, 219, 227, 222, 219, 227, 222, 219, 227, 222, 219, 228, 223, 220, 228, 223, 220, 228, 223, 220, 229, 224, 221, 228, 223, 220, 228, 223, 220, 229, 224, 221, 229, 224, 221, 230, 225, 222, 230, 225, 222, 230, 225, 222, 230, 225, 222, 229, 225, 222, 229, 225, 222, 229, 225, 222, 229, 225, 222, 229, 225, 222, 229, 225, 222, 229, 225, 222, 229, 225, 222, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 232, 227, 223, 231, 226, 222, 231, 226, 222, 231, 226, 222, 230, 225, 221, 230, 225, 221, 230, 225, 221, 229, 224, 220, 229, 224, 220, 229, 224, 220, 229, 224, 220, 229, 224, 220, 229, 224, 220, 229, 224, 220, 229, 224, 220, 229, 224, 220, 226, 221, 217, 226, 221, 217, 226, 221, 215, 225, 220, 214, 226, 219, 213, 225, 218, 212, 226, 217, 210, 225, 216, 209, 225, 216, 209, 225, 216, 207, 225, 215, 206, 223, 213, 203, 224, 211, 202, 223, 210, 201, 222, 210, 198, 222, 210, 198, 223, 209, 196, 222, 209, 193, 220, 207, 191, 220, 207, 191, 222, 206, 193, 224, 208, 195, 226, 209, 199, 228, 211, 201, 223, 207, 194, 222, 206, 193, 223, 205, 191, 221, 204, 188, 220, 203, 187, 219, 202, 184, 218, 201, 183, 218, 201, 183, 219, 200, 183, 220, 201, 184, 219, 202, 184, 219, 202, 184, 220, 203, 187, 220, 203, 187, 220, 203, 187, 221, 204, 188, 219, 203, 188, 220, 204, 189, 220, 204, 189, 220, 204, 189, 221, 205, 190, 219, 206, 190, 219, 206, 190, 219, 205, 192, 222, 206, 193, 222, 206, 193, 220, 206, 193, 221, 207, 194, 221, 207, 194, 221, 207, 194, 222, 208, 195, 222, 208, 195, 223, 211, 197, 223, 211, 197, 223, 211, 197, 223, 211, 197, 223, 211, 197, 223, 211, 197, 221, 212, 197, 221, 212, 197, 224, 211, 202, 224, 211, 202, 225, 212, 203, 226, 213, 204, 225, 215, 205, 225, 215, 205, 226, 216, 206, 226, 216, 206, 227, 219, 208, 227, 219, 208, 227, 219, 208, 227, 219, 208, 227, 219, 208, 227, 219, 208, 227, 219, 208, 227, 219, 208, 228, 219, 210, 228, 219, 210, 228, 219, 210, 229, 220, 211, 228, 221, 211, 228, 221, 211, 229, 222, 214, 229, 222, 214, 233, 226, 218, 234, 227, 219, 232, 227, 221, 230, 225, 219, 228, 223, 217, 227, 222, 216, 229, 224, 218, 232, 227, 221, 233, 228, 222, 232, 227, 221, 231, 226, 220, 229, 224, 218, 229, 224, 218, 233, 228, 222, 239, 234, 228, 244, 239, 233, 238, 233, 227, 234, 229, 223, 230, 225, 219, 230, 225, 219, 234, 229, 223, 236, 231, 225, 234, 229, 223, 231, 226, 220, 233, 230, 225, 233, 230, 225, 233, 230, 225, 234, 231, 226, 235, 232, 227, 237, 234, 229, 237, 236, 231, 238, 237, 232, 238, 237, 232, 237, 236, 231, 234, 233, 228, 232, 231, 226, 231, 232, 226, 232, 233, 227, 234, 235, 229, 235, 236, 230, 236, 235, 231, 236, 235, 231, 237, 236, 232, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 240, 240, 238, 240, 240, 238, 241, 241, 239, 241, 241, 239, 241, 241, 239, 242, 242, 240, 242, 242, 240, 242, 242, 240, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 244, 246, 245, 243, 245, 244, 241, 243, 242, 240, 242, 241, 239, 241, 240, 239, 241, 240, 232, 233, 235, 231, 232, 234, 230, 231, 233, 228, 229, 231, 224, 225, 227, 221, 222, 224, 217, 218, 220, 215, 216, 218, 217, 218, 220, 216, 217, 219, 215, 216, 218, 212, 213, 215, 207, 208, 210, 200, 201, 203, 195, 196, 198, 191, 192, 194, 197, 197, 197, 193, 193, 191, 188, 188, 186, 184, 184, 182, 182, 181, 179, 179, 178, 176, 174, 173, 169, 170, 169, 165, 174, 170, 167, 171, 167, 164, 168, 163, 160, 165, 160, 157, 167, 159, 156, 166, 158, 155, 164, 156, 153, 162, 154, 151, 159, 151, 149, 157, 149, 147, 154, 146, 143, 151, 143, 140, 148, 141, 135, 146, 139, 133, 145, 138, 132, 145, 138, 132, 142, 135, 129, 143, 136, 130, 145, 138, 132, 148, 141, 135, 151, 143, 140, 154, 146, 143, 156, 148, 146, 157, 149, 147, 159, 153, 153, 160, 154, 154, 162, 157, 154, 164, 159, 156, 167, 159, 157, 167, 159, 157, 167, 159, 157, 167, 159, 157, 169, 159, 157, 167, 157, 155, 165, 155, 153, 164, 154, 152, 163, 153, 151, 164, 154, 152, 166, 157, 152, 167, 158, 153, 170, 160, 158, 171, 161, 159, 173, 163, 161, 174, 166, 163, 177, 169, 167, 179, 171, 169, 179, 174, 171, 180, 175, 172, 180, 175, 172, 180, 176, 173, 183, 179, 178, 187, 183, 182, 189, 188, 186, 193, 192, 190, 196, 195, 193, 197, 197, 197, 202, 203, 207, 203, 206, 211, 207, 210, 215, 212, 215, 220, 217, 220, 225, 221, 224, 229, 224, 227, 232, 225, 228, 233, 230, 233, 238, 232, 235, 240, 234, 237, 242, 236, 239, 244, 238, 241, 246, 240, 243, 248, 240, 243, 248, 240, 243, 248, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 249, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 244, 245, 249, 243, 244, 248, 242, 243, 247, 242, 243, 247, 242, 243, 245, 240, 241, 243, 239, 241, 240, 237, 239, 238, 234, 236, 235, 232, 234, 233, 231, 233, 232, 231, 231, 231, 231, 231, 231, 230, 230, 228, 230, 230, 228, 230, 229, 227, 230, 229, 227, 230, 229, 225, 229, 228, 224, 229, 228, 224, 229, 228, 224, 229, 228, 224, 229, 228, 224, 229, 228, 224, 229, 228, 224, 229, 228, 224, 229, 228, 224, 229, 228, 224, 229, 228, 224, 233, 232, 228, 229, 228, 224, 225, 224, 220, 226, 225, 221, 232, 231, 227, 237, 236, 232, 237, 236, 232, 235, 234, 230, 234, 233, 229, 233, 232, 228, 232, 231, 227, 231, 230, 226, 231, 230, 226, 232, 231, 227, 233, 232, 228, 233, 232, 228, 233, 232, 228, 233, 232, 228, 234, 233, 229, 234, 233, 229, 235, 234, 230, 236, 235, 231, 236, 235, 231, 236, 235, 231, 234, 234, 232, 237, 237, 235, 240, 240, 238, 243, 243, 241, 243, 243, 241, 241, 241, 239, 238, 238, 236, 236, 236, 234, 234, 234, 232, 235, 235, 233, 236, 236, 234, 237, 237, 235, 238, 238, 236, 236, 236, 234, 234, 234, 232, 232, 232, 230, 244, 244, 242, 243, 243, 241, 240, 241, 236, 236, 237, 232, 234, 233, 229, 233, 232, 228, 234, 233, 229, 235, 234, 230, 233, 232, 227, 237, 236, 231, 244, 241, 236, 244, 241, 236, 239, 236, 231, 233, 230, 225, 233, 230, 223, 235, 232, 225, 232, 227, 221, 231, 226, 220, 232, 227, 221, 233, 228, 222, 234, 229, 223, 234, 229, 223, 237, 232, 226, 241, 236, 230, 233, 228, 222, 232, 227, 221, 230, 225, 219, 229, 224, 218, 229, 224, 218, 229, 224, 218, 229, 224, 218, 230, 225, 219, 233, 226, 218, 232, 225, 217, 231, 224, 216, 229, 222, 214, 228, 221, 213, 228, 221, 213, 229, 222, 214, 229, 222, 214, 229, 222, 214, 228, 221, 213, 228, 221, 213, 228, 221, 213, 227, 220, 212, 227, 220, 212, 227, 220, 212, 226, 219, 211, 226, 219, 211, 226, 219, 211, 226, 219, 211, 226, 219, 211, 226, 219, 211, 226, 219, 211, 226, 219, 213, 226, 219, 213, 226, 219, 213, 226, 219, 213, 226, 219, 213, 226, 218, 215, 226, 218, 215, 226, 218, 215, 226, 218, 215, 226, 218, 215, 227, 219, 216, 225, 220, 216, 225, 220, 216, 225, 220, 216, 225, 220, 216, 225, 220, 216, 225, 220, 216, 225, 220, 216, 226, 221, 217, 226, 221, 217, 226, 221, 217, 226, 221, 217, 226, 221, 217, 226, 221, 217, 226, 221, 217, 226, 221, 217, 226, 221, 218, 226, 221, 218, 226, 221, 218, 227, 222, 219, 227, 222, 219, 227, 222, 219, 228, 223, 220, 228, 223, 220, 229, 224, 221, 229, 224, 221, 229, 224, 221, 229, 224, 221, 230, 225, 222, 230, 225, 222, 230, 225, 222, 231, 226, 223, 229, 225, 222, 229, 225, 222, 229, 225, 222, 229, 225, 222, 229, 225, 222, 229, 225, 222, 229, 225, 222, 229, 225, 222, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 230, 226, 223, 231, 226, 222, 231, 226, 222, 231, 226, 222, 230, 225, 221, 230, 225, 221, 229, 224, 220, 229, 224, 220, 229, 224, 220, 227, 222, 218, 227, 222, 218, 227, 222, 218, 227, 222, 218, 227, 222, 218, 227, 222, 218, 227, 222, 218, 227, 222, 218, 225, 220, 216, 225, 220, 216, 224, 219, 213, 224, 219, 213, 225, 218, 212, 224, 217, 209, 224, 215, 208, 224, 215, 206, 224, 215, 206, 223, 214, 205, 223, 213, 203, 223, 213, 203, 224, 211, 202, 223, 210, 201, 222, 210, 198, 222, 210, 196, 225, 211, 198, 223, 210, 194, 219, 206, 190, 217, 204, 188, 219, 203, 190, 222, 206, 193, 225, 208, 198, 228, 211, 201, 223, 207, 194, 223, 207, 194, 223, 205, 193, 222, 204, 190, 221, 203, 189, 219, 202, 186, 219, 202, 186, 218, 201, 183, 219, 200, 183, 220, 201, 184, 219, 202, 184, 219, 202, 184, 220, 203, 187, 220, 203, 187, 220, 203, 187, 221, 204, 188, 220, 204, 189, 220, 204, 189, 220, 204, 189, 221, 205, 190, 219, 206, 190, 219, 206, 190, 220, 206, 193, 220, 206, 193, 222, 206, 193, 222, 206, 193, 220, 206, 193, 221, 207, 194, 221, 207, 194, 221, 207, 194, 222, 208, 195, 222, 208, 195, 223, 211, 197, 223, 211, 197, 223, 211, 197, 223, 211, 197, 223, 211, 197, 223, 211, 197, 221, 212, 197, 221, 211, 199, 223, 210, 201, 223, 210, 201, 224, 211, 202, 225, 212, 203, 224, 214, 204, 224, 214, 204, 225, 215, 205, 225, 215, 205, 227, 219, 208, 227, 219, 208, 227, 219, 208, 227, 219, 208, 227, 219, 208, 227, 219, 208, 227, 219, 208, 227, 219, 208, 228, 219, 210, 228, 219, 210, 228, 219, 210, 229, 220, 211, 228, 221, 211, 228, 221, 211, 229, 222, 214, 229, 222, 214, 230, 223, 215, 233, 226, 218, 234, 229, 223, 232, 227, 221, 227, 222, 216, 226, 221, 215, 229, 224, 218, 233, 228, 222, 231, 226, 220, 233, 228, 222, 233, 228, 222, 230, 225, 219, 227, 222, 216, 229, 224, 218, 237, 232, 226, 244, 239, 233, 244, 239, 233, 237, 232, 226, 230, 225, 219, 230, 225, 219, 233, 228, 222, 235, 230, 224, 233, 228, 222, 230, 225, 219, 234, 231, 226, 233, 230, 225, 233, 230, 225, 233, 230, 225, 234, 231, 226, 236, 233, 228, 236, 235, 230, 237, 236, 231, 241, 240, 235, 238, 237, 232, 235, 234, 229, 232, 231, 226, 230, 231, 225, 231, 232, 226, 233, 234, 228, 235, 236, 230, 236, 235, 231, 236, 235, 231, 237, 236, 232, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 240, 240, 238, 240, 240, 238, 241, 241, 239, 241, 241, 239, 241, 241, 239, 242, 242, 240, 242, 242, 240, 242, 242, 240, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 248, 250, 249, 247, 249, 248, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 247, 246, 244, 246, 245, 243, 245, 244, 242, 244, 243, 241, 243, 242, 240, 242, 241, 239, 241, 240, 234, 235, 237, 234, 235, 237, 232, 233, 235, 230, 231, 233, 227, 228, 230, 223, 224, 226, 220, 221, 223, 218, 219, 221, 217, 218, 220, 217, 218, 220, 216, 217, 219, 213, 214, 216, 209, 210, 212, 202, 203, 205, 196, 197, 199, 192, 194, 193, 195, 195, 195, 191, 191, 189, 185, 185, 183, 181, 181, 179, 178, 177, 175, 173, 172, 170, 168, 167, 163, 164, 163, 159, 168, 164, 161, 165, 161, 158, 163, 158, 155, 161, 156, 153, 163, 155, 152, 163, 155, 152, 162, 154, 151, 160, 152, 149, 159, 151, 149, 157, 149, 147, 153, 145, 142, 149, 141, 138, 145, 138, 132, 143, 136, 130, 141, 134, 128, 140, 133, 127, 139, 132, 126, 141, 134, 128, 143, 136, 130, 146, 139, 133, 150, 142, 139, 153, 145, 142, 155, 147, 145, 157, 149, 147, 158, 152, 152, 159, 153, 153, 161, 156, 153, 163, 158, 155, 166, 158, 156, 167, 159, 157, 167, 159, 157, 166, 158, 156, 170, 160, 158, 168, 158, 156, 166, 156, 154, 163, 153, 151, 162, 152, 150, 163, 153, 151, 164, 155, 150, 165, 156, 151, 168, 158, 156, 169, 159, 157, 170, 160, 158, 172, 162, 160, 174, 166, 164, 176, 168, 166, 177, 169, 167, 176, 171, 168, 178, 173, 170, 180, 175, 172, 181, 177, 176, 185, 181, 180, 187, 186, 184, 191, 190, 188, 193, 192, 190, 194, 194, 194, 199, 200, 204, 200, 203, 208, 205, 208, 213, 210, 213, 218, 215, 218, 223, 220, 223, 228, 222, 225, 230, 224, 227, 232, 229, 232, 237, 231, 234, 239, 233, 236, 241, 236, 239, 244, 239, 242, 247, 240, 243, 248, 241, 244, 249, 241, 244, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 249, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 244, 245, 249, 243, 244, 248, 242, 243, 247, 242, 243, 245, 241, 242, 244, 240, 242, 241, 237, 239, 238, 235, 237, 236, 233, 235, 234, 231, 233, 232, 232, 232, 232, 232, 232, 232, 231, 231, 229, 231, 231, 229, 231, 230, 228, 231, 230, 228, 230, 229, 225, 230, 229, 225, 230, 229, 225, 230, 229, 225, 229, 230, 225, 229, 230, 225, 229, 230, 225, 229, 230, 225, 229, 230, 225, 229, 230, 225, 229, 230, 225, 229, 230, 225, 229, 230, 225, 227, 228, 223, 227, 228, 223, 231, 232, 227, 237, 238, 233, 238, 239, 234, 234, 235, 230, 229, 230, 225, 233, 234, 229, 232, 233, 228, 231, 232, 227, 231, 232, 227, 231, 232, 227, 232, 233, 228, 233, 234, 229, 234, 235, 230, 232, 233, 228, 233, 234, 229, 233, 234, 229, 234, 235, 230, 235, 236, 231, 236, 237, 232, 237, 238, 233, 237, 238, 233, 236, 236, 234, 238, 238, 236, 241, 241, 239, 243, 243, 241, 243, 243, 241, 240, 240, 238, 237, 237, 235, 234, 234, 232, 234, 234, 232, 235, 235, 233, 237, 237, 235, 237, 237, 235, 237, 237, 235, 236, 236, 234, 236, 236, 234, 236, 236, 234, 246, 246, 244, 243, 243, 241, 238, 239, 234, 234, 235, 230, 234, 233, 229, 234, 233, 229, 234, 233, 229, 235, 234, 230, 235, 234, 229, 240, 239, 234, 245, 242, 237, 242, 239, 234, 236, 233, 228, 234, 231, 226, 234, 231, 224, 236, 233, 226, 232, 228, 219, 233, 229, 220, 232, 228, 219, 232, 228, 219, 235, 231, 222, 238, 234, 225, 239, 235, 226, 238, 234, 225, 232, 228, 219, 231, 227, 218, 230, 226, 217, 229, 225, 216, 229, 225, 216, 229, 225, 216, 230, 226, 217, 231, 227, 218, 233, 226, 218, 233, 224, 217, 231, 222, 215, 230, 221, 214, 229, 220, 213, 229, 220, 213, 229, 220, 213, 229, 220, 213, 229, 220, 213, 229, 220, 213, 228, 219, 212, 228, 219, 212, 228, 219, 212, 227, 218, 211, 227, 218, 211, 227, 218, 211, 226, 217, 208, 226, 217, 208, 226, 217, 208, 226, 217, 208, 226, 217, 208, 226, 217, 208, 226, 217, 210, 226, 217, 210, 226, 217, 210, 226, 217, 210, 226, 217, 210, 226, 217, 212, 226, 217, 212, 226, 217, 212, 226, 217, 212, 225, 218, 212, 225, 218, 212, 225, 218, 212, 225, 218, 212, 225, 218, 212, 225, 218, 212, 225, 218, 212, 225, 218, 212, 225, 218, 212, 227, 220, 214, 227, 220, 214, 227, 220, 214, 227, 220, 214, 227, 220, 214, 227, 220, 214, 227, 220, 214, 227, 219, 216, 225, 220, 217, 225, 220, 217, 225, 220, 217, 226, 221, 218, 226, 221, 218, 227, 222, 219, 227, 222, 219, 227, 222, 219, 228, 223, 220, 228, 223, 220, 229, 224, 221, 229, 224, 221, 229, 224, 221, 230, 225, 222, 230, 225, 222, 230, 225, 222, 229, 225, 222, 229, 225, 222, 229, 225, 222, 229, 225, 222, 229, 225, 222, 229, 225, 222, 229, 225, 222, 229, 225, 222, 229, 225, 222, 229, 225, 222, 229, 225, 222, 229, 225, 222, 229, 225, 222, 229, 225, 222, 229, 225, 222, 229, 225, 222, 230, 225, 221, 230, 225, 221, 229, 224, 220, 229, 224, 220, 229, 224, 220, 228, 223, 219, 228, 223, 219, 228, 223, 219, 226, 221, 217, 226, 221, 217, 226, 221, 217, 226, 221, 217, 226, 221, 217, 226, 221, 217, 226, 221, 217, 226, 221, 217, 224, 219, 213, 224, 219, 213, 225, 218, 212, 224, 217, 211, 224, 217, 209, 223, 216, 208, 223, 214, 207, 223, 214, 205, 223, 213, 204, 223, 213, 203, 224, 211, 202, 224, 211, 202, 223, 211, 199, 222, 210, 198, 223, 209, 198, 223, 209, 196, 225, 211, 198, 222, 209, 193, 219, 205, 192, 217, 203, 190, 216, 202, 189, 219, 205, 192, 222, 208, 197, 224, 210, 199, 224, 207, 197, 223, 207, 194, 222, 206, 193, 221, 205, 190, 220, 204, 189, 219, 203, 187, 218, 202, 186, 218, 201, 185, 219, 200, 183, 220, 201, 184, 220, 201, 184, 220, 201, 184, 220, 203, 187, 220, 203, 187, 219, 203, 187, 220, 204, 188, 220, 204, 189, 220, 204, 189, 219, 205, 192, 219, 205, 192, 219, 205, 192, 220, 206, 193, 219, 207, 193, 219, 207, 193, 220, 206, 195, 220, 206, 195, 220, 206, 195, 221, 207, 196, 221, 207, 196, 221, 207, 196, 221, 209, 197, 221, 209, 197, 223, 211, 199, 223, 211, 199, 223, 211, 199, 223, 211, 199, 221, 211, 199, 221, 211, 199, 221, 211, 199, 221, 211, 199, 221, 211, 201, 221, 211, 201, 222, 212, 202, 222, 212, 202, 223, 213, 203, 224, 214, 204, 225, 215, 205, 225, 215, 205, 227, 219, 208, 227, 219, 208, 227, 219, 208, 227, 219, 208, 226, 220, 208, 226, 220, 208, 226, 220, 208, 226, 220, 208, 228, 219, 210, 228, 219, 210, 228, 219, 210, 229, 220, 211, 228, 221, 211, 228, 221, 211, 229, 222, 214, 229, 222, 214, 228, 221, 213, 232, 225, 217, 234, 229, 223, 233, 228, 222, 229, 224, 218, 227, 222, 216, 230, 225, 219, 233, 228, 222, 227, 222, 216, 231, 226, 220, 234, 229, 223, 233, 228, 222, 230, 225, 219, 230, 225, 219, 234, 229, 223, 239, 234, 228, 244, 239, 233, 239, 234, 228, 233, 228, 222, 231, 226, 220, 233, 228, 222, 234, 229, 223, 233, 228, 222, 231, 226, 220, 234, 231, 226, 234, 231, 226, 233, 230, 225, 233, 230, 225, 234, 231, 226, 235, 232, 227, 234, 233, 228, 235, 234, 229, 240, 239, 234, 239, 238, 233, 236, 235, 230, 234, 233, 228, 232, 233, 227, 232, 233, 227, 233, 234, 228, 234, 235, 229, 236, 235, 230, 236, 235, 230, 237, 236, 231, 237, 236, 231, 237, 236, 231, 238, 237, 232, 238, 237, 232, 238, 237, 232, 239, 238, 233, 239, 238, 233, 239, 238, 233, 239, 238, 233, 240, 239, 234, 240, 239, 234, 241, 240, 235, 241, 240, 236, 240, 240, 238, 240, 240, 238, 241, 241, 239, 241, 241, 239, 241, 241, 239, 242, 242, 240, 242, 242, 240, 242, 242, 240, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 243, 245, 244, 242, 244, 243, 241, 243, 242, 240, 242, 241, 240, 242, 241, 238, 239, 241, 237, 238, 240, 236, 237, 239, 233, 234, 236, 230, 231, 233, 226, 227, 229, 223, 224, 226, 221, 222, 224, 215, 216, 218, 215, 216, 218, 215, 216, 218, 214, 215, 217, 211, 212, 214, 207, 208, 210, 203, 204, 206, 200, 202, 201, 197, 197, 197, 192, 192, 190, 187, 187, 185, 182, 182, 180, 179, 178, 174, 174, 173, 169, 170, 166, 163, 166, 162, 159, 167, 162, 159, 164, 159, 156, 161, 156, 152, 160, 155, 151, 162, 154, 151, 163, 155, 152, 161, 153, 150, 160, 152, 149, 159, 151, 149, 157, 149, 147, 153, 145, 142, 149, 141, 138, 145, 138, 132, 142, 135, 129, 140, 133, 127, 139, 132, 126, 140, 133, 127, 142, 135, 129, 144, 137, 131, 147, 140, 134, 151, 143, 140, 154, 146, 143, 157, 149, 147, 158, 150, 148, 157, 151, 151, 158, 152, 152, 160, 155, 152, 162, 157, 154, 165, 157, 155, 166, 158, 156, 166, 158, 156, 166, 158, 156, 170, 160, 158, 168, 158, 156, 165, 155, 153, 163, 153, 151, 162, 152, 150, 162, 152, 150, 164, 155, 150, 165, 156, 151, 168, 157, 155, 169, 158, 156, 169, 159, 157, 171, 161, 159, 173, 163, 161, 174, 166, 163, 175, 167, 165, 176, 168, 166, 179, 174, 171, 180, 175, 172, 181, 177, 174, 185, 181, 178, 188, 184, 181, 192, 188, 185, 194, 190, 187, 193, 192, 190, 198, 199, 203, 198, 201, 206, 203, 206, 211, 209, 212, 217, 215, 218, 223, 219, 222, 227, 222, 225, 230, 224, 227, 232, 228, 231, 236, 230, 233, 238, 233, 236, 241, 236, 239, 244, 239, 242, 247, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 249, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 246, 247, 251, 246, 247, 251, 245, 246, 250, 244, 245, 249, 243, 244, 248, 243, 244, 248, 242, 243, 245, 242, 243, 245, 241, 243, 242, 238, 240, 239, 236, 238, 237, 234, 236, 235, 232, 234, 233, 233, 233, 233, 233, 233, 233, 231, 231, 229, 231, 231, 229, 232, 231, 229, 232, 231, 229, 231, 230, 226, 231, 230, 226, 231, 230, 226, 230, 229, 225, 230, 231, 226, 230, 231, 226, 230, 231, 226, 230, 231, 226, 230, 231, 226, 230, 231, 226, 230, 231, 226, 230, 231, 226, 228, 229, 224, 229, 230, 225, 232, 233, 228, 236, 237, 232, 238, 239, 234, 236, 237, 232, 231, 232, 227, 227, 228, 223, 232, 233, 228, 232, 233, 228, 231, 232, 227, 231, 232, 227, 231, 232, 227, 233, 234, 229, 234, 235, 230, 235, 236, 231, 233, 234, 229, 233, 234, 229, 234, 235, 230, 235, 236, 231, 237, 238, 233, 238, 239, 234, 239, 240, 235, 239, 240, 235, 239, 239, 237, 240, 240, 238, 242, 242, 240, 242, 242, 240, 241, 241, 239, 239, 239, 237, 236, 236, 234, 234, 234, 232, 236, 236, 234, 237, 237, 235, 238, 238, 236, 237, 237, 235, 235, 235, 233, 236, 236, 234, 239, 239, 237, 242, 242, 240, 245, 245, 243, 241, 241, 239, 236, 237, 232, 234, 235, 230, 235, 234, 230, 236, 235, 231, 236, 235, 231, 235, 234, 230, 238, 237, 232, 242, 241, 236, 244, 241, 236, 238, 235, 230, 234, 231, 226, 236, 233, 228, 236, 233, 226, 234, 231, 224, 233, 229, 220, 235, 231, 222, 234, 230, 221, 232, 228, 219, 235, 231, 222, 240, 236, 227, 239, 235, 226, 233, 229, 220, 231, 227, 218, 230, 226, 217, 230, 226, 217, 229, 225, 216, 229, 225, 216, 230, 226, 217, 231, 227, 218, 233, 226, 218, 233, 224, 217, 232, 223, 216, 231, 222, 215, 229, 220, 213, 228, 219, 212, 228, 219, 212, 229, 220, 213, 229, 220, 213, 228, 219, 212, 228, 219, 212, 228, 219, 212, 227, 218, 211, 227, 218, 211, 226, 217, 210, 226, 217, 210, 226, 217, 208, 225, 216, 207, 225, 216, 207, 225, 216, 207, 225, 216, 207, 225, 216, 207, 225, 216, 207, 225, 216, 207, 225, 216, 207, 224, 215, 208, 224, 215, 208, 224, 215, 208, 224, 215, 208, 224, 215, 210, 224, 215, 210, 224, 215, 210, 224, 215, 210, 225, 216, 211, 224, 217, 211, 224, 217, 211, 224, 217, 211, 224, 217, 211, 224, 217, 211, 224, 217, 211, 224, 217, 211, 225, 218, 212, 225, 218, 212, 225, 218, 212, 225, 218, 212, 225, 218, 212, 225, 218, 212, 225, 218, 212, 225, 218, 212, 224, 219, 215, 224, 219, 216, 225, 220, 217, 225, 220, 217, 225, 220, 217, 226, 221, 218, 226, 221, 218, 226, 221, 218, 227, 222, 219, 227, 222, 219, 228, 223, 220, 228, 223, 220, 228, 223, 220, 229, 224, 221, 229, 224, 221, 229, 224, 221, 228, 224, 221, 228, 224, 221, 228, 224, 221, 228, 224, 221, 228, 224, 221, 228, 224, 221, 228, 224, 221, 228, 224, 221, 228, 224, 221, 228, 224, 221, 228, 224, 221, 228, 224, 221, 228, 224, 221, 228, 224, 221, 228, 224, 221, 228, 224, 221, 228, 223, 219, 228, 223, 219, 228, 223, 219, 227, 222, 218, 227, 222, 218, 226, 221, 217, 226, 221, 217, 226, 221, 217, 224, 219, 215, 224, 219, 215, 224, 219, 215, 224, 219, 215, 224, 219, 215, 224, 219, 215, 224, 219, 215, 224, 219, 215, 223, 218, 212, 223, 218, 212, 224, 217, 211, 223, 216, 210, 222, 215, 207, 222, 215, 207, 222, 213, 204, 222, 213, 204, 221, 211, 201, 221, 211, 201, 223, 210, 201, 223, 210, 201, 222, 210, 198, 222, 210, 198, 223, 209, 198, 223, 209, 196, 223, 210, 194, 222, 209, 193, 219, 205, 192, 218, 204, 191, 217, 203, 190, 218, 204, 191, 220, 206, 195, 221, 207, 196, 224, 207, 197, 224, 207, 197, 223, 206, 196, 222, 206, 193, 220, 204, 191, 219, 203, 188, 218, 202, 187, 218, 202, 186, 218, 201, 183, 220, 201, 184, 220, 201, 184, 220, 201, 184, 220, 203, 187, 220, 203, 187, 219, 203, 187, 220, 204, 188, 221, 205, 190, 221, 205, 190, 219, 205, 192, 219, 205, 192, 220, 206, 193, 220, 206, 193, 219, 207, 193, 220, 208, 194, 220, 206, 195, 220, 206, 195, 220, 206, 195, 221, 207, 196, 221, 207, 196, 221, 207, 196, 221, 209, 197, 221, 209, 197, 223, 211, 199, 223, 211, 199, 223, 211, 199, 223, 211, 199, 221, 211, 199, 221, 211, 199, 221, 211, 199, 221, 211, 199, 221, 211, 201, 221, 211, 201, 222, 212, 202, 223, 213, 203, 223, 213, 203, 224, 214, 204, 225, 215, 205, 225, 215, 205, 227, 219, 208, 227, 219, 208, 227, 219, 208, 227, 219, 208, 226, 220, 208, 226, 220, 208, 226, 220, 208, 226, 220, 208, 228, 219, 210, 228, 219, 210, 228, 219, 210, 229, 220, 211, 228, 221, 211, 228, 221, 211, 229, 222, 214, 229, 222, 214, 228, 221, 213, 231, 224, 216, 232, 227, 221, 232, 227, 221, 231, 226, 220, 230, 225, 219, 230, 225, 219, 231, 226, 220, 226, 221, 215, 229, 224, 218, 233, 228, 222, 234, 229, 223, 233, 228, 222, 232, 227, 221, 232, 227, 221, 232, 227, 221, 240, 235, 229, 239, 234, 228, 237, 232, 226, 235, 230, 224, 234, 229, 223, 233, 228, 222, 233, 228, 222, 234, 229, 223, 234, 231, 226, 234, 231, 226, 233, 230, 225, 233, 230, 225, 233, 230, 225, 234, 231, 226, 233, 232, 227, 234, 233, 228, 237, 236, 231, 237, 236, 231, 237, 236, 231, 236, 235, 230, 235, 236, 230, 234, 235, 229, 234, 235, 229, 234, 235, 229, 236, 235, 230, 236, 235, 230, 237, 236, 231, 237, 236, 231, 237, 236, 231, 238, 237, 232, 238, 237, 232, 238, 237, 232, 239, 238, 233, 239, 238, 233, 239, 238, 233, 239, 238, 233, 240, 239, 234, 240, 239, 234, 241, 240, 235, 241, 240, 235, 240, 240, 238, 240, 240, 238, 241, 241, 239, 241, 241, 239, 241, 241, 239, 242, 242, 240, 242, 242, 240, 242, 242, 240, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 245, 247, 246, 244, 246, 245, 243, 245, 244, 241, 243, 242, 241, 243, 242, 240, 242, 241, 240, 241, 243, 240, 241, 243, 238, 239, 241, 236, 237, 239, 232, 233, 235, 229, 230, 232, 225, 226, 228, 224, 225, 227, 215, 216, 218, 214, 215, 217, 213, 214, 216, 212, 213, 215, 210, 211, 213, 209, 210, 212, 208, 209, 211, 208, 210, 209, 201, 201, 201, 197, 197, 195, 192, 192, 190, 187, 187, 185, 184, 183, 179, 180, 179, 175, 176, 172, 169, 172, 168, 165, 169, 164, 161, 166, 161, 158, 163, 158, 154, 161, 156, 152, 164, 156, 153, 164, 156, 153, 162, 154, 151, 160, 152, 149, 160, 152, 150, 158, 150, 148, 154, 146, 143, 150, 142, 139, 146, 139, 133, 144, 137, 131, 142, 135, 129, 141, 134, 128, 143, 136, 130, 144, 137, 131, 146, 139, 133, 149, 142, 136, 152, 144, 141, 155, 147, 144, 157, 149, 147, 158, 150, 148, 157, 151, 151, 158, 152, 152, 160, 155, 152, 161, 156, 153, 165, 157, 155, 165, 157, 155, 165, 157, 155, 165, 157, 155, 168, 158, 156, 166, 156, 154, 164, 154, 152, 162, 152, 150, 162, 152, 150, 163, 153, 151, 164, 155, 150, 166, 157, 152, 169, 158, 156, 169, 158, 156, 169, 159, 157, 171, 161, 159, 172, 162, 160, 174, 164, 162, 174, 166, 164, 175, 167, 165, 178, 173, 170, 180, 175, 172, 182, 177, 174, 184, 180, 177, 187, 183, 180, 190, 186, 183, 193, 189, 186, 192, 191, 189, 195, 196, 200, 196, 199, 204, 201, 204, 209, 207, 210, 215, 213, 216, 221, 218, 221, 226, 221, 224, 229, 222, 225, 230, 228, 231, 236, 229, 232, 237, 233, 236, 241, 236, 239, 244, 239, 242, 247, 241, 244, 249, 242, 245, 250, 243, 246, 251, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 249, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 246, 247, 251, 245, 246, 250, 244, 245, 249, 244, 245, 249, 243, 244, 248, 243, 244, 246, 243, 244, 246, 241, 243, 242, 239, 241, 240, 236, 238, 237, 234, 236, 235, 233, 235, 234, 233, 233, 233, 233, 233, 233, 232, 232, 230, 232, 232, 230, 233, 232, 230, 232, 231, 229, 232, 231, 227, 231, 230, 226, 231, 230, 226, 231, 230, 226, 230, 230, 228, 230, 230, 228, 230, 230, 228, 230, 230, 228, 230, 230, 228, 230, 230, 228, 230, 230, 228, 230, 230, 228, 231, 231, 229, 234, 234, 232, 237, 237, 235, 237, 237, 235, 234, 234, 232, 231, 231, 229, 230, 230, 228, 230, 230, 228, 232, 232, 230, 232, 232, 230, 231, 231, 229, 231, 231, 229, 232, 232, 230, 233, 233, 231, 235, 235, 233, 236, 236, 234, 233, 233, 231, 234, 234, 232, 235, 235, 233, 236, 236, 234, 238, 238, 236, 239, 239, 237, 240, 240, 238, 241, 241, 239, 243, 243, 241, 242, 242, 240, 241, 241, 239, 240, 240, 238, 239, 239, 237, 237, 237, 235, 236, 236, 234, 236, 236, 234, 239, 239, 237, 240, 240, 238, 239, 239, 237, 236, 236, 234, 233, 233, 231, 235, 235, 233, 242, 242, 240, 248, 248, 246, 242, 242, 240, 238, 238, 236, 235, 236, 231, 235, 236, 231, 238, 237, 233, 239, 238, 234, 237, 236, 232, 234, 233, 229, 242, 241, 236, 244, 243, 238, 242, 239, 234, 234, 231, 226, 234, 231, 226, 239, 236, 231, 238, 235, 228, 232, 229, 222, 234, 230, 221, 239, 232, 224, 238, 231, 223, 234, 227, 219, 237, 230, 222, 243, 236, 228, 240, 233, 225, 231, 224, 216, 232, 225, 217, 232, 225, 217, 231, 224, 216, 231, 224, 216, 231, 224, 216, 232, 225, 217, 233, 226, 218, 234, 227, 219, 233, 224, 215, 232, 223, 214, 230, 221, 212, 229, 220, 211, 228, 219, 210, 228, 219, 210, 228, 219, 210, 229, 220, 211, 227, 218, 209, 227, 218, 209, 227, 218, 209, 227, 218, 209, 226, 217, 208, 226, 217, 208, 225, 216, 207, 225, 216, 207, 226, 216, 207, 226, 216, 206, 226, 216, 206, 226, 216, 206, 226, 216, 206, 226, 216, 206, 226, 216, 206, 226, 216, 206, 225, 215, 206, 225, 215, 206, 225, 215, 206, 225, 215, 206, 225, 214, 208, 225, 214, 208, 225, 214, 208, 224, 215, 208, 224, 215, 208, 224, 215, 208, 224, 215, 208, 224, 215, 208, 224, 215, 208, 224, 215, 208, 224, 215, 208, 224, 215, 208, 225, 216, 209, 225, 216, 209, 225, 216, 209, 225, 216, 209, 225, 216, 209, 225, 216, 209, 225, 216, 209, 224, 217, 211, 224, 219, 215, 224, 219, 216, 224, 219, 216, 224, 219, 216, 225, 220, 217, 225, 220, 217, 226, 221, 218, 226, 221, 218, 226, 221, 218, 226, 221, 218, 226, 221, 218, 227, 222, 219, 227, 222, 219, 227, 222, 219, 228, 223, 220, 228, 223, 220, 227, 223, 220, 227, 223, 220, 227, 223, 220, 227, 223, 220, 227, 223, 220, 227, 223, 220, 227, 223, 220, 227, 223, 220, 227, 223, 220, 227, 223, 220, 227, 223, 220, 227, 223, 220, 227, 223, 220, 227, 223, 220, 227, 223, 220, 227, 223, 220, 226, 221, 217, 228, 221, 215, 228, 221, 215, 227, 220, 214, 227, 220, 214, 227, 220, 214, 226, 219, 213, 226, 219, 213, 225, 218, 212, 225, 218, 212, 225, 218, 212, 225, 218, 212, 225, 218, 212, 225, 218, 212, 225, 218, 212, 225, 218, 212, 224, 217, 211, 224, 217, 211, 223, 216, 208, 222, 215, 207, 223, 214, 207, 222, 213, 206, 221, 212, 203, 221, 212, 203, 220, 210, 200, 220, 210, 200, 222, 210, 198, 222, 210, 198, 223, 209, 198, 223, 209, 198, 223, 209, 196, 223, 209, 196, 221, 208, 192, 221, 208, 192, 220, 206, 193, 219, 205, 192, 219, 205, 194, 218, 204, 193, 218, 204, 193, 217, 203, 192, 222, 208, 199, 222, 208, 197, 221, 207, 196, 220, 206, 193, 219, 205, 192, 217, 204, 188, 217, 204, 188, 218, 202, 186, 218, 201, 183, 220, 201, 184, 220, 201, 184, 220, 201, 184, 220, 203, 187, 220, 203, 187, 219, 203, 187, 220, 204, 188, 221, 205, 190, 221, 205, 190, 219, 205, 192, 220, 206, 193, 219, 207, 195, 219, 207, 195, 220, 208, 196, 220, 208, 196, 220, 206, 195, 220, 206, 195, 220, 206, 195, 221, 207, 196, 221, 207, 196, 221, 207, 196, 221, 209, 197, 221, 209, 197, 223, 211, 199, 223, 211, 199, 223, 211, 199, 223, 211, 199, 221, 211, 199, 221, 211, 199, 221, 211, 199, 221, 211, 199, 222, 212, 202, 222, 212, 203, 223, 213, 204, 223, 213, 204, 224, 214, 205, 225, 215, 206, 224, 215, 206, 225, 216, 207, 226, 217, 208, 226, 217, 208, 226, 217, 208, 226, 217, 208, 225, 218, 208, 225, 218, 208, 225, 218, 208, 225, 218, 208, 228, 219, 210, 228, 219, 210, 228, 219, 210, 229, 220, 211, 228, 221, 211, 228, 221, 211, 229, 222, 214, 229, 222, 214, 229, 222, 214, 229, 222, 214, 228, 223, 217, 231, 226, 220, 233, 228, 222, 234, 229, 223, 231, 226, 220, 229, 224, 218, 229, 224, 218, 229, 224, 218, 229, 224, 218, 232, 227, 221, 234, 229, 223, 234, 229, 223, 232, 227, 221, 229, 224, 218, 233, 228, 222, 238, 233, 227, 242, 237, 231, 240, 235, 229, 235, 230, 224, 231, 226, 220, 233, 228, 222, 237, 232, 226, 235, 232, 227, 234, 231, 226, 233, 230, 225, 233, 230, 225, 233, 230, 225, 234, 231, 226, 233, 232, 227, 233, 232, 227, 232, 231, 226, 234, 233, 228, 237, 236, 231, 239, 238, 233, 239, 240, 234, 237, 238, 232, 235, 236, 230, 233, 234, 228, 236, 235, 230, 236, 235, 230, 237, 236, 231, 237, 236, 231, 237, 236, 231, 238, 237, 232, 238, 237, 232, 238, 237, 232, 239, 238, 233, 239, 238, 233, 239, 238, 233, 239, 238, 233, 240, 239, 234, 240, 239, 234, 241, 240, 235, 241, 240, 235, 240, 240, 238, 240, 240, 238, 241, 241, 239, 241, 241, 239, 241, 241, 239, 242, 242, 240, 242, 242, 240, 242, 242, 240, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 249, 251, 250, 249, 251, 250, 249, 251, 250, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 246, 248, 247, 245, 247, 246, 244, 246, 245, 243, 245, 244, 242, 244, 243, 241, 243, 242, 240, 242, 241, 240, 241, 243, 239, 240, 242, 238, 239, 241, 236, 237, 239, 232, 233, 235, 229, 230, 232, 225, 226, 228, 223, 224, 226, 217, 218, 220, 215, 216, 218, 211, 212, 214, 208, 209, 211, 206, 207, 209, 207, 208, 210, 208, 209, 211, 210, 212, 211, 207, 207, 207, 203, 203, 201, 199, 198, 196, 195, 194, 192, 192, 191, 187, 188, 187, 183, 185, 181, 178, 181, 177, 174, 174, 169, 166, 170, 165, 162, 166, 161, 157, 165, 160, 156, 166, 158, 155, 166, 158, 155, 164, 156, 153, 162, 154, 151, 161, 153, 151, 159, 151, 149, 156, 148, 145, 153, 145, 142, 149, 142, 136, 147, 140, 134, 146, 139, 133, 145, 138, 132, 145, 138, 132, 146, 139, 133, 147, 140, 134, 149, 142, 136, 151, 143, 140, 153, 145, 142, 155, 147, 145, 156, 148, 146, 156, 150, 150, 157, 151, 151, 159, 154, 151, 161, 156, 153, 164, 156, 154, 164, 156, 154, 164, 156, 154, 164, 156, 154, 165, 155, 153, 164, 154, 152, 163, 153, 151, 162, 152, 150, 162, 152, 150, 164, 154, 152, 166, 157, 152, 167, 158, 153, 170, 159, 157, 171, 160, 158, 171, 160, 158, 173, 162, 160, 173, 163, 161, 174, 164, 162, 174, 166, 163, 175, 167, 164, 179, 171, 168, 178, 173, 169, 180, 175, 171, 183, 178, 174, 185, 182, 177, 188, 185, 180, 190, 187, 182, 189, 188, 186, 191, 192, 196, 192, 195, 200, 197, 200, 205, 203, 206, 211, 210, 213, 218, 215, 218, 223, 218, 221, 226, 220, 223, 228, 227, 230, 235, 229, 232, 237, 232, 235, 240, 236, 239, 244, 239, 242, 247, 241, 244, 249, 243, 246, 251, 243, 246, 251, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 249, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 246, 247, 251, 245, 246, 250, 244, 245, 249, 244, 245, 249, 243, 244, 248, 243, 244, 246, 243, 244, 246, 241, 243, 242, 239, 241, 240, 236, 238, 237, 234, 236, 235, 233, 235, 234, 234, 234, 234, 234, 234, 234, 232, 232, 230, 232, 232, 230, 232, 232, 230, 232, 232, 230, 232, 231, 227, 231, 232, 227, 231, 230, 226, 230, 231, 226, 231, 231, 229, 231, 231, 229, 231, 231, 229, 231, 231, 229, 231, 231, 229, 231, 231, 229, 231, 231, 229, 231, 231, 229, 234, 234, 232, 237, 237, 235, 239, 239, 237, 235, 235, 233, 230, 230, 228, 227, 227, 225, 230, 230, 228, 233, 233, 231, 232, 232, 230, 231, 231, 229, 231, 231, 229, 231, 231, 229, 232, 232, 230, 234, 234, 232, 235, 235, 233, 236, 236, 234, 233, 233, 231, 234, 234, 232, 235, 235, 233, 237, 237, 235, 238, 238, 236, 240, 240, 238, 241, 241, 239, 242, 242, 240, 245, 245, 243, 244, 244, 242, 241, 241, 239, 238, 238, 236, 237, 237, 235, 236, 236, 234, 236, 236, 234, 237, 237, 235, 241, 241, 239, 241, 241, 239, 239, 239, 237, 235, 235, 233, 232, 232, 230, 235, 235, 233, 244, 244, 242, 251, 251, 249, 240, 240, 238, 237, 237, 235, 234, 235, 230, 235, 236, 231, 240, 239, 235, 241, 240, 236, 238, 237, 233, 234, 233, 229, 245, 244, 239, 245, 244, 239, 240, 237, 232, 232, 229, 224, 234, 231, 226, 242, 239, 234, 239, 236, 229, 231, 226, 220, 235, 231, 222, 241, 234, 226, 239, 232, 224, 234, 227, 219, 237, 230, 222, 244, 237, 229, 240, 233, 225, 229, 222, 214, 232, 225, 217, 232, 225, 217, 231, 224, 216, 231, 224, 216, 231, 224, 216, 232, 225, 217, 234, 227, 219, 234, 227, 219, 233, 224, 215, 232, 223, 214, 230, 221, 212, 229, 220, 211, 228, 219, 210, 228, 219, 210, 228, 219, 210, 229, 220, 211, 227, 218, 209, 227, 218, 209, 227, 218, 209, 226, 218, 207, 227, 217, 208, 225, 217, 206, 226, 216, 207, 226, 216, 206, 225, 215, 205, 225, 215, 205, 225, 215, 205, 225, 215, 205, 225, 215, 205, 225, 215, 205, 225, 215, 205, 225, 215, 205, 224, 214, 205, 224, 214, 205, 224, 214, 205, 224, 214, 205, 224, 214, 205, 224, 214, 205, 224, 213, 207, 224, 213, 207, 225, 214, 208, 224, 215, 208, 224, 215, 208, 224, 215, 208, 224, 215, 208, 224, 215, 208, 224, 215, 208, 224, 215, 208, 225, 216, 209, 225, 216, 209, 225, 216, 209, 225, 216, 209, 225, 216, 209, 225, 216, 209, 225, 216, 209, 225, 216, 209, 225, 217, 214, 223, 218, 214, 224, 219, 215, 224, 219, 215, 224, 219, 215, 225, 220, 216, 225, 220, 216, 225, 220, 216, 225, 220, 216, 225, 220, 216, 225, 220, 216, 226, 221, 217, 226, 221, 217, 227, 222, 218, 227, 222, 218, 227, 222, 218, 227, 222, 218, 226, 223, 218, 226, 222, 219, 226, 223, 218, 226, 222, 219, 226, 223, 218, 226, 222, 219, 226, 223, 218, 226, 222, 219, 226, 223, 218, 226, 222, 219, 226, 223, 218, 226, 222, 219, 226, 223, 218, 226, 222, 219, 227, 222, 218, 225, 220, 214, 227, 220, 214, 227, 220, 214, 226, 219, 213, 226, 219, 213, 225, 218, 212, 225, 218, 212, 225, 218, 210, 225, 216, 211, 224, 217, 211, 225, 216, 211, 224, 217, 211, 224, 217, 211, 224, 217, 211, 224, 217, 211, 224, 217, 211, 224, 217, 209, 223, 216, 208, 223, 216, 206, 222, 215, 205, 222, 213, 204, 221, 212, 203, 221, 212, 203, 221, 211, 201, 219, 209, 199, 221, 208, 199, 222, 208, 197, 223, 209, 198, 225, 208, 198, 225, 208, 198, 225, 209, 196, 225, 209, 196, 219, 206, 190, 220, 207, 191, 221, 207, 194, 221, 207, 194, 220, 206, 193, 218, 204, 191, 216, 202, 191, 215, 201, 190, 223, 209, 198, 222, 208, 197, 221, 207, 196, 220, 206, 193, 219, 205, 192, 218, 204, 191, 217, 204, 188, 218, 202, 187, 218, 201, 185, 219, 202, 184, 220, 201, 186, 219, 202, 186, 220, 203, 187, 220, 203, 187, 219, 203, 187, 220, 204, 188, 221, 205, 190, 221, 205, 190, 219, 205, 192, 220, 206, 193, 220, 206, 193, 220, 208, 194, 221, 207, 196, 221, 207, 196, 220, 206, 195, 220, 206, 195, 220, 206, 195, 221, 207, 196, 221, 207, 196, 221, 207, 196, 221, 209, 197, 221, 209, 197, 223, 211, 199, 223, 211, 199, 223, 211, 199, 223, 211, 199, 221, 211, 199, 221, 211, 199, 221, 211, 199, 221, 211, 201, 222, 212, 202, 222, 212, 202, 223, 213, 204, 224, 214, 205, 225, 215, 206, 225, 215, 206, 225, 216, 207, 225, 216, 207, 225, 216, 207, 225, 216, 207, 225, 216, 207, 225, 216, 207, 224, 217, 207, 224, 217, 207, 224, 217, 207, 224, 217, 207, 228, 219, 210, 228, 219, 210, 228, 219, 210, 229, 220, 211, 228, 221, 211, 228, 221, 211, 229, 222, 214, 229, 222, 214, 231, 224, 216, 229, 222, 214, 226, 221, 215, 230, 225, 219, 235, 230, 224, 236, 231, 225, 232, 227, 221, 227, 222, 216, 233, 228, 222, 229, 224, 218, 226, 221, 215, 228, 223, 217, 232, 227, 221, 235, 230, 224, 232, 227, 221, 229, 224, 218, 229, 224, 218, 237, 232, 226, 245, 240, 234, 243, 238, 232, 235, 230, 224, 230, 225, 219, 233, 228, 222, 239, 234, 228, 235, 232, 227, 234, 231, 226, 233, 230, 225, 233, 230, 225, 233, 230, 225, 233, 230, 225, 232, 231, 226, 233, 232, 227, 229, 228, 223, 232, 231, 226, 237, 236, 231, 241, 240, 235, 241, 242, 236, 239, 240, 234, 235, 236, 230, 232, 233, 227, 236, 235, 230, 236, 235, 230, 237, 236, 231, 237, 236, 231, 237, 236, 231, 238, 237, 232, 238, 237, 232, 238, 237, 232, 239, 238, 233, 239, 238, 233, 239, 238, 233, 239, 238, 233, 240, 239, 234, 240, 239, 234, 241, 240, 235, 241, 240, 236, 240, 241, 236, 240, 241, 236, 241, 241, 239, 241, 241, 239, 241, 241, 239, 242, 242, 240, 242, 242, 240, 242, 242, 240, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 249, 251, 250, 249, 251, 250, 249, 251, 250, 248, 250, 249, 248, 250, 249, 247, 249, 248, 246, 248, 247, 245, 247, 246, 244, 246, 245, 243, 245, 244, 242, 244, 243, 241, 243, 242, 241, 243, 242, 239, 240, 242, 238, 239, 241, 237, 238, 240, 234, 235, 237, 231, 232, 234, 227, 228, 230, 224, 225, 227, 222, 223, 225, 219, 220, 222, 215, 216, 218, 209, 210, 212, 204, 205, 207, 202, 203, 205, 203, 204, 206, 206, 207, 209, 208, 209, 211, 210, 212, 211, 207, 207, 207, 203, 203, 203, 199, 199, 199, 196, 196, 194, 192, 192, 190, 189, 188, 186, 185, 184, 182, 176, 172, 171, 173, 169, 166, 168, 164, 161, 167, 162, 159, 166, 161, 158, 165, 160, 157, 163, 158, 155, 161, 156, 153, 162, 154, 152, 158, 153, 150, 157, 149, 147, 152, 147, 143, 151, 143, 140, 149, 142, 136, 148, 140, 137, 148, 141, 135, 146, 139, 133, 146, 139, 133, 147, 140, 134, 149, 142, 136, 150, 142, 139, 152, 144, 141, 153, 145, 142, 153, 145, 143, 156, 151, 148, 157, 151, 151, 159, 154, 151, 160, 155, 152, 164, 156, 154, 164, 156, 154, 164, 156, 154, 164, 156, 154, 164, 154, 152, 163, 153, 151, 162, 152, 150, 161, 151, 149, 162, 152, 150, 164, 154, 152, 167, 157, 155, 169, 159, 157, 170, 160, 158, 171, 161, 159, 172, 161, 159, 173, 163, 161, 174, 164, 162, 175, 165, 163, 175, 167, 164, 175, 167, 164, 177, 169, 166, 178, 170, 167, 178, 173, 169, 181, 176, 172, 184, 179, 175, 185, 182, 177, 188, 183, 179, 189, 185, 182, 189, 189, 191, 191, 192, 196, 196, 197, 201, 203, 204, 208, 207, 210, 215, 212, 215, 220, 215, 218, 223, 217, 220, 225, 227, 230, 235, 229, 232, 237, 232, 235, 240, 236, 239, 244, 239, 242, 247, 241, 244, 249, 243, 246, 251, 244, 247, 252, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 245, 246, 248, 245, 246, 248, 245, 246, 248, 244, 245, 247, 244, 245, 247, 244, 245, 247, 243, 244, 246, 240, 241, 243, 239, 240, 242, 238, 239, 241, 237, 238, 240, 235, 236, 238, 234, 235, 237, 232, 234, 233, 232, 234, 233, 230, 232, 231, 230, 232, 231, 230, 232, 229, 230, 232, 229, 231, 231, 229, 230, 232, 229, 231, 231, 229, 231, 231, 229, 227, 227, 225, 228, 228, 226, 229, 229, 227, 230, 230, 228, 231, 231, 229, 232, 232, 230, 233, 233, 231, 234, 234, 232, 237, 237, 235, 236, 236, 234, 234, 234, 232, 233, 233, 231, 232, 232, 230, 232, 232, 230, 232, 232, 230, 233, 233, 231, 232, 232, 230, 232, 232, 230, 233, 233, 231, 233, 233, 231, 234, 234, 232, 234, 234, 232, 234, 234, 232, 234, 234, 232, 236, 236, 234, 237, 237, 235, 239, 239, 237, 240, 240, 238, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 240, 240, 238, 240, 240, 238, 239, 239, 237, 238, 238, 236, 237, 237, 235, 237, 237, 235, 236, 236, 234, 239, 239, 237, 237, 237, 235, 231, 231, 229, 237, 237, 235, 248, 248, 246, 248, 248, 246, 239, 239, 237, 237, 236, 232, 239, 238, 234, 240, 239, 235, 238, 237, 233, 234, 233, 229, 235, 234, 230, 240, 239, 234, 245, 244, 239, 238, 235, 230, 238, 235, 230, 237, 234, 229, 237, 234, 229, 238, 233, 227, 237, 232, 226, 237, 232, 226, 237, 232, 226, 237, 232, 226, 236, 231, 225, 236, 231, 225, 240, 235, 229, 243, 238, 232, 241, 236, 230, 234, 230, 221, 227, 223, 214, 234, 227, 219, 234, 227, 219, 234, 227, 219, 233, 226, 218, 233, 226, 216, 232, 225, 215, 233, 224, 215, 233, 224, 215, 230, 221, 212, 230, 221, 212, 230, 221, 212, 229, 220, 211, 228, 220, 209, 227, 219, 208, 228, 218, 208, 227, 217, 207, 228, 218, 208, 228, 218, 208, 228, 218, 208, 227, 217, 205, 229, 216, 207, 227, 217, 205, 228, 215, 206, 228, 215, 206, 227, 214, 205, 226, 213, 204, 226, 213, 204, 226, 213, 204, 225, 212, 203, 225, 212, 203, 225, 212, 203, 224, 211, 202, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 212, 204, 223, 213, 204, 222, 212, 203, 222, 212, 203, 222, 212, 203, 222, 212, 203, 223, 213, 204, 223, 213, 204, 224, 214, 205, 224, 214, 205, 225, 215, 206, 224, 214, 205, 223, 213, 204, 223, 213, 204, 223, 213, 204, 223, 213, 204, 224, 214, 205, 224, 215, 208, 225, 218, 210, 225, 218, 212, 225, 218, 212, 224, 217, 211, 224, 217, 211, 223, 216, 210, 223, 216, 210, 223, 216, 210, 225, 218, 212, 225, 218, 212, 225, 218, 212, 226, 219, 213, 226, 219, 213, 226, 219, 213, 227, 220, 214, 225, 220, 214, 224, 219, 213, 224, 219, 213, 224, 219, 215, 224, 219, 213, 224, 219, 215, 224, 219, 213, 224, 219, 215, 224, 219, 213, 227, 222, 218, 226, 221, 215, 224, 219, 215, 223, 218, 212, 222, 217, 213, 222, 217, 211, 222, 217, 213, 223, 218, 212, 225, 220, 214, 222, 217, 211, 223, 216, 210, 222, 215, 209, 225, 216, 209, 225, 216, 209, 223, 214, 207, 221, 212, 203, 221, 210, 204, 220, 211, 204, 221, 210, 204, 221, 212, 205, 221, 212, 207, 222, 213, 208, 222, 213, 208, 222, 213, 206, 220, 211, 202, 220, 212, 201, 220, 212, 201, 220, 212, 201, 221, 211, 201, 221, 211, 201, 221, 211, 201, 223, 211, 199, 221, 207, 196, 221, 207, 196, 222, 205, 195, 222, 205, 195, 222, 204, 194, 222, 204, 194, 222, 204, 194, 222, 204, 192, 221, 205, 190, 221, 205, 190, 221, 205, 190, 221, 205, 190, 221, 205, 190, 221, 205, 190, 221, 205, 192, 221, 205, 192, 221, 205, 192, 221, 205, 192, 221, 205, 192, 221, 205, 190, 221, 205, 190, 221, 205, 190, 221, 205, 190, 221, 205, 190, 219, 203, 188, 219, 203, 187, 220, 202, 188, 219, 203, 188, 219, 203, 188, 219, 203, 188, 219, 203, 188, 219, 203, 188, 221, 205, 190, 221, 205, 190, 222, 206, 191, 222, 206, 191, 222, 206, 191, 221, 208, 192, 223, 207, 194, 221, 207, 194, 221, 207, 196, 220, 207, 198, 220, 207, 198, 221, 208, 199, 221, 208, 199, 221, 208, 199, 222, 209, 200, 222, 209, 200, 223, 210, 201, 223, 210, 201, 224, 211, 202, 224, 211, 202, 224, 211, 202, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 213, 201, 226, 213, 204, 226, 213, 204, 224, 214, 204, 225, 215, 205, 225, 215, 205, 225, 215, 205, 226, 218, 207, 226, 218, 207, 226, 217, 208, 227, 218, 209, 227, 218, 209, 227, 218, 209, 228, 219, 210, 228, 219, 210, 228, 219, 210, 228, 219, 210, 229, 220, 211, 229, 220, 211, 229, 222, 212, 229, 222, 212, 229, 222, 214, 229, 222, 214, 230, 223, 215, 230, 223, 215, 229, 224, 218, 230, 225, 219, 231, 226, 220, 231, 226, 220, 232, 227, 221, 232, 227, 221, 231, 226, 220, 231, 226, 220, 231, 226, 220, 232, 227, 221, 232, 227, 221, 233, 228, 222, 233, 228, 222, 233, 228, 222, 231, 226, 220, 234, 229, 223, 239, 234, 228, 242, 237, 231, 241, 236, 230, 238, 233, 227, 234, 229, 223, 230, 225, 219, 233, 230, 225, 231, 230, 226, 231, 230, 226, 231, 230, 226, 232, 231, 227, 233, 232, 228, 235, 234, 230, 236, 235, 231, 231, 230, 226, 233, 232, 228, 236, 235, 231, 238, 237, 233, 239, 238, 234, 238, 237, 233, 236, 235, 231, 235, 234, 230, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 240, 241, 236, 240, 241, 235, 241, 242, 237, 241, 242, 237, 241, 242, 237, 242, 243, 238, 242, 243, 238, 242, 243, 238, 243, 244, 239, 243, 244, 239, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 247, 246, 244, 246, 245, 244, 246, 245, 243, 245, 244, 242, 244, 243, 242, 244, 243, 239, 240, 242, 239, 240, 242, 237, 238, 240, 235, 236, 238, 232, 233, 235, 228, 229, 231, 225, 226, 228, 223, 224, 226, 216, 217, 219, 213, 214, 216, 209, 210, 212, 207, 208, 210, 206, 207, 209, 204, 205, 207, 200, 201, 203, 197, 198, 200, 205, 206, 208, 203, 204, 206, 201, 202, 204, 198, 199, 201, 195, 196, 198, 191, 192, 194, 190, 190, 190, 189, 189, 189, 184, 182, 183, 180, 178, 179, 175, 173, 174, 174, 170, 169, 172, 168, 167, 170, 166, 165, 167, 163, 162, 164, 160, 159, 166, 160, 160, 161, 157, 154, 158, 153, 150, 154, 150, 147, 153, 148, 145, 150, 145, 141, 145, 140, 137, 142, 137, 133, 143, 138, 134, 145, 140, 136, 147, 142, 138, 149, 144, 140, 152, 144, 141, 152, 144, 141, 152, 144, 141, 152, 144, 141, 156, 148, 146, 157, 149, 147, 158, 150, 148, 159, 151, 149, 160, 152, 150, 161, 153, 151, 162, 154, 152, 163, 155, 153, 160, 152, 150, 161, 153, 151, 162, 154, 152, 163, 155, 153, 164, 156, 154, 165, 157, 155, 166, 158, 156, 167, 159, 157, 168, 160, 158, 169, 161, 159, 171, 161, 160, 171, 163, 161, 172, 164, 162, 173, 165, 163, 174, 166, 164, 175, 167, 165, 177, 169, 167, 177, 169, 167, 178, 170, 168, 180, 172, 170, 183, 175, 173, 184, 179, 176, 189, 181, 179, 189, 184, 181, 189, 185, 184, 190, 188, 189, 194, 194, 196, 199, 199, 201, 204, 205, 209, 211, 212, 216, 218, 221, 226, 224, 227, 232, 225, 230, 236, 229, 234, 240, 233, 238, 244, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 246, 238, 243, 247, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 248, 253, 245, 248, 253, 246, 249, 254, 246, 250, 253, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 248, 251, 243, 248, 251, 243, 248, 251, 243, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 245, 246, 248, 245, 246, 248, 245, 246, 248, 244, 245, 247, 244, 245, 247, 244, 245, 247, 243, 244, 246, 240, 241, 243, 240, 241, 243, 238, 239, 241, 237, 238, 240, 235, 236, 238, 234, 235, 237, 233, 235, 234, 232, 234, 233, 230, 232, 231, 230, 232, 231, 230, 232, 229, 230, 232, 229, 230, 232, 229, 230, 232, 229, 230, 232, 229, 230, 232, 229, 229, 229, 227, 229, 229, 227, 230, 230, 228, 231, 231, 229, 232, 232, 230, 233, 233, 231, 234, 234, 232, 234, 234, 232, 236, 236, 234, 235, 235, 233, 234, 234, 232, 232, 232, 230, 232, 232, 230, 232, 232, 230, 232, 232, 230, 233, 233, 231, 233, 233, 231, 233, 233, 231, 234, 234, 232, 234, 234, 232, 234, 234, 232, 235, 235, 233, 235, 235, 233, 235, 235, 233, 236, 236, 234, 237, 237, 235, 239, 239, 237, 240, 240, 238, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 240, 240, 238, 240, 240, 238, 240, 240, 238, 239, 239, 237, 238, 238, 236, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 236, 236, 234, 236, 236, 234, 240, 240, 238, 246, 246, 244, 245, 245, 243, 239, 239, 237, 237, 236, 232, 239, 238, 234, 240, 239, 235, 238, 237, 233, 235, 234, 230, 236, 235, 231, 240, 239, 234, 244, 243, 238, 238, 235, 230, 238, 235, 230, 238, 235, 230, 237, 234, 229, 238, 233, 227, 237, 232, 226, 237, 232, 226, 237, 232, 226, 236, 233, 226, 235, 232, 225, 237, 232, 226, 240, 235, 229, 242, 237, 231, 240, 235, 229, 234, 230, 221, 228, 224, 215, 234, 227, 219, 234, 227, 219, 234, 227, 219, 233, 226, 218, 233, 226, 216, 233, 226, 216, 233, 224, 215, 233, 224, 215, 231, 222, 213, 230, 221, 212, 230, 221, 212, 229, 220, 211, 228, 220, 209, 227, 219, 208, 228, 218, 208, 227, 217, 207, 228, 218, 208, 228, 218, 208, 230, 218, 206, 229, 217, 205, 229, 217, 205, 229, 217, 205, 228, 216, 204, 228, 216, 204, 227, 214, 205, 226, 213, 204, 226, 213, 204, 226, 213, 204, 225, 212, 203, 225, 212, 203, 225, 212, 203, 224, 211, 202, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 212, 203, 221, 211, 202, 222, 212, 203, 222, 212, 203, 222, 212, 203, 223, 213, 204, 223, 213, 204, 223, 213, 204, 224, 214, 205, 225, 215, 206, 224, 214, 205, 223, 213, 204, 222, 212, 203, 222, 212, 203, 223, 213, 204, 224, 214, 205, 225, 215, 206, 226, 217, 210, 224, 217, 209, 224, 217, 209, 224, 217, 209, 223, 216, 208, 223, 216, 208, 223, 216, 208, 222, 215, 207, 224, 217, 209, 225, 218, 210, 225, 218, 210, 225, 218, 210, 226, 219, 211, 226, 219, 211, 226, 219, 211, 226, 219, 211, 226, 219, 213, 224, 219, 213, 224, 219, 213, 224, 219, 213, 224, 219, 213, 224, 219, 213, 224, 219, 213, 224, 219, 213, 226, 221, 215, 225, 220, 214, 224, 219, 213, 222, 217, 211, 221, 216, 210, 221, 216, 210, 222, 217, 211, 222, 217, 211, 223, 218, 212, 221, 216, 210, 221, 214, 208, 221, 214, 206, 223, 214, 207, 223, 214, 205, 222, 212, 203, 220, 210, 201, 220, 210, 201, 221, 211, 202, 221, 210, 204, 221, 210, 204, 222, 211, 207, 221, 212, 207, 221, 212, 207, 221, 212, 205, 220, 212, 201, 220, 212, 199, 220, 212, 199, 220, 212, 199, 221, 211, 199, 221, 211, 199, 223, 211, 199, 224, 210, 199, 223, 206, 196, 223, 206, 196, 223, 205, 195, 223, 205, 195, 223, 203, 194, 223, 203, 194, 223, 203, 194, 222, 204, 192, 222, 204, 192, 221, 205, 190, 221, 205, 190, 221, 205, 190, 221, 205, 190, 221, 205, 190, 221, 205, 190, 221, 205, 190, 221, 205, 190, 221, 205, 190, 221, 205, 190, 221, 205, 190, 221, 205, 190, 221, 205, 190, 221, 205, 190, 221, 205, 190, 219, 203, 188, 219, 203, 188, 219, 203, 188, 219, 203, 188, 219, 203, 188, 219, 203, 188, 219, 203, 188, 219, 203, 188, 221, 205, 190, 221, 205, 190, 222, 206, 191, 222, 206, 191, 222, 206, 191, 223, 207, 192, 223, 207, 192, 221, 207, 194, 221, 207, 196, 220, 207, 198, 220, 207, 198, 221, 208, 199, 221, 208, 199, 221, 208, 199, 222, 209, 200, 222, 209, 200, 223, 210, 201, 223, 210, 201, 224, 211, 202, 224, 211, 202, 224, 211, 202, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 213, 201, 225, 213, 201, 226, 214, 202, 226, 214, 202, 224, 214, 204, 225, 215, 205, 225, 215, 205, 225, 215, 205, 226, 218, 207, 226, 218, 207, 226, 217, 208, 227, 218, 209, 227, 218, 209, 227, 218, 209, 228, 219, 210, 228, 219, 210, 228, 219, 210, 228, 219, 210, 229, 220, 211, 229, 220, 211, 229, 222, 212, 229, 222, 212, 229, 222, 214, 229, 222, 214, 230, 223, 215, 230, 223, 215, 229, 224, 218, 230, 225, 219, 231, 226, 220, 231, 226, 220, 232, 227, 221, 232, 227, 221, 231, 226, 220, 231, 226, 220, 231, 226, 220, 232, 227, 221, 232, 227, 221, 233, 228, 222, 233, 228, 222, 233, 228, 222, 232, 227, 221, 234, 229, 223, 237, 232, 226, 239, 234, 228, 239, 234, 228, 238, 233, 227, 236, 231, 225, 233, 230, 223, 234, 230, 227, 231, 230, 226, 231, 230, 226, 231, 230, 226, 232, 231, 227, 233, 232, 228, 235, 234, 230, 235, 234, 230, 233, 232, 228, 234, 233, 229, 235, 234, 230, 237, 236, 232, 237, 236, 232, 238, 237, 233, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 240, 241, 235, 240, 241, 235, 241, 242, 236, 241, 242, 236, 241, 242, 237, 242, 243, 238, 242, 243, 238, 242, 243, 238, 243, 244, 239, 243, 244, 239, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 244, 246, 245, 243, 245, 244, 242, 244, 243, 242, 244, 243, 241, 243, 242, 241, 242, 244, 241, 242, 244, 239, 240, 242, 237, 238, 240, 234, 235, 237, 230, 231, 233, 227, 228, 230, 225, 226, 228, 220, 221, 223, 217, 218, 220, 214, 215, 217, 212, 213, 215, 212, 213, 215, 210, 211, 213, 207, 208, 210, 204, 205, 207, 199, 203, 206, 199, 203, 206, 199, 203, 206, 198, 202, 205, 197, 201, 204, 196, 200, 203, 198, 199, 201, 197, 198, 200, 188, 188, 190, 184, 184, 186, 180, 178, 179, 176, 174, 175, 175, 173, 174, 173, 171, 172, 172, 168, 169, 169, 165, 166, 167, 163, 162, 163, 159, 158, 159, 155, 152, 156, 152, 149, 154, 150, 147, 151, 147, 144, 147, 142, 139, 144, 139, 136, 146, 141, 137, 147, 142, 138, 148, 143, 139, 150, 145, 141, 153, 145, 142, 153, 145, 142, 153, 146, 140, 153, 146, 140, 156, 148, 146, 157, 149, 147, 158, 150, 148, 159, 151, 149, 160, 152, 150, 161, 153, 151, 162, 154, 152, 163, 155, 153, 161, 153, 151, 161, 153, 151, 162, 154, 152, 163, 155, 153, 164, 156, 154, 165, 157, 155, 166, 158, 156, 167, 159, 157, 168, 160, 158, 169, 161, 159, 170, 162, 160, 171, 163, 161, 172, 164, 162, 173, 165, 163, 174, 166, 164, 175, 167, 165, 176, 168, 166, 177, 169, 167, 178, 170, 168, 180, 172, 170, 183, 175, 173, 186, 178, 176, 189, 181, 179, 189, 184, 181, 190, 184, 184, 192, 188, 187, 195, 193, 194, 198, 198, 198, 204, 204, 206, 210, 211, 215, 217, 220, 225, 223, 226, 231, 224, 229, 235, 228, 233, 239, 233, 238, 244, 236, 241, 247, 236, 241, 247, 236, 241, 247, 237, 242, 246, 238, 243, 247, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 248, 253, 246, 249, 254, 246, 250, 253, 247, 248, 252, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 248, 251, 243, 248, 251, 243, 248, 251, 243, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 245, 246, 248, 245, 246, 248, 245, 246, 248, 244, 245, 247, 244, 245, 247, 244, 245, 247, 243, 244, 246, 241, 242, 244, 240, 241, 243, 239, 240, 242, 237, 238, 240, 236, 237, 239, 234, 235, 237, 233, 235, 234, 232, 234, 233, 231, 233, 232, 231, 233, 232, 231, 233, 230, 231, 233, 230, 231, 233, 230, 231, 233, 230, 231, 233, 230, 231, 233, 230, 231, 231, 229, 231, 231, 229, 232, 232, 230, 232, 232, 230, 233, 233, 231, 234, 234, 232, 235, 235, 233, 235, 235, 233, 235, 235, 233, 234, 234, 232, 233, 233, 231, 232, 232, 230, 231, 231, 229, 231, 231, 229, 232, 232, 230, 232, 232, 230, 234, 234, 232, 234, 234, 232, 235, 235, 233, 235, 235, 233, 236, 236, 234, 236, 236, 234, 236, 236, 234, 236, 236, 234, 236, 236, 234, 237, 237, 235, 239, 239, 237, 241, 241, 239, 241, 241, 239, 242, 242, 240, 241, 241, 239, 241, 241, 239, 239, 239, 237, 239, 239, 237, 238, 238, 236, 238, 238, 236, 237, 237, 235, 237, 237, 235, 237, 237, 235, 236, 236, 234, 238, 238, 236, 235, 235, 233, 236, 236, 234, 242, 242, 240, 245, 245, 243, 243, 243, 241, 240, 240, 238, 240, 240, 238, 237, 238, 233, 238, 239, 234, 240, 239, 235, 238, 237, 233, 237, 236, 232, 237, 236, 232, 240, 239, 234, 243, 242, 237, 238, 235, 230, 238, 235, 230, 238, 235, 230, 237, 234, 229, 237, 234, 227, 237, 234, 227, 237, 232, 226, 237, 232, 226, 236, 233, 226, 236, 233, 226, 237, 234, 227, 239, 236, 229, 241, 236, 230, 239, 234, 228, 234, 229, 223, 230, 225, 219, 234, 227, 219, 234, 227, 219, 234, 227, 219, 234, 227, 219, 233, 226, 216, 233, 226, 216, 233, 226, 216, 232, 225, 215, 231, 222, 213, 231, 222, 213, 230, 221, 212, 229, 220, 211, 228, 220, 209, 228, 220, 209, 228, 218, 208, 228, 218, 208, 228, 218, 208, 228, 218, 208, 228, 218, 206, 227, 217, 205, 229, 217, 205, 229, 217, 205, 228, 216, 204, 228, 216, 204, 227, 214, 205, 226, 213, 204, 226, 213, 204, 226, 213, 204, 225, 212, 203, 225, 212, 203, 225, 212, 203, 224, 211, 202, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 212, 203, 221, 211, 202, 221, 211, 202, 222, 212, 203, 222, 212, 203, 222, 212, 203, 223, 213, 204, 223, 213, 204, 223, 213, 204, 224, 214, 205, 223, 213, 204, 222, 212, 203, 222, 212, 203, 222, 212, 203, 222, 212, 203, 223, 213, 204, 224, 214, 205, 225, 216, 209, 225, 216, 209, 224, 215, 208, 224, 215, 208, 223, 214, 207, 223, 214, 207, 223, 214, 207, 223, 214, 207, 224, 215, 208, 225, 216, 209, 225, 216, 209, 225, 216, 209, 226, 217, 210, 226, 217, 210, 226, 217, 210, 226, 219, 211, 224, 217, 209, 224, 217, 209, 224, 217, 209, 224, 217, 209, 224, 217, 209, 224, 217, 209, 224, 217, 209, 224, 217, 209, 227, 220, 212, 226, 219, 211, 225, 218, 210, 223, 216, 208, 222, 215, 207, 222, 215, 207, 223, 216, 208, 223, 216, 208, 223, 216, 208, 221, 214, 206, 220, 211, 204, 220, 211, 204, 222, 211, 205, 222, 212, 203, 222, 209, 201, 220, 207, 198, 221, 208, 199, 221, 208, 199, 222, 209, 201, 220, 210, 201, 220, 209, 203, 221, 210, 204, 221, 210, 204, 221, 211, 202, 219, 211, 200, 219, 211, 198, 220, 210, 198, 220, 210, 198, 222, 210, 198, 222, 210, 198, 223, 209, 198, 223, 209, 198, 223, 206, 196, 223, 206, 196, 223, 205, 195, 223, 205, 195, 223, 203, 194, 223, 203, 194, 223, 203, 194, 222, 204, 192, 222, 204, 192, 221, 205, 190, 221, 205, 190, 221, 205, 190, 221, 205, 190, 221, 205, 190, 221, 205, 190, 221, 205, 190, 221, 205, 190, 221, 205, 190, 221, 205, 190, 221, 205, 190, 221, 205, 190, 221, 205, 190, 221, 205, 190, 221, 205, 190, 219, 203, 188, 219, 203, 188, 219, 203, 188, 219, 203, 188, 219, 203, 188, 219, 203, 188, 219, 203, 188, 219, 203, 188, 221, 205, 190, 221, 205, 190, 222, 206, 191, 222, 206, 191, 222, 206, 191, 223, 207, 192, 223, 207, 192, 221, 207, 194, 221, 207, 196, 220, 207, 198, 221, 208, 199, 221, 208, 199, 221, 208, 199, 222, 209, 200, 222, 209, 200, 222, 209, 200, 223, 210, 201, 223, 210, 201, 224, 211, 202, 224, 211, 202, 224, 211, 202, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 213, 201, 225, 213, 201, 226, 214, 202, 226, 214, 202, 224, 214, 204, 225, 215, 205, 225, 215, 205, 225, 215, 205, 226, 218, 207, 226, 218, 207, 226, 217, 208, 227, 218, 209, 227, 218, 209, 227, 218, 209, 228, 219, 210, 228, 219, 210, 228, 219, 210, 228, 219, 210, 229, 220, 211, 229, 220, 211, 229, 222, 212, 229, 222, 212, 229, 222, 214, 229, 222, 214, 230, 223, 215, 230, 223, 215, 229, 224, 218, 230, 225, 219, 231, 226, 220, 231, 226, 220, 232, 227, 221, 232, 227, 221, 231, 226, 220, 231, 226, 220, 231, 226, 220, 232, 227, 221, 232, 227, 221, 233, 228, 222, 233, 228, 222, 233, 228, 222, 232, 227, 221, 233, 228, 222, 234, 229, 223, 235, 230, 224, 237, 232, 226, 238, 233, 227, 238, 233, 227, 238, 235, 228, 235, 231, 228, 232, 231, 227, 232, 231, 227, 231, 230, 226, 232, 231, 227, 233, 232, 228, 234, 233, 229, 235, 234, 230, 235, 234, 230, 235, 234, 230, 234, 233, 229, 234, 233, 229, 235, 234, 230, 237, 236, 232, 238, 237, 233, 239, 238, 234, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 240, 241, 235, 240, 241, 235, 241, 242, 236, 241, 242, 236, 241, 242, 237, 242, 243, 238, 242, 243, 238, 242, 243, 238, 243, 244, 239, 243, 244, 239, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 249, 251, 250, 249, 251, 250, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 245, 247, 246, 245, 247, 246, 244, 246, 245, 243, 245, 244, 242, 244, 243, 242, 244, 243, 241, 243, 242, 241, 243, 242, 243, 244, 246, 242, 243, 245, 241, 242, 244, 239, 240, 242, 236, 237, 239, 233, 234, 236, 230, 231, 233, 228, 229, 231, 225, 226, 228, 223, 224, 226, 220, 221, 223, 219, 220, 222, 219, 220, 222, 218, 219, 221, 215, 216, 218, 212, 213, 215, 204, 208, 211, 204, 208, 211, 203, 207, 210, 202, 206, 209, 204, 205, 207, 203, 204, 206, 202, 203, 205, 202, 203, 205, 195, 195, 197, 191, 191, 193, 187, 185, 186, 184, 182, 183, 184, 180, 181, 182, 178, 179, 179, 175, 176, 176, 172, 173, 171, 167, 166, 167, 163, 162, 163, 159, 156, 160, 156, 153, 158, 154, 151, 155, 151, 148, 151, 146, 143, 148, 143, 140, 150, 145, 141, 150, 145, 141, 151, 146, 142, 151, 146, 142, 154, 146, 143, 154, 146, 143, 155, 148, 142, 155, 148, 142, 155, 147, 145, 156, 148, 146, 157, 149, 147, 159, 151, 149, 160, 152, 150, 162, 154, 152, 163, 155, 153, 163, 155, 153, 161, 153, 151, 162, 154, 152, 162, 154, 152, 163, 155, 153, 164, 156, 154, 165, 157, 155, 166, 158, 156, 166, 158, 156, 168, 160, 158, 169, 161, 159, 169, 161, 159, 171, 163, 161, 172, 164, 162, 173, 165, 163, 174, 166, 164, 174, 166, 164, 175, 167, 165, 176, 168, 166, 177, 169, 167, 179, 171, 169, 182, 174, 172, 185, 177, 175, 188, 180, 178, 188, 183, 180, 189, 183, 183, 191, 187, 186, 194, 192, 193, 197, 197, 197, 203, 203, 205, 209, 210, 214, 215, 218, 223, 221, 224, 229, 224, 229, 235, 228, 233, 239, 233, 238, 244, 236, 241, 247, 236, 241, 245, 236, 241, 245, 239, 242, 247, 240, 243, 248, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 249, 252, 247, 248, 252, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 248, 251, 243, 248, 251, 243, 248, 251, 243, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 245, 246, 248, 245, 246, 248, 245, 246, 248, 244, 245, 247, 244, 245, 247, 244, 245, 247, 243, 244, 246, 241, 242, 244, 240, 241, 243, 239, 240, 242, 238, 239, 241, 236, 237, 239, 234, 235, 237, 233, 235, 234, 233, 235, 234, 232, 234, 233, 232, 234, 233, 232, 234, 231, 232, 234, 231, 232, 234, 231, 232, 234, 231, 232, 234, 231, 232, 234, 231, 233, 233, 231, 233, 233, 231, 234, 234, 232, 234, 234, 232, 235, 235, 233, 235, 235, 233, 236, 236, 234, 236, 236, 234, 234, 234, 232, 233, 233, 231, 232, 232, 230, 231, 231, 229, 231, 231, 229, 232, 232, 230, 232, 232, 230, 233, 233, 231, 235, 235, 233, 236, 236, 234, 236, 236, 234, 236, 236, 234, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 238, 238, 236, 240, 240, 238, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 240, 240, 238, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 236, 236, 234, 236, 236, 234, 240, 240, 238, 234, 234, 232, 237, 237, 235, 247, 247, 245, 248, 248, 246, 239, 239, 237, 236, 236, 234, 240, 240, 238, 237, 238, 233, 238, 239, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 240, 239, 234, 241, 240, 235, 239, 236, 231, 239, 236, 231, 238, 235, 230, 238, 235, 230, 237, 234, 227, 237, 234, 227, 238, 233, 227, 238, 233, 227, 236, 233, 226, 237, 234, 227, 238, 235, 228, 239, 236, 229, 240, 235, 229, 238, 233, 227, 235, 230, 224, 232, 227, 221, 235, 228, 220, 235, 228, 220, 234, 227, 219, 234, 227, 219, 234, 227, 217, 233, 226, 216, 233, 226, 216, 233, 226, 216, 231, 222, 213, 231, 222, 213, 230, 221, 212, 230, 221, 212, 229, 221, 210, 228, 220, 209, 228, 218, 208, 228, 218, 208, 228, 218, 208, 228, 218, 208, 228, 218, 206, 227, 217, 205, 229, 217, 205, 229, 217, 205, 228, 216, 204, 228, 216, 204, 227, 214, 205, 226, 213, 204, 226, 213, 204, 226, 213, 204, 225, 212, 203, 225, 212, 203, 225, 212, 203, 224, 211, 202, 224, 211, 202, 224, 211, 202, 224, 211, 202, 224, 211, 202, 224, 211, 202, 224, 211, 202, 224, 211, 202, 224, 211, 202, 221, 211, 202, 221, 211, 202, 221, 211, 202, 222, 212, 203, 222, 212, 203, 222, 212, 203, 223, 213, 204, 223, 213, 204, 223, 213, 204, 223, 213, 204, 222, 212, 203, 221, 211, 202, 221, 211, 202, 222, 212, 203, 223, 213, 204, 223, 213, 204, 224, 215, 208, 223, 214, 207, 223, 214, 207, 223, 214, 207, 222, 213, 206, 222, 213, 206, 222, 213, 206, 221, 212, 205, 223, 214, 207, 223, 214, 207, 224, 215, 208, 224, 215, 208, 225, 216, 209, 225, 216, 209, 225, 216, 209, 225, 216, 209, 224, 215, 208, 223, 216, 208, 224, 215, 208, 223, 216, 208, 224, 215, 208, 223, 216, 208, 224, 215, 208, 223, 216, 208, 227, 218, 211, 225, 218, 210, 224, 215, 208, 222, 215, 207, 222, 213, 206, 221, 214, 206, 222, 213, 206, 221, 214, 206, 221, 214, 206, 219, 212, 204, 218, 209, 202, 218, 209, 200, 220, 210, 201, 220, 210, 200, 220, 207, 198, 218, 206, 194, 220, 207, 198, 220, 207, 198, 220, 207, 198, 220, 207, 199, 221, 208, 200, 219, 208, 202, 220, 209, 203, 220, 210, 201, 220, 210, 200, 219, 211, 198, 220, 210, 198, 220, 210, 198, 222, 210, 198, 222, 210, 198, 223, 209, 198, 223, 209, 198, 223, 206, 196, 223, 206, 196, 223, 205, 195, 223, 205, 195, 223, 203, 194, 223, 203, 194, 223, 203, 194, 222, 204, 194, 221, 205, 192, 221, 205, 190, 221, 205, 190, 221, 205, 190, 221, 205, 190, 221, 205, 190, 221, 205, 190, 221, 205, 190, 221, 205, 190, 221, 205, 190, 221, 205, 190, 221, 205, 190, 221, 205, 190, 221, 205, 190, 221, 205, 190, 221, 205, 190, 220, 204, 189, 220, 204, 189, 220, 204, 189, 220, 204, 189, 220, 204, 189, 220, 204, 189, 220, 204, 189, 220, 204, 189, 221, 205, 190, 221, 205, 190, 222, 206, 191, 222, 206, 191, 222, 206, 191, 223, 207, 192, 223, 207, 192, 221, 207, 194, 221, 207, 196, 221, 208, 199, 221, 208, 199, 221, 208, 199, 222, 209, 200, 222, 209, 200, 222, 209, 200, 223, 210, 201, 223, 210, 201, 223, 210, 201, 224, 211, 202, 224, 211, 202, 224, 211, 202, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 213, 201, 225, 213, 201, 226, 214, 202, 226, 214, 202, 224, 214, 204, 225, 215, 205, 225, 215, 205, 225, 215, 205, 226, 218, 207, 226, 218, 207, 226, 217, 208, 227, 218, 209, 227, 218, 209, 227, 218, 209, 228, 219, 210, 228, 219, 210, 228, 219, 210, 228, 219, 210, 229, 220, 211, 229, 220, 211, 229, 222, 212, 229, 222, 212, 229, 222, 214, 229, 222, 214, 230, 223, 215, 230, 223, 215, 229, 224, 218, 230, 225, 219, 231, 226, 220, 231, 226, 220, 232, 227, 221, 232, 227, 221, 231, 226, 220, 231, 226, 220, 231, 226, 220, 232, 227, 221, 232, 227, 221, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 232, 227, 221, 232, 227, 221, 232, 227, 221, 234, 229, 223, 237, 232, 226, 240, 235, 229, 241, 238, 231, 236, 232, 229, 233, 232, 228, 232, 231, 227, 232, 231, 227, 232, 231, 227, 233, 232, 228, 234, 233, 229, 235, 234, 230, 237, 236, 232, 235, 234, 230, 234, 233, 229, 233, 232, 228, 234, 233, 229, 236, 235, 231, 239, 238, 234, 241, 240, 236, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 240, 241, 235, 240, 241, 235, 241, 242, 236, 241, 242, 236, 241, 242, 237, 242, 243, 238, 242, 243, 238, 242, 243, 238, 243, 244, 239, 243, 244, 239, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 251, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 249, 251, 250, 249, 251, 250, 249, 251, 250, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 247, 249, 248, 245, 247, 246, 244, 246, 245, 244, 246, 245, 243, 245, 244, 242, 244, 243, 241, 243, 242, 241, 243, 242, 240, 242, 241, 242, 243, 245, 241, 242, 244, 241, 242, 244, 239, 240, 242, 236, 237, 239, 233, 234, 236, 230, 231, 233, 228, 229, 231, 229, 230, 232, 227, 228, 230, 224, 225, 227, 223, 224, 226, 223, 224, 226, 222, 223, 225, 220, 221, 223, 217, 218, 220, 214, 218, 221, 213, 217, 220, 211, 215, 218, 207, 211, 214, 206, 207, 209, 203, 204, 206, 201, 202, 204, 199, 200, 202, 201, 201, 203, 197, 197, 199, 193, 191, 192, 190, 188, 189, 190, 186, 187, 188, 184, 185, 185, 181, 182, 182, 178, 179, 176, 172, 171, 173, 169, 168, 169, 165, 162, 166, 162, 159, 164, 160, 157, 160, 156, 153, 157, 152, 149, 154, 149, 146, 153, 148, 144, 153, 148, 144, 152, 147, 143, 152, 147, 143, 154, 146, 143, 154, 146, 143, 154, 147, 141, 155, 148, 142, 154, 146, 144, 154, 146, 144, 156, 148, 146, 158, 150, 148, 159, 151, 149, 161, 153, 151, 163, 155, 153, 163, 155, 153, 162, 154, 152, 162, 154, 152, 162, 154, 152, 163, 155, 153, 164, 156, 154, 164, 156, 154, 164, 156, 154, 165, 157, 155, 167, 159, 157, 168, 160, 158, 169, 161, 159, 170, 162, 160, 171, 163, 161, 172, 164, 162, 173, 165, 163, 173, 165, 163, 174, 166, 164, 175, 167, 165, 176, 168, 166, 178, 170, 168, 181, 173, 171, 184, 176, 174, 187, 179, 177, 187, 182, 179, 188, 182, 182, 191, 187, 186, 193, 191, 192, 196, 196, 196, 201, 201, 203, 207, 208, 210, 213, 216, 221, 219, 222, 227, 223, 228, 234, 227, 232, 238, 232, 237, 243, 235, 240, 246, 236, 241, 245, 236, 241, 245, 239, 242, 247, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 248, 253, 245, 249, 252, 247, 248, 252, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 248, 251, 243, 248, 251, 243, 248, 251, 243, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 245, 246, 248, 245, 246, 248, 245, 246, 248, 244, 245, 247, 244, 245, 247, 244, 245, 247, 243, 244, 246, 241, 242, 244, 241, 242, 244, 240, 241, 243, 238, 239, 241, 236, 237, 239, 235, 236, 238, 234, 236, 235, 233, 235, 234, 232, 234, 233, 232, 234, 233, 232, 234, 231, 232, 234, 231, 232, 234, 231, 232, 234, 231, 232, 234, 231, 232, 234, 231, 235, 235, 233, 235, 235, 233, 235, 235, 233, 235, 235, 233, 235, 235, 233, 236, 236, 234, 236, 236, 234, 236, 236, 234, 233, 233, 231, 233, 233, 231, 232, 232, 230, 231, 231, 229, 232, 232, 230, 232, 232, 230, 234, 234, 232, 234, 234, 232, 236, 236, 234, 236, 236, 234, 236, 236, 234, 237, 237, 235, 237, 237, 235, 237, 237, 235, 238, 238, 236, 238, 238, 236, 238, 238, 236, 239, 239, 237, 240, 240, 238, 241, 241, 239, 241, 241, 239, 241, 241, 239, 240, 240, 238, 239, 239, 237, 236, 236, 234, 236, 236, 234, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 241, 241, 239, 236, 236, 234, 240, 240, 238, 249, 249, 247, 248, 248, 246, 238, 238, 236, 235, 235, 233, 240, 240, 238, 238, 238, 236, 238, 238, 236, 238, 239, 234, 239, 240, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 240, 239, 235, 237, 236, 231, 237, 236, 231, 239, 236, 231, 238, 235, 230, 238, 235, 230, 238, 235, 230, 237, 234, 227, 237, 234, 227, 237, 234, 229, 238, 235, 230, 239, 236, 231, 239, 236, 231, 239, 234, 228, 237, 232, 226, 235, 230, 224, 235, 230, 224, 233, 229, 220, 233, 229, 220, 235, 228, 220, 234, 227, 219, 234, 227, 219, 234, 227, 219, 233, 226, 218, 233, 226, 218, 232, 223, 214, 231, 222, 213, 231, 222, 213, 230, 221, 212, 229, 220, 211, 228, 219, 210, 228, 220, 209, 228, 220, 209, 228, 218, 208, 228, 218, 208, 228, 218, 208, 227, 217, 207, 227, 217, 205, 227, 217, 205, 228, 216, 204, 228, 216, 204, 227, 214, 205, 226, 213, 204, 226, 213, 204, 226, 213, 204, 225, 212, 203, 225, 212, 203, 225, 212, 203, 224, 211, 202, 224, 211, 202, 224, 211, 202, 224, 211, 202, 224, 211, 202, 224, 211, 202, 224, 211, 202, 224, 211, 202, 224, 211, 202, 220, 210, 201, 221, 211, 202, 221, 211, 202, 221, 211, 202, 222, 212, 203, 222, 212, 203, 222, 212, 203, 222, 212, 203, 222, 212, 203, 222, 212, 203, 221, 211, 202, 220, 210, 201, 220, 210, 201, 221, 211, 202, 222, 212, 203, 222, 212, 203, 223, 213, 204, 223, 213, 204, 223, 213, 204, 222, 212, 203, 222, 212, 203, 222, 212, 203, 221, 211, 202, 221, 211, 202, 223, 213, 204, 223, 213, 204, 224, 214, 205, 224, 214, 205, 224, 214, 205, 225, 215, 206, 225, 215, 206, 225, 215, 206, 223, 213, 204, 222, 213, 204, 223, 213, 204, 222, 213, 204, 223, 213, 204, 222, 213, 204, 223, 213, 204, 222, 213, 204, 226, 216, 207, 224, 215, 206, 223, 213, 204, 221, 212, 203, 221, 211, 202, 220, 211, 202, 221, 211, 202, 221, 212, 203, 220, 211, 202, 218, 209, 200, 217, 207, 198, 217, 207, 197, 220, 207, 198, 220, 208, 196, 219, 205, 194, 217, 203, 190, 219, 205, 194, 219, 205, 194, 219, 205, 194, 220, 206, 197, 220, 206, 197, 220, 207, 199, 220, 207, 199, 218, 208, 199, 219, 209, 199, 219, 209, 197, 219, 209, 197, 219, 209, 197, 221, 209, 197, 221, 209, 197, 222, 208, 197, 222, 208, 197, 223, 206, 196, 223, 206, 196, 222, 205, 195, 222, 205, 195, 222, 204, 194, 222, 204, 194, 222, 204, 194, 222, 204, 194, 221, 205, 192, 221, 205, 192, 221, 205, 192, 221, 205, 192, 221, 205, 192, 221, 205, 192, 221, 205, 192, 221, 205, 192, 221, 205, 192, 221, 205, 192, 221, 205, 192, 221, 205, 192, 221, 205, 192, 221, 205, 192, 221, 205, 192, 221, 205, 192, 220, 204, 191, 220, 204, 191, 220, 204, 191, 220, 204, 191, 220, 204, 191, 220, 204, 191, 220, 204, 191, 220, 204, 191, 221, 205, 192, 221, 205, 192, 222, 206, 193, 222, 206, 193, 222, 206, 193, 223, 207, 194, 223, 207, 194, 221, 207, 194, 222, 208, 197, 221, 208, 199, 221, 208, 199, 222, 209, 200, 222, 209, 200, 223, 210, 201, 223, 210, 201, 223, 210, 201, 223, 210, 201, 223, 210, 201, 224, 211, 202, 224, 211, 202, 224, 211, 202, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 213, 201, 225, 213, 201, 226, 214, 202, 226, 214, 202, 224, 214, 204, 225, 215, 205, 225, 215, 205, 225, 215, 205, 226, 218, 207, 226, 218, 207, 226, 217, 208, 227, 218, 209, 227, 218, 209, 227, 218, 209, 228, 219, 210, 228, 219, 210, 228, 219, 210, 228, 219, 210, 229, 220, 211, 229, 220, 211, 229, 222, 212, 229, 222, 212, 229, 222, 214, 229, 222, 214, 230, 223, 215, 230, 223, 215, 229, 224, 218, 230, 225, 219, 231, 226, 220, 231, 226, 220, 232, 227, 221, 232, 227, 221, 231, 226, 220, 231, 226, 220, 231, 226, 220, 232, 227, 221, 232, 227, 221, 233, 228, 222, 233, 228, 222, 233, 228, 222, 234, 229, 223, 232, 227, 221, 231, 226, 220, 231, 226, 220, 233, 228, 222, 236, 231, 225, 240, 235, 229, 242, 239, 232, 237, 233, 230, 234, 233, 229, 233, 232, 228, 233, 232, 228, 232, 231, 227, 233, 232, 228, 234, 233, 229, 234, 233, 229, 237, 236, 232, 235, 234, 230, 234, 233, 229, 233, 232, 228, 234, 233, 229, 236, 235, 231, 239, 238, 234, 241, 240, 236, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 240, 241, 235, 240, 241, 235, 241, 242, 236, 241, 242, 236, 241, 242, 237, 242, 243, 238, 242, 243, 238, 242, 243, 238, 243, 244, 239, 243, 244, 239, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 252, 251, 249, 251, 250, 249, 251, 250, 249, 251, 250, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 245, 247, 246, 245, 247, 246, 244, 246, 245, 243, 245, 244, 243, 245, 244, 242, 244, 243, 241, 243, 242, 241, 243, 242, 240, 241, 243, 240, 241, 243, 239, 240, 242, 237, 238, 240, 235, 236, 238, 232, 233, 235, 230, 231, 233, 228, 229, 231, 230, 231, 233, 228, 229, 231, 225, 226, 228, 224, 225, 227, 224, 225, 227, 223, 224, 226, 220, 221, 223, 217, 218, 220, 215, 219, 222, 214, 218, 221, 212, 216, 217, 209, 213, 214, 207, 208, 210, 204, 205, 207, 203, 203, 205, 202, 202, 204, 203, 203, 203, 199, 199, 199, 195, 193, 194, 192, 190, 191, 192, 188, 189, 190, 186, 187, 187, 183, 184, 184, 180, 181, 181, 177, 176, 178, 174, 173, 173, 169, 166, 170, 166, 163, 169, 164, 161, 166, 161, 158, 162, 157, 154, 158, 153, 150, 155, 150, 146, 153, 148, 144, 153, 145, 142, 152, 144, 141, 151, 143, 140, 151, 143, 140, 152, 145, 139, 153, 146, 140, 151, 143, 141, 152, 144, 142, 154, 146, 144, 156, 148, 146, 158, 150, 148, 160, 152, 150, 162, 154, 152, 162, 154, 152, 161, 153, 151, 162, 154, 152, 162, 154, 152, 162, 154, 152, 162, 154, 152, 162, 154, 152, 163, 155, 153, 163, 155, 153, 166, 158, 156, 166, 158, 156, 167, 159, 157, 168, 160, 158, 169, 161, 159, 170, 162, 160, 171, 163, 161, 172, 164, 162, 173, 165, 163, 173, 165, 163, 174, 166, 164, 176, 168, 166, 179, 171, 169, 183, 175, 173, 186, 178, 176, 185, 180, 177, 188, 182, 182, 190, 186, 185, 192, 190, 191, 195, 195, 195, 199, 199, 201, 205, 206, 208, 210, 213, 218, 216, 219, 224, 221, 226, 230, 225, 230, 234, 230, 235, 239, 234, 239, 243, 235, 240, 244, 236, 241, 245, 238, 241, 246, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 245, 249, 252, 247, 248, 252, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 248, 251, 243, 248, 251, 243, 248, 251, 243, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 245, 246, 248, 245, 246, 248, 245, 246, 248, 244, 245, 247, 244, 245, 247, 244, 245, 247, 243, 244, 246, 242, 243, 245, 241, 242, 244, 240, 241, 243, 238, 239, 241, 237, 238, 240, 235, 236, 238, 234, 236, 235, 233, 235, 234, 233, 235, 234, 233, 235, 234, 233, 235, 232, 233, 235, 232, 233, 235, 232, 233, 235, 232, 233, 235, 232, 233, 235, 232, 235, 235, 233, 235, 235, 233, 235, 235, 233, 235, 235, 233, 235, 235, 233, 235, 235, 233, 235, 235, 233, 235, 235, 233, 234, 234, 232, 233, 233, 231, 233, 233, 231, 232, 232, 230, 233, 233, 231, 234, 234, 232, 235, 235, 233, 236, 236, 234, 236, 236, 234, 236, 236, 234, 236, 236, 234, 236, 236, 234, 237, 237, 235, 237, 237, 235, 237, 237, 235, 238, 238, 236, 239, 239, 237, 240, 240, 238, 240, 240, 238, 241, 241, 239, 241, 241, 239, 240, 240, 238, 239, 239, 237, 239, 239, 237, 236, 236, 234, 237, 237, 235, 237, 237, 235, 237, 237, 235, 238, 238, 236, 238, 238, 236, 239, 239, 237, 239, 239, 237, 241, 241, 239, 241, 241, 239, 244, 244, 242, 246, 246, 244, 243, 243, 241, 237, 237, 235, 236, 236, 234, 239, 239, 237, 238, 238, 236, 237, 237, 235, 237, 238, 233, 239, 240, 235, 243, 242, 238, 243, 242, 238, 241, 240, 236, 238, 237, 233, 238, 237, 232, 237, 236, 231, 239, 236, 231, 239, 236, 231, 238, 235, 230, 238, 235, 230, 238, 235, 228, 237, 234, 227, 237, 234, 229, 239, 236, 231, 241, 238, 233, 240, 237, 232, 238, 233, 227, 235, 230, 224, 236, 231, 225, 237, 232, 226, 234, 230, 221, 233, 229, 220, 235, 228, 220, 235, 228, 220, 234, 227, 219, 234, 227, 219, 234, 227, 219, 234, 227, 219, 232, 223, 214, 232, 223, 214, 231, 222, 213, 230, 221, 212, 230, 221, 212, 229, 220, 211, 228, 220, 209, 228, 220, 209, 228, 218, 208, 228, 218, 208, 228, 218, 208, 227, 217, 207, 227, 217, 205, 227, 217, 205, 228, 216, 204, 228, 216, 204, 227, 214, 205, 226, 213, 204, 226, 213, 204, 226, 213, 204, 225, 212, 203, 225, 212, 203, 225, 212, 203, 224, 211, 202, 224, 211, 202, 224, 211, 202, 224, 211, 202, 224, 211, 202, 224, 211, 202, 224, 211, 202, 224, 211, 202, 224, 211, 202, 220, 210, 201, 220, 210, 201, 220, 210, 201, 221, 211, 202, 221, 211, 202, 222, 212, 203, 222, 212, 203, 222, 212, 203, 222, 212, 203, 221, 211, 202, 220, 210, 201, 219, 209, 200, 219, 209, 200, 220, 210, 201, 221, 211, 202, 222, 212, 203, 222, 212, 203, 222, 212, 203, 222, 212, 203, 221, 211, 202, 221, 211, 202, 221, 211, 202, 220, 210, 201, 220, 210, 201, 222, 212, 203, 222, 212, 203, 222, 212, 203, 223, 213, 204, 223, 213, 204, 224, 214, 205, 224, 214, 205, 224, 214, 205, 222, 212, 203, 222, 212, 202, 222, 212, 203, 222, 212, 202, 222, 212, 203, 222, 212, 202, 222, 212, 203, 222, 212, 202, 224, 214, 205, 223, 213, 203, 222, 212, 203, 220, 210, 200, 220, 210, 201, 220, 210, 200, 220, 210, 201, 220, 210, 200, 220, 210, 201, 218, 208, 198, 216, 206, 196, 218, 206, 194, 219, 207, 195, 220, 206, 193, 218, 204, 191, 218, 202, 189, 219, 203, 190, 220, 204, 191, 220, 203, 193, 218, 204, 193, 219, 205, 196, 219, 205, 196, 219, 205, 196, 219, 206, 197, 220, 208, 196, 218, 208, 196, 218, 208, 196, 218, 208, 196, 220, 208, 196, 220, 208, 196, 221, 207, 196, 221, 207, 196, 223, 206, 196, 223, 206, 196, 222, 205, 195, 222, 205, 195, 222, 204, 194, 222, 204, 194, 222, 204, 194, 222, 204, 194, 221, 205, 192, 221, 205, 192, 221, 205, 192, 221, 205, 192, 221, 205, 192, 221, 205, 192, 221, 205, 192, 221, 205, 192, 221, 205, 192, 221, 205, 192, 221, 205, 192, 221, 205, 192, 221, 205, 192, 221, 205, 192, 221, 205, 192, 221, 205, 192, 220, 204, 191, 220, 204, 191, 220, 204, 191, 220, 204, 191, 220, 204, 191, 220, 204, 191, 220, 204, 191, 220, 204, 191, 221, 205, 192, 221, 205, 192, 222, 206, 193, 222, 206, 193, 222, 206, 193, 223, 207, 194, 223, 207, 194, 221, 207, 194, 221, 208, 199, 221, 208, 199, 222, 209, 200, 222, 209, 200, 223, 210, 201, 223, 210, 201, 223, 210, 201, 223, 210, 201, 223, 210, 201, 223, 210, 201, 224, 211, 202, 224, 211, 202, 224, 211, 202, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 213, 201, 225, 213, 201, 226, 214, 202, 226, 214, 202, 224, 214, 204, 225, 215, 205, 225, 215, 205, 225, 215, 205, 226, 218, 207, 226, 218, 207, 226, 217, 208, 227, 218, 209, 227, 218, 209, 227, 218, 209, 228, 219, 210, 228, 219, 210, 228, 219, 210, 228, 219, 210, 229, 220, 211, 229, 220, 211, 229, 222, 212, 229, 222, 212, 229, 222, 214, 229, 222, 214, 230, 223, 215, 230, 223, 215, 229, 224, 218, 230, 225, 219, 231, 226, 220, 231, 226, 220, 232, 227, 221, 232, 227, 221, 231, 226, 220, 231, 226, 220, 231, 226, 220, 232, 227, 221, 232, 227, 221, 233, 228, 222, 233, 228, 222, 233, 228, 222, 234, 229, 223, 233, 228, 222, 232, 227, 221, 231, 226, 220, 233, 228, 222, 235, 230, 224, 238, 233, 227, 239, 236, 229, 238, 234, 231, 235, 234, 230, 234, 233, 229, 233, 232, 228, 233, 232, 228, 233, 232, 228, 233, 232, 228, 234, 233, 229, 235, 234, 230, 235, 234, 230, 234, 233, 229, 234, 233, 229, 235, 234, 230, 237, 236, 232, 238, 237, 233, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 240, 241, 235, 240, 241, 235, 241, 242, 236, 241, 242, 236, 241, 242, 237, 242, 243, 238, 242, 243, 238, 242, 243, 238, 243, 244, 239, 243, 244, 239, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 250, 252, 251, 250, 252, 251, 249, 251, 250, 249, 251, 250, 249, 251, 250, 248, 250, 249, 248, 250, 249, 248, 250, 249, 246, 248, 247, 246, 248, 247, 245, 247, 246, 244, 246, 245, 244, 246, 245, 243, 245, 244, 242, 244, 243, 242, 244, 243, 239, 240, 242, 239, 240, 242, 239, 240, 242, 237, 238, 240, 235, 236, 238, 233, 234, 236, 230, 231, 233, 229, 230, 232, 231, 232, 234, 229, 230, 232, 225, 226, 228, 223, 224, 226, 222, 223, 225, 220, 221, 223, 217, 218, 220, 214, 215, 217, 208, 212, 215, 207, 211, 214, 207, 211, 212, 206, 210, 211, 207, 208, 210, 206, 207, 209, 207, 207, 209, 206, 206, 208, 201, 201, 201, 197, 197, 197, 193, 191, 192, 190, 188, 189, 190, 186, 187, 188, 184, 185, 185, 181, 182, 182, 178, 179, 181, 177, 176, 178, 174, 173, 174, 170, 167, 170, 166, 163, 169, 164, 161, 166, 161, 158, 162, 157, 154, 159, 154, 151, 154, 149, 145, 152, 147, 143, 151, 143, 140, 148, 140, 137, 147, 139, 136, 147, 139, 136, 148, 141, 135, 149, 142, 136, 148, 140, 138, 149, 141, 139, 151, 143, 141, 153, 145, 143, 156, 148, 146, 158, 150, 148, 160, 152, 150, 161, 153, 151, 160, 152, 150, 160, 152, 150, 160, 152, 150, 160, 152, 150, 160, 152, 150, 160, 152, 150, 160, 152, 150, 160, 152, 150, 163, 155, 153, 164, 156, 154, 165, 157, 155, 166, 158, 156, 167, 159, 157, 168, 160, 158, 169, 161, 159, 170, 162, 160, 172, 164, 162, 172, 164, 162, 173, 165, 163, 175, 167, 165, 178, 170, 168, 181, 173, 171, 184, 176, 174, 184, 179, 176, 187, 181, 181, 189, 185, 184, 191, 189, 190, 194, 192, 193, 197, 197, 199, 203, 204, 206, 208, 212, 215, 214, 217, 222, 218, 223, 227, 222, 227, 231, 228, 233, 237, 232, 237, 241, 233, 238, 242, 234, 239, 243, 237, 240, 245, 239, 242, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 248, 251, 247, 248, 252, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 248, 251, 243, 248, 251, 243, 248, 251, 243, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 245, 246, 248, 245, 246, 248, 245, 246, 248, 244, 245, 247, 244, 245, 247, 244, 245, 247, 243, 244, 246, 242, 243, 245, 241, 242, 244, 240, 241, 243, 239, 240, 242, 237, 238, 240, 236, 237, 239, 234, 236, 235, 234, 236, 235, 234, 236, 235, 234, 236, 235, 234, 236, 233, 234, 236, 233, 234, 236, 233, 234, 236, 233, 234, 236, 233, 234, 236, 233, 236, 236, 234, 236, 236, 234, 235, 235, 233, 235, 235, 233, 235, 235, 233, 234, 234, 232, 234, 234, 232, 234, 234, 232, 234, 234, 232, 234, 234, 232, 233, 233, 231, 233, 233, 231, 234, 234, 232, 236, 236, 234, 237, 237, 235, 238, 238, 236, 235, 235, 233, 235, 235, 233, 235, 235, 233, 236, 236, 234, 236, 236, 234, 236, 236, 234, 237, 237, 235, 237, 237, 235, 240, 240, 238, 240, 240, 238, 241, 241, 239, 241, 241, 239, 241, 241, 239, 240, 240, 238, 239, 239, 237, 238, 238, 236, 237, 237, 235, 237, 237, 235, 237, 237, 235, 238, 238, 236, 239, 239, 237, 240, 240, 238, 240, 240, 238, 240, 240, 238, 241, 241, 239, 247, 247, 245, 248, 248, 246, 242, 242, 240, 238, 238, 236, 238, 238, 236, 239, 239, 237, 239, 239, 237, 239, 239, 237, 237, 237, 235, 237, 237, 235, 240, 240, 238, 243, 244, 239, 244, 245, 240, 241, 240, 236, 237, 236, 232, 238, 237, 233, 238, 237, 233, 237, 236, 231, 237, 236, 231, 239, 236, 231, 238, 235, 230, 238, 235, 230, 238, 235, 230, 237, 234, 229, 240, 237, 232, 242, 239, 234, 240, 237, 232, 236, 233, 228, 234, 231, 226, 236, 231, 225, 239, 234, 228, 234, 229, 223, 234, 229, 223, 233, 229, 220, 233, 229, 220, 235, 228, 220, 234, 227, 219, 234, 227, 219, 234, 227, 219, 231, 224, 216, 231, 224, 216, 230, 223, 213, 230, 223, 213, 230, 221, 212, 229, 220, 211, 228, 219, 210, 228, 219, 210, 227, 219, 208, 227, 219, 208, 228, 218, 208, 227, 217, 207, 227, 217, 207, 227, 217, 207, 226, 216, 204, 226, 216, 204, 227, 214, 205, 226, 213, 204, 226, 213, 204, 226, 213, 204, 225, 212, 203, 225, 212, 203, 225, 212, 203, 224, 211, 202, 223, 210, 201, 223, 210, 201, 223, 210, 201, 223, 210, 201, 223, 210, 201, 223, 210, 201, 223, 210, 201, 223, 210, 201, 222, 209, 200, 222, 209, 200, 222, 209, 200, 223, 210, 201, 223, 210, 201, 223, 210, 201, 224, 211, 202, 224, 211, 202, 223, 210, 201, 222, 209, 200, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 222, 209, 200, 223, 210, 201, 223, 210, 202, 223, 210, 202, 223, 210, 202, 222, 209, 201, 222, 209, 201, 222, 209, 201, 221, 208, 200, 221, 208, 200, 223, 210, 202, 223, 210, 202, 224, 211, 203, 224, 211, 203, 224, 211, 203, 225, 212, 204, 225, 212, 204, 225, 212, 204, 223, 210, 201, 223, 211, 199, 223, 210, 201, 223, 211, 199, 223, 210, 201, 223, 211, 199, 223, 210, 201, 223, 211, 199, 225, 212, 203, 224, 212, 200, 223, 210, 201, 221, 209, 197, 220, 207, 198, 220, 208, 196, 221, 208, 199, 221, 209, 197, 222, 209, 200, 220, 208, 196, 218, 206, 194, 218, 206, 194, 220, 206, 195, 222, 206, 193, 220, 204, 191, 219, 201, 187, 219, 201, 187, 219, 201, 187, 220, 202, 190, 219, 203, 190, 220, 203, 193, 220, 203, 193, 220, 203, 193, 218, 204, 193, 219, 207, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 220, 206, 195, 220, 206, 195, 221, 207, 196, 221, 207, 196, 222, 205, 195, 222, 205, 195, 221, 204, 194, 221, 204, 194, 222, 204, 194, 222, 204, 194, 221, 205, 192, 219, 205, 192, 219, 205, 192, 219, 205, 192, 219, 205, 192, 219, 205, 192, 219, 205, 192, 219, 205, 192, 219, 205, 192, 219, 205, 192, 219, 205, 192, 219, 205, 192, 219, 205, 192, 219, 205, 192, 219, 205, 192, 219, 205, 192, 219, 205, 192, 219, 205, 192, 219, 205, 192, 219, 205, 192, 219, 205, 192, 219, 205, 192, 219, 205, 192, 219, 205, 192, 219, 205, 192, 219, 205, 192, 220, 206, 193, 220, 206, 193, 220, 206, 193, 221, 207, 194, 221, 207, 194, 221, 207, 194, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 223, 210, 201, 223, 210, 201, 224, 211, 202, 224, 211, 202, 223, 210, 201, 223, 210, 201, 224, 211, 202, 224, 211, 202, 224, 211, 202, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 213, 201, 225, 213, 201, 226, 214, 202, 226, 214, 202, 224, 214, 204, 225, 215, 205, 225, 215, 205, 225, 215, 205, 226, 218, 207, 226, 218, 207, 226, 217, 208, 227, 218, 209, 227, 218, 209, 227, 218, 209, 228, 219, 210, 228, 219, 210, 228, 219, 210, 228, 219, 210, 229, 220, 211, 229, 220, 211, 229, 222, 212, 229, 222, 212, 229, 222, 214, 229, 222, 214, 230, 223, 215, 230, 223, 215, 229, 224, 218, 230, 225, 219, 231, 226, 220, 231, 226, 220, 232, 227, 221, 232, 227, 221, 231, 226, 220, 231, 226, 220, 231, 226, 220, 232, 227, 221, 232, 227, 221, 233, 228, 222, 233, 228, 222, 233, 228, 222, 234, 229, 223, 234, 229, 223, 233, 228, 222, 233, 228, 222, 233, 228, 222, 234, 229, 223, 236, 231, 225, 235, 232, 225, 239, 235, 232, 236, 235, 231, 235, 234, 230, 233, 232, 228, 233, 232, 228, 233, 232, 228, 233, 232, 228, 234, 233, 229, 233, 232, 228, 234, 233, 229, 235, 234, 230, 237, 236, 232, 237, 236, 232, 238, 237, 233, 237, 236, 232, 237, 236, 232, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 240, 241, 235, 240, 241, 235, 241, 242, 236, 241, 242, 236, 241, 242, 237, 242, 243, 238, 242, 243, 238, 242, 243, 238, 243, 244, 239, 243, 244, 239, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 251, 253, 253, 251, 254, 254, 252, 254, 254, 252, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 250, 252, 251, 250, 252, 251, 250, 252, 251, 249, 251, 250, 249, 251, 250, 249, 251, 250, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 245, 247, 246, 244, 246, 245, 243, 245, 244, 243, 245, 244, 240, 241, 243, 240, 241, 243, 240, 241, 243, 239, 240, 242, 237, 238, 240, 235, 236, 238, 233, 234, 236, 232, 233, 235, 234, 235, 237, 230, 231, 233, 226, 227, 229, 223, 224, 226, 221, 222, 224, 218, 219, 221, 214, 215, 217, 210, 211, 213, 205, 209, 210, 204, 208, 209, 206, 207, 209, 205, 206, 208, 204, 205, 207, 203, 204, 206, 204, 204, 204, 204, 204, 204, 198, 196, 197, 194, 192, 193, 191, 187, 188, 187, 183, 184, 186, 182, 181, 184, 180, 179, 180, 176, 175, 178, 174, 173, 178, 174, 173, 174, 170, 169, 171, 166, 163, 168, 163, 160, 166, 161, 158, 163, 158, 155, 159, 154, 151, 155, 150, 147, 154, 146, 143, 152, 144, 141, 148, 140, 137, 144, 136, 133, 142, 134, 131, 142, 134, 131, 145, 136, 131, 146, 137, 132, 145, 137, 135, 147, 139, 137, 149, 141, 139, 151, 143, 141, 154, 146, 144, 156, 148, 146, 158, 150, 148, 160, 152, 150, 159, 151, 149, 159, 151, 149, 159, 151, 149, 159, 151, 149, 158, 150, 148, 158, 150, 148, 158, 150, 148, 158, 150, 148, 161, 153, 151, 162, 154, 152, 163, 155, 153, 164, 156, 154, 165, 157, 155, 166, 158, 156, 167, 159, 157, 167, 159, 157, 171, 163, 161, 171, 163, 161, 172, 164, 162, 174, 166, 164, 177, 169, 167, 181, 173, 171, 184, 176, 174, 183, 178, 175, 186, 181, 178, 188, 184, 181, 190, 189, 187, 193, 191, 192, 196, 196, 198, 201, 202, 204, 207, 211, 214, 212, 216, 219, 217, 220, 225, 221, 224, 229, 227, 230, 235, 231, 234, 239, 232, 235, 240, 234, 237, 242, 236, 240, 243, 238, 242, 245, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 248, 251, 247, 248, 252, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 248, 251, 243, 248, 251, 243, 248, 251, 243, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 245, 246, 248, 245, 246, 248, 245, 246, 248, 244, 245, 247, 244, 245, 247, 244, 245, 247, 243, 244, 246, 242, 243, 245, 242, 243, 245, 240, 241, 243, 239, 240, 242, 237, 238, 240, 236, 237, 239, 235, 237, 236, 234, 236, 235, 234, 236, 235, 234, 236, 235, 234, 236, 233, 234, 236, 233, 234, 236, 233, 234, 236, 233, 234, 236, 233, 234, 236, 233, 236, 236, 234, 236, 236, 234, 235, 235, 233, 235, 235, 233, 234, 234, 232, 234, 234, 232, 234, 234, 232, 233, 233, 231, 235, 235, 233, 234, 234, 232, 234, 234, 232, 234, 234, 232, 235, 235, 233, 237, 237, 235, 238, 238, 236, 239, 239, 237, 234, 234, 232, 235, 235, 233, 235, 235, 233, 235, 235, 233, 236, 236, 234, 236, 236, 234, 236, 236, 234, 236, 236, 234, 240, 240, 238, 240, 240, 238, 241, 241, 239, 241, 241, 239, 241, 241, 239, 240, 240, 238, 238, 238, 236, 238, 238, 236, 237, 237, 235, 237, 237, 235, 238, 238, 236, 239, 239, 237, 240, 240, 238, 240, 240, 238, 241, 241, 239, 241, 241, 239, 241, 241, 239, 250, 250, 248, 250, 250, 248, 239, 239, 237, 234, 234, 232, 239, 239, 237, 241, 241, 239, 238, 238, 236, 239, 239, 237, 237, 237, 235, 237, 237, 235, 240, 240, 238, 244, 245, 240, 245, 246, 241, 241, 240, 236, 236, 235, 231, 238, 237, 233, 238, 237, 233, 237, 236, 231, 237, 236, 231, 239, 236, 231, 238, 235, 230, 238, 235, 230, 238, 235, 230, 237, 234, 229, 240, 237, 232, 242, 239, 234, 240, 237, 232, 235, 232, 227, 233, 230, 225, 236, 231, 225, 240, 235, 229, 234, 229, 223, 234, 229, 223, 234, 230, 221, 233, 229, 220, 235, 228, 220, 234, 227, 219, 234, 227, 219, 234, 227, 219, 231, 224, 216, 231, 224, 216, 231, 224, 214, 230, 223, 213, 230, 221, 212, 229, 220, 211, 229, 220, 211, 228, 219, 210, 227, 219, 208, 227, 219, 208, 228, 218, 208, 227, 217, 207, 227, 217, 207, 227, 217, 207, 226, 216, 204, 226, 216, 204, 227, 214, 205, 226, 213, 204, 226, 213, 204, 226, 213, 204, 225, 212, 203, 225, 212, 203, 225, 212, 203, 224, 211, 202, 223, 210, 201, 223, 210, 201, 223, 210, 201, 223, 210, 201, 223, 210, 201, 223, 210, 201, 223, 210, 201, 223, 210, 201, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 223, 210, 201, 223, 210, 201, 223, 210, 201, 224, 211, 202, 223, 210, 201, 222, 209, 200, 221, 208, 199, 220, 207, 198, 220, 207, 198, 221, 208, 199, 222, 209, 200, 223, 210, 201, 223, 210, 202, 223, 210, 202, 222, 209, 201, 222, 209, 201, 222, 209, 201, 221, 208, 200, 221, 208, 200, 221, 208, 200, 223, 210, 202, 223, 210, 202, 223, 210, 202, 223, 210, 202, 224, 211, 203, 224, 211, 203, 225, 212, 204, 225, 212, 203, 222, 209, 200, 222, 210, 198, 222, 210, 198, 222, 210, 198, 222, 210, 198, 222, 210, 198, 222, 210, 198, 222, 210, 198, 225, 213, 201, 224, 212, 200, 222, 210, 198, 221, 209, 197, 220, 208, 196, 220, 208, 196, 220, 208, 196, 220, 208, 196, 222, 210, 198, 220, 208, 196, 218, 206, 194, 219, 205, 192, 222, 206, 193, 222, 206, 191, 221, 203, 189, 219, 201, 187, 219, 201, 187, 219, 201, 187, 219, 201, 189, 220, 202, 190, 220, 202, 192, 219, 202, 192, 220, 203, 193, 220, 203, 193, 220, 206, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 220, 206, 195, 220, 206, 195, 221, 207, 196, 221, 207, 196, 222, 205, 195, 222, 205, 195, 221, 204, 194, 221, 204, 194, 222, 204, 194, 221, 204, 194, 219, 205, 192, 219, 205, 192, 219, 205, 192, 219, 205, 192, 219, 205, 192, 219, 205, 192, 219, 205, 192, 219, 205, 192, 219, 205, 192, 219, 205, 192, 219, 205, 192, 219, 205, 192, 219, 205, 192, 219, 205, 192, 219, 205, 192, 219, 205, 192, 219, 205, 192, 219, 205, 192, 219, 205, 192, 219, 205, 192, 219, 205, 192, 219, 205, 192, 219, 205, 192, 219, 205, 192, 219, 205, 192, 219, 205, 192, 220, 206, 193, 220, 206, 193, 220, 206, 193, 221, 207, 194, 221, 207, 194, 221, 207, 194, 222, 209, 200, 222, 209, 200, 222, 209, 200, 223, 210, 201, 223, 210, 201, 223, 210, 201, 224, 211, 202, 224, 211, 202, 223, 210, 201, 223, 210, 201, 224, 211, 202, 224, 211, 202, 224, 211, 202, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 213, 201, 225, 213, 201, 226, 214, 202, 226, 214, 202, 224, 214, 204, 225, 215, 205, 225, 215, 205, 225, 215, 205, 226, 218, 207, 226, 218, 207, 226, 217, 208, 227, 218, 209, 227, 218, 209, 227, 218, 209, 228, 219, 210, 228, 219, 210, 228, 219, 210, 228, 219, 210, 229, 220, 211, 229, 220, 211, 229, 222, 212, 229, 222, 212, 229, 222, 214, 229, 222, 214, 230, 223, 215, 230, 223, 215, 229, 224, 218, 230, 225, 219, 231, 226, 220, 231, 226, 220, 232, 227, 221, 232, 227, 221, 231, 226, 220, 231, 226, 220, 231, 226, 220, 232, 227, 221, 232, 227, 221, 233, 228, 222, 233, 228, 222, 233, 228, 222, 234, 229, 223, 234, 229, 223, 234, 229, 223, 234, 229, 223, 234, 229, 223, 234, 229, 223, 234, 229, 223, 232, 229, 222, 240, 236, 233, 237, 236, 232, 235, 234, 230, 234, 233, 229, 233, 232, 228, 233, 232, 228, 233, 232, 228, 233, 232, 228, 231, 230, 226, 233, 232, 228, 236, 235, 231, 238, 237, 233, 239, 238, 234, 238, 237, 233, 236, 235, 231, 235, 234, 230, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 240, 241, 235, 240, 241, 235, 241, 242, 236, 241, 242, 236, 241, 242, 237, 242, 243, 238, 242, 243, 238, 242, 243, 238, 243, 244, 239, 243, 244, 239, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 251, 253, 253, 251, 253, 253, 251, 254, 254, 252, 254, 254, 252, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 250, 252, 251, 250, 252, 251, 250, 252, 251, 249, 251, 250, 249, 251, 250, 249, 251, 250, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 246, 248, 247, 246, 248, 247, 245, 247, 246, 244, 246, 245, 244, 246, 245, 242, 243, 245, 242, 243, 245, 242, 243, 245, 241, 242, 244, 240, 241, 243, 237, 238, 240, 235, 236, 238, 234, 235, 237, 235, 236, 238, 232, 233, 235, 227, 228, 230, 223, 224, 226, 221, 222, 224, 217, 218, 220, 212, 213, 215, 209, 210, 212, 209, 213, 214, 207, 211, 212, 207, 208, 210, 204, 205, 207, 201, 202, 204, 198, 199, 201, 196, 196, 196, 195, 195, 195, 194, 192, 193, 190, 188, 189, 187, 183, 184, 184, 180, 181, 182, 178, 177, 180, 176, 175, 177, 173, 172, 175, 171, 170, 174, 170, 169, 171, 167, 166, 168, 163, 160, 165, 160, 157, 162, 157, 154, 159, 154, 151, 155, 150, 147, 152, 147, 144, 153, 145, 142, 150, 142, 139, 145, 137, 134, 141, 133, 130, 139, 131, 128, 139, 131, 128, 142, 133, 128, 143, 134, 129, 144, 136, 134, 145, 137, 135, 147, 139, 137, 150, 142, 140, 153, 145, 143, 155, 147, 145, 157, 149, 147, 159, 151, 149, 158, 150, 148, 158, 150, 148, 158, 150, 148, 157, 149, 147, 157, 149, 147, 157, 149, 147, 156, 148, 146, 156, 148, 146, 160, 152, 150, 160, 152, 150, 161, 153, 151, 162, 154, 152, 164, 156, 154, 165, 157, 155, 166, 158, 156, 166, 158, 156, 170, 162, 160, 171, 163, 161, 172, 164, 162, 174, 166, 164, 177, 169, 167, 180, 172, 170, 183, 175, 173, 185, 177, 175, 186, 181, 178, 188, 184, 181, 191, 187, 186, 193, 192, 190, 195, 195, 195, 201, 201, 203, 208, 209, 213, 211, 215, 218, 215, 218, 223, 220, 223, 228, 226, 229, 234, 230, 233, 238, 231, 234, 239, 233, 236, 241, 235, 239, 242, 237, 241, 244, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 248, 251, 247, 248, 252, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 248, 251, 243, 248, 251, 243, 248, 251, 243, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 246, 248, 245, 246, 248, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 249, 245, 246, 248, 245, 246, 248, 242, 243, 245, 242, 243, 245, 241, 242, 244, 240, 241, 243, 238, 239, 241, 237, 238, 240, 236, 238, 237, 236, 238, 237, 235, 237, 236, 235, 237, 236, 235, 237, 234, 235, 237, 234, 235, 237, 234, 235, 237, 234, 235, 237, 234, 235, 237, 234, 236, 236, 234, 235, 235, 233, 235, 235, 233, 235, 235, 233, 234, 234, 232, 234, 234, 232, 234, 234, 232, 233, 233, 231, 236, 236, 234, 236, 236, 234, 236, 236, 234, 236, 236, 234, 236, 236, 234, 236, 236, 234, 236, 236, 234, 236, 236, 234, 234, 234, 232, 237, 237, 235, 238, 238, 236, 236, 236, 234, 232, 232, 230, 233, 233, 231, 238, 238, 236, 244, 244, 242, 242, 242, 240, 241, 241, 239, 240, 240, 238, 239, 239, 237, 238, 238, 236, 237, 237, 235, 236, 236, 234, 235, 235, 233, 235, 235, 233, 236, 236, 234, 236, 236, 234, 237, 237, 235, 238, 238, 236, 238, 238, 236, 239, 239, 237, 239, 239, 237, 245, 245, 243, 244, 244, 242, 242, 242, 240, 241, 241, 239, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 236, 238, 235, 241, 243, 240, 246, 246, 244, 245, 245, 243, 241, 241, 239, 237, 237, 235, 237, 237, 235, 239, 239, 237, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 233, 239, 238, 233, 239, 238, 233, 239, 238, 233, 242, 241, 237, 241, 240, 236, 239, 238, 233, 238, 237, 232, 237, 234, 229, 236, 233, 228, 234, 231, 226, 233, 230, 225, 234, 231, 224, 234, 231, 224, 235, 230, 224, 234, 229, 223, 234, 229, 223, 234, 229, 223, 233, 229, 220, 233, 229, 220, 232, 225, 217, 232, 225, 217, 231, 224, 216, 230, 223, 215, 230, 223, 215, 229, 222, 214, 229, 220, 211, 229, 220, 211, 229, 220, 211, 229, 220, 211, 228, 220, 209, 228, 220, 209, 228, 218, 208, 227, 217, 207, 226, 216, 206, 226, 216, 206, 228, 215, 206, 228, 215, 206, 228, 215, 206, 227, 214, 205, 226, 213, 204, 225, 212, 203, 225, 212, 203, 224, 211, 202, 224, 211, 202, 224, 211, 202, 224, 211, 202, 223, 210, 201, 223, 210, 201, 223, 210, 201, 222, 209, 200, 222, 209, 200, 223, 210, 201, 223, 210, 201, 223, 210, 201, 223, 210, 201, 222, 209, 200, 222, 209, 200, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 220, 207, 198, 221, 208, 199, 221, 208, 199, 223, 210, 201, 224, 211, 202, 225, 212, 203, 221, 206, 199, 221, 206, 199, 221, 206, 199, 222, 207, 200, 222, 207, 200, 222, 207, 200, 223, 208, 201, 223, 208, 201, 221, 206, 199, 221, 206, 199, 222, 207, 200, 223, 208, 201, 224, 209, 202, 224, 209, 202, 225, 210, 203, 225, 211, 202, 222, 208, 199, 222, 208, 197, 222, 208, 197, 222, 208, 197, 222, 208, 197, 222, 208, 197, 222, 208, 197, 222, 208, 197, 224, 210, 199, 223, 209, 198, 223, 209, 198, 223, 209, 198, 222, 208, 197, 222, 208, 197, 222, 208, 197, 221, 207, 196, 221, 207, 194, 221, 207, 194, 220, 206, 193, 219, 205, 192, 219, 203, 190, 219, 201, 187, 219, 200, 186, 219, 200, 185, 220, 201, 186, 221, 202, 187, 221, 202, 188, 220, 202, 188, 221, 203, 191, 221, 203, 191, 221, 203, 191, 220, 204, 191, 217, 203, 192, 217, 203, 192, 218, 204, 193, 218, 204, 193, 219, 205, 194, 219, 205, 194, 219, 205, 194, 219, 205, 194, 220, 206, 195, 220, 206, 195, 220, 206, 195, 220, 206, 195, 222, 205, 195, 222, 205, 195, 222, 205, 195, 222, 205, 195, 220, 206, 193, 220, 206, 193, 220, 206, 193, 220, 206, 193, 220, 206, 193, 220, 206, 193, 220, 206, 193, 220, 206, 193, 219, 205, 192, 219, 205, 192, 219, 205, 192, 219, 205, 192, 219, 205, 192, 219, 205, 192, 219, 205, 192, 219, 205, 192, 221, 207, 194, 221, 207, 194, 221, 207, 194, 221, 207, 194, 221, 207, 194, 221, 207, 194, 221, 207, 194, 221, 207, 194, 220, 206, 193, 220, 206, 193, 221, 207, 194, 221, 207, 194, 221, 207, 194, 222, 208, 195, 222, 208, 195, 222, 208, 195, 221, 208, 199, 221, 208, 199, 221, 208, 199, 222, 209, 200, 222, 209, 200, 223, 210, 201, 223, 210, 201, 223, 210, 201, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 212, 203, 226, 214, 202, 226, 214, 202, 227, 215, 203, 227, 215, 203, 226, 216, 206, 226, 216, 206, 226, 216, 206, 226, 216, 206, 226, 218, 207, 227, 219, 208, 227, 218, 209, 227, 218, 209, 228, 219, 210, 228, 219, 210, 228, 219, 210, 229, 220, 211, 229, 220, 211, 229, 220, 211, 229, 220, 211, 230, 221, 212, 229, 222, 212, 230, 223, 213, 230, 223, 215, 230, 223, 215, 231, 224, 216, 231, 224, 216, 230, 225, 219, 230, 225, 219, 230, 225, 219, 231, 226, 220, 231, 226, 220, 231, 226, 220, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 234, 229, 223, 234, 229, 223, 234, 229, 223, 235, 230, 224, 234, 231, 224, 234, 230, 227, 234, 233, 229, 237, 236, 232, 238, 237, 233, 238, 237, 233, 235, 234, 230, 232, 231, 227, 230, 229, 225, 235, 234, 230, 235, 234, 230, 235, 234, 230, 236, 235, 231, 236, 235, 231, 236, 235, 231, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 241, 242, 236, 241, 242, 236, 242, 243, 237, 242, 243, 237, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 244, 245, 240, 244, 245, 240, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 252, 251, 250, 252, 251, 249, 251, 250, 249, 251, 250, 249, 251, 250, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 244, 245, 247, 244, 245, 247, 243, 244, 246, 242, 243, 245, 240, 241, 243, 239, 240, 242, 238, 239, 241, 238, 239, 241, 238, 239, 241, 235, 236, 238, 231, 232, 234, 228, 229, 231, 225, 226, 228, 221, 222, 224, 215, 216, 218, 210, 211, 213, 209, 210, 212, 207, 208, 210, 205, 206, 208, 204, 205, 207, 205, 205, 205, 203, 203, 203, 198, 198, 198, 195, 195, 195, 193, 191, 192, 188, 186, 187, 185, 181, 180, 181, 177, 176, 180, 174, 174, 178, 172, 172, 174, 168, 168, 172, 166, 166, 172, 166, 166, 171, 165, 165, 168, 163, 160, 165, 160, 157, 161, 156, 153, 158, 153, 150, 158, 150, 148, 156, 148, 146, 153, 145, 142, 151, 143, 140, 148, 138, 136, 144, 134, 132, 142, 132, 130, 141, 131, 129, 141, 132, 127, 142, 133, 128, 142, 134, 132, 144, 136, 134, 147, 139, 137, 148, 140, 138, 149, 141, 139, 152, 144, 142, 156, 148, 146, 160, 152, 150, 158, 150, 148, 158, 150, 148, 159, 151, 149, 159, 151, 149, 158, 150, 148, 157, 149, 147, 156, 148, 146, 155, 147, 145, 155, 147, 145, 156, 148, 146, 158, 150, 148, 160, 152, 150, 163, 155, 153, 165, 157, 155, 167, 159, 157, 168, 160, 158, 169, 161, 159, 170, 162, 160, 172, 164, 162, 175, 167, 165, 178, 170, 168, 180, 172, 170, 182, 174, 172, 183, 175, 173, 185, 180, 177, 186, 182, 179, 189, 185, 184, 189, 188, 186, 190, 190, 190, 195, 195, 197, 201, 202, 206, 206, 207, 211, 214, 217, 222, 216, 219, 224, 220, 223, 228, 225, 228, 233, 229, 233, 236, 232, 236, 239, 236, 237, 241, 237, 238, 242, 236, 239, 244, 236, 239, 244, 237, 240, 245, 237, 240, 245, 238, 241, 246, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 242, 245, 250, 243, 246, 251, 244, 247, 252, 244, 247, 252, 245, 249, 252, 246, 247, 251, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 248, 251, 243, 248, 251, 243, 248, 251, 243, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 246, 248, 245, 246, 248, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 249, 245, 246, 248, 245, 246, 248, 242, 243, 245, 242, 243, 245, 241, 242, 244, 240, 241, 243, 239, 240, 242, 237, 238, 240, 237, 239, 238, 236, 238, 237, 235, 237, 236, 235, 237, 236, 235, 237, 234, 235, 237, 234, 235, 237, 234, 235, 237, 234, 235, 237, 234, 235, 237, 234, 236, 236, 234, 236, 236, 234, 235, 235, 233, 235, 235, 233, 234, 234, 232, 234, 234, 232, 234, 234, 232, 234, 234, 232, 236, 236, 234, 236, 236, 234, 236, 236, 234, 236, 236, 234, 236, 236, 234, 236, 236, 234, 236, 236, 234, 236, 236, 234, 235, 235, 233, 236, 236, 234, 236, 236, 234, 235, 235, 233, 234, 234, 232, 236, 236, 234, 240, 240, 238, 243, 243, 241, 241, 241, 239, 241, 241, 239, 240, 240, 238, 239, 239, 237, 238, 238, 236, 237, 237, 235, 236, 236, 234, 236, 236, 234, 236, 236, 234, 236, 236, 234, 237, 237, 235, 238, 238, 236, 239, 239, 237, 239, 239, 237, 240, 240, 238, 240, 240, 238, 245, 245, 243, 244, 244, 242, 242, 242, 240, 241, 241, 239, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 237, 239, 236, 241, 243, 240, 245, 245, 243, 245, 245, 243, 241, 241, 239, 237, 237, 235, 237, 237, 235, 239, 239, 237, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 233, 239, 238, 233, 239, 238, 233, 239, 238, 233, 241, 240, 236, 241, 240, 236, 239, 238, 233, 237, 236, 231, 238, 235, 230, 236, 233, 228, 234, 231, 226, 234, 231, 226, 234, 231, 224, 234, 231, 224, 235, 230, 224, 234, 229, 223, 234, 229, 223, 234, 229, 223, 233, 229, 220, 233, 229, 220, 232, 225, 217, 232, 225, 217, 232, 225, 217, 231, 224, 216, 230, 223, 215, 229, 222, 214, 230, 221, 212, 229, 220, 211, 229, 220, 211, 229, 220, 211, 228, 220, 209, 228, 220, 209, 228, 218, 208, 227, 217, 207, 226, 216, 206, 226, 216, 206, 229, 216, 207, 228, 215, 206, 228, 215, 206, 227, 214, 205, 226, 213, 204, 225, 212, 203, 225, 212, 203, 224, 211, 202, 224, 211, 202, 224, 211, 202, 224, 211, 202, 224, 211, 202, 223, 210, 201, 223, 210, 201, 222, 209, 200, 222, 209, 200, 223, 210, 201, 223, 210, 201, 223, 210, 201, 223, 210, 201, 222, 209, 200, 222, 209, 200, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 220, 207, 198, 220, 207, 198, 221, 208, 199, 223, 210, 201, 224, 211, 202, 225, 212, 203, 221, 206, 199, 221, 206, 199, 221, 206, 199, 222, 207, 200, 222, 207, 200, 222, 207, 200, 223, 208, 201, 223, 208, 201, 221, 206, 199, 221, 206, 199, 222, 207, 200, 223, 208, 201, 223, 208, 201, 224, 209, 202, 225, 210, 203, 225, 211, 202, 222, 208, 197, 222, 208, 197, 222, 208, 197, 222, 208, 197, 222, 208, 197, 222, 208, 197, 222, 208, 197, 222, 208, 197, 223, 209, 198, 223, 209, 198, 223, 209, 198, 223, 209, 198, 222, 208, 197, 222, 208, 197, 221, 207, 196, 221, 207, 196, 221, 207, 194, 220, 206, 193, 219, 205, 192, 218, 204, 191, 220, 202, 188, 219, 201, 187, 219, 200, 185, 219, 200, 185, 220, 201, 186, 220, 201, 186, 220, 201, 187, 220, 201, 187, 220, 202, 190, 220, 202, 190, 220, 202, 190, 220, 204, 191, 219, 202, 192, 217, 203, 192, 218, 204, 193, 218, 204, 193, 219, 205, 194, 219, 205, 194, 219, 205, 194, 219, 205, 194, 220, 206, 195, 220, 206, 195, 220, 206, 195, 220, 206, 195, 222, 205, 195, 222, 205, 195, 222, 205, 195, 222, 205, 195, 220, 206, 193, 220, 206, 193, 220, 206, 193, 220, 206, 193, 220, 206, 193, 220, 206, 193, 220, 206, 193, 220, 206, 193, 219, 205, 192, 219, 205, 192, 219, 205, 192, 219, 205, 192, 219, 205, 192, 219, 205, 192, 219, 205, 192, 219, 205, 192, 221, 207, 194, 221, 207, 194, 221, 207, 194, 221, 207, 194, 221, 207, 194, 221, 207, 194, 221, 207, 194, 221, 207, 194, 220, 206, 193, 220, 206, 193, 221, 207, 194, 221, 207, 194, 221, 207, 194, 222, 208, 195, 222, 208, 195, 222, 208, 197, 221, 208, 199, 221, 208, 199, 222, 209, 200, 222, 209, 200, 222, 209, 200, 223, 210, 201, 223, 210, 201, 223, 210, 201, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 212, 203, 226, 214, 202, 226, 214, 202, 227, 215, 203, 227, 215, 203, 226, 216, 206, 226, 216, 206, 226, 216, 206, 226, 216, 206, 226, 218, 207, 227, 219, 208, 227, 218, 209, 227, 218, 209, 228, 219, 210, 228, 219, 210, 228, 219, 210, 229, 220, 211, 229, 220, 211, 229, 220, 211, 229, 220, 211, 230, 221, 212, 229, 222, 212, 230, 223, 213, 230, 223, 215, 230, 223, 215, 231, 224, 216, 231, 224, 216, 230, 225, 219, 230, 225, 219, 230, 225, 219, 231, 226, 220, 231, 226, 220, 231, 226, 220, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 234, 229, 223, 234, 229, 223, 234, 229, 223, 235, 230, 224, 234, 231, 224, 234, 230, 227, 234, 233, 229, 236, 235, 231, 238, 237, 233, 238, 237, 233, 236, 235, 231, 233, 232, 228, 231, 230, 226, 235, 234, 230, 235, 234, 230, 235, 234, 230, 236, 235, 231, 236, 235, 231, 236, 235, 231, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 241, 242, 236, 241, 242, 236, 242, 243, 237, 242, 243, 237, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 244, 245, 240, 244, 245, 240, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 252, 251, 250, 252, 251, 249, 251, 250, 249, 251, 250, 249, 251, 250, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 244, 245, 247, 244, 245, 247, 243, 244, 246, 242, 243, 245, 241, 242, 244, 239, 240, 242, 238, 239, 241, 238, 239, 241, 238, 239, 241, 235, 236, 238, 232, 233, 235, 228, 229, 231, 226, 227, 229, 221, 222, 224, 215, 216, 218, 211, 212, 214, 210, 211, 213, 208, 209, 211, 206, 207, 209, 205, 206, 208, 205, 205, 205, 203, 203, 203, 198, 198, 198, 195, 195, 195, 192, 190, 191, 188, 186, 187, 184, 180, 179, 181, 177, 176, 180, 174, 174, 177, 171, 171, 174, 168, 168, 171, 165, 165, 170, 164, 164, 169, 163, 163, 167, 162, 159, 165, 160, 157, 162, 157, 154, 159, 154, 151, 159, 151, 149, 158, 150, 148, 154, 146, 143, 151, 143, 140, 149, 139, 137, 146, 136, 134, 143, 133, 131, 142, 132, 130, 142, 133, 128, 143, 134, 129, 142, 134, 132, 144, 136, 134, 147, 139, 137, 148, 140, 138, 149, 141, 139, 151, 143, 141, 156, 148, 146, 159, 151, 149, 158, 150, 148, 158, 150, 148, 159, 151, 149, 159, 151, 149, 159, 151, 149, 158, 150, 148, 157, 149, 147, 156, 148, 146, 156, 148, 146, 156, 148, 146, 158, 150, 148, 160, 152, 150, 163, 155, 153, 165, 157, 155, 167, 159, 157, 167, 159, 157, 169, 161, 159, 170, 162, 160, 172, 164, 162, 174, 166, 164, 177, 169, 167, 180, 172, 170, 182, 174, 172, 183, 175, 173, 183, 178, 175, 185, 180, 177, 187, 183, 182, 189, 185, 184, 190, 188, 189, 193, 193, 193, 199, 200, 202, 204, 205, 209, 210, 213, 218, 213, 216, 221, 217, 220, 225, 221, 224, 229, 226, 230, 233, 229, 233, 236, 233, 234, 238, 234, 235, 239, 235, 238, 243, 235, 238, 243, 236, 239, 244, 237, 240, 245, 238, 241, 246, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 242, 245, 250, 243, 246, 251, 244, 247, 252, 244, 247, 252, 245, 249, 252, 246, 247, 251, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 248, 251, 243, 248, 251, 243, 248, 251, 243, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 246, 248, 245, 246, 248, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 249, 245, 246, 248, 245, 246, 248, 243, 244, 246, 242, 243, 245, 241, 242, 244, 240, 241, 243, 239, 240, 242, 238, 239, 241, 237, 239, 238, 236, 238, 237, 235, 237, 236, 235, 237, 236, 235, 237, 234, 235, 237, 234, 235, 237, 234, 235, 237, 234, 235, 237, 234, 235, 237, 234, 236, 236, 234, 236, 236, 234, 235, 235, 233, 235, 235, 233, 235, 235, 233, 234, 234, 232, 234, 234, 232, 234, 234, 232, 236, 236, 234, 236, 236, 234, 236, 236, 234, 236, 236, 234, 236, 236, 234, 236, 236, 234, 236, 236, 234, 236, 236, 234, 236, 236, 234, 234, 234, 232, 233, 233, 231, 234, 234, 232, 238, 238, 236, 241, 241, 239, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 240, 240, 238, 239, 239, 237, 238, 238, 236, 237, 237, 235, 237, 237, 235, 236, 236, 234, 238, 238, 236, 238, 238, 236, 239, 239, 237, 239, 239, 237, 240, 240, 238, 241, 241, 239, 242, 242, 240, 242, 242, 240, 245, 245, 243, 244, 244, 242, 242, 242, 240, 240, 240, 238, 240, 240, 238, 239, 239, 237, 240, 240, 238, 240, 240, 238, 239, 241, 240, 241, 243, 242, 243, 245, 244, 242, 244, 243, 239, 241, 238, 237, 239, 236, 238, 238, 236, 239, 239, 237, 238, 238, 236, 238, 238, 236, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 241, 240, 236, 240, 239, 235, 239, 238, 234, 237, 236, 232, 236, 235, 230, 234, 233, 228, 235, 232, 227, 234, 231, 226, 235, 232, 227, 234, 231, 226, 234, 231, 224, 234, 231, 224, 234, 229, 223, 234, 229, 223, 234, 229, 223, 233, 228, 222, 231, 227, 218, 231, 227, 218, 232, 225, 217, 231, 224, 216, 231, 224, 216, 230, 223, 215, 229, 222, 214, 229, 222, 214, 230, 221, 212, 229, 220, 211, 229, 220, 211, 228, 219, 210, 227, 219, 208, 226, 218, 207, 226, 218, 207, 226, 216, 206, 229, 216, 207, 229, 216, 207, 228, 215, 206, 227, 214, 205, 226, 213, 204, 226, 213, 204, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 212, 203, 224, 211, 202, 224, 211, 202, 223, 210, 201, 223, 210, 201, 223, 210, 201, 223, 210, 201, 223, 210, 201, 223, 210, 201, 223, 210, 201, 223, 210, 201, 222, 209, 200, 222, 209, 200, 221, 208, 199, 221, 208, 199, 222, 209, 200, 221, 208, 199, 221, 208, 199, 220, 207, 198, 221, 208, 199, 222, 209, 200, 223, 210, 201, 224, 211, 202, 219, 206, 197, 220, 207, 198, 220, 207, 198, 220, 207, 198, 221, 208, 199, 221, 208, 199, 221, 208, 199, 222, 209, 200, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 222, 209, 200, 222, 209, 200, 223, 210, 201, 223, 210, 201, 221, 207, 196, 221, 207, 194, 221, 207, 194, 221, 207, 194, 221, 207, 194, 221, 207, 194, 221, 207, 194, 221, 207, 194, 223, 209, 196, 223, 209, 196, 223, 209, 196, 222, 208, 195, 222, 208, 195, 222, 208, 195, 221, 207, 194, 221, 207, 194, 220, 206, 193, 220, 206, 193, 219, 205, 192, 218, 204, 191, 219, 201, 187, 218, 200, 186, 218, 199, 184, 218, 199, 184, 218, 199, 184, 218, 199, 184, 219, 200, 186, 219, 200, 186, 219, 201, 189, 219, 201, 189, 219, 201, 189, 218, 202, 189, 219, 202, 192, 217, 203, 192, 218, 204, 193, 218, 204, 193, 219, 205, 194, 219, 205, 194, 219, 205, 194, 219, 205, 194, 220, 206, 195, 220, 206, 195, 220, 206, 195, 220, 206, 195, 220, 206, 195, 220, 206, 195, 220, 206, 195, 220, 206, 195, 220, 206, 195, 220, 206, 195, 220, 206, 195, 220, 206, 195, 220, 206, 195, 220, 206, 195, 220, 206, 195, 220, 206, 195, 220, 206, 195, 220, 206, 195, 220, 206, 195, 220, 206, 195, 220, 206, 195, 220, 206, 195, 220, 206, 195, 220, 206, 195, 221, 207, 196, 221, 207, 196, 221, 207, 196, 221, 207, 196, 221, 207, 196, 221, 207, 196, 221, 207, 196, 221, 207, 196, 220, 206, 195, 221, 207, 196, 221, 207, 196, 221, 207, 196, 222, 208, 197, 222, 208, 197, 222, 208, 197, 223, 209, 198, 221, 208, 199, 222, 209, 200, 222, 209, 200, 222, 209, 200, 223, 210, 201, 223, 210, 201, 223, 210, 201, 223, 210, 201, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 212, 203, 226, 214, 202, 226, 214, 202, 227, 215, 203, 227, 215, 203, 226, 216, 206, 226, 216, 206, 226, 216, 206, 226, 216, 206, 226, 218, 207, 227, 219, 208, 227, 218, 209, 227, 218, 209, 228, 219, 210, 228, 219, 210, 228, 219, 210, 229, 220, 211, 229, 220, 211, 229, 220, 211, 229, 220, 211, 230, 221, 212, 229, 222, 212, 230, 223, 213, 230, 223, 215, 230, 223, 215, 231, 224, 216, 231, 224, 216, 230, 225, 219, 230, 225, 219, 230, 225, 219, 231, 226, 220, 231, 226, 220, 231, 226, 220, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 234, 229, 223, 234, 229, 223, 234, 229, 223, 235, 230, 224, 234, 231, 224, 234, 230, 227, 234, 233, 229, 236, 235, 231, 237, 236, 232, 237, 236, 232, 236, 235, 231, 233, 232, 228, 232, 231, 227, 235, 234, 230, 235, 234, 230, 235, 234, 230, 236, 235, 231, 236, 235, 231, 236, 235, 231, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 241, 242, 236, 241, 242, 236, 242, 243, 237, 242, 243, 237, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 244, 245, 240, 244, 245, 240, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 252, 251, 250, 252, 251, 249, 251, 250, 249, 251, 250, 249, 251, 250, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 246, 248, 244, 245, 247, 243, 244, 246, 242, 243, 245, 241, 242, 244, 240, 241, 243, 239, 240, 242, 238, 239, 241, 238, 239, 241, 235, 236, 238, 232, 233, 235, 229, 230, 232, 226, 227, 229, 222, 223, 225, 216, 217, 219, 212, 213, 215, 212, 214, 213, 209, 211, 210, 205, 207, 206, 203, 205, 204, 203, 203, 203, 201, 201, 201, 198, 196, 197, 195, 193, 194, 192, 188, 187, 188, 184, 183, 183, 179, 178, 179, 175, 174, 179, 173, 173, 176, 170, 170, 173, 168, 165, 171, 166, 163, 168, 162, 162, 167, 161, 161, 166, 161, 158, 164, 159, 156, 164, 156, 154, 162, 154, 152, 161, 153, 151, 160, 152, 150, 155, 145, 143, 153, 143, 141, 150, 140, 138, 148, 138, 136, 146, 136, 134, 144, 134, 132, 144, 135, 130, 144, 135, 130, 142, 134, 132, 144, 136, 134, 147, 139, 137, 148, 140, 138, 148, 140, 138, 150, 142, 140, 155, 147, 145, 158, 150, 148, 157, 149, 147, 158, 150, 148, 159, 151, 149, 160, 152, 150, 160, 152, 150, 159, 151, 149, 158, 150, 148, 157, 149, 147, 156, 148, 146, 157, 149, 147, 158, 150, 148, 160, 152, 150, 163, 155, 153, 165, 157, 155, 166, 158, 156, 167, 159, 157, 169, 161, 159, 170, 162, 160, 172, 164, 162, 174, 166, 164, 176, 168, 166, 179, 171, 169, 181, 173, 171, 182, 174, 172, 181, 176, 172, 183, 178, 174, 184, 180, 177, 186, 182, 181, 186, 184, 185, 190, 190, 190, 195, 196, 198, 200, 201, 203, 205, 209, 212, 207, 211, 214, 212, 216, 219, 217, 221, 224, 223, 224, 228, 227, 228, 232, 230, 231, 235, 231, 232, 236, 234, 237, 242, 234, 237, 242, 235, 238, 243, 236, 239, 244, 237, 240, 245, 238, 241, 246, 239, 242, 247, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 242, 245, 250, 243, 246, 251, 244, 247, 252, 244, 247, 252, 245, 249, 252, 246, 247, 251, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 248, 251, 243, 248, 251, 243, 248, 251, 243, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 246, 248, 245, 246, 248, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 249, 245, 246, 248, 245, 246, 248, 243, 244, 246, 243, 244, 246, 242, 243, 245, 241, 242, 244, 239, 240, 242, 238, 239, 241, 237, 239, 238, 237, 239, 238, 236, 238, 237, 236, 238, 237, 236, 238, 235, 236, 238, 235, 236, 238, 235, 236, 238, 235, 236, 238, 235, 236, 238, 235, 236, 236, 234, 236, 236, 234, 236, 236, 234, 235, 235, 233, 235, 235, 233, 235, 235, 233, 234, 234, 232, 234, 234, 232, 236, 236, 234, 236, 236, 234, 236, 236, 234, 236, 236, 234, 236, 236, 234, 236, 236, 234, 236, 236, 234, 236, 236, 234, 237, 237, 235, 233, 233, 231, 232, 232, 230, 235, 235, 233, 241, 241, 239, 244, 244, 242, 243, 243, 241, 241, 241, 239, 240, 240, 238, 240, 240, 238, 239, 239, 237, 239, 239, 237, 238, 238, 236, 238, 238, 236, 237, 237, 235, 237, 237, 235, 239, 239, 237, 239, 239, 237, 240, 240, 238, 241, 241, 239, 242, 242, 240, 242, 242, 240, 243, 243, 241, 243, 243, 241, 244, 244, 242, 243, 243, 241, 241, 241, 239, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 241, 241, 239, 241, 243, 242, 241, 243, 242, 242, 244, 243, 241, 243, 242, 239, 241, 238, 238, 240, 237, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 239, 238, 234, 237, 236, 232, 236, 235, 230, 234, 233, 228, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 234, 231, 224, 234, 231, 224, 235, 230, 224, 234, 229, 223, 234, 229, 223, 234, 229, 223, 232, 228, 219, 231, 227, 218, 233, 226, 218, 232, 225, 217, 231, 224, 216, 231, 224, 216, 230, 223, 215, 230, 223, 215, 230, 221, 212, 230, 221, 212, 229, 220, 211, 228, 219, 210, 227, 219, 208, 227, 219, 208, 226, 218, 207, 226, 218, 207, 229, 216, 207, 229, 216, 207, 228, 215, 206, 228, 215, 206, 227, 214, 205, 226, 213, 204, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 212, 203, 224, 211, 202, 224, 211, 202, 223, 210, 201, 223, 210, 201, 223, 210, 201, 223, 210, 201, 223, 210, 201, 223, 210, 201, 223, 210, 201, 222, 209, 200, 222, 209, 200, 221, 208, 199, 221, 208, 199, 222, 209, 200, 221, 208, 199, 221, 208, 199, 220, 207, 198, 220, 207, 198, 221, 208, 199, 222, 209, 200, 223, 210, 201, 219, 206, 197, 219, 206, 197, 220, 207, 198, 220, 207, 198, 220, 207, 198, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 222, 209, 200, 222, 209, 200, 222, 209, 200, 221, 207, 196, 221, 207, 194, 221, 207, 194, 221, 207, 194, 221, 207, 194, 221, 207, 194, 221, 207, 194, 221, 207, 194, 223, 209, 196, 223, 209, 196, 222, 208, 195, 222, 208, 195, 222, 208, 195, 221, 207, 194, 221, 207, 194, 221, 207, 194, 219, 205, 192, 219, 205, 192, 218, 204, 191, 217, 203, 190, 218, 202, 187, 218, 200, 186, 218, 199, 184, 217, 198, 183, 217, 198, 183, 217, 198, 183, 218, 199, 185, 218, 199, 185, 218, 200, 188, 218, 200, 188, 218, 200, 188, 217, 201, 188, 219, 202, 192, 217, 203, 192, 218, 204, 193, 218, 204, 193, 219, 205, 194, 219, 205, 194, 219, 205, 194, 219, 205, 194, 220, 206, 195, 220, 206, 195, 220, 206, 195, 220, 206, 195, 220, 206, 195, 220, 206, 195, 220, 206, 195, 220, 206, 195, 220, 206, 195, 220, 206, 195, 220, 206, 195, 220, 206, 195, 220, 206, 195, 220, 206, 195, 220, 206, 195, 220, 206, 195, 220, 206, 195, 220, 206, 195, 220, 206, 195, 220, 206, 195, 220, 206, 195, 220, 206, 195, 220, 206, 195, 220, 206, 195, 221, 207, 196, 221, 207, 196, 221, 207, 196, 221, 207, 196, 221, 207, 196, 221, 207, 196, 221, 207, 196, 221, 207, 196, 221, 207, 196, 221, 207, 196, 221, 207, 196, 222, 208, 197, 222, 208, 197, 222, 208, 197, 223, 209, 198, 223, 209, 198, 222, 209, 200, 222, 209, 200, 222, 209, 200, 223, 210, 201, 223, 210, 201, 223, 210, 201, 224, 211, 202, 224, 211, 202, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 212, 203, 226, 214, 202, 226, 214, 202, 227, 215, 203, 227, 215, 203, 226, 216, 206, 226, 216, 206, 226, 216, 206, 226, 216, 206, 226, 218, 207, 227, 219, 208, 227, 218, 209, 227, 218, 209, 228, 219, 210, 228, 219, 210, 228, 219, 210, 229, 220, 211, 229, 220, 211, 229, 220, 211, 229, 220, 211, 230, 221, 212, 229, 222, 212, 230, 223, 213, 230, 223, 215, 230, 223, 215, 231, 224, 216, 231, 224, 216, 230, 225, 219, 230, 225, 219, 230, 225, 219, 231, 226, 220, 231, 226, 220, 231, 226, 220, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 234, 229, 223, 234, 229, 223, 234, 229, 223, 235, 230, 224, 234, 231, 224, 234, 230, 227, 233, 232, 228, 235, 234, 230, 236, 235, 231, 236, 235, 231, 236, 235, 231, 234, 233, 229, 234, 233, 229, 235, 234, 230, 235, 234, 230, 235, 234, 230, 236, 235, 231, 236, 235, 231, 236, 235, 231, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 241, 242, 236, 241, 242, 236, 242, 243, 237, 242, 243, 237, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 244, 245, 240, 244, 245, 240, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 252, 251, 250, 252, 251, 249, 251, 250, 249, 251, 250, 249, 251, 250, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 246, 248, 244, 245, 247, 244, 245, 247, 242, 243, 245, 241, 242, 244, 240, 241, 243, 239, 240, 242, 239, 240, 242, 238, 239, 241, 236, 237, 239, 232, 233, 235, 230, 231, 233, 227, 228, 230, 223, 224, 226, 218, 219, 221, 214, 215, 217, 211, 213, 212, 208, 210, 209, 203, 205, 204, 200, 202, 201, 199, 199, 199, 197, 197, 197, 194, 192, 193, 191, 189, 190, 189, 185, 184, 186, 182, 181, 181, 177, 176, 178, 174, 173, 177, 171, 171, 175, 169, 169, 172, 167, 164, 170, 165, 162, 166, 160, 160, 165, 159, 159, 164, 159, 156, 163, 158, 155, 163, 155, 153, 162, 154, 152, 161, 153, 151, 160, 152, 150, 155, 145, 143, 154, 144, 142, 152, 142, 140, 150, 140, 138, 148, 138, 136, 147, 137, 135, 146, 137, 132, 145, 136, 131, 142, 134, 132, 144, 136, 134, 146, 138, 136, 147, 139, 137, 147, 139, 137, 149, 141, 139, 153, 145, 143, 156, 148, 146, 157, 149, 147, 158, 150, 148, 159, 151, 149, 160, 152, 150, 160, 152, 150, 160, 152, 150, 159, 151, 149, 159, 151, 149, 157, 149, 147, 158, 150, 148, 159, 151, 149, 161, 153, 151, 162, 154, 152, 164, 156, 154, 165, 157, 155, 166, 158, 156, 169, 161, 159, 170, 162, 160, 171, 163, 161, 173, 165, 163, 176, 168, 166, 178, 170, 168, 179, 171, 169, 180, 172, 170, 178, 173, 169, 180, 175, 171, 182, 178, 175, 183, 179, 176, 183, 181, 182, 187, 185, 186, 192, 192, 194, 196, 197, 199, 202, 203, 207, 203, 207, 210, 208, 212, 215, 213, 217, 220, 221, 222, 226, 225, 226, 230, 228, 229, 233, 229, 230, 234, 232, 235, 240, 233, 236, 241, 234, 237, 242, 235, 238, 243, 237, 240, 245, 238, 241, 246, 239, 242, 247, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 242, 245, 250, 243, 246, 251, 244, 247, 252, 244, 247, 252, 245, 249, 252, 246, 247, 251, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 248, 251, 243, 248, 251, 243, 248, 251, 243, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 246, 248, 245, 246, 248, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 249, 245, 246, 248, 245, 246, 248, 243, 244, 246, 243, 244, 246, 242, 243, 245, 241, 242, 244, 240, 241, 243, 239, 240, 242, 238, 240, 239, 237, 239, 238, 236, 238, 237, 236, 238, 237, 236, 238, 235, 236, 238, 235, 236, 238, 235, 236, 238, 235, 236, 238, 235, 236, 238, 235, 237, 237, 235, 237, 237, 235, 236, 236, 234, 236, 236, 234, 236, 236, 234, 235, 235, 233, 235, 235, 233, 235, 235, 233, 236, 236, 234, 236, 236, 234, 236, 236, 234, 236, 236, 234, 236, 236, 234, 236, 236, 234, 236, 236, 234, 236, 236, 234, 237, 237, 235, 235, 235, 233, 233, 233, 231, 237, 237, 235, 242, 242, 240, 245, 245, 243, 243, 243, 241, 240, 240, 238, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 238, 238, 236, 238, 238, 236, 238, 238, 236, 240, 240, 238, 240, 240, 238, 241, 241, 239, 242, 242, 240, 242, 242, 240, 243, 243, 241, 244, 244, 242, 244, 244, 242, 243, 243, 241, 242, 242, 240, 241, 241, 239, 240, 240, 238, 240, 240, 238, 240, 240, 238, 241, 241, 239, 242, 242, 240, 243, 245, 244, 241, 243, 242, 240, 242, 241, 239, 241, 240, 239, 241, 240, 239, 241, 240, 239, 239, 237, 238, 238, 236, 239, 239, 237, 239, 239, 237, 239, 240, 235, 239, 240, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 239, 238, 234, 239, 238, 234, 238, 237, 233, 237, 236, 232, 236, 235, 231, 235, 234, 230, 234, 233, 228, 234, 233, 228, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 230, 224, 235, 230, 224, 234, 229, 223, 234, 229, 223, 233, 228, 222, 232, 227, 221, 232, 227, 221, 231, 226, 220, 232, 225, 217, 231, 224, 216, 231, 224, 216, 230, 223, 215, 229, 222, 212, 229, 222, 212, 230, 221, 212, 229, 220, 211, 228, 219, 210, 227, 218, 209, 227, 218, 209, 226, 217, 208, 230, 217, 208, 229, 216, 207, 229, 216, 207, 228, 215, 206, 227, 214, 205, 226, 213, 204, 226, 213, 204, 226, 213, 204, 226, 213, 204, 225, 212, 203, 225, 212, 203, 225, 212, 203, 224, 211, 202, 224, 211, 202, 224, 211, 202, 223, 210, 201, 224, 210, 199, 224, 210, 199, 224, 210, 199, 224, 210, 199, 223, 209, 198, 223, 209, 198, 222, 208, 197, 222, 208, 197, 223, 209, 198, 223, 209, 198, 222, 208, 197, 221, 207, 196, 221, 207, 196, 221, 207, 196, 222, 208, 197, 223, 209, 198, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 220, 207, 198, 220, 207, 198, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 220, 207, 198, 221, 207, 196, 221, 207, 196, 221, 207, 196, 221, 207, 196, 221, 207, 196, 221, 207, 196, 221, 207, 196, 221, 207, 196, 222, 208, 197, 222, 208, 197, 222, 208, 197, 221, 207, 196, 221, 207, 196, 221, 207, 196, 220, 206, 195, 220, 206, 195, 218, 206, 194, 217, 205, 193, 217, 203, 190, 216, 202, 189, 217, 201, 186, 216, 200, 185, 216, 199, 183, 215, 198, 182, 217, 198, 183, 217, 198, 183, 216, 198, 184, 217, 199, 185, 217, 199, 187, 217, 199, 187, 217, 200, 190, 217, 200, 190, 219, 202, 192, 219, 202, 192, 220, 203, 193, 220, 203, 193, 221, 204, 194, 221, 204, 194, 219, 205, 194, 219, 205, 194, 220, 206, 195, 220, 206, 195, 220, 206, 195, 220, 206, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 220, 208, 196, 220, 208, 196, 220, 208, 196, 220, 208, 196, 220, 208, 196, 220, 208, 196, 220, 208, 196, 220, 208, 196, 220, 208, 196, 220, 208, 196, 221, 209, 197, 221, 209, 197, 222, 210, 198, 222, 210, 198, 222, 210, 198, 222, 210, 198, 222, 209, 200, 222, 209, 200, 223, 210, 201, 223, 210, 201, 223, 210, 201, 224, 211, 202, 224, 211, 202, 224, 211, 202, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 212, 203, 226, 214, 202, 226, 214, 202, 227, 215, 203, 227, 215, 203, 226, 216, 206, 226, 216, 206, 226, 216, 206, 226, 216, 206, 226, 218, 207, 227, 219, 208, 227, 218, 209, 227, 218, 209, 228, 219, 210, 228, 219, 210, 228, 219, 210, 229, 220, 211, 229, 220, 211, 229, 220, 211, 229, 220, 211, 230, 221, 212, 229, 222, 212, 230, 223, 213, 230, 223, 215, 230, 223, 215, 231, 224, 216, 231, 224, 216, 230, 225, 219, 230, 225, 219, 230, 225, 219, 231, 226, 220, 231, 226, 220, 231, 226, 220, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 234, 229, 223, 234, 229, 223, 234, 229, 223, 235, 230, 224, 234, 231, 224, 234, 230, 227, 233, 232, 228, 234, 233, 229, 235, 234, 230, 236, 235, 231, 236, 235, 231, 236, 235, 231, 235, 234, 230, 235, 234, 230, 235, 234, 230, 235, 234, 230, 236, 235, 231, 236, 235, 231, 236, 235, 231, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 241, 242, 236, 241, 242, 236, 242, 243, 237, 242, 243, 237, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 244, 245, 240, 244, 245, 240, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 252, 251, 250, 252, 251, 249, 251, 250, 249, 251, 250, 249, 251, 250, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 246, 248, 245, 246, 248, 244, 245, 247, 243, 244, 246, 242, 243, 245, 240, 241, 243, 240, 241, 243, 239, 240, 242, 238, 239, 241, 236, 237, 239, 232, 233, 235, 230, 231, 233, 228, 229, 231, 225, 226, 228, 219, 220, 222, 215, 216, 218, 210, 212, 211, 206, 208, 207, 201, 201, 201, 197, 197, 197, 194, 194, 194, 192, 192, 192, 189, 188, 186, 187, 186, 184, 187, 183, 182, 183, 179, 178, 180, 174, 174, 177, 171, 171, 176, 171, 168, 174, 169, 166, 174, 166, 164, 171, 163, 161, 166, 157, 158, 166, 157, 158, 165, 157, 155, 163, 155, 153, 162, 154, 152, 160, 152, 150, 159, 151, 149, 159, 151, 149, 154, 144, 142, 153, 143, 141, 153, 143, 141, 152, 142, 140, 151, 140, 138, 149, 138, 136, 148, 137, 133, 146, 137, 132, 142, 134, 132, 144, 136, 134, 146, 138, 136, 146, 138, 136, 146, 138, 136, 148, 140, 138, 152, 144, 142, 155, 147, 145, 157, 149, 147, 158, 150, 148, 160, 152, 150, 161, 153, 151, 161, 153, 151, 161, 153, 151, 161, 153, 151, 160, 152, 150, 158, 150, 148, 158, 150, 148, 159, 151, 149, 161, 153, 151, 162, 154, 152, 164, 156, 154, 165, 157, 155, 165, 157, 155, 169, 161, 159, 170, 162, 160, 171, 163, 161, 173, 165, 163, 175, 167, 165, 176, 168, 166, 178, 170, 168, 178, 170, 168, 176, 171, 167, 178, 173, 169, 179, 175, 172, 180, 176, 173, 180, 178, 179, 184, 182, 183, 189, 189, 191, 192, 193, 195, 198, 199, 203, 201, 202, 206, 206, 207, 211, 213, 214, 218, 219, 220, 224, 224, 225, 229, 227, 228, 230, 229, 230, 234, 231, 234, 239, 231, 234, 239, 233, 236, 241, 234, 237, 242, 236, 239, 244, 238, 241, 246, 239, 242, 247, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 242, 245, 250, 243, 246, 251, 244, 247, 252, 244, 247, 252, 245, 249, 252, 246, 247, 251, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 248, 251, 243, 248, 251, 243, 248, 251, 243, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 246, 248, 245, 246, 248, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 249, 245, 246, 248, 245, 246, 248, 244, 245, 247, 243, 244, 246, 242, 243, 245, 241, 242, 244, 240, 241, 243, 239, 240, 242, 238, 240, 239, 238, 240, 239, 236, 238, 237, 236, 238, 237, 236, 238, 235, 236, 238, 235, 236, 238, 235, 236, 238, 235, 236, 238, 235, 236, 238, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 236, 236, 234, 236, 236, 234, 236, 236, 234, 235, 235, 233, 235, 235, 233, 236, 236, 234, 236, 236, 234, 236, 236, 234, 236, 236, 234, 236, 236, 234, 236, 236, 234, 236, 236, 234, 236, 236, 234, 238, 238, 236, 237, 237, 235, 238, 238, 236, 240, 240, 238, 242, 242, 240, 243, 243, 241, 241, 241, 239, 239, 239, 237, 238, 238, 236, 238, 238, 236, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 240, 240, 238, 240, 240, 238, 241, 241, 239, 242, 242, 240, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 242, 242, 240, 241, 241, 239, 241, 241, 239, 240, 240, 238, 240, 240, 238, 241, 241, 239, 242, 242, 240, 242, 242, 240, 245, 247, 246, 241, 243, 242, 238, 240, 239, 237, 239, 238, 239, 241, 240, 240, 242, 241, 240, 240, 238, 238, 238, 236, 239, 239, 237, 239, 239, 237, 239, 240, 235, 239, 240, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 238, 237, 233, 238, 237, 233, 238, 237, 233, 237, 236, 232, 236, 235, 231, 235, 234, 230, 235, 234, 229, 235, 234, 229, 236, 233, 228, 236, 233, 228, 235, 232, 227, 235, 232, 227, 236, 231, 225, 235, 230, 224, 235, 230, 224, 235, 230, 224, 233, 228, 222, 233, 228, 222, 232, 227, 221, 232, 227, 221, 233, 226, 218, 232, 225, 217, 232, 225, 217, 231, 224, 216, 230, 223, 213, 229, 222, 212, 230, 221, 212, 229, 220, 211, 228, 219, 210, 228, 219, 210, 227, 218, 209, 227, 218, 209, 230, 217, 208, 230, 217, 208, 229, 216, 207, 228, 215, 206, 228, 215, 206, 227, 214, 205, 226, 213, 204, 226, 213, 204, 226, 213, 204, 226, 213, 204, 225, 212, 203, 225, 212, 203, 225, 212, 203, 224, 211, 202, 224, 211, 202, 224, 211, 202, 224, 210, 199, 224, 210, 199, 224, 210, 199, 224, 210, 199, 223, 209, 198, 223, 209, 198, 222, 208, 197, 222, 208, 197, 224, 210, 199, 223, 209, 198, 222, 208, 197, 221, 207, 196, 220, 206, 195, 220, 206, 195, 221, 207, 196, 221, 207, 196, 218, 205, 196, 218, 205, 196, 219, 206, 197, 219, 206, 197, 219, 206, 197, 220, 207, 198, 220, 207, 198, 220, 207, 198, 222, 209, 200, 222, 209, 200, 221, 208, 199, 221, 208, 199, 220, 207, 198, 220, 207, 198, 220, 207, 198, 219, 206, 197, 220, 206, 195, 220, 206, 195, 220, 206, 195, 220, 206, 195, 220, 206, 195, 220, 206, 195, 220, 206, 195, 220, 206, 195, 222, 208, 197, 222, 208, 197, 221, 207, 196, 221, 207, 196, 221, 207, 196, 220, 206, 195, 220, 206, 195, 220, 206, 195, 217, 205, 193, 216, 204, 192, 216, 202, 189, 215, 201, 188, 216, 200, 185, 215, 199, 184, 215, 198, 182, 215, 198, 182, 217, 198, 183, 217, 198, 183, 217, 199, 185, 217, 199, 185, 217, 199, 187, 218, 200, 188, 217, 200, 190, 217, 200, 190, 219, 202, 192, 219, 202, 192, 220, 203, 193, 220, 203, 193, 221, 204, 194, 221, 204, 194, 219, 205, 194, 219, 205, 194, 220, 206, 195, 220, 206, 195, 220, 206, 195, 220, 206, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 220, 208, 196, 220, 208, 196, 220, 208, 196, 220, 208, 196, 220, 208, 196, 220, 208, 196, 220, 208, 196, 220, 208, 196, 220, 208, 196, 220, 208, 196, 220, 208, 196, 220, 208, 196, 220, 208, 196, 220, 208, 196, 220, 208, 196, 220, 208, 196, 221, 209, 197, 221, 209, 197, 221, 209, 197, 222, 210, 198, 222, 210, 198, 222, 210, 198, 223, 211, 199, 223, 211, 199, 223, 210, 201, 223, 210, 201, 223, 210, 201, 223, 210, 201, 224, 211, 202, 224, 211, 202, 224, 211, 202, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 212, 203, 226, 214, 202, 226, 214, 202, 227, 215, 203, 227, 215, 203, 226, 216, 206, 226, 216, 206, 226, 216, 206, 226, 216, 206, 226, 218, 207, 227, 219, 208, 227, 218, 209, 227, 218, 209, 228, 219, 210, 228, 219, 210, 228, 219, 210, 229, 220, 211, 229, 220, 211, 229, 220, 211, 229, 220, 211, 230, 221, 212, 229, 222, 212, 230, 223, 213, 230, 223, 215, 230, 223, 215, 231, 224, 216, 231, 224, 216, 230, 225, 219, 230, 225, 219, 230, 225, 219, 231, 226, 220, 231, 226, 220, 231, 226, 220, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 234, 229, 223, 234, 229, 223, 234, 229, 223, 235, 230, 224, 234, 231, 224, 235, 231, 228, 233, 232, 228, 233, 232, 228, 234, 233, 229, 235, 234, 230, 236, 235, 231, 237, 236, 232, 237, 236, 232, 235, 234, 230, 235, 234, 230, 235, 234, 230, 236, 235, 231, 236, 235, 231, 236, 235, 231, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 241, 242, 236, 241, 242, 236, 242, 243, 237, 242, 243, 237, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 244, 245, 240, 244, 245, 240, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 252, 251, 250, 252, 251, 249, 251, 250, 249, 251, 250, 249, 251, 250, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 247, 249, 245, 246, 248, 244, 245, 247, 243, 244, 246, 242, 243, 245, 241, 242, 244, 240, 241, 243, 239, 240, 242, 238, 239, 241, 236, 237, 239, 233, 234, 236, 231, 232, 234, 229, 230, 232, 226, 227, 229, 221, 222, 224, 217, 218, 220, 211, 213, 212, 206, 208, 207, 200, 200, 200, 194, 194, 194, 191, 191, 191, 189, 189, 189, 187, 186, 184, 185, 184, 182, 185, 181, 180, 181, 177, 176, 178, 172, 172, 175, 169, 169, 174, 169, 166, 173, 168, 165, 173, 165, 163, 170, 162, 160, 165, 156, 157, 165, 156, 157, 163, 155, 153, 161, 153, 151, 159, 151, 149, 157, 149, 147, 156, 148, 146, 155, 147, 145, 152, 142, 140, 152, 142, 140, 153, 143, 141, 152, 142, 140, 152, 141, 139, 150, 139, 137, 148, 137, 133, 146, 137, 132, 143, 133, 132, 144, 136, 134, 146, 138, 136, 146, 138, 136, 145, 137, 135, 147, 139, 137, 150, 142, 140, 153, 145, 143, 157, 149, 147, 158, 150, 148, 160, 152, 150, 162, 154, 152, 162, 154, 152, 163, 155, 153, 162, 154, 152, 162, 154, 152, 159, 151, 149, 159, 151, 149, 160, 152, 150, 161, 153, 151, 162, 154, 152, 163, 155, 153, 164, 156, 154, 164, 156, 154, 169, 161, 159, 169, 161, 159, 171, 163, 161, 172, 164, 162, 174, 166, 164, 175, 167, 165, 176, 168, 166, 177, 169, 167, 175, 170, 166, 177, 172, 168, 179, 174, 171, 178, 174, 171, 178, 176, 177, 181, 179, 180, 186, 186, 188, 190, 190, 192, 193, 194, 198, 197, 198, 202, 202, 203, 207, 209, 210, 214, 216, 217, 221, 222, 223, 227, 226, 227, 229, 227, 228, 230, 229, 232, 237, 230, 233, 238, 231, 234, 239, 233, 236, 241, 236, 239, 244, 237, 240, 245, 239, 242, 247, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 242, 245, 250, 243, 246, 251, 244, 247, 252, 244, 247, 252, 245, 249, 252, 246, 247, 251, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 248, 251, 243, 248, 251, 243, 248, 251, 243, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 246, 248, 245, 246, 248, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 249, 245, 246, 248, 245, 246, 248, 244, 245, 247, 244, 245, 247, 243, 244, 246, 242, 243, 245, 240, 241, 243, 239, 240, 242, 238, 240, 239, 238, 240, 239, 237, 239, 238, 237, 239, 238, 237, 239, 236, 237, 239, 236, 237, 239, 236, 237, 239, 236, 237, 239, 236, 237, 239, 236, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 236, 236, 234, 236, 236, 234, 235, 235, 233, 235, 235, 233, 236, 236, 234, 236, 236, 234, 236, 236, 234, 236, 236, 234, 236, 236, 234, 236, 236, 234, 236, 236, 234, 236, 236, 234, 238, 238, 236, 240, 240, 238, 243, 243, 241, 244, 244, 242, 241, 241, 239, 239, 239, 237, 239, 239, 237, 239, 239, 237, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 240, 240, 238, 240, 240, 238, 241, 241, 239, 241, 241, 239, 242, 242, 240, 243, 243, 241, 244, 244, 242, 244, 244, 242, 241, 241, 239, 241, 241, 239, 240, 240, 238, 240, 240, 238, 240, 240, 238, 241, 241, 239, 242, 242, 240, 243, 243, 241, 246, 248, 247, 242, 244, 243, 237, 239, 238, 236, 238, 237, 239, 241, 240, 240, 242, 241, 239, 241, 238, 237, 239, 236, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 241, 236, 240, 241, 236, 241, 240, 236, 241, 240, 236, 237, 238, 233, 237, 238, 233, 237, 236, 232, 237, 236, 232, 236, 235, 231, 236, 235, 231, 235, 234, 229, 235, 234, 229, 236, 233, 228, 236, 233, 228, 236, 233, 228, 235, 232, 227, 235, 232, 225, 234, 231, 224, 235, 230, 224, 235, 230, 224, 234, 229, 223, 234, 229, 223, 233, 228, 222, 232, 227, 221, 231, 227, 218, 231, 227, 218, 232, 225, 217, 232, 225, 217, 230, 223, 215, 230, 223, 215, 230, 221, 212, 229, 220, 211, 229, 220, 211, 228, 219, 210, 227, 218, 209, 227, 218, 209, 230, 217, 208, 230, 217, 208, 229, 216, 207, 229, 216, 207, 228, 215, 206, 227, 214, 205, 226, 213, 204, 226, 213, 204, 226, 213, 204, 226, 213, 204, 226, 213, 204, 225, 212, 203, 225, 212, 203, 225, 212, 203, 224, 211, 202, 224, 211, 202, 224, 210, 199, 224, 210, 199, 224, 210, 199, 224, 210, 199, 223, 209, 198, 223, 209, 198, 222, 208, 197, 222, 208, 197, 224, 210, 199, 223, 209, 198, 222, 208, 197, 220, 206, 195, 220, 206, 195, 220, 206, 195, 220, 206, 195, 221, 207, 196, 218, 205, 196, 216, 206, 196, 216, 206, 196, 217, 207, 197, 217, 207, 197, 218, 208, 198, 218, 208, 198, 218, 208, 198, 220, 210, 200, 220, 210, 200, 219, 209, 199, 219, 209, 199, 218, 208, 198, 217, 207, 197, 217, 207, 197, 216, 206, 196, 219, 207, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 221, 209, 197, 221, 209, 197, 220, 208, 196, 220, 208, 196, 219, 207, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 216, 204, 192, 216, 204, 192, 216, 202, 189, 215, 201, 188, 216, 200, 185, 214, 198, 183, 214, 196, 182, 214, 196, 182, 217, 199, 185, 217, 199, 185, 217, 199, 185, 218, 200, 186, 217, 201, 188, 217, 201, 188, 218, 201, 191, 218, 201, 191, 219, 202, 192, 219, 202, 192, 220, 203, 193, 220, 203, 193, 221, 204, 194, 221, 204, 194, 219, 205, 194, 219, 205, 194, 220, 206, 195, 220, 206, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 220, 208, 196, 220, 208, 196, 220, 208, 196, 220, 208, 196, 220, 208, 196, 220, 208, 196, 220, 208, 196, 220, 208, 196, 220, 208, 196, 220, 208, 196, 220, 208, 196, 220, 208, 196, 220, 208, 196, 220, 208, 196, 220, 208, 196, 220, 208, 196, 221, 209, 197, 221, 209, 197, 221, 209, 197, 222, 210, 198, 222, 210, 198, 223, 211, 199, 223, 211, 199, 223, 211, 199, 223, 210, 201, 223, 210, 201, 223, 210, 201, 224, 211, 202, 224, 211, 202, 224, 211, 202, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 212, 203, 226, 214, 202, 226, 214, 202, 227, 215, 203, 227, 215, 203, 226, 216, 206, 226, 216, 206, 226, 216, 206, 226, 216, 206, 226, 218, 207, 227, 219, 208, 227, 218, 209, 227, 218, 209, 228, 219, 210, 228, 219, 210, 228, 219, 210, 229, 220, 211, 229, 220, 211, 229, 220, 211, 229, 220, 211, 230, 221, 212, 229, 222, 212, 230, 223, 213, 230, 223, 215, 230, 223, 215, 231, 224, 216, 231, 224, 216, 230, 225, 219, 230, 225, 219, 230, 225, 219, 231, 226, 220, 231, 226, 220, 231, 226, 220, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 234, 229, 223, 234, 229, 223, 234, 229, 223, 235, 230, 224, 234, 231, 224, 235, 231, 228, 233, 232, 228, 233, 232, 228, 233, 232, 228, 234, 233, 229, 236, 235, 231, 237, 236, 232, 238, 237, 233, 235, 234, 230, 235, 234, 230, 235, 234, 230, 236, 235, 231, 236, 235, 231, 236, 235, 231, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 241, 242, 236, 241, 242, 236, 242, 243, 237, 242, 243, 237, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 244, 245, 240, 244, 245, 240, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 252, 251, 250, 252, 251, 249, 251, 250, 249, 251, 250, 249, 251, 250, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 247, 249, 246, 247, 249, 245, 246, 248, 243, 244, 246, 242, 243, 245, 241, 242, 244, 240, 241, 243, 240, 241, 243, 238, 239, 241, 236, 237, 239, 233, 234, 236, 231, 232, 234, 230, 231, 233, 227, 228, 230, 222, 223, 225, 218, 219, 221, 215, 215, 215, 209, 209, 209, 201, 201, 201, 195, 195, 195, 191, 191, 191, 189, 189, 189, 187, 186, 184, 185, 184, 182, 183, 179, 178, 179, 175, 174, 176, 171, 168, 174, 169, 166, 173, 168, 165, 172, 167, 164, 172, 164, 162, 170, 162, 160, 165, 156, 157, 164, 155, 156, 162, 154, 152, 160, 152, 150, 157, 149, 147, 154, 146, 144, 153, 143, 142, 152, 142, 141, 150, 140, 138, 151, 141, 139, 152, 142, 140, 153, 143, 141, 153, 142, 140, 151, 140, 138, 148, 137, 133, 146, 137, 132, 143, 133, 132, 144, 136, 134, 145, 137, 135, 145, 137, 135, 145, 137, 135, 146, 138, 136, 149, 141, 139, 152, 144, 142, 157, 149, 147, 158, 150, 148, 160, 152, 150, 162, 154, 152, 163, 155, 153, 163, 155, 153, 163, 155, 153, 163, 155, 153, 159, 151, 149, 160, 152, 150, 160, 152, 150, 161, 153, 151, 162, 154, 152, 163, 155, 153, 163, 155, 153, 164, 156, 154, 169, 161, 159, 169, 161, 159, 170, 162, 160, 172, 164, 162, 173, 165, 163, 174, 166, 164, 175, 167, 165, 176, 168, 166, 177, 169, 166, 176, 171, 167, 178, 173, 170, 178, 174, 171, 177, 175, 176, 180, 178, 179, 184, 184, 186, 189, 189, 191, 188, 189, 193, 191, 192, 196, 197, 198, 202, 205, 206, 210, 212, 213, 217, 218, 219, 223, 222, 223, 225, 224, 225, 227, 228, 231, 236, 229, 232, 237, 230, 233, 238, 233, 236, 241, 235, 238, 243, 237, 240, 245, 239, 242, 247, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 242, 245, 250, 243, 246, 251, 244, 247, 252, 244, 247, 252, 245, 249, 252, 246, 247, 251, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 246, 248, 245, 246, 248, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 249, 245, 246, 248, 245, 246, 248, 244, 245, 247, 244, 245, 247, 243, 244, 246, 242, 243, 245, 241, 242, 244, 239, 240, 242, 239, 241, 240, 238, 240, 239, 237, 239, 238, 237, 239, 238, 237, 239, 236, 237, 239, 236, 237, 239, 236, 237, 239, 236, 237, 239, 236, 237, 239, 236, 238, 238, 236, 237, 237, 235, 237, 237, 235, 237, 237, 235, 236, 236, 234, 236, 236, 234, 236, 236, 234, 235, 235, 233, 236, 236, 234, 236, 236, 234, 236, 236, 234, 236, 236, 234, 236, 236, 234, 236, 236, 234, 236, 236, 234, 236, 236, 234, 238, 238, 236, 243, 243, 241, 247, 247, 245, 246, 246, 244, 241, 241, 239, 237, 237, 235, 237, 237, 235, 239, 239, 237, 237, 237, 235, 238, 238, 236, 238, 238, 236, 238, 238, 236, 239, 239, 237, 239, 239, 237, 240, 240, 238, 240, 240, 238, 239, 239, 237, 240, 240, 238, 240, 240, 238, 241, 241, 239, 242, 242, 240, 243, 243, 241, 243, 243, 241, 244, 244, 242, 241, 241, 239, 241, 241, 239, 240, 240, 238, 240, 240, 238, 240, 240, 238, 241, 241, 239, 243, 243, 241, 243, 243, 241, 247, 249, 248, 242, 244, 243, 236, 238, 237, 236, 238, 237, 239, 241, 240, 241, 243, 242, 239, 241, 238, 237, 239, 236, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 241, 236, 240, 241, 236, 241, 240, 236, 241, 240, 236, 236, 237, 232, 236, 237, 232, 237, 236, 232, 237, 236, 232, 236, 235, 231, 236, 235, 231, 236, 235, 230, 236, 235, 230, 236, 233, 228, 236, 233, 228, 236, 233, 228, 235, 232, 227, 235, 232, 225, 235, 232, 225, 234, 231, 224, 235, 230, 224, 234, 229, 223, 234, 229, 223, 233, 228, 222, 233, 228, 222, 232, 228, 219, 231, 227, 218, 232, 225, 217, 232, 225, 217, 230, 223, 215, 230, 223, 215, 230, 221, 212, 230, 221, 212, 229, 220, 211, 228, 219, 210, 227, 218, 209, 227, 218, 209, 228, 218, 208, 228, 218, 208, 228, 218, 208, 227, 217, 207, 228, 215, 206, 225, 215, 205, 227, 214, 205, 226, 213, 204, 226, 213, 204, 226, 213, 204, 226, 213, 204, 225, 212, 203, 225, 212, 203, 225, 212, 203, 224, 211, 202, 224, 211, 202, 223, 210, 201, 223, 211, 199, 224, 210, 199, 223, 211, 199, 223, 209, 198, 223, 209, 198, 222, 208, 197, 222, 208, 197, 224, 210, 199, 223, 209, 198, 222, 208, 197, 220, 206, 195, 220, 206, 195, 219, 205, 194, 220, 206, 195, 220, 206, 195, 218, 206, 194, 218, 206, 194, 218, 206, 194, 217, 207, 197, 217, 207, 197, 217, 207, 197, 218, 208, 198, 218, 208, 198, 220, 210, 200, 220, 210, 200, 219, 209, 199, 219, 209, 199, 218, 208, 198, 217, 207, 197, 216, 206, 196, 216, 206, 196, 219, 207, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 221, 209, 197, 220, 208, 196, 220, 208, 196, 220, 208, 196, 219, 207, 195, 219, 207, 195, 219, 207, 195, 218, 206, 194, 217, 203, 192, 216, 202, 189, 216, 202, 189, 216, 200, 187, 215, 199, 184, 214, 198, 183, 214, 196, 182, 214, 196, 182, 217, 199, 185, 217, 199, 185, 218, 200, 186, 217, 201, 186, 218, 202, 189, 218, 202, 189, 218, 201, 191, 218, 201, 191, 219, 202, 192, 219, 202, 192, 220, 203, 193, 220, 203, 193, 221, 204, 194, 221, 204, 194, 219, 205, 194, 219, 205, 194, 220, 206, 195, 220, 206, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 219, 207, 195, 220, 208, 196, 220, 208, 196, 220, 208, 196, 220, 208, 196, 220, 208, 196, 220, 208, 196, 220, 208, 196, 220, 208, 196, 220, 208, 196, 220, 208, 196, 220, 208, 196, 220, 208, 196, 220, 208, 196, 220, 208, 196, 220, 208, 196, 220, 208, 196, 221, 209, 197, 221, 209, 197, 222, 210, 198, 222, 210, 198, 222, 210, 198, 223, 211, 199, 223, 211, 199, 223, 211, 199, 223, 210, 201, 223, 210, 201, 223, 210, 201, 224, 211, 202, 224, 211, 202, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 212, 203, 225, 212, 203, 226, 213, 204, 226, 214, 202, 227, 214, 205, 227, 214, 205, 226, 216, 206, 226, 216, 206, 226, 216, 206, 226, 216, 206, 226, 218, 207, 227, 219, 208, 227, 218, 209, 227, 218, 209, 228, 219, 210, 228, 219, 210, 228, 219, 210, 229, 220, 211, 229, 220, 211, 229, 220, 211, 229, 220, 211, 230, 221, 212, 229, 222, 212, 230, 223, 213, 230, 223, 215, 230, 223, 215, 231, 224, 216, 231, 224, 216, 230, 225, 219, 230, 225, 219, 230, 225, 219, 231, 226, 220, 231, 226, 220, 231, 226, 220, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 234, 229, 223, 234, 229, 223, 234, 229, 223, 235, 230, 224, 234, 231, 226, 235, 232, 227, 232, 231, 227, 232, 231, 227, 233, 232, 228, 234, 233, 229, 236, 235, 231, 238, 237, 233, 239, 238, 234, 235, 234, 230, 235, 234, 230, 235, 234, 230, 236, 235, 231, 236, 235, 231, 236, 235, 231, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 241, 242, 237, 241, 242, 236, 242, 243, 238, 242, 243, 238, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 244, 245, 240, 244, 245, 240, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 252, 251, 250, 252, 251, 249, 251, 250, 249, 251, 250, 249, 251, 250, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 247, 249, 246, 247, 249, 245, 246, 248, 244, 245, 247, 242, 243, 245, 241, 242, 244, 240, 241, 243, 240, 241, 243, 238, 239, 241, 236, 237, 239, 233, 234, 236, 232, 233, 235, 230, 231, 233, 227, 228, 230, 223, 224, 226, 219, 220, 222, 218, 218, 218, 212, 212, 210, 203, 203, 203, 197, 197, 195, 193, 193, 193, 190, 190, 188, 189, 188, 186, 187, 186, 184, 180, 179, 177, 178, 174, 173, 174, 170, 167, 172, 168, 165, 172, 168, 165, 172, 167, 164, 170, 165, 162, 168, 163, 160, 166, 157, 158, 164, 156, 154, 162, 154, 152, 159, 151, 149, 155, 147, 145, 152, 144, 142, 150, 140, 139, 149, 139, 137, 149, 139, 137, 150, 140, 138, 152, 142, 140, 153, 143, 141, 153, 142, 140, 151, 140, 138, 148, 137, 133, 146, 135, 131, 143, 133, 132, 144, 136, 134, 145, 137, 135, 145, 137, 135, 144, 136, 134, 145, 137, 135, 148, 140, 138, 151, 143, 141, 157, 149, 147, 159, 151, 149, 160, 152, 150, 162, 154, 152, 163, 155, 153, 164, 156, 154, 164, 156, 154, 164, 156, 154, 160, 152, 150, 160, 152, 150, 160, 152, 150, 161, 153, 151, 162, 154, 152, 163, 155, 153, 163, 155, 153, 163, 155, 153, 169, 161, 159, 169, 161, 159, 170, 162, 160, 171, 163, 161, 173, 165, 163, 174, 166, 164, 174, 166, 164, 175, 167, 165, 176, 168, 166, 176, 171, 168, 178, 173, 170, 178, 173, 170, 178, 174, 173, 179, 177, 178, 185, 183, 184, 188, 188, 188, 185, 185, 187, 188, 188, 190, 195, 195, 197, 201, 202, 206, 209, 210, 214, 215, 216, 220, 219, 220, 224, 222, 223, 227, 227, 230, 235, 228, 231, 236, 230, 233, 238, 232, 235, 240, 235, 238, 243, 237, 240, 245, 239, 242, 247, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 242, 245, 250, 243, 246, 251, 244, 247, 252, 244, 247, 252, 245, 248, 253, 246, 247, 251, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 249, 246, 247, 249, 243, 244, 248, 242, 243, 247, 242, 243, 247, 241, 242, 246, 240, 241, 243, 239, 240, 242, 239, 240, 242, 238, 239, 241, 238, 240, 239, 238, 240, 239, 238, 240, 239, 237, 239, 238, 237, 239, 238, 237, 239, 238, 236, 238, 237, 236, 238, 237, 236, 238, 235, 236, 238, 235, 236, 238, 235, 236, 238, 235, 236, 238, 235, 236, 238, 235, 236, 238, 235, 236, 238, 235, 234, 236, 233, 235, 237, 234, 235, 237, 234, 235, 237, 234, 236, 238, 235, 236, 238, 235, 236, 238, 235, 237, 239, 236, 240, 240, 238, 240, 240, 238, 240, 240, 238, 239, 239, 237, 239, 239, 237, 239, 239, 237, 238, 238, 236, 238, 238, 236, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 240, 240, 238, 239, 239, 237, 239, 239, 237, 243, 243, 241, 248, 248, 246, 248, 248, 246, 242, 242, 240, 236, 236, 234, 241, 241, 239, 240, 240, 238, 239, 239, 237, 239, 239, 237, 240, 240, 238, 243, 243, 241, 246, 246, 244, 247, 247, 245, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 239, 239, 237, 239, 239, 237, 240, 240, 238, 241, 241, 239, 241, 241, 239, 240, 240, 238, 239, 239, 237, 239, 240, 235, 238, 237, 233, 238, 237, 232, 238, 237, 232, 238, 237, 232, 237, 236, 231, 237, 236, 231, 236, 235, 230, 236, 235, 230, 235, 234, 229, 235, 234, 229, 235, 234, 229, 234, 233, 228, 234, 233, 228, 234, 233, 228, 233, 232, 227, 235, 232, 227, 234, 231, 224, 233, 230, 223, 234, 229, 223, 234, 229, 223, 233, 228, 222, 233, 228, 222, 233, 229, 220, 232, 228, 219, 231, 224, 216, 231, 224, 216, 231, 224, 216, 230, 223, 215, 229, 222, 212, 228, 221, 211, 229, 220, 211, 228, 219, 210, 228, 220, 209, 228, 220, 209, 227, 219, 208, 226, 218, 207, 227, 217, 207, 225, 217, 206, 225, 215, 205, 225, 215, 205, 225, 215, 205, 225, 215, 205, 225, 215, 205, 225, 215, 205, 224, 214, 204, 224, 214, 204, 223, 213, 203, 223, 213, 203, 222, 212, 202, 221, 211, 201, 223, 210, 201, 221, 211, 201, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 220, 208, 196, 220, 208, 196, 221, 209, 197, 221, 209, 197, 222, 208, 197, 221, 207, 196, 220, 206, 193, 219, 205, 192, 221, 207, 194, 218, 204, 191, 216, 202, 189, 216, 204, 192, 218, 206, 194, 220, 208, 196, 218, 208, 198, 217, 207, 197, 219, 209, 200, 219, 209, 200, 219, 209, 200, 219, 209, 200, 219, 209, 199, 219, 209, 199, 221, 209, 197, 221, 209, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 220, 206, 195, 222, 206, 193, 220, 204, 189, 217, 201, 186, 216, 198, 184, 215, 197, 183, 215, 197, 183, 216, 198, 184, 217, 199, 185, 216, 200, 187, 216, 200, 187, 217, 201, 188, 217, 201, 188, 217, 200, 190, 216, 202, 191, 216, 202, 191, 216, 202, 191, 218, 202, 189, 218, 202, 189, 217, 203, 190, 217, 203, 190, 218, 204, 193, 219, 205, 194, 220, 206, 197, 220, 206, 197, 219, 206, 197, 219, 206, 197, 219, 207, 195, 219, 207, 195, 219, 207, 193, 219, 207, 193, 217, 208, 193, 217, 207, 195, 221, 209, 197, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 220, 207, 198, 220, 207, 198, 220, 207, 198, 220, 207, 198, 220, 207, 198, 220, 207, 198, 220, 207, 198, 220, 207, 198, 221, 208, 199, 221, 208, 199, 222, 209, 200, 222, 209, 200, 223, 210, 201, 223, 210, 201, 223, 210, 201, 223, 210, 201, 223, 211, 199, 224, 212, 200, 224, 212, 200, 224, 212, 200, 225, 213, 201, 225, 213, 201, 225, 213, 201, 226, 214, 202, 225, 213, 201, 225, 213, 201, 225, 213, 201, 225, 213, 201, 225, 213, 201, 225, 213, 201, 225, 213, 201, 225, 212, 203, 225, 215, 205, 225, 215, 205, 225, 215, 206, 226, 216, 207, 226, 216, 207, 227, 217, 208, 227, 217, 208, 227, 217, 208, 227, 217, 208, 228, 218, 209, 228, 218, 209, 228, 218, 209, 229, 219, 210, 229, 219, 210, 229, 219, 210, 230, 220, 211, 230, 221, 212, 230, 221, 212, 230, 221, 212, 230, 221, 212, 230, 223, 213, 230, 223, 213, 231, 224, 216, 231, 224, 216, 232, 225, 217, 232, 225, 217, 230, 225, 219, 231, 226, 220, 231, 226, 220, 231, 226, 220, 232, 227, 221, 232, 227, 221, 231, 228, 223, 231, 228, 223, 232, 229, 224, 232, 229, 224, 232, 229, 224, 233, 230, 225, 233, 230, 225, 233, 230, 225, 232, 229, 224, 233, 230, 225, 233, 230, 225, 233, 230, 225, 234, 231, 226, 234, 231, 226, 234, 231, 226, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 236, 233, 228, 236, 233, 228, 237, 234, 229, 235, 234, 229, 235, 234, 229, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 236, 237, 232, 236, 237, 232, 236, 236, 234, 236, 236, 234, 238, 237, 233, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 242, 241, 237, 243, 242, 238, 241, 242, 237, 241, 242, 237, 241, 241, 239, 242, 242, 240, 242, 242, 240, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 253, 252, 250, 252, 251, 250, 252, 251, 250, 252, 251, 249, 251, 250, 249, 251, 250, 249, 251, 250, 248, 250, 249, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 245, 246, 248, 244, 245, 247, 244, 245, 247, 243, 244, 246, 242, 243, 245, 241, 242, 244, 241, 242, 244, 241, 242, 244, 242, 243, 245, 239, 240, 242, 235, 236, 238, 233, 234, 236, 232, 233, 235, 230, 231, 233, 227, 228, 230, 224, 226, 225, 218, 220, 217, 215, 217, 212, 210, 212, 209, 206, 208, 203, 203, 205, 202, 199, 201, 196, 195, 196, 191, 191, 192, 187, 184, 185, 180, 182, 181, 177, 177, 176, 172, 174, 173, 169, 172, 171, 167, 170, 166, 163, 166, 162, 159, 163, 159, 156, 157, 152, 149, 158, 153, 150, 158, 153, 150, 157, 152, 148, 156, 148, 145, 152, 144, 141, 148, 140, 137, 145, 137, 134, 150, 140, 138, 151, 142, 137, 152, 141, 137, 153, 142, 138, 152, 141, 137, 151, 140, 136, 152, 138, 135, 149, 138, 134, 146, 136, 135, 146, 136, 135, 146, 136, 135, 146, 136, 135, 146, 136, 135, 146, 136, 135, 146, 136, 135, 146, 136, 135, 155, 147, 145, 155, 147, 145, 157, 149, 147, 159, 151, 149, 160, 155, 152, 162, 157, 154, 164, 159, 156, 165, 160, 157, 166, 161, 158, 163, 158, 155, 160, 155, 152, 157, 152, 149, 158, 150, 148, 159, 151, 149, 162, 154, 152, 164, 156, 154, 166, 156, 155, 166, 156, 155, 167, 157, 156, 169, 159, 158, 171, 161, 160, 172, 162, 161, 173, 163, 162, 173, 165, 163, 171, 166, 163, 174, 169, 166, 177, 172, 169, 178, 173, 170, 179, 174, 171, 179, 175, 174, 183, 179, 178, 185, 181, 180, 190, 186, 187, 192, 190, 191, 197, 195, 196, 200, 200, 202, 204, 205, 209, 210, 211, 215, 215, 219, 222, 220, 223, 228, 221, 224, 229, 225, 228, 233, 230, 233, 238, 232, 235, 240, 234, 237, 242, 235, 238, 243, 238, 241, 246, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 247, 251, 254, 247, 251, 254, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 249, 246, 247, 249, 243, 244, 248, 243, 244, 248, 242, 243, 247, 242, 243, 247, 241, 242, 244, 240, 241, 243, 240, 241, 243, 239, 240, 242, 238, 240, 239, 238, 240, 239, 238, 240, 239, 238, 240, 239, 237, 239, 238, 237, 239, 238, 236, 238, 237, 236, 238, 237, 236, 238, 235, 236, 238, 235, 236, 238, 235, 236, 238, 235, 236, 238, 235, 236, 238, 235, 236, 238, 235, 236, 238, 235, 235, 237, 234, 235, 237, 234, 235, 237, 234, 236, 238, 235, 236, 238, 235, 236, 238, 235, 237, 239, 236, 237, 239, 236, 240, 240, 238, 240, 240, 238, 240, 240, 238, 239, 239, 237, 239, 239, 237, 239, 239, 237, 238, 238, 236, 238, 238, 236, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 241, 241, 239, 244, 244, 242, 246, 246, 244, 245, 245, 243, 241, 241, 239, 238, 238, 236, 241, 241, 239, 240, 240, 238, 239, 239, 237, 239, 239, 237, 240, 240, 238, 242, 242, 240, 245, 245, 243, 247, 247, 245, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 239, 239, 237, 239, 239, 237, 240, 240, 238, 241, 241, 239, 241, 241, 239, 240, 240, 238, 239, 239, 237, 239, 240, 235, 239, 238, 234, 238, 237, 232, 238, 237, 232, 238, 237, 232, 237, 236, 231, 237, 236, 231, 237, 236, 231, 236, 235, 230, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 234, 233, 228, 234, 233, 228, 233, 232, 227, 233, 232, 227, 234, 231, 224, 234, 231, 224, 234, 229, 223, 234, 229, 223, 233, 228, 222, 233, 228, 222, 233, 229, 220, 233, 229, 220, 232, 225, 217, 232, 225, 217, 231, 224, 216, 230, 223, 215, 229, 222, 212, 229, 222, 212, 229, 220, 211, 229, 220, 211, 227, 221, 209, 227, 221, 209, 228, 220, 209, 227, 219, 208, 226, 218, 207, 225, 217, 206, 225, 217, 206, 224, 216, 205, 226, 216, 206, 225, 215, 205, 225, 215, 205, 225, 215, 205, 224, 214, 204, 224, 214, 204, 224, 214, 204, 223, 213, 203, 222, 212, 203, 222, 212, 203, 221, 211, 201, 221, 211, 201, 221, 211, 201, 220, 210, 200, 222, 209, 200, 222, 209, 200, 220, 208, 196, 221, 209, 197, 221, 209, 197, 221, 209, 197, 222, 208, 197, 221, 207, 196, 219, 205, 192, 218, 204, 191, 222, 206, 191, 220, 204, 189, 216, 202, 189, 217, 203, 190, 218, 206, 194, 220, 208, 196, 218, 208, 198, 217, 207, 197, 219, 209, 200, 219, 209, 200, 219, 209, 200, 219, 209, 200, 219, 209, 199, 219, 209, 199, 221, 209, 197, 221, 209, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 220, 206, 195, 222, 206, 193, 221, 203, 189, 218, 200, 186, 216, 198, 184, 215, 197, 183, 215, 197, 183, 216, 198, 184, 217, 199, 185, 216, 200, 187, 216, 200, 187, 217, 201, 188, 217, 201, 188, 215, 201, 190, 216, 202, 191, 216, 202, 191, 216, 202, 191, 218, 202, 189, 218, 202, 189, 217, 203, 190, 217, 203, 190, 218, 204, 193, 219, 205, 194, 220, 206, 197, 220, 206, 197, 219, 206, 197, 219, 206, 197, 219, 207, 195, 219, 207, 195, 219, 207, 193, 219, 207, 193, 217, 208, 193, 217, 208, 193, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 220, 207, 198, 220, 207, 198, 220, 207, 198, 220, 207, 198, 220, 207, 198, 220, 207, 198, 220, 207, 198, 220, 207, 198, 220, 207, 198, 220, 207, 198, 220, 207, 198, 220, 207, 198, 220, 207, 198, 220, 207, 198, 220, 207, 198, 220, 207, 198, 221, 208, 199, 221, 208, 199, 222, 209, 200, 222, 209, 200, 223, 210, 201, 223, 210, 201, 223, 210, 201, 223, 210, 201, 224, 212, 200, 224, 212, 200, 224, 212, 200, 224, 212, 200, 225, 213, 201, 225, 213, 201, 226, 214, 202, 226, 214, 202, 225, 213, 201, 225, 213, 201, 225, 213, 201, 225, 213, 201, 225, 213, 201, 225, 213, 201, 225, 213, 201, 225, 213, 201, 225, 215, 206, 225, 215, 206, 225, 215, 206, 226, 216, 207, 226, 216, 207, 227, 217, 208, 227, 217, 208, 227, 217, 208, 227, 217, 208, 228, 218, 209, 228, 218, 209, 228, 218, 209, 229, 219, 210, 229, 219, 210, 229, 219, 210, 230, 220, 211, 230, 221, 212, 230, 221, 212, 230, 221, 212, 230, 221, 212, 230, 223, 213, 230, 223, 213, 231, 224, 216, 231, 224, 216, 232, 225, 217, 232, 225, 217, 230, 225, 219, 231, 226, 220, 231, 226, 220, 231, 226, 220, 232, 227, 221, 232, 227, 221, 231, 228, 223, 231, 228, 223, 232, 229, 224, 232, 229, 224, 232, 229, 224, 233, 230, 225, 233, 230, 225, 233, 230, 225, 232, 229, 224, 233, 230, 225, 233, 230, 225, 233, 230, 225, 234, 231, 226, 234, 231, 226, 234, 231, 226, 235, 232, 227, 235, 232, 225, 235, 232, 225, 235, 232, 227, 236, 233, 228, 236, 233, 228, 237, 234, 229, 235, 234, 229, 235, 234, 229, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 236, 237, 232, 236, 237, 232, 236, 236, 234, 236, 236, 234, 238, 237, 233, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 242, 241, 237, 243, 242, 238, 241, 241, 239, 241, 241, 239, 242, 242, 240, 242, 242, 240, 242, 242, 240, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 253, 252, 250, 252, 251, 250, 252, 251, 250, 252, 251, 249, 251, 250, 249, 251, 250, 249, 251, 250, 248, 250, 249, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 245, 246, 248, 244, 245, 247, 244, 245, 247, 243, 244, 246, 242, 243, 245, 241, 242, 244, 241, 242, 244, 241, 242, 244, 239, 240, 242, 236, 237, 239, 233, 234, 236, 231, 232, 234, 230, 231, 233, 228, 229, 231, 225, 226, 228, 222, 224, 223, 220, 222, 219, 217, 219, 214, 212, 214, 209, 208, 210, 205, 205, 207, 202, 202, 204, 199, 198, 199, 194, 194, 195, 190, 190, 191, 186, 186, 187, 182, 181, 182, 177, 176, 177, 172, 174, 173, 169, 169, 168, 164, 164, 163, 159, 160, 159, 155, 159, 155, 152, 161, 156, 153, 160, 155, 151, 159, 154, 150, 158, 150, 147, 154, 146, 143, 150, 142, 139, 147, 139, 136, 153, 143, 141, 154, 145, 140, 155, 144, 140, 155, 144, 140, 155, 144, 140, 153, 142, 138, 154, 140, 137, 151, 140, 136, 146, 136, 135, 146, 136, 135, 146, 136, 135, 146, 136, 135, 146, 136, 135, 146, 136, 135, 146, 136, 135, 146, 136, 135, 154, 146, 144, 155, 147, 145, 156, 148, 146, 159, 151, 149, 159, 154, 151, 162, 157, 154, 164, 159, 156, 165, 160, 157, 165, 160, 157, 163, 158, 155, 160, 155, 152, 157, 152, 149, 158, 150, 148, 160, 152, 150, 162, 154, 152, 163, 155, 153, 165, 155, 154, 165, 155, 154, 166, 156, 155, 168, 158, 157, 170, 160, 159, 171, 161, 160, 172, 162, 161, 172, 164, 162, 171, 165, 165, 173, 169, 168, 177, 172, 169, 178, 173, 170, 179, 174, 171, 180, 175, 172, 183, 178, 175, 186, 181, 178, 187, 183, 182, 191, 187, 186, 194, 192, 193, 197, 197, 197, 202, 201, 206, 207, 208, 212, 212, 215, 220, 217, 220, 225, 221, 224, 229, 225, 228, 233, 230, 233, 238, 233, 236, 241, 234, 237, 242, 236, 239, 244, 239, 242, 247, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 247, 251, 254, 247, 251, 254, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 249, 246, 247, 249, 245, 246, 250, 244, 245, 249, 244, 245, 249, 243, 244, 248, 242, 243, 245, 241, 242, 244, 241, 242, 244, 240, 241, 243, 239, 241, 240, 239, 241, 240, 238, 240, 239, 238, 240, 239, 237, 239, 238, 237, 239, 238, 237, 239, 238, 237, 239, 238, 236, 238, 235, 236, 238, 235, 236, 238, 235, 236, 238, 235, 236, 238, 235, 236, 238, 235, 236, 238, 235, 236, 238, 235, 235, 237, 234, 236, 238, 235, 236, 238, 235, 236, 238, 235, 237, 239, 236, 237, 239, 236, 237, 239, 236, 237, 239, 236, 240, 240, 238, 240, 240, 238, 240, 240, 238, 239, 239, 237, 239, 239, 237, 239, 239, 237, 238, 238, 236, 238, 238, 236, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 238, 238, 236, 241, 241, 239, 244, 244, 242, 245, 245, 243, 243, 243, 241, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 240, 240, 238, 240, 240, 238, 240, 240, 238, 241, 241, 239, 242, 242, 240, 244, 244, 242, 245, 245, 243, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 239, 239, 237, 239, 239, 237, 240, 240, 238, 241, 241, 239, 241, 241, 239, 240, 240, 238, 239, 239, 237, 239, 240, 235, 239, 238, 234, 239, 238, 233, 238, 237, 232, 238, 237, 232, 238, 237, 232, 237, 236, 231, 237, 236, 231, 237, 236, 231, 236, 235, 230, 236, 235, 230, 235, 234, 229, 235, 234, 229, 234, 233, 228, 234, 233, 228, 234, 233, 228, 234, 233, 228, 234, 231, 224, 234, 231, 224, 233, 230, 223, 233, 230, 223, 234, 229, 223, 233, 228, 222, 233, 228, 222, 233, 228, 222, 232, 225, 217, 232, 225, 217, 231, 224, 216, 231, 224, 216, 230, 223, 213, 229, 222, 212, 229, 222, 212, 228, 221, 211, 228, 221, 211, 228, 221, 211, 227, 220, 210, 226, 219, 209, 227, 218, 209, 226, 217, 208, 225, 216, 207, 225, 216, 207, 225, 216, 207, 225, 216, 207, 225, 215, 206, 225, 215, 206, 225, 215, 206, 224, 214, 205, 224, 214, 205, 224, 214, 205, 222, 212, 203, 222, 212, 203, 222, 212, 202, 221, 211, 201, 221, 211, 201, 220, 210, 200, 222, 209, 200, 222, 209, 200, 221, 209, 197, 221, 209, 197, 221, 209, 197, 221, 209, 197, 222, 208, 197, 220, 206, 195, 219, 205, 192, 218, 204, 191, 222, 206, 191, 220, 204, 189, 216, 202, 189, 216, 202, 189, 218, 206, 194, 220, 208, 196, 218, 208, 198, 218, 208, 198, 219, 209, 200, 219, 209, 200, 219, 209, 200, 219, 209, 200, 219, 209, 199, 219, 209, 199, 221, 209, 197, 221, 209, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 220, 206, 195, 221, 205, 192, 220, 202, 188, 218, 200, 186, 216, 198, 184, 215, 197, 183, 215, 197, 183, 217, 199, 185, 218, 200, 186, 216, 200, 187, 216, 200, 187, 217, 201, 188, 217, 201, 188, 215, 201, 190, 216, 202, 191, 216, 202, 191, 216, 202, 191, 218, 202, 189, 218, 202, 189, 217, 203, 190, 217, 203, 190, 218, 204, 193, 219, 205, 194, 220, 206, 197, 220, 206, 197, 219, 206, 197, 219, 206, 197, 219, 207, 195, 219, 207, 195, 219, 207, 193, 219, 207, 193, 217, 208, 193, 217, 208, 193, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 220, 207, 198, 220, 207, 198, 220, 207, 198, 220, 207, 198, 220, 207, 198, 220, 207, 198, 220, 207, 198, 220, 207, 198, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 222, 209, 200, 222, 209, 200, 223, 210, 201, 223, 210, 201, 223, 210, 201, 223, 210, 201, 224, 212, 200, 224, 212, 200, 224, 212, 200, 225, 213, 201, 225, 213, 201, 225, 213, 201, 226, 214, 202, 226, 214, 202, 226, 214, 202, 226, 214, 202, 226, 214, 202, 226, 214, 202, 226, 214, 202, 226, 214, 202, 226, 214, 202, 226, 214, 202, 225, 215, 206, 225, 215, 206, 225, 215, 206, 226, 216, 207, 226, 216, 207, 227, 217, 208, 227, 217, 208, 227, 217, 208, 227, 217, 208, 228, 218, 209, 228, 218, 209, 228, 218, 209, 229, 219, 210, 229, 219, 210, 229, 219, 210, 230, 220, 211, 230, 221, 212, 230, 221, 212, 230, 221, 212, 230, 221, 212, 230, 223, 213, 230, 223, 213, 231, 224, 216, 231, 224, 216, 232, 225, 217, 232, 225, 217, 230, 225, 219, 231, 226, 220, 231, 226, 220, 231, 226, 220, 232, 227, 221, 232, 227, 221, 231, 228, 223, 231, 228, 223, 232, 229, 224, 232, 229, 224, 232, 229, 224, 233, 230, 225, 233, 230, 225, 233, 230, 225, 232, 229, 224, 233, 230, 225, 233, 230, 225, 233, 230, 225, 234, 231, 226, 234, 231, 226, 234, 231, 226, 235, 232, 227, 235, 232, 225, 235, 232, 225, 235, 232, 227, 236, 233, 228, 236, 233, 228, 237, 234, 229, 235, 234, 229, 235, 234, 229, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 236, 237, 232, 236, 237, 232, 236, 236, 234, 236, 236, 234, 238, 237, 233, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 242, 241, 237, 243, 242, 238, 241, 241, 239, 242, 242, 240, 242, 242, 240, 242, 242, 240, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 253, 252, 250, 252, 251, 250, 252, 251, 250, 252, 251, 249, 251, 250, 249, 251, 250, 249, 251, 250, 248, 250, 249, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 245, 246, 248, 244, 245, 247, 244, 245, 247, 243, 244, 246, 242, 243, 245, 241, 242, 244, 241, 242, 244, 241, 242, 244, 237, 238, 240, 234, 235, 237, 231, 232, 234, 230, 231, 233, 229, 230, 232, 227, 228, 230, 224, 225, 227, 221, 223, 222, 220, 225, 221, 217, 222, 218, 212, 217, 213, 209, 214, 210, 209, 211, 208, 205, 207, 204, 201, 203, 200, 198, 200, 197, 196, 198, 195, 192, 194, 191, 187, 187, 185, 182, 182, 180, 178, 178, 176, 173, 173, 171, 167, 167, 165, 163, 162, 160, 166, 162, 159, 166, 162, 159, 164, 160, 157, 162, 158, 155, 160, 155, 152, 156, 151, 148, 153, 148, 145, 151, 146, 142, 156, 148, 145, 156, 148, 145, 157, 147, 145, 157, 147, 145, 157, 146, 144, 155, 144, 142, 153, 142, 138, 152, 141, 137, 146, 136, 135, 146, 136, 135, 145, 135, 134, 144, 134, 133, 144, 134, 133, 145, 135, 134, 146, 136, 135, 146, 136, 135, 152, 144, 142, 153, 145, 143, 155, 147, 145, 157, 149, 147, 158, 153, 150, 161, 156, 153, 163, 158, 155, 164, 159, 156, 165, 160, 157, 163, 158, 155, 160, 155, 152, 158, 153, 150, 159, 151, 149, 160, 152, 150, 161, 153, 151, 163, 155, 153, 163, 153, 152, 164, 154, 153, 165, 155, 154, 167, 157, 156, 168, 158, 157, 170, 160, 159, 171, 161, 160, 171, 163, 161, 171, 165, 165, 173, 167, 167, 176, 171, 168, 178, 173, 170, 178, 173, 170, 180, 175, 172, 183, 178, 175, 186, 181, 178, 184, 180, 179, 187, 183, 182, 190, 188, 189, 194, 194, 194, 198, 197, 202, 203, 204, 208, 207, 210, 215, 212, 215, 220, 220, 223, 228, 224, 227, 232, 229, 232, 237, 233, 236, 241, 234, 237, 242, 236, 239, 244, 239, 242, 247, 242, 245, 250, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 247, 251, 254, 247, 251, 254, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 251, 245, 246, 250, 245, 246, 250, 244, 245, 249, 243, 244, 246, 242, 243, 245, 242, 243, 245, 241, 242, 244, 239, 241, 240, 239, 241, 240, 239, 241, 240, 238, 240, 239, 238, 240, 239, 237, 239, 238, 237, 239, 238, 237, 239, 238, 237, 239, 236, 237, 239, 236, 237, 239, 236, 237, 239, 236, 237, 239, 236, 237, 239, 236, 237, 239, 236, 237, 239, 236, 236, 238, 235, 236, 238, 235, 237, 239, 236, 237, 239, 236, 237, 239, 236, 238, 240, 237, 238, 240, 237, 238, 240, 237, 240, 240, 238, 240, 240, 238, 240, 240, 238, 239, 239, 237, 239, 239, 237, 239, 239, 237, 238, 238, 236, 238, 238, 236, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 238, 238, 236, 242, 242, 240, 246, 246, 244, 246, 246, 244, 241, 241, 239, 238, 238, 236, 240, 240, 238, 243, 243, 241, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 242, 242, 240, 242, 242, 240, 243, 243, 241, 244, 244, 242, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 239, 239, 237, 239, 239, 237, 240, 240, 238, 241, 241, 239, 241, 241, 239, 240, 240, 238, 239, 239, 237, 239, 239, 237, 239, 238, 234, 239, 238, 233, 239, 238, 233, 238, 237, 232, 238, 237, 232, 238, 237, 232, 237, 236, 231, 237, 236, 231, 236, 235, 230, 236, 235, 230, 236, 235, 230, 235, 234, 229, 235, 234, 229, 234, 233, 228, 234, 233, 228, 234, 233, 228, 234, 231, 226, 234, 231, 224, 234, 231, 224, 233, 230, 223, 234, 229, 223, 234, 229, 223, 233, 228, 222, 233, 228, 222, 233, 226, 218, 233, 226, 218, 232, 225, 217, 232, 225, 217, 231, 224, 214, 230, 223, 213, 229, 222, 212, 229, 222, 212, 229, 222, 212, 228, 221, 211, 228, 221, 211, 227, 220, 210, 227, 218, 209, 227, 218, 209, 226, 217, 208, 226, 217, 208, 225, 216, 207, 225, 216, 207, 226, 216, 207, 225, 215, 206, 225, 215, 206, 225, 215, 206, 224, 214, 205, 224, 214, 205, 222, 212, 203, 222, 212, 203, 222, 212, 202, 222, 212, 202, 221, 211, 201, 221, 211, 201, 223, 210, 201, 222, 209, 200, 221, 209, 197, 222, 210, 198, 222, 210, 198, 222, 210, 198, 221, 207, 196, 220, 206, 195, 218, 204, 191, 217, 203, 190, 221, 205, 190, 219, 203, 188, 215, 201, 188, 216, 202, 189, 218, 206, 194, 221, 209, 197, 219, 209, 199, 218, 208, 198, 219, 209, 200, 219, 209, 200, 219, 209, 200, 219, 209, 200, 219, 209, 199, 219, 209, 199, 221, 209, 197, 221, 209, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 220, 206, 195, 220, 204, 191, 220, 202, 188, 218, 200, 186, 216, 198, 184, 215, 197, 183, 216, 198, 184, 217, 199, 185, 218, 200, 186, 216, 200, 187, 216, 200, 187, 217, 201, 188, 217, 201, 188, 215, 201, 190, 216, 202, 191, 216, 202, 191, 216, 202, 191, 218, 202, 189, 218, 202, 189, 217, 203, 190, 217, 203, 190, 218, 204, 193, 219, 205, 194, 220, 206, 197, 220, 206, 197, 219, 206, 197, 219, 206, 197, 219, 207, 195, 219, 207, 195, 219, 207, 193, 219, 207, 193, 217, 208, 193, 217, 208, 193, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 220, 207, 198, 220, 207, 198, 220, 207, 198, 220, 207, 198, 220, 207, 198, 220, 207, 198, 220, 207, 198, 220, 207, 198, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 222, 209, 200, 222, 209, 200, 223, 210, 201, 223, 210, 201, 223, 210, 201, 223, 210, 201, 224, 212, 200, 224, 212, 200, 225, 213, 201, 225, 213, 201, 225, 213, 201, 226, 214, 202, 226, 214, 202, 226, 214, 202, 226, 214, 202, 226, 214, 202, 226, 214, 202, 226, 214, 202, 226, 214, 202, 226, 214, 202, 226, 214, 202, 226, 213, 204, 225, 215, 206, 225, 215, 206, 225, 215, 206, 226, 216, 207, 226, 216, 207, 227, 217, 208, 227, 217, 208, 227, 217, 208, 227, 217, 208, 228, 218, 209, 228, 218, 209, 228, 218, 209, 229, 219, 210, 229, 219, 210, 229, 219, 210, 230, 220, 211, 230, 221, 212, 230, 221, 212, 230, 221, 212, 230, 221, 212, 230, 223, 213, 230, 223, 213, 231, 224, 216, 231, 224, 216, 232, 225, 217, 232, 225, 217, 230, 225, 219, 231, 226, 220, 231, 226, 220, 231, 226, 220, 232, 227, 221, 232, 227, 221, 231, 228, 223, 231, 228, 223, 232, 229, 224, 232, 229, 224, 232, 229, 224, 233, 230, 225, 233, 230, 225, 233, 230, 225, 232, 229, 224, 233, 230, 225, 233, 230, 225, 233, 230, 225, 234, 231, 226, 234, 231, 226, 234, 231, 226, 235, 232, 227, 235, 232, 225, 235, 232, 225, 235, 232, 227, 236, 233, 228, 236, 233, 228, 237, 234, 229, 235, 234, 229, 235, 234, 229, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 236, 237, 232, 236, 237, 232, 236, 236, 234, 236, 236, 234, 238, 237, 233, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 242, 241, 237, 243, 242, 238, 242, 242, 240, 242, 242, 240, 242, 242, 240, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 253, 252, 250, 252, 251, 250, 252, 251, 250, 252, 251, 249, 251, 250, 249, 251, 250, 249, 251, 250, 248, 250, 249, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 245, 246, 248, 244, 245, 247, 244, 245, 247, 243, 244, 246, 242, 243, 245, 241, 242, 244, 241, 242, 244, 241, 242, 244, 238, 239, 241, 235, 236, 238, 232, 233, 235, 231, 232, 234, 230, 231, 233, 229, 230, 232, 226, 227, 229, 223, 224, 226, 221, 225, 224, 217, 222, 218, 213, 217, 216, 211, 216, 212, 211, 213, 212, 208, 210, 207, 204, 206, 205, 201, 203, 200, 201, 203, 202, 197, 199, 196, 193, 193, 193, 189, 189, 187, 185, 185, 185, 181, 181, 179, 175, 175, 175, 172, 172, 170, 173, 172, 170, 174, 170, 167, 172, 168, 167, 169, 165, 162, 166, 162, 159, 163, 158, 155, 160, 155, 152, 159, 154, 151, 158, 150, 148, 158, 150, 147, 158, 148, 146, 157, 147, 145, 156, 146, 144, 154, 143, 141, 152, 141, 139, 151, 140, 138, 146, 136, 135, 145, 135, 134, 143, 133, 132, 142, 132, 131, 142, 132, 131, 143, 133, 132, 145, 135, 134, 146, 136, 135, 149, 141, 139, 151, 143, 141, 153, 145, 143, 156, 148, 146, 157, 152, 149, 160, 155, 152, 162, 157, 154, 163, 158, 155, 164, 159, 156, 163, 158, 155, 161, 156, 153, 159, 154, 151, 160, 152, 150, 160, 152, 150, 161, 153, 151, 162, 154, 152, 162, 152, 151, 163, 153, 152, 164, 154, 153, 166, 156, 155, 167, 157, 156, 169, 159, 158, 170, 160, 159, 170, 162, 160, 172, 163, 164, 173, 167, 167, 176, 171, 168, 178, 173, 170, 178, 173, 170, 180, 175, 172, 183, 178, 175, 186, 181, 178, 183, 179, 178, 186, 182, 181, 189, 187, 188, 193, 191, 192, 196, 195, 200, 200, 201, 205, 207, 208, 213, 210, 213, 218, 219, 222, 227, 223, 226, 231, 228, 231, 236, 232, 235, 240, 234, 237, 242, 236, 239, 244, 239, 242, 247, 242, 245, 250, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 247, 251, 254, 247, 251, 254, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 251, 246, 247, 251, 245, 246, 250, 244, 245, 249, 244, 245, 247, 243, 244, 246, 242, 243, 245, 242, 243, 245, 240, 242, 241, 239, 241, 240, 239, 241, 240, 239, 241, 240, 238, 240, 239, 238, 240, 239, 238, 240, 239, 237, 239, 238, 237, 239, 236, 237, 239, 236, 237, 239, 236, 237, 239, 236, 237, 239, 236, 237, 239, 236, 237, 239, 236, 237, 239, 236, 237, 239, 236, 237, 239, 236, 237, 239, 236, 238, 240, 237, 238, 240, 237, 239, 241, 238, 239, 241, 238, 239, 241, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 239, 239, 237, 239, 239, 237, 239, 239, 237, 238, 238, 236, 238, 238, 236, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 243, 243, 241, 246, 246, 244, 245, 245, 243, 240, 240, 238, 238, 238, 236, 240, 240, 238, 243, 243, 241, 241, 241, 239, 241, 241, 239, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 239, 239, 237, 239, 239, 237, 240, 240, 238, 241, 241, 239, 241, 241, 239, 240, 240, 238, 239, 239, 237, 239, 239, 237, 240, 239, 235, 239, 238, 234, 239, 238, 234, 239, 238, 234, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 237, 236, 232, 236, 235, 231, 236, 235, 231, 236, 235, 231, 235, 234, 230, 235, 234, 230, 235, 234, 230, 234, 233, 228, 235, 232, 227, 235, 232, 227, 234, 231, 226, 234, 231, 226, 235, 230, 224, 234, 229, 223, 234, 229, 223, 234, 229, 223, 232, 228, 219, 232, 228, 219, 233, 226, 218, 232, 225, 217, 231, 224, 216, 231, 224, 216, 230, 223, 215, 230, 223, 215, 230, 223, 213, 229, 222, 212, 229, 222, 212, 228, 221, 211, 227, 220, 210, 226, 219, 209, 227, 218, 209, 226, 217, 208, 226, 217, 208, 225, 216, 207, 226, 216, 207, 226, 216, 207, 225, 215, 206, 225, 215, 206, 225, 215, 206, 225, 215, 206, 223, 213, 204, 223, 213, 204, 222, 212, 202, 222, 212, 202, 222, 212, 202, 221, 211, 201, 223, 210, 201, 223, 210, 201, 222, 210, 198, 222, 210, 198, 222, 210, 198, 222, 210, 198, 221, 207, 196, 219, 205, 194, 217, 203, 190, 216, 202, 189, 220, 204, 189, 218, 202, 187, 215, 201, 188, 216, 202, 189, 219, 207, 195, 221, 209, 197, 220, 210, 200, 219, 209, 199, 219, 209, 200, 219, 209, 200, 219, 209, 200, 219, 209, 200, 219, 209, 199, 219, 209, 199, 221, 209, 197, 221, 209, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 220, 206, 195, 220, 204, 191, 219, 201, 187, 217, 199, 185, 215, 197, 183, 215, 197, 183, 216, 198, 184, 218, 200, 186, 219, 201, 187, 216, 200, 187, 216, 200, 187, 217, 201, 188, 217, 201, 188, 215, 201, 190, 216, 202, 191, 216, 202, 191, 216, 202, 191, 218, 202, 189, 218, 202, 189, 217, 203, 190, 217, 203, 190, 218, 204, 193, 219, 205, 194, 220, 206, 197, 220, 206, 197, 219, 206, 197, 219, 206, 197, 219, 207, 195, 219, 207, 195, 219, 207, 193, 219, 207, 193, 217, 208, 193, 217, 208, 193, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 222, 209, 200, 222, 209, 200, 223, 210, 201, 223, 210, 201, 223, 210, 201, 223, 210, 201, 223, 213, 203, 223, 213, 203, 223, 213, 203, 224, 214, 204, 224, 214, 204, 224, 214, 204, 225, 215, 205, 225, 215, 205, 224, 214, 204, 224, 214, 204, 224, 214, 204, 224, 214, 204, 224, 214, 204, 224, 214, 204, 224, 214, 204, 224, 214, 204, 225, 215, 206, 225, 215, 206, 225, 215, 206, 226, 216, 207, 226, 216, 207, 227, 217, 208, 227, 217, 208, 227, 217, 208, 227, 217, 208, 228, 218, 209, 228, 218, 209, 228, 218, 209, 229, 219, 210, 229, 219, 210, 229, 219, 210, 230, 220, 211, 230, 221, 212, 230, 221, 212, 230, 221, 212, 230, 221, 212, 230, 223, 213, 230, 223, 213, 231, 224, 216, 231, 224, 216, 232, 225, 217, 232, 225, 217, 230, 225, 219, 231, 226, 220, 231, 226, 220, 231, 226, 220, 232, 227, 221, 232, 227, 221, 231, 228, 223, 231, 228, 223, 232, 229, 224, 232, 229, 224, 232, 229, 224, 233, 230, 225, 233, 230, 225, 233, 230, 225, 232, 229, 224, 233, 230, 225, 233, 230, 225, 233, 230, 225, 234, 231, 226, 234, 231, 226, 234, 231, 226, 235, 232, 227, 235, 232, 225, 235, 232, 225, 235, 232, 227, 236, 233, 228, 236, 233, 228, 237, 234, 229, 235, 234, 229, 235, 234, 229, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 236, 237, 232, 236, 237, 232, 236, 236, 234, 236, 236, 234, 238, 237, 233, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 242, 241, 237, 243, 242, 238, 242, 242, 240, 242, 242, 240, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 253, 252, 250, 252, 251, 250, 252, 251, 250, 252, 251, 249, 251, 250, 249, 251, 250, 249, 251, 250, 248, 250, 249, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 245, 246, 248, 244, 245, 247, 244, 245, 247, 243, 244, 246, 242, 243, 245, 241, 242, 244, 241, 242, 244, 241, 242, 244, 240, 241, 243, 237, 238, 240, 235, 236, 238, 234, 235, 237, 234, 235, 237, 233, 234, 236, 230, 231, 233, 227, 228, 230, 221, 225, 226, 217, 223, 221, 213, 219, 219, 211, 217, 215, 211, 215, 216, 209, 213, 212, 206, 210, 211, 203, 207, 206, 202, 206, 207, 199, 203, 202, 197, 198, 200, 194, 196, 195, 192, 193, 195, 190, 192, 191, 186, 187, 189, 184, 184, 184, 183, 181, 182, 181, 180, 178, 178, 176, 177, 174, 173, 171, 170, 169, 167, 169, 165, 164, 166, 162, 161, 165, 161, 158, 157, 152, 149, 156, 151, 148, 158, 150, 148, 156, 148, 146, 154, 146, 144, 152, 142, 141, 149, 139, 138, 147, 137, 136, 145, 135, 134, 143, 133, 132, 141, 131, 130, 139, 129, 128, 139, 129, 128, 141, 131, 130, 143, 133, 132, 145, 135, 134, 147, 139, 137, 148, 140, 138, 151, 143, 141, 154, 146, 144, 155, 150, 147, 159, 154, 151, 161, 156, 153, 162, 157, 154, 163, 158, 155, 162, 157, 154, 161, 156, 153, 160, 155, 152, 161, 153, 151, 161, 153, 151, 161, 153, 151, 161, 153, 151, 162, 152, 151, 163, 153, 152, 164, 154, 153, 165, 155, 154, 167, 157, 156, 169, 159, 158, 170, 160, 159, 169, 161, 159, 172, 164, 162, 172, 167, 164, 176, 171, 168, 177, 172, 169, 180, 172, 170, 181, 173, 171, 182, 177, 174, 185, 180, 177, 184, 178, 178, 187, 183, 182, 189, 187, 188, 193, 191, 192, 196, 195, 200, 200, 201, 205, 206, 207, 212, 211, 212, 217, 217, 220, 225, 221, 224, 229, 227, 230, 235, 231, 234, 239, 233, 236, 241, 235, 238, 243, 239, 242, 247, 242, 245, 250, 241, 244, 249, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 247, 251, 254, 247, 251, 254, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 251, 245, 246, 250, 245, 246, 250, 244, 245, 249, 243, 244, 246, 243, 244, 246, 242, 243, 245, 242, 243, 245, 240, 242, 241, 240, 242, 241, 239, 241, 240, 239, 241, 240, 239, 241, 240, 238, 240, 239, 238, 240, 239, 238, 240, 239, 238, 240, 237, 238, 240, 237, 238, 240, 237, 238, 240, 237, 238, 240, 237, 238, 240, 237, 238, 240, 237, 238, 240, 237, 238, 240, 237, 238, 240, 237, 238, 240, 237, 239, 241, 238, 239, 241, 238, 239, 241, 238, 240, 242, 239, 240, 242, 239, 240, 240, 238, 240, 240, 238, 240, 240, 238, 239, 239, 237, 239, 239, 237, 239, 239, 237, 238, 238, 236, 238, 238, 236, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 243, 243, 241, 244, 244, 242, 244, 244, 242, 243, 243, 241, 240, 240, 238, 239, 239, 237, 240, 240, 238, 241, 241, 239, 240, 240, 238, 241, 241, 239, 242, 242, 240, 243, 243, 241, 243, 243, 241, 242, 242, 240, 241, 241, 239, 240, 240, 238, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 239, 239, 237, 239, 239, 237, 240, 240, 238, 241, 241, 239, 241, 241, 239, 240, 240, 238, 239, 239, 237, 239, 239, 237, 240, 239, 235, 240, 239, 235, 240, 239, 235, 239, 238, 234, 239, 238, 234, 238, 237, 233, 238, 237, 233, 238, 237, 233, 237, 236, 232, 237, 236, 232, 236, 235, 231, 236, 235, 231, 236, 235, 231, 235, 234, 230, 235, 234, 230, 235, 234, 230, 235, 232, 227, 235, 232, 227, 235, 232, 227, 234, 231, 226, 235, 230, 224, 235, 230, 224, 234, 229, 223, 234, 229, 223, 233, 229, 220, 232, 228, 219, 234, 227, 219, 233, 226, 218, 232, 225, 217, 232, 225, 217, 231, 224, 216, 231, 224, 216, 230, 223, 213, 230, 223, 213, 229, 222, 212, 229, 222, 212, 228, 221, 211, 227, 220, 210, 228, 219, 210, 227, 218, 209, 226, 217, 208, 226, 217, 208, 227, 217, 208, 226, 216, 207, 226, 216, 207, 225, 215, 206, 225, 215, 206, 225, 215, 206, 223, 213, 204, 223, 213, 204, 223, 213, 203, 222, 212, 202, 222, 212, 202, 222, 212, 202, 223, 210, 201, 223, 210, 201, 223, 211, 199, 223, 211, 199, 223, 211, 199, 222, 210, 198, 221, 207, 196, 219, 205, 194, 217, 203, 190, 215, 201, 188, 219, 203, 188, 217, 201, 186, 214, 200, 187, 216, 202, 189, 219, 207, 195, 222, 210, 198, 220, 210, 200, 220, 210, 200, 219, 209, 200, 219, 209, 200, 219, 209, 200, 219, 209, 200, 219, 209, 199, 219, 209, 199, 221, 209, 197, 221, 209, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 220, 206, 195, 219, 203, 190, 218, 200, 186, 217, 199, 185, 215, 197, 183, 215, 197, 183, 217, 199, 185, 219, 201, 187, 220, 202, 188, 216, 200, 187, 216, 200, 187, 217, 201, 188, 217, 201, 188, 215, 201, 190, 216, 202, 191, 216, 202, 191, 216, 202, 191, 218, 202, 189, 218, 202, 189, 217, 203, 190, 217, 203, 190, 218, 204, 193, 219, 205, 194, 220, 206, 197, 220, 206, 197, 219, 206, 197, 219, 206, 197, 219, 207, 195, 219, 207, 195, 219, 207, 193, 219, 207, 193, 217, 208, 193, 217, 208, 193, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 221, 208, 199, 221, 208, 199, 222, 209, 200, 222, 209, 200, 223, 210, 201, 223, 210, 201, 223, 210, 201, 223, 210, 201, 223, 213, 203, 223, 213, 203, 224, 214, 204, 224, 214, 204, 224, 214, 204, 225, 215, 205, 225, 215, 205, 225, 215, 205, 225, 215, 205, 225, 215, 205, 225, 215, 205, 225, 215, 205, 225, 215, 205, 225, 215, 205, 225, 215, 205, 225, 215, 205, 225, 215, 206, 225, 215, 206, 225, 215, 206, 226, 216, 207, 226, 216, 207, 227, 217, 208, 227, 217, 208, 227, 217, 208, 227, 217, 208, 228, 218, 209, 228, 218, 209, 228, 218, 209, 229, 219, 210, 229, 219, 210, 229, 219, 210, 230, 220, 211, 230, 221, 212, 230, 221, 212, 230, 221, 212, 230, 221, 212, 230, 223, 213, 230, 223, 213, 231, 224, 216, 231, 224, 216, 232, 225, 217, 232, 225, 217, 230, 225, 219, 231, 226, 220, 231, 226, 220, 231, 226, 220, 232, 227, 221, 232, 227, 221, 231, 228, 223, 231, 228, 223, 232, 229, 224, 232, 229, 224, 232, 229, 224, 233, 230, 225, 233, 230, 225, 233, 230, 225, 232, 229, 224, 233, 230, 225, 233, 230, 225, 233, 230, 225, 234, 231, 226, 234, 231, 226, 234, 231, 226, 235, 232, 227, 235, 232, 225, 235, 232, 225, 235, 232, 227, 236, 233, 228, 236, 233, 228, 237, 234, 229, 235, 234, 229, 235, 234, 229, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 236, 237, 232, 236, 237, 232, 236, 236, 234, 236, 236, 234, 238, 237, 233, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 242, 241, 237, 243, 242, 238, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 253, 252, 250, 252, 251, 250, 252, 251, 250, 252, 251, 249, 251, 250, 249, 251, 250, 249, 251, 250, 248, 250, 249, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 245, 246, 248, 244, 245, 247, 244, 245, 247, 243, 244, 246, 242, 243, 245, 241, 242, 244, 241, 242, 244, 241, 242, 244, 242, 243, 245, 239, 240, 242, 237, 238, 240, 236, 237, 239, 236, 237, 239, 236, 237, 239, 233, 234, 236, 229, 233, 234, 222, 226, 227, 219, 225, 225, 216, 222, 222, 214, 220, 220, 215, 219, 220, 213, 217, 218, 210, 214, 215, 208, 212, 213, 206, 210, 211, 204, 208, 209, 202, 203, 205, 200, 201, 203, 200, 201, 203, 198, 199, 201, 195, 196, 198, 192, 193, 195, 187, 187, 189, 186, 184, 185, 181, 179, 180, 177, 175, 176, 173, 171, 172, 169, 168, 166, 170, 166, 165, 169, 165, 164, 159, 153, 153, 158, 153, 150, 159, 151, 149, 157, 149, 147, 154, 146, 144, 150, 142, 140, 148, 138, 137, 146, 136, 135, 143, 133, 132, 141, 131, 130, 138, 128, 127, 136, 126, 125, 136, 126, 125, 138, 128, 127, 141, 131, 130, 143, 133, 132, 145, 137, 135, 146, 138, 136, 149, 141, 139, 152, 144, 142, 154, 149, 146, 158, 153, 150, 160, 155, 152, 162, 157, 154, 162, 157, 154, 162, 157, 154, 161, 156, 153, 161, 156, 153, 162, 154, 152, 161, 153, 151, 160, 152, 150, 160, 152, 150, 162, 152, 151, 163, 153, 152, 164, 154, 153, 166, 156, 155, 167, 157, 156, 169, 159, 158, 170, 160, 159, 170, 162, 160, 171, 163, 161, 172, 167, 164, 175, 170, 167, 177, 172, 169, 179, 171, 169, 181, 173, 171, 182, 177, 174, 185, 180, 177, 185, 179, 179, 188, 182, 182, 191, 187, 188, 193, 191, 192, 195, 195, 197, 200, 199, 204, 205, 206, 211, 209, 210, 215, 214, 217, 222, 219, 222, 227, 224, 227, 232, 229, 232, 237, 231, 234, 239, 234, 237, 242, 238, 241, 246, 241, 244, 249, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 247, 251, 254, 247, 251, 254, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 249, 246, 247, 249, 245, 246, 250, 245, 246, 250, 244, 245, 249, 243, 244, 248, 243, 244, 246, 242, 243, 245, 241, 242, 244, 241, 242, 244, 240, 242, 241, 240, 242, 241, 240, 242, 241, 239, 241, 240, 239, 241, 240, 239, 241, 240, 238, 240, 239, 238, 240, 239, 238, 240, 237, 238, 240, 237, 238, 240, 237, 238, 240, 237, 238, 240, 237, 238, 240, 237, 238, 240, 237, 238, 240, 237, 238, 240, 237, 238, 240, 237, 239, 241, 238, 239, 241, 238, 240, 242, 239, 240, 242, 239, 240, 242, 239, 240, 242, 239, 240, 240, 238, 240, 240, 238, 240, 240, 238, 239, 239, 237, 239, 239, 237, 239, 239, 237, 238, 238, 236, 238, 238, 236, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 247, 247, 245, 244, 244, 242, 241, 241, 239, 240, 240, 238, 241, 241, 239, 241, 241, 239, 240, 240, 238, 239, 239, 237, 240, 240, 238, 242, 242, 240, 243, 243, 241, 244, 244, 242, 244, 244, 242, 242, 242, 240, 240, 240, 238, 239, 239, 237, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 239, 239, 237, 239, 239, 237, 240, 240, 238, 241, 241, 239, 241, 241, 239, 240, 240, 238, 239, 239, 237, 239, 239, 237, 240, 239, 235, 240, 239, 235, 240, 239, 235, 239, 238, 234, 239, 238, 234, 239, 238, 234, 238, 237, 233, 238, 237, 233, 237, 236, 232, 237, 236, 232, 237, 236, 232, 236, 235, 231, 236, 235, 231, 236, 235, 231, 235, 234, 230, 235, 234, 230, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 234, 231, 226, 234, 231, 226, 234, 229, 223, 234, 229, 223, 233, 228, 222, 233, 228, 222, 232, 228, 219, 232, 228, 219, 233, 226, 218, 232, 225, 217, 231, 224, 216, 231, 224, 216, 231, 224, 214, 231, 224, 214, 230, 223, 213, 229, 222, 212, 228, 221, 211, 228, 221, 211, 227, 220, 210, 227, 220, 210, 226, 217, 208, 226, 217, 208, 226, 217, 208, 225, 216, 207, 225, 216, 207, 225, 216, 207, 225, 215, 206, 225, 215, 206, 224, 214, 205, 223, 213, 204, 223, 213, 203, 223, 213, 203, 222, 212, 202, 222, 212, 202, 224, 211, 202, 223, 210, 201, 224, 212, 200, 224, 212, 200, 223, 211, 199, 222, 210, 198, 221, 207, 196, 219, 205, 194, 216, 202, 189, 215, 201, 188, 219, 203, 188, 217, 201, 186, 214, 200, 187, 216, 202, 189, 219, 207, 195, 222, 210, 198, 221, 211, 201, 221, 211, 201, 219, 209, 200, 219, 209, 200, 219, 209, 200, 219, 209, 200, 219, 209, 199, 219, 209, 199, 221, 209, 197, 221, 209, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 220, 206, 195, 218, 202, 189, 218, 200, 186, 216, 198, 184, 215, 197, 183, 215, 197, 183, 217, 199, 185, 219, 201, 187, 221, 203, 189, 216, 200, 187, 216, 200, 187, 217, 201, 188, 217, 201, 188, 215, 201, 190, 216, 202, 191, 216, 202, 191, 216, 202, 191, 218, 202, 189, 218, 202, 189, 217, 203, 190, 217, 203, 190, 218, 204, 193, 219, 205, 194, 220, 206, 197, 220, 206, 197, 219, 206, 197, 219, 206, 197, 219, 207, 195, 219, 207, 195, 219, 207, 193, 219, 207, 193, 217, 208, 193, 217, 208, 193, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 221, 208, 199, 221, 208, 199, 222, 209, 200, 222, 209, 200, 223, 210, 201, 223, 210, 201, 223, 210, 201, 223, 210, 201, 223, 213, 203, 223, 213, 203, 224, 214, 204, 224, 214, 204, 225, 215, 205, 225, 215, 205, 225, 215, 205, 225, 215, 205, 225, 215, 205, 225, 215, 205, 225, 215, 205, 225, 215, 205, 225, 215, 205, 225, 215, 205, 225, 215, 205, 225, 215, 205, 225, 215, 206, 225, 215, 206, 225, 215, 206, 226, 216, 207, 226, 216, 207, 227, 217, 208, 227, 217, 208, 227, 217, 208, 227, 217, 208, 228, 218, 209, 228, 218, 209, 228, 218, 209, 229, 219, 210, 229, 219, 210, 229, 219, 210, 230, 220, 211, 230, 221, 212, 230, 221, 212, 230, 221, 212, 230, 221, 212, 230, 223, 213, 230, 223, 213, 231, 224, 216, 231, 224, 216, 232, 225, 217, 232, 225, 217, 230, 225, 219, 231, 226, 220, 231, 226, 220, 231, 226, 220, 232, 227, 221, 232, 227, 221, 231, 228, 223, 231, 228, 223, 232, 229, 224, 232, 229, 224, 232, 229, 224, 233, 230, 225, 233, 230, 225, 233, 230, 225, 232, 229, 224, 233, 230, 225, 233, 230, 225, 233, 230, 225, 234, 231, 226, 234, 231, 226, 234, 231, 226, 235, 232, 227, 235, 232, 225, 235, 232, 225, 235, 232, 227, 236, 233, 228, 236, 233, 228, 237, 234, 229, 235, 234, 229, 235, 234, 229, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 236, 237, 232, 236, 237, 232, 236, 236, 234, 236, 236, 234, 238, 237, 233, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 242, 241, 237, 243, 242, 238, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 253, 252, 250, 252, 251, 250, 252, 251, 250, 252, 251, 249, 251, 250, 249, 251, 250, 249, 251, 250, 248, 250, 249, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 245, 246, 248, 244, 245, 247, 244, 245, 247, 243, 244, 246, 242, 243, 245, 241, 242, 244, 241, 242, 244, 241, 242, 244, 242, 243, 245, 239, 240, 242, 237, 238, 240, 236, 237, 239, 237, 238, 240, 237, 238, 240, 234, 235, 237, 230, 234, 235, 226, 230, 233, 223, 228, 231, 220, 225, 228, 219, 224, 227, 219, 224, 227, 218, 223, 226, 215, 220, 223, 213, 218, 221, 214, 218, 221, 211, 215, 218, 207, 211, 214, 204, 208, 211, 203, 207, 210, 200, 204, 207, 198, 199, 203, 195, 196, 198, 187, 188, 190, 185, 185, 187, 180, 180, 182, 175, 175, 175, 170, 170, 170, 167, 167, 167, 167, 165, 166, 167, 166, 164, 161, 157, 156, 160, 156, 155, 160, 154, 154, 157, 151, 151, 154, 148, 148, 150, 144, 144, 148, 139, 140, 146, 137, 138, 141, 131, 130, 139, 129, 128, 135, 125, 124, 133, 123, 122, 133, 123, 122, 135, 125, 124, 139, 129, 128, 141, 131, 130, 143, 135, 133, 144, 136, 134, 147, 139, 137, 151, 143, 141, 153, 148, 145, 157, 152, 149, 160, 155, 152, 161, 156, 153, 161, 156, 153, 161, 156, 153, 162, 157, 154, 162, 157, 154, 163, 155, 153, 161, 153, 151, 160, 152, 150, 159, 151, 149, 163, 153, 152, 164, 154, 153, 165, 155, 154, 166, 156, 155, 168, 158, 157, 169, 159, 158, 171, 161, 160, 170, 162, 160, 171, 163, 161, 172, 167, 164, 177, 169, 167, 178, 170, 168, 179, 171, 168, 181, 173, 170, 184, 176, 173, 186, 178, 175, 183, 178, 175, 187, 181, 181, 190, 186, 187, 191, 189, 190, 193, 193, 195, 198, 198, 200, 202, 203, 207, 207, 208, 212, 212, 215, 220, 216, 219, 224, 222, 225, 230, 227, 230, 235, 229, 232, 237, 233, 236, 241, 236, 239, 244, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 247, 251, 254, 247, 251, 254, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 245, 246, 248, 245, 246, 248, 245, 246, 248, 245, 246, 248, 245, 246, 248, 245, 246, 248, 245, 246, 248, 245, 246, 248, 246, 247, 249, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 249, 246, 247, 249, 245, 246, 250, 244, 245, 249, 244, 245, 249, 243, 244, 248, 242, 243, 245, 241, 242, 244, 241, 242, 244, 240, 241, 243, 240, 242, 241, 240, 242, 241, 240, 242, 241, 239, 241, 240, 239, 241, 240, 239, 241, 240, 238, 240, 239, 238, 240, 239, 238, 240, 237, 238, 240, 237, 238, 240, 237, 238, 240, 237, 238, 240, 237, 238, 240, 237, 238, 240, 237, 238, 240, 237, 239, 241, 238, 239, 241, 238, 239, 241, 238, 240, 242, 239, 240, 242, 239, 240, 242, 239, 241, 243, 240, 241, 243, 240, 240, 240, 238, 240, 240, 238, 240, 240, 238, 239, 239, 237, 239, 239, 237, 239, 239, 237, 238, 238, 236, 238, 238, 236, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 249, 249, 247, 244, 244, 242, 239, 239, 237, 239, 239, 237, 242, 242, 240, 243, 243, 241, 240, 240, 238, 237, 237, 235, 240, 240, 238, 242, 242, 240, 243, 243, 241, 244, 244, 242, 244, 244, 242, 242, 242, 240, 240, 240, 238, 238, 238, 236, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 239, 239, 237, 239, 239, 237, 240, 240, 238, 241, 241, 239, 241, 241, 239, 240, 240, 238, 239, 239, 237, 239, 239, 237, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 239, 238, 234, 239, 238, 234, 239, 238, 234, 238, 237, 233, 237, 236, 232, 237, 236, 232, 237, 236, 232, 236, 235, 231, 236, 235, 231, 236, 235, 231, 235, 234, 230, 235, 234, 230, 236, 233, 228, 235, 232, 227, 235, 232, 227, 235, 232, 227, 234, 231, 226, 234, 231, 226, 235, 230, 224, 234, 229, 223, 234, 229, 223, 233, 228, 222, 233, 229, 220, 232, 228, 219, 233, 226, 218, 232, 225, 217, 232, 225, 217, 232, 225, 217, 231, 224, 214, 231, 224, 214, 230, 223, 213, 230, 223, 213, 229, 222, 212, 228, 221, 211, 227, 220, 210, 227, 220, 210, 226, 217, 208, 226, 217, 208, 226, 217, 208, 226, 217, 208, 225, 216, 207, 225, 216, 207, 226, 216, 207, 225, 215, 206, 224, 214, 205, 224, 214, 205, 223, 213, 203, 223, 213, 203, 222, 212, 202, 222, 212, 202, 224, 211, 202, 224, 211, 202, 224, 212, 200, 224, 212, 200, 223, 211, 199, 222, 210, 198, 221, 207, 196, 218, 204, 193, 216, 202, 189, 214, 200, 187, 218, 202, 187, 217, 201, 186, 214, 200, 187, 216, 202, 189, 219, 207, 195, 222, 210, 198, 221, 211, 201, 221, 211, 201, 219, 209, 200, 219, 209, 200, 219, 209, 200, 219, 209, 200, 219, 209, 199, 219, 209, 199, 221, 209, 197, 221, 209, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 220, 206, 195, 218, 202, 189, 218, 200, 186, 216, 198, 184, 215, 197, 183, 216, 198, 184, 217, 199, 185, 220, 202, 188, 221, 203, 189, 216, 200, 187, 216, 200, 187, 217, 201, 188, 217, 201, 188, 215, 201, 190, 216, 202, 191, 216, 202, 191, 216, 202, 191, 218, 202, 189, 218, 202, 189, 217, 203, 190, 217, 203, 190, 218, 204, 193, 219, 205, 194, 220, 206, 197, 220, 206, 197, 219, 206, 197, 219, 206, 197, 219, 207, 195, 219, 207, 195, 219, 207, 193, 219, 207, 193, 217, 208, 193, 217, 208, 193, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 221, 208, 199, 221, 208, 199, 222, 209, 200, 222, 209, 200, 223, 210, 201, 223, 210, 201, 223, 210, 201, 223, 210, 201, 223, 213, 203, 224, 214, 204, 224, 214, 204, 224, 214, 204, 225, 215, 205, 225, 215, 205, 225, 215, 205, 226, 216, 206, 225, 215, 205, 225, 215, 205, 225, 215, 205, 225, 215, 205, 225, 215, 205, 225, 215, 205, 225, 215, 205, 225, 215, 205, 225, 215, 206, 225, 215, 206, 225, 215, 206, 226, 216, 207, 226, 216, 207, 227, 217, 208, 227, 217, 208, 227, 217, 208, 227, 217, 208, 228, 218, 209, 228, 218, 209, 228, 218, 209, 229, 219, 210, 229, 219, 210, 229, 219, 210, 230, 220, 211, 230, 221, 212, 230, 221, 212, 230, 221, 212, 230, 221, 212, 230, 223, 213, 230, 223, 213, 231, 224, 216, 231, 224, 216, 232, 225, 217, 232, 225, 217, 230, 225, 219, 231, 226, 220, 231, 226, 220, 231, 226, 220, 232, 227, 221, 232, 227, 221, 231, 228, 223, 231, 228, 223, 232, 229, 224, 232, 229, 224, 232, 229, 224, 233, 230, 225, 233, 230, 225, 233, 230, 225, 232, 229, 224, 233, 230, 225, 233, 230, 225, 233, 230, 225, 234, 231, 226, 234, 231, 226, 234, 231, 226, 235, 232, 227, 235, 232, 225, 235, 232, 225, 235, 232, 227, 236, 233, 228, 236, 233, 228, 237, 234, 229, 235, 234, 229, 235, 234, 229, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 236, 237, 232, 236, 237, 232, 236, 236, 234, 236, 236, 234, 238, 237, 233, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 242, 241, 237, 243, 242, 238, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 253, 252, 250, 252, 251, 250, 252, 251, 250, 252, 251, 249, 251, 250, 249, 251, 250, 249, 251, 250, 248, 250, 249, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 245, 246, 248, 244, 245, 247, 244, 245, 247, 243, 244, 246, 242, 243, 245, 241, 242, 244, 241, 242, 244, 241, 242, 244, 241, 242, 244, 238, 239, 241, 236, 237, 239, 236, 237, 239, 236, 237, 239, 236, 237, 239, 234, 235, 237, 230, 234, 235, 229, 233, 236, 226, 231, 234, 223, 228, 231, 223, 228, 231, 223, 228, 231, 222, 227, 230, 220, 225, 228, 217, 222, 225, 220, 224, 227, 216, 220, 223, 211, 215, 218, 208, 212, 215, 205, 209, 212, 201, 205, 208, 198, 199, 203, 195, 196, 200, 186, 187, 189, 183, 184, 186, 178, 178, 180, 173, 173, 175, 168, 168, 168, 165, 165, 165, 165, 163, 164, 165, 163, 164, 164, 160, 159, 163, 159, 158, 162, 156, 156, 160, 154, 154, 156, 150, 150, 152, 146, 146, 150, 141, 142, 148, 139, 140, 140, 130, 129, 138, 128, 127, 134, 124, 123, 131, 121, 120, 131, 121, 120, 134, 124, 123, 138, 128, 127, 140, 130, 129, 142, 134, 132, 143, 135, 133, 146, 138, 136, 150, 142, 140, 152, 147, 144, 156, 151, 148, 159, 154, 151, 161, 156, 153, 161, 156, 153, 161, 156, 153, 162, 157, 154, 162, 157, 154, 163, 155, 153, 162, 154, 152, 160, 152, 150, 159, 151, 149, 163, 153, 152, 164, 154, 153, 165, 155, 154, 167, 157, 156, 168, 158, 157, 170, 160, 159, 171, 161, 160, 172, 162, 161, 171, 163, 161, 172, 167, 164, 177, 169, 167, 178, 170, 168, 179, 171, 168, 180, 172, 169, 184, 176, 173, 186, 178, 175, 182, 177, 174, 185, 180, 177, 188, 184, 183, 189, 187, 188, 192, 190, 193, 195, 195, 197, 200, 201, 205, 205, 206, 210, 211, 214, 219, 215, 218, 223, 221, 224, 229, 225, 228, 233, 228, 231, 236, 232, 235, 240, 236, 239, 244, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 247, 251, 254, 247, 251, 254, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 249, 246, 247, 249, 245, 246, 250, 245, 246, 250, 244, 245, 249, 244, 245, 249, 243, 244, 246, 242, 243, 245, 241, 242, 244, 241, 242, 244, 239, 241, 240, 239, 241, 240, 239, 241, 240, 239, 241, 240, 239, 241, 240, 239, 241, 240, 239, 241, 240, 239, 241, 240, 238, 240, 237, 238, 240, 237, 238, 240, 237, 238, 240, 237, 238, 240, 237, 238, 240, 237, 238, 240, 237, 238, 240, 237, 242, 244, 241, 242, 244, 241, 241, 243, 240, 241, 243, 240, 241, 243, 240, 240, 242, 239, 240, 242, 239, 240, 242, 239, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 243, 243, 241, 241, 241, 239, 240, 240, 238, 239, 239, 237, 239, 239, 237, 241, 241, 239, 243, 243, 241, 245, 245, 243, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 241, 241, 239, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 242, 242, 240, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 241, 241, 239, 240, 240, 238, 240, 240, 238, 241, 240, 236, 241, 240, 236, 240, 239, 235, 240, 239, 235, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 237, 236, 232, 237, 236, 232, 237, 236, 232, 236, 235, 231, 236, 235, 231, 236, 235, 231, 235, 234, 230, 235, 234, 230, 235, 234, 230, 235, 234, 230, 234, 233, 228, 233, 232, 227, 235, 232, 227, 234, 231, 226, 233, 230, 225, 233, 230, 225, 232, 229, 222, 232, 229, 222, 233, 228, 222, 232, 227, 221, 232, 227, 221, 232, 227, 221, 231, 227, 218, 231, 227, 218, 230, 226, 217, 230, 226, 217, 229, 225, 216, 228, 224, 215, 229, 222, 214, 229, 222, 214, 228, 221, 213, 228, 221, 213, 228, 221, 213, 228, 221, 213, 228, 219, 212, 228, 219, 212, 227, 218, 211, 226, 217, 210, 225, 216, 209, 225, 216, 209, 224, 214, 205, 224, 214, 205, 224, 214, 204, 223, 213, 203, 223, 213, 203, 223, 213, 203, 224, 211, 202, 224, 211, 202, 223, 211, 199, 223, 211, 199, 222, 210, 198, 221, 209, 197, 220, 206, 195, 219, 205, 194, 218, 204, 191, 218, 204, 191, 218, 202, 187, 217, 201, 186, 213, 199, 186, 215, 201, 188, 218, 206, 194, 221, 209, 197, 219, 209, 199, 219, 209, 199, 220, 210, 201, 220, 210, 201, 219, 209, 200, 219, 209, 200, 219, 209, 199, 218, 208, 198, 220, 208, 196, 220, 208, 196, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 219, 206, 197, 220, 207, 198, 220, 207, 198, 219, 206, 197, 219, 206, 197, 219, 206, 197, 218, 205, 196, 218, 205, 196, 219, 205, 194, 218, 202, 189, 218, 200, 186, 216, 198, 184, 214, 196, 182, 213, 195, 181, 214, 196, 182, 216, 198, 184, 217, 199, 185, 219, 203, 190, 219, 203, 190, 219, 203, 190, 219, 203, 190, 217, 203, 192, 217, 203, 192, 217, 203, 192, 217, 203, 192, 219, 203, 190, 219, 203, 190, 217, 203, 190, 218, 204, 191, 218, 204, 193, 219, 205, 194, 219, 205, 196, 219, 205, 196, 219, 206, 197, 219, 206, 197, 219, 207, 195, 219, 207, 195, 219, 207, 193, 219, 207, 193, 217, 208, 193, 217, 208, 193, 220, 207, 198, 220, 207, 198, 220, 207, 198, 220, 207, 198, 220, 207, 198, 220, 207, 198, 220, 207, 198, 220, 207, 198, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 223, 210, 201, 223, 210, 201, 223, 210, 201, 224, 211, 202, 224, 211, 202, 224, 211, 202, 223, 213, 203, 222, 214, 203, 222, 214, 203, 223, 215, 204, 223, 215, 204, 223, 215, 204, 224, 216, 205, 224, 216, 205, 224, 216, 205, 224, 216, 205, 224, 216, 205, 224, 216, 205, 225, 217, 206, 225, 217, 206, 225, 217, 206, 226, 218, 207, 227, 217, 208, 227, 217, 208, 227, 217, 208, 227, 217, 208, 227, 217, 208, 227, 217, 208, 227, 217, 208, 227, 217, 208, 228, 218, 209, 228, 218, 209, 228, 218, 209, 229, 219, 210, 229, 219, 210, 229, 219, 210, 230, 220, 211, 230, 220, 211, 229, 220, 211, 229, 220, 211, 230, 221, 212, 230, 221, 212, 229, 222, 212, 230, 223, 213, 230, 223, 215, 230, 223, 215, 232, 225, 217, 232, 225, 217, 230, 225, 219, 231, 226, 220, 231, 226, 220, 231, 226, 220, 232, 227, 221, 232, 227, 221, 231, 228, 223, 231, 228, 223, 232, 229, 224, 232, 229, 224, 232, 229, 224, 233, 230, 225, 233, 230, 225, 233, 230, 225, 234, 231, 226, 234, 231, 226, 234, 231, 226, 235, 232, 227, 235, 232, 227, 235, 232, 227, 236, 233, 228, 236, 233, 228, 235, 232, 225, 235, 232, 225, 236, 233, 228, 236, 233, 228, 236, 233, 228, 237, 234, 229, 235, 234, 229, 235, 234, 229, 237, 236, 232, 237, 236, 232, 237, 236, 232, 238, 237, 233, 237, 238, 233, 237, 238, 233, 238, 238, 236, 238, 238, 236, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 239, 238, 234, 240, 239, 235, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 242, 241, 237, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 250, 252, 251, 250, 252, 251, 250, 252, 251, 249, 251, 250, 249, 251, 250, 249, 251, 250, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 247, 248, 250, 246, 247, 249, 246, 247, 249, 245, 246, 248, 244, 245, 247, 243, 244, 246, 243, 244, 246, 242, 243, 245, 238, 239, 241, 238, 239, 241, 238, 239, 241, 237, 238, 240, 235, 236, 238, 233, 234, 236, 231, 232, 234, 228, 232, 233, 228, 232, 235, 226, 231, 234, 225, 230, 233, 224, 229, 232, 223, 228, 231, 221, 226, 229, 220, 225, 228, 220, 225, 228, 215, 219, 222, 214, 218, 221, 212, 216, 219, 208, 212, 215, 203, 207, 210, 199, 203, 206, 196, 197, 201, 194, 195, 199, 187, 188, 190, 184, 185, 187, 179, 180, 182, 176, 177, 179, 174, 174, 176, 171, 171, 173, 167, 165, 166, 163, 161, 162, 164, 160, 161, 162, 158, 159, 159, 155, 156, 157, 153, 154, 158, 152, 152, 156, 150, 150, 153, 147, 147, 152, 143, 144, 149, 139, 138, 146, 136, 135, 141, 131, 130, 137, 127, 126, 135, 125, 124, 135, 125, 124, 137, 127, 126, 138, 128, 127, 138, 130, 128, 139, 131, 129, 143, 135, 133, 147, 139, 137, 150, 145, 142, 154, 149, 146, 157, 152, 149, 159, 154, 151, 161, 156, 153, 162, 157, 154, 162, 157, 154, 162, 157, 154, 163, 155, 153, 161, 153, 151, 160, 152, 150, 159, 151, 149, 162, 152, 151, 163, 153, 152, 164, 154, 153, 166, 156, 155, 168, 158, 157, 170, 160, 159, 171, 161, 160, 172, 162, 161, 172, 164, 162, 173, 165, 163, 174, 166, 163, 176, 168, 165, 178, 170, 167, 180, 172, 169, 182, 174, 171, 182, 174, 171, 181, 176, 173, 183, 178, 175, 186, 182, 181, 187, 185, 186, 190, 188, 191, 193, 193, 195, 197, 198, 202, 202, 203, 207, 210, 213, 218, 214, 217, 222, 220, 223, 228, 224, 227, 232, 226, 229, 234, 229, 232, 237, 233, 236, 241, 235, 238, 243, 236, 239, 244, 237, 240, 245, 239, 242, 247, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 240, 243, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 249, 246, 247, 249, 245, 246, 250, 245, 246, 250, 244, 245, 249, 244, 245, 249, 243, 244, 246, 242, 243, 245, 241, 242, 244, 241, 242, 244, 239, 241, 240, 239, 241, 240, 239, 241, 240, 239, 241, 240, 239, 241, 240, 239, 241, 240, 239, 241, 240, 239, 241, 240, 239, 241, 238, 239, 241, 238, 239, 241, 238, 239, 241, 238, 239, 241, 238, 239, 241, 238, 239, 241, 238, 239, 241, 238, 242, 244, 241, 242, 244, 241, 241, 243, 240, 241, 243, 240, 241, 243, 240, 240, 242, 239, 240, 242, 239, 240, 242, 239, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 243, 243, 241, 241, 241, 239, 240, 240, 238, 239, 239, 237, 240, 240, 238, 241, 241, 239, 243, 243, 241, 245, 245, 243, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 241, 241, 239, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 242, 242, 240, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 241, 241, 239, 240, 240, 238, 240, 240, 238, 241, 240, 236, 241, 240, 236, 240, 239, 235, 240, 239, 235, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 237, 236, 232, 237, 236, 232, 237, 236, 232, 236, 235, 231, 236, 235, 231, 236, 235, 231, 235, 234, 230, 235, 234, 230, 235, 234, 230, 235, 234, 230, 234, 233, 228, 234, 233, 228, 235, 232, 227, 234, 231, 226, 233, 230, 225, 233, 230, 225, 232, 229, 222, 232, 229, 222, 233, 228, 222, 233, 228, 222, 232, 227, 221, 232, 227, 221, 231, 227, 218, 231, 227, 218, 230, 226, 217, 230, 226, 217, 229, 225, 216, 228, 224, 215, 230, 223, 215, 229, 222, 214, 228, 221, 213, 228, 221, 213, 228, 221, 213, 228, 221, 213, 228, 219, 212, 228, 219, 212, 227, 218, 211, 226, 217, 210, 225, 216, 209, 225, 216, 209, 225, 215, 206, 225, 215, 206, 224, 214, 204, 224, 214, 204, 223, 213, 203, 223, 213, 203, 225, 212, 203, 225, 212, 203, 223, 211, 199, 223, 211, 199, 222, 210, 198, 221, 209, 197, 221, 207, 196, 219, 205, 194, 219, 205, 192, 218, 204, 191, 219, 203, 188, 217, 201, 186, 214, 200, 187, 215, 201, 188, 218, 206, 194, 221, 209, 197, 219, 209, 199, 219, 209, 199, 220, 210, 201, 220, 210, 201, 219, 209, 200, 219, 209, 200, 219, 209, 199, 218, 208, 198, 220, 208, 196, 220, 208, 196, 220, 207, 198, 220, 207, 198, 220, 207, 198, 220, 207, 198, 220, 207, 198, 220, 207, 198, 220, 207, 198, 220, 207, 198, 220, 207, 198, 220, 207, 198, 220, 207, 198, 219, 206, 197, 219, 206, 197, 218, 205, 196, 218, 205, 196, 219, 205, 194, 218, 202, 189, 218, 200, 186, 216, 198, 184, 214, 196, 182, 214, 196, 182, 215, 197, 183, 216, 198, 184, 217, 199, 185, 219, 203, 190, 219, 203, 190, 219, 203, 190, 219, 203, 190, 217, 203, 192, 217, 203, 192, 217, 203, 192, 217, 203, 192, 219, 203, 190, 219, 203, 190, 218, 204, 191, 218, 204, 191, 218, 204, 193, 219, 205, 194, 219, 205, 196, 219, 205, 196, 219, 206, 197, 219, 206, 197, 219, 207, 195, 219, 207, 195, 219, 207, 193, 219, 207, 193, 217, 208, 193, 217, 208, 193, 220, 207, 198, 220, 207, 198, 220, 207, 198, 220, 207, 198, 220, 207, 198, 220, 207, 198, 220, 207, 198, 220, 207, 198, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 223, 210, 201, 223, 210, 201, 224, 211, 202, 224, 211, 202, 224, 211, 202, 222, 212, 202, 223, 213, 203, 222, 214, 203, 222, 214, 203, 223, 215, 204, 223, 215, 204, 223, 215, 204, 224, 216, 205, 224, 216, 205, 224, 216, 205, 224, 216, 205, 224, 216, 205, 225, 217, 206, 225, 217, 206, 225, 217, 206, 226, 218, 207, 226, 218, 207, 227, 217, 208, 227, 217, 208, 227, 217, 208, 227, 217, 208, 227, 217, 208, 227, 217, 208, 227, 217, 208, 227, 217, 208, 228, 218, 209, 228, 218, 209, 228, 218, 209, 229, 219, 210, 229, 219, 210, 229, 219, 210, 230, 220, 211, 230, 220, 211, 229, 220, 211, 229, 220, 211, 230, 221, 212, 230, 221, 212, 230, 223, 213, 230, 223, 213, 230, 223, 215, 230, 223, 215, 232, 225, 217, 232, 225, 217, 230, 225, 219, 231, 226, 220, 231, 226, 220, 231, 226, 220, 232, 227, 221, 232, 227, 221, 231, 228, 223, 231, 228, 223, 232, 229, 224, 232, 229, 224, 232, 229, 224, 233, 230, 225, 233, 230, 225, 233, 230, 225, 234, 231, 226, 234, 231, 226, 234, 231, 226, 235, 232, 227, 235, 232, 227, 235, 232, 227, 236, 233, 228, 236, 233, 228, 235, 232, 225, 235, 232, 225, 236, 233, 228, 236, 233, 228, 237, 234, 229, 237, 234, 229, 235, 234, 229, 235, 234, 229, 237, 236, 232, 237, 236, 232, 237, 236, 232, 238, 237, 233, 237, 238, 233, 237, 238, 233, 238, 238, 236, 238, 238, 236, 238, 237, 233, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 242, 241, 237, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 250, 252, 251, 250, 252, 251, 250, 252, 251, 249, 251, 250, 249, 251, 250, 249, 251, 250, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 247, 248, 250, 246, 247, 249, 246, 247, 249, 245, 246, 248, 244, 245, 247, 243, 244, 246, 243, 244, 246, 242, 243, 245, 241, 242, 244, 241, 242, 244, 240, 241, 243, 239, 240, 242, 238, 239, 241, 236, 237, 239, 233, 234, 236, 230, 234, 235, 227, 231, 234, 225, 230, 233, 223, 228, 231, 220, 225, 228, 217, 222, 225, 215, 220, 223, 213, 218, 221, 212, 217, 220, 211, 215, 218, 210, 214, 217, 208, 212, 215, 204, 208, 211, 200, 204, 207, 195, 199, 202, 193, 194, 198, 190, 191, 195, 186, 187, 189, 183, 184, 186, 178, 179, 181, 175, 176, 178, 173, 173, 175, 170, 170, 172, 166, 164, 165, 163, 161, 162, 164, 160, 161, 162, 158, 159, 158, 154, 155, 157, 153, 154, 157, 151, 151, 156, 150, 150, 152, 146, 146, 152, 143, 144, 149, 139, 138, 146, 136, 135, 142, 132, 131, 139, 129, 128, 137, 127, 126, 137, 127, 126, 138, 128, 127, 139, 129, 128, 138, 130, 128, 139, 131, 129, 142, 134, 132, 146, 138, 136, 149, 144, 141, 153, 148, 145, 156, 151, 148, 157, 152, 149, 160, 155, 152, 160, 155, 152, 161, 156, 153, 161, 156, 153, 162, 154, 152, 161, 153, 151, 159, 151, 149, 158, 150, 148, 161, 151, 150, 162, 152, 151, 163, 153, 152, 165, 155, 154, 167, 157, 156, 169, 159, 158, 170, 160, 159, 171, 161, 160, 172, 164, 162, 173, 165, 163, 174, 166, 163, 176, 168, 165, 178, 170, 167, 180, 172, 169, 182, 174, 171, 183, 175, 172, 182, 174, 172, 183, 178, 175, 186, 182, 181, 188, 184, 183, 189, 187, 188, 192, 192, 194, 197, 196, 201, 201, 202, 206, 207, 210, 215, 211, 214, 219, 216, 219, 224, 221, 224, 229, 223, 226, 231, 226, 229, 234, 230, 233, 238, 233, 236, 241, 235, 238, 243, 236, 239, 244, 238, 241, 246, 240, 243, 248, 241, 244, 249, 241, 244, 249, 240, 243, 248, 240, 243, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 249, 246, 247, 249, 245, 246, 250, 245, 246, 250, 244, 245, 249, 244, 245, 249, 243, 244, 246, 242, 243, 245, 241, 242, 244, 241, 242, 244, 240, 242, 241, 240, 242, 241, 240, 242, 241, 240, 242, 241, 240, 242, 241, 240, 242, 241, 240, 242, 241, 240, 242, 241, 239, 241, 238, 239, 241, 238, 239, 241, 238, 239, 241, 238, 239, 241, 238, 239, 241, 238, 239, 241, 238, 239, 241, 238, 242, 244, 241, 242, 244, 241, 241, 243, 240, 241, 243, 240, 241, 243, 240, 240, 242, 239, 240, 242, 239, 240, 242, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 242, 242, 240, 241, 241, 239, 241, 241, 239, 240, 240, 238, 241, 241, 239, 242, 242, 240, 243, 243, 241, 244, 244, 242, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 242, 242, 240, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 241, 241, 239, 240, 240, 238, 240, 240, 238, 241, 240, 238, 241, 240, 238, 240, 239, 237, 240, 239, 237, 239, 238, 236, 239, 238, 236, 239, 238, 236, 239, 238, 236, 238, 237, 235, 237, 236, 234, 237, 236, 234, 237, 236, 234, 236, 235, 233, 236, 235, 233, 236, 235, 233, 235, 234, 232, 235, 234, 230, 235, 234, 230, 235, 234, 230, 234, 233, 229, 233, 232, 227, 232, 231, 226, 234, 231, 226, 233, 230, 225, 233, 230, 225, 233, 230, 225, 232, 229, 222, 232, 229, 222, 232, 227, 221, 232, 227, 221, 232, 227, 221, 232, 227, 221, 230, 226, 217, 230, 226, 217, 229, 225, 216, 229, 225, 216, 228, 224, 215, 227, 223, 214, 229, 222, 214, 228, 221, 213, 229, 222, 214, 228, 221, 213, 228, 221, 213, 227, 220, 212, 227, 218, 211, 226, 217, 210, 226, 217, 210, 225, 216, 209, 225, 215, 206, 225, 215, 206, 225, 215, 205, 224, 214, 204, 224, 214, 204, 224, 214, 204, 225, 212, 203, 225, 212, 203, 224, 212, 200, 223, 211, 199, 222, 210, 198, 221, 209, 197, 221, 207, 196, 220, 206, 195, 219, 205, 192, 218, 204, 191, 219, 203, 188, 217, 201, 186, 214, 200, 187, 215, 201, 188, 218, 206, 194, 221, 209, 197, 220, 210, 200, 219, 209, 199, 220, 210, 201, 220, 210, 201, 220, 210, 201, 219, 209, 200, 219, 209, 199, 219, 209, 199, 220, 208, 196, 220, 208, 196, 220, 207, 198, 220, 207, 198, 220, 207, 198, 220, 207, 198, 220, 207, 198, 220, 207, 198, 220, 207, 198, 220, 207, 198, 220, 207, 198, 220, 207, 198, 220, 207, 198, 219, 206, 197, 219, 206, 197, 219, 206, 197, 218, 205, 196, 219, 205, 194, 219, 203, 190, 218, 200, 186, 216, 198, 184, 214, 196, 182, 214, 196, 182, 215, 197, 183, 216, 198, 184, 218, 200, 186, 219, 203, 190, 219, 203, 190, 219, 203, 190, 219, 203, 190, 217, 203, 192, 217, 203, 192, 217, 203, 192, 217, 203, 192, 219, 203, 190, 220, 204, 191, 218, 204, 191, 218, 204, 191, 219, 205, 194, 219, 205, 194, 219, 205, 196, 219, 205, 196, 219, 206, 197, 219, 206, 197, 219, 207, 195, 219, 207, 195, 219, 207, 193, 219, 207, 193, 217, 208, 193, 217, 208, 193, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 223, 210, 201, 223, 210, 201, 223, 210, 201, 223, 210, 201, 224, 211, 202, 224, 211, 202, 225, 212, 203, 223, 213, 203, 223, 213, 204, 222, 213, 204, 223, 214, 205, 223, 214, 205, 223, 214, 205, 224, 215, 206, 224, 215, 206, 224, 215, 206, 224, 215, 206, 224, 215, 206, 224, 215, 206, 225, 216, 207, 225, 216, 207, 226, 217, 208, 226, 217, 208, 226, 217, 208, 227, 217, 208, 227, 217, 208, 227, 217, 208, 227, 217, 208, 227, 217, 208, 227, 217, 208, 227, 217, 208, 227, 217, 208, 228, 218, 209, 228, 218, 209, 229, 219, 210, 229, 219, 210, 229, 219, 210, 230, 220, 211, 230, 220, 211, 230, 220, 211, 230, 221, 212, 230, 221, 212, 230, 221, 212, 230, 221, 212, 230, 223, 213, 230, 223, 213, 231, 224, 216, 231, 224, 216, 232, 225, 217, 232, 225, 217, 230, 225, 219, 231, 226, 220, 231, 226, 220, 231, 226, 220, 232, 227, 221, 232, 227, 221, 231, 228, 223, 231, 228, 223, 232, 229, 224, 232, 229, 224, 232, 229, 224, 233, 230, 225, 233, 230, 225, 233, 230, 225, 234, 231, 226, 234, 231, 226, 234, 231, 226, 235, 232, 227, 235, 232, 227, 235, 232, 227, 236, 233, 228, 236, 233, 228, 236, 233, 226, 236, 233, 226, 236, 233, 228, 236, 233, 228, 237, 234, 229, 237, 234, 229, 236, 235, 230, 236, 235, 230, 237, 236, 232, 237, 236, 232, 237, 236, 232, 238, 237, 233, 237, 238, 233, 237, 238, 233, 238, 238, 236, 238, 238, 236, 238, 237, 233, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 242, 241, 237, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 253, 252, 250, 252, 251, 250, 252, 251, 250, 252, 251, 249, 251, 250, 249, 251, 250, 249, 251, 250, 248, 250, 249, 249, 251, 250, 249, 251, 250, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 248, 250, 246, 247, 249, 246, 247, 249, 245, 246, 248, 244, 245, 247, 243, 244, 246, 243, 244, 246, 242, 243, 245, 243, 244, 246, 243, 244, 246, 243, 244, 246, 242, 243, 245, 240, 241, 243, 238, 239, 241, 236, 237, 239, 233, 237, 238, 229, 233, 236, 227, 232, 235, 224, 229, 232, 220, 225, 228, 217, 221, 224, 213, 217, 220, 210, 214, 217, 209, 213, 216, 207, 211, 214, 206, 210, 213, 206, 207, 211, 203, 204, 208, 199, 200, 204, 194, 195, 199, 190, 191, 195, 188, 189, 193, 186, 187, 189, 183, 184, 186, 179, 179, 181, 176, 176, 178, 173, 173, 173, 170, 170, 170, 166, 164, 165, 162, 160, 161, 165, 161, 162, 162, 158, 159, 159, 153, 153, 157, 151, 151, 157, 151, 151, 155, 149, 149, 153, 144, 145, 150, 141, 142, 149, 139, 138, 147, 137, 136, 144, 134, 133, 141, 131, 130, 139, 129, 128, 139, 129, 128, 140, 130, 129, 141, 131, 130, 137, 129, 127, 139, 131, 129, 142, 134, 132, 145, 137, 135, 147, 142, 139, 151, 146, 143, 154, 149, 146, 155, 150, 147, 158, 153, 150, 158, 153, 150, 159, 154, 151, 159, 154, 151, 161, 153, 151, 160, 152, 150, 158, 150, 148, 157, 149, 147, 159, 149, 148, 160, 150, 149, 162, 152, 151, 163, 153, 152, 166, 156, 155, 167, 157, 156, 169, 159, 158, 170, 160, 159, 172, 164, 161, 173, 165, 162, 175, 167, 164, 176, 168, 165, 180, 170, 168, 181, 171, 169, 183, 173, 171, 183, 175, 172, 182, 174, 171, 182, 177, 174, 185, 181, 180, 187, 183, 182, 188, 186, 187, 190, 190, 190, 196, 196, 198, 199, 200, 204, 202, 205, 210, 207, 210, 215, 213, 216, 221, 217, 220, 225, 220, 223, 228, 223, 226, 231, 227, 230, 235, 230, 233, 238, 234, 237, 242, 235, 238, 243, 237, 240, 245, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 249, 246, 247, 249, 245, 246, 250, 245, 246, 250, 244, 245, 249, 244, 245, 249, 243, 244, 246, 242, 243, 245, 241, 242, 244, 241, 242, 244, 240, 242, 241, 240, 242, 241, 240, 242, 241, 240, 242, 241, 240, 242, 241, 240, 242, 241, 240, 242, 241, 240, 242, 241, 239, 241, 238, 239, 241, 238, 239, 241, 238, 239, 241, 238, 239, 241, 238, 239, 241, 238, 239, 241, 238, 239, 241, 238, 242, 244, 241, 242, 244, 241, 241, 243, 240, 241, 243, 240, 241, 243, 240, 240, 242, 239, 240, 242, 239, 240, 242, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 242, 242, 240, 241, 241, 239, 241, 241, 239, 241, 241, 239, 242, 242, 240, 243, 243, 241, 243, 243, 241, 244, 244, 242, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 242, 242, 240, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 241, 241, 239, 240, 240, 238, 240, 240, 238, 241, 240, 238, 241, 240, 238, 240, 239, 237, 240, 239, 237, 239, 238, 236, 239, 238, 236, 239, 238, 236, 239, 238, 236, 238, 237, 235, 238, 237, 235, 237, 236, 234, 237, 236, 234, 237, 236, 234, 236, 235, 233, 236, 235, 233, 236, 235, 233, 236, 235, 231, 236, 235, 231, 235, 234, 230, 234, 233, 229, 233, 232, 227, 233, 232, 227, 234, 231, 226, 234, 231, 226, 233, 230, 225, 233, 230, 225, 233, 230, 223, 232, 229, 222, 233, 228, 222, 232, 227, 221, 232, 227, 221, 232, 227, 221, 231, 227, 218, 230, 226, 217, 230, 226, 217, 229, 225, 216, 228, 224, 215, 227, 223, 214, 229, 222, 214, 229, 222, 214, 229, 222, 214, 229, 222, 214, 228, 221, 213, 227, 220, 212, 227, 218, 211, 227, 218, 211, 226, 217, 210, 226, 217, 210, 226, 216, 207, 226, 216, 207, 226, 216, 206, 225, 215, 205, 225, 215, 205, 224, 214, 204, 226, 213, 204, 226, 213, 204, 224, 212, 200, 224, 212, 200, 223, 211, 199, 222, 210, 198, 221, 207, 196, 220, 206, 195, 219, 205, 192, 219, 205, 192, 219, 203, 188, 217, 201, 186, 214, 200, 187, 216, 202, 189, 218, 206, 194, 221, 209, 197, 220, 210, 200, 220, 210, 200, 221, 211, 202, 220, 210, 201, 220, 210, 201, 220, 210, 201, 219, 209, 199, 219, 209, 199, 221, 209, 197, 220, 208, 196, 220, 207, 198, 220, 207, 198, 220, 207, 198, 220, 207, 198, 220, 207, 198, 220, 207, 198, 220, 207, 198, 220, 207, 198, 221, 208, 199, 221, 208, 199, 220, 207, 198, 220, 207, 198, 219, 206, 197, 219, 206, 197, 219, 206, 197, 220, 206, 195, 219, 203, 190, 219, 201, 187, 216, 198, 184, 215, 197, 183, 214, 196, 182, 215, 197, 183, 217, 199, 185, 218, 200, 186, 220, 204, 191, 220, 204, 191, 220, 204, 191, 220, 204, 191, 218, 204, 193, 218, 204, 193, 218, 204, 193, 218, 204, 193, 220, 204, 191, 220, 204, 191, 218, 204, 191, 219, 205, 192, 219, 205, 194, 219, 205, 194, 220, 206, 197, 220, 206, 197, 220, 207, 198, 220, 207, 198, 220, 208, 196, 220, 208, 196, 220, 208, 194, 220, 208, 194, 218, 209, 194, 218, 209, 194, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 223, 210, 201, 223, 210, 201, 223, 210, 201, 223, 210, 201, 223, 210, 201, 223, 210, 201, 223, 210, 201, 223, 210, 201, 223, 210, 201, 223, 210, 201, 223, 210, 201, 224, 211, 202, 224, 211, 202, 225, 212, 203, 225, 212, 203, 223, 213, 203, 223, 213, 204, 223, 214, 205, 223, 214, 205, 223, 214, 205, 224, 215, 206, 224, 215, 206, 224, 215, 206, 225, 216, 207, 224, 215, 206, 225, 216, 207, 225, 216, 207, 225, 216, 207, 226, 217, 208, 226, 217, 208, 226, 217, 208, 226, 217, 208, 228, 218, 209, 228, 218, 209, 228, 218, 209, 228, 218, 209, 228, 218, 209, 228, 218, 209, 228, 218, 209, 228, 218, 209, 228, 218, 209, 229, 219, 210, 229, 219, 210, 229, 219, 210, 230, 220, 211, 230, 220, 211, 230, 220, 211, 231, 221, 212, 230, 221, 212, 230, 221, 212, 230, 221, 212, 231, 222, 213, 230, 223, 213, 231, 224, 214, 231, 224, 216, 231, 224, 216, 232, 225, 217, 232, 225, 217, 230, 225, 219, 231, 226, 220, 231, 226, 220, 231, 226, 220, 232, 227, 221, 232, 227, 221, 231, 228, 223, 231, 228, 223, 232, 229, 224, 232, 229, 224, 232, 229, 224, 233, 230, 225, 233, 230, 225, 233, 230, 225, 234, 231, 226, 234, 231, 226, 234, 231, 226, 235, 232, 227, 235, 232, 227, 235, 232, 227, 236, 233, 228, 236, 233, 228, 236, 233, 226, 236, 233, 226, 236, 233, 228, 237, 234, 229, 237, 234, 229, 238, 235, 230, 236, 235, 230, 236, 235, 230, 237, 236, 232, 237, 236, 232, 237, 236, 232, 238, 237, 233, 237, 238, 233, 237, 238, 233, 238, 238, 236, 238, 238, 236, 238, 237, 233, 239, 238, 234, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 242, 241, 237, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 253, 252, 251, 253, 252, 250, 252, 251, 250, 252, 251, 250, 252, 251, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 248, 250, 246, 247, 249, 246, 247, 249, 245, 246, 248, 244, 245, 247, 243, 244, 246, 243, 244, 246, 242, 243, 245, 243, 244, 246, 243, 244, 246, 243, 244, 246, 242, 243, 245, 240, 241, 243, 238, 239, 241, 236, 237, 239, 234, 235, 237, 233, 237, 240, 231, 236, 239, 228, 233, 236, 224, 229, 232, 221, 225, 228, 218, 222, 225, 215, 219, 222, 213, 217, 220, 208, 212, 215, 207, 211, 214, 207, 208, 212, 204, 205, 209, 200, 201, 205, 196, 197, 201, 192, 193, 197, 190, 191, 193, 188, 189, 191, 184, 185, 187, 181, 181, 183, 177, 177, 179, 175, 175, 175, 171, 171, 171, 168, 166, 167, 164, 162, 163, 165, 161, 162, 161, 157, 158, 159, 153, 153, 157, 151, 151, 156, 150, 150, 153, 147, 147, 152, 143, 144, 149, 140, 141, 149, 139, 138, 148, 138, 137, 145, 135, 134, 143, 133, 132, 142, 132, 131, 141, 131, 130, 142, 132, 131, 142, 132, 131, 138, 130, 128, 139, 131, 129, 142, 134, 132, 145, 137, 135, 146, 141, 138, 149, 144, 141, 151, 146, 143, 152, 147, 144, 156, 151, 148, 156, 151, 148, 157, 152, 149, 158, 153, 150, 159, 151, 149, 159, 151, 149, 157, 149, 147, 157, 149, 147, 158, 148, 147, 159, 149, 148, 160, 150, 149, 162, 152, 151, 164, 154, 153, 166, 156, 155, 167, 157, 156, 168, 158, 157, 172, 164, 161, 173, 165, 162, 174, 166, 163, 176, 168, 165, 179, 169, 167, 181, 171, 169, 182, 172, 170, 183, 173, 171, 181, 173, 170, 184, 176, 173, 185, 179, 179, 186, 182, 181, 186, 184, 185, 189, 187, 188, 193, 193, 195, 196, 197, 199, 202, 203, 208, 204, 207, 212, 210, 213, 218, 215, 218, 223, 218, 221, 226, 222, 225, 230, 226, 229, 234, 229, 232, 237, 232, 235, 240, 233, 236, 241, 235, 238, 243, 237, 240, 245, 239, 242, 247, 239, 242, 247, 240, 243, 248, 239, 242, 247, 241, 245, 248, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 249, 246, 247, 249, 245, 246, 250, 245, 246, 250, 244, 245, 249, 244, 245, 249, 243, 244, 246, 242, 243, 245, 241, 242, 244, 241, 242, 244, 240, 242, 241, 240, 242, 241, 240, 242, 241, 240, 242, 241, 240, 242, 241, 240, 242, 241, 240, 242, 241, 240, 242, 241, 240, 242, 239, 240, 242, 239, 240, 242, 239, 240, 242, 239, 240, 242, 239, 240, 242, 239, 240, 242, 239, 240, 242, 239, 242, 244, 241, 242, 244, 241, 241, 243, 240, 241, 243, 240, 241, 243, 240, 240, 242, 239, 240, 242, 239, 240, 242, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 242, 242, 240, 242, 242, 240, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 242, 242, 240, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 241, 241, 239, 240, 240, 238, 240, 240, 238, 241, 240, 238, 241, 240, 238, 240, 239, 237, 240, 239, 237, 239, 238, 236, 239, 238, 236, 239, 238, 236, 239, 238, 236, 238, 237, 235, 238, 237, 235, 238, 237, 235, 238, 237, 235, 237, 236, 234, 237, 236, 234, 236, 235, 233, 236, 235, 233, 236, 235, 231, 236, 235, 231, 235, 234, 230, 235, 234, 230, 234, 233, 229, 233, 232, 228, 232, 231, 226, 232, 231, 226, 234, 231, 226, 233, 230, 225, 233, 230, 225, 233, 230, 225, 233, 228, 222, 233, 228, 222, 233, 228, 222, 232, 227, 221, 230, 227, 218, 230, 227, 218, 230, 226, 217, 230, 226, 217, 229, 225, 216, 228, 224, 215, 227, 223, 214, 227, 223, 214, 229, 222, 214, 229, 222, 214, 229, 222, 214, 228, 221, 213, 227, 220, 212, 226, 219, 211, 227, 218, 211, 226, 217, 210, 227, 217, 208, 227, 217, 208, 226, 216, 206, 226, 216, 206, 226, 216, 206, 225, 215, 205, 227, 214, 205, 227, 214, 205, 224, 212, 200, 224, 212, 200, 223, 211, 199, 222, 210, 198, 222, 208, 197, 221, 207, 196, 220, 206, 193, 219, 205, 192, 220, 204, 189, 218, 202, 187, 215, 201, 188, 216, 202, 189, 219, 207, 195, 222, 210, 198, 221, 211, 201, 220, 210, 200, 221, 211, 202, 221, 211, 202, 221, 211, 202, 220, 210, 201, 220, 210, 200, 219, 209, 199, 221, 209, 197, 221, 209, 197, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 220, 207, 198, 220, 207, 198, 220, 207, 198, 219, 206, 197, 220, 206, 195, 220, 204, 191, 219, 201, 187, 217, 199, 185, 215, 197, 183, 215, 197, 183, 216, 198, 184, 217, 199, 185, 218, 200, 186, 220, 204, 191, 220, 204, 191, 220, 204, 191, 220, 204, 191, 218, 204, 193, 218, 204, 193, 218, 204, 193, 218, 204, 193, 220, 204, 191, 220, 204, 191, 219, 205, 192, 219, 205, 192, 219, 205, 194, 220, 206, 195, 220, 206, 197, 220, 206, 197, 220, 207, 198, 220, 207, 198, 220, 208, 196, 220, 208, 196, 220, 208, 194, 220, 208, 194, 218, 209, 194, 218, 209, 194, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 223, 210, 201, 223, 210, 201, 223, 210, 201, 223, 210, 201, 223, 210, 201, 223, 210, 201, 223, 210, 201, 223, 210, 201, 223, 210, 201, 224, 211, 202, 224, 211, 202, 224, 211, 202, 225, 212, 203, 225, 212, 203, 225, 212, 203, 224, 214, 204, 224, 214, 205, 223, 214, 205, 223, 214, 205, 224, 215, 206, 224, 215, 206, 225, 216, 207, 225, 216, 207, 225, 216, 207, 225, 216, 207, 225, 216, 207, 225, 216, 207, 226, 217, 208, 226, 217, 208, 226, 217, 208, 227, 218, 209, 227, 218, 209, 228, 218, 209, 228, 218, 209, 228, 218, 209, 228, 218, 209, 228, 218, 209, 228, 218, 209, 228, 218, 209, 228, 218, 209, 229, 219, 210, 229, 219, 210, 229, 219, 210, 230, 220, 211, 230, 220, 211, 231, 221, 212, 231, 221, 212, 231, 221, 212, 230, 221, 212, 231, 222, 213, 231, 222, 213, 231, 222, 213, 231, 224, 214, 231, 224, 214, 231, 224, 216, 232, 225, 217, 232, 225, 217, 232, 225, 217, 230, 225, 219, 231, 226, 220, 231, 226, 220, 231, 226, 220, 232, 227, 221, 232, 227, 221, 231, 228, 223, 231, 228, 223, 232, 229, 224, 232, 229, 224, 232, 229, 224, 233, 230, 225, 233, 230, 225, 233, 230, 225, 234, 231, 226, 234, 231, 226, 234, 231, 226, 235, 232, 227, 235, 232, 227, 235, 232, 227, 236, 233, 228, 236, 233, 228, 236, 233, 226, 237, 234, 227, 237, 234, 229, 237, 234, 229, 238, 235, 230, 238, 235, 230, 236, 235, 230, 237, 236, 231, 237, 236, 232, 237, 236, 232, 237, 236, 232, 238, 237, 233, 237, 238, 233, 237, 238, 233, 238, 238, 236, 238, 238, 236, 239, 238, 234, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 242, 241, 237, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 253, 252, 251, 253, 252, 251, 253, 252, 251, 253, 252, 250, 252, 251, 250, 252, 251, 249, 251, 250, 249, 251, 250, 250, 252, 251, 249, 251, 250, 249, 251, 250, 249, 251, 250, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 248, 250, 246, 247, 249, 246, 247, 249, 245, 246, 248, 244, 245, 247, 243, 244, 246, 243, 244, 246, 242, 243, 245, 241, 242, 244, 241, 242, 244, 241, 242, 244, 240, 241, 243, 238, 239, 241, 236, 237, 239, 234, 235, 237, 232, 233, 235, 232, 236, 237, 231, 235, 236, 229, 233, 234, 226, 230, 231, 225, 226, 228, 223, 224, 226, 221, 222, 224, 220, 221, 223, 212, 213, 215, 211, 212, 214, 211, 211, 213, 208, 208, 210, 205, 205, 207, 201, 201, 203, 197, 197, 199, 195, 195, 197, 191, 191, 193, 188, 188, 188, 183, 183, 183, 180, 180, 180, 178, 176, 177, 175, 173, 174, 172, 168, 167, 169, 165, 164, 166, 160, 160, 162, 156, 156, 159, 153, 153, 156, 150, 150, 157, 149, 147, 154, 146, 144, 150, 142, 140, 147, 139, 137, 148, 138, 137, 147, 137, 136, 146, 136, 135, 145, 135, 134, 143, 133, 132, 143, 133, 132, 143, 133, 132, 143, 133, 132, 139, 131, 129, 140, 132, 130, 142, 134, 132, 145, 137, 135, 145, 140, 137, 147, 142, 139, 149, 144, 141, 150, 145, 142, 154, 149, 146, 155, 150, 147, 156, 151, 148, 156, 151, 148, 159, 151, 149, 158, 150, 148, 157, 149, 147, 157, 149, 147, 157, 147, 146, 158, 148, 147, 159, 149, 148, 161, 151, 150, 163, 153, 152, 165, 155, 154, 167, 157, 156, 167, 157, 156, 171, 163, 160, 171, 163, 160, 174, 164, 162, 176, 166, 164, 178, 169, 164, 180, 171, 166, 181, 172, 167, 182, 173, 168, 180, 172, 169, 183, 175, 172, 184, 178, 178, 185, 181, 180, 184, 182, 183, 187, 185, 186, 191, 191, 193, 194, 195, 197, 200, 201, 206, 203, 206, 211, 209, 212, 217, 214, 217, 222, 217, 220, 225, 221, 224, 229, 226, 229, 234, 229, 232, 237, 230, 233, 238, 231, 234, 239, 233, 236, 241, 236, 239, 244, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 249, 246, 247, 249, 245, 246, 250, 245, 246, 250, 244, 245, 249, 244, 245, 249, 243, 244, 246, 242, 243, 245, 241, 242, 244, 241, 242, 244, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 240, 242, 239, 240, 242, 239, 240, 242, 239, 240, 242, 239, 240, 242, 239, 240, 242, 239, 240, 242, 239, 240, 242, 239, 242, 244, 241, 242, 244, 241, 241, 243, 240, 241, 243, 240, 241, 243, 240, 240, 242, 239, 240, 242, 239, 240, 242, 239, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 240, 240, 238, 241, 241, 239, 243, 243, 241, 244, 244, 242, 245, 245, 243, 244, 244, 242, 243, 243, 241, 243, 243, 241, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 241, 241, 239, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 241, 241, 239, 240, 240, 238, 240, 240, 238, 241, 240, 238, 241, 240, 238, 240, 239, 237, 240, 239, 237, 239, 238, 236, 239, 238, 236, 239, 238, 236, 239, 238, 236, 239, 238, 236, 239, 238, 236, 238, 237, 235, 238, 237, 235, 238, 237, 235, 237, 236, 234, 237, 236, 234, 237, 236, 234, 237, 236, 232, 236, 235, 231, 236, 235, 231, 235, 234, 230, 234, 233, 229, 233, 232, 228, 233, 232, 227, 233, 232, 227, 234, 231, 226, 234, 231, 226, 233, 230, 225, 233, 230, 225, 234, 229, 223, 233, 228, 222, 233, 228, 222, 233, 228, 222, 231, 228, 219, 230, 227, 218, 231, 227, 218, 230, 226, 217, 229, 225, 216, 228, 224, 215, 228, 224, 215, 227, 223, 214, 230, 223, 215, 229, 222, 214, 229, 222, 214, 228, 221, 213, 227, 220, 212, 227, 220, 212, 227, 218, 211, 227, 218, 211, 228, 218, 209, 227, 217, 208, 227, 217, 207, 227, 217, 207, 226, 216, 206, 226, 216, 206, 228, 215, 206, 228, 215, 206, 225, 213, 201, 224, 212, 200, 223, 211, 199, 222, 210, 198, 222, 208, 197, 221, 207, 196, 220, 206, 193, 220, 206, 193, 220, 204, 189, 218, 202, 187, 215, 201, 188, 217, 203, 190, 219, 207, 195, 222, 210, 198, 221, 211, 201, 220, 210, 200, 221, 211, 202, 221, 211, 202, 221, 211, 202, 221, 211, 202, 220, 210, 200, 220, 210, 200, 221, 209, 197, 221, 209, 197, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 222, 209, 200, 221, 208, 199, 221, 208, 199, 221, 208, 199, 220, 207, 198, 220, 207, 198, 220, 207, 198, 220, 206, 195, 220, 204, 191, 219, 201, 187, 217, 199, 185, 216, 198, 184, 215, 197, 183, 216, 198, 184, 218, 200, 186, 219, 201, 187, 220, 204, 191, 220, 204, 191, 220, 204, 191, 220, 204, 191, 218, 204, 193, 218, 204, 193, 218, 204, 193, 218, 204, 193, 221, 205, 192, 221, 205, 192, 219, 205, 192, 219, 205, 192, 220, 206, 195, 220, 206, 195, 220, 206, 197, 221, 207, 198, 220, 207, 198, 220, 207, 198, 220, 208, 196, 220, 208, 196, 220, 208, 194, 220, 208, 194, 218, 209, 194, 218, 209, 194, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 224, 211, 202, 224, 211, 202, 224, 211, 202, 224, 211, 202, 224, 211, 202, 224, 211, 202, 224, 211, 202, 224, 211, 202, 224, 211, 202, 224, 211, 202, 224, 211, 202, 225, 212, 203, 225, 212, 203, 225, 212, 203, 226, 213, 204, 224, 214, 204, 224, 214, 205, 223, 214, 205, 224, 215, 206, 224, 215, 206, 225, 216, 207, 225, 216, 207, 225, 216, 207, 225, 216, 207, 225, 216, 207, 225, 216, 207, 226, 217, 208, 226, 217, 208, 226, 217, 208, 227, 218, 209, 227, 218, 209, 227, 218, 209, 228, 218, 209, 228, 218, 209, 228, 218, 209, 228, 218, 209, 228, 218, 209, 228, 218, 209, 228, 218, 209, 228, 218, 209, 229, 219, 210, 229, 219, 210, 230, 220, 211, 230, 220, 211, 231, 221, 212, 231, 221, 212, 231, 221, 212, 231, 221, 212, 231, 222, 213, 231, 222, 213, 231, 222, 213, 232, 223, 214, 231, 224, 214, 231, 224, 214, 232, 225, 217, 232, 225, 217, 232, 225, 217, 232, 225, 217, 230, 225, 219, 231, 226, 220, 231, 226, 220, 231, 226, 220, 232, 227, 221, 232, 227, 221, 231, 228, 223, 231, 228, 223, 232, 229, 224, 232, 229, 224, 232, 229, 224, 233, 230, 225, 233, 230, 225, 233, 230, 225, 234, 231, 226, 234, 231, 226, 234, 231, 226, 235, 232, 227, 235, 232, 227, 235, 232, 227, 236, 233, 228, 236, 233, 228, 237, 234, 227, 237, 234, 227, 237, 234, 229, 238, 235, 230, 238, 235, 230, 238, 235, 230, 237, 236, 231, 237, 236, 231, 237, 236, 232, 237, 236, 232, 237, 236, 232, 238, 237, 233, 237, 238, 233, 237, 238, 233, 238, 238, 236, 238, 238, 236, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 242, 241, 237, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 254, 253, 252, 254, 253, 251, 253, 252, 251, 253, 252, 251, 253, 252, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 249, 251, 250, 249, 251, 250, 249, 251, 250, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 248, 250, 246, 247, 249, 246, 247, 249, 245, 246, 248, 244, 245, 247, 243, 244, 246, 243, 244, 246, 242, 243, 245, 239, 240, 242, 239, 240, 242, 239, 240, 242, 238, 239, 241, 237, 238, 240, 234, 235, 237, 232, 233, 235, 231, 232, 234, 227, 231, 232, 227, 231, 232, 225, 229, 230, 222, 226, 227, 222, 223, 225, 220, 221, 223, 218, 219, 221, 217, 218, 220, 213, 214, 216, 212, 213, 215, 212, 212, 214, 209, 209, 211, 206, 206, 208, 202, 202, 204, 199, 199, 201, 197, 197, 199, 192, 192, 192, 188, 188, 188, 184, 184, 184, 180, 180, 180, 179, 177, 178, 175, 173, 174, 173, 169, 168, 169, 165, 164, 166, 160, 160, 162, 156, 156, 158, 152, 152, 155, 149, 149, 156, 148, 146, 153, 145, 143, 149, 141, 139, 146, 138, 136, 146, 136, 135, 146, 136, 135, 146, 136, 135, 145, 135, 134, 145, 135, 134, 144, 134, 133, 143, 133, 132, 143, 133, 132, 141, 133, 131, 142, 134, 132, 143, 135, 133, 145, 137, 135, 145, 140, 137, 147, 142, 139, 148, 143, 140, 149, 144, 141, 153, 148, 145, 154, 149, 146, 155, 150, 147, 156, 151, 148, 159, 151, 149, 159, 151, 149, 158, 150, 148, 157, 149, 147, 157, 147, 146, 158, 148, 147, 159, 149, 148, 161, 151, 150, 163, 153, 152, 165, 155, 154, 167, 157, 156, 167, 157, 156, 169, 161, 158, 170, 162, 159, 172, 162, 160, 174, 164, 162, 176, 167, 162, 178, 169, 164, 179, 170, 165, 180, 171, 166, 179, 171, 168, 182, 174, 171, 183, 178, 175, 183, 179, 178, 184, 180, 181, 185, 183, 184, 189, 189, 191, 192, 193, 195, 197, 198, 203, 200, 203, 208, 206, 209, 214, 212, 215, 220, 216, 219, 224, 220, 223, 228, 224, 227, 232, 228, 231, 236, 228, 231, 236, 229, 232, 237, 232, 235, 240, 235, 238, 243, 237, 240, 245, 238, 241, 246, 239, 242, 247, 239, 242, 247, 240, 244, 247, 240, 244, 247, 241, 245, 248, 241, 245, 248, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 249, 246, 247, 249, 245, 246, 250, 245, 246, 250, 244, 245, 249, 244, 245, 249, 243, 244, 246, 242, 243, 245, 241, 242, 244, 241, 242, 244, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 240, 242, 239, 240, 242, 239, 240, 242, 239, 240, 242, 239, 240, 242, 239, 240, 242, 239, 240, 242, 239, 240, 242, 239, 242, 244, 241, 242, 244, 241, 241, 243, 240, 241, 243, 240, 241, 243, 240, 240, 242, 239, 240, 242, 239, 240, 242, 239, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 240, 240, 238, 241, 241, 239, 244, 244, 242, 245, 245, 243, 246, 246, 244, 245, 245, 243, 243, 243, 241, 242, 242, 240, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 241, 241, 239, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 241, 241, 239, 240, 240, 238, 240, 240, 238, 241, 240, 238, 241, 240, 238, 240, 239, 237, 240, 239, 237, 239, 238, 236, 239, 238, 236, 239, 238, 236, 239, 238, 236, 239, 238, 236, 239, 238, 236, 239, 238, 236, 238, 237, 235, 238, 237, 235, 237, 236, 234, 237, 236, 234, 237, 236, 234, 236, 237, 232, 236, 237, 232, 236, 235, 231, 235, 234, 230, 234, 233, 229, 234, 233, 229, 233, 232, 227, 233, 232, 227, 234, 231, 226, 234, 231, 226, 234, 231, 226, 233, 230, 225, 233, 230, 223, 233, 230, 223, 233, 228, 222, 233, 228, 222, 231, 228, 219, 231, 228, 219, 230, 227, 218, 229, 226, 217, 229, 225, 216, 229, 225, 216, 228, 224, 215, 228, 224, 215, 230, 223, 215, 230, 223, 215, 229, 222, 214, 228, 221, 213, 228, 221, 213, 227, 220, 212, 226, 219, 211, 227, 218, 211, 228, 218, 209, 228, 218, 209, 228, 218, 208, 227, 217, 207, 227, 217, 207, 227, 217, 207, 228, 215, 206, 228, 215, 206, 225, 213, 201, 225, 213, 201, 224, 212, 200, 223, 211, 199, 222, 208, 197, 221, 207, 196, 220, 206, 193, 220, 206, 193, 220, 204, 189, 218, 202, 187, 215, 201, 188, 217, 203, 190, 220, 208, 196, 222, 210, 198, 221, 211, 201, 221, 211, 201, 222, 212, 203, 222, 212, 203, 221, 211, 202, 221, 211, 202, 220, 210, 200, 220, 210, 200, 222, 210, 198, 222, 210, 198, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 221, 208, 199, 222, 209, 200, 222, 209, 200, 221, 208, 199, 221, 208, 199, 221, 208, 199, 220, 207, 198, 220, 207, 198, 221, 207, 196, 220, 204, 191, 220, 202, 188, 218, 200, 186, 216, 198, 184, 215, 197, 183, 216, 198, 184, 218, 200, 186, 219, 201, 187, 221, 205, 192, 221, 205, 192, 221, 205, 192, 221, 205, 192, 219, 205, 194, 219, 205, 194, 219, 205, 194, 219, 205, 194, 221, 205, 192, 221, 205, 192, 219, 205, 192, 220, 206, 193, 220, 206, 195, 220, 206, 195, 221, 207, 198, 221, 207, 198, 221, 208, 199, 221, 208, 199, 221, 209, 197, 221, 209, 197, 221, 209, 195, 221, 209, 195, 219, 210, 195, 219, 210, 195, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 224, 211, 202, 224, 211, 202, 224, 211, 202, 224, 211, 202, 224, 211, 202, 224, 211, 202, 224, 211, 202, 224, 211, 202, 224, 211, 202, 224, 211, 202, 225, 212, 203, 225, 212, 203, 225, 212, 203, 226, 213, 204, 226, 213, 204, 224, 214, 204, 225, 215, 206, 224, 215, 206, 224, 215, 206, 224, 215, 206, 225, 216, 207, 225, 216, 207, 226, 217, 208, 226, 217, 208, 225, 216, 207, 226, 217, 208, 226, 217, 208, 226, 217, 208, 227, 218, 209, 227, 218, 209, 227, 218, 209, 228, 219, 210, 229, 219, 210, 229, 219, 210, 229, 219, 210, 229, 219, 210, 229, 219, 210, 229, 219, 210, 229, 219, 210, 229, 219, 210, 230, 220, 211, 230, 220, 211, 230, 220, 211, 230, 220, 211, 231, 221, 212, 231, 221, 212, 232, 222, 213, 232, 222, 213, 231, 222, 213, 231, 222, 213, 232, 223, 214, 232, 223, 214, 231, 224, 214, 232, 225, 215, 232, 225, 217, 232, 225, 217, 232, 225, 217, 232, 225, 217, 230, 225, 219, 231, 226, 220, 231, 226, 220, 231, 226, 220, 232, 227, 221, 232, 227, 221, 231, 228, 223, 231, 228, 223, 232, 229, 224, 232, 229, 224, 232, 229, 224, 233, 230, 225, 233, 230, 225, 233, 230, 225, 234, 231, 226, 234, 231, 226, 234, 231, 226, 235, 232, 227, 235, 232, 227, 235, 232, 227, 236, 233, 228, 236, 233, 228, 237, 234, 227, 237, 234, 227, 238, 235, 230, 238, 235, 230, 238, 235, 230, 239, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 232, 237, 236, 232, 237, 236, 232, 238, 237, 233, 237, 238, 233, 237, 238, 233, 238, 238, 236, 238, 238, 236, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 242, 241, 237, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 254, 253, 252, 254, 253, 252, 254, 253, 251, 253, 252, 251, 253, 252, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 249, 251, 250, 249, 251, 250, 249, 251, 250, 248, 250, 249, 248, 250, 249, 247, 248, 250, 246, 247, 249, 246, 247, 249, 245, 246, 248, 244, 245, 247, 243, 244, 246, 243, 244, 246, 242, 243, 245, 240, 241, 243, 240, 241, 243, 240, 241, 243, 239, 240, 242, 237, 238, 240, 235, 236, 238, 233, 234, 236, 232, 233, 235, 230, 231, 233, 229, 230, 232, 226, 227, 229, 223, 224, 226, 219, 220, 222, 215, 216, 218, 214, 214, 216, 212, 212, 214, 210, 210, 212, 209, 209, 211, 208, 208, 210, 206, 206, 208, 204, 202, 205, 201, 199, 202, 198, 196, 199, 196, 194, 197, 191, 189, 190, 187, 185, 186, 183, 181, 182, 179, 177, 178, 177, 176, 174, 173, 172, 170, 171, 167, 166, 167, 163, 162, 166, 161, 158, 162, 157, 154, 160, 152, 150, 157, 149, 147, 155, 147, 145, 152, 144, 142, 149, 139, 138, 145, 135, 134, 145, 135, 134, 145, 135, 134, 146, 136, 135, 146, 136, 135, 145, 135, 134, 144, 134, 133, 143, 133, 132, 142, 132, 131, 143, 135, 133, 144, 136, 134, 145, 137, 135, 146, 138, 136, 145, 140, 137, 147, 142, 139, 148, 143, 140, 148, 143, 140, 153, 148, 145, 154, 149, 146, 155, 150, 147, 156, 151, 148, 159, 151, 149, 159, 151, 149, 159, 151, 149, 158, 150, 148, 157, 147, 146, 158, 148, 147, 160, 150, 149, 161, 151, 150, 164, 154, 153, 165, 155, 154, 167, 157, 156, 168, 158, 157, 167, 159, 156, 168, 160, 157, 170, 161, 156, 172, 163, 158, 174, 165, 160, 176, 167, 162, 178, 169, 164, 178, 169, 164, 179, 171, 168, 181, 173, 170, 182, 177, 174, 182, 178, 177, 183, 179, 180, 184, 182, 183, 187, 187, 189, 190, 191, 193, 193, 194, 199, 196, 199, 204, 203, 206, 211, 208, 211, 216, 212, 215, 220, 217, 220, 225, 221, 224, 229, 225, 228, 233, 226, 229, 234, 228, 231, 236, 231, 234, 239, 234, 237, 242, 236, 239, 244, 237, 240, 245, 238, 241, 246, 238, 241, 246, 240, 244, 247, 240, 244, 247, 240, 244, 247, 241, 245, 248, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 249, 246, 247, 249, 245, 246, 250, 245, 246, 250, 244, 245, 249, 244, 245, 249, 243, 244, 246, 242, 243, 245, 241, 242, 244, 241, 242, 244, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 241, 243, 240, 242, 244, 241, 242, 244, 241, 241, 243, 240, 241, 243, 240, 241, 243, 240, 240, 242, 239, 240, 242, 239, 240, 242, 239, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 240, 240, 238, 241, 241, 239, 244, 244, 242, 246, 246, 244, 246, 246, 244, 245, 245, 243, 243, 243, 241, 242, 242, 240, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 241, 241, 239, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 241, 241, 239, 240, 240, 238, 240, 240, 238, 241, 240, 238, 241, 240, 238, 240, 239, 237, 240, 239, 237, 239, 238, 236, 239, 238, 236, 239, 238, 236, 239, 238, 236, 239, 238, 236, 239, 238, 236, 239, 238, 236, 238, 237, 235, 238, 237, 235, 238, 237, 235, 237, 236, 234, 237, 236, 234, 236, 237, 232, 236, 237, 232, 236, 235, 231, 235, 234, 230, 235, 234, 230, 234, 233, 229, 233, 232, 227, 233, 232, 227, 234, 231, 226, 234, 231, 226, 234, 231, 226, 233, 230, 225, 233, 230, 223, 233, 230, 223, 232, 229, 222, 232, 229, 222, 231, 228, 219, 231, 228, 219, 230, 227, 218, 229, 226, 217, 229, 225, 216, 229, 225, 216, 228, 224, 215, 228, 224, 215, 230, 223, 215, 230, 223, 215, 229, 222, 214, 229, 222, 214, 228, 221, 213, 227, 220, 212, 226, 219, 211, 227, 218, 211, 228, 219, 210, 228, 218, 209, 228, 218, 209, 228, 218, 208, 227, 217, 207, 227, 217, 207, 229, 216, 207, 228, 215, 206, 225, 213, 201, 225, 213, 201, 224, 212, 200, 223, 211, 199, 223, 209, 198, 221, 207, 196, 221, 207, 194, 220, 206, 193, 220, 204, 191, 219, 203, 190, 215, 201, 188, 217, 203, 192, 220, 208, 196, 221, 211, 201, 221, 211, 201, 221, 211, 202, 222, 212, 203, 222, 212, 203, 221, 211, 202, 221, 211, 202, 221, 211, 202, 220, 210, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 221, 208, 199, 221, 208, 199, 221, 208, 199, 220, 207, 198, 220, 207, 198, 220, 208, 196, 220, 204, 191, 220, 202, 188, 218, 200, 186, 216, 198, 184, 216, 198, 184, 216, 198, 184, 218, 200, 186, 219, 201, 187, 221, 205, 192, 221, 205, 192, 221, 205, 192, 219, 205, 192, 219, 205, 194, 219, 205, 194, 219, 205, 194, 219, 205, 194, 219, 205, 194, 219, 205, 192, 219, 205, 194, 219, 207, 195, 220, 206, 195, 220, 208, 196, 221, 207, 198, 220, 207, 198, 221, 208, 199, 221, 208, 199, 221, 209, 197, 221, 209, 197, 221, 209, 197, 221, 209, 195, 219, 209, 197, 219, 209, 197, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 222, 209, 200, 224, 211, 202, 224, 211, 202, 224, 211, 202, 224, 211, 202, 224, 211, 202, 224, 211, 202, 224, 211, 202, 224, 211, 202, 224, 211, 202, 224, 211, 202, 225, 212, 203, 225, 212, 203, 225, 212, 203, 226, 213, 204, 226, 213, 204, 224, 214, 204, 225, 215, 206, 224, 215, 206, 224, 215, 206, 225, 216, 207, 225, 216, 207, 225, 216, 207, 226, 217, 208, 226, 217, 208, 226, 217, 208, 226, 217, 208, 226, 217, 208, 226, 217, 208, 227, 218, 209, 227, 218, 209, 228, 219, 210, 228, 219, 210, 228, 219, 210, 228, 219, 210, 229, 219, 210, 228, 219, 210, 229, 219, 210, 228, 219, 210, 229, 219, 210, 228, 219, 210, 230, 220, 211, 229, 220, 211, 230, 220, 211, 230, 221, 212, 231, 221, 212, 230, 221, 212, 232, 222, 213, 231, 222, 213, 231, 222, 213, 231, 222, 213, 232, 223, 214, 232, 223, 214, 231, 224, 214, 232, 225, 215, 232, 225, 217, 232, 225, 217, 232, 225, 217, 232, 225, 217, 230, 225, 219, 231, 226, 220, 231, 226, 220, 231, 226, 220, 232, 227, 221, 232, 227, 221, 231, 228, 223, 231, 228, 223, 232, 229, 224, 232, 229, 224, 232, 229, 224, 233, 230, 225, 233, 230, 225, 233, 230, 225, 234, 231, 226, 234, 231, 226, 234, 231, 226, 235, 232, 227, 235, 232, 227, 235, 232, 227, 236, 233, 228, 236, 233, 228, 237, 234, 227, 237, 234, 227, 238, 235, 230, 238, 235, 230, 238, 235, 230, 239, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 232, 238, 237, 232, 237, 238, 233, 237, 238, 233, 238, 239, 234, 238, 239, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 242, 241, 237, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 254, 253, 252, 254, 253, 252, 254, 253, 251, 253, 252, 251, 253, 252, 251, 253, 252, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 249, 251, 250, 249, 251, 250, 249, 251, 250, 248, 250, 249, 248, 250, 249, 247, 248, 250, 246, 247, 249, 246, 247, 249, 245, 246, 248, 244, 245, 247, 243, 244, 246, 243, 244, 246, 242, 243, 245, 241, 242, 244, 241, 242, 244, 241, 242, 244, 240, 241, 243, 238, 239, 241, 236, 237, 239, 234, 235, 237, 233, 234, 236, 235, 236, 238, 233, 234, 236, 229, 230, 232, 224, 225, 227, 219, 220, 222, 214, 215, 217, 211, 211, 213, 209, 209, 211, 206, 206, 208, 205, 205, 207, 204, 204, 206, 202, 202, 204, 200, 198, 201, 197, 195, 198, 194, 192, 195, 192, 190, 193, 188, 186, 187, 185, 183, 184, 180, 178, 179, 177, 176, 174, 174, 173, 171, 171, 170, 168, 168, 164, 163, 165, 161, 160, 166, 161, 158, 162, 157, 154, 160, 152, 150, 157, 149, 147, 155, 147, 145, 151, 143, 141, 148, 138, 137, 145, 135, 134, 144, 134, 133, 144, 134, 133, 145, 135, 134, 146, 136, 135, 145, 135, 134, 144, 134, 133, 143, 133, 132, 142, 132, 131, 144, 136, 134, 145, 137, 135, 146, 138, 136, 147, 139, 137, 146, 141, 138, 147, 142, 139, 148, 143, 140, 148, 143, 140, 153, 148, 145, 154, 149, 146, 155, 150, 147, 157, 152, 149, 160, 152, 150, 160, 152, 150, 159, 151, 149, 159, 151, 149, 158, 148, 147, 158, 148, 147, 160, 150, 149, 162, 152, 151, 164, 154, 153, 166, 156, 155, 167, 157, 156, 168, 158, 157, 166, 158, 155, 167, 159, 156, 169, 160, 155, 171, 162, 157, 173, 164, 159, 175, 166, 161, 176, 167, 162, 176, 168, 165, 179, 171, 168, 181, 173, 170, 181, 176, 173, 183, 178, 175, 182, 178, 177, 183, 181, 182, 187, 185, 186, 190, 190, 192, 190, 191, 195, 195, 196, 200, 202, 203, 207, 207, 208, 213, 210, 213, 218, 214, 217, 222, 219, 222, 227, 222, 225, 230, 226, 229, 234, 227, 230, 235, 230, 233, 238, 233, 236, 241, 236, 239, 244, 237, 240, 245, 238, 241, 246, 238, 241, 246, 240, 243, 248, 240, 244, 247, 240, 244, 247, 241, 245, 248, 241, 245, 248, 241, 245, 248, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 244, 245, 249, 244, 245, 247, 244, 245, 247, 243, 244, 246, 243, 244, 246, 243, 245, 244, 243, 245, 244, 243, 245, 244, 242, 244, 243, 242, 244, 243, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 242, 242, 240, 239, 239, 237, 240, 240, 238, 241, 241, 239, 243, 243, 241, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 241, 241, 239, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 238, 238, 236, 238, 238, 236, 238, 238, 236, 237, 237, 235, 237, 237, 235, 236, 236, 234, 236, 236, 234, 236, 236, 234, 237, 236, 234, 236, 235, 233, 236, 235, 231, 236, 235, 231, 235, 234, 230, 235, 234, 230, 235, 234, 230, 234, 233, 229, 234, 233, 228, 234, 233, 228, 234, 233, 228, 233, 232, 227, 232, 231, 226, 231, 230, 225, 231, 231, 223, 232, 229, 222, 232, 229, 220, 231, 228, 219, 232, 228, 219, 232, 228, 219, 231, 227, 218, 231, 227, 218, 231, 227, 218, 231, 227, 218, 231, 224, 216, 231, 224, 216, 230, 223, 215, 229, 222, 214, 228, 221, 213, 228, 221, 213, 228, 219, 212, 228, 219, 212, 229, 220, 213, 228, 219, 210, 228, 219, 210, 227, 218, 209, 226, 217, 208, 225, 216, 207, 226, 216, 206, 225, 215, 205, 227, 215, 203, 226, 214, 202, 227, 213, 202, 225, 211, 200, 224, 210, 197, 223, 209, 196, 224, 208, 195, 224, 208, 195, 220, 206, 193, 218, 204, 193, 217, 203, 192, 218, 204, 193, 221, 208, 199, 222, 212, 203, 222, 212, 203, 221, 212, 205, 221, 212, 205, 221, 212, 205, 221, 212, 205, 221, 212, 203, 222, 212, 203, 222, 212, 203, 222, 212, 203, 222, 212, 203, 220, 210, 201, 220, 210, 201, 220, 210, 201, 220, 210, 201, 220, 210, 201, 220, 210, 201, 220, 210, 201, 220, 210, 201, 220, 210, 201, 220, 210, 201, 219, 209, 200, 219, 209, 200, 219, 209, 200, 218, 208, 199, 218, 208, 199, 220, 207, 198, 219, 205, 194, 220, 204, 191, 218, 202, 187, 216, 200, 185, 217, 199, 185, 218, 200, 186, 219, 202, 186, 220, 203, 187, 221, 205, 190, 221, 205, 190, 219, 205, 192, 220, 206, 193, 220, 206, 195, 219, 207, 195, 220, 207, 198, 220, 207, 198, 219, 206, 197, 219, 207, 195, 219, 206, 197, 217, 207, 197, 219, 206, 197, 217, 207, 197, 219, 206, 197, 217, 207, 197, 218, 208, 198, 218, 208, 198, 219, 209, 199, 219, 209, 199, 220, 210, 200, 220, 210, 198, 220, 210, 200, 220, 210, 200, 220, 210, 200, 220, 210, 200, 220, 210, 200, 220, 210, 200, 221, 211, 201, 221, 211, 201, 221, 211, 201, 222, 212, 202, 222, 212, 202, 222, 212, 202, 222, 212, 202, 222, 212, 202, 222, 212, 202, 222, 212, 202, 222, 212, 202, 222, 212, 202, 222, 212, 202, 222, 212, 202, 223, 213, 203, 223, 213, 203, 223, 213, 203, 224, 214, 204, 224, 214, 204, 224, 214, 204, 223, 213, 203, 223, 213, 203, 223, 213, 203, 224, 214, 204, 224, 214, 204, 224, 214, 204, 225, 215, 205, 225, 215, 205, 225, 215, 206, 225, 215, 206, 225, 215, 206, 225, 215, 206, 226, 216, 207, 226, 216, 207, 226, 216, 207, 227, 217, 208, 227, 217, 208, 228, 218, 209, 228, 218, 209, 228, 218, 209, 229, 219, 210, 229, 219, 210, 229, 219, 210, 229, 220, 211, 228, 219, 210, 227, 220, 210, 228, 219, 210, 227, 220, 210, 228, 219, 210, 227, 220, 210, 228, 219, 210, 227, 220, 210, 229, 220, 211, 228, 221, 211, 229, 220, 211, 228, 221, 211, 230, 221, 212, 229, 222, 212, 230, 221, 212, 230, 223, 213, 230, 223, 215, 231, 224, 216, 231, 224, 216, 231, 224, 216, 232, 225, 217, 232, 225, 217, 230, 226, 217, 231, 227, 218, 231, 226, 220, 231, 226, 220, 231, 226, 220, 231, 226, 220, 231, 228, 223, 231, 228, 223, 231, 228, 223, 232, 229, 224, 232, 229, 222, 233, 230, 223, 233, 230, 223, 233, 230, 223, 234, 231, 224, 234, 231, 224, 234, 231, 226, 235, 232, 227, 233, 230, 225, 233, 230, 225, 234, 231, 226, 234, 231, 226, 235, 231, 228, 235, 231, 228, 235, 231, 228, 235, 232, 227, 234, 234, 226, 235, 235, 227, 235, 235, 227, 235, 235, 227, 236, 236, 228, 236, 236, 228, 236, 236, 228, 237, 237, 229, 236, 236, 228, 236, 236, 228, 237, 236, 231, 237, 237, 229, 238, 237, 232, 238, 237, 232, 238, 237, 232, 238, 237, 232, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 251, 253, 253, 251, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 250, 250, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 246, 248, 247, 245, 247, 246, 245, 247, 246, 244, 246, 245, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 239, 241, 240, 238, 240, 239, 236, 238, 237, 235, 237, 236, 231, 235, 236, 229, 233, 234, 225, 229, 230, 223, 227, 228, 221, 225, 226, 217, 221, 222, 214, 215, 217, 210, 211, 213, 210, 211, 213, 206, 207, 209, 201, 202, 204, 197, 198, 200, 197, 197, 199, 194, 194, 196, 191, 191, 193, 189, 189, 191, 184, 182, 183, 182, 181, 179, 178, 177, 175, 174, 173, 171, 172, 168, 167, 169, 165, 162, 168, 164, 161, 167, 163, 160, 167, 162, 159, 164, 159, 156, 163, 155, 152, 158, 150, 147, 155, 145, 143, 152, 142, 140, 150, 140, 138, 149, 139, 137, 143, 135, 133, 143, 135, 133, 143, 135, 133, 143, 135, 133, 143, 135, 133, 144, 136, 134, 144, 136, 134, 144, 136, 134, 146, 138, 136, 145, 137, 135, 144, 136, 134, 143, 135, 133, 143, 135, 133, 145, 137, 135, 147, 139, 137, 149, 141, 139, 153, 145, 143, 155, 147, 145, 158, 150, 148, 160, 152, 150, 162, 154, 152, 161, 153, 151, 160, 152, 150, 159, 151, 149, 158, 150, 148, 158, 150, 148, 159, 151, 149, 160, 152, 150, 161, 153, 151, 161, 153, 151, 162, 154, 152, 162, 154, 152, 165, 157, 154, 167, 159, 156, 169, 161, 158, 169, 161, 158, 169, 161, 158, 171, 163, 160, 175, 167, 164, 178, 170, 168, 178, 170, 168, 179, 174, 171, 182, 177, 174, 183, 178, 175, 183, 179, 178, 184, 180, 179, 188, 184, 183, 188, 186, 187, 194, 192, 193, 196, 194, 197, 198, 198, 200, 201, 200, 205, 204, 205, 209, 209, 210, 215, 214, 217, 222, 220, 223, 230, 220, 225, 231, 224, 229, 235, 228, 233, 239, 230, 235, 241, 230, 235, 241, 231, 236, 242, 234, 237, 244, 237, 240, 245, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 241, 244, 249, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 249, 252, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 244, 245, 249, 244, 245, 247, 244, 245, 247, 243, 244, 246, 243, 244, 246, 243, 245, 244, 243, 245, 244, 243, 245, 244, 242, 244, 243, 242, 244, 243, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 242, 242, 240, 239, 239, 237, 240, 240, 238, 242, 242, 240, 243, 243, 241, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 241, 241, 239, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 238, 238, 236, 238, 238, 236, 238, 238, 236, 237, 237, 235, 237, 237, 235, 237, 237, 235, 236, 236, 234, 236, 236, 234, 237, 236, 234, 237, 236, 234, 236, 235, 231, 236, 235, 231, 235, 234, 230, 235, 234, 230, 235, 234, 230, 235, 234, 230, 235, 234, 229, 234, 233, 228, 234, 233, 228, 233, 232, 227, 232, 231, 226, 231, 230, 225, 231, 231, 223, 230, 230, 222, 232, 229, 220, 232, 229, 220, 232, 228, 219, 232, 228, 219, 232, 228, 219, 231, 227, 218, 231, 227, 218, 231, 227, 218, 231, 224, 216, 231, 224, 216, 230, 223, 215, 230, 223, 215, 229, 222, 214, 228, 221, 213, 228, 219, 212, 228, 219, 212, 229, 220, 213, 228, 219, 212, 228, 219, 210, 227, 218, 209, 226, 217, 208, 225, 216, 207, 226, 216, 206, 226, 216, 206, 227, 215, 203, 227, 215, 203, 227, 213, 202, 226, 212, 201, 224, 210, 197, 223, 209, 196, 224, 208, 195, 224, 208, 195, 220, 206, 195, 218, 204, 193, 217, 203, 192, 217, 205, 193, 221, 208, 200, 222, 212, 203, 222, 213, 206, 221, 212, 205, 221, 212, 205, 221, 212, 205, 221, 212, 205, 221, 212, 205, 222, 212, 203, 222, 212, 203, 222, 212, 203, 222, 212, 203, 220, 210, 201, 220, 210, 201, 220, 210, 201, 220, 210, 201, 220, 210, 201, 220, 210, 201, 220, 210, 201, 220, 210, 201, 220, 210, 201, 220, 210, 201, 219, 209, 200, 219, 209, 200, 219, 209, 200, 218, 208, 199, 218, 208, 199, 218, 208, 198, 220, 206, 195, 218, 204, 191, 218, 202, 187, 216, 200, 185, 217, 199, 185, 218, 200, 186, 219, 202, 186, 220, 203, 187, 221, 205, 190, 221, 205, 190, 219, 205, 192, 220, 206, 193, 219, 207, 195, 220, 208, 196, 218, 208, 198, 218, 208, 198, 218, 208, 198, 218, 208, 198, 218, 208, 198, 218, 208, 198, 218, 208, 198, 218, 208, 198, 218, 208, 198, 218, 208, 198, 218, 208, 198, 219, 209, 199, 219, 209, 199, 219, 209, 199, 220, 210, 200, 220, 210, 200, 220, 210, 200, 221, 211, 201, 220, 210, 200, 220, 210, 200, 220, 210, 200, 221, 211, 201, 221, 211, 201, 221, 211, 201, 222, 212, 202, 222, 212, 202, 222, 212, 202, 222, 212, 202, 222, 212, 202, 222, 212, 202, 222, 212, 202, 222, 212, 202, 222, 212, 202, 222, 212, 202, 222, 212, 202, 222, 212, 202, 223, 213, 203, 223, 213, 203, 223, 213, 203, 224, 214, 204, 224, 214, 204, 224, 214, 204, 223, 213, 203, 223, 213, 203, 223, 213, 203, 224, 214, 204, 224, 214, 204, 224, 214, 204, 225, 215, 205, 225, 215, 205, 225, 215, 206, 225, 215, 206, 225, 215, 206, 226, 216, 207, 226, 216, 207, 226, 216, 207, 227, 217, 208, 227, 217, 208, 227, 217, 208, 228, 218, 209, 228, 218, 209, 228, 218, 209, 229, 219, 210, 229, 219, 210, 229, 219, 210, 229, 220, 211, 229, 220, 211, 228, 221, 211, 228, 221, 211, 228, 221, 211, 228, 221, 211, 228, 221, 211, 228, 221, 211, 228, 221, 211, 228, 221, 211, 228, 221, 211, 228, 221, 211, 229, 222, 212, 229, 222, 212, 229, 222, 212, 230, 223, 213, 230, 223, 213, 230, 223, 215, 231, 224, 216, 231, 224, 216, 231, 224, 216, 232, 225, 217, 232, 225, 217, 230, 226, 217, 231, 227, 218, 231, 226, 220, 231, 226, 220, 231, 226, 220, 232, 227, 221, 231, 228, 223, 231, 228, 223, 232, 229, 224, 232, 229, 224, 232, 229, 222, 233, 230, 223, 233, 230, 223, 233, 230, 223, 234, 231, 224, 234, 231, 224, 234, 231, 226, 235, 232, 227, 233, 230, 225, 234, 231, 226, 234, 231, 226, 234, 231, 226, 235, 231, 228, 235, 231, 228, 235, 231, 228, 236, 232, 229, 235, 234, 229, 235, 235, 227, 235, 235, 227, 235, 235, 227, 236, 236, 228, 236, 236, 228, 237, 237, 229, 237, 237, 229, 236, 236, 228, 237, 237, 229, 237, 237, 229, 237, 237, 229, 238, 238, 230, 238, 238, 230, 238, 238, 230, 239, 238, 233, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 241, 240, 236, 242, 241, 237, 242, 241, 237, 242, 241, 237, 243, 242, 238, 243, 242, 238, 243, 242, 238, 244, 243, 239, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 251, 253, 253, 251, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 246, 248, 247, 245, 247, 246, 245, 247, 246, 244, 246, 245, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 241, 243, 242, 240, 242, 241, 238, 240, 239, 237, 239, 238, 232, 236, 237, 230, 234, 235, 226, 230, 231, 224, 228, 229, 222, 226, 227, 218, 222, 223, 215, 216, 218, 210, 211, 213, 209, 210, 212, 205, 206, 208, 201, 202, 204, 198, 199, 201, 197, 197, 199, 196, 196, 198, 193, 193, 195, 190, 190, 190, 184, 182, 183, 182, 181, 179, 178, 177, 175, 174, 173, 171, 173, 169, 166, 170, 166, 163, 168, 164, 161, 167, 163, 160, 169, 164, 161, 166, 161, 158, 165, 157, 154, 160, 152, 149, 157, 147, 145, 154, 144, 142, 152, 142, 140, 151, 141, 139, 146, 138, 136, 145, 137, 135, 145, 137, 135, 145, 137, 135, 144, 136, 134, 144, 136, 134, 143, 135, 133, 143, 135, 133, 145, 137, 135, 144, 136, 134, 142, 134, 132, 141, 133, 131, 141, 133, 131, 143, 135, 133, 145, 137, 135, 147, 139, 137, 151, 143, 141, 153, 145, 143, 156, 148, 146, 159, 151, 149, 160, 152, 150, 160, 152, 150, 159, 151, 149, 158, 150, 148, 158, 150, 148, 158, 150, 148, 159, 151, 149, 159, 151, 149, 160, 152, 150, 161, 153, 151, 161, 153, 151, 162, 154, 152, 163, 155, 152, 165, 157, 154, 167, 159, 156, 168, 160, 157, 168, 160, 157, 170, 162, 159, 173, 165, 163, 177, 169, 167, 175, 170, 167, 178, 173, 170, 181, 176, 173, 183, 178, 175, 182, 178, 177, 184, 180, 179, 187, 183, 182, 190, 186, 185, 194, 190, 191, 197, 193, 194, 198, 196, 199, 200, 200, 202, 204, 203, 208, 208, 209, 213, 213, 216, 221, 218, 221, 228, 220, 225, 231, 224, 229, 235, 228, 232, 241, 230, 234, 243, 231, 236, 242, 232, 237, 243, 235, 238, 245, 237, 240, 247, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 241, 244, 249, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 249, 252, 247, 248, 252, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 249, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 244, 245, 247, 244, 245, 247, 244, 245, 247, 243, 244, 246, 243, 245, 244, 243, 245, 244, 243, 245, 244, 242, 244, 243, 242, 244, 243, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 241, 243, 242, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 242, 242, 240, 240, 240, 238, 241, 241, 239, 242, 242, 240, 243, 243, 241, 244, 244, 242, 244, 244, 242, 243, 243, 241, 242, 242, 240, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 241, 241, 239, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 237, 237, 235, 237, 237, 235, 237, 237, 235, 236, 236, 234, 237, 236, 234, 237, 236, 234, 236, 235, 231, 236, 235, 231, 236, 235, 231, 235, 234, 230, 235, 234, 230, 235, 234, 230, 235, 234, 229, 235, 234, 229, 234, 233, 228, 233, 232, 227, 232, 231, 226, 232, 231, 226, 231, 231, 223, 231, 231, 223, 232, 229, 220, 232, 229, 220, 232, 229, 220, 231, 228, 219, 232, 228, 219, 231, 227, 218, 231, 227, 218, 231, 227, 218, 232, 225, 217, 231, 224, 216, 231, 224, 216, 230, 223, 215, 229, 222, 214, 229, 222, 214, 228, 221, 213, 228, 221, 213, 228, 221, 213, 228, 221, 213, 228, 219, 212, 227, 218, 211, 226, 217, 208, 226, 217, 208, 226, 216, 206, 226, 216, 206, 227, 215, 203, 227, 215, 203, 227, 213, 202, 226, 212, 201, 225, 211, 198, 224, 210, 197, 225, 209, 196, 224, 208, 195, 220, 206, 195, 218, 204, 193, 217, 203, 192, 218, 206, 194, 221, 208, 200, 222, 212, 203, 222, 213, 206, 221, 212, 205, 221, 212, 205, 221, 212, 205, 221, 212, 205, 221, 212, 205, 222, 212, 203, 222, 212, 203, 222, 212, 203, 222, 212, 203, 220, 210, 201, 220, 210, 201, 220, 210, 201, 220, 210, 201, 220, 210, 201, 220, 210, 201, 220, 210, 201, 220, 210, 201, 220, 210, 201, 220, 210, 201, 220, 210, 201, 219, 209, 200, 219, 209, 200, 219, 209, 200, 218, 208, 199, 218, 208, 198, 220, 206, 195, 218, 204, 191, 218, 202, 189, 216, 200, 187, 216, 200, 185, 217, 201, 186, 220, 202, 188, 221, 203, 189, 221, 205, 190, 221, 205, 190, 220, 206, 193, 220, 206, 193, 219, 207, 195, 220, 208, 196, 218, 208, 198, 218, 208, 198, 218, 208, 198, 218, 208, 198, 218, 208, 198, 218, 208, 198, 218, 208, 198, 218, 208, 198, 218, 208, 198, 218, 208, 198, 219, 209, 199, 219, 209, 199, 219, 209, 199, 220, 210, 200, 220, 210, 200, 220, 210, 200, 221, 211, 201, 221, 211, 201, 220, 210, 200, 220, 210, 200, 220, 210, 200, 221, 211, 201, 221, 211, 201, 222, 212, 202, 222, 212, 202, 222, 212, 202, 222, 212, 202, 222, 212, 202, 222, 212, 202, 222, 212, 202, 222, 212, 202, 222, 212, 202, 222, 212, 202, 222, 212, 202, 222, 212, 202, 223, 213, 203, 223, 213, 203, 223, 213, 203, 224, 214, 204, 224, 214, 204, 224, 214, 204, 225, 215, 205, 223, 213, 203, 223, 213, 203, 224, 214, 204, 224, 214, 204, 224, 214, 204, 225, 215, 205, 225, 215, 205, 225, 215, 205, 225, 215, 206, 225, 215, 206, 225, 215, 206, 226, 216, 207, 226, 216, 207, 227, 217, 208, 227, 217, 208, 227, 217, 208, 227, 217, 208, 228, 218, 209, 228, 218, 209, 228, 218, 209, 229, 219, 210, 229, 219, 210, 229, 219, 210, 229, 220, 211, 229, 220, 211, 228, 221, 211, 228, 221, 211, 228, 221, 211, 228, 221, 211, 228, 221, 211, 228, 221, 211, 228, 221, 211, 228, 221, 211, 228, 221, 211, 228, 221, 211, 229, 222, 212, 229, 222, 212, 230, 223, 213, 230, 223, 213, 230, 223, 213, 230, 223, 215, 231, 224, 216, 231, 224, 216, 231, 224, 216, 232, 225, 217, 232, 225, 217, 230, 226, 217, 231, 227, 218, 231, 226, 220, 231, 226, 220, 231, 226, 220, 232, 227, 221, 231, 228, 223, 232, 229, 224, 232, 229, 224, 232, 229, 224, 232, 229, 222, 233, 230, 223, 233, 230, 223, 233, 230, 223, 234, 231, 224, 234, 231, 224, 234, 231, 226, 235, 232, 227, 234, 231, 226, 234, 231, 226, 234, 231, 226, 235, 232, 227, 235, 231, 228, 235, 231, 228, 236, 232, 229, 236, 232, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 236, 235, 230, 236, 235, 230, 236, 235, 230, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 238, 237, 232, 238, 237, 232, 238, 237, 232, 239, 238, 233, 239, 238, 233, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 243, 242, 238, 243, 242, 238, 243, 242, 238, 244, 243, 239, 244, 243, 239, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 251, 253, 253, 251, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 246, 248, 247, 245, 247, 246, 245, 247, 246, 244, 246, 245, 245, 247, 246, 245, 247, 246, 245, 247, 246, 244, 246, 245, 243, 245, 244, 241, 243, 242, 239, 241, 240, 238, 240, 239, 234, 238, 239, 231, 235, 236, 228, 232, 233, 225, 229, 230, 223, 227, 228, 219, 223, 224, 216, 217, 219, 212, 213, 215, 208, 209, 211, 204, 205, 207, 200, 201, 203, 198, 199, 201, 199, 199, 201, 198, 198, 200, 195, 195, 197, 193, 193, 193, 186, 184, 185, 184, 183, 181, 181, 180, 178, 177, 176, 174, 175, 171, 168, 172, 168, 165, 170, 166, 163, 170, 166, 163, 171, 166, 163, 169, 164, 161, 168, 160, 157, 163, 155, 152, 161, 151, 149, 158, 148, 146, 156, 146, 144, 155, 145, 143, 150, 142, 140, 149, 141, 139, 148, 140, 138, 147, 139, 137, 145, 137, 135, 144, 136, 134, 143, 135, 133, 142, 134, 132, 143, 135, 133, 142, 134, 132, 140, 132, 130, 139, 131, 129, 139, 131, 129, 140, 132, 130, 142, 134, 132, 144, 136, 134, 149, 141, 139, 151, 143, 141, 154, 146, 144, 157, 149, 147, 159, 151, 149, 159, 151, 149, 158, 150, 148, 157, 149, 147, 158, 150, 148, 158, 150, 148, 158, 150, 148, 159, 151, 149, 159, 151, 149, 160, 152, 150, 160, 152, 150, 160, 152, 150, 162, 152, 150, 164, 154, 152, 165, 157, 154, 165, 157, 154, 165, 157, 154, 167, 159, 156, 171, 163, 161, 174, 166, 164, 174, 169, 166, 177, 172, 169, 180, 175, 172, 182, 177, 174, 182, 176, 176, 184, 178, 178, 186, 182, 181, 189, 185, 184, 192, 188, 189, 195, 191, 192, 196, 194, 197, 198, 198, 200, 202, 201, 206, 206, 207, 211, 211, 214, 219, 216, 219, 224, 220, 225, 231, 223, 228, 234, 228, 233, 239, 230, 235, 241, 231, 236, 242, 232, 237, 243, 236, 239, 246, 238, 241, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 241, 244, 249, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 249, 252, 247, 248, 252, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 246, 247, 251, 246, 247, 251, 245, 246, 250, 245, 246, 250, 245, 246, 248, 244, 245, 247, 244, 245, 247, 244, 245, 247, 243, 245, 244, 243, 245, 244, 243, 245, 244, 242, 244, 243, 242, 244, 243, 241, 243, 242, 241, 243, 242, 241, 243, 242, 242, 244, 243, 242, 244, 243, 242, 244, 243, 242, 244, 243, 242, 244, 243, 242, 244, 243, 242, 244, 243, 242, 244, 243, 242, 244, 243, 242, 244, 243, 242, 244, 243, 242, 244, 243, 242, 244, 243, 242, 244, 243, 242, 244, 243, 242, 244, 243, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 242, 242, 240, 241, 241, 239, 242, 242, 240, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 241, 241, 239, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 239, 239, 237, 239, 239, 237, 238, 238, 236, 238, 238, 236, 238, 238, 236, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 236, 234, 237, 236, 234, 237, 236, 232, 236, 235, 231, 236, 235, 231, 236, 235, 231, 235, 234, 230, 235, 234, 230, 235, 234, 229, 235, 234, 229, 234, 233, 228, 234, 233, 228, 233, 232, 227, 232, 231, 226, 231, 231, 223, 231, 231, 223, 232, 229, 220, 232, 229, 220, 232, 229, 220, 232, 229, 220, 232, 228, 219, 232, 228, 219, 232, 228, 219, 231, 227, 218, 233, 226, 218, 232, 225, 217, 232, 225, 217, 231, 224, 216, 230, 223, 215, 229, 222, 214, 229, 222, 214, 228, 221, 213, 228, 221, 213, 228, 221, 213, 228, 219, 212, 228, 219, 212, 227, 218, 209, 226, 217, 208, 227, 217, 207, 226, 216, 206, 228, 215, 206, 227, 215, 203, 227, 213, 202, 226, 212, 201, 225, 211, 198, 224, 210, 197, 225, 209, 196, 225, 209, 196, 220, 206, 195, 219, 205, 194, 217, 203, 192, 218, 206, 194, 222, 209, 201, 223, 213, 204, 222, 213, 206, 222, 213, 206, 222, 213, 206, 222, 213, 206, 222, 213, 206, 222, 213, 206, 223, 213, 204, 223, 213, 204, 223, 213, 204, 223, 213, 204, 221, 211, 202, 221, 211, 202, 221, 211, 202, 221, 211, 202, 221, 211, 202, 221, 211, 202, 221, 211, 202, 221, 211, 202, 221, 211, 202, 220, 210, 201, 220, 210, 201, 220, 210, 201, 219, 209, 200, 219, 209, 200, 219, 209, 200, 218, 208, 198, 220, 206, 195, 219, 205, 192, 219, 203, 190, 217, 201, 188, 216, 200, 185, 217, 201, 186, 220, 202, 188, 221, 203, 189, 222, 206, 191, 222, 206, 191, 220, 206, 193, 220, 206, 193, 220, 208, 196, 220, 208, 196, 219, 209, 199, 219, 209, 199, 218, 208, 198, 218, 208, 198, 218, 208, 198, 218, 208, 198, 218, 208, 198, 218, 208, 198, 218, 208, 198, 218, 208, 198, 219, 209, 199, 219, 209, 199, 220, 210, 200, 220, 210, 200, 220, 210, 200, 221, 211, 201, 221, 211, 201, 221, 211, 201, 220, 210, 200, 221, 211, 201, 221, 211, 201, 221, 211, 201, 222, 212, 202, 222, 212, 202, 222, 212, 202, 222, 212, 202, 223, 213, 203, 223, 213, 203, 223, 213, 203, 223, 213, 203, 223, 213, 203, 223, 213, 203, 223, 213, 203, 223, 213, 203, 223, 213, 203, 223, 213, 203, 223, 213, 203, 224, 214, 204, 224, 214, 204, 224, 214, 204, 225, 215, 205, 225, 215, 205, 223, 213, 203, 224, 214, 204, 224, 214, 204, 224, 214, 204, 225, 215, 205, 225, 215, 205, 225, 215, 205, 226, 216, 206, 225, 215, 206, 226, 216, 207, 226, 216, 207, 226, 216, 207, 227, 217, 208, 227, 217, 208, 227, 217, 208, 227, 217, 208, 227, 217, 208, 228, 218, 209, 228, 218, 209, 228, 218, 209, 229, 219, 210, 229, 219, 210, 229, 219, 210, 229, 220, 211, 229, 220, 211, 228, 221, 211, 228, 221, 211, 228, 221, 211, 228, 221, 211, 228, 221, 211, 228, 221, 211, 228, 221, 211, 228, 221, 211, 229, 222, 212, 229, 222, 212, 229, 222, 212, 230, 223, 213, 230, 223, 213, 230, 223, 213, 230, 223, 213, 230, 223, 215, 231, 224, 216, 231, 224, 216, 231, 224, 216, 232, 225, 217, 232, 225, 217, 230, 226, 217, 231, 227, 218, 231, 226, 220, 232, 227, 221, 232, 227, 221, 232, 227, 221, 232, 229, 224, 232, 229, 224, 232, 229, 224, 232, 229, 224, 232, 229, 222, 233, 230, 223, 233, 230, 223, 233, 230, 223, 234, 231, 224, 234, 231, 224, 234, 231, 226, 235, 232, 227, 234, 231, 226, 234, 231, 226, 235, 232, 227, 235, 232, 227, 235, 231, 228, 236, 232, 229, 236, 232, 229, 236, 232, 229, 235, 234, 229, 235, 234, 229, 236, 235, 230, 236, 235, 230, 236, 235, 230, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 238, 237, 232, 238, 237, 232, 238, 237, 232, 239, 238, 233, 239, 238, 233, 239, 238, 233, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 243, 242, 238, 243, 242, 238, 243, 242, 238, 244, 243, 239, 244, 243, 239, 244, 243, 239, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 251, 253, 253, 251, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 250, 250, 250, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 246, 248, 247, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 243, 245, 244, 241, 243, 242, 239, 241, 240, 238, 240, 239, 235, 239, 240, 232, 236, 237, 229, 233, 234, 227, 231, 232, 225, 229, 230, 221, 225, 226, 218, 219, 221, 213, 214, 216, 208, 209, 211, 204, 205, 207, 201, 202, 204, 199, 200, 202, 200, 200, 202, 200, 200, 202, 198, 198, 200, 196, 196, 196, 191, 189, 190, 189, 188, 186, 185, 184, 182, 181, 180, 178, 179, 175, 172, 177, 173, 170, 175, 171, 168, 174, 170, 167, 174, 169, 166, 172, 167, 164, 170, 162, 159, 166, 158, 155, 164, 154, 152, 161, 151, 149, 160, 150, 148, 159, 149, 147, 155, 147, 145, 154, 146, 144, 152, 144, 142, 150, 142, 140, 147, 139, 137, 145, 137, 135, 143, 135, 133, 142, 134, 132, 142, 134, 132, 140, 132, 130, 138, 130, 128, 137, 129, 127, 137, 129, 127, 138, 130, 128, 139, 131, 129, 141, 133, 131, 149, 141, 139, 151, 143, 141, 154, 146, 144, 157, 149, 147, 159, 151, 149, 160, 152, 150, 159, 151, 149, 159, 151, 149, 157, 149, 147, 157, 149, 147, 158, 150, 148, 158, 150, 148, 158, 150, 148, 158, 150, 148, 158, 150, 148, 158, 150, 148, 159, 149, 147, 161, 151, 149, 162, 154, 151, 163, 155, 152, 163, 155, 152, 165, 157, 154, 168, 160, 158, 172, 164, 162, 173, 168, 165, 175, 170, 167, 179, 174, 171, 180, 175, 172, 181, 175, 175, 182, 176, 176, 184, 180, 179, 187, 183, 182, 190, 186, 187, 192, 188, 189, 194, 192, 195, 195, 195, 197, 199, 198, 203, 203, 204, 208, 209, 212, 217, 214, 217, 222, 218, 223, 229, 222, 227, 233, 227, 232, 238, 229, 234, 240, 231, 236, 242, 232, 237, 243, 236, 239, 246, 238, 241, 248, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 241, 244, 249, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 249, 252, 247, 248, 252, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 246, 248, 245, 246, 248, 244, 245, 247, 244, 245, 247, 243, 245, 244, 243, 245, 244, 243, 245, 244, 242, 244, 243, 242, 244, 243, 241, 243, 242, 241, 243, 242, 241, 243, 242, 242, 244, 243, 242, 244, 243, 242, 244, 243, 242, 244, 243, 242, 244, 243, 242, 244, 243, 242, 244, 243, 242, 244, 243, 242, 244, 243, 242, 244, 243, 242, 244, 243, 242, 244, 243, 242, 244, 243, 242, 244, 243, 242, 244, 243, 242, 244, 243, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 242, 242, 240, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 241, 241, 239, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 239, 239, 237, 239, 239, 237, 239, 239, 237, 238, 238, 236, 238, 238, 236, 238, 238, 236, 237, 237, 235, 237, 237, 235, 238, 237, 235, 238, 237, 235, 237, 236, 232, 237, 236, 232, 237, 236, 232, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 230, 235, 234, 229, 235, 234, 229, 234, 233, 228, 233, 232, 227, 232, 231, 226, 232, 232, 224, 232, 232, 224, 233, 230, 223, 233, 230, 223, 232, 229, 222, 232, 229, 222, 233, 228, 222, 232, 227, 221, 232, 227, 221, 232, 227, 221, 231, 226, 220, 231, 226, 220, 232, 225, 219, 232, 225, 219, 231, 224, 218, 230, 223, 217, 230, 223, 217, 229, 222, 216, 229, 222, 214, 228, 221, 213, 228, 221, 213, 227, 220, 212, 227, 218, 209, 227, 218, 209, 227, 217, 208, 227, 217, 207, 228, 215, 206, 228, 215, 206, 227, 215, 203, 226, 214, 202, 225, 211, 198, 224, 210, 197, 223, 209, 196, 223, 209, 196, 221, 207, 196, 219, 205, 194, 218, 204, 193, 218, 206, 194, 222, 209, 201, 223, 213, 204, 223, 214, 207, 222, 213, 206, 222, 213, 206, 222, 213, 206, 222, 213, 206, 222, 213, 206, 223, 213, 204, 223, 213, 204, 223, 213, 204, 223, 213, 204, 221, 211, 202, 221, 211, 202, 221, 211, 202, 221, 211, 202, 221, 211, 202, 221, 211, 202, 221, 211, 202, 221, 211, 202, 221, 211, 202, 221, 211, 202, 221, 211, 202, 220, 210, 201, 220, 210, 201, 219, 209, 200, 219, 209, 200, 219, 209, 199, 221, 207, 196, 219, 205, 192, 219, 203, 190, 217, 201, 188, 217, 201, 186, 218, 202, 187, 219, 203, 188, 221, 205, 190, 222, 206, 191, 222, 206, 191, 221, 207, 194, 221, 207, 194, 220, 208, 196, 221, 208, 199, 219, 209, 199, 219, 209, 199, 219, 209, 199, 219, 209, 199, 219, 209, 199, 219, 209, 199, 219, 209, 199, 219, 209, 199, 219, 209, 199, 219, 209, 199, 220, 210, 200, 220, 210, 200, 220, 210, 200, 220, 210, 200, 221, 211, 201, 221, 211, 201, 221, 211, 201, 222, 212, 202, 221, 211, 201, 221, 211, 201, 221, 211, 201, 222, 212, 202, 222, 212, 202, 222, 212, 202, 223, 213, 203, 223, 213, 203, 223, 213, 203, 223, 213, 203, 223, 213, 203, 223, 213, 203, 223, 213, 203, 223, 213, 203, 223, 213, 203, 223, 213, 203, 223, 213, 203, 223, 213, 203, 224, 214, 204, 224, 214, 204, 225, 215, 205, 225, 215, 205, 225, 215, 205, 225, 215, 205, 224, 214, 204, 224, 214, 204, 224, 214, 204, 225, 215, 205, 225, 215, 205, 226, 216, 206, 226, 216, 206, 226, 216, 206, 226, 216, 207, 226, 216, 207, 226, 216, 207, 227, 217, 208, 227, 217, 208, 227, 217, 208, 228, 218, 209, 228, 218, 209, 227, 217, 208, 228, 218, 209, 228, 218, 209, 228, 218, 209, 229, 219, 210, 229, 219, 210, 229, 219, 210, 229, 220, 211, 230, 221, 212, 229, 222, 212, 229, 222, 212, 229, 222, 212, 229, 222, 212, 229, 222, 212, 229, 222, 212, 229, 222, 212, 229, 222, 212, 229, 222, 212, 229, 222, 212, 230, 223, 213, 230, 223, 213, 230, 223, 213, 231, 224, 214, 231, 224, 214, 230, 223, 215, 231, 224, 216, 231, 224, 216, 231, 224, 216, 232, 225, 217, 232, 225, 217, 230, 226, 217, 231, 227, 218, 232, 227, 221, 232, 227, 221, 232, 227, 221, 233, 228, 222, 232, 229, 224, 232, 229, 224, 233, 230, 225, 233, 230, 225, 232, 229, 222, 233, 230, 223, 233, 230, 223, 233, 230, 223, 234, 231, 224, 234, 231, 224, 234, 231, 226, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 236, 232, 229, 236, 232, 229, 236, 232, 229, 237, 233, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 237, 236, 231, 237, 236, 231, 237, 236, 231, 238, 237, 232, 238, 237, 232, 238, 237, 232, 238, 237, 232, 238, 237, 232, 238, 237, 232, 239, 238, 233, 239, 238, 233, 239, 238, 233, 240, 239, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 244, 243, 239, 244, 243, 239, 244, 243, 239, 245, 244, 240, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 251, 253, 253, 251, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 246, 248, 247, 245, 247, 246, 245, 247, 246, 244, 246, 245, 243, 245, 244, 243, 245, 244, 243, 245, 244, 242, 244, 243, 241, 243, 242, 239, 241, 240, 237, 239, 238, 236, 238, 237, 236, 240, 241, 233, 237, 238, 230, 234, 235, 228, 232, 233, 225, 229, 230, 222, 226, 227, 218, 219, 221, 214, 215, 217, 209, 210, 212, 206, 207, 209, 202, 203, 205, 200, 201, 203, 201, 201, 203, 201, 201, 203, 199, 199, 201, 197, 197, 197, 194, 194, 194, 192, 192, 190, 190, 189, 187, 185, 184, 182, 182, 181, 179, 179, 178, 176, 179, 175, 172, 179, 175, 172, 175, 170, 167, 173, 168, 165, 172, 164, 162, 168, 160, 158, 165, 157, 154, 163, 155, 152, 163, 153, 151, 162, 152, 150, 158, 150, 148, 157, 149, 147, 155, 147, 145, 152, 144, 142, 149, 141, 139, 147, 139, 137, 145, 137, 135, 144, 136, 134, 142, 134, 132, 140, 132, 130, 138, 130, 128, 136, 128, 126, 136, 128, 126, 136, 128, 126, 138, 130, 128, 139, 131, 129, 149, 141, 139, 151, 143, 141, 155, 147, 145, 158, 150, 148, 160, 152, 150, 161, 153, 151, 161, 153, 151, 160, 152, 150, 157, 149, 147, 157, 149, 147, 157, 149, 147, 157, 149, 147, 156, 148, 146, 156, 148, 146, 156, 148, 146, 156, 148, 146, 157, 147, 145, 159, 150, 145, 161, 151, 149, 162, 152, 150, 161, 153, 150, 163, 155, 152, 166, 158, 155, 170, 162, 159, 173, 165, 163, 176, 168, 166, 177, 172, 169, 178, 173, 170, 179, 174, 171, 180, 175, 172, 184, 178, 178, 186, 180, 180, 187, 183, 182, 189, 185, 184, 191, 189, 190, 193, 193, 195, 196, 195, 200, 201, 202, 206, 206, 209, 214, 211, 214, 219, 216, 221, 227, 220, 225, 231, 225, 230, 236, 228, 233, 239, 230, 235, 241, 231, 236, 242, 235, 238, 243, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 241, 244, 249, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 249, 252, 247, 248, 252, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 249, 245, 246, 248, 245, 246, 248, 245, 246, 248, 243, 245, 244, 243, 245, 244, 243, 245, 244, 242, 244, 243, 242, 244, 243, 241, 243, 242, 241, 243, 242, 241, 243, 242, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 242, 242, 240, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 244, 244, 242, 243, 243, 241, 242, 242, 240, 241, 241, 239, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 241, 241, 239, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 239, 239, 237, 239, 239, 237, 239, 239, 237, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 237, 235, 238, 237, 235, 238, 237, 233, 237, 236, 232, 237, 236, 232, 237, 236, 232, 236, 235, 231, 236, 235, 231, 236, 235, 230, 236, 235, 230, 235, 234, 229, 234, 233, 228, 234, 233, 228, 233, 232, 227, 232, 232, 224, 232, 232, 224, 233, 230, 223, 233, 230, 223, 233, 230, 223, 232, 229, 222, 233, 228, 222, 233, 228, 222, 232, 227, 221, 232, 227, 221, 232, 227, 221, 232, 227, 221, 233, 226, 220, 232, 225, 219, 232, 225, 219, 231, 224, 218, 230, 223, 217, 230, 223, 217, 229, 222, 214, 229, 222, 214, 228, 221, 213, 228, 221, 213, 228, 219, 210, 227, 218, 209, 227, 217, 208, 227, 217, 208, 229, 216, 207, 228, 215, 206, 227, 215, 203, 226, 214, 202, 226, 212, 199, 225, 211, 198, 224, 210, 197, 223, 209, 196, 221, 207, 196, 219, 205, 194, 218, 204, 193, 219, 207, 195, 222, 209, 201, 223, 213, 204, 223, 214, 207, 223, 214, 207, 222, 213, 206, 222, 213, 206, 222, 213, 206, 222, 213, 206, 223, 213, 204, 223, 213, 204, 223, 213, 204, 223, 213, 204, 222, 212, 203, 222, 212, 203, 222, 212, 203, 222, 212, 203, 222, 212, 203, 222, 212, 203, 222, 212, 203, 222, 212, 203, 221, 211, 202, 221, 211, 202, 221, 211, 202, 221, 211, 202, 220, 210, 201, 220, 210, 201, 219, 209, 200, 219, 209, 199, 221, 207, 196, 220, 206, 193, 219, 203, 190, 218, 202, 189, 217, 201, 186, 218, 202, 187, 220, 204, 189, 221, 205, 190, 222, 206, 191, 223, 207, 192, 221, 207, 194, 221, 207, 196, 221, 208, 199, 221, 208, 199, 219, 209, 199, 220, 210, 200, 219, 209, 199, 219, 209, 199, 219, 209, 199, 219, 209, 199, 219, 209, 199, 219, 209, 199, 219, 209, 199, 219, 209, 199, 220, 210, 200, 220, 210, 200, 220, 210, 200, 221, 211, 201, 221, 211, 201, 222, 212, 202, 222, 212, 202, 222, 212, 202, 221, 211, 201, 221, 211, 201, 222, 212, 202, 222, 212, 202, 222, 212, 202, 223, 213, 203, 223, 213, 203, 223, 213, 203, 223, 213, 203, 223, 213, 203, 223, 213, 203, 223, 213, 203, 223, 213, 203, 223, 213, 203, 223, 213, 203, 223, 213, 203, 224, 214, 204, 224, 214, 204, 224, 214, 204, 225, 215, 205, 225, 215, 205, 225, 215, 205, 226, 216, 206, 226, 216, 206, 224, 214, 204, 224, 214, 204, 225, 215, 205, 225, 215, 205, 226, 216, 206, 226, 216, 206, 226, 216, 206, 226, 216, 206, 226, 216, 207, 226, 216, 207, 227, 217, 208, 227, 217, 208, 227, 217, 208, 228, 218, 209, 228, 218, 209, 228, 218, 209, 227, 217, 208, 228, 218, 209, 228, 218, 209, 228, 218, 209, 229, 219, 210, 229, 219, 210, 229, 219, 210, 229, 220, 211, 229, 222, 212, 229, 222, 212, 229, 222, 212, 229, 222, 212, 229, 222, 212, 229, 222, 212, 229, 222, 212, 229, 222, 212, 229, 222, 212, 229, 222, 212, 230, 223, 213, 230, 223, 213, 230, 223, 213, 231, 224, 214, 231, 224, 214, 231, 224, 214, 230, 223, 215, 231, 224, 216, 231, 224, 216, 231, 224, 216, 232, 225, 217, 232, 225, 217, 230, 226, 217, 231, 227, 218, 232, 227, 221, 232, 227, 221, 233, 228, 222, 233, 228, 222, 232, 229, 224, 233, 230, 225, 233, 230, 225, 233, 230, 225, 232, 229, 222, 233, 230, 223, 233, 230, 223, 233, 230, 223, 234, 231, 224, 234, 231, 224, 234, 231, 226, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 236, 233, 228, 236, 232, 229, 237, 233, 230, 237, 233, 230, 237, 233, 230, 236, 235, 230, 236, 235, 230, 237, 236, 231, 237, 236, 231, 237, 236, 231, 238, 237, 232, 238, 237, 232, 238, 237, 232, 238, 237, 232, 238, 237, 232, 238, 237, 232, 239, 238, 233, 239, 238, 233, 240, 239, 234, 240, 239, 234, 240, 239, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 243, 242, 238, 243, 242, 238, 243, 242, 238, 244, 243, 239, 244, 243, 239, 245, 244, 240, 245, 244, 240, 245, 244, 240, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 251, 253, 253, 251, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 249, 249, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 246, 248, 247, 245, 247, 246, 245, 247, 246, 244, 246, 245, 242, 244, 243, 242, 244, 243, 242, 244, 243, 242, 244, 243, 241, 243, 242, 239, 241, 240, 237, 239, 238, 236, 238, 237, 236, 240, 241, 233, 237, 238, 230, 234, 235, 228, 232, 233, 225, 229, 230, 222, 226, 227, 218, 219, 221, 214, 215, 217, 211, 212, 214, 208, 209, 211, 204, 205, 207, 202, 203, 205, 202, 202, 204, 201, 201, 203, 199, 199, 201, 197, 197, 199, 196, 196, 196, 194, 194, 192, 191, 190, 188, 187, 186, 184, 183, 182, 180, 181, 180, 178, 181, 177, 174, 180, 176, 173, 175, 170, 167, 173, 168, 165, 172, 164, 162, 169, 161, 159, 166, 158, 155, 164, 156, 153, 164, 154, 152, 164, 154, 152, 160, 152, 150, 159, 151, 149, 157, 149, 147, 154, 146, 144, 152, 144, 142, 150, 142, 140, 148, 140, 138, 147, 139, 137, 143, 135, 133, 142, 134, 132, 139, 131, 129, 137, 129, 127, 136, 128, 126, 137, 129, 127, 138, 130, 128, 139, 131, 129, 147, 139, 137, 149, 141, 139, 153, 145, 143, 157, 149, 147, 159, 151, 149, 160, 152, 150, 160, 152, 150, 160, 152, 150, 157, 149, 147, 156, 148, 146, 156, 148, 146, 156, 148, 146, 155, 147, 145, 155, 147, 145, 154, 146, 144, 154, 146, 143, 156, 146, 144, 158, 149, 144, 160, 150, 148, 160, 150, 148, 160, 152, 149, 161, 153, 150, 165, 157, 154, 168, 160, 157, 171, 163, 161, 174, 166, 164, 175, 170, 167, 177, 172, 169, 177, 172, 169, 179, 174, 171, 182, 176, 176, 185, 179, 179, 184, 180, 179, 187, 183, 182, 188, 186, 187, 190, 190, 190, 193, 193, 195, 198, 199, 203, 203, 206, 211, 208, 211, 216, 214, 219, 225, 218, 223, 229, 223, 228, 234, 226, 231, 237, 228, 233, 239, 230, 235, 241, 234, 237, 242, 237, 240, 245, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 241, 244, 249, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 249, 252, 247, 248, 252, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 249, 245, 246, 248, 245, 246, 248, 245, 246, 248, 243, 245, 244, 243, 245, 244, 243, 245, 244, 242, 244, 243, 242, 244, 243, 241, 243, 242, 241, 243, 242, 241, 243, 242, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 242, 242, 240, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 243, 243, 241, 242, 242, 240, 241, 241, 239, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 241, 241, 239, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 239, 239, 237, 239, 239, 237, 239, 239, 237, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 237, 235, 238, 237, 235, 238, 237, 233, 238, 237, 233, 237, 236, 232, 237, 236, 232, 236, 235, 231, 236, 235, 231, 236, 235, 230, 236, 235, 230, 235, 234, 229, 235, 234, 229, 234, 233, 228, 233, 232, 227, 232, 232, 224, 232, 232, 224, 234, 231, 224, 233, 230, 223, 233, 230, 223, 233, 230, 223, 232, 229, 222, 232, 229, 222, 233, 228, 222, 232, 227, 221, 233, 228, 222, 232, 227, 221, 232, 227, 221, 231, 226, 220, 232, 225, 219, 231, 224, 218, 231, 224, 218, 231, 224, 218, 229, 222, 216, 229, 222, 216, 229, 222, 214, 228, 221, 213, 228, 219, 212, 227, 218, 211, 227, 218, 209, 226, 217, 208, 227, 217, 207, 226, 216, 206, 228, 216, 204, 226, 214, 202, 226, 212, 201, 225, 211, 200, 224, 210, 197, 224, 210, 197, 221, 207, 196, 220, 206, 195, 218, 204, 193, 219, 207, 195, 223, 210, 202, 224, 214, 205, 223, 214, 207, 223, 214, 207, 223, 214, 207, 223, 214, 207, 223, 214, 207, 223, 214, 207, 224, 214, 205, 224, 214, 205, 224, 214, 205, 224, 214, 205, 222, 212, 203, 222, 212, 203, 222, 212, 203, 222, 212, 203, 222, 212, 203, 222, 212, 203, 222, 212, 203, 222, 212, 203, 222, 212, 203, 222, 212, 203, 221, 211, 202, 221, 211, 202, 220, 210, 201, 220, 210, 201, 220, 210, 201, 220, 210, 200, 221, 207, 196, 220, 206, 195, 218, 204, 191, 216, 202, 189, 218, 202, 189, 218, 202, 189, 220, 204, 189, 221, 205, 190, 223, 207, 194, 223, 207, 194, 221, 207, 196, 222, 208, 197, 221, 208, 199, 219, 209, 199, 220, 210, 201, 220, 210, 201, 219, 209, 199, 219, 209, 199, 219, 209, 199, 219, 209, 199, 219, 209, 199, 219, 209, 199, 219, 209, 199, 219, 209, 199, 220, 210, 200, 220, 210, 200, 221, 211, 201, 221, 211, 201, 221, 211, 201, 222, 212, 202, 222, 212, 202, 222, 212, 202, 221, 211, 201, 222, 212, 202, 222, 212, 202, 222, 212, 202, 223, 213, 203, 223, 213, 203, 223, 213, 203, 224, 214, 204, 224, 214, 204, 224, 214, 204, 224, 214, 204, 224, 214, 204, 224, 214, 204, 224, 214, 204, 224, 214, 204, 224, 214, 204, 224, 214, 204, 224, 214, 204, 224, 214, 204, 225, 215, 205, 225, 215, 205, 226, 216, 206, 226, 216, 206, 226, 216, 206, 225, 215, 205, 225, 215, 205, 225, 215, 205, 225, 215, 205, 226, 216, 206, 226, 216, 206, 227, 217, 207, 227, 217, 207, 225, 216, 207, 226, 217, 208, 226, 217, 208, 226, 217, 208, 227, 218, 209, 227, 218, 209, 227, 218, 209, 228, 219, 210, 226, 217, 208, 227, 218, 209, 227, 218, 209, 227, 218, 209, 228, 219, 210, 228, 219, 210, 228, 219, 210, 229, 220, 211, 229, 222, 212, 229, 222, 212, 229, 222, 212, 229, 222, 212, 229, 222, 212, 229, 222, 212, 229, 222, 212, 229, 222, 212, 229, 222, 212, 230, 223, 213, 230, 223, 213, 230, 223, 213, 231, 224, 214, 231, 224, 214, 231, 224, 214, 232, 225, 215, 230, 223, 215, 231, 224, 216, 231, 224, 216, 231, 224, 216, 232, 225, 217, 232, 225, 217, 230, 226, 217, 231, 227, 218, 232, 227, 221, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 230, 225, 233, 230, 225, 233, 230, 225, 234, 231, 226, 232, 229, 222, 233, 230, 223, 233, 230, 223, 233, 230, 223, 234, 231, 224, 234, 231, 224, 234, 231, 226, 235, 232, 227, 235, 232, 227, 235, 232, 227, 236, 233, 228, 236, 233, 228, 236, 232, 229, 237, 233, 230, 237, 233, 230, 237, 233, 230, 236, 235, 230, 236, 235, 230, 237, 236, 231, 237, 236, 231, 238, 237, 232, 238, 237, 232, 238, 237, 232, 238, 237, 232, 238, 237, 232, 238, 237, 232, 239, 238, 233, 239, 238, 233, 239, 238, 233, 240, 239, 234, 240, 239, 234, 240, 239, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 243, 242, 238, 243, 242, 238, 244, 243, 239, 244, 243, 239, 244, 243, 239, 245, 244, 240, 245, 244, 240, 245, 244, 240, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 251, 253, 253, 251, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 246, 248, 247, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 242, 244, 243, 241, 243, 242, 239, 241, 240, 238, 240, 239, 236, 240, 241, 233, 237, 238, 230, 234, 235, 227, 231, 232, 225, 229, 230, 221, 225, 226, 218, 219, 221, 214, 215, 217, 214, 215, 217, 211, 212, 214, 206, 207, 209, 203, 204, 206, 203, 203, 205, 201, 201, 203, 198, 198, 200, 196, 196, 198, 194, 194, 194, 192, 192, 192, 189, 189, 187, 185, 185, 183, 182, 181, 179, 179, 178, 176, 179, 175, 174, 179, 175, 174, 174, 169, 166, 172, 167, 164, 169, 164, 161, 166, 161, 158, 166, 158, 156, 164, 156, 154, 163, 155, 152, 163, 155, 152, 160, 152, 150, 159, 151, 149, 158, 150, 148, 156, 148, 146, 154, 146, 144, 152, 144, 142, 151, 143, 141, 150, 142, 140, 145, 137, 135, 143, 135, 133, 141, 133, 131, 138, 130, 128, 137, 129, 127, 137, 129, 127, 139, 131, 129, 139, 131, 129, 143, 135, 133, 146, 138, 136, 149, 141, 139, 153, 145, 143, 156, 148, 146, 157, 149, 147, 157, 149, 147, 157, 149, 147, 156, 148, 146, 156, 148, 146, 156, 148, 146, 155, 147, 145, 154, 146, 144, 153, 145, 143, 153, 145, 143, 153, 145, 142, 156, 146, 144, 157, 148, 143, 159, 150, 145, 160, 151, 146, 160, 150, 148, 162, 152, 150, 165, 157, 154, 168, 160, 157, 170, 162, 159, 173, 165, 162, 176, 168, 166, 178, 170, 168, 176, 171, 168, 178, 173, 170, 181, 176, 173, 184, 179, 176, 182, 178, 177, 185, 181, 180, 186, 184, 185, 188, 188, 188, 191, 191, 193, 196, 197, 201, 201, 204, 209, 206, 209, 214, 211, 216, 222, 215, 220, 226, 220, 225, 231, 224, 229, 235, 226, 231, 235, 228, 233, 237, 233, 236, 241, 235, 238, 243, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 241, 244, 249, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 249, 252, 247, 248, 252, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 246, 248, 245, 246, 248, 245, 246, 248, 245, 246, 248, 245, 246, 248, 245, 246, 248, 245, 246, 248, 245, 246, 248, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 249, 246, 247, 249, 245, 246, 248, 245, 246, 248, 243, 245, 244, 243, 245, 244, 243, 245, 244, 242, 244, 243, 242, 244, 243, 241, 243, 242, 241, 243, 242, 241, 243, 242, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 242, 242, 240, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 245, 245, 243, 243, 243, 241, 242, 242, 240, 241, 241, 239, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 241, 241, 239, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 239, 239, 237, 239, 239, 237, 238, 238, 236, 238, 238, 236, 238, 238, 236, 239, 238, 236, 238, 237, 235, 238, 237, 233, 238, 237, 233, 237, 236, 232, 237, 236, 232, 237, 236, 232, 236, 235, 231, 236, 235, 230, 236, 235, 230, 236, 235, 230, 235, 234, 229, 234, 233, 228, 233, 232, 227, 233, 233, 225, 232, 232, 224, 234, 231, 224, 234, 231, 224, 233, 230, 223, 233, 230, 223, 232, 229, 222, 232, 229, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 232, 227, 221, 231, 226, 220, 233, 226, 220, 232, 225, 219, 231, 224, 218, 231, 224, 218, 230, 223, 217, 229, 222, 216, 229, 222, 214, 228, 221, 213, 228, 219, 212, 227, 218, 211, 227, 218, 209, 226, 217, 208, 227, 217, 207, 227, 217, 207, 228, 215, 206, 227, 215, 203, 226, 212, 201, 225, 211, 200, 224, 210, 197, 224, 210, 197, 222, 208, 197, 220, 206, 195, 219, 205, 194, 219, 207, 195, 223, 210, 202, 224, 214, 205, 224, 215, 208, 223, 214, 207, 223, 214, 207, 223, 214, 207, 223, 214, 207, 223, 214, 207, 224, 214, 205, 224, 214, 205, 224, 214, 205, 224, 214, 205, 222, 212, 203, 222, 212, 203, 222, 212, 203, 222, 212, 203, 222, 212, 203, 222, 212, 203, 222, 212, 203, 222, 212, 203, 222, 212, 203, 222, 212, 203, 221, 211, 202, 221, 211, 202, 221, 211, 202, 220, 210, 201, 220, 210, 201, 220, 210, 200, 220, 207, 198, 220, 206, 195, 218, 204, 191, 216, 202, 189, 218, 202, 189, 219, 203, 190, 220, 204, 189, 221, 205, 190, 223, 207, 194, 221, 207, 194, 221, 207, 196, 221, 209, 197, 219, 209, 199, 219, 209, 199, 220, 210, 201, 220, 210, 201, 220, 210, 200, 220, 210, 200, 220, 210, 200, 220, 210, 200, 220, 210, 200, 220, 210, 200, 220, 210, 200, 220, 210, 200, 220, 210, 200, 221, 211, 201, 221, 211, 201, 221, 211, 201, 222, 212, 202, 222, 212, 202, 222, 212, 202, 222, 212, 202, 222, 212, 202, 222, 212, 202, 222, 212, 202, 222, 212, 202, 223, 213, 203, 223, 213, 203, 224, 214, 204, 224, 214, 204, 224, 214, 204, 224, 214, 204, 224, 214, 204, 224, 214, 204, 224, 214, 204, 224, 214, 204, 224, 214, 204, 224, 214, 204, 224, 214, 204, 224, 214, 204, 225, 215, 205, 225, 215, 205, 225, 215, 205, 226, 216, 206, 226, 216, 206, 226, 216, 206, 225, 215, 205, 225, 215, 205, 225, 215, 205, 226, 216, 206, 226, 216, 206, 226, 216, 206, 227, 217, 207, 227, 217, 207, 226, 217, 208, 226, 217, 208, 226, 217, 208, 226, 217, 208, 227, 218, 209, 227, 218, 209, 228, 219, 210, 228, 219, 210, 226, 217, 208, 227, 218, 209, 227, 218, 209, 227, 218, 209, 228, 219, 210, 228, 219, 210, 228, 219, 210, 229, 220, 211, 229, 222, 212, 229, 222, 212, 229, 222, 212, 229, 222, 212, 229, 222, 212, 229, 222, 212, 229, 222, 212, 229, 222, 212, 230, 223, 213, 230, 223, 213, 230, 223, 213, 230, 223, 213, 231, 224, 214, 231, 224, 214, 232, 225, 215, 232, 225, 215, 230, 223, 215, 231, 224, 216, 231, 224, 216, 231, 224, 216, 232, 225, 217, 232, 225, 217, 230, 226, 217, 231, 227, 218, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 230, 225, 233, 230, 225, 234, 231, 226, 234, 231, 226, 232, 229, 222, 233, 230, 223, 233, 230, 223, 233, 230, 223, 234, 231, 224, 234, 231, 224, 234, 231, 226, 235, 232, 227, 235, 232, 227, 236, 233, 228, 236, 233, 228, 236, 233, 228, 237, 233, 230, 237, 233, 230, 237, 233, 230, 237, 233, 230, 236, 235, 230, 237, 236, 231, 237, 236, 231, 237, 236, 231, 238, 237, 232, 238, 237, 232, 238, 237, 232, 239, 238, 233, 238, 237, 232, 239, 238, 233, 239, 238, 233, 239, 238, 233, 240, 239, 234, 240, 239, 234, 240, 239, 234, 240, 239, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 243, 242, 238, 244, 243, 239, 244, 243, 239, 244, 243, 239, 245, 244, 240, 245, 244, 240, 245, 244, 240, 245, 244, 240, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 251, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 251, 253, 253, 251, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 249, 249, 249, 248, 248, 248, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 246, 248, 247, 245, 247, 246, 245, 247, 246, 244, 246, 245, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 244, 246, 245, 243, 245, 244, 241, 243, 242, 240, 242, 241, 235, 239, 240, 233, 237, 238, 229, 233, 234, 227, 231, 232, 225, 229, 230, 221, 225, 226, 218, 219, 221, 214, 215, 217, 216, 217, 219, 212, 213, 215, 207, 208, 210, 204, 205, 207, 203, 203, 205, 201, 201, 203, 197, 197, 199, 195, 195, 197, 192, 192, 192, 190, 190, 190, 187, 187, 185, 182, 182, 180, 180, 179, 177, 177, 176, 174, 177, 173, 172, 177, 173, 172, 173, 168, 165, 171, 166, 163, 169, 164, 161, 166, 161, 158, 165, 157, 155, 164, 156, 154, 163, 155, 152, 163, 155, 152, 160, 152, 150, 159, 151, 149, 158, 150, 148, 157, 149, 147, 155, 147, 145, 154, 146, 144, 153, 145, 143, 152, 144, 142, 147, 139, 137, 145, 137, 135, 142, 134, 132, 139, 131, 129, 138, 130, 128, 138, 130, 128, 139, 131, 129, 140, 132, 130, 140, 132, 130, 142, 134, 132, 146, 138, 136, 150, 142, 140, 153, 145, 143, 155, 147, 145, 155, 147, 145, 155, 147, 145, 156, 148, 146, 156, 148, 146, 155, 147, 145, 154, 146, 144, 154, 146, 144, 153, 145, 143, 152, 144, 142, 152, 144, 141, 155, 145, 143, 157, 148, 143, 159, 150, 145, 160, 151, 146, 160, 150, 148, 162, 152, 150, 164, 156, 153, 168, 160, 157, 170, 162, 159, 172, 164, 161, 176, 168, 166, 177, 169, 167, 176, 171, 168, 177, 172, 169, 180, 175, 172, 183, 178, 175, 181, 177, 176, 184, 180, 179, 185, 183, 184, 187, 187, 187, 190, 190, 192, 195, 196, 198, 200, 204, 207, 205, 208, 213, 210, 215, 221, 214, 219, 225, 219, 224, 230, 223, 228, 234, 225, 230, 234, 228, 233, 237, 232, 235, 240, 235, 238, 243, 239, 242, 247, 239, 242, 247, 239, 242, 247, 240, 243, 248, 241, 244, 249, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 249, 252, 247, 248, 252, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 249, 245, 246, 248, 245, 246, 248, 245, 246, 248, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 246, 245, 244, 246, 245, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 245, 245, 243, 245, 245, 243, 245, 245, 243, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 240, 240, 238, 240, 240, 238, 240, 240, 238, 239, 239, 237, 239, 239, 237, 239, 239, 237, 238, 238, 236, 240, 239, 237, 239, 238, 236, 239, 238, 234, 239, 238, 234, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 237, 236, 231, 237, 236, 231, 237, 236, 231, 236, 235, 230, 236, 235, 230, 236, 235, 230, 235, 235, 227, 235, 235, 227, 233, 233, 225, 233, 233, 225, 232, 232, 224, 232, 232, 224, 234, 231, 224, 233, 230, 223, 233, 230, 223, 233, 230, 223, 233, 230, 223, 233, 230, 223, 233, 228, 222, 233, 228, 222, 232, 227, 221, 231, 226, 220, 230, 225, 219, 230, 225, 219, 229, 224, 218, 229, 224, 218, 230, 223, 217, 229, 222, 216, 228, 221, 213, 228, 221, 213, 228, 219, 210, 228, 219, 210, 228, 218, 209, 227, 217, 207, 228, 215, 206, 227, 214, 205, 226, 214, 202, 225, 213, 201, 224, 212, 200, 223, 211, 199, 222, 208, 197, 222, 208, 197, 222, 208, 197, 222, 210, 198, 223, 210, 202, 223, 213, 204, 224, 215, 208, 225, 216, 209, 225, 216, 209, 225, 216, 209, 225, 216, 209, 224, 215, 208, 225, 215, 206, 224, 214, 205, 224, 214, 205, 224, 214, 205, 224, 214, 205, 224, 214, 205, 224, 214, 205, 224, 214, 205, 224, 214, 205, 224, 214, 205, 224, 214, 205, 224, 214, 205, 224, 214, 205, 224, 214, 205, 223, 213, 204, 222, 212, 203, 221, 211, 202, 221, 211, 202, 220, 210, 201, 220, 210, 200, 222, 209, 200, 220, 208, 196, 219, 205, 194, 217, 203, 192, 216, 202, 189, 217, 203, 190, 220, 204, 191, 221, 205, 192, 222, 208, 195, 222, 208, 195, 222, 208, 197, 222, 210, 198, 220, 210, 200, 221, 211, 201, 220, 211, 202, 220, 211, 202, 221, 211, 201, 221, 211, 201, 221, 211, 201, 221, 211, 201, 221, 211, 201, 221, 211, 201, 221, 211, 201, 221, 211, 201, 222, 212, 202, 222, 212, 202, 222, 212, 202, 222, 212, 202, 222, 212, 202, 222, 212, 202, 222, 212, 202, 222, 212, 202, 223, 213, 203, 223, 213, 203, 223, 213, 203, 224, 214, 204, 224, 214, 204, 224, 214, 204, 225, 215, 205, 225, 215, 205, 224, 214, 204, 224, 214, 204, 224, 214, 204, 225, 215, 205, 225, 215, 205, 226, 216, 206, 226, 216, 206, 226, 216, 206, 225, 215, 205, 225, 215, 205, 225, 215, 205, 225, 215, 205, 225, 215, 205, 225, 215, 205, 225, 215, 205, 225, 215, 205, 227, 217, 207, 227, 217, 207, 226, 216, 206, 225, 215, 205, 225, 215, 205, 226, 216, 206, 227, 217, 207, 227, 217, 207, 226, 217, 208, 226, 217, 208, 226, 217, 208, 226, 217, 208, 227, 218, 209, 227, 218, 209, 228, 219, 210, 228, 219, 210, 229, 220, 211, 229, 220, 211, 229, 220, 211, 229, 220, 211, 229, 220, 211, 229, 220, 211, 229, 220, 211, 229, 220, 211, 229, 222, 212, 229, 222, 212, 229, 222, 212, 230, 223, 213, 230, 223, 213, 230, 223, 213, 231, 224, 214, 231, 224, 214, 231, 224, 214, 231, 224, 214, 231, 224, 214, 231, 224, 214, 231, 224, 214, 231, 224, 214, 231, 224, 214, 231, 224, 214, 232, 225, 217, 232, 225, 217, 232, 225, 217, 233, 226, 218, 233, 226, 218, 234, 227, 219, 232, 228, 219, 232, 228, 219, 232, 227, 221, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 230, 225, 233, 230, 225, 233, 230, 225, 234, 231, 226, 233, 230, 223, 233, 230, 223, 234, 231, 224, 234, 231, 224, 235, 232, 225, 235, 232, 225, 235, 232, 227, 235, 232, 227, 236, 233, 228, 236, 233, 228, 236, 233, 228, 237, 234, 229, 237, 233, 230, 237, 233, 230, 238, 234, 231, 238, 234, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 237, 236, 232, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 242, 241, 237, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 245, 244, 240, 245, 244, 240, 246, 245, 241, 246, 245, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 249, 247, 249, 248, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 246, 245, 244, 246, 245, 243, 245, 244, 243, 245, 244, 243, 245, 244, 238, 242, 243, 237, 241, 242, 234, 238, 239, 231, 235, 236, 228, 232, 233, 225, 229, 230, 224, 225, 227, 223, 224, 226, 218, 219, 221, 214, 215, 217, 210, 211, 213, 207, 208, 210, 206, 206, 208, 202, 202, 204, 198, 198, 200, 195, 195, 197, 192, 192, 192, 191, 191, 191, 188, 188, 188, 184, 184, 184, 178, 178, 178, 173, 173, 173, 169, 168, 166, 166, 165, 163, 166, 162, 161, 165, 161, 160, 164, 159, 156, 163, 158, 155, 162, 157, 154, 162, 157, 154, 165, 157, 155, 165, 157, 155, 160, 152, 150, 160, 152, 150, 158, 150, 148, 156, 148, 146, 154, 146, 144, 152, 144, 142, 151, 143, 141, 150, 142, 140, 144, 136, 134, 144, 136, 134, 143, 135, 133, 142, 134, 132, 140, 132, 130, 139, 131, 129, 138, 130, 128, 138, 130, 128, 142, 134, 132, 143, 135, 133, 145, 137, 135, 147, 139, 137, 149, 141, 139, 152, 144, 142, 153, 145, 143, 154, 146, 144, 153, 145, 143, 154, 146, 144, 156, 148, 146, 157, 149, 147, 158, 150, 148, 158, 150, 148, 158, 150, 148, 157, 149, 146, 158, 148, 146, 159, 148, 144, 158, 149, 144, 159, 150, 145, 161, 152, 147, 163, 154, 149, 165, 156, 151, 167, 158, 153, 170, 162, 159, 171, 163, 160, 173, 165, 162, 175, 167, 164, 178, 170, 168, 180, 172, 170, 182, 174, 172, 181, 176, 173, 182, 178, 175, 184, 180, 177, 185, 184, 182, 186, 186, 186, 188, 188, 190, 192, 193, 195, 197, 201, 204, 201, 205, 208, 206, 211, 215, 211, 216, 220, 217, 222, 226, 222, 227, 231, 226, 231, 235, 229, 234, 238, 235, 238, 243, 238, 241, 246, 236, 239, 244, 237, 240, 245, 239, 242, 247, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 244, 247, 252, 245, 248, 253, 245, 248, 253, 245, 248, 253, 246, 249, 254, 246, 249, 254, 246, 249, 254, 246, 250, 253, 247, 248, 252, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 247, 251, 254, 247, 251, 254, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 249, 245, 246, 248, 245, 246, 248, 245, 246, 248, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 246, 245, 244, 246, 245, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 245, 245, 243, 245, 245, 243, 245, 245, 243, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 240, 240, 238, 240, 240, 238, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 240, 239, 237, 240, 239, 237, 239, 238, 234, 239, 238, 234, 239, 238, 234, 238, 237, 233, 238, 237, 233, 238, 237, 233, 237, 236, 231, 237, 236, 231, 237, 236, 231, 236, 235, 230, 236, 235, 230, 236, 235, 230, 235, 235, 227, 235, 235, 227, 233, 233, 225, 233, 233, 225, 233, 233, 225, 232, 232, 224, 234, 231, 224, 234, 231, 224, 233, 230, 223, 233, 230, 223, 233, 230, 223, 233, 230, 223, 234, 229, 223, 233, 228, 222, 232, 227, 221, 231, 226, 220, 231, 226, 220, 230, 225, 219, 229, 224, 218, 229, 224, 218, 230, 223, 217, 230, 223, 217, 229, 222, 214, 228, 221, 213, 228, 219, 212, 228, 219, 210, 228, 218, 209, 228, 218, 209, 229, 216, 207, 227, 214, 205, 226, 214, 202, 225, 213, 201, 224, 212, 200, 224, 212, 200, 223, 209, 198, 223, 209, 198, 223, 209, 198, 222, 210, 198, 223, 210, 202, 223, 213, 204, 224, 215, 208, 225, 216, 209, 225, 216, 209, 225, 216, 209, 225, 216, 209, 224, 215, 208, 225, 215, 206, 225, 215, 206, 224, 214, 205, 224, 214, 205, 224, 214, 205, 224, 214, 205, 224, 214, 205, 224, 214, 205, 224, 214, 205, 224, 214, 205, 224, 214, 205, 224, 214, 205, 224, 214, 205, 224, 214, 205, 223, 213, 204, 222, 212, 203, 222, 212, 203, 221, 211, 202, 220, 210, 201, 220, 210, 201, 222, 209, 200, 221, 209, 197, 219, 205, 194, 217, 203, 192, 216, 202, 189, 217, 203, 190, 220, 204, 191, 221, 205, 192, 222, 208, 195, 222, 208, 195, 222, 210, 198, 222, 210, 198, 220, 210, 200, 221, 211, 201, 220, 211, 202, 220, 211, 202, 221, 211, 201, 221, 211, 201, 221, 211, 201, 221, 211, 201, 221, 211, 201, 221, 211, 201, 221, 211, 201, 221, 211, 201, 223, 213, 203, 223, 213, 203, 223, 213, 203, 223, 213, 203, 223, 213, 203, 223, 213, 203, 223, 213, 203, 223, 213, 203, 223, 213, 203, 223, 213, 203, 223, 213, 203, 224, 214, 204, 224, 214, 204, 224, 214, 204, 225, 215, 205, 225, 215, 205, 224, 214, 204, 224, 214, 204, 225, 215, 205, 225, 215, 205, 225, 215, 205, 226, 216, 206, 226, 216, 206, 226, 216, 206, 226, 216, 206, 226, 216, 206, 226, 216, 206, 226, 216, 206, 226, 216, 206, 226, 216, 206, 226, 216, 206, 226, 216, 206, 228, 218, 208, 227, 217, 207, 226, 216, 206, 225, 215, 205, 225, 215, 205, 226, 216, 206, 227, 217, 207, 228, 218, 208, 226, 217, 208, 226, 217, 208, 226, 217, 208, 227, 218, 209, 227, 218, 209, 228, 219, 210, 228, 219, 210, 228, 219, 210, 229, 220, 211, 229, 220, 211, 229, 220, 211, 229, 220, 211, 229, 220, 211, 229, 220, 211, 229, 220, 211, 229, 220, 211, 229, 222, 212, 229, 222, 212, 229, 222, 212, 230, 223, 213, 230, 223, 213, 231, 224, 214, 231, 224, 214, 231, 224, 214, 231, 224, 214, 231, 224, 214, 231, 224, 214, 231, 224, 214, 231, 224, 214, 231, 224, 214, 231, 224, 214, 231, 224, 214, 232, 225, 217, 232, 225, 217, 233, 226, 218, 233, 226, 218, 233, 226, 218, 234, 227, 219, 232, 228, 219, 232, 228, 219, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 230, 225, 233, 230, 225, 234, 231, 226, 234, 231, 226, 233, 230, 223, 234, 231, 224, 234, 231, 224, 234, 231, 224, 235, 232, 225, 235, 232, 225, 235, 232, 227, 236, 233, 228, 236, 233, 228, 236, 233, 228, 236, 233, 228, 237, 234, 229, 237, 233, 230, 238, 234, 231, 238, 234, 231, 238, 234, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 237, 236, 232, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 242, 241, 237, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 245, 244, 240, 245, 244, 240, 246, 245, 241, 246, 245, 241, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 249, 247, 249, 248, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 246, 245, 244, 246, 245, 243, 245, 244, 243, 245, 244, 243, 245, 244, 239, 243, 244, 237, 241, 242, 235, 239, 240, 232, 236, 237, 229, 233, 234, 226, 230, 231, 226, 227, 229, 225, 226, 228, 219, 220, 222, 216, 217, 219, 212, 213, 215, 209, 210, 212, 208, 208, 210, 204, 204, 206, 200, 200, 202, 197, 197, 199, 190, 190, 190, 189, 189, 189, 186, 186, 186, 182, 182, 182, 177, 177, 177, 171, 171, 171, 168, 167, 165, 165, 164, 162, 168, 164, 163, 167, 163, 162, 166, 161, 158, 164, 159, 156, 163, 158, 155, 162, 157, 154, 164, 156, 154, 165, 157, 155, 160, 152, 150, 159, 151, 149, 158, 150, 148, 156, 148, 146, 154, 146, 144, 152, 144, 142, 151, 143, 141, 150, 142, 140, 144, 136, 134, 144, 136, 134, 143, 135, 133, 142, 134, 132, 140, 132, 130, 139, 131, 129, 138, 130, 128, 138, 130, 128, 141, 133, 131, 142, 134, 132, 144, 136, 134, 146, 138, 136, 149, 141, 139, 152, 144, 142, 154, 146, 144, 155, 147, 145, 154, 146, 144, 155, 147, 145, 156, 148, 146, 158, 150, 148, 158, 150, 148, 158, 150, 148, 158, 150, 148, 158, 150, 147, 159, 148, 144, 159, 148, 144, 158, 149, 144, 159, 150, 145, 160, 151, 146, 163, 154, 149, 165, 156, 151, 166, 157, 152, 169, 161, 158, 170, 162, 159, 172, 164, 161, 174, 166, 163, 176, 168, 166, 179, 171, 169, 181, 173, 171, 179, 174, 171, 182, 177, 174, 183, 179, 176, 184, 183, 181, 185, 185, 183, 188, 188, 190, 192, 193, 195, 196, 200, 203, 201, 205, 208, 206, 211, 215, 211, 216, 220, 217, 222, 226, 221, 226, 230, 224, 229, 233, 227, 232, 236, 232, 235, 240, 236, 239, 244, 236, 239, 244, 237, 240, 245, 239, 242, 247, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 248, 253, 245, 248, 253, 246, 249, 254, 246, 249, 254, 246, 250, 253, 247, 248, 252, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 247, 251, 254, 247, 251, 254, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 249, 245, 246, 248, 245, 246, 248, 245, 246, 248, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 246, 245, 244, 246, 245, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 240, 240, 238, 240, 240, 238, 240, 240, 238, 239, 239, 237, 239, 239, 237, 239, 239, 237, 240, 239, 237, 240, 239, 237, 240, 239, 235, 239, 238, 234, 239, 238, 234, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 232, 237, 236, 231, 237, 236, 231, 237, 236, 231, 236, 235, 230, 236, 235, 230, 236, 236, 228, 235, 235, 227, 234, 233, 228, 234, 233, 228, 233, 232, 227, 233, 232, 227, 233, 232, 227, 232, 231, 226, 234, 231, 226, 234, 231, 226, 234, 231, 226, 233, 230, 225, 233, 230, 225, 232, 229, 224, 232, 227, 223, 231, 226, 222, 231, 226, 222, 231, 226, 222, 230, 225, 219, 229, 224, 218, 229, 224, 218, 228, 223, 217, 229, 222, 216, 229, 222, 214, 229, 220, 213, 229, 220, 213, 228, 219, 210, 227, 218, 209, 227, 217, 207, 226, 216, 206, 227, 214, 205, 226, 213, 204, 225, 213, 201, 224, 212, 200, 223, 209, 198, 223, 209, 198, 223, 209, 198, 223, 211, 199, 224, 211, 203, 224, 214, 205, 224, 215, 208, 226, 217, 210, 225, 216, 209, 225, 216, 209, 225, 216, 209, 225, 216, 209, 225, 215, 206, 225, 215, 206, 225, 215, 206, 224, 214, 205, 224, 214, 205, 224, 214, 205, 224, 214, 205, 224, 214, 205, 224, 214, 205, 224, 214, 205, 224, 214, 205, 224, 214, 205, 224, 214, 205, 224, 214, 205, 223, 213, 204, 223, 213, 204, 222, 212, 203, 221, 211, 202, 221, 211, 202, 220, 210, 201, 223, 210, 201, 221, 208, 199, 219, 207, 195, 217, 205, 193, 217, 203, 190, 218, 204, 191, 219, 205, 192, 220, 206, 193, 222, 208, 197, 223, 209, 198, 222, 209, 200, 222, 209, 200, 221, 211, 202, 221, 211, 202, 220, 211, 204, 220, 211, 202, 221, 211, 201, 221, 211, 201, 221, 211, 201, 221, 211, 201, 221, 211, 201, 221, 211, 201, 221, 211, 201, 221, 211, 201, 223, 213, 203, 223, 213, 203, 223, 213, 203, 223, 213, 203, 223, 213, 203, 223, 213, 203, 223, 213, 203, 223, 213, 203, 223, 213, 203, 223, 213, 203, 224, 214, 204, 224, 214, 204, 224, 214, 204, 225, 215, 205, 225, 215, 205, 225, 215, 205, 224, 214, 204, 225, 215, 205, 225, 215, 205, 225, 215, 205, 226, 216, 206, 226, 216, 206, 226, 216, 206, 226, 216, 206, 226, 216, 206, 226, 216, 206, 226, 216, 206, 226, 216, 206, 226, 216, 206, 226, 216, 206, 226, 216, 206, 226, 216, 206, 228, 218, 208, 227, 217, 207, 226, 216, 206, 226, 216, 206, 226, 216, 206, 226, 216, 206, 227, 217, 207, 228, 218, 208, 227, 218, 209, 226, 219, 209, 226, 219, 209, 226, 219, 209, 227, 220, 210, 227, 220, 210, 227, 220, 210, 228, 221, 211, 228, 221, 211, 228, 221, 211, 228, 221, 211, 228, 221, 211, 228, 221, 211, 228, 221, 211, 228, 221, 211, 228, 221, 211, 229, 222, 212, 229, 222, 212, 230, 223, 213, 230, 223, 213, 230, 223, 213, 231, 224, 214, 231, 224, 214, 231, 224, 214, 232, 225, 215, 232, 225, 215, 232, 225, 215, 232, 225, 215, 232, 225, 215, 232, 225, 215, 232, 225, 215, 232, 225, 215, 232, 225, 217, 233, 226, 218, 233, 226, 218, 233, 226, 218, 234, 227, 219, 234, 227, 219, 232, 228, 219, 232, 228, 219, 233, 228, 222, 233, 228, 222, 233, 228, 222, 234, 229, 223, 233, 230, 225, 233, 230, 225, 234, 231, 226, 234, 231, 226, 234, 231, 224, 234, 231, 224, 234, 231, 224, 235, 232, 225, 235, 232, 225, 235, 232, 225, 236, 233, 228, 236, 233, 228, 236, 233, 228, 236, 233, 228, 237, 234, 229, 237, 234, 229, 237, 233, 230, 238, 234, 231, 238, 234, 231, 238, 234, 231, 236, 235, 231, 236, 235, 231, 237, 236, 232, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 242, 241, 237, 243, 242, 238, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 245, 244, 240, 245, 244, 240, 246, 245, 241, 246, 245, 241, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 249, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 246, 245, 244, 246, 245, 243, 245, 244, 243, 245, 244, 243, 245, 244, 240, 244, 245, 239, 243, 244, 237, 241, 242, 234, 238, 239, 231, 235, 236, 228, 232, 233, 228, 229, 231, 227, 228, 230, 223, 224, 226, 219, 220, 222, 215, 216, 218, 212, 213, 215, 211, 211, 213, 208, 208, 210, 203, 203, 205, 200, 200, 202, 193, 195, 194, 192, 194, 193, 190, 190, 190, 186, 186, 186, 181, 181, 181, 176, 176, 176, 172, 170, 171, 170, 168, 169, 173, 169, 168, 171, 167, 166, 169, 165, 164, 166, 162, 161, 164, 159, 156, 163, 158, 155, 162, 157, 154, 162, 157, 154, 160, 152, 150, 159, 151, 149, 158, 150, 148, 156, 148, 146, 154, 146, 144, 152, 144, 142, 150, 142, 140, 150, 142, 140, 144, 136, 134, 144, 136, 134, 143, 135, 133, 142, 134, 132, 141, 133, 131, 139, 131, 129, 139, 131, 129, 138, 130, 128, 138, 130, 128, 139, 131, 129, 142, 134, 132, 145, 137, 135, 148, 140, 138, 151, 143, 141, 154, 146, 144, 155, 147, 145, 155, 147, 145, 156, 148, 146, 157, 149, 147, 158, 150, 148, 159, 151, 149, 159, 151, 149, 158, 150, 148, 158, 150, 147, 158, 147, 143, 158, 147, 141, 158, 147, 141, 159, 148, 142, 161, 150, 146, 163, 152, 148, 164, 155, 150, 165, 156, 151, 168, 159, 154, 169, 160, 155, 170, 162, 159, 172, 164, 161, 175, 167, 164, 177, 169, 166, 179, 171, 168, 178, 173, 169, 181, 176, 173, 182, 178, 175, 183, 182, 180, 184, 184, 182, 187, 187, 189, 191, 192, 194, 195, 199, 202, 200, 204, 207, 206, 211, 215, 210, 215, 219, 215, 220, 224, 220, 225, 229, 222, 227, 231, 225, 230, 234, 229, 233, 236, 232, 236, 239, 236, 239, 244, 237, 240, 245, 239, 242, 247, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 248, 253, 246, 249, 254, 246, 249, 254, 246, 250, 253, 247, 248, 252, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 247, 251, 254, 247, 251, 254, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 249, 245, 246, 248, 245, 246, 248, 245, 246, 248, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 246, 245, 244, 246, 245, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 241, 241, 239, 240, 240, 238, 240, 240, 238, 240, 240, 238, 239, 239, 237, 239, 239, 237, 240, 239, 237, 240, 239, 237, 240, 239, 235, 240, 239, 235, 239, 238, 234, 239, 238, 234, 239, 238, 234, 238, 237, 233, 238, 237, 232, 238, 237, 232, 237, 236, 231, 237, 236, 231, 237, 236, 231, 236, 235, 230, 236, 236, 228, 236, 236, 228, 235, 234, 229, 234, 233, 228, 234, 233, 228, 234, 233, 228, 233, 232, 227, 233, 232, 227, 235, 232, 227, 235, 232, 227, 234, 231, 226, 234, 231, 226, 233, 230, 225, 232, 229, 224, 233, 228, 224, 232, 227, 223, 231, 226, 222, 231, 226, 222, 231, 226, 220, 230, 225, 219, 230, 225, 219, 229, 224, 218, 230, 223, 217, 229, 222, 216, 230, 221, 214, 229, 220, 213, 228, 219, 210, 228, 219, 210, 228, 218, 208, 227, 217, 207, 228, 215, 206, 226, 213, 204, 226, 214, 202, 225, 213, 201, 224, 210, 199, 224, 210, 199, 224, 210, 199, 223, 211, 199, 225, 212, 204, 224, 214, 205, 225, 216, 209, 226, 217, 210, 226, 217, 210, 226, 217, 210, 225, 216, 209, 225, 216, 209, 226, 216, 207, 225, 215, 206, 225, 215, 206, 225, 215, 206, 225, 215, 206, 225, 215, 206, 225, 215, 206, 225, 215, 206, 225, 215, 206, 225, 215, 206, 225, 215, 206, 225, 215, 206, 225, 215, 206, 224, 214, 205, 224, 214, 205, 223, 213, 204, 222, 212, 203, 221, 211, 202, 221, 211, 202, 221, 211, 202, 224, 211, 202, 222, 209, 200, 220, 208, 196, 218, 206, 194, 218, 204, 191, 218, 204, 191, 220, 206, 193, 221, 207, 194, 223, 209, 198, 223, 209, 198, 222, 209, 200, 223, 210, 201, 221, 211, 202, 220, 211, 202, 221, 212, 205, 221, 212, 203, 221, 211, 202, 221, 211, 201, 221, 211, 201, 221, 211, 201, 221, 211, 201, 221, 211, 201, 221, 211, 201, 221, 211, 201, 223, 213, 203, 223, 213, 203, 223, 213, 203, 223, 213, 203, 223, 213, 203, 223, 213, 203, 223, 213, 203, 223, 213, 203, 223, 213, 203, 224, 214, 204, 224, 214, 204, 224, 214, 204, 225, 215, 205, 225, 215, 205, 225, 215, 205, 226, 216, 206, 225, 215, 205, 225, 215, 205, 225, 215, 205, 226, 216, 206, 226, 216, 206, 226, 216, 206, 227, 217, 207, 227, 217, 207, 227, 217, 207, 227, 217, 207, 227, 217, 207, 227, 217, 207, 227, 217, 207, 227, 217, 207, 227, 217, 207, 227, 217, 207, 228, 218, 208, 228, 218, 208, 227, 217, 207, 226, 216, 206, 226, 216, 206, 227, 217, 207, 228, 218, 208, 227, 219, 208, 227, 218, 209, 226, 219, 209, 227, 220, 210, 227, 220, 210, 228, 221, 211, 228, 221, 211, 228, 221, 211, 228, 221, 211, 229, 222, 212, 229, 222, 212, 229, 222, 212, 229, 222, 212, 229, 222, 212, 229, 222, 212, 229, 222, 212, 229, 222, 212, 230, 223, 213, 230, 223, 213, 230, 223, 213, 230, 223, 213, 231, 224, 214, 231, 224, 214, 232, 225, 215, 232, 225, 215, 232, 225, 215, 232, 225, 215, 232, 225, 215, 232, 225, 215, 232, 225, 215, 232, 225, 215, 232, 225, 215, 232, 225, 215, 233, 226, 218, 233, 226, 218, 233, 226, 218, 234, 227, 219, 234, 227, 219, 234, 227, 219, 233, 229, 220, 233, 229, 220, 233, 228, 222, 233, 228, 222, 234, 229, 223, 234, 229, 223, 233, 230, 225, 234, 231, 226, 234, 231, 226, 234, 231, 226, 234, 231, 224, 234, 231, 224, 235, 232, 225, 235, 232, 225, 235, 232, 225, 236, 233, 226, 236, 233, 228, 236, 233, 228, 237, 234, 229, 237, 234, 229, 237, 234, 229, 237, 234, 229, 238, 234, 231, 238, 234, 231, 239, 235, 232, 239, 235, 232, 236, 235, 231, 237, 236, 232, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 242, 241, 237, 243, 242, 238, 243, 242, 238, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 245, 244, 240, 245, 244, 240, 246, 245, 241, 246, 245, 241, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 246, 245, 244, 246, 245, 243, 245, 244, 243, 245, 244, 243, 245, 244, 241, 245, 246, 240, 244, 245, 238, 242, 243, 236, 240, 241, 233, 237, 238, 230, 234, 235, 231, 232, 234, 230, 231, 233, 226, 227, 229, 223, 224, 226, 219, 220, 222, 216, 217, 219, 215, 215, 217, 211, 211, 213, 207, 207, 209, 204, 204, 206, 202, 204, 203, 201, 203, 202, 200, 200, 200, 196, 196, 196, 191, 191, 191, 186, 186, 186, 183, 181, 182, 180, 178, 179, 177, 173, 172, 175, 171, 170, 172, 168, 167, 168, 164, 163, 166, 161, 158, 164, 159, 156, 162, 157, 154, 162, 157, 154, 161, 153, 151, 160, 152, 150, 158, 150, 148, 156, 148, 146, 154, 146, 144, 152, 144, 142, 151, 143, 141, 150, 142, 140, 145, 137, 135, 145, 137, 135, 144, 136, 134, 143, 135, 133, 141, 133, 131, 140, 132, 130, 139, 131, 129, 139, 131, 129, 137, 129, 127, 138, 130, 128, 141, 133, 131, 144, 136, 134, 148, 140, 138, 151, 143, 141, 154, 146, 144, 155, 147, 145, 156, 148, 146, 157, 149, 147, 158, 150, 148, 159, 151, 149, 159, 151, 149, 159, 151, 149, 158, 150, 148, 157, 149, 146, 157, 146, 142, 157, 146, 140, 157, 146, 140, 158, 147, 141, 159, 148, 144, 162, 151, 147, 163, 154, 149, 164, 155, 150, 166, 157, 152, 167, 158, 153, 168, 160, 157, 170, 162, 159, 173, 165, 162, 175, 167, 164, 177, 169, 166, 176, 171, 167, 180, 175, 172, 181, 177, 174, 182, 181, 179, 183, 183, 181, 186, 186, 186, 190, 191, 193, 194, 198, 201, 199, 203, 206, 205, 210, 214, 209, 214, 218, 214, 219, 223, 218, 223, 227, 220, 225, 229, 223, 228, 232, 227, 231, 234, 230, 234, 237, 236, 239, 244, 237, 240, 245, 239, 242, 247, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 248, 253, 245, 248, 253, 246, 250, 253, 247, 248, 252, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 247, 251, 254, 247, 251, 254, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 250, 252, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 249, 245, 246, 248, 245, 246, 248, 245, 246, 248, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 246, 245, 244, 246, 245, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 241, 241, 239, 240, 240, 238, 240, 240, 238, 240, 240, 238, 241, 240, 238, 241, 240, 238, 240, 239, 235, 240, 239, 235, 240, 239, 235, 239, 238, 234, 239, 238, 234, 239, 238, 234, 238, 237, 232, 238, 237, 232, 238, 237, 232, 238, 237, 232, 237, 236, 231, 237, 236, 231, 236, 236, 228, 236, 236, 228, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 234, 233, 228, 234, 233, 228, 234, 233, 228, 233, 232, 227, 235, 232, 227, 234, 231, 226, 234, 231, 226, 233, 230, 225, 233, 228, 224, 232, 227, 223, 232, 227, 223, 231, 226, 222, 231, 226, 222, 231, 226, 222, 230, 225, 219, 230, 225, 219, 231, 224, 218, 230, 223, 217, 230, 223, 215, 229, 222, 214, 229, 220, 211, 229, 220, 211, 229, 219, 209, 228, 218, 208, 228, 215, 206, 227, 214, 205, 226, 213, 204, 226, 213, 204, 225, 211, 200, 225, 211, 200, 225, 211, 200, 224, 212, 200, 225, 212, 204, 225, 215, 206, 226, 217, 210, 227, 218, 211, 226, 217, 210, 226, 217, 210, 226, 217, 210, 225, 216, 209, 226, 216, 207, 226, 216, 207, 225, 215, 206, 225, 215, 206, 225, 215, 206, 225, 215, 206, 225, 215, 206, 225, 215, 206, 225, 215, 206, 225, 215, 206, 225, 215, 206, 225, 215, 206, 225, 215, 206, 225, 215, 206, 224, 214, 205, 224, 214, 205, 223, 213, 204, 222, 212, 203, 221, 211, 202, 221, 211, 202, 225, 212, 203, 223, 210, 201, 221, 209, 197, 218, 206, 194, 219, 205, 194, 219, 205, 194, 220, 206, 193, 221, 207, 194, 223, 209, 198, 223, 209, 198, 223, 210, 201, 223, 210, 201, 221, 211, 202, 221, 212, 203, 221, 212, 205, 221, 212, 203, 222, 212, 203, 222, 212, 202, 222, 212, 202, 222, 212, 202, 222, 212, 202, 222, 212, 202, 222, 212, 202, 222, 212, 202, 224, 214, 204, 224, 214, 204, 224, 214, 204, 224, 214, 204, 224, 214, 204, 224, 214, 204, 224, 214, 204, 224, 214, 204, 224, 214, 204, 224, 214, 204, 224, 214, 204, 225, 215, 205, 225, 215, 205, 226, 216, 206, 226, 216, 206, 226, 216, 206, 225, 215, 205, 225, 215, 205, 226, 216, 206, 226, 216, 206, 226, 216, 206, 227, 217, 207, 227, 217, 207, 227, 217, 207, 228, 218, 208, 228, 218, 208, 228, 218, 208, 228, 218, 208, 228, 218, 208, 228, 218, 208, 228, 218, 208, 228, 218, 208, 229, 219, 209, 228, 218, 208, 227, 217, 207, 226, 216, 206, 226, 216, 206, 227, 217, 207, 228, 218, 208, 228, 220, 209, 228, 219, 210, 227, 220, 210, 228, 221, 211, 228, 221, 211, 228, 221, 211, 229, 222, 212, 229, 222, 212, 229, 222, 212, 229, 222, 212, 229, 222, 212, 229, 222, 212, 229, 222, 212, 229, 222, 212, 229, 222, 212, 229, 222, 212, 229, 222, 212, 230, 223, 213, 230, 223, 213, 231, 224, 214, 231, 224, 214, 231, 224, 214, 232, 225, 215, 232, 225, 215, 232, 225, 215, 232, 225, 215, 232, 225, 215, 232, 225, 215, 232, 225, 215, 232, 225, 215, 232, 225, 215, 232, 225, 215, 232, 225, 215, 233, 226, 218, 233, 226, 218, 234, 227, 219, 234, 227, 219, 234, 227, 219, 235, 228, 220, 233, 229, 220, 233, 229, 220, 234, 229, 223, 234, 229, 223, 234, 229, 223, 235, 230, 224, 234, 231, 226, 234, 231, 226, 235, 232, 227, 235, 232, 227, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 236, 233, 226, 236, 233, 226, 236, 233, 228, 237, 234, 229, 237, 234, 229, 237, 234, 229, 238, 235, 230, 238, 235, 230, 238, 234, 231, 239, 235, 232, 239, 235, 232, 239, 235, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 245, 244, 240, 245, 244, 240, 246, 245, 241, 246, 245, 241, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 246, 245, 244, 246, 245, 243, 245, 244, 243, 245, 244, 243, 245, 244, 241, 245, 246, 240, 244, 245, 239, 243, 244, 237, 241, 242, 234, 238, 239, 232, 236, 237, 233, 234, 236, 232, 233, 235, 230, 231, 233, 226, 227, 229, 222, 223, 225, 219, 220, 222, 218, 218, 220, 215, 215, 217, 210, 210, 212, 207, 207, 209, 207, 208, 210, 206, 207, 209, 204, 205, 207, 201, 202, 204, 198, 198, 198, 193, 193, 193, 190, 188, 189, 187, 185, 186, 179, 178, 176, 177, 176, 174, 175, 171, 170, 171, 167, 166, 168, 162, 162, 166, 160, 160, 164, 158, 158, 163, 157, 157, 162, 154, 152, 161, 153, 151, 160, 152, 150, 158, 150, 148, 156, 148, 146, 154, 146, 144, 152, 144, 142, 151, 143, 141, 147, 139, 137, 146, 138, 136, 145, 137, 135, 144, 136, 134, 143, 135, 133, 142, 134, 132, 141, 133, 131, 141, 133, 131, 138, 130, 128, 139, 131, 129, 141, 133, 131, 144, 136, 134, 148, 140, 138, 151, 143, 141, 153, 145, 143, 154, 146, 144, 157, 149, 147, 157, 149, 147, 158, 150, 148, 159, 151, 149, 158, 150, 148, 158, 150, 148, 157, 149, 147, 156, 148, 145, 155, 144, 140, 155, 144, 138, 156, 145, 139, 157, 146, 140, 158, 147, 141, 160, 149, 143, 162, 153, 148, 163, 154, 149, 165, 156, 151, 166, 157, 152, 168, 158, 156, 170, 160, 158, 172, 164, 161, 174, 166, 163, 176, 168, 165, 175, 170, 166, 179, 174, 171, 180, 176, 173, 181, 180, 178, 182, 182, 180, 185, 185, 185, 188, 189, 191, 193, 197, 200, 198, 202, 205, 203, 208, 212, 207, 212, 216, 212, 217, 221, 216, 221, 225, 219, 224, 227, 222, 227, 230, 227, 231, 234, 229, 233, 236, 236, 239, 244, 237, 240, 245, 239, 242, 247, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 248, 253, 245, 249, 252, 247, 248, 252, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 247, 251, 254, 247, 251, 254, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 252, 249, 250, 252, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 249, 245, 246, 248, 245, 246, 248, 245, 246, 248, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 246, 245, 244, 246, 245, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 241, 241, 239, 240, 240, 238, 240, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 236, 240, 239, 235, 240, 239, 235, 240, 239, 235, 239, 238, 234, 239, 238, 234, 239, 238, 233, 239, 238, 233, 238, 237, 232, 238, 237, 232, 238, 237, 232, 237, 236, 231, 237, 237, 229, 237, 237, 229, 236, 235, 230, 236, 235, 230, 236, 235, 230, 235, 234, 229, 235, 234, 229, 235, 234, 229, 234, 233, 228, 234, 233, 228, 235, 232, 227, 235, 232, 227, 234, 231, 226, 233, 230, 225, 233, 228, 224, 233, 228, 224, 232, 227, 223, 232, 227, 223, 232, 227, 223, 232, 227, 223, 231, 226, 220, 230, 225, 219, 232, 225, 219, 231, 224, 218, 230, 223, 215, 230, 223, 215, 230, 221, 212, 229, 220, 211, 230, 220, 210, 228, 218, 208, 229, 216, 207, 228, 215, 206, 227, 214, 205, 227, 214, 205, 226, 212, 201, 226, 212, 201, 225, 211, 200, 225, 213, 201, 226, 213, 205, 226, 216, 207, 227, 218, 211, 228, 219, 212, 227, 218, 211, 226, 217, 210, 226, 217, 210, 226, 217, 210, 226, 216, 207, 226, 216, 207, 226, 216, 207, 226, 216, 207, 225, 215, 206, 225, 215, 206, 225, 215, 206, 225, 215, 206, 225, 215, 206, 225, 215, 206, 225, 215, 206, 225, 215, 206, 226, 216, 207, 225, 215, 206, 225, 215, 206, 224, 214, 205, 223, 213, 204, 222, 212, 203, 222, 212, 203, 221, 211, 202, 225, 212, 203, 224, 211, 202, 221, 209, 197, 219, 207, 195, 219, 205, 194, 220, 206, 195, 221, 207, 194, 222, 208, 195, 224, 210, 199, 223, 211, 199, 223, 210, 201, 221, 211, 201, 221, 212, 203, 221, 212, 203, 220, 213, 205, 221, 214, 204, 222, 212, 203, 222, 212, 202, 222, 212, 202, 222, 212, 202, 222, 212, 202, 222, 212, 202, 222, 212, 202, 222, 212, 202, 224, 214, 204, 224, 214, 204, 224, 214, 204, 224, 214, 204, 224, 214, 204, 224, 214, 204, 224, 214, 204, 224, 214, 204, 224, 214, 204, 224, 214, 204, 225, 215, 205, 225, 215, 205, 226, 216, 206, 226, 216, 206, 226, 216, 206, 226, 216, 206, 226, 216, 206, 226, 216, 206, 226, 216, 206, 226, 216, 206, 227, 217, 207, 227, 217, 207, 227, 217, 207, 228, 218, 208, 228, 218, 208, 228, 218, 208, 228, 218, 208, 228, 218, 208, 228, 218, 208, 228, 218, 208, 228, 218, 208, 228, 218, 208, 229, 219, 209, 228, 218, 208, 227, 217, 207, 227, 217, 207, 227, 217, 207, 227, 217, 207, 228, 218, 208, 228, 220, 209, 229, 220, 211, 228, 221, 211, 228, 221, 211, 229, 222, 212, 229, 222, 212, 230, 223, 213, 230, 223, 213, 230, 223, 213, 230, 223, 213, 230, 223, 213, 230, 223, 213, 230, 223, 213, 230, 223, 213, 230, 223, 213, 230, 223, 213, 230, 223, 213, 230, 223, 213, 231, 224, 214, 231, 224, 214, 231, 224, 214, 232, 225, 215, 232, 225, 215, 232, 225, 215, 233, 226, 216, 233, 226, 216, 233, 226, 216, 233, 226, 216, 233, 226, 216, 233, 226, 216, 233, 226, 216, 233, 226, 216, 233, 226, 216, 234, 227, 219, 234, 227, 219, 234, 227, 219, 234, 227, 219, 235, 228, 220, 235, 228, 220, 233, 229, 220, 234, 230, 221, 234, 229, 223, 234, 229, 223, 235, 230, 224, 235, 230, 224, 234, 231, 226, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 225, 235, 232, 225, 235, 232, 225, 236, 233, 226, 236, 233, 226, 237, 234, 227, 237, 234, 229, 237, 234, 229, 237, 234, 229, 238, 235, 230, 238, 235, 230, 238, 235, 230, 239, 235, 232, 239, 235, 232, 239, 235, 232, 240, 236, 233, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 242, 241, 237, 243, 242, 238, 243, 242, 238, 243, 242, 238, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 245, 244, 240, 245, 244, 240, 246, 245, 241, 246, 245, 241, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 251, 250, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 246, 245, 244, 246, 245, 243, 245, 244, 243, 245, 244, 243, 245, 244, 241, 245, 246, 240, 244, 245, 239, 243, 244, 237, 241, 242, 235, 239, 240, 233, 237, 238, 234, 235, 237, 233, 234, 236, 232, 233, 235, 229, 230, 232, 224, 225, 227, 221, 222, 224, 220, 220, 222, 217, 217, 219, 213, 213, 215, 209, 209, 211, 206, 207, 209, 205, 206, 208, 203, 204, 206, 200, 201, 203, 197, 197, 197, 193, 193, 193, 190, 188, 189, 188, 186, 187, 180, 179, 177, 178, 177, 175, 177, 173, 172, 173, 169, 168, 171, 165, 165, 168, 162, 162, 167, 161, 161, 166, 160, 160, 164, 156, 154, 163, 155, 153, 161, 153, 151, 159, 151, 149, 157, 149, 147, 155, 147, 145, 154, 146, 144, 153, 145, 143, 149, 141, 139, 149, 141, 139, 148, 140, 138, 146, 138, 136, 145, 137, 135, 144, 136, 134, 143, 135, 133, 143, 135, 133, 141, 133, 131, 142, 134, 132, 143, 135, 133, 145, 137, 135, 148, 140, 138, 150, 142, 140, 152, 144, 142, 153, 145, 143, 156, 148, 146, 157, 149, 147, 158, 150, 148, 158, 150, 148, 157, 149, 147, 156, 148, 146, 155, 147, 145, 154, 146, 143, 154, 143, 139, 154, 143, 137, 155, 144, 138, 155, 144, 138, 157, 146, 140, 159, 148, 142, 160, 151, 146, 162, 153, 148, 165, 156, 151, 166, 157, 152, 167, 157, 155, 170, 160, 158, 171, 163, 160, 173, 165, 162, 175, 167, 164, 174, 169, 165, 178, 173, 170, 179, 175, 172, 180, 179, 177, 181, 181, 179, 183, 183, 183, 187, 189, 188, 192, 196, 199, 197, 201, 204, 200, 205, 209, 204, 209, 213, 211, 216, 220, 216, 221, 225, 219, 224, 227, 223, 228, 231, 228, 232, 235, 231, 235, 238, 236, 239, 244, 237, 240, 245, 239, 242, 247, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 249, 252, 247, 248, 252, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 247, 251, 254, 247, 251, 254, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 252, 249, 250, 252, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 249, 245, 246, 248, 245, 246, 248, 245, 246, 248, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 246, 245, 244, 246, 245, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 240, 240, 238, 240, 240, 238, 242, 241, 239, 241, 240, 238, 241, 240, 236, 241, 240, 236, 240, 239, 235, 240, 239, 235, 240, 239, 235, 239, 238, 234, 239, 238, 233, 239, 238, 233, 239, 238, 233, 238, 237, 232, 238, 237, 232, 237, 236, 231, 237, 237, 229, 237, 237, 229, 236, 237, 231, 236, 237, 231, 236, 235, 230, 236, 235, 230, 236, 235, 230, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 232, 227, 235, 232, 227, 234, 231, 226, 234, 231, 226, 233, 230, 225, 232, 229, 224, 232, 227, 223, 232, 227, 223, 233, 228, 224, 232, 227, 223, 232, 227, 223, 231, 226, 222, 230, 225, 219, 229, 224, 218, 231, 224, 216, 231, 224, 216, 230, 221, 212, 230, 221, 212, 230, 220, 211, 229, 219, 210, 228, 218, 208, 227, 217, 207, 228, 215, 206, 227, 214, 205, 226, 212, 201, 226, 212, 201, 226, 212, 201, 225, 213, 201, 227, 214, 206, 227, 217, 208, 227, 218, 211, 229, 220, 213, 227, 218, 211, 227, 218, 211, 226, 217, 210, 226, 217, 210, 227, 217, 208, 226, 216, 207, 226, 216, 207, 226, 216, 207, 226, 216, 207, 226, 216, 207, 226, 216, 207, 226, 216, 207, 226, 216, 207, 226, 216, 207, 226, 216, 207, 226, 216, 207, 226, 216, 207, 226, 216, 207, 225, 215, 206, 224, 214, 205, 223, 213, 204, 223, 213, 204, 222, 212, 203, 222, 212, 203, 224, 214, 204, 222, 212, 202, 222, 210, 198, 220, 208, 196, 220, 206, 195, 220, 206, 195, 222, 208, 197, 223, 209, 198, 223, 211, 199, 223, 211, 199, 223, 210, 201, 222, 212, 202, 221, 212, 203, 221, 212, 203, 221, 214, 206, 221, 214, 204, 223, 213, 204, 223, 213, 203, 223, 213, 203, 223, 213, 203, 223, 213, 203, 223, 213, 203, 223, 213, 203, 223, 213, 203, 224, 214, 204, 224, 214, 204, 224, 214, 204, 224, 214, 204, 224, 214, 204, 224, 214, 204, 224, 214, 204, 224, 214, 204, 225, 215, 205, 225, 215, 205, 225, 215, 205, 225, 215, 205, 226, 216, 206, 226, 216, 206, 227, 217, 207, 227, 217, 207, 226, 216, 206, 226, 216, 206, 226, 216, 206, 227, 217, 207, 227, 217, 207, 227, 217, 207, 228, 218, 208, 228, 218, 208, 229, 219, 209, 229, 219, 209, 229, 219, 209, 229, 219, 209, 229, 219, 209, 229, 219, 209, 229, 219, 209, 229, 219, 209, 229, 219, 209, 229, 219, 209, 228, 218, 208, 227, 217, 207, 227, 217, 207, 228, 218, 208, 229, 219, 209, 228, 220, 209, 229, 220, 211, 229, 222, 212, 229, 222, 212, 229, 222, 212, 230, 223, 213, 230, 223, 213, 230, 223, 213, 231, 224, 214, 230, 223, 213, 230, 223, 213, 230, 223, 213, 230, 223, 213, 230, 223, 213, 230, 223, 213, 230, 223, 213, 230, 223, 213, 231, 224, 214, 231, 224, 214, 231, 224, 214, 232, 225, 215, 232, 225, 215, 232, 225, 215, 233, 226, 216, 233, 226, 216, 233, 226, 216, 233, 226, 216, 233, 226, 216, 233, 226, 216, 233, 226, 216, 233, 226, 216, 233, 226, 216, 233, 226, 216, 234, 227, 219, 234, 227, 219, 234, 227, 219, 235, 228, 220, 235, 228, 220, 235, 228, 220, 234, 230, 221, 234, 230, 221, 234, 229, 223, 234, 229, 223, 235, 230, 224, 235, 230, 224, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 225, 235, 232, 225, 236, 233, 226, 236, 233, 226, 236, 233, 226, 237, 234, 227, 237, 234, 229, 237, 234, 229, 238, 235, 230, 238, 235, 230, 238, 235, 230, 239, 236, 231, 239, 235, 232, 239, 235, 232, 240, 236, 233, 240, 236, 233, 238, 237, 235, 238, 237, 235, 238, 237, 235, 238, 237, 235, 239, 238, 236, 239, 238, 236, 240, 239, 237, 240, 239, 237, 239, 238, 236, 239, 238, 236, 240, 239, 237, 240, 239, 237, 240, 239, 237, 241, 240, 238, 241, 240, 238, 241, 240, 238, 242, 241, 237, 242, 241, 237, 242, 241, 237, 243, 242, 238, 243, 242, 238, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 245, 244, 240, 245, 244, 240, 246, 245, 241, 246, 245, 241, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 251, 250, 249, 251, 250, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 247, 249, 248, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 246, 245, 244, 246, 245, 243, 245, 244, 243, 245, 244, 243, 245, 244, 240, 244, 245, 240, 244, 245, 238, 242, 243, 237, 241, 242, 235, 239, 240, 233, 237, 238, 234, 235, 237, 234, 235, 237, 234, 235, 237, 230, 231, 233, 226, 227, 229, 223, 224, 226, 222, 222, 224, 219, 219, 221, 214, 214, 216, 211, 211, 213, 204, 205, 207, 203, 204, 206, 202, 203, 205, 199, 200, 202, 196, 196, 196, 192, 192, 192, 188, 188, 188, 186, 186, 186, 181, 179, 180, 179, 177, 178, 178, 174, 173, 175, 171, 170, 173, 167, 167, 171, 165, 165, 170, 164, 164, 169, 163, 163, 165, 157, 155, 165, 157, 155, 163, 155, 153, 161, 153, 151, 159, 151, 149, 157, 149, 147, 156, 148, 146, 155, 147, 145, 151, 143, 141, 151, 143, 141, 150, 142, 140, 149, 141, 139, 147, 139, 137, 146, 138, 136, 145, 137, 135, 145, 137, 135, 144, 136, 134, 145, 137, 135, 146, 138, 136, 147, 139, 137, 148, 140, 138, 150, 142, 140, 150, 142, 140, 151, 143, 141, 156, 148, 146, 156, 148, 146, 157, 149, 147, 157, 149, 147, 156, 148, 146, 155, 147, 145, 153, 145, 143, 152, 144, 141, 153, 142, 138, 153, 142, 136, 154, 143, 137, 154, 143, 137, 156, 145, 139, 158, 147, 141, 160, 149, 145, 162, 151, 147, 165, 156, 151, 166, 157, 152, 167, 158, 153, 170, 161, 156, 172, 162, 160, 174, 164, 162, 175, 167, 164, 174, 169, 165, 177, 172, 169, 178, 174, 171, 179, 178, 176, 180, 180, 178, 182, 182, 182, 186, 188, 187, 191, 195, 198, 196, 200, 203, 197, 202, 205, 202, 207, 210, 209, 214, 217, 215, 220, 223, 220, 225, 228, 224, 229, 232, 230, 234, 237, 234, 238, 241, 236, 239, 244, 237, 240, 245, 239, 242, 247, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 245, 249, 252, 247, 248, 252, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 247, 251, 254, 247, 251, 254, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 252, 249, 250, 252, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 249, 245, 246, 248, 245, 246, 248, 245, 246, 248, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 246, 245, 244, 246, 245, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 241, 241, 239, 240, 240, 238, 242, 241, 239, 242, 241, 239, 241, 240, 236, 241, 240, 236, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 239, 238, 234, 239, 238, 233, 239, 238, 234, 238, 237, 232, 238, 237, 233, 238, 237, 232, 237, 236, 231, 237, 236, 231, 236, 237, 231, 236, 237, 231, 237, 236, 232, 236, 235, 230, 236, 235, 231, 236, 235, 230, 235, 234, 229, 235, 234, 229, 235, 232, 227, 235, 232, 227, 234, 231, 226, 234, 231, 226, 233, 230, 225, 232, 229, 224, 233, 228, 224, 232, 227, 223, 233, 228, 224, 233, 228, 224, 232, 227, 223, 231, 226, 222, 231, 226, 220, 230, 225, 219, 231, 224, 216, 231, 224, 216, 231, 222, 213, 230, 221, 212, 230, 220, 211, 229, 219, 210, 228, 218, 208, 227, 217, 207, 226, 216, 206, 228, 215, 206, 226, 214, 202, 226, 212, 201, 226, 212, 201, 226, 213, 204, 225, 215, 206, 226, 217, 208, 228, 219, 212, 229, 220, 213, 227, 218, 211, 227, 218, 211, 227, 218, 211, 226, 217, 210, 226, 217, 208, 226, 216, 207, 226, 216, 207, 226, 216, 207, 226, 216, 207, 226, 216, 207, 226, 216, 207, 226, 216, 207, 226, 216, 207, 226, 216, 207, 226, 216, 207, 226, 216, 207, 226, 216, 207, 226, 216, 207, 225, 215, 206, 224, 214, 205, 223, 213, 204, 223, 213, 204, 222, 212, 203, 222, 212, 203, 224, 214, 204, 225, 213, 201, 222, 210, 198, 220, 208, 196, 220, 206, 195, 221, 207, 196, 222, 208, 197, 222, 210, 198, 223, 211, 199, 223, 211, 199, 221, 211, 201, 222, 212, 202, 221, 212, 203, 222, 213, 204, 222, 213, 204, 222, 213, 204, 222, 214, 203, 223, 213, 203, 223, 213, 203, 223, 213, 203, 223, 213, 203, 223, 213, 203, 223, 213, 203, 223, 213, 203, 225, 215, 205, 225, 215, 205, 225, 215, 205, 225, 215, 205, 225, 215, 205, 225, 215, 205, 225, 215, 205, 225, 215, 205, 225, 215, 205, 225, 215, 205, 225, 215, 205, 226, 216, 206, 226, 216, 206, 226, 216, 206, 227, 217, 207, 227, 217, 207, 226, 216, 206, 226, 216, 206, 226, 216, 206, 227, 217, 207, 227, 217, 207, 228, 218, 208, 228, 218, 208, 228, 218, 208, 229, 219, 209, 229, 219, 209, 229, 219, 209, 229, 219, 209, 229, 219, 209, 229, 219, 209, 229, 219, 209, 229, 219, 209, 229, 219, 209, 229, 219, 209, 228, 218, 208, 227, 217, 207, 227, 217, 207, 228, 218, 208, 229, 219, 209, 228, 220, 209, 229, 222, 212, 229, 222, 212, 229, 222, 212, 230, 223, 213, 230, 223, 213, 230, 223, 213, 231, 224, 214, 231, 224, 214, 230, 223, 213, 230, 223, 213, 230, 223, 215, 230, 223, 215, 230, 223, 215, 230, 223, 215, 230, 223, 215, 230, 223, 215, 231, 224, 214, 231, 224, 214, 231, 224, 214, 232, 225, 215, 232, 225, 215, 232, 225, 215, 233, 226, 216, 233, 226, 216, 233, 226, 216, 233, 226, 216, 233, 226, 216, 233, 226, 216, 233, 226, 216, 233, 226, 216, 233, 226, 216, 233, 226, 216, 234, 227, 219, 234, 227, 219, 234, 227, 219, 235, 228, 220, 235, 228, 220, 236, 229, 221, 234, 230, 221, 234, 230, 221, 234, 229, 223, 235, 230, 224, 235, 230, 224, 235, 230, 224, 235, 232, 227, 235, 232, 227, 235, 232, 227, 236, 233, 228, 235, 232, 227, 236, 233, 226, 236, 233, 228, 236, 233, 226, 237, 234, 229, 237, 234, 229, 237, 234, 229, 237, 234, 229, 238, 235, 230, 238, 235, 230, 238, 235, 230, 239, 236, 231, 239, 235, 232, 239, 235, 232, 240, 236, 233, 240, 236, 233, 238, 237, 235, 238, 237, 235, 238, 237, 235, 239, 238, 236, 239, 238, 236, 239, 238, 236, 240, 239, 237, 240, 239, 237, 239, 238, 236, 239, 238, 236, 240, 239, 237, 240, 239, 237, 240, 239, 237, 241, 240, 238, 241, 240, 238, 241, 240, 238, 242, 241, 237, 242, 241, 237, 243, 242, 238, 243, 242, 238, 243, 242, 238, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 245, 244, 240, 245, 244, 240, 246, 245, 241, 246, 245, 241, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 251, 250, 249, 251, 250, 249, 251, 250, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 247, 249, 248, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 246, 245, 244, 246, 245, 243, 245, 244, 243, 245, 244, 243, 245, 244, 240, 244, 245, 239, 243, 244, 238, 242, 243, 237, 241, 242, 235, 239, 240, 233, 237, 238, 234, 235, 237, 234, 235, 237, 234, 235, 237, 231, 232, 234, 226, 227, 229, 223, 224, 226, 222, 222, 224, 219, 219, 221, 215, 215, 217, 210, 211, 213, 205, 206, 208, 204, 205, 207, 202, 203, 205, 200, 201, 203, 197, 197, 199, 193, 193, 193, 189, 189, 189, 187, 187, 187, 180, 178, 179, 179, 177, 178, 176, 175, 173, 175, 171, 170, 173, 169, 168, 172, 168, 167, 171, 167, 166, 172, 166, 166, 165, 160, 157, 164, 159, 156, 164, 156, 154, 162, 154, 152, 160, 152, 150, 158, 150, 148, 157, 149, 147, 156, 148, 146, 152, 144, 142, 152, 144, 142, 151, 143, 141, 150, 142, 140, 149, 141, 139, 148, 140, 138, 147, 139, 137, 146, 138, 136, 147, 139, 137, 147, 139, 137, 147, 139, 137, 148, 140, 138, 149, 141, 139, 149, 141, 139, 150, 142, 140, 150, 142, 140, 155, 147, 145, 156, 148, 146, 156, 148, 146, 156, 148, 146, 155, 147, 145, 154, 146, 144, 152, 144, 142, 151, 143, 140, 152, 143, 138, 153, 142, 138, 153, 142, 138, 154, 143, 139, 156, 145, 141, 158, 147, 143, 160, 149, 145, 161, 150, 146, 165, 155, 153, 166, 157, 152, 168, 158, 156, 170, 160, 158, 172, 162, 160, 175, 165, 163, 175, 167, 164, 176, 168, 166, 176, 171, 168, 178, 174, 173, 180, 176, 175, 180, 179, 177, 182, 182, 182, 186, 188, 187, 192, 193, 195, 195, 199, 202, 197, 201, 204, 202, 206, 209, 208, 213, 216, 215, 220, 223, 220, 225, 228, 225, 230, 233, 232, 236, 239, 236, 239, 244, 236, 239, 244, 237, 240, 245, 239, 242, 247, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 244, 248, 251, 247, 248, 252, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 247, 251, 254, 247, 251, 254, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 247, 251, 254, 247, 251, 254, 247, 251, 254, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 249, 246, 247, 249, 245, 246, 248, 245, 246, 248, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 243, 242, 240, 242, 241, 239, 242, 241, 239, 242, 241, 239, 241, 240, 238, 241, 240, 238, 241, 240, 238, 240, 239, 237, 240, 239, 237, 239, 238, 234, 239, 238, 236, 239, 238, 234, 238, 237, 235, 238, 237, 233, 238, 237, 233, 238, 237, 233, 236, 237, 232, 236, 237, 232, 236, 236, 234, 235, 236, 231, 235, 235, 233, 235, 236, 231, 234, 235, 230, 234, 235, 230, 235, 234, 230, 235, 234, 230, 234, 233, 229, 233, 232, 228, 235, 232, 227, 234, 231, 226, 233, 230, 225, 233, 230, 225, 233, 228, 224, 232, 227, 223, 232, 227, 221, 231, 226, 220, 232, 225, 219, 231, 224, 218, 231, 224, 216, 230, 223, 215, 230, 223, 213, 230, 223, 213, 230, 222, 211, 230, 222, 211, 229, 221, 210, 228, 220, 209, 227, 219, 208, 228, 218, 208, 228, 216, 204, 228, 216, 204, 227, 214, 205, 225, 215, 205, 226, 216, 207, 227, 218, 209, 228, 219, 212, 228, 221, 213, 227, 220, 212, 227, 220, 212, 226, 219, 211, 226, 219, 211, 225, 218, 208, 226, 217, 208, 226, 217, 208, 226, 217, 208, 225, 216, 207, 225, 216, 207, 225, 216, 207, 225, 216, 207, 225, 216, 207, 225, 216, 207, 225, 216, 207, 225, 216, 207, 226, 216, 207, 226, 216, 207, 226, 216, 207, 225, 215, 206, 225, 215, 206, 225, 215, 206, 224, 214, 205, 224, 214, 204, 225, 213, 201, 225, 211, 198, 224, 210, 197, 223, 209, 196, 221, 209, 197, 222, 210, 198, 222, 210, 198, 223, 211, 199, 224, 212, 200, 222, 212, 200, 223, 213, 203, 223, 213, 203, 223, 213, 203, 224, 214, 204, 224, 214, 204, 223, 215, 204, 224, 216, 205, 224, 216, 205, 224, 216, 205, 224, 216, 205, 224, 216, 205, 224, 216, 205, 224, 216, 205, 224, 216, 205, 224, 216, 205, 224, 216, 205, 224, 216, 205, 224, 216, 205, 224, 216, 205, 224, 216, 205, 224, 216, 205, 224, 216, 205, 225, 217, 206, 225, 217, 206, 225, 217, 206, 225, 217, 206, 225, 217, 206, 225, 217, 206, 225, 217, 206, 225, 217, 206, 225, 217, 206, 225, 217, 206, 225, 217, 206, 226, 218, 207, 226, 218, 207, 227, 219, 208, 227, 219, 208, 227, 219, 208, 229, 220, 211, 229, 220, 211, 229, 220, 211, 229, 220, 211, 229, 220, 211, 229, 220, 211, 229, 220, 211, 229, 220, 211, 228, 219, 210, 228, 219, 210, 228, 219, 210, 228, 219, 210, 228, 219, 210, 228, 219, 210, 228, 219, 210, 228, 219, 210, 228, 221, 213, 229, 222, 214, 229, 222, 214, 229, 222, 214, 230, 223, 215, 230, 223, 215, 230, 223, 215, 230, 223, 215, 231, 224, 216, 231, 224, 216, 231, 224, 218, 231, 224, 218, 231, 224, 218, 231, 224, 218, 231, 224, 218, 231, 224, 218, 233, 226, 218, 233, 226, 218, 233, 226, 218, 233, 226, 218, 233, 226, 218, 233, 226, 218, 233, 226, 218, 233, 226, 218, 235, 228, 220, 235, 228, 220, 235, 228, 220, 235, 228, 220, 235, 228, 220, 235, 228, 220, 235, 228, 220, 235, 228, 220, 233, 228, 222, 233, 228, 222, 234, 229, 223, 234, 229, 223, 234, 229, 223, 235, 230, 224, 235, 230, 224, 235, 230, 224, 234, 229, 223, 234, 229, 223, 234, 229, 223, 235, 230, 224, 235, 230, 224, 235, 230, 224, 236, 231, 225, 235, 232, 227, 235, 232, 227, 233, 232, 227, 233, 232, 228, 234, 233, 228, 234, 233, 229, 234, 233, 229, 235, 234, 230, 235, 234, 230, 236, 235, 231, 236, 235, 231, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 242, 241, 237, 241, 241, 239, 241, 241, 239, 241, 241, 239, 242, 242, 240, 242, 242, 240, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 246, 245, 244, 246, 245, 242, 243, 245, 241, 242, 244, 240, 241, 243, 239, 240, 242, 238, 239, 241, 237, 238, 240, 236, 237, 239, 235, 236, 238, 230, 231, 233, 229, 230, 232, 227, 228, 230, 225, 226, 228, 223, 224, 226, 221, 222, 224, 219, 220, 222, 218, 219, 221, 221, 222, 226, 214, 218, 221, 208, 212, 215, 203, 207, 208, 199, 200, 202, 193, 194, 196, 185, 186, 188, 180, 181, 183, 181, 181, 181, 178, 178, 178, 175, 175, 175, 174, 172, 173, 174, 172, 173, 172, 170, 171, 169, 167, 168, 166, 165, 163, 165, 161, 158, 163, 159, 156, 161, 156, 153, 159, 154, 151, 158, 153, 150, 158, 153, 150, 159, 154, 151, 160, 155, 152, 154, 149, 146, 154, 149, 146, 155, 147, 145, 155, 147, 145, 154, 146, 144, 153, 145, 143, 153, 145, 143, 153, 145, 143, 151, 143, 141, 150, 142, 140, 150, 142, 140, 150, 142, 140, 150, 142, 140, 151, 143, 141, 152, 144, 142, 153, 145, 143, 153, 145, 143, 154, 146, 144, 156, 148, 146, 158, 150, 148, 158, 150, 148, 156, 148, 146, 154, 146, 144, 153, 145, 143, 153, 143, 141, 152, 142, 140, 151, 141, 139, 151, 141, 139, 152, 142, 140, 155, 145, 143, 158, 148, 146, 159, 149, 147, 162, 152, 151, 164, 154, 152, 167, 157, 156, 168, 158, 157, 168, 158, 157, 170, 160, 159, 172, 162, 161, 174, 166, 164, 175, 169, 169, 178, 172, 174, 181, 175, 177, 183, 179, 180, 186, 182, 183, 188, 186, 187, 194, 192, 195, 197, 197, 199, 198, 197, 202, 202, 203, 207, 207, 210, 215, 213, 216, 221, 218, 221, 226, 223, 226, 231, 227, 232, 236, 231, 236, 242, 234, 237, 244, 235, 238, 245, 237, 240, 245, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 247, 251, 254, 247, 251, 254, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 249, 246, 247, 249, 245, 246, 248, 245, 246, 248, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 243, 242, 240, 242, 241, 239, 242, 241, 239, 242, 241, 239, 241, 240, 238, 241, 240, 238, 241, 240, 238, 240, 239, 237, 240, 239, 237, 240, 239, 237, 239, 238, 236, 239, 238, 236, 239, 238, 236, 238, 237, 235, 238, 237, 235, 238, 237, 235, 236, 236, 234, 236, 236, 234, 236, 236, 234, 235, 235, 233, 235, 235, 233, 235, 235, 233, 234, 235, 230, 234, 235, 230, 235, 234, 230, 235, 234, 230, 234, 233, 229, 234, 233, 229, 235, 232, 227, 234, 231, 226, 233, 230, 225, 233, 230, 225, 233, 228, 224, 233, 228, 224, 232, 227, 221, 231, 226, 220, 232, 225, 219, 232, 225, 219, 231, 224, 216, 231, 224, 216, 231, 224, 214, 230, 223, 213, 231, 223, 212, 230, 222, 211, 229, 221, 210, 228, 220, 209, 228, 220, 209, 227, 219, 208, 228, 216, 204, 228, 216, 204, 226, 216, 206, 226, 216, 206, 226, 217, 208, 227, 218, 209, 228, 221, 213, 229, 222, 214, 225, 221, 212, 225, 221, 212, 227, 220, 212, 226, 219, 211, 226, 219, 209, 225, 218, 208, 226, 217, 208, 226, 217, 208, 225, 218, 208, 225, 218, 208, 226, 217, 208, 226, 217, 208, 226, 217, 208, 226, 217, 208, 226, 217, 208, 226, 217, 208, 227, 217, 208, 226, 216, 207, 226, 216, 207, 226, 216, 207, 225, 215, 206, 225, 215, 206, 225, 215, 206, 224, 214, 204, 226, 212, 201, 225, 211, 198, 224, 210, 197, 223, 209, 196, 222, 210, 198, 222, 210, 198, 223, 211, 199, 223, 211, 199, 223, 213, 201, 223, 213, 201, 223, 213, 203, 223, 213, 203, 224, 214, 204, 224, 214, 204, 225, 215, 205, 225, 215, 205, 224, 216, 205, 224, 216, 205, 224, 216, 205, 224, 216, 205, 224, 216, 205, 224, 216, 205, 224, 216, 205, 224, 216, 205, 225, 217, 206, 225, 217, 206, 225, 217, 206, 225, 217, 206, 225, 217, 206, 225, 217, 206, 225, 217, 206, 225, 217, 206, 225, 217, 206, 225, 217, 206, 225, 217, 206, 225, 217, 206, 225, 217, 206, 225, 217, 206, 225, 217, 206, 225, 217, 206, 225, 217, 206, 225, 217, 206, 226, 218, 207, 226, 218, 207, 227, 219, 208, 227, 219, 208, 227, 219, 208, 227, 219, 208, 229, 220, 211, 229, 220, 211, 229, 220, 211, 229, 220, 211, 229, 220, 211, 229, 220, 211, 229, 220, 211, 229, 220, 211, 228, 219, 210, 228, 219, 210, 228, 219, 210, 228, 219, 210, 228, 219, 210, 228, 219, 210, 228, 219, 210, 228, 219, 210, 229, 222, 214, 229, 222, 214, 229, 222, 214, 230, 223, 215, 230, 223, 215, 230, 223, 215, 231, 224, 216, 231, 224, 216, 232, 225, 219, 232, 225, 219, 232, 225, 219, 232, 225, 219, 232, 224, 221, 232, 224, 221, 232, 224, 221, 232, 225, 219, 233, 226, 220, 233, 226, 218, 233, 226, 218, 233, 226, 218, 233, 226, 218, 233, 226, 218, 233, 226, 218, 233, 226, 218, 235, 228, 220, 235, 228, 220, 235, 228, 220, 235, 228, 220, 235, 228, 220, 235, 228, 220, 235, 228, 220, 235, 228, 220, 233, 228, 222, 233, 228, 222, 234, 229, 223, 234, 229, 223, 234, 229, 223, 235, 230, 224, 235, 230, 224, 235, 230, 224, 234, 229, 223, 234, 229, 223, 235, 230, 224, 235, 230, 224, 235, 230, 224, 236, 231, 225, 236, 231, 225, 235, 232, 225, 235, 231, 228, 233, 232, 228, 234, 233, 229, 234, 233, 229, 234, 233, 229, 235, 234, 230, 235, 234, 230, 235, 234, 230, 236, 235, 231, 237, 236, 232, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 238, 237, 233, 239, 238, 234, 238, 237, 233, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 242, 241, 237, 241, 241, 239, 241, 241, 239, 242, 242, 240, 242, 242, 240, 242, 242, 240, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 246, 245, 243, 245, 244, 243, 245, 244, 241, 242, 244, 241, 242, 244, 240, 241, 243, 239, 240, 242, 238, 239, 241, 236, 237, 239, 236, 237, 239, 235, 236, 238, 233, 234, 236, 232, 233, 235, 230, 231, 233, 227, 228, 230, 224, 225, 227, 222, 223, 225, 220, 221, 223, 219, 220, 222, 217, 221, 224, 214, 218, 221, 210, 214, 217, 206, 210, 213, 204, 205, 207, 198, 199, 201, 191, 192, 194, 186, 187, 189, 179, 179, 179, 176, 176, 176, 173, 173, 173, 172, 172, 172, 171, 171, 171, 169, 169, 169, 166, 166, 166, 163, 163, 161, 164, 160, 159, 163, 159, 156, 160, 156, 153, 157, 153, 150, 157, 152, 149, 157, 152, 149, 158, 153, 150, 159, 154, 151, 157, 152, 149, 157, 152, 149, 158, 150, 148, 157, 149, 147, 155, 147, 145, 154, 146, 144, 153, 145, 143, 153, 145, 143, 152, 144, 142, 151, 143, 141, 150, 142, 140, 150, 142, 140, 150, 142, 140, 151, 143, 141, 152, 144, 142, 153, 145, 143, 153, 145, 143, 155, 147, 145, 157, 149, 147, 158, 150, 148, 158, 150, 148, 157, 149, 147, 155, 147, 145, 154, 146, 144, 154, 144, 143, 153, 143, 142, 152, 142, 141, 152, 142, 141, 153, 143, 142, 155, 145, 144, 158, 148, 147, 160, 150, 149, 161, 151, 150, 164, 154, 153, 167, 157, 156, 168, 158, 157, 168, 158, 157, 169, 159, 158, 172, 162, 161, 174, 166, 164, 175, 166, 167, 176, 170, 172, 179, 173, 175, 182, 176, 178, 183, 179, 180, 187, 183, 184, 191, 189, 192, 195, 193, 196, 198, 197, 202, 203, 202, 207, 209, 210, 215, 213, 216, 221, 218, 221, 226, 223, 226, 231, 227, 232, 238, 230, 235, 241, 233, 236, 243, 234, 237, 244, 236, 239, 244, 238, 241, 246, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 248, 244, 248, 249, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 247, 251, 254, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 249, 246, 247, 249, 245, 246, 248, 245, 246, 248, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 243, 242, 240, 242, 241, 239, 242, 241, 239, 242, 241, 239, 241, 240, 238, 241, 240, 238, 241, 240, 238, 240, 239, 237, 240, 239, 237, 240, 239, 237, 240, 239, 237, 239, 238, 236, 239, 238, 236, 238, 237, 235, 238, 237, 235, 238, 237, 235, 237, 237, 235, 236, 236, 234, 236, 236, 234, 236, 236, 234, 235, 235, 233, 235, 235, 233, 235, 236, 231, 234, 235, 230, 235, 234, 230, 235, 234, 230, 235, 234, 230, 234, 233, 229, 235, 232, 227, 234, 231, 226, 234, 231, 226, 233, 230, 225, 234, 229, 225, 233, 228, 224, 233, 228, 224, 232, 227, 223, 231, 226, 220, 230, 225, 219, 232, 225, 217, 231, 224, 216, 231, 224, 214, 231, 224, 214, 231, 222, 213, 230, 221, 212, 230, 222, 211, 229, 221, 210, 228, 220, 209, 228, 220, 209, 229, 217, 205, 229, 217, 205, 226, 216, 206, 226, 216, 206, 226, 217, 208, 228, 219, 210, 228, 221, 213, 229, 222, 214, 226, 222, 213, 225, 221, 212, 227, 220, 212, 227, 220, 212, 226, 219, 211, 226, 219, 211, 227, 218, 209, 227, 218, 209, 225, 218, 208, 225, 218, 208, 225, 218, 208, 225, 218, 208, 226, 217, 208, 226, 217, 208, 226, 217, 208, 226, 217, 208, 226, 217, 208, 226, 217, 208, 227, 217, 208, 226, 216, 207, 226, 216, 207, 225, 215, 206, 225, 215, 206, 225, 215, 205, 227, 213, 202, 226, 212, 199, 224, 212, 198, 223, 211, 197, 222, 210, 198, 223, 211, 199, 223, 211, 199, 224, 212, 200, 223, 213, 201, 223, 213, 201, 224, 214, 204, 224, 214, 204, 224, 214, 204, 225, 215, 205, 224, 216, 205, 224, 216, 205, 224, 215, 206, 224, 215, 206, 224, 215, 206, 224, 215, 206, 224, 215, 206, 224, 215, 206, 224, 215, 206, 224, 215, 206, 225, 216, 207, 225, 216, 207, 225, 216, 207, 225, 216, 207, 225, 216, 207, 225, 216, 207, 225, 216, 207, 225, 216, 207, 226, 217, 208, 226, 217, 208, 226, 217, 208, 226, 217, 208, 226, 217, 208, 226, 217, 208, 226, 217, 208, 226, 217, 208, 226, 217, 208, 226, 217, 208, 226, 217, 208, 227, 218, 209, 227, 218, 209, 228, 219, 210, 228, 219, 210, 228, 219, 210, 229, 220, 211, 229, 220, 211, 229, 220, 211, 229, 220, 211, 229, 220, 211, 229, 220, 211, 229, 220, 211, 229, 220, 211, 229, 220, 211, 229, 220, 211, 229, 220, 211, 229, 220, 211, 229, 220, 211, 229, 220, 211, 229, 220, 211, 229, 220, 211, 229, 222, 214, 229, 222, 214, 230, 223, 215, 230, 223, 215, 231, 224, 216, 231, 224, 216, 231, 224, 216, 231, 224, 216, 232, 225, 219, 232, 225, 219, 232, 225, 219, 232, 225, 219, 232, 224, 221, 232, 224, 221, 232, 224, 221, 232, 225, 219, 231, 226, 220, 231, 227, 218, 231, 227, 218, 231, 227, 218, 231, 227, 218, 231, 227, 218, 231, 227, 218, 231, 227, 218, 233, 229, 220, 233, 229, 220, 233, 229, 220, 233, 229, 220, 233, 229, 220, 233, 229, 220, 233, 229, 220, 233, 229, 220, 233, 228, 222, 234, 229, 223, 234, 229, 223, 234, 229, 223, 235, 230, 224, 235, 230, 224, 235, 230, 224, 236, 231, 225, 235, 230, 224, 235, 230, 224, 235, 230, 224, 236, 231, 225, 236, 231, 225, 236, 231, 225, 237, 232, 226, 236, 233, 226, 236, 232, 229, 234, 233, 229, 234, 233, 229, 234, 233, 229, 235, 234, 230, 235, 234, 230, 236, 235, 231, 236, 235, 231, 237, 236, 232, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 238, 237, 233, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 242, 241, 237, 243, 242, 238, 241, 241, 239, 242, 242, 240, 242, 242, 240, 242, 242, 240, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 247, 249, 248, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 243, 245, 244, 243, 245, 244, 243, 245, 244, 242, 244, 243, 241, 242, 244, 240, 241, 243, 240, 241, 243, 238, 239, 241, 237, 238, 240, 236, 237, 239, 235, 236, 238, 235, 236, 238, 234, 235, 237, 232, 233, 235, 230, 231, 233, 226, 227, 229, 222, 223, 225, 219, 220, 222, 216, 217, 219, 215, 216, 218, 213, 217, 220, 212, 216, 219, 211, 215, 218, 210, 214, 217, 210, 211, 213, 205, 206, 208, 198, 199, 201, 192, 193, 195, 184, 184, 184, 181, 181, 181, 177, 177, 177, 176, 176, 176, 175, 175, 175, 173, 173, 173, 169, 169, 169, 167, 167, 165, 165, 161, 160, 164, 160, 157, 161, 157, 154, 158, 154, 151, 157, 152, 149, 157, 152, 149, 158, 153, 150, 159, 154, 151, 161, 156, 153, 161, 156, 153, 161, 153, 151, 159, 151, 149, 157, 149, 147, 155, 147, 145, 154, 146, 144, 153, 145, 143, 152, 144, 142, 152, 144, 142, 151, 143, 141, 150, 142, 140, 150, 142, 140, 151, 143, 141, 152, 144, 142, 153, 145, 143, 154, 146, 144, 155, 147, 145, 157, 149, 147, 159, 151, 149, 159, 151, 149, 158, 150, 148, 157, 149, 147, 156, 148, 146, 156, 146, 145, 155, 145, 144, 153, 143, 142, 153, 143, 142, 154, 144, 143, 156, 146, 145, 158, 148, 147, 160, 150, 149, 161, 151, 150, 163, 153, 152, 166, 156, 155, 167, 157, 156, 167, 157, 156, 169, 159, 158, 172, 162, 161, 173, 165, 163, 173, 164, 165, 174, 168, 168, 177, 171, 173, 179, 173, 175, 180, 176, 177, 184, 180, 181, 187, 185, 188, 191, 189, 192, 197, 196, 201, 203, 202, 207, 209, 210, 215, 215, 216, 221, 217, 220, 225, 222, 225, 230, 226, 231, 237, 230, 235, 241, 232, 235, 242, 233, 236, 243, 235, 238, 243, 237, 240, 245, 239, 242, 247, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 248, 244, 248, 249, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 247, 251, 254, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 249, 246, 247, 249, 245, 246, 248, 245, 246, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 243, 242, 240, 242, 241, 239, 242, 241, 239, 242, 241, 239, 241, 240, 238, 241, 240, 238, 241, 240, 238, 240, 239, 237, 240, 239, 237, 240, 239, 237, 240, 239, 237, 240, 239, 237, 239, 238, 236, 239, 238, 236, 239, 238, 236, 238, 237, 235, 237, 237, 235, 237, 237, 235, 236, 236, 234, 236, 236, 234, 236, 236, 234, 235, 235, 233, 235, 236, 231, 235, 236, 231, 236, 235, 231, 236, 235, 231, 235, 234, 230, 234, 233, 229, 235, 232, 227, 235, 232, 227, 234, 231, 226, 234, 231, 226, 234, 229, 225, 234, 229, 225, 233, 228, 224, 233, 228, 224, 232, 227, 221, 231, 226, 220, 232, 225, 217, 232, 225, 217, 232, 225, 215, 232, 225, 215, 232, 223, 214, 231, 222, 213, 230, 222, 211, 230, 222, 211, 229, 221, 210, 229, 221, 210, 230, 218, 206, 229, 217, 205, 227, 217, 207, 227, 217, 207, 227, 218, 209, 227, 220, 210, 229, 222, 214, 230, 223, 215, 226, 222, 213, 226, 222, 213, 228, 221, 213, 228, 221, 213, 227, 220, 212, 227, 220, 212, 227, 218, 209, 227, 218, 209, 226, 219, 209, 226, 219, 209, 226, 219, 209, 226, 219, 209, 227, 218, 209, 227, 218, 209, 227, 218, 209, 227, 218, 209, 227, 218, 209, 227, 218, 209, 227, 217, 208, 227, 217, 208, 227, 217, 208, 226, 216, 207, 226, 216, 207, 226, 216, 206, 227, 215, 203, 227, 213, 200, 225, 213, 199, 224, 212, 198, 223, 211, 199, 223, 211, 199, 224, 212, 200, 225, 213, 201, 224, 214, 202, 224, 214, 202, 224, 214, 204, 225, 215, 205, 225, 215, 205, 226, 216, 206, 225, 217, 206, 225, 217, 206, 225, 216, 207, 225, 216, 207, 225, 216, 207, 225, 216, 207, 225, 216, 207, 225, 216, 207, 225, 216, 207, 225, 216, 207, 226, 217, 208, 226, 217, 208, 226, 217, 208, 226, 217, 208, 226, 217, 208, 226, 217, 208, 226, 217, 208, 226, 217, 208, 226, 217, 208, 226, 217, 208, 226, 217, 208, 226, 217, 208, 226, 217, 208, 226, 217, 208, 226, 217, 208, 226, 217, 208, 227, 218, 209, 227, 218, 209, 227, 218, 209, 228, 219, 210, 228, 219, 210, 228, 219, 210, 229, 220, 211, 229, 220, 211, 230, 221, 212, 230, 221, 212, 230, 221, 212, 230, 221, 212, 230, 221, 212, 230, 221, 212, 230, 221, 212, 230, 221, 212, 230, 221, 212, 230, 221, 212, 230, 221, 212, 230, 221, 212, 230, 221, 212, 230, 221, 212, 230, 221, 212, 230, 221, 212, 230, 223, 215, 230, 223, 215, 231, 224, 216, 231, 224, 216, 231, 224, 216, 232, 225, 217, 232, 225, 217, 232, 225, 217, 233, 226, 220, 233, 226, 220, 233, 226, 220, 233, 226, 220, 233, 225, 222, 233, 225, 222, 233, 225, 222, 233, 225, 222, 232, 227, 221, 232, 228, 219, 232, 228, 219, 232, 228, 219, 232, 228, 219, 232, 228, 219, 232, 228, 219, 232, 228, 219, 234, 230, 221, 234, 230, 221, 234, 230, 221, 234, 230, 221, 234, 230, 221, 234, 230, 221, 234, 230, 221, 234, 230, 221, 234, 229, 223, 234, 229, 223, 234, 229, 223, 235, 230, 224, 235, 230, 224, 235, 230, 224, 236, 231, 225, 236, 231, 225, 236, 231, 225, 236, 231, 225, 236, 231, 225, 236, 231, 225, 237, 232, 226, 237, 232, 226, 237, 232, 226, 237, 234, 227, 234, 233, 229, 235, 234, 230, 235, 234, 230, 235, 234, 230, 236, 235, 231, 236, 235, 231, 236, 235, 231, 237, 236, 232, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 239, 238, 234, 238, 237, 233, 239, 238, 234, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 242, 241, 237, 243, 242, 238, 243, 242, 238, 242, 242, 240, 242, 242, 240, 242, 242, 240, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 246, 245, 243, 245, 244, 243, 245, 244, 243, 245, 244, 242, 244, 243, 242, 244, 243, 242, 244, 243, 241, 242, 244, 241, 242, 244, 240, 241, 243, 239, 240, 242, 237, 238, 240, 236, 237, 239, 235, 236, 238, 235, 236, 238, 231, 232, 234, 230, 231, 233, 227, 228, 230, 223, 224, 226, 218, 219, 221, 214, 215, 217, 211, 212, 214, 210, 211, 213, 209, 213, 216, 209, 213, 216, 210, 214, 217, 211, 215, 218, 213, 214, 216, 209, 210, 212, 203, 204, 206, 197, 198, 200, 194, 194, 194, 190, 190, 190, 187, 187, 187, 185, 185, 185, 184, 184, 184, 181, 181, 181, 178, 178, 178, 175, 175, 173, 169, 165, 164, 167, 163, 160, 164, 160, 157, 160, 156, 153, 160, 155, 152, 159, 154, 151, 160, 155, 152, 160, 155, 152, 164, 159, 156, 163, 158, 155, 164, 156, 154, 161, 153, 151, 159, 151, 149, 156, 148, 146, 154, 146, 144, 153, 145, 143, 153, 145, 143, 152, 144, 142, 151, 143, 141, 150, 142, 140, 149, 141, 139, 150, 142, 140, 151, 143, 141, 151, 143, 141, 154, 146, 144, 155, 147, 145, 158, 150, 148, 160, 152, 150, 160, 152, 150, 160, 152, 150, 158, 150, 148, 157, 149, 147, 157, 147, 146, 156, 146, 145, 154, 144, 143, 154, 144, 143, 154, 144, 143, 156, 146, 145, 158, 148, 147, 160, 150, 149, 160, 150, 149, 163, 153, 152, 165, 155, 154, 167, 157, 156, 167, 157, 156, 168, 158, 157, 171, 161, 160, 173, 163, 162, 174, 165, 166, 174, 168, 168, 177, 171, 173, 178, 172, 174, 179, 175, 176, 182, 178, 179, 184, 182, 185, 188, 186, 189, 195, 194, 199, 200, 199, 204, 206, 207, 212, 212, 213, 218, 215, 218, 223, 220, 223, 228, 224, 229, 235, 228, 233, 239, 230, 233, 240, 231, 234, 241, 233, 236, 241, 236, 239, 244, 238, 241, 246, 239, 242, 247, 239, 242, 247, 239, 242, 247, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 248, 244, 248, 249, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 249, 246, 247, 249, 245, 246, 248, 245, 246, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 242, 240, 242, 241, 239, 242, 241, 239, 242, 241, 239, 241, 240, 238, 241, 240, 238, 241, 240, 238, 240, 239, 237, 241, 240, 238, 241, 240, 238, 240, 239, 237, 240, 239, 237, 240, 239, 237, 239, 238, 236, 239, 238, 236, 239, 238, 236, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 236, 236, 234, 236, 236, 234, 235, 236, 231, 235, 236, 231, 236, 235, 231, 236, 235, 231, 235, 234, 230, 235, 234, 230, 236, 233, 228, 235, 232, 227, 234, 231, 226, 234, 231, 226, 235, 230, 226, 235, 230, 226, 234, 229, 225, 233, 228, 224, 233, 228, 222, 232, 227, 221, 233, 226, 218, 233, 226, 218, 233, 226, 218, 232, 225, 217, 232, 225, 215, 231, 224, 214, 231, 223, 212, 230, 222, 211, 230, 222, 211, 230, 222, 211, 231, 219, 207, 230, 218, 206, 228, 218, 208, 228, 218, 208, 228, 219, 210, 228, 221, 211, 230, 223, 215, 229, 225, 216, 227, 222, 216, 227, 222, 216, 227, 223, 214, 226, 222, 213, 228, 221, 213, 228, 221, 213, 227, 220, 210, 227, 220, 210, 227, 220, 210, 227, 220, 210, 227, 220, 210, 227, 220, 210, 227, 220, 210, 227, 220, 210, 228, 219, 210, 228, 219, 210, 228, 219, 210, 228, 219, 210, 228, 218, 209, 228, 218, 209, 227, 217, 208, 227, 217, 208, 227, 217, 208, 227, 217, 207, 227, 215, 203, 227, 215, 201, 225, 213, 201, 224, 212, 200, 224, 212, 200, 224, 212, 200, 223, 213, 201, 223, 213, 201, 225, 215, 205, 225, 215, 205, 225, 215, 205, 226, 216, 206, 225, 217, 206, 225, 217, 206, 226, 217, 208, 226, 217, 208, 226, 217, 208, 226, 217, 208, 226, 217, 208, 226, 217, 208, 226, 217, 208, 226, 217, 208, 226, 217, 208, 226, 217, 208, 227, 218, 209, 227, 218, 209, 227, 218, 209, 227, 218, 209, 227, 218, 209, 227, 218, 209, 227, 218, 209, 227, 218, 209, 227, 218, 209, 227, 218, 209, 227, 218, 209, 227, 218, 209, 227, 218, 209, 227, 218, 209, 227, 218, 209, 227, 218, 209, 227, 218, 209, 228, 219, 210, 228, 219, 210, 228, 219, 210, 229, 220, 211, 229, 220, 211, 229, 220, 211, 230, 221, 212, 230, 223, 213, 230, 223, 213, 230, 223, 213, 230, 223, 213, 230, 223, 213, 230, 223, 213, 230, 223, 213, 230, 223, 213, 229, 222, 212, 229, 222, 212, 229, 222, 212, 229, 222, 212, 229, 222, 212, 229, 222, 212, 229, 222, 212, 229, 222, 212, 231, 224, 216, 231, 224, 216, 231, 224, 216, 232, 225, 217, 232, 225, 217, 232, 225, 217, 233, 226, 218, 233, 226, 218, 234, 227, 221, 234, 227, 221, 234, 227, 221, 234, 227, 221, 234, 226, 223, 234, 226, 223, 234, 226, 223, 234, 226, 223, 232, 227, 221, 232, 227, 221, 232, 227, 221, 232, 227, 221, 232, 227, 221, 232, 227, 221, 232, 227, 221, 232, 227, 221, 234, 229, 223, 234, 229, 223, 234, 229, 223, 234, 229, 223, 234, 229, 223, 234, 229, 223, 234, 229, 223, 234, 229, 223, 233, 230, 223, 233, 230, 223, 234, 231, 224, 234, 231, 224, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 236, 233, 226, 236, 233, 226, 236, 233, 226, 237, 234, 227, 237, 234, 227, 237, 234, 227, 237, 234, 227, 235, 234, 230, 235, 234, 230, 236, 235, 231, 236, 235, 231, 236, 235, 231, 237, 236, 232, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 239, 238, 234, 240, 239, 235, 239, 238, 234, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 242, 242, 240, 242, 242, 240, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 247, 249, 248, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 246, 245, 243, 245, 244, 243, 245, 244, 243, 245, 244, 242, 244, 243, 242, 244, 243, 242, 244, 243, 242, 243, 245, 241, 242, 244, 241, 242, 244, 239, 240, 242, 238, 239, 241, 237, 238, 240, 236, 237, 239, 236, 237, 239, 233, 234, 236, 231, 232, 234, 228, 229, 231, 224, 225, 227, 220, 221, 223, 216, 217, 219, 213, 214, 216, 211, 212, 214, 207, 211, 214, 207, 211, 214, 207, 211, 214, 209, 213, 216, 211, 212, 214, 209, 210, 212, 204, 205, 207, 199, 200, 202, 200, 200, 200, 197, 197, 197, 193, 193, 193, 190, 190, 190, 189, 189, 189, 186, 186, 186, 182, 182, 182, 179, 179, 177, 173, 169, 168, 171, 167, 164, 167, 163, 160, 164, 160, 157, 163, 158, 155, 162, 157, 154, 162, 157, 154, 163, 158, 155, 165, 160, 157, 164, 159, 156, 164, 156, 154, 162, 154, 152, 159, 151, 149, 156, 148, 146, 155, 147, 145, 154, 146, 144, 152, 144, 142, 151, 143, 141, 150, 142, 140, 149, 141, 139, 148, 140, 138, 148, 140, 138, 149, 141, 139, 149, 141, 139, 153, 145, 143, 155, 147, 145, 157, 149, 147, 159, 151, 149, 160, 152, 150, 160, 152, 150, 159, 151, 149, 158, 150, 148, 158, 148, 147, 157, 147, 146, 155, 145, 144, 154, 144, 143, 154, 144, 143, 156, 146, 145, 158, 148, 147, 159, 149, 148, 159, 149, 148, 162, 152, 151, 165, 155, 154, 166, 156, 155, 166, 156, 155, 167, 157, 156, 170, 160, 159, 173, 163, 162, 175, 166, 167, 177, 168, 169, 178, 172, 172, 179, 173, 173, 178, 174, 175, 180, 176, 177, 183, 181, 184, 186, 184, 187, 192, 191, 196, 197, 196, 201, 203, 204, 208, 209, 210, 214, 211, 214, 219, 216, 219, 224, 221, 224, 229, 225, 228, 233, 228, 231, 238, 229, 232, 239, 232, 235, 240, 234, 237, 242, 237, 240, 245, 238, 241, 246, 239, 242, 247, 239, 242, 247, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 248, 244, 248, 249, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 249, 246, 247, 249, 245, 246, 248, 245, 246, 248, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 242, 240, 242, 241, 239, 242, 241, 239, 242, 241, 239, 241, 240, 238, 241, 240, 238, 241, 240, 238, 240, 239, 237, 241, 240, 238, 241, 240, 238, 241, 240, 238, 240, 239, 237, 240, 239, 237, 240, 239, 237, 239, 238, 236, 239, 238, 236, 238, 238, 236, 238, 238, 236, 237, 237, 235, 237, 237, 235, 237, 237, 235, 236, 236, 234, 236, 237, 232, 236, 237, 232, 237, 236, 232, 236, 235, 231, 236, 235, 231, 235, 234, 230, 236, 233, 228, 235, 232, 227, 235, 232, 227, 235, 232, 227, 236, 231, 227, 236, 231, 227, 235, 230, 226, 234, 229, 225, 233, 228, 222, 233, 228, 222, 234, 227, 221, 234, 227, 219, 234, 227, 219, 233, 226, 218, 233, 226, 216, 232, 225, 215, 232, 224, 213, 231, 223, 212, 231, 223, 212, 230, 222, 211, 229, 219, 207, 229, 219, 207, 229, 219, 209, 228, 220, 209, 228, 221, 211, 229, 222, 212, 229, 225, 216, 230, 226, 217, 228, 223, 217, 228, 223, 217, 228, 224, 215, 227, 223, 214, 229, 222, 214, 228, 221, 213, 228, 221, 211, 228, 221, 211, 228, 221, 211, 228, 221, 211, 228, 221, 211, 228, 221, 211, 228, 221, 211, 228, 221, 211, 229, 220, 211, 229, 220, 211, 228, 219, 210, 228, 219, 210, 229, 219, 210, 229, 219, 210, 228, 218, 209, 228, 218, 209, 228, 218, 209, 227, 217, 207, 228, 216, 204, 227, 215, 201, 226, 214, 202, 225, 213, 201, 225, 213, 201, 225, 213, 201, 224, 214, 202, 224, 214, 202, 226, 216, 206, 226, 216, 206, 226, 216, 206, 226, 216, 206, 226, 218, 207, 226, 218, 207, 226, 217, 208, 227, 218, 209, 227, 218, 209, 227, 218, 209, 227, 218, 209, 227, 218, 209, 227, 218, 209, 227, 218, 209, 227, 218, 209, 227, 218, 209, 227, 218, 209, 227, 218, 209, 227, 218, 209, 227, 218, 209, 227, 218, 209, 227, 218, 209, 227, 218, 209, 227, 218, 209, 228, 219, 210, 228, 219, 210, 228, 219, 210, 228, 219, 210, 228, 219, 210, 228, 219, 210, 228, 219, 210, 228, 219, 210, 228, 219, 210, 228, 219, 210, 229, 220, 211, 229, 220, 211, 230, 221, 212, 230, 221, 212, 230, 221, 212, 230, 221, 212, 231, 224, 214, 231, 224, 214, 231, 224, 214, 231, 224, 214, 231, 224, 214, 231, 224, 214, 231, 224, 214, 231, 224, 214, 230, 223, 213, 230, 223, 213, 230, 223, 213, 230, 223, 213, 230, 223, 213, 230, 223, 213, 230, 223, 213, 230, 223, 213, 232, 225, 217, 232, 225, 217, 232, 225, 217, 232, 225, 217, 233, 226, 218, 233, 226, 218, 234, 227, 219, 234, 227, 219, 235, 228, 222, 235, 228, 222, 235, 228, 222, 235, 228, 222, 235, 227, 224, 235, 227, 224, 235, 227, 224, 235, 227, 224, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 234, 229, 223, 234, 229, 223, 234, 229, 223, 234, 229, 223, 234, 229, 223, 234, 229, 223, 234, 229, 223, 234, 229, 223, 234, 231, 224, 234, 231, 224, 234, 231, 224, 235, 232, 225, 235, 232, 225, 235, 232, 225, 236, 233, 226, 236, 233, 226, 236, 233, 226, 236, 233, 226, 237, 234, 227, 237, 234, 227, 237, 234, 227, 238, 235, 228, 238, 235, 228, 238, 235, 230, 236, 235, 231, 236, 235, 231, 236, 235, 231, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 242, 241, 237, 243, 242, 238, 243, 242, 238, 243, 242, 238, 244, 243, 239, 244, 243, 239, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 243, 245, 244, 243, 245, 244, 243, 245, 244, 242, 244, 243, 243, 244, 246, 243, 244, 246, 242, 243, 245, 241, 242, 244, 240, 241, 243, 238, 239, 241, 238, 239, 241, 237, 238, 240, 238, 239, 241, 237, 238, 240, 234, 235, 237, 231, 232, 234, 227, 228, 230, 224, 225, 227, 221, 222, 224, 220, 221, 223, 211, 215, 218, 209, 213, 216, 207, 211, 214, 206, 210, 213, 208, 209, 211, 207, 208, 210, 203, 204, 206, 200, 201, 203, 199, 199, 199, 196, 196, 196, 192, 192, 192, 189, 189, 189, 187, 187, 187, 184, 184, 184, 180, 180, 180, 177, 177, 175, 175, 171, 170, 173, 169, 166, 169, 165, 162, 165, 161, 158, 164, 159, 156, 163, 158, 155, 163, 158, 155, 163, 158, 155, 162, 157, 154, 162, 157, 154, 162, 154, 152, 160, 152, 150, 158, 150, 148, 156, 148, 146, 155, 147, 145, 154, 146, 144, 151, 143, 141, 150, 142, 140, 149, 141, 139, 147, 139, 137, 146, 138, 136, 146, 138, 136, 146, 138, 136, 147, 139, 137, 151, 143, 141, 153, 145, 143, 156, 148, 146, 159, 151, 149, 160, 152, 150, 160, 152, 150, 159, 151, 149, 158, 150, 148, 158, 148, 147, 157, 147, 146, 155, 145, 144, 153, 143, 142, 153, 143, 142, 154, 144, 143, 156, 146, 145, 158, 148, 147, 158, 148, 147, 161, 151, 150, 164, 154, 153, 165, 155, 154, 165, 155, 154, 166, 156, 155, 169, 159, 158, 172, 162, 161, 176, 167, 168, 178, 169, 170, 177, 171, 171, 178, 172, 172, 178, 172, 174, 178, 174, 175, 182, 177, 181, 183, 181, 184, 187, 186, 191, 192, 191, 196, 198, 199, 203, 204, 205, 209, 207, 210, 215, 211, 214, 219, 216, 219, 224, 220, 223, 228, 226, 229, 236, 227, 230, 237, 230, 233, 238, 233, 236, 241, 236, 239, 244, 237, 240, 245, 238, 241, 246, 238, 241, 246, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 248, 244, 248, 249, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 249, 246, 247, 249, 245, 246, 248, 245, 246, 248, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 242, 240, 242, 241, 239, 242, 241, 239, 242, 241, 239, 241, 240, 238, 241, 240, 238, 241, 240, 238, 240, 239, 237, 242, 241, 239, 241, 240, 238, 241, 240, 238, 241, 240, 238, 240, 239, 237, 240, 239, 237, 240, 239, 237, 239, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 237, 237, 235, 237, 237, 235, 236, 236, 234, 236, 237, 232, 236, 237, 232, 237, 236, 232, 237, 236, 232, 236, 235, 231, 235, 234, 230, 236, 233, 228, 236, 233, 228, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 234, 231, 226, 234, 229, 225, 233, 228, 222, 233, 228, 222, 232, 227, 221, 234, 227, 219, 234, 227, 219, 233, 226, 216, 232, 225, 215, 232, 225, 215, 231, 224, 214, 230, 224, 212, 231, 223, 212, 230, 220, 210, 230, 220, 210, 229, 219, 209, 228, 220, 209, 228, 221, 211, 230, 223, 215, 229, 224, 218, 230, 225, 219, 229, 224, 218, 228, 223, 217, 228, 223, 217, 228, 223, 217, 229, 222, 214, 229, 222, 214, 229, 222, 214, 228, 221, 213, 228, 221, 213, 228, 221, 213, 228, 221, 213, 228, 221, 213, 228, 221, 213, 228, 221, 213, 228, 221, 213, 228, 221, 213, 229, 220, 213, 229, 220, 213, 229, 220, 213, 228, 219, 212, 228, 219, 212, 227, 218, 211, 228, 217, 211, 228, 218, 209, 229, 216, 207, 228, 216, 204, 227, 215, 203, 226, 214, 202, 223, 213, 201, 224, 214, 202, 224, 214, 204, 225, 215, 205, 226, 216, 206, 226, 216, 206, 226, 218, 207, 226, 218, 207, 226, 217, 208, 227, 218, 209, 227, 218, 209, 227, 218, 209, 227, 218, 209, 227, 218, 209, 227, 218, 209, 227, 218, 209, 227, 218, 209, 227, 218, 209, 227, 218, 209, 227, 218, 209, 228, 219, 210, 228, 219, 210, 228, 219, 210, 228, 219, 210, 228, 219, 210, 228, 219, 210, 228, 219, 210, 228, 219, 210, 229, 220, 211, 229, 220, 211, 229, 220, 211, 229, 220, 211, 229, 220, 211, 229, 220, 211, 229, 220, 211, 229, 220, 211, 229, 220, 211, 229, 220, 211, 229, 220, 211, 230, 221, 212, 230, 221, 212, 230, 221, 212, 231, 222, 213, 231, 222, 213, 231, 224, 216, 231, 224, 216, 231, 224, 216, 231, 224, 216, 231, 224, 216, 231, 224, 216, 231, 224, 216, 231, 224, 216, 231, 224, 216, 231, 224, 216, 231, 224, 216, 231, 224, 216, 231, 224, 216, 231, 224, 216, 231, 224, 216, 231, 224, 216, 230, 226, 217, 230, 226, 217, 231, 227, 218, 231, 227, 218, 231, 227, 218, 232, 228, 219, 232, 228, 219, 232, 228, 219, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 224, 233, 228, 224, 233, 228, 224, 233, 228, 224, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 235, 230, 224, 235, 230, 224, 235, 230, 224, 235, 230, 224, 235, 230, 224, 235, 230, 224, 235, 230, 224, 235, 230, 224, 234, 231, 226, 234, 231, 226, 234, 231, 226, 235, 232, 227, 235, 232, 227, 236, 233, 228, 236, 233, 228, 236, 233, 228, 237, 234, 229, 237, 234, 229, 237, 234, 229, 238, 235, 230, 238, 235, 230, 238, 235, 230, 239, 236, 231, 239, 236, 231, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 243, 242, 238, 243, 242, 238, 244, 243, 239, 244, 243, 239, 244, 243, 239, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 246, 245, 243, 245, 244, 243, 245, 244, 245, 246, 248, 244, 245, 247, 244, 245, 247, 242, 243, 245, 241, 242, 244, 240, 241, 243, 239, 240, 242, 239, 240, 242, 240, 241, 243, 239, 240, 242, 237, 238, 240, 234, 235, 237, 231, 232, 234, 229, 230, 232, 227, 228, 230, 226, 227, 229, 218, 222, 225, 214, 218, 221, 209, 213, 216, 205, 209, 212, 206, 207, 209, 205, 206, 208, 203, 204, 206, 202, 203, 205, 198, 198, 198, 194, 194, 194, 190, 190, 190, 187, 187, 187, 185, 185, 185, 182, 182, 182, 178, 178, 178, 174, 174, 172, 174, 170, 169, 172, 168, 165, 168, 164, 161, 164, 160, 157, 162, 157, 154, 161, 156, 153, 161, 156, 153, 161, 156, 153, 159, 154, 151, 158, 153, 150, 159, 151, 149, 158, 150, 148, 157, 149, 147, 156, 148, 146, 155, 147, 145, 155, 147, 145, 150, 142, 140, 149, 141, 139, 147, 139, 137, 145, 137, 135, 144, 136, 134, 144, 136, 134, 144, 136, 134, 144, 136, 134, 150, 142, 140, 152, 144, 142, 155, 147, 145, 158, 150, 148, 159, 151, 149, 159, 151, 149, 158, 150, 148, 158, 150, 148, 158, 148, 147, 156, 146, 145, 154, 144, 143, 152, 142, 141, 152, 142, 141, 153, 143, 142, 155, 145, 144, 156, 146, 145, 158, 148, 147, 160, 150, 149, 163, 153, 152, 164, 154, 153, 165, 155, 154, 166, 156, 155, 169, 159, 158, 171, 161, 160, 174, 165, 166, 176, 167, 168, 177, 168, 169, 175, 169, 169, 175, 169, 171, 175, 171, 172, 178, 174, 175, 179, 177, 178, 182, 182, 184, 187, 187, 189, 193, 194, 198, 199, 200, 204, 202, 205, 210, 207, 210, 215, 212, 215, 220, 216, 219, 224, 224, 227, 234, 226, 229, 236, 229, 232, 237, 232, 235, 240, 235, 238, 243, 237, 240, 245, 238, 241, 246, 238, 241, 246, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 248, 244, 248, 249, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 245, 246, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 249, 246, 247, 249, 245, 246, 248, 245, 246, 248, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 242, 240, 242, 241, 239, 242, 241, 239, 242, 241, 239, 241, 240, 238, 241, 240, 238, 241, 240, 238, 240, 239, 237, 242, 241, 239, 242, 241, 239, 241, 240, 238, 241, 240, 238, 240, 239, 237, 240, 239, 237, 240, 239, 237, 240, 239, 237, 238, 238, 236, 238, 238, 236, 238, 238, 236, 237, 237, 235, 237, 237, 235, 237, 237, 235, 236, 237, 232, 236, 237, 232, 237, 236, 232, 237, 236, 232, 236, 235, 231, 235, 234, 230, 237, 234, 229, 236, 233, 228, 235, 232, 227, 235, 232, 227, 236, 233, 228, 235, 232, 227, 235, 232, 227, 234, 231, 226, 234, 229, 225, 234, 229, 225, 233, 228, 222, 233, 228, 222, 234, 227, 219, 234, 227, 219, 234, 227, 217, 233, 226, 216, 232, 225, 215, 231, 224, 214, 231, 225, 213, 230, 224, 212, 230, 220, 210, 230, 220, 210, 229, 221, 210, 229, 220, 211, 228, 221, 213, 230, 223, 215, 229, 224, 218, 230, 225, 219, 229, 224, 218, 229, 224, 218, 228, 223, 217, 228, 223, 217, 230, 223, 215, 229, 222, 214, 229, 222, 214, 229, 222, 214, 229, 222, 214, 229, 222, 214, 229, 222, 214, 229, 222, 214, 229, 222, 214, 229, 222, 214, 229, 222, 214, 229, 222, 214, 229, 220, 213, 229, 220, 213, 229, 220, 213, 229, 220, 213, 228, 219, 212, 228, 219, 212, 228, 217, 211, 228, 218, 209, 229, 216, 207, 228, 216, 204, 227, 215, 203, 226, 214, 202, 224, 214, 202, 224, 214, 202, 225, 215, 205, 225, 215, 205, 226, 216, 206, 227, 217, 207, 226, 218, 207, 226, 218, 207, 227, 218, 209, 227, 218, 209, 227, 218, 209, 228, 219, 210, 228, 219, 210, 228, 219, 210, 228, 219, 210, 228, 219, 210, 228, 219, 210, 228, 219, 210, 228, 219, 210, 228, 219, 210, 228, 219, 210, 228, 219, 210, 228, 219, 210, 228, 219, 210, 228, 219, 210, 228, 219, 210, 228, 219, 210, 228, 219, 210, 229, 220, 211, 229, 220, 211, 229, 220, 211, 229, 220, 211, 229, 220, 211, 229, 220, 211, 229, 220, 211, 229, 220, 211, 229, 220, 211, 229, 220, 211, 230, 221, 212, 230, 221, 212, 230, 221, 212, 231, 222, 213, 231, 222, 213, 231, 222, 213, 232, 225, 217, 232, 225, 217, 232, 225, 217, 232, 225, 217, 232, 225, 217, 232, 225, 217, 232, 225, 217, 232, 225, 217, 231, 224, 216, 231, 224, 216, 231, 224, 216, 231, 224, 216, 231, 224, 216, 231, 224, 216, 231, 224, 216, 231, 224, 216, 231, 227, 218, 231, 227, 218, 231, 227, 218, 231, 227, 218, 232, 228, 219, 232, 228, 219, 232, 228, 219, 233, 229, 220, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 224, 233, 228, 224, 233, 228, 224, 233, 228, 224, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 235, 230, 224, 235, 230, 224, 235, 230, 224, 235, 230, 224, 235, 230, 224, 235, 230, 224, 235, 230, 224, 235, 230, 224, 234, 231, 226, 234, 231, 226, 235, 232, 227, 235, 232, 227, 235, 232, 227, 236, 233, 228, 236, 233, 228, 236, 233, 228, 237, 234, 229, 237, 234, 229, 238, 235, 230, 238, 235, 230, 238, 235, 230, 239, 236, 231, 239, 236, 231, 239, 236, 231, 237, 236, 232, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 239, 238, 234, 238, 237, 233, 239, 238, 234, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 243, 242, 238, 243, 242, 238, 243, 242, 238, 244, 243, 239, 244, 243, 239, 244, 243, 239, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 249, 251, 250, 249, 251, 250, 249, 251, 250, 248, 250, 249, 248, 250, 249, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 246, 245, 244, 246, 245, 246, 247, 249, 245, 246, 248, 244, 245, 247, 243, 244, 246, 242, 243, 245, 241, 242, 244, 240, 241, 243, 240, 241, 243, 238, 239, 241, 237, 238, 240, 236, 237, 239, 234, 235, 237, 231, 232, 234, 229, 230, 232, 227, 228, 230, 226, 227, 229, 224, 228, 231, 218, 222, 225, 211, 215, 218, 205, 209, 212, 205, 206, 208, 205, 206, 208, 204, 205, 207, 203, 204, 206, 199, 199, 199, 195, 195, 195, 191, 191, 191, 188, 188, 188, 186, 186, 186, 183, 183, 183, 178, 178, 178, 175, 175, 173, 172, 168, 167, 170, 166, 163, 166, 162, 159, 162, 158, 155, 160, 155, 152, 159, 154, 151, 158, 153, 150, 159, 154, 151, 156, 151, 148, 156, 151, 148, 157, 149, 147, 157, 149, 147, 156, 148, 146, 156, 148, 146, 155, 147, 145, 155, 147, 145, 149, 141, 139, 148, 140, 138, 146, 138, 136, 144, 136, 134, 143, 135, 133, 142, 134, 132, 143, 135, 133, 143, 135, 133, 149, 141, 139, 151, 143, 141, 154, 146, 144, 157, 149, 147, 158, 150, 148, 159, 151, 149, 158, 150, 148, 157, 149, 147, 157, 147, 146, 156, 146, 145, 154, 144, 143, 152, 142, 141, 151, 141, 140, 152, 142, 141, 154, 144, 143, 155, 145, 144, 157, 147, 146, 160, 150, 149, 163, 153, 152, 164, 154, 153, 164, 154, 153, 165, 155, 154, 168, 158, 157, 171, 161, 160, 172, 163, 164, 174, 165, 166, 175, 166, 167, 175, 166, 167, 172, 166, 168, 173, 167, 169, 175, 171, 172, 178, 174, 175, 181, 179, 182, 185, 185, 187, 192, 191, 196, 197, 198, 202, 201, 202, 207, 204, 207, 212, 209, 212, 217, 213, 216, 221, 223, 226, 233, 225, 228, 235, 228, 231, 236, 232, 235, 240, 234, 237, 242, 237, 240, 245, 238, 241, 246, 238, 241, 246, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 248, 244, 248, 249, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 249, 246, 247, 249, 245, 246, 248, 245, 246, 248, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 246, 245, 244, 246, 245, 243, 245, 244, 243, 245, 244, 243, 245, 244, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 241, 241, 239, 244, 243, 241, 244, 243, 241, 243, 242, 240, 243, 242, 240, 243, 242, 240, 242, 241, 239, 242, 241, 239, 242, 241, 239, 240, 239, 237, 240, 239, 237, 240, 239, 237, 240, 239, 237, 240, 239, 237, 240, 239, 237, 240, 239, 237, 240, 239, 237, 239, 239, 237, 238, 238, 236, 238, 238, 236, 238, 238, 236, 237, 237, 235, 237, 237, 235, 237, 238, 233, 237, 238, 233, 237, 236, 232, 237, 236, 232, 237, 236, 232, 236, 235, 231, 238, 235, 230, 238, 235, 230, 237, 234, 229, 237, 234, 229, 235, 231, 228, 235, 231, 228, 235, 231, 228, 235, 231, 228, 234, 231, 226, 234, 231, 226, 234, 229, 223, 234, 229, 223, 233, 229, 220, 232, 228, 219, 232, 228, 219, 231, 227, 218, 232, 225, 215, 231, 224, 214, 231, 224, 214, 230, 223, 213, 232, 222, 212, 232, 222, 212, 231, 222, 213, 231, 222, 213, 231, 224, 216, 231, 224, 216, 230, 225, 219, 230, 225, 219, 228, 225, 220, 228, 225, 220, 228, 225, 218, 228, 225, 218, 229, 224, 218, 229, 224, 218, 231, 224, 216, 231, 224, 216, 227, 223, 214, 227, 223, 214, 227, 223, 214, 227, 223, 214, 229, 222, 214, 229, 222, 214, 229, 222, 214, 229, 222, 214, 229, 222, 214, 229, 222, 214, 230, 221, 214, 229, 220, 213, 229, 220, 213, 229, 220, 213, 228, 219, 212, 228, 219, 210, 228, 218, 208, 227, 217, 205, 226, 216, 204, 225, 215, 203, 225, 215, 205, 225, 215, 205, 226, 216, 206, 226, 216, 206, 226, 217, 208, 226, 217, 208, 227, 218, 209, 227, 218, 209, 227, 218, 209, 228, 219, 210, 227, 220, 210, 227, 220, 210, 229, 222, 214, 228, 221, 213, 228, 221, 213, 228, 221, 213, 227, 220, 212, 227, 220, 212, 227, 220, 212, 226, 219, 211, 227, 220, 212, 227, 220, 212, 228, 221, 213, 228, 221, 213, 228, 221, 213, 229, 222, 214, 229, 222, 214, 229, 222, 214, 229, 222, 214, 229, 222, 214, 229, 222, 214, 229, 222, 214, 229, 222, 214, 229, 222, 214, 229, 222, 214, 229, 222, 214, 229, 222, 214, 229, 222, 214, 229, 222, 214, 229, 222, 214, 229, 222, 214, 229, 222, 214, 229, 222, 214, 229, 222, 214, 232, 225, 217, 232, 225, 217, 232, 225, 217, 232, 225, 217, 232, 225, 217, 232, 225, 217, 232, 225, 217, 232, 225, 217, 232, 225, 217, 232, 225, 217, 232, 225, 217, 232, 225, 217, 232, 225, 217, 232, 225, 217, 232, 225, 217, 232, 225, 217, 231, 227, 218, 231, 227, 218, 232, 228, 219, 232, 228, 219, 232, 228, 219, 233, 229, 220, 233, 229, 220, 233, 229, 220, 232, 227, 221, 233, 228, 222, 233, 228, 222, 233, 228, 222, 234, 229, 225, 234, 229, 225, 234, 229, 225, 235, 230, 226, 234, 231, 224, 234, 231, 224, 234, 231, 224, 234, 231, 224, 234, 231, 224, 234, 231, 224, 234, 231, 224, 234, 231, 224, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 236, 233, 228, 237, 234, 229, 237, 234, 229, 237, 234, 229, 238, 235, 230, 238, 235, 230, 238, 235, 230, 239, 236, 231, 238, 235, 230, 238, 235, 230, 238, 235, 230, 239, 236, 231, 239, 236, 231, 239, 236, 231, 240, 237, 232, 240, 237, 232, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 243, 242, 238, 243, 242, 238, 244, 243, 239, 244, 243, 239, 244, 243, 239, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 252, 251, 250, 252, 251, 249, 251, 250, 249, 251, 250, 249, 251, 250, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 246, 248, 247, 245, 247, 246, 244, 246, 245, 244, 246, 245, 243, 245, 244, 243, 244, 246, 243, 244, 246, 242, 243, 245, 241, 242, 244, 240, 241, 243, 240, 241, 243, 239, 240, 242, 239, 240, 242, 235, 236, 238, 235, 236, 238, 234, 235, 237, 232, 233, 235, 231, 232, 234, 229, 230, 232, 228, 229, 231, 228, 229, 231, 223, 227, 230, 219, 223, 226, 215, 219, 222, 212, 216, 219, 212, 213, 215, 210, 211, 213, 205, 206, 208, 202, 203, 205, 202, 202, 202, 199, 199, 199, 194, 194, 194, 190, 190, 190, 186, 186, 186, 181, 181, 181, 175, 175, 175, 170, 170, 168, 176, 172, 171, 172, 168, 165, 165, 161, 158, 159, 155, 152, 156, 151, 148, 156, 151, 148, 157, 152, 149, 158, 153, 150, 155, 150, 147, 155, 150, 147, 157, 149, 147, 157, 149, 147, 157, 149, 147, 155, 147, 145, 154, 146, 144, 153, 145, 143, 151, 143, 141, 150, 142, 140, 148, 140, 138, 146, 138, 136, 144, 136, 134, 144, 136, 134, 144, 136, 134, 144, 136, 134, 153, 145, 143, 154, 146, 144, 156, 148, 146, 157, 149, 147, 158, 150, 148, 158, 150, 148, 158, 150, 148, 157, 149, 147, 157, 147, 146, 155, 145, 144, 153, 143, 142, 151, 141, 140, 151, 141, 140, 152, 142, 141, 153, 143, 142, 155, 145, 144, 159, 149, 148, 160, 150, 149, 161, 151, 150, 163, 153, 152, 165, 155, 154, 167, 157, 156, 168, 158, 157, 169, 159, 158, 167, 157, 156, 169, 159, 158, 170, 161, 162, 170, 161, 162, 168, 162, 162, 170, 164, 164, 173, 169, 170, 176, 172, 173, 178, 176, 179, 181, 181, 183, 187, 186, 191, 192, 193, 197, 197, 198, 202, 204, 205, 209, 210, 214, 217, 215, 218, 223, 219, 222, 229, 223, 226, 233, 229, 232, 237, 232, 235, 240, 234, 237, 242, 235, 238, 243, 236, 239, 244, 238, 241, 246, 241, 245, 248, 242, 246, 249, 242, 246, 249, 243, 247, 250, 244, 248, 251, 245, 249, 252, 245, 249, 250, 245, 249, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 251, 250, 249, 251, 250, 250, 252, 251, 250, 252, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 249, 246, 247, 249, 245, 246, 248, 245, 246, 248, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 246, 245, 244, 246, 245, 243, 245, 244, 243, 245, 244, 243, 245, 244, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 244, 243, 241, 244, 243, 241, 243, 242, 240, 243, 242, 240, 243, 242, 240, 242, 241, 239, 242, 241, 239, 242, 241, 239, 240, 239, 237, 240, 239, 237, 240, 239, 237, 240, 239, 237, 240, 239, 237, 240, 239, 237, 240, 239, 237, 240, 239, 237, 239, 239, 237, 239, 239, 237, 238, 238, 236, 238, 238, 236, 238, 238, 236, 237, 237, 235, 237, 238, 233, 237, 238, 233, 237, 236, 232, 237, 236, 232, 237, 236, 232, 236, 235, 231, 238, 235, 230, 238, 235, 230, 237, 234, 229, 237, 234, 229, 236, 232, 229, 235, 231, 228, 235, 231, 228, 235, 231, 228, 234, 231, 226, 234, 231, 226, 235, 230, 224, 234, 229, 223, 233, 228, 222, 233, 229, 220, 232, 228, 219, 231, 227, 218, 232, 225, 215, 232, 225, 215, 231, 224, 214, 231, 224, 214, 231, 223, 212, 232, 222, 212, 231, 222, 213, 232, 223, 214, 231, 224, 216, 230, 226, 217, 230, 225, 219, 230, 225, 219, 229, 226, 221, 229, 226, 221, 229, 226, 219, 229, 226, 219, 230, 225, 219, 230, 225, 219, 232, 225, 217, 232, 225, 217, 228, 224, 215, 228, 224, 215, 228, 224, 215, 228, 224, 215, 230, 223, 215, 230, 223, 215, 230, 223, 215, 230, 223, 215, 230, 223, 215, 229, 222, 214, 230, 221, 214, 230, 221, 214, 229, 220, 213, 229, 220, 213, 229, 220, 213, 228, 219, 210, 229, 219, 209, 228, 218, 206, 227, 217, 205, 226, 216, 204, 225, 215, 205, 225, 215, 205, 226, 216, 206, 227, 217, 207, 227, 218, 209, 227, 218, 209, 227, 218, 209, 227, 218, 209, 228, 219, 210, 228, 219, 210, 228, 221, 211, 228, 221, 211, 229, 222, 214, 229, 222, 214, 228, 221, 213, 228, 221, 213, 228, 221, 213, 227, 220, 212, 227, 220, 212, 227, 220, 212, 227, 220, 212, 228, 221, 213, 228, 221, 213, 228, 221, 213, 229, 222, 214, 229, 222, 214, 229, 222, 214, 230, 223, 215, 229, 222, 214, 229, 222, 214, 229, 222, 214, 229, 222, 214, 229, 222, 214, 229, 222, 214, 229, 222, 214, 229, 222, 214, 230, 223, 215, 230, 223, 215, 230, 223, 215, 230, 223, 215, 230, 223, 215, 230, 223, 215, 230, 223, 215, 230, 223, 215, 233, 226, 218, 233, 226, 218, 233, 226, 218, 233, 226, 218, 233, 226, 218, 233, 226, 218, 233, 226, 218, 233, 226, 218, 232, 225, 217, 232, 225, 217, 232, 225, 217, 232, 225, 217, 232, 225, 217, 232, 225, 217, 232, 225, 217, 232, 225, 217, 231, 227, 218, 231, 227, 218, 232, 228, 219, 232, 228, 219, 233, 229, 220, 233, 229, 220, 233, 229, 220, 233, 229, 220, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 234, 229, 225, 234, 229, 225, 235, 230, 226, 235, 230, 226, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 237, 234, 229, 237, 234, 229, 237, 234, 229, 237, 234, 229, 238, 235, 230, 238, 235, 230, 239, 236, 231, 239, 236, 231, 238, 235, 230, 238, 235, 230, 238, 235, 230, 239, 236, 231, 239, 236, 231, 239, 236, 231, 240, 237, 232, 240, 237, 232, 238, 237, 233, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 243, 242, 238, 243, 242, 238, 243, 242, 238, 244, 243, 239, 244, 243, 239, 244, 243, 239, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 246, 248, 247, 245, 247, 246, 244, 246, 245, 244, 246, 245, 243, 245, 244, 242, 243, 245, 241, 242, 244, 241, 242, 244, 240, 241, 243, 239, 240, 242, 238, 239, 241, 238, 239, 241, 237, 238, 240, 235, 236, 238, 234, 235, 237, 232, 233, 235, 230, 231, 233, 228, 229, 231, 226, 227, 229, 225, 226, 228, 224, 225, 227, 222, 226, 229, 219, 223, 226, 215, 219, 222, 213, 217, 220, 214, 215, 217, 211, 212, 214, 208, 209, 211, 205, 206, 208, 202, 202, 202, 199, 199, 199, 194, 194, 194, 191, 191, 191, 187, 187, 187, 182, 182, 182, 175, 175, 175, 171, 171, 169, 170, 166, 165, 166, 162, 159, 159, 155, 152, 153, 149, 146, 151, 146, 143, 150, 145, 142, 151, 146, 143, 152, 147, 144, 154, 149, 146, 155, 150, 147, 157, 149, 147, 157, 149, 147, 156, 148, 146, 154, 146, 144, 153, 145, 143, 152, 144, 142, 151, 143, 141, 150, 142, 140, 149, 141, 139, 147, 139, 137, 147, 139, 137, 146, 138, 136, 147, 139, 137, 147, 139, 137, 154, 146, 144, 155, 147, 145, 156, 148, 146, 158, 150, 148, 159, 151, 149, 159, 151, 149, 159, 151, 149, 158, 150, 148, 157, 147, 146, 156, 146, 145, 153, 143, 142, 151, 141, 140, 151, 141, 140, 152, 142, 141, 153, 143, 142, 154, 144, 143, 158, 148, 147, 158, 148, 147, 160, 150, 149, 162, 152, 151, 164, 154, 153, 166, 156, 155, 167, 157, 156, 168, 158, 157, 167, 157, 156, 169, 159, 158, 169, 160, 161, 170, 161, 162, 168, 162, 162, 170, 164, 164, 173, 169, 170, 176, 172, 173, 177, 175, 178, 181, 179, 182, 186, 185, 190, 191, 190, 195, 196, 197, 201, 202, 203, 207, 208, 212, 215, 213, 217, 220, 218, 221, 228, 222, 225, 232, 228, 231, 236, 232, 235, 240, 233, 236, 241, 234, 237, 242, 236, 239, 244, 238, 241, 246, 241, 245, 248, 241, 245, 248, 242, 246, 249, 243, 247, 250, 243, 247, 250, 244, 248, 251, 245, 249, 250, 245, 249, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 251, 250, 249, 251, 250, 250, 252, 251, 250, 252, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 249, 246, 247, 249, 245, 246, 248, 245, 246, 248, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 246, 245, 244, 246, 245, 243, 245, 244, 243, 245, 244, 243, 245, 244, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 242, 242, 240, 241, 241, 239, 244, 243, 241, 244, 243, 241, 243, 242, 240, 243, 242, 240, 243, 242, 240, 242, 241, 239, 242, 241, 239, 242, 241, 239, 240, 239, 237, 240, 239, 237, 240, 239, 237, 240, 239, 237, 240, 239, 237, 240, 239, 237, 240, 239, 237, 240, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 238, 238, 236, 238, 238, 236, 237, 237, 235, 237, 238, 233, 237, 238, 233, 238, 237, 233, 237, 236, 232, 237, 236, 232, 237, 236, 232, 238, 235, 230, 238, 235, 230, 238, 235, 230, 237, 234, 229, 234, 233, 229, 234, 233, 229, 235, 231, 228, 235, 231, 228, 235, 232, 227, 234, 231, 226, 234, 231, 226, 234, 231, 224, 234, 229, 223, 233, 228, 222, 233, 229, 220, 232, 228, 219, 231, 227, 216, 230, 226, 215, 232, 225, 215, 231, 224, 214, 232, 224, 213, 232, 224, 213, 232, 223, 214, 232, 223, 214, 232, 225, 217, 230, 226, 217, 230, 225, 219, 230, 227, 222, 229, 226, 221, 229, 226, 221, 229, 226, 221, 229, 226, 221, 230, 225, 219, 230, 225, 219, 230, 226, 217, 230, 226, 217, 228, 223, 217, 228, 223, 217, 228, 223, 217, 228, 223, 217, 228, 223, 217, 228, 223, 217, 230, 223, 217, 230, 223, 217, 230, 223, 217, 230, 223, 217, 230, 223, 217, 229, 222, 216, 230, 221, 216, 229, 220, 215, 229, 220, 215, 229, 220, 213, 230, 220, 211, 229, 219, 209, 227, 217, 207, 226, 216, 206, 226, 216, 206, 226, 216, 206, 226, 217, 208, 226, 217, 208, 227, 218, 209, 227, 218, 209, 227, 220, 210, 227, 220, 210, 227, 220, 212, 228, 221, 213, 228, 221, 213, 228, 221, 213, 229, 222, 214, 229, 222, 214, 229, 222, 214, 229, 222, 214, 228, 221, 213, 228, 221, 213, 228, 221, 213, 227, 220, 212, 228, 221, 213, 228, 221, 213, 228, 221, 213, 229, 222, 214, 229, 222, 214, 230, 223, 215, 230, 223, 215, 230, 223, 215, 230, 223, 215, 230, 223, 215, 230, 223, 215, 230, 223, 215, 230, 223, 215, 230, 223, 215, 230, 223, 215, 230, 223, 215, 230, 223, 215, 230, 223, 215, 230, 223, 215, 230, 223, 215, 230, 223, 215, 230, 223, 215, 230, 223, 215, 230, 223, 215, 231, 226, 220, 231, 226, 220, 231, 226, 220, 231, 226, 220, 231, 226, 220, 231, 226, 220, 231, 226, 220, 231, 226, 220, 231, 226, 220, 231, 226, 220, 231, 226, 220, 231, 226, 220, 231, 226, 220, 231, 226, 220, 231, 226, 220, 231, 226, 220, 232, 228, 219, 232, 228, 219, 232, 228, 219, 232, 228, 219, 233, 229, 220, 233, 229, 220, 234, 230, 221, 234, 230, 221, 233, 228, 222, 233, 228, 222, 233, 228, 222, 234, 229, 223, 234, 229, 225, 234, 229, 225, 235, 230, 226, 235, 230, 226, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 234, 229, 235, 234, 229, 235, 234, 229, 236, 235, 230, 236, 235, 230, 236, 235, 230, 237, 236, 231, 237, 236, 231, 236, 235, 230, 236, 235, 230, 237, 236, 231, 237, 236, 231, 237, 236, 231, 238, 237, 232, 238, 237, 232, 238, 237, 232, 238, 237, 233, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 242, 241, 237, 243, 242, 238, 242, 241, 237, 243, 242, 238, 243, 242, 238, 243, 242, 238, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 245, 247, 246, 244, 246, 245, 243, 245, 244, 243, 245, 244, 241, 242, 244, 241, 242, 244, 240, 241, 243, 239, 240, 242, 238, 239, 241, 238, 239, 241, 237, 238, 240, 237, 238, 240, 235, 236, 238, 234, 235, 237, 232, 233, 235, 229, 230, 232, 226, 227, 229, 224, 225, 227, 222, 223, 225, 220, 221, 223, 218, 222, 225, 215, 219, 222, 212, 216, 219, 211, 215, 218, 212, 213, 215, 211, 212, 214, 207, 208, 210, 205, 206, 208, 202, 202, 202, 199, 199, 199, 195, 195, 195, 191, 191, 191, 187, 187, 187, 183, 183, 183, 176, 176, 176, 172, 172, 170, 166, 162, 161, 163, 159, 156, 157, 153, 150, 151, 147, 144, 149, 144, 141, 147, 142, 139, 148, 143, 140, 149, 144, 141, 154, 149, 146, 154, 149, 146, 156, 148, 146, 156, 148, 146, 155, 147, 145, 153, 145, 143, 151, 143, 141, 150, 142, 140, 151, 143, 141, 150, 142, 140, 149, 141, 139, 148, 140, 138, 148, 140, 138, 149, 141, 139, 150, 142, 140, 151, 143, 141, 154, 146, 144, 155, 147, 145, 157, 149, 147, 159, 151, 149, 160, 152, 150, 160, 152, 150, 160, 152, 150, 160, 152, 150, 158, 148, 147, 156, 146, 145, 154, 144, 143, 152, 142, 141, 151, 141, 140, 152, 142, 141, 153, 143, 142, 154, 144, 143, 155, 145, 144, 156, 146, 145, 158, 148, 147, 160, 150, 149, 162, 152, 151, 164, 154, 153, 165, 155, 154, 166, 156, 155, 166, 156, 155, 168, 158, 157, 169, 161, 159, 170, 162, 160, 170, 161, 162, 170, 164, 164, 172, 168, 169, 176, 172, 173, 176, 174, 175, 180, 178, 179, 184, 184, 186, 189, 189, 191, 193, 194, 198, 200, 201, 205, 207, 208, 212, 212, 213, 217, 216, 219, 226, 221, 224, 231, 227, 230, 235, 231, 234, 239, 232, 235, 240, 234, 237, 242, 236, 239, 244, 238, 241, 246, 240, 244, 247, 241, 245, 248, 241, 245, 248, 242, 246, 249, 243, 247, 250, 244, 248, 251, 244, 248, 249, 245, 249, 250, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 251, 250, 249, 251, 250, 250, 252, 251, 250, 252, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 249, 246, 247, 249, 245, 246, 248, 245, 246, 248, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 246, 245, 244, 246, 245, 243, 245, 244, 243, 245, 244, 243, 245, 244, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 242, 242, 240, 244, 243, 241, 244, 243, 241, 243, 242, 240, 243, 242, 240, 243, 242, 240, 242, 241, 239, 242, 241, 239, 242, 241, 239, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 238, 238, 236, 238, 238, 236, 238, 239, 234, 237, 238, 233, 238, 237, 233, 238, 237, 233, 237, 236, 232, 237, 236, 232, 239, 236, 231, 238, 235, 230, 238, 235, 230, 238, 235, 230, 234, 233, 229, 234, 233, 229, 236, 232, 229, 235, 231, 228, 235, 232, 227, 235, 232, 227, 234, 231, 226, 234, 231, 226, 234, 229, 223, 234, 229, 223, 233, 229, 220, 233, 229, 220, 232, 228, 217, 231, 227, 216, 232, 225, 215, 232, 225, 215, 232, 224, 213, 232, 224, 213, 233, 224, 215, 232, 225, 215, 231, 227, 218, 231, 226, 220, 230, 227, 222, 230, 227, 222, 230, 227, 222, 230, 227, 222, 230, 227, 222, 230, 227, 222, 231, 226, 220, 231, 226, 220, 231, 227, 218, 231, 227, 218, 229, 224, 218, 229, 224, 218, 229, 224, 218, 229, 224, 218, 229, 224, 218, 229, 224, 218, 231, 224, 218, 231, 224, 218, 231, 224, 218, 231, 224, 218, 230, 223, 217, 230, 223, 217, 231, 222, 217, 230, 221, 216, 230, 221, 216, 230, 221, 214, 231, 221, 212, 230, 220, 210, 229, 219, 209, 228, 218, 208, 227, 217, 207, 227, 217, 207, 227, 218, 209, 228, 219, 210, 228, 219, 210, 228, 219, 210, 227, 220, 210, 228, 221, 211, 228, 221, 213, 229, 222, 214, 229, 222, 214, 229, 222, 214, 230, 223, 215, 230, 223, 215, 230, 223, 215, 229, 222, 214, 229, 222, 214, 229, 222, 214, 228, 221, 213, 228, 221, 213, 229, 222, 214, 229, 222, 214, 229, 222, 214, 230, 223, 215, 230, 223, 215, 230, 223, 215, 231, 224, 216, 231, 224, 216, 230, 223, 215, 230, 223, 215, 230, 223, 215, 230, 223, 215, 230, 223, 215, 230, 223, 215, 230, 223, 215, 230, 223, 215, 231, 224, 216, 231, 224, 216, 231, 224, 216, 231, 224, 216, 231, 224, 216, 231, 224, 216, 231, 224, 216, 231, 224, 216, 231, 226, 220, 231, 226, 220, 231, 226, 220, 231, 226, 220, 231, 226, 220, 231, 226, 220, 231, 226, 220, 231, 226, 220, 232, 227, 221, 232, 227, 221, 232, 227, 221, 232, 227, 221, 232, 227, 221, 232, 227, 221, 232, 227, 221, 232, 227, 221, 232, 228, 219, 232, 228, 219, 232, 228, 219, 233, 229, 220, 233, 229, 220, 234, 230, 221, 234, 230, 221, 234, 230, 221, 233, 228, 222, 233, 228, 222, 234, 229, 223, 234, 229, 223, 234, 229, 225, 235, 230, 226, 235, 230, 226, 235, 230, 226, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 236, 233, 228, 236, 233, 228, 236, 233, 228, 236, 233, 228, 236, 233, 228, 236, 233, 228, 236, 233, 228, 236, 233, 228, 235, 234, 229, 235, 234, 229, 236, 235, 230, 236, 235, 230, 236, 235, 230, 237, 236, 231, 237, 236, 231, 237, 236, 231, 236, 235, 230, 237, 236, 231, 237, 236, 231, 237, 236, 231, 238, 237, 232, 238, 237, 232, 238, 237, 232, 239, 238, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 242, 241, 237, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 244, 243, 239, 244, 243, 239, 244, 243, 239, 245, 244, 240, 245, 244, 240, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 248, 250, 249, 247, 249, 248, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 247, 246, 247, 249, 248, 246, 248, 247, 246, 248, 247, 245, 247, 246, 244, 246, 245, 244, 246, 245, 243, 245, 244, 243, 245, 244, 242, 243, 245, 242, 243, 245, 241, 242, 244, 240, 241, 243, 239, 240, 242, 239, 240, 242, 238, 239, 241, 238, 239, 241, 237, 238, 240, 235, 236, 238, 233, 234, 236, 230, 231, 233, 226, 227, 229, 223, 224, 226, 221, 222, 224, 219, 220, 222, 213, 217, 220, 211, 215, 218, 208, 212, 215, 207, 211, 214, 209, 210, 212, 208, 209, 211, 205, 206, 208, 203, 204, 206, 202, 202, 202, 199, 199, 199, 195, 195, 195, 192, 192, 192, 188, 188, 188, 184, 184, 184, 178, 178, 178, 173, 173, 171, 170, 166, 165, 167, 163, 160, 162, 158, 155, 157, 153, 150, 154, 149, 146, 152, 147, 144, 152, 147, 144, 152, 147, 144, 154, 149, 146, 154, 149, 146, 156, 148, 146, 155, 147, 145, 154, 146, 144, 152, 144, 142, 150, 142, 140, 149, 141, 139, 148, 140, 138, 148, 140, 138, 147, 139, 137, 147, 139, 137, 148, 140, 138, 149, 141, 139, 150, 142, 140, 151, 143, 141, 154, 146, 144, 155, 147, 145, 157, 149, 147, 159, 151, 149, 161, 153, 151, 161, 153, 151, 162, 154, 152, 161, 153, 151, 159, 149, 148, 157, 147, 146, 155, 145, 144, 152, 142, 141, 151, 141, 140, 152, 142, 141, 153, 143, 142, 154, 144, 143, 153, 143, 142, 154, 144, 143, 155, 145, 144, 157, 147, 146, 159, 149, 148, 161, 151, 150, 163, 153, 152, 164, 154, 153, 166, 156, 155, 168, 158, 157, 169, 161, 159, 169, 161, 159, 169, 160, 161, 171, 162, 163, 173, 167, 169, 175, 171, 172, 176, 172, 173, 178, 176, 177, 182, 182, 184, 187, 187, 189, 191, 192, 196, 197, 198, 202, 204, 205, 209, 210, 211, 215, 214, 217, 224, 219, 222, 229, 225, 228, 233, 229, 232, 237, 231, 234, 239, 233, 236, 241, 235, 238, 243, 237, 240, 245, 240, 244, 247, 240, 244, 247, 240, 244, 247, 241, 245, 248, 242, 246, 249, 243, 247, 250, 243, 247, 248, 244, 248, 249, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 251, 250, 249, 251, 250, 250, 252, 251, 250, 252, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 249, 246, 247, 249, 245, 246, 248, 245, 246, 248, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 246, 245, 244, 246, 245, 243, 245, 244, 243, 245, 244, 243, 245, 244, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 244, 243, 241, 244, 243, 241, 243, 242, 240, 243, 242, 240, 243, 242, 240, 242, 241, 239, 242, 241, 239, 242, 241, 239, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 240, 240, 238, 240, 240, 238, 239, 239, 237, 239, 239, 237, 239, 239, 237, 238, 238, 236, 238, 239, 234, 238, 239, 234, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 239, 236, 231, 239, 236, 231, 238, 235, 230, 238, 235, 230, 235, 234, 230, 234, 233, 231, 234, 233, 229, 234, 233, 229, 235, 231, 228, 235, 231, 228, 235, 232, 227, 235, 232, 227, 234, 231, 224, 234, 231, 224, 234, 230, 221, 233, 229, 220, 233, 229, 220, 232, 228, 219, 231, 227, 216, 233, 226, 216, 233, 224, 215, 233, 224, 215, 233, 226, 218, 233, 226, 218, 231, 226, 220, 232, 227, 221, 231, 228, 223, 231, 228, 223, 231, 228, 223, 231, 228, 223, 231, 228, 223, 231, 228, 223, 231, 228, 221, 231, 228, 221, 232, 227, 221, 232, 227, 221, 229, 226, 219, 229, 226, 219, 230, 225, 219, 230, 225, 219, 230, 225, 219, 230, 225, 219, 230, 225, 219, 230, 225, 219, 232, 225, 219, 232, 225, 219, 231, 224, 218, 231, 224, 218, 230, 223, 217, 230, 223, 217, 231, 222, 217, 231, 222, 215, 232, 222, 213, 231, 221, 211, 230, 220, 210, 229, 219, 209, 227, 219, 208, 228, 220, 209, 228, 219, 210, 229, 220, 211, 229, 220, 211, 229, 220, 211, 228, 221, 213, 229, 222, 214, 229, 222, 214, 229, 222, 214, 230, 223, 215, 230, 223, 215, 231, 224, 216, 231, 224, 216, 231, 224, 216, 230, 223, 215, 230, 223, 215, 229, 222, 214, 229, 222, 214, 229, 222, 214, 230, 223, 215, 230, 223, 215, 230, 223, 215, 230, 223, 215, 231, 224, 216, 231, 224, 216, 232, 225, 217, 232, 225, 217, 231, 224, 216, 231, 224, 216, 231, 224, 216, 231, 224, 216, 231, 224, 216, 231, 224, 216, 231, 224, 216, 231, 224, 216, 232, 225, 217, 232, 225, 217, 232, 225, 217, 232, 225, 217, 232, 225, 217, 232, 225, 217, 232, 225, 217, 232, 225, 217, 232, 227, 221, 232, 227, 221, 232, 227, 221, 232, 227, 221, 232, 227, 221, 232, 227, 221, 232, 227, 221, 232, 227, 221, 232, 227, 221, 232, 227, 221, 232, 227, 221, 232, 227, 221, 232, 227, 221, 232, 227, 221, 232, 227, 221, 232, 227, 221, 231, 228, 219, 232, 229, 220, 232, 229, 220, 232, 229, 220, 233, 230, 221, 233, 230, 221, 233, 230, 221, 234, 231, 222, 233, 230, 223, 233, 230, 223, 233, 230, 223, 234, 231, 224, 234, 231, 226, 234, 231, 226, 235, 232, 227, 235, 232, 227, 236, 233, 228, 236, 233, 228, 236, 233, 228, 236, 233, 228, 236, 233, 228, 236, 233, 228, 236, 233, 228, 236, 233, 228, 237, 234, 229, 237, 234, 229, 237, 234, 229, 237, 234, 229, 237, 234, 229, 237, 234, 229, 237, 234, 229, 237, 234, 229, 236, 235, 231, 236, 235, 231, 236, 235, 231, 237, 236, 232, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 237, 236, 232, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 244, 243, 239, 244, 243, 239, 244, 243, 239, 245, 244, 240, 245, 244, 240, 245, 244, 240, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 248, 250, 249, 247, 249, 248, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 247, 246, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 244, 246, 245, 243, 245, 244, 243, 245, 244, 242, 244, 243, 243, 244, 246, 243, 244, 246, 243, 244, 246, 242, 243, 245, 241, 242, 244, 240, 241, 243, 240, 241, 243, 239, 240, 242, 238, 239, 241, 237, 238, 240, 235, 236, 238, 231, 232, 234, 228, 229, 231, 225, 226, 228, 222, 223, 225, 221, 222, 224, 215, 219, 222, 212, 216, 219, 209, 213, 216, 208, 212, 215, 210, 211, 213, 209, 210, 212, 207, 208, 210, 204, 205, 207, 202, 202, 202, 199, 199, 199, 195, 195, 195, 192, 192, 192, 189, 189, 189, 185, 185, 185, 179, 179, 179, 175, 175, 173, 173, 169, 168, 171, 167, 164, 167, 163, 160, 162, 158, 155, 159, 154, 151, 157, 152, 149, 156, 151, 148, 155, 150, 147, 155, 150, 147, 155, 150, 147, 157, 149, 147, 156, 148, 146, 154, 146, 144, 151, 143, 141, 149, 141, 139, 148, 140, 138, 146, 138, 136, 146, 138, 136, 145, 137, 135, 145, 137, 135, 146, 138, 136, 147, 139, 137, 148, 140, 138, 149, 141, 139, 153, 145, 143, 155, 147, 145, 157, 149, 147, 159, 151, 149, 161, 153, 151, 162, 154, 152, 162, 154, 152, 162, 154, 152, 160, 150, 149, 159, 149, 148, 156, 146, 145, 153, 143, 142, 152, 142, 141, 152, 142, 141, 153, 143, 142, 153, 143, 142, 152, 142, 141, 152, 142, 141, 154, 144, 143, 156, 146, 145, 158, 148, 147, 160, 150, 149, 161, 151, 150, 162, 152, 151, 166, 156, 155, 167, 157, 156, 169, 159, 158, 170, 160, 159, 169, 160, 161, 171, 162, 163, 173, 167, 167, 175, 171, 170, 176, 172, 173, 177, 175, 176, 181, 181, 183, 186, 186, 188, 189, 190, 194, 195, 196, 200, 202, 203, 207, 207, 208, 212, 212, 215, 222, 217, 220, 227, 223, 226, 231, 228, 231, 236, 230, 233, 238, 232, 235, 240, 235, 238, 243, 237, 240, 245, 239, 243, 246, 239, 243, 246, 240, 244, 247, 240, 244, 247, 241, 245, 248, 242, 246, 249, 243, 247, 248, 243, 247, 248, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 251, 250, 249, 251, 250, 250, 252, 251, 250, 252, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 249, 246, 247, 249, 245, 246, 248, 245, 246, 248, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 246, 245, 244, 246, 245, 243, 245, 244, 243, 245, 244, 243, 245, 244, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 243, 241, 244, 243, 241, 243, 242, 240, 243, 242, 240, 243, 242, 240, 242, 241, 239, 242, 241, 239, 242, 241, 239, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 239, 239, 237, 239, 239, 237, 239, 239, 237, 238, 239, 234, 238, 239, 234, 239, 238, 234, 239, 238, 234, 238, 237, 233, 238, 237, 233, 240, 237, 232, 239, 236, 231, 239, 236, 231, 239, 236, 231, 235, 234, 232, 235, 234, 232, 235, 234, 230, 234, 233, 229, 236, 232, 229, 235, 231, 228, 235, 232, 227, 235, 232, 227, 235, 232, 225, 235, 232, 225, 235, 231, 222, 234, 230, 221, 233, 229, 220, 233, 229, 220, 232, 228, 217, 232, 228, 217, 234, 225, 216, 234, 225, 216, 233, 226, 218, 234, 227, 219, 232, 227, 221, 233, 228, 222, 232, 229, 224, 232, 229, 224, 232, 229, 224, 232, 229, 224, 232, 229, 224, 232, 229, 224, 232, 229, 222, 232, 229, 222, 233, 228, 222, 233, 228, 222, 230, 227, 220, 230, 227, 220, 231, 226, 220, 231, 226, 220, 231, 226, 220, 231, 226, 220, 231, 226, 220, 231, 226, 220, 232, 225, 219, 232, 225, 219, 232, 225, 219, 232, 225, 219, 231, 224, 218, 231, 224, 218, 232, 223, 218, 231, 222, 215, 233, 223, 214, 232, 222, 212, 231, 221, 211, 230, 220, 210, 229, 221, 210, 229, 221, 210, 229, 220, 211, 230, 221, 212, 230, 221, 212, 230, 221, 212, 229, 222, 214, 229, 222, 214, 230, 223, 215, 230, 223, 215, 230, 223, 215, 231, 224, 216, 232, 225, 217, 232, 225, 217, 231, 224, 216, 231, 224, 216, 231, 224, 216, 230, 223, 215, 230, 223, 215, 230, 223, 215, 230, 223, 215, 231, 224, 216, 231, 224, 216, 231, 224, 216, 232, 225, 217, 232, 225, 217, 232, 225, 217, 232, 225, 217, 232, 225, 217, 232, 225, 217, 232, 225, 217, 232, 225, 217, 232, 225, 217, 232, 225, 217, 232, 225, 217, 232, 225, 217, 233, 226, 218, 233, 226, 218, 233, 226, 218, 233, 226, 218, 233, 226, 218, 233, 226, 218, 233, 226, 218, 233, 226, 218, 232, 227, 221, 232, 227, 221, 232, 227, 221, 232, 227, 221, 232, 227, 221, 232, 227, 221, 232, 227, 221, 232, 227, 221, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 232, 229, 220, 232, 229, 220, 232, 229, 220, 233, 230, 221, 233, 230, 221, 233, 230, 221, 234, 231, 222, 234, 231, 222, 233, 230, 223, 233, 230, 223, 234, 231, 224, 234, 231, 224, 234, 231, 226, 235, 232, 227, 235, 232, 227, 235, 232, 227, 236, 233, 228, 236, 233, 228, 236, 233, 228, 236, 233, 228, 236, 233, 228, 236, 233, 228, 236, 233, 228, 236, 233, 228, 238, 235, 230, 238, 235, 230, 238, 235, 230, 238, 235, 230, 238, 235, 230, 238, 235, 230, 238, 235, 230, 238, 235, 230, 236, 235, 231, 236, 235, 231, 237, 236, 232, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 238, 237, 233, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 242, 241, 237, 243, 242, 238, 243, 242, 238, 243, 242, 238, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 245, 244, 240, 245, 244, 240, 245, 244, 240, 246, 245, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 247, 246, 244, 246, 245, 243, 245, 244, 243, 245, 244, 242, 244, 243, 242, 244, 243, 243, 244, 246, 243, 244, 246, 242, 243, 245, 242, 243, 245, 241, 242, 244, 240, 241, 243, 239, 240, 242, 239, 240, 242, 237, 238, 240, 236, 237, 239, 234, 235, 237, 231, 232, 234, 229, 230, 232, 226, 227, 229, 224, 225, 227, 223, 224, 226, 219, 223, 226, 217, 221, 224, 213, 217, 220, 212, 216, 219, 213, 214, 216, 212, 213, 215, 209, 210, 212, 206, 207, 209, 202, 202, 202, 199, 199, 199, 196, 196, 196, 193, 193, 193, 190, 190, 190, 186, 186, 186, 181, 181, 181, 177, 177, 175, 174, 170, 169, 172, 168, 165, 169, 165, 162, 165, 161, 158, 162, 157, 154, 159, 154, 151, 157, 152, 149, 156, 151, 148, 156, 151, 148, 156, 151, 148, 158, 150, 148, 156, 148, 146, 154, 146, 144, 152, 144, 142, 149, 141, 139, 148, 140, 138, 147, 139, 137, 147, 139, 137, 146, 138, 136, 145, 137, 135, 145, 137, 135, 146, 138, 136, 147, 139, 137, 147, 139, 137, 152, 144, 142, 153, 145, 143, 156, 148, 146, 158, 150, 148, 160, 152, 150, 162, 154, 152, 162, 154, 152, 162, 154, 152, 162, 152, 151, 160, 150, 149, 156, 146, 145, 154, 144, 143, 152, 142, 141, 152, 142, 141, 152, 142, 141, 153, 143, 142, 151, 141, 140, 151, 141, 140, 153, 143, 142, 155, 145, 144, 157, 147, 146, 159, 149, 148, 160, 150, 149, 161, 151, 150, 165, 155, 154, 167, 157, 156, 169, 159, 158, 169, 159, 158, 169, 160, 161, 170, 161, 162, 172, 166, 166, 175, 169, 169, 176, 172, 173, 179, 175, 176, 182, 180, 183, 185, 185, 187, 189, 188, 193, 194, 195, 199, 200, 201, 205, 205, 206, 210, 210, 213, 220, 215, 218, 225, 222, 225, 230, 227, 230, 235, 229, 232, 237, 232, 235, 240, 234, 237, 242, 237, 240, 245, 238, 242, 245, 238, 242, 245, 239, 243, 246, 240, 244, 247, 240, 244, 247, 241, 245, 248, 242, 246, 247, 242, 246, 247, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 251, 250, 249, 251, 250, 250, 252, 251, 250, 252, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 249, 246, 247, 249, 245, 246, 248, 245, 246, 248, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 246, 245, 244, 246, 245, 243, 245, 244, 243, 245, 244, 243, 245, 244, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 243, 241, 244, 243, 241, 243, 242, 240, 243, 242, 240, 243, 242, 240, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 241, 241, 239, 240, 240, 238, 240, 240, 238, 240, 240, 238, 239, 239, 237, 239, 239, 237, 239, 240, 235, 238, 239, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 238, 237, 233, 240, 237, 232, 239, 236, 231, 239, 236, 231, 239, 236, 231, 235, 234, 232, 235, 234, 232, 235, 234, 230, 234, 233, 229, 236, 232, 229, 236, 232, 229, 235, 232, 227, 235, 232, 227, 235, 232, 225, 235, 232, 225, 236, 232, 223, 235, 231, 222, 234, 230, 221, 233, 229, 220, 233, 229, 220, 232, 228, 219, 234, 225, 216, 235, 226, 217, 234, 227, 219, 234, 227, 219, 233, 228, 222, 233, 228, 222, 232, 229, 224, 233, 230, 225, 230, 229, 224, 230, 229, 224, 232, 229, 224, 232, 229, 224, 232, 229, 222, 232, 229, 222, 233, 228, 222, 233, 228, 222, 230, 227, 220, 230, 227, 220, 230, 227, 220, 230, 227, 220, 231, 226, 220, 231, 226, 220, 231, 226, 220, 231, 226, 220, 233, 226, 220, 233, 226, 220, 233, 226, 220, 232, 225, 219, 232, 225, 219, 231, 224, 218, 231, 224, 218, 232, 223, 216, 234, 224, 215, 233, 223, 213, 231, 223, 212, 230, 222, 211, 229, 220, 211, 230, 221, 212, 230, 221, 212, 231, 222, 213, 229, 222, 212, 229, 222, 212, 230, 223, 215, 230, 223, 215, 230, 223, 215, 231, 224, 216, 231, 224, 216, 231, 224, 216, 230, 226, 217, 230, 226, 217, 230, 226, 217, 230, 226, 217, 229, 225, 216, 229, 225, 216, 228, 224, 215, 228, 224, 215, 229, 225, 216, 229, 225, 216, 229, 225, 216, 230, 226, 217, 230, 226, 217, 231, 227, 218, 231, 227, 218, 231, 227, 218, 231, 227, 218, 231, 227, 218, 231, 227, 218, 231, 227, 218, 231, 227, 218, 231, 227, 218, 231, 227, 218, 231, 227, 218, 231, 227, 218, 231, 227, 218, 231, 227, 218, 231, 227, 218, 231, 227, 218, 231, 227, 218, 231, 227, 218, 231, 227, 218, 232, 227, 221, 232, 227, 221, 232, 227, 221, 232, 227, 221, 232, 227, 221, 232, 227, 221, 232, 227, 221, 232, 227, 221, 234, 229, 223, 234, 229, 223, 234, 229, 223, 234, 229, 223, 234, 229, 223, 234, 229, 223, 234, 229, 223, 234, 229, 223, 232, 229, 220, 232, 229, 220, 233, 230, 221, 233, 230, 221, 233, 230, 221, 234, 231, 222, 234, 231, 222, 234, 231, 222, 233, 230, 223, 233, 230, 223, 234, 231, 224, 234, 231, 224, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 234, 233, 228, 234, 233, 228, 234, 233, 228, 234, 233, 228, 234, 233, 228, 234, 233, 228, 234, 233, 228, 234, 233, 228, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 231, 236, 235, 231, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 243, 242, 238, 243, 242, 238, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 245, 244, 240, 245, 244, 240, 245, 244, 240, 246, 245, 241, 246, 245, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 246, 248, 247, 245, 247, 246, 245, 247, 246, 244, 246, 245, 243, 245, 244, 242, 244, 243, 242, 244, 243, 242, 244, 243, 241, 242, 244, 240, 241, 243, 240, 241, 243, 239, 240, 242, 238, 239, 241, 237, 238, 240, 237, 238, 240, 236, 237, 239, 234, 235, 237, 233, 234, 236, 231, 232, 234, 229, 230, 232, 227, 228, 230, 225, 226, 228, 224, 225, 227, 223, 224, 226, 219, 223, 226, 216, 220, 223, 213, 217, 220, 210, 214, 217, 211, 212, 214, 209, 210, 212, 205, 206, 208, 202, 203, 205, 202, 202, 202, 199, 199, 199, 196, 196, 196, 193, 193, 193, 191, 191, 191, 187, 187, 187, 182, 182, 182, 178, 178, 176, 177, 173, 172, 175, 171, 168, 172, 168, 165, 169, 165, 162, 166, 161, 158, 163, 158, 155, 160, 155, 152, 159, 154, 151, 158, 153, 150, 158, 153, 150, 159, 151, 149, 157, 149, 147, 155, 147, 145, 152, 144, 142, 150, 142, 140, 148, 140, 138, 151, 143, 141, 150, 142, 140, 148, 140, 138, 147, 139, 137, 146, 138, 136, 146, 138, 136, 146, 138, 136, 146, 138, 136, 150, 142, 140, 152, 144, 142, 154, 146, 144, 157, 149, 147, 160, 152, 150, 161, 153, 151, 162, 154, 152, 162, 154, 152, 162, 152, 151, 160, 150, 149, 157, 147, 146, 154, 144, 143, 152, 142, 141, 152, 142, 141, 152, 142, 141, 153, 143, 142, 150, 140, 139, 151, 141, 140, 153, 143, 142, 155, 145, 144, 157, 147, 146, 159, 149, 148, 160, 150, 149, 161, 151, 150, 165, 155, 154, 167, 157, 156, 169, 159, 158, 169, 159, 158, 168, 160, 158, 170, 162, 160, 172, 166, 166, 175, 169, 169, 176, 172, 173, 179, 175, 176, 182, 180, 183, 185, 185, 187, 189, 189, 191, 194, 194, 196, 200, 201, 205, 205, 206, 210, 209, 212, 219, 214, 217, 224, 221, 224, 229, 226, 229, 234, 229, 232, 237, 231, 234, 239, 234, 237, 242, 236, 239, 244, 237, 241, 244, 238, 242, 245, 238, 242, 245, 239, 243, 246, 240, 244, 247, 241, 245, 248, 241, 245, 246, 242, 246, 247, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 251, 250, 249, 251, 250, 250, 252, 251, 250, 252, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 249, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 249, 246, 247, 249, 245, 246, 248, 245, 246, 248, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 246, 245, 244, 246, 245, 243, 245, 244, 243, 245, 244, 243, 245, 244, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 243, 241, 244, 243, 241, 243, 242, 240, 243, 242, 240, 243, 242, 240, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 241, 241, 239, 241, 241, 239, 240, 240, 238, 240, 240, 238, 239, 239, 237, 239, 239, 237, 239, 240, 235, 239, 240, 235, 239, 238, 234, 239, 238, 234, 239, 238, 234, 238, 237, 233, 238, 237, 233, 238, 237, 232, 239, 235, 232, 237, 236, 232, 235, 234, 230, 235, 234, 230, 235, 234, 230, 235, 234, 230, 236, 232, 229, 236, 232, 229, 236, 233, 228, 235, 232, 227, 236, 233, 226, 235, 232, 225, 236, 232, 223, 235, 231, 222, 234, 230, 221, 234, 230, 221, 233, 229, 220, 233, 229, 220, 234, 227, 219, 234, 227, 219, 234, 227, 219, 233, 229, 220, 233, 228, 222, 233, 228, 222, 233, 230, 225, 233, 230, 225, 230, 229, 224, 230, 229, 224, 232, 229, 224, 232, 229, 224, 232, 229, 222, 232, 229, 222, 233, 228, 222, 233, 228, 222, 231, 228, 221, 231, 228, 221, 231, 228, 221, 231, 228, 221, 232, 227, 221, 232, 227, 221, 232, 227, 221, 232, 227, 221, 233, 226, 220, 233, 226, 220, 233, 226, 220, 233, 226, 220, 232, 225, 219, 232, 225, 219, 231, 224, 218, 231, 224, 218, 233, 224, 215, 233, 225, 214, 231, 222, 213, 230, 221, 212, 230, 221, 212, 230, 221, 212, 231, 222, 213, 231, 222, 213, 229, 222, 212, 230, 223, 213, 230, 223, 215, 230, 223, 215, 231, 224, 216, 231, 224, 216, 231, 224, 216, 232, 225, 217, 231, 227, 218, 231, 227, 218, 230, 226, 217, 230, 226, 217, 230, 226, 217, 229, 225, 216, 229, 225, 216, 229, 225, 216, 229, 225, 216, 229, 225, 216, 230, 226, 217, 230, 226, 217, 231, 227, 218, 231, 227, 218, 231, 227, 218, 231, 227, 218, 231, 227, 218, 231, 227, 218, 231, 227, 218, 231, 227, 218, 231, 227, 218, 231, 227, 218, 231, 227, 218, 231, 227, 218, 232, 228, 219, 232, 228, 219, 232, 228, 219, 232, 228, 219, 232, 228, 219, 232, 228, 219, 232, 228, 219, 232, 228, 219, 232, 227, 221, 232, 227, 221, 232, 227, 221, 232, 227, 221, 232, 227, 221, 232, 227, 221, 232, 227, 221, 232, 227, 221, 234, 229, 223, 234, 229, 223, 234, 229, 223, 234, 229, 223, 234, 229, 223, 234, 229, 223, 234, 229, 223, 234, 229, 223, 232, 229, 220, 232, 229, 220, 233, 230, 221, 233, 230, 221, 233, 230, 221, 234, 231, 222, 234, 231, 222, 234, 231, 222, 233, 230, 223, 234, 231, 224, 234, 231, 224, 234, 231, 224, 235, 232, 227, 235, 232, 227, 235, 232, 227, 236, 233, 228, 234, 233, 228, 234, 233, 228, 234, 233, 228, 234, 233, 228, 234, 233, 228, 234, 233, 228, 234, 233, 228, 234, 233, 228, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 236, 235, 231, 237, 236, 232, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 238, 237, 233, 239, 238, 234, 238, 237, 233, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 243, 242, 238, 243, 242, 238, 243, 242, 238, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 245, 244, 240, 245, 244, 240, 246, 245, 241, 246, 245, 241, 246, 245, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 252, 251, 250, 252, 251, 249, 251, 250, 249, 251, 250, 249, 251, 250, 248, 250, 249, 248, 250, 249, 248, 250, 249, 246, 248, 247, 245, 247, 246, 245, 247, 246, 244, 246, 245, 243, 245, 244, 242, 244, 243, 242, 244, 243, 241, 243, 242, 238, 239, 241, 238, 239, 241, 237, 238, 240, 236, 237, 239, 235, 236, 238, 235, 236, 238, 234, 235, 237, 234, 235, 237, 230, 231, 233, 230, 231, 233, 229, 230, 232, 227, 228, 230, 226, 227, 229, 224, 225, 227, 223, 224, 226, 223, 224, 226, 215, 219, 222, 212, 216, 219, 208, 212, 215, 205, 209, 212, 205, 206, 208, 202, 203, 205, 198, 199, 201, 195, 196, 198, 202, 202, 202, 199, 199, 199, 196, 196, 196, 194, 194, 194, 191, 191, 191, 188, 188, 188, 182, 182, 182, 178, 178, 178, 179, 178, 176, 179, 175, 172, 177, 173, 172, 174, 170, 167, 170, 166, 165, 167, 162, 159, 164, 158, 158, 163, 158, 155, 159, 154, 151, 159, 154, 151, 158, 153, 150, 158, 150, 148, 156, 148, 146, 153, 145, 143, 150, 142, 140, 148, 140, 138, 154, 146, 144, 153, 145, 143, 151, 143, 141, 149, 141, 139, 147, 139, 137, 147, 139, 137, 147, 139, 137, 147, 139, 137, 149, 141, 139, 151, 143, 141, 153, 145, 143, 156, 148, 146, 159, 151, 149, 161, 153, 151, 161, 153, 151, 162, 154, 152, 163, 153, 152, 161, 151, 150, 157, 147, 146, 154, 144, 143, 152, 142, 141, 151, 141, 140, 152, 142, 141, 152, 142, 141, 151, 141, 140, 151, 141, 140, 153, 143, 142, 155, 145, 144, 157, 147, 146, 159, 149, 148, 160, 150, 149, 161, 151, 150, 165, 155, 154, 166, 158, 156, 169, 159, 158, 168, 160, 158, 168, 160, 158, 170, 162, 160, 172, 166, 166, 175, 169, 169, 177, 171, 173, 180, 176, 177, 182, 180, 183, 186, 184, 187, 189, 189, 191, 194, 194, 196, 199, 200, 204, 204, 205, 209, 208, 211, 216, 213, 216, 223, 220, 223, 228, 225, 228, 233, 228, 231, 236, 231, 234, 239, 234, 237, 242, 236, 239, 244, 237, 241, 244, 237, 241, 244, 238, 242, 245, 239, 243, 246, 240, 244, 247, 240, 244, 247, 241, 245, 248, 241, 245, 248, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 251, 250, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 249, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 252, 249, 250, 252, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 250, 246, 247, 249, 246, 247, 249, 246, 247, 249, 245, 247, 246, 244, 246, 245, 243, 245, 244, 242, 244, 243, 241, 243, 242, 242, 244, 243, 242, 244, 243, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 244, 246, 245, 244, 246, 245, 244, 246, 245, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 248, 247, 246, 248, 247, 246, 248, 247, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 240, 240, 238, 240, 240, 238, 240, 240, 238, 239, 239, 237, 239, 239, 237, 239, 239, 237, 238, 238, 236, 239, 239, 237, 238, 238, 236, 238, 238, 236, 238, 238, 236, 237, 237, 235, 237, 238, 233, 238, 237, 235, 238, 237, 233, 237, 236, 232, 236, 235, 231, 236, 235, 231, 236, 235, 230, 237, 234, 229, 237, 234, 229, 237, 234, 229, 236, 233, 228, 236, 233, 226, 236, 233, 226, 237, 232, 226, 236, 231, 225, 236, 231, 225, 235, 230, 224, 235, 231, 222, 235, 231, 222, 234, 230, 221, 234, 229, 223, 234, 229, 223, 233, 230, 223, 233, 230, 223, 233, 230, 223, 233, 230, 223, 233, 230, 223, 233, 230, 223, 233, 230, 223, 233, 230, 223, 232, 229, 222, 232, 229, 222, 231, 228, 221, 231, 228, 221, 231, 228, 221, 232, 227, 223, 232, 227, 223, 232, 227, 223, 232, 227, 223, 232, 227, 223, 232, 227, 223, 232, 227, 223, 232, 227, 223, 231, 226, 222, 231, 226, 222, 231, 226, 222, 231, 226, 222, 231, 226, 222, 231, 226, 222, 231, 226, 222, 233, 226, 220, 233, 226, 218, 233, 226, 216, 232, 225, 217, 232, 225, 217, 232, 225, 217, 231, 224, 216, 231, 224, 216, 231, 224, 216, 233, 226, 218, 233, 226, 218, 233, 226, 218, 233, 226, 218, 233, 226, 218, 233, 226, 218, 233, 226, 218, 233, 226, 218, 232, 228, 219, 231, 227, 218, 231, 227, 218, 231, 227, 218, 230, 226, 217, 230, 226, 217, 230, 226, 217, 229, 225, 216, 231, 227, 218, 231, 227, 218, 231, 227, 218, 231, 227, 218, 231, 227, 218, 231, 227, 218, 231, 227, 218, 231, 227, 218, 232, 228, 219, 232, 228, 219, 232, 228, 219, 232, 228, 219, 232, 228, 219, 232, 228, 219, 232, 228, 219, 232, 228, 219, 231, 227, 218, 231, 227, 218, 232, 228, 219, 233, 229, 220, 233, 229, 220, 232, 228, 219, 231, 227, 218, 231, 227, 218, 231, 228, 221, 231, 228, 221, 231, 228, 221, 232, 229, 222, 232, 229, 222, 233, 230, 223, 233, 230, 223, 233, 230, 223, 233, 230, 223, 233, 230, 223, 233, 230, 223, 233, 230, 223, 233, 230, 223, 233, 230, 223, 233, 230, 223, 233, 230, 223, 233, 230, 221, 234, 231, 222, 234, 231, 224, 234, 231, 224, 235, 232, 225, 235, 232, 225, 235, 232, 225, 236, 233, 226, 235, 232, 227, 235, 232, 227, 235, 232, 227, 236, 233, 228, 236, 233, 228, 236, 233, 228, 237, 233, 230, 237, 233, 230, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 244, 246, 245, 243, 245, 244, 243, 245, 244, 242, 244, 243, 239, 240, 242, 239, 240, 242, 238, 239, 241, 237, 238, 240, 235, 236, 238, 234, 235, 237, 233, 234, 236, 233, 234, 236, 229, 230, 232, 227, 228, 230, 225, 226, 228, 225, 226, 228, 224, 225, 227, 223, 224, 226, 219, 220, 222, 215, 216, 218, 212, 216, 217, 209, 213, 214, 205, 209, 210, 200, 204, 205, 199, 200, 202, 198, 199, 201, 198, 199, 201, 198, 199, 201, 197, 197, 199, 197, 197, 199, 195, 195, 197, 193, 193, 195, 189, 189, 191, 186, 186, 188, 182, 182, 184, 180, 180, 180, 178, 176, 177, 176, 175, 173, 172, 170, 171, 167, 166, 164, 164, 162, 163, 163, 159, 158, 162, 158, 159, 161, 157, 156, 157, 153, 152, 157, 153, 152, 156, 152, 151, 156, 150, 150, 155, 150, 147, 154, 149, 146, 153, 148, 145, 153, 148, 145, 152, 144, 142, 152, 144, 142, 151, 143, 141, 151, 143, 141, 151, 143, 141, 150, 142, 140, 150, 142, 140, 150, 142, 140, 151, 143, 141, 153, 145, 143, 155, 147, 145, 158, 150, 148, 160, 152, 150, 161, 153, 151, 162, 154, 152, 162, 154, 152, 157, 148, 149, 156, 147, 148, 156, 148, 146, 155, 147, 145, 153, 145, 143, 152, 144, 142, 152, 142, 141, 152, 142, 141, 149, 139, 137, 149, 139, 137, 151, 140, 138, 153, 142, 140, 155, 144, 142, 158, 147, 145, 161, 150, 148, 162, 152, 150, 163, 155, 153, 162, 157, 154, 166, 158, 156, 168, 160, 158, 171, 162, 163, 174, 165, 166, 176, 167, 168, 175, 169, 169, 177, 171, 173, 178, 174, 175, 180, 178, 181, 183, 181, 184, 185, 184, 189, 191, 190, 195, 197, 198, 202, 202, 203, 207, 208, 211, 216, 213, 216, 221, 218, 221, 226, 222, 225, 230, 225, 228, 233, 227, 230, 235, 231, 234, 239, 234, 237, 242, 234, 237, 242, 236, 239, 244, 238, 241, 246, 240, 243, 248, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 251, 247, 251, 254, 247, 251, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 250, 251, 255, 250, 251, 255, 249, 250, 254, 249, 250, 254, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 252, 249, 250, 252, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 250, 246, 247, 249, 246, 247, 249, 246, 247, 249, 245, 247, 246, 244, 246, 245, 243, 245, 244, 242, 244, 243, 241, 243, 242, 242, 244, 243, 242, 244, 243, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 244, 246, 245, 244, 246, 245, 244, 246, 245, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 248, 247, 246, 248, 247, 246, 248, 247, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 240, 240, 238, 240, 240, 238, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 238, 238, 236, 238, 238, 236, 238, 238, 236, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 236, 232, 237, 236, 232, 236, 235, 230, 236, 235, 230, 237, 234, 229, 237, 234, 229, 237, 234, 229, 237, 234, 229, 236, 233, 226, 236, 233, 226, 237, 232, 226, 236, 231, 225, 236, 231, 225, 236, 231, 225, 235, 231, 222, 235, 231, 222, 234, 231, 224, 234, 231, 224, 234, 231, 224, 234, 231, 224, 234, 231, 224, 234, 231, 224, 234, 231, 224, 234, 231, 224, 233, 230, 223, 233, 230, 223, 233, 230, 223, 233, 230, 223, 232, 229, 222, 232, 229, 222, 231, 228, 221, 231, 228, 221, 232, 227, 223, 232, 227, 223, 232, 227, 223, 232, 227, 223, 232, 227, 223, 232, 227, 223, 232, 227, 223, 232, 227, 223, 232, 227, 223, 232, 227, 223, 232, 227, 223, 232, 227, 223, 232, 227, 223, 232, 227, 223, 232, 227, 223, 232, 227, 221, 233, 226, 220, 233, 226, 218, 233, 226, 218, 232, 225, 217, 232, 225, 217, 232, 225, 217, 231, 224, 216, 231, 224, 216, 233, 226, 218, 233, 226, 218, 233, 226, 218, 233, 226, 218, 233, 226, 218, 233, 226, 218, 233, 226, 218, 233, 226, 218, 232, 228, 219, 232, 228, 219, 231, 227, 218, 231, 227, 218, 231, 227, 218, 230, 226, 217, 230, 226, 217, 230, 226, 217, 232, 228, 219, 232, 228, 219, 232, 228, 219, 232, 228, 219, 232, 228, 219, 232, 228, 219, 232, 228, 219, 232, 228, 219, 232, 228, 219, 232, 228, 219, 232, 228, 219, 232, 228, 219, 232, 228, 219, 232, 228, 219, 232, 228, 219, 232, 228, 219, 231, 227, 218, 232, 228, 219, 233, 229, 220, 233, 229, 220, 233, 229, 220, 233, 229, 220, 232, 228, 219, 231, 227, 218, 231, 228, 221, 231, 228, 221, 232, 229, 222, 232, 229, 222, 233, 230, 223, 233, 230, 223, 233, 230, 223, 233, 230, 223, 233, 230, 223, 233, 230, 223, 233, 230, 223, 233, 230, 223, 233, 230, 223, 233, 230, 223, 233, 230, 223, 233, 230, 223, 234, 231, 222, 234, 231, 222, 234, 231, 224, 235, 232, 225, 235, 232, 225, 235, 232, 225, 236, 233, 226, 236, 233, 226, 235, 232, 227, 235, 232, 227, 236, 233, 228, 236, 233, 228, 236, 233, 228, 237, 234, 229, 237, 233, 230, 237, 233, 230, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 236, 235, 231, 237, 236, 232, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 238, 237, 233, 239, 238, 234, 238, 237, 233, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 242, 241, 237, 243, 242, 238, 243, 242, 238, 243, 242, 238, 244, 243, 239, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 244, 246, 245, 243, 245, 244, 242, 244, 243, 242, 244, 243, 241, 242, 244, 241, 242, 244, 240, 241, 243, 239, 240, 242, 238, 239, 241, 237, 238, 240, 236, 237, 239, 235, 236, 238, 235, 236, 238, 233, 234, 236, 230, 231, 233, 228, 229, 231, 226, 227, 229, 223, 224, 226, 218, 219, 221, 215, 216, 218, 208, 212, 213, 206, 210, 211, 202, 206, 207, 199, 203, 204, 199, 200, 202, 199, 200, 202, 199, 200, 202, 200, 201, 203, 198, 198, 200, 197, 197, 199, 196, 196, 198, 194, 194, 196, 190, 190, 192, 187, 187, 189, 184, 184, 186, 182, 182, 184, 179, 177, 178, 178, 176, 177, 175, 173, 174, 172, 170, 171, 168, 166, 167, 165, 163, 164, 164, 160, 161, 163, 159, 160, 159, 155, 154, 158, 154, 153, 157, 153, 152, 155, 151, 150, 155, 150, 147, 153, 148, 145, 152, 147, 144, 151, 146, 143, 152, 144, 142, 152, 144, 142, 152, 144, 142, 152, 144, 142, 151, 143, 141, 151, 143, 141, 150, 142, 140, 150, 142, 140, 152, 144, 142, 153, 145, 143, 155, 147, 145, 158, 150, 148, 160, 152, 150, 161, 153, 151, 161, 153, 151, 162, 154, 152, 157, 148, 149, 156, 147, 148, 155, 147, 145, 154, 146, 144, 153, 145, 143, 151, 143, 141, 151, 141, 140, 151, 141, 140, 149, 139, 137, 149, 139, 137, 151, 140, 138, 153, 142, 140, 155, 144, 142, 158, 147, 145, 161, 150, 146, 161, 152, 147, 163, 155, 153, 162, 157, 154, 164, 159, 156, 167, 162, 159, 172, 163, 164, 174, 165, 166, 176, 167, 168, 178, 169, 170, 177, 171, 173, 179, 173, 175, 182, 177, 181, 182, 180, 183, 185, 184, 189, 190, 189, 194, 196, 197, 201, 201, 202, 206, 207, 210, 215, 212, 215, 220, 217, 220, 225, 221, 224, 229, 224, 227, 232, 227, 230, 235, 231, 234, 239, 234, 237, 242, 234, 237, 242, 236, 239, 244, 238, 241, 246, 240, 243, 248, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 247, 251, 254, 247, 251, 254, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 250, 251, 255, 249, 250, 254, 249, 250, 254, 249, 250, 254, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 252, 249, 250, 252, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 250, 246, 247, 249, 246, 247, 249, 246, 247, 249, 245, 247, 246, 244, 246, 245, 243, 245, 244, 242, 244, 243, 241, 243, 242, 242, 244, 243, 242, 244, 243, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 244, 246, 245, 244, 246, 245, 244, 246, 245, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 248, 247, 246, 248, 247, 246, 248, 247, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 240, 240, 238, 240, 240, 238, 240, 240, 238, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 238, 238, 236, 238, 238, 236, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 236, 232, 237, 236, 232, 236, 235, 231, 236, 235, 231, 238, 235, 230, 237, 234, 229, 237, 234, 229, 237, 234, 229, 236, 233, 226, 236, 233, 226, 237, 232, 226, 237, 232, 226, 236, 231, 225, 236, 231, 225, 236, 231, 225, 235, 230, 224, 234, 231, 226, 234, 231, 226, 234, 231, 226, 234, 231, 226, 234, 231, 226, 234, 231, 226, 234, 231, 226, 234, 231, 226, 234, 231, 226, 234, 231, 226, 234, 231, 226, 233, 230, 225, 233, 230, 225, 232, 229, 224, 232, 229, 224, 232, 229, 224, 233, 228, 224, 233, 228, 224, 233, 228, 224, 233, 228, 224, 233, 228, 224, 233, 228, 224, 233, 228, 224, 233, 228, 224, 232, 227, 223, 232, 227, 223, 232, 227, 223, 232, 227, 223, 232, 227, 223, 232, 227, 223, 232, 227, 223, 232, 227, 221, 232, 227, 221, 232, 228, 219, 231, 227, 218, 231, 227, 218, 231, 227, 218, 230, 226, 217, 230, 226, 217, 230, 226, 217, 231, 227, 218, 231, 227, 218, 231, 227, 218, 231, 227, 218, 231, 227, 218, 231, 227, 218, 231, 227, 218, 231, 227, 218, 232, 228, 219, 232, 228, 219, 232, 228, 219, 232, 228, 219, 231, 227, 218, 231, 227, 218, 231, 227, 218, 230, 226, 217, 232, 228, 219, 232, 228, 219, 232, 228, 219, 232, 228, 219, 232, 228, 219, 232, 228, 219, 232, 228, 219, 232, 228, 219, 233, 229, 220, 233, 229, 220, 233, 229, 220, 233, 229, 220, 233, 229, 220, 233, 229, 220, 233, 229, 220, 233, 229, 220, 232, 228, 219, 232, 228, 219, 233, 229, 220, 234, 230, 221, 234, 230, 221, 233, 229, 220, 232, 228, 219, 232, 228, 219, 232, 229, 222, 232, 229, 222, 232, 229, 222, 233, 230, 223, 233, 230, 223, 234, 231, 224, 234, 231, 224, 234, 231, 224, 234, 231, 224, 234, 231, 224, 234, 231, 224, 234, 231, 224, 234, 231, 224, 234, 231, 224, 234, 231, 224, 234, 231, 224, 234, 231, 224, 235, 232, 225, 235, 232, 225, 235, 232, 225, 236, 233, 226, 236, 233, 226, 236, 233, 226, 236, 233, 226, 236, 233, 228, 236, 233, 228, 236, 233, 228, 236, 233, 228, 237, 233, 230, 237, 233, 230, 238, 234, 231, 238, 234, 231, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 238, 237, 233, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 242, 241, 237, 243, 242, 238, 243, 242, 238, 243, 242, 238, 244, 243, 239, 244, 243, 239, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 247, 246, 244, 246, 245, 243, 245, 244, 243, 245, 244, 242, 244, 243, 242, 244, 243, 244, 245, 247, 243, 244, 246, 242, 243, 245, 241, 242, 244, 240, 241, 243, 239, 240, 242, 238, 239, 241, 237, 238, 240, 241, 242, 244, 238, 239, 241, 234, 235, 237, 232, 233, 235, 229, 230, 232, 226, 227, 229, 220, 221, 223, 216, 217, 219, 209, 213, 214, 208, 212, 213, 205, 209, 210, 203, 207, 208, 204, 205, 207, 203, 204, 206, 204, 205, 207, 204, 205, 207, 202, 202, 204, 201, 201, 203, 200, 200, 202, 198, 198, 200, 195, 195, 197, 192, 192, 194, 188, 188, 190, 187, 187, 189, 182, 180, 181, 182, 180, 181, 181, 179, 180, 178, 176, 177, 175, 173, 174, 171, 169, 170, 170, 166, 167, 167, 163, 164, 162, 158, 157, 161, 157, 156, 159, 155, 154, 157, 153, 152, 156, 151, 148, 153, 148, 145, 152, 147, 144, 151, 146, 143, 153, 145, 143, 153, 145, 143, 153, 145, 143, 152, 144, 142, 152, 144, 142, 152, 144, 142, 151, 143, 141, 151, 143, 141, 152, 144, 142, 154, 146, 144, 156, 148, 146, 158, 150, 148, 160, 152, 150, 161, 153, 151, 161, 153, 151, 161, 153, 151, 156, 147, 148, 156, 147, 148, 155, 147, 145, 153, 145, 143, 151, 143, 141, 150, 142, 140, 150, 140, 139, 149, 139, 138, 149, 139, 137, 149, 139, 137, 151, 140, 138, 152, 141, 139, 155, 144, 142, 158, 147, 145, 160, 149, 145, 161, 152, 147, 163, 155, 153, 162, 157, 154, 167, 159, 157, 169, 161, 159, 172, 164, 162, 175, 167, 165, 177, 168, 169, 178, 169, 170, 177, 171, 173, 179, 173, 175, 181, 176, 180, 182, 180, 183, 184, 184, 186, 189, 189, 191, 195, 196, 200, 200, 201, 205, 206, 209, 214, 210, 213, 218, 216, 219, 224, 220, 223, 228, 223, 226, 231, 226, 229, 234, 230, 233, 238, 233, 236, 241, 234, 237, 242, 235, 238, 243, 237, 240, 245, 240, 243, 248, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 247, 251, 254, 247, 251, 254, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 250, 252, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 250, 246, 247, 249, 246, 247, 249, 246, 247, 249, 245, 247, 246, 244, 246, 245, 243, 245, 244, 242, 244, 243, 241, 243, 242, 242, 244, 243, 242, 244, 243, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 244, 246, 245, 244, 246, 245, 244, 246, 245, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 248, 247, 246, 248, 247, 246, 248, 247, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 241, 241, 239, 240, 240, 238, 240, 240, 238, 240, 240, 238, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 238, 238, 236, 238, 238, 236, 238, 238, 236, 237, 237, 235, 237, 236, 232, 237, 236, 232, 237, 236, 232, 236, 235, 231, 238, 235, 230, 238, 235, 230, 237, 234, 229, 237, 234, 229, 237, 234, 227, 237, 234, 227, 237, 232, 226, 237, 232, 226, 237, 232, 226, 236, 231, 225, 236, 231, 225, 236, 231, 225, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 234, 231, 226, 234, 231, 226, 234, 231, 226, 233, 230, 225, 233, 230, 225, 233, 230, 225, 233, 228, 224, 233, 228, 224, 233, 228, 224, 233, 228, 224, 233, 228, 224, 233, 228, 224, 233, 228, 224, 233, 228, 224, 233, 228, 224, 233, 228, 224, 233, 228, 224, 233, 228, 224, 233, 228, 224, 233, 228, 224, 233, 228, 224, 233, 228, 224, 233, 228, 222, 232, 228, 219, 232, 228, 219, 232, 228, 219, 231, 227, 218, 231, 227, 218, 231, 227, 218, 231, 227, 218, 232, 228, 219, 232, 228, 219, 232, 228, 219, 232, 228, 219, 232, 228, 219, 232, 228, 219, 232, 228, 219, 232, 228, 219, 233, 229, 220, 233, 229, 220, 233, 229, 220, 232, 228, 219, 232, 228, 219, 232, 228, 219, 231, 227, 218, 231, 227, 218, 233, 229, 220, 233, 229, 220, 233, 229, 220, 233, 229, 220, 233, 229, 220, 233, 229, 220, 233, 229, 220, 233, 229, 220, 233, 229, 220, 233, 229, 220, 233, 229, 220, 233, 229, 220, 233, 229, 220, 233, 229, 220, 233, 229, 220, 233, 229, 220, 232, 228, 219, 233, 229, 220, 234, 230, 221, 235, 231, 222, 235, 231, 222, 234, 230, 221, 233, 229, 220, 232, 228, 219, 233, 230, 223, 233, 230, 223, 233, 230, 223, 234, 231, 224, 234, 231, 224, 234, 231, 224, 235, 232, 225, 235, 232, 225, 234, 231, 224, 234, 231, 224, 234, 231, 224, 234, 231, 224, 234, 231, 224, 234, 231, 224, 234, 231, 224, 234, 231, 224, 235, 232, 225, 235, 232, 225, 236, 233, 226, 236, 233, 226, 236, 233, 226, 237, 234, 227, 237, 234, 227, 237, 234, 227, 236, 233, 228, 237, 234, 229, 237, 234, 229, 237, 234, 229, 238, 234, 231, 238, 234, 231, 238, 234, 231, 239, 235, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 239, 238, 234, 238, 237, 233, 239, 238, 234, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 243, 242, 238, 243, 242, 238, 243, 242, 238, 244, 243, 239, 244, 243, 239, 244, 243, 239, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 244, 246, 245, 243, 245, 244, 242, 244, 243, 242, 244, 243, 241, 243, 242, 243, 244, 246, 243, 244, 246, 242, 243, 245, 241, 242, 244, 239, 240, 242, 238, 239, 241, 237, 238, 240, 237, 238, 240, 241, 242, 244, 238, 239, 241, 235, 236, 238, 234, 235, 237, 232, 233, 235, 229, 230, 232, 224, 225, 227, 221, 222, 224, 217, 221, 222, 215, 219, 220, 213, 217, 218, 210, 214, 215, 210, 211, 213, 208, 209, 211, 206, 207, 209, 205, 206, 208, 204, 204, 206, 204, 204, 206, 203, 203, 205, 201, 201, 203, 199, 199, 201, 196, 196, 198, 193, 193, 195, 191, 191, 193, 186, 184, 185, 186, 184, 185, 186, 184, 185, 184, 182, 183, 181, 179, 180, 177, 175, 176, 175, 171, 172, 172, 168, 169, 167, 163, 162, 166, 162, 161, 164, 160, 159, 161, 157, 156, 159, 154, 151, 156, 151, 148, 154, 149, 146, 153, 148, 145, 154, 146, 144, 154, 146, 144, 154, 146, 144, 154, 146, 144, 153, 145, 143, 153, 145, 143, 152, 144, 142, 152, 144, 142, 153, 145, 143, 154, 146, 144, 156, 148, 146, 158, 150, 148, 160, 152, 150, 160, 152, 150, 160, 152, 150, 160, 152, 150, 156, 147, 148, 156, 147, 148, 154, 146, 144, 153, 145, 143, 151, 143, 141, 149, 141, 139, 149, 139, 138, 148, 138, 137, 148, 138, 136, 149, 139, 137, 150, 139, 137, 152, 141, 139, 154, 143, 141, 157, 146, 144, 160, 149, 145, 161, 152, 147, 163, 155, 152, 162, 157, 154, 166, 158, 156, 169, 161, 159, 172, 164, 162, 175, 167, 165, 177, 168, 169, 178, 169, 170, 177, 171, 173, 179, 173, 175, 181, 176, 180, 181, 179, 182, 184, 182, 185, 188, 188, 190, 194, 195, 199, 199, 200, 204, 203, 206, 211, 208, 211, 216, 214, 217, 222, 218, 221, 226, 222, 225, 230, 225, 228, 233, 229, 232, 237, 232, 235, 240, 234, 237, 242, 235, 238, 243, 237, 240, 245, 239, 242, 247, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 247, 251, 254, 247, 251, 254, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 250, 246, 247, 249, 246, 247, 249, 246, 247, 249, 245, 247, 246, 244, 246, 245, 243, 245, 244, 242, 244, 243, 241, 243, 242, 242, 244, 243, 242, 244, 243, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 244, 246, 245, 244, 246, 245, 244, 246, 245, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 248, 247, 246, 248, 247, 246, 248, 247, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 241, 241, 239, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 239, 239, 237, 239, 239, 237, 239, 239, 237, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 237, 233, 238, 237, 233, 237, 236, 232, 237, 236, 232, 237, 236, 231, 236, 235, 230, 238, 235, 230, 238, 235, 230, 237, 234, 229, 237, 234, 229, 237, 234, 227, 236, 233, 226, 237, 232, 226, 237, 232, 226, 236, 231, 225, 236, 231, 225, 236, 233, 228, 236, 233, 228, 236, 233, 228, 236, 233, 228, 236, 233, 228, 236, 233, 228, 236, 233, 228, 236, 233, 228, 236, 233, 228, 235, 232, 227, 235, 232, 227, 235, 232, 227, 234, 231, 226, 234, 231, 226, 234, 231, 226, 233, 230, 225, 233, 230, 225, 233, 230, 225, 233, 230, 225, 233, 230, 225, 233, 230, 225, 233, 230, 225, 233, 230, 225, 233, 230, 225, 233, 230, 225, 233, 230, 225, 233, 230, 225, 233, 230, 225, 233, 230, 225, 233, 230, 225, 233, 230, 225, 233, 230, 225, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 232, 227, 221, 232, 227, 221, 232, 227, 221, 231, 226, 220, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 228, 222, 233, 230, 223, 233, 230, 223, 233, 230, 223, 232, 229, 222, 232, 229, 222, 231, 228, 221, 231, 228, 221, 231, 228, 221, 233, 230, 223, 233, 230, 223, 233, 230, 223, 233, 230, 223, 233, 230, 223, 233, 230, 223, 233, 230, 223, 233, 230, 223, 233, 230, 223, 233, 230, 223, 233, 230, 223, 233, 230, 223, 233, 230, 223, 233, 230, 223, 233, 230, 223, 233, 230, 223, 232, 229, 222, 233, 230, 223, 234, 231, 224, 234, 231, 224, 234, 231, 224, 234, 231, 224, 233, 230, 223, 232, 229, 222, 233, 230, 223, 234, 231, 224, 234, 231, 224, 234, 231, 224, 235, 232, 225, 235, 232, 225, 235, 232, 225, 236, 233, 226, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 236, 233, 226, 236, 233, 226, 236, 233, 226, 237, 234, 227, 237, 234, 227, 238, 235, 228, 238, 235, 230, 238, 235, 230, 237, 234, 229, 237, 234, 229, 238, 235, 230, 238, 235, 230, 238, 234, 231, 239, 235, 232, 239, 235, 232, 239, 235, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 239, 238, 234, 240, 239, 235, 239, 238, 234, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 244, 243, 239, 244, 243, 239, 244, 243, 239, 245, 244, 240, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 244, 246, 245, 243, 245, 244, 243, 245, 244, 242, 244, 243, 241, 243, 242, 241, 243, 242, 241, 242, 244, 240, 241, 243, 239, 240, 242, 238, 239, 241, 237, 238, 240, 236, 237, 239, 235, 236, 238, 234, 235, 237, 236, 237, 239, 234, 235, 237, 232, 233, 235, 232, 233, 235, 233, 234, 236, 231, 232, 234, 228, 229, 231, 225, 226, 228, 221, 225, 226, 219, 223, 224, 216, 220, 221, 212, 216, 217, 209, 210, 212, 204, 205, 207, 201, 202, 204, 198, 199, 201, 199, 199, 201, 199, 199, 201, 198, 198, 200, 197, 197, 199, 194, 194, 196, 192, 192, 194, 189, 189, 191, 187, 187, 189, 187, 185, 186, 186, 184, 185, 185, 183, 184, 184, 182, 183, 181, 179, 180, 178, 176, 177, 177, 173, 174, 175, 171, 172, 170, 166, 165, 169, 165, 164, 167, 163, 162, 164, 160, 159, 162, 157, 154, 159, 154, 151, 157, 152, 149, 156, 151, 148, 156, 148, 146, 156, 148, 146, 155, 147, 145, 155, 147, 145, 154, 146, 144, 154, 146, 144, 154, 146, 144, 154, 146, 144, 154, 146, 144, 155, 147, 145, 157, 149, 147, 158, 150, 148, 159, 151, 149, 160, 152, 150, 160, 152, 150, 159, 151, 149, 157, 148, 149, 156, 147, 148, 155, 147, 145, 153, 145, 143, 150, 142, 140, 148, 140, 138, 148, 138, 137, 147, 137, 136, 148, 138, 136, 148, 138, 136, 150, 139, 137, 152, 141, 139, 154, 143, 141, 157, 146, 144, 160, 149, 145, 160, 151, 146, 162, 154, 151, 162, 157, 153, 166, 158, 156, 168, 160, 158, 171, 163, 161, 174, 166, 164, 176, 167, 168, 177, 168, 169, 177, 171, 173, 179, 173, 175, 181, 176, 180, 181, 179, 182, 183, 181, 184, 187, 187, 189, 192, 193, 195, 197, 198, 202, 201, 204, 209, 205, 208, 213, 212, 215, 220, 217, 220, 225, 220, 223, 228, 224, 227, 232, 228, 231, 236, 232, 235, 240, 233, 236, 241, 235, 238, 243, 237, 240, 245, 239, 242, 247, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 247, 251, 254, 247, 251, 254, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 250, 246, 247, 249, 246, 247, 249, 246, 247, 249, 245, 247, 246, 244, 246, 245, 243, 245, 244, 242, 244, 243, 241, 243, 242, 242, 244, 243, 242, 244, 243, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 244, 246, 245, 244, 246, 245, 244, 246, 245, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 248, 247, 246, 248, 247, 246, 248, 247, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 241, 241, 239, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 239, 239, 237, 239, 239, 237, 239, 239, 237, 238, 238, 236, 238, 238, 236, 238, 237, 233, 238, 237, 233, 238, 237, 233, 237, 236, 232, 237, 236, 231, 237, 236, 231, 238, 235, 230, 238, 235, 230, 238, 235, 230, 237, 234, 229, 237, 234, 227, 237, 234, 227, 237, 232, 226, 237, 232, 226, 237, 232, 226, 237, 232, 226, 237, 234, 229, 237, 234, 229, 237, 234, 229, 237, 234, 229, 237, 234, 229, 237, 234, 229, 237, 234, 229, 237, 234, 229, 236, 233, 228, 236, 233, 228, 236, 233, 228, 236, 233, 228, 235, 232, 227, 235, 232, 227, 234, 231, 226, 234, 231, 226, 234, 231, 226, 234, 231, 226, 234, 231, 226, 234, 231, 226, 234, 231, 226, 234, 231, 226, 234, 231, 226, 234, 231, 226, 233, 230, 225, 233, 230, 225, 233, 230, 225, 233, 230, 225, 233, 230, 225, 233, 230, 225, 233, 230, 225, 233, 230, 225, 234, 229, 223, 234, 229, 223, 234, 229, 223, 233, 228, 222, 233, 228, 222, 233, 228, 222, 232, 227, 221, 232, 227, 221, 234, 229, 223, 234, 229, 223, 234, 229, 223, 234, 229, 223, 234, 229, 223, 234, 229, 223, 234, 229, 223, 234, 229, 223, 234, 231, 224, 234, 231, 224, 233, 230, 223, 233, 230, 223, 233, 230, 223, 232, 229, 222, 232, 229, 222, 232, 229, 222, 233, 230, 223, 233, 230, 223, 233, 230, 223, 233, 230, 223, 233, 230, 223, 233, 230, 223, 233, 230, 223, 233, 230, 223, 234, 231, 224, 234, 231, 224, 234, 231, 224, 234, 231, 224, 234, 231, 224, 234, 231, 224, 234, 231, 224, 234, 231, 224, 233, 230, 223, 234, 231, 224, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 234, 231, 224, 233, 230, 223, 234, 231, 224, 234, 231, 224, 235, 232, 225, 235, 232, 225, 236, 233, 226, 236, 233, 226, 236, 233, 226, 236, 233, 226, 236, 233, 226, 236, 233, 226, 236, 233, 226, 236, 233, 226, 236, 233, 226, 236, 233, 226, 236, 233, 226, 236, 233, 226, 237, 234, 227, 237, 234, 227, 237, 234, 227, 238, 235, 228, 238, 235, 228, 238, 235, 228, 239, 236, 231, 239, 236, 231, 238, 235, 230, 238, 235, 230, 238, 235, 230, 239, 236, 231, 239, 235, 232, 240, 236, 233, 240, 236, 233, 240, 236, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 243, 242, 238, 243, 242, 238, 243, 242, 238, 244, 243, 239, 244, 243, 239, 245, 244, 240, 245, 244, 240, 245, 244, 240, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 247, 246, 244, 246, 245, 244, 246, 245, 243, 245, 244, 242, 244, 243, 241, 243, 242, 241, 243, 242, 241, 243, 242, 239, 240, 242, 238, 239, 241, 238, 239, 241, 236, 237, 239, 235, 236, 238, 234, 235, 237, 233, 234, 236, 233, 234, 236, 230, 231, 233, 229, 230, 232, 228, 229, 231, 229, 230, 232, 230, 231, 233, 230, 231, 233, 227, 228, 230, 224, 225, 227, 217, 221, 222, 215, 219, 220, 212, 216, 217, 207, 211, 212, 203, 204, 206, 197, 198, 200, 191, 192, 194, 188, 189, 191, 189, 189, 191, 189, 189, 191, 188, 188, 190, 187, 187, 189, 185, 185, 187, 182, 182, 184, 180, 180, 182, 179, 179, 181, 183, 181, 182, 181, 179, 180, 178, 176, 177, 175, 173, 174, 173, 171, 172, 171, 169, 170, 173, 169, 170, 173, 169, 170, 169, 165, 164, 168, 164, 163, 166, 162, 161, 164, 160, 159, 163, 158, 155, 160, 155, 152, 159, 154, 151, 158, 153, 150, 157, 149, 147, 157, 149, 147, 156, 148, 146, 156, 148, 146, 156, 148, 146, 155, 147, 145, 155, 147, 145, 155, 147, 145, 155, 147, 145, 156, 148, 146, 157, 149, 147, 159, 151, 149, 159, 151, 149, 159, 151, 149, 159, 151, 149, 159, 151, 149, 159, 150, 151, 158, 149, 150, 156, 148, 146, 154, 146, 144, 151, 143, 141, 149, 141, 139, 148, 138, 137, 147, 137, 136, 147, 137, 135, 148, 138, 136, 150, 139, 137, 151, 140, 138, 154, 143, 141, 157, 146, 144, 159, 148, 144, 160, 151, 146, 161, 153, 150, 160, 155, 151, 164, 156, 154, 167, 159, 157, 170, 162, 160, 172, 164, 162, 174, 165, 166, 176, 167, 168, 177, 171, 173, 179, 173, 175, 180, 175, 179, 182, 177, 181, 182, 180, 183, 186, 186, 188, 192, 192, 194, 195, 196, 198, 198, 201, 206, 203, 206, 211, 210, 213, 218, 215, 218, 223, 219, 222, 227, 223, 226, 231, 227, 230, 235, 231, 234, 239, 233, 236, 241, 234, 237, 242, 236, 239, 244, 238, 241, 246, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 247, 251, 254, 247, 251, 254, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 250, 246, 247, 249, 246, 247, 249, 246, 247, 249, 245, 247, 246, 244, 246, 245, 243, 245, 244, 242, 244, 243, 241, 243, 242, 242, 244, 243, 242, 244, 243, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 244, 246, 245, 244, 246, 245, 244, 246, 245, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 248, 247, 246, 248, 247, 246, 248, 247, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 240, 240, 238, 240, 240, 238, 241, 241, 239, 240, 240, 238, 240, 240, 238, 240, 240, 238, 239, 239, 237, 239, 239, 237, 239, 239, 237, 238, 238, 236, 237, 238, 233, 237, 238, 233, 238, 237, 233, 238, 237, 233, 237, 236, 232, 237, 236, 232, 236, 235, 230, 236, 235, 230, 238, 235, 230, 238, 235, 230, 237, 234, 229, 237, 234, 229, 237, 234, 227, 236, 233, 226, 237, 232, 226, 237, 232, 226, 237, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 234, 233, 228, 234, 233, 228, 234, 233, 228, 233, 232, 227, 233, 232, 227, 233, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 234, 231, 226, 234, 231, 226, 234, 231, 226, 234, 231, 226, 234, 231, 226, 234, 231, 226, 234, 231, 226, 234, 231, 226, 235, 230, 224, 235, 230, 224, 234, 229, 223, 234, 229, 223, 234, 229, 223, 233, 228, 222, 233, 228, 222, 233, 228, 222, 234, 229, 223, 234, 229, 223, 234, 229, 223, 234, 229, 223, 234, 229, 223, 234, 229, 223, 234, 229, 223, 234, 229, 223, 234, 231, 224, 234, 231, 224, 234, 231, 224, 234, 231, 224, 233, 230, 223, 233, 230, 223, 232, 229, 222, 232, 229, 222, 234, 231, 224, 234, 231, 224, 234, 231, 224, 234, 231, 224, 234, 231, 224, 234, 231, 224, 234, 231, 224, 234, 231, 224, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 233, 230, 223, 234, 231, 224, 235, 232, 225, 236, 233, 226, 236, 233, 226, 235, 232, 225, 234, 231, 224, 233, 230, 223, 233, 232, 227, 233, 232, 227, 233, 232, 227, 234, 233, 228, 234, 233, 228, 234, 233, 228, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 235, 227, 235, 235, 227, 236, 236, 228, 236, 236, 228, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 243, 242, 238, 243, 242, 238, 244, 243, 239, 244, 243, 239, 244, 243, 239, 245, 244, 240, 245, 244, 240, 245, 244, 240, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 244, 246, 245, 244, 246, 245, 244, 246, 245, 243, 245, 244, 242, 244, 243, 241, 243, 242, 241, 243, 242, 240, 242, 241, 239, 240, 242, 239, 240, 242, 238, 239, 241, 237, 238, 240, 235, 236, 238, 234, 235, 237, 233, 234, 236, 233, 234, 236, 228, 229, 231, 227, 228, 230, 225, 226, 228, 225, 226, 228, 226, 227, 229, 224, 225, 227, 221, 222, 224, 218, 219, 221, 210, 214, 215, 209, 213, 214, 207, 211, 212, 204, 208, 209, 200, 201, 203, 194, 195, 197, 188, 189, 191, 185, 186, 188, 183, 183, 185, 183, 183, 185, 183, 183, 185, 182, 182, 184, 180, 180, 182, 178, 178, 180, 175, 175, 177, 174, 174, 176, 175, 173, 174, 172, 170, 171, 167, 165, 166, 162, 160, 161, 160, 158, 159, 160, 158, 159, 165, 161, 162, 166, 162, 163, 165, 161, 160, 164, 160, 159, 163, 159, 158, 161, 157, 156, 161, 156, 153, 159, 154, 151, 158, 153, 150, 157, 152, 149, 156, 151, 148, 156, 151, 148, 155, 150, 147, 155, 150, 147, 154, 149, 146, 154, 149, 146, 154, 149, 146, 154, 149, 146, 153, 148, 145, 154, 149, 146, 155, 150, 147, 157, 152, 149, 157, 152, 149, 157, 152, 149, 156, 151, 148, 156, 151, 148, 160, 151, 152, 159, 150, 151, 157, 149, 147, 155, 147, 145, 152, 144, 142, 149, 141, 139, 148, 138, 137, 147, 137, 136, 147, 137, 135, 147, 137, 135, 149, 138, 136, 151, 140, 138, 153, 142, 140, 156, 145, 143, 159, 148, 144, 160, 151, 146, 159, 151, 148, 161, 153, 150, 163, 155, 152, 165, 157, 154, 169, 159, 158, 172, 162, 161, 173, 164, 165, 174, 165, 166, 179, 170, 171, 179, 173, 173, 180, 176, 177, 182, 178, 179, 182, 180, 183, 185, 185, 187, 191, 191, 193, 194, 195, 197, 197, 200, 205, 201, 204, 209, 208, 211, 216, 214, 217, 222, 218, 221, 226, 222, 225, 230, 227, 230, 235, 230, 233, 238, 233, 236, 241, 234, 237, 242, 236, 239, 244, 238, 241, 246, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 247, 251, 254, 247, 251, 254, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 250, 246, 247, 249, 246, 247, 249, 246, 247, 249, 245, 247, 246, 244, 246, 245, 243, 245, 244, 242, 244, 243, 241, 243, 242, 242, 244, 243, 242, 244, 243, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 244, 246, 245, 244, 246, 245, 244, 246, 245, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 248, 247, 246, 248, 247, 246, 248, 247, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 241, 241, 239, 240, 240, 238, 241, 241, 239, 241, 241, 239, 240, 240, 238, 240, 240, 238, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 238, 239, 234, 237, 238, 233, 238, 237, 233, 238, 237, 233, 237, 236, 232, 237, 236, 232, 237, 236, 231, 236, 235, 230, 238, 235, 230, 238, 235, 230, 238, 235, 230, 237, 234, 229, 237, 234, 227, 236, 233, 226, 237, 232, 226, 236, 233, 226, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 234, 233, 228, 234, 233, 228, 234, 233, 228, 233, 232, 227, 233, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 234, 231, 226, 234, 231, 226, 234, 231, 226, 234, 231, 226, 234, 231, 226, 234, 231, 226, 234, 231, 226, 234, 231, 226, 235, 230, 224, 235, 230, 224, 235, 230, 224, 234, 229, 223, 234, 229, 223, 234, 229, 223, 233, 228, 222, 233, 228, 222, 235, 230, 224, 235, 230, 224, 235, 230, 224, 235, 230, 224, 235, 230, 224, 235, 230, 224, 235, 230, 224, 235, 230, 224, 235, 232, 225, 235, 232, 225, 234, 231, 224, 234, 231, 224, 234, 231, 224, 233, 230, 223, 233, 230, 223, 233, 230, 223, 234, 231, 224, 234, 231, 224, 234, 231, 224, 234, 231, 224, 234, 231, 224, 234, 231, 224, 234, 231, 224, 234, 231, 224, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 234, 231, 224, 234, 231, 224, 235, 232, 225, 236, 233, 226, 236, 233, 226, 235, 232, 225, 234, 231, 224, 234, 231, 224, 233, 232, 227, 233, 232, 227, 234, 233, 228, 234, 233, 228, 234, 233, 228, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 236, 236, 228, 236, 236, 228, 236, 236, 228, 237, 237, 229, 237, 236, 231, 237, 236, 231, 238, 237, 232, 238, 237, 232, 237, 236, 231, 237, 236, 231, 237, 236, 232, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 239, 238, 234, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 244, 243, 239, 244, 243, 239, 244, 243, 239, 245, 244, 240, 245, 244, 240, 245, 244, 240, 245, 244, 240, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 244, 246, 245, 244, 246, 245, 243, 245, 244, 243, 245, 244, 242, 244, 243, 241, 243, 242, 240, 242, 241, 240, 242, 241, 240, 241, 243, 240, 241, 243, 239, 240, 242, 238, 239, 241, 236, 237, 239, 235, 236, 238, 234, 235, 237, 234, 235, 237, 229, 230, 232, 226, 227, 229, 224, 225, 227, 223, 224, 226, 222, 223, 225, 220, 221, 223, 215, 216, 218, 212, 213, 215, 207, 211, 212, 207, 211, 212, 206, 210, 211, 204, 208, 209, 201, 202, 204, 196, 197, 199, 191, 192, 194, 188, 189, 191, 183, 183, 185, 183, 183, 185, 183, 183, 185, 182, 182, 184, 181, 181, 183, 179, 179, 181, 176, 176, 178, 175, 175, 177, 169, 167, 168, 165, 163, 164, 158, 156, 157, 152, 150, 151, 150, 148, 149, 152, 150, 151, 158, 154, 155, 161, 157, 158, 161, 157, 156, 160, 156, 155, 159, 155, 154, 158, 154, 153, 158, 153, 150, 157, 152, 149, 157, 152, 149, 156, 151, 148, 156, 151, 148, 156, 151, 148, 156, 151, 148, 155, 150, 147, 155, 150, 147, 155, 150, 147, 154, 149, 146, 154, 149, 146, 154, 149, 146, 154, 149, 146, 156, 151, 148, 157, 152, 149, 157, 152, 149, 157, 152, 149, 156, 151, 148, 156, 151, 148, 161, 152, 153, 160, 151, 152, 158, 150, 148, 155, 147, 145, 152, 144, 142, 150, 142, 140, 149, 139, 138, 148, 138, 137, 147, 137, 135, 147, 137, 135, 149, 138, 136, 151, 140, 138, 153, 142, 140, 156, 145, 143, 159, 148, 144, 159, 150, 145, 159, 149, 147, 160, 152, 149, 162, 154, 151, 164, 156, 153, 168, 158, 157, 171, 161, 160, 172, 163, 164, 173, 164, 165, 179, 170, 171, 181, 172, 173, 181, 175, 177, 181, 177, 178, 181, 179, 182, 185, 183, 186, 190, 190, 192, 194, 195, 197, 198, 199, 204, 201, 204, 209, 207, 210, 215, 213, 216, 221, 217, 220, 225, 222, 225, 230, 226, 229, 234, 230, 233, 238, 232, 235, 240, 234, 237, 242, 236, 239, 244, 238, 241, 246, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 247, 251, 254, 247, 251, 254, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 249, 246, 247, 249, 245, 246, 248, 245, 246, 248, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 244, 246, 245, 244, 246, 245, 244, 246, 245, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 247, 249, 248, 247, 249, 248, 248, 250, 249, 248, 250, 249, 248, 250, 249, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 246, 244, 246, 246, 244, 246, 246, 244, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 245, 245, 243, 245, 245, 243, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 240, 240, 238, 240, 240, 238, 239, 239, 237, 239, 239, 237, 239, 239, 237, 238, 238, 236, 238, 238, 236, 238, 238, 236, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 238, 233, 237, 238, 233, 238, 237, 233, 238, 237, 233, 237, 236, 232, 237, 236, 232, 239, 236, 231, 239, 236, 231, 239, 236, 231, 239, 236, 231, 239, 236, 231, 239, 236, 231, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 236, 235, 231, 236, 235, 231, 236, 235, 231, 235, 234, 230, 235, 234, 230, 235, 234, 230, 234, 233, 229, 236, 233, 228, 236, 233, 228, 236, 233, 228, 236, 233, 228, 236, 233, 228, 236, 233, 228, 236, 233, 228, 236, 233, 228, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 234, 231, 224, 234, 231, 224, 234, 231, 224, 234, 231, 224, 234, 231, 224, 234, 231, 224, 234, 231, 224, 234, 231, 224, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 236, 233, 226, 236, 233, 226, 236, 233, 226, 237, 234, 227, 237, 234, 227, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 237, 236, 231, 237, 236, 231, 237, 236, 231, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 236, 239, 238, 236, 239, 238, 236, 239, 238, 236, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 242, 241, 237, 243, 242, 238, 243, 242, 238, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 245, 247, 246, 244, 246, 245, 243, 245, 244, 243, 245, 244, 242, 244, 243, 239, 240, 242, 238, 239, 241, 237, 238, 240, 236, 237, 239, 235, 236, 238, 234, 235, 237, 233, 234, 236, 233, 234, 236, 228, 229, 231, 226, 227, 229, 224, 225, 227, 222, 223, 225, 221, 222, 224, 219, 220, 222, 214, 215, 217, 211, 212, 214, 207, 211, 212, 206, 210, 211, 204, 208, 209, 202, 206, 207, 201, 202, 204, 199, 200, 202, 197, 198, 200, 196, 197, 199, 190, 190, 192, 190, 190, 192, 189, 189, 191, 187, 187, 189, 185, 185, 187, 182, 182, 184, 179, 179, 181, 178, 178, 180, 176, 174, 175, 172, 170, 171, 165, 163, 164, 159, 157, 158, 155, 153, 154, 154, 152, 153, 158, 154, 155, 159, 155, 156, 157, 153, 152, 157, 153, 152, 157, 153, 152, 157, 153, 152, 157, 152, 149, 157, 152, 149, 157, 152, 149, 157, 152, 149, 157, 152, 149, 157, 152, 149, 156, 151, 148, 155, 150, 147, 155, 150, 147, 156, 151, 148, 157, 152, 149, 157, 152, 149, 156, 151, 148, 156, 151, 148, 157, 152, 149, 157, 152, 149, 158, 153, 150, 159, 154, 151, 160, 155, 152, 160, 155, 152, 166, 157, 158, 164, 155, 156, 160, 152, 150, 156, 148, 146, 152, 144, 142, 149, 141, 139, 149, 139, 138, 148, 138, 137, 147, 137, 135, 147, 137, 135, 149, 138, 136, 150, 139, 137, 151, 140, 138, 153, 142, 140, 156, 145, 141, 156, 147, 142, 156, 147, 142, 158, 151, 145, 162, 152, 150, 164, 154, 152, 165, 155, 153, 169, 159, 157, 174, 164, 163, 178, 168, 167, 172, 163, 164, 176, 167, 168, 178, 172, 174, 180, 176, 177, 180, 178, 179, 184, 182, 183, 187, 187, 189, 189, 190, 192, 193, 194, 199, 197, 200, 205, 205, 208, 213, 211, 214, 219, 214, 217, 222, 218, 221, 226, 221, 224, 229, 224, 227, 232, 227, 230, 235, 231, 234, 239, 235, 238, 243, 238, 241, 246, 238, 241, 246, 240, 243, 248, 242, 245, 250, 244, 247, 252, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 249, 246, 247, 249, 245, 246, 248, 245, 246, 248, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 244, 246, 245, 244, 246, 245, 244, 246, 245, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 247, 249, 248, 247, 249, 248, 248, 250, 249, 248, 250, 249, 248, 250, 249, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 246, 244, 246, 246, 244, 246, 246, 244, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 245, 245, 243, 245, 245, 243, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 240, 240, 238, 240, 240, 238, 240, 240, 238, 239, 239, 237, 239, 239, 237, 238, 238, 236, 238, 238, 236, 238, 238, 236, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 238, 233, 237, 238, 233, 238, 237, 233, 238, 237, 233, 237, 236, 232, 237, 236, 232, 239, 236, 231, 239, 236, 231, 239, 236, 231, 239, 236, 231, 239, 236, 231, 239, 236, 231, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 237, 236, 232, 237, 236, 232, 236, 235, 231, 236, 235, 231, 235, 234, 230, 235, 234, 230, 235, 234, 230, 235, 234, 230, 236, 233, 228, 236, 233, 228, 236, 233, 228, 236, 233, 228, 236, 233, 228, 236, 233, 228, 236, 233, 228, 236, 233, 228, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 234, 231, 224, 234, 231, 224, 234, 231, 224, 234, 231, 224, 234, 231, 224, 234, 231, 224, 234, 231, 224, 234, 231, 224, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 235, 232, 225, 236, 233, 226, 236, 233, 226, 236, 233, 226, 236, 233, 226, 236, 233, 226, 236, 233, 226, 236, 233, 226, 236, 233, 226, 236, 233, 226, 236, 233, 226, 236, 233, 226, 236, 233, 226, 236, 233, 226, 236, 233, 226, 236, 233, 226, 236, 233, 226, 235, 232, 225, 235, 232, 225, 236, 233, 226, 236, 233, 226, 236, 233, 226, 237, 234, 227, 237, 234, 227, 237, 234, 227, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 237, 236, 231, 237, 236, 231, 237, 236, 231, 238, 237, 232, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 236, 239, 238, 236, 239, 238, 236, 239, 238, 236, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 242, 241, 237, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 249, 251, 250, 249, 251, 250, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 245, 247, 246, 244, 246, 245, 243, 245, 244, 243, 245, 244, 242, 244, 243, 240, 241, 243, 239, 240, 242, 238, 239, 241, 237, 238, 240, 236, 237, 239, 235, 236, 238, 234, 235, 237, 234, 235, 237, 231, 232, 234, 229, 230, 232, 226, 227, 229, 225, 226, 228, 224, 225, 227, 222, 223, 225, 217, 218, 220, 214, 215, 217, 210, 214, 215, 209, 213, 214, 207, 211, 212, 204, 208, 209, 204, 205, 207, 201, 202, 204, 199, 200, 202, 198, 199, 201, 195, 195, 197, 195, 195, 197, 194, 194, 196, 193, 193, 195, 190, 190, 192, 187, 187, 189, 185, 185, 187, 183, 183, 185, 181, 179, 180, 177, 175, 176, 171, 169, 170, 165, 163, 164, 162, 160, 161, 161, 159, 160, 164, 160, 161, 166, 162, 163, 160, 156, 155, 160, 156, 155, 160, 156, 155, 159, 155, 154, 159, 154, 151, 159, 154, 151, 158, 153, 150, 158, 153, 150, 158, 153, 150, 157, 152, 149, 156, 151, 148, 156, 151, 148, 156, 151, 148, 156, 151, 148, 157, 152, 149, 158, 153, 150, 156, 151, 148, 156, 151, 148, 157, 152, 149, 158, 153, 150, 158, 153, 150, 159, 154, 151, 160, 155, 152, 160, 155, 152, 165, 156, 157, 163, 154, 155, 160, 152, 150, 156, 148, 146, 152, 144, 142, 149, 141, 139, 148, 138, 137, 147, 137, 136, 146, 136, 134, 146, 136, 134, 148, 137, 135, 148, 137, 135, 150, 139, 137, 152, 141, 139, 154, 143, 139, 156, 145, 141, 155, 146, 141, 157, 150, 144, 161, 151, 149, 163, 153, 151, 164, 154, 152, 168, 158, 156, 173, 163, 162, 177, 167, 166, 173, 164, 165, 176, 167, 168, 179, 173, 175, 181, 177, 178, 183, 179, 180, 184, 182, 183, 187, 187, 189, 189, 190, 192, 193, 194, 198, 196, 199, 204, 203, 206, 211, 209, 212, 217, 213, 216, 221, 216, 219, 224, 220, 223, 228, 223, 226, 231, 227, 230, 235, 230, 233, 238, 234, 237, 242, 237, 240, 245, 238, 241, 246, 239, 242, 247, 242, 245, 250, 244, 247, 252, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 249, 250, 254, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 249, 246, 247, 249, 245, 246, 248, 245, 246, 248, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 244, 246, 245, 244, 246, 245, 244, 246, 245, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 247, 249, 248, 247, 249, 248, 248, 250, 249, 248, 250, 249, 248, 250, 249, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 246, 244, 246, 246, 244, 246, 246, 244, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 240, 240, 238, 240, 240, 238, 240, 240, 238, 239, 239, 237, 239, 239, 237, 239, 239, 237, 238, 238, 236, 238, 238, 236, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 238, 233, 237, 238, 233, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 239, 236, 231, 239, 236, 231, 239, 236, 231, 239, 236, 231, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 237, 236, 232, 237, 236, 232, 236, 235, 231, 236, 235, 231, 236, 235, 231, 235, 234, 230, 235, 234, 230, 235, 234, 230, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 233, 232, 227, 233, 232, 227, 233, 232, 227, 233, 232, 227, 233, 232, 227, 233, 232, 227, 233, 232, 227, 233, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 235, 232, 227, 233, 232, 227, 233, 232, 227, 233, 232, 227, 233, 232, 227, 233, 232, 227, 233, 232, 227, 233, 232, 227, 233, 232, 227, 234, 233, 228, 234, 233, 228, 234, 233, 228, 234, 233, 228, 234, 233, 228, 234, 233, 228, 234, 233, 228, 234, 233, 228, 234, 233, 228, 234, 233, 228, 234, 233, 228, 234, 233, 228, 234, 233, 228, 234, 233, 228, 234, 233, 228, 234, 233, 228, 234, 233, 228, 234, 233, 228, 234, 233, 228, 234, 233, 228, 235, 234, 229, 235, 234, 229, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 238, 237, 232, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 236, 239, 238, 236, 239, 238, 236, 239, 238, 236, 239, 238, 236, 239, 238, 236, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 242, 241, 237, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 249, 249, 249, 248, 248, 248, 249, 251, 250, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 245, 247, 246, 244, 246, 245, 243, 245, 244, 243, 245, 244, 242, 244, 243, 241, 242, 244, 241, 242, 244, 240, 241, 243, 239, 240, 242, 238, 239, 241, 236, 237, 239, 236, 237, 239, 235, 236, 238, 234, 235, 237, 232, 233, 235, 230, 231, 233, 228, 229, 231, 227, 228, 230, 225, 226, 228, 221, 222, 224, 217, 218, 220, 212, 216, 217, 211, 215, 216, 209, 213, 214, 207, 211, 212, 206, 207, 209, 203, 204, 206, 201, 202, 204, 200, 201, 203, 200, 200, 202, 200, 200, 202, 199, 199, 201, 198, 198, 200, 196, 196, 198, 193, 193, 195, 191, 191, 193, 189, 189, 191, 186, 184, 185, 183, 181, 182, 177, 175, 176, 172, 170, 171, 169, 167, 168, 168, 166, 167, 171, 167, 168, 172, 168, 169, 165, 161, 160, 164, 160, 159, 163, 159, 158, 162, 158, 157, 162, 157, 154, 161, 156, 153, 160, 155, 152, 159, 154, 151, 159, 154, 151, 158, 153, 150, 157, 152, 149, 156, 151, 148, 156, 151, 148, 157, 152, 149, 158, 153, 150, 159, 154, 151, 156, 151, 148, 157, 152, 149, 157, 152, 149, 158, 153, 150, 159, 154, 151, 159, 154, 151, 160, 155, 152, 160, 155, 152, 164, 155, 156, 163, 154, 155, 160, 152, 150, 156, 148, 146, 152, 144, 142, 149, 141, 139, 148, 138, 137, 147, 137, 136, 145, 135, 133, 144, 134, 132, 146, 135, 133, 147, 136, 134, 148, 137, 135, 150, 139, 137, 153, 142, 138, 154, 143, 139, 154, 145, 140, 156, 147, 142, 159, 150, 145, 161, 152, 147, 163, 153, 151, 166, 156, 154, 171, 161, 160, 175, 165, 164, 174, 165, 166, 177, 168, 169, 179, 173, 173, 181, 177, 176, 183, 179, 180, 184, 182, 183, 187, 187, 187, 189, 190, 192, 192, 193, 197, 195, 198, 203, 201, 204, 209, 207, 210, 215, 211, 214, 219, 214, 217, 222, 219, 222, 227, 222, 225, 230, 226, 229, 234, 229, 232, 237, 234, 237, 242, 236, 239, 244, 237, 240, 245, 238, 241, 246, 241, 244, 249, 243, 246, 251, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 249, 246, 247, 249, 245, 246, 248, 245, 246, 248, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 244, 246, 245, 244, 246, 245, 244, 246, 245, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 247, 249, 248, 247, 249, 248, 248, 250, 249, 248, 250, 249, 248, 250, 249, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 246, 244, 246, 246, 244, 246, 246, 244, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 240, 240, 238, 240, 240, 238, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 239, 234, 238, 239, 234, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 240, 237, 232, 240, 237, 232, 240, 237, 232, 238, 237, 232, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 237, 236, 232, 237, 236, 232, 237, 236, 232, 236, 235, 231, 236, 235, 231, 236, 235, 231, 235, 234, 230, 235, 234, 230, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 234, 233, 228, 234, 233, 228, 234, 233, 228, 234, 233, 228, 234, 233, 228, 234, 233, 228, 234, 233, 228, 234, 233, 228, 236, 233, 228, 236, 233, 228, 236, 233, 228, 236, 233, 228, 236, 233, 228, 236, 233, 228, 236, 233, 228, 236, 233, 228, 236, 233, 228, 236, 233, 228, 236, 233, 228, 236, 233, 228, 236, 233, 228, 236, 233, 228, 236, 233, 228, 236, 233, 228, 234, 233, 228, 234, 233, 228, 234, 233, 228, 234, 233, 228, 234, 233, 228, 234, 233, 228, 234, 233, 228, 234, 233, 228, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 234, 233, 228, 235, 234, 229, 235, 234, 229, 235, 234, 229, 236, 235, 230, 236, 235, 230, 236, 235, 230, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 238, 237, 232, 238, 237, 232, 238, 237, 232, 238, 237, 232, 239, 238, 234, 239, 238, 234, 239, 238, 234, 240, 239, 235, 239, 238, 234, 239, 238, 234, 239, 238, 236, 239, 238, 236, 239, 238, 236, 239, 238, 236, 239, 238, 236, 239, 238, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 242, 241, 237, 243, 242, 238, 243, 242, 238, 243, 242, 238, 244, 243, 239, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 249, 249, 249, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 247, 249, 248, 246, 248, 247, 246, 248, 247, 245, 247, 246, 244, 246, 245, 243, 245, 244, 243, 245, 244, 242, 244, 243, 243, 244, 246, 242, 243, 245, 241, 242, 244, 240, 241, 243, 239, 240, 242, 238, 239, 241, 237, 238, 240, 236, 237, 239, 235, 236, 238, 233, 234, 236, 231, 232, 234, 229, 230, 232, 229, 230, 232, 226, 227, 229, 222, 223, 225, 218, 219, 221, 213, 217, 218, 212, 216, 217, 210, 214, 215, 207, 211, 212, 206, 207, 209, 203, 204, 206, 201, 202, 204, 199, 200, 202, 200, 200, 202, 200, 200, 202, 199, 199, 201, 198, 198, 200, 196, 196, 198, 194, 194, 196, 192, 192, 194, 190, 190, 192, 186, 184, 185, 183, 181, 182, 179, 177, 178, 174, 172, 173, 171, 169, 170, 169, 167, 168, 171, 167, 168, 172, 168, 169, 167, 163, 162, 166, 162, 161, 165, 161, 160, 164, 160, 159, 163, 158, 155, 162, 157, 154, 161, 156, 153, 160, 155, 152, 159, 154, 151, 158, 153, 150, 157, 152, 149, 157, 152, 149, 157, 152, 149, 157, 152, 149, 158, 153, 150, 159, 154, 151, 157, 152, 149, 157, 152, 149, 157, 152, 149, 158, 153, 150, 159, 154, 151, 160, 155, 152, 160, 155, 152, 161, 156, 153, 163, 154, 155, 162, 153, 154, 160, 152, 150, 157, 149, 147, 153, 145, 143, 149, 141, 139, 147, 137, 136, 145, 135, 134, 143, 133, 131, 143, 133, 131, 144, 133, 131, 145, 134, 132, 146, 135, 133, 149, 138, 136, 151, 140, 136, 152, 141, 137, 152, 143, 138, 155, 146, 141, 158, 149, 144, 160, 151, 146, 162, 152, 150, 165, 155, 153, 170, 160, 159, 174, 164, 163, 176, 166, 167, 178, 169, 170, 180, 174, 174, 182, 176, 176, 183, 179, 180, 183, 181, 182, 187, 185, 186, 189, 189, 191, 190, 191, 195, 193, 196, 201, 199, 202, 207, 204, 207, 212, 207, 210, 215, 212, 215, 220, 217, 220, 225, 221, 224, 229, 224, 227, 232, 228, 231, 236, 232, 235, 240, 235, 238, 243, 236, 239, 244, 237, 240, 245, 240, 243, 248, 242, 245, 250, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 248, 247, 252, 248, 247, 252, 248, 247, 252, 248, 247, 252, 248, 247, 252, 248, 247, 252, 248, 247, 252, 248, 247, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 249, 246, 247, 249, 245, 246, 248, 245, 246, 248, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 244, 246, 245, 244, 246, 245, 244, 246, 245, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 247, 249, 248, 247, 249, 248, 248, 250, 249, 248, 250, 249, 248, 250, 249, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 241, 241, 239, 240, 240, 238, 240, 240, 238, 240, 240, 238, 239, 239, 237, 239, 239, 237, 237, 239, 236, 237, 239, 236, 237, 239, 236, 237, 239, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 232, 238, 237, 232, 238, 237, 232, 238, 237, 232, 239, 238, 234, 238, 239, 234, 238, 239, 234, 238, 239, 234, 238, 239, 234, 238, 239, 234, 238, 239, 234, 238, 239, 234, 237, 238, 233, 237, 238, 233, 236, 237, 232, 236, 237, 232, 236, 237, 232, 235, 236, 231, 235, 236, 231, 235, 236, 231, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 236, 233, 228, 236, 233, 228, 236, 233, 228, 236, 233, 228, 236, 233, 228, 236, 233, 228, 236, 233, 228, 236, 233, 228, 237, 234, 229, 237, 234, 229, 237, 234, 229, 237, 234, 229, 237, 234, 229, 237, 234, 229, 237, 234, 229, 237, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 235, 234, 229, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 235, 234, 229, 235, 234, 229, 236, 235, 230, 236, 235, 230, 236, 235, 230, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 238, 233, 237, 238, 233, 237, 238, 233, 237, 238, 233, 237, 238, 233, 237, 238, 233, 237, 238, 233, 237, 238, 233, 237, 238, 233, 237, 238, 233, 237, 238, 233, 237, 238, 233, 237, 238, 233, 237, 238, 233, 237, 238, 233, 237, 238, 233, 237, 238, 232, 238, 239, 233, 238, 239, 233, 238, 239, 233, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 242, 241, 237, 243, 242, 238, 243, 242, 238, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 245, 244, 240, 245, 244, 240, 245, 244, 240, 245, 244, 240, 245, 244, 240, 245, 244, 240, 245, 244, 240, 245, 244, 240, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 249, 249, 249, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 247, 249, 248, 246, 248, 247, 246, 248, 247, 245, 247, 246, 244, 246, 245, 243, 245, 244, 243, 245, 244, 242, 244, 243, 244, 245, 247, 243, 244, 246, 242, 243, 245, 241, 242, 244, 240, 241, 243, 239, 240, 242, 238, 239, 241, 237, 238, 240, 235, 236, 238, 233, 234, 236, 230, 231, 233, 229, 230, 232, 228, 229, 231, 225, 226, 228, 221, 222, 224, 217, 218, 220, 212, 216, 217, 211, 215, 216, 208, 212, 213, 205, 209, 210, 204, 205, 207, 200, 201, 203, 198, 199, 201, 197, 198, 200, 196, 196, 198, 196, 196, 198, 196, 196, 198, 195, 195, 197, 194, 194, 196, 191, 191, 193, 189, 189, 191, 188, 188, 190, 182, 180, 181, 180, 178, 179, 176, 174, 175, 171, 169, 170, 167, 165, 166, 164, 162, 163, 165, 161, 162, 165, 161, 162, 165, 161, 160, 164, 160, 159, 164, 160, 159, 162, 158, 157, 162, 157, 154, 161, 156, 153, 160, 155, 152, 160, 155, 152, 157, 153, 150, 157, 153, 150, 156, 152, 149, 155, 151, 148, 155, 151, 148, 156, 152, 149, 157, 153, 150, 157, 153, 150, 156, 152, 149, 156, 152, 149, 157, 153, 150, 158, 154, 151, 159, 155, 152, 159, 155, 152, 160, 156, 153, 161, 156, 153, 162, 153, 154, 161, 152, 153, 160, 152, 150, 157, 149, 147, 154, 146, 144, 149, 141, 139, 146, 136, 135, 144, 134, 133, 141, 131, 129, 141, 131, 129, 143, 132, 130, 144, 133, 131, 145, 134, 132, 147, 136, 134, 150, 139, 135, 151, 140, 136, 151, 142, 137, 154, 145, 140, 157, 148, 143, 159, 150, 145, 162, 151, 149, 165, 154, 152, 170, 159, 157, 173, 163, 161, 176, 166, 165, 178, 170, 168, 179, 173, 173, 182, 176, 176, 182, 178, 179, 182, 180, 181, 185, 183, 184, 187, 187, 189, 189, 190, 194, 191, 194, 199, 196, 199, 204, 200, 203, 208, 204, 207, 212, 209, 212, 217, 215, 218, 223, 219, 222, 227, 223, 226, 231, 227, 230, 235, 231, 234, 239, 234, 237, 242, 235, 238, 243, 236, 239, 244, 238, 241, 246, 241, 244, 249, 241, 245, 248, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 248, 247, 252, 248, 247, 252, 248, 247, 252, 248, 247, 252, 248, 247, 252, 248, 247, 252, 248, 247, 252, 248, 247, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 249, 246, 247, 249, 245, 246, 248, 245, 246, 248, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 244, 246, 245, 244, 246, 245, 244, 246, 245, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 247, 249, 248, 247, 249, 248, 248, 250, 249, 248, 250, 249, 248, 250, 249, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 241, 241, 239, 240, 240, 238, 240, 240, 238, 240, 240, 238, 239, 239, 237, 238, 240, 237, 238, 240, 237, 238, 240, 237, 238, 240, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 232, 238, 237, 232, 238, 237, 232, 238, 237, 232, 238, 239, 234, 238, 239, 234, 238, 239, 234, 238, 239, 234, 238, 239, 234, 238, 239, 234, 238, 239, 234, 238, 239, 234, 237, 238, 233, 237, 238, 233, 237, 238, 233, 236, 237, 232, 236, 237, 232, 236, 237, 232, 235, 236, 231, 235, 236, 231, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 237, 234, 229, 237, 234, 229, 237, 234, 229, 237, 234, 229, 237, 234, 229, 237, 234, 229, 237, 234, 229, 237, 234, 229, 238, 235, 230, 238, 235, 230, 238, 235, 230, 238, 235, 230, 238, 235, 230, 238, 235, 230, 238, 235, 230, 238, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 237, 236, 231, 237, 236, 231, 238, 237, 232, 238, 237, 232, 238, 237, 232, 237, 238, 233, 237, 238, 233, 237, 238, 233, 237, 238, 233, 237, 238, 233, 237, 238, 233, 237, 238, 233, 237, 238, 233, 238, 239, 234, 238, 239, 234, 238, 239, 234, 238, 239, 234, 238, 239, 234, 238, 239, 234, 238, 239, 234, 238, 239, 234, 238, 239, 233, 238, 239, 233, 239, 240, 234, 239, 240, 234, 239, 240, 235, 240, 241, 236, 240, 241, 236, 240, 241, 236, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 243, 242, 238, 243, 242, 238, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 245, 244, 240, 245, 244, 240, 245, 244, 240, 245, 244, 240, 245, 244, 240, 245, 244, 240, 245, 244, 240, 245, 244, 240, 245, 244, 240, 245, 244, 240, 245, 244, 240, 245, 244, 240, 245, 244, 240, 245, 244, 240, 245, 244, 240, 245, 244, 240, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 249, 249, 249, 248, 248, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 247, 246, 247, 249, 248, 246, 248, 247, 246, 248, 247, 245, 247, 246, 244, 246, 245, 243, 245, 244, 243, 245, 244, 242, 244, 243, 244, 245, 247, 243, 244, 246, 242, 243, 245, 241, 242, 244, 240, 241, 243, 239, 240, 242, 238, 239, 241, 237, 238, 240, 234, 235, 237, 232, 233, 235, 230, 231, 233, 228, 229, 231, 228, 229, 231, 225, 226, 228, 221, 222, 224, 217, 218, 220, 211, 215, 216, 210, 214, 215, 207, 211, 212, 204, 208, 209, 202, 203, 205, 198, 199, 201, 196, 197, 199, 194, 195, 197, 193, 193, 195, 193, 193, 195, 193, 193, 195, 193, 193, 195, 192, 192, 194, 190, 190, 192, 188, 188, 190, 187, 187, 189, 180, 178, 179, 177, 175, 176, 173, 171, 172, 168, 166, 167, 163, 161, 162, 159, 157, 158, 158, 154, 155, 156, 152, 153, 159, 155, 154, 159, 155, 154, 158, 154, 153, 158, 154, 153, 159, 154, 151, 159, 154, 151, 158, 153, 150, 158, 153, 150, 156, 152, 149, 156, 152, 149, 155, 151, 148, 154, 150, 147, 154, 150, 147, 155, 151, 148, 156, 152, 149, 156, 152, 149, 156, 152, 149, 157, 153, 150, 157, 153, 150, 158, 154, 151, 159, 155, 152, 160, 156, 153, 160, 156, 153, 161, 157, 154, 160, 151, 152, 160, 151, 152, 160, 152, 150, 158, 150, 148, 154, 146, 144, 149, 141, 139, 145, 135, 134, 142, 132, 131, 141, 131, 129, 141, 131, 129, 142, 131, 129, 143, 132, 130, 145, 134, 132, 147, 136, 134, 149, 138, 134, 150, 139, 135, 151, 142, 137, 154, 145, 140, 157, 148, 143, 159, 150, 145, 162, 151, 149, 165, 154, 152, 170, 159, 157, 174, 163, 161, 175, 165, 164, 177, 169, 167, 180, 171, 172, 180, 174, 174, 180, 176, 177, 182, 178, 179, 183, 181, 182, 185, 185, 187, 188, 189, 193, 189, 192, 197, 193, 196, 201, 197, 200, 205, 201, 204, 209, 206, 209, 214, 213, 216, 221, 218, 221, 226, 222, 225, 230, 226, 229, 234, 230, 233, 238, 233, 236, 241, 234, 237, 242, 235, 238, 243, 237, 240, 245, 240, 243, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 247, 246, 251, 248, 247, 252, 248, 247, 252, 248, 247, 252, 248, 247, 252, 248, 247, 252, 248, 247, 252, 248, 247, 252, 248, 247, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 249, 246, 247, 249, 245, 246, 248, 245, 246, 248, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 244, 246, 245, 244, 246, 245, 244, 246, 245, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 247, 249, 248, 247, 249, 248, 248, 250, 249, 248, 250, 249, 248, 250, 249, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 249, 249, 247, 249, 249, 247, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 241, 241, 239, 240, 240, 238, 240, 240, 238, 240, 240, 238, 238, 240, 239, 238, 240, 239, 238, 240, 237, 238, 240, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 238, 239, 234, 238, 239, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 233, 239, 238, 233, 238, 239, 234, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 237, 237, 235, 237, 237, 235, 237, 237, 235, 237, 237, 235, 236, 236, 234, 236, 236, 234, 235, 235, 233, 235, 236, 231, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 238, 237, 232, 238, 237, 232, 239, 238, 233, 239, 238, 233, 238, 239, 234, 238, 239, 234, 238, 239, 234, 238, 239, 234, 238, 239, 234, 238, 239, 234, 238, 239, 234, 238, 239, 234, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 240, 234, 239, 240, 234, 239, 240, 235, 240, 241, 236, 240, 241, 236, 240, 241, 236, 241, 242, 237, 241, 242, 237, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 240, 240, 240, 238, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 244, 243, 239, 244, 243, 239, 245, 244, 240, 245, 244, 240, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 245, 244, 240, 245, 244, 240, 245, 244, 240, 245, 244, 240, 245, 244, 240, 245, 244, 240, 245, 244, 240, 245, 244, 240, 246, 245, 241, 246, 245, 241, 246, 245, 241, 246, 245, 241, 246, 245, 241, 246, 245, 241, 246, 245, 241, 246, 245, 241, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 249, 247, 249, 248, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 247, 249, 248, 246, 248, 247, 246, 248, 247, 245, 247, 246, 244, 246, 245, 243, 245, 244, 243, 245, 244, 242, 244, 243, 243, 244, 246, 243, 244, 246, 242, 243, 245, 241, 242, 244, 240, 241, 243, 238, 239, 241, 238, 239, 241, 237, 238, 240, 236, 237, 239, 234, 235, 237, 231, 232, 234, 230, 231, 233, 229, 230, 232, 226, 227, 229, 222, 223, 225, 218, 219, 221, 212, 216, 217, 211, 215, 216, 208, 212, 213, 204, 208, 209, 202, 203, 205, 199, 200, 202, 196, 197, 199, 194, 195, 197, 194, 194, 196, 194, 194, 196, 194, 194, 196, 194, 194, 196, 193, 193, 195, 192, 192, 194, 190, 190, 192, 189, 189, 191, 181, 179, 180, 179, 177, 178, 174, 172, 173, 168, 166, 167, 162, 160, 161, 156, 154, 155, 153, 149, 150, 151, 147, 148, 152, 148, 147, 152, 148, 147, 152, 148, 147, 153, 149, 148, 155, 150, 147, 155, 150, 147, 156, 151, 148, 156, 151, 148, 155, 151, 148, 155, 151, 148, 154, 150, 147, 153, 149, 146, 153, 149, 146, 154, 150, 147, 155, 151, 148, 155, 151, 148, 157, 153, 150, 157, 153, 150, 158, 154, 151, 158, 154, 151, 159, 155, 152, 160, 156, 153, 161, 157, 154, 161, 157, 154, 159, 150, 151, 160, 151, 152, 160, 152, 150, 158, 150, 148, 155, 147, 145, 149, 141, 139, 145, 135, 134, 141, 131, 130, 141, 131, 129, 141, 131, 129, 142, 131, 129, 143, 132, 130, 145, 134, 132, 147, 136, 134, 149, 138, 134, 150, 139, 135, 152, 143, 138, 154, 145, 140, 157, 148, 143, 159, 150, 145, 162, 151, 149, 165, 154, 152, 170, 159, 157, 174, 163, 161, 174, 164, 163, 176, 168, 166, 179, 170, 171, 179, 173, 173, 178, 174, 173, 180, 176, 175, 181, 179, 180, 183, 183, 185, 187, 188, 192, 187, 190, 195, 191, 194, 199, 194, 197, 202, 198, 201, 206, 204, 207, 212, 211, 214, 219, 217, 220, 225, 221, 224, 229, 225, 228, 233, 229, 232, 237, 232, 235, 240, 233, 236, 241, 234, 237, 242, 236, 239, 244, 239, 242, 247, 241, 245, 248, 241, 245, 248, 241, 245, 248, 241, 245, 248, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 242, 246, 249, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 246, 251, 246, 247, 251, 247, 246, 251, 246, 247, 251, 247, 246, 251, 246, 247, 251, 247, 246, 251, 246, 247, 251, 248, 247, 252, 247, 248, 252, 248, 247, 252, 247, 248, 252, 248, 247, 252, 247, 248, 252, 248, 247, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 249, 246, 247, 249, 245, 246, 248, 245, 246, 248, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 244, 246, 245, 244, 246, 245, 244, 246, 245, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 247, 249, 248, 247, 249, 248, 248, 250, 249, 248, 250, 249, 248, 250, 249, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 249, 249, 247, 249, 249, 247, 248, 248, 246, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 241, 241, 239, 240, 240, 238, 240, 240, 238, 240, 240, 238, 238, 240, 239, 238, 240, 239, 238, 240, 237, 238, 240, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 238, 239, 234, 238, 239, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 237, 237, 235, 237, 237, 235, 237, 237, 235, 236, 236, 234, 236, 236, 234, 236, 236, 234, 235, 235, 233, 236, 235, 231, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 238, 237, 232, 238, 237, 232, 239, 238, 233, 239, 238, 233, 239, 238, 233, 238, 239, 234, 238, 239, 234, 238, 239, 234, 238, 239, 234, 238, 239, 234, 238, 239, 234, 238, 239, 234, 238, 239, 234, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 240, 235, 239, 240, 234, 239, 240, 234, 240, 241, 236, 240, 241, 236, 240, 241, 236, 241, 242, 237, 241, 242, 237, 241, 242, 237, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 243, 242, 238, 243, 242, 238, 243, 242, 238, 244, 243, 239, 244, 243, 239, 244, 243, 239, 245, 244, 240, 245, 244, 240, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 245, 244, 240, 245, 244, 240, 245, 244, 240, 245, 244, 240, 245, 244, 240, 245, 244, 240, 245, 244, 240, 245, 244, 240, 246, 245, 241, 246, 245, 241, 246, 245, 241, 246, 245, 241, 246, 245, 241, 246, 245, 241, 246, 245, 241, 246, 245, 241, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 253, 253, 251, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 250, 250, 250, 247, 249, 248, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 245, 247, 246, 247, 249, 248, 246, 248, 247, 246, 248, 247, 245, 247, 246, 244, 246, 245, 243, 245, 244, 243, 245, 244, 242, 244, 243, 243, 244, 246, 242, 243, 245, 242, 243, 245, 240, 241, 243, 239, 240, 242, 238, 239, 241, 237, 238, 240, 237, 238, 240, 237, 238, 240, 235, 236, 238, 233, 234, 236, 231, 232, 234, 230, 231, 233, 228, 229, 231, 224, 225, 227, 220, 221, 223, 214, 218, 219, 212, 216, 217, 209, 213, 214, 206, 210, 211, 203, 204, 206, 199, 200, 202, 197, 198, 200, 195, 196, 198, 196, 196, 198, 196, 196, 198, 197, 197, 199, 197, 197, 199, 196, 196, 198, 194, 194, 196, 193, 193, 195, 192, 192, 194, 184, 182, 183, 181, 179, 180, 176, 174, 175, 170, 168, 169, 162, 160, 161, 155, 153, 154, 152, 148, 149, 149, 145, 146, 147, 143, 142, 147, 143, 142, 148, 144, 143, 149, 145, 144, 152, 147, 144, 153, 148, 145, 154, 149, 146, 155, 150, 147, 155, 150, 147, 154, 150, 147, 153, 149, 146, 152, 148, 145, 152, 148, 145, 153, 149, 146, 154, 150, 147, 154, 150, 147, 157, 153, 150, 157, 153, 150, 158, 154, 151, 158, 154, 151, 159, 155, 152, 160, 156, 153, 161, 157, 154, 162, 157, 154, 159, 150, 151, 159, 150, 151, 160, 152, 150, 158, 150, 148, 155, 147, 145, 149, 141, 139, 145, 135, 134, 141, 131, 130, 141, 131, 129, 141, 131, 129, 142, 131, 129, 143, 132, 130, 145, 134, 132, 147, 136, 134, 149, 138, 134, 151, 140, 136, 152, 143, 138, 154, 145, 140, 158, 149, 144, 160, 151, 146, 162, 151, 149, 166, 155, 153, 171, 160, 158, 175, 164, 162, 174, 164, 163, 176, 166, 165, 178, 170, 168, 178, 172, 172, 178, 172, 172, 179, 175, 174, 182, 178, 177, 183, 181, 182, 187, 187, 189, 189, 190, 194, 192, 193, 197, 193, 197, 200, 197, 201, 204, 203, 206, 211, 211, 214, 219, 216, 219, 224, 221, 224, 229, 223, 228, 232, 229, 232, 237, 230, 235, 239, 232, 235, 240, 233, 236, 241, 236, 239, 244, 238, 241, 246, 240, 244, 247, 241, 245, 248, 241, 245, 248, 241, 245, 248, 242, 246, 249, 242, 246, 249, 242, 246, 249, 243, 247, 250, 242, 246, 249, 242, 246, 249, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 247, 248, 252, 245, 249, 252, 247, 248, 252, 245, 249, 252, 247, 248, 252, 245, 249, 252, 247, 248, 252, 245, 249, 252, 247, 248, 252, 245, 249, 252, 247, 248, 252, 245, 249, 252, 247, 248, 252, 245, 249, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 247, 251, 254, 247, 251, 254, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 249, 245, 246, 248, 245, 246, 248, 245, 246, 248, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 244, 246, 245, 244, 246, 245, 244, 246, 245, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 246, 245, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 248, 247, 246, 248, 247, 246, 248, 247, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 249, 249, 247, 249, 249, 247, 249, 249, 247, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 246, 244, 246, 246, 244, 246, 246, 244, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 245, 245, 243, 245, 245, 243, 245, 245, 243, 244, 244, 242, 244, 244, 242, 244, 244, 242, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 240, 240, 238, 240, 240, 238, 240, 240, 238, 239, 239, 237, 239, 239, 237, 239, 239, 237, 238, 238, 236, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 240, 240, 238, 240, 240, 238, 239, 239, 237, 239, 239, 237, 239, 239, 237, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 236, 235, 230, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 237, 236, 232, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 241, 236, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 251, 253, 253, 251, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 249, 251, 250, 249, 251, 250, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 247, 249, 248, 245, 247, 246, 244, 246, 245, 244, 246, 245, 244, 246, 245, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 241, 243, 242, 241, 243, 242, 240, 242, 241, 240, 242, 241, 239, 241, 240, 238, 240, 239, 238, 240, 239, 237, 239, 238, 236, 238, 237, 236, 238, 237, 236, 238, 237, 234, 236, 235, 232, 234, 233, 230, 232, 231, 227, 229, 228, 226, 228, 227, 219, 223, 224, 217, 221, 222, 214, 218, 219, 209, 213, 214, 205, 209, 210, 200, 204, 205, 199, 200, 202, 197, 198, 200, 198, 199, 201, 195, 196, 198, 192, 193, 195, 190, 191, 193, 192, 192, 194, 192, 192, 194, 191, 191, 193, 189, 189, 191, 185, 185, 185, 181, 181, 181, 176, 176, 176, 171, 171, 171, 168, 167, 165, 163, 162, 160, 157, 156, 154, 153, 152, 150, 152, 148, 147, 151, 147, 146, 150, 145, 142, 148, 143, 140, 150, 142, 140, 152, 144, 142, 154, 146, 144, 153, 148, 145, 155, 150, 147, 154, 149, 146, 151, 146, 143, 150, 145, 142, 151, 146, 143, 154, 149, 146, 157, 152, 149, 160, 155, 152, 159, 154, 151, 159, 154, 151, 159, 154, 151, 159, 154, 151, 159, 154, 151, 159, 154, 151, 159, 154, 151, 159, 154, 151, 160, 151, 152, 160, 151, 152, 161, 151, 150, 161, 151, 150, 160, 150, 149, 155, 145, 144, 147, 137, 136, 141, 131, 130, 141, 130, 128, 141, 130, 128, 142, 131, 129, 144, 133, 131, 146, 135, 133, 149, 138, 136, 152, 141, 137, 154, 143, 139, 158, 147, 143, 159, 148, 144, 160, 149, 145, 162, 151, 147, 164, 153, 149, 166, 155, 151, 166, 156, 154, 167, 157, 155, 173, 163, 161, 174, 164, 162, 175, 167, 164, 178, 170, 168, 180, 172, 170, 181, 176, 173, 183, 178, 175, 183, 179, 178, 184, 182, 183, 186, 186, 186, 190, 190, 192, 193, 194, 196, 196, 200, 201, 202, 206, 209, 209, 214, 218, 215, 220, 224, 217, 222, 226, 219, 227, 230, 227, 232, 238, 229, 236, 242, 233, 238, 242, 235, 240, 244, 237, 242, 246, 239, 244, 248, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 249, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 248, 249, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 247, 251, 254, 247, 251, 254, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 249, 245, 246, 248, 245, 246, 248, 245, 246, 248, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 244, 246, 245, 244, 246, 245, 244, 246, 245, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 246, 245, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 248, 247, 246, 248, 247, 246, 248, 247, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 249, 249, 247, 249, 249, 247, 249, 249, 247, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 246, 244, 246, 246, 244, 246, 246, 244, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 245, 245, 243, 245, 245, 243, 245, 245, 243, 244, 244, 242, 244, 244, 242, 244, 244, 242, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 240, 240, 238, 240, 240, 238, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 240, 240, 238, 240, 240, 238, 240, 240, 238, 239, 239, 237, 239, 239, 237, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 238, 237, 232, 238, 237, 232, 238, 237, 232, 238, 237, 232, 238, 237, 232, 238, 237, 232, 238, 237, 232, 238, 237, 232, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 241, 236, 240, 241, 236, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 251, 253, 253, 251, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 246, 245, 244, 246, 245, 243, 245, 244, 242, 244, 243, 241, 243, 242, 241, 243, 242, 240, 242, 241, 239, 241, 240, 238, 240, 239, 238, 240, 239, 238, 240, 239, 236, 238, 237, 236, 238, 237, 235, 237, 236, 234, 236, 235, 232, 234, 233, 229, 231, 230, 227, 229, 228, 226, 228, 227, 226, 230, 231, 224, 228, 229, 221, 225, 226, 217, 221, 222, 213, 217, 218, 210, 214, 215, 209, 210, 212, 207, 208, 210, 198, 199, 201, 194, 195, 197, 190, 191, 193, 189, 190, 192, 189, 189, 191, 189, 189, 191, 187, 187, 189, 185, 185, 187, 187, 187, 187, 183, 183, 183, 178, 178, 178, 174, 174, 174, 171, 170, 168, 167, 166, 164, 162, 161, 159, 158, 157, 155, 154, 150, 149, 152, 148, 147, 152, 147, 144, 150, 145, 142, 152, 144, 142, 154, 146, 144, 155, 147, 145, 157, 149, 147, 155, 150, 147, 153, 148, 145, 151, 146, 143, 150, 145, 142, 151, 146, 143, 153, 148, 145, 156, 151, 148, 159, 154, 151, 158, 153, 150, 158, 153, 150, 158, 153, 150, 158, 153, 150, 158, 153, 150, 158, 153, 150, 158, 153, 150, 158, 153, 150, 160, 151, 152, 159, 150, 151, 160, 150, 149, 161, 151, 150, 159, 149, 148, 155, 145, 144, 147, 137, 136, 142, 132, 131, 143, 132, 130, 143, 132, 130, 143, 132, 130, 145, 134, 132, 147, 136, 134, 150, 139, 137, 153, 142, 138, 154, 143, 139, 158, 147, 143, 159, 148, 144, 160, 149, 145, 162, 151, 147, 164, 153, 149, 166, 155, 151, 167, 157, 155, 167, 157, 155, 172, 162, 160, 173, 163, 161, 174, 166, 163, 177, 169, 166, 180, 172, 170, 183, 175, 173, 185, 177, 175, 184, 179, 176, 185, 181, 180, 186, 185, 183, 189, 189, 189, 193, 193, 193, 196, 197, 199, 201, 205, 206, 208, 213, 217, 214, 219, 223, 215, 223, 226, 219, 227, 230, 225, 232, 238, 229, 236, 242, 231, 239, 242, 232, 240, 243, 237, 242, 246, 238, 243, 247, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 249, 252, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 246, 247, 249, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 247, 251, 254, 247, 251, 254, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 249, 245, 246, 248, 245, 246, 248, 245, 246, 248, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 244, 246, 245, 244, 246, 245, 244, 246, 245, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 246, 245, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 248, 247, 246, 248, 247, 246, 248, 247, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 249, 249, 247, 249, 249, 247, 249, 249, 247, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 246, 244, 246, 246, 244, 246, 246, 244, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 245, 245, 243, 245, 245, 243, 245, 245, 243, 244, 244, 242, 244, 244, 242, 244, 244, 242, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 240, 240, 238, 240, 240, 238, 240, 240, 238, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 240, 240, 238, 240, 240, 238, 240, 240, 238, 239, 239, 237, 239, 239, 237, 239, 239, 237, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 237, 236, 231, 238, 237, 232, 238, 237, 232, 238, 237, 232, 238, 237, 232, 238, 237, 232, 238, 237, 232, 238, 237, 232, 238, 237, 232, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 251, 253, 253, 251, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 249, 251, 250, 249, 251, 250, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 242, 244, 243, 242, 244, 243, 241, 243, 242, 241, 243, 242, 240, 242, 241, 239, 241, 240, 238, 240, 239, 238, 240, 239, 236, 238, 237, 236, 238, 237, 235, 237, 236, 234, 236, 235, 232, 234, 233, 229, 231, 230, 227, 229, 228, 225, 227, 226, 228, 232, 233, 226, 230, 231, 224, 228, 229, 221, 225, 226, 218, 222, 223, 215, 219, 220, 214, 215, 217, 213, 214, 216, 200, 201, 203, 197, 198, 200, 192, 193, 195, 189, 190, 192, 189, 189, 191, 187, 187, 189, 185, 185, 187, 182, 182, 184, 186, 186, 186, 182, 182, 182, 178, 178, 178, 175, 175, 175, 174, 173, 171, 171, 170, 168, 166, 165, 163, 163, 162, 160, 156, 152, 151, 155, 151, 150, 155, 150, 147, 154, 149, 146, 156, 148, 146, 157, 149, 147, 158, 150, 148, 159, 151, 149, 154, 149, 146, 153, 148, 145, 151, 146, 143, 150, 145, 142, 150, 145, 142, 152, 147, 144, 155, 150, 147, 157, 152, 149, 156, 151, 148, 156, 151, 148, 156, 151, 148, 156, 151, 148, 156, 151, 148, 156, 151, 148, 156, 151, 148, 156, 151, 148, 159, 150, 151, 158, 149, 150, 158, 150, 148, 159, 151, 149, 159, 149, 148, 155, 145, 144, 149, 139, 138, 144, 134, 133, 144, 134, 132, 144, 134, 132, 145, 134, 132, 146, 135, 133, 148, 137, 135, 150, 139, 137, 153, 142, 138, 154, 143, 139, 158, 147, 143, 159, 148, 144, 160, 149, 145, 162, 151, 147, 164, 153, 149, 166, 155, 151, 167, 157, 155, 167, 157, 155, 171, 161, 159, 172, 162, 160, 174, 166, 163, 176, 168, 165, 179, 171, 169, 182, 174, 172, 184, 176, 174, 183, 178, 175, 183, 179, 178, 184, 183, 181, 187, 187, 187, 191, 191, 191, 195, 196, 198, 199, 203, 204, 206, 211, 215, 212, 217, 221, 214, 222, 225, 219, 227, 230, 225, 232, 238, 229, 236, 242, 233, 238, 242, 234, 239, 243, 236, 241, 245, 238, 243, 247, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 249, 252, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 247, 251, 254, 247, 251, 254, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 249, 245, 246, 248, 245, 246, 248, 245, 246, 248, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 244, 246, 245, 244, 246, 245, 244, 246, 245, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 246, 245, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 248, 247, 246, 248, 247, 246, 248, 247, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 246, 244, 246, 246, 244, 246, 246, 244, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 245, 245, 243, 245, 245, 243, 245, 245, 243, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 241, 241, 239, 240, 240, 238, 240, 240, 238, 240, 240, 238, 239, 239, 237, 239, 239, 237, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 241, 241, 239, 241, 241, 239, 240, 240, 238, 240, 240, 238, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 238, 238, 236, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 232, 238, 237, 232, 238, 237, 232, 238, 237, 232, 238, 237, 232, 238, 237, 232, 238, 237, 232, 238, 237, 232, 238, 237, 232, 238, 237, 232, 238, 237, 232, 238, 237, 232, 238, 237, 232, 238, 237, 232, 238, 237, 232, 238, 237, 232, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 238, 237, 233, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 251, 253, 253, 251, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 253, 252, 251, 253, 252, 251, 253, 252, 250, 252, 251, 250, 252, 251, 249, 251, 250, 249, 251, 250, 249, 251, 250, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 243, 245, 244, 243, 245, 244, 242, 244, 243, 241, 243, 242, 241, 243, 242, 240, 242, 241, 239, 241, 240, 239, 241, 240, 236, 238, 237, 236, 238, 237, 235, 237, 236, 234, 236, 235, 232, 234, 233, 229, 231, 230, 227, 229, 228, 225, 227, 226, 220, 224, 225, 219, 223, 224, 217, 221, 222, 215, 219, 220, 212, 216, 217, 210, 214, 215, 210, 211, 213, 209, 210, 212, 204, 205, 207, 200, 201, 203, 195, 196, 198, 191, 192, 194, 190, 190, 192, 188, 188, 190, 184, 184, 186, 181, 181, 183, 181, 181, 181, 178, 178, 178, 174, 174, 174, 172, 172, 172, 172, 171, 169, 169, 168, 166, 166, 165, 163, 162, 161, 159, 158, 154, 153, 158, 154, 153, 158, 153, 150, 158, 153, 150, 160, 152, 150, 160, 152, 150, 161, 153, 151, 161, 153, 151, 154, 149, 146, 153, 148, 145, 152, 147, 144, 151, 146, 143, 151, 146, 143, 152, 147, 144, 154, 149, 146, 155, 150, 147, 154, 149, 146, 154, 149, 146, 154, 149, 146, 154, 149, 146, 154, 149, 146, 154, 149, 146, 154, 149, 146, 154, 149, 146, 158, 149, 150, 157, 148, 149, 157, 149, 147, 157, 149, 147, 158, 148, 147, 156, 146, 145, 151, 141, 140, 146, 136, 135, 147, 137, 135, 146, 136, 134, 147, 136, 134, 148, 137, 135, 149, 138, 136, 151, 140, 138, 152, 141, 137, 154, 143, 139, 158, 147, 143, 158, 147, 143, 160, 149, 145, 162, 151, 147, 164, 153, 149, 166, 155, 151, 166, 156, 154, 167, 157, 155, 170, 160, 158, 171, 161, 159, 172, 164, 161, 175, 167, 164, 178, 170, 168, 181, 173, 171, 183, 175, 173, 182, 177, 174, 181, 177, 176, 182, 181, 179, 185, 185, 185, 189, 189, 189, 193, 194, 196, 197, 201, 202, 205, 208, 213, 210, 215, 219, 214, 222, 225, 219, 227, 230, 225, 232, 238, 229, 236, 242, 232, 237, 241, 234, 239, 243, 236, 241, 245, 238, 243, 247, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 249, 252, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 248, 249, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 249, 248, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 247, 251, 254, 247, 251, 254, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 249, 245, 246, 248, 245, 246, 248, 245, 246, 248, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 244, 246, 245, 244, 246, 245, 244, 246, 245, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 246, 245, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 248, 247, 246, 248, 247, 246, 248, 247, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 246, 244, 246, 246, 244, 246, 246, 244, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 245, 245, 243, 245, 245, 243, 245, 245, 243, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 241, 241, 239, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 241, 241, 239, 241, 241, 239, 241, 241, 239, 240, 240, 238, 240, 240, 238, 240, 240, 238, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 241, 242, 237, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 251, 253, 253, 251, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 253, 252, 251, 253, 252, 251, 253, 252, 250, 252, 251, 250, 252, 251, 249, 251, 250, 249, 251, 250, 249, 251, 250, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 244, 246, 245, 244, 246, 245, 243, 245, 244, 242, 244, 243, 241, 243, 242, 241, 243, 242, 240, 242, 241, 240, 242, 241, 237, 239, 238, 236, 238, 237, 236, 238, 237, 235, 237, 236, 233, 235, 234, 230, 232, 231, 228, 230, 229, 226, 228, 227, 214, 218, 219, 213, 217, 218, 211, 215, 216, 208, 212, 213, 206, 210, 211, 203, 207, 208, 203, 204, 206, 202, 203, 205, 203, 204, 206, 198, 199, 201, 193, 194, 196, 189, 190, 192, 187, 187, 189, 185, 185, 187, 181, 181, 183, 178, 178, 180, 175, 175, 175, 172, 172, 172, 169, 169, 169, 167, 167, 167, 167, 166, 164, 165, 164, 162, 161, 160, 158, 158, 157, 155, 159, 155, 154, 159, 155, 154, 160, 155, 152, 161, 156, 153, 163, 155, 153, 162, 154, 152, 162, 154, 152, 162, 154, 152, 154, 149, 146, 154, 149, 146, 153, 148, 145, 152, 147, 144, 152, 147, 144, 152, 147, 144, 153, 148, 145, 153, 148, 145, 153, 148, 145, 153, 148, 145, 153, 148, 145, 153, 148, 145, 153, 148, 145, 153, 148, 145, 153, 148, 145, 153, 148, 145, 158, 149, 150, 156, 147, 148, 156, 148, 146, 156, 148, 146, 157, 149, 147, 155, 147, 145, 152, 142, 141, 149, 139, 138, 149, 139, 137, 148, 138, 136, 149, 138, 136, 148, 137, 135, 149, 138, 136, 150, 139, 137, 151, 140, 136, 152, 141, 137, 156, 145, 141, 157, 146, 142, 159, 148, 144, 160, 149, 145, 163, 152, 148, 164, 153, 149, 165, 155, 153, 166, 156, 154, 169, 159, 157, 170, 160, 158, 171, 163, 160, 174, 166, 163, 177, 169, 167, 179, 171, 169, 181, 173, 171, 181, 176, 173, 180, 176, 175, 181, 180, 178, 184, 184, 184, 188, 188, 188, 192, 193, 195, 196, 200, 201, 204, 207, 212, 209, 214, 218, 216, 221, 225, 220, 225, 229, 226, 231, 237, 230, 235, 241, 232, 237, 241, 233, 238, 242, 235, 240, 244, 237, 242, 246, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 249, 252, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 247, 251, 254, 247, 251, 254, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 249, 245, 246, 248, 245, 246, 248, 245, 246, 248, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 244, 246, 245, 244, 246, 245, 244, 246, 245, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 246, 245, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 248, 247, 246, 248, 247, 246, 248, 247, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 246, 244, 246, 246, 244, 246, 246, 244, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 245, 245, 243, 245, 245, 243, 245, 245, 243, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 241, 241, 239, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 242, 242, 240, 241, 241, 239, 241, 241, 239, 241, 241, 239, 240, 240, 238, 240, 240, 238, 240, 240, 238, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 239, 239, 237, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 251, 253, 253, 251, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 250, 252, 251, 250, 252, 251, 250, 252, 251, 250, 252, 251, 249, 251, 250, 249, 251, 250, 248, 250, 249, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 247, 246, 244, 246, 245, 244, 246, 245, 243, 245, 244, 242, 244, 243, 241, 243, 242, 241, 243, 242, 240, 242, 241, 238, 240, 239, 238, 240, 239, 237, 239, 238, 236, 238, 237, 234, 236, 235, 231, 233, 232, 229, 231, 230, 228, 230, 229, 216, 220, 221, 215, 219, 220, 212, 216, 217, 209, 213, 214, 206, 210, 211, 203, 207, 208, 203, 204, 206, 201, 202, 204, 198, 199, 201, 194, 195, 197, 189, 190, 192, 185, 186, 188, 184, 184, 186, 181, 181, 183, 178, 178, 180, 175, 175, 177, 173, 173, 173, 170, 170, 170, 166, 166, 166, 164, 164, 164, 164, 163, 161, 161, 160, 158, 158, 157, 155, 155, 154, 152, 158, 154, 153, 159, 155, 154, 161, 156, 153, 162, 157, 154, 164, 156, 154, 163, 155, 153, 162, 154, 152, 161, 153, 151, 155, 150, 147, 155, 150, 147, 155, 150, 147, 155, 150, 147, 154, 149, 146, 153, 148, 145, 153, 148, 145, 153, 148, 145, 152, 147, 144, 152, 147, 144, 152, 147, 144, 152, 147, 144, 152, 147, 144, 152, 147, 144, 152, 147, 144, 152, 147, 144, 157, 148, 149, 155, 146, 147, 154, 146, 144, 155, 147, 145, 156, 148, 146, 156, 148, 146, 154, 144, 143, 152, 142, 141, 150, 140, 138, 149, 139, 137, 149, 138, 136, 148, 137, 135, 148, 137, 135, 149, 138, 136, 150, 139, 135, 150, 139, 135, 155, 144, 140, 155, 144, 140, 157, 146, 142, 159, 148, 144, 161, 150, 146, 163, 152, 148, 163, 153, 151, 164, 154, 152, 168, 158, 156, 169, 159, 157, 170, 162, 159, 173, 165, 162, 176, 168, 166, 178, 170, 168, 180, 172, 170, 179, 174, 171, 179, 175, 174, 180, 179, 177, 184, 182, 183, 187, 187, 187, 191, 192, 194, 198, 199, 201, 204, 207, 212, 208, 213, 217, 215, 220, 224, 220, 225, 229, 226, 231, 237, 230, 235, 241, 232, 237, 241, 233, 238, 242, 235, 240, 244, 237, 242, 246, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 249, 252, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 247, 251, 254, 247, 251, 254, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 249, 245, 246, 248, 245, 246, 248, 245, 246, 248, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 244, 246, 245, 244, 246, 245, 244, 246, 245, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 246, 245, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 248, 247, 246, 248, 247, 246, 248, 247, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 246, 244, 246, 246, 244, 246, 246, 244, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 245, 245, 243, 245, 245, 243, 245, 245, 243, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 240, 240, 238, 240, 240, 238, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 241, 241, 239, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 251, 253, 253, 251, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 249, 251, 250, 249, 251, 250, 249, 251, 250, 249, 251, 250, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 246, 245, 243, 245, 244, 242, 244, 243, 241, 243, 242, 241, 243, 242, 240, 242, 241, 239, 241, 240, 239, 241, 240, 238, 240, 239, 236, 238, 237, 233, 235, 234, 231, 233, 232, 229, 231, 230, 222, 226, 227, 220, 224, 225, 217, 221, 222, 214, 218, 219, 210, 214, 215, 206, 210, 211, 205, 206, 208, 203, 204, 206, 199, 200, 202, 195, 196, 198, 190, 191, 193, 187, 188, 190, 186, 186, 188, 184, 184, 186, 181, 181, 183, 179, 179, 181, 176, 176, 176, 173, 173, 173, 169, 169, 169, 166, 166, 166, 165, 164, 162, 163, 162, 160, 159, 158, 156, 155, 154, 152, 156, 152, 151, 158, 154, 153, 160, 155, 152, 162, 157, 154, 164, 156, 154, 162, 154, 152, 161, 153, 151, 159, 151, 149, 156, 151, 148, 156, 151, 148, 157, 152, 149, 157, 152, 149, 156, 151, 148, 155, 150, 147, 153, 148, 145, 152, 147, 144, 152, 147, 144, 152, 147, 144, 152, 147, 144, 152, 147, 144, 152, 147, 144, 152, 147, 144, 152, 147, 144, 152, 147, 144, 156, 147, 148, 155, 146, 147, 153, 145, 143, 154, 146, 144, 156, 148, 146, 156, 148, 146, 154, 146, 144, 153, 145, 143, 151, 141, 139, 150, 140, 138, 148, 138, 136, 147, 137, 135, 146, 136, 134, 147, 137, 135, 148, 137, 133, 148, 137, 133, 153, 142, 138, 153, 142, 138, 155, 144, 140, 157, 146, 142, 159, 148, 144, 161, 150, 146, 161, 151, 149, 162, 152, 150, 167, 157, 155, 168, 158, 156, 169, 161, 158, 172, 164, 161, 175, 167, 165, 177, 169, 167, 179, 171, 169, 179, 174, 171, 179, 175, 174, 180, 179, 177, 184, 182, 183, 187, 187, 187, 191, 192, 194, 198, 199, 201, 204, 207, 212, 209, 212, 217, 215, 220, 224, 220, 225, 229, 226, 231, 237, 230, 235, 241, 231, 236, 240, 233, 238, 242, 236, 239, 244, 238, 241, 246, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 249, 252, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 247, 251, 254, 247, 251, 254, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 249, 245, 246, 248, 245, 246, 248, 245, 246, 248, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 243, 245, 244, 244, 246, 245, 244, 246, 245, 244, 246, 245, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 246, 245, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 248, 247, 246, 248, 247, 246, 248, 247, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 246, 244, 246, 246, 244, 246, 246, 244, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 245, 245, 243, 245, 245, 243, 245, 245, 243, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 241, 241, 239, 240, 240, 238, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 241, 241, 239, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 239, 238, 234, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 251, 253, 253, 251, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 249, 251, 250, 249, 251, 250, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 248, 247, 245, 247, 246, 245, 247, 246, 244, 246, 245, 243, 245, 244, 242, 244, 243, 242, 244, 243, 241, 243, 242, 241, 243, 242, 240, 242, 241, 240, 242, 241, 239, 241, 240, 237, 239, 238, 234, 236, 235, 232, 234, 233, 230, 232, 231, 225, 229, 230, 224, 228, 229, 220, 224, 225, 216, 220, 221, 211, 215, 216, 207, 211, 212, 206, 207, 209, 204, 205, 207, 203, 204, 206, 200, 201, 203, 195, 196, 198, 192, 193, 195, 192, 192, 194, 190, 190, 192, 188, 188, 190, 185, 185, 187, 181, 181, 181, 177, 177, 177, 173, 173, 173, 170, 170, 170, 168, 167, 165, 165, 164, 162, 161, 160, 158, 157, 156, 154, 155, 151, 150, 157, 153, 152, 160, 155, 152, 161, 156, 153, 163, 155, 153, 162, 154, 152, 160, 152, 150, 158, 150, 148, 157, 152, 149, 157, 152, 149, 158, 153, 150, 158, 153, 150, 157, 152, 149, 155, 150, 147, 154, 149, 146, 153, 148, 145, 153, 148, 145, 153, 148, 145, 153, 148, 145, 153, 148, 145, 153, 148, 145, 153, 148, 145, 153, 148, 145, 153, 148, 145, 156, 147, 148, 154, 145, 146, 153, 145, 143, 153, 145, 143, 155, 147, 145, 156, 148, 146, 155, 147, 145, 154, 146, 144, 151, 141, 139, 150, 140, 138, 148, 138, 136, 147, 137, 135, 146, 136, 134, 146, 136, 134, 147, 136, 132, 147, 136, 132, 152, 141, 137, 152, 141, 137, 154, 143, 139, 156, 145, 141, 158, 147, 143, 160, 149, 145, 160, 150, 148, 161, 151, 149, 166, 156, 154, 168, 158, 156, 169, 161, 158, 171, 163, 160, 174, 166, 164, 177, 169, 167, 179, 171, 169, 178, 173, 170, 180, 174, 174, 182, 178, 177, 185, 183, 184, 189, 187, 188, 192, 192, 194, 198, 199, 201, 204, 207, 212, 210, 213, 218, 215, 220, 224, 219, 224, 228, 225, 230, 236, 229, 234, 240, 231, 236, 240, 232, 237, 241, 236, 239, 244, 238, 241, 246, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 241, 244, 249, 241, 244, 249, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 248, 253, 245, 248, 253, 245, 249, 252, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 247, 248, 250, 247, 248, 250, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 249, 245, 246, 248, 245, 246, 248, 245, 246, 248, 244, 246, 245, 244, 246, 245, 243, 245, 244, 243, 245, 244, 242, 244, 243, 242, 244, 243, 242, 244, 243, 242, 244, 243, 242, 244, 243, 242, 244, 243, 243, 245, 244, 243, 245, 244, 243, 245, 244, 244, 246, 245, 244, 246, 245, 244, 246, 245, 243, 245, 244, 244, 246, 245, 244, 246, 245, 244, 246, 245, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 248, 247, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 248, 247, 246, 248, 247, 246, 248, 247, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 247, 249, 248, 247, 249, 248, 248, 250, 249, 248, 250, 249, 248, 250, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 249, 249, 247, 249, 249, 247, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 246, 244, 246, 246, 244, 246, 246, 244, 245, 245, 243, 245, 245, 243, 245, 245, 243, 244, 244, 242, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 249, 251, 250, 249, 251, 250, 249, 251, 250, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 244, 246, 245, 243, 245, 244, 243, 245, 244, 242, 244, 243, 242, 244, 243, 242, 244, 243, 240, 242, 241, 240, 242, 241, 240, 242, 241, 238, 240, 239, 236, 238, 237, 234, 236, 235, 231, 233, 232, 230, 232, 231, 229, 233, 234, 227, 231, 232, 224, 228, 229, 221, 225, 226, 217, 221, 222, 213, 217, 218, 213, 214, 216, 211, 212, 214, 203, 204, 206, 200, 201, 203, 197, 198, 200, 196, 197, 199, 197, 197, 199, 196, 196, 198, 194, 194, 196, 191, 191, 193, 182, 182, 182, 180, 180, 180, 177, 177, 177, 172, 172, 172, 168, 167, 165, 164, 163, 161, 161, 160, 158, 159, 158, 156, 159, 155, 154, 158, 154, 153, 158, 153, 150, 157, 152, 149, 158, 150, 148, 159, 151, 149, 159, 151, 149, 160, 152, 150, 157, 152, 149, 157, 152, 149, 158, 153, 150, 158, 153, 150, 158, 153, 150, 157, 152, 149, 155, 150, 147, 155, 150, 147, 152, 147, 144, 153, 148, 145, 153, 148, 145, 153, 148, 145, 154, 149, 146, 154, 149, 146, 154, 149, 146, 154, 149, 146, 156, 150, 150, 154, 148, 148, 153, 148, 145, 154, 149, 146, 159, 151, 149, 160, 152, 150, 159, 151, 149, 157, 149, 147, 151, 143, 140, 149, 141, 138, 148, 138, 136, 146, 136, 134, 145, 135, 133, 146, 136, 134, 147, 138, 133, 148, 139, 134, 146, 135, 131, 148, 137, 133, 150, 139, 135, 153, 142, 138, 157, 146, 142, 160, 149, 145, 161, 151, 149, 162, 152, 150, 165, 155, 153, 167, 157, 155, 169, 161, 158, 171, 163, 160, 172, 164, 162, 173, 165, 163, 176, 168, 166, 177, 172, 169, 179, 173, 173, 182, 178, 177, 185, 183, 184, 190, 188, 189, 194, 194, 196, 199, 200, 202, 204, 207, 212, 209, 212, 217, 214, 219, 223, 219, 224, 228, 225, 230, 236, 229, 234, 240, 231, 234, 239, 233, 236, 241, 235, 238, 243, 237, 240, 245, 240, 243, 248, 240, 243, 248, 240, 243, 248, 241, 244, 249, 242, 245, 250, 243, 246, 251, 243, 246, 251, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 249, 252, 247, 248, 252, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 247, 248, 250, 247, 248, 250, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 249, 245, 246, 248, 245, 246, 248, 245, 246, 248, 244, 246, 245, 244, 246, 245, 243, 245, 244, 243, 245, 244, 242, 244, 243, 242, 244, 243, 242, 244, 243, 242, 244, 243, 242, 244, 243, 242, 244, 243, 243, 245, 244, 243, 245, 244, 243, 245, 244, 244, 246, 245, 244, 246, 245, 244, 246, 245, 243, 245, 244, 244, 246, 245, 244, 246, 245, 244, 246, 245, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 248, 247, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 248, 247, 246, 248, 247, 246, 248, 247, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 247, 249, 248, 247, 249, 248, 248, 250, 249, 248, 250, 249, 248, 250, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 249, 249, 247, 249, 249, 247, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 246, 244, 246, 246, 244, 246, 246, 244, 245, 245, 243, 245, 245, 243, 245, 245, 243, 244, 244, 242, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 240, 240, 238, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 249, 251, 250, 249, 251, 250, 249, 251, 250, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 246, 245, 244, 246, 245, 242, 244, 243, 242, 244, 243, 241, 243, 242, 241, 243, 242, 240, 242, 241, 240, 242, 241, 240, 242, 241, 240, 242, 241, 240, 242, 241, 239, 241, 240, 239, 241, 240, 238, 240, 239, 236, 238, 237, 233, 235, 234, 231, 233, 232, 230, 232, 231, 227, 231, 232, 226, 230, 231, 223, 227, 228, 220, 224, 225, 217, 221, 222, 214, 218, 219, 213, 214, 216, 212, 213, 215, 206, 207, 209, 203, 204, 206, 200, 201, 203, 198, 199, 201, 199, 199, 201, 197, 197, 199, 194, 194, 196, 191, 191, 193, 188, 188, 188, 186, 186, 186, 182, 182, 182, 177, 177, 177, 173, 172, 170, 168, 167, 165, 164, 163, 161, 162, 161, 159, 159, 155, 154, 158, 154, 153, 158, 153, 150, 156, 151, 148, 158, 150, 148, 158, 150, 148, 158, 150, 148, 159, 151, 149, 157, 152, 149, 157, 152, 149, 158, 153, 150, 158, 153, 150, 158, 153, 150, 157, 152, 149, 156, 151, 148, 155, 150, 147, 153, 148, 145, 153, 148, 145, 153, 148, 145, 154, 149, 146, 154, 149, 146, 155, 150, 147, 155, 150, 147, 155, 150, 147, 156, 150, 150, 155, 149, 149, 154, 149, 146, 155, 150, 147, 159, 151, 149, 160, 152, 150, 159, 151, 149, 157, 149, 147, 152, 144, 141, 150, 142, 139, 148, 138, 136, 145, 135, 133, 144, 134, 132, 144, 134, 132, 145, 136, 131, 146, 137, 132, 147, 136, 132, 149, 138, 134, 151, 140, 136, 154, 143, 139, 157, 146, 142, 160, 149, 145, 161, 151, 149, 163, 153, 151, 164, 154, 152, 167, 157, 155, 169, 161, 158, 171, 163, 160, 171, 163, 161, 173, 165, 163, 176, 168, 166, 179, 171, 169, 179, 173, 173, 182, 178, 177, 187, 183, 184, 189, 187, 188, 193, 193, 195, 199, 199, 201, 205, 206, 211, 208, 211, 216, 215, 218, 223, 219, 224, 228, 225, 230, 236, 229, 234, 240, 232, 235, 240, 233, 236, 241, 235, 238, 243, 237, 240, 245, 239, 242, 247, 240, 243, 248, 240, 243, 248, 241, 244, 249, 242, 245, 250, 243, 246, 251, 243, 246, 251, 244, 247, 252, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 249, 252, 247, 248, 252, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 247, 248, 250, 247, 248, 250, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 249, 245, 246, 248, 245, 246, 248, 245, 246, 248, 244, 246, 245, 244, 246, 245, 243, 245, 244, 243, 245, 244, 242, 244, 243, 242, 244, 243, 242, 244, 243, 242, 244, 243, 242, 244, 243, 242, 244, 243, 243, 245, 244, 243, 245, 244, 243, 245, 244, 244, 246, 245, 244, 246, 245, 244, 246, 245, 243, 245, 244, 244, 246, 245, 244, 246, 245, 244, 246, 245, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 248, 247, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 248, 247, 246, 248, 247, 246, 248, 247, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 247, 249, 248, 247, 249, 248, 248, 250, 249, 248, 250, 249, 248, 250, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 249, 249, 247, 249, 249, 247, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 246, 244, 246, 246, 244, 246, 246, 244, 245, 245, 243, 245, 245, 243, 245, 245, 243, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 240, 239, 235, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 242, 243, 238, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 249, 251, 250, 249, 251, 250, 249, 251, 250, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 246, 245, 240, 242, 241, 239, 241, 240, 239, 241, 240, 239, 241, 240, 238, 240, 239, 238, 240, 239, 238, 240, 239, 238, 240, 239, 239, 241, 240, 239, 241, 240, 238, 240, 239, 237, 239, 238, 236, 238, 237, 233, 235, 234, 231, 233, 232, 230, 232, 231, 225, 229, 230, 224, 228, 229, 222, 226, 227, 219, 223, 224, 216, 220, 221, 214, 218, 219, 214, 215, 217, 213, 214, 216, 210, 211, 213, 207, 208, 210, 203, 204, 206, 201, 202, 204, 201, 201, 203, 198, 198, 200, 195, 195, 197, 191, 191, 193, 191, 191, 191, 189, 189, 189, 185, 185, 185, 179, 179, 179, 175, 174, 172, 169, 168, 166, 165, 164, 162, 163, 162, 160, 159, 155, 154, 158, 154, 153, 158, 153, 150, 156, 151, 148, 157, 149, 147, 157, 149, 147, 157, 149, 147, 157, 149, 147, 157, 152, 149, 158, 153, 150, 158, 153, 150, 159, 154, 151, 158, 153, 150, 157, 152, 149, 156, 151, 148, 155, 150, 147, 153, 148, 145, 153, 148, 145, 154, 149, 146, 155, 150, 147, 155, 150, 147, 156, 151, 148, 157, 152, 149, 157, 152, 149, 157, 151, 151, 156, 150, 150, 154, 149, 146, 155, 150, 147, 157, 152, 149, 158, 153, 150, 159, 151, 149, 157, 149, 147, 153, 145, 142, 151, 143, 140, 147, 139, 136, 144, 136, 133, 143, 133, 131, 143, 133, 131, 143, 134, 129, 144, 135, 130, 149, 138, 134, 150, 139, 135, 152, 141, 137, 155, 144, 140, 158, 147, 143, 161, 150, 146, 162, 152, 150, 163, 153, 151, 164, 154, 152, 167, 157, 155, 169, 161, 158, 171, 163, 160, 171, 163, 161, 173, 165, 163, 176, 168, 166, 179, 171, 169, 179, 173, 173, 181, 177, 176, 186, 182, 183, 189, 187, 188, 192, 192, 194, 198, 198, 200, 204, 205, 210, 206, 209, 214, 215, 218, 223, 219, 222, 227, 225, 228, 235, 230, 233, 240, 232, 235, 240, 234, 237, 242, 236, 239, 244, 238, 241, 246, 239, 242, 247, 239, 242, 247, 240, 243, 248, 241, 244, 249, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 249, 252, 247, 248, 252, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 247, 248, 250, 247, 248, 250, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 250, 251, 253, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 249, 245, 246, 248, 245, 246, 248, 245, 246, 248, 244, 246, 245, 244, 246, 245, 243, 245, 244, 243, 245, 244, 242, 244, 243, 242, 244, 243, 242, 244, 243, 242, 244, 243, 242, 244, 243, 242, 244, 243, 243, 245, 244, 243, 245, 244, 243, 245, 244, 244, 246, 245, 244, 246, 245, 244, 246, 245, 243, 245, 244, 244, 246, 245, 244, 246, 245, 244, 246, 245, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 248, 247, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 248, 247, 246, 248, 247, 246, 248, 247, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 247, 249, 248, 247, 249, 248, 248, 250, 249, 248, 250, 249, 248, 250, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 249, 249, 247, 249, 249, 247, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 246, 244, 246, 246, 244, 246, 246, 244, 245, 245, 243, 245, 245, 243, 245, 245, 243, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 241, 240, 238, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 249, 251, 250, 249, 251, 250, 249, 251, 250, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 245, 247, 246, 244, 246, 245, 240, 242, 241, 240, 242, 241, 240, 242, 241, 239, 241, 240, 239, 241, 240, 238, 240, 239, 238, 240, 239, 238, 240, 239, 238, 240, 239, 238, 240, 239, 238, 240, 239, 237, 239, 238, 236, 238, 237, 234, 236, 235, 232, 234, 233, 231, 233, 232, 224, 228, 229, 223, 227, 228, 221, 225, 226, 219, 223, 224, 216, 220, 221, 214, 218, 219, 214, 215, 217, 213, 214, 216, 213, 214, 216, 209, 210, 212, 205, 206, 208, 202, 203, 205, 202, 202, 204, 199, 199, 201, 195, 195, 197, 191, 191, 193, 191, 191, 191, 188, 188, 188, 184, 184, 184, 178, 178, 178, 173, 172, 170, 168, 167, 165, 163, 162, 160, 161, 160, 158, 161, 157, 156, 159, 155, 154, 158, 153, 150, 156, 151, 148, 156, 148, 146, 155, 147, 145, 155, 147, 145, 155, 147, 145, 157, 152, 149, 158, 153, 150, 158, 153, 150, 159, 154, 151, 158, 153, 150, 157, 152, 149, 156, 151, 148, 155, 150, 147, 153, 148, 145, 153, 148, 145, 154, 149, 146, 155, 150, 147, 156, 151, 148, 157, 152, 149, 158, 153, 150, 158, 153, 150, 158, 152, 152, 156, 150, 150, 155, 150, 147, 155, 150, 147, 157, 152, 149, 157, 152, 149, 158, 150, 148, 156, 148, 146, 154, 146, 143, 152, 144, 141, 148, 140, 137, 144, 136, 133, 143, 133, 131, 141, 131, 129, 141, 132, 127, 142, 133, 128, 150, 139, 135, 151, 140, 136, 153, 142, 138, 156, 145, 141, 158, 147, 143, 161, 150, 146, 162, 152, 150, 163, 153, 151, 164, 154, 152, 167, 157, 155, 169, 161, 158, 170, 162, 159, 171, 163, 161, 172, 164, 162, 175, 167, 165, 178, 170, 168, 179, 173, 173, 182, 176, 176, 186, 182, 183, 188, 186, 187, 192, 190, 193, 196, 196, 198, 202, 203, 208, 206, 207, 212, 213, 216, 221, 218, 221, 226, 224, 227, 234, 229, 232, 239, 231, 234, 239, 233, 236, 241, 236, 239, 244, 238, 241, 246, 239, 242, 247, 239, 242, 247, 240, 243, 248, 240, 243, 248, 241, 244, 249, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 249, 252, 247, 248, 252, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 247, 248, 250, 247, 248, 250, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 249, 245, 246, 248, 245, 246, 248, 245, 246, 248, 244, 246, 245, 244, 246, 245, 243, 245, 244, 243, 245, 244, 242, 244, 243, 242, 244, 243, 242, 244, 243, 242, 244, 243, 242, 244, 243, 242, 244, 243, 243, 245, 244, 243, 245, 244, 243, 245, 244, 244, 246, 245, 244, 246, 245, 244, 246, 245, 243, 245, 244, 244, 246, 245, 244, 246, 245, 244, 246, 245, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 248, 247, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 248, 247, 246, 248, 247, 246, 248, 247, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 247, 249, 248, 247, 249, 248, 248, 250, 249, 248, 250, 249, 248, 250, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 249, 249, 247, 249, 249, 247, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 246, 244, 246, 246, 244, 246, 246, 244, 245, 245, 243, 245, 245, 243, 245, 245, 243, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 244, 244, 242, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 241, 241, 239, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 243, 244, 239, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 249, 251, 250, 249, 251, 250, 249, 251, 250, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 245, 247, 246, 242, 244, 243, 242, 244, 243, 242, 244, 243, 242, 244, 243, 241, 243, 242, 241, 243, 242, 241, 243, 242, 240, 242, 241, 238, 240, 239, 238, 240, 239, 238, 240, 239, 238, 240, 239, 237, 239, 238, 235, 237, 236, 234, 236, 235, 232, 234, 233, 225, 229, 230, 224, 228, 229, 222, 226, 227, 219, 223, 224, 216, 220, 221, 214, 218, 219, 214, 215, 217, 213, 214, 216, 212, 213, 215, 209, 210, 212, 204, 205, 207, 202, 203, 205, 201, 201, 203, 198, 198, 200, 194, 194, 196, 190, 190, 192, 192, 192, 192, 189, 189, 189, 185, 185, 185, 180, 180, 180, 175, 174, 172, 170, 169, 167, 166, 165, 163, 164, 163, 161, 163, 159, 158, 161, 157, 156, 160, 155, 152, 157, 152, 149, 156, 148, 146, 155, 147, 145, 154, 146, 144, 154, 146, 144, 156, 151, 148, 157, 152, 149, 158, 153, 150, 158, 153, 150, 157, 152, 149, 156, 151, 148, 155, 150, 147, 154, 149, 146, 152, 147, 144, 153, 148, 145, 154, 149, 146, 155, 150, 147, 156, 151, 148, 158, 153, 150, 159, 154, 151, 159, 154, 151, 157, 153, 152, 155, 151, 150, 154, 149, 146, 155, 150, 147, 156, 151, 148, 156, 151, 148, 154, 149, 146, 152, 147, 144, 154, 146, 143, 152, 144, 141, 148, 140, 137, 145, 137, 134, 142, 134, 131, 141, 133, 130, 142, 133, 128, 142, 133, 128, 151, 140, 136, 152, 141, 137, 154, 143, 139, 156, 145, 141, 158, 147, 143, 160, 149, 145, 161, 151, 149, 162, 152, 150, 163, 153, 151, 166, 156, 154, 168, 160, 157, 170, 162, 159, 170, 162, 160, 172, 164, 162, 175, 167, 165, 178, 170, 168, 178, 172, 172, 181, 175, 175, 185, 181, 182, 187, 185, 186, 190, 188, 191, 194, 194, 196, 200, 201, 206, 204, 205, 210, 211, 214, 219, 216, 219, 224, 223, 226, 233, 228, 231, 238, 230, 233, 238, 233, 236, 241, 238, 239, 244, 240, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 240, 243, 248, 241, 244, 249, 242, 245, 250, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 249, 252, 247, 248, 252, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 247, 248, 250, 247, 248, 250, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 249, 245, 246, 248, 245, 246, 248, 245, 246, 248, 244, 246, 245, 244, 246, 245, 243, 245, 244, 243, 245, 244, 242, 244, 243, 242, 244, 243, 242, 244, 243, 242, 244, 243, 242, 244, 243, 242, 244, 243, 243, 245, 244, 243, 245, 244, 243, 245, 244, 244, 246, 245, 244, 246, 245, 244, 246, 245, 243, 245, 244, 244, 246, 245, 244, 246, 245, 244, 246, 245, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 248, 247, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 248, 247, 246, 248, 247, 246, 248, 247, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 247, 249, 248, 247, 249, 248, 248, 250, 249, 248, 250, 249, 248, 250, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 249, 249, 247, 249, 249, 247, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 246, 244, 246, 246, 244, 246, 246, 244, 245, 245, 243, 245, 245, 243, 245, 245, 243, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 241, 240, 236, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 245, 244, 240, 245, 244, 240, 245, 244, 240, 245, 244, 240, 245, 244, 240, 245, 244, 240, 245, 244, 240, 245, 244, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 245, 246, 241, 245, 246, 241, 245, 246, 241, 245, 246, 241, 245, 246, 241, 245, 246, 241, 245, 246, 241, 245, 246, 241, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 249, 251, 250, 249, 251, 250, 249, 251, 250, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 245, 247, 246, 245, 247, 246, 244, 246, 245, 244, 246, 245, 244, 246, 245, 243, 245, 244, 243, 245, 244, 243, 245, 244, 242, 244, 243, 242, 244, 243, 238, 240, 239, 239, 241, 240, 239, 241, 240, 239, 241, 240, 238, 240, 239, 237, 239, 238, 236, 238, 237, 235, 237, 236, 228, 232, 233, 227, 231, 232, 224, 228, 229, 221, 225, 226, 217, 221, 222, 213, 217, 218, 213, 214, 216, 211, 212, 214, 208, 209, 211, 205, 206, 208, 201, 202, 204, 199, 200, 202, 198, 198, 200, 196, 196, 198, 192, 192, 194, 189, 189, 191, 194, 194, 194, 192, 192, 192, 188, 188, 188, 184, 184, 184, 180, 179, 177, 175, 174, 172, 172, 171, 169, 170, 169, 167, 166, 162, 161, 164, 160, 159, 162, 157, 154, 158, 153, 150, 157, 149, 147, 155, 147, 145, 154, 146, 144, 153, 145, 143, 155, 150, 147, 155, 150, 147, 156, 151, 148, 156, 151, 148, 156, 151, 148, 155, 150, 147, 154, 149, 146, 153, 148, 145, 151, 146, 143, 151, 146, 143, 153, 148, 145, 154, 149, 146, 156, 151, 148, 157, 152, 149, 159, 154, 151, 159, 154, 151, 157, 153, 152, 154, 150, 149, 153, 148, 145, 153, 148, 145, 154, 149, 146, 154, 149, 146, 152, 147, 144, 150, 145, 142, 154, 146, 143, 152, 144, 141, 149, 141, 138, 145, 137, 134, 143, 135, 132, 143, 135, 132, 144, 135, 130, 145, 136, 131, 151, 140, 136, 152, 141, 137, 154, 143, 139, 155, 144, 140, 157, 146, 142, 159, 148, 144, 160, 150, 148, 160, 150, 148, 163, 153, 151, 166, 156, 154, 168, 160, 157, 169, 161, 158, 170, 162, 160, 171, 163, 161, 175, 167, 165, 177, 169, 167, 178, 172, 172, 181, 175, 175, 184, 180, 181, 186, 184, 185, 189, 187, 190, 193, 193, 195, 198, 199, 204, 202, 203, 208, 209, 212, 217, 214, 217, 222, 220, 223, 230, 226, 229, 236, 229, 232, 237, 231, 234, 239, 236, 237, 242, 239, 240, 245, 238, 241, 246, 238, 241, 246, 239, 242, 247, 240, 243, 248, 240, 243, 248, 241, 244, 249, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 249, 252, 247, 248, 252, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 247, 248, 250, 247, 248, 250, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 249, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 249, 245, 246, 248, 245, 246, 248, 245, 246, 248, 244, 246, 245, 244, 246, 245, 243, 245, 244, 243, 245, 244, 242, 244, 243, 242, 244, 243, 242, 244, 243, 242, 244, 243, 242, 244, 243, 242, 244, 243, 243, 245, 244, 243, 245, 244, 243, 245, 244, 244, 246, 245, 244, 246, 245, 244, 246, 245, 243, 245, 244, 244, 246, 245, 244, 246, 245, 244, 246, 245, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 248, 247, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 248, 247, 246, 248, 247, 246, 248, 247, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 247, 249, 248, 247, 249, 248, 248, 250, 249, 248, 250, 249, 248, 250, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 249, 249, 247, 249, 249, 247, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 246, 244, 246, 246, 244, 246, 246, 244, 245, 245, 243, 245, 245, 243, 245, 245, 243, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 242, 241, 239, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 245, 244, 240, 245, 244, 240, 245, 244, 240, 245, 244, 240, 245, 244, 240, 245, 244, 240, 245, 244, 240, 245, 244, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 245, 246, 241, 245, 246, 241, 245, 246, 241, 245, 246, 241, 245, 246, 241, 245, 246, 241, 245, 246, 241, 245, 246, 241, 245, 246, 241, 245, 246, 241, 245, 246, 241, 245, 246, 241, 245, 246, 241, 245, 246, 241, 245, 246, 241, 245, 246, 241, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 249, 251, 250, 249, 251, 250, 249, 251, 250, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 246, 248, 247, 244, 246, 245, 244, 246, 245, 244, 246, 245, 243, 245, 244, 243, 245, 244, 242, 244, 243, 242, 244, 243, 242, 244, 243, 239, 241, 240, 240, 242, 241, 240, 242, 241, 241, 243, 242, 240, 242, 241, 239, 241, 240, 238, 240, 239, 237, 239, 238, 232, 236, 237, 230, 234, 235, 227, 231, 232, 223, 227, 228, 218, 222, 223, 213, 217, 218, 212, 213, 215, 210, 211, 213, 202, 203, 205, 199, 200, 202, 196, 197, 199, 195, 196, 198, 195, 195, 197, 194, 194, 196, 190, 190, 192, 188, 188, 190, 191, 191, 191, 190, 190, 190, 187, 187, 187, 183, 183, 183, 181, 180, 178, 177, 176, 174, 174, 173, 171, 173, 172, 170, 168, 164, 163, 166, 162, 161, 164, 159, 156, 160, 155, 152, 158, 150, 148, 155, 147, 145, 154, 146, 144, 153, 145, 143, 153, 148, 145, 154, 149, 146, 155, 150, 147, 155, 150, 147, 154, 149, 146, 153, 148, 145, 152, 147, 144, 151, 146, 143, 149, 144, 141, 150, 145, 142, 151, 146, 143, 153, 148, 145, 155, 150, 147, 157, 152, 149, 158, 153, 150, 159, 154, 151, 156, 152, 151, 153, 149, 148, 151, 147, 144, 151, 147, 144, 153, 148, 145, 152, 147, 144, 150, 145, 142, 148, 143, 140, 153, 145, 142, 151, 143, 140, 149, 141, 138, 146, 138, 135, 145, 137, 134, 145, 137, 134, 146, 139, 133, 148, 139, 134, 151, 140, 136, 152, 141, 137, 153, 142, 138, 155, 144, 140, 156, 145, 141, 158, 147, 143, 158, 148, 146, 159, 149, 147, 163, 153, 151, 165, 155, 153, 168, 160, 157, 169, 161, 158, 170, 162, 160, 171, 163, 161, 174, 166, 164, 177, 169, 167, 178, 172, 172, 181, 175, 175, 184, 180, 181, 185, 183, 184, 188, 186, 189, 192, 192, 194, 197, 198, 203, 201, 202, 207, 206, 209, 214, 211, 214, 219, 218, 221, 228, 224, 227, 234, 227, 230, 235, 230, 233, 238, 235, 236, 241, 238, 239, 244, 238, 241, 246, 238, 241, 246, 239, 242, 247, 239, 242, 247, 240, 243, 248, 241, 244, 249, 242, 245, 250, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 249, 252, 247, 248, 252, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 243, 247, 250, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 246, 247, 251, 247, 248, 252, 247, 248, 252, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 248, 249, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 247, 248, 250, 247, 248, 250, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 247, 248, 250, 246, 247, 249, 246, 247, 249, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 252, 247, 248, 252, 246, 247, 251, 246, 247, 251, 246, 247, 249, 245, 246, 248, 245, 246, 248, 245, 246, 248, 244, 246, 245, 244, 246, 245, 243, 245, 244, 243, 245, 244, 242, 244, 243, 242, 244, 243, 242, 244, 243, 242, 244, 243, 242, 244, 243, 242, 244, 243, 243, 245, 244, 243, 245, 244, 243, 245, 244, 244, 246, 245, 244, 246, 245, 244, 246, 245, 243, 245, 244, 244, 246, 245, 244, 246, 245, 244, 246, 245, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 248, 247, 245, 247, 246, 245, 247, 246, 245, 247, 246, 246, 248, 247, 246, 248, 247, 246, 248, 247, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 247, 249, 248, 247, 249, 248, 248, 250, 249, 248, 250, 249, 248, 250, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 249, 249, 247, 250, 250, 248, 250, 250, 248, 249, 249, 247, 249, 249, 247, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 246, 244, 246, 246, 244, 246, 246, 244, 245, 245, 243, 245, 245, 243, 245, 245, 243, 244, 244, 242, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 245, 245, 243, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 243, 243, 241, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 242, 242, 240, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 242, 241, 237, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 240, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 243, 242, 238, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 244, 243, 239, 245, 244, 240, 245, 244, 240, 245, 244, 240, 245, 244, 240, 245, 244, 240, 245, 244, 240, 245, 244, 240, 245, 244, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 244, 245, 240, 245, 246, 241, 245, 246, 241, 245, 246, 241, 245, 246, 241, 245, 246, 241, 245, 246, 241, 245, 246, 241, 245, 246, 241, 245, 246, 241, 245, 246, 241, 245, 246, 241, 245, 246, 241, 245, 246, 241, 245, 246, 241, 245, 246, 241, 245, 246, 241, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 246, 246, 244, 247, 247, 245, 247, 247, 245, 247, 247, 245, 248, 248, 246, 248, 248, 246, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 247, 247, 245, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 250, 250, 248, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 250, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 253, 253, 253, 253, 253, 253, 252, 252, 252, 252, 252, 252, 252, 252, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 251, 251, 249, 249, 251, 250, 249, 251, 250, 249, 251, 250, 248, 250, 249, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 248, 250, 249, 248, 250, 249, 247, 249, 248, 247, 249, 248, 247, 249, 248, 246, 248, 247, 246, 248, 247, 246, 248, 247, 243, 245, 244, 243, 245, 244, 243, 245, 244, 242, 244, 243, 242, 244, 243, 242, 244, 243, 241, 243, 242, 241, 243, 242, 240, 242, 241, 241, 243, 242, 241, 243, 242, 242, 244, 243, 241, 243, 242, 240, 242, 241, 239, 241, 240, 238, 240, 239, 235, 239, 240, 233, 237, 238, 229, 233, 234, 224, 228, 229, 218, 222, 223, 213, 217, 218, 211, 212, 214, 209, 210, 212, 198, 199, 201, 196, 197, 199, 193, 194, 196, 192, 193, 195, 193, 193, 195, 192, 192, 194, 189, 189, 191, 187, 187, 189, 186, 186, 186, 185, 185, 185, 183, 183, 183, 180, 180, 180, 178, 177, 175, 175, 174, 172, 173, 172, 170, 171, 170, 168, 169, 165, 164, 167, 163, 162, 165, 160, 157, 161, 156, 153, 159, 151, 149, 156, 148, 146, 154, 146, 144, 153, 145, 143, 152, 147, 144, 153, 148, 145, 154, 149, 146, 154, 149, 146, 153, 148, 145, 152, 147, 144, 151, 146, 143, 150, 145, 142, 148, 143, 140, 149, 144, 141, 150, 145, 142, 152, 147, 144, 154, 149, 146, 156, 151, 148, 158, 153, 150, 159, 154, 151, 155, 151, 150, 153, 149, 148, 150, 146, 143, 150, 146, 143, 152, 147, 144, 151, 146, 143, 149, 144, 141, 147, 142, 139, 153, 145, 142, 151, 143, 140, 149, 141, 138, 147, 139, 136, 146, 138, 135, 147, 139, 136, 148, 141, 135, 149, 142, 136, 151, 140, 136, 151, 140, 136, 153, 142, 138, 154, 143, 139, 156, 145, 141, 157, 146, 142, 157, 147, 145, 158, 148, 146, 163, 153, 151, 165, 155, 153, 167, 159, 156, 169, 161, 158, 169, 161, 159, 171, 163, 161, 174, 166, 164, 177, 169, 167, 177, 171, 171, 180, 174, 174, 183, 179, 180, 184, 182, 183, 187, 185, 188, 191, 191, 193, 196, 197, 202, 200, 201, 206, 205, 208, 213, 210, 213, 218, 217, 220, 227, 223, 226, 233, 226, 229, 234, 229, 232, 237, 234, 235, 240, 237, 238, 243, 238, 241, 246, 238, 241, 246, 238, 241, 246, 239, 242, 247, 240, 243, 248, 241, 244, 249, 241, 244, 249, 242, 245, 250, 243, 246, 251, 243, 246, 251, 243, 246, 251, 244, 247, 252, 244, 247, 252, 244, 247, 252, 245, 248, 253, 245, 249, 252, 247, 248, 252, 247, 248, 250, 247, 248, 250, 247, 248, 250, 248, 249, 251, 248, 249, 251, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 249, 250, 252, 248, 249, 251, 248, 249, 251, 248, 249, 251, 247, 248, 250, 247, 248, 250, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 245, 249, 252, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 246, 250, 253, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251, 244, 248, 251]);
        exports.mobilenetInputData = mobilenetInputData;

    }
        , {}],
    3: [function (require, module, exports) {
        /**
         * @license
         * Copyright 2021 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        !function (e, a) {
            "object" == typeof exports && "undefined" != typeof module ? a(exports, require("@tensorflow/tfjs-converter"), require("@tensorflow/tfjs-core")) : "function" == typeof define && define.amd ? define(["exports", "@tensorflow/tfjs-converter", "@tensorflow/tfjs-core"], a) : a((e = e || self).cocoSsd = e.cocoSsd || {}, e.tf, e.tf)
        }(this, (function (e, a, m) {
            "use strict";
            const i = {
                1: {
                    name: "/m/01g317",
                    id: 1,
                    displayName: "person"
                },
                2: {
                    name: "/m/0199g",
                    id: 2,
                    displayName: "bicycle"
                },
                3: {
                    name: "/m/0k4j",
                    id: 3,
                    displayName: "car"
                },
                4: {
                    name: "/m/04_sv",
                    id: 4,
                    displayName: "motorcycle"
                },
                5: {
                    name: "/m/05czz6l",
                    id: 5,
                    displayName: "airplane"
                },
                6: {
                    name: "/m/01bjv",
                    id: 6,
                    displayName: "bus"
                },
                7: {
                    name: "/m/07jdr",
                    id: 7,
                    displayName: "train"
                },
                8: {
                    name: "/m/07r04",
                    id: 8,
                    displayName: "truck"
                },
                9: {
                    name: "/m/019jd",
                    id: 9,
                    displayName: "boat"
                },
                10: {
                    name: "/m/015qff",
                    id: 10,
                    displayName: "traffic light"
                },
                11: {
                    name: "/m/01pns0",
                    id: 11,
                    displayName: "fire hydrant"
                },
                13: {
                    name: "/m/02pv19",
                    id: 13,
                    displayName: "stop sign"
                },
                14: {
                    name: "/m/015qbp",
                    id: 14,
                    displayName: "parking meter"
                },
                15: {
                    name: "/m/0cvnqh",
                    id: 15,
                    displayName: "bench"
                },
                16: {
                    name: "/m/015p6",
                    id: 16,
                    displayName: "bird"
                },
                17: {
                    name: "/m/01yrx",
                    id: 17,
                    displayName: "cat"
                },
                18: {
                    name: "/m/0bt9lr",
                    id: 18,
                    displayName: "dog"
                },
                19: {
                    name: "/m/03k3r",
                    id: 19,
                    displayName: "horse"
                },
                20: {
                    name: "/m/07bgp",
                    id: 20,
                    displayName: "sheep"
                },
                21: {
                    name: "/m/01xq0k1",
                    id: 21,
                    displayName: "cow"
                },
                22: {
                    name: "/m/0bwd_0j",
                    id: 22,
                    displayName: "elephant"
                },
                23: {
                    name: "/m/01dws",
                    id: 23,
                    displayName: "bear"
                },
                24: {
                    name: "/m/0898b",
                    id: 24,
                    displayName: "zebra"
                },
                25: {
                    name: "/m/03bk1",
                    id: 25,
                    displayName: "giraffe"
                },
                27: {
                    name: "/m/01940j",
                    id: 27,
                    displayName: "backpack"
                },
                28: {
                    name: "/m/0hnnb",
                    id: 28,
                    displayName: "umbrella"
                },
                31: {
                    name: "/m/080hkjn",
                    id: 31,
                    displayName: "handbag"
                },
                32: {
                    name: "/m/01rkbr",
                    id: 32,
                    displayName: "tie"
                },
                33: {
                    name: "/m/01s55n",
                    id: 33,
                    displayName: "suitcase"
                },
                34: {
                    name: "/m/02wmf",
                    id: 34,
                    displayName: "frisbee"
                },
                35: {
                    name: "/m/071p9",
                    id: 35,
                    displayName: "skis"
                },
                36: {
                    name: "/m/06__v",
                    id: 36,
                    displayName: "snowboard"
                },
                37: {
                    name: "/m/018xm",
                    id: 37,
                    displayName: "sports ball"
                },
                38: {
                    name: "/m/02zt3",
                    id: 38,
                    displayName: "kite"
                },
                39: {
                    name: "/m/03g8mr",
                    id: 39,
                    displayName: "baseball bat"
                },
                40: {
                    name: "/m/03grzl",
                    id: 40,
                    displayName: "baseball glove"
                },
                41: {
                    name: "/m/06_fw",
                    id: 41,
                    displayName: "skateboard"
                },
                42: {
                    name: "/m/019w40",
                    id: 42,
                    displayName: "surfboard"
                },
                43: {
                    name: "/m/0dv9c",
                    id: 43,
                    displayName: "tennis racket"
                },
                44: {
                    name: "/m/04dr76w",
                    id: 44,
                    displayName: "bottle"
                },
                46: {
                    name: "/m/09tvcd",
                    id: 46,
                    displayName: "wine glass"
                },
                47: {
                    name: "/m/08gqpm",
                    id: 47,
                    displayName: "cup"
                },
                48: {
                    name: "/m/0dt3t",
                    id: 48,
                    displayName: "fork"
                },
                49: {
                    name: "/m/04ctx",
                    id: 49,
                    displayName: "knife"
                },
                50: {
                    name: "/m/0cmx8",
                    id: 50,
                    displayName: "spoon"
                },
                51: {
                    name: "/m/04kkgm",
                    id: 51,
                    displayName: "bowl"
                },
                52: {
                    name: "/m/09qck",
                    id: 52,
                    displayName: "banana"
                },
                53: {
                    name: "/m/014j1m",
                    id: 53,
                    displayName: "apple"
                },
                54: {
                    name: "/m/0l515",
                    id: 54,
                    displayName: "sandwich"
                },
                55: {
                    name: "/m/0cyhj_",
                    id: 55,
                    displayName: "orange"
                },
                56: {
                    name: "/m/0hkxq",
                    id: 56,
                    displayName: "broccoli"
                },
                57: {
                    name: "/m/0fj52s",
                    id: 57,
                    displayName: "carrot"
                },
                58: {
                    name: "/m/01b9xk",
                    id: 58,
                    displayName: "hot dog"
                },
                59: {
                    name: "/m/0663v",
                    id: 59,
                    displayName: "pizza"
                },
                60: {
                    name: "/m/0jy4k",
                    id: 60,
                    displayName: "donut"
                },
                61: {
                    name: "/m/0fszt",
                    id: 61,
                    displayName: "cake"
                },
                62: {
                    name: "/m/01mzpv",
                    id: 62,
                    displayName: "chair"
                },
                63: {
                    name: "/m/02crq1",
                    id: 63,
                    displayName: "couch"
                },
                64: {
                    name: "/m/03fp41",
                    id: 64,
                    displayName: "potted plant"
                },
                65: {
                    name: "/m/03ssj5",
                    id: 65,
                    displayName: "bed"
                },
                67: {
                    name: "/m/04bcr3",
                    id: 67,
                    displayName: "dining table"
                },
                70: {
                    name: "/m/09g1w",
                    id: 70,
                    displayName: "toilet"
                },
                72: {
                    name: "/m/07c52",
                    id: 72,
                    displayName: "tv"
                },
                73: {
                    name: "/m/01c648",
                    id: 73,
                    displayName: "laptop"
                },
                74: {
                    name: "/m/020lf",
                    id: 74,
                    displayName: "mouse"
                },
                75: {
                    name: "/m/0qjjc",
                    id: 75,
                    displayName: "remote"
                },
                76: {
                    name: "/m/01m2v",
                    id: 76,
                    displayName: "keyboard"
                },
                77: {
                    name: "/m/050k8",
                    id: 77,
                    displayName: "cell phone"
                },
                78: {
                    name: "/m/0fx9l",
                    id: 78,
                    displayName: "microwave"
                },
                79: {
                    name: "/m/029bxz",
                    id: 79,
                    displayName: "oven"
                },
                80: {
                    name: "/m/01k6s3",
                    id: 80,
                    displayName: "toaster"
                },
                81: {
                    name: "/m/0130jx",
                    id: 81,
                    displayName: "sink"
                },
                82: {
                    name: "/m/040b_t",
                    id: 82,
                    displayName: "refrigerator"
                },
                84: {
                    name: "/m/0bt_c3",
                    id: 84,
                    displayName: "book"
                },
                85: {
                    name: "/m/01x3z",
                    id: 85,
                    displayName: "clock"
                },
                86: {
                    name: "/m/02s195",
                    id: 86,
                    displayName: "vase"
                },
                87: {
                    name: "/m/01lsmm",
                    id: 87,
                    displayName: "scissors"
                },
                88: {
                    name: "/m/0kmg4",
                    id: 88,
                    displayName: "teddy bear"
                },
                89: {
                    name: "/m/03wvsk",
                    id: 89,
                    displayName: "hair drier"
                },
                90: {
                    name: "/m/012xff",
                    id: 90,
                    displayName: "toothbrush"
                }
            };
            class d {
                constructor(e, a) {
                    this.modelPath = a || `https://storage.googleapis.com/tfjs-models/savedmodel/${this.getPrefix(e)}/model.json`
                }
                getPrefix(e) {
                    return "lite_mobilenet_v2" === e ? `ssd${e}` : `ssd_${e}`
                }
                async load() {
                    this.model = await a.loadGraphModel(this.modelPath);
                    const e = m.zeros([1, 300, 300, 3], "int32")
                        , i = await this.model.executeAsync(e);
                    await Promise.all(i.map((e => e.data()))),
                        i.map((e => e.dispose())),
                        e.dispose()
                }
                async infer(e, a, i) {
                    const d = m.tidy((() => (e instanceof m.Tensor || (e = m.browser.fromPixels(e)),
                        m.expandDims(e))))
                        , s = d.shape[1]
                        , n = d.shape[2]
                        , l = await this.model.executeAsync(d)
                        , t = l[0].dataSync()
                        , o = l[1].dataSync();
                    d.dispose(),
                        m.dispose(l);
                    const [p, r] = this.calculateMaxScores(t, l[0].shape[1], l[0].shape[2])
                        , c = m.getBackend();
                    "webgl" === m.getBackend() && m.setBackend("cpu");
                    const y = m.tidy((() => {
                        const e = m.tensor2d(o, [l[1].shape[1], l[1].shape[3]]);
                        return m.image.nonMaxSuppression(e, p, a, i, i)
                    }
                    ))
                        , N = y.dataSync();
                    return y.dispose(),
                        c !== m.getBackend() && m.setBackend(c),
                        this.buildDetectedObjects(n, s, o, p, N, r)
                }
                buildDetectedObjects(e, a, m, d, s, n) {
                    const l = s.length
                        , t = [];
                    for (let o = 0; o < l; o++) {
                        const l = [];
                        for (let e = 0; e < 4; e++)
                            l[e] = m[4 * s[o] + e];
                        const p = l[0] * a
                            , r = l[1] * e
                            , c = l[2] * a
                            , y = l[3] * e;
                        l[0] = r,
                            l[1] = p,
                            l[2] = y - r,
                            l[3] = c - p,
                            t.push({
                                bbox: l,
                                class: i[n[s[o]] + 1].displayName,
                                score: d[s[o]]
                            })
                    }
                    return t
                }
                calculateMaxScores(e, a, m) {
                    const i = []
                        , d = [];
                    for (let s = 0; s < a; s++) {
                        let a = Number.MIN_VALUE
                            , n = -1;
                        for (let i = 0; i < m; i++)
                            e[s * m + i] > a && (a = e[s * m + i],
                                n = i);
                        i[s] = a,
                            d[s] = n
                    }
                    return [i, d]
                }
                async detect(e, a = 20, m = .5) {
                    return this.infer(e, a, m)
                }
                dispose() {
                    null != this.model && this.model.dispose()
                }
            }
            e.ObjectDetection = d,
                e.load = async function (e = {}) {
                    if (null == m)
                        throw new Error("Cannot find TensorFlow.js. If you are using a <script> tag, please also include @tensorflow/tfjs on the page before using this model.");
                    const a = e.base || "lite_mobilenet_v2"
                        , i = e.modelUrl;
                    if (-1 === ["mobilenet_v1", "mobilenet_v2", "lite_mobilenet_v2"].indexOf(a))
                        throw new Error(`ObjectDetection constructed with invalid base model ${a}. Valid names are 'mobilenet_v1', 'mobilenet_v2' and 'lite_mobilenet_v2'.`);
                    const s = new d(a, i);
                    return await s.load(),
                        s
                }
                ,
                e.version = "2.2.2",
                Object.defineProperty(e, "__esModule", {
                    value: !0
                })
        }
        ));

    }
        , {
        "@tensorflow/tfjs-converter": 21,
        "@tensorflow/tfjs-core": 506
    }],
    4: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.KNNClassifier = void 0;
        exports.create = create;
        exports.version = void 0;
        var _tfjsCore = require("@tensorflow/tfjs-core");
        /**
            * @license
            * Copyright 2022 Google LLC. All Rights Reserved.
            * Licensed under the Apache License, Version 2.0 (the "License");
            * you may not use this file except in compliance with the License.
            * You may obtain a copy of the License at
            *
            * http://www.apache.org/licenses/LICENSE-2.0
            *
            * Unless required by applicable law or agreed to in writing, software
            * distributed under the License is distributed on an "AS IS" BASIS,
            * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
            * See the License for the specific language governing permissions and
            * limitations under the License.
            * =============================================================================
            */

        /*! *****************************************************************************
        Copyright (c) Microsoft Corporation.
        
        Permission to use, copy, modify, and/or distribute this software for any
        purpose with or without fee is hereby granted.
        
        THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
        REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
        AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
        INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
        LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
        OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
        PERFORMANCE OF THIS SOFTWARE.
        ***************************************************************************** */

        function __awaiter(thisArg, _arguments, P, generator) {
            function adopt(value) {
                return value instanceof P ? value : new P(function (resolve) {
                    resolve(value);
                }
                );
            }
            return new (P || (P = Promise))(function (resolve, reject) {
                function fulfilled(value) {
                    try {
                        step(generator.next(value));
                    } catch (e) {
                        reject(e);
                    }
                }
                function rejected(value) {
                    try {
                        step(generator["throw"](value));
                    } catch (e) {
                        reject(e);
                    }
                }
                function step(result) {
                    result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
                }
                step((generator = generator.apply(thisArg, _arguments || [])).next());
            }
            );
        }
        function __generator(thisArg, body) {
            var _ = {
                label: 0,
                sent: function () {
                    if (t[0] & 1)
                        throw t[1];
                    return t[1];
                },
                trys: [],
                ops: []
            }, f, y, t, g;
            return g = {
                next: verb(0),
                "throw": verb(1),
                "return": verb(2)
            },
                typeof Symbol === "function" && (g[Symbol.iterator] = function () {
                    return this;
                }
                ),
                g;
            function verb(n) {
                return function (v) {
                    return step([n, v]);
                }
                    ;
            }
            function step(op) {
                if (f)
                    throw new TypeError("Generator is already executing.");
                while (_)
                    try {
                        if (f = 1,
                            y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y),
                                0) : y.next) && !(t = t.call(y, op[1])).done)
                            return t;
                        if (y = 0,
                            t)
                            op = [op[0] & 2, t.value];
                        switch (op[0]) {
                            case 0:
                            case 1:
                                t = op;
                                break;
                            case 4:
                                _.label++;
                                return {
                                    value: op[1],
                                    done: false
                                };
                            case 5:
                                _.label++;
                                y = op[1];
                                op = [0];
                                continue;
                            case 7:
                                op = _.ops.pop();
                                _.trys.pop();
                                continue;
                            default:
                                if (!(t = _.trys,
                                    t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
                                    _ = 0;
                                    continue;
                                }
                                if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
                                    _.label = op[1];
                                    break;
                                }
                                if (op[0] === 6 && _.label < t[1]) {
                                    _.label = t[1];
                                    t = op;
                                    break;
                                }
                                if (t && _.label < t[2]) {
                                    _.label = t[2];
                                    _.ops.push(op);
                                    break;
                                }
                                if (t[2])
                                    _.ops.pop();
                                _.trys.pop();
                                continue;
                        }
                        op = body.call(thisArg, _);
                    } catch (e) {
                        op = [6, e];
                        y = 0;
                    } finally {
                        f = t = 0;
                    }
                if (op[0] & 5)
                    throw op[1];
                return {
                    value: op[0] ? op[1] : void 0,
                    done: true
                };
            }
        }

        /**
         * @license
         * Copyright 2019 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function concatWithNulls(ndarray1, ndarray2) {
            if (ndarray1 == null && ndarray2 == null) {
                return null;
            }
            if (ndarray1 == null) {
                return ndarray2.clone();
            } else if (ndarray2 === null) {
                return ndarray1.clone();
            }
            return (0,
                _tfjsCore.concat)([ndarray1, ndarray2], 0);
        }
        function topK(values, k) {
            var valuesAndIndices = [];
            for (var i = 0; i < values.length; i++) {
                valuesAndIndices.push({
                    value: values[i],
                    index: i
                });
            }
            valuesAndIndices.sort(function (a, b) {
                return b.value - a.value;
            });
            var topkValues = new Float32Array(k);
            var topkIndices = new Int32Array(k);
            for (var i = 0; i < k; i++) {
                topkValues[i] = valuesAndIndices[i].value;
                topkIndices[i] = valuesAndIndices[i].index;
            }
            return {
                values: topkValues,
                indices: topkIndices
            };
        }

        /** @license See the LICENSE file. */
        // This code is auto-generated, do not modify this file!
        var version = '1.2.4';

        /**
         * A K-nearest neighbors (KNN) classifier that allows fast
         * custom model training on top of any tensor input. Useful for transfer
         * learning with an embedding from another pretrained model.
         */
        exports.version = version;
        var KNNClassifier = /** @class */
            function () {
                function KNNClassifier() {
                    // Individual class datasets used when adding examples. These get concatenated
                    // into the full trainDatasetMatrix when a prediction is made.
                    this.classDatasetMatrices = {};
                    this.classExampleCount = {};
                    this.labelToClassId = {};
                    this.nextClassId = 0;
                }
                /**
                 * Adds the provided example to the specified class.
                 */
                KNNClassifier.prototype.addExample = function (example, label) {
                    var _this = this;
                    if (this.exampleShape == null) {
                        this.exampleShape = example.shape;
                    }
                    if (!_tfjsCore.util.arraysEqual(this.exampleShape, example.shape)) {
                        throw new Error("Example shape provided, " + example.shape + " does not match " + ("previously provided example shapes " + this.exampleShape + "."));
                    }
                    this.clearTrainDatasetMatrix();
                    if (!(label in this.labelToClassId)) {
                        this.labelToClassId[label] = this.nextClassId++;
                    }
                    (0,
                        _tfjsCore.tidy)(function () {
                            var normalizedExample = _this.normalizeVectorToUnitLength((0,
                                _tfjsCore.reshape)(example, [example.size]));
                            var exampleSize = normalizedExample.shape[0];
                            if (_this.classDatasetMatrices[label] == null) {
                                _this.classDatasetMatrices[label] = (0,
                                    _tfjsCore.reshape)(normalizedExample, [1, exampleSize]);
                            } else {
                                var newTrainLogitsMatrix = (0,
                                    _tfjsCore.concat)([(0,
                                        _tfjsCore.reshape)(_this.classDatasetMatrices[label], [_this.classExampleCount[label], exampleSize]), (0,
                                            _tfjsCore.reshape)(normalizedExample, [1, exampleSize])], 0);
                                _this.classDatasetMatrices[label].dispose();
                                _this.classDatasetMatrices[label] = newTrainLogitsMatrix;
                            }
                            (0,
                                _tfjsCore.keep)(_this.classDatasetMatrices[label]);
                            if (_this.classExampleCount[label] == null) {
                                _this.classExampleCount[label] = 0;
                            }
                            _this.classExampleCount[label]++;
                        });
                }
                    ;
                /**
                 * This method return distances between the input and all examples in the
                 * dataset.
                 *
                 * @param input The input example.
                 * @returns cosine similarities for each entry in the database.
                 */
                KNNClassifier.prototype.similarities = function (input) {
                    var _this = this;
                    return (0,
                        _tfjsCore.tidy)(function () {
                            var normalizedExample = _this.normalizeVectorToUnitLength((0,
                                _tfjsCore.reshape)(input, [input.size]));
                            var exampleSize = normalizedExample.shape[0];
                            // Lazily create the logits matrix for all training examples if necessary.
                            if (_this.trainDatasetMatrix == null) {
                                var newTrainLogitsMatrix = null;
                                for (var label in _this.classDatasetMatrices) {
                                    newTrainLogitsMatrix = concatWithNulls(newTrainLogitsMatrix, _this.classDatasetMatrices[label]);
                                }
                                _this.trainDatasetMatrix = newTrainLogitsMatrix;
                            }
                            if (_this.trainDatasetMatrix == null) {
                                console.warn('Cannot predict without providing training examples.');
                                return null;
                            }
                            (0,
                                _tfjsCore.keep)(_this.trainDatasetMatrix);
                            var numExamples = _this.getNumExamples();
                            return (0,
                                _tfjsCore.reshape)((0,
                                    _tfjsCore.matMul)((0,
                                        _tfjsCore.reshape)(_this.trainDatasetMatrix, [numExamples, exampleSize]), (0,
                                            _tfjsCore.reshape)(normalizedExample, [exampleSize, 1])), [numExamples]);
                        });
                }
                    ;
                /**
                 * Predicts the class of the provided input using KNN from the previously-
                 * added inputs and their classes.
                 *
                 * @param input The input to predict the class for.
                 * @returns A dict of the top class for the input and an array of confidence
                 * values for all possible classes.
                 */
                KNNClassifier.prototype.predictClass = function (input, k) {
                    if (k === void 0) {
                        k = 3;
                    }
                    return __awaiter(this, void 0, void 0, function () {
                        var knn, kVal, topKIndices, _a;
                        var _this = this;
                        return __generator(this, function (_b) {
                            switch (_b.label) {
                                case 0:
                                    if (k < 1) {
                                        throw new Error("Please provide a positive integer k value to predictClass.");
                                    }
                                    if (this.getNumExamples() === 0) {
                                        throw new Error("You have not added any examples to the KNN classifier. " + "Please add examples before calling predictClass.");
                                    }
                                    knn = (0,
                                        _tfjsCore.tidy)(function () {
                                            return (0,
                                                _tfjsCore.cast)(_this.similarities(input), 'float32');
                                        });
                                    kVal = Math.min(k, this.getNumExamples());
                                    _a = topK;
                                    return [4 /*yield*/
                                        , knn.data()];
                                case 1:
                                    topKIndices = _a.apply(void 0, [_b.sent(), kVal]).indices;
                                    knn.dispose();
                                    return [2 /*return*/
                                        , this.calculateTopClass(topKIndices, kVal)];
                            }
                        });
                    });
                }
                    ;
                /**
                 * Clears the saved examples from the specified class.
                 */
                KNNClassifier.prototype.clearClass = function (label) {
                    if (this.classDatasetMatrices[label] == null) {
                        throw new Error("Cannot clear invalid class " + label);
                    }
                    this.classDatasetMatrices[label].dispose();
                    delete this.classDatasetMatrices[label];
                    delete this.classExampleCount[label];
                    this.clearTrainDatasetMatrix();
                }
                    ;
                KNNClassifier.prototype.clearAllClasses = function () {
                    for (var label in this.classDatasetMatrices) {
                        this.clearClass(label);
                    }
                }
                    ;
                KNNClassifier.prototype.getClassExampleCount = function () {
                    return this.classExampleCount;
                }
                    ;
                KNNClassifier.prototype.getClassifierDataset = function () {
                    return this.classDatasetMatrices;
                }
                    ;
                KNNClassifier.prototype.getNumClasses = function () {
                    return Object.keys(this.classExampleCount).length;
                }
                    ;
                KNNClassifier.prototype.setClassifierDataset = function (classDatasetMatrices) {
                    this.clearTrainDatasetMatrix();
                    this.classDatasetMatrices = classDatasetMatrices;
                    for (var label in classDatasetMatrices) {
                        this.classExampleCount[label] = classDatasetMatrices[label].shape[0];
                    }
                }
                    ;
                /**
                 * Calculates the top class in knn prediction
                 * @param topKIndices The indices of closest K values.
                 * @param kVal The value of k for the k-nearest neighbors algorithm.
                 */
                KNNClassifier.prototype.calculateTopClass = function (topKIndices, kVal) {
                    var topLabel;
                    var confidences = {};
                    if (topKIndices == null) {
                        // No class predicted
                        return {
                            classIndex: this.labelToClassId[topLabel],
                            label: topLabel,
                            confidences: confidences
                        };
                    }
                    var classOffsets = {};
                    var offset = 0;
                    for (var label in this.classDatasetMatrices) {
                        offset += this.classExampleCount[label];
                        classOffsets[label] = offset;
                    }
                    var votesPerClass = {};
                    for (var label in this.classDatasetMatrices) {
                        votesPerClass[label] = 0;
                    }
                    for (var i = 0; i < topKIndices.length; i++) {
                        var index = topKIndices[i];
                        for (var label in this.classDatasetMatrices) {
                            if (index < classOffsets[label]) {
                                votesPerClass[label]++;
                                break;
                            }
                        }
                    }
                    // Compute confidences.
                    var topConfidence = 0;
                    for (var label in this.classDatasetMatrices) {
                        var probability = votesPerClass[label] / kVal;
                        if (probability > topConfidence) {
                            topConfidence = probability;
                            topLabel = label;
                        }
                        confidences[label] = probability;
                    }
                    return {
                        classIndex: this.labelToClassId[topLabel],
                        label: topLabel,
                        confidences: confidences
                    };
                }
                    ;
                /**
                 * Clear the lazily-loaded train logits matrix due to a change in
                 * training data.
                 */
                KNNClassifier.prototype.clearTrainDatasetMatrix = function () {
                    if (this.trainDatasetMatrix != null) {
                        this.trainDatasetMatrix.dispose();
                        this.trainDatasetMatrix = null;
                    }
                }
                    ;
                /**
                 * Normalize the provided vector to unit length.
                 */
                KNNClassifier.prototype.normalizeVectorToUnitLength = function (vec) {
                    return (0,
                        _tfjsCore.tidy)(function () {
                            var sqrtSum = (0,
                                _tfjsCore.norm)(vec);
                            return (0,
                                _tfjsCore.div)(vec, sqrtSum);
                        });
                }
                    ;
                KNNClassifier.prototype.getNumExamples = function () {
                    var total = 0;
                    for (var label in this.classDatasetMatrices) {
                        total += this.classExampleCount[label];
                    }
                    return total;
                }
                    ;
                KNNClassifier.prototype.dispose = function () {
                    this.clearTrainDatasetMatrix();
                    for (var label in this.classDatasetMatrices) {
                        this.classDatasetMatrices[label].dispose();
                    }
                }
                    ;
                return KNNClassifier;
            }();
        exports.KNNClassifier = KNNClassifier;
        function create() {
            return new KNNClassifier();
        }

    }
        , {
        "@tensorflow/tfjs-core": 506
    }],
    5: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.load = load;
        exports.version = void 0;
        var _tfjsConverter = require("@tensorflow/tfjs-converter");
        var tf = _interopRequireWildcard(require("@tensorflow/tfjs-core"));
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
            * @license
            * Copyright 2021 Google LLC. All Rights Reserved.
            * Licensed under the Apache License, Version 2.0 (the "License");
            * you may not use this file except in compliance with the License.
            * You may obtain a copy of the License at
            *
            * http://www.apache.org/licenses/LICENSE-2.0
            *
            * Unless required by applicable law or agreed to in writing, software
            * distributed under the License is distributed on an "AS IS" BASIS,
            * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
            * See the License for the specific language governing permissions and
            * limitations under the License.
            * =============================================================================
            */
        function __awaiter(e, a, r, o) {
            return new (r || (r = Promise))(function (i, t) {
                function n(e) {
                    try {
                        s(o.next(e));
                    } catch (e) {
                        t(e);
                    }
                }
                function l(e) {
                    try {
                        s(o.throw(e));
                    } catch (e) {
                        t(e);
                    }
                }
                function s(e) {
                    e.done ? i(e.value) : new r(function (a) {
                        a(e.value);
                    }
                    ).then(n, l);
                }
                s((o = o.apply(e, a || [])).next());
            }
            );
        }
        function __generator(e, a) {
            var r, o, i, t, n = {
                label: 0,
                sent: function () {
                    if (1 & i[0])
                        throw i[1];
                    return i[1];
                },
                trys: [],
                ops: []
            };
            return t = {
                next: l(0),
                throw: l(1),
                return: l(2)
            },
                "function" == typeof Symbol && (t[Symbol.iterator] = function () {
                    return this;
                }
                ),
                t;
            function l(t) {
                return function (l) {
                    return function (t) {
                        if (r)
                            throw new TypeError("Generator is already executing.");
                        for (; n;)
                            try {
                                if (r = 1,
                                    o && (i = 2 & t[0] ? o.return : t[0] ? o.throw || ((i = o.return) && i.call(o),
                                        0) : o.next) && !(i = i.call(o, t[1])).done)
                                    return i;
                                switch (o = 0,
                                i && (t = [2 & t[0], i.value]),
                                t[0]) {
                                    case 0:
                                    case 1:
                                        i = t;
                                        break;
                                    case 4:
                                        return n.label++,
                                        {
                                            value: t[1],
                                            done: !1
                                        };
                                    case 5:
                                        n.label++,
                                            o = t[1],
                                            t = [0];
                                        continue;
                                    case 7:
                                        t = n.ops.pop(),
                                            n.trys.pop();
                                        continue;
                                    default:
                                        if (!(i = (i = n.trys).length > 0 && i[i.length - 1]) && (6 === t[0] || 2 === t[0])) {
                                            n = 0;
                                            continue;
                                        }
                                        if (3 === t[0] && (!i || t[1] > i[0] && t[1] < i[3])) {
                                            n.label = t[1];
                                            break;
                                        }
                                        if (6 === t[0] && n.label < i[1]) {
                                            n.label = i[1],
                                                i = t;
                                            break;
                                        }
                                        if (i && n.label < i[2]) {
                                            n.label = i[2],
                                                n.ops.push(t);
                                            break;
                                        }
                                        i[2] && n.ops.pop(),
                                            n.trys.pop();
                                        continue;
                                }
                                t = a.call(e, n);
                            } catch (e) {
                                t = [6, e],
                                    o = 0;
                            } finally {
                                r = i = 0;
                            }
                        if (5 & t[0])
                            throw t[1];
                        return {
                            value: t[0] ? t[1] : void 0,
                            done: !0
                        };
                    }([t, l]);
                }
                    ;
            }
        }
        var IMAGENET_CLASSES = {
            0: "tench, Tinca tinca",
            1: "goldfish, Carassius auratus",
            2: "great white shark, white shark, man-eater, man-eating shark, Carcharodon carcharias",
            3: "tiger shark, Galeocerdo cuvieri",
            4: "hammerhead, hammerhead shark",
            5: "electric ray, crampfish, numbfish, torpedo",
            6: "stingray",
            7: "cock",
            8: "hen",
            9: "ostrich, Struthio camelus",
            10: "brambling, Fringilla montifringilla",
            11: "goldfinch, Carduelis carduelis",
            12: "house finch, linnet, Carpodacus mexicanus",
            13: "junco, snowbird",
            14: "indigo bunting, indigo finch, indigo bird, Passerina cyanea",
            15: "robin, American robin, Turdus migratorius",
            16: "bulbul",
            17: "jay",
            18: "magpie",
            19: "chickadee",
            20: "water ouzel, dipper",
            21: "kite",
            22: "bald eagle, American eagle, Haliaeetus leucocephalus",
            23: "vulture",
            24: "great grey owl, great gray owl, Strix nebulosa",
            25: "European fire salamander, Salamandra salamandra",
            26: "common newt, Triturus vulgaris",
            27: "eft",
            28: "spotted salamander, Ambystoma maculatum",
            29: "axolotl, mud puppy, Ambystoma mexicanum",
            30: "bullfrog, Rana catesbeiana",
            31: "tree frog, tree-frog",
            32: "tailed frog, bell toad, ribbed toad, tailed toad, Ascaphus trui",
            33: "loggerhead, loggerhead turtle, Caretta caretta",
            34: "leatherback turtle, leatherback, leathery turtle, Dermochelys coriacea",
            35: "mud turtle",
            36: "terrapin",
            37: "box turtle, box tortoise",
            38: "banded gecko",
            39: "common iguana, iguana, Iguana iguana",
            40: "American chameleon, anole, Anolis carolinensis",
            41: "whiptail, whiptail lizard",
            42: "agama",
            43: "frilled lizard, Chlamydosaurus kingi",
            44: "alligator lizard",
            45: "Gila monster, Heloderma suspectum",
            46: "green lizard, Lacerta viridis",
            47: "African chameleon, Chamaeleo chamaeleon",
            48: "Komodo dragon, Komodo lizard, dragon lizard, giant lizard, Varanus komodoensis",
            49: "African crocodile, Nile crocodile, Crocodylus niloticus",
            50: "American alligator, Alligator mississipiensis",
            51: "triceratops",
            52: "thunder snake, worm snake, Carphophis amoenus",
            53: "ringneck snake, ring-necked snake, ring snake",
            54: "hognose snake, puff adder, sand viper",
            55: "green snake, grass snake",
            56: "king snake, kingsnake",
            57: "garter snake, grass snake",
            58: "water snake",
            59: "vine snake",
            60: "night snake, Hypsiglena torquata",
            61: "boa constrictor, Constrictor constrictor",
            62: "rock python, rock snake, Python sebae",
            63: "Indian cobra, Naja naja",
            64: "green mamba",
            65: "sea snake",
            66: "horned viper, cerastes, sand viper, horned asp, Cerastes cornutus",
            67: "diamondback, diamondback rattlesnake, Crotalus adamanteus",
            68: "sidewinder, horned rattlesnake, Crotalus cerastes",
            69: "trilobite",
            70: "harvestman, daddy longlegs, Phalangium opilio",
            71: "scorpion",
            72: "black and gold garden spider, Argiope aurantia",
            73: "barn spider, Araneus cavaticus",
            74: "garden spider, Aranea diademata",
            75: "black widow, Latrodectus mactans",
            76: "tarantula",
            77: "wolf spider, hunting spider",
            78: "tick",
            79: "centipede",
            80: "black grouse",
            81: "ptarmigan",
            82: "ruffed grouse, partridge, Bonasa umbellus",
            83: "prairie chicken, prairie grouse, prairie fowl",
            84: "peacock",
            85: "quail",
            86: "partridge",
            87: "African grey, African gray, Psittacus erithacus",
            88: "macaw",
            89: "sulphur-crested cockatoo, Kakatoe galerita, Cacatua galerita",
            90: "lorikeet",
            91: "coucal",
            92: "bee eater",
            93: "hornbill",
            94: "hummingbird",
            95: "jacamar",
            96: "toucan",
            97: "drake",
            98: "red-breasted merganser, Mergus serrator",
            99: "goose",
            100: "black swan, Cygnus atratus",
            101: "tusker",
            102: "echidna, spiny anteater, anteater",
            103: "platypus, duckbill, duckbilled platypus, duck-billed platypus, Ornithorhynchus anatinus",
            104: "wallaby, brush kangaroo",
            105: "koala, koala bear, kangaroo bear, native bear, Phascolarctos cinereus",
            106: "wombat",
            107: "jelly fish",
            108: "sea anemone, anemone",
            109: "brain coral",
            110: "flatworm, platyhelminth",
            111: "nematode, nematode worm, roundworm",
            112: "conch",
            113: "snail",
            114: "slug",
            115: "sea slug, nudibranch",
            116: "chiton, coat-of-mail shell, sea cradle, polyplacophore",
            117: "chambered nautilus, pearly nautilus, nautilus",
            118: "Dungeness crab, Cancer magister",
            119: "rock crab, Cancer irroratus",
            120: "fiddler crab",
            121: "king crab, Alaska crab, Alaskan king crab, Alaska king crab, Paralithodes camtschatica",
            122: "American lobster, Northern lobster, Maine lobster, Homarus americanus",
            123: "spiny lobster, langouste, rock lobster, crawfish, crayfish, sea crawfish",
            124: "crayfish, crawfish, crawdad, crawdaddy",
            125: "hermit crab",
            126: "isopod",
            127: "white stork, Ciconia ciconia",
            128: "black stork, Ciconia nigra",
            129: "spoonbill",
            130: "flamingo",
            131: "little blue heron, Egretta caerulea",
            132: "American egret, great white heron, Egretta albus",
            133: "bittern",
            134: "crane",
            135: "limpkin, Aramus pictus",
            136: "European gallinule, Porphyrio porphyrio",
            137: "American coot, marsh hen, mud hen, water hen, Fulica americana",
            138: "bustard",
            139: "ruddy turnstone, Arenaria interpres",
            140: "red-backed sandpiper, dunlin, Erolia alpina",
            141: "redshank, Tringa totanus",
            142: "dowitcher",
            143: "oystercatcher, oyster catcher",
            144: "pelican",
            145: "king penguin, Aptenodytes patagonica",
            146: "albatross, mollymawk",
            147: "grey whale, gray whale, devilfish, Eschrichtius gibbosus, Eschrichtius robustus",
            148: "killer whale, killer, orca, grampus, sea wolf, Orcinus orca",
            149: "dugong, Dugong dugon",
            150: "sea lion",
            151: "Chihuahua",
            152: "Japanese spaniel",
            153: "Maltese dog, Maltese terrier, Maltese",
            154: "Pekinese, Pekingese, Peke",
            155: "Shih-Tzu",
            156: "Blenheim spaniel",
            157: "papillon",
            158: "toy terrier",
            159: "Rhodesian ridgeback",
            160: "Afghan hound, Afghan",
            161: "basset, basset hound",
            162: "beagle",
            163: "bloodhound, sleuthhound",
            164: "bluetick",
            165: "black-and-tan coonhound",
            166: "Walker hound, Walker foxhound",
            167: "English foxhound",
            168: "redbone",
            169: "borzoi, Russian wolfhound",
            170: "Irish wolfhound",
            171: "Italian greyhound",
            172: "whippet",
            173: "Ibizan hound, Ibizan Podenco",
            174: "Norwegian elkhound, elkhound",
            175: "otterhound, otter hound",
            176: "Saluki, gazelle hound",
            177: "Scottish deerhound, deerhound",
            178: "Weimaraner",
            179: "Staffordshire bullterrier, Staffordshire bull terrier",
            180: "American Staffordshire terrier, Staffordshire terrier, American pit bull terrier, pit bull terrier",
            181: "Bedlington terrier",
            182: "Border terrier",
            183: "Kerry blue terrier",
            184: "Irish terrier",
            185: "Norfolk terrier",
            186: "Norwich terrier",
            187: "Yorkshire terrier",
            188: "wire-haired fox terrier",
            189: "Lakeland terrier",
            190: "Sealyham terrier, Sealyham",
            191: "Airedale, Airedale terrier",
            192: "cairn, cairn terrier",
            193: "Australian terrier",
            194: "Dandie Dinmont, Dandie Dinmont terrier",
            195: "Boston bull, Boston terrier",
            196: "miniature schnauzer",
            197: "giant schnauzer",
            198: "standard schnauzer",
            199: "Scotch terrier, Scottish terrier, Scottie",
            200: "Tibetan terrier, chrysanthemum dog",
            201: "silky terrier, Sydney silky",
            202: "soft-coated wheaten terrier",
            203: "West Highland white terrier",
            204: "Lhasa, Lhasa apso",
            205: "flat-coated retriever",
            206: "curly-coated retriever",
            207: "golden retriever",
            208: "Labrador retriever",
            209: "Chesapeake Bay retriever",
            210: "German short-haired pointer",
            211: "vizsla, Hungarian pointer",
            212: "English setter",
            213: "Irish setter, red setter",
            214: "Gordon setter",
            215: "Brittany spaniel",
            216: "clumber, clumber spaniel",
            217: "English springer, English springer spaniel",
            218: "Welsh springer spaniel",
            219: "cocker spaniel, English cocker spaniel, cocker",
            220: "Sussex spaniel",
            221: "Irish water spaniel",
            222: "kuvasz",
            223: "schipperke",
            224: "groenendael",
            225: "malinois",
            226: "briard",
            227: "kelpie",
            228: "komondor",
            229: "Old English sheepdog, bobtail",
            230: "Shetland sheepdog, Shetland sheep dog, Shetland",
            231: "collie",
            232: "Border collie",
            233: "Bouvier des Flandres, Bouviers des Flandres",
            234: "Rottweiler",
            235: "German shepherd, German shepherd dog, German police dog, alsatian",
            236: "Doberman, Doberman pinscher",
            237: "miniature pinscher",
            238: "Greater Swiss Mountain dog",
            239: "Bernese mountain dog",
            240: "Appenzeller",
            241: "EntleBucher",
            242: "boxer",
            243: "bull mastiff",
            244: "Tibetan mastiff",
            245: "French bulldog",
            246: "Great Dane",
            247: "Saint Bernard, St Bernard",
            248: "Eskimo dog, husky",
            249: "malamute, malemute, Alaskan malamute",
            250: "Siberian husky",
            251: "dalmatian, coach dog, carriage dog",
            252: "affenpinscher, monkey pinscher, monkey dog",
            253: "basenji",
            254: "pug, pug-dog",
            255: "Leonberg",
            256: "Newfoundland, Newfoundland dog",
            257: "Great Pyrenees",
            258: "Samoyed, Samoyede",
            259: "Pomeranian",
            260: "chow, chow chow",
            261: "keeshond",
            262: "Brabancon griffon",
            263: "Pembroke, Pembroke Welsh corgi",
            264: "Cardigan, Cardigan Welsh corgi",
            265: "toy poodle",
            266: "miniature poodle",
            267: "standard poodle",
            268: "Mexican hairless",
            269: "timber wolf, grey wolf, gray wolf, Canis lupus",
            270: "white wolf, Arctic wolf, Canis lupus tundrarum",
            271: "red wolf, maned wolf, Canis rufus, Canis niger",
            272: "coyote, prairie wolf, brush wolf, Canis latrans",
            273: "dingo, warrigal, warragal, Canis dingo",
            274: "dhole, Cuon alpinus",
            275: "African hunting dog, hyena dog, Cape hunting dog, Lycaon pictus",
            276: "hyena, hyaena",
            277: "red fox, Vulpes vulpes",
            278: "kit fox, Vulpes macrotis",
            279: "Arctic fox, white fox, Alopex lagopus",
            280: "grey fox, gray fox, Urocyon cinereoargenteus",
            281: "tabby, tabby cat",
            282: "tiger cat",
            283: "Persian cat",
            284: "Siamese cat, Siamese",
            285: "Egyptian cat",
            286: "cougar, puma, catamount, mountain lion, painter, panther, Felis concolor",
            287: "lynx, catamount",
            288: "leopard, Panthera pardus",
            289: "snow leopard, ounce, Panthera uncia",
            290: "jaguar, panther, Panthera onca, Felis onca",
            291: "lion, king of beasts, Panthera leo",
            292: "tiger, Panthera tigris",
            293: "cheetah, chetah, Acinonyx jubatus",
            294: "brown bear, bruin, Ursus arctos",
            295: "American black bear, black bear, Ursus americanus, Euarctos americanus",
            296: "ice bear, polar bear, Ursus Maritimus, Thalarctos maritimus",
            297: "sloth bear, Melursus ursinus, Ursus ursinus",
            298: "mongoose",
            299: "meerkat, mierkat",
            300: "tiger beetle",
            301: "ladybug, ladybeetle, lady beetle, ladybird, ladybird beetle",
            302: "ground beetle, carabid beetle",
            303: "long-horned beetle, longicorn, longicorn beetle",
            304: "leaf beetle, chrysomelid",
            305: "dung beetle",
            306: "rhinoceros beetle",
            307: "weevil",
            308: "fly",
            309: "bee",
            310: "ant, emmet, pismire",
            311: "grasshopper, hopper",
            312: "cricket",
            313: "walking stick, walkingstick, stick insect",
            314: "cockroach, roach",
            315: "mantis, mantid",
            316: "cicada, cicala",
            317: "leafhopper",
            318: "lacewing, lacewing fly",
            319: "dragonfly, darning needle, devil's darning needle, sewing needle, snake feeder, snake doctor, mosquito hawk, skeeter hawk",
            320: "damselfly",
            321: "admiral",
            322: "ringlet, ringlet butterfly",
            323: "monarch, monarch butterfly, milkweed butterfly, Danaus plexippus",
            324: "cabbage butterfly",
            325: "sulphur butterfly, sulfur butterfly",
            326: "lycaenid, lycaenid butterfly",
            327: "starfish, sea star",
            328: "sea urchin",
            329: "sea cucumber, holothurian",
            330: "wood rabbit, cottontail, cottontail rabbit",
            331: "hare",
            332: "Angora, Angora rabbit",
            333: "hamster",
            334: "porcupine, hedgehog",
            335: "fox squirrel, eastern fox squirrel, Sciurus niger",
            336: "marmot",
            337: "beaver",
            338: "guinea pig, Cavia cobaya",
            339: "sorrel",
            340: "zebra",
            341: "hog, pig, grunter, squealer, Sus scrofa",
            342: "wild boar, boar, Sus scrofa",
            343: "warthog",
            344: "hippopotamus, hippo, river horse, Hippopotamus amphibius",
            345: "ox",
            346: "water buffalo, water ox, Asiatic buffalo, Bubalus bubalis",
            347: "bison",
            348: "ram, tup",
            349: "bighorn, bighorn sheep, cimarron, Rocky Mountain bighorn, Rocky Mountain sheep, Ovis canadensis",
            350: "ibex, Capra ibex",
            351: "hartebeest",
            352: "impala, Aepyceros melampus",
            353: "gazelle",
            354: "Arabian camel, dromedary, Camelus dromedarius",
            355: "llama",
            356: "weasel",
            357: "mink",
            358: "polecat, fitch, foulmart, foumart, Mustela putorius",
            359: "black-footed ferret, ferret, Mustela nigripes",
            360: "otter",
            361: "skunk, polecat, wood pussy",
            362: "badger",
            363: "armadillo",
            364: "three-toed sloth, ai, Bradypus tridactylus",
            365: "orangutan, orang, orangutang, Pongo pygmaeus",
            366: "gorilla, Gorilla gorilla",
            367: "chimpanzee, chimp, Pan troglodytes",
            368: "gibbon, Hylobates lar",
            369: "siamang, Hylobates syndactylus, Symphalangus syndactylus",
            370: "guenon, guenon monkey",
            371: "patas, hussar monkey, Erythrocebus patas",
            372: "baboon",
            373: "macaque",
            374: "langur",
            375: "colobus, colobus monkey",
            376: "proboscis monkey, Nasalis larvatus",
            377: "marmoset",
            378: "capuchin, ringtail, Cebus capucinus",
            379: "howler monkey, howler",
            380: "titi, titi monkey",
            381: "spider monkey, Ateles geoffroyi",
            382: "squirrel monkey, Saimiri sciureus",
            383: "Madagascar cat, ring-tailed lemur, Lemur catta",
            384: "indri, indris, Indri indri, Indri brevicaudatus",
            385: "Indian elephant, Elephas maximus",
            386: "African elephant, Loxodonta africana",
            387: "lesser panda, red panda, panda, bear cat, cat bear, Ailurus fulgens",
            388: "giant panda, panda, panda bear, coon bear, Ailuropoda melanoleuca",
            389: "barracouta, snoek",
            390: "eel",
            391: "coho, cohoe, coho salmon, blue jack, silver salmon, Oncorhynchus kisutch",
            392: "rock beauty, Holocanthus tricolor",
            393: "anemone fish",
            394: "sturgeon",
            395: "gar, garfish, garpike, billfish, Lepisosteus osseus",
            396: "lionfish",
            397: "puffer, pufferfish, blowfish, globefish",
            398: "abacus",
            399: "abaya",
            400: "academic gown, academic robe, judge's robe",
            401: "accordion, piano accordion, squeeze box",
            402: "acoustic guitar",
            403: "aircraft carrier, carrier, flattop, attack aircraft carrier",
            404: "airliner",
            405: "airship, dirigible",
            406: "altar",
            407: "ambulance",
            408: "amphibian, amphibious vehicle",
            409: "analog clock",
            410: "apiary, bee house",
            411: "apron",
            412: "ashcan, trash can, garbage can, wastebin, ash bin, ash-bin, ashbin, dustbin, trash barrel, trash bin",
            413: "assault rifle, assault gun",
            414: "backpack, back pack, knapsack, packsack, rucksack, haversack",
            415: "bakery, bakeshop, bakehouse",
            416: "balance beam, beam",
            417: "balloon",
            418: "ballpoint, ballpoint pen, ballpen, Biro",
            419: "Band Aid",
            420: "banjo",
            421: "bannister, banister, balustrade, balusters, handrail",
            422: "barbell",
            423: "barber chair",
            424: "barbershop",
            425: "barn",
            426: "barometer",
            427: "barrel, cask",
            428: "barrow, garden cart, lawn cart, wheelbarrow",
            429: "baseball",
            430: "basketball",
            431: "bassinet",
            432: "bassoon",
            433: "bathing cap, swimming cap",
            434: "bath towel",
            435: "bathtub, bathing tub, bath, tub",
            436: "beach wagon, station wagon, wagon, estate car, beach waggon, station waggon, waggon",
            437: "beacon, lighthouse, beacon light, pharos",
            438: "beaker",
            439: "bearskin, busby, shako",
            440: "beer bottle",
            441: "beer glass",
            442: "bell cote, bell cot",
            443: "bib",
            444: "bicycle-built-for-two, tandem bicycle, tandem",
            445: "bikini, two-piece",
            446: "binder, ring-binder",
            447: "binoculars, field glasses, opera glasses",
            448: "birdhouse",
            449: "boathouse",
            450: "bobsled, bobsleigh, bob",
            451: "bolo tie, bolo, bola tie, bola",
            452: "bonnet, poke bonnet",
            453: "bookcase",
            454: "bookshop, bookstore, bookstall",
            455: "bottlecap",
            456: "bow",
            457: "bow tie, bow-tie, bowtie",
            458: "brass, memorial tablet, plaque",
            459: "brassiere, bra, bandeau",
            460: "breakwater, groin, groyne, mole, bulwark, seawall, jetty",
            461: "breastplate, aegis, egis",
            462: "broom",
            463: "bucket, pail",
            464: "buckle",
            465: "bulletproof vest",
            466: "bullet train, bullet",
            467: "butcher shop, meat market",
            468: "cab, hack, taxi, taxicab",
            469: "caldron, cauldron",
            470: "candle, taper, wax light",
            471: "cannon",
            472: "canoe",
            473: "can opener, tin opener",
            474: "cardigan",
            475: "car mirror",
            476: "carousel, carrousel, merry-go-round, roundabout, whirligig",
            477: "carpenter's kit, tool kit",
            478: "carton",
            479: "car wheel",
            480: "cash machine, cash dispenser, automated teller machine, automatic teller machine, automated teller, automatic teller, ATM",
            481: "cassette",
            482: "cassette player",
            483: "castle",
            484: "catamaran",
            485: "CD player",
            486: "cello, violoncello",
            487: "cellular telephone, cellular phone, cellphone, cell, mobile phone",
            488: "chain",
            489: "chainlink fence",
            490: "chain mail, ring mail, mail, chain armor, chain armour, ring armor, ring armour",
            491: "chain saw, chainsaw",
            492: "chest",
            493: "chiffonier, commode",
            494: "chime, bell, gong",
            495: "china cabinet, china closet",
            496: "Christmas stocking",
            497: "church, church building",
            498: "cinema, movie theater, movie theatre, movie house, picture palace",
            499: "cleaver, meat cleaver, chopper",
            500: "cliff dwelling",
            501: "cloak",
            502: "clog, geta, patten, sabot",
            503: "cocktail shaker",
            504: "coffee mug",
            505: "coffeepot",
            506: "coil, spiral, volute, whorl, helix",
            507: "combination lock",
            508: "computer keyboard, keypad",
            509: "confectionery, confectionary, candy store",
            510: "container ship, containership, container vessel",
            511: "convertible",
            512: "corkscrew, bottle screw",
            513: "cornet, horn, trumpet, trump",
            514: "cowboy boot",
            515: "cowboy hat, ten-gallon hat",
            516: "cradle",
            517: "crane",
            518: "crash helmet",
            519: "crate",
            520: "crib, cot",
            521: "Crock Pot",
            522: "croquet ball",
            523: "crutch",
            524: "cuirass",
            525: "dam, dike, dyke",
            526: "desk",
            527: "desktop computer",
            528: "dial telephone, dial phone",
            529: "diaper, nappy, napkin",
            530: "digital clock",
            531: "digital watch",
            532: "dining table, board",
            533: "dishrag, dishcloth",
            534: "dishwasher, dish washer, dishwashing machine",
            535: "disk brake, disc brake",
            536: "dock, dockage, docking facility",
            537: "dogsled, dog sled, dog sleigh",
            538: "dome",
            539: "doormat, welcome mat",
            540: "drilling platform, offshore rig",
            541: "drum, membranophone, tympan",
            542: "drumstick",
            543: "dumbbell",
            544: "Dutch oven",
            545: "electric fan, blower",
            546: "electric guitar",
            547: "electric locomotive",
            548: "entertainment center",
            549: "envelope",
            550: "espresso maker",
            551: "face powder",
            552: "feather boa, boa",
            553: "file, file cabinet, filing cabinet",
            554: "fireboat",
            555: "fire engine, fire truck",
            556: "fire screen, fireguard",
            557: "flagpole, flagstaff",
            558: "flute, transverse flute",
            559: "folding chair",
            560: "football helmet",
            561: "forklift",
            562: "fountain",
            563: "fountain pen",
            564: "four-poster",
            565: "freight car",
            566: "French horn, horn",
            567: "frying pan, frypan, skillet",
            568: "fur coat",
            569: "garbage truck, dustcart",
            570: "gasmask, respirator, gas helmet",
            571: "gas pump, gasoline pump, petrol pump, island dispenser",
            572: "goblet",
            573: "go-kart",
            574: "golf ball",
            575: "golfcart, golf cart",
            576: "gondola",
            577: "gong, tam-tam",
            578: "gown",
            579: "grand piano, grand",
            580: "greenhouse, nursery, glasshouse",
            581: "grille, radiator grille",
            582: "grocery store, grocery, food market, market",
            583: "guillotine",
            584: "hair slide",
            585: "hair spray",
            586: "half track",
            587: "hammer",
            588: "hamper",
            589: "hand blower, blow dryer, blow drier, hair dryer, hair drier",
            590: "hand-held computer, hand-held microcomputer",
            591: "handkerchief, hankie, hanky, hankey",
            592: "hard disc, hard disk, fixed disk",
            593: "harmonica, mouth organ, harp, mouth harp",
            594: "harp",
            595: "harvester, reaper",
            596: "hatchet",
            597: "holster",
            598: "home theater, home theatre",
            599: "honeycomb",
            600: "hook, claw",
            601: "hoopskirt, crinoline",
            602: "horizontal bar, high bar",
            603: "horse cart, horse-cart",
            604: "hourglass",
            605: "iPod",
            606: "iron, smoothing iron",
            607: "jack-o'-lantern",
            608: "jean, blue jean, denim",
            609: "jeep, landrover",
            610: "jersey, T-shirt, tee shirt",
            611: "jigsaw puzzle",
            612: "jinrikisha, ricksha, rickshaw",
            613: "joystick",
            614: "kimono",
            615: "knee pad",
            616: "knot",
            617: "lab coat, laboratory coat",
            618: "ladle",
            619: "lampshade, lamp shade",
            620: "laptop, laptop computer",
            621: "lawn mower, mower",
            622: "lens cap, lens cover",
            623: "letter opener, paper knife, paperknife",
            624: "library",
            625: "lifeboat",
            626: "lighter, light, igniter, ignitor",
            627: "limousine, limo",
            628: "liner, ocean liner",
            629: "lipstick, lip rouge",
            630: "Loafer",
            631: "lotion",
            632: "loudspeaker, speaker, speaker unit, loudspeaker system, speaker system",
            633: "loupe, jeweler's loupe",
            634: "lumbermill, sawmill",
            635: "magnetic compass",
            636: "mailbag, postbag",
            637: "mailbox, letter box",
            638: "maillot",
            639: "maillot, tank suit",
            640: "manhole cover",
            641: "maraca",
            642: "marimba, xylophone",
            643: "mask",
            644: "matchstick",
            645: "maypole",
            646: "maze, labyrinth",
            647: "measuring cup",
            648: "medicine chest, medicine cabinet",
            649: "megalith, megalithic structure",
            650: "microphone, mike",
            651: "microwave, microwave oven",
            652: "military uniform",
            653: "milk can",
            654: "minibus",
            655: "miniskirt, mini",
            656: "minivan",
            657: "missile",
            658: "mitten",
            659: "mixing bowl",
            660: "mobile home, manufactured home",
            661: "Model T",
            662: "modem",
            663: "monastery",
            664: "monitor",
            665: "moped",
            666: "mortar",
            667: "mortarboard",
            668: "mosque",
            669: "mosquito net",
            670: "motor scooter, scooter",
            671: "mountain bike, all-terrain bike, off-roader",
            672: "mountain tent",
            673: "mouse, computer mouse",
            674: "mousetrap",
            675: "moving van",
            676: "muzzle",
            677: "nail",
            678: "neck brace",
            679: "necklace",
            680: "nipple",
            681: "notebook, notebook computer",
            682: "obelisk",
            683: "oboe, hautboy, hautbois",
            684: "ocarina, sweet potato",
            685: "odometer, hodometer, mileometer, milometer",
            686: "oil filter",
            687: "organ, pipe organ",
            688: "oscilloscope, scope, cathode-ray oscilloscope, CRO",
            689: "overskirt",
            690: "oxcart",
            691: "oxygen mask",
            692: "packet",
            693: "paddle, boat paddle",
            694: "paddlewheel, paddle wheel",
            695: "padlock",
            696: "paintbrush",
            697: "pajama, pyjama, pj's, jammies",
            698: "palace",
            699: "panpipe, pandean pipe, syrinx",
            700: "paper towel",
            701: "parachute, chute",
            702: "parallel bars, bars",
            703: "park bench",
            704: "parking meter",
            705: "passenger car, coach, carriage",
            706: "patio, terrace",
            707: "pay-phone, pay-station",
            708: "pedestal, plinth, footstall",
            709: "pencil box, pencil case",
            710: "pencil sharpener",
            711: "perfume, essence",
            712: "Petri dish",
            713: "photocopier",
            714: "pick, plectrum, plectron",
            715: "pickelhaube",
            716: "picket fence, paling",
            717: "pickup, pickup truck",
            718: "pier",
            719: "piggy bank, penny bank",
            720: "pill bottle",
            721: "pillow",
            722: "ping-pong ball",
            723: "pinwheel",
            724: "pirate, pirate ship",
            725: "pitcher, ewer",
            726: "plane, carpenter's plane, woodworking plane",
            727: "planetarium",
            728: "plastic bag",
            729: "plate rack",
            730: "plow, plough",
            731: "plunger, plumber's helper",
            732: "Polaroid camera, Polaroid Land camera",
            733: "pole",
            734: "police van, police wagon, paddy wagon, patrol wagon, wagon, black Maria",
            735: "poncho",
            736: "pool table, billiard table, snooker table",
            737: "pop bottle, soda bottle",
            738: "pot, flowerpot",
            739: "potter's wheel",
            740: "power drill",
            741: "prayer rug, prayer mat",
            742: "printer",
            743: "prison, prison house",
            744: "projectile, missile",
            745: "projector",
            746: "puck, hockey puck",
            747: "punching bag, punch bag, punching ball, punchball",
            748: "purse",
            749: "quill, quill pen",
            750: "quilt, comforter, comfort, puff",
            751: "racer, race car, racing car",
            752: "racket, racquet",
            753: "radiator",
            754: "radio, wireless",
            755: "radio telescope, radio reflector",
            756: "rain barrel",
            757: "recreational vehicle, RV, R.V.",
            758: "reel",
            759: "reflex camera",
            760: "refrigerator, icebox",
            761: "remote control, remote",
            762: "restaurant, eating house, eating place, eatery",
            763: "revolver, six-gun, six-shooter",
            764: "rifle",
            765: "rocking chair, rocker",
            766: "rotisserie",
            767: "rubber eraser, rubber, pencil eraser",
            768: "rugby ball",
            769: "rule, ruler",
            770: "running shoe",
            771: "safe",
            772: "safety pin",
            773: "saltshaker, salt shaker",
            774: "sandal",
            775: "sarong",
            776: "sax, saxophone",
            777: "scabbard",
            778: "scale, weighing machine",
            779: "school bus",
            780: "schooner",
            781: "scoreboard",
            782: "screen, CRT screen",
            783: "screw",
            784: "screwdriver",
            785: "seat belt, seatbelt",
            786: "sewing machine",
            787: "shield, buckler",
            788: "shoe shop, shoe-shop, shoe store",
            789: "shoji",
            790: "shopping basket",
            791: "shopping cart",
            792: "shovel",
            793: "shower cap",
            794: "shower curtain",
            795: "ski",
            796: "ski mask",
            797: "sleeping bag",
            798: "slide rule, slipstick",
            799: "sliding door",
            800: "slot, one-armed bandit",
            801: "snorkel",
            802: "snowmobile",
            803: "snowplow, snowplough",
            804: "soap dispenser",
            805: "soccer ball",
            806: "sock",
            807: "solar dish, solar collector, solar furnace",
            808: "sombrero",
            809: "soup bowl",
            810: "space bar",
            811: "space heater",
            812: "space shuttle",
            813: "spatula",
            814: "speedboat",
            815: "spider web, spider's web",
            816: "spindle",
            817: "sports car, sport car",
            818: "spotlight, spot",
            819: "stage",
            820: "steam locomotive",
            821: "steel arch bridge",
            822: "steel drum",
            823: "stethoscope",
            824: "stole",
            825: "stone wall",
            826: "stopwatch, stop watch",
            827: "stove",
            828: "strainer",
            829: "streetcar, tram, tramcar, trolley, trolley car",
            830: "stretcher",
            831: "studio couch, day bed",
            832: "stupa, tope",
            833: "submarine, pigboat, sub, U-boat",
            834: "suit, suit of clothes",
            835: "sundial",
            836: "sunglass",
            837: "sunglasses, dark glasses, shades",
            838: "sunscreen, sunblock, sun blocker",
            839: "suspension bridge",
            840: "swab, swob, mop",
            841: "sweatshirt",
            842: "swimming trunks, bathing trunks",
            843: "swing",
            844: "switch, electric switch, electrical switch",
            845: "syringe",
            846: "table lamp",
            847: "tank, army tank, armored combat vehicle, armoured combat vehicle",
            848: "tape player",
            849: "teapot",
            850: "teddy, teddy bear",
            851: "television, television system",
            852: "tennis ball",
            853: "thatch, thatched roof",
            854: "theater curtain, theatre curtain",
            855: "thimble",
            856: "thresher, thrasher, threshing machine",
            857: "throne",
            858: "tile roof",
            859: "toaster",
            860: "tobacco shop, tobacconist shop, tobacconist",
            861: "toilet seat",
            862: "torch",
            863: "totem pole",
            864: "tow truck, tow car, wrecker",
            865: "toyshop",
            866: "tractor",
            867: "trailer truck, tractor trailer, trucking rig, rig, articulated lorry, semi",
            868: "tray",
            869: "trench coat",
            870: "tricycle, trike, velocipede",
            871: "trimaran",
            872: "tripod",
            873: "triumphal arch",
            874: "trolleybus, trolley coach, trackless trolley",
            875: "trombone",
            876: "tub, vat",
            877: "turnstile",
            878: "typewriter keyboard",
            879: "umbrella",
            880: "unicycle, monocycle",
            881: "upright, upright piano",
            882: "vacuum, vacuum cleaner",
            883: "vase",
            884: "vault",
            885: "velvet",
            886: "vending machine",
            887: "vestment",
            888: "viaduct",
            889: "violin, fiddle",
            890: "volleyball",
            891: "waffle iron",
            892: "wall clock",
            893: "wallet, billfold, notecase, pocketbook",
            894: "wardrobe, closet, press",
            895: "warplane, military plane",
            896: "washbasin, handbasin, washbowl, lavabo, wash-hand basin",
            897: "washer, automatic washer, washing machine",
            898: "water bottle",
            899: "water jug",
            900: "water tower",
            901: "whiskey jug",
            902: "whistle",
            903: "wig",
            904: "window screen",
            905: "window shade",
            906: "Windsor tie",
            907: "wine bottle",
            908: "wing",
            909: "wok",
            910: "wooden spoon",
            911: "wool, woolen, woollen",
            912: "worm fence, snake fence, snake-rail fence, Virginia fence",
            913: "wreck",
            914: "yawl",
            915: "yurt",
            916: "web site, website, internet site, site",
            917: "comic book",
            918: "crossword puzzle, crossword",
            919: "street sign",
            920: "traffic light, traffic signal, stoplight",
            921: "book jacket, dust cover, dust jacket, dust wrapper",
            922: "menu",
            923: "plate",
            924: "guacamole",
            925: "consomme",
            926: "hot pot, hotpot",
            927: "trifle",
            928: "ice cream, icecream",
            929: "ice lolly, lolly, lollipop, popsicle",
            930: "French loaf",
            931: "bagel, beigel",
            932: "pretzel",
            933: "cheeseburger",
            934: "hotdog, hot dog, red hot",
            935: "mashed potato",
            936: "head cabbage",
            937: "broccoli",
            938: "cauliflower",
            939: "zucchini, courgette",
            940: "spaghetti squash",
            941: "acorn squash",
            942: "butternut squash",
            943: "cucumber, cuke",
            944: "artichoke, globe artichoke",
            945: "bell pepper",
            946: "cardoon",
            947: "mushroom",
            948: "Granny Smith",
            949: "strawberry",
            950: "orange",
            951: "lemon",
            952: "fig",
            953: "pineapple, ananas",
            954: "banana",
            955: "jackfruit, jak, jack",
            956: "custard apple",
            957: "pomegranate",
            958: "hay",
            959: "carbonara",
            960: "chocolate sauce, chocolate syrup",
            961: "dough",
            962: "meat loaf, meatloaf",
            963: "pizza, pizza pie",
            964: "potpie",
            965: "burrito",
            966: "red wine",
            967: "espresso",
            968: "cup",
            969: "eggnog",
            970: "alp",
            971: "bubble",
            972: "cliff, drop, drop-off",
            973: "coral reef",
            974: "geyser",
            975: "lakeside, lakeshore",
            976: "promontory, headland, head, foreland",
            977: "sandbar, sand bar",
            978: "seashore, coast, seacoast, sea-coast",
            979: "valley, vale",
            980: "volcano",
            981: "ballplayer, baseball player",
            982: "groom, bridegroom",
            983: "scuba diver",
            984: "rapeseed",
            985: "daisy",
            986: "yellow lady's slipper, yellow lady-slipper, Cypripedium calceolus, Cypripedium parviflorum",
            987: "corn",
            988: "acorn",
            989: "hip, rose hip, rosehip",
            990: "buckeye, horse chestnut, conker",
            991: "coral fungus",
            992: "agaric",
            993: "gyromitra",
            994: "stinkhorn, carrion fungus",
            995: "earthstar",
            996: "hen-of-the-woods, hen of the woods, Polyporus frondosus, Grifola frondosa",
            997: "bolete",
            998: "ear, spike, capitulum",
            999: "toilet tissue, toilet paper, bathroom tissue"
        }
            , version = "2.1.0"
            , IMAGE_SIZE = 224
            , EMBEDDING_NODES = {
                "1.00": "module_apply_default/MobilenetV1/Logits/global_pool",
                "2.00": "module_apply_default/MobilenetV2/Logits/AvgPool"
            }
            , MODEL_INFO = {
                "1.00": {
                    .25: {
                        url: "https://tfhub.dev/google/imagenet/mobilenet_v1_025_224/classification/1",
                        inputRange: [0, 1]
                    },
                    "0.50": {
                        url: "https://tfhub.dev/google/imagenet/mobilenet_v1_050_224/classification/1",
                        inputRange: [0, 1]
                    },
                    .75: {
                        url: "https://tfhub.dev/google/imagenet/mobilenet_v1_075_224/classification/1",
                        inputRange: [0, 1]
                    },
                    "1.00": {
                        url: "https://tfhub.dev/google/imagenet/mobilenet_v1_100_224/classification/1",
                        inputRange: [0, 1]
                    }
                },
                "2.00": {
                    "0.50": {
                        url: "https://tfhub.dev/google/imagenet/mobilenet_v2_050_224/classification/2",
                        inputRange: [0, 1]
                    },
                    .75: {
                        url: "https://tfhub.dev/google/imagenet/mobilenet_v2_075_224/classification/2",
                        inputRange: [0, 1]
                    },
                    "1.00": {
                        url: "https://tfhub.dev/google/imagenet/mobilenet_v2_100_224/classification/2",
                        inputRange: [0, 1]
                    }
                }
            };
        exports.version = version;
        function load(e) {
            return void 0 === e && (e = {
                version: 1,
                alpha: 1
            }),
                __awaiter(this, void 0, void 0, function () {
                    var a, r, o, i, t, n, l;
                    return __generator(this, function (s) {
                        switch (s.label) {
                            case 0:
                                if (null == tf)
                                    throw new Error("Cannot find TensorFlow.js. If you are using a <script> tag, please also include @tensorflow/tfjs on the page before using this model.");
                                if (o = e.version.toFixed(2),
                                    i = e.alpha ? e.alpha.toFixed(2) : "",
                                    t = -1,
                                    n = 1,
                                    null == e.modelUrl) {
                                    if (!(o in MODEL_INFO))
                                        throw new Error("Invalid version of MobileNet. Valid versions are: " + Object.keys(MODEL_INFO));
                                    if (!(i in MODEL_INFO[o]))
                                        throw new Error("MobileNet constructed with invalid alpha " + e.alpha + ". Valid multipliers for this version are: " + Object.keys(MODEL_INFO[o]) + ".");
                                    a = MODEL_INFO[o][i].inputRange,
                                        t = a[0],
                                        n = a[1];
                                }
                                return null != e.inputRange && (r = e.inputRange,
                                    t = r[0],
                                    n = r[1]),
                                    [4, (l = new MobileNetImpl(o, i, e.modelUrl, t, n)).load()];
                            case 1:
                                return s.sent(),
                                    [2, l];
                        }
                    });
                });
        }
        var MobileNetImpl = function () {
            function e(e, a, r, o, i) {
                void 0 === o && (o = -1),
                    void 0 === i && (i = 1),
                    this.version = e,
                    this.alpha = a,
                    this.modelUrl = r,
                    this.inputMin = o,
                    this.inputMax = i,
                    this.normalizationConstant = (i - o) / 255;
            }
            return e.prototype.load = function () {
                return __awaiter(this, void 0, void 0, function () {
                    var e, a, r, o, i = this;
                    return __generator(this, function (t) {
                        switch (t.label) {
                            case 0:
                                return this.modelUrl ? (e = this,
                                    [4, (0,
                                        _tfjsConverter.loadGraphModel)(this.modelUrl)]) : [3, 2];
                            case 1:
                                return e.model = t.sent(),
                                    [3, 4];
                            case 2:
                                return a = MODEL_INFO[this.version][this.alpha].url,
                                    r = this,
                                    [4, (0,
                                        _tfjsConverter.loadGraphModel)(a, {
                                            fromTFHub: !0
                                        })];
                            case 3:
                                r.model = t.sent(),
                                    t.label = 4;
                            case 4:
                                return [4, (o = (0,
                                    tf.tidy)(function () {
                                        return i.model.predict((0,
                                            tf.zeros)([1, IMAGE_SIZE, IMAGE_SIZE, 3]));
                                    })).data()];
                            case 5:
                                return t.sent(),
                                    o.dispose(),
                                    [2];
                        }
                    });
                });
            }
                ,
                e.prototype.infer = function (e, a) {
                    var r = this;
                    return void 0 === a && (a = !1),
                        (0,
                            tf.tidy)(function () {
                                e instanceof tf.Tensor || (e = tf.browser.fromPixels(e));
                                var o = (0,
                                    tf.add)((0,
                                        tf.mul)((0,
                                            tf.cast)(e, "float32"), r.normalizationConstant), r.inputMin)
                                    , i = o;
                                if (e.shape[0] !== IMAGE_SIZE || e.shape[1] !== IMAGE_SIZE) {
                                    i = tf.image.resizeBilinear(o, [IMAGE_SIZE, IMAGE_SIZE], !0);
                                }
                                var t, n = (0,
                                    tf.reshape)(i, [-1, IMAGE_SIZE, IMAGE_SIZE, 3]);
                                if (a) {
                                    var l = EMBEDDING_NODES[r.version]
                                        , s = r.model.execute(n, l);
                                    t = (0,
                                        tf.squeeze)(s, [1, 2]);
                                } else {
                                    var c = r.model.predict(n);
                                    t = (0,
                                        tf.slice)(c, [0, 1], [-1, 1e3]);
                                }
                                return t;
                            });
                }
                ,
                e.prototype.classify = function (e, a) {
                    return void 0 === a && (a = 3),
                        __awaiter(this, void 0, void 0, function () {
                            var r, o;
                            return __generator(this, function (i) {
                                switch (i.label) {
                                    case 0:
                                        return [4, getTopKClasses(r = this.infer(e), a)];
                                    case 1:
                                        return o = i.sent(),
                                            r.dispose(),
                                            [2, o];
                                }
                            });
                        });
                }
                ,
                e;
        }();
        function getTopKClasses(e, a) {
            return __awaiter(this, void 0, void 0, function () {
                var r, o, i, t, n, l, s;
                return __generator(this, function (c) {
                    switch (c.label) {
                        case 0:
                            return [4, (r = (0,
                                tf.softmax)(e)).data()];
                        case 1:
                            for (o = c.sent(),
                                r.dispose(),
                                i = [],
                                s = 0; s < o.length; s++)
                                i.push({
                                    value: o[s],
                                    index: s
                                });
                            for (i.sort(function (e, a) {
                                return a.value - e.value;
                            }),
                                t = new Float32Array(a),
                                n = new Int32Array(a),
                                s = 0; s < a; s++)
                                t[s] = i[s].value,
                                    n[s] = i[s].index;
                            for (l = [],
                                s = 0; s < n.length; s++)
                                l.push({
                                    className: IMAGENET_CLASSES[n[s]],
                                    probability: t[s]
                                });
                            return [2, l];
                    }
                });
            });
        }

    }
        , {
        "@tensorflow/tfjs-converter": 21,
        "@tensorflow/tfjs-core": 506
    }],
    6: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.UniversalSentenceEncoder = exports.Tokenizer = void 0;
        exports.load = load;
        exports.loadQnA = loadQnA;
        exports.loadTokenizer = loadTokenizer;
        exports.version = void 0;
        var _tfjsCore = require("@tensorflow/tfjs-core");
        var _tfjsConverter = require("@tensorflow/tfjs-converter");
        /**
            * @license
            * Copyright 2021 Google LLC. All Rights Reserved.
            * Licensed under the Apache License, Version 2.0 (the "License");
            * you may not use this file except in compliance with the License.
            * You may obtain a copy of the License at
            *
            * http://www.apache.org/licenses/LICENSE-2.0
            *
            * Unless required by applicable law or agreed to in writing, software
            * distributed under the License is distributed on an "AS IS" BASIS,
            * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
            * See the License for the specific language governing permissions and
            * limitations under the License.
            * =============================================================================
            */
        function __awaiter(e, n, t, r) {
            return new (t || (t = Promise))(function (o, i) {
                function a(e) {
                    try {
                        u(r.next(e));
                    } catch (e) {
                        i(e);
                    }
                }
                function s(e) {
                    try {
                        u(r.throw(e));
                    } catch (e) {
                        i(e);
                    }
                }
                function u(e) {
                    var n;
                    e.done ? o(e.value) : (n = e.value,
                        n instanceof t ? n : new t(function (e) {
                            e(n);
                        }
                        )).then(a, s);
                }
                u((r = r.apply(e, n || [])).next());
            }
            );
        }
        function __generator(e, n) {
            var t, r, o, i, a = {
                label: 0,
                sent: function () {
                    if (1 & o[0])
                        throw o[1];
                    return o[1];
                },
                trys: [],
                ops: []
            };
            return i = {
                next: s(0),
                throw: s(1),
                return: s(2)
            },
                "function" == typeof Symbol && (i[Symbol.iterator] = function () {
                    return this;
                }
                ),
                i;
            function s(i) {
                return function (s) {
                    return function (i) {
                        if (t)
                            throw new TypeError("Generator is already executing.");
                        for (; a;)
                            try {
                                if (t = 1,
                                    r && (o = 2 & i[0] ? r.return : i[0] ? r.throw || ((o = r.return) && o.call(r),
                                        0) : r.next) && !(o = o.call(r, i[1])).done)
                                    return o;
                                switch (r = 0,
                                o && (i = [2 & i[0], o.value]),
                                i[0]) {
                                    case 0:
                                    case 1:
                                        o = i;
                                        break;
                                    case 4:
                                        return a.label++,
                                        {
                                            value: i[1],
                                            done: !1
                                        };
                                    case 5:
                                        a.label++,
                                            r = i[1],
                                            i = [0];
                                        continue;
                                    case 7:
                                        i = a.ops.pop(),
                                            a.trys.pop();
                                        continue;
                                    default:
                                        if (!(o = (o = a.trys).length > 0 && o[o.length - 1]) && (6 === i[0] || 2 === i[0])) {
                                            a = 0;
                                            continue;
                                        }
                                        if (3 === i[0] && (!o || i[1] > o[0] && i[1] < o[3])) {
                                            a.label = i[1];
                                            break;
                                        }
                                        if (6 === i[0] && a.label < o[1]) {
                                            a.label = o[1],
                                                o = i;
                                            break;
                                        }
                                        if (o && a.label < o[2]) {
                                            a.label = o[2],
                                                a.ops.push(i);
                                            break;
                                        }
                                        o[2] && a.ops.pop(),
                                            a.trys.pop();
                                        continue;
                                }
                                i = n.call(e, a);
                            } catch (e) {
                                i = [6, e],
                                    r = 0;
                            } finally {
                                t = o = 0;
                            }
                        if (5 & i[0])
                            throw i[1];
                        return {
                            value: i[0] ? i[1] : void 0,
                            done: !0
                        };
                    }([i, s]);
                }
                    ;
            }
        }
        var stringToChars = function (e) {
            for (var n = [], t = 0, r = e; t < r.length; t++) {
                var o = r[t];
                n.push(o);
            }
            return n;
        }
            , TrieNode = function () {
                return function () {
                    this.parent = null,
                        this.children = {},
                        this.end = !1,
                        this.word = [[], 0, 0];
                }
                    ;
            }()
            , Trie = function () {
                function e() {
                    this.root = new TrieNode();
                }
                return e.prototype.insert = function (e, n, t) {
                    for (var r = this.root, o = stringToChars(e), i = 0; i < o.length; i++)
                        r.children[o[i]] || (r.children[o[i]] = new TrieNode(),
                            r.children[o[i]].parent = r,
                            r.children[o[i]].word[0] = r.word[0].concat(o[i])),
                            r = r.children[o[i]],
                            i === o.length - 1 && (r.end = !0,
                                r.word[1] = n,
                                r.word[2] = t);
                }
                    ,
                    e.prototype.commonPrefixSearch = function (e) {
                        for (var n = [], t = this.root.children[e[0]], r = 0; r < e.length && t; r++)
                            t.end && n.push(t.word),
                                t = t.children[e[r + 1]];
                        return n.length || n.push([[e[0]], 0, 0]),
                            n;
                    }
                    ,
                    e;
            }()
            , separator = "▁";
        function processInput(e) {
            var n = e.normalize("NFKC");
            return n.length > 0 ? separator + n.replace(/ /g, separator) : n;
        }
        var RESERVED_SYMBOLS_COUNT = 6
            , Tokenizer = function () {
                function e(e, n) {
                    void 0 === n && (n = RESERVED_SYMBOLS_COUNT),
                        this.vocabulary = e,
                        this.reservedSymbolsCount = n,
                        this.trie = new Trie();
                    for (var t = this.reservedSymbolsCount; t < this.vocabulary.length; t++)
                        this.trie.insert(this.vocabulary[t][0], this.vocabulary[t][1], t);
                }
                return e.prototype.encode = function (e) {
                    var n = []
                        , t = []
                        , r = [];
                    e = processInput(e);
                    for (var o = stringToChars(e), i = 0; i <= o.length; i++)
                        n.push({}),
                            t.push(0),
                            r.push(0);
                    for (i = 0; i < o.length; i++)
                        for (var a = this.trie.commonPrefixSearch(o.slice(i)), s = 0; s < a.length; s++) {
                            var u = a[s]
                                , l = {
                                    key: u[0],
                                    score: u[1],
                                    index: u[2]
                                };
                            null == n[i + (c = u[0].length)][i] && (n[i + c][i] = []),
                                n[i + c][i].push(l);
                        }
                    for (var c = 0; c <= o.length; c++)
                        for (var h in n[c]) {
                            var d = n[c][h];
                            for (s = 0; s < d.length; s++) {
                                var f = d[s]
                                    , _ = f.score + r[c - f.key.length];
                                (0 === r[c] || _ >= r[c]) && (r[c] = _,
                                    t[c] = d[s].index);
                            }
                        }
                    for (var v = [], p = t.length - 1; p > 0;)
                        v.push(t[p]),
                            p -= this.vocabulary[t[p]][0].length;
                    var E = []
                        , T = !1;
                    for (i = 0; i < v.length; i++) {
                        var g = v[i];
                        T && 0 === g || E.push(g),
                            T = 0 === g;
                    }
                    return E.reverse();
                }
                    ,
                    e;
            }();
        exports.Tokenizer = Tokenizer;
        function loadTokenizer(e) {
            return __awaiter(this, void 0, void 0, function () {
                var n;
                return __generator(this, function (t) {
                    switch (t.label) {
                        case 0:
                            return [4, loadVocabulary(e)];
                        case 1:
                            return n = t.sent(),
                                [2, new Tokenizer(n)];
                    }
                });
            });
        }
        function loadVocabulary(e) {
            if (e === "https://tfhub.dev/google/tfjs-model/universal-sentence-encoder-qa-ondevice/1/vocab.json?tfjs-format=file")
                return Promise.resolve(USE_VOCAB_JSON);

            return __awaiter(this, void 0, void 0, function () {
                return __generator(this, function (n) {
                    switch (n.label) {
                        case 0:
                            return [4, _tfjsCore.util.fetch(e)];
                        case 1:
                            return [2, n.sent().json()];
                    }
                });
            });
        }
        var version = "1.3.3"
            , BASE_PATH = "https://tfhub.dev/google/tfjs-model/universal-sentence-encoder-qa-ondevice/1"
            , SKIP_VALUES = [0, 1, 2]
            , OFFSET = 3
            , INPUT_LIMIT = 192
            , QUERY_NODE_NAME = "input_inp_text"
            , RESPONSE_CONTEXT_NODE_NAME = "input_res_context"
            , RESPONSE_NODE_NAME = "input_res_text"
            , RESPONSE_RESULT_NODE_NAME = "Final/EncodeResult/mul"
            , QUERY_RESULT_NODE_NAME = "Final/EncodeQuery/mul"
            , RESERVED_SYMBOLS_COUNT$1 = 3
            , TOKEN_PADDING = 2
            , TOKEN_START_VALUE = 1;
        exports.version = version;
        function loadQnA() {
            let res = __awaiter(this, void 0, void 0, function () {
                var e;
                let res = __generator(this, function (n) {
                    switch (n.label) {
                        case 0:
                            let res = [4, (e = new UniversalSentenceEncoderQnA()).load()];
                            return res;
                        case 1:
                            return n.sent(),
                                [2, e];
                    }
                });
                return res;
            });
            return res;
        }
        var UniversalSentenceEncoderQnA = function () {
            function e() { }
            return e.prototype.loadModel = function () {
                let res = __awaiter(this, void 0, void 0, function () {
                    return __generator(this, function (e) {
                        return [2, (0,
                            _tfjsConverter.loadGraphModel)(BASE_PATH, {
                                fromTFHub: !0
                            })];
                    });
                });
                return res;
            }
                ,
                e.prototype.load = function () {
                    return __awaiter(this, void 0, void 0, function () {
                        var e, n, t;
                        return __generator(this, function (r) {
                            switch (r.label) {
                                case 0:
                                    return [4, Promise.all([this.loadModel(), loadVocabulary(BASE_PATH + "/vocab.json?tfjs-format=file")])];
                                case 1:
                                    return e = r.sent(),
                                        n = e[0],
                                        t = e[1],
                                        this.model = n,
                                        this.tokenizer = new Tokenizer(t, RESERVED_SYMBOLS_COUNT$1),
                                        [2];
                            }
                        });
                    });
                }
                ,
                e.prototype.embed = function (e) {
                    var n = this
                        , t = (0,
                            _tfjsCore.tidy)(function () {
                                var t = n.tokenizeStrings(e.queries, INPUT_LIMIT)
                                    , r = n.tokenizeStrings(e.responses, INPUT_LIMIT);
                                if (null != e.contexts && e.contexts.length !== e.responses.length)
                                    throw new Error("The length of response strings and context strings need to match.");
                                var o = e.contexts || [];
                                null == e.contexts && (o.length = e.responses.length,
                                    o.fill(""));
                                var i = n.tokenizeStrings(o, INPUT_LIMIT)
                                    , a = {};
                                return a[QUERY_NODE_NAME] = t,
                                    a[RESPONSE_NODE_NAME] = r,
                                    a[RESPONSE_CONTEXT_NODE_NAME] = i,
                                    n.model.execute(a, [QUERY_RESULT_NODE_NAME, RESPONSE_RESULT_NODE_NAME]);
                            });
                    return {
                        queryEmbedding: t[0],
                        responseEmbedding: t[1]
                    };
                }
                ,
                e.prototype.tokenizeStrings = function (e, n) {
                    var t = this
                        , r = e.map(function (e) {
                            return t.shiftTokens(t.tokenizer.encode(e), INPUT_LIMIT);
                        });
                    return (0,
                        _tfjsCore.tensor2d)(r, [e.length, INPUT_LIMIT], "int32");
                }
                ,
                e.prototype.shiftTokens = function (e, n) {
                    e.unshift(TOKEN_START_VALUE);
                    for (var t = 0; t < n; t++)
                        t >= e.length ? e[t] = TOKEN_PADDING : SKIP_VALUES.includes(e[t]) || (e[t] += OFFSET);
                    return e.slice(0, n);
                }
                ,
                e;
        }()
            , BASE_PATH$1 = "https://storage.googleapis.com/tfjs-models/savedmodel/universal_sentence_encoder";
        function load(e) {
            return __awaiter(this, void 0, void 0, function () {
                var n;
                return __generator(this, function (t) {
                    switch (t.label) {
                        case 0:
                            return [4, (n = new UniversalSentenceEncoder()).load(e)];
                        case 1:
                            return t.sent(),
                                [2, n];
                    }
                });
            });
        }
        var UniversalSentenceEncoder = function () {
            function e() { }
            return e.prototype.loadModel = function (e) {
                return __awaiter(this, void 0, void 0, function () {
                    return __generator(this, function (n) {
                        return [2, e ? (0,
                            _tfjsConverter.loadGraphModel)(e) : (0,
                                _tfjsConverter.loadGraphModel)("https://tfhub.dev/tensorflow/tfjs-model/universal-sentence-encoder-lite/1/default/1", {
                                    fromTFHub: !0
                                })];
                    });
                });
            }
                ,
                e.prototype.load = function (e) {
                    return void 0 === e && (e = {}),
                        __awaiter(this, void 0, void 0, function () {
                            var n, t, r;
                            return __generator(this, function (o) {
                                switch (o.label) {
                                    case 0:
                                        return [4, Promise.all([this.loadModel(e.modelUrl), loadVocabulary(e.vocabUrl || BASE_PATH$1 + "/vocab.json")])];
                                    case 1:
                                        return n = o.sent(),
                                            t = n[0],
                                            r = n[1],
                                            this.model = t,
                                            this.tokenizer = new Tokenizer(r),
                                            [2];
                                }
                            });
                        });
                }
                ,
                e.prototype.embed = function (e) {
                    return __awaiter(this, void 0, void 0, function () {
                        var n, t, r, o, i, a, s, u, l = this;
                        return __generator(this, function (c) {
                            switch (c.label) {
                                case 0:
                                    for ("string" == typeof e && (e = [e]),
                                        n = e.map(function (e) {
                                            return l.tokenizer.encode(e);
                                        }),
                                        t = n.map(function (e, n) {
                                            return e.map(function (e, t) {
                                                return [n, t];
                                            });
                                        }),
                                        r = [],
                                        o = 0; o < t.length; o++)
                                        r = r.concat(t[o]);
                                    return i = (0,
                                        _tfjsCore.tensor2d)(r, [r.length, 2], "int32"),
                                        a = (0,
                                            _tfjsCore.tensor1d)(_tfjsCore.util.flatten(n), "int32"),
                                        s = {
                                            indices: i,
                                            values: a
                                        },
                                        [4, this.model.executeAsync(s)];
                                case 1:
                                    return u = c.sent(),
                                        i.dispose(),
                                        a.dispose(),
                                        [2, u];
                            }
                        });
                    });
                }
                ,
                e;
        }();
        exports.UniversalSentenceEncoder = UniversalSentenceEncoder;

    }
        , {
        "@tensorflow/tfjs-converter": 21,
        "@tensorflow/tfjs-core": 506
    }],
    7: [function (require, module, exports) {
        /**
         * @license
         * Copyright 2022 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        'use strict';

        Object.defineProperty(exports, '__esModule', {
            value: true
        });

        var tfjsCore = require('@tensorflow/tfjs-core');
        var seedrandom = require('seedrandom');

        function _interopNamespace(e) {
            if (e && e.__esModule)
                return e;
            var n = Object.create(null);
            if (e) {
                Object.keys(e).forEach(function (k) {
                    if (k !== 'default') {
                        var d = Object.getOwnPropertyDescriptor(e, k);
                        Object.defineProperty(n, k, d.get ? d : {
                            enumerable: true,
                            get: function () {
                                return e[k];
                            }
                        });
                    }
                });
            }
            n["default"] = e;
            return n;
        }

        var seedrandom__namespace = /*#__PURE__*/
            _interopNamespace(seedrandom);

        /******************************************************************************
        Copyright (c) Microsoft Corporation.
        
        Permission to use, copy, modify, and/or distribute this software for any
        purpose with or without fee is hereby granted.
        
        THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
        REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
        AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
        INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
        LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
        OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
        PERFORMANCE OF THIS SOFTWARE.
        ***************************************************************************** */
        /* global Reflect, Promise */
        var extendStatics = function (d, b) {
            extendStatics = Object.setPrototypeOf || ({
                __proto__: []
            } instanceof Array && function (d, b) {
                d.__proto__ = b;
            }
            ) || function (d, b) {
                for (var p in b)
                    if (Object.prototype.hasOwnProperty.call(b, p))
                        d[p] = b[p];
            }
                ;
            return extendStatics(d, b);
        };
        function __extends(d, b) {
            if (typeof b !== "function" && b !== null)
                throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
            extendStatics(d, b);
            function __() {
                this.constructor = d;
            }
            d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype,
                new __());
        }
        function __awaiter(thisArg, _arguments, P, generator) {
            function adopt(value) {
                return value instanceof P ? value : new P(function (resolve) {
                    resolve(value);
                }
                );
            }
            return new (P || (P = Promise))(function (resolve, reject) {
                function fulfilled(value) {
                    try {
                        step(generator.next(value));
                    } catch (e) {
                        reject(e);
                    }
                }
                function rejected(value) {
                    try {
                        step(generator["throw"](value));
                    } catch (e) {
                        reject(e);
                    }
                }
                function step(result) {
                    result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
                }
                step((generator = generator.apply(thisArg, _arguments || [])).next());
            }
            );
        }
        function __generator(thisArg, body) {
            var _ = {
                label: 0,
                sent: function () {
                    if (t[0] & 1)
                        throw t[1];
                    return t[1];
                },
                trys: [],
                ops: []
            }, f, y, t, g;
            return g = {
                next: verb(0),
                "throw": verb(1),
                "return": verb(2)
            },
                typeof Symbol === "function" && (g[Symbol.iterator] = function () {
                    return this;
                }
                ),
                g;
            function verb(n) {
                return function (v) {
                    return step([n, v]);
                }
                    ;
            }
            function step(op) {
                if (f)
                    throw new TypeError("Generator is already executing.");
                while (_)
                    try {
                        if (f = 1,
                            y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y),
                                0) : y.next) && !(t = t.call(y, op[1])).done)
                            return t;
                        if (y = 0,
                            t)
                            op = [op[0] & 2, t.value];
                        switch (op[0]) {
                            case 0:
                            case 1:
                                t = op;
                                break;
                            case 4:
                                _.label++;
                                return {
                                    value: op[1],
                                    done: false
                                };
                            case 5:
                                _.label++;
                                y = op[1];
                                op = [0];
                                continue;
                            case 7:
                                op = _.ops.pop();
                                _.trys.pop();
                                continue;
                            default:
                                if (!(t = _.trys,
                                    t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
                                    _ = 0;
                                    continue;
                                }
                                if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) {
                                    _.label = op[1];
                                    break;
                                }
                                if (op[0] === 6 && _.label < t[1]) {
                                    _.label = t[1];
                                    t = op;
                                    break;
                                }
                                if (t && _.label < t[2]) {
                                    _.label = t[2];
                                    _.ops.push(op);
                                    break;
                                }
                                if (t[2])
                                    _.ops.pop();
                                _.trys.pop();
                                continue;
                        }
                        op = body.call(thisArg, _);
                    } catch (e) {
                        op = [6, e];
                        y = 0;
                    } finally {
                        f = t = 0;
                    }
                if (op[0] & 5)
                    throw op[1];
                return {
                    value: op[0] ? op[1] : void 0,
                    done: true
                };
            }
        }
        function __values(o) {
            var s = typeof Symbol === "function" && Symbol.iterator
                , m = s && o[s]
                , i = 0;
            if (m)
                return m.call(o);
            if (o && typeof o.length === "number")
                return {
                    next: function () {
                        if (o && i >= o.length)
                            o = void 0;
                        return {
                            value: o && o[i++],
                            done: !o
                        };
                    }
                };
            throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
        }
        function __read(o, n) {
            var m = typeof Symbol === "function" && o[Symbol.iterator];
            if (!m)
                return o;
            var i = m.call(o), r, ar = [], e;
            try {
                while ((n === void 0 || n-- > 0) && !(r = i.next()).done)
                    ar.push(r.value);
            } catch (error) {
                e = {
                    error: error
                };
            } finally {
                try {
                    if (r && !r.done && (m = i["return"]))
                        m.call(i);
                } finally {
                    if (e)
                        throw e.error;
                }
            }
            return ar;
        }
        function __spreadArray(to, from, pack) {
            if (pack || arguments.length === 2)
                for (var i = 0, l = from.length, ar; i < l; i++) {
                    if (ar || !(i in from)) {
                        if (!ar)
                            ar = Array.prototype.slice.call(from, 0, i);
                        ar[i] = from[i];
                    }
                }
            return to.concat(ar || Array.prototype.slice.call(from));
        }

        /**
         * @license
         * Copyright 2019 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function assertNotComplex(tensor, opName) {
            if (!Array.isArray(tensor)) {
                tensor = [tensor];
            }
            tensor.forEach(function (t) {
                if (t != null) {
                    tfjsCore.util.assert(t.dtype !== 'complex64', function () {
                        return "".concat(opName, " does not support complex64 tensors in the CPU backend.");
                    });
                }
            });
        }

        var whereImpl = tfjsCore.kernel_impls.whereImpl;
        var MathBackendCPU = /** @class */
            (function (_super) {
                __extends(MathBackendCPU, _super);
                function MathBackendCPU() {
                    var _this = _super.call(this) || this;
                    _this.blockSize = 48;
                    _this.firstUse = true;
                    _this.data = new tfjsCore.DataStorage(_this, tfjsCore.engine());
                    return _this;
                }
                MathBackendCPU.prototype.nextDataId = function () {
                    return MathBackendCPU.nextDataId++;
                }
                    ;
                MathBackendCPU.prototype.write = function (values, shape, dtype) {
                    if (this.firstUse) {
                        this.firstUse = false;
                        if (tfjsCore.env().get('IS_NODE')) {
                            tfjsCore.backend_util.warn('\n============================\n' + 'Hi, looks like you are running TensorFlow.js in ' + 'Node.js. To speed things up dramatically, install our node ' + 'backend, visit https://github.com/tensorflow/tfjs-node for more details. ' + '\n============================');
                        }
                    }
                    var dataId = {
                        id: this.nextDataId()
                    };
                    this.data.set(dataId, {
                        values: values,
                        dtype: dtype,
                        refCount: 1
                    });
                    return dataId;
                }
                    ;
                /**
                 * Create a data bucket in cpu backend.
                 * @param shape Shape of the `TensorInfo`.
                 * @param dtype DType of the `TensorInfo`.
                 * @param values The value of the `TensorInfo` stored as a flattened array.
                 */
                MathBackendCPU.prototype.makeTensorInfo = function (shape, dtype, values) {
                    var outId;
                    if (dtype === 'string' && values != null && values.length > 0 && tfjsCore.util.isString(values[0])) {
                        var encodedValues = values.map(function (d) {
                            return tfjsCore.util.encodeString(d);
                        });
                        outId = this.write(encodedValues, shape, dtype);
                    } else {
                        outId = this.write(values, shape, dtype);
                    }
                    return {
                        dataId: outId,
                        shape: shape,
                        dtype: dtype
                    };
                }
                    ;
                /** Return refCount of a `TensorData`. */
                MathBackendCPU.prototype.refCount = function (dataId) {
                    if (this.data.has(dataId)) {
                        var tensorData = this.data.get(dataId);
                        return tensorData.refCount;
                    }
                    return 0;
                }
                    ;
                /** Increase refCount of a `TensorData`. */
                MathBackendCPU.prototype.incRef = function (dataId) {
                    var tensorData = this.data.get(dataId);
                    tensorData.refCount++;
                }
                    ;
                /** Decrease refCount of a `TensorData`. */
                MathBackendCPU.prototype.decRef = function (dataId) {
                    if (this.data.has(dataId)) {
                        var tensorData = this.data.get(dataId);
                        tensorData.refCount--;
                    }
                }
                    ;
                MathBackendCPU.prototype.move = function (dataId, values, shape, dtype, refCount) {
                    this.data.set(dataId, {
                        values: values,
                        dtype: dtype,
                        refCount: refCount
                    });
                }
                    ;
                MathBackendCPU.prototype.numDataIds = function () {
                    return this.data.numDataIds();
                }
                    ;
                MathBackendCPU.prototype.read = function (dataId) {
                    return __awaiter(this, void 0, void 0, function () {
                        return __generator(this, function (_b) {
                            return [2 /*return*/
                                , this.readSync(dataId)];
                        });
                    });
                }
                    ;
                MathBackendCPU.prototype.readSync = function (dataId) {
                    var _b = this.data.get(dataId)
                        , dtype = _b.dtype
                        , complexTensorInfos = _b.complexTensorInfos;
                    if (dtype === 'complex64') {
                        var realValues = this.readSync(complexTensorInfos.real.dataId);
                        var imagValues = this.readSync(complexTensorInfos.imag.dataId);
                        return tfjsCore.backend_util.mergeRealAndImagArrays(realValues, imagValues);
                    }
                    return this.data.get(dataId).values;
                }
                    ;
                MathBackendCPU.prototype.bufferSync = function (t) {
                    var data = this.readSync(t.dataId);
                    if (t.dtype === 'string') {
                        try {
                            // Decode the bytes into string.
                            var strings = data.map(function (d) {
                                return tfjsCore.util.decodeString(d);
                            });
                            return tfjsCore.buffer(t.shape, t.dtype, strings);
                        } catch (_a) {
                            throw new Error('Failed to decode encoded string bytes into utf-8');
                        }
                    }
                    return tfjsCore.buffer(t.shape, t.dtype, data);
                }
                    ;
                MathBackendCPU.prototype.makeOutput = function (values, shape, dtype) {
                    return tfjsCore.engine().makeTensorFromTensorInfo(this.makeTensorInfo(shape, dtype, values), this);
                }
                    ;
                /**
                 * Dispose the memory if the dataId has 0 refCount. Return true if the memory
                 * is released or memory is not managed in this backend, false if memory is
                 * not cleared.
                 * @param dataId
                 * @oaram force Optional, remove the data regardless of refCount
                 */
                MathBackendCPU.prototype.disposeData = function (dataId, force) {
                    if (force === void 0) {
                        force = false;
                    }
                    if (this.data.has(dataId)) {
                        this.data.get(dataId).refCount--;
                        if (!force && this.data.get(dataId).refCount > 0) {
                            return false;
                        }
                        var complexTensorInfos = this.data.get(dataId).complexTensorInfos;
                        if (complexTensorInfos != null) {
                            this.disposeData(complexTensorInfos.real.dataId, true);
                            this.disposeData(complexTensorInfos.imag.dataId, true);
                        }
                        this.data.delete(dataId);
                    }
                    return true;
                }
                    ;
                MathBackendCPU.prototype.disposeIntermediateTensorInfo = function (tensorInfo) {
                    this.disposeData(tensorInfo.dataId);
                }
                    ;
                MathBackendCPU.prototype.time = function (f) {
                    return __awaiter(this, void 0, void 0, function () {
                        var start, kernelMs;
                        return __generator(this, function (_b) {
                            start = tfjsCore.util.now();
                            f();
                            kernelMs = tfjsCore.util.now() - start;
                            return [2 /*return*/
                                , {
                                    kernelMs: kernelMs
                                }];
                        });
                    });
                }
                    ;
                MathBackendCPU.prototype.memory = function () {
                    return {
                        // Unreliable due to automatic gc. The numbers above are cumulative.
                        unreliable: true,
                        reasons: ['The reported memory is an upper bound. Due to automatic garbage ' + 'collection, the true allocated memory may be less.']
                    };
                }
                    ;
                MathBackendCPU.prototype.where = function (condition) {
                    assertNotComplex([condition], 'where');
                    var condVals = this.readSync(condition.dataId);
                    return whereImpl(condition.shape, condVals);
                }
                    ;
                MathBackendCPU.prototype.dispose = function () { }
                    ;
                MathBackendCPU.prototype.floatPrecision = function () {
                    return 32;
                }
                    ;
                /** Returns the smallest representable number.  */
                MathBackendCPU.prototype.epsilon = function () {
                    return _super.prototype.epsilon.call(this);
                }
                    ;
                return MathBackendCPU;
            }(tfjsCore.KernelBackend));
        MathBackendCPU.nextDataId = 0;

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the License);
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an AS IS BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function simpleAbsImpl(vals) {
            var resultValues = new Float32Array(vals.length);
            for (var i = 0; i < vals.length; ++i) {
                resultValues[i] = Math.abs(vals[i]);
            }
            return resultValues;
        }
        var abs = function (args) {
            var x = args.inputs.x;
            var cpuBackend = args.backend;
            assertNotComplex(x, 'abs');
            var resultValues = new Float32Array(tfjsCore.util.sizeFromShape(x.shape));
            var values = cpuBackend.data.get(x.dataId).values;
            resultValues = simpleAbsImpl(values);
            return cpuBackend.makeOutput(resultValues, x.shape, x.dtype);
        };
        var absConfig = {
            kernelName: tfjsCore.Abs,
            backendName: 'cpu',
            kernelFunc: abs,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        /**
         * Template that creates implementation for binary ops. Supports broadcast.
         */
        function createSimpleBinaryKernelImpl(op) {
            return function (aShape, bShape, aVals, bVals, dtype) {
                var newShape = tfjsCore.backend_util.assertAndGetBroadcastShape(aShape, bShape);
                var resultRank = newShape.length;
                var resultStrides = tfjsCore.util.computeStrides(newShape);
                var resultSize = tfjsCore.util.sizeFromShape(newShape);
                var result = tfjsCore.util.getTypedArrayFromDType(dtype, resultSize);
                var aRank = aShape.length;
                var bRank = bShape.length;
                var aStrides = tfjsCore.util.computeStrides(aShape);
                var bStrides = tfjsCore.util.computeStrides(bShape);
                var aBroadcastDims = tfjsCore.backend_util.getBroadcastDims(aShape, newShape);
                var bBroadcastDims = tfjsCore.backend_util.getBroadcastDims(bShape, newShape);
                if (aBroadcastDims.length + bBroadcastDims.length === 0) {
                    for (var i = 0; i < result.length; ++i) {
                        result[i] = op(aVals[i % aVals.length], bVals[i % bVals.length]);
                    }
                } else {
                    var _loop_1 = function (i) {
                        var loc = tfjsCore.util.indexToLoc(i, resultRank, resultStrides);
                        var aLoc = loc.slice(-aRank);
                        aBroadcastDims.forEach(function (d) {
                            return aLoc[d] = 0;
                        });
                        var aIndex = tfjsCore.util.locToIndex(aLoc, aRank, aStrides);
                        var bLoc = loc.slice(-bRank);
                        bBroadcastDims.forEach(function (d) {
                            return bLoc[d] = 0;
                        });
                        var bIndex = tfjsCore.util.locToIndex(bLoc, bRank, bStrides);
                        result[i] = op(aVals[aIndex], bVals[bIndex]);
                    };
                    for (var i = 0; i < result.length; ++i) {
                        _loop_1(i);
                    }
                }
                return [result, newShape];
            }
                ;
        }

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function complex(args) {
            var inputs = args.inputs
                , backend = args.backend;
            var real = inputs.real
                , imag = inputs.imag;
            var realVals = backend.data.get(real.dataId).values;
            var imagVals = backend.data.get(imag.dataId).values;
            var complexInfo = backend.makeTensorInfo(real.shape, 'complex64');
            var complex = backend.data.get(complexInfo.dataId);
            // The complex tensor owns the underlying real and imag tensorInfos, only the
            // complex tensor tracks refCount, when complexData is disposed the
            // underlying tensorData will be disposed.
            complex.complexTensorInfos = {
                real: backend.makeTensorInfo(real.shape, 'float32', realVals),
                imag: backend.makeTensorInfo(imag.shape, 'float32', imagVals)
            };
            return complexInfo;
        }
        var complexConfig = {
            kernelName: tfjsCore.Complex,
            backendName: 'cpu',
            kernelFunc: complex
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        /**
         * Generates a tensorInfo with all zeros value.
         * @param backend cpu backend.
         * @param shape Shape for the zeros tensor.
         * @param dtype Optional. If set, the result has this dtype.
         */
        function zeros(backend, shape, dtype) {
            if (dtype === void 0) {
                dtype = 'float32';
            }
            if (dtype === 'complex64') {
                var real = zeros(backend, shape, 'float32');
                var imag = zeros(backend, shape, 'float32');
                return complex({
                    inputs: {
                        real: real,
                        imag: imag
                    },
                    backend: backend
                });
            }
            var values = tfjsCore.util.makeZerosTypedArray(tfjsCore.util.sizeFromShape(shape), dtype);
            return backend.makeTensorInfo(shape, dtype, values);
        }

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function identity(args) {
            var inputs = args.inputs
                , backend = args.backend;
            var x = inputs.x;
            backend.incRef(x.dataId);
            return {
                dataId: x.dataId,
                shape: x.shape,
                dtype: x.dtype
            };
        }
        var identityConfig = {
            kernelName: tfjsCore.Identity,
            backendName: 'cpu',
            kernelFunc: identity
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function real(args) {
            var inputs = args.inputs
                , backend = args.backend;
            var input = inputs.input;
            var real = backend.data.get(input.dataId).complexTensorInfos.real;
            var realVal = backend.data.get(real.dataId).values;
            // When complex tensor is disposed, its underlying parts will be disposed too.
            // Make new tensor out of the real value of the complex. This makes sure the
            // value is still accessible even if complex tensor is disposed.
            return backend.makeTensorInfo(real.shape, real.dtype, realVal);
        }
        var realConfig = {
            kernelName: tfjsCore.Real,
            backendName: 'cpu',
            kernelFunc: real
        };

        function castImpl(values, shape, inputType, dtype) {
            if (dtype === 'int32') {
                var resultValues = Int32Array.from(values);
                return [shape, 'int32', resultValues];
            }
            if (dtype === 'bool') {
                // This is essentially the result of notEqual(x, 0). We avoid using
                // kernel notEqual to avoid circular dependency, i.e. binary_utils ->
                // cast -> notEqual -> binary_utils.
                var zero = tfjsCore.util.toTypedArray([0], inputType);
                var _a = __read(createSimpleBinaryKernelImpl(function (a, b) {
                    return (a !== b) ? 1 : 0;
                })(shape, [], values, zero, 'bool'), 2)
                    , resultData = _a[0]
                    , resultShape = _a[1];
                return [resultShape, 'bool', resultData];
            }
            throw new Error("Error in Cast: failed to cast ".concat(inputType, " to ").concat(dtype));
        }
        function cast(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x;
            var dtype = attrs.dtype;
            // Casting to complex64.
            if (dtype === 'complex64') {
                if (x.dtype === 'complex64') {
                    return identity({
                        inputs: {
                            x: x
                        },
                        backend: backend
                    });
                }
                var zerosTensorInfo = zeros(backend, x.shape, x.dtype);
                var floatX = cast({
                    inputs: {
                        x: x
                    },
                    backend: backend,
                    attrs: {
                        dtype: 'float32'
                    }
                });
                var result = complex({
                    inputs: {
                        real: floatX,
                        imag: zerosTensorInfo
                    },
                    backend: backend
                });
                backend.disposeIntermediateTensorInfo(zerosTensorInfo);
                backend.disposeIntermediateTensorInfo(floatX);
                return result;
            }
            // Casting from complex64
            if (x.dtype === 'complex64') {
                var realPart = real({
                    inputs: {
                        input: x
                    },
                    backend: backend
                });
                var result = cast({
                    inputs: {
                        x: realPart
                    },
                    backend: backend,
                    attrs: {
                        dtype: dtype
                    }
                });
                backend.disposeIntermediateTensorInfo(realPart);
                return result;
            }
            if (!tfjsCore.util.hasEncodingLoss(x.dtype, dtype)) {
                // We don't change the underlying data, since we cast to higher
                // precision.
                var result = identity({
                    inputs: {
                        x: x
                    },
                    backend: backend
                });
                return {
                    dataId: result.dataId,
                    shape: result.shape,
                    dtype: dtype
                };
            }
            var values = backend.data.get(x.dataId).values;
            var _a = __read(castImpl(values, x.shape, x.dtype, dtype), 3)
                , resultShape = _a[0]
                , resultType = _a[1]
                , resultData = _a[2];
            return backend.makeTensorInfo(resultShape, resultType, resultData);
        }
        var castConfig = {
            kernelName: tfjsCore.Cast,
            backendName: 'cpu',
            kernelFunc: cast
        };

        /**
         * Template that creates a `KernelFunc` for binary ops.
         * @param name Kernel name.
         * @param binaryKernelImpl A `SimpleBinaryKernelImpl` for the kernel.
         * @param binaryKernelComplexImpl Optional. If exists, represents a
         *     `ComplexBinaryKernelImpl` for the kernel, will be used when input dtype
         *     is `complex64`.
         * @param dtype Optional. If set, the result has this dtype. Otherwise, the
         *     result has the same dtype as the first input. This is mainly used in
         *     comparison kernels, such as Equal, Less, Greater, etc.
         */
        function binaryKernelFunc(name, simpleImpl, complexImpl, dtype) {
            if (complexImpl == null) {
                return function (_a) {
                    var inputs = _a.inputs
                        , backend = _a.backend;
                    var a = inputs.a
                        , b = inputs.b;
                    var cpuBackend = backend;
                    assertNotComplex([a, b], name);
                    var aVals = cpuBackend.data.get(a.dataId).values;
                    var bVals = cpuBackend.data.get(b.dataId).values;
                    var decodedAVals = a.dtype === 'string' ? // tslint:disable-next-line: no-any
                        tfjsCore.backend_util.fromUint8ToStringArray(aVals) : aVals;
                    var decodedBVals = a.dtype === 'string' ? // tslint:disable-next-line: no-any
                        tfjsCore.backend_util.fromUint8ToStringArray(bVals) : bVals;
                    var $dtype = dtype || a.dtype;
                    var _b = __read(simpleImpl(a.shape, b.shape, decodedAVals, decodedBVals, $dtype), 2)
                        , resultData = _b[0]
                        , resultShape = _b[1];
                    return cpuBackend.makeTensorInfo(resultShape, $dtype, resultData);
                }
                    ;
            }
            return function (_a) {
                var inputs = _a.inputs
                    , backend = _a.backend;
                var a = inputs.a
                    , b = inputs.b;
                var cpuBackend = backend;
                if (a.dtype === 'complex64' || b.dtype === 'complex64') {
                    var $aComplex = cast({
                        inputs: {
                            x: a
                        },
                        backend: cpuBackend,
                        attrs: {
                            dtype: 'complex64'
                        }
                    });
                    var $aComplexVals = cpuBackend.data.get($aComplex.dataId);
                    var aReal = $aComplexVals.complexTensorInfos.real;
                    var aImag = $aComplexVals.complexTensorInfos.imag;
                    var aRealVals = cpuBackend.data.get(aReal.dataId).values;
                    var aImagVals = cpuBackend.data.get(aImag.dataId).values;
                    var $bComplex = cast({
                        inputs: {
                            x: b
                        },
                        backend: cpuBackend,
                        attrs: {
                            dtype: 'complex64'
                        }
                    });
                    var $bComplexVals = cpuBackend.data.get($bComplex.dataId);
                    var bReal = $bComplexVals.complexTensorInfos.real;
                    var bImag = $bComplexVals.complexTensorInfos.imag;
                    var bRealVals = cpuBackend.data.get(bReal.dataId).values;
                    var bImagVals = cpuBackend.data.get(bImag.dataId).values;
                    var _b = __read(complexImpl(a.shape, b.shape, aRealVals, aImagVals, bRealVals, bImagVals), 3)
                        , resultRealData = _b[0]
                        , resultImagData = _b[1]
                        , resultShape = _b[2];
                    var resultReal = cpuBackend.makeTensorInfo(resultShape, 'float32', resultRealData);
                    var resultImag = cpuBackend.makeTensorInfo(resultShape, 'float32', resultImagData);
                    var result = complex({
                        inputs: {
                            real: resultReal,
                            imag: resultImag
                        },
                        backend: cpuBackend
                    });
                    cpuBackend.disposeIntermediateTensorInfo($aComplex);
                    cpuBackend.disposeIntermediateTensorInfo($bComplex);
                    cpuBackend.disposeIntermediateTensorInfo(resultReal);
                    cpuBackend.disposeIntermediateTensorInfo(resultImag);
                    return result;
                } else {
                    var aVals = cpuBackend.data.get(a.dataId).values;
                    var bVals = cpuBackend.data.get(b.dataId).values;
                    var $dtype = dtype || a.dtype;
                    var _c = __read(simpleImpl(a.shape, b.shape, aVals, bVals, $dtype), 2)
                        , resultData = _c[0]
                        , resultShape = _c[1];
                    return cpuBackend.makeTensorInfo(resultShape, $dtype, resultData);
                }
            }
                ;
        }
        /**
         * Template that creates the complex type implementation for binary ops.
         * Supports broadcast.
         */
        function createComplexBinaryKernelImpl(op) {
            return function (aShape, bShape, aRealVals, aImagVals, bRealVals, bImagVals) {
                var resultShape = tfjsCore.backend_util.assertAndGetBroadcastShape(aShape, bShape);
                var resultSize = tfjsCore.util.sizeFromShape(resultShape);
                var resultRank = resultShape.length;
                var resultStrides = tfjsCore.util.computeStrides(resultShape);
                var resultRealVals = tfjsCore.util.getTypedArrayFromDType('float32', resultSize);
                var resultImagVals = tfjsCore.util.getTypedArrayFromDType('float32', resultSize);
                var aBroadcastDims = tfjsCore.backend_util.getBroadcastDims(aShape, resultShape);
                var bBroadcastDims = tfjsCore.backend_util.getBroadcastDims(bShape, resultShape);
                var aVals = tfjsCore.backend_util.mergeRealAndImagArrays(aRealVals, aImagVals);
                var bVals = tfjsCore.backend_util.mergeRealAndImagArrays(bRealVals, bImagVals);
                var aRank = aShape.length;
                var aStrides = tfjsCore.util.computeStrides(aShape);
                var bRank = bShape.length;
                var bStrides = tfjsCore.util.computeStrides(bShape);
                if (aBroadcastDims.length + bBroadcastDims.length === 0) {
                    for (var i = 0; i < resultRealVals.length; i++) {
                        var aIdx = i % aVals.length;
                        var bIdx = i % bVals.length;
                        var result = op(aVals[aIdx * 2], aVals[aIdx * 2 + 1], bVals[bIdx * 2], bVals[bIdx * 2 + 1]);
                        resultRealVals[i] = result.real;
                        resultImagVals[i] = result.imag;
                    }
                } else {
                    var _loop_1 = function (i) {
                        var loc = tfjsCore.util.indexToLoc(i, resultRank, resultStrides);
                        var aLoc = loc.slice(-aRank);
                        aBroadcastDims.forEach(function (d) {
                            return aLoc[d] = 0;
                        });
                        var aIndex = tfjsCore.util.locToIndex(aLoc, aRank, aStrides);
                        var bLoc = loc.slice(-bRank);
                        bBroadcastDims.forEach(function (d) {
                            return bLoc[d] = 0;
                        });
                        var bIndex = tfjsCore.util.locToIndex(bLoc, bRank, bStrides);
                        var opResult = op(aVals[aIndex * 2], aVals[aIndex * 2 + 1], bVals[bIndex * 2], bVals[bIndex * 2 + 1]);
                        resultRealVals[i] = opResult.real;
                        resultImagVals[i] = opResult.imag;
                    };
                    for (var i = 0; i < resultRealVals.length; i++) {
                        _loop_1(i);
                    }
                }
                return [resultRealVals, resultImagVals, resultShape];
            }
                ;
        }

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var addImpl = createSimpleBinaryKernelImpl((function (a, b) {
            return a + b;
        }
        ));
        var addComplexImpl = createComplexBinaryKernelImpl((function (aReal, aImag, bReal, bImag) {
            return {
                real: aReal + bReal,
                imag: aImag + bImag
            };
        }
        ));
        var add = binaryKernelFunc(tfjsCore.Add, addImpl, addComplexImpl);
        var addConfig = {
            kernelName: tfjsCore.Add,
            backendName: 'cpu',
            kernelFunc: add
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function bincountImpl(xVals, weightsVals, weightsDtype, weightsShape, size) {
            var weightsSize = tfjsCore.util.sizeFromShape(weightsShape);
            var outVals = tfjsCore.util.makeZerosTypedArray(size, weightsDtype);
            for (var i = 0; i < xVals.length; i++) {
                var value = xVals[i];
                if (value < 0) {
                    throw new Error('Input x must be non-negative!');
                }
                if (value >= size) {
                    continue;
                }
                if (weightsSize > 0) {
                    outVals[value] += weightsVals[i];
                } else {
                    outVals[value] += 1;
                }
            }
            return outVals;
        }
        function bincountReduceImpl(xBuf, weightsBuf, size, binaryOutput) {
            if (binaryOutput === void 0) {
                binaryOutput = false;
            }
            var numRows = xBuf.shape[0];
            var numCols = xBuf.shape[1];
            var outBuf = tfjsCore.buffer([numRows, size], weightsBuf.dtype);
            for (var i = 0; i < numRows; i++) {
                for (var j = 0; j < numCols; j++) {
                    var value = xBuf.get(i, j);
                    if (value < 0) {
                        throw new Error('Input x must be non-negative!');
                    }
                    if (value >= size) {
                        continue;
                    }
                    if (binaryOutput) {
                        outBuf.set(1, i, value);
                    } else {
                        if (weightsBuf.size > 0) {
                            outBuf.set(outBuf.get(i, value) + weightsBuf.get(i, j), i, value);
                        } else {
                            outBuf.set(outBuf.get(i, value) + 1, i, value);
                        }
                    }
                }
            }
            return outBuf;
        }

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        /**
         * Template that creates implementation for unary op.
         */
        function createSimpleUnaryImpl(op) {
            return function (values, dtype, attrs) {
                var newValues = tfjsCore.util.getTypedArrayFromDType(dtype, values.length);
                for (var i = 0; i < values.length; ++i) {
                    newValues[i] = op(values[i], attrs);
                }
                return newValues;
            }
                ;
        }

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        /**
         * Template that creates a `KernelFunc` for unary ops.
         * @param name Kernel name.
         * @param op A `SimpleUnaryOperation` for the kernel.
         * @param dtype Optional. If set, the result has this dtype. Otherwise, the
         *     result has the same dtype as the input. This is mainly used in certain
         *     kernels that return bool type, such as isFinite, isInf, etc.
         */
        function unaryKernelFunc(name, op, dtype) {
            return function (_a) {
                var inputs = _a.inputs
                    , attrs = _a.attrs
                    , backend = _a.backend;
                var x = inputs.x;
                assertNotComplex(x, name);
                if (x.dtype === 'string' || dtype === 'string') {
                    throw new Error('unaryKernelFunc does not support string input/output');
                }
                var cpuBackend = backend;
                var values = cpuBackend.data.get(x.dataId).values;
                var xSize = tfjsCore.util.sizeFromShape(x.shape);
                var $dtype = dtype || x.dtype;
                var newValues = tfjsCore.util.getArrayFromDType($dtype, xSize);
                for (var i = 0; i < xSize; ++i) {
                    newValues[i] = op(values[i], attrs);
                }
                return cpuBackend.makeTensorInfo(x.shape, $dtype, newValues);
            }
                ;
        }
        /**
         * Template that creates a `KernelFunc` for unary ops from the given
         * `SimpleUnaryImpl`..
         * @param name Kernel name.
         * @param unaryImpl A `SimpleUnaryImpl` that implements the op.
         * @param dtype Optional. If set, the result has this dtype. Otherwise, the
         *     result has the same dtype as the input. This is mainly used in certain
         *     kernels that return bool type, such as isFinite, isInf, etc.
         */
        function unaryKernelFuncFromImpl(name, unaryImpl, dtype) {
            return function (_a) {
                var inputs = _a.inputs
                    , attrs = _a.attrs
                    , backend = _a.backend;
                var x = inputs.x;
                assertNotComplex(x, name);
                if (x.dtype === 'string' || dtype === 'string') {
                    throw new Error('unaryKernelFunc does not support string input/output');
                }
                var cpuBackend = backend;
                var values = cpuBackend.data.get(x.dataId).values;
                var $dtype = dtype || x.dtype;
                var newValues = unaryImpl(values, $dtype, attrs);
                return cpuBackend.makeTensorInfo(x.shape, $dtype, newValues);
            }
                ;
        }

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the License);
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an AS IS BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var ceilImpl = createSimpleUnaryImpl(function (xi) {
            return Math.ceil(xi);
        });
        var ceil = unaryKernelFuncFromImpl(tfjsCore.Ceil, ceilImpl);
        var ceilConfig = {
            kernelName: tfjsCore.Ceil,
            backendName: 'cpu',
            kernelFunc: ceil,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function concatImpl(inputs, outShape, dtype, simplyConcat) {
            var outVals = tfjsCore.util.getArrayFromDType(dtype, tfjsCore.util.sizeFromShape(outShape));
            if (simplyConcat && dtype !== 'string') {
                // Use built-in TypedArray.set() method for speed.
                var offset_1 = 0;
                inputs.forEach(function (input) {
                    var size = tfjsCore.util.sizeFromShape(input.shape);
                    outVals.set(input.vals, offset_1);
                    offset_1 += size;
                });
            } else {
                var colOffset_1 = 0;
                inputs.forEach(function (input) {
                    var decodedData = dtype === 'string' ? tfjsCore.backend_util.fromUint8ToStringArray(input.vals) : input.vals;
                    var tIdx = 0;
                    for (var row = 0; row < input.shape[0]; ++row) {
                        var resIdx = row * outShape[1] + colOffset_1;
                        for (var col = 0; col < input.shape[1]; ++col) {
                            outVals[resIdx + col] = decodedData[tIdx++];
                        }
                    }
                    colOffset_1 += input.shape[1];
                });
            }
            return outVals;
        }

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var equalImpl = createSimpleBinaryKernelImpl(function (a, b) {
            return (a === b) ? 1 : 0;
        });
        var equal = binaryKernelFunc(tfjsCore.Equal, equalImpl, null /* complexImpl */
            , 'bool');
        var equalConfig = {
            kernelName: tfjsCore.Equal,
            backendName: 'cpu',
            kernelFunc: equal
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the License);
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an AS IS BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var expImpl = createSimpleUnaryImpl(function (xi) {
            return Math.exp(xi);
        });
        var exp = unaryKernelFuncFromImpl(tfjsCore.Exp, expImpl, 'float32');
        var expConfig = {
            kernelName: tfjsCore.Exp,
            backendName: 'cpu',
            kernelFunc: exp,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the License);
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an AS IS BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var expm1Impl = createSimpleUnaryImpl(function (xi) {
            return Math.expm1(xi);
        });
        var expm1 = unaryKernelFuncFromImpl(tfjsCore.Expm1, expm1Impl);
        var expm1Config = {
            kernelName: tfjsCore.Expm1,
            backendName: 'cpu',
            kernelFunc: expm1,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the License);
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an AS IS BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var floorImpl = createSimpleUnaryImpl(function (xi) {
            return Math.floor(xi);
        });
        var floor = unaryKernelFuncFromImpl(tfjsCore.Floor, floorImpl);
        var floorConfig = {
            kernelName: tfjsCore.Floor,
            backendName: 'cpu',
            kernelFunc: floor,
        };

        function gatherNdImpl(indicesData, paramsBuf, dtype, numSlices, sliceRank, sliceSize, strides, paramsShape, paramsSize) {
            var outBuf = tfjsCore.buffer([numSlices, sliceSize], dtype);
            for (var i = 0; i < numSlices; i++) {
                var index = [];
                var flattenIndex = 0;
                for (var j = 0; j < sliceRank; j++) {
                    var dim = indicesData[i * sliceRank + j];
                    flattenIndex += dim * strides[j];
                    index.push(dim);
                }
                if (flattenIndex < 0 || flattenIndex >= paramsSize / sliceSize) {
                    throw new Error("Invalid indices: ".concat(index, " does not index into ").concat(paramsShape));
                }
                for (var k = 0; k < sliceSize; k++) {
                    outBuf.values[i * sliceSize + k] = paramsBuf.get.apply(paramsBuf, __spreadArray([], __read(paramsBuf.indexToLoc(flattenIndex * sliceSize + k)), false));
                }
            }
            return outBuf;
        }

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function gatherV2Impl(xBuf, indicesBuf, flattenOutputShape) {
            var outBuf = tfjsCore.buffer(flattenOutputShape, xBuf.dtype);
            for (var i = 0; i < outBuf.size; ++i) {
                var newLoc = outBuf.indexToLoc(i);
                var originalLoc = newLoc.slice();
                var batchIdx = originalLoc[0];
                var indicesIdx = originalLoc[2];
                var indicesIndex = indicesBuf.locToIndex([batchIdx, indicesIdx]);
                originalLoc[2] = indicesBuf.values[indicesIndex];
                var originalIndex = xBuf.locToIndex(originalLoc);
                if (0 <= originalIndex && originalIndex < xBuf.values.length) {
                    outBuf.values[i] = xBuf.values[originalIndex];
                }
                // Else, index is out of bounds, so leave the default zero val in outBuf.
            }
            return outBuf;
        }

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var greaterImpl = createSimpleBinaryKernelImpl(function (a, b) {
            return (a > b) ? 1 : 0;
        });
        var greater = binaryKernelFunc(tfjsCore.Greater, greaterImpl, null /* complexImpl */
            , 'bool');
        var greaterConfig = {
            kernelName: tfjsCore.Greater,
            backendName: 'cpu',
            kernelFunc: greater
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var greaterEqualImpl = createSimpleBinaryKernelImpl(function (a, b) {
            return (a >= b) ? 1 : 0;
        });
        var greaterEqual = binaryKernelFunc(tfjsCore.GreaterEqual, greaterEqualImpl, null /* complexImpl */
            , 'bool');
        var greaterEqualConfig = {
            kernelName: tfjsCore.GreaterEqual,
            backendName: 'cpu',
            kernelFunc: greaterEqual
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var lessImpl = createSimpleBinaryKernelImpl(function (a, b) {
            return (a < b) ? 1 : 0;
        });
        var less = binaryKernelFunc(tfjsCore.Less, lessImpl, null /* complexImpl */
            , 'bool');
        var lessConfig = {
            kernelName: tfjsCore.Less,
            backendName: 'cpu',
            kernelFunc: less
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var lessEqualImpl = createSimpleBinaryKernelImpl(function (a, b) {
            return (a <= b) ? 1 : 0;
        });
        var lessEqual = binaryKernelFunc(tfjsCore.LessEqual, lessEqualImpl, null /* complexImpl */
            , 'bool');
        var lessEqualConfig = {
            kernelName: tfjsCore.LessEqual,
            backendName: 'cpu',
            kernelFunc: lessEqual
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function linSpaceImpl(start, stop, num) {
            var step = (stop - start) / (num - 1);
            var values = tfjsCore.util.makeZerosTypedArray(num, 'float32');
            values[0] = start;
            for (var i = 1; i < values.length; i++) {
                values[i] = values[i - 1] + step;
            }
            return values;
        }

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the License);
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an AS IS BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var logImpl = createSimpleUnaryImpl(function (xi) {
            return Math.log(xi);
        });
        var log = unaryKernelFuncFromImpl(tfjsCore.Log, logImpl);
        var logConfig = {
            kernelName: tfjsCore.Log,
            backendName: 'cpu',
            kernelFunc: log,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function maxImpl(aVals, reduceSize, outShape, dtype) {
            var vals = tfjsCore.util.getTypedArrayFromDType(dtype, tfjsCore.util.sizeFromShape(outShape));
            for (var i = 0; i < vals.length; ++i) {
                var offset = i * reduceSize;
                var max = aVals[offset];
                for (var j = 0; j < reduceSize; ++j) {
                    var value = aVals[offset + j];
                    if (Number.isNaN(value) || value > max) {
                        // comparison with NaN always return false
                        max = value;
                    }
                }
                vals[i] = max;
            }
            return vals;
        }

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var maximumImpl = createSimpleBinaryKernelImpl((function (aValue, bValue) {
            return Math.max(aValue, bValue);
        }
        ));
        var maximum = binaryKernelFunc(tfjsCore.Maximum, maximumImpl);
        var maximumConfig = {
            kernelName: tfjsCore.Maximum,
            backendName: 'cpu',
            kernelFunc: maximum
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var minimumImpl = createSimpleBinaryKernelImpl((function (aValue, bValue) {
            return Math.min(aValue, bValue);
        }
        ));
        var minimum = binaryKernelFunc(tfjsCore.Minimum, minimumImpl);
        var minimumConfig = {
            kernelName: tfjsCore.Minimum,
            backendName: 'cpu',
            kernelFunc: minimum
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var multiplyImpl = createSimpleBinaryKernelImpl((function (aValue, bValue) {
            return aValue * bValue;
        }
        ));
        var multiplyComplexImpl = createComplexBinaryKernelImpl((function (aReal, aImag, bReal, bImag) {
            return {
                real: aReal * bReal - aImag * bImag,
                imag: aReal * bImag + aImag * bReal
            };
        }
        ));
        var multiply = binaryKernelFunc(tfjsCore.Multiply, multiplyImpl, multiplyComplexImpl);
        var multiplyConfig = {
            kernelName: tfjsCore.Multiply,
            backendName: 'cpu',
            kernelFunc: multiply
        };

        function negImpl(xVals, xShape, xDtype) {
            var minusOne = tfjsCore.util.createScalarValue(-1, xDtype);
            return multiplyImpl([], xShape, minusOne, xVals, xDtype);
        }
        function neg(args) {
            var inputs = args.inputs
                , backend = args.backend;
            var x = inputs.x;
            assertNotComplex(x, 'neg');
            var xVals = backend.data.get(x.dataId).values;
            var _a = __read(negImpl(xVals, x.shape, x.dtype), 2)
                , res = _a[0]
                , newShape = _a[1];
            return backend.makeTensorInfo(newShape, x.dtype, res);
        }
        var negConfig = {
            kernelName: tfjsCore.Neg,
            backendName: 'cpu',
            kernelFunc: neg
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var notEqualImpl = createSimpleBinaryKernelImpl((function (a, b) {
            return (a !== b) ? 1 : 0;
        }
        ));
        var notEqual = binaryKernelFunc(tfjsCore.NotEqual, notEqualImpl, null /* complexOp */
            , 'bool');
        var notEqualConfig = {
            kernelName: tfjsCore.NotEqual,
            backendName: 'cpu',
            kernelFunc: notEqual
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function transposeImpl(xVals, xShape, dtype, perm, newShape) {
            var xRank = xShape.length;
            var xSize = tfjsCore.util.sizeFromShape(xShape);
            var xStrides = tfjsCore.util.computeStrides(xShape);
            var newStrides = tfjsCore.util.computeStrides(newShape);
            var result = tfjsCore.util.getTypedArrayFromDType(dtype, tfjsCore.util.sizeFromShape(newShape));
            for (var i = 0; i < xSize; ++i) {
                var loc = tfjsCore.util.indexToLoc(i, xRank, xStrides);
                // Permute location.
                var newLoc = new Array(loc.length);
                for (var i_1 = 0; i_1 < newLoc.length; i_1++) {
                    newLoc[i_1] = loc[perm[i_1]];
                }
                var newIndex = tfjsCore.util.locToIndex(newLoc, xRank, newStrides);
                result[newIndex] = xVals[i];
            }
            return result;
        }

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function transpose(args) {
            var inputs = args.inputs
                , attrs = args.attrs
                , backend = args.backend;
            var x = inputs.x;
            var perm = attrs.perm;
            assertNotComplex(x, 'transpose');
            var xRank = x.shape.length;
            var newShape = new Array(xRank);
            for (var i = 0; i < newShape.length; i++) {
                newShape[i] = x.shape[perm[i]];
            }
            var values = backend.data.get(x.dataId).values;
            var result = transposeImpl(values, x.shape, x.dtype, perm, newShape);
            var dataId = backend.write(result, newShape, x.dtype);
            return {
                dataId: dataId,
                shape: newShape,
                dtype: x.dtype
            };
        }
        var transposeConfig = {
            kernelName: tfjsCore.Transpose,
            backendName: 'cpu',
            kernelFunc: transpose
        };

        function prodImpl(xShape, xDtype, xVals, reductionAxes) {
            var _a = __read(tfjsCore.backend_util.computeOutAndReduceShapes(xShape, reductionAxes), 2)
                , outShape = _a[0]
                , reduceShape = _a[1];
            var outDtype = tfjsCore.upcastType(xDtype, 'int32');
            var outVals = tfjsCore.util.makeZerosTypedArray(tfjsCore.util.sizeFromShape(outShape), outDtype);
            var reduceSize = tfjsCore.util.sizeFromShape(reduceShape);
            for (var i = 0; i < outVals.length; ++i) {
                var offset = i * reduceSize;
                var prod_1 = 1;
                for (var j = 0; j < reduceSize; ++j) {
                    prod_1 *= xVals[offset + j];
                }
                outVals[i] = prod_1;
            }
            return {
                outVals: outVals,
                outShape: outShape,
                outDtype: outDtype
            };
        }
        function prod(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x;
            var axis = attrs.axis
                , keepDims = attrs.keepDims;
            assertNotComplex(x, 'prod');
            var xRank = x.shape.length;
            var axes = tfjsCore.util.parseAxisParam(axis, x.shape);
            var permutation = tfjsCore.backend_util.getAxesPermutation(axes, xRank);
            var reductionAxes = axes;
            var permutedX = x;
            var intermediateTensorInfos = [];
            if (permutation != null) {
                permutedX = transpose({
                    inputs: {
                        x: x
                    },
                    backend: backend,
                    attrs: {
                        perm: permutation
                    }
                });
                intermediateTensorInfos.push(permutedX);
                reductionAxes = tfjsCore.backend_util.getInnerMostAxes(reductionAxes.length, xRank);
            }
            var xVals = backend.data.get(permutedX.dataId).values;
            var _a = prodImpl(permutedX.shape, permutedX.dtype, xVals, reductionAxes)
                , outVals = _a.outVals
                , outShape = _a.outShape
                , outDtype = _a.outDtype;
            var resultShape = outShape;
            if (keepDims) {
                resultShape = tfjsCore.backend_util.expandShapeToKeepDim(outShape, axes);
            }
            intermediateTensorInfos.forEach(function (t) {
                return backend.disposeIntermediateTensorInfo(t);
            });
            return backend.makeTensorInfo(resultShape, outDtype, outVals);
        }
        var prodConfig = {
            kernelName: tfjsCore.Prod,
            backendName: 'cpu',
            kernelFunc: prod
        };

        function validateIndices(indices, indicesShape, numParams) {
            indices.forEach(function (index, i) {
                if (index < 0 || index >= numParams) {
                    var locString = tfjsCore.util.indexToLoc(i, indicesShape.length, tfjsCore.util.computeStrides(indicesShape)).join(',');
                    throw new Error("indices[".concat(locString, "] = ").concat(index, " is not in [0, ").concat(numParams, ")"));
                }
            });
        }
        function validateSplits(paramsNestedSplits, numParamsDenseValues) {
            // Validate
            for (var dim = 0; dim < paramsNestedSplits.length; ++dim) {
                var splits = paramsNestedSplits[dim];
                var lastSplit = (dim === paramsNestedSplits.length - 1) ? numParamsDenseValues : paramsNestedSplits[dim + 1].length;
                if (splits.length === 0) {
                    throw new Error('Ragged splits may not be empty');
                }
                if (splits[0] < 0) {
                    throw new Error('Ragged splits must be non-negative');
                }
                if (splits[splits.length - 1] > lastSplit) {
                    throw new Error('Ragged splits must not point past values');
                }
                for (var i = 1; i < splits.length; ++i) {
                    if (splits[i - 1] > splits[i]) {
                        throw new Error('Ragged splits must be sorted in ascending order');
                    }
                }
            }
        }
        // Construct the `splits` output tensors, encoded using a nested vector.
        // Also find the slices of values that need to be copied, and store them
        // in `valueSlices`.  The total number of values that will be copied (which
        // we need for allocating the output values tensor) is stored in `numValues`.
        function makeSplits(indices, indicesShape, paramsNestedSplits, numParamsDenseValues) {
            var valueSlices = [];
            var numValues = 0;
            var numSplits = indicesShape.length - 1 + paramsNestedSplits.length;
            var outSplits = new Array(numSplits).fill(null).map(function () {
                return [0];
            });
            validateSplits(paramsNestedSplits, numParamsDenseValues);
            // Add `splits` that come from all but the last dimension of the dense
            // Tensor `indices`.  In particular, for each dimension D, we add a
            // splits tensor whose values are:
            //   range(reduceProd(splits.shape[:D]) + 1) * splits.shape[D+1]
            // E.g., if indices.shape=[2, 3, 4] then we will add splits tensors:
            //   [0, 3, 6]                    # length=2+1, stride=3
            //   [0, 4, 8, 12, 16, 20, 24]    # length=2*3+1, stride=4
            var nrows = 1;
            for (var dim = 0; dim < indicesShape.length - 1; ++dim) {
                nrows *= indicesShape[dim];
                var rowLength = indicesShape[dim + 1];
                for (var i = 1; i < nrows + 1; ++i) {
                    outSplits[dim].push(i * rowLength);
                }
            }
            // Add `splits` that come from `paramsNestedSplits`.  Starting with the
            // outermost ragged dimension (i.e., the first `splits` tensor), we work
            // our way in, finding the range of values that should be copied.  As we
            // go, we update the output `splits` for each dimension with the appropriate
            // values.  In particular, the *lengths* of the slices from `param_splits`
            // should be copied to generate corresponding slice lengths in the output
            // splits.  E.g., if we are copying a ragged row with length 4, then we
            // should add a new split point to outSplits that is 4 greater than the
            // previous split point in outSplits.
            for (var i = 0; i < indices.length; ++i) {
                var start = indices[i];
                var limit = indices[i] + 1;
                // Copy splits.
                for (var dim = 0; dim < paramsNestedSplits.length; ++dim) {
                    var splits = paramsNestedSplits[dim];
                    var outDim = dim + indicesShape.length - 1;
                    if (outDim >= 0) {
                        var outSplitsOutDim = outSplits[outDim];
                        var delta = outSplitsOutDim[outSplitsOutDim.length - 1] - splits[start];
                        for (var j = start; j < limit; ++j) {
                            outSplits[outDim].push(splits[j + 1] + delta);
                        }
                    }
                    start = splits[start];
                    limit = splits[limit];
                }
                if (limit !== start) {
                    valueSlices.push([start, limit]);
                    numValues += limit - start;
                }
            }
            return {
                outSplits: outSplits,
                valueSlices: valueSlices,
                numValues: numValues
            };
        }
        function getSplits(outSplits) {
            var splitsOut = [];
            var _loop_1 = function (i) {
                var numSplits = outSplits[i].length;
                var splits = tfjsCore.util.getArrayFromDType('int32', numSplits);
                splitsOut.push(splits);
                outSplits[i].forEach(function (value, j) {
                    return splits[j] = value;
                });
            };
            for (var i = 0; i < outSplits.length; ++i) {
                _loop_1(i);
            }
            return splitsOut;
        }
        function computeFlatOuterDims(orig, numOutDims) {
            var outDims = orig.slice(0, numOutDims);
            while (outDims.length < numOutDims) {
                outDims.push(1);
            }
            for (var inDim = numOutDims; inDim < orig.length; inDim++) {
                outDims[numOutDims - 1] *= orig[inDim];
            }
            return outDims;
        }
        // For each slice in `(start, limit)` in `valueSlices`, append
        // `paramsDenseValues[start,...,limit] to `values`.  `valueSize` indicates
        // the number of scalars contained in each value paramsDenseValues[i].
        function writeValueSlices(paramsDenseValues, paramsDenseValuesShape, valueSlices, valueSize, values, valuesShape) {
            var e_1, _a;
            var denseM = computeFlatOuterDims(paramsDenseValuesShape, 2)[1];
            var valuesM = computeFlatOuterDims(valuesShape, 2)[1];
            var outPos = 0;
            try {
                for (var valueSlices_1 = __values(valueSlices), valueSlices_1_1 = valueSlices_1.next(); !valueSlices_1_1.done; valueSlices_1_1 = valueSlices_1.next()) {
                    var slice = valueSlices_1_1.value;
                    for (var i = slice[0]; i < slice[1]; ++i) {
                        for (var j = 0; j < valueSize; ++j) {
                            values[outPos * valuesM + j] = paramsDenseValues[i * denseM + j];
                        }
                        ++outPos;
                    }
                }
            } catch (e_1_1) {
                e_1 = {
                    error: e_1_1
                };
            } finally {
                try {
                    if (valueSlices_1_1 && !valueSlices_1_1.done && (_a = valueSlices_1.return))
                        _a.call(valueSlices_1);
                } finally {
                    if (e_1)
                        throw e_1.error;
                }
            }
        }
        function getValues(paramsDenseValues, paramsDenseValuesShape, paramsDenseValuesDType, valueSlices, numValues) {
            var valuesShape = paramsDenseValuesShape.slice();
            valuesShape[0] = numValues;
            var valuesOut = tfjsCore.util.getArrayFromDType(paramsDenseValuesDType, tfjsCore.util.sizeFromShape(valuesShape));
            var numElements = paramsDenseValues.length;
            var valueSize = numElements === 0 ? 0 : (numElements / paramsDenseValuesShape[0]);
            writeValueSlices(paramsDenseValues, paramsDenseValuesShape, valueSlices, valueSize, valuesOut, valuesShape);
            return [valuesOut, valuesShape];
        }
        function raggedGatherImpl(paramsNestedSplits, paramsNestedSplitsShapes, paramsDenseValues, paramsDenseValuesShape, paramsDenseValuesDType, indices, indicesShape, outputRaggedRank) {
            if (paramsNestedSplits.length === 0) {
                throw new Error('paramsNestedSplits must be non empty');
            }
            if (paramsNestedSplitsShapes[0].length === 0) {
                throw new Error('Split tensors must not be scalars');
            }
            var numParams = paramsNestedSplitsShapes[0][0] - 1;
            validateIndices(indices, indicesShape, numParams);
            if (paramsDenseValuesShape.length === 0) {
                throw new Error('params.rank must be nonzero');
            }
            var numParamsDenseValues = paramsDenseValuesShape[0];
            // Calculate the `splits`, and store the value slices that we need to
            // copy in `valueSlices`.
            var _a = makeSplits(indices, indicesShape, paramsNestedSplits, numParamsDenseValues)
                , outSplits = _a.outSplits
                , valueSlices = _a.valueSlices
                , numValues = _a.numValues;
            // Write the output tensors.
            var outputNestedSplits = getSplits(outSplits);
            var outputDenseValues = getValues(paramsDenseValues, paramsDenseValuesShape, paramsDenseValuesDType, valueSlices, numValues);
            return [outputNestedSplits, outputDenseValues[0], outputDenseValues[1]];
        }

        /**
         * @license
         * Copyright 2022 Google LLC.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var INT32_MAX = 2147483647;
        function raggedRangeImpl(starts, startsShape, startsDType, limits, limitsShape, deltas, deltasShape) {
            // Check input tensor shapes.
            if (startsShape.length > 1) {
                throw new Error('starts must be a scalar or vector');
            }
            if (limitsShape.length > 1) {
                throw new Error('limits must be a scalar or vector');
            }
            if (deltasShape.length > 1) {
                throw new Error('deltas must be a scalar or vector');
            }
            // Determine which tensors we need to broadcast.
            var broadcastStarts = startsShape.length === 0;
            var broadcastLimits = limitsShape.length === 0;
            var broadcastDeltas = deltasShape.length === 0;
            // nRows (number of output rows) is the size of the non-broadcast inputs,
            // or 1 if all inputs are scalars.
            var inSizes = [];
            if (!broadcastStarts) {
                inSizes.push(startsShape[0]);
            }
            if (!broadcastLimits) {
                inSizes.push(limitsShape[0]);
            }
            if (!broadcastDeltas) {
                inSizes.push(deltasShape[0]);
            }
            for (var i = 1; i < inSizes.length; ++i) {
                if (inSizes[i] !== inSizes[i - 1]) {
                    throw new Error('starts, limits, and deltas must have the same shape');
                }
            }
            var nRows = inSizes.length === 0 ? 1 : inSizes[0];
            // Construct the rtNestedSplits tensor.
            var rtNestedSplits = tfjsCore.util.getArrayFromDType('int32', nRows + 1);
            rtNestedSplits[0] = 0;
            for (var row = 0; row < nRows; ++row) {
                var start = broadcastStarts ? starts[0] : starts[row];
                var limit = broadcastLimits ? limits[0] : limits[row];
                var delta = broadcastDeltas ? deltas[0] : deltas[row];
                if (delta === 0) {
                    throw new Error('Requires delta != 0');
                }
                var size = // The number of elements in the specified range.
                    void 0;
                // The number of elements in the specified range.
                if (((delta > 0) && (limit < start)) || ((delta < 0) && (limit > start))) {
                    size = 0;
                } else {
                    size = Math.ceil(Math.abs((limit - start) / delta));
                    if (size > INT32_MAX) {
                        throw new Error("Requires ((limit - start) / delta) <= ".concat(INT32_MAX));
                    }
                }
                rtNestedSplits[row + 1] = rtNestedSplits[row] + size;
            }
            var nVals = rtNestedSplits[nRows];
            // Construct the rtDenseValues tensor.
            var rtDenseValues = tfjsCore.util.getArrayFromDType(startsDType, nVals);
            var valueIndex = 0;
            for (var row = 0; row < nRows; ++row) {
                var rowSize = rtNestedSplits[row + 1] - rtNestedSplits[row];
                var value = broadcastStarts ? starts[0] : starts[row];
                var delta = broadcastDeltas ? deltas[0] : deltas[row];
                for (var i = 0; i < rowSize; ++i) {
                    rtDenseValues[valueIndex++] = value;
                    value += delta;
                }
            }
            return [rtNestedSplits, rtDenseValues];
        }

        var RowPartitionType = tfjsCore.backend_util.RowPartitionType;
        // Based on
        // https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/kernels/ragged_tensor_to_tensor_op.cc
        var RaggedTensorToTensorOp = /** @class */
            (function () {
                function RaggedTensorToTensorOp(shape, shapeShape, values, valuesShape, valuesDType, defaultValue, defaultValueShape, rowPartitionValues, rowPartitionValuesShapes, rowPartitionTypeStrings) {
                    this.shape = shape;
                    this.shapeShape = shapeShape;
                    this.values = values;
                    this.valuesShape = valuesShape;
                    this.valuesDType = valuesDType;
                    this.defaultValue = defaultValue;
                    this.defaultValueShape = defaultValueShape;
                    this.rowPartitionValues = rowPartitionValues;
                    this.rowPartitionValuesShapes = rowPartitionValuesShapes;
                    this.rowPartitionTypes = tfjsCore.backend_util.getRowPartitionTypesHelper(rowPartitionTypeStrings);
                    this.raggedRank = tfjsCore.backend_util.getRaggedRank(this.rowPartitionTypes);
                }
                RaggedTensorToTensorOp.prototype.getRowPartitionTypeByDimension = function (dimension) {
                    if (this.rowPartitionTypes[0] === RowPartitionType.FIRST_DIM_SIZE) {
                        return this.rowPartitionTypes[dimension + 1];
                    } else {
                        return this.rowPartitionTypes[dimension];
                    }
                }
                    ;
                // Returns the relationship between dimension and dimension + 1.
                RaggedTensorToTensorOp.prototype.getRowPartitionTensor = function (dimension) {
                    if (this.rowPartitionTypes[0] === RowPartitionType.FIRST_DIM_SIZE) {
                        return this.rowPartitionValues[dimension + 1];
                    } else {
                        return this.rowPartitionValues[dimension];
                    }
                }
                    ;
                RaggedTensorToTensorOp.prototype.getMaxWidth = function (dimension) {
                    var rowPartitionTensor = this.getRowPartitionTensor(dimension - 1);
                    switch (this.getRowPartitionTypeByDimension(dimension - 1)) {
                        case RowPartitionType.VALUE_ROWIDS:
                            return RaggedTensorToTensorOp.getMaxWidthValueRowID(rowPartitionTensor);
                        case RowPartitionType.ROW_SPLITS:
                            return RaggedTensorToTensorOp.getMaxWidthRowSplit(rowPartitionTensor);
                        default:
                            throw new Error("Cannot handle partition type ".concat(RowPartitionType[this.getRowPartitionTypeByDimension(dimension - 1)]));
                    }
                }
                    ;
                RaggedTensorToTensorOp.getMaxWidthRowSplit = function (rowSplit) {
                    var tensorLength = rowSplit.length;
                    if (tensorLength === 0 || tensorLength === 1) {
                        return 0;
                    }
                    var maxWidth = 0;
                    for (var i = 0; i < tensorLength - 1; ++i) {
                        var currentWidth = rowSplit[i + 1] - rowSplit[i];
                        if (currentWidth > maxWidth) {
                            maxWidth = currentWidth;
                        }
                    }
                    return maxWidth;
                }
                    ;
                RaggedTensorToTensorOp.getMaxWidthValueRowID = function (valueRowIds) {
                    var indexLength = valueRowIds.length;
                    if (indexLength === 0) {
                        return 0;
                    }
                    var firstEqualIndex = 0;
                    var firstEqualIndexValue = valueRowIds[0];
                    var maxWidth = 0;
                    for (var i = 1; i < indexLength; ++i) {
                        var value = valueRowIds[i];
                        if (value !== firstEqualIndexValue) {
                            firstEqualIndexValue = value;
                            maxWidth = Math.max(i - firstEqualIndex, maxWidth);
                            firstEqualIndex = i;
                        }
                    }
                    return Math.max(indexLength - firstEqualIndex, maxWidth);
                }
                    ;
                RaggedTensorToTensorOp.prototype.tensorShapeFromTensor = function (t, tShape, isPartial) {
                    if (isPartial === void 0) {
                        isPartial = true;
                    }
                    if (tShape.length === 0) {
                        if (t[0] === -1) {
                            return [];
                        }
                        throw new Error("The only valid scalar shape tensor is the fully unknown shape specified as -1.");
                    }
                    // MakePartialShape/MakeShapeHelper.
                    return makeShape(t, isPartial);
                }
                    ;
                RaggedTensorToTensorOp.prototype.calculateOutputSize = function (firstDim) {
                    var valueShape = this.valuesShape;
                    var defaultValueShape = this.defaultValueShape;
                    tfjsCore.backend_util.validateDefaultValueShape(defaultValueShape, valueShape);
                    var shape = this.tensorShapeFromTensor(this.shape, this.shapeShape);
                    var outputShape = tfjsCore.backend_util.combineRaggedTensorToTensorShapes(this.raggedRank, shape, valueShape);
                    var result = outputShape;
                    if (result[0] < 0) {
                        result[0] = firstDim;
                    }
                    for (var i = 1; i <= this.raggedRank; ++i) {
                        if (result[i] < 0) {
                            result[i] = this.getMaxWidth(i);
                        }
                    }
                    return result;
                }
                    ;
                /**
                 * The outputIndex represents the index in the output tensor
                 * where the first element of a particular dimension would be written.
                 * If it is -1, it indicates that the index is out of scope.
                 * Example, given firstDimension = 10, firstDimensionOutput = 6,
                 * and outputIndexMultiplier = 100:
                 * result = [0 100 200 300 400 500 -1 -1 -1 -1]
                 * If firstDimensionOutput = 11 instead, then:
                 * result = [0 100 200 300 400 500 600 700 800 900]
                 */
                RaggedTensorToTensorOp.prototype.calculateFirstParentOutputIndex = function (firstDimension, outputIndexMultiplier, firstDimensionOutput) {
                    var minDimension = Math.min(firstDimension, firstDimensionOutput);
                    var result = [];
                    var currentOutputIndex = 0;
                    for (var i = 0; i < minDimension; ++i,
                        currentOutputIndex += outputIndexMultiplier) {
                        result.push(currentOutputIndex);
                    }
                    for (var i = minDimension; i < firstDimension; ++i) {
                        result.push(-1);
                    }
                    tfjsCore.util.assert(result.length === firstDimension, function () {
                        return 'Final length of result must be equal to firstDimension.';
                    });
                    return result;
                }
                    ;
                RaggedTensorToTensorOp.prototype.calculateOutputIndexRowSplit = function (rowSplit, parentOutputIndex, outputIndexMultiplier, outputSize) {
                    var rowSplitSize = rowSplit.length;
                    var result = [];
                    for (var i = 0; i < rowSplitSize - 1; ++i) {
                        var rowLength = rowSplit[i + 1] - rowSplit[i];
                        var realLength = Math.min(outputSize, rowLength);
                        var parentOutputIndexCurrent = parentOutputIndex[i];
                        if (parentOutputIndexCurrent === -1) {
                            realLength = 0;
                        }
                        for (var j = 0; j < realLength; ++j) {
                            result.push(parentOutputIndexCurrent);
                            parentOutputIndexCurrent += outputIndexMultiplier;
                        }
                        for (var j = 0; j < rowLength - realLength; ++j) {
                            result.push(-1);
                        }
                    }
                    if (rowSplitSize > 0 && result.length !== rowSplit[rowSplitSize - 1]) {
                        throw new Error('Invalid row split size.');
                    }
                    return result;
                }
                    ;
                // Calculate the output index of the first element of a list.
                // The parentOutputIndex is the same computation for the previous list.
                // -1 indicates an element or list that is out of range.
                // The outputIndexMultiplier is the number of output indices one moves
                // forward for each column.
                // E.g., given:
                // valueRowIds:[0 1 2 2 2 3 5 5 6]
                // parentOutputIndex:[1000 1100 2000 2100 -1 3000 4000]
                // outputIndexMultiplier: 10
                // outputSize: 2
                // You get:
                // result = [1000 1100 2000 2010 -1 2100 -1 -1 3000]
                // result[0] = parentOutputIndex[valueRowIds[0]]
                // result[1] = parentOutputIndex[valueRowIds[1]]
                // result[2] = parentOutputIndex[valueRowIds[2]]
                // result[3] = parentOutputIndex[valueRowIds[2] + 10]
                // result[4] = -1 because it is the third element the size is 2.
                // result[5] = parentOutputIndex[valueRowIds[3]]
                // result[6] = -1 because parentOutputIndex[valueRowIds[6]] == -1
                // result[7] = -1 because parentOutputIndex[valueRowIds[6]] == -1
                // result[8] = parentOutputIndex[valueRowIds[7]]
                RaggedTensorToTensorOp.prototype.calculateOutputIndexValueRowID = function (valueRowIds, parentOutputIndex, outputIndexMultiplier, outputSize) {
                    var indexSize = valueRowIds.length;
                    var result = [];
                    if (indexSize === 0) {
                        return [];
                    }
                    var currentOutputColumn = 0;
                    var currentValueRowId = valueRowIds[0];
                    if (currentValueRowId >= parentOutputIndex.length) {
                        throw new Error("Got currentValueRowId=".concat(currentValueRowId, ", which is not less than ").concat(parentOutputIndex.length));
                    }
                    var currentOutputIndex = parentOutputIndex[currentValueRowId];
                    result.push(currentOutputIndex);
                    for (var i = 1; i < indexSize; ++i) {
                        var nextValueRowId = valueRowIds[i];
                        if (nextValueRowId === currentValueRowId) {
                            if (currentOutputIndex >= 0) {
                                ++currentOutputColumn;
                                if (currentOutputColumn < outputSize) {
                                    currentOutputIndex += outputIndexMultiplier;
                                } else {
                                    currentOutputIndex = -1;
                                }
                            }
                        } else {
                            currentOutputColumn = 0;
                            currentValueRowId = nextValueRowId;
                            if (nextValueRowId >= parentOutputIndex.length) {
                                throw new Error("Got nextValueRowId=".concat(nextValueRowId, " which is not less than ").concat(parentOutputIndex.length));
                            }
                            currentOutputIndex = parentOutputIndex[nextValueRowId];
                        }
                        result.push(currentOutputIndex);
                    }
                    if (result.length !== valueRowIds.length) {
                        throw new Error('Invalid row ids.');
                    }
                    return result;
                }
                    ;
                RaggedTensorToTensorOp.prototype.calculateOutputIndex = function (dimension, parentOutputIndex, outputIndexMultiplier, outputSize) {
                    var rowPartitionTensor = this.getRowPartitionTensor(dimension);
                    var partitionType = this.getRowPartitionTypeByDimension(dimension);
                    switch (partitionType) {
                        case RowPartitionType.VALUE_ROWIDS:
                            return this.calculateOutputIndexValueRowID(rowPartitionTensor, parentOutputIndex, outputIndexMultiplier, outputSize);
                        case RowPartitionType.ROW_SPLITS:
                            if (rowPartitionTensor.length - 1 > parentOutputIndex.length) {
                                throw new Error("Row partition size is greater than output size: ".concat(rowPartitionTensor.length - 1, " > ").concat(parentOutputIndex.length));
                            }
                            return this.calculateOutputIndexRowSplit(rowPartitionTensor, parentOutputIndex, outputIndexMultiplier, outputSize);
                        default:
                            throw new Error("Unsupported partition type: ".concat(RowPartitionType[partitionType]));
                    }
                }
                    ;
                RaggedTensorToTensorOp.prototype.getFirstDimensionSize = function () {
                    var firstPartitionTensor = this.rowPartitionValues[0];
                    if (this.rowPartitionTypes.length === 0) {
                        throw new Error('No row_partition_types given.');
                    }
                    var firstPartitionType = this.rowPartitionTypes[0];
                    switch (firstPartitionType) {
                        case RowPartitionType.FIRST_DIM_SIZE:
                            return firstPartitionTensor[0];
                        case RowPartitionType.VALUE_ROWIDS:
                            throw new Error('Cannot handle VALUE_ROWIDS in first dimension.');
                        case RowPartitionType.ROW_SPLITS:
                            return this.rowPartitionValuesShapes[0][0] - 1;
                        default:
                            throw new Error("Cannot handle type ".concat(RowPartitionType[firstPartitionType]));
                    }
                }
                    ;
                RaggedTensorToTensorOp.prototype.compute = function () {
                    var firstPartitionTensor = this.rowPartitionValues[0];
                    if (firstPartitionTensor.length <= 0) {
                        throw new Error('Invalid first partition input. ' + 'Tensor requires at least one element.');
                    }
                    var firstDimension = this.getFirstDimensionSize();
                    var outputSize = this.calculateOutputSize(firstDimension);
                    var multiplier = new Array(this.raggedRank + 1);
                    multiplier[multiplier.length - 1] = 1;
                    for (var i = multiplier.length - 2; i >= 0; --i) {
                        multiplier[i] = multiplier[i + 1] * outputSize[i + 1];
                    }
                    // Full size of the tensor.
                    var outputShape = makeShape(outputSize, false);
                    var outputTensor = tfjsCore.util.getArrayFromDType(this.valuesDType, tfjsCore.util.sizeFromShape(outputShape));
                    var fullSize = multiplier[0] * outputSize[0];
                    if (fullSize > 0) {
                        var outputIndex = this.calculateFirstParentOutputIndex(firstDimension, multiplier[0], outputSize[0]);
                        for (var i = 1; i <= this.raggedRank; ++i) {
                            var newOutputIndex = this.calculateOutputIndex(i - 1, outputIndex, multiplier[i], outputSize[i]);
                            outputIndex = newOutputIndex;
                        }
                        this.setOutput(this.raggedRank, outputIndex, outputTensor, outputShape);
                    }
                    return [outputShape, outputTensor];
                }
                    ;
                RaggedTensorToTensorOp.prototype.setOutput = function (raggedRank, outputIndex, outputTensor, outputShape) {
                    if (outputTensor.length === 0) {
                        return;
                    }
                    var valuesBase = this.values;
                    var outputBase = outputTensor;
                    var elementShape = outputShape.slice();
                    elementShape = elementShape.slice(raggedRank + 1);
                    var valueElementSize = tfjsCore.util.sizeFromShape(elementShape);
                    var outputIndexSize = outputIndex.length;
                    // Broadcast the default value to value_element_size.  (We can skip this
                    // if defaultValueTensor.size == 1, since we use fill when that's true.)
                    var defaultValue = this.defaultValue;
                    if (defaultValue.length !== valueElementSize && defaultValue.length !== 1) {
                        var srcShape_1 = this.defaultValueShape;
                        tfjsCore.tidy(function () {
                            var defaultValueTensor = tfjsCore.reshape(defaultValue, srcShape_1);
                            var bCastDefault = tfjsCore.broadcastTo(defaultValueTensor, elementShape);
                            defaultValue = bCastDefault.dataSync();
                        });
                    }
                    // Loop through the outputIndex array, finding contiguous regions that
                    // should be copied.  Once we find the end of a contiguous region, copy it
                    // and add any necessary padding (with defaultValue).
                    var srcStart = 0;
                    // Start of contiguous region (in values)
                    var dstStart = 0;
                    // Destination for contiguous region (in output)
                    var dstEnd = 0;
                    // Destination for contiguous region (in output)
                    for (var srcI = 0; srcI <= outputIndexSize; ++srcI) {
                        // dstI is the destination where the value at srcI should be copied.
                        var dstI = srcI < outputIndexSize ? outputIndex[srcI] : -1;
                        // If we're still in a contiguous region, then update dstEnd go to the
                        // next srcI.
                        if (dstI === dstEnd) {
                            ++dstEnd;
                            continue;
                        }
                        // We found the end of contiguous region.  This can be because we found
                        // a gap (dstI > dstEnd), or a source value that shouldn't be copied
                        // because it's out-of-bounds (dstI == -1), or the end of the tensor
                        // (dstI === -1).
                        if (dstStart < dstEnd) {
                            // Copy the contiguous region.
                            var src = valuesBase.subarray(srcStart * valueElementSize);
                            var dst = outputBase.subarray(dstStart * valueElementSize);
                            var nVals = (dstEnd - dstStart) * valueElementSize;
                            copyArray(dst, src, nVals);
                        }
                        // Add any necessary padding (w/ defaultValue).
                        if (srcI >= outputIndexSize) {
                            // We reached the end of values: pad to the end of output.
                            var outputSize = outputTensor.length;
                            dstI = Math.floor(outputSize / valueElementSize);
                        }
                        if (dstI > dstEnd) {
                            if (this.defaultValue.length === 1) {
                                outputBase.subarray(dstEnd * valueElementSize, dstI * valueElementSize).fill(this.defaultValue[0]);
                                dstEnd = dstI;
                            } else {
                                while (dstI > dstEnd) {
                                    var dst = outputBase.slice(dstEnd * valueElementSize);
                                    copyArray(dst, defaultValue, valueElementSize);
                                    ++dstEnd;
                                }
                            }
                        }
                        // Update indices.
                        if (dstI < 0) {
                            // srcI should be skipped -- leave it out of the contiguous region.
                            srcStart = srcI + 1;
                            dstStart = dstEnd;
                        } else {
                            // srcI should be copied -- include it in the contiguous region.
                            srcStart = srcI;
                            dstStart = dstEnd;
                            dstEnd = dstStart + 1;
                        }
                    }
                }
                    ;
                return RaggedTensorToTensorOp;
            }());
        function copyArray(dst, src, size) {
            for (var i = 0; i < size; i++) {
                dst[i] = src[i];
            }
        }
        function makeShape(shape, isPartial) {
            var e_1, _a;
            var out = [];
            try {
                for (var shape_1 = __values(shape), shape_1_1 = shape_1.next(); !shape_1_1.done; shape_1_1 = shape_1.next()) {
                    var dim = shape_1_1.value;
                    if (dim < 0) {
                        if (!isPartial) {
                            throw new Error("Dimension ".concat(dim, " must be >= 0"));
                        }
                        if (dim < -1) {
                            throw new Error("Dimension ".concat(dim, " must be >= -1"));
                        }
                        dim = -1;
                    }
                    out.push(dim);
                }
            } catch (e_1_1) {
                e_1 = {
                    error: e_1_1
                };
            } finally {
                try {
                    if (shape_1_1 && !shape_1_1.done && (_a = shape_1.return))
                        _a.call(shape_1);
                } finally {
                    if (e_1)
                        throw e_1.error;
                }
            }
            return out;
        }
        function raggedTensorToTensorImpl(shape, shapesShape, values, valuesShape, valuesDType, defaultValue, defaultValueShape, rowPartitionValues, rowPartitionValuesShapes, rowPartitionTypes) {
            return new RaggedTensorToTensorOp(shape, shapesShape, values, valuesShape, valuesDType, defaultValue, defaultValueShape, rowPartitionValues, rowPartitionValuesShapes, rowPartitionTypes).compute();
        }

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function rangeImpl(start, stop, step, dtype) {
            var sameStartStop = start === stop;
            var increasingRangeNegativeStep = start < stop && step < 0;
            var decreasingRangePositiveStep = stop < start && step > 1;
            if (sameStartStop || increasingRangeNegativeStep || decreasingRangePositiveStep) {
                return tfjsCore.util.makeZerosTypedArray(0, dtype);
            }
            var numElements = Math.abs(Math.ceil((stop - start) / step));
            var values = tfjsCore.util.makeZerosTypedArray(numElements, dtype);
            if (stop < start && step === 1) {
                // Auto adjust the step's sign if it hasn't been set
                // (or was set to 1)
                step = -1;
            }
            values[0] = start;
            for (var i = 1; i < values.length; i++) {
                values[i] = values[i - 1] + step;
            }
            return values;
        }

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the License);
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an AS IS BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var rsqrtImpl = createSimpleUnaryImpl(function (xi) {
            return 1 / Math.sqrt(xi);
        });
        var rsqrt = unaryKernelFuncFromImpl(tfjsCore.Rsqrt, rsqrtImpl);
        var rsqrtConfig = {
            kernelName: tfjsCore.Rsqrt,
            backendName: 'cpu',
            kernelFunc: rsqrt,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function scatterImpl(indices, updates, shape, outputSize, sliceSize, numUpdates, sliceRank, strides, defaultValue, sumDupeIndices) {
            var flattenShape = [outputSize / sliceSize, sliceSize];
            var indicesData = indices.values;
            var updatesData = updates.values;
            if (outputSize === 0) {
                return tfjsCore.buffer(shape, updates.dtype);
            }
            var outBuf = tfjsCore.buffer(flattenShape, updates.dtype);
            if (typeof defaultValue === 'string') {
                outBuf.values.fill(defaultValue);
            } else if (typeof defaultValue === 'number') {
                outBuf.values.fill(defaultValue);
            } else if (typeof defaultValue === 'boolean') {
                outBuf.values.fill(+defaultValue);
            }
            for (var i = 0; i < numUpdates; i++) {
                var index = [];
                var flattenIndex = 0;
                for (var j = 0; j < sliceRank; j++) {
                    var dim = indicesData[i * sliceRank + j];
                    index.push(dim);
                    flattenIndex += dim * strides[j];
                }
                if (flattenIndex < 0 || flattenIndex >= outputSize / sliceSize) {
                    throw new Error("Invalid indices: ".concat(index, " does not index into ").concat(shape));
                }
                for (var k = 0; k < sliceSize; k++) {
                    if (sumDupeIndices) {
                        outBuf.values[flattenIndex * sliceSize + k] += updatesData[i * sliceSize + k];
                    } else {
                        outBuf.values[flattenIndex * sliceSize + k] = updates.rank === 0 ? updatesData[0] : updatesData[i * sliceSize + k];
                    }
                }
            }
            return outBuf;
        }

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the License);
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an AS IS BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var sigmoidImpl = createSimpleUnaryImpl(function (xi) {
            return 1 / (1 + Math.exp(-xi));
        });
        var sigmoid = unaryKernelFunc(tfjsCore.Sigmoid, function (xi) {
            return 1 / (1 + Math.exp(-xi));
        });
        var sigmoidConfig = {
            kernelName: tfjsCore.Sigmoid,
            backendName: 'cpu',
            kernelFunc: sigmoid,
        };

        function sliceImpl(vals, begin, size, shape, dtype) {
            var isContinous = tfjsCore.slice_util.isSliceContinous(shape, begin, size);
            var length = tfjsCore.util.sizeFromShape(size);
            var xStrides = tfjsCore.util.computeStrides(shape);
            if (isContinous) {
                var flatOffset = tfjsCore.slice_util.computeFlatOffset(begin, xStrides);
                if (dtype === 'string') {
                    return vals.slice(flatOffset, flatOffset + length);
                }
                return vals.subarray(flatOffset, flatOffset + length);
            }
            var decodedData = dtype === 'string' ? tfjsCore.backend_util.fromUint8ToStringArray(vals) : vals;
            var inBuf = tfjsCore.buffer(shape, dtype, decodedData);
            var outBuf = tfjsCore.buffer(size, dtype);
            for (var i = 0; i < outBuf.size; ++i) {
                var outLoc = outBuf.indexToLoc(i);
                var inLoc = outLoc.map(function (idx, j) {
                    return idx + begin[j];
                });
                outBuf.set.apply(outBuf, __spreadArray([inBuf.get.apply(inBuf, __spreadArray([], __read(inLoc), false))], __read(outLoc), false));
            }
            if (dtype === 'string') {
                return tfjsCore.backend_util.fromStringArrayToUint8(outBuf.values);
            }
            return outBuf.values;
        }
        function slice(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x;
            var begin = attrs.begin
                , size = attrs.size;
            assertNotComplex(x, 'slice');
            var _a = __read(tfjsCore.slice_util.parseSliceParams(x, begin, size), 2)
                , $begin = _a[0]
                , $size = _a[1];
            tfjsCore.slice_util.assertParamsValid(x, $begin, $size);
            var vals = backend.data.get(x.dataId).values;
            var outVals = sliceImpl(vals, $begin, $size, x.shape, x.dtype);
            return backend.makeTensorInfo($size, x.dtype, outVals);
        }
        var sliceConfig = {
            kernelName: tfjsCore.Slice,
            backendName: 'cpu',
            kernelFunc: slice
        };

        /**
         * @license
         * Copyright 2021 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function sparseFillEmptyRowsImpl(indices, indicesShape, indicesDType, values, valuesDType, denseShape, defaultValue) {
            var indicesCount = indicesShape[0];
            var denseRows = denseShape[0];
            var emptyRowIndicator = new Array(denseRows);
            var reverseIndexMap = new Array(indicesCount);
            var rank = indicesShape[1];
            if (denseRows === 0) {
                if (indicesCount !== 0) {
                    throw new Error(tfjsCore.backend_util.getSparseFillEmptyRowsIndicesDenseShapeMismatch(indicesCount));
                }
                var outputIndices = tfjsCore.util.getArrayFromDType(indicesDType, 0);
                var outputValues = tfjsCore.util.getArrayFromDType(valuesDType, 0);
                return [outputIndices, [0, rank], outputValues, emptyRowIndicator, reverseIndexMap];
            }
            var rowsAreOrdered = true;
            var lastIndicesRow = 0;
            var csrOffset = new Array(denseRows).fill(0);
            for (var i = 0; i < indicesCount; ++i) {
                // indices is a 2d tensor with shape of [N, rank]
                var row = indices[i * rank];
                if (row < 0) {
                    throw new Error(tfjsCore.backend_util.getSparseFillEmptyRowsNegativeIndexErrorMessage(i, row));
                }
                if (row >= denseRows) {
                    throw new Error(tfjsCore.backend_util.getSparseFillEmptyRowsOutOfRangeIndexErrorMessage(i, row, denseRows));
                }
                ++csrOffset[row];
                rowsAreOrdered = rowsAreOrdered && (row >= lastIndicesRow);
                lastIndicesRow = row;
            }
            var allRowsFull = true;
            for (var row = 0; row < denseRows; ++row) {
                // csrOffset here describes the number of elements in this dense row
                var rowEmpty = (csrOffset[row] === 0);
                emptyRowIndicator[row] = rowEmpty;
                allRowsFull = allRowsFull && !rowEmpty;
                // In filled version, each row has at least one element.
                csrOffset[row] = Math.max(csrOffset[row], 1);
                // Update csrOffset to represent the number of elements up to and
                // including denseRows + 1:
                //  csrOffset[0] == #{elements of row 0}
                //  csrOffset[1] == #{elements of row 1} + #{elements of row 0}
                //  ..
                //  csrOffset[i] == starting index for elements in row i + 1.
                if (row > 0) {
                    csrOffset[row] += csrOffset[row - 1];
                }
            }
            if (allRowsFull && rowsAreOrdered) {
                var outputIndices = indices;
                var outputValues = values;
                for (var i = 0; i < indicesCount; ++i) {
                    reverseIndexMap[i] = i;
                }
                return [outputIndices, [indicesCount, rank], outputValues, emptyRowIndicator, reverseIndexMap];
            } else {
                var fullIndicesCount = csrOffset[denseRows - 1];
                var outputIndices = tfjsCore.util.getArrayFromDType(indicesDType, fullIndicesCount * rank);
                var outputValues = tfjsCore.util.getArrayFromDType(valuesDType, fullIndicesCount);
                var filledCount = new Array(denseRows).fill(0);
                // Fill in values for rows that are not missing
                for (var i = 0; i < indicesCount; ++i) {
                    // indices is a 2d tensor with shape of [N, rank]
                    var row = indices[i * rank];
                    var offset = filledCount[row];
                    var outputI = ((row === 0) ? 0 : csrOffset[row - 1]) + offset;
                    filledCount[row]++;
                    // Increment the filled count for this row.
                    for (var j = 0; j < rank; ++j) {
                        // indices and outputIndices are 2d tensors with shape of [N, rank]
                        outputIndices[outputI * rank + j] = indices[i * rank + j];
                    }
                    outputValues[outputI] = values[i];
                    // We'll need this reverse index map to backprop correctly.
                    reverseIndexMap[i] = outputI;
                }
                // Fill in values for rows that are missing
                for (var row = 0; row < denseRows; ++row) {
                    var rowCount = filledCount[row];
                    if (rowCount === 0) {
                        // We haven't filled this row
                        var startingIndex = (row === 0) ? 0 : csrOffset[row - 1];
                        // Remaining index values were set to zero already.
                        // Just need to set the row index in the right location.
                        // outputIndices is a 2d tensor with shape of [N, rank]
                        outputIndices[startingIndex * rank + 0] = row;
                        for (var col = 1; col < rank; ++col) {
                            outputIndices[startingIndex * rank + col] = 0;
                        }
                        outputValues[startingIndex] = defaultValue;
                    }
                }
                return [outputIndices, [fullIndicesCount, rank], outputValues, emptyRowIndicator, reverseIndexMap];
            }
        }

        /**
         * @license
         * Copyright 2021 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function sparseReshapeImpl(inputIndices, inputIndicesShape, inputDType, inputShape, targetShape) {
            var denseSize = tfjsCore.util.sizeFromShape(inputShape);
            var nnz = inputIndicesShape[0];
            var outputRank = targetShape.length;
            // Compute the output shape. Determine product of specified dimensions, and
            // find the index of the unspecified one.
            var outputShape = [];
            var product = 1;
            var unknownIndex = -1;
            for (var d = 0; d < outputRank; ++d) {
                var size = targetShape[d];
                if (size === -1) {
                    if (unknownIndex !== -1) {
                        throw new Error(tfjsCore.backend_util.getSparseReshapeMultipleNegativeOneOutputDimErrorMessage(unknownIndex, d));
                    }
                    unknownIndex = d;
                    outputShape.push(1);
                } else {
                    if (size < 0) {
                        throw new Error(tfjsCore.backend_util.getSparseReshapeNegativeOutputDimErrorMessage(d, size));
                    }
                    product *= size;
                    outputShape.push(size);
                }
            }
            if (unknownIndex !== -1) {
                if (product <= 0) {
                    throw new Error(tfjsCore.backend_util.getSparseReshapeEmptyTensorZeroOutputDimErrorMessage());
                }
                var missing = Math.trunc(denseSize / product);
                if (product * missing !== denseSize) {
                    throw new Error(tfjsCore.backend_util.getSparseReshapeInputOutputMultipleErrorMessage(inputShape, outputShape));
                }
                outputShape[unknownIndex] = missing;
            }
            var outputSize = tfjsCore.util.sizeFromShape(outputShape);
            if (outputSize !== denseSize) {
                throw new Error(tfjsCore.backend_util.getSparseReshapeInputOutputMismatchErrorMessage(inputShape, outputShape));
            }
            var inputRank = inputShape.length;
            var inputStrides = [];
            if (inputRank > 0) {
                inputStrides[inputRank - 1] = 1;
                for (var d = inputRank - 2; d >= 0; --d) {
                    inputStrides[d] = inputStrides[d + 1] * inputShape[d + 1];
                }
            }
            var outputStrides = [];
            if (outputRank > 0) {
                outputStrides[outputRank - 1] = 1;
                for (var d = outputRank - 2; d >= 0; --d) {
                    outputStrides[d] = outputStrides[d + 1] * outputShape[d + 1];
                }
            }
            var newIndices = tfjsCore.util.getArrayFromDType(inputDType, nnz * outputRank);
            for (var i = 0; i < nnz; ++i) {
                var id = 0;
                for (var j = 0; j < inputRank; ++j) {
                    // inputIndices is a 2d tensor with shape of [nnz, inputRank]
                    id += inputIndices[i * inputRank + j] * inputStrides[j];
                }
                for (var j = 0; j < outputRank; ++j) {
                    // newIndices is a 2d tensor with shape of [nnz, outputRank]
                    newIndices[i * outputRank + j] = Math.trunc(id / outputStrides[j]);
                    id %= outputStrides[j];
                }
            }
            return [newIndices, [nnz, outputRank], outputShape];
        }

        /**
         * @license
         * Copyright 2021 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function sparseSegmentReductionImpl(input, inputShape, inputDType, indices, segmentIds, isMean, defaultValue) {
            if (isMean === void 0) {
                isMean = false;
            }
            if (defaultValue === void 0) {
                defaultValue = 0;
            }
            var numIndices = indices.length;
            // Flatten the array to two dimensions
            var inputFlat = [inputShape[0], input.length / inputShape[0]];
            var numCol = inputFlat[1];
            // Note that the current implementation assumes that segmentIds values are
            // sorted.
            var lastSegmentIdPlusOne = numIndices > 0 ? segmentIds[numIndices - 1] + 1 : 0;
            var outputRows = lastSegmentIdPlusOne;
            if (outputRows < 0) {
                throw new Error(tfjsCore.backend_util.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());
            }
            var outputShape = inputShape.slice();
            outputShape[0] = outputRows;
            var outputLength = outputShape.reduce(function (product, value) {
                return product * value;
            }, 1);
            // Output array is initialized with the value 0 by default.
            var output = tfjsCore.util.getArrayFromDType(inputDType, outputLength);
            // Note that we do not initialize the output buffer with a default value, so
            // we need to explicitly set missing indices to the default value.
            if (numIndices === 0) {
                if (outputRows > 0) {
                    output.fill(defaultValue);
                }
                return [output, outputShape];
            }
            if (outputRows <= 0) {
                throw new Error(tfjsCore.backend_util.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());
            }
            var start = 0
                , end = 1;
            // Index from which the output is not initialized.
            var uninitializedIndex = 0;
            var outIndex = segmentIds[start];
            while (true) {
                // We initialize nextIndex to 0 to avoid may be uninitialized warning
                var nextIndex = 0;
                if (end < numIndices) {
                    nextIndex = segmentIds[end];
                    if (outIndex === nextIndex) {
                        ++end;
                        continue;
                    }
                    // We have a new segment here.  Verify that the segment ids are growing.
                    if (outIndex >= nextIndex) {
                        throw new Error(tfjsCore.backend_util.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage());
                    }
                }
                if (outIndex < 0 || outIndex >= outputRows) {
                    throw new Error(tfjsCore.backend_util.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(outIndex, outputRows));
                }
                // If there is a gap between two indices, we need to set that gap to the
                // default value.
                if (outIndex > uninitializedIndex) {
                    output.fill(defaultValue, uninitializedIndex * numCol, outIndex * numCol);
                }
                for (var i = start; i < end; ++i) {
                    var index = indices[i];
                    if (index < 0 || index >= inputFlat[0]) {
                        throw new Error(tfjsCore.backend_util.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(i, indices[i], inputFlat[0]));
                    }
                    for (var j = 0; j < numCol; j++) {
                        output[outIndex * numCol + j] += input[index * numCol + j];
                    }
                }
                if (isMean) {
                    for (var j = 0; j < numCol; j++) {
                        output[outIndex * numCol + j] /= end - start;
                    }
                }
                start = end;
                ++end;
                uninitializedIndex = outIndex + 1;
                outIndex = nextIndex;
                if (end > numIndices) {
                    break;
                }
            }
            // Fill the gap at the end with the default value.
            if (uninitializedIndex < outputRows) {
                output.fill(defaultValue, uninitializedIndex * numCol, outputRows * numCol);
            }
            return [output, outputShape];
        }

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the License);
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an AS IS BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var sqrtImpl = createSimpleUnaryImpl(function (xi) {
            return Math.sqrt(xi);
        });
        var sqrt = unaryKernelFunc(tfjsCore.Sqrt, function (xi) {
            return Math.sqrt(xi);
        });
        var sqrtConfig = {
            kernelName: tfjsCore.Sqrt,
            backendName: 'cpu',
            kernelFunc: sqrt,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var squaredDifferenceImpl = createSimpleBinaryKernelImpl((function (a, b) {
            var diff = a - b;
            return diff * diff;
        }
        ));
        var squaredDifference = binaryKernelFunc(tfjsCore.SquaredDifference, squaredDifferenceImpl);
        var squaredDifferenceConfig = {
            kernelName: tfjsCore.SquaredDifference,
            backendName: 'cpu',
            kernelFunc: squaredDifference
        };

        function stridedSliceImpl(outShape, xBuf, strides, begin) {
            var outBuf = tfjsCore.buffer(outShape, xBuf.dtype);
            for (var i = 0; i < outBuf.size; i++) {
                var loc = outBuf.indexToLoc(i);
                var newLoc = new Array(loc.length);
                for (var j = 0; j < newLoc.length; j++) {
                    newLoc[j] = loc[j] * strides[j] + begin[j];
                }
                outBuf.set.apply(outBuf, __spreadArray([xBuf.get.apply(xBuf, __spreadArray([], __read(newLoc), false))], __read(loc), false));
            }
            return outBuf;
        }

        /**
         * @license
         * Copyright 2021 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        /**
         * The StringNGramsOp class creates ngrams from ragged string data.
         * The constructor contains all attributes related to the operation such as
         * padding widths and strings, and the compute function can be used to
         * compute the ngrams for different ragged tensor inputs.
         */
        var StringNGramsOp = /** @class */
            (function () {
                function StringNGramsOp(separator, nGramWidths, leftPad, rightPad, padWidth, preserveShortSequences) {
                    this.separator = tfjsCore.util.encodeString(separator);
                    this.nGramWidths = nGramWidths;
                    this.leftPad = tfjsCore.util.encodeString(leftPad);
                    this.rightPad = tfjsCore.util.encodeString(rightPad);
                    this.padWidth = padWidth;
                    this.preserveShort = preserveShortSequences;
                }
                StringNGramsOp.prototype.getPadWidth = function (nGramWidth) {
                    // Ngrams can be padded with either a fixed pad width or a dynamic pad
                    // width depending on the 'padWidth' arg, but in no case should the padding
                    // ever be wider than 'nGramWidth' - 1.
                    return Math.min(this.padWidth < 0 ? nGramWidth - 1 : this.padWidth, nGramWidth - 1);
                }
                    ;
                StringNGramsOp.prototype.getNumNGrams = function (length, nGramWidth) {
                    var padWidth = this.getPadWidth(nGramWidth);
                    return Math.max(0, ((length + 2 * padWidth) - nGramWidth) + 1);
                }
                    ;
                StringNGramsOp.prototype.createNGrams = function (data, splitIndex, output, outputStartIndex, numNGrams, nGramWidth) {
                    var _loop_1 = function (nGramIndex) {
                        var padWidth = this_1.getPadWidth(nGramWidth);
                        var leftPadding = Math.max(0, padWidth - nGramIndex);
                        var rightPadding = Math.max(0, padWidth - (numNGrams - (nGramIndex + 1)));
                        var numTokens = nGramWidth - (leftPadding + rightPadding);
                        var dataStartIndex = splitIndex + (leftPadding > 0 ? 0 : nGramIndex - padWidth);
                        // Calculate the total expected size of the nGram so we can reserve the
                        // correct amount of space in the string.
                        var nGramSize = 0;
                        // Size of the left padding.
                        nGramSize += leftPadding * this_1.leftPad.length;
                        // Size of the tokens.
                        for (var n = 0; n < numTokens; ++n) {
                            nGramSize += data[dataStartIndex + n].length;
                        }
                        // Size of the right padding.
                        nGramSize += rightPadding * this_1.rightPad.length;
                        // Size of the separators.
                        var numSeparators = leftPadding + rightPadding + numTokens - 1;
                        nGramSize += numSeparators * this_1.separator.length;
                        // Build the nGram.
                        output[outputStartIndex + nGramIndex] = new Uint8Array(nGramSize);
                        var nGram = output[outputStartIndex + nGramIndex];
                        var nextNGramIndex = 0;
                        var appendToNGram = function (str) {
                            return str.forEach(function (value) {
                                return nGram[nextNGramIndex++] = value;
                            });
                        };
                        for (var n = 0; n < leftPadding; ++n) {
                            appendToNGram(this_1.leftPad);
                            appendToNGram(this_1.separator);
                        }
                        // Only output first numTokens - 1 pairs of data and separator
                        for (var n = 0; n < numTokens - 1; ++n) {
                            appendToNGram(data[dataStartIndex + n]);
                            appendToNGram(this_1.separator);
                        }
                        // Handle case when there are no tokens or no right padding as these
                        // can result in consecutive separators.
                        if (numTokens > 0) {
                            // If we have tokens, then output last and then pair each separator
                            // with the right padding that follows, to ensure nGram ends either with
                            // the token or with the right pad.
                            appendToNGram(data[dataStartIndex + numTokens - 1]);
                            for (var n = 0; n < rightPadding; ++n) {
                                appendToNGram(this_1.separator);
                                appendToNGram(this_1.rightPad);
                            }
                        } else {
                            // If we don't have tokens, then the last item inserted into the nGram
                            // has been the separator from the left padding loop above. Hence,
                            // output right pad and separator and make sure to finish with a
                            // padding, not a separator.
                            for (var n = 0; n < rightPadding - 1; ++n) {
                                appendToNGram(this_1.rightPad);
                                appendToNGram(this_1.separator);
                            }
                            appendToNGram(this_1.rightPad);
                        }
                    };
                    var this_1 = this;
                    for (var nGramIndex = 0; nGramIndex < numNGrams; ++nGramIndex) {
                        _loop_1(nGramIndex);
                    }
                }
                    ;
                // Data and splits together form the definition of the ragged tensor,
                // where data is 1 dimensional and contains the values of the tensor
                // and splits denotes the indices at which each row starts.
                StringNGramsOp.prototype.compute = function (data, splits) {
                    var _this = this;
                    // Validate that the splits are valid indices into data, only if there are
                    // splits specified.
                    var inputDataSize = data.length;
                    var splitsSize = splits.length;
                    if (splitsSize > 0) {
                        var prevSplit = splits[0];
                        if (prevSplit !== 0) {
                            throw new Error("First split value must be 0, got ".concat(prevSplit));
                        }
                        for (var i = 1; i < splitsSize; ++i) {
                            var validSplits = splits[i] >= prevSplit;
                            validSplits = validSplits && (splits[i] <= inputDataSize);
                            if (!validSplits) {
                                throw new Error("Invalid split value ".concat(splits[i], ", must be in [").concat(prevSplit, ", ").concat(inputDataSize, "]"));
                            }
                            prevSplit = splits[i];
                        }
                        if (prevSplit !== inputDataSize) {
                            throw new Error("Last split value must be data size. Expected ".concat(inputDataSize, ", got ").concat(prevSplit));
                        }
                    }
                    var numBatchItems = splitsSize - 1;
                    var nGramsSplits = tfjsCore.util.getArrayFromDType('int32', splitsSize);
                    // If there is no data or size, return an empty ragged tensor.
                    if (inputDataSize === 0 || splitsSize === 0) {
                        var empty = new Array(inputDataSize);
                        for (var i = 0; i <= numBatchItems; ++i) {
                            nGramsSplits[i] = 0;
                        }
                        return [empty, nGramsSplits];
                    }
                    nGramsSplits[0] = 0;
                    var _loop_2 = function (i) {
                        var length = splits[i] - splits[i - 1];
                        var numNGrams = 0;
                        this_2.nGramWidths.forEach(function (nGramWidth) {
                            numNGrams += _this.getNumNGrams(length, nGramWidth);
                        });
                        if (this_2.preserveShort && length > 0 && numNGrams === 0) {
                            numNGrams = 1;
                        }
                        nGramsSplits[i] = nGramsSplits[i - 1] + numNGrams;
                    };
                    var this_2 = this;
                    for (var i = 1; i <= numBatchItems; ++i) {
                        _loop_2(i);
                    }
                    var nGrams = new Array(nGramsSplits[numBatchItems]);
                    var _loop_3 = function (i) {
                        var splitIndex = splits[i];
                        var outputStartIdx = nGramsSplits[i];
                        this_3.nGramWidths.forEach(function (nGramWidth) {
                            var length = splits[i + 1] - splits[i];
                            var numNGrams = _this.getNumNGrams(length, nGramWidth);
                            _this.createNGrams(data, splitIndex, nGrams, outputStartIdx, numNGrams, nGramWidth);
                            outputStartIdx += numNGrams;
                        });
                        // If we're preserving short sequences, check to see if no sequence was
                        // generated by comparing the current output start idx to the original
                        // one (nGramSplitsdata). If no ngrams were generated, then they will
                        // be equal (since we increment outputStartIdx by numNGrams every
                        // time we create a set of ngrams.)
                        if (this_3.preserveShort && outputStartIdx === nGramsSplits[i]) {
                            var dataLength = splits[i + 1] - splits[i];
                            // One legitimate reason to not have any ngrams when this.preserveShort
                            // is true is if the sequence itself is empty. In that case, move on.
                            if (dataLength === 0) {
                                return "continue";
                            }
                            // We don't have to worry about dynamic padding sizes here: if padding
                            // was dynamic, every sequence would have had sufficient padding to
                            // generate at least one nGram.
                            var nGramWidth = dataLength + 2 * this_3.padWidth;
                            var numNGrams = 1;
                            this_3.createNGrams(data, splitIndex, nGrams, outputStartIdx, numNGrams, nGramWidth);
                        }
                    };
                    var this_3 = this;
                    for (var i = 0; i < numBatchItems; ++i) {
                        _loop_3(i);
                    }
                    return [nGrams, nGramsSplits];
                }
                    ;
                return StringNGramsOp;
            }());
        function stringNGramsImpl(data, dataSplits, separator, nGramWidths, leftPad, rightPad, padWidth, preserveShortSequences) {
            return new StringNGramsOp(separator, nGramWidths, leftPad, rightPad, padWidth, preserveShortSequences).compute(data, dataSplits);
        }

        /**
         * @license
         * Copyright 2021 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function split(str, delimiters, skipEmpty, result) {
            if (!str.length) {
                return;
            }
            // When the delimiter is empty, the input is split into individual characters.
            if (delimiters.length === 0) {
                for (var i = 0; i < str.length; ++i) {
                    result.push(str.subarray(i, i + 1));
                }
                return;
            }
            // When there is one delimiter, the input is split only at that delimiter.
            if (delimiters.length === 1) {
                var delimiter = delimiters[0];
                var f = str.indexOf(delimiter);
                while (f !== -1) {
                    var token = str.subarray(0, f);
                    if (!skipEmpty || token.length !== 0) {
                        result.push(token);
                    }
                    str = str.subarray(f + 1);
                    f = str.indexOf(delimiter);
                }
                if (!skipEmpty || str.length !== 0) {
                    result.push(str);
                }
                return;
            }
            // When there are multiple delimiters, the input is split at every instance
            // one of the delimiters appears.
            var tokenStart = 0;
            for (var i = 0; i < str.length + 1; i++) {
                if ((i === str.length) || (delimiters.indexOf(str[i]) !== -1)) {
                    var token = str.subarray(tokenStart, i);
                    if (!skipEmpty || token.length !== 0) {
                        result.push(token);
                    }
                    tokenStart = i + 1;
                }
            }
        }
        function stringSplitImpl(input, delimiter, skipEmpty) {
            var batchSize = input.length;
            // Empty delimiter means split the input character by character.
            var tokens = [];
            var outputSize = 0;
            var maxNumEntries = 0;
            var numIndices = new Array(batchSize);
            for (var i = 0; i < batchSize; ++i) {
                var prevTokensLength = tokens.length;
                split(input[i], delimiter, skipEmpty, tokens);
                var nEntries = tokens.length - prevTokensLength;
                numIndices[i] = nEntries;
                outputSize += nEntries;
                maxNumEntries = Math.max(maxNumEntries, nEntries);
            }
            var indices = tfjsCore.util.getArrayFromDType('int32', outputSize * 2);
            var values = new Array(outputSize);
            var shape = [batchSize, maxNumEntries];
            var c = 0;
            for (var i = 0; i < batchSize; ++i) {
                for (var j = 0; j < numIndices[i]; ++j) {
                    // indices is a 2d tensor with shape of [outputSize, 2]
                    indices[c * 2] = i;
                    indices[c * 2 + 1] = j;
                    values[c] = tokens[c];
                    ++c;
                }
            }
            return [indices, values, shape];
        }

        /**
         * @license
         * Copyright 2021 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function stringToHashBucketFastImpl(input, numBuckets) {
            var output = tfjsCore.util.getArrayFromDType('int32', input.length);
            for (var i = 0; i < input.length; ++i) {
                output[i] = tfjsCore.util.fingerPrint64(input[i]).modulo(numBuckets).getLowBitsUnsigned();
            }
            return output;
        }

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var subImpl = createSimpleBinaryKernelImpl((function (aValue, bValue) {
            return aValue - bValue;
        }
        ));
        var subComplexImpl = createComplexBinaryKernelImpl((function (aReal, aImag, bReal, bImag) {
            return {
                real: aReal - bReal,
                imag: aImag - bImag
            };
        }
        ));
        var sub = binaryKernelFunc(tfjsCore.Sub, subImpl, subComplexImpl);
        var subConfig = {
            kernelName: tfjsCore.Sub,
            backendName: 'cpu',
            kernelFunc: sub
        };

        /**
         * @license
         * Copyright 2019 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        /**
         * An implementation of the tile kernel shared between webgl and cpu for string
         * tensors only.
         */
        function tileImpl(xBuf, reps) {
            var newShape = new Array(xBuf.rank);
            for (var i = 0; i < newShape.length; i++) {
                newShape[i] = xBuf.shape[i] * reps[i];
            }
            var result = tfjsCore.buffer(newShape, xBuf.dtype);
            for (var i = 0; i < result.values.length; ++i) {
                var newLoc = result.indexToLoc(i);
                var originalLoc = new Array(xBuf.rank);
                for (var j = 0; j < originalLoc.length; j++) {
                    originalLoc[j] = newLoc[j] % xBuf.shape[j];
                }
                var originalIndex = xBuf.locToIndex(originalLoc);
                result.values[i] = xBuf.values[originalIndex];
            }
            return result;
        }

        var comparePair = function (a, b) {
            var valueDiff = b.value - a.value;
            return valueDiff === 0 ? a.index - b.index : valueDiff;
        };
        /**
         * Partitions array where all elements smaller than the (k+1) smallest element
         * are found to the left of it, and all larger to the right of it.
         * Based on the Floyd-Rivest Algorithm, ref:
         * https://en.wikipedia.org/wiki/Floyd%E2%80%93Rivest_algorithm
         * @param array: Array to partition
         * @param left: Left index for the interval
         * @param right: Right index for the interval
         * @param k: Desired index value, where array[k] is the (k+1)th smallest element
         *           when left = 0
         */
        function select$1(array, k, left, right) {
            if (left === void 0) {
                left = 0;
            }
            if (right === void 0) {
                right = array.length - 1;
            }
            while (right > left) {
                // Use select recursively to sample a smaller set of size s
                // the arbitrary constants 600 and 0.5 are used in the original
                // version to minimize execution time.
                if (right - left > 600) {
                    var n = right - left + 1;
                    var i_1 = k - left + 1;
                    var z = Math.log(n);
                    var s = 0.5 * Math.exp(2 * z / 3);
                    var sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * Math.sign(i_1 - n / 2);
                    var newLeft = Math.max(left, Math.floor(k - i_1 * s / n + sd));
                    var newRight = Math.min(right, Math.floor(k + (n - i_1) * s / n + sd));
                    select$1(array, k, newLeft, newRight);
                }
                // partition the elements between left and right around t
                var t = array[k];
                var i = left;
                var j = right;
                tfjsCore.util.swap(array, left, k);
                if (comparePair(array[right], t) > 0) {
                    tfjsCore.util.swap(array, left, right);
                }
                while (i < j) {
                    tfjsCore.util.swap(array, i, j);
                    i++;
                    j--;
                    while (comparePair(array[i], t) < 0) {
                        i = i + 1;
                    }
                    while (comparePair(array[j], t) > 0) {
                        j = j - 1;
                    }
                }
                if (comparePair(array[left], t) === 0) {
                    tfjsCore.util.swap(array, left, j);
                } else {
                    j = j + 1;
                    tfjsCore.util.swap(array, j, right);
                }
                // Adjust left and right towards the boundaries of the subset
                // containing the (k - left + 1)th smallest element.
                if (j <= k) {
                    left = j + 1;
                }
                if (k <= j) {
                    right = j - 1;
                }
            }
        }
        function topKImpl(x, xShape, xDtype, k, sorted) {
            // Reshape into a 2d tensor [batch, lastDim] and compute topk along lastDim.
            var lastDim = xShape[xShape.length - 1];
            var _a = __read([x.length / lastDim, lastDim], 2)
                , batch = _a[0]
                , size = _a[1];
            var allTopKVals = tfjsCore.util.getTypedArrayFromDType(xDtype, batch * k);
            var allTopKIndices = tfjsCore.util.getTypedArrayFromDType('int32', batch * k);
            var _loop_1 = function (b) {
                var offset = b * size;
                var vals = x.subarray(offset, offset + size);
                var valAndInd = new Array(vals.length);
                vals.forEach(function (value, index) {
                    return valAndInd[index] = {
                        value: value,
                        index: index
                    };
                });
                if (k < valAndInd.length) {
                    select$1(valAndInd, k);
                    valAndInd = valAndInd.slice(0, k);
                }
                if (sorted) {
                    valAndInd.sort(comparePair);
                }
                var outOffset = b * k;
                var topKVals = allTopKVals.subarray(outOffset, outOffset + k);
                var topKIndices = allTopKIndices.subarray(outOffset, outOffset + k);
                for (var i = 0; i < k; i++) {
                    topKVals[i] = valAndInd[i].value;
                    topKIndices[i] = valAndInd[i].index;
                }
            };
            for (var b = 0; b < batch; b++) {
                _loop_1(b);
            }
            // Reshape back to the original input shape, except that the last
            // dimension is k.
            var outputShape = xShape.slice();
            outputShape[outputShape.length - 1] = k;
            return [tfjsCore.buffer(outputShape, xDtype, allTopKVals), tfjsCore.buffer(outputShape, 'int32', allTopKIndices)];
        }

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function uniqueImpl(values, axis, shape, dtype) {
            // Normalize and validate axis.
            var $axis = tfjsCore.util.parseAxisParam(axis, shape)[0];
            // Calculate the new shape that is suitable for extracting data along the
            // given axis.
            //
            // The rank is 3.
            // The size of the 1st dimension is the size of all the axes < the given axis.
            // The size of the 2nd dimension is the same as the size of the given axis.
            // The size of the 3rd dimension is the size of all the axes > the given axis.
            //
            // For example, for a 4D tensor with shape=[2, 3, 5, 4] and axis=2, the
            // newShape would be: [2*3, 5, 4].
            //
            // Note that this is not the final output shape. This will be the shape for an
            // intermediate TensorBuffer (see inputBuffer below) to allow us to extract
            // values along the given axis. To demonstrate how it works, consider the
            // following example:
            //
            // Input: a 3D tensor, with shape [1, 2, 3]
            // [
            //   [
            //      [1,2,3],
            //      [4,5,6]
            //   ]
            // ]
            // Axis: 2 (the last axis).
            // Along axis 2, we expect to extract 3 tensors: [1,4], [2,5], [3,6].
            //
            // For this example, newShape would be: [2, 3, 1], where 2 is calculated from
            // 1*2. The re-shaped data would look like:
            //
            // [
            //   [
            //     [1], [2], [3]
            //   ],
            //   [
            //     [4], [5], [6]
            //   ]
            // ]
            //
            // Then, we can construct a 3-level nested loop by the following dimension
            // order to extract the values along the axis (dimension1):
            // i: dimension1       // 0,1,2 (newShape[1])
            //   m: dimension0     // 0,1   (newShape[0])
            //     n: dimension2   // 0     (newShape[2])
            //
            //                       m, i, n
            //                      ---------
            // Iteration 0: data at [0, 0, 0] => "1"
            // Iteration 1: data at [1, 0, 0] => "4"
            // We got [1,4].
            // Iteration 2: data at [0, 1, 0] => "2"
            // Iteration 3: data at [1, 1, 0] => "5"
            // We got [2,5].
            // Iteration 4: data at [0, 2, 0] => "3"
            // Iteration 5: data at [1, 2, 0] => "6"
            // We got [3,6].
            var newShape = [1, shape[0], 1];
            for (var i = 0; i < $axis; i++) {
                newShape[0] *= shape[i];
            }
            newShape[1] = shape[$axis];
            for (var i = $axis + 1; i < shape.length; i++) {
                newShape[2] *= shape[i];
            }
            // A map from unique elements (their string representations) to their values
            // in "indices" (below).
            var uniqueElements = {};
            // The indices of each unique element in the original tensor along the given
            // axis. It is 1D and has the same size as the given axis.
            var indices = new Int32Array(shape[$axis]);
            // Create a buffer so we can easily extract value at a given location.
            var inputBuffer = new tfjsCore.TensorBuffer(newShape, dtype, values);
            // The indices along the given axis that have unique elements. This is a
            // de-duped version of "indices" above.
            var uniqueIndices = [];
            var is1DTensor = newShape[0] === 1 && newShape[2] === 1;
            for (var i = 0; i < shape[$axis]; i++) {
                // Extract values along the axis.
                var element = void 0;
                if (is1DTensor) {
                    // Fast path for 1D tensor input.
                    element = values[i].toString();
                } else {
                    var axisValues = [];
                    for (var m = 0; m < newShape[0]; m++) {
                        for (var n = 0; n < newShape[2]; n++) {
                            axisValues.push(inputBuffer.get(m, i, n));
                        }
                    }
                    element = axisValues.join(',');
                }
                // Dedup and update various indices.
                if (uniqueElements[element] !== undefined) {
                    indices[i] = uniqueElements[element];
                } else {
                    var uniqueIndex = Object.keys(uniqueElements).length;
                    uniqueElements[element] = uniqueIndex;
                    indices[i] = uniqueIndex;
                    uniqueIndices.push(i);
                }
            }
            // Now we know where each of the unique elements are located along the axis
            // (uniqueIndices). Extract them from input buffer and store them in the
            // output buffer.
            var outputTmpShape = newShape.slice();
            outputTmpShape[1] = Object.keys(uniqueElements).length;
            var outputBuffer = new tfjsCore.TensorBuffer(outputTmpShape, dtype);
            uniqueIndices.forEach(function (uniqueElementIndex, i) {
                for (var m = 0; m < newShape[0]; m++) {
                    for (var n = 0; n < newShape[2]; n++) {
                        outputBuffer.set(inputBuffer.get(m, uniqueElementIndex, n), m, i, n);
                    }
                }
            });
            // The output shape can be calculated from the input shape with the size of
            // the given axis replaced by the number of unique elements along that axis.
            var outputShape = shape.slice();
            outputShape[$axis] = outputTmpShape[1];
            return {
                outputValues: outputBuffer.values,
                outputShape: outputShape,
                indices: indices,
            };
        }

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        var shared = {
            __proto__: null,
            simpleAbsImpl: simpleAbsImpl,
            addImpl: addImpl,
            bincountImpl: bincountImpl,
            bincountReduceImpl: bincountReduceImpl,
            castImpl: castImpl,
            ceilImpl: ceilImpl,
            concatImpl: concatImpl,
            equalImpl: equalImpl,
            expImpl: expImpl,
            expm1Impl: expm1Impl,
            floorImpl: floorImpl,
            gatherNdImpl: gatherNdImpl,
            gatherV2Impl: gatherV2Impl,
            greaterImpl: greaterImpl,
            greaterEqualImpl: greaterEqualImpl,
            lessImpl: lessImpl,
            lessEqualImpl: lessEqualImpl,
            linSpaceImpl: linSpaceImpl,
            logImpl: logImpl,
            maxImpl: maxImpl,
            maximumImpl: maximumImpl,
            minimumImpl: minimumImpl,
            multiplyImpl: multiplyImpl,
            negImpl: negImpl,
            notEqualImpl: notEqualImpl,
            prodImpl: prodImpl,
            raggedGatherImpl: raggedGatherImpl,
            raggedRangeImpl: raggedRangeImpl,
            raggedTensorToTensorImpl: raggedTensorToTensorImpl,
            rangeImpl: rangeImpl,
            rsqrtImpl: rsqrtImpl,
            scatterImpl: scatterImpl,
            sigmoidImpl: sigmoidImpl,
            sliceImpl: sliceImpl,
            sparseFillEmptyRowsImpl: sparseFillEmptyRowsImpl,
            sparseReshapeImpl: sparseReshapeImpl,
            sparseSegmentReductionImpl: sparseSegmentReductionImpl,
            sqrtImpl: sqrtImpl,
            squaredDifferenceImpl: squaredDifferenceImpl,
            stridedSliceImpl: stridedSliceImpl,
            stringNGramsImpl: stringNGramsImpl,
            stringSplitImpl: stringSplitImpl,
            stringToHashBucketFastImpl: stringToHashBucketFastImpl,
            subImpl: subImpl,
            tileImpl: tileImpl,
            topKImpl: topKImpl,
            transposeImpl: transposeImpl,
            uniqueImpl: uniqueImpl
        };

        /** @license See the LICENSE file. */
        // This code is auto-generated, do not modify this file!
        var version = '4.1.0';

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        // Side effects for default initialization of MathBackendCPU
        tfjsCore.registerBackend('cpu', function () {
            return new MathBackendCPU();
        }, 1 /* priority */
        );

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the License);
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an AS IS BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var elu = unaryKernelFunc(tfjsCore.Elu, function (xi) {
            return xi >= 0 ? xi : (Math.exp(xi) - 1);
        });
        var eluConfig = {
            kernelName: tfjsCore.Elu,
            backendName: 'cpu',
            kernelFunc: elu,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function leakyRelu(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x;
            var alpha = attrs.alpha;
            assertNotComplex([x], 'leakyRelu');
            var xSize = tfjsCore.util.sizeFromShape(x.shape);
            var xVals = backend.data.get(x.dataId).values;
            var outVals = tfjsCore.util.getTypedArrayFromDType('float32', xSize);
            for (var i = 0; i < xVals.length; i++) {
                outVals[i] = xVals[i] < 0 ? alpha * xVals[i] : xVals[i];
            }
            return backend.makeTensorInfo(x.shape, 'float32', outVals);
        }
        var leakyReluConfig = {
            kernelName: tfjsCore.LeakyRelu,
            backendName: 'cpu',
            kernelFunc: leakyRelu
        };

        var preluImpl = createSimpleBinaryKernelImpl(function (xValue, aValue) {
            return xValue < 0 ? aValue * xValue : xValue;
        });
        function prelu(args) {
            var inputs = args.inputs
                , backend = args.backend;
            var x = inputs.x
                , alpha = inputs.alpha;
            assertNotComplex([x, alpha], 'prelu');
            var aVals = backend.data.get(x.dataId).values;
            var bVals = backend.data.get(alpha.dataId).values;
            var _a = __read(preluImpl(x.shape, alpha.shape, aVals, bVals, 'float32'), 2)
                , resultData = _a[0]
                , resultShape = _a[1];
            return backend.makeTensorInfo(resultShape, 'float32', resultData);
        }
        var preluConfig = {
            kernelName: tfjsCore.Prelu,
            backendName: 'cpu',
            kernelFunc: prelu,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the License);
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an AS IS BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var relu = unaryKernelFunc(tfjsCore.Relu, function (xi) {
            return Math.max(0, xi);
        });
        var reluConfig = {
            kernelName: tfjsCore.Relu,
            backendName: 'cpu',
            kernelFunc: relu,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the License);
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an AS IS BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var relu6 = unaryKernelFunc(tfjsCore.Relu6, function (xi) {
            return Math.min(Math.max(0, xi), 6);
        });
        var relu6Config = {
            kernelName: tfjsCore.Relu6,
            backendName: 'cpu',
            kernelFunc: relu6,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function applyActivation(backend, x, activation, preluActivationWeights, leakyreluAlpha) {
            if (activation === 'linear') {
                return identity({
                    inputs: {
                        x: x
                    },
                    backend: backend
                });
            } else if (activation === 'relu') {
                return relu({
                    inputs: {
                        x: x
                    },
                    backend: backend
                });
            } else if (activation === 'elu') {
                return elu({
                    inputs: {
                        x: x
                    },
                    backend: backend
                });
            } else if (activation === 'relu6') {
                return relu6({
                    inputs: {
                        x: x
                    },
                    backend: backend
                });
            } else if (activation === 'prelu') {
                return prelu({
                    inputs: {
                        x: x,
                        alpha: preluActivationWeights
                    },
                    backend: backend
                });
            } else if (activation === 'leakyrelu') {
                return leakyRelu({
                    inputs: {
                        x: x
                    },
                    backend: backend,
                    attrs: {
                        alpha: leakyreluAlpha
                    }
                });
            } else if (activation === 'sigmoid') {
                return sigmoid({
                    inputs: {
                        x: x
                    },
                    backend: backend
                });
            }
            throw new Error("Activation ".concat(activation, " has not been implemented for the CPU backend."));
        }

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function reshape(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x;
            var shape = attrs.shape;
            var xSize = tfjsCore.util.sizeFromShape(x.shape);
            var $shape = tfjsCore.util.inferFromImplicitShape(shape, xSize);
            var $xSize = tfjsCore.util.sizeFromShape($shape);
            tfjsCore.util.assert(xSize === $xSize, function () {
                return "The new shape (".concat($shape, ") has ").concat($xSize, " elements and the old ") + "shape (".concat(x.shape, ") has ").concat(xSize, " elements. The new shape and old ") + "shape must have the same number of elements.";
            });
            backend.incRef(x.dataId);
            var xData = backend.data.get(x.dataId);
            if (xData.complexTensorInfos != null) {
                var real = xData.complexTensorInfos.real;
                var imag = xData.complexTensorInfos.imag;
                real.shape = $shape;
                imag.shape = $shape;
            }
            return {
                dataId: x.dataId,
                shape: $shape,
                dtype: x.dtype
            };
        }
        var reshapeConfig = {
            kernelName: tfjsCore.Reshape,
            backendName: 'cpu',
            kernelFunc: reshape
        };

        function batchMatMul(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var a = inputs.a
                , b = inputs.b;
            var transposeA = attrs.transposeA
                , transposeB = attrs.transposeB;
            assertNotComplex([a, b], 'matMul');
            var aRank = a.shape.length;
            var bRank = b.shape.length;
            var innerShapeA = transposeA ? a.shape[aRank - 2] : a.shape[aRank - 1];
            var innerShapeB = transposeB ? b.shape[bRank - 1] : b.shape[bRank - 2];
            var outerShapeA = transposeA ? a.shape[aRank - 1] : a.shape[aRank - 2];
            var outerShapeB = transposeB ? b.shape[bRank - 2] : b.shape[bRank - 1];
            var outerDimsA = a.shape.slice(0, -2);
            var outerDimsB = b.shape.slice(0, -2);
            var batchDimA = tfjsCore.util.sizeFromShape(outerDimsA);
            var batchDimB = tfjsCore.util.sizeFromShape(outerDimsB);
            var outShapeOuterDims = tfjsCore.broadcast_util.assertAndGetBroadcastShape(a.shape.slice(0, -2), b.shape.slice(0, -2));
            var outShape = outShapeOuterDims.concat([outerShapeA, outerShapeB]);
            tfjsCore.util.assert(innerShapeA === innerShapeB, function () {
                return "Error in matMul: inner shapes (".concat(innerShapeA, ") and (") + "".concat(innerShapeB, ") of Tensors with shapes ").concat(a.shape, " and ") + "".concat(b.shape, " and transposeA=").concat(transposeA) + " and transposeB=".concat(transposeB, " must match.");
            });
            var a3dShape = transposeA ? [batchDimA, innerShapeA, outerShapeA] : [batchDimA, outerShapeA, innerShapeA];
            var b3dShape = transposeB ? [batchDimB, outerShapeB, innerShapeB] : [batchDimB, innerShapeB, outerShapeB];
            // The rest of the implementation is designed to operate on rank-3 tensors
            var a3d = reshape({
                inputs: {
                    x: a
                },
                backend: backend,
                attrs: {
                    shape: a3dShape
                }
            });
            var b3d = reshape({
                inputs: {
                    x: b
                },
                backend: backend,
                attrs: {
                    shape: b3dShape
                }
            });
            var sharedDim = transposeA ? a3d.shape[1] : a3d.shape[2];
            var leftDim = transposeA ? a3d.shape[2] : a3d.shape[1];
            var rightDim = transposeB ? b3d.shape[1] : b3d.shape[2];
            var batchDim = Math.max(batchDimA, batchDimB);
            var a3dValues = backend.data.get(a3d.dataId).values;
            var b3dValues = backend.data.get(b3d.dataId).values;
            var a3dStrides = tfjsCore.util.computeStrides(a3d.shape);
            var b3dStrides = tfjsCore.util.computeStrides(b3d.shape);
            var _a = __read(transposeA ? [a3dStrides[0], 1, a3dStrides[1]] : [a3dStrides[0], a3dStrides[1], 1], 3)
                , aBatch = _a[0]
                , aOuterStep = _a[1]
                , aInnerStep = _a[2];
            var _b = __read(transposeB ? [1, b3dStrides[1], b3dStrides[0]] : [b3dStrides[1], 1, b3dStrides[0]], 3)
                , bInnerStep = _b[0]
                , bOuterStep = _b[1]
                , bBatch = _b[2];
            var size = leftDim * rightDim;
            var result = tfjsCore.buffer([batchDim, leftDim, rightDim], a3d.dtype);
            var resVals = result.values;
            var blockSize = backend.blockSize;
            for (var bi = 0; bi < batchDim; bi++) {
                for (var i0 = 0; i0 < leftDim; i0 += blockSize) {
                    for (var j0 = 0; j0 < rightDim; j0 += blockSize) {
                        for (var k0 = 0; k0 < sharedDim; k0 += blockSize) {
                            // for when blockSize doesn't evenly divide the input
                            var iBlock = Math.min(i0 + blockSize, leftDim);
                            var jBlock = Math.min(j0 + blockSize, rightDim);
                            var kBlock = Math.min(k0 + blockSize, sharedDim);
                            for (var i = i0; i < iBlock; i++) {
                                for (var j = j0; j < jBlock; j++) {
                                    var sum = 0.0;
                                    for (var k = k0; k < kBlock; k++) {
                                        var batchOffsetA = Math.min(bi, batchDimA - 1) * aBatch;
                                        var batchOffsetB = Math.min(bi, batchDimB - 1) * bBatch;
                                        var aVal = a3dValues[batchOffsetA + i * aOuterStep + k * aInnerStep];
                                        var bVal = b3dValues[k * bInnerStep + j * bOuterStep + batchOffsetB];
                                        sum += aVal * bVal;
                                    }
                                    resVals[bi * size + (i * rightDim + j)] += sum;
                                }
                            }
                        }
                    }
                }
            }
            backend.disposeIntermediateTensorInfo(a3d);
            backend.disposeIntermediateTensorInfo(b3d);
            // set correct shape on output.
            return backend.makeTensorInfo(outShape, result.dtype, result.values);
        }
        var batchMatMulConfig = {
            kernelName: tfjsCore.BatchMatMul,
            backendName: 'cpu',
            kernelFunc: batchMatMul,
        };

        function _fusedMatMul(args) {
            var e_1, _a;
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var a = inputs.a
                , b = inputs.b
                , bias = inputs.bias
                , preluActivationWeights = inputs.preluActivationWeights;
            var transposeA = attrs.transposeA
                , transposeB = attrs.transposeB
                , activation = attrs.activation
                , leakyreluAlpha = attrs.leakyreluAlpha;
            var current;
            var addRes;
            var activationRes;
            var intermediates = [];
            var matMulRes = batchMatMul({
                inputs: {
                    a: a,
                    b: b
                },
                attrs: {
                    transposeA: transposeA,
                    transposeB: transposeB
                },
                backend: backend
            });
            current = matMulRes;
            if (bias) {
                addRes = add({
                    inputs: {
                        a: current,
                        b: bias
                    },
                    backend: backend
                });
                intermediates.push(current);
                current = addRes;
            }
            if (activation) {
                activationRes = applyActivation(backend, current, activation, preluActivationWeights, leakyreluAlpha);
                intermediates.push(current);
                current = activationRes;
            }
            try {
                for (var intermediates_1 = __values(intermediates), intermediates_1_1 = intermediates_1.next(); !intermediates_1_1.done; intermediates_1_1 = intermediates_1.next()) {
                    var i = intermediates_1_1.value;
                    backend.disposeIntermediateTensorInfo(i);
                }
            } catch (e_1_1) {
                e_1 = {
                    error: e_1_1
                };
            } finally {
                try {
                    if (intermediates_1_1 && !intermediates_1_1.done && (_a = intermediates_1.return))
                        _a.call(intermediates_1);
                } finally {
                    if (e_1)
                        throw e_1.error;
                }
            }
            return current;
        }
        var _fusedMatMulConfig = {
            kernelName: tfjsCore._FusedMatMul,
            backendName: 'cpu',
            kernelFunc: _fusedMatMul,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the License);
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an AS IS BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var acos = unaryKernelFunc(tfjsCore.Acos, function (xi) {
            return Math.acos(xi);
        });
        var acosConfig = {
            kernelName: tfjsCore.Acos,
            backendName: 'cpu',
            kernelFunc: acos,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the License);
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an AS IS BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var acosh = unaryKernelFunc(tfjsCore.Acosh, function (xi) {
            return Math.acosh(xi);
        });
        var acoshConfig = {
            kernelName: tfjsCore.Acosh,
            backendName: 'cpu',
            kernelFunc: acosh,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function addN(args) {
            var inputs = args.inputs
                , backend = args.backend;
            var tensors = inputs;
            assertNotComplex(inputs, 'addN');
            var vals = tensors.map(function (t) {
                return backend.data.get(t.dataId).values;
            });
            var outBuf = tfjsCore.buffer(tensors[0].shape, tensors[0].dtype);
            var outVals = outBuf.values;
            for (var i = 0; i < tensors.length; i++) {
                var currVals = vals[i];
                for (var j = 0; j < outVals.length; j++) {
                    outVals[j] += currVals[j];
                }
            }
            return backend.makeTensorInfo(outBuf.shape, outBuf.dtype, outBuf.values);
        }
        var addNConfig = {
            kernelName: tfjsCore.AddN,
            backendName: 'cpu',
            kernelFunc: addN
        };

        function all(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x;
            var axis = attrs.axis
                , keepDims = attrs.keepDims;
            assertNotComplex(x, 'all');
            var origAxes = tfjsCore.util.parseAxisParam(axis, x.shape);
            var axes = origAxes;
            var permutedAxes = tfjsCore.backend_util.getAxesPermutation(axes, x.shape.length);
            var $x = x;
            if (permutedAxes != null) {
                $x = transpose({
                    inputs: {
                        x: x
                    },
                    backend: backend,
                    attrs: {
                        perm: permutedAxes
                    }
                });
                axes = tfjsCore.backend_util.getInnerMostAxes(axes.length, x.shape.length);
            }
            tfjsCore.backend_util.assertAxesAreInnerMostDims('all', axes, $x.shape.length);
            var _a = __read(tfjsCore.backend_util.computeOutAndReduceShapes($x.shape, axes), 2)
                , outShape = _a[0]
                , reduceShape = _a[1];
            var reduceSize = tfjsCore.util.sizeFromShape(reduceShape);
            var vals = tfjsCore.util.makeZerosTypedArray(tfjsCore.util.sizeFromShape(outShape), $x.dtype);
            var aVals = backend.data.get($x.dataId).values;
            for (var i = 0; i < vals.length; ++i) {
                var offset = i * reduceSize;
                var all_1 = aVals[offset];
                for (var j = 0; j < reduceSize; ++j) {
                    var value = aVals[offset + j];
                    all_1 = all_1 && value;
                }
                vals[i] = all_1;
            }
            if (permutedAxes != null) {
                backend.disposeIntermediateTensorInfo($x);
            }
            var result = backend.makeTensorInfo(outShape, $x.dtype, vals);
            if (keepDims) {
                var expandedShape = tfjsCore.backend_util.expandShapeToKeepDim(outShape, origAxes);
                var reshapedResult = reshape({
                    inputs: {
                        x: result
                    },
                    backend: backend,
                    attrs: {
                        shape: expandedShape
                    }
                });
                backend.disposeIntermediateTensorInfo(result);
                return reshapedResult;
            }
            return result;
        }
        var allConfig = {
            kernelName: tfjsCore.All,
            backendName: 'cpu',
            kernelFunc: all
        };

        function any(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x;
            var axis = attrs.axis
                , keepDims = attrs.keepDims;
            assertNotComplex(x, 'any');
            var origAxes = tfjsCore.util.parseAxisParam(axis, x.shape);
            var axes = origAxes;
            var permutedAxes = tfjsCore.backend_util.getAxesPermutation(axes, x.shape.length);
            var $x = x;
            if (permutedAxes != null) {
                $x = transpose({
                    inputs: {
                        x: x
                    },
                    backend: backend,
                    attrs: {
                        perm: permutedAxes
                    }
                });
                axes = tfjsCore.backend_util.getInnerMostAxes(axes.length, x.shape.length);
            }
            tfjsCore.backend_util.assertAxesAreInnerMostDims('any', axes, $x.shape.length);
            var _a = __read(tfjsCore.backend_util.computeOutAndReduceShapes($x.shape, axes), 2)
                , outShape = _a[0]
                , reduceShape = _a[1];
            var reduceSize = tfjsCore.util.sizeFromShape(reduceShape);
            var vals = tfjsCore.util.makeZerosTypedArray(tfjsCore.util.sizeFromShape(outShape), $x.dtype);
            var aVals = backend.data.get($x.dataId).values;
            for (var i = 0; i < vals.length; ++i) {
                var offset = i * reduceSize;
                var anyVal = aVals[offset];
                for (var j = 0; j < reduceSize; ++j) {
                    var value = aVals[offset + j];
                    anyVal = anyVal || value;
                }
                vals[i] = anyVal;
            }
            if (permutedAxes != null) {
                backend.disposeIntermediateTensorInfo($x);
            }
            var result = backend.makeTensorInfo(outShape, $x.dtype, vals);
            if (keepDims) {
                var expandedShape = tfjsCore.backend_util.expandShapeToKeepDim(outShape, origAxes);
                var reshapedResult = reshape({
                    inputs: {
                        x: result
                    },
                    backend: backend,
                    attrs: {
                        shape: expandedShape
                    }
                });
                backend.disposeIntermediateTensorInfo(result);
                return reshapedResult;
            }
            return result;
        }
        var anyConfig = {
            kernelName: tfjsCore.Any,
            backendName: 'cpu',
            kernelFunc: any
        };

        function argMax(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x;
            var axis = attrs.axis;
            assertNotComplex(x, 'argMax');
            var axes = tfjsCore.util.parseAxisParam(axis, x.shape);
            var permutedAxes = tfjsCore.backend_util.getAxesPermutation(axes, x.shape.length);
            var $x = x;
            var intermediateTensorInfos = [];
            if (permutedAxes != null) {
                $x = transpose({
                    inputs: {
                        x: x
                    },
                    backend: backend,
                    attrs: {
                        perm: permutedAxes
                    }
                });
                intermediateTensorInfos.push($x);
                axes = tfjsCore.backend_util.getInnerMostAxes(axes.length, $x.shape.length);
            }
            axes = [axes[0]];
            tfjsCore.backend_util.assertAxesAreInnerMostDims('argMax', axes, $x.shape.length);
            var _a = __read(tfjsCore.backend_util.computeOutAndReduceShapes($x.shape, axes), 2)
                , outShape = _a[0]
                , reduceShape = _a[1];
            var outSize = tfjsCore.util.sizeFromShape(outShape);
            var vals = tfjsCore.util.makeZerosTypedArray(outSize, 'int32');
            var reduceSize = tfjsCore.util.sizeFromShape(reduceShape);
            var aVals = backend.data.get($x.dataId).values;
            for (var i = 0; i < vals.length; ++i) {
                var offset = i * reduceSize;
                var max = aVals[offset];
                var maxIndex = 0;
                for (var j = 0; j < reduceSize; ++j) {
                    var value = aVals[offset + j];
                    if (value > max) {
                        max = value;
                        maxIndex = j;
                    }
                }
                vals[i] = maxIndex;
            }
            intermediateTensorInfos.forEach(function (t) {
                return backend.disposeIntermediateTensorInfo(t);
            });
            return backend.makeTensorInfo(outShape, 'int32', vals);
        }
        var argMaxConfig = {
            kernelName: tfjsCore.ArgMax,
            backendName: 'cpu',
            kernelFunc: argMax
        };

        function argMin(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x;
            var axis = attrs.axis;
            assertNotComplex(x, 'argMin');
            var axes = tfjsCore.util.parseAxisParam(axis, x.shape);
            var permutedAxes = tfjsCore.backend_util.getAxesPermutation(axes, x.shape.length);
            var $x = x;
            var intermediateTensorInfos = [];
            if (permutedAxes != null) {
                $x = transpose({
                    inputs: {
                        x: x
                    },
                    backend: backend,
                    attrs: {
                        perm: permutedAxes
                    }
                });
                intermediateTensorInfos.push($x);
                axes = tfjsCore.backend_util.getInnerMostAxes(axes.length, $x.shape.length);
            }
            axes = [axes[0]];
            tfjsCore.backend_util.assertAxesAreInnerMostDims('argMin', axes, $x.shape.length);
            var _a = __read(tfjsCore.backend_util.computeOutAndReduceShapes($x.shape, axes), 2)
                , outShape = _a[0]
                , reduceShape = _a[1];
            var outSize = tfjsCore.util.sizeFromShape(outShape);
            var vals = tfjsCore.util.makeZerosTypedArray(outSize, 'int32');
            var reduceSize = tfjsCore.util.sizeFromShape(reduceShape);
            var aVals = backend.data.get($x.dataId).values;
            for (var i = 0; i < vals.length; ++i) {
                var offset = i * reduceSize;
                var min = aVals[offset];
                var minIndex = 0;
                for (var j = 0; j < reduceSize; ++j) {
                    var value = aVals[offset + j];
                    if (value < min) {
                        min = value;
                        minIndex = j;
                    }
                }
                vals[i] = minIndex;
            }
            intermediateTensorInfos.forEach(function (t) {
                return backend.disposeIntermediateTensorInfo(t);
            });
            return backend.makeTensorInfo(outShape, 'int32', vals);
        }
        var argMinConfig = {
            kernelName: tfjsCore.ArgMin,
            backendName: 'cpu',
            kernelFunc: argMin
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the License);
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an AS IS BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var asin = unaryKernelFunc(tfjsCore.Asin, function (xi) {
            return Math.asin(xi);
        });
        var asinConfig = {
            kernelName: tfjsCore.Asin,
            backendName: 'cpu',
            kernelFunc: asin,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the License);
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an AS IS BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var asinh = unaryKernelFunc(tfjsCore.Asinh, function (xi) {
            return Math.asinh(xi);
        });
        var asinhConfig = {
            kernelName: tfjsCore.Asinh,
            backendName: 'cpu',
            kernelFunc: asinh,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the License);
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an AS IS BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var atan = unaryKernelFunc(tfjsCore.Atan, function (xi) {
            return Math.atan(xi);
        });
        var atanConfig = {
            kernelName: tfjsCore.Atan,
            backendName: 'cpu',
            kernelFunc: atan,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the License);
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an AS IS BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var atan2Impl = createSimpleBinaryKernelImpl(function (aValue, bValue) {
            return Math.atan2(aValue, bValue);
        });
        var atan2 = binaryKernelFunc(tfjsCore.Atan2, atan2Impl);
        var atan2Config = {
            kernelName: tfjsCore.Atan2,
            backendName: 'cpu',
            kernelFunc: atan2,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the License);
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an AS IS BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var atanh = unaryKernelFunc(tfjsCore.Atanh, function (xi) {
            return Math.atanh(xi);
        });
        var atanhConfig = {
            kernelName: tfjsCore.Atanh,
            backendName: 'cpu',
            kernelFunc: atanh,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function pool(xValues, xShape, dtype, strides, convInfo, poolType) {
            var strideHeight = convInfo.strideHeight;
            var strideWidth = convInfo.strideWidth;
            var dilationHeight = convInfo.dilationHeight;
            var dilationWidth = convInfo.dilationWidth;
            var effectiveFilterHeight = convInfo.effectiveFilterHeight;
            var effectiveFilterWidth = convInfo.effectiveFilterWidth;
            var padTop = convInfo.padInfo.top;
            var padLeft = convInfo.padInfo.left;
            var initialValue = (poolType === 'max' ? Number.NEGATIVE_INFINITY : Number.POSITIVE_INFINITY);
            var output = tfjsCore.buffer(convInfo.outShape, dtype);
            var outputVals = output.values;
            var outputBatchStrides = convInfo.outShape[1] * convInfo.outShape[2] * convInfo.outShape[3];
            var outputRowStrides = convInfo.outShape[2] * convInfo.outShape[3];
            var outputColStrides = convInfo.outShape[3];
            for (var b = 0; b < convInfo.batchSize; ++b) {
                var outputBatchOffset = b * outputBatchStrides;
                var inputBatchOffset = b * strides[0];
                for (var d = 0; d < convInfo.inChannels; ++d) {
                    for (var yR = 0; yR < convInfo.outHeight; ++yR) {
                        var xRCorner = yR * strideHeight - padTop;
                        var xRMin = Math.max(0, xRCorner);
                        var xRMax = Math.min(convInfo.inHeight, effectiveFilterHeight + xRCorner);
                        var outputRowOffset = outputBatchOffset + yR * outputRowStrides;
                        for (var yC = 0; yC < convInfo.outWidth; ++yC) {
                            var xCCorner = yC * strideWidth - padLeft;
                            var xCMin = Math.max(0, xCCorner);
                            var xCMax = Math.min(convInfo.inWidth, effectiveFilterWidth + xCCorner);
                            var minMaxValue = initialValue;
                            var avgValue = 0;
                            var count = 0;
                            for (var xR = xRMin; xR < xRMax; xR += dilationHeight) {
                                var xROffset = inputBatchOffset + xR * strides[1];
                                for (var xC = xCMin; xC < xCMax; xC += dilationWidth) {
                                    var xCOffset = xROffset + xC * strides[2];
                                    var pixel = xValues[xCOffset + d];
                                    if ((poolType === 'max' && pixel > minMaxValue)) {
                                        minMaxValue = pixel;
                                    } else if (poolType === 'avg') {
                                        avgValue += pixel;
                                        count++;
                                    }
                                }
                                if (isNaN(minMaxValue)) {
                                    break;
                                }
                            }
                            var outputOffset = outputRowOffset + yC * outputColStrides + d;
                            outputVals[outputOffset] = poolType === 'avg' ? avgValue / count : minMaxValue;
                        }
                    }
                }
            }
            return output;
        }
        function maxPoolPositions(xValues, xShape, dtype, convInfo, flattenPositions, includeBatchInIndex) {
            if (flattenPositions === void 0) {
                flattenPositions = false;
            }
            if (includeBatchInIndex === void 0) {
                includeBatchInIndex = false;
            }
            var maxPositions = tfjsCore.buffer(convInfo.outShape, 'int32');
            var strideHeight = convInfo.strideHeight;
            var strideWidth = convInfo.strideWidth;
            var dilationHeight = convInfo.dilationHeight;
            var dilationWidth = convInfo.dilationWidth;
            var effectiveFilterHeight = convInfo.effectiveFilterHeight;
            var effectiveFilterWidth = convInfo.effectiveFilterWidth;
            var padTop = convInfo.padInfo.top;
            var padLeft = convInfo.padInfo.left;
            var xBuf = tfjsCore.buffer(xShape, dtype, xValues);
            for (var b = 0; b < convInfo.batchSize; ++b) {
                for (var d = 0; d < convInfo.inChannels; ++d) {
                    for (var yR = 0; yR < convInfo.outHeight; ++yR) {
                        var xRCorner = yR * strideHeight - padTop;
                        var xRMin = xRCorner;
                        while (xRMin < 0) {
                            xRMin += dilationHeight;
                        }
                        // const xRMin = Math.max(0, xRCorner);
                        var xRMax = Math.min(convInfo.inHeight, effectiveFilterHeight + xRCorner);
                        for (var yC = 0; yC < convInfo.outWidth; ++yC) {
                            var xCCorner = yC * strideWidth - padLeft;
                            var xCMin = xCCorner;
                            while (xCMin < 0) {
                                xCMin += dilationWidth;
                            }
                            var xCMax = Math.min(convInfo.inWidth, effectiveFilterWidth + xCCorner);
                            var maxValue = Number.NEGATIVE_INFINITY;
                            var maxPosition = -1;
                            for (var xR = xRMin; xR < xRMax; xR += dilationHeight) {
                                var wR = xR - xRCorner;
                                for (var xC = xCMin; xC < xCMax; xC += dilationWidth) {
                                    var wC = xC - xCCorner;
                                    var pixel = xBuf.get(b, xR, xC, d);
                                    if (pixel > maxValue) {
                                        maxValue = pixel;
                                        if (flattenPositions) {
                                            maxPosition = includeBatchInIndex ? ((b * convInfo.inHeight + xR) * convInfo.inWidth + xC) * convInfo.inChannels + d : (xR * convInfo.inWidth + xC) * convInfo.inChannels + d;
                                        } else {
                                            maxPosition = wR * effectiveFilterWidth + wC;
                                        }
                                    }
                                }
                            }
                            maxPositions.set(maxPosition, b, yR, yC, d);
                        }
                    }
                }
            }
            return maxPositions;
        }
        function pool3d(xValues, xShape, dtype, strides, convInfo, poolType) {
            var strideDepth = convInfo.strideDepth;
            var strideHeight = convInfo.strideHeight;
            var strideWidth = convInfo.strideWidth;
            var dilationDepth = convInfo.dilationDepth;
            var dilationHeight = convInfo.dilationHeight;
            var dilationWidth = convInfo.dilationWidth;
            var effectiveFilterDepth = convInfo.effectiveFilterDepth;
            var effectiveFilterHeight = convInfo.effectiveFilterHeight;
            var effectiveFilterWidth = convInfo.effectiveFilterWidth;
            var padFront = convInfo.padInfo.front;
            var padTop = convInfo.padInfo.top;
            var padLeft = convInfo.padInfo.left;
            var initialValue = (poolType === 'max' ? Number.NEGATIVE_INFINITY : Number.POSITIVE_INFINITY);
            var output = tfjsCore.buffer(convInfo.outShape, dtype);
            var outputVals = output.values;
            var outputBatchStrides = convInfo.outShape[1] * convInfo.outShape[2] * convInfo.outShape[3] * convInfo.outShape[4];
            var outputDepthStrides = convInfo.outShape[2] * convInfo.outShape[3] * convInfo.outShape[4];
            var outputRowStrides = convInfo.outShape[3] * convInfo.outShape[4];
            var outputColStrides = convInfo.outShape[4];
            for (var batch = 0; batch < convInfo.batchSize; ++batch) {
                var outputBatchOffset = batch * outputBatchStrides;
                var inputBatchOffset = batch * strides[0];
                for (var channel = 0; channel < convInfo.inChannels; ++channel) {
                    for (var yDepth = 0; yDepth < convInfo.outDepth; ++yDepth) {
                        var xDepthCorner = yDepth * strideDepth - padFront;
                        var xDepthMin = xDepthCorner;
                        while (xDepthMin < 0) {
                            xDepthMin += dilationDepth;
                        }
                        var xDepthMax = Math.min(convInfo.inDepth, effectiveFilterDepth + xDepthCorner);
                        var outputDepthOffset = outputBatchOffset + yDepth * outputDepthStrides;
                        for (var yRow = 0; yRow < convInfo.outHeight; ++yRow) {
                            var xRowCorner = yRow * strideHeight - padTop;
                            var xRowMin = xRowCorner;
                            while (xRowMin < 0) {
                                xRowMin += dilationHeight;
                            }
                            var xRowMax = Math.min(convInfo.inHeight, effectiveFilterHeight + xRowCorner);
                            var outputRowOffset = outputDepthOffset + yRow * outputRowStrides;
                            for (var yCol = 0; yCol < convInfo.outWidth; ++yCol) {
                                var xColCorner = yCol * strideWidth - padLeft;
                                var xColMin = xColCorner;
                                while (xColMin < 0) {
                                    xColMin += dilationWidth;
                                }
                                var xColMax = Math.min(convInfo.inWidth, effectiveFilterWidth + xColCorner);
                                // Shader code begins
                                var outputColOffset = outputRowOffset + yCol * outputColStrides;
                                var minMaxValue = initialValue;
                                var avgValue = 0;
                                var count = 0;
                                for (var xDepth = xDepthMin; xDepth < xDepthMax; xDepth += dilationDepth) {
                                    var xDepthOffset = inputBatchOffset + xDepth * strides[1];
                                    for (var xRow = xRowMin; xRow < xRowMax; xRow += dilationHeight) {
                                        var xRowOffset = xDepthOffset + xRow * strides[2];
                                        for (var xCol = xColMin; xCol < xColMax; xCol += dilationWidth) {
                                            var xColOffset = xRowOffset + xCol * strides[3];
                                            var pixel = xValues[xColOffset + channel];
                                            if ((poolType === 'max' && pixel > minMaxValue)) {
                                                minMaxValue = pixel;
                                            } else if (poolType === 'avg') {
                                                avgValue += pixel;
                                                count++;
                                            }
                                            if (isNaN(minMaxValue)) {
                                                break;
                                            }
                                        }
                                        if (isNaN(minMaxValue)) {
                                            break;
                                        }
                                    }
                                    if (isNaN(minMaxValue)) {
                                        break;
                                    }
                                }
                                var outputOffset = outputColOffset + channel;
                                outputVals[outputOffset] = poolType === 'avg' ? avgValue / count : minMaxValue;
                            }
                        }
                    }
                }
            }
            return output;
        }
        function maxPool3dPositions(xBuf, convInfo) {
            var maxPositions = tfjsCore.buffer(convInfo.outShape, 'int32');
            var strideDepth = convInfo.strideDepth;
            var strideHeight = convInfo.strideHeight;
            var strideWidth = convInfo.strideWidth;
            var dilationDepth = convInfo.dilationDepth;
            var dilationHeight = convInfo.dilationHeight;
            var dilationWidth = convInfo.dilationWidth;
            var effectiveFilterDepth = convInfo.effectiveFilterDepth;
            var effectiveFilterHeight = convInfo.effectiveFilterHeight;
            var effectiveFilterWidth = convInfo.effectiveFilterWidth;
            var padFront = convInfo.padInfo.front;
            var padTop = convInfo.padInfo.top;
            var padLeft = convInfo.padInfo.left;
            for (var batch = 0; batch < convInfo.batchSize; ++batch) {
                for (var channel = 0; channel < convInfo.inChannels; ++channel) {
                    for (var yDepth = 0; yDepth < convInfo.outDepth; ++yDepth) {
                        var xDepthCorner = yDepth * strideDepth - padFront;
                        var xDepthMin = xDepthCorner;
                        while (xDepthMin < 0) {
                            xDepthMin += dilationDepth;
                        }
                        var xDepthMax = Math.min(convInfo.inDepth, effectiveFilterDepth + xDepthCorner);
                        for (var yRow = 0; yRow < convInfo.outHeight; ++yRow) {
                            var xRowCorner = yRow * strideHeight - padTop;
                            var xRowMin = xRowCorner;
                            while (xRowMin < 0) {
                                xRowMin += dilationHeight;
                            }
                            var xRowMax = Math.min(convInfo.inHeight, effectiveFilterHeight + xRowCorner);
                            for (var yCol = 0; yCol < convInfo.outWidth; ++yCol) {
                                var xColCorner = yCol * strideWidth - padLeft;
                                var xColMin = xColCorner;
                                while (xColMin < 0) {
                                    xColMin += dilationWidth;
                                }
                                var xColMax = Math.min(convInfo.inWidth, effectiveFilterWidth + xColCorner);
                                // Shader code begins
                                var maxValue = Number.NEGATIVE_INFINITY;
                                var maxPosition = -1;
                                for (var xDepth = xDepthMin; xDepth < xDepthMax; xDepth += dilationDepth) {
                                    var wDepth = xDepth - xDepthCorner;
                                    for (var xRow = xRowMin; xRow < xRowMax; xRow += dilationHeight) {
                                        var wRow = xRow - xRowCorner;
                                        for (var xCol = xColMin; xCol < xColMax; xCol += dilationWidth) {
                                            var wCol = xCol - xColCorner;
                                            var pixel = xBuf.get(batch, xDepth, xRow, xCol, channel);
                                            if (pixel >= maxValue) {
                                                maxValue = pixel;
                                                maxPosition = wDepth * effectiveFilterHeight * effectiveFilterWidth + wRow * effectiveFilterHeight + wCol;
                                            }
                                        }
                                    }
                                }
                                maxPositions.set(maxPosition, batch, yDepth, yRow, yCol, channel);
                            }
                        }
                    }
                }
            }
            return maxPositions;
        }

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function avgPool(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x;
            assertNotComplex(x, 'avgPool');
            var filterSize = attrs.filterSize
                , strides = attrs.strides
                , pad = attrs.pad
                , dimRoundingMode = attrs.dimRoundingMode;
            var dilations = 1;
            tfjsCore.util.assert(tfjsCore.backend_util.eitherStridesOrDilationsAreOne(strides, dilations), function () {
                return 'Error in avgPool: Either strides or dilations must be 1. ' + "Got strides ".concat(strides, " and dilations '").concat(dilations, "'");
            });
            var convInfo = tfjsCore.backend_util.computePool2DInfo(x.shape, filterSize, strides, dilations, pad, dimRoundingMode);
            var res;
            if (convInfo.filterWidth === 1 && convInfo.filterHeight === 1 && tfjsCore.util.arraysEqual(convInfo.inShape, convInfo.outShape)) {
                res = identity({
                    inputs: {
                        x: x
                    },
                    backend: backend
                });
            } else {
                var xValues = backend.data.get(x.dataId).values;
                var strides_1 = tfjsCore.util.computeStrides(x.shape);
                var buffer = pool(xValues, x.shape, x.dtype, strides_1, convInfo, 'avg');
                res = backend.makeTensorInfo(convInfo.outShape, x.dtype, buffer.values);
            }
            return res;
        }
        var avgPoolConfig = {
            kernelName: tfjsCore.AvgPool,
            backendName: 'cpu',
            kernelFunc: avgPool
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function avgPool3D(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x;
            var filterSize = attrs.filterSize
                , strides = attrs.strides
                , pad = attrs.pad
                , dimRoundingMode = attrs.dimRoundingMode
                , dataFormat = attrs.dataFormat;
            assertNotComplex(x, 'avgPool3d');
            var convInfo = tfjsCore.backend_util.computePool3DInfo(x.shape, filterSize, strides, 1 /* dilations */
                , pad, dimRoundingMode, dataFormat);
            var xValues = backend.data.get(x.dataId).values;
            var outBuf = pool3d(xValues, x.shape, x.dtype, tfjsCore.util.computeStrides(x.shape), convInfo, 'avg');
            return backend.makeTensorInfo(outBuf.shape, 'float32', outBuf.values);
        }
        var avgPool3DConfig = {
            kernelName: tfjsCore.AvgPool3D,
            backendName: 'cpu',
            kernelFunc: avgPool3D
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function avgPool3DGrad(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var dy = inputs.dy
                , input = inputs.input;
            var filterSize = attrs.filterSize
                , strides = attrs.strides
                , pad = attrs.pad
                , dimRoundingMode = attrs.dimRoundingMode;
            assertNotComplex([dy, input], 'avgPool3DGrad');
            var convInfo = tfjsCore.backend_util.computePool3DInfo(input.shape, filterSize, strides, 1 /* dilations */
                , pad, dimRoundingMode);
            var strideDepth = convInfo.strideDepth;
            var strideHeight = convInfo.strideHeight;
            var strideWidth = convInfo.strideWidth;
            var filterDepth = convInfo.filterDepth;
            var filterHeight = convInfo.filterHeight;
            var filterWidth = convInfo.filterWidth;
            var dilationDepth = convInfo.dilationDepth;
            var dilationHeight = convInfo.dilationHeight;
            var dilationWidth = convInfo.dilationWidth;
            var effectiveFilterDepth = convInfo.effectiveFilterDepth;
            var effectiveFilterHeight = convInfo.effectiveFilterHeight;
            var effectiveFilterWidth = convInfo.effectiveFilterWidth;
            var padFront = effectiveFilterDepth - 1 - convInfo.padInfo.front;
            var padLeft = effectiveFilterWidth - 1 - convInfo.padInfo.left;
            var padTop = effectiveFilterHeight - 1 - convInfo.padInfo.top;
            var dx = tfjsCore.buffer(input.shape, 'float32');
            var avgMultiplier = 1 / (filterDepth * filterHeight * filterWidth);
            var dyBuf = backend.bufferSync(dy);
            for (var batch = 0; batch < convInfo.batchSize; ++batch) {
                for (var channel = 0; channel < convInfo.inChannels; ++channel) {
                    for (var dxDepth = 0; dxDepth < convInfo.inDepth; ++dxDepth) {
                        for (var dxRow = 0; dxRow < convInfo.inHeight; ++dxRow) {
                            for (var dxCol = 0; dxCol < convInfo.inWidth; ++dxCol) {
                                // Shader code begins.
                                var dyDepthCorner = dxDepth - padFront;
                                var dyRowCorner = dxRow - padTop;
                                var dyColCorner = dxCol - padLeft;
                                var dotProd = 0;
                                for (var wDepth = 0; wDepth < effectiveFilterDepth; wDepth += dilationDepth) {
                                    var dyDepth = (dyDepthCorner + wDepth) / strideDepth;
                                    if (dyDepth < 0 || dyDepth >= convInfo.outDepth || Math.floor(dyDepth) !== dyDepth) {
                                        continue;
                                    }
                                    for (var wRow = 0; wRow < effectiveFilterHeight; wRow += dilationHeight) {
                                        var dyRow = (dyRowCorner + wRow) / strideHeight;
                                        if (dyRow < 0 || dyRow >= convInfo.outHeight || Math.floor(dyRow) !== dyRow) {
                                            continue;
                                        }
                                        for (var wCol = 0; wCol < effectiveFilterWidth; wCol += dilationWidth) {
                                            var dyCol = (dyColCorner + wCol) / strideWidth;
                                            if (dyCol < 0 || dyCol >= convInfo.outWidth || Math.floor(dyCol) !== dyCol) {
                                                continue;
                                            }
                                            var pixel = dyBuf.get(batch, dyDepth, dyRow, dyCol, channel);
                                            dotProd += pixel;
                                        }
                                    }
                                }
                                dx.set(dotProd * avgMultiplier, batch, dxDepth, dxRow, dxCol, channel);
                            }
                        }
                    }
                }
            }
            return backend.makeTensorInfo(dx.shape, dx.dtype, dx.values);
        }
        var avgPool3DGradConfig = {
            kernelName: tfjsCore.AvgPool3DGrad,
            backendName: 'cpu',
            kernelFunc: avgPool3DGrad
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function avgPoolGrad(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var dy = inputs.dy
                , input = inputs.input;
            var x = input;
            assertNotComplex([dy, input], 'avgPoolGrad');
            var filterSize = attrs.filterSize
                , strides = attrs.strides
                , pad = attrs.pad;
            var convInfo = tfjsCore.backend_util.computePool2DInfo(x.shape, filterSize, strides, 1 /* dilations */
                , pad);
            var strideHeight = convInfo.strideHeight;
            var strideWidth = convInfo.strideWidth;
            var filterHeight = convInfo.filterHeight;
            var filterWidth = convInfo.filterWidth;
            var dilationHeight = convInfo.dilationHeight;
            var dilationWidth = convInfo.dilationWidth;
            var effectiveFilterHeight = convInfo.effectiveFilterHeight;
            var effectiveFilterWidth = convInfo.effectiveFilterWidth;
            var padLeft = effectiveFilterWidth - 1 - convInfo.padInfo.left;
            var padTop = effectiveFilterHeight - 1 - convInfo.padInfo.top;
            var dx = tfjsCore.buffer(x.shape, 'float32');
            var avgMultiplier = 1 / (filterHeight * filterWidth);
            var dyData = backend.data.get(dy.dataId).values;
            var dyBuf = tfjsCore.buffer(dy.shape, 'float32', dyData);
            for (var b = 0; b < convInfo.batchSize; ++b) {
                for (var d = 0; d < convInfo.inChannels; ++d) {
                    for (var dxR = 0; dxR < convInfo.inHeight; ++dxR) {
                        for (var dxC = 0; dxC < convInfo.inWidth; ++dxC) {
                            // Shader code begins.
                            var dyRCorner = dxR - padTop;
                            var dyCCorner = dxC - padLeft;
                            var dotProd = 0;
                            for (var wR = 0; wR < effectiveFilterHeight; wR += dilationHeight) {
                                var dyR = (dyRCorner + wR) / strideHeight;
                                if (dyR < 0 || dyR >= convInfo.outHeight || Math.floor(dyR) !== dyR) {
                                    continue;
                                }
                                for (var wC = 0; wC < effectiveFilterWidth; wC += dilationWidth) {
                                    var dyC = (dyCCorner + wC) / strideWidth;
                                    if (dyC < 0 || dyC >= convInfo.outWidth || Math.floor(dyC) !== dyC) {
                                        continue;
                                    }
                                    var pixel = dyBuf.get(b, dyR, dyC, d);
                                    dotProd += pixel;
                                }
                            }
                            dx.set(dotProd * avgMultiplier, b, dxR, dxC, d);
                        }
                    }
                }
            }
            return backend.makeTensorInfo(dx.shape, dx.dtype, dx.values);
        }
        var avgPoolGradConfig = {
            kernelName: tfjsCore.AvgPoolGrad,
            backendName: 'cpu',
            kernelFunc: avgPoolGrad
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function batchNorm(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x
                , scale = inputs.scale
                , offset = inputs.offset
                , mean = inputs.mean
                , variance = inputs.variance;
            tfjsCore.util.assert(mean.shape.length === variance.shape.length, function () {
                return 'Batch normalization gradient requires mean and variance to have ' + 'equal ranks.';
            });
            tfjsCore.util.assert(offset == null || mean.shape.length === offset.shape.length, function () {
                return 'Batch normalization gradient requires mean and offset to have ' + 'equal ranks.';
            });
            tfjsCore.util.assert(scale == null || mean.shape.length === scale.shape.length, function () {
                return 'Batch normalization gradient requires mean and scale to have ' + 'equal ranks.';
            });
            assertNotComplex([x, mean, variance, scale, offset], 'batchNorm');
            var varianceEpsilon = attrs.varianceEpsilon;
            if (varianceEpsilon == null) {
                varianceEpsilon = 0.001;
            }
            var xVals = backend.data.get(x.dataId).values;
            var mVals = backend.data.get(mean.dataId).values;
            var varVals = backend.data.get(variance.dataId).values;
            var sVals = scale ? backend.data.get(scale.dataId).values : new Float32Array([1]);
            var offVals = offset ? backend.data.get(offset.dataId).values : new Float32Array([0]);
            var outVals = new Float32Array(xVals.length);
            var offValsLength = offVals.length;
            var sValsLength = sVals.length;
            var varValsLength = varVals.length;
            var mValsLength = mVals.length;
            var offi = 0;
            var mi = 0;
            var si = 0;
            var vi = 0;
            for (var i = 0; i < xVals.length; ++i) {
                outVals[i] = offVals[offi++] + (xVals[i] - mVals[mi++]) * sVals[si++] / Math.sqrt(varVals[vi++] + varianceEpsilon);
                if (offi >= offValsLength) {
                    offi = 0;
                }
                if (mi >= mValsLength) {
                    mi = 0;
                }
                if (si >= sValsLength) {
                    si = 0;
                }
                if (vi >= varValsLength) {
                    vi = 0;
                }
            }
            return backend.makeTensorInfo(x.shape, x.dtype, outVals);
        }
        var batchNormConfig = {
            kernelName: tfjsCore.FusedBatchNorm,
            backendName: 'cpu',
            kernelFunc: batchNorm,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function batchToSpaceND(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x;
            var blockShape = attrs.blockShape
                , crops = attrs.crops;
            assertNotComplex([x], 'batchToSpaceND');
            var prod = blockShape.reduce(function (a, b) {
                return a * b;
            });
            var reshaped = tfjsCore.backend_util.getReshaped(x.shape, blockShape, prod);
            var permuted = tfjsCore.backend_util.getPermuted(reshaped.length, blockShape.length);
            var reshapedPermuted = tfjsCore.backend_util.getReshapedPermuted(x.shape, blockShape, prod);
            var sliceBeginCoords = tfjsCore.backend_util.getSliceBeginCoords(crops, blockShape.length);
            var sliceSize = tfjsCore.backend_util.getSliceSize(reshapedPermuted, crops, blockShape.length);
            var xReshaped = reshape({
                inputs: {
                    x: x
                },
                backend: backend,
                attrs: {
                    shape: reshaped
                }
            });
            var xTransposed = transpose({
                inputs: {
                    x: xReshaped
                },
                backend: backend,
                attrs: {
                    perm: permuted
                }
            });
            var xTransposedReshaped = reshape({
                inputs: {
                    x: xTransposed
                },
                backend: backend,
                attrs: {
                    shape: reshapedPermuted
                }
            });
            var result = slice({
                inputs: {
                    x: xTransposedReshaped
                },
                backend: backend,
                attrs: {
                    begin: sliceBeginCoords,
                    size: sliceSize
                }
            });
            backend.disposeIntermediateTensorInfo(xReshaped);
            backend.disposeIntermediateTensorInfo(xTransposed);
            backend.disposeIntermediateTensorInfo(xTransposedReshaped);
            return result;
        }
        var batchToSpaceNDConfig = {
            kernelName: tfjsCore.BatchToSpaceND,
            backendName: 'cpu',
            kernelFunc: batchToSpaceND
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function bincount(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x
                , weights = inputs.weights;
            var size = attrs.size;
            var xVals = backend.data.get(x.dataId).values;
            var weightsVals = backend.data.get(weights.dataId).values;
            var outVals = bincountImpl(xVals, weightsVals, weights.dtype, weights.shape, size);
            return backend.makeTensorInfo([size], weights.dtype, outVals);
        }
        var bincountConfig = {
            kernelName: tfjsCore.Bincount,
            backendName: 'cpu',
            kernelFunc: bincount
        };

        /**
         * @license
         * Copyright 2021 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function broadcastArgs(args) {
            var inputs = args.inputs
                , backend = args.backend;
            var s0 = inputs.s0
                , s1 = inputs.s1;
            var s0Vals = backend.data.get(s0.dataId).values;
            var s1Vals = backend.data.get(s1.dataId).values;
            var broadcastShape = tfjsCore.backend_util.assertAndGetBroadcastShape(Array.from(s0Vals), Array.from(s1Vals));
            return backend.makeTensorInfo([broadcastShape.length], 'int32', Int32Array.from(broadcastShape));
        }
        var broadcastArgsConfig = {
            kernelName: tfjsCore.BroadcastArgs,
            backendName: 'cpu',
            kernelFunc: broadcastArgs
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the License);
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an AS IS BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var clipByValue = unaryKernelFunc(tfjsCore.ClipByValue, function (xi, attrs) {
            var clipAttrs = attrs;
            if (xi > clipAttrs.clipValueMax) {
                return clipAttrs.clipValueMax;
            }
            return xi < clipAttrs.clipValueMin ? clipAttrs.clipValueMin : xi;
        });
        var clipByValueConfig = {
            kernelName: tfjsCore.ClipByValue,
            backendName: 'cpu',
            kernelFunc: clipByValue,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the License);
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an AS IS BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var complexAbs = function (args) {
            var x = args.inputs.x;
            var cpuBackend = args.backend;
            var resultValues = new Float32Array(tfjsCore.util.sizeFromShape(x.shape));
            var complexVals = cpuBackend.data.get(x.dataId);
            var real = complexVals.complexTensorInfos.real;
            var imag = complexVals.complexTensorInfos.imag;
            var realVals = cpuBackend.data.get(real.dataId).values;
            var imagVals = cpuBackend.data.get(imag.dataId).values;
            for (var i = 0; i < realVals.length; i++) {
                var real_1 = realVals[i];
                var imag_1 = imagVals[i];
                resultValues[i] = Math.hypot(real_1, imag_1);
            }
            return cpuBackend.makeOutput(resultValues, x.shape, 'float32');
        };
        var complexAbsConfig = {
            kernelName: tfjsCore.ComplexAbs,
            backendName: 'cpu',
            kernelFunc: complexAbs,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function imag(args) {
            var inputs = args.inputs
                , backend = args.backend;
            var input = inputs.input;
            var imag = backend.data.get(input.dataId).complexTensorInfos.imag;
            var imagVal = backend.data.get(imag.dataId).values;
            // When complex tensor is disposed, its underlying parts will be disposed too.
            // Make new tensor out of the imag value of the complex. This makes sure the
            // value is still accessible even if complex tensor is disposed.
            return backend.makeTensorInfo(imag.shape, imag.dtype, imagVal);
        }
        var imagConfig = {
            kernelName: tfjsCore.Imag,
            backendName: 'cpu',
            kernelFunc: imag
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function concat(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var axis = attrs.axis;
            var $axis = tfjsCore.util.parseAxisParam(axis, inputs[0].shape)[0];
            var shapes = inputs.map(function (t) {
                return t.shape;
            });
            tfjsCore.backend_util.assertParamsConsistent(shapes, $axis);
            var outShape = tfjsCore.backend_util.computeOutShape(inputs.map(function (t) {
                return t.shape;
            }), $axis);
            if (tfjsCore.util.sizeFromShape(outShape) === 0) {
                return backend.makeTensorInfo(outShape, inputs[0].dtype, []);
            }
            // Keep only non-empty tensors (ignore tensors with 0 in their shape).
            var $inputs = inputs.filter(function (t) {
                return tfjsCore.util.sizeFromShape(t.shape) > 0;
            });
            if ($inputs.length === 1) {
                return identity({
                    inputs: {
                        x: $inputs[0]
                    },
                    backend: backend
                });
            }
            if ($inputs[0].dtype === 'complex64') {
                var reals = $inputs.map(function (t) {
                    return real({
                        inputs: {
                            input: t
                        },
                        backend: backend
                    });
                });
                var imags = $inputs.map(function (t) {
                    return imag({
                        inputs: {
                            input: t
                        },
                        backend: backend
                    });
                });
                var realConcated = concat({
                    inputs: reals,
                    backend: backend,
                    attrs: {
                        axis: $axis
                    }
                });
                var imagConcated = concat({
                    inputs: imags,
                    backend: backend,
                    attrs: {
                        axis: $axis
                    }
                });
                var result = complex({
                    inputs: {
                        real: realConcated,
                        imag: imagConcated
                    },
                    backend: backend
                });
                reals.forEach(function (r) {
                    return backend.disposeIntermediateTensorInfo(r);
                });
                imags.forEach(function (i) {
                    return backend.disposeIntermediateTensorInfo(i);
                });
                backend.disposeIntermediateTensorInfo(realConcated);
                backend.disposeIntermediateTensorInfo(imagConcated);
                return result;
            }
            // Any concat of n-dimensional tensors across any axis can be reduced to
            // a concatenation of two-dimensional tensors across the axis 1 by first
            // partitioning the axes of the original tensors into those less than the
            // axis to be concatenated and the rest. Then reshape the tensors
            // into a two-dimensional tensor by collapsing these two sets of axes and
            // concatenate the resulting matrices across the axis 1, finally reshaping
            // the result to have the proper shape.
            var inputs2D = $inputs.map(function (t) {
                var innerSize = tfjsCore.util.sizeFromShape(t.shape.slice($axis));
                var shape = [-1, innerSize];
                return reshape({
                    inputs: {
                        x: t
                    },
                    backend: backend,
                    attrs: {
                        shape: shape
                    }
                });
            });
            var inputsValShapes = inputs2D.map(function (t) {
                return {
                    vals: backend.data.get(t.dataId).values,
                    shape: t.shape
                };
            });
            // Concats 2d tensors along axis=1.
            outShape = tfjsCore.backend_util.computeOutShape(inputs2D.map(function (t) {
                return t.shape;
            }), 1 /* axis */
            );
            var simplyConcat = inputs2D[0].shape[0] === 1;
            var outVals = concatImpl(inputsValShapes, outShape, inputs[0].dtype, simplyConcat);
            var finalOutShape = tfjsCore.backend_util.computeOutShape($inputs.map(function (t) {
                return t.shape;
            }), $axis);
            var outInfo = backend.makeTensorInfo(finalOutShape, inputs[0].dtype, outVals);
            inputs2D.forEach(function (t) {
                return backend.disposeIntermediateTensorInfo(t);
            });
            return outInfo;
        }
        var concatConfig = {
            kernelName: tfjsCore.Concat,
            backendName: 'cpu',
            kernelFunc: concat
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function conv2D(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x
                , filter = inputs.filter;
            var strides = attrs.strides
                , pad = attrs.pad
                , dataFormat = attrs.dataFormat
                , dilations = attrs.dilations
                , dimRoundingMode = attrs.dimRoundingMode;
            assertNotComplex([x, filter], 'conv2d');
            var $dataFormat = tfjsCore.backend_util.convertConv2DDataFormat(dataFormat);
            var convInfo = tfjsCore.backend_util.computeConv2DInfo(x.shape, filter.shape, strides, dilations, pad, dimRoundingMode, false /* depthwise */
                , $dataFormat);
            var filterHeight = convInfo.filterHeight;
            var filterWidth = convInfo.filterWidth;
            var dilationHeight = convInfo.dilationHeight;
            var dilationWidth = convInfo.dilationWidth;
            var padLeft = convInfo.padInfo.left;
            var padTop = convInfo.padInfo.top;
            var isChannelsLast = convInfo.dataFormat === 'channelsLast';
            var y = new tfjsCore.TensorBuffer(convInfo.outShape, x.dtype);
            var xStrides = tfjsCore.util.computeStrides(x.shape);
            var filterStrides = tfjsCore.util.computeStrides(filter.shape);
            var xBatchStride = xStrides[0];
            var xRowStride = isChannelsLast ? xStrides[1] : xStrides[2];
            var xColStride = isChannelsLast ? xStrides[2] : 1;
            var xChannelStride = isChannelsLast ? 1 : xStrides[1];
            var yBatchStride = y.strides[0];
            var yRowStride = isChannelsLast ? y.strides[1] : y.strides[2];
            var yColStride = isChannelsLast ? y.strides[2] : 1;
            var yChannelStride = isChannelsLast ? 1 : y.strides[1];
            var xVals = backend.data.get(x.dataId).values;
            var wVals = backend.data.get(filter.dataId).values;
            var yVals = y.values;
            for (var b = 0; b < convInfo.batchSize; ++b) {
                var xOffset1 = b * xBatchStride;
                var yOffset1 = b * yBatchStride;
                for (var yR = 0; yR < convInfo.outHeight; ++yR) {
                    var yOffset2 = yOffset1 + yR * yRowStride;
                    var xRCorner = yR * convInfo.strideHeight - padTop;
                    for (var wR = 0; wR < filterHeight; ++wR) {
                        var xR = xRCorner + wR * dilationHeight;
                        if (xR < 0 || xR >= convInfo.inHeight) {
                            continue;
                        }
                        var wOffset1 = wR * filterStrides[0];
                        var xOffset2 = xOffset1 + xR * xRowStride;
                        for (var yC = 0; yC < convInfo.outWidth; ++yC) {
                            var yOffset3 = yOffset2 + yC * yColStride;
                            var xCCorner = yC * convInfo.strideWidth - padLeft;
                            for (var wC = 0; wC < filterWidth; ++wC) {
                                var xC = xCCorner + wC * dilationWidth;
                                if (xC < 0 || xC >= convInfo.inWidth) {
                                    continue;
                                }
                                var wOffset2 = wOffset1 + wC * filterStrides[1];
                                var xOffset3 = xOffset2 + xC * xColStride;
                                var wOffset3 = wOffset2;
                                for (var d1 = 0; d1 < convInfo.inChannels; ++d1) {
                                    var xVal = xVals[xOffset3 + d1 * xChannelStride];
                                    for (var d2 = 0; d2 < convInfo.outChannels; ++d2) {
                                        yVals[yOffset3 + d2 * yChannelStride] += xVal * wVals[wOffset3 + d2];
                                    }
                                    wOffset3 += convInfo.outChannels;
                                }
                            }
                        }
                    }
                }
            }
            return backend.makeTensorInfo(y.shape, y.dtype, yVals);
        }
        var conv2DConfig = {
            kernelName: tfjsCore.Conv2D,
            backendName: 'cpu',
            kernelFunc: conv2D
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function conv2DBackpropFilter(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x
                , dy = inputs.dy;
            var strides = attrs.strides
                , pad = attrs.pad
                , dataFormat = attrs.dataFormat
                , dimRoundingMode = attrs.dimRoundingMode
                , filterShape = attrs.filterShape;
            assertNotComplex([x, dy], 'conv2dBackpropFilter');
            var $dataFormat = tfjsCore.backend_util.convertConv2DDataFormat(dataFormat);
            var convInfo = tfjsCore.backend_util.computeConv2DInfo(x.shape, filterShape, strides, 1 /* dilations */
                , pad, dimRoundingMode, false /* depthwise */
                , $dataFormat);
            var strideHeight = convInfo.strideHeight
                , strideWidth = convInfo.strideWidth
                , filterHeight = convInfo.filterHeight
                , filterWidth = convInfo.filterWidth;
            var isChannelsLast = convInfo.dataFormat === 'channelsLast';
            var dW = new tfjsCore.TensorBuffer(convInfo.filterShape, 'float32');
            var leftPad = convInfo.padInfo.left;
            var topPad = convInfo.padInfo.top;
            var xVals = backend.data.get(x.dataId).values;
            var dyVals = backend.data.get(dy.dataId).values;
            var xBuf = new tfjsCore.TensorBuffer(x.shape, x.dtype, xVals);
            var dyBuf = new tfjsCore.TensorBuffer(dy.shape, dy.dtype, dyVals);
            for (var wR = 0; wR < filterHeight; ++wR) {
                var yRMin = Math.max(0, Math.ceil((topPad - wR) / strideHeight));
                var yRMax = Math.min(convInfo.outHeight, (convInfo.inHeight + topPad - wR) / strideHeight);
                for (var wC = 0; wC < filterWidth; ++wC) {
                    var yCMin = Math.max(0, Math.ceil((leftPad - wC) / strideWidth));
                    var yCMax = Math.min(convInfo.outWidth, (convInfo.inWidth + leftPad - wC) / strideWidth);
                    for (var d1 = 0; d1 < convInfo.inChannels; ++d1) {
                        for (var d2 = 0; d2 < convInfo.outChannels; ++d2) {
                            var dotProd = 0;
                            for (var b = 0; b < convInfo.batchSize; ++b) {
                                for (var yR = yRMin; yR < yRMax; ++yR) {
                                    var xR = wR + yR * strideHeight - topPad;
                                    for (var yC = yCMin; yC < yCMax; ++yC) {
                                        var xC = wC + yC * strideWidth - leftPad;
                                        if (isChannelsLast) {
                                            dotProd += xBuf.get(b, xR, xC, d1) * dyBuf.get(b, yR, yC, d2);
                                        } else {
                                            dotProd += xBuf.get(b, d1, xR, xC) * dyBuf.get(b, d2, yR, yC);
                                        }
                                    }
                                }
                            }
                            dW.set(dotProd, wR, wC, d1, d2);
                        }
                    }
                }
            }
            return backend.makeTensorInfo(dW.shape, dW.dtype, dW.values);
        }
        var conv2DBackpropFilterConfig = {
            kernelName: tfjsCore.Conv2DBackpropFilter,
            backendName: 'cpu',
            kernelFunc: conv2DBackpropFilter
        };

        function conv2DBackpropInput(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var dy = inputs.dy
                , filter = inputs.filter;
            var inputShape = attrs.inputShape
                , strides = attrs.strides
                , pad = attrs.pad
                , dataFormat = attrs.dataFormat
                , dimRoundingMode = attrs.dimRoundingMode;
            assertNotComplex([dy, filter], 'conv2dBackpropInput');
            var filterStrides = tfjsCore.util.computeStrides(filter.shape);
            var dyStrides = tfjsCore.util.computeStrides(dy.shape);
            var $dataFormat = tfjsCore.backend_util.convertConv2DDataFormat(dataFormat);
            var convInfo = tfjsCore.backend_util.computeConv2DInfo(inputShape, filter.shape, strides, 1 /* dilations */
                , pad, dimRoundingMode, false, $dataFormat);
            var dx = new tfjsCore.TensorBuffer(convInfo.inShape, 'float32');
            var dxValues = dx.values;
            var dyValues = backend.data.get(dy.dataId).values;
            var fltValues = backend.data.get(filter.dataId).values;
            var _a = __read(filterStrides, 3)
                , fltS0 = _a[0]
                , fltS1 = _a[1]
                , fltS2 = _a[2];
            var batchSize = convInfo.batchSize
                , filterHeight = convInfo.filterHeight
                , filterWidth = convInfo.filterWidth
                , inChannels = convInfo.inChannels
                , inHeight = convInfo.inHeight
                , inWidth = convInfo.inWidth
                , outChannels = convInfo.outChannels
                , outHeight = convInfo.outHeight
                , outWidth = convInfo.outWidth
                , strideHeight = convInfo.strideHeight
                , strideWidth = convInfo.strideWidth;
            $dataFormat = convInfo.dataFormat;
            var topPad = filterHeight - 1 - convInfo.padInfo.top;
            var leftPad = filterWidth - 1 - convInfo.padInfo.left;
            var isChannelsLast = $dataFormat === 'channelsLast';
            var xBatchStride = dx.strides[0];
            var xRowStride = isChannelsLast ? dx.strides[1] : dx.strides[2];
            var xColStride = isChannelsLast ? dx.strides[2] : 1;
            var xChannelStride = isChannelsLast ? 1 : dx.strides[1];
            var yBatchStride = dyStrides[0];
            var yRowStride = isChannelsLast ? dyStrides[1] : dyStrides[2];
            var yColStride = isChannelsLast ? dyStrides[2] : 1;
            var yChannelStride = isChannelsLast ? 1 : dyStrides[1];
            for (var b = 0; b < batchSize; ++b) {
                for (var d1 = 0; d1 < inChannels; ++d1) {
                    for (var xR = 0; xR < inHeight; ++xR) {
                        var xRCorner = xR - topPad;
                        var xRMin = Math.max(0, Math.ceil(xRCorner / strideHeight));
                        var yRMax = Math.min(outHeight, (filterHeight + xRCorner) / strideHeight);
                        for (var xC = 0; xC < inWidth; ++xC) {
                            var xCCorner = xC - leftPad;
                            var xCMin = Math.max(0, Math.ceil(xCCorner / strideWidth));
                            var yCMax = Math.min(outWidth, (filterWidth + xCCorner) / strideWidth);
                            var dotProd = 0;
                            for (var yR = xRMin; yR < yRMax; ++yR) {
                                var wR = yR * strideHeight - xRCorner;
                                for (var yC = xCMin; yC < yCMax; ++yC) {
                                    var wC = yC * strideWidth - xCCorner;
                                    var dyOffset = yBatchStride * b + yRowStride * yR + yColStride * yC;
                                    var fltOffset = fltS0 * (filterHeight - 1 - wR) + fltS1 * (filterWidth - 1 - wC) + fltS2 * d1;
                                    for (var d2 = 0; d2 < outChannels; ++d2) {
                                        var pixel = dyValues[dyOffset + yChannelStride * d2];
                                        var weight = fltValues[fltOffset + d2];
                                        dotProd += pixel * weight;
                                    }
                                }
                            }
                            var dxOffset = xBatchStride * b + xRowStride * xR + xColStride * xC + xChannelStride * d1;
                            dxValues[dxOffset] = dotProd;
                        }
                    }
                }
            }
            return backend.makeTensorInfo(dx.shape, dx.dtype, dx.values);
        }
        var conv2DBackpropInputConfig = {
            kernelName: tfjsCore.Conv2DBackpropInput,
            backendName: 'cpu',
            kernelFunc: conv2DBackpropInput
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function conv3D(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x
                , filter = inputs.filter;
            var strides = attrs.strides
                , pad = attrs.pad
                , dilations = attrs.dilations;
            assertNotComplex([x, filter], 'conv3d');
            var convInfo = tfjsCore.backend_util.computeConv3DInfo(x.shape, filter.shape, strides, dilations, pad);
            var filterDepth = convInfo.filterDepth
                , filterHeight = convInfo.filterHeight
                , filterWidth = convInfo.filterWidth
                , dilationDepth = convInfo.dilationDepth
                , dilationHeight = convInfo.dilationHeight
                , dilationWidth = convInfo.dilationWidth
                , padInfo = convInfo.padInfo;
            var padFront = padInfo.front;
            var padLeft = padInfo.left;
            var padTop = padInfo.top;
            var y = new tfjsCore.TensorBuffer(convInfo.outShape, x.dtype);
            var xVals = backend.data.get(x.dataId).values;
            var wVals = backend.data.get(filter.dataId).values;
            var yVals = y.values;
            var xStrides = tfjsCore.util.computeStrides(x.shape);
            var filterStrides = tfjsCore.util.computeStrides(filter.shape);
            for (var b = 0; b < convInfo.batchSize; ++b) {
                var xOffset1 = b * xStrides[0];
                var yOffset1 = b * y.strides[0];
                for (var yF = 0; yF < convInfo.outDepth; ++yF) {
                    var yOffset2 = yOffset1 + yF * y.strides[1];
                    var xFCorner = yF * convInfo.strideDepth - padFront;
                    for (var wF = 0; wF < filterDepth; ++wF) {
                        var xF = xFCorner + wF * dilationDepth;
                        if (xF < 0 || xF >= convInfo.inDepth) {
                            continue;
                        }
                        var wOffset1 = wF * filterStrides[0];
                        var xOffset2 = xOffset1 + xF * xStrides[1];
                        for (var yR = 0; yR < convInfo.outHeight; ++yR) {
                            var yOffset3 = yOffset2 + yR * y.strides[2];
                            var xRCorner = yR * convInfo.strideHeight - padTop;
                            for (var wR = 0; wR < filterHeight; ++wR) {
                                var xR = xRCorner + wR * dilationHeight;
                                if (xR < 0 || xR >= convInfo.inHeight) {
                                    continue;
                                }
                                var wOffset2 = wOffset1 + wR * filterStrides[1];
                                var xOffset3 = xOffset2 + xR * xStrides[2];
                                for (var yC = 0; yC < convInfo.outWidth; ++yC) {
                                    var yOffset4 = yOffset3 + yC * convInfo.outChannels;
                                    var xCCorner = yC * convInfo.strideWidth - padLeft;
                                    for (var wC = 0; wC < filterWidth; ++wC) {
                                        var xC = xCCorner + wC * dilationWidth;
                                        if (xC < 0 || xC >= convInfo.inWidth) {
                                            continue;
                                        }
                                        var wOffset3 = wOffset2 + wC * filterStrides[2];
                                        var xOffset4 = xOffset3 + xC * convInfo.inChannels;
                                        var wOffset4 = wOffset3;
                                        for (var d1 = 0; d1 < convInfo.inChannels; ++d1) {
                                            var xVal = xVals[xOffset4 + d1];
                                            for (var d2 = 0; d2 < convInfo.outChannels; ++d2) {
                                                yVals[yOffset4 + d2] += xVal * wVals[wOffset4 + d2];
                                            }
                                            wOffset4 += convInfo.outChannels;
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
            return backend.makeTensorInfo(y.shape, y.dtype, y.values);
        }
        var conv3DConfig = {
            kernelName: tfjsCore.Conv3D,
            backendName: 'cpu',
            kernelFunc: conv3D
        };

        function conv3DBackpropFilterV2(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x
                , dy = inputs.dy;
            var strides = attrs.strides
                , pad = attrs.pad
                , filterShape = attrs.filterShape;
            assertNotComplex([x, dy], 'conv3dBackpropFilterV2');
            var xStrides = tfjsCore.util.computeStrides(x.shape);
            var dyStrides = tfjsCore.util.computeStrides(dy.shape);
            var convInfo = tfjsCore.backend_util.computeConv3DInfo(x.shape, filterShape, strides, 1 /* dilations */
                , pad);
            var strideDepth = convInfo.strideDepth;
            var strideHeight = convInfo.strideHeight;
            var strideWidth = convInfo.strideWidth;
            var filterDepth = convInfo.filterDepth;
            var filterHeight = convInfo.filterHeight;
            var filterWidth = convInfo.filterWidth;
            var dw = new tfjsCore.TensorBuffer(convInfo.filterShape, 'float32');
            var dwValues = dw.values;
            var _a = __read(dw.strides, 4)
                , dwS0 = _a[0]
                , dwS1 = _a[1]
                , dwS2 = _a[2]
                , dwS3 = _a[3];
            var dyValues = backend.data.get(dy.dataId).values;
            var _b = __read(dyStrides, 4)
                , dyS0 = _b[0]
                , dyS1 = _b[1]
                , dyS2 = _b[2]
                , dyS3 = _b[3];
            var xValues = backend.data.get(x.dataId).values;
            var _c = __read(xStrides, 4)
                , xS0 = _c[0]
                , xS1 = _c[1]
                , xS2 = _c[2]
                , xS3 = _c[3];
            var frontPad = convInfo.padInfo.front;
            var leftPad = convInfo.padInfo.left;
            var topPad = convInfo.padInfo.top;
            for (var wF = 0; wF < filterDepth; ++wF) {
                var yFMin = Math.max(0, Math.ceil((frontPad - wF) / strideDepth));
                var yFMax = Math.min(convInfo.outDepth, (convInfo.inDepth + frontPad - wF) / strideDepth);
                var wOffset1 = wF * dwS0;
                for (var wR = 0; wR < filterHeight; ++wR) {
                    var yRMin = Math.max(0, Math.ceil((topPad - wR) / strideHeight));
                    var yRMax = Math.min(convInfo.outHeight, (convInfo.inHeight + topPad - wR) / strideHeight);
                    var wOffset2 = wR * dwS1 + wOffset1;
                    for (var wC = 0; wC < filterWidth; ++wC) {
                        var yCMin = Math.max(0, Math.ceil((leftPad - wC) / strideWidth));
                        var yCMax = Math.min(convInfo.outWidth, (convInfo.inWidth + leftPad - wC) / strideWidth);
                        var wOffset3 = wC * dwS2 + wOffset2;
                        for (var d1 = 0; d1 < convInfo.inChannels; ++d1) {
                            var wOffset4 = d1 * dwS3 + wOffset3;
                            for (var d2 = 0; d2 < convInfo.outChannels; ++d2) {
                                var dotProd = 0;
                                for (var b = 0; b < convInfo.batchSize; ++b) {
                                    var xOffset1 = b * xS0;
                                    var yOffset1 = b * dyS0;
                                    for (var yF = yFMin; yF < yFMax; ++yF) {
                                        var xF = wF + yF * strideDepth - frontPad;
                                        var xOffset2 = xF * xS1 + xOffset1;
                                        var yOffset2 = yF * dyS1 + yOffset1;
                                        for (var yR = yRMin; yR < yRMax; ++yR) {
                                            var xR = wR + yR * strideHeight - topPad;
                                            var xOffset3 = xR * xS2 + xOffset2;
                                            var yOffset3 = yR * dyS2 + yOffset2;
                                            for (var yC = yCMin; yC < yCMax; ++yC) {
                                                var xC = wC + yC * strideWidth - leftPad;
                                                var xOffset4 = xC * xS3 + xOffset3;
                                                var yOffset4 = yC * dyS3 + yOffset3;
                                                dotProd += xValues[xOffset4 + d1] * dyValues[yOffset4 + d2];
                                            }
                                        }
                                    }
                                }
                                dwValues[wOffset4 + d2] = dotProd;
                            }
                        }
                    }
                }
            }
            return backend.makeTensorInfo(dw.shape, dw.dtype, dw.values);
        }
        var conv3DBackpropFilterV2Config = {
            kernelName: tfjsCore.Conv3DBackpropFilterV2,
            backendName: 'cpu',
            kernelFunc: conv3DBackpropFilterV2
        };

        function conv3DBackpropInputV2(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var dy = inputs.dy
                , filter = inputs.filter;
            var pad = attrs.pad
                , strides = attrs.strides
                , inputShape = attrs.inputShape;
            assertNotComplex([dy], 'conv3dBackpropInputV2');
            var dyStrides = tfjsCore.util.computeStrides(dy.shape);
            var filterStrides = tfjsCore.util.computeStrides(filter.shape);
            var convInfo = tfjsCore.backend_util.computeConv3DInfo(inputShape, filter.shape, strides, 1 /* dilations */
                , pad);
            var dx = new tfjsCore.TensorBuffer(convInfo.inShape, 'float32');
            var dxValues = dx.values;
            var _a = __read(dx.strides, 4)
                , dxS0 = _a[0]
                , dxS1 = _a[1]
                , dxS2 = _a[2]
                , dxS3 = _a[3];
            var dyValues = backend.data.get(dy.dataId).values;
            var _b = __read(dyStrides, 4)
                , dyS0 = _b[0]
                , dyS1 = _b[1]
                , dyS2 = _b[2]
                , dyS3 = _b[3];
            var fltValues = backend.data.get(filter.dataId).values;
            var _c = __read(filterStrides, 4)
                , fltS0 = _c[0]
                , fltS1 = _c[1]
                , fltS2 = _c[2]
                , fltS3 = _c[3];
            var batchSize = convInfo.batchSize
                , filterDepth = convInfo.filterDepth
                , filterHeight = convInfo.filterHeight
                , filterWidth = convInfo.filterWidth
                , inChannels = convInfo.inChannels
                , inDepth = convInfo.inDepth
                , inHeight = convInfo.inHeight
                , inWidth = convInfo.inWidth
                , outChannels = convInfo.outChannels
                , outDepth = convInfo.outDepth
                , outHeight = convInfo.outHeight
                , outWidth = convInfo.outWidth
                , strideDepth = convInfo.strideDepth
                , strideHeight = convInfo.strideHeight
                , strideWidth = convInfo.strideWidth;
            var frontPad = filterDepth - 1 - convInfo.padInfo.front;
            var topPad = filterHeight - 1 - convInfo.padInfo.top;
            var leftPad = filterWidth - 1 - convInfo.padInfo.left;
            for (var b = 0; b < batchSize; ++b) {
                for (var d1 = 0; d1 < inChannels; ++d1) {
                    // Frames of depth
                    for (var xF = 0; xF < inDepth; ++xF) {
                        var xFCorner = xF - frontPad;
                        var xFMin = Math.max(0, Math.ceil(xFCorner / strideDepth));
                        var yFMax = Math.min(outDepth, (filterDepth + xFCorner) / strideDepth);
                        // Rows as per standard 2d matrix notation
                        for (var xR = 0; xR < inHeight; ++xR) {
                            var xRCorner = xR - topPad;
                            var xRMin = Math.max(0, Math.ceil(xRCorner / strideHeight));
                            var yRMax = Math.min(outHeight, (filterHeight + xRCorner) / strideHeight);
                            // Columns as per standard 2d matrix notation
                            for (var xC = 0; xC < inWidth; ++xC) {
                                var xCCorner = xC - leftPad;
                                var xCMin = Math.max(0, Math.ceil(xCCorner / strideWidth));
                                var yCMax = Math.min(outWidth, (filterWidth + xCCorner) / strideWidth);
                                var dotProd = 0;
                                for (var yF = xFMin; yF < yFMax; ++yF) {
                                    var wF = yF * strideDepth - xFCorner;
                                    for (var yR = xRMin; yR < yRMax; ++yR) {
                                        var wR = yR * strideHeight - xRCorner;
                                        for (var yC = xCMin; yC < yCMax; ++yC) {
                                            var wC = yC * strideWidth - xCCorner;
                                            var dyOffset = dyS0 * b + dyS1 * yF + dyS2 * yR + dyS3 * yC;
                                            var fltOffset = fltS0 * (filterDepth - 1 - wF) + fltS1 * (filterHeight - 1 - wR) + fltS2 * (filterWidth - 1 - wC) + fltS3 * d1;
                                            for (var d2 = 0; d2 < outChannels; ++d2) {
                                                var pixel = dyValues[dyOffset + d2];
                                                var weight = fltValues[fltOffset + d2];
                                                dotProd += pixel * weight;
                                            }
                                        }
                                    }
                                }
                                dxValues[dxS0 * b + dxS1 * xF + dxS2 * xR + dxS3 * xC + d1] = dotProd;
                            }
                        }
                    }
                }
            }
            return backend.makeTensorInfo(dx.shape, dx.dtype, dx.values);
        }
        var conv3DBackpropInputV2Config = {
            kernelName: tfjsCore.Conv3DBackpropInputV2,
            backendName: 'cpu',
            kernelFunc: conv3DBackpropInputV2
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var cos = unaryKernelFunc(tfjsCore.Cos, function (xi) {
            return Math.cos(xi);
        });
        var cosConfig = {
            kernelName: tfjsCore.Cos,
            backendName: 'cpu',
            kernelFunc: cos,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the License);
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an AS IS BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var cosh = unaryKernelFunc(tfjsCore.Cosh, function (xi) {
            return Math.cosh(xi);
        });
        var coshConfig = {
            kernelName: tfjsCore.Cosh,
            backendName: 'cpu',
            kernelFunc: cosh,
        };

        function cropAndResize(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var image = inputs.image
                , boxes = inputs.boxes
                , boxInd = inputs.boxInd;
            var cropSize = attrs.cropSize
                , method = attrs.method
                , extrapolationValue = attrs.extrapolationValue;
            var _a = __read(image.shape, 4)
                , batch = _a[0]
                , imageHeight = _a[1]
                , imageWidth = _a[2]
                , numChannels = _a[3];
            var numBoxes = boxes.shape[0];
            var _b = __read(cropSize, 2)
                , cropHeight = _b[0]
                , cropWidth = _b[1];
            var output = tfjsCore.buffer([numBoxes, cropHeight, cropWidth, numChannels], 'float32');
            var boxVals = backend.data.get(boxes.dataId).values;
            var boxIndVals = backend.data.get(boxInd.dataId).values;
            var imageVals = backend.data.get(image.dataId).values;
            var inStride = tfjsCore.util.computeStrides(image.shape);
            // to calculate flat indexes into image
            var outStride = tfjsCore.util.computeStrides(output.shape);
            // to calculate flat indexes into output
            // Reference implementation
            // tslint:disable-next-line:max-line-length
            // https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/kernels/crop_and_resize_op.cc
            for (var b = 0; b < numBoxes; b++) {
                var startInd = b * 4;
                var y1 = boxVals[startInd];
                var x1 = boxVals[startInd + 1];
                var y2 = boxVals[startInd + 2];
                var x2 = boxVals[startInd + 3];
                var bInd = boxIndVals[b];
                if (bInd >= batch) {
                    continue;
                }
                var heightScale = (cropHeight > 1) ? (y2 - y1) * (imageHeight - 1) / (cropHeight - 1) : 0;
                var widthScale = (cropWidth > 1) ? (x2 - x1) * (imageWidth - 1) / (cropWidth - 1) : 0;
                for (var y = 0; y < cropHeight; y++) {
                    var yInd = (cropHeight > 1) ? y1 * (imageHeight - 1) + y * (heightScale) : 0.5 * (y1 + y2) * (imageHeight - 1);
                    if (yInd < 0 || yInd > imageHeight - 1) {
                        for (var x = 0; x < cropWidth; x++) {
                            for (var c = 0; c < numChannels; c++) {
                                var ind = c + x * outStride[2] + y * outStride[1] + b * outStride[0];
                                output.values[ind] = extrapolationValue;
                            }
                        }
                        continue;
                    }
                    if (method === 'bilinear') {
                        var topInd = Math.floor(yInd);
                        var bottomInd = Math.ceil(yInd);
                        var yLerp = yInd - topInd;
                        for (var x = 0; x < cropWidth; x++) {
                            var xInd = (cropWidth > 1) ? x1 * (imageWidth - 1) + x * widthScale : 0.5 * (x1 + x2) * (imageWidth - 1);
                            if (xInd < 0 || xInd > imageWidth - 1) {
                                for (var c = 0; c < numChannels; c++) {
                                    var ind = c + x * outStride[2] + y * outStride[1] + b * outStride[0];
                                    output.values[ind] = extrapolationValue;
                                }
                                continue;
                            }
                            var leftInd = Math.floor(xInd);
                            var rightInd = Math.ceil(xInd);
                            var xLerp = xInd - leftInd;
                            for (var c = 0; c < numChannels; c++) {
                                var ind = c + leftInd * inStride[2] + topInd * inStride[1] + bInd * inStride[0];
                                var topLeft = imageVals[ind];
                                ind = c + rightInd * inStride[2] + topInd * inStride[1] + bInd * inStride[0];
                                var topRight = imageVals[ind];
                                ind = c + leftInd * inStride[2] + bottomInd * inStride[1] + bInd * inStride[0];
                                var bottomLeft = imageVals[ind];
                                ind = c + rightInd * inStride[2] + bottomInd * inStride[1] + bInd * inStride[0];
                                var bottomRight = imageVals[ind];
                                var top = topLeft + (topRight - topLeft) * xLerp;
                                var bottom = bottomLeft + (bottomRight - bottomLeft) * xLerp;
                                ind = c + x * outStride[2] + y * outStride[1] + b * outStride[0];
                                output.values[ind] = top + ((bottom - top) * yLerp);
                            }
                        }
                    } else {
                        // method == "nearest"
                        for (var x = 0; x < cropWidth; ++x) {
                            var xInd = (cropWidth > 1) ? x1 * (imageWidth - 1) + x * widthScale : 0.5 * (x1 + x2) * (imageWidth - 1);
                            if (xInd < 0 || xInd > imageWidth - 1) {
                                for (var c = 0; c < numChannels; c++) {
                                    var ind = c + x * outStride[2] + y * outStride[1] + b * outStride[0];
                                    output.values[ind] = extrapolationValue;
                                }
                                continue;
                            }
                            var closestX = Math.round(xInd);
                            var closestY = Math.round(yInd);
                            for (var c = 0; c < numChannels; c++) {
                                var inInd = c + closestX * inStride[2] + closestY * inStride[1] + bInd * inStride[0];
                                var outInd = c + x * outStride[2] + y * outStride[1] + b * outStride[0];
                                output.values[outInd] = imageVals[inInd];
                            }
                        }
                    }
                }
            }
            return backend.makeTensorInfo(output.shape, output.dtype, output.values);
        }
        var cropAndResizeConfig = {
            kernelName: tfjsCore.CropAndResize,
            backendName: 'cpu',
            kernelFunc: cropAndResize
        };

        /**
         * @license
         * Copyright 2022 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function cumprod(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x;
            var axis = attrs.axis
                , exclusive = attrs.exclusive
                , reverse = attrs.reverse;
            assertNotComplex(x, 'cumprod');
            var permutation = tfjsCore.backend_util.getAxesPermutation([axis], x.shape.length);
            var $x = x;
            if (permutation != null) {
                $x = transpose({
                    inputs: {
                        x: x
                    },
                    backend: backend,
                    attrs: {
                        perm: permutation
                    }
                });
            }
            var permutedAxis = tfjsCore.backend_util.getInnerMostAxes(1, x.shape.length)[0];
            if (permutedAxis !== $x.shape.length - 1) {
                throw new Error("backend.cumprod in CPU expects an inner-most " + "axis=".concat($x.shape.length - 1, " but got axis=").concat(permutedAxis));
            }
            var resultDtype = tfjsCore.upcastType($x.dtype, 'int32');
            var vals = tfjsCore.util.makeOnesTypedArray(tfjsCore.util.sizeFromShape($x.shape), resultDtype);
            var aVals = backend.data.get($x.dataId).values;
            var finalDim = $x.shape[$x.shape.length - 1];
            var indexAdjuster = reverse ? function (i, j) {
                return i + finalDim - j - 1;
            }
                : function (i, j) {
                    return i + j;
                }
                ;
            for (var i = 0; i < aVals.length; i += finalDim) {
                for (var j = 0; j < finalDim; j++) {
                    var idx = indexAdjuster(i, j);
                    if (j === 0) {
                        vals[idx] = exclusive ? 1 : aVals[idx];
                    } else {
                        var prevIdx = indexAdjuster(i, j - 1);
                        vals[idx] = exclusive ? aVals[prevIdx] * vals[prevIdx] : aVals[idx] * vals[prevIdx];
                    }
                }
            }
            var result = backend.makeTensorInfo($x.shape, resultDtype, vals);
            if (permutation != null) {
                var reversePermutation = tfjsCore.backend_util.getUndoAxesPermutation(permutation);
                var reverseTransposedResult = transpose({
                    inputs: {
                        x: result
                    },
                    backend: backend,
                    attrs: {
                        perm: reversePermutation
                    }
                });
                backend.disposeIntermediateTensorInfo(result);
                backend.disposeIntermediateTensorInfo($x);
                return reverseTransposedResult;
            }
            return result;
        }
        var cumprodConfig = {
            kernelName: tfjsCore.Cumprod,
            backendName: 'cpu',
            kernelFunc: cumprod
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function cumsum(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x;
            var axis = attrs.axis
                , exclusive = attrs.exclusive
                , reverse = attrs.reverse;
            assertNotComplex(x, 'cumsum');
            var permutation = tfjsCore.backend_util.getAxesPermutation([axis], x.shape.length);
            var $x = x;
            if (permutation != null) {
                $x = transpose({
                    inputs: {
                        x: x
                    },
                    backend: backend,
                    attrs: {
                        perm: permutation
                    }
                });
            }
            var permutedAxis = tfjsCore.backend_util.getInnerMostAxes(1, x.shape.length)[0];
            if (permutedAxis !== $x.shape.length - 1) {
                throw new Error("backend.cumsum in CPU expects an inner-most " + "axis=".concat($x.shape.length - 1, " but got axis=").concat(permutedAxis));
            }
            var resultDtype = tfjsCore.upcastType($x.dtype, 'int32');
            var vals = tfjsCore.util.makeZerosTypedArray(tfjsCore.util.sizeFromShape($x.shape), resultDtype);
            var aVals = backend.data.get($x.dataId).values;
            var finalDim = $x.shape[$x.shape.length - 1];
            var indexAdjuster = reverse ? function (i, j) {
                return i + finalDim - j - 1;
            }
                : function (i, j) {
                    return i + j;
                }
                ;
            for (var i = 0; i < aVals.length; i += finalDim) {
                for (var j = 0; j < finalDim; j++) {
                    var idx = indexAdjuster(i, j);
                    if (j === 0) {
                        vals[idx] = exclusive ? 0 : aVals[idx];
                    } else {
                        var prevIdx = indexAdjuster(i, j - 1);
                        vals[idx] = exclusive ? aVals[prevIdx] + vals[prevIdx] : aVals[idx] + vals[prevIdx];
                    }
                }
            }
            var result = backend.makeTensorInfo($x.shape, resultDtype, vals);
            if (permutation != null) {
                var reversePermutation = tfjsCore.backend_util.getUndoAxesPermutation(permutation);
                var reverseTransposedResult = transpose({
                    inputs: {
                        x: result
                    },
                    backend: backend,
                    attrs: {
                        perm: reversePermutation
                    }
                });
                backend.disposeIntermediateTensorInfo(result);
                backend.disposeIntermediateTensorInfo($x);
                return reverseTransposedResult;
            }
            return result;
        }
        var cumsumConfig = {
            kernelName: tfjsCore.Cumsum,
            backendName: 'cpu',
            kernelFunc: cumsum
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function denseBincount(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x
                , weights = inputs.weights;
            var size = attrs.size
                , binaryOutput = attrs.binaryOutput;
            if (x.shape.length === 1) {
                var xVals = backend.data.get(x.dataId).values;
                var weightsVals = backend.data.get(weights.dataId).values;
                var outVals = bincountImpl(xVals, weightsVals, weights.dtype, weights.shape, size);
                return backend.makeTensorInfo([size], weights.dtype, outVals);
            } else if (x.shape.length === 2) {
                var xBuf = backend.bufferSync(x);
                var weightsBuf = backend.bufferSync(weights);
                var outBuf = bincountReduceImpl(xBuf, weightsBuf, size, binaryOutput);
                return backend.makeTensorInfo(outBuf.shape, weights.dtype, outBuf.values);
            }
            throw new Error("Error in denseBincount: input must be at most rank 2, but got rank" + "".concat(x.shape.length, "."));
        }
        var denseBincountConfig = {
            kernelName: tfjsCore.DenseBincount,
            backendName: 'cpu',
            kernelFunc: denseBincount
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function depthToSpace(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x;
            var blockSize = attrs.blockSize
                , dataFormat = attrs.dataFormat;
            tfjsCore.util.assert(dataFormat === 'NHWC', function () {
                return "Only NHWC dataFormat supported on CPU for depthToSpace. Got ".concat(dataFormat);
            });
            var batchSize = x.shape[0];
            var inputHeight = x.shape[1];
            var inputWidth = x.shape[2];
            var inputDepth = x.shape[3];
            var outputHeight = inputHeight * blockSize;
            var outputWidth = inputWidth * blockSize;
            var outputDepth = inputDepth / (blockSize * blockSize);
            var xValues = backend.data.get(x.dataId).values;
            var result = new Float32Array(batchSize * outputHeight * outputWidth * outputDepth);
            var outputIdx = 0;
            for (var b = 0; b < batchSize; ++b) {
                for (var h = 0; h < outputHeight; ++h) {
                    var inH = Math.floor(h / blockSize);
                    var offsetH = (h % blockSize);
                    for (var w = 0; w < outputWidth; ++w) {
                        var inW = Math.floor(w / blockSize);
                        var offsetW = (w % blockSize);
                        var offsetD = (offsetH * blockSize + offsetW) * outputDepth;
                        for (var d = 0; d < outputDepth; ++d) {
                            var inD = d + offsetD;
                            var inputIdx = inD + inputDepth * (inW + inputWidth * (inH + inputHeight * b));
                            result[outputIdx++] = xValues[inputIdx];
                        }
                    }
                }
            }
            return backend.makeTensorInfo([batchSize, outputHeight, outputWidth, outputDepth], x.dtype, result);
        }
        var depthToSpaceConfig = {
            kernelName: tfjsCore.DepthToSpace,
            backendName: 'cpu',
            kernelFunc: depthToSpace
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function depthwiseConv2dNative(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x
                , filter = inputs.filter;
            var strides = attrs.strides
                , pad = attrs.pad
                , dilations = attrs.dilations
                , dimRoundingMode = attrs.dimRoundingMode;
            assertNotComplex([x, filter], 'depthwiseConv2DNative');
            var xStrides = tfjsCore.util.computeStrides(x.shape);
            var filterStrides = tfjsCore.util.computeStrides(filter.shape);
            var $dilations = dilations;
            if ($dilations == null) {
                $dilations = [1, 1];
            }
            tfjsCore.util.assert(tfjsCore.backend_util.eitherStridesOrDilationsAreOne(strides, $dilations), function () {
                return 'Error in depthwiseConv2d: Either strides or dilations must be ' + "1. Got strides ".concat(strides, " and dilations '").concat($dilations, "'");
            });
            var convInfo = tfjsCore.backend_util.computeConv2DInfo(x.shape, filter.shape, strides, $dilations, pad, dimRoundingMode, true /* depthwise */
            );
            var filterHeight = convInfo.filterHeight
                , filterWidth = convInfo.filterWidth
                , dilationHeight = convInfo.dilationHeight
                , dilationWidth = convInfo.dilationWidth
                , padInfo = convInfo.padInfo;
            var padLeft = padInfo.left;
            var padTop = padInfo.top;
            var chMul = convInfo.outChannels / convInfo.inChannels;
            var y = new tfjsCore.TensorBuffer(convInfo.outShape, x.dtype);
            var xVals = backend.data.get(x.dataId).values;
            var wVals = backend.data.get(filter.dataId).values;
            var yVals = y.values;
            for (var b = 0; b < convInfo.batchSize; ++b) {
                var xOffset1 = b * xStrides[0];
                var yOffset1 = b * y.strides[0];
                for (var yR = 0; yR < convInfo.outHeight; ++yR) {
                    var yOffset2 = yOffset1 + yR * y.strides[1];
                    var xRCorner = yR * convInfo.strideHeight - padTop;
                    for (var wR = 0; wR < filterHeight; ++wR) {
                        var xR = xRCorner + wR * dilationHeight;
                        if (xR < 0 || xR >= convInfo.inHeight) {
                            continue;
                        }
                        var wOffset1 = wR * filterStrides[0];
                        var xOffset2 = xOffset1 + xR * xStrides[1];
                        for (var yC = 0; yC < convInfo.outWidth; ++yC) {
                            var yOffset3 = yOffset2 + yC * y.strides[2];
                            var xCCorner = yC * convInfo.strideWidth - padLeft;
                            for (var wC = 0; wC < filterWidth; ++wC) {
                                var xC = xCCorner + wC * dilationWidth;
                                if (xC < 0 || xC >= convInfo.inWidth) {
                                    continue;
                                }
                                var wOffset2 = wOffset1 + wC * filterStrides[1];
                                var xOffset3 = xOffset2 + xC * convInfo.inChannels;
                                var yOffset4 = yOffset3;
                                var wOffset3 = wOffset2;
                                for (var d1 = 0; d1 < convInfo.inChannels; ++d1) {
                                    var xVal = xVals[xOffset3 + d1];
                                    for (var q = 0; q < chMul; ++q) {
                                        yVals[yOffset4 + q] += xVal * wVals[wOffset3 + q];
                                    }
                                    yOffset4 += chMul;
                                    wOffset3 += chMul;
                                }
                            }
                        }
                    }
                }
            }
            return backend.makeTensorInfo(y.shape, y.dtype, y.values);
        }
        var depthwiseConv2dNativeConfig = {
            kernelName: tfjsCore.DepthwiseConv2dNative,
            backendName: 'cpu',
            kernelFunc: depthwiseConv2dNative
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function depthwiseConv2dNativeBackpropFilter(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x
                , dy = inputs.dy;
            var strides = attrs.strides
                , dilations = attrs.dilations
                , pad = attrs.pad
                , dimRoundingMode = attrs.dimRoundingMode
                , filterShape = attrs.filterShape;
            assertNotComplex([x, dy], 'depthwiseConv2dNativeBackpropFilter');
            var convInfo = tfjsCore.backend_util.computeConv2DInfo(x.shape, filterShape, strides, dilations, pad, dimRoundingMode, true /* depthwise */
            );
            var strideHeight = convInfo.strideHeight
                , strideWidth = convInfo.strideWidth
                , filterHeight = convInfo.filterHeight
                , filterWidth = convInfo.filterWidth;
            var dW = new tfjsCore.TensorBuffer(convInfo.filterShape, 'float32');
            var leftPad = convInfo.padInfo.left;
            var topPad = convInfo.padInfo.top;
            var chMul = convInfo.outChannels / convInfo.inChannels;
            var xVals = backend.data.get(x.dataId).values;
            var xBuf = new tfjsCore.TensorBuffer(x.shape, x.dtype, xVals);
            var dyVals = backend.data.get(dy.dataId).values;
            var dyBuf = new tfjsCore.TensorBuffer(dy.shape, dy.dtype, dyVals);
            for (var wR = 0; wR < filterHeight; ++wR) {
                var yRMin = Math.max(0, Math.ceil((topPad - wR) / strideHeight));
                var yRMax = Math.min(convInfo.outHeight, (convInfo.inHeight + topPad - wR) / strideHeight);
                for (var wC = 0; wC < filterWidth; ++wC) {
                    var yCMin = Math.max(0, Math.ceil((leftPad - wC) / strideWidth));
                    var yCMax = Math.min(convInfo.outWidth, (convInfo.inWidth + leftPad - wC) / strideWidth);
                    for (var d2 = 0; d2 < convInfo.outChannels; ++d2) {
                        var d1 = Math.trunc(d2 / chMul);
                        var dm = d2 % chMul;
                        var dotProd = 0;
                        for (var b = 0; b < convInfo.batchSize; ++b) {
                            for (var yR = yRMin; yR < yRMax; ++yR) {
                                var xR = wR + yR * strideHeight - topPad;
                                for (var yC = yCMin; yC < yCMax; ++yC) {
                                    var xC = wC + yC * strideWidth - leftPad;
                                    dotProd += xBuf.get(b, xR, xC, d1) * dyBuf.get(b, yR, yC, d2);
                                }
                            }
                        }
                        dW.set(dotProd, wR, wC, d1, dm);
                    }
                }
            }
            return backend.makeTensorInfo(dW.shape, dW.dtype, dW.values);
        }
        var depthwiseConv2dNativeBackpropFilterConfig = {
            kernelName: tfjsCore.DepthwiseConv2dNativeBackpropFilter,
            backendName: 'cpu',
            kernelFunc: depthwiseConv2dNativeBackpropFilter
        };

        function depthwiseConv2dNativeBackpropInput(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var dy = inputs.dy
                , filter = inputs.filter;
            var strides = attrs.strides
                , dilations = attrs.dilations
                , pad = attrs.pad
                , dimRoundingMode = attrs.dimRoundingMode
                , inputShape = attrs.inputShape;
            assertNotComplex([dy, filter], 'depthwiseConv2DNativeBackpropInput');
            var dyStrides = tfjsCore.util.computeStrides(dy.shape);
            var filterStrides = tfjsCore.util.computeStrides(filter.shape);
            var convInfo = tfjsCore.backend_util.computeConv2DInfo(inputShape, filter.shape, strides, dilations, pad, dimRoundingMode, true /* depthwise */
            );
            var dx = new tfjsCore.TensorBuffer(convInfo.inShape, 'float32');
            var dxValues = dx.values;
            var _a = __read(dx.strides, 3)
                , dxS0 = _a[0]
                , dxS1 = _a[1]
                , dxS2 = _a[2];
            var dyValues = backend.data.get(dy.dataId).values;
            var _b = __read(dyStrides, 3)
                , dyS0 = _b[0]
                , dyS1 = _b[1]
                , dyS2 = _b[2];
            var fltValues = backend.data.get(filter.dataId).values;
            var _c = __read(filterStrides, 3)
                , fltS0 = _c[0]
                , fltS1 = _c[1]
                , fltS2 = _c[2];
            var batchSize = convInfo.batchSize
                , filterHeight = convInfo.filterHeight
                , filterWidth = convInfo.filterWidth
                , inChannels = convInfo.inChannels
                , inHeight = convInfo.inHeight
                , inWidth = convInfo.inWidth
                , outChannels = convInfo.outChannels
                , outHeight = convInfo.outHeight
                , outWidth = convInfo.outWidth
                , strideHeight = convInfo.strideHeight
                , strideWidth = convInfo.strideWidth;
            var topPad = filterHeight - 1 - convInfo.padInfo.top;
            var leftPad = filterWidth - 1 - convInfo.padInfo.left;
            var chMul = outChannels / inChannels;
            for (var b = 0; b < batchSize; ++b) {
                for (var d1 = 0; d1 < inChannels; ++d1) {
                    for (var xR = 0; xR < inHeight; ++xR) {
                        var xRCorner = xR - topPad;
                        var xRMin = Math.max(0, Math.ceil(xRCorner / strideHeight));
                        var yRMax = Math.min(outHeight, (filterHeight + xRCorner) / strideHeight);
                        for (var xC = 0; xC < inWidth; ++xC) {
                            var xCCorner = xC - leftPad;
                            var xCMin = Math.max(0, Math.ceil(xCCorner / strideWidth));
                            var yCMax = Math.min(outWidth, (filterWidth + xCCorner) / strideWidth);
                            var dotProd = 0;
                            for (var yR = xRMin; yR < yRMax; ++yR) {
                                var wR = yR * strideHeight - xRCorner;
                                for (var yC = xCMin; yC < yCMax; ++yC) {
                                    var wC = yC * strideWidth - xCCorner;
                                    var dyOffset = dyS0 * b + dyS1 * yR + dyS2 * yC;
                                    var fltOffset = fltS0 * (filterHeight - 1 - wR) + fltS1 * (filterWidth - 1 - wC) + fltS2 * d1;
                                    for (var dm = 0; dm < chMul; ++dm) {
                                        var d2 = d1 * chMul + dm;
                                        var pixel = dyValues[dyOffset + d2];
                                        var weight = fltValues[fltOffset + dm];
                                        dotProd += pixel * weight;
                                    }
                                }
                            }
                            dxValues[dxS0 * b + dxS1 * xR + dxS2 * xC + d1] = dotProd;
                        }
                    }
                }
            }
            return backend.makeTensorInfo(dx.shape, dx.dtype, dx.values);
        }
        var depthwiseConv2dNativeBackpropInputConfig = {
            kernelName: tfjsCore.DepthwiseConv2dNativeBackpropInput,
            backendName: 'cpu',
            kernelFunc: depthwiseConv2dNativeBackpropInput
        };

        function diag(args) {
            var inputs = args.inputs
                , backend = args.backend;
            var x = inputs.x;
            var xSize = tfjsCore.util.sizeFromShape(x.shape);
            var xVals = backend.data.get(x.dataId).values;
            var outBuf = tfjsCore.buffer([xSize, xSize], x.dtype);
            var vals = outBuf.values;
            for (var i = 0; i < xVals.length; i++) {
                vals[i * xSize + i] = xVals[i];
            }
            var outShape = __spreadArray(__spreadArray([], __read(x.shape), false), __read(x.shape), false);
            return backend.makeTensorInfo(outShape, outBuf.dtype, outBuf.values);
        }
        var diagConfig = {
            kernelName: tfjsCore.Diag,
            backendName: 'cpu',
            kernelFunc: diag
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var dilation2DConfig = {
            kernelName: tfjsCore.Dilation2D,
            backendName: 'cpu',
            kernelFunc: function (_a) {
                var inputs = _a.inputs
                    , backend = _a.backend
                    , attrs = _a.attrs;
                var x = inputs.x
                    , filter = inputs.filter;
                var strides = attrs.strides
                    , pad = attrs.pad
                    , dilations = attrs.dilations;
                var cpuBackend = backend;
                var xVals = cpuBackend.data.get(x.dataId).values;
                var xRank = x.shape.length;
                var filterVals = cpuBackend.data.get(filter.dataId).values;
                var filterRank = filter.shape.length;
                var _b = tfjsCore.backend_util.computeDilation2DInfo(x.shape, filter.shape, strides, pad, 'NHWC'/* dataFormat */
                    , dilations)
                    , batchSize = _b.batchSize
                    , inHeight = _b.inHeight
                    , inWidth = _b.inWidth
                    , inChannels = _b.inChannels
                    , outHeight = _b.outHeight
                    , outWidth = _b.outWidth
                    , padInfo = _b.padInfo
                    , strideHeight = _b.strideHeight
                    , strideWidth = _b.strideWidth
                    , filterHeight = _b.filterHeight
                    , filterWidth = _b.filterWidth
                    , dilationHeight = _b.dilationHeight
                    , dilationWidth = _b.dilationWidth
                    , outShape = _b.outShape;
                var outSize = tfjsCore.util.sizeFromShape(outShape);
                var outRank = outShape.length;
                var outputVals = tfjsCore.util.getArrayFromDType(x.dtype, outSize);
                // Upsampling the input by fill in `dilation size - 1` values between each
                // input value.
                // This implementation follows the TF c++ implementation:
                // https://github.com/tensorflow/tensorflow/blob/d9a3a849edc198e90172bc58eb293de457f9d986/tensorflow/core/kernels/dilation_ops.cc
                for (var b = 0; b < batchSize; ++b) {
                    for (var hOut = 0; hOut < outHeight; ++hOut) {
                        var hBeg = hOut * strideHeight - padInfo.top;
                        for (var wOut = 0; wOut < outWidth; ++wOut) {
                            var wBeg = wOut * strideWidth - padInfo.left;
                            for (var d = 0; d < inChannels; ++d) {
                                var curVal = Number.MIN_SAFE_INTEGER;
                                for (var h = 0; h < filterHeight; ++h) {
                                    var hIn = hBeg + h * dilationHeight;
                                    if (hIn >= 0 && hIn < inHeight) {
                                        for (var w = 0; w < filterWidth; ++w) {
                                            var wIn = wBeg + w * dilationWidth;
                                            if (wIn >= 0 && wIn < inWidth) {
                                                var xIndex = tfjsCore.util.locToIndex([b, hIn, wIn, d], xRank, tfjsCore.util.computeStrides(x.shape));
                                                var filterIndex = tfjsCore.util.locToIndex([h, w, d], filterRank, tfjsCore.util.computeStrides(filter.shape));
                                                var val = xVals[xIndex] + filterVals[filterIndex];
                                                if (val > curVal) {
                                                    curVal = val;
                                                }
                                            }
                                        }
                                    }
                                }
                                var outputIndex = tfjsCore.util.locToIndex([b, hOut, wOut, d], outRank, tfjsCore.util.computeStrides(outShape));
                                outputVals[outputIndex] = curVal;
                            }
                        }
                    }
                }
                var dataId = cpuBackend.write(tfjsCore.util.toTypedArray(outputVals, x.dtype), outShape, x.dtype);
                return {
                    dataId: dataId,
                    shape: outShape,
                    dtype: x.dtype
                };
            }
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var dilation2DBackpropFilterConfig = {
            kernelName: tfjsCore.Dilation2DBackpropFilter,
            backendName: 'cpu',
            kernelFunc: function (_a) {
                var inputs = _a.inputs
                    , backend = _a.backend
                    , attrs = _a.attrs;
                var x = inputs.x
                    , filter = inputs.filter
                    , dy = inputs.dy;
                var strides = attrs.strides
                    , pad = attrs.pad
                    , dilations = attrs.dilations;
                var cpuBackend = backend;
                var $x = tfjsCore.util.toNestedArray(x.shape, cpuBackend.data.get(x.dataId).values);
                var $filter = tfjsCore.util.toNestedArray(filter.shape, cpuBackend.data.get(filter.dataId).values);
                var _b = tfjsCore.backend_util.computeDilation2DInfo(x.shape, filter.shape, strides, pad, 'NHWC'/* dataFormat */
                    , dilations)
                    , batchSize = _b.batchSize
                    , inHeight = _b.inHeight
                    , inWidth = _b.inWidth
                    , inChannels = _b.inChannels
                    , outHeight = _b.outHeight
                    , outWidth = _b.outWidth
                    , padInfo = _b.padInfo
                    , strideHeight = _b.strideHeight
                    , strideWidth = _b.strideWidth
                    , filterHeight = _b.filterHeight
                    , filterWidth = _b.filterWidth
                    , dilationHeight = _b.dilationHeight
                    , dilationWidth = _b.dilationWidth
                    , outShape = _b.outShape;
                tfjsCore.util.assert(dy.rank === outShape.length, function () {
                    return "Error in ".concat(tfjsCore.Dilation2DBackpropFilter, ", dy ") + "must have the same rank as output ".concat(outShape.length, ", but got ") + "".concat(dy.rank);
                });
                var $dy = tfjsCore.util.toNestedArray(outShape, cpuBackend.data.get(dy.dataId).values);
                // The computed filter gradients has the same dimensions as the filter:
                // [filterHeight, filterWidth, depth]
                var gradients = tfjsCore.util.makeZerosNestedTypedArray(filter.shape, filter.dtype);
                // In the case of multiple argmax branches, we only back-propagate along the
                // last branch, i.e., the one with largest value of `h * filter_cols + w`,
                // similarly to the max-pooling backward routines.
                // This implementation follows the TF c++ implementation:
                // https://github.com/tensorflow/tensorflow/blob/d9a3a849edc198e90172bc58eb293de457f9d986/tensorflow/core/kernels/dilation_ops.cc
                for (var b = 0; b < batchSize; ++b) {
                    for (var hOut = 0; hOut < outHeight; ++hOut) {
                        var hBeg = hOut * strideHeight - padInfo.top;
                        for (var wOut = 0; wOut < outWidth; ++wOut) {
                            var wBeg = wOut * strideWidth - padInfo.left;
                            for (var d = 0; d < inChannels; ++d) {
                                var curVal = Number.MIN_SAFE_INTEGER;
                                var hMax = 0;
                                var wMax = 0;
                                for (var h = 0; h < filterHeight; ++h) {
                                    var hIn = hBeg + h * dilationHeight;
                                    if (hIn >= 0 && hIn < inHeight) {
                                        for (var w = 0; w < filterWidth; ++w) {
                                            var wIn = wBeg + w * dilationWidth;
                                            if (wIn >= 0 && wIn < inWidth) {
                                                var val = $x[b][hIn][wIn][d] + $filter[h][w][d];
                                                if (val > curVal) {
                                                    curVal = val;
                                                    hMax = h;
                                                    wMax = w;
                                                }
                                            }
                                        }
                                    }
                                }
                                gradients[hMax][wMax][d] += $dy[b][hOut][wOut][d];
                            }
                        }
                    }
                }
                var dataId = cpuBackend.write(tfjsCore.util.toTypedArray(gradients, x.dtype), filter.shape, filter.dtype);
                return {
                    dataId: dataId,
                    shape: filter.shape,
                    dtype: filter.dtype
                };
            }
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var dilation2DBackpropInputConfig = {
            kernelName: tfjsCore.Dilation2DBackpropInput,
            backendName: 'cpu',
            kernelFunc: function (_a) {
                var inputs = _a.inputs
                    , backend = _a.backend
                    , attrs = _a.attrs;
                var x = inputs.x
                    , filter = inputs.filter
                    , dy = inputs.dy;
                var strides = attrs.strides
                    , pad = attrs.pad
                    , dilations = attrs.dilations;
                var cpuBackend = backend;
                var $x = tfjsCore.util.toNestedArray(x.shape, cpuBackend.data.get(x.dataId).values);
                var $filter = tfjsCore.util.toNestedArray(filter.shape, cpuBackend.data.get(filter.dataId).values);
                var _b = tfjsCore.backend_util.computeDilation2DInfo(x.shape, filter.shape, strides, pad, 'NHWC'/* dataFormat */
                    , dilations)
                    , batchSize = _b.batchSize
                    , inHeight = _b.inHeight
                    , inWidth = _b.inWidth
                    , inChannels = _b.inChannels
                    , outHeight = _b.outHeight
                    , outWidth = _b.outWidth
                    , padInfo = _b.padInfo
                    , strideHeight = _b.strideHeight
                    , strideWidth = _b.strideWidth
                    , filterHeight = _b.filterHeight
                    , filterWidth = _b.filterWidth
                    , dilationHeight = _b.dilationHeight
                    , dilationWidth = _b.dilationWidth
                    , outShape = _b.outShape;
                tfjsCore.util.assert(dy.rank === outShape.length, function () {
                    return "Error in ".concat(tfjsCore.Dilation2DBackpropInput, ", dy ") + "must have the same rank as output ".concat(outShape.length, ", but got ") + "".concat(dy.rank);
                });
                var $dy = tfjsCore.util.toNestedArray(outShape, cpuBackend.data.get(dy.dataId).values);
                // The computed gradients has the same dimensions as the input:
                // [batch, inputHeight, inputCols, inChannel]
                var gradients = tfjsCore.util.makeZerosNestedTypedArray(x.shape, x.dtype);
                // In the case of multiple argmax branches, we only back-propagate along the
                // last branch, i.e., the one with largest value of `h * filter_cols + w`,
                // similarly to the max-pooling backward routines.
                // This implementation follows the TF c++ implementation:
                // https://github.com/tensorflow/tensorflow/blob/d9a3a849edc198e90172bc58eb293de457f9d986/tensorflow/core/kernels/dilation_ops.cc
                for (var b = 0; b < batchSize; ++b) {
                    for (var hOut = 0; hOut < outHeight; ++hOut) {
                        var hBeg = hOut * strideHeight - padInfo.top;
                        for (var wOut = 0; wOut < outWidth; ++wOut) {
                            var wBeg = wOut * strideWidth - padInfo.left;
                            for (var d = 0; d < inChannels; ++d) {
                                var curVal = Number.MIN_SAFE_INTEGER;
                                var hInMax = (hBeg < 0) ? 0 : hBeg;
                                var wInMax = (wBeg < 0) ? 0 : wBeg;
                                for (var h = 0; h < filterHeight; ++h) {
                                    var hIn = hBeg + h * dilationHeight;
                                    if (hIn >= 0 && hIn < inHeight) {
                                        for (var w = 0; w < filterWidth; ++w) {
                                            var wIn = wBeg + w * dilationWidth;
                                            if (wIn >= 0 && wIn < inWidth) {
                                                var val = $x[b][hIn][wIn][d] + $filter[h][w][d];
                                                if (val > curVal) {
                                                    curVal = val;
                                                    hInMax = hIn;
                                                    wInMax = wIn;
                                                }
                                            }
                                        }
                                    }
                                }
                                gradients[b][hInMax][wInMax][d] += $dy[b][hOut][wOut][d];
                            }
                        }
                    }
                }
                var dataId = cpuBackend.write(tfjsCore.util.toTypedArray(gradients, x.dtype), x.shape, x.dtype);
                return {
                    dataId: dataId,
                    shape: x.shape,
                    dtype: x.dtype
                };
            }
        };

        function sum(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x;
            var axis = attrs.axis
                , keepDims = attrs.keepDims;
            assertNotComplex(x, 'sum');
            var $x;
            if (x.dtype === 'bool') {
                $x = cast({
                    inputs: {
                        x: x
                    },
                    backend: backend,
                    attrs: {
                        dtype: 'int32'
                    }
                });
            } else {
                $x = identity({
                    inputs: {
                        x: x
                    },
                    backend: backend
                });
            }
            var xRank = $x.shape.length;
            var axes = tfjsCore.util.parseAxisParam(axis, $x.shape);
            var permutation = tfjsCore.backend_util.getAxesPermutation(axes, xRank);
            var reductionAxes = axes;
            var permutedX = $x;
            if (permutation != null) {
                permutedX = transpose({
                    inputs: {
                        x: $x
                    },
                    backend: backend,
                    attrs: {
                        perm: permutation
                    }
                });
                reductionAxes = tfjsCore.backend_util.getInnerMostAxes(reductionAxes.length, xRank);
            }
            tfjsCore.backend_util.assertAxesAreInnerMostDims('sum', reductionAxes, permutedX.shape.length);
            var _a = __read(tfjsCore.backend_util.computeOutAndReduceShapes(permutedX.shape, reductionAxes), 2)
                , outShape = _a[0]
                , reduceShape = _a[1];
            var resultDtype = tfjsCore.backend_util.upcastType(permutedX.dtype, 'int32');
            var result = zeros(backend, outShape, resultDtype);
            var reduceSize = tfjsCore.util.sizeFromShape(reduceShape);
            var vals = backend.data.get(result.dataId).values;
            var aVals = backend.data.get(permutedX.dataId).values;
            for (var i = 0; i < vals.length; ++i) {
                var offset = i * reduceSize;
                var sum_1 = 0;
                for (var j = 0; j < reduceSize; ++j) {
                    sum_1 += aVals[offset + j];
                }
                vals[i] = sum_1;
            }
            if (keepDims) {
                var newShape = tfjsCore.backend_util.expandShapeToKeepDim(result.shape, axes);
                var oldResult = result;
                result = reshape({
                    inputs: {
                        x: result
                    },
                    backend: backend,
                    attrs: {
                        shape: newShape
                    }
                });
                backend.disposeIntermediateTensorInfo(oldResult);
            }
            backend.disposeIntermediateTensorInfo($x);
            if (permutation != null) {
                backend.disposeIntermediateTensorInfo(permutedX);
            }
            return result;
        }
        var sumConfig = {
            kernelName: tfjsCore.Sum,
            backendName: 'cpu',
            kernelFunc: sum
        };

        function einsum(args) {
            var e_1, _a, e_2, _b;
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var equation = attrs.equation;
            var tensors = inputs;
            var _c = tfjsCore.backend_util.decodeEinsumEquation(equation, tensors.length)
                , allDims = _c.allDims
                , summedDims = _c.summedDims
                , idDims = _c.idDims;
            tfjsCore.backend_util.checkEinsumDimSizes(allDims.length, idDims, tensors);
            var _d = tfjsCore.backend_util.getEinsumComputePath(summedDims, idDims)
                , path = _d.path
                , steps = _d.steps;
            var nSteps = steps.length;
            var out = null;
            var numDimsRemaining = allDims.length;
            var tensorsToDispose = [];
            for (var i = 0; i < nSteps; ++i) {
                try {
                    for (var _e = (e_1 = void 0,
                        __values(steps[i])), _f = _e.next(); !_f.done; _f = _e.next()) {
                        var idTerm = _f.value;
                        var _g = tfjsCore.backend_util.getEinsumPermutation(numDimsRemaining, idDims[idTerm])
                            , perm = _g.permutationIndices
                            , dimsToExpand = _g.expandDims;
                        var x = void 0;
                        if (tfjsCore.backend_util.isIdentityPermutation(perm)) {
                            x = tensors[idTerm];
                        } else {
                            x = transpose({
                                inputs: {
                                    x: tensors[idTerm]
                                },
                                backend: backend,
                                attrs: {
                                    perm: perm
                                }
                            });
                            tensorsToDispose.push(x);
                        }
                        var targetShape = x.shape.slice();
                        for (var k = 0; k < dimsToExpand.length; ++k) {
                            targetShape.splice(dimsToExpand[k], 0, 1);
                        }
                        if (!tfjsCore.util.arraysEqual(x.shape, targetShape)) {
                            x = reshape({
                                inputs: {
                                    x: x
                                },
                                backend: backend,
                                attrs: {
                                    shape: targetShape
                                }
                            });
                            tensorsToDispose.push(x);
                        }
                        if (out === null) {
                            out = x;
                        } else {
                            // tslint:disable-next-line: no-unnecessary-type-assertion
                            out = multiply({
                                inputs: {
                                    a: x,
                                    b: out
                                },
                                backend: backend
                            });
                            tensorsToDispose.push(out);
                        }
                    }
                } catch (e_1_1) {
                    e_1 = {
                        error: e_1_1
                    };
                } finally {
                    try {
                        if (_f && !_f.done && (_a = _e.return))
                            _a.call(_e);
                    } finally {
                        if (e_1)
                            throw e_1.error;
                    }
                }
                if (i < nSteps - 1) {
                    if (path[i] >= 0) {
                        out = sum({
                            inputs: {
                                x: out
                            },
                            backend: backend,
                            attrs: {
                                axis: path[i] - (allDims.length - numDimsRemaining),
                                keepDims: false
                            }
                        });
                        tensorsToDispose.push(out);
                    }
                    numDimsRemaining--;
                }
            }
            try {
                // Clean up intermediate tensors.
                for (var tensorsToDispose_1 = __values(tensorsToDispose), tensorsToDispose_1_1 = tensorsToDispose_1.next(); !tensorsToDispose_1_1.done; tensorsToDispose_1_1 = tensorsToDispose_1.next()) {
                    var tensorInfo = tensorsToDispose_1_1.value;
                    if (tensorInfo === out) {
                        continue;
                    }
                    backend.disposeIntermediateTensorInfo(tensorInfo);
                }
            } catch (e_2_1) {
                e_2 = {
                    error: e_2_1
                };
            } finally {
                try {
                    if (tensorsToDispose_1_1 && !tensorsToDispose_1_1.done && (_b = tensorsToDispose_1.return))
                        _b.call(tensorsToDispose_1);
                } finally {
                    if (e_2)
                        throw e_2.error;
                }
            }
            return out;
        }
        var einsumConfig = {
            kernelName: tfjsCore.Einsum,
            backendName: 'cpu',
            kernelFunc: einsum
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function eluGrad(args) {
            var inputs = args.inputs
                , backend = args.backend;
            var dy = inputs.dy
                , y = inputs.y;
            assertNotComplex([dy, y], 'eluGrad');
            var resultValues = new Float32Array(tfjsCore.util.sizeFromShape(y.shape));
            var values = backend.data.get(y.dataId).values;
            var dyValues = backend.data.get(dy.dataId).values;
            for (var i = 0; i < values.length; ++i) {
                var v = values[i];
                if (v >= 1) {
                    resultValues[i] = dyValues[i];
                } else {
                    resultValues[i] = dyValues[i] * (v + 1);
                }
            }
            return backend.makeTensorInfo(y.shape, 'float32', resultValues);
        }
        var eluGradConfig = {
            kernelName: tfjsCore.EluGrad,
            backendName: 'cpu',
            kernelFunc: eluGrad
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the License);
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an AS IS BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var p = tfjsCore.backend_util.ERF_P;
        var a1 = tfjsCore.backend_util.ERF_A1;
        var a2 = tfjsCore.backend_util.ERF_A2;
        var a3 = tfjsCore.backend_util.ERF_A3;
        var a4 = tfjsCore.backend_util.ERF_A4;
        var a5 = tfjsCore.backend_util.ERF_A5;
        var erf = unaryKernelFunc(tfjsCore.Erf, function (xi) {
            var sign = Math.sign(xi);
            var v = Math.abs(xi);
            var t = 1.0 / (1.0 + p * v);
            return sign * (1.0 - (((((a5 * t + a4) * t) + a3) * t + a2) * t + a1) * t * Math.exp(-v * v));
        });
        var erfConfig = {
            kernelName: tfjsCore.Erf,
            backendName: 'cpu',
            kernelFunc: erf,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function expandDims(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var input = inputs.input;
            var dim = attrs.dim;
            var inputRank = input.shape.length;
            var newShape = input.shape.slice();
            var $dim = dim;
            if (dim < 0) {
                // Negative value is counted from the tail of rank.
                tfjsCore.util.assert(-(inputRank + 1) <= dim, function () {
                    return "Axis must be in the interval [".concat(-(inputRank + 1), ", ").concat(inputRank, "]");
                });
                $dim = inputRank + dim + 1;
            }
            newShape.splice($dim, 0, 1);
            return reshape({
                inputs: {
                    x: input
                },
                backend: backend,
                attrs: {
                    shape: newShape
                }
            });
        }
        var expandDimsConfig = {
            kernelName: tfjsCore.ExpandDims,
            backendName: 'cpu',
            kernelFunc: expandDims
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var realDivImpl = createSimpleBinaryKernelImpl(function (a, b) {
            return a / b;
        });
        var div = binaryKernelFunc(tfjsCore.RealDiv, realDivImpl);
        var realDivConfig = {
            kernelName: tfjsCore.RealDiv,
            backendName: 'cpu',
            kernelFunc: div
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        /**
         * Calculate FFT of inner most elements of batch tensor.
         */
        function fftBatch(input, inverse, cpuBackend) {
            var inputShape = input.shape;
            var batch = inputShape[0];
            var innerDim = inputShape[1];
            var inputVals = cpuBackend.data.get(input.dataId);
            var real2D = inputVals.complexTensorInfos.real;
            var imag2D = inputVals.complexTensorInfos.imag;
            // Collects real and imaginary values separately.
            var resultShape = [batch, innerDim];
            var resultSize = tfjsCore.util.sizeFromShape(resultShape);
            var resultReal = tfjsCore.util.getTypedArrayFromDType('float32', resultSize);
            var resultImag = tfjsCore.util.getTypedArrayFromDType('float32', resultSize);
            for (var b = 0; b < batch; b++) {
                // TODO: Support slice ops for complex type.
                var r = slice({
                    inputs: {
                        x: real2D
                    },
                    backend: cpuBackend,
                    attrs: {
                        begin: [b, 0],
                        size: [1, innerDim]
                    }
                });
                var i = slice({
                    inputs: {
                        x: imag2D
                    },
                    backend: cpuBackend,
                    attrs: {
                        begin: [b, 0],
                        size: [1, innerDim]
                    }
                });
                var input_1 = complex({
                    inputs: {
                        real: r,
                        imag: i
                    },
                    backend: cpuBackend
                });
                // Run FFT by batch element.
                var _a = fftImpl(input_1, inverse, cpuBackend)
                    , real_1 = _a.real
                    , imag_1 = _a.imag;
                var res = tfjsCore.backend_util.mergeRealAndImagArrays(real_1, imag_1);
                for (var d = 0; d < innerDim; d++) {
                    var c = tfjsCore.backend_util.getComplexWithIndex(res, d);
                    resultReal[b * innerDim + d] = c.real;
                    resultImag[b * innerDim + d] = c.imag;
                }
                cpuBackend.disposeIntermediateTensorInfo(r);
                cpuBackend.disposeIntermediateTensorInfo(i);
                cpuBackend.disposeIntermediateTensorInfo(input_1);
            }
            var $realInfo = cpuBackend.makeTensorInfo(resultShape, 'float32', resultReal);
            var $imagInfo = cpuBackend.makeTensorInfo(resultShape, 'float32', resultImag);
            var result = complex({
                inputs: {
                    real: $realInfo,
                    imag: $imagInfo
                },
                backend: cpuBackend
            });
            cpuBackend.disposeIntermediateTensorInfo($realInfo);
            cpuBackend.disposeIntermediateTensorInfo($imagInfo);
            return result;
        }
        function fftImpl(input, inverse, cpuBackend) {
            var inputSize = tfjsCore.util.sizeFromShape(input.shape);
            var inputVals = cpuBackend.data.get(input.dataId);
            var realVals = cpuBackend.data.get(inputVals.complexTensorInfos.real.dataId).values;
            var imagVals = cpuBackend.data.get(inputVals.complexTensorInfos.imag.dataId).values;
            if (isExponentOf2(inputSize)) {
                var result = fftRadix2(realVals, imagVals, inputSize, inverse, cpuBackend);
                var resultShape = [input.shape[0], input.shape[1]];
                if (inverse) {
                    var realInfo = cpuBackend.makeTensorInfo(resultShape, 'float32', result.real);
                    var imagInfo = cpuBackend.makeTensorInfo(resultShape, 'float32', result.imag);
                    var sizeInfo = cpuBackend.makeTensorInfo([], 'float32', tfjsCore.util.createScalarValue(inputSize, 'float32'));
                    var sizeInfoCopy = identity({
                        inputs: {
                            x: sizeInfo
                        },
                        backend: cpuBackend
                    });
                    var divRealInfo = realDivConfig.kernelFunc({
                        inputs: {
                            a: realInfo,
                            b: sizeInfo
                        },
                        backend: cpuBackend
                    });
                    var divImagInfo = realDivConfig.kernelFunc({
                        inputs: {
                            a: imagInfo,
                            b: sizeInfoCopy
                        },
                        backend: cpuBackend
                    });
                    var divRealVals = cpuBackend.data.get(divRealInfo.dataId).values;
                    var divImagVals = cpuBackend.data.get(divImagInfo.dataId).values;
                    cpuBackend.disposeIntermediateTensorInfo(realInfo);
                    cpuBackend.disposeIntermediateTensorInfo(imagInfo);
                    cpuBackend.disposeIntermediateTensorInfo(sizeInfo);
                    cpuBackend.disposeIntermediateTensorInfo(sizeInfoCopy);
                    cpuBackend.disposeIntermediateTensorInfo(divRealInfo);
                    cpuBackend.disposeIntermediateTensorInfo(divImagInfo);
                    return {
                        real: divRealVals,
                        imag: divImagVals
                    };
                }
                return result;
            } else {
                var data = tfjsCore.backend_util.mergeRealAndImagArrays(realVals, imagVals);
                var rawOutput = fourierTransformByMatmul(data, inputSize, inverse);
                return tfjsCore.backend_util.splitRealAndImagArrays(rawOutput);
            }
        }
        function isExponentOf2(size) {
            return (size & size - 1) === 0;
        }
        // FFT using Cooley-Tukey algorithm on radix 2 dimensional input.
        function fftRadix2(realVals, imagVals, size, inverse, cpuBackend) {
            if (size === 1) {
                return {
                    real: realVals,
                    imag: imagVals
                };
            }
            var data = tfjsCore.backend_util.mergeRealAndImagArrays(realVals, imagVals);
            var half = size / 2;
            var evenComplex = tfjsCore.backend_util.complexWithEvenIndex(data);
            var evenRealVals = evenComplex.real;
            var evenImagVals = evenComplex.imag;
            var evenShape = [evenRealVals.length];
            var evenRealInfo = cpuBackend.makeTensorInfo(evenShape, 'float32', evenRealVals);
            var evenImagInfo = cpuBackend.makeTensorInfo(evenShape, 'float32', evenImagVals);
            var evenTensorInfo = complex({
                inputs: {
                    real: evenRealInfo,
                    imag: evenImagInfo
                },
                backend: cpuBackend
            });
            var oddComplex = tfjsCore.backend_util.complexWithOddIndex(data);
            var oddRealVals = oddComplex.real;
            var oddImagVals = oddComplex.imag;
            var oddShape = [oddRealVals.length];
            var oddRealInfo = cpuBackend.makeTensorInfo(oddShape, 'float32', oddRealVals);
            var oddImagInfo = cpuBackend.makeTensorInfo(oddShape, 'float32', oddImagVals);
            var oddTensorInfo = complex({
                inputs: {
                    real: oddRealInfo,
                    imag: oddImagInfo
                },
                backend: cpuBackend
            });
            // Recursive call for half part of original input.
            var $evenComplex = fftRadix2(evenRealVals, evenImagVals, half, inverse, cpuBackend);
            var $evenRealVals = $evenComplex.real;
            var $evenImagVals = $evenComplex.imag;
            var $evenShape = [$evenRealVals.length];
            var $evenRealInfo = cpuBackend.makeTensorInfo($evenShape, 'float32', $evenRealVals);
            var $evenImagInfo = cpuBackend.makeTensorInfo($evenShape, 'float32', $evenImagVals);
            var $evenTensorInfo = complex({
                inputs: {
                    real: $evenRealInfo,
                    imag: $evenImagInfo
                },
                backend: cpuBackend
            });
            var $oddComplex = fftRadix2(oddRealVals, oddImagVals, half, inverse, cpuBackend);
            var $oddRealVals = $oddComplex.real;
            var $oddImagVals = $oddComplex.imag;
            var $oddShape = [$oddRealVals.length];
            var $oddRealInfo = cpuBackend.makeTensorInfo($oddShape, 'float32', $oddRealVals);
            var $oddImagInfo = cpuBackend.makeTensorInfo($oddShape, 'float32', $oddImagVals);
            var $oddTensorInfo = complex({
                inputs: {
                    real: $oddRealInfo,
                    imag: $oddImagInfo
                },
                backend: cpuBackend
            });
            var e = tfjsCore.backend_util.exponents(size, inverse);
            var eShape = [e.real.length];
            var eRealInfo = cpuBackend.makeTensorInfo(eShape, 'float32', e.real);
            var eImagInfo = cpuBackend.makeTensorInfo(eShape, 'float32', e.imag);
            var complexInfo = complex({
                inputs: {
                    real: eRealInfo,
                    imag: eImagInfo
                },
                backend: cpuBackend
            });
            var exponentInfo = multiply({
                inputs: {
                    a: complexInfo,
                    b: $oddTensorInfo
                },
                backend: cpuBackend
            });
            var addPart = add({
                inputs: {
                    a: $evenTensorInfo,
                    b: exponentInfo
                },
                backend: cpuBackend
            });
            var subPart = sub({
                inputs: {
                    a: $evenTensorInfo,
                    b: exponentInfo
                },
                backend: cpuBackend
            });
            var addPartReal = real({
                inputs: {
                    input: addPart
                },
                backend: cpuBackend
            });
            var subPartReal = real({
                inputs: {
                    input: subPart
                },
                backend: cpuBackend
            });
            var addPartImag = imag({
                inputs: {
                    input: addPart
                },
                backend: cpuBackend
            });
            var subPartImag = imag({
                inputs: {
                    input: subPart
                },
                backend: cpuBackend
            });
            var $real = concat({
                inputs: [addPartReal, subPartReal],
                backend: cpuBackend,
                attrs: {
                    axis: 0
                }
            });
            var $imag = concat({
                inputs: [addPartImag, subPartImag],
                backend: cpuBackend,
                attrs: {
                    axis: 0
                }
            });
            var $realVals = cpuBackend.data.get($real.dataId).values;
            var $imagVals = cpuBackend.data.get($imag.dataId).values;
            cpuBackend.disposeIntermediateTensorInfo(evenRealInfo);
            cpuBackend.disposeIntermediateTensorInfo(evenImagInfo);
            cpuBackend.disposeIntermediateTensorInfo(evenTensorInfo);
            cpuBackend.disposeIntermediateTensorInfo(oddRealInfo);
            cpuBackend.disposeIntermediateTensorInfo(oddImagInfo);
            cpuBackend.disposeIntermediateTensorInfo(oddTensorInfo);
            cpuBackend.disposeIntermediateTensorInfo($evenRealInfo);
            cpuBackend.disposeIntermediateTensorInfo($evenImagInfo);
            cpuBackend.disposeIntermediateTensorInfo($evenTensorInfo);
            cpuBackend.disposeIntermediateTensorInfo($oddRealInfo);
            cpuBackend.disposeIntermediateTensorInfo($oddImagInfo);
            cpuBackend.disposeIntermediateTensorInfo($oddTensorInfo);
            cpuBackend.disposeIntermediateTensorInfo(eRealInfo);
            cpuBackend.disposeIntermediateTensorInfo(eImagInfo);
            cpuBackend.disposeIntermediateTensorInfo(complexInfo);
            cpuBackend.disposeIntermediateTensorInfo(exponentInfo);
            cpuBackend.disposeIntermediateTensorInfo(addPart);
            cpuBackend.disposeIntermediateTensorInfo(subPart);
            cpuBackend.disposeIntermediateTensorInfo(addPartReal);
            cpuBackend.disposeIntermediateTensorInfo(addPartImag);
            cpuBackend.disposeIntermediateTensorInfo(subPartReal);
            cpuBackend.disposeIntermediateTensorInfo(subPartImag);
            cpuBackend.disposeIntermediateTensorInfo($real);
            cpuBackend.disposeIntermediateTensorInfo($imag);
            return {
                real: $realVals,
                imag: $imagVals
            };
        }
        // Calculate fourier transform by multplying sinusoid matrix.
        function fourierTransformByMatmul(data, size, inverse) {
            var ret = new Float32Array(size * 2);
            // TODO: Use matmul instead once it supports complex64 type.
            for (var r = 0; r < size; r++) {
                var real_2 = 0.0;
                var imag_2 = 0.0;
                for (var c = 0; c < size; c++) {
                    var e = tfjsCore.backend_util.exponent(r * c, size, inverse);
                    var term = tfjsCore.backend_util.getComplexWithIndex(data, c);
                    real_2 += term.real * e.real - term.imag * e.imag;
                    imag_2 += term.real * e.imag + term.imag * e.real;
                }
                if (inverse) {
                    real_2 /= size;
                    imag_2 /= size;
                }
                tfjsCore.backend_util.assignToTypedArray(ret, real_2, imag_2, r);
            }
            return ret;
        }

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function fft(args) {
            var inputs = args.inputs
                , backend = args.backend;
            var input = inputs.input;
            var inputSize = tfjsCore.util.sizeFromShape(input.shape);
            // Collapse all outer dimensions to a single batch dimension.
            var innerDimensionSize = input.shape[input.shape.length - 1];
            var batch = inputSize / innerDimensionSize;
            var input2D = reshape({
                inputs: {
                    x: input
                },
                backend: backend,
                attrs: {
                    shape: [batch, innerDimensionSize]
                }
            });
            var result = fftBatch(input2D, false, backend);
            var resultReshaped = reshape({
                inputs: {
                    x: result
                },
                backend: backend,
                attrs: {
                    shape: input.shape
                }
            });
            backend.disposeIntermediateTensorInfo(input2D);
            backend.disposeIntermediateTensorInfo(result);
            return resultReshaped;
        }
        var fftConfig = {
            kernelName: tfjsCore.FFT,
            backendName: 'cpu',
            kernelFunc: fft
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function fill(args) {
            var backend = args.backend
                , attrs = args.attrs;
            var shape = attrs.shape
                , value = attrs.value
                , dtype = attrs.dtype;
            var $dtype = dtype || tfjsCore.util.inferDtype(value);
            var values = tfjsCore.util.getArrayFromDType($dtype, tfjsCore.util.sizeFromShape(shape));
            fillValues(values, value, $dtype);
            return backend.makeTensorInfo(shape, $dtype, values);
        }
        var fillConfig = {
            kernelName: tfjsCore.Fill,
            backendName: 'cpu',
            kernelFunc: fill
        };
        function fillValues(values, value, dtype) {
            if (dtype === 'string') {
                values.fill(value);
            } else {
                values.fill(value);
            }
        }

        var flipLeftRightConfig = {
            kernelName: tfjsCore.FlipLeftRight,
            backendName: 'cpu',
            kernelFunc: function (_a) {
                var inputs = _a.inputs;
                _a.attrs;
                var backend = _a.backend;
                var image = inputs.image;
                var cpuBackend = backend;
                var output = tfjsCore.util.getTypedArrayFromDType(image.dtype, tfjsCore.util.sizeFromShape(image.shape));
                var _b = __read(image.shape, 4)
                    , batch = _b[0]
                    , imageHeight = _b[1]
                    , imageWidth = _b[2]
                    , numChannels = _b[3];
                var imageVals = cpuBackend.data.get(image.dataId).values;
                for (var batchIdx = 0; batchIdx < batch; batchIdx++) {
                    var batchOffset = batchIdx * imageWidth * imageHeight * numChannels;
                    for (var row = 0; row < imageHeight; row++) {
                        var rowOffset = row * (imageWidth * numChannels);
                        for (var col = 0; col < imageWidth; col++) {
                            var colOffset = col * numChannels;
                            for (var channel = 0; channel < numChannels; channel++) {
                                var coordX = Math.round(imageWidth - col - 1);
                                var outIdx = batchOffset + rowOffset + colOffset + channel;
                                var outputValue = imageVals[outIdx];
                                // If the coordinate position falls within the image boundaries...
                                if (coordX >= 0 && coordX < imageWidth) {
                                    // set the output to the image value at the coordinate position.
                                    var rotatedColOffset = coordX * numChannels;
                                    var imageIdx = batchOffset + rowOffset + rotatedColOffset + channel;
                                    outputValue = imageVals[imageIdx];
                                }
                                output[outIdx] = outputValue;
                            }
                        }
                    }
                }
                var dataId = cpuBackend.write(output, image.shape, image.dtype);
                return {
                    dataId: dataId,
                    shape: image.shape,
                    dtype: image.dtype
                };
            }
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var floorDivImpl = createSimpleBinaryKernelImpl(function (a, b) {
            return Math.floor(a / b);
        });
        var floorDiv = binaryKernelFunc(tfjsCore.FloorDiv, floorDivImpl, null /* complexImpl */
            , 'int32');
        var floorDivConfig = {
            kernelName: tfjsCore.FloorDiv,
            backendName: 'cpu',
            kernelFunc: floorDiv
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function fusedConv2D(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x
                , filter = inputs.filter
                , bias = inputs.bias
                , preluActivationWeights = inputs.preluActivationWeights;
            var strides = attrs.strides
                , pad = attrs.pad
                , dataFormat = attrs.dataFormat
                , dilations = attrs.dilations
                , dimRoundingMode = attrs.dimRoundingMode
                , activation = attrs.activation
                , leakyreluAlpha = attrs.leakyreluAlpha;
            var result = conv2D({
                inputs: {
                    x: x,
                    filter: filter
                },
                backend: backend,
                attrs: {
                    strides: strides,
                    pad: pad,
                    dataFormat: dataFormat,
                    dilations: dilations,
                    dimRoundingMode: dimRoundingMode
                }
            });
            if (bias) {
                var resultOld = result;
                // For NCHW format, if bias is a 1-D tensor, it is supposed to be aligned
                // to the channel of the conv2d's result; if the bias is a scalar, the
                // bias_add is computed as if the bias was broadcasted to the shape of the
                // conv2d's result.
                if (dataFormat === 'NCHW' && bias.shape.length === 1 && bias.shape[0] !== 1) {
                    var reshapedBias = reshape({
                        inputs: {
                            x: bias
                        },
                        backend: backend,
                        attrs: {
                            shape: [bias.shape[0], 1, 1]
                        }
                    });
                    result = add({
                        inputs: {
                            a: result,
                            b: reshapedBias
                        },
                        backend: backend
                    });
                    backend.disposeIntermediateTensorInfo(reshapedBias);
                } else {
                    // This condition handles NHWC and NCHW (scalar case). The only other case
                    // for NCHW (1D case) is handled above.
                    result = add({
                        inputs: {
                            a: result,
                            b: bias
                        },
                        backend: backend
                    });
                }
                backend.disposeIntermediateTensorInfo(resultOld);
            }
            if (activation) {
                var resultOld = result;
                // For NCHW format, if PReLu activation weights is a 1-D tensor, it is
                // supposed to be aligned with the channel of the conv2d's result. For other
                // cases, whether NCHW or NHWC data format, the conv2d result is
                // already aligned with the activation weights.
                if (dataFormat === 'NCHW' && activation === 'prelu' && preluActivationWeights.shape.length === 1 && preluActivationWeights.shape[0] !== 1) {
                    var reshapedAlpha = reshape({
                        inputs: {
                            x: preluActivationWeights
                        },
                        backend: backend,
                        attrs: {
                            shape: [preluActivationWeights.shape[0], 1, 1]
                        }
                    });
                    result = applyActivation(backend, result, activation, reshapedAlpha, leakyreluAlpha);
                    backend.disposeIntermediateTensorInfo(reshapedAlpha);
                } else {
                    result = applyActivation(backend, result, activation, preluActivationWeights, leakyreluAlpha);
                }
                backend.disposeIntermediateTensorInfo(resultOld);
            }
            return result;
        }
        var fusedConv2DConfig = {
            kernelName: tfjsCore.FusedConv2D,
            backendName: 'cpu',
            kernelFunc: fusedConv2D
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function fusedDepthwiseConv2D(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x
                , filter = inputs.filter
                , bias = inputs.bias
                , preluActivationWeights = inputs.preluActivationWeights;
            var strides = attrs.strides
                , pad = attrs.pad
                , dataFormat = attrs.dataFormat
                , dilations = attrs.dilations
                , dimRoundingMode = attrs.dimRoundingMode
                , activation = attrs.activation
                , leakyreluAlpha = attrs.leakyreluAlpha;
            var result = depthwiseConv2dNative({
                inputs: {
                    x: x,
                    filter: filter
                },
                backend: backend,
                attrs: {
                    strides: strides,
                    pad: pad,
                    dataFormat: dataFormat,
                    dilations: dilations,
                    dimRoundingMode: dimRoundingMode
                }
            });
            if (bias) {
                var oldResult = result;
                result = add({
                    inputs: {
                        a: result,
                        b: bias
                    },
                    backend: backend
                });
                backend.disposeIntermediateTensorInfo(oldResult);
            }
            if (activation) {
                var oldResult = result;
                result = applyActivation(backend, result, activation, preluActivationWeights, leakyreluAlpha);
                backend.disposeIntermediateTensorInfo(oldResult);
            }
            return result;
        }
        var fusedDepthwiseConv2DConfig = {
            kernelName: tfjsCore.FusedDepthwiseConv2D,
            backendName: 'cpu',
            kernelFunc: fusedDepthwiseConv2D
        };

        function gatherNd(args) {
            var inputs = args.inputs
                , backend = args.backend;
            var params = inputs.params
                , indices = inputs.indices;
            var paramsSize = tfjsCore.util.sizeFromShape(params.shape);
            var indicesShape = indices.shape;
            var sliceRank = indicesShape[indicesShape.length - 1];
            var _a = __read(tfjsCore.backend_util.prepareAndValidate(params, indices), 4)
                , resultShape = _a[0]
                , numSlices = _a[1]
                , sliceSize = _a[2]
                , strides = _a[3];
            if (numSlices === 0) {
                return backend.makeTensorInfo(resultShape, params.dtype, []);
            }
            var indicesData = backend.data.get(indices.dataId).values;
            var paramsBuf = backend.bufferSync(params);
            var outBuf = gatherNdImpl(indicesData, paramsBuf, params.dtype, numSlices, sliceRank, sliceSize, strides, params.shape, paramsSize);
            return backend.makeTensorInfo(resultShape, params.dtype, outBuf.values);
        }
        var gatherNdConfig = {
            kernelName: tfjsCore.GatherNd,
            backendName: 'cpu',
            kernelFunc: gatherNd
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function gatherV2(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x
                , indices = inputs.indices;
            var axis = attrs.axis
                , batchDims = attrs.batchDims;
            assertNotComplex([x, indices], 'gatherV2');
            // Throw error when any index is out of bound.
            var parsedAxis = tfjsCore.util.parseAxisParam(axis, x.shape)[0];
            var indicesVals = backend.data.get(indices.dataId).values;
            var axisDim = x.shape[parsedAxis];
            var _loop_1 = function (i) {
                var index = indicesVals[i];
                tfjsCore.util.assert(index <= axisDim - 1 && index >= 0, function () {
                    return "GatherV2: the index value ".concat(index, " is not in [0, ").concat(axisDim - 1, "]");
                });
            };
            for (var i = 0; i < indicesVals.length; ++i) {
                _loop_1(i);
            }
            var $batchDims = batchDims;
            if (batchDims == null) {
                $batchDims = 0;
            }
            var indicesSize = tfjsCore.util.sizeFromShape(indices.shape);
            var shapeInfo = tfjsCore.backend_util.segment_util.collectGatherOpShapeInfo(x, indices, parsedAxis, $batchDims);
            var flattenX = reshape({
                inputs: {
                    x: x
                },
                backend: backend,
                attrs: {
                    shape: [shapeInfo.batchSize, shapeInfo.outerSize, shapeInfo.dimSize, shapeInfo.sliceSize]
                }
            });
            var flattenIndex = reshape({
                inputs: {
                    x: indices
                },
                backend: backend,
                attrs: {
                    shape: [shapeInfo.batchSize, indicesSize / shapeInfo.batchSize]
                }
            });
            var flattenOutputShape = [shapeInfo.batchSize, shapeInfo.outerSize, indicesSize / shapeInfo.batchSize, shapeInfo.sliceSize];
            var indicesBuf = backend.bufferSync(flattenIndex);
            var xBuf = backend.bufferSync(flattenX);
            var outBuf = gatherV2Impl(xBuf, indicesBuf, flattenOutputShape);
            backend.disposeIntermediateTensorInfo(flattenX);
            backend.disposeIntermediateTensorInfo(flattenIndex);
            return backend.makeTensorInfo(shapeInfo.outputShape, outBuf.dtype, outBuf.values);
        }
        var gatherV2Config = {
            kernelName: tfjsCore.GatherV2,
            backendName: 'cpu',
            kernelFunc: gatherV2
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function ifft(args) {
            var inputs = args.inputs
                , backend = args.backend;
            var input = inputs.input;
            var inputSize = tfjsCore.util.sizeFromShape(input.shape);
            // Collapse all outer dimensions to a single batch dimension.
            var innerDimensionSize = input.shape[input.shape.length - 1];
            var batch = inputSize / innerDimensionSize;
            var input2D = reshape({
                inputs: {
                    x: input
                },
                backend: backend,
                attrs: {
                    shape: [batch, innerDimensionSize]
                }
            });
            var result = fftBatch(input2D, true, backend);
            var resultReshaped = reshape({
                inputs: {
                    x: result
                },
                backend: backend,
                attrs: {
                    shape: input.shape
                }
            });
            backend.disposeIntermediateTensorInfo(input2D);
            backend.disposeIntermediateTensorInfo(result);
            return resultReshaped;
        }
        var ifftConfig = {
            kernelName: tfjsCore.IFFT,
            backendName: 'cpu',
            kernelFunc: ifft
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the License);
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an AS IS BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var isFinite = unaryKernelFunc(tfjsCore.IsFinite, function (xi) {
            return Number.isFinite(xi) ? 1 : 0;
        }, 'bool');
        var isFiniteConfig = {
            kernelName: tfjsCore.IsFinite,
            backendName: 'cpu',
            kernelFunc: isFinite,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the License);
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an AS IS BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var isInf = unaryKernelFunc(tfjsCore.IsInf, function (xi) {
            return Math.abs(xi) === Infinity ? 1 : 0;
        }, 'bool');
        var isInfConfig = {
            kernelName: tfjsCore.IsInf,
            backendName: 'cpu',
            kernelFunc: isInf,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the License);
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an AS IS BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var isNaN$1 = unaryKernelFunc(tfjsCore.IsNan, function (xi) {
            return Number.isNaN(xi) ? 1 : 0;
        }, 'bool');
        var isNaNConfig = {
            kernelName: tfjsCore.IsNan,
            backendName: 'cpu',
            kernelFunc: isNaN$1,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function linSpace(args) {
            var backend = args.backend
                , attrs = args.attrs;
            var start = attrs.start
                , stop = attrs.stop
                , num = attrs.num;
            var outVals = linSpaceImpl(start, stop, num);
            return backend.makeTensorInfo([outVals.length], 'float32', outVals);
        }
        var linSpaceConfig = {
            kernelName: tfjsCore.LinSpace,
            backendName: 'cpu',
            kernelFunc: linSpace
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the License);
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an AS IS BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var log1p = unaryKernelFunc(tfjsCore.Log1p, function (xi) {
            return Math.log1p(xi);
        });
        var log1pConfig = {
            kernelName: tfjsCore.Log1p,
            backendName: 'cpu',
            kernelFunc: log1p,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var logicalAndImpl = createSimpleBinaryKernelImpl(function (a, b) {
            return a && b;
        });
        var logicalAnd = binaryKernelFunc(tfjsCore.LogicalAnd, logicalAndImpl, null /* complexImpl */
            , 'bool');
        var logicalAndConfig = {
            kernelName: tfjsCore.LogicalAnd,
            backendName: 'cpu',
            kernelFunc: logicalAnd
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the License);
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an AS IS BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var logicalNot = unaryKernelFunc(tfjsCore.LogicalNot, function (xi) {
            return xi ? 0 : 1;
        }, 'bool');
        var logicalNotConfig = {
            kernelName: tfjsCore.LogicalNot,
            backendName: 'cpu',
            kernelFunc: logicalNot,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var logicalOrImpl = createSimpleBinaryKernelImpl(function (a, b) {
            return a || b;
        });
        var logicalOr = binaryKernelFunc(tfjsCore.LogicalOr, logicalOrImpl, null /* complexImpl */
            , 'bool');
        var logicalOrConfig = {
            kernelName: tfjsCore.LogicalOr,
            backendName: 'cpu',
            kernelFunc: logicalOr
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function lRN(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x;
            var depthRadius = attrs.depthRadius
                , bias = attrs.bias
                , alpha = attrs.alpha
                , beta = attrs.beta;
            assertNotComplex(x, 'LRN');
            var channels = x.shape[3];
            var maxD = channels - 1;
            var xValues = backend.data.get(x.dataId).values;
            var size = tfjsCore.util.sizeFromShape(x.shape);
            var result = new Float32Array(size);
            function sumAcrossChannels(offset) {
                var currentChannel = offset % channels;
                var beginSumOffset = offset - currentChannel + Math.max(0, currentChannel - depthRadius);
                var endSumOffset = offset - currentChannel + Math.min(currentChannel + depthRadius, maxD);
                var sum = 0.0;
                for (; beginSumOffset <= endSumOffset; beginSumOffset++) {
                    var z = xValues[beginSumOffset];
                    sum += z * z;
                }
                return sum;
            }
            for (var offset = 0; offset < size; offset++) {
                var sum = sumAcrossChannels(offset);
                var val = xValues[offset] * Math.pow(bias + alpha * sum, -beta);
                result[offset] = val;
            }
            return backend.makeTensorInfo(x.shape, x.dtype, result);
        }
        // tslint:disable-next-line: variable-name
        var LRNConfig = {
            kernelName: tfjsCore.LRN,
            backendName: 'cpu',
            kernelFunc: lRN
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function lRNGrad(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x
                , y = inputs.y
                , dy = inputs.dy;
            var depthRadius = attrs.depthRadius
                , bias = attrs.bias
                , alpha = attrs.alpha
                , beta = attrs.beta;
            assertNotComplex(dy, 'LRNGrad');
            var dySize = tfjsCore.util.sizeFromShape(dy.shape);
            var channels = dy.shape[3];
            var dyValues = backend.data.get(dy.dataId).values;
            var xValues = backend.data.get(x.dataId).values;
            var yValues = backend.data.get(y.dataId).values;
            var result = new Float32Array(dySize);
            var size = dySize;
            for (var offset = 0; offset < size; offset++) {
                var currentChannel = offset % channels;
                var depthBegin = (offset - currentChannel) + Math.max(0, currentChannel - depthRadius);
                var depthEnd = (offset - currentChannel) + Math.min(channels, currentChannel + depthRadius + 1);
                var norm = 0;
                for (var k = depthBegin; k < depthEnd; k++) {
                    norm += Math.pow(xValues[k], 2);
                }
                norm = alpha * norm + bias;
                for (var k = depthBegin; k < depthEnd; k++) {
                    var dyi = -2 * alpha * beta * xValues[k] * yValues[offset] / norm;
                    if (offset === k) {
                        dyi += Math.pow(norm, -beta);
                    }
                    dyi *= dyValues[offset];
                    result[k] += dyi;
                }
            }
            return backend.makeTensorInfo(dy.shape, x.dtype, result);
        }
        // tslint:disable-next-line: variable-name
        var LRNGradConfig = {
            kernelName: tfjsCore.LRNGrad,
            backendName: 'cpu',
            kernelFunc: lRNGrad
        };

        function max(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x;
            var reductionIndices = attrs.reductionIndices
                , keepDims = attrs.keepDims;
            var cpuBackend = backend;
            var xShape = x.shape;
            var xRank = xShape.length;
            var origAxes = tfjsCore.util.parseAxisParam(reductionIndices, xShape);
            var axes = origAxes;
            var permutedAxes = tfjsCore.backend_util.getAxesPermutation(axes, xRank);
            var xVals = cpuBackend.data.get(x.dataId).values;
            if (permutedAxes != null) {
                var newShape = new Array(xRank);
                for (var i = 0; i < newShape.length; i++) {
                    newShape[i] = xShape[permutedAxes[i]];
                }
                xVals = transposeImpl(xVals, xShape, x.dtype, permutedAxes, newShape);
                axes = tfjsCore.backend_util.getInnerMostAxes(axes.length, xRank);
                xShape = newShape;
            }
            assertNotComplex(x, 'max');
            tfjsCore.backend_util.assertAxesAreInnerMostDims('max', axes, xRank);
            var _a = __read(tfjsCore.backend_util.computeOutAndReduceShapes(xShape, axes), 2)
                , maxOutShape = _a[0]
                , reduceShape = _a[1];
            var reduceSize = tfjsCore.util.sizeFromShape(reduceShape);
            var result = maxImpl(xVals, reduceSize, maxOutShape, x.dtype);
            var dataId = cpuBackend.write(result, maxOutShape, x.dtype);
            var outShape = maxOutShape;
            if (keepDims) {
                // reshape
                var newShape = tfjsCore.backend_util.expandShapeToKeepDim(maxOutShape, origAxes);
                outShape = newShape;
            }
            return {
                dataId: dataId,
                shape: outShape,
                dtype: x.dtype
            };
        }
        var maxConfig = {
            kernelName: tfjsCore.Max,
            backendName: 'cpu',
            kernelFunc: max
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function maxPool(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x;
            assertNotComplex(x, 'maxPool');
            var filterSize = attrs.filterSize
                , strides = attrs.strides
                , pad = attrs.pad
                , dimRoundingMode = attrs.dimRoundingMode;
            var dilations = 1;
            tfjsCore.util.assert(tfjsCore.backend_util.eitherStridesOrDilationsAreOne(strides, dilations), function () {
                return 'Error in maxPool: Either strides or dilations must be 1. ' + "Got strides ".concat(strides, " and dilations '").concat(dilations, "'");
            });
            var convInfo = tfjsCore.backend_util.computePool2DInfo(x.shape, filterSize, strides, dilations, pad, dimRoundingMode);
            var res;
            if (convInfo.filterWidth === 1 && convInfo.filterHeight === 1 && tfjsCore.util.arraysEqual(convInfo.inShape, convInfo.outShape)) {
                res = identity({
                    inputs: {
                        x: x
                    },
                    backend: backend
                });
            } else {
                var xValues = backend.data.get(x.dataId).values;
                var strides_1 = tfjsCore.util.computeStrides(x.shape);
                var buffer = pool(xValues, x.shape, x.dtype, strides_1, convInfo, 'max');
                res = backend.makeTensorInfo(convInfo.outShape, x.dtype, buffer.values);
            }
            return res;
        }
        var maxPoolConfig = {
            kernelName: tfjsCore.MaxPool,
            backendName: 'cpu',
            kernelFunc: maxPool
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function maxPool3D(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x;
            var filterSize = attrs.filterSize
                , strides = attrs.strides
                , pad = attrs.pad
                , dimRoundingMode = attrs.dimRoundingMode
                , dataFormat = attrs.dataFormat;
            assertNotComplex(x, 'maxPool3d');
            var convInfo = tfjsCore.backend_util.computePool3DInfo(x.shape, filterSize, strides, 1 /* dilations */
                , pad, dimRoundingMode, dataFormat);
            var xValues = backend.data.get(x.dataId).values;
            var outBuf = pool3d(xValues, x.shape, x.dtype, tfjsCore.util.computeStrides(x.shape), convInfo, 'max');
            return backend.makeTensorInfo(outBuf.shape, 'float32', outBuf.values);
        }
        var maxPool3DConfig = {
            kernelName: tfjsCore.MaxPool3D,
            backendName: 'cpu',
            kernelFunc: maxPool3D
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function maxPool3DGrad(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var dy = inputs.dy
                , input = inputs.input;
            var filterSize = attrs.filterSize
                , strides = attrs.strides
                , pad = attrs.pad
                , dimRoundingMode = attrs.dimRoundingMode;
            assertNotComplex([dy, input], 'maxPool3DGrad');
            var convInfo = tfjsCore.backend_util.computePool3DInfo(input.shape, filterSize, strides, 1 /* dilations */
                , pad, dimRoundingMode);
            var inputBuf = backend.bufferSync(input);
            var maxPosBuf = maxPool3dPositions(inputBuf, convInfo);
            var strideDepth = convInfo.strideDepth;
            var strideHeight = convInfo.strideHeight;
            var strideWidth = convInfo.strideWidth;
            var dilationDepth = convInfo.dilationDepth;
            var dilationHeight = convInfo.dilationHeight;
            var dilationWidth = convInfo.dilationWidth;
            var effectiveFilterDepth = convInfo.effectiveFilterDepth;
            var effectiveFilterHeight = convInfo.effectiveFilterHeight;
            var effectiveFilterWidth = convInfo.effectiveFilterWidth;
            var padFront = effectiveFilterDepth - 1 - convInfo.padInfo.front;
            var padLeft = effectiveFilterWidth - 1 - convInfo.padInfo.left;
            var padTop = effectiveFilterHeight - 1 - convInfo.padInfo.top;
            var dx = tfjsCore.buffer(input.shape, 'float32');
            var dyBuf = backend.bufferSync(dy);
            for (var batch = 0; batch < convInfo.batchSize; ++batch) {
                for (var channel = 0; channel < convInfo.inChannels; ++channel) {
                    for (var dxDepth = 0; dxDepth < convInfo.inDepth; ++dxDepth) {
                        for (var dxRow = 0; dxRow < convInfo.inHeight; ++dxRow) {
                            for (var dxCol = 0; dxCol < convInfo.inWidth; ++dxCol) {
                                // Shader code begins
                                var dyDepthCorner = dxDepth - padFront;
                                var dyRowCorner = dxRow - padTop;
                                var dyColCorner = dxCol - padLeft;
                                var dotProd = 0;
                                for (var wDepth = 0; wDepth < effectiveFilterDepth; wDepth += dilationDepth) {
                                    var dyDepth = (dyDepthCorner + wDepth) / strideDepth;
                                    if (dyDepth < 0 || dyDepth >= convInfo.outDepth || Math.floor(dyDepth) !== dyDepth) {
                                        continue;
                                    }
                                    for (var wRow = 0; wRow < effectiveFilterHeight; wRow += dilationHeight) {
                                        var dyRow = (dyRowCorner + wRow) / strideHeight;
                                        if (dyRow < 0 || dyRow >= convInfo.outHeight || Math.floor(dyRow) !== dyRow) {
                                            continue;
                                        }
                                        for (var wCol = 0; wCol < effectiveFilterWidth; wCol += dilationWidth) {
                                            var dyCol = (dyColCorner + wCol) / strideWidth;
                                            if (dyCol < 0 || dyCol >= convInfo.outWidth || Math.floor(dyCol) !== dyCol) {
                                                continue;
                                            }
                                            var maxPos = effectiveFilterDepth * effectiveFilterHeight * effectiveFilterWidth - 1 - maxPosBuf.get(batch, dyDepth, dyRow, dyCol, channel);
                                            var curPos = wDepth * effectiveFilterHeight * effectiveFilterWidth + wRow * effectiveFilterWidth + wCol;
                                            var mask = maxPos === curPos ? 1 : 0;
                                            if (mask === 0) {
                                                continue;
                                            }
                                            var pixel = dyBuf.get(batch, dyDepth, dyRow, dyCol, channel);
                                            dotProd += pixel * mask;
                                        }
                                    }
                                }
                                dx.set(dotProd, batch, dxDepth, dxRow, dxCol, channel);
                            }
                        }
                    }
                }
            }
            return backend.makeTensorInfo(dx.shape, dx.dtype, dx.values);
        }
        var maxPool3DGradConfig = {
            kernelName: tfjsCore.MaxPool3DGrad,
            backendName: 'cpu',
            kernelFunc: maxPool3DGrad
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function maxPoolGrad(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var dy = inputs.dy
                , input = inputs.input
                , output = inputs.output;
            var x = input;
            assertNotComplex([input, output], 'maxPoolGrad');
            var filterSize = attrs.filterSize
                , strides = attrs.strides
                , pad = attrs.pad
                , dimRoundingMode = attrs.dimRoundingMode;
            var convInfo = tfjsCore.backend_util.computePool2DInfo(x.shape, filterSize, strides, 1 /* dilations */
                , pad, dimRoundingMode);
            var xValues = backend.data.get(x.dataId).values;
            var maxPosBuf = tfjsCore.buffer(convInfo.outShape, x.dtype, maxPoolPositions(xValues, x.shape, x.dtype, convInfo).values);
            var strideHeight = convInfo.strideHeight;
            var strideWidth = convInfo.strideWidth;
            var dilationHeight = convInfo.dilationHeight;
            var dilationWidth = convInfo.dilationWidth;
            var effectiveFilterHeight = convInfo.effectiveFilterHeight;
            var effectiveFilterWidth = convInfo.effectiveFilterWidth;
            var padLeft = effectiveFilterWidth - 1 - convInfo.padInfo.left;
            var padTop = effectiveFilterHeight - 1 - convInfo.padInfo.top;
            var dx = tfjsCore.buffer(x.shape, 'float32');
            var dyData = backend.data.get(dy.dataId).values;
            var dyBuf = tfjsCore.buffer(dy.shape, 'float32', dyData);
            for (var b = 0; b < convInfo.batchSize; ++b) {
                for (var d = 0; d < convInfo.inChannels; ++d) {
                    for (var dxR = 0; dxR < convInfo.inHeight; ++dxR) {
                        for (var dxC = 0; dxC < convInfo.inWidth; ++dxC) {
                            // Shader code begins.
                            var dyRCorner = dxR - padTop;
                            var dyCCorner = dxC - padLeft;
                            var dotProd = 0;
                            for (var wR = 0; wR < effectiveFilterHeight; wR += dilationHeight) {
                                var dyR = (dyRCorner + wR) / strideHeight;
                                if (dyR < 0 || dyR >= convInfo.outHeight || Math.floor(dyR) !== dyR) {
                                    continue;
                                }
                                for (var wC = 0; wC < effectiveFilterWidth; wC += dilationWidth) {
                                    var dyC = (dyCCorner + wC) / strideWidth;
                                    if (dyC < 0 || dyC >= convInfo.outWidth || Math.floor(dyC) !== dyC) {
                                        continue;
                                    }
                                    var maxPos = effectiveFilterHeight * effectiveFilterWidth - 1 - maxPosBuf.get(b, dyR, dyC, d);
                                    var curPos = wR * effectiveFilterWidth + wC;
                                    var mask = maxPos === curPos ? 1 : 0;
                                    if (mask === 0) {
                                        continue;
                                    }
                                    var pixel = dyBuf.get(b, dyR, dyC, d);
                                    dotProd += pixel * mask;
                                }
                            }
                            dx.set(dotProd, b, dxR, dxC, d);
                        }
                    }
                }
            }
            return backend.makeTensorInfo(dx.shape, dx.dtype, dx.values);
        }
        var maxPoolGradConfig = {
            kernelName: tfjsCore.MaxPoolGrad,
            backendName: 'cpu',
            kernelFunc: maxPoolGrad
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function maxPoolWithArgmaxImpl(xValues, xShape, dtype, includeBatchInIndex, convInfo) {
            var strides = tfjsCore.util.computeStrides(xShape);
            var maxPools = pool(xValues, xShape, dtype, strides, convInfo, 'max');
            var maxPositions = maxPoolPositions(xValues, xShape, dtype, convInfo, true, includeBatchInIndex);
            return [maxPools.values, maxPositions.values];
        }

        var maxPoolWithArgmaxConfig = {
            kernelName: tfjsCore.MaxPoolWithArgmax,
            backendName: 'cpu',
            kernelFunc: function (_a) {
                var inputs = _a.inputs
                    , attrs = _a.attrs
                    , backend = _a.backend;
                var x = inputs.x;
                var filterSize = attrs.filterSize
                    , strides = attrs.strides
                    , pad = attrs.pad
                    , includeBatchInIndex = attrs.includeBatchInIndex;
                var cpuBackend = backend;
                assertNotComplex(x, 'MaxPoolWithArgmax');
                var values = cpuBackend.data.get(x.dataId).values;
                var convInfo = tfjsCore.backend_util.computePool2DInfo(x.shape, filterSize, strides, [1, 1], pad);
                var _b = __read(maxPoolWithArgmaxImpl(values, x.shape, x.dtype, includeBatchInIndex, convInfo), 2)
                    , pooled = _b[0]
                    , indexes = _b[1];
                var pooledDataId = cpuBackend.write(pooled, convInfo.outShape, x.dtype);
                var indexesDataId = cpuBackend.write(indexes, convInfo.outShape, x.dtype);
                return [{
                    dataId: pooledDataId,
                    shape: convInfo.outShape,
                    dtype: x.dtype
                }, {
                    dataId: indexesDataId,
                    shape: convInfo.outShape,
                    dtype: 'int32'
                }];
            }
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function mean(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x;
            var axis = attrs.axis
                , keepDims = attrs.keepDims;
            var axes = tfjsCore.util.parseAxisParam(axis, x.shape);
            var shapes = tfjsCore.backend_util.computeOutAndReduceShapes(x.shape, axes);
            var reduceShape = shapes[1];
            var reduceSize = tfjsCore.util.sizeFromShape(reduceShape);
            var toDispose = [];
            var reduceSizeScalar = backend.makeTensorInfo([], 'float32', new Float32Array([reduceSize]));
            toDispose.push(reduceSizeScalar);
            var $x = cast({
                inputs: {
                    x: x
                },
                backend: backend,
                attrs: {
                    dtype: 'float32'
                }
            });
            toDispose.push($x);
            var res = div({
                inputs: {
                    a: $x,
                    b: reduceSizeScalar
                },
                backend: backend
            });
            toDispose.push(res);
            var result = sum({
                inputs: {
                    x: res
                },
                backend: backend,
                attrs: {
                    axis: axis,
                    keepDims: keepDims
                }
            });
            toDispose.forEach(function (t) {
                return backend.disposeIntermediateTensorInfo(t);
            });
            return result;
        }
        var meanConfig = {
            kernelName: tfjsCore.Mean,
            backendName: 'cpu',
            kernelFunc: mean
        };

        function min(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x;
            var axis = attrs.axis
                , keepDims = attrs.keepDims;
            assertNotComplex(x, 'min');
            var origAxes = tfjsCore.util.parseAxisParam(axis, x.shape);
            var axes = origAxes;
            var permutedAxes = tfjsCore.backend_util.getAxesPermutation(axes, x.shape.length);
            var $x = x;
            if (permutedAxes != null) {
                $x = transpose({
                    inputs: {
                        x: x
                    },
                    backend: backend,
                    attrs: {
                        perm: permutedAxes
                    }
                });
                axes = tfjsCore.backend_util.getInnerMostAxes(axes.length, x.shape.length);
            }
            tfjsCore.backend_util.assertAxesAreInnerMostDims('min', axes, $x.shape.length);
            var _a = __read(tfjsCore.backend_util.computeOutAndReduceShapes($x.shape, axes), 2)
                , outShape = _a[0]
                , reduceShape = _a[1];
            var reduceSize = tfjsCore.util.sizeFromShape(reduceShape);
            var vals = tfjsCore.util.makeZerosTypedArray(tfjsCore.util.sizeFromShape(outShape), $x.dtype);
            var aVals = backend.data.get($x.dataId).values;
            for (var i = 0; i < vals.length; ++i) {
                var offset = i * reduceSize;
                var min_1 = aVals[offset];
                for (var j = 0; j < reduceSize; ++j) {
                    var value = aVals[offset + j];
                    if (Number.isNaN(value) || value < min_1) {
                        // comparison with NaN always return false
                        min_1 = value;
                    }
                }
                vals[i] = min_1;
            }
            if (permutedAxes != null) {
                backend.disposeIntermediateTensorInfo($x);
            }
            var result = backend.makeTensorInfo(outShape, $x.dtype, vals);
            if (keepDims) {
                var expandedShape = tfjsCore.backend_util.expandShapeToKeepDim(outShape, origAxes);
                var reshapedResult = reshape({
                    inputs: {
                        x: result
                    },
                    backend: backend,
                    attrs: {
                        shape: expandedShape
                    }
                });
                backend.disposeIntermediateTensorInfo(result);
                return reshapedResult;
            }
            return result;
        }
        var minConfig = {
            kernelName: tfjsCore.Min,
            backendName: 'cpu',
            kernelFunc: min
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function mirrorPad(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x;
            var paddings = attrs.paddings
                , mode = attrs.mode;
            assertNotComplex(x, 'mirrorPad');
            var outShape = paddings.map(function (p, i) {
                return p[0]/* beforePad */
                    + x.shape[i] + p[1];
            }/* afterPad */
            );
            var start = paddings.map(function (p) {
                return p[0];
            });
            var end = paddings.map(function (p, i) {
                return p[0] + x.shape[i];
            });
            var offset = mode === 'reflect' ? 0 : 1;
            var xVals = backend.data.get(x.dataId).values;
            var xRank = x.shape.length;
            var xStrides = tfjsCore.util.computeStrides(x.shape);
            var resultSize = tfjsCore.util.sizeFromShape(outShape);
            var resultRank = outShape.length;
            var resultStrides = tfjsCore.util.computeStrides(outShape);
            var resVals = tfjsCore.util.getTypedArrayFromDType(x.dtype, resultSize);
            for (var i = 0; i < resultSize; i++) {
                var coords = tfjsCore.util.indexToLoc(i, resultRank, resultStrides);
                for (var i_1 = 0; i_1 < resultRank; i_1++) {
                    if (coords[i_1] < start[i_1]) {
                        coords[i_1] = start[i_1] * 2 - coords[i_1] - offset;
                    } else if (coords[i_1] >= end[i_1]) {
                        coords[i_1] = (end[i_1] - 1) * 2 - coords[i_1] + offset;
                    }
                }
                coords = coords.map(function (c, i) {
                    return c - start[i];
                });
                var inIndex = tfjsCore.util.locToIndex(coords, xRank, xStrides);
                resVals[i] = xVals[inIndex];
            }
            var outId = backend.write(resVals, outShape, x.dtype);
            return {
                dataId: outId,
                shape: outShape,
                dtype: x.dtype
            };
        }
        var mirrorPadConfig = {
            kernelName: tfjsCore.MirrorPad,
            backendName: 'cpu',
            kernelFunc: mirrorPad
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var modImpl = createSimpleBinaryKernelImpl((function (aValue, bValue) {
            var rem = aValue % bValue;
            if ((aValue < 0 && bValue < 0) || (aValue >= 0 && bValue >= 0)) {
                return rem;
            } else {
                return (rem + bValue) % bValue;
            }
        }
        ));
        var mod = binaryKernelFunc(tfjsCore.Mod, modImpl);
        var modConfig = {
            kernelName: tfjsCore.Mod,
            backendName: 'cpu',
            kernelFunc: mod
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function softmax(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var logits = inputs.logits;
            var dim = attrs.dim;
            var logitsRank = logits.shape.length;
            var $dim = dim;
            if ($dim === -1) {
                $dim = logitsRank - 1;
            }
            if ($dim !== logitsRank - 1) {
                throw Error('Softmax along a non-last dimension is not yet supported. ' + "Logits was rank ".concat(logitsRank, " and dim was ").concat($dim));
            }
            var axes = tfjsCore.util.parseAxisParam([$dim], logits.shape);
            var maxLogit = max({
                inputs: {
                    x: logits
                },
                backend: backend,
                attrs: {
                    reductionIndices: axes,
                    keepDims: false
                }
            });
            var expandedShape = tfjsCore.backend_util.expandShapeToKeepDim(maxLogit.shape, axes);
            var maxLogitReshaped = reshape({
                inputs: {
                    x: maxLogit
                },
                backend: backend,
                attrs: {
                    shape: expandedShape
                }
            });
            var a = sub({
                inputs: {
                    a: logits,
                    b: maxLogitReshaped
                },
                backend: backend
            });
            var b = exp({
                inputs: {
                    x: a
                },
                backend: backend
            });
            var sumExp = sum({
                inputs: {
                    x: b
                },
                backend: backend,
                attrs: {
                    axis: axes,
                    keepDims: false
                }
            });
            var sumReshaped = reshape({
                inputs: {
                    x: sumExp
                },
                backend: backend,
                attrs: {
                    shape: expandedShape
                }
            });
            var result = div({
                inputs: {
                    a: b,
                    b: sumReshaped
                },
                backend: backend
            });
            backend.disposeIntermediateTensorInfo(maxLogit);
            backend.disposeIntermediateTensorInfo(maxLogitReshaped);
            backend.disposeIntermediateTensorInfo(a);
            backend.disposeIntermediateTensorInfo(b);
            backend.disposeIntermediateTensorInfo(sumExp);
            backend.disposeIntermediateTensorInfo(sumReshaped);
            return result;
        }
        var softmaxConfig = {
            kernelName: tfjsCore.Softmax,
            backendName: 'cpu',
            kernelFunc: softmax
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function multinomial(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var logits = inputs.logits;
            var numSamples = attrs.numSamples
                , seed = attrs.seed
                , normalized = attrs.normalized;
            assertNotComplex(logits, 'multinomial');
            var probabilities = normalized ? logits : softmax({
                inputs: {
                    logits: logits
                },
                backend: backend,
                attrs: {
                    dim: -1
                }
            });
            var batchSize = probabilities.shape[0];
            var numEvents = probabilities.shape[1];
            var probVals = backend.data.get(probabilities.dataId).values;
            var resShape = [batchSize, numSamples];
            var resVals = tfjsCore.util.makeZerosTypedArray(tfjsCore.util.sizeFromShape(resShape), 'int32');
            for (var b = 0; b < batchSize; ++b) {
                var offset = b * numEvents;
                // The cdf won't include the last event. It will be implicit if no other
                // event happened.
                var cdf = new Float32Array(numEvents - 1);
                cdf[0] = probVals[offset];
                for (var event = 1; event < cdf.length; ++event) {
                    cdf[event] = cdf[event - 1] + probVals[offset + event];
                }
                var random = seedrandom__namespace.alea(seed.toString());
                var outOffset = b * numSamples;
                for (var sampleId = 0; sampleId < numSamples; ++sampleId) {
                    var r = random();
                    // Assume last event happened by default.
                    resVals[outOffset + sampleId] = cdf.length;
                    for (var event = 0; event < cdf.length; event++) {
                        if (r < cdf[event]) {
                            resVals[outOffset + sampleId] = event;
                            break;
                        }
                    }
                }
            }
            if (!normalized) {
                backend.disposeIntermediateTensorInfo(probabilities);
            }
            return backend.makeTensorInfo(resShape, 'int32', resVals);
        }
        var multinomialConfig = {
            kernelName: tfjsCore.Multinomial,
            backendName: 'cpu',
            kernelFunc: multinomial
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var nonMaxSuppressionV3Impl = tfjsCore.kernel_impls.nonMaxSuppressionV3Impl;
        function nonMaxSuppressionV3(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var boxes = inputs.boxes
                , scores = inputs.scores;
            var maxOutputSize = attrs.maxOutputSize
                , iouThreshold = attrs.iouThreshold
                , scoreThreshold = attrs.scoreThreshold;
            assertNotComplex(boxes, 'NonMaxSuppression');
            var boxesVals = backend.data.get(boxes.dataId).values;
            var scoresVals = backend.data.get(scores.dataId).values;
            var selectedIndices = nonMaxSuppressionV3Impl(boxesVals, scoresVals, maxOutputSize, iouThreshold, scoreThreshold).selectedIndices;
            return backend.makeTensorInfo([selectedIndices.length], 'int32', new Int32Array(selectedIndices));
        }
        var nonMaxSuppressionV3Config = {
            kernelName: tfjsCore.NonMaxSuppressionV3,
            backendName: 'cpu',
            kernelFunc: nonMaxSuppressionV3
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var nonMaxSuppressionV4Impl = tfjsCore.kernel_impls.nonMaxSuppressionV4Impl;
        function nonMaxSuppressionV4(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var boxes = inputs.boxes
                , scores = inputs.scores;
            var maxOutputSize = attrs.maxOutputSize
                , iouThreshold = attrs.iouThreshold
                , scoreThreshold = attrs.scoreThreshold
                , padToMaxOutputSize = attrs.padToMaxOutputSize;
            assertNotComplex(boxes, 'NonMaxSuppressionPadded');
            var boxesVals = backend.data.get(boxes.dataId).values;
            var scoresVals = backend.data.get(scores.dataId).values;
            var _a = nonMaxSuppressionV4Impl(boxesVals, scoresVals, maxOutputSize, iouThreshold, scoreThreshold, padToMaxOutputSize)
                , selectedIndices = _a.selectedIndices
                , validOutputs = _a.validOutputs;
            return [backend.makeTensorInfo([selectedIndices.length], 'int32', new Int32Array(selectedIndices)), backend.makeTensorInfo([], 'int32', new Int32Array([validOutputs]))];
        }
        var nonMaxSuppressionV4Config = {
            kernelName: tfjsCore.NonMaxSuppressionV4,
            backendName: 'cpu',
            kernelFunc: nonMaxSuppressionV4
        };

        /**
         * @license
         * Copyright 2019 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var nonMaxSuppressionV5Impl = tfjsCore.kernel_impls.nonMaxSuppressionV5Impl;
        function nonMaxSuppressionV5(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var boxes = inputs.boxes
                , scores = inputs.scores;
            var maxOutputSize = attrs.maxOutputSize
                , iouThreshold = attrs.iouThreshold
                , scoreThreshold = attrs.scoreThreshold
                , softNmsSigma = attrs.softNmsSigma;
            assertNotComplex(boxes, 'NonMaxSuppressionWithScore');
            var boxesVals = backend.data.get(boxes.dataId).values;
            var scoresVals = backend.data.get(scores.dataId).values;
            var maxOutputSizeVal = maxOutputSize;
            var iouThresholdVal = iouThreshold;
            var scoreThresholdVal = scoreThreshold;
            var softNmsSigmaVal = softNmsSigma;
            var _a = nonMaxSuppressionV5Impl(boxesVals, scoresVals, maxOutputSizeVal, iouThresholdVal, scoreThresholdVal, softNmsSigmaVal)
                , selectedIndices = _a.selectedIndices
                , selectedScores = _a.selectedScores;
            return [backend.makeTensorInfo([selectedIndices.length], 'int32', new Int32Array(selectedIndices)), backend.makeTensorInfo([selectedScores.length], 'float32', new Float32Array(selectedScores))];
        }
        var nonMaxSuppressionV5Config = {
            kernelName: tfjsCore.NonMaxSuppressionV5,
            backendName: 'cpu',
            kernelFunc: nonMaxSuppressionV5
        };

        function oneHot(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var indices = inputs.indices;
            var dtype = attrs.dtype
                , depth = attrs.depth
                , onValue = attrs.onValue
                , offValue = attrs.offValue;
            assertNotComplex(indices, 'oneHot');
            var indicesSize = tfjsCore.util.sizeFromShape(indices.shape);
            var res = new Float32Array(indicesSize * depth);
            res.fill(offValue);
            var indicesVal = backend.data.get(indices.dataId).values;
            for (var event = 0; event < indicesSize; ++event) {
                if (indicesVal[event] >= 0 && indicesVal[event] < depth) {
                    res[event * depth + indicesVal[event]] = onValue;
                }
            }
            return backend.makeTensorInfo(__spreadArray(__spreadArray([], __read(indices.shape), false), [depth], false), dtype, res);
        }
        var oneHotConfig = {
            kernelName: tfjsCore.OneHot,
            backendName: 'cpu',
            kernelFunc: oneHot
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function zerosLike(args) {
            var inputs = args.inputs
                , backend = args.backend;
            var x = inputs.x;
            if (x.dtype === 'string') {
                throw new Error('zerosLike is not supported for string tensors');
            } else if (x.dtype === 'complex64') {
                var realPart = real({
                    inputs: {
                        input: x
                    },
                    backend: backend
                });
                var r = zerosLike({
                    inputs: {
                        x: realPart
                    },
                    backend: backend
                });
                var imagPart = imag({
                    inputs: {
                        input: x
                    },
                    backend: backend
                });
                var i = zerosLike({
                    inputs: {
                        x: imagPart
                    },
                    backend: backend
                });
                var result = complex({
                    inputs: {
                        real: r,
                        imag: i
                    },
                    backend: backend
                });
                backend.disposeIntermediateTensorInfo(realPart);
                backend.disposeIntermediateTensorInfo(r);
                backend.disposeIntermediateTensorInfo(imagPart);
                backend.disposeIntermediateTensorInfo(i);
                return result;
            } else {
                return fill({
                    backend: backend,
                    attrs: {
                        shape: x.shape,
                        value: 0,
                        dtype: x.dtype
                    }
                });
            }
        }
        var zerosLikeConfig = {
            kernelName: tfjsCore.ZerosLike,
            backendName: 'cpu',
            kernelFunc: zerosLike
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function onesLike(args) {
            var inputs = args.inputs
                , backend = args.backend;
            var x = inputs.x;
            if (x.dtype === 'string') {
                throw new Error('onesLike is not supported for string tensors');
            } else if (x.dtype === 'complex64') {
                var realPart = real({
                    inputs: {
                        input: x
                    },
                    backend: backend
                });
                var r = onesLike({
                    inputs: {
                        x: realPart
                    },
                    backend: backend
                });
                var imagPart = imag({
                    inputs: {
                        input: x
                    },
                    backend: backend
                });
                var i = zerosLike({
                    inputs: {
                        x: imagPart
                    },
                    backend: backend
                });
                var result = complex({
                    inputs: {
                        real: r,
                        imag: i
                    },
                    backend: backend
                });
                backend.disposeIntermediateTensorInfo(realPart);
                backend.disposeIntermediateTensorInfo(r);
                backend.disposeIntermediateTensorInfo(imagPart);
                backend.disposeIntermediateTensorInfo(i);
                return result;
            } else {
                return fill({
                    backend: backend,
                    attrs: {
                        shape: x.shape,
                        value: 1,
                        dtype: x.dtype
                    }
                });
            }
        }
        var onesLikeConfig = {
            kernelName: tfjsCore.OnesLike,
            backendName: 'cpu',
            kernelFunc: onesLike
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function pack(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var axis = attrs.axis;
            if (inputs.length === 1) {
                return expandDims({
                    inputs: {
                        input: inputs[0]
                    },
                    backend: backend,
                    attrs: {
                        dim: axis
                    }
                });
            }
            var shape = inputs[0].shape;
            var dtype = inputs[0].dtype;
            inputs.forEach(function (t) {
                tfjsCore.util.assertShapesMatch(shape, t.shape, 'All tensors passed to stack must have matching shapes');
                tfjsCore.util.assert(dtype === t.dtype, function () {
                    return 'All tensors passed to stack must have matching dtypes';
                });
            });
            var intermediateTensorInfos = [];
            var expandedTensors = inputs.map(function (t) {
                var expandedT = expandDims({
                    inputs: {
                        input: t
                    },
                    backend: backend,
                    attrs: {
                        dim: axis
                    }
                });
                intermediateTensorInfos.push(expandedT);
                return expandedT;
            });
            var result = concat({
                inputs: expandedTensors,
                backend: backend,
                attrs: {
                    axis: axis
                }
            });
            intermediateTensorInfos.forEach(function (t) {
                return backend.disposeIntermediateTensorInfo(t);
            });
            return result;
        }
        var packConfig = {
            kernelName: tfjsCore.Pack,
            backendName: 'cpu',
            kernelFunc: pack
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function padV2(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x;
            var paddings = attrs.paddings
                , constantValue = attrs.constantValue;
            assertNotComplex(x, 'pad');
            var outShape = paddings.map(function (p, i) {
                return p[0]/* beforePad */
                    + x.shape[i] + p[1];
            }/* afterPad */
            );
            var start = paddings.map(function (p) {
                return p[0];
            });
            var xVals = backend.data.get(x.dataId).values;
            var xSize = tfjsCore.util.sizeFromShape(x.shape);
            var xRank = x.shape.length;
            var xStrides = tfjsCore.util.computeStrides(x.shape);
            var resultSize = tfjsCore.util.sizeFromShape(outShape);
            var resultRank = outShape.length;
            var resultStrides = tfjsCore.util.computeStrides(outShape);
            var resVals = tfjsCore.util.getTypedArrayFromDType(x.dtype, resultSize);
            if (constantValue !== 0) {
                resVals.fill(constantValue);
            }
            for (var i = 0; i < xSize; i++) {
                var coords = tfjsCore.util.indexToLoc(i, xRank, xStrides);
                var outCoords = coords.map(function (c, i) {
                    return c + start[i];
                });
                var outIndex = tfjsCore.util.locToIndex(outCoords, resultRank, resultStrides);
                resVals[outIndex] = xVals[i];
            }
            var outId = backend.write(resVals, outShape, x.dtype);
            return {
                dataId: outId,
                shape: outShape,
                dtype: x.dtype
            };
        }
        var padV2Config = {
            kernelName: tfjsCore.PadV2,
            backendName: 'cpu',
            kernelFunc: padV2
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var powImpl = createSimpleBinaryKernelImpl(function (a, b) {
            return Math.pow(a, b);
        });
        var pow = binaryKernelFunc(tfjsCore.Pow, powImpl);
        var powConfig = {
            kernelName: tfjsCore.Pow,
            backendName: 'cpu',
            kernelFunc: pow
        };

        function raggedGather(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var paramsNestedSplits = inputs.paramsNestedSplits
                , paramsDenseValues = inputs.paramsDenseValues
                , indices = inputs.indices;
            attrs.outputRaggedRank;
            var $paramsNestedSplits = paramsNestedSplits.map(function (t) {
                return backend.data.get(t.dataId).values;
            });
            var $paramsNestedSplitsShapes = paramsNestedSplits.map(function (t) {
                return t.shape;
            });
            var $paramsDenseValues = backend.data.get(paramsDenseValues.dataId).values;
            var $indices = backend.data.get(indices.dataId).values;
            var _a = __read(raggedGatherImpl($paramsNestedSplits, $paramsNestedSplitsShapes, $paramsDenseValues, paramsDenseValues.shape, paramsDenseValues.dtype, $indices, indices.shape), 3)
                , outputNestedSplits = _a[0]
                , outputDenseValues = _a[1]
                , outputDenseValuesShape = _a[2];
            var outputNestedSplitsTensors = outputNestedSplits.map(function (splits) {
                return backend.makeTensorInfo([splits.length], 'int32', splits);
            });
            var outputDenseValuesTensor = backend.makeTensorInfo(outputDenseValuesShape, paramsDenseValues.dtype, outputDenseValues);
            return outputNestedSplitsTensors.concat([outputDenseValuesTensor]);
        }
        var raggedGatherConfig = {
            kernelName: tfjsCore.RaggedGather,
            backendName: 'cpu',
            kernelFunc: raggedGather,
        };

        function raggedRange(args) {
            var inputs = args.inputs
                , backend = args.backend;
            var starts = inputs.starts
                , limits = inputs.limits
                , deltas = inputs.deltas;
            var $starts = backend.data.get(starts.dataId).values;
            var $limits = backend.data.get(limits.dataId).values;
            var $deltas = backend.data.get(deltas.dataId).values;
            var _a = __read(raggedRangeImpl($starts, starts.shape, starts.dtype, $limits, limits.shape, $deltas, deltas.shape), 2)
                , rtNestedSplitsData = _a[0]
                , rtDenseValuesData = _a[1];
            var rtNestedSplits = backend.makeTensorInfo([rtNestedSplitsData.length], 'int32', rtNestedSplitsData);
            var rtDenseValues = backend.makeTensorInfo([rtDenseValuesData.length], starts.dtype, rtDenseValuesData);
            return [rtNestedSplits, rtDenseValues];
        }
        var raggedRangeConfig = {
            kernelName: tfjsCore.RaggedRange,
            backendName: 'cpu',
            kernelFunc: raggedRange,
        };

        function raggedTensorToTensor(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var shape = inputs.shape
                , values = inputs.values
                , defaultValue = inputs.defaultValue
                , rowPartitionTensors = inputs.rowPartitionTensors;
            var rowPartitionTypes = attrs.rowPartitionTypes;
            var $shape = backend.data.get(shape.dataId).values;
            var $values = backend.data.get(values.dataId).values;
            var $defaultValue = backend.data.get(defaultValue.dataId).values;
            var $rowPartitionValues = rowPartitionTensors.map(function (t) {
                return backend.data.get(t.dataId).values;
            });
            var rowPartitionValuesShapes = rowPartitionTensors.map(function (t) {
                return t.shape;
            });
            var _a = __read(raggedTensorToTensorImpl($shape, shape.shape, $values, values.shape, values.dtype, $defaultValue, defaultValue.shape, $rowPartitionValues, rowPartitionValuesShapes, rowPartitionTypes), 2)
                , outputShape = _a[0]
                , output = _a[1];
            return backend.makeTensorInfo(outputShape, values.dtype, output);
        }
        var raggedTensorToTensorConfig = {
            kernelName: tfjsCore.RaggedTensorToTensor,
            backendName: 'cpu',
            kernelFunc: raggedTensorToTensor,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function range(args) {
            var backend = args.backend
                , attrs = args.attrs;
            var start = attrs.start
                , stop = attrs.stop
                , dtype = attrs.dtype
                , step = attrs.step;
            var values = rangeImpl(start, stop, step, dtype);
            return backend.makeTensorInfo([values.length], dtype, values);
        }
        var rangeConfig = {
            kernelName: tfjsCore.Range,
            backendName: 'cpu',
            kernelFunc: range
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the License);
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an AS IS BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var reciprocal = unaryKernelFunc(tfjsCore.Reciprocal, function (xi) {
            return 1 / xi;
        });
        var reciprocalConfig = {
            kernelName: tfjsCore.Reciprocal,
            backendName: 'cpu',
            kernelFunc: reciprocal,
        };

        function resizeBilinear(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var images = inputs.images;
            var alignCorners = attrs.alignCorners
                , halfPixelCenters = attrs.halfPixelCenters
                , size = attrs.size;
            assertNotComplex(images, 'resizeBilinear');
            var imagesStrides = tfjsCore.util.computeStrides(images.shape);
            var _a = __read(size, 2)
                , newHeight = _a[0]
                , newWidth = _a[1];
            var _b = __read(images.shape, 4)
                , batch = _b[0]
                , oldHeight = _b[1]
                , oldWidth = _b[2]
                , numChannels = _b[3];
            var xValues = backend.data.get(images.dataId).values;
            var result = new Float32Array(tfjsCore.util.sizeFromShape([batch, newHeight, newWidth, numChannels]));
            var effectiveInputSize = [(alignCorners && newHeight > 1) ? oldHeight - 1 : oldHeight, (alignCorners && newWidth > 1) ? oldWidth - 1 : oldWidth];
            var effectiveOutputSize = [(alignCorners && newHeight > 1) ? newHeight - 1 : newHeight, (alignCorners && newWidth > 1) ? newWidth - 1 : newWidth];
            var outputIdx = 0;
            var effectiveRowSizeRatio = effectiveInputSize[0] / effectiveOutputSize[0];
            var effectiveColSizeRatio = effectiveInputSize[1] / effectiveOutputSize[1];
            for (var b = 0; b < batch; b++) {
                for (var r = 0; r < newHeight; r++) {
                    var sourceFracRow = void 0;
                    if (halfPixelCenters) {
                        sourceFracRow = effectiveRowSizeRatio * (r + 0.5) - 0.5;
                    } else {
                        sourceFracRow = effectiveRowSizeRatio * r;
                    }
                    var sourceRowFloor = Math.max(0, Math.floor(sourceFracRow));
                    var rowFrac = sourceFracRow - sourceRowFloor;
                    var sourceRowCeil = Math.min(oldHeight - 1, Math.ceil(sourceFracRow));
                    var topRowOffset = b * imagesStrides[0] + sourceRowFloor * imagesStrides[1];
                    var botRowOffset = b * imagesStrides[0] + sourceRowCeil * imagesStrides[1];
                    for (var c = 0; c < newWidth; c++) {
                        var sourceFracCol = void 0;
                        if (halfPixelCenters) {
                            sourceFracCol = effectiveColSizeRatio * (c + 0.5) - 0.5;
                        } else {
                            sourceFracCol = effectiveColSizeRatio * c;
                        }
                        var sourceColFloor = Math.max(0, Math.floor(sourceFracCol));
                        var colFrac = sourceFracCol - sourceColFloor;
                        var sourceColCeil = Math.min(oldWidth - 1, Math.ceil(sourceFracCol));
                        var topLeftOffest = topRowOffset + sourceColFloor * imagesStrides[2];
                        var botLeftOffset = botRowOffset + sourceColFloor * imagesStrides[2];
                        var topRightOffset = topRowOffset + sourceColCeil * imagesStrides[2];
                        var botRightOffest = botRowOffset + sourceColCeil * imagesStrides[2];
                        for (var d = 0; d < numChannels; d++) {
                            // Begin shader.
                            // Compute the fractional index of the source.
                            var topLeft = xValues[topLeftOffest + d];
                            var bottomLeft = xValues[botLeftOffset + d];
                            var topRight = xValues[topRightOffset + d];
                            var bottomRight = xValues[botRightOffest + d];
                            var top = topLeft + (topRight - topLeft) * colFrac;
                            var bottom = bottomLeft + (bottomRight - bottomLeft) * colFrac;
                            var newValue = top + (bottom - top) * rowFrac;
                            result[outputIdx++] = newValue;
                        }
                    }
                }
            }
            return backend.makeTensorInfo([batch, newHeight, newWidth, numChannels], 'float32', result);
        }
        var resizeBilinearConfig = {
            kernelName: tfjsCore.ResizeBilinear,
            backendName: 'cpu',
            kernelFunc: resizeBilinear
        };

        function resizeBilinearGrad(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var images = inputs.images
                , dy = inputs.dy;
            var alignCorners = attrs.alignCorners;
            assertNotComplex([dy, images], 'resizeBilinearGrad');
            var imagesStrides = tfjsCore.util.computeStrides(images.shape);
            var _a = __read(images.shape, 4)
                , batch = _a[0]
                , xHeight = _a[1]
                , xWidth = _a[2]
                , depth = _a[3];
            var _b = __read(dy.shape, 3)
                , yHeight = _b[1]
                , yWidth = _b[2];
            var output = new Float32Array(batch * xHeight * xWidth * depth);
            // In the backwards pass, we want to find the pixels that were generated
            // for each pixel in the input image the forward pass and add the
            // corresponding coefficient from dy to the gradient (with some
            // interpolation).
            var effectiveXSize = [(alignCorners && yHeight > 1) ? xHeight - 1 : xHeight, (alignCorners && yWidth > 1) ? xWidth - 1 : xWidth];
            var effectiveYSize = [(alignCorners && yHeight > 1) ? yHeight - 1 : yHeight, (alignCorners && yWidth > 1) ? yWidth - 1 : yWidth];
            var heightScale = effectiveXSize[0] / effectiveYSize[0];
            var widthScale = effectiveXSize[1] / effectiveYSize[1];
            // Reference implementation
            // tslint:disable-next-line:max-line-length
            // https://github.com/tensorflow/tensorflow/blob/3039375c86a5bbc9610c7725dcaa95d635f87ba2/tensorflow/core/kernels/resize_bilinear_op.cc#L275
            var dyValues = backend.data.get(dy.dataId).values;
            var offset = 0;
            for (var b = 0; b < batch; b++) {
                var bOffset = b * imagesStrides[0];
                for (var r = 0; r < yHeight; r++) {
                    var dxR = r * heightScale;
                    var topDxRIndex = Math.floor(dxR);
                    var bottomDxRIndex = Math.min(Math.ceil(dxR), xHeight - 1);
                    var topDxROffset = bOffset + topDxRIndex * imagesStrides[1];
                    var bottomDxROffset = bOffset + bottomDxRIndex * imagesStrides[1];
                    var dxRLerp = dxR - topDxRIndex;
                    var inverseDxRLerp = 1.0 - dxRLerp;
                    for (var c = 0; c < yWidth; c++) {
                        var dxC = c * widthScale;
                        var leftDxCIndex = Math.floor(dxC);
                        var rightDxCIndex = Math.min(Math.ceil(dxC), xWidth - 1);
                        var dxCLerp = dxC - leftDxCIndex;
                        var inverseDxCLerp = 1.0 - dxCLerp;
                        var topLeftRCOffset = topDxROffset + leftDxCIndex * imagesStrides[2];
                        var topRightRCOffset = topDxROffset + rightDxCIndex * imagesStrides[2];
                        var bottomLeftRCOffset = bottomDxROffset + leftDxCIndex * imagesStrides[2];
                        var bottomRightRCOffset = bottomDxROffset + rightDxCIndex * imagesStrides[2];
                        var inverseDxRLerpTimesInverseDxCLerp = inverseDxRLerp * inverseDxCLerp;
                        var inverseDxRLerpTimesDxCLerp = inverseDxRLerp * dxCLerp;
                        var dxRLerpTimesInverseDxCLerp = dxRLerp * inverseDxCLerp;
                        var dxRLerpTimesDxCLerp = dxRLerp * dxCLerp;
                        for (var d = 0; d < depth; d++) {
                            var dyVal = dyValues[offset++];
                            output[topLeftRCOffset + d] += dyVal * inverseDxRLerpTimesInverseDxCLerp;
                            output[topRightRCOffset + d] += dyVal * inverseDxRLerpTimesDxCLerp;
                            output[bottomLeftRCOffset + d] += dyVal * dxRLerpTimesInverseDxCLerp;
                            output[bottomRightRCOffset + d] += dyVal * dxRLerpTimesDxCLerp;
                        }
                    }
                }
            }
            return backend.makeTensorInfo([batch, xWidth, xHeight, depth], 'float32', output);
        }
        var resizeBilinearGradConfig = {
            kernelName: tfjsCore.ResizeBilinearGrad,
            backendName: 'cpu',
            kernelFunc: resizeBilinearGrad
        };

        function resizeNearestNeighbor(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var images = inputs.images;
            var alignCorners = attrs.alignCorners
                , halfPixelCenters = attrs.halfPixelCenters
                , size = attrs.size;
            assertNotComplex(images, 'resizeNearestNeighbor');
            var imagesStrides = tfjsCore.util.computeStrides(images.shape);
            var _a = __read(size, 2)
                , newHeight = _a[0]
                , newWidth = _a[1];
            var _b = __read(images.shape, 4)
                , batch = _b[0]
                , oldHeight = _b[1]
                , oldWidth = _b[2]
                , numChannels = _b[3];
            var xValues = backend.data.get(images.dataId).values;
            var output = new Float32Array(batch * newHeight * newWidth * numChannels);
            var effectiveInputSize = [(alignCorners && newHeight > 1) ? oldHeight - 1 : oldHeight, (alignCorners && newWidth > 1) ? oldWidth - 1 : oldWidth];
            var effectiveOutputSize = [(alignCorners && newHeight > 1) ? newHeight - 1 : newHeight, (alignCorners && newWidth > 1) ? newWidth - 1 : newWidth];
            var effectiveRowSizeRatio = effectiveInputSize[0] / effectiveOutputSize[0];
            var effectiveColSizeRatio = effectiveInputSize[1] / effectiveOutputSize[1];
            var outputOffset = 0;
            for (var b = 0; b < batch; b++) {
                var batchOffset = b * imagesStrides[0];
                for (var r = 0; r < newHeight; r++) {
                    var sourceFracRow = halfPixelCenters ? effectiveRowSizeRatio * (r + 0.5) : effectiveRowSizeRatio * r;
                    var sourceNearestRow = Math.min(oldHeight - 1, alignCorners ? Math.round(sourceFracRow) : Math.floor(sourceFracRow));
                    if (halfPixelCenters) {
                        sourceNearestRow = Math.max(0, sourceNearestRow);
                    }
                    var rowOffset = batchOffset + sourceNearestRow * imagesStrides[1];
                    for (var c = 0; c < newWidth; c++) {
                        var sourceFracCol = halfPixelCenters ? effectiveColSizeRatio * (c + 0.5) : effectiveColSizeRatio * c;
                        var sourceNearestCol = Math.min(oldWidth - 1, alignCorners ? Math.round(sourceFracCol) : Math.floor(sourceFracCol));
                        if (halfPixelCenters) {
                            sourceNearestCol = Math.max(0, sourceNearestCol);
                        }
                        var colOffset = rowOffset + sourceNearestCol * imagesStrides[2];
                        for (var d = 0; d < numChannels; d++) {
                            // Begin shader.
                            // Compute the fractional index of the source.
                            var newVal = xValues[colOffset + d];
                            output[outputOffset++] = newVal;
                        }
                    }
                }
            }
            return backend.makeTensorInfo([batch, newHeight, newWidth, numChannels], images.dtype, output);
        }
        var resizeNearestNeighborConfig = {
            kernelName: tfjsCore.ResizeNearestNeighbor,
            backendName: 'cpu',
            kernelFunc: resizeNearestNeighbor
        };

        function resizeNearestNeighborGrad(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var images = inputs.images
                , dy = inputs.dy;
            var alignCorners = attrs.alignCorners;
            assertNotComplex([dy, images], 'resizeNearestNeighborGrad');
            var imagesStrides = tfjsCore.util.computeStrides(images.shape);
            var dyStrides = tfjsCore.util.computeStrides(dy.shape);
            var _a = __read(images.shape, 4)
                , batch = _a[0]
                , xHeight = _a[1]
                , xWidth = _a[2]
                , depth = _a[3];
            var _b = __read(dy.shape, 3)
                , yHeight = _b[1]
                , yWidth = _b[2];
            var output = new Float32Array(batch * xHeight * xWidth * depth);
            var dyValues = backend.data.get(dy.dataId).values;
            // In the backwards pass, we want to find the pixels that were generated
            // for each pixel in the input image the forward pass
            var effectiveXSize = [(alignCorners && yHeight > 1) ? xHeight - 1 : xHeight, (alignCorners && yWidth > 1) ? xWidth - 1 : xWidth];
            var effectiveYSize = [(alignCorners && yHeight > 1) ? yHeight - 1 : yHeight, (alignCorners && yWidth > 1) ? yWidth - 1 : yWidth];
            var heightScale = effectiveXSize[0] / effectiveYSize[0];
            var widthScale = effectiveXSize[1] / effectiveYSize[1];
            var invHeightScale = 1 / heightScale;
            var invWidthScale = 1 / widthScale;
            // This defines the size of the window of values around a particular
            // index in dy that we want to search for contributions to dx.
            var winHeight = (Math.ceil(invHeightScale) * 2) + 2;
            var winWidth = (Math.ceil(invWidthScale) * 2) + 2;
            // Loop over the output space.
            for (var b = 0; b < batch; b++) {
                var batchOffset = b * imagesStrides[0];
                for (var r = 0; r < xHeight; r++) {
                    var rowOffset = batchOffset + r * imagesStrides[1];
                    // Compute bounds for where in dy we will look
                    var startRLerp = Math.floor(r * invHeightScale);
                    var startDyR = Math.floor(startRLerp - (winHeight / 2));
                    for (var c = 0; c < xWidth; c++) {
                        var colOffset = rowOffset + c * imagesStrides[2];
                        // Compute bounds for where in dy we will look
                        var startCLerp = Math.floor(c * invWidthScale);
                        var startDyC = Math.floor(startCLerp - (winWidth / 2));
                        for (var d = 0; d < depth; d++) {
                            var accum = 0;
                            // loop over dy
                            for (var dyRIndex = 0; dyRIndex < winHeight; dyRIndex++) {
                                var dyR = dyRIndex + startDyR;
                                // Guard against the window exceeding the bounds of dy
                                if (dyR < 0 || dyR >= yHeight) {
                                    continue;
                                }
                                var dyROffset = batchOffset + dyR * dyStrides[1];
                                var sourceFracRow = dyR * heightScale;
                                var sourceNearestRow = Math.min(xHeight - 1, alignCorners ? Math.round(sourceFracRow) : Math.floor(sourceFracRow));
                                if (r !== sourceNearestRow) {
                                    continue;
                                }
                                for (var dyCIndex = 0; dyCIndex < winWidth; dyCIndex++) {
                                    var dyC = dyCIndex + startDyC;
                                    // Guard against the window exceeding the bounds of dy
                                    if (dyC < 0 || dyC >= yWidth) {
                                        continue;
                                    }
                                    var dyCOffset = dyROffset + dyC * dyStrides[2];
                                    var sourceFracCol = dyC * widthScale;
                                    var sourceNearestCol = Math.min(xWidth - 1, alignCorners ? Math.round(sourceFracCol) : Math.floor(sourceFracCol));
                                    if (c === sourceNearestCol) {
                                        accum += dyValues[dyCOffset + d];
                                    }
                                }
                            }
                            output[colOffset + d] = accum;
                        }
                    }
                }
            }
            return backend.makeTensorInfo(images.shape, images.dtype, output);
        }
        var resizeNearestNeighborGradConfig = {
            kernelName: tfjsCore.ResizeNearestNeighborGrad,
            backendName: 'cpu',
            kernelFunc: resizeNearestNeighborGrad
        };

        function reverse(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x;
            var dims = attrs.dims;
            assertNotComplex(x, 'reverse');
            var xRank = x.shape.length;
            var $dims = tfjsCore.util.parseAxisParam(dims, x.shape);
            if (xRank === 0) {
                return identity({
                    inputs: {
                        x: x
                    },
                    backend: backend
                });
            }
            var outBuf = new tfjsCore.TensorBuffer(x.shape, x.dtype);
            var xBuf = backend.bufferSync(x);
            var _loop_1 = function (i) {
                var outLoc = outBuf.indexToLoc(i);
                var inLoc = outLoc.slice();
                $dims.forEach(function (d) {
                    return inLoc[d] = x.shape[d] - 1 - inLoc[d];
                });
                outBuf.set.apply(outBuf, __spreadArray([xBuf.get.apply(xBuf, __spreadArray([], __read(inLoc), false))], __read(outLoc), false));
            };
            for (var i = 0; i < outBuf.size; i++) {
                _loop_1(i);
            }
            return backend.makeTensorInfo(outBuf.shape, outBuf.dtype, outBuf.values);
        }
        var reverseConfig = {
            kernelName: tfjsCore.Reverse,
            backendName: 'cpu',
            kernelFunc: reverse
        };

        var rotateWithOffsetConfig = {
            kernelName: tfjsCore.RotateWithOffset,
            backendName: 'cpu',
            kernelFunc: function (_a) {
                var inputs = _a.inputs
                    , attrs = _a.attrs
                    , backend = _a.backend;
                var image = inputs.image;
                var radians = attrs.radians
                    , fillValue = attrs.fillValue
                    , center = attrs.center;
                var cpuBackend = backend;
                var output = tfjsCore.util.getTypedArrayFromDType(image.dtype, tfjsCore.util.sizeFromShape(image.shape));
                var _b = __read(image.shape, 4)
                    , batch = _b[0]
                    , imageHeight = _b[1]
                    , imageWidth = _b[2]
                    , numChannels = _b[3];
                var _c = __read(tfjsCore.backend_util.getImageCenter(center, imageHeight, imageWidth), 2)
                    , centerX = _c[0]
                    , centerY = _c[1];
                var fullOpacityValue = 255;
                var sinFactor = Math.sin(radians);
                var cosFactor = Math.cos(radians);
                var imageVals = cpuBackend.data.get(image.dataId).values;
                for (var batchIdx = 0; batchIdx < batch; batchIdx++) {
                    var batchOffset = batchIdx * imageWidth * imageHeight * numChannels;
                    for (var row = 0; row < imageHeight; row++) {
                        var rowOffset = row * (imageWidth * numChannels);
                        for (var col = 0; col < imageWidth; col++) {
                            var colOffset = col * numChannels;
                            for (var channel = 0; channel < numChannels; channel++) {
                                var coords = [batch, row, col, channel];
                                var x = coords[2];
                                var y = coords[1];
                                // coordX/coordY are the result of rotating and translating x/y.
                                var coordX = (x - centerX) * cosFactor - (y - centerY) * sinFactor;
                                var coordY = (x - centerX) * sinFactor + (y - centerY) * cosFactor;
                                coordX = Math.round(coordX + centerX);
                                coordY = Math.round(coordY + centerY);
                                var outputValue = fillValue;
                                if (typeof fillValue !== 'number') {
                                    if (channel === 3) {
                                        outputValue = fullOpacityValue;
                                    } else {
                                        outputValue = fillValue[channel];
                                    }
                                }
                                // If the coordinate position falls within the image boundaries...
                                if (coordX >= 0 && coordX < imageWidth && coordY >= 0 && coordY < imageHeight) {
                                    // set the output to the image value at the coordinate position.
                                    var rotatedRowOffset = coordY * (imageWidth * numChannels);
                                    var rotatedColOffset = coordX * numChannels;
                                    var imageIdx = batchOffset + rotatedRowOffset + rotatedColOffset + channel;
                                    outputValue = imageVals[imageIdx];
                                }
                                var outIdx = batchOffset + rowOffset + colOffset + channel;
                                output[outIdx] = outputValue;
                            }
                        }
                    }
                }
                var dataId = cpuBackend.write(output, image.shape, image.dtype);
                return {
                    dataId: dataId,
                    shape: image.shape,
                    dtype: image.dtype
                };
            }
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the License);
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an AS IS BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var round = unaryKernelFunc(tfjsCore.Round, function (xi) {
            // The algorithm is based on banker's rounding.
            var base = Math.floor(xi);
            if (xi - base < 0.5) {
                return Math.floor(xi);
            } else if (xi - base > 0.5) {
                return Math.ceil(xi);
            } else {
                if (base % 2.0 === 0.0) {
                    return base;
                } else {
                    return base + 1.0;
                }
            }
        });
        var roundConfig = {
            kernelName: tfjsCore.Round,
            backendName: 'cpu',
            kernelFunc: round,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function scatterNd(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var indices = inputs.indices
                , updates = inputs.updates;
            var shape = attrs.shape;
            var _a = tfjsCore.backend_util.calculateShapes(updates, indices, shape)
                , sliceRank = _a.sliceRank
                , numUpdates = _a.numUpdates
                , sliceSize = _a.sliceSize
                , strides = _a.strides
                , outputSize = _a.outputSize;
            var sumDupeIndices = true;
            var indicesBuf = backend.bufferSync(indices);
            var updatesBuf = backend.bufferSync(updates);
            var outBuf = scatterImpl(indicesBuf, updatesBuf, shape, outputSize, sliceSize, numUpdates, sliceRank, strides, 0 /* defaultValue */
                , sumDupeIndices);
            return backend.makeTensorInfo(shape, outBuf.dtype, outBuf.values);
        }
        var scatterNdConfig = {
            kernelName: tfjsCore.ScatterNd,
            backendName: 'cpu',
            kernelFunc: scatterNd
        };

        /**
         * @license
         * Copyright 2022 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function lowerBound(array, value) {
            var left = 0;
            var right = array.length;
            var mid = 0;
            while (left < right) {
                mid = Math.floor((left + right) / 2);
                if (array[mid] < value) {
                    left = mid + 1;
                } else {
                    right = mid;
                }
            }
            return right;
        }
        function upperBound(array, value) {
            var left = 0;
            var right = array.length;
            var mid = 0;
            while (left < right) {
                mid = Math.floor((left + right) / 2);
                if (array[mid] <= value) {
                    left = mid + 1;
                } else {
                    right = mid;
                }
            }
            return right;
        }
        function searchSortedImpl(sortedInputs, values, batchSize, numInputs, numValues, side) {
            var output = tfjsCore.util.getArrayFromDType('int32', batchSize * numValues);
            for (var b = 0; b < batchSize; ++b) {
                var sortedInputsSlice = sortedInputs.slice(b * numInputs, (b + 1) * numInputs);
                var outputOffset = b * numValues;
                for (var i = 0; i < numValues; ++i) {
                    output[outputOffset + i] = side === 'left' ? lowerBound(sortedInputsSlice, values[i + outputOffset]) : upperBound(sortedInputsSlice, values[i + outputOffset]);
                }
            }
            return output;
        }

        /**
         * @license
         * Copyright 2022 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function searchSorted(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var sortedSequence = inputs.sortedSequence
                , values = inputs.values;
            var side = attrs.side;
            var $sortedSequence = backend.data.get(sortedSequence.dataId).values;
            var $values = backend.data.get(values.dataId).values;
            var output = searchSortedImpl($sortedSequence, $values, sortedSequence.shape[0], sortedSequence.shape[1], values.shape[1], side);
            return backend.makeTensorInfo(values.shape, 'int32', output);
        }
        var searchSortedConfig = {
            kernelName: tfjsCore.SearchSorted,
            backendName: 'cpu',
            kernelFunc: searchSorted,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function select(args) {
            var inputs = args.inputs
                , backend = args.backend;
            var condition = inputs.condition
                , t = inputs.t
                , e = inputs.e;
            assertNotComplex([condition, t, e], 'select');
            var conditionRank = condition.shape.length;
            var values = backend.data.get(condition.dataId).values;
            var tValues = backend.data.get(t.dataId).values;
            var eValues = backend.data.get(e.dataId).values;
            var resultDtype = tfjsCore.upcastType(t.dtype, e.dtype);
            var newValues = tfjsCore.util.makeZerosTypedArray(tfjsCore.util.sizeFromShape(t.shape), resultDtype);
            var index = 0;
            var offset = conditionRank === 0 || conditionRank > 1 || t.shape.length === 1 ? 1 : tfjsCore.util.sizeFromShape(t.shape.slice(1));
            for (var i = 0; i < values.length; i++) {
                for (var j = 0; j < offset; j++) {
                    if (values[i] === 1) {
                        newValues[index++] = tValues[i];
                    } else {
                        newValues[index++] = eValues[i];
                    }
                }
            }
            return backend.makeTensorInfo(t.shape, resultDtype, newValues);
        }
        var selectConfig = {
            kernelName: tfjsCore.Select,
            backendName: 'cpu',
            kernelFunc: select
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the License);
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an AS IS BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var scaleAlpha = tfjsCore.backend_util.SELU_SCALEALPHA;
        var scale = tfjsCore.backend_util.SELU_SCALE;
        var selu = unaryKernelFunc(tfjsCore.Selu, function (xi) {
            if (xi >= 0) {
                return scale * xi;
            } else {
                return scaleAlpha * (Math.exp(xi) - 1);
            }
        });
        var seluConfig = {
            kernelName: tfjsCore.Selu,
            backendName: 'cpu',
            kernelFunc: selu,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the License);
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an AS IS BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var sign = unaryKernelFunc(tfjsCore.Sign, function (xi) {
            if (xi < 0) {
                return -1;
            } else if (xi > 0) {
                return 1;
            } else {
                return 0;
            }
        });
        var signConfig = {
            kernelName: tfjsCore.Sign,
            backendName: 'cpu',
            kernelFunc: sign,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the License);
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an AS IS BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var sin = unaryKernelFunc(tfjsCore.Sin, function (xi) {
            return Math.sin(xi);
        });
        var sinConfig = {
            kernelName: tfjsCore.Sin,
            backendName: 'cpu',
            kernelFunc: sin,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the License);
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an AS IS BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var sinh = unaryKernelFunc(tfjsCore.Sinh, function (xi) {
            return Math.sinh(xi);
        });
        var sinhConfig = {
            kernelName: tfjsCore.Sinh,
            backendName: 'cpu',
            kernelFunc: sinh,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the License);
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an AS IS BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        // mirrors the implementation of tf.nn.softplus: https://goo.gl/vkcvwX
        // epsilon is the difference between 1.0 and the next representable float.
        // For a single precision 32 bit float this should be 2^-23, see:
        // https://math.byu.edu/~schow/work/IEEEFloatingPoint.htm
        var epsilon = 1.1920928955078125e-7;
        var threshold = Math.log(epsilon) + 2.0;
        var softplus = unaryKernelFunc(tfjsCore.Softplus, function (xi) {
            // Value above which exp(x) may overflow, but softplus(x) == x
            // is within machine epsilon.
            var tooLarge = xi > -threshold;
            // Value below which exp(x) may underflow, but softplus(x) == exp(x)
            // is within machine epsilon.
            var tooSmall = xi < threshold;
            var expX = Math.exp(xi);
            var result;
            if (tooSmall) {
                result = expX;
            } else if (tooLarge) {
                result = xi;
            } else {
                result = Math.log(1.0 + expX);
            }
            return result;
        });
        var softplusConfig = {
            kernelName: tfjsCore.Softplus,
            backendName: 'cpu',
            kernelFunc: softplus,
        };

        function spaceToBatchND(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x;
            var blockShape = attrs.blockShape
                , paddings = attrs.paddings;
            assertNotComplex([x], 'spaceToBatchND');
            var prod = tfjsCore.util.sizeFromShape(blockShape);
            var completePaddings = [[0, 0]];
            completePaddings.push.apply(completePaddings, __spreadArray([], __read(paddings), false));
            for (var i = 1 + blockShape.length; i < x.shape.length; ++i) {
                completePaddings.push([0, 0]);
            }
            var paddedX = padV2Config.kernelFunc({
                inputs: {
                    x: x
                },
                backend: backend,
                attrs: {
                    paddings: completePaddings,
                    constantValue: 0
                }
            });
            var reshapedPaddedShape = tfjsCore.backend_util.getReshaped(paddedX.shape, blockShape, prod, false);
            var permutedReshapedPaddedPermutation = tfjsCore.backend_util.getPermuted(reshapedPaddedShape.length, blockShape.length, false);
            var flattenShape = tfjsCore.backend_util.getReshapedPermuted(paddedX.shape, blockShape, prod, false);
            var reshapeInputs = {
                x: paddedX
            };
            var reshapeAttrs = {
                shape: reshapedPaddedShape
            };
            var paddedXReshaped = reshape({
                inputs: reshapeInputs,
                backend: backend,
                attrs: reshapeAttrs
            });
            var transposeInputs = {
                x: paddedXReshaped
            };
            var transposeAttrs = {
                perm: permutedReshapedPaddedPermutation
            };
            var paddedXT = transpose({
                inputs: transposeInputs,
                backend: backend,
                attrs: transposeAttrs
            });
            var resultReshapeInputs = {
                x: paddedXT
            };
            var resultReshapeAttrs = {
                shape: flattenShape
            };
            var result = reshape({
                inputs: resultReshapeInputs,
                backend: backend,
                attrs: resultReshapeAttrs
            });
            backend.disposeIntermediateTensorInfo(paddedX);
            backend.disposeIntermediateTensorInfo(paddedXReshaped);
            backend.disposeIntermediateTensorInfo(paddedXT);
            return result;
        }
        var spaceToBatchNDConfig = {
            kernelName: tfjsCore.SpaceToBatchND,
            backendName: 'cpu',
            kernelFunc: spaceToBatchND
        };

        function sparseFillEmptyRows(args) {
            var inputs = args.inputs
                , backend = args.backend;
            var indices = inputs.indices
                , values = inputs.values
                , denseShape = inputs.denseShape
                , defaultValue = inputs.defaultValue;
            if (denseShape.shape.length !== 1) {
                throw new Error("Dense shape must be a vector, saw:\n        ".concat(denseShape.shape));
            }
            if (indices.shape.length !== 2) {
                throw new Error("Indices must be a matrix, saw:\n        ".concat(indices.shape));
            }
            if (values.shape.length !== 1) {
                throw new Error("Values must be a vector, saw:\n        ".concat(values.shape));
            }
            if (defaultValue.shape.length !== 0) {
                throw new Error("Default value must be a scalar, saw:\n        ".concat(defaultValue.shape));
            }
            var $indices = backend.data.get(indices.dataId).values;
            var $values = backend.data.get(values.dataId).values;
            var $denseShape = backend.data.get(denseShape.dataId).values;
            var $defaultValue = backend.data.get(defaultValue.dataId).values[0];
            var _a = __read(sparseFillEmptyRowsImpl($indices, indices.shape, indices.dtype, $values, values.dtype, $denseShape, $defaultValue), 5)
                , outputIndices = _a[0]
                , outputIndicesShape = _a[1]
                , outputValues = _a[2]
                , emptyRowIndicator = _a[3]
                , reverseIndexMap = _a[4];
            return [backend.makeTensorInfo(outputIndicesShape, indices.dtype, outputIndices), backend.makeTensorInfo([outputIndicesShape[0]], values.dtype, outputValues), backend.makeTensorInfo([emptyRowIndicator.length], 'bool', new Uint8Array(emptyRowIndicator.map(function (value) {
                return Number(value);
            }))), backend.makeTensorInfo([reverseIndexMap.length], indices.dtype, new Int32Array(reverseIndexMap)),];
        }
        var sparseFillEmptyRowsConfig = {
            kernelName: tfjsCore.SparseFillEmptyRows,
            backendName: 'cpu',
            kernelFunc: sparseFillEmptyRows,
        };

        function sparseReshape(args) {
            var inputs = args.inputs
                , backend = args.backend;
            var inputIndices = inputs.inputIndices
                , inputShape = inputs.inputShape
                , newShape = inputs.newShape;
            if (inputIndices.shape.length !== 2) {
                throw new Error("Input indices should be a matrix but received shape\n        ".concat(inputIndices.shape));
            }
            if (inputShape.shape.length !== 1) {
                throw new Error("Input shape should be a vector but received shape\n        ".concat(inputShape.shape));
            }
            if (newShape.shape.length !== 1) {
                throw new Error("Target shape should be a vector but received shape ".concat(newShape.shape));
            }
            var $inputShape = Array.from(backend.data.get(inputShape.dataId).values);
            var $inputIndices = backend.data.get(inputIndices.dataId).values;
            var targetShape = Array.from(backend.data.get(newShape.dataId).values);
            var _a = __read(sparseReshapeImpl($inputIndices, inputIndices.shape, inputIndices.dtype, $inputShape, targetShape), 3)
                , newIndices = _a[0]
                , indicesShape = _a[1]
                , outputShape = _a[2];
            return [backend.makeTensorInfo(indicesShape, inputIndices.dtype, newIndices), backend.makeTensorInfo([outputShape.length], newShape.dtype, new Int32Array(outputShape)),];
        }
        var sparseReshapeConfig = {
            kernelName: tfjsCore.SparseReshape,
            backendName: 'cpu',
            kernelFunc: sparseReshape,
        };

        function sparseSegmentMean(args) {
            var inputs = args.inputs
                , backend = args.backend;
            var data = inputs.data
                , indices = inputs.indices
                , segmentIds = inputs.segmentIds;
            if (data.shape.length < 1) {
                throw new Error("Data should be at least 1 dimensional but received scalar");
            }
            if (indices.shape.length !== 1) {
                throw new Error("Indices should be a vector but received shape\n          ".concat(indices.shape));
            }
            if (segmentIds.shape.length !== 1) {
                throw new Error("Segment ids should be a vector but received shape\n          ".concat(segmentIds.shape));
            }
            if (indices.shape[0] !== segmentIds.shape[0]) {
                throw new Error("segmentIds and indices should have same size.");
            }
            var $data = backend.data.get(data.dataId).values;
            var $indices = backend.data.get(indices.dataId).values;
            var $segmentIds = backend.data.get(segmentIds.dataId).values;
            var _a = __read(sparseSegmentReductionImpl($data, data.shape, data.dtype, $indices, $segmentIds, true), 2)
                , outputData = _a[0]
                , outputDataShape = _a[1];
            return backend.makeTensorInfo(outputDataShape, data.dtype, outputData);
        }
        var sparseSegmentMeanConfig = {
            kernelName: tfjsCore.SparseSegmentMean,
            backendName: 'cpu',
            kernelFunc: sparseSegmentMean,
        };

        function sparseSegmentSum(args) {
            var inputs = args.inputs
                , backend = args.backend;
            var data = inputs.data
                , indices = inputs.indices
                , segmentIds = inputs.segmentIds;
            if (data.shape.length < 1) {
                throw new Error("Data should be at least 1 dimensional but received scalar");
            }
            if (indices.shape.length !== 1) {
                throw new Error("Indices should be a vector but received shape\n         ".concat(indices.shape));
            }
            if (segmentIds.shape.length !== 1) {
                throw new Error("Segment ids should be a vector but received shape\n         ".concat(segmentIds.shape));
            }
            if (indices.shape[0] !== segmentIds.shape[0]) {
                throw new Error("segmentIds and indices should have same size.");
            }
            var $data = backend.data.get(data.dataId).values;
            var $indices = backend.data.get(indices.dataId).values;
            var $segmentIds = backend.data.get(segmentIds.dataId).values;
            var _a = __read(sparseSegmentReductionImpl($data, data.shape, data.dtype, $indices, $segmentIds), 2)
                , outputData = _a[0]
                , outputDataShape = _a[1];
            return backend.makeTensorInfo(outputDataShape, data.dtype, outputData);
        }
        var sparseSegmentSumConfig = {
            kernelName: tfjsCore.SparseSegmentSum,
            backendName: 'cpu',
            kernelFunc: sparseSegmentSum,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function sparseToDense(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var sparseIndices = inputs.sparseIndices
                , sparseValues = inputs.sparseValues
                , defaultValue = inputs.defaultValue;
            var outputShape = attrs.outputShape;
            var _a = tfjsCore.backend_util.calculateShapes(sparseValues, sparseIndices, outputShape)
                , sliceRank = _a.sliceRank
                , numUpdates = _a.numUpdates
                , sliceSize = _a.sliceSize
                , strides = _a.strides
                , outputSize = _a.outputSize;
            var sumDupeIndices = false;
            var indicesBuf = backend.bufferSync(sparseIndices);
            var outBuf;
            switch (sparseValues.dtype) {
                case 'bool':
                    {
                        var updatesBuf = backend.bufferSync(sparseValues);
                        var $defaultValue = Boolean(backend.data.get(defaultValue.dataId).values[0]);
                        outBuf = scatterImpl(indicesBuf, updatesBuf, outputShape, outputSize, sliceSize, numUpdates, sliceRank, strides, $defaultValue, sumDupeIndices);
                        break;
                    }
                case 'float32':
                    {
                        var updatesBuf = backend.bufferSync(sparseValues);
                        var $defaultValue = backend.data.get(defaultValue.dataId).values[0];
                        outBuf = scatterImpl(indicesBuf, updatesBuf, outputShape, outputSize, sliceSize, numUpdates, sliceRank, strides, $defaultValue, sumDupeIndices);
                        break;
                    }
                case 'int32':
                    {
                        var updatesBuf = backend.bufferSync(sparseValues);
                        var $defaultValue = backend.data.get(defaultValue.dataId).values[0];
                        outBuf = scatterImpl(indicesBuf, updatesBuf, outputShape, outputSize, sliceSize, numUpdates, sliceRank, strides, $defaultValue, sumDupeIndices);
                        break;
                    }
                case 'string':
                    {
                        var updatesBuf = backend.bufferSync(sparseValues);
                        var $defaultValue = tfjsCore.util.decodeString(backend.data.get(defaultValue.dataId).values[0]);
                        outBuf = scatterImpl(indicesBuf, updatesBuf, outputShape, outputSize, sliceSize, numUpdates, sliceRank, strides, $defaultValue, sumDupeIndices);
                        break;
                    }
                default:
                    throw new Error("Unsupported type ".concat(sparseValues.dtype));
            }
            return backend.makeTensorInfo(outputShape, outBuf.dtype, outBuf.values);
        }
        var sparseToDenseConfig = {
            kernelName: tfjsCore.SparseToDense,
            backendName: 'cpu',
            kernelFunc: sparseToDense
        };

        function splitV(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x;
            var numOrSizeSplits = attrs.numOrSizeSplits
                , axis = attrs.axis;
            var $axis = tfjsCore.util.parseAxisParam(axis, x.shape)[0];
            var splitSizes = tfjsCore.backend_util.prepareSplitSize(x, numOrSizeSplits, $axis);
            var begin = new Array(x.shape.length).fill(0);
            var size = x.shape.slice();
            return splitSizes.map(function (s) {
                var sliceSize = __spreadArray([], __read(size), false);
                sliceSize[$axis] = s;
                var sliceT = slice({
                    inputs: {
                        x: x
                    },
                    backend: backend,
                    attrs: {
                        begin: begin,
                        size: sliceSize
                    }
                });
                begin[$axis] += s;
                return sliceT;
            });
        }
        var splitVConfig = {
            kernelName: tfjsCore.SplitV,
            backendName: 'cpu',
            kernelFunc: splitV
        };

        /**
         * @license
         * Copyright 2019 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var squareConfig = {
            kernelName: tfjsCore.Square,
            backendName: 'cpu',
            kernelFunc: function (_a) {
                var inputs = _a.inputs
                    , backend = _a.backend;
                var x = inputs.x;
                var cpuBackend = backend;
                assertNotComplex(x, 'square');
                var values = cpuBackend.data.get(x.dataId).values;
                var newValues = new Float32Array(values.length);
                for (var i = 0; i < values.length; ++i) {
                    var value = values[i];
                    newValues[i] = value * value;
                }
                var dataId = cpuBackend.write(newValues, x.shape, x.dtype);
                return {
                    dataId: dataId,
                    shape: x.shape,
                    dtype: x.dtype
                };
            }
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the License);
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an AS IS BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var step = unaryKernelFunc(tfjsCore.Step, function (xi, attrs) {
            var stepAttrs = attrs;
            if (isNaN(xi)) {
                return NaN;
            } else {
                return xi > 0 ? 1 : stepAttrs.alpha;
            }
        });
        var stepConfig = {
            kernelName: tfjsCore.Step,
            backendName: 'cpu',
            kernelFunc: step,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function stridedSlice(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x;
            var begin = attrs.begin
                , end = attrs.end
                , strides = attrs.strides
                , beginMask = attrs.beginMask
                , endMask = attrs.endMask
                , ellipsisMask = attrs.ellipsisMask
                , newAxisMask = attrs.newAxisMask
                , shrinkAxisMask = attrs.shrinkAxisMask;
            assertNotComplex(x, 'stridedSlice');
            var _a = tfjsCore.slice_util.sliceInfo(x.shape, begin, end, strides, beginMask, endMask, ellipsisMask, newAxisMask, shrinkAxisMask)
                , finalShapeSparse = _a.finalShapeSparse
                , finalShape = _a.finalShape
                , isIdentity = _a.isIdentity
                , sliceDim0 = _a.sliceDim0
                , isSimpleSlice = _a.isSimpleSlice
                , $begin = _a.begin
                , $end = _a.end
                , $strides = _a.strides;
            var result;
            // ref:
            // https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/kernels/strided_slice_op.cc
            if (isIdentity) {
                // Optimization #1, slice is a no-op plus reshape
                result = reshape({
                    inputs: {
                        x: x
                    },
                    backend: backend,
                    attrs: {
                        shape: finalShape
                    }
                });
            } else if (sliceDim0 || isSimpleSlice) {
                // Optimization #2, slice is memory contiguous (only occurs in dim 0)
                tfjsCore.util.assert(x.shape.length >= 1, function () {
                    return "Input must have rank at least 1, got: ".concat(x.shape.length);
                });
                var size = tfjsCore.slice_util.computeOutShape($begin, $end, $strides);
                // To tolerate begin[0] > end[0] (a 0-output slice), we min(begin, end).
                var sliced = slice({
                    inputs: {
                        x: x
                    },
                    backend: backend,
                    attrs: {
                        begin: $begin,
                        size: size
                    }
                });
                result = reshape({
                    inputs: {
                        x: sliced
                    },
                    backend: backend,
                    attrs: {
                        shape: finalShape
                    }
                });
                backend.disposeIntermediateTensorInfo(sliced);
            } else {
                var xBuf = backend.bufferSync(x);
                var outBuf = stridedSliceImpl(finalShapeSparse, xBuf, $strides, $begin);
                result = backend.makeTensorInfo(finalShape, outBuf.dtype, outBuf.values);
            }
            return result;
        }
        var stridedSliceConfig = {
            kernelName: tfjsCore.StridedSlice,
            backendName: 'cpu',
            kernelFunc: stridedSlice
        };

        function stringNGrams(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var separator = attrs.separator
                , nGramWidths = attrs.nGramWidths
                , leftPad = attrs.leftPad
                , rightPad = attrs.rightPad
                , padWidth = attrs.padWidth
                , preserveShortSequences = attrs.preserveShortSequences;
            var data = inputs.data
                , dataSplits = inputs.dataSplits;
            var $data = backend.data.get(data.dataId).values;
            var $dataSplits = backend.data.get(dataSplits.dataId).values;
            var _a = __read(stringNGramsImpl($data, $dataSplits, separator, nGramWidths, leftPad, rightPad, padWidth, preserveShortSequences), 2)
                , nGrams = _a[0]
                , nGramsSplits = _a[1];
            return [backend.makeTensorInfo([nGrams.length], 'string', nGrams), backend.makeTensorInfo(dataSplits.shape, 'int32', nGramsSplits),];
        }
        var stringNGramsConfig = {
            kernelName: tfjsCore.StringNGrams,
            backendName: 'cpu',
            kernelFunc: stringNGrams,
        };

        function stringSplit(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var skipEmpty = attrs.skipEmpty;
            var input = inputs.input
                , delimiter = inputs.delimiter;
            if (input.dtype !== 'string') {
                throw new Error('Input must be of datatype string');
            }
            if (input.shape.length !== 1) {
                throw new Error("Input must be a vector, got shape: ".concat(input.shape));
            }
            if (delimiter.shape.length !== 0) {
                throw new Error("Delimiter must be a scalar, got shape: ".concat(delimiter.shape));
            }
            var $input = backend.data.get(input.dataId).values;
            var $delimiter = backend.data.get(delimiter.dataId).values[0];
            var _a = __read(stringSplitImpl($input, $delimiter, skipEmpty), 3)
                , indices = _a[0]
                , values = _a[1]
                , shape = _a[2];
            var outputSize = values.length;
            return [backend.makeTensorInfo([outputSize, 2], 'int32', indices), backend.makeTensorInfo([outputSize], 'string', values), backend.makeTensorInfo([2], 'int32', new Int32Array(shape))];
        }
        var stringSplitConfig = {
            kernelName: tfjsCore.StringSplit,
            backendName: 'cpu',
            kernelFunc: stringSplit,
        };

        /**
         * @license
         * Copyright 2021 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function stringToHashBucketFast(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var numBuckets = attrs.numBuckets;
            var input = inputs.input;
            if (input.dtype !== 'string') {
                throw new Error('Input must be of datatype string');
            }
            if (numBuckets <= 0) {
                throw new Error("Number of buckets must be at least 1");
            }
            var $input = backend.data.get(input.dataId).values;
            var output = stringToHashBucketFastImpl($input, numBuckets);
            return backend.makeTensorInfo(input.shape, 'int32', output);
        }
        var stringToHashBucketFastConfig = {
            kernelName: tfjsCore.StringToHashBucketFast,
            backendName: 'cpu',
            kernelFunc: stringToHashBucketFast,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the License);
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an AS IS BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var tan = unaryKernelFunc(tfjsCore.Tan, function (xi) {
            return Math.tan(xi);
        });
        var tanConfig = {
            kernelName: tfjsCore.Tan,
            backendName: 'cpu',
            kernelFunc: tan,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the License);
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an AS IS BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var tanh = unaryKernelFunc(tfjsCore.Tanh, function (xi) {
            return Math.tanh(xi);
        });
        var tanhConfig = {
            kernelName: tfjsCore.Tanh,
            backendName: 'cpu',
            kernelFunc: tanh,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function tile(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x;
            var reps = attrs.reps;
            assertNotComplex(x, 'tile');
            var outBuf = tileImpl(backend.bufferSync(x), reps);
            return backend.makeTensorInfo(outBuf.shape, outBuf.dtype, outBuf.values);
        }
        var tileConfig = {
            kernelName: tfjsCore.Tile,
            backendName: 'cpu',
            kernelFunc: tile
        };

        function topK(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x;
            var k = attrs.k
                , sorted = attrs.sorted;
            assertNotComplex(x, 'topk');
            var xVals = backend.data.get(x.dataId).values;
            var _a = __read(topKImpl(xVals, x.shape, x.dtype, k, sorted), 2)
                , allTopKVals = _a[0]
                , allTopKIndices = _a[1];
            return [backend.makeTensorInfo(allTopKVals.shape, allTopKVals.dtype, allTopKVals.values), backend.makeTensorInfo(allTopKIndices.shape, allTopKIndices.dtype, allTopKIndices.values)];
        }
        var topKConfig = {
            kernelName: tfjsCore.TopK,
            backendName: 'cpu',
            kernelFunc: topK
        };

        function transform(args) {
            var inputs = args.inputs
                , attrs = args.attrs
                , backend = args.backend;
            var image = inputs.image
                , transforms = inputs.transforms;
            var interpolation = attrs.interpolation
                , fillMode = attrs.fillMode
                , fillValue = attrs.fillValue
                , outputShape = attrs.outputShape;
            var _a = __read(image.shape, 4)
                , batch = _a[0]
                , imageHeight = _a[1]
                , imageWidth = _a[2]
                , numChannels = _a[3];
            var _b = __read(outputShape != null ? outputShape : [imageHeight, imageWidth], 2)
                , outHeight = _b[0]
                , outWidth = _b[1];
            var outShape = [batch, outHeight, outWidth, numChannels];
            var inStrides = tfjsCore.util.computeStrides(image.shape);
            var batchInStride = inStrides[0];
            var rowInStride = inStrides[1];
            var colInStride = inStrides[2];
            var outStrides = tfjsCore.util.computeStrides(outShape);
            var batchOutStride = outStrides[0];
            var rowOutStride = outStrides[1];
            var colOutStride = outStrides[2];
            var outVals = tfjsCore.util.getTypedArrayFromDType(image.dtype, tfjsCore.util.sizeFromShape(outShape));
            outVals.fill(fillValue);
            var imageVals = backend.data.get(image.dataId).values;
            var transformVals = backend.data.get(transforms.dataId).values;
            // Ref TF implementation:
            // https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/kernels/image/image_ops.h
            for (var b = 0; b < batch; ++b) {
                var transform_1 = transforms.shape[0] === 1 ? transformVals : transformVals.subarray(b * 8, b * 8 + 8);
                for (var outY = 0; outY < outHeight; ++outY) {
                    for (var outX = 0; outX < outWidth; ++outX) {
                        for (var channel = 0; channel < numChannels; ++channel) {
                            var val = void 0;
                            var projection = transform_1[6] * outX + transform_1[7] * outY + 1;
                            if (projection === 0) {
                                // Return the fill value for infinite coordinates,
                                // which are outside the input image
                                continue;
                            }
                            var inX = (transform_1[0] * outX + transform_1[1] * outY + transform_1[2]) / projection;
                            var inY = (transform_1[3] * outX + transform_1[4] * outY + transform_1[5]) / projection;
                            var x = mapCoord(inX, imageWidth, fillMode);
                            var y = mapCoord(inY, imageHeight, fillMode);
                            switch (interpolation) {
                                case 'nearest':
                                    val = nearestInterpolation(imageVals, imageHeight, imageWidth, batchInStride, rowInStride, colInStride, b, y, x, channel, fillValue);
                                    break;
                                case 'bilinear':
                                    val = bilinearInterpolation(imageVals, imageHeight, imageWidth, batchInStride, rowInStride, colInStride, b, y, x, channel, fillValue);
                                    break;
                                default:
                                    throw new Error("Error in Transform: Expect 'nearest' or " + "'bilinear', but got ".concat(interpolation));
                            }
                            var ind = b * batchOutStride + outY * rowOutStride + outX * colOutStride + channel;
                            outVals[ind] = val;
                        }
                    }
                }
                return backend.makeTensorInfo(outShape, image.dtype, outVals);
            }
            var dataId = backend.write(outVals, outShape, image.dtype);
            return {
                dataId: dataId,
                shape: image.shape,
                dtype: image.dtype
            };
        }
        var transformConfig = {
            kernelName: tfjsCore.Transform,
            backendName: 'cpu',
            kernelFunc: transform
        };
        function mapCoord(outCoord, len, mode) {
            switch (mode) {
                case 'reflect':
                    return mapCoordReflect(outCoord, len);
                case 'wrap':
                    return mapCoordWrap(outCoord, len);
                case 'nearest':
                    return mapCoordNearest(outCoord, len);
                case 'constant':
                default:
                    return mapCoordConstant(outCoord);
            }
        }
        function mapCoordReflect(outCoord, len) {
            // Reflect [abcd] to [dcba|abcd|dcba].
            var inCoord = outCoord;
            if (inCoord < 0) {
                if (len <= 1) {
                    inCoord = 0;
                } else {
                    var sz2 = 2 * len;
                    if (inCoord < sz2) {
                        inCoord = sz2 * Math.trunc(-inCoord / sz2) + inCoord;
                    }
                    inCoord = inCoord < -len ? inCoord + sz2 : -inCoord - 1;
                }
            } else if (inCoord > len - 1) {
                if (len <= 1) {
                    inCoord = 0;
                } else {
                    var sz2 = 2 * len;
                    inCoord -= sz2 * Math.trunc(inCoord / sz2);
                    if (inCoord >= len) {
                        inCoord = sz2 - inCoord - 1;
                    }
                }
            }
            // clamp is necessary because when outCoord = 3.5 and len = 4,
            // inCoord = 3.5 and will be rounded to 4 in nearest interpolation.
            return tfjsCore.util.clamp(0, inCoord, len - 1);
        }
        function mapCoordWrap(outCoord, len) {
            // Wrap [abcd] to [abcd|abcd|abcd].
            var inCoord = outCoord;
            if (inCoord < 0) {
                if (len <= 1) {
                    inCoord = 0;
                } else {
                    var sz = len - 1;
                    inCoord += len * (Math.trunc(-inCoord / sz) + 1);
                }
            } else if (inCoord > len - 1) {
                if (len <= 1) {
                    inCoord = 0;
                } else {
                    var sz = len - 1;
                    inCoord -= len * Math.trunc(inCoord / sz);
                }
            }
            // clamp is necessary because when outCoord = -0.5 and len = 4,
            // inCoord = 3.5 and will be rounded to 4 in nearest interpolation.
            return tfjsCore.util.clamp(0, inCoord, len - 1);
        }
        function mapCoordConstant(outCoord, len) {
            return outCoord;
        }
        function mapCoordNearest(outCoord, len) {
            return tfjsCore.util.clamp(0, outCoord, len - 1);
        }
        function readWithFillValue(imageVals, imageHeight, imageWidth, batchStride, rowStride, colStride, batch, y, x, channel, fillValue) {
            var ind = batch * batchStride + y * rowStride + x * colStride + channel;
            if (0 <= y && y < imageHeight && 0 <= x && x < imageWidth) {
                return imageVals[ind];
            } else {
                return fillValue;
            }
        }
        function nearestInterpolation(imageVals, imageHeight, imageWidth, batchStride, rowStride, colStride, batch, y, x, channel, fillValue) {
            var $y = Math.round(y);
            var $x = Math.round(x);
            return readWithFillValue(imageVals, imageHeight, imageWidth, batchStride, rowStride, colStride, batch, $y, $x, channel, fillValue);
        }
        function bilinearInterpolation(imageVals, imageHeight, imageWidth, batchStride, rowStride, colStride, batch, y, x, channel, fillValue) {
            var yFloor = Math.floor(y);
            var xFloor = Math.floor(x);
            var yCeil = yFloor + 1;
            var xCeil = xFloor + 1;
            // f(x, yFloor) = (xCeil - x) / (xCeil - xFloor) * f(xFloor, yFloor)
            //               + (x - xFloor) / (xCeil - xFloor) * f(xCeil, yFloor)
            var valueYFloor = (xCeil - x) * readWithFillValue(imageVals, imageHeight, imageWidth, batchStride, rowStride, colStride, batch, yFloor, xFloor, channel, fillValue) + (x - xFloor) * readWithFillValue(imageVals, imageHeight, imageWidth, batchStride, rowStride, colStride, batch, yFloor, xCeil, channel, fillValue);
            // f(x, yCeil) = (xCeil - x) / (xCeil - xFloor) * f(xFloor, yCeil)
            //             + (x - xFloor) / (xCeil - xFloor) * f(xCeil, yCeil)
            var valueYCeil = (xCeil - x) * readWithFillValue(imageVals, imageHeight, imageWidth, batchStride, rowStride, colStride, batch, yCeil, xFloor, channel, fillValue) + (x - xFloor) * readWithFillValue(imageVals, imageHeight, imageWidth, batchStride, rowStride, colStride, batch, yCeil, xCeil, channel, fillValue);
            // f(x, y) = (yCeil - y) / (yCeil - yFloor) * f(x, yFloor)
            //         + (y - yFloor) / (yCeil - yFloor) * f(x, yCeil)
            return (yCeil - y) * valueYFloor + (y - yFloor) * valueYCeil;
        }

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the License);
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an AS IS BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function unique(args) {
            var inputs = args.inputs
                , attrs = args.attrs
                , backend = args.backend;
            var axis = attrs.axis;
            var x = inputs.x;
            assertNotComplex(x, 'unique');
            var values = backend.data.get(x.dataId).values;
            var _a = uniqueImpl(values, axis, x.shape, x.dtype)
                , outputValues = _a.outputValues
                , outputShape = _a.outputShape
                , indices = _a.indices;
            return [backend.makeTensorInfo(outputShape, x.dtype, outputValues), backend.makeTensorInfo([indices.length], 'int32', indices),];
        }
        var uniqueConfig = {
            kernelName: tfjsCore.Unique,
            backendName: 'cpu',
            kernelFunc: unique,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function unpack(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var value = inputs.value;
            var axis = attrs.axis;
            if (axis < 0) {
                axis += value.shape.length;
            }
            var valueRank = value.shape.length;
            var num = value.shape[axis];
            var outShape = new Array(valueRank - 1);
            var outIndex = 0;
            for (var i = 0; i < valueRank; i++) {
                if (i !== axis) {
                    outShape[outIndex++] = value.shape[i];
                }
            }
            var begin = new Array(valueRank).fill(0);
            var size = value.shape.slice();
            size[axis] = 1;
            var res = new Array(num);
            for (var i = 0; i < res.length; i++) {
                begin[axis] = i;
                var tempRes = slice({
                    inputs: {
                        x: value
                    },
                    backend: backend,
                    attrs: {
                        begin: begin,
                        size: size
                    }
                });
                res[i] = reshape({
                    inputs: {
                        x: tempRes
                    },
                    backend: backend,
                    attrs: {
                        shape: outShape
                    }
                });
                backend.disposeIntermediateTensorInfo(tempRes);
            }
            return res;
        }
        var unpackConfig = {
            kernelName: tfjsCore.Unpack,
            backendName: 'cpu',
            kernelFunc: unpack
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function unsortedSegmentSum(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x
                , segmentIds = inputs.segmentIds;
            var numSegments = attrs.numSegments;
            assertNotComplex(x, 'unsortedSegmentSum');
            var xRank = x.shape.length;
            var segmentIdsRank = segmentIds.shape.length;
            var res = [];
            var intermediates = [];
            // Reshape the segment id's so that they can be broadcast with
            // x. The new shape should be [segmentIds.shape, 1, ..., 1]
            var numIters = xRank - segmentIdsRank;
            var $segmentIds = segmentIds;
            for (var i = 0; i < numIters; ++i) {
                var expanded = expandDims({
                    inputs: {
                        input: $segmentIds
                    },
                    backend: backend,
                    attrs: {
                        dim: i + 1
                    }
                });
                $segmentIds = expanded;
                intermediates.push(expanded);
            }
            for (var i = 0; i < numSegments; ++i) {
                var scalarValue = tfjsCore.util.createScalarValue(i, 'int32');
                var segmentId = backend.makeTensorInfo([], 'int32', scalarValue);
                var mask = equal({
                    inputs: {
                        a: segmentId,
                        b: $segmentIds
                    },
                    backend: backend
                });
                var maskCasted = cast({
                    inputs: {
                        x: mask
                    },
                    backend: backend,
                    attrs: {
                        dtype: 'float32'
                    }
                });
                var mul = multiply({
                    inputs: {
                        a: maskCasted,
                        b: x
                    },
                    backend: backend
                });
                var sumTensorInfo = sum({
                    inputs: {
                        x: mul
                    },
                    backend: backend,
                    attrs: {
                        axis: 0,
                        keepDims: false
                    }
                });
                res.push(sumTensorInfo);
                intermediates.push(segmentId);
                intermediates.push(mask);
                intermediates.push(maskCasted);
                intermediates.push(mul);
                intermediates.push(sumTensorInfo);
            }
            var result = pack({
                inputs: res,
                backend: backend,
                attrs: {
                    axis: 0
                }
            });
            intermediates.forEach(function (t) {
                return backend.disposeIntermediateTensorInfo(t);
            });
            return result;
        }
        var unsortedSegmentSumConfig = {
            kernelName: tfjsCore.UnsortedSegmentSum,
            backendName: 'cpu',
            kernelFunc: unsortedSegmentSum
        };

        var e_1, _a;
        // List all kernel configs here
        var kernelConfigs = [_fusedMatMulConfig, absConfig, acosConfig, acoshConfig, addConfig, addNConfig, allConfig, anyConfig, argMaxConfig, argMinConfig, asinConfig, asinhConfig, atanConfig, atan2Config, atanhConfig, avgPoolConfig, avgPool3DConfig, avgPool3DGradConfig, avgPoolGradConfig, batchMatMulConfig, batchNormConfig, batchToSpaceNDConfig, bincountConfig, broadcastArgsConfig, castConfig, ceilConfig, clipByValueConfig, complexConfig, complexAbsConfig, concatConfig, conv2DConfig, conv2DBackpropFilterConfig, conv2DBackpropInputConfig, conv3DConfig, conv3DBackpropFilterV2Config, conv3DBackpropInputV2Config, cosConfig, coshConfig, cropAndResizeConfig, cumprodConfig, cumsumConfig, denseBincountConfig, depthToSpaceConfig, depthwiseConv2dNativeConfig, depthwiseConv2dNativeBackpropFilterConfig, depthwiseConv2dNativeBackpropInputConfig, diagConfig, dilation2DConfig, dilation2DBackpropFilterConfig, dilation2DBackpropInputConfig, einsumConfig, eluConfig, eluGradConfig, equalConfig, erfConfig, expConfig, expandDimsConfig, expm1Config, fftConfig, fillConfig, flipLeftRightConfig, floorConfig, floorDivConfig, fusedConv2DConfig, fusedDepthwiseConv2DConfig, gatherNdConfig, gatherV2Config, greaterConfig, greaterEqualConfig, identityConfig, ifftConfig, imagConfig, isFiniteConfig, isInfConfig, isNaNConfig, leakyReluConfig, lessConfig, lessEqualConfig, linSpaceConfig, logConfig, log1pConfig, logicalAndConfig, logicalNotConfig, logicalOrConfig, LRNConfig, LRNGradConfig, maxConfig, maximumConfig, maxPoolConfig, maxPool3DConfig, maxPool3DGradConfig, maxPoolGradConfig, maxPoolWithArgmaxConfig, meanConfig, minConfig, minimumConfig, mirrorPadConfig, modConfig, multinomialConfig, multiplyConfig, negConfig, nonMaxSuppressionV3Config, nonMaxSuppressionV4Config, nonMaxSuppressionV5Config, notEqualConfig, oneHotConfig, onesLikeConfig, packConfig, padV2Config, powConfig, preluConfig, prodConfig, raggedGatherConfig, raggedRangeConfig, raggedTensorToTensorConfig, rangeConfig, realConfig, realDivConfig, reciprocalConfig, reluConfig, relu6Config, reshapeConfig, resizeBilinearConfig, resizeBilinearGradConfig, resizeNearestNeighborConfig, resizeNearestNeighborGradConfig, reverseConfig, rotateWithOffsetConfig, roundConfig, rsqrtConfig, scatterNdConfig, searchSortedConfig, selectConfig, seluConfig, sigmoidConfig, signConfig, sinConfig, sinhConfig, sliceConfig, softmaxConfig, softplusConfig, spaceToBatchNDConfig, sparseFillEmptyRowsConfig, sparseReshapeConfig, sparseSegmentMeanConfig, sparseSegmentSumConfig, sparseToDenseConfig, splitVConfig, sqrtConfig, squareConfig, squaredDifferenceConfig, stepConfig, stridedSliceConfig, stringNGramsConfig, stringSplitConfig, stringToHashBucketFastConfig, subConfig, sumConfig, tanConfig, tanhConfig, tileConfig, topKConfig, transformConfig, transposeConfig, uniqueConfig, unpackConfig, unsortedSegmentSumConfig, zerosLikeConfig];
        try {
            for (var kernelConfigs_1 = __values(kernelConfigs), kernelConfigs_1_1 = kernelConfigs_1.next(); !kernelConfigs_1_1.done; kernelConfigs_1_1 = kernelConfigs_1.next()) {
                var kernelConfig = kernelConfigs_1_1.value;
                tfjsCore.registerKernel(kernelConfig);
            }
        } catch (e_1_1) {
            e_1 = {
                error: e_1_1
            };
        } finally {
            try {
                if (kernelConfigs_1_1 && !kernelConfigs_1_1.done && (_a = kernelConfigs_1.return))
                    _a.call(kernelConfigs_1);
            } finally {
                if (e_1)
                    throw e_1.error;
            }
        }

        exports.MathBackendCPU = MathBackendCPU;
        exports.shared = shared;
        exports.version_cpu = version;

    }
        , {
        "@tensorflow/tfjs-core": 506,
        "seedrandom": 638
    }],
    8: [function (require, module, exports) {
        (function (process, global, __filename, __argument0, __argument1, __argument2, __argument3, __dirname) {
            (function () {
                /**
                 * @license
                 * Copyright 2022 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                'use strict';

                Object.defineProperty(exports, '__esModule', {
                    value: true
                });

                var tfjsCore = require('@tensorflow/tfjs-core');
                var require$$0 = require('path');
                var require$$1 = require('fs');
                var require$$2 = require('worker_threads');
                var require$$3 = require('perf_hooks');
                var require$$4 = require('os');

                function _interopDefaultLegacy(e) {
                    return e && typeof e === 'object' && 'default' in e ? e : {
                        'default': e
                    };
                }

                function _mergeNamespaces(n, m) {
                    m.forEach(function (e) {
                        Object.keys(e).forEach(function (k) {
                            if (k !== 'default' && !(k in n)) {
                                var d = Object.getOwnPropertyDescriptor(e, k);
                                Object.defineProperty(n, k, d.get ? d : {
                                    enumerable: true,
                                    get: function () {
                                        return e[k];
                                    }
                                });
                            }
                        });
                    });
                    return n;
                }

                var require$$0__default = /*#__PURE__*/
                    _interopDefaultLegacy(require$$0);
                var require$$1__default = /*#__PURE__*/
                    _interopDefaultLegacy(require$$1);
                var require$$2__default = /*#__PURE__*/
                    _interopDefaultLegacy(require$$2);
                var require$$3__default = /*#__PURE__*/
                    _interopDefaultLegacy(require$$3);
                var require$$4__default = /*#__PURE__*/
                    _interopDefaultLegacy(require$$4);

                /******************************************************************************
                Copyright (c) Microsoft Corporation.
                
                Permission to use, copy, modify, and/or distribute this software for any
                purpose with or without fee is hereby granted.
                
                THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
                REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
                AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
                INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
                LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
                OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
                PERFORMANCE OF THIS SOFTWARE.
                ***************************************************************************** */
                /* global Reflect, Promise */
                var extendStatics = function (d, b) {
                    extendStatics = Object.setPrototypeOf || ({
                        __proto__: []
                    } instanceof Array && function (d, b) {
                        d.__proto__ = b;
                    }
                    ) || function (d, b) {
                        for (var p in b)
                            if (Object.prototype.hasOwnProperty.call(b, p))
                                d[p] = b[p];
                    }
                        ;
                    return extendStatics(d, b);
                };
                function __extends(d, b) {
                    if (typeof b !== "function" && b !== null)
                        throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
                    extendStatics(d, b);
                    function __() {
                        this.constructor = d;
                    }
                    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype,
                        new __());
                }
                function __awaiter(thisArg, _arguments, P, generator) {
                    function adopt(value) {
                        return value instanceof P ? value : new P(function (resolve) {
                            resolve(value);
                        }
                        );
                    }
                    return new (P || (P = Promise))(function (resolve, reject) {
                        function fulfilled(value) {
                            try {
                                step(generator.next(value));
                            } catch (e) {
                                reject(e);
                            }
                        }
                        function rejected(value) {
                            try {
                                step(generator["throw"](value));
                            } catch (e) {
                                reject(e);
                            }
                        }
                        function step(result) {
                            result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
                        }
                        step((generator = generator.apply(thisArg, _arguments || [])).next());
                    }
                    );
                }
                function __generator(thisArg, body) {
                    var _ = {
                        label: 0,
                        sent: function () {
                            if (t[0] & 1)
                                throw t[1];
                            return t[1];
                        },
                        trys: [],
                        ops: []
                    }, f, y, t, g;
                    return g = {
                        next: verb(0),
                        "throw": verb(1),
                        "return": verb(2)
                    },
                        typeof Symbol === "function" && (g[Symbol.iterator] = function () {
                            return this;
                        }
                        ),
                        g;
                    function verb(n) {
                        return function (v) {
                            return step([n, v]);
                        }
                            ;
                    }
                    function step(op) {
                        if (f)
                            throw new TypeError("Generator is already executing.");
                        while (_)
                            try {
                                if (f = 1,
                                    y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y),
                                        0) : y.next) && !(t = t.call(y, op[1])).done)
                                    return t;
                                if (y = 0,
                                    t)
                                    op = [op[0] & 2, t.value];
                                switch (op[0]) {
                                    case 0:
                                    case 1:
                                        t = op;
                                        break;
                                    case 4:
                                        _.label++;
                                        return {
                                            value: op[1],
                                            done: false
                                        };
                                    case 5:
                                        _.label++;
                                        y = op[1];
                                        op = [0];
                                        continue;
                                    case 7:
                                        op = _.ops.pop();
                                        _.trys.pop();
                                        continue;
                                    default:
                                        if (!(t = _.trys,
                                            t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
                                            _ = 0;
                                            continue;
                                        }
                                        if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) {
                                            _.label = op[1];
                                            break;
                                        }
                                        if (op[0] === 6 && _.label < t[1]) {
                                            _.label = t[1];
                                            t = op;
                                            break;
                                        }
                                        if (t && _.label < t[2]) {
                                            _.label = t[2];
                                            _.ops.push(op);
                                            break;
                                        }
                                        if (t[2])
                                            _.ops.pop();
                                        _.trys.pop();
                                        continue;
                                }
                                op = body.call(thisArg, _);
                            } catch (e) {
                                op = [6, e];
                                y = 0;
                            } finally {
                                f = t = 0;
                            }
                        if (op[0] & 5)
                            throw op[1];
                        return {
                            value: op[0] ? op[1] : void 0,
                            done: true
                        };
                    }
                }
                function __values(o) {
                    var s = typeof Symbol === "function" && Symbol.iterator
                        , m = s && o[s]
                        , i = 0;
                    if (m)
                        return m.call(o);
                    if (o && typeof o.length === "number")
                        return {
                            next: function () {
                                if (o && i >= o.length)
                                    o = void 0;
                                return {
                                    value: o && o[i++],
                                    done: !o
                                };
                            }
                        };
                    throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
                }
                function __read(o, n) {
                    var m = typeof Symbol === "function" && o[Symbol.iterator];
                    if (!m)
                        return o;
                    var i = m.call(o), r, ar = [], e;
                    try {
                        while ((n === void 0 || n-- > 0) && !(r = i.next()).done)
                            ar.push(r.value);
                    } catch (error) {
                        e = {
                            error: error
                        };
                    } finally {
                        try {
                            if (r && !r.done && (m = i["return"]))
                                m.call(i);
                        } finally {
                            if (e)
                                throw e.error;
                        }
                    }
                    return ar;
                }
                function __spreadArray(to, from, pack) {
                    if (pack || arguments.length === 2)
                        for (var i = 0, l = from.length, ar; i < l; i++) {
                            if (ar || !(i in from)) {
                                if (!ar)
                                    ar = Array.prototype.slice.call(from, 0, i);
                                ar[i] = from[i];
                            }
                        }
                    return to.concat(ar || Array.prototype.slice.call(from));
                }

                /**
                 * @license
                 * Copyright 2019 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                // This enum must align with the enum defined in cc/backend.h.
                var CppDType;
                (function (CppDType) {
                    CppDType[CppDType["float32"] = 0] = "float32";
                    CppDType[CppDType["int32"] = 1] = "int32";
                    CppDType[CppDType["bool"] = 2] = "bool";
                    CppDType[CppDType["string"] = 3] = "string";
                    CppDType[CppDType["complex64"] = 4] = "complex64";
                }
                )(CppDType || (CppDType = {}));
                // Must match enum in cc/fusable_activations.h.
                var FusableActivation;
                (function (FusableActivation) {
                    FusableActivation[FusableActivation["linear"] = 0] = "linear";
                    FusableActivation[FusableActivation["relu"] = 1] = "relu";
                    FusableActivation[FusableActivation["relu6"] = 2] = "relu6";
                    FusableActivation[FusableActivation["prelu"] = 3] = "prelu";
                    FusableActivation[FusableActivation["leakyrelu"] = 4] = "leakyrelu";
                    FusableActivation[FusableActivation["sigmoid"] = 5] = "sigmoid";
                    FusableActivation[FusableActivation["elu"] = 6] = "elu";
                }
                )(FusableActivation || (FusableActivation = {}));

                var wasmFusedMatMul;
                function setup$N(backend) {
                    wasmFusedMatMul = backend.wasm.cwrap(tfjsCore._FusedMatMul, null /* void */
                        , ['number', 'array', 'number', 'number', 'array', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number'// out_id
                        ]);
                }
                function fusedBatchMatMul(args) {
                    var inputs = args.inputs
                        , backend = args.backend
                        , attrs = args.attrs;
                    var a = inputs.a
                        , b = inputs.b
                        , bias = inputs.bias
                        , preluActivationWeights = inputs.preluActivationWeights;
                    if (a.dtype !== 'float32' || b.dtype !== 'float32') {
                        throw new Error("_FusedMatMul for non non-float32 tensors not yet supported.");
                    }
                    var transposeA = attrs.transposeA
                        , transposeB = attrs.transposeB
                        , activation = attrs.activation
                        , leakyreluAlpha = attrs.leakyreluAlpha;
                    var aId = backend.dataIdMap.get(a.dataId).id;
                    var bId = backend.dataIdMap.get(b.dataId).id;
                    var biasId = 0;
                    if (bias != null) {
                        var biasData = backend.dataIdMap.get(bias.dataId);
                        if (biasData.shape.length !== 1) {
                            throw new Error("_FusedMatMul only supports rank-1 bias but got " + "rank ".concat(biasData.shape.length, "."));
                        }
                        biasId = biasData.id;
                    }
                    var preluActivationWeightsId = preluActivationWeights == null ? 0 : backend.dataIdMap.get(preluActivationWeights.dataId).id;
                    var fusedActivation = FusableActivation[activation];
                    if (fusedActivation == null) {
                        throw new Error("".concat(activation, " activation not yet supported for FusedConv2D ") + "in the wasm backend.");
                    }
                    var leftDim = transposeA ? a.shape[2] : a.shape[1];
                    var rightDim = transposeB ? b.shape[1] : b.shape[2];
                    var batchDims = tfjsCore.broadcast_util.assertAndGetBroadcastShape(a.shape.slice(0, -2), b.shape.slice(0, -2));
                    var out = backend.makeOutput(__spreadArray(__spreadArray([], __read(batchDims), false), [leftDim, rightDim], false), a.dtype);
                    var outId = backend.dataIdMap.get(out.dataId).id;
                    var aShapeBytes = new Uint8Array(new Int32Array(a.shape).buffer);
                    var bShapeBytes = new Uint8Array(new Int32Array(b.shape).buffer);
                    wasmFusedMatMul(aId, aShapeBytes, a.shape.length, bId, bShapeBytes, b.shape.length, transposeA, transposeB, fusedActivation, biasId, preluActivationWeightsId, leakyreluAlpha || 0, outId);
                    return out;
                }
                var _fusedMatMulConfig = {
                    kernelName: tfjsCore._FusedMatMul,
                    backendName: 'wasm',
                    setupFunc: setup$N,
                    kernelFunc: fusedBatchMatMul
                };

                /**
                 * @license
                 * Copyright 2019 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                function createUnaryKernelConfig(kernelName, outType) {
                    var wasmFunc;
                    function setupFunc(backend) {
                        wasmFunc = backend.wasm.cwrap(kernelName, null /* void */
                            , ['number', 'number', 'number', // out_id
                            ]);
                    }
                    function kernelFunc(args) {
                        var backend = args.backend
                            , x = args.inputs.x;
                        var xId = backend.dataIdMap.get(x.dataId).id;
                        var out = backend.makeOutput(x.shape, outType || x.dtype);
                        var outId = backend.dataIdMap.get(out.dataId).id;
                        // Short-circuit zero-sized tensors.
                        if (tfjsCore.util.sizeFromShape(out.shape) === 0) {
                            return out;
                        }
                        wasmFunc(xId, CppDType[x.dtype], outId);
                        return out;
                    }
                    return {
                        kernelName: kernelName,
                        backendName: 'wasm',
                        setupFunc: setupFunc,
                        kernelFunc: kernelFunc
                    };
                }

                /**
                 * @license
                 * Copyright 2019 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var absConfig = createUnaryKernelConfig(tfjsCore.Abs);

                /**
                 * @license
                 * Copyright 2019 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                function createBinaryKernelConfig(kernelName, supportsFullBroadcast, dtype) {
                    var wasmFunc;
                    function setupFunc(backend) {
                        wasmFunc = backend.wasm.cwrap(kernelName, null /* void */
                            , ['number', 'array', 'number', 'number', 'array', 'number', 'number', 'number'// out_id
                            ]);
                    }
                    function kernelFunc(args) {
                        var backend = args.backend
                            , inputs = args.inputs;
                        var a = inputs.a
                            , b = inputs.b;
                        var aId = backend.dataIdMap.get(a.dataId).id;
                        var bId = backend.dataIdMap.get(b.dataId).id;
                        var outputType = dtype != null ? dtype : a.dtype;
                        var newShape = tfjsCore.backend_util.assertAndGetBroadcastShape(a.shape, b.shape);
                        var out = backend.makeOutput(newShape, outputType);
                        // Short-circuit zero-sized tensors.
                        if (tfjsCore.util.sizeFromShape(newShape) === 0) {
                            return out;
                        }
                        var aShapeBytes = new Uint8Array(new Int32Array(a.shape).buffer);
                        var bShapeBytes = new Uint8Array(new Int32Array(b.shape).buffer);
                        var outId = backend.dataIdMap.get(out.dataId).id;
                        var kernelFunc = function () {
                            return wasmFunc(aId, aShapeBytes, a.shape.length, bId, bShapeBytes, b.shape.length, CppDType[a.dtype], outId);
                        };
                        kernelFunc();
                        return out;
                    }
                    return {
                        kernelName: kernelName,
                        backendName: 'wasm',
                        setupFunc: setupFunc,
                        kernelFunc: kernelFunc
                    };
                }

                /**
                 * @license
                 * Copyright 2019 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var addConfig = createBinaryKernelConfig(tfjsCore.Add);

                /**
                 * @license
                 * Copyright 2019 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var wasmFunc$7;
                function setupFunc$1(backend) {
                    wasmFunc$7 = backend.wasm.cwrap(tfjsCore.AddN, null /* void */
                        , ['array', 'number', 'number', 'number', // out_id
                        ]);
                }
                function addn(args) {
                    var inputs = args.inputs
                        , backend = args.backend;
                    var out = backend.makeOutput(inputs[0].shape, inputs[0].dtype);
                    // Short-circuit zero-sized tensors.
                    if (tfjsCore.util.sizeFromShape(out.shape) === 0) {
                        return out;
                    }
                    var inputIds = inputs.map(function (x) {
                        return backend.dataIdMap.get(x.dataId).id;
                    });
                    var inputIdsBytes = new Uint8Array(new Int32Array(inputIds).buffer);
                    var outId = backend.dataIdMap.get(out.dataId).id;
                    wasmFunc$7(inputIdsBytes, inputIds.length, CppDType[out.dtype], outId);
                    return out;
                }
                var addNConfig = {
                    kernelName: tfjsCore.AddN,
                    backendName: 'wasm',
                    setupFunc: setupFunc$1,
                    kernelFunc: addn,
                };

                /**
                 * @license
                 * Copyright 2020 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                function identity(args) {
                    var x = args.inputs.x
                        , backend = args.backend;
                    if (x.dtype === 'string') {
                        return tfjsCore.tensor(backend.readSync(x.dataId), x.shape, x.dtype);
                    }
                    var out = backend.makeOutput(x.shape, x.dtype);
                    var inVals = backend.typedArrayFromHeap(x);
                    var outVals = backend.typedArrayFromHeap(out);
                    outVals.set(inVals);
                    return out;
                }
                var identityConfig = {
                    kernelName: tfjsCore.Identity,
                    backendName: 'wasm',
                    kernelFunc: identity,
                };

                var wasmTranspose;
                function setup$M(backend) {
                    wasmTranspose = backend.wasm.cwrap(tfjsCore.Transpose, null /* void */
                        , ['number', 'array', 'number', 'number', 'number', 'array', 'number', // perm.length
                        ]);
                }
                function transpose(args) {
                    var inputs = args.inputs
                        , backend = args.backend
                        , attrs = args.attrs;
                    // Reduce any dimensions with size one. Lower-rank transpose kernel performs
                    // better due to simpler memory access pattern.
                    var _a = __read(removeOneSizeDims(inputs.x.shape, attrs.perm), 2)
                        , reducedShape = _a[0]
                        , perm = _a[1];
                    var permIsNoOp = true;
                    for (var i = 0; i < perm.length; i++) {
                        if (perm[i] !== i) {
                            permIsNoOp = false;
                        }
                    }
                    var outShape = computeOutShape(inputs.x.shape, attrs.perm);
                    var x = {
                        dataId: inputs.x.dataId,
                        shape: reducedShape,
                        dtype: inputs.x.dtype
                    };
                    if (permIsNoOp) {
                        var cloned = identity({
                            inputs: inputs,
                            backend: backend
                        });
                        cloned.shape = outShape;
                        return cloned;
                    }
                    var out = backend.makeOutput(outShape, x.dtype);
                    var xId = backend.dataIdMap.get(x.dataId).id;
                    var outId = backend.dataIdMap.get(out.dataId).id;
                    var permBytes = new Uint8Array(new Int32Array(perm).buffer);
                    var xShapeBytes = new Uint8Array(new Int32Array(x.shape).buffer);
                    wasmTranspose(xId, xShapeBytes, x.shape.length, CppDType[x.dtype], outId, permBytes, perm.length);
                    return out;
                }
                function computeOutShape(inShape, perm) {
                    var outShape = new Array(inShape.length);
                    for (var i = 0; i < outShape.length; i++) {
                        outShape[i] = inShape[perm[i]];
                    }
                    return outShape;
                }
                function removeOneSizeDims(shape, perm) {
                    var newShape = [];
                    var newPerm = [];
                    for (var i = 0; i < shape.length; ++i) {
                        if (shape[i] !== 1) {
                            newShape.push(shape[i]);
                        }
                        if (shape[perm[i]] !== 1) {
                            newPerm.push(perm[i]);
                        }
                    }
                    for (var i = 0; i < newPerm.length; ++i) {
                        var minValIdx = -1;
                        for (var j = 0; j < newPerm.length; ++j) {
                            if (newPerm[j] >= i && (minValIdx === -1 || newPerm[minValIdx] > newPerm[j])) {
                                minValIdx = j;
                            }
                        }
                        newPerm[minValIdx] = i;
                    }
                    return [newShape, newPerm];
                }
                var transposeConfig = {
                    kernelName: tfjsCore.Transpose,
                    backendName: 'wasm',
                    kernelFunc: transpose,
                    setupFunc: setup$M,
                };

                /**
                 * @license
                 * Copyright 2020 Google Inc. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                /**
                 * Compute permutation axes and do a transpose if necessary.
                 *
                 * Used by reduction ops.
                 * @param x input TensorInfo
                 * @param axis reduction axes
                 * @param backend wasm backend instance
                 */
                function permuteAxesAndTranspose(x, axis, backend) {
                    var xShape = x.shape;
                    var xRank = x.shape.length;
                    var originalAxes = tfjsCore.util.parseAxisParam(axis, xShape);
                    var axes = originalAxes;
                    var permutedAxes = tfjsCore.backend_util.getAxesPermutation(axes, xRank);
                    var xTransposed = null;
                    var inputWasTransposed = false;
                    if (permutedAxes != null) {
                        var newShape = new Array(xRank);
                        for (var i = 0; i < newShape.length; i++) {
                            newShape[i] = xShape[permutedAxes[i]];
                        }
                        axes = tfjsCore.backend_util.getInnerMostAxes(axes.length, xRank);
                        xTransposed = transpose({
                            inputs: {
                                x: x
                            },
                            attrs: {
                                perm: permutedAxes
                            },
                            backend: backend
                        });
                        var xId = backend.dataIdMap.get(x.dataId).id;
                        var transposedId = backend.dataIdMap.get(xTransposed.dataId).id;
                        if (transposedId !== xId) {
                            inputWasTransposed = true;
                        }
                    }
                    return {
                        transposed: xTransposed,
                        originalAxes: originalAxes,
                        axes: axes,
                        inputWasTransposed: inputWasTransposed
                    };
                }

                var wasmAll;
                function setup$L(backend) {
                    wasmAll = backend.wasm.cwrap(tfjsCore.All, null /*void*/
                        , ['number, number, number']);
                }
                function all(args) {
                    var backend = args.backend
                        , inputs = args.inputs
                        , attrs = args.attrs;
                    var axis = attrs.axis
                        , keepDims = attrs.keepDims;
                    var x = inputs.x;
                    var xId = backend.dataIdMap.get(x.dataId).id;
                    var inputId = xId;
                    var input = x;
                    var _a = permuteAxesAndTranspose(x, axis, backend)
                        , transposed = _a.transposed
                        , axes = _a.axes
                        , originalAxes = _a.originalAxes
                        , inputWasTransposed = _a.inputWasTransposed;
                    if (inputWasTransposed) {
                        var transposedId = backend.dataIdMap.get(transposed.dataId).id;
                        input = transposed;
                        inputId = transposedId;
                    }
                    var inputRank = input.shape.length;
                    tfjsCore.backend_util.assertAxesAreInnerMostDims('all', axes, inputRank);
                    var _b = __read(tfjsCore.backend_util.computeOutAndReduceShapes(input.shape, axes), 2)
                        , outShape = _b[0]
                        , reduceShape = _b[1];
                    var reduceSize = tfjsCore.util.sizeFromShape(reduceShape);
                    var out = backend.makeOutput(outShape, x.dtype);
                    if (tfjsCore.util.sizeFromShape(input.shape) !== 0) {
                        var outId = backend.dataIdMap.get(out.dataId).id;
                        wasmAll(inputId, reduceSize, outId);
                    }
                    if (inputWasTransposed) {
                        // dispose of the transposed tensor.
                        backend.disposeData(transposed.dataId);
                    }
                    if (keepDims) {
                        // reshape
                        var newShape = tfjsCore.backend_util.expandShapeToKeepDim(out.shape, originalAxes);
                        out.shape = newShape;
                    }
                    return out;
                }
                var allConfig = {
                    kernelName: tfjsCore.All,
                    backendName: 'wasm',
                    setupFunc: setup$L,
                    kernelFunc: all
                };

                var wasmAny;
                function setup$K(backend) {
                    wasmAny = backend.wasm.cwrap(tfjsCore.Any, null /*void*/
                        , ['number, number, number']);
                }
                function any(args) {
                    var backend = args.backend
                        , inputs = args.inputs
                        , attrs = args.attrs;
                    var axis = attrs.axis
                        , keepDims = attrs.keepDims;
                    var x = inputs.x;
                    var xId = backend.dataIdMap.get(x.dataId).id;
                    var inputId = xId;
                    var input = x;
                    var _a = permuteAxesAndTranspose(x, axis, backend)
                        , transposed = _a.transposed
                        , axes = _a.axes
                        , originalAxes = _a.originalAxes
                        , inputWasTransposed = _a.inputWasTransposed;
                    if (inputWasTransposed) {
                        var transposedId = backend.dataIdMap.get(transposed.dataId).id;
                        input = transposed;
                        inputId = transposedId;
                    }
                    var inputRank = input.shape.length;
                    tfjsCore.backend_util.assertAxesAreInnerMostDims('any', axes, inputRank);
                    var _b = __read(tfjsCore.backend_util.computeOutAndReduceShapes(input.shape, axes), 2)
                        , outShape = _b[0]
                        , reduceShape = _b[1];
                    var reduceSize = tfjsCore.util.sizeFromShape(reduceShape);
                    var out = backend.makeOutput(outShape, x.dtype);
                    if (tfjsCore.util.sizeFromShape(input.shape) !== 0) {
                        var outId = backend.dataIdMap.get(out.dataId).id;
                        wasmAny(inputId, reduceSize, outId);
                    }
                    if (inputWasTransposed) {
                        // dispose of the transposed tensor.
                        backend.disposeData(transposed.dataId);
                    }
                    if (keepDims) {
                        // reshape
                        var newShape = tfjsCore.backend_util.expandShapeToKeepDim(out.shape, originalAxes);
                        out.shape = newShape;
                    }
                    return out;
                }
                var anyConfig = {
                    kernelName: tfjsCore.Any,
                    backendName: 'wasm',
                    setupFunc: setup$K,
                    kernelFunc: any
                };

                /**
                 * @license
                 * Copyright 2019 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var wasmFunc$6;
                function setup$J(backend) {
                    wasmFunc$6 = backend.wasm.cwrap(tfjsCore.ArgMax, null /* void */
                        , ['number', 'number', 'number', 'number', 'number'// out_id
                        ]);
                }
                function argmax(args) {
                    var backend = args.backend
                        , inputs = args.inputs
                        , attrs = args.attrs;
                    var axis = attrs.axis;
                    var x = inputs.x;
                    var xId = backend.dataIdMap.get(x.dataId).id;
                    var inputId = xId;
                    var input = x;
                    var _a = permuteAxesAndTranspose(x, axis, backend)
                        , transposed = _a.transposed
                        , axes = _a.axes
                        , inputWasTransposed = _a.inputWasTransposed;
                    if (inputWasTransposed) {
                        var transposedId = backend.dataIdMap.get(transposed.dataId).id;
                        if (transposedId !== xId) {
                            // transpose was not a no-op. We will need to dispose of this
                            // once we are done.
                            input = transposed;
                            inputId = transposedId;
                        }
                    }
                    var outShape = input.shape.slice(0, -1);
                    var out = backend.makeOutput(outShape, 'int32');
                    var outId = backend.dataIdMap.get(out.dataId).id;
                    var outerSize = tfjsCore.util.sizeFromShape(out.shape);
                    var innerSize = input.shape[axes[0]];
                    wasmFunc$6(inputId, CppDType[input.dtype], outerSize, innerSize, outId);
                    if (inputWasTransposed) {
                        // dispose of the transposed tensor.
                        backend.disposeData(transposed.dataId);
                    }
                    return out;
                }
                var argMaxConfig = {
                    kernelName: tfjsCore.ArgMax,
                    backendName: 'wasm',
                    kernelFunc: argmax,
                    setupFunc: setup$J
                };

                /**
                 * @license
                 * Copyright 2019 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var wasmAvgPool;
                function setup$I(backend) {
                    wasmAvgPool = backend.wasm.cwrap(tfjsCore.AvgPool, null /* void */
                        , ['number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', // outId
                        ]);
                }
                function avgPool(args) {
                    var inputs = args.inputs
                        , attrs = args.attrs
                        , backend = args.backend;
                    var x = inputs.x;
                    var xId = backend.dataIdMap.get(x.dataId).id;
                    var filterSize = attrs.filterSize
                        , strides = attrs.strides
                        , pad = attrs.pad
                        , dimRoundingMode = attrs.dimRoundingMode;
                    var convInfo = tfjsCore.backend_util.computePool2DInfo(x.shape, filterSize, strides, 1 /* dilations */
                        , pad, dimRoundingMode);
                    var filterHeight = convInfo.filterHeight;
                    var filterWidth = convInfo.filterWidth;
                    var padTop = convInfo.padInfo.top;
                    var padRight = convInfo.padInfo.right;
                    var padBottom = convInfo.padInfo.bottom;
                    var padLeft = convInfo.padInfo.left;
                    var strideHeight = convInfo.strideHeight;
                    var strideWidth = convInfo.strideWidth;
                    var channels = convInfo.inChannels;
                    if (convInfo.dataFormat !== 'channelsLast') {
                        throw new Error("wasm backend does not support dataFormat:'" + "".concat(convInfo.dataFormat, "'. Please use 'channelsLast'."));
                    }
                    if (convInfo.dilationWidth !== 1 || convInfo.dilationHeight !== 1) {
                        throw new Error("was backend only supports average pooling with dilation = [1, 1], " + "got [".concat(convInfo.dilationHeight, ", ").concat(convInfo.dilationWidth, "]."));
                    }
                    var out = backend.makeOutput(convInfo.outShape, 'float32');
                    var outId = backend.dataIdMap.get(out.dataId).id;
                    wasmAvgPool(xId, x.shape[0], x.shape[1], x.shape[2], filterHeight, filterWidth, padTop, padRight, padBottom, padLeft, strideHeight, strideWidth, channels, outId);
                    return out;
                }
                var avgPoolConfig = {
                    kernelName: tfjsCore.AvgPool,
                    backendName: 'wasm',
                    setupFunc: setup$I,
                    kernelFunc: avgPool
                };

                /**
                 * @license
                 * Copyright 2019 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                function reshape(args) {
                    var inputs = args.inputs
                        , attrs = args.attrs;
                    var x = inputs.x;
                    var shape = attrs.shape;
                    var xSize = tfjsCore.util.sizeFromShape(x.shape);
                    var $shape = tfjsCore.util.inferFromImplicitShape(shape, xSize);
                    tfjsCore.util.assert(xSize === tfjsCore.util.sizeFromShape($shape), function () {
                        return "new shape: ".concat($shape, ", old shape: ").concat(x.shape, ". New shape and old ") + "shape must have the same number of elements.";
                    });
                    // Backend needs to track refCount for the dataId for reshape op
                    args.backend.incRef(x.dataId);
                    return {
                        dataId: x.dataId,
                        shape: $shape,
                        dtype: x.dtype
                    };
                }
                var reshapeConfig = {
                    kernelName: tfjsCore.Reshape,
                    backendName: 'wasm',
                    kernelFunc: reshape
                };

                /**
                 * @license
                 * Copyright 2019 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var wasmBatchMatMul;
                function setup$H(backend) {
                    wasmBatchMatMul = backend.wasm.cwrap(tfjsCore.BatchMatMul, null /* void */
                        , ['number', 'array', 'number', 'number', 'array', 'number', 'number', 'number', 'number'// out_id
                        ]);
                }
                function batchMatMul(args) {
                    var inputs = args.inputs
                        , backend = args.backend
                        , attrs = args.attrs;
                    var a = inputs.a
                        , b = inputs.b;
                    var transposeA = attrs.transposeA
                        , transposeB = attrs.transposeB;
                    if (a.dtype !== 'float32' || b.dtype !== 'float32') {
                        throw new Error("BatchMatMul for non non-float32 tensors not yet supported.");
                    }
                    var aRank = a.shape.length;
                    var bRank = b.shape.length;
                    var innerShapeA = transposeA ? a.shape[aRank - 2] : a.shape[aRank - 1];
                    var innerShapeB = transposeB ? b.shape[bRank - 1] : b.shape[bRank - 2];
                    var outerShapeA = transposeA ? a.shape[aRank - 1] : a.shape[aRank - 2];
                    var outerShapeB = transposeB ? b.shape[bRank - 2] : b.shape[bRank - 1];
                    var outerDimsA = a.shape.slice(0, -2);
                    var outerDimsB = b.shape.slice(0, -2);
                    var batchDimA = tfjsCore.util.sizeFromShape(outerDimsA);
                    var batchDimB = tfjsCore.util.sizeFromShape(outerDimsB);
                    var outShapeOuterDims = tfjsCore.broadcast_util.assertAndGetBroadcastShape(a.shape.slice(0, -2), b.shape.slice(0, -2));
                    var outShape = outShapeOuterDims.concat([outerShapeA, outerShapeB]);
                    tfjsCore.util.assert(innerShapeA === innerShapeB, function () {
                        return "Error in matMul: inner shapes (".concat(innerShapeA, ") and (") + "".concat(innerShapeB, ") of Tensors with shapes ").concat(a.shape, " and ") + "".concat(b.shape, " and transposeA=").concat(transposeA) + " and transposeB=".concat(transposeB, " must match.");
                    });
                    var a3dShape = transposeA ? [batchDimA, innerShapeA, outerShapeA] : [batchDimA, outerShapeA, innerShapeA];
                    var b3dShape = transposeB ? [batchDimB, outerShapeB, innerShapeB] : [batchDimB, innerShapeB, outerShapeB];
                    // The rest of the implementation is designed to operate on rank-3 tensors
                    var a3d = reshape({
                        inputs: {
                            x: a
                        },
                        backend: backend,
                        attrs: {
                            shape: a3dShape
                        }
                    });
                    var b3d = reshape({
                        inputs: {
                            x: b
                        },
                        backend: backend,
                        attrs: {
                            shape: b3dShape
                        }
                    });
                    var a3dId = backend.dataIdMap.get(a3d.dataId).id;
                    var b3dId = backend.dataIdMap.get(b3d.dataId).id;
                    var leftDim = transposeA ? a3d.shape[2] : a3d.shape[1];
                    var rightDim = transposeB ? b3d.shape[1] : b3d.shape[2];
                    var batchDim = Math.max(batchDimA, batchDimB);
                    var out = backend.makeOutput([batchDim, leftDim, rightDim], a3d.dtype);
                    var outId = backend.dataIdMap.get(out.dataId).id;
                    var aShapeBytes = new Uint8Array(new Int32Array(a3d.shape).buffer);
                    var bShapeBytes = new Uint8Array(new Int32Array(b3d.shape).buffer);
                    wasmBatchMatMul(a3dId, aShapeBytes, a3d.shape.length, b3dId, bShapeBytes, b3d.shape.length, transposeA, transposeB, outId);
                    backend.disposeData(a3d.dataId);
                    backend.disposeData(b3d.dataId);
                    out.shape = outShape;
                    return out;
                }
                var batchMatMulConfig = {
                    kernelName: tfjsCore.BatchMatMul,
                    backendName: 'wasm',
                    setupFunc: setup$H,
                    kernelFunc: batchMatMul
                };

                /**
                 * @license
                 * Copyright 2020 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                function concatImpl(inputs, outShape, dtype, simplyConcat) {
                    var outVals = tfjsCore.util.getArrayFromDType(dtype, tfjsCore.util.sizeFromShape(outShape));
                    if (simplyConcat && dtype !== 'string') {
                        // Use built-in TypedArray.set() method for speed.
                        var offset_1 = 0;
                        inputs.forEach(function (input) {
                            var size = tfjsCore.util.sizeFromShape(input.shape);
                            outVals.set(input.vals, offset_1);
                            offset_1 += size;
                        });
                    } else {
                        var colOffset_1 = 0;
                        inputs.forEach(function (input) {
                            var decodedData = dtype === 'string' ? tfjsCore.backend_util.fromUint8ToStringArray(input.vals) : input.vals;
                            var tIdx = 0;
                            for (var row = 0; row < input.shape[0]; ++row) {
                                var resIdx = row * outShape[1] + colOffset_1;
                                for (var col = 0; col < input.shape[1]; ++col) {
                                    outVals[resIdx + col] = decodedData[tIdx++];
                                }
                            }
                            colOffset_1 += input.shape[1];
                        });
                    }
                    return outVals;
                }

                tfjsCore.backend_util.RowPartitionType;

                /**
                 * @license
                 * Copyright 2020 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                function rangeImpl(start, stop, step, dtype) {
                    var sameStartStop = start === stop;
                    var increasingRangeNegativeStep = start < stop && step < 0;
                    var decreasingRangePositiveStep = stop < start && step > 1;
                    if (sameStartStop || increasingRangeNegativeStep || decreasingRangePositiveStep) {
                        return tfjsCore.util.makeZerosTypedArray(0, dtype);
                    }
                    var numElements = Math.abs(Math.ceil((stop - start) / step));
                    var values = tfjsCore.util.makeZerosTypedArray(numElements, dtype);
                    if (stop < start && step === 1) {
                        // Auto adjust the step's sign if it hasn't been set
                        // (or was set to 1)
                        step = -1;
                    }
                    values[0] = start;
                    for (var i = 1; i < values.length; i++) {
                        values[i] = values[i - 1] + step;
                    }
                    return values;
                }

                function sliceImpl(vals, begin, size, shape, dtype) {
                    var isContinous = tfjsCore.slice_util.isSliceContinous(shape, begin, size);
                    var length = tfjsCore.util.sizeFromShape(size);
                    var xStrides = tfjsCore.util.computeStrides(shape);
                    if (isContinous) {
                        var flatOffset = tfjsCore.slice_util.computeFlatOffset(begin, xStrides);
                        if (dtype === 'string') {
                            return vals.slice(flatOffset, flatOffset + length);
                        }
                        return vals.subarray(flatOffset, flatOffset + length);
                    }
                    var decodedData = dtype === 'string' ? tfjsCore.backend_util.fromUint8ToStringArray(vals) : vals;
                    var inBuf = tfjsCore.buffer(shape, dtype, decodedData);
                    var outBuf = tfjsCore.buffer(size, dtype);
                    for (var i = 0; i < outBuf.size; ++i) {
                        var outLoc = outBuf.indexToLoc(i);
                        var inLoc = outLoc.map(function (idx, j) {
                            return idx + begin[j];
                        });
                        outBuf.set.apply(outBuf, __spreadArray([inBuf.get.apply(inBuf, __spreadArray([], __read(inLoc), false))], __read(outLoc), false));
                    }
                    if (dtype === 'string') {
                        return tfjsCore.backend_util.fromStringArrayToUint8(outBuf.values);
                    }
                    return outBuf.values;
                }

                /**
                 * @license
                 * Copyright 2021 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                /**
                 * The StringNGramsOp class creates ngrams from ragged string data.
                 * The constructor contains all attributes related to the operation such as
                 * padding widths and strings, and the compute function can be used to
                 * compute the ngrams for different ragged tensor inputs.
                 */
                var StringNGramsOp = /** @class */
                    (function () {
                        function StringNGramsOp(separator, nGramWidths, leftPad, rightPad, padWidth, preserveShortSequences) {
                            this.separator = tfjsCore.util.encodeString(separator);
                            this.nGramWidths = nGramWidths;
                            this.leftPad = tfjsCore.util.encodeString(leftPad);
                            this.rightPad = tfjsCore.util.encodeString(rightPad);
                            this.padWidth = padWidth;
                            this.preserveShort = preserveShortSequences;
                        }
                        StringNGramsOp.prototype.getPadWidth = function (nGramWidth) {
                            // Ngrams can be padded with either a fixed pad width or a dynamic pad
                            // width depending on the 'padWidth' arg, but in no case should the padding
                            // ever be wider than 'nGramWidth' - 1.
                            return Math.min(this.padWidth < 0 ? nGramWidth - 1 : this.padWidth, nGramWidth - 1);
                        }
                            ;
                        StringNGramsOp.prototype.getNumNGrams = function (length, nGramWidth) {
                            var padWidth = this.getPadWidth(nGramWidth);
                            return Math.max(0, ((length + 2 * padWidth) - nGramWidth) + 1);
                        }
                            ;
                        StringNGramsOp.prototype.createNGrams = function (data, splitIndex, output, outputStartIndex, numNGrams, nGramWidth) {
                            var _loop_1 = function (nGramIndex) {
                                var padWidth = this_1.getPadWidth(nGramWidth);
                                var leftPadding = Math.max(0, padWidth - nGramIndex);
                                var rightPadding = Math.max(0, padWidth - (numNGrams - (nGramIndex + 1)));
                                var numTokens = nGramWidth - (leftPadding + rightPadding);
                                var dataStartIndex = splitIndex + (leftPadding > 0 ? 0 : nGramIndex - padWidth);
                                // Calculate the total expected size of the nGram so we can reserve the
                                // correct amount of space in the string.
                                var nGramSize = 0;
                                // Size of the left padding.
                                nGramSize += leftPadding * this_1.leftPad.length;
                                // Size of the tokens.
                                for (var n = 0; n < numTokens; ++n) {
                                    nGramSize += data[dataStartIndex + n].length;
                                }
                                // Size of the right padding.
                                nGramSize += rightPadding * this_1.rightPad.length;
                                // Size of the separators.
                                var numSeparators = leftPadding + rightPadding + numTokens - 1;
                                nGramSize += numSeparators * this_1.separator.length;
                                // Build the nGram.
                                output[outputStartIndex + nGramIndex] = new Uint8Array(nGramSize);
                                var nGram = output[outputStartIndex + nGramIndex];
                                var nextNGramIndex = 0;
                                var appendToNGram = function (str) {
                                    return str.forEach(function (value) {
                                        return nGram[nextNGramIndex++] = value;
                                    });
                                };
                                for (var n = 0; n < leftPadding; ++n) {
                                    appendToNGram(this_1.leftPad);
                                    appendToNGram(this_1.separator);
                                }
                                // Only output first numTokens - 1 pairs of data and separator
                                for (var n = 0; n < numTokens - 1; ++n) {
                                    appendToNGram(data[dataStartIndex + n]);
                                    appendToNGram(this_1.separator);
                                }
                                // Handle case when there are no tokens or no right padding as these
                                // can result in consecutive separators.
                                if (numTokens > 0) {
                                    // If we have tokens, then output last and then pair each separator
                                    // with the right padding that follows, to ensure nGram ends either with
                                    // the token or with the right pad.
                                    appendToNGram(data[dataStartIndex + numTokens - 1]);
                                    for (var n = 0; n < rightPadding; ++n) {
                                        appendToNGram(this_1.separator);
                                        appendToNGram(this_1.rightPad);
                                    }
                                } else {
                                    // If we don't have tokens, then the last item inserted into the nGram
                                    // has been the separator from the left padding loop above. Hence,
                                    // output right pad and separator and make sure to finish with a
                                    // padding, not a separator.
                                    for (var n = 0; n < rightPadding - 1; ++n) {
                                        appendToNGram(this_1.rightPad);
                                        appendToNGram(this_1.separator);
                                    }
                                    appendToNGram(this_1.rightPad);
                                }
                            };
                            var this_1 = this;
                            for (var nGramIndex = 0; nGramIndex < numNGrams; ++nGramIndex) {
                                _loop_1(nGramIndex);
                            }
                        }
                            ;
                        // Data and splits together form the definition of the ragged tensor,
                        // where data is 1 dimensional and contains the values of the tensor
                        // and splits denotes the indices at which each row starts.
                        StringNGramsOp.prototype.compute = function (data, splits) {
                            var _this = this;
                            // Validate that the splits are valid indices into data, only if there are
                            // splits specified.
                            var inputDataSize = data.length;
                            var splitsSize = splits.length;
                            if (splitsSize > 0) {
                                var prevSplit = splits[0];
                                if (prevSplit !== 0) {
                                    throw new Error("First split value must be 0, got ".concat(prevSplit));
                                }
                                for (var i = 1; i < splitsSize; ++i) {
                                    var validSplits = splits[i] >= prevSplit;
                                    validSplits = validSplits && (splits[i] <= inputDataSize);
                                    if (!validSplits) {
                                        throw new Error("Invalid split value ".concat(splits[i], ", must be in [").concat(prevSplit, ", ").concat(inputDataSize, "]"));
                                    }
                                    prevSplit = splits[i];
                                }
                                if (prevSplit !== inputDataSize) {
                                    throw new Error("Last split value must be data size. Expected ".concat(inputDataSize, ", got ").concat(prevSplit));
                                }
                            }
                            var numBatchItems = splitsSize - 1;
                            var nGramsSplits = tfjsCore.util.getArrayFromDType('int32', splitsSize);
                            // If there is no data or size, return an empty ragged tensor.
                            if (inputDataSize === 0 || splitsSize === 0) {
                                var empty = new Array(inputDataSize);
                                for (var i = 0; i <= numBatchItems; ++i) {
                                    nGramsSplits[i] = 0;
                                }
                                return [empty, nGramsSplits];
                            }
                            nGramsSplits[0] = 0;
                            var _loop_2 = function (i) {
                                var length = splits[i] - splits[i - 1];
                                var numNGrams = 0;
                                this_2.nGramWidths.forEach(function (nGramWidth) {
                                    numNGrams += _this.getNumNGrams(length, nGramWidth);
                                });
                                if (this_2.preserveShort && length > 0 && numNGrams === 0) {
                                    numNGrams = 1;
                                }
                                nGramsSplits[i] = nGramsSplits[i - 1] + numNGrams;
                            };
                            var this_2 = this;
                            for (var i = 1; i <= numBatchItems; ++i) {
                                _loop_2(i);
                            }
                            var nGrams = new Array(nGramsSplits[numBatchItems]);
                            var _loop_3 = function (i) {
                                var splitIndex = splits[i];
                                var outputStartIdx = nGramsSplits[i];
                                this_3.nGramWidths.forEach(function (nGramWidth) {
                                    var length = splits[i + 1] - splits[i];
                                    var numNGrams = _this.getNumNGrams(length, nGramWidth);
                                    _this.createNGrams(data, splitIndex, nGrams, outputStartIdx, numNGrams, nGramWidth);
                                    outputStartIdx += numNGrams;
                                });
                                // If we're preserving short sequences, check to see if no sequence was
                                // generated by comparing the current output start idx to the original
                                // one (nGramSplitsdata). If no ngrams were generated, then they will
                                // be equal (since we increment outputStartIdx by numNGrams every
                                // time we create a set of ngrams.)
                                if (this_3.preserveShort && outputStartIdx === nGramsSplits[i]) {
                                    var dataLength = splits[i + 1] - splits[i];
                                    // One legitimate reason to not have any ngrams when this.preserveShort
                                    // is true is if the sequence itself is empty. In that case, move on.
                                    if (dataLength === 0) {
                                        return "continue";
                                    }
                                    // We don't have to worry about dynamic padding sizes here: if padding
                                    // was dynamic, every sequence would have had sufficient padding to
                                    // generate at least one nGram.
                                    var nGramWidth = dataLength + 2 * this_3.padWidth;
                                    var numNGrams = 1;
                                    this_3.createNGrams(data, splitIndex, nGrams, outputStartIdx, numNGrams, nGramWidth);
                                }
                            };
                            var this_3 = this;
                            for (var i = 0; i < numBatchItems; ++i) {
                                _loop_3(i);
                            }
                            return [nGrams, nGramsSplits];
                        }
                            ;
                        return StringNGramsOp;
                    }());
                function stringNGramsImpl(data, dataSplits, separator, nGramWidths, leftPad, rightPad, padWidth, preserveShortSequences) {
                    return new StringNGramsOp(separator, nGramWidths, leftPad, rightPad, padWidth, preserveShortSequences).compute(data, dataSplits);
                }

                /**
                 * @license
                 * Copyright 2021 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                function split(str, delimiters, skipEmpty, result) {
                    if (!str.length) {
                        return;
                    }
                    // When the delimiter is empty, the input is split into individual characters.
                    if (delimiters.length === 0) {
                        for (var i = 0; i < str.length; ++i) {
                            result.push(str.subarray(i, i + 1));
                        }
                        return;
                    }
                    // When there is one delimiter, the input is split only at that delimiter.
                    if (delimiters.length === 1) {
                        var delimiter = delimiters[0];
                        var f = str.indexOf(delimiter);
                        while (f !== -1) {
                            var token = str.subarray(0, f);
                            if (!skipEmpty || token.length !== 0) {
                                result.push(token);
                            }
                            str = str.subarray(f + 1);
                            f = str.indexOf(delimiter);
                        }
                        if (!skipEmpty || str.length !== 0) {
                            result.push(str);
                        }
                        return;
                    }
                    // When there are multiple delimiters, the input is split at every instance
                    // one of the delimiters appears.
                    var tokenStart = 0;
                    for (var i = 0; i < str.length + 1; i++) {
                        if ((i === str.length) || (delimiters.indexOf(str[i]) !== -1)) {
                            var token = str.subarray(tokenStart, i);
                            if (!skipEmpty || token.length !== 0) {
                                result.push(token);
                            }
                            tokenStart = i + 1;
                        }
                    }
                }
                function stringSplitImpl(input, delimiter, skipEmpty) {
                    var batchSize = input.length;
                    // Empty delimiter means split the input character by character.
                    var tokens = [];
                    var outputSize = 0;
                    var maxNumEntries = 0;
                    var numIndices = new Array(batchSize);
                    for (var i = 0; i < batchSize; ++i) {
                        var prevTokensLength = tokens.length;
                        split(input[i], delimiter, skipEmpty, tokens);
                        var nEntries = tokens.length - prevTokensLength;
                        numIndices[i] = nEntries;
                        outputSize += nEntries;
                        maxNumEntries = Math.max(maxNumEntries, nEntries);
                    }
                    var indices = tfjsCore.util.getArrayFromDType('int32', outputSize * 2);
                    var values = new Array(outputSize);
                    var shape = [batchSize, maxNumEntries];
                    var c = 0;
                    for (var i = 0; i < batchSize; ++i) {
                        for (var j = 0; j < numIndices[i]; ++j) {
                            // indices is a 2d tensor with shape of [outputSize, 2]
                            indices[c * 2] = i;
                            indices[c * 2 + 1] = j;
                            values[c] = tokens[c];
                            ++c;
                        }
                    }
                    return [indices, values, shape];
                }

                /**
                 * @license
                 * Copyright 2021 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                function stringToHashBucketFastImpl(input, numBuckets) {
                    var output = tfjsCore.util.getArrayFromDType('int32', input.length);
                    for (var i = 0; i < input.length; ++i) {
                        output[i] = tfjsCore.util.fingerPrint64(input[i]).modulo(numBuckets).getLowBitsUnsigned();
                    }
                    return output;
                }

                function slice(args) {
                    var x = args.inputs.x
                        , _a = args.attrs
                        , begin = _a.begin
                        , size = _a.size
                        , backend = args.backend;
                    var _b = __read(tfjsCore.slice_util.parseSliceParams(x, begin, size), 2)
                        , begin_ = _b[0]
                        , size_ = _b[1];
                    var isContinous = tfjsCore.slice_util.isSliceContinous(x.shape, begin_, size_);
                    var xVals = backend.readSync(x.dataId);
                    var out = backend.makeOutput(size_, x.dtype);
                    var xStrides = tfjsCore.util.computeStrides(x.shape);
                    var outData = backend.dataIdMap.get(out.dataId);
                    if (isContinous) {
                        var flatOffset = tfjsCore.slice_util.computeFlatOffset(begin_, xStrides);
                        if (x.dtype === 'string') {
                            outData.stringBytes = xVals.slice(flatOffset, flatOffset + tfjsCore.util.sizeFromShape(size_));
                        } else {
                            var outVals_1 = backend.typedArrayFromHeap(out);
                            outVals_1.set(xVals.subarray(flatOffset, flatOffset + tfjsCore.util.sizeFromShape(size_)));
                        }
                        return out;
                    }
                    if (x.dtype === 'string') {
                        var res = sliceImpl(xVals, begin_, size_, x.shape, x.dtype);
                        outData.stringBytes = res;
                        return out;
                    }
                    var outVals = backend.typedArrayFromHeap(out);
                    var rank = x.shape.length;
                    if (rank === 2) {
                        slice2d(xVals, xStrides[0], outVals, begin_, size_);
                    } else if (rank === 3) {
                        slice3d(xVals, xStrides[0], xStrides[1], outVals, begin_, size_);
                    } else if (rank === 4) {
                        slice4d(xVals, xStrides[0], xStrides[1], xStrides[2], outVals, begin_, size_);
                    } else {
                        var res = sliceImpl(xVals, begin_, size_, x.shape, x.dtype);
                        outVals.set(res);
                    }
                    return out;
                }
                function slice2d(xVals, xStride, outVals, begin, size) {
                    var outOffset = 0;
                    var beginI = begin[0];
                    var beginJ = begin[1];
                    var endI = beginI + size[0];
                    for (var i = beginI; i < endI; i++) {
                        var xOffset = i * xStride + beginJ;
                        outVals.set(xVals.subarray(xOffset, xOffset + size[1]), outOffset);
                        outOffset += size[1];
                    }
                }
                function slice3d(xVals, xStride1, xStride2, outVals, begin, size) {
                    var outOffset = 0;
                    var beginI = begin[0];
                    var beginJ = begin[1];
                    var beginK = begin[2];
                    var endI = beginI + size[0];
                    var endJ = beginJ + size[1];
                    for (var i = beginI; i < endI; i++) {
                        for (var j = beginJ; j < endJ; j++) {
                            var xOffset = i * xStride1 + j * xStride2 + beginK;
                            outVals.set(xVals.subarray(xOffset, xOffset + size[2]), outOffset);
                            outOffset += size[2];
                        }
                    }
                }
                function slice4d(xVals, xStride1, xStride2, xStride3, outVals, begin, size) {
                    var outOffset = 0;
                    var beginI = begin[0];
                    var beginJ = begin[1];
                    var beginK = begin[2];
                    var endI = beginI + size[0];
                    var endJ = beginJ + size[1];
                    var endK = beginK + size[2];
                    var beginL = begin[3];
                    for (var i = beginI; i < endI; i++) {
                        for (var j = beginJ; j < endJ; j++) {
                            for (var k = beginK; k < endK; k++) {
                                var xOffset = i * xStride1 + j * xStride2 + k * xStride3 + beginL;
                                outVals.set(xVals.subarray(xOffset, xOffset + size[3]), outOffset);
                                outOffset += size[3];
                            }
                        }
                    }
                }
                var sliceConfig = {
                    kernelName: tfjsCore.Slice,
                    backendName: 'wasm',
                    kernelFunc: slice,
                };

                /**
                 * @license
                 * Copyright 2021 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                function batchToSpaceND(args) {
                    var inputs = args.inputs
                        , backend = args.backend
                        , attrs = args.attrs;
                    var x = inputs.x;
                    var blockShape = attrs.blockShape
                        , crops = attrs.crops;
                    var prod = blockShape.reduce(function (a, b) {
                        return a * b;
                    });
                    var reshaped = tfjsCore.backend_util.getReshaped(x.shape, blockShape, prod);
                    var permuted = tfjsCore.backend_util.getPermuted(reshaped.length, blockShape.length);
                    var reshapedPermuted = tfjsCore.backend_util.getReshapedPermuted(x.shape, blockShape, prod);
                    var sliceBeginCoords = tfjsCore.backend_util.getSliceBeginCoords(crops, blockShape.length);
                    var sliceSize = tfjsCore.backend_util.getSliceSize(reshapedPermuted, crops, blockShape.length);
                    var xReshaped = reshape({
                        inputs: {
                            x: x
                        },
                        backend: backend,
                        attrs: {
                            shape: reshaped
                        }
                    });
                    var xTransposed = transpose({
                        inputs: {
                            x: xReshaped
                        },
                        backend: backend,
                        attrs: {
                            perm: permuted
                        }
                    });
                    var xTransposedReshaped = reshape({
                        inputs: {
                            x: xTransposed
                        },
                        backend: backend,
                        attrs: {
                            shape: reshapedPermuted
                        }
                    });
                    var result = slice({
                        inputs: {
                            x: xTransposedReshaped
                        },
                        backend: backend,
                        attrs: {
                            begin: sliceBeginCoords,
                            size: sliceSize
                        }
                    });
                    backend.disposeData(xReshaped.dataId);
                    backend.disposeData(xTransposed.dataId);
                    backend.disposeData(xReshaped.dataId);
                    return result;
                }
                var batchToSpaceNDConfig = {
                    kernelName: tfjsCore.BatchToSpaceND,
                    backendName: 'wasm',
                    kernelFunc: batchToSpaceND
                };

                /**
                 * @license
                 * Copyright 2019 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                function cast(args) {
                    var x = args.inputs.x
                        , dtype = args.attrs.dtype
                        , backend = args.backend;
                    var out = backend.makeOutput(x.shape, dtype);
                    var inVals = backend.typedArrayFromHeap(x);
                    var outVals = backend.typedArrayFromHeap(out);
                    outVals.set(inVals);
                    return out;
                }
                var castConfig = {
                    kernelName: tfjsCore.Cast,
                    backendName: 'wasm',
                    kernelFunc: cast,
                };

                /**
                 * @license
                 * Copyright 2021 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var ceilConfig = createUnaryKernelConfig(tfjsCore.Ceil);

                /**
                 * @license
                 * Copyright 2019 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var wasmClip;
                function setup$G(backend) {
                    wasmClip = backend.wasm.cwrap(tfjsCore.ClipByValue, null /* void */
                        , ['number', 'number', 'number', 'number'// out_id
                        ]);
                }
                function clip(args) {
                    var inputs = args.inputs
                        , backend = args.backend
                        , attrs = args.attrs;
                    var x = inputs.x;
                    var clipValueMin = attrs.clipValueMin
                        , clipValueMax = attrs.clipValueMax;
                    var xId = backend.dataIdMap.get(x.dataId).id;
                    var out = backend.makeOutput(x.shape, x.dtype);
                    var outId = backend.dataIdMap.get(out.dataId).id;
                    wasmClip(xId, clipValueMin, clipValueMax, outId);
                    return out;
                }
                var clipByValueConfig = {
                    kernelName: tfjsCore.ClipByValue,
                    backendName: 'wasm',
                    setupFunc: setup$G,
                    kernelFunc: clip
                };

                /**
                 * @license
                 * Copyright 2019 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                function concat(args) {
                    var inputs = args.inputs
                        , backend = args.backend;
                    var axis = tfjsCore.util.parseAxisParam(args.attrs.axis, inputs[0].shape)[0];
                    var shapes = inputs.map(function (t) {
                        return t.shape;
                    });
                    tfjsCore.backend_util.assertParamsConsistent(shapes, axis);
                    var outShape = tfjsCore.backend_util.computeOutShape(inputs.map(function (t) {
                        return t.shape;
                    }), axis);
                    // Keep only non-empty tensors (ignore tensors with 0 in their shape).
                    var $inputs = inputs.filter(function (t) {
                        return tfjsCore.util.sizeFromShape(t.shape) > 0;
                    });
                    if ($inputs.length === 1) {
                        return identity({
                            inputs: {
                                x: $inputs[0]
                            },
                            backend: backend
                        });
                    }
                    var out = backend.makeOutput(outShape, inputs[0].dtype);
                    if (tfjsCore.util.sizeFromShape(outShape) === 0) {
                        return out;
                    }
                    if ($inputs[0].dtype === 'string') {
                        // Any concat of n-dimensional tensors across any axis can be reduced to
                        // a concatenation of two-dimensional tensors across the axis 1 by first
                        // partitioning the axes of the original tensors into those less than the
                        // axis to be concatenated and the rest. Then reshape the tensors
                        // into a two-dimensional tensor by collapsing these two sets of axes and
                        // concatenate the resulting matrices across the axis 1, finally reshaping
                        // the result to have the proper shape.
                        var inputs2D = $inputs.map(function (t) {
                            var innerSize = tfjsCore.util.sizeFromShape(t.shape.slice(axis));
                            var shape = [-1, innerSize];
                            return reshape({
                                inputs: {
                                    x: t
                                },
                                backend: backend,
                                attrs: {
                                    shape: shape
                                }
                            });
                        });
                        var inputsValShapes = inputs2D.map(function (t) {
                            return {
                                vals: backend.readSync(t.dataId),
                                shape: t.shape
                            };
                        });
                        // Concats 2d tensors along axis=1.
                        outShape = tfjsCore.backend_util.computeOutShape(inputs2D.map(function (t) {
                            return t.shape;
                        }), 1 /* axis */
                        );
                        var simplyConcat = inputs2D[0].shape[0] === 1;
                        var outVals_1 = concatImpl(inputsValShapes, outShape, inputs[0].dtype, simplyConcat);
                        var finalOutShape = tfjsCore.backend_util.computeOutShape($inputs.map(function (t) {
                            return t.shape;
                        }), axis);
                        out.shape = finalOutShape;
                        var outData = backend.dataIdMap.get(out.dataId);
                        outData.stringBytes = tfjsCore.backend_util.fromStringArrayToUint8(outVals_1);
                        inputs2D.forEach(function (t) {
                            return backend.disposeData(t.dataId);
                        });
                        return out;
                    }
                    var batchDim = tfjsCore.util.sizeFromShape($inputs[0].shape.slice(0, axis));
                    var sumInnerDims = 0;
                    var innerDims = $inputs.map(function (input) {
                        var innerDim = tfjsCore.util.sizeFromShape(input.shape.slice(axis));
                        sumInnerDims += innerDim;
                        return innerDim;
                    });
                    var inVals = $inputs.map(function (input) {
                        return backend.typedArrayFromHeap(input);
                    });
                    var outVals = backend.typedArrayFromHeap(out);
                    for (var b = 0; b < batchDim; b++) {
                        var outOffset = b * sumInnerDims;
                        for (var i = 0; i < inVals.length; i++) {
                            var innerDim = innerDims[i];
                            var inOffset = b * innerDim;
                            var vals = inVals[i].subarray(inOffset, inOffset + innerDim);
                            outVals.set(vals, outOffset);
                            outOffset += innerDim;
                        }
                    }
                    return out;
                }
                var concatConfig = {
                    kernelName: tfjsCore.Concat,
                    backendName: 'wasm',
                    kernelFunc: concat,
                };

                /**
                 * @license
                 * Copyright 2019 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var wasmConv2d;
                function setup$F(backend) {
                    wasmConv2d = backend.wasm.cwrap(tfjsCore.Conv2D, null /* void */
                        , ['number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', // outId
                        ]);
                }
                function conv2d(args) {
                    var inputs = args.inputs
                        , attrs = args.attrs
                        , backend = args.backend;
                    var x = inputs.x
                        , filter = inputs.filter;
                    var xId = backend.dataIdMap.get(x.dataId).id;
                    var filterId = backend.dataIdMap.get(filter.dataId).id;
                    var strides = attrs.strides
                        , dilations = attrs.dilations
                        , pad = attrs.pad
                        , dimRoundingMode = attrs.dimRoundingMode
                        , dataFormat = attrs.dataFormat;
                    var $dataFormat = tfjsCore.backend_util.convertConv2DDataFormat(dataFormat);
                    var convInfo = tfjsCore.backend_util.computeConv2DInfo(x.shape, filter.shape, strides, dilations, pad, dimRoundingMode, false, $dataFormat);
                    var filterHeight = convInfo.filterHeight;
                    var filterWidth = convInfo.filterWidth;
                    var padTop = convInfo.padInfo.top;
                    var padRight = convInfo.padInfo.right;
                    var padBottom = convInfo.padInfo.bottom;
                    var padLeft = convInfo.padInfo.left;
                    var dilationHeight = convInfo.dilationHeight;
                    var dilationWidth = convInfo.dilationWidth;
                    var strideHeight = convInfo.strideHeight;
                    var strideWidth = convInfo.strideWidth;
                    var inputChannels = convInfo.inChannels;
                    var outputChannels = convInfo.outChannels;
                    var isSamePad = convInfo.padInfo.type === 'SAME' ? 1 : 0;
                    if (convInfo.dataFormat !== 'channelsLast') {
                        throw new Error("wasm backend Conv2D does not support dataFormat:'" + "".concat(convInfo.dataFormat, "'. Please use 'channelsLast'."));
                    }
                    var out = backend.makeOutput(convInfo.outShape, 'float32');
                    var outId = backend.dataIdMap.get(out.dataId).id;
                    wasmConv2d(xId, x.shape[0], x.shape[1], x.shape[2], filterId, filterHeight, filterWidth, padTop, padRight, padBottom, padLeft, isSamePad, dilationHeight, dilationWidth, strideHeight, strideWidth, inputChannels, outputChannels, outId);
                    return out;
                }
                var conv2DConfig = {
                    kernelName: tfjsCore.Conv2D,
                    backendName: 'wasm',
                    setupFunc: setup$F,
                    kernelFunc: conv2d
                };

                var wasmConv2DBackpropInput;
                function setup$E(backend) {
                    wasmConv2DBackpropInput = backend.wasm.cwrap(tfjsCore.Conv2DBackpropInput, null, ['number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', // outId
                    ]);
                }
                function conv2DBackpropInput(args) {
                    var backend = args.backend
                        , inputs = args.inputs
                        , attrs = args.attrs;
                    var dy = inputs.dy
                        , filter = inputs.filter;
                    var strides = attrs.strides
                        , pad = attrs.pad
                        , dataFormat = attrs.dataFormat
                        , dimRoundingMode = attrs.dimRoundingMode
                        , inputShape = attrs.inputShape;
                    var dilations = 1;
                    var $dataFormat = tfjsCore.backend_util.convertConv2DDataFormat(dataFormat);
                    var convInfo = tfjsCore.backend_util.computeConv2DInfo(inputShape, filter.shape, strides, dilations, pad, dimRoundingMode, false /* depthwise */
                        , $dataFormat);
                    var batchSize = convInfo.batchSize
                        , filterHeight = convInfo.filterHeight
                        , filterWidth = convInfo.filterWidth
                        , inChannels = convInfo.inChannels
                        , inHeight = convInfo.inHeight
                        , inWidth = convInfo.inWidth
                        , outChannels = convInfo.outChannels
                        , outHeight = convInfo.outHeight
                        , outWidth = convInfo.outWidth
                        , strideHeight = convInfo.strideHeight
                        , strideWidth = convInfo.strideWidth;
                    var topPad = filterHeight - 1 - convInfo.padInfo.top;
                    var leftPad = filterWidth - 1 - convInfo.padInfo.left;
                    var isChannelsLast = convInfo.dataFormat === 'channelsLast';
                    var dxStrides = tfjsCore.util.computeStrides(convInfo.inShape);
                    var dyStrides = tfjsCore.util.computeStrides(dy.shape);
                    var _a = __read(tfjsCore.util.computeStrides(filter.shape), 3)
                        , fltS0 = _a[0]
                        , fltS1 = _a[1]
                        , fltS2 = _a[2];
                    var xBatchStride = dxStrides[0];
                    var xRowStride = isChannelsLast ? dxStrides[1] : dxStrides[2];
                    var xColStride = isChannelsLast ? dxStrides[2] : 1;
                    var xChannelStride = isChannelsLast ? 1 : dxStrides[1];
                    var yBatchStride = dyStrides[0];
                    var yRowStride = isChannelsLast ? dyStrides[1] : dyStrides[2];
                    var yColStride = isChannelsLast ? dyStrides[2] : 1;
                    var yChannelStride = isChannelsLast ? 1 : dyStrides[1];
                    var out = backend.makeOutput(convInfo.inShape, 'float32');
                    var outId = backend.dataIdMap.get(out.dataId).id;
                    var dyId = backend.dataIdMap.get(dy.dataId).id;
                    var filterId = backend.dataIdMap.get(filter.dataId).id;
                    wasmConv2DBackpropInput(dyId, filterId, batchSize, filterHeight, filterWidth, inHeight, inWidth, inChannels, outHeight, outWidth, outChannels, strideHeight, strideWidth, topPad, leftPad, fltS0, fltS1, fltS2, xBatchStride, xRowStride, xColStride, xChannelStride, yBatchStride, yRowStride, yColStride, yChannelStride, outId);
                    return out;
                }
                var conv2DBackpropInputConfig = {
                    kernelName: tfjsCore.Conv2DBackpropInput,
                    backendName: 'wasm',
                    setupFunc: setup$E,
                    kernelFunc: conv2DBackpropInput
                };

                /**
                 * @license
                 * Copyright 2019 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var cosConfig = createUnaryKernelConfig(tfjsCore.Cos);

                /**
                 * @license
                 * Copyright 2021 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var coshConfig = createUnaryKernelConfig(tfjsCore.Cosh);

                // Must match enum in CropAndResize.cc
                var InterpolationMethod;
                (function (InterpolationMethod) {
                    InterpolationMethod[InterpolationMethod["bilinear"] = 0] = "bilinear";
                    InterpolationMethod[InterpolationMethod["nearest"] = 1] = "nearest";
                }
                )(InterpolationMethod || (InterpolationMethod = {}));
                var wasmCropAndResize;
                function setup$D(backend) {
                    wasmCropAndResize = backend.wasm.cwrap(tfjsCore.CropAndResize, null /*void*/
                        , ['number', 'number', 'number', 'number', 'array', 'number', 'number', 'number', 'number', 'number'// out id
                        ]);
                }
                function cropAndResize(args) {
                    var backend = args.backend
                        , inputs = args.inputs
                        , attrs = args.attrs;
                    var method = attrs.method
                        , extrapolationValue = attrs.extrapolationValue
                        , cropSize = attrs.cropSize;
                    var image = inputs.image
                        , boxes = inputs.boxes
                        , boxInd = inputs.boxInd;
                    var numBoxes = boxes.shape[0];
                    var _a = __read(cropSize, 2)
                        , cropHeight = _a[0]
                        , cropWidth = _a[1];
                    var outShape = [numBoxes, cropHeight, cropWidth, image.shape[3]];
                    var imagesData = backend.dataIdMap.get(image.dataId);
                    var castedData;
                    if (image.dtype !== 'float32') {
                        castedData = cast({
                            backend: backend,
                            inputs: {
                                x: image
                            },
                            attrs: {
                                dtype: 'float32'
                            }
                        });
                        imagesData = backend.dataIdMap.get(castedData.dataId);
                    }
                    var imagesId = imagesData.id;
                    var boxesId = backend.dataIdMap.get(boxes.dataId).id;
                    var boxIndId = backend.dataIdMap.get(boxInd.dataId).id;
                    var out = backend.makeOutput(outShape, 'float32');
                    var outId = backend.dataIdMap.get(out.dataId).id;
                    var imagesShapeBytes = new Uint8Array(new Int32Array(image.shape).buffer);
                    wasmCropAndResize(imagesId, boxesId, boxIndId, numBoxes, imagesShapeBytes, cropHeight, cropWidth, InterpolationMethod[method], extrapolationValue, outId);
                    if (castedData != null) {
                        backend.disposeData(castedData.dataId);
                    }
                    return out;
                }
                var cropAndResizeConfig = {
                    kernelName: tfjsCore.CropAndResize,
                    backendName: 'wasm',
                    setupFunc: setup$D,
                    kernelFunc: cropAndResize
                };

                /**
                 * @license
                 * Copyright 2022 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var wasmCumprod;
                function setup$C(backend) {
                    wasmCumprod = backend.wasm.cwrap(tfjsCore.Cumprod, null /* void */
                        , ['number', 'number', 'number', 'number', 'number', 'number'// dtype
                        ]);
                }
                function cumprod(args) {
                    var inputs = args.inputs
                        , backend = args.backend
                        , attrs = args.attrs;
                    var x = inputs.x;
                    var axis = attrs.axis
                        , exclusive = attrs.exclusive
                        , reverse = attrs.reverse;
                    var xRank = x.shape.length;
                    tfjsCore.util.assert(x.dtype === 'float32' || x.dtype === 'int32', function () {
                        return "cumprod does not support ".concat(x.dtype, " tensors in the WASM backend");
                    });
                    // permute required axis to inner most axis
                    var permutation = tfjsCore.backend_util.getAxesPermutation([axis], xRank);
                    var permutedX = x;
                    if (permutation !== null) {
                        permutedX = transpose({
                            inputs: {
                                x: x
                            },
                            attrs: {
                                perm: permutation
                            },
                            backend: backend
                        });
                    }
                    var permutedAxis = tfjsCore.backend_util.getInnerMostAxes(1, xRank)[0];
                    tfjsCore.backend_util.assertAxesAreInnerMostDims('cumprod', [permutedAxis], xRank);
                    var permutedOut = backend.makeOutput(permutedX.shape, permutedX.dtype);
                    var finalDim = permutedX.shape[permutedAxis];
                    var permutedXId = backend.dataIdMap.get(permutedX.dataId).id;
                    var permutedOutId = backend.dataIdMap.get(permutedOut.dataId).id;
                    wasmCumprod(permutedXId, exclusive ? 1 : 0, reverse ? 1 : 0, finalDim, permutedOutId, CppDType[x.dtype]);
                    // transpose data back if permuted
                    var out = permutedOut;
                    if (permutation !== null) {
                        var undoPermutation = tfjsCore.backend_util.getUndoAxesPermutation(permutation);
                        out = transpose({
                            inputs: {
                                x: permutedOut
                            },
                            attrs: {
                                perm: undoPermutation
                            },
                            backend: backend
                        });
                        backend.disposeData(permutedX.dataId);
                        backend.disposeData(permutedOut.dataId);
                    }
                    return out;
                }
                var cumprodConfig = {
                    kernelName: tfjsCore.Cumprod,
                    backendName: 'wasm',
                    setupFunc: setup$C,
                    kernelFunc: cumprod
                };

                /**
                 * @license
                 * Copyright 2020 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var wasmCumsum;
                function setup$B(backend) {
                    wasmCumsum = backend.wasm.cwrap(tfjsCore.Cumsum, null /* void */
                        , ['number', 'number', 'number', 'number', 'number', 'number'// dtype
                        ]);
                }
                function cumsum(args) {
                    var inputs = args.inputs
                        , backend = args.backend
                        , attrs = args.attrs;
                    var x = inputs.x;
                    var axis = attrs.axis
                        , exclusive = attrs.exclusive
                        , reverse = attrs.reverse;
                    var xRank = x.shape.length;
                    tfjsCore.util.assert(x.dtype === 'float32' || x.dtype === 'int32', function () {
                        return "cumsum does not support ".concat(x.dtype, " tensors in the WASM backend");
                    });
                    // permute required axis to inner most axis
                    var permutation = tfjsCore.backend_util.getAxesPermutation([axis], xRank);
                    var permutedX = x;
                    if (permutation !== null) {
                        permutedX = transpose({
                            inputs: {
                                x: x
                            },
                            attrs: {
                                perm: permutation
                            },
                            backend: backend
                        });
                    }
                    var permutedAxis = tfjsCore.backend_util.getInnerMostAxes(1, xRank)[0];
                    tfjsCore.backend_util.assertAxesAreInnerMostDims('cumsum', [permutedAxis], xRank);
                    var permutedOut = backend.makeOutput(permutedX.shape, permutedX.dtype);
                    var finalDim = permutedX.shape[permutedAxis];
                    var permutedXId = backend.dataIdMap.get(permutedX.dataId).id;
                    var permutedOutId = backend.dataIdMap.get(permutedOut.dataId).id;
                    wasmCumsum(permutedXId, exclusive ? 1 : 0, reverse ? 1 : 0, finalDim, permutedOutId, CppDType[x.dtype]);
                    // transpose data back if permuted
                    var out = permutedOut;
                    if (permutation !== null) {
                        var undoPermutation = tfjsCore.backend_util.getUndoAxesPermutation(permutation);
                        out = transpose({
                            inputs: {
                                x: permutedOut
                            },
                            attrs: {
                                perm: undoPermutation
                            },
                            backend: backend
                        });
                        backend.disposeData(permutedX.dataId);
                        backend.disposeData(permutedOut.dataId);
                    }
                    return out;
                }
                var cumsumConfig = {
                    kernelName: tfjsCore.Cumsum,
                    backendName: 'wasm',
                    setupFunc: setup$B,
                    kernelFunc: cumsum
                };

                /**
                 * @license
                 * Copyright 2019 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var wasmDepthToSpace;
                function setup$A(backend) {
                    wasmDepthToSpace = backend.wasm.cwrap(tfjsCore.DepthToSpace, null /*void*/
                        , ['number', 'number', 'number', 'array', 'number', 'array', 'array', 'number', 'number', // outId
                        ]);
                }
                function depthToSpace(args) {
                    var backend = args.backend
                        , inputs = args.inputs
                        , attrs = args.attrs;
                    var x = inputs.x;
                    var blockSize = attrs.blockSize
                        , dataFormat = attrs.dataFormat;
                    var batchSize = x.shape[0];
                    var inputHeight = (dataFormat === 'NHWC') ? x.shape[1] : x.shape[2];
                    var inputWidth = (dataFormat === 'NHWC') ? x.shape[2] : x.shape[3];
                    var inputDepth = (dataFormat === 'NHWC') ? x.shape[3] : x.shape[1];
                    var outputHeight = inputHeight * blockSize;
                    var outputWidth = inputWidth * blockSize;
                    var outputDepth = inputDepth / (blockSize * blockSize);
                    var outputShape = (dataFormat === 'NHWC') ? [batchSize, outputHeight, outputWidth, outputDepth] : [batchSize, outputDepth, outputHeight, outputWidth];
                    var out = backend.makeOutput(outputShape, 'float32');
                    var xData = backend.dataIdMap.get(x.dataId);
                    var xId = xData.id;
                    var xStridesBytes = new Uint8Array(new Int32Array(tfjsCore.util.computeStrides(x.shape)).buffer);
                    var outputShapeBytes = new Uint8Array(new Int32Array(outputShape).buffer);
                    var outStridesBytes = new Uint8Array(new Int32Array(tfjsCore.util.computeStrides(outputShape)).buffer);
                    var outId = backend.dataIdMap.get(out.dataId).id;
                    var channelsLast = dataFormat === 'NHWC' ? 1 : 0;
                    wasmDepthToSpace(xId, blockSize, channelsLast, xStridesBytes, x.shape.length - 1, outputShapeBytes, outStridesBytes, outputShape.length, outId);
                    return out;
                }
                var depthToSpaceConfig = {
                    kernelName: tfjsCore.DepthToSpace,
                    backendName: 'wasm',
                    setupFunc: setup$A,
                    kernelFunc: depthToSpace
                };

                /**
                 * @license
                 * Copyright 2019 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var wasmDepthwiseConv2d;
                function setup$z(backend) {
                    wasmDepthwiseConv2d = backend.wasm.cwrap(tfjsCore.DepthwiseConv2dNative, null /* void */
                        , ['number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', // outId
                        ]);
                }
                function depthwiseConv2d(args) {
                    var inputs = args.inputs
                        , attrs = args.attrs
                        , backend = args.backend;
                    var x = inputs.x
                        , filter = inputs.filter;
                    var xId = backend.dataIdMap.get(x.dataId).id;
                    var filterId = backend.dataIdMap.get(filter.dataId).id;
                    var strides = attrs.strides
                        , dilations = attrs.dilations
                        , pad = attrs.pad
                        , dimRoundingMode = attrs.dimRoundingMode;
                    var $dilations = dilations == null ? [1, 1] : dilations;
                    var convInfo = tfjsCore.backend_util.computeConv2DInfo(x.shape, filter.shape, strides, $dilations, pad, dimRoundingMode, true /* depthwise */
                    );
                    var filterHeight = convInfo.filterHeight;
                    var filterWidth = convInfo.filterWidth;
                    var padTop = convInfo.padInfo.top;
                    var padRight = convInfo.padInfo.right;
                    var padBottom = convInfo.padInfo.bottom;
                    var padLeft = convInfo.padInfo.left;
                    var dilationHeight = convInfo.dilationHeight;
                    var dilationWidth = convInfo.dilationWidth;
                    var strideHeight = convInfo.strideHeight;
                    var strideWidth = convInfo.strideWidth;
                    var inputChannels = convInfo.inChannels;
                    var outputChannels = convInfo.outChannels;
                    var isSamePad = convInfo.padInfo.type === 'SAME' ? 1 : 0;
                    if (convInfo.dataFormat !== 'channelsLast') {
                        throw new Error("wasm backend DepthwiseConv2dNative does not support dataFormat:'" + "".concat(convInfo.dataFormat, "'. Please use 'channelsLast'."));
                    }
                    var out = backend.makeOutput(convInfo.outShape, 'float32');
                    var outId = backend.dataIdMap.get(out.dataId).id;
                    wasmDepthwiseConv2d(xId, x.shape[0], x.shape[1], x.shape[2], filterId, filterHeight, filterWidth, padTop, padRight, padBottom, padLeft, isSamePad, dilationHeight, dilationWidth, strideHeight, strideWidth, inputChannels, outputChannels, outId);
                    return out;
                }
                var depthwiseConv2dNativeConfig = {
                    kernelName: tfjsCore.DepthwiseConv2dNative,
                    backendName: 'wasm',
                    setupFunc: setup$z,
                    kernelFunc: depthwiseConv2d
                };

                /**
                 * @license
                 * Copyright 2021 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var eluConfig = createUnaryKernelConfig(tfjsCore.Elu);

                /**
                 * @license
                 * Copyright 2020 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var supportsFullBroadcast$8 = false;
                var equalConfig = createBinaryKernelConfig(tfjsCore.Equal, supportsFullBroadcast$8, 'bool');

                /**
                 * @license
                 * Copyright 2019 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var expConfig = createUnaryKernelConfig(tfjsCore.Exp, 'float32');

                /**
                 * @license
                 * Copyright 2019 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                function expandDims(args) {
                    var inputs = args.inputs
                        , attrs = args.attrs
                        , backend = args.backend;
                    var input = inputs.input;
                    var dim = attrs.dim;
                    var inputRank = input.shape.length;
                    var newShape = input.shape.slice();
                    var $dim = dim;
                    if (dim < 0) {
                        // Negative value is counted from the tail of rank.
                        tfjsCore.util.assert(-(inputRank + 1) <= dim, function () {
                            return "Axis must be in the interval [".concat(-(inputRank + 1), ", ").concat(inputRank, "]");
                        });
                        $dim = inputRank + dim + 1;
                    }
                    newShape.splice($dim, 0, 1);
                    return reshape({
                        inputs: {
                            x: input
                        },
                        backend: backend,
                        attrs: {
                            shape: newShape
                        }
                    });
                }
                var expandDimsConfig = {
                    kernelName: tfjsCore.ExpandDims,
                    backendName: 'wasm',
                    kernelFunc: expandDims,
                };

                /**
                 * @license
                 * Copyright 2020 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                function fill(args) {
                    var _a = args.attrs
                        , shape = _a.shape
                        , value = _a.value
                        , dtype = _a.dtype
                        , backend = args.backend;
                    var out = backend.makeOutput(shape, dtype);
                    var outVals = backend.typedArrayFromHeap(out);
                    outVals.fill(value);
                    return out;
                }
                var fillConfig = {
                    kernelName: tfjsCore.Fill,
                    backendName: 'wasm',
                    kernelFunc: fill,
                };

                var wasmFlipLeftRight;
                function setup$y(backend) {
                    wasmFlipLeftRight = backend.wasm.cwrap(tfjsCore.FlipLeftRight, null /* void */
                        , ['number', 'number', 'number', 'number', 'number', 'number', // outId
                        ]);
                }
                function flipLeftRight(args) {
                    var inputs = args.inputs
                        , backend = args.backend;
                    var image = inputs.image;
                    var out = backend.makeOutput(image.shape, image.dtype);
                    var imageId = backend.dataIdMap.get(image.dataId).id;
                    var outId = backend.dataIdMap.get(out.dataId).id;
                    var _a = __read(image.shape, 4)
                        , batch = _a[0]
                        , imageHeight = _a[1]
                        , imageWidth = _a[2]
                        , numChannels = _a[3];
                    wasmFlipLeftRight(imageId, batch, imageHeight, imageWidth, numChannels, outId);
                    return out;
                }
                var flipLeftRightConfig = {
                    kernelName: tfjsCore.FlipLeftRight,
                    backendName: 'wasm',
                    kernelFunc: flipLeftRight,
                    setupFunc: setup$y
                };

                /**
                 * @license
                 * Copyright 2020 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var floorConfig = createUnaryKernelConfig(tfjsCore.Floor);

                /**
                 * @license
                 * Copyright 2019 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var floorDivConfig = createBinaryKernelConfig(tfjsCore.FloorDiv);

                /**
                 * @license
                 * Copyright 2019 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var wasmBatchNorm;
                function setup$x(backend) {
                    wasmBatchNorm = backend.wasm.cwrap(tfjsCore.FusedBatchNorm, null /* void */
                        , ['number', 'number', 'number', 'number', 'number', 'number', 'number']);
                }
                function fusedBatchNorm(args) {
                    var backend = args.backend
                        , inputs = args.inputs
                        , attrs = args.attrs;
                    var varianceEpsilon = attrs.varianceEpsilon;
                    var x = inputs.x
                        , mean = inputs.mean
                        , variance = inputs.variance
                        , offset = inputs.offset
                        , scale = inputs.scale;
                    var xId = backend.dataIdMap.get(x.dataId).id;
                    var meanId = backend.dataIdMap.get(mean.dataId).id;
                    var varianceId = backend.dataIdMap.get(variance.dataId).id;
                    var offsetId = offset != null ? backend.dataIdMap.get(offset.dataId).id : 0;
                    var scaleId = scale != null ? backend.dataIdMap.get(scale.dataId).id : 0;
                    var out = backend.makeOutput(x.shape, x.dtype);
                    // Short-circuit zero-sized tensors.
                    if (tfjsCore.util.sizeFromShape(x.shape) === 0) {
                        return out;
                    }
                    var outId = backend.dataIdMap.get(out.dataId).id;
                    wasmBatchNorm(xId, meanId, varianceId, offsetId, scaleId, varianceEpsilon, outId);
                    return out;
                }
                var fusedBatchNormConfig = {
                    kernelName: tfjsCore.FusedBatchNorm,
                    backendName: 'wasm',
                    setupFunc: setup$x,
                    kernelFunc: fusedBatchNorm
                };

                /**
                 * @license
                 * Copyright 2019 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var wasmFusedConv2d;
                function setup$w(backend) {
                    wasmFusedConv2d = backend.wasm.cwrap(tfjsCore.FusedConv2D, null /* void */
                        , ['number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', // outId
                        ]);
                }
                function fusedConv2d(args) {
                    var inputs = args.inputs
                        , attrs = args.attrs
                        , backend = args.backend;
                    var x = inputs.x
                        , filter = inputs.filter
                        , bias = inputs.bias
                        , preluActivationWeights = inputs.preluActivationWeights;
                    var strides = attrs.strides
                        , pad = attrs.pad
                        , dilations = attrs.dilations
                        , dataFormat = attrs.dataFormat
                        , dimRoundingMode = attrs.dimRoundingMode
                        , activation = attrs.activation
                        , leakyreluAlpha = attrs.leakyreluAlpha;
                    var convInfo = tfjsCore.backend_util.computeConv2DInfo(x.shape, filter.shape, strides, dilations, pad, dimRoundingMode);
                    var fusedActivation = FusableActivation[activation];
                    if (fusedActivation == null) {
                        throw new Error("".concat(activation, " activation not yet supported for FusedConv2D ") + "in the wasm backend.");
                    }
                    var xId = backend.dataIdMap.get(x.dataId).id;
                    var filterId = backend.dataIdMap.get(filter.dataId).id;
                    var outputChannels = convInfo.outChannels;
                    var biasId = 0;
                    if (bias != null) {
                        var biasData = backend.dataIdMap.get(bias.dataId);
                        if (biasData.shape.length !== 1) {
                            throw new Error("FusedConv2D only supports rank-1 bias but got " + "rank ".concat(biasData.shape.length, "."));
                        }
                        if (biasData.shape[0] !== outputChannels) {
                            throw new Error("FusedConv2D bias shape (".concat(biasData.shape, ") does not ") + "match the number of output channels (".concat(outputChannels, ")"));
                        }
                        biasId = biasData.id;
                    }
                    var filterHeight = convInfo.filterHeight;
                    var filterWidth = convInfo.filterWidth;
                    var padTop = convInfo.padInfo.top;
                    var padRight = convInfo.padInfo.right;
                    var padBottom = convInfo.padInfo.bottom;
                    var padLeft = convInfo.padInfo.left;
                    var dilationHeight = convInfo.dilationHeight;
                    var dilationWidth = convInfo.dilationWidth;
                    var strideHeight = convInfo.strideHeight;
                    var strideWidth = convInfo.strideWidth;
                    var inputChannels = convInfo.inChannels;
                    var isSamePad = convInfo.padInfo.type === 'SAME' ? 1 : 0;
                    var batchSize = convInfo.batchSize;
                    var inHeight = convInfo.inHeight;
                    var inWidth = convInfo.inWidth;
                    if (dataFormat !== 'NHWC') {
                        throw new Error("wasm backend FusedConv2D does not support dataFormat:'" + "".concat(dataFormat, "'. Please use 'NHWC'."));
                    }
                    var out = backend.makeOutput(convInfo.outShape, 'float32');
                    var outId = backend.dataIdMap.get(out.dataId).id;
                    var preluActivationWeightsId = preluActivationWeights == null ? 0 : backend.dataIdMap.get(preluActivationWeights.dataId).id;
                    wasmFusedConv2d(xId, batchSize, inHeight, inWidth, filterId, filterHeight, filterWidth, biasId, padTop, padRight, padBottom, padLeft, isSamePad, dilationHeight, dilationWidth, strideHeight, strideWidth, inputChannels, outputChannels, fusedActivation, preluActivationWeightsId, leakyreluAlpha || 0, outId);
                    return out;
                }
                var fusedConv2DConfig = {
                    kernelName: tfjsCore.FusedConv2D,
                    backendName: 'wasm',
                    setupFunc: setup$w,
                    kernelFunc: fusedConv2d
                };

                /**
                 * @license
                 * Copyright 2019 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var wasmFusedDepthwiseConv2d;
                function setup$v(backend) {
                    wasmFusedDepthwiseConv2d = backend.wasm.cwrap(tfjsCore.FusedDepthwiseConv2D, null /* void */
                        , ['number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', // outId
                        ]);
                }
                function fusedDepthwiseConv2d(args) {
                    var inputs = args.inputs
                        , attrs = args.attrs
                        , backend = args.backend;
                    var x = inputs.x
                        , filter = inputs.filter
                        , bias = inputs.bias
                        , preluActivationWeights = inputs.preluActivationWeights;
                    var strides = attrs.strides
                        , pad = attrs.pad
                        , dilations = attrs.dilations
                        , dataFormat = attrs.dataFormat
                        , dimRoundingMode = attrs.dimRoundingMode
                        , activation = attrs.activation
                        , leakyreluAlpha = attrs.leakyreluAlpha;
                    var convInfo = tfjsCore.backend_util.computeConv2DInfo(x.shape, filter.shape, strides, dilations, pad, dimRoundingMode, true /* depthwise */
                    );
                    var fusedActivation = FusableActivation[activation];
                    if (fusedActivation == null) {
                        throw new Error("".concat(activation, " activation not yet supported for FusedDepthwiseConv2D ") + "in the wasm backend.");
                    }
                    var xId = backend.dataIdMap.get(x.dataId).id;
                    var filterId = backend.dataIdMap.get(filter.dataId).id;
                    var outputChannels = convInfo.outChannels;
                    var biasId = 0;
                    if (bias != null) {
                        var biasData = backend.dataIdMap.get(bias.dataId);
                        if (biasData.shape.length !== 1) {
                            throw new Error("FusedDepthwiseConv2D only supports rank-1 bias but got " + "rank ".concat(biasData.shape.length, "."));
                        }
                        if (biasData.shape[0] !== outputChannels) {
                            throw new Error("FusedDepthwiseConv2D bias shape (".concat(biasData.shape, ") does not ") + "match the number of output channels (".concat(outputChannels, ")"));
                        }
                        biasId = biasData.id;
                    }
                    var filterHeight = convInfo.filterHeight;
                    var filterWidth = convInfo.filterWidth;
                    var padTop = convInfo.padInfo.top;
                    var padRight = convInfo.padInfo.right;
                    var padBottom = convInfo.padInfo.bottom;
                    var padLeft = convInfo.padInfo.left;
                    var dilationHeight = convInfo.dilationHeight;
                    var dilationWidth = convInfo.dilationWidth;
                    var strideHeight = convInfo.strideHeight;
                    var strideWidth = convInfo.strideWidth;
                    var inputChannels = convInfo.inChannels;
                    var isSamePad = convInfo.padInfo.type === 'SAME' ? 1 : 0;
                    var batchSize = convInfo.batchSize;
                    var inHeight = convInfo.inHeight;
                    var inWidth = convInfo.inWidth;
                    if (dataFormat !== 'NHWC') {
                        throw new Error("wasm backend FusedDepthwiseConv2D does not support dataFormat:'" + "".concat(dataFormat, "'. Please use 'NHWC'."));
                    }
                    var out = backend.makeOutput(convInfo.outShape, 'float32');
                    var outId = backend.dataIdMap.get(out.dataId).id;
                    var preluActivationWeightsId = preluActivationWeights == null ? 0 : backend.dataIdMap.get(preluActivationWeights.dataId).id;
                    wasmFusedDepthwiseConv2d(xId, batchSize, inHeight, inWidth, filterId, filterHeight, filterWidth, biasId, padTop, padRight, padBottom, padLeft, isSamePad, dilationHeight, dilationWidth, strideHeight, strideWidth, inputChannels, outputChannels, fusedActivation, preluActivationWeightsId, leakyreluAlpha || 0, outId);
                    return out;
                }
                var fusedDepthwiseConv2DConfig = {
                    kernelName: tfjsCore.FusedDepthwiseConv2D,
                    backendName: 'wasm',
                    setupFunc: setup$v,
                    kernelFunc: fusedDepthwiseConv2d
                };

                var wasmGatherNd;
                function setup$u(backend) {
                    wasmGatherNd = backend.wasm.cwrap(tfjsCore.GatherNd, null /*void*/
                        , ['number', 'number', 'number', 'number', 'number', 'number', 'array', 'number'// outId
                        ]);
                }
                function gatherNd(args) {
                    var backend = args.backend
                        , inputs = args.inputs;
                    var params = inputs.params
                        , indices = inputs.indices;
                    var _a = __read(tfjsCore.gather_util.prepareAndValidate(params, indices), 4)
                        , resultShape = _a[0]
                        , numSlices = _a[1]
                        , sliceSize = _a[2]
                        , strides = _a[3];
                    var out = backend.makeOutput(resultShape, params.dtype);
                    if (numSlices === 0) {
                        return out;
                    }
                    var indicesShape = indices.shape;
                    var sliceRank = indicesShape[indicesShape.length - 1];
                    var xData = backend.dataIdMap.get(params.dataId);
                    var xId = xData.id;
                    var indicesData = backend.dataIdMap.get(indices.dataId);
                    var indicesId = indicesData.id;
                    var stridesBytes = new Uint8Array(new Int32Array(strides).buffer);
                    var outId = backend.dataIdMap.get(out.dataId).id;
                    wasmGatherNd(xId, CppDType[params.dtype], indicesId, numSlices, sliceRank, sliceSize, stridesBytes, outId);
                    return out;
                }
                var gatherNdConfig = {
                    kernelName: tfjsCore.GatherNd,
                    backendName: 'wasm',
                    setupFunc: setup$u,
                    kernelFunc: gatherNd
                };

                /**
                 * @license
                 * Copyright 2019 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var wasmGather;
                function setup$t(backend) {
                    wasmGather = backend.wasm.cwrap('Gather', null /*void*/
                        , ['number', 'number', 'array', 'number', 'number', 'number', 'array', 'number'// outId
                        ]);
                }
                function gatherV2(args) {
                    var backend = args.backend
                        , inputs = args.inputs
                        , attrs = args.attrs;
                    var x = inputs.x
                        , indices = inputs.indices;
                    var axis = attrs.axis
                        , batchDims = attrs.batchDims;
                    // Throw error when any index is out of bound.
                    var parsedAxis = tfjsCore.util.parseAxisParam(axis, x.shape)[0];
                    var indicesVals = backend.readSync(indices.dataId);
                    var axisDim = x.shape[parsedAxis];
                    var _loop_1 = function (i) {
                        var index = indicesVals[i];
                        tfjsCore.util.assert(index <= axisDim - 1 && index >= 0, function () {
                            return "GatherV2: the index value ".concat(index, " is not in [0, ").concat(axisDim - 1, "]");
                        });
                    };
                    for (var i = 0; i < indicesVals.length; ++i) {
                        _loop_1(i);
                    }
                    var shapeInfo = tfjsCore.backend_util.segment_util.collectGatherOpShapeInfo(x, indices, parsedAxis, batchDims);
                    var flattenX = reshape({
                        inputs: {
                            x: x
                        },
                        attrs: {
                            shape: [shapeInfo.batchSize, shapeInfo.outerSize, shapeInfo.dimSize, shapeInfo.sliceSize]
                        },
                        backend: backend
                    });
                    var indicesSize = tfjsCore.util.sizeFromShape(indices.shape);
                    var flattenIndex = reshape({
                        inputs: {
                            x: indices
                        },
                        attrs: {
                            shape: [shapeInfo.batchSize, indicesSize / shapeInfo.batchSize]
                        },
                        backend: backend
                    });
                    var flattenOutputShape = [shapeInfo.batchSize, shapeInfo.outerSize, indicesSize / shapeInfo.batchSize, shapeInfo.sliceSize];
                    var out = backend.makeOutput(flattenOutputShape, x.dtype);
                    if (tfjsCore.util.sizeFromShape(x.shape) === 0) {
                        return out;
                    }
                    var stridesSize = flattenX.shape.length - 1;
                    var xData = backend.dataIdMap.get(flattenX.dataId);
                    var xId = xData.id;
                    var indicesData = backend.dataIdMap.get(flattenIndex.dataId);
                    var indicesId = indicesData.id;
                    var outId = backend.dataIdMap.get(out.dataId).id;
                    var xStridesBytes = new Uint8Array(new Int32Array(tfjsCore.util.computeStrides(flattenX.shape)).buffer);
                    var outStridesBytes = new Uint8Array(new Int32Array(tfjsCore.util.computeStrides(flattenOutputShape)).buffer);
                    wasmGather(xId, CppDType[x.dtype], xStridesBytes, stridesSize, indicesId, shapeInfo.batchSize, outStridesBytes, outId);
                    backend.disposeData(flattenX.dataId);
                    backend.disposeData(flattenIndex.dataId);
                    // reshape
                    out.shape = shapeInfo.outputShape;
                    return out;
                }
                var gatherV2Config = {
                    kernelName: tfjsCore.GatherV2,
                    backendName: 'wasm',
                    setupFunc: setup$t,
                    kernelFunc: gatherV2
                };

                /**
                 * @license
                 * Copyright 2019 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var supportsFullBroadcast$7 = false;
                var greaterConfig = createBinaryKernelConfig(tfjsCore.Greater, supportsFullBroadcast$7, 'bool');

                /**
                 * @license
                 * Copyright 2019 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var supportsFullBroadcast$6 = false;
                var greaterEqualConfig = createBinaryKernelConfig(tfjsCore.GreaterEqual, supportsFullBroadcast$6, 'bool');

                /**
                 * @license
                 * Copyright 2022 The TensorFlow Authors. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the License);
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an AS IS BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var isNaNConfig = createUnaryKernelConfig(tfjsCore.IsNan, 'bool');

                /**
                 * @license
                 * Copyright 2019 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var wasmFunc$5;
                function setupFunc(backend) {
                    wasmFunc$5 = backend.wasm.cwrap(tfjsCore.LeakyRelu, null /* void */
                        , ['number', 'number', 'number', 'number', // out_id
                        ]);
                }
                function leakyRelu(args) {
                    var x = args.inputs.x
                        , alpha = args.attrs.alpha
                        , backend = args.backend;
                    var xId = backend.dataIdMap.get(x.dataId).id;
                    // According to TF API, LeakyRelu returns float32 when input is either float32
                    // or int32.
                    var out = backend.makeOutput(x.shape, 'float32');
                    if (tfjsCore.util.sizeFromShape(x.shape) !== 0) {
                        var outId = backend.dataIdMap.get(out.dataId).id;
                        wasmFunc$5(xId, CppDType[x.dtype], alpha, outId);
                    }
                    return out;
                }
                var leakyReluConfig = {
                    kernelName: tfjsCore.LeakyRelu,
                    backendName: 'wasm',
                    setupFunc: setupFunc,
                    kernelFunc: leakyRelu,
                };

                /**
                 * @license
                 * Copyright 2019 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var supportsFullBroadcast$5 = false;
                var lessConfig = createBinaryKernelConfig(tfjsCore.Less, supportsFullBroadcast$5, 'bool');

                /**
                 * @license
                 * Copyright 2019 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var supportsFullBroadcast$4 = false;
                var lessEqualConfig = createBinaryKernelConfig(tfjsCore.LessEqual, supportsFullBroadcast$4, 'bool');

                /**
                 * @license
                 * Copyright 2019 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var logConfig = createUnaryKernelConfig(tfjsCore.Log);

                /**
                 * @license
                 * Copyright 2019 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var supportsFullBroadcast$3 = false;
                var logicalAndConfig = createBinaryKernelConfig(tfjsCore.LogicalAnd, supportsFullBroadcast$3, 'bool');

                /**
                 * @license
                 * Copyright 2019 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var logicalNotConfig = createUnaryKernelConfig(tfjsCore.LogicalNot);

                /**
                 * @license
                 * Copyright 2019 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var supportsFullBroadcast$2 = false;
                var logicalOrConfig = createBinaryKernelConfig(tfjsCore.LogicalOr, supportsFullBroadcast$2, 'bool');

                /**
                 * @license
                 * Copyright 2019 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var supportsFullBroadcast$1 = false;
                var logicalXorConfig = createBinaryKernelConfig(tfjsCore.LogicalXor, supportsFullBroadcast$1, 'bool');

                var wasmMax;
                function setup$s(backend) {
                    wasmMax = backend.wasm.cwrap(tfjsCore.Max, null /*void*/
                        , ['number', 'number', 'number', 'number', // out_id
                        ]);
                }
                function max(args) {
                    var backend = args.backend
                        , inputs = args.inputs
                        , attrs = args.attrs;
                    var axis = attrs.reductionIndices
                        , keepDims = attrs.keepDims;
                    var x = inputs.x;
                    var xId = backend.dataIdMap.get(x.dataId).id;
                    var inputId = xId;
                    var input = x;
                    var _a = permuteAxesAndTranspose(x, axis, backend)
                        , transposed = _a.transposed
                        , axes = _a.axes
                        , originalAxes = _a.originalAxes
                        , inputWasTransposed = _a.inputWasTransposed;
                    if (inputWasTransposed) {
                        var transposedId = backend.dataIdMap.get(transposed.dataId).id;
                        input = transposed;
                        inputId = transposedId;
                    }
                    var inputRank = input.shape.length;
                    tfjsCore.backend_util.assertAxesAreInnerMostDims('max', axes, inputRank);
                    var _b = __read(tfjsCore.backend_util.computeOutAndReduceShapes(input.shape, axes), 2)
                        , outShape = _b[0]
                        , reduceShape = _b[1];
                    var reduceSize = tfjsCore.util.sizeFromShape(reduceShape);
                    var out = backend.makeOutput(outShape, x.dtype);
                    if (tfjsCore.util.sizeFromShape(input.shape) !== 0) {
                        var outId = backend.dataIdMap.get(out.dataId).id;
                        wasmMax(inputId, CppDType[x.dtype], reduceSize, outId);
                    }
                    if (inputWasTransposed) {
                        // dispose of the transposed tensor.
                        backend.disposeData(transposed.dataId);
                    }
                    if (keepDims) {
                        // reshape
                        var newShape = tfjsCore.backend_util.expandShapeToKeepDim(out.shape, originalAxes);
                        out.shape = newShape;
                    }
                    return out;
                }
                var maxConfig = {
                    kernelName: tfjsCore.Max,
                    backendName: 'wasm',
                    setupFunc: setup$s,
                    kernelFunc: max
                };

                /**
                 * @license
                 * Copyright 2019 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var maximumConfig = createBinaryKernelConfig(tfjsCore.Maximum);

                /**
                 * @license
                 * Copyright 2019 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var wasmMaxPool;
                function setup$r(backend) {
                    wasmMaxPool = backend.wasm.cwrap(tfjsCore.MaxPool, null /* void */
                        , ['number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', // outId
                        ]);
                }
                function maxPool(args) {
                    var inputs = args.inputs
                        , attrs = args.attrs
                        , backend = args.backend;
                    var x = inputs.x;
                    var xId = backend.dataIdMap.get(x.dataId).id;
                    // TF API supports int32 input. CPU and WebGL backend also support int32
                    // input. WASM backend doesn't support it because it uses xnnpack which only
                    // supports float32.
                    //
                    // Add the following assert only for the WASM backend instead of at core op
                    // level.
                    //
                    // TODO: add support for int32 input.
                    tfjsCore.util.assert(x.dtype === 'float32', function () {
                        return "Error in MaxPool: only float32 input is supported. Got ".concat(x.dtype, ".");
                    });
                    var filterSize = attrs.filterSize
                        , strides = attrs.strides
                        , pad = attrs.pad
                        , dimRoundingMode = attrs.dimRoundingMode;
                    var convInfo = tfjsCore.backend_util.computePool2DInfo(x.shape, filterSize, strides, 1 /* dilations */
                        , pad, dimRoundingMode);
                    var filterHeight = convInfo.filterHeight;
                    var filterWidth = convInfo.filterWidth;
                    var padTop = convInfo.padInfo.top;
                    var padRight = convInfo.padInfo.right;
                    var padBottom = convInfo.padInfo.bottom;
                    var padLeft = convInfo.padInfo.left;
                    var dilationHeight = convInfo.dilationHeight;
                    var dilationWidth = convInfo.dilationWidth;
                    var strideHeight = convInfo.strideHeight;
                    var strideWidth = convInfo.strideWidth;
                    var inputChannels = convInfo.inChannels;
                    var outputChannels = convInfo.outChannels;
                    if (convInfo.dataFormat !== 'channelsLast') {
                        throw new Error("wasm backend does not support dataFormat:'" + "".concat(convInfo.dataFormat, "'. Please use 'channelsLast'."));
                    }
                    var out = backend.makeOutput(convInfo.outShape, 'float32');
                    var outId = backend.dataIdMap.get(out.dataId).id;
                    wasmMaxPool(xId, x.shape[0], x.shape[1], x.shape[2], filterHeight, filterWidth, padTop, padRight, padBottom, padLeft, dilationHeight, dilationWidth, strideHeight, strideWidth, inputChannels, outputChannels, outId);
                    return out;
                }
                var maxPoolConfig = {
                    kernelName: tfjsCore.MaxPool,
                    backendName: 'wasm',
                    setupFunc: setup$r,
                    kernelFunc: maxPool
                };

                var wasmMean;
                function setup$q(backend) {
                    wasmMean = backend.wasm.cwrap(tfjsCore.Mean, null /*void*/
                        , ['number, number, number']);
                }
                function mean(args) {
                    var backend = args.backend
                        , inputs = args.inputs
                        , attrs = args.attrs;
                    var axis = attrs.axis
                        , keepDims = attrs.keepDims;
                    var x = inputs.x;
                    var xId = backend.dataIdMap.get(x.dataId).id;
                    var inputId = xId;
                    var input = x;
                    var _a = permuteAxesAndTranspose(x, axis, backend)
                        , transposed = _a.transposed
                        , axes = _a.axes
                        , originalAxes = _a.originalAxes
                        , inputWasTransposed = _a.inputWasTransposed;
                    var reductionAxes = axes;
                    if (inputWasTransposed) {
                        var transposedId = backend.dataIdMap.get(transposed.dataId).id;
                        if (transposedId !== xId) {
                            // transpose was not a no-op. We will need to dispose of this
                            // once we are done.
                            input = transposed;
                            inputId = transposedId;
                            reductionAxes = tfjsCore.backend_util.getInnerMostAxes(reductionAxes.length, input.shape.length);
                        }
                    }
                    tfjsCore.backend_util.assertAxesAreInnerMostDims('mean', reductionAxes, input.shape.length);
                    var _b = __read(tfjsCore.backend_util.computeOutAndReduceShapes(input.shape, reductionAxes), 2)
                        , outShape = _b[0]
                        , reduceShape = _b[1];
                    var reduceSize = tfjsCore.util.sizeFromShape(reduceShape);
                    var castedInput = input;
                    if (input.dtype !== 'float32') {
                        castedInput = cast({
                            backend: backend,
                            inputs: {
                                x: input
                            },
                            attrs: {
                                dtype: 'float32'
                            }
                        });
                        inputId = backend.dataIdMap.get(castedInput.dataId).id;
                    }
                    var out = backend.makeOutput(outShape, 'float32');
                    if (tfjsCore.util.sizeFromShape(input.shape) !== 0) {
                        var outId = backend.dataIdMap.get(out.dataId).id;
                        wasmMean(inputId, reduceSize, outId);
                    }
                    if (inputWasTransposed) {
                        // dispose of the transposed tensor.
                        backend.disposeData(transposed.dataId);
                    }
                    if (keepDims) {
                        // reshape
                        var newShape = tfjsCore.backend_util.expandShapeToKeepDim(out.shape, originalAxes);
                        out.shape = newShape;
                    }
                    if (input.dtype !== 'float32') {
                        backend.disposeData(castedInput.dataId);
                    }
                    return out;
                }
                var meanConfig = {
                    kernelName: tfjsCore.Mean,
                    backendName: 'wasm',
                    setupFunc: setup$q,
                    kernelFunc: mean
                };

                var wasmMin;
                function setup$p(backend) {
                    wasmMin = backend.wasm.cwrap(tfjsCore.Min, null /*void*/
                        , ['number', 'number', 'number', 'number', // out_id
                        ]);
                }
                function min(args) {
                    var backend = args.backend
                        , inputs = args.inputs
                        , attrs = args.attrs;
                    var axis = attrs.axis
                        , keepDims = attrs.keepDims;
                    var x = inputs.x;
                    var xId = backend.dataIdMap.get(x.dataId).id;
                    var inputId = xId;
                    var input = x;
                    var _a = permuteAxesAndTranspose(x, axis, backend)
                        , transposed = _a.transposed
                        , axes = _a.axes
                        , originalAxes = _a.originalAxes
                        , inputWasTransposed = _a.inputWasTransposed;
                    if (inputWasTransposed) {
                        var transposedId = backend.dataIdMap.get(transposed.dataId).id;
                        if (transposedId !== xId) {
                            // transpose was not a no-op. We will need to dispose of this
                            // once we are done.
                            input = transposed;
                            inputId = transposedId;
                        }
                    }
                    var inputRank = input.shape.length;
                    tfjsCore.backend_util.assertAxesAreInnerMostDims('min', axes, inputRank);
                    var _b = __read(tfjsCore.backend_util.computeOutAndReduceShapes(input.shape, axes), 2)
                        , outShape = _b[0]
                        , reduceShape = _b[1];
                    var reduceSize = tfjsCore.util.sizeFromShape(reduceShape);
                    var out = backend.makeOutput(outShape, input.dtype);
                    if (tfjsCore.util.sizeFromShape(input.shape) !== 0) {
                        var outId = backend.dataIdMap.get(out.dataId).id;
                        wasmMin(inputId, CppDType[x.dtype], reduceSize, outId);
                    }
                    if (inputWasTransposed) {
                        // dispose of the transposed tensor.
                        backend.disposeData(transposed.dataId);
                    }
                    if (keepDims) {
                        // reshape
                        var newShape = tfjsCore.backend_util.expandShapeToKeepDim(out.shape, originalAxes);
                        out.shape = newShape;
                    }
                    return out;
                }
                var minConfig = {
                    kernelName: tfjsCore.Min,
                    backendName: 'wasm',
                    setupFunc: setup$p,
                    kernelFunc: min
                };

                /**
                 * @license
                 * Copyright 2019 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var minimumConfig = createBinaryKernelConfig(tfjsCore.Minimum);

                /**
                 * @license
                 * Copyright 2021 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                // Must match enum in MirrorPad.cc
                var MirrorPaddingMode;
                (function (MirrorPaddingMode) {
                    MirrorPaddingMode[MirrorPaddingMode["reflect"] = 0] = "reflect";
                    MirrorPaddingMode[MirrorPaddingMode["symmetric"] = 1] = "symmetric";
                }
                )(MirrorPaddingMode || (MirrorPaddingMode = {}));
                var wasmMirrorPad;
                function setup$o(backend) {
                    wasmMirrorPad = backend.wasm.cwrap(tfjsCore.MirrorPad, null /* void */
                        , ['number', 'array', 'number', 'number', 'array', 'array', 'number', 'number', // outId
                        ]);
                }
                function mirrorPad(args) {
                    var x = args.inputs.x
                        , backend = args.backend
                        , _a = args.attrs
                        , paddings = _a.paddings
                        , mode = _a.mode;
                    var outShape = paddings.map(function (p, i) {
                        return p[0]/* beforePad */
                            + x.shape[i] + p[1];
                    }/* afterPad */
                    );
                    var xId = backend.dataIdMap.get(x.dataId).id;
                    var out = backend.makeOutput(outShape, x.dtype);
                    var outId = backend.dataIdMap.get(out.dataId).id;
                    var xShapeBytes = new Uint8Array(new Int32Array(x.shape).buffer);
                    var prePaddingsFlat = paddings.map(function (padTuple) {
                        return padTuple[0];
                    });
                    var postPaddingsFlat = paddings.map(function (padTuple) {
                        return padTuple[1];
                    });
                    var prePaddingsBytes = new Uint8Array(new Int32Array(prePaddingsFlat).buffer);
                    var postPaddingsBytes = new Uint8Array(new Int32Array(postPaddingsFlat).buffer);
                    wasmMirrorPad(xId, xShapeBytes, x.shape.length, CppDType[x.dtype], prePaddingsBytes, postPaddingsBytes, MirrorPaddingMode[mode], outId);
                    return out;
                }
                var mirrorPadConfig = {
                    kernelName: tfjsCore.MirrorPad,
                    backendName: 'wasm',
                    kernelFunc: mirrorPad,
                    setupFunc: setup$o
                };

                /**
                 * @license
                 * Copyright 2019 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var multiplyConfig = createBinaryKernelConfig(tfjsCore.Multiply);

                /**
                 * @license
                 * Copyright 2020 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var negConfig = createUnaryKernelConfig(tfjsCore.Neg);

                /**
                 * @license
                 * Copyright 2019 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                /**
                 * Parse the result of the c++ method, which has the shape equivalent to
                 * `Result`.
                 */
                function parseResultStruct(backend, resOffset) {
                    var result = new Int32Array(backend.wasm.HEAPU8.buffer, resOffset, 4);
                    var pSelectedIndices = result[0];
                    var selectedSize = result[1];
                    var pSelectedScores = result[2];
                    var pValidOutputs = result[3];
                    // Since the result was allocated on the heap, we have to delete it.
                    backend.wasm._free(resOffset);
                    return {
                        pSelectedIndices: pSelectedIndices,
                        selectedSize: selectedSize,
                        pSelectedScores: pSelectedScores,
                        pValidOutputs: pValidOutputs
                    };
                }

                /**
                 * @license
                 * Copyright 2019 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var wasmFunc$4;
                function setup$n(backend) {
                    wasmFunc$4 = backend.wasm.cwrap(tfjsCore.NonMaxSuppressionV3, 'number', // Result*
                        ['number', 'number', 'number', 'number', 'number', // scoreThreshold
                        ]);
                }
                function kernelFunc$1(args) {
                    var backend = args.backend
                        , inputs = args.inputs
                        , attrs = args.attrs;
                    var iouThreshold = attrs.iouThreshold
                        , maxOutputSize = attrs.maxOutputSize
                        , scoreThreshold = attrs.scoreThreshold;
                    var boxes = inputs.boxes
                        , scores = inputs.scores;
                    var boxesId = backend.dataIdMap.get(boxes.dataId).id;
                    var scoresId = backend.dataIdMap.get(scores.dataId).id;
                    var resOffset = wasmFunc$4(boxesId, scoresId, maxOutputSize, iouThreshold, scoreThreshold);
                    var _a = parseResultStruct(backend, resOffset)
                        , pSelectedIndices = _a.pSelectedIndices
                        , selectedSize = _a.selectedSize
                        , pSelectedScores = _a.pSelectedScores
                        , pValidOutputs = _a.pValidOutputs;
                    // Since we are not using scores for V3, we have to delete it from the heap.
                    backend.wasm._free(pSelectedScores);
                    backend.wasm._free(pValidOutputs);
                    var selectedIndicesTensor = backend.makeOutput([selectedSize], 'int32', pSelectedIndices);
                    return selectedIndicesTensor;
                }
                var nonMaxSuppressionV3Config = {
                    kernelName: tfjsCore.NonMaxSuppressionV3,
                    backendName: 'wasm',
                    setupFunc: setup$n,
                    kernelFunc: kernelFunc$1,
                };

                /**
                 * @license
                 * Copyright 2020 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var wasmFunc$3;
                function setup$m(backend) {
                    wasmFunc$3 = backend.wasm.cwrap(tfjsCore.NonMaxSuppressionV4, 'number', // Result*
                        ['number', 'number', 'number', 'number', 'number', 'bool', // padToMaxOutputSize
                        ]);
                }
                function nonMaxSuppressionV4(args) {
                    var backend = args.backend
                        , inputs = args.inputs
                        , attrs = args.attrs;
                    var iouThreshold = attrs.iouThreshold
                        , maxOutputSize = attrs.maxOutputSize
                        , scoreThreshold = attrs.scoreThreshold
                        , padToMaxOutputSize = attrs.padToMaxOutputSize;
                    var boxes = inputs.boxes
                        , scores = inputs.scores;
                    var boxesId = backend.dataIdMap.get(boxes.dataId).id;
                    var scoresId = backend.dataIdMap.get(scores.dataId).id;
                    var resOffset = wasmFunc$3(boxesId, scoresId, maxOutputSize, iouThreshold, scoreThreshold, padToMaxOutputSize);
                    var _a = parseResultStruct(backend, resOffset)
                        , pSelectedIndices = _a.pSelectedIndices
                        , selectedSize = _a.selectedSize
                        , pSelectedScores = _a.pSelectedScores
                        , pValidOutputs = _a.pValidOutputs;
                    // Since we are not using scores for V4, we have to delete it from the heap.
                    backend.wasm._free(pSelectedScores);
                    var selectedIndicesTensor = backend.makeOutput([selectedSize], 'int32', pSelectedIndices);
                    var validOutputsTensor = backend.makeOutput([], 'int32', pValidOutputs);
                    return [selectedIndicesTensor, validOutputsTensor];
                }
                var nonMaxSuppressionV4Config = {
                    kernelName: tfjsCore.NonMaxSuppressionV4,
                    backendName: 'wasm',
                    setupFunc: setup$m,
                    kernelFunc: nonMaxSuppressionV4,
                };

                /**
                 * @license
                 * Copyright 2019 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var wasmFunc$2;
                function setup$l(backend) {
                    wasmFunc$2 = backend.wasm.cwrap(tfjsCore.NonMaxSuppressionV5, 'number', // Result*
                        ['number', 'number', 'number', 'number', 'number', 'number', // softNmsSigma
                        ]);
                }
                function kernelFunc(args) {
                    var backend = args.backend
                        , inputs = args.inputs
                        , attrs = args.attrs;
                    var iouThreshold = attrs.iouThreshold
                        , maxOutputSize = attrs.maxOutputSize
                        , scoreThreshold = attrs.scoreThreshold
                        , softNmsSigma = attrs.softNmsSigma;
                    var boxes = inputs.boxes
                        , scores = inputs.scores;
                    var boxesId = backend.dataIdMap.get(boxes.dataId).id;
                    var scoresId = backend.dataIdMap.get(scores.dataId).id;
                    var resOffset = wasmFunc$2(boxesId, scoresId, maxOutputSize, iouThreshold, scoreThreshold, softNmsSigma);
                    var _a = parseResultStruct(backend, resOffset)
                        , pSelectedIndices = _a.pSelectedIndices
                        , selectedSize = _a.selectedSize
                        , pSelectedScores = _a.pSelectedScores
                        , pValidOutputs = _a.pValidOutputs;
                    // Since we are not using validOutputs for V5, we have to delete it from the
                    // heap.
                    backend.wasm._free(pValidOutputs);
                    var selectedIndicesTensor = backend.makeOutput([selectedSize], 'int32', pSelectedIndices);
                    var selectedScoresTensor = backend.makeOutput([selectedSize], 'float32', pSelectedScores);
                    return [selectedIndicesTensor, selectedScoresTensor];
                }
                var nonMaxSuppressionV5Config = {
                    kernelName: tfjsCore.NonMaxSuppressionV5,
                    backendName: 'wasm',
                    setupFunc: setup$l,
                    kernelFunc: kernelFunc,
                };

                /**
                 * @license
                 * Copyright 2020 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var supportsFullBroadcast = false;
                var notEqualConfig = createBinaryKernelConfig(tfjsCore.NotEqual, supportsFullBroadcast, 'bool');

                var wasmOneHot;
                function setup$k(backend) {
                    wasmOneHot = backend.wasm.cwrap(tfjsCore.OneHot, null /* void */
                        , ['number', 'number', 'number', 'number', 'number'// out_id
                        ]);
                }
                function oneHot(args) {
                    var inputs = args.inputs
                        , backend = args.backend
                        , attrs = args.attrs;
                    var indices = inputs.indices;
                    var dtype = attrs.dtype
                        , depth = attrs.depth
                        , onValue = attrs.onValue
                        , offValue = attrs.offValue;
                    var out = backend.makeOutput(__spreadArray(__spreadArray([], __read(indices.shape), false), [depth], false), dtype);
                    var outId = backend.dataIdMap.get(out.dataId).id;
                    var indicesData = backend.dataIdMap.get(indices.dataId);
                    var indicesId = indicesData.id;
                    wasmOneHot(indicesId, depth, onValue, offValue, outId);
                    return out;
                }
                var oneHotConfig = {
                    kernelName: tfjsCore.OneHot,
                    backendName: 'wasm',
                    setupFunc: setup$k,
                    kernelFunc: oneHot,
                };

                /**
                 * @license
                 * Copyright 2020 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                function onesLike(args) {
                    var x = args.inputs.x
                        , backend = args.backend;
                    var out = backend.makeOutput(x.shape, x.dtype);
                    var outVals = backend.typedArrayFromHeap(out);
                    outVals.fill(1);
                    return out;
                }
                var onesLikeConfig = {
                    kernelName: tfjsCore.OnesLike,
                    backendName: 'wasm',
                    kernelFunc: onesLike,
                };

                /**
                 * @license
                 * Copyright 2020 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                function pack(args) {
                    var inputs = args.inputs
                        , backend = args.backend
                        , attrs = args.attrs;
                    var axis = attrs.axis;
                    if (inputs.length === 1) {
                        return expandDims({
                            inputs: {
                                input: inputs[0]
                            },
                            backend: backend,
                            attrs: {
                                dim: axis
                            }
                        });
                    }
                    var shape = inputs[0].shape;
                    var dtype = inputs[0].dtype;
                    inputs.forEach(function (t) {
                        tfjsCore.util.assertShapesMatch(shape, t.shape, 'All tensors passed to stack must have matching shapes');
                        tfjsCore.util.assert(dtype === t.dtype, function () {
                            return 'All tensors passed to stack must have matching dtypes';
                        });
                    });
                    var intermediateTensorInfos = [];
                    var expandedTensors = inputs.map(function (t) {
                        var expandedT = expandDims({
                            inputs: {
                                input: t
                            },
                            backend: backend,
                            attrs: {
                                dim: axis
                            }
                        });
                        intermediateTensorInfos.push(expandedT);
                        return expandedT;
                    });
                    var result = concat({
                        inputs: expandedTensors,
                        backend: backend,
                        attrs: {
                            axis: axis
                        }
                    });
                    intermediateTensorInfos.forEach(function (t) {
                        return backend.disposeData(t.dataId);
                    });
                    return result;
                }
                var packConfig = {
                    kernelName: tfjsCore.Pack,
                    backendName: 'wasm',
                    kernelFunc: pack
                };

                /**
                 * @license
                 * Copyright 2019 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var wasmPadV2;
                function setup$j(backend) {
                    wasmPadV2 = backend.wasm.cwrap(tfjsCore.PadV2, null /* void */
                        , ['number', 'array', 'number', 'number', 'array', 'array', 'number', 'number', // outId
                        ]);
                }
                function pad(args) {
                    var x = args.inputs.x
                        , backend = args.backend
                        , _a = args.attrs
                        , paddings = _a.paddings
                        , constantValue = _a.constantValue;
                    var outShape = paddings.map(function (p, i) {
                        return p[0]/* beforePad */
                            + x.shape[i] + p[1];
                    }/* afterPad */
                    );
                    if (tfjsCore.util.sizeFromShape(x.shape) === 0) {
                        // Short-circuit the computation, since x doesn't have value, only
                        // the shape is used to compute output shape to pad.
                        return fill({
                            backend: backend,
                            attrs: {
                                shape: outShape,
                                value: constantValue,
                                dtype: x.dtype
                            }
                        });
                    }
                    var xId = backend.dataIdMap.get(x.dataId).id;
                    var out = backend.makeOutput(outShape, x.dtype);
                    var outTensorData = backend.dataIdMap.get(out.dataId);
                    var outId = outTensorData.id;
                    var xShapeBytes = new Uint8Array(new Int32Array(x.shape).buffer);
                    var prePaddingsFlat = paddings.map(function (padTuple) {
                        return padTuple[0];
                    });
                    var postPaddingsFlat = paddings.map(function (padTuple) {
                        return padTuple[1];
                    });
                    var prePaddingsBytes = new Uint8Array(new Int32Array(prePaddingsFlat).buffer);
                    var postPaddingsBytes = new Uint8Array(new Int32Array(postPaddingsFlat).buffer);
                    wasmPadV2(xId, xShapeBytes, x.shape.length, CppDType[x.dtype], prePaddingsBytes, postPaddingsBytes, constantValue, outId);
                    return out;
                }
                var padV2Config = {
                    kernelName: tfjsCore.PadV2,
                    backendName: 'wasm',
                    kernelFunc: pad,
                    setupFunc: setup$j
                };

                /**
                 * @license
                 * Copyright 2019 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var powConfig = createBinaryKernelConfig(tfjsCore.Pow);

                /**
                 * @license
                 * Copyright 2019 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var wasmPrelu;
                function setup$i(backend) {
                    wasmPrelu = backend.wasm.cwrap(tfjsCore.Prelu, null /* void */
                        , ['number', 'number', 'number'// out_id
                        ]);
                }
                function prelu(args) {
                    var inputs = args.inputs
                        , backend = args.backend;
                    var x = inputs.x
                        , alpha = inputs.alpha;
                    var xId = backend.dataIdMap.get(x.dataId).id;
                    var weightsId = backend.dataIdMap.get(alpha.dataId).id;
                    var inputId = xId;
                    var input = x;
                    var castedInput = input;
                    if (input.dtype !== 'float32') {
                        castedInput = cast({
                            backend: backend,
                            inputs: {
                                x: x
                            },
                            attrs: {
                                dtype: 'float32'
                            }
                        });
                        inputId = backend.dataIdMap.get(castedInput.dataId).id;
                    }
                    var out = backend.makeOutput(x.shape, 'float32');
                    var outId = backend.dataIdMap.get(out.dataId).id;
                    wasmPrelu(inputId, weightsId, outId);
                    if (input.dtype !== 'float32') {
                        backend.disposeData(castedInput.dataId);
                    }
                    return out;
                }
                var preluConfig = {
                    kernelName: tfjsCore.Prelu,
                    backendName: 'wasm',
                    setupFunc: setup$i,
                    kernelFunc: prelu
                };

                var wasmProd;
                function setup$h(backend) {
                    wasmProd = backend.wasm.cwrap(tfjsCore.Prod, null /*void*/
                        , ['number', 'number', 'number', 'number']);
                }
                function prod(args) {
                    var backend = args.backend
                        , inputs = args.inputs
                        , attrs = args.attrs;
                    var axis = attrs.axis
                        , keepDims = attrs.keepDims;
                    var x = inputs.x;
                    var xId = backend.dataIdMap.get(x.dataId).id;
                    var inputId = xId;
                    var input = x;
                    var _a = permuteAxesAndTranspose(x, axis, backend)
                        , transposed = _a.transposed
                        , axes = _a.axes
                        , originalAxes = _a.originalAxes
                        , inputWasTransposed = _a.inputWasTransposed;
                    var reductionAxes = axes;
                    if (inputWasTransposed) {
                        var transposedId = backend.dataIdMap.get(transposed.dataId).id;
                        if (transposedId !== xId) {
                            // transpose was not a no-op. We will need to dispose of this
                            // once we are done.
                            input = transposed;
                            inputId = transposedId;
                            reductionAxes = tfjsCore.backend_util.getInnerMostAxes(reductionAxes.length, input.shape.length);
                        }
                    }
                    tfjsCore.backend_util.assertAxesAreInnerMostDims('prod', reductionAxes, input.shape.length);
                    var _b = __read(tfjsCore.backend_util.computeOutAndReduceShapes(input.shape, reductionAxes), 2)
                        , outShape = _b[0]
                        , reduceShape = _b[1];
                    var reduceSize = tfjsCore.util.sizeFromShape(reduceShape);
                    var out = backend.makeOutput(outShape, input.dtype);
                    if (tfjsCore.util.sizeFromShape(input.shape) !== 0) {
                        var outId = backend.dataIdMap.get(out.dataId).id;
                        wasmProd(inputId, reduceSize, CppDType[out.dtype], outId);
                    }
                    if (inputWasTransposed) {
                        // dispose of the transposed tensor.
                        backend.disposeData(transposed.dataId);
                    }
                    if (keepDims) {
                        // reshape
                        var newShape = tfjsCore.backend_util.expandShapeToKeepDim(out.shape, originalAxes);
                        out.shape = newShape;
                    }
                    return out;
                }
                var prodConfig = {
                    kernelName: tfjsCore.Prod,
                    backendName: 'wasm',
                    setupFunc: setup$h,
                    kernelFunc: prod
                };

                /**
                 * @license
                 * Copyright 2020 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var range = function (args) {
                    var backend = args.backend
                        , attrs = args.attrs;
                    var start = attrs.start
                        , stop = attrs.stop
                        , step = attrs.step
                        , dtype = attrs.dtype;
                    var values = rangeImpl(start, stop, step, dtype);
                    var out = backend.makeOutput([values.length], dtype);
                    var outVals = backend.typedArrayFromHeap(out);
                    outVals.set(values);
                    return out;
                };
                var rangeConfig = {
                    kernelName: tfjsCore.Range,
                    backendName: 'wasm',
                    kernelFunc: range
                };

                /**
                 * @license
                 * Copyright 2019 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var realDivConfig = createBinaryKernelConfig(tfjsCore.RealDiv);

                /**
                 * @license
                 * Copyright 2022 The TensorFlow Authors. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var reciprocalConfig = createUnaryKernelConfig(tfjsCore.Reciprocal);

                /**
                 * @license
                 * Copyright 2019 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var reluConfig = createUnaryKernelConfig(tfjsCore.Relu);

                /**
                 * @license
                 * Copyright 2019 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var relu6Config = createUnaryKernelConfig(tfjsCore.Relu6);

                var wasmResizeBilinear;
                function setup$g(backend) {
                    wasmResizeBilinear = backend.wasm.cwrap(tfjsCore.ResizeBilinear, null /*void*/
                        , ['number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number'// outId
                        ]);
                }
                function resizeBilinear(args) {
                    var backend = args.backend
                        , inputs = args.inputs
                        , attrs = args.attrs;
                    var images = inputs.images;
                    var alignCorners = attrs.alignCorners
                        , halfPixelCenters = attrs.halfPixelCenters
                        , size = attrs.size;
                    var _a = __read(size, 2)
                        , newHeight = _a[0]
                        , newWidth = _a[1];
                    var _b = __read(images.shape, 4)
                        , batch = _b[0]
                        , oldHeight = _b[1]
                        , oldWidth = _b[2]
                        , numChannels = _b[3];
                    var outShape = [batch, newHeight, newWidth, numChannels];
                    var xData = backend.dataIdMap.get(images.dataId);
                    var castedData;
                    if (xData.dtype !== 'float32') {
                        castedData = cast({
                            backend: backend,
                            inputs: {
                                x: images
                            },
                            attrs: {
                                dtype: 'float32'
                            }
                        });
                        xData = backend.dataIdMap.get(castedData.dataId);
                    }
                    var xId = xData.id;
                    var out = backend.makeOutput(outShape, 'float32');
                    if (tfjsCore.util.sizeFromShape(images.shape) === 0) {
                        return out;
                    }
                    var outId = backend.dataIdMap.get(out.dataId).id;
                    wasmResizeBilinear(xId, batch, oldHeight, oldWidth, numChannels, newHeight, newWidth, alignCorners ? 1 : 0, halfPixelCenters ? 1 : 0, outId);
                    if (castedData != null) {
                        backend.disposeData(castedData.dataId);
                    }
                    return out;
                }
                var resizeBilinearConfig = {
                    kernelName: tfjsCore.ResizeBilinear,
                    backendName: 'wasm',
                    setupFunc: setup$g,
                    kernelFunc: resizeBilinear
                };

                var wasmResizeNearestNeighbor;
                function setup$f(backend) {
                    wasmResizeNearestNeighbor = backend.wasm.cwrap(tfjsCore.ResizeNearestNeighbor, null /*void*/
                        , ['number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', // outId
                        ]);
                }
                function resizeNearestNeighbor(args) {
                    var backend = args.backend
                        , inputs = args.inputs
                        , attrs = args.attrs;
                    var images = inputs.images;
                    var alignCorners = attrs.alignCorners
                        , halfPixelCenters = attrs.halfPixelCenters
                        , size = attrs.size;
                    var _a = __read(size, 2)
                        , newHeight = _a[0]
                        , newWidth = _a[1];
                    var _b = __read(images.shape, 4)
                        , batch = _b[0]
                        , oldHeight = _b[1]
                        , oldWidth = _b[2]
                        , numChannels = _b[3];
                    var outShape = [batch, newHeight, newWidth, numChannels];
                    var out = backend.makeOutput(outShape, 'float32');
                    if (tfjsCore.util.sizeFromShape(images.shape) === 0) {
                        return out;
                    }
                    var xData = backend.dataIdMap.get(images.dataId);
                    var castedData;
                    if (xData.dtype !== 'float32') {
                        castedData = cast({
                            backend: backend,
                            inputs: {
                                x: images
                            },
                            attrs: {
                                dtype: 'float32'
                            },
                        });
                        xData = backend.dataIdMap.get(castedData.dataId);
                    }
                    var xId = xData.id;
                    var outId = backend.dataIdMap.get(out.dataId).id;
                    wasmResizeNearestNeighbor(xId, batch, oldHeight, oldWidth, numChannels, newHeight, newWidth, alignCorners ? 1 : 0, halfPixelCenters ? 1 : 0, outId);
                    if (castedData != null) {
                        backend.disposeData(castedData.dataId);
                    }
                    return out;
                }
                var resizeNearestNeighborConfig = {
                    kernelName: tfjsCore.ResizeNearestNeighbor,
                    backendName: 'wasm',
                    setupFunc: setup$f,
                    kernelFunc: resizeNearestNeighbor,
                };

                /**
                 * @license
                 * Copyright 2020 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var wasmReverse;
                function setup$e(backend) {
                    wasmReverse = backend.wasm.cwrap(tfjsCore.Reverse, null, ['number', 'array', 'number', 'array', 'number', 'number'// out_id
                    ]);
                }
                function reverse(args) {
                    var inputs = args.inputs
                        , backend = args.backend
                        , attrs = args.attrs;
                    var x = inputs.x;
                    var dims = attrs.dims;
                    var axes = tfjsCore.util.parseAxisParam(dims, x.shape);
                    if (x.shape.length === 0) {
                        return identity({
                            inputs: {
                                x: x
                            },
                            backend: backend
                        });
                    }
                    var out = backend.makeOutput(x.shape, x.dtype);
                    var xId = backend.dataIdMap.get(x.dataId).id;
                    var outId = backend.dataIdMap.get(out.dataId).id;
                    var axesBytes = new Uint8Array(new Int32Array(axes).buffer);
                    var outShapeBytes = new Uint8Array(new Int32Array(x.shape).buffer);
                    wasmReverse(xId, axesBytes, axes.length, outShapeBytes, x.shape.length, outId);
                    var reshaped = reshape({
                        inputs: {
                            x: out
                        },
                        attrs: {
                            shape: x.shape
                        },
                        backend: backend
                    });
                    backend.disposeData(out.dataId);
                    return reshaped;
                }
                var reverseConfig = {
                    kernelName: tfjsCore.Reverse,
                    backendName: 'wasm',
                    kernelFunc: reverse,
                    setupFunc: setup$e
                };

                var wasmRotate;
                function setup$d(backend) {
                    wasmRotate = backend.wasm.cwrap(tfjsCore.RotateWithOffset, null /* void */
                        , ['number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'array', 'number', 'number', // outId
                        ]);
                }
                function rotateWithOffset(args) {
                    var inputs = args.inputs
                        , backend = args.backend
                        , attrs = args.attrs;
                    var image = inputs.image;
                    var radians = attrs.radians
                        , fillValue = attrs.fillValue
                        , center = attrs.center;
                    var out = backend.makeOutput(image.shape, image.dtype);
                    var imageId = backend.dataIdMap.get(image.dataId).id;
                    var outId = backend.dataIdMap.get(out.dataId).id;
                    var _a = __read(image.shape, 4)
                        , batch = _a[0]
                        , imageHeight = _a[1]
                        , imageWidth = _a[2]
                        , numChannels = _a[3];
                    var _b = __read(tfjsCore.backend_util.getImageCenter(center, imageHeight, imageWidth), 2)
                        , centerX = _b[0]
                        , centerY = _b[1];
                    var fillIsBlack = fillValue === 0;
                    var fullOpacityValue = 255;
                    var fillValues = typeof fillValue === 'number' ? [fillValue, fillValue, fillValue, fillIsBlack ? 0 : fullOpacityValue] : __spreadArray(__spreadArray([], __read(fillValue), false), [fullOpacityValue], false);
                    var fillBytes = new Uint8Array(new Int32Array(fillValues).buffer);
                    wasmRotate(imageId, batch, imageHeight, imageWidth, numChannels, radians, centerX, centerY, fillBytes, fillValues.length, outId);
                    return out;
                }
                var rotateWithOffsetConfig = {
                    kernelName: tfjsCore.RotateWithOffset,
                    backendName: 'wasm',
                    kernelFunc: rotateWithOffset,
                    setupFunc: setup$d
                };

                /**
                 * @license
                 * Copyright 2021 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var roundConfig = createUnaryKernelConfig(tfjsCore.Round);

                /**
                 * @license
                 * Copyright 2019 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var rsqrtConfig = createUnaryKernelConfig(tfjsCore.Rsqrt);

                /**
                 * @license
                 * Copyright 2019 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var wasmScatterNd;
                function setup$c(backend) {
                    wasmScatterNd = backend.wasm.cwrap(tfjsCore.ScatterNd, null /*void*/
                        , ['number', 'number', 'number', 'number', 'number', 'number', 'array', 'number', 'number'// outId
                        ]);
                }
                function scatterNd(args) {
                    var backend = args.backend
                        , inputs = args.inputs
                        , attrs = args.attrs;
                    var indices = inputs.indices
                        , updates = inputs.updates;
                    var shape = attrs.shape;
                    var out = backend.makeOutput(shape, updates.dtype);
                    if (tfjsCore.util.sizeFromShape(shape) === 0) {
                        return out;
                    }
                    var _a = tfjsCore.scatter_util.calculateShapes(updates, indices, shape)
                        , sliceRank = _a.sliceRank
                        , numUpdates = _a.numUpdates
                        , sliceSize = _a.sliceSize
                        , strides = _a.strides
                        , outputSize = _a.outputSize;
                    var indicesData = backend.dataIdMap.get(indices.dataId);
                    var indicesId = indicesData.id;
                    var updatesData = backend.dataIdMap.get(updates.dataId);
                    var updatesId = updatesData.id;
                    var stridesBytes = new Uint8Array(new Int32Array(strides).buffer);
                    var outId = backend.dataIdMap.get(out.dataId).id;
                    wasmScatterNd(indicesId, updatesId, CppDType[updates.dtype], sliceRank, numUpdates, sliceSize, stridesBytes, outputSize, outId);
                    return out;
                }
                var scatterNdConfig = {
                    kernelName: tfjsCore.ScatterNd,
                    backendName: 'wasm',
                    setupFunc: setup$c,
                    kernelFunc: scatterNd
                };

                /**
                 * @license
                 * Copyright 2020 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var wasmSelect;
                function setup$b(backend) {
                    wasmSelect = backend.wasm.cwrap('SelectV2', null, ['number', 'number', 'number', 'number', 'number', // outId
                    ]);
                }
                function select(args) {
                    var inputs = args.inputs
                        , backend = args.backend;
                    var condition = inputs.condition
                        , t = inputs.t
                        , e = inputs.e;
                    var conditionId = backend.dataIdMap.get(condition.dataId).id;
                    var tId = backend.dataIdMap.get(t.dataId).id;
                    var eId = backend.dataIdMap.get(e.dataId).id;
                    var out = backend.makeOutput(t.shape, t.dtype);
                    var outId = backend.dataIdMap.get(out.dataId).id;
                    var cRank = condition.shape.length;
                    var tRank = t.shape.length;
                    var offset = cRank === 0 || cRank > 1 || tRank === 1 ? 1 : tfjsCore.util.sizeFromShape(t.shape.slice(1));
                    wasmSelect(conditionId, tId, eId, offset, outId);
                    return out;
                }
                var selectConfig = {
                    kernelName: tfjsCore.Select,
                    backendName: 'wasm',
                    kernelFunc: select,
                    setupFunc: setup$b
                };

                /**
                 * @license
                 * Copyright 2019 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var wasmFunc$1;
                function setup$a(backend) {
                    wasmFunc$1 = backend.wasm.cwrap(tfjsCore.Sigmoid, null /* void */
                        , ['number', 'number']);
                }
                function sigmoid(args) {
                    var backend = args.backend
                        , x = args.inputs.x;
                    var xId = backend.dataIdMap.get(x.dataId).id;
                    var out = backend.makeOutput(x.shape, x.dtype);
                    var outId = backend.dataIdMap.get(out.dataId).id;
                    // Short-circuit zero-sized tensors.
                    if (tfjsCore.util.sizeFromShape(out.shape) === 0) {
                        return out;
                    }
                    wasmFunc$1(xId, outId);
                    return out;
                }
                var sigmoidConfig = {
                    kernelName: 'Sigmoid',
                    backendName: 'wasm',
                    setupFunc: setup$a,
                    kernelFunc: sigmoid
                };

                /**
                 * @license
                 * Copyright 2019 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var sinConfig = createUnaryKernelConfig(tfjsCore.Sin);

                /**
                 * @license
                 * Copyright 2020 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var wasmFunc;
                function setup$9(backend) {
                    wasmFunc = backend.wasm.cwrap(tfjsCore.Softmax, null /* void */
                        , ['number', 'number', 'number', 'number'// batch
                        ]);
                }
                function softmax(args) {
                    var backend = args.backend
                        , logits = args.inputs.logits
                        , dim = args.attrs.dim;
                    var xId = backend.dataIdMap.get(logits.dataId).id;
                    var out = backend.makeOutput(logits.shape, logits.dtype);
                    var outId = backend.dataIdMap.get(out.dataId).id;
                    var channels = logits.shape[dim];
                    var batch = tfjsCore.util.sizeFromShape(logits.shape) / channels;
                    // Short-circuit zero-sized tensors.
                    if (tfjsCore.util.sizeFromShape(out.shape) === 0) {
                        return out;
                    }
                    wasmFunc(xId, outId, channels, batch);
                    return out;
                }
                var softmaxConfig = {
                    kernelName: tfjsCore.Softmax,
                    backendName: 'wasm',
                    setupFunc: setup$9,
                    kernelFunc: softmax
                };

                function spaceToBatchND(args) {
                    var inputs = args.inputs
                        , backend = args.backend
                        , attrs = args.attrs;
                    var x = inputs.x;
                    var blockShape = attrs.blockShape
                        , paddings = attrs.paddings;
                    var prod = tfjsCore.util.sizeFromShape(blockShape);
                    var completePaddings = [[0, 0]];
                    completePaddings.push.apply(completePaddings, __spreadArray([], __read(paddings), false));
                    for (var i = 1 + blockShape.length; i < x.shape.length; ++i) {
                        completePaddings.push([0, 0]);
                    }
                    var paddedX = padV2Config.kernelFunc({
                        inputs: {
                            x: x
                        },
                        backend: backend,
                        attrs: {
                            paddings: completePaddings,
                            constantValue: 0
                        }
                    });
                    var reshapedPaddedShape = tfjsCore.backend_util.getReshaped(paddedX.shape, blockShape, prod, false);
                    var permutedReshapedPaddedPermutation = tfjsCore.backend_util.getPermuted(reshapedPaddedShape.length, blockShape.length, false);
                    var flattenShape = tfjsCore.backend_util.getReshapedPermuted(paddedX.shape, blockShape, prod, false);
                    var reshapeInputs = {
                        x: paddedX
                    };
                    var reshapeAttrs = {
                        shape: reshapedPaddedShape
                    };
                    var paddedXReshaped = reshape({
                        inputs: reshapeInputs,
                        backend: backend,
                        attrs: reshapeAttrs
                    });
                    var transposeInputs = {
                        x: paddedXReshaped
                    };
                    var transposeAttrs = {
                        perm: permutedReshapedPaddedPermutation
                    };
                    var paddedXT = transpose({
                        inputs: transposeInputs,
                        backend: backend,
                        attrs: transposeAttrs
                    });
                    var resultReshapeInputs = {
                        x: paddedXT
                    };
                    var resultReshapeAttrs = {
                        shape: flattenShape
                    };
                    var result = reshape({
                        inputs: resultReshapeInputs,
                        backend: backend,
                        attrs: resultReshapeAttrs
                    });
                    backend.disposeData(paddedX.dataId);
                    backend.disposeData(paddedXReshaped.dataId);
                    backend.disposeData(paddedXT.dataId);
                    return result;
                }
                var spaceToBatchNDConfig = {
                    kernelName: tfjsCore.SpaceToBatchND,
                    backendName: 'wasm',
                    kernelFunc: spaceToBatchND
                };

                /**
                 * @license
                 * Copyright 2021 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var wasmSparseFillEmptyRows;
                function setup$8(backend) {
                    wasmSparseFillEmptyRows = backend.wasm.cwrap('SparseFillEmptyRows', 'number', ['number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', // exceptionValuesId
                    ]);
                }
                function sparseFillEmptyRows(args) {
                    var backend = args.backend
                        , inputs = args.inputs;
                    var indices = inputs.indices
                        , values = inputs.values
                        , denseShape = inputs.denseShape
                        , defaultValue = inputs.defaultValue;
                    var indicesCount = indices.shape[0];
                    var rank = indices.shape[1];
                    var denseRows = backend.readSync(denseShape.dataId)[0];
                    // Set output size to maximum possible and resize later (actual result
                    // might be smaller).
                    var maxOutputIndicesShape = [indicesCount + denseRows, rank];
                    var indicesId = backend.dataIdMap.get(indices.dataId).id;
                    var valuesId = backend.dataIdMap.get(values.dataId).id;
                    var defaultValueId = backend.dataIdMap.get(defaultValue.dataId).id;
                    var outputIndices = backend.makeOutput(maxOutputIndicesShape, indices.dtype);
                    var outputIndicesId = backend.dataIdMap.get(outputIndices.dataId).id;
                    var outputValues = backend.makeOutput(maxOutputIndicesShape.slice(0, 1), values.dtype);
                    var outputValuesId = backend.dataIdMap.get(outputValues.dataId).id;
                    var emptyRowIndicator = backend.makeOutput([denseRows], 'bool');
                    var emptyRowIndicatorId = backend.dataIdMap.get(emptyRowIndicator.dataId).id;
                    var reverseIndexMap = backend.makeOutput([indicesCount], indices.dtype);
                    var reverseIndexMapId = backend.dataIdMap.get(reverseIndexMap.dataId).id;
                    var exceptionValues = backend.makeOutput([4], 'int32');
                    var exceptionValuesId = backend.dataIdMap.get(exceptionValues.dataId).id;
                    var outputRows = wasmSparseFillEmptyRows(indicesId, valuesId, CppDType[values.dtype], indicesCount, denseRows, rank, defaultValueId, outputIndicesId, outputValuesId, emptyRowIndicatorId, reverseIndexMapId, exceptionValuesId);
                    var exceptionValuesArray = backend.readSync(exceptionValues.dataId);
                    var exceptionMessage;
                    switch (exceptionValuesArray[0]) {
                        case 1:
                            {
                                exceptionMessage = tfjsCore.backend_util.getSparseFillEmptyRowsIndicesDenseShapeMismatch(exceptionValuesArray[1]);
                                break;
                            }
                        case 2:
                            {
                                exceptionMessage = tfjsCore.backend_util.getSparseFillEmptyRowsNegativeIndexErrorMessage(exceptionValuesArray[1], exceptionValuesArray[2]);
                                break;
                            }
                        case 3:
                            exceptionMessage = tfjsCore.backend_util.getSparseFillEmptyRowsOutOfRangeIndexErrorMessage(exceptionValuesArray[1], exceptionValuesArray[2], exceptionValuesArray[3]);
                            break;
                        default:
                            exceptionMessage = '';
                    }
                    backend.disposeData(exceptionValues.dataId);
                    if (exceptionMessage) {
                        backend.disposeData(outputIndices.dataId);
                        backend.disposeData(outputValues.dataId);
                        backend.disposeData(emptyRowIndicator.dataId);
                        backend.disposeData(reverseIndexMap.dataId);
                        throw new Error(exceptionMessage);
                    }
                    var resizedIndices = outputIndices;
                    var resizedValues = outputValues;
                    // Overestimated output size.
                    if (outputRows !== maxOutputIndicesShape[0]) {
                        resizedIndices = slice({
                            inputs: {
                                x: outputIndices
                            },
                            attrs: {
                                begin: 0,
                                size: [outputRows, rank]
                            },
                            backend: backend
                        });
                        resizedValues = slice({
                            inputs: {
                                x: outputValues
                            },
                            attrs: {
                                begin: 0,
                                size: outputRows
                            },
                            backend: backend
                        });
                        backend.disposeData(outputIndices.dataId);
                        backend.disposeData(outputValues.dataId);
                    }
                    return [resizedIndices, resizedValues, emptyRowIndicator, reverseIndexMap];
                }
                var sparseFillEmptyRowsConfig = {
                    kernelName: tfjsCore.SparseFillEmptyRows,
                    backendName: 'wasm',
                    setupFunc: setup$8,
                    kernelFunc: sparseFillEmptyRows
                };

                /**
                 * @license
                 * Copyright 2021 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var wasmSparseReshape;
                function setup$7(backend) {
                    wasmSparseReshape = backend.wasm.cwrap(tfjsCore.SparseReshape, null /*void*/
                        , ['number', 'number', 'number', 'number', 'number', 'number', 'number', // exceptionValuesId
                        ]);
                }
                function sparseReshape(args) {
                    var backend = args.backend
                        , inputs = args.inputs;
                    var inputIndices = inputs.inputIndices
                        , inputShape = inputs.inputShape
                        , newShape = inputs.newShape;
                    if (inputIndices.shape.length !== 2) {
                        throw new Error("Input indices should be a matrix but received shape\n        ".concat(inputIndices.shape));
                    }
                    if (inputShape.shape.length !== 1) {
                        throw new Error("Input shape should be a vector but received shape\n        ".concat(inputShape.shape));
                    }
                    if (newShape.shape.length !== 1) {
                        throw new Error("Target shape should be a vector but received shape ".concat(newShape.shape));
                    }
                    var inputIndicesId = backend.dataIdMap.get(inputIndices.dataId).id;
                    var inputShapeId = backend.dataIdMap.get(inputShape.dataId).id;
                    var newShapeId = backend.dataIdMap.get(newShape.dataId).id;
                    var nnz = inputIndices.shape[0];
                    var outputRank = tfjsCore.util.sizeFromShape(newShape.shape);
                    var newIndices = backend.makeOutput([nnz, outputRank], inputIndices.dtype);
                    var newIndicesId = backend.dataIdMap.get(newIndices.dataId).id;
                    var outputShape = backend.makeOutput([outputRank], newShape.dtype);
                    var outputShapeId = backend.dataIdMap.get(outputShape.dataId).id;
                    var exceptionValues = backend.makeOutput([3], 'int32');
                    var exceptionValuesId = backend.dataIdMap.get(exceptionValues.dataId).id;
                    wasmSparseReshape(inputIndicesId, inputShapeId, newShapeId, nnz, newIndicesId, outputShapeId, exceptionValuesId);
                    var exceptionValuesArray = backend.readSync(exceptionValues.dataId);
                    var exceptionMessage;
                    switch (exceptionValuesArray[0]) {
                        case 0:
                            {
                                exceptionMessage = tfjsCore.backend_util.getSparseReshapeMultipleNegativeOneOutputDimErrorMessage(exceptionValuesArray[1], exceptionValuesArray[2]);
                                break;
                            }
                        case 1:
                            {
                                exceptionMessage = tfjsCore.backend_util.getSparseReshapeNegativeOutputDimErrorMessage(exceptionValuesArray[1], exceptionValuesArray[2]);
                                break;
                            }
                        case 2:
                            exceptionMessage = tfjsCore.backend_util.getSparseReshapeEmptyTensorZeroOutputDimErrorMessage();
                            break;
                        case 3:
                            {
                                var inputShapeValues = Array.from(backend.readSync(inputShape.dataId))
                                    , outputShapeValues = Array.from(backend.readSync(outputShape.dataId));
                                exceptionMessage = tfjsCore.backend_util.getSparseReshapeInputOutputMultipleErrorMessage(inputShapeValues, outputShapeValues);
                                break;
                            }
                        case 4:
                            {
                                var inputShapeValues = Array.from(backend.readSync(inputShape.dataId))
                                    , outputShapeValues = Array.from(backend.readSync(outputShape.dataId));
                                exceptionMessage = tfjsCore.backend_util.getSparseReshapeInputOutputMismatchErrorMessage(inputShapeValues, outputShapeValues);
                                break;
                            }
                        default:
                            exceptionMessage = '';
                    }
                    backend.disposeData(exceptionValues.dataId);
                    if (exceptionMessage) {
                        backend.disposeData(newIndices.dataId);
                        backend.disposeData(outputShape.dataId);
                        throw new Error(exceptionMessage);
                    }
                    return [newIndices, outputShape];
                }
                var sparseReshapeConfig = {
                    kernelName: tfjsCore.SparseReshape,
                    backendName: 'wasm',
                    setupFunc: setup$7,
                    kernelFunc: sparseReshape
                };

                /**
                 * @license
                 * Copyright 2021 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var wasmSparseSegmentReduction;
                function setup$6(backend) {
                    wasmSparseSegmentReduction = backend.wasm.cwrap('SparseSegmentReduction', null /*void*/
                        , ['number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', // defaultValue
                        ]);
                }
                function sparseSegmentReduction(args, isMean) {
                    var backend = args.backend
                        , inputs = args.inputs;
                    var data = inputs.data
                        , indices = inputs.indices
                        , segmentIds = inputs.segmentIds;
                    var numIndices = indices.shape[0];
                    var segmentIdsBack = backend.readSync(segmentIds.dataId, numIndices - 1, numIndices)[0];
                    var lastSegmentIdPlusOne = numIndices > 0 ? segmentIdsBack + 1 : 0;
                    var outputRows = lastSegmentIdPlusOne;
                    if (outputRows < 0) {
                        throw (new Error(tfjsCore.backend_util.getSparseSegmentReductionNegativeSegmentIdsErrorMessage()));
                    }
                    var outputShape = data.shape.slice();
                    outputShape[0] = outputRows;
                    var dataId = backend.dataIdMap.get(data.dataId).id;
                    var indicesId = backend.dataIdMap.get(indices.dataId).id;
                    var segmentIdsId = backend.dataIdMap.get(segmentIds.dataId).id;
                    var output = backend.makeOutput(outputShape, data.dtype);
                    var outputId = backend.dataIdMap.get(output.dataId).id;
                    var exceptionValues = backend.makeOutput([4], 'int32');
                    var exceptionValuesId = backend.dataIdMap.get(exceptionValues.dataId).id;
                    wasmSparseSegmentReduction(dataId, CppDType[data.dtype], data.shape[0], indicesId, segmentIdsId, outputId, exceptionValuesId, isMean, 0);
                    var exceptionValuesArray = backend.readSync(exceptionValues.dataId);
                    var exceptionMessage;
                    switch (exceptionValuesArray[0]) {
                        case 0:
                            {
                                exceptionMessage = tfjsCore.backend_util.getSparseSegmentReductionNegativeSegmentIdsErrorMessage();
                                break;
                            }
                        case 1:
                            {
                                exceptionMessage = tfjsCore.backend_util.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage();
                                break;
                            }
                        case 2:
                            exceptionMessage = tfjsCore.backend_util.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(exceptionValuesArray[1], exceptionValuesArray[2]);
                            break;
                        case 3:
                            exceptionMessage = tfjsCore.backend_util.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(exceptionValuesArray[1], exceptionValuesArray[2], exceptionValuesArray[3]);
                            break;
                        default:
                            exceptionMessage = '';
                    }
                    backend.disposeData(exceptionValues.dataId);
                    if (exceptionMessage) {
                        backend.disposeData(output.dataId);
                        throw new Error(exceptionMessage);
                    }
                    return output;
                }

                /**
                 * @license
                 * Copyright 2021 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                function sparseSegmentMean(args) {
                    return sparseSegmentReduction(args, true);
                }
                var sparseSegmentMeanConfig = {
                    kernelName: tfjsCore.SparseSegmentMean,
                    backendName: 'wasm',
                    setupFunc: setup$6,
                    kernelFunc: sparseSegmentMean
                };

                /**
                 * @license
                 * Copyright 2021 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                function sparseSegmentSum(args) {
                    return sparseSegmentReduction(args, false);
                }
                var sparseSegmentSumConfig = {
                    kernelName: tfjsCore.SparseSegmentSum,
                    backendName: 'wasm',
                    setupFunc: setup$6,
                    kernelFunc: sparseSegmentSum
                };

                function splitV(args) {
                    var inputs = args.inputs
                        , attrs = args.attrs
                        , backend = args.backend;
                    var x = inputs.x;
                    var numOrSizeSplits = attrs.numOrSizeSplits
                        , axis = attrs.axis;
                    var $axis = tfjsCore.util.parseAxisParam(axis, x.shape)[0];
                    var splitSizes = tfjsCore.backend_util.prepareSplitSize(x, numOrSizeSplits, $axis);
                    var begin = new Array(x.shape.length).fill(0);
                    var size = x.shape.slice();
                    return splitSizes.map(function (s) {
                        var xSliceSize = __spreadArray([], __read(size), false);
                        xSliceSize[$axis] = s;
                        var xSlice = slice({
                            inputs: {
                                x: x
                            },
                            attrs: {
                                begin: begin,
                                size: xSliceSize
                            },
                            backend: backend
                        });
                        begin[$axis] += s;
                        return xSlice;
                    });
                }
                var splitVConfig = {
                    kernelName: tfjsCore.SplitV,
                    backendName: 'wasm',
                    kernelFunc: splitV
                };

                /**
                 * @license
                 * Copyright 2020 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var sqrtConfig = createUnaryKernelConfig(tfjsCore.Sqrt);

                /**
                 * @license
                 * Copyright 2019 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var squareConfig = createUnaryKernelConfig(tfjsCore.Square);

                /**
                 * @license
                 * Copyright 2019 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var squaredDifferenceConfig = createBinaryKernelConfig(tfjsCore.SquaredDifference);

                /**
                 * @license
                 * Copyright 2020 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var wasmStep;
                function setup$5(backend) {
                    wasmStep = backend.wasm.cwrap(tfjsCore.Step, null /*void*/
                        , ['number', 'number', 'number', 'number', // out_id
                        ]);
                }
                function step(args) {
                    var backend = args.backend
                        , inputs = args.inputs
                        , attrs = args.attrs;
                    var alpha = attrs.alpha;
                    var x = inputs.x;
                    var xId = backend.dataIdMap.get(x.dataId).id;
                    var out = backend.makeOutput(x.shape, x.dtype);
                    var outId = backend.dataIdMap.get(out.dataId).id;
                    wasmStep(xId, alpha, CppDType[x.dtype], outId);
                    return out;
                }
                var stepConfig = {
                    kernelName: tfjsCore.Step,
                    backendName: 'wasm',
                    setupFunc: setup$5,
                    kernelFunc: step
                };

                /**
                 * @license
                 * Copyright 2021 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var wasmStridedSlice;
                function setup$4(backend) {
                    wasmStridedSlice = backend.wasm.cwrap(tfjsCore.StridedSlice, null /*void*/
                        , ['number', 'array', 'number', 'array', 'array', 'array', 'array', 'array', 'number', 'number', // outId
                        ]);
                }
                function stridedSlice(args) {
                    var backend = args.backend
                        , inputs = args.inputs
                        , attrs = args.attrs;
                    var x = inputs.x;
                    var begin = attrs.begin
                        , end = attrs.end
                        , strides = attrs.strides
                        , beginMask = attrs.beginMask
                        , endMask = attrs.endMask
                        , ellipsisMask = attrs.ellipsisMask
                        , newAxisMask = attrs.newAxisMask
                        , shrinkAxisMask = attrs.shrinkAxisMask;
                    var _a = tfjsCore.slice_util.sliceInfo(x.shape, begin, end, strides, beginMask, endMask, ellipsisMask, newAxisMask, shrinkAxisMask)
                        , finalShapeSparse = _a.finalShapeSparse
                        , finalShape = _a.finalShape
                        , isIdentity = _a.isIdentity
                        , sliceDim0 = _a.sliceDim0
                        , isSimpleSlice = _a.isSimpleSlice
                        , $begin = _a.begin
                        , $end = _a.end
                        , $strides = _a.strides;
                    var result;
                    if (isIdentity) {
                        // Optimization #1, slice is a no-op plus reshape
                        result = reshape({
                            inputs: {
                                x: x
                            },
                            backend: backend,
                            attrs: {
                                shape: finalShape
                            }
                        });
                    } else if (sliceDim0 || isSimpleSlice) {
                        // Optimization #2, slice is memory contiguous (only occurs in dim 0)
                        tfjsCore.util.assert(x.shape.length >= 1, function () {
                            return "Input must have rank at least 1, got: ".concat(x.shape.length);
                        });
                        var size = tfjsCore.slice_util.computeOutShape($begin, $end, $strides);
                        // To tolerate begin[0] > end[0] (a 0-output slice), we min(begin, end).
                        var sliced = slice({
                            inputs: {
                                x: x
                            },
                            backend: backend,
                            attrs: {
                                begin: $begin,
                                size: size
                            }
                        });
                        result = reshape({
                            inputs: {
                                x: sliced
                            },
                            backend: backend,
                            attrs: {
                                shape: finalShape
                            }
                        });
                        backend.disposeData(sliced.dataId);
                    } else {
                        var out = backend.makeOutput(finalShapeSparse, 'float32');
                        var xId = backend.dataIdMap.get(x.dataId).id;
                        var xStridesBytes = new Uint8Array(new Int32Array(tfjsCore.util.computeStrides(x.shape)).buffer);
                        var beginBytes = new Uint8Array(new Int32Array($begin).buffer);
                        var endBytes = new Uint8Array(new Int32Array($end).buffer);
                        var stridesBytes = new Uint8Array(new Int32Array($strides).buffer);
                        var outputShapeBytes = new Uint8Array(new Int32Array(finalShapeSparse).buffer);
                        var outStridesBytes = new Uint8Array(new Int32Array(tfjsCore.util.computeStrides(finalShapeSparse)).buffer);
                        var outId = backend.dataIdMap.get(out.dataId).id;
                        wasmStridedSlice(xId, xStridesBytes, x.shape.length, beginBytes, endBytes, stridesBytes, outputShapeBytes, outStridesBytes, finalShapeSparse.length, outId);
                        result = reshape({
                            inputs: {
                                x: out
                            },
                            backend: backend,
                            attrs: {
                                shape: finalShape
                            }
                        });
                        backend.disposeData(out.dataId);
                    }
                    return result;
                }
                var stridedSliceConfig = {
                    kernelName: tfjsCore.StridedSlice,
                    backendName: 'wasm',
                    setupFunc: setup$4,
                    kernelFunc: stridedSlice
                };

                function stringNGrams(args) {
                    var backend = args.backend
                        , inputs = args.inputs
                        , attrs = args.attrs;
                    var data = inputs.data
                        , dataSplits = inputs.dataSplits;
                    var separator = attrs.separator
                        , nGramWidths = attrs.nGramWidths
                        , leftPad = attrs.leftPad
                        , rightPad = attrs.rightPad
                        , padWidth = attrs.padWidth
                        , preserveShortSequences = attrs.preserveShortSequences;
                    var $data = backend.readSync(data.dataId);
                    var $dataSplits = backend.readSync(dataSplits.dataId);
                    var _a = __read(stringNGramsImpl($data, $dataSplits, separator, nGramWidths, leftPad, rightPad, padWidth, preserveShortSequences), 2)
                        , nGrams = _a[0]
                        , nGramsSplits = _a[1];
                    var nGramsOut = backend.makeOutput([nGrams.length], 'string');
                    var nGramsOutData = backend.dataIdMap.get(nGramsOut.dataId);
                    nGramsOutData.stringBytes = nGrams;
                    var nGramsSplitsOut = backend.makeOutput(dataSplits.shape, 'int32');
                    var nGramsSplitsOutVals = backend.typedArrayFromHeap(nGramsSplitsOut);
                    nGramsSplitsOutVals.set(nGramsSplits);
                    return [nGramsOut, nGramsSplitsOut];
                }
                var stringNGramsConfig = {
                    kernelName: tfjsCore.StringNGrams,
                    backendName: 'wasm',
                    kernelFunc: stringNGrams
                };

                function stringSplit(args) {
                    var backend = args.backend
                        , inputs = args.inputs
                        , attrs = args.attrs;
                    var input = inputs.input
                        , delimiter = inputs.delimiter;
                    var skipEmpty = attrs.skipEmpty;
                    var inputVals = backend.readSync(input.dataId);
                    var delimiterVals = backend.readSync(delimiter.dataId);
                    var _a = __read(stringSplitImpl(inputVals, delimiterVals[0], skipEmpty), 3)
                        , indices = _a[0]
                        , values = _a[1]
                        , shape = _a[2];
                    var outputSize = values.length;
                    var indicesOut = backend.makeOutput([outputSize, 2], 'int32');
                    var indicesOutVals = backend.typedArrayFromHeap(indicesOut);
                    indicesOutVals.set(indices);
                    var valuesOut = backend.makeOutput([outputSize], 'string');
                    var valuesOutData = backend.dataIdMap.get(valuesOut.dataId);
                    valuesOutData.stringBytes = values;
                    var shapeOut = backend.makeOutput([2], 'int32');
                    var shapeOutVals = backend.typedArrayFromHeap(shapeOut);
                    shapeOutVals.set(shape);
                    return [indicesOut, valuesOut, shapeOut];
                }
                var stringSplitConfig = {
                    kernelName: tfjsCore.StringSplit,
                    backendName: 'wasm',
                    kernelFunc: stringSplit
                };

                /**
                 * @license
                 * Copyright 2021 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                function stringToHashBucketFast(args) {
                    var backend = args.backend
                        , inputs = args.inputs
                        , attrs = args.attrs;
                    var input = inputs.input;
                    var numBuckets = attrs.numBuckets;
                    var inputVals = backend.readSync(input.dataId);
                    var values = stringToHashBucketFastImpl(inputVals, numBuckets);
                    var out = backend.makeOutput(input.shape, 'int32');
                    var outVals = backend.typedArrayFromHeap(out);
                    outVals.set(values);
                    return out;
                }
                var stringToHashBucketFastConfig = {
                    kernelName: tfjsCore.StringToHashBucketFast,
                    backendName: 'wasm',
                    kernelFunc: stringToHashBucketFast
                };

                /**
                 * @license
                 * Copyright 2019 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var subConfig = createBinaryKernelConfig(tfjsCore.Sub);

                var wasmSum;
                function setup$3(backend) {
                    wasmSum = backend.wasm.cwrap(tfjsCore.Sum, null /*void*/
                        , ['number', 'number', 'number', 'number', // out_id
                        ]);
                }
                function sum(args) {
                    var backend = args.backend
                        , inputs = args.inputs
                        , attrs = args.attrs;
                    var axis = attrs.axis
                        , keepDims = attrs.keepDims;
                    var x = inputs.x;
                    var xId = backend.dataIdMap.get(x.dataId).id;
                    var inputId = xId;
                    var input = x;
                    var _a = permuteAxesAndTranspose(x, axis, backend)
                        , transposed = _a.transposed
                        , axes = _a.axes
                        , originalAxes = _a.originalAxes
                        , inputWasTransposed = _a.inputWasTransposed;
                    var reductionAxes = axes;
                    if (inputWasTransposed) {
                        var transposedId = backend.dataIdMap.get(transposed.dataId).id;
                        if (transposedId !== xId) {
                            // transpose was not a no-op. We will need to dispose of this
                            // once we are done.
                            input = transposed;
                            inputId = transposedId;
                            reductionAxes = tfjsCore.backend_util.getInnerMostAxes(reductionAxes.length, input.shape.length);
                        }
                    }
                    tfjsCore.backend_util.assertAxesAreInnerMostDims('sum', reductionAxes, input.shape.length);
                    var _b = __read(tfjsCore.backend_util.computeOutAndReduceShapes(input.shape, reductionAxes), 2)
                        , outShape = _b[0]
                        , reduceShape = _b[1];
                    var reduceSize = tfjsCore.util.sizeFromShape(reduceShape);
                    var out = backend.makeOutput(outShape, input.dtype);
                    if (tfjsCore.util.sizeFromShape(input.shape) !== 0) {
                        var outId = backend.dataIdMap.get(out.dataId).id;
                        wasmSum(inputId, reduceSize, CppDType[out.dtype], outId);
                    }
                    if (inputWasTransposed) {
                        // dispose of the transposed tensor.
                        backend.disposeData(transposed.dataId);
                    }
                    if (keepDims) {
                        // reshape
                        var newShape = tfjsCore.backend_util.expandShapeToKeepDim(out.shape, originalAxes);
                        out.shape = newShape;
                    }
                    return out;
                }
                var sumConfig = {
                    kernelName: tfjsCore.Sum,
                    backendName: 'wasm',
                    setupFunc: setup$3,
                    kernelFunc: sum
                };

                /**
                 * @license
                 * Copyright 2021 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var tanConfig = createUnaryKernelConfig(tfjsCore.Tan);

                /**
                 * @license
                 * Copyright 2019 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var tanhConfig = createUnaryKernelConfig(tfjsCore.Tanh);

                /**
                 * @license
                 * Copyright 2019 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var wasmTile;
                function setup$2(backend) {
                    wasmTile = backend.wasm.cwrap(tfjsCore.Tile, null /* void */
                        , ['number', 'array', 'number', 'array', 'number', 'number'// out_id
                        ]);
                }
                function tile(args) {
                    var inputs = args.inputs
                        , backend = args.backend
                        , attrs = args.attrs;
                    var x = inputs.x;
                    var xId = backend.dataIdMap.get(x.dataId).id;
                    var reps = attrs.reps;
                    var newShape = new Array(x.shape.length);
                    for (var i = 0; i < newShape.length; i++) {
                        newShape[i] = x.shape[i] * reps[i];
                    }
                    var xShapeBytes = new Uint8Array(new Int32Array(x.shape).buffer);
                    var newShapeBytes = new Uint8Array(new Int32Array(newShape).buffer);
                    var out = backend.makeOutput(newShape, x.dtype);
                    var outId = backend.dataIdMap.get(out.dataId).id;
                    wasmTile(xId, xShapeBytes, x.shape.length, newShapeBytes, newShape.length, CppDType[out.dtype], outId);
                    return out;
                }
                var tileConfig = {
                    kernelName: tfjsCore.Tile,
                    backendName: 'wasm',
                    setupFunc: setup$2,
                    kernelFunc: tile
                };

                /**
                 * @license
                 * Copyright 2020 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                var wasmTopK;
                function setup$1(backend) {
                    wasmTopK = backend.wasm.cwrap(tfjsCore.TopK, null /* void */
                        , ['number', 'array', 'number', 'number', 'number', 'bool', 'number', 'number', // outIndicesId
                        ]);
                }
                var topk = function (_a) {
                    var inputs = _a.inputs
                        , backend = _a.backend
                        , attrs = _a.attrs;
                    var x = inputs.x;
                    var k = attrs.k
                        , sorted = attrs.sorted;
                    var xId = backend.dataIdMap.get(x.dataId).id;
                    var xShapeBytes = new Uint8Array(new Int32Array(x.shape).buffer);
                    var outputShape = x.shape.slice();
                    outputShape[outputShape.length - 1] = k;
                    var outValues = backend.makeOutput(outputShape, x.dtype);
                    var outValuesId = backend.dataIdMap.get(outValues.dataId).id;
                    var outIndices = backend.makeOutput(outputShape, 'int32');
                    var outIndicesId = backend.dataIdMap.get(outIndices.dataId).id;
                    wasmTopK(xId, xShapeBytes, x.shape.length, CppDType[x.dtype], k, sorted, outValuesId, outIndicesId);
                    return [outValues, outIndices];
                };
                var topKConfig = {
                    kernelName: tfjsCore.TopK,
                    backendName: 'wasm',
                    setupFunc: setup$1,
                    kernelFunc: topk,
                };

                var wasmTransform;
                function setup(backend) {
                    wasmTransform = backend.wasm.cwrap(tfjsCore.Transform, null /*void*/
                        , ['number', 'number', 'bool', 'number', 'number', 'number', 'number', 'number', 'number', 'array', 'number', 'array', 'number', 'number', 'number', 'number', 'number'// outId
                        ]);
                }
                function transform(args) {
                    var backend = args.backend
                        , inputs = args.inputs
                        , attrs = args.attrs;
                    var image = inputs.image
                        , transforms = inputs.transforms;
                    var interpolation = attrs.interpolation
                        , fillMode = attrs.fillMode
                        , fillValue = attrs.fillValue
                        , outputShape = attrs.outputShape;
                    var _a = __read(image.shape, 4)
                        , batch = _a[0]
                        , imageHeight = _a[1]
                        , imageWidth = _a[2]
                        , numChannels = _a[3];
                    var _b = __read(outputShape != null ? outputShape : [imageHeight, imageWidth], 2)
                        , outHeight = _b[0]
                        , outWidth = _b[1];
                    var outShape = [batch, outHeight, outWidth, numChannels];
                    var inputStrides = new Uint8Array(new Int32Array(tfjsCore.util.computeStrides(image.shape)).buffer);
                    var outputStrides = new Uint8Array(new Int32Array(tfjsCore.util.computeStrides(outShape)).buffer);
                    var out = backend.makeOutput(outShape, image.dtype);
                    var outId = backend.dataIdMap.get(out.dataId).id;
                    var imageData = backend.dataIdMap.get(image.dataId);
                    var imageId = imageData.id;
                    var transformsData = backend.dataIdMap.get(transforms.dataId);
                    var transformsId = transformsData.id;
                    var interpolationModeId = interpolation === 'nearest' ? 1 : 2;
                    var fillModeId;
                    switch (fillMode) {
                        case 'constant':
                            fillModeId = 1;
                            break;
                        case 'reflect':
                            fillModeId = 2;
                            break;
                        case 'wrap':
                            fillModeId = 3;
                            break;
                        case 'nearest':
                            fillModeId = 4;
                            break;
                        default:
                            fillModeId = 1;
                            break;
                    }
                    wasmTransform(imageId, transformsId, (transforms.shape[0] > 1), batch, outHeight, outWidth, numChannels, imageWidth, imageHeight, inputStrides, image.shape.length - 1, outputStrides, outShape.length - 1, interpolationModeId, fillModeId, fillValue, outId);
                    return out;
                }
                var transformConfig = {
                    kernelName: tfjsCore.Transform,
                    backendName: 'wasm',
                    setupFunc: setup,
                    kernelFunc: transform
                };

                /**
                 * @license
                 * Copyright 2019 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                function unpack(args) {
                    var inputs = args.inputs
                        , backend = args.backend
                        , attrs = args.attrs;
                    var value = inputs.value;
                    var axis = attrs.axis;
                    if (axis < 0) {
                        axis += value.shape.length;
                    }
                    var numOutputs = value.shape[axis];
                    var rank = value.shape.length;
                    var outShape = new Array(rank - 1);
                    var outIndex = 0;
                    for (var i = 0; i < rank; i++) {
                        if (i !== axis) {
                            outShape[outIndex++] = value.shape[i];
                        }
                    }
                    var outs = new Array(numOutputs);
                    var begin = new Array(rank).fill(0);
                    var size = value.shape.slice();
                    size[axis] = 1;
                    for (var i = 0; i < outs.length; i++) {
                        begin[axis] = i;
                        outs[i] = slice({
                            inputs: {
                                x: value
                            },
                            attrs: {
                                begin: begin,
                                size: size
                            },
                            backend: backend
                        });
                    }
                    return outs.map(function (_a) {
                        var dataId = _a.dataId
                            , dtype = _a.dtype;
                        return ({
                            dataId: dataId,
                            dtype: dtype,
                            shape: outShape
                        });
                    });
                }
                var unpackConfig = {
                    kernelName: tfjsCore.Unpack,
                    backendName: 'wasm',
                    kernelFunc: unpack,
                };

                /**
                 * @license
                 * Copyright 2020 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                function zerosLike(args) {
                    var x = args.inputs.x
                        , backend = args.backend;
                    var out = backend.makeOutput(x.shape, x.dtype);
                    var outVals = backend.typedArrayFromHeap(out);
                    outVals.fill(0);
                    return out;
                }
                var zerosLikeConfig = {
                    kernelName: tfjsCore.ZerosLike,
                    backendName: 'wasm',
                    kernelFunc: zerosLike,
                };

                var e_1, _a;
                // List all kernel configs here
                var kernelConfigs = [_fusedMatMulConfig, absConfig, addConfig, addNConfig, allConfig, anyConfig, argMaxConfig, avgPoolConfig, batchMatMulConfig, batchToSpaceNDConfig, castConfig, ceilConfig, clipByValueConfig, concatConfig, conv2DConfig, conv2DBackpropInputConfig, cosConfig, coshConfig, cropAndResizeConfig, cumprodConfig, cumsumConfig, depthToSpaceConfig, depthwiseConv2dNativeConfig, eluConfig, equalConfig, expConfig, expandDimsConfig, fillConfig, flipLeftRightConfig, floorConfig, floorDivConfig, fusedBatchNormConfig, fusedConv2DConfig, fusedDepthwiseConv2DConfig, gatherNdConfig, gatherV2Config, greaterConfig, greaterEqualConfig, identityConfig, isNaNConfig, leakyReluConfig, lessConfig, lessEqualConfig, logConfig, logicalAndConfig, logicalNotConfig, logicalOrConfig, logicalXorConfig, maxConfig, maximumConfig, maxPoolConfig, meanConfig, minConfig, minimumConfig, mirrorPadConfig, multiplyConfig, negConfig, nonMaxSuppressionV3Config, nonMaxSuppressionV4Config, nonMaxSuppressionV5Config, notEqualConfig, oneHotConfig, onesLikeConfig, packConfig, padV2Config, powConfig, preluConfig, prodConfig, rangeConfig, realDivConfig, reciprocalConfig, reluConfig, relu6Config, reshapeConfig, resizeBilinearConfig, resizeNearestNeighborConfig, reverseConfig, rotateWithOffsetConfig, roundConfig, rsqrtConfig, scatterNdConfig, selectConfig, sigmoidConfig, sinConfig, sliceConfig, softmaxConfig, spaceToBatchNDConfig, sparseFillEmptyRowsConfig, sparseReshapeConfig, sparseSegmentMeanConfig, sparseSegmentSumConfig, splitVConfig, sqrtConfig, squareConfig, squaredDifferenceConfig, stepConfig, stridedSliceConfig, stringNGramsConfig, stringSplitConfig, stringToHashBucketFastConfig, subConfig, sumConfig, tanConfig, tanhConfig, tileConfig, topKConfig, transformConfig, transposeConfig, unpackConfig, zerosLikeConfig];
                try {
                    for (var kernelConfigs_1 = __values(kernelConfigs), kernelConfigs_1_1 = kernelConfigs_1.next(); !kernelConfigs_1_1.done; kernelConfigs_1_1 = kernelConfigs_1.next()) {
                        var kernelConfig = kernelConfigs_1_1.value;
                        tfjsCore.registerKernel(kernelConfig);
                    }
                } catch (e_1_1) {
                    e_1 = {
                        error: e_1_1
                    };
                } finally {
                    try {
                        if (kernelConfigs_1_1 && !kernelConfigs_1_1.done && (_a = kernelConfigs_1.return))
                            _a.call(kernelConfigs_1);
                    } finally {
                        if (e_1)
                            throw e_1.error;
                    }
                }

                var ENV = tfjsCore.env();
                /**
                 * True if SIMD is supported.
                 */
                // From: https://github.com/GoogleChromeLabs/wasm-feature-detect
                ENV.registerFlag('WASM_HAS_SIMD_SUPPORT', function () {
                    return __awaiter(void 0, void 0, void 0, function () {
                        return __generator(this, function (_a) {
                            try {
                                // This typed array passed in to WebAssembly.validate is WebAssembly binary
                                // code. In this case it is a small program that contains SIMD
                                // instructions.
                            return [2 /*return*/
                                    , WebAssembly.validate(new Uint8Array([0, 97, 115, 109, 1, 0, 0, 0, 1, 4, 1, 96, 0, 0, 3, 2, 1, 0, 10, 9, 1, 7, 0, 65, 0, 253, 15, 26, 11]))];
                            } catch (e) {
                                return [2 /*return*/
                                    , false];
                            }
                            return [2 /*return*/
                            ];
                        });
                    });
                });
                /**
                 * True if threads are supported.
                 */
                // From: https://github.com/GoogleChromeLabs/wasm-feature-detect
                ENV.registerFlag('WASM_HAS_MULTITHREAD_SUPPORT', function () {
                    return __awaiter(void 0, void 0, void 0, function () {
                        return __generator(this, function (_a) {
                            // TODO(annxingyuan): Enable node support once this is resolved:
                            // https://github.com/tensorflow/tfjs/issues/3830
                            if (ENV.get('IS_NODE')) {
                                return [2 /*return*/
                                    , false];
                            }
                            try {
                                // Test for transferability of SABs (needed for Firefox)
                                // https://groups.google.com/forum/#!msg/mozilla.dev.platform/IHkBZlHETpA/dwsMNchWEQAJ
                                new MessageChannel().port1.postMessage(new SharedArrayBuffer(1));
                                // This typed array is a WebAssembly program containing threaded
                                // instructions.
                                return [2 /*return*/
                                    , false];
                            } catch (e) {
                                return [2 /*return*/
                                    , false];
                            }
                            return [2 /*return*/
                            ];
                        });
                    });
                });

                var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
                function createCommonjsModule(fn) {
                    var module = {
                        exports: {}
                    };
                    return fn(module, module.exports),
                        module.exports;
                }
                function commonjsRequire(path) {
                    throw new Error('Could not dynamically require "' + path + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.');
                }

                var tfjsBackendWasmThreadedSimd = createCommonjsModule(function (module, exports) {
                    var WasmBackendModuleThreadedSimd = (function () {
                        var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;
                        if (typeof __filename !== 'undefined')
                            _scriptDir = _scriptDir || __filename;
                        return (function (WasmBackendModuleThreadedSimd) {
                            WasmBackendModuleThreadedSimd = WasmBackendModuleThreadedSimd || {};
                            function GROWABLE_HEAP_I8() {
                                if (wasmMemory.buffer != buffer) {
                                    updateGlobalBufferAndViews(wasmMemory.buffer);
                                }
                                return HEAP8;
                            }
                            function GROWABLE_HEAP_U8() {
                                if (wasmMemory.buffer != buffer) {
                                    updateGlobalBufferAndViews(wasmMemory.buffer);
                                }
                                return HEAPU8;
                            }
                            function GROWABLE_HEAP_I32() {
                                if (wasmMemory.buffer != buffer) {
                                    updateGlobalBufferAndViews(wasmMemory.buffer);
                                }
                                return HEAP32;
                            }
                            function GROWABLE_HEAP_U32() {
                                if (wasmMemory.buffer != buffer) {
                                    updateGlobalBufferAndViews(wasmMemory.buffer);
                                }
                                return HEAPU32;
                            }
                            function GROWABLE_HEAP_F64() {
                                if (wasmMemory.buffer != buffer) {
                                    updateGlobalBufferAndViews(wasmMemory.buffer);
                                }
                                return HEAPF64;
                            }
                            var Module = typeof WasmBackendModuleThreadedSimd != "undefined" ? WasmBackendModuleThreadedSimd : {};
                            var readyPromiseResolve, readyPromiseReject;
                            Module["ready"] = new Promise(function (resolve, reject) {
                                readyPromiseResolve = resolve;
                                readyPromiseReject = reject;
                            }
                            );
                            var beforeListeners;
                            if (typeof process !== "undefined" && process.listeners) {
                                beforeListeners = {
                                    uncaughtException: process.listeners("uncaughtException"),
                                    unhandledRejection: process.listeners("unhandledRejection")
                                };
                            }
                            var moduleOverrides = Object.assign({}, Module);
                            var quit_ = function (status, toThrow) {
                                throw toThrow;
                            };
                            var ENVIRONMENT_IS_WEB = typeof window == "object";
                            var ENVIRONMENT_IS_WORKER = typeof importScripts == "function";
                            var ENVIRONMENT_IS_NODE = typeof process == "object" && typeof process.versions == "object" && typeof process.versions.node == "string";
                            var ENVIRONMENT_IS_PTHREAD = Module["ENVIRONMENT_IS_PTHREAD"] || false;
                            var scriptDirectory = "";
                            function locateFile(path) {
                                if (Module["locateFile"]) {
                                    return Module["locateFile"](path, scriptDirectory);
                                }
                                return scriptDirectory + path;
                            }
                            var read_, readAsync, readBinary;
                            function logExceptionOnExit(e) {
                                if (e instanceof ExitStatus)
                                    return;
                                var toLog = e;
                                err("exiting due to exception: " + toLog);
                            }
                            if (ENVIRONMENT_IS_NODE) {
                                if (ENVIRONMENT_IS_WORKER) {
                                    scriptDirectory = require$$0__default["default"].dirname(scriptDirectory) + "/";
                                } else {
                                    scriptDirectory = __dirname + "/";
                                }
                                var fs, nodePath;
                                if (typeof commonjsRequire === "function") {
                                    fs = require$$1__default["default"];
                                    nodePath = require$$0__default["default"];
                                }
                                read_ = function (filename, binary) {
                                    filename = nodePath["normalize"](filename);
                                    return fs.readFileSync(filename, binary ? undefined : "utf8");
                                }
                                    ;
                                readBinary = function (filename) {
                                    var ret = read_(filename, true);
                                    if (!ret.buffer) {
                                        ret = new Uint8Array(ret);
                                    }
                                    return ret;
                                }
                                    ;
                                readAsync = function (filename, onload, onerror) {
                                    filename = nodePath["normalize"](filename);
                                    fs.readFile(filename, function (err, data) {
                                        if (err)
                                            onerror(err);
                                        else
                                            onload(data.buffer);
                                    });
                                }
                                    ;
                                if (process["argv"].length > 1) {
                                    process["argv"][1].replace(/\\/g, "/");
                                }
                                process["argv"].slice(2);
                                process["on"]("uncaughtException", function (ex) {
                                    if (!(ex instanceof ExitStatus)) {
                                        throw ex;
                                    }
                                });
                                process["on"]("unhandledRejection", function (reason) {
                                    throw reason;
                                });
                                quit_ = function (status, toThrow) {
                                    if (keepRuntimeAlive()) {
                                        process["exitCode"] = status;
                                        throw toThrow;
                                    }
                                    logExceptionOnExit(toThrow);
                                    process["exit"](status);
                                }
                                    ;
                                Module["inspect"] = function () {
                                    return "[Emscripten Module object]";
                                }
                                    ;
                                var nodeWorkerThreads = void 0;
                                try {
                                    nodeWorkerThreads = require$$2__default["default"];
                                } catch (e) {
                                    console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');
                                    throw e;
                                }
                                commonjsGlobal.Worker = nodeWorkerThreads.Worker;
                            } else if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) {
                                if (ENVIRONMENT_IS_WORKER) {
                                    scriptDirectory = self.location.href;
                                } else if (typeof document != "undefined" && document.currentScript) {
                                    scriptDirectory = document.currentScript.src;
                                }
                                if (typeof _scriptDir !== "undefined" && _scriptDir) {
                                    scriptDirectory = _scriptDir;
                                }
                                if (scriptDirectory.indexOf("blob:") !== 0) {
                                    scriptDirectory = scriptDirectory.substr(0, scriptDirectory.replace(/[?#].*/, "").lastIndexOf("/") + 1);
                                } else {
                                    scriptDirectory = "";
                                }
                                if (!ENVIRONMENT_IS_NODE) {
                                    read_ = function (url) {
                                        var xhr = new XMLHttpRequest;
                                        xhr.open("GET", url, false);
                                        xhr.send(null);
                                        return xhr.responseText;
                                    }
                                        ;
                                    if (ENVIRONMENT_IS_WORKER) {
                                        readBinary = function (url) {
                                            var xhr = new XMLHttpRequest;
                                            xhr.open("GET", url, false);
                                            xhr.responseType = "arraybuffer";
                                            xhr.send(null);
                                            return new Uint8Array(xhr.response);
                                        }
                                            ;
                                    }
                                    readAsync = function (url, onload, onerror) {
                                        var xhr = new XMLHttpRequest;
                                        xhr.open("GET", url, true);
                                        xhr.responseType = "arraybuffer";
                                        xhr.onload = function () {
                                            if (xhr.status == 200 || xhr.status == 0 && xhr.response) {
                                                onload(xhr.response);
                                                return;
                                            }
                                            onerror();
                                        }
                                            ;
                                        xhr.onerror = onerror;
                                        xhr.send(null);
                                    }
                                        ;
                                }
                            } else
                                ; if (ENVIRONMENT_IS_NODE) {
                                    if (typeof performance == "undefined") {
                                        commonjsGlobal.performance = require$$3__default["default"].performance;
                                    }
                                }
                            var defaultPrint = console.log.bind(console);
                            var defaultPrintErr = console.warn.bind(console);
                            if (ENVIRONMENT_IS_NODE) {
                                defaultPrint = function (str) {
                                    return fs.writeSync(1, str + "\n");
                                }
                                    ;
                                defaultPrintErr = function (str) {
                                    return fs.writeSync(2, str + "\n");
                                }
                                    ;
                            }
                            var out = Module["print"] || defaultPrint;
                            var err = Module["printErr"] || defaultPrintErr;
                            Object.assign(Module, moduleOverrides);
                            moduleOverrides = null;
                            if (Module["arguments"])
                                ; if (Module["thisProgram"])
                                ; if (Module["quit"])
                                quit_ = Module["quit"];
                            var wasmBinary;
                            if (Module["wasmBinary"])
                                wasmBinary = Module["wasmBinary"];
                            var noExitRuntime = Module["noExitRuntime"] || true;
                            if (typeof WebAssembly != "object") {
                                abort("no native wasm support detected");
                            }
                            var wasmMemory;
                            var wasmModule;
                            var ABORT = false;
                            var EXITSTATUS;
                            function assert(condition, text) {
                                if (!condition) {
                                    abort(text);
                                }
                            }
                            var UTF8Decoder = typeof TextDecoder != "undefined" ? new TextDecoder("utf8") : undefined;
                            function UTF8ArrayToString(heapOrArray, idx, maxBytesToRead) {
                                var endIdx = idx + maxBytesToRead;
                                var endPtr = idx;
                                while (heapOrArray[endPtr] && !(endPtr >= endIdx))
                                    ++endPtr;
                                if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) {
                                    return UTF8Decoder.decode(heapOrArray.buffer instanceof SharedArrayBuffer ? heapOrArray.slice(idx, endPtr) : heapOrArray.subarray(idx, endPtr));
                                }
                                var str = "";
                                while (idx < endPtr) {
                                    var u0 = heapOrArray[idx++];
                                    if (!(u0 & 128)) {
                                        str += String.fromCharCode(u0);
                                        continue;
                                    }
                                    var u1 = heapOrArray[idx++] & 63;
                                    if ((u0 & 224) == 192) {
                                        str += String.fromCharCode((u0 & 31) << 6 | u1);
                                        continue;
                                    }
                                    var u2 = heapOrArray[idx++] & 63;
                                    if ((u0 & 240) == 224) {
                                        u0 = (u0 & 15) << 12 | u1 << 6 | u2;
                                    } else {
                                        u0 = (u0 & 7) << 18 | u1 << 12 | u2 << 6 | heapOrArray[idx++] & 63;
                                    }
                                    if (u0 < 65536) {
                                        str += String.fromCharCode(u0);
                                    } else {
                                        var ch = u0 - 65536;
                                        str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023);
                                    }
                                }
                                return str;
                            }
                            function UTF8ToString(ptr, maxBytesToRead) {
                                return ptr ? UTF8ArrayToString(GROWABLE_HEAP_U8(), ptr, maxBytesToRead) : "";
                            }
                            function stringToUTF8Array(str, heap, outIdx, maxBytesToWrite) {
                                if (!(maxBytesToWrite > 0))
                                    return 0;
                                var startIdx = outIdx;
                                var endIdx = outIdx + maxBytesToWrite - 1;
                                for (var i = 0; i < str.length; ++i) {
                                    var u = str.charCodeAt(i);
                                    if (u >= 55296 && u <= 57343) {
                                        var u1 = str.charCodeAt(++i);
                                        u = 65536 + ((u & 1023) << 10) | u1 & 1023;
                                    }
                                    if (u <= 127) {
                                        if (outIdx >= endIdx)
                                            break;
                                        heap[outIdx++] = u;
                                    } else if (u <= 2047) {
                                        if (outIdx + 1 >= endIdx)
                                            break;
                                        heap[outIdx++] = 192 | u >> 6;
                                        heap[outIdx++] = 128 | u & 63;
                                    } else if (u <= 65535) {
                                        if (outIdx + 2 >= endIdx)
                                            break;
                                        heap[outIdx++] = 224 | u >> 12;
                                        heap[outIdx++] = 128 | u >> 6 & 63;
                                        heap[outIdx++] = 128 | u & 63;
                                    } else {
                                        if (outIdx + 3 >= endIdx)
                                            break;
                                        heap[outIdx++] = 240 | u >> 18;
                                        heap[outIdx++] = 128 | u >> 12 & 63;
                                        heap[outIdx++] = 128 | u >> 6 & 63;
                                        heap[outIdx++] = 128 | u & 63;
                                    }
                                }
                                heap[outIdx] = 0;
                                return outIdx - startIdx;
                            }
                            function stringToUTF8(str, outPtr, maxBytesToWrite) {
                                return stringToUTF8Array(str, GROWABLE_HEAP_U8(), outPtr, maxBytesToWrite);
                            }
                            var buffer, HEAP8, HEAPU8, HEAP32, HEAPU32, HEAPF64;
                            if (ENVIRONMENT_IS_PTHREAD) {
                                buffer = Module["buffer"];
                            }
                            function updateGlobalBufferAndViews(buf) {
                                buffer = buf;
                                Module["HEAP8"] = HEAP8 = new Int8Array(buf);
                                Module["HEAP16"] = new Int16Array(buf);
                                Module["HEAP32"] = HEAP32 = new Int32Array(buf);
                                Module["HEAPU8"] = HEAPU8 = new Uint8Array(buf);
                                Module["HEAPU16"] = new Uint16Array(buf);
                                Module["HEAPU32"] = HEAPU32 = new Uint32Array(buf);
                                Module["HEAPF32"] = new Float32Array(buf);
                                Module["HEAPF64"] = HEAPF64 = new Float64Array(buf);
                            }
                            var INITIAL_MEMORY = Module["INITIAL_MEMORY"] || 16777216;
                            if (ENVIRONMENT_IS_PTHREAD) {
                                wasmMemory = Module["wasmMemory"];
                                buffer = Module["buffer"];
                            } else {
                                if (Module["wasmMemory"]) {
                                    wasmMemory = Module["wasmMemory"];
                                } else {
                                    wasmMemory = new WebAssembly.Memory({
                                        "initial": INITIAL_MEMORY / 65536,
                                        "maximum": 2147483648 / 65536,
                                        "shared": true
                                    });
                                    if (!(wasmMemory.buffer instanceof SharedArrayBuffer)) {
                                        err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");
                                        if (ENVIRONMENT_IS_NODE) {
                                            console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)");
                                        }
                                        throw Error("bad memory");
                                    }
                                }
                            }
                            if (wasmMemory) {
                                buffer = wasmMemory.buffer;
                            }
                            INITIAL_MEMORY = buffer.byteLength;
                            updateGlobalBufferAndViews(buffer);
                            var wasmTable;
                            var __ATPRERUN__ = [];
                            var __ATINIT__ = [];
                            var __ATPOSTRUN__ = [];
                            function keepRuntimeAlive() {
                                return noExitRuntime;
                            }
                            function preRun() {
                                if (Module["preRun"]) {
                                    if (typeof Module["preRun"] == "function")
                                        Module["preRun"] = [Module["preRun"]];
                                    while (Module["preRun"].length) {
                                        addOnPreRun(Module["preRun"].shift());
                                    }
                                }
                                callRuntimeCallbacks(__ATPRERUN__);
                            }
                            function initRuntime() {
                                if (ENVIRONMENT_IS_PTHREAD)
                                    return;
                                callRuntimeCallbacks(__ATINIT__);
                            }
                            function postRun() {
                                if (ENVIRONMENT_IS_PTHREAD)
                                    return;
                                if (Module["postRun"]) {
                                    if (typeof Module["postRun"] == "function")
                                        Module["postRun"] = [Module["postRun"]];
                                    while (Module["postRun"].length) {
                                        addOnPostRun(Module["postRun"].shift());
                                    }
                                }
                                callRuntimeCallbacks(__ATPOSTRUN__);
                            }
                            function addOnPreRun(cb) {
                                __ATPRERUN__.unshift(cb);
                            }
                            function addOnInit(cb) {
                                __ATINIT__.unshift(cb);
                            }
                            function addOnPostRun(cb) {
                                __ATPOSTRUN__.unshift(cb);
                            }
                            var runDependencies = 0;
                            var dependenciesFulfilled = null;
                            function addRunDependency(id) {
                                runDependencies++;
                                if (Module["monitorRunDependencies"]) {
                                    Module["monitorRunDependencies"](runDependencies);
                                }
                            }
                            function removeRunDependency(id) {
                                runDependencies--;
                                if (Module["monitorRunDependencies"]) {
                                    Module["monitorRunDependencies"](runDependencies);
                                }
                                if (runDependencies == 0) {
                                    if (dependenciesFulfilled) {
                                        var callback = dependenciesFulfilled;
                                        dependenciesFulfilled = null;
                                        callback();
                                    }
                                }
                            }
                            function abort(what) {
                                if (ENVIRONMENT_IS_PTHREAD) {
                                    postMessage({
                                        "cmd": "onAbort",
                                        "arg": what
                                    });
                                } else {
                                    if (Module["onAbort"]) {
                                        Module["onAbort"](what);
                                    }
                                }
                                what = "Aborted(" + what + ")";
                                err(what);
                                ABORT = true;
                                EXITSTATUS = 1;
                                what += ". Build with -sASSERTIONS for more info.";
                                var e = new WebAssembly.RuntimeError(what);
                                readyPromiseReject(e);
                                throw e;
                            }
                            var dataURIPrefix = "data:application/octet-stream;base64,";
                            function isDataURI(filename) {
                                return filename.startsWith(dataURIPrefix);
                            }
                            function isFileURI(filename) {
                                return filename.startsWith("file://");
                            }
                            var wasmBinaryFile;
                            wasmBinaryFile = "tfjs-backend-wasm-threaded-simd.wasm";
                            if (!isDataURI(wasmBinaryFile)) {
                                wasmBinaryFile = locateFile(wasmBinaryFile);
                            }
                            function getBinary(file) {
                                try {
                                    if (file == wasmBinaryFile && wasmBinary) {
                                        return new Uint8Array(wasmBinary);
                                    }
                                    if (readBinary) {
                                        return readBinary(file);
                                    }
                                    throw "both async and sync fetching of the wasm failed";
                                } catch (err) {
                                    abort(err);
                                }
                            }
                            function getBinaryPromise() {
                                if (!wasmBinary && (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER)) {
                                    if (typeof fetch == "function" && !isFileURI(wasmBinaryFile)) {
                                        return fetch(wasmBinaryFile, {
                                            credentials: "same-origin"
                                        }).then(function (response) {
                                            if (!response["ok"]) {
                                                throw "failed to load wasm binary file at '" + wasmBinaryFile + "'";
                                            }
                                            return response["arrayBuffer"]();
                                        }).catch(function () {
                                            return getBinary(wasmBinaryFile);
                                        });
                                    } else {
                                        if (readAsync) {
                                            return new Promise(function (resolve, reject) {
                                                readAsync(wasmBinaryFile, function (response) {
                                                    resolve(new Uint8Array(response));
                                                }, reject);
                                            }
                                            );
                                        }
                                    }
                                }
                                return Promise.resolve().then(function () {
                                    return getBinary(wasmBinaryFile);
                                });
                            }
                            function createWasm() {
                                var info = {
                                    "env": asmLibraryArg,
                                    "wasi_snapshot_preview1": asmLibraryArg
                                };
                                function receiveInstance(instance, module) {
                                    var exports = instance.exports;
                                    Module["asm"] = exports;
                                    registerTLSInit(Module["asm"]["_emscripten_tls_init"]);
                                    wasmTable = Module["asm"]["__indirect_function_table"];
                                    addOnInit(Module["asm"]["__wasm_call_ctors"]);
                                    wasmModule = module;
                                    if (!ENVIRONMENT_IS_PTHREAD) {
                                        var numWorkersToLoad = PThread.unusedWorkers.length;
                                        PThread.unusedWorkers.forEach(function (w) {
                                            PThread.loadWasmModuleToWorker(w, function () {
                                                if (!--numWorkersToLoad)
                                                    removeRunDependency();
                                            });
                                        });
                                    }
                                }
                                if (!ENVIRONMENT_IS_PTHREAD) {
                                    addRunDependency();
                                }
                                function receiveInstantiationResult(result) {
                                    receiveInstance(result["instance"], result["module"]);
                                }
                                function instantiateArrayBuffer(receiver) {
                                    return getBinaryPromise().then(function (binary) {
                                        return WebAssembly.instantiate(binary, info);
                                    }).then(function (instance) {
                                        return instance;
                                    }).then(receiver, function (reason) {
                                        err("failed to asynchronously prepare wasm: " + reason);
                                        abort(reason);
                                    });
                                }
                                function instantiateAsync() {
                                    if (!wasmBinary && typeof WebAssembly.instantiateStreaming == "function" && !isDataURI(wasmBinaryFile) && !isFileURI(wasmBinaryFile) && !ENVIRONMENT_IS_NODE && typeof fetch == "function") {
                                        return fetch(wasmBinaryFile, {
                                            credentials: "same-origin"
                                        }).then(function (response) {
                                            var result = WebAssembly.instantiateStreaming(response, info);
                                            return result.then(receiveInstantiationResult, function (reason) {
                                                err("wasm streaming compile failed: " + reason);
                                                err("falling back to ArrayBuffer instantiation");
                                                return instantiateArrayBuffer(receiveInstantiationResult);
                                            });
                                        });
                                    } else {
                                        return instantiateArrayBuffer(receiveInstantiationResult);
                                    }
                                }
                                if (Module["instantiateWasm"]) {
                                    try {
                                        var exports = Module["instantiateWasm"](info, receiveInstance);
                                        return exports;
                                    } catch (e) {
                                        err("Module.instantiateWasm callback failed with error: " + e);
                                        readyPromiseReject(e);
                                    }
                                }
                                instantiateAsync().catch(readyPromiseReject);
                                return {};
                            }
                            var ASM_CONSTS = {};
                            function ExitStatus(status) {
                                this.name = "ExitStatus";
                                this.message = "Program terminated with exit(" + status + ")";
                                this.status = status;
                            }
                            function killThread(pthread_ptr) {
                                var worker = PThread.pthreads[pthread_ptr];
                                delete PThread.pthreads[pthread_ptr];
                                worker.terminate();
                                __emscripten_thread_free_data(pthread_ptr);
                                PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker), 1);
                                worker.pthread_ptr = 0;
                            }
                            function cancelThread(pthread_ptr) {
                                var worker = PThread.pthreads[pthread_ptr];
                                worker.postMessage({
                                    "cmd": "cancel"
                                });
                            }
                            function cleanupThread(pthread_ptr) {
                                var worker = PThread.pthreads[pthread_ptr];
                                assert(worker);
                                PThread.returnWorkerToPool(worker);
                            }
                            function spawnThread(threadParams) {
                                var worker = PThread.getNewWorker();
                                if (!worker) {
                                    return 6;
                                }
                                PThread.runningWorkers.push(worker);
                                PThread.pthreads[threadParams.pthread_ptr] = worker;
                                worker.pthread_ptr = threadParams.pthread_ptr;
                                var msg = {
                                    "cmd": "run",
                                    "start_routine": threadParams.startRoutine,
                                    "arg": threadParams.arg,
                                    "pthread_ptr": threadParams.pthread_ptr
                                };
                                worker.runPthread = function () {
                                    msg.time = performance.now();
                                    worker.postMessage(msg, threadParams.transferList);
                                }
                                    ;
                                if (worker.loaded) {
                                    worker.runPthread();
                                    delete worker.runPthread;
                                }
                                return 0;
                            }
                            function _proc_exit(code) {
                                if (ENVIRONMENT_IS_PTHREAD)
                                    return _emscripten_proxy_to_main_thread_js(1, 1, code);
                                EXITSTATUS = code;
                                if (!keepRuntimeAlive()) {
                                    PThread.terminateAllThreads();
                                    if (Module["onExit"])
                                        Module["onExit"](code);
                                    ABORT = true;
                                }
                                quit_(code, new ExitStatus(code));
                            }
                            function exitJS(status, implicit) {
                                EXITSTATUS = status;
                                if (!implicit) {
                                    if (ENVIRONMENT_IS_PTHREAD) {
                                        exitOnMainThread(status);
                                        throw "unwind";
                                    }
                                }
                                _proc_exit(status);
                            }
                            var _exit = exitJS;
                            function handleException(e) {
                                if (e instanceof ExitStatus || e == "unwind") {
                                    return EXITSTATUS;
                                }
                                quit_(1, e);
                            }
                            var PThread = {
                                unusedWorkers: [],
                                runningWorkers: [],
                                tlsInitFunctions: [],
                                pthreads: {},
                                init: function () {
                                    if (ENVIRONMENT_IS_PTHREAD) {
                                        PThread.initWorker();
                                    } else {
                                        PThread.initMainThread();
                                    }
                                },
                                initMainThread: function () {
                                    var pthreadPoolSize = 8;
                                    while (pthreadPoolSize--) {
                                        PThread.allocateUnusedWorker();
                                    }
                                },
                                initWorker: function () {
                                    noExitRuntime = false;
                                },
                                setExitStatus: function (status) {
                                    EXITSTATUS = status;
                                },
                                terminateAllThreads: function () {
                                    var e_1, _a, e_2, _b;
                                    try {
                                        for (var _c = __values(Object.values(PThread.pthreads)), _d = _c.next(); !_d.done; _d = _c.next()) {
                                            var worker = _d.value;
                                            PThread.returnWorkerToPool(worker);
                                        }
                                    } catch (e_1_1) {
                                        e_1 = {
                                            error: e_1_1
                                        };
                                    } finally {
                                        try {
                                            if (_d && !_d.done && (_a = _c.return))
                                                _a.call(_c);
                                        } finally {
                                            if (e_1)
                                                throw e_1.error;
                                        }
                                    }
                                    try {
                                        for (var _e = __values(PThread.unusedWorkers), _f = _e.next(); !_f.done; _f = _e.next()) {
                                            var worker = _f.value;
                                            worker.terminate();
                                        }
                                    } catch (e_2_1) {
                                        e_2 = {
                                            error: e_2_1
                                        };
                                    } finally {
                                        try {
                                            if (_f && !_f.done && (_b = _e.return))
                                                _b.call(_e);
                                        } finally {
                                            if (e_2)
                                                throw e_2.error;
                                        }
                                    }
                                    PThread.unusedWorkers = [];
                                },
                                returnWorkerToPool: function (worker) {
                                    var pthread_ptr = worker.pthread_ptr;
                                    delete PThread.pthreads[pthread_ptr];
                                    PThread.unusedWorkers.push(worker);
                                    PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker), 1);
                                    worker.pthread_ptr = 0;
                                    __emscripten_thread_free_data(pthread_ptr);
                                },
                                receiveObjectTransfer: function (data) { },
                                threadInitTLS: function () {
                                    PThread.tlsInitFunctions.forEach(function (f) {
                                        return f();
                                    });
                                },
                                loadWasmModuleToWorker: function (worker, onFinishedLoading) {
                                    worker.onmessage = function (e) {
                                        var d = e["data"];
                                        var cmd = d["cmd"];
                                        if (worker.pthread_ptr)
                                            PThread.currentProxiedOperationCallerThread = worker.pthread_ptr;
                                        if (d["targetThread"] && d["targetThread"] != _pthread_self()) {
                                            var targetWorker = PThread.pthreads[d.targetThread];
                                            if (targetWorker) {
                                                targetWorker.postMessage(d, d["transferList"]);
                                            } else {
                                                err('Internal error! Worker sent a message "' + cmd + '" to target pthread ' + d["targetThread"] + ", but that thread no longer exists!");
                                            }
                                            PThread.currentProxiedOperationCallerThread = undefined;
                                            return;
                                        }
                                        if (cmd === "processProxyingQueue") {
                                            executeNotifiedProxyingQueue(d["queue"]);
                                        } else if (cmd === "spawnThread") {
                                            spawnThread(d);
                                        } else if (cmd === "cleanupThread") {
                                            cleanupThread(d["thread"]);
                                        } else if (cmd === "killThread") {
                                            killThread(d["thread"]);
                                        } else if (cmd === "cancelThread") {
                                            cancelThread(d["thread"]);
                                        } else if (cmd === "loaded") {
                                            worker.loaded = true;
                                            if (onFinishedLoading)
                                                onFinishedLoading(worker);
                                            if (worker.runPthread) {
                                                worker.runPthread();
                                                delete worker.runPthread;
                                            }
                                        } else if (cmd === "print") {
                                            out("Thread " + d["threadId"] + ": " + d["text"]);
                                        } else if (cmd === "printErr") {
                                            err("Thread " + d["threadId"] + ": " + d["text"]);
                                        } else if (cmd === "alert") {
                                            alert("Thread " + d["threadId"] + ": " + d["text"]);
                                        } else if (d.target === "setimmediate") {
                                            worker.postMessage(d);
                                        } else if (cmd === "onAbort") {
                                            if (Module["onAbort"]) {
                                                Module["onAbort"](d["arg"]);
                                            }
                                        } else if (cmd) {
                                            err("worker sent an unknown command " + cmd);
                                        }
                                        PThread.currentProxiedOperationCallerThread = undefined;
                                    }
                                        ;
                                    worker.onerror = function (e) {
                                        var message = "worker sent an error!";
                                        err(message + " " + e.filename + ":" + e.lineno + ": " + e.message);
                                        throw e;
                                    }
                                        ;
                                    if (ENVIRONMENT_IS_NODE) {
                                        worker.on("message", function (data) {
                                            worker.onmessage({
                                                data: data
                                            });
                                        });
                                        worker.on("error", function (e) {
                                            worker.onerror(e);
                                        });
                                        worker.on("detachedExit", function () { });
                                    }
                                    worker.postMessage({
                                        "cmd": "load",
                                        "urlOrBlob": Module["mainScriptUrlOrBlob"] || _scriptDir,
                                        "wasmMemory": wasmMemory,
                                        "wasmModule": wasmModule
                                    });
                                },
                                allocateUnusedWorker: function () {
                                    var pthreadMainJs = locateFile("tfjs-backend-wasm-threaded-simd.worker.js");
                                    PThread.unusedWorkers.push(new Worker(pthreadMainJs));
                                },
                                getNewWorker: function () {
                                    if (PThread.unusedWorkers.length == 0) {
                                        PThread.allocateUnusedWorker();
                                        PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0]);
                                    }
                                    return PThread.unusedWorkers.pop();
                                }
                            };
                            Module["PThread"] = PThread;
                            function callRuntimeCallbacks(callbacks) {
                                while (callbacks.length > 0) {
                                    callbacks.shift()(Module);
                                }
                            }
                            function withStackSave(f) {
                                var stack = stackSave();
                                var ret = f();
                                stackRestore(stack);
                                return ret;
                            }
                            function establishStackSpace() {
                                var pthread_ptr = _pthread_self();
                                var stackTop = GROWABLE_HEAP_I32()[pthread_ptr + 44 >> 2];
                                var stackSize = GROWABLE_HEAP_I32()[pthread_ptr + 48 >> 2];
                                var stackMax = stackTop - stackSize;
                                _emscripten_stack_set_limits(stackTop, stackMax);
                                stackRestore(stackTop);
                            }
                            Module["establishStackSpace"] = establishStackSpace;
                            function exitOnMainThread(returnCode) {
                                if (ENVIRONMENT_IS_PTHREAD)
                                    return _emscripten_proxy_to_main_thread_js(2, 0, returnCode);
                                try {
                                    _exit(returnCode);
                                } catch (e) {
                                    handleException(e);
                                }
                            }
                            var wasmTableMirror = [];
                            function getWasmTableEntry(funcPtr) {
                                var func = wasmTableMirror[funcPtr];
                                if (!func) {
                                    if (funcPtr >= wasmTableMirror.length)
                                        wasmTableMirror.length = funcPtr + 1;
                                    wasmTableMirror[funcPtr] = func = wasmTable.get(funcPtr);
                                }
                                return func;
                            }
                            function invokeEntryPoint(ptr, arg) {
                                var result = getWasmTableEntry(ptr)(arg);
                                if (keepRuntimeAlive()) {
                                    PThread.setExitStatus(result);
                                } else {
                                    __emscripten_thread_exit(result);
                                }
                            }
                            Module["invokeEntryPoint"] = invokeEntryPoint;
                            function registerTLSInit(tlsInitFunc) {
                                PThread.tlsInitFunctions.push(tlsInitFunc);
                            }
                            function writeArrayToMemory(array, buffer) {
                                GROWABLE_HEAP_I8().set(array, buffer);
                            }
                            function ___emscripten_init_main_thread_js(tb) {
                                __emscripten_thread_init(tb, !ENVIRONMENT_IS_WORKER, 1, !ENVIRONMENT_IS_WEB);
                                PThread.threadInitTLS();
                            }
                            function ___emscripten_thread_cleanup(thread) {
                                if (!ENVIRONMENT_IS_PTHREAD)
                                    cleanupThread(thread);
                                else
                                    postMessage({
                                        "cmd": "cleanupThread",
                                        "thread": thread
                                    });
                            }
                            function pthreadCreateProxied(pthread_ptr, attr, startRoutine, arg) {
                                if (ENVIRONMENT_IS_PTHREAD)
                                    return _emscripten_proxy_to_main_thread_js(3, 1, pthread_ptr, attr, startRoutine, arg);
                                return ___pthread_create_js(pthread_ptr, attr, startRoutine, arg);
                            }
                            function ___pthread_create_js(pthread_ptr, attr, startRoutine, arg) {
                                if (typeof SharedArrayBuffer == "undefined") {
                                    err("Current environment does not support SharedArrayBuffer, pthreads are not available!");
                                    return 6;
                                }
                                var transferList = [];
                                var error = 0;
                                if (ENVIRONMENT_IS_PTHREAD && (transferList.length === 0 || error)) {
                                    return pthreadCreateProxied(pthread_ptr, attr, startRoutine, arg);
                                }
                                var threadParams = {
                                    startRoutine: startRoutine,
                                    pthread_ptr: pthread_ptr,
                                    arg: arg,
                                    transferList: transferList
                                };
                                if (ENVIRONMENT_IS_PTHREAD) {
                                    threadParams.cmd = "spawnThread";
                                    postMessage(threadParams, transferList);
                                    return 0;
                                }
                                return spawnThread(threadParams);
                            }
                            function __emscripten_default_pthread_stack_size() {
                                return 2097152;
                            }
                            var nowIsMonotonic = true;
                            function __emscripten_get_now_is_monotonic() {
                                return nowIsMonotonic;
                            }
                            function executeNotifiedProxyingQueue(queue) {
                                Atomics.store(GROWABLE_HEAP_I32(), queue >> 2, 1);
                                if (_pthread_self()) {
                                    __emscripten_proxy_execute_task_queue(queue);
                                }
                                Atomics.compareExchange(GROWABLE_HEAP_I32(), queue >> 2, 1, 0);
                            }
                            Module["executeNotifiedProxyingQueue"] = executeNotifiedProxyingQueue;
                            function __emscripten_notify_task_queue(targetThreadId, currThreadId, mainThreadId, queue) {
                                if (targetThreadId == currThreadId) {
                                    setTimeout(function () {
                                        return executeNotifiedProxyingQueue(queue);
                                    });
                                } else if (ENVIRONMENT_IS_PTHREAD) {
                                    postMessage({
                                        "targetThread": targetThreadId,
                                        "cmd": "processProxyingQueue",
                                        "queue": queue
                                    });
                                } else {
                                    var worker = PThread.pthreads[targetThreadId];
                                    if (!worker) {
                                        return;
                                    }
                                    worker.postMessage({
                                        "cmd": "processProxyingQueue",
                                        "queue": queue
                                    });
                                }
                                return 1;
                            }
                            function __emscripten_set_offscreencanvas_size(target, width, height) {
                                return -1;
                            }
                            function _abort() {
                                abort("");
                            }
                            function warnOnce(text) {
                                if (!warnOnce.shown)
                                    warnOnce.shown = {};
                                if (!warnOnce.shown[text]) {
                                    warnOnce.shown[text] = 1;
                                    if (ENVIRONMENT_IS_NODE)
                                        text = "warning: " + text;
                                    err(text);
                                }
                            }
                            function _emscripten_check_blocking_allowed() {
                                if (ENVIRONMENT_IS_NODE)
                                    return;
                                if (ENVIRONMENT_IS_WORKER)
                                    return;
                                warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread");
                            }
                            function _emscripten_date_now() {
                                return Date.now();
                            }
                            function getHeapMax() {
                                return 2147483648;
                            }
                            function _emscripten_get_heap_max() {
                                return getHeapMax();
                            }
                            var _emscripten_get_now;
                            if (ENVIRONMENT_IS_NODE) {
                                _emscripten_get_now = function () {
                                    var t = process["hrtime"]();
                                    return t[0] * 1e3 + t[1] / 1e6;
                                }
                                    ;
                            } else if (ENVIRONMENT_IS_PTHREAD) {
                                _emscripten_get_now = function () {
                                    return performance.now() - Module["__performance_now_clock_drift"];
                                }
                                    ;
                            } else
                                _emscripten_get_now = function () {
                                    return performance.now();
                                }
                                    ;
                            function _emscripten_memcpy_big(dest, src, num) {
                                GROWABLE_HEAP_U8().copyWithin(dest, src, src + num);
                            }
                            function _emscripten_num_logical_cores() {
                                if (ENVIRONMENT_IS_NODE)
                                    return require$$4__default["default"].cpus().length;
                                return navigator["hardwareConcurrency"];
                            }
                            function _emscripten_proxy_to_main_thread_js(index, sync) {
                                var numCallArgs = arguments.length - 2;
                                var outerArgs = arguments;
                                return withStackSave(function () {
                                    var serializedNumCallArgs = numCallArgs;
                                    var args = stackAlloc(serializedNumCallArgs * 8);
                                    var b = args >> 3;
                                    for (var i = 0; i < numCallArgs; i++) {
                                        var arg = outerArgs[2 + i];
                                        GROWABLE_HEAP_F64()[b + i] = arg;
                                    }
                                    return _emscripten_run_in_main_runtime_thread_js(index, serializedNumCallArgs, args, sync);
                                });
                            }
                            var _emscripten_receive_on_main_thread_js_callArgs = [];
                            function _emscripten_receive_on_main_thread_js(index, numCallArgs, args) {
                                _emscripten_receive_on_main_thread_js_callArgs.length = numCallArgs;
                                var b = args >> 3;
                                for (var i = 0; i < numCallArgs; i++) {
                                    _emscripten_receive_on_main_thread_js_callArgs[i] = GROWABLE_HEAP_F64()[b + i];
                                }
                                var isEmAsmConst = index < 0;
                                var func = !isEmAsmConst ? proxiedFunctionTable[index] : ASM_CONSTS[-index - 1];
                                return func.apply(null, _emscripten_receive_on_main_thread_js_callArgs);
                            }
                            function emscripten_realloc_buffer(size) {
                                try {
                                    wasmMemory.grow(size - buffer.byteLength + 65535 >>> 16);
                                    updateGlobalBufferAndViews(wasmMemory.buffer);
                                    return 1;
                                } catch (e) { }
                            }
                            function _emscripten_resize_heap(requestedSize) {
                                var oldSize = GROWABLE_HEAP_U8().length;
                                requestedSize = requestedSize >>> 0;
                                if (requestedSize <= oldSize) {
                                    return false;
                                }
                                var maxHeapSize = getHeapMax();
                                if (requestedSize > maxHeapSize) {
                                    return false;
                                }
                                var alignUp = function (x, multiple) {
                                    return x + (multiple - x % multiple) % multiple;
                                };
                                for (var cutDown = 1; cutDown <= 4; cutDown *= 2) {
                                    var overGrownHeapSize = oldSize * (1 + .2 / cutDown);
                                    overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296);
                                    var newSize = Math.min(maxHeapSize, alignUp(Math.max(requestedSize, overGrownHeapSize), 65536));
                                    var replacement = emscripten_realloc_buffer(newSize);
                                    if (replacement) {
                                        return true;
                                    }
                                }
                                return false;
                            }
                            function _emscripten_unwind_to_js_event_loop() {
                                throw "unwind";
                            }
                            function _fd_close(fd) {
                                if (ENVIRONMENT_IS_PTHREAD)
                                    return _emscripten_proxy_to_main_thread_js(4, 1, fd);
                                return 52;
                            }
                            function _fd_seek(fd, offset_low, offset_high, whence, newOffset) {
                                if (ENVIRONMENT_IS_PTHREAD)
                                    return _emscripten_proxy_to_main_thread_js(5, 1, fd, offset_low, offset_high, whence, newOffset);
                                return 70;
                            }
                            var printCharBuffers = [null, [], []];
                            function printChar(stream, curr) {
                                var buffer = printCharBuffers[stream];
                                if (curr === 0 || curr === 10) {
                                    (stream === 1 ? out : err)(UTF8ArrayToString(buffer, 0));
                                    buffer.length = 0;
                                } else {
                                    buffer.push(curr);
                                }
                            }
                            function _fd_write(fd, iov, iovcnt, pnum) {
                                if (ENVIRONMENT_IS_PTHREAD)
                                    return _emscripten_proxy_to_main_thread_js(6, 1, fd, iov, iovcnt, pnum);
                                var num = 0;
                                for (var i = 0; i < iovcnt; i++) {
                                    var ptr = GROWABLE_HEAP_U32()[iov >> 2];
                                    var len = GROWABLE_HEAP_U32()[iov + 4 >> 2];
                                    iov += 8;
                                    for (var j = 0; j < len; j++) {
                                        printChar(fd, GROWABLE_HEAP_U8()[ptr + j]);
                                    }
                                    num += len;
                                }
                                GROWABLE_HEAP_U32()[pnum >> 2] = num;
                                return 0;
                            }
                            function getCFunc(ident) {
                                var func = Module["_" + ident];
                                return func;
                            }
                            function ccall(ident, returnType, argTypes, args, opts) {
                                var toC = {
                                    "string": function (str) {
                                        var ret = 0;
                                        if (str !== null && str !== undefined && str !== 0) {
                                            var len = (str.length << 2) + 1;
                                            ret = stackAlloc(len);
                                            stringToUTF8(str, ret, len);
                                        }
                                        return ret;
                                    },
                                    "array": function (arr) {
                                        var ret = stackAlloc(arr.length);
                                        writeArrayToMemory(arr, ret);
                                        return ret;
                                    }
                                };
                                function convertReturnValue(ret) {
                                    if (returnType === "string") {
                                        return UTF8ToString(ret);
                                    }
                                    if (returnType === "boolean")
                                        return Boolean(ret);
                                    return ret;
                                }
                                var func = getCFunc(ident);
                                var cArgs = [];
                                var stack = 0;
                                if (args) {
                                    for (var i = 0; i < args.length; i++) {
                                        var converter = toC[argTypes[i]];
                                        if (converter) {
                                            if (stack === 0)
                                                stack = stackSave();
                                            cArgs[i] = converter(args[i]);
                                        } else {
                                            cArgs[i] = args[i];
                                        }
                                    }
                                }
                                var ret = func.apply(null, cArgs);
                                function onDone(ret) {
                                    if (stack !== 0)
                                        stackRestore(stack);
                                    return convertReturnValue(ret);
                                }
                                ret = onDone(ret);
                                return ret;
                            }
                            function cwrap(ident, returnType, argTypes, opts) {
                                argTypes = argTypes || [];
                                var numericArgs = argTypes.every(function (type) {
                                    return type === "number" || type === "boolean";
                                });
                                var numericRet = returnType !== "string";
                                if (numericRet && numericArgs && !opts) {
                                    return getCFunc(ident);
                                }
                                return function () {
                                    return ccall(ident, returnType, argTypes, arguments);
                                }
                                    ;
                            }
                            PThread.init();
                            var proxiedFunctionTable = [null, _proc_exit, exitOnMainThread, pthreadCreateProxied, _fd_close, _fd_seek, _fd_write];
                            var asmLibraryArg = {
                                "__emscripten_init_main_thread_js": ___emscripten_init_main_thread_js,
                                "__emscripten_thread_cleanup": ___emscripten_thread_cleanup,
                                "__pthread_create_js": ___pthread_create_js,
                                "_emscripten_default_pthread_stack_size": __emscripten_default_pthread_stack_size,
                                "_emscripten_get_now_is_monotonic": __emscripten_get_now_is_monotonic,
                                "_emscripten_notify_task_queue": __emscripten_notify_task_queue,
                                "_emscripten_set_offscreencanvas_size": __emscripten_set_offscreencanvas_size,
                                "abort": _abort,
                                "emscripten_check_blocking_allowed": _emscripten_check_blocking_allowed,
                                "emscripten_date_now": _emscripten_date_now,
                                "emscripten_get_heap_max": _emscripten_get_heap_max,
                                "emscripten_get_now": _emscripten_get_now,
                                "emscripten_memcpy_big": _emscripten_memcpy_big,
                                "emscripten_num_logical_cores": _emscripten_num_logical_cores,
                                "emscripten_receive_on_main_thread_js": _emscripten_receive_on_main_thread_js,
                                "emscripten_resize_heap": _emscripten_resize_heap,
                                "emscripten_unwind_to_js_event_loop": _emscripten_unwind_to_js_event_loop,
                                "exit": _exit,
                                "fd_close": _fd_close,
                                "fd_seek": _fd_seek,
                                "fd_write": _fd_write,
                                "memory": wasmMemory || Module["wasmMemory"]
                            };
                            createWasm();
                            Module["___wasm_call_ctors"] = function () {
                                return (Module["___wasm_call_ctors"] = Module["asm"]["__wasm_call_ctors"]).apply(null, arguments);
                            }
                                ;
                            Module["_init"] = function () {
                                return (Module["_init"] = Module["asm"]["init"]).apply(null, arguments);
                            }
                                ;
                            Module["_init_with_threads_count"] = function () {
                                return (Module["_init_with_threads_count"] = Module["asm"]["init_with_threads_count"]).apply(null, arguments);
                            }
                                ;
                            Module["_get_threads_count"] = function () {
                                return (Module["_get_threads_count"] = Module["asm"]["get_threads_count"]).apply(null, arguments);
                            }
                                ;
                            Module["_register_tensor"] = function () {
                                return (Module["_register_tensor"] = Module["asm"]["register_tensor"]).apply(null, arguments);
                            }
                                ;
                            Module["_dispose_data"] = function () {
                                return (Module["_dispose_data"] = Module["asm"]["dispose_data"]).apply(null, arguments);
                            }
                                ;
                            Module["_dispose"] = function () {
                                return (Module["_dispose"] = Module["asm"]["dispose"]).apply(null, arguments);
                            }
                                ;
                            Module["_Abs"] = function () {
                                return (Module["_Abs"] = Module["asm"]["Abs"]).apply(null, arguments);
                            }
                                ;
                            Module["_Add"] = function () {
                                return (Module["_Add"] = Module["asm"]["Add"]).apply(null, arguments);
                            }
                                ;
                            Module["_AddN"] = function () {
                                return (Module["_AddN"] = Module["asm"]["AddN"]).apply(null, arguments);
                            }
                                ;
                            Module["_All"] = function () {
                                return (Module["_All"] = Module["asm"]["All"]).apply(null, arguments);
                            }
                                ;
                            Module["_Any"] = function () {
                                return (Module["_Any"] = Module["asm"]["Any"]).apply(null, arguments);
                            }
                                ;
                            Module["_ArgMax"] = function () {
                                return (Module["_ArgMax"] = Module["asm"]["ArgMax"]).apply(null, arguments);
                            }
                                ;
                            Module["_AvgPool"] = function () {
                                return (Module["_AvgPool"] = Module["asm"]["AvgPool"]).apply(null, arguments);
                            }
                                ;
                            Module["_BatchMatMul"] = function () {
                                return (Module["_BatchMatMul"] = Module["asm"]["BatchMatMul"]).apply(null, arguments);
                            }
                                ;
                            Module["_Ceil"] = function () {
                                return (Module["_Ceil"] = Module["asm"]["Ceil"]).apply(null, arguments);
                            }
                                ;
                            Module["_ClipByValue"] = function () {
                                return (Module["_ClipByValue"] = Module["asm"]["ClipByValue"]).apply(null, arguments);
                            }
                                ;
                            Module["_Conv2D"] = function () {
                                return (Module["_Conv2D"] = Module["asm"]["Conv2D"]).apply(null, arguments);
                            }
                                ;
                            Module["_Conv2DBackpropInput"] = function () {
                                return (Module["_Conv2DBackpropInput"] = Module["asm"]["Conv2DBackpropInput"]).apply(null, arguments);
                            }
                                ;
                            Module["_Cos"] = function () {
                                return (Module["_Cos"] = Module["asm"]["Cos"]).apply(null, arguments);
                            }
                                ;
                            Module["_Cosh"] = function () {
                                return (Module["_Cosh"] = Module["asm"]["Cosh"]).apply(null, arguments);
                            }
                                ;
                            Module["_CropAndResize"] = function () {
                                return (Module["_CropAndResize"] = Module["asm"]["CropAndResize"]).apply(null, arguments);
                            }
                                ;
                            Module["_Cumprod"] = function () {
                                return (Module["_Cumprod"] = Module["asm"]["Cumprod"]).apply(null, arguments);
                            }
                                ;
                            Module["_Cumsum"] = function () {
                                return (Module["_Cumsum"] = Module["asm"]["Cumsum"]).apply(null, arguments);
                            }
                                ;
                            Module["_DepthToSpace"] = function () {
                                return (Module["_DepthToSpace"] = Module["asm"]["DepthToSpace"]).apply(null, arguments);
                            }
                                ;
                            Module["_DepthwiseConv2dNative"] = function () {
                                return (Module["_DepthwiseConv2dNative"] = Module["asm"]["DepthwiseConv2dNative"]).apply(null, arguments);
                            }
                                ;
                            Module["_Elu"] = function () {
                                return (Module["_Elu"] = Module["asm"]["Elu"]).apply(null, arguments);
                            }
                                ;
                            Module["_Equal"] = function () {
                                return (Module["_Equal"] = Module["asm"]["Equal"]).apply(null, arguments);
                            }
                                ;
                            Module["_Exp"] = function () {
                                return (Module["_Exp"] = Module["asm"]["Exp"]).apply(null, arguments);
                            }
                                ;
                            Module["_FlipLeftRight"] = function () {
                                return (Module["_FlipLeftRight"] = Module["asm"]["FlipLeftRight"]).apply(null, arguments);
                            }
                                ;
                            Module["_Floor"] = function () {
                                return (Module["_Floor"] = Module["asm"]["Floor"]).apply(null, arguments);
                            }
                                ;
                            Module["_FloorDiv"] = function () {
                                return (Module["_FloorDiv"] = Module["asm"]["FloorDiv"]).apply(null, arguments);
                            }
                                ;
                            Module["_FusedBatchNorm"] = function () {
                                return (Module["_FusedBatchNorm"] = Module["asm"]["FusedBatchNorm"]).apply(null, arguments);
                            }
                                ;
                            Module["_FusedConv2D"] = function () {
                                return (Module["_FusedConv2D"] = Module["asm"]["FusedConv2D"]).apply(null, arguments);
                            }
                                ;
                            Module["_FusedDepthwiseConv2D"] = function () {
                                return (Module["_FusedDepthwiseConv2D"] = Module["asm"]["FusedDepthwiseConv2D"]).apply(null, arguments);
                            }
                                ;
                            Module["_Gather"] = function () {
                                return (Module["_Gather"] = Module["asm"]["Gather"]).apply(null, arguments);
                            }
                                ;
                            Module["_GatherNd"] = function () {
                                return (Module["_GatherNd"] = Module["asm"]["GatherNd"]).apply(null, arguments);
                            }
                                ;
                            Module["_Greater"] = function () {
                                return (Module["_Greater"] = Module["asm"]["Greater"]).apply(null, arguments);
                            }
                                ;
                            Module["_GreaterEqual"] = function () {
                                return (Module["_GreaterEqual"] = Module["asm"]["GreaterEqual"]).apply(null, arguments);
                            }
                                ;
                            Module["_IsNan"] = function () {
                                return (Module["_IsNan"] = Module["asm"]["IsNan"]).apply(null, arguments);
                            }
                                ;
                            Module["_LeakyRelu"] = function () {
                                return (Module["_LeakyRelu"] = Module["asm"]["LeakyRelu"]).apply(null, arguments);
                            }
                                ;
                            Module["_Less"] = function () {
                                return (Module["_Less"] = Module["asm"]["Less"]).apply(null, arguments);
                            }
                                ;
                            Module["_LessEqual"] = function () {
                                return (Module["_LessEqual"] = Module["asm"]["LessEqual"]).apply(null, arguments);
                            }
                                ;
                            Module["_Log"] = function () {
                                return (Module["_Log"] = Module["asm"]["Log"]).apply(null, arguments);
                            }
                                ;
                            Module["_LogicalAnd"] = function () {
                                return (Module["_LogicalAnd"] = Module["asm"]["LogicalAnd"]).apply(null, arguments);
                            }
                                ;
                            Module["_LogicalNot"] = function () {
                                return (Module["_LogicalNot"] = Module["asm"]["LogicalNot"]).apply(null, arguments);
                            }
                                ;
                            Module["_LogicalOr"] = function () {
                                return (Module["_LogicalOr"] = Module["asm"]["LogicalOr"]).apply(null, arguments);
                            }
                                ;
                            Module["_LogicalXor"] = function () {
                                return (Module["_LogicalXor"] = Module["asm"]["LogicalXor"]).apply(null, arguments);
                            }
                                ;
                            Module["_Max"] = function () {
                                return (Module["_Max"] = Module["asm"]["Max"]).apply(null, arguments);
                            }
                                ;
                            Module["_MaxPool"] = function () {
                                return (Module["_MaxPool"] = Module["asm"]["MaxPool"]).apply(null, arguments);
                            }
                                ;
                            Module["_Maximum"] = function () {
                                return (Module["_Maximum"] = Module["asm"]["Maximum"]).apply(null, arguments);
                            }
                                ;
                            Module["_Mean"] = function () {
                                return (Module["_Mean"] = Module["asm"]["Mean"]).apply(null, arguments);
                            }
                                ;
                            Module["_Min"] = function () {
                                return (Module["_Min"] = Module["asm"]["Min"]).apply(null, arguments);
                            }
                                ;
                            Module["_Minimum"] = function () {
                                return (Module["_Minimum"] = Module["asm"]["Minimum"]).apply(null, arguments);
                            }
                                ;
                            Module["_MirrorPad"] = function () {
                                return (Module["_MirrorPad"] = Module["asm"]["MirrorPad"]).apply(null, arguments);
                            }
                                ;
                            Module["_Multiply"] = function () {
                                return (Module["_Multiply"] = Module["asm"]["Multiply"]).apply(null, arguments);
                            }
                                ;
                            Module["_Neg"] = function () {
                                return (Module["_Neg"] = Module["asm"]["Neg"]).apply(null, arguments);
                            }
                                ;
                            Module["_NonMaxSuppressionV3"] = function () {
                                return (Module["_NonMaxSuppressionV3"] = Module["asm"]["NonMaxSuppressionV3"]).apply(null, arguments);
                            }
                                ;
                            Module["_NonMaxSuppressionV4"] = function () {
                                return (Module["_NonMaxSuppressionV4"] = Module["asm"]["NonMaxSuppressionV4"]).apply(null, arguments);
                            }
                                ;
                            Module["_NonMaxSuppressionV5"] = function () {
                                return (Module["_NonMaxSuppressionV5"] = Module["asm"]["NonMaxSuppressionV5"]).apply(null, arguments);
                            }
                                ;
                            Module["_NotEqual"] = function () {
                                return (Module["_NotEqual"] = Module["asm"]["NotEqual"]).apply(null, arguments);
                            }
                                ;
                            Module["_OneHot"] = function () {
                                return (Module["_OneHot"] = Module["asm"]["OneHot"]).apply(null, arguments);
                            }
                                ;
                            Module["_PadV2"] = function () {
                                return (Module["_PadV2"] = Module["asm"]["PadV2"]).apply(null, arguments);
                            }
                                ;
                            Module["_Pow"] = function () {
                                return (Module["_Pow"] = Module["asm"]["Pow"]).apply(null, arguments);
                            }
                                ;
                            Module["_Prelu"] = function () {
                                return (Module["_Prelu"] = Module["asm"]["Prelu"]).apply(null, arguments);
                            }
                                ;
                            Module["_Prod"] = function () {
                                return (Module["_Prod"] = Module["asm"]["Prod"]).apply(null, arguments);
                            }
                                ;
                            Module["_RealDiv"] = function () {
                                return (Module["_RealDiv"] = Module["asm"]["RealDiv"]).apply(null, arguments);
                            }
                                ;
                            Module["_Reciprocal"] = function () {
                                return (Module["_Reciprocal"] = Module["asm"]["Reciprocal"]).apply(null, arguments);
                            }
                                ;
                            Module["_Relu"] = function () {
                                return (Module["_Relu"] = Module["asm"]["Relu"]).apply(null, arguments);
                            }
                                ;
                            Module["_Relu6"] = function () {
                                return (Module["_Relu6"] = Module["asm"]["Relu6"]).apply(null, arguments);
                            }
                                ;
                            Module["_ResizeBilinear"] = function () {
                                return (Module["_ResizeBilinear"] = Module["asm"]["ResizeBilinear"]).apply(null, arguments);
                            }
                                ;
                            Module["_ResizeNearestNeighbor"] = function () {
                                return (Module["_ResizeNearestNeighbor"] = Module["asm"]["ResizeNearestNeighbor"]).apply(null, arguments);
                            }
                                ;
                            Module["_Reverse"] = function () {
                                return (Module["_Reverse"] = Module["asm"]["Reverse"]).apply(null, arguments);
                            }
                                ;
                            Module["_RotateWithOffset"] = function () {
                                return (Module["_RotateWithOffset"] = Module["asm"]["RotateWithOffset"]).apply(null, arguments);
                            }
                                ;
                            Module["_Round"] = function () {
                                return (Module["_Round"] = Module["asm"]["Round"]).apply(null, arguments);
                            }
                                ;
                            Module["_Rsqrt"] = function () {
                                return (Module["_Rsqrt"] = Module["asm"]["Rsqrt"]).apply(null, arguments);
                            }
                                ;
                            Module["_ScatterNd"] = function () {
                                return (Module["_ScatterNd"] = Module["asm"]["ScatterNd"]).apply(null, arguments);
                            }
                                ;
                            Module["_SelectV2"] = function () {
                                return (Module["_SelectV2"] = Module["asm"]["SelectV2"]).apply(null, arguments);
                            }
                                ;
                            Module["_Sigmoid"] = function () {
                                return (Module["_Sigmoid"] = Module["asm"]["Sigmoid"]).apply(null, arguments);
                            }
                                ;
                            Module["_Sin"] = function () {
                                return (Module["_Sin"] = Module["asm"]["Sin"]).apply(null, arguments);
                            }
                                ;
                            Module["_Softmax"] = function () {
                                return (Module["_Softmax"] = Module["asm"]["Softmax"]).apply(null, arguments);
                            }
                                ;
                            Module["_SparseFillEmptyRows"] = function () {
                                return (Module["_SparseFillEmptyRows"] = Module["asm"]["SparseFillEmptyRows"]).apply(null, arguments);
                            }
                                ;
                            Module["_SparseReshape"] = function () {
                                return (Module["_SparseReshape"] = Module["asm"]["SparseReshape"]).apply(null, arguments);
                            }
                                ;
                            Module["_SparseSegmentReduction"] = function () {
                                return (Module["_SparseSegmentReduction"] = Module["asm"]["SparseSegmentReduction"]).apply(null, arguments);
                            }
                                ;
                            Module["_Sqrt"] = function () {
                                return (Module["_Sqrt"] = Module["asm"]["Sqrt"]).apply(null, arguments);
                            }
                                ;
                            Module["_Square"] = function () {
                                return (Module["_Square"] = Module["asm"]["Square"]).apply(null, arguments);
                            }
                                ;
                            Module["_SquaredDifference"] = function () {
                                return (Module["_SquaredDifference"] = Module["asm"]["SquaredDifference"]).apply(null, arguments);
                            }
                                ;
                            Module["_Step"] = function () {
                                return (Module["_Step"] = Module["asm"]["Step"]).apply(null, arguments);
                            }
                                ;
                            Module["_StridedSlice"] = function () {
                                return (Module["_StridedSlice"] = Module["asm"]["StridedSlice"]).apply(null, arguments);
                            }
                                ;
                            Module["_Sub"] = function () {
                                return (Module["_Sub"] = Module["asm"]["Sub"]).apply(null, arguments);
                            }
                                ;
                            Module["_Sum"] = function () {
                                return (Module["_Sum"] = Module["asm"]["Sum"]).apply(null, arguments);
                            }
                                ;
                            Module["_Tan"] = function () {
                                return (Module["_Tan"] = Module["asm"]["Tan"]).apply(null, arguments);
                            }
                                ;
                            Module["_Tanh"] = function () {
                                return (Module["_Tanh"] = Module["asm"]["Tanh"]).apply(null, arguments);
                            }
                                ;
                            Module["_Tile"] = function () {
                                return (Module["_Tile"] = Module["asm"]["Tile"]).apply(null, arguments);
                            }
                                ;
                            Module["_TopK"] = function () {
                                return (Module["_TopK"] = Module["asm"]["TopK"]).apply(null, arguments);
                            }
                                ;
                            Module["_Transform"] = function () {
                                return (Module["_Transform"] = Module["asm"]["Transform"]).apply(null, arguments);
                            }
                                ;
                            Module["_Transpose"] = function () {
                                return (Module["_Transpose"] = Module["asm"]["Transpose"]).apply(null, arguments);
                            }
                                ;
                            Module["__FusedMatMul"] = function () {
                                return (Module["__FusedMatMul"] = Module["asm"]["_FusedMatMul"]).apply(null, arguments);
                            }
                                ;
                            Module["_malloc"] = function () {
                                return (Module["_malloc"] = Module["asm"]["malloc"]).apply(null, arguments);
                            }
                                ;
                            Module["_free"] = function () {
                                return (Module["_free"] = Module["asm"]["free"]).apply(null, arguments);
                            }
                                ;
                            Module["__emscripten_tls_init"] = function () {
                                return (Module["__emscripten_tls_init"] = Module["asm"]["_emscripten_tls_init"]).apply(null, arguments);
                            }
                                ;
                            var _pthread_self = Module["_pthread_self"] = function () {
                                return (_pthread_self = Module["_pthread_self"] = Module["asm"]["pthread_self"]).apply(null, arguments);
                            }
                                ;
                            Module["___errno_location"] = function () {
                                return (Module["___errno_location"] = Module["asm"]["__errno_location"]).apply(null, arguments);
                            }
                                ;
                            var __emscripten_thread_init = Module["__emscripten_thread_init"] = function () {
                                return (__emscripten_thread_init = Module["__emscripten_thread_init"] = Module["asm"]["_emscripten_thread_init"]).apply(null, arguments);
                            }
                                ;
                            Module["__emscripten_thread_crashed"] = function () {
                                return (Module["__emscripten_thread_crashed"] = Module["asm"]["_emscripten_thread_crashed"]).apply(null, arguments);
                            }
                                ;
                            Module["_emscripten_main_thread_process_queued_calls"] = function () {
                                return (Module["_emscripten_main_thread_process_queued_calls"] = Module["asm"]["emscripten_main_thread_process_queued_calls"]).apply(null, arguments);
                            }
                                ;
                            Module["_emscripten_main_browser_thread_id"] = function () {
                                return (Module["_emscripten_main_browser_thread_id"] = Module["asm"]["emscripten_main_browser_thread_id"]).apply(null, arguments);
                            }
                                ;
                            var _emscripten_run_in_main_runtime_thread_js = Module["_emscripten_run_in_main_runtime_thread_js"] = function () {
                                return (_emscripten_run_in_main_runtime_thread_js = Module["_emscripten_run_in_main_runtime_thread_js"] = Module["asm"]["emscripten_run_in_main_runtime_thread_js"]).apply(null, arguments);
                            }
                                ;
                            Module["_emscripten_dispatch_to_thread_"] = function () {
                                return (Module["_emscripten_dispatch_to_thread_"] = Module["asm"]["emscripten_dispatch_to_thread_"]).apply(null, arguments);
                            }
                                ;
                            var __emscripten_proxy_execute_task_queue = Module["__emscripten_proxy_execute_task_queue"] = function () {
                                return (__emscripten_proxy_execute_task_queue = Module["__emscripten_proxy_execute_task_queue"] = Module["asm"]["_emscripten_proxy_execute_task_queue"]).apply(null, arguments);
                            }
                                ;
                            var __emscripten_thread_free_data = Module["__emscripten_thread_free_data"] = function () {
                                return (__emscripten_thread_free_data = Module["__emscripten_thread_free_data"] = Module["asm"]["_emscripten_thread_free_data"]).apply(null, arguments);
                            }
                                ;
                            var __emscripten_thread_exit = Module["__emscripten_thread_exit"] = function () {
                                return (__emscripten_thread_exit = Module["__emscripten_thread_exit"] = Module["asm"]["_emscripten_thread_exit"]).apply(null, arguments);
                            }
                                ;
                            var _emscripten_stack_set_limits = Module["_emscripten_stack_set_limits"] = function () {
                                return (_emscripten_stack_set_limits = Module["_emscripten_stack_set_limits"] = Module["asm"]["emscripten_stack_set_limits"]).apply(null, arguments);
                            }
                                ;
                            var stackSave = Module["stackSave"] = function () {
                                return (stackSave = Module["stackSave"] = Module["asm"]["stackSave"]).apply(null, arguments);
                            }
                                ;
                            var stackRestore = Module["stackRestore"] = function () {
                                return (stackRestore = Module["stackRestore"] = Module["asm"]["stackRestore"]).apply(null, arguments);
                            }
                                ;
                            var stackAlloc = Module["stackAlloc"] = function () {
                                return (stackAlloc = Module["stackAlloc"] = Module["asm"]["stackAlloc"]).apply(null, arguments);
                            }
                                ;
                            Module["dynCall_iijjiiii"] = function () {
                                return (Module["dynCall_iijjiiii"] = Module["asm"]["dynCall_iijjiiii"]).apply(null, arguments);
                            }
                                ;
                            Module["dynCall_jiji"] = function () {
                                return (Module["dynCall_jiji"] = Module["asm"]["dynCall_jiji"]).apply(null, arguments);
                            }
                                ;
                            Module["keepRuntimeAlive"] = keepRuntimeAlive;
                            Module["wasmMemory"] = wasmMemory;
                            Module["cwrap"] = cwrap;
                            Module["ExitStatus"] = ExitStatus;
                            Module["PThread"] = PThread;
                            var calledRun;
                            dependenciesFulfilled = function runCaller() {
                                if (!calledRun)
                                    run();
                                if (!calledRun)
                                    dependenciesFulfilled = runCaller;
                            }
                                ;
                            function run(args) {
                                if (runDependencies > 0) {
                                    return;
                                }
                                if (ENVIRONMENT_IS_PTHREAD) {
                                    readyPromiseResolve(Module);
                                    initRuntime();
                                    postMessage({
                                        "cmd": "loaded"
                                    });
                                    return;
                                }
                                preRun();
                                if (runDependencies > 0) {
                                    return;
                                }
                                function doRun() {
                                    if (calledRun)
                                        return;
                                    calledRun = true;
                                    Module["calledRun"] = true;
                                    if (ABORT)
                                        return;
                                    initRuntime();
                                    readyPromiseResolve(Module);
                                    if (Module["onRuntimeInitialized"])
                                        Module["onRuntimeInitialized"]();
                                    postRun();
                                }
                                if (Module["setStatus"]) {
                                    Module["setStatus"]("Running...");
                                    setTimeout(function () {
                                        setTimeout(function () {
                                            Module["setStatus"]("");
                                        }, 1);
                                        doRun();
                                    }, 1);
                                } else {
                                    doRun();
                                }
                            }
                            if (Module["preInit"]) {
                                if (typeof Module["preInit"] == "function")
                                    Module["preInit"] = [Module["preInit"]];
                                while (Module["preInit"].length > 0) {
                                    Module["preInit"].pop()();
                                }
                            }
                            run();
                            var listenersAdded;
                            if (beforeListeners) {
                                listenersAdded = {
                                    uncaughtException: process.listeners("uncaughtException").filter(function (listener) {
                                        return !beforeListeners.uncaughtException.indexOf(listener) > -1;
                                    }),
                                    unhandledRejection: process.listeners("unhandledRejection").filter(function (listener) {
                                        return !beforeListeners.unhandledRejection.indexOf(listener) > -1;
                                    })
                                };
                            }
                            var actualModule;
                            if (typeof WasmBackendModule !== "undefined") {
                                actualModule = WasmBackendModule;
                            } else if (typeof WasmBackendModuleThreadedSimd !== "undefined") {
                                actualModule = WasmBackendModuleThreadedSimd;
                            } else {
                                throw new Error("Could not find wasm module in post.js");
                            }
                            if (listenersAdded) {
                                var tmpDispose = actualModule["_dispose"];
                                actualModule["_dispose"] = function () {
                                    tmpDispose();
                                    listenersAdded.uncaughtException.forEach(function (listener) {
                                        process.removeListener("uncaughtException", listener);
                                    });
                                    listenersAdded.unhandledRejection.forEach(function (listener) {
                                        process.removeListener("unhandledRejection", listener);
                                    });
                                }
                                    ;
                            }
                            return WasmBackendModuleThreadedSimd.ready;
                        }
                        );
                    }
                    )();
                    module.exports = WasmBackendModuleThreadedSimd;
                });

                var wasmFactoryThreadedSimd_import = /*#__PURE__*/
                    _mergeNamespaces({
                        __proto__: null,
                        'default': tfjsBackendWasmThreadedSimd
                    }, [tfjsBackendWasmThreadedSimd]);

                var wasmWorkerContents = "\"use strict\";var Module={};var ENVIRONMENT_IS_NODE=typeof process==\"object\"&&typeof process.versions==\"object\"&&typeof process.versions.node==\"string\";if(ENVIRONMENT_IS_NODE){var nodeWorkerThreads=require(\"worker_threads\");var parentPort=nodeWorkerThreads.parentPort;parentPort.on(\"message\",data=>onmessage({data:data}));var fs=require(\"fs\");Object.assign(global,{self:global,require:require,Module:Module,location:{href:__filename},Worker:nodeWorkerThreads.Worker,importScripts:function(f){(0,eval)(fs.readFileSync(f,\"utf8\"))},postMessage:function(msg){parentPort.postMessage(msg)},performance:global.performance||{now:function(){return Date.now()}}})}var initializedJS=false;var pendingNotifiedProxyingQueues=[];function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(\" \");if(ENVIRONMENT_IS_NODE){fs.writeSync(2,text+\"\n\");return}console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(\" \");postMessage({cmd:\"alert\",text:text,threadId:Module[\"_pthread_self\"]()})}var err=threadPrintErr;self.alert=threadAlert;Module[\"instantiateWasm\"]=(info,receiveInstance)=>{var instance=new WebAssembly.Instance(Module[\"wasmModule\"],info);receiveInstance(instance);Module[\"wasmModule\"]=null;return instance.exports};self.onunhandledrejection=e=>{throw e.reason??e};self.onmessage=e=>{try{if(e.data.cmd===\"load\"){Module[\"wasmModule\"]=e.data.wasmModule;Module[\"wasmMemory\"]=e.data.wasmMemory;Module[\"buffer\"]=Module[\"wasmMemory\"].buffer;Module[\"ENVIRONMENT_IS_PTHREAD\"]=true;if(typeof e.data.urlOrBlob==\"string\"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}WasmBackendModuleThreadedSimd(Module).then(function(instance){Module=instance})}else if(e.data.cmd===\"run\"){Module[\"__performance_now_clock_drift\"]=performance.now()-e.data.time;Module[\"__emscripten_thread_init\"](e.data.pthread_ptr,0,0,1);Module[\"establishStackSpace\"]();Module[\"PThread\"].receiveObjectTransfer(e.data);Module[\"PThread\"].threadInitTLS();if(!initializedJS){pendingNotifiedProxyingQueues.forEach(queue=>{Module[\"executeNotifiedProxyingQueue\"](queue)});pendingNotifiedProxyingQueues=[];initializedJS=true}try{Module[\"invokeEntryPoint\"](e.data.start_routine,e.data.arg)}catch(ex){if(ex!=\"unwind\"){if(ex instanceof Module[\"ExitStatus\"]){if(Module[\"keepRuntimeAlive\"]()){}else{Module[\"__emscripten_thread_exit\"](ex.status)}}else{throw ex}}}}else if(e.data.cmd===\"cancel\"){if(Module[\"_pthread_self\"]()){Module[\"__emscripten_thread_exit\"](-1)}}else if(e.data.target===\"setimmediate\"){}else if(e.data.cmd===\"processProxyingQueue\"){if(initializedJS){Module[\"executeNotifiedProxyingQueue\"](e.data.queue)}else{pendingNotifiedProxyingQueues.push(e.data.queue)}}else if(e.data.cmd){err(\"worker.js received unknown command \"+e.data.cmd);err(e.data)}}catch(ex){if(Module[\"__emscripten_thread_crashed\"]){Module[\"__emscripten_thread_crashed\"]()}throw ex}};";

                var tfjsBackendWasm = createCommonjsModule(function (module, exports) {
                    var WasmBackendModule = (function () {
                        var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;
                        if (typeof __filename !== 'undefined')
                            _scriptDir = _scriptDir || __filename;
                        return (function (WasmBackendModule) {
                            WasmBackendModule = WasmBackendModule || {};
                            var Module = typeof WasmBackendModule != "undefined" ? WasmBackendModule : {};
                            var readyPromiseResolve, readyPromiseReject;
                            Module["ready"] = new Promise(function (resolve, reject) {
                                readyPromiseResolve = resolve;
                                readyPromiseReject = reject;
                            }
                            );
                            var beforeListeners;
                            if (typeof process !== "undefined" && process.listeners) {
                                beforeListeners = {
                                    uncaughtException: process.listeners("uncaughtException"),
                                    unhandledRejection: process.listeners("unhandledRejection")
                                };
                            }
                            var moduleOverrides = Object.assign({}, Module);
                            var ENVIRONMENT_IS_WEB = typeof window == "object";
                            var ENVIRONMENT_IS_WORKER = typeof importScripts == "function";
                            var ENVIRONMENT_IS_NODE = typeof process == "object" && typeof process.versions == "object" && typeof process.versions.node == "string";
                            var scriptDirectory = "";
                            function locateFile(path) {
                                if (Module["locateFile"]) {
                                    return Module["locateFile"](path, scriptDirectory);
                                }
                                return scriptDirectory + path;
                            }
                            var read_, readAsync, readBinary;
                            if (ENVIRONMENT_IS_NODE) {
                                if (ENVIRONMENT_IS_WORKER) {
                                    scriptDirectory = require$$0__default["default"].dirname(scriptDirectory) + "/";
                                } else {
                                    scriptDirectory = __dirname + "/";
                                }
                                var fs, nodePath;
                                if (typeof commonjsRequire === "function") {
                                    fs = require$$1__default["default"];
                                    nodePath = require$$0__default["default"];
                                }
                                read_ = function (filename, binary) {
                                    filename = nodePath["normalize"](filename);
                                    return fs.readFileSync(filename, binary ? undefined : "utf8");
                                }
                                    ;
                                readBinary = function (filename) {
                                    var ret = read_(filename, true);
                                    if (!ret.buffer) {
                                        ret = new Uint8Array(ret);
                                    }
                                    return ret;
                                }
                                    ;
                                readAsync = function (filename, onload, onerror) {
                                    filename = nodePath["normalize"](filename);
                                    fs.readFile(filename, function (err, data) {
                                        if (err)
                                            onerror(err);
                                        else
                                            onload(data.buffer);
                                    });
                                }
                                    ;
                                if (process["argv"].length > 1) {
                                    process["argv"][1].replace(/\\/g, "/");
                                }
                                process["argv"].slice(2);
                                process["on"]("uncaughtException", function (ex) {
                                    if (!(ex instanceof ExitStatus)) {
                                        throw ex;
                                    }
                                });
                                process["on"]("unhandledRejection", function (reason) {
                                    throw reason;
                                });
                                Module["inspect"] = function () {
                                    return "[Emscripten Module object]";
                                }
                                    ;
                            } else if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) {
                                if (ENVIRONMENT_IS_WORKER) {
                                    scriptDirectory = self.location.href;
                                } else if (typeof document != "undefined" && document.currentScript) {
                                    scriptDirectory = document.currentScript.src;
                                }
                                if (_scriptDir) {
                                    scriptDirectory = _scriptDir;
                                }
                                if (scriptDirectory.indexOf("blob:") !== 0) {
                                    scriptDirectory = scriptDirectory.substr(0, scriptDirectory.replace(/[?#].*/, "").lastIndexOf("/") + 1);
                                } else {
                                    scriptDirectory = "";
                                }
                                {
                                    read_ = function (url) {
                                        var xhr = new XMLHttpRequest;
                                        xhr.open("GET", url, false);
                                        xhr.send(null);
                                        return xhr.responseText;
                                    }
                                        ;
                                    if (ENVIRONMENT_IS_WORKER) {
                                        readBinary = function (url) {
                                            var xhr = new XMLHttpRequest;
                                            xhr.open("GET", url, false);
                                            xhr.responseType = "arraybuffer";
                                            xhr.send(null);
                                            return new Uint8Array(xhr.response);
                                        }
                                            ;
                                    }
                                    readAsync = function (url, onload, onerror) {
                                        var xhr = new XMLHttpRequest;
                                        xhr.open("GET", url, true);
                                        xhr.responseType = "arraybuffer";
                                        xhr.onload = function () {
                                            if (xhr.status == 200 || xhr.status == 0 && xhr.response) {
                                                onload(xhr.response);
                                                return;
                                            }
                                            onerror();
                                        }
                                            ;
                                        xhr.onerror = onerror;
                                        xhr.send(null);
                                    }
                                        ;
                                }
                            } else
                                ; var out = Module["print"] || (typeof console !== "undefined" ? console.log.bind(console) : typeof print !== "undefined" ? print : null);
                            var err = Module["printErr"] || (typeof printErr !== "undefined" ? printErr : typeof console !== "undefined" && console.warn.bind(console) || out);
                            Object.assign(Module, moduleOverrides);
                            moduleOverrides = null;
                            if (Module["arguments"])
                                ; if (Module["thisProgram"])
                                ; if (Module["quit"])
                                ;
                            var wasmBinary;
                            if (Module["wasmBinary"])
                                wasmBinary = Module["wasmBinary"];
                            Module["noExitRuntime"] || true;
                            if (typeof WebAssembly != "object") {
                                abort("no native wasm support detected");
                            }

                            var wasmMemory;
                            var ABORT = false;
                            var UTF8Decoder = typeof TextDecoder != "undefined" ? new TextDecoder("utf8") : undefined;
                            function UTF8ArrayToString(heapOrArray, idx, maxBytesToRead) {
                                var endIdx = idx + maxBytesToRead;
                                var endPtr = idx;
                                while (heapOrArray[endPtr] && !(endPtr >= endIdx))
                                    ++endPtr;
                                if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) {
                                    return UTF8Decoder.decode(heapOrArray.subarray(idx, endPtr));
                                }
                                var str = "";
                                while (idx < endPtr) {
                                    var u0 = heapOrArray[idx++];
                                    if (!(u0 & 128)) {
                                        str += String.fromCharCode(u0);
                                        continue;
                                    }
                                    var u1 = heapOrArray[idx++] & 63;
                                    if ((u0 & 224) == 192) {
                                        str += String.fromCharCode((u0 & 31) << 6 | u1);
                                        continue;
                                    }
                                    var u2 = heapOrArray[idx++] & 63;
                                    if ((u0 & 240) == 224) {
                                        u0 = (u0 & 15) << 12 | u1 << 6 | u2;
                                    } else {
                                        u0 = (u0 & 7) << 18 | u1 << 12 | u2 << 6 | heapOrArray[idx++] & 63;
                                    }
                                    if (u0 < 65536) {
                                        str += String.fromCharCode(u0);
                                    } else {
                                        var ch = u0 - 65536;
                                        str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023);
                                    }
                                }
                                return str;
                            }
                            function UTF8ToString(ptr, maxBytesToRead) {
                                return ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : "";
                            }
                            function stringToUTF8Array(str, heap, outIdx, maxBytesToWrite) {
                                if (!(maxBytesToWrite > 0))
                                    return 0;
                                var startIdx = outIdx;
                                var endIdx = outIdx + maxBytesToWrite - 1;
                                for (var i = 0; i < str.length; ++i) {
                                    var u = str.charCodeAt(i);
                                    if (u >= 55296 && u <= 57343) {
                                        var u1 = str.charCodeAt(++i);
                                        u = 65536 + ((u & 1023) << 10) | u1 & 1023;
                                    }
                                    if (u <= 127) {
                                        if (outIdx >= endIdx)
                                            break;
                                        heap[outIdx++] = u;
                                    } else if (u <= 2047) {
                                        if (outIdx + 1 >= endIdx)
                                            break;
                                        heap[outIdx++] = 192 | u >> 6;
                                        heap[outIdx++] = 128 | u & 63;
                                    } else if (u <= 65535) {
                                        if (outIdx + 2 >= endIdx)
                                            break;
                                        heap[outIdx++] = 224 | u >> 12;
                                        heap[outIdx++] = 128 | u >> 6 & 63;
                                        heap[outIdx++] = 128 | u & 63;
                                    } else {
                                        if (outIdx + 3 >= endIdx)
                                            break;
                                        heap[outIdx++] = 240 | u >> 18;
                                        heap[outIdx++] = 128 | u >> 12 & 63;
                                        heap[outIdx++] = 128 | u >> 6 & 63;
                                        heap[outIdx++] = 128 | u & 63;
                                    }
                                }
                                heap[outIdx] = 0;
                                return outIdx - startIdx;
                            }
                            function stringToUTF8(str, outPtr, maxBytesToWrite) {
                                return stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite);
                            }
                            var buffer, HEAP8, HEAPU8, HEAPU32;
                            function updateGlobalBufferAndViews(buf) {
                                buffer = buf;
                                Module["HEAP8"] = HEAP8 = new Int8Array(buf);
                                Module["HEAP16"] = new Int16Array(buf);
                                Module["HEAP32"] = new Int32Array(buf);
                                Module["HEAPU8"] = HEAPU8 = new Uint8Array(buf);
                                Module["HEAPU16"] = new Uint16Array(buf);
                                Module["HEAPU32"] = HEAPU32 = new Uint32Array(buf);
                                Module["HEAPF32"] = new Float32Array(buf);
                                Module["HEAPF64"] = new Float64Array(buf);
                            }
                            Module["INITIAL_MEMORY"] || 16777216;
                            var __ATPRERUN__ = [];
                            var __ATINIT__ = [];
                            var __ATPOSTRUN__ = [];
                            function preRun() {
                                if (Module["preRun"]) {
                                    if (typeof Module["preRun"] == "function")
                                        Module["preRun"] = [Module["preRun"]];
                                    while (Module["preRun"].length) {
                                        addOnPreRun(Module["preRun"].shift());
                                    }
                                }
                                callRuntimeCallbacks(__ATPRERUN__);
                            }
                            function initRuntime() {
                                callRuntimeCallbacks(__ATINIT__);
                            }
                            function postRun() {
                                if (Module["postRun"]) {
                                    if (typeof Module["postRun"] == "function")
                                        Module["postRun"] = [Module["postRun"]];
                                    while (Module["postRun"].length) {
                                        addOnPostRun(Module["postRun"].shift());
                                    }
                                }
                                callRuntimeCallbacks(__ATPOSTRUN__);
                            }
                            function addOnPreRun(cb) {
                                __ATPRERUN__.unshift(cb);
                            }
                            function addOnInit(cb) {
                                __ATINIT__.unshift(cb);
                            }
                            function addOnPostRun(cb) {
                                __ATPOSTRUN__.unshift(cb);
                            }
                            var runDependencies = 0;
                            var dependenciesFulfilled = null;
                            function addRunDependency(id) {
                                runDependencies++;
                                if (Module["monitorRunDependencies"]) {
                                    Module["monitorRunDependencies"](runDependencies);
                                }
                            }
                            function removeRunDependency(id) {
                                runDependencies--;
                                if (Module["monitorRunDependencies"]) {
                                    Module["monitorRunDependencies"](runDependencies);
                                }
                                if (runDependencies == 0) {
                                    if (dependenciesFulfilled) {
                                        var callback = dependenciesFulfilled;
                                        dependenciesFulfilled = null;
                                        callback();
                                    }
                                }
                            }
                            function abort(what) {
                                {
                                    if (Module["onAbort"]) {
                                        Module["onAbort"](what);
                                    }
                                }
                                what = "Aborted(" + what + ")";
                                err(what);
                                ABORT = true;
                                what += ". Build with -sASSERTIONS for more info.";
                                var e = new WebAssembly.RuntimeError(what);
                                readyPromiseReject(e);
                                throw e;
                            }
                            var dataURIPrefix = "data:application/octet-stream;base64,";
                            function isDataURI(filename) {
                                return filename.startsWith(dataURIPrefix);
                            }
                            function isFileURI(filename) {
                                return filename.startsWith("file://");
                            }
                            var wasmBinaryFile;
                            wasmBinaryFile = "tfjs-backend-wasm.wasm";
                            if (!isDataURI(wasmBinaryFile)) {
                                wasmBinaryFile = locateFile(wasmBinaryFile);
                            }
                            function getBinary(file) {
                                try {
                                    if (file == wasmBinaryFile && wasmBinary) {
                                        return new Uint8Array(wasmBinary);
                                    }
                                    if (readBinary) {
                                        return readBinary(file);
                                    }
                                    throw "both async and sync fetching of the wasm failed";
                                } catch (err) {
                                    abort(err);
                                }
                            }
                            function getBinaryPromise() {
                                if (!wasmBinary && (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER)) {
                                    if (typeof fetch == "function" && !isFileURI(wasmBinaryFile)) {
                                        return fetch(wasmBinaryFile, {
                                            credentials: "same-origin"
                                        }).then(function (response) {
                                            if (!response["ok"]) {
                                                throw "failed to load wasm binary file at '" + wasmBinaryFile + "'";
                                            }
                                            return response["arrayBuffer"]();
                                        }).catch(function () {
                                            return getBinary(wasmBinaryFile);
                                        });
                                    } else {
                                        if (readAsync) {
                                            return new Promise(function (resolve, reject) {
                                                readAsync(wasmBinaryFile, function (response) {
                                                    resolve(new Uint8Array(response));
                                                }, reject);
                                            }
                                            );
                                        }
                                    }
                                }
                                return Promise.resolve().then(function () {
                                    return getBinary(wasmBinaryFile);
                                });
                            }
                            function createWasm() {
                                var info = {
                                    "env": asmLibraryArg,
                                    "wasi_snapshot_preview1": asmLibraryArg
                                };
                                function receiveInstance(instance, module) {
                                    var exports = instance.exports;
                                    Module["asm"] = exports;
                                    wasmMemory = Module["asm"]["memory"];
                                    updateGlobalBufferAndViews(wasmMemory.buffer);
                                    Module["asm"]["__indirect_function_table"];
                                    addOnInit(Module["asm"]["__wasm_call_ctors"]);
                                    removeRunDependency();
                                }
                                addRunDependency();
                                function receiveInstantiationResult(result) {
                                    receiveInstance(result["instance"]);
                                }
                                function instantiateArrayBuffer(receiver) {
                                    return getBinaryPromise().then(function (binary) {
                                        return WebAssembly.instantiate(binary, info);
                                    }).then(function (instance) {
                                        return instance;
                                    }).then(receiver, function (reason) {
                                        err("failed to asynchronously prepare wasm: " + reason);
                                        abort(reason);
                                    });
                                }
                                function instantiateAsync() {
                                    if (!wasmBinary && typeof WebAssembly.instantiateStreaming == "function" && !isDataURI(wasmBinaryFile) && !isFileURI(wasmBinaryFile) && !ENVIRONMENT_IS_NODE && typeof fetch == "function") {
                                        return fetch(wasmBinaryFile, {
                                            credentials: "same-origin"
                                        }).then(function (response) {
                                            var result = WebAssembly.instantiateStreaming(response, info);
                                            return result.then(receiveInstantiationResult, function (reason) {
                                                err("wasm streaming compile failed: " + reason);
                                                err("falling back to ArrayBuffer instantiation");
                                                return instantiateArrayBuffer(receiveInstantiationResult);
                                            });
                                        });
                                    } else {
                                        return instantiateArrayBuffer(receiveInstantiationResult);
                                    }
                                }
                                if (Module["instantiateWasm"]) {
                                    try {
                                        var exports = Module["instantiateWasm"](info, receiveInstance);
                                        return exports;
                                    } catch (e) {
                                        // ************************ CHANGE START ************************
                                        let blob;
                                        if (globalThis.tfjsBackendWasmSimdBlob || Module.tfjsBackendWasmSimdBlob) {
                                            blob = globalThis.tfjsBackendWasmSimdBlob || Module.tfjsBackendWasmSimdBlob;
                                            // console.warn("shell tfjs instantiating wasm simd backend");
                                        }  else if (globalThis.tfjsBackendWasmBlob || Module.tfjsBackendWasmBlob) {
                                            blob = globalThis.tfjsBackendWasmBlob || Module.tfjsBackendWasmBlob;
                                            // console.warn("shell tfjs instantiating wasm backend");
                                        } else
                                            console.warn("Fatal error: no binary file found for ./wasm/tfjs-backend-wasm-simd.wasm and ./wasm/tfjs-backend-wasm.wasm");

                                        WebAssembly.instantiate(blob, info).then(function (output) {
                                            receiveInstance(output.instance, output.module);
                                        });
                                        return {};
                                        // ************************ CHANGE END ************************

                                        err("Module.instantiateWasm callback failed with error: " + e);
                                        readyPromiseReject(e);
                                    }
                                }
                                instantiateAsync().catch(readyPromiseReject);
                                return {};
                            }
                            function ExitStatus(status) {
                                this.name = "ExitStatus";
                                this.message = "Program terminated with exit(" + status + ")";
                                this.status = status;
                            }
                            function callRuntimeCallbacks(callbacks) {
                                while (callbacks.length > 0) {
                                    callbacks.shift()(Module);
                                }
                            }
                            function writeArrayToMemory(array, buffer) {
                                HEAP8.set(array, buffer);
                            }
                            function _abort() {
                                abort("");
                            }
                            function getHeapMax() {
                                return 2147483648;
                            }
                            function _emscripten_get_heap_max() {
                                return getHeapMax();
                            }
                            function _emscripten_memcpy_big(dest, src, num) {
                                HEAPU8.copyWithin(dest, src, src + num);
                            }
                            function emscripten_realloc_buffer(size) {
                                try {
                                    wasmMemory.grow(size - buffer.byteLength + 65535 >>> 16);
                                    updateGlobalBufferAndViews(wasmMemory.buffer);
                                    return 1;
                                } catch (e) { }
                            }
                            function _emscripten_resize_heap(requestedSize) {
                                var oldSize = HEAPU8.length;
                                requestedSize = requestedSize >>> 0;
                                var maxHeapSize = getHeapMax();
                                if (requestedSize > maxHeapSize) {
                                    return false;
                                }
                                var alignUp = function (x, multiple) {
                                    return x + (multiple - x % multiple) % multiple;
                                };
                                for (var cutDown = 1; cutDown <= 4; cutDown *= 2) {
                                    var overGrownHeapSize = oldSize * (1 + .2 / cutDown);
                                    overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296);
                                    var newSize = Math.min(maxHeapSize, alignUp(Math.max(requestedSize, overGrownHeapSize), 65536));
                                    var replacement = emscripten_realloc_buffer(newSize);
                                    if (replacement) {
                                        return true;
                                    }
                                }
                                return false;
                            }
                            function _fd_close(fd) {
                                return 52;
                            }
                            function _fd_seek(fd, offset_low, offset_high, whence, newOffset) {
                                return 70;
                            }
                            var printCharBuffers = [null, [], []];
                            function printChar(stream, curr) {
                                var buffer = printCharBuffers[stream];
                                if (curr === 0 || curr === 10) {
                                    (stream === 1 ? out : err)(UTF8ArrayToString(buffer, 0));
                                    buffer.length = 0;
                                } else {
                                    buffer.push(curr);
                                }
                            }
                            function _fd_write(fd, iov, iovcnt, pnum) {
                                var num = 0;
                                for (var i = 0; i < iovcnt; i++) {
                                    var ptr = HEAPU32[iov >> 2];
                                    var len = HEAPU32[iov + 4 >> 2];
                                    iov += 8;
                                    for (var j = 0; j < len; j++) {
                                        printChar(fd, HEAPU8[ptr + j]);
                                    }
                                    num += len;
                                }
                                HEAPU32[pnum >> 2] = num;
                                return 0;
                            }
                            function getCFunc(ident) {
                                var func = Module["_" + ident];
                                return func;
                            }
                            function ccall(ident, returnType, argTypes, args, opts) {
                                var toC = {
                                    "string": function (str) {
                                        var ret = 0;
                                        if (str !== null && str !== undefined && str !== 0) {
                                            var len = (str.length << 2) + 1;
                                            ret = stackAlloc(len);
                                            stringToUTF8(str, ret, len);
                                        }
                                        return ret;
                                    },
                                    "array": function (arr) {
                                        var ret = stackAlloc(arr.length);
                                        writeArrayToMemory(arr, ret);
                                        return ret;
                                    }
                                };
                                function convertReturnValue(ret) {
                                    if (returnType === "string") {
                                        return UTF8ToString(ret);
                                    }
                                    if (returnType === "boolean")
                                        return Boolean(ret);
                                    return ret;
                                }
                                var func = getCFunc(ident);
                                var cArgs = [];
                                var stack = 0;
                                if (args) {
                                    for (var i = 0; i < args.length; i++) {
                                        var converter = toC[argTypes[i]];
                                        if (converter) {
                                            if (stack === 0)
                                                stack = stackSave();
                                            cArgs[i] = converter(args[i]);
                                        } else {
                                            cArgs[i] = args[i];
                                        }
                                    }
                                }
                                var ret = func.apply(null, cArgs);
                                function onDone(ret) {
                                    if (stack !== 0)
                                        stackRestore(stack);
                                    return convertReturnValue(ret);
                                }
                                ret = onDone(ret);
                                return ret;
                            }
                            function cwrap(ident, returnType, argTypes, opts) {
                                argTypes = argTypes || [];
                                var numericArgs = argTypes.every(function (type) {
                                    return type === "number" || type === "boolean";
                                });
                                var numericRet = returnType !== "string";
                                if (numericRet && numericArgs && !opts) {
                                    return getCFunc(ident);
                                }
                                return function () {
                                    return ccall(ident, returnType, argTypes, arguments);
                                }
                                    ;
                            }
                            var asmLibraryArg = {
                                "abort": _abort,
                                "emscripten_get_heap_max": _emscripten_get_heap_max,
                                "emscripten_memcpy_big": _emscripten_memcpy_big,
                                "emscripten_resize_heap": _emscripten_resize_heap,
                                "fd_close": _fd_close,
                                "fd_seek": _fd_seek,
                                "fd_write": _fd_write
                            };
                            createWasm();
                            Module["___wasm_call_ctors"] = function () {
                                return (Module["___wasm_call_ctors"] = Module["asm"]["__wasm_call_ctors"]).apply(null, arguments);
                            }
                                ;
                            Module["_init"] = function () {
                                return (Module["_init"] = Module["asm"]["init"]).apply(null, arguments);
                            }
                                ;
                            Module["_init_with_threads_count"] = function () {
                                return (Module["_init_with_threads_count"] = Module["asm"]["init_with_threads_count"]).apply(null, arguments);
                            }
                                ;
                            Module["_get_threads_count"] = function () {
                                return (Module["_get_threads_count"] = Module["asm"]["get_threads_count"]).apply(null, arguments);
                            }
                                ;
                            Module["_register_tensor"] = function () {
                                return (Module["_register_tensor"] = Module["asm"]["register_tensor"]).apply(null, arguments);
                            }
                                ;
                            Module["_dispose_data"] = function () {
                                return (Module["_dispose_data"] = Module["asm"]["dispose_data"]).apply(null, arguments);
                            }
                                ;
                            Module["_dispose"] = function () {
                                return (Module["_dispose"] = Module["asm"]["dispose"]).apply(null, arguments);
                            }
                                ;
                            Module["_Abs"] = function () {
                                return (Module["_Abs"] = Module["asm"]["Abs"]).apply(null, arguments);
                            }
                                ;
                            Module["_Add"] = function () {
                                return (Module["_Add"] = Module["asm"]["Add"]).apply(null, arguments);
                            }
                                ;
                            Module["_AddN"] = function () {
                                return (Module["_AddN"] = Module["asm"]["AddN"]).apply(null, arguments);
                            }
                                ;
                            Module["_All"] = function () {
                                return (Module["_All"] = Module["asm"]["All"]).apply(null, arguments);
                            }
                                ;
                            Module["_Any"] = function () {
                                return (Module["_Any"] = Module["asm"]["Any"]).apply(null, arguments);
                            }
                                ;
                            Module["_ArgMax"] = function () {
                                return (Module["_ArgMax"] = Module["asm"]["ArgMax"]).apply(null, arguments);
                            }
                                ;
                            Module["_AvgPool"] = function () {
                                return (Module["_AvgPool"] = Module["asm"]["AvgPool"]).apply(null, arguments);
                            }
                                ;
                            Module["_BatchMatMul"] = function () {
                                return (Module["_BatchMatMul"] = Module["asm"]["BatchMatMul"]).apply(null, arguments);
                            }
                                ;
                            Module["_Ceil"] = function () {
                                return (Module["_Ceil"] = Module["asm"]["Ceil"]).apply(null, arguments);
                            }
                                ;
                            Module["_ClipByValue"] = function () {
                                return (Module["_ClipByValue"] = Module["asm"]["ClipByValue"]).apply(null, arguments);
                            }
                                ;
                            Module["_Conv2D"] = function () {
                                return (Module["_Conv2D"] = Module["asm"]["Conv2D"]).apply(null, arguments);
                            }
                                ;
                            Module["_Conv2DBackpropInput"] = function () {
                                return (Module["_Conv2DBackpropInput"] = Module["asm"]["Conv2DBackpropInput"]).apply(null, arguments);
                            }
                                ;
                            Module["_Cos"] = function () {
                                return (Module["_Cos"] = Module["asm"]["Cos"]).apply(null, arguments);
                            }
                                ;
                            Module["_Cosh"] = function () {
                                return (Module["_Cosh"] = Module["asm"]["Cosh"]).apply(null, arguments);
                            }
                                ;
                            Module["_CropAndResize"] = function () {
                                return (Module["_CropAndResize"] = Module["asm"]["CropAndResize"]).apply(null, arguments);
                            }
                                ;
                            Module["_Cumprod"] = function () {
                                return (Module["_Cumprod"] = Module["asm"]["Cumprod"]).apply(null, arguments);
                            }
                                ;
                            Module["_Cumsum"] = function () {
                                return (Module["_Cumsum"] = Module["asm"]["Cumsum"]).apply(null, arguments);
                            }
                                ;
                            Module["_DepthToSpace"] = function () {
                                return (Module["_DepthToSpace"] = Module["asm"]["DepthToSpace"]).apply(null, arguments);
                            }
                                ;
                            Module["_DepthwiseConv2dNative"] = function () {
                                return (Module["_DepthwiseConv2dNative"] = Module["asm"]["DepthwiseConv2dNative"]).apply(null, arguments);
                            }
                                ;
                            Module["_Elu"] = function () {
                                return (Module["_Elu"] = Module["asm"]["Elu"]).apply(null, arguments);
                            }
                                ;
                            Module["_Equal"] = function () {
                                return (Module["_Equal"] = Module["asm"]["Equal"]).apply(null, arguments);
                            }
                                ;
                            Module["_Exp"] = function () {
                                return (Module["_Exp"] = Module["asm"]["Exp"]).apply(null, arguments);
                            }
                                ;
                            Module["_FlipLeftRight"] = function () {
                                return (Module["_FlipLeftRight"] = Module["asm"]["FlipLeftRight"]).apply(null, arguments);
                            }
                                ;
                            Module["_Floor"] = function () {
                                return (Module["_Floor"] = Module["asm"]["Floor"]).apply(null, arguments);
                            }
                                ;
                            Module["_FloorDiv"] = function () {
                                return (Module["_FloorDiv"] = Module["asm"]["FloorDiv"]).apply(null, arguments);
                            }
                                ;
                            Module["_FusedBatchNorm"] = function () {
                                return (Module["_FusedBatchNorm"] = Module["asm"]["FusedBatchNorm"]).apply(null, arguments);
                            }
                                ;
                            Module["_FusedConv2D"] = function () {
                                return (Module["_FusedConv2D"] = Module["asm"]["FusedConv2D"]).apply(null, arguments);
                            }
                                ;
                            Module["_FusedDepthwiseConv2D"] = function () {
                                return (Module["_FusedDepthwiseConv2D"] = Module["asm"]["FusedDepthwiseConv2D"]).apply(null, arguments);
                            }
                                ;
                            Module["_Gather"] = function () {
                                return (Module["_Gather"] = Module["asm"]["Gather"]).apply(null, arguments);
                            }
                                ;
                            Module["_GatherNd"] = function () {
                                return (Module["_GatherNd"] = Module["asm"]["GatherNd"]).apply(null, arguments);
                            }
                                ;
                            Module["_Greater"] = function () {
                                return (Module["_Greater"] = Module["asm"]["Greater"]).apply(null, arguments);
                            }
                                ;
                            Module["_GreaterEqual"] = function () {
                                return (Module["_GreaterEqual"] = Module["asm"]["GreaterEqual"]).apply(null, arguments);
                            }
                                ;
                            Module["_IsNan"] = function () {
                                return (Module["_IsNan"] = Module["asm"]["IsNan"]).apply(null, arguments);
                            }
                                ;
                            Module["_LeakyRelu"] = function () {
                                return (Module["_LeakyRelu"] = Module["asm"]["LeakyRelu"]).apply(null, arguments);
                            }
                                ;
                            Module["_Less"] = function () {
                                return (Module["_Less"] = Module["asm"]["Less"]).apply(null, arguments);
                            }
                                ;
                            Module["_LessEqual"] = function () {
                                return (Module["_LessEqual"] = Module["asm"]["LessEqual"]).apply(null, arguments);
                            }
                                ;
                            Module["_Log"] = function () {
                                return (Module["_Log"] = Module["asm"]["Log"]).apply(null, arguments);
                            }
                                ;
                            Module["_LogicalAnd"] = function () {
                                return (Module["_LogicalAnd"] = Module["asm"]["LogicalAnd"]).apply(null, arguments);
                            }
                                ;
                            Module["_LogicalNot"] = function () {
                                return (Module["_LogicalNot"] = Module["asm"]["LogicalNot"]).apply(null, arguments);
                            }
                                ;
                            Module["_LogicalOr"] = function () {
                                return (Module["_LogicalOr"] = Module["asm"]["LogicalOr"]).apply(null, arguments);
                            }
                                ;
                            Module["_LogicalXor"] = function () {
                                return (Module["_LogicalXor"] = Module["asm"]["LogicalXor"]).apply(null, arguments);
                            }
                                ;
                            Module["_Max"] = function () {
                                return (Module["_Max"] = Module["asm"]["Max"]).apply(null, arguments);
                            }
                                ;
                            Module["_MaxPool"] = function () {
                                return (Module["_MaxPool"] = Module["asm"]["MaxPool"]).apply(null, arguments);
                            }
                                ;
                            Module["_Maximum"] = function () {
                                return (Module["_Maximum"] = Module["asm"]["Maximum"]).apply(null, arguments);
                            }
                                ;
                            Module["_Mean"] = function () {
                                return (Module["_Mean"] = Module["asm"]["Mean"]).apply(null, arguments);
                            }
                                ;
                            Module["_Min"] = function () {
                                return (Module["_Min"] = Module["asm"]["Min"]).apply(null, arguments);
                            }
                                ;
                            Module["_Minimum"] = function () {
                                return (Module["_Minimum"] = Module["asm"]["Minimum"]).apply(null, arguments);
                            }
                                ;
                            Module["_MirrorPad"] = function () {
                                return (Module["_MirrorPad"] = Module["asm"]["MirrorPad"]).apply(null, arguments);
                            }
                                ;
                            Module["_Multiply"] = function () {
                                return (Module["_Multiply"] = Module["asm"]["Multiply"]).apply(null, arguments);
                            }
                                ;
                            Module["_Neg"] = function () {
                                return (Module["_Neg"] = Module["asm"]["Neg"]).apply(null, arguments);
                            }
                                ;
                            Module["_NonMaxSuppressionV3"] = function () {
                                return (Module["_NonMaxSuppressionV3"] = Module["asm"]["NonMaxSuppressionV3"]).apply(null, arguments);
                            }
                                ;
                            Module["_NonMaxSuppressionV4"] = function () {
                                return (Module["_NonMaxSuppressionV4"] = Module["asm"]["NonMaxSuppressionV4"]).apply(null, arguments);
                            }
                                ;
                            Module["_NonMaxSuppressionV5"] = function () {
                                return (Module["_NonMaxSuppressionV5"] = Module["asm"]["NonMaxSuppressionV5"]).apply(null, arguments);
                            }
                                ;
                            Module["_NotEqual"] = function () {
                                return (Module["_NotEqual"] = Module["asm"]["NotEqual"]).apply(null, arguments);
                            }
                                ;
                            Module["_OneHot"] = function () {
                                return (Module["_OneHot"] = Module["asm"]["OneHot"]).apply(null, arguments);
                            }
                                ;
                            Module["_PadV2"] = function () {
                                return (Module["_PadV2"] = Module["asm"]["PadV2"]).apply(null, arguments);
                            }
                                ;
                            Module["_Pow"] = function () {
                                return (Module["_Pow"] = Module["asm"]["Pow"]).apply(null, arguments);
                            }
                                ;
                            Module["_Prelu"] = function () {
                                return (Module["_Prelu"] = Module["asm"]["Prelu"]).apply(null, arguments);
                            }
                                ;
                            Module["_Prod"] = function () {
                                return (Module["_Prod"] = Module["asm"]["Prod"]).apply(null, arguments);
                            }
                                ;
                            Module["_RealDiv"] = function () {
                                return (Module["_RealDiv"] = Module["asm"]["RealDiv"]).apply(null, arguments);
                            }
                                ;
                            Module["_Reciprocal"] = function () {
                                return (Module["_Reciprocal"] = Module["asm"]["Reciprocal"]).apply(null, arguments);
                            }
                                ;
                            Module["_Relu"] = function () {
                                return (Module["_Relu"] = Module["asm"]["Relu"]).apply(null, arguments);
                            }
                                ;
                            Module["_Relu6"] = function () {
                                return (Module["_Relu6"] = Module["asm"]["Relu6"]).apply(null, arguments);
                            }
                                ;
                            Module["_ResizeBilinear"] = function () {
                                return (Module["_ResizeBilinear"] = Module["asm"]["ResizeBilinear"]).apply(null, arguments);
                            }
                                ;
                            Module["_ResizeNearestNeighbor"] = function () {
                                return (Module["_ResizeNearestNeighbor"] = Module["asm"]["ResizeNearestNeighbor"]).apply(null, arguments);
                            }
                                ;
                            Module["_Reverse"] = function () {
                                return (Module["_Reverse"] = Module["asm"]["Reverse"]).apply(null, arguments);
                            }
                                ;
                            Module["_RotateWithOffset"] = function () {
                                return (Module["_RotateWithOffset"] = Module["asm"]["RotateWithOffset"]).apply(null, arguments);
                            }
                                ;
                            Module["_Round"] = function () {
                                return (Module["_Round"] = Module["asm"]["Round"]).apply(null, arguments);
                            }
                                ;
                            Module["_Rsqrt"] = function () {
                                return (Module["_Rsqrt"] = Module["asm"]["Rsqrt"]).apply(null, arguments);
                            }
                                ;
                            Module["_ScatterNd"] = function () {
                                return (Module["_ScatterNd"] = Module["asm"]["ScatterNd"]).apply(null, arguments);
                            }
                                ;
                            Module["_SelectV2"] = function () {
                                return (Module["_SelectV2"] = Module["asm"]["SelectV2"]).apply(null, arguments);
                            }
                                ;
                            Module["_Sigmoid"] = function () {
                                return (Module["_Sigmoid"] = Module["asm"]["Sigmoid"]).apply(null, arguments);
                            }
                                ;
                            Module["_Sin"] = function () {
                                return (Module["_Sin"] = Module["asm"]["Sin"]).apply(null, arguments);
                            }
                                ;
                            Module["_Softmax"] = function () {
                                return (Module["_Softmax"] = Module["asm"]["Softmax"]).apply(null, arguments);
                            }
                                ;
                            Module["_SparseFillEmptyRows"] = function () {
                                return (Module["_SparseFillEmptyRows"] = Module["asm"]["SparseFillEmptyRows"]).apply(null, arguments);
                            }
                                ;
                            Module["_SparseReshape"] = function () {
                                return (Module["_SparseReshape"] = Module["asm"]["SparseReshape"]).apply(null, arguments);
                            }
                                ;
                            Module["_SparseSegmentReduction"] = function () {
                                return (Module["_SparseSegmentReduction"] = Module["asm"]["SparseSegmentReduction"]).apply(null, arguments);
                            }
                                ;
                            Module["_Sqrt"] = function () {
                                return (Module["_Sqrt"] = Module["asm"]["Sqrt"]).apply(null, arguments);
                            }
                                ;
                            Module["_Square"] = function () {
                                return (Module["_Square"] = Module["asm"]["Square"]).apply(null, arguments);
                            }
                                ;
                            Module["_SquaredDifference"] = function () {
                                return (Module["_SquaredDifference"] = Module["asm"]["SquaredDifference"]).apply(null, arguments);
                            }
                                ;
                            Module["_Step"] = function () {
                                return (Module["_Step"] = Module["asm"]["Step"]).apply(null, arguments);
                            }
                                ;
                            Module["_StridedSlice"] = function () {
                                return (Module["_StridedSlice"] = Module["asm"]["StridedSlice"]).apply(null, arguments);
                            }
                                ;
                            Module["_Sub"] = function () {
                                return (Module["_Sub"] = Module["asm"]["Sub"]).apply(null, arguments);
                            }
                                ;
                            Module["_Sum"] = function () {
                                return (Module["_Sum"] = Module["asm"]["Sum"]).apply(null, arguments);
                            }
                                ;
                            Module["_Tan"] = function () {
                                return (Module["_Tan"] = Module["asm"]["Tan"]).apply(null, arguments);
                            }
                                ;
                            Module["_Tanh"] = function () {
                                return (Module["_Tanh"] = Module["asm"]["Tanh"]).apply(null, arguments);
                            }
                                ;
                            Module["_Tile"] = function () {
                                return (Module["_Tile"] = Module["asm"]["Tile"]).apply(null, arguments);
                            }
                                ;
                            Module["_TopK"] = function () {
                                return (Module["_TopK"] = Module["asm"]["TopK"]).apply(null, arguments);
                            }
                                ;
                            Module["_Transform"] = function () {
                                return (Module["_Transform"] = Module["asm"]["Transform"]).apply(null, arguments);
                            }
                                ;
                            Module["_Transpose"] = function () {
                                return (Module["_Transpose"] = Module["asm"]["Transpose"]).apply(null, arguments);
                            }
                                ;
                            Module["__FusedMatMul"] = function () {
                                return (Module["__FusedMatMul"] = Module["asm"]["_FusedMatMul"]).apply(null, arguments);
                            }
                                ;
                            Module["_malloc"] = function () {
                                return (Module["_malloc"] = Module["asm"]["malloc"]).apply(null, arguments);
                            }
                                ;
                            Module["_free"] = function () {
                                return (Module["_free"] = Module["asm"]["free"]).apply(null, arguments);
                            }
                                ;
                            Module["___errno_location"] = function () {
                                return (Module["___errno_location"] = Module["asm"]["__errno_location"]).apply(null, arguments);
                            }
                                ;
                            var stackSave = Module["stackSave"] = function () {
                                return (stackSave = Module["stackSave"] = Module["asm"]["stackSave"]).apply(null, arguments);
                            }
                                ;
                            var stackRestore = Module["stackRestore"] = function () {
                                return (stackRestore = Module["stackRestore"] = Module["asm"]["stackRestore"]).apply(null, arguments);
                            }
                                ;
                            var stackAlloc = Module["stackAlloc"] = function () {
                                return (stackAlloc = Module["stackAlloc"] = Module["asm"]["stackAlloc"]).apply(null, arguments);
                            }
                                ;
                            Module["dynCall_iijjiiii"] = function () {
                                return (Module["dynCall_iijjiiii"] = Module["asm"]["dynCall_iijjiiii"]).apply(null, arguments);
                            }
                                ;
                            Module["dynCall_jiji"] = function () {
                                return (Module["dynCall_jiji"] = Module["asm"]["dynCall_jiji"]).apply(null, arguments);
                            }
                                ;
                            Module["cwrap"] = cwrap;
                            var calledRun;
                            dependenciesFulfilled = function runCaller() {
                                if (!calledRun)
                                    run();
                                if (!calledRun)
                                    dependenciesFulfilled = runCaller;
                            }
                                ;
                            function run(args) {
                                if (runDependencies > 0) {
                                    return;
                                }
                                preRun();
                                if (runDependencies > 0) {
                                    return;
                                }
                                function doRun() {
                                    if (calledRun)
                                        return;
                                    calledRun = true;
                                    Module["calledRun"] = true;
                                    if (ABORT)
                                        return;
                                    initRuntime();
                                    readyPromiseResolve(Module);
                                    if (Module["onRuntimeInitialized"])
                                        Module["onRuntimeInitialized"]();
                                    postRun();
                                }
                                if (Module["setStatus"]) {
                                    Module["setStatus"]("Running...");
                                    setTimeout(function () {
                                        setTimeout(function () {
                                            Module["setStatus"]("");
                                        }, 1);
                                        doRun();
                                    }, 1);
                                } else {
                                    doRun();
                                }
                            }
                            if (Module["preInit"]) {
                                if (typeof Module["preInit"] == "function")
                                    Module["preInit"] = [Module["preInit"]];
                                while (Module["preInit"].length > 0) {
                                    Module["preInit"].pop()();
                                }
                            }
                            run();
                            var listenersAdded;
                            if (beforeListeners) {
                                listenersAdded = {
                                    uncaughtException: process.listeners("uncaughtException").filter(function (listener) {
                                        return !beforeListeners.uncaughtException.indexOf(listener) > -1;
                                    }),
                                    unhandledRejection: process.listeners("unhandledRejection").filter(function (listener) {
                                        return !beforeListeners.unhandledRejection.indexOf(listener) > -1;
                                    })
                                };
                            }
                            var actualModule;
                            if (typeof WasmBackendModule !== "undefined") {
                                actualModule = WasmBackendModule;
                            } else if (typeof WasmBackendModuleThreadedSimd !== "undefined") {
                                actualModule = WasmBackendModuleThreadedSimd;
                            } else {
                                throw new Error("Could not find wasm module in post.js");
                            }
                            if (listenersAdded) {
                                var tmpDispose = actualModule["_dispose"];
                                actualModule["_dispose"] = function () {
                                    tmpDispose();
                                    listenersAdded.uncaughtException.forEach(function (listener) {
                                        process.removeListener("uncaughtException", listener);
                                    });
                                    listenersAdded.unhandledRejection.forEach(function (listener) {
                                        process.removeListener("unhandledRejection", listener);
                                    });
                                }
                                    ;
                            }
                            return WasmBackendModule.ready;
                        }
                        );
                    }
                    )();
                    module.exports = WasmBackendModule;
                });

                var wasmFactory_import = /*#__PURE__*/
                    _mergeNamespaces({
                        __proto__: null,
                        'default': tfjsBackendWasm
                    }, [tfjsBackendWasm]);

                // This workaround is required for importing in Node.js without using
                // the node bundle (for testing). This would not be necessary if we
                // flipped esModuleInterop to true, but we likely can't do that since
                // google3 does not use it.
                var wasmFactoryThreadedSimd = (tfjsBackendWasmThreadedSimd || wasmFactoryThreadedSimd_import);
                var wasmFactory = (tfjsBackendWasm || wasmFactory_import);
                var BackendWasm = /** @class */
                    (function (_super) {
                        __extends(BackendWasm, _super);
                        function BackendWasm(wasm) {
                            var _this = _super.call(this) || this;
                            _this.wasm = wasm;
                            // 0 is reserved for null data ids.
                            _this.dataIdNextNumber = 1;
                            _this.wasm.tfjs.initWithThreadsCount(threadsCount);
                            actualThreadsCount = _this.wasm.tfjs.getThreadsCount();
                            _this.dataIdMap = new tfjsCore.DataStorage(_this, tfjsCore.engine());
                            return _this;
                        }
                        BackendWasm.prototype.write = function (values, shape, dtype) {
                            var dataId = {
                                id: this.dataIdNextNumber++
                            };
                            this.move(dataId, values, shape, dtype, 1);
                            return dataId;
                        }
                            ;
                        BackendWasm.prototype.numDataIds = function () {
                            return this.dataIdMap.numDataIds();
                        }
                            ;
                        BackendWasm.prototype.time = function (f) {
                            return __awaiter(this, void 0, void 0, function () {
                                var start, kernelMs;
                                return __generator(this, function (_a) {
                                    start = tfjsCore.util.now();
                                    f();
                                    kernelMs = tfjsCore.util.now() - start;
                                    return [2 /*return*/
                                        , {
                                            kernelMs: kernelMs
                                        }];
                                });
                            });
                        }
                            ;
                        BackendWasm.prototype.move = function (dataId, values, shape, dtype, refCount) {
                            var id = this.dataIdNextNumber++;
                            if (dtype === 'string') {
                                var stringBytes = values;
                                this.dataIdMap.set(dataId, {
                                    id: id,
                                    stringBytes: stringBytes,
                                    shape: shape,
                                    dtype: dtype,
                                    memoryOffset: null,
                                    refCount: refCount
                                });
                                return;
                            }
                            var size = tfjsCore.util.sizeFromShape(shape);
                            var numBytes = size * tfjsCore.util.bytesPerElement(dtype);
                            var memoryOffset = this.wasm._malloc(numBytes);
                            this.dataIdMap.set(dataId, {
                                id: id,
                                memoryOffset: memoryOffset,
                                shape: shape,
                                dtype: dtype,
                                refCount: refCount
                            });
                            this.wasm.tfjs.registerTensor(id, size, memoryOffset);
                            if (values != null) {
                                this.wasm.HEAPU8.set(new Uint8Array(values.buffer, values.byteOffset, numBytes), memoryOffset);
                            }
                        }
                            ;
                        BackendWasm.prototype.read = function (dataId) {
                            return __awaiter(this, void 0, void 0, function () {
                                return __generator(this, function (_a) {
                                    return [2 /*return*/
                                        , this.readSync(dataId)];
                                });
                            });
                        }
                            ;
                        BackendWasm.prototype.readSync = function (dataId, start, end) {
                            var _a = this.dataIdMap.get(dataId)
                                , memoryOffset = _a.memoryOffset
                                , dtype = _a.dtype
                                , shape = _a.shape
                                , stringBytes = _a.stringBytes;
                            if (dtype === 'string') {
                                // Slice all elements.
                                if ((start == null || start === 0) && (end == null || end >= stringBytes.length)) {
                                    return stringBytes;
                                }
                                return stringBytes.slice(start, end);
                            }
                            start = start || 0;
                            end = end || tfjsCore.util.sizeFromShape(shape);
                            var bytesPerElement = tfjsCore.util.bytesPerElement(dtype);
                            var bytes = this.wasm.HEAPU8.slice(memoryOffset + start * bytesPerElement, memoryOffset + end * bytesPerElement);
                            return typedArrayFromBuffer(bytes.buffer, dtype);
                        }
                            ;
                        /**
                         * Dispose the memory if the dataId has 0 refCount. Return true if the memory
                         * is released, false otherwise.
                         * @param dataId
                         * @oaram force Optional, remove the data regardless of refCount
                         */
                        BackendWasm.prototype.disposeData = function (dataId, force) {
                            if (force === void 0) {
                                force = false;
                            }
                            if (this.dataIdMap.has(dataId)) {
                                var data = this.dataIdMap.get(dataId);
                                data.refCount--;
                                if (!force && data.refCount > 0) {
                                    return false;
                                }
                                this.wasm._free(data.memoryOffset);
                                this.wasm.tfjs.disposeData(data.id);
                                this.dataIdMap.delete(dataId);
                            }
                            return true;
                        }
                            ;
                        /** Return refCount of a `TensorData`. */
                        BackendWasm.prototype.refCount = function (dataId) {
                            if (this.dataIdMap.has(dataId)) {
                                var tensorData = this.dataIdMap.get(dataId);
                                return tensorData.refCount;
                            }
                            return 0;
                        }
                            ;
                        BackendWasm.prototype.incRef = function (dataId) {
                            var data = this.dataIdMap.get(dataId);
                            if (data != null) {
                                data.refCount++;
                            }
                        }
                            ;
                        BackendWasm.prototype.floatPrecision = function () {
                            return 32;
                        }
                            ;
                        // Returns the memory offset of a tensor. Useful for debugging and unit
                        // testing.
                        BackendWasm.prototype.getMemoryOffset = function (dataId) {
                            return this.dataIdMap.get(dataId).memoryOffset;
                        }
                            ;
                        BackendWasm.prototype.dispose = function () {
                            this.wasm.tfjs.dispose();
                            if ('PThread' in this.wasm) {
                                this.wasm.PThread.terminateAllThreads();
                            }
                            this.wasm = null;
                        }
                            ;
                        BackendWasm.prototype.memory = function () {
                            return {
                                unreliable: false
                            };
                        }
                            ;
                        /**
                         * Make a tensor info for the output of an op. If `memoryOffset` is not
                         * present, this method allocates memory on the WASM heap. If `memoryOffset`
                         * is present, the memory was allocated elsewhere (in c++) and we just record
                         * the pointer where that memory lives.
                         */
                        BackendWasm.prototype.makeOutput = function (shape, dtype, memoryOffset) {
                            var dataId;
                            if (memoryOffset == null) {
                                dataId = this.write(null /* values */
                                    , shape, dtype);
                            } else {
                                var id = this.dataIdNextNumber++;
                                dataId = {
                                    id: id
                                };
                                this.dataIdMap.set(dataId, {
                                    id: id,
                                    memoryOffset: memoryOffset,
                                    shape: shape,
                                    dtype: dtype,
                                    refCount: 1
                                });
                                var size = tfjsCore.util.sizeFromShape(shape);
                                this.wasm.tfjs.registerTensor(id, size, memoryOffset);
                            }
                            return {
                                dataId: dataId,
                                shape: shape,
                                dtype: dtype
                            };
                        }
                            ;
                        BackendWasm.prototype.typedArrayFromHeap = function (_a) {
                            var shape = _a.shape
                                , dtype = _a.dtype
                                , dataId = _a.dataId;
                            var buffer = this.wasm.HEAPU8.buffer;
                            var memoryOffset = this.dataIdMap.get(dataId).memoryOffset;
                            var size = tfjsCore.util.sizeFromShape(shape);
                            switch (dtype) {
                                case 'float32':
                                    return new Float32Array(buffer, memoryOffset, size);
                                case 'int32':
                                    return new Int32Array(buffer, memoryOffset, size);
                                case 'bool':
                                    return new Uint8Array(buffer, memoryOffset, size);
                                default:
                                    throw new Error("Unknown dtype ".concat(dtype));
                            }
                        }
                            ;
                        return BackendWasm;
                    }(tfjsCore.KernelBackend));
                function createInstantiateWasmFunc(path) {
                    // this will be replace by rollup plugin patchWechatWebAssembly in
                    // minprogram's output.
                    // tslint:disable-next-line:no-any
                    return function (imports, callback) {
                        tfjsCore.util.fetch(path, {
                            credentials: 'same-origin'
                        }).then(function (response) {
                            if (!response['ok']) {
                                imports.env.a("failed to load wasm binary file at '".concat(path, "'"));
                            }
                            response.arrayBuffer().then(function (binary) {
                                WebAssembly.instantiate(binary, imports).then(function (output) {
                                    callback(output.instance, output.module);
                                });
                            });
                        });
                        return {};
                    }
                        ;
                }
                /**
                 * Returns the path of the WASM binary.
                 * @param simdSupported whether SIMD is supported
                 * @param threadsSupported whether multithreading is supported
                 * @param wasmModuleFolder the directory containing the WASM binaries.
                 */
                function getPathToWasmBinary(simdSupported, threadsSupported, wasmModuleFolder) {
                    // ************************ CHANGE START ************************
                    if (globalThis.tfjsBackendWasmSimdBlob || Module.tfjsBackendWasmSimdBlob) {
                        simdSupported = true;
                        // console.warn("browser tfjs tries to instantiate wasm simd backend");
                    }  else if (globalThis.tfjsBackendWasmBlob || Module.tfjsBackendWasmBlob) {
                        simdSupported = false;
                        // console.warn("browser tfjs tries to instantiate wasm backend");
                    }
                    // ************************ CHANGE END ************************
                    if (wasmPath != null) {
                        // If wasmPath is defined, the user has supplied a full path to
                        // the vanilla .wasm binary.
                        return wasmPath;
                    }
                    var path = 'tfjs-backend-wasm.wasm';
                    if (simdSupported) {
                        path = 'tfjs-backend-wasm-simd.wasm';
                    } else {
                        path = 'tfjs-backend-wasm.wasm';
                    }
                    if (wasmFileMap != null) {
                        if (wasmFileMap[path] != null) {
                            return wasmFileMap[path];
                        }
                    }
                    return wasmModuleFolder + path;
                }
                /**
                 * Initializes the wasm module and creates the js <--> wasm bridge.
                 *
                 * NOTE: We wrap the wasm module in a object with property 'wasm' instead of
                 * returning Promise<BackendWasmModule> to avoid freezing Chrome (last tested
                 * in Chrome 76).
                 */
                function init() {
                    return __awaiter(this, void 0, void 0, function () {
                        var _a, simdSupported, threadsSupported;
                        return __generator(this, function (_b) {
                            switch (_b.label) {
                                case 0:
                                    return [4 /*yield*/
                                        , Promise.all([tfjsCore.env().getAsync('WASM_HAS_SIMD_SUPPORT'), tfjsCore.env().getAsync('WASM_HAS_MULTITHREAD_SUPPORT')])];
                                case 1:
                                    _a = __read.apply(void 0, [_b.sent(), 2]),
                                        simdSupported = _a[0],
                                        threadsSupported = _a[1];
                                    return [2 /*return*/
                                        , new Promise(function (resolve, reject) {
                                            var factoryConfig = {};
                                            /**
                                                 * This function overrides the Emscripten module locateFile utility.
                                                 * @param path The relative path to the file that needs to be loaded.
                                                 * @param prefix The path to the main JavaScript file's directory.
                                                 */
                                            factoryConfig.locateFile = function (path, prefix) {
                                                if (path.endsWith('.worker.js')) {
                                                    // Escape '\n' because Blob will turn it into a newline.
                                                    // There should be a setting for this, but 'endings: "native"' does
                                                    // not seem to work.
                                                    var response = wasmWorkerContents.replace(/\n/g, '\\n');
                                                    var blob = new Blob([response], {
                                                        type: 'application/javascript'
                                                    });
                                                    return URL.createObjectURL(blob);
                                                }
                                                if (path.endsWith('.wasm')) {
                                                    return getPathToWasmBinary(simdSupported, threadsSupported, wasmPathPrefix != null ? wasmPathPrefix : prefix);
                                                }
                                                return prefix + path;
                                            }
                                                ;
                                            // Use the instantiateWasm override when system fetch is not available.
                                            // Reference:
                                            // https://github.com/emscripten-core/emscripten/blob/2bca083cbbd5a4133db61fbd74d04f7feecfa907/tests/manual_wasm_instantiate.html#L170
                                            if (customFetch) {
                                                factoryConfig.instantiateWasm = createInstantiateWasmFunc(getPathToWasmBinary(simdSupported, threadsSupported, wasmPathPrefix != null ? wasmPathPrefix : ''));
                                            }
                                            var initialized = false;
                                            factoryConfig.onAbort = function () {
                                                if (initialized) {
                                                    // Emscripten already called console.warn so no need to double log.
                                                    return;
                                                }
                                                if (initAborted) {
                                                    // Emscripten calls `onAbort` twice, resulting in double error
                                                    // messages.
                                                    return;
                                                }
                                                initAborted = true;
                                                var rejectMsg = 'Make sure the server can serve the `.wasm` file relative to the ' + 'bundled js file. For more details see https://github.com/tensorflow/tfjs/blob/master/tfjs-backend-wasm/README.md#using-bundlers';
                                                reject({
                                                    message: rejectMsg
                                                });
                                            }
                                                ;
                                            var wasm;
                                            // If `wasmPath` has been defined we must initialize the vanilla module.
                                            if (threadsSupported && simdSupported && wasmPath == null) {
                                                factoryConfig.mainScriptUrlOrBlob = new Blob(["var WasmBackendModuleThreadedSimd = " + wasmFactoryThreadedSimd.toString()], {
                                                    type: 'text/javascript'
                                                });
                                                wasm = wasmFactoryThreadedSimd(factoryConfig);
                                            } else {
                                                // The wasmFactory works for both vanilla and SIMD binaries.
                                                wasm = wasmFactory(factoryConfig);
                                            }
                                            // The `wasm` promise will resolve to the WASM module created by
                                            // the factory, but it might have had errors during creation. Most
                                            // errors are caught by the onAbort callback defined above.
                                            // However, some errors, such as those occurring from a
                                            // failed fetch, result in this promise being rejected. These are
                                            // caught and re-rejected below.
                                            wasm.then(function (module) {
                                                initialized = true;
                                                initAborted = false;
                                                var voidReturnType = null;
                                                // Using the tfjs namespace to avoid conflict with emscripten's API.
                                                module.tfjs = {
                                                    init: module.cwrap('init', null, []),
                                                    initWithThreadsCount: module.cwrap('init_with_threads_count', null, ['number']),
                                                    getThreadsCount: module.cwrap('get_threads_count', 'number', []),
                                                    registerTensor: module.cwrap('register_tensor', null, ['number', 'number', 'number', // memoryOffset
                                                    ]),
                                                    disposeData: module.cwrap('dispose_data', voidReturnType, ['number']),
                                                    dispose: module.cwrap('dispose', voidReturnType, []),
                                                };
                                                resolve({
                                                    wasm: module
                                                });
                                            }).catch(reject);
                                        }
                                        )];
                            }
                        });
                    });
                }
                function typedArrayFromBuffer(buffer, dtype) {
                    switch (dtype) {
                        case 'float32':
                            return new Float32Array(buffer);
                        case 'int32':
                            return new Int32Array(buffer);
                        case 'bool':
                            return new Uint8Array(buffer);
                        default:
                            throw new Error("Unknown dtype ".concat(dtype));
                    }
                }
                var wasmBinaryNames = ['tfjs-backend-wasm.wasm', 'tfjs-backend-wasm-simd.wasm', 'tfjs-backend-wasm-threaded-simd.wasm'];
                var wasmPath = null;
                var wasmPathPrefix = null;
                var wasmFileMap = {};
                var initAborted = false;
                var customFetch = false;
                /**
                 * @deprecated Use `setWasmPaths` instead.
                 * Sets the path to the `.wasm` file which will be fetched when the wasm
                 * backend is initialized. See
                 * https://github.com/tensorflow/tfjs/blob/master/tfjs-backend-wasm/README.md#using-bundlers
                 * for more details.
                 * @param path wasm file path or url
                 * @param usePlatformFetch optional boolean to use platform fetch to download
                 *     the wasm file, default to false.
                 *
                 * @doc {heading: 'Environment', namespace: 'wasm'}
                 */
                function setWasmPath(path, usePlatformFetch) {
                    if (usePlatformFetch === void 0) {
                        usePlatformFetch = false;
                    }
                    tfjsCore.deprecationWarn('setWasmPath has been deprecated in favor of setWasmPaths and' + ' will be removed in a future release.');
                    if (initAborted) {
                        throw new Error('The WASM backend was already initialized. Make sure you call ' + '`setWasmPath()` before you call `tf.setBackend()` or `tf.ready()`');
                    }
                    wasmPath = path;
                    customFetch = usePlatformFetch;
                }
                /**
                 * Configures the locations of the WASM binaries.
                 *
                 * ```js
                 * setWasmPaths({
                 *  'tfjs-backend-wasm.wasm': 'renamed.wasm',
                 *  'tfjs-backend-wasm-simd.wasm': 'renamed-simd.wasm',
                 *  'tfjs-backend-wasm-threaded-simd.wasm': 'renamed-threaded-simd.wasm'
                 * });
                 * tf.setBackend('wasm');
                 * ```
                 *
                 * @param prefixOrFileMap This can be either a string or object:
                 *  - (string) The path to the directory where the WASM binaries are located.
                 *     Note that this prefix will be used to load each binary (vanilla,
                 *     SIMD-enabled, threading-enabled, etc.).
                 *  - (object) Mapping from names of WASM binaries to custom
                 *     full paths specifying the locations of those binaries. This is useful if
                 *     your WASM binaries are not all located in the same directory, or if your
                 *     WASM binaries have been renamed.
                 * @param usePlatformFetch optional boolean to use platform fetch to download
                 *     the wasm file, default to false.
                 *
                 * @doc {heading: 'Environment', namespace: 'wasm'}
                 */
                function setWasmPaths(prefixOrFileMap, usePlatformFetch) {
                    if (usePlatformFetch === void 0) {
                        usePlatformFetch = false;
                    }
                    if (initAborted) {
                        throw new Error('The WASM backend was already initialized. Make sure you call ' + '`setWasmPaths()` before you call `tf.setBackend()` or ' + '`tf.ready()`');
                    }
                    if (typeof prefixOrFileMap === 'string') {
                        wasmPathPrefix = prefixOrFileMap;
                    } else {
                        wasmFileMap = prefixOrFileMap;
                        var missingPaths = wasmBinaryNames.filter(function (name) {
                            return wasmFileMap[name] == null;
                        });
                        if (missingPaths.length > 0) {
                            throw new Error("There were no entries found for the following binaries: " + "".concat(missingPaths.join(','), ". Please either call setWasmPaths with a ") + "map providing a path for each binary, or with a string indicating " + "the directory where all the binaries can be found.");
                        }
                    }
                    customFetch = usePlatformFetch;
                }
                var threadsCount = -1;
                var actualThreadsCount = -1;
                /**
                 * Sets the number of threads that will be used by XNNPACK to create
                 * threadpool (default to the number of logical CPU cores).
                 *
                 * This must be called before calling `tf.setBackend('wasm')`.
                 */
                function setThreadsCount(numThreads) {
                    threadsCount = numThreads;
                }
                /**
                 * Gets the actual threads count that is used by XNNPACK.
                 *
                 * It is set after the backend is intialized.
                 */
                function getThreadsCount() {
                    if (actualThreadsCount === -1) {
                        throw new Error("WASM backend not initialized.");
                    }
                    return actualThreadsCount;
                }

                /** @license See the LICENSE file. */
                // This code is auto-generated, do not modify this file!
                var version = '4.1.0';

                var WASM_PRIORITY = 2;
                tfjsCore.registerBackend('wasm', function () {
                    return __awaiter(void 0, void 0, void 0, function () {
                        var wasm;
                        return __generator(this, function (_a) {
                            switch (_a.label) {
                                case 0:
                                    return [4 /*yield*/
                                        , init()];
                                case 1:
                                    wasm = (_a.sent()).wasm;
                                    return [2 /*return*/
                                        , new BackendWasm(wasm)];
                            }
                        });
                    });
                }, WASM_PRIORITY);

                exports.BackendWasm = BackendWasm;
                exports.getThreadsCount = getThreadsCount;
                exports.setThreadsCount = setThreadsCount;
                exports.setWasmPath = setWasmPath;
                exports.setWasmPaths = setWasmPaths;
                exports.version_wasm = version;

            }
            ).call(this)
        }
        ).call(this, require('_process'), typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}, "/node_modules/@tensorflow/tfjs-backend-wasm/dist/tf-backend-wasm.node.js", arguments[3], arguments[4], arguments[5], arguments[6], "/node_modules/@tensorflow/tfjs-backend-wasm/dist")
    }
        , {
        "@tensorflow/tfjs-core": 506,
        "_process": 649,
        "fs": 636,
        "os": 636,
        "path": 636,
        "perf_hooks": 636,
        "worker_threads": 636
    }],
    9: [function (require, module, exports) {
        /**
         * @license
         * Copyright 2022 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        'use strict';

        Object.defineProperty(exports, '__esModule', {
            value: true
        });

        var tf = require('@tensorflow/tfjs-core');

        function _interopNamespace(e) {
            if (e && e.__esModule)
                return e;
            var n = Object.create(null);
            if (e) {
                Object.keys(e).forEach(function (k) {
                    if (k !== 'default') {
                        var d = Object.getOwnPropertyDescriptor(e, k);
                        Object.defineProperty(n, k, d.get ? d : {
                            enumerable: true,
                            get: function () {
                                return e[k];
                            }
                        });
                    }
                });
            }
            n["default"] = e;
            return n;
        }

        var tf__namespace = /*#__PURE__*/
            _interopNamespace(tf);

        /******************************************************************************
        Copyright (c) Microsoft Corporation.
        
        Permission to use, copy, modify, and/or distribute this software for any
        purpose with or without fee is hereby granted.
        
        THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
        REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
        AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
        INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
        LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
        OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
        PERFORMANCE OF THIS SOFTWARE.
        ***************************************************************************** */
        /* global Reflect, Promise */
        var extendStatics = function (d, b) {
            extendStatics = Object.setPrototypeOf || ({
                __proto__: []
            } instanceof Array && function (d, b) {
                d.__proto__ = b;
            }
            ) || function (d, b) {
                for (var p in b)
                    if (Object.prototype.hasOwnProperty.call(b, p))
                        d[p] = b[p];
            }
                ;
            return extendStatics(d, b);
        };
        function __extends(d, b) {
            if (typeof b !== "function" && b !== null)
                throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
            extendStatics(d, b);
            function __() {
                this.constructor = d;
            }
            d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype,
                new __());
        }
        function __awaiter(thisArg, _arguments, P, generator) {
            function adopt(value) {
                return value instanceof P ? value : new P(function (resolve) {
                    resolve(value);
                }
                );
            }
            return new (P || (P = Promise))(function (resolve, reject) {
                function fulfilled(value) {
                    try {
                        step(generator.next(value));
                    } catch (e) {
                        reject(e);
                    }
                }
                function rejected(value) {
                    try {
                        step(generator["throw"](value));
                    } catch (e) {
                        reject(e);
                    }
                }
                function step(result) {
                    result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
                }
                step((generator = generator.apply(thisArg, _arguments || [])).next());
            }
            );
        }
        function __generator(thisArg, body) {
            var _ = {
                label: 0,
                sent: function () {
                    if (t[0] & 1)
                        throw t[1];
                    return t[1];
                },
                trys: [],
                ops: []
            }, f, y, t, g;
            return g = {
                next: verb(0),
                "throw": verb(1),
                "return": verb(2)
            },
                typeof Symbol === "function" && (g[Symbol.iterator] = function () {
                    return this;
                }
                ),
                g;
            function verb(n) {
                return function (v) {
                    return step([n, v]);
                }
                    ;
            }
            function step(op) {
                if (f)
                    throw new TypeError("Generator is already executing.");
                while (_)
                    try {
                        if (f = 1,
                            y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y),
                                0) : y.next) && !(t = t.call(y, op[1])).done)
                            return t;
                        if (y = 0,
                            t)
                            op = [op[0] & 2, t.value];
                        switch (op[0]) {
                            case 0:
                            case 1:
                                t = op;
                                break;
                            case 4:
                                _.label++;
                                return {
                                    value: op[1],
                                    done: false
                                };
                            case 5:
                                _.label++;
                                y = op[1];
                                op = [0];
                                continue;
                            case 7:
                                op = _.ops.pop();
                                _.trys.pop();
                                continue;
                            default:
                                if (!(t = _.trys,
                                    t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
                                    _ = 0;
                                    continue;
                                }
                                if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) {
                                    _.label = op[1];
                                    break;
                                }
                                if (op[0] === 6 && _.label < t[1]) {
                                    _.label = t[1];
                                    t = op;
                                    break;
                                }
                                if (t && _.label < t[2]) {
                                    _.label = t[2];
                                    _.ops.push(op);
                                    break;
                                }
                                if (t[2])
                                    _.ops.pop();
                                _.trys.pop();
                                continue;
                        }
                        op = body.call(thisArg, _);
                    } catch (e) {
                        op = [6, e];
                        y = 0;
                    } finally {
                        f = t = 0;
                    }
                if (op[0] & 5)
                    throw op[1];
                return {
                    value: op[0] ? op[1] : void 0,
                    done: true
                };
            }
        }
        function __values(o) {
            var s = typeof Symbol === "function" && Symbol.iterator
                , m = s && o[s]
                , i = 0;
            if (m)
                return m.call(o);
            if (o && typeof o.length === "number")
                return {
                    next: function () {
                        if (o && i >= o.length)
                            o = void 0;
                        return {
                            value: o && o[i++],
                            done: !o
                        };
                    }
                };
            throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
        }
        function __read(o, n) {
            var m = typeof Symbol === "function" && o[Symbol.iterator];
            if (!m)
                return o;
            var i = m.call(o), r, ar = [], e;
            try {
                while ((n === void 0 || n-- > 0) && !(r = i.next()).done)
                    ar.push(r.value);
            } catch (error) {
                e = {
                    error: error
                };
            } finally {
                try {
                    if (r && !r.done && (m = i["return"]))
                        m.call(i);
                } finally {
                    if (e)
                        throw e.error;
                }
            }
            return ar;
        }
        function __spreadArray(to, from, pack) {
            if (pack || arguments.length === 2)
                for (var i = 0, l = from.length, ar; i < l; i++) {
                    if (ar || !(i in from)) {
                        if (!ar)
                            ar = Array.prototype.slice.call(from, 0, i);
                        ar[i] = from[i];
                    }
                }
            return to.concat(ar || Array.prototype.slice.call(from));
        }

        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var contexts = {};
        var WEBGL_ATTRIBUTES = {
            alpha: false,
            antialias: false,
            premultipliedAlpha: false,
            preserveDrawingBuffer: false,
            depth: false,
            stencil: false,
            failIfMajorPerformanceCaveat: true
        };
        function setWebGLContext(webGLVersion, gl) {
            contexts[webGLVersion] = gl;
        }
        function getWebGLContext(webGLVersion, customCanvas) {
            if (!(webGLVersion in contexts) || customCanvas != null) {
                var newCtx = getWebGLRenderingContext(webGLVersion, customCanvas);
                if (newCtx !== null) {
                    contexts[webGLVersion] = newCtx;
                } else {
                    console.log('Could not get context for WebGL version', webGLVersion);
                    return null;
                }
            }
            var gl = contexts[webGLVersion];
            if (gl == null || gl.isContextLost()) {
                delete contexts[webGLVersion];
                return getWebGLContext(webGLVersion);
            }
            gl.disable(gl.DEPTH_TEST);
            gl.disable(gl.STENCIL_TEST);
            gl.disable(gl.BLEND);
            gl.disable(gl.DITHER);
            gl.disable(gl.POLYGON_OFFSET_FILL);
            gl.disable(gl.SAMPLE_COVERAGE);
            gl.enable(gl.SCISSOR_TEST);
            gl.enable(gl.CULL_FACE);
            gl.cullFace(gl.BACK);
            return contexts[webGLVersion];
        }
        function createCanvas(webGLVersion) {
            if (typeof OffscreenCanvas !== 'undefined' && webGLVersion === 2) {
                return new OffscreenCanvas(300, 150);
            } else if (typeof document !== 'undefined') {
                return document.createElement('canvas');
            } else {
                throw new Error('Cannot create a canvas in this context');
            }
        }
        function getWebGLRenderingContext(webGLVersion, customCanvas) {
            if (webGLVersion !== 1 && webGLVersion !== 2) {
                throw new Error('Cannot get WebGL rendering context, WebGL is disabled.');
            }
            var canvas = customCanvas == null ? createCanvas(webGLVersion) : customCanvas;
            canvas.addEventListener('webglcontextlost', function (ev) {
                ev.preventDefault();
                delete contexts[webGLVersion];
            }, false);
            if (tf.env().getBool('SOFTWARE_WEBGL_ENABLED')) {
                WEBGL_ATTRIBUTES.failIfMajorPerformanceCaveat = false;
            }
            if (webGLVersion === 1) {
                return (canvas.getContext('webgl', WEBGL_ATTRIBUTES) || canvas.getContext('experimental-webgl', WEBGL_ATTRIBUTES));
            }
            return canvas.getContext('webgl2', WEBGL_ATTRIBUTES);
        }

        var PackingScheme;
        (function (PackingScheme) {
            /**
             * All values in a single texel are densely packed without any constraints.
             *
             * This is how the shader encodes a tensor with shape = [2, 3, 4]
             * (indices are [batch, row, col]).
             *
             * 000|001   010|011   020|021
             * -------   -------   -------
             * 002|003   012|013   022|023
             *
             * 100|101   110|111   120|121
             * -------   -------   -------
             * 102|103   112|113   122|123
             *
             */
            PackingScheme[PackingScheme["DENSE"] = 0] = "DENSE";
            /**
             * Single texels contain only values from the same batch, and from adjacent
             * rows and columns.
             *
             * This is how the shader encodes a tensor with shape = [2, 3, 5]
             * (indices are [batch, row, col]).
             *
             * 000|001   002|003   004|xxx   020|021   022|023   024|xxx
             * -------   -------   -------   -------   -------   -------
             * 010|011   012|013   014|xxx   xxx|xxx   xxx|xxx   xxx|xxx
             *
             * 100|101   102|103   104|xxx   120|121   122|123   124|xxx
             * -------   -------   -------   -------   -------   -------
             * 110|111   112|113   114|xxx   xxx|xxx   xxx|xxx   xxx|xxx
             *
             */
            PackingScheme[PackingScheme["SHARED_BATCH"] = 1] = "SHARED_BATCH";
        }
        )(PackingScheme || (PackingScheme = {}));
        var TextureUsage;
        (function (TextureUsage) {
            TextureUsage[TextureUsage["RENDER"] = 0] = "RENDER";
            TextureUsage[TextureUsage["UPLOAD"] = 1] = "UPLOAD";
            TextureUsage[TextureUsage["PIXELS"] = 2] = "PIXELS";
            TextureUsage[TextureUsage["DOWNLOAD"] = 3] = "DOWNLOAD";
        }
        )(TextureUsage || (TextureUsage = {}));
        var PhysicalTextureType;
        (function (PhysicalTextureType) {
            PhysicalTextureType[PhysicalTextureType["UNPACKED_FLOAT16"] = 0] = "UNPACKED_FLOAT16";
            PhysicalTextureType[PhysicalTextureType["UNPACKED_FLOAT32"] = 1] = "UNPACKED_FLOAT32";
            PhysicalTextureType[PhysicalTextureType["PACKED_4X1_UNSIGNED_BYTE"] = 2] = "PACKED_4X1_UNSIGNED_BYTE";
            PhysicalTextureType[PhysicalTextureType["PACKED_2X2_FLOAT32"] = 3] = "PACKED_2X2_FLOAT32";
            PhysicalTextureType[PhysicalTextureType["PACKED_2X2_FLOAT16"] = 4] = "PACKED_2X2_FLOAT16";
        }
        )(PhysicalTextureType || (PhysicalTextureType = {}));
        function getUnpackedMatrixTextureShapeWidthHeight(rows, columns) {
            return [columns, rows];
        }
        function getUnpackedArraySizeFromMatrixSize(matrixSize, channelsPerTexture) {
            return matrixSize * channelsPerTexture;
        }
        /**
         * Get shape for densely packed RGBA texture.
         */
        function getDenseTexShape(shape) {
            var size = tf.util.sizeFromShape(shape);
            var texelsNeeded = Math.ceil(size / 4);
            return tf.util.sizeToSquarishShape(texelsNeeded);
        }
        function getPackedMatrixTextureShapeWidthHeight(rows, columns) {
            return [Math.max(1, Math.ceil(columns / 2)), Math.max(1, Math.ceil(rows / 2))];
        }
        function getPackedRGBAArraySizeFromMatrixShape(rows, columns) {
            var _a = __read(getPackedMatrixTextureShapeWidthHeight(rows, columns), 2)
                , w = _a[0]
                , h = _a[1];
            return w * h * 4;
        }
        function getTextureConfig(// tslint:disable-next-line:no-any
            gl, textureHalfFloatExtension) {
            // tslint:disable-next-line:no-any
            var glany = gl;
            var internalFormatFloat;
            var internalFormatHalfFloat;
            var internalFormatPackedHalfFloat;
            var internalFormatPackedFloat;
            var textureFormatFloat;
            var downloadTextureFormat;
            var downloadUnpackNumChannels;
            var defaultNumChannels;
            var textureTypeHalfFloat;
            var textureTypeFloat;
            if (tf.env().getNumber('WEBGL_VERSION') === 2) {
                internalFormatFloat = glany.R32F;
                internalFormatHalfFloat = glany.R16F;
                internalFormatPackedHalfFloat = glany.RGBA16F;
                internalFormatPackedFloat = glany.RGBA32F;
                textureFormatFloat = glany.RED;
                downloadUnpackNumChannels = 4;
                defaultNumChannels = 1;
                textureTypeHalfFloat = glany.HALF_FLOAT;
                textureTypeFloat = glany.FLOAT;
                downloadTextureFormat = glany.RGBA8;
            } else {
                internalFormatFloat = gl.RGBA;
                internalFormatHalfFloat = gl.RGBA;
                internalFormatPackedHalfFloat = gl.RGBA;
                internalFormatPackedFloat = glany.RGBA;
                textureFormatFloat = gl.RGBA;
                downloadUnpackNumChannels = 4;
                defaultNumChannels = 4;
                textureTypeHalfFloat = textureHalfFloatExtension != null ? textureHalfFloatExtension.HALF_FLOAT_OES : null;
                textureTypeFloat = gl.FLOAT;
                downloadTextureFormat = gl.RGBA;
            }
            return {
                internalFormatFloat: internalFormatFloat,
                internalFormatHalfFloat: internalFormatHalfFloat,
                internalFormatPackedHalfFloat: internalFormatPackedHalfFloat,
                internalFormatPackedFloat: internalFormatPackedFloat,
                textureFormatFloat: textureFormatFloat,
                downloadTextureFormat: downloadTextureFormat,
                downloadUnpackNumChannels: downloadUnpackNumChannels,
                defaultNumChannels: defaultNumChannels,
                textureTypeHalfFloat: textureTypeHalfFloat,
                textureTypeFloat: textureTypeFloat
            };
        }

        function callAndCheck(gl, func) {
            var returnValue = func();
            if (tf.env().getBool('DEBUG')) {
                checkWebGLError(gl);
            }
            return returnValue;
        }
        function checkWebGLError(gl) {
            var error = gl.getError();
            if (error !== gl.NO_ERROR) {
                throw new Error('WebGL Error: ' + getWebGLErrorMessage(gl, error));
            }
        }
        // https://en.wikipedia.org/wiki/Half-precision_floating-point_format
        var MIN_FLOAT16 = 5.96e-8;
        var MAX_FLOAT16 = 65504;
        function canBeRepresented(num) {
            if (tf.env().getBool('WEBGL_RENDER_FLOAT32_ENABLED') || num === 0 || (MIN_FLOAT16 < Math.abs(num) && Math.abs(num) < MAX_FLOAT16)) {
                return true;
            }
            return false;
        }
        function getWebGLErrorMessage(gl, status) {
            switch (status) {
                case gl.NO_ERROR:
                    return 'NO_ERROR';
                case gl.INVALID_ENUM:
                    return 'INVALID_ENUM';
                case gl.INVALID_VALUE:
                    return 'INVALID_VALUE';
                case gl.INVALID_OPERATION:
                    return 'INVALID_OPERATION';
                case gl.INVALID_FRAMEBUFFER_OPERATION:
                    return 'INVALID_FRAMEBUFFER_OPERATION';
                case gl.OUT_OF_MEMORY:
                    return 'OUT_OF_MEMORY';
                case gl.CONTEXT_LOST_WEBGL:
                    return 'CONTEXT_LOST_WEBGL';
                default:
                    return "Unknown error code ".concat(status);
            }
        }
        function getExtensionOrThrow(gl, extensionName) {
            return throwIfNull(gl, function () {
                return gl.getExtension(extensionName);
            }, 'Extension "' + extensionName + '" not supported on this browser.');
        }
        function createVertexShader$1(gl, vertexShaderSource) {
            var vertexShader = throwIfNull(gl, function () {
                return gl.createShader(gl.VERTEX_SHADER);
            }, 'Unable to create vertex WebGLShader.');
            callAndCheck(gl, function () {
                return gl.shaderSource(vertexShader, vertexShaderSource);
            });
            callAndCheck(gl, function () {
                return gl.compileShader(vertexShader);
            });
            if (gl.getShaderParameter(vertexShader, gl.COMPILE_STATUS) === false) {
                console.log(gl.getShaderInfoLog(vertexShader));
                throw new Error('Failed to compile vertex shader.');
            }
            return vertexShader;
        }
        function createFragmentShader(gl, fragmentShaderSource) {
            var fragmentShader = throwIfNull(gl, function () {
                return gl.createShader(gl.FRAGMENT_SHADER);
            }, 'Unable to create fragment WebGLShader.');
            callAndCheck(gl, function () {
                return gl.shaderSource(fragmentShader, fragmentShaderSource);
            });
            callAndCheck(gl, function () {
                return gl.compileShader(fragmentShader);
            });
            if (tf.env().get('ENGINE_COMPILE_ONLY')) {
                return fragmentShader;
            }
            if (gl.getShaderParameter(fragmentShader, gl.COMPILE_STATUS) === false) {
                logShaderSourceAndInfoLog(fragmentShaderSource, gl.getShaderInfoLog(fragmentShader));
                throw new Error('Failed to compile fragment shader.');
            }
            return fragmentShader;
        }
        var lineNumberRegex = /ERROR: [0-9]+:([0-9]+):/g;
        function logShaderSourceAndInfoLog(shaderSource, shaderInfoLog) {
            var lineNumberRegexResult = lineNumberRegex.exec(shaderInfoLog);
            if (lineNumberRegexResult == null) {
                console.log("Couldn't parse line number in error: ".concat(shaderInfoLog));
                console.log(shaderSource);
                return;
            }
            var lineNumber = +lineNumberRegexResult[1];
            var shaderLines = shaderSource.split('\n');
            var pad = shaderLines.length.toString().length + 2;
            var linesWithLineNumbers = shaderLines.map(function (line, lineNumber) {
                return tf.util.rightPad((lineNumber + 1).toString(), pad) + line;
            });
            var maxLineLength = 0;
            for (var i = 0; i < linesWithLineNumbers.length; i++) {
                maxLineLength = Math.max(linesWithLineNumbers[i].length, maxLineLength);
            }
            var beforeErrorLines = linesWithLineNumbers.slice(0, lineNumber - 1);
            var errorLine = linesWithLineNumbers.slice(lineNumber - 1, lineNumber);
            var afterErrorLines = linesWithLineNumbers.slice(lineNumber);
            console.log(beforeErrorLines.join('\n'));
            console.log(shaderInfoLog.split('\n')[0]);
            console.log("%c ".concat(tf.util.rightPad(errorLine[0], maxLineLength)), 'border:1px solid red; background-color:#e3d2d2; color:#a61717');
            console.log(afterErrorLines.join('\n'));
        }
        function createProgram(gl) {
            return throwIfNull(gl, function () {
                return gl.createProgram();
            }, 'Unable to create WebGLProgram.');
        }
        function linkProgram(gl, program) {
            callAndCheck(gl, function () {
                return gl.linkProgram(program);
            });
            if (tf.env().get('ENGINE_COMPILE_ONLY')) {
                return;
            }
            if (gl.getProgramParameter(program, gl.LINK_STATUS) === false) {
                console.log(gl.getProgramInfoLog(program));
                throw new Error('Failed to link vertex and fragment shaders.');
            }
        }
        /// validateProgram is effectively "If we `useProgram(program); drawArrays();`,
        /// give feedback in log about perf/correctness warnings or errors that would
        /// occur."
        /// So make sure we set up all vertex/texture/sampler/uniform data before
        /// calling validateProgram!
        function validateProgram(gl, program) {
            callAndCheck(gl, function () {
                return gl.validateProgram(program);
            });
            if (gl.getProgramParameter(program, gl.VALIDATE_STATUS) === false) {
                console.log(gl.getProgramInfoLog(program));
                throw new Error('Shader program validation failed.');
            }
        }
        function createStaticVertexBuffer(gl, data) {
            var buffer = throwIfNull(gl, function () {
                return gl.createBuffer();
            }, 'Unable to create WebGLBuffer');
            callAndCheck(gl, function () {
                return gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
            });
            callAndCheck(gl, function () {
                return gl.bufferData(gl.ARRAY_BUFFER, data, gl.STATIC_DRAW);
            });
            return buffer;
        }
        function createStaticIndexBuffer(gl, data) {
            var buffer = throwIfNull(gl, function () {
                return gl.createBuffer();
            }, 'Unable to create WebGLBuffer');
            callAndCheck(gl, function () {
                return gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, buffer);
            });
            callAndCheck(gl, function () {
                return gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, data, gl.STATIC_DRAW);
            });
            return buffer;
        }
        function getNumChannels() {
            if (tf.env().getNumber('WEBGL_VERSION') === 2) {
                return 1;
            }
            return 4;
        }
        function createTexture(gl) {
            return throwIfNull(gl, function () {
                return gl.createTexture();
            }, 'Unable to create WebGLTexture.');
        }
        function validateTextureSize(width, height) {
            var maxTextureSize = tf.env().getNumber('WEBGL_MAX_TEXTURE_SIZE');
            if ((width <= 0) || (height <= 0)) {
                var requested = "[".concat(width, "x").concat(height, "]");
                throw new Error('Requested texture size ' + requested + ' is invalid.');
            }
            if ((width > maxTextureSize) || (height > maxTextureSize)) {
                var requested = "[".concat(width, "x").concat(height, "]");
                var max = "[".concat(maxTextureSize, "x").concat(maxTextureSize, "]");
                throw new Error('Requested texture size ' + requested + ' greater than WebGL maximum on this browser / GPU ' + max + '.');
            }
        }
        function createFramebuffer(gl) {
            return throwIfNull(gl, function () {
                return gl.createFramebuffer();
            }, 'Unable to create WebGLFramebuffer.');
        }
        function bindVertexBufferToProgramAttribute(gl, program, attribute, buffer, arrayEntriesPerItem, itemStrideInBytes, itemOffsetInBytes) {
            var loc = gl.getAttribLocation(program, attribute);
            if (loc === -1) {
                // The GPU compiler decided to strip out this attribute because it's unused,
                // thus no need to bind.
                return false;
            }
            callAndCheck(gl, function () {
                return gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
            });
            callAndCheck(gl, function () {
                return gl.vertexAttribPointer(loc, arrayEntriesPerItem, gl.FLOAT, false, itemStrideInBytes, itemOffsetInBytes);
            });
            callAndCheck(gl, function () {
                return gl.enableVertexAttribArray(loc);
            });
            return true;
        }
        function bindTextureUnit(gl, texture, textureUnit) {
            validateTextureUnit(gl, textureUnit);
            callAndCheck(gl, function () {
                return gl.activeTexture(gl.TEXTURE0 + textureUnit);
            });
            callAndCheck(gl, function () {
                return gl.bindTexture(gl.TEXTURE_2D, texture);
            });
        }
        function unbindTextureUnit(gl, textureUnit) {
            validateTextureUnit(gl, textureUnit);
            callAndCheck(gl, function () {
                return gl.activeTexture(gl.TEXTURE0 + textureUnit);
            });
            callAndCheck(gl, function () {
                return gl.bindTexture(gl.TEXTURE_2D, null);
            });
        }
        function getProgramUniformLocationOrThrow(gl, program, uniformName) {
            return throwIfNull(gl, function () {
                return gl.getUniformLocation(program, uniformName);
            }, 'uniform "' + uniformName + '" not present in program.');
        }
        function getProgramUniformLocation(gl, program, uniformName) {
            return gl.getUniformLocation(program, uniformName);
        }
        function bindTextureToProgramUniformSampler(gl, texture, uniformSamplerLocation, textureUnit) {
            callAndCheck(gl, function () {
                return bindTextureUnit(gl, texture, textureUnit);
            });
            callAndCheck(gl, function () {
                return gl.uniform1i(uniformSamplerLocation, textureUnit);
            });
        }
        function bindCanvasToFramebuffer(gl) {
            callAndCheck(gl, function () {
                return gl.bindFramebuffer(gl.FRAMEBUFFER, null);
            });
            callAndCheck(gl, function () {
                return gl.viewport(0, 0, gl.canvas.width, gl.canvas.height);
            });
            callAndCheck(gl, function () {
                return gl.scissor(0, 0, gl.canvas.width, gl.canvas.height);
            });
        }
        function bindColorTextureToFramebuffer(gl, texture, framebuffer) {
            callAndCheck(gl, function () {
                return gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer);
            });
            callAndCheck(gl, function () {
                return gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0);
            });
        }
        function unbindColorTextureFromFramebuffer(gl, framebuffer) {
            callAndCheck(gl, function () {
                return gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer);
            });
            callAndCheck(gl, function () {
                return gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, null, 0);
            });
        }
        function validateFramebuffer(gl) {
            var status = gl.checkFramebufferStatus(gl.FRAMEBUFFER);
            if (status !== gl.FRAMEBUFFER_COMPLETE) {
                throw new Error('Error binding framebuffer: ' + getFramebufferErrorMessage(gl, status));
            }
        }
        function getFramebufferErrorMessage(gl, status) {
            switch (status) {
                case gl.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:
                    return 'FRAMEBUFFER_INCOMPLETE_ATTACHMENT';
                case gl.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:
                    return 'FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT';
                case gl.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:
                    return 'FRAMEBUFFER_INCOMPLETE_DIMENSIONS';
                case gl.FRAMEBUFFER_UNSUPPORTED:
                    return 'FRAMEBUFFER_UNSUPPORTED';
                default:
                    return "unknown error ".concat(status);
            }
        }
        function throwIfNull(gl, returnTOrNull, failureMessage) {
            var tOrNull = callAndCheck(gl, function () {
                return returnTOrNull();
            });
            if (tOrNull == null) {
                throw new Error(failureMessage);
            }
            return tOrNull;
        }
        function validateTextureUnit(gl, textureUnit) {
            var maxTextureUnit = gl.MAX_COMBINED_TEXTURE_IMAGE_UNITS - 1;
            var glTextureUnit = textureUnit + gl.TEXTURE0;
            if (glTextureUnit < gl.TEXTURE0 || glTextureUnit > maxTextureUnit) {
                var textureUnitRange = "[gl.TEXTURE0, gl.TEXTURE".concat(maxTextureUnit, "]");
                throw new Error("textureUnit must be in ".concat(textureUnitRange, "."));
            }
        }
        function getBatchDim(shape, dimsToSkip) {
            if (dimsToSkip === void 0) {
                dimsToSkip = 2;
            }
            return tf.util.sizeFromShape(shape.slice(0, shape.length - dimsToSkip));
        }
        function getRowsCols(shape) {
            if (shape.length === 0) {
                throw Error('Cannot get rows and columns of an empty shape array.');
            }
            return [shape.length > 1 ? shape[shape.length - 2] : 1, shape[shape.length - 1]];
        }
        function getShapeAs3D(shape) {
            var shapeAs3D = [1, 1, 1];
            var isScalar = shape.length === 0 || (shape.length === 1 && shape[0] === 1);
            if (!isScalar) {
                shapeAs3D = __spreadArray([getBatchDim(shape)], __read(getRowsCols(shape)), false);
            }
            return shapeAs3D;
        }
        function getTextureShapeFromLogicalShape(logShape, isPacked) {
            var _a;
            if (isPacked === void 0) {
                isPacked = false;
            }
            var maxTexSize = tf.env().getNumber('WEBGL_MAX_TEXTURE_SIZE');
            var maxSizeForNarrowTex = tf.env().getNumber('WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE');
            if (maxSizeForNarrowTex === Infinity && tf.env().getBool('WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE')) {
                maxSizeForNarrowTex = maxTexSize / 2;
            }
            if (isPacked) {
                maxTexSize = maxTexSize * 2;
                maxSizeForNarrowTex = maxSizeForNarrowTex * 2;
                // This logic ensures we accurately count the number of packed texels needed
                // to accommodate the tensor. We can only pack values in the same texel if
                // they are from adjacent pairs of rows/cols within the same batch. So if a
                // tensor has 3 rows, we pretend it has 4 rows in order to account for the
                // fact that the texels containing the third row are half empty.
                logShape = logShape.map(function (d, i) {
                    return i >= logShape.length - 2 ? tf.util.nearestLargerEven(logShape[i]) : logShape[i];
                });
                // Packed texture height is at least 2 (the channel height of a single
                // texel).
                if (logShape.length === 1) {
                    logShape = [2, logShape[0]];
                }
            }
            // If logical shape is 2, we don't squeeze, since we want to match physical.
            if (logShape.length !== 2) {
                var squeezeResult = tf.util.squeezeShape(logShape);
                logShape = squeezeResult.newShape;
            }
            var size = tf.util.sizeFromShape(logShape);
            var textureShape = null;
            if (logShape.length <= 1 && size <= maxTexSize) {
                textureShape = [1, size];
            } else if (logShape.length === 2 && logShape[0] <= maxTexSize && logShape[1] <= maxTexSize) {
                textureShape = logShape;
            } else if (logShape.length === 3 && logShape[0] * logShape[1] <= maxTexSize && logShape[2] <= maxTexSize) {
                textureShape = [logShape[0] * logShape[1], logShape[2]];
            } else if (logShape.length === 3 && logShape[0] <= maxTexSize && logShape[1] * logShape[2] <= maxTexSize) {
                textureShape = [logShape[0], logShape[1] * logShape[2]];
            } else if (logShape.length === 4 && logShape[0] * logShape[1] * logShape[2] <= maxTexSize && logShape[3] <= maxTexSize) {
                textureShape = [logShape[0] * logShape[1] * logShape[2], logShape[3]];
            } else if (logShape.length === 4 && logShape[0] <= maxTexSize && logShape[1] * logShape[2] * logShape[3] <= maxTexSize) {
                textureShape = [logShape[0], logShape[1] * logShape[2] * logShape[3]];
            }
            // true if one edge length is 1 (1 or 2, if packed), while another edge
            // length exceeds maxSizeForNarrowTex.
            var isLongNarrowTex = textureShape != null && Math.max.apply(Math, __spreadArray([], __read(textureShape), false)) > maxSizeForNarrowTex && Math.min.apply(Math, __spreadArray([], __read(textureShape), false)) <= (isPacked ? 2 : 1) && Math.min.apply(Math, __spreadArray([], __read(textureShape), false)) > 0;
            if (textureShape == null || isLongNarrowTex) {
                if (isPacked) {
                    // For packed textures size equals the number of channels required to
                    // accommodate the texture data. However in order to squarify such that
                    // inner dimensions stay even, we rewrite size to equal the number of
                    // texels. Then in the return statement we rehydrate the squarified
                    // dimensions to channel units.
                    var batchDim = getBatchDim(logShape);
                    var rows = 2
                        , cols = 2;
                    if (logShape.length) {
                        _a = __read(getRowsCols(logShape), 2),
                            rows = _a[0],
                            cols = _a[1];
                    }
                    size = batchDim * (rows / 2) * (cols / 2);
                    textureShape = tf.util.sizeToSquarishShape(size).map(function (d) {
                        return d * 2;
                    });
                } else {
                    textureShape = tf.util.sizeToSquarishShape(size);
                }
            }
            return textureShape;
        }
        function isEven(n) {
            return n % 2 === 0;
        }
        /**
         * This determines whether reshaping a packed texture requires rearranging
         * the data within the texture, assuming 2x2 packing.
         */
        function isReshapeFree(shape1, shape2) {
            shape1 = shape1.slice(-2);
            shape2 = shape2.slice(-2);
            if (tf.util.arraysEqual(shape1, shape2)) {
                return true;
            }
            if (!shape1.length || !shape2.length) {
                // One of the shapes is a scalar.
                return true;
            }
            if (shape1[0] === 0 || shape1[1] === 0 || shape2[0] === 0 || shape2[1] === 0) {
                return true;
            }
            if (shape1.length !== shape2.length) {
                // One of the shapes is a vector.
                var shape1Cols = shape1.slice(-1)[0];
                var shape2Cols = shape2.slice(-1)[0];
                if (shape1Cols === shape2Cols) {
                    return true;
                }
                if (isEven(shape1Cols) && isEven(shape2Cols) && (shape1[0] === 1 || shape2[0] === 1)) {
                    return true;
                }
            }
            return shape1[1] === shape2[1] && isEven(shape1[0]) && isEven(shape2[0]);
        }
        // We cache webgl params because the environment gets reset between
        // unit tests and we don't want to constantly query the WebGLContext for
        // MAX_TEXTURE_SIZE.
        var MAX_TEXTURE_SIZE;
        var MAX_TEXTURES_IN_SHADER;
        function getWebGLMaxTextureSize(webGLVersion) {
            if (MAX_TEXTURE_SIZE == null) {
                var gl = getWebGLContext(webGLVersion);
                MAX_TEXTURE_SIZE = gl.getParameter(gl.MAX_TEXTURE_SIZE);
            }
            return MAX_TEXTURE_SIZE;
        }
        function resetMaxTextureSize() {
            MAX_TEXTURE_SIZE = null;
        }
        function resetMaxTexturesInShader() {
            MAX_TEXTURES_IN_SHADER = null;
        }
        function getMaxTexturesInShader(webGLVersion) {
            if (MAX_TEXTURES_IN_SHADER == null) {
                var gl = getWebGLContext(webGLVersion);
                MAX_TEXTURES_IN_SHADER = gl.getParameter(gl.MAX_TEXTURE_IMAGE_UNITS);
            }
            // We cap at 16 to avoid spurious runtime "memory exhausted" error.
            return Math.min(16, MAX_TEXTURES_IN_SHADER);
        }
        function getWebGLDisjointQueryTimerVersion(webGLVersion) {
            if (webGLVersion === 0) {
                return 0;
            }
            var queryTimerVersion;
            var gl = getWebGLContext(webGLVersion);
            if (hasExtension(gl, 'EXT_disjoint_timer_query_webgl2') && webGLVersion === 2) {
                queryTimerVersion = 2;
            } else if (hasExtension(gl, 'EXT_disjoint_timer_query')) {
                queryTimerVersion = 1;
            } else {
                queryTimerVersion = 0;
            }
            return queryTimerVersion;
        }
        function hasExtension(gl, extensionName) {
            var ext = gl.getExtension(extensionName);
            return ext != null;
        }
        function isWebGLVersionEnabled(webGLVersion) {
            try {
                var gl = getWebGLContext(webGLVersion);
                if (gl != null) {
                    return true;
                }
            } catch (e) {
                console.log('Error when getting WebGL context: ', e);
                return false;
            }
            return false;
        }
        function isCapableOfRenderingToFloatTexture(webGLVersion) {
            if (webGLVersion === 0) {
                return false;
            }
            var gl = getWebGLContext(webGLVersion);
            if (webGLVersion === 1) {
                if (!hasExtension(gl, 'OES_texture_float')) {
                    return false;
                }
            } else {
                if (!hasExtension(gl, 'EXT_color_buffer_float')) {
                    return false;
                }
            }
            var isFrameBufferComplete = createFloatTextureAndBindToFramebuffer(gl);
            return isFrameBufferComplete;
        }
        /**
         * Check if we can download values from a float/half-float texture.
         *
         * Note that for performance reasons we use binding a texture to a framebuffer
         * as a proxy for ability to download float values later using readPixels. The
         * texture params of this texture will not match those in readPixels exactly
         * but if we are unable to bind some kind of float texture to the frameBuffer
         * then we definitely will not be able to read float values from it.
         */
        function isDownloadFloatTextureEnabled(webGLVersion) {
            if (webGLVersion === 0) {
                return false;
            }
            var gl = getWebGLContext(webGLVersion);
            if (webGLVersion === 1) {
                if (!hasExtension(gl, 'OES_texture_float')) {
                    return false;
                }
                if (!hasExtension(gl, 'WEBGL_color_buffer_float')) {
                    return false;
                }
            } else {
                if (hasExtension(gl, 'EXT_color_buffer_float')) {
                    return createFloatTextureAndBindToFramebuffer(gl);
                }
                var COLOR_BUFFER_HALF_FLOAT = 'EXT_color_buffer_half_float';
                if (hasExtension(gl, COLOR_BUFFER_HALF_FLOAT)) {
                    var textureHalfFloatExtension = gl.getExtension(COLOR_BUFFER_HALF_FLOAT);
                    return createHalfFloatTextureAndBindToFramebuffer(gl, textureHalfFloatExtension);
                }
                return false;
            }
            var isFrameBufferComplete = createFloatTextureAndBindToFramebuffer(gl);
            return isFrameBufferComplete;
        }
        function createFloatTextureAndBindToFramebuffer(gl) {
            var texConfig = getTextureConfig(gl);
            var texture = gl.createTexture();
            gl.bindTexture(gl.TEXTURE_2D, texture);
            var width = 1;
            var height = 1;
            gl.texImage2D(gl.TEXTURE_2D, 0, texConfig.internalFormatFloat, width, height, 0, texConfig.textureFormatFloat, texConfig.textureTypeFloat, null);
            var frameBuffer = gl.createFramebuffer();
            gl.bindFramebuffer(gl.FRAMEBUFFER, frameBuffer);
            gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0);
            var isFrameBufferComplete = gl.checkFramebufferStatus(gl.FRAMEBUFFER) === gl.FRAMEBUFFER_COMPLETE;
            gl.bindTexture(gl.TEXTURE_2D, null);
            gl.bindFramebuffer(gl.FRAMEBUFFER, null);
            gl.deleteTexture(texture);
            gl.deleteFramebuffer(frameBuffer);
            return isFrameBufferComplete;
        }
        function createHalfFloatTextureAndBindToFramebuffer(// tslint:disable-next-line:no-any
            gl, textureHalfFloatExtension) {
            var texConfig = getTextureConfig(gl, textureHalfFloatExtension);
            var texture = gl.createTexture();
            gl.bindTexture(gl.TEXTURE_2D, texture);
            var width = 1;
            var height = 1;
            gl.texImage2D(gl.TEXTURE_2D, 0, texConfig.internalFormatHalfFloat, width, height, 0, texConfig.textureFormatFloat, texConfig.textureTypeHalfFloat, null);
            var frameBuffer = gl.createFramebuffer();
            gl.bindFramebuffer(gl.FRAMEBUFFER, frameBuffer);
            gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0);
            var isFrameBufferComplete = gl.checkFramebufferStatus(gl.FRAMEBUFFER) === gl.FRAMEBUFFER_COMPLETE;
            gl.bindTexture(gl.TEXTURE_2D, null);
            gl.bindFramebuffer(gl.FRAMEBUFFER, null);
            gl.deleteTexture(texture);
            gl.deleteFramebuffer(frameBuffer);
            return isFrameBufferComplete;
        }
        function isWebGLFenceEnabled(webGLVersion) {
            if (webGLVersion !== 2) {
                return false;
            }
            var gl = getWebGLContext(webGLVersion);
            // tslint:disable-next-line:no-any
            var isEnabled = gl.fenceSync != null;
            return isEnabled;
        }
        function assertNotComplex(tensor, opName) {
            if (!Array.isArray(tensor)) {
                tensor = [tensor];
            }
            tensor.forEach(function (t) {
                if (t != null) {
                    tf.util.assert(t.dtype !== 'complex64', function () {
                        return "".concat(opName, " does not support complex64 tensors ") + 'in the WebGL backend.';
                    });
                }
            });
        }

        var webgl_util = {
            __proto__: null,
            callAndCheck: callAndCheck,
            canBeRepresented: canBeRepresented,
            getWebGLErrorMessage: getWebGLErrorMessage,
            getExtensionOrThrow: getExtensionOrThrow,
            createVertexShader: createVertexShader$1,
            createFragmentShader: createFragmentShader,
            logShaderSourceAndInfoLog: logShaderSourceAndInfoLog,
            createProgram: createProgram,
            linkProgram: linkProgram,
            validateProgram: validateProgram,
            createStaticVertexBuffer: createStaticVertexBuffer,
            createStaticIndexBuffer: createStaticIndexBuffer,
            getNumChannels: getNumChannels,
            createTexture: createTexture,
            validateTextureSize: validateTextureSize,
            createFramebuffer: createFramebuffer,
            bindVertexBufferToProgramAttribute: bindVertexBufferToProgramAttribute,
            bindTextureUnit: bindTextureUnit,
            unbindTextureUnit: unbindTextureUnit,
            getProgramUniformLocationOrThrow: getProgramUniformLocationOrThrow,
            getProgramUniformLocation: getProgramUniformLocation,
            bindTextureToProgramUniformSampler: bindTextureToProgramUniformSampler,
            bindCanvasToFramebuffer: bindCanvasToFramebuffer,
            bindColorTextureToFramebuffer: bindColorTextureToFramebuffer,
            unbindColorTextureFromFramebuffer: unbindColorTextureFromFramebuffer,
            validateFramebuffer: validateFramebuffer,
            getFramebufferErrorMessage: getFramebufferErrorMessage,
            getBatchDim: getBatchDim,
            getRowsCols: getRowsCols,
            getShapeAs3D: getShapeAs3D,
            getTextureShapeFromLogicalShape: getTextureShapeFromLogicalShape,
            isReshapeFree: isReshapeFree,
            getWebGLMaxTextureSize: getWebGLMaxTextureSize,
            resetMaxTextureSize: resetMaxTextureSize,
            resetMaxTexturesInShader: resetMaxTexturesInShader,
            getMaxTexturesInShader: getMaxTexturesInShader,
            getWebGLDisjointQueryTimerVersion: getWebGLDisjointQueryTimerVersion,
            hasExtension: hasExtension,
            isWebGLVersionEnabled: isWebGLVersionEnabled,
            isCapableOfRenderingToFloatTexture: isCapableOfRenderingToFloatTexture,
            isDownloadFloatTextureEnabled: isDownloadFloatTextureEnabled,
            isWebGLFenceEnabled: isWebGLFenceEnabled,
            assertNotComplex: assertNotComplex
        };

        /**
         * @license
         * Copyright 2019 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var ENV = tf.env();
        /**
         * This file contains WebGL-specific flag registrations.
         */
        /**
         * True if WebGL is supported.
         */
        ENV.registerFlag('HAS_WEBGL', function () {
            return ENV.getNumber('WEBGL_VERSION') > 0;
        });
        /** 0: No WebGL, 1: WebGL 1.0, 2: WebGL 2.0. */
        ENV.registerFlag('WEBGL_VERSION', function () {
            if (isWebGLVersionEnabled(2)) {
                return 2;
            } else if (isWebGLVersionEnabled(1)) {
                return 1;
            }
            return 0;
        });
        /** Whether to check for numerical representation problems. */
        ENV.registerFlag('WEBGL_CHECK_NUMERICAL_PROBLEMS', function () {
            return false;
        });
        ENV.registerFlag('WEBGL_BUFFER_SUPPORTED', function () {
            return ENV.get('WEBGL_VERSION') === 2;
        });
        /** Whether the WebGL backend will sometimes forward ops to the CPU. */
        ENV.registerFlag('WEBGL_CPU_FORWARD', function () {
            return true;
        });
        /** Whether the WebGL backend will always use f16 textures for rendering. */
        ENV.registerFlag('WEBGL_FORCE_F16_TEXTURES', function () {
            return false;
        });
        /** Whether to turn all packing related flags on. */
        ENV.registerFlag('WEBGL_PACK', function () {
            return ENV.getBool('HAS_WEBGL');
        });
        /** Whether we will pack the batchnormalization op. */
        ENV.registerFlag('WEBGL_PACK_NORMALIZATION', function () {
            return ENV.getBool('WEBGL_PACK');
        });
        /** Whether we will pack the clip op. */
        ENV.registerFlag('WEBGL_PACK_CLIP', function () {
            return ENV.getBool('WEBGL_PACK');
        });
        /** Whether we will pack the depthwise conv op. */
        ENV.registerFlag('WEBGL_PACK_DEPTHWISECONV', function () {
            return ENV.getBool('WEBGL_PACK');
        });
        /** Whether we will pack binary ops. */
        ENV.registerFlag('WEBGL_PACK_BINARY_OPERATIONS', function () {
            return ENV.getBool('WEBGL_PACK');
        });
        /** Whether we will pack unary ops. */
        ENV.registerFlag('WEBGL_PACK_UNARY_OPERATIONS', function () {
            return ENV.getBool('WEBGL_PACK');
        });
        /** Whether we will pack array ops. */
        ENV.registerFlag('WEBGL_PACK_ARRAY_OPERATIONS', function () {
            return ENV.getBool('WEBGL_PACK');
        });
        /** Whether we will pack image ops. */
        ENV.registerFlag('WEBGL_PACK_IMAGE_OPERATIONS', function () {
            return ENV.getBool('WEBGL_PACK');
        });
        /** Whether we will pack reduce ops. */
        ENV.registerFlag('WEBGL_PACK_REDUCE', function () {
            return ENV.getBool('WEBGL_PACK');
        });
        /** Whether packed WebGL kernels lazily unpack their outputs. */
        ENV.registerFlag('WEBGL_LAZILY_UNPACK', function () {
            return ENV.getBool('WEBGL_PACK');
        });
        /** Whether we will use the im2col algorithm to speed up convolutions. */
        ENV.registerFlag('WEBGL_CONV_IM2COL', function () {
            return ENV.getBool('WEBGL_PACK');
        });
        /** The maximum texture dimension. */
        ENV.registerFlag('WEBGL_MAX_TEXTURE_SIZE', function () {
            return getWebGLMaxTextureSize(ENV.getNumber('WEBGL_VERSION'));
        });
        /** The maximum texture dimension. */
        ENV.registerFlag('WEBGL_MAX_TEXTURES_IN_SHADER', function () {
            return getMaxTexturesInShader(ENV.getNumber('WEBGL_VERSION'));
        });
        /**
         * The disjoint_query_timer extension version.
         * 0: disabled, 1: EXT_disjoint_timer_query, 2:
         * EXT_disjoint_timer_query_webgl2.
         * In Firefox with WebGL 2.0,
         * EXT_disjoint_timer_query_webgl2 is not available, so we must use the
         * WebGL 1.0 extension.
         */
        ENV.registerFlag('WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION', function () {
            var webGLVersion = ENV.getNumber('WEBGL_VERSION');
            if (webGLVersion === 0) {
                return 0;
            }
            return getWebGLDisjointQueryTimerVersion(webGLVersion);
        });
        /**
         * Whether the timer object from the disjoint_query_timer extension gives
         * timing information that is reliable.
         */
        ENV.registerFlag('WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE', function () {
            return ENV.getNumber('WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION') > 0 && !tf.device_util.isMobile();
        });
        /**
         * Whether the device is physically capable of rendering to float32 textures.
         */
        ENV.registerFlag('WEBGL_RENDER_FLOAT32_CAPABLE', function () {
            return isCapableOfRenderingToFloatTexture(ENV.getNumber('WEBGL_VERSION'));
        });
        /**
         * Whether rendering to float32 textures is enabled. If disabled, renders to
         * float16 textures.
         */
        ENV.registerFlag('WEBGL_RENDER_FLOAT32_ENABLED', function () {
            return ENV.getBool('WEBGL_FORCE_F16_TEXTURES') ? false : ENV.getBool('WEBGL_RENDER_FLOAT32_CAPABLE');
        });
        /**
         * Whether downloading float textures is enabled (16 or 32 bit). If disabled,
         * uses IEEE 754 encoding of the float32 values to 4 uint8 when downloading.
         */
        ENV.registerFlag('WEBGL_DOWNLOAD_FLOAT_ENABLED', function () {
            return isDownloadFloatTextureEnabled(ENV.getNumber('WEBGL_VERSION'));
        });
        /** Whether the fence API is available. */
        ENV.registerFlag('WEBGL_FENCE_API_ENABLED', function () {
            return isWebGLFenceEnabled(ENV.getNumber('WEBGL_VERSION'));
        });
        /**
         * Tensors with size <= than this will be uploaded as uniforms, not textures.
         */
        ENV.registerFlag('WEBGL_SIZE_UPLOAD_UNIFORM', function () {
            // Use uniform uploads only when 32bit floats are supported. In
            // 16bit
            // environments there are problems with comparing a 16bit texture value
            // with a 32bit uniform value.
            var useUniforms = ENV.getBool('WEBGL_RENDER_FLOAT32_ENABLED');
            return useUniforms ? 4 : 0;
        });
        /**
         * If the total number of bytes allocated on the GPU is greater than this
         * number, we will aggressively delete textures upon disposal with
         * gl.deleteMatrixTexture, rather than making them available for reuse.
         *
         * Default value -1 indicates that we will never aggressively delete textures.
         */
        ENV.registerFlag('WEBGL_DELETE_TEXTURE_THRESHOLD', function () {
            return -1;
        }, function (threshold) {
            if (threshold < 0 && threshold !== -1) {
                throw new Error("WEBGL_DELETE_TEXTURE_THRESHOLD must be -1 (indicating never " + "delete) or at least 0, but got ".concat(threshold, "."));
            }
        });
        /**
         * Trigger a manual GL command flush if the threshold of time has passed since
         * previous Kernel execution. This can be useful for Andorid device where GL
         * command flush are delayed un til the end of javascript task. This value is
         * measured in millisecond. Typically you want to set this value to close to 1.
         *
         * Default value 1 for mobile chrome, and -1 for rest cases. -1 indicates that
         * we will not enforce manual flush and depend on system default flush schedule.
         */
        ENV.registerFlag('WEBGL_FLUSH_THRESHOLD', function () {
            return tf.device_util.isMobile() ? 1 : -1;
        }, function (threshold) {
            if (threshold < 0 && threshold !== -1) {
                throw new Error("WEBGL_FLUSH_THRESHOLD must be -1 (indicating never " + "manual flush) or at least 0, but got ".concat(threshold, "."));
            }
        });
        /**
         * Threshold for input tensor size that determines whether WebGL backend will
         * delegate computation to CPU.
         *
         * Default value is 128.
         */
        ENV.registerFlag('CPU_HANDOFF_SIZE_THRESHOLD', function () {
            return 128;
        });
        /** Whether we will use shapes uniforms. */
        ENV.registerFlag('WEBGL_USE_SHAPES_UNIFORMS', function () {
            return false;
        });
        /**
         * Threshold for last dimension of input tensor that determines whether
         * WebGL backend for the Top K op will delegate computation to CPU. If input
         * is smaller than threshold then CPU will be used
         *
         * Default value is 100000.
         */
        ENV.registerFlag('TOPK_LAST_DIM_CPU_HANDOFF_SIZE_THRESHOLD', function () {
            return 100000;
        });
        /**
         * Threshold for K that determines whether
         * WebGL backend for the Top K op will delegate computation to CPU. If k
         * is larger than threshold then CPU will be used
         *
         * Default value is 128.
         */
        ENV.registerFlag('TOPK_K_CPU_HANDOFF_THRESHOLD', function () {
            return 128;
        });
        /** Whether we will use the experimental conv op. */
        ENV.registerFlag('WEBGL_EXP_CONV', function () {
            return false;
        });
        /**
         * If the device performance is low or if no hardware GPU is available, whether
         * software WebGL will be used.
         */
        ENV.registerFlag('SOFTWARE_WEBGL_ENABLED', function () {
            return ENV.getBool('IS_TEST');
        });
        /**
         * For narrow texture (physical height or physical width is 1), if the length of
         * any texture edges exceed the threshold, the texture will be reshaped to be
         * more squarish.
         *
         * This flag is used to help some GPUs that could not provide correct
         * interpolations for long skinny triangles. We found Mali GPU probably has this
         * problem: https://github.com/tensorflow/tfjs/issues/6775.
         */
        ENV.registerFlag('WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE', function () {
            return Infinity;
        });
        /**
         * If the flag is set to true, the max size of the narrow texture will be auto
         * computed and it will be considerred as a threshold to reshape the narrow
         * texture to be more squarish.
         *
         * This flag is used to help some GPUs that could not provide correct
         * interpolations for long skinny triangles. We found Mali GPU probably has this
         * problem: https://github.com/tensorflow/tfjs/issues/6775.
         */
        ENV.registerFlag('WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE', function () {
            return false;
        });
        /**
         * Whether to use the customized isnan. It's only useful for webgl2 since webgl1
         * doesn't have the builtin isnan.
         */
        ENV.registerFlag('WEBGL2_ISNAN_CUSTOM', function () {
            return false;
        });
        /** Experimental flag, whether enter compile only phase. */
        ENV.registerFlag('ENGINE_COMPILE_ONLY', function () {
            return false;
        });

        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function getGlslDifferences() {
            var version;
            var attribute;
            var varyingVs;
            var varyingFs;
            var texture2D;
            var output;
            var defineOutput;
            var defineSpecialNaN;
            var defineSpecialInf;
            var defineRound;
            if (tf.env().getNumber('WEBGL_VERSION') === 2) {
                version = '#version 300 es';
                attribute = 'in';
                varyingVs = 'out';
                varyingFs = 'in';
                texture2D = 'texture';
                output = 'outputColor';
                defineOutput = 'out vec4 outputColor;';
                // Use custom isnan definition to work across differences between
                // implementations on various platforms. While this should happen in ANGLE
                // we still see differences between android and windows (on chrome) when
                // using isnan directly. Since WebGL2 supports uint type and
                // floatBitsToUinT built-in function, we could implment isnan following
                // IEEE 754 rules.
                // NaN defination in IEEE 754-1985 is :
                //   - sign = either 0 or 1.
                //   - biased exponent = all 1 bits.
                //   - fraction = anything except all 0 bits (since all 0 bits represents
                //   infinity).
                // https://en.wikipedia.org/wiki/IEEE_754-1985#Representation_of_non-numbers
                defineSpecialNaN = tf.env().getBool('WEBGL2_ISNAN_CUSTOM') ? "\n      bool isnan_custom(float val) {\n        uint floatToUint = floatBitsToUint(val);\n        return (floatToUint & 0x7fffffffu) > 0x7f800000u;\n      }\n\n      bvec4 isnan_custom(vec4 val) {\n        return bvec4(isnan_custom(val.x),\n          isnan_custom(val.y), isnan_custom(val.z), isnan_custom(val.w));\n      }\n\n      #define isnan(value) isnan_custom(value)\n    " : '';
                // In webgl 2 we do not need to specify a custom isinf so there is no
                // need for a special INFINITY constant.
                defineSpecialInf = "";
                defineRound = "\n      #define round(value) newRound(value)\n      int newRound(float value) {\n        return int(floor(value + 0.5));\n      }\n\n      ivec4 newRound(vec4 value) {\n        return ivec4(floor(value + vec4(0.5)));\n      }\n    ";
            } else {
                version = '';
                attribute = 'attribute';
                varyingVs = 'varying';
                varyingFs = 'varying';
                texture2D = 'texture2D';
                output = 'gl_FragColor';
                defineOutput = '';
                // WebGL1 has no built in isnan so we define one here.
                defineSpecialNaN = "\n      #define isnan(value) isnan_custom(value)\n      bool isnan_custom(float val) {\n        return (val > 0. || val < 1. || val == 0.) ? false : true;\n      }\n      bvec4 isnan_custom(vec4 val) {\n        return bvec4(isnan(val.x), isnan(val.y), isnan(val.z), isnan(val.w));\n      }\n    ";
                defineSpecialInf = "\n      uniform float INFINITY;\n\n      bool isinf(float val) {\n        return abs(val) == INFINITY;\n      }\n      bvec4 isinf(vec4 val) {\n        return equal(abs(val), vec4(INFINITY));\n      }\n    ";
                defineRound = "\n      int round(float value) {\n        return int(floor(value + 0.5));\n      }\n\n      ivec4 round(vec4 value) {\n        return ivec4(floor(value + vec4(0.5)));\n      }\n    ";
            }
            return {
                version: version,
                attribute: attribute,
                varyingVs: varyingVs,
                varyingFs: varyingFs,
                texture2D: texture2D,
                output: output,
                defineOutput: defineOutput,
                defineSpecialNaN: defineSpecialNaN,
                defineSpecialInf: defineSpecialInf,
                defineRound: defineRound
            };
        }

        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        /**
         * Produces GLSL code that derives logical coordinates from a flat
         * index. The code performs integer division with each stride and decrements
         * the index until the index equals the final dimension coordinate.
         */
        function getLogicalCoordinatesFromFlatIndex(coords, shape, index) {
            if (index === void 0) {
                index = 'index';
            }
            var strides = tf.util.computeStrides(shape);
            return strides.map(function (stride, i) {
                var line1 = "int ".concat(coords[i], " = ").concat(index, " / ").concat(stride);
                var line2 = i === strides.length - 1 ? "int ".concat(coords[i + 1], " = ").concat(index, " - ").concat(coords[i], " * ").concat(stride) : "index -= ".concat(coords[i], " * ").concat(stride);
                return "".concat(line1, "; ").concat(line2, ";");
            }).join('');
        }
        function getOutputLogicalCoordinatesFromFlatIndexByUniform(coords, shape, index) {
            if (index === void 0) {
                index = 'index';
            }
            var strides = tf.util.computeStrides(shape);
            return strides.map(function (_, i) {
                var line1 = "int ".concat(coords[i], " = ").concat(index, " / outShapeStrides[").concat(i, "]");
                var line2 = i === strides.length - 1 ? "int ".concat(coords[i + 1], " = ").concat(index, " - ").concat(coords[i], " * outShapeStrides[").concat(i, "]") : "index -= ".concat(coords[i], " * outShapeStrides[").concat(i, "]");
                return "".concat(line1, "; ").concat(line2, ";");
            }).join('');
        }
        // Produces GLSL code that computes strides.
        function symbolicallyComputeStrides(indicesArr, variableName) {
            var numCoords = indicesArr.length;
            var shape = indicesArr.map(function (d) {
                return "".concat(variableName, "[").concat(d, "]");
            });
            var strides = new Array(numCoords - 1);
            strides[numCoords - 2] = shape[numCoords - 1];
            for (var i = numCoords - 3; i >= 0; --i) {
                strides[i] = "(".concat(strides[i + 1], " * ").concat(shape[i + 1], ")");
            }
            return strides;
        }
        function getLogicalCoordinatesFromFlatIndexByUniform(coords, variableName, index) {
            if (index === void 0) {
                index = 'index';
            }
            var indicesArray = coords.map(function (_, i) {
                return i;
            });
            var strides = symbolicallyComputeStrides(indicesArray, variableName);
            return strides.map(function (_, i) {
                var line1 = "int ".concat(coords[i], " = ").concat(index, " / ").concat(strides[i]);
                var line2 = i === strides.length - 1 ? "int ".concat(coords[i + 1], " = ").concat(index, " - ").concat(coords[i], " * ").concat(strides[i]) : "index -= ".concat(coords[i], " * ").concat(strides[i]);
                return "".concat(line1, "; ").concat(line2, ";");
            }).join('');
        }
        /**
         * Produces GLSL that computes the flat index from 3D coordinates.
         */
        function getFlatIndexFrom3D(shape) {
            var strides = tf.util.computeStrides(shape).map(function (d) {
                return d.toString();
            });
            return "\n  int getFlatIndex(ivec3 coords) {\n    return coords.x * ".concat(strides[0], " + coords.y * ").concat(strides[1], " + coords.z;\n  }\n");
        }
        function getFlatIndexFrom3DOutput() {
            return "\n  int getFlatIndex(ivec3 coords) {\n    return coords.x * outShapeStrides[0] + coords.y * outShapeStrides[1] + coords.z;\n  }\n";
        }
        var ENCODE_FLOAT_SNIPPET = "\n  const float FLOAT_MAX = 1.70141184e38;\n  const float FLOAT_MIN = 1.17549435e-38;\n\n  lowp vec4 encode_float(highp float v) {\n    if (isnan(v)) {\n      return vec4(255, 255, 255, 255);\n    }\n\n    highp float av = abs(v);\n\n    if(av < FLOAT_MIN) {\n      return vec4(0.0, 0.0, 0.0, 0.0);\n    } else if(v > FLOAT_MAX) {\n      return vec4(0.0, 0.0, 128.0, 127.0) / 255.0;\n    } else if(v < -FLOAT_MAX) {\n      return vec4(0.0, 0.0,  128.0, 255.0) / 255.0;\n    }\n\n    highp vec4 c = vec4(0,0,0,0);\n\n    highp float e = floor(log2(av));\n    highp float m = exp2(fract(log2(av))) - 1.0;\n\n    c[2] = floor(128.0 * m);\n    m -= c[2] / 128.0;\n    c[1] = floor(32768.0 * m);\n    m -= c[1] / 32768.0;\n    c[0] = floor(8388608.0 * m);\n\n    highp float ebias = e + 127.0;\n    c[3] = floor(ebias / 2.0);\n    ebias -= c[3] * 2.0;\n    c[2] += floor(ebias) * 128.0;\n\n    c[3] += 128.0 * step(0.0, -v);\n\n    return c / 255.0;\n  }\n";

        var getBroadcastDims = tf.backend_util.getBroadcastDims;
        function makeShader(inputsInfo, outputShape, program) {
            var prefixSnippets = [];
            inputsInfo.forEach(function (x) {
                var size = tf.util.sizeFromShape(x.shapeInfo.logicalShape);
                // Snippet when we decided to upload the values as uniform.
                if (x.shapeInfo.isUniform) {
                    prefixSnippets.push("uniform float ".concat(x.name).concat(size > 1 ? "[".concat(size, "]") : '', ";"));
                } else {
                    prefixSnippets.push("uniform sampler2D ".concat(x.name, ";"));
                    prefixSnippets.push("uniform int offset".concat(x.name, ";"));
                }
                if (program.enableShapeUniforms) {
                    var uniformShape = getUniformInfoFromShape(program.packedInputs, x.shapeInfo.logicalShape, x.shapeInfo.texShape).uniformShape;
                    switch (uniformShape.length) {
                        case 1:
                            prefixSnippets.push("uniform int ".concat(x.name, "Shape;"));
                            break;
                        case 2:
                            prefixSnippets.push("uniform ivec2 ".concat(x.name, "Shape;"));
                            break;
                        case 3:
                            prefixSnippets.push("uniform ivec3 ".concat(x.name, "Shape;"));
                            break;
                        case 4:
                            prefixSnippets.push("uniform ivec4 ".concat(x.name, "Shape;"));
                            break;
                    }
                    prefixSnippets.push("uniform ivec2 ".concat(x.name, "TexShape;"));
                }
            });
            if (program.enableShapeUniforms) {
                switch (outputShape.logicalShape.length) {
                    case 1:
                        prefixSnippets.push("uniform int outShape;");
                        break;
                    case 2:
                        prefixSnippets.push("uniform ivec2 outShape;");
                        prefixSnippets.push("uniform int outShapeStrides;");
                        break;
                    case 3:
                        prefixSnippets.push("uniform ivec3 outShape;");
                        prefixSnippets.push("uniform ivec2 outShapeStrides;");
                        break;
                    case 4:
                        prefixSnippets.push("uniform ivec4 outShape;");
                        prefixSnippets.push("uniform ivec3 outShapeStrides;");
                        break;
                }
                prefixSnippets.push("uniform ivec2 outTexShape;");
            }
            if (program.customUniforms) {
                program.customUniforms.forEach(function (d) {
                    prefixSnippets.push("uniform ".concat(d.type, " ").concat(d.name).concat(d.arrayIndex ? "[".concat(d.arrayIndex, "]") : '', ";"));
                });
            }
            var inputPrefixSnippet = prefixSnippets.join('\n');
            var inputSamplingSnippet = inputsInfo.map(function (x) {
                return getInputSamplingSnippet(x, outputShape, program.packedInputs, program.enableShapeUniforms);
            }).join('\n');
            var outTexShape = outputShape.texShape;
            var glsl = getGlslDifferences();
            var floatTextureSampleSnippet = getFloatTextureSampleSnippet(glsl);
            var outputSamplingSnippet;
            var floatTextureSetOutputSnippet;
            var shaderPrefix = getShaderPrefix(glsl);
            if (outputShape.isPacked) {
                outputSamplingSnippet = getPackedOutputSamplingSnippet(outputShape.logicalShape, outTexShape, program.enableShapeUniforms);
                floatTextureSetOutputSnippet = getFloatTextureSetRGBASnippet(glsl);
            } else {
                outputSamplingSnippet = getOutputSamplingSnippet(outputShape.logicalShape, outTexShape, program.enableShapeUniforms);
                floatTextureSetOutputSnippet = getFloatTextureSetRSnippet(glsl);
            }
            if (program.packedInputs) {
                shaderPrefix += SHADER_PACKED_PREFIX;
            }
            var source = [shaderPrefix, floatTextureSampleSnippet, floatTextureSetOutputSnippet, inputPrefixSnippet, outputSamplingSnippet, inputSamplingSnippet, program.userCode].join('\n');
            return source;
        }
        function getSamplerFromInInfo(inInfo, enableShapeUniforms) {
            if (enableShapeUniforms === void 0) {
                enableShapeUniforms = false;
            }
            var shape = inInfo.shapeInfo.logicalShape;
            switch (shape.length) {
                case 0:
                    return getSamplerScalar(inInfo, enableShapeUniforms);
                case 1:
                    return getSampler1D(inInfo, enableShapeUniforms);
                case 2:
                    return getSampler2D(inInfo, enableShapeUniforms);
                case 3:
                    return getSampler3D(inInfo, enableShapeUniforms);
                case 4:
                    return getSampler4D(inInfo, enableShapeUniforms);
                case 5:
                    return getSampler5D(inInfo);
                case 6:
                    return getSampler6D(inInfo);
                default:
                    throw new Error("".concat(shape.length, "-D input sampling") + " is not yet supported");
            }
        }
        function getPackedSamplerFromInInfo(inInfo, enableShapeUniforms) {
            var shape = inInfo.shapeInfo.logicalShape;
            switch (shape.length) {
                case 0:
                    return getPackedSamplerScalar(inInfo);
                case 1:
                    return getPackedSampler1D(inInfo, enableShapeUniforms);
                case 2:
                    return getPackedSampler2D(inInfo, enableShapeUniforms);
                case 3:
                    return getPackedSampler3D(inInfo, enableShapeUniforms);
                default:
                    return getPackedSamplerND(inInfo, enableShapeUniforms);
            }
        }
        function getInputSamplingSnippet(inInfo, outShapeInfo, usesPackedTextures, enableShapeUniforms) {
            if (usesPackedTextures === void 0) {
                usesPackedTextures = false;
            }
            var res = '';
            if (usesPackedTextures) {
                res += getPackedSamplerFromInInfo(inInfo, enableShapeUniforms);
            } else {
                res += getSamplerFromInInfo(inInfo, enableShapeUniforms);
            }
            var inShape = inInfo.shapeInfo.logicalShape;
            var outShape = outShapeInfo.logicalShape;
            if (inShape.length <= outShape.length) {
                if (usesPackedTextures) {
                    res += getPackedSamplerAtOutputCoords(inInfo, outShapeInfo);
                } else {
                    res += getSamplerAtOutputCoords(inInfo, outShapeInfo);
                }
            }
            return res;
        }
        function getPackedOutputSamplingSnippet(outShape, outTexShape, enableShapeUniforms) {
            switch (outShape.length) {
                case 0:
                    return getOutputScalarCoords();
                case 1:
                    return getOutputPacked1DCoords(outShape, outTexShape, enableShapeUniforms);
                case 2:
                    return getOutputPacked2DCoords(outShape, outTexShape, enableShapeUniforms);
                case 3:
                    return getOutputPacked3DCoords(outShape, outTexShape, enableShapeUniforms);
                default:
                    return getOutputPackedNDCoords(outShape, outTexShape, enableShapeUniforms);
            }
        }
        function getOutputSamplingSnippet(outShape, outTexShape, enableShapeUniforms) {
            switch (outShape.length) {
                case 0:
                    return getOutputScalarCoords();
                case 1:
                    return getOutput1DCoords(outShape, outTexShape, enableShapeUniforms);
                case 2:
                    return getOutput2DCoords(outShape, outTexShape, enableShapeUniforms);
                case 3:
                    return getOutput3DCoords(outShape, outTexShape, enableShapeUniforms);
                case 4:
                    return getOutput4DCoords(outShape, outTexShape, enableShapeUniforms);
                case 5:
                    return getOutput5DCoords(outShape, outTexShape);
                case 6:
                    return getOutput6DCoords(outShape, outTexShape);
                default:
                    throw new Error("".concat(outShape.length, "-D output sampling is not yet supported"));
            }
        }
        function getFloatTextureSampleSnippet(glsl) {
            return "\n    float sampleTexture(sampler2D textureSampler, vec2 uv) {\n      return ".concat(glsl.texture2D, "(textureSampler, uv).r;\n    }\n  ");
        }
        function getFloatTextureSetRSnippet(glsl) {
            return "\n    void setOutput(float val) {\n      ".concat(glsl.output, " = vec4(val, 0, 0, 0);\n    }\n  ");
        }
        function getFloatTextureSetRGBASnippet(glsl) {
            return "\n    void setOutput(vec4 val) {\n      ".concat(glsl.output, " = val;\n    }\n  ");
        }
        function getShaderPrefix(glsl) {
            var SHADER_PREFIX = "".concat(glsl.version, "\n    precision highp float;\n    precision highp int;\n    precision highp sampler2D;\n    ").concat(glsl.varyingFs, " vec2 resultUV;\n    ").concat(glsl.defineOutput, "\n    const vec2 halfCR = vec2(0.5, 0.5);\n\n    struct ivec5\n    {\n      int x;\n      int y;\n      int z;\n      int w;\n      int u;\n    };\n\n    struct ivec6\n    {\n      int x;\n      int y;\n      int z;\n      int w;\n      int u;\n      int v;\n    };\n\n    uniform float NAN;\n    ").concat(glsl.defineSpecialNaN, "\n    ").concat(glsl.defineSpecialInf, "\n    ").concat(glsl.defineRound, "\n\n    int imod(int x, int y) {\n      return x - y * (x / y);\n    }\n\n    int idiv(int a, int b, float sign) {\n      int res = a / b;\n      int mod = imod(a, b);\n      if (sign < 0. && mod != 0) {\n        res -= 1;\n      }\n      return res;\n    }\n\n    //Based on the work of Dave Hoskins\n    //https://www.shadertoy.com/view/4djSRW\n    #define HASHSCALE1 443.8975\n    float random(float seed){\n      vec2 p = resultUV * seed;\n      vec3 p3  = fract(vec3(p.xyx) * HASHSCALE1);\n      p3 += dot(p3, p3.yzx + 19.19);\n      return fract((p3.x + p3.y) * p3.z);\n    }\n\n    ").concat(SAMPLE_1D_SNIPPET, "\n    ").concat(SAMPLE_2D_SNIPPET, "\n    ").concat(SAMPLE_3D_SNIPPET, "\n  ");
            return SHADER_PREFIX;
        }
        var SAMPLE_1D_SNIPPET = "\nvec2 uvFromFlat(int texNumR, int texNumC, int index) {\n  int texR = index / texNumC;\n  int texC = index - texR * texNumC;\n  return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\n}\nvec2 packedUVfrom1D(int texNumR, int texNumC, int index) {\n  int texelIndex = index / 2;\n  int texR = texelIndex / texNumC;\n  int texC = texelIndex - texR * texNumC;\n  return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\n}\n";
        var SAMPLE_2D_SNIPPET = "\nvec2 packedUVfrom2D(int texelsInLogicalRow, int texNumR,\n  int texNumC, int row, int col) {\n  int texelIndex = (row / 2) * texelsInLogicalRow + (col / 2);\n  int texR = texelIndex / texNumC;\n  int texC = texelIndex - texR * texNumC;\n  return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\n}\n";
        var SAMPLE_3D_SNIPPET = "\nvec2 packedUVfrom3D(int texNumR, int texNumC,\n    int texelsInBatch, int texelsInLogicalRow, int b,\n    int row, int col) {\n  int index = b * texelsInBatch + (row / 2) * texelsInLogicalRow + (col / 2);\n  int texR = index / texNumC;\n  int texC = index - texR * texNumC;\n  return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\n}\n";
        var SHADER_PACKED_PREFIX = "\n  float getChannel(vec4 frag, vec2 innerDims) {\n    vec2 modCoord = mod(innerDims, 2.);\n    return modCoord.x == 0. ?\n      (modCoord.y == 0. ? frag.r : frag.g) :\n      (modCoord.y == 0. ? frag.b : frag.a);\n  }\n  float getChannel(vec4 frag, int dim) {\n    float modCoord = mod(float(dim), 2.);\n    return modCoord == 0. ? frag.r : frag.g;\n  }\n";
        function getOutputScalarCoords() {
            return "\n    int getOutputCoords() {\n      return 0;\n    }\n  ";
        }
        function getOutputPacked1DCoords(shape, texShape, enableShapeUniforms) {
            var packedTexShape = [Math.ceil(texShape[0] / 2), Math.ceil(texShape[1] / 2)];
            if (packedTexShape[0] === 1) {
                if (enableShapeUniforms) {
                    return "\n      int getOutputCoords() {\n        return 2 * int(resultUV.x * ceil(float(outTexShape[1]) / 2.0));\n      }\n    ";
                }
                return "\n      int getOutputCoords() {\n        return 2 * int(resultUV.x * ".concat(packedTexShape[1], ".0);\n      }\n    ");
            }
            if (packedTexShape[1] === 1) {
                if (enableShapeUniforms) {
                    return "\n      int getOutputCoords() {\n        return 2 * int(resultUV.y * ceil(float(outTexShape[0]) / 2.0));\n      }\n    ";
                }
                return "\n      int getOutputCoords() {\n        return 2 * int(resultUV.y * ".concat(packedTexShape[0], ".0);\n      }\n    ");
            }
            if (enableShapeUniforms) {
                return "\n    int getOutputCoords() {\n      ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0));\n      ivec2 resTexRC = ivec2(resultUV.yx *\n                             vec2(packedTexShape[0], packedTexShape[1]));\n      return 2 * (resTexRC.x * packedTexShape[1] + resTexRC.y);\n    }\n  ";
            }
            return "\n    int getOutputCoords() {\n      ivec2 resTexRC = ivec2(resultUV.yx *\n                             vec2(".concat(packedTexShape[0], ", ").concat(packedTexShape[1], "));\n      return 2 * (resTexRC.x * ").concat(packedTexShape[1], " + resTexRC.y);\n    }\n  ");
        }
        function getOutput1DCoords(shape, texShape, enableShapeUniforms) {
            if (texShape[0] === 1) {
                if (enableShapeUniforms) {
                    return "\n      int getOutputCoords() {\n        return int(resultUV.x * float(outTexShape[1]));\n      }\n    ";
                }
                return "\n      int getOutputCoords() {\n        return int(resultUV.x * ".concat(texShape[1], ".0);\n      }\n    ");
            }
            if (texShape[1] === 1) {
                if (enableShapeUniforms) {
                    return "\n      int getOutputCoords() {\n        return int(resultUV.y * float(outTexShape[0]));\n      }\n    ";
                }
                return "\n      int getOutputCoords() {\n        return int(resultUV.y * ".concat(texShape[0], ".0);\n      }\n    ");
            }
            if (enableShapeUniforms) {
                return "\n    int getOutputCoords() {\n      ivec2 resTexRC = ivec2(resultUV.yx *\n                             vec2(outTexShape[0], outTexShape[1]));\n      return resTexRC.x * outTexShape[1] + resTexRC.y;\n    }\n  ";
            }
            return "\n    int getOutputCoords() {\n      ivec2 resTexRC = ivec2(resultUV.yx *\n                             vec2(".concat(texShape[0], ", ").concat(texShape[1], "));\n      return resTexRC.x * ").concat(texShape[1], " + resTexRC.y;\n    }\n  ");
        }
        function getOutputPacked3DCoords(shape, texShape, enableShapeUniforms) {
            if (enableShapeUniforms) {
                return "\n    ivec3 getOutputCoords() {\n      ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0));\n      int texelsInLogicalRow = int(ceil(float(outShape[2]) / 2.0));\n      int texelsInBatch = texelsInLogicalRow * int(ceil(float(outShape[1]) / 2.0));\n      ivec2 resTexRC = ivec2(resultUV.yx *\n                             vec2(packedTexShape[0], packedTexShape[1]));\n      int index = resTexRC.x * packedTexShape[1] + resTexRC.y;\n\n      int b = index / texelsInBatch;\n      index -= b * texelsInBatch;\n\n      int r = 2 * (index / texelsInLogicalRow);\n      int c = imod(index, texelsInLogicalRow) * 2;\n\n      return ivec3(b, r, c);\n    }\n  ";
            }
            var packedTexShape = [Math.ceil(texShape[0] / 2), Math.ceil(texShape[1] / 2)];
            var texelsInLogicalRow = Math.ceil(shape[2] / 2);
            var texelsInBatch = texelsInLogicalRow * Math.ceil(shape[1] / 2);
            return "\n    ivec3 getOutputCoords() {\n      ivec2 resTexRC = ivec2(resultUV.yx *\n                             vec2(".concat(packedTexShape[0], ", ").concat(packedTexShape[1], "));\n      int index = resTexRC.x * ").concat(packedTexShape[1], " + resTexRC.y;\n\n      int b = index / ").concat(texelsInBatch, ";\n      index -= b * ").concat(texelsInBatch, ";\n\n      int r = 2 * (index / ").concat(texelsInLogicalRow, ");\n      int c = imod(index, ").concat(texelsInLogicalRow, ") * 2;\n\n      return ivec3(b, r, c);\n    }\n  ");
        }
        function getOutput3DCoords(shape, texShape, enableShapeUniforms) {
            if (enableShapeUniforms) {
                var coordsFromIndexSnippet_1 = getOutputLogicalCoordinatesFromFlatIndexByUniform(['r', 'c', 'd'], shape);
                return "\n  ivec3 getOutputCoords() {\n    ivec2 resTexRC = ivec2(resultUV.yx *\n                           vec2(outTexShape[0], outTexShape[1]));\n    int index = resTexRC.x * outTexShape[1] + resTexRC.y;\n    ".concat(coordsFromIndexSnippet_1, "\n    return ivec3(r, c, d);\n  }\n");
            }
            var coordsFromIndexSnippet = getLogicalCoordinatesFromFlatIndex(['r', 'c', 'd'], shape);
            return "\n    ivec3 getOutputCoords() {\n      ivec2 resTexRC = ivec2(resultUV.yx *\n                             vec2(".concat(texShape[0], ", ").concat(texShape[1], "));\n      int index = resTexRC.x * ").concat(texShape[1], " + resTexRC.y;\n      ").concat(coordsFromIndexSnippet, "\n      return ivec3(r, c, d);\n    }\n  ");
        }
        function getOutputPackedNDCoords(shape, texShape, enableShapeUniforms) {
            if (enableShapeUniforms) {
                // TODO: support 5d and 6d
                return "\n    ivec4 getOutputCoords() {\n      ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0));\n      ivec2 resTexRC = ivec2(resultUV.yx *\n                             vec2(packedTexShape[0], packedTexShape[1]));\n      int index = resTexRC.x * packedTexShape[1] + resTexRC.y;\n\n      int texelsInLogicalRow = int(ceil(float(outShape[3]) / 2.0));\n      int texelsInBatch = texelsInLogicalRow * int(ceil(float(outShape[2]) / 2.0));\n      int texelsInBatchN = texelsInBatch * outShape[1];\n\n      int b2 = index / texelsInBatchN;\n      index -= b2 * texelsInBatchN;\n\n      int b = index / texelsInBatch;\n      index -= b * texelsInBatch;\n\n      int r = 2 * (index / texelsInLogicalRow);\n      int c = imod(index, texelsInLogicalRow) * 2;\n\n      return ivec4(b2, b, r, c);\n    }\n  ";
            }
            var packedTexShape = [Math.ceil(texShape[0] / 2), Math.ceil(texShape[1] / 2)];
            var texelsInLogicalRow = Math.ceil(shape[shape.length - 1] / 2);
            var texelsInBatch = texelsInLogicalRow * Math.ceil(shape[shape.length - 2] / 2);
            var texelsInBatchN = texelsInBatch;
            var batches = "";
            var coords = 'b, r, c';
            for (var b = 2; b < shape.length - 1; b++) {
                texelsInBatchN *= shape[shape.length - b - 1];
                batches = "\n      int b".concat(b, " = index / ").concat(texelsInBatchN, ";\n      index -= b").concat(b, " * ").concat(texelsInBatchN, ";\n    ") + batches;
                coords = "b".concat(b, ", ") + coords;
            }
            return "\n    ivec".concat(shape.length, " getOutputCoords() {\n      ivec2 resTexRC = ivec2(resultUV.yx *\n                             vec2(").concat(packedTexShape[0], ", ").concat(packedTexShape[1], "));\n      int index = resTexRC.x * ").concat(packedTexShape[1], " + resTexRC.y;\n\n      ").concat(batches, "\n\n      int b = index / ").concat(texelsInBatch, ";\n      index -= b * ").concat(texelsInBatch, ";\n\n      int r = 2 * (index / ").concat(texelsInLogicalRow, ");\n      int c = imod(index, ").concat(texelsInLogicalRow, ") * 2;\n\n      return ivec").concat(shape.length, "(").concat(coords, ");\n    }\n  ");
        }
        function getOutput4DCoords(shape, texShape, enableShapeUniforms) {
            if (enableShapeUniforms) {
                var coordsFromIndexSnippet_2 = getOutputLogicalCoordinatesFromFlatIndexByUniform(['r', 'c', 'd', 'd2'], shape);
                return "\n    ivec4 getOutputCoords() {\n      ivec2 resTexRC = ivec2(resultUV.yx *\n        vec2(outTexShape[0], outTexShape[1]));\n      int index = resTexRC.x * outTexShape[1] + resTexRC.y;\n      ".concat(coordsFromIndexSnippet_2, "\n      return ivec4(r, c, d, d2);\n    }\n  ");
            }
            var coordsFromIndexSnippet = getLogicalCoordinatesFromFlatIndex(['r', 'c', 'd', 'd2'], shape);
            return "\n    ivec4 getOutputCoords() {\n      ivec2 resTexRC = ivec2(resultUV.yx *\n        vec2(".concat(texShape[0], ", ").concat(texShape[1], "));\n      int index = resTexRC.x * ").concat(texShape[1], " + resTexRC.y;\n      ").concat(coordsFromIndexSnippet, "\n      return ivec4(r, c, d, d2);\n    }\n  ");
        }
        function getOutput5DCoords(shape, texShape) {
            var coordsFromIndexSnippet = getLogicalCoordinatesFromFlatIndex(['r', 'c', 'd', 'd2', 'd3'], shape);
            return "\n    ivec5 getOutputCoords() {\n      ivec2 resTexRC = ivec2(resultUV.yx * vec2(".concat(texShape[0], ",\n                             ").concat(texShape[1], "));\n\n      int index = resTexRC.x * ").concat(texShape[1], " + resTexRC.y;\n\n      ").concat(coordsFromIndexSnippet, "\n\n      ivec5 outShape = ivec5(r, c, d, d2, d3);\n      return outShape;\n    }\n  ");
        }
        function getOutput6DCoords(shape, texShape) {
            var coordsFromIndexSnippet = getLogicalCoordinatesFromFlatIndex(['r', 'c', 'd', 'd2', 'd3', 'd4'], shape);
            return "\n    ivec6 getOutputCoords() {\n      ivec2 resTexRC = ivec2(resultUV.yx *\n        vec2(".concat(texShape[0], ", ").concat(texShape[1], "));\n      int index = resTexRC.x * ").concat(texShape[1], " + resTexRC.y;\n\n      ").concat(coordsFromIndexSnippet, "\n\n      ivec6 result = ivec6(r, c, d, d2, d3, d4);\n      return result;\n    }\n  ");
        }
        function getOutputPacked2DCoords(shape, texShape, enableShapeUniforms) {
            var packedTexShape = [Math.ceil(texShape[0] / 2), Math.ceil(texShape[1] / 2)];
            if (tf.util.arraysEqual(shape, texShape)) {
                if (enableShapeUniforms) {
                    return "\n      ivec2 getOutputCoords() {\n        ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0));\n        return 2 * ivec2(resultUV.yx * vec2(packedTexShape[0], packedTexShape[1]));\n      }\n    ";
                }
                return "\n      ivec2 getOutputCoords() {\n        return 2 * ivec2(resultUV.yx * vec2(".concat(packedTexShape[0], ", ").concat(packedTexShape[1], "));\n      }\n    ");
            }
            // texels needed to accommodate a logical row
            var texelsInLogicalRow = Math.ceil(shape[1] / 2);
            /**
             * getOutputCoords
             *
             * resTexRC: The rows and columns of the texels. If you move over one
             * texel to the right in the packed texture, you are moving over one column
             * (not two).
             *
             * index: The texel index
             */
            if (enableShapeUniforms) {
                return "\n    ivec2 getOutputCoords() {\n      ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0));\n      int texelsInLogicalRow = int(ceil(float(outShape[1]) / 2.0));\n      ivec2 resTexRC = ivec2(resultUV.yx *\n                             vec2(packedTexShape[0], packedTexShape[1]));\n\n      int index = resTexRC.x * packedTexShape[1] + resTexRC.y;\n      int r = 2 * (index / texelsInLogicalRow);\n      int c = imod(index, texelsInLogicalRow) * 2;\n\n      return ivec2(r, c);\n    }\n  ";
            }
            return "\n    ivec2 getOutputCoords() {\n      ivec2 resTexRC = ivec2(resultUV.yx *\n                             vec2(".concat(packedTexShape[0], ", ").concat(packedTexShape[1], "));\n\n      int index = resTexRC.x * ").concat(packedTexShape[1], " + resTexRC.y;\n      int r = 2 * (index / ").concat(texelsInLogicalRow, ");\n      int c = imod(index, ").concat(texelsInLogicalRow, ") * 2;\n\n      return ivec2(r, c);\n    }\n  ");
        }
        function getOutput2DCoords(shape, texShape, enableShapeUniforms) {
            if (tf.util.arraysEqual(shape, texShape)) {
                if (enableShapeUniforms) {
                    return "\n      ivec2 getOutputCoords() {\n        return ivec2(resultUV.yx * vec2(outTexShape[0], outTexShape[1]));\n      }\n    ";
                }
                return "\n      ivec2 getOutputCoords() {\n        return ivec2(resultUV.yx * vec2(".concat(texShape[0], ", ").concat(texShape[1], "));\n      }\n    ");
            }
            if (shape[1] === 1) {
                if (enableShapeUniforms) {
                    return "\n      ivec2 getOutputCoords() {\n        ivec2 resTexRC = ivec2(resultUV.yx *\n                               vec2(outTexShape[0], outTexShape[1]));\n        int index = resTexRC.x * outTexShape[1] + resTexRC.y;\n        return ivec2(index, 0);\n      }\n    ";
                }
                return "\n      ivec2 getOutputCoords() {\n        ivec2 resTexRC = ivec2(resultUV.yx *\n                               vec2(".concat(texShape[0], ", ").concat(texShape[1], "));\n        int index = resTexRC.x * ").concat(texShape[1], " + resTexRC.y;\n        return ivec2(index, 0);\n      }\n    ");
            }
            if (shape[0] === 1) {
                if (enableShapeUniforms) {
                    return "\n      ivec2 getOutputCoords() {\n        ivec2 resTexRC = ivec2(resultUV.yx *\n                               vec2(outTexShape[0], outTexShape[1]));\n        int index = resTexRC.x * outTexShape[1] + resTexRC.y;\n        return ivec2(0, index);\n      }\n    ";
                }
                return "\n      ivec2 getOutputCoords() {\n        ivec2 resTexRC = ivec2(resultUV.yx *\n                               vec2(".concat(texShape[0], ", ").concat(texShape[1], "));\n        int index = resTexRC.x * ").concat(texShape[1], " + resTexRC.y;\n        return ivec2(0, index);\n      }\n    ");
            }
            if (enableShapeUniforms) {
                return "\n    ivec2 getOutputCoords() {\n      ivec2 resTexRC = ivec2(resultUV.yx *\n                             vec2(outTexShape[0], outTexShape[1]));\n      int index = resTexRC.x * outTexShape[1] + resTexRC.y;\n      int r = index / outShape[1];\n      int c = index - r * outShape[1];\n      return ivec2(r, c);\n    }\n  ";
            }
            return "\n    ivec2 getOutputCoords() {\n      ivec2 resTexRC = ivec2(resultUV.yx *\n                             vec2(".concat(texShape[0], ", ").concat(texShape[1], "));\n      int index = resTexRC.x * ").concat(texShape[1], " + resTexRC.y;\n      int r = index / ").concat(shape[1], ";\n      int c = index - r * ").concat(shape[1], ";\n      return ivec2(r, c);\n    }\n  ");
        }
        function getFlatOffsetUniformName(texName) {
            return "offset".concat(texName);
        }
        function getPackedSamplerScalar(inputInfo) {
            var texName = inputInfo.name;
            var funcName = 'get' + texName.charAt(0).toUpperCase() + texName.slice(1);
            var glsl = getGlslDifferences();
            return "\n    vec4 ".concat(funcName, "() {\n      return ").concat(glsl.texture2D, "(").concat(texName, ", halfCR);\n    }\n  ");
        }
        function getSamplerScalar(inputInfo, enableShapeUniforms) {
            var texName = inputInfo.name;
            var funcName = 'get' + texName.charAt(0).toUpperCase() + texName.slice(1);
            if (inputInfo.shapeInfo.isUniform) {
                return "float ".concat(funcName, "() {return ").concat(texName, ";}");
            }
            var _a = __read(inputInfo.shapeInfo.texShape, 2)
                , texNumR = _a[0]
                , texNumC = _a[1];
            if (texNumR === 1 && texNumC === 1) {
                return "\n      float ".concat(funcName, "() {\n        return sampleTexture(").concat(texName, ", halfCR);\n      }\n    ");
            }
            var offset = getFlatOffsetUniformName(texName);
            if (enableShapeUniforms) {
                return "\n    float ".concat(funcName, "() {\n      vec2 uv = uvFromFlat(").concat(texName, "TexShape[0], ").concat(texName, "TexShape[1], ").concat(offset, ");\n      return sampleTexture(").concat(texName, ", uv);\n    }\n  ");
            }
            var _b = __read(inputInfo.shapeInfo.texShape, 2)
                , tNumR = _b[0]
                , tNumC = _b[1];
            return "\n    float ".concat(funcName, "() {\n      vec2 uv = uvFromFlat(").concat(tNumR, ", ").concat(tNumC, ", ").concat(offset, ");\n      return sampleTexture(").concat(texName, ", uv);\n    }\n  ");
        }
        function getPackedSampler1D(inputInfo, enableShapeUniforms) {
            var texName = inputInfo.name;
            var funcName = 'get' + texName.charAt(0).toUpperCase() + texName.slice(1);
            var texShape = inputInfo.shapeInfo.texShape;
            var glsl = getGlslDifferences();
            if (enableShapeUniforms) {
                return "\n    vec4 ".concat(funcName, "(int index) {\n      ivec2 packedTexShape = ivec2(ceil(float(").concat(texName, "TexShape[0]) / 2.0), ceil(float(").concat(texName, "TexShape[1]) / 2.0));\n      vec2 uv = packedUVfrom1D(\n        packedTexShape[0], packedTexShape[1], index);\n      return ").concat(glsl.texture2D, "(").concat(texName, ", uv);\n    }\n  ");
            }
            var packedTexShape = [Math.ceil(texShape[0] / 2), Math.ceil(texShape[1] / 2)];
            return "\n    vec4 ".concat(funcName, "(int index) {\n      vec2 uv = packedUVfrom1D(\n        ").concat(packedTexShape[0], ", ").concat(packedTexShape[1], ", index);\n      return ").concat(glsl.texture2D, "(").concat(texName, ", uv);\n    }\n  ");
        }
        function getSampler1D(inputInfo, enableShapeUniforms) {
            var texName = inputInfo.name;
            var funcName = 'get' + texName.charAt(0).toUpperCase() + texName.slice(1);
            if (inputInfo.shapeInfo.isUniform) {
                // Uniform arrays will be less than 65505 (no risk of float16 overflow).
                return "\n      float ".concat(funcName, "(int index) {\n        ").concat(getUniformSampler(inputInfo), "\n      }\n    ");
            }
            var texShape = inputInfo.shapeInfo.texShape;
            var tNumR = texShape[0];
            var tNumC = texShape[1];
            if (tNumC === 1 && tNumR === 1) {
                return "\n      float ".concat(funcName, "(int index) {\n        return sampleTexture(").concat(texName, ", halfCR);\n      }\n    ");
            }
            var offset = getFlatOffsetUniformName(texName);
            if (tNumC === 1) {
                if (enableShapeUniforms) {
                    return "\n      float ".concat(funcName, "(int index) {\n        vec2 uv = vec2(0.5, (float(index + ").concat(offset, ") + 0.5) / float(").concat(texName, "TexShape[0]));\n        return sampleTexture(").concat(texName, ", uv);\n      }\n    ");
                }
                return "\n      float ".concat(funcName, "(int index) {\n        vec2 uv = vec2(0.5, (float(index + ").concat(offset, ") + 0.5) / ").concat(tNumR, ".0);\n        return sampleTexture(").concat(texName, ", uv);\n      }\n    ");
            }
            if (tNumR === 1) {
                if (enableShapeUniforms) {
                    return "\n      float ".concat(funcName, "(int index) {\n        vec2 uv = vec2((float(index + ").concat(offset, ") + 0.5) / float(").concat(texName, "TexShape[1]), 0.5);\n        return sampleTexture(").concat(texName, ", uv);\n      }\n    ");
                }
                return "\n      float ".concat(funcName, "(int index) {\n        vec2 uv = vec2((float(index + ").concat(offset, ") + 0.5) / ").concat(tNumC, ".0, 0.5);\n        return sampleTexture(").concat(texName, ", uv);\n      }\n    ");
            }
            if (enableShapeUniforms) {
                return "\n    float ".concat(funcName, "(int index) {\n      vec2 uv = uvFromFlat(").concat(texName, "TexShape[0], ").concat(texName, "TexShape[1], index + ").concat(offset, ");\n      return sampleTexture(").concat(texName, ", uv);\n    }\n  ");
            }
            return "\n    float ".concat(funcName, "(int index) {\n      vec2 uv = uvFromFlat(").concat(tNumR, ", ").concat(tNumC, ", index + ").concat(offset, ");\n      return sampleTexture(").concat(texName, ", uv);\n    }\n  ");
        }
        function getPackedSampler2D(inputInfo, enableShapeUniforms) {
            var shape = inputInfo.shapeInfo.logicalShape;
            var texName = inputInfo.name;
            var funcName = 'get' + texName.charAt(0).toUpperCase() + texName.slice(1);
            var texShape = inputInfo.shapeInfo.texShape;
            var texNumR = texShape[0];
            var texNumC = texShape[1];
            var glsl = getGlslDifferences();
            if (texShape != null && tf.util.arraysEqual(shape, texShape)) {
                if (enableShapeUniforms) {
                    return "\n      vec4 ".concat(funcName, "(int row, int col) {\n        vec2 uv = (vec2(col, row) + halfCR) / vec2(").concat(texName, "TexShape[1], ").concat(texName, "TexShape[0]);\n\n        return ").concat(glsl.texture2D, "(").concat(texName, ", uv);\n      }\n    ");
                }
                return "\n      vec4 ".concat(funcName, "(int row, int col) {\n        vec2 uv = (vec2(col, row) + halfCR) / vec2(").concat(texNumC, ".0, ").concat(texNumR, ".0);\n\n        return ").concat(glsl.texture2D, "(").concat(texName, ", uv);\n      }\n    ");
            }
            if (enableShapeUniforms) {
                return "\n    vec4 ".concat(funcName, "(int row, int col) {\n      ivec2 packedTexShape = ivec2(ceil(float(").concat(texName, "TexShape[0]) / 2.0), ceil(float(").concat(texName, "TexShape[1]) / 2.0));\n      int valuesPerRow = int(ceil(float(").concat(texName, "Shape[1]) / 2.0));\n      vec2 uv = packedUVfrom2D(valuesPerRow, packedTexShape[0], packedTexShape[1], row, col);\n      return ").concat(glsl.texture2D, "(").concat(texName, ", uv);\n    }\n  ");
            }
            var packedTexShape = [Math.ceil(texShape[0] / 2), Math.ceil(texShape[1] / 2)];
            var valuesPerRow = Math.ceil(shape[1] / 2);
            return "\n    vec4 ".concat(funcName, "(int row, int col) {\n      vec2 uv = packedUVfrom2D(").concat(valuesPerRow, ", ").concat(packedTexShape[0], ", ").concat(packedTexShape[1], ", row, col);\n      return ").concat(glsl.texture2D, "(").concat(texName, ", uv);\n    }\n  ");
        }
        function getSampler2D(inputInfo, enableShapeUniforms) {
            var shape = inputInfo.shapeInfo.logicalShape;
            var texName = inputInfo.name;
            var funcName = 'get' + texName.charAt(0).toUpperCase() + texName.slice(1);
            var texShape = inputInfo.shapeInfo.texShape;
            if (texShape != null && tf.util.arraysEqual(shape, texShape)) {
                if (enableShapeUniforms) {
                    return "\n      float ".concat(funcName, "(int row, int col) {\n        vec2 uv = (vec2(col, row) + halfCR) / vec2(").concat(texName, "TexShape[1], ").concat(texName, "TexShape[0]);\n        return sampleTexture(").concat(texName, ", uv);\n      }\n    ");
                }
                var texNumR_1 = texShape[0];
                var texNumC_1 = texShape[1];
                return "\n    float ".concat(funcName, "(int row, int col) {\n      vec2 uv = (vec2(col, row) + halfCR) / vec2(").concat(texNumC_1, ".0, ").concat(texNumR_1, ".0);\n      return sampleTexture(").concat(texName, ", uv);\n    }\n  ");
            }
            var _a = tf.util.squeezeShape(shape)
                , newShape = _a.newShape
                , keptDims = _a.keptDims;
            var squeezedShape = newShape;
            if (squeezedShape.length < shape.length) {
                var newInputInfo = squeezeInputInfo(inputInfo, squeezedShape);
                var params = ['row', 'col'];
                return "\n      ".concat(getSamplerFromInInfo(newInputInfo, enableShapeUniforms), "\n      float ").concat(funcName, "(int row, int col) {\n        return ").concat(funcName, "(").concat(getSqueezedParams(params, keptDims), ");\n      }\n    ");
            }
            if (inputInfo.shapeInfo.isUniform) {
                // Uniform arrays will be less than 65505 (no risk of float16 overflow).
                return "\n      float ".concat(funcName, "(int row, int col) {\n        int index = round(dot(vec2(row, col), vec2(").concat(shape[1], ", 1)));\n        ").concat(getUniformSampler(inputInfo), "\n      }\n    ");
            }
            var texNumR = texShape[0];
            var texNumC = texShape[1];
            var offset = getFlatOffsetUniformName(texName);
            if (texNumC === 1) {
                // index is used directly as physical (no risk of float16 overflow).
                if (enableShapeUniforms) {
                    return "\n      float ".concat(funcName, "(int row, int col) {\n        float index = dot(vec3(row, col, ").concat(offset, "), vec3(").concat(texName, "Shape[1], 1, 1));\n        vec2 uv = vec2(0.5, (index + 0.5) / float(").concat(texName, "TexShape[0]));\n        return sampleTexture(").concat(texName, ", uv);\n      }\n    ");
                }
                return "\n    float ".concat(funcName, "(int row, int col) {\n      float index = dot(vec3(row, col, ").concat(offset, "), vec3(").concat(shape[1], ", 1, 1));\n      vec2 uv = vec2(0.5, (index + 0.5) / ").concat(texNumR, ".0);\n      return sampleTexture(").concat(texName, ", uv);\n    }\n  ");
            }
            if (texNumR === 1) {
                // index is used directly as physical (no risk of float16 overflow).
                if (enableShapeUniforms) {
                    return "\n      float ".concat(funcName, "(int row, int col) {\n        float index = dot(vec3(row, col, ").concat(offset, "), vec3(").concat(texName, "Shape[1], 1, 1));\n        vec2 uv = vec2((index + 0.5) / float(").concat(texName, "TexShape[1]), 0.5);\n        return sampleTexture(").concat(texName, ", uv);\n      }\n    ");
                }
                return "\n    float ".concat(funcName, "(int row, int col) {\n      float index = dot(vec3(row, col, ").concat(offset, "), vec3(").concat(shape[1], ", 1, 1));\n      vec2 uv = vec2((index + 0.5) / ").concat(texNumC, ".0, 0.5);\n      return sampleTexture(").concat(texName, ", uv);\n    }\n  ");
            }
            if (enableShapeUniforms) {
                return "\n      float ".concat(funcName, "(int row, int col) {\n        // Explicitly use integer operations as dot() only works on floats.\n        int index = row * ").concat(texName, "Shape[1] + col + ").concat(offset, ";\n        vec2 uv = uvFromFlat(").concat(texName, "TexShape[0], ").concat(texName, "TexShape[1], index);\n        return sampleTexture(").concat(texName, ", uv);\n      }\n    ");
            }
            return "\n  float ".concat(funcName, "(int row, int col) {\n    // Explicitly use integer operations as dot() only works on floats.\n    int index = row * ").concat(shape[1], " + col + ").concat(offset, ";\n    vec2 uv = uvFromFlat(").concat(texNumR, ", ").concat(texNumC, ", index);\n    return sampleTexture(").concat(texName, ", uv);\n  }\n");
        }
        function getPackedSampler3D(inputInfo, enableShapeUniforms) {
            var shape = inputInfo.shapeInfo.logicalShape;
            var texName = inputInfo.name;
            var funcName = 'get' + texName.charAt(0).toUpperCase() + texName.slice(1);
            var texShape = inputInfo.shapeInfo.texShape;
            var packedTexShape = [Math.ceil(texShape[0] / 2), Math.ceil(texShape[1] / 2)];
            if (shape[0] === 1) {
                var squeezedShape = shape.slice(1);
                var keptDims = [1, 2];
                var newInputInfo = squeezeInputInfo(inputInfo, squeezedShape);
                var params = ['b', 'row', 'col'];
                return "\n        ".concat(getPackedSamplerFromInInfo(newInputInfo, enableShapeUniforms), "\n        vec4 ").concat(funcName, "(int b, int row, int col) {\n          return ").concat(funcName, "(").concat(getSqueezedParams(params, keptDims), ");\n        }\n      ");
            }
            var glsl = getGlslDifferences();
            if (enableShapeUniforms) {
                return "\n    vec4 ".concat(funcName, "(int b, int row, int col) {\n      ivec2 packedTexShape = ivec2(ceil(float(").concat(texName, "TexShape[0]) / 2.0), ceil(float(").concat(texName, "TexShape[1]) / 2.0));\n      int valuesPerRow = int(ceil(float(").concat(texName, "Shape[2]) / 2.0));\n      int texelsInBatch = valuesPerRow * int(ceil(float(").concat(texName, "Shape[1]) / 2.0));\n      vec2 uv = packedUVfrom3D(\n        packedTexShape[0], packedTexShape[1], texelsInBatch, valuesPerRow, b, row, col);\n      return ").concat(glsl.texture2D, "(").concat(texName, ", uv);\n    }\n  ");
            }
            var texNumR = packedTexShape[0];
            var texNumC = packedTexShape[1];
            var valuesPerRow = Math.ceil(shape[2] / 2);
            var texelsInBatch = valuesPerRow * Math.ceil(shape[1] / 2);
            return "\n    vec4 ".concat(funcName, "(int b, int row, int col) {\n      vec2 uv = packedUVfrom3D(\n        ").concat(texNumR, ", ").concat(texNumC, ", ").concat(texelsInBatch, ", ").concat(valuesPerRow, ", b, row, col);\n      return ").concat(glsl.texture2D, "(").concat(texName, ", uv);\n    }\n  ");
        }
        function getSampler3D(inputInfo, enableShapeUniforms) {
            var shape = inputInfo.shapeInfo.logicalShape;
            var texName = inputInfo.name;
            var funcName = 'get' + texName.charAt(0).toUpperCase() + texName.slice(1);
            var stride0 = shape[1] * shape[2];
            var stride1 = shape[2];
            var _a = tf.util.squeezeShape(shape)
                , newShape = _a.newShape
                , keptDims = _a.keptDims;
            var squeezedShape = newShape;
            if (squeezedShape.length < shape.length) {
                var newInputInfo = squeezeInputInfo(inputInfo, squeezedShape);
                var params = ['row', 'col', 'depth'];
                return "\n        ".concat(getSamplerFromInInfo(newInputInfo, enableShapeUniforms), "\n        float ").concat(funcName, "(int row, int col, int depth) {\n          return ").concat(funcName, "(").concat(getSqueezedParams(params, keptDims), ");\n        }\n      ");
            }
            if (inputInfo.shapeInfo.isUniform) {
                // Uniform arrays will be less than 65505 (no risk of float16 overflow).
                return "\n      float ".concat(funcName, "(int row, int col, int depth) {\n        int index = round(dot(vec3(row, col, depth),\n                          vec3(").concat(stride0, ", ").concat(stride1, ", 1)));\n        ").concat(getUniformSampler(inputInfo), "\n      }\n    ");
            }
            var texShape = inputInfo.shapeInfo.texShape;
            var texNumR = texShape[0];
            var texNumC = texShape[1];
            var flatOffset = inputInfo.shapeInfo.flatOffset;
            if (texNumC === stride0 && flatOffset == null) {
                // texC is used directly as physical (no risk of float16 overflow).
                if (enableShapeUniforms) {
                    return "\n      float ".concat(funcName, "(int row, int col, int depth) {\n        int stride1 = ").concat(texName, "Shape[2];\n        float texR = float(row);\n        float texC = dot(vec2(col, depth), vec2(stride1, 1));\n        vec2 uv = (vec2(texC, texR) + halfCR) /\n                   vec2(").concat(texName, "TexShape[1], ").concat(texName, "TexShape[0]);\n        return sampleTexture(").concat(texName, ", uv);\n      }\n    ");
                }
                return "\n        float ".concat(funcName, "(int row, int col, int depth) {\n          float texR = float(row);\n          float texC = dot(vec2(col, depth), vec2(").concat(stride1, ", 1));\n          vec2 uv = (vec2(texC, texR) + halfCR) /\n                     vec2(").concat(texNumC, ".0, ").concat(texNumR, ".0);\n          return sampleTexture(").concat(texName, ", uv);\n        }\n      ");
            }
            if (texNumC === stride1 && flatOffset == null) {
                // texR is used directly as physical (no risk of float16 overflow).
                if (enableShapeUniforms) {
                    return "\n      float ".concat(funcName, "(int row, int col, int depth) {\n        float texR = dot(vec2(row, col), vec2(").concat(texName, "Shape[1], 1));\n        float texC = float(depth);\n        vec2 uv = (vec2(texC, texR) + halfCR) / vec2(").concat(texName, "TexShape[1], ").concat(texName, "TexShape[0]);\n        return sampleTexture(").concat(texName, ", uv);\n      }\n    ");
                }
                return "\n    float ".concat(funcName, "(int row, int col, int depth) {\n      float texR = dot(vec2(row, col), vec2(").concat(shape[1], ", 1));\n      float texC = float(depth);\n      vec2 uv = (vec2(texC, texR) + halfCR) / vec2(").concat(texNumC, ".0, ").concat(texNumR, ".0);\n      return sampleTexture(").concat(texName, ", uv);\n    }\n  ");
            }
            var offset = getFlatOffsetUniformName(texName);
            if (enableShapeUniforms) {
                return "\n    float ".concat(funcName, "(int row, int col, int depth) {\n      // Explicitly use integer operations as dot() only works on floats.\n      int stride0 = ").concat(texName, "Shape[1] * ").concat(texName, "Shape[2];\n      int stride1 = ").concat(texName, "Shape[2];\n      int index = row * stride0 + col * stride1 + depth + ").concat(offset, ";\n      vec2 uv = uvFromFlat(").concat(texName, "TexShape[0], ").concat(texName, "TexShape[1], index);\n      return sampleTexture(").concat(texName, ", uv);\n    }\n    ");
            }
            return "\n      float ".concat(funcName, "(int row, int col, int depth) {\n        // Explicitly use integer operations as dot() only works on floats.\n        int index = row * ").concat(stride0, " + col * ").concat(stride1, " + depth + ").concat(offset, ";\n        vec2 uv = uvFromFlat(").concat(texNumR, ", ").concat(texNumC, ", index);\n        return sampleTexture(").concat(texName, ", uv);\n      }\n  ");
        }
        function getPackedSamplerND(inputInfo, enableShapeUniforms) {
            var texName = inputInfo.name;
            var funcName = 'get' + texName.charAt(0).toUpperCase() + texName.slice(1);
            var glsl = getGlslDifferences();
            if (enableShapeUniforms) {
                // TODO: support 5d and 6d
                return "\n    vec4 ".concat(funcName, "(int b2, int b, int row, int col) {\n      int valuesPerRow = int(ceil(float(").concat(texName, "Shape[3]) / 2.0));\n      int texelsInBatch = valuesPerRow * int(ceil(float(").concat(texName, "Shape[2]) / 2.0));\n      int index = b * texelsInBatch + (row / 2) * valuesPerRow + (col / 2);\n      texelsInBatch *= ").concat(texName, "Shape[1];\n      index = b2 * texelsInBatch + index;\n      ivec2 packedTexShape = ivec2(ceil(float(").concat(texName, "TexShape[0]) / 2.0), ceil(float(").concat(texName, "TexShape[1]) / 2.0));\n      int texR = index / packedTexShape[1];\n      int texC = index - texR * packedTexShape[1];\n      vec2 uv = (vec2(texC, texR) + halfCR) / vec2(packedTexShape[1], packedTexShape[0]); return ").concat(glsl.texture2D, "(").concat(texName, ", uv);\n    }\n  ");
            }
            var shape = inputInfo.shapeInfo.logicalShape;
            var rank = shape.length;
            var texShape = inputInfo.shapeInfo.texShape;
            var packedTexShape = [Math.ceil(texShape[0] / 2), Math.ceil(texShape[1] / 2)];
            var texNumR = packedTexShape[0];
            var texNumC = packedTexShape[1];
            var valuesPerRow = Math.ceil(shape[rank - 1] / 2);
            var texelsInBatch = valuesPerRow * Math.ceil(shape[rank - 2] / 2);
            var params = "int b, int row, int col";
            var index = "b * ".concat(texelsInBatch, " + (row / 2) * ").concat(valuesPerRow, " + (col / 2)");
            for (var b = 2; b < rank - 1; b++) {
                params = "int b".concat(b, ", ") + params;
                texelsInBatch *= shape[rank - b - 1];
                index = "b".concat(b, " * ").concat(texelsInBatch, " + ") + index;
            }
            return "\n    vec4 ".concat(funcName, "(").concat(params, ") {\n      int index = ").concat(index, ";\n      int texR = index / ").concat(texNumC, ";\n      int texC = index - texR * ").concat(texNumC, ";\n      vec2 uv = (vec2(texC, texR) + halfCR) / vec2(").concat(texNumC, ", ").concat(texNumR, ");\n      return ").concat(glsl.texture2D, "(").concat(texName, ", uv);\n    }\n  ");
        }
        function getSampler4D(inputInfo, enableShapeUniforms) {
            var shape = inputInfo.shapeInfo.logicalShape;
            var texName = inputInfo.name;
            var funcName = 'get' + texName.charAt(0).toUpperCase() + texName.slice(1);
            var stride2 = shape[3];
            var stride1 = shape[2] * stride2;
            var stride0 = shape[1] * stride1;
            var _a = tf.util.squeezeShape(shape)
                , newShape = _a.newShape
                , keptDims = _a.keptDims;
            if (newShape.length < shape.length) {
                var newInputInfo = squeezeInputInfo(inputInfo, newShape);
                var params = ['row', 'col', 'depth', 'depth2'];
                return "\n      ".concat(getSamplerFromInInfo(newInputInfo, enableShapeUniforms), "\n      float ").concat(funcName, "(int row, int col, int depth, int depth2) {\n        return ").concat(funcName, "(").concat(getSqueezedParams(params, keptDims), ");\n      }\n    ");
            }
            if (inputInfo.shapeInfo.isUniform) {
                // Uniform arrays will be less than 65505 (no risk of float16 overflow).
                return "\n      float ".concat(funcName, "(int row, int col, int depth, int depth2) {\n        int index = round(dot(vec4(row, col, depth, depth2),\n                          vec4(").concat(stride0, ", ").concat(stride1, ", ").concat(stride2, ", 1)));\n        ").concat(getUniformSampler(inputInfo), "\n      }\n    ");
            }
            var flatOffset = inputInfo.shapeInfo.flatOffset;
            var texShape = inputInfo.shapeInfo.texShape;
            var texNumR = texShape[0];
            var texNumC = texShape[1];
            var stride2Str = "int stride2 = ".concat(texName, "Shape[3];");
            var stride1Str = "int stride1 = ".concat(texName, "Shape[2] * stride2;");
            var stride0Str = "int stride0 = ".concat(texName, "Shape[1] * stride1;");
            if (texNumC === stride0 && flatOffset == null) {
                // texC is used directly as physical (no risk of float16 overflow).
                if (enableShapeUniforms) {
                    return "\n      float ".concat(funcName, "(int row, int col, int depth, int depth2) {\n        ").concat(stride2Str, "\n        ").concat(stride1Str, "\n        float texR = float(row);\n        float texC =\n            dot(vec3(col, depth, depth2),\n                vec3(stride1, stride2, 1));\n        vec2 uv = (vec2(texC, texR) + halfCR) /\n                   vec2(").concat(texName, "TexShape[1], ").concat(texName, "TexShape[0]);\n        return sampleTexture(").concat(texName, ", uv);\n      }\n    ");
                }
                return "\n      float ".concat(funcName, "(int row, int col, int depth, int depth2) {\n        float texR = float(row);\n        float texC =\n            dot(vec3(col, depth, depth2),\n                vec3(").concat(stride1, ", ").concat(stride2, ", 1));\n        vec2 uv = (vec2(texC, texR) + halfCR) /\n                   vec2(").concat(texNumC, ".0, ").concat(texNumR, ".0);\n        return sampleTexture(").concat(texName, ", uv);\n      }\n    ");
            }
            if (texNumC === stride2 && flatOffset == null) {
                // texR is used directly as physical (no risk of float16 overflow).
                if (enableShapeUniforms) {
                    return "\n      float ".concat(funcName, "(int row, int col, int depth, int depth2) {\n        float texR = dot(vec3(row, col, depth),\n                         vec3(").concat(texName, "Shape[1] * ").concat(texName, "Shape[2], ").concat(texName, "Shape[2], 1));\n        float texC = float(depth2);\n        vec2 uv = (vec2(texC, texR) + halfCR) /\n                  vec2(").concat(texName, "TexShape[1], ").concat(texName, "TexShape[0]);\n        return sampleTexture(").concat(texName, ", uv);\n      }\n    ");
                }
                return "\n      float ".concat(funcName, "(int row, int col, int depth, int depth2) {\n        float texR = dot(vec3(row, col, depth),\n                         vec3(").concat(shape[1] * shape[2], ", ").concat(shape[2], ", 1));\n        float texC = float(depth2);\n        vec2 uv = (vec2(texC, texR) + halfCR) /\n                  vec2(").concat(texNumC, ".0, ").concat(texNumR, ".0);\n        return sampleTexture(").concat(texName, ", uv);\n      }\n    ");
            }
            var offset = getFlatOffsetUniformName(texName);
            if (enableShapeUniforms) {
                return "\n    float ".concat(funcName, "(int row, int col, int depth, int depth2) {\n      // Explicitly use integer operations as dot() only works on floats.\n      ").concat(stride2Str, "\n      ").concat(stride1Str, "\n      ").concat(stride0Str, "\n      int index = row * stride0 + col * stride1 +\n          depth * stride2 + depth2;\n      vec2 uv = uvFromFlat(").concat(texName, "TexShape[0], ").concat(texName, "TexShape[1], index + ").concat(offset, ");\n      return sampleTexture(").concat(texName, ", uv);\n    }\n  ");
            }
            return "\n    float ".concat(funcName, "(int row, int col, int depth, int depth2) {\n      // Explicitly use integer operations as dot() only works on floats.\n      int index = row * ").concat(stride0, " + col * ").concat(stride1, " +\n          depth * ").concat(stride2, " + depth2;\n      vec2 uv = uvFromFlat(").concat(texNumR, ", ").concat(texNumC, ", index + ").concat(offset, ");\n      return sampleTexture(").concat(texName, ", uv);\n    }\n  ");
        }
        function getSampler5D(inputInfo) {
            var shape = inputInfo.shapeInfo.logicalShape;
            var texName = inputInfo.name;
            var funcName = 'get' + texName.charAt(0).toUpperCase() + texName.slice(1);
            var stride3 = shape[4];
            var stride2 = shape[3] * stride3;
            var stride1 = shape[2] * stride2;
            var stride0 = shape[1] * stride1;
            var _a = tf.util.squeezeShape(shape)
                , newShape = _a.newShape
                , keptDims = _a.keptDims;
            if (newShape.length < shape.length) {
                var newInputInfo = squeezeInputInfo(inputInfo, newShape);
                var params = ['row', 'col', 'depth', 'depth2', 'depth3'];
                return "\n      ".concat(getSamplerFromInInfo(newInputInfo), "\n      float ").concat(funcName, "(int row, int col, int depth, int depth2, int depth3) {\n        return ").concat(funcName, "(").concat(getSqueezedParams(params, keptDims), ");\n      }\n    ");
            }
            if (inputInfo.shapeInfo.isUniform) {
                // Uniform arrays will be less than 65505 (no risk of float16 overflow).
                return "\n      float ".concat(funcName, "(int row, int col, int depth, int depth2, int depth3) {\n        float index = dot(\n          vec4(row, col, depth, depth2),\n          vec4(").concat(stride0, ", ").concat(stride1, ", ").concat(stride2, ", ").concat(stride3, ")) +\n          depth3;\n        ").concat(getUniformSampler(inputInfo), "\n      }\n    ");
            }
            var flatOffset = inputInfo.shapeInfo.flatOffset;
            var texShape = inputInfo.shapeInfo.texShape;
            var texNumR = texShape[0];
            var texNumC = texShape[1];
            if (texNumC === stride0 && flatOffset == null) {
                // texC is used directly as physical (no risk of float16 overflow).
                return "\n      float ".concat(funcName, "(int row, int col, int depth, int depth2, int depth3) {\n        int texR = row;\n        float texC = dot(vec4(col, depth, depth2, depth3),\n                         vec4(").concat(stride1, ", ").concat(stride2, ", ").concat(stride3, ", 1));\n        vec2 uv = (vec2(texC, texR) + halfCR) /\n                   vec2(").concat(texNumC, ".0, ").concat(texNumR, ".0);\n        return sampleTexture(").concat(texName, ", uv);\n      }\n    ");
            }
            if (texNumC === stride3 && flatOffset == null) {
                // texR is used directly as physical (no risk of float16 overflow).
                return "\n      float ".concat(funcName, "(int row, int col, int depth, int depth2, int depth3) {\n        float texR = dot(\n          vec4(row, col, depth, depth2),\n          vec4(").concat(shape[1] * shape[2] * shape[3], ",\n               ").concat(shape[2] * shape[3], ", ").concat(shape[3], ", 1));\n        int texC = depth3;\n        vec2 uv = (vec2(texC, texR) + halfCR) /\n                  vec2(").concat(texNumC, ".0, ").concat(texNumR, ".0);\n        return sampleTexture(").concat(texName, ", uv);\n      }\n    ");
            }
            var offset = getFlatOffsetUniformName(texName);
            return "\n    float ".concat(funcName, "(int row, int col, int depth, int depth2, int depth3) {\n      // Explicitly use integer operations as dot() only works on floats.\n      int index = row * ").concat(stride0, " + col * ").concat(stride1, " + depth * ").concat(stride2, " +\n          depth2 * ").concat(stride3, " + depth3 + ").concat(offset, ";\n      vec2 uv = uvFromFlat(").concat(texNumR, ", ").concat(texNumC, ", index);\n      return sampleTexture(").concat(texName, ", uv);\n    }\n  ");
        }
        function getSampler6D(inputInfo) {
            var shape = inputInfo.shapeInfo.logicalShape;
            var texName = inputInfo.name;
            var funcName = 'get' + texName.charAt(0).toUpperCase() + texName.slice(1);
            var _a = tf.util.squeezeShape(shape)
                , newShape = _a.newShape
                , keptDims = _a.keptDims;
            if (newShape.length < shape.length) {
                var newInputInfo = squeezeInputInfo(inputInfo, newShape);
                var params = ['row', 'col', 'depth', 'depth2', 'depth3', 'depth4'];
                return "\n      ".concat(getSamplerFromInInfo(newInputInfo), "\n      float ").concat(funcName, "(int row, int col, int depth,\n                    int depth2, int depth3, int depth4) {\n        return ").concat(funcName, "(").concat(getSqueezedParams(params, keptDims), ");\n      }\n    ");
            }
            var stride4 = shape[5];
            var stride3 = shape[4] * stride4;
            var stride2 = shape[3] * stride3;
            var stride1 = shape[2] * stride2;
            var stride0 = shape[1] * stride1;
            if (inputInfo.shapeInfo.isUniform) {
                // Uniform arrays will be less than 65505 (no risk of float16 overflow).
                return "\n      float ".concat(funcName, "(int row, int col, int depth,\n                  int depth2, int depth3, int depth4) {\n        int index = round(dot(\n          vec4(row, col, depth, depth2),\n          vec4(").concat(stride0, ", ").concat(stride1, ", ").concat(stride2, ", ").concat(stride3, ")) +\n          dot(\n            vec2(depth3, depth4),\n            vec2(").concat(stride4, ", 1)));\n        ").concat(getUniformSampler(inputInfo), "\n      }\n    ");
            }
            var flatOffset = inputInfo.shapeInfo.flatOffset;
            var texShape = inputInfo.shapeInfo.texShape;
            var texNumR = texShape[0];
            var texNumC = texShape[1];
            if (texNumC === stride0 && flatOffset == null) {
                // texC is used directly as physical (no risk of float16 overflow).
                return "\n      float ".concat(funcName, "(int row, int col, int depth,\n                    int depth2, int depth3, int depth4) {\n        int texR = row;\n        float texC = dot(vec4(col, depth, depth2, depth3),\n          vec4(").concat(stride1, ", ").concat(stride2, ", ").concat(stride3, ", ").concat(stride4, ")) +\n               float(depth4);\n        vec2 uv = (vec2(texC, texR) + halfCR) /\n                   vec2(").concat(texNumC, ".0, ").concat(texNumR, ".0);\n        return sampleTexture(").concat(texName, ", uv);\n      }\n    ");
            }
            if (texNumC === stride4 && flatOffset == null) {
                // texR is used directly as physical (no risk of float16 overflow).
                return "\n      float ".concat(funcName, "(int row, int col, int depth,\n                    int depth2, int depth3, int depth4) {\n        float texR = dot(vec4(row, col, depth, depth2),\n          vec4(").concat(shape[1] * shape[2] * shape[3] * shape[4], ",\n               ").concat(shape[2] * shape[3] * shape[4], ",\n               ").concat(shape[3] * shape[4], ",\n               ").concat(shape[4], ")) + float(depth3);\n        int texC = depth4;\n        vec2 uv = (vec2(texC, texR) + halfCR) /\n                  vec2(").concat(texNumC, ".0, ").concat(texNumR, ".0);\n        return sampleTexture(").concat(texName, ", uv);\n      }\n    ");
            }
            var offset = getFlatOffsetUniformName(texName);
            return "\n    float ".concat(funcName, "(int row, int col, int depth,\n                  int depth2, int depth3, int depth4) {\n      // Explicitly use integer operations as dot() only works on floats.\n      int index = row * ").concat(stride0, " + col * ").concat(stride1, " + depth * ").concat(stride2, " +\n          depth2 * ").concat(stride3, " + depth3 * ").concat(stride4, " + depth4 + ").concat(offset, ";\n      vec2 uv = uvFromFlat(").concat(texNumR, ", ").concat(texNumC, ", index);\n      return sampleTexture(").concat(texName, ", uv);\n    }\n  ");
        }
        function getUniformSampler(inputInfo) {
            var texName = inputInfo.name;
            var inSize = tf.util.sizeFromShape(inputInfo.shapeInfo.logicalShape);
            if (inSize < 2) {
                return "return ".concat(texName, ";");
            }
            return "\n    for (int i = 0; i < ".concat(inSize, "; i++) {\n      if (i == index) {\n        return ").concat(texName, "[i];\n      }\n    }\n  ");
        }
        function getPackedSamplerAtOutputCoords(inputInfo, outShapeInfo) {
            var texName = inputInfo.name;
            var texFuncSnippet = texName.charAt(0).toUpperCase() + texName.slice(1);
            var funcName = 'get' + texFuncSnippet + 'AtOutCoords';
            var inRank = inputInfo.shapeInfo.logicalShape.length;
            var outRank = outShapeInfo.logicalShape.length;
            var broadcastDims = getBroadcastDims(inputInfo.shapeInfo.logicalShape, outShapeInfo.logicalShape);
            var type = getCoordsDataType(outRank);
            var rankDiff = outRank - inRank;
            var coordsSnippet;
            var fields = ['x', 'y', 'z', 'w', 'u', 'v'];
            if (inRank === 0) {
                coordsSnippet = '';
            } else if (outRank < 2 && broadcastDims.length >= 1) {
                coordsSnippet = 'coords = 0;';
            } else {
                coordsSnippet = broadcastDims.map(function (d) {
                    return "coords.".concat(fields[d + rankDiff], " = 0;");
                }).join('\n');
            }
            var unpackedCoordsSnippet = '';
            if (outRank < 2 && inRank > 0) {
                unpackedCoordsSnippet = 'coords';
            } else {
                unpackedCoordsSnippet = inputInfo.shapeInfo.logicalShape.map(function (s, i) {
                    return "coords.".concat(fields[i + rankDiff]);
                }).join(', ');
            }
            var output = "return outputValue;";
            var inSize = tf.util.sizeFromShape(inputInfo.shapeInfo.logicalShape);
            var isInputScalar = inSize === 1;
            var outSize = tf.util.sizeFromShape(outShapeInfo.logicalShape);
            var isOutputScalar = outSize === 1;
            if (inRank === 1 && !isInputScalar && !isOutputScalar) {
                output = "\n      return vec4(outputValue.xy, outputValue.xy);\n    ";
            } else if (isInputScalar && !isOutputScalar) {
                if (outRank === 1) {
                    output = "\n        return vec4(outputValue.x, outputValue.x, 0., 0.);\n      ";
                } else {
                    output = "\n        return vec4(outputValue.x);\n      ";
                }
            } else if (broadcastDims.length) {
                var rows = inRank - 2;
                var cols = inRank - 1;
                if (broadcastDims.indexOf(rows) > -1 && broadcastDims.indexOf(cols) > -1) {
                    output = "return vec4(outputValue.x);";
                } else if (broadcastDims.indexOf(rows) > -1) {
                    output = "return vec4(outputValue.x, outputValue.y, " + "outputValue.x, outputValue.y);";
                } else if (broadcastDims.indexOf(cols) > -1) {
                    output = "return vec4(outputValue.xx, outputValue.zz);";
                }
            }
            return "\n    vec4 ".concat(funcName, "() {\n      ").concat(type, " coords = getOutputCoords();\n      ").concat(coordsSnippet, "\n      vec4 outputValue = get").concat(texFuncSnippet, "(").concat(unpackedCoordsSnippet, ");\n      ").concat(output, "\n    }\n  ");
        }
        function getSamplerAtOutputCoords(inputInfo, outShapeInfo) {
            var texName = inputInfo.name;
            var texFuncSnippet = texName.charAt(0).toUpperCase() + texName.slice(1);
            var funcName = 'get' + texFuncSnippet + 'AtOutCoords';
            var outTexShape = outShapeInfo.texShape;
            var inTexShape = inputInfo.shapeInfo.texShape;
            var inRank = inputInfo.shapeInfo.logicalShape.length;
            var outRank = outShapeInfo.logicalShape.length;
            if (!inputInfo.shapeInfo.isUniform && inRank === outRank && inputInfo.shapeInfo.flatOffset == null && tf.util.arraysEqual(inTexShape, outTexShape)) {
                return "\n      float ".concat(funcName, "() {\n        return sampleTexture(").concat(texName, ", resultUV);\n      }\n    ");
            }
            var type = getCoordsDataType(outRank);
            var broadcastDims = getBroadcastDims(inputInfo.shapeInfo.logicalShape, outShapeInfo.logicalShape);
            var rankDiff = outRank - inRank;
            var coordsSnippet;
            var fields = ['x', 'y', 'z', 'w', 'u', 'v'];
            if (inRank === 0) {
                coordsSnippet = '';
            } else if (outRank < 2 && broadcastDims.length >= 1) {
                coordsSnippet = 'coords = 0;';
            } else {
                coordsSnippet = broadcastDims.map(function (d) {
                    return "coords.".concat(fields[d + rankDiff], " = 0;");
                }).join('\n');
            }
            var unpackedCoordsSnippet = '';
            if (outRank < 2 && inRank > 0) {
                unpackedCoordsSnippet = 'coords';
            } else {
                unpackedCoordsSnippet = inputInfo.shapeInfo.logicalShape.map(function (s, i) {
                    return "coords.".concat(fields[i + rankDiff]);
                }).join(', ');
            }
            return "\n    float ".concat(funcName, "() {\n      ").concat(type, " coords = getOutputCoords();\n      ").concat(coordsSnippet, "\n      return get").concat(texFuncSnippet, "(").concat(unpackedCoordsSnippet, ");\n    }\n  ");
        }
        function getCoordsDataType(rank) {
            if (rank <= 1) {
                return 'int';
            } else if (rank === 2) {
                return 'ivec2';
            } else if (rank === 3) {
                return 'ivec3';
            } else if (rank === 4) {
                return 'ivec4';
            } else if (rank === 5) {
                return 'ivec5';
            } else if (rank === 6) {
                return 'ivec6';
            } else {
                throw Error("GPU for rank ".concat(rank, " is not yet supported"));
            }
        }
        function getUniformInfoFromShape(isPacked, shape, texShape) {
            var _a = tf.util.squeezeShape(shape)
                , newShape = _a.newShape
                , keptDims = _a.keptDims;
            var rank = shape.length;
            var useSqueezePackedShape = isPacked && rank === 3 && shape[0] === 1;
            var squeezeShape = useSqueezePackedShape ? shape.slice(1) : newShape;
            var useSqueezeShape = (!isPacked && rank > 1 && !tf.util.arraysEqual(shape, texShape) && newShape.length < rank) || useSqueezePackedShape;
            var uniformShape = useSqueezeShape ? squeezeShape : shape;
            return {
                useSqueezeShape: useSqueezeShape,
                uniformShape: uniformShape,
                keptDims: keptDims
            };
        }
        /** Returns a new input info (a copy) that has a squeezed logical shape. */
        function squeezeInputInfo(inInfo, squeezedShape) {
            // Deep copy.
            var newInputInfo = JSON.parse(JSON.stringify(inInfo));
            newInputInfo.shapeInfo.logicalShape = squeezedShape;
            return newInputInfo;
        }
        function getSqueezedParams(params, keptDims) {
            return keptDims.map(function (d) {
                return params[d];
            }).join(', ');
        }

        /**
         * @license
         * Copyright 2017 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function compileProgram(gpgpu, program, inputs, output) {
            var inputInfos = inputs.map(function (input, i) {
                var shapeInfo = {
                    logicalShape: input.shape,
                    texShape: input.isUniform ? null : input.texData.texShape,
                    isUniform: input.isUniform,
                    isPacked: input.isUniform ? false : input.texData.isPacked,
                    flatOffset: null
                };
                if (input.texData != null && input.texData.slice != null && input.texData.slice.flatOffset > 0) {
                    shapeInfo.flatOffset = input.texData.slice.flatOffset;
                }
                return {
                    name: program.variableNames[i],
                    shapeInfo: shapeInfo
                };
            });
            var inShapeInfos = inputInfos.map(function (x) {
                return x.shapeInfo;
            });
            var outShapeInfo = {
                logicalShape: output.shape,
                texShape: output.texData.texShape,
                isUniform: false,
                isPacked: output.texData.isPacked,
                flatOffset: null
            };
            var source = makeShader(inputInfos, outShapeInfo, program);
            var fragmentShader = createFragmentShader(gpgpu.gl, source);
            var webGLProgram = gpgpu.createProgram(fragmentShader);
            if (!tf.env().get('ENGINE_COMPILE_ONLY')) {
                return Object.assign({
                    program: program,
                    fragmentShader: fragmentShader,
                    source: source,
                    webGLProgram: webGLProgram,
                    inShapeInfos: inShapeInfos,
                    outShapeInfo: outShapeInfo
                }, getUniformLocations(gpgpu, program, webGLProgram));
            } else {
                return {
                    program: program,
                    fragmentShader: fragmentShader,
                    source: source,
                    webGLProgram: webGLProgram,
                    inShapeInfos: inShapeInfos,
                    outShapeInfo: outShapeInfo,
                    uniformLocations: null,
                    customUniformLocations: null,
                    infLoc: null,
                    nanLoc: null,
                    inShapesLocations: null,
                    inTexShapesLocations: null,
                    outShapeLocation: null,
                    outShapeStridesLocation: null,
                    outTexShapeLocation: null
                };
            }
        }
        function getUniformLocations(gpgpu, program, webGLProgram) {
            var uniformLocations = {};
            var inShapesLocations = {};
            var inTexShapesLocations = {};
            var customUniformLocations = [];
            var outShapeLocation;
            var outTexShapeLocation;
            var outShapeStridesLocation;
            var infLoc = null;
            var nanLoc = null;
            // Add special uniforms (NAN, INFINITY)
            nanLoc = gpgpu.getUniformLocation(webGLProgram, 'NAN', false);
            if (tf.env().getNumber('WEBGL_VERSION') === 1) {
                infLoc = gpgpu.getUniformLocation(webGLProgram, 'INFINITY', false);
            }
            // Add user-defined uniforms
            var shouldThrow = false;
            for (var i = 0; i < program.variableNames.length; i++) {
                var varName = program.variableNames[i];
                uniformLocations[varName] = gpgpu.getUniformLocation(webGLProgram, varName, shouldThrow);
                uniformLocations["offset".concat(varName)] = gpgpu.getUniformLocation(webGLProgram, "offset".concat(varName), shouldThrow);
                if (program.enableShapeUniforms) {
                    inShapesLocations["".concat(varName, "Shape")] = gpgpu.getUniformLocation(webGLProgram, "".concat(varName, "Shape"), shouldThrow);
                    inTexShapesLocations["".concat(varName, "TexShape")] = gpgpu.getUniformLocation(webGLProgram, "".concat(varName, "TexShape"), shouldThrow);
                }
            }
            if (program.enableShapeUniforms) {
                outShapeLocation = gpgpu.getUniformLocation(webGLProgram, 'outShape', shouldThrow);
                outShapeStridesLocation = gpgpu.getUniformLocation(webGLProgram, 'outShapeStrides', shouldThrow);
                outTexShapeLocation = gpgpu.getUniformLocation(webGLProgram, 'outTexShape', shouldThrow);
            }
            if (program.customUniforms) {
                program.customUniforms.forEach(function (d, i) {
                    customUniformLocations[i] = gpgpu.getUniformLocation(webGLProgram, d.name, shouldThrow);
                });
            }
            return {
                uniformLocations: uniformLocations,
                customUniformLocations: customUniformLocations,
                infLoc: infLoc,
                nanLoc: nanLoc,
                inShapesLocations: inShapesLocations,
                inTexShapesLocations: inTexShapesLocations,
                outShapeLocation: outShapeLocation,
                outShapeStridesLocation: outShapeStridesLocation,
                outTexShapeLocation: outTexShapeLocation
            };
        }
        function validateBinaryAndProgram(shapeInfos, inputs) {
            if (shapeInfos.length !== inputs.length) {
                throw Error("Binary was compiled with ".concat(shapeInfos.length, " inputs, but ") + "was executed with ".concat(inputs.length, " inputs"));
            }
            shapeInfos.forEach(function (s, i) {
                var shapeA = s.logicalShape;
                var input = inputs[i];
                var shapeB = input.shape;
                if (!tf.util.arraysEqual(shapeA, shapeB)) {
                    throw Error("Binary was compiled with different shapes than " + "the current args. Shapes ".concat(shapeA, " and ").concat(shapeB, " must match"));
                }
                // The input is uploaded as uniform.
                if (s.isUniform && input.isUniform) {
                    return;
                }
                var texShapeA = s.texShape;
                var texShapeB = input.isUniform ? null : input.texData.texShape;
                if (!tf.util.arraysEqual(texShapeA, texShapeB)) {
                    throw Error("Binary was compiled with different texture shapes than the" + " current args. Shape ".concat(texShapeA, " and ").concat(texShapeB, " must match"));
                }
            });
        }
        function runProgram(gpgpu, binary, inputs, output, customUniformValues) {
            if (!binary.program.enableShapeUniforms) {
                validateBinaryAndProgram(binary.inShapeInfos, inputs);
                validateBinaryAndProgram([binary.outShapeInfo], [output]);
            }
            var outTex = output.texData.texture;
            var outTexShape = output.texData.texShape;
            if (output.texData.isPacked) {
                gpgpu.setOutputPackedMatrixTexture(outTex.texture, outTexShape[0], outTexShape[1]);
            } else {
                gpgpu.setOutputMatrixTexture(outTex.texture, outTexShape[0], outTexShape[1]);
            }
            gpgpu.setProgram(binary.webGLProgram);
            // Set special uniforms (NAN, INFINITY)
            if (tf.env().getNumber('WEBGL_VERSION') === 1) {
                if (binary.infLoc !== null) {
                    gpgpu.gl.uniform1f(binary.infLoc, Infinity);
                }
            }
            if (binary.nanLoc !== null) {
                gpgpu.gl.uniform1f(binary.nanLoc, NaN);
            }
            // Set user-defined inputs
            inputs.forEach(function (input, i) {
                var varName = binary.program.variableNames[i];
                var varLoc = binary.uniformLocations[varName];
                var varOffsetLoc = binary.uniformLocations["offset".concat(varName)];
                var varShapeLoc = binary.inShapesLocations["".concat(varName, "Shape")];
                var varTexShapeLoc = binary.inTexShapesLocations["".concat(varName, "TexShape")];
                if (varShapeLoc) {
                    var uniformShape = getUniformInfoFromShape(binary.program.packedInputs, input.shape, input.texData.texShape).uniformShape;
                    switch (uniformShape.length) {
                        case 1:
                            gpgpu.gl.uniform1iv(varShapeLoc, new Int32Array(uniformShape));
                            break;
                        case 2:
                            gpgpu.gl.uniform2iv(varShapeLoc, new Int32Array(uniformShape));
                            break;
                        case 3:
                            gpgpu.gl.uniform3iv(varShapeLoc, new Int32Array(uniformShape));
                            break;
                        case 4:
                            gpgpu.gl.uniform4iv(varShapeLoc, new Int32Array(uniformShape));
                            break;
                    }
                }
                if (varTexShapeLoc) {
                    gpgpu.gl.uniform2i(varTexShapeLoc, input.texData.texShape[0], input.texData.texShape[1]);
                }
                if (varLoc == null) {
                    // The compiler inferred that this variable is not used in this shader.
                    return;
                }
                if (input.isUniform) {
                    // Upload the values of the tensor as uniform.
                    if (tf.util.sizeFromShape(input.shape) < 2) {
                        gpgpu.gl.uniform1f(varLoc, input.uniformValues[0]);
                    } else {
                        var vals = input.uniformValues;
                        if (!(vals instanceof Float32Array)) {
                            vals = new Float32Array(vals);
                        }
                        gpgpu.gl.uniform1fv(varLoc, vals);
                    }
                    return;
                }
                // If the input was sliced, upload the flat offset index.
                if (input.texData.slice != null && varOffsetLoc != null) {
                    gpgpu.gl.uniform1i(varOffsetLoc, input.texData.slice.flatOffset);
                }
                gpgpu.setInputMatrixTexture(input.texData.texture.texture, varLoc, i);
            });
            var outShapeLoc = binary.outShapeLocation;
            if (outShapeLoc) {
                switch (output.shape.length) {
                    case 1:
                        gpgpu.gl.uniform1iv(outShapeLoc, new Int32Array(output.shape));
                        break;
                    case 2:
                        gpgpu.gl.uniform2iv(outShapeLoc, new Int32Array(output.shape));
                        break;
                    case 3:
                        gpgpu.gl.uniform3iv(outShapeLoc, new Int32Array(output.shape));
                        break;
                    case 4:
                        gpgpu.gl.uniform4iv(outShapeLoc, new Int32Array(output.shape));
                        break;
                }
            }
            if (binary.outShapeStridesLocation) {
                var strides = tf.util.computeStrides(output.shape);
                switch (output.shape.length) {
                    case 2:
                        gpgpu.gl.uniform1iv(binary.outShapeStridesLocation, new Int32Array(strides));
                        break;
                    case 3:
                        gpgpu.gl.uniform2iv(binary.outShapeStridesLocation, new Int32Array(strides));
                        break;
                    case 4:
                        gpgpu.gl.uniform3iv(binary.outShapeStridesLocation, new Int32Array(strides));
                        break;
                }
            }
            if (binary.outTexShapeLocation) {
                gpgpu.gl.uniform2i(binary.outTexShapeLocation, output.texData.texShape[0], output.texData.texShape[1]);
            }
            if (binary.program.customUniforms && customUniformValues) {
                binary.program.customUniforms.forEach(function (d, i) {
                    var customLoc = binary.customUniformLocations[i];
                    var customValue = customUniformValues[i];
                    if (d.type === 'float') {
                        gpgpu.gl.uniform1fv(customLoc, customValue);
                    } else if (d.type === 'vec2') {
                        gpgpu.gl.uniform2fv(customLoc, customValue);
                    } else if (d.type === 'vec3') {
                        gpgpu.gl.uniform3fv(customLoc, customValue);
                    } else if (d.type === 'vec4') {
                        gpgpu.gl.uniform4fv(customLoc, customValue);
                    } else if (d.type === 'int') {
                        gpgpu.gl.uniform1iv(customLoc, customValue);
                    } else if (d.type === 'ivec2') {
                        gpgpu.gl.uniform2iv(customLoc, customValue);
                    } else if (d.type === 'ivec3') {
                        gpgpu.gl.uniform3iv(customLoc, customValue);
                    } else if (d.type === 'ivec4') {
                        gpgpu.gl.uniform4iv(customLoc, customValue);
                    } else {
                        throw Error("uniform type ".concat(d.type, " is not supported yet."));
                    }
                });
            }
            gpgpu.executeProgram();
        }
        function makeShaderKey(program, inputs, output) {
            var keyInputs = '';
            inputs.concat(output).forEach(function (x) {
                var hasOffset = x.texData != null && x.texData.slice != null && x.texData.slice.flatOffset > 0;
                // TODO: Remove the condition of !x.isUniform.
                if (program.enableShapeUniforms && !x.isUniform) {
                    var xTexShape = x.texData.texShape;
                    var _a = getUniformInfoFromShape(program.packedInputs, x.shape, xTexShape)
                        , useSqueezeShape = _a.useSqueezeShape
                        , uniformShape = _a.uniformShape
                        , keptDims = _a.keptDims;
                    var rank1 = ''
                        , rank2 = ''
                        , rank34 = '';
                    if (uniformShape.length === 1 && program.packedInputs) {
                        var packedTexShape = [Math.ceil(xTexShape[0] / 2), Math.ceil(xTexShape[1] / 2)];
                        rank1 = "".concat(packedTexShape[0] > 1, "_").concat(packedTexShape[1] > 1);
                    } else if (uniformShape.length === 2 && !program.packedInputs) {
                        rank2 = "".concat(uniformShape[0] > 1, "_").concat(uniformShape[1] > 1);
                    } else if (uniformShape.length > 2 && !program.packedInputs) {
                        var strides = tf.util.computeStrides(uniformShape);
                        rank34 = "".concat(strides[0] === xTexShape[1], "_").concat(strides[strides.length - 1] === xTexShape[1]);
                    }
                    var xRank = x.shape.length;
                    var isLogicalShapTexShapeEqual = uniformShape.length === 2 && tf.util.arraysEqual(x.shape, xTexShape);
                    var isScalar = tf.util.sizeFromShape(x.shape) === 1;
                    var broadcastDims = tf.backend_util.getBroadcastDims(x.shape, output.shape);
                    var isInOutTexShapeEqual = !program.packedInputs && xRank === output.shape.length && tf.util.arraysEqual(xTexShape, output.texData.texShape);
                    var isTexShapeGreaterThanOne = program.packedInputs || uniformShape.length > 2 ? '' : "".concat(xTexShape[0] > 1, "_").concat(xTexShape[1] > 1);
                    // These key components are needed due to shader_compiler is embedding
                    // them in the shader.
                    // |xRank| is used to determine the coords length. See
                    // get[Packed]SamplerAtOutputCoords.
                    // |isInOutTexShapeEqual| is used to determine whether going to an
                    // optimization path in getSamplerAtOutputCoords.
                    // |useSqueezeShape| is extracted from squeezeInputInfo of
                    // getSampler[2|3|4]D/getPackedSampler3D.
                    // |isScalar| is extracted from isInputScalar/isOutputScalar in
                    // getPackedSamplerAtOutputCoords.
                    // |broadcastDims| is extracted from get[Packed]SamplerAtOutputCoords.
                    // |isLogicalShapTexShapeEqual| is used in
                    // getOutput[Packed]2DCoords/get[Packed]Sampler2D.
                    // |rank1| is used in getOutputPacked1DCoords.
                    // |rank2| is used in getOutput2DCoords.
                    // |rank34| is used in getSampler3D/getSampler4D.
                    // |isTexShapeGreaterThanOne| are used in
                    // getSampler[Scalar|1D|2D]/getOutput1DCoords.
                    keyInputs += "".concat(xRank, "_").concat(isInOutTexShapeEqual, "_").concat(useSqueezeShape ? keptDims : '', "_").concat(uniformShape.length, "_").concat(isScalar, "_").concat(broadcastDims, "_").concat(isLogicalShapTexShapeEqual, "_").concat(rank1, "_").concat(rank2, "_").concat(rank34, "_").concat(isTexShapeGreaterThanOne, "_").concat(hasOffset);
                } else {
                    var texShape = x.isUniform ? 'uniform' : x.texData.texShape;
                    keyInputs += "".concat(x.shape, "_").concat(texShape, "_").concat(hasOffset);
                }
            });
            var keyUserCode = program.userCode;
            var key = program.constructor.name;
            // Fast string concat. See https://jsperf.com/string-concatenation/14.
            key += '_' + keyInputs + '_' + keyUserCode + "".concat(tf.env().getNumber('WEBGL_VERSION'));
            return key;
        }
        function useShapeUniforms(rank) {
            // TODO: Remove the limitaion of rank <= 4.
            return tf.env().getBool('WEBGL_USE_SHAPES_UNIFORMS') && rank <= 4;
        }

        /**
         * @license
         * Copyright 2019 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var DecodeMatrixProgram = /** @class */
            (function () {
                function DecodeMatrixProgram(outputShape) {
                    this.variableNames = ['A'];
                    this.packedInputs = false;
                    this.packedOutput = true;
                    this.outPackingScheme = PackingScheme.DENSE;
                    this.customUniforms = [{
                        name: 'texShape',
                        type: 'ivec2'
                    }];
                    var glsl = getGlslDifferences();
                    this.outputShape = outputShape;
                    this.enableShapeUniforms = useShapeUniforms(this.outputShape.length);
                    this.userCode = "\n      ivec3 outCoordsFromFlatIndex(int index) {\n        ".concat(this.enableShapeUniforms ? getOutputLogicalCoordinatesFromFlatIndexByUniform(['r', 'c', 'd'], outputShape) : getLogicalCoordinatesFromFlatIndex(['r', 'c', 'd'], outputShape), "\n        return ivec3(r, c, d);\n      }\n\n      void main() {\n        ivec2 resTexRC = ivec2(resultUV.yx * vec2(texShape[0], texShape[1]));\n        int index = 4 * (resTexRC.x * texShape[1] + resTexRC.y);\n\n        vec4 result = vec4(0.);\n\n        for (int i=0; i<4; i++) {\n          int flatIndex = index + i;\n          ivec3 rc = outCoordsFromFlatIndex(flatIndex);\n          result[i] = getA(rc.x, rc.y, rc.z);\n        }\n\n        ").concat(glsl.output, " = result;\n      }\n    ");
                }
                return DecodeMatrixProgram;
            }());

        /**
         * @license
         * Copyright 2019 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var DecodeMatrixPackedProgram = /** @class */
            (function () {
                function DecodeMatrixPackedProgram(outputShape) {
                    this.variableNames = ['A'];
                    this.packedInputs = true;
                    this.packedOutput = true;
                    this.outPackingScheme = PackingScheme.DENSE;
                    this.customUniforms = [{
                        name: 'texShape',
                        type: 'ivec2'
                    }];
                    var glsl = getGlslDifferences();
                    this.outputShape = outputShape;
                    this.enableShapeUniforms = useShapeUniforms(this.outputShape.length);
                    this.userCode = "\n      ivec3 outCoordsFromFlatIndex(int index) {\n        ".concat(this.enableShapeUniforms ? getOutputLogicalCoordinatesFromFlatIndexByUniform(['r', 'c', 'd'], outputShape) : getLogicalCoordinatesFromFlatIndex(['r', 'c', 'd'], outputShape), "\n        return ivec3(r, c, d);\n      }\n\n      void main() {\n        ivec2 resTexRC = ivec2(resultUV.yx * vec2(texShape[0], texShape[1]));\n        int index = 4 * (resTexRC.x * texShape[1] + resTexRC.y);\n\n        vec4 result = vec4(0.);\n\n        for (int i=0; i<4; i++) {\n          int flatIndex = index + i;\n          ivec3 rc = outCoordsFromFlatIndex(flatIndex);\n          result[i] = getChannel(getA(rc.x, rc.y, rc.z), vec2(rc.y, rc.z));\n        }\n\n        ").concat(glsl.output, " = result;\n      }\n    ");
                }
                return DecodeMatrixPackedProgram;
            }());

        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var EncodeFloatProgram = /** @class */
            (function () {
                function EncodeFloatProgram(outputShape) {
                    this.variableNames = ['A'];
                    this.outTexUsage = TextureUsage.DOWNLOAD;
                    var glsl = getGlslDifferences();
                    this.outputShape = outputShape;
                    this.userCode = "\n      ".concat(ENCODE_FLOAT_SNIPPET, "\n\n      void main() {\n        float x = getAAtOutCoords();\n        ").concat(glsl.output, " = encode_float(x);\n      }\n    ");
                }
                return EncodeFloatProgram;
            }());

        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var EncodeFloatPackedProgram = /** @class */
            (function () {
                function EncodeFloatPackedProgram(outputShape) {
                    this.variableNames = ['A'];
                    this.packedInputs = true;
                    this.packedOutput = false;
                    this.outTexUsage = TextureUsage.DOWNLOAD;
                    var glsl = getGlslDifferences();
                    this.outputShape = outputShape;
                    this.userCode = "\n      ".concat(ENCODE_FLOAT_SNIPPET, "\n\n      void main() {\n        ivec3 coords = getOutputCoords();\n        float x = getChannel(getAAtOutCoords(), vec2(coords.y, coords.z));\n        ").concat(glsl.output, " = encode_float(x);\n      }\n    ");
                }
                return EncodeFloatPackedProgram;
            }());

        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var CHANNEL_CHAR_TO_INDEX_MAP = {
            'R': 0,
            'G': 1,
            'B': 2,
            'A': 3
        };
        var EncodeMatrixProgram = /** @class */
            (function () {
                function EncodeMatrixProgram(outputShape, inputIsUnsignedByte, usedChannels) {
                    if (inputIsUnsignedByte === void 0) {
                        inputIsUnsignedByte = false;
                    }
                    if (usedChannels === void 0) {
                        usedChannels = 'RGBA';
                    }
                    this.variableNames = ['A'];
                    this.customUniforms = [{
                        name: 'texShape',
                        type: 'ivec2'
                    }];
                    var glsl = getGlslDifferences();
                    this.outputShape = outputShape;
                    this.enableShapeUniforms = useShapeUniforms(this.outputShape.length);
                    var output = "result";
                    if (inputIsUnsignedByte) {
                        output = "floor(result * 255. + 0.5)";
                    }
                    var mainLoop = '';
                    for (var usedChannelIndex = 0; usedChannelIndex < usedChannels.length; usedChannelIndex++) {
                        var curChannel = usedChannels[usedChannelIndex];
                        mainLoop += "\n          if(offset == ".concat(usedChannelIndex, ") {\n            result = values[").concat(CHANNEL_CHAR_TO_INDEX_MAP[curChannel], "];\n          }");
                    }
                    this.userCode = "\n      ".concat(this.enableShapeUniforms ? getFlatIndexFrom3DOutput() : getFlatIndexFrom3D(outputShape), "\n\n      void main() {\n        ivec3 coords = getOutputCoords();\n        int flatIndex = getFlatIndex(coords);\n        float result = 0.;\n        int offset = imod(flatIndex, ").concat(usedChannels.length, ");\n\n        flatIndex = idiv(flatIndex, ").concat(usedChannels.length, ", 1.);\n\n        int r = flatIndex / texShape[1];\n        if (r < texShape[0]) {\n          int c = imod(flatIndex, texShape[1]);\n          vec2 uv = (vec2(c, r) + halfCR) / vec2(texShape[1], texShape[0]);\n          vec4 values = ").concat(glsl.texture2D, "(A, uv);\n          ").concat(mainLoop, "\n        }\n        ").concat(glsl.output, " = vec4(").concat(output, ", 0., 0., 0.);\n      }\n    ");
                }
                return EncodeMatrixProgram;
            }());

        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        /*
        This is how the shader encodes a tensor with shape = [2, 3, 5]
        (indices are [batch, row, col]).
        
        000|001   002|003   004|xxx   020|021   022|023   024|xxx
        -------   -------   -------   -------   -------   -------
        010|011   012|013   014|xxx   xxx|xxx   xxx|xxx   xxx|xxx
        
        100|101   102|103   104|xxx   120|121   122|123   124|xxx
        -------   -------   -------   -------   -------   -------
        110|111   112|113   114|xxx   xxx|xxx   xxx|xxx   xxx|xxx
        
        Single texels contain only values from the same batch, and from adjacent rows
        and columns.
         */
        var EncodeMatrixPackedProgram = /** @class */
            (function () {
                function EncodeMatrixPackedProgram(outputShape, inputIsUnsignedByte) {
                    if (inputIsUnsignedByte === void 0) {
                        inputIsUnsignedByte = false;
                    }
                    this.variableNames = ['A'];
                    this.packedInputs = false;
                    this.packedOutput = true;
                    this.customUniforms = [{
                        name: 'texShape',
                        type: 'ivec2'
                    }];
                    var glsl = getGlslDifferences();
                    this.outputShape = outputShape;
                    this.enableShapeUniforms = useShapeUniforms(this.outputShape.length);
                    var mainLoop = '';
                    var output = 'result';
                    if (inputIsUnsignedByte) {
                        output = 'floor(result * 255. + 0.5)';
                    }
                    for (var row = 0; row <= 1; row++) {
                        for (var col = 0; col <= 1; col++) {
                            var channel = row * 2 + col;
                            mainLoop += "\n          localCoords = coords;\n          if(localCoords[2] + ".concat(col, " < ").concat(this.enableShapeUniforms ? 'outShape[2]' : "".concat(outputShape[2]), ") {\n          localCoords[2] += ").concat(col, ";\n          if (localCoords[1] + ").concat(row, " < ").concat(this.enableShapeUniforms ? 'outShape[1]' : "".concat(outputShape[1]), ") {\n            localCoords[1] += ").concat(row, ";\n\n            flatIndex = getFlatIndex(localCoords);\n            offset = imod(flatIndex, 4);\n\n            flatIndex = idiv(flatIndex, 4, 1.);\n\n            int r = flatIndex / texShape[1];\n            int c = imod(flatIndex, texShape[1]);\n            vec2 uv = (vec2(c, r) + halfCR) / vec2(texShape[1], texShape[0]);\n            values = ").concat(glsl.texture2D, "(A, uv);\n\n            if (offset == 0) {\n              result[").concat(channel, "] = values[0];\n            } else if (offset == 1) {\n              result[").concat(channel, "] = values[1];\n            } else if (offset == 2) {\n              result[").concat(channel, "] = values[2];\n            } else {\n              result[").concat(channel, "] = values[3];\n            }\n          }\n        }\n        ");
                        }
                    }
                    this.userCode = "\n        ".concat(this.enableShapeUniforms ? getFlatIndexFrom3DOutput() : getFlatIndexFrom3D(outputShape), "\n\n        void main() {\n          ivec3 coords = getOutputCoords();\n\n          vec4 result = vec4(0.);\n          int flatIndex, r, c, offset;\n          ivec3 localCoords;\n          vec2 uv;\n          vec4 values;\n\n          ").concat(mainLoop, "\n\n          ").concat(glsl.output, " = ").concat(output, ";\n        }\n    ");
                }
                return EncodeMatrixPackedProgram;
            }());

        function createVertexShader(gl) {
            var glsl = getGlslDifferences();
            var vertexShaderSource = "".concat(glsl.version, "\n    precision highp float;\n    ").concat(glsl.attribute, " vec3 clipSpacePos;\n    ").concat(glsl.attribute, " vec2 uv;\n    ").concat(glsl.varyingVs, " vec2 resultUV;\n\n    void main() {\n      gl_Position = vec4(clipSpacePos, 1);\n      resultUV = uv;\n    }");
            return createVertexShader$1(gl, vertexShaderSource);
        }
        function createVertexBuffer(gl) {
            // [x y z u v] * [upper-left, lower-left, upper-right, lower-right]
            var vertexArray = new Float32Array([-1, 1, 0, 0, 1, -1, -1, 0, 0, 0, 1, 1, 0, 1, 1, 1, -1, 0, 1, 0]);
            return createStaticVertexBuffer(gl, vertexArray);
        }
        function createIndexBuffer(gl) {
            // OpenGL (and WebGL) have "CCW == front" winding
            var triangleVertexIndices = new Uint16Array([0, 1, 2, 2, 1, 3]);
            return createStaticIndexBuffer(gl, triangleVertexIndices);
        }
        function createAndConfigureTexture(gl, width, height, internalFormat, textureFormat, textureType) {
            validateTextureSize(width, height);
            var texture = createTexture(gl);
            var tex2d = gl.TEXTURE_2D;
            callAndCheck(gl, function () {
                return gl.bindTexture(tex2d, texture);
            });
            callAndCheck(gl, function () {
                return gl.texParameteri(tex2d, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
            });
            callAndCheck(gl, function () {
                return gl.texParameteri(tex2d, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
            });
            callAndCheck(gl, function () {
                return gl.texParameteri(tex2d, gl.TEXTURE_MIN_FILTER, gl.NEAREST);
            });
            callAndCheck(gl, function () {
                return gl.texParameteri(tex2d, gl.TEXTURE_MAG_FILTER, gl.NEAREST);
            });
            if (tf.env().getNumber('WEBGL_VERSION') === 1) {
                callAndCheck(gl, function () {
                    return gl.texImage2D(tex2d, 0, internalFormat, width, height, 0, textureFormat, textureType, null);
                });
            } else {
                callAndCheck(gl, function () {
                    return gl.texStorage2D(tex2d, 1, internalFormat, width, height);
                });
            }
            callAndCheck(gl, function () {
                return gl.bindTexture(gl.TEXTURE_2D, null);
            });
            return {
                texture: texture,
                texShape: [height, width]
            };
        }
        function getInternalFormatForFloat32MatrixTexture(textureConfig) {
            return textureConfig.internalFormatFloat;
        }
        function createFloat32MatrixTexture(gl, rows, columns, textureConfig) {
            var _a = __read(getUnpackedMatrixTextureShapeWidthHeight(rows, columns), 2)
                , width = _a[0]
                , height = _a[1];
            return createAndConfigureTexture(gl, width, height, getInternalFormatForFloat32MatrixTexture(textureConfig), textureConfig.textureFormatFloat, gl.FLOAT);
        }
        function getInternalFormatForFloat16MatrixTexture(textureConfig) {
            return textureConfig.internalFormatHalfFloat;
        }
        function createFloat16MatrixTexture(gl, rows, columns, textureConfig) {
            var _a = __read(getUnpackedMatrixTextureShapeWidthHeight(rows, columns), 2)
                , width = _a[0]
                , height = _a[1];
            return createAndConfigureTexture(gl, width, height, getInternalFormatForFloat16MatrixTexture(textureConfig), textureConfig.textureFormatFloat, textureConfig.textureTypeHalfFloat);
        }
        function getInternalFormatForUnsignedBytesMatrixTexture(textureConfig) {
            return textureConfig.downloadTextureFormat;
        }
        function createUnsignedBytesMatrixTexture(gl, rows, columns, textureConfig) {
            var _a = __read(getUnpackedMatrixTextureShapeWidthHeight(rows, columns), 2)
                , width = _a[0]
                , height = _a[1];
            return createAndConfigureTexture(gl, width, height, getInternalFormatForUnsignedBytesMatrixTexture(textureConfig), gl.RGBA, gl.UNSIGNED_BYTE);
        }
        function getInternalFormatForPackedMatrixTexture(textureConfig) {
            return textureConfig.internalFormatPackedFloat;
        }
        function createPackedMatrixTexture(gl, rows, columns, textureConfig) {
            var _a = __read(getPackedMatrixTextureShapeWidthHeight(rows, columns), 2)
                , width = _a[0]
                , height = _a[1];
            return createAndConfigureTexture(gl, width, height, getInternalFormatForPackedMatrixTexture(textureConfig), gl.RGBA, gl.FLOAT);
        }
        function getInternalFormatForFloat16PackedMatrixTexture(textureConfig) {
            return textureConfig.internalFormatPackedHalfFloat;
        }
        function createFloat16PackedMatrixTexture(gl, rows, columns, textureConfig) {
            var _a = __read(getPackedMatrixTextureShapeWidthHeight(rows, columns), 2)
                , width = _a[0]
                , height = _a[1];
            return createAndConfigureTexture(gl, width, height, getInternalFormatForFloat16PackedMatrixTexture(textureConfig), gl.RGBA, textureConfig.textureTypeHalfFloat);
        }
        function bindVertexProgramAttributeStreams(gl, program, vertexBuffer) {
            var posOffset = 0;
            // x is the first buffer element
            var uvOffset = 3 * 4;
            // uv comes after [x y z]
            var stride = (3 * 4) + (2 * 4);
            // xyz + uv, each entry is 4-byte float.
            callAndCheck(gl, function () {
                return gl.bindBuffer(gl.ARRAY_BUFFER, vertexBuffer);
            });
            var success = bindVertexBufferToProgramAttribute(gl, program, 'clipSpacePos', vertexBuffer, 3, stride, posOffset);
            return success && bindVertexBufferToProgramAttribute(gl, program, 'uv', vertexBuffer, 2, stride, uvOffset);
        }
        function uploadDenseMatrixToTexture(gl, texture, width, height, data, textureConfig) {
            callAndCheck(gl, function () {
                return gl.bindTexture(gl.TEXTURE_2D, texture);
            });
            var dataForUpload, texelDataType, internalFormat;
            if (data instanceof Uint8Array) {
                dataForUpload = new Uint8Array(width * height * 4);
                texelDataType = gl.UNSIGNED_BYTE;
                internalFormat = gl.RGBA;
            } else {
                dataForUpload = new Float32Array(width * height * 4);
                texelDataType = gl.FLOAT;
                internalFormat = textureConfig.internalFormatPackedFloat;
            }
            dataForUpload.set(data);
            if (tf.env().getNumber('WEBGL_VERSION') === 2) {
                callAndCheck(gl, function () {
                    return gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, width, height, gl.RGBA, texelDataType, dataForUpload);
                });
            } else {
                callAndCheck(gl, function () {
                    return gl.texImage2D(gl.TEXTURE_2D, 0, internalFormat, width, height, 0, gl.RGBA, texelDataType, dataForUpload);
                });
            }
            callAndCheck(gl, function () {
                return gl.bindTexture(gl.TEXTURE_2D, null);
            });
        }
        function uploadPixelDataToTexture(gl, texture, pixels) {
            callAndCheck(gl, function () {
                return gl.bindTexture(gl.TEXTURE_2D, texture);
            });
            if (pixels.data instanceof Uint8Array) {
                if (tf.env().getNumber('WEBGL_VERSION') === 2) {
                    callAndCheck(gl, function () {
                        return gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, pixels.width, pixels.height, gl.RGBA, gl.UNSIGNED_BYTE, pixels.data);
                    });
                } else {
                    callAndCheck(gl, function () {
                        return gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, pixels.width, pixels.height, 0, gl.RGBA, gl.UNSIGNED_BYTE, pixels.data);
                    });
                }
            } else {
                if (tf.env().getNumber('WEBGL_VERSION') === 2) {
                    callAndCheck(gl, function () {
                        return gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, gl.RGBA, gl.UNSIGNED_BYTE, pixels);
                    });
                } else {
                    callAndCheck(gl, function () {
                        return gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, pixels);
                    });
                }
            }
            callAndCheck(gl, function () {
                return gl.bindTexture(gl.TEXTURE_2D, null);
            });
        }
        function createBufferFromOutputTexture(gl2, rows, columns, textureConfig) {
            // Create and bind the buffer.
            var buffer = gl2.createBuffer();
            callAndCheck(gl2, function () {
                return gl2.bindBuffer(gl2.PIXEL_PACK_BUFFER, buffer);
            });
            // Initialize the buffer to the size of the texture in bytes.
            var bytesPerFloat = 4;
            var valuesPerTexel = 4;
            var bufferSizeBytes = bytesPerFloat * valuesPerTexel * rows * columns;
            callAndCheck(gl2, function () {
                return gl2.bufferData(gl2.PIXEL_PACK_BUFFER, bufferSizeBytes, gl2.STREAM_READ);
            });
            // Enqueue a command on the GPU command queue to copy of texture into the
            // buffer.
            callAndCheck(gl2, function () {
                return gl2.readPixels(0, 0, columns, rows, gl2.RGBA, gl2.FLOAT, 0);
            });
            callAndCheck(gl2, function () {
                return gl2.bindBuffer(gl2.PIXEL_PACK_BUFFER, null);
            });
            return buffer;
        }
        function downloadFloat32MatrixFromBuffer(gl, buffer, size) {
            var gl2 = gl;
            var downloadTarget = new Float32Array(size);
            gl2.bindBuffer(gl2.PIXEL_PACK_BUFFER, buffer);
            gl2.getBufferSubData(gl2.PIXEL_PACK_BUFFER, 0, downloadTarget);
            gl2.bindBuffer(gl2.PIXEL_PACK_BUFFER, null);
            return downloadTarget;
        }
        function downloadByteEncodedFloatMatrixFromOutputTexture(gl, rows, columns, textureConfig) {
            var _a = __read(getUnpackedMatrixTextureShapeWidthHeight(rows, columns), 2)
                , w = _a[0]
                , h = _a[1];
            var numChannels = 4;
            var downloadTarget = new Uint8Array(getUnpackedArraySizeFromMatrixSize(rows * columns, numChannels));
            callAndCheck(gl, function () {
                return gl.readPixels(0, 0, w, h, textureConfig.downloadTextureFormat, gl.UNSIGNED_BYTE, downloadTarget);
            });
            // By wrapping the buffer in a Float32Array, we use native browser IEEE 754
            // decoding of the 4 bytes that back each 32 bit float.
            return new Float32Array(downloadTarget.buffer);
        }
        function downloadPackedMatrixFromBuffer(gl, buffer, batch, rows, cols, physicalRows, physicalCols, textureConfig) {
            var gl2 = gl;
            var downloadTarget = new Float32Array(getPackedRGBAArraySizeFromMatrixShape(physicalRows, physicalCols));
            gl2.bindBuffer(gl2.PIXEL_PACK_BUFFER, buffer);
            gl2.getBufferSubData(gl2.PIXEL_PACK_BUFFER, 0, downloadTarget);
            gl2.bindBuffer(gl2.PIXEL_PACK_BUFFER, null);
            return downloadTarget;
        }
        function downloadMatrixFromPackedOutputTexture(gl, physicalRows, physicalCols) {
            var packedRGBA = new Float32Array(physicalRows * physicalCols * 4);
            callAndCheck(gl, function () {
                return gl.readPixels(0, 0, physicalCols, physicalRows, gl.RGBA, gl.FLOAT, packedRGBA);
            });
            return packedRGBA;
        }

        var gpgpu_util = {
            __proto__: null,
            createVertexShader: createVertexShader,
            createVertexBuffer: createVertexBuffer,
            createIndexBuffer: createIndexBuffer,
            getInternalFormatForFloat32MatrixTexture: getInternalFormatForFloat32MatrixTexture,
            createFloat32MatrixTexture: createFloat32MatrixTexture,
            getInternalFormatForFloat16MatrixTexture: getInternalFormatForFloat16MatrixTexture,
            createFloat16MatrixTexture: createFloat16MatrixTexture,
            getInternalFormatForUnsignedBytesMatrixTexture: getInternalFormatForUnsignedBytesMatrixTexture,
            createUnsignedBytesMatrixTexture: createUnsignedBytesMatrixTexture,
            getInternalFormatForPackedMatrixTexture: getInternalFormatForPackedMatrixTexture,
            createPackedMatrixTexture: createPackedMatrixTexture,
            getInternalFormatForFloat16PackedMatrixTexture: getInternalFormatForFloat16PackedMatrixTexture,
            createFloat16PackedMatrixTexture: createFloat16PackedMatrixTexture,
            bindVertexProgramAttributeStreams: bindVertexProgramAttributeStreams,
            uploadDenseMatrixToTexture: uploadDenseMatrixToTexture,
            uploadPixelDataToTexture: uploadPixelDataToTexture,
            createBufferFromOutputTexture: createBufferFromOutputTexture,
            downloadFloat32MatrixFromBuffer: downloadFloat32MatrixFromBuffer,
            downloadByteEncodedFloatMatrixFromOutputTexture: downloadByteEncodedFloatMatrixFromOutputTexture,
            downloadPackedMatrixFromBuffer: downloadPackedMatrixFromBuffer,
            downloadMatrixFromPackedOutputTexture: downloadMatrixFromPackedOutputTexture
        };

        var GPGPUContext = /** @class */
            (function () {
                function GPGPUContext(gl) {
                    this.outputTexture = null;
                    this.program = null;
                    this.disposed = false;
                    this.itemsToPoll = [];
                    var glVersion = tf.env().getNumber('WEBGL_VERSION');
                    if (gl != null) {
                        this.gl = gl;
                        setWebGLContext(glVersion, gl);
                    } else {
                        this.gl = getWebGLContext(glVersion);
                    }
                    gl = this.gl;
                    if (tf.env().getNumber('WEBGL_VERSION') === 2) {
                        var gl2_1 = gl;
                        this.createVertexArray = function () {
                            return callAndCheck(gl2_1, function () {
                                return gl2_1.createVertexArray();
                            });
                        }
                            ;
                        this.bindVertexArray = function (vao) {
                            return callAndCheck(gl2_1, function () {
                                return gl2_1.bindVertexArray(vao);
                            });
                        }
                            ;
                        this.deleteVertexArray = function (vao) {
                            return callAndCheck(gl2_1, function () {
                                return gl2_1.deleteVertexArray(vao);
                            });
                        }
                            ;
                        this.getVertexArray = function () {
                            return callAndCheck(gl2_1, function () {
                                return gl2_1.getParameter(gl2_1.VERTEX_ARRAY_BINDING);
                            });
                        }
                            ;
                    } else if (gl != null) {
                        var ext_1 = gl.getExtension('OES_vertex_array_object');
                        if (ext_1 == null) {
                            throw new Error('All WebGL1 implementations are expected to offer' + ' OES_vertex_array_object.');
                        }
                        this.createVertexArray = function () {
                            return callAndCheck(gl, function () {
                                return ext_1.createVertexArrayOES();
                            });
                        }
                            ;
                        this.bindVertexArray = function (vao) {
                            return callAndCheck(gl, function () {
                                return ext_1.bindVertexArrayOES(vao);
                            });
                        }
                            ;
                        this.deleteVertexArray = function (vao) {
                            return callAndCheck(gl, function () {
                                return ext_1.deleteVertexArrayOES(vao);
                            });
                        }
                            ;
                        this.getVertexArray = function () {
                            return callAndCheck(gl, function () {
                                return gl.getParameter(ext_1.VERTEX_ARRAY_BINDING_OES);
                            });
                        }
                            ;
                    }
                    // WebGL 2.0 enables texture floats without an extension.
                    var COLOR_BUFFER_FLOAT = 'WEBGL_color_buffer_float';
                    var COLOR_BUFFER_HALF_FLOAT = 'EXT_color_buffer_half_float';
                    this.parallelCompilationExtension = this.gl.getExtension('KHR_parallel_shader_compile');
                    if (tf.env().getNumber('WEBGL_VERSION') === 1) {
                        var TEXTURE_FLOAT = 'OES_texture_float';
                        var TEXTURE_HALF_FLOAT = 'OES_texture_half_float';
                        this.textureFloatExtension = getExtensionOrThrow(this.gl, TEXTURE_FLOAT);
                        if (hasExtension(this.gl, TEXTURE_HALF_FLOAT)) {
                            this.textureHalfFloatExtension = getExtensionOrThrow(this.gl, TEXTURE_HALF_FLOAT);
                        } else if (tf.env().get('WEBGL_FORCE_F16_TEXTURES')) {
                            throw new Error('GL context does not support half float textures, yet the ' + 'environment flag WEBGL_FORCE_F16_TEXTURES is set to true.');
                        }
                        this.colorBufferFloatExtension = this.gl.getExtension(COLOR_BUFFER_FLOAT);
                        if (hasExtension(this.gl, COLOR_BUFFER_HALF_FLOAT)) {
                            this.colorBufferHalfFloatExtension = getExtensionOrThrow(this.gl, COLOR_BUFFER_HALF_FLOAT);
                        } else if (tf.env().get('WEBGL_FORCE_F16_TEXTURES')) {
                            throw new Error('GL context does not support color renderable half floats, yet ' + 'the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.');
                        }
                    } else {
                        COLOR_BUFFER_FLOAT = 'EXT_color_buffer_float';
                        if (hasExtension(this.gl, COLOR_BUFFER_FLOAT)) {
                            this.colorBufferFloatExtension = this.gl.getExtension(COLOR_BUFFER_FLOAT);
                        } else if (hasExtension(this.gl, COLOR_BUFFER_HALF_FLOAT)) {
                            this.colorBufferHalfFloatExtension = this.gl.getExtension(COLOR_BUFFER_HALF_FLOAT);
                        } else {
                            throw new Error('GL context does not support color renderable floats');
                        }
                    }
                    this.vertexBuffer = createVertexBuffer(this.gl);
                    this.indexBuffer = createIndexBuffer(this.gl);
                    this.framebuffer = createFramebuffer(this.gl);
                    this.textureConfig = getTextureConfig(this.gl, this.textureHalfFloatExtension);
                }
                Object.defineProperty(GPGPUContext.prototype, "debug", {
                    get: function () {
                        return tf.env().getBool('DEBUG');
                    },
                    enumerable: false,
                    configurable: true
                });
                GPGPUContext.prototype.dispose = function () {
                    var _this = this;
                    if (this.disposed) {
                        return;
                    }
                    if (this.program != null) {
                        console.warn('Disposing a GPGPUContext that still has a bound WebGLProgram.' + ' This is probably a resource leak, delete the program with ' + 'GPGPUContext.deleteProgram before disposing.');
                    }
                    if (this.outputTexture != null) {
                        console.warn('Disposing a GPGPUContext that still has a bound output matrix ' + 'texture.  This is probably a resource leak, delete the output ' + 'matrix texture with GPGPUContext.deleteMatrixTexture before ' + 'disposing.');
                    }
                    var gl = this.gl;
                    callAndCheck(gl, function () {
                        return gl.finish();
                    });
                    callAndCheck(gl, function () {
                        return gl.bindFramebuffer(gl.FRAMEBUFFER, null);
                    });
                    callAndCheck(gl, function () {
                        return gl.deleteFramebuffer(_this.framebuffer);
                    });
                    callAndCheck(gl, function () {
                        return gl.bindBuffer(gl.ARRAY_BUFFER, null);
                    });
                    callAndCheck(gl, function () {
                        return gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, null);
                    });
                    callAndCheck(gl, function () {
                        return gl.deleteBuffer(_this.indexBuffer);
                    });
                    this.disposed = true;
                }
                    ;
                GPGPUContext.prototype.createFloat32MatrixTexture = function (rows, columns) {
                    this.throwIfDisposed();
                    return createFloat32MatrixTexture(this.gl, rows, columns, this.textureConfig);
                }
                    ;
                GPGPUContext.prototype.createFloat16MatrixTexture = function (rows, columns) {
                    this.throwIfDisposed();
                    return createFloat16MatrixTexture(this.gl, rows, columns, this.textureConfig);
                }
                    ;
                GPGPUContext.prototype.createUnsignedBytesMatrixTexture = function (rows, columns) {
                    this.throwIfDisposed();
                    return createUnsignedBytesMatrixTexture(this.gl, rows, columns, this.textureConfig);
                }
                    ;
                GPGPUContext.prototype.uploadPixelDataToTexture = function (texture, pixels) {
                    this.throwIfDisposed();
                    uploadPixelDataToTexture(this.gl, texture, pixels);
                }
                    ;
                GPGPUContext.prototype.uploadDenseMatrixToTexture = function (texture, width, height, data) {
                    this.throwIfDisposed();
                    uploadDenseMatrixToTexture(this.gl, texture, width, height, data, this.textureConfig);
                }
                    ;
                GPGPUContext.prototype.createFloat16PackedMatrixTexture = function (rows, columns) {
                    this.throwIfDisposed();
                    return createFloat16PackedMatrixTexture(this.gl, rows, columns, this.textureConfig);
                }
                    ;
                GPGPUContext.prototype.createPackedMatrixTexture = function (rows, columns) {
                    this.throwIfDisposed();
                    return createPackedMatrixTexture(this.gl, rows, columns, this.textureConfig);
                }
                    ;
                GPGPUContext.prototype.deleteMatrixTexture = function (texture) {
                    var _this = this;
                    this.throwIfDisposed();
                    if (this.outputTexture === texture) {
                        unbindColorTextureFromFramebuffer(this.gl, this.framebuffer);
                        this.outputTexture = null;
                    }
                    callAndCheck(this.gl, function () {
                        return _this.gl.deleteTexture(texture);
                    });
                }
                    ;
                GPGPUContext.prototype.downloadByteEncodedFloatMatrixFromOutputTexture = function (texture, rows, columns) {
                    var _this = this;
                    return this.downloadMatrixDriver(texture, function () {
                        return downloadByteEncodedFloatMatrixFromOutputTexture(_this.gl, rows, columns, _this.textureConfig);
                    });
                }
                    ;
                GPGPUContext.prototype.downloadPackedMatrixFromBuffer = function (buffer, batch, rows, columns, physicalRows, physicalCols) {
                    return downloadPackedMatrixFromBuffer(this.gl, buffer, batch, rows, columns, physicalRows, physicalCols, this.textureConfig);
                }
                    ;
                GPGPUContext.prototype.downloadFloat32MatrixFromBuffer = function (buffer, size) {
                    return downloadFloat32MatrixFromBuffer(this.gl, buffer, size);
                }
                    ;
                GPGPUContext.prototype.createBufferFromTexture = function (texture, rows, columns) {
                    this.bindTextureToFrameBuffer(texture);
                    var result = createBufferFromOutputTexture(this.gl, rows, columns, this.textureConfig);
                    this.unbindTextureToFrameBuffer();
                    return result;
                }
                    ;
                GPGPUContext.prototype.createAndWaitForFence = function () {
                    var fenceContext = this.createFence(this.gl);
                    return this.pollFence(fenceContext);
                }
                    ;
                GPGPUContext.prototype.createFence = function (gl) {
                    var _this = this;
                    var query;
                    var isFencePassed;
                    if (tf.env().getBool('WEBGL_FENCE_API_ENABLED')) {
                        var gl2_2 = gl;
                        var sync_1 = gl2_2.fenceSync(gl2_2.SYNC_GPU_COMMANDS_COMPLETE, 0);
                        gl.flush();
                        isFencePassed = function () {
                            var status = gl2_2.clientWaitSync(sync_1, 0, 0);
                            return status === gl2_2.ALREADY_SIGNALED || status === gl2_2.CONDITION_SATISFIED;
                        }
                            ;
                        query = sync_1;
                    } else if (tf.env().getNumber('WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION') > 0) {
                        query = this.beginQuery();
                        this.endQuery();
                        isFencePassed = function () {
                            return _this.isQueryAvailable(query, tf.env().getNumber('WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION'));
                        }
                            ;
                    } else {
                        // If we have no way to fence, return true immediately. This will fire in
                        // WebGL 1.0 when there is no disjoint query timer. In this case, because
                        // the fence passes immediately, we'll immediately ask for a download of
                        // the texture, which will cause the UI thread to hang.
                        isFencePassed = function () {
                            return true;
                        }
                            ;
                    }
                    return {
                        query: query,
                        isFencePassed: isFencePassed
                    };
                }
                    ;
                GPGPUContext.prototype.downloadMatrixFromPackedTexture = function (texture, physicalRows, physicalCols) {
                    var _this = this;
                    return this.downloadMatrixDriver(texture, function () {
                        return downloadMatrixFromPackedOutputTexture(_this.gl, physicalRows, physicalCols);
                    });
                }
                    ;
                GPGPUContext.prototype.createProgram = function (fragmentShader) {
                    var _this = this;
                    this.throwIfDisposed();
                    var gl = this.gl;
                    if (this.vertexShader == null) {
                        this.vertexShader = createVertexShader(gl);
                    }
                    var program = createProgram(gl);
                    callAndCheck(gl, function () {
                        return gl.attachShader(program, _this.vertexShader);
                    });
                    callAndCheck(gl, function () {
                        return gl.attachShader(program, fragmentShader);
                    });
                    linkProgram(gl, program);
                    var program2;
                    {
                        program2 = Object.assign(program, {
                            vao: this.createVertexArray(),
                        });
                        this.bindVertexArray(program2.vao);
                        // Bind index buffer, and vertex buffers based on program attrib
                        // locations.
                        callAndCheck(gl, function () {
                            return gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, _this.indexBuffer);
                        });
                        console.assert(bindVertexProgramAttributeStreams(gl, program2, this.vertexBuffer), 'gpgpu_util.bindVertexProgramAttributeStreams not fully successful.');
                        if (this.debug) {
                            validateProgram(gl, program2);
                        }
                    }
                    this.setProgram(program2);
                    return program2;
                }
                    ;
                GPGPUContext.prototype.deleteProgram = function (program) {
                    var _this = this;
                    this.throwIfDisposed();
                    if (program === this.program) {
                        this.program = null;
                    }
                    if (program != null) {
                        callAndCheck(this.gl, function () {
                            return _this.gl.deleteProgram(program);
                        });
                        this.deleteVertexArray(program.vao);
                    }
                }
                    ;
                GPGPUContext.prototype.setProgram = function (program) {
                    var _this = this;
                    this.throwIfDisposed();
                    this.program = program;
                    if (this.program != null) {
                        this.bindVertexArray(this.program.vao);
                        if (this.debug) {
                            validateProgram(this.gl, this.program);
                        }
                    }
                    callAndCheck(this.gl, function () {
                        return _this.gl.useProgram(program);
                    });
                }
                    ;
                GPGPUContext.prototype.getUniformLocation = function (program, uniformName, shouldThrow) {
                    if (shouldThrow === void 0) {
                        shouldThrow = true;
                    }
                    this.throwIfDisposed();
                    if (shouldThrow) {
                        return getProgramUniformLocationOrThrow(this.gl, program, uniformName);
                    } else {
                        return getProgramUniformLocation(this.gl, program, uniformName);
                    }
                }
                    ;
                GPGPUContext.prototype.getAttributeLocation = function (program, attribute) {
                    var _this = this;
                    this.throwIfDisposed();
                    return callAndCheck(this.gl, function () {
                        return _this.gl.getAttribLocation(program, attribute);
                    });
                }
                    ;
                GPGPUContext.prototype.getUniformLocationNoThrow = function (program, uniformName) {
                    this.throwIfDisposed();
                    return this.gl.getUniformLocation(program, uniformName);
                }
                    ;
                GPGPUContext.prototype.setInputMatrixTexture = function (inputMatrixTexture, uniformLocation, textureUnit) {
                    this.throwIfDisposed();
                    this.throwIfNoProgram();
                    bindTextureToProgramUniformSampler(this.gl, inputMatrixTexture, uniformLocation, textureUnit);
                }
                    ;
                GPGPUContext.prototype.setOutputMatrixTexture = function (outputMatrixTexture, rows, columns) {
                    this.setOutputMatrixTextureDriver(outputMatrixTexture, columns, rows);
                }
                    ;
                GPGPUContext.prototype.setOutputPackedMatrixTexture = function (outputPackedMatrixTexture, rows, columns) {
                    this.throwIfDisposed();
                    var _a = __read(getPackedMatrixTextureShapeWidthHeight(rows, columns), 2)
                        , width = _a[0]
                        , height = _a[1];
                    this.setOutputMatrixTextureDriver(outputPackedMatrixTexture, width, height);
                }
                    ;
                GPGPUContext.prototype.setOutputMatrixWriteRegion = function (startRow, numRows, startColumn, numColumns) {
                    this.setOutputMatrixWriteRegionDriver(startColumn, startRow, numColumns, numRows);
                }
                    ;
                GPGPUContext.prototype.setOutputPackedMatrixWriteRegion = function (startRow, numRows, startColumn, numColumns) {
                    throw new Error('setOutputPackedMatrixWriteRegion not implemented.');
                }
                    ;
                GPGPUContext.prototype.debugValidate = function () {
                    if (this.program != null) {
                        validateProgram(this.gl, this.program);
                    }
                    validateFramebuffer(this.gl);
                }
                    ;
                GPGPUContext.prototype.executeProgram = function () {
                    this.throwIfDisposed();
                    this.throwIfNoProgram();
                    var gl = this.gl;
                    if (this.debug) {
                        var boundVao = this.getVertexArray();
                        console.assert(boundVao === this.program.vao, 'VAO changed between setProgram and executeProgram!');
                        this.debugValidate();
                    }
                    callAndCheck(gl, function () {
                        return gl.drawElements(gl.TRIANGLES, 6, gl.UNSIGNED_SHORT, 0);
                    });
                }
                    ;
                GPGPUContext.prototype.blockUntilAllProgramsCompleted = function () {
                    var _this = this;
                    this.throwIfDisposed();
                    callAndCheck(this.gl, function () {
                        return _this.gl.finish();
                    });
                }
                    ;
                GPGPUContext.prototype.getQueryTimerExtension = function () {
                    if (this.disjointQueryTimerExtension == null) {
                        this.disjointQueryTimerExtension = getExtensionOrThrow(this.gl, tf.env().getNumber('WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION') === 2 ? 'EXT_disjoint_timer_query_webgl2' : 'EXT_disjoint_timer_query');
                    }
                    return this.disjointQueryTimerExtension;
                }
                    ;
                GPGPUContext.prototype.getQueryTimerExtensionWebGL2 = function () {
                    return this.getQueryTimerExtension();
                }
                    ;
                GPGPUContext.prototype.getQueryTimerExtensionWebGL1 = function () {
                    return this.getQueryTimerExtension();
                }
                    ;
                GPGPUContext.prototype.beginQuery = function () {
                    if (tf.env().getNumber('WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION') === 2) {
                        var gl2 = this.gl;
                        var ext_2 = this.getQueryTimerExtensionWebGL2();
                        var query_1 = gl2.createQuery();
                        gl2.beginQuery(ext_2.TIME_ELAPSED_EXT, query_1);
                        return query_1;
                    }
                    var ext = this.getQueryTimerExtensionWebGL1();
                    var query = ext.createQueryEXT();
                    ext.beginQueryEXT(ext.TIME_ELAPSED_EXT, query);
                    return query;
                }
                    ;
                GPGPUContext.prototype.endQuery = function () {
                    if (tf.env().getNumber('WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION') === 2) {
                        var gl2 = this.gl;
                        var ext_3 = this.getQueryTimerExtensionWebGL2();
                        gl2.endQuery(ext_3.TIME_ELAPSED_EXT);
                        return;
                    }
                    var ext = this.getQueryTimerExtensionWebGL1();
                    ext.endQueryEXT(ext.TIME_ELAPSED_EXT);
                }
                    ;
                GPGPUContext.prototype.waitForQueryAndGetTime = function (query) {
                    return __awaiter(this, void 0, void 0, function () {
                        var _this = this;
                        return __generator(this, function (_a) {
                            switch (_a.label) {
                                case 0:
                                    return [4 /*yield*/
                                        , tf.util.repeatedTry(function () {
                                            return _this.disposed || // while testing contexts are created / disposed
                                                // in rapid succession, so without this check we
                                                // may poll for the query timer indefinitely
                                                _this.isQueryAvailable(query, tf.env().getNumber('WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION'));
                                        })];
                                case 1:
                                    _a.sent();
                                    return [2 /*return*/
                                        , this.getQueryTime(query, tf.env().getNumber('WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION'))];
                            }
                        });
                    });
                }
                    ;
                GPGPUContext.prototype.getQueryTime = function (query, queryTimerVersion) {
                    if (queryTimerVersion === 0) {
                        return null;
                    }
                    if (queryTimerVersion === 2) {
                        var gl2 = this.gl;
                        var timeElapsedNanos = gl2.getQueryParameter(query, gl2.QUERY_RESULT);
                        // Return milliseconds.
                        return timeElapsedNanos / 1000000;
                    } else {
                        var ext = this.getQueryTimerExtensionWebGL1();
                        var timeElapsedNanos = ext.getQueryObjectEXT(query, ext.QUERY_RESULT_EXT);
                        // Return milliseconds.
                        return timeElapsedNanos / 1000000;
                    }
                }
                    ;
                GPGPUContext.prototype.isQueryAvailable = function (query, queryTimerVersion) {
                    if (queryTimerVersion === 0) {
                        return true;
                    }
                    if (queryTimerVersion === 2) {
                        var gl2 = this.gl;
                        var ext = this.getQueryTimerExtensionWebGL2();
                        var available = gl2.getQueryParameter(query, gl2.QUERY_RESULT_AVAILABLE);
                        if (this.disjoint == null) {
                            this.disjoint = this.gl.getParameter(ext.GPU_DISJOINT_EXT);
                        }
                        return available && !this.disjoint;
                    } else {
                        var ext = this.getQueryTimerExtensionWebGL1();
                        var available = ext.getQueryObjectEXT(query, ext.QUERY_RESULT_AVAILABLE_EXT);
                        if (this.disjoint == null) {
                            this.disjoint = this.gl.getParameter(ext.GPU_DISJOINT_EXT);
                        }
                        return available && !this.disjoint;
                    }
                }
                    ;
                GPGPUContext.prototype.pollFence = function (fenceContext) {
                    var _this = this;
                    return new Promise(function (resolve) {
                        _this.addItemToPoll(function () {
                            return fenceContext.isFencePassed();
                        }, function () {
                            return resolve();
                        });
                    }
                    );
                }
                    ;
                GPGPUContext.prototype.pollItems = function () {
                    // Find the last query that has finished.
                    var index = linearSearchLastTrue(this.itemsToPoll.map(function (x) {
                        return x.isDoneFn;
                    }));
                    for (var i = 0; i <= index; ++i) {
                        var resolveFn = this.itemsToPoll[i].resolveFn;
                        resolveFn();
                    }
                    this.itemsToPoll = this.itemsToPoll.slice(index + 1);
                }
                    ;
                GPGPUContext.prototype.addItemToPoll = function (isDoneFn, resolveFn) {
                    var _this = this;
                    this.itemsToPoll.push({
                        isDoneFn: isDoneFn,
                        resolveFn: resolveFn
                    });
                    if (this.itemsToPoll.length > 1) {
                        // We already have a running loop that polls.
                        return;
                    }
                    // Start a new loop that polls.
                    var scheduleFn = undefined;
                    if ('setTimeoutCustom' in tf.env().platform) {
                        scheduleFn = tf.env().platform.setTimeoutCustom.bind(tf.env().platform);
                    }
                    tf.util.repeatedTry(function () {
                        _this.pollItems();
                        // End the loop if no more items to poll.
                        return _this.itemsToPoll.length === 0;
                    }, function () {
                        return 0;
                    }, null, scheduleFn);
                }
                    ;
                GPGPUContext.prototype.bindTextureToFrameBuffer = function (texture) {
                    this.throwIfDisposed();
                    bindColorTextureToFramebuffer(this.gl, texture, this.framebuffer);
                    if (this.debug) {
                        validateFramebuffer(this.gl);
                    }
                }
                    ;
                GPGPUContext.prototype.unbindTextureToFrameBuffer = function () {
                    if (this.outputTexture != null) {
                        bindColorTextureToFramebuffer(this.gl, this.outputTexture, this.framebuffer);
                        if (this.debug) {
                            validateFramebuffer(this.gl);
                        }
                    } else {
                        unbindColorTextureFromFramebuffer(this.gl, this.framebuffer);
                    }
                }
                    ;
                GPGPUContext.prototype.downloadMatrixDriver = function (texture, downloadAndDecode) {
                    this.bindTextureToFrameBuffer(texture);
                    var result = downloadAndDecode();
                    this.unbindTextureToFrameBuffer();
                    return result;
                }
                    ;
                GPGPUContext.prototype.setOutputMatrixTextureDriver = function (outputMatrixTextureMaybePacked, width, height) {
                    this.throwIfDisposed();
                    var gl = this.gl;
                    bindColorTextureToFramebuffer(gl, outputMatrixTextureMaybePacked, this.framebuffer);
                    if (this.debug) {
                        validateFramebuffer(gl);
                    }
                    this.outputTexture = outputMatrixTextureMaybePacked;
                    callAndCheck(gl, function () {
                        return gl.viewport(0, 0, width, height);
                    });
                    callAndCheck(gl, function () {
                        return gl.scissor(0, 0, width, height);
                    });
                }
                    ;
                GPGPUContext.prototype.setOutputMatrixWriteRegionDriver = function (x, y, width, height) {
                    var _this = this;
                    this.throwIfDisposed();
                    callAndCheck(this.gl, function () {
                        return _this.gl.scissor(x, y, width, height);
                    });
                }
                    ;
                GPGPUContext.prototype.throwIfDisposed = function () {
                    if (this.disposed) {
                        throw new Error('Attempted to use disposed GPGPUContext.');
                    }
                }
                    ;
                GPGPUContext.prototype.throwIfNoProgram = function () {
                    if (this.program == null) {
                        throw new Error('No GPU program is currently set.');
                    }
                }
                    ;
                return GPGPUContext;
            }());
        /**
         * Finds the index of the last true element using linear search.
         * Note: We can't do binary search because Chrome expects us to explicitly
         * test all fences before download:
         * https://github.com/tensorflow/tfjs/issues/1145
         */
        function linearSearchLastTrue(arr) {
            var i = 0;
            for (; i < arr.length; ++i) {
                var isDone = arr[i]();
                if (!isDone) {
                    break;
                }
            }
            return i - 1;
        }

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the License);
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an AS IS BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function simpleAbsImpl(vals) {
            var resultValues = new Float32Array(vals.length);
            for (var i = 0; i < vals.length; ++i) {
                resultValues[i] = Math.abs(vals[i]);
            }
            return resultValues;
        }

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        /**
         * Template that creates implementation for binary ops. Supports broadcast.
         */
        function createSimpleBinaryKernelImpl(op) {
            return function (aShape, bShape, aVals, bVals, dtype) {
                var newShape = tf.backend_util.assertAndGetBroadcastShape(aShape, bShape);
                var resultRank = newShape.length;
                var resultStrides = tf.util.computeStrides(newShape);
                var resultSize = tf.util.sizeFromShape(newShape);
                var result = tf.util.getTypedArrayFromDType(dtype, resultSize);
                var aRank = aShape.length;
                var bRank = bShape.length;
                var aStrides = tf.util.computeStrides(aShape);
                var bStrides = tf.util.computeStrides(bShape);
                var aBroadcastDims = tf.backend_util.getBroadcastDims(aShape, newShape);
                var bBroadcastDims = tf.backend_util.getBroadcastDims(bShape, newShape);
                if (aBroadcastDims.length + bBroadcastDims.length === 0) {
                    for (var i = 0; i < result.length; ++i) {
                        result[i] = op(aVals[i % aVals.length], bVals[i % bVals.length]);
                    }
                } else {
                    var _loop_1 = function (i) {
                        var loc = tf.util.indexToLoc(i, resultRank, resultStrides);
                        var aLoc = loc.slice(-aRank);
                        aBroadcastDims.forEach(function (d) {
                            return aLoc[d] = 0;
                        });
                        var aIndex = tf.util.locToIndex(aLoc, aRank, aStrides);
                        var bLoc = loc.slice(-bRank);
                        bBroadcastDims.forEach(function (d) {
                            return bLoc[d] = 0;
                        });
                        var bIndex = tf.util.locToIndex(bLoc, bRank, bStrides);
                        result[i] = op(aVals[aIndex], bVals[bIndex]);
                    };
                    for (var i = 0; i < result.length; ++i) {
                        _loop_1(i);
                    }
                }
                return [result, newShape];
            }
                ;
        }

        function castImpl(values, shape, inputType, dtype) {
            if (dtype === 'int32') {
                var resultValues = Int32Array.from(values);
                return [shape, 'int32', resultValues];
            }
            if (dtype === 'bool') {
                // This is essentially the result of notEqual(x, 0). We avoid using
                // kernel notEqual to avoid circular dependency, i.e. binary_utils ->
                // cast -> notEqual -> binary_utils.
                var zero = tf.util.toTypedArray([0], inputType);
                var _a = __read(createSimpleBinaryKernelImpl(function (a, b) {
                    return (a !== b) ? 1 : 0;
                })(shape, [], values, zero, 'bool'), 2)
                    , resultData = _a[0]
                    , resultShape = _a[1];
                return [resultShape, 'bool', resultData];
            }
            throw new Error("Error in Cast: failed to cast ".concat(inputType, " to ").concat(dtype));
        }

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var addImpl = createSimpleBinaryKernelImpl((function (a, b) {
            return a + b;
        }
        ));

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function bincountImpl(xVals, weightsVals, weightsDtype, weightsShape, size) {
            var weightsSize = tf.util.sizeFromShape(weightsShape);
            var outVals = tf.util.makeZerosTypedArray(size, weightsDtype);
            for (var i = 0; i < xVals.length; i++) {
                var value = xVals[i];
                if (value < 0) {
                    throw new Error('Input x must be non-negative!');
                }
                if (value >= size) {
                    continue;
                }
                if (weightsSize > 0) {
                    outVals[value] += weightsVals[i];
                } else {
                    outVals[value] += 1;
                }
            }
            return outVals;
        }
        function bincountReduceImpl(xBuf, weightsBuf, size, binaryOutput) {
            if (binaryOutput === void 0) {
                binaryOutput = false;
            }
            var numRows = xBuf.shape[0];
            var numCols = xBuf.shape[1];
            var outBuf = tf.buffer([numRows, size], weightsBuf.dtype);
            for (var i = 0; i < numRows; i++) {
                for (var j = 0; j < numCols; j++) {
                    var value = xBuf.get(i, j);
                    if (value < 0) {
                        throw new Error('Input x must be non-negative!');
                    }
                    if (value >= size) {
                        continue;
                    }
                    if (binaryOutput) {
                        outBuf.set(1, i, value);
                    } else {
                        if (weightsBuf.size > 0) {
                            outBuf.set(outBuf.get(i, value) + weightsBuf.get(i, j), i, value);
                        } else {
                            outBuf.set(outBuf.get(i, value) + 1, i, value);
                        }
                    }
                }
            }
            return outBuf;
        }

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        /**
         * Template that creates implementation for unary op.
         */
        function createSimpleUnaryImpl(op) {
            return function (values, dtype, attrs) {
                var newValues = tf.util.getTypedArrayFromDType(dtype, values.length);
                for (var i = 0; i < values.length; ++i) {
                    newValues[i] = op(values[i], attrs);
                }
                return newValues;
            }
                ;
        }

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the License);
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an AS IS BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var ceilImpl = createSimpleUnaryImpl(function (xi) {
            return Math.ceil(xi);
        });

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function concatImpl$1(inputs, outShape, dtype, simplyConcat) {
            var outVals = tf.util.getArrayFromDType(dtype, tf.util.sizeFromShape(outShape));
            if (simplyConcat && dtype !== 'string') {
                // Use built-in TypedArray.set() method for speed.
                var offset_1 = 0;
                inputs.forEach(function (input) {
                    var size = tf.util.sizeFromShape(input.shape);
                    outVals.set(input.vals, offset_1);
                    offset_1 += size;
                });
            } else {
                var colOffset_1 = 0;
                inputs.forEach(function (input) {
                    var decodedData = dtype === 'string' ? tf.backend_util.fromUint8ToStringArray(input.vals) : input.vals;
                    var tIdx = 0;
                    for (var row = 0; row < input.shape[0]; ++row) {
                        var resIdx = row * outShape[1] + colOffset_1;
                        for (var col = 0; col < input.shape[1]; ++col) {
                            outVals[resIdx + col] = decodedData[tIdx++];
                        }
                    }
                    colOffset_1 += input.shape[1];
                });
            }
            return outVals;
        }

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var equalImpl = createSimpleBinaryKernelImpl(function (a, b) {
            return (a === b) ? 1 : 0;
        });

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the License);
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an AS IS BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var expImpl = createSimpleUnaryImpl(function (xi) {
            return Math.exp(xi);
        });

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the License);
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an AS IS BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var expm1Impl = createSimpleUnaryImpl(function (xi) {
            return Math.expm1(xi);
        });

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the License);
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an AS IS BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var floorImpl = createSimpleUnaryImpl(function (xi) {
            return Math.floor(xi);
        });

        function gatherNdImpl(indicesData, paramsBuf, dtype, numSlices, sliceRank, sliceSize, strides, paramsShape, paramsSize) {
            var outBuf = tf.buffer([numSlices, sliceSize], dtype);
            for (var i = 0; i < numSlices; i++) {
                var index = [];
                var flattenIndex = 0;
                for (var j = 0; j < sliceRank; j++) {
                    var dim = indicesData[i * sliceRank + j];
                    flattenIndex += dim * strides[j];
                    index.push(dim);
                }
                if (flattenIndex < 0 || flattenIndex >= paramsSize / sliceSize) {
                    throw new Error("Invalid indices: ".concat(index, " does not index into ").concat(paramsShape));
                }
                for (var k = 0; k < sliceSize; k++) {
                    outBuf.values[i * sliceSize + k] = paramsBuf.get.apply(paramsBuf, __spreadArray([], __read(paramsBuf.indexToLoc(flattenIndex * sliceSize + k)), false));
                }
            }
            return outBuf;
        }

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function gatherV2Impl(xBuf, indicesBuf, flattenOutputShape) {
            var outBuf = tf.buffer(flattenOutputShape, xBuf.dtype);
            for (var i = 0; i < outBuf.size; ++i) {
                var newLoc = outBuf.indexToLoc(i);
                var originalLoc = newLoc.slice();
                var batchIdx = originalLoc[0];
                var indicesIdx = originalLoc[2];
                var indicesIndex = indicesBuf.locToIndex([batchIdx, indicesIdx]);
                originalLoc[2] = indicesBuf.values[indicesIndex];
                var originalIndex = xBuf.locToIndex(originalLoc);
                if (0 <= originalIndex && originalIndex < xBuf.values.length) {
                    outBuf.values[i] = xBuf.values[originalIndex];
                }
                // Else, index is out of bounds, so leave the default zero val in outBuf.
            }
            return outBuf;
        }

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var greaterImpl = createSimpleBinaryKernelImpl(function (a, b) {
            return (a > b) ? 1 : 0;
        });

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var greaterEqualImpl = createSimpleBinaryKernelImpl(function (a, b) {
            return (a >= b) ? 1 : 0;
        });

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var lessImpl = createSimpleBinaryKernelImpl(function (a, b) {
            return (a < b) ? 1 : 0;
        });

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var lessEqualImpl = createSimpleBinaryKernelImpl(function (a, b) {
            return (a <= b) ? 1 : 0;
        });

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function linSpaceImpl(start, stop, num) {
            var step = (stop - start) / (num - 1);
            var values = tf.util.makeZerosTypedArray(num, 'float32');
            values[0] = start;
            for (var i = 1; i < values.length; i++) {
                values[i] = values[i - 1] + step;
            }
            return values;
        }

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the License);
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an AS IS BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var logImpl = createSimpleUnaryImpl(function (xi) {
            return Math.log(xi);
        });

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function maxImpl$1(aVals, reduceSize, outShape, dtype) {
            var vals = tf.util.getTypedArrayFromDType(dtype, tf.util.sizeFromShape(outShape));
            for (var i = 0; i < vals.length; ++i) {
                var offset = i * reduceSize;
                var max = aVals[offset];
                for (var j = 0; j < reduceSize; ++j) {
                    var value = aVals[offset + j];
                    if (Number.isNaN(value) || value > max) {
                        // comparison with NaN always return false
                        max = value;
                    }
                }
                vals[i] = max;
            }
            return vals;
        }

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var maximumImpl = createSimpleBinaryKernelImpl((function (aValue, bValue) {
            return Math.max(aValue, bValue);
        }
        ));

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var minimumImpl = createSimpleBinaryKernelImpl((function (aValue, bValue) {
            return Math.min(aValue, bValue);
        }
        ));

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var multiplyImpl = createSimpleBinaryKernelImpl((function (aValue, bValue) {
            return aValue * bValue;
        }
        ));

        function negImpl(xVals, xShape, xDtype) {
            var minusOne = tf.util.createScalarValue(-1, xDtype);
            return multiplyImpl([], xShape, minusOne, xVals, xDtype);
        }

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var notEqualImpl = createSimpleBinaryKernelImpl((function (a, b) {
            return (a !== b) ? 1 : 0;
        }
        ));

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function transposeImpl$1(xVals, xShape, dtype, perm, newShape) {
            var xRank = xShape.length;
            var xSize = tf.util.sizeFromShape(xShape);
            var xStrides = tf.util.computeStrides(xShape);
            var newStrides = tf.util.computeStrides(newShape);
            var result = tf.util.getTypedArrayFromDType(dtype, tf.util.sizeFromShape(newShape));
            for (var i = 0; i < xSize; ++i) {
                var loc = tf.util.indexToLoc(i, xRank, xStrides);
                // Permute location.
                var newLoc = new Array(loc.length);
                for (var i_1 = 0; i_1 < newLoc.length; i_1++) {
                    newLoc[i_1] = loc[perm[i_1]];
                }
                var newIndex = tf.util.locToIndex(newLoc, xRank, newStrides);
                result[newIndex] = xVals[i];
            }
            return result;
        }

        function prodImpl(xShape, xDtype, xVals, reductionAxes) {
            var _a = __read(tf.backend_util.computeOutAndReduceShapes(xShape, reductionAxes), 2)
                , outShape = _a[0]
                , reduceShape = _a[1];
            var outDtype = tf.upcastType(xDtype, 'int32');
            var outVals = tf.util.makeZerosTypedArray(tf.util.sizeFromShape(outShape), outDtype);
            var reduceSize = tf.util.sizeFromShape(reduceShape);
            for (var i = 0; i < outVals.length; ++i) {
                var offset = i * reduceSize;
                var prod_1 = 1;
                for (var j = 0; j < reduceSize; ++j) {
                    prod_1 *= xVals[offset + j];
                }
                outVals[i] = prod_1;
            }
            return {
                outVals: outVals,
                outShape: outShape,
                outDtype: outDtype
            };
        }

        function validateIndices(indices, indicesShape, numParams) {
            indices.forEach(function (index, i) {
                if (index < 0 || index >= numParams) {
                    var locString = tf.util.indexToLoc(i, indicesShape.length, tf.util.computeStrides(indicesShape)).join(',');
                    throw new Error("indices[".concat(locString, "] = ").concat(index, " is not in [0, ").concat(numParams, ")"));
                }
            });
        }
        function validateSplits(paramsNestedSplits, numParamsDenseValues) {
            // Validate
            for (var dim = 0; dim < paramsNestedSplits.length; ++dim) {
                var splits = paramsNestedSplits[dim];
                var lastSplit = (dim === paramsNestedSplits.length - 1) ? numParamsDenseValues : paramsNestedSplits[dim + 1].length;
                if (splits.length === 0) {
                    throw new Error('Ragged splits may not be empty');
                }
                if (splits[0] < 0) {
                    throw new Error('Ragged splits must be non-negative');
                }
                if (splits[splits.length - 1] > lastSplit) {
                    throw new Error('Ragged splits must not point past values');
                }
                for (var i = 1; i < splits.length; ++i) {
                    if (splits[i - 1] > splits[i]) {
                        throw new Error('Ragged splits must be sorted in ascending order');
                    }
                }
            }
        }
        // Construct the `splits` output tensors, encoded using a nested vector.
        // Also find the slices of values that need to be copied, and store them
        // in `valueSlices`.  The total number of values that will be copied (which
        // we need for allocating the output values tensor) is stored in `numValues`.
        function makeSplits(indices, indicesShape, paramsNestedSplits, numParamsDenseValues) {
            var valueSlices = [];
            var numValues = 0;
            var numSplits = indicesShape.length - 1 + paramsNestedSplits.length;
            var outSplits = new Array(numSplits).fill(null).map(function () {
                return [0];
            });
            validateSplits(paramsNestedSplits, numParamsDenseValues);
            // Add `splits` that come from all but the last dimension of the dense
            // Tensor `indices`.  In particular, for each dimension D, we add a
            // splits tensor whose values are:
            //   range(reduceProd(splits.shape[:D]) + 1) * splits.shape[D+1]
            // E.g., if indices.shape=[2, 3, 4] then we will add splits tensors:
            //   [0, 3, 6]                    # length=2+1, stride=3
            //   [0, 4, 8, 12, 16, 20, 24]    # length=2*3+1, stride=4
            var nrows = 1;
            for (var dim = 0; dim < indicesShape.length - 1; ++dim) {
                nrows *= indicesShape[dim];
                var rowLength = indicesShape[dim + 1];
                for (var i = 1; i < nrows + 1; ++i) {
                    outSplits[dim].push(i * rowLength);
                }
            }
            // Add `splits` that come from `paramsNestedSplits`.  Starting with the
            // outermost ragged dimension (i.e., the first `splits` tensor), we work
            // our way in, finding the range of values that should be copied.  As we
            // go, we update the output `splits` for each dimension with the appropriate
            // values.  In particular, the *lengths* of the slices from `param_splits`
            // should be copied to generate corresponding slice lengths in the output
            // splits.  E.g., if we are copying a ragged row with length 4, then we
            // should add a new split point to outSplits that is 4 greater than the
            // previous split point in outSplits.
            for (var i = 0; i < indices.length; ++i) {
                var start = indices[i];
                var limit = indices[i] + 1;
                // Copy splits.
                for (var dim = 0; dim < paramsNestedSplits.length; ++dim) {
                    var splits = paramsNestedSplits[dim];
                    var outDim = dim + indicesShape.length - 1;
                    if (outDim >= 0) {
                        var outSplitsOutDim = outSplits[outDim];
                        var delta = outSplitsOutDim[outSplitsOutDim.length - 1] - splits[start];
                        for (var j = start; j < limit; ++j) {
                            outSplits[outDim].push(splits[j + 1] + delta);
                        }
                    }
                    start = splits[start];
                    limit = splits[limit];
                }
                if (limit !== start) {
                    valueSlices.push([start, limit]);
                    numValues += limit - start;
                }
            }
            return {
                outSplits: outSplits,
                valueSlices: valueSlices,
                numValues: numValues
            };
        }
        function getSplits(outSplits) {
            var splitsOut = [];
            var _loop_1 = function (i) {
                var numSplits = outSplits[i].length;
                var splits = tf.util.getArrayFromDType('int32', numSplits);
                splitsOut.push(splits);
                outSplits[i].forEach(function (value, j) {
                    return splits[j] = value;
                });
            };
            for (var i = 0; i < outSplits.length; ++i) {
                _loop_1(i);
            }
            return splitsOut;
        }
        function computeFlatOuterDims(orig, numOutDims) {
            var outDims = orig.slice(0, numOutDims);
            while (outDims.length < numOutDims) {
                outDims.push(1);
            }
            for (var inDim = numOutDims; inDim < orig.length; inDim++) {
                outDims[numOutDims - 1] *= orig[inDim];
            }
            return outDims;
        }
        // For each slice in `(start, limit)` in `valueSlices`, append
        // `paramsDenseValues[start,...,limit] to `values`.  `valueSize` indicates
        // the number of scalars contained in each value paramsDenseValues[i].
        function writeValueSlices(paramsDenseValues, paramsDenseValuesShape, valueSlices, valueSize, values, valuesShape) {
            var e_1, _a;
            var denseM = computeFlatOuterDims(paramsDenseValuesShape, 2)[1];
            var valuesM = computeFlatOuterDims(valuesShape, 2)[1];
            var outPos = 0;
            try {
                for (var valueSlices_1 = __values(valueSlices), valueSlices_1_1 = valueSlices_1.next(); !valueSlices_1_1.done; valueSlices_1_1 = valueSlices_1.next()) {
                    var slice = valueSlices_1_1.value;
                    for (var i = slice[0]; i < slice[1]; ++i) {
                        for (var j = 0; j < valueSize; ++j) {
                            values[outPos * valuesM + j] = paramsDenseValues[i * denseM + j];
                        }
                        ++outPos;
                    }
                }
            } catch (e_1_1) {
                e_1 = {
                    error: e_1_1
                };
            } finally {
                try {
                    if (valueSlices_1_1 && !valueSlices_1_1.done && (_a = valueSlices_1.return))
                        _a.call(valueSlices_1);
                } finally {
                    if (e_1)
                        throw e_1.error;
                }
            }
        }
        function getValues(paramsDenseValues, paramsDenseValuesShape, paramsDenseValuesDType, valueSlices, numValues) {
            var valuesShape = paramsDenseValuesShape.slice();
            valuesShape[0] = numValues;
            var valuesOut = tf.util.getArrayFromDType(paramsDenseValuesDType, tf.util.sizeFromShape(valuesShape));
            var numElements = paramsDenseValues.length;
            var valueSize = numElements === 0 ? 0 : (numElements / paramsDenseValuesShape[0]);
            writeValueSlices(paramsDenseValues, paramsDenseValuesShape, valueSlices, valueSize, valuesOut, valuesShape);
            return [valuesOut, valuesShape];
        }
        function raggedGatherImpl(paramsNestedSplits, paramsNestedSplitsShapes, paramsDenseValues, paramsDenseValuesShape, paramsDenseValuesDType, indices, indicesShape, outputRaggedRank) {
            if (paramsNestedSplits.length === 0) {
                throw new Error('paramsNestedSplits must be non empty');
            }
            if (paramsNestedSplitsShapes[0].length === 0) {
                throw new Error('Split tensors must not be scalars');
            }
            var numParams = paramsNestedSplitsShapes[0][0] - 1;
            validateIndices(indices, indicesShape, numParams);
            if (paramsDenseValuesShape.length === 0) {
                throw new Error('params.rank must be nonzero');
            }
            var numParamsDenseValues = paramsDenseValuesShape[0];
            // Calculate the `splits`, and store the value slices that we need to
            // copy in `valueSlices`.
            var _a = makeSplits(indices, indicesShape, paramsNestedSplits, numParamsDenseValues)
                , outSplits = _a.outSplits
                , valueSlices = _a.valueSlices
                , numValues = _a.numValues;
            // Write the output tensors.
            var outputNestedSplits = getSplits(outSplits);
            var outputDenseValues = getValues(paramsDenseValues, paramsDenseValuesShape, paramsDenseValuesDType, valueSlices, numValues);
            return [outputNestedSplits, outputDenseValues[0], outputDenseValues[1]];
        }

        /**
         * @license
         * Copyright 2022 Google LLC.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var INT32_MAX = 2147483647;
        function raggedRangeImpl(starts, startsShape, startsDType, limits, limitsShape, deltas, deltasShape) {
            // Check input tensor shapes.
            if (startsShape.length > 1) {
                throw new Error('starts must be a scalar or vector');
            }
            if (limitsShape.length > 1) {
                throw new Error('limits must be a scalar or vector');
            }
            if (deltasShape.length > 1) {
                throw new Error('deltas must be a scalar or vector');
            }
            // Determine which tensors we need to broadcast.
            var broadcastStarts = startsShape.length === 0;
            var broadcastLimits = limitsShape.length === 0;
            var broadcastDeltas = deltasShape.length === 0;
            // nRows (number of output rows) is the size of the non-broadcast inputs,
            // or 1 if all inputs are scalars.
            var inSizes = [];
            if (!broadcastStarts) {
                inSizes.push(startsShape[0]);
            }
            if (!broadcastLimits) {
                inSizes.push(limitsShape[0]);
            }
            if (!broadcastDeltas) {
                inSizes.push(deltasShape[0]);
            }
            for (var i = 1; i < inSizes.length; ++i) {
                if (inSizes[i] !== inSizes[i - 1]) {
                    throw new Error('starts, limits, and deltas must have the same shape');
                }
            }
            var nRows = inSizes.length === 0 ? 1 : inSizes[0];
            // Construct the rtNestedSplits tensor.
            var rtNestedSplits = tf.util.getArrayFromDType('int32', nRows + 1);
            rtNestedSplits[0] = 0;
            for (var row = 0; row < nRows; ++row) {
                var start = broadcastStarts ? starts[0] : starts[row];
                var limit = broadcastLimits ? limits[0] : limits[row];
                var delta = broadcastDeltas ? deltas[0] : deltas[row];
                if (delta === 0) {
                    throw new Error('Requires delta != 0');
                }
                var size = // The number of elements in the specified range.
                    void 0;
                // The number of elements in the specified range.
                if (((delta > 0) && (limit < start)) || ((delta < 0) && (limit > start))) {
                    size = 0;
                } else {
                    size = Math.ceil(Math.abs((limit - start) / delta));
                    if (size > INT32_MAX) {
                        throw new Error("Requires ((limit - start) / delta) <= ".concat(INT32_MAX));
                    }
                }
                rtNestedSplits[row + 1] = rtNestedSplits[row] + size;
            }
            var nVals = rtNestedSplits[nRows];
            // Construct the rtDenseValues tensor.
            var rtDenseValues = tf.util.getArrayFromDType(startsDType, nVals);
            var valueIndex = 0;
            for (var row = 0; row < nRows; ++row) {
                var rowSize = rtNestedSplits[row + 1] - rtNestedSplits[row];
                var value = broadcastStarts ? starts[0] : starts[row];
                var delta = broadcastDeltas ? deltas[0] : deltas[row];
                for (var i = 0; i < rowSize; ++i) {
                    rtDenseValues[valueIndex++] = value;
                    value += delta;
                }
            }
            return [rtNestedSplits, rtDenseValues];
        }

        var RowPartitionType = tf.backend_util.RowPartitionType;
        // Based on
        // https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/kernels/ragged_tensor_to_tensor_op.cc
        var RaggedTensorToTensorOp = /** @class */
            (function () {
                function RaggedTensorToTensorOp(shape, shapeShape, values, valuesShape, valuesDType, defaultValue, defaultValueShape, rowPartitionValues, rowPartitionValuesShapes, rowPartitionTypeStrings) {
                    this.shape = shape;
                    this.shapeShape = shapeShape;
                    this.values = values;
                    this.valuesShape = valuesShape;
                    this.valuesDType = valuesDType;
                    this.defaultValue = defaultValue;
                    this.defaultValueShape = defaultValueShape;
                    this.rowPartitionValues = rowPartitionValues;
                    this.rowPartitionValuesShapes = rowPartitionValuesShapes;
                    this.rowPartitionTypes = tf.backend_util.getRowPartitionTypesHelper(rowPartitionTypeStrings);
                    this.raggedRank = tf.backend_util.getRaggedRank(this.rowPartitionTypes);
                }
                RaggedTensorToTensorOp.prototype.getRowPartitionTypeByDimension = function (dimension) {
                    if (this.rowPartitionTypes[0] === RowPartitionType.FIRST_DIM_SIZE) {
                        return this.rowPartitionTypes[dimension + 1];
                    } else {
                        return this.rowPartitionTypes[dimension];
                    }
                }
                    ;
                // Returns the relationship between dimension and dimension + 1.
                RaggedTensorToTensorOp.prototype.getRowPartitionTensor = function (dimension) {
                    if (this.rowPartitionTypes[0] === RowPartitionType.FIRST_DIM_SIZE) {
                        return this.rowPartitionValues[dimension + 1];
                    } else {
                        return this.rowPartitionValues[dimension];
                    }
                }
                    ;
                RaggedTensorToTensorOp.prototype.getMaxWidth = function (dimension) {
                    var rowPartitionTensor = this.getRowPartitionTensor(dimension - 1);
                    switch (this.getRowPartitionTypeByDimension(dimension - 1)) {
                        case RowPartitionType.VALUE_ROWIDS:
                            return RaggedTensorToTensorOp.getMaxWidthValueRowID(rowPartitionTensor);
                        case RowPartitionType.ROW_SPLITS:
                            return RaggedTensorToTensorOp.getMaxWidthRowSplit(rowPartitionTensor);
                        default:
                            throw new Error("Cannot handle partition type ".concat(RowPartitionType[this.getRowPartitionTypeByDimension(dimension - 1)]));
                    }
                }
                    ;
                RaggedTensorToTensorOp.getMaxWidthRowSplit = function (rowSplit) {
                    var tensorLength = rowSplit.length;
                    if (tensorLength === 0 || tensorLength === 1) {
                        return 0;
                    }
                    var maxWidth = 0;
                    for (var i = 0; i < tensorLength - 1; ++i) {
                        var currentWidth = rowSplit[i + 1] - rowSplit[i];
                        if (currentWidth > maxWidth) {
                            maxWidth = currentWidth;
                        }
                    }
                    return maxWidth;
                }
                    ;
                RaggedTensorToTensorOp.getMaxWidthValueRowID = function (valueRowIds) {
                    var indexLength = valueRowIds.length;
                    if (indexLength === 0) {
                        return 0;
                    }
                    var firstEqualIndex = 0;
                    var firstEqualIndexValue = valueRowIds[0];
                    var maxWidth = 0;
                    for (var i = 1; i < indexLength; ++i) {
                        var value = valueRowIds[i];
                        if (value !== firstEqualIndexValue) {
                            firstEqualIndexValue = value;
                            maxWidth = Math.max(i - firstEqualIndex, maxWidth);
                            firstEqualIndex = i;
                        }
                    }
                    return Math.max(indexLength - firstEqualIndex, maxWidth);
                }
                    ;
                RaggedTensorToTensorOp.prototype.tensorShapeFromTensor = function (t, tShape, isPartial) {
                    if (isPartial === void 0) {
                        isPartial = true;
                    }
                    if (tShape.length === 0) {
                        if (t[0] === -1) {
                            return [];
                        }
                        throw new Error("The only valid scalar shape tensor is the fully unknown shape specified as -1.");
                    }
                    // MakePartialShape/MakeShapeHelper.
                    return makeShape(t, isPartial);
                }
                    ;
                RaggedTensorToTensorOp.prototype.calculateOutputSize = function (firstDim) {
                    var valueShape = this.valuesShape;
                    var defaultValueShape = this.defaultValueShape;
                    tf.backend_util.validateDefaultValueShape(defaultValueShape, valueShape);
                    var shape = this.tensorShapeFromTensor(this.shape, this.shapeShape);
                    var outputShape = tf.backend_util.combineRaggedTensorToTensorShapes(this.raggedRank, shape, valueShape);
                    var result = outputShape;
                    if (result[0] < 0) {
                        result[0] = firstDim;
                    }
                    for (var i = 1; i <= this.raggedRank; ++i) {
                        if (result[i] < 0) {
                            result[i] = this.getMaxWidth(i);
                        }
                    }
                    return result;
                }
                    ;
                /**
                 * The outputIndex represents the index in the output tensor
                 * where the first element of a particular dimension would be written.
                 * If it is -1, it indicates that the index is out of scope.
                 * Example, given firstDimension = 10, firstDimensionOutput = 6,
                 * and outputIndexMultiplier = 100:
                 * result = [0 100 200 300 400 500 -1 -1 -1 -1]
                 * If firstDimensionOutput = 11 instead, then:
                 * result = [0 100 200 300 400 500 600 700 800 900]
                 */
                RaggedTensorToTensorOp.prototype.calculateFirstParentOutputIndex = function (firstDimension, outputIndexMultiplier, firstDimensionOutput) {
                    var minDimension = Math.min(firstDimension, firstDimensionOutput);
                    var result = [];
                    var currentOutputIndex = 0;
                    for (var i = 0; i < minDimension; ++i,
                        currentOutputIndex += outputIndexMultiplier) {
                        result.push(currentOutputIndex);
                    }
                    for (var i = minDimension; i < firstDimension; ++i) {
                        result.push(-1);
                    }
                    tf.util.assert(result.length === firstDimension, function () {
                        return 'Final length of result must be equal to firstDimension.';
                    });
                    return result;
                }
                    ;
                RaggedTensorToTensorOp.prototype.calculateOutputIndexRowSplit = function (rowSplit, parentOutputIndex, outputIndexMultiplier, outputSize) {
                    var rowSplitSize = rowSplit.length;
                    var result = [];
                    for (var i = 0; i < rowSplitSize - 1; ++i) {
                        var rowLength = rowSplit[i + 1] - rowSplit[i];
                        var realLength = Math.min(outputSize, rowLength);
                        var parentOutputIndexCurrent = parentOutputIndex[i];
                        if (parentOutputIndexCurrent === -1) {
                            realLength = 0;
                        }
                        for (var j = 0; j < realLength; ++j) {
                            result.push(parentOutputIndexCurrent);
                            parentOutputIndexCurrent += outputIndexMultiplier;
                        }
                        for (var j = 0; j < rowLength - realLength; ++j) {
                            result.push(-1);
                        }
                    }
                    if (rowSplitSize > 0 && result.length !== rowSplit[rowSplitSize - 1]) {
                        throw new Error('Invalid row split size.');
                    }
                    return result;
                }
                    ;
                // Calculate the output index of the first element of a list.
                // The parentOutputIndex is the same computation for the previous list.
                // -1 indicates an element or list that is out of range.
                // The outputIndexMultiplier is the number of output indices one moves
                // forward for each column.
                // E.g., given:
                // valueRowIds:[0 1 2 2 2 3 5 5 6]
                // parentOutputIndex:[1000 1100 2000 2100 -1 3000 4000]
                // outputIndexMultiplier: 10
                // outputSize: 2
                // You get:
                // result = [1000 1100 2000 2010 -1 2100 -1 -1 3000]
                // result[0] = parentOutputIndex[valueRowIds[0]]
                // result[1] = parentOutputIndex[valueRowIds[1]]
                // result[2] = parentOutputIndex[valueRowIds[2]]
                // result[3] = parentOutputIndex[valueRowIds[2] + 10]
                // result[4] = -1 because it is the third element the size is 2.
                // result[5] = parentOutputIndex[valueRowIds[3]]
                // result[6] = -1 because parentOutputIndex[valueRowIds[6]] == -1
                // result[7] = -1 because parentOutputIndex[valueRowIds[6]] == -1
                // result[8] = parentOutputIndex[valueRowIds[7]]
                RaggedTensorToTensorOp.prototype.calculateOutputIndexValueRowID = function (valueRowIds, parentOutputIndex, outputIndexMultiplier, outputSize) {
                    var indexSize = valueRowIds.length;
                    var result = [];
                    if (indexSize === 0) {
                        return [];
                    }
                    var currentOutputColumn = 0;
                    var currentValueRowId = valueRowIds[0];
                    if (currentValueRowId >= parentOutputIndex.length) {
                        throw new Error("Got currentValueRowId=".concat(currentValueRowId, ", which is not less than ").concat(parentOutputIndex.length));
                    }
                    var currentOutputIndex = parentOutputIndex[currentValueRowId];
                    result.push(currentOutputIndex);
                    for (var i = 1; i < indexSize; ++i) {
                        var nextValueRowId = valueRowIds[i];
                        if (nextValueRowId === currentValueRowId) {
                            if (currentOutputIndex >= 0) {
                                ++currentOutputColumn;
                                if (currentOutputColumn < outputSize) {
                                    currentOutputIndex += outputIndexMultiplier;
                                } else {
                                    currentOutputIndex = -1;
                                }
                            }
                        } else {
                            currentOutputColumn = 0;
                            currentValueRowId = nextValueRowId;
                            if (nextValueRowId >= parentOutputIndex.length) {
                                throw new Error("Got nextValueRowId=".concat(nextValueRowId, " which is not less than ").concat(parentOutputIndex.length));
                            }
                            currentOutputIndex = parentOutputIndex[nextValueRowId];
                        }
                        result.push(currentOutputIndex);
                    }
                    if (result.length !== valueRowIds.length) {
                        throw new Error('Invalid row ids.');
                    }
                    return result;
                }
                    ;
                RaggedTensorToTensorOp.prototype.calculateOutputIndex = function (dimension, parentOutputIndex, outputIndexMultiplier, outputSize) {
                    var rowPartitionTensor = this.getRowPartitionTensor(dimension);
                    var partitionType = this.getRowPartitionTypeByDimension(dimension);
                    switch (partitionType) {
                        case RowPartitionType.VALUE_ROWIDS:
                            return this.calculateOutputIndexValueRowID(rowPartitionTensor, parentOutputIndex, outputIndexMultiplier, outputSize);
                        case RowPartitionType.ROW_SPLITS:
                            if (rowPartitionTensor.length - 1 > parentOutputIndex.length) {
                                throw new Error("Row partition size is greater than output size: ".concat(rowPartitionTensor.length - 1, " > ").concat(parentOutputIndex.length));
                            }
                            return this.calculateOutputIndexRowSplit(rowPartitionTensor, parentOutputIndex, outputIndexMultiplier, outputSize);
                        default:
                            throw new Error("Unsupported partition type: ".concat(RowPartitionType[partitionType]));
                    }
                }
                    ;
                RaggedTensorToTensorOp.prototype.getFirstDimensionSize = function () {
                    var firstPartitionTensor = this.rowPartitionValues[0];
                    if (this.rowPartitionTypes.length === 0) {
                        throw new Error('No row_partition_types given.');
                    }
                    var firstPartitionType = this.rowPartitionTypes[0];
                    switch (firstPartitionType) {
                        case RowPartitionType.FIRST_DIM_SIZE:
                            return firstPartitionTensor[0];
                        case RowPartitionType.VALUE_ROWIDS:
                            throw new Error('Cannot handle VALUE_ROWIDS in first dimension.');
                        case RowPartitionType.ROW_SPLITS:
                            return this.rowPartitionValuesShapes[0][0] - 1;
                        default:
                            throw new Error("Cannot handle type ".concat(RowPartitionType[firstPartitionType]));
                    }
                }
                    ;
                RaggedTensorToTensorOp.prototype.compute = function () {
                    var firstPartitionTensor = this.rowPartitionValues[0];
                    if (firstPartitionTensor.length <= 0) {
                        throw new Error('Invalid first partition input. ' + 'Tensor requires at least one element.');
                    }
                    var firstDimension = this.getFirstDimensionSize();
                    var outputSize = this.calculateOutputSize(firstDimension);
                    var multiplier = new Array(this.raggedRank + 1);
                    multiplier[multiplier.length - 1] = 1;
                    for (var i = multiplier.length - 2; i >= 0; --i) {
                        multiplier[i] = multiplier[i + 1] * outputSize[i + 1];
                    }
                    // Full size of the tensor.
                    var outputShape = makeShape(outputSize, false);
                    var outputTensor = tf.util.getArrayFromDType(this.valuesDType, tf.util.sizeFromShape(outputShape));
                    var fullSize = multiplier[0] * outputSize[0];
                    if (fullSize > 0) {
                        var outputIndex = this.calculateFirstParentOutputIndex(firstDimension, multiplier[0], outputSize[0]);
                        for (var i = 1; i <= this.raggedRank; ++i) {
                            var newOutputIndex = this.calculateOutputIndex(i - 1, outputIndex, multiplier[i], outputSize[i]);
                            outputIndex = newOutputIndex;
                        }
                        this.setOutput(this.raggedRank, outputIndex, outputTensor, outputShape);
                    }
                    return [outputShape, outputTensor];
                }
                    ;
                RaggedTensorToTensorOp.prototype.setOutput = function (raggedRank, outputIndex, outputTensor, outputShape) {
                    if (outputTensor.length === 0) {
                        return;
                    }
                    var valuesBase = this.values;
                    var outputBase = outputTensor;
                    var elementShape = outputShape.slice();
                    elementShape = elementShape.slice(raggedRank + 1);
                    var valueElementSize = tf.util.sizeFromShape(elementShape);
                    var outputIndexSize = outputIndex.length;
                    // Broadcast the default value to value_element_size.  (We can skip this
                    // if defaultValueTensor.size == 1, since we use fill when that's true.)
                    var defaultValue = this.defaultValue;
                    if (defaultValue.length !== valueElementSize && defaultValue.length !== 1) {
                        var srcShape_1 = this.defaultValueShape;
                        tf.tidy(function () {
                            var defaultValueTensor = tf.reshape(defaultValue, srcShape_1);
                            var bCastDefault = tf.broadcastTo(defaultValueTensor, elementShape);
                            defaultValue = bCastDefault.dataSync();
                        });
                    }
                    // Loop through the outputIndex array, finding contiguous regions that
                    // should be copied.  Once we find the end of a contiguous region, copy it
                    // and add any necessary padding (with defaultValue).
                    var srcStart = 0;
                    // Start of contiguous region (in values)
                    var dstStart = 0;
                    // Destination for contiguous region (in output)
                    var dstEnd = 0;
                    // Destination for contiguous region (in output)
                    for (var srcI = 0; srcI <= outputIndexSize; ++srcI) {
                        // dstI is the destination where the value at srcI should be copied.
                        var dstI = srcI < outputIndexSize ? outputIndex[srcI] : -1;
                        // If we're still in a contiguous region, then update dstEnd go to the
                        // next srcI.
                        if (dstI === dstEnd) {
                            ++dstEnd;
                            continue;
                        }
                        // We found the end of contiguous region.  This can be because we found
                        // a gap (dstI > dstEnd), or a source value that shouldn't be copied
                        // because it's out-of-bounds (dstI == -1), or the end of the tensor
                        // (dstI === -1).
                        if (dstStart < dstEnd) {
                            // Copy the contiguous region.
                            var src = valuesBase.subarray(srcStart * valueElementSize);
                            var dst = outputBase.subarray(dstStart * valueElementSize);
                            var nVals = (dstEnd - dstStart) * valueElementSize;
                            copyArray(dst, src, nVals);
                        }
                        // Add any necessary padding (w/ defaultValue).
                        if (srcI >= outputIndexSize) {
                            // We reached the end of values: pad to the end of output.
                            var outputSize = outputTensor.length;
                            dstI = Math.floor(outputSize / valueElementSize);
                        }
                        if (dstI > dstEnd) {
                            if (this.defaultValue.length === 1) {
                                outputBase.subarray(dstEnd * valueElementSize, dstI * valueElementSize).fill(this.defaultValue[0]);
                                dstEnd = dstI;
                            } else {
                                while (dstI > dstEnd) {
                                    var dst = outputBase.slice(dstEnd * valueElementSize);
                                    copyArray(dst, defaultValue, valueElementSize);
                                    ++dstEnd;
                                }
                            }
                        }
                        // Update indices.
                        if (dstI < 0) {
                            // srcI should be skipped -- leave it out of the contiguous region.
                            srcStart = srcI + 1;
                            dstStart = dstEnd;
                        } else {
                            // srcI should be copied -- include it in the contiguous region.
                            srcStart = srcI;
                            dstStart = dstEnd;
                            dstEnd = dstStart + 1;
                        }
                    }
                }
                    ;
                return RaggedTensorToTensorOp;
            }());
        function copyArray(dst, src, size) {
            for (var i = 0; i < size; i++) {
                dst[i] = src[i];
            }
        }
        function makeShape(shape, isPartial) {
            var e_1, _a;
            var out = [];
            try {
                for (var shape_1 = __values(shape), shape_1_1 = shape_1.next(); !shape_1_1.done; shape_1_1 = shape_1.next()) {
                    var dim = shape_1_1.value;
                    if (dim < 0) {
                        if (!isPartial) {
                            throw new Error("Dimension ".concat(dim, " must be >= 0"));
                        }
                        if (dim < -1) {
                            throw new Error("Dimension ".concat(dim, " must be >= -1"));
                        }
                        dim = -1;
                    }
                    out.push(dim);
                }
            } catch (e_1_1) {
                e_1 = {
                    error: e_1_1
                };
            } finally {
                try {
                    if (shape_1_1 && !shape_1_1.done && (_a = shape_1.return))
                        _a.call(shape_1);
                } finally {
                    if (e_1)
                        throw e_1.error;
                }
            }
            return out;
        }
        function raggedTensorToTensorImpl(shape, shapesShape, values, valuesShape, valuesDType, defaultValue, defaultValueShape, rowPartitionValues, rowPartitionValuesShapes, rowPartitionTypes) {
            return new RaggedTensorToTensorOp(shape, shapesShape, values, valuesShape, valuesDType, defaultValue, defaultValueShape, rowPartitionValues, rowPartitionValuesShapes, rowPartitionTypes).compute();
        }

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function rangeImpl(start, stop, step, dtype) {
            var sameStartStop = start === stop;
            var increasingRangeNegativeStep = start < stop && step < 0;
            var decreasingRangePositiveStep = stop < start && step > 1;
            if (sameStartStop || increasingRangeNegativeStep || decreasingRangePositiveStep) {
                return tf.util.makeZerosTypedArray(0, dtype);
            }
            var numElements = Math.abs(Math.ceil((stop - start) / step));
            var values = tf.util.makeZerosTypedArray(numElements, dtype);
            if (stop < start && step === 1) {
                // Auto adjust the step's sign if it hasn't been set
                // (or was set to 1)
                step = -1;
            }
            values[0] = start;
            for (var i = 1; i < values.length; i++) {
                values[i] = values[i - 1] + step;
            }
            return values;
        }

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the License);
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an AS IS BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var rsqrtImpl = createSimpleUnaryImpl(function (xi) {
            return 1 / Math.sqrt(xi);
        });

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function scatterImpl(indices, updates, shape, outputSize, sliceSize, numUpdates, sliceRank, strides, defaultValue, sumDupeIndices) {
            var flattenShape = [outputSize / sliceSize, sliceSize];
            var indicesData = indices.values;
            var updatesData = updates.values;
            if (outputSize === 0) {
                return tf.buffer(shape, updates.dtype);
            }
            var outBuf = tf.buffer(flattenShape, updates.dtype);
            if (typeof defaultValue === 'string') {
                outBuf.values.fill(defaultValue);
            } else if (typeof defaultValue === 'number') {
                outBuf.values.fill(defaultValue);
            } else if (typeof defaultValue === 'boolean') {
                outBuf.values.fill(+defaultValue);
            }
            for (var i = 0; i < numUpdates; i++) {
                var index = [];
                var flattenIndex = 0;
                for (var j = 0; j < sliceRank; j++) {
                    var dim = indicesData[i * sliceRank + j];
                    index.push(dim);
                    flattenIndex += dim * strides[j];
                }
                if (flattenIndex < 0 || flattenIndex >= outputSize / sliceSize) {
                    throw new Error("Invalid indices: ".concat(index, " does not index into ").concat(shape));
                }
                for (var k = 0; k < sliceSize; k++) {
                    if (sumDupeIndices) {
                        outBuf.values[flattenIndex * sliceSize + k] += updatesData[i * sliceSize + k];
                    } else {
                        outBuf.values[flattenIndex * sliceSize + k] = updates.rank === 0 ? updatesData[0] : updatesData[i * sliceSize + k];
                    }
                }
            }
            return outBuf;
        }

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the License);
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an AS IS BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var sigmoidImpl = createSimpleUnaryImpl(function (xi) {
            return 1 / (1 + Math.exp(-xi));
        });

        function sliceImpl(vals, begin, size, shape, dtype) {
            var isContinous = tf.slice_util.isSliceContinous(shape, begin, size);
            var length = tf.util.sizeFromShape(size);
            var xStrides = tf.util.computeStrides(shape);
            if (isContinous) {
                var flatOffset = tf.slice_util.computeFlatOffset(begin, xStrides);
                if (dtype === 'string') {
                    return vals.slice(flatOffset, flatOffset + length);
                }
                return vals.subarray(flatOffset, flatOffset + length);
            }
            var decodedData = dtype === 'string' ? tf.backend_util.fromUint8ToStringArray(vals) : vals;
            var inBuf = tf.buffer(shape, dtype, decodedData);
            var outBuf = tf.buffer(size, dtype);
            for (var i = 0; i < outBuf.size; ++i) {
                var outLoc = outBuf.indexToLoc(i);
                var inLoc = outLoc.map(function (idx, j) {
                    return idx + begin[j];
                });
                outBuf.set.apply(outBuf, __spreadArray([inBuf.get.apply(inBuf, __spreadArray([], __read(inLoc), false))], __read(outLoc), false));
            }
            if (dtype === 'string') {
                return tf.backend_util.fromStringArrayToUint8(outBuf.values);
            }
            return outBuf.values;
        }

        /**
         * @license
         * Copyright 2021 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function sparseFillEmptyRowsImpl(indices, indicesShape, indicesDType, values, valuesDType, denseShape, defaultValue) {
            var indicesCount = indicesShape[0];
            var denseRows = denseShape[0];
            var emptyRowIndicator = new Array(denseRows);
            var reverseIndexMap = new Array(indicesCount);
            var rank = indicesShape[1];
            if (denseRows === 0) {
                if (indicesCount !== 0) {
                    throw new Error(tf.backend_util.getSparseFillEmptyRowsIndicesDenseShapeMismatch(indicesCount));
                }
                var outputIndices = tf.util.getArrayFromDType(indicesDType, 0);
                var outputValues = tf.util.getArrayFromDType(valuesDType, 0);
                return [outputIndices, [0, rank], outputValues, emptyRowIndicator, reverseIndexMap];
            }
            var rowsAreOrdered = true;
            var lastIndicesRow = 0;
            var csrOffset = new Array(denseRows).fill(0);
            for (var i = 0; i < indicesCount; ++i) {
                // indices is a 2d tensor with shape of [N, rank]
                var row = indices[i * rank];
                if (row < 0) {
                    throw new Error(tf.backend_util.getSparseFillEmptyRowsNegativeIndexErrorMessage(i, row));
                }
                if (row >= denseRows) {
                    throw new Error(tf.backend_util.getSparseFillEmptyRowsOutOfRangeIndexErrorMessage(i, row, denseRows));
                }
                ++csrOffset[row];
                rowsAreOrdered = rowsAreOrdered && (row >= lastIndicesRow);
                lastIndicesRow = row;
            }
            var allRowsFull = true;
            for (var row = 0; row < denseRows; ++row) {
                // csrOffset here describes the number of elements in this dense row
                var rowEmpty = (csrOffset[row] === 0);
                emptyRowIndicator[row] = rowEmpty;
                allRowsFull = allRowsFull && !rowEmpty;
                // In filled version, each row has at least one element.
                csrOffset[row] = Math.max(csrOffset[row], 1);
                // Update csrOffset to represent the number of elements up to and
                // including denseRows + 1:
                //  csrOffset[0] == #{elements of row 0}
                //  csrOffset[1] == #{elements of row 1} + #{elements of row 0}
                //  ..
                //  csrOffset[i] == starting index for elements in row i + 1.
                if (row > 0) {
                    csrOffset[row] += csrOffset[row - 1];
                }
            }
            if (allRowsFull && rowsAreOrdered) {
                var outputIndices = indices;
                var outputValues = values;
                for (var i = 0; i < indicesCount; ++i) {
                    reverseIndexMap[i] = i;
                }
                return [outputIndices, [indicesCount, rank], outputValues, emptyRowIndicator, reverseIndexMap];
            } else {
                var fullIndicesCount = csrOffset[denseRows - 1];
                var outputIndices = tf.util.getArrayFromDType(indicesDType, fullIndicesCount * rank);
                var outputValues = tf.util.getArrayFromDType(valuesDType, fullIndicesCount);
                var filledCount = new Array(denseRows).fill(0);
                // Fill in values for rows that are not missing
                for (var i = 0; i < indicesCount; ++i) {
                    // indices is a 2d tensor with shape of [N, rank]
                    var row = indices[i * rank];
                    var offset = filledCount[row];
                    var outputI = ((row === 0) ? 0 : csrOffset[row - 1]) + offset;
                    filledCount[row]++;
                    // Increment the filled count for this row.
                    for (var j = 0; j < rank; ++j) {
                        // indices and outputIndices are 2d tensors with shape of [N, rank]
                        outputIndices[outputI * rank + j] = indices[i * rank + j];
                    }
                    outputValues[outputI] = values[i];
                    // We'll need this reverse index map to backprop correctly.
                    reverseIndexMap[i] = outputI;
                }
                // Fill in values for rows that are missing
                for (var row = 0; row < denseRows; ++row) {
                    var rowCount = filledCount[row];
                    if (rowCount === 0) {
                        // We haven't filled this row
                        var startingIndex = (row === 0) ? 0 : csrOffset[row - 1];
                        // Remaining index values were set to zero already.
                        // Just need to set the row index in the right location.
                        // outputIndices is a 2d tensor with shape of [N, rank]
                        outputIndices[startingIndex * rank + 0] = row;
                        for (var col = 1; col < rank; ++col) {
                            outputIndices[startingIndex * rank + col] = 0;
                        }
                        outputValues[startingIndex] = defaultValue;
                    }
                }
                return [outputIndices, [fullIndicesCount, rank], outputValues, emptyRowIndicator, reverseIndexMap];
            }
        }

        /**
         * @license
         * Copyright 2021 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function sparseReshapeImpl(inputIndices, inputIndicesShape, inputDType, inputShape, targetShape) {
            var denseSize = tf.util.sizeFromShape(inputShape);
            var nnz = inputIndicesShape[0];
            var outputRank = targetShape.length;
            // Compute the output shape. Determine product of specified dimensions, and
            // find the index of the unspecified one.
            var outputShape = [];
            var product = 1;
            var unknownIndex = -1;
            for (var d = 0; d < outputRank; ++d) {
                var size = targetShape[d];
                if (size === -1) {
                    if (unknownIndex !== -1) {
                        throw new Error(tf.backend_util.getSparseReshapeMultipleNegativeOneOutputDimErrorMessage(unknownIndex, d));
                    }
                    unknownIndex = d;
                    outputShape.push(1);
                } else {
                    if (size < 0) {
                        throw new Error(tf.backend_util.getSparseReshapeNegativeOutputDimErrorMessage(d, size));
                    }
                    product *= size;
                    outputShape.push(size);
                }
            }
            if (unknownIndex !== -1) {
                if (product <= 0) {
                    throw new Error(tf.backend_util.getSparseReshapeEmptyTensorZeroOutputDimErrorMessage());
                }
                var missing = Math.trunc(denseSize / product);
                if (product * missing !== denseSize) {
                    throw new Error(tf.backend_util.getSparseReshapeInputOutputMultipleErrorMessage(inputShape, outputShape));
                }
                outputShape[unknownIndex] = missing;
            }
            var outputSize = tf.util.sizeFromShape(outputShape);
            if (outputSize !== denseSize) {
                throw new Error(tf.backend_util.getSparseReshapeInputOutputMismatchErrorMessage(inputShape, outputShape));
            }
            var inputRank = inputShape.length;
            var inputStrides = [];
            if (inputRank > 0) {
                inputStrides[inputRank - 1] = 1;
                for (var d = inputRank - 2; d >= 0; --d) {
                    inputStrides[d] = inputStrides[d + 1] * inputShape[d + 1];
                }
            }
            var outputStrides = [];
            if (outputRank > 0) {
                outputStrides[outputRank - 1] = 1;
                for (var d = outputRank - 2; d >= 0; --d) {
                    outputStrides[d] = outputStrides[d + 1] * outputShape[d + 1];
                }
            }
            var newIndices = tf.util.getArrayFromDType(inputDType, nnz * outputRank);
            for (var i = 0; i < nnz; ++i) {
                var id = 0;
                for (var j = 0; j < inputRank; ++j) {
                    // inputIndices is a 2d tensor with shape of [nnz, inputRank]
                    id += inputIndices[i * inputRank + j] * inputStrides[j];
                }
                for (var j = 0; j < outputRank; ++j) {
                    // newIndices is a 2d tensor with shape of [nnz, outputRank]
                    newIndices[i * outputRank + j] = Math.trunc(id / outputStrides[j]);
                    id %= outputStrides[j];
                }
            }
            return [newIndices, [nnz, outputRank], outputShape];
        }

        /**
         * @license
         * Copyright 2021 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function sparseSegmentReductionImpl(input, inputShape, inputDType, indices, segmentIds, isMean, defaultValue) {
            if (isMean === void 0) {
                isMean = false;
            }
            if (defaultValue === void 0) {
                defaultValue = 0;
            }
            var numIndices = indices.length;
            // Flatten the array to two dimensions
            var inputFlat = [inputShape[0], input.length / inputShape[0]];
            var numCol = inputFlat[1];
            // Note that the current implementation assumes that segmentIds values are
            // sorted.
            var lastSegmentIdPlusOne = numIndices > 0 ? segmentIds[numIndices - 1] + 1 : 0;
            var outputRows = lastSegmentIdPlusOne;
            if (outputRows < 0) {
                throw new Error(tf.backend_util.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());
            }
            var outputShape = inputShape.slice();
            outputShape[0] = outputRows;
            var outputLength = outputShape.reduce(function (product, value) {
                return product * value;
            }, 1);
            // Output array is initialized with the value 0 by default.
            var output = tf.util.getArrayFromDType(inputDType, outputLength);
            // Note that we do not initialize the output buffer with a default value, so
            // we need to explicitly set missing indices to the default value.
            if (numIndices === 0) {
                if (outputRows > 0) {
                    output.fill(defaultValue);
                }
                return [output, outputShape];
            }
            if (outputRows <= 0) {
                throw new Error(tf.backend_util.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());
            }
            var start = 0
                , end = 1;
            // Index from which the output is not initialized.
            var uninitializedIndex = 0;
            var outIndex = segmentIds[start];
            while (true) {
                // We initialize nextIndex to 0 to avoid may be uninitialized warning
                var nextIndex = 0;
                if (end < numIndices) {
                    nextIndex = segmentIds[end];
                    if (outIndex === nextIndex) {
                        ++end;
                        continue;
                    }
                    // We have a new segment here.  Verify that the segment ids are growing.
                    if (outIndex >= nextIndex) {
                        throw new Error(tf.backend_util.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage());
                    }
                }
                if (outIndex < 0 || outIndex >= outputRows) {
                    throw new Error(tf.backend_util.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(outIndex, outputRows));
                }
                // If there is a gap between two indices, we need to set that gap to the
                // default value.
                if (outIndex > uninitializedIndex) {
                    output.fill(defaultValue, uninitializedIndex * numCol, outIndex * numCol);
                }
                for (var i = start; i < end; ++i) {
                    var index = indices[i];
                    if (index < 0 || index >= inputFlat[0]) {
                        throw new Error(tf.backend_util.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(i, indices[i], inputFlat[0]));
                    }
                    for (var j = 0; j < numCol; j++) {
                        output[outIndex * numCol + j] += input[index * numCol + j];
                    }
                }
                if (isMean) {
                    for (var j = 0; j < numCol; j++) {
                        output[outIndex * numCol + j] /= end - start;
                    }
                }
                start = end;
                ++end;
                uninitializedIndex = outIndex + 1;
                outIndex = nextIndex;
                if (end > numIndices) {
                    break;
                }
            }
            // Fill the gap at the end with the default value.
            if (uninitializedIndex < outputRows) {
                output.fill(defaultValue, uninitializedIndex * numCol, outputRows * numCol);
            }
            return [output, outputShape];
        }

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the License);
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an AS IS BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var sqrtImpl = createSimpleUnaryImpl(function (xi) {
            return Math.sqrt(xi);
        });

        function stridedSliceImpl(outShape, xBuf, strides, begin) {
            var outBuf = tf.buffer(outShape, xBuf.dtype);
            for (var i = 0; i < outBuf.size; i++) {
                var loc = outBuf.indexToLoc(i);
                var newLoc = new Array(loc.length);
                for (var j = 0; j < newLoc.length; j++) {
                    newLoc[j] = loc[j] * strides[j] + begin[j];
                }
                outBuf.set.apply(outBuf, __spreadArray([xBuf.get.apply(xBuf, __spreadArray([], __read(newLoc), false))], __read(loc), false));
            }
            return outBuf;
        }

        /**
         * @license
         * Copyright 2021 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        /**
         * The StringNGramsOp class creates ngrams from ragged string data.
         * The constructor contains all attributes related to the operation such as
         * padding widths and strings, and the compute function can be used to
         * compute the ngrams for different ragged tensor inputs.
         */
        var StringNGramsOp = /** @class */
            (function () {
                function StringNGramsOp(separator, nGramWidths, leftPad, rightPad, padWidth, preserveShortSequences) {
                    this.separator = tf.util.encodeString(separator);
                    this.nGramWidths = nGramWidths;
                    this.leftPad = tf.util.encodeString(leftPad);
                    this.rightPad = tf.util.encodeString(rightPad);
                    this.padWidth = padWidth;
                    this.preserveShort = preserveShortSequences;
                }
                StringNGramsOp.prototype.getPadWidth = function (nGramWidth) {
                    // Ngrams can be padded with either a fixed pad width or a dynamic pad
                    // width depending on the 'padWidth' arg, but in no case should the padding
                    // ever be wider than 'nGramWidth' - 1.
                    return Math.min(this.padWidth < 0 ? nGramWidth - 1 : this.padWidth, nGramWidth - 1);
                }
                    ;
                StringNGramsOp.prototype.getNumNGrams = function (length, nGramWidth) {
                    var padWidth = this.getPadWidth(nGramWidth);
                    return Math.max(0, ((length + 2 * padWidth) - nGramWidth) + 1);
                }
                    ;
                StringNGramsOp.prototype.createNGrams = function (data, splitIndex, output, outputStartIndex, numNGrams, nGramWidth) {
                    var _loop_1 = function (nGramIndex) {
                        var padWidth = this_1.getPadWidth(nGramWidth);
                        var leftPadding = Math.max(0, padWidth - nGramIndex);
                        var rightPadding = Math.max(0, padWidth - (numNGrams - (nGramIndex + 1)));
                        var numTokens = nGramWidth - (leftPadding + rightPadding);
                        var dataStartIndex = splitIndex + (leftPadding > 0 ? 0 : nGramIndex - padWidth);
                        // Calculate the total expected size of the nGram so we can reserve the
                        // correct amount of space in the string.
                        var nGramSize = 0;
                        // Size of the left padding.
                        nGramSize += leftPadding * this_1.leftPad.length;
                        // Size of the tokens.
                        for (var n = 0; n < numTokens; ++n) {
                            nGramSize += data[dataStartIndex + n].length;
                        }
                        // Size of the right padding.
                        nGramSize += rightPadding * this_1.rightPad.length;
                        // Size of the separators.
                        var numSeparators = leftPadding + rightPadding + numTokens - 1;
                        nGramSize += numSeparators * this_1.separator.length;
                        // Build the nGram.
                        output[outputStartIndex + nGramIndex] = new Uint8Array(nGramSize);
                        var nGram = output[outputStartIndex + nGramIndex];
                        var nextNGramIndex = 0;
                        var appendToNGram = function (str) {
                            return str.forEach(function (value) {
                                return nGram[nextNGramIndex++] = value;
                            });
                        };
                        for (var n = 0; n < leftPadding; ++n) {
                            appendToNGram(this_1.leftPad);
                            appendToNGram(this_1.separator);
                        }
                        // Only output first numTokens - 1 pairs of data and separator
                        for (var n = 0; n < numTokens - 1; ++n) {
                            appendToNGram(data[dataStartIndex + n]);
                            appendToNGram(this_1.separator);
                        }
                        // Handle case when there are no tokens or no right padding as these
                        // can result in consecutive separators.
                        if (numTokens > 0) {
                            // If we have tokens, then output last and then pair each separator
                            // with the right padding that follows, to ensure nGram ends either with
                            // the token or with the right pad.
                            appendToNGram(data[dataStartIndex + numTokens - 1]);
                            for (var n = 0; n < rightPadding; ++n) {
                                appendToNGram(this_1.separator);
                                appendToNGram(this_1.rightPad);
                            }
                        } else {
                            // If we don't have tokens, then the last item inserted into the nGram
                            // has been the separator from the left padding loop above. Hence,
                            // output right pad and separator and make sure to finish with a
                            // padding, not a separator.
                            for (var n = 0; n < rightPadding - 1; ++n) {
                                appendToNGram(this_1.rightPad);
                                appendToNGram(this_1.separator);
                            }
                            appendToNGram(this_1.rightPad);
                        }
                    };
                    var this_1 = this;
                    for (var nGramIndex = 0; nGramIndex < numNGrams; ++nGramIndex) {
                        _loop_1(nGramIndex);
                    }
                }
                    ;
                // Data and splits together form the definition of the ragged tensor,
                // where data is 1 dimensional and contains the values of the tensor
                // and splits denotes the indices at which each row starts.
                StringNGramsOp.prototype.compute = function (data, splits) {
                    var _this = this;
                    // Validate that the splits are valid indices into data, only if there are
                    // splits specified.
                    var inputDataSize = data.length;
                    var splitsSize = splits.length;
                    if (splitsSize > 0) {
                        var prevSplit = splits[0];
                        if (prevSplit !== 0) {
                            throw new Error("First split value must be 0, got ".concat(prevSplit));
                        }
                        for (var i = 1; i < splitsSize; ++i) {
                            var validSplits = splits[i] >= prevSplit;
                            validSplits = validSplits && (splits[i] <= inputDataSize);
                            if (!validSplits) {
                                throw new Error("Invalid split value ".concat(splits[i], ", must be in [").concat(prevSplit, ", ").concat(inputDataSize, "]"));
                            }
                            prevSplit = splits[i];
                        }
                        if (prevSplit !== inputDataSize) {
                            throw new Error("Last split value must be data size. Expected ".concat(inputDataSize, ", got ").concat(prevSplit));
                        }
                    }
                    var numBatchItems = splitsSize - 1;
                    var nGramsSplits = tf.util.getArrayFromDType('int32', splitsSize);
                    // If there is no data or size, return an empty ragged tensor.
                    if (inputDataSize === 0 || splitsSize === 0) {
                        var empty = new Array(inputDataSize);
                        for (var i = 0; i <= numBatchItems; ++i) {
                            nGramsSplits[i] = 0;
                        }
                        return [empty, nGramsSplits];
                    }
                    nGramsSplits[0] = 0;
                    var _loop_2 = function (i) {
                        var length = splits[i] - splits[i - 1];
                        var numNGrams = 0;
                        this_2.nGramWidths.forEach(function (nGramWidth) {
                            numNGrams += _this.getNumNGrams(length, nGramWidth);
                        });
                        if (this_2.preserveShort && length > 0 && numNGrams === 0) {
                            numNGrams = 1;
                        }
                        nGramsSplits[i] = nGramsSplits[i - 1] + numNGrams;
                    };
                    var this_2 = this;
                    for (var i = 1; i <= numBatchItems; ++i) {
                        _loop_2(i);
                    }
                    var nGrams = new Array(nGramsSplits[numBatchItems]);
                    var _loop_3 = function (i) {
                        var splitIndex = splits[i];
                        var outputStartIdx = nGramsSplits[i];
                        this_3.nGramWidths.forEach(function (nGramWidth) {
                            var length = splits[i + 1] - splits[i];
                            var numNGrams = _this.getNumNGrams(length, nGramWidth);
                            _this.createNGrams(data, splitIndex, nGrams, outputStartIdx, numNGrams, nGramWidth);
                            outputStartIdx += numNGrams;
                        });
                        // If we're preserving short sequences, check to see if no sequence was
                        // generated by comparing the current output start idx to the original
                        // one (nGramSplitsdata). If no ngrams were generated, then they will
                        // be equal (since we increment outputStartIdx by numNGrams every
                        // time we create a set of ngrams.)
                        if (this_3.preserveShort && outputStartIdx === nGramsSplits[i]) {
                            var dataLength = splits[i + 1] - splits[i];
                            // One legitimate reason to not have any ngrams when this.preserveShort
                            // is true is if the sequence itself is empty. In that case, move on.
                            if (dataLength === 0) {
                                return "continue";
                            }
                            // We don't have to worry about dynamic padding sizes here: if padding
                            // was dynamic, every sequence would have had sufficient padding to
                            // generate at least one nGram.
                            var nGramWidth = dataLength + 2 * this_3.padWidth;
                            var numNGrams = 1;
                            this_3.createNGrams(data, splitIndex, nGrams, outputStartIdx, numNGrams, nGramWidth);
                        }
                    };
                    var this_3 = this;
                    for (var i = 0; i < numBatchItems; ++i) {
                        _loop_3(i);
                    }
                    return [nGrams, nGramsSplits];
                }
                    ;
                return StringNGramsOp;
            }());
        function stringNGramsImpl(data, dataSplits, separator, nGramWidths, leftPad, rightPad, padWidth, preserveShortSequences) {
            return new StringNGramsOp(separator, nGramWidths, leftPad, rightPad, padWidth, preserveShortSequences).compute(data, dataSplits);
        }

        /**
         * @license
         * Copyright 2021 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function split(str, delimiters, skipEmpty, result) {
            if (!str.length) {
                return;
            }
            // When the delimiter is empty, the input is split into individual characters.
            if (delimiters.length === 0) {
                for (var i = 0; i < str.length; ++i) {
                    result.push(str.subarray(i, i + 1));
                }
                return;
            }
            // When there is one delimiter, the input is split only at that delimiter.
            if (delimiters.length === 1) {
                var delimiter = delimiters[0];
                var f = str.indexOf(delimiter);
                while (f !== -1) {
                    var token = str.subarray(0, f);
                    if (!skipEmpty || token.length !== 0) {
                        result.push(token);
                    }
                    str = str.subarray(f + 1);
                    f = str.indexOf(delimiter);
                }
                if (!skipEmpty || str.length !== 0) {
                    result.push(str);
                }
                return;
            }
            // When there are multiple delimiters, the input is split at every instance
            // one of the delimiters appears.
            var tokenStart = 0;
            for (var i = 0; i < str.length + 1; i++) {
                if ((i === str.length) || (delimiters.indexOf(str[i]) !== -1)) {
                    var token = str.subarray(tokenStart, i);
                    if (!skipEmpty || token.length !== 0) {
                        result.push(token);
                    }
                    tokenStart = i + 1;
                }
            }
        }
        function stringSplitImpl(input, delimiter, skipEmpty) {
            var batchSize = input.length;
            // Empty delimiter means split the input character by character.
            var tokens = [];
            var outputSize = 0;
            var maxNumEntries = 0;
            var numIndices = new Array(batchSize);
            for (var i = 0; i < batchSize; ++i) {
                var prevTokensLength = tokens.length;
                split(input[i], delimiter, skipEmpty, tokens);
                var nEntries = tokens.length - prevTokensLength;
                numIndices[i] = nEntries;
                outputSize += nEntries;
                maxNumEntries = Math.max(maxNumEntries, nEntries);
            }
            var indices = tf.util.getArrayFromDType('int32', outputSize * 2);
            var values = new Array(outputSize);
            var shape = [batchSize, maxNumEntries];
            var c = 0;
            for (var i = 0; i < batchSize; ++i) {
                for (var j = 0; j < numIndices[i]; ++j) {
                    // indices is a 2d tensor with shape of [outputSize, 2]
                    indices[c * 2] = i;
                    indices[c * 2 + 1] = j;
                    values[c] = tokens[c];
                    ++c;
                }
            }
            return [indices, values, shape];
        }

        /**
         * @license
         * Copyright 2021 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function stringToHashBucketFastImpl(input, numBuckets) {
            var output = tf.util.getArrayFromDType('int32', input.length);
            for (var i = 0; i < input.length; ++i) {
                output[i] = tf.util.fingerPrint64(input[i]).modulo(numBuckets).getLowBitsUnsigned();
            }
            return output;
        }

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var subImpl = createSimpleBinaryKernelImpl((function (aValue, bValue) {
            return aValue - bValue;
        }
        ));

        /**
         * @license
         * Copyright 2019 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        /**
         * An implementation of the tile kernel shared between webgl and cpu for string
         * tensors only.
         */
        function tileImpl(xBuf, reps) {
            var newShape = new Array(xBuf.rank);
            for (var i = 0; i < newShape.length; i++) {
                newShape[i] = xBuf.shape[i] * reps[i];
            }
            var result = tf.buffer(newShape, xBuf.dtype);
            for (var i = 0; i < result.values.length; ++i) {
                var newLoc = result.indexToLoc(i);
                var originalLoc = new Array(xBuf.rank);
                for (var j = 0; j < originalLoc.length; j++) {
                    originalLoc[j] = newLoc[j] % xBuf.shape[j];
                }
                var originalIndex = xBuf.locToIndex(originalLoc);
                result.values[i] = xBuf.values[originalIndex];
            }
            return result;
        }

        var comparePair = function (a, b) {
            var valueDiff = b.value - a.value;
            return valueDiff === 0 ? a.index - b.index : valueDiff;
        };
        /**
         * Partitions array where all elements smaller than the (k+1) smallest element
         * are found to the left of it, and all larger to the right of it.
         * Based on the Floyd-Rivest Algorithm, ref:
         * https://en.wikipedia.org/wiki/Floyd%E2%80%93Rivest_algorithm
         * @param array: Array to partition
         * @param left: Left index for the interval
         * @param right: Right index for the interval
         * @param k: Desired index value, where array[k] is the (k+1)th smallest element
         *           when left = 0
         */
        function select$1(array, k, left, right) {
            if (left === void 0) {
                left = 0;
            }
            if (right === void 0) {
                right = array.length - 1;
            }
            while (right > left) {
                // Use select recursively to sample a smaller set of size s
                // the arbitrary constants 600 and 0.5 are used in the original
                // version to minimize execution time.
                if (right - left > 600) {
                    var n = right - left + 1;
                    var i_1 = k - left + 1;
                    var z = Math.log(n);
                    var s = 0.5 * Math.exp(2 * z / 3);
                    var sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * Math.sign(i_1 - n / 2);
                    var newLeft = Math.max(left, Math.floor(k - i_1 * s / n + sd));
                    var newRight = Math.min(right, Math.floor(k + (n - i_1) * s / n + sd));
                    select$1(array, k, newLeft, newRight);
                }
                // partition the elements between left and right around t
                var t = array[k];
                var i = left;
                var j = right;
                tf.util.swap(array, left, k);
                if (comparePair(array[right], t) > 0) {
                    tf.util.swap(array, left, right);
                }
                while (i < j) {
                    tf.util.swap(array, i, j);
                    i++;
                    j--;
                    while (comparePair(array[i], t) < 0) {
                        i = i + 1;
                    }
                    while (comparePair(array[j], t) > 0) {
                        j = j - 1;
                    }
                }
                if (comparePair(array[left], t) === 0) {
                    tf.util.swap(array, left, j);
                } else {
                    j = j + 1;
                    tf.util.swap(array, j, right);
                }
                // Adjust left and right towards the boundaries of the subset
                // containing the (k - left + 1)th smallest element.
                if (j <= k) {
                    left = j + 1;
                }
                if (k <= j) {
                    right = j - 1;
                }
            }
        }
        function topKImpl(x, xShape, xDtype, k, sorted) {
            // Reshape into a 2d tensor [batch, lastDim] and compute topk along lastDim.
            var lastDim = xShape[xShape.length - 1];
            var _a = __read([x.length / lastDim, lastDim], 2)
                , batch = _a[0]
                , size = _a[1];
            var allTopKVals = tf.util.getTypedArrayFromDType(xDtype, batch * k);
            var allTopKIndices = tf.util.getTypedArrayFromDType('int32', batch * k);
            var _loop_1 = function (b) {
                var offset = b * size;
                var vals = x.subarray(offset, offset + size);
                var valAndInd = new Array(vals.length);
                vals.forEach(function (value, index) {
                    return valAndInd[index] = {
                        value: value,
                        index: index
                    };
                });
                if (k < valAndInd.length) {
                    select$1(valAndInd, k);
                    valAndInd = valAndInd.slice(0, k);
                }
                if (sorted) {
                    valAndInd.sort(comparePair);
                }
                var outOffset = b * k;
                var topKVals = allTopKVals.subarray(outOffset, outOffset + k);
                var topKIndices = allTopKIndices.subarray(outOffset, outOffset + k);
                for (var i = 0; i < k; i++) {
                    topKVals[i] = valAndInd[i].value;
                    topKIndices[i] = valAndInd[i].index;
                }
            };
            for (var b = 0; b < batch; b++) {
                _loop_1(b);
            }
            // Reshape back to the original input shape, except that the last
            // dimension is k.
            var outputShape = xShape.slice();
            outputShape[outputShape.length - 1] = k;
            return [tf.buffer(outputShape, xDtype, allTopKVals), tf.buffer(outputShape, 'int32', allTopKIndices)];
        }

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function uniqueImpl(values, axis, shape, dtype) {
            // Normalize and validate axis.
            var $axis = tf.util.parseAxisParam(axis, shape)[0];
            // Calculate the new shape that is suitable for extracting data along the
            // given axis.
            //
            // The rank is 3.
            // The size of the 1st dimension is the size of all the axes < the given axis.
            // The size of the 2nd dimension is the same as the size of the given axis.
            // The size of the 3rd dimension is the size of all the axes > the given axis.
            //
            // For example, for a 4D tensor with shape=[2, 3, 5, 4] and axis=2, the
            // newShape would be: [2*3, 5, 4].
            //
            // Note that this is not the final output shape. This will be the shape for an
            // intermediate TensorBuffer (see inputBuffer below) to allow us to extract
            // values along the given axis. To demonstrate how it works, consider the
            // following example:
            //
            // Input: a 3D tensor, with shape [1, 2, 3]
            // [
            //   [
            //      [1,2,3],
            //      [4,5,6]
            //   ]
            // ]
            // Axis: 2 (the last axis).
            // Along axis 2, we expect to extract 3 tensors: [1,4], [2,5], [3,6].
            //
            // For this example, newShape would be: [2, 3, 1], where 2 is calculated from
            // 1*2. The re-shaped data would look like:
            //
            // [
            //   [
            //     [1], [2], [3]
            //   ],
            //   [
            //     [4], [5], [6]
            //   ]
            // ]
            //
            // Then, we can construct a 3-level nested loop by the following dimension
            // order to extract the values along the axis (dimension1):
            // i: dimension1       // 0,1,2 (newShape[1])
            //   m: dimension0     // 0,1   (newShape[0])
            //     n: dimension2   // 0     (newShape[2])
            //
            //                       m, i, n
            //                      ---------
            // Iteration 0: data at [0, 0, 0] => "1"
            // Iteration 1: data at [1, 0, 0] => "4"
            // We got [1,4].
            // Iteration 2: data at [0, 1, 0] => "2"
            // Iteration 3: data at [1, 1, 0] => "5"
            // We got [2,5].
            // Iteration 4: data at [0, 2, 0] => "3"
            // Iteration 5: data at [1, 2, 0] => "6"
            // We got [3,6].
            var newShape = [1, shape[0], 1];
            for (var i = 0; i < $axis; i++) {
                newShape[0] *= shape[i];
            }
            newShape[1] = shape[$axis];
            for (var i = $axis + 1; i < shape.length; i++) {
                newShape[2] *= shape[i];
            }
            // A map from unique elements (their string representations) to their values
            // in "indices" (below).
            var uniqueElements = {};
            // The indices of each unique element in the original tensor along the given
            // axis. It is 1D and has the same size as the given axis.
            var indices = new Int32Array(shape[$axis]);
            // Create a buffer so we can easily extract value at a given location.
            var inputBuffer = new tf.TensorBuffer(newShape, dtype, values);
            // The indices along the given axis that have unique elements. This is a
            // de-duped version of "indices" above.
            var uniqueIndices = [];
            var is1DTensor = newShape[0] === 1 && newShape[2] === 1;
            for (var i = 0; i < shape[$axis]; i++) {
                // Extract values along the axis.
                var element = void 0;
                if (is1DTensor) {
                    // Fast path for 1D tensor input.
                    element = values[i].toString();
                } else {
                    var axisValues = [];
                    for (var m = 0; m < newShape[0]; m++) {
                        for (var n = 0; n < newShape[2]; n++) {
                            axisValues.push(inputBuffer.get(m, i, n));
                        }
                    }
                    element = axisValues.join(',');
                }
                // Dedup and update various indices.
                if (uniqueElements[element] !== undefined) {
                    indices[i] = uniqueElements[element];
                } else {
                    var uniqueIndex = Object.keys(uniqueElements).length;
                    uniqueElements[element] = uniqueIndex;
                    indices[i] = uniqueIndex;
                    uniqueIndices.push(i);
                }
            }
            // Now we know where each of the unique elements are located along the axis
            // (uniqueIndices). Extract them from input buffer and store them in the
            // output buffer.
            var outputTmpShape = newShape.slice();
            outputTmpShape[1] = Object.keys(uniqueElements).length;
            var outputBuffer = new tf.TensorBuffer(outputTmpShape, dtype);
            uniqueIndices.forEach(function (uniqueElementIndex, i) {
                for (var m = 0; m < newShape[0]; m++) {
                    for (var n = 0; n < newShape[2]; n++) {
                        outputBuffer.set(inputBuffer.get(m, uniqueElementIndex, n), m, i, n);
                    }
                }
            });
            // The output shape can be calculated from the input shape with the size of
            // the given axis replaced by the number of unique elements along that axis.
            var outputShape = shape.slice();
            outputShape[$axis] = outputTmpShape[1];
            return {
                outputValues: outputBuffer.values,
                outputShape: outputShape,
                indices: indices,
            };
        }

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var addImplCPU = addImpl
            , bincountImplCPU = bincountImpl
            , bincountReduceImplCPU = bincountReduceImpl
            , castImplCPU = castImpl
            , ceilImplCPU = ceilImpl
            , concatImplCPU = concatImpl$1
            , equalImplCPU = equalImpl
            , expImplCPU = expImpl
            , expm1ImplCPU = expm1Impl
            , floorImplCPU = floorImpl
            , gatherNdImplCPU = gatherNdImpl
            , gatherV2ImplCPU = gatherV2Impl
            , greaterImplCPU = greaterImpl
            , greaterEqualImplCPU = greaterEqualImpl
            , lessImplCPU = lessImpl
            , lessEqualImplCPU = lessEqualImpl
            , linSpaceImplCPU = linSpaceImpl
            , logImplCPU = logImpl
            , maxImplCPU = maxImpl$1
            , maximumImplCPU = maximumImpl
            , minimumImplCPU = minimumImpl
            , multiplyImplCPU = multiplyImpl
            , negImplCPU = negImpl
            , notEqualImplCPU = notEqualImpl
            , prodImplCPU = prodImpl
            , raggedGatherImplCPU = raggedGatherImpl
            , raggedRangeImplCPU = raggedRangeImpl
            , raggedTensorToTensorImplCPU = raggedTensorToTensorImpl
            , rangeImplCPU = rangeImpl
            , rsqrtImplCPU = rsqrtImpl
            , scatterImplCPU = scatterImpl
            , sigmoidImplCPU = sigmoidImpl
            , simpleAbsImplCPU = simpleAbsImpl
            , sliceImplCPU = sliceImpl
            , sparseFillEmptyRowsImplCPU = sparseFillEmptyRowsImpl
            , sparseReshapeImplCPU = sparseReshapeImpl
            , sparseSegmentReductionImplCPU = sparseSegmentReductionImpl
            , sqrtImplCPU = sqrtImpl
            , stridedSliceImplCPU = stridedSliceImpl
            , stringNGramsImplCPU = stringNGramsImpl
            , stringSplitImplCPU = stringSplitImpl
            , stringToHashBucketFastImplCPU = stringToHashBucketFastImpl
            , subImplCPU = subImpl
            , tileImplCPU = tileImpl
            , topKImplCPU = topKImpl
            , transposeImplCPU = transposeImpl$1
            , uniqueImplCPU = uniqueImpl;

        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function getVecChannels(name, rank) {
            return ['x', 'y', 'z', 'w', 'u', 'v'].slice(0, rank).map(function (d) {
                return "".concat(name, ".").concat(d);
            });
        }
        function getChannels(name, rank) {
            if (rank === 1) {
                return [name];
            }
            return getVecChannels(name, rank);
        }
        function getSourceCoords$2(rank, dims) {
            if (rank === 1) {
                return 'rc';
            }
            var coords = '';
            for (var i = 0; i < rank; i++) {
                coords += dims[i];
                if (i < rank - 1) {
                    coords += ',';
                }
            }
            return coords;
        }

        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var PackProgram = /** @class */
            (function () {
                function PackProgram(outputShape) {
                    this.variableNames = ['A'];
                    this.packedInputs = false;
                    this.packedOutput = true;
                    // Only input / output 3D tensors.
                    this.outputShape = outputShape;
                    this.rank = outputShape.length;
                    this.enableShapeUniforms = useShapeUniforms(this.outputShape.length);
                    if (this.rank === 0) {
                        this.userCode = "\n        void main() {\n          setOutput(vec4(getA(), 0., 0., 0.));\n        }\n      ";
                    } else {
                        var channels = getChannels('rc', this.rank);
                        var dtype = getCoordsDataType(this.rank);
                        var outOfBoundsCondition = this.getOutOfBoundsCondition(channels);
                        var setup = this.getSetup(channels);
                        var output = this.getOutput(channels);
                        this.userCode = "\n        void main() {\n          ".concat(dtype, " rc = getOutputCoords();\n\n          if(").concat(outOfBoundsCondition, ") {\n            setOutput(vec4(0));\n          } else {\n            ").concat(setup, "\n\n            setOutput(vec4(").concat(output, "));\n          }\n        }\n      ");
                    }
                }
                PackProgram.prototype.getSourceCoordsArr = function (dims) {
                    var coords = [];
                    for (var row = 0; row <= 1; row++) {
                        for (var col = 0; col <= 1; col++) {
                            var coord = "".concat(row === 0 ? 'r' : 'rp1', ", ").concat(col === 0 ? 'c' : 'cp1');
                            for (var d = 2; d < this.rank; d++) {
                                coord = "".concat(dims[dims.length - 1 - d], ",") + coord;
                            }
                            coords.push(coord);
                        }
                    }
                    return coords;
                }
                    ;
                PackProgram.prototype.getOutOfBoundsCondition = function (dims) {
                    if (this.rank === 1) {
                        return "rc > ".concat(this.enableShapeUniforms ? 'outShape' : this.outputShape[0]);
                    }
                    var cond = '';
                    for (var i = this.rank - 2; i < this.rank; i++) {
                        cond += "".concat(dims[i], " >= ").concat(this.enableShapeUniforms ? "outShape[".concat(i, "]") : this.outputShape[i]);
                        if (i < this.rank - 1) {
                            cond += '||';
                        }
                    }
                    return cond;
                }
                    ;
                PackProgram.prototype.getSetup = function (dims) {
                    if (this.rank === 1) {
                        return '';
                    }
                    var innerDims = dims.slice(-2);
                    var col = this.enableShapeUniforms ? "outShape[".concat(this.rank, " - 1]") : this.outputShape[this.rank - 1];
                    var row = this.enableShapeUniforms ? "outShape[".concat(this.rank, " - 2]") : this.outputShape[this.rank - 2];
                    return "\n      int r = ".concat(innerDims[0], ";\n      int c = ").concat(innerDims[1], ";\n      int rp1 = r + 1;\n      int cp1 = c + 1;\n\n      bool cEdge = cp1 >= ").concat(col, ";\n      bool rEdge = rp1 >= ").concat(row, ";\n    ");
                }
                    ;
                PackProgram.prototype.getOutput = function (dims) {
                    var sourceCoords = this.getSourceCoordsArr(dims);
                    if (this.rank === 1) {
                        var outShape = this.enableShapeUniforms ? 'outShape' : this.outputShape[0];
                        return "getA(rc), (rc + 1 >= ".concat(outShape, " ? 0. : getA(rc + 1)), 0, 0");
                    }
                    return "getA(".concat(sourceCoords[0], "),\n            cEdge ? 0. : getA(").concat(sourceCoords[1], "),\n            rEdge ? 0. : getA(").concat(sourceCoords[2], "),\n            rEdge || cEdge ? 0. : getA(").concat(sourceCoords[3], ")");
                }
                    ;
                return PackProgram;
            }());

        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var ReshapePackedProgram = /** @class */
            (function () {
                function ReshapePackedProgram(outputShape, inputShape) {
                    this.variableNames = ['A'];
                    this.packedInputs = true;
                    this.packedOutput = true;
                    this.customUniforms = [{
                        name: 'inputShape',
                        type: 'ivec3'
                    }];
                    this.outputShape = outputShape;
                    this.enableShapeUniforms = useShapeUniforms(this.outputShape.length);
                    var mainLoop = "";
                    for (var i = 0; i < 4; i++) {
                        var thisRC = "thisRC = rc;";
                        if (i % 2 === 1) {
                            thisRC += "thisRC.z += 1;";
                        }
                        if (i > 1) {
                            thisRC += "thisRC.y += 1;";
                        }
                        mainLoop += "\n        ".concat(thisRC, "\n        ").concat(i > 0 ? "if(thisRC.y < rows && thisRC.z < cols){" : '', "\n          int flatIndex = getFlatIndex(thisRC);\n\n          ivec3 inputRC = inputCoordsFromReshapedOutCoords(flatIndex);\n          vec2 inputRCInnerDims = vec2(float(inputRC.y),float(inputRC.z));\n\n          result[").concat(i, "] =\n            getChannel(getA(inputRC.x, inputRC.y, inputRC.z), inputRCInnerDims);\n        ").concat(i > 0 ? '}' : '', "\n      ");
                    }
                    this.userCode = "\n      ".concat(getReshapedInputCoords(inputShape, this.enableShapeUniforms), "\n      ").concat(this.enableShapeUniforms ? getFlatIndexFrom3DOutput() : getFlatIndexFrom3D(outputShape), "\n\n      void main() {\n        ivec3 rc = getOutputCoords();\n\n        vec4 result = vec4(0.);\n\n        ivec3 thisRC;\n        int rows = ").concat(this.enableShapeUniforms ? 'outShape[1]' : outputShape[1], ";\n        int cols = ").concat(this.enableShapeUniforms ? 'outShape[2]' : outputShape[2], ";\n\n        ").concat(mainLoop, "\n\n        setOutput(result);\n      }\n    ");
                }
                return ReshapePackedProgram;
            }());
        function getReshapedInputCoords(shape, enableShapeUniforms) {
            var coordsFromIndexSnippet = enableShapeUniforms ? getLogicalCoordinatesFromFlatIndexByUniform(['r', 'c', 'd'], 'inputShape') : getLogicalCoordinatesFromFlatIndex(['r', 'c', 'd'], shape);
            return "\n    ivec3 inputCoordsFromReshapedOutCoords(int index) {\n      ".concat(coordsFromIndexSnippet, "\n      return ivec3(r, c, d);\n    }\n  ");
        }

        var TextureManager = /** @class */
            (function () {
                function TextureManager(gpgpu) {
                    this.gpgpu = gpgpu;
                    this.numUsedTextures = 0;
                    this.numFreeTextures = 0;
                    this._numBytesAllocated = 0;
                    this._numBytesFree = 0;
                    // How many bytes that have been allocated
                    // are available for reuse.
                    this.freeTextures = {};
                    this.logEnabled = false;
                    this.usedTextures = {};
                }
                TextureManager.prototype.acquireTexture = function (shapeRC, usage, isPacked) {
                    var physicalTexType = getPhysicalFromLogicalTextureType(usage, isPacked);
                    var shapeKey = getKeyFromTextureShape(shapeRC, physicalTexType, isPacked);
                    if (!(shapeKey in this.freeTextures)) {
                        this.freeTextures[shapeKey] = [];
                    }
                    if (!(shapeKey in this.usedTextures)) {
                        this.usedTextures[shapeKey] = [];
                    }
                    var texBytes = computeBytes(shapeRC, physicalTexType, this.gpgpu.gl, this.gpgpu.textureConfig, isPacked);
                    if (this.freeTextures[shapeKey].length > 0) {
                        this.numFreeTextures--;
                        this.numUsedTextures++;
                        this._numBytesFree -= texBytes;
                        this.log();
                        var newTexture_1 = this.freeTextures[shapeKey].shift();
                        this.usedTextures[shapeKey].push(newTexture_1);
                        return newTexture_1;
                    }
                    var newTexture;
                    if (physicalTexType === PhysicalTextureType.PACKED_2X2_FLOAT32) {
                        newTexture = this.gpgpu.createPackedMatrixTexture(shapeRC[0], shapeRC[1]);
                    } else if (physicalTexType === PhysicalTextureType.PACKED_2X2_FLOAT16) {
                        newTexture = this.gpgpu.createFloat16PackedMatrixTexture(shapeRC[0], shapeRC[1]);
                    } else if (physicalTexType === PhysicalTextureType.UNPACKED_FLOAT32) {
                        newTexture = this.gpgpu.createFloat32MatrixTexture(shapeRC[0], shapeRC[1]);
                    } else if (physicalTexType === PhysicalTextureType.UNPACKED_FLOAT16) {
                        newTexture = this.gpgpu.createFloat16MatrixTexture(shapeRC[0], shapeRC[1]);
                    } else if (physicalTexType === PhysicalTextureType.PACKED_4X1_UNSIGNED_BYTE) {
                        newTexture = this.gpgpu.createUnsignedBytesMatrixTexture(shapeRC[0], shapeRC[1]);
                    }
                    this.usedTextures[shapeKey].push(newTexture);
                    this.numUsedTextures++;
                    this._numBytesAllocated += texBytes;
                    this.log();
                    return newTexture;
                }
                    ;
                TextureManager.prototype.releaseTexture = function (texture, shape, logicalTexType, isPacked) {
                    if (this.freeTextures == null) {
                        // Already disposed.
                        return;
                    }
                    var physicalTexType = getPhysicalFromLogicalTextureType(logicalTexType, isPacked);
                    var shapeKey = getKeyFromTextureShape(shape, physicalTexType, isPacked);
                    if (!(shapeKey in this.freeTextures)) {
                        this.freeTextures[shapeKey] = [];
                    }
                    var texBytes = computeBytes(shape, physicalTexType, this.gpgpu.gl, this.gpgpu.textureConfig, isPacked);
                    var deleteTexThreshold = tf.env().get('WEBGL_DELETE_TEXTURE_THRESHOLD');
                    if (deleteTexThreshold !== -1 && this._numBytesAllocated > deleteTexThreshold) {
                        this.gpgpu.deleteMatrixTexture(texture.texture);
                        this._numBytesAllocated -= texBytes;
                    } else {
                        this.freeTextures[shapeKey].push(texture);
                        this.numFreeTextures++;
                        this._numBytesFree += texBytes;
                    }
                    this.numUsedTextures--;
                    var texList = this.usedTextures[shapeKey];
                    var texIndex = texList.indexOf(texture);
                    if (texIndex < 0) {
                        throw new Error('Cannot release a texture that was never provided by this ' + 'texture manager');
                    }
                    texList.splice(texIndex, 1);
                    this.log();
                }
                    ;
                TextureManager.prototype.log = function () {
                    if (!this.logEnabled) {
                        return;
                    }
                    var total = this.numFreeTextures + this.numUsedTextures;
                    console.log('Free/Used', "".concat(this.numFreeTextures, " / ").concat(this.numUsedTextures), "(".concat(total, ")"));
                    var freeRatio = this._numBytesFree / this._numBytesAllocated;
                    console.log("Bytes allocated: ".concat(this._numBytesAllocated));
                    console.log("Bytes unused: ".concat(this._numBytesFree, " (").concat(Math.round(100 * freeRatio), "%)"));
                }
                    ;
                Object.defineProperty(TextureManager.prototype, "numBytesAllocated", {
                    get: function () {
                        return this._numBytesAllocated;
                    },
                    enumerable: false,
                    configurable: true
                });
                Object.defineProperty(TextureManager.prototype, "numBytesFree", {
                    get: function () {
                        return this._numBytesFree;
                    },
                    enumerable: false,
                    configurable: true
                });
                TextureManager.prototype.getNumUsedTextures = function () {
                    return this.numUsedTextures;
                }
                    ;
                TextureManager.prototype.getNumFreeTextures = function () {
                    return this.numFreeTextures;
                }
                    ;
                TextureManager.prototype.dispose = function () {
                    var _this = this;
                    if (this.freeTextures == null) {
                        // Already disposed.
                        return;
                    }
                    for (var texShape in this.freeTextures) {
                        this.freeTextures[texShape].forEach(function (tex) {
                            _this.gpgpu.deleteMatrixTexture(tex.texture);
                        });
                    }
                    for (var texShape in this.usedTextures) {
                        this.usedTextures[texShape].forEach(function (tex) {
                            _this.gpgpu.deleteMatrixTexture(tex.texture);
                        });
                    }
                    this.freeTextures = null;
                    this.usedTextures = null;
                    this.numUsedTextures = 0;
                    this.numFreeTextures = 0;
                    this._numBytesAllocated = 0;
                    this._numBytesFree = 0;
                }
                    ;
                return TextureManager;
            }());
        function numBytesForInternalFormat(gl, internalFormat) {
            // tslint:disable-next-line:no-any
            var glany = gl;
            if (internalFormat === glany.R32F) {
                return 4;
            } else if (internalFormat === glany.R16F) {
                return 2;
            } else if (internalFormat === glany.RGBA32F) {
                return 16;
            } else if (internalFormat === gl.RGBA) {
                return 16;
            } else if (internalFormat === glany.RGBA16F) {
                return 8;
            } else if (internalFormat === glany.RGBA8) {
                return 4;
            }
            throw new Error("Unknown internal format ".concat(internalFormat));
        }
        function computeBytes(shape, physicalTexType, gl, textureConfig, isPacked) {
            // It is not possible to infer packed status from the texture type because
            // depending on the textureConfig, different  texture types may resolve to the
            // same internal format (e.g. in WebGL1, the internal format for
            // UNPACKED_FLOAT16 textures is gl.RGBA). Therefore we pass in `isPacked`
            // explicitly.
            var internalFormat = internalFormatForPhysicalTexType(physicalTexType, textureConfig);
            var numElements;
            if (isPacked) {
                var _a = __read(getPackedMatrixTextureShapeWidthHeight(shape[0], shape[1]), 2)
                    , packedWidth = _a[0]
                    , packedHeight = _a[1];
                numElements = packedWidth * packedHeight;
            } else {
                var _b = __read(getUnpackedMatrixTextureShapeWidthHeight(shape[0], shape[1]), 2)
                    , width = _b[0]
                    , height = _b[1];
                numElements = width * height;
            }
            var bytesPerElement = numBytesForInternalFormat(gl, internalFormat);
            return numElements * bytesPerElement;
        }
        function internalFormatForPhysicalTexType(physicalTexType, textureConfig) {
            switch (physicalTexType) {
                case PhysicalTextureType.PACKED_2X2_FLOAT32:
                    return getInternalFormatForPackedMatrixTexture(textureConfig);
                case PhysicalTextureType.PACKED_2X2_FLOAT16:
                    return getInternalFormatForFloat16PackedMatrixTexture(textureConfig);
                case PhysicalTextureType.UNPACKED_FLOAT32:
                    return getInternalFormatForFloat32MatrixTexture(textureConfig);
                case PhysicalTextureType.UNPACKED_FLOAT16:
                    return getInternalFormatForFloat16MatrixTexture(textureConfig);
                case PhysicalTextureType.PACKED_4X1_UNSIGNED_BYTE:
                    return getInternalFormatForUnsignedBytesMatrixTexture(textureConfig);
                default:
                    throw new Error("Unknown physical texture type ".concat(physicalTexType));
            }
        }
        function getPhysicalTextureForRendering(isPacked) {
            if (tf.env().getBool('WEBGL_RENDER_FLOAT32_ENABLED')) {
                if (isPacked) {
                    return PhysicalTextureType.PACKED_2X2_FLOAT32;
                }
                return PhysicalTextureType.UNPACKED_FLOAT32;
            }
            if (isPacked) {
                return PhysicalTextureType.PACKED_2X2_FLOAT16;
            }
            return PhysicalTextureType.UNPACKED_FLOAT16;
        }
        function getPhysicalFromLogicalTextureType(logicalTexType, isPacked) {
            if (logicalTexType === TextureUsage.UPLOAD) {
                return PhysicalTextureType.PACKED_2X2_FLOAT32;
            } else if (logicalTexType === TextureUsage.RENDER || logicalTexType == null) {
                return getPhysicalTextureForRendering(isPacked);
            } else if (logicalTexType === TextureUsage.DOWNLOAD || logicalTexType === TextureUsage.PIXELS) {
                return PhysicalTextureType.PACKED_4X1_UNSIGNED_BYTE;
            }
            throw new Error("Unknown logical texture type ".concat(logicalTexType));
        }
        function getKeyFromTextureShape(shapeRowsCol, physicalTexType, isPacked) {
            return "".concat(shapeRowsCol[0], "_").concat(shapeRowsCol[1], "_").concat(physicalTexType, "_").concat(isPacked);
        }

        /**
         * @license
         * Copyright 2017 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var UnaryOpProgram = /** @class */
            (function () {
                function UnaryOpProgram(aShape, opSnippet) {
                    this.variableNames = ['A'];
                    this.outputShape = aShape;
                    this.enableShapeUniforms = useShapeUniforms(this.outputShape.length);
                    this.userCode = "\n      float unaryOperation(float x) {\n        ".concat(opSnippet, "\n      }\n\n      void main() {\n        float x = getAAtOutCoords();\n        float y = unaryOperation(x);\n\n        setOutput(y);\n      }\n    ");
                }
                return UnaryOpProgram;
            }());
        var CHECK_NAN_SNIPPET$1 = "if (isnan(x)) return x;";
        var LINEAR$1 = "return x;";
        var ABS$1 = "return abs(x);";
        var ELU$2 = "return (x >= 0.0) ? x : (exp(x) - 1.0);";
        var RELU$2 = CHECK_NAN_SNIPPET$1 + "\n  return (x < 0.0) ? 0.0 : x;\n";
        var RELU6$2 = CHECK_NAN_SNIPPET$1 + "\n  return (x < 0.0) ? 0.0 : min(6.0, x);\n";
        var CLONE = 'return x;';
        var SIGMOID$2 = "return 1.0 / (1.0 + exp(-1.0 * x));";

        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var LINEAR = "return x;";
        var ELU$1 = "\n  vec4 result;\n\n  result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0);\n  result.g = (x.g >= 0.0) ? x.g : (exp(x.g) - 1.0);\n  result.b = (x.b >= 0.0) ? x.b : (exp(x.b) - 1.0);\n  result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0);\n\n  return result;\n";
        var RELU$1 = "\n  vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0)));\n  bvec4 isNaN = isnan(x);\n\n  result.r = isNaN.r ? x.r : result.r;\n  result.g = isNaN.g ? x.g : result.g;\n  result.b = isNaN.b ? x.b : result.b;\n  result.a = isNaN.a ? x.a : result.a;\n\n  return result;\n";
        var RELU6$1 = "\n  vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0)));\n  bvec4 isNaN = isnan(x);\n\n  result.r = isNaN.r ? x.r : result.r;\n  result.g = isNaN.g ? x.g : result.g;\n  result.b = isNaN.b ? x.b : result.b;\n  result.a = isNaN.a ? x.a : result.a;\n\n  return result;\n";
        var SIGMOID$1 = "return 1.0 / (1.0 + exp(-1.0 * x));";
        var UnaryOpPackedProgram = /** @class */
            (function () {
                function UnaryOpPackedProgram(aShape, opSnippet) {
                    this.variableNames = ['A'];
                    this.packedInputs = true;
                    this.packedOutput = true;
                    this.outputShape = aShape;
                    this.enableShapeUniforms = useShapeUniforms(this.outputShape.length);
                    this.userCode = "\n      vec4 unaryOperation(vec4 x) {\n        ".concat(opSnippet, "\n      }\n\n      void main() {\n        vec4 x = getAAtOutCoords();\n        vec4 y = unaryOperation(x);\n\n        setOutput(y);\n      }\n    ");
                }
                return UnaryOpPackedProgram;
            }());

        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var UnpackProgram = /** @class */
            (function () {
                function UnpackProgram(outputShape) {
                    this.variableNames = ['A'];
                    this.packedInputs = true;
                    this.packedOutput = false;
                    this.outputShape = outputShape;
                    this.enableShapeUniforms = useShapeUniforms(this.outputShape.length);
                    var rank = outputShape.length;
                    var channels = getChannels('rc', rank);
                    var dtype = getCoordsDataType(rank);
                    var sourceCoords = getSourceCoords$2(rank, channels);
                    var innerDims = channels.slice(-2);
                    var coords = rank <= 1 ? 'rc' : "vec2(".concat(innerDims.join(','), ")");
                    this.userCode = "\n      void main() {\n        ".concat(dtype, " rc = getOutputCoords();\n        vec4 packedInput = getA(").concat(sourceCoords, ");\n\n        setOutput(getChannel(packedInput, ").concat(coords, "));\n      }\n    ");
                }
                return UnpackProgram;
            }());

        var whereImpl = tf.kernel_impls.whereImpl;
        var EPSILON_FLOAT32 = 1e-7;
        var EPSILON_FLOAT16 = 1e-4;
        var binaryCaches = {};
        function getBinaryCache(webGLVersion) {
            if (webGLVersion in binaryCaches) {
                return binaryCaches[webGLVersion];
            }
            binaryCaches[webGLVersion] = {};
            return binaryCaches[webGLVersion];
        }
        // Empirically determined constant used to determine size threshold for handing
        // off execution to the CPU.
        var CPU_HANDOFF_SIZE_THRESHOLD = tf.env().getNumber('CPU_HANDOFF_SIZE_THRESHOLD');
        // Empirically determined constant used to decide the number of MB on GPU
        // before we warn about high memory use. The MB are this constant * screen area
        // * dpi / 1024 / 1024.
        var BEFORE_PAGING_CONSTANT = 600;
        function numMBBeforeWarning() {
            if (tf.env().global.screen == null) {
                return 1024;
                // 1 GB.
            }
            return (tf.env().global.screen.height * tf.env().global.screen.width * window.devicePixelRatio) * BEFORE_PAGING_CONSTANT / 1024 / 1024;
        }
        var MathBackendWebGL = /** @class */
            (function (_super) {
                __extends(MathBackendWebGL, _super);
                function MathBackendWebGL(gpuResource) {
                    var _this = _super.call(this) || this;
                    // Maps data ids that have a pending read operation, to list of subscribers.
                    _this.pendingRead = new WeakMap();
                    // List of data ids that are scheduled for disposal, but are waiting on a
                    // pending read operation.
                    _this.pendingDisposal = new WeakSet();
                    // Used to count the number of 'shallow' sliced tensors that point to the
                    // same data id.
                    _this.dataRefCount = new WeakMap();
                    _this.numBytesInGPU = 0;
                    // Accumulated time spent (including blocking) in uploading data to webgl.
                    _this.uploadWaitMs = 0;
                    // Accumulated time spent (including blocking in downloading data from webgl.
                    _this.downloadWaitMs = 0;
                    // record the last manual GL Flush time.
                    _this.lastGlFlushTime = 0;
                    _this.warnedAboutMemory = false;
                    _this.pendingDeletes = 0;
                    _this.disposed = false;
                    if (!tf.env().getBool('HAS_WEBGL')) {
                        throw new Error('WebGL is not supported on this device');
                    }
                    var newGPGPU;
                    if (gpuResource != null) {
                        if (gpuResource instanceof GPGPUContext) {
                            newGPGPU = gpuResource;
                        } else {
                            var gl = getWebGLContext(tf.env().getNumber('WEBGL_VERSION'), gpuResource);
                            newGPGPU = new GPGPUContext(gl);
                        }
                        _this.binaryCache = {};
                        _this.gpgpuCreatedLocally = false;
                    } else {
                        var gl = getWebGLContext(tf.env().getNumber('WEBGL_VERSION'));
                        newGPGPU = new GPGPUContext(gl);
                        _this.binaryCache = getBinaryCache(tf.env().getNumber('WEBGL_VERSION'));
                        _this.gpgpuCreatedLocally = true;
                    }
                    _this.gpgpu = newGPGPU;
                    _this.canvas = _this.gpgpu.gl.canvas;
                    _this.textureManager = new TextureManager(_this.gpgpu);
                    _this.numMBBeforeWarning = numMBBeforeWarning();
                    _this.texData = new tf.DataStorage(_this, tf.engine());
                    return _this;
                }
                MathBackendWebGL.prototype.nextDataId = function () {
                    return MathBackendWebGL.nextDataId++;
                }
                    ;
                MathBackendWebGL.prototype.numDataIds = function () {
                    return this.texData.numDataIds() - this.pendingDeletes;
                }
                    ;
                // Writes a new entry to the data store with a WebGL texture, and registers it
                // to the texture manager.
                MathBackendWebGL.prototype.writeTexture = function (texture, shape, dtype, texHeight, texWidth, channels) {
                    // Temporarily create an tensor info to make the texture compatible with
                    // the runWebGLProgram's input.
                    var input = this.makeTensorInfo(shape, dtype);
                    var inData = this.texData.get(input.dataId);
                    // Even though the input texture could be unpacked or dense packed, it is
                    // always considered as unpacked for EncodeMatrixProgram.
                    inData.isPacked = false;
                    // Bind texture to the input tensor.
                    inData.texture = {
                        texture: texture,
                        texShape: [texHeight, texWidth]
                    };
                    inData.texShape = [texHeight, texWidth];
                    var shapeAs3D = getShapeAs3D(shape);
                    var program = new EncodeMatrixProgram(shapeAs3D, false /* isByteArray */
                        , channels);
                    var output = this.runWebGLProgram(program, [input], dtype, [[texHeight, texWidth]]);
                    output.shape = shape;
                    // Unbind the texture from the input tensor to avoid the texture being
                    // released.
                    inData.texture = null;
                    this.disposeIntermediateTensorInfo(input);
                    return output.dataId;
                }
                    ;
                MathBackendWebGL.prototype.write = function (values, shape, dtype) {
                    if (tf.env().getBool('WEBGL_CHECK_NUMERICAL_PROBLEMS') || tf.env().getBool('DEBUG')) {
                        this.checkNumericalProblems(values);
                    }
                    if (dtype === 'complex64' && values != null) {
                        throw new Error("Cannot write to a complex64 dtype. " + "Please use tf.complex(real, imag).");
                    }
                    var dataId = {
                        id: this.nextDataId()
                    };
                    this.texData.set(dataId, {
                        shape: shape,
                        dtype: dtype,
                        values: values,
                        usage: TextureUsage.UPLOAD,
                        refCount: 1
                    });
                    return dataId;
                }
                    ;
                /** Return refCount of a `TensorData`. */
                MathBackendWebGL.prototype.refCount = function (dataId) {
                    if (this.texData.has(dataId)) {
                        var tensorData = this.texData.get(dataId);
                        return tensorData.refCount;
                    }
                    return 0;
                }
                    ;
                /** Increase refCount of a `TextureData`. */
                MathBackendWebGL.prototype.incRef = function (dataId) {
                    var texData = this.texData.get(dataId);
                    texData.refCount++;
                }
                    ;
                /** Decrease refCount of a `TextureData`. */
                MathBackendWebGL.prototype.decRef = function (dataId) {
                    if (this.texData.has(dataId)) {
                        var texData = this.texData.get(dataId);
                        texData.refCount--;
                    }
                }
                    ;
                MathBackendWebGL.prototype.move = function (dataId, values, shape, dtype, refCount) {
                    if (tf.env().getBool('DEBUG')) {
                        this.checkNumericalProblems(values);
                    }
                    if (dtype === 'complex64') {
                        throw new Error("Cannot write to a complex64 dtype. " + "Please use tf.complex(real, imag).");
                    }
                    this.texData.set(dataId, {
                        shape: shape,
                        dtype: dtype,
                        values: values,
                        usage: TextureUsage.UPLOAD,
                        refCount: refCount
                    });
                }
                    ;
                MathBackendWebGL.prototype.disposeIntermediateTensorInfo = function (tensorInfo) {
                    this.disposeData(tensorInfo.dataId);
                }
                    ;
                MathBackendWebGL.prototype.readSync = function (dataId) {
                    var texData = this.texData.get(dataId);
                    var values = texData.values
                        , dtype = texData.dtype
                        , complexTensorInfos = texData.complexTensorInfos
                        , slice = texData.slice
                        , shape = texData.shape
                        , isPacked = texData.isPacked;
                    // The presence of `slice` indicates this tensor is a shallow slice of a
                    // different tensor, and is using that original tensor's texture. Run
                    // `clone` in order to copy that texture and read from it.
                    if (slice != null) {
                        var program = void 0;
                        if (isPacked) {
                            program = new UnaryOpPackedProgram(shape, CLONE);
                        } else {
                            program = new UnaryOpProgram(shape, CLONE);
                        }
                        var res = this.runWebGLProgram(program, [{
                            dataId: dataId,
                            shape: shape,
                            dtype: dtype
                        }], dtype);
                        var data = this.readSync(res.dataId);
                        this.disposeIntermediateTensorInfo(res);
                        return data;
                    }
                    if (values != null) {
                        return this.convertAndCacheOnCPU(dataId);
                    }
                    if (dtype === 'string') {
                        return values;
                    }
                    var shouldTimeProgram = this.activeTimers != null;
                    var start;
                    if (shouldTimeProgram) {
                        start = tf.util.now();
                    }
                    var result;
                    if (dtype === 'complex64') {
                        var realValues = this.readSync(complexTensorInfos.real.dataId);
                        var imagValues = this.readSync(complexTensorInfos.imag.dataId);
                        result = tf.backend_util.mergeRealAndImagArrays(realValues, imagValues);
                    } else {
                        result = this.getValuesFromTexture(dataId);
                    }
                    if (shouldTimeProgram) {
                        this.downloadWaitMs += tf.util.now() - start;
                    }
                    return this.convertAndCacheOnCPU(dataId, result);
                }
                    ;
                MathBackendWebGL.prototype.read = function (dataId) {
                    return __awaiter(this, void 0, void 0, function () {
                        var subscribers_1, texData, values, shape, slice, dtype, complexTensorInfos, isPacked, program, res, data, buffer, tmpDownloadTarget, tmpData, vals, ps, realValues, imagValues, size, gl_1, dTypeVals, subscribers;
                        var _b;
                        return __generator(this, function (_c) {
                            switch (_c.label) {
                                case 0:
                                    if (this.pendingRead.has(dataId)) {
                                        subscribers_1 = this.pendingRead.get(dataId);
                                        return [2 /*return*/
                                            , new Promise(function (resolve) {
                                                return subscribers_1.push(resolve);
                                            }
                                            )];
                                    }
                                    texData = this.texData.get(dataId);
                                    values = texData.values,
                                        shape = texData.shape,
                                        slice = texData.slice,
                                        dtype = texData.dtype,
                                        complexTensorInfos = texData.complexTensorInfos,
                                        isPacked = texData.isPacked;
                                    // The presence of `slice` indicates this tensor is a shallow slice of a
                                    // different tensor, and is using that original tensor's texture. Run
                                    // `clone` in order to copy that texture and read from it.
                                    if (slice != null) {
                                        program = void 0;
                                        if (isPacked) {
                                            program = new UnaryOpPackedProgram(shape, CLONE);
                                        } else {
                                            program = new UnaryOpProgram(shape, CLONE);
                                        }
                                        res = this.runWebGLProgram(program, [{
                                            dataId: dataId,
                                            shape: shape,
                                            dtype: dtype
                                        }], dtype);
                                        data = this.read(res.dataId);
                                        this.disposeIntermediateTensorInfo(res);
                                        return [2 /*return*/
                                            , data];
                                    }
                                    if (values != null) {
                                        return [2 /*return*/
                                            , this.convertAndCacheOnCPU(dataId)];
                                    }
                                    if (tf.env().getBool('DEBUG')) {
                                        // getBool('WEBGL_DOWNLOAD_FLOAT_ENABLED') caused a blocking GPU call.
                                        // For performance reason, only check it for debugging. In production,
                                        // it doesn't handle this use case anyway, so behavior is not changed.
                                        if (!tf.env().getBool('WEBGL_DOWNLOAD_FLOAT_ENABLED') && tf.env().getNumber('WEBGL_VERSION') === 2) {
                                            throw new Error("tensor.data() with WEBGL_DOWNLOAD_FLOAT_ENABLED=false and " + "WEBGL_VERSION=2 not yet supported.");
                                        }
                                    }
                                    buffer = null;
                                    if (dtype !== 'complex64' && tf.env().get('WEBGL_BUFFER_SUPPORTED')) {
                                        // Possibly copy the texture into a buffer before inserting a fence.
                                        tmpDownloadTarget = this.decode(dataId);
                                        tmpData = this.texData.get(tmpDownloadTarget.dataId);
                                        buffer = (_b = this.gpgpu).createBufferFromTexture.apply(_b, __spreadArray([tmpData.texture.texture], __read(getDenseTexShape(shape)), false));
                                    }
                                    this.pendingRead.set(dataId, []);
                                    if (!(dtype !== 'complex64'))
                                        return [3 /*break*/
                                            , 2];
                                    // Create a fence and wait for it to resolve.
                                    return [4 /*yield*/
                                        , this.gpgpu.createAndWaitForFence()];
                                case 1:
                                    // Create a fence and wait for it to resolve.
                                    _c.sent();
                                    _c.label = 2;
                                case 2:
                                    if (!(dtype === 'complex64'))
                                        return [3 /*break*/
                                            , 4];
                                    return [4 /*yield*/
                                        , Promise.all([this.read(complexTensorInfos.real.dataId), this.read(complexTensorInfos.imag.dataId)])];
                                case 3:
                                    ps = _c.sent();
                                    realValues = ps[0];
                                    imagValues = ps[1];
                                    vals = tf.backend_util.mergeRealAndImagArrays(realValues, imagValues);
                                    return [3 /*break*/
                                        , 5];
                                case 4:
                                    if (buffer == null) {
                                        vals = this.getValuesFromTexture(dataId);
                                    } else {
                                        size = tf.util.sizeFromShape(shape);
                                        vals = this.gpgpu.downloadFloat32MatrixFromBuffer(buffer, size);
                                    }
                                    _c.label = 5;
                                case 5:
                                    if (tmpDownloadTarget != null) {
                                        this.disposeIntermediateTensorInfo(tmpDownloadTarget);
                                    }
                                    if (buffer != null) {
                                        gl_1 = this.gpgpu.gl;
                                        callAndCheck(gl_1, function () {
                                            return gl_1.deleteBuffer(buffer);
                                        });
                                    }
                                    dTypeVals = this.convertAndCacheOnCPU(dataId, vals);
                                    subscribers = this.pendingRead.get(dataId);
                                    this.pendingRead.delete(dataId);
                                    // Notify all pending reads.
                                    subscribers.forEach(function (resolve) {
                                        return resolve(dTypeVals);
                                    });
                                    if (this.pendingDisposal.has(dataId)) {
                                        this.pendingDisposal.delete(dataId);
                                        if (this.disposeData(dataId)) {
                                            tf.engine().removeDataId(dataId, this);
                                        }
                                        this.pendingDeletes--;
                                    }
                                    return [2 /*return*/
                                        , dTypeVals];
                            }
                        });
                    });
                }
                    ;
                /**
                 * Read tensor to a new texture that is densely packed for ease of use.
                 * @param dataId The source tensor.
                 * @param options
                 *     customTexShape: Optional. If set, will use the user defined texture
                 *     shape to create the texture.
                 */
                MathBackendWebGL.prototype.readToGPU = function (dataId, options) {
                    if (options === void 0) {
                        options = {};
                    }
                    var texData = this.texData.get(dataId);
                    var values = texData.values
                        , shape = texData.shape
                        , slice = texData.slice
                        , dtype = texData.dtype
                        , isPacked = texData.isPacked
                        , texture = texData.texture;
                    if (dtype === 'complex64') {
                        throw new Error('Does not support reading texture for complex64 dtype.');
                    }
                    // The presence of `slice` indicates this tensor is a shallow slice of a
                    // different tensor, and is using that original tensor's texture. Run
                    // `clone` in order to copy that texture and read from it.
                    if (slice != null) {
                        var program = void 0;
                        if (isPacked) {
                            program = new UnaryOpPackedProgram(shape, CLONE);
                        } else {
                            program = new UnaryOpProgram(shape, CLONE);
                        }
                        var res = this.runWebGLProgram(program, [{
                            dataId: dataId,
                            shape: shape,
                            dtype: dtype
                        }], dtype);
                        var gpuResouorce = this.readToGPU(res, options);
                        this.disposeIntermediateTensorInfo(res);
                        return gpuResouorce;
                    }
                    if (texture == null) {
                        if (values != null) {
                            throw new Error('Data is not on GPU but on CPU.');
                        } else {
                            throw new Error('There is no data on GPU or CPU.');
                        }
                    }
                    // Decode the texture so that it is stored densely (using four channels).
                    var tmpTarget = this.decode(dataId, options.customTexShape);
                    // Make engine track this tensor, so that we can dispose it later.
                    var tensorRef = tf.engine().makeTensorFromTensorInfo(tmpTarget);
                    var tmpData = this.texData.get(tmpTarget.dataId);
                    return Object.assign({
                        tensorRef: tensorRef
                    }, tmpData.texture);
                }
                    ;
                MathBackendWebGL.prototype.bufferSync = function (t) {
                    var data = this.readSync(t.dataId);
                    if (t.dtype === 'string') {
                        try {
                            // Decode the bytes into string.
                            var strings = data.map(function (d) {
                                return tf.util.decodeString(d);
                            });
                            return tf.buffer(t.shape, t.dtype, strings);
                        } catch (_a) {
                            throw new Error('Failed to decode encoded string bytes into utf-8');
                        }
                    }
                    return tf.buffer(t.shape, t.dtype, data);
                }
                    ;
                MathBackendWebGL.prototype.checkNumericalProblems = function (values) {
                    if (values == null) {
                        return;
                    }
                    for (var i = 0; i < values.length; i++) {
                        var num = values[i];
                        if (!canBeRepresented(num)) {
                            if (tf.env().getBool('WEBGL_RENDER_FLOAT32_CAPABLE')) {
                                throw Error("The value ".concat(num, " cannot be represented with your ") + "current settings. Consider enabling float32 rendering: " + "'tf.env().set('WEBGL_RENDER_FLOAT32_ENABLED', true);'");
                            }
                            throw Error("The value ".concat(num, " cannot be represented on this device."));
                        }
                    }
                }
                    ;
                MathBackendWebGL.prototype.getValuesFromTexture = function (dataId) {
                    var _b;
                    var _c = this.texData.get(dataId)
                        , shape = _c.shape
                        , dtype = _c.dtype
                        , isPacked = _c.isPacked;
                    var size = tf.util.sizeFromShape(shape);
                    if (tf.env().getBool('WEBGL_DOWNLOAD_FLOAT_ENABLED')) {
                        var tmpTarget = this.decode(dataId);
                        var tmpData_1 = this.texData.get(tmpTarget.dataId);
                        var vals_1 = (_b = this.gpgpu).downloadMatrixFromPackedTexture.apply(_b, __spreadArray([tmpData_1.texture.texture], __read(getDenseTexShape(shape)), false)).subarray(0, size);
                        this.disposeIntermediateTensorInfo(tmpTarget);
                        return vals_1;
                    }
                    var shouldUsePackedProgram = tf.env().getBool('WEBGL_PACK') && isPacked === true;
                    var outputShape = shouldUsePackedProgram ? getShapeAs3D(shape) : shape;
                    var program = shouldUsePackedProgram ? new EncodeFloatPackedProgram(outputShape) : new EncodeFloatProgram(outputShape);
                    var output = this.runWebGLProgram(program, [{
                        shape: outputShape,
                        dtype: dtype,
                        dataId: dataId
                    }], 'float32');
                    var tmpData = this.texData.get(output.dataId);
                    var vals = this.gpgpu.downloadByteEncodedFloatMatrixFromOutputTexture(tmpData.texture.texture, tmpData.texShape[0], tmpData.texShape[1]).subarray(0, size);
                    this.disposeIntermediateTensorInfo(output);
                    return vals;
                }
                    ;
                MathBackendWebGL.prototype.timerAvailable = function () {
                    return tf.env().getNumber('WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE') > 0;
                }
                    ;
                MathBackendWebGL.prototype.time = function (f) {
                    var _this = this;
                    var oldActiveTimers = this.activeTimers;
                    var newActiveTimers = [];
                    var outerMostTime = false;
                    if (this.programTimersStack == null) {
                        this.programTimersStack = newActiveTimers;
                        outerMostTime = true;
                    } else {
                        this.activeTimers.push(newActiveTimers);
                    }
                    this.activeTimers = newActiveTimers;
                    f();
                    // needing to split these up because util.flatten only accepts certain types
                    var flattenedActiveTimerQueries = tf.util.flatten(this.activeTimers.map(function (d) {
                        return d.query;
                    })).filter(function (d) {
                        return d != null;
                    });
                    var flattenedActiveTimerNames = tf.util.flatten(this.activeTimers.map(function (d) {
                        return d.name;
                    })).filter(function (d) {
                        return d != null;
                    });
                    this.activeTimers = oldActiveTimers;
                    if (outerMostTime) {
                        this.programTimersStack = null;
                    }
                    var res = {
                        uploadWaitMs: this.uploadWaitMs,
                        downloadWaitMs: this.downloadWaitMs,
                        kernelMs: null,
                        wallMs: null // will be filled by the engine
                    };
                    return (function () {
                        return __awaiter(_this, void 0, void 0, function () {
                            var kernelMs_1;
                            return __generator(this, function (_b) {
                                switch (_b.label) {
                                    case 0:
                                        if (!(tf.env().getNumber('WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE') > 0))
                                            return [3 /*break*/
                                                , 2];
                                        return [4 /*yield*/
                                            , Promise.all(flattenedActiveTimerQueries)];
                                    case 1:
                                        kernelMs_1 = _b.sent();
                                        res['kernelMs'] = tf.util.sum(kernelMs_1);
                                        res['getExtraProfileInfo'] = function () {
                                            return kernelMs_1.map(function (d, i) {
                                                return ({
                                                    name: flattenedActiveTimerNames[i],
                                                    ms: d
                                                });
                                            }).map(function (d) {
                                                return "".concat(d.name, ": ").concat(d.ms);
                                            }).join(', ');
                                        }
                                            ;
                                        return [3 /*break*/
                                            , 3];
                                    case 2:
                                        res['kernelMs'] = {
                                            error: 'WebGL query timers are not supported in this environment.'
                                        };
                                        _b.label = 3;
                                    case 3:
                                        this.uploadWaitMs = 0;
                                        this.downloadWaitMs = 0;
                                        return [2 /*return*/
                                            , res];
                                }
                            });
                        });
                    }
                    )();
                }
                    ;
                MathBackendWebGL.prototype.memory = function () {
                    return {
                        unreliable: false,
                        numBytesInGPU: this.numBytesInGPU,
                        numBytesInGPUAllocated: this.textureManager.numBytesAllocated,
                        numBytesInGPUFree: this.textureManager.numBytesFree
                    };
                }
                    ;
                MathBackendWebGL.prototype.startTimer = function () {
                    if (tf.env().getNumber('WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE') > 0) {
                        return this.gpgpu.beginQuery();
                    }
                    return {
                        startMs: tf.util.now(),
                        endMs: null
                    };
                }
                    ;
                MathBackendWebGL.prototype.endTimer = function (query) {
                    if (tf.env().getNumber('WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE') > 0) {
                        this.gpgpu.endQuery();
                        return query;
                    }
                    query.endMs = tf.util.now();
                    return query;
                }
                    ;
                MathBackendWebGL.prototype.getQueryTime = function (query) {
                    return __awaiter(this, void 0, void 0, function () {
                        var timerQuery;
                        return __generator(this, function (_b) {
                            if (tf.env().getNumber('WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE') > 0) {
                                return [2 /*return*/
                                    , this.gpgpu.waitForQueryAndGetTime(query)];
                            }
                            timerQuery = query;
                            return [2 /*return*/
                                , timerQuery.endMs - timerQuery.startMs];
                        });
                    });
                }
                    ;
                /**
                 * Decrease the RefCount on the dataId and dispose the memory if the dataId
                 * has 0 refCount. If there are pending read on the data, the disposal would
                 * added to the pending delete queue. Return true if the dataId is removed
                 * from backend or the backend does not contain the dataId, false if the
                 * dataId is not removed. Memory may or may not be released even when dataId
                 * is removed, which also depends on dataRefCount, see `releaseGPU`.
                 * @param dataId
                 * @oaram force Optional, remove the data regardless of refCount
                 */
                MathBackendWebGL.prototype.disposeData = function (dataId, force) {
                    if (force === void 0) {
                        force = false;
                    }
                    if (this.pendingDisposal.has(dataId)) {
                        return false;
                    }
                    // No-op if already disposed.
                    if (!this.texData.has(dataId)) {
                        return true;
                    }
                    // if force flag is set, change refCount to 0, this would ensure disposal
                    // when added to the pendingDisposal queue. Memory may or may not be
                    // released, which also depends on dataRefCount, see `releaseGPU`.
                    if (force) {
                        this.texData.get(dataId).refCount = 0;
                    } else {
                        this.texData.get(dataId).refCount--;
                    }
                    if (!force && this.texData.get(dataId).refCount > 0) {
                        return false;
                    }
                    if (this.pendingRead.has(dataId)) {
                        this.pendingDisposal.add(dataId);
                        this.pendingDeletes++;
                        return false;
                    }
                    this.releaseGPUData(dataId);
                    var complexTensorInfos = this.texData.get(dataId).complexTensorInfos;
                    if (complexTensorInfos != null) {
                        this.disposeData(complexTensorInfos.real.dataId, force);
                        this.disposeData(complexTensorInfos.imag.dataId, force);
                    }
                    this.texData.delete(dataId);
                    return true;
                }
                    ;
                MathBackendWebGL.prototype.releaseGPUData = function (dataId) {
                    var _b = this.texData.get(dataId)
                        , texture = _b.texture
                        , dtype = _b.dtype
                        , texShape = _b.texShape
                        , usage = _b.usage
                        , isPacked = _b.isPacked
                        , slice = _b.slice;
                    var key = slice && slice.origDataId || dataId;
                    var refCount = this.dataRefCount.get(key);
                    if (refCount > 1) {
                        this.dataRefCount.set(key, refCount - 1);
                    } else {
                        this.dataRefCount.delete(key);
                        if (texture != null) {
                            this.numBytesInGPU -= this.computeBytes(texShape, dtype);
                            this.textureManager.releaseTexture(texture, texShape, usage, isPacked);
                        }
                    }
                    var texData = this.texData.get(dataId);
                    texData.texture = null;
                    texData.texShape = null;
                    texData.isPacked = false;
                    texData.slice = null;
                }
                    ;
                MathBackendWebGL.prototype.getTexture = function (dataId) {
                    this.uploadToGPU(dataId);
                    return this.texData.get(dataId).texture.texture;
                }
                    ;
                /**
                 * Returns internal information for the specific data bucket. Used in unit
                 * tests.
                 */
                MathBackendWebGL.prototype.getDataInfo = function (dataId) {
                    return this.texData.get(dataId);
                }
                    ;
                /*
                Tests whether all the inputs to an op are small and on the CPU. This heuristic
                determines when it would be faster to execute a kernel on the CPU. WebGL
                kernels opt into running this check and forwarding when appropriate.
                TODO(https://github.com/tensorflow/tfjs/issues/872): Develop a more
                sustainable strategy for optimizing backend execution of ops.
                 */
                MathBackendWebGL.prototype.shouldExecuteOnCPU = function (inputs, sizeThreshold) {
                    var _this = this;
                    if (sizeThreshold === void 0) {
                        sizeThreshold = CPU_HANDOFF_SIZE_THRESHOLD;
                    }
                    return tf.env().getBool('WEBGL_CPU_FORWARD') && inputs.every(function (input) {
                        return _this.texData.get(input.dataId).texture == null && tf.util.sizeFromShape(input.shape) < sizeThreshold;
                    });
                }
                    ;
                MathBackendWebGL.prototype.getGPGPUContext = function () {
                    return this.gpgpu;
                }
                    ;
                MathBackendWebGL.prototype.where = function (condition) {
                    tf.backend_util.warn('tf.where() in webgl locks the UI thread. ' + 'Call tf.whereAsync() instead');
                    var condVals = condition.dataSync();
                    return whereImpl(condition.shape, condVals);
                }
                    ;
                MathBackendWebGL.prototype.packedUnaryOp = function (x, op, dtype) {
                    var program = new UnaryOpPackedProgram(x.shape, op);
                    var outInfo = this.compileAndRun(program, [x], dtype);
                    return tf.engine().makeTensorFromTensorInfo(outInfo);
                }
                    ;
                // TODO(msoulanille) remove this once the backend has been modularized
                // a copy is needed here to break a circular dependency.
                // Also remove the op from unary_op.
                MathBackendWebGL.prototype.abs = function (x) {
                    // TODO: handle cases when x is complex.
                    if (this.shouldExecuteOnCPU([x]) && x.dtype !== 'complex64') {
                        var outValues = simpleAbsImplCPU(this.texData.get(x.dataId).values);
                        return this.makeOutput(x.shape, x.dtype, outValues);
                    }
                    if (tf.env().getBool('WEBGL_PACK_UNARY_OPERATIONS')) {
                        return this.packedUnaryOp(x, ABS$1, x.dtype);
                    }
                    var program = new UnaryOpProgram(x.shape, ABS$1);
                    var outInfo = this.compileAndRun(program, [x]);
                    return tf.engine().makeTensorFromTensorInfo(outInfo);
                }
                    ;
                MathBackendWebGL.prototype.makeTensorInfo = function (shape, dtype, values) {
                    var dataId;
                    if (dtype === 'string' && values != null && values.length > 0 && tf.util.isString(values[0])) {
                        var encodedValues = values.map(function (d) {
                            return tf.util.encodeString(d);
                        });
                        dataId = this.write(encodedValues, shape, dtype);
                    } else {
                        dataId = this.write(values, shape, dtype);
                    }
                    this.texData.get(dataId).usage = null;
                    return {
                        dataId: dataId,
                        shape: shape,
                        dtype: dtype
                    };
                }
                    ;
                MathBackendWebGL.prototype.makeOutput = function (shape, dtype, values) {
                    return tf.engine().makeTensorFromTensorInfo(this.makeTensorInfo(shape, dtype, values), this);
                }
                    ;
                MathBackendWebGL.prototype.unpackTensor = function (input) {
                    var program = new UnpackProgram(input.shape);
                    return this.runWebGLProgram(program, [input], input.dtype);
                }
                    ;
                MathBackendWebGL.prototype.packTensor = function (input) {
                    var program = new PackProgram(input.shape);
                    var preventEagerUnpackingOutput = true;
                    return this.runWebGLProgram(program, [input], input.dtype, null /* customUniformValues */
                        , preventEagerUnpackingOutput);
                }
                    ;
                MathBackendWebGL.prototype.packedReshape = function (input, afterShape) {
                    var input3DShape = __spreadArray([getBatchDim(input.shape)], __read(getRowsCols(input.shape)), false);
                    var input3D = {
                        dtype: input.dtype,
                        shape: input3DShape,
                        dataId: input.dataId
                    };
                    var afterShapeAs3D = __spreadArray([getBatchDim(afterShape)], __read(getRowsCols(afterShape)), false);
                    var program = new ReshapePackedProgram(afterShapeAs3D, input3DShape);
                    var preventEagerUnpackingOfOutput = true;
                    var customValues = [input3DShape];
                    var output = this.runWebGLProgram(program, [input3D], input.dtype, customValues, preventEagerUnpackingOfOutput);
                    return {
                        dataId: output.dataId,
                        shape: afterShape,
                        dtype: output.dtype
                    };
                }
                    ;
                MathBackendWebGL.prototype.decode = function (dataId, customTexShape) {
                    var texData = this.texData.get(dataId);
                    var isPacked = texData.isPacked
                        , shape = texData.shape
                        , dtype = texData.dtype;
                    if (customTexShape != null) {
                        var size = tf.util.sizeFromShape(shape);
                        var texSize = customTexShape[0] * customTexShape[1] * 4;
                        tf.util.assert(size <= texSize, function () {
                            return 'customTexShape is too small. ' + 'Row * Column * 4 should be equal or larger than the ' + 'size of the tensor data.';
                        });
                    }
                    var shapeAs3D = getShapeAs3D(shape);
                    var program;
                    if (isPacked) {
                        program = new DecodeMatrixPackedProgram(shapeAs3D);
                    } else {
                        program = new DecodeMatrixProgram(shapeAs3D);
                    }
                    var preventEagerUnpackingOfOutput = true;
                    var customValues = [customTexShape != null ? customTexShape : getDenseTexShape(shapeAs3D)];
                    var out = this.runWebGLProgram(program, [{
                        shape: shapeAs3D,
                        dtype: dtype,
                        dataId: dataId
                    }], dtype, customValues, preventEagerUnpackingOfOutput, customTexShape);
                    return {
                        dtype: dtype,
                        shape: shape,
                        dataId: out.dataId
                    };
                }
                    ;
                MathBackendWebGL.prototype.runWebGLProgram = function (program, inputs, outputDtype, customUniformValues, preventEagerUnpackingOfOutput, customTexShape) {
                    var _this = this;
                    if (preventEagerUnpackingOfOutput === void 0) {
                        preventEagerUnpackingOfOutput = false;
                    }
                    var output = this.makeTensorInfo(program.outputShape, outputDtype);
                    var outData = this.texData.get(output.dataId);
                    if (program.packedOutput) {
                        outData.isPacked = true;
                    }
                    if (program.outPackingScheme === PackingScheme.DENSE) {
                        var texelShape = customTexShape != null ? customTexShape : getDenseTexShape(program.outputShape);
                        // For a densely packed output, we explicitly set texShape
                        // so it doesn't get assigned later according to our typical packing
                        // scheme wherein a single texel can only contain values from adjacent
                        // rows/cols.
                        outData.texShape = texelShape.map(function (d) {
                            return d * 2;
                        });
                    }
                    if (program.outTexUsage != null) {
                        outData.usage = program.outTexUsage;
                    }
                    if (tf.util.sizeFromShape(output.shape) === 0) {
                        // Short-circuit the computation since the result is empty (has 0 in its
                        // shape).
                        outData.values = tf.util.getTypedArrayFromDType(output.dtype, 0);
                        return output;
                    }
                    var dataToDispose = [];
                    var inputsData = inputs.map(function (input) {
                        if (input.dtype === 'complex64') {
                            throw new Error("GPGPUProgram does not support complex64 input. For complex64 " + "dtypes, please separate the program into real and imaginary " + "parts.");
                        }
                        var texData = _this.texData.get(input.dataId);
                        if (texData.texture == null) {
                            if (!program.packedInputs && tf.util.sizeFromShape(input.shape) <= tf.env().getNumber('WEBGL_SIZE_UPLOAD_UNIFORM')) {
                                // Upload small tensors that live on the CPU as uniforms, not as
                                // textures. Do this only when the environment supports 32bit floats
                                // due to problems when comparing 16bit floats with 32bit floats.
                                // TODO(https://github.com/tensorflow/tfjs/issues/821): Make it
                                // possible for packed shaders to sample from uniforms.
                                return {
                                    shape: input.shape,
                                    texData: null,
                                    isUniform: true,
                                    uniformValues: texData.values
                                };
                            }
                            // This ensures that if a packed program's inputs have not yet been
                            // uploaded to the GPU, they get uploaded as packed right off the bat.
                            if (program.packedInputs) {
                                texData.isPacked = true;
                                texData.shape = input.shape;
                            }
                        }
                        _this.uploadToGPU(input.dataId);
                        if (!!texData.isPacked !== !!program.packedInputs) {
                            input = texData.isPacked ? _this.unpackTensor(input) : _this.packTensor(input);
                            dataToDispose.push(input);
                            texData = _this.texData.get(input.dataId);
                        } else if (texData.isPacked && !isReshapeFree(texData.shape, input.shape)) {
                            // This is a special case where a texture exists for a tensor
                            // but the shapes are incompatible (due to packing constraints) because
                            // the tensor did not have a chance to go through the packed reshape
                            // shader. This only happens when we reshape the *same* tensor to form
                            // *distinct* inputs to an op, e.g. dotting a vector with itself. This
                            // case will disappear once packed uploading is the default.
                            var savedInput = input;
                            var targetShape = input.shape;
                            input.shape = texData.shape;
                            input = _this.packedReshape(input, targetShape);
                            dataToDispose.push(input);
                            texData = _this.texData.get(input.dataId);
                            savedInput.shape = targetShape;
                        }
                        return {
                            shape: input.shape,
                            texData: texData,
                            isUniform: false
                        };
                    });
                    this.uploadToGPU(output.dataId);
                    var outputData = {
                        shape: output.shape,
                        texData: outData,
                        isUniform: false
                    };
                    var key = makeShaderKey(program, inputsData, outputData);
                    var binary = this.getAndSaveBinary(key, function () {
                        return compileProgram(_this.gpgpu, program, inputsData, outputData);
                    });
                    var shouldTimeProgram = this.activeTimers != null;
                    var query;
                    if (shouldTimeProgram) {
                        query = this.startTimer();
                    }
                    if (!tf.env().get('ENGINE_COMPILE_ONLY')) {
                        runProgram(this.gpgpu, binary, inputsData, outputData, customUniformValues);
                    }
                    dataToDispose.forEach(function (info) {
                        return _this.disposeIntermediateTensorInfo(info);
                    });
                    if (shouldTimeProgram) {
                        query = this.endTimer(query);
                        this.activeTimers.push({
                            name: program.constructor.name,
                            query: this.getQueryTime(query)
                        });
                    }
                    var glFlushThreshold = tf.env().get('WEBGL_FLUSH_THRESHOLD');
                    // Manually GL flush requested
                    if (glFlushThreshold > 0) {
                        var time = tf.util.now();
                        if ((time - this.lastGlFlushTime) > glFlushThreshold) {
                            this.gpgpu.gl.flush();
                            this.lastGlFlushTime = time;
                        }
                    }
                    if (!tf.env().getBool('WEBGL_LAZILY_UNPACK') && outData.isPacked && preventEagerUnpackingOfOutput === false) {
                        var unpacked = this.unpackTensor(output);
                        this.disposeIntermediateTensorInfo(output);
                        return unpacked;
                    }
                    return output;
                }
                    ;
                MathBackendWebGL.prototype.compileAndRun = function (program, inputs, outputDtype, customUniformValues, preventEagerUnpackingOfOutput) {
                    if (preventEagerUnpackingOfOutput === void 0) {
                        preventEagerUnpackingOfOutput = false;
                    }
                    outputDtype = outputDtype || inputs[0].dtype;
                    var outInfo = this.runWebGLProgram(program, inputs, outputDtype, customUniformValues, preventEagerUnpackingOfOutput);
                    return outInfo;
                }
                    ;
                MathBackendWebGL.prototype.getAndSaveBinary = function (key, getBinary) {
                    if (!(key in this.binaryCache)) {
                        this.binaryCache[key] = getBinary();
                    }
                    return this.binaryCache[key];
                }
                    ;
                MathBackendWebGL.prototype.getTextureManager = function () {
                    return this.textureManager;
                }
                    ;
                MathBackendWebGL.prototype.dispose = function () {
                    var _this = this;
                    if (this.disposed) {
                        return;
                    }
                    // Avoid disposing the compiled webgl programs during unit testing because
                    // it slows down test execution.
                    if (!tf.env().getBool('IS_TEST')) {
                        var allKeys = Object.keys(this.binaryCache);
                        allKeys.forEach(function (key) {
                            _this.gpgpu.deleteProgram(_this.binaryCache[key].webGLProgram);
                            delete _this.binaryCache[key];
                        });
                    }
                    this.textureManager.dispose();
                    if (this.canvas != null && (typeof (HTMLCanvasElement) !== 'undefined' && this.canvas instanceof HTMLCanvasElement)) {
                        this.canvas.remove();
                    } else {
                        this.canvas = null;
                    }
                    if (this.gpgpuCreatedLocally) {
                        this.gpgpu.program = null;
                        this.gpgpu.dispose();
                    }
                    this.disposed = true;
                }
                    ;
                MathBackendWebGL.prototype.floatPrecision = function () {
                    var _this = this;
                    if (this.floatPrecisionValue == null) {
                        this.floatPrecisionValue = tf.tidy(function () {
                            if (!tf.env().get('WEBGL_RENDER_FLOAT32_ENABLED')) {
                                // Momentarily switching DEBUG flag to false so we don't throw an
                                // error trying to upload a small value.
                                var debugFlag = tf.env().getBool('DEBUG');
                                tf.env().set('DEBUG', false);
                                var underflowCheckValue = _this.abs(tf.scalar(1e-8)).dataSync()[0];
                                tf.env().set('DEBUG', debugFlag);
                                if (underflowCheckValue > 0) {
                                    return 32;
                                }
                            }
                            return 16;
                        });
                    }
                    return this.floatPrecisionValue;
                }
                    ;
                /** Returns the smallest representable number.  */
                MathBackendWebGL.prototype.epsilon = function () {
                    return this.floatPrecision() === 32 ? EPSILON_FLOAT32 : EPSILON_FLOAT16;
                }
                    ;
                MathBackendWebGL.prototype.uploadToGPU = function (dataId) {
                    var _b;
                    var texData = this.texData.get(dataId);
                    var shape = texData.shape
                        , dtype = texData.dtype
                        , values = texData.values
                        , texture = texData.texture
                        , usage = texData.usage
                        , isPacked = texData.isPacked;
                    if (texture != null) {
                        // Array is already on GPU. No-op.
                        return;
                    }
                    var shouldTimeProgram = this.activeTimers != null;
                    var start;
                    if (shouldTimeProgram) {
                        start = tf.util.now();
                    }
                    var texShape = texData.texShape;
                    if (texShape == null) {
                        // This texShape may not be the final texture shape. For packed or dense
                        // textures, the texShape will be changed when textures are created.
                        texShape = getTextureShapeFromLogicalShape(shape, isPacked);
                        texData.texShape = texShape;
                    }
                    if (values != null) {
                        var shapeAs3D = getShapeAs3D(shape);
                        var program = void 0;
                        var width = texShape[1]
                            , height = texShape[0];
                        var isByteArray = values instanceof Uint8Array || values instanceof Uint8ClampedArray;
                        // texture for float array is PhysicalTextureType.PACKED_2X2_FLOAT32, we
                        // need to make sure the upload uses the same packed size
                        if (isPacked || !isByteArray) {
                            _b = __read(getPackedMatrixTextureShapeWidthHeight(texShape[0], texShape[1]), 2),
                                width = _b[0],
                                height = _b[1];
                        }
                        if (isPacked) {
                            program = new EncodeMatrixPackedProgram(shapeAs3D, isByteArray);
                        } else {
                            program = new EncodeMatrixProgram(shapeAs3D, isByteArray);
                        }
                        // TexShape for float array needs to be the original shape, which byte
                        // array needs to be packed size. This allow the data upload shape to be
                        // matched with texture creation logic.
                        var tempDenseInputTexShape = isByteArray ? [height, width] : texShape;
                        var tempDenseInputHandle = this.makeTensorInfo(tempDenseInputTexShape, dtype);
                        var tempDenseInputTexData = this.texData.get(tempDenseInputHandle.dataId);
                        if (isByteArray) {
                            tempDenseInputTexData.usage = TextureUsage.PIXELS;
                        } else {
                            tempDenseInputTexData.usage = TextureUsage.UPLOAD;
                        }
                        tempDenseInputTexData.texShape = tempDenseInputTexShape;
                        this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(tempDenseInputHandle.dataId), width, height, values);
                        var customValues = [[height, width]];
                        // We want the output to remain packed regardless of the value of
                        // WEBGL_PACK.
                        var preventEagerUnpacking = true;
                        var encodedOutputTarget = this.runWebGLProgram(program, [tempDenseInputHandle], dtype, customValues, preventEagerUnpacking);
                        // Have the original texture assume the identity of the encoded output.
                        var outputTexData = this.texData.get(encodedOutputTarget.dataId);
                        texData.texShape = outputTexData.texShape;
                        texData.isPacked = outputTexData.isPacked;
                        texData.usage = outputTexData.usage;
                        if (!tf.env().get('ENGINE_COMPILE_ONLY')) {
                            texData.texture = outputTexData.texture;
                            // Once uploaded, don't store the values on cpu.
                            texData.values = null;
                            this.texData.delete(encodedOutputTarget.dataId);
                        } else {
                            this.disposeData(encodedOutputTarget.dataId);
                        }
                        this.disposeIntermediateTensorInfo(tempDenseInputHandle);
                        if (shouldTimeProgram) {
                            this.uploadWaitMs += tf.util.now() - start;
                        }
                    } else {
                        var newTexture = this.acquireTexture(texShape, usage, dtype, isPacked);
                        texData.texture = newTexture;
                    }
                }
                    ;
                MathBackendWebGL.prototype.convertAndCacheOnCPU = function (dataId, float32Values) {
                    var texData = this.texData.get(dataId);
                    var dtype = texData.dtype;
                    if (float32Values != null) {
                        texData.values = float32ToTypedArray(float32Values, dtype);
                    }
                    return texData.values;
                }
                    ;
                MathBackendWebGL.prototype.acquireTexture = function (texShape, texType, dtype, isPacked) {
                    this.numBytesInGPU += this.computeBytes(texShape, dtype);
                    if (!this.warnedAboutMemory && this.numBytesInGPU > this.numMBBeforeWarning * 1024 * 1024) {
                        var mb = (this.numBytesInGPU / 1024 / 1024).toFixed(2);
                        this.warnedAboutMemory = true;
                        console.warn("High memory usage in GPU: ".concat(mb, " MB, ") + "most likely due to a memory leak");
                    }
                    return this.textureManager.acquireTexture(texShape, texType, isPacked);
                }
                    ;
                MathBackendWebGL.prototype.computeBytes = function (shape, dtype) {
                    return shape[0] * shape[1] * tf.util.bytesPerElement(dtype);
                }
                    ;
                MathBackendWebGL.prototype.checkCompileCompletion = function () {
                    var e_1, _b;
                    try {
                        for (var _c = __values(Object.entries(this.binaryCache)), _d = _c.next(); !_d.done; _d = _c.next()) {
                            var _e = __read(_d.value, 2)
                                , binary = _e[1];
                            this.checkCompletion_(binary);
                        }
                    } catch (e_1_1) {
                        e_1 = {
                            error: e_1_1
                        };
                    } finally {
                        try {
                            if (_d && !_d.done && (_b = _c.return))
                                _b.call(_c);
                        } finally {
                            if (e_1)
                                throw e_1.error;
                        }
                    }
                }
                    ;
                MathBackendWebGL.prototype.checkCompileCompletionAsync = function () {
                    return __awaiter(this, void 0, void 0, function () {
                        var ps, _b, _c, _d, binary, _loop_1, _e, _f, _g, binary;
                        var e_2, _h, e_3, _j;
                        var _this = this;
                        return __generator(this, function (_k) {
                            ps = [];
                            if (this.gpgpu.parallelCompilationExtension) {
                                try {
                                    for (_b = __values(Object.entries(this.binaryCache)),
                                        _c = _b.next(); !_c.done; _c = _b.next()) {
                                        _d = __read(_c.value, 2),
                                            binary = _d[1];
                                        ps.push(this.checkCompletionAsync_(binary));
                                    }
                                } catch (e_2_1) {
                                    e_2 = {
                                        error: e_2_1
                                    };
                                } finally {
                                    try {
                                        if (_c && !_c.done && (_h = _b.return))
                                            _h.call(_b);
                                    } finally {
                                        if (e_2)
                                            throw e_2.error;
                                    }
                                }
                                return [2 /*return*/
                                    , Promise.all(ps)];
                            } else {
                                _loop_1 = function (binary) {
                                    var p = new Promise(function (resolve) {
                                        try {
                                            _this.checkCompletion_(binary);
                                            resolve(true);
                                        } catch (error) {
                                            throw error;
                                        }
                                    }
                                    );
                                    ps.push(p);
                                }
                                    ;
                                try {
                                    for (_e = __values(Object.entries(this.binaryCache)),
                                        _f = _e.next(); !_f.done; _f = _e.next()) {
                                        _g = __read(_f.value, 2),
                                            binary = _g[1];
                                        _loop_1(binary);
                                    }
                                } catch (e_3_1) {
                                    e_3 = {
                                        error: e_3_1
                                    };
                                } finally {
                                    try {
                                        if (_f && !_f.done && (_j = _e.return))
                                            _j.call(_e);
                                    } finally {
                                        if (e_3)
                                            throw e_3.error;
                                    }
                                }
                                return [2 /*return*/
                                    , Promise.all(ps)];
                            }
                        });
                    });
                }
                    ;
                MathBackendWebGL.prototype.checkCompletionAsync_ = function (binary) {
                    return __awaiter(this, void 0, void 0, function () {
                        return __generator(this, function (_b) {
                            switch (_b.label) {
                                case 0:
                                    if (!this.gpgpu.gl.getProgramParameter(binary.webGLProgram, this.gpgpu.parallelCompilationExtension.COMPLETION_STATUS_KHR))
                                        return [3 /*break*/
                                            , 1];
                                    return [2 /*return*/
                                        , this.checkCompletion_(binary)];
                                case 1:
                                    return [4 /*yield*/
                                        , tf.nextFrame()];
                                case 2:
                                    _b.sent();
                                    return [2 /*return*/
                                        , this.checkCompletionAsync_(binary)];
                            }
                        });
                    });
                }
                    ;
                MathBackendWebGL.prototype.checkCompletion_ = function (binary) {
                    if (this.gpgpu.gl.getProgramParameter(binary.webGLProgram, this.gpgpu.gl.LINK_STATUS) === false) {
                        console.log(this.gpgpu.gl.getProgramInfoLog(binary.webGLProgram));
                        if (this.gpgpu.gl.getShaderParameter(binary.fragmentShader, this.gpgpu.gl.COMPILE_STATUS) === false) {
                            logShaderSourceAndInfoLog(binary.source, this.gpgpu.gl.getShaderInfoLog(binary.fragmentShader));
                            throw new Error('Failed to compile fragment shader.');
                        }
                        throw new Error('Failed to link vertex and fragment shaders.');
                    }
                    return true;
                }
                    ;
                MathBackendWebGL.prototype.getUniformLocations = function () {
                    var e_4, _b;
                    try {
                        for (var _c = __values(Object.entries(this.binaryCache)), _d = _c.next(); !_d.done; _d = _c.next()) {
                            var _e = __read(_d.value, 2)
                                , binary = _e[1];
                            var _f = getUniformLocations(this.gpgpu, binary.program, binary.webGLProgram)
                                , uniformLocations = _f.uniformLocations
                                , customUniformLocations = _f.customUniformLocations
                                , infLoc = _f.infLoc
                                , nanLoc = _f.nanLoc
                                , inShapesLocations = _f.inShapesLocations
                                , inTexShapesLocations = _f.inTexShapesLocations
                                , outShapeLocation = _f.outShapeLocation
                                , outShapeStridesLocation = _f.outShapeStridesLocation
                                , outTexShapeLocation = _f.outTexShapeLocation;
                            binary.uniformLocations = uniformLocations;
                            binary.customUniformLocations = customUniformLocations;
                            binary.infLoc = infLoc;
                            binary.nanLoc = nanLoc;
                            binary.inShapesLocations = inShapesLocations;
                            binary.inTexShapesLocations = inTexShapesLocations;
                            binary.outShapeLocation = outShapeLocation;
                            binary.outShapeStridesLocation = outShapeStridesLocation;
                            binary.outTexShapeLocation = outTexShapeLocation;
                        }
                    } catch (e_4_1) {
                        e_4 = {
                            error: e_4_1
                        };
                    } finally {
                        try {
                            if (_d && !_d.done && (_b = _c.return))
                                _b.call(_c);
                        } finally {
                            if (e_4)
                                throw e_4.error;
                        }
                    }
                }
                    ;
                /**
                 * Create a TF.js tensor out of an existing WebGL texture. A new texture will
                 * be created.
                 */
                MathBackendWebGL.prototype.createTensorFromTexture = function (values, shape, dtype) {
                    var texture = values.texture
                        , height = values.height
                        , width = values.width
                        , channels = values.channels;
                    var backend = tf.engine().backend;
                    // Have to throw an error, otherwise WebGL just warns and returns wrong
                    // values.
                    if (!backend.gpgpu.gl.isTexture(texture)) {
                        throw new Error("The texture is invalid. Also, please make sure the texture and " + "the TFJS WebGL backend are using the same canvas. If you want to " + "use your own custom canvas, you have to create and use the custom " + "TFJS WebGL backend created from the canvas through " + "'new tf.MathBackendWebGL(customCanvas)'.");
                    }
                    var dataId = backend.writeTexture(texture, shape, dtype, height, width, channels);
                    return tf.engine().makeTensorFromDataId(dataId, shape, dtype, backend);
                }
                    ;
                return MathBackendWebGL;
            }(tf.KernelBackend));
        MathBackendWebGL.nextDataId = 0;
        function float32ToTypedArray(a, dtype) {
            if (dtype === 'float32' || dtype === 'complex64') {
                return a;
            } else if (dtype === 'int32' || dtype === 'bool') {
                var result = (dtype === 'int32') ? new Int32Array(a.length) : new Uint8Array(a.length);
                for (var i = 0; i < result.length; ++i) {
                    result[i] = Math.round(a[i]);
                }
                return result;
            } else {
                throw new Error("Unknown dtype ".concat(dtype));
            }
        }

        /** @license See the LICENSE file. */
        // This code is auto-generated, do not modify this file!
        var version = '4.1.0';

        /**
         * @license
         * Copyright 2019 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        /**
         * Enforce use of half precision textures if available on the platform.
         *
         * @doc {heading: 'Environment', namespace: 'webgl'}
         */
        function forceHalfFloat() {
            tf.env().set('WEBGL_FORCE_F16_TEXTURES', true);
        }

        /**
         * @license
         * Copyright 2020 Google Inc. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        if (tf.device_util.isBrowser()) {
            tf.registerBackend('webgl', function () {
                return new MathBackendWebGL();
            }, 2 /* priority */
            );
        }
        var webgl = {
            forceHalfFloat: forceHalfFloat
        };

        /**
         * @license
         * Copyright 2017 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var CHECK_NAN_SNIPPET = "\n  if (isnan(a)) return a;\n  if (isnan(b)) return b;\n";
        var BinaryOpProgram = /** @class */
            (function () {
                function BinaryOpProgram(op, aShape, bShape) {
                    this.variableNames = ['A', 'B'];
                    this.outputShape = tf.backend_util.assertAndGetBroadcastShape(aShape, bShape);
                    this.enableShapeUniforms = useShapeUniforms(this.outputShape.length);
                    this.userCode = "\n      float binaryOperation(float a, float b) {\n        ".concat(op, "\n      }\n\n      void main() {\n        float a = getAAtOutCoords();\n        float b = getBAtOutCoords();\n        setOutput(binaryOperation(a, b));\n      }\n    ");
                }
                return BinaryOpProgram;
            }());

        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var CHECK_NAN_SNIPPET_PACKED = "\n  result.r = isNaN.r ? NAN : result.r;\n  result.g = isNaN.g ? NAN : result.g;\n  result.b = isNaN.b ? NAN : result.b;\n  result.a = isNaN.a ? NAN : result.a;\n";
        var BinaryOpPackedProgram = /** @class */
            (function () {
                function BinaryOpPackedProgram(op, aShape, bShape, checkOutOfBounds) {
                    if (checkOutOfBounds === void 0) {
                        checkOutOfBounds = false;
                    }
                    this.variableNames = ['A', 'B'];
                    this.supportsBroadcasting = true;
                    this.packedInputs = true;
                    this.packedOutput = true;
                    this.outputShape = tf.backend_util.assertAndGetBroadcastShape(aShape, bShape);
                    var rank = this.outputShape.length;
                    this.enableShapeUniforms = useShapeUniforms(rank);
                    var checkOutOfBoundsString = '';
                    if (checkOutOfBounds) {
                        if (rank === 0 || tf.util.sizeFromShape(this.outputShape) === 1) {
                            checkOutOfBoundsString = "\n          result.y = 0.;\n          result.z = 0.;\n          result.w = 0.;\n        ";
                        } else {
                            var dtype = getCoordsDataType(rank);
                            checkOutOfBoundsString = "\n          ".concat(dtype, " coords = getOutputCoords();\n        ");
                            if (rank === 1) {
                                if (this.enableShapeUniforms) {
                                    checkOutOfBoundsString += "\n            result.y = (coords + 1) >= outShape ? 0. : result.y;\n            result.z = 0.;\n            result.w = 0.;\n          ";
                                } else {
                                    checkOutOfBoundsString += "\n            result.y = (coords + 1) >= ".concat(this.outputShape[0], " ? 0. : result.y;\n            result.z = 0.;\n            result.w = 0.;\n          ");
                                }
                            } else {
                                var channels = getChannels('coords', rank);
                                if (this.enableShapeUniforms) {
                                    checkOutOfBoundsString += "\n            bool nextRowOutOfBounds =\n              (".concat(channels[rank - 2], " + 1) >= outShape[").concat(rank, " - 2];\n            bool nextColOutOfBounds =\n              (").concat(channels[rank - 1], " + 1) >= outShape[").concat(rank, " - 1];\n            result.y = nextColOutOfBounds ? 0. : result.y;\n            result.z = nextRowOutOfBounds ? 0. : result.z;\n            result.w = nextColOutOfBounds || nextRowOutOfBounds ? 0. : result.w;\n          ");
                                } else {
                                    checkOutOfBoundsString += "\n            bool nextRowOutOfBounds =\n              (".concat(channels[rank - 2], " + 1) >= ").concat(this.outputShape[rank - 2], ";\n            bool nextColOutOfBounds =\n              (").concat(channels[rank - 1], " + 1) >= ").concat(this.outputShape[rank - 1], ";\n            result.y = nextColOutOfBounds ? 0. : result.y;\n            result.z = nextRowOutOfBounds ? 0. : result.z;\n            result.w = nextColOutOfBounds || nextRowOutOfBounds ? 0. : result.w;\n          ");
                                }
                            }
                        }
                    }
                    this.userCode = "\n      vec4 binaryOperation(vec4 a, vec4 b) {\n        ".concat(op, "\n      }\n\n      void main() {\n        vec4 a = getAAtOutCoords();\n        vec4 b = getBAtOutCoords();\n\n        vec4 result = binaryOperation(a, b);\n        ").concat(checkOutOfBoundsString, "\n\n        setOutput(result);\n      }\n    ");
                }
                return BinaryOpPackedProgram;
            }());

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function identity(args) {
            var inputs = args.inputs
                , backend = args.backend;
            var x = inputs.x;
            backend.incRef(x.dataId);
            return {
                dataId: x.dataId,
                shape: x.shape,
                dtype: x.dtype
            };
        }
        var identityConfig = {
            kernelName: tf.Identity,
            backendName: 'webgl',
            kernelFunc: identity
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        /**
         * In WebGL data is stored in GPU textures which can't be efficiently copied, so
         * complex tensors share data with their real and imaginary components. Complex
         * tensors' reference to the components is tracked by refCount on the individual
         * component. The refCounts are increased by the identity call.
         *
         * When a complex tensor is disposed, it will reduce the refCount on the
         * components by calling disposeData on each.
         */
        function complex(args) {
            var inputs = args.inputs
                , backend = args.backend;
            var real = inputs.real
                , imag = inputs.imag;
            var complexInfo = backend.makeTensorInfo(real.shape, 'complex64');
            var complex = backend.texData.get(complexInfo.dataId);
            var realTensorInfo = identity({
                inputs: {
                    x: real
                },
                backend: backend
            });
            var imagTensorInfo = identity({
                inputs: {
                    x: imag
                },
                backend: backend
            });
            complex.complexTensorInfos = {
                real: realTensorInfo,
                imag: imagTensorInfo
            };
            return complexInfo;
        }
        var complexConfig = {
            kernelName: tf.Complex,
            backendName: 'webgl',
            kernelFunc: complex
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var LEAKYRELU = "return (a < 0.) ? b * a : a;";
        var LEAKYRELU_PACKED = "\n  vec4 aLessThanZero = vec4(lessThan(a, vec4(0.)));\n  return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a);\n";
        function leakyRelu(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x;
            var alpha = attrs.alpha;
            var $alpha = backend.makeTensorInfo([], 'float32', tf.util.createScalarValue(alpha, 'float32'));
            var program = tf.env().getBool('WEBGL_PACK_BINARY_OPERATIONS') ? new BinaryOpPackedProgram(LEAKYRELU_PACKED, x.shape, $alpha.shape) : new BinaryOpProgram(LEAKYRELU, x.shape, $alpha.shape);
            var result = backend.runWebGLProgram(program, [x, $alpha], 'float32');
            backend.disposeIntermediateTensorInfo($alpha);
            return result;
        }
        var leakyReluConfig = {
            kernelName: tf.LeakyRelu,
            backendName: 'webgl',
            kernelFunc: leakyRelu
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var PRELU = "return (a < 0.) ? b * a : a;";
        var PRELU_PACKED = "\n  vec4 aLessThanZero = vec4(lessThan(a, vec4(0.)));\n  return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a);\n";
        function prelu(args) {
            var inputs = args.inputs
                , backend = args.backend;
            var x = inputs.x
                , alpha = inputs.alpha;
            var program = tf.env().getBool('WEBGL_PACK_BINARY_OPERATIONS') ? new BinaryOpPackedProgram(PRELU_PACKED, x.shape, alpha.shape) : new BinaryOpProgram(PRELU, x.shape, alpha.shape);
            return backend.runWebGLProgram(program, [x, alpha], 'float32');
        }
        var preluConfig = {
            kernelName: tf.Prelu,
            backendName: 'webgl',
            kernelFunc: prelu
        };

        var CHECK_NAN_SNIPPET_UNARY = "if (isnan(x)) return x;";
        /**
         * Template that creates a `KernelFunc` for unary ops.
         * @param opSnippet Op snippet to create `UnaryOpProgram`.
         * @param packedOpSnippet Op snippet to create `UnaryOpPackedProgram`.
         * @param dtype Optional. If set, the result has this dtype. Otherwise, the
         *     result has the same dtype as the first input. This is mainly used in
         *     comparison kernels, such as Equal, Less, Greater, etc.
         */
        function unaryKernelFunc(_a) {
            var opSnippet = _a.opSnippet
                , packedOpSnippet = _a.packedOpSnippet
                , cpuKernelImpl = _a.cpuKernelImpl
                , dtype = _a.dtype;
            return function (_a) {
                var inputs = _a.inputs
                    , backend = _a.backend;
                var x = inputs.x;
                var webglBackend = backend;
                var $dtype = dtype || x.dtype;
                if (webglBackend.shouldExecuteOnCPU([x]) && cpuKernelImpl != null) {
                    var xData = webglBackend.texData.get(x.dataId);
                    var outValues = cpuKernelImpl(xData.values, $dtype);
                    return webglBackend.makeTensorInfo(x.shape, $dtype, outValues);
                }
                var shouldUsePackedProgram = tf.env().getBool('WEBGL_PACK_UNARY_OPERATIONS') && packedOpSnippet != null;
                var program;
                if (shouldUsePackedProgram) {
                    program = new UnaryOpPackedProgram(x.shape, packedOpSnippet);
                } else {
                    program = new UnaryOpProgram(x.shape, opSnippet);
                }
                return webglBackend.runWebGLProgram(program, [x], $dtype);
            }
                ;
        }
        /**
         * Template that creates a `KernelFunc` for binary ops.
         * @param opSnippet Op snippet to create `BinaryOpProgram`.
         * @param packedOpSnippet Op snippet to create `BinaryOpPackedProgram`.
         * @param checkOutOfBoundsForPackedProgram Whether to set checkOutOfBounds=true
         *     when creating BinaryOpPackedProgram.
         * @param dtype Optional. If set, the result has this dtype. Otherwise, the
         *     result has the same dtype as the first input. This is mainly used in
         *     comparison kernels, such as Equal, Less, Greater, etc.
         */
        function binaryKernelFunc(_a) {
            var opSnippet = _a.opSnippet
                , packedOpSnippet = _a.packedOpSnippet
                , _b = _a.checkOutOfBounds
                , checkOutOfBounds = _b === void 0 ? false : _b
                , _c = _a.supportsComplex
                , supportsComplex = _c === void 0 ? false : _c
                , cpuKernelImpl = _a.cpuKernelImpl
                , dtype = _a.dtype;
            return function (_a) {
                var inputs = _a.inputs
                    , backend = _a.backend;
                var a = inputs.a
                    , b = inputs.b;
                var webglBackend = backend;
                if (supportsComplex && a.dtype === 'complex64') {
                    var aData = webglBackend.texData.get(a.dataId);
                    var bData = webglBackend.texData.get(b.dataId);
                    var _b = __read([[aData.complexTensorInfos.real, bData.complexTensorInfos.real], [aData.complexTensorInfos.imag, bData.complexTensorInfos.imag]].map(function (complexParts) {
                        var _a = __read(complexParts, 2)
                            , aPart = _a[0]
                            , bPart = _a[1];
                        var aHandle = {
                            dataId: aPart.dataId,
                            dtype: aPart.dtype,
                            shape: a.shape
                        };
                        var bHandle = {
                            dataId: bPart.dataId,
                            dtype: bPart.dtype,
                            shape: b.shape
                        };
                        var program = new BinaryOpProgram(opSnippet, a.shape, b.shape);
                        return webglBackend.runWebGLProgram(program, [aHandle, bHandle], tf.upcastType(aPart.dtype, bPart.dtype));
                    }), 2)
                        , real = _b[0]
                        , imag = _b[1];
                    var complexOutput = complex({
                        inputs: {
                            real: real,
                            imag: imag
                        },
                        backend: webglBackend
                    });
                    webglBackend.disposeIntermediateTensorInfo(real);
                    webglBackend.disposeIntermediateTensorInfo(imag);
                    // TODO(annxingyuan): Implement CPU forwarding for complex inputs.
                    return complexOutput;
                }
                var $dtype = dtype || tf.upcastType(a.dtype, b.dtype);
                if ((a.dtype === 'string' || b.dtype === 'string' || webglBackend.shouldExecuteOnCPU([a, b])) && cpuKernelImpl != null) {
                    var aVals = webglBackend.texData.get(a.dataId).values;
                    var bVals = webglBackend.texData.get(b.dataId).values;
                    var decodedAVals = a.dtype === 'string' ? // tslint:disable-next-line: no-any
                        tf.backend_util.fromUint8ToStringArray(aVals) : aVals;
                    var decodedBVals = a.dtype === 'string' ? // tslint:disable-next-line: no-any
                        tf.backend_util.fromUint8ToStringArray(bVals) : bVals;
                    var _c = __read(cpuKernelImpl(a.shape, b.shape, decodedAVals, decodedBVals, $dtype), 2)
                        , outValues = _c[0]
                        , outShape = _c[1];
                    var out = webglBackend.makeTensorInfo(outShape, $dtype);
                    var outData = webglBackend.texData.get(out.dataId);
                    outData.values = outValues;
                    return out;
                }
                var shouldUsePackedProgram = tf.env().getBool('WEBGL_PACK_BINARY_OPERATIONS') && packedOpSnippet != null;
                var program;
                if (shouldUsePackedProgram) {
                    program = new BinaryOpPackedProgram(packedOpSnippet, a.shape, b.shape, checkOutOfBounds);
                } else {
                    program = new BinaryOpProgram(opSnippet, a.shape, b.shape);
                }
                return webglBackend.runWebGLProgram(program, [a, b], $dtype);
            }
                ;
        }
        function mapActivationToShaderProgram(activation, packed) {
            if (packed === void 0) {
                packed = false;
            }
            if (activation === 'linear') {
                if (packed) {
                    return LINEAR;
                }
                return LINEAR$1;
            } else if (activation === 'relu') {
                if (packed) {
                    return RELU$1;
                }
                return RELU$2;
            } else if (activation === 'elu') {
                if (packed) {
                    return ELU$1;
                }
                return ELU$2;
            } else if (activation === 'relu6') {
                if (packed) {
                    return RELU6$1;
                }
                return RELU6$2;
            } else if (activation === 'prelu') {
                if (packed) {
                    return PRELU_PACKED;
                }
                return PRELU;
            } else if (activation === 'leakyrelu') {
                if (packed) {
                    return LEAKYRELU_PACKED;
                }
                return LEAKYRELU;
            } else if (activation === 'sigmoid') {
                if (packed) {
                    return SIGMOID$1;
                }
                return SIGMOID$2;
            }
            throw new Error("Activation ".concat(activation, " has not been implemented for the WebGL backend."));
        }

        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var MatMulPackedProgram = /** @class */
            (function () {
                function MatMulPackedProgram(aShape, bShape, outputShape, transposeA, transposeB, addBias, activation, hasPreluActivation, hasLeakyreluActivation) {
                    if (transposeA === void 0) {
                        transposeA = false;
                    }
                    if (transposeB === void 0) {
                        transposeB = false;
                    }
                    if (addBias === void 0) {
                        addBias = false;
                    }
                    if (activation === void 0) {
                        activation = null;
                    }
                    if (hasPreluActivation === void 0) {
                        hasPreluActivation = false;
                    }
                    if (hasLeakyreluActivation === void 0) {
                        hasLeakyreluActivation = false;
                    }
                    this.variableNames = ['matrixA', 'matrixB'];
                    this.packedInputs = true;
                    this.packedOutput = true;
                    this.outputShape = outputShape;
                    this.enableShapeUniforms = useShapeUniforms(this.outputShape.length);
                    var sharedDim = transposeA ? aShape[1] : aShape[2];
                    var sharedDimensionPacked = Math.ceil(sharedDim / 2);
                    var aSample = transposeA ? 'i * 2, rc.y' : 'rc.y, i * 2';
                    var bSample = transposeB ? 'rc.z, i * 2' : 'i * 2, rc.z';
                    var aSwizzle = transposeA ? ['a.xxyy', 'a.zzww'] : ['a.xxzz', 'a.yyww'];
                    var bSwizzle = transposeB ? ['b.xzxz', 'b.ywyw'] : ['b.xyxy', 'b.zwzw'];
                    var activationSnippet = ''
                        , applyActivationSnippet = '';
                    if (activation) {
                        if (hasPreluActivation) {
                            activationSnippet = "vec4 activation(vec4 a) {\n          vec4 b = getPreluActivationWeightsAtOutCoords();\n          ".concat(activation, "\n        }");
                        } else if (hasLeakyreluActivation) {
                            activationSnippet = "vec4 activation(vec4 a) {\n          vec4 b = getLeakyreluAlphaAtOutCoords();\n          ".concat(activation, "\n        }");
                        } else {
                            activationSnippet = "vec4 activation(vec4 x) {\n          ".concat(activation, "\n        }");
                        }
                        applyActivationSnippet = "result = activation(result);";
                    }
                    var addBiasSnippet = addBias ? 'result += getBiasAtOutCoords();' : '';
                    if (addBias) {
                        this.variableNames.push('bias');
                    }
                    if (hasPreluActivation) {
                        this.variableNames.push('preluActivationWeights');
                    }
                    if (hasLeakyreluActivation) {
                        this.variableNames.push('leakyreluAlpha');
                    }
                    var batchASnippet = 'rc.x';
                    var batchBSnippet = 'rc.x';
                    if (aShape[0] < bShape[0]) {
                        batchASnippet = "int(min(float(rc.x), ".concat(aShape[0] - 1, ".))");
                    } else if (bShape[0] < aShape[0]) {
                        batchBSnippet = "int(min(float(rc.x), ".concat(bShape[0] - 1, ".))");
                    }
                    this.userCode = "\n      ".concat(activationSnippet, "\n      // Don't use uniform for sharedDimensionPacked for performance.\n      const float sharedDimension = ").concat(sharedDimensionPacked, ".0;\n\n      vec4 dot2x2ARowBCol(ivec3 rc) {\n        vec4 result = vec4(0);\n        for (int i = 0; i < ").concat(sharedDimensionPacked, "; i++) {\n          int batchA = ").concat(batchASnippet, ";\n          int batchB = ").concat(batchBSnippet, ";\n          vec4 a = getMatrixA(batchA, ").concat(aSample, ");\n          vec4 b = getMatrixB(batchB, ").concat(bSample, ");\n\n          // These swizzled products need to be separately added.\n          // See: https://github.com/tensorflow/tfjs/issues/1735\n          result += (").concat(aSwizzle[0], " * ").concat(bSwizzle[0], ");\n          result += (").concat(aSwizzle[1], " * ").concat(bSwizzle[1], ");\n        }\n        return result;\n      }\n\n      void main() {\n        ivec3 rc = getOutputCoords();\n        vec4 result = dot2x2ARowBCol(rc);\n\n        ").concat(addBiasSnippet, "\n\n        ").concat(applyActivationSnippet, "\n\n        setOutput(result);\n      }\n    ");
                }
                return MatMulPackedProgram;
            }());

        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        // (Ar + Ai)(Br + Bi) =
        // ArBr + ArBi + AiBr + AiBi = ArBr - AB + ArBi + AiBr
        // Yr = ArBr - AB
        // Yi = ArBi + AiBr
        var COMPLEX_MULTIPLY = {
            REAL: 'return areal * breal - aimag * bimag;',
            IMAG: 'return areal * bimag + aimag * breal;'
        };
        var BinaryOpComplexProgram = /** @class */
            (function () {
                function BinaryOpComplexProgram(op, aShape, bShape) {
                    this.variableNames = ['AReal', 'AImag', 'BReal', 'BImag'];
                    this.outputShape = tf.backend_util.assertAndGetBroadcastShape(aShape, bShape);
                    this.userCode = "\n      float binaryOpComplex(\n          float areal, float aimag, float breal, float bimag) {\n        ".concat(op, "\n      }\n\n      void main() {\n        float areal = getARealAtOutCoords();\n        float aimag = getAImagAtOutCoords();\n        float breal = getBRealAtOutCoords();\n        float bimag = getBImagAtOutCoords();\n        setOutput(binaryOpComplex(areal, aimag, breal, bimag));\n      }\n    ");
                }
                return BinaryOpComplexProgram;
            }());

        var MUL = 'return a * b;';
        function multiply(args) {
            var inputs = args.inputs
                , backend = args.backend;
            var a = inputs.a
                , b = inputs.b;
            var dtype = tf.backend_util.upcastType(a.dtype, b.dtype);
            if (a.dtype === 'complex64') {
                var aData = backend.texData.get(a.dataId);
                var bData = backend.texData.get(b.dataId);
                var realProgram = new BinaryOpComplexProgram(COMPLEX_MULTIPLY.REAL, a.shape, b.shape);
                var imagProgram = new BinaryOpComplexProgram(COMPLEX_MULTIPLY.IMAG, a.shape, b.shape);
                var inputs_1 = [{
                    dataId: aData.complexTensorInfos.real.dataId,
                    dtype: aData.complexTensorInfos.real.dtype,
                    shape: a.shape
                }, {
                    dataId: aData.complexTensorInfos.imag.dataId,
                    dtype: aData.complexTensorInfos.imag.dtype,
                    shape: a.shape
                }, {
                    dataId: bData.complexTensorInfos.real.dataId,
                    dtype: bData.complexTensorInfos.real.dtype,
                    shape: b.shape
                }, {
                    dataId: bData.complexTensorInfos.imag.dataId,
                    dtype: bData.complexTensorInfos.imag.dtype,
                    shape: b.shape
                }];
                var realPart = backend.runWebGLProgram(realProgram, inputs_1, 'float32');
                var imagPart = backend.runWebGLProgram(imagProgram, inputs_1, 'float32');
                var complexOutput = complex({
                    inputs: {
                        real: realPart,
                        imag: imagPart
                    },
                    backend: backend
                });
                backend.disposeIntermediateTensorInfo(realPart);
                backend.disposeIntermediateTensorInfo(imagPart);
                // TODO(annxingyuan): CPU forwarding for complex inputs.
                return complexOutput;
            }
            if (backend.shouldExecuteOnCPU([a, b])) {
                var aData = backend.texData.get(a.dataId);
                var bData = backend.texData.get(b.dataId);
                var _a = __read(multiplyImplCPU(a.shape, b.shape, aData.values, bData.values, dtype), 2)
                    , outValues = _a[0]
                    , outShape = _a[1];
                var out = backend.makeTensorInfo(outShape, dtype);
                var outData = backend.texData.get(out.dataId);
                outData.values = outValues;
                return out;
            }
            var program;
            if (tf.env().getBool('WEBGL_PACK_BINARY_OPERATIONS')) {
                program = new BinaryOpPackedProgram(MUL, a.shape, b.shape);
            } else {
                program = new BinaryOpProgram(MUL, a.shape, b.shape);
            }
            return backend.runWebGLProgram(program, [a, b], dtype);
        }
        var multiplyConfig = {
            kernelName: tf.Multiply,
            backendName: 'webgl',
            kernelFunc: multiply
        };

        function packedReshape(input, afterShape, backend) {
            var input3DShape = __spreadArray([getBatchDim(input.shape)], __read(getRowsCols(input.shape)), false);
            var input3D = {
                dtype: input.dtype,
                shape: input3DShape,
                dataId: input.dataId
            };
            var afterShapeAs3D = __spreadArray([getBatchDim(afterShape)], __read(getRowsCols(afterShape)), false);
            var program = new ReshapePackedProgram(afterShapeAs3D, input3DShape);
            var preventEagerUnpackingOfOutput = true;
            var customValues = [input3DShape];
            var output = backend.runWebGLProgram(program, [input3D], input.dtype, customValues, preventEagerUnpackingOfOutput);
            return {
                dataId: output.dataId,
                shape: afterShape,
                dtype: output.dtype
            };
        }

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function reshape(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x;
            var shape = attrs.shape;
            var webglBackend = backend;
            var xSize = tf.util.sizeFromShape(x.shape);
            var $shape = tf.util.inferFromImplicitShape(shape, xSize);
            var $xSize = tf.util.sizeFromShape($shape);
            tf.util.assert(xSize === $xSize, function () {
                return "The new shape (".concat($shape, ") has ").concat($xSize, " elements and the old ") + "shape (".concat(x.shape, ") has ").concat(xSize, " elements. The new shape and old ") + "shape must have the same number of elements.";
            });
            var xTexData = webglBackend.texData.get(x.dataId);
            if (xTexData.isPacked && !isReshapeFree(x.shape, $shape) && !(xTexData.texture !== null && isReshapeFree(xTexData.shape, $shape))) {
                return packedReshape(x, $shape, webglBackend);
            }
            webglBackend.incRef(x.dataId);
            return {
                dataId: x.dataId,
                shape: $shape,
                dtype: x.dtype
            };
        }
        var reshapeConfig = {
            kernelName: tf.Reshape,
            backendName: 'webgl',
            kernelFunc: reshape
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var MeanProgram = /** @class */
            (function () {
                function MeanProgram(reduceInfo, divisor) {
                    this.variableNames = ['x'];
                    var windowSize = reduceInfo.windowSize
                        , batchSize = reduceInfo.batchSize
                        , inSize = reduceInfo.inSize
                        , outSize = reduceInfo.outSize;
                    this.outputShape = [batchSize, outSize];
                    var windowSizeNearestVec4 = Math.floor(windowSize / 4) * 4;
                    var windowSizeVec4Remainder = windowSize % 4;
                    var updateSnippet = "sumValue += dot(values, ones);";
                    if (divisor != null) {
                        var denominator = 1 / divisor;
                        updateSnippet = "sumValue += dot(values * ".concat(tf.util.isInt(denominator) ? denominator.toPrecision(2) : denominator, ", ones);");
                    }
                    var checkOutOfBounds = '';
                    if (inSize % windowSize > 0) {
                        checkOutOfBounds = "\n        if (inIdx < 0 || inIdx >= ".concat(inSize, ") {\n          return 0.0;\n        }\n      ");
                    }
                    this.userCode = "\n      const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0);\n\n      float getValue(int batch, int inIdx) {\n        ".concat(checkOutOfBounds, "\n        return getX(batch, inIdx);\n      }\n\n      void main() {\n        ivec2 coords = getOutputCoords();\n        int batch = coords[0];\n        int outIdx = coords[1];\n        int inOffset = outIdx * ").concat(windowSize, ";\n\n        float sumValue = 0.0;\n\n        for (int i = 0; i < ").concat(windowSizeNearestVec4, "; i += 4) {\n          int inIdx = inOffset + i;\n          vec4 values = vec4(\n            getValue(batch, inIdx),\n            getValue(batch, inIdx + 1),\n            getValue(batch, inIdx + 2),\n            getValue(batch, inIdx + 3)\n          );\n\n          ").concat(updateSnippet, "\n        }\n\n        int inIdx = inOffset + ").concat(windowSizeNearestVec4, ";\n        if (").concat(windowSizeVec4Remainder === 1, ") {\n          vec4 values = vec4(getValue(batch, inIdx), 0.0, 0.0, 0.0);\n\n          ").concat(updateSnippet, "\n        } else if (").concat(windowSizeVec4Remainder === 2, ") {\n          vec4 values = vec4(\n            getValue(batch, inIdx),\n            getValue(batch, inIdx + 1), 0.0, 0.0);\n\n          ").concat(updateSnippet, "\n        } else if (").concat(windowSizeVec4Remainder === 3, ") {\n          vec4 values = vec4(\n            getValue(batch, inIdx),\n            getValue(batch, inIdx + 1),\n            getValue(batch, inIdx + 2), 0.0);\n\n          ").concat(updateSnippet, "\n        }\n        setOutput(sumValue);\n      }\n    ");
                }
                return MeanProgram;
            }());

        /**
         * @license
         * Copyright 2017 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var ReduceProgram = /** @class */
            (function () {
                function ReduceProgram(reduceInfo, reduceType) {
                    this.variableNames = ['x'];
                    var windowSize = reduceInfo.windowSize
                        , batchSize = reduceInfo.batchSize
                        , inSize = reduceInfo.inSize
                        , outSize = reduceInfo.outSize;
                    this.outputShape = [batchSize, outSize];
                    var initializationValue = '0.0';
                    var compareOp = "";
                    if (reduceType === 'prod') {
                        initializationValue = '1.0';
                    } else if (reduceType === 'min') {
                        // WebGL on Firefox Linux can't compile 1/0 so we do 1/eps.
                        initializationValue = '1.0 / 1e-20';
                        compareOp = "min";
                    } else if (reduceType === 'max') {
                        // WebGL on Firefox Linux can't compile 1/0 so we do 1/eps.
                        initializationValue = '-1.0 / 1e-20';
                        compareOp = "max";
                    }
                    var returnValue = "".concat(reduceType, "(").concat(reduceType, "(").concat(reduceType, "(") + 'minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])';
                    if (reduceType === 'sum') {
                        returnValue = "sumValue";
                    } else if (reduceType === 'prod') {
                        returnValue = "prodValue";
                    } else if (reduceType === 'all') {
                        returnValue = "allValue";
                    } else if (reduceType === 'any') {
                        returnValue = "anyValue";
                    }
                    var windowSizeNearestVec4 = Math.floor(windowSize / 4) * 4;
                    var windowSizeVec4Remainder = windowSize % 4;
                    var updateSnippet = "\n      if (".concat(reduceType === 'sum', ") {\n        sumValue += dot(values, ones);\n      } else if (").concat(reduceType === 'prod', ") {\n        vec2 tmp = vec2(values[0], values[1]) * vec2(values[2], values[3]);\n        prodValue *= tmp[0] * tmp[1];\n      } else {\n        minMaxValue = ").concat(compareOp, "(values, minMaxValue);\n        if (").concat(reduceType === 'min', " || ").concat(reduceType === 'max', ") {\n          minMaxValue = ").concat(compareOp, "(values, minMaxValue);\n          bvec4 isNaN = isnan(values);\n          if (isNaN.r || isNaN.g || isNaN.b || isNaN.a) {\n            minMaxValue = vec4(NAN);\n          }\n        }\n      }\n    ");
                    var vecType = "vec4";
                    if (reduceType === 'all') {
                        initializationValue = '1.0';
                        updateSnippet = "\n        bool reducedAllValue = all(values);\n        float floatedReducedAllValue = float(reducedAllValue);\n        allValue = float(allValue >= 1.0 && floatedReducedAllValue >= 1.0);\n      ";
                        vecType = "bvec4";
                    } else if (reduceType === 'any') {
                        initializationValue = '0.0';
                        updateSnippet = "\n        bool reducedAnyValue = any(values);\n        float floatedReducedAnyValue = float(reducedAnyValue);\n        anyValue = float(anyValue >= 1.0 || floatedReducedAnyValue >= 1.0);\n      ";
                        vecType = "bvec4";
                    }
                    var checkOutOfBounds = '';
                    if (inSize % windowSize > 0) {
                        checkOutOfBounds = "\n        if (inIdx < 0 || inIdx >= ".concat(inSize, ") {\n          return initializationValue;\n        }\n      ");
                    }
                    this.userCode = "\n      const float initializationValue = ".concat(initializationValue, ";\n      const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0);\n\n      float getValue(int batch, int inIdx) {\n        ").concat(checkOutOfBounds, "\n        return getX(batch, inIdx);\n      }\n\n      void main() {\n        ivec2 coords = getOutputCoords();\n        int batch = coords[0];\n        int outIdx = coords[1];\n        int inOffset = outIdx * ").concat(windowSize, ";\n\n        vec4 minMaxValue = vec4(").concat(initializationValue, ");\n        float prodValue = 1.0;\n        float sumValue = 0.0;\n        float allValue = 1.0;\n        float anyValue = 0.0;\n\n        for (int i = 0; i < ").concat(windowSizeNearestVec4, "; i += 4) {\n          int inIdx = inOffset + i;\n          ").concat(vecType, " values = ").concat(vecType, "(\n            getValue(batch, inIdx),\n            getValue(batch, inIdx + 1),\n            getValue(batch, inIdx + 2),\n            getValue(batch, inIdx + 3)\n          );\n\n          ").concat(updateSnippet, "\n        }\n\n        int inIdx = inOffset + ").concat(windowSizeNearestVec4, ";\n        if (").concat(windowSizeVec4Remainder === 1, ") {\n          ").concat(vecType, " values = ").concat(vecType, "(\n            getValue(batch, inIdx),\n            initializationValue,\n            initializationValue,\n            initializationValue\n          );\n\n          ").concat(updateSnippet, "\n        } else if (").concat(windowSizeVec4Remainder === 2, ") {\n          ").concat(vecType, " values = ").concat(vecType, "(\n            getValue(batch, inIdx),\n            getValue(batch, inIdx + 1),\n            initializationValue,\n            initializationValue\n          );\n\n          ").concat(updateSnippet, "\n        } else if (").concat(windowSizeVec4Remainder === 3, ") {\n          ").concat(vecType, " values = ").concat(vecType, "(\n            getValue(batch, inIdx),\n            getValue(batch, inIdx + 1),\n            getValue(batch, inIdx + 2),\n            initializationValue\n          );\n\n          ").concat(updateSnippet, "\n        }\n        setOutput(").concat(returnValue, ");\n      }\n    ");
                }
                return ReduceProgram;
            }());

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        // Returns an array of configuration objects that describe each stage of the
        // reduction.
        function getReductionStages(inShape) {
            var stages = [];
            while (stages.length === 0 || stages[stages.length - 1].outSize !== 1) {
                var outSize = stages.length ? stages[stages.length - 1].outSize : inShape[1];
                var windowSize = tf.backend_util.computeOptimalWindowSize(outSize);
                stages.push({
                    inSize: outSize,
                    windowSize: windowSize,
                    outSize: Math.ceil(outSize / windowSize)
                });
            }
            return stages;
        }
        function reduce(x, dtype, reductionType, backend) {
            var reductionStages = getReductionStages(x.shape);
            var result = x;
            for (var i = 0; i < reductionStages.length; i++) {
                var _a = reductionStages[i]
                    , inSize = _a.inSize
                    , windowSize = _a.windowSize
                    , outSize = _a.outSize;
                var program = void 0;
                var previousResult = void 0;
                if (reductionType === 'mean') {
                    program = i === 0 ? new MeanProgram({
                        windowSize: windowSize,
                        inSize: inSize,
                        batchSize: x.shape[0],
                        outSize: outSize
                    }, inSize) : new MeanProgram({
                        windowSize: windowSize,
                        inSize: inSize,
                        batchSize: x.shape[0],
                        outSize: outSize
                    });
                } else {
                    program = new ReduceProgram({
                        windowSize: windowSize,
                        inSize: inSize,
                        batchSize: x.shape[0],
                        outSize: outSize
                    }, reductionType);
                }
                previousResult = result;
                result = backend.runWebGLProgram(program, [result], dtype);
                if (previousResult.dataId !== x.dataId) {
                    backend.disposeIntermediateTensorInfo(previousResult);
                }
            }
            return result;
        }

        /**
         * @license
         * Copyright 2017 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var TransposeProgram = /** @class */
            (function () {
                function TransposeProgram(aShape, newDim) {
                    this.variableNames = ['A'];
                    var outputShape = new Array(aShape.length);
                    for (var i = 0; i < outputShape.length; i++) {
                        outputShape[i] = aShape[newDim[i]];
                    }
                    this.outputShape = outputShape;
                    this.rank = outputShape.length;
                    var dtype = getCoordsDataType(this.rank);
                    var switched = getSwitchedCoords(newDim);
                    this.userCode = "\n    void main() {\n      ".concat(dtype, " resRC = getOutputCoords();\n      setOutput(getA(").concat(switched, "));\n    }\n    ");
                }
                return TransposeProgram;
            }());
        function getSwitchedCoords(newDim) {
            var rank = newDim.length;
            if (rank > 6) {
                throw Error("Transpose for rank ".concat(rank, " is not yet supported"));
            }
            var originalOrder = ['resRC.x', 'resRC.y', 'resRC.z', 'resRC.w', 'resRC.u', 'resRC.v'];
            var switchedCoords = new Array(rank);
            for (var i = 0; i < newDim.length; i++) {
                switchedCoords[newDim[i]] = originalOrder[i];
            }
            return switchedCoords.join();
        }

        /**
         * @license
         * Copyright 2019 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var TransposePackedProgram = /** @class */
            (function () {
                function TransposePackedProgram(aShape, newDim) {
                    this.variableNames = ['A'];
                    this.packedInputs = true;
                    this.packedOutput = true;
                    var outputShape = new Array(aShape.length);
                    for (var i = 0; i < outputShape.length; i++) {
                        outputShape[i] = aShape[newDim[i]];
                    }
                    this.outputShape = outputShape;
                    this.rank = outputShape.length;
                    if (this.rank > 6) {
                        throw Error("Packed transpose for rank ".concat(this.rank, " is not yet supported."));
                    }
                    var dtype = getCoordsDataType(this.rank);
                    var outputOrder = getVecChannels('rc', this.rank);
                    var switchedOrder = new Array(this.rank);
                    for (var i = 0; i < newDim.length; i++) {
                        switchedOrder[newDim[i]] = outputOrder[i];
                    }
                    var innerDims = "vec2(".concat(switchedOrder.slice(-2).join(), ")");
                    var nextColumn = "++".concat(outputOrder[this.rank - 1], " < ").concat(outputShape[this.rank - 1]);
                    var getc = "getChannel(getA(".concat(switchedOrder.join(), "), ").concat(innerDims, ")");
                    this.userCode = "\n    void main() {\n      ".concat(dtype, " rc = getOutputCoords();\n      vec4 result = vec4(0.);\n      result[0] = ").concat(getc, ";\n      if(").concat(nextColumn, ") {\n        result[1] = ").concat(getc, ";\n      }\n      --").concat(outputOrder[this.rank - 1], ";\n      if(++").concat(outputOrder[this.rank - 2], " < ").concat(outputShape[this.rank - 2], ") {\n        result[2] = ").concat(getc, ";\n        if(").concat(nextColumn, ") {\n          result[3] = ").concat(getc, ";\n        }\n      }\n      setOutput(result);\n    }\n    ");
                }
                return TransposePackedProgram;
            }());

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function transposeImpl(x, perm, backend) {
            var program = tf.env().getBool('WEBGL_PACK_ARRAY_OPERATIONS') ? new TransposePackedProgram(x.shape, perm) : new TransposeProgram(x.shape, perm);
            return backend.runWebGLProgram(program, [x], x.dtype);
        }

        function sumImpl(x, axis, keepDims, backend) {
            var reductionIndices = axis;
            var xRank = x.shape.length;
            var origAxes = tf.util.parseAxisParam(reductionIndices, x.shape);
            var axes = origAxes;
            var permutedAxes = tf.backend_util.getAxesPermutation(axes, xRank);
            var sumInputIsTransposed = permutedAxes != null;
            var sumInput = x;
            if (sumInputIsTransposed) {
                sumInput = transposeImpl(x, permutedAxes, backend);
                axes = tf.backend_util.getInnerMostAxes(axes.length, xRank);
            }
            tf.backend_util.assertAxesAreInnerMostDims('sum', axes, xRank);
            var _a = __read(tf.backend_util.computeOutAndReduceShapes(sumInput.shape, axes), 2)
                , sumOutShape = _a[0]
                , reduceShape = _a[1];
            var outShape = sumOutShape;
            if (keepDims) {
                // rather than reshape at the end, set the target shape here.
                outShape = tf.backend_util.expandShapeToKeepDim(sumOutShape, origAxes);
            }
            var inSize = tf.util.sizeFromShape(reduceShape);
            var xSize = tf.util.sizeFromShape(x.shape);
            var batchSize = xSize / inSize;
            var reshapedInput = reshape({
                inputs: {
                    x: sumInput
                },
                attrs: {
                    shape: [batchSize, inSize]
                },
                backend: backend
            });
            var outType = tf.sumOutType(x.dtype);
            var reduced = reduce(reshapedInput, outType, 'sum', backend);
            var out = reshape({
                inputs: {
                    x: reduced
                },
                attrs: {
                    shape: outShape
                },
                backend: backend
            });
            backend.disposeIntermediateTensorInfo(reshapedInput);
            backend.disposeIntermediateTensorInfo(reduced);
            if (sumInputIsTransposed) {
                backend.disposeIntermediateTensorInfo(sumInput);
            }
            return out;
        }

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function sum(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x;
            var axis = attrs.axis
                , keepDims = attrs.keepDims;
            return sumImpl(x, axis, keepDims, backend);
        }
        var sumConfig = {
            kernelName: tf.Sum,
            backendName: 'webgl',
            kernelFunc: sum
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function transpose(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x;
            var perm = attrs.perm;
            var webglBackend = backend;
            var xRank = x.shape.length;
            var newShape = new Array(xRank);
            for (var i = 0; i < newShape.length; i++) {
                newShape[i] = x.shape[perm[i]];
            }
            var out;
            if (webglBackend.shouldExecuteOnCPU([x])) {
                var xTexData = webglBackend.texData.get(x.dataId);
                var values = xTexData.values;
                var outValues = transposeImplCPU(values, x.shape, x.dtype, perm, newShape);
                out = webglBackend.makeTensorInfo(newShape, x.dtype);
                var outData = webglBackend.texData.get(out.dataId);
                outData.values = outValues;
            } else {
                out = transposeImpl(x, perm, webglBackend);
            }
            return out;
        }
        var transposeConfig = {
            kernelName: tf.Transpose,
            backendName: 'webgl',
            kernelFunc: transpose
        };

        // Empirically determined minimal shared dimension in matmul before we forward
        // to a.mul(b).sum() in order to take advantage of GPU parallelism. See
        // https://github.com/tensorflow/tfjs-core/pull/1379 for benchmarks.
        var MATMUL_SHARED_DIM_THRESHOLD = 1000;
        function batchMatMulImpl(_a) {
            var e_1, _b;
            var a = _a.a
                , b = _a.b
                , transposeA = _a.transposeA
                , transposeB = _a.transposeB
                , backend = _a.backend
                , _c = _a.bias
                , bias = _c === void 0 ? null : _c
                , _d = _a.preluActivationWeights
                , preluActivationWeights = _d === void 0 ? null : _d
                , _e = _a.leakyreluAlpha
                , leakyreluAlpha = _e === void 0 ? 0 : _e
                , _f = _a.activation
                , activation = _f === void 0 ? null : _f;
            var aRank = a.shape.length;
            var bRank = b.shape.length;
            var innerShapeA = transposeA ? a.shape[aRank - 2] : a.shape[aRank - 1];
            var innerShapeB = transposeB ? b.shape[bRank - 1] : b.shape[bRank - 2];
            var outerShapeA = transposeA ? a.shape[aRank - 1] : a.shape[aRank - 2];
            var outerShapeB = transposeB ? b.shape[bRank - 2] : b.shape[bRank - 1];
            var outerDimsA = a.shape.slice(0, -2);
            var outerDimsB = b.shape.slice(0, -2);
            var batchDimA = tf.util.sizeFromShape(outerDimsA);
            var batchDimB = tf.util.sizeFromShape(outerDimsB);
            var outShapeOuterDims = tf.broadcast_util.assertAndGetBroadcastShape(a.shape.slice(0, -2), b.shape.slice(0, -2));
            var outShape = outShapeOuterDims.concat([outerShapeA, outerShapeB]);
            tf.util.assert(innerShapeA === innerShapeB, function () {
                return "Error in matMul: inner shapes (".concat(innerShapeA, ") and (") + "".concat(innerShapeB, ") of Tensors with shapes ").concat(a.shape, " and ") + "".concat(b.shape, " and transposeA=").concat(transposeA) + " and transposeB=".concat(transposeB, " must match.");
            });
            var a3dShape = transposeA ? [batchDimA, innerShapeA, outerShapeA] : [batchDimA, outerShapeA, innerShapeA];
            var b3dShape = transposeB ? [batchDimB, outerShapeB, innerShapeB] : [batchDimB, innerShapeB, outerShapeB];
            // The rest of the implementation is designed to operate on rank-3 tensors
            var a3d = reshape({
                inputs: {
                    x: a
                },
                backend: backend,
                attrs: {
                    shape: a3dShape
                }
            });
            var b3d = reshape({
                inputs: {
                    x: b
                },
                backend: backend,
                attrs: {
                    shape: b3dShape
                }
            });
            var intermediates = [a3d, b3d];
            var batchDim = Math.max(batchDimA, batchDimB);
            var sharedDim = transposeA ? a3d.shape[1] : a3d.shape[2];
            var hasBias = bias != null;
            var hasPreluActivationWeights = preluActivationWeights != null;
            var hasLeakyreluAlpha = activation === 'leakyrelu';
            var fusedActivation = activation != null ? mapActivationToShaderProgram(activation, true) : null;
            var containsFusedOps = hasBias || hasPreluActivationWeights || hasLeakyreluAlpha || fusedActivation != null;
            var out;
            // Since the matrices are vectors, it is faster to call mul().sum()
            // because sum() is O(sqrt(N)) due to divide-and-conquer.
            if ((outerShapeA === 1 || outerShapeB === 1) && sharedDim > MATMUL_SHARED_DIM_THRESHOLD && containsFusedOps === false) {
                var aVec = a3d;
                var bVec = b3d;
                if (transposeA) {
                    aVec = transpose({
                        inputs: {
                            x: a3d
                        },
                        backend: backend,
                        attrs: {
                            perm: [0, 2, 1]
                        }
                    });
                    intermediates.push(aVec);
                }
                if (transposeB) {
                    bVec = transpose({
                        inputs: {
                            x: b3d
                        },
                        backend: backend,
                        attrs: {
                            perm: [0, 2, 1]
                        }
                    });
                    intermediates.push(bVec);
                }
                var shouldReshapeA = outerShapeB !== 1;
                var shouldReshapeB = outerShapeB === 1;
                var aVec3d = aVec;
                if (shouldReshapeA) {
                    aVec3d = reshape({
                        inputs: {
                            x: aVec
                        },
                        backend: backend,
                        attrs: {
                            shape: [batchDim, sharedDim, 1]
                        }
                    });
                    intermediates.push(aVec3d);
                }
                var axis = outerShapeB === 1 ? 2 : 1;
                var bVec3d = bVec;
                if (shouldReshapeB) {
                    bVec3d = reshape({
                        inputs: {
                            x: bVec
                        },
                        backend: backend,
                        attrs: {
                            shape: [batchDim, 1, sharedDim]
                        }
                    });
                    intermediates.push(bVec3d);
                }
                var product = multiply({
                    inputs: {
                        a: aVec3d,
                        b: bVec3d
                    },
                    backend: backend
                });
                out = sum({
                    inputs: {
                        x: product
                    },
                    backend: backend,
                    attrs: {
                        axis: axis,
                        keepDims: true
                    }
                });
                intermediates.push(product);
            } else {
                var dtype = tf.upcastType(a.dtype, b.dtype);
                var program = new MatMulPackedProgram(a3dShape, b3dShape, [batchDim, outerShapeA, outerShapeB], transposeA, transposeB, hasBias, fusedActivation, hasPreluActivationWeights, hasLeakyreluAlpha);
                var inputs = [a3d, b3d];
                if (bias != null) {
                    inputs.push(bias);
                }
                if (hasPreluActivationWeights) {
                    inputs.push(preluActivationWeights);
                }
                if (hasLeakyreluAlpha) {
                    var $leakyreluAlpha = backend.makeTensorInfo([], 'float32', tf.util.createScalarValue(leakyreluAlpha, 'float32'));
                    inputs.push($leakyreluAlpha);
                    intermediates.push($leakyreluAlpha);
                }
                out = backend.runWebGLProgram(program, inputs, dtype);
            }
            var outReshaped = reshape({
                inputs: {
                    x: out
                },
                backend: backend,
                attrs: {
                    shape: outShape
                }
            });
            intermediates.push(out);
            try {
                for (var intermediates_1 = __values(intermediates), intermediates_1_1 = intermediates_1.next(); !intermediates_1_1.done; intermediates_1_1 = intermediates_1.next()) {
                    var i = intermediates_1_1.value;
                    backend.disposeIntermediateTensorInfo(i);
                }
            } catch (e_1_1) {
                e_1 = {
                    error: e_1_1
                };
            } finally {
                try {
                    if (intermediates_1_1 && !intermediates_1_1.done && (_b = intermediates_1.return))
                        _b.call(intermediates_1);
                } finally {
                    if (e_1)
                        throw e_1.error;
                }
            }
            return outReshaped;
        }

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the License);
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an AS IS BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function _fusedMatMul(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var a = inputs.a
                , b = inputs.b
                , bias = inputs.bias
                , preluActivationWeights = inputs.preluActivationWeights;
            var transposeA = attrs.transposeA
                , transposeB = attrs.transposeB
                , activation = attrs.activation
                , leakyreluAlpha = attrs.leakyreluAlpha;
            return batchMatMulImpl({
                a: a,
                b: b,
                transposeA: transposeA,
                transposeB: transposeB,
                backend: backend,
                bias: bias,
                preluActivationWeights: preluActivationWeights,
                leakyreluAlpha: leakyreluAlpha,
                activation: activation
            });
        }
        var _fusedMatMulConfig = {
            kernelName: tf._FusedMatMul,
            backendName: 'webgl',
            kernelFunc: _fusedMatMul,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var ABS = "return abs(x);";
        function abs(args) {
            var inputs = args.inputs
                , backend = args.backend;
            var x = inputs.x;
            // TODO: handle cases when x is complex. Once the cpu implementation
            // can handle complex values, refactor to use unaryKernelFunc.
            if (backend.shouldExecuteOnCPU([x]) && x.dtype !== 'complex64') {
                var xData = backend.texData.get(x.dataId);
                var outValues = simpleAbsImplCPU(xData.values);
                return backend.makeTensorInfo(x.shape, x.dtype, outValues);
            }
            var program;
            if (tf.env().getBool('WEBGL_PACK_UNARY_OPERATIONS')) {
                program = new UnaryOpPackedProgram(x.shape, ABS);
            } else {
                program = new UnaryOpProgram(x.shape, ABS);
            }
            return backend.runWebGLProgram(program, [x], x.dtype);
        }
        var absConfig = {
            kernelName: tf.Abs,
            backendName: 'webgl',
            kernelFunc: abs
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var ACOS = CHECK_NAN_SNIPPET$1 + "\n  if (abs(x) > 1.) {\n    return NAN;\n  }\n  return acos(x);\n";
        var acos = unaryKernelFunc({
            opSnippet: ACOS
        });
        var acosConfig = {
            kernelName: tf.Acos,
            backendName: 'webgl',
            kernelFunc: acos,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var ACOSH = CHECK_NAN_SNIPPET$1 + "\n  if (x < 1.0) return NAN;\nreturn log(x + sqrt(x * x - 1.0));";
        var acosh = unaryKernelFunc({
            opSnippet: ACOSH
        });
        var acoshConfig = {
            kernelName: tf.Acosh,
            backendName: 'webgl',
            kernelFunc: acosh,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var ADD = 'return a + b;';
        var addKernelFunc = binaryKernelFunc({
            opSnippet: ADD,
            packedOpSnippet: ADD,
            supportsComplex: true,
            cpuKernelImpl: addImplCPU
        });
        var addConfig = {
            kernelName: tf.Add,
            backendName: 'webgl',
            kernelFunc: addKernelFunc
        };

        /**
         * @license
         * Copyright 2019 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var AddNProgram = /** @class */
            (function () {
                function AddNProgram(outputShape, shapes) {
                    this.outputShape = [];
                    this.outputShape = outputShape;
                    this.variableNames = shapes.map(function (_, i) {
                        return "T".concat(i);
                    });
                    var snippets = [];
                    // Get target elements from every input tensor.
                    this.variableNames.forEach(function (variable) {
                        snippets.push("float v".concat(variable, " = get").concat(variable, "AtOutCoords();"));
                    });
                    // Calculate the sum of all elements.
                    var operation = this.variableNames.map(function (variable) {
                        return "v".concat(variable);
                    }).join(' + ');
                    this.userCode = "\n      void main() {\n        ".concat(snippets.join('\n        '), "\n\n        float result = ").concat(operation, ";\n        setOutput(result);\n      }\n    ");
                }
                return AddNProgram;
            }());

        /**
         * @license
         * Copyright 2019 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var AddNPackedProgram = /** @class */
            (function () {
                function AddNPackedProgram(outputShape, shapes) {
                    this.outputShape = [];
                    this.packedInputs = true;
                    this.packedOutput = true;
                    this.outputShape = outputShape;
                    this.variableNames = shapes.map(function (_, i) {
                        return "T".concat(i);
                    });
                    var snippets = [];
                    // Get target elements from every input tensor.
                    this.variableNames.forEach(function (variable) {
                        snippets.push("vec4 v".concat(variable, " = get").concat(variable, "AtOutCoords();"));
                    });
                    // Calculate the sum of all elements.
                    var operation = this.variableNames.map(function (variable) {
                        return "v".concat(variable);
                    }).join(' + ');
                    this.userCode = "\n      void main() {\n        ".concat(snippets.join('\n        '), "\n\n        vec4 result = ").concat(operation, ";\n        setOutput(result);\n      }\n    ");
                }
                return AddNPackedProgram;
            }());

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function addN(args) {
            var inputs = args.inputs
                , backend = args.backend;
            var tensors = inputs;
            if (tensors.length === 1) {
                return identity({
                    inputs: {
                        x: tensors[0]
                    },
                    backend: backend
                });
            }
            // Limit the number of uploaded textures for optimization.
            if (tensors.length > tf.env().get('WEBGL_MAX_TEXTURES_IN_SHADER')) {
                var midIndex = Math.floor(tensors.length / 2);
                var leftSide = addN({
                    inputs: tensors.slice(0, midIndex),
                    backend: backend
                });
                var rightSide = addN({
                    inputs: tensors.slice(midIndex),
                    backend: backend
                });
                return addN({
                    inputs: [leftSide, rightSide],
                    backend: backend
                });
            }
            var dtype = tensors.map(function (t) {
                return t.dtype;
            }).reduce(function (d1, d2) {
                return tf.upcastType(d1, d2);
            });
            var shapes = tensors.map(function (t) {
                return t.shape;
            });
            // We can make sure shapes are identical in op level.
            var usePackedOp = tf.env().getBool('WEBGL_PACK');
            var program = usePackedOp ? new AddNPackedProgram(tensors[0].shape, shapes) : new AddNProgram(tensors[0].shape, shapes);
            return backend.runWebGLProgram(program, tensors, dtype);
        }
        var addNConfig = {
            kernelName: tf.AddN,
            backendName: 'webgl',
            kernelFunc: addN
        };

        function all(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x;
            var axis = attrs.axis
                , keepDims = attrs.keepDims;
            var xRank = x.shape.length;
            var origAxes = tf.util.parseAxisParam(axis, x.shape);
            var axes = origAxes;
            var permutedAxes = tf.backend_util.getAxesPermutation(axes, xRank);
            var permutedX = x;
            if (permutedAxes != null) {
                permutedX = transpose({
                    inputs: {
                        x: x
                    },
                    backend: backend,
                    attrs: {
                        perm: permutedAxes
                    }
                });
                axes = tf.backend_util.getInnerMostAxes(axes.length, xRank);
            }
            tf.backend_util.assertAxesAreInnerMostDims('all', axes, xRank);
            var _a = __read(tf.backend_util.computeOutAndReduceShapes(permutedX.shape, axes), 2)
                , outShape = _a[0]
                , reduceShape = _a[1];
            var inSize = tf.util.sizeFromShape(reduceShape);
            var a2D = reshape({
                inputs: {
                    x: permutedX
                },
                backend: backend,
                attrs: {
                    shape: [-1, inSize]
                }
            });
            var reduced = reduce(a2D, a2D.dtype, 'all', backend);
            var res;
            if (keepDims) {
                var newShape = tf.backend_util.expandShapeToKeepDim(outShape, origAxes);
                res = reshape({
                    inputs: {
                        x: reduced
                    },
                    backend: backend,
                    attrs: {
                        shape: newShape
                    }
                });
            } else {
                res = reshape({
                    inputs: {
                        x: reduced
                    },
                    backend: backend,
                    attrs: {
                        shape: outShape
                    }
                });
            }
            backend.disposeIntermediateTensorInfo(a2D);
            backend.disposeIntermediateTensorInfo(reduced);
            if (permutedAxes != null) {
                backend.disposeIntermediateTensorInfo(permutedX);
            }
            return res;
        }
        var allConfig = {
            kernelName: tf.All,
            backendName: 'webgl',
            kernelFunc: all
        };

        function any(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x;
            var axis = attrs.axis
                , keepDims = attrs.keepDims;
            var xRank = x.shape.length;
            var origAxes = tf.util.parseAxisParam(axis, x.shape);
            var axes = origAxes;
            var permutedAxes = tf.backend_util.getAxesPermutation(axes, xRank);
            var permutedX = x;
            if (permutedAxes != null) {
                permutedX = transpose({
                    inputs: {
                        x: x
                    },
                    backend: backend,
                    attrs: {
                        perm: permutedAxes
                    }
                });
                axes = tf.backend_util.getInnerMostAxes(axes.length, xRank);
            }
            tf.backend_util.assertAxesAreInnerMostDims('any', axes, xRank);
            var _a = __read(tf.backend_util.computeOutAndReduceShapes(permutedX.shape, axes), 2)
                , outShape = _a[0]
                , reduceShape = _a[1];
            var inSize = tf.util.sizeFromShape(reduceShape);
            var a2D = reshape({
                inputs: {
                    x: permutedX
                },
                backend: backend,
                attrs: {
                    shape: [-1, inSize]
                }
            });
            var reduced = reduce(a2D, a2D.dtype, 'any', backend);
            var res;
            if (keepDims) {
                var newShape = tf.backend_util.expandShapeToKeepDim(outShape, origAxes);
                res = reshape({
                    inputs: {
                        x: reduced
                    },
                    backend: backend,
                    attrs: {
                        shape: newShape
                    }
                });
            } else {
                res = reshape({
                    inputs: {
                        x: reduced
                    },
                    backend: backend,
                    attrs: {
                        shape: outShape
                    }
                });
            }
            backend.disposeIntermediateTensorInfo(a2D);
            backend.disposeIntermediateTensorInfo(reduced);
            if (permutedAxes != null) {
                backend.disposeIntermediateTensorInfo(permutedX);
            }
            return res;
        }
        var anyConfig = {
            kernelName: tf.Any,
            backendName: 'webgl',
            kernelFunc: any
        };

        /**
         * @license
         * Copyright 2017 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var ArgMinMaxProgram = /** @class */
            (function () {
                function ArgMinMaxProgram(reduceInfo, op, firstPass) {
                    this.variableNames = ['A'];
                    var windowSize = reduceInfo.windowSize
                        , batchSize = reduceInfo.batchSize
                        , outSize = reduceInfo.outSize;
                    if (!firstPass) {
                        this.variableNames.push('bestIndicesA');
                    }
                    this.outputShape = [batchSize, outSize];
                    var compOp = (op === 'max') ? '>' : '<';
                    var indexSnippet = firstPass ? 'inOffset + i;' : 'round(getBestIndicesA(batch, inOffset + i));';
                    this.userCode = "\n      void main() {\n        ivec2 coords = getOutputCoords();\n        int batch = coords[0];\n        int outIdx = coords[1];\n        int inOffset = outIdx * ".concat(windowSize, ";\n\n        int bestIndex = inOffset;\n        float bestValue = getA(batch, bestIndex);\n\n        for (int i = 0; i < ").concat(windowSize, "; i++) {\n          int inIdx = ").concat(indexSnippet, ";\n          float candidate = getA(batch, inIdx);\n          if (candidate ").concat(compOp, " bestValue) {\n            bestValue = candidate;\n            bestIndex = inIdx;\n          }\n        }\n        setOutput(float(bestIndex));\n      }\n    ");
                }
                return ArgMinMaxProgram;
            }());

        /**
         * @license
         * Copyright 2019 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var ArgMinMaxPackedProgram = /** @class */
            (function () {
                function ArgMinMaxPackedProgram(shape, windowSize, op, firstPass) {
                    this.variableNames = ['A'];
                    this.packedInputs = true;
                    this.packedOutput = true;
                    tf.util.assert(shape.length > 2, function () {
                        return "Packed arg".concat(op.charAt(0).toUpperCase() + op.slice(1), " supports only inputs with rank above 2.");
                    });
                    var inSize = shape[shape.length - 1];
                    var outSize = Math.ceil(inSize / windowSize);
                    this.outputShape = shape.slice(0, -1);
                    if (outSize > 1) {
                        this.outputShape.push(outSize);
                    }
                    if (!firstPass) {
                        this.variableNames.push('bestIndicesA');
                    }
                    var outShape = this.outputShape;
                    var rank = outShape.length;
                    var dtype = getCoordsDataType(rank);
                    var coords = getChannels('coords', rank);
                    var sourceLocSetup;
                    var sourceRank;
                    if (outSize === 1) {
                        sourceRank = rank + 1;
                        var sourceLocDType = getCoordsDataType(sourceRank);
                        sourceLocSetup = "\n        ".concat(sourceLocDType, " sourceLocR = ").concat(sourceLocDType, "(").concat(coords.join(), ", 0);\n        ++").concat(coords[rank - 1], ";\n        ").concat(sourceLocDType, " sourceLocG = ").concat(sourceLocDType, "(").concat(coords.join(), ", 0);\n        ++").concat(coords[rank - 2], ";\n        ").concat(sourceLocDType, " sourceLocA = ").concat(sourceLocDType, "(").concat(coords.join(), ", 0);\n        --").concat(coords[rank - 1], ";\n        ").concat(sourceLocDType, " sourceLocB = ").concat(sourceLocDType, "(").concat(coords.join(), ", 0);\n        --").concat(coords[rank - 2], ";");
                    } else {
                        sourceRank = rank;
                        sourceLocSetup = "\n        ".concat(dtype, " sourceLocR = coords;\n        ++").concat(coords[rank - 1], ";\n        ").concat(dtype, " sourceLocG = coords;\n        ++").concat(coords[rank - 2], ";\n        ").concat(dtype, " sourceLocA = coords;\n        --").concat(coords[rank - 1], ";\n        ").concat(dtype, " sourceLocB = coords;\n        --").concat(coords[rank - 2], ";");
                    }
                    var channels = ['x', 'y', 'z', 'w', 'u', 'v'].slice(0, sourceRank);
                    var inChannel = '.' + channels[sourceRank - 1];
                    // e.g. ".b" for rank 3.
                    var intChannels = channels.map(function (x) {
                        return 'int ' + x;
                    });
                    var srcRCoords = getChannels('sourceLocR', sourceRank - 1).concat('inIdx.r');
                    var srcGCoords = getChannels('sourceLocG', sourceRank - 1).concat('inIdx.g');
                    var srcBCoords = getChannels('sourceLocB', sourceRank - 1).concat('inIdx.b');
                    var srcACoords = getChannels('sourceLocA', sourceRank - 1).concat('inIdx.a');
                    var compOp = (op === 'max') ? 'greaterThan' : 'lessThan';
                    var fetchCandidateIdx = firstPass ? '' : "\n          inIdx = round(vec4(getBestIndicesAChannel(".concat(srcRCoords.join(), "),\n                             getBestIndicesAChannel(").concat(srcGCoords.join(), "),\n                             getBestIndicesAChannel(").concat(srcBCoords.join(), "),\n                             getBestIndicesAChannel(").concat(srcACoords.join(), ")));");
                    var fetchValue = "vec4(\n            getAChannel(".concat(srcRCoords.join(), "),\n            hasNextCol ? getAChannel(").concat(srcGCoords.join(), ") : 0.,\n            hasNextRow ? getAChannel(").concat(srcBCoords.join(), ") : 0.,\n            hasNextRow && hasNextCol ? getAChannel(").concat(srcACoords.join(), ") : 0.)");
                    var getBestIndicesAChannelSnippet = firstPass ? '' : "\n      float getBestIndicesAChannel(".concat(intChannels.join(), ") {\n        return getChannel(getBestIndicesA(").concat(channels.join(), "),\n                                          vec2(").concat(channels.slice(-2).join(), "));\n      }");
                    this.userCode = "\n      float getAChannel(".concat(intChannels.join(), ") {\n        return getChannel(getA(").concat(channels.join(), "),\n                               vec2(").concat(channels.slice(-2).join(), "));\n      }\n      ").concat(getBestIndicesAChannelSnippet, "\n      void main() {\n        ").concat(dtype, " coords = getOutputCoords();\n        bool hasNextCol = ").concat(coords[rank - 1], " < ").concat(outShape[rank - 1] - 1, ";\n        bool hasNextRow = ").concat(coords[rank - 2], " < ").concat(outShape[rank - 2] - 1, ";\n        ").concat(sourceLocSetup, "\n        ivec4 srcIdx = ivec4(sourceLocR").concat(inChannel, ", sourceLocG").concat(inChannel, ",\n          sourceLocB").concat(inChannel, ", sourceLocA").concat(inChannel, ") * ").concat(windowSize, ";\n        ivec4 inIdx = srcIdx;\n        vec4 bestIndex = vec4(inIdx);\n        vec4 bestValue = ").concat(fetchValue, ";\n\n        for (int i = 0; i < ").concat(windowSize, "; i++) {\n          inIdx = srcIdx;\n          ").concat(fetchCandidateIdx, "\n          vec4 candidate = ").concat(fetchValue, ";\n          bvec4 nan = isnan(candidate);\n          bvec4 replace = bvec4(\n            vec4(").concat(compOp, "(candidate, bestValue)) * (vec4(1.0) - vec4(nan)));\n\n          bestValue = vec4(replace.x  ? candidate.x : bestValue.x,\n                           replace.y  ? candidate.y : bestValue.y,\n                           replace.z  ? candidate.z : bestValue.z,\n                           replace.w  ? candidate.w : bestValue.w);\n          bestIndex = mix(bestIndex, vec4(inIdx), vec4(replace));\n          srcIdx++;\n        }\n        setOutput(bestIndex);\n      }\n    ");
                }
                return ArgMinMaxPackedProgram;
            }());

        function argReduce(backend, x, reduceType, bestIndicesA) {
            if (bestIndicesA === void 0) {
                bestIndicesA = null;
            }
            var batchSize = x.shape[0];
            var inSize = x.shape[1];
            if (bestIndicesA != null) {
                batchSize = bestIndicesA.shape[0];
                inSize = bestIndicesA.shape[1];
            }
            var windowSize = tf.backend_util.computeOptimalWindowSize(inSize);
            var reduceInfo = {
                windowSize: windowSize,
                inSize: inSize,
                batchSize: batchSize,
                outSize: Math.ceil(inSize / windowSize)
            };
            var program = new ArgMinMaxProgram(reduceInfo, reduceType, bestIndicesA == null);
            var inputs = [x];
            if (bestIndicesA != null) {
                inputs.push(bestIndicesA);
            }
            var output = backend.runWebGLProgram(program, inputs, 'int32');
            // No need to run another GPGPU program.
            if (output.shape[1] === 1) {
                return output;
            }
            var result = argReduce(backend, x, reduceType, output);
            backend.disposeIntermediateTensorInfo(output);
            return result;
        }
        function argReducePacked(backend, x, reduceType, bestIndicesA) {
            if (bestIndicesA === void 0) {
                bestIndicesA = null;
            }
            var inShape = bestIndicesA != null ? bestIndicesA.shape : x.shape;
            var inSize = inShape[inShape.length - 1];
            var windowSize = tf.backend_util.computeOptimalWindowSize(inSize);
            var program = new ArgMinMaxPackedProgram(inShape, windowSize, reduceType, bestIndicesA == null);
            var inputs = bestIndicesA == null ? [x] : [x, bestIndicesA];
            var output = backend.runWebGLProgram(program, inputs, 'int32');
            if (output.shape.length === x.shape.length) {
                var result = argReducePacked(backend, x, reduceType, output);
                backend.disposeIntermediateTensorInfo(output);
                return result;
            }
            return output;
        }
        function argMinMaxReduce(backend, x, axis, reduceType) {
            var axes = [axis];
            tf.backend_util.assertAxesAreInnerMostDims('arg' + reduceType.charAt(0).toUpperCase() + reduceType.slice(1), axes, x.shape.length);
            if (!tf.env().getBool('WEBGL_PACK_REDUCE') || x.shape.length <= 2) {
                var intermediateTensorInfos = [];
                // Eagerly unpack x input since it is passed in to all the shaders which
                // require unpacked inputs.
                var xtexData = backend.texData.get(x.dataId);
                var xIsPacked = xtexData !== null && xtexData.isPacked;
                var xUnPacked = x;
                if (xIsPacked) {
                    xUnPacked = backend.unpackTensor(x);
                    intermediateTensorInfos.push(xUnPacked);
                }
                var _a = __read(tf.backend_util.computeOutAndReduceShapes(xUnPacked.shape, axes), 2)
                    , outShape = _a[0]
                    , reduceShape = _a[1];
                var inSize = tf.util.sizeFromShape(reduceShape);
                var a2D = reshape({
                    inputs: {
                        x: xUnPacked
                    },
                    backend: backend,
                    attrs: {
                        shape: [-1, inSize]
                    }
                });
                intermediateTensorInfos.push(a2D);
                var reduced = argReduce(backend, a2D, reduceType);
                intermediateTensorInfos.push(reduced);
                var reshaped = reshape({
                    inputs: {
                        x: reduced
                    },
                    backend: backend,
                    attrs: {
                        shape: outShape
                    }
                });
                intermediateTensorInfos.forEach(function (t) {
                    return backend.disposeIntermediateTensorInfo(t);
                });
                return reshaped;
            }
            return argReducePacked(backend, x, reduceType);
        }

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function argMax(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x;
            var axis = attrs.axis;
            var axes = tf.util.parseAxisParam(axis, x.shape);
            var permutedAxes = tf.backend_util.getAxesPermutation(axes, x.shape.length);
            var $x = x;
            var intermediateTensorInfos = [];
            if (permutedAxes != null) {
                $x = transpose({
                    inputs: {
                        x: x
                    },
                    backend: backend,
                    attrs: {
                        perm: permutedAxes
                    }
                });
                intermediateTensorInfos.push($x);
                axes = tf.backend_util.getInnerMostAxes(axes.length, $x.shape.length);
            }
            tf.backend_util.assertAxesAreInnerMostDims('argMax', [axes[0]], $x.shape.length);
            var out = argMinMaxReduce(backend, $x, axes[0], 'max');
            intermediateTensorInfos.forEach(function (t) {
                return backend.disposeIntermediateTensorInfo(t);
            });
            return out;
        }
        var argMaxConfig = {
            kernelName: tf.ArgMax,
            backendName: 'webgl',
            kernelFunc: argMax
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function argMin(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x;
            var axis = attrs.axis;
            var axes = tf.util.parseAxisParam(axis, x.shape);
            var permutedAxes = tf.backend_util.getAxesPermutation(axes, x.shape.length);
            var $x = x;
            var intermediateTensorInfos = [];
            if (permutedAxes != null) {
                $x = transpose({
                    inputs: {
                        x: x
                    },
                    backend: backend,
                    attrs: {
                        perm: permutedAxes
                    }
                });
                intermediateTensorInfos.push($x);
                axes = tf.backend_util.getInnerMostAxes(axes.length, $x.shape.length);
            }
            tf.backend_util.assertAxesAreInnerMostDims('argMin', [axes[0]], $x.shape.length);
            var out = argMinMaxReduce(backend, $x, axes[0], 'min');
            intermediateTensorInfos.forEach(function (t) {
                return backend.disposeIntermediateTensorInfo(t);
            });
            return out;
        }
        var argMinConfig = {
            kernelName: tf.ArgMin,
            backendName: 'webgl',
            kernelFunc: argMin
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var ASIN = CHECK_NAN_SNIPPET$1 + "\n  if (abs(x) > 1.) {\n    return NAN;\n  }\n  return asin(x);\n";
        var asin = unaryKernelFunc({
            opSnippet: ASIN
        });
        var asinConfig = {
            kernelName: tf.Asin,
            backendName: 'webgl',
            kernelFunc: asin,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var ASINH = CHECK_NAN_SNIPPET$1 + "return log(x + sqrt(x * x + 1.0));";
        var asinh = unaryKernelFunc({
            opSnippet: ASINH
        });
        var asinhConfig = {
            kernelName: tf.Asinh,
            backendName: 'webgl',
            kernelFunc: asinh,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var ATAN = CHECK_NAN_SNIPPET$1 + "\n  return atan(x);\n";
        var atan = unaryKernelFunc({
            opSnippet: ATAN
        });
        var atanConfig = {
            kernelName: tf.Atan,
            backendName: 'webgl',
            kernelFunc: atan,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var ATAN2 = CHECK_NAN_SNIPPET + "\n  return atan(a, b);\n";
        var ATAN2_PACKED = "\n  vec4 result = atan(a, b);\n  bvec4 isNaNA = isnan(a);\n  bvec4 isNaNB = isnan(b);\n  bvec4 isNaN = bvec4(isNaNA.x || isNaNB.x, isNaNA.y || isNaNB.y, isNaNA.z || isNaNB.z, isNaNA.w || isNaNB.w);\n  " + CHECK_NAN_SNIPPET_PACKED + "\n  return result;\n";
        var atan2 = binaryKernelFunc({
            opSnippet: ATAN2,
            packedOpSnippet: ATAN2_PACKED
        });
        var atan2Config = {
            kernelName: tf.Atan2,
            backendName: 'webgl',
            kernelFunc: atan2,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var ATANH = CHECK_NAN_SNIPPET$1 + "\n  if ((x < -1.0) || (x > 1.0)) return NAN;\nreturn (log(1.0 + x) - log(1.0 - x)) / 2.0;";
        var atanh = unaryKernelFunc({
            opSnippet: ATANH
        });
        var atanhConfig = {
            kernelName: tf.Atanh,
            backendName: 'webgl',
            kernelFunc: atanh,
        };

        /**
         * @license
         * Copyright 2017 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var Pool2DProgram = /** @class */
            (function () {
                function Pool2DProgram(convInfo, poolType, computePositions, flattenPositions, includeBatchInIndex) {
                    if (flattenPositions === void 0) {
                        flattenPositions = false;
                    }
                    if (includeBatchInIndex === void 0) {
                        includeBatchInIndex = false;
                    }
                    this.variableNames = ['x'];
                    if (poolType === 'avg' && computePositions) {
                        throw new Error('Cannot compute positions for average pool.');
                    }
                    var filterWidth = convInfo.filterWidth;
                    var strideHeight = convInfo.strideHeight;
                    var strideWidth = convInfo.strideWidth;
                    var dilationHeight = convInfo.dilationHeight;
                    var dilationWidth = convInfo.dilationWidth;
                    var effectiveFilterHeight = convInfo.effectiveFilterHeight;
                    var effectiveFilterWidth = convInfo.effectiveFilterWidth;
                    var padTop = convInfo.padInfo.top;
                    var padLeft = convInfo.padInfo.left;
                    this.outputShape = convInfo.outShape;
                    var isAvgPool = poolType === 'avg';
                    var batchFlattenPositionStr = "((batch  * ".concat(convInfo.inHeight, " + xR) * ").concat(convInfo.inWidth, " + xC) * ").concat(convInfo.inChannels, " + d");
                    var flattenPositionStr = "(xR * ".concat(convInfo.inWidth, " + xC) * ").concat(convInfo.inChannels, " + d");
                    var initializationValue = '0.0';
                    if (!isAvgPool) {
                        // WebGL on Firefox Linux can't compile 1/0 so we do 1/eps.
                        initializationValue = '-1.0 / 1e-20';
                    }
                    if (computePositions) {
                        var compareOp_1 = '>=';
                        this.userCode = "\n        const ivec2 strides = ivec2(".concat(strideHeight, ", ").concat(strideWidth, ");\n        const ivec2 pads = ivec2(").concat(padTop, ", ").concat(padLeft, ");\n\n        void main() {\n          ivec4 coords = getOutputCoords();\n          int batch = coords[0];\n          int d = coords[3];\n\n          ivec2 xRCCorner = coords.yz * strides - pads;\n          int xRCorner = xRCCorner.x;\n          int xCCorner = xRCCorner.y;\n\n          // max/min x(?, ?, d) to get y(yR, yC, d).\n          // ? = to be determined\n          float minMaxValue = 0.0;\n          float minMaxValueFound = 0.0;\n          int minMaxPosition = 0;\n          float avgValue = 0.0;\n\n          for (int wR = 0; wR < ").concat(effectiveFilterHeight, ";\n              wR += ").concat(dilationHeight, ") {\n            int xR = xRCorner + wR;\n\n            if (xR < 0 || xR >= ").concat(convInfo.inHeight, ") {\n              continue;\n            }\n\n            for (int wC = 0; wC < ").concat(effectiveFilterWidth, ";\n                wC += ").concat(dilationWidth, ") {\n              int xC = xCCorner + wC;\n\n              if (xC < 0 || xC >= ").concat(convInfo.inWidth, ") {\n                continue;\n              }\n\n              float value = getX(batch, xR, xC, d);\n\n              // If a min / max value has already been found, use it. If not,\n              // use the current value.\n              float currMinMaxValue = mix(\n                  value, minMaxValue, minMaxValueFound);\n              if (value ").concat(compareOp_1, " currMinMaxValue) {\n                minMaxValue = value;\n                minMaxValueFound = 1.0;\n                minMaxPosition = ").concat(flattenPositions ? (includeBatchInIndex ? batchFlattenPositionStr : flattenPositionStr) : "wR * ".concat(effectiveFilterWidth, " + wC"), ";\n              }\n            }\n          }\n          setOutput(float(minMaxPosition));\n        }\n      ");
                        return;
                    }
                    var compareOp = 'max';
                    var returnValue = "".concat(poolType, "(").concat(poolType, "(").concat(poolType, "(") + 'minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])';
                    if (poolType === 'avg') {
                        returnValue = "avgValue / count";
                    }
                    var filterWidthNearestVec4 = Math.floor(filterWidth / 4) * 4;
                    var filterWidthVec4Remainder = filterWidth % 4;
                    var updateSnippet = "\n      if (".concat(isAvgPool, ") {\n        avgValue += dot(values, ones);\n      } else {\n        minMaxValue = ").concat(compareOp, "(values, minMaxValue);\n      }\n    ");
                    this.userCode = "\n      const ivec2 strides = ivec2(".concat(strideHeight, ", ").concat(strideWidth, ");\n      const ivec2 pads = ivec2(").concat(padTop, ", ").concat(padLeft, ");\n      const float initializationValue = ").concat(initializationValue, ";\n      const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0);\n\n      float count = 0.0;\n\n      float getValue(int batch, int xR, int xC, int d) {\n        if (xC < 0 || xC >= ").concat(convInfo.inWidth, ") {\n          return initializationValue;\n        }\n        count += 1.0;\n        return getX(batch, xR, xC, d);\n      }\n\n      void main() {\n        ivec4 coords = getOutputCoords();\n        int batch = coords[0];\n        int d = coords[3];\n\n        ivec2 xRCCorner = coords.yz * strides - pads;\n        int xRCorner = xRCCorner.x;\n        int xCCorner = xRCCorner.y;\n\n        // max/min x(?, ?, d) to get y(yR, yC, d).\n        // ? = to be determined\n        vec4 minMaxValue = vec4(").concat(initializationValue, ");\n        float avgValue = 0.0;\n        count = 0.0;\n\n        for (int wR = 0; wR < ").concat(effectiveFilterHeight, ";\n            wR += ").concat(dilationHeight, ") {\n          int xR = xRCorner + wR;\n\n          if (xR < 0 || xR >= ").concat(convInfo.inHeight, ") {\n            continue;\n          }\n\n          for (int wC = 0; wC < ").concat(filterWidthNearestVec4, "; wC += 4) {\n            int xC = xCCorner + wC * ").concat(dilationWidth, ";\n\n            vec4 values = vec4(\n              getValue(batch, xR, xC, d),\n              getValue(batch, xR, xC + ").concat(dilationWidth, ", d),\n              getValue(batch, xR, xC + 2 * ").concat(dilationWidth, ", d),\n              getValue(batch, xR, xC + 3 * ").concat(dilationWidth, ", d)\n            );\n\n            ").concat(updateSnippet, "\n          }\n\n          int xC = xCCorner + ").concat(filterWidthNearestVec4, ";\n          if (").concat(filterWidthVec4Remainder === 1, ") {\n            vec4 values = vec4(\n              getValue(batch, xR, xC, d),\n              initializationValue,\n              initializationValue,\n              initializationValue\n            );\n\n            ").concat(updateSnippet, "\n          } else if (").concat(filterWidthVec4Remainder === 2, ") {\n            vec4 values = vec4(\n              getValue(batch, xR, xC, d),\n              getValue(batch, xR, xC + ").concat(dilationWidth, ", d),\n              initializationValue,\n              initializationValue\n            );\n\n            ").concat(updateSnippet, "\n          } else if (").concat(filterWidthVec4Remainder === 3, ") {\n            vec4 values = vec4(\n              getValue(batch, xR, xC, d),\n              getValue(batch, xR, xC + ").concat(dilationWidth, ", d),\n              getValue(batch, xR, xC + 2 * ").concat(dilationWidth, ", d),\n              initializationValue\n            );\n\n            ").concat(updateSnippet, "\n          }\n        }\n        setOutput(").concat(returnValue, ");\n      }\n    ");
                }
                return Pool2DProgram;
            }());
        var Pool3DProgram = /** @class */
            (function () {
                function Pool3DProgram(convInfo, poolType, computePositions, flattenPositions, includeBatchInIndex) {
                    if (flattenPositions === void 0) {
                        flattenPositions = false;
                    }
                    if (includeBatchInIndex === void 0) {
                        includeBatchInIndex = false;
                    }
                    this.variableNames = ['x'];
                    if (poolType === 'avg' && computePositions) {
                        throw new Error('Cannot compute positions for average pool.');
                    }
                    var filterWidth = convInfo.filterWidth;
                    var strideDepth = convInfo.strideDepth;
                    var strideHeight = convInfo.strideHeight;
                    var strideWidth = convInfo.strideWidth;
                    var dilationDepth = convInfo.dilationDepth;
                    var dilationHeight = convInfo.dilationHeight;
                    var dilationWidth = convInfo.dilationWidth;
                    var effectiveFilterDepth = convInfo.effectiveFilterDepth;
                    var effectiveFilterHeight = convInfo.effectiveFilterHeight;
                    var effectiveFilterWidth = convInfo.effectiveFilterWidth;
                    var padFront = convInfo.padInfo.front;
                    var padTop = convInfo.padInfo.top;
                    var padLeft = convInfo.padInfo.left;
                    this.outputShape = convInfo.outShape;
                    var isAvgPool = poolType === 'avg';
                    var initializationValue = '0.0';
                    if (!isAvgPool) {
                        // WebGL on Firefox Linux can't compile 1/0 so we do 1/eps.
                        initializationValue = '-1.0 / 1e-20';
                    }
                    if (computePositions) {
                        var compareOp_2 = '>=';
                        this.userCode = "\n        const ivec3 strides =\n            ivec3(".concat(strideDepth, ", ").concat(strideHeight, ", ").concat(strideWidth, ");\n        const ivec3 pads = ivec3(").concat(padFront, ", ").concat(padTop, ", ").concat(padLeft, ");\n\n        void main() {\n          ivec5 coords = getOutputCoords();\n          int batch = coords.x;\n          int ch = coords.u;\n\n          ivec3 xCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads;\n          int xDCorner = xCorner.x;\n          int xRCorner = xCorner.y;\n          int xCCorner = xCorner.z;\n\n          // max/min x(?, ?, ?, ch) to get y(yD, yR, yC, ch).\n          // ? = to be determined\n          float minMaxValue = 0.0;\n          float minMaxValueFound = 0.0;\n          int minMaxPosition = 0;\n\n          for (int wD = 0; wD < ").concat(effectiveFilterDepth, ";\n              wD += ").concat(dilationDepth, ") {\n            int xD = xDCorner + wD;\n\n            if (xD < 0 || xD >= ").concat(convInfo.inDepth, ") {\n              continue;\n            }\n\n            for (int wR = 0; wR < ").concat(effectiveFilterHeight, ";\n                wR += ").concat(dilationHeight, ") {\n              int xR = xRCorner + wR;\n\n              if (xR < 0 || xR >= ").concat(convInfo.inHeight, ") {\n                continue;\n              }\n\n              for (int wC = 0; wC < ").concat(effectiveFilterWidth, ";\n                  wC += ").concat(dilationWidth, ") {\n                int xC = xCCorner + wC;\n\n                if (xC < 0 || xC >= ").concat(convInfo.inWidth, ") {\n                  continue;\n                }\n\n                float value = getX(batch, xD, xR, xC, ch);\n\n                // If a min / max value has already been found, use it. If not,\n                // use the current value.\n                float currMinMaxValue = mix(\n                    value, minMaxValue, minMaxValueFound);\n                if (value ").concat(compareOp_2, " currMinMaxValue) {\n                  minMaxValue = value;\n                  minMaxValueFound = 1.0;\n                  minMaxPosition = ").concat(flattenPositions ? (includeBatchInIndex ? "(((batch * ".concat(convInfo.inDepth, " + xD) * ").concat(convInfo.inHeight, " + xR) * ").concat(convInfo.inWidth, " + xC) * ").concat(convInfo.inChannels, " + ch") : "((xD * ".concat(convInfo.inHeight, " + xR) * ").concat(convInfo.inWidth, " + xC) * ").concat(convInfo.inChannels, " + ch")) : "wD * ".concat(effectiveFilterHeight, " * ").concat(effectiveFilterWidth, " +\n                      wR * ").concat(effectiveFilterWidth, " + wC"), ";\n                }\n              }\n            }\n          }\n          setOutput(float(minMaxPosition));\n        }\n      ");
                        return;
                    }
                    var compareOp = 'max';
                    var returnValue = "".concat(poolType, "(").concat(poolType, "(").concat(poolType, "(") + 'minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])';
                    if (poolType === 'avg') {
                        returnValue = "avgValue / count";
                    }
                    var filterWidthNearestVec4 = Math.floor(filterWidth / 4) * 4;
                    var filterWidthVec4Remainder = filterWidth % 4;
                    var updateSnippet = "\n      if (".concat(isAvgPool, ") {\n        avgValue += dot(values, ones);\n      } else {\n        minMaxValue = ").concat(compareOp, "(values, minMaxValue);\n      }\n    ");
                    this.userCode = "\n      const ivec3 strides =\n        ivec3(".concat(strideDepth, ", ").concat(strideHeight, ", ").concat(strideWidth, ");\n      const ivec3 pads = ivec3(").concat(padFront, ", ").concat(padTop, ", ").concat(padLeft, ");\n      const float initializationValue = ").concat(initializationValue, ";\n      const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0);\n\n      float count = 0.0;\n\n      float getValue(int batch, int xD, int xR, int xC, int ch) {\n        if (xC < 0 || xC >= ").concat(convInfo.inWidth, ") {\n          return initializationValue;\n        }\n        count += 1.0;\n        return getX(batch, xD, xR, xC, ch);\n      }\n\n      void main() {\n        ivec5 coords = getOutputCoords();\n        int batch = coords.x;\n        int ch = coords.u;\n\n        ivec3 xCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads;\n        int xDCorner = xCorner.x;\n        int xRCorner = xCorner.y;\n        int xCCorner = xCorner.z;\n\n        // max/min x(?, ?, ?, d) to get y(yD, yR, yC, ch).\n        // ? = to be determined\n        vec4 minMaxValue = vec4(").concat(initializationValue, ");\n        float avgValue = 0.0;\n        count = 0.0;\n\n        for (int wD = 0; wD < ").concat(effectiveFilterDepth, ";\n            wD += ").concat(dilationDepth, ") {\n          int xD = xDCorner + wD;\n\n          if (xD < 0 || xD >= ").concat(convInfo.inDepth, ") {\n            continue;\n          }\n\n          for (int wR = 0; wR < ").concat(effectiveFilterHeight, ";\n            wR += ").concat(dilationHeight, ") {\n            int xR = xRCorner + wR;\n\n            if (xR < 0 || xR >= ").concat(convInfo.inHeight, ") {\n              continue;\n            }\n\n            for (int wC = 0; wC < ").concat(filterWidthNearestVec4, "; wC += 4) {\n              int xC = xCCorner + wC * ").concat(dilationWidth, ";\n\n              vec4 values = vec4(\n                getValue(batch, xD, xR, xC, ch),\n                getValue(batch, xD, xR, xC + ").concat(dilationWidth, ", ch),\n                getValue(batch, xD, xR, xC + 2 * ").concat(dilationWidth, ", ch),\n                getValue(batch, xD, xR, xC + 3 * ").concat(dilationWidth, ", ch)\n              );\n\n              ").concat(updateSnippet, "\n            }\n\n            int xC = xCCorner + ").concat(filterWidthNearestVec4, ";\n            if (").concat(filterWidthVec4Remainder === 1, ") {\n              vec4 values = vec4(\n                getValue(batch, xD, xR, xC, ch),\n                initializationValue,\n                initializationValue,\n                initializationValue\n              );\n\n              ").concat(updateSnippet, "\n            } else if (").concat(filterWidthVec4Remainder === 2, ") {\n              vec4 values = vec4(\n                getValue(batch, xD, xR, xC, ch),\n                getValue(batch, xD, xR, xC + ").concat(dilationWidth, ", ch),\n                initializationValue,\n                initializationValue\n              );\n\n              ").concat(updateSnippet, "\n            } else if (").concat(filterWidthVec4Remainder === 3, ") {\n              vec4 values = vec4(\n                getValue(batch, xD, xR, xC, ch),\n                getValue(batch, xD, xR, xC + ").concat(dilationWidth, ", ch),\n                getValue(batch, xD, xR, xC + 2 * ").concat(dilationWidth, ", ch),\n                initializationValue\n              );\n\n              ").concat(updateSnippet, "\n            }\n          }\n          setOutput(").concat(returnValue, ");\n        }\n      }\n    ");
                }
                return Pool3DProgram;
            }());

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function avgPool(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x;
            assertNotComplex(x, 'avgPool');
            var filterSize = attrs.filterSize
                , strides = attrs.strides
                , pad = attrs.pad
                , dimRoundingMode = attrs.dimRoundingMode;
            var dilations = 1;
            tf.util.assert(tf.backend_util.eitherStridesOrDilationsAreOne(strides, dilations), function () {
                return 'Error in avgPool: Either strides or dilations must be 1. ' + "Got strides ".concat(strides, " and dilations '").concat(dilations, "'");
            });
            var convInfo = tf.backend_util.computePool2DInfo(x.shape, filterSize, strides, dilations, pad, dimRoundingMode);
            if (convInfo.filterWidth === 1 && convInfo.filterHeight === 1 && tf.util.arraysEqual(convInfo.inShape, convInfo.outShape)) {
                return identity({
                    inputs: {
                        x: x
                    },
                    backend: backend
                });
            }
            var avgPoolProgram = new Pool2DProgram(convInfo, 'avg', false);
            return backend.runWebGLProgram(avgPoolProgram, [x], 'float32');
        }
        var avgPoolConfig = {
            kernelName: tf.AvgPool,
            backendName: 'webgl',
            kernelFunc: avgPool
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function avgPool3D(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x;
            var filterSize = attrs.filterSize
                , strides = attrs.strides
                , pad = attrs.pad
                , dimRoundingMode = attrs.dimRoundingMode
                , dataFormat = attrs.dataFormat;
            var dilations = [1, 1, 1];
            var convInfo = tf.backend_util.computePool3DInfo(x.shape, filterSize, strides, dilations, pad, dimRoundingMode, dataFormat);
            var avgPoolProgram = new Pool3DProgram(convInfo, 'avg', false);
            return backend.runWebGLProgram(avgPoolProgram, [x], 'float32');
        }
        var avgPool3DConfig = {
            kernelName: tf.AvgPool3D,
            backendName: 'webgl',
            kernelFunc: avgPool3D
        };

        /**
         * @license
         * Copyright 2017 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var AvgPool2DBackpropProgram = /** @class */
            (function () {
                function AvgPool2DBackpropProgram(convInfo) {
                    this.variableNames = ['dy'];
                    this.outputShape = convInfo.inShape;
                    var filterHeight = convInfo.filterHeight;
                    var filterWidth = convInfo.filterWidth;
                    var strideHeight = convInfo.strideHeight;
                    var strideWidth = convInfo.strideWidth;
                    var dilationHeight = convInfo.dilationHeight;
                    var dilationWidth = convInfo.dilationWidth;
                    var effectiveFilterHeight = convInfo.effectiveFilterHeight;
                    var effectiveFilterWidth = convInfo.effectiveFilterWidth;
                    var padTop = effectiveFilterHeight - 1 - convInfo.padInfo.top;
                    var padLeft = effectiveFilterWidth - 1 - convInfo.padInfo.left;
                    var avgMultiplier = 1 / (filterHeight * filterWidth);
                    this.userCode = "\n      const ivec2 pads = ivec2(".concat(padTop, ", ").concat(padLeft, ");\n      const float avgMultiplier = float(").concat(avgMultiplier, ");\n\n      void main() {\n        ivec4 coords = getOutputCoords();\n        int b = coords[0];\n        int d = coords[3];\n\n        ivec2 dyRCCorner = coords.yz - pads;\n        int dyRCorner = dyRCCorner.x;\n        int dyCCorner = dyRCCorner.y;\n\n        // Convolve dy(?, ?, d) with pos mask(:, :, d) to get dx(xR, xC, d).\n        // ? = to be determined. : = across all values in that axis.\n        float dotProd = 0.0;\n        for (int wR = 0; wR < ").concat(effectiveFilterHeight, ";\n            wR += ").concat(dilationHeight, ") {\n          float dyR = float(dyRCorner + wR) / ").concat(strideHeight, ".0;\n\n          if (dyR < 0.0 || dyR >= ").concat(convInfo.outHeight, ".0 || fract(dyR) > 0.0) {\n            continue;\n          }\n          int idyR = int(dyR);\n\n          for (int wC = 0; wC < ").concat(effectiveFilterWidth, ";\n            wC+= ").concat(dilationWidth, ") {\n            float dyC = float(dyCCorner + wC) / ").concat(strideWidth, ".0;\n\n            if (dyC < 0.0 || dyC >= ").concat(convInfo.outWidth, ".0 ||\n                fract(dyC) > 0.0) {\n              continue;\n            }\n            int idyC = int(dyC);\n\n            float dyValue = getDy(b, idyR, idyC, d);\n\n            dotProd += dyValue * avgMultiplier;\n          }\n        }\n        setOutput(dotProd);\n      }\n    ");
                }
                return AvgPool2DBackpropProgram;
            }());
        var AvgPool3DBackpropProgram = /** @class */
            (function () {
                function AvgPool3DBackpropProgram(convInfo) {
                    this.variableNames = ['dy'];
                    this.outputShape = convInfo.inShape;
                    var filterDepth = convInfo.filterDepth;
                    var filterHeight = convInfo.filterHeight;
                    var filterWidth = convInfo.filterWidth;
                    var strideDepth = convInfo.strideDepth;
                    var strideHeight = convInfo.strideHeight;
                    var strideWidth = convInfo.strideWidth;
                    var dilationDepth = convInfo.dilationDepth;
                    var dilationHeight = convInfo.dilationHeight;
                    var dilationWidth = convInfo.dilationWidth;
                    var effectiveFilterDepth = convInfo.effectiveFilterDepth;
                    var effectiveFilterHeight = convInfo.effectiveFilterHeight;
                    var effectiveFilterWidth = convInfo.effectiveFilterWidth;
                    var padFront = effectiveFilterDepth - 1 - convInfo.padInfo.front;
                    var padTop = effectiveFilterHeight - 1 - convInfo.padInfo.top;
                    var padLeft = effectiveFilterWidth - 1 - convInfo.padInfo.left;
                    var avgMultiplier = 1 / (filterDepth * filterHeight * filterWidth);
                    this.userCode = "\n      const ivec3 pads = ivec3(".concat(padFront, ", ").concat(padTop, ", ").concat(padLeft, ");\n      const float avgMultiplier = float(").concat(avgMultiplier, ");\n\n      void main() {\n        ivec5 coords = getOutputCoords();\n        int batch = coords.x;\n        int ch = coords.u;\n\n        ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads;\n        int dyDCorner = dyCorner.x;\n        int dyRCorner = dyCorner.y;\n        int dyCCorner = dyCorner.z;\n\n        // Convolve dy(?, ?, ?, d) with pos mask(:, :, :, ch) to get\n        // dx(xD, xR, xC, ch).\n        // ? = to be determined. : = across all values in that axis.\n        float dotProd = 0.0;\n\n        for (int wD = 0; wD < ").concat(effectiveFilterDepth, ";\n            wD += ").concat(dilationDepth, ") {\n          float dyD = float(dyDCorner + wD) / ").concat(strideDepth, ".0;\n\n          if (dyD < 0.0 || dyD >= ").concat(convInfo.outDepth, ".0 || fract(dyD) > 0.0) {\n            continue;\n          }\n          int idyD = int(dyD);\n\n          for (int wR = 0; wR < ").concat(effectiveFilterHeight, ";\n              wR += ").concat(dilationHeight, ") {\n            float dyR = float(dyRCorner + wR) / ").concat(strideHeight, ".0;\n\n            if (dyR < 0.0 || dyR >= ").concat(convInfo.outHeight, ".0 ||\n                fract(dyR) > 0.0) {\n              continue;\n            }\n            int idyR = int(dyR);\n\n            for (int wC = 0; wC < ").concat(effectiveFilterWidth, ";\n                wC += ").concat(dilationWidth, ") {\n              float dyC = float(dyCCorner + wC) / ").concat(strideWidth, ".0;\n\n              if (dyC < 0.0 || dyC >= ").concat(convInfo.outWidth, ".0 ||\n                  fract(dyC) > 0.0) {\n                continue;\n              }\n              int idyC = int(dyC);\n\n              float dyValue = getDy(batch, idyD, idyR, idyC, ch);\n\n              dotProd += dyValue * avgMultiplier;\n            }\n          }\n        }\n        setOutput(dotProd);\n      }\n    ");
                }
                return AvgPool3DBackpropProgram;
            }());

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function avgPool3DGrad(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var dy = inputs.dy
                , input = inputs.input;
            var x = input;
            var filterSize = attrs.filterSize
                , strides = attrs.strides
                , pad = attrs.pad
                , dimRoundingMode = attrs.dimRoundingMode;
            var dilations = [1, 1, 1];
            var convInfo = tf.backend_util.computePool3DInfo(x.shape, filterSize, strides, dilations, pad, dimRoundingMode);
            var avgPoolBackpropProgram = new AvgPool3DBackpropProgram(convInfo);
            return backend.runWebGLProgram(avgPoolBackpropProgram, [dy], x.dtype);
        }
        var avgPool3DGradConfig = {
            kernelName: tf.AvgPool3DGrad,
            backendName: 'webgl',
            kernelFunc: avgPool3DGrad
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function avgPoolGrad(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var dy = inputs.dy
                , input = inputs.input;
            var x = input;
            assertNotComplex([dy, input], 'avgPoolGrad');
            var filterSize = attrs.filterSize
                , strides = attrs.strides
                , pad = attrs.pad;
            var convInfo = tf.backend_util.computePool2DInfo(x.shape, filterSize, strides, 1 /* dilations */
                , pad);
            var avgPoolBackpropProgram = new AvgPool2DBackpropProgram(convInfo);
            return backend.runWebGLProgram(avgPoolBackpropProgram, [dy], x.dtype);
        }
        var avgPoolGradConfig = {
            kernelName: tf.AvgPoolGrad,
            backendName: 'webgl',
            kernelFunc: avgPoolGrad
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function batchMatMul(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var a = inputs.a
                , b = inputs.b;
            var transposeA = attrs.transposeA
                , transposeB = attrs.transposeB;
            return batchMatMulImpl({
                a: a,
                b: b,
                transposeA: transposeA,
                transposeB: transposeB,
                backend: backend
            });
        }
        var batchMatMulConfig = {
            kernelName: tf.BatchMatMul,
            backendName: 'webgl',
            kernelFunc: batchMatMul,
        };

        /**
         * @license
         * Copyright 2017 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var BatchNormProgram = /** @class */
            (function () {
                function BatchNormProgram(xShape, meanShape, varianceShape, offsetShape, scaleShape, varianceEpsilon) {
                    this.outputShape = [];
                    this.variableNames = ['x', 'mean', 'variance'];
                    tf.backend_util.assertAndGetBroadcastShape(xShape, meanShape);
                    tf.backend_util.assertAndGetBroadcastShape(xShape, varianceShape);
                    var offsetSnippet = '0.0';
                    if (offsetShape != null) {
                        tf.backend_util.assertAndGetBroadcastShape(xShape, offsetShape);
                        this.variableNames.push('offset');
                        offsetSnippet = 'getOffsetAtOutCoords()';
                    }
                    var scaleSnippet = '1.0';
                    if (scaleShape != null) {
                        tf.backend_util.assertAndGetBroadcastShape(xShape, scaleShape);
                        this.variableNames.push('scale');
                        scaleSnippet = 'getScaleAtOutCoords()';
                    }
                    this.outputShape = xShape;
                    this.userCode = "\n      void main() {\n        float x = getXAtOutCoords();\n        float mean = getMeanAtOutCoords();\n        float variance = getVarianceAtOutCoords();\n        float offset = ".concat(offsetSnippet, ";\n        float scale = ").concat(scaleSnippet, ";\n        float inv = scale * inversesqrt(variance + float(").concat(varianceEpsilon, "));\n        setOutput(dot(vec3(x, -mean, offset), vec3(inv, inv, 1)));\n      }\n    ");
                }
                return BatchNormProgram;
            }());

        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var BatchNormPackedProgram = /** @class */
            (function () {
                function BatchNormPackedProgram(xShape, meanShape, varianceShape, offsetShape, scaleShape, varianceEpsilon) {
                    this.packedInputs = true;
                    this.packedOutput = true;
                    this.variableNames = ['x', 'mean', 'variance'];
                    tf.backend_util.assertAndGetBroadcastShape(xShape, meanShape);
                    tf.backend_util.assertAndGetBroadcastShape(xShape, varianceShape);
                    var offsetSnippet = 'vec4(0.0)';
                    if (offsetShape != null) {
                        tf.backend_util.assertAndGetBroadcastShape(xShape, offsetShape);
                        this.variableNames.push('offset');
                        offsetSnippet = 'getOffsetAtOutCoords()';
                    }
                    var scaleSnippet = 'vec4(1.0)';
                    if (scaleShape != null) {
                        tf.backend_util.assertAndGetBroadcastShape(xShape, scaleShape);
                        this.variableNames.push('scale');
                        scaleSnippet = 'getScaleAtOutCoords()';
                    }
                    this.outputShape = xShape;
                    this.userCode = "\n      void main() {\n        vec4 offset = ".concat(offsetSnippet, ";\n        vec4 scale = ").concat(scaleSnippet, ";\n\n        vec4 x = getXAtOutCoords();\n        vec4 mean = getMeanAtOutCoords();\n        vec4 variance = getVarianceAtOutCoords();\n\n        vec4 inv = scale * inversesqrt(variance + vec4(").concat(varianceEpsilon, "));\n\n        setOutput((x - mean) * inv + offset);\n      }\n    ");
                }
                return BatchNormPackedProgram;
            }());

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var batchNorm = function (_a) {
            var inputs = _a.inputs
                , backend = _a.backend
                , attrs = _a.attrs;
            var x = inputs.x
                , mean = inputs.mean
                , variance = inputs.variance
                , offset = inputs.offset
                , scale = inputs.scale;
            tf.util.assert(mean.shape.length === variance.shape.length, function () {
                return 'Batch normalization gradient requires mean and variance to have ' + 'equal ranks.';
            });
            tf.util.assert(offset == null || mean.shape.length === offset.shape.length, function () {
                return 'Batch normalization gradient requires mean and offset to have ' + 'equal ranks.';
            });
            tf.util.assert(scale == null || mean.shape.length === scale.shape.length, function () {
                return 'Batch normalization gradient requires mean and scale to have ' + 'equal ranks.';
            });
            var varianceEpsilon = attrs.varianceEpsilon;
            if (varianceEpsilon == null) {
                varianceEpsilon = 0.001;
            }
            var finalInputs = [x, mean, variance];
            var offsetShape = null;
            if (offset != null) {
                offsetShape = offset.shape;
                finalInputs.push(offset);
            }
            var scaleShape = null;
            if (scale != null) {
                scaleShape = scale.shape;
                finalInputs.push(scale);
            }
            var program = tf.env().getBool('WEBGL_PACK_NORMALIZATION') ? new BatchNormPackedProgram(x.shape, mean.shape, variance.shape, offsetShape, scaleShape, varianceEpsilon) : new BatchNormProgram(x.shape, mean.shape, variance.shape, offsetShape, scaleShape, varianceEpsilon);
            var output = backend.runWebGLProgram(program, finalInputs, finalInputs[0].dtype);
            return output;
        };
        var batchNormConfig = {
            kernelName: tf.FusedBatchNorm,
            backendName: 'webgl',
            kernelFunc: batchNorm,
        };

        /**
         * @license
         * Copyright 2017 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var SliceProgram = /** @class */
            (function () {
                function SliceProgram(destSize) {
                    this.variableNames = ['source'];
                    this.outputShape = destSize;
                    this.rank = destSize.length;
                    var dtype = getCoordsDataType(this.rank);
                    this.customUniforms = [{
                        name: 'start',
                        arrayIndex: this.rank,
                        type: 'int'
                    }];
                    var sourceCoords = getCoords$1(this.rank);
                    var body;
                    var coordSum = destSize.map(function (_, i) {
                        return "sourceLoc.".concat(coords[i], " = start[").concat(i, "] + coords.").concat(coords[i], ";");
                    });
                    body = "\n        ".concat(dtype, " sourceLoc;\n        ").concat(dtype, " coords = getOutputCoords();\n        ").concat(coordSum.join('\n'), "\n      ");
                    this.userCode = "\n      void main() {\n        ".concat(body, "\n        setOutput(getSource(").concat(sourceCoords, "));\n      }\n    ");
                }
                return SliceProgram;
            }());
        var coords = ['x', 'y', 'z', 'w', 'u', 'v'];
        function getCoords$1(rank) {
            if (rank === 1) {
                return 'sourceLoc';
            } else if (rank <= 6) {
                return coords.slice(0, rank).map(function (x) {
                    return 'sourceLoc.' + x;
                }).join(',');
            } else {
                throw Error("Slicing for rank ".concat(rank, " is not yet supported"));
            }
        }

        /**
         * @license
         * Copyright 2019 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var SlicePackedProgram = /** @class */
            (function () {
                function SlicePackedProgram(destSize) {
                    this.variableNames = ['source'];
                    this.packedInputs = true;
                    this.packedOutput = true;
                    this.outputShape = destSize;
                    this.rank = destSize.length;
                    this.customUniforms = [{
                        name: 'start',
                        arrayIndex: this.rank,
                        type: 'int'
                    }];
                    var dtype = getCoordsDataType(this.rank);
                    var coords = getChannels('coords', this.rank);
                    var sourceLoc = getChannels('sourceLoc', this.rank);
                    var innerDims = this.rank === 1 ? 'sourceLoc' : "vec2(".concat(sourceLoc.slice(-2).join(), ")");
                    var getChannel = "getChannel(getSource(".concat(sourceLoc.join(), "), ").concat(innerDims, ")");
                    var upperRow = "\n      result.x = ".concat(getChannel, ";\n      if (++").concat(coords[this.rank - 1], " < ").concat(destSize[this.rank - 1], ") {\n        ++").concat(sourceLoc[this.rank - 1], ";\n        result.y = ").concat(getChannel, ";\n        --").concat(sourceLoc[this.rank - 1], ";\n      }\n    ");
                    var lowerRow = this.rank === 1 ? '' : "\n      --".concat(coords[this.rank - 1], ";\n      if (++").concat(coords[this.rank - 2], " < ").concat(destSize[this.rank - 2], ") {\n        ++").concat(sourceLoc[this.rank - 2], ";\n        result.z = ").concat(getChannel, ";\n        if (++").concat(coords[this.rank - 1], " < ").concat(destSize[this.rank - 1], ") {\n          ++").concat(sourceLoc[this.rank - 1], ";\n          result.w = ").concat(getChannel, ";\n        }\n      }\n    ");
                    var sourceLocSetup = this.rank <= 4 ? "sourceLoc = coords +\n            ".concat(dtype, "(").concat(destSize.map(function (_, i) {
                        return "start[".concat(i, "]");
                    }).join(), ");") : destSize.map(function (_, i) {
                        return "".concat(sourceLoc[i], " = ").concat(coords[i], " + start[").concat(i, "];");
                    }).join('\n');
                    this.userCode = "\n      void main() {\n        ".concat(dtype, " coords = getOutputCoords();\n        ").concat(dtype, " sourceLoc;\n        ").concat(sourceLocSetup, "\n        vec4 result = vec4(0.);\n        ").concat(upperRow, "\n        ").concat(lowerRow, "\n        setOutput(result);\n      }\n    ");
                }
                return SlicePackedProgram;
            }());

        function shallowSlice(x, begin, size, backend) {
            var xTexData = backend.texData.get(x.dataId);
            var t = backend.makeTensorInfo(size, x.dtype);
            var newTexData = backend.texData.get(t.dataId);
            // Copy texture data from the original tensor.
            Object.assign(newTexData, xTexData);
            newTexData.refCount = 1;
            newTexData.shape = size;
            newTexData.dtype = x.dtype;
            var flatOffset = tf.slice_util.computeFlatOffset(begin, tf.util.computeStrides(x.shape));
            if (xTexData.slice) {
                // We are slicing an already sliced tensor, so we have to accumulate
                // the offset.
                flatOffset += xTexData.slice.flatOffset;
            }
            newTexData.slice = {
                flatOffset: flatOffset,
                // Point to the original dataId, which is used to do ref counting.
                origDataId: xTexData.slice && xTexData.slice.origDataId || x.dataId
            };
            // Increase the ref count for that data bucket.
            var refCount = backend.dataRefCount.get(newTexData.slice.origDataId) || 1;
            backend.dataRefCount.set(newTexData.slice.origDataId, refCount + 1);
            return t;
        }
        function slice(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x;
            var begin = attrs.begin
                , size = attrs.size;
            var _a = __read(tf.slice_util.parseSliceParams(x, begin, size), 2)
                , $begin = _a[0]
                , $size = _a[1];
            tf.slice_util.assertParamsValid(x, $begin, $size);
            if (tf.util.sizeFromShape($size) === 0) {
                return backend.makeTensorInfo($size, x.dtype, []);
            }
            // Run on cpu if dtype is string. For string, the backend represents it
            // as Uint8Array[], where each Uint8Array is a character. Given that the
            // computation is only on the outer array, uploading the whole data onto
            // gpu is wasteful. Also, currently webgl doesn't have a design to
            // upload and retrieve Uint8Array[] between cpu and gpu. Therefore, we
            // just run the kernel on cpu if dtype is string.
            if (backend.shouldExecuteOnCPU([x]) || x.dtype === 'string') {
                var xTexData = backend.texData.get(x.dataId);
                var outValues = sliceImplCPU(xTexData.values, $begin, $size, x.shape, x.dtype);
                return backend.makeTensorInfo($size, x.dtype, outValues);
            }
            var isPacked = backend.texData.get(x.dataId).isPacked;
            var isContinous = tf.slice_util.isSliceContinous(x.shape, $begin, $size);
            if (isPacked || !isContinous) {
                var program = tf.env().getBool('WEBGL_PACK_ARRAY_OPERATIONS') ? new SlicePackedProgram($size) : new SliceProgram($size);
                var customValues = [$begin];
                return backend.runWebGLProgram(program, [x], x.dtype, customValues);
            }
            backend.uploadToGPU(x.dataId);
            return shallowSlice(x, $begin, $size, backend);
        }
        var sliceConfig = {
            kernelName: tf.Slice,
            backendName: 'webgl',
            kernelFunc: slice
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var batchToSpaceND = function (args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x;
            var blockShape = attrs.blockShape
                , crops = attrs.crops;
            tf.util.assert(x.shape.length <= 4, function () {
                return 'batchToSpaceND for rank > 4 with a WebGL backend not ' + 'implemented yet';
            });
            var prod = blockShape.reduce(function (a, b) {
                return a * b;
            });
            var reshaped = tf.backend_util.getReshaped(x.shape, blockShape, prod);
            var permuted = tf.backend_util.getPermuted(reshaped.length, blockShape.length);
            var reshapedPermuted = tf.backend_util.getReshapedPermuted(x.shape, blockShape, prod);
            var sliceBeginCoords = tf.backend_util.getSliceBeginCoords(crops, blockShape.length);
            var sliceSize = tf.backend_util.getSliceSize(reshapedPermuted, crops, blockShape.length);
            var toDispose = [];
            var reshapedIntermediate = reshape({
                inputs: {
                    x: x
                },
                backend: backend,
                attrs: {
                    shape: reshaped
                }
            });
            var transposedIntermediate = transpose({
                inputs: {
                    x: reshapedIntermediate
                },
                backend: backend,
                attrs: {
                    perm: permuted
                }
            });
            var reshapedIntermediate2 = reshape({
                inputs: {
                    x: transposedIntermediate
                },
                backend: backend,
                attrs: {
                    shape: reshapedPermuted
                }
            });
            var sliced = slice({
                inputs: {
                    x: reshapedIntermediate2
                },
                backend: backend,
                attrs: {
                    begin: sliceBeginCoords,
                    size: sliceSize
                }
            });
            toDispose.push(reshapedIntermediate);
            toDispose.push(transposedIntermediate);
            toDispose.push(reshapedIntermediate2);
            toDispose.forEach(function (t) {
                return backend.disposeIntermediateTensorInfo(t);
            });
            return sliced;
        };
        var batchToSpaceNDConfig = {
            kernelName: tf.BatchToSpaceND,
            backendName: 'webgl',
            kernelFunc: batchToSpaceND
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function bincount(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x
                , weights = inputs.weights;
            var size = attrs.size;
            var xVals = backend.readSync(x.dataId);
            var weightsVals = backend.readSync(weights.dataId);
            var outVals = bincountImplCPU(xVals, weightsVals, weights.dtype, weights.shape, size);
            return backend.makeTensorInfo([size], weights.dtype, outVals);
        }
        var bincountConfig = {
            kernelName: tf.Bincount,
            backendName: 'webgl',
            kernelFunc: bincount
        };

        /**
         * @license
         * Copyright 2021 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function broadcastArgs(args) {
            var inputs = args.inputs
                , backend = args.backend;
            var s0 = inputs.s0
                , s1 = inputs.s1;
            var s0Vals = backend.readSync(s0.dataId);
            var s1Vals = backend.readSync(s1.dataId);
            var broadcastShape = tf.backend_util.assertAndGetBroadcastShape(Array.from(s0Vals), Array.from(s1Vals));
            return backend.makeTensorInfo([broadcastShape.length], 'int32', Int32Array.from(broadcastShape));
        }
        var broadcastArgsConfig = {
            kernelName: tf.BroadcastArgs,
            backendName: 'webgl',
            kernelFunc: broadcastArgs
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var NOT_EQUAL = "return float(a != b);";
        var notEqual = binaryKernelFunc({
            opSnippet: NOT_EQUAL,
            cpuKernelImpl: notEqualImplCPU,
            dtype: 'bool'
        });
        var notEqualConfig = {
            kernelName: tf.NotEqual,
            backendName: 'webgl',
            kernelFunc: notEqual,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function real(args) {
            var inputs = args.inputs
                , backend = args.backend;
            var input = inputs.input;
            var inputData = backend.texData.get(input.dataId);
            return identity({
                inputs: {
                    x: inputData.complexTensorInfos.real
                },
                backend: backend
            });
        }
        var realConfig = {
            kernelName: tf.Real,
            backendName: 'webgl',
            kernelFunc: real
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var TO_INT = "return float(int(x));";
        function int(input, backend) {
            var program = new UnaryOpProgram(input.shape, TO_INT);
            var output = backend.runWebGLProgram(program, [input], 'int32');
            return {
                dataId: output.dataId,
                shape: output.shape,
                dtype: output.dtype
            };
        }

        function cast(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x;
            var dtype = attrs.dtype;
            // Casting to complex64.
            if (dtype === 'complex64') {
                if (x.dtype === 'complex64') {
                    return identity({
                        inputs: {
                            x: x
                        },
                        backend: backend
                    });
                }
                // TODO(annxingyuan): Import kernel function once zeros is modularized.
                var zerosTensor = tf__namespace.zeros(x.shape);
                var floatX = cast({
                    inputs: {
                        x: x
                    },
                    backend: backend,
                    attrs: {
                        dtype: 'float32'
                    }
                });
                var result = complex({
                    inputs: {
                        real: floatX,
                        imag: zerosTensor
                    },
                    backend: backend
                });
                zerosTensor.dispose();
                backend.disposeIntermediateTensorInfo(floatX);
                return result;
            }
            // Casting from complex64
            if (x.dtype === 'complex64') {
                var realPart = real({
                    inputs: {
                        input: x
                    },
                    backend: backend
                });
                var result = cast({
                    inputs: {
                        x: realPart
                    },
                    backend: backend,
                    attrs: {
                        dtype: dtype
                    }
                });
                backend.disposeIntermediateTensorInfo(realPart);
                return result;
            }
            if (!tf.util.hasEncodingLoss(x.dtype, dtype)) {
                // We don't change the underlying data, since we cast to higher
                // precision.
                var result = identity({
                    inputs: {
                        x: x
                    },
                    backend: backend
                });
                return {
                    dataId: result.dataId,
                    shape: result.shape,
                    dtype: dtype
                };
            }
            if (backend.shouldExecuteOnCPU([x])) {
                var values = backend.texData.get(x.dataId).values;
                var _a = __read(castImplCPU(values, x.shape, x.dtype, dtype), 3)
                    , resultShape = _a[0]
                    , resultType = _a[1]
                    , resultData = _a[2];
                return backend.makeTensorInfo(resultShape, resultType, resultData);
            }
            if (dtype === 'int32') {
                return int(x, backend);
            }
            if (dtype === 'bool') {
                var zerosTensorInfo = backend.makeTensorInfo([], 'bool', tf.util.getTypedArrayFromDType('bool', 1));
                var binaryInputs = {
                    a: x,
                    b: zerosTensorInfo
                };
                var result = notEqual({
                    inputs: binaryInputs,
                    backend: backend
                });
                backend.disposeIntermediateTensorInfo(zerosTensorInfo);
                return result;
            }
            throw new Error("Error in Cast: failed to cast ".concat(x.dtype, " to ").concat(dtype));
        }
        var castConfig = {
            kernelName: tf.Cast,
            backendName: 'webgl',
            kernelFunc: cast
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var CEIL = "return ceil(x);";
        var ceil = unaryKernelFunc({
            opSnippet: CEIL,
            packedOpSnippet: CEIL,
            cpuKernelImpl: ceilImplCPU
        });
        var ceilConfig = {
            kernelName: tf.Ceil,
            backendName: 'webgl',
            kernelFunc: ceil
        };

        /**
         * @license
         * Copyright 2017 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var ClipProgram = /** @class */
            (function () {
                function ClipProgram(aShape) {
                    this.variableNames = ['A'];
                    this.customUniforms = [{
                        name: 'minVal',
                        type: 'float'
                    }, {
                        name: 'maxVal',
                        type: 'float'
                    }];
                    this.outputShape = aShape;
                    this.userCode = "\n\n      void main() {\n        float value = getAAtOutCoords();\n        if (isnan(value)) {\n          setOutput(value);\n          return;\n        }\n\n        setOutput(clamp(value, minVal, maxVal));\n      }\n    ";
                }
                return ClipProgram;
            }());

        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var ClipPackedProgram = /** @class */
            (function () {
                function ClipPackedProgram(aShape) {
                    this.variableNames = ['A'];
                    this.packedInputs = true;
                    this.packedOutput = true;
                    this.customUniforms = [{
                        name: 'minVal',
                        type: 'float'
                    }, {
                        name: 'maxVal',
                        type: 'float'
                    }];
                    this.outputShape = aShape;
                    this.userCode = "\n      void main() {\n        vec4 value = getAAtOutCoords();\n\n        if (any(isnan(value))) {\n          setOutput(value);\n          return;\n        }\n\n        setOutput(clamp(value, vec4(minVal), vec4(maxVal)));\n      }\n    ";
                }
                return ClipPackedProgram;
            }());

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function clipByValue(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x;
            var clipValueMin = attrs.clipValueMin
                , clipValueMax = attrs.clipValueMax;
            var program;
            if (tf.env().getBool('WEBGL_PACK_CLIP')) {
                program = new ClipPackedProgram(x.shape);
            } else {
                program = new ClipProgram(x.shape);
            }
            var customValues = [[clipValueMin], [clipValueMax]];
            return backend.runWebGLProgram(program, [x], x.dtype, customValues);
        }
        var clipByValueConfig = {
            kernelName: tf.ClipByValue,
            backendName: 'webgl',
            kernelFunc: clipByValue
        };

        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var ComplexAbsProgram = /** @class */
            (function () {
                function ComplexAbsProgram(shape) {
                    this.variableNames = ['real', 'imag'];
                    this.outputShape = shape;
                    this.userCode = "\n      void main() {\n        float re = abs(getRealAtOutCoords());\n        float im = abs(getImagAtOutCoords());\n        float mx = max(re, im);\n\n        // sadly the length function in glsl is not underflow-safe\n        // (at least not on Intel GPUs). So the safe solution is\n        // to ensure underflow-safety in all cases.\n        setOutput(\n          mx == 0.0 ? 0.0 : mx * length(vec2(1, min(re, im)/mx))\n        );\n      }\n    ";
                }
                return ComplexAbsProgram;
            }());

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        // Returns a TensorInfo with the complex shape and the dataId of the
        // underlying part. We need to do this because a reshaped complex tensor is
        // not reflected in its parts.
        function makeComplexComponentTensorInfo(complexTensor, complexPart) {
            return {
                dataId: complexPart.dataId,
                dtype: complexPart.dtype,
                shape: complexTensor.shape
            };
        }
        function complexAbs(args) {
            var inputs = args.inputs
                , backend = args.backend;
            var x = inputs.x;
            var xData = backend.texData.get(x.dataId);
            var program = new ComplexAbsProgram(x.shape);
            var programInputs = [makeComplexComponentTensorInfo(x, xData.complexTensorInfos.real), makeComplexComponentTensorInfo(x, xData.complexTensorInfos.imag),];
            return backend.runWebGLProgram(program, programInputs, programInputs[0].dtype);
        }
        var complexAbsConfig = {
            kernelName: tf.ComplexAbs,
            backendName: 'webgl',
            kernelFunc: complexAbs
        };

        /**
         * @license
         * Copyright 2017 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var ConcatProgram = /** @class */
            (function () {
                // Concats 2d tensors along axis=1. See comments in MathBackendWebGL.concat().
                function ConcatProgram(shapes) {
                    this.outputShape = [];
                    this.outputShape = tf.backend_util.computeOutShape(shapes, 1 /* axis */
                    );
                    this.variableNames = shapes.map(function (_, i) {
                        return "T".concat(i);
                    });
                    var offsets = new Array(shapes.length - 1);
                    offsets[0] = shapes[0][1];
                    for (var i = 1; i < offsets.length; i++) {
                        offsets[i] = offsets[i - 1] + shapes[i][1];
                    }
                    var snippets = ["if (yC < ".concat(offsets[0], ") setOutput(getT0(yR, yC));")];
                    for (var i = 1; i < offsets.length; i++) {
                        var shift = offsets[i - 1];
                        snippets.push("else if (yC < ".concat(offsets[i], ") ") + "setOutput(getT".concat(i, "(yR, yC-").concat(shift, "));"));
                    }
                    var lastIndex = offsets.length;
                    var lastShift = offsets[offsets.length - 1];
                    snippets.push("else setOutput(getT".concat(lastIndex, "(yR, yC-").concat(lastShift, "));"));
                    this.userCode = "\n      void main() {\n        ivec2 coords = getOutputCoords();\n        int yR = coords.x;\n        int yC = coords.y;\n\n        ".concat(snippets.join('\n        '), "\n      }\n    ");
                }
                return ConcatProgram;
            }());

        /**
         * @license
         * Copyright 2019 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var ConcatPackedProgram = /** @class */
            (function () {
                function ConcatPackedProgram(shapes, axis) {
                    this.packedInputs = true;
                    this.packedOutput = true;
                    this.outputShape = [];
                    this.outputShape = tf.backend_util.computeOutShape(shapes, axis);
                    var shape = this.outputShape;
                    var rank = shape.length;
                    var dtype = getCoordsDataType(rank);
                    var coords = getChannels('coords', rank);
                    var channels = ['x', 'y', 'z', 'w', 'u', 'v'].slice(0, rank);
                    this.variableNames = shapes.map(function (_, i) {
                        return "T".concat(i);
                    });
                    var offsets = new Array(shapes.length - 1);
                    offsets[0] = shapes[0][axis];
                    for (var i = 1; i < offsets.length; i++) {
                        offsets[i] = offsets[i - 1] + shapes[i][axis];
                    }
                    var channel = channels[axis];
                    var lastChannels = channels.slice(-2);
                    var allChannels = channels.join();
                    var getValueSnippet = "if (".concat(channel, " < ").concat(offsets[0], ") {\n        return getChannel(\n            getT0(").concat(allChannels, "), vec2(").concat(lastChannels.join(), "));\n        }");
                    for (var i = 1; i < offsets.length; i++) {
                        var shift_1 = offsets[i - 1];
                        // Note: the >= comparison below may seem unnecessary given the check
                        // above but is needed to workaround branch execution issues on some
                        // devices. It makes all the conditions exclusive without relying on
                        // execution order.
                        getValueSnippet += "\n        if (".concat(channel, " < ").concat(offsets[i], "  && ").concat(channel, " >= ").concat(offsets[i - 1], ") {\n          return getChannel(\n            getT").concat(i, "(").concat(shiftedChannels(channels, channel, shift_1), "),\n            vec2(").concat(shiftedChannels(lastChannels, channel, shift_1), "));\n        }");
                    }
                    var lastIndex = offsets.length;
                    var shift = offsets[offsets.length - 1];
                    getValueSnippet += "\n        return getChannel(\n          getT".concat(lastIndex, "(").concat(shiftedChannels(channels, channel, shift), "),\n          vec2(").concat(shiftedChannels(lastChannels, channel, shift), "));");
                    this.userCode = "\n      float getValue(".concat(channels.map(function (x) {
                        return 'int ' + x;
                    }), ") {\n        ").concat(getValueSnippet, "\n      }\n\n      void main() {\n        ").concat(dtype, " coords = getOutputCoords();\n        vec4 result = vec4(getValue(").concat(coords, "), 0., 0., 0.);\n\n        ").concat(coords[rank - 1], " = ").concat(coords[rank - 1], " + 1;\n        if (").concat(coords[rank - 1], " < ").concat(shape[rank - 1], ") {\n          result.g = getValue(").concat(coords, ");\n        }\n\n        ").concat(coords[rank - 2], " = ").concat(coords[rank - 2], " + 1;\n        if (").concat(coords[rank - 2], " < ").concat(shape[rank - 2], ") {\n          result.a = getValue(").concat(coords, ");\n        }\n\n        ").concat(coords[rank - 1], " = ").concat(coords[rank - 1], " - 1;\n        if (").concat(coords[rank - 2], " < ").concat(shape[rank - 2], " &&\n            ").concat(coords[rank - 1], " < ").concat(shape[rank - 1], ") {\n          result.b = getValue(").concat(coords, ");\n        }\n        setOutput(result);\n      }\n    ");
                }
                return ConcatPackedProgram;
            }());
        /**
         * Return an expression for coordinates into a vector where a given channel
         * will be offset by [shift].
         *
         * @param channels the channels to consider
         * @param channel the channel we want shifted
         * @param shift  the amount to subtract from the channel.
         *
         * @returns a string of the form 'x, y-[shift], z' where any one channel can
         * have the shift applied.
         */
        function shiftedChannels(channels, channel, shift) {
            var channelIdx = channels.indexOf(channel);
            var res = channels.map(function (c, idx) {
                if (idx === channelIdx) {
                    return "".concat(c, " - ").concat(shift);
                } else {
                    return c;
                }
            });
            return res.join();
        }

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function imag(args) {
            var inputs = args.inputs
                , backend = args.backend;
            var input = inputs.input;
            var inputData = backend.texData.get(input.dataId);
            return identity({
                inputs: {
                    x: inputData.complexTensorInfos.imag
                },
                backend: backend
            });
        }
        var imagConfig = {
            kernelName: tf.Imag,
            backendName: 'webgl',
            kernelFunc: imag
        };

        function concatImpl(inputs, axis, backend) {
            var e_1, _a;
            var dtype = inputs[0].dtype;
            if (dtype === 'complex64') {
                var reals = inputs.map(function (t) {
                    return real({
                        inputs: {
                            input: t
                        },
                        backend: backend
                    });
                });
                var imags = inputs.map(function (t) {
                    return imag({
                        inputs: {
                            input: t
                        },
                        backend: backend
                    });
                });
                var realConcated = concatImpl(reals, axis, backend);
                var imagConcated = concatImpl(imags, axis, backend);
                var result_1 = complex({
                    inputs: {
                        real: realConcated,
                        imag: imagConcated
                    },
                    backend: backend
                });
                reals.forEach(function (r) {
                    return backend.disposeIntermediateTensorInfo(r);
                });
                imags.forEach(function (i) {
                    return backend.disposeIntermediateTensorInfo(i);
                });
                backend.disposeIntermediateTensorInfo(realConcated);
                backend.disposeIntermediateTensorInfo(imagConcated);
                return result_1;
            }
            var runOnCpu = backend.shouldExecuteOnCPU(inputs);
            // Run on cpu if dtype is string. For string, the backend represents it
            // as Uint8Array[], where each Uint8Array is a character. Given that the
            // computation is only on the outer array, uploading the whole data onto
            // gpu is wasteful. Also, currently webgl doesn't have a design to
            // upload and retrieve Uint8Array[] between cpu and gpu. Therefore, we
            // just run the kernel on cpu if dtype is string.
            if (dtype === 'string') {
                runOnCpu = true;
            }
            if (runOnCpu) {
                // Any concat of n-dimensional tensors across any axis can be reduced to
                // a concatenation of two-dimensional tensors across the axis 1 by first
                // partitioning the axes of the original tensors into those less than the
                // axis to be concatenated and the rest. Then reshape the tensors
                // into a two-dimensional tensor by collapsing these two sets of axes and
                // concatenate the resulting matrices across the axis 1, finally reshaping
                // the result to have the proper shape.
                var tensors2D_1 = inputs.map(function (t) {
                    var innerSize = tf.util.sizeFromShape(t.shape.slice(axis));
                    var shape = [-1, innerSize];
                    return reshape({
                        inputs: {
                            x: t
                        },
                        backend: backend,
                        attrs: {
                            shape: shape
                        }
                    });
                });
                var inputsValShapes = tensors2D_1.map(function (t) {
                    return {
                        vals: backend.readSync(t.dataId),
                        shape: t.shape
                    };
                });
                // Concats 2d tensors along axis=1.
                var outShape_1 = tf.backend_util.computeOutShape(tensors2D_1.map(function (t) {
                    return t.shape;
                }), 1 /* axis */
                );
                var simplyConcat = tensors2D_1[0].shape[0] === 1;
                var outVals = concatImplCPU(inputsValShapes, outShape_1, dtype, simplyConcat);
                var finalOutShape = tf.backend_util.computeOutShape(inputs.map(function (t) {
                    return t.shape;
                }), axis);
                var outInfo = backend.makeTensorInfo(finalOutShape, dtype, outVals);
                tensors2D_1.forEach(function (t) {
                    return backend.disposeIntermediateTensorInfo(t);
                });
                return outInfo;
            }
            // Keep only non-empty tensors (ignore tensors with 0 in their shape).
            var $inputs = inputs.filter(function (t) {
                return tf.util.sizeFromShape(t.shape) > 0;
            });
            var shouldPack = tf.env().getBool('WEBGL_PACK_ARRAY_OPERATIONS') && $inputs[0].shape.length > 1;
            if ($inputs.length === 1) {
                // Clone tensor.
                var program_1 = shouldPack ? new UnaryOpProgram(inputs[0].shape, CLONE) : new UnaryOpPackedProgram(inputs[0].shape, CLONE);
                return backend.runWebGLProgram(program_1, inputs, dtype);
            }
            var maxTexturesInShader = tf.env().getNumber('WEBGL_MAX_TEXTURES_IN_SHADER');
            if ($inputs.length > maxTexturesInShader) {
                var reducedInputs = [];
                for (var i = 0; i < $inputs.length; i += maxTexturesInShader) {
                    var subArray = $inputs.slice(i, i + maxTexturesInShader);
                    reducedInputs.push(concatImpl(subArray, axis, backend));
                }
                var result_2 = concatImpl(reducedInputs, axis, backend);
                try {
                    for (var reducedInputs_1 = __values(reducedInputs), reducedInputs_1_1 = reducedInputs_1.next(); !reducedInputs_1_1.done; reducedInputs_1_1 = reducedInputs_1.next()) {
                        var i = reducedInputs_1_1.value;
                        backend.disposeIntermediateTensorInfo(i);
                    }
                } catch (e_1_1) {
                    e_1 = {
                        error: e_1_1
                    };
                } finally {
                    try {
                        if (reducedInputs_1_1 && !reducedInputs_1_1.done && (_a = reducedInputs_1.return))
                            _a.call(reducedInputs_1);
                    } finally {
                        if (e_1)
                            throw e_1.error;
                    }
                }
                return result_2;
            }
            if (shouldPack) {
                var program_2 = new ConcatPackedProgram($inputs.map(function (t) {
                    return t.shape;
                }), axis);
                return backend.runWebGLProgram(program_2, $inputs, dtype);
            }
            var _b = computeTensors2D($inputs, axis, backend)
                , tensors2D = _b.tensors2D
                , outShape = _b.outShape;
            var program = new ConcatProgram(tensors2D.map(function (t) {
                return t.shape;
            }));
            var result = backend.runWebGLProgram(program, tensors2D, dtype);
            tensors2D.forEach(function (r) {
                return backend.disposeIntermediateTensorInfo(r);
            });
            var reshapedResult = reshape({
                inputs: {
                    x: result
                },
                attrs: {
                    shape: outShape
                },
                backend: backend
            });
            backend.disposeIntermediateTensorInfo(result);
            return reshapedResult;
        }
        function computeTensors2D(inputs, axis, backend) {
            // Any concat of n-dimensional tensors across any axis can be reduced to
            // a concatenation of two-dimensional tensors across the axis 1 by first
            // partitioning the axes of the original tensors into those less than the
            // axis to be concatenated and the rest. Then reshape the tensors
            // into a two-dimensional tensor by collapsing these two sets of axes and
            // concatenate the resulting matrices across the axis 1, finally reshaping
            // the result to have the proper shape.
            var outShape = tf.backend_util.computeOutShape(inputs.map(function (t) {
                return t.shape;
            }), axis);
            var tensors2D = inputs.map(function (x) {
                return reshape({
                    inputs: {
                        x: x
                    },
                    attrs: {
                        shape: [-1, tf.util.sizeFromShape(x.shape.slice(axis))]
                    },
                    backend: backend
                });
            });
            return {
                tensors2D: tensors2D,
                outShape: outShape
            };
        }

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function concat(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var axis = attrs.axis;
            var $axis = tf.util.parseAxisParam(axis, inputs[0].shape)[0];
            var shapes = inputs.map(function (t) {
                return t.shape;
            });
            tf.backend_util.assertParamsConsistent(shapes, $axis);
            var outShape = tf.backend_util.computeOutShape(inputs.map(function (t) {
                return t.shape;
            }), $axis);
            if (tf.util.sizeFromShape(outShape) === 0) {
                return backend.makeTensorInfo(outShape, inputs[0].dtype, []);
            }
            // Keep only non-empty tensors (ignore tensors with 0 in their shape).
            var $inputs = inputs.filter(function (t) {
                return tf.util.sizeFromShape(t.shape) > 0;
            });
            if ($inputs.length === 1) {
                return identity({
                    inputs: {
                        x: $inputs[0]
                    },
                    backend: backend
                });
            }
            return concatImpl($inputs, $axis, backend);
        }
        var concatConfig = {
            kernelName: tf.Concat,
            backendName: 'webgl',
            kernelFunc: concat
        };

        /**
         * @license
         * Copyright 2017 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var Conv2DProgram = /** @class */
            (function () {
                function Conv2DProgram(convInfo, addBias, activation, hasPreluActivationWeights, hasLeakyreluAlpha) {
                    if (addBias === void 0) {
                        addBias = false;
                    }
                    if (activation === void 0) {
                        activation = null;
                    }
                    if (hasPreluActivationWeights === void 0) {
                        hasPreluActivationWeights = false;
                    }
                    if (hasLeakyreluAlpha === void 0) {
                        hasLeakyreluAlpha = false;
                    }
                    this.variableNames = ['x', 'W'];
                    this.outputShape = convInfo.outShape;
                    var padTop = convInfo.padInfo.top;
                    var padLeft = convInfo.padInfo.left;
                    var strideHeight = convInfo.strideHeight;
                    var strideWidth = convInfo.strideWidth;
                    var dilationHeight = convInfo.dilationHeight;
                    var dilationWidth = convInfo.dilationWidth;
                    var filterHeight = convInfo.filterHeight;
                    var filterWidth = convInfo.filterWidth;
                    var inputDepthNearestVec4 = Math.floor(convInfo.inChannels / 4) * 4;
                    var inputDepthVec4Remainder = convInfo.inChannels % 4;
                    var isChannelsLast = convInfo.dataFormat === 'channelsLast';
                    var rowDim = isChannelsLast ? 1 : 2;
                    var colDim = isChannelsLast ? 2 : 3;
                    var channelDim = isChannelsLast ? 3 : 1;
                    var activationSnippet = ''
                        , applyActivationSnippet = '';
                    if (activation) {
                        if (hasPreluActivationWeights) {
                            activationSnippet = "float activation(float a) {\n          float b = getPreluActivationWeightsAtOutCoords();\n          ".concat(activation, "\n        }");
                        } else if (hasLeakyreluAlpha) {
                            activationSnippet = "float activation(float a) {\n          float b = getLeakyreluAlphaAtOutCoords();\n          ".concat(activation, "\n        }");
                        } else {
                            activationSnippet = "\n          float activation(float x) {\n            ".concat(activation, "\n          }\n        ");
                        }
                        applyActivationSnippet = "result = activation(result);";
                    }
                    var addBiasSnippet = addBias ? 'result += getBiasAtOutCoords();' : '';
                    if (addBias) {
                        this.variableNames.push('bias');
                    }
                    if (hasPreluActivationWeights) {
                        this.variableNames.push('preluActivationWeights');
                    }
                    if (hasLeakyreluAlpha) {
                        this.variableNames.push('leakyreluAlpha');
                    }
                    this.userCode = "\n      ".concat(activationSnippet, "\n\n      const ivec2 strides = ivec2(").concat(strideHeight, ", ").concat(strideWidth, ");\n      const ivec2 pads = ivec2(").concat(padTop, ", ").concat(padLeft, ");\n\n      void main() {\n        ivec4 coords = getOutputCoords();\n        int batch = coords[0];\n        int d2 = coords[").concat(channelDim, "];\n\n        ivec2 xRCCorner =\n            ivec2(coords[").concat(rowDim, "], coords[").concat(colDim, "]) * strides - pads;\n        int xRCorner = xRCCorner.x;\n        int xCCorner = xRCCorner.y;\n\n        // Convolve x(?, ?, d1) with w(:, :, d1, d2) to get y(yR, yC, d2).\n        // ? = to be determined. : = across all values in that axis.\n        float dotProd = 0.0;\n        for (int wR = 0; wR < ").concat(filterHeight, "; wR++) {\n          int xR = xRCorner + wR * ").concat(dilationHeight, ";\n\n          if (xR < 0 || xR >= ").concat(convInfo.inHeight, ") {\n            continue;\n          }\n\n          for (int wC = 0; wC < ").concat(filterWidth, "; wC++) {\n            int xC = xCCorner + wC * ").concat(dilationWidth, ";\n\n            if (xC < 0 || xC >= ").concat(convInfo.inWidth, ") {\n              continue;\n            }\n\n            for (int d1 = 0; d1 < ").concat(inputDepthNearestVec4, "; d1 += 4) {\n              vec4 wValues = vec4(\n                getW(wR, wC, d1, d2),\n                getW(wR, wC, d1 + 1, d2),\n                getW(wR, wC, d1 + 2, d2),\n                getW(wR, wC, d1 + 3, d2)\n              );\n\n              if (").concat(isChannelsLast, ") {\n                vec4 xValues = vec4(\n                  getX(batch, xR, xC, d1),\n                  getX(batch, xR, xC, d1 + 1),\n                  getX(batch, xR, xC, d1 + 2),\n                  getX(batch, xR, xC, d1 + 3)\n                );\n                dotProd += dot(xValues, wValues);\n              } else {\n                vec4 xValues = vec4(\n                  getX(batch, d1, xR, xC),\n                  getX(batch, d1 + 1, xR, xC),\n                  getX(batch, d1 + 2, xR, xC),\n                  getX(batch, d1 + 3, xR, xC)\n                );\n                dotProd += dot(xValues, wValues);\n              }\n            }\n\n            if (").concat(inputDepthVec4Remainder === 1, ") {\n\n              if (").concat(isChannelsLast, ") {\n                dotProd +=\n                    getX(batch, xR, xC, ").concat(inputDepthNearestVec4, ") *\n                    getW(wR, wC, ").concat(inputDepthNearestVec4, ", d2);\n              } else {\n                dotProd +=\n                    getX(batch, ").concat(inputDepthNearestVec4, ", xR, xC) *\n                    getW(wR, wC, ").concat(inputDepthNearestVec4, ", d2);\n              }\n\n            } else if (").concat(inputDepthVec4Remainder === 2, ") {\n              vec2 wValues = vec2(\n                getW(wR, wC, ").concat(inputDepthNearestVec4, ", d2),\n                getW(wR, wC, ").concat(inputDepthNearestVec4, " + 1, d2)\n              );\n\n              if (").concat(isChannelsLast, ") {\n                vec2 xValues = vec2(\n                  getX(batch, xR, xC, ").concat(inputDepthNearestVec4, "),\n                  getX(batch, xR, xC, ").concat(inputDepthNearestVec4, " + 1)\n                );\n                dotProd += dot(xValues, wValues);\n              } else {\n                vec2 xValues = vec2(\n                  getX(batch, ").concat(inputDepthNearestVec4, ", xR, xC),\n                  getX(batch, ").concat(inputDepthNearestVec4, " + 1, xR, xC)\n                );\n                dotProd += dot(xValues, wValues);\n              }\n\n            } else if (").concat(inputDepthVec4Remainder === 3, ") {\n              vec3 wValues = vec3(\n                getW(wR, wC, ").concat(inputDepthNearestVec4, ", d2),\n                getW(wR, wC, ").concat(inputDepthNearestVec4, " + 1, d2),\n                getW(wR, wC, ").concat(inputDepthNearestVec4, " + 2, d2)\n              );\n\n              if (").concat(isChannelsLast, ") {\n                vec3 xValues = vec3(\n                  getX(batch, xR, xC, ").concat(inputDepthNearestVec4, "),\n                  getX(batch, xR, xC, ").concat(inputDepthNearestVec4, " + 1),\n                  getX(batch, xR, xC, ").concat(inputDepthNearestVec4, " + 2)\n                );\n                dotProd += dot(xValues, wValues);\n              } else {\n                vec3 xValues = vec3(\n                  getX(batch, ").concat(inputDepthNearestVec4, ", xR, xC),\n                  getX(batch, ").concat(inputDepthNearestVec4, " + 1, xR, xC),\n                  getX(batch, ").concat(inputDepthNearestVec4, " + 2, xR, xC)\n                );\n                dotProd += dot(xValues, wValues);\n              }\n\n            }\n          }\n        }\n\n        float result = dotProd;\n        ").concat(addBiasSnippet, "\n        ").concat(applyActivationSnippet, "\n        setOutput(result);\n      }\n    ");
                }
                return Conv2DProgram;
            }());
        var Conv3DProgram = /** @class */
            (function () {
                function Conv3DProgram(convInfo) {
                    this.variableNames = ['x', 'W'];
                    this.outputShape = convInfo.outShape;
                    var padFront = convInfo.padInfo.front;
                    var padTop = convInfo.padInfo.top;
                    var padLeft = convInfo.padInfo.left;
                    var strideDepth = convInfo.strideDepth;
                    var strideHeight = convInfo.strideHeight;
                    var strideWidth = convInfo.strideWidth;
                    var dilationDepth = convInfo.dilationDepth;
                    var dilationHeight = convInfo.dilationHeight;
                    var dilationWidth = convInfo.dilationWidth;
                    var filterDepth = convInfo.filterDepth;
                    var filterHeight = convInfo.filterHeight;
                    var filterWidth = convInfo.filterWidth;
                    var inputDepthNearestVec4 = Math.floor(convInfo.inChannels / 4) * 4;
                    var inputDepthVec4Remainder = convInfo.inChannels % 4;
                    this.userCode = "\n      const ivec3 strides = ivec3(".concat(strideDepth, ", ").concat(strideHeight, ", ").concat(strideWidth, ");\n      const ivec3 pads = ivec3(").concat(padFront, ", ").concat(padTop, ", ").concat(padLeft, ");\n\n      void main() {\n        ivec5 coords = getOutputCoords();\n        int batch = coords.x;\n        int d2 = coords.u;\n\n        ivec3 xFRCCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads;\n        int xFCorner = xFRCCorner.x;\n        int xRCorner = xFRCCorner.y;\n        int xCCorner = xFRCCorner.z;\n\n        // Convolve x(?, ?, ?, d1) with w(:, :, :, d1, d2) to get\n        // y(yF, yR, yC, d2). ? = to be determined. : = across all\n        // values in that axis.\n        float dotProd = 0.0;\n        for (int wF = 0; wF < ").concat(filterDepth, "; wF++) {\n          int xF = xFCorner + wF * ").concat(dilationDepth, ";\n\n          if (xF < 0 || xF >= ").concat(convInfo.inDepth, ") {\n            continue;\n          }\n\n          for (int wR = 0; wR < ").concat(filterHeight, "; wR++) {\n            int xR = xRCorner + wR * ").concat(dilationHeight, ";\n\n            if (xR < 0 || xR >= ").concat(convInfo.inHeight, ") {\n              continue;\n            }\n\n            for (int wC = 0; wC < ").concat(filterWidth, "; wC++) {\n              int xC = xCCorner + wC * ").concat(dilationWidth, ";\n\n              if (xC < 0 || xC >= ").concat(convInfo.inWidth, ") {\n                continue;\n              }\n\n              for (int d1 = 0; d1 < ").concat(inputDepthNearestVec4, "; d1 += 4) {\n                vec4 xValues = vec4(\n                  getX(batch, xF, xR, xC, d1),\n                  getX(batch, xF, xR, xC, d1 + 1),\n                  getX(batch, xF, xR, xC, d1 + 2),\n                  getX(batch, xF, xR, xC, d1 + 3)\n                );\n                vec4 wValues = vec4(\n                  getW(wF, wR, wC, d1, d2),\n                  getW(wF, wR, wC, d1 + 1, d2),\n                  getW(wF, wR, wC, d1 + 2, d2),\n                  getW(wF, wR, wC, d1 + 3, d2)\n                );\n\n                dotProd += dot(xValues, wValues);\n              }\n\n              if (").concat(inputDepthVec4Remainder === 1, ") {\n                dotProd +=\n                  getX(batch, xF, xR, xC, ").concat(inputDepthNearestVec4, ") *\n                  getW(wF, wR, wC, ").concat(inputDepthNearestVec4, ", d2);\n              } else if (").concat(inputDepthVec4Remainder === 2, ") {\n                vec2 xValues = vec2(\n                  getX(batch, xF, xR, xC, ").concat(inputDepthNearestVec4, "),\n                  getX(batch, xF, xR, xC, ").concat(inputDepthNearestVec4, " + 1)\n                );\n                vec2 wValues = vec2(\n                  getW(wF, wR, wC, ").concat(inputDepthNearestVec4, ", d2),\n                  getW(wF, wR, wC, ").concat(inputDepthNearestVec4, " + 1, d2)\n                );\n                dotProd += dot(xValues, wValues);\n              } else if (").concat(inputDepthVec4Remainder === 3, ") {\n                vec3 xValues = vec3(\n                  getX(batch, xF, xR, xC, ").concat(inputDepthNearestVec4, "),\n                  getX(batch, xF, xR, xC, ").concat(inputDepthNearestVec4, " + 1),\n                  getX(batch, xF, xR, xC, ").concat(inputDepthNearestVec4, " + 2)\n                );\n                vec3 wValues = vec3(\n                  getW(wF, wR, wC, ").concat(inputDepthNearestVec4, ", d2),\n                  getW(wF, wR, wC, ").concat(inputDepthNearestVec4, " + 1, d2),\n                  getW(wF, wR, wC, ").concat(inputDepthNearestVec4, " + 2, d2)\n                );\n                dotProd += dot(xValues, wValues);\n              }\n            }\n          }\n        }\n        setOutput(dotProd);\n      }\n    ");
                }
                return Conv3DProgram;
            }());

        /**
         * @license
         * Copyright 2022 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var Conv2DPackedProgram = /** @class */
            (function () {
                function Conv2DPackedProgram(convInfo, addBias, activation, hasPreluActivation, hasLeakyReluAlpha) {
                    if (addBias === void 0) {
                        addBias = false;
                    }
                    if (activation === void 0) {
                        activation = null;
                    }
                    if (hasPreluActivation === void 0) {
                        hasPreluActivation = false;
                    }
                    if (hasLeakyReluAlpha === void 0) {
                        hasLeakyReluAlpha = false;
                    }
                    this.variableNames = ['x', 'W'];
                    this.packedInputs = true;
                    this.packedOutput = true;
                    this.customUniforms = [{
                        name: 'pads',
                        type: 'ivec2'
                    }, {
                        name: 'strides',
                        type: 'ivec2'
                    }, {
                        name: 'dilations',
                        type: 'ivec2'
                    }, {
                        name: 'inDims',
                        type: 'ivec2'
                    },];
                    this.outputShape = convInfo.outShape;
                    this.enableShapeUniforms = useShapeUniforms(this.outputShape.length);
                    var padLeft = convInfo.padInfo.left;
                    var strideWidth = convInfo.strideWidth;
                    var dilationWidth = convInfo.dilationWidth;
                    var filterHeight = convInfo.filterHeight;
                    var filterWidth = convInfo.filterWidth;
                    var texelsAcross = filterWidth;
                    var mainLoop = "\n       int xR; int xC; int xCOffset;\n       vec4 wTexel; vec4 previous; vec4 final;";
                    for (var c = 0; c < filterWidth; c++) {
                        mainLoop += "\n           vec4 xTexelC".concat(c * 2, ";\n           int xTexelC").concat(c * 2, "Ready;\n           vec4 xTexelC").concat(c * 2 + 1, ";\n           int xTexelC").concat(c * 2 + 1, "Ready;\n           vec4 xC").concat(c, ";");
                    }
                    /**
                     * This vectorized implementation works by gathering the values needed for
                     * each output channel's dot product into vec4's and then multiplying them
                     * all together (this happens in the final double for-loop below). Most of
                     * the main loop consists of constructing these vec4's with the minimum
                     * number of texture2D calls, which means making use of all four returned
                     * values from a texture2D call at once.
                     */
                    mainLoop += "\n     for (int r = 0; r < ".concat(filterHeight, "; r++) {\n      for (int d1 = 0; d1 < ").concat(convInfo.inChannels, "; d1 += 2) {\n       ");
                    for (var c = 0; c < filterWidth; c++) {
                        mainLoop += "\n           xTexelC".concat(c * 2, " = vec4(0.0);\n           xTexelC").concat(c * 2, "Ready = 0;\n           xTexelC").concat(c * 2 + 1, " = vec4(0.0);\n           xTexelC").concat(c * 2 + 1, "Ready = 0;\n           xC").concat(c, " = vec4(0.0);");
                    }
                    mainLoop += "\n         xR = xRCorner + r * dilations[0];\n         if (xR >=0 && xR < inDims[0]) {\n       ";
                    for (var texelC = 0; texelC < (texelsAcross + 1) / 2; texelC++) {
                        var colIndex = texelC * 2;
                        mainLoop += "\n           xC = xCCorner + ".concat(colIndex * dilationWidth, ";\n           ");
                        if (strideWidth === 1) {
                            if (colIndex < filterWidth) {
                                // If padding is odd, the outer texels have to be composed.
                                if (padLeft % 2 === 1) {
                                    // TODO: Ensure vec4 previous does not result in redundant sample,
                                    // and avoid setting xTexelRC's that exceed the boundary in the
                                    // first place rather than resetting them to vec4(0)).
                                    // To compute xCOffset:
                                    // - If padding is odd, we must add 1 to ensure we ask for an
                                    // even-numbered row.
                                    // - We subtract 2 to access the previous texel.
                                    mainLoop += "\n                 xCOffset = xC + 1;\n                 if (xCOffset >= 0 && xCOffset < inDims[1] && xTexelC".concat(colIndex, "Ready == 0) {\n                   xTexelC").concat(colIndex, " = getX(batch, xR, xCOffset, d1);\n\n                   // Need to manually clear unused channels in case\n                   // we're reading from recycled texture.\n                   if (xCOffset + 1 >= inDims[1]) {\n                     xTexelC").concat(colIndex, ".zw = vec2(0.0);\n                   }\n                   xTexelC").concat(colIndex, "Ready = 1;\n                 }\n               ");
                                    // This texel has been read in previous iteration if the dilation
                                    // is 1.
                                    if (dilationWidth === 1 && colIndex > 0) {
                                        mainLoop += "\n                 xC".concat(colIndex, " = vec4(xTexelC").concat(colIndex - 2, ".zw, xTexelC").concat(colIndex, ".xy);\n                 ");
                                    } else {
                                        mainLoop += "\n                   xCOffset = xC + 1 - 2;\n\n                   if (xCOffset >= 0 && xCOffset < inDims[1]) {\n                     previous = getX(batch, xR, xCOffset, d1);\n\n                     // Need to manually clear unused channels in case\n                     // we're reading from recycled texture.\n                     if (xCOffset + 1 >= inDims[1]) {\n                       previous.zw = vec2(0.0);\n                     }\n\n                     xC".concat(colIndex, " = vec4(previous.zw, xTexelC").concat(colIndex, ".xy);\n                   } else {\n                     xC").concat(colIndex, " = vec4(0.0, 0.0, xTexelC").concat(colIndex, ".xy);\n                   }\n                   ");
                                    }
                                } else {
                                    // Padding is even, so xRC corresponds to a single texel.
                                    mainLoop += "\n                 if (xC >= 0 && xC < inDims[1] && xTexelC".concat(colIndex, "Ready == 0) {\n                   xTexelC").concat(colIndex, " = getX(batch, xR, xC, d1);\n                   if (xC + 1 >= inDims[1]) {\n                     xTexelC").concat(colIndex, ".zw = vec2(0.0);\n                   }\n                   xTexelC").concat(colIndex, "Ready = 1;\n                 }\n\n                 xC").concat(colIndex, " = xTexelC").concat(colIndex, ";\n                 ");
                                }
                                if (colIndex + 1 < filterWidth) {
                                    // If dilation is even, the second entry should match the first
                                    // (either both are composed or both are single samples). But if
                                    // dilation is odd, then the second entry should be the opposite
                                    // of the first (if the first is composed, the second is a single
                                    // sample, and vice versa.)
                                    var nextTexelOffset = padLeft % 2 === 0 ? tf.util.nearestLargerEven(dilationWidth) : dilationWidth;
                                    if ((dilationWidth % 2 === 0 && padLeft % 2 === 1) || (dilationWidth % 2 !== 0 && padLeft % 2 !== 1)) {
                                        mainLoop += "\n                   xCOffset = xC + imod(pads[1], 2) + ".concat(nextTexelOffset, ";\n\n                   if (xCOffset >= 0 && xCOffset < inDims[1] && xTexelC").concat(colIndex + 1, "Ready == 0) {\n                     xTexelC").concat(colIndex + 1, " = getX(batch, xR, xCOffset, d1);\n\n                     // Need to manually clear unused channels in case\n                     // we're reading from recycled texture.\n                     if (xCOffset + 1 >= inDims[1]) {\n                       xTexelC").concat(colIndex + 1, ".zw = vec2(0.0);\n                     }\n                     xTexelC").concat(colIndex + 1, "Ready = 1;\n                   }\n                   ");
                                        // If dilation > 1 then the xRC's will not be able to share any
                                        // values, so each xRC will require two unique calls to getX.
                                        if (dilationWidth > 1) {
                                            mainLoop += "\n                     xCOffset -= 2;\n                     if (xCOffset >= 0 && xCOffset < inDims[1]) {\n                      previous = getX(batch, xR, xCOffset, d1);\n                      xC".concat(colIndex + 1, " = vec4(previous.zw, xTexelC").concat(colIndex + 1, ".xy);\n                     } else {\n                      xC").concat(colIndex + 1, " = vec4(0.0, 0.0, xTexelC").concat(colIndex + 1, ".xy);\n                     }\n                     ");
                                        } else {
                                            mainLoop += "\n                     xC".concat(colIndex + 1, " = vec4(xTexelC").concat(colIndex, ".zw, xTexelC").concat(colIndex + 1, ".xy);\n                     ");
                                        }
                                    } else {
                                        // If dilation is 1 and padding is odd, we have already read the
                                        // texel when constructing the previous x value. Here we can
                                        // simply skip the texture read.
                                        if (nextTexelOffset === 1) {
                                            mainLoop += "\n                     xC".concat(colIndex + 1, " = xTexelC").concat(colIndex, ";\n                     ");
                                        } else {
                                            mainLoop += "\n                     xCOffset = xC + ".concat(nextTexelOffset, ";\n\n                     if (xCOffset >= 0 && xCOffset < inDims[1] && xTexelC").concat(colIndex + 1, "Ready == 0) {\n                       xTexelC").concat(colIndex + 1, " = getX(batch, xR, xCOffset, d1);\n                       if (xCOffset + 1 >= inDims[1]) {\n                         xTexelC").concat(colIndex + 1, ".zw = vec2(0.0);\n                       }\n                       xTexelC").concat(colIndex + 1, "Ready = 1;\n                     }\n\n                     xC").concat(colIndex + 1, " = xTexelC").concat(colIndex + 1, ";\n                     ");
                                        }
                                    }
                                }
                            }
                        } else {
                            // stride === 2
                            if (colIndex < filterWidth) {
                                // Depending on whether padLeft is even or odd, we want either the
                                // xy or zw channels from X texels for xC${colIndex}. If padLeft is
                                // even, xC${colIndex +1} is simply the zw channels of texels we've
                                // already sampled. But if padLeft is odd, xC{$c + 1}.zw will
                                // need to come from the xy channels of a new texel, hence the `
                                // vec4
                                // final` initialized below.
                                if (padLeft % 2 === 1) {
                                    mainLoop += "\n                 xCOffset = xC + 1 - strides[1];\n                 if(xCOffset >= 0 && xCOffset < inDims[1] && xTexelC".concat(colIndex, "Ready == 0) {\n                   xTexelC").concat(colIndex, " = getX(batch, xR, xCOffset, d1);\n                   // Need to manually clear unused channels in case\n                   // we're reading from recycled texture.\n                   if (xCOffset + 1 >= inDims[1]) {\n                     xTexelC").concat(colIndex, ".zw = vec2(0.0);\n                   }\n                   xTexelC").concat(colIndex, "Ready = 1;\n                 }\n\n                 if(xC + 1 >= 0 && xC + 1 < inDims[1] && xTexelC").concat(colIndex + 1, "Ready == 0) {\n                   xTexelC").concat(colIndex + 1, " = getX(batch, xR, xC + 1, d1);\n                   // Need to manually clear unused channels in case\n                   // we're reading from recycled texture.\n                   if (xC + 2 >= inDims[1]) {\n                     xTexelC").concat(colIndex + 1, ".zw = vec2(0.0);\n                   }\n                   xTexelC").concat(colIndex + 1, "Ready = 1;\n                 }\n\n                 xC").concat(colIndex, " = vec4(xTexelC").concat(colIndex, ".zw, xTexelC").concat(colIndex + 1, ".zw);\n               ");
                                    if (colIndex + 1 < filterWidth) {
                                        mainLoop += "\n                   final = vec4(0.0);\n                   xCOffset = xC + 1 + strides[1];\n                   if(xCOffset >= 0 && xCOffset < inDims[1]) {\n                     final = getX(batch, xR, xCOffset, d1);\n                   }\n                   xC".concat(colIndex + 1, " = vec4(xTexelC").concat(colIndex + 1, ".xy, final.xy);\n                 ");
                                    }
                                } else {
                                    mainLoop += "\n                 if(xC >= 0 && xC < inDims[1] && xTexelC".concat(colIndex, "Ready == 0) {\n                   xTexelC").concat(colIndex, " = getX(batch, xR, xC, d1);\n                   if (xC + 1 >= inDims[1]) {\n                     xTexelC").concat(colIndex, ".zw = vec2(0.0);\n                   }\n                   xTexelC").concat(colIndex, "Ready = 1;\n                 }\n\n                 xCOffset = xC + strides[1];\n                 if(xCOffset >= 0 && xCOffset < inDims[1] && xTexelC").concat(colIndex + 1, "Ready == 0) {\n                   xTexelC").concat(colIndex + 1, " = getX(batch, xR, xCOffset, d1);\n                   if (xCOffset + 1 >= inDims[1]) {\n                     xTexelC").concat(colIndex + 1, ".zw = vec2(0.);\n                   }\n                   xTexelC").concat(colIndex + 1, "Ready = 1;\n                 }\n\n                 xC").concat(colIndex, " = vec4(\n                   xTexelC").concat(colIndex, ".xy, xTexelC").concat(colIndex + 1, ".xy);\n               ");
                                    if (colIndex + 1 < filterWidth) {
                                        mainLoop += "\n                   xC".concat(colIndex + 1, " = vec4(xTexelC").concat(colIndex, ".zw, xTexelC").concat(colIndex + 1, ".zw);\n                 ");
                                    }
                                }
                            }
                        }
                        // localize the dotProd accumulation within the loop, the theory is for
                        // GPU with limited cache, accumulate sum across large amount of
                        // veriables will cause lots of cache misses. (i.e. 5x5 filter will have
                        // 50 variables)
                        if (colIndex < filterWidth) {
                            mainLoop += "\n             wTexel = getW(r, ".concat(colIndex, ", d1, d2);\n             dotProd += xC").concat(colIndex, ".xxzz * vec4(wTexel.xy, wTexel.xy);\n             if(d1 + 1 < ").concat(convInfo.inChannels, ") {\n               dotProd += xC").concat(colIndex, ".yyww * vec4(wTexel.zw, wTexel.zw);\n             }\n           ");
                            if (colIndex + 1 < filterWidth) {
                                mainLoop += "\n               wTexel = getW(r, ".concat(colIndex + 1, ", d1, d2);\n               dotProd += xC").concat(colIndex + 1, ".xxzz * vec4(wTexel.xy, wTexel.xy);\n               if(d1 + 1 < ").concat(convInfo.inChannels, ") {\n                 dotProd += xC").concat(colIndex + 1, ".yyww * vec4(wTexel.zw, wTexel.zw);\n               }\n             ");
                            }
                        }
                    }
                    mainLoop += "\n     }\n   ";
                    mainLoop += "\n     }\n   ";
                    mainLoop += "\n     }\n   ";
                    var activationSnippet = ''
                        , applyActivationSnippet = '';
                    if (activation) {
                        if (hasPreluActivation) {
                            activationSnippet = "vec4 activation(vec4 a) {\n           vec4 b = getPreluActivationWeightsAtOutCoords();\n           ".concat(activation, "\n         }");
                        } else if (hasLeakyReluAlpha) {
                            activationSnippet = "vec4 activation(vec4 a) {\n           vec4 b = getLeakyreluAlphaAtOutCoords();\n           ".concat(activation, "\n         }");
                        } else {
                            activationSnippet = "vec4 activation(vec4 x) {\n           ".concat(activation, "\n         }");
                        }
                        applyActivationSnippet = "result = activation(result);";
                    }
                    var addBiasSnippet = addBias ? 'result += getBiasAtOutCoords();' : '';
                    if (addBias) {
                        this.variableNames.push('bias');
                    }
                    if (hasPreluActivation) {
                        this.variableNames.push('preluActivationWeights');
                    }
                    if (hasLeakyReluAlpha) {
                        this.variableNames.push('leakyreluAlpha');
                    }
                    this.userCode = "\n       ".concat(activationSnippet, "\n\n       void main() {\n         ivec4 coords = getOutputCoords();\n         int batch = coords.x;\n         ivec2 xRCCorner = coords.yz * strides - pads;\n         int d2 = coords.w;\n         int xRCorner = xRCCorner.x;\n         int xCCorner = xRCCorner.y;\n\n         //intialize dotProd with a small epsilon seems to reduce GPU accuracy loss.\n         vec4 dotProd = vec4(0.000000000000001);\n\n         ").concat(mainLoop, "\n\n         vec4 result = dotProd - vec4(0.000000000000001);\n         ").concat(addBiasSnippet, "\n         ").concat(applyActivationSnippet, "\n         setOutput(result);\n       }\n     ");
                }
                return Conv2DPackedProgram;
            }());

        /**
         * @license
         * Copyright 2019 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var Im2ColPackedProgram = /** @class */
            (function () {
                function Im2ColPackedProgram(outputShape, convInfo) {
                    this.variableNames = ['A'];
                    this.packedInputs = true;
                    this.packedOutput = true;
                    this.customUniforms = [{
                        name: 'inputShape',
                        type: 'ivec4'
                    }, {
                        name: 'pad',
                        type: 'ivec2'
                    }, {
                        name: 'stride',
                        type: 'ivec2'
                    }, {
                        name: 'dilation',
                        type: 'ivec2'
                    }, {
                        name: 'inChannels',
                        type: 'int'
                    }, {
                        name: 'itemsPerBlockRow',
                        type: 'int'
                    }, {
                        name: 'outWidth',
                        type: 'int'
                    },];
                    this.outputShape = outputShape;
                    this.enableShapeUniforms = useShapeUniforms(this.outputShape.length);
                    var dataFormat = convInfo.dataFormat;
                    var glsl = getGlslDifferences();
                    var isChannelsLast = dataFormat === 'channelsLast';
                    var rowDim = isChannelsLast ? 1 : 2;
                    var colDim = isChannelsLast ? 2 : 3;
                    var boundsCheckingSnippet = this.enableShapeUniforms ? 'if(blockIndex < outShape[2] && pos < outShape[1]) {' : "if(blockIndex < ".concat(outputShape[2], " && pos < ").concat(outputShape[1], ") {");
                    var unrolled = "";
                    for (var row = 0; row <= 1; row++) {
                        for (var col = 0; col <= 1; col++) {
                            unrolled += "\n          blockIndex = rc.z + ".concat(col, ";\n          pos = rc.y + ").concat(row, ";\n\n          ").concat(boundsCheckingSnippet, "\n            offsetY = int(blockIndex / outWidth) * stride[0] - pad[0];\n            d0 = offsetY + dilation[0] * (pos / itemsPerBlockRow);\n\n            if(d0 < inputShape[").concat(rowDim, "] && d0 >= 0) {\n              // Use custom imod instead mod. On Intel GPU, mod may generate\n              // unexpected value.\n              // https://github.com/tensorflow/tfjs/issues/5447\n              offsetX = imod(blockIndex, outWidth) * stride[1] - pad[1];\n              d1 = offsetX + dilation[1] * (imod(pos, itemsPerBlockRow) /\n                  inChannels);\n\n              if(d1 < inputShape[").concat(colDim, "] && d1 >= 0) {\n\n                ch = imod(pos, inChannels);\n\n                if (").concat(isChannelsLast, ") {\n                  innerDims = vec2(d1, ch);\n                  result[").concat(row * 2 + col, "] = getChannel(\n                    getA(rc.x, d0, int(innerDims.x),\n                    int(innerDims.y)), innerDims);\n                } else {\n                  innerDims = vec2(d0, d1);\n                  result[").concat(row * 2 + col, "] = getChannel(\n                    getA(rc.x, ch, int(innerDims.x),\n                    int(innerDims.y)), innerDims);\n                }\n              }\n            }\n          }\n        ");
                        }
                    }
                    this.userCode = "\n      void main() {\n        ivec3 rc = getOutputCoords();\n\n        vec4 result = vec4(0);\n\n        int blockIndex, pos, offsetY, d0, offsetX, d1, ch;\n        vec2 innerDims;\n\n        ".concat(unrolled, "\n\n        ").concat(glsl.output, " = result;\n      }\n    ");
                }
                return Im2ColPackedProgram;
            }());

        // Both conv2dByMatMul and conv2dWithIm2Row fuse height and width into one
        // dimension to compute batchMatMul, so bias and activation weights are also
        // supposed to fuse the two dimensions into one.
        //
        // This function computes the target shape for fusing height and width
        // dimensions. Returning null means the shape is already compatible.
        //
        // Even though the bias is not supposed to be a 3-D or a 4-D (including
        // batch) tensor and PReLU activiation weights is not supposed to be a 4-D
        // tensor, we still need to support them, because we haven't disabled
        // them for NHWC format.
        // https://github.com/tensorflow/tfjs/blob/b53bd47e880367ae57493f0ea628abaf08db2d5d/tfjs-core/src/ops/fused/conv2d.ts#L181-L196
        function getShapeForBatchMatMul(shape, isChannelsLast) {
            var length = shape.length;
            if (length >= 3) {
                return isChannelsLast ? __spreadArray(__spreadArray([], __read(shape.slice(0, -3)/* batch */
                ), false), [shape[length - 3] * shape[length - 2]/* height * width */
                    , shape[length - 1]/* channel */
                ], false) : __spreadArray(__spreadArray([], __read(shape.slice(0, -3)/* batch */
                ), false), [shape[length - 3]/* channel */
                    , shape[length - 2] * shape[length - 1]/* height * width */
                ], false);
            } else if (!isChannelsLast && length === 1 && shape[0] > 1) {
                return [shape[0], 1];
            } else {
                return null;
            }
        }
        // For 1x1 kernels that iterate through every point in the input, convolution
        // can be expressed as matrix multiplication (without need for memory
        // remapping).
        function conv2dByMatMul(_a) {
            var e_1, _b;
            var x = _a.x
                , filter = _a.filter
                , convInfo = _a.convInfo
                , backend = _a.backend
                , _c = _a.bias
                , bias = _c === void 0 ? null : _c
                , _d = _a.preluActivationWeights
                , preluActivationWeights = _d === void 0 ? null : _d
                , _e = _a.leakyreluAlpha
                , leakyreluAlpha = _e === void 0 ? 0 : _e
                , _f = _a.activation
                , activation = _f === void 0 ? null : _f;
            // Reshapes conv2D input to 2D tensors, uses matMul and then reshape the
            // result from 2D to 4D.
            var xShape = x.shape;
            var xTexData = backend.texData.get(x.dataId);
            var sharedMatMulDim = convInfo.inChannels;
            var outerShapeX = xShape[0] * xShape[1] * xShape[2];
            var outerShapeFilter = convInfo.outChannels;
            var isChannelsLast = convInfo.dataFormat === 'channelsLast';
            var transposeA = false;
            var transposeB = false;
            var out;
            var intermediates = [];
            if (preluActivationWeights != null) {
                var targetShape = getShapeForBatchMatMul(preluActivationWeights.shape, isChannelsLast);
                if (targetShape != null) {
                    preluActivationWeights = reshape({
                        inputs: {
                            x: preluActivationWeights
                        },
                        backend: backend,
                        attrs: {
                            shape: targetShape
                        }
                    });
                    intermediates.push(preluActivationWeights);
                }
            }
            if (bias != null) {
                var targetShape = getShapeForBatchMatMul(bias.shape, isChannelsLast);
                if (targetShape != null) {
                    bias = reshape({
                        inputs: {
                            x: bias
                        },
                        backend: backend,
                        attrs: {
                            shape: targetShape
                        }
                    });
                    intermediates.push(bias);
                }
            }
            // TODO: Once reduction ops are packed, batchMatMul will always be packed
            // and we can remove this condition.
            var batchMatMulWillBeUnpacked = (outerShapeX === 1 || outerShapeFilter === 1) && sharedMatMulDim > MATMUL_SHARED_DIM_THRESHOLD;
            // The algorithm in the if condition assumes (1) the output will be packed,
            // (2) x is packed, (3) x isChannelsLast, (4)  x's packed texture is already
            // on GPU, (5) col is odd, (6) the width, height and inChannels are the same
            // for xTexData.shape and xShape.
            var canOptimize = !batchMatMulWillBeUnpacked && xTexData.isPacked && isChannelsLast && xTexData.texture != null && xShape[2] % 2 !== 0 && tf.util.arraysEqual(xTexData.shape.slice(-3), xShape.slice(-3));
            if (canOptimize) {
                // We avoid expensive packed 2x2 reshape by padding col count to next,
                // even number. When col is odd, the result of packed batchMatMul is
                // the same (has the same texture layout and and values in the texture) as
                // it is for next even col. We make the odd-cols tensor to look like
                // even-cols tensor before the operation and, after the batchMatMul,
                // fix the even-cols result to have odd number of cols.
                var targetShape = xShape[0] * xShape[1] * (xShape[2] + 1);
                var xReshaped_1 = {
                    dataId: x.dataId,
                    shape: [1, targetShape, convInfo.inChannels],
                    dtype: x.dtype
                };
                // xTexData.shape gets referenced from GPGPUBinary.inShapeInfos.
                // Decrementing col count, after batchMatMul->...->compileProgram leads to
                // invalid col count within the reference in GPGPUBinary.inShapeInfos.
                // Alternative fix would be to provide a copy to GPGPUBinary.inShapeInfos
                // in compileProgram method, but that would affect compilation of all
                // programs - instead, provide a copy here, with even col count, before
                // calling batchMatMul->...->compileProgram and after that, the original
                // xTexData.shape is restored.
                var originalXTexDataShape = xTexData.shape;
                xTexData.shape = xTexData.shape.slice();
                xTexData.shape[xTexData.shape.length - 2]++;
                tf.util.assert(isReshapeFree(xTexData.shape, xReshaped_1.shape), function () {
                    return "packed reshape ".concat(xTexData.shape, " to ").concat(xReshaped_1.shape, " isn't free");
                });
                var filterReshaped = reshape({
                    inputs: {
                        x: filter
                    },
                    backend: backend,
                    attrs: {
                        shape: [1, convInfo.inChannels, convInfo.outChannels]
                    }
                });
                intermediates.push(filterReshaped);
                var pointwiseConv = batchMatMulImpl({
                    a: xReshaped_1,
                    b: filterReshaped,
                    backend: backend,
                    transposeA: transposeA,
                    transposeB: transposeB,
                    bias: bias,
                    activation: activation,
                    preluActivationWeights: preluActivationWeights,
                    leakyreluAlpha: leakyreluAlpha
                });
                var pointwiseConvTexData = backend.texData.get(pointwiseConv.dataId);
                tf.util.assert(pointwiseConvTexData.isPacked, function () {
                    return 'batchMatMul result is expected to be packed';
                });
                // Restore the input shape to original.
                xTexData.shape = originalXTexDataShape;
                // Set the output shape - there is no need for expensive reshape as data
                // layout is already correct.
                pointwiseConvTexData.shape = convInfo.outShape;
                out = identity({
                    inputs: {
                        x: pointwiseConv
                    },
                    backend: backend
                });
                out.shape = convInfo.outShape;
                intermediates.push(pointwiseConv);
            } else {
                var numCols = convInfo.outHeight * convInfo.outWidth;
                var xReshaped = reshape({
                    inputs: {
                        x: x
                    },
                    backend: backend,
                    attrs: {
                        shape: isChannelsLast ? [convInfo.batchSize, numCols, convInfo.inChannels] : [convInfo.batchSize, convInfo.inChannels, numCols]
                    }
                });
                var filterReshaped = reshape({
                    inputs: {
                        x: filter
                    },
                    backend: backend,
                    attrs: {
                        shape: [1, convInfo.inChannels, convInfo.outChannels]
                    }
                });
                var result = batchMatMulImpl({
                    a: isChannelsLast ? xReshaped : filterReshaped,
                    b: isChannelsLast ? filterReshaped : xReshaped,
                    transposeA: !isChannelsLast,
                    transposeB: transposeB,
                    backend: backend,
                    bias: bias,
                    activation: activation,
                    preluActivationWeights: preluActivationWeights,
                    leakyreluAlpha: leakyreluAlpha
                });
                out = reshape({
                    inputs: {
                        x: result
                    },
                    backend: backend,
                    attrs: {
                        shape: convInfo.outShape
                    }
                });
                intermediates.push(xReshaped);
                intermediates.push(filterReshaped);
                intermediates.push(result);
            }
            try {
                for (var intermediates_1 = __values(intermediates), intermediates_1_1 = intermediates_1.next(); !intermediates_1_1.done; intermediates_1_1 = intermediates_1.next()) {
                    var i = intermediates_1_1.value;
                    backend.disposeIntermediateTensorInfo(i);
                }
            } catch (e_1_1) {
                e_1 = {
                    error: e_1_1
                };
            } finally {
                try {
                    if (intermediates_1_1 && !intermediates_1_1.done && (_b = intermediates_1.return))
                        _b.call(intermediates_1);
                } finally {
                    if (e_1)
                        throw e_1.error;
                }
            }
            return out;
        }
        // Implements the im2row algorithm as outlined in "High Performance
        // Convolutional Neural Networks for Document Processing" (Suvisoft, 2006)
        function conv2dWithIm2Row(_a) {
            var e_2, _b;
            var x = _a.x
                , filter = _a.filter
                , convInfo = _a.convInfo
                , backend = _a.backend
                , _c = _a.bias
                , bias = _c === void 0 ? null : _c
                , _d = _a.preluActivationWeights
                , preluActivationWeights = _d === void 0 ? null : _d
                , _e = _a.leakyreluAlpha
                , leakyreluAlpha = _e === void 0 ? 0 : _e
                , _f = _a.activation
                , activation = _f === void 0 ? null : _f;
            // Rearranges conv2d input so each block to be convolved over forms the
            // column of a new matrix with shape [filterWidth * filterHeight *
            // inChannels, outHeight * outWidth]. The filter is also rearranged so each
            // output channel forms a row of a new matrix with shape [outChannels,
            // filterWidth * filterHeight * inChannels]. The convolution is then
            // computed by multiplying these matrices and reshaping the result.
            var filterWidth = convInfo.filterWidth
                , filterHeight = convInfo.filterHeight
                , inChannels = convInfo.inChannels
                , outWidth = convInfo.outWidth
                , outHeight = convInfo.outHeight
                , dataFormat = convInfo.dataFormat;
            var isChannelsLast = dataFormat === 'channelsLast';
            var sharedDim = filterWidth * filterHeight * inChannels;
            var numCols = outHeight * outWidth;
            var x2ColShape = [convInfo.batchSize, sharedDim, numCols];
            var transposeA = true;
            var transposeB = false;
            var intermediates = [];
            if (preluActivationWeights != null) {
                var targetShape = getShapeForBatchMatMul(preluActivationWeights.shape, isChannelsLast);
                if (targetShape != null) {
                    preluActivationWeights = reshape({
                        inputs: {
                            x: preluActivationWeights
                        },
                        backend: backend,
                        attrs: {
                            shape: targetShape
                        }
                    });
                    intermediates.push(preluActivationWeights);
                }
            }
            if (bias != null) {
                var targetShape = getShapeForBatchMatMul(bias.shape, isChannelsLast);
                if (targetShape != null) {
                    bias = reshape({
                        inputs: {
                            x: bias
                        },
                        backend: backend,
                        attrs: {
                            shape: targetShape
                        }
                    });
                    intermediates.push(bias);
                }
            }
            var w2Row = reshape({
                inputs: {
                    x: filter
                },
                backend: backend,
                attrs: {
                    shape: [1, sharedDim, tf.util.sizeFromShape(filter.shape) / sharedDim]
                }
            });
            intermediates.push(w2Row);
            var im2ColProgram = new Im2ColPackedProgram(x2ColShape, convInfo);
            var customValues = [x.shape, [convInfo.padInfo.top, convInfo.padInfo.left], [convInfo.strideHeight, convInfo.strideWidth], [convInfo.dilationHeight, convInfo.dilationWidth], [convInfo.inChannels], [convInfo.filterWidth * convInfo.inChannels], [convInfo.outWidth]];
            var im2Col = backend.runWebGLProgram(im2ColProgram, [x], 'float32', customValues);
            var im2ColReshaped = reshape({
                inputs: {
                    x: im2Col
                },
                backend: backend,
                attrs: {
                    shape: x2ColShape
                }
            });
            intermediates.push(im2Col);
            intermediates.push(im2ColReshaped);
            var hasBias = bias != null;
            var hasPreluActivationWeights = preluActivationWeights != null;
            var hasLeakyreluAlpha = activation === 'leakyrelu';
            var fusedActivation = activation ? mapActivationToShaderProgram(activation, true) : null;
            var matmulProgram = new MatMulPackedProgram(isChannelsLast ? im2ColReshaped.shape : w2Row.shape, isChannelsLast ? w2Row.shape : im2ColReshaped.shape, isChannelsLast ? [convInfo.batchSize, numCols, convInfo.outChannels] : [convInfo.batchSize, convInfo.outChannels, numCols], transposeA, transposeB, hasBias, fusedActivation, hasPreluActivationWeights, hasLeakyreluAlpha);
            var inputs = isChannelsLast ? [im2ColReshaped, w2Row] : [w2Row, im2ColReshaped];
            if (bias) {
                inputs.push(bias);
            }
            if (hasPreluActivationWeights) {
                inputs.push(preluActivationWeights);
            }
            if (hasLeakyreluAlpha) {
                var $leakyreluAlpha = backend.makeTensorInfo([], 'float32', tf.util.createScalarValue(leakyreluAlpha, 'float32'));
                inputs.push($leakyreluAlpha);
                intermediates.push($leakyreluAlpha);
            }
            var product = backend.runWebGLProgram(matmulProgram, inputs, 'float32');
            var out = reshape({
                inputs: {
                    x: product
                },
                backend: backend,
                attrs: {
                    shape: convInfo.outShape
                }
            });
            intermediates.push(product);
            try {
                for (var intermediates_2 = __values(intermediates), intermediates_2_1 = intermediates_2.next(); !intermediates_2_1.done; intermediates_2_1 = intermediates_2.next()) {
                    var i = intermediates_2_1.value;
                    backend.disposeIntermediateTensorInfo(i);
                }
            } catch (e_2_1) {
                e_2 = {
                    error: e_2_1
                };
            } finally {
                try {
                    if (intermediates_2_1 && !intermediates_2_1.done && (_b = intermediates_2.return))
                        _b.call(intermediates_2);
                } finally {
                    if (e_2)
                        throw e_2.error;
                }
            }
            return out;
        }

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function conv2d(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x
                , filter = inputs.filter;
            var strides = attrs.strides
                , pad = attrs.pad
                , dataFormat = attrs.dataFormat
                , dilations = attrs.dilations
                , dimRoundingMode = attrs.dimRoundingMode;
            var $dataFormat = tf.backend_util.convertConv2DDataFormat(dataFormat);
            var convInfo = tf.backend_util.computeConv2DInfo(x.shape, filter.shape, strides, dilations, pad, dimRoundingMode, false /* depthwise */
                , $dataFormat);
            var out;
            if (convInfo.filterHeight === 1 && convInfo.filterWidth === 1 && convInfo.dilationHeight === 1 && convInfo.dilationWidth === 1 && convInfo.strideHeight === 1 && convInfo.strideWidth === 1 && (convInfo.padInfo.type === 'SAME' || convInfo.padInfo.type === 'VALID')) {
                out = conv2dByMatMul({
                    x: x,
                    filter: filter,
                    convInfo: convInfo,
                    backend: backend
                });
            } else if (convInfo.strideWidth <= 2 && $dataFormat === 'channelsLast' && tf.env().getBool('WEBGL_EXP_CONV')) {
                var program = new Conv2DPackedProgram(convInfo);
                var customValues = [[convInfo.padInfo.top, convInfo.padInfo.left], [convInfo.strideHeight, convInfo.strideWidth], [convInfo.dilationHeight, convInfo.dilationWidth], [convInfo.inHeight, convInfo.inWidth]];
                out = backend.runWebGLProgram(program, [x, filter], 'float32', customValues);
            } else if (tf.env().getBool('WEBGL_CONV_IM2COL')) {
                out = conv2dWithIm2Row({
                    x: x,
                    filter: filter,
                    convInfo: convInfo,
                    backend: backend
                });
            } else {
                var program = new Conv2DProgram(convInfo);
                out = backend.runWebGLProgram(program, [x, filter], 'float32');
            }
            var outReshaped = reshape({
                inputs: {
                    x: out
                },
                backend: backend,
                attrs: {
                    shape: convInfo.outShape
                }
            });
            backend.disposeIntermediateTensorInfo(out);
            return outReshaped;
        }
        var conv2DConfig = {
            kernelName: tf.Conv2D,
            backendName: 'webgl',
            kernelFunc: conv2d,
        };

        /**
         * @license
         * Copyright 2017 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var Conv2DDerFilterProgram = /** @class */
            (function () {
                function Conv2DDerFilterProgram(convInfo) {
                    this.variableNames = ['x', 'dy'];
                    this.outputShape = convInfo.filterShape;
                    var strideHeight = convInfo.strideHeight;
                    var strideWidth = convInfo.strideWidth;
                    var padTop = convInfo.padInfo.top;
                    var padLeft = convInfo.padInfo.left;
                    var isChannelsLast = convInfo.dataFormat === 'channelsLast';
                    this.userCode = "\n      void main() {\n        ivec4 coords = getOutputCoords();\n        int wR = coords.x;\n        int wC = coords.y;\n        int d1 = coords.z;\n        int d2 = coords.w;\n\n        // Convolve x(?, ?, d1) with dy(:, :, d2) to get dw(wR, wC, d1, d2).\n        // ? = to be determined. : = across all values in that axis.\n        float dotProd = 0.0;\n\n        for (int b = 0; b < ".concat(convInfo.batchSize, "; b++) {\n          for (int yR = 0; yR < ").concat(convInfo.outHeight, "; yR++) {\n            int xR = wR + yR * ").concat(strideHeight, " - ").concat(padTop, ";\n\n            if (xR < 0 || xR >= ").concat(convInfo.inHeight, ") {\n              continue;\n            }\n\n            for (int yC = 0; yC < ").concat(convInfo.outWidth, "; yC++) {\n              int xC = wC + yC * ").concat(strideWidth, " - ").concat(padLeft, ";\n\n              if (xC < 0 || xC >= ").concat(convInfo.inWidth, ") {\n                continue;\n              }\n\n              if (").concat(isChannelsLast, ") {\n                float dyValue = getDy(b, yR, yC, d2);\n                float xValue = getX(b, xR, xC, d1);\n                dotProd += (xValue * dyValue);\n              } else {\n                float dyValue = getDy(b, d2, yR, yC);\n                float xValue = getX(b, d1, xR, xC);\n                dotProd += (xValue * dyValue);\n              }\n\n            }\n          }\n        }\n        setOutput(dotProd);\n      }\n    ");
                }
                return Conv2DDerFilterProgram;
            }());
        var Conv2DDerInputProgram = /** @class */
            (function () {
                function Conv2DDerInputProgram(convInfo) {
                    this.variableNames = ['dy', 'W'];
                    this.outputShape = convInfo.inShape;
                    var filterHeight = convInfo.filterHeight;
                    var filterWidth = convInfo.filterWidth;
                    var strideHeight = convInfo.strideHeight;
                    var strideWidth = convInfo.strideWidth;
                    var isChannelsLast = convInfo.dataFormat === 'channelsLast';
                    var padTop = filterHeight - 1 - convInfo.padInfo.top;
                    var padLeft = filterWidth - 1 - convInfo.padInfo.left;
                    var rowDim = isChannelsLast ? 1 : 2;
                    var colDim = isChannelsLast ? 2 : 3;
                    var channelDim = isChannelsLast ? 3 : 1;
                    this.userCode = "\n      const ivec2 pads = ivec2(".concat(padTop, ", ").concat(padLeft, ");\n\n      void main() {\n        ivec4 coords = getOutputCoords();\n        int batch = coords[0];\n        int d1 = coords[").concat(channelDim, "];\n\n        ivec2 dyCorner = ivec2(coords[").concat(rowDim, "], coords[").concat(colDim, "]) - pads;\n        int dyRCorner = dyCorner.x;\n        int dyCCorner = dyCorner.y;\n\n        // Convolve dy(?, ?, d2) with w(:, :, d1, d2) to compute dx(xR, xC, d1).\n        // ? = to be determined. : = across all values in that axis.\n        float dotProd = 0.0;\n        for (int wR = 0; wR < ").concat(filterHeight, "; wR++) {\n          float dyR = float(dyRCorner + wR) / ").concat(strideHeight, ".0;\n\n          if (dyR < 0.0 || dyR >= ").concat(convInfo.outHeight, ".0 || fract(dyR) > 0.0) {\n            continue;\n          }\n          int idyR = int(dyR);\n\n          int wRPerm = ").concat(filterHeight, " - 1 - wR;\n\n          for (int wC = 0; wC < ").concat(filterWidth, "; wC++) {\n            float dyC = float(dyCCorner + wC) / ").concat(strideWidth, ".0;\n\n            if (dyC < 0.0 || dyC >= ").concat(convInfo.outWidth, ".0 ||\n                fract(dyC) > 0.0) {\n              continue;\n            }\n            int idyC = int(dyC);\n\n            int wCPerm = ").concat(filterWidth, " - 1 - wC;\n\n            for (int d2 = 0; d2 < ").concat(convInfo.outChannels, "; d2++) {\n\n              if (").concat(isChannelsLast, ") {\n                float xValue = getDy(batch, idyR, idyC, d2);\n                float wValue = getW(wRPerm, wCPerm, d1, d2);\n                dotProd += xValue * wValue;\n              } else {\n                float xValue = getDy(batch, d2, idyR, idyC);\n                float wValue = getW(wRPerm, wCPerm, d1, d2);\n                dotProd += xValue * wValue;\n              }\n\n            }\n          }\n        }\n        setOutput(dotProd);\n      }\n    ");
                }
                return Conv2DDerInputProgram;
            }());
        var Conv3DDerFilterProgram = /** @class */
            (function () {
                function Conv3DDerFilterProgram(convInfo) {
                    this.variableNames = ['x', 'dy'];
                    this.outputShape = convInfo.filterShape;
                    var strideDepth = convInfo.strideDepth;
                    var strideHeight = convInfo.strideHeight;
                    var strideWidth = convInfo.strideWidth;
                    var padFront = convInfo.padInfo.front;
                    var padTop = convInfo.padInfo.top;
                    var padLeft = convInfo.padInfo.left;
                    this.userCode = "\n      void main() {\n        ivec5 coords = getOutputCoords();\n        int wF = coords.x;\n        int wR = coords.y;\n        int wC = coords.z;\n        int d1 = coords.w;\n        int d2 = coords.u;\n\n        float dotProd = 0.0;\n\n        for (int b = 0; b < ".concat(convInfo.batchSize, "; b++) {\n          for (int yF = 0; yF < ").concat(convInfo.outDepth, "; yF++) {\n            int xF = wF + yF * ").concat(strideDepth, " - ").concat(padFront, ";\n\n            if (xF < 0 || xF >= ").concat(convInfo.inDepth, ") {\n              continue;\n            }\n\n            for (int yR = 0; yR < ").concat(convInfo.outHeight, "; yR++) {\n              int xR = wR + yR * ").concat(strideHeight, " - ").concat(padTop, ";\n\n              if (xR < 0 || xR >= ").concat(convInfo.inHeight, ") {\n                continue;\n              }\n\n              for (int yC = 0; yC < ").concat(convInfo.outWidth, "; yC++) {\n                int xC = wC + yC * ").concat(strideWidth, " - ").concat(padLeft, ";\n\n                if (xC < 0 || xC >= ").concat(convInfo.inWidth, ") {\n                  continue;\n                }\n\n                float dyValue = getDy(b, yF, yR, yC, d2);\n                float xValue = getX(b, xF, xR, xC, d1);\n                dotProd += (xValue * dyValue);\n              }\n            }\n          }\n        }\n        setOutput(dotProd);\n      }\n    ");
                }
                return Conv3DDerFilterProgram;
            }());
        var Conv3DDerInputProgram = /** @class */
            (function () {
                function Conv3DDerInputProgram(convInfo) {
                    this.variableNames = ['dy', 'W'];
                    this.outputShape = convInfo.inShape;
                    var filterDepth = convInfo.filterDepth;
                    var filterHeight = convInfo.filterHeight;
                    var filterWidth = convInfo.filterWidth;
                    var strideDepth = convInfo.strideDepth;
                    var strideHeight = convInfo.strideHeight;
                    var strideWidth = convInfo.strideWidth;
                    var padFront = filterDepth - 1 - convInfo.padInfo.front;
                    var padTop = filterHeight - 1 - convInfo.padInfo.top;
                    var padLeft = filterWidth - 1 - convInfo.padInfo.left;
                    this.userCode = "\n      const ivec3 pads = ivec3(".concat(padFront, ", ").concat(padTop, ", ").concat(padLeft, ");\n\n      void main() {\n        ivec5 coords = getOutputCoords();\n        int batch = coords.x;\n        int d1 = coords.u;\n\n\n        ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads;\n        int dyFCorner = dyCorner.x;\n        int dyRCorner = dyCorner.y;\n        int dyCCorner = dyCorner.z;\n\n        float dotProd = 0.0;\n        for (int wF = 0; wF < ").concat(filterDepth, "; wF++) {\n          float dyF = float(dyFCorner + wF) / ").concat(strideDepth, ".0;\n\n          if (dyF < 0.0 || dyF >= ").concat(convInfo.outDepth, ".0 || fract(dyF) > 0.0) {\n            continue;\n          }\n          int idyF = int(dyF);\n\n          int wFPerm = ").concat(filterDepth, " - 1 - wF;\n\n          for (int wR = 0; wR < ").concat(filterHeight, "; wR++) {\n            float dyR = float(dyRCorner + wR) / ").concat(strideHeight, ".0;\n\n            if (dyR < 0.0 || dyR >= ").concat(convInfo.outHeight, ".0 ||\n              fract(dyR) > 0.0) {\n              continue;\n            }\n            int idyR = int(dyR);\n\n            int wRPerm = ").concat(filterHeight, " - 1 - wR;\n\n            for (int wC = 0; wC < ").concat(filterWidth, "; wC++) {\n              float dyC = float(dyCCorner + wC) / ").concat(strideWidth, ".0;\n\n              if (dyC < 0.0 || dyC >= ").concat(convInfo.outWidth, ".0 ||\n                  fract(dyC) > 0.0) {\n                continue;\n              }\n              int idyC = int(dyC);\n\n              int wCPerm = ").concat(filterWidth, " - 1 - wC;\n\n              for (int d2 = 0; d2 < ").concat(convInfo.outChannels, "; d2++) {\n                float xValue = getDy(batch, idyF, idyR, idyC, d2);\n                float wValue = getW(wFPerm, wRPerm, wCPerm, d1, d2);\n                dotProd += xValue * wValue;\n              }\n            }\n          }\n        }\n        setOutput(dotProd);\n      }\n    ");
                }
                return Conv3DDerInputProgram;
            }());

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function conv2DBackpropFilter(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x
                , dy = inputs.dy;
            var strides = attrs.strides
                , pad = attrs.pad
                , dataFormat = attrs.dataFormat
                , dimRoundingMode = attrs.dimRoundingMode
                , filterShape = attrs.filterShape;
            var $dataFormat = tf.backend_util.convertConv2DDataFormat(dataFormat);
            var convInfo = tf.backend_util.computeConv2DInfo(x.shape, filterShape, strides, 1 /* dilations */
                , pad, dimRoundingMode, false /* depthwise */
                , $dataFormat);
            var program = new Conv2DDerFilterProgram(convInfo);
            return backend.runWebGLProgram(program, [x, dy], 'float32');
        }
        var conv2DBackpropFilterConfig = {
            kernelName: tf.Conv2DBackpropFilter,
            backendName: 'webgl',
            kernelFunc: conv2DBackpropFilter,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function conv2DBackpropInput(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var dy = inputs.dy
                , filter = inputs.filter;
            var inputShape = attrs.inputShape
                , strides = attrs.strides
                , pad = attrs.pad
                , dataFormat = attrs.dataFormat
                , dimRoundingMode = attrs.dimRoundingMode;
            var $dataFormat = tf.backend_util.convertConv2DDataFormat(dataFormat);
            var convInfo = tf.backend_util.computeConv2DInfo(inputShape, filter.shape, strides, 1 /* dilations */
                , pad, dimRoundingMode, false, $dataFormat);
            var program = new Conv2DDerInputProgram(convInfo);
            return backend.runWebGLProgram(program, [dy, filter], 'float32');
        }
        var conv2DBackpropInputConfig = {
            kernelName: tf.Conv2DBackpropInput,
            backendName: 'webgl',
            kernelFunc: conv2DBackpropInput,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function conv3D(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x
                , filter = inputs.filter;
            var strides = attrs.strides
                , pad = attrs.pad
                , dilations = attrs.dilations;
            var convInfo = tf.backend_util.computeConv3DInfo(x.shape, filter.shape, strides, dilations, pad);
            var program = new Conv3DProgram(convInfo);
            return backend.runWebGLProgram(program, [x, filter], 'float32');
        }
        var conv3DConfig = {
            kernelName: tf.Conv3D,
            backendName: 'webgl',
            kernelFunc: conv3D,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function conv3DBackpropFilterV2(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x
                , dy = inputs.dy;
            var strides = attrs.strides
                , pad = attrs.pad
                , filterShape = attrs.filterShape;
            var convInfo = tf.backend_util.computeConv3DInfo(x.shape, filterShape, strides, 1 /* dilations */
                , pad);
            var program = new Conv3DDerFilterProgram(convInfo);
            return backend.runWebGLProgram(program, [x, dy], 'float32');
        }
        var conv3DBackpropFilterV2Config = {
            kernelName: tf.Conv3DBackpropFilterV2,
            backendName: 'webgl',
            kernelFunc: conv3DBackpropFilterV2
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function conv3DBackpropInput(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var dy = inputs.dy
                , filter = inputs.filter;
            var pad = attrs.pad
                , strides = attrs.strides
                , inputShape = attrs.inputShape;
            var convInfo = tf.backend_util.computeConv3DInfo(inputShape, filter.shape, strides, 1 /* dilations */
                , pad);
            var program = new Conv3DDerInputProgram(convInfo);
            return backend.runWebGLProgram(program, [dy, filter], 'float32');
        }
        var conv3DBackpropInputConfig = {
            kernelName: tf.Conv3DBackpropInputV2,
            backendName: 'webgl',
            kernelFunc: conv3DBackpropInput,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var COS = CHECK_NAN_SNIPPET_UNARY + "\n  return cos(x);\n";
        var cos = unaryKernelFunc({
            opSnippet: COS
        });
        var cosConfig = {
            kernelName: tf.Cos,
            backendName: 'webgl',
            kernelFunc: cos,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var COSH = "\n  float e2x = exp(-x);\n  return (e2x + 1.0 / e2x) / 2.0;\n";
        var cosh = unaryKernelFunc({
            opSnippet: COSH
        });
        var coshConfig = {
            kernelName: tf.Cosh,
            backendName: 'webgl',
            kernelFunc: cosh,
        };

        /**
         * @license
         * Copyright 2017 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var CropAndResizeProgram = /** @class */
            (function () {
                function CropAndResizeProgram(imageShape, boxShape, cropSize, method, extrapolationValue) {
                    this.variableNames = ['Image', 'Boxes', 'BoxInd'];
                    this.outputShape = [];
                    var _a = __read(imageShape, 4)
                        , batch = _a[0]
                        , imageHeight = _a[1]
                        , imageWidth = _a[2]
                        , depth = _a[3];
                    var _b = __read(boxShape, 1)
                        , numBoxes = _b[0];
                    var _c = __read(cropSize, 2)
                        , cropHeight = _c[0]
                        , cropWidth = _c[1];
                    this.outputShape = [numBoxes, cropHeight, cropWidth, depth];
                    var methodId = method === 'bilinear' ? 1 : 0;
                    var _d = __read(["".concat(imageHeight - 1, ".0"), "".concat(imageWidth - 1, ".0")], 2)
                        , inputHeightFloat = _d[0]
                        , inputWidthFloat = _d[1];
                    var _e = __read(cropHeight > 1 ? ["".concat((imageHeight - 1) / (cropHeight - 1)), '(y2-y1) * height_ratio', "y1*".concat(inputHeightFloat, " + float(y)*(height_scale)"),] : ['0.0', '0.0', "0.5 * (y1+y2) * ".concat(inputHeightFloat),], 3)
                        , heightRatio = _e[0]
                        , heightScale = _e[1]
                        , inY = _e[2];
                    var _f = __read(cropWidth > 1 ? ["".concat((imageWidth - 1) / (cropWidth - 1)), '(x2-x1) * width_ratio', "x1*".concat(inputWidthFloat, " + float(x)*(width_scale)"),] : ['0.0', '0.0', "0.5 * (x1+x2) * ".concat(inputWidthFloat),], 3)
                        , widthRatio = _f[0]
                        , widthScale = _f[1]
                        , inX = _f[2];
                    // Reference implementation
                    // tslint:disable-next-line:max-line-length
                    // https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/kernels/crop_and_resize_op_gpu.cu.cc
                    this.userCode = "\n      const float height_ratio = float(".concat(heightRatio, ");\n      const float width_ratio = float(").concat(widthRatio, ");\n      void main() {\n        ivec4 coords = getOutputCoords();\n        int b = coords[0];\n        int y = coords[1];\n        int x = coords[2];\n        int d = coords[3];\n\n        // get box vals\n        float y1 = getBoxes(b,0);\n        float x1 = getBoxes(b,1);\n        float y2 = getBoxes(b,2);\n        float x2 = getBoxes(b,3);\n\n        // get image in batch index\n        int bInd = round(getBoxInd(b));\n        if(bInd < 0 || bInd >= ").concat(batch, ") {\n          return;\n        }\n\n        float height_scale = ").concat(heightScale, ";\n        float width_scale = ").concat(widthScale, ";\n\n        float in_y = ").concat(inY, ";\n        if( in_y < 0.0 || in_y > ").concat(inputHeightFloat, " ) {\n          setOutput(float(").concat(extrapolationValue, "));\n          return;\n        }\n        float in_x = ").concat(inX, ";\n        if( in_x < 0.0 || in_x > ").concat(inputWidthFloat, " ) {\n          setOutput(float(").concat(extrapolationValue, "));\n          return;\n        }\n\n        vec2 sourceFracIndexCR = vec2(in_x,in_y);\n        if(").concat(methodId, " == 1) {\n          // Compute the four integer indices.\n          ivec2 sourceFloorCR = ivec2(sourceFracIndexCR);\n          ivec2 sourceCeilCR = ivec2(ceil(sourceFracIndexCR));\n\n          float topLeft = getImage(b, sourceFloorCR.y, sourceFloorCR.x, d);\n          float bottomLeft = getImage(b, sourceCeilCR.y, sourceFloorCR.x, d);\n          float topRight = getImage(b, sourceFloorCR.y, sourceCeilCR.x, d);\n          float bottomRight = getImage(b, sourceCeilCR.y, sourceCeilCR.x, d);\n\n          vec2 fracCR = sourceFracIndexCR - vec2(sourceFloorCR);\n\n          float top = topLeft + (topRight - topLeft) * fracCR.x;\n          float bottom = bottomLeft + (bottomRight - bottomLeft) * fracCR.x;\n          float newValue = top + (bottom - top) * fracCR.y;\n          setOutput(newValue);\n        } else {\n          // Compute the coordinators of nearest neighbor point.\n          ivec2 sourceNearestCR = ivec2(floor(\n            sourceFracIndexCR + vec2(0.5,0.5)));\n          float newValue = getImage(b, sourceNearestCR.y, sourceNearestCR.x, d);\n          setOutput(newValue);\n        }\n      }\n    ");
                }
                return CropAndResizeProgram;
            }());

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var cropAndResize = function (args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var image = inputs.image
                , boxes = inputs.boxes
                , boxInd = inputs.boxInd;
            var cropSize = attrs.cropSize
                , method = attrs.method
                , extrapolationValue = attrs.extrapolationValue;
            var program = new CropAndResizeProgram(image.shape, boxes.shape, cropSize, method, extrapolationValue);
            return backend.runWebGLProgram(program, [image, boxes, boxInd], 'float32');
        };
        var cropAndResizeConfig = {
            kernelName: tf.CropAndResize,
            backendName: 'webgl',
            kernelFunc: cropAndResize
        };

        var CumOpType;
        (function (CumOpType) {
            CumOpType["Prod"] = "*";
            CumOpType["Sum"] = "+";
        }
        )(CumOpType || (CumOpType = {}));
        var CumProgram = /** @class */
            (function () {
                function CumProgram(op, outputShape, exclusive, reverse) {
                    this.op = op;
                    this.outputShape = outputShape;
                    this.variableNames = ['x'];
                    this.customUniforms = [{
                        name: 'index',
                        type: 'float'
                    }];
                    var rank = this.outputShape.length;
                    var initVal = this.op === CumOpType.Prod ? '1.0' : '0.0';
                    var val = exclusive ? initVal : "getX(".concat(getCoords(rank, 'coords', this.op), ")");
                    var length = this.outputShape[this.outputShape.length - 1];
                    var condition = '';
                    var idxString = '';
                    // When exclusive is set, the cum op becomes roll op that copies the
                    // value from the previous index based on the direction specified by the
                    // reverse flag.
                    if (exclusive) {
                        condition = reverse ? "end != ".concat(length - 1) : 'end != 0';
                        idxString = reverse ? 'end + 1' : 'end - 1';
                    } else {
                        condition = reverse ? "end + pow2 < ".concat(length) : 'end >= pow2';
                        idxString = (reverse ? 'end + pow2' : 'end - pow2');
                    }
                    this.userCode = "\n      void main() {\n        ".concat(getCoordsDataType(rank), " coords = getOutputCoords();\n        int end = ").concat(getFinalCoord(rank, 'coords', this.op), ";\n        float val = ").concat(val, ";\n        int pow2 = int(pow(2.0, index));\n        if (").concat(condition, ") {\n          int idx = ").concat(idxString, ";\n          ").concat(getFinalCoord(rank, 'coords', this.op), " = idx;\n          val ").concat(this.op, "= getX(").concat(getCoords(rank, 'coords', this.op), ");\n        }\n        setOutput(val);\n      }\n    ");
                }
                return CumProgram;
            }());
        function getCoords(rank, name, op) {
            if (rank === 1) {
                return "".concat(name);
            } else if (rank === 2) {
                return "".concat(name, ".x, ").concat(name, ".y");
            } else if (rank === 3) {
                return "".concat(name, ".x, ").concat(name, ".y, ").concat(name, ".z");
            } else if (rank === 4) {
                return "".concat(name, ".x, ").concat(name, ".y, ").concat(name, ".z, ").concat(name, ".w");
            } else {
                throw new Error("Cumulative ".concat(op, " for rank ").concat(rank, " is not yet supported"));
            }
        }
        function getFinalCoord(rank, name, op) {
            if (rank === 1) {
                return "".concat(name);
            } else if (rank === 2) {
                return "".concat(name, ".y");
            } else if (rank === 3) {
                return "".concat(name, ".z");
            } else if (rank === 4) {
                return "".concat(name, ".w");
            } else {
                throw new Error("Cumulative ".concat(op, " for rank ").concat(rank, " is not yet supported"));
            }
        }

        /**
         * @license
         * Copyright 2022 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function cumImpl(op, x, backend, axis, exclusive, reverse) {
            var xRank = x.shape.length;
            var permutation = tf.backend_util.getAxesPermutation([axis], xRank);
            var permutedX = x;
            if (permutation != null) {
                permutedX = transpose({
                    inputs: {
                        x: x
                    },
                    backend: backend,
                    attrs: {
                        perm: permutation
                    }
                });
            }
            var permutedAxis = tf.backend_util.getInnerMostAxes(1, xRank)[0];
            if (permutedAxis !== xRank - 1) {
                throw new Error("WebGL cumprod shader expects an inner-most axis=".concat(x.shape.length - 1, " ") + "but got axis=".concat(axis));
            }
            var size = permutedX.shape[permutedAxis];
            var result = identity({
                inputs: {
                    x: permutedX
                },
                backend: backend
            });
            // Use cum parallel algorithm, inspired by:
            // https://developer.nvidia.com/gpugems/gpugems3/part-vi-gpu-computing/chapter-39-parallel-prefix-sum-scan-cuda
            // Note: although the algorithm is called sum, it works for any associtative
            // operator with an identity.
            for (var i = 0; i <= Math.ceil(Math.log2(size)) - 1; i++) {
                var program = new CumProgram(op, permutedX.shape, false, reverse);
                var customValues = [[i]];
                var prevResult = result;
                result = backend.runWebGLProgram(program, [result], result.dtype, customValues);
                backend.disposeIntermediateTensorInfo(prevResult);
            }
            // For exclusive cum, shift the end result in the direction of product or sum
            // and add 1 for product or 0 for sum to the front index.
            if (exclusive) {
                var program = new CumProgram(op, permutedX.shape, exclusive, reverse);
                var prevResult = result;
                result = backend.runWebGLProgram(program, [result], result.dtype);
                backend.disposeIntermediateTensorInfo(prevResult);
            }
            if (permutation != null) {
                var reversePermutation = tf.backend_util.getUndoAxesPermutation(permutation);
                var reverseTransposedResult = transpose({
                    inputs: {
                        x: result
                    },
                    backend: backend,
                    attrs: {
                        perm: reversePermutation
                    }
                });
                backend.disposeIntermediateTensorInfo(result);
                backend.disposeIntermediateTensorInfo(permutedX);
                return reverseTransposedResult;
            }
            return result;
        }

        /**
         * @license
         * Copyright 2022 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function cumprod(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x;
            var axis = attrs.axis
                , exclusive = attrs.exclusive
                , reverse = attrs.reverse;
            return cumImpl(CumOpType.Prod, x, backend, axis, exclusive, reverse);
        }
        var cumprodConfig = {
            kernelName: tf.Cumprod,
            backendName: 'webgl',
            kernelFunc: cumprod
        };

        /**
         * @license
         * Copyright 2022 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function cumsum(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x;
            var axis = attrs.axis
                , exclusive = attrs.exclusive
                , reverse = attrs.reverse;
            return cumImpl(CumOpType.Sum, x, backend, axis, exclusive, reverse);
        }
        var cumsumConfig = {
            kernelName: tf.Cumsum,
            backendName: 'webgl',
            kernelFunc: cumsum
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function denseBincount(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x
                , weights = inputs.weights;
            var size = attrs.size
                , binaryOutput = attrs.binaryOutput;
            if (x.shape.length === 1) {
                var xVals = backend.readSync(x.dataId);
                var weightsVals = backend.readSync(weights.dataId);
                var outVals = bincountImplCPU(xVals, weightsVals, weights.dtype, weights.shape, size);
                return backend.makeTensorInfo([size], weights.dtype, outVals);
            } else if (x.shape.length === 2) {
                var xBuf = backend.bufferSync(x);
                var weightsBuf = backend.bufferSync(weights);
                var outBuf = bincountReduceImplCPU(xBuf, weightsBuf, size, binaryOutput);
                return backend.makeTensorInfo(outBuf.shape, weights.dtype, outBuf.values);
            }
            throw new Error("Error in denseBincount: input must be at most rank 2, but got rank" + "".concat(x.shape.length, "."));
        }
        var denseBincountConfig = {
            kernelName: tf.DenseBincount,
            backendName: 'webgl',
            kernelFunc: denseBincount
        };

        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var DepthToSpaceProgram = /** @class */
            (function () {
                function DepthToSpaceProgram(outputShape, blockSize, dataFormat) {
                    this.variableNames = ['x'];
                    this.outputShape = [];
                    this.outputShape = outputShape;
                    this.blockSize = blockSize;
                    this.dataFormat = dataFormat;
                    this.userCode = "\n    void main() {\n      ivec4 coords = getOutputCoords();\n      int b = coords[0];\n      int h = ".concat(this.getHeightCoordString(), ";\n      int w = ").concat(this.getWidthCoordString(), ";\n      int d = ").concat(this.getDepthCoordString(), ";\n\n      int in_h = h / ").concat(blockSize, ";\n      int offset_h = imod(h, ").concat(blockSize, ");\n      int in_w = w / ").concat(blockSize, ";\n      int offset_w = imod(w, ").concat(blockSize, ");\n      int offset_d = (offset_h * ").concat(blockSize, " + offset_w) *\n        ").concat(this.getOutputDepthSize(), ";\n      int in_d = d + offset_d;\n\n      float result = ").concat(this.getInputSamplingString(), ";\n      setOutput(result);\n    }\n  ");
                }
                DepthToSpaceProgram.prototype.getHeightCoordString = function () {
                    if (this.dataFormat === 'NHWC') {
                        return "coords[1]";
                    } else {
                        return "coords[2]";
                    }
                }
                    ;
                DepthToSpaceProgram.prototype.getWidthCoordString = function () {
                    if (this.dataFormat === 'NHWC') {
                        return "coords[2]";
                    } else {
                        return "coords[3]";
                    }
                }
                    ;
                DepthToSpaceProgram.prototype.getDepthCoordString = function () {
                    if (this.dataFormat === 'NHWC') {
                        return "coords[3]";
                    } else {
                        return "coords[1]";
                    }
                }
                    ;
                DepthToSpaceProgram.prototype.getOutputDepthSize = function () {
                    if (this.dataFormat === 'NHWC') {
                        return this.outputShape[3];
                    } else {
                        return this.outputShape[1];
                    }
                }
                    ;
                DepthToSpaceProgram.prototype.getInputSamplingString = function () {
                    if (this.dataFormat === 'NHWC') {
                        return "getX(b, in_h, in_w, in_d)";
                    } else {
                        return "getX(b, in_d, in_h, in_w)";
                    }
                }
                    ;
                return DepthToSpaceProgram;
            }());

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function depthToSpace(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x;
            var blockSize = attrs.blockSize
                , dataFormat = attrs.dataFormat;
            var batchSize = x.shape[0];
            var inputHeight = (dataFormat === 'NHWC') ? x.shape[1] : x.shape[2];
            var inputWidth = (dataFormat === 'NHWC') ? x.shape[2] : x.shape[3];
            var inputDepth = (dataFormat === 'NHWC') ? x.shape[3] : x.shape[1];
            var outputHeight = inputHeight * blockSize;
            var outputWidth = inputWidth * blockSize;
            var outputDepth = inputDepth / (blockSize * blockSize);
            var outputShape = (dataFormat === 'NHWC') ? [batchSize, outputHeight, outputWidth, outputDepth] : [batchSize, outputDepth, outputHeight, outputWidth];
            var program = new DepthToSpaceProgram(outputShape, blockSize, dataFormat);
            return backend.runWebGLProgram(program, [x], x.dtype);
        }
        var depthToSpaceConfig = {
            kernelName: tf.DepthToSpace,
            backendName: 'webgl',
            kernelFunc: depthToSpace
        };

        /**
         * @license
         * Copyright 2017 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var DepthwiseConv2DProgram = /** @class */
            (function () {
                function DepthwiseConv2DProgram(convInfo, addBias, activation, hasPreluActivation, hasLeakyReluAlpha) {
                    if (addBias === void 0) {
                        addBias = false;
                    }
                    if (activation === void 0) {
                        activation = null;
                    }
                    if (hasPreluActivation === void 0) {
                        hasPreluActivation = false;
                    }
                    if (hasLeakyReluAlpha === void 0) {
                        hasLeakyReluAlpha = false;
                    }
                    this.variableNames = ['x', 'W'];
                    this.customUniforms = [{
                        name: 'pads',
                        type: 'ivec2'
                    }, {
                        name: 'strides',
                        type: 'ivec2'
                    }, {
                        name: 'dilations',
                        type: 'ivec2'
                    }, {
                        name: 'inDims',
                        type: 'ivec2'
                    },];
                    this.outputShape = convInfo.outShape;
                    this.enableShapeUniforms = useShapeUniforms(this.outputShape.length);
                    var filterHeight = convInfo.filterHeight;
                    var filterWidth = convInfo.filterWidth;
                    var channelMul = convInfo.outChannels / convInfo.inChannels;
                    var activationSnippet = ''
                        , applyActivationSnippet = '';
                    if (activation) {
                        if (hasPreluActivation) {
                            activationSnippet = "float activation(float a) {\n          float b = getPreluActivationWeightsAtOutCoords();\n          ".concat(activation, "\n        }");
                        } else if (hasLeakyReluAlpha) {
                            activationSnippet = "float activation(float a) {\n          float b = getLeakyreluAlphaAtOutCoords();\n          ".concat(activation, "\n        }");
                        } else {
                            activationSnippet = "\n          float activation(float x) {\n            ".concat(activation, "\n          }\n        ");
                        }
                        applyActivationSnippet = "result = activation(result);";
                    }
                    var addBiasSnippet = addBias ? 'result += getBiasAtOutCoords();' : '';
                    if (addBias) {
                        this.variableNames.push('bias');
                    }
                    if (hasPreluActivation) {
                        this.variableNames.push('preluActivationWeights');
                    }
                    if (hasLeakyReluAlpha) {
                        this.variableNames.push('leakyreluAlpha');
                    }
                    this.userCode = "\n      ".concat(activationSnippet, "\n\n      void main() {\n        ivec4 coords = getOutputCoords();\n        int batch = coords.x;\n        ivec2 xRCCorner = coords.yz * strides - pads;\n        int d2 = coords.w;\n        int d1 = d2 / ").concat(channelMul, ";\n        int q = d2 - d1 * ").concat(channelMul, ";\n\n        int xRCorner = xRCCorner.x;\n        int xCCorner = xRCCorner.y;\n\n        // Convolve x(?, ?, d1) with w(:, :, d1, q) to get y(yR, yC, d2).\n        // ? = to be determined. : = across all values in that axis.\n        float dotProd = 0.0;\n        // TO DO(dsmilkov): Flatten the two for loops and vec4 the operations.\n        for (int wR = 0; wR < ").concat(filterHeight, "; wR++) {\n          int xR = xRCorner + wR * dilations[0];\n\n          if (xR < 0 || xR >= inDims[0]) {\n            continue;\n          }\n\n          for (int wC = 0; wC < ").concat(filterWidth, "; wC++) {\n            int xC = xCCorner + wC * dilations[1];\n\n            if (xC < 0 || xC >= inDims[1]) {\n              continue;\n            }\n\n            float xVal = getX(batch, xR, xC, d1);\n            float wVal = getW(wR, wC, d1, q);\n            dotProd += xVal * wVal;\n          }\n        }\n\n        float result = dotProd;\n        ").concat(addBiasSnippet, "\n        ").concat(applyActivationSnippet, "\n        setOutput(result);\n      }\n    ");
                }
                return DepthwiseConv2DProgram;
            }());

        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var DepthwiseConvPacked2DProgram = /** @class */
            (function () {
                function DepthwiseConvPacked2DProgram(convInfo, addBias, activation, hasPreluActivation, hasLeakyReluAlpha) {
                    if (addBias === void 0) {
                        addBias = false;
                    }
                    if (activation === void 0) {
                        activation = null;
                    }
                    if (hasPreluActivation === void 0) {
                        hasPreluActivation = false;
                    }
                    if (hasLeakyReluAlpha === void 0) {
                        hasLeakyReluAlpha = false;
                    }
                    this.variableNames = ['x', 'W'];
                    this.packedInputs = true;
                    this.packedOutput = true;
                    this.customUniforms = [{
                        name: 'pads',
                        type: 'ivec2'
                    }, {
                        name: 'strides',
                        type: 'ivec2'
                    }, {
                        name: 'dilations',
                        type: 'ivec2'
                    }, {
                        name: 'inDims',
                        type: 'ivec2'
                    },];
                    this.outputShape = convInfo.outShape;
                    this.enableShapeUniforms = useShapeUniforms(this.outputShape.length);
                    var channelMul = convInfo.outChannels / convInfo.inChannels;
                    var padLeft = convInfo.padInfo.left;
                    var strideWidth = convInfo.strideWidth;
                    var dilationWidth = convInfo.dilationWidth;
                    var filterHeight = convInfo.filterHeight;
                    var filterWidth = convInfo.filterWidth;
                    var texelsAcross = filterWidth;
                    var mainLoop = "\n      int xR; int xC; int xCOffset;\n      vec4 wTexel; vec4 previous; vec4 final;";
                    for (var c = 0; c < filterWidth; c++) {
                        mainLoop += "\n          vec4 xTexelC".concat(c * 2, ";\n          int xTexelC").concat(c * 2, "Ready;\n          vec4 xTexelC").concat(c * 2 + 1, ";\n          int xTexelC").concat(c * 2 + 1, "Ready;\n          vec4 xC").concat(c, ";");
                    }
                    /**
                     * This vectorized implementation works by gathering the values needed for
                     * each output channel's dot product into vec4's and then multiplying them
                     * all together (this happens in the final double for-loop below). Most of
                     * the main loop consists of constructing these vec4's with the minimum
                     * number of texture2D calls, which means making use of all four returned
                     * values from a texture2D call at once.
                     */
                    mainLoop += "\n    for (int r = 0; r < ".concat(filterHeight, "; r++) {\n      ");
                    for (var c = 0; c < filterWidth; c++) {
                        mainLoop += "\n          xTexelC".concat(c * 2, " = vec4(0.0);\n          xTexelC").concat(c * 2, "Ready = 0;\n          xTexelC").concat(c * 2 + 1, " = vec4(0.0);\n          xTexelC").concat(c * 2 + 1, "Ready = 0;\n          xC").concat(c, " = vec4(0.0);");
                    }
                    mainLoop += "\n        xR = xRCorner + r * dilations[0];\n        if (xR >=0 && xR < inDims[0]) {\n      ";
                    for (var texelC = 0; texelC < (texelsAcross + 1) / 2; texelC++) {
                        var colIndex = texelC * 2;
                        mainLoop += "\n          xC = xCCorner + ".concat(colIndex * dilationWidth, ";\n          ");
                        if (strideWidth === 1) {
                            if (colIndex < filterWidth) {
                                // If padding is odd, the outer texels have to be composed.
                                if (padLeft % 2 === 1) {
                                    // TODO: Ensure vec4 previous does not result in redundant sample,
                                    // and avoid setting xTexelRC's that exceed the boundary in the
                                    // first place rather than resetting them to vec4(0)).
                                    // To compute xCOffset:
                                    // - If padding is odd, we must add 1 to ensure we ask for an
                                    // even-numbered row.
                                    // - We subtract 2 to access the previous texel.
                                    mainLoop += "\n                xCOffset = xC + 1;\n                if (xCOffset >= 0 && xCOffset < inDims[1] && xTexelC".concat(colIndex, "Ready == 0) {\n                  xTexelC").concat(colIndex, " = getX(batch, xR, xCOffset, d1);\n\n                  // Need to manually clear unused channels in case\n                  // we're reading from recycled texture.\n                  if (xCOffset + 1 >= inDims[1]) {\n                    xTexelC").concat(colIndex, ".zw = vec2(0.0);\n                  }\n                  xTexelC").concat(colIndex, "Ready = 1;\n                }\n              ");
                                    // This texel has been read in previous iteration if the dilation
                                    // is 1.
                                    if (dilationWidth === 1 && colIndex > 0) {
                                        mainLoop += "\n                xC".concat(colIndex, " = vec4(xTexelC").concat(colIndex - 2, ".zw, xTexelC").concat(colIndex, ".xy);\n                ");
                                    } else {
                                        mainLoop += "\n                  xCOffset = xC + 1 - 2;\n\n                  if (xCOffset >= 0 && xCOffset < inDims[1]) {\n                    previous = getX(batch, xR, xCOffset, d1);\n\n                    // Need to manually clear unused channels in case\n                    // we're reading from recycled texture.\n                    if (xCOffset + 1 >= inDims[1]) {\n                      previous.zw = vec2(0.0);\n                    }\n\n                    xC".concat(colIndex, " = vec4(previous.zw, xTexelC").concat(colIndex, ".xy);\n                  } else {\n                    xC").concat(colIndex, " = vec4(0.0, 0.0, xTexelC").concat(colIndex, ".xy);\n                  }\n                  ");
                                    }
                                } else {
                                    // Padding is even, so xRC corresponds to a single texel.
                                    mainLoop += "\n                if (xC >= 0 && xC < inDims[1] && xTexelC".concat(colIndex, "Ready == 0) {\n                  xTexelC").concat(colIndex, " = getX(batch, xR, xC, d1);\n                  if (xC + 1 >= inDims[1]) {\n                    xTexelC").concat(colIndex, ".zw = vec2(0.0);\n                  }\n                  xTexelC").concat(colIndex, "Ready = 1;\n                }\n\n                xC").concat(colIndex, " = xTexelC").concat(colIndex, ";\n                ");
                                }
                                if (colIndex + 1 < filterWidth) {
                                    // If dilation is even, the second entry should match the first
                                    // (either both are composed or both are single samples). But if
                                    // dilation is odd, then the second entry should be the opposite
                                    // of the first (if the first is composed, the second is a single
                                    // sample, and vice versa.)
                                    var nextTexelOffset = padLeft % 2 === 0 ? tf.util.nearestLargerEven(dilationWidth) : dilationWidth;
                                    if ((dilationWidth % 2 === 0 && padLeft % 2 === 1) || (dilationWidth % 2 !== 0 && padLeft % 2 !== 1)) {
                                        mainLoop += "\n                  xCOffset = xC + imod(pads[1], 2) + ".concat(nextTexelOffset, ";\n\n                  if (xCOffset >= 0 && xCOffset < inDims[1] && xTexelC").concat(colIndex + 1, "Ready == 0) {\n                    xTexelC").concat(colIndex + 1, " = getX(batch, xR, xCOffset, d1);\n\n                    // Need to manually clear unused channels in case\n                    // we're reading from recycled texture.\n                    if (xCOffset + 1 >= inDims[1]) {\n                      xTexelC").concat(colIndex + 1, ".zw = vec2(0.0);\n                    }\n                    xTexelC").concat(colIndex + 1, "Ready = 1;\n                  }\n                  ");
                                        // If dilation > 1 then the xRC's will not be able to share any
                                        // values, so each xRC will require two unique calls to getX.
                                        if (dilationWidth > 1) {
                                            mainLoop += "\n                    xCOffset -= 2;\n                    if (xCOffset >= 0 && xCOffset < inDims[1]) {\n                     previous = getX(batch, xR, xCOffset, d1);\n                     xC".concat(colIndex + 1, " = vec4(previous.zw, xTexelC").concat(colIndex + 1, ".xy);\n                    } else {\n                     xC").concat(colIndex + 1, " = vec4(0.0, 0.0, xTexelC").concat(colIndex + 1, ".xy);\n                    }\n                    ");
                                        } else {
                                            mainLoop += "\n                    xC".concat(colIndex + 1, " = vec4(xTexelC").concat(colIndex, ".zw, xTexelC").concat(colIndex + 1, ".xy);\n                    ");
                                        }
                                    } else {
                                        // If dilation is 1 and padding is odd, we have already read the
                                        // texel when constructing the previous x value. Here we can
                                        // simply skip the texture read.
                                        if (nextTexelOffset === 1) {
                                            mainLoop += "\n                    xC".concat(colIndex + 1, " = xTexelC").concat(colIndex, ";\n                    ");
                                        } else {
                                            mainLoop += "\n                    xCOffset = xC + ".concat(nextTexelOffset, ";\n\n                    if (xCOffset >= 0 && xCOffset < inDims[1] && xTexelC").concat(colIndex + 1, "Ready == 0) {\n                      xTexelC").concat(colIndex + 1, " = getX(batch, xR, xCOffset, d1);\n                      if (xCOffset + 1 >= inDims[1]) {\n                        xTexelC").concat(colIndex + 1, ".zw = vec2(0.0);\n                      }\n                      xTexelC").concat(colIndex + 1, "Ready = 1;\n                    }\n\n                    xC").concat(colIndex + 1, " = xTexelC").concat(colIndex + 1, ";\n                    ");
                                        }
                                    }
                                }
                            }
                        } else {
                            // stride === 2
                            if (colIndex < filterWidth) {
                                // Depending on whether padLeft is even or odd, we want either the
                                // xy or zw channels from X texels for xC${colIndex}. If padLeft is
                                // even, xC${colIndex +1} is simply the zw channels of texels we've
                                // already sampled. But if padLeft is odd, xC{$c + 1}.zw will
                                // need to come from the xy channels of a new texel, hence the `
                                // vec4
                                // final` initialized below.
                                if (padLeft % 2 === 1) {
                                    mainLoop += "\n                xCOffset = xC + 1 - strides[1];\n                if(xCOffset >= 0 && xCOffset < inDims[1] && xTexelC".concat(colIndex, "Ready == 0) {\n                  xTexelC").concat(colIndex, " = getX(batch, xR, xCOffset, d1);\n                  // Need to manually clear unused channels in case\n                  // we're reading from recycled texture.\n                  if (xCOffset + 1 >= inDims[1]) {\n                    xTexelC").concat(colIndex, ".zw = vec2(0.0);\n                  }\n                  xTexelC").concat(colIndex, "Ready = 1;\n                }\n\n                if(xC + 1 >= 0 && xC + 1 < inDims[1] && xTexelC").concat(colIndex + 1, "Ready == 0) {\n                  xTexelC").concat(colIndex + 1, " = getX(batch, xR, xC + 1, d1);\n                  // Need to manually clear unused channels in case\n                  // we're reading from recycled texture.\n                  if (xC + 2 >= inDims[1]) {\n                    xTexelC").concat(colIndex + 1, ".zw = vec2(0.0);\n                  }\n                  xTexelC").concat(colIndex + 1, "Ready = 1;\n                }\n\n                xC").concat(colIndex, " = vec4(xTexelC").concat(colIndex, ".zw, xTexelC").concat(colIndex + 1, ".zw);\n              ");
                                    if (colIndex + 1 < filterWidth) {
                                        mainLoop += "\n                  final = vec4(0.0);\n                  xCOffset = xC + 1 + strides[1];\n                  if(xCOffset >= 0 && xCOffset < inDims[1]) {\n                    final = getX(batch, xR, xCOffset, d1);\n                  }\n                  xC".concat(colIndex + 1, " = vec4(xTexelC").concat(colIndex + 1, ".xy, final.xy);\n                ");
                                    }
                                } else {
                                    mainLoop += "\n                if(xC >= 0 && xC < inDims[1] && xTexelC".concat(colIndex, "Ready == 0) {\n                  xTexelC").concat(colIndex, " = getX(batch, xR, xC, d1);\n                  if (xC + 1 >= inDims[1]) {\n                    xTexelC").concat(colIndex, ".zw = vec2(0.0);\n                  }\n                  xTexelC").concat(colIndex, "Ready = 1;\n                }\n\n                xCOffset = xC + strides[1];\n                if(xCOffset >= 0 && xCOffset < inDims[1] && xTexelC").concat(colIndex + 1, "Ready == 0) {\n                  xTexelC").concat(colIndex + 1, " = getX(batch, xR, xCOffset, d1);\n                  if (xCOffset + 1 >= inDims[1]) {\n                    xTexelC").concat(colIndex + 1, ".zw = vec2(0.);\n                  }\n                  xTexelC").concat(colIndex + 1, "Ready = 1;\n                }\n\n                xC").concat(colIndex, " = vec4(\n                  xTexelC").concat(colIndex, ".xy, xTexelC").concat(colIndex + 1, ".xy);\n              ");
                                    if (colIndex + 1 < filterWidth) {
                                        mainLoop += "\n                  xC".concat(colIndex + 1, " = vec4(xTexelC").concat(colIndex, ".zw, xTexelC").concat(colIndex + 1, ".zw);\n                ");
                                    }
                                }
                            }
                        }
                        // localize the dotProd accumulation within the loop, the theory is for
                        // GPU with limited cache, accumulate sum across large amount of
                        // veriables will cause lots of cache misses. (i.e. 5x5 filter will have
                        // 50 variables)
                        if (colIndex < filterWidth) {
                            mainLoop += "\n            wTexel = getW(r, ".concat(colIndex, ", d1, q);\n            dotProd += xC").concat(colIndex, " * vec4(wTexel.xz, wTexel.xz);\n          ");
                            if (colIndex + 1 < filterWidth) {
                                mainLoop += "\n              wTexel = getW(r, ".concat(colIndex + 1, ", d1, q);\n              dotProd += xC").concat(colIndex + 1, " * vec4(wTexel.xz, wTexel.xz);\n            ");
                            }
                        }
                    }
                    mainLoop += "\n    }\n  ";
                    mainLoop += "\n      }\n    ";
                    var activationSnippet = ''
                        , applyActivationSnippet = '';
                    if (activation) {
                        if (hasPreluActivation) {
                            activationSnippet = "vec4 activation(vec4 a) {\n          vec4 b = getPreluActivationWeightsAtOutCoords();\n          ".concat(activation, "\n        }");
                        } else if (hasLeakyReluAlpha) {
                            activationSnippet = "vec4 activation(vec4 a) {\n          vec4 b = getLeakyreluAlphaAtOutCoords();\n          ".concat(activation, "\n        }");
                        } else {
                            activationSnippet = "vec4 activation(vec4 x) {\n          ".concat(activation, "\n        }");
                        }
                        applyActivationSnippet = "result = activation(result);";
                    }
                    var addBiasSnippet = addBias ? 'result += getBiasAtOutCoords();' : '';
                    if (addBias) {
                        this.variableNames.push('bias');
                    }
                    if (hasPreluActivation) {
                        this.variableNames.push('preluActivationWeights');
                    }
                    if (hasLeakyReluAlpha) {
                        this.variableNames.push('leakyreluAlpha');
                    }
                    this.userCode = "\n      ".concat(activationSnippet, "\n\n      void main() {\n        ivec4 coords = getOutputCoords();\n        int batch = coords.x;\n        ivec2 xRCCorner = coords.yz * strides - pads;\n        int d2 = coords.w;\n        int d1 = d2 / ").concat(channelMul, ";\n        int q = d2 - d1 * ").concat(channelMul, ";\n        int xRCorner = xRCCorner.x;\n        int xCCorner = xRCCorner.y;\n\n        //intialize dotProd with a small epsilon seems to reduce GPU accuracy loss.\n        vec4 dotProd = vec4(0.000000000000001);\n\n        ").concat(mainLoop, "\n\n        vec4 result = dotProd - vec4(0.000000000000001);\n        ").concat(addBiasSnippet, "\n        ").concat(applyActivationSnippet, "\n        setOutput(result);\n      }\n    ");
                }
                return DepthwiseConvPacked2DProgram;
            }());

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function depthwiseConv2dNative(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x
                , filter = inputs.filter;
            var strides = attrs.strides
                , pad = attrs.pad
                , dilations = attrs.dilations
                , dimRoundingMode = attrs.dimRoundingMode;
            var $dilations = dilations;
            if ($dilations == null) {
                $dilations = [1, 1];
            }
            tf.util.assert(tf.backend_util.eitherStridesOrDilationsAreOne(strides, $dilations), function () {
                return 'Error in depthwiseConv2d: Either strides or dilations must be ' + "1. Got strides ".concat(strides, " and dilations '").concat($dilations, "'");
            });
            var convInfo = tf.backend_util.computeConv2DInfo(x.shape, filter.shape, strides, $dilations, pad, dimRoundingMode, true /* depthwise */
            );
            var program;
            if (tf.env().getBool('WEBGL_PACK_DEPTHWISECONV') && convInfo.strideWidth <= 2 && convInfo.outChannels / convInfo.inChannels === 1) {
                program = new DepthwiseConvPacked2DProgram(convInfo);
            } else {
                program = new DepthwiseConv2DProgram(convInfo);
            }
            var customValues = [[convInfo.padInfo.top, convInfo.padInfo.left], [convInfo.strideHeight, convInfo.strideWidth], [convInfo.dilationHeight, convInfo.dilationWidth], [convInfo.inHeight, convInfo.inWidth]];
            return backend.runWebGLProgram(program, [x, filter], 'float32', customValues);
        }
        var depthwiseConv2dNativeConfig = {
            kernelName: tf.DepthwiseConv2dNative,
            backendName: 'webgl',
            kernelFunc: depthwiseConv2dNative,
        };

        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var DepthwiseConv2DDerFilterProgram = /** @class */
            (function () {
                function DepthwiseConv2DDerFilterProgram(convInfo) {
                    this.variableNames = ['x', 'dy'];
                    this.outputShape = convInfo.filterShape;
                    var strideHeight = convInfo.strideHeight;
                    var strideWidth = convInfo.strideWidth;
                    var padTop = convInfo.padInfo.top;
                    var padLeft = convInfo.padInfo.left;
                    var channelMul = convInfo.outChannels / convInfo.inChannels;
                    this.userCode = "\n      void main() {\n        ivec4 coords = getOutputCoords();\n        int wR = coords.x;\n        int wC = coords.y;\n        int d1 = coords.z;\n        int dm = coords.w;\n        int d2 = d1 * ".concat(channelMul, " + dm;\n\n        float dotProd = 0.0;\n\n        // TO DO: Vec4 over the batch size\n        for (int b = 0; b < ").concat(convInfo.batchSize, "; b++) {\n          for (int yR = 0; yR < ").concat(convInfo.outHeight, "; yR++) {\n            int xR = wR + yR * ").concat(strideHeight, " - ").concat(padTop, ";\n\n            if (xR < 0 || xR >= ").concat(convInfo.inHeight, ") {\n              continue;\n            }\n\n            for (int yC = 0; yC < ").concat(convInfo.outWidth, "; yC++) {\n              int xC = wC + yC * ").concat(strideWidth, " - ").concat(padLeft, ";\n\n              if (xC < 0 || xC >= ").concat(convInfo.inWidth, ") {\n                continue;\n              }\n\n              float dyValue = getDy(b, yR, yC, d2);\n              float xValue = getX(b, xR, xC, d1);\n              dotProd += (xValue * dyValue);\n            }\n          }\n        }\n        setOutput(dotProd);\n      }\n    ");
                }
                return DepthwiseConv2DDerFilterProgram;
            }());
        var DepthwiseConv2DDerInputProgram = /** @class */
            (function () {
                function DepthwiseConv2DDerInputProgram(convInfo) {
                    this.variableNames = ['dy', 'W'];
                    this.outputShape = convInfo.inShape;
                    var filterHeight = convInfo.filterHeight;
                    var filterWidth = convInfo.filterWidth;
                    var strideHeight = convInfo.strideHeight;
                    var strideWidth = convInfo.strideWidth;
                    var padTop = filterHeight - 1 - convInfo.padInfo.top;
                    var padLeft = filterWidth - 1 - convInfo.padInfo.left;
                    var channelMul = convInfo.outChannels / convInfo.inChannels;
                    this.userCode = "\n      const ivec2 pads = ivec2(".concat(padTop, ", ").concat(padLeft, ");\n\n      void main() {\n        ivec4 coords = getOutputCoords();\n        int batch = coords[0];\n        int d1 = coords[3];\n        ivec2 dyCorner = coords.yz - pads;\n        int dyRCorner = dyCorner.x;\n        int dyCCorner = dyCorner.y;\n\n        float dotProd = 0.0;\n\n        for (int wR = 0; wR < ").concat(filterHeight, "; wR++) {\n          float dyR = float(dyRCorner + wR) / ").concat(strideHeight, ".0;\n\n          if (dyR < 0.0 || dyR >= ").concat(convInfo.outHeight, ".0 || fract(dyR) > 0.0) {\n            continue;\n          }\n          int idyR = int(dyR);\n\n          int wRPerm = ").concat(filterHeight, " - 1 - wR;\n\n          for (int wC = 0; wC < ").concat(filterWidth, "; wC++) {\n            float dyC = float(dyCCorner + wC) / ").concat(strideWidth, ".0;\n\n            if (dyC < 0.0 || dyC >= ").concat(convInfo.outWidth, ".0 ||\n                fract(dyC) > 0.0) {\n              continue;\n            }\n            int idyC = int(dyC);\n\n            int wCPerm = ").concat(filterWidth, " - 1 - wC;\n\n            // TO DO: Vec4 over the channelMul\n            for (int dm = 0; dm < ").concat(channelMul, "; dm++) {\n              int d2 = d1 * ").concat(channelMul, " + dm;\n              float xValue = getDy(batch, idyR, idyC, d2);\n              float wValue = getW(wRPerm, wCPerm, d1, dm);\n              dotProd += xValue * wValue;\n            }\n          }\n        }\n        setOutput(dotProd);\n      }\n    ");
                }
                return DepthwiseConv2DDerInputProgram;
            }());

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function depthwiseConv2dNativeBackpropFilter(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x
                , dy = inputs.dy;
            var strides = attrs.strides
                , dilations = attrs.dilations
                , pad = attrs.pad
                , dimRoundingMode = attrs.dimRoundingMode
                , filterShape = attrs.filterShape;
            var convInfo = tf.backend_util.computeConv2DInfo(x.shape, filterShape, strides, dilations, pad, dimRoundingMode, true /* depthwise */
            );
            var program = new DepthwiseConv2DDerFilterProgram(convInfo);
            return backend.runWebGLProgram(program, [x, dy], 'float32');
        }
        var depthwiseConv2dNativeBackpropFilterConfig = {
            kernelName: tf.DepthwiseConv2dNativeBackpropFilter,
            backendName: 'webgl',
            kernelFunc: depthwiseConv2dNativeBackpropFilter
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function depthwiseConv2dNativeBackpropInput(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var dy = inputs.dy
                , filter = inputs.filter;
            var strides = attrs.strides
                , dilations = attrs.dilations
                , pad = attrs.pad
                , dimRoundingMode = attrs.dimRoundingMode
                , inputShape = attrs.inputShape;
            var convInfo = tf.backend_util.computeConv2DInfo(inputShape, filter.shape, strides, dilations, pad, dimRoundingMode, true /* depthwise */
            );
            var program = new DepthwiseConv2DDerInputProgram(convInfo);
            return backend.runWebGLProgram(program, [dy, filter], 'float32');
        }
        var depthwiseConv2dNativeBackpropInputConfig = {
            kernelName: tf.DepthwiseConv2dNativeBackpropInput,
            backendName: 'webgl',
            kernelFunc: depthwiseConv2dNativeBackpropInput
        };

        /**
         * @license
         * Copyright 2019 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var DiagProgram = /** @class */
            (function () {
                function DiagProgram(size) {
                    this.variableNames = ['X'];
                    this.outputShape = [size, size];
                    this.userCode = "\n      void main() {\n          ivec2 coords = getOutputCoords();\n          float val = coords[0] == coords[1] ? getX(coords[0]) : 0.0;\n          setOutput(val);\n      }\n    ";
                }
                return DiagProgram;
            }());

        function diag(args) {
            var inputs = args.inputs
                , backend = args.backend;
            var x = inputs.x;
            var outShape = __spreadArray(__spreadArray([], __read(x.shape), false), __read(x.shape), false);
            var xSize = tf.util.sizeFromShape(x.shape);
            var flat = reshape({
                inputs: {
                    x: x
                },
                backend: backend,
                attrs: {
                    shape: [xSize]
                }
            });
            var program = new DiagProgram(xSize);
            var res = backend.runWebGLProgram(program, [flat], flat.dtype);
            var out = reshape({
                inputs: {
                    x: res
                },
                backend: backend,
                attrs: {
                    shape: outShape
                }
            });
            backend.disposeIntermediateTensorInfo(flat);
            backend.disposeIntermediateTensorInfo(res);
            return out;
        }
        var diagConfig = {
            kernelName: tf.Diag,
            backendName: 'webgl',
            kernelFunc: diag
        };

        /**
         * @license
         * Copyright 2017 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var Dilation2DProgram = /** @class */
            (function () {
                function Dilation2DProgram(convInfo) {
                    this.variableNames = ['x', 'W'];
                    this.outputShape = convInfo.outShape;
                    var inHeight = convInfo.inHeight
                        , inWidth = convInfo.inWidth
                        , padInfo = convInfo.padInfo
                        , strideHeight = convInfo.strideHeight
                        , strideWidth = convInfo.strideWidth
                        , filterHeight = convInfo.filterHeight
                        , filterWidth = convInfo.filterWidth
                        , dilationHeight = convInfo.dilationHeight
                        , dilationWidth = convInfo.dilationWidth;
                    var padTop = padInfo.top
                        , padLeft = padInfo.left;
                    this.userCode = "\n      const ivec2 strides = ivec2(".concat(strideHeight, ", ").concat(strideWidth, ");\n      const ivec2 pads = ivec2(").concat(padTop, ", ").concat(padLeft, ");\n      const float neg_infinity = -3.4e38;\n\n      void main() {\n        ivec4 coords = getOutputCoords();\n        int batch = coords.x;\n        int d1 = coords.w;\n        ivec2 outTopLeftCorner =\n            coords.yz * strides - pads;\n        int hBeg = outTopLeftCorner.x;\n        int wBeg = outTopLeftCorner.y;\n\n        float curVal = neg_infinity;\n        for (int h = 0; h < ").concat(filterHeight, "; h++) {\n          int hIn = hBeg + h * ").concat(dilationHeight, ";\n\n          if (hIn >= 0 && hIn < ").concat(inHeight, ") {\n            for (int w = 0; w < ").concat(filterWidth, "; w++) {\n              int wIn = wBeg + w * ").concat(dilationWidth, ";\n\n              if (wIn >= 0 && wIn < ").concat(inWidth, ") {\n                float xVal = getX(batch, hIn, wIn, d1);\n                float wVal = getW(h, w, d1);\n\n                float val = xVal + wVal;\n                if (val > curVal) {\n                  curVal = val;\n                }\n              }\n            }\n          }\n        }\n\n        float result = curVal;\n        setOutput(result);\n      }\n    ");
                }
                return Dilation2DProgram;
            }());

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function dilation2D(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x
                , filter = inputs.filter;
            var strides = attrs.strides
                , pad = attrs.pad
                , dilations = attrs.dilations;
            var convInfo = tf.backend_util.computeDilation2DInfo(x.shape, filter.shape, strides, pad, 'NHWC'/* dataFormat */
                , dilations);
            var out;
            var program = new Dilation2DProgram(convInfo);
            out = backend.runWebGLProgram(program, [x, filter], 'float32');
            var outReshaped = reshape({
                inputs: {
                    x: out
                },
                backend: backend,
                attrs: {
                    shape: convInfo.outShape
                }
            });
            backend.disposeIntermediateTensorInfo(out);
            return outReshaped;
        }
        var dilation2DConfig = {
            kernelName: tf.Dilation2D,
            backendName: 'webgl',
            kernelFunc: dilation2D,
        };

        function einsum(args) {
            var e_1, _a, e_2, _b;
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var equation = attrs.equation;
            var tensors = inputs;
            var _c = tf.backend_util.decodeEinsumEquation(equation, tensors.length)
                , allDims = _c.allDims
                , summedDims = _c.summedDims
                , idDims = _c.idDims;
            tf.backend_util.checkEinsumDimSizes(allDims.length, idDims, tensors);
            var _d = tf.backend_util.getEinsumComputePath(summedDims, idDims)
                , path = _d.path
                , steps = _d.steps;
            var nSteps = steps.length;
            var out = null;
            var numDimsRemaining = allDims.length;
            var tensorsToDispose = [];
            for (var i = 0; i < nSteps; ++i) {
                try {
                    for (var _e = (e_1 = void 0,
                        __values(steps[i])), _f = _e.next(); !_f.done; _f = _e.next()) {
                        var idTerm = _f.value;
                        var _g = tf.backend_util.getEinsumPermutation(numDimsRemaining, idDims[idTerm])
                            , perm = _g.permutationIndices
                            , dimsToExpand = _g.expandDims;
                        var x = void 0;
                        if (tf.backend_util.isIdentityPermutation(perm)) {
                            x = tensors[idTerm];
                        } else {
                            x = transpose({
                                inputs: {
                                    x: tensors[idTerm]
                                },
                                backend: backend,
                                attrs: {
                                    perm: perm
                                }
                            });
                            tensorsToDispose.push(x);
                        }
                        var targetShape = x.shape.slice();
                        for (var k = 0; k < dimsToExpand.length; ++k) {
                            targetShape.splice(dimsToExpand[k], 0, 1);
                        }
                        if (!tf.util.arraysEqual(x.shape, targetShape)) {
                            x = reshape({
                                inputs: {
                                    x: x
                                },
                                backend: backend,
                                attrs: {
                                    shape: targetShape
                                }
                            });
                            tensorsToDispose.push(x);
                        }
                        if (out === null) {
                            out = x;
                        } else {
                            // tslint:disable-next-line: no-unnecessary-type-assertion
                            out = multiply({
                                inputs: {
                                    a: x,
                                    b: out
                                },
                                backend: backend
                            });
                            tensorsToDispose.push(out);
                        }
                    }
                } catch (e_1_1) {
                    e_1 = {
                        error: e_1_1
                    };
                } finally {
                    try {
                        if (_f && !_f.done && (_a = _e.return))
                            _a.call(_e);
                    } finally {
                        if (e_1)
                            throw e_1.error;
                    }
                }
                if (i < nSteps - 1) {
                    if (path[i] >= 0) {
                        out = sum({
                            inputs: {
                                x: out
                            },
                            backend: backend,
                            attrs: {
                                axis: path[i] - (allDims.length - numDimsRemaining),
                                keepDims: false
                            }
                        });
                        tensorsToDispose.push(out);
                    }
                    numDimsRemaining--;
                }
            }
            try {
                // Clean up intermediate tensors.
                for (var tensorsToDispose_1 = __values(tensorsToDispose), tensorsToDispose_1_1 = tensorsToDispose_1.next(); !tensorsToDispose_1_1.done; tensorsToDispose_1_1 = tensorsToDispose_1.next()) {
                    var tensorInfo = tensorsToDispose_1_1.value;
                    if (tensorInfo === out) {
                        continue;
                    }
                    backend.disposeIntermediateTensorInfo(tensorInfo);
                }
            } catch (e_2_1) {
                e_2 = {
                    error: e_2_1
                };
            } finally {
                try {
                    if (tensorsToDispose_1_1 && !tensorsToDispose_1_1.done && (_b = tensorsToDispose_1.return))
                        _b.call(tensorsToDispose_1);
                } finally {
                    if (e_2)
                        throw e_2.error;
                }
            }
            return out;
        }
        var einsumConfig = {
            kernelName: tf.Einsum,
            backendName: 'webgl',
            kernelFunc: einsum
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var ELU = "return (x >= 0.0) ? x : (exp(x) - 1.0);";
        var ELU_PACKED = "\n  vec4 result;\n\n  result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0);\n  result.g = (x.g >= 0.0) ? x.g : (exp(x.g) - 1.0);\n  result.b = (x.b >= 0.0) ? x.b : (exp(x.b) - 1.0);\n  result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0);\n\n  return result;\n";
        var elu = unaryKernelFunc({
            opSnippet: ELU,
            packedOpSnippet: ELU_PACKED
        });
        var eluConfig = {
            kernelName: tf.Elu,
            backendName: 'webgl',
            kernelFunc: elu
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var ELU_DER = "return (b >= 1.0) ? a : a * (b + 1.0);";
        var ELU_DER_PACKED = "\n  vec4 bGTEZero = vec4(greaterThanEqual(b, vec4(0.)));\n  return (bGTEZero * a) + ((vec4(1.0) - bGTEZero) * (a * (b + vec4(1.0))));\n";
        var eluGrad = function (args) {
            var inputs = args.inputs
                , backend = args.backend;
            var dy = inputs.dy
                , y = inputs.y;
            var program = tf.env().getBool('WEBGL_PACK_BINARY_OPERATIONS') ? new BinaryOpPackedProgram(ELU_DER_PACKED, dy.shape, y.shape) : new BinaryOpProgram(ELU_DER, dy.shape, y.shape);
            return backend.runWebGLProgram(program, [dy, y], dy.dtype);
        };
        var eluGradConfig = {
            kernelName: tf.EluGrad,
            backendName: 'webgl',
            kernelFunc: eluGrad
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var PACKED_EQUAL = "\n  return vec4(equal(a, b));\n";
        var EQUAL = "return float(a == b);";
        var equal = binaryKernelFunc({
            opSnippet: EQUAL,
            packedOpSnippet: PACKED_EQUAL,
            dtype: 'bool',
            cpuKernelImpl: equalImplCPU,
        });
        var equalConfig = {
            kernelName: tf.Equal,
            backendName: 'webgl',
            kernelFunc: equal
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var ERF = "\n  // Error function is calculated approximately with elementary function.\n  // See \"Handbook of Mathematical Functions with Formulas,\n  // Graphs, and Mathematical Tables\", Abramowitz and Stegun.\n  float p = ".concat(tf.backend_util.ERF_P, ";\n  float a1 = ").concat(tf.backend_util.ERF_A1, ";\n  float a2 = ").concat(tf.backend_util.ERF_A2, ";\n  float a3 = ").concat(tf.backend_util.ERF_A3, ";\n  float a4 = ").concat(tf.backend_util.ERF_A4, ";\n  float a5 = ").concat(tf.backend_util.ERF_A5, ";\n\n  float sign = sign(x);\n  x = abs(x);\n  float t = 1.0 / (1.0 + p * x);\n  return sign * (1.0 - (((((a5*t + a4)*t) + a3)*t + a2)*t + a1)*t*exp(-x*x));\n");
        var erf = unaryKernelFunc({
            opSnippet: ERF
        });
        var erfConfig = {
            kernelName: tf.Erf,
            backendName: 'webgl',
            kernelFunc: erf,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var EXP = CHECK_NAN_SNIPPET_UNARY + "\n  return exp(x);\n";
        var EXP_PACKED = "\n  vec4 result = exp(x);\n  bvec4 isNaN = isnan(x);\n  result.r = isNaN.r ? x.r : result.r;\n  result.g = isNaN.g ? x.g : result.g;\n  result.b = isNaN.b ? x.b : result.b;\n  result.a = isNaN.a ? x.a : result.a;\n\n  return result;\n";
        var exp = unaryKernelFunc({
            opSnippet: EXP,
            packedOpSnippet: EXP_PACKED,
            cpuKernelImpl: expImplCPU,
            dtype: 'float32',
        });
        var expConfig = {
            kernelName: tf.Exp,
            backendName: 'webgl',
            kernelFunc: exp
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the License);
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an AS IS BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function expandDims(args) {
            var inputs = args.inputs
                , attrs = args.attrs
                , backend = args.backend;
            var dim = attrs.dim;
            var input = inputs.input;
            var inputRank = input.shape.length;
            var newShape = input.shape.slice();
            var $dim = dim;
            if (dim < 0) {
                // Negative value is counted from the tail of rank.
                tf.util.assert(-(inputRank + 1) <= dim, function () {
                    return "Axis must be in the interval [".concat(-(inputRank + 1), ", ").concat(inputRank, "]");
                });
                $dim = inputRank + dim + 1;
            }
            newShape.splice($dim, 0, 1);
            return reshape({
                inputs: {
                    x: input
                },
                backend: backend,
                attrs: {
                    shape: newShape
                }
            });
        }
        var expandDimsConfig = {
            kernelName: tf.ExpandDims,
            backendName: 'webgl',
            kernelFunc: expandDims,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var EXPM1 = "return exp(x) - 1.0;";
        var expm1 = unaryKernelFunc({
            opSnippet: EXPM1,
            packedOpSnippet: EXPM1,
            cpuKernelImpl: expm1ImplCPU
        });
        var expm1Config = {
            kernelName: tf.Expm1,
            backendName: 'webgl',
            kernelFunc: expm1
        };

        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var FFTProgram = /** @class */
            (function () {
                function FFTProgram(component, inputShape, inverse) {
                    this.variableNames = ['real', 'imag'];
                    var innerDim = inputShape[1];
                    this.outputShape = inputShape;
                    var exponentMultiplierSnippet = inverse ? "2.0 * ".concat(Math.PI) : "-2.0 * ".concat(Math.PI);
                    var resultDenominator = inverse ? "".concat(innerDim, ".0") : '1.0';
                    var opString;
                    if (component === 'real') {
                        opString = 'return real * expR - imag * expI;';
                    } else if (component === 'imag') {
                        opString = 'return real * expI + imag * expR;';
                    } else {
                        throw new Error("FFT component must be either \"real\" or \"imag\", got ".concat(component, "."));
                    }
                    this.userCode = "\n      const float exponentMultiplier = ".concat(exponentMultiplierSnippet, ";\n\n      float unaryOpComplex(float real, float expR, float imag, float expI) {\n        ").concat(opString, "\n      }\n\n      float mulMatDFT(int batch, int index) {\n        float indexRatio = float(index) / float(").concat(innerDim, ");\n        float exponentMultiplierTimesIndexRatio =\n            exponentMultiplier * indexRatio;\n\n        float result = 0.0;\n\n        for (int i = 0; i < ").concat(innerDim, "; i++) {\n          // x = (-2|2 * PI / N) * index * i;\n          float x = exponentMultiplierTimesIndexRatio * float(i);\n          float expR = cos(x);\n          float expI = sin(x);\n          float real = getReal(batch, i);\n          float imag = getImag(batch, i);\n\n          result +=\n              unaryOpComplex(real, expR, imag, expI) / ").concat(resultDenominator, ";\n        }\n\n        return result;\n      }\n\n      void main() {\n        ivec2 coords = getOutputCoords();\n        setOutput(mulMatDFT(coords[0], coords[1]));\n      }\n    ");
                }
                return FFTProgram;
            }());

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function fftImpl(x, inverse, backend) {
            var xData = backend.texData.get(x.dataId);
            var inputSize = tf.util.sizeFromShape(x.shape);
            // Collapse all outer dimensions to a single batch dimension.
            var innerDimensionSize = x.shape[x.shape.length - 1];
            var batch = inputSize / innerDimensionSize;
            var input2D = reshape({
                inputs: {
                    x: x
                },
                backend: backend,
                attrs: {
                    shape: [batch, innerDimensionSize]
                }
            });
            var xShape = input2D.shape;
            var realProgram = new FFTProgram('real', xShape, inverse);
            var imagProgram = new FFTProgram('imag', xShape, inverse);
            var inputs = [{
                dataId: xData.complexTensorInfos.real.dataId,
                dtype: xData.complexTensorInfos.real.dtype,
                shape: xShape
            }, {
                dataId: xData.complexTensorInfos.imag.dataId,
                dtype: xData.complexTensorInfos.imag.dtype,
                shape: xShape
            }];
            var realPart = backend.runWebGLProgram(realProgram, inputs, 'float32');
            var imagPart = backend.runWebGLProgram(imagProgram, inputs, 'float32');
            var complexOutput = complex({
                inputs: {
                    real: realPart,
                    imag: imagPart
                },
                backend: backend
            });
            backend.disposeIntermediateTensorInfo(realPart);
            backend.disposeIntermediateTensorInfo(imagPart);
            var complexOutputReshaped = reshape({
                inputs: {
                    x: complexOutput
                },
                backend: backend,
                attrs: {
                    shape: x.shape
                }
            });
            backend.disposeIntermediateTensorInfo(input2D);
            backend.disposeIntermediateTensorInfo(complexOutput);
            return complexOutputReshaped;
        }

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function fft(args) {
            var inputs = args.inputs
                , backend = args.backend;
            var input = inputs.input;
            return fftImpl(input, false /* inverse */
                , backend);
        }
        var fftConfig = {
            kernelName: tf.FFT,
            backendName: 'webgl',
            kernelFunc: fft
        };

        /**
         * @license
         * Copyright 2019 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var FillProgram = /** @class */
            (function () {
                function FillProgram(shape, value) {
                    this.outputShape = [];
                    this.customUniforms = [{
                        name: 'value',
                        type: 'float'
                    }];
                    this.variableNames = ['x'];
                    this.outputShape = shape;
                    this.userCode = "\n      void main() {\n        // Input can be obtained from uniform value.\n        setOutput(value);\n      }\n    ";
                }
                return FillProgram;
            }());

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function fill(args) {
            var backend = args.backend
                , attrs = args.attrs;
            var shape = attrs.shape
                , value = attrs.value;
            var dtype = attrs.dtype;
            dtype = dtype || tf.util.inferDtype(value);
            if (dtype === 'string') {
                // String type should be handled in CPU memory.
                var values = tf.util.getArrayFromDType(dtype, tf.util.sizeFromShape(shape));
                values.fill(value);
                return backend.makeTensorInfo(shape, dtype, values);
            } else {
                var program = new FillProgram(shape, value);
                var customValues = [[value]];
                return backend.runWebGLProgram(program, [], dtype, customValues);
            }
        }
        var fillConfig = {
            kernelName: tf.Fill,
            backendName: 'webgl',
            kernelFunc: fill
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var FlipLeftRightProgram = /** @class */
            (function () {
                function FlipLeftRightProgram(imageShape) {
                    this.variableNames = ['Image'];
                    this.outputShape = [];
                    var imageWidth = imageShape[2];
                    this.outputShape = imageShape;
                    this.userCode = "\n        void main() {\n          ivec4 coords = getOutputCoords();\n          int x = coords[2];\n\n          int coordX = ".concat(imageWidth, " - x - 1;\n          float outputValue;\n          if(coordX >= 0 && coordX < ").concat(imageWidth, ") {\n            outputValue = getImage(coords[0], coords[1], coordX, coords[3]);\n          } else {\n            outputValue = getImage(coords[0], coords[1], coords[2], coords[3]);\n          }\n          setOutput(outputValue);\n        }\n    ");
                }
                return FlipLeftRightProgram;
            }());

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var flipLeftRightConfig = {
            kernelName: tf.FlipLeftRight,
            backendName: 'webgl',
            kernelFunc: function (_a) {
                var inputs = _a.inputs
                    , backend = _a.backend;
                var image = inputs.image;
                var webglBackend = backend;
                var program = new FlipLeftRightProgram(image.shape);
                var output = webglBackend.runWebGLProgram(program, [image], image.dtype);
                return output;
            }
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var FLOOR = "return floor(x);";
        var floor = unaryKernelFunc({
            opSnippet: FLOOR,
            packedOpSnippet: FLOOR,
            cpuKernelImpl: floorImplCPU
        });
        var floorConfig = {
            kernelName: tf.Floor,
            backendName: 'webgl',
            kernelFunc: floor,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        // We use native integer division to deal with floating point imprecision. Since
        // we implement floor division and glsl implements truncated division, we
        // correct for this by subtracting 1 from result when the result is negative and
        // there is a remainder.
        var INT_DIV = "\n  float s = sign(a) * sign(b);\n  int ia = round(a);\n  int ib = round(b);\n  if (ib != 0) {\n    // Windows (D3D) wants guaranteed non-zero int division at compile-time.\n    return float(idiv(ia, ib, s));\n  } else {\n    return NAN;\n  }\n";
        var INT_DIV_PACKED = "\n  ivec4 ia = round(a);\n  ivec4 ib = round(b);\n  bvec4 cond = notEqual(ib, ivec4(0));\n  ivec4 result = ivec4(0);\n  vec4 s = sign(a) * sign(b);\n\n  // Windows (D3D) wants guaranteed non-zero int division at compile-time.\n  if (cond[0]) {\n    result[0] = idiv(ia[0], ib[0], s[0]);\n  }\n  if (cond[1]) {\n    result[1] = idiv(ia[1], ib[1], s[1]);\n  }\n  if (cond[2]) {\n    result[2] = idiv(ia[2], ib[2], s[2]);\n  }\n  if (cond[3]) {\n    result[3] = idiv(ia[3], ib[3], s[3]);\n  }\n  return vec4(result);\n";
        var floorDiv = binaryKernelFunc({
            opSnippet: INT_DIV,
            packedOpSnippet: INT_DIV_PACKED,
            dtype: 'int32'
        });
        var floorDivConfig = {
            kernelName: tf.FloorDiv,
            backendName: 'webgl',
            kernelFunc: floorDiv
        };

        var FromPixelsProgram = /** @class */
            (function () {
                function FromPixelsProgram(outputShape) {
                    this.variableNames = ['A'];
                    var glsl = getGlslDifferences();
                    var _a = __read(outputShape, 2)
                        , height = _a[0]
                        , width = _a[1];
                    this.outputShape = outputShape;
                    this.userCode = "\n      void main() {\n        ivec3 coords = getOutputCoords();\n        int texR = coords[0];\n        int texC = coords[1];\n        int depth = coords[2];\n        vec2 uv = (vec2(texC, texR) + halfCR) / vec2(".concat(width, ".0, ").concat(height, ".0);\n\n        vec4 values = ").concat(glsl.texture2D, "(A, uv);\n        float value;\n        if (depth == 0) {\n          value = values.r;\n        } else if (depth == 1) {\n          value = values.g;\n        } else if (depth == 2) {\n          value = values.b;\n        } else if (depth == 3) {\n          value = values.a;\n        }\n\n        setOutput(floor(value * 255.0 + 0.5));\n      }\n    ");
                }
                return FromPixelsProgram;
            }());

        var FromPixelsPackedProgram = /** @class */
            (function () {
                function FromPixelsPackedProgram(outputShape) {
                    this.variableNames = ['A'];
                    this.packedInputs = false;
                    this.packedOutput = true;
                    var glsl = getGlslDifferences();
                    var _a = __read(outputShape, 2)
                        , height = _a[0]
                        , width = _a[1];
                    this.outputShape = outputShape;
                    this.userCode = "\n      void main() {\n        ivec3 coords = getOutputCoords();\n        int texR = coords[0];\n        int texC = coords[1];\n        int depth = coords[2];\n\n        vec4 result = vec4(0.);\n\n        for(int row=0; row<=1; row++) {\n          for(int col=0; col<=1; col++) {\n            texC = coords[1] + row;\n            depth = coords[2] + col;\n\n            vec2 uv = (vec2(texC, texR) + halfCR) /\n                       vec2(".concat(width, ".0, ").concat(height, ".0);\n            vec4 values = ").concat(glsl.texture2D, "(A, uv);\n            float value;\n            if (depth == 0) {\n              value = values.r;\n            } else if (depth == 1) {\n              value = values.g;\n            } else if (depth == 2) {\n              value = values.b;\n            } else if (depth == 3) {\n              value = values.a;\n            }\n\n            result[row * 2 + col] = floor(value * 255.0 + 0.5);\n          }\n        }\n\n        ").concat(glsl.output, " = result;\n      }\n    ");
                }
                return FromPixelsPackedProgram;
            }());

        var fromPixelsConfig = {
            kernelName: tf.FromPixels,
            backendName: 'webgl',
            kernelFunc: fromPixels,
        };
        var fromPixels2DContext;
        var willReadFrequently = tf.env().getBool('CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU');
        function fromPixels(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var pixels = inputs.pixels;
            var numChannels = attrs.numChannels;
            var isVideo = typeof (HTMLVideoElement) !== 'undefined' && pixels instanceof HTMLVideoElement;
            var isImage = typeof (HTMLImageElement) !== 'undefined' && pixels instanceof HTMLImageElement;
            var _a = __read(isVideo ? [pixels.videoWidth, pixels.videoHeight] : [pixels.width, pixels.height], 2)
                , width = _a[0]
                , height = _a[1];
            var texShape = [height, width];
            var outShape = [height, width, numChannels];
            if (isImage || isVideo) {
                var newWillReadFrequently = tf.env().getBool('CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU');
                if (fromPixels2DContext == null || newWillReadFrequently !== willReadFrequently) {
                    willReadFrequently = newWillReadFrequently;
                    fromPixels2DContext = document.createElement('canvas').getContext('2d', {
                        willReadFrequently: willReadFrequently
                    });
                }
                fromPixels2DContext.canvas.width = width;
                fromPixels2DContext.canvas.height = height;
                fromPixels2DContext.drawImage(pixels, 0, 0, width, height);
                pixels = fromPixels2DContext.canvas;
            }
            var tempPixelHandle = backend.makeTensorInfo(texShape, 'int32');
            // This is a byte texture with pixels.
            backend.texData.get(tempPixelHandle.dataId).usage = TextureUsage.PIXELS;
            backend.gpgpu.uploadPixelDataToTexture(backend.getTexture(tempPixelHandle.dataId), pixels);
            var program = tf.env().getBool('WEBGL_PACK') ? new FromPixelsPackedProgram(outShape) : new FromPixelsProgram(outShape);
            var res = backend.runWebGLProgram(program, [tempPixelHandle], 'int32');
            backend.disposeData(tempPixelHandle.dataId);
            return res;
        }

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function fusedConv2d(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x
                , filter = inputs.filter
                , bias = inputs.bias
                , preluActivationWeights = inputs.preluActivationWeights;
            var strides = attrs.strides
                , pad = attrs.pad
                , dataFormat = attrs.dataFormat
                , dilations = attrs.dilations
                , dimRoundingMode = attrs.dimRoundingMode
                , activation = attrs.activation
                , leakyreluAlpha = attrs.leakyreluAlpha;
            var $dataFormat = tf.backend_util.convertConv2DDataFormat(dataFormat);
            var convInfo = tf.backend_util.computeConv2DInfo(x.shape, filter.shape, strides, dilations, pad, dimRoundingMode, false /* depthwise */
                , $dataFormat);
            var out;
            var intermediates = [];
            var hasBias = bias != null;
            var hasPreluActivationWeights = preluActivationWeights != null;
            var hasLeakyreluAlpha = activation === 'leakyrelu';
            var prepareInputs = function () {
                var inputs = [x, filter];
                // If the input is a 1-D tensor, align it with the channels.
                //
                // For fusedConv2d, the inputs (x, W, bias, preluActivationWeights) are
                // supposed to be aligned with the dataFormat. The 4-D tensor inputs or
                // scalar inputs are originally aligned, but the 1-D tensor inputs are
                // supposed to be aligned with the channels (only bias and PReLU activation
                // weights could be a 1-D tensor).
                var alignInputWithDataFormat = function (input, dataFormat) {
                    if (dataFormat === 'NCHW' && input.shape.length === 1 && input.shape[0] !== 1) {
                        var alignedInput = reshape({
                            inputs: {
                                x: input
                            },
                            backend: backend,
                            attrs: {
                                shape: [input.shape[0], 1, 1]
                            }
                        });
                        intermediates.push(alignedInput);
                        return alignedInput;
                    }
                    return input;
                };
                if (hasBias) {
                    inputs.push(alignInputWithDataFormat(bias, dataFormat));
                }
                if (hasPreluActivationWeights) {
                    inputs.push(alignInputWithDataFormat(preluActivationWeights, dataFormat));
                }
                if (hasLeakyreluAlpha) {
                    var $leakyreluAlpha = backend.makeTensorInfo([], 'float32', tf.util.createScalarValue(leakyreluAlpha, 'float32'));
                    inputs.push($leakyreluAlpha);
                    intermediates.push($leakyreluAlpha);
                }
                return inputs;
            };
            if (convInfo.filterHeight === 1 && convInfo.filterWidth === 1 && convInfo.dilationHeight === 1 && convInfo.dilationWidth === 1 && convInfo.strideHeight === 1 && convInfo.strideWidth === 1 && (convInfo.padInfo.type === 'SAME' || convInfo.padInfo.type === 'VALID')) {
                out = conv2dByMatMul({
                    x: x,
                    filter: filter,
                    convInfo: convInfo,
                    backend: backend,
                    bias: bias,
                    activation: activation,
                    preluActivationWeights: preluActivationWeights,
                    leakyreluAlpha: leakyreluAlpha
                });
            } else if (convInfo.strideWidth <= 2 && $dataFormat === 'channelsLast' && tf.env().getBool('WEBGL_EXP_CONV')) {
                var fusedActivation = activation ? mapActivationToShaderProgram(activation, true) : null;
                var program = new Conv2DPackedProgram(convInfo, hasBias, fusedActivation, hasPreluActivationWeights, hasLeakyreluAlpha);
                var customValues = [[convInfo.padInfo.top, convInfo.padInfo.left], [convInfo.strideHeight, convInfo.strideWidth], [convInfo.dilationHeight, convInfo.dilationWidth], [convInfo.inHeight, convInfo.inWidth]];
                var inputs_1 = prepareInputs();
                out = backend.runWebGLProgram(program, inputs_1, 'float32', customValues);
            } else if (tf.env().getBool('WEBGL_CONV_IM2COL')) {
                out = conv2dWithIm2Row({
                    x: x,
                    filter: filter,
                    convInfo: convInfo,
                    backend: backend,
                    bias: bias,
                    activation: activation,
                    preluActivationWeights: preluActivationWeights,
                    leakyreluAlpha: leakyreluAlpha
                });
            } else {
                var fusedActivation = activation ? mapActivationToShaderProgram(activation, false) : null;
                var program = new Conv2DProgram(convInfo, hasBias, fusedActivation, hasPreluActivationWeights, hasLeakyreluAlpha);
                var inputs_2 = prepareInputs();
                out = backend.runWebGLProgram(program, inputs_2, 'float32');
            }
            var outReshaped = reshape({
                inputs: {
                    x: out
                },
                backend: backend,
                attrs: {
                    shape: convInfo.outShape
                }
            });
            intermediates.push(out);
            intermediates.forEach(function (t) {
                return backend.disposeIntermediateTensorInfo(t);
            });
            return outReshaped;
        }
        var fusedConv2DConfig = {
            kernelName: tf.FusedConv2D,
            backendName: 'webgl',
            kernelFunc: fusedConv2d,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function fusedDepthwiseConv2D(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x
                , filter = inputs.filter
                , bias = inputs.bias
                , preluActivationWeights = inputs.preluActivationWeights;
            var strides = attrs.strides
                , pad = attrs.pad
                , dilations = attrs.dilations
                , dimRoundingMode = attrs.dimRoundingMode
                , activation = attrs.activation
                , leakyreluAlpha = attrs.leakyreluAlpha;
            var intermediates = [];
            var $dilations = dilations;
            if ($dilations == null) {
                $dilations = [1, 1];
            }
            tf.util.assert(tf.backend_util.eitherStridesOrDilationsAreOne(strides, $dilations), function () {
                return 'Error in depthwiseConv2d: Either strides or dilations must be ' + "1. Got strides ".concat(strides, " and dilations '").concat($dilations, "'");
            });
            var convInfo = tf.backend_util.computeConv2DInfo(x.shape, filter.shape, strides, $dilations, pad, dimRoundingMode, true /* depthwise */
            );
            var shouldPackDepthwiseConv = tf.env().getBool('WEBGL_PACK_DEPTHWISECONV') && convInfo.strideWidth <= 2 && convInfo.outChannels / convInfo.inChannels === 1;
            var fusedActivation = activation ? mapActivationToShaderProgram(activation, shouldPackDepthwiseConv) : null;
            var programInputs = [x, filter];
            var hasBias = bias != null;
            var hasPreluActivationWeights = preluActivationWeights != null;
            var hasLeakyreluAlpha = activation === 'leakyrelu';
            if (hasBias) {
                programInputs.push(bias);
            }
            if (hasPreluActivationWeights) {
                programInputs.push(preluActivationWeights);
            }
            if (hasLeakyreluAlpha) {
                var $leakyreluAlpha = backend.makeTensorInfo([], 'float32', tf.util.createScalarValue(leakyreluAlpha, 'float32'));
                programInputs.push($leakyreluAlpha);
                intermediates.push($leakyreluAlpha);
            }
            var program;
            if (shouldPackDepthwiseConv) {
                program = new DepthwiseConvPacked2DProgram(convInfo, hasBias, fusedActivation, hasPreluActivationWeights, hasLeakyreluAlpha);
            } else {
                program = new DepthwiseConv2DProgram(convInfo, hasBias, fusedActivation, hasPreluActivationWeights, hasLeakyreluAlpha);
            }
            var customValues = [[convInfo.padInfo.top, convInfo.padInfo.left], [convInfo.strideHeight, convInfo.strideWidth], [convInfo.dilationHeight, convInfo.dilationWidth], [convInfo.inHeight, convInfo.inWidth]];
            var result = backend.runWebGLProgram(program, programInputs, 'float32', customValues);
            intermediates.forEach(function (t) {
                return backend.disposeIntermediateTensorInfo(t);
            });
            return result;
        }
        var fusedDepthwiseConv2DConfig = {
            kernelName: tf.FusedDepthwiseConv2D,
            backendName: 'webgl',
            kernelFunc: fusedDepthwiseConv2D,
        };

        var GatherNDProgram = /** @class */
            (function () {
                function GatherNDProgram(sliceDim, strides, shape, paramsShape) {
                    this.sliceDim = sliceDim;
                    this.strides = strides;
                    this.paramsShape = paramsShape;
                    this.variableNames = ['x', 'indices'];
                    this.outputShape = shape;
                    var dtype = getCoordsDataType(shape.length);
                    var mainLoop = "\n    int index;";
                    for (var j = 0; j < this.sliceDim; j++) {
                        mainLoop += "\n          index = round(getIndices(coords[0], ".concat(j, "));\n          out_of_bounds = out_of_bounds || index < 0;\n          out_of_bounds = out_of_bounds || index >= ").concat(this.paramsShape[j], ";\n          flattenIndex += index * ").concat(this.strides[j], ";");
                    }
                    this.userCode = "\n         void main() {\n          ".concat(dtype, " coords = getOutputCoords();\n          int flattenIndex = 0;\n          bool out_of_bounds = false;\n\n          ").concat(mainLoop, "\n\n          setOutput(out_of_bounds ? 0.0 : getX(flattenIndex, coords[1]));\n        }\n      ");
                }
                return GatherNDProgram;
            }());

        function gatherNd(args) {
            var inputs = args.inputs
                , backend = args.backend;
            var params = inputs.params
                , indices = inputs.indices;
            var indicesShape = indices.shape;
            var sliceRank = indicesShape[indicesShape.length - 1];
            var paramsSize = tf.util.sizeFromShape(params.shape);
            var _a = __read(tf.backend_util.prepareAndValidate(params, indices), 4)
                , resultShape = _a[0]
                , numSlices = _a[1]
                , sliceSize = _a[2]
                , strides = _a[3];
            var flattenIndices = reshape({
                inputs: {
                    x: indices
                },
                backend: backend,
                attrs: {
                    shape: [numSlices, sliceRank]
                }
            });
            var flattenX = reshape({
                inputs: {
                    x: params
                },
                backend: backend,
                attrs: {
                    shape: [(tf.util.sizeFromShape(params.shape) / sliceSize), sliceSize]
                }
            });
            if (backend.shouldExecuteOnCPU([params, indices]) || params.dtype === 'string') {
                var indicesData = backend.readSync(indices.dataId);
                var paramsBuf = backend.bufferSync(params);
                var outValue = gatherNdImplCPU(indicesData, paramsBuf, params.dtype, numSlices, sliceRank, sliceSize, strides, params.shape, paramsSize);
                return backend.makeTensorInfo(resultShape, params.dtype, outValue.values);
            }
            var program = new GatherNDProgram(sliceRank, strides, [numSlices, sliceSize], params.shape);
            var res = backend.runWebGLProgram(program, [flattenX, flattenIndices], flattenX.dtype);
            var reshaped = reshape({
                inputs: {
                    x: res
                },
                backend: backend,
                attrs: {
                    shape: resultShape
                }
            });
            backend.disposeIntermediateTensorInfo(flattenIndices);
            backend.disposeIntermediateTensorInfo(flattenX);
            backend.disposeIntermediateTensorInfo(res);
            return reshaped;
        }
        var gatherNdConfig = {
            kernelName: tf.GatherNd,
            backendName: 'webgl',
            kernelFunc: gatherNd
        };

        /**
         * @license
         * Copyright 2017 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var GatherProgram = /** @class */
            (function () {
                function GatherProgram(aShape, outputShape) {
                    this.variableNames = ['A', 'indices'];
                    this.outputShape = outputShape;
                    this.rank = outputShape.length;
                    var dtype = getCoordsDataType(this.rank);
                    var sourceCoords = getSourceCoords$1(aShape);
                    this.userCode = "\n      void main() {\n        ".concat(dtype, " resRC = getOutputCoords();\n        int index = int(getIndices(resRC.x, resRC.z));\n        float inBounds = (index >= 0) && (index < ").concat(aShape[2], ") ? 1.0 : 0.0;\n        setOutput(inBounds * getA(").concat(sourceCoords, "));\n      }\n    ");
                }
                return GatherProgram;
            }());
        // The input and output are always flattened into rank 4 tensors.
        function getSourceCoords$1(aShape, axis) {
            var currentCoords = ['resRC.x', 'resRC.y', 'resRC.z', 'resRC.w'];
            var sourceCoords = [];
            for (var i = 0; i < aShape.length; i++) {
                if (i === 2) {
                    sourceCoords.push('index');
                } else {
                    sourceCoords.push("".concat(currentCoords[i]));
                }
            }
            return sourceCoords.join();
        }

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function gatherV2(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x
                , indices = inputs.indices;
            var axis = attrs.axis
                , batchDims = attrs.batchDims;
            var parsedAxis = tf.util.parseAxisParam(axis, x.shape)[0];
            if (tf.env().get('DEBUG')) {
                // In debug mode, throw error when any index is out of bound.
                // Otherwise, just fill out of bounds with zeroes.
                var indicesVals = backend.readSync(indices.dataId);
                var axisDim_1 = x.shape[parsedAxis];
                var _loop_1 = function (i) {
                    var index = indicesVals[i];
                    tf.util.assert(index <= axisDim_1 - 1 && index >= 0, function () {
                        return "GatherV2: the index value ".concat(index, " is not in [0, ").concat(axisDim_1 - 1, "]");
                    });
                };
                for (var i = 0; i < indicesVals.length; ++i) {
                    _loop_1(i);
                }
            }
            var shapeInfo = tf.backend_util.segment_util.collectGatherOpShapeInfo(x, indices, parsedAxis, batchDims);
            var indicesSize = tf.util.sizeFromShape(indices.shape);
            var toDispose = [];
            var flattenX = reshape({
                inputs: {
                    x: x
                },
                backend: backend,
                attrs: {
                    shape: [shapeInfo.batchSize, shapeInfo.outerSize, shapeInfo.dimSize, shapeInfo.sliceSize]
                }
            });
            var flattenIndex = reshape({
                inputs: {
                    x: indices
                },
                backend: backend,
                attrs: {
                    shape: [shapeInfo.batchSize, indicesSize / shapeInfo.batchSize]
                }
            });
            toDispose.push(flattenX);
            toDispose.push(flattenIndex);
            var flattenOutputShape = [shapeInfo.batchSize, shapeInfo.outerSize, indicesSize / shapeInfo.batchSize, shapeInfo.sliceSize];
            if (backend.shouldExecuteOnCPU([x, indices]) || x.dtype === 'string') {
                var indicesBuf = backend.bufferSync(flattenIndex);
                var xBuf = backend.bufferSync(flattenX);
                var outBuf = gatherV2ImplCPU(xBuf, indicesBuf, flattenOutputShape);
                toDispose.forEach(function (t) {
                    return backend.disposeIntermediateTensorInfo(t);
                });
                return backend.makeTensorInfo(shapeInfo.outputShape, outBuf.dtype, outBuf.values);
            }
            var program = new GatherProgram(flattenX.shape, flattenOutputShape);
            var res = backend.runWebGLProgram(program, [flattenX, flattenIndex], flattenX.dtype);
            toDispose.push(res);
            var reshaped = reshape({
                inputs: {
                    x: res
                },
                backend: backend,
                attrs: {
                    shape: shapeInfo.outputShape
                }
            });
            toDispose.forEach(function (t) {
                return backend.disposeIntermediateTensorInfo(t);
            });
            return reshaped;
        }
        var gatherV2Config = {
            kernelName: tf.GatherV2,
            backendName: 'webgl',
            kernelFunc: gatherV2
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var GREATER = "return float(a > b);";
        var GREATER_PACKED = "\n  return vec4(greaterThan(a, b));\n";
        var greater = binaryKernelFunc({
            opSnippet: GREATER,
            packedOpSnippet: GREATER_PACKED,
            cpuKernelImpl: greaterImplCPU,
            dtype: 'bool'
        });
        var greaterConfig = {
            kernelName: tf.Greater,
            backendName: 'webgl',
            kernelFunc: greater
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var GREATER_EQUAL = "return float(a >= b);";
        var GREATER_EQUAL_PACKED = "\n  return vec4(greaterThanEqual(a, b));\n";
        var greaterEqual = binaryKernelFunc({
            opSnippet: GREATER_EQUAL,
            packedOpSnippet: GREATER_EQUAL_PACKED,
            dtype: 'bool',
            cpuKernelImpl: greaterEqualImplCPU
        });
        var greaterEqualConfig = {
            kernelName: tf.GreaterEqual,
            backendName: 'webgl',
            kernelFunc: greaterEqual
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function ifft(args) {
            var inputs = args.inputs
                , backend = args.backend;
            var input = inputs.input;
            return fftImpl(input, true /* inverse */
                , backend);
        }
        var ifftConfig = {
            kernelName: tf.IFFT,
            backendName: 'webgl',
            kernelFunc: ifft
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var IS_FINITE = "return float(!isnan(x) && !isinf(x));";
        var isFinite = unaryKernelFunc({
            opSnippet: IS_FINITE,
            dtype: 'bool'
        });
        var isFiniteConfig = {
            kernelName: tf.IsFinite,
            backendName: 'webgl',
            kernelFunc: isFinite,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var IS_INF = "return float(isinf(x));";
        var isInf = unaryKernelFunc({
            opSnippet: IS_INF,
            dtype: 'bool'
        });
        var isInfConfig = {
            kernelName: tf.IsInf,
            backendName: 'webgl',
            kernelFunc: isInf,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var IS_NAN = "return float(isnan(x));";
        var isNaN = unaryKernelFunc({
            opSnippet: IS_NAN,
            dtype: 'bool'
        });
        var isNaNConfig = {
            kernelName: tf.IsNan,
            backendName: 'webgl',
            kernelFunc: isNaN,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var LESS = "return float(a < b);";
        var LESS_PACKED = "\n  return vec4(lessThan(a, b));\n";
        var less = binaryKernelFunc({
            opSnippet: LESS,
            packedOpSnippet: LESS_PACKED,
            cpuKernelImpl: lessImplCPU,
            dtype: 'bool'
        });
        var lessConfig = {
            kernelName: tf.Less,
            backendName: 'webgl',
            kernelFunc: less
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var LESS_EQUAL = "return float(a <= b);";
        var LESS_EQUAL_PACKED = "\n  return vec4(lessThanEqual(a, b));\n";
        var lessEqual = binaryKernelFunc({
            opSnippet: LESS_EQUAL,
            packedOpSnippet: LESS_EQUAL_PACKED,
            cpuKernelImpl: lessEqualImplCPU,
            dtype: 'bool'
        });
        var lessEqualConfig = {
            kernelName: tf.LessEqual,
            backendName: 'webgl',
            kernelFunc: lessEqual
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function linSpace(args) {
            var backend = args.backend
                , attrs = args.attrs;
            var start = attrs.start
                , stop = attrs.stop
                , num = attrs.num;
            // TODO: Use CPU implementation due to the precision problem in Safari.
            var outVals = linSpaceImplCPU(start, stop, num);
            return backend.makeTensorInfo([outVals.length], 'float32', outVals);
        }
        var linSpaceConfig = {
            kernelName: tf.LinSpace,
            backendName: 'webgl',
            kernelFunc: linSpace
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        // Windows chrome return 0 if the input is negative value. We will specifically
        // return NaN if the input is 0 to solve compatiblity issue.
        var LOG = CHECK_NAN_SNIPPET_UNARY + "\n  return x < 0.0 ? 0./0. : log(x);\n";
        var LOG_PACKED = "\n  vec4 result = log(x);\n  bvec4 isNaN = isnan(x);\n  result.r = isNaN.r ? x.r : (x.r < 0.0 ? 0./0. : result.r);\n  result.g = isNaN.g ? x.g : (x.g < 0.0 ? 0./0. : result.g);\n  result.b = isNaN.b ? x.b : (x.b < 0.0 ? 0./0. : result.b);\n  result.a = isNaN.a ? x.a : (x.a < 0.0 ? 0./0. : result.a);\n  return result;\n";
        var log = unaryKernelFunc({
            opSnippet: LOG,
            packedOpSnippet: LOG_PACKED,
            cpuKernelImpl: logImplCPU
        });
        var logConfig = {
            kernelName: tf.Log,
            backendName: 'webgl',
            kernelFunc: log
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var LOG1P = CHECK_NAN_SNIPPET_UNARY + "\n  return log(1.0 + x);\n";
        var log1p = unaryKernelFunc({
            opSnippet: LOG1P
        });
        var log1pConfig = {
            kernelName: tf.Log1p,
            backendName: 'webgl',
            kernelFunc: log1p,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var LOGICAL_AND = "return float(a >= 1.0 && b >= 1.0);";
        var LOGICAL_AND_PACKED = "\n  return vec4(\n    vec4(greaterThanEqual(a, vec4(1.0))) *\n    vec4(greaterThanEqual(b, vec4(1.0))));\n";
        var logicalAnd = binaryKernelFunc({
            opSnippet: LOGICAL_AND,
            packedOpSnippet: LOGICAL_AND_PACKED,
            dtype: 'bool'
        });
        var logicalAndConfig = {
            kernelName: tf.LogicalAnd,
            backendName: 'webgl',
            kernelFunc: logicalAnd
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var LOGICAL_NOT = "return float(!(x >= 1.0));";
        var logicalNot = unaryKernelFunc({
            opSnippet: LOGICAL_NOT
        });
        var logicalNotConfig = {
            kernelName: tf.LogicalNot,
            backendName: 'webgl',
            kernelFunc: logicalNot,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var LOGICAL_OR = "return float(a >= 1.0 || b >= 1.0);";
        var LOGICAL_OR_PACKED = "\n  return min(\n    vec4(greaterThanEqual(a, vec4(1.0))) +\n    vec4(greaterThanEqual(b, vec4(1.0))),\n    vec4(1.0));\n";
        var logicalOr = binaryKernelFunc({
            opSnippet: LOGICAL_OR,
            packedOpSnippet: LOGICAL_OR_PACKED,
            dtype: 'bool'
        });
        var logicalOrConfig = {
            kernelName: tf.LogicalOr,
            backendName: 'webgl',
            kernelFunc: logicalOr
        };

        /**
         * @license
         * Copyright 2017 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var LRNProgram = /** @class */
            (function () {
                function LRNProgram(xShape, radius, bias, alpha, beta) {
                    this.variableNames = ['x'];
                    this.outputShape = [];
                    var rad = radius;
                    var maxD = xShape[3] - 1;
                    this.outputShape = xShape;
                    // optimize pow(bias + alpha * sum, -beta)
                    // src: https://github.com/tensorflow/tensorflow/..
                    // blob/26033a1644a9c4a5fbe3170ab2e864b6a4ccd4ca/..
                    // tensorflow/core/kernels/mkl_lrn_op.cc#L320
                    var powOperator;
                    var basis = "float(".concat(bias, ") + float(").concat(alpha, ") * sum");
                    if (beta === 0.5) {
                        powOperator = "inversesqrt(".concat(basis, ")");
                    } else if (beta === 1.0) {
                        powOperator = "1.0/(".concat(basis, ")");
                    } else {
                        powOperator = "exp(log(".concat(basis, ") * float(-").concat(beta, "));");
                    }
                    this.userCode = "\n      void main() {\n        ivec4 coords = getOutputCoords();\n        int b = coords[0];\n        int r = coords[1];\n        int c = coords[2];\n        int d = coords[3];\n        float x = getX(b, r, c, d);\n        float sum = 0.0;\n        for (int j = -".concat(rad, "; j <= ").concat(rad, "; j++) {\n          int idx = d + j;\n          if (idx >= 0 && idx <=  ").concat(maxD, ") {\n            float z = getX(b, r, c, idx);\n            sum += z * z;\n          }\n        }\n        float val = x * ").concat(powOperator, ";\n        setOutput(val);\n      }\n    ");
                }
                return LRNProgram;
            }());

        /**
         * @license
         * Copyright 2019 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var LRNPackedProgram = /** @class */
            (function () {
                function LRNPackedProgram(xShape, radius, bias, alpha, beta) {
                    this.variableNames = ['x'];
                    this.outputShape = [];
                    this.packedInputs = true;
                    this.packedOutput = true;
                    var rad = radius;
                    var maxD = xShape[3] - 1;
                    this.outputShape = xShape;
                    // optimize pow(bias + alpha * sum, -beta)
                    // src: https://github.com/tensorflow/tensorflow/..
                    // blob/26033a1644a9c4a5fbe3170ab2e864b6a4ccd4ca/..
                    // tensorflow/core/kernels/mkl_lrn_op.cc#L320
                    var powOperator;
                    var basis = "float(".concat(bias, ") + float(").concat(alpha, ") * sum");
                    if (beta === 0.5) {
                        powOperator = "inversesqrt(".concat(basis, ")");
                    } else if (beta === 1.0) {
                        powOperator = "1.0/(".concat(basis, ")");
                    } else {
                        powOperator = "exp(log(".concat(basis, ") * float(-").concat(beta, "));");
                    }
                    this.userCode = "\n      void main() {\n        ivec4 coords = getOutputCoords();\n        int b = coords.x;\n        int r = coords.y;\n        int c = coords.z;\n        int d = coords.w;\n\n        bool hasNextCol = d < ".concat(this.outputShape[3], ";\n        bool hasNextRow = c < ").concat(this.outputShape[2], ";\n\n        vec4 sum = vec4(0.);\n        vec4 xFragAtOutputCoords = getX(b, r, c, d);\n\n        vec4 xAtOutputCoords = vec4(\n          getChannel(xFragAtOutputCoords, vec2(c, d)),\n          hasNextCol ?\n            getChannel(xFragAtOutputCoords, vec2(c, d + 1)) : 0.0,\n          hasNextRow ?\n            getChannel(xFragAtOutputCoords , vec2(c + 1, d)) : 0.0,\n          (hasNextRow && hasNextCol) ?\n            getChannel(xFragAtOutputCoords, vec2(c + 1, d + 1)) : 0.0\n        );\n\n        int firstChannel = d - ").concat(rad, ";\n        vec2 cache = vec2(0.);\n        if(firstChannel >= 0){\n          vec4 firstChannelFrag = getX(b, r, c, firstChannel);\n          cache.x = getChannel(firstChannelFrag, vec2(c, firstChannel));\n            if(hasNextRow){\n              cache.y = getChannel(firstChannelFrag, vec2(c + 1, firstChannel));\n            }\n        }\n\n        ivec2 depth = ivec2(d, d + 1);\n        for (int j = - ").concat(rad, "; j <= ").concat(rad, "; j++) {\n          ivec2 idx = depth + j;\n          bvec2 aboveLowerBound = greaterThanEqual(idx, ivec2(0));\n          bvec2 belowUpperBound = lessThanEqual(idx, ivec2(").concat(maxD, "));\n\n          bool depthInRange = aboveLowerBound.x && belowUpperBound.x;\n          bool depthPlusOneInRange = aboveLowerBound.y && belowUpperBound.y;\n\n          if(depthInRange || depthPlusOneInRange){\n            vec4 z = vec4(0.);\n            vec4 xFragAtCurrentDepth;\n            z.xz = cache.xy;\n            if(depthPlusOneInRange && hasNextCol){\n              xFragAtCurrentDepth = idx.y != d ?\n                getX(b, r, c, idx.y) : xFragAtOutputCoords;\n              z.y = getChannel(xFragAtCurrentDepth, vec2(c, idx.y));\n              if(hasNextRow){\n                z.w = getChannel(xFragAtCurrentDepth, vec2(c + 1, idx.y));\n              }\n            }\n            cache.xy = z.yw;\n            sum += z * z;\n          }\n        }\n        vec4 result = xAtOutputCoords * ").concat(powOperator, ";\n        setOutput(result);\n      }\n    ");
                }
                return LRNPackedProgram;
            }());

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var lrn = function (args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x;
            var depthRadius = attrs.depthRadius
                , bias = attrs.bias
                , alpha = attrs.alpha
                , beta = attrs.beta;
            var program = tf.env().getBool('WEBGL_PACK_NORMALIZATION') ? new LRNPackedProgram(x.shape, depthRadius, bias, alpha, beta) : new LRNProgram(x.shape, depthRadius, bias, alpha, beta);
            return backend.runWebGLProgram(program, [x], x.dtype);
        };
        // tslint:disable-next-line: variable-name
        var LRNConfig = {
            kernelName: tf.LRN,
            backendName: 'webgl',
            kernelFunc: lrn
        };

        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var LRNGradProgram = /** @class */
            (function () {
                function LRNGradProgram(inputShape, depthRadius, bias, alpha, beta) {
                    this.variableNames = ['inputImage', 'outputImage', 'dy'];
                    this.outputShape = [];
                    this.outputShape = inputShape;
                    this.depth = inputShape[3];
                    this.depthRadius = depthRadius;
                    this.bias = bias;
                    this.alpha = alpha;
                    this.beta = beta;
                    this.userCode = "\n      void main() {\n        ivec4 coords = getOutputCoords();\n        int b = coords[0];\n        int r = coords[1];\n        int c = coords[2];\n\n        float result = 0.0;\n        for (int d = 0; d < ".concat(this.depth, "; ++d) {\n          int depthBegin = int(max(0.0, float(d - ").concat(depthRadius, ")));\n          int depthEnd = int(min(float(").concat(this.depth, "),\n              float(d + ").concat(depthRadius, " + 1)));\n\n          const int MIN_DEPTH_BEGIN = 0;\n          const int MAX_DEPTH_END = ").concat(this.depth, ";\n\n          float norm = 0.0;\n          for (int k = MIN_DEPTH_BEGIN; k < MAX_DEPTH_END; ++k) {\n            if (k < depthBegin){\n              continue;\n            }\n            else if (k >= depthBegin && k < depthEnd) {\n              norm += getInputImage(b, r, c, k) * getInputImage(b, r, c, k);\n            }\n            else {\n              break;\n            }\n          }\n\n          norm = float(").concat(alpha, ") * norm + float(").concat(bias, ");\n\n          for(int k = MIN_DEPTH_BEGIN; k < MAX_DEPTH_END; ++k){\n            if (k < depthBegin){\n              continue;\n            }\n            else if (k >= depthBegin && k < depthEnd){\n              float dyi = -2.0 * float(").concat(alpha, ")\n                * float(").concat(beta, ")\n                * getInputImage(b ,r ,c, k) * getOutputImage(b, r, c, d)\n                / norm;\n              if (k == d) {\n                dyi += pow(norm, -1.0 * ").concat(beta, ");\n              }\n              if (k == coords[3]) {\n                dyi *= getDy(b, r, c, d);\n                result += dyi;\n              }\n            }\n            else {\n              break;\n            }\n          }\n      }\n      setOutput(result);\n      }\n    ");
                }
                return LRNGradProgram;
            }());

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var lrnGrad = function (args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x
                , y = inputs.y
                , dy = inputs.dy;
            var depthRadius = attrs.depthRadius
                , bias = attrs.bias
                , alpha = attrs.alpha
                , beta = attrs.beta;
            var program = new LRNGradProgram(x.shape, depthRadius, bias, alpha, beta);
            return backend.runWebGLProgram(program, [x, y, dy], x.dtype);
        };
        // tslint:disable-next-line: variable-name
        var LRNGradConfig = {
            kernelName: tf.LRNGrad,
            backendName: 'webgl',
            kernelFunc: lrnGrad
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function maxImpl(x, reduceShape, outShape, backend) {
            var inSize = tf.util.sizeFromShape(reduceShape);
            var xSize = tf.util.sizeFromShape(x.shape);
            var batchSize = xSize / inSize;
            var reshapedInput = reshape({
                inputs: {
                    x: x
                },
                attrs: {
                    shape: [batchSize, inSize]
                },
                backend: backend
            });
            var reduced = reduce(reshapedInput, x.dtype, 'max', backend);
            var reshapedOutput = reshape({
                inputs: {
                    x: reduced
                },
                attrs: {
                    shape: outShape
                },
                backend: backend
            });
            backend.disposeIntermediateTensorInfo(reshapedInput);
            backend.disposeIntermediateTensorInfo(reduced);
            return reshapedOutput;
        }

        function max(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x;
            var reductionIndices = attrs.reductionIndices
                , keepDims = attrs.keepDims;
            var xRank = x.shape.length;
            var origAxes = tf.util.parseAxisParam(reductionIndices, x.shape);
            var axes = origAxes;
            var permutedAxes = tf.backend_util.getAxesPermutation(axes, xRank);
            var maxInputIsTransposed = permutedAxes != null;
            var shouldExecuteOnCPU = backend.shouldExecuteOnCPU([x]);
            var maxInput = x;
            if (maxInputIsTransposed) {
                if (shouldExecuteOnCPU) {
                    var xTexData = backend.texData.get(maxInput.dataId);
                    var values = xTexData.values;
                    var newShape = new Array(xRank);
                    for (var i = 0; i < newShape.length; i++) {
                        newShape[i] = x.shape[permutedAxes[i]];
                    }
                    var maxInputValues = transposeImplCPU(values, x.shape, x.dtype, permutedAxes, newShape);
                    maxInput = backend.makeTensorInfo(newShape, x.dtype);
                    var maxInputData = backend.texData.get(maxInput.dataId);
                    maxInputData.values = maxInputValues;
                } else {
                    maxInput = transposeImpl(x, permutedAxes, backend);
                }
                axes = tf.backend_util.getInnerMostAxes(axes.length, xRank);
            }
            tf.backend_util.assertAxesAreInnerMostDims('max', axes, xRank);
            var _a = __read(tf.backend_util.computeOutAndReduceShapes(maxInput.shape, axes), 2)
                , maxOutShape = _a[0]
                , reduceShape = _a[1];
            var outShape = maxOutShape;
            if (keepDims) {
                // rather than reshape at the end, set the target shape here.
                outShape = tf.backend_util.expandShapeToKeepDim(maxOutShape, origAxes);
            }
            var out;
            if (shouldExecuteOnCPU) {
                var xTexData = backend.texData.get(maxInput.dataId);
                var values = xTexData.values;
                var outValues = maxImplCPU(values, tf.util.sizeFromShape(reduceShape), outShape, x.dtype);
                out = backend.makeTensorInfo(outShape, x.dtype);
                var outData = backend.texData.get(out.dataId);
                outData.values = outValues;
            } else {
                out = maxImpl(maxInput, reduceShape, outShape, backend);
            }
            if (maxInputIsTransposed) {
                backend.disposeIntermediateTensorInfo(maxInput);
            }
            return out;
        }
        var maxConfig = {
            kernelName: tf.Max,
            backendName: 'webgl',
            kernelFunc: max
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var MAXIMUM = CHECK_NAN_SNIPPET + "\n  return max(a, b);\n";
        var MAXIMUM_PACKED = "\n  vec4 result = vec4(max(a, b));\n  bvec4 isNaNA = isnan(a);\n  bvec4 isNaNB = isnan(b);\n  bvec4 isNaN = bvec4(isNaNA.x || isNaNB.x, isNaNA.y || isNaNB.y, isNaNA.z || isNaNB.z, isNaNA.w || isNaNB.w);\n  " + CHECK_NAN_SNIPPET_PACKED + "\n  return result;\n";
        var maximum = binaryKernelFunc({
            opSnippet: MAXIMUM,
            packedOpSnippet: MAXIMUM_PACKED,
            cpuKernelImpl: maximumImplCPU
        });
        var maximumConfig = {
            kernelName: tf.Maximum,
            backendName: 'webgl',
            kernelFunc: maximum
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function maxPool(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x;
            assertNotComplex(x, 'maxPool');
            var filterSize = attrs.filterSize
                , strides = attrs.strides
                , pad = attrs.pad
                , dimRoundingMode = attrs.dimRoundingMode;
            var dilations = 1;
            tf.util.assert(tf.backend_util.eitherStridesOrDilationsAreOne(strides, dilations), function () {
                return 'Error in maxPool: Either strides or dilations must be 1. ' + "Got strides ".concat(strides, " and dilations '").concat(dilations, "'");
            });
            var convInfo = tf.backend_util.computePool2DInfo(x.shape, filterSize, strides, dilations, pad, dimRoundingMode);
            if (convInfo.filterWidth === 1 && convInfo.filterHeight === 1 && tf.util.arraysEqual(convInfo.inShape, convInfo.outShape)) {
                return identity({
                    inputs: {
                        x: x
                    },
                    backend: backend
                });
            }
            var maxPoolProgram = new Pool2DProgram(convInfo, 'max', false);
            return backend.runWebGLProgram(maxPoolProgram, [x], x.dtype);
        }
        var maxPoolConfig = {
            kernelName: tf.MaxPool,
            backendName: 'webgl',
            kernelFunc: maxPool
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function maxPool3d(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x;
            var filterSize = attrs.filterSize
                , strides = attrs.strides
                , pad = attrs.pad
                , dataFormat = attrs.dataFormat
                , dimRoundingMode = attrs.dimRoundingMode;
            var dilations = [1, 1, 1];
            var convInfo = tf.backend_util.computePool3DInfo(x.shape, filterSize, strides, dilations, pad, dimRoundingMode, dataFormat);
            var maxPoolProgram = new Pool3DProgram(convInfo, 'max', false);
            return backend.runWebGLProgram(maxPoolProgram, [x], x.dtype);
        }
        var maxPool3DConfig = {
            kernelName: tf.MaxPool3D,
            backendName: 'webgl',
            kernelFunc: maxPool3d
        };

        /**
         * @license
         * Copyright 2017 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var MaxPool2DBackpropProgram = /** @class */
            (function () {
                function MaxPool2DBackpropProgram(convInfo) {
                    this.variableNames = ['dy', 'maxPos'];
                    this.outputShape = convInfo.inShape;
                    var strideHeight = convInfo.strideHeight;
                    var strideWidth = convInfo.strideWidth;
                    var dilationHeight = convInfo.dilationHeight;
                    var effectiveFilterHeight = convInfo.effectiveFilterHeight;
                    var effectiveFilterWidth = convInfo.effectiveFilterWidth;
                    var padTop = effectiveFilterHeight - 1 - convInfo.padInfo.top;
                    var padLeft = effectiveFilterWidth - 1 - convInfo.padInfo.left;
                    var lastIndex = effectiveFilterHeight * effectiveFilterWidth - 1;
                    this.userCode = "\n      const ivec2 pads = ivec2(".concat(padTop, ", ").concat(padLeft, ");\n\n      void main() {\n        ivec4 coords = getOutputCoords();\n        int b = coords[0];\n        int d = coords[3];\n\n        ivec2 dyRCCorner = coords.yz - pads;\n        int dyRCorner = dyRCCorner.x;\n        int dyCCorner = dyRCCorner.y;\n\n        // Convolve dy(?, ?, d) with pos mask(:, :, d) to get dx(xR, xC, d).\n        // ? = to be determined. : = across all values in that axis.\n        float dotProd = 0.0;\n        for (int wR = 0; wR < ").concat(effectiveFilterHeight, ";\n          wR += ").concat(dilationHeight, ") {\n          float dyR = float(dyRCorner + wR) / ").concat(strideHeight, ".0;\n\n          if (dyR < 0.0 || dyR >= ").concat(convInfo.outHeight, ".0 || fract(dyR) > 0.0) {\n            continue;\n          }\n          int idyR = int(dyR);\n\n          for (int wC = 0; wC < ").concat(effectiveFilterWidth, "; wC++) {\n            float dyC = float(dyCCorner + wC) / ").concat(strideWidth, ".0;\n\n            if (dyC < 0.0 || dyC >= ").concat(convInfo.outWidth, ".0 ||\n                fract(dyC) > 0.0) {\n              continue;\n            }\n            int idyC = int(dyC);\n\n            float dyValue = getDy(b, idyR, idyC, d);\n            int maxPosValue = ").concat(lastIndex, " - int(getMaxPos(b, idyR, idyC, d));\n\n            // Get the current value, check it against the value from the\n            // position matrix.\n            int curPosValue = wR * ").concat(effectiveFilterWidth, " + wC;\n            float mask = float(maxPosValue == curPosValue ? 1.0 : 0.0);\n\n            dotProd += dyValue * mask;\n          }\n        }\n        setOutput(dotProd);\n      }\n    ");
                }
                return MaxPool2DBackpropProgram;
            }());
        var MaxPool3DBackpropProgram = /** @class */
            (function () {
                function MaxPool3DBackpropProgram(convInfo) {
                    this.variableNames = ['dy', 'maxPos'];
                    this.outputShape = convInfo.inShape;
                    var strideDepth = convInfo.strideDepth;
                    var strideHeight = convInfo.strideHeight;
                    var strideWidth = convInfo.strideWidth;
                    var dilationDepth = convInfo.dilationDepth;
                    var dilationHeight = convInfo.dilationHeight;
                    var dilationWidth = convInfo.dilationWidth;
                    var effectiveFilterDepth = convInfo.effectiveFilterDepth;
                    var effectiveFilterHeight = convInfo.effectiveFilterHeight;
                    var effectiveFilterWidth = convInfo.effectiveFilterWidth;
                    var padFront = effectiveFilterDepth - 1 - convInfo.padInfo.front;
                    var padTop = effectiveFilterHeight - 1 - convInfo.padInfo.top;
                    var padLeft = effectiveFilterWidth - 1 - convInfo.padInfo.left;
                    var lastIndex = effectiveFilterDepth * effectiveFilterHeight * effectiveFilterWidth - 1;
                    this.userCode = "\n      const ivec3 pads = ivec3(".concat(padFront, ", ").concat(padTop, ", ").concat(padLeft, ");\n\n      void main() {\n        ivec5 coords = getOutputCoords();\n        int batch = coords.x;\n        int ch = coords.u;\n\n        ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads;\n        int dyDCorner = dyCorner.x;\n        int dyRCorner = dyCorner.y;\n        int dyCCorner = dyCorner.z;\n\n        // Convolve dy(?, ?, ?, ch) with pos mask(:, :, :, d) to get\n        // dx(xD, xR, xC, ch).\n        // ? = to be determined. : = across all values in that axis.\n        float dotProd = 0.0;\n\n        for (int wD = 0; wD < ").concat(effectiveFilterDepth, ";\n           wD += ").concat(dilationDepth, ") {\n          float dyD = float(dyDCorner + wD) / ").concat(strideDepth, ".0;\n\n          if (dyD < 0.0 || dyD >= ").concat(convInfo.outDepth, ".0 || fract(dyD) > 0.0) {\n            continue;\n          }\n          int idyD = int(dyD);\n\n          for (int wR = 0; wR < ").concat(effectiveFilterHeight, ";\n              wR += ").concat(dilationHeight, ") {\n            float dyR = float(dyRCorner + wR) / ").concat(strideHeight, ".0;\n\n            if (dyR < 0.0 || dyR >= ").concat(convInfo.outHeight, ".0 ||\n                fract(dyR) > 0.0) {\n              continue;\n            }\n            int idyR = int(dyR);\n\n            for (int wC = 0; wC < ").concat(effectiveFilterWidth, ";\n                wC += ").concat(dilationWidth, ") {\n              float dyC = float(dyCCorner + wC) / ").concat(strideWidth, ".0;\n\n              if (dyC < 0.0 || dyC >= ").concat(convInfo.outWidth, ".0 ||\n                  fract(dyC) > 0.0) {\n                continue;\n              }\n              int idyC = int(dyC);\n\n              float dyValue = getDy(batch, idyD, idyR, idyC, ch);\n              int maxPosValue = ").concat(lastIndex, " -\n                  int(getMaxPos(batch, idyD, idyR, idyC, ch));\n\n              // Get the current value, check it against the value from the\n              // position matrix.\n              int curPosValue =\n                  wD * ").concat(effectiveFilterHeight, " * ").concat(effectiveFilterWidth, " +\n                  wR * ").concat(effectiveFilterWidth, " + wC;\n              float mask = float(maxPosValue == curPosValue ? 1.0 : 0.0);\n\n              dotProd += dyValue * mask;\n            }\n          }\n        }\n        setOutput(dotProd);\n      }\n    ");
                }
                return MaxPool3DBackpropProgram;
            }());

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function maxPool3DGrad(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var dy = inputs.dy
                , input = inputs.input;
            var x = input;
            var filterSize = attrs.filterSize
                , strides = attrs.strides
                , pad = attrs.pad
                , dimRoundingMode = attrs.dimRoundingMode;
            var dilations = [1, 1, 1];
            var convInfo = tf.backend_util.computePool3DInfo(x.shape, filterSize, strides, dilations, pad, dimRoundingMode);
            var maxPool3dPositionsProgram = new Pool3DProgram(convInfo, 'max', true /* get positions */
            );
            var maxPool3dPositions = backend.runWebGLProgram(maxPool3dPositionsProgram, [x], x.dtype);
            var maxPoolBackpropProgram = new MaxPool3DBackpropProgram(convInfo);
            var result = backend.runWebGLProgram(maxPoolBackpropProgram, [dy, maxPool3dPositions], x.dtype);
            backend.disposeIntermediateTensorInfo(maxPool3dPositions);
            return result;
        }
        var maxPool3DGradConfig = {
            kernelName: tf.MaxPool3DGrad,
            backendName: 'webgl',
            kernelFunc: maxPool3DGrad
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function maxPoolGrad(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var dy = inputs.dy
                , input = inputs.input
                , output = inputs.output;
            var x = input;
            assertNotComplex([input, output], 'maxPoolGrad');
            var filterSize = attrs.filterSize
                , strides = attrs.strides
                , pad = attrs.pad
                , dimRoundingMode = attrs.dimRoundingMode;
            var convInfo = tf.backend_util.computePool2DInfo(x.shape, filterSize, strides, 1 /* dilations */
                , pad, dimRoundingMode);
            var getPositions = true;
            var maxPoolPositionsProgram = new Pool2DProgram(convInfo, 'max', getPositions);
            var maxPoolPositions = backend.runWebGLProgram(maxPoolPositionsProgram, [x], x.dtype);
            var maxPoolBackPropProgram = new MaxPool2DBackpropProgram(convInfo);
            var result = backend.runWebGLProgram(maxPoolBackPropProgram, [dy, maxPoolPositions], x.dtype);
            backend.disposeIntermediateTensorInfo(maxPoolPositions);
            return result;
        }
        var maxPoolGradConfig = {
            kernelName: tf.MaxPoolGrad,
            backendName: 'webgl',
            kernelFunc: maxPoolGrad
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function maxPoolWithArgmaxImpl(x, includeBatchInIndex, convInfo, backend) {
            var program = new Pool2DProgram(convInfo, 'max', false);
            var poolOutput = backend.runWebGLProgram(program, [x], 'float32');
            program = new Pool2DProgram(convInfo, 'max', true, true, includeBatchInIndex);
            var indexOutput = backend.runWebGLProgram(program, [x], 'float32');
            return [poolOutput, indexOutput];
        }

        var maxPoolWithArgmaxConfig = {
            kernelName: tf.MaxPoolWithArgmax,
            backendName: 'webgl',
            kernelFunc: function (_a) {
                var inputs = _a.inputs
                    , attrs = _a.attrs
                    , backend = _a.backend;
                var x = inputs.x;
                var filterSize = attrs.filterSize
                    , strides = attrs.strides
                    , pad = attrs.pad
                    , includeBatchInIndex = attrs.includeBatchInIndex;
                var webglBackend = backend;
                tf.util.assert(x.shape.length === 4, function () {
                    return "Error in maxPool: input must be rank 4 but got rank ".concat(x.shape.length, ".");
                });
                var dilations = [1, 1];
                tf.util.assert(tf.backend_util.eitherStridesOrDilationsAreOne(strides, dilations), function () {
                    return 'Error in maxPool: Either strides or dilations must be 1. ' + "Got strides ".concat(strides, " and dilations '").concat(dilations, "'");
                });
                var convInfo = tf.backend_util.computePool2DInfo(x.shape, filterSize, strides, dilations, pad);
                var _b = __read(maxPoolWithArgmaxImpl(x, includeBatchInIndex, convInfo, webglBackend), 2)
                    , result = _b[0]
                    , indexes = _b[1];
                return [result, indexes];
            }
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function meanImpl(x, reduceShape, outShape, backend) {
            var inSize = tf.util.sizeFromShape(reduceShape);
            var xSize = tf.util.sizeFromShape(x.shape);
            var batchSize = xSize / inSize;
            var reshapedInput = reshape({
                inputs: {
                    x: x
                },
                attrs: {
                    shape: [batchSize, inSize]
                },
                backend: backend
            });
            var reduced = reduce(reshapedInput, 'float32', 'mean', backend);
            var reshapedOutput = reshape({
                inputs: {
                    x: reduced
                },
                attrs: {
                    shape: outShape
                },
                backend: backend
            });
            backend.disposeIntermediateTensorInfo(reshapedInput);
            backend.disposeIntermediateTensorInfo(reduced);
            return reshapedOutput;
        }

        var meanConfig = {
            kernelName: tf.Mean,
            backendName: 'webgl',
            kernelFunc: function (_a) {
                var e_1, _b;
                var inputs = _a.inputs
                    , attrs = _a.attrs
                    , backend = _a.backend;
                var x = inputs.x;
                var keepDims = attrs.keepDims
                    , axis = attrs.axis;
                var webglBackend = backend;
                var xRank = x.shape.length;
                var origAxes = tf.util.parseAxisParam(axis, x.shape);
                var axes = origAxes;
                var permutedAxes = tf.backend_util.getAxesPermutation(axes, xRank);
                var meanInputIsTransposed = permutedAxes != null;
                var shouldExecuteOnCPU = webglBackend.shouldExecuteOnCPU([x]);
                var intermediates = [];
                var meanInput = x;
                if (meanInputIsTransposed) {
                    if (shouldExecuteOnCPU) {
                        var xTexData = webglBackend.texData.get(meanInput.dataId);
                        var values = xTexData.values;
                        var newShape = new Array(xRank);
                        for (var i = 0; i < newShape.length; i++) {
                            newShape[i] = x.shape[permutedAxes[i]];
                        }
                        var meanInputValues = transposeImplCPU(values, x.shape, x.dtype, permutedAxes, newShape);
                        meanInput = webglBackend.makeTensorInfo(newShape, x.dtype);
                        var meanInputData = webglBackend.texData.get(meanInput.dataId);
                        meanInputData.values = meanInputValues;
                    } else {
                        meanInput = transposeImpl(x, permutedAxes, webglBackend);
                    }
                    intermediates.push(meanInput);
                    axes = tf.backend_util.getInnerMostAxes(axes.length, xRank);
                }
                tf.backend_util.assertAxesAreInnerMostDims('sum', axes, xRank);
                var _c = __read(tf.backend_util.computeOutAndReduceShapes(meanInput.shape, axes), 2)
                    , meanOutShape = _c[0]
                    , reduceShape = _c[1];
                var outShape = meanOutShape;
                if (keepDims) {
                    // rather than reshape at the end, set the target shape here.
                    outShape = tf.backend_util.expandShapeToKeepDim(meanOutShape, origAxes);
                }
                var out = meanImpl(meanInput, reduceShape, outShape, webglBackend);
                try {
                    for (var intermediates_1 = __values(intermediates), intermediates_1_1 = intermediates_1.next(); !intermediates_1_1.done; intermediates_1_1 = intermediates_1.next()) {
                        var i = intermediates_1_1.value;
                        webglBackend.disposeIntermediateTensorInfo(i);
                    }
                } catch (e_1_1) {
                    e_1 = {
                        error: e_1_1
                    };
                } finally {
                    try {
                        if (intermediates_1_1 && !intermediates_1_1.done && (_b = intermediates_1.return))
                            _b.call(intermediates_1);
                    } finally {
                        if (e_1)
                            throw e_1.error;
                    }
                }
                return out;
            }
        };

        function min(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x;
            var axis = attrs.axis
                , keepDims = attrs.keepDims;
            var xRank = x.shape.length;
            var origAxes = tf.util.parseAxisParam(axis, x.shape);
            var axes = origAxes;
            var permutedAxes = tf.backend_util.getAxesPermutation(axes, xRank);
            var permutedX = x;
            if (permutedAxes != null) {
                permutedX = transpose({
                    inputs: {
                        x: x
                    },
                    backend: backend,
                    attrs: {
                        perm: permutedAxes
                    }
                });
                axes = tf.backend_util.getInnerMostAxes(axes.length, x.shape.length);
            }
            tf.backend_util.assertAxesAreInnerMostDims('min', axes, xRank);
            var _a = __read(tf.backend_util.computeOutAndReduceShapes(permutedX.shape, axes), 2)
                , outShape = _a[0]
                , reduceShape = _a[1];
            var inSize = tf.util.sizeFromShape(reduceShape);
            var a2D = reshape({
                inputs: {
                    x: permutedX
                },
                backend: backend,
                attrs: {
                    shape: [-1, inSize]
                }
            });
            var reduced = reduce(a2D, a2D.dtype, 'min', backend);
            var res;
            if (keepDims) {
                var newShape = tf.backend_util.expandShapeToKeepDim(outShape, origAxes);
                res = reshape({
                    inputs: {
                        x: reduced
                    },
                    backend: backend,
                    attrs: {
                        shape: newShape
                    }
                });
            } else {
                res = reshape({
                    inputs: {
                        x: reduced
                    },
                    backend: backend,
                    attrs: {
                        shape: outShape
                    }
                });
            }
            backend.disposeIntermediateTensorInfo(a2D);
            backend.disposeIntermediateTensorInfo(reduced);
            if (permutedAxes != null) {
                backend.disposeIntermediateTensorInfo(permutedX);
            }
            return res;
        }
        var minConfig = {
            kernelName: tf.Min,
            backendName: 'webgl',
            kernelFunc: min
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var MINIMUM = CHECK_NAN_SNIPPET + "\n  return min(a, b);\n";
        var MINIMUM_PACKED = "\n  vec4 result = vec4(min(a, b));\n  bvec4 isNaNA = isnan(a);\n  bvec4 isNaNB = isnan(b);\n  bvec4 isNaN = bvec4(isNaNA.x || isNaNB.x, isNaNA.y || isNaNB.y, isNaNA.z || isNaNB.z, isNaNA.w || isNaNB.w);\n  " + CHECK_NAN_SNIPPET_PACKED + "\n  return result;\n";
        var minimum = binaryKernelFunc({
            opSnippet: MINIMUM,
            packedOpSnippet: MINIMUM_PACKED,
            cpuKernelImpl: minimumImplCPU
        });
        var minimumConfig = {
            kernelName: tf.Minimum,
            backendName: 'webgl',
            kernelFunc: minimum
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var MirrorPadProgram = /** @class */
            (function () {
                function MirrorPadProgram(xShape, paddings, mode) {
                    this.variableNames = ['x'];
                    this.outputShape = paddings.map(function (p, i) {
                        return p[0]/* beforePad */
                            + xShape[i] + p[1];
                    }/* afterPad */
                    );
                    var rank = xShape.length;
                    var dtype = getCoordsDataType(rank);
                    var start = paddings.map(function (p) {
                        return p[0];
                    }).join(',');
                    var end = paddings.map(function (p, i) {
                        return p[0] + xShape[i];
                    }).join(',');
                    var unpackedCoords = ['coords[0]', 'coords[1]', 'coords[2]', 'coords[3]'].slice(0, rank);
                    var offset = mode === 'reflect' ? 0 : 1;
                    if (rank === 1) {
                        this.userCode = "\n        int start = ".concat(start, ";\n        int end = ").concat(end, ";\n\n        void main() {\n          int outC = getOutputCoords();\n          if (outC < start) {\n            outC = start * 2 - outC - ").concat(offset, ";\n          } else if(outC >= end) {\n            outC = (end - 1) * 2 - outC + ").concat(offset, ";\n          }\n          setOutput(getX(outC - start));\n        }\n      ");
                        return;
                    }
                    this.userCode = "\n      ".concat(dtype, " start = ").concat(dtype, "(").concat(start, ");\n      ").concat(dtype, " end = ").concat(dtype, "(").concat(end, ");\n\n      void main() {\n        ").concat(dtype, " outC = getOutputCoords();\n        for (int i = 0; i < ").concat(rank, "; i++) {\n          if (outC[i] < start[i]) {\n            outC[i] = start[i] * 2 - outC[i] - ").concat(offset, ";\n          } else if(outC[i] >= end[i]) {\n            outC[i] = (end[i] - 1) * 2 - outC[i] + ").concat(offset, ";\n          }\n        }\n        ").concat(dtype, " coords = outC - start;\n        setOutput(getX(").concat(unpackedCoords, "));\n      }\n    ");
                }
                return MirrorPadProgram;
            }());

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        /**
         * Example shader code for
         * `mirrorPad(tf.tensor1d([1, 2, 3], 'int32'), [[2, 2]], 'reflect')`
         * ```
         *    const int start = int(2);
         *    const int end = int(5);
         *
         *    void main() {
         *       int outputLoc = getOutputCoords();
         *       vec4 result = vec4(0.);
         *
         *       int rc = outputLoc;
         *
         *       int source = rc;
         *       if (source < start) {
         *         source = start * 2 - source - 0;
         *       } else if (source >= end) {
         *         source = (end - 1) * 2 - source + 0;
         *       }
         *       source -= start;
         *
         *       result[0] = getChannel(getX(source), source);
         *       rc += 1;
         *       if(rc < 6) {
         *          int source = rc;
         *          if (source < start) {
         *            source = start * 2 - source - 0;
         *          } else if (source >= end) {
         *            source = (end - 1) * 2 - source + 0;
         *          }
         *          source -= start;
         *
         *         result[1] = getChannel(getX(source), source);
         *       }
         *
         *       setOutput(result);
         *     }
         * ```
         */
        var MirrorPadPackedProgram = /** @class */
            (function () {
                function MirrorPadPackedProgram(xShape, paddings, mode) {
                    this.variableNames = ['x'];
                    this.packedInputs = true;
                    this.packedOutput = true;
                    this.outputShape = paddings.map(function (p, i) {
                        return p[0]/* beforePad */
                            + xShape[i] + p[1];
                    }/* afterPad */
                    );
                    var rank = xShape.length;
                    var dtype = getCoordsDataType(rank);
                    var start = paddings.map(function (p) {
                        return p[0];
                    }).join(',');
                    var end = paddings.map(function (p, i) {
                        return p[0] + xShape[i];
                    }).join(',');
                    var coords = getChannels('rc', rank);
                    var source = getChannels('source', rank);
                    var cLimit = "".concat(coords[rank - 1], " < ").concat(this.outputShape[rank - 1]);
                    var innerDims = rank === 1 ? 'source' : "vec2(".concat(source.slice(-2).join(), ")");
                    var offset = mode === 'reflect' ? 0 : 1;
                    var mainLoop = '';
                    if (rank === 1) {
                        var padSetup = "\n        ".concat(dtype, " source = rc;\n        if (source < start) {\n          source = start * 2 - source - ").concat(offset, ";\n        } else if (source >= end) {\n          source = (end - 1) * 2 - source + ").concat(offset, ";\n        }\n        source -= start;\n      ");
                        mainLoop = "\n        ".concat(dtype, " rc = outputLoc;\n        ").concat(padSetup, "\n        result[0] = getChannel(getX(").concat(source.join(), "), ").concat(innerDims, ");\n        ").concat(coords[rank - 1], " += 1;\n        if(").concat(cLimit, ") {\n          ").concat(padSetup, "\n          result[1] = getChannel(getX(").concat(source.join(), "), ").concat(innerDims, ");\n        }\n      ");
                    } else {
                        var padSetup = "\n        ".concat(dtype, " source = rc;\n        ").concat(dtype, " lt = ").concat(dtype, "(lessThan(source, start));\n        ").concat(dtype, " gte = ").concat(dtype, "(greaterThanEqual(source, end));\n        ").concat(dtype, " orig = 1 - (lt + gte);\n        source = orig * source +\n                lt * (start * 2 - source - ").concat(offset, ") +\n                gte * ((end - 1) * 2 - source + ").concat(offset, ");\n        source -= start;\n      ");
                        mainLoop = "\n        ".concat(dtype, " rc = outputLoc;\n        ").concat(padSetup, "\n        result[0] = getChannel(getX(").concat(source.join(), "), ").concat(innerDims, ");\n        ").concat(coords[rank - 1], " += 1;\n        if(").concat(cLimit, ") {\n          ").concat(padSetup, "\n          result[1] = getChannel(getX(").concat(source.join(), "), ").concat(innerDims, ");\n        }\n        rc = outputLoc;\n        ").concat(coords[rank - 2], " += 1;\n        if(").concat(coords[rank - 2], " < ").concat(this.outputShape[rank - 2], ") {\n          ").concat(padSetup, "\n          result[2] = getChannel(getX(").concat(source.join(), "), ").concat(innerDims, ");\n          ").concat(coords[rank - 1], " += 1;\n          if(").concat(cLimit, ") {\n            ").concat(padSetup, "\n            result[3] = getChannel(getX(").concat(source.join(), "), ").concat(innerDims, ");\n          }\n        }\n      ");
                    }
                    this.userCode = "\n      const ".concat(dtype, " start = ").concat(dtype, "(").concat(start, ");\n      const ").concat(dtype, " end = ").concat(dtype, "(").concat(end, ");\n\n      void main() {\n        ").concat(dtype, " outputLoc = getOutputCoords();\n        vec4 result = vec4(0.);\n        ").concat(mainLoop, "\n        setOutput(result);\n      }\n    ");
                }
                return MirrorPadPackedProgram;
            }());

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var mirrorPadKernelFunc = function (_a) {
            var inputs = _a.inputs
                , backend = _a.backend
                , attrs = _a.attrs;
            var x = inputs.x;
            var paddings = attrs.paddings
                , mode = attrs.mode;
            var program = tf.env().getBool('WEBGL_PACK_ARRAY_OPERATIONS') ? new MirrorPadPackedProgram(x.shape, paddings, mode) : new MirrorPadProgram(x.shape, paddings, mode);
            var output = backend.runWebGLProgram(program, [x], x.dtype);
            return output;
        };
        var mirrorPadConfig = {
            kernelName: tf.MirrorPad,
            backendName: 'webgl',
            kernelFunc: mirrorPadKernelFunc,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var MOD = "if (b == 0.0) return NAN;\n  return mod(a, b);";
        var MOD_PACKED = "\n  vec4 result = mod(a, b);\n  bvec4 isNaN = equal(b, vec4(0.0));\n  " + CHECK_NAN_SNIPPET_PACKED + "\n  return result;\n";
        var mod = binaryKernelFunc({
            opSnippet: MOD,
            packedOpSnippet: MOD_PACKED,
        });
        var modConfig = {
            kernelName: tf.Mod,
            backendName: 'webgl',
            kernelFunc: mod
        };

        /**
         * @license
         * Copyright 2017 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var MultinomialProgram = /** @class */
            (function () {
                function MultinomialProgram(batchSize, numOutcomes, numSamples) {
                    this.variableNames = ['probs'];
                    this.customUniforms = [{
                        name: 'seed',
                        type: 'float'
                    }];
                    this.outputShape = [batchSize, numSamples];
                    this.userCode = "\n      void main() {\n        ivec2 coords = getOutputCoords();\n        int batch = coords[0];\n\n        float r = random(seed);\n        float cdf = 0.0;\n\n        for (int i = 0; i < ".concat(numOutcomes - 1, "; i++) {\n          cdf += getProbs(batch, i);\n\n          if (r < cdf) {\n            setOutput(float(i));\n            return;\n          }\n        }\n\n        // If no other event happened, last event happened.\n        setOutput(float(").concat(numOutcomes - 1, "));\n      }\n    ");
                }
                return MultinomialProgram;
            }());

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        // Without the equality check div produces 0.9999 for a = b, which when
        // floored can cause errors.
        var DIV = "\nif (a == b) {\n  return 1.0;\n};\nreturn a / b;";
        // We do the same as in ./binaryop_gpu, with vec4 and ivec4.
        // On Linux, the vectorized implementation produces NaNs when a and b are 0.
        var DIV_PACKED = "\n  // vec4 one = vec4(equal(a, b));\n  // return one + (vec4(1.0) - one) * a / b;\n  vec4 result = a / b;\n  if(a.x == b.x) {\n    result.x = 1.;\n  }\n  if(a.y == b.y) {\n    result.y = 1.;\n  }\n  if(a.z == b.z) {\n    result.z = 1.;\n  }\n  if(a.w == b.w) {\n    result.w = 1.;\n  }\n\n  return result;\n";
        var realDiv = binaryKernelFunc({
            opSnippet: DIV,
            packedOpSnippet: DIV_PACKED,
            checkOutOfBounds: true
        });
        var realDivConfig = {
            kernelName: tf.RealDiv,
            backendName: 'webgl',
            kernelFunc: realDiv,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var SUB = 'return a - b;';
        var sub = binaryKernelFunc({
            opSnippet: SUB,
            packedOpSnippet: SUB,
            supportsComplex: true,
            cpuKernelImpl: subImplCPU
        });
        var subConfig = {
            kernelName: tf.Sub,
            backendName: 'webgl',
            kernelFunc: sub
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function softmax(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var logits = inputs.logits;
            var dim = attrs.dim;
            var axes = tf.util.parseAxisParam([dim], logits.shape);
            var maxLogit = max({
                inputs: {
                    x: logits
                },
                backend: backend,
                attrs: {
                    reductionIndices: axes,
                    keepDims: false
                }
            });
            var expandedShape = tf.backend_util.expandShapeToKeepDim(maxLogit.shape, axes);
            var maxLogitsReshaped = reshape({
                inputs: {
                    x: maxLogit
                },
                backend: backend,
                attrs: {
                    shape: expandedShape
                }
            });
            var a = sub({
                inputs: {
                    a: logits,
                    b: maxLogitsReshaped
                },
                backend: backend
            });
            var b = exp({
                inputs: {
                    x: a
                },
                backend: backend
            });
            var sumExp = sum({
                inputs: {
                    x: b
                },
                backend: backend,
                attrs: {
                    axis: axes,
                    keepDims: false
                }
            });
            var sumExpReshaped = reshape({
                inputs: {
                    x: sumExp
                },
                backend: backend,
                attrs: {
                    shape: expandedShape
                }
            });
            var res = realDiv({
                inputs: {
                    a: b,
                    b: sumExpReshaped
                },
                backend: backend
            });
            backend.disposeIntermediateTensorInfo(maxLogit);
            backend.disposeIntermediateTensorInfo(maxLogitsReshaped);
            backend.disposeIntermediateTensorInfo(a);
            backend.disposeIntermediateTensorInfo(b);
            backend.disposeIntermediateTensorInfo(sumExp);
            backend.disposeIntermediateTensorInfo(sumExpReshaped);
            return res;
        }
        var softmaxConfig = {
            kernelName: tf.Softmax,
            backendName: 'webgl',
            kernelFunc: softmax
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function multinomial(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var logits = inputs.logits;
            var numSamples = attrs.numSamples
                , seed = attrs.seed
                , normalized = attrs.normalized;
            var probs = normalized ? logits : softmax({
                inputs: {
                    logits: logits
                },
                backend: backend,
                attrs: {
                    dim: logits.shape.length - 1
                }
            });
            var batchSize = probs.shape[0];
            var numOutcomes = probs.shape[1];
            var program = new MultinomialProgram(batchSize, numOutcomes, numSamples);
            var customValues = [[seed]];
            var res = backend.runWebGLProgram(program, [probs], 'int32', customValues);
            if (!normalized) {
                backend.disposeIntermediateTensorInfo(probs);
            }
            return res;
        }
        var multinomialConfig = {
            kernelName: tf.Multinomial,
            backendName: 'webgl',
            kernelFunc: multinomial
        };

        var NEG = CHECK_NAN_SNIPPET$1 + "\n  return -x;\n";
        var NEG_PACKED = "\n  vec4 result = -x;\n  bvec4 isNaN = isnan(x);\n\n  result.r = isNaN.r ? x.r : result.r;\n  result.g = isNaN.g ? x.g : result.g;\n  result.b = isNaN.b ? x.b : result.b;\n  result.a = isNaN.a ? x.a : result.a;\n\n  return result;\n";
        // This doesn't use unaryKernelFunc because negImplCPU is not of type
        // SimpleUnaryKernelImplCPU.
        function neg(args) {
            var inputs = args.inputs
                , backend = args.backend;
            var x = inputs.x;
            if (backend.shouldExecuteOnCPU([x])) {
                var xData = backend.texData.get(x.dataId);
                var _a = __read(negImplCPU(xData.values, x.shape, x.dtype), 2)
                    , outValues = _a[0]
                    , newShape = _a[1];
                return backend.makeTensorInfo(newShape, x.dtype, outValues);
            }
            var program;
            if (tf.env().getBool('WEBGL_PACK_UNARY_OPERATIONS')) {
                program = new UnaryOpPackedProgram(x.shape, NEG_PACKED);
            } else {
                program = new UnaryOpProgram(x.shape, NEG);
            }
            return backend.runWebGLProgram(program, [x], x.dtype);
        }
        var negConfig = {
            kernelName: tf.Neg,
            backendName: 'webgl',
            kernelFunc: neg
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var nonMaxSuppressionV3Impl = tf.kernel_impls.nonMaxSuppressionV3Impl;
        function nonMaxSuppressionV3(args) {
            tf.backend_util.warn('tf.nonMaxSuppression() in webgl locks the UI thread. ' + 'Call tf.nonMaxSuppressionAsync() instead');
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var boxes = inputs.boxes
                , scores = inputs.scores;
            var maxOutputSize = attrs.maxOutputSize
                , iouThreshold = attrs.iouThreshold
                , scoreThreshold = attrs.scoreThreshold;
            var boxesVals = backend.readSync(boxes.dataId);
            var scoresVals = backend.readSync(scores.dataId);
            var selectedIndices = nonMaxSuppressionV3Impl(boxesVals, scoresVals, maxOutputSize, iouThreshold, scoreThreshold).selectedIndices;
            return backend.makeTensorInfo([selectedIndices.length], 'int32', new Int32Array(selectedIndices));
        }
        var nonMaxSuppressionV3Config = {
            kernelName: tf.NonMaxSuppressionV3,
            backendName: 'webgl',
            kernelFunc: nonMaxSuppressionV3
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var nonMaxSuppressionV4Impl = tf.kernel_impls.nonMaxSuppressionV4Impl;
        function nonMaxSuppressionV4(args) {
            tf.backend_util.warn('tf.nonMaxSuppression() in webgl locks the UI thread. ' + 'Call tf.nonMaxSuppressionAsync() instead');
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var boxes = inputs.boxes
                , scores = inputs.scores;
            var maxOutputSize = attrs.maxOutputSize
                , iouThreshold = attrs.iouThreshold
                , scoreThreshold = attrs.scoreThreshold
                , padToMaxOutputSize = attrs.padToMaxOutputSize;
            var boxesVals = backend.readSync(boxes.dataId);
            var scoresVals = backend.readSync(scores.dataId);
            var _a = nonMaxSuppressionV4Impl(boxesVals, scoresVals, maxOutputSize, iouThreshold, scoreThreshold, padToMaxOutputSize)
                , selectedIndices = _a.selectedIndices
                , validOutputs = _a.validOutputs;
            return [backend.makeTensorInfo([selectedIndices.length], 'int32', new Int32Array(selectedIndices)), backend.makeTensorInfo([], 'int32', new Int32Array([validOutputs]))];
        }
        var nonMaxSuppressionV4Config = {
            kernelName: tf.NonMaxSuppressionV4,
            backendName: 'webgl',
            kernelFunc: nonMaxSuppressionV4
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var nonMaxSuppressionV5Impl = tf.kernel_impls.nonMaxSuppressionV5Impl;
        function nonMaxSuppressionV5(args) {
            tf.backend_util.warn('tf.nonMaxSuppression() in webgl locks the UI thread. ' + 'Call tf.nonMaxSuppressionAsync() instead');
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var boxes = inputs.boxes
                , scores = inputs.scores;
            var maxOutputSize = attrs.maxOutputSize
                , iouThreshold = attrs.iouThreshold
                , scoreThreshold = attrs.scoreThreshold
                , softNmsSigma = attrs.softNmsSigma;
            var boxesVals = backend.readSync(boxes.dataId);
            var scoresVals = backend.readSync(scores.dataId);
            var maxOutputSizeVal = maxOutputSize;
            var iouThresholdVal = iouThreshold;
            var scoreThresholdVal = scoreThreshold;
            var softNmsSigmaVal = softNmsSigma;
            var _a = nonMaxSuppressionV5Impl(boxesVals, scoresVals, maxOutputSizeVal, iouThresholdVal, scoreThresholdVal, softNmsSigmaVal)
                , selectedIndices = _a.selectedIndices
                , selectedScores = _a.selectedScores;
            return [backend.makeTensorInfo([selectedIndices.length], 'int32', new Int32Array(selectedIndices)), backend.makeTensorInfo([selectedScores.length], 'float32', new Float32Array(selectedScores))];
        }
        var nonMaxSuppressionV5Config = {
            kernelName: tf.NonMaxSuppressionV5,
            backendName: 'webgl',
            kernelFunc: nonMaxSuppressionV5
        };

        /**
         * @license
         * Copyright 2017 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var OneHotProgram = /** @class */
            (function () {
                function OneHotProgram(numIndices, depth, onValue, offValue) {
                    this.variableNames = ['indices'];
                    this.outputShape = [numIndices, depth];
                    this.userCode = "\n      void main() {\n        ivec2 coords = getOutputCoords();\n        int index = round(getIndices(coords.x));\n        setOutput(mix(float(".concat(offValue, "), float(").concat(onValue, "),\n                      float(index == coords.y)));\n      }\n    ");
                }
                return OneHotProgram;
            }());

        var oneHot = function (args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var indices = inputs.indices;
            var dtype = attrs.dtype
                , depth = attrs.depth
                , onValue = attrs.onValue
                , offValue = attrs.offValue;
            var indicesSize = tf.util.sizeFromShape(indices.shape);
            var program = new OneHotProgram(indicesSize, depth, onValue, offValue);
            var reshaped = reshape({
                inputs: {
                    x: indices
                },
                backend: backend,
                attrs: {
                    shape: [indicesSize]
                }
            });
            var result = backend.runWebGLProgram(program, [reshaped], dtype);
            backend.disposeIntermediateTensorInfo(reshaped);
            var outShape = __spreadArray(__spreadArray([], __read(indices.shape), false), [depth], false);
            var out = reshape({
                inputs: {
                    x: result
                },
                backend: backend,
                attrs: {
                    shape: outShape
                }
            });
            backend.disposeIntermediateTensorInfo(result);
            return out;
        };
        var oneHotConfig = {
            kernelName: tf.OneHot,
            backendName: 'webgl',
            kernelFunc: oneHot
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function zerosLike(args) {
            var inputs = args.inputs
                , backend = args.backend;
            var x = inputs.x;
            if (x.dtype === 'complex64') {
                var realPart = real({
                    inputs: {
                        input: x
                    },
                    backend: backend
                });
                var r = zerosLike({
                    inputs: {
                        x: realPart
                    },
                    backend: backend
                });
                var imagPart = imag({
                    inputs: {
                        input: x
                    },
                    backend: backend
                });
                var i = zerosLike({
                    inputs: {
                        x: imagPart
                    },
                    backend: backend
                });
                var result = complex({
                    inputs: {
                        real: r,
                        imag: i
                    },
                    backend: backend
                });
                backend.disposeIntermediateTensorInfo(realPart);
                backend.disposeIntermediateTensorInfo(r);
                backend.disposeIntermediateTensorInfo(imagPart);
                backend.disposeIntermediateTensorInfo(i);
                return result;
            } else {
                return fill({
                    attrs: {
                        shape: x.shape,
                        dtype: x.dtype,
                        value: x.dtype === 'string' ? '' : 0
                    },
                    backend: backend
                });
            }
        }
        var zerosLikeConfig = {
            kernelName: tf.ZerosLike,
            backendName: 'webgl',
            kernelFunc: zerosLike
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function onesLike(args) {
            var inputs = args.inputs
                , backend = args.backend;
            var x = inputs.x;
            if (x.dtype === 'string') {
                throw new Error('onesLike is not supported under string dtype');
            } else if (x.dtype === 'complex64') {
                var realPart = real({
                    inputs: {
                        input: x
                    },
                    backend: backend
                });
                var r = onesLike({
                    inputs: {
                        x: realPart
                    },
                    backend: backend
                });
                var imagPart = imag({
                    inputs: {
                        input: x
                    },
                    backend: backend
                });
                var i = zerosLike({
                    inputs: {
                        x: imagPart
                    },
                    backend: backend
                });
                var result = complex({
                    inputs: {
                        real: r,
                        imag: i
                    },
                    backend: backend
                });
                backend.disposeIntermediateTensorInfo(realPart);
                backend.disposeIntermediateTensorInfo(r);
                backend.disposeIntermediateTensorInfo(imagPart);
                backend.disposeIntermediateTensorInfo(i);
                return result;
            } else {
                // TODO(cais, smilkov): Add WebGL shader for onesLike:
                //   https://github.com/tensorflow/tfjs/issues/1293
                return fill({
                    attrs: {
                        shape: x.shape,
                        dtype: x.dtype,
                        value: 1
                    },
                    backend: backend
                });
            }
        }
        var onesLikeConfig = {
            kernelName: tf.OnesLike,
            backendName: 'webgl',
            kernelFunc: onesLike
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function pack(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var axis = attrs.axis;
            if (inputs.length === 1) {
                return expandDims({
                    inputs: {
                        input: inputs[0]
                    },
                    backend: backend,
                    attrs: {
                        dim: axis
                    }
                });
            }
            var shape = inputs[0].shape;
            var dtype = inputs[0].dtype;
            inputs.forEach(function (t) {
                tf.util.assertShapesMatch(shape, t.shape, 'All tensors passed to stack must have matching shapes');
                tf.util.assert(dtype === t.dtype, function () {
                    return 'All tensors passed to stack must have matching dtypes';
                });
            });
            var intermediateTensorInfos = [];
            var expandedTensors = inputs.map(function (t) {
                var expandedT = expandDims({
                    inputs: {
                        input: t
                    },
                    backend: backend,
                    attrs: {
                        dim: axis
                    }
                });
                intermediateTensorInfos.push(expandedT);
                return expandedT;
            });
            var result = concat({
                inputs: expandedTensors,
                backend: backend,
                attrs: {
                    axis: axis
                }
            });
            intermediateTensorInfos.forEach(function (t) {
                return backend.disposeIntermediateTensorInfo(t);
            });
            return result;
        }
        var packConfig = {
            kernelName: tf.Pack,
            backendName: 'webgl',
            kernelFunc: pack
        };

        /**
         * @license
         * Copyright 2017 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var PadProgram = /** @class */
            (function () {
                function PadProgram(xShape, paddings, constantValue) {
                    this.variableNames = ['x'];
                    this.customUniforms = [{
                        name: 'value',
                        type: 'float'
                    }];
                    this.outputShape = paddings.map(function (p, i) {
                        return p[0]/* beforePad */
                            + xShape[i] + p[1];
                    }/* afterPad */
                    );
                    var rank = xShape.length;
                    var type = getCoordsDataType(rank);
                    var start = paddings.map(function (p) {
                        return p[0];
                    }).join(',');
                    var end = paddings.map(function (p, i) {
                        return p[0] + xShape[i];
                    }).join(',');
                    var unpackedCoords = ['coords[0]', 'coords[1]', 'coords[2]', 'coords[3]'].slice(0, rank);
                    if (rank === 1) {
                        this.userCode = "\n        int start = ".concat(start, ";\n        int end = ").concat(end, ";\n\n        void main() {\n          int outC = getOutputCoords();\n          if (outC < start || outC >= end) {\n            setOutput(value);\n          } else {\n            setOutput(getX(outC - start));\n          }\n        }\n      ");
                        return;
                    }
                    this.userCode = "\n      ".concat(type, " start = ").concat(type, "(").concat(start, ");\n      ").concat(type, " end = ").concat(type, "(").concat(end, ");\n\n      void main() {\n        ").concat(type, " outC = getOutputCoords();\n        if (any(lessThan(outC, start)) || any(greaterThanEqual(outC, end))) {\n          setOutput(value);\n        } else {\n          ").concat(type, " coords = outC - start;\n          setOutput(getX(").concat(unpackedCoords, "));\n        }\n      }\n    ");
                }
                return PadProgram;
            }());

        /**
         * @license
         * Copyright 2019 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var PadPackedProgram = /** @class */
            (function () {
                function PadPackedProgram(xShape, paddings, constantValue) {
                    this.variableNames = ['x'];
                    this.packedInputs = true;
                    this.packedOutput = true;
                    this.customUniforms = [{
                        name: 'value',
                        type: 'float'
                    }];
                    this.outputShape = paddings.map(function (p, i) {
                        return p[0]/* beforePad */
                            + xShape[i] + p[1];
                    }/* afterPad */
                    );
                    var rank = xShape.length;
                    var dtype = getCoordsDataType(rank);
                    var start = paddings.map(function (p) {
                        return p[0];
                    }).join(',');
                    var end = paddings.map(function (p, i) {
                        return p[0] + xShape[i];
                    }).join(',');
                    var coords = getChannels('rc', rank);
                    var source = getChannels('source', rank);
                    var cLimit = "".concat(coords[rank - 1], " < ").concat(this.outputShape[rank - 1]);
                    var innerDims = rank === 1 ? 'source' : "vec2(".concat(source.slice(-2).join(), ")");
                    var componentSetup = ["".concat(dtype, " rc = outputLoc;"), "".concat(coords[rank - 1], " += 1;\n       if(").concat(cLimit, ") {\n      "), rank === 1 ? '' : "}\n       rc = outputLoc;\n       ".concat(coords[rank - 2], " += 1;\n       if(").concat(coords[rank - 2], " < ").concat(this.outputShape[rank - 2], ") {"), rank === 1 ? '' : "  ".concat(coords[rank - 1], " += 1;\n         if(").concat(cLimit, ") {")];
                    var paddingArea = rank === 1 ? 'rc < start || rc >= end' : 'any(lessThan(rc, start)) || any(greaterThanEqual(rc, end))';
                    var mainLoop = '';
                    for (var i = 0, j = rank === 1 ? 2 : 4; i < j; i++) {
                        mainLoop += "\n        ".concat(componentSetup[i], "\n        if (").concat(paddingArea, ") {\n          result[").concat(i, "] = float(value);\n        } else {\n          ").concat(dtype, " source = rc - start;\n          result[").concat(i, "] = getChannel(getX(").concat(source.join(), "), ").concat(innerDims, ");\n        }\n      ");
                    }
                    mainLoop += (rank === 1 ? "} " : "}}");
                    this.userCode = "\n      const ".concat(dtype, " start = ").concat(dtype, "(").concat(start, ");\n      const ").concat(dtype, " end = ").concat(dtype, "(").concat(end, ");\n\n      void main() {\n        ").concat(dtype, " outputLoc = getOutputCoords();\n        vec4 result = vec4(0.);\n        ").concat(mainLoop, "\n        setOutput(result);\n      }\n    ");
                }
                return PadPackedProgram;
            }());

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var padV2 = function (args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x;
            var paddings = attrs.paddings
                , constantValue = attrs.constantValue;
            if (tf.util.sizeFromShape(x.shape) === 0) {
                // Short-circuit the computation, since x doesn't have value, only
                // the shape is used to compute output shape to pad.
                var outputShape = paddings.map(function (p, i) {
                    return p[0]/* beforePad */
                        + x.shape[i] + p[1];
                }/* afterPad */
                );
                return fill({
                    backend: backend,
                    attrs: {
                        shape: outputShape,
                        value: constantValue,
                        dtype: x.dtype
                    }
                });
            }
            var program = tf.env().getBool('WEBGL_PACK_ARRAY_OPERATIONS') ? new PadPackedProgram(x.shape, paddings, constantValue) : new PadProgram(x.shape, paddings, constantValue);
            var customValues = [[constantValue]];
            return backend.runWebGLProgram(program, [x], x.dtype, customValues);
        };
        var padV2Config = {
            kernelName: tf.PadV2,
            backendName: 'webgl',
            kernelFunc: padV2
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var POW = "\n  if(a < 0.0 && floor(b) < b){\n    return NAN;\n  }\n  if (b == 0.0) {\n    return 1.0;\n  }\n  return (round(mod(b, 2.0)) != 1) ?\n      pow(abs(a), b) : sign(a) * pow(abs(a), b);\n";
        var POW_PACKED = "\n  // isModRound1 has 1 for components with round(mod(b, 2.0)) == 1, 0 otherwise.\n  vec4 isModRound1 = vec4(equal(round(mod(b, 2.0)), ivec4(1)));\n  vec4 multiplier = sign(a) * isModRound1 + (vec4(1.0) - isModRound1);\n  vec4 result = multiplier * pow(abs(a), b);\n\n  // Ensure that a^0 = 1, including 0^0 = 1 as this correspond to TF and JS\n  bvec4 isExpZero = equal(b, vec4(0.0));\n  result.r = isExpZero.r ? 1.0 : result.r;\n  result.g = isExpZero.g ? 1.0 : result.g;\n  result.b = isExpZero.b ? 1.0 : result.b;\n  result.a = isExpZero.a ? 1.0 : result.a;\n\n  bvec4 isNaN1 = lessThan(a, vec4(0.0));\n  bvec4 isNaN2 = lessThan(floor(b), b);\n  bvec4 isNaN = bvec4(isNaN1.x && isNaN2.x, isNaN1.y && isNaN2.y, isNaN1.z && isNaN2.z, isNaN1.w && isNaN2.w);\n  " + CHECK_NAN_SNIPPET_PACKED + "\n  return result;\n";
        var pow = binaryKernelFunc({
            opSnippet: POW,
            packedOpSnippet: POW_PACKED
        });
        var powConfig = {
            kernelName: tf.Pow,
            backendName: 'webgl',
            kernelFunc: pow
        };

        function prod(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x;
            var axis = attrs.axis
                , keepDims = attrs.keepDims;
            var xRank = x.shape.length;
            var toDispose = [];
            var origAxes = tf.util.parseAxisParam(axis, x.shape);
            var axes = origAxes;
            var permutedAxes = tf.backend_util.getAxesPermutation(axes, xRank);
            var permutedX = x;
            if (permutedAxes != null) {
                permutedX = transpose({
                    inputs: {
                        x: x
                    },
                    backend: backend,
                    attrs: {
                        perm: permutedAxes
                    }
                });
                axes = tf.backend_util.getInnerMostAxes(axes.length, xRank);
                toDispose.push(permutedX);
            }
            tf.backend_util.assertAxesAreInnerMostDims('prod', axes, xRank);
            var res;
            if (backend.shouldExecuteOnCPU([permutedX])) {
                var xVals = backend.texData.get(permutedX.dataId).values;
                var _a = prodImplCPU(permutedX.shape, permutedX.dtype, xVals, axes)
                    , outVals = _a.outVals
                    , outShape = _a.outShape
                    , outDtype = _a.outDtype;
                res = backend.makeTensorInfo(outShape, outDtype, outVals);
            } else {
                var _b = __read(tf.backend_util.computeOutAndReduceShapes(permutedX.shape, axes), 2)
                    , outShape = _b[0]
                    , reduceShape = _b[1];
                var inSize = tf.util.sizeFromShape(reduceShape);
                var a2D = reshape({
                    inputs: {
                        x: permutedX
                    },
                    backend: backend,
                    attrs: {
                        shape: [-1, inSize]
                    }
                });
                var outputDType = tf.sumOutType(x.dtype);
                var reduced = reduce(a2D, outputDType, 'prod', backend);
                res = reshape({
                    inputs: {
                        x: reduced
                    },
                    backend: backend,
                    attrs: {
                        shape: outShape
                    }
                });
                toDispose.push(a2D);
                toDispose.push(reduced);
            }
            if (keepDims) {
                toDispose.push(res);
                var newShape = tf.backend_util.expandShapeToKeepDim(res.shape, origAxes);
                res = reshape({
                    inputs: {
                        x: res
                    },
                    backend: backend,
                    attrs: {
                        shape: newShape
                    }
                });
            }
            toDispose.forEach(function (t) {
                return backend.disposeIntermediateTensorInfo(t);
            });
            return res;
        }
        var prodConfig = {
            kernelName: tf.Prod,
            backendName: 'webgl',
            kernelFunc: prod
        };

        function raggedGather(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var paramsNestedSplits = inputs.paramsNestedSplits
                , paramsDenseValues = inputs.paramsDenseValues
                , indices = inputs.indices;
            attrs.outputRaggedRank;
            var $paramsNestedSplits = paramsNestedSplits.map(function (t) {
                return backend.readSync(t.dataId);
            });
            var $paramsNestedSplitsShapes = paramsNestedSplits.map(function (t) {
                return t.shape;
            });
            var $paramsDenseValues = backend.readSync(paramsDenseValues.dataId);
            var $indices = backend.readSync(indices.dataId);
            var _a = __read(raggedGatherImplCPU($paramsNestedSplits, $paramsNestedSplitsShapes, $paramsDenseValues, paramsDenseValues.shape, paramsDenseValues.dtype, $indices, indices.shape), 3)
                , outputNestedSplits = _a[0]
                , outputDenseValues = _a[1]
                , outputDenseValuesShape = _a[2];
            var outputNestedSplitsTensors = outputNestedSplits.map(function (splits) {
                return backend.makeTensorInfo([splits.length], 'int32', splits);
            });
            var outputDenseValuesTensor = backend.makeTensorInfo(outputDenseValuesShape, paramsDenseValues.dtype, outputDenseValues);
            return outputNestedSplitsTensors.concat([outputDenseValuesTensor]);
        }
        var raggedGatherConfig = {
            kernelName: tf.RaggedGather,
            backendName: 'webgl',
            kernelFunc: raggedGather,
        };

        function raggedRange(args) {
            var inputs = args.inputs
                , backend = args.backend;
            var starts = inputs.starts
                , limits = inputs.limits
                , deltas = inputs.deltas;
            var $starts = backend.readSync(starts.dataId);
            var $limits = backend.readSync(limits.dataId);
            var $deltas = backend.readSync(deltas.dataId);
            var _a = __read(raggedRangeImplCPU($starts, starts.shape, starts.dtype, $limits, limits.shape, $deltas, deltas.shape), 2)
                , rtNestedSplitsData = _a[0]
                , rtDenseValuesData = _a[1];
            var rtNestedSplits = backend.makeTensorInfo([rtNestedSplitsData.length], 'int32', rtNestedSplitsData);
            var rtDenseValues = backend.makeTensorInfo([rtDenseValuesData.length], starts.dtype, rtDenseValuesData);
            return [rtNestedSplits, rtDenseValues];
        }
        var raggedRangeConfig = {
            kernelName: tf.RaggedRange,
            backendName: 'webgl',
            kernelFunc: raggedRange,
        };

        function raggedTensorToTensor(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var shape = inputs.shape
                , values = inputs.values
                , defaultValue = inputs.defaultValue
                , rowPartitionTensors = inputs.rowPartitionTensors;
            var rowPartitionTypes = attrs.rowPartitionTypes;
            var $shape = backend.readSync(shape.dataId);
            var $values = backend.readSync(values.dataId);
            var $defaultValue = backend.readSync(defaultValue.dataId);
            var $rowPartitionValues = rowPartitionTensors.map(function (t) {
                return backend.readSync(t.dataId);
            });
            var rowPartitionValuesShapes = rowPartitionTensors.map(function (t) {
                return t.shape;
            });
            var _a = __read(raggedTensorToTensorImplCPU($shape, shape.shape, $values, values.shape, values.dtype, $defaultValue, defaultValue.shape, $rowPartitionValues, rowPartitionValuesShapes, rowPartitionTypes), 2)
                , outputShape = _a[0]
                , output = _a[1];
            return backend.makeTensorInfo(outputShape, values.dtype, output);
        }
        var raggedTensorToTensorConfig = {
            kernelName: tf.RaggedTensorToTensor,
            backendName: 'webgl',
            kernelFunc: raggedTensorToTensor,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var range = function (args) {
            var backend = args.backend
                , attrs = args.attrs;
            var start = attrs.start
                , stop = attrs.stop
                , step = attrs.step
                , dtype = attrs.dtype;
            var values = rangeImplCPU(start, stop, step, dtype);
            return backend.makeTensorInfo([values.length], dtype, values);
        };
        var rangeConfig = {
            kernelName: tf.Range,
            backendName: 'webgl',
            kernelFunc: range
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var RECIPROCAL = "return 1.0 / x;";
        var reciprocal = unaryKernelFunc({
            opSnippet: RECIPROCAL
        });
        var reciprocalConfig = {
            kernelName: tf.Reciprocal,
            backendName: 'webgl',
            kernelFunc: reciprocal,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var RELU = CHECK_NAN_SNIPPET$1 + "\n  return (x < 0.0) ? 0.0 : x;\n";
        var RELU_PACKED = "\n  vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0)));\n  bvec4 isNaN = isnan(x);\n\n  result.r = isNaN.r ? x.r : result.r;\n  result.g = isNaN.g ? x.g : result.g;\n  result.b = isNaN.b ? x.b : result.b;\n  result.a = isNaN.a ? x.a : result.a;\n\n  return result;\n";
        var relu = unaryKernelFunc({
            opSnippet: RELU,
            packedOpSnippet: RELU_PACKED
        });
        var reluConfig = {
            kernelName: tf.Relu,
            backendName: 'webgl',
            kernelFunc: relu
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var RELU6 = CHECK_NAN_SNIPPET$1 + "\n  return (x < 0.0) ? 0.0 : min(6.0, x);\n";
        var RELU6_PACKED = "\n  vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0)));\n  bvec4 isNaN = isnan(x);\n\n  result.r = isNaN.r ? x.r : result.r;\n  result.g = isNaN.g ? x.g : result.g;\n  result.b = isNaN.b ? x.b : result.b;\n  result.a = isNaN.a ? x.a : result.a;\n\n  return result;\n";
        var relu6 = unaryKernelFunc({
            opSnippet: RELU6,
            packedOpSnippet: RELU6_PACKED
        });
        var relu6Config = {
            kernelName: tf.Relu6,
            backendName: 'webgl',
            kernelFunc: relu6
        };

        /**
         * @license
         * Copyright 2017 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var ResizeBilinearProgram = /** @class */
            (function () {
                function ResizeBilinearProgram(inputShape, newHeight, newWidth, alignCorners, halfPixelCenters) {
                    this.variableNames = ['A'];
                    this.outputShape = [];
                    var _a = __read(inputShape, 4)
                        , batch = _a[0]
                        , oldHeight = _a[1]
                        , oldWidth = _a[2]
                        , depth = _a[3];
                    this.outputShape = [batch, newHeight, newWidth, depth];
                    var effectiveInSize = [(alignCorners && newHeight > 1) ? oldHeight - 1 : oldHeight, (alignCorners && newWidth > 1) ? oldWidth - 1 : oldWidth];
                    var effectiveOutSize = [(alignCorners && newHeight > 1) ? newHeight - 1 : newHeight, (alignCorners && newWidth > 1) ? newWidth - 1 : newWidth];
                    var sourceFracIndexRC;
                    if (halfPixelCenters) {
                        sourceFracIndexRC = "(vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC" + " - vec2(0.5)";
                    } else {
                        sourceFracIndexRC = "vec2(yRC) * effectiveInputOverOutputRatioRC";
                    }
                    this.userCode = "\n      const vec2 effectiveInputOverOutputRatioRC = vec2(\n          ".concat(effectiveInSize[0] / effectiveOutSize[0], ",\n          ").concat(effectiveInSize[1] / effectiveOutSize[1], ");\n      const vec2 inputShapeRC = vec2(").concat(oldHeight, ".0, ").concat(oldWidth, ".0);\n\n      void main() {\n        ivec4 coords = getOutputCoords();\n        int b = coords[0];\n        int d = coords[3];\n        ivec2 yRC = coords.yz;\n\n        // Fractional source index.\n        vec2 sourceFracIndexRC = ").concat(sourceFracIndexRC, ";\n\n        // Compute the four integer indices.\n        ivec2 sourceFloorRC = ivec2(max(sourceFracIndexRC, vec2(0.0)));\n        ivec2 sourceCeilRC = ivec2(\n          min(inputShapeRC - 1.0, ceil(sourceFracIndexRC)));\n\n        float topLeft = getA(b, sourceFloorRC.x, sourceFloorRC.y, d);\n        float bottomLeft = getA(b, sourceCeilRC.x, sourceFloorRC.y, d);\n        float topRight = getA(b, sourceFloorRC.x, sourceCeilRC.y, d);\n        float bottomRight = getA(b, sourceCeilRC.x, sourceCeilRC.y, d);\n\n        vec2 fracRC = sourceFracIndexRC - vec2(sourceFloorRC);\n\n        float top = topLeft + (topRight - topLeft) * fracRC.y;\n        float bottom = bottomLeft + (bottomRight - bottomLeft) * fracRC.y;\n        float newValue = top + (bottom - top) * fracRC.x;\n\n        setOutput(newValue);\n      }\n    ");
                }
                return ResizeBilinearProgram;
            }());

        /**
         * @license
         * Copyright 2019 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var ResizeBilinearPackedProgram = /** @class */
            (function () {
                function ResizeBilinearPackedProgram(inputShape, newHeight, newWidth, alignCorners, halfPixelCenters) {
                    this.variableNames = ['A'];
                    this.packedInputs = true;
                    this.packedOutput = true;
                    this.outputShape = [];
                    var _a = __read(inputShape, 4)
                        , batch = _a[0]
                        , oldHeight = _a[1]
                        , oldWidth = _a[2]
                        , depth = _a[3];
                    this.outputShape = [batch, newHeight, newWidth, depth];
                    var effectiveInSize = [(alignCorners && newHeight > 1) ? oldHeight - 1 : oldHeight, (alignCorners && newWidth > 1) ? oldWidth - 1 : oldWidth];
                    var effectiveOutSize = [(alignCorners && newHeight > 1) ? newHeight - 1 : newHeight, (alignCorners && newWidth > 1) ? newWidth - 1 : newWidth];
                    var sourceFracIndexRC;
                    if (halfPixelCenters) {
                        sourceFracIndexRC = "(vec3(yRC) + vec3(0.5)) * " + "effectiveInputOverOutputRatioRC - vec3(0.5)";
                    } else {
                        sourceFracIndexRC = "vec3(yRC) * effectiveInputOverOutputRatioRC";
                    }
                    this.userCode = "\n      const vec3 effectiveInputOverOutputRatioRC = vec3(\n          ".concat(effectiveInSize[0] / effectiveOutSize[0], ",\n          ").concat(effectiveInSize[1] / effectiveOutSize[1], ",\n          ").concat(effectiveInSize[1] / effectiveOutSize[1], ");\n      const vec3 inputShapeRC = vec3(").concat(oldHeight, ".0, ").concat(oldWidth, ".0,\n                                     ").concat(oldWidth, ".0);\n\n      float getAValue(int b, int r, int c, int d) {\n        return getChannel(getA(b, r, c, d), vec2(c, d));\n      }\n\n      void main() {\n        ivec4 coords = getOutputCoords();\n        int b = coords[0];\n        int d = coords[3];\n        // Calculate values for next column in yRC.z.\n        ivec3 yRC = coords.yzz + ivec3(0, 0, 1);\n\n        // Fractional source index.\n        vec3 sourceFracIndexRC = ").concat(sourceFracIndexRC, ";\n\n        // Compute the four integer indices.\n        ivec3 sourceFloorRC = ivec3(max(sourceFracIndexRC, vec3(0.0)));\n        ivec3 sourceCeilRC = ivec3(\n          min(inputShapeRC - 1.0, ceil(sourceFracIndexRC)));\n\n        // Should we calculate next column and row elements in 2x2 packed cell.\n        bool hasNextCol = d < ").concat(depth - 1, ";\n        bool hasNextRow = coords.z < ").concat(newWidth - 1, ";\n\n        // In parallel, construct four corners for all four components in\n        // packed 2x2 cell.\n        vec4 topLeft = vec4(\n          getAValue(b, sourceFloorRC.x, sourceFloorRC.y, d),\n          hasNextCol ? getAValue(b, sourceFloorRC.x, sourceFloorRC.y, d + 1)\n                     : 0.0,\n          hasNextRow ? getAValue(b, sourceFloorRC.x, sourceFloorRC.z, d)\n                     : 0.0,\n          (hasNextRow && hasNextCol) ?\n            getAValue(b, sourceFloorRC.x, sourceFloorRC.z, d + 1) : 0.0);\n\n        vec4 bottomLeft = vec4(\n          getAValue(b, sourceCeilRC.x, sourceFloorRC.y, d),\n          hasNextCol ? getAValue(b, sourceCeilRC.x, sourceFloorRC.y, d + 1)\n                     : 0.0,\n          hasNextRow ? getAValue(b, sourceCeilRC.x, sourceFloorRC.z, d)\n                     : 0.0,\n          (hasNextRow && hasNextCol) ?\n            getAValue(b, sourceCeilRC.x, sourceFloorRC.z, d + 1) : 0.0);\n\n        vec4 topRight = vec4(\n          getAValue(b, sourceFloorRC.x, sourceCeilRC.y, d),\n          hasNextCol ? getAValue(b, sourceFloorRC.x, sourceCeilRC.y, d + 1)\n                     : 0.0,\n          hasNextRow ? getAValue(b, sourceFloorRC.x, sourceCeilRC.z, d)\n                     : 0.0,\n          (hasNextRow && hasNextCol) ?\n            getAValue(b, sourceFloorRC.x, sourceCeilRC.z, d + 1) : 0.0);\n\n        vec4 bottomRight = vec4(\n          getAValue(b, sourceCeilRC.x, sourceCeilRC.y, d),\n          hasNextCol ? getAValue(b, sourceCeilRC.x, sourceCeilRC.y, d + 1)\n                     : 0.0,\n          hasNextRow ? getAValue(b, sourceCeilRC.x, sourceCeilRC.z, d)\n                     : 0.0,\n          (hasNextRow && hasNextCol) ?\n            getAValue(b, sourceCeilRC.x, sourceCeilRC.z, d + 1) : 0.0);\n\n        vec3 fracRC = sourceFracIndexRC - vec3(sourceFloorRC);\n\n        vec4 top = mix(topLeft, topRight, fracRC.yyzz);\n        vec4 bottom = mix(bottomLeft, bottomRight, fracRC.yyzz);\n        vec4 newValue = mix(top, bottom, fracRC.x);\n\n        setOutput(newValue);\n      }\n    ");
                }
                return ResizeBilinearPackedProgram;
            }());

        function resizeBilinear(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var images = inputs.images;
            var alignCorners = attrs.alignCorners
                , halfPixelCenters = attrs.halfPixelCenters
                , size = attrs.size;
            var _a = __read(size, 2)
                , newHeight = _a[0]
                , newWidth = _a[1];
            var program = tf.env().getBool('WEBGL_PACK_IMAGE_OPERATIONS') ? new ResizeBilinearPackedProgram(images.shape, newHeight, newWidth, alignCorners, halfPixelCenters) : new ResizeBilinearProgram(images.shape, newHeight, newWidth, alignCorners, halfPixelCenters);
            return backend.runWebGLProgram(program, [images], 'float32');
        }
        var resizeBilinearConfig = {
            kernelName: tf.ResizeBilinear,
            backendName: 'webgl',
            kernelFunc: resizeBilinear
        };

        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var ResizeBilinearBackpropProgram = /** @class */
            (function () {
                function ResizeBilinearBackpropProgram(dyShape, inputShape, alignCorners) {
                    this.variableNames = ['dy'];
                    this.outputShape = [];
                    this.outputShape = inputShape;
                    var _a = __read(inputShape, 3)
                        , xHeight = _a[1]
                        , xWidth = _a[2];
                    var _b = __read(dyShape, 3)
                        , yHeight = _b[1]
                        , yWidth = _b[2];
                    // In the backwards pass, we want to find the pixels that were generated for
                    // each pixel in the input image the forward pass and add the corresponding
                    // coefficient from dy to the gradient (with some interpolation).
                    var effectiveXSize = [(alignCorners && yHeight > 1) ? xHeight - 1 : xHeight, (alignCorners && yWidth > 1) ? xWidth - 1 : xWidth];
                    var effectiveYSize = [(alignCorners && yHeight > 1) ? yHeight - 1 : yHeight, (alignCorners && yWidth > 1) ? yWidth - 1 : yWidth];
                    var heightScale = effectiveXSize[0] / effectiveYSize[0];
                    var widthScale = effectiveXSize[1] / effectiveYSize[1];
                    var invHeightScale = 1 / heightScale;
                    var invWidthScale = 1 / widthScale;
                    // This defines the size of the window of values around a particular
                    // index in dy that we want to search for contributions to dx.
                    var winHeight = (Math.ceil(invHeightScale) * 2) + 2;
                    var winWidth = (Math.ceil(invWidthScale) * 2) + 2;
                    this.userCode = "\n      void main() {\n        ivec4 coords = getOutputCoords();\n        int b = coords[0];\n        int d = coords[3];\n        int r = coords[1];\n        int c = coords[2];\n\n        float accumulator = 0.0;\n\n        const float heightScale = float(".concat(heightScale, ");\n        const float widthScale = float(").concat(widthScale, ");\n\n        const float invHeightScale = float(").concat(invHeightScale, ");\n        const float invWidthScale = float(").concat(invWidthScale, ");\n\n        const int winHeight = int(").concat(winHeight, ");\n        const int winWidth = int(").concat(winWidth, ");\n\n        // Compute bounds for where in dy we will look\n        float startRLerp = floor(float(r) * invHeightScale);\n        int startDyR = int(startRLerp - float(winHeight / 2));\n\n        float startCLerp = floor(float(c) * invWidthScale);\n        int startDyC = int(startCLerp - float(winWidth / 2));\n\n        // Loop over dy\n        for (int dyROffset = 0; dyROffset < winHeight; dyROffset++) {\n          int dyR = dyROffset + startDyR;\n\n          // Guard against the window exceeding the bounds of dy\n          if (dyR < 0 || dyR >= ").concat(yHeight, ") {\n            continue;\n          }\n\n          for (int dyCOffset = 0; dyCOffset < winWidth; dyCOffset++) {\n            int dyC = dyCOffset + startDyC;\n\n            // Guard against the window exceeding the bounds of dy\n            if (dyC < 0 || dyC >= ").concat(yWidth, ") {\n              continue;\n            }\n\n            float dxR = float(dyR) * heightScale;\n            int topDxRIndex = int(floor(dxR));\n            int bottomDxRIndex = int(min(ceil(dxR), ").concat(xHeight - 1, ".0));\n            float dxRLerp = dxR - float(topDxRIndex);\n            float inverseDxRLerp = 1.0 - dxRLerp;\n\n            float dxC = float(dyC) * widthScale;\n            int leftDxCIndex = int(floor(dxC));\n            int rightDxCIndex = int(min(ceil(dxC), ").concat(xWidth - 1, ".0));\n            float dxCLerp = dxC - float(leftDxCIndex);\n            float inverseDxCLerp = 1.0 - dxCLerp;\n\n            if (r == topDxRIndex && c == leftDxCIndex) {\n              // topLeft\n              accumulator +=\n                getDy(b, dyR, dyC, d) * inverseDxRLerp * inverseDxCLerp;\n            }\n\n            if (r == topDxRIndex && c == rightDxCIndex) {\n              // topRight\n              accumulator += getDy(b, dyR, dyC, d) * inverseDxRLerp * dxCLerp;\n            }\n\n            if (r == bottomDxRIndex && c == leftDxCIndex) {\n              // bottomLeft\n              accumulator += getDy(b, dyR, dyC, d) * dxRLerp * inverseDxCLerp;\n            }\n\n            if (r == bottomDxRIndex && c == rightDxCIndex) {\n              // bottomRight\n              accumulator += getDy(b, dyR, dyC, d) * dxRLerp * dxCLerp;\n            }\n          }\n        }\n        // End loop over dy\n\n        setOutput(accumulator);\n      }\n    ");
                }
                return ResizeBilinearBackpropProgram;
            }());

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function resizeBilinearGrad(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var images = inputs.images
                , dy = inputs.dy;
            var alignCorners = attrs.alignCorners;
            var program = new ResizeBilinearBackpropProgram(dy.shape, images.shape, alignCorners);
            return backend.runWebGLProgram(program, [dy], dy.dtype);
        }
        var resizeBilinearGradConfig = {
            kernelName: tf.ResizeBilinearGrad,
            backendName: 'webgl',
            kernelFunc: resizeBilinearGrad
        };

        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var ResizeNearestNeighborProgram = /** @class */
            (function () {
                function ResizeNearestNeighborProgram(inputShape, newHeight, newWidth, alignCorners, halfPixelCenters) {
                    this.variableNames = ['A'];
                    this.outputShape = [];
                    var _a = __read(inputShape, 4)
                        , batch = _a[0]
                        , oldHeight = _a[1]
                        , oldWidth = _a[2]
                        , depth = _a[3];
                    this.outputShape = [batch, newHeight, newWidth, depth];
                    var effectiveInSize = [(alignCorners && newHeight > 1) ? oldHeight - 1 : oldHeight, (alignCorners && newWidth > 1) ? oldWidth - 1 : oldWidth];
                    var effectiveOutSize = [(alignCorners && newHeight > 1) ? newHeight - 1 : newHeight, (alignCorners && newWidth > 1) ? newWidth - 1 : newWidth];
                    // When align corners is false, we rounds the value with floor.
                    var roundBase = alignCorners ? '0.5' : '0.0';
                    var sourceFracIndexRC;
                    if (halfPixelCenters) {
                        sourceFracIndexRC = "max((vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC" + ", vec2(0.0))";
                    } else {
                        sourceFracIndexRC = "vec2(yRC) * effectiveInputOverOutputRatioRC";
                    }
                    this.userCode = "\n      const vec2 effectiveInputOverOutputRatioRC = vec2(\n          ".concat(effectiveInSize[0] / effectiveOutSize[0], ",\n          ").concat(effectiveInSize[1] / effectiveOutSize[1], ");\n      const vec2 inputShapeRC = vec2(").concat(oldHeight, ".0, ").concat(oldWidth, ".0);\n\n      void main() {\n        ivec4 coords = getOutputCoords();\n        int b = coords[0];\n        int d = coords[3];\n        ivec2 yRC = coords.yz;\n\n        // Fractional source index.\n        vec2 sourceFracIndexRC = ").concat(sourceFracIndexRC, ";\n\n        // Compute the coordinators of nearest neighbor point.\n        ivec2 sourceNearestRC = ivec2(\n          min(inputShapeRC - 1.0, floor(sourceFracIndexRC + ").concat(roundBase, ")));\n        float newValue = getA(b, sourceNearestRC.x, sourceNearestRC.y, d);\n\n        setOutput(newValue);\n      }\n    ");
                }
                return ResizeNearestNeighborProgram;
            }());

        /**
         * @license
         * Copyright 2019 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var ResizeNearestNeighborPackedProgram = /** @class */
            (function () {
                function ResizeNearestNeighborPackedProgram(inputShape, newHeight, newWidth, alignCorners, halfPixelCenters) {
                    this.variableNames = ['A'];
                    this.packedInputs = true;
                    this.packedOutput = true;
                    this.outputShape = [];
                    var _a = __read(inputShape, 4)
                        , batch = _a[0]
                        , oldHeight = _a[1]
                        , oldWidth = _a[2]
                        , depth = _a[3];
                    this.outputShape = [batch, newHeight, newWidth, depth];
                    var effectiveInSize = [(alignCorners && newHeight > 1) ? oldHeight - 1 : oldHeight, (alignCorners && newWidth > 1) ? oldWidth - 1 : oldWidth];
                    var effectiveOutSize = [(alignCorners && newHeight > 1) ? newHeight - 1 : newHeight, (alignCorners && newWidth > 1) ? newWidth - 1 : newWidth];
                    // When align corners is false, we rounds the value with floor.
                    var roundBase = alignCorners ? '0.5' : '0.0';
                    var sourceFracIndexRC;
                    if (halfPixelCenters) {
                        sourceFracIndexRC = "max((vec3(yRC) + vec3(0.5)) * " + "effectiveInputOverOutputRatioRC, vec3(0.0))";
                    } else {
                        sourceFracIndexRC = "vec3(yRC) * effectiveInputOverOutputRatioRC";
                    }
                    this.userCode = "\n      const vec3 effectiveInputOverOutputRatioRC = vec3(\n          ".concat(effectiveInSize[0] / effectiveOutSize[0], ",\n          ").concat(effectiveInSize[1] / effectiveOutSize[1], ",\n          ").concat(effectiveInSize[1] / effectiveOutSize[1], ");\n      const vec3 inputShapeRC = vec3(").concat(oldHeight, ".0, ").concat(oldWidth, ".0,\n                                     ").concat(oldWidth, ".0);\n\n      float getAValue(int b, int r, int c, int d) {\n        return getChannel(getA(b, r, c, d), vec2(c, d));\n      }\n\n      void main() {\n        ivec4 coords = getOutputCoords();\n        int b = coords[0];\n        int d = coords[3];\n        // Calculate values for next column in yRC.z.\n        ivec3 yRC = coords.yzz + ivec3(0, 0, 1);\n\n        // Fractional source index.\n        vec3 sourceFracIndexRC = ").concat(sourceFracIndexRC, ";\n\n        // Compute the coordinators of nearest neighbor point.\n        ivec3 sourceNearestRC = ivec3(\n          min(inputShapeRC - 1.0, floor(sourceFracIndexRC + ").concat(roundBase, ")));\n\n        // Should we calculate next column and row elements in 2x2 packed cell.\n        bool hasNextCol = d < ").concat(depth - 1, ";\n        bool hasNextRow = coords.z < ").concat(newWidth - 1, ";\n\n        vec4 newValue = vec4(\n          getAValue(b, sourceNearestRC.x, sourceNearestRC.y, d),\n          hasNextCol ? getAValue(b, sourceNearestRC.x, sourceNearestRC.y, d + 1)\n                     : 0.0,\n          hasNextRow ? getAValue(b, sourceNearestRC.x, sourceNearestRC.z, d)\n                     : 0.0,\n          (hasNextRow && hasNextCol) ?\n            getAValue(b, sourceNearestRC.x, sourceNearestRC.z, d + 1) : 0.0);\n\n        setOutput(newValue);\n      }\n    ");
                }
                return ResizeNearestNeighborPackedProgram;
            }());

        function resizeNearestNeighbor(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var images = inputs.images;
            var alignCorners = attrs.alignCorners
                , halfPixelCenters = attrs.halfPixelCenters
                , size = attrs.size;
            var _a = __read(size, 2)
                , newHeight = _a[0]
                , newWidth = _a[1];
            var program = tf.env().getBool('WEBGL_PACK_IMAGE_OPERATIONS') ? new ResizeNearestNeighborPackedProgram(images.shape, newHeight, newWidth, alignCorners, halfPixelCenters) : new ResizeNearestNeighborProgram(images.shape, newHeight, newWidth, alignCorners, halfPixelCenters);
            return backend.runWebGLProgram(program, [images], images.dtype);
        }
        var resizeNearestNeighborConfig = {
            kernelName: tf.ResizeNearestNeighbor,
            backendName: 'webgl',
            kernelFunc: resizeNearestNeighbor
        };

        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var ResizeNearestNeigborBackpropProgram = /** @class */
            (function () {
                function ResizeNearestNeigborBackpropProgram(dyShape, inputShape, alignCorners) {
                    this.variableNames = ['dy'];
                    this.outputShape = [];
                    this.outputShape = inputShape;
                    var _a = __read(inputShape, 3)
                        , xHeight = _a[1]
                        , xWidth = _a[2];
                    var _b = __read(dyShape, 3)
                        , yHeight = _b[1]
                        , yWidth = _b[2];
                    // In the backwards pass, we want to find the pixels that were generated for
                    // each pixel in the input image the forward pass and add the corresponding
                    // coefficient from dy to the gradient (with some interpolation).
                    var effectiveXSize = [(alignCorners && yHeight > 1) ? xHeight - 1 : xHeight, (alignCorners && yWidth > 1) ? xWidth - 1 : xWidth];
                    var effectiveYSize = [(alignCorners && yHeight > 1) ? yHeight - 1 : yHeight, (alignCorners && yWidth > 1) ? yWidth - 1 : yWidth];
                    var heightScale = effectiveXSize[0] / effectiveYSize[0];
                    var widthScale = effectiveXSize[1] / effectiveYSize[1];
                    var invHeightScale = 1 / heightScale;
                    var invWidthScale = 1 / widthScale;
                    // This defines the size of the window of values around a particular
                    // index in dy that we want to search for contributions to dx.
                    var winHeight = (Math.ceil(invHeightScale) * 2) + 2;
                    var winWidth = (Math.ceil(invWidthScale) * 2) + 2;
                    this.userCode = "\n      void main() {\n        ivec4 coords = getOutputCoords();\n        int b = coords[0];\n        int d = coords[3];\n        int r = coords[1];\n        int c = coords[2];\n\n        float accumulator = 0.0;\n\n        const float heightScale = float(".concat(heightScale, ");\n        const float widthScale = float(").concat(widthScale, ");\n\n        const float invHeightScale = float(").concat(invHeightScale, ");\n        const float invWidthScale = float(").concat(invWidthScale, ");\n\n        const int winHeight = int(").concat(winHeight, ");\n        const int winWidth = int(").concat(winWidth, ");\n\n        // Compute bounds for where in dy we will look\n        float startRLerp = floor(float(r) * invHeightScale);\n        int startDyR = int(floor(startRLerp - float(winHeight / 2)));\n\n        float startCLerp = floor(float(c) * invWidthScale);\n        int startDyC = int(floor(startCLerp - float(winWidth / 2)));\n\n        // Loop over dy\n        for (int dyROffset = 0; dyROffset < winHeight; dyROffset++) {\n          int dyR = dyROffset + startDyR;\n\n          // Guard against the window exceeding the bounds of dy\n          if (dyR < 0 || dyR >= ").concat(yHeight, ") {\n            continue;\n          }\n\n          for (int dyCOffset = 0; dyCOffset < winWidth; dyCOffset++) {\n            int dyC = dyCOffset + startDyC;\n\n            // Guard against the window exceeding the bounds of dy\n            if (dyC < 0 || dyC >= ").concat(yWidth, ") {\n              continue;\n            }\n\n            float sourceFracRow =\n              float(").concat(effectiveXSize[0], ") *\n                (float(dyR) / float(").concat(effectiveYSize[0], "));\n\n            float sourceFracCol =\n                float(").concat(effectiveXSize[1], ") *\n                  (float(dyC) / float(").concat(effectiveYSize[1], "));\n\n            int sourceNearestRow = int(min(\n                float(int(").concat(xHeight, ") - 1),\n                ").concat(alignCorners, " ? float(round(sourceFracRow)) :\n                                  float(floor(sourceFracRow))));\n\n            int sourceNearestCol = int(min(\n                float(int(").concat(xWidth, ") - 1),\n                ").concat(alignCorners, " ? float(round(sourceFracCol)) :\n                                  float(floor(sourceFracCol))));\n\n            if (r == sourceNearestRow && c == sourceNearestCol) {\n              accumulator += getDy(b, dyR, dyC, d);\n            }\n          }\n        }\n        // End loop over dy\n\n        setOutput(accumulator);\n      }\n    ");
                }
                return ResizeNearestNeigborBackpropProgram;
            }());

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function resizeNearestNeighborGrad(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var images = inputs.images
                , dy = inputs.dy;
            var alignCorners = attrs.alignCorners;
            var program = new ResizeNearestNeigborBackpropProgram(dy.shape, images.shape, alignCorners);
            return backend.runWebGLProgram(program, [dy], dy.dtype);
        }
        var resizeNearestNeighborGradConfig = {
            kernelName: tf.ResizeNearestNeighborGrad,
            backendName: 'webgl',
            kernelFunc: resizeNearestNeighborGrad
        };

        /**
         * @license
         * Copyright 2017 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var ReverseProgram = /** @class */
            (function () {
                function ReverseProgram(xShape, axis) {
                    this.variableNames = ['x'];
                    var rank = xShape.length;
                    if (rank > 4) {
                        throw new Error("WebGL backend: Reverse of rank-".concat(rank, " tensor is not yet supported"));
                    }
                    this.outputShape = xShape;
                    if (rank === 1) {
                        this.userCode = "\n        void main() {\n          int coord = getOutputCoords();\n          setOutput(getX(".concat(xShape[0], " - coord - 1));\n        }\n      ");
                        return;
                    }
                    var getInCoord = function (i) {
                        if (axis.indexOf(i) !== -1 && xShape[i] !== 1) {
                            return "".concat(xShape[i], " - coords[").concat(i, "] - 1");
                        }
                        return "coords[".concat(i, "]");
                    };
                    var inCoords = xShape.map(function (_, i) {
                        return getInCoord(i);
                    }).join(',');
                    var type = getCoordsDataType(rank);
                    this.userCode = "\n      void main() {\n        ".concat(type, " coords = getOutputCoords();\n        setOutput(getX(").concat(inCoords, "));\n      }\n    ");
                }
                return ReverseProgram;
            }());

        /**
         * @license
         * Copyright 2019 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var ReversePackedProgram = /** @class */
            (function () {
                function ReversePackedProgram(xShape, axis) {
                    this.variableNames = ['x'];
                    this.packedInputs = true;
                    this.packedOutput = true;
                    var rank = xShape.length;
                    if (rank > 4) {
                        throw new Error("WebGL backend: Reverse of rank-".concat(rank, " tensor is not yet supported"));
                    }
                    this.outputShape = xShape;
                    var channels = getChannels('rc', rank);
                    var nextColumn = "".concat(channels[rank - 1], " + 1 < ").concat(this.outputShape[rank - 1]);
                    var nextRow = "".concat(channels[rank - 2], " + 1 < ").concat(this.outputShape[rank - 2]);
                    var type = getCoordsDataType(rank);
                    if (rank === 1) {
                        this.userCode = "\n        void main(){\n          int rc = getOutputCoords();\n          vec4 result = vec4(0.);\n          result.r = getChannel(getX(".concat(xShape[0], " - rc - 1),\n            ").concat(xShape[0], " - rc - 1);\n          if(").concat(nextColumn, "){\n              result.g = getChannel(getX(").concat(xShape[0], " - (rc  + 1) - 1),\n                ").concat(xShape[0], " - (rc  + 1) - 1);\n          }\n          setOutput(result);\n        }\n      ");
                    } else {
                        this.userCode = "\n        void main() {\n          ".concat(type, " rc = getOutputCoords();\n          vec4 result = vec4(0.);\n          result.r = ").concat(getR(channels.slice()), ";\n          if(").concat(nextColumn, "){\n            result.g = ").concat(getG(channels.slice()), ";\n          }\n          if(").concat(nextRow, ") {\n            result.b = ").concat(getB(channels.slice()), ";\n            if(").concat(nextColumn, ") {\n              result.a = ").concat(getA(channels.slice()), ";\n            }\n          }\n          setOutput(result);\n        }\n    ");
                    }
                    function getR(channels) {
                        return getChannel(channels);
                    }
                    function getG(channels) {
                        channels[rank - 1] = '(' + channels[rank - 1] + " + 1)";
                        return getChannel(channels);
                    }
                    function getB(channels) {
                        channels[rank - 2] = '(' + channels[rank - 2] + " + 1)";
                        return getChannel(channels);
                    }
                    function getA(channels) {
                        channels[rank - 1] = '(' + channels[rank - 1] + " + 1)";
                        channels[rank - 2] = '(' + channels[rank - 2] + " + 1)";
                        return getChannel(channels);
                    }
                    function getChannel(channels) {
                        var inCoordsArray = xShape.map(function (_, i) {
                            return getInCoord(i, channels);
                        });
                        var inCoords = inCoordsArray.join(',');
                        var innerDims = inCoordsArray.slice(-2).join(',');
                        return "getChannel(getX(".concat(inCoords, "), vec2(").concat(innerDims, "))");
                    }
                    function getInCoord(i, channels1) {
                        if (axis.indexOf(i) !== -1 && xShape[i] !== 1) {
                            return "".concat(xShape[i], " - ").concat(channels1[i], " - 1");
                        } else {
                            return "".concat(channels1[i]);
                        }
                    }
                }
                return ReversePackedProgram;
            }());

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function reverse(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x;
            var dims = attrs.dims;
            var xRank = x.shape.length;
            var $dims = tf.util.parseAxisParam(dims, x.shape);
            if (xRank === 0) {
                return identity({
                    inputs: {
                        x: x
                    },
                    backend: backend
                });
            }
            var program = tf.env().getBool('WEBGL_PACK_ARRAY_OPERATIONS') ? new ReversePackedProgram(x.shape, $dims) : new ReverseProgram(x.shape, $dims);
            return backend.runWebGLProgram(program, [x], x.dtype);
        }
        var reverseConfig = {
            kernelName: tf.Reverse,
            backendName: 'webgl',
            kernelFunc: reverse
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var RotateProgram = /** @class */
            (function () {
                function RotateProgram(imageShape, fillValue) {
                    this.variableNames = ['Image'];
                    this.outputShape = [];
                    this.customUniforms = [{
                        name: 'params',
                        type: 'vec4'
                    }];
                    var imageHeight = imageShape[1];
                    var imageWidth = imageShape[2];
                    this.outputShape = imageShape;
                    var fillSnippet = '';
                    if (typeof fillValue === 'number') {
                        fillSnippet = "float outputValue = ".concat(fillValue.toFixed(2), ";");
                    } else {
                        fillSnippet = "\n        vec3 fill = vec3(".concat(fillValue.join(','), ");\n        float outputValue = fill[coords[3]];");
                    }
                    this.userCode = "\n        void main() {\n          ivec4 coords = getOutputCoords();\n          int x = coords[2];\n          int y = coords[1];\n          float coordXFloat = (float(x) - params[0]) * params[3] -\n            (float(y) - params[1]) * params[2];\n          float coordYFloat = (float(x) - params[0]) * params[2] +\n            (float(y) - params[1]) * params[3];\n          int coordX = int(round(coordXFloat + params[0]));\n          int coordY = int(round(coordYFloat + params[1]));\n          ".concat(fillSnippet, "\n          if(coordX >= 0 && coordX < ").concat(imageWidth, " && coordY >= 0 && coordY < ").concat(imageHeight, ") {\n            outputValue = getImage(coords[0], coordY, coordX, coords[3]);\n          }\n          setOutput(outputValue);\n        }\n    ");
                }
                return RotateProgram;
            }());

        var rotateWithOffsetConfig = {
            kernelName: tf.RotateWithOffset,
            backendName: 'webgl',
            kernelFunc: function (_a) {
                var inputs = _a.inputs
                    , attrs = _a.attrs
                    , backend = _a.backend;
                var image = inputs.image;
                var radians = attrs.radians
                    , fillValue = attrs.fillValue
                    , center = attrs.center;
                var webglBackend = backend;
                var program = new RotateProgram(image.shape, fillValue);
                var _b = __read(tf.backend_util.getImageCenter(center, image.shape[1], image.shape[2]), 2)
                    , centerX = _b[0]
                    , centerY = _b[1];
                var customValues = [[centerX, centerY, Math.sin(radians), Math.cos(radians)]];
                var output = webglBackend.runWebGLProgram(program, [image], image.dtype, customValues);
                return output;
            }
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var ROUND = "\n  // OpenGL ES does not support round function.\n  // The algorithm is based on banker's rounding.\n  float base = floor(x);\n  if ((x - base) < 0.5) {\n    return floor(x);\n  } else if ((x - base) > 0.5) {\n    return ceil(x);\n  } else {\n    if (mod(base, 2.0) == 0.0) {\n      return base;\n    } else {\n      return base + 1.0;\n    }\n  }\n";
        var round = unaryKernelFunc({
            opSnippet: ROUND
        });
        var roundConfig = {
            kernelName: tf.Round,
            backendName: 'webgl',
            kernelFunc: round,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var RSQRT = "return inversesqrt(x);";
        var rsqrt = unaryKernelFunc({
            opSnippet: RSQRT,
            cpuKernelImpl: rsqrtImplCPU
        });
        var rsqrtConfig = {
            kernelName: tf.Rsqrt,
            backendName: 'webgl',
            kernelFunc: rsqrt
        };

        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var ScatterProgram = /** @class */
            (function () {
                function ScatterProgram(updateSize, sliceDim, indicesRank, updatesRank, strides, shape, summingDupeIndex) {
                    this.variableNames = ['updates', 'indices', 'defaultValue'];
                    this.outputShape = shape;
                    var stridesType = getCoordsDataType(strides.length);
                    var dtype = getCoordsDataType(shape.length);
                    var indicesString = '';
                    if (indicesRank === 1) {
                        indicesString = 'i';
                    } else if (indicesRank === 2) {
                        indicesString = 'i, j';
                    }
                    var indicesSnippet = "getIndices(".concat(indicesString, ")");
                    var updatesString = '';
                    if (updatesRank === 1) {
                        updatesString = 'i';
                    } else if (updatesRank === 2) {
                        updatesString = 'i, coords[1]';
                    }
                    var updatesSnippet = "getUpdates(".concat(updatesString, ")");
                    var strideString = sliceDim > 1 ? 'strides[j]' : 'strides';
                    this.userCode = "\n        ".concat(stridesType, " strides = ").concat(stridesType, "(").concat(strides, ");\n\n        void main() {\n          ").concat(dtype, " coords = getOutputCoords();\n          float sum = 0.0;\n          bool found = false;\n          for (int i = 0; i < ").concat(updateSize, "; i++) {\n            int flattenedIndex = 0;\n            for (int j = 0; j < ").concat(sliceDim, "; j++) {\n              int index = round(").concat(indicesSnippet, ");\n              flattenedIndex += index * ").concat(strideString, ";\n            }\n            if (flattenedIndex == coords[0]) {\n              sum += ").concat(updatesSnippet, ";\n              found = true;\n            }\n          }\n          setOutput(mix(getDefaultValue(), sum, float(found)));\n        }\n      ");
                }
                return ScatterProgram;
            }());

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function scatterNd(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var indices = inputs.indices
                , updates = inputs.updates;
            var shape = attrs.shape;
            var _a = tf.backend_util.calculateShapes(updates, indices, shape)
                , sliceRank = _a.sliceRank
                , numUpdates = _a.numUpdates
                , sliceSize = _a.sliceSize
                , strides = _a.strides
                , outputSize = _a.outputSize;
            var flattenShape = [outputSize / sliceSize, sliceSize];
            if (outputSize === 0) {
                return backend.makeTensorInfo(shape, indices.dtype);
            }
            var flattenIndices = reshape({
                inputs: {
                    x: indices
                },
                backend: backend,
                attrs: {
                    shape: [numUpdates, sliceRank]
                }
            });
            var flattenX = reshape({
                inputs: {
                    x: updates
                },
                backend: backend,
                attrs: {
                    shape: [numUpdates, sliceSize]
                }
            });
            var defaultValue = backend.makeTensorInfo([], 'float32', new Float32Array([0]));
            // scalar(0)
            var program = new ScatterProgram(numUpdates, sliceRank, flattenIndices.shape.length, flattenX.shape.length, strides, flattenShape);
            var res = backend.runWebGLProgram(program, [flattenX, flattenIndices, defaultValue], flattenX.dtype);
            var reshaped = reshape({
                inputs: {
                    x: res
                },
                backend: backend,
                attrs: {
                    shape: shape
                }
            });
            backend.disposeIntermediateTensorInfo(flattenIndices);
            backend.disposeIntermediateTensorInfo(flattenX);
            backend.disposeIntermediateTensorInfo(res);
            backend.disposeIntermediateTensorInfo(defaultValue);
            return reshaped;
        }
        var scatterNdConfig = {
            kernelName: tf.ScatterNd,
            backendName: 'webgl',
            kernelFunc: scatterNd
        };

        /**
         * @license
         * Copyright 2022 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var SearchSortedProgram = /** @class */
            (function () {
                function SearchSortedProgram(batchSize, numInputs, numValues, side) {
                    this.variableNames = ['sortedSequence', 'values'];
                    this.customUniforms = [{
                        name: 'numInputs',
                        type: 'int'
                    }];
                    this.outputShape = [batchSize, numValues];
                    var webGL2LoopHead = 'while (left < right) {';
                    // WebGL1 doesn't accept non constant loop conditions, so upper bound loop
                    // iterations.
                    var webGL1LoopHead = "for (int i = 0; i < ".concat(Math.ceil(Math.log2(numInputs + 1)), "; ++i) { if (left >= right) break;");
                    var loopHead = tf.env().getNumber('WEBGL_VERSION') === 2 ? webGL2LoopHead : webGL1LoopHead;
                    // left corresponds to lower bound and right to upper bound.
                    var boundComparator = side === 'left' ? '<' : '<=';
                    this.userCode = "\n       int findBound(int batch, float value) {\n         int left = 0;\n         int right = numInputs;\n         int mid;\n         ".concat(loopHead, "\n           mid = (left + right) / 2;\n           if (getSortedSequence(batch, mid) ").concat(boundComparator, " value) {\n             left = mid + 1;\n           } else {\n             right = mid;\n           }\n         }\n         return right;\n       }\n\n       void main() {\n         ivec2 coords = getOutputCoords();\n         int batch = coords[0];\n         int valueIndex = coords[1];\n\n         float value = getValues(batch, valueIndex);\n\n         setOutput(float(findBound(batch, value)));\n       }\n     ");
                }
                return SearchSortedProgram;
            }());

        /**
         * @license
         * Copyright 2022 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function searchSorted(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var sortedSequence = inputs.sortedSequence
                , values = inputs.values;
            var side = attrs.side;
            var program = new SearchSortedProgram(sortedSequence.shape[0], sortedSequence.shape[1], values.shape[1], side);
            var customValues = [[sortedSequence.shape[1]]];
            return backend.runWebGLProgram(program, [sortedSequence, values], 'int32', customValues);
        }
        var searchSortedConfig = {
            kernelName: tf.SearchSorted,
            backendName: 'webgl',
            kernelFunc: searchSorted,
        };

        /**
         * @license
         * Copyright 2017 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var SelectProgram = /** @class */
            (function () {
                function SelectProgram(cRank, shape, rank) {
                    this.variableNames = ['c', 'a', 'b'];
                    this.outputShape = shape;
                    var cCoords;
                    var abCoords;
                    if (rank > 4) {
                        throw Error("Where for rank ".concat(rank, " is not yet supported"));
                    }
                    if (rank === 1) {
                        abCoords = "resRC";
                        cCoords = "resRC";
                    } else {
                        var currentCoords = ['resRC.x', 'resRC.y', 'resRC.z', 'resRC.w'];
                        var cCoordVars = [];
                        var abCoordVars = [];
                        for (var i = 0; i < shape.length; i++) {
                            abCoordVars.push("".concat(currentCoords[i]));
                            if (i < cRank) {
                                cCoordVars.push("".concat(currentCoords[i]));
                            }
                        }
                        cCoords = cCoordVars.join();
                        abCoords = abCoordVars.join();
                    }
                    var dtype = getCoordsDataType(rank);
                    this.userCode = "\n      void main() {\n        ".concat(dtype, " resRC = getOutputCoords();\n        float cVal = getC(").concat(cCoords, ");\n        if (cVal >= 1.0) {\n          setOutput(getA(").concat(abCoords, "));\n        } else {\n          setOutput(getB(").concat(abCoords, "));\n        }\n      }\n    ");
                }
                return SelectProgram;
            }());

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function select(args) {
            var inputs = args.inputs
                , backend = args.backend;
            var condition = inputs.condition
                , t = inputs.t
                , e = inputs.e;
            var program = new SelectProgram(condition.shape.length, t.shape, t.shape.length);
            return backend.runWebGLProgram(program, [condition, t, e], tf.upcastType(t.dtype, e.dtype));
        }
        var selectConfig = {
            kernelName: tf.Select,
            backendName: 'webgl',
            kernelFunc: select
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var SELU = "\n  // Stable and Attracting Fixed Point (0, 1) for Normalized Weights.\n  // see: https://arxiv.org/abs/1706.02515\n  float scaleAlpha = ".concat(tf.backend_util.SELU_SCALEALPHA, ";\n  float scale = ").concat(tf.backend_util.SELU_SCALE, ";\n  return (x >= 0.0) ? scale * x : scaleAlpha * (exp(x) - 1.0);\n");
        var selu = unaryKernelFunc({
            opSnippet: SELU
        });
        var seluConfig = {
            kernelName: tf.Selu,
            backendName: 'webgl',
            kernelFunc: selu,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var SIGMOID = CHECK_NAN_SNIPPET_UNARY + "\n  return 1.0 / (1.0 + exp(-1.0 * x));\n";
        var SIGMOID_PACKED = "\n  vec4 result = 1.0 / (1.0 + exp(-1.0 * x));\n  bvec4 isNaN = isnan(x);\n\n  result.r = isNaN.r ? x.r : result.r;\n  result.g = isNaN.g ? x.g : result.g;\n  result.b = isNaN.b ? x.b : result.b;\n  result.a = isNaN.a ? x.a : result.a;\n\n  return result;\n";
        var sigmoid = unaryKernelFunc({
            opSnippet: SIGMOID,
            packedOpSnippet: SIGMOID_PACKED,
            cpuKernelImpl: sigmoidImplCPU
        });
        var sigmoidConfig = {
            kernelName: tf.Sigmoid,
            backendName: 'webgl',
            kernelFunc: sigmoid,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        // Sign does not propagate NANs.
        var SIGN = "\n  if (isnan(x)) { return 0.0; }\n  return sign(x);\n";
        var sign = unaryKernelFunc({
            opSnippet: SIGN
        });
        var signConfig = {
            kernelName: tf.Sign,
            backendName: 'webgl',
            kernelFunc: sign,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var SIN = CHECK_NAN_SNIPPET_UNARY + "\n  return sin(x);\n";
        var sin = unaryKernelFunc({
            opSnippet: SIN
        });
        var sinConfig = {
            kernelName: tf.Sin,
            backendName: 'webgl',
            kernelFunc: sin,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var SINH = "\n  float e2x = exp(x);\n  return (e2x - 1.0 / e2x) / 2.0;\n";
        var sinh = unaryKernelFunc({
            opSnippet: SINH
        });
        var sinhConfig = {
            kernelName: tf.Sinh,
            backendName: 'webgl',
            kernelFunc: sinh,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var SOFTPLUS = "\n  float epsilon = 1.1920928955078125e-7;\n  float threshold = log(epsilon) + 2.0;\n\n  bool too_large = x > -threshold;\n  bool too_small = x < threshold;\n\n  float result;\n  float exp_x = exp(x);\n\n  if (too_large){\n    result = x;\n  }\n  else if (too_small){\n    result = exp_x;\n  }\n  else{\n    result = log(exp_x + 1.0);\n  }\n  return result;\n";
        var softplus = unaryKernelFunc({
            opSnippet: SOFTPLUS
        });
        var softplusConfig = {
            kernelName: tf.Softplus,
            backendName: 'webgl',
            kernelFunc: softplus,
        };

        var spaceToBatchND = function (args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x;
            var blockShape = attrs.blockShape
                , paddings = attrs.paddings;
            tf.util.assert(x.shape.length <= 4, function () {
                return 'spaceToBatchND for rank > 4 with a WebGL backend not ' + 'implemented yet';
            });
            var prod = blockShape.reduce(function (a, b) {
                return a * b;
            });
            var completePaddings = [[0, 0]];
            completePaddings.push.apply(completePaddings, __spreadArray([], __read(paddings), false));
            for (var i = 1 + blockShape.length; i < x.shape.length; ++i) {
                completePaddings.push([0, 0]);
            }
            var toDispose = [];
            var paddedX = padV2({
                inputs: {
                    x: x
                },
                backend: backend,
                attrs: {
                    paddings: completePaddings,
                    constantValue: 0
                }
            });
            var reshapedPaddedShape = tf.backend_util.getReshaped(paddedX.shape, blockShape, prod, false);
            var permutedReshapedPaddedPermutation = tf.backend_util.getPermuted(reshapedPaddedShape.length, blockShape.length, false);
            var flattenShape = tf.backend_util.getReshapedPermuted(paddedX.shape, blockShape, prod, false);
            var reshapedPaddedX = reshape({
                inputs: {
                    x: paddedX
                },
                backend: backend,
                attrs: {
                    shape: reshapedPaddedShape
                }
            });
            var paddedXT = transpose({
                inputs: {
                    x: reshapedPaddedX
                },
                backend: backend,
                attrs: {
                    perm: permutedReshapedPaddedPermutation
                }
            });
            var result = reshape({
                inputs: {
                    x: paddedXT
                },
                backend: backend,
                attrs: {
                    shape: flattenShape
                }
            });
            toDispose.push(paddedX);
            toDispose.push(reshapedPaddedX);
            toDispose.push(paddedXT);
            toDispose.forEach(function (t) {
                return backend.disposeIntermediateTensorInfo(t);
            });
            return result;
        };
        var spaceToBatchNDConfig = {
            kernelName: tf.SpaceToBatchND,
            backendName: 'webgl',
            kernelFunc: spaceToBatchND
        };

        function sparseFillEmptyRows(args) {
            var inputs = args.inputs
                , backend = args.backend;
            var indices = inputs.indices
                , values = inputs.values
                , denseShape = inputs.denseShape
                , defaultValue = inputs.defaultValue;
            if (denseShape.shape.length !== 1) {
                throw new Error("Dense shape must be a vector, saw:\n         ".concat(denseShape.shape));
            }
            if (indices.shape.length !== 2) {
                throw new Error("Indices must be a matrix, saw:\n         ".concat(indices.shape));
            }
            if (values.shape.length !== 1) {
                throw new Error("Values must be a vector, saw:\n         ".concat(values.shape));
            }
            if (defaultValue.shape.length !== 0) {
                throw new Error("Default value must be a scalar, saw:\n        ".concat(defaultValue.shape));
            }
            var $indices = backend.readSync(indices.dataId);
            var $values = backend.readSync(values.dataId);
            var $denseShape = backend.readSync(denseShape.dataId);
            var $defaultValue = backend.readSync(defaultValue.dataId)[0];
            var _a = __read(sparseFillEmptyRowsImplCPU($indices, indices.shape, indices.dtype, $values, values.dtype, $denseShape, $defaultValue), 5)
                , outputIndices = _a[0]
                , outputIndicesShape = _a[1]
                , outputValues = _a[2]
                , emptyRowIndicator = _a[3]
                , reverseIndexMap = _a[4];
            return [backend.makeTensorInfo(outputIndicesShape, indices.dtype, outputIndices), backend.makeTensorInfo([outputIndicesShape[0]], values.dtype, outputValues), backend.makeTensorInfo([emptyRowIndicator.length], 'bool', new Uint8Array(emptyRowIndicator.map(function (value) {
                return Number(value);
            }))), backend.makeTensorInfo([reverseIndexMap.length], indices.dtype, new Int32Array(reverseIndexMap)),];
        }
        var sparseFillEmptyRowsConfig = {
            kernelName: tf.SparseFillEmptyRows,
            backendName: 'webgl',
            kernelFunc: sparseFillEmptyRows,
        };

        function sparseReshape(args) {
            var inputs = args.inputs
                , backend = args.backend;
            var inputIndices = inputs.inputIndices
                , inputShape = inputs.inputShape
                , newShape = inputs.newShape;
            if (inputIndices.shape.length !== 2) {
                throw new Error("Input indices should be a matrix but received shape ".concat(inputIndices.shape));
            }
            if (inputShape.shape.length !== 1) {
                throw new Error("Input shape should be a vector but received shape ".concat(inputShape.shape));
            }
            if (newShape.shape.length !== 1) {
                throw new Error("Target shape should be a vector but received shape ".concat(newShape.shape));
            }
            var $inputShape = Array.from(backend.readSync(inputShape.dataId));
            var $inputIndices = backend.readSync(inputIndices.dataId);
            var targetShape = Array.from(backend.readSync(newShape.dataId));
            var _a = __read(sparseReshapeImplCPU($inputIndices, inputIndices.shape, inputIndices.dtype, $inputShape, targetShape), 3)
                , newIndices = _a[0]
                , indicesShape = _a[1]
                , outputShape = _a[2];
            return [backend.makeTensorInfo(indicesShape, inputIndices.dtype, newIndices), backend.makeTensorInfo([outputShape.length], newShape.dtype, new Int32Array(outputShape)),];
        }
        var sparseReshapeConfig = {
            kernelName: tf.SparseReshape,
            backendName: 'webgl',
            kernelFunc: sparseReshape,
        };

        function sparseSegmentMean(args) {
            var inputs = args.inputs
                , backend = args.backend;
            var data = inputs.data
                , indices = inputs.indices
                , segmentIds = inputs.segmentIds;
            if (data.shape.length < 1) {
                throw new Error("Data should be at least 1 dimensional but received scalar");
            }
            if (indices.shape.length !== 1) {
                throw new Error("Indices should be a vector but received shape\n              ".concat(indices.shape));
            }
            if (segmentIds.shape.length !== 1) {
                throw new Error("Segment ids should be a vector but received shape\n              ".concat(segmentIds.shape));
            }
            var $data = backend.readSync(data.dataId);
            var $indices = backend.readSync(indices.dataId);
            var $segmentIds = backend.readSync(segmentIds.dataId);
            var _a = __read(sparseSegmentReductionImplCPU($data, data.shape, data.dtype, $indices, $segmentIds, true), 2)
                , outputData = _a[0]
                , outputDataShape = _a[1];
            return backend.makeTensorInfo(outputDataShape, data.dtype, outputData);
        }
        var sparseSegmentMeanConfig = {
            kernelName: tf.SparseSegmentMean,
            backendName: 'webgl',
            kernelFunc: sparseSegmentMean,
        };

        function sparseSegmentSum(args) {
            var inputs = args.inputs
                , backend = args.backend;
            var data = inputs.data
                , indices = inputs.indices
                , segmentIds = inputs.segmentIds;
            if (data.shape.length < 1) {
                throw new Error("Data should be at least 1 dimensional but received scalar");
            }
            if (indices.shape.length !== 1) {
                throw new Error("Indices should be a vector but received shape\n             ".concat(indices.shape));
            }
            if (segmentIds.shape.length !== 1) {
                throw new Error("Segment ids should be a vector but received shape\n             ".concat(segmentIds.shape));
            }
            var $data = backend.readSync(data.dataId);
            var $indices = backend.readSync(indices.dataId);
            var $segmentIds = backend.readSync(segmentIds.dataId);
            var _a = __read(sparseSegmentReductionImplCPU($data, data.shape, data.dtype, $indices, $segmentIds), 2)
                , outputData = _a[0]
                , outputDataShape = _a[1];
            return backend.makeTensorInfo(outputDataShape, data.dtype, outputData);
        }
        var sparseSegmentSumConfig = {
            kernelName: tf.SparseSegmentSum,
            backendName: 'webgl',
            kernelFunc: sparseSegmentSum,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function sparseToDense(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var sparseIndices = inputs.sparseIndices
                , sparseValues = inputs.sparseValues
                , defaultValue = inputs.defaultValue;
            var outputShape = attrs.outputShape;
            var _a = tf.backend_util.calculateShapes(sparseValues, sparseIndices, outputShape)
                , sliceRank = _a.sliceRank
                , numUpdates = _a.numUpdates
                , sliceSize = _a.sliceSize
                , strides = _a.strides
                , outputSize = _a.outputSize;
            var sumDupeIndices = false;
            if (sparseValues.dtype === 'string') {
                var indicesBuf = backend.bufferSync(sparseIndices);
                var updatesBuf = backend.bufferSync(sparseValues);
                var $defaultValue = tf.util.decodeString(backend.readSync(defaultValue.dataId)[0]);
                var outBuf = scatterImplCPU(indicesBuf, updatesBuf, outputShape, outputSize, sliceSize, numUpdates, sliceRank, strides, $defaultValue, sumDupeIndices);
                return backend.makeTensorInfo(outputShape, outBuf.dtype, outBuf.values);
            }
            var program = new ScatterProgram(numUpdates, sliceRank, sparseIndices.shape.length, sparseValues.shape.length, strides, [outputSize, 1], sumDupeIndices);
            var res = backend.runWebGLProgram(program, [sparseValues, sparseIndices, defaultValue], sparseValues.dtype);
            var reshaped = reshape({
                inputs: {
                    x: res
                },
                backend: backend,
                attrs: {
                    shape: outputShape
                }
            });
            backend.disposeIntermediateTensorInfo(res);
            return reshaped;
        }
        var sparseToDenseConfig = {
            kernelName: tf.SparseToDense,
            backendName: 'webgl',
            kernelFunc: sparseToDense
        };

        function splitV(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x;
            var numOrSizeSplits = attrs.numOrSizeSplits
                , axis = attrs.axis;
            var $axis = tf.util.parseAxisParam(axis, x.shape)[0];
            var splitSizes = tf.backend_util.prepareSplitSize(x, numOrSizeSplits, $axis);
            var xRank = x.shape.length;
            var begin = new Array(xRank).fill(0);
            var size = x.shape.slice();
            return splitSizes.map(function (s) {
                var sliceSize = __spreadArray([], __read(size), false);
                sliceSize[$axis] = s;
                var sliceT = slice({
                    inputs: {
                        x: x
                    },
                    backend: backend,
                    attrs: {
                        begin: begin,
                        size: sliceSize
                    }
                });
                begin[$axis] += s;
                return sliceT;
            });
        }
        var splitVConfig = {
            kernelName: tf.SplitV,
            backendName: 'webgl',
            kernelFunc: splitV
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var SQRT = "return sqrt(x);";
        var sqrt = unaryKernelFunc({
            opSnippet: SQRT,
            packedOpSnippet: SQRT,
            cpuKernelImpl: sqrtImplCPU
        });
        var sqrtConfig = {
            kernelName: tf.Sqrt,
            backendName: 'webgl',
            kernelFunc: sqrt
        };

        /**
         * @license
         * Copyright 2019 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var SQUARE = "return x * x;";
        var square = unaryKernelFunc({
            opSnippet: SQUARE
        });
        var squareConfig = {
            kernelName: tf.Square,
            backendName: 'webgl',
            kernelFunc: square,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var SQUARED_DIFFERENCE = 'return (a - b) * (a - b);';
        var squaredDifference = binaryKernelFunc({
            opSnippet: SQUARED_DIFFERENCE,
            packedOpSnippet: SQUARED_DIFFERENCE
        });
        var squaredDifferenceConfig = {
            kernelName: tf.SquaredDifference,
            backendName: 'webgl',
            kernelFunc: squaredDifference,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function step(_a) {
            var inputs = _a.inputs
                , attrs = _a.attrs
                , backend = _a.backend;
            var x = inputs.x;
            var opSnippet = CHECK_NAN_SNIPPET$1 + "\n    return x > 0.0 ? 1.0 : float(".concat(attrs.alpha, ");\n  ");
            var program = new UnaryOpProgram(x.shape, opSnippet);
            return backend.runWebGLProgram(program, [x], x.dtype);
        }
        var stepConfig = {
            kernelName: tf.Step,
            backendName: 'webgl',
            kernelFunc: step,
        };

        /**
         * @license
         * Copyright 2017 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var StridedSliceProgram = /** @class */
            (function () {
                function StridedSliceProgram(begin, strides, size) {
                    this.variableNames = ['x'];
                    this.outputShape = size;
                    var rank = size.length;
                    var inputDtype = getCoordsDataType(size.length);
                    var dtype = getCoordsDataType(size.length);
                    var newCoords = '';
                    if (rank === 1) {
                        newCoords = 'coords * strides + begin';
                    } else {
                        var outputAxis_1 = 0;
                        newCoords = size.map(function (_, i) {
                            outputAxis_1++;
                            return size.length === 1 ? "coords * strides[".concat(i, "] + begin[").concat(i, "]") : "coords[".concat(outputAxis_1 - 1, "] * strides[").concat(i, "] + begin[").concat(i, "]");
                        }).join(',');
                    }
                    this.userCode = "\n      ".concat(inputDtype, " begin = ").concat(inputDtype, "(").concat(begin, ");\n      ").concat(inputDtype, " strides = ").concat(inputDtype, "(").concat(strides, ");\n\n      void main() {\n        ").concat(dtype, " coords = getOutputCoords();\n        setOutput(getX(").concat(newCoords, "));\n      }\n    ");
                }
                return StridedSliceProgram;
            }());

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function stridedSlice(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x;
            var begin = attrs.begin
                , end = attrs.end
                , strides = attrs.strides
                , beginMask = attrs.beginMask
                , endMask = attrs.endMask
                , ellipsisMask = attrs.ellipsisMask
                , newAxisMask = attrs.newAxisMask
                , shrinkAxisMask = attrs.shrinkAxisMask;
            var _a = tf.slice_util.sliceInfo(x.shape, begin, end, strides, beginMask, endMask, ellipsisMask, newAxisMask, shrinkAxisMask)
                , finalShapeSparse = _a.finalShapeSparse
                , finalShape = _a.finalShape
                , isIdentity = _a.isIdentity
                , sliceDim0 = _a.sliceDim0
                , isSimpleSlice = _a.isSimpleSlice
                , $begin = _a.begin
                , $end = _a.end
                , $strides = _a.strides;
            var result;
            if (isIdentity) {
                // Optimization #1, slice is a no-op plus reshape
                result = reshape({
                    inputs: {
                        x: x
                    },
                    backend: backend,
                    attrs: {
                        shape: finalShape
                    }
                });
            } else if (sliceDim0 || isSimpleSlice) {
                // Optimization #2, slice is memory contiguous (only occurs in dim 0)
                tf.util.assert(x.shape.length >= 1, function () {
                    return "Input must have rank at least 1, got: ".concat(x.shape.length);
                });
                var size = tf.slice_util.computeOutShape($begin, $end, $strides);
                // To tolerate begin[0] > end[0] (a 0-output slice), we min(begin, end).
                var sliced = slice({
                    inputs: {
                        x: x
                    },
                    backend: backend,
                    attrs: {
                        begin: $begin,
                        size: size
                    }
                });
                result = reshape({
                    inputs: {
                        x: sliced
                    },
                    backend: backend,
                    attrs: {
                        shape: finalShape
                    }
                });
                backend.disposeIntermediateTensorInfo(sliced);
            } else {
                var shouldExecuteOnCPU = backend.shouldExecuteOnCPU([x]);
                if (shouldExecuteOnCPU) {
                    // tslint:disable-next-line: no-unnecessary-type-assertion
                    var values = backend.readSync(x.dataId);
                    // tslint:disable-next-line: no-unnecessary-type-assertion
                    var xBuf = tf.buffer(x.shape, x.dtype, values);
                    var resultValues = stridedSliceImplCPU(finalShapeSparse, xBuf, $strides, $begin);
                    result = backend.makeTensorInfo(finalShape, x.dtype, resultValues.values);
                } else {
                    var program = new StridedSliceProgram($begin, $strides, finalShapeSparse);
                    result = backend.runWebGLProgram(program, [x], x.dtype);
                }
            }
            var resultReshaped = reshape({
                inputs: {
                    x: result
                },
                backend: backend,
                attrs: {
                    shape: finalShape
                }
            });
            backend.disposeIntermediateTensorInfo(result);
            return resultReshaped;
        }
        var stridedSliceConfig = {
            kernelName: tf.StridedSlice,
            backendName: 'webgl',
            kernelFunc: stridedSlice
        };

        function stringNGrams(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var separator = attrs.separator
                , nGramWidths = attrs.nGramWidths
                , leftPad = attrs.leftPad
                , rightPad = attrs.rightPad
                , padWidth = attrs.padWidth
                , preserveShortSequences = attrs.preserveShortSequences;
            var data = inputs.data
                , dataSplits = inputs.dataSplits;
            var $data = backend.readSync(data.dataId);
            var $dataSplits = backend.readSync(dataSplits.dataId);
            var _a = __read(stringNGramsImplCPU($data, $dataSplits, separator, nGramWidths, leftPad, rightPad, padWidth, preserveShortSequences), 2)
                , nGrams = _a[0]
                , nGramsSplits = _a[1];
            return [backend.makeTensorInfo([nGrams.length], 'string', nGrams), backend.makeTensorInfo(dataSplits.shape, 'int32', nGramsSplits),];
        }
        var stringNGramsConfig = {
            kernelName: tf.StringNGrams,
            backendName: 'webgl',
            kernelFunc: stringNGrams,
        };

        function stringSplit(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var skipEmpty = attrs.skipEmpty;
            var input = inputs.input
                , delimiter = inputs.delimiter;
            if (input.dtype !== 'string') {
                throw new Error('Input must be of datatype string');
            }
            if (input.shape.length !== 1) {
                throw new Error("Input must be a vector, got shape: ".concat(input.shape));
            }
            if (delimiter.shape.length !== 0) {
                throw new Error("Delimiter must be a scalar, got shape: ".concat(delimiter.shape));
            }
            var $input = backend.readSync(input.dataId);
            var $delimiter = backend.readSync(delimiter.dataId)[0];
            var _a = __read(stringSplitImplCPU($input, $delimiter, skipEmpty), 3)
                , indices = _a[0]
                , values = _a[1]
                , shape = _a[2];
            var outputSize = values.length;
            return [backend.makeTensorInfo([outputSize, 2], 'int32', indices), backend.makeTensorInfo([outputSize], 'string', values), backend.makeTensorInfo([2], 'int32', new Int32Array(shape))];
        }
        var stringSplitConfig = {
            kernelName: tf.StringSplit,
            backendName: 'webgl',
            kernelFunc: stringSplit,
        };

        /**
         * @license
         * Copyright 2021 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function stringToHashBucketFast(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var numBuckets = attrs.numBuckets;
            var input = inputs.input;
            if (input.dtype !== 'string') {
                throw new Error('Input must be of datatype string');
            }
            if (numBuckets <= 0) {
                throw new Error("Number of buckets must be at least 1");
            }
            var $input = backend.readSync(input.dataId);
            var output = stringToHashBucketFastImplCPU($input, numBuckets);
            return backend.makeTensorInfo(input.shape, 'int32', output);
        }
        var stringToHashBucketFastConfig = {
            kernelName: tf.StringToHashBucketFast,
            backendName: 'webgl',
            kernelFunc: stringToHashBucketFast,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var TAN = "return tan(x);";
        var tan = unaryKernelFunc({
            opSnippet: TAN
        });
        var tanConfig = {
            kernelName: tf.Tan,
            backendName: 'webgl',
            kernelFunc: tan,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var TANH = "\n  float e2x = exp(-2.0 * abs(x));\n  return sign(x) * (1.0 - e2x) / (1.0 + e2x);\n";
        var tanh = unaryKernelFunc({
            opSnippet: TANH
        });
        var tanhConfig = {
            kernelName: tf.Tanh,
            backendName: 'webgl',
            kernelFunc: tanh,
        };

        /**
         * @license
         * Copyright 2017 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var TileProgram = /** @class */
            (function () {
                function TileProgram(aShape, reps) {
                    this.variableNames = ['A'];
                    var outputShape = new Array(aShape.length);
                    for (var i = 0; i < outputShape.length; i++) {
                        outputShape[i] = aShape[i] * reps[i];
                    }
                    this.outputShape = outputShape;
                    this.rank = outputShape.length;
                    var dtype = getCoordsDataType(this.rank);
                    var sourceCoords = getSourceCoords(aShape);
                    this.userCode = "\n      void main() {\n        ".concat(dtype, " resRC = getOutputCoords();\n        setOutput(getA(").concat(sourceCoords, "));\n      }\n    ");
                }
                return TileProgram;
            }());
        function getSourceCoords(aShape) {
            var rank = aShape.length;
            if (rank > 5) {
                throw Error("Tile for rank ".concat(rank, " is not yet supported"));
            }
            if (rank === 1) {
                return "imod(resRC, ".concat(aShape[0], ")");
            }
            var currentCoords = ['resRC.x', 'resRC.y', 'resRC.z', 'resRC.w', 'resRC.u'];
            var sourceCoords = [];
            for (var i = 0; i < aShape.length; i++) {
                sourceCoords.push("imod(".concat(currentCoords[i], ", ").concat(aShape[i], ")"));
            }
            return sourceCoords.join();
        }

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function tile(params) {
            var inputs = params.inputs
                , backend = params.backend
                , attrs = params.attrs;
            var x = inputs.x;
            var reps = attrs.reps;
            // tile gpu program cannot handle rank > 5 case.
            if (x.dtype === 'string' || x.shape.length > 5) {
                // Even thought string tensor is always on CPU, just to be consistent on how
                // to access tensor data.
                var data = backend.readSync(x.dataId);
                var value = x.dtype === 'string' ? data.map(function (d) {
                    return tf.util.decodeString(d);
                }) : data;
                var buf = tf.buffer(x.shape, x.dtype, value);
                var outBuf = tileImplCPU(buf, reps);
                return backend.makeTensorInfo(outBuf.shape, outBuf.dtype, outBuf.values);
            }
            var program = new TileProgram(x.shape, reps);
            var output = backend.runWebGLProgram(program, [x], x.dtype);
            return output;
        }
        var tileConfig = {
            kernelName: tf.Tile,
            backendName: 'webgl',
            kernelFunc: tile,
        };

        // Based on Algorithm 2 of Bitonic Top K, ref:
        // https://anilshanbhag.in/static/papers/gputopk_sigmod18.pdf
        // The original algorithm is based on computing the top K only, however
        // since for TFJS we require the indices of the top K values as well then the
        // algorithm found here is a bit modified. Rather than producing the values
        // at each step, the indices containing the top K are generated instead.
        // The output values are not generated to reduce the number of outputs in the
        // GPU, the values can easily be retrieved from the indices using a gather
        // op.
        var SwapProgram = /** @class */
            (function () {
                /**
                 * @param shape desired output shape (can be larger than input shape, output
                 *                                    will be padded with -Infinity)
                 */
                function SwapProgram(shape) {
                    this.variableNames = ['x', 'indices'];
                    // |n| Size of the original input of TopK.
                    // |firstPass|indicates if this is the first time swap is being used which
                    // means no indices input containing the top K is present yet.
                    // |inc| Swaps pairs of indices (0, inc), (1, inc + 1), (2, inc + 2) ...
                    this.customUniforms = [{
                        name: 'n',
                        type: 'int'
                    }, {
                        name: 'firstPass',
                        type: 'int'
                    }, {
                        name: 'negativeInf',
                        type: 'float'
                    }, {
                        name: 'dir',
                        type: 'int'
                    }, {
                        name: 'inc',
                        type: 'int'
                    }];
                    this.outputShape = shape;
                    this.userCode = "\n       void main() {\n         ivec2 coords = getOutputCoords();\n         int batch = coords[0];\n         int elemIdx = coords[1];\n\n         // We compare elements pair-wise within a group of size 2 * inc.\n         // The comparing rule for each group alternates between ascending\n         // and descending. Within each group, we compare each pair at\n         // positions i and i+inc. To decide whether an element at position i\n         // is x0 or x1, we mod it by 2 * inc, if the result is smaller than\n         // inc, it is in the first half of the group, we denote it as x0,\n         // otherwise we denote it as x1.\n         // For example, as shown in the Bitonic top K paper referenced above,\n         // Figure5(a) shows that element[1] is in the\n         // second half of the group when group size is 2, but it is in the\n         // first half of the group when group size is 4.\n\n         bool isFirstInPair = imod(elemIdx, 2 * inc) < inc;\n         int i = isFirstInPair ? elemIdx : elemIdx - inc;\n\n         int i0 = firstPass == 1 ? i : int(getIndices(batch, i));\n         int i1 = firstPass == 1 ? i + inc : int(getIndices(batch, i + inc));\n         float x0 = i0 < n ? getX(batch, i0) : negativeInf;\n         float x1 = i1 < n ? getX(batch, i1) : negativeInf;\n\n         // Denotes which direction indices are in (ascending or descending).\n         bool reverse = imod(elemIdx, 2 * dir) >= dir;\n         bool isGreater = x0 > x1 || (x0 == x1 && i1 > i0);\n         if (reverse == isGreater) { // Elements in opposite order of direction\n           int iTemp = i0;\n           i0 = i1;\n           i1 = iTemp;\n         }\n         if (isFirstInPair) {\n            setOutput(float(i0));\n         } else {\n            setOutput(float(i1));\n         }\n       }\n     ";
                }
                return SwapProgram;
            }());
        var MergeProgram = /** @class */
            (function () {
                /**
                 * @param shape desired output shape (must be half of the input size)
                 */
                function MergeProgram(shape) {
                    this.variableNames = ['x', 'indices'];
                    // |n| Size of the original input of TopK
                    // |firstPass| indicates if this is the first time swap is being used which
                    // means no indices input containing the top K is present yet.
                    // |k| Top k elements desired
                    this.customUniforms = [{
                        name: 'n',
                        type: 'int'
                    }, {
                        name: 'firstPass',
                        type: 'int'
                    }, {
                        name: 'k',
                        type: 'int'
                    }];
                    this.outputShape = shape;
                    this.userCode = "\n    void main() {\n         // Takes max of indices (0, k), (1, k + 1), (2, k + 2) ...\n         ivec2 coords = getOutputCoords();\n         int batch = coords[0];\n         int elemIdx = coords[1];\n\n         // The output size is half of the previous size.\n         // If the previous sequence is | | | | _ _ _ _  | | | |  _ _ _ _ (k=4),\n         // we only need to output the indices at positions |, the indices at\n         // positions _ can be thrown away, see Figure5(b) After Phase 2\n         // (Merge phase) in the Bitonic Top K paper referenced above.\n         // For example, the paper shows we only need to output the orange bars.\n         // The output sequence should look like this | | | | | | | |.\n         // Because the sequence is halved, to map the output index back\n         // to the previous sequence to find the corresponding value,\n         // we need to double the index. When we double the index,\n         // we basically interpolate a position, so 2i looks like\n         // | _ | _ | _ | _ | _ | _ | _. We move the | to the first k position\n         // of each 2k positions by - elemIdx % k. E.g. for output at\n         // index 4,5,6,7, we want to get the corresponding element at\n         // original index 8,9,10,11, for output at index 8,9,10,11,\n         // we want to get the corresponding element at original index\n         // 16,17,18,19, so on and so forth.\n\n         int i = elemIdx < k ? elemIdx : (elemIdx * 2 - imod(elemIdx, k));\n         int i0 = firstPass == 1 ? i : int(getIndices(batch, i));\n         int i1 = firstPass == 1 ? i + k : int(getIndices(batch, i + k));\n\n         float x0 = getX(batch, i0);\n         float x1 = i1 < n ? getX(batch, i1) : x0;\n\n         setOutput(x0 >= x1 ? float(i0) : float(i1));\n       }\n     ";
                }
                return MergeProgram;
            }());

        function disposeIntermediateTensorInfoOrNull(backend, tensorInfo) {
            if (tensorInfo !== null) {
                backend.disposeIntermediateTensorInfo(tensorInfo);
            }
        }
        function roundUpToPow2(num) {
            var pow2 = 1;
            while (pow2 < num) {
                pow2 *= 2;
            }
            return pow2;
        }
        // Based on Algorithm 2 of Bitonic Top K, ref:
        // https://anilshanbhag.in/static/papers/gputopk_sigmod18.pdf
        function topK(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x;
            var k = attrs.k
                , sorted = attrs.sorted;
            // Empirically determined constant used to determine last dim threshold for
            // handing off execution to the CPU.
            var TOPK_LAST_DIM_CPU_HANDOFF_SIZE_THRESHOLD = tf.env().getNumber('TOPK_LAST_DIM_CPU_HANDOFF_SIZE_THRESHOLD');
            // Empirically determined constant used to determine k threshold for handing
            // off execution to the CPU.
            var TOPK_K_CPU_HANDOFF_THRESHOLD = tf.env().getNumber('TOPK_K_CPU_HANDOFF_THRESHOLD');
            var xShape = x.shape;
            var lastDim = xShape[xShape.length - 1];
            if (backend.shouldExecuteOnCPU([x]) || lastDim < TOPK_LAST_DIM_CPU_HANDOFF_SIZE_THRESHOLD || k > TOPK_K_CPU_HANDOFF_THRESHOLD) {
                var xVals = backend.readSync(x.dataId);
                var _a = __read(topKImplCPU(xVals, xShape, x.dtype, k, sorted), 2)
                    , allTopKVals = _a[0]
                    , allTopKIndices = _a[1];
                return [backend.makeTensorInfo(allTopKVals.shape, allTopKVals.dtype, allTopKVals.values), backend.makeTensorInfo(allTopKIndices.shape, allTopKIndices.dtype, allTopKIndices.values)];
            }
            if (k === 0) {
                xShape[xShape.length - 1] = 0;
                return [backend.makeTensorInfo(xShape, x.dtype, []), backend.makeTensorInfo(xShape, 'int32', [])];
            }
            if (lastDim === 1 /* firstPass */
            ) {
                return [x, fill({
                    attrs: {
                        shape: xShape,
                        dtype: 'int32',
                        value: 0
                    },
                    backend: backend
                })];
            }
            // Eagerly unpack x input since it is passed in to all the shaders which
            // require unpacked inputs.
            var xtexData = backend.texData.get(x.dataId);
            var xIsPacked = xtexData !== null && xtexData.isPacked;
            var xUnPacked = xIsPacked ? backend.unpackTensor(x) : x;
            // Reshape into a 2d tensor [batch, lastDim] and compute topk along lastDim.
            var xSize = tf.util.sizeFromShape(xShape);
            var batch = xSize / lastDim;
            var x2D = reshape({
                inputs: {
                    x: xUnPacked
                },
                attrs: {
                    shape: [batch, lastDim]
                },
                backend: backend
            });
            if (xIsPacked) {
                disposeIntermediateTensorInfoOrNull(backend, xUnPacked);
            }
            var kPow2 = roundUpToPow2(k);
            var lastDimPow2 = roundUpToPow2(lastDim);
            // Only the indices containing the top K are kept at every step to reduce
            // number of outputs in the GPU algorithms, so once the final set of indices
            // is computed then gather is used to grab the corresponding values
            // from the original input.
            var indices = null;
            // GPU algorithm always takes in an indices input but this input is not used
            // on the first run of a GPU algorithm, therefore if indices is null we simply
            // pass in x2D instead of it but the value will not actually be used
            var getInputs = function () {
                return indices === null ? [x2D, x2D] : [x2D, indices];
            };
            var runSwap = function (dir, inc, shape) {
                var inputs = getInputs();
                var program = new SwapProgram(shape);
                var fistPass = indices === null ? 1 : 0;
                var customValues = [[lastDim], [fistPass], [Number.NEGATIVE_INFINITY], [dir], [inc]];
                var prevIndices = indices;
                indices = backend.runWebGLProgram(program, inputs, 'int32', customValues);
                disposeIntermediateTensorInfoOrNull(backend, prevIndices);
            };
            // Step 1: local sort
            for (var len = 1; len < kPow2; len *= 2) {
                var dir = len * 2;
                for (var inc = len; inc >= 1; inc /= 2) {
                    runSwap(dir, inc, [batch, lastDimPow2]);
                }
            }
            // Step 2: merge
            for (var indicesSize = lastDimPow2; indicesSize > kPow2; indicesSize /= 2) {
                var inputs_1 = getInputs();
                var mergeProgram = new MergeProgram([batch, indicesSize / 2]);
                var firstPass = indices === null ? 1 : 0;
                var customValues = [[lastDim], [firstPass], [kPow2]];
                var prevIndices_1 = indices;
                indices = backend.runWebGLProgram(mergeProgram, inputs_1, 'int32', customValues);
                disposeIntermediateTensorInfoOrNull(backend, prevIndices_1);
                // Step 3: rebuild
                var len = kPow2 / 2;
                var dir = len * 2;
                for (var inc = len; inc >= 1; inc /= 2) {
                    runSwap(dir, inc, indices.shape);
                }
            }
            // Keep only the requested top K results instead of kPow2
            var prevIndices = indices;
            indices = slice({
                inputs: {
                    x: indices
                },
                backend: backend,
                attrs: {
                    begin: 0,
                    size: [batch, k]
                }
            });
            disposeIntermediateTensorInfoOrNull(backend, prevIndices);
            // Gather values on last dimension
            var values = gatherV2({
                inputs: {
                    x: x2D,
                    indices: indices
                },
                backend: backend,
                attrs: {
                    axis: 1,
                    batchDims: 1
                }
            });
            disposeIntermediateTensorInfoOrNull(backend, x2D);
            // Reshape back to the original input shape, except that the last
            // dimension is k.
            var newShape = xShape.slice(0, -1);
            newShape.push(k);
            prevIndices = indices;
            indices = reshape({
                inputs: {
                    x: indices
                },
                attrs: {
                    shape: newShape
                },
                backend: backend
            });
            disposeIntermediateTensorInfoOrNull(backend, prevIndices);
            var prevValues = values;
            values = reshape({
                inputs: {
                    x: values
                },
                attrs: {
                    shape: newShape
                },
                backend: backend
            });
            disposeIntermediateTensorInfoOrNull(backend, prevValues);
            return [values, indices];
        }
        var topKConfig = {
            kernelName: tf.TopK,
            backendName: 'webgl',
            kernelFunc: topK
        };

        /**
         * @license
         * Copyright 2021 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var TransformProgram = /** @class */
            (function () {
                function TransformProgram(imageHeight, imageWidth, interpolation, fillMode, fillValue, outShape) {
                    this.variableNames = ['Image', 'Transforms'];
                    this.outputShape = outShape;
                    var interpolationModeId = interpolation === 'nearest' ? 1 : 2;
                    var fillModeId;
                    switch (fillMode) {
                        case 'constant':
                            fillModeId = 1;
                            break;
                        case 'reflect':
                            fillModeId = 2;
                            break;
                        case 'wrap':
                            fillModeId = 3;
                            break;
                        case 'nearest':
                            fillModeId = 4;
                            break;
                        default:
                            fillModeId = 1;
                            break;
                    }
                    this.userCode = "\n            float mapCoord(float outCoord, float len) {\n              float inCoord = outCoord;\n              if(".concat(fillModeId, " == 2) {\n                if (inCoord < 0.0) {\n                  if (len <= 1.0) {\n                    inCoord = 0.0;\n                  } else {\n                    float sz2 = 2.0 * len;\n                    if (inCoord < sz2) {\n                      inCoord = sz2 * float(int(float(-inCoord / sz2))) +\n                      inCoord;\n                    }\n                    inCoord = inCoord < -len ? inCoord + sz2 : -inCoord - 1.0;\n                  }\n                } else if (inCoord > len - 1.0) {\n                  if (len <= 1.0) {\n                    inCoord = 0.0;\n                  } else {\n                    float sz2 = 2.0 * len;\n                    inCoord -= sz2 * float(int(float(inCoord / sz2)));\n                    if (inCoord >= len) {\n                      inCoord = sz2 - inCoord - 1.0;\n                    }\n                  }\n                }\n                return clamp(inCoord, 0.0, len - 1.0);\n              } else if (").concat(fillModeId, " == 3) {\n                if (inCoord < 0.0) {\n                  if (len <= 1.0) {\n                    inCoord = 0.0;\n                  } else {\n                    float sz = len - 1.0;\n                    inCoord += len * (float(int(float(-inCoord / sz))) + 1.0);\n                  }\n                } else if (inCoord > len - 1.0) {\n                  if (len <= 1.0) {\n                    inCoord = 0.0;\n                  } else {\n                    float sz = len - 1.0;\n                    inCoord -= len * float(int(float(inCoord / sz)));\n                  }\n                }\n                return clamp(inCoord, 0.0, len - 1.0);\n              } else if (").concat(fillModeId, " == 4) {\n                return clamp(outCoord, 0.0, len - 1.0);\n              } else {\n                return outCoord;\n              }\n            }\n\n            float readWithFillValue(int batch, int coordY, int coordX,\n              int channel) {\n              float outputValue;\n              if (0 <= coordY && coordY < ").concat(imageHeight, " && 0 <= coordX && coordX < ").concat(imageWidth, ") {\n                  outputValue = getImage(batch, coordY, coordX, channel);\n              } else {\n                outputValue = float(").concat(fillValue, ");\n              }\n              return outputValue;\n            }\n\n            void main() {\n              ivec4 coords = getOutputCoords();\n              float outputValue;\n              int batch = coords[0];\n              int x = coords[2];\n              int y = coords[1];\n              int channel = coords[3];\n              float xf = float(x);\n              float yf = float(y);\n              float a1 = getTransforms(batch, 0);\n              float a2 = getTransforms(batch, 1);\n              float a3 = getTransforms(batch, 2);\n              float b1 = getTransforms(batch, 3);\n              float b2 = getTransforms(batch, 4);\n              float b3 = getTransforms(batch, 5);\n              float c1 = getTransforms(batch, 6);\n              float c2 = getTransforms(batch, 7);\n              float projection = c1 * xf + c2 * yf + 1.0;\n              if (projection == 0.0) {\n                outputValue = float(").concat(fillValue, ");\n              } else {\n                float inX = (a1 * xf + a2 * yf + a3) / projection;\n                float inY = (b1 * xf + b2 * yf + b3) / projection;\n                float mapX = mapCoord(inX, float(").concat(imageWidth, "));\n                float mapY = mapCoord(inY, float(").concat(imageHeight, "));\n\n                if (").concat(interpolationModeId, " == 1) {\n                  int coordY = int(round(mapY));\n                  int coordX = int(round(mapX));\n                  outputValue = readWithFillValue(batch, coordY, coordX,\n                    channel);\n                } else {\n                  float yFloor = floor(mapY);\n                  float xFloor = floor(mapX);\n                  float yCeil = yFloor + 1.0;\n                  float xCeil = xFloor + 1.0;\n                  float valueYFloor = (xCeil - mapX) *\n                  readWithFillValue(batch, int(yFloor), int(xFloor), channel) +\n                  (mapX - xFloor) *\n                  readWithFillValue(batch, int(yFloor), int(xCeil), channel);\n                  float valueYCeil = (xCeil - mapX) *\n                  readWithFillValue(batch, int(yCeil), int(xFloor), channel) +\n                  (mapX - xFloor) *\n                  readWithFillValue(batch, int(yCeil), int(xCeil), channel);\n                  outputValue = (yCeil - mapY) * valueYFloor +\n                  (mapY - yFloor) * valueYCeil;\n                }\n              }\n              setOutput(outputValue);\n            }\n        ");
                }
                return TransformProgram;
            }());

        function transform(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var image = inputs.image
                , transforms = inputs.transforms;
            var interpolation = attrs.interpolation
                , fillMode = attrs.fillMode
                , fillValue = attrs.fillValue
                , outputShape = attrs.outputShape;
            var _a = __read(image.shape, 4)
                , batch = _a[0]
                , imageHeight = _a[1]
                , imageWidth = _a[2]
                , numChannels = _a[3];
            var _b = __read(outputShape != null ? outputShape : [imageHeight, imageWidth], 2)
                , outHeight = _b[0]
                , outWidth = _b[1];
            var outShape = [batch, outHeight, outWidth, numChannels];
            var program = new TransformProgram(imageHeight, imageWidth, interpolation, fillMode, fillValue, outShape);
            return backend.runWebGLProgram(program, [image, transforms], 'float32');
        }
        var transformConfig = {
            kernelName: tf.Transform,
            backendName: 'webgl',
            kernelFunc: transform
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the License);
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an AS IS BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function unique(args) {
            var inputs = args.inputs
                , attrs = args.attrs
                , backend = args.backend;
            var axis = attrs.axis;
            var x = inputs.x;
            assertNotComplex(x, 'unique');
            // For now, always forward calculation to the CPU backend.
            console.warn('WARNING: ', 'UI might be locked temporarily as data is being downloaded');
            var values = backend.readSync(x.dataId);
            var _a = uniqueImplCPU(values, axis, x.shape, x.dtype)
                , outputValues = _a.outputValues
                , outputShape = _a.outputShape
                , indices = _a.indices;
            return [backend.makeTensorInfo(outputShape, x.dtype, outputValues), backend.makeTensorInfo([indices.length], 'int32', indices),];
        }
        var uniqueConfig = {
            kernelName: tf.Unique,
            backendName: 'webgl',
            kernelFunc: unique,
        };

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function unpack(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var value = inputs.value;
            var axis = attrs.axis;
            if (axis < 0) {
                axis += value.shape.length;
            }
            var x = value;
            var xRank = x.shape.length;
            var num = value.shape[axis];
            var outShape = new Array(xRank - 1);
            var outIndex = 0;
            for (var i = 0; i < xRank; i++) {
                if (i !== axis) {
                    outShape[outIndex++] = x.shape[i];
                }
            }
            var toDispose = [];
            var begin = new Array(xRank).fill(0);
            var size = x.shape.slice();
            size[axis] = 1;
            var res = new Array(num);
            for (var i = 0; i < res.length; i++) {
                begin[axis] = i;
                var sliced = slice({
                    inputs: {
                        x: x
                    },
                    backend: backend,
                    attrs: {
                        begin: begin,
                        size: size
                    }
                });
                var reshaped = reshape({
                    inputs: {
                        x: sliced
                    },
                    backend: backend,
                    attrs: {
                        shape: outShape
                    }
                });
                res[i] = reshaped;
                toDispose.push(sliced);
            }
            toDispose.forEach(function (t) {
                return backend.disposeIntermediateTensorInfo(t);
            });
            return res;
        }
        var unpackConfig = {
            kernelName: tf.Unpack,
            backendName: 'webgl',
            kernelFunc: unpack
        };

        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var SegmentOpProgram = /** @class */
            (function () {
                function SegmentOpProgram(segOpInfo, segOpType) {
                    this.variableNames = ['x', 'segmentIds'];
                    var windowSize = segOpInfo.windowSize;
                    var batchSize = segOpInfo.batchSize;
                    var inSize = segOpInfo.inSize;
                    var numSegments = segOpInfo.numSegments;
                    var outSize = numSegments * Math.ceil(inSize / windowSize);
                    this.outputShape = [batchSize, outSize];
                    var initializationValue = '0.0';
                    var returnValue = "sumValue";
                    var windowSizeNearestVec4 = Math.floor(windowSize / 4) * 4;
                    var windowSizeVec4Remainder = windowSize % 4;
                    var updateSnippet = "\n        sumValue += dot(values, segFilter);\n    ";
                    var checkValueOutOfBounds = '';
                    if (inSize % windowSize > 0) {
                        checkValueOutOfBounds = "\n        if (inIdx < 0 || inIdx >= ".concat(inSize, ") {\n          return initializationValue;\n        }\n      ");
                    }
                    var checkSegmentIdOutOfBounds = '';
                    if (inSize % windowSize > 0) {
                        checkSegmentIdOutOfBounds = "\n        if (inIdx < 0 || inIdx >= ".concat(inSize, ") {\n          return -1.0;\n        }\n      ");
                    }
                    this.userCode = "\n      const float initializationValue = ".concat(initializationValue, ";\n\n      float getValue(int batch, int inIdx) {\n        ").concat(checkValueOutOfBounds, "\n        return getX(batch, inIdx);\n      }\n\n      float getSegmentIdAtIndex(int inIdx) {\n        ").concat(checkSegmentIdOutOfBounds, "\n        return getSegmentIds(inIdx);\n      }\n\n      void main() {\n        ivec2 coords = getOutputCoords();\n        int batch = coords[0];\n        int outIdx = coords[1];\n        int inOffset = int(floor(float(outIdx) / float(\n          ").concat(numSegments, ")) * float(").concat(windowSize, "));\n        int currentSeg = int(mod(float(outIdx), float(").concat(numSegments, ")));\n\n        float sumValue = 0.0;\n\n        for (int i = 0; i < ").concat(windowSizeNearestVec4, "; i += 4) {\n          int inIdx = inOffset + i;\n          vec4 values = vec4(\n            getValue(batch, inIdx),\n            getValue(batch, inIdx + 1),\n            getValue(batch, inIdx + 2),\n            getValue(batch, inIdx + 3)\n          );\n\n          vec4 segFilter = vec4(\n            int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\n            int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0,\n            int(getSegmentIdAtIndex(inIdx + 2)) == currentSeg ? 1 : 0,\n            int(getSegmentIdAtIndex(inIdx + 3)) == currentSeg ? 1 : 0\n          );\n\n          ").concat(updateSnippet, "\n        }\n\n        int inIdx = inOffset + ").concat(windowSizeNearestVec4, ";\n        if (").concat(windowSizeVec4Remainder === 1, ") {\n          vec4 values = vec4(\n            getValue(batch, inIdx),\n            initializationValue,\n            initializationValue,\n            initializationValue\n          );\n\n          int inIdxSeg = int(getSegmentIdAtIndex(inIdx));\n\n          vec4 segFilter = vec4(\n            int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\n            0,\n            0,\n            0\n          );\n\n          ").concat(updateSnippet, "\n        } else if (").concat(windowSizeVec4Remainder === 2, ") {\n          vec4 values = vec4(\n            getValue(batch, inIdx),\n            getValue(batch, inIdx + 1),\n            initializationValue,\n            initializationValue\n          );\n\n          vec4 segFilter = vec4(\n            int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\n            int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0,\n              0,\n              0\n          );\n\n          ").concat(updateSnippet, "\n        } else if (").concat(windowSizeVec4Remainder === 3, ") {\n          vec4 values = vec4(\n            getValue(batch, inIdx),\n            getValue(batch, inIdx + 1),\n            getValue(batch, inIdx + 2),\n            initializationValue\n          );\n\n          vec4 segFilter = vec4(\n            int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\n            int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0,\n            int(getSegmentIdAtIndex(inIdx + 2)) == currentSeg ? 1 : 0,\n            0\n          );\n\n          ").concat(updateSnippet, "\n        }\n        setOutput(").concat(returnValue, ");\n      }\n    ");
                }
                return SegmentOpProgram;
            }());

        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        function unsortedSegmentSum(args) {
            var inputs = args.inputs
                , backend = args.backend
                , attrs = args.attrs;
            var x = inputs.x
                , segmentIds = inputs.segmentIds;
            var numSegments = attrs.numSegments;
            var xRank = x.shape.length;
            var toDispose = [];
            var axis = 0;
            var permutation = tf.backend_util.getAxesPermutation([axis], xRank);
            var permutedX = x;
            if (permutation != null) {
                permutedX = transpose({
                    inputs: {
                        x: x
                    },
                    backend: backend,
                    attrs: {
                        perm: permutation
                    }
                });
                toDispose.push(permutedX);
                axis = tf.backend_util.getInnerMostAxes(1, xRank)[0];
            }
            var outShape = tf.backend_util.segment_util.computeOutShape(permutedX.shape, axis, numSegments);
            var inSize = tf.util.sizeFromShape([permutedX.shape[axis]]);
            var a2D = reshape({
                inputs: {
                    x: permutedX
                },
                backend: backend,
                attrs: {
                    shape: [-1, inSize]
                }
            });
            toDispose.push(a2D);
            var outputDType = tf.sumOutType(x.dtype);
            var segOpCompute = function (x, segOpType, segmentIds, dtype, numSegments) {
                var batchSize = x.shape[0];
                var inSize = x.shape[1];
                var windowSize = tf.backend_util.segment_util.segOpComputeOptimalWindowSize(inSize, numSegments);
                var segOpInfo = {
                    windowSize: windowSize,
                    inSize: inSize,
                    batchSize: batchSize,
                    numSegments: numSegments
                };
                var program = new SegmentOpProgram(segOpInfo, segOpType);
                var output = backend.compileAndRun(program, [x, segmentIds], dtype);
                toDispose.push(output);
                // No need to run another GPGPU program.
                if (output.shape[1] === numSegments) {
                    return output;
                }
                var rangeInfo = range({
                    backend: backend,
                    attrs: {
                        start: 0,
                        stop: numSegments,
                        step: 1,
                        dtype: 'float32'
                    }
                });
                var tileInfo = tile({
                    inputs: {
                        x: rangeInfo
                    },
                    backend: backend,
                    attrs: {
                        reps: [inSize / windowSize]
                    }
                });
                toDispose.push(rangeInfo);
                toDispose.push(tileInfo);
                var result = segOpCompute(output, segOpType, tileInfo, dtype, numSegments);
                return result;
            };
            var segOpResult = segOpCompute(a2D, 'unsortedSegmentSum', segmentIds, outputDType, numSegments);
            var reshaped = reshape({
                inputs: {
                    x: segOpResult
                },
                backend: backend,
                attrs: {
                    shape: outShape
                }
            });
            var result = reshaped;
            if (permutation != null) {
                toDispose.push(reshaped);
                var perm = tf.backend_util.getUndoAxesPermutation(permutation);
                result = transpose({
                    inputs: {
                        x: result
                    },
                    backend: backend,
                    attrs: {
                        perm: perm
                    }
                });
            }
            toDispose.forEach(function (t) {
                return backend.disposeIntermediateTensorInfo(t);
            });
            return result;
        }
        var unsortedSegmentSumConfig = {
            kernelName: tf.UnsortedSegmentSum,
            backendName: 'webgl',
            kernelFunc: unsortedSegmentSum
        };

        var e_1, _a;
        // List all kernel configs here
        var kernelConfigs = [_fusedMatMulConfig, absConfig, acosConfig, acoshConfig, addConfig, addNConfig, allConfig, anyConfig, argMaxConfig, argMinConfig, asinConfig, asinhConfig, atanConfig, atan2Config, atanhConfig, avgPoolConfig, avgPool3DConfig, avgPool3DGradConfig, avgPoolGradConfig, batchMatMulConfig, batchNormConfig, batchToSpaceNDConfig, bincountConfig, broadcastArgsConfig, castConfig, ceilConfig, clipByValueConfig, complexConfig, complexAbsConfig, concatConfig, conv2DConfig, conv2DBackpropFilterConfig, conv2DBackpropInputConfig, conv3DConfig, conv3DBackpropFilterV2Config, conv3DBackpropInputConfig, cosConfig, coshConfig, cropAndResizeConfig, cumprodConfig, cumsumConfig, denseBincountConfig, depthToSpaceConfig, depthwiseConv2dNativeConfig, depthwiseConv2dNativeBackpropFilterConfig, depthwiseConv2dNativeBackpropInputConfig, diagConfig, dilation2DConfig, einsumConfig, eluConfig, eluGradConfig, equalConfig, erfConfig, expConfig, expandDimsConfig, expm1Config, fftConfig, fillConfig, flipLeftRightConfig, floorConfig, floorDivConfig, fromPixelsConfig, fusedConv2DConfig, fusedDepthwiseConv2DConfig, gatherNdConfig, gatherV2Config, greaterConfig, greaterEqualConfig, identityConfig, ifftConfig, imagConfig, isFiniteConfig, isInfConfig, isNaNConfig, leakyReluConfig, lessConfig, lessEqualConfig, linSpaceConfig, logConfig, log1pConfig, logicalAndConfig, logicalNotConfig, logicalOrConfig, LRNConfig, LRNGradConfig, maxConfig, maximumConfig, maxPoolConfig, maxPool3DConfig, maxPool3DGradConfig, maxPoolGradConfig, maxPoolWithArgmaxConfig, meanConfig, minConfig, minimumConfig, mirrorPadConfig, modConfig, multinomialConfig, multiplyConfig, negConfig, nonMaxSuppressionV3Config, nonMaxSuppressionV4Config, nonMaxSuppressionV5Config, notEqualConfig, oneHotConfig, onesLikeConfig, packConfig, padV2Config, powConfig, preluConfig, prodConfig, raggedGatherConfig, raggedRangeConfig, raggedTensorToTensorConfig, rangeConfig, realConfig, realDivConfig, reciprocalConfig, reluConfig, relu6Config, reshapeConfig, resizeBilinearConfig, resizeBilinearGradConfig, resizeNearestNeighborConfig, resizeNearestNeighborGradConfig, reverseConfig, rotateWithOffsetConfig, roundConfig, rsqrtConfig, scatterNdConfig, searchSortedConfig, selectConfig, seluConfig, sigmoidConfig, signConfig, sinConfig, sinhConfig, sliceConfig, softmaxConfig, softplusConfig, spaceToBatchNDConfig, sparseFillEmptyRowsConfig, sparseReshapeConfig, sparseSegmentMeanConfig, sparseSegmentSumConfig, sparseToDenseConfig, splitVConfig, sqrtConfig, squareConfig, squaredDifferenceConfig, stepConfig, stridedSliceConfig, stringNGramsConfig, stringSplitConfig, stringToHashBucketFastConfig, subConfig, sumConfig, tanConfig, tanhConfig, tileConfig, topKConfig, transformConfig, transposeConfig, uniqueConfig, unpackConfig, unsortedSegmentSumConfig, zerosLikeConfig];
        try {
            for (var kernelConfigs_1 = __values(kernelConfigs), kernelConfigs_1_1 = kernelConfigs_1.next(); !kernelConfigs_1_1.done; kernelConfigs_1_1 = kernelConfigs_1.next()) {
                var kernelConfig = kernelConfigs_1_1.value;
                tf.registerKernel(kernelConfig);
            }
        } catch (e_1_1) {
            e_1 = {
                error: e_1_1
            };
        } finally {
            try {
                if (kernelConfigs_1_1 && !kernelConfigs_1_1.done && (_a = kernelConfigs_1.return))
                    _a.call(kernelConfigs_1);
            } finally {
                if (e_1)
                    throw e_1.error;
            }
        }

        exports.GPGPUContext = GPGPUContext;
        exports.MathBackendWebGL = MathBackendWebGL;
        exports.forceHalfFloat = forceHalfFloat;
        exports.gpgpu_util = gpgpu_util;
        exports.setWebGLContext = setWebGLContext;
        exports.version_webgl = version;
        exports.webgl = webgl;
        exports.webgl_util = webgl_util;

    }
        , {
        "@tensorflow/tfjs-core": 506
    }],
    10: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.SaverDef = exports.DataType = void 0;
        /**
         * @license
         * Copyright 2019 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         *
         * =============================================================================
         */
        /** DataType enum. */
        var DataType;
        exports.DataType = DataType;
        (function (DataType) {
            // Not a legal value for DataType.  Used to indicate a DataType field
            // has not been set.
            DataType[DataType["DT_INVALID"] = 0] = "DT_INVALID";
            // Data types that all computation devices are expected to be
            // capable to support.
            DataType[DataType["DT_FLOAT"] = 1] = "DT_FLOAT";
            DataType[DataType["DT_DOUBLE"] = 2] = "DT_DOUBLE";
            DataType[DataType["DT_INT32"] = 3] = "DT_INT32";
            DataType[DataType["DT_UINT8"] = 4] = "DT_UINT8";
            DataType[DataType["DT_INT16"] = 5] = "DT_INT16";
            DataType[DataType["DT_INT8"] = 6] = "DT_INT8";
            DataType[DataType["DT_STRING"] = 7] = "DT_STRING";
            DataType[DataType["DT_COMPLEX64"] = 8] = "DT_COMPLEX64";
            DataType[DataType["DT_INT64"] = 9] = "DT_INT64";
            DataType[DataType["DT_BOOL"] = 10] = "DT_BOOL";
            DataType[DataType["DT_QINT8"] = 11] = "DT_QINT8";
            DataType[DataType["DT_QUINT8"] = 12] = "DT_QUINT8";
            DataType[DataType["DT_QINT32"] = 13] = "DT_QINT32";
            DataType[DataType["DT_BFLOAT16"] = 14] = "DT_BFLOAT16";
            DataType[DataType["DT_QINT16"] = 15] = "DT_QINT16";
            DataType[DataType["DT_QUINT16"] = 16] = "DT_QUINT16";
            DataType[DataType["DT_UINT16"] = 17] = "DT_UINT16";
            DataType[DataType["DT_COMPLEX128"] = 18] = "DT_COMPLEX128";
            DataType[DataType["DT_HALF"] = 19] = "DT_HALF";
            DataType[DataType["DT_RESOURCE"] = 20] = "DT_RESOURCE";
            DataType[DataType["DT_VARIANT"] = 21] = "DT_VARIANT";
            DataType[DataType["DT_UINT32"] = 22] = "DT_UINT32";
            DataType[DataType["DT_UINT64"] = 23] = "DT_UINT64";
            // Do not use!  These are only for parameters.  Every enum above
            // should have a corresponding value below (verified by types_test).
            DataType[DataType["DT_FLOAT_REF"] = 101] = "DT_FLOAT_REF";
            DataType[DataType["DT_DOUBLE_REF"] = 102] = "DT_DOUBLE_REF";
            DataType[DataType["DT_INT32_REF"] = 103] = "DT_INT32_REF";
            DataType[DataType["DT_UINT8_REF"] = 104] = "DT_UINT8_REF";
            DataType[DataType["DT_INT16_REF"] = 105] = "DT_INT16_REF";
            DataType[DataType["DT_INT8_REF"] = 106] = "DT_INT8_REF";
            DataType[DataType["DT_STRING_REF"] = 107] = "DT_STRING_REF";
            DataType[DataType["DT_COMPLEX64_REF"] = 108] = "DT_COMPLEX64_REF";
            DataType[DataType["DT_INT64_REF"] = 109] = "DT_INT64_REF";
            DataType[DataType["DT_BOOL_REF"] = 110] = "DT_BOOL_REF";
            DataType[DataType["DT_QINT8_REF"] = 111] = "DT_QINT8_REF";
            DataType[DataType["DT_QUINT8_REF"] = 112] = "DT_QUINT8_REF";
            DataType[DataType["DT_QINT32_REF"] = 113] = "DT_QINT32_REF";
            DataType[DataType["DT_BFLOAT16_REF"] = 114] = "DT_BFLOAT16_REF";
            DataType[DataType["DT_QINT16_REF"] = 115] = "DT_QINT16_REF";
            DataType[DataType["DT_QUINT16_REF"] = 116] = "DT_QUINT16_REF";
            DataType[DataType["DT_UINT16_REF"] = 117] = "DT_UINT16_REF";
            DataType[DataType["DT_COMPLEX128_REF"] = 118] = "DT_COMPLEX128_REF";
            DataType[DataType["DT_HALF_REF"] = 119] = "DT_HALF_REF";
            DataType[DataType["DT_RESOURCE_REF"] = 120] = "DT_RESOURCE_REF";
            DataType[DataType["DT_VARIANT_REF"] = 121] = "DT_VARIANT_REF";
            DataType[DataType["DT_UINT32_REF"] = 122] = "DT_UINT32_REF";
            DataType[DataType["DT_UINT64_REF"] = 123] = "DT_UINT64_REF";
        }
        )(DataType || (exports.DataType = DataType = {}));
        var SaverDef;
        exports.SaverDef = SaverDef;
        (function (SaverDef) {
            /** CheckpointFormatVersion enum. */
            let CheckpointFormatVersion;
            (function (CheckpointFormatVersion) {
                CheckpointFormatVersion[CheckpointFormatVersion["LEGACY"] = 0] = "LEGACY";
                CheckpointFormatVersion[CheckpointFormatVersion["V1"] = 1] = "V1";
                CheckpointFormatVersion[CheckpointFormatVersion["V2"] = 2] = "V2";
            }
            )(CheckpointFormatVersion = SaverDef.CheckpointFormatVersion || (SaverDef.CheckpointFormatVersion = {}));
        }
        )(SaverDef || (exports.SaverDef = SaverDef = {}));

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

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.ExecutionContext = void 0;
        /**
         * ExecutionContext captures the runtime environment of the node. It keeps
         * track of the current frame and iteration for the control flow ops.
         *
         * For example, typical Dynamic RNN model may contain loops, for which
         * TensorFlow will generate graphs with Enter/Exit nodes to control the
         * current execution frame, and NextIteration Nodes for iteration id increment.
         * For model with branch logic, TensorFLow will generate Switch/Merge ops.
         */
        class ExecutionContext {
            constructor(weightMap = {}, tensorArrayMap = {}, tensorListMap = {}, functionMap = {}) {
                this.weightMap = weightMap;
                this.tensorArrayMap = tensorArrayMap;
                this.tensorListMap = tensorListMap;
                this.functionMap = functionMap;
                this.rootContext = {
                    id: 0,
                    frameName: '',
                    iterationId: 0
                };
                this.contexts = [this.rootContext];
                this.lastId = 0;
                this.generateCurrentContextIds();
            }
            newFrame(id, frameName) {
                return {
                    id,
                    frameName,
                    iterationId: 0
                };
            }
            /**
             * Set the current context
             * @param contexts: ExecutionContextInfo[] the current path of execution
             * frames
             */
            set currentContext(contexts) {
                if (this.contexts !== contexts) {
                    this.contexts = contexts;
                    this.generateCurrentContextIds();
                }
            }
            get currentContext() {
                return this.contexts;
            }
            /**
             * Returns the current context in string format.
             */
            get currentContextId() {
                return this._currentContextIds[0];
            }
            /**
             * Returns the current context and all parent contexts in string format.
             * This allow access to the nodes in the current and parent frames.
             */
            get currentContextIds() {
                return this._currentContextIds;
            }
            generateCurrentContextIds() {
                const names = [];
                for (let i = 0; i < this.contexts.length - 1; i++) {
                    const contexts = this.contexts.slice(0, this.contexts.length - i);
                    names.push(this.contextIdforContexts(contexts));
                }
                names.push('');
                this._currentContextIds = names;
            }
            contextIdforContexts(contexts) {
                return contexts ? contexts.map(context => context.id === 0 && context.iterationId === 0 ? '' : `${context.frameName}-${context.iterationId}`).join('/') : '';
            }
            /**
             * Enter a new frame, a new context is pushed on the current context list.
             * @param frameId new frame id
             */
            enterFrame(frameId) {
                if (this.contexts) {
                    this.lastId++;
                    this.contexts = this.contexts.slice();
                    this.contexts.push(this.newFrame(this.lastId, frameId));
                    this._currentContextIds.unshift(this.contextIdforContexts(this.contexts));
                }
            }
            /**
             * Exit the current frame, the last context is removed from the current
             * context list.
             */
            exitFrame() {
                if (this.contexts && this.contexts.length > 1) {
                    this.contexts = this.contexts.slice();
                    this.contexts.splice(-1);
                    this.currentContextIds.shift();
                } else {
                    throw new Error('Cannot exit frame, the context is empty');
                }
            }
            /**
             * Enter the next iteration of a loop, the iteration id of last context is
             * increased.
             */
            nextIteration() {
                if (this.contexts && this.contexts.length > 0) {
                    this.contexts = this.contexts.slice();
                    this.lastId++;
                    const context = Object.assign({}, this.contexts[this.contexts.length - 1]);
                    context.iterationId += 1;
                    context.id = this.lastId;
                    this.contexts.splice(-1, 1, context);
                    this._currentContextIds.splice(0, 1, this.contextIdforContexts(this.contexts));
                } else {
                    throw new Error('Cannot increase frame iteration, the context is empty');
                }
            }
            getWeight(name) {
                return this.weightMap[name];
            }
            addTensorArray(tensorArray) {
                this.tensorArrayMap[tensorArray.id] = tensorArray;
            }
            getTensorArray(id) {
                return this.tensorArrayMap[id];
            }
            addTensorList(tensorList) {
                this.tensorListMap[tensorList.id] = tensorList;
            }
            getTensorList(id) {
                return this.tensorListMap[id];
            }
            dispose(keepIds) {
                for (const key in this.tensorArrayMap) {
                    this.tensorArrayMap[key].clearAndClose(keepIds);
                }
                for (const key in this.tensorListMap) {
                    this.tensorListMap[key].clearAndClose(keepIds);
                }
            }
        }
        exports.ExecutionContext = ExecutionContext;

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

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.GraphExecutor = void 0;
        var _tfjsCore = require("@tensorflow/tfjs-core");
        var _utils = require("../operations/executors/utils");
        var _operation_executor = require("../operations/operation_executor");
        var _execution_context = require("./execution_context");
        var _model_analysis = require("./model_analysis");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        class GraphExecutor {
            /**
             *
             * @param graph Graph the model or function graph to be executed.
             * @param parent When building function exector you need to set the parent
             * executor. Since the weights and function executor maps are set at parant
             * level, that function executor can access the function maps and weight maps
             * through the parent.
             */
            constructor(graph, parent) {
                this.graph = graph;
                this.parent = parent;
                this.compiledMap = new Map();
                this._weightMap = {};
                this.SEPERATOR = ',';
                this._functions = {};
                this._functionExecutorMap = {};
                this.intermediateTensors = {};
                this.keepTensorForDebug = false;
                this._outputs = graph.outputs;
                this._inputs = graph.inputs;
                this._initNodes = graph.initNodes;
                this._signature = graph.signature;
                this._functions = graph.functions;
                // create sub-graph executors
                if (graph.functions != null) {
                    Object.keys(graph.functions).forEach(name => {
                        this._functionExecutorMap[name] = new GraphExecutor(graph.functions[name], this);
                    }
                    );
                }
            }
            get weightIds() {
                return this.parent ? this.parent.weightIds : this._weightIds;
            }
            get functionExecutorMap() {
                return this.parent ? this.parent.functionExecutorMap : this._functionExecutorMap;
            }
            get weightMap() {
                return this.parent ? this.parent.weightMap : this._weightMap;
            }
            set weightMap(weightMap) {
                const weightIds = Object.keys(weightMap).map(key => weightMap[key].map(tensor => tensor.id));
                this._weightIds = [].concat(...weightIds);
                this._weightMap = weightMap;
            }
            /**
             * Set `ResourceManager` shared by executors of a model.
             * @param resourceManager: `ResourceManager` of the `GraphModel`.
             */
            set resourceManager(resourceManager) {
                this._resourceManager = resourceManager;
            }
            get inputs() {
                return this._inputs.map(node => {
                    return {
                        name: node.name,
                        shape: node.attrParams['shape'] ? node.attrParams['shape'].value : undefined,
                        dtype: node.attrParams['dtype'] ? node.attrParams['dtype'].value : undefined
                    };
                }
                );
            }
            get outputs() {
                return this._outputs.map(node => {
                    return {
                        name: node.name,
                        shape: node.attrParams['shape'] ? node.attrParams['shape'].value : undefined,
                        dtype: node.attrParams['dtype'] ? node.attrParams['dtype'].value : undefined
                    };
                }
                );
            }
            get inputNodes() {
                return this._inputs.map(node => node.signatureKey || node.name);
            }
            get outputNodes() {
                return this._outputs.map(node => {
                    const name = node.signatureKey || node.name;
                    return node.defaultOutput ? `${name}:${node.defaultOutput}` : name;
                }
                );
            }
            get functions() {
                return Object.keys(this._functions).reduce((map, key) => {
                    map[key] = this._functions[key].signature;
                    return map;
                }
                    , {});
            }
            getCompilationKey(inputs, outputs) {
                const sortedInputs = inputs.map(node => node.name).sort();
                const sortedOutputs = outputs.map(node => node.name).sort();
                return sortedInputs.join(this.SEPERATOR) + '--' + sortedOutputs.join(this.SEPERATOR);
            }
            /**
             * Compiles the inference graph and returns the minimal set of nodes that are
             * required for execution, in the correct execution order.
             */
            compile(inputs, outputs) {
                const executionInfo = (0,
                    _model_analysis.getExecutionSubgraph)(inputs, outputs, this.weightMap, this._initNodes);
                const { missingInputs, dynamicNode, syncInputs } = executionInfo;
                if (dynamicNode != null) {
                    throw new Error(`This execution contains the node '${dynamicNode.name}', which has ` + `the dynamic op '${dynamicNode.op}'. Please use ` + `model.executeAsync() instead. Alternatively, to avoid the ` + `dynamic ops, specify the inputs [${syncInputs}]`);
                }
                if (missingInputs.length > 0) {
                    const outNames = outputs.map(n => n.name);
                    const inNames = Object.keys(inputs);
                    throw new Error(`Cannot compute the outputs [${outNames}] from the provided inputs ` + `[${inNames}]. Missing the following inputs: [${missingInputs}]`);
                }
                return (0,
                    _model_analysis.getNodesInTopologicalOrder)(this.graph, this.weightMap, executionInfo);
            }
            /**
             * Executes the inference for given input tensors.
             * @param inputs Tensor map for the model inputs, keyed by the input node
             * names.
             * @param outputs Optional. output node name from the Tensorflow model, if
             * no outputs are specified, the default outputs of the model would be used.
             * You can inspect intermediate nodes of the model by adding them to the
             * outputs array.
             */
            execute(inputs, outputs) {
                inputs = this.mapInputs(inputs);
                const names = Object.keys(inputs).sort();
                this.checkInputs(inputs);
                this.checkInputShapeAndType(inputs);
                outputs = this.mapOutputs(outputs);
                this.checkOutputs(outputs);
                const inputNodes = names.map(name => this.graph.nodes[(0,
                    _utils.parseNodeName)(name)[0]]);
                const outputNodeNames = outputs.map(name => (0,
                    _utils.parseNodeName)(name)[0]);
                let outputNodes = outputNodeNames.map(name => this.graph.nodes[name]);
                this.resetIntermediateTensors();
                // If no outputs are specified, then use the default outputs of the model.
                if (outputNodes.length === 0) {
                    outputNodes = this._outputs;
                }
                const compilationKey = this.getCompilationKey(inputNodes, outputNodes);
                // Do nothing if the compiled graph cache contains the input.
                let orderedNodes = this.compiledMap.get(compilationKey);
                if (orderedNodes == null) {
                    orderedNodes = this.compile(inputs, outputNodes);
                    this.compiledMap.set(compilationKey, orderedNodes);
                }
                const tensorArrayMap = {};
                const tensorListMap = {};
                return (0,
                    _tfjsCore.tidy)(() => {
                        const context = new _execution_context.ExecutionContext(this.weightMap, tensorArrayMap, tensorListMap, this.functionExecutorMap);
                        const tensorsMap = Object.assign({}, this.weightMap);
                        Object.keys(inputs).forEach(name => {
                            const [nodeName, index] = (0,
                                _utils.parseNodeName)(name);
                            const tensors = [];
                            tensors[index] = inputs[name];
                            tensorsMap[nodeName] = tensors;
                        }
                        );
                        const tensorsToKeep = this.getFrozenTensorIds(tensorsMap);
                        const intermediateTensorConsumerCount = {};
                        for (let i = 0; i < orderedNodes.length; i++) {
                            const node = orderedNodes[i];
                            if (!tensorsMap[node.name]) {
                                const tensors = (0,
                                    _operation_executor.executeOp)(node, tensorsMap, context, this._resourceManager);
                                if (_tfjsCore.util.isPromise(tensors)) {
                                    throw new Error(`The execution of the op '${node.op}' returned a promise. ` + `Please use model.executeAsync() instead.`);
                                }
                                tensorsMap[node.name] = tensors;
                                this.checkTensorForDisposal(node.name, node, tensorsMap, context, tensorsToKeep, outputNodeNames, intermediateTensorConsumerCount);
                            }
                        }
                        // dispose the context for the root executor
                        if (this.parent == null) {
                            context.dispose(tensorsToKeep);
                        }
                        return outputs.map(name => (0,
                            _utils.getTensor)(name, tensorsMap, context));
                    }
                    );
            }
            getFrozenTensorIds(tensorMap) {
                const ids = [].concat.apply([], Object.keys(tensorMap).map(key => tensorMap[key]).map(tensors => tensors.map(tensor => tensor.id)));
                return new Set(ids);
            }
            checkTensorForDisposal(nodeName, node, tensorMap, context, tensorsToKeep, outputNames, intermediateTensorConsumerCount) {
                // Skip output nodes and any control flow nodes, since its dependency is
                // tricky to track correctly.
                if (node.category === 'control' || outputNames.indexOf(nodeName) !== -1) {
                    return;
                }
                tensorMap[nodeName].forEach(tensor => {
                    if (tensor != null) {
                        intermediateTensorConsumerCount[tensor.id] = (intermediateTensorConsumerCount[tensor.id] || 0) + node.children.length;
                    }
                }
                );
                node.inputs.forEach(input => {
                    // Skip any control flow nodes, since its dependency is tricky to track
                    // correctly.
                    if (input.category !== 'control') {
                        const tensors = (0,
                            _utils.getTensorsForCurrentContenxt)(input.name, tensorMap, context);
                        if (tensors != null) {
                            tensors.forEach(tensor => {
                                if (tensor && !tensor.kept && !tensorsToKeep.has(tensor.id)) {
                                    const count = intermediateTensorConsumerCount[tensor.id];
                                    if (count === 1) {
                                        if (!this.keepTensorForDebug) {
                                            tensor.dispose();
                                        } else {
                                            const [nodeName, index] = (0,
                                                _utils.getNodeNameAndIndex)(node.name, context);
                                            if (this.intermediateTensors[nodeName]) {
                                                this.intermediateTensors[nodeName][index] = tensor;
                                            } else {
                                                this.intermediateTensors[nodeName] = [];
                                                this.intermediateTensors[nodeName][index] = tensor;
                                            }
                                        }
                                        delete intermediateTensorConsumerCount[tensor.id];
                                    } else if (count != null) {
                                        // only intermediate nodes has count set, inputs and weights are
                                        // not.
                                        intermediateTensorConsumerCount[tensor.id]--;
                                    }
                                }
                            }
                            );
                        }
                    }
                }
                );
            }
            /**
             * Executes the inference for given input tensors in Async fashion.
             * @param inputs Tensor map for the model inputs, keyed by the input node
             * names.
             * @param outputs output node name from the Tensorflow model, if no outputs
             * are specified, the default outputs of the model would be used. You can
             * inspect intermediate nodes of the model by adding them to the outputs
             * array.
             */
            async executeAsync(inputs, outputs) {
                return this._executeAsync(inputs, outputs);
            }
            disposeIntermediateTensors() {
                if (!this.intermediateTensors) {
                    return;
                }
                Object.keys(this.intermediateTensors).forEach(key => this.intermediateTensors[key].forEach(tensor => tensor.dispose()));
                this.disposeTensorsMap();
            }
            disposeTensorsMap() {
                if (!this.tensorsMap) {
                    return;
                }
                Object.keys(this.tensorsMap).forEach(key => {
                    const tensorArray = this.tensorsMap[key];
                    tensorArray.forEach(tensor => {
                        if (tensor && !tensor.kept && !tensor.isDisposed && !this.keepIds.has(tensor.id)) {
                            tensor.dispose();
                        }
                    }
                    );
                }
                );
            }
            getIntermediateTensors() {
                return this.tensorsMap;
            }
            resetIntermediateTensors() {
                for (const key in this.intermediateTensors) {
                    this.intermediateTensors[key].forEach(tensor => tensor.dispose());
                    delete this.intermediateTensors[key];
                }
            }
            /**
             * Executes the inference for given input tensors in Async fashion.
             * @param inputs Tensor map for the model inputs, keyed by the input node
             * names.
             * @param outputs Optional. output node name from the Tensorflow model,
             * if no outputs are specified, the default outputs of the model would be
             * used. You can inspect intermediate nodes of the model by adding them to the
             * outputs array.
             * @param isFunctionExecution Optional. Flag for executing a function.
             * @param tensorArrayMap Optional, global TensorArray map by id. Used for
             * function execution.
             * @param tensorArrayMap Optinal global TensorList map by id. Used for
             * function execution.
             */
            async _executeAsync(inputs, outputs, isFunctionExecution = false, tensorArrayMap = {}, tensorListMap = {}) {
                if (!isFunctionExecution) {
                    inputs = this.mapInputs(inputs);
                    this.checkInputs(inputs);
                    this.checkInputShapeAndType(inputs);
                    outputs = this.mapOutputs(outputs);
                    this.checkOutputs(outputs);
                }
                // For model debug.
                try {
                    this.keepTensorForDebug = (0,
                        _tfjsCore.env)().getBool('KEEP_INTERMEDIATE_TENSORS');
                } catch (e) {
                    console.warn(e.message);
                }
                this.resetIntermediateTensors();
                const context = new _execution_context.ExecutionContext(this.weightMap, tensorArrayMap, tensorListMap, this.functionExecutorMap);
                // Graph with control flow op requires runtime evaluation of the execution
                // order, while without control flow the execution order is pre-determined
                // in the compile method.
                this.tensorsMap = await this.executeWithControlFlow(inputs, context, outputs, isFunctionExecution);
                const results = outputs.map(name => (0,
                    _utils.getTensor)(name, this.tensorsMap, context));
                // dispose all the intermediate tensors
                const outputIds = results.map(t => t.id);
                const inputIds = Object.keys(inputs).map(name => inputs[name].id);
                this.keepIds = new Set([...outputIds, ...inputIds, ...this.weightIds]);
                if (!this.keepTensorForDebug) {
                    this.disposeTensorsMap();
                }
                // dispose the context for the root executor
                if (this.parent == null) {
                    context.dispose(this.keepIds);
                }
                return results;
            }
            async executeFunctionAsync(inputs, tensorArrayMap, tensorListMap) {
                const mappedInputs = inputs.reduce((map, tensor, index) => {
                    map[this.inputs[index].name] = tensor;
                    return map;
                }
                    , {});
                return this._executeAsync(mappedInputs, this.outputNodes, true, tensorArrayMap, tensorListMap);
            }
            /**
             * When there are control flow nodes in the graph, the graph execution use
             * ExecutionContext to keep track of the frames and loop iterators.
             * @param inputs placeholder tensors for the graph.
             * @param context the execution context object for current execution.
             * @param outputNames Optional. output node name from the Tensorflow model,
             * if no outputs are specified, the default outputs of the model would be
             * used. You can inspect intermediate nodes of the model by adding them to the
             * outputs array.
             * @param isFunctionExecution Flag for executing a function.
             */
            async executeWithControlFlow(inputs, context, outputNames, isFunctionExecution) {
                const names = Object.keys(inputs);
                const inputNodes = names.map(name => this.graph.nodes[(0,
                    _utils.parseNodeName)(name)[0]]);
                const outputNodeNames = outputNames.map(name => (0,
                    _utils.parseNodeName)(name)[0]);
                let outputNodes = outputNodeNames.map(name => this.graph.nodes[name]);
                // If no outputs are specified, then use the default outputs of the model.
                if (outputNodes.length === 0) {
                    outputNodes = this._outputs;
                }
                const { usedNodes, missingInputs, dynamicNode, syncInputs } = (0,
                    _model_analysis.getExecutionSubgraph)(inputs, outputNodes, this.weightMap, this._initNodes);
                // First nodes to execute include inputNodes, weights, and initNodes.
                const stack = [...inputNodes, ...this.graph.weights, ...(this._initNodes || [])].map(node => {
                    return {
                        node,
                        contexts: context.currentContext
                    };
                }
                );
                const tensorsMap = Object.assign({}, this.weightMap);
                Object.keys(inputs).forEach(name => {
                    const [nodeName, index] = (0,
                        _utils.parseNodeName)(name);
                    const tensors = [];
                    tensors[index] = inputs[name];
                    tensorsMap[nodeName] = tensors;
                }
                );
                const intermediateTensorConsumerCount = {};
                const tensorsToKeep = this.getFrozenTensorIds(tensorsMap);
                const added = {};
                while (stack.length > 0) {
                    const promises = this.processStack(inputNodes, stack, context, tensorsMap, added, tensorsToKeep, outputNodeNames, intermediateTensorConsumerCount, usedNodes);
                    await Promise.all(promises);
                }
                if (dynamicNode == null && !isFunctionExecution) {
                    console.warn(`This model execution did not contain any nodes with control flow ` + `or dynamic output shapes. You can use model.execute() instead.`);
                }
                const missingOutputs = outputNodes.filter(node => !(0,
                    _model_analysis.isControlFlow)(node) && !(0,
                        _utils.getTensor)(node.name, tensorsMap, context)).map(node => node.name);
                if (missingOutputs.length > 0) {
                    let alternativeMsg = '';
                    if (dynamicNode != null) {
                        alternativeMsg = `Alternatively, to avoid the dynamic ops, use model.execute() ` + `and specify the inputs [${syncInputs}]`;
                    }
                    throw new Error(`Cannot compute the outputs [${missingOutputs}] from the provided ` + `inputs [${names}]. Consider providing the following inputs: ` + `[${missingInputs}]. ${alternativeMsg}`);
                }
                return tensorsMap;
            }
            processStack(inputNodes, stack, context, tensorMap, added, tensorsToKeep, outputNames, intermediateTensorConsumerCount, usedNodes) {
                const promises = [];
                while (stack.length > 0) {
                    const item = stack.pop();
                    context.currentContext = item.contexts;
                    let nodeName = '';
                    // The tensor of the Enter op with isConstant set should be set
                    // in the parent scope, so it will be available as constant for the
                    // whole loop.
                    if (item.node.op === 'Enter' && (0,
                        _utils.getParamValue)('isConstant', item.node, tensorMap, context)) {
                        [nodeName] = (0,
                            _utils.getNodeNameAndIndex)(item.node.name, context);
                    }
                    // only process nodes that are not in the tensorMap yet, this include
                    // inputNodes and internal initNodes.
                    if (tensorMap[item.node.name] == null) {
                        const tensors = (0,
                            _operation_executor.executeOp)(item.node, tensorMap, context, this._resourceManager);
                        if (!nodeName) {
                            [nodeName] = (0,
                                _utils.getNodeNameAndIndex)(item.node.name, context);
                        }
                        const currentContext = context.currentContext;
                        if (_tfjsCore.util.isPromise(tensors)) {
                            promises.push(tensors.then(t => {
                                tensorMap[nodeName] = t;
                                context.currentContext = currentContext;
                                this.checkTensorForDisposal(nodeName, item.node, tensorMap, context, tensorsToKeep, outputNames, intermediateTensorConsumerCount);
                                this.processChildNodes(item.node, stack, context, tensorMap, added, usedNodes);
                                return t;
                            }
                            ));
                        } else {
                            tensorMap[nodeName] = tensors;
                            this.checkTensorForDisposal(nodeName, item.node, tensorMap, context, tensorsToKeep, outputNames, intermediateTensorConsumerCount);
                            this.processChildNodes(item.node, stack, context, tensorMap, added, usedNodes);
                        }
                    } else {
                        this.processChildNodes(item.node, stack, context, tensorMap, added, usedNodes);
                    }
                }
                return promises;
            }
            processChildNodes(node, stack, context, tensorMap, added, usedNodes) {
                node.children.forEach(childNode => {
                    const [nodeName] = (0,
                        _utils.getNodeNameAndIndex)(childNode.name, context);
                    if (added[nodeName] || !usedNodes.has(childNode.name)) {
                        return;
                    }
                    // Merge op can be pushed if any of its inputs has value.
                    if (childNode.op === 'Merge') {
                        if (childNode.inputNames.some(name => {
                            return !!(0,
                                _utils.getTensor)(name, tensorMap, context);
                        }
                        )) {
                            added[nodeName] = true;
                            stack.push({
                                contexts: context.currentContext,
                                node: childNode
                            });
                        }
                    } else // Otherwise all inputs must to have value.
                        if (childNode.inputNames.every(name => {
                            return !!(0,
                                _utils.getTensor)(name, tensorMap, context);
                        }
                        )) {
                            added[nodeName] = true;
                            stack.push({
                                contexts: context.currentContext,
                                node: childNode
                            });
                        }
                }
                );
            }
            /**
             * Releases the memory used by the weight tensors.
             */
            dispose() {
                Object.keys(this.weightMap).forEach(key => this.weightMap[key].forEach(tensor => tensor.dispose()));
            }
            checkInputShapeAndType(inputs) {
                Object.keys(inputs).forEach(name => {
                    const input = inputs[name];
                    const [nodeName] = (0,
                        _utils.parseNodeName)(name);
                    const node = this.graph.nodes[nodeName];
                    if (node.attrParams['shape'] && node.attrParams['shape'].value) {
                        const shape = node.attrParams['shape'].value;
                        const match = shape.length === input.shape.length && input.shape.every((dim, index) => shape[index] === -1 || shape[index] === dim);
                        _tfjsCore.util.assert(match, () => `The shape of dict['${node.name}'] provided in ` + `model.execute(dict) must be [${shape}], but was ` + `[${input.shape}]`);
                    }
                    if (node.attrParams['dtype'] && node.attrParams['dtype'].value) {
                        _tfjsCore.util.assert(input.dtype === node.attrParams['dtype'].value, () => `The dtype of dict['${node.name}'] provided in ` + `model.execute(dict) must be ` + `${node.attrParams['dtype'].value}, but was ${input.dtype}`);
                    }
                }
                );
            }
            mapInputs(inputs) {
                const result = {};
                for (const inputName in inputs) {
                    if (this._signature != null && this._signature.inputs != null && this._signature.inputs[inputName] != null) {
                        const tensor = this._signature.inputs[inputName];
                        result[tensor.name] = inputs[inputName];
                    } else {
                        result[inputName] = inputs[inputName];
                    }
                }
                return result;
            }
            checkInputs(inputs) {
                const notInGraph = Object.keys(inputs).filter(name => {
                    const [nodeName] = (0,
                        _utils.parseNodeName)(name);
                    return this.graph.nodes[nodeName] == null;
                }
                );
                if (notInGraph.length > 0) {
                    throw new Error(`The dict provided in model.execute(dict) has ` + `keys: [${notInGraph}] that are not part of graph`);
                }
            }
            mapOutputs(outputs) {
                return outputs.map(name => {
                    if (this._signature != null && this._signature.outputs != null && this._signature.outputs[name] != null) {
                        const tensor = this._signature.outputs[name];
                        return tensor.name;
                    }
                    return name;
                }
                    , {});
            }
            checkOutputs(outputs) {
                outputs.forEach(name => {
                    const [normalizedName] = (0,
                        _utils.parseNodeName)(name);
                    if (!this.graph.nodes[normalizedName]) {
                        throw new Error(`The output '${name}' is not found in the graph`);
                    }
                }
                );
            }
        }
        exports.GraphExecutor = GraphExecutor;

    }
        , {
        "../operations/executors/utils": 43,
        "../operations/operation_executor": 63,
        "./execution_context": 11,
        "./model_analysis": 15,
        "@tensorflow/tfjs-core": 506
    }],
    13: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.TFHUB_SEARCH_PARAM = exports.GraphModel = exports.DEFAULT_MODEL_NAME = void 0;
        exports.loadGraphModel = loadGraphModel;
        exports.loadGraphModelSync = loadGraphModelSync;
        var _tfjsCore = require("@tensorflow/tfjs-core");
        var _operation_mapper = require("../operations/operation_mapper");
        var _graph_executor = require("./graph_executor");
        var _resource_manager = require("./resource_manager");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const TFHUB_SEARCH_PARAM = '?tfjs-format=file';
        exports.TFHUB_SEARCH_PARAM = TFHUB_SEARCH_PARAM;
        const DEFAULT_MODEL_NAME = 'model.json';
        /**
         * A `tf.GraphModel` is a directed, acyclic graph built from a
         * SavedModel GraphDef and allows inference execution.
         *
         * A `tf.GraphModel` can only be created by loading from a model converted from
         * a [TensorFlow SavedModel](https://www.tensorflow.org/guide/saved_model) using
         * the command line converter tool and loaded via `tf.loadGraphModel`.
         *
         * @doc {heading: 'Models', subheading: 'Classes'}
         */
        exports.DEFAULT_MODEL_NAME = DEFAULT_MODEL_NAME;
        class GraphModel {
            /**
             * @param modelUrl url for the model, or an `io.IOHandler`.
             * @param weightManifestUrl url for the weight file generated by
             * scripts/convert.py script.
             * @param requestOption options for Request, which allows to send credentials
             * and custom headers.
             * @param onProgress Optional, progress callback function, fired periodically
             * before the load is completed.
             */
            constructor(modelUrl, loadOptions = {}, tfio = _tfjsCore.io) {
                this.modelUrl = modelUrl;
                this.loadOptions = loadOptions;
                this.version = 'n/a';
                this.io = tfio;
                if (loadOptions == null) {
                    this.loadOptions = {};
                }
                this.resourceManager = new _resource_manager.ResourceManager();
            }
            // Returns the version information for the tensorflow model GraphDef.
            get modelVersion() {
                return this.version;
            }
            get inputNodes() {
                return this.executor.inputNodes;
            }
            get outputNodes() {
                return this.executor.outputNodes;
            }
            get inputs() {
                return this.executor.inputs;
            }
            get outputs() {
                return this.executor.outputs;
            }
            get weights() {
                return this.executor.weightMap;
            }
            get metadata() {
                return this.artifacts.userDefinedMetadata;
            }
            get modelSignature() {
                return this.signature;
            }
            get modelStructuredOutputKeys() {
                return this.structuredOutputKeys;
            }
            findIOHandler() {
                const path = this.modelUrl;
                if (path.load != null) {
                    // Path is an IO Handler.
                    this.handler = path;
                } else if (this.loadOptions.requestInit != null) {
                    this.handler = this.io.browserHTTPRequest(path, this.loadOptions);
                } else {
                    const handlers = this.io.getLoadHandlers(path, this.loadOptions)
                    if (handlers.length === 0) {
                        // For backward compatibility: if no load handler can be found,
                        // assume it is a relative http path.
                        handlers.push(this.io.browserHTTPRequest(path, this.loadOptions));
                    } else if (handlers.length > 1) {
                        throw new Error(`Found more than one (${handlers.length}) load handlers for ` + `URL '${[path]}'`);
                    }
                    this.handler = handlers[0];
                }
            }
            /**
             * Loads the model and weight files, construct the in memory weight map and
             * compile the inference graph.
             */
            load() {
                if (this.modelUrl === "https://tfhub.dev/google/imagenet/mobilenet_v1_100_224/classification/1/model.json?tfjs-format=file") {
                    return this.loadSync(MOBILENET_ARTIFACTS_V1);
                } else if (this.modelUrl === "https://storage.googleapis.com/tfjs-models/savedmodel/ssdlite_mobilenet_v2/model.json") {
                    return this.loadSync(COCO_SSD_ARTIFACTS);
                } else if (this.modelUrl === "https://tfhub.dev/google/tfjs-model/universal-sentence-encoder-qa-ondevice/1/model.json?tfjs-format=file") {
                    return this.loadSync(USE_ARTIFACTS);
                }

                this.findIOHandler();
                if (this.handler.load == null) {
                    throw new Error('Cannot proceed with model loading because the IOHandler provided ' + 'does not have the `load` method implemented.');
                }
                const loadResult = this.handler.load();
                if (_tfjsCore.util.isPromise(loadResult)) {
                    return loadResult.then(artifacts => {
                        this.loadSync(artifacts);
                    });
                }
            }
            /**
             * Synchronously construct the in memory weight map and
             * compile the inference graph. Also initialize hashtable if any.
             *
             * @doc {heading: 'Models', subheading: 'Classes', ignoreCI: true}
             */
            loadSync(artifacts) {
                this.artifacts = artifacts;
                const graph = this.artifacts.modelTopology;
                let signature = this.artifacts.signature;
                if (this.artifacts.userDefinedMetadata != null) {
                    const metadata = this.artifacts.userDefinedMetadata;
                    if (metadata.signature != null) {
                        signature = metadata.signature;
                    }
                    if (metadata.structuredOutputKeys != null) {
                        this.structuredOutputKeys = metadata.structuredOutputKeys;
                    }
                }
                this.signature = signature;
                this.version = `${graph.versions.producer}.${graph.versions.minConsumer}`;
                const weightMap = this.io.decodeWeights(this.artifacts.weightData, this.artifacts.weightSpecs);
                this.executor = new _graph_executor.GraphExecutor(_operation_mapper.OperationMapper.Instance.transformGraph(graph, this.signature));
                this.executor.weightMap = this.convertTensorMapToTensorsMap(weightMap);
                // Attach a model-level resourceManager to each executor to share resources,
                // such as `HashTable`.
                this.executor.resourceManager = this.resourceManager;
                if (artifacts.modelInitializer != null && artifacts.modelInitializer.node != null) {
                    const initializer = _operation_mapper.OperationMapper.Instance.transformGraph(artifacts.modelInitializer);
                    this.initializer = new _graph_executor.GraphExecutor(initializer);
                    this.initializer.weightMap = this.executor.weightMap;
                    // Attach a model-level resourceManager to the initializer, the
                    // hashTables created from when executing the initializer will be stored
                    // in the resourceManager.
                    this.initializer.resourceManager = this.resourceManager;
                    this.initializer.executeAsync({}, []);
                }
                return true;
            }
            /**
             * Save the configuration and/or weights of the GraphModel.
             *
             * An `IOHandler` is an object that has a `save` method of the proper
             * signature defined. The `save` method manages the storing or
             * transmission of serialized data ("artifacts") that represent the
             * model's topology and weights onto or via a specific medium, such as
             * file downloads, local storage, IndexedDB in the web browser and HTTP
             * requests to a server. TensorFlow.js provides `IOHandler`
             * implementations for a number of frequently used saving mediums, such as
             * `tf.io.browserDownloads` and `tf.io.browserLocalStorage`. See `tf.io`
             * for more details.
             *
             * This method also allows you to refer to certain types of `IOHandler`s
             * as URL-like string shortcuts, such as 'localstorage://' and
             * 'indexeddb://'.
             *
             * Example 1: Save `model`'s topology and weights to browser [local
             * storage](https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage);
             * then load it back.
             *
             * ```js
             * const modelUrl =
             *    'https://storage.googleapis.com/tfjs-models/savedmodel/mobilenet_v2_1.0_224/model.json';
             * const model = await tf.loadGraphModel(modelUrl);
             * const zeros = tf.zeros([1, 224, 224, 3]);
             * model.predict(zeros).print();
             *
             * const saveResults = await model.save('localstorage://my-model-1');
             *
             * const loadedModel = await tf.loadGraphModel('localstorage://my-model-1');
             * console.log('Prediction from loaded model:');
             * model.predict(zeros).print();
             * ```
             *
             * @param handlerOrURL An instance of `IOHandler` or a URL-like,
             * scheme-based string shortcut for `IOHandler`.
             * @param config Options for saving the model.
             * @returns A `Promise` of `SaveResult`, which summarizes the result of
             * the saving, such as byte sizes of the saved artifacts for the model's
             *   topology and weight values.
             *
             * @doc {heading: 'Models', subheading: 'Classes', ignoreCI: true}
             */
            async save(handlerOrURL, config) {
                if (typeof handlerOrURL === 'string') {
                    const handlers = this.io.getSaveHandlers(handlerOrURL);
                    if (handlers.length === 0) {
                        throw new Error(`Cannot find any save handlers for URL '${handlerOrURL}'`);
                    } else if (handlers.length > 1) {
                        throw new Error(`Found more than one (${handlers.length}) save handlers for ` + `URL '${handlerOrURL}'`);
                    }
                    handlerOrURL = handlers[0];
                }
                if (handlerOrURL.save == null) {
                    throw new Error('GraphModel.save() cannot proceed because the IOHandler ' + 'provided does not have the `save` attribute defined.');
                }
                return handlerOrURL.save(this.artifacts);
            }
            /**
             * Execute the inference for the input tensors.
             *
             * @param input The input tensors, when there is single input for the model,
             * inputs param should be a `tf.Tensor`. For models with mutliple inputs,
             * inputs params should be in either `tf.Tensor`[] if the input order is
             * fixed, or otherwise NamedTensorMap format.
             *
             * For model with multiple inputs, we recommend you use NamedTensorMap as the
             * input type, if you use `tf.Tensor`[], the order of the array needs to
             * follow the
             * order of inputNodes array. @see {@link GraphModel.inputNodes}
             *
             * You can also feed any intermediate nodes using the NamedTensorMap as the
             * input type. For example, given the graph
             *    InputNode => Intermediate => OutputNode,
             * you can execute the subgraph Intermediate => OutputNode by calling
             *    model.execute('IntermediateNode' : tf.tensor(...));
             *
             * This is useful for models that uses tf.dynamic_rnn, where the intermediate
             * state needs to be fed manually.
             *
             * For batch inference execution, the tensors for each input need to be
             * concatenated together. For example with mobilenet, the required input shape
             * is [1, 244, 244, 3], which represents the [batch, height, width, channel].
             * If we are provide a batched data of 100 images, the input tensor should be
             * in the shape of [100, 244, 244, 3].
             *
             * @param config Prediction configuration for specifying the batch size.
             * Currently the batch size option is ignored for graph model.
             *
             * @returns Inference result tensors. If the model is converted and it
             * originally had structured_outputs in tensorflow, then a NamedTensorMap
             * will be returned matching the structured_outputs. If no structured_outputs
             * are present, the output will be single `tf.Tensor` if the model has single
             * output node, otherwise Tensor[].
             *
             * @doc {heading: 'Models', subheading: 'Classes'}
             */
            predict(inputs, config) {
                const outputTensors = this.execute(inputs, this.outputNodes);
                if (this.structuredOutputKeys) {
                    const outputTensorsArray = outputTensors instanceof _tfjsCore.Tensor ? [outputTensors] : outputTensors;
                    const outputTensorMap = {};
                    outputTensorsArray.forEach((outputTensor, i) => outputTensorMap[this.structuredOutputKeys[i]] = outputTensor);
                    return outputTensorMap;
                }
                return outputTensors;
            }
            normalizeInputs(inputs) {
                if (!(inputs instanceof _tfjsCore.Tensor) && !Array.isArray(inputs)) {
                    // The input is already a NamedTensorMap.
                    return inputs;
                }
                inputs = Array.isArray(inputs) ? inputs : [inputs];
                if (inputs.length !== this.inputNodes.length) {
                    throw new Error('Input tensor count mismatch,' + `the graph model has ${this.inputNodes.length} placeholders, ` + `while there are ${inputs.length} input tensors.`);
                }
                return this.inputNodes.reduce((map, inputName, i) => {
                    map[inputName] = inputs[i];
                    return map;
                }
                    , {});
            }
            normalizeOutputs(outputs) {
                outputs = outputs || this.outputNodes;
                return !Array.isArray(outputs) ? [outputs] : outputs;
            }
            /**
             * Executes inference for the model for given input tensors.
             * @param inputs tensor, tensor array or tensor map of the inputs for the
             * model, keyed by the input node names.
             * @param outputs output node name from the TensorFlow model, if no
             * outputs are specified, the default outputs of the model would be used.
             * You can inspect intermediate nodes of the model by adding them to the
             * outputs array.
             *
             * @returns A single tensor if provided with a single output or no outputs
             * are provided and there is only one default output, otherwise return a
             * tensor array. The order of the tensor array is the same as the outputs
             * if provided, otherwise the order of outputNodes attribute of the model.
             *
             * @doc {heading: 'Models', subheading: 'Classes'}
             */
            execute(inputs, outputs) {
                inputs = this.normalizeInputs(inputs);
                outputs = this.normalizeOutputs(outputs);
                const result = this.executor.execute(inputs, outputs);
                return result.length > 1 ? result : result[0];
            }
            /**
             * Executes inference for the model for given input tensors in async
             * fashion, use this method when your model contains control flow ops.
             * @param inputs tensor, tensor array or tensor map of the inputs for the
             * model, keyed by the input node names.
             * @param outputs output node name from the TensorFlow model, if no outputs
             * are specified, the default outputs of the model would be used. You can
             * inspect intermediate nodes of the model by adding them to the outputs
             * array.
             *
             * @returns A Promise of single tensor if provided with a single output or
             * no outputs are provided and there is only one default output, otherwise
             * return a tensor map.
             *
             * @doc {heading: 'Models', subheading: 'Classes'}
             */
            async executeAsync(inputs, outputs) {
                inputs = this.normalizeInputs(inputs);
                outputs = this.normalizeOutputs(outputs);
                const result = await this.executor.executeAsync(inputs, outputs);
                return result.length > 1 ? result : result[0];
            }
            /**
             * Get intermediate tensors for model debugging mode (flag
             * KEEP_INTERMEDIATE_TENSORS is true).
             *
             * @doc {heading: 'Models', subheading: 'Classes'}
             */
            getIntermediateTensors() {
                return this.executor.getIntermediateTensors();
            }
            /**
             * Dispose intermediate tensors for model debugging mode (flag
             * KEEP_INTERMEDIATE_TENSORS is true).
             *
             * @doc {heading: 'Models', subheading: 'Classes'}
             */
            disposeIntermediateTensors() {
                this.executor.disposeIntermediateTensors();
            }
            convertTensorMapToTensorsMap(map) {
                return Object.keys(map).reduce((newMap, key) => {
                    newMap[key] = [map[key]];
                    return newMap;
                }
                    , {});
            }
            /**
             * Releases the memory used by the weight tensors and resourceManager.
             *
             * @doc {heading: 'Models', subheading: 'Classes'}
             */
            dispose() {
                this.executor.dispose();
                if (this.initializer) {
                    this.initializer.dispose();
                }
                this.resourceManager.dispose();
            }
        }
        /**
         * Load a graph model given a URL to the model definition.
         *
         * Example of loading MobileNetV2 from a URL and making a prediction with a
         * zeros input:
         *
         * ```js
         * const modelUrl =
         *    'https://storage.googleapis.com/tfjs-models/savedmodel/mobilenet_v2_1.0_224/model.json';
         * const model = await tf.loadGraphModel(modelUrl);
         * const zeros = tf.zeros([1, 224, 224, 3]);
         * model.predict(zeros).print();
         * ```
         *
         * Example of loading MobileNetV2 from a TF Hub URL and making a prediction
         * with a zeros input:
         *
         * ```js
         * const modelUrl =
         *    'https://tfhub.dev/google/imagenet/mobilenet_v2_140_224/classification/2';
         * const model = await tf.loadGraphModel(modelUrl, {fromTFHub: true});
         * const zeros = tf.zeros([1, 224, 224, 3]);
         * model.predict(zeros).print();
         * ```
         * @param modelUrl The url or an `io.IOHandler` that loads the model.
         * @param options Options for the HTTP request, which allows to send
         *     credentials
         *    and custom headers.
         *
         * @doc {heading: 'Models', subheading: 'Loading'}
         */
        exports.GraphModel = GraphModel;
        async function loadGraphModel(modelUrl, options = {}, tfio = _tfjsCore.io) {
            if (modelUrl == null) {
                throw new Error('modelUrl in loadGraphModel() cannot be null. Please provide a url ' + 'or an IOHandler that loads the model');
            }
            if (options == null) {
                options = {};
            }
            if (options.fromTFHub && typeof modelUrl === 'string') {
                modelUrl = getTFHubUrl(modelUrl);
            }
            const model = new GraphModel(modelUrl, options, tfio);
            await model.load();
            return model;
        }
        /**
         * Load a graph model given a synchronous IO handler with a 'load' method.
         *
         * @param modelSource The `io.IOHandlerSync` that loads the model, or the
         *     `io.ModelArtifacts` that encode the model, or a tuple of
         *     `[io.ModelJSON, ArrayBuffer]` of which the first element encodes the
         *      model and the second contains the weights.
         *
         * @doc {heading: 'Models', subheading: 'Loading'}
         */
        function loadGraphModelSync(modelSource) {
            if (modelSource == null) {
                throw new Error('modelUrl in loadGraphModelSync() cannot be null. Please provide ' + 'model artifacts or an IOHandler that loads the model');
            }
            let ioHandler;
            if (modelSource instanceof Array) {
                const [modelJSON, weights] = modelSource;
                if (!modelJSON) {
                    throw new Error('modelJSON must be the first element of the array');
                }
                if (!weights || !(weights instanceof ArrayBuffer)) {
                    throw new Error('An ArrayBuffer of weights must be the second element of' + ' the array');
                }
                if (!('modelTopology' in modelJSON)) {
                    throw new Error('Model JSON is missing \'modelTopology\'');
                }
                if (!('weightsManifest' in modelJSON)) {
                    throw new Error('Model JSON is missing \'weightsManifest\'');
                }
                const weightSpecs = _tfjsCore.io.getWeightSpecs(modelJSON.weightsManifest);
                const modelArtifacts = _tfjsCore.io.getModelArtifactsForJSONSync(modelJSON, weightSpecs, weights);
                ioHandler = _tfjsCore.io.fromMemorySync(modelArtifacts);
            } else if ('load' in modelSource) {
                // Then modelSource is already an IOHandlerSync.
                ioHandler = modelSource;
            } else if ('modelTopology' in modelSource && 'weightSpecs' in modelSource && 'weightData' in modelSource) {
                // modelSource is of type ModelArtifacts.
                ioHandler = _tfjsCore.io.fromMemorySync(modelSource);
            } else {
                throw new Error('Unknown model format');
            }
            const model = new GraphModel(ioHandler);
            model.load();
            return model;
        }
        function getTFHubUrl(modelUrl) {
            if (!modelUrl.endsWith('/')) {
                modelUrl = modelUrl + '/';
            }
            return `${modelUrl}${DEFAULT_MODEL_NAME}${TFHUB_SEARCH_PARAM}`;
        }

    }
        , {
        "../operations/operation_mapper": 64,
        "./graph_executor": 12,
        "./resource_manager": 16,
        "@tensorflow/tfjs-core": 506
    }],
    14: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.HashTable = void 0;
        var _tfjsCore = require("@tensorflow/tfjs-core");
        var tfOps = _interopRequireWildcard(require("@tensorflow/tfjs-core/dist/ops/ops_for_converter"));
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        // tslint:disable-next-line: no-imports-from-dist

        /**
         * Hashtable contains a set of tensors, which can be accessed by key.
         */
        class HashTable {
            /**
             * Constructor of HashTable. Creates a hash table.
             *
             * @param keyDType `dtype` of the table keys.
             * @param valueDType `dtype` of the table values.
             */
            constructor(keyDType, valueDType) {
                this.keyDType = keyDType;
                this.valueDType = valueDType;
                this.handle = (0,
                    _tfjsCore.scalar)(0);
                // tslint:disable-next-line: no-any
                this.tensorMap = new Map();
                (0,
                    _tfjsCore.keep)(this.handle);
            }
            get id() {
                return this.handle.id;
            }
            /**
             * Dispose the tensors and handle and clear the hashtable.
             */
            clearAndClose() {
                this.tensorMap.forEach(value => value.dispose());
                this.tensorMap.clear();
                this.handle.dispose();
            }
            /**
             * The number of items in the hash table.
             */
            size() {
                return this.tensorMap.size;
            }
            /**
             * The number of items in the hash table as a rank-0 tensor.
             */
            tensorSize() {
                return tfOps.scalar(this.size(), 'int32');
            }
            /**
             * Replaces the contents of the table with the specified keys and values.
             * @param keys Keys to store in the hashtable.
             * @param values Values to store in the hashtable.
             */
            async import(keys, values) {
                this.checkKeyAndValueTensor(keys, values);
                // We only store the primitive values of the keys, this allows lookup
                // to be O(1).
                const $keys = await keys.data();
                // Clear the hashTable before inserting new values.
                this.tensorMap.forEach(value => value.dispose());
                this.tensorMap.clear();
                return (0,
                    _tfjsCore.tidy)(() => {
                        const $values = (0,
                            _tfjsCore.unstack)(values);
                        const keysLength = $keys.length;
                        const valuesLength = $values.length;
                        _tfjsCore.util.assert(keysLength === valuesLength, () => `The number of elements doesn't match, keys has ` + `${keysLength} elements, the values has ${valuesLength} ` + `elements.`);
                        for (let i = 0; i < keysLength; i++) {
                            const key = $keys[i];
                            const value = $values[i];
                            (0,
                                _tfjsCore.keep)(value);
                            this.tensorMap.set(key, value);
                        }
                        return this.handle;
                    }
                    );
            }
            /**
             * Looks up keys in a hash table, outputs the corresponding values.
             *
             * Performs batch lookups, for every element in the key tensor, `find`
             * stacks the corresponding value into the return tensor.
             *
             * If an element is not present in the table, the given `defaultValue` is
             * used.
             *
             * @param keys Keys to look up. Must have the same type as the keys of the
             *     table.
             * @param defaultValue The scalar `defaultValue` is the value output for keys
             *     not present in the table. It must also be of the same type as the
             *     table values.
             */
            async find(keys, defaultValue) {
                this.checkKeyAndValueTensor(keys, defaultValue);
                const $keys = await keys.data();
                return (0,
                    _tfjsCore.tidy)(() => {
                        const result = [];
                        for (let i = 0; i < $keys.length; i++) {
                            const key = $keys[i];
                            const value = this.findWithDefault(key, defaultValue);
                            result.push(value);
                        }
                        return (0,
                            _tfjsCore.stack)(result);
                    }
                    );
            }
            // tslint:disable-next-line: no-any
            findWithDefault(key, defaultValue) {
                const result = this.tensorMap.get(key);
                return result != null ? result : defaultValue;
            }
            checkKeyAndValueTensor(key, value) {
                if (key.dtype !== this.keyDType) {
                    throw new Error(`Expect key dtype ${this.keyDType}, but got ` + `${key.dtype}`);
                }
                if (value.dtype !== this.valueDType) {
                    throw new Error(`Expect value dtype ${this.valueDType}, but got ` + `${value.dtype}`);
                }
            }
        }
        exports.HashTable = HashTable;

    }
        , {
        "@tensorflow/tfjs-core": 506,
        "@tensorflow/tfjs-core/dist/ops/ops_for_converter": 374
    }],
    15: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.getExecutionSubgraph = getExecutionSubgraph;
        exports.getNodesInTopologicalOrder = getNodesInTopologicalOrder;
        exports.isControlFlow = isControlFlow;
        exports.isDynamicShape = isDynamicShape;
        exports.isHashTable = isHashTable;
        var _utils = require("../operations/executors/utils");
        /**
         * @license
         * Copyright 2019 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Given graph inputs and desired outputs, find the minimal set of nodes
         * to execute in order to compute the outputs. In addition return other useful
         * info such:
         * - Missing inputs needed to compute the output.
         * - Whether the subgraph contains dynamic ops (control flow, dynamic shape).
         * - Alternative inputs in order to avoid async (dynamic op) execution.
         */
        function getExecutionSubgraph(inputs, outputs, weightMap, initNodes) {
            const usedNodes = new Set();
            const missingInputs = [];
            let dynamicNode = null;
            let syncInputs = null;
            // Start with the outputs, going backwards and find all the nodes that are
            // needed to compute those outputs.
            const seen = new Set();
            const inputNodeNames = Object.keys(inputs).map(name => (0,
                _utils.parseNodeName)(name)[0]);
            let initNodeNames = [];
            if (initNodes != null) {
                initNodeNames = initNodes.map(node => (0,
                    _utils.parseNodeName)(node.name)[0]);
            }
            const frontier = [...outputs];
            while (frontier.length > 0) {
                const node = frontier.pop();
                if (isControlFlow(node) || isDynamicShape(node) || isHashTable(node)) {
                    if (dynamicNode == null) {
                        dynamicNode = node;
                        syncInputs = dynamicNode.children.map(child => child.name).filter(name => usedNodes.has(name));
                    }
                }
                usedNodes.add(node.name);
                // Weights are dead end since we already have their values.
                if (weightMap[node.name] != null) {
                    continue;
                }
                // This node is a dead end since it's one of the user-provided inputs.
                if (inputNodeNames.indexOf(node.name) !== -1) {
                    continue;
                }
                // This node is a dead end since it doesn't have any inputs.
                if (initNodeNames.indexOf(node.name) !== -1) {
                    continue;
                }
                if (node.inputs.length === 0) {
                    missingInputs.push(node.name);
                    continue;
                }
                node.inputs.forEach(input => {
                    // Don't add to the frontier if it is already there.
                    if (seen.has(input.name)) {
                        return;
                    }
                    seen.add(input.name);
                    frontier.push(input);
                }
                );
            }
            return {
                inputs,
                outputs,
                usedNodes,
                missingInputs,
                dynamicNode,
                syncInputs
            };
        }
        /**
         * Given the execution info, return a list of nodes in topological order that
         * need to be executed to compute the output.
         */
        function getNodesInTopologicalOrder(graph, weightMap, executionInfo) {
            const { usedNodes, inputs } = executionInfo;
            const frontier = [];
            const inputNodes = Object.keys(inputs).map(name => (0,
                _utils.parseNodeName)(name)[0]).map(name => graph.nodes[name]);
            const initNodes = graph.initNodes;
            inputNodes.forEach(input => {
                if (usedNodes.has(input.name)) {
                    frontier.push(input);
                }
            }
            );
            graph.weights.forEach(weight => {
                if (usedNodes.has(weight.name)) {
                    frontier.push(weight);
                }
            }
            );
            if (initNodes != null) {
                initNodes.forEach(node => {
                    if (usedNodes.has(node.name)) {
                        frontier.push(node);
                    }
                }
                );
            }
            const seen = new Set();
            const orderedNodes = [];
            while (frontier.length > 0) {
                const node = frontier.pop();
                seen.add(node.name);
                if (!weightMap[node.name]) {
                    orderedNodes.push(node);
                }
                node.children.forEach(child => {
                    if (!seen.has(child.name) && usedNodes.has(child.name) && child.inputs.every(input => seen.has(input.name))) {
                        frontier.push(child);
                    }
                }
                );
            }
            return orderedNodes;
        }
        const CONTROL_FLOW_OPS = ['Switch', 'Merge', 'Enter', 'Exit', 'NextIteration', 'StatelessIf', 'StatelessWhile', 'if', 'While'];
        const DYNAMIC_SHAPE_OPS = ['NonMaxSuppressionV2', 'NonMaxSuppressionV3', 'NonMaxSuppressionV5', 'Where'];
        const HASH_TABLE_OPS = ['HashTable', 'HashTableV2', 'LookupTableImport', 'LookupTableImportV2', 'LookupTableFind', 'LookupTableFindV2', 'LookupTableSize', 'LookupTableSizeV2'];
        function isControlFlow(node) {
            return CONTROL_FLOW_OPS.indexOf(node.op) >= 0;
        }
        function isDynamicShape(node) {
            return DYNAMIC_SHAPE_OPS.indexOf(node.op) >= 0;
        }
        function isHashTable(node) {
            return HASH_TABLE_OPS.indexOf(node.op) >= 0;
        }

    }
        , {
        "../operations/executors/utils": 43
    }],
    16: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.ResourceManager = void 0;
        /**
         * Contains global resources of a model.
         */
        class ResourceManager {
            constructor(hashTableNameToHandle = {}, hashTableMap = {}) {
                this.hashTableNameToHandle = hashTableNameToHandle;
                this.hashTableMap = hashTableMap;
            }
            /**
             * Register a `HashTable` in the resource manager.
             *
             * The `HashTable` can be retrieved by `resourceManager.getHashTableById`,
             * where id is the table handle tensor's id.
             *
             * @param name Op node name that creates the `HashTable`.
             * @param hashTable The `HashTable` to be added to resource manager.
             */
            addHashTable(name, hashTable) {
                this.hashTableNameToHandle[name] = hashTable.handle;
                this.hashTableMap[hashTable.id] = hashTable;
            }
            /**
             * Get the table handle by node name.
             * @param name Op node name that creates the `HashTable`. This name is also
             *     used in the inputs list of lookup and import `HashTable` ops.
             */
            getHashTableHandleByName(name) {
                return this.hashTableNameToHandle[name];
            }
            /**
             * Get the actual `HashTable` by its handle tensor's id.
             * @param id The id of the handle tensor.
             */
            getHashTableById(id) {
                return this.hashTableMap[id];
            }
            /**
             * Dispose `ResourceManager`, including its hashTables and tensors in them.
             */
            dispose() {
                for (const key in this.hashTableMap) {
                    this.hashTableMap[key].clearAndClose();
                    delete this.hashTableMap[key];
                }
                for (const name in this.hashTableNameToHandle) {
                    this.hashTableNameToHandle[name].dispose();
                    delete this.hashTableNameToHandle[name];
                }
            }
        }
        exports.ResourceManager = ResourceManager;

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

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.TensorArray = void 0;
        var _tfjsCore = require("@tensorflow/tfjs-core");
        var _tensor_utils = require("./tensor_utils");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * The TensorArray object keeps an array of Tensors.  It
         * allows reading from the array and writing to the array.
         */
        class TensorArray {
            constructor(name, dtype, maxSize, elementShape, identicalElementShapes, dynamicSize, clearAfterRead) {
                this.name = name;
                this.dtype = dtype;
                this.maxSize = maxSize;
                this.elementShape = elementShape;
                this.identicalElementShapes = identicalElementShapes;
                this.dynamicSize = dynamicSize;
                this.clearAfterRead = clearAfterRead;
                this.tensors = [];
                this.closed_ = false;
                this.idTensor = (0,
                    _tfjsCore.scalar)(0);
                (0,
                    _tfjsCore.keep)(this.idTensor);
            }
            get id() {
                return this.idTensor.id;
            }
            get closed() {
                return this.closed_;
            }
            /**
             * Dispose the tensors and idTensor and mark the TensoryArray as closed.
             */
            clearAndClose(keepIds) {
                this.tensors.forEach(tensor => {
                    if (keepIds == null || !keepIds.has(tensor.tensor.id)) {
                        tensor.tensor.dispose();
                    }
                }
                );
                this.tensors = [];
                this.closed_ = true;
                this.idTensor.dispose();
            }
            size() {
                return this.tensors.length;
            }
            /**
             * Read the value at location index in the TensorArray.
             * @param index Number the index to read from.
             */
            read(index) {
                if (this.closed_) {
                    throw new Error(`TensorArray ${this.name} has already been closed.`);
                }
                if (index < 0 || index >= this.size()) {
                    throw new Error(`Tried to read from index ${index}, but array size is: ${this.size()}`);
                }
                const tensorWithState = this.tensors[index];
                if (tensorWithState.cleared) {
                    throw new Error(`TensorArray ${this.name}: Could not read index ${index} twice because it was cleared after a previous read ` + `(perhaps try setting clear_after_read = false?).`);
                }
                if (this.clearAfterRead) {
                    tensorWithState.cleared = true;
                }
                tensorWithState.read = true;
                return tensorWithState.tensor;
            }
            /**
             * Helper method to read multiple tensors from the specified indices.
             */
            readMany(indices) {
                return indices.map(index => this.read(index));
            }
            /**
             * Write value into the index of the TensorArray.
             * @param index number the index to write to.
             * @param tensor
             */
            write(index, tensor) {
                if (this.closed_) {
                    throw new Error(`TensorArray ${this.name} has already been closed.`);
                }
                if (index < 0 || !this.dynamicSize && index >= this.maxSize) {
                    throw new Error(`Tried to write to index ${index}, but array is not resizeable and size is: ${this.maxSize}`);
                }
                const t = this.tensors[index] || {};
                if (tensor.dtype !== this.dtype) {
                    throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${index},
          because the value dtype is ${tensor.dtype}, but TensorArray dtype is ${this.dtype}.`);
                }
                // Set the shape for the first time write to unknow shape tensor array
                if (this.size() === 0 && (this.elementShape == null || this.elementShape.length === 0)) {
                    this.elementShape = tensor.shape;
                }
                (0,
                    _tensor_utils.assertShapesMatchAllowUndefinedSize)(this.elementShape, tensor.shape, `TensorArray ${this.name}: Could not write to TensorArray index ${index}.`);
                if (t.read) {
                    throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${index}, because it has already been read.`);
                }
                if (t.written) {
                    throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${index}, because it has already been written.`);
                }
                t.tensor = tensor;
                (0,
                    _tfjsCore.keep)(tensor);
                t.written = true;
                this.tensors[index] = t;
            }
            /**
             * Helper method to write multiple tensors to the specified indices.
             */
            writeMany(indices, tensors) {
                if (indices.length !== tensors.length) {
                    throw new Error(`TensorArray ${this.name}: could not write multiple tensors,` + `because the index size: ${indices.length} is not the same as tensors size: ${tensors.length}.`);
                }
                indices.forEach((i, index) => this.write(i, tensors[index]));
            }
            /**
             * Return selected values in the TensorArray as a packed Tensor. All of
             * selected values must have been written and their shapes must all match.
             * @param [indices] number[] Optional. Taking values in [0, max_value). If the
             *    TensorArray is not dynamic, max_value=size(). If not specified returns
             *    all tensors in the original order.
             * @param [dtype]
             */
            gather(indices, dtype) {
                if (!!dtype && dtype !== this.dtype) {
                    throw new Error(`TensorArray dtype is ${this.dtype} but gather requested dtype ${dtype}`);
                }
                if (!indices) {
                    indices = [];
                    for (let i = 0; i < this.size(); i++) {
                        indices.push(i);
                    }
                } else {
                    indices = indices.slice(0, this.size());
                }
                if (indices.length === 0) {
                    return (0,
                        _tfjsCore.tensor)([], [0].concat(this.elementShape));
                }
                // Read all the PersistentTensors into a vector to keep track of
                // their memory.
                const tensors = this.readMany(indices);
                (0,
                    _tensor_utils.assertShapesMatchAllowUndefinedSize)(this.elementShape, tensors[0].shape, 'TensorArray shape mismatch: ');
                return (0,
                    _tfjsCore.stack)(tensors, 0);
            }
            /**
             * Return the values in the TensorArray as a concatenated Tensor.
             */
            concat(dtype) {
                if (!!dtype && dtype !== this.dtype) {
                    throw new Error(`TensorArray dtype is ${this.dtype} but concat requested dtype ${dtype}`);
                }
                if (this.size() === 0) {
                    return (0,
                        _tfjsCore.tensor)([], [0].concat(this.elementShape));
                }
                const indices = [];
                for (let i = 0; i < this.size(); i++) {
                    indices.push(i);
                }
                // Collect all the tensors from the tensors array.
                const tensors = this.readMany(indices);
                (0,
                    _tensor_utils.assertShapesMatchAllowUndefinedSize)(this.elementShape, tensors[0].shape, `TensorArray shape mismatch: tensor array shape (${this.elementShape}) vs first tensor shape (${tensors[0].shape})`);
                return (0,
                    _tfjsCore.concat)(tensors, 0);
            }
            /**
             * Scatter the values of a Tensor in specific indices of a TensorArray.
             * @param indices nummber[] values in [0, max_value). If the
             *    TensorArray is not dynamic, max_value=size().
             * @param tensor Tensor input tensor.
             */
            scatter(indices, tensor) {
                if (tensor.dtype !== this.dtype) {
                    throw new Error(`TensorArray dtype is ${this.dtype} but tensor has dtype ${tensor.dtype}`);
                }
                if (indices.length !== tensor.shape[0]) {
                    throw new Error(`Expected len(indices) == tensor.shape[0], but saw: ${indices.length} vs. ${tensor.shape[0]}`);
                }
                const maxIndex = Math.max(...indices);
                if (!this.dynamicSize && maxIndex >= this.maxSize) {
                    throw new Error(`Max index must be < array size (${maxIndex}  vs. ${this.maxSize})`);
                }
                this.writeMany(indices, (0,
                    _tfjsCore.unstack)(tensor, 0));
            }
            /**
             * Split the values of a Tensor into the TensorArray.
             * @param length number[] with the lengths to use when splitting value along
             *    its first dimension.
             * @param tensor Tensor, the tensor to split.
             */
            split(length, tensor) {
                if (tensor.dtype !== this.dtype) {
                    throw new Error(`TensorArray dtype is ${this.dtype} but tensor has dtype ${tensor.dtype}`);
                }
                let totalLength = 0;
                const cumulativeLengths = length.map(len => {
                    totalLength += len;
                    return totalLength;
                }
                );
                if (totalLength !== tensor.shape[0]) {
                    throw new Error(`Expected sum of lengths to be equal to
          tensor.shape[0], but sum of lengths is
        ${totalLength}, and tensor's shape is: ${tensor.shape}`);
                }
                if (!this.dynamicSize && length.length !== this.maxSize) {
                    throw new Error(`TensorArray's size is not equal to the size of lengths (${this.maxSize} vs. ${length.length}), ` + 'and the TensorArray is not marked as dynamically resizeable');
                }
                const elementPerRow = totalLength === 0 ? 0 : tensor.size / totalLength;
                const tensors = [];
                (0,
                    _tfjsCore.tidy)(() => {
                        tensor = (0,
                            _tfjsCore.reshape)(tensor, [1, totalLength, elementPerRow]);
                        for (let i = 0; i < length.length; ++i) {
                            const previousLength = i === 0 ? 0 : cumulativeLengths[i - 1];
                            const indices = [0, previousLength, 0];
                            const sizes = [1, length[i], elementPerRow];
                            tensors[i] = (0,
                                _tfjsCore.reshape)((0,
                                    _tfjsCore.slice)(tensor, indices, sizes), this.elementShape);
                        }
                        return tensors;
                    }
                    );
                const indices = [];
                for (let i = 0; i < length.length; i++) {
                    indices[i] = i;
                }
                this.writeMany(indices, tensors);
            }
        }
        exports.TensorArray = TensorArray;

    }
        , {
        "./tensor_utils": 19,
        "@tensorflow/tfjs-core": 506
    }],
    18: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.TensorList = void 0;
        exports.fromTensor = fromTensor;
        exports.reserve = reserve;
        exports.scatter = scatter;
        exports.split = split;
        var _tfjsCore = require("@tensorflow/tfjs-core");
        var _tensor_utils = require("./tensor_utils");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * TensorList stores a container of `tf.Tensor` objects, which are accessible
         * via tensors field.
         *
         * In order to get a copy of the underlying list, use the copy method:
         * ```
         *    TensorList b = a.copy();
         *    b.tensors().pushBack(t);  // This does not modify a.tensors().
         * ```
         *
         * Note that this is not a deep copy: the memory locations of the underlying
         * tensors will still point to the same locations of the corresponding tensors
         * in the original.
         */
        class TensorList {
            /**
             *
             * @param tensors list of tensors
             * @param elementShape shape of each tensor, this can be a single number (any
             * shape is allowed) or partial shape (dim = -1).
             * @param elementDtype data type of each tensor
             * @param maxNumElements The maximum allowed size of `tensors`. Defaults to -1
             *   meaning that the size of `tensors` is unbounded.
             */
            constructor(tensors, elementShape, elementDtype, maxNumElements = -1) {
                this.tensors = tensors;
                this.elementShape = elementShape;
                this.elementDtype = elementDtype;
                if (tensors != null) {
                    tensors.forEach(tensor => {
                        if (elementDtype !== tensor.dtype) {
                            throw new Error(`Invalid data types; op elements ${elementDtype}, but list elements ${tensor.dtype}`);
                        }
                        (0,
                            _tensor_utils.assertShapesMatchAllowUndefinedSize)(elementShape, tensor.shape, 'TensorList shape mismatch: ');
                        (0,
                            _tfjsCore.keep)(tensor);
                    }
                    );
                }
                this.idTensor = (0,
                    _tfjsCore.scalar)(0);
                this.maxNumElements = maxNumElements;
                (0,
                    _tfjsCore.keep)(this.idTensor);
            }
            get id() {
                return this.idTensor.id;
            }
            /**
             * Get a new TensorList containing a copy of the underlying tensor container.
             */
            copy() {
                return new TensorList([...this.tensors], this.elementShape, this.elementDtype);
            }
            /**
             * Dispose the tensors and idTensor and clear the tensor list.
             */
            clearAndClose(keepIds) {
                this.tensors.forEach(tensor => {
                    if (keepIds == null || !keepIds.has(tensor.id)) {
                        tensor.dispose();
                    }
                }
                );
                this.tensors.length = 0;
                this.idTensor.dispose();
            }
            /**
             * The size of the tensors in the tensor list.
             */
            size() {
                return this.tensors.length;
            }
            /**
             * Return a tensor that stacks a list of rank-R tf.Tensors into one rank-(R+1)
             * tf.Tensor.
             * @param elementShape shape of each tensor
             * @param elementDtype data type of each tensor
             * @param numElements the number of elements to stack
             */
            stack(elementShape, elementDtype, numElements = -1) {
                if (elementDtype !== this.elementDtype) {
                    throw new Error(`Invalid data types; op elements ${elementDtype}, but list elements ${this.elementDtype}`);
                }
                if (numElements !== -1 && this.tensors.length !== numElements) {
                    throw new Error(`Operation expected a list with ${numElements} elements but got a list with ${this.tensors.length} elements.`);
                }
                (0,
                    _tensor_utils.assertShapesMatchAllowUndefinedSize)(elementShape, this.elementShape, 'TensorList shape mismatch: ');
                const outputElementShape = (0,
                    _tensor_utils.inferElementShape)(this.elementShape, this.tensors, elementShape);
                return (0,
                    _tfjsCore.tidy)(() => {
                        const reshapedTensors = this.tensors.map(tensor => (0,
                            _tfjsCore.reshape)(tensor, outputElementShape));
                        return (0,
                            _tfjsCore.stack)(reshapedTensors, 0);
                    }
                    );
            }
            /**
             * Pop a tensor from the end of the list.
             * @param elementShape shape of the tensor
             * @param elementDtype data type of the tensor
             */
            popBack(elementShape, elementDtype) {
                if (elementDtype !== this.elementDtype) {
                    throw new Error(`Invalid data types; op elements ${elementDtype}, but list elements ${this.elementDtype}`);
                }
                if (this.size() === 0) {
                    throw new Error('Trying to pop from an empty list.');
                }
                const outputElementShape = (0,
                    _tensor_utils.inferElementShape)(this.elementShape, this.tensors, elementShape);
                const tensor = this.tensors.pop();
                tensor.kept = false;
                (0,
                    _tensor_utils.assertShapesMatchAllowUndefinedSize)(tensor.shape, elementShape, 'TensorList shape mismatch: ');
                return (0,
                    _tfjsCore.reshape)(tensor, outputElementShape);
            }
            /**
             * Push a tensor to the end of the list.
             * @param tensor Tensor to be pushed.
             */
            pushBack(tensor) {
                if (tensor.dtype !== this.elementDtype) {
                    throw new Error(`Invalid data types; op elements ${tensor.dtype}, but list elements ${this.elementDtype}`);
                }
                (0,
                    _tensor_utils.assertShapesMatchAllowUndefinedSize)(tensor.shape, this.elementShape, 'TensorList shape mismatch: ');
                if (this.maxNumElements === this.size()) {
                    throw new Error(`Trying to push element into a full list.`);
                }
                (0,
                    _tfjsCore.keep)(tensor);
                this.tensors.push(tensor);
            }
            /**
             * Update the size of the list.
             * @param size the new size of the list.
             */
            resize(size) {
                if (size < 0) {
                    throw new Error(`TensorListResize expects size to be non-negative. Got: ${size}`);
                }
                if (this.maxNumElements !== -1 && size > this.maxNumElements) {
                    throw new Error(`TensorListResize input size ${size} is greater maxNumElement ${this.maxNumElements}.`);
                }
                const destTensorList = new TensorList([], this.elementShape, this.elementDtype, this.maxNumElements);
                destTensorList.tensors.length = size;
                for (let i = 0; i < Math.min(this.tensors.length, size); ++i) {
                    destTensorList.tensors[i] = this.tensors[i];
                }
                return destTensorList;
            }
            /**
             * Retrieve the element at the provided index
             * @param elementShape shape of the tensor
             * @param elementDtype dtype of the tensor
             * @param elementIndex index of the tensor
             */
            getItem(elementIndex, elementShape, elementDtype) {
                if (elementDtype !== this.elementDtype) {
                    throw new Error(`Invalid data types; op elements ${elementDtype}, but list elements ${this.elementDtype}`);
                }
                if (elementIndex < 0 || elementIndex > this.tensors.length) {
                    throw new Error(`Trying to access element ${elementIndex} in a list with ${this.tensors.length} elements.`);
                }
                if (this.tensors[elementIndex] == null) {
                    throw new Error(`element at index ${elementIndex} is null.`);
                }
                (0,
                    _tensor_utils.assertShapesMatchAllowUndefinedSize)(this.tensors[elementIndex].shape, elementShape, 'TensorList shape mismatch: ');
                const outputElementShape = (0,
                    _tensor_utils.inferElementShape)(this.elementShape, this.tensors, elementShape);
                return (0,
                    _tfjsCore.reshape)(this.tensors[elementIndex], outputElementShape);
            }
            /**
             * Set the tensor at the index
             * @param elementIndex index of the tensor
             * @param tensor the tensor to be inserted into the list
             */
            setItem(elementIndex, tensor) {
                if (tensor.dtype !== this.elementDtype) {
                    throw new Error(`Invalid data types; op elements ${tensor.dtype}, but list elements ${this.elementDtype}`);
                }
                if (elementIndex < 0 || this.maxNumElements !== -1 && elementIndex >= this.maxNumElements) {
                    throw new Error(`Trying to set element ${elementIndex} in a list with max ${this.maxNumElements} elements.`);
                }
                (0,
                    _tensor_utils.assertShapesMatchAllowUndefinedSize)(this.elementShape, tensor.shape, 'TensorList shape mismatch: ');
                (0,
                    _tfjsCore.keep)(tensor);
                // dispose the previous value if it is replacing.
                if (this.tensors[elementIndex] != null) {
                    this.tensors[elementIndex].kept = false;
                }
                this.tensors[elementIndex] = tensor;
            }
            /**
             * Return selected values in the TensorList as a stacked Tensor. All of
             * selected values must have been written and their shapes must all match.
             * @param indices indices of tensors to gather
             * @param elementDtype output tensor dtype
             * @param elementShape output tensor element shape
             */
            gather(indices, elementDtype, elementShape) {
                if (elementDtype !== this.elementDtype) {
                    throw new Error(`Invalid data types; op elements ${elementDtype}, but list elements ${this.elementDtype}`);
                }
                (0,
                    _tensor_utils.assertShapesMatchAllowUndefinedSize)(this.elementShape, elementShape, 'TensorList shape mismatch: ');
                // When indices is greater than the size of the list, indices beyond the
                // size of the list are ignored.
                indices = indices.slice(0, this.size());
                const outputElementShape = (0,
                    _tensor_utils.inferElementShape)(this.elementShape, this.tensors, elementShape);
                if (indices.length === 0) {
                    return (0,
                        _tfjsCore.tensor)([], [0].concat(outputElementShape));
                }
                return (0,
                    _tfjsCore.tidy)(() => {
                        const tensors = indices.map(i => (0,
                            _tfjsCore.reshape)(this.tensors[i], outputElementShape));
                        return (0,
                            _tfjsCore.stack)(tensors, 0);
                    }
                    );
            }
            /**
             * Return the values in the TensorList as a concatenated Tensor.
             * @param elementDtype output tensor dtype
             * @param elementShape output tensor element shape
             */
            concat(elementDtype, elementShape) {
                if (!!elementDtype && elementDtype !== this.elementDtype) {
                    throw new Error(`TensorList dtype is ${this.elementDtype} but concat requested dtype ${elementDtype}`);
                }
                (0,
                    _tensor_utils.assertShapesMatchAllowUndefinedSize)(this.elementShape, elementShape, 'TensorList shape mismatch: ');
                const outputElementShape = (0,
                    _tensor_utils.inferElementShape)(this.elementShape, this.tensors, elementShape);
                if (this.size() === 0) {
                    return (0,
                        _tfjsCore.tensor)([], [0].concat(outputElementShape));
                }
                return (0,
                    _tfjsCore.tidy)(() => {
                        const tensors = this.tensors.map(t => (0,
                            _tfjsCore.reshape)(t, outputElementShape));
                        return (0,
                            _tfjsCore.concat)(tensors, 0);
                    }
                    );
            }
        }
        /**
         * Creates a TensorList which, when stacked, has the value of tensor.
         * @param tensor from tensor
         * @param elementShape output tensor element shape
         */
        exports.TensorList = TensorList;
        function fromTensor(tensor, elementShape, elementDtype) {
            const dtype = tensor.dtype;
            if (tensor.shape.length < 1) {
                throw new Error(`Tensor must be at least a vector, but saw shape: ${tensor.shape}`);
            }
            if (tensor.dtype !== elementDtype) {
                throw new Error(`Invalid data types; op elements ${tensor.dtype}, but list elements ${elementDtype}`);
            }
            const tensorElementShape = tensor.shape.slice(1);
            (0,
                _tensor_utils.assertShapesMatchAllowUndefinedSize)(tensorElementShape, elementShape, 'TensorList shape mismatch: ');
            const tensorList = (0,
                _tfjsCore.unstack)(tensor);
            return new TensorList(tensorList, elementShape, dtype);
        }
        /**
         * Return a TensorList of the given size with empty elements.
         * @param elementShape the shape of the future elements of the list
         * @param elementDtype the desired type of elements in the list
         * @param numElements the number of elements to reserve
         * @param maxNumElements the maximum number of elements in th list
         */
        function reserve(elementShape, elementDtype, numElements, maxNumElements) {
            return new TensorList([], elementShape, elementDtype, maxNumElements);
        }
        /**
         * Put tensors at specific indices of a stacked tensor into a TensorList.
         * @param indices list of indices on how to scatter the tensor.
         * @param tensor input tensor.
         * @param elementShape the shape of the future elements of the list
         * @param numElements the number of elements to scatter
         */
        function scatter(tensor, indices, elementShape, numElements) {
            if (indices.length !== tensor.shape[0]) {
                throw new Error(`Expected len(indices) == tensor.shape[0], but saw: ${indices.length} vs. ${tensor.shape[0]}`);
            }
            const maxIndex = Math.max(...indices);
            if (numElements != null && numElements !== -1 && maxIndex >= numElements) {
                throw new Error(`Max index must be < array size (${maxIndex}  vs. ${numElements})`);
            }
            const list = new TensorList([], elementShape, tensor.dtype, numElements);
            const tensors = (0,
                _tfjsCore.unstack)(tensor, 0);
            indices.forEach((value, index) => {
                list.setItem(value, tensors[index]);
            }
            );
            return list;
        }
        /**
         * Split the values of a Tensor into a TensorList.
         * @param length the lengths to use when splitting value along
         *    its first dimension.
         * @param tensor the tensor to split.
         * @param elementShape the shape of the future elements of the list
         */
        function split(tensor, length, elementShape) {
            let totalLength = 0;
            const cumulativeLengths = length.map(len => {
                totalLength += len;
                return totalLength;
            }
            );
            if (totalLength !== tensor.shape[0]) {
                throw new Error(`Expected sum of lengths to be equal to
          tensor.shape[0], but sum of lengths is
        ${totalLength}, and tensor's shape is: ${tensor.shape}`);
            }
            const shapeWithoutFirstDim = tensor.shape.slice(1);
            const outputElementShape = (0,
                _tensor_utils.mergeElementShape)(shapeWithoutFirstDim, elementShape);
            const elementPerRow = totalLength === 0 ? 0 : tensor.size / totalLength;
            const tensors = (0,
                _tfjsCore.tidy)(() => {
                    const tensors = [];
                    tensor = (0,
                        _tfjsCore.reshape)(tensor, [1, totalLength, elementPerRow]);
                    for (let i = 0; i < length.length; ++i) {
                        const previousLength = i === 0 ? 0 : cumulativeLengths[i - 1];
                        const indices = [0, previousLength, 0];
                        const sizes = [1, length[i], elementPerRow];
                        tensors[i] = (0,
                            _tfjsCore.reshape)((0,
                                _tfjsCore.slice)(tensor, indices, sizes), outputElementShape);
                    }
                    tensor.dispose();
                    return tensors;
                }
                );
            const list = new TensorList([], elementShape, tensor.dtype, length.length);
            for (let i = 0; i < tensors.length; i++) {
                list.setItem(i, tensors[i]);
            }
            return list;
        }

    }
        , {
        "./tensor_utils": 19,
        "@tensorflow/tfjs-core": 506
    }],
    19: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.assertShapesMatchAllowUndefinedSize = assertShapesMatchAllowUndefinedSize;
        exports.fullDefinedShape = fullDefinedShape;
        exports.inferElementShape = inferElementShape;
        exports.mergeElementShape = mergeElementShape;
        var _tfjsCore = require("@tensorflow/tfjs-core");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        /**
         * This differs from util.assertShapesMatch in that it allows values of
         * negative one, an undefined size of a dimensinon, in a shape to match
         * anything.
         */

        /**
         * Used by TensorList and TensorArray to verify if elementShape matches, support
         * negative value as the dim shape.
         * @param shapeA
         * @param shapeB
         * @param errorMessagePrefix
         */
        function assertShapesMatchAllowUndefinedSize(shapeA, shapeB, errorMessagePrefix = '') {
            // constant shape means unknown rank
            if (typeof shapeA === 'number' || typeof shapeB === 'number') {
                return;
            }
            _tfjsCore.util.assert(shapeA.length === shapeB.length, () => errorMessagePrefix + ` Shapes ${shapeA} and ${shapeB} must match`);
            for (let i = 0; i < shapeA.length; i++) {
                const dim0 = shapeA[i];
                const dim1 = shapeB[i];
                _tfjsCore.util.assert(dim0 < 0 || dim1 < 0 || dim0 === dim1, () => errorMessagePrefix + ` Shapes ${shapeA} and ${shapeB} must match`);
            }
        }
        function fullDefinedShape(elementShape) {
            if (typeof elementShape === 'number' || elementShape.some(dim => dim < 0)) {
                return false;
            }
            return true;
        }
        /**
         * Generate the output element shape from the list elementShape, list tensors
         * and input param.
         * @param listElementShape
         * @param tensors
         * @param elementShape
         */
        function inferElementShape(listElementShape, tensors, elementShape) {
            let partialShape = mergeElementShape(listElementShape, elementShape);
            const notfullDefinedShape = !fullDefinedShape(partialShape);
            if (notfullDefinedShape && tensors.length === 0) {
                throw new Error(`Tried to calculate elements of an empty list` + ` with non-fully-defined elementShape: ${partialShape}`);
            }
            if (notfullDefinedShape) {
                tensors.forEach(tensor => {
                    partialShape = mergeElementShape(tensor.shape, partialShape);
                }
                );
            }
            if (!fullDefinedShape(partialShape)) {
                throw new Error(`Non-fully-defined elementShape: ${partialShape}`);
            }
            return partialShape;
        }
        function mergeElementShape(elementShapeA, elementShapeB) {
            if (typeof elementShapeA === 'number') {
                return elementShapeB;
            }
            if (typeof elementShapeB === 'number') {
                return elementShapeA;
            }
            if (elementShapeA.length !== elementShapeB.length) {
                throw new Error(`Incompatible ranks during merge: ${elementShapeA} vs. ${elementShapeB}`);
            }
            const result = [];
            for (let i = 0; i < elementShapeA.length; ++i) {
                const dim0 = elementShapeA[i];
                const dim1 = elementShapeB[i];
                if (dim0 >= 0 && dim1 >= 0 && dim0 !== dim1) {
                    throw new Error(`Incompatible shape during merge: ${elementShapeA} vs. ${elementShapeB}`);
                }
                result[i] = dim0 >= 0 ? dim0 : dim1;
            }
            return result;
        }

    }
        , {
        "@tensorflow/tfjs-core": 506
    }],
    20: [function (require, module, exports) {
        "use strict";

        var _tfjsCore = require("@tensorflow/tfjs-core");
        /**
         * @license
         * Copyright 2021 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const ENV = (0,
            _tfjsCore.env)();
        /** Whether to keep intermediate tensors. */
        ENV.registerFlag('KEEP_INTERMEDIATE_TENSORS', () => false, debugValue => {
            if (debugValue) {
                console.warn('Keep intermediate tensors is ON. This will print the values of all ' + 'intermediate tensors during model inference. Not all models ' + 'support this mode. For details, check e2e/benchmarks/ ' + 'model_config.js. This significantly impacts performance.');
            }
        }
        );

    }
        , {
        "@tensorflow/tfjs-core": 506
    }],
    21: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        Object.defineProperty(exports, "GraphModel", {
            enumerable: true,
            get: function () {
                return _graph_model.GraphModel;
            }
        });
        Object.defineProperty(exports, "deregisterOp", {
            enumerable: true,
            get: function () {
                return _register.deregisterOp;
            }
        });
        Object.defineProperty(exports, "loadGraphModel", {
            enumerable: true,
            get: function () {
                return _graph_model.loadGraphModel;
            }
        });
        Object.defineProperty(exports, "loadGraphModelSync", {
            enumerable: true,
            get: function () {
                return _graph_model.loadGraphModelSync;
            }
        });
        Object.defineProperty(exports, "registerOp", {
            enumerable: true,
            get: function () {
                return _register.registerOp;
            }
        });
        Object.defineProperty(exports, "version_converter", {
            enumerable: true,
            get: function () {
                return _version.version;
            }
        });
        require("./flags");
        var _graph_model = require("./executor/graph_model");
        var _register = require("./operations/custom_op/register");
        var _version = require("./version");

    }
        , {
        "./executor/graph_model": 13,
        "./flags": 20,
        "./operations/custom_op/register": 23,
        "./version": 65
    }],
    22: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.NodeValueImpl = void 0;
        var _utils = require("../executors/utils");
        var _operation_mapper = require("../operation_mapper");
        /**
         * @license
         * Copyright 2019 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Helper class for lookup inputs and params for nodes in the model graph.
         */
        class NodeValueImpl {
            constructor(node, tensorMap, context) {
                this.node = node;
                this.tensorMap = tensorMap;
                this.context = context;
                this.inputs = [];
                this.attrs = {};
                this.inputs = node.inputNames.map(name => this.getInput(name));
                if (node.rawAttrs != null) {
                    this.attrs = Object.keys(node.rawAttrs).reduce((attrs, key) => {
                        attrs[key] = this.getAttr(key);
                        return attrs;
                    }
                        , {});
                }
            }
            /**
             * Return the value of the attribute or input param.
             * @param name String: name of attribute or input param.
             */
            getInput(name) {
                return (0,
                    _utils.getTensor)(name, this.tensorMap, this.context);
            }
            /**
             * Return the value of the attribute or input param.
             * @param name String: name of attribute or input param.
             */
            getAttr(name, defaultValue) {
                const value = this.node.rawAttrs[name];
                if (value.tensor != null) {
                    return (0,
                        _utils.getTensor)(name, this.tensorMap, this.context);
                }
                if (value.i != null || value.f != null) {
                    return (0,
                        _operation_mapper.getNumberParam)(this.node.rawAttrs, name, defaultValue);
                }
                if (value.s != null) {
                    return (0,
                        _operation_mapper.getStringParam)(this.node.rawAttrs, name, defaultValue);
                }
                if (value.b != null) {
                    return (0,
                        _operation_mapper.getBoolParam)(this.node.rawAttrs, name, defaultValue);
                }
                if (value.shape != null) {
                    return (0,
                        _operation_mapper.getTensorShapeParam)(this.node.rawAttrs, name, defaultValue);
                }
                if (value.type != null) {
                    return (0,
                        _operation_mapper.getDtypeParam)(this.node.rawAttrs, name, defaultValue);
                }
                if (value.list != null) {
                    if (value.list.i != null || value.list.f != null) {
                        return (0,
                            _operation_mapper.getNumericArrayParam)(this.node.rawAttrs, name, defaultValue);
                    }
                    if (value.list.s != null) {
                        return (0,
                            _operation_mapper.getStringArrayParam)(this.node.rawAttrs, name, defaultValue);
                    }
                    if (value.list.shape != null) {
                        return (0,
                            _operation_mapper.getTensorShapeArrayParam)(this.node.rawAttrs, name, defaultValue);
                    }
                    if (value.list.b != null) {
                        return (0,
                            _operation_mapper.getBoolArrayParam)(this.node.rawAttrs, name, defaultValue);
                    }
                    if (value.list.type != null) {
                        return (0,
                            _operation_mapper.getDtypeArrayParam)(this.node.rawAttrs, name, defaultValue);
                    }
                }
                return defaultValue;
            }
        }
        exports.NodeValueImpl = NodeValueImpl;

    }
        , {
        "../executors/utils": 43,
        "../operation_mapper": 64
    }],
    23: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.deregisterOp = deregisterOp;
        exports.getRegisteredOp = getRegisteredOp;
        exports.registerOp = registerOp;
        /**
         * @license
         * Copyright 2019 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        const CUSTOM_OPS = {};
        /**
         * Register an Op for graph model executor. This allows you to register
         * TensorFlow custom op or override existing op.
         *
         * Here is an example of registering a new MatMul Op.
         * ```js
         * const customMatmul = (node) =>
         *    tf.matMul(
         *        node.inputs[0], node.inputs[1],
         *        node.attrs['transpose_a'], node.attrs['transpose_b']);
         *
         * tf.registerOp('MatMul', customMatmul);
         * ```
         * The inputs and attrs of the node object are based on the TensorFlow op
         * registry.
         *
         * @param name The Tensorflow Op name.
         * @param opFunc An op function which is called with the current graph node
         * during execution and needs to return a tensor or a list of tensors. The node
         * has the following attributes:
         *    - attr: A map from attribute name to its value
         *    - inputs: A list of input tensors
         *
         * @doc {heading: 'Models', subheading: 'Op Registry'}
         */
        function registerOp(name, opFunc) {
            const opMapper = {
                tfOpName: name,
                category: 'custom',
                inputs: [],
                attrs: [],
                customExecutor: opFunc
            };
            CUSTOM_OPS[name] = opMapper;
        }
        /**
         * Retrieve the OpMapper object for the registered op.
         *
         * @param name The Tensorflow Op name.
         *
         * @doc {heading: 'Models', subheading: 'Op Registry'}
         */
        function getRegisteredOp(name) {
            return CUSTOM_OPS[name];
        }
        /**
         * Deregister the Op for graph model executor.
         *
         * @param name The Tensorflow Op name.
         *
         * @doc {heading: 'Models', subheading: 'Op Registry'}
         */
        function deregisterOp(name) {
            delete CUSTOM_OPS[name];
        }

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

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.executeOp = exports.CATEGORY = void 0;
        var tfOps = _interopRequireWildcard(require("@tensorflow/tfjs-core/dist/ops/ops_for_converter"));
        var _utils = require("./utils");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        // tslint:disable-next-line: no-imports-from-dist

        const executeOp = (node, tensorMap, context, ops = tfOps) => {
            switch (node.op) {
                case 'BiasAdd':
                case 'AddV2':
                case 'Add':
                    {
                        return [ops.add((0,
                            _utils.getParamValue)('a', node, tensorMap, context), (0,
                                _utils.getParamValue)('b', node, tensorMap, context))];
                    }
                case 'AddN':
                    {
                        return [ops.addN((0,
                            _utils.getParamValue)('tensors', node, tensorMap, context))];
                    }
                case 'FloorMod':
                case 'Mod':
                    return [ops.mod((0,
                        _utils.getParamValue)('a', node, tensorMap, context), (0,
                            _utils.getParamValue)('b', node, tensorMap, context))];
                case 'Mul':
                    return [ops.mul((0,
                        _utils.getParamValue)('a', node, tensorMap, context), (0,
                            _utils.getParamValue)('b', node, tensorMap, context))];
                case 'RealDiv':
                case 'Div':
                    {
                        return [ops.div((0,
                            _utils.getParamValue)('a', node, tensorMap, context), (0,
                                _utils.getParamValue)('b', node, tensorMap, context))];
                    }
                case 'DivNoNan':
                    {
                        return [ops.divNoNan((0,
                            _utils.getParamValue)('a', node, tensorMap, context), (0,
                                _utils.getParamValue)('b', node, tensorMap, context))];
                    }
                case 'FloorDiv':
                    {
                        return [ops.floorDiv((0,
                            _utils.getParamValue)('a', node, tensorMap, context), (0,
                                _utils.getParamValue)('b', node, tensorMap, context))];
                    }
                case 'Sub':
                    {
                        return [ops.sub((0,
                            _utils.getParamValue)('a', node, tensorMap, context), (0,
                                _utils.getParamValue)('b', node, tensorMap, context))];
                    }
                case 'Minimum':
                    {
                        return [ops.minimum((0,
                            _utils.getParamValue)('a', node, tensorMap, context), (0,
                                _utils.getParamValue)('b', node, tensorMap, context))];
                    }
                case 'Maximum':
                    {
                        return [ops.maximum((0,
                            _utils.getParamValue)('a', node, tensorMap, context), (0,
                                _utils.getParamValue)('b', node, tensorMap, context))];
                    }
                case 'Pow':
                    {
                        return [ops.pow((0,
                            _utils.getParamValue)('a', node, tensorMap, context), (0,
                                _utils.getParamValue)('b', node, tensorMap, context))];
                    }
                case 'SquaredDifference':
                    {
                        return [ops.squaredDifference((0,
                            _utils.getParamValue)('a', node, tensorMap, context), (0,
                                _utils.getParamValue)('b', node, tensorMap, context))];
                    }
                default:
                    throw TypeError(`Node type ${node.op} is not implemented`);
            }
        };
        exports.executeOp = executeOp;
        const CATEGORY = 'arithmetic';
        exports.CATEGORY = CATEGORY;

    }
        , {
        "./utils": 43,
        "@tensorflow/tfjs-core/dist/ops/ops_for_converter": 374
    }],
    25: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.executeOp = exports.CATEGORY = void 0;
        var tfOps = _interopRequireWildcard(require("@tensorflow/tfjs-core/dist/ops/ops_for_converter"));
        var _utils = require("./utils");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        // tslint:disable-next-line: no-imports-from-dist

        const executeOp = (node, tensorMap, context, ops = tfOps) => {
            switch (node.op) {
                case 'Abs':
                case 'ComplexAbs':
                    return [ops.abs((0,
                        _utils.getParamValue)('x', node, tensorMap, context))];
                case 'Acos':
                    return [ops.acos((0,
                        _utils.getParamValue)('x', node, tensorMap, context))];
                case 'Acosh':
                    return [ops.acosh((0,
                        _utils.getParamValue)('x', node, tensorMap, context))];
                case 'Asin':
                    return [ops.asin((0,
                        _utils.getParamValue)('x', node, tensorMap, context))];
                case 'Asinh':
                    return [ops.asinh((0,
                        _utils.getParamValue)('x', node, tensorMap, context))];
                case 'Atan':
                    return [ops.atan((0,
                        _utils.getParamValue)('x', node, tensorMap, context))];
                case 'Atan2':
                    return [ops.atan2((0,
                        _utils.getParamValue)('x', node, tensorMap, context), (0,
                            _utils.getParamValue)('y', node, tensorMap, context))];
                case 'Atanh':
                    return [ops.atanh((0,
                        _utils.getParamValue)('x', node, tensorMap, context))];
                case 'Ceil':
                    return [ops.ceil((0,
                        _utils.getParamValue)('x', node, tensorMap, context))];
                case 'Complex':
                    return [ops.complex((0,
                        _utils.getParamValue)('real', node, tensorMap, context), (0,
                            _utils.getParamValue)('imag', node, tensorMap, context))];
                case 'Cos':
                    return [ops.cos((0,
                        _utils.getParamValue)('x', node, tensorMap, context))];
                case 'Cosh':
                    return [ops.cosh((0,
                        _utils.getParamValue)('x', node, tensorMap, context))];
                case 'Elu':
                    return [ops.elu((0,
                        _utils.getParamValue)('x', node, tensorMap, context))];
                case 'Erf':
                    return [ops.erf((0,
                        _utils.getParamValue)('x', node, tensorMap, context))];
                case 'Exp':
                    return [ops.exp((0,
                        _utils.getParamValue)('x', node, tensorMap, context))];
                case 'Expm1':
                    {
                        return [ops.expm1((0,
                            _utils.getParamValue)('x', node, tensorMap, context))];
                    }
                case 'Floor':
                    return [ops.floor((0,
                        _utils.getParamValue)('x', node, tensorMap, context))];
                case 'Log':
                    return [ops.log((0,
                        _utils.getParamValue)('x', node, tensorMap, context))];
                case 'Log1p':
                    {
                        return [ops.log1p((0,
                            _utils.getParamValue)('x', node, tensorMap, context))];
                    }
                case 'Imag':
                    return [ops.imag((0,
                        _utils.getParamValue)('x', node, tensorMap, context))];
                case 'Neg':
                    return [ops.neg((0,
                        _utils.getParamValue)('x', node, tensorMap, context))];
                case 'Reciprocal':
                    {
                        return [ops.reciprocal((0,
                            _utils.getParamValue)('x', node, tensorMap, context))];
                    }
                case 'Real':
                    return [ops.real((0,
                        _utils.getParamValue)('x', node, tensorMap, context))];
                case 'Relu':
                    return [ops.relu((0,
                        _utils.getParamValue)('x', node, tensorMap, context))];
                case 'Round':
                    {
                        return [ops.round((0,
                            _utils.getParamValue)('x', node, tensorMap, context))];
                    }
                case 'Selu':
                    return [ops.selu((0,
                        _utils.getParamValue)('x', node, tensorMap, context))];
                case 'Sigmoid':
                    return [ops.sigmoid((0,
                        _utils.getParamValue)('x', node, tensorMap, context))];
                case 'Sin':
                    return [ops.sin((0,
                        _utils.getParamValue)('x', node, tensorMap, context))];
                case 'Sign':
                    {
                        return [ops.sign((0,
                            _utils.getParamValue)('x', node, tensorMap, context))];
                    }
                case 'Sinh':
                    {
                        return [ops.sinh((0,
                            _utils.getParamValue)('x', node, tensorMap, context))];
                    }
                case 'Softplus':
                    {
                        return [ops.softplus((0,
                            _utils.getParamValue)('x', node, tensorMap, context))];
                    }
                case 'Sqrt':
                    {
                        return [ops.sqrt((0,
                            _utils.getParamValue)('x', node, tensorMap, context))];
                    }
                case 'Square':
                    {
                        return [ops.square((0,
                            _utils.getParamValue)('x', node, tensorMap, context))];
                    }
                case 'Tanh':
                    {
                        return [ops.tanh((0,
                            _utils.getParamValue)('x', node, tensorMap, context))];
                    }
                case 'Tan':
                    return [ops.tan((0,
                        _utils.getParamValue)('x', node, tensorMap, context))];
                case 'ClipByValue':
                    return [ops.clipByValue((0,
                        _utils.getParamValue)('x', node, tensorMap, context), (0,
                            _utils.getParamValue)('clipValueMin', node, tensorMap, context), (0,
                                _utils.getParamValue)('clipValueMax', node, tensorMap, context))];
                case 'Relu6':
                    return [ops.relu6((0,
                        _utils.getParamValue)('x', node, tensorMap, context))];
                case 'Rsqrt':
                    return [ops.rsqrt((0,
                        _utils.getTensor)(node.inputNames[0], tensorMap, context))];
                case 'Prod':
                    return [ops.prod((0,
                        _utils.getParamValue)('x', node, tensorMap, context), (0,
                            _utils.getParamValue)('axes', node, tensorMap, context))];
                case 'LeakyRelu':
                    return [ops.leakyRelu((0,
                        _utils.getParamValue)('x', node, tensorMap, context), (0,
                            _utils.getParamValue)('alpha', node, tensorMap, context))];
                case 'Prelu':
                    return [ops.prelu((0,
                        _utils.getParamValue)('x', node, tensorMap, context), (0,
                            _utils.getParamValue)('alpha', node, tensorMap, context))];
                case 'IsNan':
                    return [ops.isNaN((0,
                        _utils.getTensor)(node.inputNames[0], tensorMap, context))];
                default:
                    throw TypeError(`Node type ${node.op} is not implemented`);
            }
        };
        exports.executeOp = executeOp;
        const CATEGORY = 'basic_math';
        exports.CATEGORY = CATEGORY;

    }
        , {
        "./utils": 43,
        "@tensorflow/tfjs-core/dist/ops/ops_for_converter": 374
    }],
    26: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.executeOp = exports.CATEGORY = void 0;
        var _tfjsCore = require("@tensorflow/tfjs-core");
        var _tensor_array = require("../../executor/tensor_array");
        var _tensor_list = require("../../executor/tensor_list");
        var _utils = require("./utils");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const executeOp = async (node, tensorMap, context) => {
            switch (node.op) {
                case 'If':
                case 'StatelessIf':
                    {
                        const thenFunc = (0,
                            _utils.getParamValue)('thenBranch', node, tensorMap, context);
                        const elseFunc = (0,
                            _utils.getParamValue)('elseBranch', node, tensorMap, context);
                        const cond = (0,
                            _utils.getParamValue)('cond', node, tensorMap, context);
                        const args = (0,
                            _utils.getParamValue)('args', node, tensorMap, context);
                        const condValue = await cond.data();
                        if (condValue[0]) {
                            return context.functionMap[thenFunc].executeFunctionAsync(args, context.tensorArrayMap, context.tensorListMap);
                        } else {
                            return context.functionMap[elseFunc].executeFunctionAsync(args, context.tensorArrayMap, context.tensorListMap);
                        }
                    }
                case 'While':
                case 'StatelessWhile':
                    {
                        const bodyFunc = (0,
                            _utils.getParamValue)('body', node, tensorMap, context);
                        const condFunc = (0,
                            _utils.getParamValue)('cond', node, tensorMap, context);
                        const args = (0,
                            _utils.getParamValue)('args', node, tensorMap, context);
                        // Calculate the condition of the loop
                        const condResult = await context.functionMap[condFunc].executeFunctionAsync(args, context.tensorArrayMap, context.tensorListMap);
                        const argIds = args.map(tensor => tensor.id);
                        let condValue = await condResult[0].data();
                        // Dispose the intermediate tensors for condition function
                        condResult.forEach(tensor => {
                            if (!tensor.kept && argIds.indexOf(tensor.id) === -1) {
                                tensor.dispose();
                            }
                        }
                        );
                        let result = args;
                        while (condValue[0]) {
                            // Record the previous result for intermediate tensor tracking
                            const origResult = result;
                            // Execution the body of the loop
                            result = await context.functionMap[bodyFunc].executeFunctionAsync(result, context.tensorArrayMap, context.tensorListMap);
                            const resultIds = result.map(tensor => tensor.id);
                            // Dispose the intermediate tensor for body function that is not global
                            // kept, not input/output of the body function
                            origResult.forEach(tensor => {
                                if (!tensor.kept && argIds.indexOf(tensor.id) === -1 && resultIds.indexOf(tensor.id) === -1) {
                                    tensor.dispose();
                                }
                            }
                            );
                            // Recalcuate the condition of the loop using the latest results.
                            const condResult = await context.functionMap[condFunc].executeFunctionAsync(result, context.tensorArrayMap, context.tensorListMap);
                            condValue = await condResult[0].data();
                            // Dispose the intermediate tensors for condition function
                            condResult.forEach(tensor => {
                                if (!tensor.kept && argIds.indexOf(tensor.id) === -1 && resultIds.indexOf(tensor.id) === -1) {
                                    tensor.dispose();
                                }
                            }
                            );
                        }
                        return result;
                    }
                case 'LoopCond':
                    {
                        const pred = (0,
                            _utils.getParamValue)('pred', node, tensorMap, context);
                        return [(0,
                            _utils.cloneTensor)(pred)];
                    }
                case 'Switch':
                    {
                        const pred = (0,
                            _utils.getParamValue)('pred', node, tensorMap, context);
                        let data = (0,
                            _utils.getParamValue)('data', node, tensorMap, context);
                        if (!data.kept) {
                            data = (0,
                                _utils.cloneTensor)(data);
                        }
                        // Outputs nodes :0 => false, :1 => true
                        return (await pred.data())[0] ? [undefined, data] : [data, undefined];
                    }
                case 'Merge':
                    {
                        const inputName = node.inputNames.find(name => (0,
                            _utils.getTensor)(name, tensorMap, context) !== undefined);
                        if (inputName) {
                            const data = (0,
                                _utils.getTensor)(inputName, tensorMap, context);
                            return [(0,
                                _utils.cloneTensor)(data)];
                        }
                        return undefined;
                    }
                case 'Enter':
                    {
                        const frameId = (0,
                            _utils.getParamValue)('frameName', node, tensorMap, context);
                        const data = (0,
                            _utils.getParamValue)('tensor', node, tensorMap, context);
                        context.enterFrame(frameId);
                        return [(0,
                            _utils.cloneTensor)(data)];
                    }
                case 'Exit':
                    {
                        const data = (0,
                            _utils.getParamValue)('tensor', node, tensorMap, context);
                        context.exitFrame();
                        return [(0,
                            _utils.cloneTensor)(data)];
                    }
                case 'NextIteration':
                    {
                        const data = (0,
                            _utils.getParamValue)('tensor', node, tensorMap, context);
                        context.nextIteration();
                        return [(0,
                            _utils.cloneTensor)(data)];
                    }
                case 'TensorArrayV3':
                    {
                        const size = (0,
                            _utils.getParamValue)('size', node, tensorMap, context);
                        const dtype = (0,
                            _utils.getParamValue)('dtype', node, tensorMap, context);
                        const elementShape = (0,
                            _utils.getParamValue)('elementShape', node, tensorMap, context);
                        const dynamicSize = (0,
                            _utils.getParamValue)('dynamicSize', node, tensorMap, context);
                        const clearAfterRead = (0,
                            _utils.getParamValue)('clearAfterRead', node, tensorMap, context);
                        const identicalElementShapes = (0,
                            _utils.getParamValue)('identicalElementShapes', node, tensorMap, context);
                        const name = (0,
                            _utils.getParamValue)('name', node, tensorMap, context);
                        const tensorArray = new _tensor_array.TensorArray(name, dtype, size, elementShape, identicalElementShapes, dynamicSize, clearAfterRead);
                        context.addTensorArray(tensorArray);
                        return [tensorArray.idTensor, (0,
                            _tfjsCore.scalar)(1.0)];
                    }
                case 'TensorArrayWriteV3':
                    {
                        const id = (0,
                            _utils.getParamValue)('tensorArrayId', node, tensorMap, context);
                        const index = (0,
                            _utils.getParamValue)('index', node, tensorMap, context);
                        const writeTensor = (0,
                            _utils.getParamValue)('tensor', node, tensorMap, context);
                        const writeTensorArray = context.getTensorArray(id.id);
                        writeTensorArray.write(index, writeTensor);
                        return [writeTensorArray.idTensor];
                    }
                case 'TensorArrayReadV3':
                    {
                        const readId = (0,
                            _utils.getParamValue)('tensorArrayId', node, tensorMap, context);
                        const readIndex = (0,
                            _utils.getParamValue)('index', node, tensorMap, context);
                        const readTensorArray = context.getTensorArray(readId.id);
                        return [readTensorArray.read(readIndex)];
                    }
                case 'TensorArrayGatherV3':
                    {
                        const gatherId = (0,
                            _utils.getParamValue)('tensorArrayId', node, tensorMap, context);
                        const gatherIndices = (0,
                            _utils.getParamValue)('indices', node, tensorMap, context);
                        const gatherDtype = (0,
                            _utils.getParamValue)('dtype', node, tensorMap, context);
                        const gatherTensorArray = context.getTensorArray(gatherId.id);
                        return [gatherTensorArray.gather(gatherIndices, gatherDtype)];
                    }
                case 'TensorArrayScatterV3':
                    {
                        const scatterId = (0,
                            _utils.getParamValue)('tensorArrayId', node, tensorMap, context);
                        const scatterIndices = (0,
                            _utils.getParamValue)('indices', node, tensorMap, context);
                        const scatterTensor = (0,
                            _utils.getParamValue)('tensor', node, tensorMap, context);
                        const scatterTensorArray = context.getTensorArray(scatterId.id);
                        scatterTensorArray.scatter(scatterIndices, scatterTensor);
                        return [scatterTensorArray.idTensor];
                    }
                case 'TensorArrayConcatV3':
                    {
                        const concatId = (0,
                            _utils.getParamValue)('tensorArrayId', node, tensorMap, context);
                        const concatTensorArray = context.getTensorArray(concatId.id);
                        const concatDtype = (0,
                            _utils.getParamValue)('dtype', node, tensorMap, context);
                        return [concatTensorArray.concat(concatDtype)];
                    }
                case 'TensorArraySplitV3':
                    {
                        const splitId = (0,
                            _utils.getParamValue)('tensorArrayId', node, tensorMap, context);
                        const splitTensor = (0,
                            _utils.getParamValue)('tensor', node, tensorMap, context);
                        const lengths = (0,
                            _utils.getParamValue)('lengths', node, tensorMap, context);
                        const splitTensorArray = context.getTensorArray(splitId.id);
                        splitTensorArray.split(lengths, splitTensor);
                        return [splitTensorArray.idTensor];
                    }
                case 'TensorArraySizeV3':
                    {
                        const sizeId = (0,
                            _utils.getParamValue)('tensorArrayId', node, tensorMap, context);
                        const sizeTensorArray = context.getTensorArray(sizeId.id);
                        return [(0,
                            _tfjsCore.scalar)(sizeTensorArray.size(), 'int32')];
                    }
                case 'TensorArrayCloseV3':
                    {
                        const closeId = (0,
                            _utils.getParamValue)('tensorArrayId', node, tensorMap, context);
                        const closeTensorArray = context.getTensorArray(closeId.id);
                        closeTensorArray.clearAndClose();
                        return [closeTensorArray.idTensor];
                    }
                case 'TensorListSetItem':
                    {
                        const idTensor = (0,
                            _utils.getParamValue)('tensorListId', node, tensorMap, context);
                        const index = (0,
                            _utils.getParamValue)('index', node, tensorMap, context);
                        const writeTensor = (0,
                            _utils.getParamValue)('tensor', node, tensorMap, context);
                        const tensorList = context.getTensorList(idTensor.id);
                        tensorList.setItem(index, writeTensor);
                        return [tensorList.idTensor];
                    }
                case 'TensorListGetItem':
                    {
                        const idTensor = (0,
                            _utils.getParamValue)('tensorListId', node, tensorMap, context);
                        const readIndex = (0,
                            _utils.getParamValue)('index', node, tensorMap, context);
                        const elementShape = (0,
                            _utils.getParamValue)('elementShape', node, tensorMap, context);
                        const elementDType = (0,
                            _utils.getParamValue)('elementDType', node, tensorMap, context);
                        const tensorList = context.getTensorList(idTensor.id);
                        return [tensorList.getItem(readIndex, elementShape, elementDType)];
                    }
                case 'TensorListScatterV2':
                case 'TensorListScatter':
                    {
                        const scatterIndices = (0,
                            _utils.getParamValue)('indices', node, tensorMap, context);
                        const scatterTensor = (0,
                            _utils.getParamValue)('tensor', node, tensorMap, context);
                        const elementShape = (0,
                            _utils.getParamValue)('elementShape', node, tensorMap, context);
                        const numElements = (0,
                            _utils.getParamValue)('numElements', node, tensorMap, context);
                        const tensorList = (0,
                            _tensor_list.scatter)(scatterTensor, scatterIndices, elementShape, numElements);
                        context.addTensorList(tensorList);
                        return [tensorList.idTensor];
                    }
                case 'TensorListReserve':
                case 'EmptyTensorList':
                    {
                        const elementShape = (0,
                            _utils.getParamValue)('elementShape', node, tensorMap, context);
                        const elementDtype = (0,
                            _utils.getParamValue)('elementDType', node, tensorMap, context);
                        let numElementsParam;
                        if (node.op === 'TensorListReserve') {
                            numElementsParam = 'numElements';
                        } else {
                            numElementsParam = 'maxNumElements';
                        }
                        const numElements = (0,
                            _utils.getParamValue)(numElementsParam, node, tensorMap, context);
                        const maxNumElements = node.op === 'TensorListReserve' ? -1 : numElements;
                        const tensorList = (0,
                            _tensor_list.reserve)(elementShape, elementDtype, numElements, maxNumElements);
                        context.addTensorList(tensorList);
                        return [tensorList.idTensor];
                    }
                case 'TensorListGather':
                    {
                        const gatherId = (0,
                            _utils.getParamValue)('tensorListId', node, tensorMap, context);
                        const gatherIndices = (0,
                            _utils.getParamValue)('indices', node, tensorMap, context);
                        const elementShape = (0,
                            _utils.getParamValue)('elementShape', node, tensorMap, context);
                        const elementDtype = (0,
                            _utils.getParamValue)('elementDType', node, tensorMap, context);
                        const tensorList = context.getTensorList(gatherId.id);
                        return [tensorList.gather(gatherIndices, elementDtype, elementShape)];
                    }
                case 'TensorListStack':
                    {
                        const idTensor = (0,
                            _utils.getParamValue)('tensorListId', node, tensorMap, context);
                        const elementShape = (0,
                            _utils.getParamValue)('elementShape', node, tensorMap, context);
                        const elementDtype = (0,
                            _utils.getParamValue)('elementDType', node, tensorMap, context);
                        const numElements = (0,
                            _utils.getParamValue)('numElements', node, tensorMap, context);
                        const tensorList = context.getTensorList(idTensor.id);
                        return [tensorList.stack(elementShape, elementDtype, numElements)];
                    }
                case 'TensorListFromTensor':
                    {
                        const tensor = (0,
                            _utils.getParamValue)('tensor', node, tensorMap, context);
                        const elementShape = (0,
                            _utils.getParamValue)('elementShape', node, tensorMap, context);
                        const elementDtype = (0,
                            _utils.getParamValue)('elementDType', node, tensorMap, context);
                        const tensorList = (0,
                            _tensor_list.fromTensor)(tensor, elementShape, elementDtype);
                        context.addTensorList(tensorList);
                        return [tensorList.idTensor];
                    }
                case 'TensorListConcat':
                case 'TensorListConcatV2':
                    {
                        const concatId = (0,
                            _utils.getParamValue)('tensorListId', node, tensorMap, context);
                        const tensorList = context.getTensorList(concatId.id);
                        const concatDtype = (0,
                            _utils.getParamValue)('dtype', node, tensorMap, context);
                        const elementShape = (0,
                            _utils.getParamValue)('elementShape', node, tensorMap, context);
                        return [tensorList.concat(concatDtype, elementShape)];
                    }
                case 'TensorListPushBack':
                    {
                        const idTensor = (0,
                            _utils.getParamValue)('tensorListId', node, tensorMap, context);
                        const writeTensor = (0,
                            _utils.getParamValue)('tensor', node, tensorMap, context);
                        const tensorList = context.getTensorList(idTensor.id);
                        tensorList.pushBack(writeTensor);
                        return [tensorList.idTensor];
                    }
                case 'TensorListPopBack':
                    {
                        const idTensor = (0,
                            _utils.getParamValue)('tensorListId', node, tensorMap, context);
                        const elementShape = (0,
                            _utils.getParamValue)('elementShape', node, tensorMap, context);
                        const elementDType = (0,
                            _utils.getParamValue)('elementDType', node, tensorMap, context);
                        const tensorList = context.getTensorList(idTensor.id);
                        return [tensorList.popBack(elementShape, elementDType)];
                    }
                case 'TensorListSplit':
                    {
                        const splitTensor = (0,
                            _utils.getParamValue)('tensor', node, tensorMap, context);
                        const elementShape = (0,
                            _utils.getParamValue)('elementShape', node, tensorMap, context);
                        const lengths = (0,
                            _utils.getParamValue)('lengths', node, tensorMap, context);
                        const tensorList = (0,
                            _tensor_list.split)(splitTensor, lengths, elementShape);
                        context.addTensorList(tensorList);
                        return [tensorList.idTensor];
                    }
                case 'TensorListLength':
                    {
                        const idTensor = (0,
                            _utils.getParamValue)('tensorListId', node, tensorMap, context);
                        const tensorList = context.getTensorList(idTensor.id);
                        return [(0,
                            _tfjsCore.scalar)(tensorList.size(), 'int32')];
                    }
                case 'TensorListResize':
                    {
                        const idTensor = (0,
                            _utils.getParamValue)('tensorListId', node, tensorMap, context);
                        const size = (0,
                            _utils.getParamValue)('size', node, tensorMap, context);
                        const srcTensorList = context.getTensorList(idTensor.id);
                        const destTensorList = srcTensorList.resize(size);
                        context.addTensorList(destTensorList);
                        return [destTensorList.idTensor];
                    }
                default:
                    throw TypeError(`Node type ${node.op} is not implemented`);
            }
        };
        exports.executeOp = executeOp;
        const CATEGORY = 'control';
        exports.CATEGORY = CATEGORY;

    }
        , {
        "../../executor/tensor_array": 17,
        "../../executor/tensor_list": 18,
        "./utils": 43,
        "@tensorflow/tfjs-core": 506
    }],
    27: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.executeOp = exports.CATEGORY = void 0;
        var tfOps = _interopRequireWildcard(require("@tensorflow/tfjs-core/dist/ops/ops_for_converter"));
        var _utils = require("./utils");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        // tslint:disable-next-line: no-imports-from-dist

        function fusedConvAndDepthWiseParams(node, tensorMap, context) {
            const [extraOp, activationFunc] = (0,
                _utils.getParamValue)('fusedOps', node, tensorMap, context);
            const isBiasAdd = extraOp === 'biasadd';
            const noBiasAdd = !isBiasAdd;
            const isPrelu = activationFunc === 'prelu';
            const isBatchNorm = extraOp === 'fusedbatchnorm';
            const numArgs = (0,
                _utils.getParamValue)('numArgs', node, tensorMap, context);
            if (isBiasAdd) {
                if (isPrelu && numArgs !== 2) {
                    throw new Error('FusedConv2d and DepthwiseConv2d with BiasAdd and Prelu ' + 'must have two extra arguments: bias and alpha.');
                }
                if (!isPrelu && isBiasAdd && numArgs !== 1) {
                    throw new Error('FusedConv2d and DepthwiseConv2d with BiasAdd must have ' + 'one extra argument: bias.');
                }
            }
            if (isBatchNorm) {
                throw new Error('FusedConv2d and DepthwiseConv2d with FusedBatchNorm is not supported');
            }
            const stride = (0,
                _utils.getParamValue)('strides', node, tensorMap, context);
            const pad = (0,
                _utils.getPadding)(node, tensorMap, context);
            const dataFormat = (0,
                _utils.getParamValue)('dataFormat', node, tensorMap, context).toUpperCase();
            const dilations = (0,
                _utils.getParamValue)('dilations', node, tensorMap, context);
            let [biasArg, preluArg] = (0,
                _utils.getParamValue)('args', node, tensorMap, context);
            if (noBiasAdd) {
                preluArg = biasArg;
                biasArg = undefined;
            }
            const leakyreluAlpha = (0,
                _utils.getParamValue)('leakyreluAlpha', node, tensorMap, context);
            return {
                stride,
                pad,
                dataFormat,
                dilations,
                biasArg,
                preluArg,
                activationFunc,
                leakyreluAlpha
            };
        }
        const executeOp = (node, tensorMap, context, ops = tfOps) => {
            switch (node.op) {
                case 'Conv1D':
                    {
                        const stride = (0,
                            _utils.getParamValue)('stride', node, tensorMap, context);
                        const pad = (0,
                            _utils.getParamValue)('pad', node, tensorMap, context);
                        const dataFormat = (0,
                            _utils.getParamValue)('dataFormat', node, tensorMap, context).toUpperCase();
                        const dilation = (0,
                            _utils.getParamValue)('dilation', node, tensorMap, context);
                        return [ops.conv1d((0,
                            _utils.getParamValue)('x', node, tensorMap, context), (0,
                                _utils.getParamValue)('filter', node, tensorMap, context), stride, pad, dataFormat, dilation)];
                    }
                case 'Conv2D':
                    {
                        const stride = (0,
                            _utils.getParamValue)('strides', node, tensorMap, context);
                        const pad = (0,
                            _utils.getPadding)(node, tensorMap, context);
                        const dataFormat = (0,
                            _utils.getParamValue)('dataFormat', node, tensorMap, context).toUpperCase();
                        const dilations = (0,
                            _utils.getParamValue)('dilations', node, tensorMap, context);
                        return [ops.conv2d((0,
                            _utils.getParamValue)('x', node, tensorMap, context), (0,
                                _utils.getParamValue)('filter', node, tensorMap, context), [stride[1], stride[2]], pad, dataFormat, [dilations[1], dilations[2]])];
                    }
                case '_FusedConv2D':
                    {
                        const { stride, pad, dataFormat, dilations, biasArg, preluArg, activationFunc, leakyreluAlpha } = fusedConvAndDepthWiseParams(node, tensorMap, context);
                        return [ops.fused.conv2d({
                            x: (0,
                                _utils.getParamValue)('x', node, tensorMap, context),
                            filter: (0,
                                _utils.getParamValue)('filter', node, tensorMap, context),
                            strides: [stride[1], stride[2]],
                            pad: pad,
                            dataFormat: dataFormat,
                            dilations: [dilations[1], dilations[2]],
                            bias: biasArg,
                            activation: activationFunc,
                            preluActivationWeights: preluArg,
                            leakyreluAlpha
                        })];
                    }
                case 'FusedDepthwiseConv2dNative':
                    {
                        const { stride, pad, dataFormat, dilations, biasArg, preluArg, activationFunc, leakyreluAlpha } = fusedConvAndDepthWiseParams(node, tensorMap, context);
                        return [ops.fused.depthwiseConv2d({
                            x: (0,
                                _utils.getParamValue)('x', node, tensorMap, context),
                            filter: (0,
                                _utils.getParamValue)('filter', node, tensorMap, context),
                            strides: [stride[1], stride[2]],
                            pad: pad,
                            dataFormat: dataFormat,
                            dilations: [dilations[1], dilations[2]],
                            bias: biasArg,
                            activation: activationFunc,
                            preluActivationWeights: preluArg,
                            leakyreluAlpha
                        })];
                    }
                case 'Conv2DBackpropInput':
                case 'Conv2dTranspose':
                    {
                        const shape = (0,
                            _utils.getParamValue)('outputShape', node, tensorMap, context);
                        const stride = (0,
                            _utils.getParamValue)('strides', node, tensorMap, context);
                        const pad = (0,
                            _utils.getPadding)(node, tensorMap, context);
                        return [ops.conv2dTranspose((0,
                            _utils.getParamValue)('x', node, tensorMap, context), (0,
                                _utils.getParamValue)('filter', node, tensorMap, context), shape, [stride[1], stride[2]], pad)];
                    }
                case 'DepthwiseConv2dNative':
                case 'DepthwiseConv2d':
                    {
                        const stride = (0,
                            _utils.getParamValue)('strides', node, tensorMap, context);
                        const pad = (0,
                            _utils.getPadding)(node, tensorMap, context);
                        const dilations = (0,
                            _utils.getParamValue)('dilations', node, tensorMap, context);
                        const dataFormat = (0,
                            _utils.getParamValue)('dataFormat', node, tensorMap, context).toUpperCase();
                        return [ops.depthwiseConv2d((0,
                            _utils.getParamValue)('input', node, tensorMap, context), (0,
                                _utils.getParamValue)('filter', node, tensorMap, context), [stride[1], stride[2]], pad, dataFormat, [dilations[1], dilations[2]])];
                    }
                case 'Conv3D':
                    {
                        const stride = (0,
                            _utils.getParamValue)('strides', node, tensorMap, context);
                        const pad = (0,
                            _utils.getParamValue)('pad', node, tensorMap, context);
                        const dataFormat = (0,
                            _utils.getParamValue)('dataFormat', node, tensorMap, context).toUpperCase();
                        const dilations = (0,
                            _utils.getParamValue)('dilations', node, tensorMap, context);
                        return [ops.conv3d((0,
                            _utils.getParamValue)('x', node, tensorMap, context), (0,
                                _utils.getParamValue)('filter', node, tensorMap, context), [stride[1], stride[2], stride[3]], pad, dataFormat, [dilations[1], dilations[2], dilations[3]])];
                    }
                case 'AvgPool':
                    {
                        const stride = (0,
                            _utils.getParamValue)('strides', node, tensorMap, context);
                        const pad = (0,
                            _utils.getParamValue)('pad', node, tensorMap, context);
                        const kernelSize = (0,
                            _utils.getParamValue)('kernelSize', node, tensorMap, context);
                        return [ops.avgPool((0,
                            _utils.getParamValue)('x', node, tensorMap, context), [kernelSize[1], kernelSize[2]], [stride[1], stride[2]], pad)];
                    }
                case 'MaxPool':
                    {
                        const stride = (0,
                            _utils.getParamValue)('strides', node, tensorMap, context);
                        const pad = (0,
                            _utils.getParamValue)('pad', node, tensorMap, context);
                        const kernelSize = (0,
                            _utils.getParamValue)('kernelSize', node, tensorMap, context);
                        return [ops.maxPool((0,
                            _utils.getParamValue)('x', node, tensorMap, context), [kernelSize[1], kernelSize[2]], [stride[1], stride[2]], pad)];
                    }
                case 'MaxPoolWithArgmax':
                    {
                        const stride = (0,
                            _utils.getParamValue)('strides', node, tensorMap, context);
                        const pad = (0,
                            _utils.getParamValue)('pad', node, tensorMap, context);
                        const kernelSize = (0,
                            _utils.getParamValue)('kernelSize', node, tensorMap, context);
                        const includeBatchInIndex = (0,
                            _utils.getParamValue)('includeBatchInIndex', node, tensorMap, context);
                        const { result, indexes } = ops.maxPoolWithArgmax((0,
                            _utils.getParamValue)('x', node, tensorMap, context), [kernelSize[1], kernelSize[2]], [stride[1], stride[2]], pad, includeBatchInIndex);
                        return [result, indexes];
                    }
                case 'AvgPool3D':
                    {
                        const stride = (0,
                            _utils.getParamValue)('strides', node, tensorMap, context);
                        const pad = (0,
                            _utils.getParamValue)('pad', node, tensorMap, context);
                        const kernelSize = (0,
                            _utils.getParamValue)('kernelSize', node, tensorMap, context);
                        return [ops.avgPool3d((0,
                            _utils.getParamValue)('x', node, tensorMap, context), [kernelSize[1], kernelSize[2], kernelSize[3]], [stride[1], stride[2], stride[3]], pad)];
                    }
                case 'MaxPool3D':
                    {
                        const stride = (0,
                            _utils.getParamValue)('strides', node, tensorMap, context);
                        const pad = (0,
                            _utils.getParamValue)('pad', node, tensorMap, context);
                        const kernelSize = (0,
                            _utils.getParamValue)('kernelSize', node, tensorMap, context);
                        return [ops.maxPool3d((0,
                            _utils.getParamValue)('x', node, tensorMap, context), [kernelSize[1], kernelSize[2], kernelSize[3]], [stride[1], stride[2], stride[3]], pad)];
                    }
                case 'Dilation2D':
                    {
                        const strides = (0,
                            _utils.getParamValue)('strides', node, tensorMap, context);
                        const pad = (0,
                            _utils.getParamValue)('pad', node, tensorMap, context);
                        const dilations = (0,
                            _utils.getParamValue)('dilations', node, tensorMap, context);
                        // strides: [1, stride_height, stride_width, 1].
                        const strideHeight = strides[1];
                        const strideWidth = strides[2];
                        // dilations: [1, dilation_height, dilation_width, 1].
                        const dilationHeight = dilations[1];
                        const dilationWidth = dilations[2];
                        return [ops.dilation2d((0,
                            _utils.getParamValue)('x', node, tensorMap, context), (0,
                                _utils.getParamValue)('filter', node, tensorMap, context), [strideHeight, strideWidth], pad, [dilationHeight, dilationWidth], 'NHWC'/* dataFormat */
                        )];
                    }

                default:
                    throw TypeError(`Node type ${node.op} is not implemented`);
            }
        };
        exports.executeOp = executeOp;
        const CATEGORY = 'convolution';
        exports.CATEGORY = CATEGORY;

    }
        , {
        "./utils": 43,
        "@tensorflow/tfjs-core/dist/ops/ops_for_converter": 374
    }],
    28: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.executeOp = exports.CATEGORY = void 0;
        var tfOps = _interopRequireWildcard(require("@tensorflow/tfjs-core/dist/ops/ops_for_converter"));
        var _utils = require("./utils");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        // tslint:disable-next-line: no-imports-from-dist

        const executeOp = (node, tensorMap, context, ops = tfOps) => {
            switch (node.op) {
                case 'Fill':
                    {
                        const shape = (0,
                            _utils.getParamValue)('shape', node, tensorMap, context);
                        const dtype = (0,
                            _utils.getParamValue)('dtype', node, tensorMap, context);
                        const value = (0,
                            _utils.getParamValue)('value', node, tensorMap, context);
                        return [ops.fill(shape, value, dtype)];
                    }
                case 'LinSpace':
                    {
                        const start = (0,
                            _utils.getParamValue)('start', node, tensorMap, context);
                        const stop = (0,
                            _utils.getParamValue)('stop', node, tensorMap, context);
                        const num = (0,
                            _utils.getParamValue)('num', node, tensorMap, context);
                        return [ops.linspace(start, stop, num)];
                    }
                case 'Multinomial':
                    {
                        const logits = (0,
                            _utils.getParamValue)('logits', node, tensorMap, context);
                        const numSamples = (0,
                            _utils.getParamValue)('numSamples', node, tensorMap, context);
                        const seed = (0,
                            _utils.getParamValue)('seed', node, tensorMap, context);
                        return [ops.multinomial(logits, numSamples, seed)];
                    }
                case 'OneHot':
                    {
                        const indices = (0,
                            _utils.getParamValue)('indices', node, tensorMap, context);
                        const depth = (0,
                            _utils.getParamValue)('depth', node, tensorMap, context);
                        const onValue = (0,
                            _utils.getParamValue)('onValue', node, tensorMap, context);
                        const offValue = (0,
                            _utils.getParamValue)('offValue', node, tensorMap, context);
                        const dtype = (0,
                            _utils.getParamValue)('dtype', node, tensorMap, context);
                        return [ops.oneHot(indices, depth, onValue, offValue, dtype)];
                    }
                case 'Ones':
                    {
                        return [ops.ones((0,
                            _utils.getParamValue)('shape', node, tensorMap, context), (0,
                                _utils.getParamValue)('dtype', node, tensorMap, context))];
                    }
                case 'OnesLike':
                    {
                        return [ops.onesLike((0,
                            _utils.getParamValue)('x', node, tensorMap, context))];
                    }
                case 'RandomStandardNormal':
                    {
                        return [ops.randomStandardNormal((0,
                            _utils.getParamValue)('shape', node, tensorMap, context), (0,
                                _utils.getParamValue)('dtype', node, tensorMap, context), (0,
                                    _utils.getParamValue)('seed', node, tensorMap, context))];
                    }
                case 'RandomUniform':
                    {
                        return [ops.randomUniform(// tslint:disable-next-line:no-any
                            (0,
                                _utils.getParamValue)('shape', node, tensorMap, context), (0,
                                    _utils.getParamValue)('minval', node, tensorMap, context), (0,
                                        _utils.getParamValue)('maxval', node, tensorMap, context), (0,
                                            _utils.getParamValue)('dtype', node, tensorMap, context))];
                    }
                case 'Range':
                    {
                        const start = (0,
                            _utils.getParamValue)('start', node, tensorMap, context);
                        const stop = (0,
                            _utils.getParamValue)('stop', node, tensorMap, context);
                        const step = (0,
                            _utils.getParamValue)('step', node, tensorMap, context);
                        return [ops.range(start, stop, step, (0,
                            _utils.getParamValue)('dtype', node, tensorMap, context))];
                    }
                case 'TruncatedNormal':
                    {
                        const shape = (0,
                            _utils.getParamValue)('shape', node, tensorMap, context);
                        const mean = (0,
                            _utils.getParamValue)('mean', node, tensorMap, context);
                        const stdDev = (0,
                            _utils.getParamValue)('stdDev', node, tensorMap, context);
                        const seed = (0,
                            _utils.getParamValue)('seed', node, tensorMap, context);
                        return [ops.truncatedNormal(shape, mean, stdDev, (0,
                            _utils.getParamValue)('dtype', node, tensorMap, context), seed)];
                    }
                case 'Zeros':
                    {
                        return [ops.zeros((0,
                            _utils.getParamValue)('shape', node, tensorMap, context), (0,
                                _utils.getParamValue)('dtype', node, tensorMap, context))];
                    }
                case 'ZerosLike':
                    {
                        return [ops.zerosLike((0,
                            _utils.getParamValue)('x', node, tensorMap, context))];
                    }
                default:
                    throw TypeError(`Node type ${node.op} is not implemented`);
            }
        };
        exports.executeOp = executeOp;
        const CATEGORY = 'creation';
        exports.CATEGORY = CATEGORY;

    }
        , {
        "./utils": 43,
        "@tensorflow/tfjs-core/dist/ops/ops_for_converter": 374
    }],
    29: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.executeOp = exports.CATEGORY = void 0;
        var tfOps = _interopRequireWildcard(require("@tensorflow/tfjs-core/dist/ops/ops_for_converter"));
        var _utils = require("./utils");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        // tslint:disable-next-line: no-imports-from-dist

        function nmsParams(node, tensorMap, context) {
            const boxes = (0,
                _utils.getParamValue)('boxes', node, tensorMap, context);
            const scores = (0,
                _utils.getParamValue)('scores', node, tensorMap, context);
            const maxOutputSize = (0,
                _utils.getParamValue)('maxOutputSize', node, tensorMap, context);
            const iouThreshold = (0,
                _utils.getParamValue)('iouThreshold', node, tensorMap, context);
            const scoreThreshold = (0,
                _utils.getParamValue)('scoreThreshold', node, tensorMap, context);
            const softNmsSigma = (0,
                _utils.getParamValue)('softNmsSigma', node, tensorMap, context);
            return {
                boxes,
                scores,
                maxOutputSize,
                iouThreshold,
                scoreThreshold,
                softNmsSigma
            };
        }
        const executeOp = async (node, tensorMap, context, resourceManager, ops = tfOps) => {
            switch (node.op) {
                case 'NonMaxSuppressionV5':
                    {
                        const { boxes, scores, maxOutputSize, iouThreshold, scoreThreshold, softNmsSigma } = nmsParams(node, tensorMap, context);
                        const result = await ops.image.nonMaxSuppressionWithScoreAsync(boxes, scores, maxOutputSize, iouThreshold, scoreThreshold, softNmsSigma);
                        return [result.selectedIndices, result.selectedScores];
                    }
                case 'NonMaxSuppressionV4':
                    {
                        const { boxes, scores, maxOutputSize, iouThreshold, scoreThreshold } = nmsParams(node, tensorMap, context);
                        const padToMaxOutputSize = (0,
                            _utils.getParamValue)('padToMaxOutputSize', node, tensorMap, context);
                        const result = await ops.image.nonMaxSuppressionPaddedAsync(boxes, scores, maxOutputSize, iouThreshold, scoreThreshold, padToMaxOutputSize);
                        return [result.selectedIndices, result.validOutputs];
                    }
                case 'NonMaxSuppressionV3':
                case 'NonMaxSuppressionV2':
                    {
                        const { boxes, scores, maxOutputSize, iouThreshold, scoreThreshold } = nmsParams(node, tensorMap, context);
                        return [await ops.image.nonMaxSuppressionAsync(boxes, scores, maxOutputSize, iouThreshold, scoreThreshold)];
                    }
                case 'Where':
                    {
                        const condition = ops.cast((0,
                            _utils.getParamValue)('condition', node, tensorMap, context), 'bool');
                        const result = [await ops.whereAsync(condition)];
                        condition.dispose();
                        return result;
                    }
                case 'ListDiff':
                    {
                        return ops.setdiff1dAsync((0,
                            _utils.getParamValue)('x', node, tensorMap, context), (0,
                                _utils.getParamValue)('y', node, tensorMap, context));
                    }
                default:
                    throw TypeError(`Node type ${node.op} is not implemented`);
            }
        };
        exports.executeOp = executeOp;
        const CATEGORY = 'dynamic';
        exports.CATEGORY = CATEGORY;

    }
        , {
        "./utils": 43,
        "@tensorflow/tfjs-core/dist/ops/ops_for_converter": 374
    }],
    30: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.executeOp = exports.CATEGORY = void 0;
        var tfOps = _interopRequireWildcard(require("@tensorflow/tfjs-core/dist/ops/ops_for_converter"));
        var _utils = require("./utils");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        // tslint:disable-next-line: no-imports-from-dist

        const executeOp = (node, tensorMap, context, ops = tfOps) => {
            switch (node.op) {
                case 'LowerBound':
                    {
                        const sortedSequence = (0,
                            _utils.getParamValue)('sortedSequence', node, tensorMap, context);
                        const values = (0,
                            _utils.getParamValue)('values', node, tensorMap, context);
                        return [ops.lowerBound(sortedSequence, values)];
                    }
                case 'TopKV2':
                    {
                        const x = (0,
                            _utils.getParamValue)('x', node, tensorMap, context);
                        const k = (0,
                            _utils.getParamValue)('k', node, tensorMap, context);
                        const sorted = (0,
                            _utils.getParamValue)('sorted', node, tensorMap, context);
                        const result = ops.topk(x, k, sorted);
                        return [result.values, result.indices];
                    }
                case 'UpperBound':
                    {
                        const sortedSequence = (0,
                            _utils.getParamValue)('sortedSequence', node, tensorMap, context);
                        const values = (0,
                            _utils.getParamValue)('values', node, tensorMap, context);
                        return [ops.upperBound(sortedSequence, values)];
                    }
                case 'Unique':
                    {
                        const x = (0,
                            _utils.getParamValue)('x', node, tensorMap, context);
                        const result = ops.unique(x);
                        return [result.values, result.indices];
                    }
                case 'UniqueV2':
                    {
                        const x = (0,
                            _utils.getParamValue)('x', node, tensorMap, context);
                        const axis = (0,
                            _utils.getParamValue)('axis', node, tensorMap, context);
                        const result = ops.unique(x, axis);
                        return [result.values, result.indices];
                    }
                default:
                    throw TypeError(`Node type ${node.op} is not implemented`);
            }
        };
        exports.executeOp = executeOp;
        const CATEGORY = 'evaluation';
        exports.CATEGORY = CATEGORY;

    }
        , {
        "./utils": 43,
        "@tensorflow/tfjs-core/dist/ops/ops_for_converter": 374
    }],
    31: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.executeOp = exports.CATEGORY = void 0;
        var tfOps = _interopRequireWildcard(require("@tensorflow/tfjs-core/dist/ops/ops_for_converter"));
        var _utils = require("./utils");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        // tslint:disable-next-line: no-imports-from-dist

        const executeOp = (node, tensorMap, context, ops = tfOps) => {
            switch (node.op) {
                case 'Const':
                    {
                        return tensorMap[node.name];
                    }
                case 'PlaceholderWithDefault':
                    const def = (0,
                        _utils.getParamValue)('default', node, tensorMap, context);
                    return [(0,
                        _utils.getTensor)(node.name, tensorMap, context) || def];
                case 'Placeholder':
                    return [(0,
                        _utils.getTensor)(node.name, tensorMap, context)];
                case 'Identity':
                case 'StopGradient':
                case 'FakeQuantWithMinMaxVars':
                    {
                        // This op is currently ignored.
                        const data = (0,
                            _utils.getParamValue)('x', node, tensorMap, context);
                        return [(0,
                            _utils.cloneTensor)(data)];
                    }
                case 'IdentityN':
                    return (0,
                        _utils.getParamValue)('x', node, tensorMap, context).map(t => (0,
                            _utils.cloneTensor)(t));
                case 'Snapshot':
                    const snapshot = (0,
                        _utils.getParamValue)('x', node, tensorMap, context);
                    return [(0,
                        _utils.cloneTensor)(snapshot)];
                case 'Shape':
                    return [ops.tensor1d((0,
                        _utils.getParamValue)('x', node, tensorMap, context).shape, 'int32')];
                case 'ShapeN':
                    return (0,
                        _utils.getParamValue)('x', node, tensorMap, context).map(t => ops.tensor1d(t.shape));
                case 'Size':
                    return [ops.scalar((0,
                        _utils.getParamValue)('x', node, tensorMap, context).size, 'int32')];
                case 'Rank':
                    return [ops.scalar((0,
                        _utils.getParamValue)('x', node, tensorMap, context).rank, 'int32')];
                case 'NoOp':
                    return [ops.scalar(1)];
                case 'Print':
                    const input = (0,
                        _utils.getParamValue)('x', node, tensorMap, context);
                    const data = (0,
                        _utils.getParamValue)('data', node, tensorMap, context);
                    const message = (0,
                        _utils.getParamValue)('message', node, tensorMap, context);
                    const summarize = (0,
                        _utils.getParamValue)('summarize', node, tensorMap, context);
                    console.warn('The graph has a tf.print() operation,' + 'usually used for debugging, which slows down performance.');
                    console.log(message);
                    for (let i = 0; i < data.length; i++) {
                        console.log(Array.prototype.slice.call(data[i].dataSync()).slice(0, summarize));
                    }
                    return [input];
                default:
                    throw TypeError(`Node type ${node.op} is not implemented`);
            }
        };
        exports.executeOp = executeOp;
        const CATEGORY = 'graph';
        exports.CATEGORY = CATEGORY;

    }
        , {
        "./utils": 43,
        "@tensorflow/tfjs-core/dist/ops/ops_for_converter": 374
    }],
    32: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.executeOp = exports.CATEGORY = void 0;
        var _hash_table = require("../../executor/hash_table");
        var _utils = require("./utils");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const executeOp = async (node, tensorMap, context, resourceManager) => {
            switch (node.op) {
                case 'HashTable':
                case 'HashTableV2':
                    {
                        const keyDType = (0,
                            _utils.getParamValue)('keyDType', node, tensorMap, context);
                        const valueDType = (0,
                            _utils.getParamValue)('valueDType', node, tensorMap, context);
                        const hashTable = new _hash_table.HashTable(keyDType, valueDType);
                        resourceManager.addHashTable(node.name, hashTable);
                        return [hashTable.handle];
                    }
                case 'LookupTableImport':
                case 'LookupTableImportV2':
                    {
                        const handle = (0,
                            _utils.getParamValue)('tableHandle', node, tensorMap, context, resourceManager);
                        const keys = (0,
                            _utils.getParamValue)('keys', node, tensorMap, context);
                        const values = (0,
                            _utils.getParamValue)('values', node, tensorMap, context);
                        const hashTable = resourceManager.getHashTableById(handle.id);
                        return [await hashTable.import(keys, values)];
                    }
                case 'LookupTableFind':
                case 'LookupTableFindV2':
                    {
                        const handle = (0,
                            _utils.getParamValue)('tableHandle', node, tensorMap, context, resourceManager);
                        const keys = (0,
                            _utils.getParamValue)('keys', node, tensorMap, context);
                        const defaultValue = (0,
                            _utils.getParamValue)('defaultValue', node, tensorMap, context);
                        const hashTable = resourceManager.getHashTableById(handle.id);
                        return [await hashTable.find(keys, defaultValue)];
                    }
                case 'LookupTableSize':
                case 'LookupTableSizeV2':
                    {
                        const handle = (0,
                            _utils.getParamValue)('tableHandle', node, tensorMap, context, resourceManager);
                        const hashTable = resourceManager.getHashTableById(handle.id);
                        return [hashTable.tensorSize()];
                    }
                default:
                    throw TypeError(`Node type ${node.op} is not implemented`);
            }
        };
        exports.executeOp = executeOp;
        const CATEGORY = 'hash_table';
        exports.CATEGORY = CATEGORY;

    }
        , {
        "../../executor/hash_table": 14,
        "./utils": 43
    }],
    33: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.executeOp = exports.CATEGORY = void 0;
        var tfOps = _interopRequireWildcard(require("@tensorflow/tfjs-core/dist/ops/ops_for_converter"));
        var _utils = require("./utils");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        // tslint:disable-next-line: no-imports-from-dist

        const executeOp = (node, tensorMap, context, ops = tfOps) => {
            switch (node.op) {
                case 'ResizeBilinear':
                    {
                        const images = (0,
                            _utils.getParamValue)('images', node, tensorMap, context);
                        const size = (0,
                            _utils.getParamValue)('size', node, tensorMap, context);
                        const alignCorners = (0,
                            _utils.getParamValue)('alignCorners', node, tensorMap, context);
                        const halfPixelCenters = (0,
                            _utils.getParamValue)('halfPixelCenters', node, tensorMap, context);
                        return [ops.image.resizeBilinear(images, [size[0], size[1]], alignCorners, halfPixelCenters)];
                    }
                case 'ResizeNearestNeighbor':
                    {
                        const images = (0,
                            _utils.getParamValue)('images', node, tensorMap, context);
                        const size = (0,
                            _utils.getParamValue)('size', node, tensorMap, context);
                        const alignCorners = (0,
                            _utils.getParamValue)('alignCorners', node, tensorMap, context);
                        const halfPixelCenters = (0,
                            _utils.getParamValue)('halfPixelCenters', node, tensorMap, context);
                        return [ops.image.resizeNearestNeighbor(images, [size[0], size[1]], alignCorners, halfPixelCenters)];
                    }
                case 'CropAndResize':
                    {
                        const image = (0,
                            _utils.getParamValue)('image', node, tensorMap, context);
                        const boxes = (0,
                            _utils.getParamValue)('boxes', node, tensorMap, context);
                        const boxInd = (0,
                            _utils.getParamValue)('boxInd', node, tensorMap, context);
                        const cropSize = (0,
                            _utils.getParamValue)('cropSize', node, tensorMap, context);
                        const method = (0,
                            _utils.getParamValue)('method', node, tensorMap, context);
                        const extrapolationValue = (0,
                            _utils.getParamValue)('extrapolationValue', node, tensorMap, context);
                        return [ops.image.cropAndResize(image, boxes, boxInd, cropSize, method, extrapolationValue)];
                    }
                case 'ImageProjectiveTransformV3':
                    {
                        const images = (0,
                            _utils.getParamValue)('images', node, tensorMap, context);
                        const transforms = (0,
                            _utils.getParamValue)('transforms', node, tensorMap, context);
                        const outputShape = (0,
                            _utils.getParamValue)('outputShape', node, tensorMap, context);
                        const fillValue = (0,
                            _utils.getParamValue)('fillValue', node, tensorMap, context);
                        const interpolation = (0,
                            _utils.getParamValue)('interpolation', node, tensorMap, context);
                        const fillMode = (0,
                            _utils.getParamValue)('fillMode', node, tensorMap, context);
                        return [ops.image.transform(images, transforms, interpolation.toLowerCase(), fillMode.toLowerCase(), fillValue, outputShape)];
                    }
                default:
                    throw TypeError(`Node type ${node.op} is not implemented`);
            }
        };
        exports.executeOp = executeOp;
        const CATEGORY = 'image';
        exports.CATEGORY = CATEGORY;

    }
        , {
        "./utils": 43,
        "@tensorflow/tfjs-core/dist/ops/ops_for_converter": 374
    }],
    34: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.executeOp = exports.CATEGORY = void 0;
        var tfOps = _interopRequireWildcard(require("@tensorflow/tfjs-core/dist/ops/ops_for_converter"));
        var _utils = require("./utils");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        // tslint:disable-next-line: no-imports-from-dist

        const executeOp = (node, tensorMap, context, ops = tfOps) => {
            switch (node.op) {
                case 'Equal':
                    {
                        return [ops.equal((0,
                            _utils.getParamValue)('a', node, tensorMap, context), (0,
                                _utils.getParamValue)('b', node, tensorMap, context))];
                    }
                case 'NotEqual':
                    {
                        return [ops.notEqual((0,
                            _utils.getParamValue)('a', node, tensorMap, context), (0,
                                _utils.getParamValue)('b', node, tensorMap, context))];
                    }
                case 'Greater':
                    {
                        return [ops.greater((0,
                            _utils.getParamValue)('a', node, tensorMap, context), (0,
                                _utils.getParamValue)('b', node, tensorMap, context))];
                    }
                case 'GreaterEqual':
                    {
                        return [ops.greaterEqual((0,
                            _utils.getParamValue)('a', node, tensorMap, context), (0,
                                _utils.getParamValue)('b', node, tensorMap, context))];
                    }
                case 'Less':
                    {
                        return [ops.less((0,
                            _utils.getParamValue)('a', node, tensorMap, context), (0,
                                _utils.getParamValue)('b', node, tensorMap, context))];
                    }
                case 'LessEqual':
                    {
                        return [ops.lessEqual((0,
                            _utils.getParamValue)('a', node, tensorMap, context), (0,
                                _utils.getParamValue)('b', node, tensorMap, context))];
                    }
                case 'LogicalAnd':
                    {
                        return [ops.logicalAnd((0,
                            _utils.getParamValue)('a', node, tensorMap, context), (0,
                                _utils.getParamValue)('b', node, tensorMap, context))];
                    }
                case 'LogicalNot':
                    {
                        return [ops.logicalNot((0,
                            _utils.getParamValue)('a', node, tensorMap, context))];
                    }
                case 'LogicalOr':
                    {
                        return [ops.logicalOr((0,
                            _utils.getParamValue)('a', node, tensorMap, context), (0,
                                _utils.getParamValue)('b', node, tensorMap, context))];
                    }
                case 'Select':
                case 'SelectV2':
                    {
                        return [ops.where((0,
                            _utils.getParamValue)('condition', node, tensorMap, context), (0,
                                _utils.getParamValue)('a', node, tensorMap, context), (0,
                                    _utils.getParamValue)('b', node, tensorMap, context))];
                    }
                default:
                    throw TypeError(`Node type ${node.op} is not implemented`);
            }
        };
        exports.executeOp = executeOp;
        const CATEGORY = 'logical';
        exports.CATEGORY = CATEGORY;

    }
        , {
        "./utils": 43,
        "@tensorflow/tfjs-core/dist/ops/ops_for_converter": 374
    }],
    35: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.executeOp = exports.CATEGORY = void 0;
        var tfOps = _interopRequireWildcard(require("@tensorflow/tfjs-core/dist/ops/ops_for_converter"));
        var _utils = require("./utils");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        // tslint:disable-next-line: no-imports-from-dist

        const executeOp = (node, tensorMap, context, ops = tfOps) => {
            switch (node.op) {
                case 'BatchMatMul':
                case 'BatchMatMulV2':
                case 'MatMul':
                    return [ops.matMul((0,
                        _utils.getParamValue)('a', node, tensorMap, context), (0,
                            _utils.getParamValue)('b', node, tensorMap, context), (0,
                                _utils.getParamValue)('transposeA', node, tensorMap, context), (0,
                                    _utils.getParamValue)('transposeB', node, tensorMap, context))];
                case 'Einsum':
                    return [ops.einsum((0,
                        _utils.getParamValue)('equation', node, tensorMap, context), ...(0,
                            _utils.getParamValue)('tensors', node, tensorMap, context))];
                case 'Transpose':
                    return [ops.transpose((0,
                        _utils.getParamValue)('x', node, tensorMap, context), (0,
                            _utils.getParamValue)('perm', node, tensorMap, context))];
                case '_FusedMatMul':
                    const [extraOp, activationFunc] = (0,
                        _utils.getParamValue)('fusedOps', node, tensorMap, context);
                    const isBiasAdd = extraOp === 'biasadd';
                    const isPrelu = activationFunc === 'prelu';
                    const numArgs = (0,
                        _utils.getParamValue)('numArgs', node, tensorMap, context);
                    const leakyreluAlpha = (0,
                        _utils.getParamValue)('leakyreluAlpha', node, tensorMap, context);
                    if (isBiasAdd) {
                        if (isPrelu && numArgs !== 2) {
                            throw new Error('Fused MatMul with BiasAdd and Prelu must have two ' + 'extra arguments: bias and alpha.');
                        }
                        if (!isPrelu && numArgs !== 1) {
                            throw new Error('Fused MatMul with BiasAdd must have one extra argument: bias.');
                        }
                    }
                    const [biasArg, preluArg] = (0,
                        _utils.getParamValue)('args', node, tensorMap, context);
                    return [ops.fused.matMul({
                        a: (0,
                            _utils.getParamValue)('a', node, tensorMap, context),
                        b: (0,
                            _utils.getParamValue)('b', node, tensorMap, context),
                        transposeA: (0,
                            _utils.getParamValue)('transposeA', node, tensorMap, context),
                        transposeB: (0,
                            _utils.getParamValue)('transposeB', node, tensorMap, context),
                        bias: biasArg,
                        activation: activationFunc,
                        preluActivationWeights: preluArg,
                        leakyreluAlpha
                    })];
                default:
                    throw TypeError(`Node type ${node.op} is not implemented`);
            }
        };
        exports.executeOp = executeOp;
        const CATEGORY = 'matrices';
        exports.CATEGORY = CATEGORY;

    }
        , {
        "./utils": 43,
        "@tensorflow/tfjs-core/dist/ops/ops_for_converter": 374
    }],
    36: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.executeOp = exports.CATEGORY = void 0;
        var tfOps = _interopRequireWildcard(require("@tensorflow/tfjs-core/dist/ops/ops_for_converter"));
        var _utils = require("./utils");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        // tslint:disable-next-line: no-imports-from-dist

        const executeOp = (node, tensorMap, context, ops = tfOps) => {
            switch (node.op) {
                case 'EuclideanNorm':
                    return [ops.euclideanNorm((0,
                        _utils.getParamValue)('x', node, tensorMap, context), (0,
                            _utils.getParamValue)('axis', node, tensorMap, context), (0,
                                _utils.getParamValue)('keepDims', node, tensorMap, context))];
                case 'FusedBatchNorm':
                case 'FusedBatchNormV2':
                    {
                        return [ops.batchNorm((0,
                            _utils.getParamValue)('x', node, tensorMap, context), (0,
                                _utils.getParamValue)('mean', node, tensorMap, context), (0,
                                    _utils.getParamValue)('variance', node, tensorMap, context), (0,
                                        _utils.getParamValue)('offset', node, tensorMap, context), (0,
                                            _utils.getParamValue)('scale', node, tensorMap, context), (0,
                                                _utils.getParamValue)('epsilon', node, tensorMap, context))];
                    }
                case 'FusedBatchNormV3':
                    {
                        return [ops.batchNorm((0,
                            _utils.getParamValue)('x', node, tensorMap, context), (0,
                                _utils.getParamValue)('mean', node, tensorMap, context), (0,
                                    _utils.getParamValue)('variance', node, tensorMap, context), (0,
                                        _utils.getParamValue)('offset', node, tensorMap, context), (0,
                                            _utils.getParamValue)('scale', node, tensorMap, context), (0,
                                                _utils.getParamValue)('epsilon', node, tensorMap, context))];
                    }
                case 'LRN':
                    {
                        return [ops.localResponseNormalization((0,
                            _utils.getParamValue)('x', node, tensorMap, context), (0,
                                _utils.getParamValue)('radius', node, tensorMap, context), (0,
                                    _utils.getParamValue)('bias', node, tensorMap, context), (0,
                                        _utils.getParamValue)('alpha', node, tensorMap, context), (0,
                                            _utils.getParamValue)('beta', node, tensorMap, context))];
                    }
                case 'Softmax':
                    {
                        return [ops.softmax((0,
                            _utils.getParamValue)('x', node, tensorMap, context))];
                    }
                case 'LogSoftmax':
                    {
                        return [ops.logSoftmax((0,
                            _utils.getParamValue)('x', node, tensorMap, context))];
                    }
                case 'SparseToDense':
                    {
                        return [ops.sparseToDense((0,
                            _utils.getParamValue)('sparseIndices', node, tensorMap, context), (0,
                                _utils.getParamValue)('outputShape', node, tensorMap, context), (0,
                                    _utils.getParamValue)('sparseValues', node, tensorMap, context), (0,
                                        _utils.getParamValue)('defaultValue', node, tensorMap, context))];
                    }
                default:
                    throw TypeError(`Node type ${node.op} is not implemented`);
            }
        };
        exports.executeOp = executeOp;
        const CATEGORY = 'normalization';
        exports.CATEGORY = CATEGORY;

    }
        , {
        "./utils": 43,
        "@tensorflow/tfjs-core/dist/ops/ops_for_converter": 374
    }],
    37: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.executeOp = exports.CATEGORY = void 0;
        var tfOps = _interopRequireWildcard(require("@tensorflow/tfjs-core/dist/ops/ops_for_converter"));
        var _utils = require("./utils");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        // tslint:disable-next-line: no-imports-from-dist

        const executeOp = (node, tensorMap, context, ops = tfOps) => {
            switch (node.op) {
                case 'Max':
                    {
                        const axis = (0,
                            _utils.getParamValue)('axis', node, tensorMap, context);
                        const keepDims = (0,
                            _utils.getParamValue)('keepDims', node, tensorMap, context);
                        return [ops.max((0,
                            _utils.getParamValue)('x', node, tensorMap, context), axis, keepDims)];
                    }
                case 'Mean':
                    {
                        const axis = (0,
                            _utils.getParamValue)('axis', node, tensorMap, context);
                        const keepDims = (0,
                            _utils.getParamValue)('keepDims', node, tensorMap, context);
                        return [ops.mean((0,
                            _utils.getParamValue)('x', node, tensorMap, context), axis, keepDims)];
                    }
                case 'Min':
                    {
                        const axis = (0,
                            _utils.getParamValue)('axis', node, tensorMap, context);
                        const keepDims = (0,
                            _utils.getParamValue)('keepDims', node, tensorMap, context);
                        return [ops.min((0,
                            _utils.getParamValue)('x', node, tensorMap, context), axis, keepDims)];
                    }
                case 'Sum':
                    {
                        const axis = (0,
                            _utils.getParamValue)('axis', node, tensorMap, context);
                        const keepDims = (0,
                            _utils.getParamValue)('keepDims', node, tensorMap, context);
                        return [ops.sum((0,
                            _utils.getParamValue)('x', node, tensorMap, context), axis, keepDims)];
                    }
                case 'All':
                    {
                        const axis = (0,
                            _utils.getParamValue)('axis', node, tensorMap, context);
                        const keepDims = (0,
                            _utils.getParamValue)('keepDims', node, tensorMap, context);
                        return [ops.all((0,
                            _utils.getParamValue)('x', node, tensorMap, context), axis, keepDims)];
                    }
                case 'Any':
                    {
                        const axis = (0,
                            _utils.getParamValue)('axis', node, tensorMap, context);
                        const keepDims = (0,
                            _utils.getParamValue)('keepDims', node, tensorMap, context);
                        return [ops.any((0,
                            _utils.getParamValue)('x', node, tensorMap, context), axis, keepDims)];
                    }
                case 'ArgMax':
                    {
                        const axis = (0,
                            _utils.getParamValue)('axis', node, tensorMap, context);
                        return [ops.argMax((0,
                            _utils.getParamValue)('x', node, tensorMap, context), axis)];
                    }
                case 'ArgMin':
                    {
                        const axis = (0,
                            _utils.getParamValue)('axis', node, tensorMap, context);
                        return [ops.argMin((0,
                            _utils.getParamValue)('x', node, tensorMap, context), axis)];
                    }
                case 'Prod':
                    {
                        const axis = (0,
                            _utils.getParamValue)('axis', node, tensorMap, context);
                        const keepDims = (0,
                            _utils.getParamValue)('keepDims', node, tensorMap, context);
                        return [ops.prod((0,
                            _utils.getParamValue)('x', node, tensorMap, context), axis, keepDims)];
                    }
                case 'Cumprod':
                    {
                        const axis = (0,
                            _utils.getParamValue)('axis', node, tensorMap, context);
                        const exclusive = (0,
                            _utils.getParamValue)('exclusive', node, tensorMap, context);
                        const reverse = (0,
                            _utils.getParamValue)('reverse', node, tensorMap, context);
                        return [ops.cumprod((0,
                            _utils.getParamValue)('x', node, tensorMap, context), axis, exclusive, reverse)];
                    }
                case 'Cumsum':
                    {
                        const axis = (0,
                            _utils.getParamValue)('axis', node, tensorMap, context);
                        const exclusive = (0,
                            _utils.getParamValue)('exclusive', node, tensorMap, context);
                        const reverse = (0,
                            _utils.getParamValue)('reverse', node, tensorMap, context);
                        return [ops.cumsum((0,
                            _utils.getParamValue)('x', node, tensorMap, context), axis, exclusive, reverse)];
                    }
                case 'Bincount':
                    const x = (0,
                        _utils.getParamValue)('x', node, tensorMap, context);
                    const weights = (0,
                        _utils.getParamValue)('weights', node, tensorMap, context);
                    const size = (0,
                        _utils.getParamValue)('size', node, tensorMap, context);
                    return [ops.bincount(x, weights, size)];
                case 'DenseBincount':
                    {
                        const x = (0,
                            _utils.getParamValue)('x', node, tensorMap, context);
                        const weights = (0,
                            _utils.getParamValue)('weights', node, tensorMap, context);
                        const size = (0,
                            _utils.getParamValue)('size', node, tensorMap, context);
                        const binaryOutput = (0,
                            _utils.getParamValue)('binaryOutput', node, tensorMap, context);
                        return [ops.denseBincount(x, weights, size, binaryOutput)];
                    }
                default:
                    throw TypeError(`Node type ${node.op} is not implemented`);
            }
        };
        exports.executeOp = executeOp;
        const CATEGORY = 'reduction';
        exports.CATEGORY = CATEGORY;

    }
        , {
        "./utils": 43,
        "@tensorflow/tfjs-core/dist/ops/ops_for_converter": 374
    }],
    38: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.executeOp = exports.CATEGORY = void 0;
        var _tfjsCore = require("@tensorflow/tfjs-core");
        var tfOps = _interopRequireWildcard(require("@tensorflow/tfjs-core/dist/ops/ops_for_converter"));
        var _utils = require("./utils");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        // tslint:disable-next-line: no-imports-from-dist

        const executeOp = (node, tensorMap, context, ops = tfOps) => {
            switch (node.op) {
                case 'ConcatV2':
                case 'Concat':
                    {
                        const n = (0,
                            _utils.getParamValue)('n', node, tensorMap, context);
                        const axis = (0,
                            _utils.getParamValue)('axis', node, tensorMap, context);
                        let inputs = (0,
                            _utils.getParamValue)('tensors', node, tensorMap, context);
                        inputs = inputs.slice(0, n);
                        return [ops.concat(inputs, axis)];
                    }
                case 'Gather':
                    {
                        const input = (0,
                            _utils.getParamValue)('x', node, tensorMap, context);
                        const indices = (0,
                            _utils.getParamValue)('indices', node, tensorMap, context);
                        return [ops.gather(input, ops.cast(indices, 'int32'), 0)];
                    }
                case 'GatherV2':
                    {
                        const axis = (0,
                            _utils.getParamValue)('axis', node, tensorMap, context);
                        const batchDims = (0,
                            _utils.getParamValue)('batchDims', node, tensorMap, context);
                        const input = (0,
                            _utils.getParamValue)('x', node, tensorMap, context);
                        const indices = (0,
                            _utils.getParamValue)('indices', node, tensorMap, context);
                        return [ops.gather(input, ops.cast(indices, 'int32'), axis, batchDims)];
                    }
                case 'Reverse':
                    {
                        const dims = (0,
                            _utils.getParamValue)('dims', node, tensorMap, context);
                        const axis = [];
                        for (let i = 0; i < dims.length; i++) {
                            if (dims[i]) {
                                axis.push(i);
                            }
                        }
                        const input = (0,
                            _utils.getParamValue)('x', node, tensorMap, context);
                        return [ops.reverse(input, axis)];
                    }
                case 'ReverseV2':
                    {
                        const axis = (0,
                            _utils.getParamValue)('axis', node, tensorMap, context);
                        const input = (0,
                            _utils.getParamValue)('x', node, tensorMap, context);
                        return [ops.reverse(input, axis)];
                    }
                case 'Slice':
                    {
                        // tslint:disable-next-line:no-any
                        const begin = (0,
                            _utils.getParamValue)('begin', node, tensorMap, context);
                        // tslint:disable-next-line:no-any
                        const size = (0,
                            _utils.getParamValue)('size', node, tensorMap, context);
                        return [ops.slice((0,
                            _utils.getParamValue)('x', node, tensorMap, context), begin, size)];
                    }
                case 'StridedSlice':
                    {
                        const begin = (0,
                            _utils.getParamValue)('begin', node, tensorMap, context);
                        const end = (0,
                            _utils.getParamValue)('end', node, tensorMap, context);
                        const strides = (0,
                            _utils.getParamValue)('strides', node, tensorMap, context);
                        const beginMask = (0,
                            _utils.getParamValue)('beginMask', node, tensorMap, context);
                        const endMask = (0,
                            _utils.getParamValue)('endMask', node, tensorMap, context);
                        const ellipsisMask = (0,
                            _utils.getParamValue)('ellipsisMask', node, tensorMap, context);
                        const newAxisMask = (0,
                            _utils.getParamValue)('newAxisMask', node, tensorMap, context);
                        const shrinkAxisMask = (0,
                            _utils.getParamValue)('shrinkAxisMask', node, tensorMap, context);
                        const tensor = (0,
                            _utils.getParamValue)('x', node, tensorMap, context);
                        return [ops.stridedSlice(tensor, begin, end, strides, beginMask, endMask, ellipsisMask, newAxisMask, shrinkAxisMask)];
                    }
                case 'Pack':
                    {
                        return (0,
                            _tfjsCore.tidy)(() => {
                                const axis = (0,
                                    _utils.getParamValue)('axis', node, tensorMap, context);
                                const tensors = (0,
                                    _utils.getParamValue)('tensors', node, tensorMap, context);
                                // Reshape the tensors to the first tensor's shape if they don't
                                // match.
                                const shape = tensors[0].shape;
                                const squeezedShape = ops.squeeze(tensors[0]).shape;
                                const mapped = tensors.map(tensor => {
                                    const sameShape = _tfjsCore.util.arraysEqual(tensor.shape, shape);
                                    if (!sameShape && !_tfjsCore.util.arraysEqual(ops.squeeze(tensor).shape, squeezedShape)) {
                                        throw new Error('the input tensors shape does not match');
                                    }
                                    return sameShape ? tensor : ops.reshape(tensor, shape);
                                }
                                );
                                return [ops.stack(mapped, axis)];
                            }
                            );
                    }
                case 'Unpack':
                    {
                        const axis = (0,
                            _utils.getParamValue)('axis', node, tensorMap, context);
                        const tensor = (0,
                            _utils.getParamValue)('tensor', node, tensorMap, context);
                        return ops.unstack(tensor, axis);
                    }
                case 'Tile':
                    {
                        const reps = (0,
                            _utils.getParamValue)('reps', node, tensorMap, context);
                        return [ops.tile((0,
                            _utils.getParamValue)('x', node, tensorMap, context), reps)];
                    }
                case 'Split':
                case 'SplitV':
                    {
                        const axis = (0,
                            _utils.getParamValue)('axis', node, tensorMap, context);
                        const numOrSizeSplits = (0,
                            _utils.getParamValue)('numOrSizeSplits', node, tensorMap, context);
                        const tensor = (0,
                            _utils.getParamValue)('x', node, tensorMap, context);
                        return ops.split(tensor, numOrSizeSplits, axis);
                    }
                case 'ScatterNd':
                    {
                        const indices = (0,
                            _utils.getParamValue)('indices', node, tensorMap, context);
                        const values = (0,
                            _utils.getParamValue)('values', node, tensorMap, context);
                        const shape = (0,
                            _utils.getParamValue)('shape', node, tensorMap, context);
                        return [ops.scatterND(indices, values, shape)];
                    }
                case 'GatherNd':
                    {
                        const x = (0,
                            _utils.getParamValue)('x', node, tensorMap, context);
                        const indices = (0,
                            _utils.getParamValue)('indices', node, tensorMap, context);
                        return [ops.gatherND(x, indices)];
                    }
                case 'SparseToDense':
                    {
                        const indices = (0,
                            _utils.getParamValue)('sparseIndices', node, tensorMap, context);
                        const shape = (0,
                            _utils.getParamValue)('outputShape', node, tensorMap, context);
                        const sparseValues = (0,
                            _utils.getParamValue)('sparseValues', node, tensorMap, context);
                        const defaultValue = (0,
                            _utils.getParamValue)('defaultValue', node, tensorMap, context);
                        return [ops.sparseToDense(indices, sparseValues, shape, sparseValues.dtype === defaultValue.dtype ? defaultValue : ops.cast(defaultValue, sparseValues.dtype))];
                    }
                default:
                    throw TypeError(`Node type ${node.op} is not implemented`);
            }
        };
        exports.executeOp = executeOp;
        const CATEGORY = 'slice_join';
        exports.CATEGORY = CATEGORY;

    }
        , {
        "./utils": 43,
        "@tensorflow/tfjs-core": 506,
        "@tensorflow/tfjs-core/dist/ops/ops_for_converter": 374
    }],
    39: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.executeOp = exports.CATEGORY = void 0;
        var tfOps = _interopRequireWildcard(require("@tensorflow/tfjs-core/dist/ops/ops_for_converter"));
        var _utils = require("./utils");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2021 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        // tslint:disable-next-line: no-imports-from-dist

        const executeOp = (node, tensorMap, context, ops = tfOps) => {
            switch (node.op) {
                case 'SparseFillEmptyRows':
                    {
                        const { outputIndices, outputValues, emptyRowIndicator, reverseIndexMap } = ops.sparse.sparseFillEmptyRows((0,
                            _utils.getParamValue)('indices', node, tensorMap, context), (0,
                                _utils.getParamValue)('values', node, tensorMap, context), (0,
                                    _utils.getParamValue)('denseShape', node, tensorMap, context), (0,
                                        _utils.getParamValue)('defaultValue', node, tensorMap, context));
                        return [outputIndices, outputValues, emptyRowIndicator, reverseIndexMap];
                    }
                case 'SparseReshape':
                    {
                        const { outputIndices, outputShape } = ops.sparse.sparseReshape((0,
                            _utils.getParamValue)('inputIndices', node, tensorMap, context), (0,
                                _utils.getParamValue)('inputShape', node, tensorMap, context), (0,
                                    _utils.getParamValue)('newShape', node, tensorMap, context));
                        return [outputIndices, outputShape];
                    }
                case 'SparseSegmentMean':
                    {
                        const outputData = ops.sparse.sparseSegmentMean((0,
                            _utils.getParamValue)('data', node, tensorMap, context), (0,
                                _utils.getParamValue)('indices', node, tensorMap, context), (0,
                                    _utils.getParamValue)('segmentIds', node, tensorMap, context));
                        return [outputData];
                    }
                case 'SparseSegmentSum':
                    {
                        const outputData = ops.sparse.sparseSegmentSum((0,
                            _utils.getParamValue)('data', node, tensorMap, context), (0,
                                _utils.getParamValue)('indices', node, tensorMap, context), (0,
                                    _utils.getParamValue)('segmentIds', node, tensorMap, context));
                        return [outputData];
                    }
                default:
                    throw TypeError(`Node type ${node.op} is not implemented`);
            }
        };
        exports.executeOp = executeOp;
        const CATEGORY = 'sparse';
        exports.CATEGORY = CATEGORY;

    }
        , {
        "./utils": 43,
        "@tensorflow/tfjs-core/dist/ops/ops_for_converter": 374
    }],
    40: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.executeOp = exports.CATEGORY = void 0;
        var tfOps = _interopRequireWildcard(require("@tensorflow/tfjs-core/dist/ops/ops_for_converter"));
        var _utils = require("./utils");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        // tslint:disable-next-line: no-imports-from-dist

        const executeOp = (node, tensorMap, context, ops = tfOps) => {
            switch (node.op) {
                case 'FFT':
                    {
                        return [ops.fft((0,
                            _utils.getParamValue)('x', node, tensorMap, context))];
                    }
                case 'IFFT':
                    {
                        return [ops.ifft((0,
                            _utils.getParamValue)('x', node, tensorMap, context))];
                    }
                case 'RFFT':
                    {
                        return [ops.rfft((0,
                            _utils.getParamValue)('x', node, tensorMap, context))];
                    }
                case 'IRFFT':
                    {
                        return [ops.irfft((0,
                            _utils.getParamValue)('x', node, tensorMap, context))];
                    }
                default:
                    throw TypeError(`Node type ${node.op} is not implemented`);
            }
        };
        exports.executeOp = executeOp;
        const CATEGORY = 'spectral';
        exports.CATEGORY = CATEGORY;

    }
        , {
        "./utils": 43,
        "@tensorflow/tfjs-core/dist/ops/ops_for_converter": 374
    }],
    41: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.executeOp = exports.CATEGORY = void 0;
        var tfOps = _interopRequireWildcard(require("@tensorflow/tfjs-core/dist/ops/ops_for_converter"));
        var _utils = require("./utils");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2021 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        // tslint:disable-next-line: no-imports-from-dist

        const executeOp = (node, tensorMap, context, ops = tfOps) => {
            switch (node.op) {
                case 'StringNGrams':
                    {
                        const { nGrams, nGramsSplits } = ops.string.stringNGrams((0,
                            _utils.getParamValue)('data', node, tensorMap, context), (0,
                                _utils.getParamValue)('dataSplits', node, tensorMap, context), (0,
                                    _utils.getParamValue)('separator', node, tensorMap, context), (0,
                                        _utils.getParamValue)('nGramWidths', node, tensorMap, context), (0,
                                            _utils.getParamValue)('leftPad', node, tensorMap, context), (0,
                                                _utils.getParamValue)('rightPad', node, tensorMap, context), (0,
                                                    _utils.getParamValue)('padWidth', node, tensorMap, context), (0,
                                                        _utils.getParamValue)('preserveShortSequences', node, tensorMap, context));
                        return [nGrams, nGramsSplits];
                    }
                case 'StringSplit':
                    {
                        const { indices, values, shape } = ops.string.stringSplit((0,
                            _utils.getParamValue)('input', node, tensorMap, context), (0,
                                _utils.getParamValue)('delimiter', node, tensorMap, context), (0,
                                    _utils.getParamValue)('skipEmpty', node, tensorMap, context));
                        return [indices, values, shape];
                    }
                case 'StringToHashBucketFast':
                    {
                        const output = ops.string.stringToHashBucketFast((0,
                            _utils.getParamValue)('input', node, tensorMap, context), (0,
                                _utils.getParamValue)('numBuckets', node, tensorMap, context));
                        return [output];
                    }
                default:
                    throw TypeError(`Node type ${node.op} is not implemented`);
            }
        };
        exports.executeOp = executeOp;
        const CATEGORY = 'string';
        exports.CATEGORY = CATEGORY;

    }
        , {
        "./utils": 43,
        "@tensorflow/tfjs-core/dist/ops/ops_for_converter": 374
    }],
    42: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.executeOp = exports.CATEGORY = void 0;
        var tfOps = _interopRequireWildcard(require("@tensorflow/tfjs-core/dist/ops/ops_for_converter"));
        var _utils = require("./utils");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        // tslint:disable-next-line: no-imports-from-dist

        const executeOp = (node, tensorMap, context, ops = tfOps) => {
            switch (node.op) {
                case 'Cast':
                    {
                        return [ops.cast((0,
                            _utils.getParamValue)('x', node, tensorMap, context), (0,
                                _utils.getParamValue)('dtype', node, tensorMap, context))];
                    }
                case 'ExpandDims':
                    {
                        const axis = (0,
                            _utils.getParamValue)('axis', node, tensorMap, context);
                        return [ops.expandDims((0,
                            _utils.getParamValue)('x', node, tensorMap, context), axis)];
                    }
                case 'Squeeze':
                    {
                        const axis = (0,
                            _utils.getParamValue)('axis', node, tensorMap, context);
                        return [ops.squeeze((0,
                            _utils.getParamValue)('x', node, tensorMap, context), axis)];
                    }
                case 'Reshape':
                    {
                        return [ops.reshape((0,
                            _utils.getParamValue)('x', node, tensorMap, context), (0,
                                _utils.getParamValue)('shape', node, tensorMap, context))];
                    }
                case 'MirrorPad':
                    {
                        return [ops.mirrorPad((0,
                            _utils.getParamValue)('x', node, tensorMap, context), (0,
                                _utils.getParamValue)('padding', node, tensorMap, context), (0,
                                    _utils.getParamValue)('mode', node, tensorMap, context))];
                    }
                case 'PadV2':
                case 'Pad':
                    {
                        return [ops.pad((0,
                            _utils.getParamValue)('x', node, tensorMap, context), (0,
                                _utils.getParamValue)('padding', node, tensorMap, context), (0,
                                    _utils.getParamValue)('constantValue', node, tensorMap, context))];
                    }
                case 'SpaceToBatchND':
                    {
                        const blockShape = (0,
                            _utils.getParamValue)('blockShape', node, tensorMap, context);
                        const paddings = (0,
                            _utils.getParamValue)('paddings', node, tensorMap, context);
                        return [ops.spaceToBatchND((0,
                            _utils.getParamValue)('x', node, tensorMap, context), blockShape, paddings)];
                    }
                case 'BatchToSpaceND':
                    {
                        const blockShape = (0,
                            _utils.getParamValue)('blockShape', node, tensorMap, context);
                        const crops = (0,
                            _utils.getParamValue)('crops', node, tensorMap, context);
                        return [ops.batchToSpaceND((0,
                            _utils.getParamValue)('x', node, tensorMap, context), blockShape, crops)];
                    }
                case 'DepthToSpace':
                    {
                        const blockSize = (0,
                            _utils.getParamValue)('blockSize', node, tensorMap, context);
                        const dataFormat = (0,
                            _utils.getParamValue)('dataFormat', node, tensorMap, context).toUpperCase();
                        return [ops.depthToSpace((0,
                            _utils.getParamValue)('x', node, tensorMap, context), blockSize, dataFormat)];
                    }
                case 'BroadcastTo':
                    {
                        return [ops.broadcastTo((0,
                            _utils.getParamValue)('x', node, tensorMap, context), (0,
                                _utils.getParamValue)('shape', node, tensorMap, context))];
                    }
                case 'BroadcastArgs':
                    {
                        return [ops.broadcastArgs((0,
                            _utils.getParamValue)('s0', node, tensorMap, context), (0,
                                _utils.getParamValue)('s1', node, tensorMap, context))];
                    }
                default:
                    throw TypeError(`Node type ${node.op} is not implemented`);
            }
        };
        exports.executeOp = executeOp;
        const CATEGORY = 'transformation';
        exports.CATEGORY = CATEGORY;

    }
        , {
        "./utils": 43,
        "@tensorflow/tfjs-core/dist/ops/ops_for_converter": 374
    }],
    43: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.cloneTensor = cloneTensor;
        exports.getNodeNameAndIndex = getNodeNameAndIndex;
        exports.getPadding = getPadding;
        exports.getParamValue = getParamValue;
        exports.getTensor = getTensor;
        exports.getTensorsForCurrentContenxt = getTensorsForCurrentContenxt;
        exports.parseNodeName = parseNodeName;
        exports.split = split;
        var _tfjsCore = require("@tensorflow/tfjs-core");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        function getParamValue(paramName, node, tensorMap, context, resourceManager) {
            const inputParam = node.inputParams[paramName];
            if (inputParam && inputParam.inputIndexStart !== undefined) {
                const start = inputParam.inputIndexStart;
                const end = inputParam.inputIndexEnd === 0 ? undefined : inputParam.inputIndexEnd === undefined ? start + 1 : inputParam.inputIndexEnd;
                if (inputParam.type === 'tensor') {
                    return getTensor(node.inputNames[inputParam.inputIndexStart], tensorMap, context, resourceManager);
                }
                if (inputParam.type === 'tensors') {
                    const inputs = node.inputNames.slice(start, end);
                    return inputs.map(name => getTensor(name, tensorMap, context, resourceManager));
                }
                const tensor = getTensor(node.inputNames.slice(start)[0], tensorMap, context, resourceManager);
                const data = tensor.dataSync();
                return inputParam.type === 'number' ? data[0] : _tfjsCore.util.toNestedArray(tensor.shape, data);
            }
            const attrParam = node.attrParams[paramName];
            return attrParam && attrParam.value;
        }
        /**
         * Retrieve the tensor from tensorsMap based on input name.
         * @param name Node input name
         * @param tensorsMap Tensors map keyed by the node
         * @param context contains tensors and information for running the current node.
         * @param resourceManager Optional. Contains global resources of the model.
         */
        function getTensor(name, tensorsMap, context, resourceManager) {
            const [nodeName, index] = parseNodeName(name);
            if (resourceManager != null) {
                const tensor = resourceManager.getHashTableHandleByName(nodeName);
                if (tensor != null) {
                    return tensor;
                }
            }
            const contextId = context.currentContextIds.find(contextId => {
                return !!tensorsMap[getNodeNameWithContextId(nodeName, contextId)];
            }
            );
            return contextId !== undefined ? tensorsMap[getNodeNameWithContextId(nodeName, contextId)][index] : undefined;
        }
        /**
         * Retrieve the tensors based on input name for current context.
         * @param name Node input name
         * @param tensorsMap Tensors map keyed by the node
         */
        function getTensorsForCurrentContenxt(name, tensorsMap, context) {
            return tensorsMap[getNodeNameWithContextId(name, context.currentContextId)];
        }
        /**
         * Returns the node name, outputName and index from the Node input name.
         * @param inputName The input name of the node, in format of
         * node_name:output_index, i.e. MatMul:0, if the output_index is not set, it is
         * default to 0.
         * If the input name contains output name i.e. StringSplit:indices:0, it will
         * return ['StringSplit', 0, 'indices'].
         */
        function getNodeNameAndIndex(inputName, context) {
            const [nodeName, index, outputName] = parseNodeName(inputName);
            return [getNodeNameWithContextId(nodeName, context && context.currentContextId), index, outputName];
        }
        function getNodeNameWithContextId(name, contextId) {
            return !!contextId ? `${name}-${contextId}` : name;
        }
        function parseNodeName(name) {
            const parts = name.split(':');
            if (parts.length === 1) {
                return [name, 0, undefined];
            }
            const nodeName = parts[0];
            const outputName = parts.length === 3 ? parts[1] : undefined;
            const index = Number(parts[parts.length - 1]);
            return [nodeName, index, outputName];
        }
        function split(arr, size) {
            const res = [];
            for (let i = 0; i < arr.length; i += size) {
                res.push(arr.slice(i, i + size));
            }
            return res;
        }
        function getPadding(node, tensorMap, context) {
            let pad = getParamValue('pad', node, tensorMap, context);
            if (pad === 'explicit') {
                // This is 1d array, we need to convert it to 2d array
                pad = getParamValue('explicitPaddings', node, tensorMap, context);
                const explicitPadding = [[0, 0], [0, 0], [0, 0], [0, 0]];
                for (let i = 0; i < 4; i++) {
                    explicitPadding[i][0] = pad[i * 2];
                    explicitPadding[i][1] = pad[i * 2 + 1];
                }
                return explicitPadding;
            }
            return pad;
        }
        /**
         *  Reuse the tensor if it is marked as keep, otherwise clone the tensor to
         *  avoid disposal. This is important for TensorArray and TensorList ops, since
         *  internally they use a tensor as the id for TensorArray and TensorList, and
         * to simplify lookup, they also use Tensor.id as the key to the internal map.
         * These id tensors have been marked as kept in the backend, we need avoid clone
         * them in order to create new Tensor.id.
         * @param tensor
         */
        function cloneTensor(tensor) {
            return tensor.kept ? tensor : (0,
                _tfjsCore.clone)(tensor);
        }

    }
        , {
        "@tensorflow/tfjs-core": 506
    }],
    44: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.json = void 0;
        /**
         * @license
         * Copyright 2022 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        const json = [{
            'tfOpName': 'Add',
            'category': 'arithmetic',
            'inputs': [{
                'start': 0,
                'name': 'a',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'b',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'AddV2',
            'category': 'arithmetic',
            'inputs': [{
                'start': 0,
                'name': 'a',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'b',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'AddN',
            'category': 'arithmetic',
            'inputs': [{
                'start': 0,
                'end': 0,
                'name': 'tensors',
                'type': 'tensors'
            }]
        }, {
            'tfOpName': 'BiasAdd',
            'category': 'arithmetic',
            'inputs': [{
                'start': 0,
                'name': 'a',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'b',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }, {
                'tfName': 'data_format',
                'name': 'dataFormat',
                'type': 'string',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'Sub',
            'category': 'arithmetic',
            'inputs': [{
                'start': 0,
                'name': 'a',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'b',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'RealDiv',
            'category': 'arithmetic',
            'inputs': [{
                'start': 0,
                'name': 'a',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'b',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'Div',
            'category': 'arithmetic',
            'inputs': [{
                'start': 0,
                'name': 'a',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'b',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'DivNoNan',
            'category': 'arithmetic',
            'inputs': [{
                'start': 0,
                'name': 'a',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'b',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'FloorDiv',
            'category': 'arithmetic',
            'inputs': [{
                'start': 0,
                'name': 'a',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'b',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'Mul',
            'category': 'arithmetic',
            'inputs': [{
                'start': 0,
                'name': 'a',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'b',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'Maximum',
            'category': 'arithmetic',
            'inputs': [{
                'start': 0,
                'name': 'a',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'b',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'Minimum',
            'category': 'arithmetic',
            'inputs': [{
                'start': 0,
                'name': 'a',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'b',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'Pow',
            'category': 'arithmetic',
            'inputs': [{
                'start': 0,
                'name': 'a',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'b',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'SquaredDifference',
            'category': 'arithmetic',
            'inputs': [{
                'start': 0,
                'name': 'a',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'b',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'Mod',
            'category': 'arithmetic',
            'inputs': [{
                'start': 0,
                'name': 'a',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'b',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'FloorMod',
            'category': 'arithmetic',
            'inputs': [{
                'start': 0,
                'name': 'a',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'b',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }];
        exports.json = json;

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

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.json = void 0;
        /**
         * @license
         * Copyright 2022 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        const json = [{
            'tfOpName': 'Abs',
            'category': 'basic_math',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'Acos',
            'category': 'basic_math',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'Asin',
            'category': 'basic_math',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'Atan',
            'category': 'basic_math',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'Atan2',
            'category': 'basic_math',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'y',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'Ceil',
            'category': 'basic_math',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'ClipByValue',
            'category': 'basic_math',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'clipValueMin',
                'type': 'number'
            }, {
                'start': 2,
                'name': 'clipValueMax',
                'type': 'number'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'Complex',
            'category': 'basic_math',
            'inputs': [{
                'start': 0,
                'name': 'real',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'imag',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'ComplexAbs',
            'category': 'basic_math',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'Cos',
            'category': 'basic_math',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'Cosh',
            'category': 'basic_math',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'Elu',
            'category': 'basic_math',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'Exp',
            'category': 'basic_math',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'Floor',
            'category': 'basic_math',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'Log',
            'category': 'basic_math',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'Imag',
            'category': 'basic_math',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }, {
                'tfName': 'Tout',
                'name': 'outputType',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'Neg',
            'category': 'basic_math',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'Real',
            'category': 'basic_math',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }, {
                'tfName': 'Tout',
                'name': 'outputType',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'Prelu',
            'category': 'basic_math',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'alpha',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'Relu',
            'category': 'basic_math',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'Relu6',
            'category': 'basic_math',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'Selu',
            'category': 'basic_math',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'Sigmoid',
            'category': 'basic_math',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'Sin',
            'category': 'basic_math',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'Sinh',
            'category': 'basic_math',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'Sqrt',
            'category': 'basic_math',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'Rsqrt',
            'category': 'basic_math',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'Square',
            'category': 'basic_math',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'Tan',
            'category': 'basic_math',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'Tanh',
            'category': 'basic_math',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'Sign',
            'category': 'basic_math',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'Round',
            'category': 'basic_math',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'Expm1',
            'category': 'basic_math',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'Log1p',
            'category': 'basic_math',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'Reciprocal',
            'category': 'basic_math',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'Softplus',
            'category': 'basic_math',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'Asinh',
            'category': 'basic_math',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'Acosh',
            'category': 'basic_math',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'Atanh',
            'category': 'basic_math',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'Erf',
            'category': 'basic_math',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'Prod',
            'category': 'basic_math',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'axes',
                'type': 'number[]'
            }],
            'attrs': [{
                'tfName': 'keep_dims',
                'name': 'keepDims',
                'type': 'bool',
                'notSupported': true
            }, {
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'LeakyRelu',
            'category': 'basic_math',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'alpha',
                'name': 'alpha',
                'type': 'number',
                'defaultValue': 0.2
            }, {
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'IsNan',
            'category': 'basic_math',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }];
        exports.json = json;

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

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.json = void 0;
        /**
         * @license
         * Copyright 2022 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        const json = [{
            'tfOpName': 'EmptyTensorList',
            'category': 'control',
            'inputs': [{
                'start': 0,
                'name': 'elementShape',
                'type': 'shape'
            }, {
                'start': 1,
                'name': 'maxNumElements',
                'type': 'number'
            }],
            'attrs': [{
                'tfName': 'element_dtype',
                'name': 'elementDType',
                'type': 'dtype'
            }]
        }, {
            'tfOpName': 'LoopCond',
            'category': 'control',
            'inputs': [{
                'start': 0,
                'name': 'pred',
                'type': 'tensor'
            }]
        }, {
            'tfOpName': 'Switch',
            'category': 'control',
            'inputs': [{
                'start': 0,
                'name': 'data',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'pred',
                'type': 'tensor'
            }]
        }, {
            'tfOpName': 'Merge',
            'category': 'control',
            'inputs': [{
                'start': 0,
                'end': 0,
                'name': 'tensors',
                'type': 'tensors'
            }]
        }, {
            'tfOpName': 'Enter',
            'category': 'control',
            'inputs': [{
                'start': 0,
                'name': 'tensor',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }, {
                'tfName': 'frame_name',
                'name': 'frameName',
                'type': 'string'
            }, {
                'tfName': 'is_constant',
                'name': 'isConstant',
                'type': 'bool'
            }]
        }, {
            'tfOpName': 'Exit',
            'category': 'control',
            'inputs': [{
                'start': 0,
                'name': 'tensor',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'NextIteration',
            'category': 'control',
            'inputs': [{
                'start': 0,
                'name': 'tensor',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'TensorArrayV3',
            'category': 'control',
            'inputs': [{
                'start': 0,
                'name': 'size',
                'type': 'number'
            }],
            'attrs': [{
                'tfName': 'dtype',
                'name': 'dtype',
                'type': 'dtype'
            }, {
                'tfName': 'element_shape',
                'name': 'elementShape',
                'type': 'shape'
            }, {
                'tfName': 'dynamic_size',
                'name': 'dynamicSize',
                'type': 'bool'
            }, {
                'tfName': 'clear_after_read',
                'name': 'clearAfterRead',
                'type': 'bool'
            }, {
                'tfName': 'identical_element_shapes',
                'name': 'identicalElementShapes',
                'type': 'bool'
            }, {
                'tfName': 'tensor_array_name',
                'name': 'name',
                'type': 'string'
            }]
        }, {
            'tfOpName': 'TensorArrayWriteV3',
            'category': 'control',
            'inputs': [{
                'start': 0,
                'name': 'tensorArrayId',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'index',
                'type': 'number'
            }, {
                'start': 2,
                'name': 'tensor',
                'type': 'tensor'
            }, {
                'start': 3,
                'name': 'flowIn',
                'type': 'number'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'TensorArrayReadV3',
            'category': 'control',
            'inputs': [{
                'start': 0,
                'name': 'tensorArrayId',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'index',
                'type': 'number'
            }, {
                'start': 2,
                'name': 'flowIn',
                'type': 'number'
            }],
            'attrs': [{
                'tfName': 'dtype',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'TensorArrayGatherV3',
            'category': 'control',
            'inputs': [{
                'start': 0,
                'name': 'tensorArrayId',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'indices',
                'type': 'number[]'
            }, {
                'start': 2,
                'name': 'flowIn',
                'type': 'number'
            }],
            'attrs': [{
                'tfName': 'dtype',
                'name': 'dtype',
                'type': 'dtype'
            }, {
                'tfName': 'element_shape',
                'name': 'elementShape',
                'type': 'shape'
            }]
        }, {
            'tfOpName': 'TensorArrayScatterV3',
            'category': 'control',
            'inputs': [{
                'start': 0,
                'name': 'tensorArrayId',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'indices',
                'type': 'number[]'
            }, {
                'start': 2,
                'name': 'tensor',
                'type': 'tensor'
            }, {
                'start': 3,
                'name': 'flowIn',
                'type': 'number'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype'
            }]
        }, {
            'tfOpName': 'TensorArrayConcatV3',
            'category': 'control',
            'inputs': [{
                'start': 0,
                'name': 'tensorArrayId',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'flowIn',
                'type': 'number'
            }],
            'attrs': [{
                'tfName': 'dtype',
                'name': 'dtype',
                'type': 'dtype'
            }, {
                'tfName': 'element_shape_except0',
                'name': 'elementShapeExcept0',
                'type': 'shape',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'TensorArraySplitV3',
            'category': 'control',
            'inputs': [{
                'start': 0,
                'name': 'tensorArrayId',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'tensor',
                'type': 'tensor'
            }, {
                'start': 2,
                'name': 'lengths',
                'type': 'number[]'
            }, {
                'start': 3,
                'name': 'flowIn',
                'type': 'number'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype'
            }]
        }, {
            'tfOpName': 'TensorArraySizeV3',
            'category': 'control',
            'inputs': [{
                'start': 0,
                'name': 'tensorArrayId',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'flowIn',
                'type': 'number'
            }]
        }, {
            'tfOpName': 'TensorArrayCloseV3',
            'category': 'control',
            'inputs': [{
                'start': 0,
                'name': 'tensorArrayId',
                'type': 'tensor'
            }]
        }, {
            'tfOpName': 'StatelessIf',
            'category': 'control',
            'inputs': [{
                'start': 0,
                'name': 'cond',
                'type': 'tensor'
            }, {
                'start': 1,
                'end': 0,
                'name': 'args',
                'type': 'tensors'
            }],
            'attrs': [{
                'tfName': 'then_branch',
                'name': 'thenBranch',
                'type': 'func'
            }, {
                'tfName': 'else_branch',
                'name': 'elseBranch',
                'type': 'func'
            }]
        }, {
            'tfOpName': 'If',
            'category': 'control',
            'inputs': [{
                'start': 0,
                'name': 'cond',
                'type': 'tensor'
            }, {
                'start': 1,
                'end': 0,
                'name': 'args',
                'type': 'tensors'
            }],
            'attrs': [{
                'tfName': 'then_branch',
                'name': 'thenBranch',
                'type': 'func'
            }, {
                'tfName': 'else_branch',
                'name': 'elseBranch',
                'type': 'func'
            }]
        }, {
            'tfOpName': 'StatelessWhile',
            'category': 'control',
            'inputs': [{
                'start': 0,
                'end': 0,
                'name': 'args',
                'type': 'tensors'
            }],
            'attrs': [{
                'tfName': 'cond',
                'name': 'cond',
                'type': 'func'
            }, {
                'tfName': 'body',
                'name': 'body',
                'type': 'func'
            }]
        }, {
            'tfOpName': 'While',
            'category': 'control',
            'inputs': [{
                'start': 0,
                'end': 0,
                'name': 'args',
                'type': 'tensors'
            }],
            'attrs': [{
                'tfName': 'cond',
                'name': 'cond',
                'type': 'func'
            }, {
                'tfName': 'body',
                'name': 'body',
                'type': 'func'
            }]
        }, {
            'tfOpName': 'TensorListScatter',
            'category': 'control',
            'inputs': [{
                'start': 0,
                'name': 'tensor',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'indices',
                'type': 'number[]'
            }, {
                'start': 2,
                'name': 'elementShape',
                'type': 'shape'
            }],
            'attrs': [{
                'tfName': 'element_dtype',
                'name': 'elementDType',
                'type': 'dtype'
            }]
        }, {
            'tfOpName': 'TensorListScatterV2',
            'category': 'control',
            'inputs': [{
                'start': 0,
                'name': 'tensor',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'indices',
                'type': 'number[]'
            }, {
                'start': 2,
                'name': 'elementShape',
                'type': 'shape'
            }, {
                'start': 3,
                'name': 'numElements',
                'type': 'number'
            }],
            'attrs': [{
                'tfName': 'element_dtype',
                'name': 'elementDType',
                'type': 'dtype'
            }]
        }, {
            'tfOpName': 'TensorListGather',
            'category': 'control',
            'inputs': [{
                'start': 0,
                'name': 'tensorListId',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'indices',
                'type': 'number[]'
            }, {
                'start': 2,
                'name': 'elementShape',
                'type': 'shape'
            }],
            'attrs': [{
                'tfName': 'element_dtype',
                'name': 'elementDType',
                'type': 'dtype'
            }]
        }, {
            'tfOpName': 'TensorListGetItem',
            'category': 'control',
            'inputs': [{
                'start': 0,
                'name': 'tensorListId',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'index',
                'type': 'number'
            }, {
                'start': 2,
                'name': 'elementShape',
                'type': 'shape'
            }],
            'attrs': [{
                'tfName': 'element_dtype',
                'name': 'elementDType',
                'type': 'dtype'
            }]
        }, {
            'tfOpName': 'TensorListSetItem',
            'category': 'control',
            'inputs': [{
                'start': 0,
                'name': 'tensorListId',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'index',
                'type': 'number'
            }, {
                'start': 2,
                'name': 'tensor',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'element_dtype',
                'name': 'elementDType',
                'type': 'dtype'
            }]
        }, {
            'tfOpName': 'TensorListReserve',
            'category': 'control',
            'inputs': [{
                'start': 0,
                'name': 'elementShape',
                'type': 'shape'
            }, {
                'start': 1,
                'name': 'numElements',
                'type': 'number'
            }],
            'attrs': [{
                'tfName': 'element_dtype',
                'name': 'elementDType',
                'type': 'dtype'
            }]
        }, {
            'tfOpName': 'TensorListFromTensor',
            'category': 'control',
            'inputs': [{
                'start': 0,
                'name': 'tensor',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'elementShape',
                'type': 'shape'
            }],
            'attrs': [{
                'tfName': 'element_dtype',
                'name': 'elementDType',
                'type': 'dtype'
            }]
        }, {
            'tfOpName': 'TensorListStack',
            'category': 'control',
            'inputs': [{
                'start': 0,
                'name': 'tensorListId',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'elementShape',
                'type': 'shape'
            }],
            'attrs': [{
                'tfName': 'element_dtype',
                'name': 'elementDType',
                'type': 'dtype'
            }, {
                'tfName': 'num_elements',
                'name': 'numElements',
                'type': 'dtype'
            }]
        }, {
            'tfOpName': 'TensorListSplit',
            'category': 'control',
            'inputs': [{
                'start': 0,
                'name': 'tensor',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'elementShape',
                'type': 'shape'
            }, {
                'start': 2,
                'name': 'lengths',
                'type': 'number[]'
            }],
            'attrs': [{
                'tfName': 'element_dtype',
                'name': 'elementDType',
                'type': 'dtype'
            }]
        }, {
            'tfOpName': 'TensorListConcat',
            'category': 'control',
            'inputs': [{
                'start': 0,
                'name': 'tensorListId',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'element_shape',
                'name': 'elementShape',
                'type': 'shape'
            }, {
                'tfName': 'element_dtype',
                'name': 'elementDType',
                'type': 'dtype'
            }]
        }, {
            'tfOpName': 'TensorListConcatV2',
            'category': 'control',
            'inputs': [{
                'start': 0,
                'name': 'tensorListId',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'element_shape',
                'name': 'elementShape',
                'type': 'shape'
            }, {
                'tfName': 'element_dtype',
                'name': 'elementDType',
                'type': 'dtype'
            }]
        }, {
            'tfOpName': 'TensorListPopBack',
            'category': 'control',
            'inputs': [{
                'start': 0,
                'name': 'tensorListId',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'elementShape',
                'type': 'shape'
            }],
            'attrs': [{
                'tfName': 'element_dtype',
                'name': 'elementDType',
                'type': 'dtype'
            }]
        }, {
            'tfOpName': 'TensorListPushBack',
            'category': 'control',
            'inputs': [{
                'start': 0,
                'name': 'tensorListId',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'tensor',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'element_dtype',
                'name': 'elementDType',
                'type': 'dtype'
            }]
        }, {
            'tfOpName': 'TensorListLength',
            'category': 'control',
            'inputs': [{
                'start': 0,
                'name': 'tensorListId',
                'type': 'tensor'
            }]
        }, {
            'tfOpName': 'TensorListResize',
            'category': 'control',
            'inputs': [{
                'start': 0,
                'name': 'tensorListId',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'size',
                'type': 'number'
            }]
        }];
        exports.json = json;

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

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.json = void 0;
        /**
         * @license
         * Copyright 2022 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        const json = [{
            'tfOpName': 'AvgPool',
            'category': 'convolution',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'strides',
                'name': 'strides',
                'type': 'number[]'
            }, {
                'tfName': 'padding',
                'name': 'pad',
                'type': 'string'
            }, {
                'tfName': 'data_format',
                'name': 'dataFormat',
                'type': 'string',
                'notSupported': true
            }, {
                'tfName': 'ksize',
                'name': 'kernelSize',
                'type': 'number[]'
            }, {
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'MaxPool',
            'category': 'convolution',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'strides',
                'name': 'strides',
                'type': 'number[]'
            }, {
                'tfName': 'padding',
                'name': 'pad',
                'type': 'string'
            }, {
                'tfName': 'data_format',
                'name': 'dataFormat',
                'type': 'string',
                'notSupported': true
            }, {
                'tfName': 'ksize',
                'name': 'kernelSize',
                'type': 'number[]'
            }, {
                'tfName': 'explicit_paddings',
                'name': 'explicitPaddings',
                'type': 'number[]',
                'defaultValue': [],
                'notSupported': true
            }, {
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'MaxPoolWithArgmax',
            'category': 'convolution',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'strides',
                'name': 'strides',
                'type': 'number[]'
            }, {
                'tfName': 'padding',
                'name': 'pad',
                'type': 'string'
            }, {
                'tfName': 'ksize',
                'name': 'kernelSize',
                'type': 'number[]'
            }, {
                'tfName': 'include_batch_in_index',
                'name': 'includeBatchInIndex',
                'type': 'bool'
            }, {
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'AvgPool3D',
            'category': 'convolution',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'strides',
                'name': 'strides',
                'type': 'number[]'
            }, {
                'tfName': 'padding',
                'name': 'pad',
                'type': 'string'
            }, {
                'tfName': 'data_format',
                'name': 'dataFormat',
                'type': 'string',
                'notSupported': true
            }, {
                'tfName': 'ksize',
                'name': 'kernelSize',
                'type': 'number[]'
            }, {
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'MaxPool3D',
            'category': 'convolution',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'strides',
                'name': 'strides',
                'type': 'number[]'
            }, {
                'tfName': 'padding',
                'name': 'pad',
                'type': 'string'
            }, {
                'tfName': 'data_format',
                'name': 'dataFormat',
                'type': 'string',
                'notSupported': true
            }, {
                'tfName': 'ksize',
                'name': 'kernelSize',
                'type': 'number[]'
            }, {
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'Conv1D',
            'category': 'convolution',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'filter',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'stride',
                'name': 'stride',
                'type': 'number'
            }, {
                'tfName': 'padding',
                'name': 'pad',
                'type': 'string'
            }, {
                'tfName': 'data_format',
                'name': 'dataFormat',
                'type': 'string',
                'defaultValue': 'NWC'
            }, {
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }, {
                'tfName': 'dilation',
                'name': 'dilation',
                'type': 'number',
                'defaultValue': 1
            }]
        }, {
            'tfOpName': 'Conv2D',
            'category': 'convolution',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'filter',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }, {
                'tfName': 'strides',
                'name': 'strides',
                'type': 'number[]'
            }, {
                'tfName': 'padding',
                'name': 'pad',
                'type': 'string'
            }, {
                'tfName': 'useCudnnOnGpu',
                'name': 'useCudnnOnGpu',
                'type': 'bool'
            }, {
                'tfName': 'data_format',
                'name': 'dataFormat',
                'type': 'string',
                'defaultValue': 'NHWC'
            }, {
                'tfName': 'explicit_paddings',
                'name': 'explicitPaddings',
                'type': 'number[]',
                'defaultValue': []
            }, {
                'tfName': 'dilations',
                'name': 'dilations',
                'type': 'number[]'
            }]
        }, {
            'tfOpName': '_FusedConv2D',
            'category': 'convolution',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'filter',
                'type': 'tensor'
            }, {
                'start': 2,
                'end': 0,
                'name': 'args',
                'type': 'tensors'
            }],
            'attrs': [{
                'tfName': 'num_args',
                'name': 'numArgs',
                'type': 'number'
            }, {
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }, {
                'tfName': 'strides',
                'name': 'strides',
                'type': 'number[]'
            }, {
                'tfName': 'padding',
                'name': 'pad',
                'type': 'string'
            }, {
                'tfName': 'explicit_paddings',
                'name': 'explicitPaddings',
                'type': 'number[]',
                'defaultValue': []
            }, {
                'tfName': 'use_cudnn_on_gpu',
                'name': 'useCudnnOnGpu',
                'type': 'bool',
                'defaultValue': true
            }, {
                'tfName': 'data_format',
                'name': 'dataFormat',
                'type': 'string',
                'defaultValue': 'NHWC'
            }, {
                'tfName': 'dilations',
                'name': 'dilations',
                'type': 'number[]',
                'defaultValue': [1, 1, 1, 1]
            }, {
                'tfName': 'fused_ops',
                'name': 'fusedOps',
                'type': 'string[]',
                'defaultValue': []
            }, {
                'tfName': 'epsilon',
                'name': 'epsilon',
                'type': 'number',
                'defaultValue': 0.0001
            }, {
                'tfName': 'leakyrelu_alpha',
                'name': 'leakyreluAlpha',
                'type': 'number',
                'defaultValue': 0.2
            }]
        }, {
            'tfOpName': 'Conv2DBackpropInput',
            'category': 'convolution',
            'inputs': [{
                'start': 2,
                'name': 'x',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'filter',
                'type': 'tensor'
            }, {
                'start': 0,
                'name': 'outputShape',
                'type': 'number[]'
            }],
            'attrs': [{
                'tfName': 'strides',
                'name': 'strides',
                'type': 'number[]'
            }, {
                'tfName': 'padding',
                'name': 'pad',
                'type': 'string'
            }, {
                'tfName': 'data_format',
                'name': 'dataFormat',
                'type': 'string',
                'notSupported': true
            }, {
                'tfName': 'explicit_paddings',
                'name': 'explicitPaddings',
                'type': 'number[]',
                'defaultValue': []
            }, {
                'tfName': 'dilations',
                'name': 'dilations',
                'type': 'number[]',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'DepthwiseConv2d',
            'category': 'convolution',
            'inputs': [{
                'start': 0,
                'name': 'input',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'filter',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'strides',
                'name': 'strides',
                'type': 'number[]'
            }, {
                'tfName': 'padding',
                'name': 'pad',
                'type': 'string'
            }, {
                'tfName': 'data_format',
                'name': 'dataFormat',
                'type': 'string',
                'defaultValue': 'NHWC'
            }, {
                'tfName': 'explicit_paddings',
                'name': 'explicitPaddings',
                'type': 'number[]',
                'defaultValue': []
            }, {
                'tfName': 'dilations',
                'name': 'dilations',
                'type': 'number[]'
            }]
        }, {
            'tfOpName': 'DepthwiseConv2dNative',
            'category': 'convolution',
            'inputs': [{
                'start': 0,
                'name': 'input',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'filter',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'strides',
                'name': 'strides',
                'type': 'number[]'
            }, {
                'tfName': 'padding',
                'name': 'pad',
                'type': 'string'
            }, {
                'tfName': 'data_format',
                'name': 'dataFormat',
                'type': 'string',
                'defaultValue': 'NHWC'
            }, {
                'tfName': 'explicit_paddings',
                'name': 'explicitPaddings',
                'type': 'number[]',
                'defaultValue': []
            }, {
                'tfName': 'dilations',
                'name': 'dilations',
                'type': 'number[]'
            }]
        }, {
            'tfOpName': 'FusedDepthwiseConv2dNative',
            'category': 'convolution',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'filter',
                'type': 'tensor'
            }, {
                'start': 2,
                'end': 0,
                'name': 'args',
                'type': 'tensors'
            }],
            'attrs': [{
                'tfName': 'num_args',
                'name': 'numArgs',
                'type': 'number'
            }, {
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }, {
                'tfName': 'strides',
                'name': 'strides',
                'type': 'number[]'
            }, {
                'tfName': 'padding',
                'name': 'pad',
                'type': 'string'
            }, {
                'tfName': 'data_format',
                'name': 'dataFormat',
                'type': 'string',
                'defaultValue': 'NHWC'
            }, {
                'tfName': 'dilations',
                'name': 'dilations',
                'type': 'number[]',
                'defaultValue': [1, 1, 1, 1]
            }, {
                'tfName': 'fused_ops',
                'name': 'fusedOps',
                'type': 'string[]',
                'defaultValue': []
            }, {
                'tfName': 'explicit_paddings',
                'name': 'explicitPaddings',
                'type': 'number[]',
                'defaultValue': []
            }]
        }, {
            'tfOpName': 'Conv3D',
            'category': 'convolution',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'filter',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'strides',
                'name': 'strides',
                'type': 'number[]'
            }, {
                'tfName': 'padding',
                'name': 'pad',
                'type': 'string'
            }, {
                'tfName': 'data_format',
                'name': 'dataFormat',
                'type': 'string',
                'defaultValue': 'NHWC'
            }, {
                'tfName': 'dilations',
                'name': 'dilations',
                'type': 'number[]'
            }]
        }, {
            'tfOpName': 'Dilation2D',
            'category': 'convolution',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'filter',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'strides',
                'name': 'strides',
                'type': 'number[]'
            }, {
                'tfName': 'rates',
                'name': 'dilations',
                'type': 'number[]'
            }, {
                'tfName': 'padding',
                'name': 'pad',
                'type': 'string'
            }]
        }];
        exports.json = json;

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

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.json = void 0;
        /**
         * @license
         * Copyright 2022 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        const json = [{
            'tfOpName': 'Fill',
            'category': 'creation',
            'inputs': [{
                'start': 0,
                'name': 'shape',
                'type': 'number[]'
            }, {
                'start': 1,
                'name': 'value',
                'type': 'number'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype'
            }]
        }, {
            'tfOpName': 'LinSpace',
            'category': 'creation',
            'inputs': [{
                'start': 0,
                'name': 'start',
                'type': 'number'
            }, {
                'start': 1,
                'name': 'stop',
                'type': 'number'
            }, {
                'start': 2,
                'name': 'num',
                'type': 'number'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'OneHot',
            'category': 'creation',
            'inputs': [{
                'start': 0,
                'name': 'indices',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'depth',
                'type': 'number'
            }, {
                'start': 2,
                'name': 'onValue',
                'type': 'number',
                'defaultValue': 1
            }, {
                'start': 3,
                'name': 'offValue',
                'type': 'number',
                'defaultValue': 0
            }],
            'attrs': [{
                'tfName': 'axis',
                'name': 'axis',
                'type': 'number',
                'notSupported': true
            }, {
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype'
            }]
        }, {
            'tfOpName': 'Ones',
            'category': 'creation',
            'inputs': [{
                'start': 0,
                'name': 'shape',
                'type': 'number[]'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype'
            }]
        }, {
            'tfOpName': 'OnesLike',
            'category': 'creation',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'dtype',
                'name': 'dtype',
                'type': 'dtype'
            }]
        }, {
            'tfOpName': 'RandomStandardNormal',
            'category': 'creation',
            'inputs': [{
                'start': 0,
                'name': 'shape',
                'type': 'number[]'
            }],
            'attrs': [{
                'tfName': 'seed',
                'name': 'seed',
                'type': 'number',
                'defaultValue': 0
            }, {
                'tfName': 'seed2',
                'name': 'seed2',
                'type': 'number',
                'defaultValue': 0,
                'notSupported': true
            }, {
                'tfName': 'dtype',
                'name': 'dtype',
                'type': 'dtype'
            }, {
                'tfName': 'T',
                'name': 'T',
                'type': 'number',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'RandomUniform',
            'category': 'creation',
            'inputs': [{
                'start': 0,
                'name': 'shape',
                'type': 'number[]'
            }],
            'attrs': [{
                'tfName': 'minval',
                'name': 'minval',
                'type': 'number',
                'defaultValue': 0
            }, {
                'tfName': 'maxval',
                'name': 'maxval',
                'type': 'number',
                'defaultValue': 1
            }, {
                'tfName': 'dtype',
                'name': 'dtype',
                'type': 'dtype'
            }, {
                'tfName': 'seed',
                'name': 'seed',
                'type': 'number',
                'defaultValue': 0
            }, {
                'tfName': 'seed2',
                'name': 'seed2',
                'type': 'number',
                'defaultValue': 0,
                'notSupported': true
            }, {
                'tfName': 'T',
                'name': 'T',
                'type': 'number',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'Range',
            'category': 'creation',
            'inputs': [{
                'start': 0,
                'name': 'start',
                'type': 'number'
            }, {
                'start': 1,
                'name': 'stop',
                'type': 'number'
            }, {
                'start': 2,
                'name': 'step',
                'type': 'number',
                'defaultValue': 0
            }],
            'attrs': [{
                'tfName': 'Tidx',
                'name': 'dtype',
                'type': 'dtype'
            }]
        }, {
            'tfOpName': 'TruncatedNormal',
            'category': 'creation',
            'inputs': [{
                'start': 0,
                'name': 'shape',
                'type': 'number[]'
            }],
            'attrs': [{
                'tfName': 'means',
                'name': 'mean',
                'type': 'number',
                'defaultValue': 0
            }, {
                'tfName': 'stddev',
                'name': 'stdDev',
                'type': 'number',
                'defaultValue': 1
            }, {
                'tfName': 'seed',
                'name': 'seed',
                'type': 'number'
            }, {
                'tfName': 'seed2',
                'name': 'seed2',
                'type': 'number',
                'defaultValue': 0,
                'notSupported': true
            }, {
                'tfName': 'dtype',
                'name': 'dtype',
                'type': 'dtype'
            }, {
                'tfName': 'T',
                'name': 'T',
                'type': 'number',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'Zeros',
            'category': 'creation',
            'inputs': [{
                'start': 0,
                'name': 'shape',
                'type': 'number[]'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype'
            }]
        }, {
            'tfOpName': 'ZerosLike',
            'category': 'creation',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype'
            }]
        }, {
            'tfOpName': 'Multinomial',
            'category': 'creation',
            'inputs': [{
                'start': 0,
                'name': 'logits',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'numSamples',
                'type': 'number'
            }],
            'attrs': [{
                'tfName': 'seed',
                'name': 'seed',
                'type': 'number'
            }, {
                'tfName': 'seed2',
                'name': 'seed2',
                'type': 'number'
            }, {
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype'
            }, {
                'tfName': 'output_dtype',
                'name': 'output_dtype',
                'type': 'dtype'
            }]
        }];
        exports.json = json;

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

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.json = void 0;
        /**
         * @license
         * Copyright 2022 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        const json = [{
            'tfOpName': 'NonMaxSuppressionV2',
            'category': 'dynamic',
            'inputs': [{
                'start': 0,
                'name': 'boxes',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'scores',
                'type': 'tensor'
            }, {
                'start': 2,
                'name': 'maxOutputSize',
                'type': 'number'
            }, {
                'start': 3,
                'name': 'iouThreshold',
                'type': 'number'
            }]
        }, {
            'tfOpName': 'NonMaxSuppressionV3',
            'category': 'dynamic',
            'inputs': [{
                'start': 0,
                'name': 'boxes',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'scores',
                'type': 'tensor'
            }, {
                'start': 2,
                'name': 'maxOutputSize',
                'type': 'number'
            }, {
                'start': 3,
                'name': 'iouThreshold',
                'type': 'number'
            }, {
                'start': 4,
                'name': 'scoreThreshold',
                'type': 'number'
            }]
        }, {
            'tfOpName': 'NonMaxSuppressionV4',
            'category': 'dynamic',
            'inputs': [{
                'start': 0,
                'name': 'boxes',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'scores',
                'type': 'tensor'
            }, {
                'start': 2,
                'name': 'maxOutputSize',
                'type': 'number'
            }, {
                'start': 3,
                'name': 'iouThreshold',
                'type': 'number'
            }, {
                'start': 4,
                'name': 'scoreThreshold',
                'type': 'number'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }, {
                'tfName': 'T_threshold',
                'name': 'threshold',
                'type': 'dtype',
                'notSupported': true
            }, {
                'tfName': 'pad_to_max_output_size',
                'name': 'padToMaxOutputSize',
                'type': 'bool'
            }]
        }, {
            'tfOpName': 'NonMaxSuppressionV5',
            'category': 'dynamic',
            'inputs': [{
                'start': 0,
                'name': 'boxes',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'scores',
                'type': 'tensor'
            }, {
                'start': 2,
                'name': 'maxOutputSize',
                'type': 'number'
            }, {
                'start': 3,
                'name': 'iouThreshold',
                'type': 'number'
            }, {
                'start': 4,
                'name': 'scoreThreshold',
                'type': 'number'
            }, {
                'start': 5,
                'name': 'softNmsSigma',
                'type': 'number'
            }]
        }, {
            'tfOpName': 'Where',
            'category': 'dynamic',
            'inputs': [{
                'start': 0,
                'name': 'condition',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'ListDiff',
            'category': 'dynamic',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'y',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }];
        exports.json = json;

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

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.json = void 0;
        /**
         * @license
         * Copyright 2022 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        const json = [{
            'tfOpName': 'LowerBound',
            'category': 'evaluation',
            'inputs': [{
                'start': 0,
                'name': 'sortedSequence',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'values',
                'type': 'tensor'
            }]
        }, {
            'tfOpName': 'TopKV2',
            'category': 'evaluation',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'k',
                'type': 'number'
            }],
            'attrs': [{
                'tfName': 'sorted',
                'name': 'sorted',
                'type': 'bool'
            }]
        }, {
            'tfOpName': 'UpperBound',
            'category': 'evaluation',
            'inputs': [{
                'start': 0,
                'name': 'sortedSequence',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'values',
                'type': 'tensor'
            }]
        }, {
            'tfOpName': 'Unique',
            'category': 'evaluation',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }]
        }, {
            'tfOpName': 'UniqueV2',
            'category': 'evaluation',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'axis',
                'type': 'number'
            }]
        }];
        exports.json = json;

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

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.json = void 0;
        /**
         * @license
         * Copyright 2022 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        const json = [{
            'tfOpName': 'PlaceholderWithDefault',
            'category': 'graph',
            'inputs': [{
                'start': 0,
                'name': 'default',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'shape',
                'name': 'shape',
                'type': 'shape'
            }, {
                'tfName': 'dtype',
                'name': 'dtype',
                'type': 'dtype'
            }]
        }, {
            'tfOpName': 'Placeholder',
            'category': 'graph',
            'attrs': [{
                'tfName': 'shape',
                'name': 'shape',
                'type': 'shape'
            }, {
                'tfName': 'dtype',
                'name': 'dtype',
                'type': 'dtype'
            }]
        }, {
            'tfOpName': 'Const',
            'category': 'graph'
        }, {
            'tfOpName': 'Identity',
            'category': 'graph',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }]
        }, {
            'tfOpName': 'IdentityN',
            'category': 'graph',
            'inputs': [{
                'start': 0,
                'end': 0,
                'name': 'x',
                'type': 'tensors'
            }]
        }, {
            'tfOpName': 'Snapshot',
            'category': 'graph',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }]
        }, {
            'tfOpName': 'Rank',
            'category': 'graph',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }]
        }, {
            'tfOpName': 'Size',
            'category': 'graph',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }]
        }, {
            'tfOpName': 'Shape',
            'category': 'graph',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }]
        }, {
            'tfOpName': 'ShapeN',
            'category': 'graph',
            'inputs': [{
                'start': 0,
                'end': 0,
                'name': 'x',
                'type': 'tensors'
            }]
        }, {
            'tfOpName': 'Print',
            'category': 'graph',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'data',
                'type': 'tensors'
            }],
            'attrs': [{
                'tfName': 'message',
                'name': 'message',
                'type': 'string'
            }, {
                'tfName': 'first_n',
                'name': 'firstN',
                'type': 'number',
                'notSupported': true
            }, {
                'tfName': 'summarize',
                'name': 'summarize',
                'type': 'number',
                'defaultValue': 3
            }]
        }, {
            'tfOpName': 'NoOp',
            'category': 'graph',
            'inputs': []
        }, {
            'tfOpName': 'StopGradient',
            'category': 'graph',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }]
        }, {
            'tfOpName': 'FakeQuantWithMinMaxVars',
            'category': 'graph',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'min',
                'name': 'min',
                'type': 'number'
            }, {
                'tfName': 'max',
                'name': 'max',
                'type': 'number'
            }]
        }];
        exports.json = json;

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

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.json = void 0;
        /**
         * @license
         * Copyright 2022 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        const json = [{
            'tfOpName': 'HashTable',
            'category': 'hash_table',
            'inputs': [],
            'attrs': [{
                'tfName': 'shared_name',
                'name': 'sharedName',
                'type': 'string'
            }, {
                'tfName': 'use_node_name_sharing',
                'name': 'useNodeNameSharing',
                'type': 'bool'
            }, {
                'tfName': 'key_dtype',
                'name': 'keyDType',
                'type': 'dtype'
            }, {
                'tfName': 'value_dtype',
                'name': 'valueDType',
                'type': 'dtype'
            }]
        }, {
            'tfOpName': 'HashTableV2',
            'category': 'hash_table',
            'inputs': [],
            'attrs': [{
                'tfName': 'shared_name',
                'name': 'sharedName',
                'type': 'string'
            }, {
                'tfName': 'use_node_name_sharing',
                'name': 'useNodeNameSharing',
                'type': 'bool'
            }, {
                'tfName': 'key_dtype',
                'name': 'keyDType',
                'type': 'dtype'
            }, {
                'tfName': 'value_dtype',
                'name': 'valueDType',
                'type': 'dtype'
            }]
        }, {
            'tfOpName': 'LookupTableImport',
            'category': 'hash_table',
            'inputs': [{
                'start': 0,
                'name': 'tableHandle',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'keys',
                'type': 'tensor'
            }, {
                'start': 2,
                'name': 'values',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'Tin',
                'name': 'tIn',
                'type': 'dtype',
                'notSupported': true
            }, {
                'tfName': 'Tout',
                'name': 'tOut',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'LookupTableImportV2',
            'category': 'hash_table',
            'inputs': [{
                'start': 0,
                'name': 'tableHandle',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'keys',
                'type': 'tensor'
            }, {
                'start': 2,
                'name': 'values',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'Tin',
                'name': 'tIn',
                'type': 'dtype',
                'notSupported': true
            }, {
                'tfName': 'Tout',
                'name': 'tOut',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'LookupTableFind',
            'category': 'hash_table',
            'inputs': [{
                'start': 0,
                'name': 'tableHandle',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'keys',
                'type': 'tensor'
            }, {
                'start': 2,
                'name': 'defaultValue',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'Tin',
                'name': 'tIn',
                'type': 'dtype',
                'notSupported': true
            }, {
                'tfName': 'Tout',
                'name': 'tOut',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'LookupTableFindV2',
            'category': 'hash_table',
            'inputs': [{
                'start': 0,
                'name': 'tableHandle',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'keys',
                'type': 'tensor'
            }, {
                'start': 2,
                'name': 'defaultValue',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'Tin',
                'name': 'tIn',
                'type': 'dtype',
                'notSupported': true
            }, {
                'tfName': 'Tout',
                'name': 'tOut',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'LookupTableSize',
            'category': 'hash_table',
            'inputs': [{
                'start': 0,
                'name': 'tableHandle',
                'type': 'tensor'
            }]
        }, {
            'tfOpName': 'LookupTableSizeV2',
            'category': 'hash_table',
            'inputs': [{
                'start': 0,
                'name': 'tableHandle',
                'type': 'tensor'
            }]
        }];
        exports.json = json;

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

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.json = void 0;
        /**
         * @license
         * Copyright 2022 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        const json = [{
            'tfOpName': 'ResizeBilinear',
            'category': 'image',
            'inputs': [{
                'start': 0,
                'name': 'images',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'size',
                'type': 'number[]'
            }],
            'attrs': [{
                'tfName': 'align_corners',
                'name': 'alignCorners',
                'type': 'bool'
            }, {
                'tfName': 'half_pixel_centers',
                'name': 'halfPixelCenters',
                'type': 'bool'
            }, {
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'ResizeNearestNeighbor',
            'category': 'image',
            'inputs': [{
                'start': 0,
                'name': 'images',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'size',
                'type': 'number[]'
            }],
            'attrs': [{
                'tfName': 'align_corners',
                'name': 'alignCorners',
                'type': 'bool'
            }, {
                'tfName': 'half_pixel_centers',
                'name': 'halfPixelCenters',
                'type': 'bool'
            }, {
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'CropAndResize',
            'category': 'image',
            'inputs': [{
                'start': 0,
                'name': 'image',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'boxes',
                'type': 'tensor'
            }, {
                'start': 2,
                'name': 'boxInd',
                'type': 'tensor'
            }, {
                'start': 3,
                'name': 'cropSize',
                'type': 'number[]'
            }],
            'attrs': [{
                'tfName': 'method',
                'name': 'method',
                'type': 'string'
            }, {
                'tfName': 'extrapolation_value',
                'name': 'extrapolationValue',
                'type': 'number'
            }]
        }, {
            'tfOpName': 'ImageProjectiveTransformV3',
            'category': 'image',
            'inputs': [{
                'start': 0,
                'name': 'images',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'transforms',
                'type': 'tensor'
            }, {
                'start': 2,
                'name': 'outputShape',
                'type': 'number[]'
            }, {
                'start': 3,
                'name': 'fillValue',
                'type': 'number'
            }],
            'attrs': [{
                'tfName': 'interpolation',
                'name': 'interpolation',
                'type': 'string'
            }, {
                'tfName': 'fill_mode',
                'name': 'fillMode',
                'type': 'string'
            }]
        }];
        exports.json = json;

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

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.json = void 0;
        /**
         * @license
         * Copyright 2022 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        const json = [{
            'tfOpName': 'Equal',
            'category': 'logical',
            'inputs': [{
                'start': 0,
                'name': 'a',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'b',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'NotEqual',
            'category': 'logical',
            'inputs': [{
                'start': 0,
                'name': 'a',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'b',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'Greater',
            'category': 'logical',
            'inputs': [{
                'start': 0,
                'name': 'a',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'b',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'GreaterEqual',
            'category': 'logical',
            'inputs': [{
                'start': 0,
                'name': 'a',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'b',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'Less',
            'category': 'logical',
            'inputs': [{
                'start': 0,
                'name': 'a',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'b',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'LessEqual',
            'category': 'logical',
            'inputs': [{
                'start': 0,
                'name': 'a',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'b',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'LogicalAnd',
            'category': 'logical',
            'inputs': [{
                'start': 0,
                'name': 'a',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'b',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'LogicalNot',
            'category': 'logical',
            'inputs': [{
                'start': 0,
                'name': 'a',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'LogicalOr',
            'category': 'logical',
            'inputs': [{
                'start': 0,
                'name': 'a',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'b',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'Select',
            'category': 'logical',
            'inputs': [{
                'start': 0,
                'name': 'condition',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'a',
                'type': 'tensor'
            }, {
                'start': 2,
                'name': 'b',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'SelectV2',
            'category': 'logical',
            'inputs': [{
                'start': 0,
                'name': 'condition',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'a',
                'type': 'tensor'
            }, {
                'start': 2,
                'name': 'b',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }];
        exports.json = json;

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

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.json = void 0;
        /**
         * @license
         * Copyright 2022 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        const json = [{
            'tfOpName': '_FusedMatMul',
            'category': 'matrices',
            'inputs': [{
                'start': 0,
                'name': 'a',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'b',
                'type': 'tensor'
            }, {
                'start': 2,
                'end': 0,
                'name': 'args',
                'type': 'tensors'
            }],
            'attrs': [{
                'tfName': 'num_args',
                'name': 'numArgs',
                'type': 'number'
            }, {
                'tfName': 'fused_ops',
                'name': 'fusedOps',
                'type': 'string[]',
                'defaultValue': []
            }, {
                'tfName': 'epsilon',
                'name': 'epsilon',
                'type': 'number',
                'defaultValue': 0.0001
            }, {
                'tfName': 'transpose_a',
                'name': 'transposeA',
                'type': 'bool',
                'defaultValue': false
            }, {
                'tfName': 'transpose_b',
                'name': 'transposeB',
                'type': 'bool',
                'defaultValue': false
            }, {
                'tfName': 'leakyrelu_alpha',
                'name': 'leakyreluAlpha',
                'type': 'number',
                'defaultValue': 0.2
            }, {
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'MatMul',
            'category': 'matrices',
            'inputs': [{
                'start': 0,
                'name': 'a',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'b',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'transpose_a',
                'name': 'transposeA',
                'type': 'bool',
                'defaultValue': false
            }, {
                'tfName': 'transpose_b',
                'name': 'transposeB',
                'type': 'bool',
                'defaultValue': false
            }, {
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'BatchMatMul',
            'category': 'matrices',
            'inputs': [{
                'start': 0,
                'name': 'a',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'b',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'adj_x',
                'name': 'transposeA',
                'type': 'bool',
                'defaultValue': false
            }, {
                'tfName': 'adj_y',
                'name': 'transposeB',
                'type': 'bool',
                'defaultValue': false
            }, {
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'BatchMatMulV2',
            'category': 'matrices',
            'inputs': [{
                'start': 0,
                'name': 'a',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'b',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'adj_x',
                'name': 'transposeA',
                'type': 'bool',
                'defaultValue': false
            }, {
                'tfName': 'adj_y',
                'name': 'transposeB',
                'type': 'bool',
                'defaultValue': false
            }, {
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'Transpose',
            'category': 'matrices',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'perm',
                'type': 'number[]'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'Einsum',
            'category': 'matrices',
            'inputs': [{
                'start': 0,
                'end': 0,
                'name': 'tensors',
                'type': 'tensors'
            }],
            'attrs': [{
                'tfName': 'equation',
                'name': 'equation',
                'type': 'string'
            }, {
                'tfName': 'N',
                'name': 'n',
                'type': 'number',
                'defaultValue': 2
            }, {
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype'
            }]
        }];
        exports.json = json;

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

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.json = void 0;
        /**
         * @license
         * Copyright 2022 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        const json = [{
            'tfOpName': 'EuclideanNorm',
            'category': 'normalization',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'axis',
                'type': 'number[]'
            }],
            'attrs': [{
                'tfName': 'keep_dims',
                'name': 'keepDims',
                'type': 'bool',
                'defaultValue': false
            }]
        }, {
            'tfOpName': 'FusedBatchNorm',
            'category': 'normalization',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'scale',
                'type': 'tensor'
            }, {
                'start': 2,
                'name': 'offset',
                'type': 'tensor'
            }, {
                'start': 3,
                'name': 'mean',
                'type': 'tensor'
            }, {
                'start': 4,
                'name': 'variance',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'epsilon',
                'name': 'epsilon',
                'type': 'number',
                'defaultValue': 0.001
            }, {
                'tfName': 'data_format',
                'name': 'dataFormat',
                'type': 'string',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'FusedBatchNormV2',
            'category': 'normalization',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'scale',
                'type': 'tensor'
            }, {
                'start': 2,
                'name': 'offset',
                'type': 'tensor'
            }, {
                'start': 3,
                'name': 'mean',
                'type': 'tensor'
            }, {
                'start': 4,
                'name': 'variance',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'epsilon',
                'name': 'epsilon',
                'type': 'number',
                'defaultValue': 0.001
            }, {
                'tfName': 'data_format',
                'name': 'dataFormat',
                'type': 'string',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'FusedBatchNormV3',
            'category': 'normalization',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'scale',
                'type': 'tensor'
            }, {
                'start': 2,
                'name': 'offset',
                'type': 'tensor'
            }, {
                'start': 3,
                'name': 'mean',
                'type': 'tensor'
            }, {
                'start': 4,
                'name': 'variance',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'epsilon',
                'name': 'epsilon',
                'type': 'number',
                'defaultValue': 0.001
            }, {
                'tfName': 'data_format',
                'name': 'dataFormat',
                'type': 'string',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'LRN',
            'category': 'normalization',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'depth_radius',
                'name': 'radius',
                'type': 'number',
                'defaultValue': 5
            }, {
                'tfName': 'bias',
                'name': 'bias',
                'type': 'number',
                'defaultValue': 1
            }, {
                'tfName': 'alpha',
                'name': 'alpha',
                'type': 'number',
                'defaultValue': 1
            }, {
                'tfName': 'beta',
                'name': 'beta',
                'type': 'number',
                'defaultValue': 0.5
            }]
        }, {
            'tfOpName': 'Softmax',
            'category': 'normalization',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }]
        }, {
            'tfOpName': 'LogSoftmax',
            'category': 'normalization',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }]
        }, {
            'tfOpName': 'SparseToDense',
            'category': 'normalization',
            'inputs': [{
                'start': 0,
                'name': 'sparseIndices',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'outputShape',
                'type': 'number[]'
            }, {
                'start': 2,
                'name': 'sparseValues',
                'type': 'tensor'
            }, {
                'start': 3,
                'name': 'defaultValue',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'validate_indices',
                'name': 'validateIndices',
                'type': 'bool',
                'defaultValue': true,
                'notSupported': true
            }]
        }];
        exports.json = json;

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

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.json = void 0;
        /**
         * @license
         * Copyright 2022 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        const json = [{
            'tfOpName': 'Bincount',
            'category': 'reduction',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'size',
                'type': 'number'
            }, {
                'start': 2,
                'name': 'weights',
                'type': 'tensor'
            }]
        }, {
            'tfOpName': 'DenseBincount',
            'category': 'reduction',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'size',
                'type': 'number'
            }, {
                'start': 2,
                'name': 'weights',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'binary_output',
                'name': 'binaryOutput',
                'type': 'bool'
            }]
        }, {
            'tfOpName': 'Max',
            'category': 'reduction',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'axis',
                'type': 'number[]'
            }],
            'attrs': [{
                'tfName': 'keep_dims',
                'name': 'keepDims',
                'type': 'bool'
            }]
        }, {
            'tfOpName': 'Mean',
            'category': 'reduction',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'axis',
                'type': 'number[]'
            }],
            'attrs': [{
                'tfName': 'keep_dims',
                'name': 'keepDims',
                'type': 'bool'
            }]
        }, {
            'tfOpName': 'Min',
            'category': 'reduction',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'axis',
                'type': 'number[]'
            }],
            'attrs': [{
                'tfName': 'keep_dims',
                'name': 'keepDims',
                'type': 'bool'
            }]
        }, {
            'tfOpName': 'Sum',
            'category': 'reduction',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'axis',
                'type': 'number[]'
            }],
            'attrs': [{
                'tfName': 'keep_dims',
                'name': 'keepDims',
                'type': 'bool'
            }]
        }, {
            'tfOpName': 'All',
            'category': 'reduction',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'axis',
                'type': 'number[]'
            }],
            'attrs': [{
                'tfName': 'keep_dims',
                'name': 'keepDims',
                'type': 'bool'
            }]
        }, {
            'tfOpName': 'Any',
            'category': 'reduction',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'axis',
                'type': 'number[]'
            }],
            'attrs': [{
                'tfName': 'keep_dims',
                'name': 'keepDims',
                'type': 'bool'
            }]
        }, {
            'tfOpName': 'ArgMax',
            'category': 'reduction',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'axis',
                'type': 'number'
            }]
        }, {
            'tfOpName': 'ArgMin',
            'category': 'reduction',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'axis',
                'type': 'number'
            }]
        }, {
            'tfOpName': 'Prod',
            'category': 'reduction',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'axis',
                'type': 'number[]'
            }],
            'attrs': [{
                'tfName': 'keep_dims',
                'name': 'keepDims',
                'type': 'bool'
            }]
        }, {
            'tfOpName': 'Cumprod',
            'category': 'reduction',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'axis',
                'type': 'number'
            }],
            'attrs': [{
                'tfName': 'exclusive',
                'name': 'exclusive',
                'type': 'bool'
            }, {
                'tfName': 'reverse',
                'name': 'reverse',
                'type': 'bool'
            }]
        }, {
            'tfOpName': 'Cumsum',
            'category': 'reduction',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'axis',
                'type': 'number'
            }],
            'attrs': [{
                'tfName': 'exclusive',
                'name': 'exclusive',
                'type': 'bool'
            }, {
                'tfName': 'reverse',
                'name': 'reverse',
                'type': 'bool'
            }]
        }];
        exports.json = json;

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

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.json = void 0;
        /**
         * @license
         * Copyright 2022 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        const json = [{
            'tfOpName': 'ConcatV2',
            'category': 'slice_join',
            'inputs': [{
                'start': 0,
                'end': -1,
                'name': 'tensors',
                'type': 'tensors'
            }, {
                'start': -1,
                'name': 'axis',
                'type': 'number'
            }],
            'attrs': [{
                'tfName': 'N',
                'name': 'n',
                'type': 'number',
                'defaultValue': 2
            }]
        }, {
            'tfOpName': 'Concat',
            'category': 'slice_join',
            'inputs': [{
                'start': 1,
                'end': 0,
                'name': 'tensors',
                'type': 'tensors'
            }, {
                'start': 0,
                'name': 'axis',
                'type': 'number'
            }],
            'attrs': [{
                'tfName': 'N',
                'name': 'n',
                'type': 'number',
                'defaultValue': 2
            }]
        }, {
            'tfOpName': 'GatherV2',
            'category': 'slice_join',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'indices',
                'type': 'tensor'
            }, {
                'start': 2,
                'name': 'axis',
                'type': 'number',
                'defaultValue': 0
            }],
            'attrs': [{
                'tfName': 'batch_dims',
                'name': 'batchDims',
                'type': 'number',
                'defaultValue': 0
            }]
        }, {
            'tfOpName': 'Gather',
            'category': 'slice_join',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'indices',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'validate_indices',
                'name': 'validateIndices',
                'type': 'bool',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'Reverse',
            'category': 'slice_join',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'dims',
                'type': 'bool[]'
            }]
        }, {
            'tfOpName': 'ReverseV2',
            'category': 'slice_join',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'axis',
                'type': 'number[]'
            }]
        }, {
            'tfOpName': 'Slice',
            'category': 'slice_join',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'begin',
                'type': 'number[]'
            }, {
                'start': 2,
                'name': 'size',
                'type': 'number[]'
            }]
        }, {
            'tfOpName': 'StridedSlice',
            'category': 'slice_join',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'begin',
                'type': 'number[]'
            }, {
                'start': 2,
                'name': 'end',
                'type': 'number[]'
            }, {
                'start': 3,
                'name': 'strides',
                'type': 'number[]'
            }],
            'attrs': [{
                'tfName': 'begin_mask',
                'name': 'beginMask',
                'type': 'number',
                'defaultValue': 0
            }, {
                'tfName': 'end_mask',
                'name': 'endMask',
                'type': 'number',
                'defaultValue': 0
            }, {
                'tfName': 'new_axis_mask',
                'name': 'newAxisMask',
                'type': 'number',
                'defaultValue': 0
            }, {
                'tfName': 'ellipsis_mask',
                'name': 'ellipsisMask',
                'type': 'number',
                'defaultValue': 0
            }, {
                'tfName': 'shrink_axis_mask',
                'name': 'shrinkAxisMask',
                'type': 'number',
                'defaultValue': 0
            }]
        }, {
            'tfOpName': 'Pack',
            'category': 'slice_join',
            'inputs': [{
                'start': 0,
                'end': 0,
                'name': 'tensors',
                'type': 'tensors'
            }],
            'attrs': [{
                'tfName': 'axis',
                'name': 'axis',
                'type': 'number',
                'defaultValue': 0
            }]
        }, {
            'tfOpName': 'Unpack',
            'category': 'slice_join',
            'inputs': [{
                'start': 0,
                'name': 'tensor',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'axis',
                'name': 'axis',
                'type': 'number',
                'defaultValue': 0
            }, {
                'tfName': 'num',
                'name': 'num',
                'type': 'number',
                'defaultValue': 0,
                'notSupported': true
            }]
        }, {
            'tfOpName': 'Tile',
            'category': 'slice_join',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'reps',
                'type': 'number[]'
            }]
        }, {
            'tfOpName': 'Split',
            'category': 'slice_join',
            'inputs': [{
                'start': 0,
                'name': 'axis',
                'type': 'number',
                'defaultValue': 0
            }, {
                'start': 1,
                'name': 'x',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'num_split',
                'name': 'numOrSizeSplits',
                'type': 'number',
                'defaultValue': 1
            }]
        }, {
            'tfOpName': 'SplitV',
            'category': 'slice_join',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'numOrSizeSplits',
                'type': 'number[]'
            }, {
                'start': 2,
                'name': 'axis',
                'type': 'number',
                'defaultValue': 0
            }]
        }, {
            'tfOpName': 'ScatterNd',
            'category': 'slice_join',
            'inputs': [{
                'start': 0,
                'name': 'indices',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'values',
                'type': 'tensor'
            }, {
                'start': 2,
                'name': 'shape',
                'type': 'number[]'
            }]
        }, {
            'tfOpName': 'GatherNd',
            'category': 'slice_join',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'indices',
                'type': 'tensor'
            }]
        }, {
            'tfOpName': 'SparseToDense',
            'category': 'slice_join',
            'inputs': [{
                'start': 0,
                'name': 'sparseIndices',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'outputShape',
                'type': 'number[]'
            }, {
                'start': 2,
                'name': 'sparseValues',
                'type': 'tensor'
            }, {
                'start': 3,
                'name': 'defaultValue',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'validate_indices',
                'name': 'validateIndices',
                'type': 'bool',
                'defaultValue': false,
                'notSupported': true
            }]
        }];
        exports.json = json;

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

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.json = void 0;
        /**
         * @license
         * Copyright 2022 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        const json = [{
            'tfOpName': 'SparseFillEmptyRows',
            'category': 'sparse',
            'inputs': [{
                'start': 0,
                'name': 'indices',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'values',
                'type': 'tensor'
            }, {
                'start': 2,
                'name': 'denseShape',
                'type': 'tensor'
            }, {
                'start': 3,
                'name': 'defaultValue',
                'type': 'tensor'
            }]
        }, {
            'tfOpName': 'SparseReshape',
            'category': 'sparse',
            'inputs': [{
                'start': 0,
                'name': 'inputIndices',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'inputShape',
                'type': 'tensor'
            }, {
                'start': 2,
                'name': 'newShape',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'T',
                'name': 'dtype',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'SparseSegmentMean',
            'category': 'sparse',
            'inputs': [{
                'start': 0,
                'name': 'data',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'indices',
                'type': 'tensor'
            }, {
                'start': 2,
                'name': 'segmentIds',
                'type': 'tensor'
            }]
        }, {
            'tfOpName': 'SparseSegmentSum',
            'category': 'sparse',
            'inputs': [{
                'start': 0,
                'name': 'data',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'indices',
                'type': 'tensor'
            }, {
                'start': 2,
                'name': 'segmentIds',
                'type': 'tensor'
            }]
        }];
        exports.json = json;

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

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.json = void 0;
        /**
         * @license
         * Copyright 2022 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        const json = [{
            'tfOpName': 'FFT',
            'category': 'spectral',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }]
        }, {
            'tfOpName': 'IFFT',
            'category': 'spectral',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }]
        }, {
            'tfOpName': 'RFFT',
            'category': 'spectral',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'fft_length',
                'type': 'number',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'IRFFT',
            'category': 'spectral',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'fft_length',
                'type': 'number',
                'notSupported': true
            }]
        }];
        exports.json = json;

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

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.json = void 0;
        /**
         * @license
         * Copyright 2022 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        const json = [{
            'tfOpName': 'StringNGrams',
            'category': 'string',
            'inputs': [{
                'start': 0,
                'name': 'data',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'dataSplits',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'separator',
                'name': 'separator',
                'type': 'string'
            }, {
                'tfName': 'ngram_widths',
                'name': 'nGramWidths',
                'type': 'number[]'
            }, {
                'tfName': 'left_pad',
                'name': 'leftPad',
                'type': 'string'
            }, {
                'tfName': 'right_pad',
                'name': 'rightPad',
                'type': 'string'
            }, {
                'tfName': 'pad_width',
                'name': 'padWidth',
                'type': 'number'
            }, {
                'tfName': 'preserve_short_sequences',
                'name': 'preserveShortSequences',
                'type': 'bool'
            }],
            'outputs': ['ngrams', 'ngrams_splits']
        }, {
            'tfOpName': 'StringSplit',
            'category': 'string',
            'inputs': [{
                'start': 0,
                'name': 'input',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'delimiter',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'skip_empty',
                'name': 'skipEmpty',
                'type': 'bool'
            }],
            'outputs': ['indices', 'values', 'shape']
        }, {
            'tfOpName': 'StringToHashBucketFast',
            'category': 'string',
            'inputs': [{
                'start': 0,
                'name': 'input',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'num_buckets',
                'name': 'numBuckets',
                'type': 'number'
            }]
        }];
        exports.json = json;

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

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.json = void 0;
        /**
         * @license
         * Copyright 2022 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        const json = [{
            'tfOpName': 'Cast',
            'category': 'transformation',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'SrcT',
                'name': 'sdtype',
                'type': 'dtype',
                'notSupported': true
            }, {
                'tfName': 'DstT',
                'name': 'dtype',
                'type': 'dtype'
            }]
        }, {
            'tfOpName': 'ExpandDims',
            'category': 'transformation',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'axis',
                'type': 'number'
            }]
        }, {
            'tfOpName': 'MirrorPad',
            'category': 'transformation',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'padding',
                'type': 'number[]'
            }],
            'attrs': [{
                'tfName': 'mode',
                'name': 'mode',
                'type': 'string'
            }]
        }, {
            'tfOpName': 'Pad',
            'category': 'transformation',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'padding',
                'type': 'number[]'
            }],
            'attrs': [{
                'tfName': 'constant_value',
                'name': 'constantValue',
                'type': 'number',
                'defaultValue': 0
            }]
        }, {
            'tfOpName': 'PadV2',
            'category': 'transformation',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'padding',
                'type': 'number[]'
            }, {
                'start': 2,
                'name': 'constantValue',
                'type': 'number',
                'defaultValue': 0
            }]
        }, {
            'tfOpName': 'Reshape',
            'category': 'transformation',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'shape',
                'type': 'number[]'
            }]
        }, {
            'tfOpName': 'Squeeze',
            'category': 'transformation',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'axis',
                'tfDeprecatedName': 'squeeze_dims',
                'name': 'axis',
                'type': 'number[]'
            }]
        }, {
            'tfOpName': 'SpaceToBatchND',
            'category': 'transformation',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'blockShape',
                'type': 'number[]'
            }, {
                'start': 2,
                'name': 'paddings',
                'type': 'number[]'
            }]
        }, {
            'tfOpName': 'BatchToSpaceND',
            'category': 'transformation',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'blockShape',
                'type': 'number[]'
            }, {
                'start': 2,
                'name': 'crops',
                'type': 'number[]'
            }]
        }, {
            'tfOpName': 'DepthToSpace',
            'category': 'transformation',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'block_size',
                'name': 'blockSize',
                'type': 'number'
            }, {
                'tfName': 'data_format',
                'name': 'dataFormat',
                'type': 'string'
            }]
        }, {
            'tfOpName': 'BroadcastTo',
            'category': 'transformation',
            'inputs': [{
                'start': 0,
                'name': 'x',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'shape',
                'type': 'number[]'
            }],
            'attrs': []
        }, {
            'tfOpName': 'BroadcastArgs',
            'category': 'transformation',
            'inputs': [{
                'start': 0,
                'name': 's0',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 's1',
                'type': 'tensor'
            }],
            'attrs': []
        }];
        exports.json = json;

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

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.executeOp = executeOp;
        var tfc = _interopRequireWildcard(require("@tensorflow/tfjs-core"));
        var _node_value_impl = require("./custom_op/node_value_impl");
        var _register = require("./custom_op/register");
        var arithmetic = _interopRequireWildcard(require("./executors/arithmetic_executor"));
        var basicMath = _interopRequireWildcard(require("./executors/basic_math_executor"));
        var control = _interopRequireWildcard(require("./executors/control_executor"));
        var convolution = _interopRequireWildcard(require("./executors/convolution_executor"));
        var creation = _interopRequireWildcard(require("./executors/creation_executor"));
        var dynamic = _interopRequireWildcard(require("./executors/dynamic_executor"));
        var evaluation = _interopRequireWildcard(require("./executors/evaluation_executor"));
        var graph = _interopRequireWildcard(require("./executors/graph_executor"));
        var hashTable = _interopRequireWildcard(require("./executors/hash_table_executor"));
        var image = _interopRequireWildcard(require("./executors/image_executor"));
        var logical = _interopRequireWildcard(require("./executors/logical_executor"));
        var matrices = _interopRequireWildcard(require("./executors/matrices_executor"));
        var normalization = _interopRequireWildcard(require("./executors/normalization_executor"));
        var reduction = _interopRequireWildcard(require("./executors/reduction_executor"));
        var sliceJoin = _interopRequireWildcard(require("./executors/slice_join_executor"));
        var sparse = _interopRequireWildcard(require("./executors/sparse_executor"));
        var spectral = _interopRequireWildcard(require("./executors/spectral_executor"));
        var string = _interopRequireWildcard(require("./executors/string_executor"));
        var transformation = _interopRequireWildcard(require("./executors/transformation_executor"));
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Executes the op defined by the node object.
         * @param node
         * @param tensorMap contains tensors for executed nodes and weights
         * @param context contains tensors and information for running the current node.
         * @param resourceManager Optional. Contains global resources of the model.
         */
        function executeOp(node, tensorMap, context, resourceManager, tidy = tfc.tidy) {
            const value = ((node, tensorMap, context) => {
                switch (node.category) {
                    case 'arithmetic':
                        return tidy(() => arithmetic.executeOp(node, tensorMap, context));
                    case 'basic_math':
                        return tidy(() => basicMath.executeOp(node, tensorMap, context));
                    case 'control':
                        return control.executeOp(node, tensorMap, context);
                    case 'convolution':
                        return tidy(() => convolution.executeOp(node, tensorMap, context));
                    case 'creation':
                        return tidy(() => creation.executeOp(node, tensorMap, context));
                    case 'dynamic':
                        return dynamic.executeOp(node, tensorMap, context);
                    case 'evaluation':
                        return tidy(() => evaluation.executeOp(node, tensorMap, context));
                    case 'image':
                        return tidy(() => image.executeOp(node, tensorMap, context));
                    case 'graph':
                        return tidy(() => graph.executeOp(node, tensorMap, context));
                    case 'logical':
                        return tidy(() => logical.executeOp(node, tensorMap, context));
                    case 'matrices':
                        return tidy(() => matrices.executeOp(node, tensorMap, context));
                    case 'normalization':
                        return tidy(() => normalization.executeOp(node, tensorMap, context));
                    case 'reduction':
                        return tidy(() => reduction.executeOp(node, tensorMap, context));
                    case 'slice_join':
                        return tidy(() => sliceJoin.executeOp(node, tensorMap, context));
                    case 'sparse':
                        return tidy(() => sparse.executeOp(node, tensorMap, context));
                    case 'spectral':
                        return tidy(() => spectral.executeOp(node, tensorMap, context));
                    case 'string':
                        return tidy(() => string.executeOp(node, tensorMap, context));
                    case 'transformation':
                        return tidy(() => transformation.executeOp(node, tensorMap, context));
                    case 'hash_table':
                        return hashTable.executeOp(node, tensorMap, context, resourceManager);
                    case 'custom':
                        const opMapper = (0,
                            _register.getRegisteredOp)(node.op);
                        if (opMapper && opMapper.customExecutor) {
                            return opMapper.customExecutor(new _node_value_impl.NodeValueImpl(node, tensorMap, context));
                        } else {
                            throw TypeError(`Custom op ${node.op} is not registered.`);
                        }
                    default:
                        throw TypeError(`Unknown op '${node.op}'. File an issue at ` + `https://github.com/tensorflow/tfjs/issues so we can add it` + `, or register a custom execution with tf.registerOp()`);
                }
            }
            )(node, tensorMap, context);
            if (tfc.util.isPromise(value)) {
                return value.then(data => [].concat(data));
            }
            return [].concat(value);
        }

    }
        , {
        "./custom_op/node_value_impl": 22,
        "./custom_op/register": 23,
        "./executors/arithmetic_executor": 24,
        "./executors/basic_math_executor": 25,
        "./executors/control_executor": 26,
        "./executors/convolution_executor": 27,
        "./executors/creation_executor": 28,
        "./executors/dynamic_executor": 29,
        "./executors/evaluation_executor": 30,
        "./executors/graph_executor": 31,
        "./executors/hash_table_executor": 32,
        "./executors/image_executor": 33,
        "./executors/logical_executor": 34,
        "./executors/matrices_executor": 35,
        "./executors/normalization_executor": 36,
        "./executors/reduction_executor": 37,
        "./executors/slice_join_executor": 38,
        "./executors/sparse_executor": 39,
        "./executors/spectral_executor": 40,
        "./executors/string_executor": 41,
        "./executors/transformation_executor": 42,
        "@tensorflow/tfjs-core": 506
    }],
    64: [function (require, module, exports) {
        (function (Buffer) {
            (function () {
                "use strict";

                Object.defineProperty(exports, "__esModule", {
                    value: true
                });
                exports.OperationMapper = void 0;
                exports.decodeBase64 = decodeBase64;
                exports.getBoolArrayParam = getBoolArrayParam;
                exports.getBoolParam = getBoolParam;
                exports.getDtypeArrayParam = getDtypeArrayParam;
                exports.getDtypeParam = getDtypeParam;
                exports.getFuncParam = getFuncParam;
                exports.getNumberParam = getNumberParam;
                exports.getNumericArrayParam = getNumericArrayParam;
                exports.getStringArrayParam = getStringArrayParam;
                exports.getStringParam = getStringParam;
                exports.getTensorShapeArrayParam = getTensorShapeArrayParam;
                exports.getTensorShapeParam = getTensorShapeParam;
                exports.parseDtypeParam = parseDtypeParam;
                exports.parseStringParam = parseStringParam;
                exports.parseTensorShapeParam = parseTensorShapeParam;
                var _tfjsCore = require("@tensorflow/tfjs-core");
                var tensorflow = _interopRequireWildcard(require("../data/compiled_api"));
                var _register = require("./custom_op/register");
                var _utils = require("./executors/utils");
                var arithmetic = _interopRequireWildcard(require("./op_list/arithmetic"));
                var basicMath = _interopRequireWildcard(require("./op_list/basic_math"));
                var control = _interopRequireWildcard(require("./op_list/control"));
                var convolution = _interopRequireWildcard(require("./op_list/convolution"));
                var creation = _interopRequireWildcard(require("./op_list/creation"));
                var dynamic = _interopRequireWildcard(require("./op_list/dynamic"));
                var evaluation = _interopRequireWildcard(require("./op_list/evaluation"));
                var graph = _interopRequireWildcard(require("./op_list/graph"));
                var hashTable = _interopRequireWildcard(require("./op_list/hash_table"));
                var image = _interopRequireWildcard(require("./op_list/image"));
                var logical = _interopRequireWildcard(require("./op_list/logical"));
                var matrices = _interopRequireWildcard(require("./op_list/matrices"));
                var normalization = _interopRequireWildcard(require("./op_list/normalization"));
                var reduction = _interopRequireWildcard(require("./op_list/reduction"));
                var sliceJoin = _interopRequireWildcard(require("./op_list/slice_join"));
                var sparse = _interopRequireWildcard(require("./op_list/sparse"));
                var spectral = _interopRequireWildcard(require("./op_list/spectral"));
                var string = _interopRequireWildcard(require("./op_list/string"));
                var transformation = _interopRequireWildcard(require("./op_list/transformation"));
                function _getRequireWildcardCache(nodeInterop) {
                    if (typeof WeakMap !== "function")
                        return null;
                    var cacheBabelInterop = new WeakMap();
                    var cacheNodeInterop = new WeakMap();
                    return (_getRequireWildcardCache = function (nodeInterop) {
                        return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
                    }
                    )(nodeInterop);
                }
                function _interopRequireWildcard(obj, nodeInterop) {
                    if (!nodeInterop && obj && obj.__esModule) {
                        return obj;
                    }
                    if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                        return {
                            default: obj
                        };
                    }
                    var cache = _getRequireWildcardCache(nodeInterop);
                    if (cache && cache.has(obj)) {
                        return cache.get(obj);
                    }
                    var newObj = {};
                    var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
                    for (var key in obj) {
                        if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                            var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                            if (desc && (desc.get || desc.set)) {
                                Object.defineProperty(newObj, key, desc);
                            } else {
                                newObj[key] = obj[key];
                            }
                        }
                    }
                    newObj.default = obj;
                    if (cache) {
                        cache.set(obj, newObj);
                    }
                    return newObj;
                }
                /**
                 * @license
                 * Copyright 2018 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */

                class OperationMapper {
                    // Singleton instance for the mapper
                    static get Instance() {
                        return this._instance || (this._instance = new this());
                    }
                    // Loads the op mapping from the JSON file.
                    constructor() {
                        const ops = [arithmetic, basicMath, control, convolution, creation, dynamic, evaluation, graph, hashTable, image, logical, matrices, normalization, reduction, sliceJoin, sparse, spectral, string, transformation];
                        const mappersJson = [].concat(...ops.map(op => op.json));
                        this.opMappers = mappersJson.reduce((map, mapper) => {
                            map[mapper.tfOpName] = mapper;
                            return map;
                        }
                            , {});
                    }
                    // Converts the model inference graph from Tensorflow GraphDef to local
                    // representation for TensorFlow.js API
                    transformGraph(graph, signature = {}) {
                        const tfNodes = graph.node;
                        const placeholders = [];
                        const weights = [];
                        const initNodes = [];
                        const nodes = tfNodes.reduce((map, node) => {
                            map[node.name] = this.mapNode(node);
                            if (node.op.startsWith('Placeholder')) {
                                placeholders.push(map[node.name]);
                            } else if (node.op === 'Const') {
                                weights.push(map[node.name]);
                            } else if (node.input == null || node.input.length === 0) {
                                initNodes.push(map[node.name]);
                            }
                            return map;
                        }
                            , {});
                        let inputs = [];
                        const outputs = [];
                        let inputNodeNameToKey = {};
                        let outputNodeNameToKey = {};
                        if (signature != null) {
                            inputNodeNameToKey = this.mapSignatureEntries(signature.inputs);
                            outputNodeNameToKey = this.mapSignatureEntries(signature.outputs);
                        }
                        const allNodes = Object.keys(nodes);
                        allNodes.forEach(key => {
                            const node = nodes[key];
                            node.inputNames.forEach((name, index) => {
                                const [nodeName, , outputName] = (0,
                                    _utils.getNodeNameAndIndex)(name);
                                const inputNode = nodes[nodeName];
                                if (inputNode.outputs != null) {
                                    const outputIndex = inputNode.outputs.indexOf(outputName);
                                    if (outputIndex !== -1) {
                                        const inputName = `${nodeName}:${outputIndex}`;
                                        // update the input name to use the mapped output index directly.
                                        node.inputNames[index] = inputName;
                                    }
                                }
                                node.inputs.push(inputNode);
                                inputNode.children.push(node);
                            }
                            );
                        }
                        );
                        // if signature has not outputs set, add any node that does not have
                        // outputs.
                        if (Object.keys(outputNodeNameToKey).length === 0) {
                            allNodes.forEach(key => {
                                const node = nodes[key];
                                if (node.children.length === 0) {
                                    outputs.push(node);
                                }
                            }
                            );
                        } else {
                            Object.keys(outputNodeNameToKey).forEach(name => {
                                const [nodeName] = (0,
                                    _utils.getNodeNameAndIndex)(name);
                                const node = nodes[nodeName];
                                if (node != null) {
                                    node.signatureKey = outputNodeNameToKey[name];
                                    outputs.push(node);
                                }
                            }
                            );
                        }
                        if (Object.keys(inputNodeNameToKey).length > 0) {
                            Object.keys(inputNodeNameToKey).forEach(name => {
                                const [nodeName] = (0,
                                    _utils.getNodeNameAndIndex)(name);
                                const node = nodes[nodeName];
                                if (node) {
                                    node.signatureKey = inputNodeNameToKey[name];
                                    inputs.push(node);
                                }
                            }
                            );
                        } else {
                            inputs = placeholders;
                        }
                        let functions = {};
                        if (graph.library != null && graph.library.function != null) {
                            functions = graph.library.function.reduce((functions, func) => {
                                functions[func.signature.name] = this.mapFunction(func);
                                return functions;
                            }
                                , {});
                        }
                        const result = {
                            nodes,
                            inputs,
                            outputs,
                            weights,
                            placeholders,
                            signature,
                            functions
                        };
                        if (initNodes.length > 0) {
                            result.initNodes = initNodes;
                        }
                        return result;
                    }
                    mapSignatureEntries(entries) {
                        return Object.keys(entries || {}).reduce((prev, curr) => {
                            prev[entries[curr].name] = curr;
                            return prev;
                        }
                            , {});
                    }
                    mapNode(node) {
                        // Unsupported ops will cause an error at run-time (not parse time), since
                        // they may not be used by the actual execution subgraph.
                        const mapper = (0,
                            _register.getRegisteredOp)(node.op) || this.opMappers[node.op] || {};
                        if (node.attr == null) {
                            node.attr = {};
                        }
                        const newNode = {
                            name: node.name,
                            op: node.op,
                            category: mapper.category,
                            inputNames: (node.input || []).map(input => input.startsWith('^') ? input.slice(1) : input),
                            inputs: [],
                            children: [],
                            inputParams: {},
                            attrParams: {},
                            rawAttrs: node.attr,
                            outputs: mapper.outputs
                        };
                        if (mapper.inputs != null) {
                            newNode.inputParams = mapper.inputs.reduce((map, param) => {
                                map[param.name] = {
                                    type: param.type,
                                    inputIndexStart: param.start,
                                    inputIndexEnd: param.end
                                };
                                return map;
                            }
                                , {});
                        }
                        if (mapper.attrs != null) {
                            newNode.attrParams = mapper.attrs.reduce((map, param) => {
                                const type = param.type;
                                let value = undefined;
                                switch (param.type) {
                                    case 'string':
                                        value = getStringParam(node.attr, param.tfName, param.defaultValue);
                                        if (value === undefined && !!param.tfDeprecatedName) {
                                            value = getStringParam(node.attr, param.tfDeprecatedName, param.defaultValue);
                                        }
                                        break;
                                    case 'string[]':
                                        value = getStringArrayParam(node.attr, param.tfName, param.defaultValue);
                                        if (value === undefined && !!param.tfDeprecatedName) {
                                            value = getStringArrayParam(node.attr, param.tfDeprecatedName, param.defaultValue);
                                        }
                                        break;
                                    case 'number':
                                        value = getNumberParam(node.attr, param.tfName, param.defaultValue || 0);
                                        if (value === undefined && !!param.tfDeprecatedName) {
                                            value = getNumberParam(node.attr, param.tfDeprecatedName, param.defaultValue);
                                        }
                                        break;
                                    case 'number[]':
                                        value = getNumericArrayParam(node.attr, param.tfName, param.defaultValue);
                                        if (value === undefined && !!param.tfDeprecatedName) {
                                            value = getNumericArrayParam(node.attr, param.tfDeprecatedName, param.defaultValue);
                                        }
                                        break;
                                    case 'bool':
                                        value = getBoolParam(node.attr, param.tfName, param.defaultValue);
                                        if (value === undefined && !!param.tfDeprecatedName) {
                                            value = getBoolParam(node.attr, param.tfDeprecatedName, param.defaultValue);
                                        }
                                        break;
                                    case 'bool[]':
                                        value = getBoolArrayParam(node.attr, param.tfName, param.defaultValue);
                                        if (value === undefined && !!param.tfDeprecatedName) {
                                            value = getBoolArrayParam(node.attr, param.tfDeprecatedName, param.defaultValue);
                                        }
                                        break;
                                    case 'shape':
                                        value = getTensorShapeParam(node.attr, param.tfName, param.defaultValue);
                                        if (value === undefined && !!param.tfDeprecatedName) {
                                            value = getTensorShapeParam(node.attr, param.tfDeprecatedName, param.defaultValue);
                                        }
                                        break;
                                    case 'shape[]':
                                        value = getTensorShapeArrayParam(node.attr, param.tfName, param.defaultValue);
                                        if (value === undefined && !!param.tfDeprecatedName) {
                                            value = getTensorShapeArrayParam(node.attr, param.tfDeprecatedName, param.defaultValue);
                                        }
                                        break;
                                    case 'dtype':
                                        value = getDtypeParam(node.attr, param.tfName, param.defaultValue);
                                        if (value === undefined && !!param.tfDeprecatedName) {
                                            value = getDtypeParam(node.attr, param.tfDeprecatedName, param.defaultValue);
                                        }
                                        break;
                                    case 'dtype[]':
                                        value = getDtypeArrayParam(node.attr, param.tfName, param.defaultValue);
                                        if (value === undefined && !!param.tfDeprecatedName) {
                                            value = getDtypeArrayParam(node.attr, param.tfDeprecatedName, param.defaultValue);
                                        }
                                        break;
                                    case 'func':
                                        value = getFuncParam(node.attr, param.tfName, param.defaultValue);
                                        if (value === undefined && !!param.tfDeprecatedName) {
                                            value = getFuncParam(node.attr, param.tfDeprecatedName, param.defaultValue);
                                        }
                                        break;
                                    case 'tensor':
                                    case 'tensors':
                                        break;
                                    default:
                                        throw new Error(`Unsupported param type: ${param.type} for op: ${node.op}`);
                                }
                                map[param.name] = {
                                    value,
                                    type
                                };
                                return map;
                            }
                                , {});
                        }
                        return newNode;
                    }
                    // map the TFunctionDef to TFJS graph object
                    mapFunction(functionDef) {
                        const tfNodes = functionDef.nodeDef;
                        const placeholders = [];
                        const weights = [];
                        let nodes = {};
                        if (tfNodes != null) {
                            nodes = tfNodes.reduce((map, node) => {
                                map[node.name] = this.mapNode(node);
                                if (node.op === 'Const') {
                                    weights.push(map[node.name]);
                                }
                                return map;
                            }
                                , {});
                        }
                        const inputs = [];
                        const outputs = [];
                        functionDef.signature.inputArg.forEach(arg => {
                            const [nodeName] = (0,
                                _utils.getNodeNameAndIndex)(arg.name);
                            const node = {
                                name: nodeName,
                                op: 'Placeholder',
                                inputs: [],
                                inputNames: [],
                                category: 'graph',
                                inputParams: {},
                                attrParams: {
                                    dtype: {
                                        value: parseDtypeParam(arg.type),
                                        type: 'dtype'
                                    }
                                },
                                children: []
                            };
                            node.signatureKey = arg.name;
                            inputs.push(node);
                            nodes[nodeName] = node;
                        }
                        );
                        const allNodes = Object.keys(nodes);
                        allNodes.forEach(key => {
                            const node = nodes[key];
                            node.inputNames.forEach((name, index) => {
                                const [nodeName, , outputName] = (0,
                                    _utils.getNodeNameAndIndex)(name);
                                const inputNode = nodes[nodeName];
                                if (inputNode.outputs != null) {
                                    const outputIndex = inputNode.outputs.indexOf(outputName);
                                    if (outputIndex !== -1) {
                                        const inputName = `${nodeName}:${outputIndex}`;
                                        // update the input name to use the mapped output index directly.
                                        node.inputNames[index] = inputName;
                                    }
                                }
                                node.inputs.push(inputNode);
                                inputNode.children.push(node);
                            }
                            );
                        }
                        );
                        const returnNodeMap = functionDef.ret;
                        functionDef.signature.outputArg.forEach(output => {
                            const [nodeName, index] = (0,
                                _utils.getNodeNameAndIndex)(returnNodeMap[output.name]);
                            const node = nodes[nodeName];
                            if (node != null) {
                                node.defaultOutput = index;
                                outputs.push(node);
                            }
                        }
                        );
                        const signature = this.mapArgsToSignature(functionDef);
                        return {
                            nodes,
                            inputs,
                            outputs,
                            weights,
                            placeholders,
                            signature
                        };
                    }
                    mapArgsToSignature(functionDef) {
                        return {
                            methodName: functionDef.signature.name,
                            inputs: functionDef.signature.inputArg.reduce((map, arg) => {
                                map[arg.name] = this.mapArgToTensorInfo(arg);
                                return map;
                            }
                                , {}),
                            outputs: functionDef.signature.outputArg.reduce((map, arg) => {
                                map[arg.name] = this.mapArgToTensorInfo(arg, functionDef.ret);
                                return map;
                            }
                                , {})
                        };
                    }
                    mapArgToTensorInfo(arg, nameMap) {
                        let name = arg.name;
                        if (nameMap != null) {
                            name = nameMap[name];
                        }
                        return {
                            name,
                            dtype: arg.type
                        };
                    }
                }
                exports.OperationMapper = OperationMapper;
                function decodeBase64(text) {
                    const global = (0,
                        _tfjsCore.env)().global;
                    if (typeof global.atob !== 'undefined') {
                        return global.atob(text);
                    } else if (typeof Buffer !== 'undefined') {
                        return new Buffer(text, 'base64').toString();
                    } else {
                        throw new Error('Unable to decode base64 in this environment. ' + 'Missing built-in atob() or Buffer()');
                    }
                }
                function parseStringParam(s, keepCase) {
                    const value = Array.isArray(s) ? String.fromCharCode.apply(null, s) : decodeBase64(s);
                    return keepCase ? value : value.toLowerCase();
                }
                function getStringParam(attrs, name, def, keepCase = false) {
                    const param = attrs[name];
                    if (param != null) {
                        return parseStringParam(param.s, keepCase);
                    }
                    return def;
                }
                function getBoolParam(attrs, name, def) {
                    const param = attrs[name];
                    return param ? param.b : def;
                }
                function getNumberParam(attrs, name, def) {
                    const param = attrs[name] || {};
                    const value = param['i'] != null ? param['i'] : param['f'] != null ? param['f'] : def;
                    return typeof value === 'number' ? value : parseInt(value, 10);
                }
                function parseDtypeParam(value) {
                    if (typeof value === 'string') {
                        // tslint:disable-next-line:no-any
                        value = tensorflow.DataType[value];
                    }
                    switch (value) {
                        case tensorflow.DataType.DT_FLOAT:
                        case tensorflow.DataType.DT_HALF:
                            return 'float32';
                        case tensorflow.DataType.DT_INT32:
                        case tensorflow.DataType.DT_INT64:
                        case tensorflow.DataType.DT_INT8:
                        case tensorflow.DataType.DT_UINT8:
                            return 'int32';
                        case tensorflow.DataType.DT_BOOL:
                            return 'bool';
                        case tensorflow.DataType.DT_DOUBLE:
                            return 'float32';
                        case tensorflow.DataType.DT_STRING:
                            return 'string';
                        default:
                            // Unknown dtype error will happen at runtime (instead of parse time),
                            // since these nodes might not be used by the actual subgraph execution.
                            return null;
                    }
                }
                function getFuncParam(attrs, name, def) {
                    const param = attrs[name];
                    if (param && param.func) {
                        return param.func.name;
                    }
                    return def;
                }
                function getDtypeParam(attrs, name, def) {
                    const param = attrs[name];
                    if (param && param.type) {
                        return parseDtypeParam(param.type);
                    }
                    return def;
                }
                function getDtypeArrayParam(attrs, name, def) {
                    const param = attrs[name];
                    if (param && param.list && param.list.type) {
                        return param.list.type.map(v => parseDtypeParam(v));
                    }
                    return def;
                }
                function parseTensorShapeParam(shape) {
                    if (shape.unknownRank) {
                        return undefined;
                    }
                    if (shape.dim != null) {
                        return shape.dim.map(dim => typeof dim.size === 'number' ? dim.size : parseInt(dim.size, 10));
                    }
                    return [];
                }
                function getTensorShapeParam(attrs, name, def) {
                    const param = attrs[name];
                    if (param && param.shape) {
                        return parseTensorShapeParam(param.shape);
                    }
                    return def;
                }
                function getNumericArrayParam(attrs, name, def) {
                    const param = attrs[name];
                    if (param) {
                        return ((param.list.f && param.list.f.length ? param.list.f : param.list.i) || []).map(v => typeof v === 'number' ? v : parseInt(v, 10));
                    }
                    return def;
                }
                function getStringArrayParam(attrs, name, def, keepCase = false) {
                    const param = attrs[name];
                    if (param && param.list && param.list.s) {
                        return param.list.s.map(v => {
                            return parseStringParam(v, keepCase);
                        }
                        );
                    }
                    return def;
                }
                function getTensorShapeArrayParam(attrs, name, def) {
                    const param = attrs[name];
                    if (param && param.list && param.list.shape) {
                        return param.list.shape.map(v => {
                            return parseTensorShapeParam(v);
                        }
                        );
                    }
                    return def;
                }
                function getBoolArrayParam(attrs, name, def) {
                    const param = attrs[name];
                    if (param && param.list && param.list.b) {
                        return param.list.b;
                    }
                    return def;
                }

            }
            ).call(this)
        }
        ).call(this, require("buffer").Buffer)
    }
        , {
        "../data/compiled_api": 10,
        "./custom_op/register": 23,
        "./executors/utils": 43,
        "./op_list/arithmetic": 44,
        "./op_list/basic_math": 45,
        "./op_list/control": 46,
        "./op_list/convolution": 47,
        "./op_list/creation": 48,
        "./op_list/dynamic": 49,
        "./op_list/evaluation": 50,
        "./op_list/graph": 51,
        "./op_list/hash_table": 52,
        "./op_list/image": 53,
        "./op_list/logical": 54,
        "./op_list/matrices": 55,
        "./op_list/normalization": 56,
        "./op_list/reduction": 57,
        "./op_list/slice_join": 58,
        "./op_list/sparse": 59,
        "./op_list/spectral": 60,
        "./op_list/string": 61,
        "./op_list/transformation": 62,
        "@tensorflow/tfjs-core": 506,
        "buffer": 647
    }],
    65: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.version = void 0;
        /** @license See the LICENSE file. */
        // This code is auto-generated, do not modify this file!
        const version = '3.21.0';
        exports.version = version;

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

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.KernelBackend = exports.EPSILON_FLOAT32 = exports.EPSILON_FLOAT16 = exports.DataStorage = void 0;
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        const EPSILON_FLOAT32 = 1e-7;
        exports.EPSILON_FLOAT32 = EPSILON_FLOAT32;
        const EPSILON_FLOAT16 = 1e-4;
        /** Convenient class for storing tensor-related data. */
        exports.EPSILON_FLOAT16 = EPSILON_FLOAT16;
        class DataStorage {
            constructor(backend, dataMover) {
                this.backend = backend;
                this.dataMover = dataMover;
                this.data = new WeakMap();
                this.dataIdsCount = 0;
            }
            get(dataId) {
                if (!this.data.has(dataId)) {
                    this.dataMover.moveData(this.backend, dataId);
                }
                return this.data.get(dataId);
            }
            set(dataId, value) {
                this.dataIdsCount++;
                this.data.set(dataId, value);
            }
            has(dataId) {
                return this.data.has(dataId);
            }
            delete(dataId) {
                this.dataIdsCount--;
                return this.data.delete(dataId);
            }
            numDataIds() {
                return this.dataIdsCount;
            }
        }
        /**
         * The interface that defines the kernels that should be implemented when
         * adding a new backend. New backends don't need to implement every one of the
         * methods, this can be done gradually (throw an error for unimplemented
         * methods).
         */
        exports.DataStorage = DataStorage;
        class KernelBackend {
            refCount(dataId) {
                return notYetImplemented('refCount');
            }
            incRef(dataId) {
                return notYetImplemented('incRef');
            }
            timerAvailable() {
                return true;
            }
            time(f) {
                return notYetImplemented('time');
            }
            read(dataId) {
                return notYetImplemented('read');
            }
            readSync(dataId) {
                return notYetImplemented('readSync');
            }
            readToGPU(dataId, options) {
                return notYetImplemented('readToGPU');
            }
            numDataIds() {
                return notYetImplemented('numDataIds');
            }
            disposeData(dataId, force) {
                return notYetImplemented('disposeData');
            }
            write(values, shape, dtype) {
                return notYetImplemented('write');
            }
            move(dataId, values, shape, dtype, refCount) {
                return notYetImplemented('move');
            }
            createTensorFromTexture(values, shape, dtype) {
                return notYetImplemented('createTensorFromTexture');
            }
            memory() {
                return notYetImplemented('memory');
            }
            /** Returns the highest precision for floats in bits (e.g. 16 or 32) */
            floatPrecision() {
                return notYetImplemented('floatPrecision');
            }
            /** Returns the smallest representable number.  */
            epsilon() {
                return this.floatPrecision() === 32 ? EPSILON_FLOAT32 : EPSILON_FLOAT16;
            }
            dispose() {
                return notYetImplemented('dispose');
            }
        }
        exports.KernelBackend = KernelBackend;
        function notYetImplemented(kernelName) {
            throw new Error(`'${kernelName}' not yet implemented or not found in the registry. ` + `This kernel may not be supported by the tfjs backend you have chosen`);
        }

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

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        var _exportNames = {
            fromUint8ToStringArray: true,
            fromStringArrayToUint8: true,
            slice_util: true,
            upcastType: true,
            segment_util: true
        };
        exports.fromStringArrayToUint8 = fromStringArrayToUint8;
        exports.fromUint8ToStringArray = fromUint8ToStringArray;
        exports.slice_util = exports.segment_util = void 0;
        Object.defineProperty(exports, "upcastType", {
            enumerable: true,
            get: function () {
                return _types.upcastType;
            }
        });
        var _util = require("../util");
        var _axis_util = require("../ops/axis_util");
        Object.keys(_axis_util).forEach(function (key) {
            if (key === "default" || key === "__esModule")
                return;
            if (Object.prototype.hasOwnProperty.call(_exportNames, key))
                return;
            if (key in exports && exports[key] === _axis_util[key])
                return;
            Object.defineProperty(exports, key, {
                enumerable: true,
                get: function () {
                    return _axis_util[key];
                }
            });
        });
        var _broadcast_util = require("../ops/broadcast_util");
        Object.keys(_broadcast_util).forEach(function (key) {
            if (key === "default" || key === "__esModule")
                return;
            if (Object.prototype.hasOwnProperty.call(_exportNames, key))
                return;
            if (key in exports && exports[key] === _broadcast_util[key])
                return;
            Object.defineProperty(exports, key, {
                enumerable: true,
                get: function () {
                    return _broadcast_util[key];
                }
            });
        });
        var _concat_util = require("../ops/concat_util");
        Object.keys(_concat_util).forEach(function (key) {
            if (key === "default" || key === "__esModule")
                return;
            if (Object.prototype.hasOwnProperty.call(_exportNames, key))
                return;
            if (key in exports && exports[key] === _concat_util[key])
                return;
            Object.defineProperty(exports, key, {
                enumerable: true,
                get: function () {
                    return _concat_util[key];
                }
            });
        });
        var _conv_util = require("../ops/conv_util");
        Object.keys(_conv_util).forEach(function (key) {
            if (key === "default" || key === "__esModule")
                return;
            if (Object.prototype.hasOwnProperty.call(_exportNames, key))
                return;
            if (key in exports && exports[key] === _conv_util[key])
                return;
            Object.defineProperty(exports, key, {
                enumerable: true,
                get: function () {
                    return _conv_util[key];
                }
            });
        });
        var _fused_util = require("../ops/fused_util");
        Object.keys(_fused_util).forEach(function (key) {
            if (key === "default" || key === "__esModule")
                return;
            if (Object.prototype.hasOwnProperty.call(_exportNames, key))
                return;
            if (key in exports && exports[key] === _fused_util[key])
                return;
            Object.defineProperty(exports, key, {
                enumerable: true,
                get: function () {
                    return _fused_util[key];
                }
            });
        });
        var _fused_types = require("../ops/fused_types");
        Object.keys(_fused_types).forEach(function (key) {
            if (key === "default" || key === "__esModule")
                return;
            if (Object.prototype.hasOwnProperty.call(_exportNames, key))
                return;
            if (key in exports && exports[key] === _fused_types[key])
                return;
            Object.defineProperty(exports, key, {
                enumerable: true,
                get: function () {
                    return _fused_types[key];
                }
            });
        });
        var _ragged_to_dense_util = require("../ops/ragged_to_dense_util");
        Object.keys(_ragged_to_dense_util).forEach(function (key) {
            if (key === "default" || key === "__esModule")
                return;
            if (Object.prototype.hasOwnProperty.call(_exportNames, key))
                return;
            if (key in exports && exports[key] === _ragged_to_dense_util[key])
                return;
            Object.defineProperty(exports, key, {
                enumerable: true,
                get: function () {
                    return _ragged_to_dense_util[key];
                }
            });
        });
        var _reduce_util = require("../ops/reduce_util");
        Object.keys(_reduce_util).forEach(function (key) {
            if (key === "default" || key === "__esModule")
                return;
            if (Object.prototype.hasOwnProperty.call(_exportNames, key))
                return;
            if (key in exports && exports[key] === _reduce_util[key])
                return;
            Object.defineProperty(exports, key, {
                enumerable: true,
                get: function () {
                    return _reduce_util[key];
                }
            });
        });
        var slice_util = _interopRequireWildcard(require("../ops/slice_util"));
        exports.slice_util = slice_util;
        var _types = require("../types");
        var _rotate_util = require("../ops/rotate_util");
        Object.keys(_rotate_util).forEach(function (key) {
            if (key === "default" || key === "__esModule")
                return;
            if (Object.prototype.hasOwnProperty.call(_exportNames, key))
                return;
            if (key in exports && exports[key] === _rotate_util[key])
                return;
            Object.defineProperty(exports, key, {
                enumerable: true,
                get: function () {
                    return _rotate_util[key];
                }
            });
        });
        var _array_ops_util = require("../ops/array_ops_util");
        Object.keys(_array_ops_util).forEach(function (key) {
            if (key === "default" || key === "__esModule")
                return;
            if (Object.prototype.hasOwnProperty.call(_exportNames, key))
                return;
            if (key in exports && exports[key] === _array_ops_util[key])
                return;
            Object.defineProperty(exports, key, {
                enumerable: true,
                get: function () {
                    return _array_ops_util[key];
                }
            });
        });
        var _gather_nd_util = require("../ops/gather_nd_util");
        Object.keys(_gather_nd_util).forEach(function (key) {
            if (key === "default" || key === "__esModule")
                return;
            if (Object.prototype.hasOwnProperty.call(_exportNames, key))
                return;
            if (key in exports && exports[key] === _gather_nd_util[key])
                return;
            Object.defineProperty(exports, key, {
                enumerable: true,
                get: function () {
                    return _gather_nd_util[key];
                }
            });
        });
        var _scatter_nd_util = require("../ops/scatter_nd_util");
        Object.keys(_scatter_nd_util).forEach(function (key) {
            if (key === "default" || key === "__esModule")
                return;
            if (Object.prototype.hasOwnProperty.call(_exportNames, key))
                return;
            if (key in exports && exports[key] === _scatter_nd_util[key])
                return;
            Object.defineProperty(exports, key, {
                enumerable: true,
                get: function () {
                    return _scatter_nd_util[key];
                }
            });
        });
        var _selu_util = require("../ops/selu_util");
        Object.keys(_selu_util).forEach(function (key) {
            if (key === "default" || key === "__esModule")
                return;
            if (Object.prototype.hasOwnProperty.call(_exportNames, key))
                return;
            if (key in exports && exports[key] === _selu_util[key])
                return;
            Object.defineProperty(exports, key, {
                enumerable: true,
                get: function () {
                    return _selu_util[key];
                }
            });
        });
        var _erf_util = require("../ops/erf_util");
        Object.keys(_erf_util).forEach(function (key) {
            if (key === "default" || key === "__esModule")
                return;
            if (Object.prototype.hasOwnProperty.call(_exportNames, key))
                return;
            if (key in exports && exports[key] === _erf_util[key])
                return;
            Object.defineProperty(exports, key, {
                enumerable: true,
                get: function () {
                    return _erf_util[key];
                }
            });
        });
        var _log = require("../log");
        Object.keys(_log).forEach(function (key) {
            if (key === "default" || key === "__esModule")
                return;
            if (Object.prototype.hasOwnProperty.call(_exportNames, key))
                return;
            if (key in exports && exports[key] === _log[key])
                return;
            Object.defineProperty(exports, key, {
                enumerable: true,
                get: function () {
                    return _log[key];
                }
            });
        });
        var _complex_util = require("../backends/complex_util");
        Object.keys(_complex_util).forEach(function (key) {
            if (key === "default" || key === "__esModule")
                return;
            if (Object.prototype.hasOwnProperty.call(_exportNames, key))
                return;
            if (key in exports && exports[key] === _complex_util[key])
                return;
            Object.defineProperty(exports, key, {
                enumerable: true,
                get: function () {
                    return _complex_util[key];
                }
            });
        });
        var _einsum_util = require("../backends/einsum_util");
        Object.keys(_einsum_util).forEach(function (key) {
            if (key === "default" || key === "__esModule")
                return;
            if (Object.prototype.hasOwnProperty.call(_exportNames, key))
                return;
            if (key in exports && exports[key] === _einsum_util[key])
                return;
            Object.defineProperty(exports, key, {
                enumerable: true,
                get: function () {
                    return _einsum_util[key];
                }
            });
        });
        var _split_util = require("../ops/split_util");
        Object.keys(_split_util).forEach(function (key) {
            if (key === "default" || key === "__esModule")
                return;
            if (Object.prototype.hasOwnProperty.call(_exportNames, key))
                return;
            if (key in exports && exports[key] === _split_util[key])
                return;
            Object.defineProperty(exports, key, {
                enumerable: true,
                get: function () {
                    return _split_util[key];
                }
            });
        });
        var _sparse_fill_empty_rows_util = require("../ops/sparse/sparse_fill_empty_rows_util");
        Object.keys(_sparse_fill_empty_rows_util).forEach(function (key) {
            if (key === "default" || key === "__esModule")
                return;
            if (Object.prototype.hasOwnProperty.call(_exportNames, key))
                return;
            if (key in exports && exports[key] === _sparse_fill_empty_rows_util[key])
                return;
            Object.defineProperty(exports, key, {
                enumerable: true,
                get: function () {
                    return _sparse_fill_empty_rows_util[key];
                }
            });
        });
        var _sparse_reshape_util = require("../ops/sparse/sparse_reshape_util");
        Object.keys(_sparse_reshape_util).forEach(function (key) {
            if (key === "default" || key === "__esModule")
                return;
            if (Object.prototype.hasOwnProperty.call(_exportNames, key))
                return;
            if (key in exports && exports[key] === _sparse_reshape_util[key])
                return;
            Object.defineProperty(exports, key, {
                enumerable: true,
                get: function () {
                    return _sparse_reshape_util[key];
                }
            });
        });
        var _sparse_segment_reduction_util = require("../ops/sparse/sparse_segment_reduction_util");
        Object.keys(_sparse_segment_reduction_util).forEach(function (key) {
            if (key === "default" || key === "__esModule")
                return;
            if (Object.prototype.hasOwnProperty.call(_exportNames, key))
                return;
            if (key in exports && exports[key] === _sparse_segment_reduction_util[key])
                return;
            Object.defineProperty(exports, key, {
                enumerable: true,
                get: function () {
                    return _sparse_segment_reduction_util[key];
                }
            });
        });
        var segment_util = _interopRequireWildcard(require("../ops/segment_util"));
        exports.segment_util = segment_util;
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        // Utilities needed by backend consumers of tf-core.

        function fromUint8ToStringArray(vals) {
            try {
                // Decode the bytes into string.
                return vals.map(val => (0,
                    _util.decodeString)(val));
            } catch (err) {
                throw new Error(`Failed to decode encoded string bytes into utf-8, error: ${err}`);
            }
        }
        function fromStringArrayToUint8(strings) {
            return strings.map(s => (0,
                _util.encodeString)(s));
        }

    }
        , {
        "../backends/complex_util": 68,
        "../backends/einsum_util": 69,
        "../log": 200,
        "../ops/array_ops_util": 211,
        "../ops/axis_util": 221,
        "../ops/broadcast_util": 233,
        "../ops/concat_util": 246,
        "../ops/conv_util": 257,
        "../ops/erf_util": 278,
        "../ops/fused_types": 291,
        "../ops/fused_util": 292,
        "../ops/gather_nd_util": 295,
        "../ops/ragged_to_dense_util": 389,
        "../ops/reduce_util": 399,
        "../ops/rotate_util": 408,
        "../ops/scatter_nd_util": 413,
        "../ops/segment_util": 415,
        "../ops/selu_util": 417,
        "../ops/slice_util": 434,
        "../ops/sparse/sparse_fill_empty_rows_util": 439,
        "../ops/sparse/sparse_reshape_util": 441,
        "../ops/sparse/sparse_segment_reduction_util": 443,
        "../ops/split_util": 452,
        "../types": 508,
        "../util": 509
    }],
    68: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.assignToTypedArray = assignToTypedArray;
        exports.complexWithEvenIndex = complexWithEvenIndex;
        exports.complexWithOddIndex = complexWithOddIndex;
        exports.exponent = exponent;
        exports.exponents = exponents;
        exports.getComplexWithIndex = getComplexWithIndex;
        exports.mergeRealAndImagArrays = mergeRealAndImagArrays;
        exports.splitRealAndImagArrays = splitRealAndImagArrays;
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        /**
         * Merges real and imaginary Float32Arrays into a single complex Float32Array.
         *
         * The memory layout is interleaved as follows:
         * real: [r0, r1, r2]
         * imag: [i0, i1, i2]
         * complex: [r0, i0, r1, i1, r2, i2]
         *
         * This is the inverse of splitRealAndImagArrays.
         *
         * @param real The real values of the complex tensor values.
         * @param imag The imag values of the complex tensor values.
         * @returns A complex tensor as a Float32Array with merged values.
         */
        function mergeRealAndImagArrays(real, imag) {
            if (real.length !== imag.length) {
                throw new Error(`Cannot merge real and imag arrays of different lengths. real:` + `${real.length}, imag: ${imag.length}.`);
            }
            const result = new Float32Array(real.length * 2);
            for (let i = 0; i < result.length; i += 2) {
                result[i] = real[i / 2];
                result[i + 1] = imag[i / 2];
            }
            return result;
        }
        /**
         * Splits a complex Float32Array into real and imag parts.
         *
         * The memory layout is interleaved as follows:
         * complex: [r0, i0, r1, i1, r2, i2]
         * real: [r0, r1, r2]
         * imag: [i0, i1, i2]
         *
         * This is the inverse of mergeRealAndImagArrays.
         *
         * @param complex The complex tensor values.
         * @returns An object with real and imag Float32Array components of the complex
         *     tensor.
         */
        function splitRealAndImagArrays(complex) {
            const real = new Float32Array(complex.length / 2);
            const imag = new Float32Array(complex.length / 2);
            for (let i = 0; i < complex.length; i += 2) {
                real[i / 2] = complex[i];
                imag[i / 2] = complex[i + 1];
            }
            return {
                real,
                imag
            };
        }
        /**
         * Extracts even indexed complex values in the given array.
         * @param complex The complex tensor values
         */
        function complexWithEvenIndex(complex) {
            const len = Math.ceil(complex.length / 4);
            const real = new Float32Array(len);
            const imag = new Float32Array(len);
            for (let i = 0; i < complex.length; i += 4) {
                real[Math.floor(i / 4)] = complex[i];
                imag[Math.floor(i / 4)] = complex[i + 1];
            }
            return {
                real,
                imag
            };
        }
        /**
         * Extracts odd indexed comple values in the given array.
         * @param complex The complex tensor values
         */
        function complexWithOddIndex(complex) {
            const len = Math.floor(complex.length / 4);
            const real = new Float32Array(len);
            const imag = new Float32Array(len);
            for (let i = 2; i < complex.length; i += 4) {
                real[Math.floor(i / 4)] = complex[i];
                imag[Math.floor(i / 4)] = complex[i + 1];
            }
            return {
                real,
                imag
            };
        }
        /**
         * Get the map representing a complex value in the given array.
         * @param complex The complex tensor values.
         * @param index An index of the target complex value.
         */
        function getComplexWithIndex(complex, index) {
            const real = complex[index * 2];
            const imag = complex[index * 2 + 1];
            return {
                real,
                imag
            };
        }
        /**
         * Insert a given complex value into the TypedArray.
         * @param data The array in which the complex value is inserted.
         * @param c The complex value to be inserted.
         * @param index An index of the target complex value.
         */
        function assignToTypedArray(data, real, imag, index) {
            data[index * 2] = real;
            data[index * 2 + 1] = imag;
        }
        /**
         * Make the list of exponent terms used by FFT.
         */
        function exponents(n, inverse) {
            const real = new Float32Array(n / 2);
            const imag = new Float32Array(n / 2);
            for (let i = 0; i < Math.ceil(n / 2); i++) {
                const x = (inverse ? 2 : -2) * Math.PI * (i / n);
                real[i] = Math.cos(x);
                imag[i] = Math.sin(x);
            }
            return {
                real,
                imag
            };
        }
        /**
         * Make the exponent term used by FFT.
         */
        function exponent(k, n, inverse) {
            const x = (inverse ? 2 : -2) * Math.PI * (k / n);
            const real = Math.cos(x);
            const imag = Math.sin(x);
            return {
                real,
                imag
            };
        }

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

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.checkEinsumDimSizes = checkEinsumDimSizes;
        exports.decodeEinsumEquation = decodeEinsumEquation;
        exports.getEinsumComputePath = getEinsumComputePath;
        exports.getEinsumPermutation = getEinsumPermutation;
        exports.isIdentityPermutation = isIdentityPermutation;
        var _util_base = require("../util_base");
        /**
         * @license
         * Copyright 2021 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const ARROW = '->';
        const ARROW_REGEX = /->/g;
        const COMMA = ',';
        const ELLIPSIS = '...';
        /**
         * Parse an equation for einsum.
         *
         * @param equation The einsum equation (e.g., "ij,jk->ik").
         * @param numTensors Number of tensors provided along with `equation`. Used to
         *   check matching number of input tensors.
         * @returns An object consisting of the following fields:
         *   - allDims: all dimension names as strings.
         *   - summedDims: a list of all dimensions being summed over, as indices to
         *     the elements of `allDims`.
         *   - idDims: indices of the dimensions in each input tensor, as indices to
         *     the elements of `allDims.
         */
        function decodeEinsumEquation(equation, numTensors) {
            equation = equation.replace(/\s/g, '');
            // Remove witespace in equation.
            const numArrows = (equation.length - equation.replace(ARROW_REGEX, '').length) / ARROW.length;
            if (numArrows < 1) {
                throw new Error('Equations without an arrow are not supported.');
            } else if (numArrows > 1) {
                throw new Error(`Equation must contain exactly one arrow ("${ARROW}").`);
            }
            const [inputString, outputString] = equation.split(ARROW);
            (0,
                _util_base.assert)(inputString.indexOf(ELLIPSIS) === -1, () => `The ellipsis notation ("${ELLIPSIS}") is not supported yet.`);
            const inputTerms = inputString.split(COMMA);
            const numInputs = inputTerms.length;
            if (numTensors !== numInputs) {
                throw new Error(`Expected ${numInputs} input tensors, received ${numTensors}`);
            }
            if (numInputs > 2) {
                throw new Error('Support for more than 2 input tensors is not implemented yet.');
            }
            const allDims = [];
            for (let i = 0; i < outputString.length; ++i) {
                const dimName = outputString[i];
                if (!inputTerms.some(inputTerm => inputTerm.indexOf(dimName) !== -1)) {
                    throw new Error(`Output subscripts contain the label ${dimName} ` + `not present in the input subscripts.`);
                }
                if (allDims.indexOf(dimName) === -1) {
                    allDims.push(dimName);
                }
            }
            for (let i = 0; i < inputString.length; ++i) {
                const dimName = inputString[i];
                if (allDims.indexOf(dimName) === -1 && dimName !== COMMA) {
                    allDims.push(dimName);
                }
            }
            const idDims = new Array(inputTerms.length);
            for (let i = 0; i < numInputs; ++i) {
                if (new Set(inputTerms[i].split('')).size !== inputTerms[i].length) {
                    throw new Error(`Found duplicate axes in input component ${inputTerms[i]}. ` + `Support for duplicate axes in input is not implemented yet.`);
                }
                idDims[i] = [];
                for (let j = 0; j < inputTerms[i].length; ++j) {
                    idDims[i].push(allDims.indexOf(inputTerms[i][j]));
                }
            }
            const numDims = allDims.length;
            // Number of unique dimensions.
            const numOutDims = outputString.length;
            // Number of output dimensions.
            const summedDims = [];
            // Dimensions being summed over.
            for (let i = numOutDims; i < numDims; ++i) {
                summedDims.push(i);
            }
            return {
                allDims,
                summedDims,
                idDims
            };
        }
        /**
         * Get the permutation for a given input tensor.
         *
         * @param nDims Total number of dimension of all tensors involved in the einsum
         *   operation.
         * @param idDims Dimension indices involve in the tensor in question.
         * @returns An object consisting of the following fields:
         *   - permutationIndices: Indices to permute the axes of the tensor with.
         *   - expandDims: Indices to the dimension that need to be expanded from the
         *     tensor after permutation.
         */
        function getEinsumPermutation(nDims, idDims) {
            let permutationIndices = new Array(nDims);
            permutationIndices.fill(-1);
            for (let i = 0; i < idDims.length; ++i) {
                permutationIndices[idDims[i]] = i;
            }
            const expandDims = [];
            for (let i = 0; i < nDims; ++i) {
                if (permutationIndices[i] === -1) {
                    expandDims.push(i);
                }
            }
            permutationIndices = permutationIndices.filter(d => d !== -1);
            return {
                permutationIndices,
                expandDims
            };
        }
        /**
         * Checks that the dimension sizes from different input tensors match the
         * equation.
         */
        function checkEinsumDimSizes(nDims, idDims, tensors) {
            const dimSizes = new Array(nDims);
            for (let i = 0; i < tensors.length; ++i) {
                const shape = tensors[i].shape;
                for (let j = 0; j < idDims[i].length; ++j) {
                    if (dimSizes[idDims[i][j]] === undefined) {
                        dimSizes[idDims[i][j]] = shape[j];
                    } else {
                        (0,
                            _util_base.assert)(dimSizes[idDims[i][j]] === shape[j], () => `Expected dimension ${dimSizes[idDims[i][j]]} at axis ${j} ` + `of input shaped ${JSON.stringify(shape)}, ` + `but got dimension ${shape[j]}`);
                    }
                }
            }
        }
        /**
         * Gets path of computation for einsum.
         *
         * @param summedDims indices to the dimensions being summed over.
         * @param idDims A look up table for the dimensions present in each input
         *     tensor. Each consituent array contains indices for the dimensions in the
         *     corresponding input tensor.
         *
         * @return A map with two fields:
         *   - path: The path of computation, with each element indicating the dimension
         *     being summed over after the element-wise multiplication in that step.
         *   - steps: With the same length as `path`. Each element contains the indices
         *     to the input tensors being used for element-wise multiplication in the
         *     corresponding step.
         */
        function getEinsumComputePath(summedDims, idDims) {
            const path = summedDims;
            const steps = [];
            let nSteps = 0;
            if (summedDims.length === 0) {
                // Einsum that involes no summing: e.g., transpose and outer product.
                path.push(-1);
            }
            nSteps = summedDims.length + 1;
            for (let i = 0; i < nSteps; ++i) {
                steps.push([]);
            }
            const computedTermIndices = [];
            for (let i = 0; i < path.length; ++i) {
                const summedDim = path[i];
                const termIndices = findTermsWithDim(idDims, summedDim);
                for (const termIndex of termIndices) {
                    if (computedTermIndices.indexOf(termIndex) === -1) {
                        steps[i].push(termIndex);
                        computedTermIndices.push(termIndex);
                    }
                }
            }
            return {
                path,
                steps
            };
        }
        /** Determines if an axes permutation is the identity permutation. */
        function isIdentityPermutation(perm) {
            return perm.every((dim, index) => dim === index);
        }
        function findTermsWithDim(idDims, dim) {
            const termIndices = [];
            for (let i = 0; i < idDims.length; ++i) {
                if (idDims[i].length === 0 || idDims[i].indexOf(dim) !== -1 || dim === -1) {
                    termIndices.push(i);
                }
            }
            return termIndices;
        }

    }
        , {
        "../util_base": 510
    }],
    70: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        Object.defineProperty(exports, "nonMaxSuppressionV3Impl", {
            enumerable: true,
            get: function () {
                return _non_max_suppression_impl.nonMaxSuppressionV3Impl;
            }
        });
        Object.defineProperty(exports, "nonMaxSuppressionV4Impl", {
            enumerable: true,
            get: function () {
                return _non_max_suppression_impl.nonMaxSuppressionV4Impl;
            }
        });
        Object.defineProperty(exports, "nonMaxSuppressionV5Impl", {
            enumerable: true,
            get: function () {
                return _non_max_suppression_impl.nonMaxSuppressionV5Impl;
            }
        });
        Object.defineProperty(exports, "whereImpl", {
            enumerable: true,
            get: function () {
                return _where_impl.whereImpl;
            }
        });
        var _non_max_suppression_impl = require("./non_max_suppression_impl");
        var _where_impl = require("./where_impl");

    }
        , {
        "./non_max_suppression_impl": 71,
        "./where_impl": 73
    }],
    71: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.nonMaxSuppressionV3Impl = nonMaxSuppressionV3Impl;
        exports.nonMaxSuppressionV4Impl = nonMaxSuppressionV4Impl;
        exports.nonMaxSuppressionV5Impl = nonMaxSuppressionV5Impl;
        var _non_max_suppression_util = require("./non_max_suppression_util");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        function nonMaxSuppressionV3Impl(boxes, scores, maxOutputSize, iouThreshold, scoreThreshold) {
            return nonMaxSuppressionImpl_(boxes, scores, maxOutputSize, iouThreshold, scoreThreshold, 0 /* softNmsSigma */
            );
        }

        function nonMaxSuppressionV4Impl(boxes, scores, maxOutputSize, iouThreshold, scoreThreshold, padToMaxOutputSize) {
            return nonMaxSuppressionImpl_(boxes, scores, maxOutputSize, iouThreshold, scoreThreshold, 0 /* softNmsSigma */
                , false /* returnScoresTensor */
                , padToMaxOutputSize /* padToMaxOutputSize */
                , true /* returnValidOutputs */
            );
        }

        function nonMaxSuppressionV5Impl(boxes, scores, maxOutputSize, iouThreshold, scoreThreshold, softNmsSigma) {
            return nonMaxSuppressionImpl_(boxes, scores, maxOutputSize, iouThreshold, scoreThreshold, softNmsSigma, true /* returnScoresTensor */
            );
        }

        function nonMaxSuppressionImpl_(boxes, scores, maxOutputSize, iouThreshold, scoreThreshold, softNmsSigma, returnScoresTensor = false, padToMaxOutputSize = false, returnValidOutputs = false) {
            // The list is sorted in ascending order, so that we can always pop the
            // candidate with the largest score in O(1) time.
            const candidates = [];
            for (let i = 0; i < scores.length; i++) {
                if (scores[i] > scoreThreshold) {
                    candidates.push({
                        score: scores[i],
                        boxIndex: i,
                        suppressBeginIndex: 0
                    });
                }
            }
            candidates.sort(ascendingComparator);
            // If softNmsSigma is 0, the outcome of this algorithm is exactly same as
            // before.
            const scale = softNmsSigma > 0 ? -0.5 / softNmsSigma : 0.0;
            const selectedIndices = [];
            const selectedScores = [];
            while (selectedIndices.length < maxOutputSize && candidates.length > 0) {
                const candidate = candidates.pop();
                const { score: originalScore, boxIndex, suppressBeginIndex } = candidate;
                if (originalScore < scoreThreshold) {
                    break;
                }
                // Overlapping boxes are likely to have similar scores, therefore we
                // iterate through the previously selected boxes backwards in order to
                // see if candidate's score should be suppressed. We use
                // suppressBeginIndex to track and ensure a candidate can be suppressed
                // by a selected box no more than once. Also, if the overlap exceeds
                // iouThreshold, we simply ignore the candidate.
                let ignoreCandidate = false;
                for (let j = selectedIndices.length - 1; j >= suppressBeginIndex; --j) {
                    const iou = intersectionOverUnion(boxes, boxIndex, selectedIndices[j]);
                    if (iou >= iouThreshold) {
                        ignoreCandidate = true;
                        break;
                    }
                    candidate.score = candidate.score * suppressWeight(iouThreshold, scale, iou);
                    if (candidate.score <= scoreThreshold) {
                        break;
                    }
                }
                // At this point, if `candidate.score` has not dropped below
                // `scoreThreshold`, then we know that we went through all of the
                // previous selections and can safely update `suppressBeginIndex` to the
                // end of the selected array. Then we can re-insert the candidate with
                // the updated score and suppressBeginIndex back in the candidate list.
                // If on the other hand, `candidate.score` has dropped below the score
                // threshold, we will not add it back to the candidates list.
                candidate.suppressBeginIndex = selectedIndices.length;
                if (!ignoreCandidate) {
                    // Candidate has passed all the tests, and is not suppressed, so
                    // select the candidate.
                    if (candidate.score === originalScore) {
                        selectedIndices.push(boxIndex);
                        selectedScores.push(candidate.score);
                    } else if (candidate.score > scoreThreshold) {
                        // Candidate's score is suppressed but is still high enough to be
                        // considered, so add back to the candidates list.
                        (0,
                            _non_max_suppression_util.binaryInsert)(candidates, candidate, ascendingComparator);
                    }
                }
            }
            // NonMaxSuppressionV4 feature: padding output to maxOutputSize.
            const validOutputs = selectedIndices.length;
            const elemsToPad = maxOutputSize - validOutputs;
            if (padToMaxOutputSize && elemsToPad > 0) {
                selectedIndices.push(...new Array(elemsToPad).fill(0));
                selectedScores.push(...new Array(elemsToPad).fill(0.0));
            }
            const result = {
                selectedIndices
            };
            if (returnScoresTensor) {
                result['selectedScores'] = selectedScores;
            }
            if (returnValidOutputs) {
                result['validOutputs'] = validOutputs;
            }
            return result;
        }
        function intersectionOverUnion(boxes, i, j) {
            const iCoord = boxes.subarray(i * 4, i * 4 + 4);
            const jCoord = boxes.subarray(j * 4, j * 4 + 4);
            const yminI = Math.min(iCoord[0], iCoord[2]);
            const xminI = Math.min(iCoord[1], iCoord[3]);
            const ymaxI = Math.max(iCoord[0], iCoord[2]);
            const xmaxI = Math.max(iCoord[1], iCoord[3]);
            const yminJ = Math.min(jCoord[0], jCoord[2]);
            const xminJ = Math.min(jCoord[1], jCoord[3]);
            const ymaxJ = Math.max(jCoord[0], jCoord[2]);
            const xmaxJ = Math.max(jCoord[1], jCoord[3]);
            const areaI = (ymaxI - yminI) * (xmaxI - xminI);
            const areaJ = (ymaxJ - yminJ) * (xmaxJ - xminJ);
            if (areaI <= 0 || areaJ <= 0) {
                return 0.0;
            }
            const intersectionYmin = Math.max(yminI, yminJ);
            const intersectionXmin = Math.max(xminI, xminJ);
            const intersectionYmax = Math.min(ymaxI, ymaxJ);
            const intersectionXmax = Math.min(xmaxI, xmaxJ);
            const intersectionArea = Math.max(intersectionYmax - intersectionYmin, 0.0) * Math.max(intersectionXmax - intersectionXmin, 0.0);
            return intersectionArea / (areaI + areaJ - intersectionArea);
        }
        // A Gaussian penalty function, this method always returns values in [0, 1].
        // The weight is a function of similarity, the more overlap two boxes are, the
        // smaller the weight is, meaning highly overlapping boxe will be significantly
        // penalized. On the other hand, a non-overlapping box will not be penalized.
        function suppressWeight(iouThreshold, scale, iou) {
            const weight = Math.exp(scale * iou * iou);
            return iou <= iouThreshold ? weight : 0.0;
        }
        function ascendingComparator(c1, c2) {
            // For objects with same scores, we make the object with the larger index go
            // first. In an array that pops from the end, this means that the object with
            // the smaller index will be popped first. This ensures the same output as
            // the TensorFlow python version.
            return c1.score - c2.score || c1.score === c2.score && c2.boxIndex - c1.boxIndex;
        }

    }
        , {
        "./non_max_suppression_util": 72
    }],
    72: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.binaryInsert = binaryInsert;
        exports.binarySearch = binarySearch;
        /**
         * @license
         * Copyright 2019 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        /**
         * Inserts a value into a sorted array. This method allows duplicate, meaning it
         * allows inserting duplicate value, in which case, the element will be inserted
         * at the lowest index of the value.
         * @param arr The array to modify.
         * @param element The element to insert.
         * @param comparator Optional. If no comparator is specified, elements are
         * compared using array_util.defaultComparator, which is suitable for Strings
         * and Numbers in ascending arrays. If the array contains multiple instances of
         * the target value, the left-most instance will be returned. To provide a
         * comparator, it should take 2 arguments to compare and return a negative,
         * zero, or a positive number.
         */
        function binaryInsert(arr, element, comparator) {
            const index = binarySearch(arr, element, comparator);
            const insertionPoint = index < 0 ? -(index + 1) : index;
            arr.splice(insertionPoint, 0, element);
        }
        /**
         * Searches the array for the target using binary search, returns the index
         * of the found element, or position to insert if element not found. If no
         * comparator is specified, elements are compared using array_
         * util.defaultComparator, which is suitable for Strings and Numbers in
         * ascending arrays. If the array contains multiple instances of the target
         * value, the left-most instance will be returned.
         * @param arr The array to be searched in.
         * @param target The target to be searched for.
         * @param comparator Should take 2 arguments to compare and return a negative,
         *    zero, or a positive number.
         * @return Lowest index of the target value if found, otherwise the insertion
         *    point where the target should be inserted, in the form of
         *    (-insertionPoint - 1).
         */
        function binarySearch(arr, target, comparator) {
            return binarySearch_(arr, target, comparator || defaultComparator);
        }
        /**
         * Compares its two arguments for order.
         * @param a The first element to be compared.
         * @param b The second element to be compared.
         * @return A negative number, zero, or a positive number as the first
         *     argument is less than, equal to, or greater than the second.
         */
        function defaultComparator(a, b) {
            return a > b ? 1 : a < b ? -1 : 0;
        }
        function binarySearch_(arr, target, comparator) {
            let left = 0;
            let right = arr.length;
            let middle = 0;
            let found = false;
            while (left < right) {
                middle = left + (right - left >>> 1);
                const compareResult = comparator(target, arr[middle]);
                if (compareResult > 0) {
                    left = middle + 1;
                } else {
                    right = middle;
                    // If compareResult is 0, the value is found. We record it is found,
                    // and then keep looking because there may be duplicate.
                    found = !compareResult;
                }
            }
            return found ? left : -left - 1;
        }

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

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.whereImpl = whereImpl;
        var _buffer = require("../ops/buffer");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        /** An implementation of the Where kernel shared between cpu and webgl */

        function whereImpl(condShape, condVals) {
            const indices = [];
            for (let i = 0; i < condVals.length; i++) {
                if (condVals[i]) {
                    indices.push(i);
                }
            }
            const inBuffer = (0,
                _buffer.buffer)(condShape, 'int32');
            const out = (0,
                _buffer.buffer)([indices.length, condShape.length], 'int32');
            for (let i = 0; i < indices.length; i++) {
                const loc = inBuffer.indexToLoc(indices[i]);
                const offset = i * condShape.length;
                out.values.set(loc, offset);
            }
            return out.toTensor();
        }

    }
        , {
        "../ops/buffer": 235
    }],
    74: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        var _exportNames = {
            io: true,
            math: true,
            broadcast_util: true,
            browser: true,
            gather_util: true,
            scatter_util: true,
            slice_util: true,
            serialization: true,
            tensor_util: true,
            test_util: true,
            util: true,
            version_core: true,
            AdadeltaOptimizer: true,
            AdagradOptimizer: true,
            AdamOptimizer: true,
            AdamaxOptimizer: true,
            MomentumOptimizer: true,
            Optimizer: true,
            OptimizerConstructors: true,
            RMSPropOptimizer: true,
            SGDOptimizer: true,
            Tensor: true,
            TensorBuffer: true,
            Variable: true,
            Rank: true,
            sumOutType: true,
            upcastType: true,
            Reduction: true,
            customGrad: true,
            grad: true,
            grads: true,
            valueAndGrad: true,
            valueAndGrads: true,
            variableGrads: true,
            Environment: true,
            env: true,
            ENV: true,
            nextFrame: true,
            backend_util: true,
            device_util: true,
            kernel_impls: true,
            KernelBackend: true,
            DataStorage: true
        };
        Object.defineProperty(exports, "AdadeltaOptimizer", {
            enumerable: true,
            get: function () {
                return _adadelta_optimizer.AdadeltaOptimizer;
            }
        });
        Object.defineProperty(exports, "AdagradOptimizer", {
            enumerable: true,
            get: function () {
                return _adagrad_optimizer.AdagradOptimizer;
            }
        });
        Object.defineProperty(exports, "AdamOptimizer", {
            enumerable: true,
            get: function () {
                return _adam_optimizer.AdamOptimizer;
            }
        });
        Object.defineProperty(exports, "AdamaxOptimizer", {
            enumerable: true,
            get: function () {
                return _adamax_optimizer.AdamaxOptimizer;
            }
        });
        Object.defineProperty(exports, "DataStorage", {
            enumerable: true,
            get: function () {
                return _backend.DataStorage;
            }
        });
        Object.defineProperty(exports, "ENV", {
            enumerable: true,
            get: function () {
                return _environment.ENV;
            }
        });
        Object.defineProperty(exports, "Environment", {
            enumerable: true,
            get: function () {
                return _environment.Environment;
            }
        });
        Object.defineProperty(exports, "KernelBackend", {
            enumerable: true,
            get: function () {
                return _backend.KernelBackend;
            }
        });
        Object.defineProperty(exports, "MomentumOptimizer", {
            enumerable: true,
            get: function () {
                return _momentum_optimizer.MomentumOptimizer;
            }
        });
        Object.defineProperty(exports, "Optimizer", {
            enumerable: true,
            get: function () {
                return _optimizer.Optimizer;
            }
        });
        Object.defineProperty(exports, "OptimizerConstructors", {
            enumerable: true,
            get: function () {
                return _optimizer_constructors.OptimizerConstructors;
            }
        });
        Object.defineProperty(exports, "RMSPropOptimizer", {
            enumerable: true,
            get: function () {
                return _rmsprop_optimizer.RMSPropOptimizer;
            }
        });
        Object.defineProperty(exports, "Rank", {
            enumerable: true,
            get: function () {
                return _types.Rank;
            }
        });
        Object.defineProperty(exports, "Reduction", {
            enumerable: true,
            get: function () {
                return _loss_ops_utils.Reduction;
            }
        });
        Object.defineProperty(exports, "SGDOptimizer", {
            enumerable: true,
            get: function () {
                return _sgd_optimizer.SGDOptimizer;
            }
        });
        Object.defineProperty(exports, "Tensor", {
            enumerable: true,
            get: function () {
                return _tensor.Tensor;
            }
        });
        Object.defineProperty(exports, "TensorBuffer", {
            enumerable: true,
            get: function () {
                return _tensor.TensorBuffer;
            }
        });
        Object.defineProperty(exports, "Variable", {
            enumerable: true,
            get: function () {
                return _tensor.Variable;
            }
        });
        exports.browser = exports.broadcast_util = exports.backend_util = void 0;
        Object.defineProperty(exports, "customGrad", {
            enumerable: true,
            get: function () {
                return _gradients.customGrad;
            }
        });
        exports.device_util = void 0;
        Object.defineProperty(exports, "env", {
            enumerable: true,
            get: function () {
                return _environment.env;
            }
        });
        exports.gather_util = void 0;
        Object.defineProperty(exports, "grad", {
            enumerable: true,
            get: function () {
                return _gradients.grad;
            }
        });
        Object.defineProperty(exports, "grads", {
            enumerable: true,
            get: function () {
                return _gradients.grads;
            }
        });
        exports.math = exports.kernel_impls = exports.io = void 0;
        Object.defineProperty(exports, "nextFrame", {
            enumerable: true,
            get: function () {
                return _browser_util.nextFrame;
            }
        });
        exports.slice_util = exports.serialization = exports.scatter_util = void 0;
        Object.defineProperty(exports, "sumOutType", {
            enumerable: true,
            get: function () {
                return _types.sumOutType;
            }
        });
        exports.test_util = exports.tensor_util = void 0;
        Object.defineProperty(exports, "upcastType", {
            enumerable: true,
            get: function () {
                return _types.upcastType;
            }
        });
        exports.util = void 0;
        Object.defineProperty(exports, "valueAndGrad", {
            enumerable: true,
            get: function () {
                return _gradients.valueAndGrad;
            }
        });
        Object.defineProperty(exports, "valueAndGrads", {
            enumerable: true,
            get: function () {
                return _gradients.valueAndGrads;
            }
        });
        Object.defineProperty(exports, "variableGrads", {
            enumerable: true,
            get: function () {
                return _gradients.variableGrads;
            }
        });
        Object.defineProperty(exports, "version_core", {
            enumerable: true,
            get: function () {
                return _version.version;
            }
        });
        var io = _interopRequireWildcard(require("./io/io"));
        exports.io = io;
        var math = _interopRequireWildcard(require("./math"));
        exports.math = math;
        var broadcast_util = _interopRequireWildcard(require("./ops/broadcast_util"));
        exports.broadcast_util = broadcast_util;
        var browser = _interopRequireWildcard(require("./ops/browser"));
        exports.browser = browser;
        var gather_util = _interopRequireWildcard(require("./ops/gather_nd_util"));
        exports.gather_util = gather_util;
        var scatter_util = _interopRequireWildcard(require("./ops/scatter_nd_util"));
        exports.scatter_util = scatter_util;
        var slice_util = _interopRequireWildcard(require("./ops/slice_util"));
        exports.slice_util = slice_util;
        var serialization = _interopRequireWildcard(require("./serialization"));
        exports.serialization = serialization;
        var tensor_util = _interopRequireWildcard(require("./tensor_util"));
        exports.tensor_util = tensor_util;
        var test_util = _interopRequireWildcard(require("./test_util"));
        exports.test_util = test_util;
        var util = _interopRequireWildcard(require("./util"));
        exports.util = util;
        var _version = require("./version");
        var _adadelta_optimizer = require("./optimizers/adadelta_optimizer");
        var _adagrad_optimizer = require("./optimizers/adagrad_optimizer");
        var _adam_optimizer = require("./optimizers/adam_optimizer");
        var _adamax_optimizer = require("./optimizers/adamax_optimizer");
        var _momentum_optimizer = require("./optimizers/momentum_optimizer");
        var _optimizer = require("./optimizers/optimizer");
        var _optimizer_constructors = require("./optimizers/optimizer_constructors");
        var _rmsprop_optimizer = require("./optimizers/rmsprop_optimizer");
        var _sgd_optimizer = require("./optimizers/sgd_optimizer");
        var _tensor = require("./tensor");
        var _types = require("./types");
        var _ops = require("./ops/ops");
        Object.keys(_ops).forEach(function (key) {
            if (key === "default" || key === "__esModule")
                return;
            if (Object.prototype.hasOwnProperty.call(_exportNames, key))
                return;
            if (key in exports && exports[key] === _ops[key])
                return;
            Object.defineProperty(exports, key, {
                enumerable: true,
                get: function () {
                    return _ops[key];
                }
            });
        });
        var _loss_ops_utils = require("./ops/loss_ops_utils");
        var _train = require("./train");
        Object.keys(_train).forEach(function (key) {
            if (key === "default" || key === "__esModule")
                return;
            if (Object.prototype.hasOwnProperty.call(_exportNames, key))
                return;
            if (key in exports && exports[key] === _train[key])
                return;
            Object.defineProperty(exports, key, {
                enumerable: true,
                get: function () {
                    return _train[key];
                }
            });
        });
        var _globals = require("./globals");
        Object.keys(_globals).forEach(function (key) {
            if (key === "default" || key === "__esModule")
                return;
            if (Object.prototype.hasOwnProperty.call(_exportNames, key))
                return;
            if (key in exports && exports[key] === _globals[key])
                return;
            Object.defineProperty(exports, key, {
                enumerable: true,
                get: function () {
                    return _globals[key];
                }
            });
        });
        var _kernel_registry = require("./kernel_registry");
        Object.keys(_kernel_registry).forEach(function (key) {
            if (key === "default" || key === "__esModule")
                return;
            if (Object.prototype.hasOwnProperty.call(_exportNames, key))
                return;
            if (key in exports && exports[key] === _kernel_registry[key])
                return;
            Object.defineProperty(exports, key, {
                enumerable: true,
                get: function () {
                    return _kernel_registry[key];
                }
            });
        });
        var _gradients = require("./gradients");
        var _environment = require("./environment");
        var _browser_util = require("./browser_util");
        var backend_util = _interopRequireWildcard(require("./backends/backend_util"));
        exports.backend_util = backend_util;
        var device_util = _interopRequireWildcard(require("./device_util"));
        exports.device_util = device_util;
        var kernel_impls = _interopRequireWildcard(require("./backends/kernel_impls"));
        exports.kernel_impls = kernel_impls;
        var _backend = require("./backends/backend");
        var _kernel_names = require("./kernel_names");
        Object.keys(_kernel_names).forEach(function (key) {
            if (key === "default" || key === "__esModule")
                return;
            if (Object.prototype.hasOwnProperty.call(_exportNames, key))
                return;
            if (key in exports && exports[key] === _kernel_names[key])
                return;
            Object.defineProperty(exports, key, {
                enumerable: true,
                get: function () {
                    return _kernel_names[key];
                }
            });
        });
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }

    }
        , {
        "./backends/backend": 66,
        "./backends/backend_util": 67,
        "./backends/kernel_impls": 70,
        "./browser_util": 75,
        "./device_util": 76,
        "./environment": 78,
        "./globals": 81,
        "./gradients": 82,
        "./io/io": 189,
        "./kernel_names": 198,
        "./kernel_registry": 199,
        "./math": 201,
        "./ops/broadcast_util": 233,
        "./ops/browser": 234,
        "./ops/gather_nd_util": 295,
        "./ops/loss_ops_utils": 335,
        "./ops/ops": 373,
        "./ops/scatter_nd_util": 413,
        "./ops/slice_util": 434,
        "./optimizers/adadelta_optimizer": 488,
        "./optimizers/adagrad_optimizer": 489,
        "./optimizers/adam_optimizer": 490,
        "./optimizers/adamax_optimizer": 491,
        "./optimizers/momentum_optimizer": 492,
        "./optimizers/optimizer": 493,
        "./optimizers/optimizer_constructors": 494,
        "./optimizers/rmsprop_optimizer": 495,
        "./optimizers/sgd_optimizer": 496,
        "./serialization": 499,
        "./tensor": 501,
        "./tensor_util": 503,
        "./test_util": 505,
        "./train": 507,
        "./types": 508,
        "./util": 509,
        "./version": 511
    }],
    75: [function (require, module, exports) {
        (function (setImmediate) {
            (function () {
                "use strict";

                Object.defineProperty(exports, "__esModule", {
                    value: true
                });
                exports.nextFrame = nextFrame;
                /**
                 * @license
                 * Copyright 2017 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                const delayCallback = (() => {
                    if (typeof requestAnimationFrame !== 'undefined') {
                        return requestAnimationFrame;
                    } else if (typeof setImmediate !== 'undefined') {
                        return setImmediate;
                    }
                    return f => f();
                    // no delays
                }
                )();
                /**
                 * Returns a promise that resolves when a requestAnimationFrame has completed.
                 *
                 * On Node.js this uses setImmediate instead of requestAnimationFrame.
                 *
                 * This is simply a sugar method so that users can do the following:
                 * `await tf.nextFrame();`
                 *
                 * @doc {heading: 'Performance', subheading: 'Timing'}
                 */
                function nextFrame() {
                    return new Promise(resolve => delayCallback(() => resolve()));
                }

            }
            ).call(this)
        }
        ).call(this, require("timers").setImmediate)
    }
        , {
        "timers": 650
    }],
    76: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.isBrowser = isBrowser;
        exports.isMobile = isMobile;
        exports.mockIsMobile = mockIsMobile;
        /**
         * @license
         * Copyright 2017 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        // tslint:disable-next-line:no-any
        function _isNavigatorDefined() {
            return typeof navigator !== 'undefined' && navigator != null;
        }
        let isMobileMockValue;
        function mockIsMobile(value) {
            isMobileMockValue = value;
        }
        function isMobile(nav) {
            if (isMobileMockValue !== undefined) {
                return isMobileMockValue;
            }
            if (nav || _isNavigatorDefined()) {
                if (!nav) {
                    nav = navigator;
                }
                if (nav.product === 'ReactNative') {
                    return true;
                }
                const a = nav.userAgent || nav.vendor || (// tslint:disable-next-line:no-any
                    typeof window !== 'undefined' ? window.opera : '');
                // Use `navigator.userAgentData.mobile` as fallback.
                if (!a) {
                    // tslint:disable-next-line:no-any
                    const navAny = nav;
                    return navAny.userAgentData && navAny.userAgentData.mobile;
                }
                // tslint:disable-next-line:max-line-length
                return /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a) || // tslint:disable-next-line:max-line-length
                    /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0, 4));
            }
            return false;
        }
        function isBrowser() {
            return typeof window !== 'undefined' && window.document != null || //@ts-ignore
                typeof WorkerGlobalScope !== 'undefined';
        }

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

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.Engine = exports.ENGINE = void 0;
        exports.add = add;
        exports.getOrMakeEngine = getOrMakeEngine;
        var _backend = require("./backends/backend");
        var _environment = require("./environment");
        var _global_util = require("./global_util");
        var _kernel_names = require("./kernel_names");
        var _kernel_registry = require("./kernel_registry");
        var log = _interopRequireWildcard(require("./log"));
        var _profiler = require("./profiler");
        var _tape = require("./tape");
        var _tensor = require("./tensor");
        var _tensor_util = require("./tensor_util");
        var util = _interopRequireWildcard(require("./util"));
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        function isRegisteredKernelInvocation(kernelInvocation) {
            return kernelInvocation.kernelName != null;
        }
        class EngineState {
            constructor() {
                // Public since optimizers will use it.
                this.registeredVariables = {};
                this.nextTapeNodeId = 0;
                this.numBytes = 0;
                this.numTensors = 0;
                this.numStringTensors = 0;
                this.numDataBuffers = 0;
                // Number of nested tf.grad() statements when computing higher-order
                // gradients. E.g. `1` for first-order gradients and `2` for second-order
                // gradients. Used to track if the tape should be removed after a backprop.
                this.gradientDepth = 0;
                // Number of nested kernel calls. When kernel depth is greater than 1, we turn
                // off the tape.
                this.kernelDepth = 0;
                this.scopeStack = [];
                /**
                 * Keeps track of the number of data moves during a kernel execution. We
                 * maintain a stack since kernels can call other kernels, recursively.
                 */
                this.numDataMovesStack = [];
                this.nextScopeId = 0;
                this.tensorInfo = new WeakMap();
                this.profiling = false;
                this.activeProfile = {
                    newBytes: 0,
                    newTensors: 0,
                    peakBytes: 0,
                    kernels: [],
                    result: null,
                    get kernelNames() {
                        return Array.from(new Set(this.kernels.map(k => k.name)));
                    }
                };
            }
            dispose() {
                for (const variableName in this.registeredVariables) {
                    this.registeredVariables[variableName].dispose();
                }
            }
        }
        class Engine {
            constructor(ENV) {
                this.ENV = ENV;
                this.registry = {};
                this.registryFactory = {};
                this.pendingBackendInitId = 0;
                this.state = new EngineState();
            }
            async ready() {
                if (this.pendingBackendInit != null) {
                    return this.pendingBackendInit.then(() => { }
                    );
                }
                if (this.backendInstance != null) {
                    return;
                }
                const sortedBackends = this.getSortedBackends();
                for (let i = 0; i < sortedBackends.length; i++) {
                    const backendName = sortedBackends[i];
                    const success = await this.initializeBackend(backendName).success;
                    if (success) {
                        await this.setBackend(backendName);
                        return;
                    }
                }
                throw new Error(`Could not initialize any backends, all backend initializations ` + `failed.`);
            }
            get backend() {
                if (this.pendingBackendInit != null) {
                    throw new Error(`Backend '${this.backendName}' has not yet been initialized. Make ` + `sure to await tf.ready() or await tf.setBackend() before calling ` + `other methods`);
                }
                if (this.backendInstance == null) {
                    const { name, asyncInit } = this.initializeBackendsAndReturnBest();
                    if (asyncInit) {
                        throw new Error(`The highest priority backend '${name}' has not yet been ` + `initialized. Make sure to await tf.ready() or ` + `await tf.setBackend() before calling other methods`);
                    }
                    this.setBackend(name);
                }
                return this.backendInstance;
            }
            backendNames() {
                return Object.keys(this.registryFactory);
            }
            findBackend(backendName) {
                if (!(backendName in this.registry)) {
                    // If the backend hasn't been initialized but we have a registry entry for
                    // it, initialize it and return it.
                    if (backendName in this.registryFactory) {
                        const { asyncInit } = this.initializeBackend(backendName);
                        if (asyncInit) {
                            // Backend is not ready yet.
                            return null;
                        }
                    } else {
                        return null;
                    }
                }
                return this.registry[backendName];
            }
            findBackendFactory(backendName) {
                if (!(backendName in this.registryFactory)) {
                    return null;
                }
                return this.registryFactory[backendName].factory;
            }
            registerBackend(backendName, factory, priority = 1) {
                if (backendName in this.registryFactory) {
                    log.warn(`${backendName} backend was already registered. ` + `Reusing existing backend factory.`);
                    return false;
                }
                this.registryFactory[backendName] = {
                    factory,
                    priority
                };
                return true;
            }
            async setBackend(backendName) {
                if (this.registryFactory[backendName] == null) {
                    throw new Error(`Backend name '${backendName}' not found in registry`);
                }
                this.backendName = backendName;
                if (this.registry[backendName] == null) {
                    this.backendInstance = null;
                    const { success, asyncInit } = this.initializeBackend(backendName);
                    const result = asyncInit ? await success : success;
                    if (!result) {
                        return false;
                    }
                }
                this.backendInstance = this.registry[backendName];
                this.setupRegisteredKernels();
                // Reset the profiler.
                this.profiler = new _profiler.Profiler(this.backendInstance);
                return true;
            }
            setupRegisteredKernels() {
                const kernels = (0,
                    _kernel_registry.getKernelsForBackend)(this.backendName);
                kernels.forEach(kernel => {
                    if (kernel.setupFunc != null) {
                        kernel.setupFunc(this.backendInstance);
                    }
                }
                );
            }
            disposeRegisteredKernels(backendName) {
                const kernels = (0,
                    _kernel_registry.getKernelsForBackend)(backendName);
                kernels.forEach(kernel => {
                    if (kernel.disposeFunc != null) {
                        kernel.disposeFunc(this.registry[backendName]);
                    }
                }
                );
            }
            /**
             * Initializes a backend by looking up the backend name in the factory
             * registry and calling the factory method. Returns a boolean representing
             * whether the initialization of the backend suceeded. Throws an error if
             * there is no backend in the factory registry.
             */
            initializeBackend(backendName) {
                const registryFactoryEntry = this.registryFactory[backendName];
                if (registryFactoryEntry == null) {
                    throw new Error(`Cannot initialize backend ${backendName}, no registration found.`);
                }
                try {
                    const backend = registryFactoryEntry.factory();
                    /* Test if the factory returns a promise.
                    Done in a more liberal way than
                    previous 'Promise.resolve(backend)===backend'
                    as we needed to account for custom Promise
                    implementations (e.g. Angular) */
                    if (backend && !(backend instanceof _backend.KernelBackend) && typeof backend.then === 'function') {
                        const promiseId = ++this.pendingBackendInitId;
                        const success = backend.then(backendInstance => {
                            // Outdated promise. Another backend was set in the meantime.
                            if (promiseId < this.pendingBackendInitId) {
                                return false;
                            }
                            this.registry[backendName] = backendInstance;
                            this.pendingBackendInit = null;
                            return true;
                        }
                        ).catch(err => {
                            // Outdated promise. Another backend was set in the meantime.
                            if (promiseId < this.pendingBackendInitId) {
                                return false;
                            }
                            this.pendingBackendInit = null;
                            log.warn(`Initialization of backend ${backendName} failed`);
                            log.warn(err.stack || err.message);
                            return false;
                        }
                        );
                        this.pendingBackendInit = success;
                        return {
                            success,
                            asyncInit: true
                        };
                    } else {
                        this.registry[backendName] = backend;
                        return {
                            success: true,
                            asyncInit: false
                        };
                    }
                } catch (err) {
                    log.warn(`Initialization of backend ${backendName} failed`);
                    log.warn(err.stack || err.message);
                    return {
                        success: false,
                        asyncInit: false
                    };
                }
            }
            removeBackend(backendName) {
                if (!(backendName in this.registryFactory)) {
                    throw new Error(`${backendName} backend not found in registry`);
                }
                if (this.backendName === backendName && this.pendingBackendInit != null) {
                    // There is a pending promise of the backend we want to remove. Make it
                    // obsolete.
                    this.pendingBackendInitId++;
                }
                if (backendName in this.registry) {
                    this.disposeRegisteredKernels(backendName);
                    this.registry[backendName].dispose();
                    delete this.registry[backendName];
                }
                delete this.registryFactory[backendName];
                // Unset the backend if it is active.
                if (this.backendName === backendName) {
                    this.pendingBackendInit = null;
                    this.backendName = null;
                    this.backendInstance = null;
                }
            }
            getSortedBackends() {
                if (Object.keys(this.registryFactory).length === 0) {
                    throw new Error('No backend found in registry.');
                }
                return Object.keys(this.registryFactory).sort((a, b) => {
                    // Highest priority comes first.
                    return this.registryFactory[b].priority - this.registryFactory[a].priority;
                }
                );
            }
            initializeBackendsAndReturnBest() {
                const sortedBackends = this.getSortedBackends();
                for (let i = 0; i < sortedBackends.length; i++) {
                    const backendName = sortedBackends[i];
                    const { success, asyncInit } = this.initializeBackend(backendName);
                    if (asyncInit || success) {
                        return {
                            name: backendName,
                            asyncInit
                        };
                    }
                }
                throw new Error(`Could not initialize any backends, all backend initializations ` + `failed.`);
            }
            moveData(backend, dataId) {
                const info = this.state.tensorInfo.get(dataId);
                const srcBackend = info.backend;
                const values = this.readSync(dataId);
                const refCount = srcBackend.refCount(dataId);
                // Delete the tensor from the old backend and move it to the new
                // backend.
                srcBackend.disposeData(dataId, true);
                info.backend = backend;
                backend.move(dataId, values, info.shape, info.dtype, refCount);
                if (this.shouldCheckForMemLeaks()) {
                    // Track the number of moves during a kernel execution to correctly
                    // detect memory leaks.
                    this.state.numDataMovesStack[this.state.numDataMovesStack.length - 1]++;
                }
            }
            tidy(nameOrFn, fn) {
                let name = null;
                if (fn == null) {
                    // Called with only 1 argument.
                    if (typeof nameOrFn !== 'function') {
                        throw new Error('Please provide a function to tidy()');
                    }
                    fn = nameOrFn;
                } else {
                    // Called with 2 arguments.
                    if (typeof nameOrFn !== 'string' && !(nameOrFn instanceof String)) {
                        throw new Error('When calling with two arguments, the first argument ' + 'to tidy() must be a string');
                    }
                    if (typeof fn !== 'function') {
                        throw new Error('When calling with two arguments, the 2nd argument ' + 'to tidy() must be a function');
                    }
                    name = nameOrFn;
                    // TODO(nsthorat,smilkov): Do operation logging and performance
                    // profiling.
                }

                let result;
                return this.scopedRun(() => this.startScope(name), () => this.endScope(result), () => {
                    result = fn();
                    if (result instanceof Promise) {
                        console.error('Cannot return a Promise inside of tidy.');
                    }
                    return result;
                }
                );
            }
            scopedRun(start, end, f) {
                start();
                try {
                    const res = f();
                    end();
                    return res;
                } catch (ex) {
                    end();
                    throw ex;
                }
            }
            nextTensorId() {
                return Engine.nextTensorId++;
            }
            nextVariableId() {
                return Engine.nextVariableId++;
            }
            /**
             * This method is called instead of the public-facing tensor.clone() when
             * saving a tensor for backwards pass. It makes sure to add the clone
             * operation to the tape regardless of being called inside a kernel
             * execution.
             */
            clone(x) {
                const y = ENGINE.runKernel(_kernel_names.Identity, {
                    x
                });
                const inputs = {
                    x
                };
                const grad = dy => ({
                    x: () => {
                        const dtype = 'float32';
                        const gradInputs = {
                            x: dy
                        };
                        const attrs = {
                            dtype
                        };
                        return ENGINE.runKernel(_kernel_names.Cast, gradInputs, // tslint:disable-next-line: no-unnecessary-type-assertion
                            attrs);
                    }
                });
                const saved = [];
                this.addTapeNode(this.state.activeScope.name, inputs, [y], grad, saved, {});
                return y;
            }
            /**
             * Execute a kernel with the given name and return the output tensor.
             *
             * @param kernelName The name of the kernel to execute.
             * @param inputs A map of input names to tensors.
             * @param attrs A map of attribute names to their values. An attribute is a
             *     primitive (non-tensor) input to the kernel.
             * @param inputsToSave A list of tensors, inputs to save for the backprop
             *     computation.
             * @param outputsToSave A list of booleans, specifying which output to save
             *     for the backprop computation. These are booleans since the output
             * tensors are not visible to the user.
             */
            runKernel(kernelName, inputs, attrs) {
                if (this.backendName == null) {
                    // backend has not been initialized yet (backend initialization is lazy
                    // can be deferred until an op/ kernel is run).
                    // The below getter has side effects that will try to initialize the
                    // backend and set properties like this.backendName
                    // tslint:disable-next-line: no-unused-expression
                    this.backend;
                }
                const hasKernel = (0,
                    _kernel_registry.getKernel)(kernelName, this.backendName) != null;
                if (!hasKernel) {
                    throw new Error(`Kernel '${kernelName}' not registered for backend '${this.backendName}'`);
                }
                return this.runKernelFunc({
                    kernelName,
                    inputs,
                    attrs
                });
            }
            shouldCheckForMemLeaks() {
                return this.ENV.getBool('IS_TEST');
            }
            checkKernelForMemLeak(kernelName, numDataIdsBefore, outInfos) {
                const numDataIdsAfter = this.backend.numDataIds();
                // Count the number of data ids associated with the result of the kernel.
                let numOutputDataIds = 0;
                outInfos.forEach(info => {
                    // Complex numbers allocate 3 data ids, one for 'real', one for
                    // 'imaginary', and one for the container that holds the former two.
                    numOutputDataIds += info.dtype === 'complex64' ? 3 : 1;
                }
                );
                // Account for the number of moves during kernel execution. A "data move"
                // can happen in the middle of a kernel execution, placing a new (key,value)
                // pair in the data storage. Since data moves have net zero effect (we
                // always remove the data from the old backend), we have to cancel them out
                // when detecting memory leaks.
                const numMoves = this.state.numDataMovesStack[this.state.numDataMovesStack.length - 1];
                const dataIdsLeaked = numDataIdsAfter - numDataIdsBefore - numOutputDataIds - numMoves;
                if (dataIdsLeaked > 0) {
                    throw new Error(`Backend '${this.backendName}' has an internal memory leak ` + `(${dataIdsLeaked} data ids) after running '${kernelName}'`);
                }
            }
            /**
             * Internal helper method to execute a kernel Func
             *
             * Use `runKernel` to execute kernels from outside of engine.
             */
            runKernelFunc(kernelParams) {
                let outputs;
                let saved = [];
                const isTapeOn = this.isTapeOn();
                const startingBytecount = this.state.numBytes;
                const startingNumTensors = this.state.numTensors;
                if (this.shouldCheckForMemLeaks()) {
                    this.state.numDataMovesStack.push(0);
                }
                let kernelFunc;
                if (this.backendName == null) {
                    // backend has not been initialized yet (backend initialization is lazy
                    // can be deferred until an op/ kernel is run).
                    // The below getter has side effects that will try to initialize the
                    // backend and set properties like this.backendName
                    // tslint:disable-next-line: no-unused-expression
                    this.backend;
                }
                let out;
                const kernelOrScopeName = isRegisteredKernelInvocation(kernelParams) ? kernelParams.kernelName : this.state.activeScope != null ? this.state.activeScope.name : '';
                // Create the kernelFunc from either a registered kernel OR passed in
                // forward/backward functions (used by custom grad). In this context a
                // kernelFunc wraps a kernel implementation with some bookkeeping.
                if (isRegisteredKernelInvocation(kernelParams)) {
                    const { kernelName, inputs, attrs } = kernelParams;
                    if (this.backendName == null) {
                        // backend has not been initialized yet (backend initialization is lazy
                        // can be deferred until an op/ kernel is run).
                        // The below getter has side effects that will try to initialize the
                        // backend and set properties like this.backendName
                        // tslint:disable-next-line: no-unused-expression
                        this.backend;
                    }
                    const kernel = (0,
                        _kernel_registry.getKernel)(kernelName, this.backendName);
                    util.assert(kernel != null, () => `Cannot find registered kernel '${kernelName}' for backend '${this.backendName}'`);
                    kernelFunc = () => {
                        const numDataIdsBefore = this.backend.numDataIds();
                        out = kernel.kernelFunc({
                            inputs,
                            attrs,
                            backend: this.backend
                        });
                        const outInfos = Array.isArray(out) ? out : [out];
                        if (this.shouldCheckForMemLeaks()) {
                            this.checkKernelForMemLeak(kernelName, numDataIdsBefore, outInfos);
                        }
                        const outTensors = outInfos.map(outInfo => {
                            // todo (yassogba) remove this option (Tensor) when node backend
                            // methods have been modularized and they all return tensorInfo.
                            // TensorInfos do not have a rank attribute.
                            if (outInfo.rank != null) {
                                return outInfo;
                            }
                            return this.makeTensorFromTensorInfo(outInfo);
                        }
                        );
                        // Save any required inputs and outputs.
                        // Do not save unless we are recording to the tape. Otherwise it would
                        // cause a mem leak since there would be no backprop for these tensors
                        // (which would otherwise dispose them).
                        if (isTapeOn) {
                            const tensorsToSave = this.getTensorsForGradient(kernelName, inputs, outTensors);
                            saved = this.saveTensorsForBackwardMode(tensorsToSave);
                        }
                        return outTensors;
                    }
                        ;
                } else {
                    const { forwardFunc } = kernelParams;
                    // Running a customGrad op.
                    const saveFunc = tensors => {
                        // Do not save unless we are recording to the tape. Otherwise it would
                        // cause a mem leak since we would never run backprop, which disposes
                        // the kept tensors.
                        if (!isTapeOn) {
                            return;
                        }
                        saved = tensors.map(tensor => this.keep(this.clone(tensor)));
                    }
                        ;
                    kernelFunc = () => {
                        const numDataIdsBefore = this.backend.numDataIds();
                        out = this.tidy(() => forwardFunc(this.backend, saveFunc));
                        const outs = Array.isArray(out) ? out : [out];
                        if (this.shouldCheckForMemLeaks()) {
                            // Scope name is used to print a more helpful error message if needed.
                            this.checkKernelForMemLeak(kernelOrScopeName, numDataIdsBefore, outs);
                        }
                        return outs;
                    }
                        ;
                }
                //
                // Run the kernelFunc. Optionally profiling it.
                //
                const { inputs, attrs } = kernelParams;
                const backwardsFunc = isRegisteredKernelInvocation(kernelParams) ? null : kernelParams.backwardsFunc;
                let kernelProfile;
                this.scopedRun(// Stop recording to a tape when running a kernel.
                    () => this.state.kernelDepth++, () => this.state.kernelDepth--, () => {
                        if (!this.ENV.getBool('DEBUG') && !this.state.profiling) {
                            outputs = kernelFunc();
                        } else {
                            kernelProfile = this.profiler.profileKernel(kernelOrScopeName, inputs, () => kernelFunc());
                            if (this.ENV.getBool('DEBUG')) {
                                this.profiler.logKernelProfile(kernelProfile);
                            }
                            outputs = kernelProfile.outputs;
                        }
                    }
                );
                if (isTapeOn) {
                    this.addTapeNode(kernelOrScopeName, inputs, outputs, backwardsFunc, saved, attrs);
                }
                if (this.state.profiling) {
                    this.state.activeProfile.kernels.push({
                        name: kernelOrScopeName,
                        bytesAdded: this.state.numBytes - startingBytecount,
                        totalBytesSnapshot: this.state.numBytes,
                        tensorsAdded: this.state.numTensors - startingNumTensors,
                        totalTensorsSnapshot: this.state.numTensors,
                        inputShapes: Object.keys(inputs).map(key => inputs[key] != null ? inputs[key].shape : null),
                        outputShapes: outputs.map(item => item.shape),
                        kernelTimeMs: kernelProfile.timeMs,
                        extraInfo: kernelProfile.extraInfo
                    });
                }
                return Array.isArray(out) ? outputs : outputs[0];
            }
            /**
             * Saves tensors used in forward mode for use in backward mode.
             *
             * @param tensors the list of tensors to save.
             */
            saveTensorsForBackwardMode(tensors) {
                const saved = tensors.map(tensor => this.keep(this.clone(tensor)));
                return saved;
            }
            /**
             * Returns a list of tensors to save for a given gradient calculation.
             *
             * @param kernelName name of kernel to look up gradient for.
             * @param inputs a map of input tensors.
             * @param outputs an array of output tensors from forward mode of kernel.
             */
            getTensorsForGradient(kernelName, inputs, outputs) {
                const gradConfig = (0,
                    _kernel_registry.getGradient)(kernelName);
                if (gradConfig != null) {
                    const inputsToSave = gradConfig.inputsToSave || [];
                    const outputsToSave = gradConfig.outputsToSave || [];
                    // If saveAllInputs is true, all inputs will be saved. Otherwise, inputs
                    // specified in inputsToSave will be saved.
                    let inputTensorsToSave;
                    if (gradConfig.saveAllInputs) {
                        util.assert(Array.isArray(inputs), () => 'saveAllInputs is true, expected inputs to be an array.');
                        inputTensorsToSave = Object.keys(inputs).map(key => inputs[key]);
                    } else {
                        inputTensorsToSave = inputsToSave.map(inputName => inputs[inputName]);
                    }
                    const outputTensorsToSave = outputs.filter((_, i) => outputsToSave[i]);
                    return inputTensorsToSave.concat(outputTensorsToSave);
                }
                // We return an empty list rather than throw an error because the kernel we
                // are looking up may not actually be relevant to backproping through the
                // overall function
                //
                // See 'does not error if irrelevant (pruned) ops are missing grads' test
                // in gradients_test.ts for an example.
                return [];
            }
            /**
             * Internal method used by public APIs for tensor creation. Makes a new
             * tensor with the provided shape, dtype and values. It always
             * creates a new data id and writes the values to the underlying backend.
             */
            makeTensor(values, shape, dtype, backend) {
                if (values == null) {
                    throw new Error('Values passed to engine.makeTensor() are null');
                }
                dtype = dtype || 'float32';
                backend = backend || this.backend;
                let backendVals = values;
                if (dtype === 'string' && util.isString(values[0])) {
                    backendVals = values.map(d => util.encodeString(d));
                }
                const dataId = backend.write(backendVals, shape, dtype);
                const t = new _tensor.Tensor(shape, dtype, dataId, this.nextTensorId());
                this.trackTensor(t, backend);
                // Count bytes for string tensors.
                if (dtype === 'string') {
                    const info = this.state.tensorInfo.get(dataId);
                    const newBytes = (0,
                        util.bytesFromStringArray)(backendVals);
                    this.state.numBytes += newBytes - info.bytes;
                    info.bytes = newBytes;
                }
                return t;
            }
            /**
             * Internal method used by backends. Makes a new tensor
             * that is a wrapper around an existing data id. It doesn't create
             * a new data id, only increments the ref count used in memory tracking.
             * @deprecated
             */
            makeTensorFromDataId(dataId, shape, dtype, backend) {
                dtype = dtype || 'float32';
                const tensorInfo = {
                    dataId,
                    shape,
                    dtype
                };
                return this.makeTensorFromTensorInfo(tensorInfo, backend);
            }
            /**
             * Internal method used by backends. Makes a new tensor that is a wrapper
             * around an existing data id in TensorInfo. It doesn't create a new data id,
             * only increments the ref count used in memory tracking.
             */
            makeTensorFromTensorInfo(tensorInfo, backend) {
                const { dataId, shape, dtype } = tensorInfo;
                const t = new _tensor.Tensor(shape, dtype, dataId, this.nextTensorId());
                this.trackTensor(t, backend);
                return t;
            }
            makeVariable(initialValue, trainable = true, name, dtype) {
                name = name || this.nextVariableId().toString();
                if (dtype != null && dtype !== initialValue.dtype) {
                    initialValue = initialValue.cast(dtype);
                }
                const v = new _tensor.Variable(initialValue, trainable, name, this.nextTensorId());
                if (this.state.registeredVariables[v.name] != null) {
                    throw new Error(`Variable with name ${v.name} was already registered`);
                }
                this.state.registeredVariables[v.name] = v;
                this.incRef(v, this.backend);
                return v;
            }
            trackTensor(a, backend) {
                this.state.numTensors++;
                if (a.dtype === 'string') {
                    this.state.numStringTensors++;
                }
                // Bytes for complex numbers are counted by their components. Bytes for
                // string tensors are counted when writing values.
                let bytes = 0;
                if (a.dtype !== 'complex64' && a.dtype !== 'string') {
                    bytes = a.size * util.bytesPerElement(a.dtype);
                }
                this.state.numBytes += bytes;
                if (!this.state.tensorInfo.has(a.dataId)) {
                    this.state.numDataBuffers++;
                    this.state.tensorInfo.set(a.dataId, {
                        backend: backend || this.backend,
                        dtype: a.dtype,
                        shape: a.shape,
                        bytes
                    });
                }
                if (!(a instanceof _tensor.Variable)) {
                    this.track(a);
                }
            }
            // Track the tensor by dataId and increase the refCount for the dataId in the
            // backend.
            // TODO(pyu10055): This is currently used by makeVariable method, to increase
            // refCount on the backend for the dataId. It can potentially be replaced with
            // Identity op indead of calling backend directly.
            incRef(a, backend) {
                this.trackTensor(a, backend);
                this.backend.incRef(a.dataId);
            }
            removeDataId(dataId, backend) {
                if (this.state.tensorInfo.has(dataId) && this.state.tensorInfo.get(dataId).backend === backend) {
                    this.state.tensorInfo.delete(dataId);
                    this.state.numDataBuffers--;
                }
            }
            disposeTensor(a) {
                if (!this.state.tensorInfo.has(a.dataId)) {
                    return;
                }
                const info = this.state.tensorInfo.get(a.dataId);
                this.state.numTensors--;
                if (a.dtype === 'string') {
                    this.state.numStringTensors--;
                    this.state.numBytes -= info.bytes;
                }
                // Don't count bytes for complex numbers as they are counted by their
                // components.
                if (a.dtype !== 'complex64' && a.dtype !== 'string') {
                    const bytes = a.size * util.bytesPerElement(a.dtype);
                    this.state.numBytes -= bytes;
                }
                // Remove the reference to dataId if backend dispose the data successfully
                if (info.backend.disposeData(a.dataId)) {
                    this.removeDataId(a.dataId, info.backend);
                }
                // TODO(nsthorat): Construct an error and save the stack trace for
                // debugging when in debug mode. Creating a stack trace is too expensive
                // to do unconditionally.
            }

            disposeVariables() {
                for (const varName in this.state.registeredVariables) {
                    const v = this.state.registeredVariables[varName];
                    this.disposeVariable(v);
                }
            }
            disposeVariable(v) {
                this.disposeTensor(v);
                if (this.state.registeredVariables[v.name] != null) {
                    delete this.state.registeredVariables[v.name];
                }
            }
            memory() {
                const info = this.backend.memory();
                info.numTensors = this.state.numTensors;
                info.numDataBuffers = this.state.numDataBuffers;
                info.numBytes = this.state.numBytes;
                if (this.state.numStringTensors > 0) {
                    info.unreliable = true;
                    if (info.reasons == null) {
                        info.reasons = [];
                    }
                    info.reasons.push('Memory usage by string tensors is approximate ' + '(2 bytes per character)');
                }
                return info;
            }
            async profile(query) {
                this.state.profiling = true;
                const startBytes = this.state.numBytes;
                const startNumTensors = this.state.numTensors;
                this.state.activeProfile.kernels = [];
                this.state.activeProfile.result = await query();
                this.state.profiling = false;
                this.state.activeProfile.peakBytes = Math.max(...this.state.activeProfile.kernels.map(d => d.totalBytesSnapshot));
                this.state.activeProfile.newBytes = this.state.numBytes - startBytes;
                this.state.activeProfile.newTensors = this.state.numTensors - startNumTensors;
                for (const kernel of this.state.activeProfile.kernels) {
                    kernel.kernelTimeMs = await kernel.kernelTimeMs;
                    kernel.extraInfo = await kernel.extraInfo;
                }
                return this.state.activeProfile;
            }
            isTapeOn() {
                return this.state.gradientDepth > 0 && this.state.kernelDepth === 0;
            }
            addTapeNode(kernelName, inputs, outputs, gradientsFunc, saved, attrs) {
                const tapeNode = {
                    id: this.state.nextTapeNodeId++,
                    kernelName,
                    inputs,
                    outputs,
                    saved
                };
                const gradConfig = (0,
                    _kernel_registry.getGradient)(kernelName);
                if (gradConfig != null) {
                    gradientsFunc = gradConfig.gradFunc;
                }
                if (gradientsFunc != null) {
                    tapeNode.gradient = dys => {
                        // TODO(smilkov): To optimize back-prop, pass dys that are not used in
                        // the backprop graph to the user as null instead of zeros
                        dys = dys.map((dy, i) => {
                            if (dy == null) {
                                const output = outputs[i];
                                const vals = util.makeZerosTypedArray(output.size, output.dtype);
                                return this.makeTensor(vals, output.shape, output.dtype);
                            }
                            return dy;
                        }
                        );
                        // Grad functions of ops with single outputs expect a dy, while ops
                        // with multiple outputs expect dys (array of dy).
                        return gradientsFunc(dys.length > 1 ? dys : dys[0], saved, attrs);
                    }
                        ;
                }
                this.state.activeTape.push(tapeNode);
            }
            keep(result) {
                result.kept = true;
                return result;
            }
            startTape() {
                if (this.state.gradientDepth === 0) {
                    this.state.activeTape = [];
                }
                this.state.gradientDepth++;
            }
            endTape() {
                this.state.gradientDepth--;
            }
            /**
             * Start a scope. Use this with endScope() to achieve the same functionality
             * as scope() without the need for a function closure.
             */
            startScope(name) {
                const scopeInfo = {
                    track: [],
                    name: 'unnamed scope',
                    id: this.state.nextScopeId++
                };
                if (name) {
                    scopeInfo.name = name;
                }
                this.state.scopeStack.push(scopeInfo);
                this.state.activeScope = scopeInfo;
            }
            /**
             * End a scope. Use this with startScope() to achieve the same functionality
             * as scope() without the need for a function closure.
             */
            endScope(result) {
                const tensorsToTrackInParent = (0,
                    _tensor_util.getTensorsInContainer)(result);
                const tensorsToTrackInParentSet = new Set(tensorsToTrackInParent.map(t => t.id));
                // Dispose the arrays tracked in this scope.
                for (let i = 0; i < this.state.activeScope.track.length; i++) {
                    const tensor = this.state.activeScope.track[i];
                    if (!tensor.kept && !tensorsToTrackInParentSet.has(tensor.id)) {
                        tensor.dispose();
                    }
                }
                const oldScope = this.state.scopeStack.pop();
                this.state.activeScope = this.state.scopeStack.length === 0 ? null : this.state.scopeStack[this.state.scopeStack.length - 1];
                // Track the current result in the parent scope.
                tensorsToTrackInParent.forEach(tensor => {
                    // Only track the tensor if was allocated in the inner scope and is not
                    // globally kept.
                    if (!tensor.kept && tensor.scopeId === oldScope.id) {
                        this.track(tensor);
                    }
                }
                );
            }
            /**
             * Returns gradients of `f` with respect to each of the `xs`. The gradients
             * returned are of the same length as `xs`, but some might be null if `f`
             * was not a function of that `x`. It also takes optional dy to multiply the
             * gradient, which defaults to `1`.
             */
            gradients(f, xs, dy, allowNoGradients = false) {
                util.assert(xs.length > 0, () => 'gradients() received an empty list of xs.');
                if (dy != null && dy.dtype !== 'float32') {
                    throw new Error(`dy must have 'float32' dtype, but has '${dy.dtype}'`);
                }
                const y = this.scopedRun(() => this.startTape(), () => this.endTape(), () => this.tidy('forward', f));
                util.assert(y instanceof _tensor.Tensor, () => 'The result y returned by f() must be a tensor.');
                // Filter out the nodes that don't connect x => y.
                const filteredTape = (0,
                    _tape.getFilteredNodesXToY)(this.state.activeTape, xs, y);
                if (!allowNoGradients && filteredTape.length === 0 && xs.length > 0) {
                    throw new Error('Cannot compute gradient of y=f(x) with respect to x. Make sure ' + 'that the f you passed encloses all operations that lead from x ' + 'to y.');
                }
                return this.tidy('backward', () => {
                    const accumulatedGradientMap = {};
                    accumulatedGradientMap[y.id] = dy == null ? ones(y.shape) : dy;
                    // Backprop gradients through the filtered nodes.
                    (0,
                        _tape.backpropagateGradients)(accumulatedGradientMap, filteredTape, // Pass the tidy function to avoid circular dep with `tape.ts`.
                            f => this.tidy(f), // Pass an add function to avoide a circular dep with `tape.ts`.
                            add);
                    const grads = xs.map(x => accumulatedGradientMap[x.id]);
                    if (this.state.gradientDepth === 0) {
                        // This means that we are not computing higher-order gradients
                        // and can clean up the tape.
                        this.state.activeTape.forEach(node => {
                            for (const tensor of node.saved) {
                                tensor.dispose();
                            }
                        }
                        );
                        this.state.activeTape = null;
                    }
                    return {
                        value: y,
                        grads
                    };
                }
                );
            }
            customGrad(f) {
                util.assert(util.isFunction(f), () => 'The f passed in customGrad(f) must be a function.');
                return (...inputs) => {
                    util.assert(inputs.every(t => t instanceof _tensor.Tensor), () => 'The args passed in customGrad(f)(x1, x2,...) must all be ' + 'tensors');
                    let res;
                    const inputMap = {};
                    inputs.forEach((input, i) => {
                        inputMap[i] = input;
                    }
                    );
                    const forwardFunc = (_, save) => {
                        res = f(...[...inputs, save]);
                        util.assert(res.value instanceof _tensor.Tensor, () => 'The function f passed in customGrad(f) must return an ' + 'object where `obj.value` is a tensor');
                        util.assert(util.isFunction(res.gradFunc), () => 'The function f passed in customGrad(f) must return an ' + 'object where `obj.gradFunc` is a function.');
                        return res.value;
                    }
                        ;
                    const backwardsFunc = (dy, saved) => {
                        const gradRes = res.gradFunc(dy, saved);
                        const grads = Array.isArray(gradRes) ? gradRes : [gradRes];
                        util.assert(grads.length === inputs.length, () => 'The function f passed in customGrad(f) must return an ' + 'object where `obj.gradFunc` is a function that returns ' + 'the same number of tensors as inputs passed to f(...).');
                        util.assert(grads.every(t => t instanceof _tensor.Tensor), () => 'The function f passed in customGrad(f) must return an ' + 'object where `obj.gradFunc` is a function that returns ' + 'a list of only tensors.');
                        const gradMap = {};
                        grads.forEach((grad, i) => {
                            gradMap[i] = () => grad;
                        }
                        );
                        return gradMap;
                    }
                        ;
                    return this.runKernelFunc({
                        forwardFunc,
                        backwardsFunc,
                        inputs: inputMap
                    });
                }
                    ;
            }
            readSync(dataId) {
                // Route the read to the correct backend.
                const info = this.state.tensorInfo.get(dataId);
                return info.backend.readSync(dataId);
            }
            read(dataId) {
                // Route the read to the correct backend.
                const info = this.state.tensorInfo.get(dataId);
                return info.backend.read(dataId);
            }
            readToGPU(dataId, options) {
                // Route the read to the correct backend.
                const info = this.state.tensorInfo.get(dataId);
                return info.backend.readToGPU(dataId, options);
            }
            async time(query) {
                const start = (0,
                    util.now)();
                const timingInfo = await this.backend.time(query);
                timingInfo.wallMs = (0,
                    util.now)() - start;
                return timingInfo;
            }
            /**
             * Tracks a Tensor in the current scope to be automatically cleaned up
             * when the current scope ends, and returns the value.
             *
             * @param result The Tensor to track in the current scope.
             */
            track(result) {
                if (this.state.activeScope != null) {
                    result.scopeId = this.state.activeScope.id;
                    this.state.activeScope.track.push(result);
                }
                return result;
            }
            get registeredVariables() {
                return this.state.registeredVariables;
            }
            /**
             * Resets the engine state. Removes all backends but does not remove
             * registered backend factories.
             */
            reset() {
                // Make any pending promise obsolete.
                this.pendingBackendInitId++;
                this.state.dispose();
                this.ENV.reset();
                this.state = new EngineState();
                for (const backendName in this.registry) {
                    this.disposeRegisteredKernels(backendName);
                    this.registry[backendName].dispose();
                    delete this.registry[backendName];
                }
                this.backendName = null;
                this.backendInstance = null;
                this.pendingBackendInit = null;
            }
        }
        exports.Engine = Engine;
        Engine.nextTensorId = 0;
        Engine.nextVariableId = 0;
        function ones(shape) {
            const values = (0,
                util.makeOnesTypedArray)((0,
                    util.sizeFromShape)(shape), 'float32');
            return ENGINE.makeTensor(values, shape, 'float32');
        }
        function getOrMakeEngine() {
            const ns = (0,
                _global_util.getGlobalNamespace)();
            if (ns._tfengine == null) {
                const environment = new _environment.Environment(ns);
                ns._tfengine = new Engine(environment);
            }
            (0,
                _environment.setEnvironmentGlobal)(ns._tfengine.ENV);
            // Tell the current tensor interface that the global engine is responsible
            // for tracking.
            (0,
                _tensor.setTensorTracker)(() => ns._tfengine);
            return ns._tfengine;
        }
        const ENGINE = getOrMakeEngine();
        /**
         * A implementation of the add op for use within engine and tape.
         *
         * This allows us to avoid a circular dependency between add.ts and engine.
         * It is exported to be available in tape tests.
         */
        exports.ENGINE = ENGINE;
        function add(a, b) {
            // We duplicate Add here to avoid a circular dependency with add.ts.
            const inputs = {
                a,
                b
            };
            return ENGINE.runKernel(_kernel_names.Add, inputs);
        }

    }
        , {
        "./backends/backend": 66,
        "./environment": 78,
        "./global_util": 80,
        "./kernel_names": 198,
        "./kernel_registry": 199,
        "./log": 200,
        "./profiler": 497,
        "./tape": 500,
        "./tensor": 501,
        "./tensor_util": 503,
        "./util": 509
    }],
    78: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.Environment = exports.ENV = void 0;
        exports.env = env;
        exports.getQueryParams = getQueryParams;
        exports.setEnvironmentGlobal = setEnvironmentGlobal;
        var _util_base = require("./util_base");
        /**
         * @license
         * Copyright 2017 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        // Expects flags from URL in the format ?tfjsflags=FLAG1:1,FLAG2:true.
        const TENSORFLOWJS_FLAGS_PREFIX = 'tfjsflags';
        /**
         * The environment contains evaluated flags as well as the registered platform.
         * This is always used as a global singleton and can be retrieved with
         * `tf.env()`.
         *
         * @doc {heading: 'Environment'}
         */
        class Environment {
            // tslint:disable-next-line: no-any
            constructor(global) {
                this.global = global;
                this.flags = {};
                this.flagRegistry = {};
                this.urlFlags = {};
                // Jasmine spies on this in 'environment_test.ts'
                this.getQueryParams = getQueryParams;
                this.populateURLFlags();
            }
            setPlatform(platformName, platform) {
                if (this.platform != null) {
                    if (!(env().getBool('IS_TEST') || env().getBool('PROD'))) {
                        console.warn(`Platform ${this.platformName} has already been set. ` + `Overwriting the platform with ${platformName}.`);
                    }
                }
                this.platformName = platformName;
                this.platform = platform;
            }
            registerFlag(flagName, evaluationFn, setHook) {
                this.flagRegistry[flagName] = {
                    evaluationFn,
                    setHook
                };
                // Override the flag value from the URL. This has to happen here because
                // the environment is initialized before flags get registered.
                if (this.urlFlags[flagName] != null) {
                    const flagValue = this.urlFlags[flagName];
                    if (!(env().getBool('IS_TEST') || env().getBool('PROD'))) {
                        console.warn(`Setting feature override from URL ${flagName}: ${flagValue}.`);
                    }
                    this.set(flagName, flagValue);
                }
            }
            async getAsync(flagName) {
                if (flagName in this.flags) {
                    return this.flags[flagName];
                }
                this.flags[flagName] = await this.evaluateFlag(flagName);
                return this.flags[flagName];
            }
            get(flagName) {
                if (flagName in this.flags) {
                    return this.flags[flagName];
                }
                const flagValue = this.evaluateFlag(flagName);
                if ((0,
                    _util_base.isPromise)(flagValue)) {
                    throw new Error(`Flag ${flagName} cannot be synchronously evaluated. ` + `Please use getAsync() instead.`);
                }
                this.flags[flagName] = flagValue;
                return this.flags[flagName];
            }
            getNumber(flagName) {
                return this.get(flagName);
            }
            getBool(flagName) {
                return this.get(flagName);
            }
            getFlags() {
                return this.flags;
            }
            // For backwards compatibility.
            get features() {
                return this.flags;
            }
            set(flagName, value) {
                if (this.flagRegistry[flagName] == null) {
                    throw new Error(`Cannot set flag ${flagName} as it has not been registered.`);
                }
                this.flags[flagName] = value;
                if (this.flagRegistry[flagName].setHook != null) {
                    this.flagRegistry[flagName].setHook(value);
                }
            }
            evaluateFlag(flagName) {
                if (this.flagRegistry[flagName] == null) {
                    throw new Error(`Cannot evaluate flag '${flagName}': no evaluation function found.`);
                }
                return this.flagRegistry[flagName].evaluationFn();
            }
            setFlags(flags) {
                this.flags = Object.assign({}, flags);
            }
            reset() {
                this.flags = {};
                this.urlFlags = {};
                this.populateURLFlags();
            }
            populateURLFlags() {
                if (typeof this.global === 'undefined' || typeof this.global.location === 'undefined' || typeof this.global.location.search === 'undefined') {
                    return;
                }
                const urlParams = this.getQueryParams(this.global.location.search);
                if (TENSORFLOWJS_FLAGS_PREFIX in urlParams) {
                    const keyValues = urlParams[TENSORFLOWJS_FLAGS_PREFIX].split(',');
                    keyValues.forEach(keyValue => {
                        const [key, value] = keyValue.split(':');
                        this.urlFlags[key] = parseValue(key, value);
                    }
                    );
                }
            }
        }
        exports.Environment = Environment;
        function getQueryParams(queryString) {
            const params = {};
            queryString.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g, (s, ...t) => {
                decodeParam(params, t[0], t[1]);
                return t.join('=');
            }
            );
            return params;
        }
        function decodeParam(params, name, value) {
            params[decodeURIComponent(name)] = decodeURIComponent(value || '');
        }
        function parseValue(flagName, value) {
            value = value.toLowerCase();
            if (value === 'true' || value === 'false') {
                return value === 'true';
            } else if (`${+value}` === value) {
                return +value;
            }
            throw new Error(`Could not parse value flag value ${value} for flag ${flagName}.`);
        }
        /**
         * Returns the current environment (a global singleton).
         *
         * The environment object contains the evaluated feature values as well as the
         * active platform.
         *
         * @doc {heading: 'Environment'}
         */
        function env() {
            return ENV;
        }
        let ENV = null;
        exports.ENV = ENV;
        function setEnvironmentGlobal(environment) {
            exports.ENV = ENV = environment;
        }

    }
        , {
        "./util_base": 510
    }],
    79: [function (require, module, exports) {
        (function (process) {
            (function () {
                "use strict";

                require("./engine");
                var device_util = _interopRequireWildcard(require("./device_util"));
                var _environment = require("./environment");
                function _getRequireWildcardCache(nodeInterop) {
                    if (typeof WeakMap !== "function")
                        return null;
                    var cacheBabelInterop = new WeakMap();
                    var cacheNodeInterop = new WeakMap();
                    return (_getRequireWildcardCache = function (nodeInterop) {
                        return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
                    }
                    )(nodeInterop);
                }
                function _interopRequireWildcard(obj, nodeInterop) {
                    if (!nodeInterop && obj && obj.__esModule) {
                        return obj;
                    }
                    if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                        return {
                            default: obj
                        };
                    }
                    var cache = _getRequireWildcardCache(nodeInterop);
                    if (cache && cache.has(obj)) {
                        return cache.get(obj);
                    }
                    var newObj = {};
                    var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
                    for (var key in obj) {
                        if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                            var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                            if (desc && (desc.get || desc.set)) {
                                Object.defineProperty(newObj, key, desc);
                            } else {
                                newObj[key] = obj[key];
                            }
                        }
                    }
                    newObj.default = obj;
                    if (cache) {
                        cache.set(obj, newObj);
                    }
                    return newObj;
                }
                /**
                 * @license
                 * Copyright 2019 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */

                const ENV = (0,
                    _environment.env)();
                /**
                 * This file contains environment-related flag registrations.
                 */
                /** Whether to enable debug mode. */
                ENV.registerFlag('DEBUG', () => false, debugValue => {
                    if (debugValue) {
                        console.warn('Debugging mode is ON. The output of every math call will ' + 'be downloaded to CPU and checked for NaNs. ' + 'This significantly impacts performance.');
                    }
                }
                );
                /** Whether we are in a browser (as versus, say, node.js) environment. */
                ENV.registerFlag('IS_BROWSER', () => device_util.isBrowser());
                /** Whether we are in a browser (as versus, say, node.js) environment. */
                ENV.registerFlag('IS_NODE', () => typeof process !== 'undefined' && typeof process.versions !== 'undefined' && typeof process.versions.node !== 'undefined');
                /** Whether this browser is Chrome. */
                ENV.registerFlag('IS_CHROME', () => typeof navigator !== 'undefined' && navigator != null && navigator.userAgent != null && /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor));
                /**
                 * True when the environment is "production" where we disable safety checks
                 * to gain performance.
                 */
                ENV.registerFlag('PROD', () => false);
                /**
                 * Whether to do sanity checks when inferring a shape from user-provided
                 * values, used when creating a new tensor.
                 */
                ENV.registerFlag('TENSORLIKE_CHECK_SHAPE_CONSISTENCY', () => ENV.getBool('DEBUG'));
                /** Whether deprecation warnings are enabled. */
                ENV.registerFlag('DEPRECATION_WARNINGS_ENABLED', () => true);
                /** True if running unit tests. */
                ENV.registerFlag('IS_TEST', () => false);
                /** Whether to check computation result for errors. */
                ENV.registerFlag('CHECK_COMPUTATION_FOR_ERRORS', () => true);
                /** Whether the backend needs to wrap input to imageBitmap. */
                ENV.registerFlag('WRAP_TO_IMAGEBITMAP', () => false);
                /** Whether to enable canvas2d willReadFrequently for GPU backends */
                ENV.registerFlag('CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU', () => false);
                /** Whether to use setTimeoutCustom */
                ENV.registerFlag('USE_SETTIMEOUTCUSTOM', () => false);

            }
            ).call(this)
        }
        ).call(this, require('_process'))
    }
        , {
        "./device_util": 76,
        "./engine": 77,
        "./environment": 78,
        "_process": 649
    }],
    80: [function (require, module, exports) {
        (function (process, global) {
            (function () {
                "use strict";

                Object.defineProperty(exports, "__esModule", {
                    value: true
                });
                exports.getGlobal = getGlobal;
                exports.getGlobalNamespace = getGlobalNamespace;
                /**
                 * @license
                 * Copyright 2020 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                // Note that the identifier globalNameSpace is scoped to this module, but will
                // always resolve to the same global object regardless of how the module is
                // resolved.
                // tslint:disable-next-line:no-any
                let globalNameSpace;
                // tslint:disable-next-line:no-any
                function getGlobalNamespace() {
                    if (globalNameSpace == null) {
                        // tslint:disable-next-line:no-any
                        let ns;
                        if (typeof window !== 'undefined') {
                            ns = window;
                        } else if (typeof global !== 'undefined') {
                            ns = global;
                        } else if (typeof process !== 'undefined') {
                            ns = process;
                        } else if (typeof self !== 'undefined') {
                            ns = self;
                        } else {
                            throw new Error('Could not find a global object');
                        }
                        globalNameSpace = ns;
                    }
                    return globalNameSpace;
                }
                // tslint:disable-next-line:no-any
                function getGlobalMap() {
                    const ns = getGlobalNamespace();
                    if (ns._tfGlobals == null) {
                        ns._tfGlobals = new Map();
                    }
                    return ns._tfGlobals;
                }
                /**
                 * Returns a globally accessible 'singleton' object.
                 *
                 * @param key the name of the object
                 * @param init a function to initialize to initialize this object
                 *             the first time it is fetched.
                 */
                function getGlobal(key, init) {
                    const globalMap = getGlobalMap();
                    if (globalMap.has(key)) {
                        return globalMap.get(key);
                    } else {
                        const singleton = init();
                        globalMap.set(key, singleton);
                        return globalMap.get(key);
                    }
                }

            }
            ).call(this)
        }
        ).call(this, require('_process'), typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
    }
        , {
        "_process": 649
    }],
    81: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.backend = backend;
        exports.deprecationWarn = deprecationWarn;
        exports.disableDeprecationWarnings = disableDeprecationWarnings;
        exports.dispose = dispose;
        exports.disposeVariables = disposeVariables;
        exports.enableDebugMode = enableDebugMode;
        exports.enableProdMode = enableProdMode;
        exports.engine = engine;
        exports.findBackend = findBackend;
        exports.findBackendFactory = findBackendFactory;
        exports.getBackend = getBackend;
        exports.keep = keep;
        exports.memory = memory;
        exports.profile = profile;
        exports.ready = ready;
        exports.registerBackend = registerBackend;
        exports.removeBackend = removeBackend;
        exports.setBackend = setBackend;
        exports.setPlatform = setPlatform;
        exports.tidy = tidy;
        exports.time = time;
        var _engine = require("./engine");
        var _environment = require("./environment");
        var _tensor = require("./tensor");
        var _tensor_util = require("./tensor_util");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Enables production mode which disables correctness checks in favor of
         * performance.
         *
         * @doc {heading: 'Environment'}
         */
        function enableProdMode() {
            (0,
                _environment.env)().set('PROD', true);
        }
        /**
         * Enables debug mode which will log information about all executed kernels:
         * the elapsed time of the kernel execution, as well as the rank, shape, and
         * size of the output tensor.
         *
         * Debug mode will significantly slow down your application as it will
         * download the result of every operation to the CPU. This should not be used in
         * production. Debug mode does not affect the timing information of the kernel
         * execution as we do not measure download time in the kernel execution time.
         *
         * See also: `tf.profile`, `tf.memory`.
         *
         * @doc {heading: 'Environment'}
         */
        function enableDebugMode() {
            (0,
                _environment.env)().set('DEBUG', true);
        }
        /** Globally disables deprecation warnings */
        function disableDeprecationWarnings() {
            (0,
                _environment.env)().set('DEPRECATION_WARNINGS_ENABLED', false);
            console.warn(`TensorFlow.js deprecation warnings have been disabled.`);
        }
        /** Warn users about deprecated functionality. */
        function deprecationWarn(msg) {
            if ((0,
                _environment.env)().getBool('DEPRECATION_WARNINGS_ENABLED')) {
                console.warn(msg + ' You can disable deprecation warnings with ' + 'tf.disableDeprecationWarnings().');
            }
        }
        (0,
            _tensor.setDeprecationWarningFn)(deprecationWarn);
        /**
         * Dispose all variables kept in backend engine.
         *
         * @doc {heading: 'Environment'}
         */
        function disposeVariables() {
            _engine.ENGINE.disposeVariables();
        }
        /**
         * It returns the global engine that keeps track of all tensors and backends.
         *
         * @doc {heading: 'Environment'}
         */
        function engine() {
            return _engine.ENGINE;
        }
        /**
         * Returns memory info at the current time in the program. The result is an
         * object with the following properties:
         *
         * - `numBytes`: Number of bytes allocated (undisposed) at this time.
         * - `numTensors`: Number of unique tensors allocated.
         * - `numDataBuffers`: Number of unique data buffers allocated
         *   (undisposed) at this time, which is ≤ the number of tensors
         *   (e.g. `a.reshape(newShape)` makes a new Tensor that shares the same
         *   data buffer with `a`).
         * - `unreliable`: True if the memory usage is unreliable. See `reasons` when
         *    `unreliable` is true.
         * - `reasons`: `string[]`, reasons why the memory is unreliable, present if
         *    `unreliable` is true.
         *
         * WebGL Properties:
         * - `numBytesInGPU`: Number of bytes allocated (undisposed) in the GPU only at
         *     this time.
         *
         * @doc {heading: 'Performance', subheading: 'Memory'}
         */
        function memory() {
            return _engine.ENGINE.memory();
        }
        /**
         * Executes the provided function `f()` and returns a promise that resolves
         * with information about the function's memory use:
         * - `newBytes`: the number of new bytes allocated
         * - `newTensors`: the number of new tensors created
         * - `peakBytes`: the peak number of bytes allocated
         * - `kernels`: an array of objects for each kernel involved that reports
         * their input and output shapes, number of bytes used, and number of new
         * tensors created.
         * - `kernelNames`: an array of unique strings with just the names of the
         * kernels in the `kernels` array.
         *
         * ```js
         * const profile = await tf.profile(() => {
         *   const x = tf.tensor1d([1, 2, 3]);
         *   let x2 = x.square();
         *   x2.dispose();
         *   x2 = x.square();
         *   x2.dispose();
         *   return x;
         * });
         *
         * console.log(`newBytes: ${profile.newBytes}`);
         * console.log(`newTensors: ${profile.newTensors}`);
         * console.log(`byte usage over all kernels: ${profile.kernels.map(k =>
         * k.totalBytesSnapshot)}`);
         * ```
         *
         *
         * @doc {heading: 'Performance', subheading: 'Profile'}
         */
        function profile(f) {
            return _engine.ENGINE.profile(f);
        }
        /**
         * Executes the provided function `fn` and after it is executed, cleans up all
         * intermediate tensors allocated by `fn` except those returned by `fn`.
         * `fn` must not return a Promise (async functions not allowed). The returned
         * result can be a complex object.
         *
         * Using this method helps avoid memory leaks. In general, wrap calls to
         * operations in `tf.tidy` for automatic memory cleanup.
         *
         * NOTE: Variables do *not* get cleaned up when inside a tidy(). If you want to
         * dispose variables, please use `tf.disposeVariables` or call dispose()
         * directly on variables.
         *
         * ```js
         * // y = 2 ^ 2 + 1
         * const y = tf.tidy(() => {
         *   // a, b, and one will be cleaned up when the tidy ends.
         *   const one = tf.scalar(1);
         *   const a = tf.scalar(2);
         *   const b = a.square();
         *
         *   console.log('numTensors (in tidy): ' + tf.memory().numTensors);
         *
         *   // The value returned inside the tidy function will return
         *   // through the tidy, in this case to the variable y.
         *   return b.add(one);
         * });
         *
         * console.log('numTensors (outside tidy): ' + tf.memory().numTensors);
         * y.print();
         * ```
         *
         * @param nameOrFn The name of the closure, or the function to execute.
         *     If a name is provided, the 2nd argument should be the function.
         *     If debug mode is on, the timing and the memory usage of the function
         *     will be tracked and displayed on the console using the provided name.
         * @param fn The function to execute.
         *
         * @doc {heading: 'Performance', subheading: 'Memory'}
         */
        function tidy(nameOrFn, fn) {
            return _engine.ENGINE.tidy(nameOrFn, fn);
        }
        /**
         * Disposes any `tf.Tensor`s found within the provided object.
         *
         * @param container an object that may be a `tf.Tensor` or may directly
         *     contain `tf.Tensor`s, such as a `Tensor[]` or `{key: Tensor, ...}`. If
         *     the object is not a `tf.Tensor` or does not contain `Tensors`, nothing
         *     happens. In general it is safe to pass any object here, except that
         *     `Promise`s are not supported.
         *
         * @doc {heading: 'Performance', subheading: 'Memory'}
         */
        function dispose(container) {
            const tensors = (0,
                _tensor_util.getTensorsInContainer)(container);
            tensors.forEach(tensor => tensor.dispose());
        }
        /**
         * Keeps a `tf.Tensor` generated inside a `tf.tidy` from being disposed
         * automatically.
         *
         * ```js
         * let b;
         * const y = tf.tidy(() => {
         *   const one = tf.scalar(1);
         *   const a = tf.scalar(2);
         *
         *   // b will not be cleaned up by the tidy. a and one will be cleaned up
         *   // when the tidy ends.
         *   b = tf.keep(a.square());
         *
         *   console.log('numTensors (in tidy): ' + tf.memory().numTensors);
         *
         *   // The value returned inside the tidy function will return
         *   // through the tidy, in this case to the variable y.
         *   return b.add(one);
         * });
         *
         * console.log('numTensors (outside tidy): ' + tf.memory().numTensors);
         * console.log('y:');
         * y.print();
         * console.log('b:');
         * b.print();
         * ```
         *
         * @param result The tensor to keep from being disposed.
         *
         * @doc {heading: 'Performance', subheading: 'Memory'}
         */
        function keep(result) {
            return _engine.ENGINE.keep(result);
        }
        /**
         * Executes `f()` and returns a promise that resolves with timing
         * information.
         *
         * The result is an object with the following properties:
         *
         * - `wallMs`: Wall execution time.
         * - `kernelMs`: Kernel execution time, ignoring data transfer. If using the
         * WebGL backend and the query timer extension is not available, this will
         * return an error object.
         * - On `WebGL` The following additional properties exist:
         *   - `uploadWaitMs`: CPU blocking time on texture uploads.
         *   - `downloadWaitMs`: CPU blocking time on texture downloads (readPixels).
         *
         * ```js
         * const x = tf.randomNormal([20, 20]);
         * const time = await tf.time(() => x.matMul(x));
         *
         * console.log(`kernelMs: ${time.kernelMs}, wallTimeMs: ${time.wallMs}`);
         * ```
         *
         * @param f The function to execute and time.
         *
         * @doc {heading: 'Performance', subheading: 'Timing'}
         */
        function time(f) {
            return _engine.ENGINE.time(f);
        }
        /**
         * Sets the backend (cpu, webgl, wasm, etc) responsible for creating tensors and
         * executing operations on those tensors. Returns a promise that resolves
         * to a boolean if the backend initialization was successful.
         *
         * Note this disposes the current backend, if any, as well as any tensors
         * associated with it. A new backend is initialized, even if it is of the
         * same type as the previous one.
         *
         * @param backendName The name of the backend. Currently supports
         *     `'webgl'|'cpu'` in the browser, `'tensorflow'` under node.js
         *     (requires tfjs-node), and `'wasm'` (requires tfjs-backend-wasm).
         *
         * @doc {heading: 'Backends'}
         */
        function setBackend(backendName) {
            return _engine.ENGINE.setBackend(backendName);
        }
        /**
         * Returns a promise that resolves when the currently selected backend (or the
         * highest priority one) has initialized. Await this promise when you are using
         * a backend that has async initialization.
         *
         * @doc {heading: 'Backends'}
         */
        function ready() {
            return _engine.ENGINE.ready();
        }
        /**
         * Returns the current backend name (cpu, webgl, etc). The backend is
         * responsible for creating tensors and executing operations on those tensors.
         *
         * @doc {heading: 'Backends'}
         */
        function getBackend() {
            return _engine.ENGINE.backendName;
        }
        /**
         * Removes a backend and the registered factory.
         *
         * @doc {heading: 'Backends'}
         */
        function removeBackend(name) {
            _engine.ENGINE.removeBackend(name);
        }
        /**
         * Finds the backend registered under the provided name. Returns null if the
         * name is not in the registry, or the registration hasn't finished yet.
         */
        function findBackend(name) {
            return _engine.ENGINE.findBackend(name);
        }
        /**
         * Finds the backend factory registered under the provided name. Returns a
         * function that produces a new backend when called. Returns null if the name
         * is not in the registry.
         */
        function findBackendFactory(name) {
            return _engine.ENGINE.findBackendFactory(name);
        }
        /**
         * Registers a global backend. The registration should happen when importing
         * a module file (e.g. when importing `backend_webgl.ts`), and is used for
         * modular builds (e.g. custom tfjs bundle with only webgl support).
         *
         * @param factory The backend factory function. When called, it should
         * return a backend instance, or a promise of an instance.
         * @param priority The priority of the backend (higher = more important).
         *     In case multiple backends are registered, the priority is used to find
         *     the best backend. Defaults to 1.
         * @return False if there is already a registered backend under this name, true
         *     if not.
         *
         * @doc {heading: 'Backends'}
         */
        function registerBackend(name, factory, priority = 1) {
            return _engine.ENGINE.registerBackend(name, factory, priority);
        }
        /**
         * Gets the current backend. If no backends have been initialized, this will
         * attempt to initialize the best backend. Will throw an error if the highest
         * priority backend has async initialization, in which case you should call
         * 'await tf.ready()' before running other code.
         *
         * @doc {heading: 'Backends'}
         */
        function backend() {
            return _engine.ENGINE.backend;
        }
        /**
         * Sets the global platform.
         *
         * @param platformName The name of this platform.
         * @param platform A platform implementation.
         */
        function setPlatform(platformName, platform) {
            (0,
                _environment.env)().setPlatform(platformName, platform);
        }

    }
        , {
        "./engine": 77,
        "./environment": 78,
        "./tensor": 501,
        "./tensor_util": 503
    }],
    82: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.customGrad = customGrad;
        exports.grad = grad;
        exports.grads = grads;
        exports.valueAndGrad = valueAndGrad;
        exports.valueAndGrads = valueAndGrads;
        exports.variableGrads = variableGrads;
        var _engine = require("./engine");
        var _tensor = require("./tensor");
        var _tensor_util_env = require("./tensor_util_env");
        var util = _interopRequireWildcard(require("./util"));
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Provided `f(x)`, returns another function `g(x, dy?)`, which gives the
         * gradient of `f(x)` with respect to `x`.
         *
         * If `dy` is provided, the gradient of `f(x).mul(dy).sum()` with respect to
         * `x` is computed instead. `f(x)` must take a single tensor `x` and return a
         * single tensor `y`. If `f()` takes multiple inputs, use `tf.grads` instead.
         *
         * ```js
         * // f(x) = x ^ 2
         * const f = x => x.square();
         * // f'(x) = 2x
         * const g = tf.grad(f);
         *
         * const x = tf.tensor1d([2, 3]);
         * g(x).print();
         * ```
         *
         * ```js
         * // f(x) = x ^ 3
         * const f = x => x.pow(tf.scalar(3, 'int32'));
         * // f'(x) = 3x ^ 2
         * const g = tf.grad(f);
         * // f''(x) = 6x
         * const gg = tf.grad(g);
         *
         * const x = tf.tensor1d([2, 3]);
         * gg(x).print();
         * ```
         *
         * @param f The function f(x), to compute gradient for.
         *
         * @doc {heading: 'Training', subheading: 'Gradients'}
         */
        function grad(f) {
            util.assert(util.isFunction(f), () => 'The f passed in grad(f) must be a function');
            return (x, dy) => {
                // x can be of any dtype, thus null as the last argument.
                const $x = (0,
                    _tensor_util_env.convertToTensor)(x, 'x', 'tf.grad', 'string_or_numeric');
                const $dy = dy != null ? (0,
                    _tensor_util_env.convertToTensor)(dy, 'dy', 'tf.grad') : null;
                return _engine.ENGINE.tidy(() => {
                    const { value, grads } = _engine.ENGINE.gradients(() => f($x), [$x], $dy);
                    if ($dy != null) {
                        util.assertShapesMatch(value.shape, $dy.shape, 'The shape of dy passed in grad(f)(x, dy) must match the shape ' + 'returned by f(x)');
                    }
                    checkGrads(grads);
                    return grads[0];
                }
                );
            }
                ;
        }
        /**
         * Provided `f(x1, x2,...)`, returns another function `g([x1, x2,...], dy?)`,
         * which gives an array of gradients of `f()` with respect to each input
         * [`x1`,`x2`,...].
         *
         * If `dy` is passed when calling `g()`, the gradient of
         * `f(x1,...).mul(dy).sum()` with respect to each input is computed instead.
         * The provided `f` must take one or more tensors and return a single tensor
         * `y`. If `f()` takes a single input, we recommend using `tf.grad` instead.
         *
         * ```js
         * // f(a, b) = a * b
         * const f = (a, b) => a.mul(b);
         * // df / da = b, df / db = a
         * const g = tf.grads(f);
         *
         * const a = tf.tensor1d([2, 3]);
         * const b = tf.tensor1d([-2, -3]);
         * const [da, db] = g([a, b]);
         * console.log('da');
         * da.print();
         * console.log('db');
         * db.print();
         * ```
         *
         * @param f The function `f(x1, x2,...)` to compute gradients for.
         *
         * @doc {heading: 'Training', subheading: 'Gradients'}
         */
        function grads(f) {
            util.assert(util.isFunction(f), () => 'The f passed in grads(f) must be a function');
            return (args, dy) => {
                util.assert(Array.isArray(args), () => 'The args passed in grads(f)(args) must be an array ' + 'of `Tensor`s or `TensorLike`s');
                // args can be of any dtype, thus null as the last argument.
                const $args = (0,
                    _tensor_util_env.convertToTensorArray)(args, 'args', 'tf.grads', 'string_or_numeric');
                const $dy = dy != null ? (0,
                    _tensor_util_env.convertToTensor)(dy, 'dy', 'tf.grads') : null;
                return _engine.ENGINE.tidy(() => {
                    const { value, grads } = _engine.ENGINE.gradients(() => f(...$args), $args, $dy);
                    if ($dy != null) {
                        util.assertShapesMatch(value.shape, $dy.shape, 'The shape of dy passed in grads(f)([x1,...], dy) must ' + 'match the shape returned by f([x1,...])');
                    }
                    checkGrads(grads);
                    return grads;
                }
                );
            }
                ;
        }
        /**
         * Like `tf.grad`, but also returns the value of `f()`. Useful when `f()`
         * returns a metric you want to show.
         *
         * The result is a rich object with the following properties:
         * - grad: The gradient of `f(x)` w.r.t. `x` (result of `tf.grad`).
         * - value: The value returned by `f(x)`.
         *
         * ```js
         * // f(x) = x ^ 2
         * const f = x => x.square();
         * // f'(x) = 2x
         * const g = tf.valueAndGrad(f);
         *
         * const x = tf.tensor1d([2, 3]);
         * const {value, grad} = g(x);
         *
         * console.log('value');
         * value.print();
         * console.log('grad');
         * grad.print();
         * ```
         *
         * @doc {heading: 'Training', subheading: 'Gradients'}
         */
        function valueAndGrad(f) {
            util.assert(util.isFunction(f), () => 'The f passed in valueAndGrad(f) must be a function');
            return (x, dy) => {
                util.assert(x instanceof _tensor.Tensor, () => 'The x passed in valueAndGrad(f)(x) must be a tensor');
                util.assert(dy == null || dy instanceof _tensor.Tensor, () => 'The dy passed in valueAndGrad(f)(x, dy) must be a tensor');
                const { grads, value } = _engine.ENGINE.gradients(() => f(x), [x], dy);
                checkGrads(grads);
                return {
                    grad: grads[0],
                    value
                };
            }
                ;
        }
        /**
         * Like `tf.grads`, but returns also the value of `f()`. Useful when `f()`
         * returns a metric you want to show.
         *
         * The result is a rich object with the following properties:
         * - grads: The gradients of `f()` w.r.t. each input (result of `tf.grads`).
         * - value: The value returned by `f(x)`.
         *
         * ```js
         * // f(a, b) = a * b
         * const f = (a, b) => a.mul(b);
         * // df/da = b, df/db = a
         * const g = tf.valueAndGrads(f);
         *
         * const a = tf.tensor1d([2, 3]);
         * const b = tf.tensor1d([-2, -3]);
         * const {value, grads} = g([a, b]);
         *
         * const [da, db] = grads;
         *
         * console.log('value');
         * value.print();
         *
         * console.log('da');
         * da.print();
         * console.log('db');
         * db.print();
         * ```
         *
         * @doc {heading: 'Training', subheading: 'Gradients'}
         */
        function valueAndGrads(f) {
            util.assert(util.isFunction(f), () => 'The f passed in valueAndGrads(f) must be a function');
            return (args, dy) => {
                util.assert(Array.isArray(args) && args.every(arg => arg instanceof _tensor.Tensor), () => 'The args passed in valueAndGrads(f)(args) must be array of ' + 'tensors');
                util.assert(dy == null || dy instanceof _tensor.Tensor, () => 'The dy passed in valueAndGrads(f)(args, dy) must be a tensor');
                const res = _engine.ENGINE.gradients(() => f(...args), args, dy);
                if (dy != null) {
                    util.assertShapesMatch(res.value.shape, dy.shape, 'The shape of dy passed in valueAndGrads(f)([x1,...], dy) must ' + 'match the shape returned by f([x1,...])');
                }
                checkGrads(res.grads);
                return res;
            }
                ;
        }
        /**
         * Computes and returns the gradient of f(x) with respect to the list of
         * trainable variables provided by `varList`. If no list is provided, it
         * defaults to all trainable variables.
         *
         * ```js
         * const a = tf.variable(tf.tensor1d([3, 4]));
         * const b = tf.variable(tf.tensor1d([5, 6]));
         * const x = tf.tensor1d([1, 2]);
         *
         * // f(a, b) = a * x ^ 2 + b * x
         * const f = () => a.mul(x.square()).add(b.mul(x)).sum();
         * // df/da = x ^ 2, df/db = x
         * const {value, grads} = tf.variableGrads(f);
         *
         * Object.keys(grads).forEach(varName => grads[varName].print());
         * ```
         *
         * @param f The function to execute. f() should return a scalar.
         * @param varList The list of variables to compute the gradients with respect
         *     to. Defaults to all trainable variables.
         * @returns An object with the following keys and values:
         *   - `value`: The value of the function `f`.
         *   - `grads`: A map from the names of the variables to the gradients.
         *     If the `varList` argument is provided explicitly and contains a subset of
         *     non-trainable variables, this map in the return value will contain keys
         *     that map the names of the non-trainable variables to `null`.
         *
         * @doc {heading: 'Training', subheading: 'Gradients'}
         */
        function variableGrads(f, varList) {
            util.assert(util.isFunction(f), () => 'The f passed in variableGrads(f) must be a function');
            util.assert(varList == null || Array.isArray(varList) && varList.every(v => v instanceof _tensor.Variable), () => 'The varList passed in variableGrads(f, varList) must be an array ' + 'of variables');
            const specifiedVarList = varList != null;
            if (!specifiedVarList) {
                // Get all of the trainable variables.
                varList = [];
                for (const varName in _engine.ENGINE.registeredVariables) {
                    varList.push(_engine.ENGINE.registeredVariables[varName]);
                }
            }
            const specifiedNonTrainable = specifiedVarList ? varList.filter(variable => !variable.trainable) : null;
            // Prune non-trainable variables.
            const originalVarCount = varList.length;
            varList = varList.filter(variable => variable.trainable);
            util.assert(varList.length > 0, () => `variableGrads() expects at least one of the input variables to ` + `be trainable, but none of the ${originalVarCount} variables is ` + `trainable.`);
            const allowNoGradients = true;
            const { value, grads } = _engine.ENGINE.gradients(f, varList, null, allowNoGradients);
            util.assert(grads.some(g => g != null), () => 'Cannot find a connection between any variable and the result of ' + 'the loss function y=f(x). Please make sure the operations that ' + 'use variables are inside the function f passed to minimize().');
            util.assert(value.rank === 0, () => `The f passed in variableGrads(f) must return a scalar, but it ` + `returned a rank-${value.rank} tensor`);
            const namedGrads = {};
            varList.forEach((v, i) => {
                if (grads[i] != null) {
                    namedGrads[v.name] = grads[i];
                }
            }
            );
            if (specifiedNonTrainable != null) {
                // If varList is explicitly provided and contains non-trainable values,
                // add them to the returned gradients with `null` values.
                specifiedNonTrainable.forEach(v => namedGrads[v.name] = null);
            }
            return {
                value,
                grads: namedGrads
            };
        }
        /**
         * Overrides the gradient computation of a function `f`.
         *
         * Takes a function
         * `f(...inputs, save) => {value: Tensor, gradFunc: (dy, saved) => Tensor[]}`
         * and returns another function `g(...inputs)` which takes the same inputs as
         * `f`. When called, `g` returns `f().value`. In backward mode, custom gradients
         * with respect to each input of `f` are computed using `f().gradFunc`.
         *
         * The `save` function passed to `f` should be used for saving tensors needed
         * in the gradient. And the `saved` passed to the `gradFunc` is a
         * `NamedTensorMap`, which contains those saved tensors.
         *
         * ```js
         * const customOp = tf.customGrad((x, save) => {
         *   // Save x to make sure it's available later for the gradient.
         *   save([x]);
         *   // Override gradient of our custom x ^ 2 op to be dy * abs(x);
         *   return {
         *     value: x.square(),
         *     // Note `saved.x` which points to the `x` we saved earlier.
         *     gradFunc: (dy, saved) => [dy.mul(saved[0].abs())]
         *   };
         * });
         *
         * const x = tf.tensor1d([-1, -2, 3]);
         * const dx = tf.grad(x => customOp(x));
         *
         * console.log(`f(x):`);
         * customOp(x).print();
         * console.log(`f'(x):`);
         * dx(x).print();
         * ```
         *
         * @param f The function to evaluate in forward mode, which should return
         *     `{value: Tensor, gradFunc: (dy, saved) => Tensor[]}`, where `gradFunc`
         *     returns the custom gradients of `f` with respect to its inputs.
         *
         * @doc {heading: 'Training', subheading: 'Gradients'}
         */
        function customGrad(f) {
            return _engine.ENGINE.customGrad(f);
        }
        function checkGrads(grads) {
            const numNullGradients = grads.filter(g => g == null).length;
            if (numNullGradients > 0) {
                throw new Error(`Cannot compute gradient of y=f(x) with respect to x. Make sure that
    the f you passed encloses all operations that lead from x to y.`);
            }
        }

    }
        , {
        "./engine": 77,
        "./tensor": 501,
        "./tensor_util_env": 504,
        "./util": 509
    }],
    83: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.absGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _cast = require("../ops/cast");
        var _mul = require("../ops/mul");
        var _step = require("../ops/step");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const absGradConfig = {
            kernelName: _kernel_names.Abs,
            inputsToSave: ['x'],
            gradFunc: (dy, saved) => {
                const [x] = saved;
                return {
                    x: () => (0,
                        _mul.mul)(dy, (0,
                            _step.step)((0,
                                _cast.cast)(x, 'float32'), -1))
                };
            }
        };
        exports.absGradConfig = absGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/cast": 236,
        "../ops/mul": 362,
        "../ops/step": 458
    }],
    84: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.acosGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _cast = require("../ops/cast");
        var _div = require("../ops/div");
        var _neg = require("../ops/neg");
        var _scalar = require("../ops/scalar");
        var _sqrt = require("../ops/sqrt");
        var _square = require("../ops/square");
        var _sub = require("../ops/sub");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const acosGradConfig = {
            kernelName: _kernel_names.Acos,
            inputsToSave: ['x'],
            gradFunc: (dy, saved) => {
                const [x] = saved;
                return {
                    x: () => {
                        const a = (0,
                            _square.square)((0,
                                _cast.cast)(x, 'float32'));
                        const b = (0,
                            _sqrt.sqrt)((0,
                                _sub.sub)((0,
                                    _scalar.scalar)(1), a));
                        return (0,
                            _neg.neg)((0,
                                _div.div)(dy, b));
                    }
                };
            }
        };
        exports.acosGradConfig = acosGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/cast": 236,
        "../ops/div": 269,
        "../ops/neg": 365,
        "../ops/scalar": 411,
        "../ops/sqrt": 453,
        "../ops/square": 454,
        "../ops/sub": 463
    }],
    85: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.acoshGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _cast = require("../ops/cast");
        var _div = require("../ops/div");
        var _sqrt = require("../ops/sqrt");
        var _square = require("../ops/square");
        var _sub = require("../ops/sub");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const acoshGradConfig = {
            kernelName: _kernel_names.Acosh,
            inputsToSave: ['x'],
            gradFunc: (dy, saved) => {
                const [x] = saved;
                return {
                    x: () => {
                        const a = (0,
                            _sqrt.sqrt)((0,
                                _sub.sub)((0,
                                    _square.square)((0,
                                        _cast.cast)(x, 'float32')), 1));
                        return (0,
                            _div.div)(dy, a);
                    }
                };
            }
        };
        exports.acoshGradConfig = acoshGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/cast": 236,
        "../ops/div": 269,
        "../ops/sqrt": 453,
        "../ops/square": 454,
        "../ops/sub": 463
    }],
    86: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.addNGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const addNGradConfig = {
            kernelName: _kernel_names.AddN,
            saveAllInputs: true,
            gradFunc: (dy, saved) => {
                const ders = {};
                saved.forEach((_, i) => {
                    ders[i] = () => dy.clone();
                }
                );
                return ders;
            }
        };
        exports.addNGradConfig = addNGradConfig;

    }
        , {
        "../kernel_names": 198
    }],
    87: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.addGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var broadcast_util = _interopRequireWildcard(require("../ops/broadcast_util"));
        var _reshape = require("../ops/reshape");
        var _sum = require("../ops/sum");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const addGradConfig = {
            kernelName: _kernel_names.Add,
            inputsToSave: ['a', 'b'],
            gradFunc: (dy, saved) => {
                const [a, b] = saved;
                const outShape = broadcast_util.assertAndGetBroadcastShape(a.shape, b.shape);
                const derA = () => {
                    let res = dy;
                    const reduceAxes = broadcast_util.getReductionAxes(a.shape, outShape);
                    if (reduceAxes.length > 0) {
                        res = (0,
                            _sum.sum)(res, reduceAxes);
                    }
                    return (0,
                        _reshape.reshape)(res, a.shape);
                }
                    ;
                const derB = () => {
                    let res = dy;
                    const reduceAxes = broadcast_util.getReductionAxes(b.shape, outShape);
                    if (reduceAxes.length > 0) {
                        res = (0,
                            _sum.sum)(res, reduceAxes);
                    }
                    return (0,
                        _reshape.reshape)(res, b.shape);
                }
                    ;
                return {
                    a: derA,
                    b: derB
                };
            }
        };
        exports.addGradConfig = addGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/broadcast_util": 233,
        "../ops/reshape": 402,
        "../ops/sum": 464
    }],
    88: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.argMaxGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _zeros_like = require("../ops/zeros_like");
        /**
         * @license
         * Copyright 2020 Google Inc. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const argMaxGradConfig = {
            kernelName: _kernel_names.ArgMax,
            inputsToSave: ['x'],
            gradFunc: (dy, saved) => {
                const [x] = saved;
                return {
                    x: () => (0,
                        _zeros_like.zerosLike)(x)
                };
            }
        };
        exports.argMaxGradConfig = argMaxGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/zeros_like": 487
    }],
    89: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.argMinGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _zeros_like = require("../ops/zeros_like");
        /**
         * @license
         * Copyright 2020 Google Inc. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const argMinGradConfig = {
            kernelName: _kernel_names.ArgMin,
            inputsToSave: ['x'],
            gradFunc: (dy, saved) => {
                const [x] = saved;
                return {
                    x: () => (0,
                        _zeros_like.zerosLike)(x)
                };
            }
        };
        exports.argMinGradConfig = argMinGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/zeros_like": 487
    }],
    90: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.asinGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _cast = require("../ops/cast");
        var _div = require("../ops/div");
        var _scalar = require("../ops/scalar");
        var _sqrt = require("../ops/sqrt");
        var _square = require("../ops/square");
        var _sub = require("../ops/sub");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const asinGradConfig = {
            kernelName: _kernel_names.Asin,
            inputsToSave: ['x'],
            gradFunc: (dy, saved) => {
                const [x] = saved;
                return {
                    x: () => (0,
                        _div.div)(dy, (0,
                            _sqrt.sqrt)((0,
                                _sub.sub)((0,
                                    _scalar.scalar)(1), (0,
                                        _square.square)((0,
                                            _cast.cast)(x, 'float32')))))
                };
            }
        };
        exports.asinGradConfig = asinGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/cast": 236,
        "../ops/div": 269,
        "../ops/scalar": 411,
        "../ops/sqrt": 453,
        "../ops/square": 454,
        "../ops/sub": 463
    }],
    91: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.asinhGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _add = require("../ops/add");
        var _cast = require("../ops/cast");
        var _div = require("../ops/div");
        var _scalar = require("../ops/scalar");
        var _sqrt = require("../ops/sqrt");
        var _square = require("../ops/square");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const asinhGradConfig = {
            kernelName: _kernel_names.Asinh,
            inputsToSave: ['x'],
            gradFunc: (dy, saved) => {
                const [x] = saved;
                return {
                    x: () => {
                        const a = (0,
                            _sqrt.sqrt)((0,
                                _add.add)((0,
                                    _scalar.scalar)(1), (0,
                                        _square.square)((0,
                                            _cast.cast)(x, 'float32'))));
                        return (0,
                            _div.div)(dy, a);
                    }
                };
            }
        };
        exports.asinhGradConfig = asinhGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/add": 205,
        "../ops/cast": 236,
        "../ops/div": 269,
        "../ops/scalar": 411,
        "../ops/sqrt": 453,
        "../ops/square": 454
    }],
    92: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.atan2GradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _add = require("../ops/add");
        var _broadcast_util = require("../ops/broadcast_util");
        var _div = require("../ops/div");
        var _mul = require("../ops/mul");
        var _neg = require("../ops/neg");
        var _reshape = require("../ops/reshape");
        var _square = require("../ops/square");
        var _sum = require("../ops/sum");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const atan2GradConfig = {
            kernelName: _kernel_names.Atan2,
            inputsToSave: ['a', 'b'],
            gradFunc: (dy, saved) => {
                const [a, b] = saved;
                const outShape = (0,
                    _broadcast_util.assertAndGetBroadcastShape)(a.shape, b.shape);
                const derA = () => {
                    const d = (0,
                        _add.add)((0,
                            _square.square)(a), (0,
                                _square.square)(b));
                    let res = (0,
                        _mul.mul)(dy, (0,
                            _div.div)(b, d));
                    const reduceAxes = (0,
                        _broadcast_util.getReductionAxes)(a.shape, outShape);
                    if (reduceAxes.length > 0) {
                        res = (0,
                            _sum.sum)(res, reduceAxes);
                    }
                    return (0,
                        _reshape.reshape)(res, a.shape);
                }
                    ;
                const derB = () => {
                    const d = (0,
                        _add.add)((0,
                            _square.square)(a), (0,
                                _square.square)(b));
                    let res = (0,
                        _neg.neg)((0,
                            _mul.mul)(dy, (0,
                                _div.div)(a, d)));
                    const reduceAxes = (0,
                        _broadcast_util.getReductionAxes)(b.shape, outShape);
                    if (reduceAxes.length > 0) {
                        res = (0,
                            _sum.sum)(res, reduceAxes);
                    }
                    return (0,
                        _reshape.reshape)(res, b.shape);
                }
                    ;
                return {
                    a: derA,
                    b: derB
                };
            }
        };
        exports.atan2GradConfig = atan2GradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/add": 205,
        "../ops/broadcast_util": 233,
        "../ops/div": 269,
        "../ops/mul": 362,
        "../ops/neg": 365,
        "../ops/reshape": 402,
        "../ops/square": 454,
        "../ops/sum": 464
    }],
    93: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.atanGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _add = require("../ops/add");
        var _cast = require("../ops/cast");
        var _div = require("../ops/div");
        var _square = require("../ops/square");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const atanGradConfig = {
            kernelName: _kernel_names.Atan,
            inputsToSave: ['x'],
            gradFunc: (dy, saved) => {
                const [x] = saved;
                return {
                    x: () => (0,
                        _div.div)(dy, (0,
                            _add.add)((0,
                                _square.square)((0,
                                    _cast.cast)(x, 'float32')), 1))
                };
            }
        };
        exports.atanGradConfig = atanGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/add": 205,
        "../ops/cast": 236,
        "../ops/div": 269,
        "../ops/square": 454
    }],
    94: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.atanhGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _cast = require("../ops/cast");
        var _div = require("../ops/div");
        var _square = require("../ops/square");
        var _sub = require("../ops/sub");
        var _scalar = require("../ops/scalar");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const atanhGradConfig = {
            kernelName: _kernel_names.Atanh,
            inputsToSave: ['x'],
            gradFunc: (dy, saved) => {
                const [x] = saved;
                return {
                    x: () => (0,
                        _div.div)(dy, (0,
                            _sub.sub)((0,
                                _scalar.scalar)(1), (0,
                                    _square.square)((0,
                                        _cast.cast)(x, 'float32'))))
                };
            }
        };
        exports.atanhGradConfig = atanhGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/cast": 236,
        "../ops/div": 269,
        "../ops/scalar": 411,
        "../ops/square": 454,
        "../ops/sub": 463
    }],
    95: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.avgPool3DGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _avg_pool_3d_grad = require("../ops/avg_pool_3d_grad");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const avgPool3DGradConfig = {
            kernelName: _kernel_names.AvgPool3D,
            inputsToSave: ['x'],
            gradFunc: (dy, saved, attrs) => {
                const [x] = saved;
                const { filterSize, strides, pad, dimRoundingMode } = attrs;
                return {
                    x: () => (0,
                        _avg_pool_3d_grad.avgPool3dGrad)(dy, x, filterSize, strides, pad, dimRoundingMode)
                };
            }
        };
        exports.avgPool3DGradConfig = avgPool3DGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/avg_pool_3d_grad": 219
    }],
    96: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.avgPoolGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _avg_pool_grad = require("../ops/avg_pool_grad");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const avgPoolGradConfig = {
            kernelName: _kernel_names.AvgPool,
            inputsToSave: ['x'],
            gradFunc: (dy, saved, attrs) => {
                const [x] = saved;
                const { filterSize, strides, pad } = attrs;
                return {
                    x: () => (0,
                        _avg_pool_grad.avgPoolGrad)(dy, x, filterSize, strides, pad)
                };
            }
        };
        exports.avgPoolGradConfig = avgPoolGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/avg_pool_grad": 220
    }],
    97: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.batchMatMulGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _mat_mul = require("../ops/mat_mul");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const batchMatMulGradConfig = {
            kernelName: _kernel_names.BatchMatMul,
            inputsToSave: ['a', 'b'],
            gradFunc: (dy, saved, attrs) => {
                const [a, b] = saved;
                const { transposeA, transposeB } = attrs;
                if (!transposeA && !transposeB) {
                    return {
                        a: () => (0,
                            _mat_mul.matMul)(dy, b, false, true),
                        b: () => (0,
                            _mat_mul.matMul)(a, dy, true, false)
                    };
                } else if (!transposeA && transposeB) {
                    return {
                        a: () => (0,
                            _mat_mul.matMul)(dy, b, false, false),
                        b: () => (0,
                            _mat_mul.matMul)(dy, a, true, false)
                    };
                } else if (transposeA && !transposeB) {
                    return {
                        a: () => (0,
                            _mat_mul.matMul)(b, dy, false, true),
                        b: () => (0,
                            _mat_mul.matMul)(a, dy, false, false)
                    };
                } else {
                    return {
                        a: () => (0,
                            _mat_mul.matMul)(b, dy, true, true),
                        b: () => (0,
                            _mat_mul.matMul)(dy, a, true, true)
                    };
                }
            }
        };
        exports.batchMatMulGradConfig = batchMatMulGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/mat_mul": 346
    }],
    98: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.batchToSpaceNDGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _space_to_batch_nd = require("../ops/space_to_batch_nd");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const batchToSpaceNDGradConfig = {
            kernelName: _kernel_names.BatchToSpaceND,
            gradFunc: (dy, saved, attrs) => {
                const { blockShape, crops } = attrs;
                return {
                    x: () => (0,
                        _space_to_batch_nd.spaceToBatchND)(dy, blockShape, crops)
                };
            }
        };
        exports.batchToSpaceNDGradConfig = batchToSpaceNDGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/space_to_batch_nd": 437
    }],
    99: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.broadcastToGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _sum = require("../ops/sum");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const broadcastToGradConfig = {
            kernelName: _kernel_names.BroadcastTo,
            gradFunc: (dy, saved, attrs) => {
                const broadCastToAttrs = attrs;
                const inputShape = broadCastToAttrs.inputShape;
                const outputShape = broadCastToAttrs.shape;
                const reps = Array.from(outputShape);
                for (let i = inputShape.length - 1; i >= 0; i--) {
                    if (inputShape[i] === outputShape[i]) {
                        reps[i] = 1;
                    } else if (inputShape[i] !== 1) {
                        throw new Error(`broadcastTo(): [${inputShape}] cannot be broadcast to [${outputShape}].`);
                    }
                }
                const axes = [];
                for (let i = 0; i < reps.length; i++) {
                    if (reps[i] > 1) {
                        axes.push(i);
                    }
                }
                return {
                    x: () => (0,
                        _sum.sum)(dy, axes, true /* keepDims */
                        )
                };
            }
        };
        exports.broadcastToGradConfig = broadcastToGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/sum": 464
    }],
    100: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.castGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const castGradConfig = {
            kernelName: _kernel_names.Cast,
            gradFunc: dy => {
                return {
                    x: () => dy.clone()
                };
            }
        };
        exports.castGradConfig = castGradConfig;

    }
        , {
        "../kernel_names": 198
    }],
    101: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.ceilGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _zeros_like = require("../ops/zeros_like");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const ceilGradConfig = {
            kernelName: _kernel_names.Ceil,
            gradFunc: dy => {
                // TODO(manrajgrover): Return null for gradients when backprop supports it.
                return {
                    x: () => (0,
                        _zeros_like.zerosLike)(dy)
                };
            }
        };
        exports.ceilGradConfig = ceilGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/zeros_like": 487
    }],
    102: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.clipByValueGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _greater_equal = require("../ops/greater_equal");
        var _less_equal = require("../ops/less_equal");
        var _logical_and = require("../ops/logical_and");
        var _where = require("../ops/where");
        var _zeros_like = require("../ops/zeros_like");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const clipByValueGradConfig = {
            kernelName: _kernel_names.ClipByValue,
            inputsToSave: ['x'],
            gradFunc: (dy, saved, attrs) => {
                const [x] = saved;
                const { clipValueMin, clipValueMax } = attrs;
                return {
                    x: () => (0,
                        _where.where)((0,
                            _logical_and.logicalAnd)((0,
                                _greater_equal.greaterEqual)(x, clipValueMin), (0,
                                    _less_equal.lessEqual)(x, clipValueMax)), dy, (0,
                                        _zeros_like.zerosLike)(dy))
                };
            }
        };
        exports.clipByValueGradConfig = clipByValueGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/greater_equal": 297,
        "../ops/less_equal": 319,
        "../ops/logical_and": 331,
        "../ops/where": 484,
        "../ops/zeros_like": 487
    }],
    103: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.complexAbsGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _Abs_grad = require("./Abs_grad");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const complexAbsGradConfig = {
            kernelName: _kernel_names.ComplexAbs,
            inputsToSave: ['x'],
            gradFunc: _Abs_grad.absGradConfig.gradFunc
        };
        exports.complexAbsGradConfig = complexAbsGradConfig;

    }
        , {
        "../kernel_names": 198,
        "./Abs_grad": 83
    }],
    104: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.concatGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _split = require("../ops/split");
        var _util = require("../util");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const concatGradConfig = {
            kernelName: _kernel_names.Concat,
            saveAllInputs: true,
            gradFunc: (dy, saved, attrs) => {
                const shapes = saved.map(t => t.shape);
                const { axis } = attrs;
                const $axis = (0,
                    _util.parseAxisParam)(axis, saved[0].shape)[0];
                const sizeSplits = shapes.map(s => s[$axis]);
                const derTensors = (0,
                    _split.split)(dy, sizeSplits, $axis);
                return derTensors.map(t => () => t);
            }
        };
        exports.concatGradConfig = concatGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/split": 451,
        "../util": 509
    }],
    105: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.conv2DBackpropInputGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _conv2d = require("../ops/conv2d");
        var _conv2d_backprop_filter = require("../ops/conv2d_backprop_filter");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const conv2DBackpropInputGradConfig = {
            kernelName: _kernel_names.Conv2DBackpropInput,
            inputsToSave: ['dy', 'filter'],
            gradFunc: (ddx, saved, attrs) => {
                const [dy, filter] = saved;
                const { strides, pad, dataFormat, dimRoundingMode } = attrs;
                return {
                    dy: () => (0,
                        _conv2d.conv2d)(ddx, filter, strides, pad, dataFormat, 1 /* dilations */
                            , dimRoundingMode),
                    filter: () => (0,
                        _conv2d_backprop_filter.conv2DBackpropFilter)(ddx, dy, filter.shape, strides, pad, dataFormat, dimRoundingMode)
                };
            }
        };
        exports.conv2DBackpropInputGradConfig = conv2DBackpropInputGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/conv2d": 249,
        "../ops/conv2d_backprop_filter": 250
    }],
    106: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.conv2DGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _conv2d_backprop_filter = require("../ops/conv2d_backprop_filter");
        var _conv2d_backprop_input = require("../ops/conv2d_backprop_input");
        var conv_util = _interopRequireWildcard(require("../ops/conv_util"));
        var util = _interopRequireWildcard(require("../util"));
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const conv2DGradConfig = {
            kernelName: _kernel_names.Conv2D,
            inputsToSave: ['x', 'filter'],
            gradFunc: (dy, saved, attrs) => {
                const [x4D, $filter] = saved;
                const { dilations, strides, pad, dataFormat } = attrs;
                util.assert(conv_util.tupleValuesAreOne(dilations), () => 'Error in gradient of conv2D: dilation rates greater than 1 ' + `are not yet supported in gradients. Got dilations '${dilations}'`);
                return {
                    x: () => (0,
                        _conv2d_backprop_input.conv2DBackpropInput)(x4D.shape, dy, $filter, strides, pad, dataFormat),
                    filter: () => (0,
                        _conv2d_backprop_filter.conv2DBackpropFilter)(x4D, dy, $filter.shape, strides, pad, dataFormat)
                };
            }
        };
        exports.conv2DGradConfig = conv2DGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/conv2d_backprop_filter": 250,
        "../ops/conv2d_backprop_input": 251,
        "../ops/conv_util": 257,
        "../util": 509
    }],
    107: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.conv3DGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _conv3d_backprop_filter = require("../ops/conv3d_backprop_filter");
        var _conv3d_backprop_input = require("../ops/conv3d_backprop_input");
        var _conv_util = require("../ops/conv_util");
        var util = _interopRequireWildcard(require("../util"));
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const conv3DGradConfig = {
            kernelName: _kernel_names.Conv3D,
            inputsToSave: ['x', 'filter'],
            gradFunc: (dy, saved, attrs) => {
                const { dilations, strides, pad } = attrs;
                util.assert((0,
                    _conv_util.tupleValuesAreOne)(dilations), () => 'Error in gradient of conv3D: dilation rates greater than 1 are ' + `not yet supported in gradients. Got dilations '${dilations}'`);
                const [x5D, $filter] = saved;
                return {
                    x: () => (0,
                        _conv3d_backprop_input.conv3DBackpropInput)(x5D.shape, dy, $filter, strides, pad),
                    filter: () => (0,
                        _conv3d_backprop_filter.conv3DBackpropFilter)(x5D, dy, $filter.shape, strides, pad)
                };
            }
        };
        exports.conv3DGradConfig = conv3DGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/conv3d_backprop_filter": 254,
        "../ops/conv3d_backprop_input": 255,
        "../ops/conv_util": 257,
        "../util": 509
    }],
    108: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.cosGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _cast = require("../ops/cast");
        var _mul = require("../ops/mul");
        var _neg = require("../ops/neg");
        var _sin = require("../ops/sin");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const cosGradConfig = {
            kernelName: _kernel_names.Cos,
            inputsToSave: ['x'],
            gradFunc: (dy, saved) => {
                const [x] = saved;
                return {
                    x: () => (0,
                        _mul.mul)((0,
                            _neg.neg)((0,
                                _sin.sin)((0,
                                    _cast.cast)(x, 'float32'))), dy)
                };
            }
        };
        exports.cosGradConfig = cosGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/cast": 236,
        "../ops/mul": 362,
        "../ops/neg": 365,
        "../ops/sin": 427
    }],
    109: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.coshGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _cast = require("../ops/cast");
        var _mul = require("../ops/mul");
        var _sinh = require("../ops/sinh");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const coshGradConfig = {
            kernelName: _kernel_names.Cosh,
            inputsToSave: ['x'],
            gradFunc: (dy, saved) => {
                const [x] = saved;
                return {
                    x: () => (0,
                        _mul.mul)((0,
                            _sinh.sinh)((0,
                                _cast.cast)(x, 'float32')), dy)
                };
            }
        };
        exports.coshGradConfig = coshGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/cast": 236,
        "../ops/mul": 362,
        "../ops/sinh": 428
    }],
    110: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.cumsumGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _axis_util = require("../ops/axis_util");
        var _cumsum = require("../ops/cumsum");
        var _transpose = require("../ops/transpose");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const cumsumGradConfig = {
            kernelName: _kernel_names.Cumsum,
            inputsToSave: ['x'],
            gradFunc: (dy, saved, attrs) => {
                const [x] = saved;
                const { axis, exclusive, reverse } = attrs;
                return {
                    x: () => {
                        const permutation = (0,
                            _axis_util.getAxesPermutation)([axis], x.rank);
                        let out = (0,
                            _cumsum.cumsum)(dy, axis, exclusive, !reverse);
                        if (permutation != null) {
                            out = (0,
                                _transpose.transpose)(out, permutation);
                        }
                        return out;
                    }
                };
            }
        };
        exports.cumsumGradConfig = cumsumGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/axis_util": 221,
        "../ops/cumsum": 261,
        "../ops/transpose": 477
    }],
    111: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.depthwiseConv2dNativeGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var conv_util = _interopRequireWildcard(require("../ops/conv_util"));
        var _depthwise_conv2d_native_backprop_filter = require("../ops/depthwise_conv2d_native_backprop_filter");
        var _depthwise_conv2d_native_backprop_input = require("../ops/depthwise_conv2d_native_backprop_input");
        var util = _interopRequireWildcard(require("../util"));
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const depthwiseConv2dNativeGradConfig = {
            kernelName: _kernel_names.DepthwiseConv2dNative,
            inputsToSave: ['x', 'filter'],
            gradFunc: (dy, saved, attrs) => {
                const { dilations, strides, pad, dimRoundingMode } = attrs;
                const $dilations = dilations == null ? [1, 1] : dilations;
                util.assert(conv_util.tupleValuesAreOne($dilations), () => 'Error in gradient of depthwiseConv2dNative: dilation rates ' + `greater than 1 are not yet supported. Got dilations ` + `'${$dilations}'`);
                const [x, filter] = saved;
                util.assert(x.rank === 4, () => `Error in gradient of depthwiseConv2dNative: input must be ` + `rank 4, but got rank ${x.rank}.`);
                util.assert(filter.rank === 4, () => `Error in gradient of depthwiseConv2dNative: filter must be ` + `rank 4, but got rank ${filter.rank}.`);
                util.assert(x.shape[3] === filter.shape[2], () => `Error in gradient of depthwiseConv2d: number of input ` + `channels (${x.shape[3]}) must match the inChannels dimension ` + `in filter ${filter.shape[2]}.`);
                util.assert(conv_util.eitherStridesOrDilationsAreOne(strides, $dilations), () => 'Error in gradient of depthwiseConv2d: Either strides or ' + `dilations must be  1. Got strides ${strides} and dilations ` + `'${$dilations}'.`);
                conv_util.checkPadOnDimRoundingMode('depthwiseConv2d', pad, dimRoundingMode);
                return {
                    x: () => (0,
                        _depthwise_conv2d_native_backprop_input.depthwiseConv2dNativeBackpropInput)(x.shape, dy, filter, strides, pad, $dilations, dimRoundingMode),
                    filter: () => (0,
                        _depthwise_conv2d_native_backprop_filter.depthwiseConv2dNativeBackpropFilter)(x, dy, filter.shape, strides, pad, $dilations, dimRoundingMode)
                };
            }
        };
        exports.depthwiseConv2dNativeGradConfig = depthwiseConv2dNativeGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/conv_util": 257,
        "../ops/depthwise_conv2d_native_backprop_filter": 265,
        "../ops/depthwise_conv2d_native_backprop_input": 266,
        "../util": 509
    }],
    112: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.dilation2dGradConfig = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const dilation2dGradConfig = {
            kernelName: _kernel_names.Dilation2D,
            inputsToSave: ['x', 'filter'],
            gradFunc: (dy, saved, attrs) => {
                const [x, filter] = saved;
                const inputInputs = {
                    x,
                    filter,
                    dy
                };
                const filterInputs = {
                    x,
                    filter,
                    dy
                };
                return {
                    x: () => _engine.ENGINE.runKernel(_kernel_names.Dilation2DBackpropInput, inputInputs, attrs),
                    filter: () => _engine.ENGINE.runKernel(_kernel_names.Dilation2DBackpropFilter, filterInputs, attrs)
                };
            }
        };
        exports.dilation2dGradConfig = dilation2dGradConfig;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198
    }],
    113: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.eluGradConfig = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const eluGradConfig = {
            kernelName: _kernel_names.Elu,
            outputsToSave: [true],
            gradFunc: (dy, saved) => {
                const [y] = saved;
                const inputs = {
                    dy,
                    y
                };
                return {
                    x: () => _engine.ENGINE.runKernel(_kernel_names.EluGrad, inputs)
                };
            }
        };
        exports.eluGradConfig = eluGradConfig;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198
    }],
    114: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.erfGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _exp = require("../ops/exp");
        var _mul = require("../ops/mul");
        var _neg = require("../ops/neg");
        var _square = require("../ops/square");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const erfGradConfig = {
            kernelName: _kernel_names.Erf,
            inputsToSave: ['x'],
            gradFunc: (dy, saved) => {
                const [x] = saved;
                const a = (0,
                    _mul.mul)((0,
                        _exp.exp)((0,
                            _neg.neg)((0,
                                _square.square)(x))), 2 / Math.sqrt(Math.PI));
                return {
                    x: () => (0,
                        _mul.mul)(dy, a)
                };
            }
        };
        exports.erfGradConfig = erfGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/exp": 280,
        "../ops/mul": 362,
        "../ops/neg": 365,
        "../ops/square": 454
    }],
    115: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.expGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _mul = require("../ops/mul");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const expGradConfig = {
            kernelName: _kernel_names.Exp,
            outputsToSave: [true],
            gradFunc: (dy, saved) => {
                const [y] = saved;
                return {
                    x: () => (0,
                        _mul.mul)(dy, y)
                };
            }
        };
        exports.expGradConfig = expGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/mul": 362
    }],
    116: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.expandDimsGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _reshape = require("../ops/reshape");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const expandDimsGradConfig = {
            kernelName: _kernel_names.ExpandDims,
            inputsToSave: ['input'],
            gradFunc: (dy, saved) => {
                const [input] = saved;
                return {
                    input: () => (0,
                        _reshape.reshape)(dy, input.shape)
                };
            }
        };
        exports.expandDimsGradConfig = expandDimsGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/reshape": 402
    }],
    117: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.expm1GradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _exp = require("../ops/exp");
        var _mul = require("../ops/mul");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const expm1GradConfig = {
            kernelName: _kernel_names.Expm1,
            inputsToSave: ['x'],
            gradFunc: (dy, saved) => {
                const [x] = saved;
                return {
                    x: () => (0,
                        _mul.mul)(dy, (0,
                            _exp.exp)(x))
                };
            }
        };
        exports.expm1GradConfig = expm1GradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/exp": 280,
        "../ops/mul": 362
    }],
    118: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.floorDivGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _broadcast_util = require("../ops/broadcast_util");
        var _cast = require("../ops/cast");
        var _div = require("../ops/div");
        var _mul = require("../ops/mul");
        var _neg = require("../ops/neg");
        var _reshape = require("../ops/reshape");
        var _square = require("../ops/square");
        var _sum = require("../ops/sum");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const floorDivGradConfig = {
            kernelName: _kernel_names.FloorDiv,
            inputsToSave: ['a', 'b'],
            gradFunc: (dy, saved) => {
                const [a, b] = saved;
                const outShape = (0,
                    _broadcast_util.assertAndGetBroadcastShape)(a.shape, b.shape);
                const derA = () => {
                    const res = (0,
                        _div.div)(dy, (0,
                            _cast.cast)(b, 'float32'));
                    const reduceAxes = (0,
                        _broadcast_util.getReductionAxes)(a.shape, outShape);
                    if (reduceAxes.length > 0) {
                        return (0,
                            _reshape.reshape)((0,
                                _sum.sum)(res, reduceAxes), a.shape);
                    }
                    return res;
                }
                    ;
                const derB = () => {
                    let res = (0,
                        _mul.mul)(dy, (0,
                            _cast.cast)(a, 'float32'));
                    const reduceAxes = (0,
                        _broadcast_util.getReductionAxes)(b.shape, outShape);
                    if (reduceAxes.length > 0) {
                        res = (0,
                            _reshape.reshape)((0,
                                _sum.sum)(res, reduceAxes), b.shape);
                    }
                    const tmp = (0,
                        _square.square)(b);
                    return (0,
                        _neg.neg)((0,
                            _div.div)(res, (0,
                                _cast.cast)(tmp, 'float32')));
                }
                    ;
                return {
                    a: derA,
                    b: derB
                };
            }
        };
        exports.floorDivGradConfig = floorDivGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/broadcast_util": 233,
        "../ops/cast": 236,
        "../ops/div": 269,
        "../ops/mul": 362,
        "../ops/neg": 365,
        "../ops/reshape": 402,
        "../ops/square": 454,
        "../ops/sum": 464
    }],
    119: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.floorGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _zeros_like = require("../ops/zeros_like");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const floorGradConfig = {
            kernelName: _kernel_names.Floor,
            gradFunc: dy => {
                return {
                    x: () => (0,
                        _zeros_like.zerosLike)(dy)
                };
            }
        };
        exports.floorGradConfig = floorGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/zeros_like": 487
    }],
    120: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.fusedBatchNormGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _add = require("../ops/add");
        var _broadcast_util = require("../ops/broadcast_util");
        var _mul = require("../ops/mul");
        var _reshape = require("../ops/reshape");
        var _rsqrt = require("../ops/rsqrt");
        var _scalar = require("../ops/scalar");
        var _sub = require("../ops/sub");
        var _sum = require("../ops/sum");
        var _tile = require("../ops/tile");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const fusedBatchNormGradConfig = {
            kernelName: _kernel_names.FusedBatchNorm,
            inputsToSave: ['x', 'mean', 'variance', 'scale'],
            gradFunc: (dy, saved, attrs) => {
                const { varianceEpsilon } = attrs;
                const [x, mean, variance, scale] = saved;
                const scaleValue = scale == null ? (0,
                    _scalar.scalar)(1) : scale;
                const reductionAxes = (0,
                    _broadcast_util.getReductionAxes)(mean.shape, x.shape);
                const tileShape = [];
                if (mean.rank === 1) {
                    for (let i = 0; i < x.shape.length - 1; ++i) {
                        tileShape.push(x.shape[i]);
                    }
                    tileShape.push(1);
                }
                const xMinusMean = (0,
                    _sub.sub)(x, mean);
                const dyTimesScaleValue = (0,
                    _mul.mul)(dy, scaleValue);
                const oneOverSqrtVariance = (0,
                    _rsqrt.rsqrt)((0,
                        _add.add)(variance, (0,
                            _scalar.scalar)(varianceEpsilon)));
                const minusHalfRCube = (0,
                    _mul.mul)((0,
                        _mul.mul)((0,
                            _mul.mul)(oneOverSqrtVariance, oneOverSqrtVariance), oneOverSqrtVariance), (0,
                                _scalar.scalar)(-0.5));
                const derX = () => {
                    if (mean.rank === 1) {
                        return (0,
                            _reshape.reshape)((0,
                                _mul.mul)((0,
                                    _mul.mul)(dy, (0,
                                        _tile.tile)((0,
                                            _reshape.reshape)(oneOverSqrtVariance, [1, 1, 1, mean.shape[0]]), tileShape)), scaleValue), x.shape);
                    } else {
                        return (0,
                            _reshape.reshape)((0,
                                _mul.mul)((0,
                                    _mul.mul)(dy, oneOverSqrtVariance), scaleValue), x.shape);
                    }
                }
                    ;
                const derMean = () => {
                    let meanDer = (0,
                        _mul.mul)((0,
                            _mul.mul)(oneOverSqrtVariance, (0,
                                _scalar.scalar)(-1)), dyTimesScaleValue);
                    if (mean.rank === 1) {
                        meanDer = (0,
                            _sum.sum)(meanDer, reductionAxes);
                    }
                    return (0,
                        _reshape.reshape)(meanDer, mean.shape);
                }
                    ;
                const derVariance = () => {
                    let varianceDer = (0,
                        _mul.mul)((0,
                            _mul.mul)(minusHalfRCube, xMinusMean), dyTimesScaleValue);
                    if (mean.rank === 1) {
                        varianceDer = (0,
                            _sum.sum)(varianceDer, reductionAxes);
                    }
                    return (0,
                        _reshape.reshape)(varianceDer, mean.shape);
                }
                    ;
                const derScale = () => {
                    const xMinusMean2TimesRsqrt = (0,
                        _mul.mul)(xMinusMean, oneOverSqrtVariance);
                    let scaleDer = (0,
                        _mul.mul)(dy, xMinusMean2TimesRsqrt);
                    if (mean.rank === 1) {
                        scaleDer = (0,
                            _sum.sum)(scaleDer, reductionAxes);
                    }
                    return (0,
                        _reshape.reshape)(scaleDer, mean.shape);
                }
                    ;
                const derOffset = () => {
                    let offsetDer = dy;
                    if (mean.rank === 1) {
                        offsetDer = (0,
                            _sum.sum)(offsetDer, reductionAxes);
                    }
                    return (0,
                        _reshape.reshape)(offsetDer, mean.shape);
                }
                    ;
                return {
                    x: derX,
                    mean: derMean,
                    variance: derVariance,
                    scale: derScale,
                    offset: derOffset
                };
            }
        };
        exports.fusedBatchNormGradConfig = fusedBatchNormGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/add": 205,
        "../ops/broadcast_util": 233,
        "../ops/mul": 362,
        "../ops/reshape": 402,
        "../ops/rsqrt": 410,
        "../ops/scalar": 411,
        "../ops/sub": 463,
        "../ops/sum": 464,
        "../ops/tile": 475
    }],
    121: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.gatherGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _axis_util = require("../ops/axis_util");
        var _reshape = require("../ops/reshape");
        var _transpose = require("../ops/transpose");
        var _unsorted_segment_sum = require("../ops/unsorted_segment_sum");
        var _util = require("../util");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const gatherGradConfig = {
            kernelName: _kernel_names.GatherV2,
            inputsToSave: ['x', 'indices'],
            gradFunc: (dy, saved, attrs) => {
                const [x, indices] = saved;
                const { axis } = attrs;
                const parsedAxis = (0,
                    _util.parseAxisParam)(axis, x.shape)[0];
                const derX = () => {
                    const paramsShape = x.shape;
                    const indicesSize = indices.size;
                    const outerShape = paramsShape.slice(0, parsedAxis);
                    const outerDims = outerShape.length;
                    const innerShape = paramsShape.slice(axis, paramsShape.length).slice(1);
                    const innerDims = innerShape.length;
                    const outerAxesIndices = arrayRange(0, outerDims);
                    const innerAxesIndices = arrayRange(outerDims + 1, outerDims + 1 + innerDims);
                    const valuesShape = arrayConcat([outerShape, [indicesSize], innerShape]);
                    const values = (0,
                        _reshape.reshape)(dy, valuesShape);
                    const reshapedIndices = (0,
                        _reshape.reshape)(indices, [indicesSize]);
                    const transposeDims = arrayConcat([[outerDims], outerAxesIndices, innerAxesIndices]);
                    const valuesTranspose = (0,
                        _transpose.transpose)(values, transposeDims);
                    let paramsGrad = (0,
                        _unsorted_segment_sum.unsortedSegmentSum)(valuesTranspose, reshapedIndices, x.shape[parsedAxis]);
                    const invertTransposeDims = (0,
                        _axis_util.getUndoAxesPermutation)(transposeDims);
                    paramsGrad = (0,
                        _transpose.transpose)(paramsGrad, invertTransposeDims);
                    return paramsGrad;
                }
                    ;
                return {
                    x: derX,
                    indices: () => indices
                };
            }
        };
        exports.gatherGradConfig = gatherGradConfig;
        function arrayRange(start, stop) {
            const result = [];
            for (let i = start; i < stop; ++i) {
                result.push(i);
            }
            return result;
        }
        function arrayConcat(arrays) {
            const result = [];
            for (let i = 0; i < arrays.length; ++i) {
                for (let j = 0; j < arrays[i].length; ++j) {
                    result.push(arrays[i][j]);
                }
            }
            return result;
        }

    }
        , {
        "../kernel_names": 198,
        "../ops/axis_util": 221,
        "../ops/reshape": 402,
        "../ops/transpose": 477,
        "../ops/unsorted_segment_sum": 480,
        "../util": 509
    }],
    122: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.greaterEqualGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _zeros_like = require("../ops/zeros_like");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const greaterEqualGradConfig = {
            kernelName: _kernel_names.GreaterEqual,
            inputsToSave: ['a', 'b'],
            gradFunc: (dy, saved) => {
                const [a, b] = saved;
                return {
                    a: () => (0,
                        _zeros_like.zerosLike)(a),
                    b: () => (0,
                        _zeros_like.zerosLike)(b)
                };
            }
        };
        exports.greaterEqualGradConfig = greaterEqualGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/zeros_like": 487
    }],
    123: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.identityGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _cast = require("../ops/cast");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const identityGradConfig = {
            kernelName: _kernel_names.Identity,
            gradFunc: dy => {
                return {
                    x: () => (0,
                        _cast.cast)(dy, 'float32')
                };
            }
        };
        exports.identityGradConfig = identityGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/cast": 236
    }],
    124: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.isFiniteGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _zeros_like = require("../ops/zeros_like");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const isFiniteGradConfig = {
            kernelName: _kernel_names.IsFinite,
            gradFunc: dy => {
                // TODO(nsthorat): Let gradients be null for cases where we want to stop
                // backpropgation.
                return {
                    x: () => (0,
                        _zeros_like.zerosLike)(dy)
                };
            }
        };
        exports.isFiniteGradConfig = isFiniteGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/zeros_like": 487
    }],
    125: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.isInfGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _zeros_like = require("../ops/zeros_like");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const isInfGradConfig = {
            kernelName: _kernel_names.IsInf,
            gradFunc: dy => {
                // TODO(nsthorat): Let gradients be null for cases where we want to stop
                // backpropgation.
                return {
                    x: () => (0,
                        _zeros_like.zerosLike)(dy)
                };
            }
        };
        exports.isInfGradConfig = isInfGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/zeros_like": 487
    }],
    126: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.isNanGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _zeros_like = require("../ops/zeros_like");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const isNanGradConfig = {
            kernelName: _kernel_names.IsNan,
            gradFunc: dy => {
                // TODO(nsthorat): Let gradients be null for cases where we want to stop
                // backpropgation.
                return {
                    x: () => (0,
                        _zeros_like.zerosLike)(dy)
                };
            }
        };
        exports.isNanGradConfig = isNanGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/zeros_like": 487
    }],
    127: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.lrnGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _local_response_normalization_backprop = require("../ops/local_response_normalization_backprop");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const lrnGradConfig = {
            kernelName: _kernel_names.LRN,
            inputsToSave: ['x'],
            outputsToSave: [true],
            gradFunc: (dy, saved, attrs) => {
                const [x, y] = saved;
                const { depthRadius, bias, alpha, beta } = attrs;
                return {
                    x: () => (0,
                        _local_response_normalization_backprop.localResponseNormalizationBackprop)(x, y, dy, depthRadius, bias, alpha, beta)
                };
            }
        };
        exports.lrnGradConfig = lrnGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/local_response_normalization_backprop": 325
    }],
    128: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.leakyReluGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _greater = require("../ops/greater");
        var _mul = require("../ops/mul");
        var _where = require("../ops/where");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const leakyReluGradConfig = {
            kernelName: _kernel_names.LeakyRelu,
            inputsToSave: ['x'],
            gradFunc: (dy, saved, attrs) => {
                const [x] = saved;
                const { alpha } = attrs;
                const mask = (0,
                    _greater.greater)(x, 0);
                // Returns `gradients * (features > 0) + alpha * gradients * (features <=
                // 0)`.
                return {
                    x: () => (0,
                        _where.where)(mask, dy, (0,
                            _mul.mul)(dy, alpha))
                };
            }
        };
        exports.leakyReluGradConfig = leakyReluGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/greater": 296,
        "../ops/mul": 362,
        "../ops/where": 484
    }],
    129: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.log1pGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _add = require("../ops/add");
        var _div = require("../ops/div");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const log1pGradConfig = {
            kernelName: _kernel_names.Log1p,
            inputsToSave: ['x'],
            gradFunc: (dy, saved) => {
                const [x] = saved;
                return {
                    x: () => (0,
                        _div.div)(dy, (0,
                            _add.add)(x, 1))
                };
            }
        };
        exports.log1pGradConfig = log1pGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/add": 205,
        "../ops/div": 269
    }],
    130: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.logSoftmaxGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _exp = require("../ops/exp");
        var _mul = require("../ops/mul");
        var _sub = require("../ops/sub");
        var _sum = require("../ops/sum");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const logSoftmaxGradConfig = {
            kernelName: _kernel_names.LogSoftmax,
            inputsToSave: [],
            outputsToSave: [true],
            gradFunc: (dy, saved, attrs) => {
                const [value] = saved;
                const { axis } = attrs;
                return {
                    logits: () => {
                        const keepDims = true;
                        const softmax = (0,
                            _exp.exp)(value);
                        return (0,
                            _sub.sub)(dy, (0,
                                _mul.mul)((0,
                                    _sum.sum)(dy, axis, keepDims), softmax));
                    }
                };
            }
        };
        exports.logSoftmaxGradConfig = logSoftmaxGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/exp": 280,
        "../ops/mul": 362,
        "../ops/sub": 463,
        "../ops/sum": 464
    }],
    131: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.logGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _cast = require("../ops/cast");
        var _div = require("../ops/div");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const logGradConfig = {
            kernelName: _kernel_names.Log,
            inputsToSave: ['x'],
            gradFunc: (dy, saved) => {
                const [x] = saved;
                return {
                    x: () => (0,
                        _div.div)(dy, (0,
                            _cast.cast)(x, 'float32'))
                };
            }
        };
        exports.logGradConfig = logGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/cast": 236,
        "../ops/div": 269
    }],
    132: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.maxPool3DGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _max_pool_3d_grad = require("../ops/max_pool_3d_grad");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const maxPool3DGradConfig = {
            kernelName: _kernel_names.MaxPool3D,
            inputsToSave: ['x'],
            outputsToSave: [true],
            gradFunc: (dy, saved, attrs) => {
                const [x, y] = saved;
                const { filterSize, strides, pad, dimRoundingMode } = attrs;
                return {
                    x: () => (0,
                        _max_pool_3d_grad.maxPool3dGrad)(dy, x, y, filterSize, strides, pad, dimRoundingMode)
                };
            }
        };
        exports.maxPool3DGradConfig = maxPool3DGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/max_pool_3d_grad": 350
    }],
    133: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.maxPoolGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _max_pool_grad = require("../ops/max_pool_grad");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const maxPoolGradConfig = {
            kernelName: _kernel_names.MaxPool,
            inputsToSave: ['x'],
            outputsToSave: [true],
            gradFunc: (dy, saved, attrs) => {
                const [x, y] = saved;
                const { filterSize, strides, pad } = attrs;
                return {
                    x: () => (0,
                        _max_pool_grad.maxPoolGrad)(dy, x, y, filterSize, strides, pad)
                };
            }
        };
        exports.maxPoolGradConfig = maxPoolGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/max_pool_grad": 351
    }],
    134: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.maxGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var util = _interopRequireWildcard(require("../util"));
        var _min_max_grad_util = require("./min_max_grad_util");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const maxGradConfig = {
            kernelName: _kernel_names.Max,
            inputsToSave: ['x'],
            outputsToSave: [true],
            gradFunc: (dy, saved, attrs) => {
                const maxAttrs = attrs;
                const { reductionIndices } = maxAttrs;
                const x = saved[0];
                const y = saved[1];
                const origAxes = util.parseAxisParam(reductionIndices, x.shape);
                const maxGrad = (0,
                    _min_max_grad_util.gradForMinAndMax)(dy, y, x, origAxes);
                return {
                    x: () => {
                        return maxGrad['x']();
                    }
                };
            }
        };
        exports.maxGradConfig = maxGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../util": 509,
        "./min_max_grad_util": 184
    }],
    135: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.maximumGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _cast = require("../ops/cast");
        var _greater_equal = require("../ops/greater_equal");
        var _less = require("../ops/less");
        var _mul = require("../ops/mul");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const maximumGradConfig = {
            kernelName: _kernel_names.Maximum,
            inputsToSave: ['a', 'b'],
            gradFunc: (dy, saved) => {
                const [a, b] = saved;
                const derA = () => (0,
                    _mul.mul)(dy, (0,
                        _cast.cast)((0,
                            _greater_equal.greaterEqual)(a, b), 'float32'));
                const derB = () => (0,
                    _mul.mul)(dy, (0,
                        _cast.cast)((0,
                            _less.less)(a, b), 'float32'));
                return {
                    a: derA,
                    b: derB
                };
            }
        };
        exports.maximumGradConfig = maximumGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/cast": 236,
        "../ops/greater_equal": 297,
        "../ops/less": 318,
        "../ops/mul": 362
    }],
    136: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.meanGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _axis_util = require("../ops/axis_util");
        var _div = require("../ops/div");
        var _mul = require("../ops/mul");
        var _ones = require("../ops/ones");
        var _reshape = require("../ops/reshape");
        var util = _interopRequireWildcard(require("../util"));
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const meanGradConfig = {
            kernelName: _kernel_names.Mean,
            inputsToSave: ['x'],
            gradFunc: (dy, saved, attrs) => {
                const [x] = saved;
                const { axis } = attrs;
                const axes = util.parseAxisParam(axis, x.shape);
                const shapes = (0,
                    _axis_util.computeOutAndReduceShapes)(x.shape, axes);
                const reduceShape = shapes[1];
                const reduceSize = util.sizeFromShape(reduceShape);
                const derX = () => {
                    const expandedDyShape = x.shape.slice();
                    axes.forEach(axis => {
                        expandedDyShape[axis] = 1;
                    }
                    );
                    const expandedDy = (0,
                        _reshape.reshape)(dy, expandedDyShape);
                    const res = (0,
                        _div.div)((0,
                            _mul.mul)(expandedDy, (0,
                                _ones.ones)(x.shape, 'float32')), reduceSize);
                    return res;
                }
                    ;
                return {
                    x: derX
                };
            }
        };
        exports.meanGradConfig = meanGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/axis_util": 221,
        "../ops/div": 269,
        "../ops/mul": 362,
        "../ops/ones": 370,
        "../ops/reshape": 402,
        "../util": 509
    }],
    137: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.minGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var util = _interopRequireWildcard(require("../util"));
        var _min_max_grad_util = require("./min_max_grad_util");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const minGradConfig = {
            kernelName: _kernel_names.Min,
            inputsToSave: ['x'],
            outputsToSave: [true],
            gradFunc: (dy, saved, attrs) => {
                const minAttrs = attrs;
                const { axis } = minAttrs;
                const [x, y] = saved;
                const origAxes = util.parseAxisParam(axis, x.shape);
                const minGrad = (0,
                    _min_max_grad_util.gradForMinAndMax)(dy, y, x, origAxes);
                return {
                    x: () => {
                        return minGrad['x']();
                    }
                };
            }
        };
        exports.minGradConfig = minGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../util": 509,
        "./min_max_grad_util": 184
    }],
    138: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.minimumGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _cast = require("../ops/cast");
        var _greater = require("../ops/greater");
        var _less_equal = require("../ops/less_equal");
        var _mul = require("../ops/mul");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const minimumGradConfig = {
            kernelName: _kernel_names.Minimum,
            inputsToSave: ['a', 'b'],
            gradFunc: (dy, saved) => {
                const [a, b] = saved;
                const derA = () => (0,
                    _mul.mul)(dy, (0,
                        _cast.cast)((0,
                            _less_equal.lessEqual)(a, b), 'float32'));
                const derB = () => (0,
                    _mul.mul)(dy, (0,
                        _cast.cast)((0,
                            _greater.greater)(a, b), 'float32'));
                return {
                    a: derA,
                    b: derB
                };
            }
        };
        exports.minimumGradConfig = minimumGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/cast": 236,
        "../ops/greater": 296,
        "../ops/less_equal": 319,
        "../ops/mul": 362
    }],
    139: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.mirrorPadGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _slice = require("../ops/slice");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const mirrorPadGradConfig = {
            kernelName: _kernel_names.MirrorPad,
            inputsToSave: ['x'],
            gradFunc: (dy, saved, attrs) => {
                // Pad introduces values around the original tensor, so the gradient
                // slices the original shape out of the gradient.
                const x = saved[0];
                const { paddings } = attrs;
                const begin = paddings.map(p => p[0]);
                return {
                    x: () => (0,
                        _slice.slice)(dy, begin, x.shape)
                };
            }
        };
        exports.mirrorPadGradConfig = mirrorPadGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/slice": 429
    }],
    140: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.modGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _broadcast_util = require("../ops/broadcast_util");
        var _div = require("../ops/div");
        var _floor = require("../ops/floor");
        var _mul = require("../ops/mul");
        var _neg = require("../ops/neg");
        var _reshape = require("../ops/reshape");
        var _sum = require("../ops/sum");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const modGradConfig = {
            kernelName: _kernel_names.Mod,
            inputsToSave: ['a', 'b'],
            gradFunc: (dy, saved) => {
                const [a, b] = saved;
                const outShape = (0,
                    _broadcast_util.assertAndGetBroadcastShape)(a.shape, b.shape);
                const derA = () => {
                    const reduceAxes = (0,
                        _broadcast_util.getReductionAxes)(a.shape, outShape);
                    if (reduceAxes.length > 0) {
                        return (0,
                            _reshape.reshape)((0,
                                _sum.sum)(dy, reduceAxes), a.shape);
                    }
                    return dy;
                }
                    ;
                const derB = () => {
                    const res = (0,
                        _mul.mul)(dy, (0,
                            _neg.neg)((0,
                                _floor.floor)((0,
                                    _div.div)(a, b))));
                    const reduceAxes = (0,
                        _broadcast_util.getReductionAxes)(b.shape, outShape);
                    if (reduceAxes.length > 0) {
                        return (0,
                            _reshape.reshape)((0,
                                _sum.sum)(res, reduceAxes), b.shape);
                    }
                    return res;
                }
                    ;
                return {
                    a: derA,
                    b: derB
                };
            }
        };
        exports.modGradConfig = modGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/broadcast_util": 233,
        "../ops/div": 269,
        "../ops/floor": 285,
        "../ops/mul": 362,
        "../ops/neg": 365,
        "../ops/reshape": 402,
        "../ops/sum": 464
    }],
    141: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.multiplyGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _broadcast_util = require("../ops/broadcast_util");
        var _cast = require("../ops/cast");
        var _mul = require("../ops/mul");
        var _reshape = require("../ops/reshape");
        var _sum = require("../ops/sum");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const multiplyGradConfig = {
            kernelName: _kernel_names.Multiply,
            inputsToSave: ['a', 'b'],
            gradFunc: (dy, saved) => {
                const [a, b] = saved;
                const outShape = (0,
                    _broadcast_util.assertAndGetBroadcastShape)(a.shape, b.shape);
                const derA = () => {
                    const res = (0,
                        _mul.mul)(dy, (0,
                            _cast.cast)(b, 'float32'));
                    const reduceAxes = (0,
                        _broadcast_util.getReductionAxes)(a.shape, outShape);
                    if (reduceAxes.length > 0) {
                        return (0,
                            _reshape.reshape)((0,
                                _sum.sum)(res, reduceAxes), a.shape);
                    }
                    return res;
                }
                    ;
                const derB = () => {
                    const res = (0,
                        _mul.mul)(dy, (0,
                            _cast.cast)(a, 'float32'));
                    const reduceAxes = (0,
                        _broadcast_util.getReductionAxes)(b.shape, outShape);
                    if (reduceAxes.length > 0) {
                        return (0,
                            _reshape.reshape)((0,
                                _sum.sum)(res, reduceAxes), b.shape);
                    }
                    return res;
                }
                    ;
                return {
                    a: derA,
                    b: derB
                };
            }
        };
        exports.multiplyGradConfig = multiplyGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/broadcast_util": 233,
        "../ops/cast": 236,
        "../ops/mul": 362,
        "../ops/reshape": 402,
        "../ops/sum": 464
    }],
    142: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.negGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _neg = require("../ops/neg");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const negGradConfig = {
            kernelName: _kernel_names.Neg,
            gradFunc: dy => {
                return {
                    x: () => (0,
                        _neg.neg)(dy)
                };
            }
        };
        exports.negGradConfig = negGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/neg": 365
    }],
    143: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.oneHotGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _zeros = require("../ops/zeros");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const oneHotGradConfig = {
            kernelName: _kernel_names.OneHot,
            inputsToSave: ['indices'],
            gradFunc: (dy, saved) => {
                const indices = saved[0];
                return {
                    indices: () => (0,
                        _zeros.zeros)(indices.shape, 'float32')
                };
            }
        };
        exports.oneHotGradConfig = oneHotGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/zeros": 486
    }],
    144: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.onesLikeGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _zeros_like = require("../ops/zeros_like");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const onesLikeGradConfig = {
            kernelName: _kernel_names.OnesLike,
            gradFunc: dy => {
                return {
                    x: () => (0,
                        _zeros_like.zerosLike)(dy)
                };
            }
        };
        exports.onesLikeGradConfig = onesLikeGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/zeros_like": 487
    }],
    145: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.packGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _unstack = require("../ops/unstack");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const packGradConfig = {
            kernelName: _kernel_names.Pack,
            saveAllInputs: true,
            gradFunc: (dy, saved, attrs) => {
                const { axis } = attrs;
                const derTensors = (0,
                    _unstack.unstack)(dy, axis);
                return derTensors.map(t => () => t);
            }
        };
        exports.packGradConfig = packGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/unstack": 481
    }],
    146: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.padV2GradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _slice = require("../ops/slice");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const padV2GradConfig = {
            kernelName: _kernel_names.PadV2,
            inputsToSave: ['x'],
            gradFunc: (dy, saved, attrs) => {
                // Pad introduces values around the original tensor, so the gradient
                // slices the original shape out of the gradient.
                const x = saved[0];
                const { paddings } = attrs;
                const begin = paddings.map(p => p[0]);
                return {
                    x: () => (0,
                        _slice.slice)(dy, begin, x.shape)
                };
            }
        };
        exports.padV2GradConfig = padV2GradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/slice": 429
    }],
    147: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.powGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var broadcast_util = _interopRequireWildcard(require("../ops/broadcast_util"));
        var _cast = require("../ops/cast");
        var _greater = require("../ops/greater");
        var _log = require("../ops/log");
        var _mul = require("../ops/mul");
        var _pow = require("../ops/pow");
        var _reshape = require("../ops/reshape");
        var _scalar = require("../ops/scalar");
        var _sub = require("../ops/sub");
        var _sum = require("../ops/sum");
        var _where = require("../ops/where");
        var _zeros_like = require("../ops/zeros_like");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const powGradConfig = {
            kernelName: _kernel_names.Pow,
            inputsToSave: ['a', 'b'],
            outputsToSave: [true],
            gradFunc: (dy, saved) => {
                const [a, b, y] = saved;
                const base = a;
                const exp = b;
                const outShape = broadcast_util.assertAndGetBroadcastShape(base.shape, exp.shape);
                const derBase = () => {
                    const expFloat = (0,
                        _cast.cast)(exp, 'float32');
                    let res = (0,
                        _mul.mul)(dy, (0,
                            _mul.mul)(expFloat, (0,
                                _pow.pow)(base, (0,
                                    _sub.sub)(expFloat, (0,
                                        _scalar.scalar)(1)))));
                    const reduceAxes = broadcast_util.getReductionAxes(base.shape, outShape);
                    if (reduceAxes.length > 0) {
                        res = (0,
                            _sum.sum)(res, reduceAxes);
                    }
                    return (0,
                        _reshape.reshape)(res, base.shape);
                }
                    ;
                const derExp = () => {
                    const condition = (0,
                        _greater.greater)(base, 0);
                    const logBase = (0,
                        _where.where)(condition, (0,
                            _log.log)(base), (0,
                                _zeros_like.zerosLike)(base));
                    let res = (0,
                        _mul.mul)(dy, (0,
                            _mul.mul)(y, logBase));
                    const reduceAxes = broadcast_util.getReductionAxes(exp.shape, outShape);
                    if (reduceAxes.length > 0) {
                        res = (0,
                            _sum.sum)(res, reduceAxes);
                    }
                    return (0,
                        _reshape.reshape)(res, exp.shape);
                }
                    ;
                return {
                    a: derBase,
                    b: derExp
                };
            }
        };
        exports.powGradConfig = powGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/broadcast_util": 233,
        "../ops/cast": 236,
        "../ops/greater": 296,
        "../ops/log": 326,
        "../ops/mul": 362,
        "../ops/pow": 382,
        "../ops/reshape": 402,
        "../ops/scalar": 411,
        "../ops/sub": 463,
        "../ops/sum": 464,
        "../ops/where": 484,
        "../ops/zeros_like": 487
    }],
    148: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.preluGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _broadcast_util = require("../ops/broadcast_util");
        var _greater = require("../ops/greater");
        var _mul = require("../ops/mul");
        var _reshape = require("../ops/reshape");
        var _sum = require("../ops/sum");
        var _where = require("../ops/where");
        var _zeros_like = require("../ops/zeros_like");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const preluGradConfig = {
            kernelName: _kernel_names.Prelu,
            inputsToSave: ['x', 'alpha'],
            gradFunc: (dy, saved) => {
                const [x, alpha] = saved;
                const mask = (0,
                    _greater.greater)(x, 0);
                return {
                    x: () => (0,
                        _where.where)(mask, dy, (0,
                            _mul.mul)(dy, alpha)),
                    alpha: () => {
                        let res = (0,
                            _where.where)(mask, (0,
                                _zeros_like.zerosLike)(dy), (0,
                                    _mul.mul)(dy, x));
                        const reduceAxes = (0,
                            _broadcast_util.getReductionAxes)(alpha.shape, dy.shape);
                        if (reduceAxes.length > 0) {
                            res = (0,
                                _sum.sum)(res, reduceAxes);
                        }
                        return (0,
                            _reshape.reshape)(res, alpha.shape);
                    }
                };
            }
        };
        exports.preluGradConfig = preluGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/broadcast_util": 233,
        "../ops/greater": 296,
        "../ops/mul": 362,
        "../ops/reshape": 402,
        "../ops/sum": 464,
        "../ops/where": 484,
        "../ops/zeros_like": 487
    }],
    149: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.prodGradConfig = void 0;
        var _base = require("../base");
        var _kernel_names = require("../kernel_names");
        var _cumprod = require("../ops/cumprod");
        var _mul = require("../ops/mul");
        var _reshape = require("../ops/reshape");
        var _transpose = require("../ops/transpose");
        /**
         * @license
         * Copyright 2022 Google Inc. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        // Gradient for product operation on a single axis.
        function prodGradFn_(x, dy, axis) {
            // The gradient tensor (dy) has a set of axes removed, so we create re-shaped
            // versions (of size 1) for the removed axis; this supports broadcasting over
            // those dimensions.
            const expandedYShape = x.shape.slice();
            expandedYShape[axis] = 1;
            // The actual gradient computation.
            const expandedDy = (0,
                _reshape.reshape)(dy, expandedYShape);
            const xCumProd = (0,
                _cumprod.cumprod)(x, axis, true, false);
            const xCumRevProd = (0,
                _cumprod.cumprod)(x, axis, true, true);
            const dx = (0,
                _mul.mul)(xCumProd, xCumRevProd);
            return (0,
                _mul.mul)(expandedDy, dx);
        }
        // Support gradients when the product is done on many axes at once.
        // This done py pushing all the axes on which the product is applied into a
        // single axis.
        function prodsGradFn_(x, dy, axis) {
            // Move all axes for doing prod over to the end of the tensor.
            const xRank = x.shape.length;
            const finalProdAxis = xRank - axis.length;
            const xPermutation = _base.backend_util.getAxesPermutation(axis, xRank);
            let permutedX = x;
            if (xPermutation != null) {
                permutedX = (0,
                    _transpose.transpose)(x, xPermutation);
            }
            // Reshape all the prod dimensions into a single one, and do compute prod
            // gradients on that.
            const newShape = permutedX.shape.slice();
            const removedShape = newShape.splice(xRank - axis.length, axis.length);
            const endPartShape = removedShape.reduce((p, c) => p * c, 1);
            newShape.push(endPartShape);
            const reshapedPermutedX = permutedX.reshape(newShape);
            let prodGrad = prodGradFn_(reshapedPermutedX, dy, finalProdAxis);
            // Undo the re-shaping now we have the dx vector, and permute back to
            // original axes order.
            prodGrad = prodGrad.reshape(permutedX.shape);
            if (xPermutation != null) {
                const undoPermutation = _base.backend_util.getUndoAxesPermutation(xPermutation);
                prodGrad = (0,
                    _transpose.transpose)(prodGrad, undoPermutation);
            }
            return prodGrad;
        }
        // Running example:
        // [
        //   [
        //     [3.0, 4.0],
        //     [5.0, 6.0],
        //     [7.0, 8.0]
        //   ],
        //   [
        //     [3.0, 5.0],
        //     [0.0, 6.0],
        //     [5.0, 6.0]
        //   ]
        // ]
        //
        const prodGradConfig = {
            kernelName: _kernel_names.Prod,
            inputsToSave: ['x'],
            gradFunc: (dy, saved, attrs) => {
                const [x] = saved;
                const { axis } = attrs;
                let axisArr = [];
                if (axis === undefined || axis === null) {
                    axisArr = x.shape.map((_, i) => i);
                } else if (typeof axis === 'number') {
                    axisArr = [axis];
                } else {
                    axisArr = axis;
                }
                return {
                    x: () => prodsGradFn_(x, dy, axisArr)
                };
            }
        };
        exports.prodGradConfig = prodGradConfig;

    }
        , {
        "../base": 74,
        "../kernel_names": 198,
        "../ops/cumprod": 260,
        "../ops/mul": 362,
        "../ops/reshape": 402,
        "../ops/transpose": 477
    }],
    150: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.divGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var broadcast_util = _interopRequireWildcard(require("../ops/broadcast_util"));
        var _cast = require("../ops/cast");
        var _div = require("../ops/div");
        var _mul = require("../ops/mul");
        var _neg = require("../ops/neg");
        var _reshape = require("../ops/reshape");
        var _square = require("../ops/square");
        var _sum = require("../ops/sum");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const divGradConfig = {
            kernelName: _kernel_names.RealDiv,
            inputsToSave: ['a', 'b'],
            gradFunc: (dy, saved) => {
                const [a, b] = saved;
                const outShape = broadcast_util.assertAndGetBroadcastShape(a.shape, b.shape);
                const derA = () => {
                    const res = (0,
                        _div.div)(dy, (0,
                            _cast.cast)(b, 'float32'));
                    const reduceAxes = broadcast_util.getReductionAxes(a.shape, outShape);
                    if (reduceAxes.length > 0) {
                        return (0,
                            _reshape.reshape)((0,
                                _sum.sum)(res, reduceAxes), a.shape);
                    }
                    return res;
                }
                    ;
                const derB = () => {
                    let res = (0,
                        _mul.mul)(dy, (0,
                            _cast.cast)(a, 'float32'));
                    const reduceAxes = broadcast_util.getReductionAxes(b.shape, outShape);
                    if (reduceAxes.length > 0) {
                        res = (0,
                            _reshape.reshape)((0,
                                _sum.sum)(res, reduceAxes), b.shape);
                    }
                    const tmp = (0,
                        _square.square)(b);
                    return (0,
                        _neg.neg)((0,
                            _div.div)(res, (0,
                                _cast.cast)(tmp, 'float32')));
                }
                    ;
                return {
                    a: derA,
                    b: derB
                };
            }
        };
        exports.divGradConfig = divGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/broadcast_util": 233,
        "../ops/cast": 236,
        "../ops/div": 269,
        "../ops/mul": 362,
        "../ops/neg": 365,
        "../ops/reshape": 402,
        "../ops/square": 454,
        "../ops/sum": 464
    }],
    151: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.reciprocalGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _div = require("../ops/div");
        var _neg = require("../ops/neg");
        var _square = require("../ops/square");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const reciprocalGradConfig = {
            kernelName: _kernel_names.Reciprocal,
            inputsToSave: ['x'],
            gradFunc: (dy, saved) => {
                const [x] = saved;
                return {
                    x: () => (0,
                        _div.div)(dy, (0,
                            _neg.neg)((0,
                                _square.square)(x)))
                };
            }
        };
        exports.reciprocalGradConfig = reciprocalGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/div": 269,
        "../ops/neg": 365,
        "../ops/square": 454
    }],
    152: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.relu6GradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _cast = require("../ops/cast");
        var _less_equal = require("../ops/less_equal");
        var _mul = require("../ops/mul");
        var _step = require("../ops/step");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const relu6GradConfig = {
            kernelName: _kernel_names.Relu6,
            inputsToSave: ['x'],
            gradFunc: (dy, saved) => {
                const [x] = saved;
                const mask = (0,
                    _mul.mul)((0,
                        _less_equal.lessEqual)(x, 6), (0,
                            _step.step)(x));
                return {
                    x: () => (0,
                        _mul.mul)(dy, (0,
                            _cast.cast)(mask, 'float32'))
                };
            }
        };
        exports.relu6GradConfig = relu6GradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/cast": 236,
        "../ops/less_equal": 319,
        "../ops/mul": 362,
        "../ops/step": 458
    }],
    153: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.reluGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _cast = require("../ops/cast");
        var _mul = require("../ops/mul");
        var _step = require("../ops/step");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const reluGradConfig = {
            kernelName: _kernel_names.Relu,
            inputsToSave: ['x'],
            gradFunc: (dy, saved) => {
                const [x] = saved;
                return {
                    x: () => (0,
                        _mul.mul)(dy, (0,
                            _cast.cast)((0,
                                _step.step)(x), 'float32'))
                };
            }
        };
        exports.reluGradConfig = reluGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/cast": 236,
        "../ops/mul": 362,
        "../ops/step": 458
    }],
    154: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.reshapeGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _reshape = require("../ops/reshape");
        /**
         * @license
         * Copyright 2020 Google Inc. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const reshapeGradConfig = {
            kernelName: _kernel_names.Reshape,
            inputsToSave: ['x'],
            gradFunc: (dy, saved) => {
                const [x] = saved;
                return {
                    x: () => (0,
                        _reshape.reshape)(dy, x.shape)
                };
            }
        };
        exports.reshapeGradConfig = reshapeGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/reshape": 402
    }],
    155: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.resizeBilinearGradConfig = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const resizeBilinearGradConfig = {
            kernelName: _kernel_names.ResizeBilinear,
            inputsToSave: ['images'],
            gradFunc: (dy, saved, attrs) => {
                const [images] = saved;
                const inputs = {
                    dy,
                    images
                };
                const imagesDer = () =>// tslint:disable-next-line: no-unnecessary-type-assertion
                    _engine.ENGINE.runKernel(_kernel_names.ResizeBilinearGrad, inputs, attrs);
                return {
                    images: imagesDer
                };
            }
        };
        exports.resizeBilinearGradConfig = resizeBilinearGradConfig;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198
    }],
    156: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.resizeNearestNeighborGradConfig = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const resizeNearestNeighborGradConfig = {
            kernelName: _kernel_names.ResizeNearestNeighbor,
            inputsToSave: ['images'],
            gradFunc: (dy, saved, attrs) => {
                const [images] = saved;
                const inputs = {
                    dy,
                    images
                };
                const imagesDer = () =>// tslint:disable-next-line: no-unnecessary-type-assertion
                    _engine.ENGINE.runKernel(_kernel_names.ResizeNearestNeighborGrad, inputs, attrs);
                return {
                    images: imagesDer
                };
            }
        };
        exports.resizeNearestNeighborGradConfig = resizeNearestNeighborGradConfig;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198
    }],
    157: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.reverseGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _reverse = require("../ops/reverse");
        var _util = require("../util");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const reverseGradConfig = {
            kernelName: _kernel_names.Reverse,
            gradFunc: (dy, saved, attrs) => {
                const { dims } = attrs;
                const axes = (0,
                    _util.parseAxisParam)(dims, dy.shape);
                return {
                    x: () => (0,
                        _reverse.reverse)(dy, axes)
                };
            }
        };
        exports.reverseGradConfig = reverseGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/reverse": 403,
        "../util": 509
    }],
    158: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.roundGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _zeros_like = require("../ops/zeros_like");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const roundGradConfig = {
            kernelName: _kernel_names.Round,
            gradFunc: dy => {
                // TODO(nsthorat): Let gradients be null for cases where we want to stop
                // backpropgation.
                return {
                    x: () => (0,
                        _zeros_like.zerosLike)(dy)
                };
            }
        };
        exports.roundGradConfig = roundGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/zeros_like": 487
    }],
    159: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.rsqrtGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _div = require("../ops/div");
        var _mul = require("../ops/mul");
        var _neg = require("../ops/neg");
        var _pow = require("../ops/pow");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const rsqrtGradConfig = {
            kernelName: _kernel_names.Rsqrt,
            inputsToSave: ['x'],
            gradFunc: (dy, saved) => {
                const [x] = saved;
                return {
                    x: () => (0,
                        _neg.neg)((0,
                            _div.div)(dy, (0,
                                _mul.mul)((0,
                                    _pow.pow)(x, 1.5), 2)))
                };
            }
        };
        exports.rsqrtGradConfig = rsqrtGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/div": 269,
        "../ops/mul": 362,
        "../ops/neg": 365,
        "../ops/pow": 382
    }],
    160: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.selectGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _cast = require("../ops/cast");
        var _logical_not = require("../ops/logical_not");
        var _mul = require("../ops/mul");
        var _zeros_like = require("../ops/zeros_like");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const selectGradConfig = {
            kernelName: _kernel_names.Select,
            inputsToSave: ['condition'],
            gradFunc: (dy, saved) => {
                const [condition] = saved;
                return {
                    // TODO(julianoks): Return null for condition gradient
                    // when backprop supports it.
                    condition: () => (0,
                        _cast.cast)((0,
                            _zeros_like.zerosLike)(condition), 'float32'),
                    t: () => (0,
                        _mul.mul)(dy, (0,
                            _cast.cast)(condition, dy.dtype)),
                    e: () => (0,
                        _mul.mul)(dy, (0,
                            _cast.cast)((0,
                                _logical_not.logicalNot)(condition), dy.dtype))
                };
            }
        };
        exports.selectGradConfig = selectGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/cast": 236,
        "../ops/logical_not": 332,
        "../ops/mul": 362,
        "../ops/zeros_like": 487
    }],
    161: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.seluGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _cast = require("../ops/cast");
        var _exp = require("../ops/exp");
        var _greater = require("../ops/greater");
        var _mul = require("../ops/mul");
        var _scalar = require("../ops/scalar");
        var _selu_util = require("../ops/selu_util");
        var _where = require("../ops/where");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const seluGradConfig = {
            kernelName: _kernel_names.Selu,
            inputsToSave: ['x'],
            gradFunc: (dy, saved) => {
                const [x] = saved;
                return {
                    x: () => {
                        const mask = (0,
                            _greater.greater)(x, (0,
                                _scalar.scalar)(0));
                        const scaleAlpha = (0,
                            _scalar.scalar)(_selu_util.SELU_SCALEALPHA);
                        const scale = (0,
                            _scalar.scalar)(_selu_util.SELU_SCALE);
                        const greaterThanZeroDer = (0,
                            _mul.mul)(dy, scale);
                        const lessEqualZeroDer = (0,
                            _mul.mul)((0,
                                _mul.mul)(dy, scaleAlpha), (0,
                                    _exp.exp)((0,
                                        _cast.cast)(x, 'float32')));
                        return (0,
                            _where.where)(mask, greaterThanZeroDer, lessEqualZeroDer);
                    }
                };
            }
        };
        exports.seluGradConfig = seluGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/cast": 236,
        "../ops/exp": 280,
        "../ops/greater": 296,
        "../ops/mul": 362,
        "../ops/scalar": 411,
        "../ops/selu_util": 417,
        "../ops/where": 484
    }],
    162: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.sigmoidGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _mul = require("../ops/mul");
        var _scalar = require("../ops/scalar");
        var _sub = require("../ops/sub");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const sigmoidGradConfig = {
            kernelName: _kernel_names.Sigmoid,
            outputsToSave: [true],
            gradFunc: (dy, saved) => {
                const [y] = saved;
                return {
                    x: () => (0,
                        _mul.mul)(dy, (0,
                            _mul.mul)(y, (0,
                                _sub.sub)((0,
                                    _scalar.scalar)(1), y)))
                };
            }
        };
        exports.sigmoidGradConfig = sigmoidGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/mul": 362,
        "../ops/scalar": 411,
        "../ops/sub": 463
    }],
    163: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.signGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _zeros_like = require("../ops/zeros_like");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const signGradConfig = {
            kernelName: _kernel_names.Sign,
            gradFunc: dy => {
                return {
                    x: () => (0,
                        _zeros_like.zerosLike)(dy)
                };
            }
        };
        exports.signGradConfig = signGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/zeros_like": 487
    }],
    164: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.sinGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _cast = require("../ops/cast");
        var _cos = require("../ops/cos");
        var _mul = require("../ops/mul");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const sinGradConfig = {
            kernelName: _kernel_names.Sin,
            inputsToSave: ['x'],
            gradFunc: (dy, saved) => {
                const [x] = saved;
                return {
                    x: () => (0,
                        _mul.mul)((0,
                            _cos.cos)((0,
                                _cast.cast)(x, 'float32')), dy)
                };
            }
        };
        exports.sinGradConfig = sinGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/cast": 236,
        "../ops/cos": 258,
        "../ops/mul": 362
    }],
    165: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.sinhGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _cast = require("../ops/cast");
        var _cosh = require("../ops/cosh");
        var _mul = require("../ops/mul");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const sinhGradConfig = {
            kernelName: _kernel_names.Sinh,
            inputsToSave: ['x'],
            gradFunc: (dy, saved) => {
                const [x] = saved;
                return {
                    x: () => (0,
                        _mul.mul)((0,
                            _cosh.cosh)((0,
                                _cast.cast)(x, 'float32')), dy)
                };
            }
        };
        exports.sinhGradConfig = sinhGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/cast": 236,
        "../ops/cosh": 259,
        "../ops/mul": 362
    }],
    166: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.sliceGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _pad = require("../ops/pad");
        var _slice_util = require("../ops/slice_util");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const sliceGradConfig = {
            kernelName: _kernel_names.Slice,
            inputsToSave: ['x'],
            gradFunc: (dy, saved, attrs) => {
                const [x] = saved;
                const { begin, size } = attrs;
                const inputShape = x.shape;
                const [begin_, size_] = (0,
                    _slice_util.parseSliceParams)(x, begin, size);
                // Create an Nx2 padding where the first column represents how many
                // zeros are prepended (at start) for each dimension, and the second
                // column indicates how many zeros are appended (at end).
                // The number of zeros to append is the shape of the input
                // elementwise-subtracted by both the begin vector and sizes vector.
                const paddings = [];
                for (let i = 0; i < dy.rank; i++) {
                    paddings.push([begin_[i], inputShape[i] - begin_[i] - size_[i]]);
                }
                return {
                    x: () => (0,
                        _pad.pad)(dy, paddings)
                };
            }
        };
        exports.sliceGradConfig = sliceGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/pad": 376,
        "../ops/slice_util": 434
    }],
    167: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.softmaxGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _mul = require("../ops/mul");
        var _sub = require("../ops/sub");
        var _sum = require("../ops/sum");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const softmaxGradConfig = {
            kernelName: _kernel_names.Softmax,
            outputsToSave: [true],
            gradFunc: (dy, saved, attrs) => {
                const [y] = saved;
                const { dim } = attrs;
                const keepDims = true;
                const dyTimesY = (0,
                    _mul.mul)(dy, y);
                return {
                    logits: () => (0,
                        _sub.sub)(dyTimesY, (0,
                            _mul.mul)((0,
                                _sum.sum)(dyTimesY, [dim], keepDims), y))
                };
            }
        };
        exports.softmaxGradConfig = softmaxGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/mul": 362,
        "../ops/sub": 463,
        "../ops/sum": 464
    }],
    168: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.softplusGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _mul = require("../ops/mul");
        var _sigmoid = require("../ops/sigmoid");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const softplusGradConfig = {
            kernelName: _kernel_names.Softplus,
            inputsToSave: ['x'],
            gradFunc: (dy, saved) => {
                const [x] = saved;
                return {
                    x: () => (0,
                        _mul.mul)(dy, (0,
                            _sigmoid.sigmoid)(x))
                };
            }
        };
        exports.softplusGradConfig = softplusGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/mul": 362,
        "../ops/sigmoid": 420
    }],
    169: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.spaceToBatchNDGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _batch_to_space_nd = require("../ops/batch_to_space_nd");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const spaceToBatchNDGradConfig = {
            kernelName: _kernel_names.SpaceToBatchND,
            gradFunc: (dy, saved, attrs) => {
                const { blockShape, paddings } = attrs;
                return {
                    x: () => (0,
                        _batch_to_space_nd.batchToSpaceND)(dy, blockShape, paddings)
                };
            }
        };
        exports.spaceToBatchNDGradConfig = spaceToBatchNDGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/batch_to_space_nd": 223
    }],
    170: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.splitVGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _concat = require("../ops/concat");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const splitVGradConfig = {
            kernelName: _kernel_names.SplitV,
            gradFunc: (dy, saved, attrs) => {
                const { axis } = attrs;
                return {
                    x: () => (0,
                        _concat.concat)(dy, axis)
                };
            }
        };
        exports.splitVGradConfig = splitVGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/concat": 241
    }],
    171: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.sqrtGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _cast = require("../ops/cast");
        var _div = require("../ops/div");
        var _mul = require("../ops/mul");
        var _sqrt = require("../ops/sqrt");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const sqrtGradConfig = {
            kernelName: _kernel_names.Sqrt,
            inputsToSave: ['x'],
            gradFunc: (dy, saved) => {
                const [x] = saved;
                return {
                    x: () => (0,
                        _div.div)(dy, (0,
                            _mul.mul)((0,
                                _sqrt.sqrt)((0,
                                    _cast.cast)(x, 'float32')), 2))
                };
            }
        };
        exports.sqrtGradConfig = sqrtGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/cast": 236,
        "../ops/div": 269,
        "../ops/mul": 362,
        "../ops/sqrt": 453
    }],
    172: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.squareGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _cast = require("../ops/cast");
        var _mul = require("../ops/mul");
        /**
         * @license
         * Copyright 2019 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const squareGradConfig = {
            kernelName: _kernel_names.Square,
            inputsToSave: ['x'],
            gradFunc: (dy, saved) => {
                const [x] = saved;
                return {
                    x: () => (0,
                        _mul.mul)(dy, (0,
                            _mul.mul)((0,
                                _cast.cast)(x, 'float32'), 2))
                };
            }
        };
        exports.squareGradConfig = squareGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/cast": 236,
        "../ops/mul": 362
    }],
    173: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.squaredDifferenceGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _mul = require("../ops/mul");
        var _scalar = require("../ops/scalar");
        var _sub = require("../ops/sub");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const squaredDifferenceGradConfig = {
            kernelName: _kernel_names.SquaredDifference,
            inputsToSave: ['a', 'b'],
            gradFunc: (dy, saved) => {
                const [a, b] = saved;
                const two = (0,
                    _scalar.scalar)(2);
                const derA = () => (0,
                    _mul.mul)(dy, (0,
                        _mul.mul)(two, (0,
                            _sub.sub)(a, b)));
                const derB = () => (0,
                    _mul.mul)(dy, (0,
                        _mul.mul)(two, (0,
                            _sub.sub)(b, a)));
                return {
                    a: derA,
                    b: derB
                };
            }
        };
        exports.squaredDifferenceGradConfig = squaredDifferenceGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/mul": 362,
        "../ops/scalar": 411,
        "../ops/sub": 463
    }],
    174: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.stepGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _zeros_like = require("../ops/zeros_like");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const stepGradConfig = {
            kernelName: _kernel_names.Step,
            gradFunc: dy => {
                // TODO(manrajgrover): Return null for gradients when backprop supports
                // it.
                return {
                    x: () => (0,
                        _zeros_like.zerosLike)(dy)
                };
            }
        };
        exports.stepGradConfig = stepGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/zeros_like": 487
    }],
    175: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.subGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var broadcast_util = _interopRequireWildcard(require("../ops/broadcast_util"));
        var _neg = require("../ops/neg");
        var _reshape = require("../ops/reshape");
        var _sum = require("../ops/sum");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const subGradConfig = {
            kernelName: _kernel_names.Sub,
            inputsToSave: ['a', 'b'],
            gradFunc: (dy, saved) => {
                const [a, b] = saved;
                const outShape = broadcast_util.assertAndGetBroadcastShape(a.shape, b.shape);
                const derA = () => {
                    let res = dy;
                    const reduceAxes = broadcast_util.getReductionAxes(a.shape, outShape);
                    if (reduceAxes.length > 0) {
                        res = (0,
                            _sum.sum)(res, reduceAxes);
                    }
                    return (0,
                        _reshape.reshape)(res, a.shape);
                }
                    ;
                const derB = () => {
                    let res = dy;
                    const reduceAxes = broadcast_util.getReductionAxes(b.shape, outShape);
                    if (reduceAxes.length > 0) {
                        res = (0,
                            _sum.sum)(res, reduceAxes);
                    }
                    return (0,
                        _reshape.reshape)((0,
                            _neg.neg)(res), b.shape);
                }
                    ;
                return {
                    a: derA,
                    b: derB
                };
            }
        };
        exports.subGradConfig = subGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/broadcast_util": 233,
        "../ops/neg": 365,
        "../ops/reshape": 402,
        "../ops/sum": 464
    }],
    176: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.sumGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _mul = require("../ops/mul");
        var _ones = require("../ops/ones");
        var _reshape = require("../ops/reshape");
        var _util = require("../util");
        /**
         * @license
         * Copyright 2020 Google Inc. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const sumGradConfig = {
            kernelName: _kernel_names.Sum,
            inputsToSave: ['x'],
            gradFunc: (dy, saved, attrs) => {
                const [x] = saved;
                const expandedDyShape = x.shape.slice();
                const { axis } = attrs;
                const axes = (0,
                    _util.parseAxisParam)(axis, x.shape);
                axes.forEach(axis => {
                    expandedDyShape[axis] = 1;
                }
                );
                const expandedDy = (0,
                    _reshape.reshape)(dy, expandedDyShape);
                const derX = (0,
                    _mul.mul)(expandedDy, (0,
                        _ones.ones)(x.shape, 'float32'));
                return {
                    x: () => derX
                };
            }
        };
        exports.sumGradConfig = sumGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/mul": 362,
        "../ops/ones": 370,
        "../ops/reshape": 402,
        "../util": 509
    }],
    177: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.tanGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _cos = require("../ops/cos");
        var _div = require("../ops/div");
        var _square = require("../ops/square");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const tanGradConfig = {
            kernelName: _kernel_names.Tan,
            inputsToSave: ['x'],
            gradFunc: (dy, saved) => {
                const [x] = saved;
                return {
                    x: () => (0,
                        _div.div)(dy, (0,
                            _square.square)((0,
                                _cos.cos)(x)))
                };
            }
        };
        exports.tanGradConfig = tanGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/cos": 258,
        "../ops/div": 269,
        "../ops/square": 454
    }],
    178: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.tanhGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _mul = require("../ops/mul");
        var _scalar = require("../ops/scalar");
        var _square = require("../ops/square");
        var _sub = require("../ops/sub");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const tanhGradConfig = {
            kernelName: _kernel_names.Tanh,
            outputsToSave: [true],
            gradFunc: (dy, saved) => {
                const [y] = saved;
                return {
                    x: () => (0,
                        _mul.mul)((0,
                            _sub.sub)((0,
                                _scalar.scalar)(1), (0,
                                    _square.square)(y)), dy)
                };
            }
        };
        exports.tanhGradConfig = tanhGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/mul": 362,
        "../ops/scalar": 411,
        "../ops/square": 454,
        "../ops/sub": 463
    }],
    179: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.tileGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _add = require("../ops/add");
        var _slice = require("../ops/slice");
        var _zeros_like = require("../ops/zeros_like");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const tileGradConfig = {
            kernelName: _kernel_names.Tile,
            inputsToSave: ['x'],
            gradFunc: (dy, saved, attrs) => {
                const [x] = saved;
                const { reps } = attrs;
                const derX = () => {
                    let xGrad = (0,
                        _zeros_like.zerosLike)(x);
                    // TODO(cais): Maybe reduce memory footprint by avoiding repeated
                    // slicing.
                    if (x.rank === 1) {
                        for (let i = 0; i < reps[0]; ++i) {
                            xGrad = (0,
                                _add.add)(xGrad, (0,
                                    _slice.slice)(dy, [i * x.shape[0]], [x.shape[0]]));
                        }
                    } else if (x.rank === 2) {
                        for (let i = 0; i < reps[0]; ++i) {
                            for (let j = 0; j < reps[1]; ++j) {
                                xGrad = (0,
                                    _add.add)(xGrad, (0,
                                        _slice.slice)(dy, [i * x.shape[0], j * x.shape[1]], [x.shape[0], x.shape[1]]));
                            }
                        }
                    } else if (x.rank === 3) {
                        for (let i = 0; i < reps[0]; ++i) {
                            for (let j = 0; j < reps[1]; ++j) {
                                for (let k = 0; k < reps[2]; ++k) {
                                    xGrad = (0,
                                        _add.add)(xGrad, (0,
                                            _slice.slice)(dy, [i * x.shape[0], j * x.shape[1], k * x.shape[2]], [x.shape[0], x.shape[1], x.shape[2]]));
                                }
                            }
                        }
                    } else if (x.rank === 4) {
                        for (let i = 0; i < reps[0]; ++i) {
                            for (let j = 0; j < reps[1]; ++j) {
                                for (let k = 0; k < reps[2]; ++k) {
                                    for (let l = 0; l < reps[3]; ++l) {
                                        xGrad = (0,
                                            _add.add)(xGrad, (0,
                                                _slice.slice)(dy, [i * x.shape[0], j * x.shape[1], k * x.shape[2], l * x.shape[3]], [x.shape[0], x.shape[1], x.shape[2], x.shape[3]]));
                                    }
                                }
                            }
                        }
                    } else {
                        throw new Error(`Gradient for tile operation is not implemented for rank-` + `${x.rank} tensors yet.`);
                    }
                    return xGrad;
                }
                    ;
                return {
                    x: derX
                };
            }
        };
        exports.tileGradConfig = tileGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/add": 205,
        "../ops/slice": 429,
        "../ops/zeros_like": 487
    }],
    180: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.transposeGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var axis_util = _interopRequireWildcard(require("../ops/axis_util"));
        var _transpose = require("../ops/transpose");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const transposeGradConfig = {
            kernelName: _kernel_names.Transpose,
            gradFunc: (dy, saved, attrs) => {
                const transposeAttrs = attrs;
                const { perm } = transposeAttrs;
                const undoPerm = axis_util.getUndoAxesPermutation(perm);
                return {
                    x: () => (0,
                        _transpose.transpose)(dy, undoPerm)
                };
            }
        };
        exports.transposeGradConfig = transposeGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/axis_util": 221,
        "../ops/transpose": 477
    }],
    181: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.unpackGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _stack = require("../ops/stack");
        /**
         * @license
         * Copyright 2020 Google Inc. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const unpackGradConfig = {
            kernelName: _kernel_names.Unpack,
            gradFunc: (dy, saved, attrs) => {
                const unpackAttrs = attrs;
                const { axis } = unpackAttrs;
                return {
                    value: () => (0,
                        _stack.stack)(dy, axis)
                };
            }
        };
        exports.unpackGradConfig = unpackGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/stack": 457
    }],
    182: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.unsortedSegmentSumGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _expand_dims = require("../ops/expand_dims");
        var _gather = require("../ops/gather");
        var _greater_equal = require("../ops/greater_equal");
        var _logical_and = require("../ops/logical_and");
        var _maximum = require("../ops/maximum");
        var _ones = require("../ops/ones");
        var _scalar = require("../ops/scalar");
        var _where = require("../ops/where");
        var _zeros_like = require("../ops/zeros_like");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const unsortedSegmentSumGradConfig = {
            kernelName: _kernel_names.UnsortedSegmentSum,
            inputsToSave: ['segmentIds'],
            gradFunc: (dy, saved) => {
                const [segmentIds] = saved;
                const derX = () => {
                    return gatherDropNegatives(dy, segmentIds);
                }
                    ;
                return {
                    x: derX
                };
            }
        };
        exports.unsortedSegmentSumGradConfig = unsortedSegmentSumGradConfig;
        function gatherDropNegatives(x, indices) {
            // Helper function for unsorted segment ops. Gathers params for
            // positive segment ids and gathers 0 for inputs with negative segment id.
            // Mirrors _GatherDropNegatives from tensorflow/python/ops/math_grad.py
            const zeroClippedIndices = (0,
                _maximum.maximum)(indices, (0,
                    _zeros_like.zerosLike)(indices));
            const gathered = (0,
                _gather.gather)(x, zeroClippedIndices);
            let isPositive = (0,
                _greater_equal.greaterEqual)(indices, (0,
                    _scalar.scalar)(0, 'int32'));
            const numIters = gathered.rank - isPositive.rank;
            for (let i = 0; i < numIters; ++i) {
                isPositive = (0,
                    _expand_dims.expandDims)(isPositive, i + 1);
            }
            isPositive = (0,
                _logical_and.logicalAnd)(isPositive, (0,
                    _ones.ones)(gathered.shape, 'bool'));
            const zeroSlice = (0,
                _zeros_like.zerosLike)(gathered);
            return (0,
                _where.where)(isPositive, gathered, zeroSlice);
        }

    }
        , {
        "../kernel_names": 198,
        "../ops/expand_dims": 281,
        "../ops/gather": 293,
        "../ops/greater_equal": 297,
        "../ops/logical_and": 331,
        "../ops/maximum": 353,
        "../ops/ones": 370,
        "../ops/scalar": 411,
        "../ops/where": 484,
        "../ops/zeros_like": 487
    }],
    183: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.zerosLikeGradConfig = void 0;
        var _kernel_names = require("../kernel_names");
        var _zeros_like = require("../ops/zeros_like");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const zerosLikeGradConfig = {
            kernelName: _kernel_names.ZerosLike,
            gradFunc: dy => {
                return {
                    x: () => (0,
                        _zeros_like.zerosLike)(dy)
                };
            }
        };
        exports.zerosLikeGradConfig = zerosLikeGradConfig;

    }
        , {
        "../kernel_names": 198,
        "../ops/zeros_like": 487
    }],
    184: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.gradForMinAndMax = gradForMinAndMax;
        var axis_util = _interopRequireWildcard(require("../ops/axis_util"));
        var _cast = require("../ops/cast");
        var _equal = require("../ops/equal");
        var _mul = require("../ops/mul");
        var _reshape = require("../ops/reshape");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Gradient helper function for the min and max operations.
         */
        function gradForMinAndMax(dy, y, xOrig, origAxes) {
            if (y.rank < xOrig.rank) {
                y = (0,
                    _reshape.reshape)(y, axis_util.expandShapeToKeepDim(y.shape, origAxes));
            }
            if (dy.rank < xOrig.rank) {
                dy = (0,
                    _reshape.reshape)(dy, axis_util.expandShapeToKeepDim(dy.shape, origAxes));
            }
            return {
                x: () => {
                    const dx = (0,
                        _mul.mul)(dy, (0,
                            _cast.cast)((0,
                                _equal.equal)(xOrig, y), dy.dtype));
                    return dx;
                }
            };
        }

    }
        , {
        "../ops/axis_util": 221,
        "../ops/cast": 236,
        "../ops/equal": 276,
        "../ops/mul": 362,
        "../ops/reshape": 402
    }],
    185: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.fingerPrint64 = fingerPrint64;
        exports.hexToLong = hexToLong;
        var LongExports = _interopRequireWildcard(require("long"));
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2021 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        // Workaround for allowing cjs module to be included in bundle created by
        // rollup.

        // tslint:disable-next-line
        const Long = // tslint:disable-next-line
            LongExports.default || LongExports;
        function hexToLong(hex) {
            return Long.fromString(hex, true, 16);
        }
        // Some primes between 2^63 and 2^64 for various uses.
        // Hex 0xc3a5c85c97cb3127
        const k0 = hexToLong('c3a5c85c97cb3127');
        // Hex 0xb492b66fbe98f273
        const k1 = hexToLong('b492b66fbe98f273');
        // Hex 0x9ae16a3b2f90404f
        const k2 = hexToLong('9ae16a3b2f90404f');
        function shiftMix(val) {
            return val.xor(val.shru(47));
        }
        function fetch(s, offset, numBytes) {
            const bytes = s.slice(offset, offset + numBytes);
            return Long.fromBytes(Array.from(bytes), true, true);
        }
        function fetch64(s, offset) {
            return fetch(s, offset, 8);
        }
        function fetch32(s, offset) {
            return fetch(s, offset, 4);
        }
        function rotate64(val, shift) {
            // Avoid shifting by 64: doing so yields an undefined result.
            return shift === 0 ? val : val.shru(shift).or(val.shl(64 - shift));
        }
        function hashLen16(u, v, mul = hexToLong('9ddfea08eb382d69')) {
            // Murmur-inspired hashing.
            let a = u.xor(v).mul(mul);
            a = a.xor(a.shru(47));
            let b = v.xor(a).mul(mul);
            b = b.xor(b.shru(47));
            b = b.mul(mul);
            return b;
        }
        // Return a 16-byte hash for 48 bytes.  Quick and dirty.
        // Callers do best to use "random-looking" values for a and b.
        function weakHashLen32WithSeeds(w, x, y, z, a, b) {
            a = a.add(w);
            b = rotate64(b.add(a).add(z), 21);
            const c = a;
            a = a.add(x);
            a = a.add(y);
            b = b.add(rotate64(a, 44));
            return [a.add(z), b.add(c)];
        }
        function weakHashLen32WithSeedsStr(s, offset, a, b) {
            return weakHashLen32WithSeeds(fetch64(s, offset), fetch64(s, offset + 8), fetch64(s, offset + 16), fetch64(s, offset + 24), a, b);
        }
        function hashLen0to16(s, len = s.length) {
            if (len >= 8) {
                const mul = k2.add(len * 2);
                const a = fetch64(s, 0).add(k2);
                const b = fetch64(s, len - 8);
                const c = rotate64(b, 37).mul(mul).add(a);
                const d = rotate64(a, 25).add(b).mul(mul);
                return hashLen16(c, d, mul);
            }
            if (len >= 4) {
                const mul = k2.add(len * 2);
                const a = fetch32(s, 0);
                return hashLen16(a.shl(3).add(len), fetch32(s, len - 4), mul);
            }
            if (len > 0) {
                const a = s[0];
                const b = s[len >> 1];
                const c = s[len - 1];
                const y = a + (b << 8);
                const z = len + (c << 2);
                return shiftMix(k2.mul(y).xor(k0.mul(z))).mul(k2);
            }
            return k2;
        }
        function hashLen17to32(s, len = s.length) {
            const mul = k2.add(len * 2);
            const a = fetch64(s, 0).mul(k1);
            const b = fetch64(s, 8);
            const c = fetch64(s, len - 8).mul(mul);
            const d = fetch64(s, len - 16).mul(k2);
            return hashLen16(rotate64(a.add(b), 43).add(rotate64(c, 30)).add(d), a.add(rotate64(b.add(k2), 18)).add(c), mul);
        }
        function hashLen33to64(s, len = s.length) {
            const mul = k2.add(len * 2);
            const a = fetch64(s, 0).mul(k2);
            const b = fetch64(s, 8);
            const c = fetch64(s, len - 8).mul(mul);
            const d = fetch64(s, len - 16).mul(k2);
            const y = rotate64(a.add(b), 43).add(rotate64(c, 30)).add(d);
            const z = hashLen16(y, a.add(rotate64(b.add(k2), 18)).add(c), mul);
            const e = fetch64(s, 16).mul(mul);
            const f = fetch64(s, 24);
            const g = y.add(fetch64(s, len - 32)).mul(mul);
            const h = z.add(fetch64(s, len - 24)).mul(mul);
            return hashLen16(rotate64(e.add(f), 43).add(rotate64(g, 30)).add(h), e.add(rotate64(f.add(a), 18)).add(g), mul);
        }
        function fingerPrint64(s, len = s.length) {
            const seed = Long.fromNumber(81, true);
            if (len <= 32) {
                if (len <= 16) {
                    return hashLen0to16(s, len);
                } else {
                    return hashLen17to32(s, len);
                }
            } else if (len <= 64) {
                return hashLen33to64(s, len);
            }
            // For strings over 64 bytes we loop.  Internal state consists of
            // 56 bytes: v, w, x, y, and z.
            let x = seed;
            let y = seed.mul(k1).add(113);
            let z = shiftMix(y.mul(k2).add(113)).mul(k2);
            let v = [Long.UZERO, Long.UZERO];
            let w = [Long.UZERO, Long.UZERO];
            x = x.mul(k2).add(fetch64(s, 0));
            let offset = 0;
            // Set end so that after the loop we have 1 to 64 bytes left to process.
            const end = (len - 1 >> 6) * 64;
            const last64 = end + (len - 1 & 63) - 63;
            do {
                x = rotate64(x.add(y).add(v[0]).add(fetch64(s, offset + 8)), 37).mul(k1);
                y = rotate64(y.add(v[1]).add(fetch64(s, offset + 48)), 42).mul(k1);
                x = x.xor(w[1]);
                y = y.add(v[0]).add(fetch64(s, offset + 40));
                z = rotate64(z.add(w[0]), 33).mul(k1);
                v = weakHashLen32WithSeedsStr(s, offset, v[1].mul(k1), x.add(w[0]));
                w = weakHashLen32WithSeedsStr(s, offset + 32, z.add(w[1]), y.add(fetch64(s, offset + 16)));
                [z, x] = [x, z];
                offset += 64;
            } while (offset !== end);
            const mul = k1.add(z.and(0xff).shl(1));
            // Point to the last 64 bytes of input.
            offset = last64;
            w[0] = w[0].add(len - 1 & 63);
            v[0] = v[0].add(w[0]);
            w[0] = w[0].add(v[0]);
            x = rotate64(x.add(y).add(v[0]).add(fetch64(s, offset + 8)), 37).mul(mul);
            y = rotate64(y.add(v[1]).add(fetch64(s, offset + 48)), 42).mul(mul);
            x = x.xor(w[1].mul(9));
            y = y.add(v[0].mul(9).add(fetch64(s, offset + 40)));
            z = rotate64(z.add(w[0]), 33).mul(mul);
            v = weakHashLen32WithSeedsStr(s, offset, v[1].mul(mul), x.add(w[0]));
            w = weakHashLen32WithSeedsStr(s, offset + 32, z.add(w[1]), y.add(fetch64(s, offset + 16)));
            [z, x] = [x, z];
            return hashLen16(hashLen16(v[0], w[0], mul).add(shiftMix(y).mul(k0)).add(z), hashLen16(v[1], w[1], mul).add(x), mul);
        }

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

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.BrowserDownloads = void 0;
        exports.browserDownloads = browserDownloads;
        exports.browserDownloadsRouter = void 0;
        exports.browserFiles = browserFiles;
        require("../flags");
        var _environment = require("../environment");
        var _io_utils = require("./io_utils");
        var _router_registry = require("./router_registry");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        /**
         * IOHandlers related to files, such as browser-triggered file downloads,
         * user-selected files in browser.
         */

        const DEFAULT_FILE_NAME_PREFIX = 'model';
        const DEFAULT_JSON_EXTENSION_NAME = '.json';
        const DEFAULT_WEIGHT_DATA_EXTENSION_NAME = '.weights.bin';
        function defer(f) {
            return new Promise(resolve => setTimeout(resolve)).then(f);
        }
        class BrowserDownloads {
            constructor(fileNamePrefix) {
                if (!(0,
                    _environment.env)().getBool('IS_BROWSER')) {
                    // TODO(cais): Provide info on what IOHandlers are available under the
                    //   current environment.
                    throw new Error('browserDownloads() cannot proceed because the current environment ' + 'is not a browser.');
                }
                if (fileNamePrefix.startsWith(BrowserDownloads.URL_SCHEME)) {
                    fileNamePrefix = fileNamePrefix.slice(BrowserDownloads.URL_SCHEME.length);
                }
                if (fileNamePrefix == null || fileNamePrefix.length === 0) {
                    fileNamePrefix = DEFAULT_FILE_NAME_PREFIX;
                }
                this.modelJsonFileName = fileNamePrefix + DEFAULT_JSON_EXTENSION_NAME;
                this.weightDataFileName = fileNamePrefix + DEFAULT_WEIGHT_DATA_EXTENSION_NAME;
            }
            async save(modelArtifacts) {
                if (typeof document === 'undefined') {
                    throw new Error('Browser downloads are not supported in ' + 'this environment since `document` is not present');
                }
                const weightsURL = window.URL.createObjectURL(new Blob([modelArtifacts.weightData], {
                    type: 'application/octet-stream'
                }));
                if (modelArtifacts.modelTopology instanceof ArrayBuffer) {
                    throw new Error('BrowserDownloads.save() does not support saving model topology ' + 'in binary formats yet.');
                } else {
                    const weightsManifest = [{
                        paths: ['./' + this.weightDataFileName],
                        weights: modelArtifacts.weightSpecs
                    }];
                    const modelJSON = (0,
                        _io_utils.getModelJSONForModelArtifacts)(modelArtifacts, weightsManifest);
                    const modelJsonURL = window.URL.createObjectURL(new Blob([JSON.stringify(modelJSON)], {
                        type: 'application/json'
                    }));
                    // If anchor elements are not provided, create them without attaching them
                    // to parents, so that the downloaded file names can be controlled.
                    const jsonAnchor = this.modelJsonAnchor == null ? document.createElement('a') : this.modelJsonAnchor;
                    jsonAnchor.download = this.modelJsonFileName;
                    jsonAnchor.href = modelJsonURL;
                    // Trigger downloads by evoking a click event on the download anchors.
                    // When multiple downloads are started synchronously, Firefox will only
                    // save the last one.
                    await defer(() => jsonAnchor.dispatchEvent(new MouseEvent('click')));
                    if (modelArtifacts.weightData != null) {
                        const weightDataAnchor = this.weightDataAnchor == null ? document.createElement('a') : this.weightDataAnchor;
                        weightDataAnchor.download = this.weightDataFileName;
                        weightDataAnchor.href = weightsURL;
                        await defer(() => weightDataAnchor.dispatchEvent(new MouseEvent('click')));
                    }
                    return {
                        modelArtifactsInfo: (0,
                            _io_utils.getModelArtifactsInfoForJSON)(modelArtifacts)
                    };
                }
            }
        }
        exports.BrowserDownloads = BrowserDownloads;
        BrowserDownloads.URL_SCHEME = 'downloads://';
        class BrowserFiles {
            constructor(files) {
                if (files == null || files.length < 1) {
                    throw new Error(`When calling browserFiles, at least 1 file is required, ` + `but received ${files}`);
                }
                this.jsonFile = files[0];
                this.weightsFiles = files.slice(1);
            }
            async load() {
                return new Promise((resolve, reject) => {
                    const jsonReader = new FileReader();
                    jsonReader.onload = event => {
                        // tslint:disable-next-line:no-any
                        const modelJSON = JSON.parse(event.target.result);
                        const modelTopology = modelJSON.modelTopology;
                        if (modelTopology == null) {
                            reject(new Error(`modelTopology field is missing from file ${this.jsonFile.name}`));
                            return;
                        }
                        const weightsManifest = modelJSON.weightsManifest;
                        if (weightsManifest == null) {
                            reject(new Error(`weightManifest field is missing from file ${this.jsonFile.name}`));
                            return;
                        }
                        if (this.weightsFiles.length === 0) {
                            resolve({
                                modelTopology
                            });
                            return;
                        }
                        const modelArtifactsPromise = (0,
                            _io_utils.getModelArtifactsForJSON)(modelJSON, weightsManifest => this.loadWeights(weightsManifest));
                        resolve(modelArtifactsPromise);
                    }
                        ;
                    jsonReader.onerror = error => reject(`Failed to read model topology and weights manifest JSON ` + `from file '${this.jsonFile.name}'. BrowserFiles supports loading ` + `Keras-style tf.Model artifacts only.`);
                    jsonReader.readAsText(this.jsonFile);
                }
                );
            }
            loadWeights(weightsManifest) {
                const weightSpecs = [];
                const paths = [];
                for (const entry of weightsManifest) {
                    weightSpecs.push(...entry.weights);
                    paths.push(...entry.paths);
                }
                const pathToFile = this.checkManifestAndWeightFiles(weightsManifest);
                const promises = paths.map(path => this.loadWeightsFile(path, pathToFile[path]));
                return Promise.all(promises).then(buffers => [weightSpecs, (0,
                    _io_utils.concatenateArrayBuffers)(buffers)]);
            }
            loadWeightsFile(path, file) {
                return new Promise((resolve, reject) => {
                    const weightFileReader = new FileReader();
                    weightFileReader.onload = event => {
                        // tslint:disable-next-line:no-any
                        const weightData = event.target.result;
                        resolve(weightData);
                    }
                        ;
                    weightFileReader.onerror = error => reject(`Failed to weights data from file of path '${path}'.`);
                    weightFileReader.readAsArrayBuffer(file);
                }
                );
            }
            /**
             * Check the compatibility between weights manifest and weight files.
             */
            checkManifestAndWeightFiles(manifest) {
                const basenames = [];
                const fileNames = this.weightsFiles.map(file => (0,
                    _io_utils.basename)(file.name));
                const pathToFile = {};
                for (const group of manifest) {
                    group.paths.forEach(path => {
                        const pathBasename = (0,
                            _io_utils.basename)(path);
                        if (basenames.indexOf(pathBasename) !== -1) {
                            throw new Error(`Duplicate file basename found in weights manifest: ` + `'${pathBasename}'`);
                        }
                        basenames.push(pathBasename);
                        if (fileNames.indexOf(pathBasename) === -1) {
                            throw new Error(`Weight file with basename '${pathBasename}' is not provided.`);
                        } else {
                            pathToFile[path] = this.weightsFiles[fileNames.indexOf(pathBasename)];
                        }
                    }
                    );
                }
                if (basenames.length !== this.weightsFiles.length) {
                    throw new Error(`Mismatch in the number of files in weights manifest ` + `(${basenames.length}) and the number of weight files provided ` + `(${this.weightsFiles.length}).`);
                }
                return pathToFile;
            }
        }
        const browserDownloadsRouter = url => {
            if (!(0,
                _environment.env)().getBool('IS_BROWSER')) {
                return null;
            } else {
                if (!Array.isArray(url) && url.startsWith(BrowserDownloads.URL_SCHEME)) {
                    return browserDownloads(url.slice(BrowserDownloads.URL_SCHEME.length));
                } else {
                    return null;
                }
            }
        };
        exports.browserDownloadsRouter = browserDownloadsRouter;
        _router_registry.IORouterRegistry.registerSaveRouter(browserDownloadsRouter);
        /**
         * Creates an IOHandler that triggers file downloads from the browser.
         *
         * The returned `IOHandler` instance can be used as model exporting methods such
         * as `tf.Model.save` and supports only saving.
         *
         * ```js
         * const model = tf.sequential();
         * model.add(tf.layers.dense(
         *     {units: 1, inputShape: [10], activation: 'sigmoid'}));
         * const saveResult = await model.save('downloads://mymodel');
         * // This will trigger downloading of two files:
         * //   'mymodel.json' and 'mymodel.weights.bin'.
         * console.log(saveResult);
         * ```
         *
         * @param fileNamePrefix Prefix name of the files to be downloaded. For use with
         *   `tf.Model`, `fileNamePrefix` should follow either of the following two
         *   formats:
         *   1. `null` or `undefined`, in which case the default file
         *      names will be used:
         *      - 'model.json' for the JSON file containing the model topology and
         *        weights manifest.
         *      - 'model.weights.bin' for the binary file containing the binary weight
         *        values.
         *   2. A single string or an Array of a single string, as the file name prefix.
         *      For example, if `'foo'` is provided, the downloaded JSON
         *      file and binary weights file will be named 'foo.json' and
         *      'foo.weights.bin', respectively.
         * @param config Additional configuration for triggering downloads.
         * @returns An instance of `BrowserDownloads` `IOHandler`.
         *
         * @doc {
         *   heading: 'Models',
         *   subheading: 'Loading',
         *   namespace: 'io',
         *   ignoreCI: true
         * }
         */
        function browserDownloads(fileNamePrefix = 'model') {
            return new BrowserDownloads(fileNamePrefix);
        }
        /**
         * Creates an IOHandler that loads model artifacts from user-selected files.
         *
         * This method can be used for loading from files such as user-selected files
         * in the browser.
         * When used in conjunction with `tf.loadLayersModel`, an instance of
         * `tf.LayersModel` (Keras-style) can be constructed from the loaded artifacts.
         *
         * ```js
         * // Note: This code snippet won't run properly without the actual file input
         * //   elements in the HTML DOM.
         *
         * // Suppose there are two HTML file input (`<input type="file" ...>`)
         * // elements.
         * const uploadJSONInput = document.getElementById('upload-json');
         * const uploadWeightsInput = document.getElementById('upload-weights');
         * const model = await tf.loadLayersModel(tf.io.browserFiles(
         *     [uploadJSONInput.files[0], uploadWeightsInput.files[0]]));
         * ```
         *
         * @param files `File`s to load from. Currently, this function supports only
         *   loading from files that contain Keras-style models (i.e., `tf.Model`s), for
         *   which an `Array` of `File`s is expected (in that order):
         *   - A JSON file containing the model topology and weight manifest.
         *   - Optionally, one or more binary files containing the binary weights.
         *     These files must have names that match the paths in the `weightsManifest`
         *     contained by the aforementioned JSON file, or errors will be thrown
         *     during loading. These weights files have the same format as the ones
         *     generated by `tensorflowjs_converter` that comes with the `tensorflowjs`
         *     Python PIP package. If no weights files are provided, only the model
         *     topology will be loaded from the JSON file above.
         * @returns An instance of `Files` `IOHandler`.
         *
         * @doc {
         *   heading: 'Models',
         *   subheading: 'Loading',
         *   namespace: 'io',
         *   ignoreCI: true
         * }
         */
        function browserFiles(files) {
            return new BrowserFiles(files);
        }

    }
        , {
        "../environment": 78,
        "../flags": 79,
        "./io_utils": 190,
        "./router_registry": 195
    }],
    187: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.HTTPRequest = void 0;
        exports.browserHTTPRequest = browserHTTPRequest;
        exports.http = http;
        exports.httpRouter = void 0;
        exports.isHTTPScheme = isHTTPScheme;
        exports.parseUrl = parseUrl;
        var _environment = require("../environment");
        var _util = require("../util");
        var _io_utils = require("./io_utils");
        var _router_registry = require("./router_registry");
        var _weights_loader = require("./weights_loader");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        /**
         * IOHandler implementations based on HTTP requests in the web browser.
         *
         * Uses [`fetch`](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API).
         */

        const OCTET_STREAM_MIME_TYPE = 'application/octet-stream';
        const JSON_TYPE = 'application/json';
        class HTTPRequest {
            constructor(path, loadOptions) {
                this.DEFAULT_METHOD = 'POST';
                if (loadOptions == null) {
                    loadOptions = {};
                }
                this.weightPathPrefix = loadOptions.weightPathPrefix;
                this.onProgress = loadOptions.onProgress;
                this.weightUrlConverter = loadOptions.weightUrlConverter;
                if (loadOptions.fetchFunc != null) {
                    (0,
                        _util.assert)(typeof loadOptions.fetchFunc === 'function', () => 'Must pass a function that matches the signature of ' + '`fetch` (see ' + 'https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)');
                    this.fetch = loadOptions.fetchFunc;
                } else {
                    this.fetch = (0,
                        _environment.env)().platform.fetch;
                }
                (0,
                    _util.assert)(path != null && path.length > 0, () => 'URL path for http must not be null, undefined or ' + 'empty.');
                if (Array.isArray(path)) {
                    (0,
                        _util.assert)(path.length === 2, () => 'URL paths for http must have a length of 2, ' + `(actual length is ${path.length}).`);
                }
                this.path = path;
                if (loadOptions.requestInit != null && loadOptions.requestInit.body != null) {
                    throw new Error('requestInit is expected to have no pre-existing body, but has one.');
                }
                this.requestInit = loadOptions.requestInit || {};
            }
            async save(modelArtifacts) {
                if (modelArtifacts.modelTopology instanceof ArrayBuffer) {
                    throw new Error('BrowserHTTPRequest.save() does not support saving model topology ' + 'in binary formats yet.');
                }
                const init = Object.assign({
                    method: this.DEFAULT_METHOD
                }, this.requestInit);
                init.body = new FormData();
                const weightsManifest = [{
                    paths: ['./model.weights.bin'],
                    weights: modelArtifacts.weightSpecs
                }];
                const modelTopologyAndWeightManifest = (0,
                    _io_utils.getModelJSONForModelArtifacts)(modelArtifacts, weightsManifest);
                init.body.append('model.json', new Blob([JSON.stringify(modelTopologyAndWeightManifest)], {
                    type: JSON_TYPE
                }), 'model.json');
                if (modelArtifacts.weightData != null) {
                    init.body.append('model.weights.bin', new Blob([modelArtifacts.weightData], {
                        type: OCTET_STREAM_MIME_TYPE
                    }), 'model.weights.bin');
                }
                const response = await this.fetch(this.path, init);
                if (response.ok) {
                    return {
                        modelArtifactsInfo: (0,
                            _io_utils.getModelArtifactsInfoForJSON)(modelArtifacts),
                        responses: [response]
                    };
                } else {
                    throw new Error(`BrowserHTTPRequest.save() failed due to HTTP response status ` + `${response.status}.`);
                }
            }
            /**
             * Load model artifacts via HTTP request(s).
             *
             * See the documentation to `tf.io.http` for details on the saved
             * artifacts.
             *
             * @returns The loaded model artifacts (if loading succeeds).
             */
            async load() {
                const modelConfigRequest = await this.fetch(this.path, this.requestInit);
                if (!modelConfigRequest.ok) {
                    throw new Error(`Request to ${this.path} failed with status code ` + `${modelConfigRequest.status}. Please verify this URL points to ` + `the model JSON of the model to load.`);
                }
                let modelJSON;
                try {
                    modelJSON = await modelConfigRequest.json();
                } catch (e) {
                    let message = `Failed to parse model JSON of response from ${this.path}.`;
                    // TODO(nsthorat): Remove this after some time when we're comfortable that
                    // .pb files are mostly gone.
                    if (this.path.endsWith('.pb')) {
                        message += ' Your path contains a .pb file extension. ' + 'Support for .pb models have been removed in TensorFlow.js 1.0 ' + 'in favor of .json models. You can re-convert your Python ' + 'TensorFlow model using the TensorFlow.js 1.0 conversion scripts ' + 'or you can convert your.pb models with the \'pb2json\'' + 'NPM script in the tensorflow/tfjs-converter repository.';
                    } else {
                        message += ' Please make sure the server is serving valid ' + 'JSON for this request.';
                    }
                    throw new Error(message);
                }
                // We do not allow both modelTopology and weightsManifest to be missing.
                const modelTopology = modelJSON.modelTopology;
                const weightsManifest = modelJSON.weightsManifest;
                if (modelTopology == null && weightsManifest == null) {
                    throw new Error(`The JSON from HTTP path ${this.path} contains neither model ` + `topology or manifest for weights.`);
                }
                return (0,
                    _io_utils.getModelArtifactsForJSON)(modelJSON, weightsManifest => this.loadWeights(weightsManifest));
            }
            async loadWeights(weightsManifest) {
                const weightPath = Array.isArray(this.path) ? this.path[1] : this.path;
                const [prefix, suffix] = parseUrl(weightPath);
                const pathPrefix = this.weightPathPrefix || prefix;
                const weightSpecs = (0,
                    _io_utils.getWeightSpecs)(weightsManifest);
                const fetchURLs = [];
                const urlPromises = [];
                for (const weightsGroup of weightsManifest) {
                    for (const path of weightsGroup.paths) {
                        if (this.weightUrlConverter != null) {
                            urlPromises.push(this.weightUrlConverter(path));
                        } else {
                            fetchURLs.push(pathPrefix + path + suffix);
                        }
                    }
                }
                if (this.weightUrlConverter) {
                    fetchURLs.push(...(await Promise.all(urlPromises)));
                }
                const buffers = await (0,
                    _weights_loader.loadWeightsAsArrayBuffer)(fetchURLs, {
                        requestInit: this.requestInit,
                        fetchFunc: this.fetch,
                        onProgress: this.onProgress
                    });
                return [weightSpecs, (0,
                    _io_utils.concatenateArrayBuffers)(buffers)];
            }
        }
        exports.HTTPRequest = HTTPRequest;
        HTTPRequest.URL_SCHEME_REGEX = /^https?:\/\//;
        /**
         * Extract the prefix and suffix of the url, where the prefix is the path before
         * the last file, and suffix is the search params after the last file.
         * ```
         * const url = 'http://tfhub.dev/model/1/tensorflowjs_model.pb?tfjs-format=file'
         * [prefix, suffix] = parseUrl(url)
         * // prefix = 'http://tfhub.dev/model/1/'
         * // suffix = '?tfjs-format=file'
         * ```
         * @param url the model url to be parsed.
         */
        function parseUrl(url) {
            const lastSlash = url.lastIndexOf('/');
            const lastSearchParam = url.lastIndexOf('?');
            const prefix = url.substring(0, lastSlash);
            const suffix = lastSearchParam > lastSlash ? url.substring(lastSearchParam) : '';
            return [prefix + '/', suffix];
        }
        function isHTTPScheme(url) {
            return url.match(HTTPRequest.URL_SCHEME_REGEX) != null;
        }
        const httpRouter = (url, loadOptions) => {
            if (typeof fetch === 'undefined' && (loadOptions == null || loadOptions.fetchFunc == null)) {
                // `http` uses `fetch` or `node-fetch`, if one wants to use it in
                // an environment that is not the browser or node they have to setup a
                // global fetch polyfill.
                return null;
            } else {
                let isHTTP = true;
                if (Array.isArray(url)) {
                    isHTTP = url.every(urlItem => isHTTPScheme(urlItem));
                } else {
                    isHTTP = isHTTPScheme(url);
                }
                if (isHTTP) {
                    return http(url, loadOptions);
                }
            }
            return null;
        };
        exports.httpRouter = httpRouter;
        _router_registry.IORouterRegistry.registerSaveRouter(httpRouter);
        _router_registry.IORouterRegistry.registerLoadRouter(httpRouter);
        /**
         * Creates an IOHandler subtype that sends model artifacts to HTTP server.
         *
         * An HTTP request of the `multipart/form-data` mime type will be sent to the
         * `path` URL. The form data includes artifacts that represent the topology
         * and/or weights of the model. In the case of Keras-style `tf.Model`, two
         * blobs (files) exist in form-data:
         *   - A JSON file consisting of `modelTopology` and `weightsManifest`.
         *   - A binary weights file consisting of the concatenated weight values.
         * These files are in the same format as the one generated by
         * [tfjs_converter](https://js.tensorflow.org/tutorials/import-keras.html).
         *
         * The following code snippet exemplifies the client-side code that uses this
         * function:
         *
         * ```js
         * const model = tf.sequential();
         * model.add(
         *     tf.layers.dense({units: 1, inputShape: [100], activation: 'sigmoid'}));
         *
         * const saveResult = await model.save(tf.io.http(
         *     'http://model-server:5000/upload', {requestInit: {method: 'PUT'}}));
         * console.log(saveResult);
         * ```
         *
         * If the default `POST` method is to be used, without any custom parameters
         * such as headers, you can simply pass an HTTP or HTTPS URL to `model.save`:
         *
         * ```js
         * const saveResult = await model.save('http://model-server:5000/upload');
         * ```
         *
         * The following GitHub Gist
         * https://gist.github.com/dsmilkov/1b6046fd6132d7408d5257b0976f7864
         * implements a server based on [flask](https://github.com/pallets/flask) that
         * can receive the request. Upon receiving the model artifacts via the requst,
         * this particular server reconstitutes instances of [Keras
         * Models](https://keras.io/models/model/) in memory.
         *
         *
         * @param path A URL path to the model.
         *   Can be an absolute HTTP path (e.g.,
         *   'http://localhost:8000/model-upload)') or a relative path (e.g.,
         *   './model-upload').
         * @param requestInit Request configurations to be used when sending
         *    HTTP request to server using `fetch`. It can contain fields such as
         *    `method`, `credentials`, `headers`, `mode`, etc. See
         *    https://developer.mozilla.org/en-US/docs/Web/API/Request/Request
         *    for more information. `requestInit` must not have a body, because the
         * body will be set by TensorFlow.js. File blobs representing the model
         * topology (filename: 'model.json') and the weights of the model (filename:
         * 'model.weights.bin') will be appended to the body. If `requestInit` has a
         * `body`, an Error will be thrown.
         * @param loadOptions Optional configuration for the loading. It includes the
         *   following fields:
         *   - weightPathPrefix Optional, this specifies the path prefix for weight
         *     files, by default this is calculated from the path param.
         *   - fetchFunc Optional, custom `fetch` function. E.g., in Node.js,
         *     the `fetch` from node-fetch can be used here.
         *   - onProgress Optional, progress callback function, fired periodically
         *     before the load is completed.
         * @returns An instance of `IOHandler`.
         *
         * @doc {
         *   heading: 'Models',
         *   subheading: 'Loading',
         *   namespace: 'io',
         *   ignoreCI: true
         * }
         */
        function http(path, loadOptions) {
            return new HTTPRequest(path, loadOptions);
        }
        /**
         * Deprecated. Use `tf.io.http`.
         * @param path
         * @param loadOptions
         */
        function browserHTTPRequest(path, loadOptions) {
            return http(path, loadOptions);
        }

    }
        , {
        "../environment": 78,
        "../util": 509,
        "./io_utils": 190,
        "./router_registry": 195,
        "./weights_loader": 197
    }],
    188: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.BrowserIndexedDBManager = exports.BrowserIndexedDB = void 0;
        exports.browserIndexedDB = browserIndexedDB;
        exports.deleteDatabase = deleteDatabase;
        exports.indexedDBRouter = void 0;
        require("../flags");
        var _environment = require("../environment");
        var _io_utils = require("./io_utils");
        var _router_registry = require("./router_registry");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const DATABASE_NAME = 'tensorflowjs';
        const DATABASE_VERSION = 1;
        // Model data and ModelArtifactsInfo (metadata) are stored in two separate
        // stores for efficient access of the list of stored models and their metadata.
        // 1. The object store for model data: topology, weights and weight manifests.
        const MODEL_STORE_NAME = 'models_store';
        // 2. The object store for ModelArtifactsInfo, including meta-information such
        //    as the type of topology (JSON vs binary), byte size of the topology, byte
        //    size of the weights, etc.
        const INFO_STORE_NAME = 'model_info_store';
        /**
         * Delete the entire database for tensorflow.js, including the models store.
         */
        async function deleteDatabase() {
            const idbFactory = getIndexedDBFactory();
            return new Promise((resolve, reject) => {
                const deleteRequest = idbFactory.deleteDatabase(DATABASE_NAME);
                deleteRequest.onsuccess = () => resolve();
                deleteRequest.onerror = error => reject(error);
            }
            );
        }
        function getIndexedDBFactory() {
            if (!(0,
                _environment.env)().getBool('IS_BROWSER')) {
                // TODO(cais): Add more info about what IOHandler subtypes are available.
                //   Maybe point to a doc page on the web and/or automatically determine
                //   the available IOHandlers and print them in the error message.
                throw new Error('Failed to obtain IndexedDB factory because the current environment' + 'is not a web browser.');
            }
            // tslint:disable-next-line:no-any
            const theWindow = typeof window === 'undefined' ? self : window;
            const factory = theWindow.indexedDB || theWindow.mozIndexedDB || theWindow.webkitIndexedDB || theWindow.msIndexedDB || theWindow.shimIndexedDB;
            if (factory == null) {
                throw new Error('The current browser does not appear to support IndexedDB.');
            }
            return factory;
        }
        function setUpDatabase(openRequest) {
            const db = openRequest.result;
            db.createObjectStore(MODEL_STORE_NAME, {
                keyPath: 'modelPath'
            });
            db.createObjectStore(INFO_STORE_NAME, {
                keyPath: 'modelPath'
            });
        }
        /**
         * IOHandler subclass: Browser IndexedDB.
         *
         * See the doc string of `browserIndexedDB` for more details.
         */
        class BrowserIndexedDB {
            constructor(modelPath) {
                this.indexedDB = getIndexedDBFactory();
                if (modelPath == null || !modelPath) {
                    throw new Error('For IndexedDB, modelPath must not be null, undefined or empty.');
                }
                this.modelPath = modelPath;
            }
            async save(modelArtifacts) {
                // TODO(cais): Support saving GraphDef models.
                if (modelArtifacts.modelTopology instanceof ArrayBuffer) {
                    throw new Error('BrowserLocalStorage.save() does not support saving model topology ' + 'in binary formats yet.');
                }
                return this.databaseAction(this.modelPath, modelArtifacts);
            }
            async load() {
                return this.databaseAction(this.modelPath);
            }
            /**
             * Perform database action to put model artifacts into or read model artifacts
             * from IndexedDB object store.
             *
             * Whether the action is put or get depends on whether `modelArtifacts` is
             * specified. If it is specified, the action will be put; otherwise the action
             * will be get.
             *
             * @param modelPath A unique string path for the model.
             * @param modelArtifacts If specified, it will be the model artifacts to be
             *   stored in IndexedDB.
             * @returns A `Promise` of `SaveResult`, if the action is put, or a `Promise`
             *   of `ModelArtifacts`, if the action is get.
             */
            databaseAction(modelPath, modelArtifacts) {
                return new Promise((resolve, reject) => {
                    const openRequest = this.indexedDB.open(DATABASE_NAME, DATABASE_VERSION);
                    openRequest.onupgradeneeded = () => setUpDatabase(openRequest);
                    openRequest.onsuccess = () => {
                        const db = openRequest.result;
                        if (modelArtifacts == null) {
                            // Read model out from object store.
                            const modelTx = db.transaction(MODEL_STORE_NAME, 'readonly');
                            const modelStore = modelTx.objectStore(MODEL_STORE_NAME);
                            const getRequest = modelStore.get(this.modelPath);
                            getRequest.onsuccess = () => {
                                if (getRequest.result == null) {
                                    db.close();
                                    return reject(new Error(`Cannot find model with path '${this.modelPath}' ` + `in IndexedDB.`));
                                } else {
                                    resolve(getRequest.result.modelArtifacts);
                                }
                            }
                                ;
                            getRequest.onerror = error => {
                                db.close();
                                return reject(getRequest.error);
                            }
                                ;
                            modelTx.oncomplete = () => db.close();
                        } else {
                            // Put model into object store.
                            const modelArtifactsInfo = (0,
                                _io_utils.getModelArtifactsInfoForJSON)(modelArtifacts);
                            // First, put ModelArtifactsInfo into info store.
                            const infoTx = db.transaction(INFO_STORE_NAME, 'readwrite');
                            let infoStore = infoTx.objectStore(INFO_STORE_NAME);
                            const putInfoRequest = infoStore.put({
                                modelPath: this.modelPath,
                                modelArtifactsInfo
                            });
                            let modelTx;
                            putInfoRequest.onsuccess = () => {
                                // Second, put model data into model store.
                                modelTx = db.transaction(MODEL_STORE_NAME, 'readwrite');
                                const modelStore = modelTx.objectStore(MODEL_STORE_NAME);
                                const putModelRequest = modelStore.put({
                                    modelPath: this.modelPath,
                                    modelArtifacts,
                                    modelArtifactsInfo
                                });
                                putModelRequest.onsuccess = () => resolve({
                                    modelArtifactsInfo
                                });
                                putModelRequest.onerror = error => {
                                    // If the put-model request fails, roll back the info entry as
                                    // well.
                                    infoStore = infoTx.objectStore(INFO_STORE_NAME);
                                    const deleteInfoRequest = infoStore.delete(this.modelPath);
                                    deleteInfoRequest.onsuccess = () => {
                                        db.close();
                                        return reject(putModelRequest.error);
                                    }
                                        ;
                                    deleteInfoRequest.onerror = error => {
                                        db.close();
                                        return reject(putModelRequest.error);
                                    }
                                        ;
                                }
                                    ;
                            }
                                ;
                            putInfoRequest.onerror = error => {
                                db.close();
                                return reject(putInfoRequest.error);
                            }
                                ;
                            infoTx.oncomplete = () => {
                                if (modelTx == null) {
                                    db.close();
                                } else {
                                    modelTx.oncomplete = () => db.close();
                                }
                            }
                                ;
                        }
                    }
                        ;
                    openRequest.onerror = error => reject(openRequest.error);
                }
                );
            }
        }
        exports.BrowserIndexedDB = BrowserIndexedDB;
        BrowserIndexedDB.URL_SCHEME = 'indexeddb://';
        const indexedDBRouter = url => {
            if (!(0,
                _environment.env)().getBool('IS_BROWSER')) {
                return null;
            } else {
                if (!Array.isArray(url) && url.startsWith(BrowserIndexedDB.URL_SCHEME)) {
                    return browserIndexedDB(url.slice(BrowserIndexedDB.URL_SCHEME.length));
                } else {
                    return null;
                }
            }
        };
        exports.indexedDBRouter = indexedDBRouter;
        _router_registry.IORouterRegistry.registerSaveRouter(indexedDBRouter);
        _router_registry.IORouterRegistry.registerLoadRouter(indexedDBRouter);
        /**
         * Creates a browser IndexedDB IOHandler for saving and loading models.
         *
         * ```js
         * const model = tf.sequential();
         * model.add(
         *     tf.layers.dense({units: 1, inputShape: [100], activation: 'sigmoid'}));
         *
         * const saveResult = await model.save('indexeddb://MyModel'));
         * console.log(saveResult);
         * ```
         *
         * @param modelPath A unique identifier for the model to be saved. Must be a
         *   non-empty string.
         * @returns An instance of `BrowserIndexedDB` (sublcass of `IOHandler`),
         *   which can be used with, e.g., `tf.Model.save`.
         */
        function browserIndexedDB(modelPath) {
            return new BrowserIndexedDB(modelPath);
        }
        function maybeStripScheme(key) {
            return key.startsWith(BrowserIndexedDB.URL_SCHEME) ? key.slice(BrowserIndexedDB.URL_SCHEME.length) : key;
        }
        class BrowserIndexedDBManager {
            constructor() {
                this.indexedDB = getIndexedDBFactory();
            }
            async listModels() {
                return new Promise((resolve, reject) => {
                    const openRequest = this.indexedDB.open(DATABASE_NAME, DATABASE_VERSION);
                    openRequest.onupgradeneeded = () => setUpDatabase(openRequest);
                    openRequest.onsuccess = () => {
                        const db = openRequest.result;
                        const tx = db.transaction(INFO_STORE_NAME, 'readonly');
                        const store = tx.objectStore(INFO_STORE_NAME);
                        // tslint:disable:max-line-length
                        // Need to cast `store` as `any` here because TypeScript's DOM
                        // library does not have the `getAll()` method even though the
                        // method is supported in the latest version of most mainstream
                        // browsers:
                        // https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore/getAll
                        // tslint:enable:max-line-length
                        // tslint:disable-next-line:no-any
                        const getAllInfoRequest = store.getAll();
                        getAllInfoRequest.onsuccess = () => {
                            const out = {};
                            for (const item of getAllInfoRequest.result) {
                                out[item.modelPath] = item.modelArtifactsInfo;
                            }
                            resolve(out);
                        }
                            ;
                        getAllInfoRequest.onerror = error => {
                            db.close();
                            return reject(getAllInfoRequest.error);
                        }
                            ;
                        tx.oncomplete = () => db.close();
                    }
                        ;
                    openRequest.onerror = error => reject(openRequest.error);
                }
                );
            }
            async removeModel(path) {
                path = maybeStripScheme(path);
                return new Promise((resolve, reject) => {
                    const openRequest = this.indexedDB.open(DATABASE_NAME, DATABASE_VERSION);
                    openRequest.onupgradeneeded = () => setUpDatabase(openRequest);
                    openRequest.onsuccess = () => {
                        const db = openRequest.result;
                        const infoTx = db.transaction(INFO_STORE_NAME, 'readwrite');
                        const infoStore = infoTx.objectStore(INFO_STORE_NAME);
                        const getInfoRequest = infoStore.get(path);
                        let modelTx;
                        getInfoRequest.onsuccess = () => {
                            if (getInfoRequest.result == null) {
                                db.close();
                                return reject(new Error(`Cannot find model with path '${path}' ` + `in IndexedDB.`));
                            } else {
                                // First, delete the entry in the info store.
                                const deleteInfoRequest = infoStore.delete(path);
                                const deleteModelData = () => {
                                    // Second, delete the entry in the model store.
                                    modelTx = db.transaction(MODEL_STORE_NAME, 'readwrite');
                                    const modelStore = modelTx.objectStore(MODEL_STORE_NAME);
                                    const deleteModelRequest = modelStore.delete(path);
                                    deleteModelRequest.onsuccess = () => resolve(getInfoRequest.result.modelArtifactsInfo);
                                    deleteModelRequest.onerror = error => reject(getInfoRequest.error);
                                }
                                    ;
                                // Proceed with deleting model data regardless of whether deletion
                                // of info data succeeds or not.
                                deleteInfoRequest.onsuccess = deleteModelData;
                                deleteInfoRequest.onerror = error => {
                                    deleteModelData();
                                    db.close();
                                    return reject(getInfoRequest.error);
                                }
                                    ;
                            }
                        }
                            ;
                        getInfoRequest.onerror = error => {
                            db.close();
                            return reject(getInfoRequest.error);
                        }
                            ;
                        infoTx.oncomplete = () => {
                            if (modelTx == null) {
                                db.close();
                            } else {
                                modelTx.oncomplete = () => db.close();
                            }
                        }
                            ;
                    }
                        ;
                    openRequest.onerror = error => reject(openRequest.error);
                }
                );
            }
        }
        exports.BrowserIndexedDBManager = BrowserIndexedDBManager;

    }
        , {
        "../environment": 78,
        "../flags": 79,
        "./io_utils": 190,
        "./router_registry": 195
    }],
    189: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        Object.defineProperty(exports, "browserFiles", {
            enumerable: true,
            get: function () {
                return _browser_files.browserFiles;
            }
        });
        Object.defineProperty(exports, "browserHTTPRequest", {
            enumerable: true,
            get: function () {
                return _http.browserHTTPRequest;
            }
        });
        Object.defineProperty(exports, "concatenateArrayBuffers", {
            enumerable: true,
            get: function () {
                return _io_utils.concatenateArrayBuffers;
            }
        });
        Object.defineProperty(exports, "copyModel", {
            enumerable: true,
            get: function () {
                return _model_management.copyModel;
            }
        });
        Object.defineProperty(exports, "decodeWeights", {
            enumerable: true,
            get: function () {
                return _io_utils.decodeWeights;
            }
        });
        Object.defineProperty(exports, "encodeWeights", {
            enumerable: true,
            get: function () {
                return _io_utils.encodeWeights;
            }
        });
        Object.defineProperty(exports, "fromMemory", {
            enumerable: true,
            get: function () {
                return _passthrough.fromMemory;
            }
        });
        Object.defineProperty(exports, "fromMemorySync", {
            enumerable: true,
            get: function () {
                return _passthrough.fromMemorySync;
            }
        });
        Object.defineProperty(exports, "getLoadHandlers", {
            enumerable: true,
            get: function () {
                return _router_registry.getLoadHandlers;
            }
        });
        Object.defineProperty(exports, "getModelArtifactsForJSON", {
            enumerable: true,
            get: function () {
                return _io_utils.getModelArtifactsForJSON;
            }
        });
        Object.defineProperty(exports, "getModelArtifactsForJSONSync", {
            enumerable: true,
            get: function () {
                return _io_utils.getModelArtifactsForJSONSync;
            }
        });
        Object.defineProperty(exports, "getModelArtifactsInfoForJSON", {
            enumerable: true,
            get: function () {
                return _io_utils.getModelArtifactsInfoForJSON;
            }
        });
        Object.defineProperty(exports, "getSaveHandlers", {
            enumerable: true,
            get: function () {
                return _router_registry.getSaveHandlers;
            }
        });
        Object.defineProperty(exports, "getWeightSpecs", {
            enumerable: true,
            get: function () {
                return _io_utils.getWeightSpecs;
            }
        });
        Object.defineProperty(exports, "http", {
            enumerable: true,
            get: function () {
                return _http.http;
            }
        });
        Object.defineProperty(exports, "isHTTPScheme", {
            enumerable: true,
            get: function () {
                return _http.isHTTPScheme;
            }
        });
        Object.defineProperty(exports, "listModels", {
            enumerable: true,
            get: function () {
                return _model_management.listModels;
            }
        });
        Object.defineProperty(exports, "loadWeights", {
            enumerable: true,
            get: function () {
                return _weights_loader.loadWeights;
            }
        });
        Object.defineProperty(exports, "moveModel", {
            enumerable: true,
            get: function () {
                return _model_management.moveModel;
            }
        });
        Object.defineProperty(exports, "registerLoadRouter", {
            enumerable: true,
            get: function () {
                return _router_registry.registerLoadRouter;
            }
        });
        Object.defineProperty(exports, "registerSaveRouter", {
            enumerable: true,
            get: function () {
                return _router_registry.registerSaveRouter;
            }
        });
        Object.defineProperty(exports, "removeModel", {
            enumerable: true,
            get: function () {
                return _model_management.removeModel;
            }
        });
        Object.defineProperty(exports, "weightsLoaderFactory", {
            enumerable: true,
            get: function () {
                return _weights_loader.weightsLoaderFactory;
            }
        });
        Object.defineProperty(exports, "withSaveHandler", {
            enumerable: true,
            get: function () {
                return _passthrough.withSaveHandler;
            }
        });
        Object.defineProperty(exports, "withSaveHandlerSync", {
            enumerable: true,
            get: function () {
                return _passthrough.withSaveHandlerSync;
            }
        });
        require("./indexed_db");
        require("./local_storage");
        var _browser_files = require("./browser_files");
        var _http = require("./http");
        var _io_utils = require("./io_utils");
        var _passthrough = require("./passthrough");
        var _router_registry = require("./router_registry");
        var _weights_loader = require("./weights_loader");
        var _model_management = require("./model_management");

    }
        , {
        "./browser_files": 186,
        "./http": 187,
        "./indexed_db": 188,
        "./io_utils": 190,
        "./local_storage": 191,
        "./model_management": 192,
        "./passthrough": 193,
        "./router_registry": 195,
        "./weights_loader": 197
    }],
    190: [function (require, module, exports) {
        (function (Buffer) {
            (function () {
                "use strict";

                Object.defineProperty(exports, "__esModule", {
                    value: true
                });
                exports.arrayBufferToBase64String = arrayBufferToBase64String;
                exports.base64StringToArrayBuffer = base64StringToArrayBuffer;
                exports.basename = basename;
                exports.concatenateArrayBuffers = concatenateArrayBuffers;
                exports.concatenateTypedArrays = concatenateTypedArrays;
                exports.decodeWeights = decodeWeights;
                exports.encodeWeights = encodeWeights;
                exports.getFloat16Decoder = getFloat16Decoder;
                exports.getModelArtifactsForJSON = getModelArtifactsForJSON;
                exports.getModelArtifactsForJSONSync = getModelArtifactsForJSONSync;
                exports.getModelArtifactsInfoForJSON = getModelArtifactsInfoForJSON;
                exports.getModelJSONForModelArtifacts = getModelJSONForModelArtifacts;
                exports.getWeightSpecs = getWeightSpecs;
                exports.stringByteLength = stringByteLength;
                var _complex = require("../ops/complex");
                var _tensor = require("../ops/tensor");
                var _util = require("../util");
                var _types = require("./types");
                /**
                 * @license
                 * Copyright 2018 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */

                /** Number of bytes reserved for the length of the string. (32bit integer). */
                const NUM_BYTES_STRING_LENGTH = 4;
                /**
                 * Encode a map from names to weight values as an ArrayBuffer, along with an
                 * `Array` of `WeightsManifestEntry` as specification of the encoded weights.
                 *
                 * This function does not perform sharding.
                 *
                 * This function is the reverse of `decodeWeights`.
                 *
                 * @param tensors A map ("dict") from names to tensors.
                 * @param group Group to which the weights belong (optional).
                 * @returns A `Promise` of
                 *   - A flat `ArrayBuffer` with all the binary values of the `Tensor`s
                 *     concatenated.
                 *   - An `Array` of `WeightManifestEntry`s, carrying information including
                 *     tensor names, `dtype`s and shapes.
                 * @throws Error: on unsupported tensor `dtype`.
                 */
                async function encodeWeights(tensors, group) {
                    // TODO(adarob, cais): Support quantization.
                    const specs = [];
                    const dataPromises = [];
                    const names = Array.isArray(tensors) ? tensors.map(tensor => tensor.name) : Object.keys(tensors);
                    for (let i = 0; i < names.length; ++i) {
                        const name = names[i];
                        const t = Array.isArray(tensors) ? tensors[i].tensor : tensors[name];
                        if (t.dtype !== 'float32' && t.dtype !== 'int32' && t.dtype !== 'bool' && t.dtype !== 'string' && t.dtype !== 'complex64') {
                            throw new Error(`Unsupported dtype in weight '${name}': ${t.dtype}`);
                        }
                        const spec = {
                            name,
                            shape: t.shape,
                            dtype: t.dtype
                        };
                        if (t.dtype === 'string') {
                            const utf8bytes = new Promise(async resolve => {
                                const vals = await t.bytes();
                                const totalNumBytes = vals.reduce((p, c) => p + c.length, 0) + NUM_BYTES_STRING_LENGTH * vals.length;
                                const bytes = new Uint8Array(totalNumBytes);
                                let offset = 0;
                                for (let i = 0; i < vals.length; i++) {
                                    const val = vals[i];
                                    const bytesOfLength = new Uint8Array(new Uint32Array([val.length]).buffer);
                                    bytes.set(bytesOfLength, offset);
                                    offset += NUM_BYTES_STRING_LENGTH;
                                    bytes.set(val, offset);
                                    offset += val.length;
                                }
                                resolve(bytes);
                            }
                            );
                            dataPromises.push(utf8bytes);
                        } else {
                            dataPromises.push(t.data());
                        }
                        if (group != null) {
                            spec.group = group;
                        }
                        specs.push(spec);
                    }
                    const tensorValues = await Promise.all(dataPromises);
                    return {
                        data: concatenateTypedArrays(tensorValues),
                        specs
                    };
                }
                /**
                 * Decode flat ArrayBuffer as weights.
                 *
                 * This function does not handle sharding.
                 *
                 * This function is the reverse of `encodeWeights`.
                 *
                 * @param buffer A flat ArrayBuffer carrying the binary values of the tensors
                 *   concatenated in the order specified in `specs`.
                 * @param specs Specifications of the names, dtypes and shapes of the tensors
                 *   whose value are encoded by `buffer`.
                 * @return A map from tensor name to tensor value, with the names corresponding
                 *   to names in `specs`.
                 * @throws Error, if any of the tensors has unsupported dtype.
                 */
                function decodeWeights(buffer, specs) {
                    // TODO(adarob, cais): Support quantization.
                    const out = {};
                    let float16Decode;
                    let offset = 0;
                    for (const spec of specs) {
                        const name = spec.name;
                        const dtype = spec.dtype;
                        const shape = spec.shape;
                        const size = (0,
                            _util.sizeFromShape)(shape);
                        let values;
                        if ('quantization' in spec) {
                            const quantization = spec.quantization;
                            if (quantization.dtype === 'uint8' || quantization.dtype === 'uint16') {
                                if (!('min' in quantization && 'scale' in quantization)) {
                                    throw new Error(`Weight ${spec.name} with quantization ${quantization.dtype} ` + `doesn't have corresponding metadata min and scale.`);
                                }
                            } else if (quantization.dtype === 'float16') {
                                if (dtype !== 'float32') {
                                    throw new Error(`Weight ${spec.name} is quantized with ${quantization.dtype} ` + `which only supports weights of type float32 not ${dtype}.`);
                                }
                            } else {
                                throw new Error(`Weight ${spec.name} has unknown ` + `quantization dtype ${quantization.dtype}. ` + `Supported quantization dtypes are: ` + `'uint8', 'uint16', and 'float16'.`);
                            }
                            const quantizationSizeFactor = _types.DTYPE_VALUE_SIZE_MAP[quantization.dtype];
                            const byteBuffer = buffer.slice(offset, offset + size * quantizationSizeFactor);
                            const quantizedArray = quantization.dtype === 'uint8' ? new Uint8Array(byteBuffer) : new Uint16Array(byteBuffer);
                            if (dtype === 'float32') {
                                if (quantization.dtype === 'uint8' || quantization.dtype === 'uint16') {
                                    values = new Float32Array(quantizedArray.length);
                                    for (let i = 0; i < quantizedArray.length; i++) {
                                        const v = quantizedArray[i];
                                        values[i] = v * quantization.scale + quantization.min;
                                    }
                                } else if (quantization.dtype === 'float16') {
                                    if (float16Decode === undefined) {
                                        float16Decode = getFloat16Decoder();
                                    }
                                    values = float16Decode(quantizedArray);
                                } else {
                                    throw new Error(`Unsupported quantization type ${quantization.dtype} ` + `for weight type float32.`);
                                }
                            } else if (dtype === 'int32') {
                                if (quantization.dtype !== 'uint8' && quantization.dtype !== 'uint16') {
                                    throw new Error(`Unsupported quantization type ${quantization.dtype} ` + `for weight type int32.`);
                                }
                                values = new Int32Array(quantizedArray.length);
                                for (let i = 0; i < quantizedArray.length; i++) {
                                    const v = quantizedArray[i];
                                    values[i] = Math.round(v * quantization.scale + quantization.min);
                                }
                            } else {
                                throw new Error(`Unsupported dtype in weight '${name}': ${dtype}`);
                            }
                            offset += size * quantizationSizeFactor;
                        } else if (dtype === 'string') {
                            const size = (0,
                                _util.sizeFromShape)(spec.shape);
                            values = [];
                            for (let i = 0; i < size; i++) {
                                const byteLength = new Uint32Array(buffer.slice(offset, offset + NUM_BYTES_STRING_LENGTH))[0];
                                offset += NUM_BYTES_STRING_LENGTH;
                                const bytes = new Uint8Array(buffer.slice(offset, offset + byteLength));
                                values.push(bytes);
                                offset += byteLength;
                            }
                        } else {
                            const dtypeFactor = _types.DTYPE_VALUE_SIZE_MAP[dtype];
                            const byteBuffer = buffer.slice(offset, offset + size * dtypeFactor);
                            if (dtype === 'float32') {
                                values = new Float32Array(byteBuffer);
                            } else if (dtype === 'int32') {
                                values = new Int32Array(byteBuffer);
                            } else if (dtype === 'bool') {
                                values = new Uint8Array(byteBuffer);
                            } else if (dtype === 'complex64') {
                                values = new Float32Array(byteBuffer);
                                const real = new Float32Array(values.length / 2);
                                const image = new Float32Array(values.length / 2);
                                for (let i = 0; i < real.length; i++) {
                                    real[i] = values[i * 2];
                                    image[i] = values[i * 2 + 1];
                                }
                                const realTensor = (0,
                                    _tensor.tensor)(real, shape, 'float32');
                                const imageTensor = (0,
                                    _tensor.tensor)(image, shape, 'float32');
                                out[name] = (0,
                                    _complex.complex)(realTensor, imageTensor);
                                realTensor.dispose();
                                imageTensor.dispose();
                            } else {
                                throw new Error(`Unsupported dtype in weight '${name}': ${dtype}`);
                            }
                            offset += size * dtypeFactor;
                        }
                        if (dtype !== 'complex64') {
                            out[name] = (0,
                                _tensor.tensor)(values, shape, dtype);
                        }
                    }
                    return out;
                }
                /**
                 * Concatenate TypedArrays into an ArrayBuffer.
                 */
                function concatenateTypedArrays(xs) {
                    // TODO(adarob, cais): Support quantization.
                    if (xs === null) {
                        throw new Error(`Invalid input value: ${JSON.stringify(xs)}`);
                    }
                    let totalByteLength = 0;
                    // `normalizedXs` is here for this reason: a `TypedArray`'s `buffer'
                    // can have a different byte length from that of the `TypedArray` itself,
                    // for example, when the `TypedArray` is created from an offset in an
                    // `ArrayBuffer`. `normliazedXs` holds `TypedArray`s whose `buffer`s match
                    // the `TypedArray` in byte length. If an element of `xs` does not show
                    // this property, a new `TypedArray` that satisfy this property will be
                    // constructed and pushed into `normalizedXs`.
                    const normalizedXs = [];
                    xs.forEach(x => {
                        totalByteLength += x.byteLength;
                        // tslint:disable:no-any
                        normalizedXs.push(x.byteLength === x.buffer.byteLength ? x : new x.constructor(x));
                        if (!(x instanceof Float32Array || x instanceof Int32Array || x instanceof Uint8Array)) {
                            throw new Error(`Unsupported TypedArray subtype: ${x.constructor.name}`);
                        }
                        // tslint:enable:no-any
                    }
                    );

                    const y = new Uint8Array(totalByteLength);
                    let offset = 0;
                    normalizedXs.forEach(x => {
                        y.set(new Uint8Array(x.buffer), offset);
                        offset += x.byteLength;
                    }
                    );
                    return y.buffer;
                }
                // Use Buffer on Node.js instead of Blob/atob/btoa
                const useNodeBuffer = typeof Buffer !== 'undefined' && (typeof Blob === 'undefined' || typeof atob === 'undefined' || typeof btoa === 'undefined');
                /**
                 * Calculate the byte length of a JavaScript string.
                 *
                 * Note that a JavaScript string can contain wide characters, therefore the
                 * length of the string is not necessarily equal to the byte length.
                 *
                 * @param str Input string.
                 * @returns Byte length.
                 */
                function stringByteLength(str) {
                    if (useNodeBuffer) {
                        return Buffer.byteLength(str);
                    }
                    return new Blob([str]).size;
                }
                /**
                 * Encode an ArrayBuffer as a base64 encoded string.
                 *
                 * @param buffer `ArrayBuffer` to be converted.
                 * @returns A string that base64-encodes `buffer`.
                 */
                function arrayBufferToBase64String(buffer) {
                    if (useNodeBuffer) {
                        return Buffer.from(buffer).toString('base64');
                    }
                    const buf = new Uint8Array(buffer);
                    let s = '';
                    for (let i = 0, l = buf.length; i < l; i++) {
                        s += String.fromCharCode(buf[i]);
                    }
                    return btoa(s);
                }
                /**
                 * Decode a base64 string as an ArrayBuffer.
                 *
                 * @param str Base64 string.
                 * @returns Decoded `ArrayBuffer`.
                 */
                function base64StringToArrayBuffer(str) {
                    if (useNodeBuffer) {
                        const buf = Buffer.from(str, 'base64');
                        return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);
                    }
                    const s = atob(str);
                    const buffer = new Uint8Array(s.length);
                    for (let i = 0; i < s.length; ++i) {
                        buffer.set([s.charCodeAt(i)], i);
                    }
                    return buffer.buffer;
                }
                /**
                 * Concatenate a number of ArrayBuffers into one.
                 *
                 * @param buffers A number of array buffers to concatenate.
                 * @returns Result of concatenating `buffers` in order.
                 */
                function concatenateArrayBuffers(buffers) {
                    if (buffers.length === 1) {
                        return buffers[0];
                    }
                    let totalByteLength = 0;
                    buffers.forEach(buffer => {
                        totalByteLength += buffer.byteLength;
                    }
                    );
                    const temp = new Uint8Array(totalByteLength);
                    let offset = 0;
                    buffers.forEach(buffer => {
                        temp.set(new Uint8Array(buffer), offset);
                        offset += buffer.byteLength;
                    }
                    );
                    return temp.buffer;
                }
                /**
                 * Get the basename of a path.
                 *
                 * Behaves in a way analogous to Linux's basename command.
                 *
                 * @param path
                 */
                function basename(path) {
                    const SEPARATOR = '/';
                    path = path.trim();
                    while (path.endsWith(SEPARATOR)) {
                        path = path.slice(0, path.length - 1);
                    }
                    const items = path.split(SEPARATOR);
                    return items[items.length - 1];
                }
                /**
                 * Create `ModelJSON` from `ModelArtifacts`.
                 *
                 * @param artifacts Model artifacts, describing the model and its weights.
                 * @param manifest Weight manifest, describing where the weights of the
                 *     `ModelArtifacts` are stored, and some metadata about them.
                 * @returns Object representing the `model.json` file describing the model
                 *     artifacts and weights
                 */
                function getModelJSONForModelArtifacts(artifacts, manifest) {
                    const result = {
                        modelTopology: artifacts.modelTopology,
                        format: artifacts.format,
                        generatedBy: artifacts.generatedBy,
                        convertedBy: artifacts.convertedBy,
                        weightsManifest: manifest
                    };
                    if (artifacts.signature != null) {
                        result.signature = artifacts.signature;
                    }
                    if (artifacts.userDefinedMetadata != null) {
                        result.userDefinedMetadata = artifacts.userDefinedMetadata;
                    }
                    if (artifacts.modelInitializer != null) {
                        result.modelInitializer = artifacts.modelInitializer;
                    }
                    if (artifacts.initializerSignature != null) {
                        result.initializerSignature = artifacts.initializerSignature;
                    }
                    if (artifacts.trainingConfig != null) {
                        result.trainingConfig = artifacts.trainingConfig;
                    }
                    return result;
                }
                /**
                 * Create `ModelArtifacts` from a JSON file and weights.
                 *
                 * @param modelJSON Object containing the parsed JSON of `model.json`
                 * @param weightSpecs The list of WeightsManifestEntry for the model. Must be
                 *     passed if the modelJSON has a weightsManifest.
                 * @param weightData An ArrayBuffer of weight data for the model corresponding
                 *     to the weights in weightSpecs. Must be passed if the modelJSON has a
                 *     weightsManifest.
                 * @returns A Promise of the `ModelArtifacts`, as described by the JSON file.
                 */
                function getModelArtifactsForJSONSync(modelJSON, weightSpecs, weightData) {
                    const modelArtifacts = {
                        modelTopology: modelJSON.modelTopology,
                        format: modelJSON.format,
                        generatedBy: modelJSON.generatedBy,
                        convertedBy: modelJSON.convertedBy
                    };
                    if (modelJSON.trainingConfig != null) {
                        modelArtifacts.trainingConfig = modelJSON.trainingConfig;
                    }
                    if (modelJSON.weightsManifest != null) {
                        if (!weightSpecs) {
                            throw new Error('modelJSON has weightsManifest but weightSpecs is null');
                        }
                        if (!weightData) {
                            throw new Error('modelJSON has weightsManifest but weightData is null');
                        }
                        modelArtifacts.weightSpecs = weightSpecs;
                        modelArtifacts.weightData = weightData;
                    }
                    if (modelJSON.signature != null) {
                        modelArtifacts.signature = modelJSON.signature;
                    }
                    if (modelJSON.userDefinedMetadata != null) {
                        modelArtifacts.userDefinedMetadata = modelJSON.userDefinedMetadata;
                    }
                    if (modelJSON.modelInitializer != null) {
                        modelArtifacts.modelInitializer = modelJSON.modelInitializer;
                    }
                    if (modelJSON.initializerSignature != null) {
                        modelArtifacts.initializerSignature = modelJSON.initializerSignature;
                    }
                    return modelArtifacts;
                }
                /**
                 * Create `ModelArtifacts` from a JSON file.
                 *
                 * @param modelJSON Object containing the parsed JSON of `model.json`
                 * @param loadWeights Function that takes the JSON file's weights manifest,
                 *     reads weights from the listed path(s), and returns a Promise of the
                 *     weight manifest entries along with the weights data.
                 * @returns A Promise of the `ModelArtifacts`, as described by the JSON file.
                 */
                async function getModelArtifactsForJSON(modelJSON, loadWeights) {
                    let weightSpecs;
                    let weightData;
                    if (modelJSON.weightsManifest != null) {
                        [weightSpecs, weightData] = await loadWeights(modelJSON.weightsManifest);
                    }
                    return getModelArtifactsForJSONSync(modelJSON, weightSpecs, weightData);
                }
                /**
                 * Populate ModelArtifactsInfo fields for a model with JSON topology.
                 * @param modelArtifacts
                 * @returns A ModelArtifactsInfo object.
                 */
                function getModelArtifactsInfoForJSON(modelArtifacts) {
                    if (modelArtifacts.modelTopology instanceof ArrayBuffer) {
                        throw new Error('Expected JSON model topology, received ArrayBuffer.');
                    }
                    return {
                        dateSaved: new Date(),
                        modelTopologyType: 'JSON',
                        modelTopologyBytes: modelArtifacts.modelTopology == null ? 0 : stringByteLength(JSON.stringify(modelArtifacts.modelTopology)),
                        weightSpecsBytes: modelArtifacts.weightSpecs == null ? 0 : stringByteLength(JSON.stringify(modelArtifacts.weightSpecs)),
                        weightDataBytes: modelArtifacts.weightData == null ? 0 : modelArtifacts.weightData.byteLength
                    };
                }
                /**
                 * Concatenate the weights stored in a WeightsManifestConfig into a list of
                 * WeightsManifestEntry
                 *
                 * @param weightsManifest The WeightsManifestConfig to extract weights from.
                 * @returns A list of WeightsManifestEntry of the weights in the weightsManifest
                 */
                function getWeightSpecs(weightsManifest) {
                    const weightSpecs = [];
                    for (const entry of weightsManifest) {
                        weightSpecs.push(...entry.weights);
                    }
                    return weightSpecs;
                }
                /**
                 * Computes mantisa table for casting Float16 to Float32
                 * See http://www.fox-toolkit.org/ftp/fasthalffloatconversion.pdf
                 *
                 * @returns Uint32Array, 2048 mantissa lookup values.
                 */
                function computeFloat16MantisaTable() {
                    const convertMantissa = i => {
                        let m = i << 13;
                        let e = 0;
                        while ((m & 0x00800000) === 0) {
                            e -= 0x00800000;
                            m <<= 1;
                        }
                        m &= ~0x00800000;
                        e += 0x38800000;
                        return m | e;
                    }
                        ;
                    const mantisaTable = new Uint32Array(2048);
                    mantisaTable[0] = 0;
                    for (let i = 1; i < 1024; i++) {
                        mantisaTable[i] = convertMantissa(i);
                    }
                    for (let i = 1024; i < 2048; i++) {
                        mantisaTable[i] = 0x38000000 + (i - 1024 << 13);
                    }
                    return mantisaTable;
                }
                /**
                 * Computes exponent table for casting Float16 to Float32
                 * See http://www.fox-toolkit.org/ftp/fasthalffloatconversion.pdf
                 *
                 * @returns Uint32Array, 64 exponent lookup values.
                 */
                function computeFloat16ExponentTable() {
                    const exponentTable = new Uint32Array(64);
                    exponentTable[0] = 0;
                    exponentTable[31] = 0x47800000;
                    exponentTable[32] = 0x80000000;
                    exponentTable[63] = 0xc7800000;
                    for (let i = 1; i < 31; i++) {
                        exponentTable[i] = i << 23;
                    }
                    for (let i = 33; i < 63; i++) {
                        exponentTable[i] = 0x80000000 + (i - 32 << 23);
                    }
                    return exponentTable;
                }
                /**
                 * Computes offset table for casting Float16 to Float32
                 * See http://www.fox-toolkit.org/ftp/fasthalffloatconversion.pdf
                 *
                 * @returns Uint32Array, 6d offset values.
                 */
                function computeFloat16OffsetTable() {
                    const offsetTable = new Uint32Array(64);
                    for (let i = 0; i < 64; i++) {
                        offsetTable[i] = 1024;
                    }
                    offsetTable[0] = offsetTable[32] = 0;
                    return offsetTable;
                }
                /**
                 * Retrieve a Float16 decoder which will decode a ByteArray of Float16 values
                 * to a Float32Array.
                 *
                 * @returns Function (buffer: Uint16Array) => Float32Array which decodes
                 *          the Uint16Array of Float16 bytes to a Float32Array.
                 */
                function getFloat16Decoder() {
                    // Algorithm is based off of
                    // http://www.fox-toolkit.org/ftp/fasthalffloatconversion.pdf
                    // Cache lookup tables
                    const mantisaTable = computeFloat16MantisaTable();
                    const exponentTable = computeFloat16ExponentTable();
                    const offsetTable = computeFloat16OffsetTable();
                    return quantizedArray => {
                        const buffer = new ArrayBuffer(4 * quantizedArray.length);
                        const bufferUint32View = new Uint32Array(buffer);
                        for (let index = 0; index < quantizedArray.length; index++) {
                            const float16Bits = quantizedArray[index];
                            const float32Bits = mantisaTable[offsetTable[float16Bits >> 10] + (float16Bits & 0x3ff)] + exponentTable[float16Bits >> 10];
                            bufferUint32View[index] = float32Bits;
                        }
                        return new Float32Array(buffer);
                    }
                        ;
                }

            }
            ).call(this)
        }
        ).call(this, require("buffer").Buffer)
    }
        , {
        "../ops/complex": 240,
        "../ops/tensor": 467,
        "../util": 509,
        "./types": 196,
        "buffer": 647
    }],
    191: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.BrowserLocalStorageManager = exports.BrowserLocalStorage = void 0;
        exports.browserLocalStorage = browserLocalStorage;
        exports.localStorageRouter = void 0;
        exports.purgeLocalStorageArtifacts = purgeLocalStorageArtifacts;
        require("../flags");
        var _environment = require("../environment");
        var _util = require("../util");
        var _io_utils = require("./io_utils");
        var _router_registry = require("./router_registry");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const PATH_SEPARATOR = '/';
        const PATH_PREFIX = 'tensorflowjs_models';
        const INFO_SUFFIX = 'info';
        const MODEL_TOPOLOGY_SUFFIX = 'model_topology';
        const WEIGHT_SPECS_SUFFIX = 'weight_specs';
        const WEIGHT_DATA_SUFFIX = 'weight_data';
        const MODEL_METADATA_SUFFIX = 'model_metadata';
        /**
         * Purge all tensorflow.js-saved model artifacts from local storage.
         *
         * @returns Paths of the models purged.
         */
        function purgeLocalStorageArtifacts() {
            if (!(0,
                _environment.env)().getBool('IS_BROWSER') || typeof window === 'undefined' || typeof window.localStorage === 'undefined') {
                throw new Error('purgeLocalStorageModels() cannot proceed because local storage is ' + 'unavailable in the current environment.');
            }
            const LS = window.localStorage;
            const purgedModelPaths = [];
            for (let i = 0; i < LS.length; ++i) {
                const key = LS.key(i);
                const prefix = PATH_PREFIX + PATH_SEPARATOR;
                if (key.startsWith(prefix) && key.length > prefix.length) {
                    LS.removeItem(key);
                    const modelName = getModelPathFromKey(key);
                    if (purgedModelPaths.indexOf(modelName) === -1) {
                        purgedModelPaths.push(modelName);
                    }
                }
            }
            return purgedModelPaths;
        }
        function getModelKeys(path) {
            return {
                info: [PATH_PREFIX, path, INFO_SUFFIX].join(PATH_SEPARATOR),
                topology: [PATH_PREFIX, path, MODEL_TOPOLOGY_SUFFIX].join(PATH_SEPARATOR),
                weightSpecs: [PATH_PREFIX, path, WEIGHT_SPECS_SUFFIX].join(PATH_SEPARATOR),
                weightData: [PATH_PREFIX, path, WEIGHT_DATA_SUFFIX].join(PATH_SEPARATOR),
                modelMetadata: [PATH_PREFIX, path, MODEL_METADATA_SUFFIX].join(PATH_SEPARATOR)
            };
        }
        function removeItems(keys) {
            for (const key of Object.values(keys)) {
                window.localStorage.removeItem(key);
            }
        }
        /**
         * Get model path from a local-storage key.
         *
         * E.g., 'tensorflowjs_models/my/model/1/info' --> 'my/model/1'
         *
         * @param key
         */
        function getModelPathFromKey(key) {
            const items = key.split(PATH_SEPARATOR);
            if (items.length < 3) {
                throw new Error(`Invalid key format: ${key}`);
            }
            return items.slice(1, items.length - 1).join(PATH_SEPARATOR);
        }
        function maybeStripScheme(key) {
            return key.startsWith(BrowserLocalStorage.URL_SCHEME) ? key.slice(BrowserLocalStorage.URL_SCHEME.length) : key;
        }
        /**
         * IOHandler subclass: Browser Local Storage.
         *
         * See the doc string to `browserLocalStorage` for more details.
         */
        class BrowserLocalStorage {
            constructor(modelPath) {
                if (!(0,
                    _environment.env)().getBool('IS_BROWSER') || typeof window === 'undefined' || typeof window.localStorage === 'undefined') {
                    // TODO(cais): Add more info about what IOHandler subtypes are
                    // available.
                    //   Maybe point to a doc page on the web and/or automatically determine
                    //   the available IOHandlers and print them in the error message.
                    throw new Error('The current environment does not support local storage.');
                }
                this.LS = window.localStorage;
                if (modelPath == null || !modelPath) {
                    throw new Error('For local storage, modelPath must not be null, undefined or empty.');
                }
                this.modelPath = modelPath;
                this.keys = getModelKeys(this.modelPath);
            }
            /**
             * Save model artifacts to browser local storage.
             *
             * See the documentation to `browserLocalStorage` for details on the saved
             * artifacts.
             *
             * @param modelArtifacts The model artifacts to be stored.
             * @returns An instance of SaveResult.
             */
            async save(modelArtifacts) {
                if (modelArtifacts.modelTopology instanceof ArrayBuffer) {
                    throw new Error('BrowserLocalStorage.save() does not support saving model topology ' + 'in binary formats yet.');
                } else {
                    const topology = JSON.stringify(modelArtifacts.modelTopology);
                    const weightSpecs = JSON.stringify(modelArtifacts.weightSpecs);
                    const modelArtifactsInfo = (0,
                        _io_utils.getModelArtifactsInfoForJSON)(modelArtifacts);
                    try {
                        this.LS.setItem(this.keys.info, JSON.stringify(modelArtifactsInfo));
                        this.LS.setItem(this.keys.topology, topology);
                        this.LS.setItem(this.keys.weightSpecs, weightSpecs);
                        this.LS.setItem(this.keys.weightData, (0,
                            _io_utils.arrayBufferToBase64String)(modelArtifacts.weightData));
                        // Note that JSON.stringify doesn't write out keys that have undefined
                        // values, so for some keys, we set undefined instead of a null-ish
                        // value.
                        const metadata = {
                            format: modelArtifacts.format,
                            generatedBy: modelArtifacts.generatedBy,
                            convertedBy: modelArtifacts.convertedBy,
                            signature: modelArtifacts.signature != null ? modelArtifacts.signature : undefined,
                            userDefinedMetadata: modelArtifacts.userDefinedMetadata != null ? modelArtifacts.userDefinedMetadata : undefined,
                            modelInitializer: modelArtifacts.modelInitializer != null ? modelArtifacts.modelInitializer : undefined,
                            initializerSignature: modelArtifacts.initializerSignature != null ? modelArtifacts.initializerSignature : undefined,
                            trainingConfig: modelArtifacts.trainingConfig != null ? modelArtifacts.trainingConfig : undefined
                        };
                        this.LS.setItem(this.keys.modelMetadata, JSON.stringify(metadata));
                        return {
                            modelArtifactsInfo
                        };
                    } catch (err) {
                        // If saving failed, clean up all items saved so far.
                        removeItems(this.keys);
                        throw new Error(`Failed to save model '${this.modelPath}' to local storage: ` + `size quota being exceeded is a possible cause of this failure: ` + `modelTopologyBytes=${modelArtifactsInfo.modelTopologyBytes}, ` + `weightSpecsBytes=${modelArtifactsInfo.weightSpecsBytes}, ` + `weightDataBytes=${modelArtifactsInfo.weightDataBytes}.`);
                    }
                }
            }
            /**
             * Load a model from local storage.
             *
             * See the documentation to `browserLocalStorage` for details on the saved
             * artifacts.
             *
             * @returns The loaded model (if loading succeeds).
             */
            async load() {
                const info = JSON.parse(this.LS.getItem(this.keys.info));
                if (info == null) {
                    throw new Error(`In local storage, there is no model with name '${this.modelPath}'`);
                }
                if (info.modelTopologyType !== 'JSON') {
                    throw new Error('BrowserLocalStorage does not support loading non-JSON model ' + 'topology yet.');
                }
                const out = {};
                // Load topology.
                const topology = JSON.parse(this.LS.getItem(this.keys.topology));
                if (topology == null) {
                    throw new Error(`In local storage, the topology of model '${this.modelPath}' ` + `is missing.`);
                }
                out.modelTopology = topology;
                // Load weight specs.
                const weightSpecs = JSON.parse(this.LS.getItem(this.keys.weightSpecs));
                if (weightSpecs == null) {
                    throw new Error(`In local storage, the weight specs of model '${this.modelPath}' ` + `are missing.`);
                }
                out.weightSpecs = weightSpecs;
                // Load meta-data fields.
                const metadataString = this.LS.getItem(this.keys.modelMetadata);
                if (metadataString != null) {
                    const metadata = JSON.parse(metadataString);
                    out.format = metadata.format;
                    out.generatedBy = metadata.generatedBy;
                    out.convertedBy = metadata.convertedBy;
                    if (metadata.signature != null) {
                        out.signature = metadata.signature;
                    }
                    if (metadata.userDefinedMetadata != null) {
                        out.userDefinedMetadata = metadata.userDefinedMetadata;
                    }
                    if (metadata.modelInitializer != null) {
                        out.modelInitializer = metadata.modelInitializer;
                    }
                    if (metadata.initializerSignature != null) {
                        out.initializerSignature = metadata.initializerSignature;
                    }
                    if (metadata.trainingConfig != null) {
                        out.trainingConfig = metadata.trainingConfig;
                    }
                }
                // Load weight data.
                const weightDataBase64 = this.LS.getItem(this.keys.weightData);
                if (weightDataBase64 == null) {
                    throw new Error(`In local storage, the binary weight values of model ` + `'${this.modelPath}' are missing.`);
                }
                out.weightData = (0,
                    _io_utils.base64StringToArrayBuffer)(weightDataBase64);
                return out;
            }
        }
        exports.BrowserLocalStorage = BrowserLocalStorage;
        BrowserLocalStorage.URL_SCHEME = 'localstorage://';
        const localStorageRouter = url => {
            if (!(0,
                _environment.env)().getBool('IS_BROWSER')) {
                return null;
            } else {
                if (!Array.isArray(url) && url.startsWith(BrowserLocalStorage.URL_SCHEME)) {
                    return browserLocalStorage(url.slice(BrowserLocalStorage.URL_SCHEME.length));
                } else {
                    return null;
                }
            }
        };
        exports.localStorageRouter = localStorageRouter;
        _router_registry.IORouterRegistry.registerSaveRouter(localStorageRouter);
        _router_registry.IORouterRegistry.registerLoadRouter(localStorageRouter);
        /**
         * Factory function for local storage IOHandler.
         *
         * This `IOHandler` supports both `save` and `load`.
         *
         * For each model's saved artifacts, four items are saved to local storage.
         *   - `${PATH_SEPARATOR}/${modelPath}/info`: Contains meta-info about the
         *     model, such as date saved, type of the topology, size in bytes, etc.
         *   - `${PATH_SEPARATOR}/${modelPath}/topology`: Model topology. For Keras-
         *     style models, this is a stringized JSON.
         *   - `${PATH_SEPARATOR}/${modelPath}/weight_specs`: Weight specs of the
         *     model, can be used to decode the saved binary weight values (see
         *     item below).
         *   - `${PATH_SEPARATOR}/${modelPath}/weight_data`: Concatenated binary
         *     weight values, stored as a base64-encoded string.
         *
         * Saving may throw an `Error` if the total size of the artifacts exceed the
         * browser-specific quota.
         *
         * @param modelPath A unique identifier for the model to be saved. Must be a
         *   non-empty string.
         * @returns An instance of `IOHandler`, which can be used with, e.g.,
         *   `tf.Model.save`.
         */
        function browserLocalStorage(modelPath) {
            return new BrowserLocalStorage(modelPath);
        }
        class BrowserLocalStorageManager {
            constructor() {
                (0,
                    _util.assert)((0,
                        _environment.env)().getBool('IS_BROWSER'), () => 'Current environment is not a web browser');
                (0,
                    _util.assert)(typeof window === 'undefined' || typeof window.localStorage !== 'undefined', () => 'Current browser does not appear to support localStorage');
                this.LS = window.localStorage;
            }
            async listModels() {
                const out = {};
                const prefix = PATH_PREFIX + PATH_SEPARATOR;
                const suffix = PATH_SEPARATOR + INFO_SUFFIX;
                for (let i = 0; i < this.LS.length; ++i) {
                    const key = this.LS.key(i);
                    if (key.startsWith(prefix) && key.endsWith(suffix)) {
                        const modelPath = getModelPathFromKey(key);
                        out[modelPath] = JSON.parse(this.LS.getItem(key));
                    }
                }
                return out;
            }
            async removeModel(path) {
                path = maybeStripScheme(path);
                const keys = getModelKeys(path);
                if (this.LS.getItem(keys.info) == null) {
                    throw new Error(`Cannot find model at path '${path}'`);
                }
                const info = JSON.parse(this.LS.getItem(keys.info));
                removeItems(keys);
                return info;
            }
        }
        exports.BrowserLocalStorageManager = BrowserLocalStorageManager;

    }
        , {
        "../environment": 78,
        "../flags": 79,
        "../util": 509,
        "./io_utils": 190,
        "./router_registry": 195
    }],
    192: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.ModelStoreManagerRegistry = void 0;
        exports.copyModel = copyModel;
        exports.listModels = listModels;
        exports.moveModel = moveModel;
        exports.removeModel = removeModel;
        var _util = require("../util");
        var _router_registry = require("./router_registry");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        /**
         * Classes and functions for model management across multiple storage mediums.
         *
         * Supported client actions:
         * - Listing models on all registered storage mediums.
         * - Remove model by URL from any registered storage mediums, by using URL
         *   string.
         * - Moving or copying model from one path to another in the same medium or from
         *   one medium to another, by using URL strings.
         */

        const URL_SCHEME_SUFFIX = '://';
        class ModelStoreManagerRegistry {
            constructor() {
                this.managers = {};
            }
            static getInstance() {
                if (ModelStoreManagerRegistry.instance == null) {
                    ModelStoreManagerRegistry.instance = new ModelStoreManagerRegistry();
                }
                return ModelStoreManagerRegistry.instance;
            }
            /**
             * Register a save-handler router.
             *
             * @param saveRouter A function that maps a URL-like string onto an instance
             * of `IOHandler` with the `save` method defined or `null`.
             */
            static registerManager(scheme, manager) {
                (0,
                    _util.assert)(scheme != null, () => 'scheme must not be undefined or null.');
                if (scheme.endsWith(URL_SCHEME_SUFFIX)) {
                    scheme = scheme.slice(0, scheme.indexOf(URL_SCHEME_SUFFIX));
                }
                (0,
                    _util.assert)(scheme.length > 0, () => 'scheme must not be an empty string.');
                const registry = ModelStoreManagerRegistry.getInstance();
                (0,
                    _util.assert)(registry.managers[scheme] == null, () => `A model store manager is already registered for scheme '${scheme}'.`);
                registry.managers[scheme] = manager;
            }
            static getManager(scheme) {
                const manager = ModelStoreManagerRegistry.getInstance().managers[scheme];
                if (manager == null) {
                    throw new Error(`Cannot find model manager for scheme '${scheme}'`);
                }
                return manager;
            }
            static getSchemes() {
                return Object.keys(ModelStoreManagerRegistry.getInstance().managers);
            }
        }
        /**
         * Helper method for parsing a URL string into a scheme and a path.
         *
         * @param url E.g., 'localstorage://my-model'
         * @returns A dictionary with two fields: scheme and path.
         *   Scheme: e.g., 'localstorage' in the example above.
         *   Path: e.g., 'my-model' in the example above.
         */
        exports.ModelStoreManagerRegistry = ModelStoreManagerRegistry;
        function parseURL(url) {
            if (url.indexOf(URL_SCHEME_SUFFIX) === -1) {
                throw new Error(`The url string provided does not contain a scheme. ` + `Supported schemes are: ` + `${ModelStoreManagerRegistry.getSchemes().join(',')}`);
            }
            return {
                scheme: url.split(URL_SCHEME_SUFFIX)[0],
                path: url.split(URL_SCHEME_SUFFIX)[1]
            };
        }
        async function cloneModelInternal(sourceURL, destURL, deleteSource = false) {
            (0,
                _util.assert)(sourceURL !== destURL, () => `Old path and new path are the same: '${sourceURL}'`);
            const loadHandlers = _router_registry.IORouterRegistry.getLoadHandlers(sourceURL);
            (0,
                _util.assert)(loadHandlers.length > 0, () => `Copying failed because no load handler is found for source URL ${sourceURL}.`);
            (0,
                _util.assert)(loadHandlers.length < 2, () => `Copying failed because more than one (${loadHandlers.length}) ` + `load handlers for source URL ${sourceURL}.`);
            const loadHandler = loadHandlers[0];
            const saveHandlers = _router_registry.IORouterRegistry.getSaveHandlers(destURL);
            (0,
                _util.assert)(saveHandlers.length > 0, () => `Copying failed because no save handler is found for destination ` + `URL ${destURL}.`);
            (0,
                _util.assert)(saveHandlers.length < 2, () => `Copying failed because more than one (${loadHandlers.length}) ` + `save handlers for destination URL ${destURL}.`);
            const saveHandler = saveHandlers[0];
            const sourceScheme = parseURL(sourceURL).scheme;
            const sourcePath = parseURL(sourceURL).path;
            const sameMedium = sourceScheme === parseURL(sourceURL).scheme;
            const modelArtifacts = await loadHandler.load();
            // If moving within the same storage medium, remove the old model as soon as
            // the loading is done. Without doing this, it is possible that the combined
            // size of the two models will cause the cloning to fail.
            if (deleteSource && sameMedium) {
                await ModelStoreManagerRegistry.getManager(sourceScheme).removeModel(sourcePath);
            }
            const saveResult = await saveHandler.save(modelArtifacts);
            // If moving between mediums, the deletion is done after the save succeeds.
            // This guards against the case in which saving to the destination medium
            // fails.
            if (deleteSource && !sameMedium) {
                await ModelStoreManagerRegistry.getManager(sourceScheme).removeModel(sourcePath);
            }
            return saveResult.modelArtifactsInfo;
        }
        /**
         * List all models stored in registered storage mediums.
         *
         * For a web browser environment, the registered mediums are Local Storage and
         * IndexedDB.
         *
         * ```js
         * // First create and save a model.
         * const model = tf.sequential();
         * model.add(tf.layers.dense(
         *     {units: 1, inputShape: [10], activation: 'sigmoid'}));
         * await model.save('localstorage://demo/management/model1');
         *
         * // Then list existing models.
         * console.log(JSON.stringify(await tf.io.listModels()));
         *
         * // Delete the model.
         * await tf.io.removeModel('localstorage://demo/management/model1');
         *
         * // List models again.
         * console.log(JSON.stringify(await tf.io.listModels()));
         * ```
         *
         * @returns A `Promise` of a dictionary mapping URLs of existing models to
         * their model artifacts info. URLs include medium-specific schemes, e.g.,
         *   'indexeddb://my/model/1'. Model artifacts info include type of the
         * model's topology, byte sizes of the topology, weights, etc.
         *
         * @doc {
         *   heading: 'Models',
         *   subheading: 'Management',
         *   namespace: 'io',
         *   ignoreCI: true
         * }
         */
        async function listModels() {
            const schemes = ModelStoreManagerRegistry.getSchemes();
            const out = {};
            for (const scheme of schemes) {
                const schemeOut = await ModelStoreManagerRegistry.getManager(scheme).listModels();
                for (const path in schemeOut) {
                    const url = scheme + URL_SCHEME_SUFFIX + path;
                    out[url] = schemeOut[path];
                }
            }
            return out;
        }
        /**
         * Remove a model specified by URL from a registered storage medium.
         *
         * ```js
         * // First create and save a model.
         * const model = tf.sequential();
         * model.add(tf.layers.dense(
         *     {units: 1, inputShape: [10], activation: 'sigmoid'}));
         * await model.save('localstorage://demo/management/model1');
         *
         * // Then list existing models.
         * console.log(JSON.stringify(await tf.io.listModels()));
         *
         * // Delete the model.
         * await tf.io.removeModel('localstorage://demo/management/model1');
         *
         * // List models again.
         * console.log(JSON.stringify(await tf.io.listModels()));
         * ```
         *
         * @param url A URL to a stored model, with a scheme prefix, e.g.,
         *   'localstorage://my-model-1', 'indexeddb://my/model/2'.
         * @returns ModelArtifactsInfo of the deleted model (if and only if deletion
         *   is successful).
         * @throws Error if deletion fails, e.g., if no model exists at `path`.
         *
         * @doc {
         *   heading: 'Models',
         *   subheading: 'Management',
         *   namespace: 'io',
         *   ignoreCI: true
         * }
         */
        async function removeModel(url) {
            const schemeAndPath = parseURL(url);
            const manager = ModelStoreManagerRegistry.getManager(schemeAndPath.scheme);
            return manager.removeModel(schemeAndPath.path);
        }
        /**
         * Copy a model from one URL to another.
         *
         * This function supports:
         *
         * 1. Copying within a storage medium, e.g.,
         *    `tf.io.copyModel('localstorage://model-1', 'localstorage://model-2')`
         * 2. Copying between two storage mediums, e.g.,
         *    `tf.io.copyModel('localstorage://model-1', 'indexeddb://model-1')`
         *
         * ```js
         * // First create and save a model.
         * const model = tf.sequential();
         * model.add(tf.layers.dense(
         *     {units: 1, inputShape: [10], activation: 'sigmoid'}));
         * await model.save('localstorage://demo/management/model1');
         *
         * // Then list existing models.
         * console.log(JSON.stringify(await tf.io.listModels()));
         *
         * // Copy the model, from Local Storage to IndexedDB.
         * await tf.io.copyModel(
         *     'localstorage://demo/management/model1',
         *     'indexeddb://demo/management/model1');
         *
         * // List models again.
         * console.log(JSON.stringify(await tf.io.listModels()));
         *
         * // Remove both models.
         * await tf.io.removeModel('localstorage://demo/management/model1');
         * await tf.io.removeModel('indexeddb://demo/management/model1');
         * ```
         *
         * @param sourceURL Source URL of copying.
         * @param destURL Destination URL of copying.
         * @returns ModelArtifactsInfo of the copied model (if and only if copying
         *   is successful).
         * @throws Error if copying fails, e.g., if no model exists at `sourceURL`, or
         *   if `oldPath` and `newPath` are identical.
         *
         * @doc {
         *   heading: 'Models',
         *   subheading: 'Management',
         *   namespace: 'io',
         *   ignoreCI: true
         * }
         */
        async function copyModel(sourceURL, destURL) {
            const deleteSource = false;
            return cloneModelInternal(sourceURL, destURL, deleteSource);
        }
        /**
         * Move a model from one URL to another.
         *
         * This function supports:
         *
         * 1. Moving within a storage medium, e.g.,
         *    `tf.io.moveModel('localstorage://model-1', 'localstorage://model-2')`
         * 2. Moving between two storage mediums, e.g.,
         *    `tf.io.moveModel('localstorage://model-1', 'indexeddb://model-1')`
         *
         * ```js
         * // First create and save a model.
         * const model = tf.sequential();
         * model.add(tf.layers.dense(
         *     {units: 1, inputShape: [10], activation: 'sigmoid'}));
         * await model.save('localstorage://demo/management/model1');
         *
         * // Then list existing models.
         * console.log(JSON.stringify(await tf.io.listModels()));
         *
         * // Move the model, from Local Storage to IndexedDB.
         * await tf.io.moveModel(
         *     'localstorage://demo/management/model1',
         *     'indexeddb://demo/management/model1');
         *
         * // List models again.
         * console.log(JSON.stringify(await tf.io.listModels()));
         *
         * // Remove the moved model.
         * await tf.io.removeModel('indexeddb://demo/management/model1');
         * ```
         *
         * @param sourceURL Source URL of moving.
         * @param destURL Destination URL of moving.
         * @returns ModelArtifactsInfo of the copied model (if and only if copying
         *   is successful).
         * @throws Error if moving fails, e.g., if no model exists at `sourceURL`, or
         *   if `oldPath` and `newPath` are identical.
         *
         * @doc {
         *   heading: 'Models',
         *   subheading: 'Management',
         *   namespace: 'io',
         *   ignoreCI: true
         * }
         */
        async function moveModel(sourceURL, destURL) {
            const deleteSource = true;
            return cloneModelInternal(sourceURL, destURL, deleteSource);
        }

    }
        , {
        "../util": 509,
        "./router_registry": 195
    }],
    193: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.fromMemory = fromMemory;
        exports.fromMemorySync = fromMemorySync;
        exports.withSaveHandler = withSaveHandler;
        exports.withSaveHandlerSync = withSaveHandlerSync;
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        class PassthroughLoader {
            constructor(modelArtifacts) {
                this.modelArtifacts = modelArtifacts;
            }
            load() {
                return this.modelArtifacts;
            }
        }
        class PassthroughSaver {
            constructor(saveHandler) {
                this.saveHandler = saveHandler;
            }
            save(modelArtifacts) {
                return this.saveHandler(modelArtifacts);
            }
        }
        class PassthroughAsync {
            constructor(handler) {
                if (handler.load) {
                    this.load = () => Promise.resolve(handler.load());
                }
                if (handler.save) {
                    this.save = modelArtifacts => Promise.resolve(handler.save(modelArtifacts));
                }
            }
        }
        /**
         * Creates an IOHandler that loads model artifacts from memory.
         *
         * When used in conjunction with `tf.loadLayersModel`, an instance of
         * `tf.LayersModel` (Keras-style) can be constructed from the loaded artifacts.
         *
         * ```js
         * const model = await tf.loadLayersModel(tf.io.fromMemory(
         *     modelTopology, weightSpecs, weightData));
         * ```
         *
         * @param modelArtifacts a object containing model topology (i.e., parsed from
         *   the JSON format).
         * @param weightSpecs An array of `WeightsManifestEntry` objects describing the
         *   names, shapes, types, and quantization of the weight data. Optional.
         * @param weightData A single `ArrayBuffer` containing the weight data,
         *   concatenated in the order described by the weightSpecs. Optional.
         * @param trainingConfig Model training configuration. Optional.
         *
         * @returns A passthrough `IOHandler` that simply loads the provided data.
         */
        function fromMemory(modelArtifacts, weightSpecs, weightData, trainingConfig) {
            const args = arguments;
            return new PassthroughAsync(fromMemorySync(...args));
        }
        /**
         * Creates an IOHandler that loads model artifacts from memory.
         *
         * When used in conjunction with `tf.loadLayersModel`, an instance of
         * `tf.LayersModel` (Keras-style) can be constructed from the loaded artifacts.
         *
         * ```js
         * const model = await tf.loadLayersModel(tf.io.fromMemory(
         *     modelTopology, weightSpecs, weightData));
         * ```
         *
         * @param modelArtifacts a object containing model topology (i.e., parsed from
         *   the JSON format).
         * @param weightSpecs An array of `WeightsManifestEntry` objects describing the
         *   names, shapes, types, and quantization of the weight data. Optional.
         * @param weightData A single `ArrayBuffer` containing the weight data,
         *   concatenated in the order described by the weightSpecs. Optional.
         * @param trainingConfig Model training configuration. Optional.
         *
         * @returns A passthrough `IOHandlerSync` that simply loads the provided data.
         */
        function fromMemorySync(modelArtifacts, weightSpecs, weightData, trainingConfig) {
            if (arguments.length === 1) {
                const isModelArtifacts = modelArtifacts.modelTopology != null || modelArtifacts.weightSpecs != null;
                if (isModelArtifacts) {
                    return new PassthroughLoader(modelArtifacts);
                } else {
                    // Legacy support: with only modelTopology.
                    // TODO(cais): Remove this deprecated API.
                    console.warn('Please call tf.io.fromMemory() with only one argument. ' + 'The argument should be of type ModelArtifacts. ' + 'The multi-argument signature of tf.io.fromMemory() has been ' + 'deprecated and will be removed in a future release.');
                    return new PassthroughLoader({
                        modelTopology: modelArtifacts
                    });
                }
            } else {
                // Legacy support.
                // TODO(cais): Remove this deprecated API.
                console.warn('Please call tf.io.fromMemory() with only one argument. ' + 'The argument should be of type ModelArtifacts. ' + 'The multi-argument signature of tf.io.fromMemory() has been ' + 'deprecated and will be removed in a future release.');
                return new PassthroughLoader({
                    modelTopology: modelArtifacts,
                    weightSpecs,
                    weightData,
                    trainingConfig
                });
            }
        }
        /**
         * Creates an IOHandler that passes saved model artifacts to a callback.
         *
         * ```js
         * function handleSave(artifacts) {
         *   // ... do something with the artifacts ...
         *   return {modelArtifactsInfo: {...}, ...};
         * }
         *
         * const saveResult = model.save(tf.io.withSaveHandler(handleSave));
         * ```
         *
         * @param saveHandler A function that accepts a `ModelArtifacts` and returns a
         *     promise that resolves to a `SaveResult`.
         */
        function withSaveHandler(saveHandler) {
            return new PassthroughSaver(saveHandler);
        }
        /**
         * Creates an IOHandlerSync that passes saved model artifacts to a callback.
         *
         * ```js
         * function handleSave(artifacts) {
         *   // ... do something with the artifacts ...
         *   return {modelArtifactsInfo: {...}, ...};
         * }
         *
         * const saveResult = model.save(tf.io.withSaveHandler(handleSave));
         * ```
         *
         * @param saveHandler A function that accepts a `ModelArtifacts` and returns a
         *     `SaveResult`.
         */
        function withSaveHandlerSync(saveHandler) {
            return new PassthroughSaver(saveHandler);
        }

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

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.monitorPromisesProgress = monitorPromisesProgress;
        var _util = require("../util");
        /**
         * @license
         * Copyright 2019 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Monitor Promise.all progress, fire onProgress callback function.
         *
         * @param promises Promise list going to be monitored
         * @param onProgress Callback function. Fired when a promise resolved.
         * @param startFraction Optional fraction start. Default to 0.
         * @param endFraction Optional fraction end. Default to 1.
         */
        function monitorPromisesProgress(promises, onProgress, startFraction, endFraction) {
            checkPromises(promises);
            startFraction = startFraction == null ? 0 : startFraction;
            endFraction = endFraction == null ? 1 : endFraction;
            checkFraction(startFraction, endFraction);
            let resolvedPromise = 0;
            const registerMonitor = promise => {
                promise.then(value => {
                    const fraction = startFraction + ++resolvedPromise / promises.length * (endFraction - startFraction);
                    // pass fraction as parameter to callback function.
                    onProgress(fraction);
                    return value;
                }
                );
                return promise;
            }
                ;
            function checkPromises(promises) {
                (0,
                    _util.assert)(promises != null && Array.isArray(promises) && promises.length > 0, () => 'promises must be a none empty array');
            }
            function checkFraction(startFraction, endFraction) {
                (0,
                    _util.assert)(startFraction >= 0 && startFraction <= 1, () => `Progress fraction must be in range [0, 1], but ` + `got startFraction ${startFraction}`);
                (0,
                    _util.assert)(endFraction >= 0 && endFraction <= 1, () => `Progress fraction must be in range [0, 1], but ` + `got endFraction ${endFraction}`);
                (0,
                    _util.assert)(endFraction >= startFraction, () => `startFraction must be no more than endFraction, but ` + `got startFraction ${startFraction} and endFraction ` + `${endFraction}`);
            }
            return Promise.all(promises.map(registerMonitor));
        }

    }
        , {
        "../util": 509
    }],
    195: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.registerSaveRouter = exports.registerLoadRouter = exports.getSaveHandlers = exports.getLoadHandlers = exports.IORouterRegistry = void 0;
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        class IORouterRegistry {
            constructor() {
                this.saveRouters = [];
                this.loadRouters = [];
            }
            static getInstance() {
                if (IORouterRegistry.instance == null) {
                    IORouterRegistry.instance = new IORouterRegistry();
                }
                return IORouterRegistry.instance;
            }
            /**
             * Register a save-handler router.
             *
             * @param saveRouter A function that maps a URL-like string onto an instance
             * of `IOHandler` with the `save` method defined or `null`.
             */
            static registerSaveRouter(saveRouter) {
                IORouterRegistry.getInstance().saveRouters.push(saveRouter);
            }
            /**
             * Register a load-handler router.
             *
             * @param loadRouter A function that maps a URL-like string onto an instance
             * of `IOHandler` with the `load` method defined or `null`.
             */
            static registerLoadRouter(loadRouter) {
                IORouterRegistry.getInstance().loadRouters.push(loadRouter);
            }
            /**
             * Look up IOHandler for saving, given a URL-like string.
             *
             * @param url
             * @returns If only one match is found, an instance of IOHandler with the
             * `save` method defined. If no match is found, `null`.
             * @throws Error, if more than one match is found.
             */
            static getSaveHandlers(url) {
                return IORouterRegistry.getHandlers(url, 'save');
            }
            /**
             * Look up IOHandler for loading, given a URL-like string.
             *
             * @param url
             * @param loadOptions Optional, custom load options.
             * @returns All valid handlers for `url`, given the currently registered
             *   handler routers.
             */
            static getLoadHandlers(url, loadOptions) {
                return IORouterRegistry.getHandlers(url, 'load', loadOptions);
            }
            static getHandlers(url, handlerType, loadOptions) {
                const validHandlers = [];
                const routers = handlerType === 'load' ? IORouterRegistry.getInstance().loadRouters : IORouterRegistry.getInstance().saveRouters;
                routers.forEach(router => {
                    const handler = router(url, loadOptions);
                    if (handler !== null) {
                        validHandlers.push(handler);
                    }
                }
                );
                return validHandlers;
            }
        }
        exports.IORouterRegistry = IORouterRegistry;
        const registerSaveRouter = loudRouter => IORouterRegistry.registerSaveRouter(loudRouter);
        exports.registerSaveRouter = registerSaveRouter;
        const registerLoadRouter = loudRouter => IORouterRegistry.registerLoadRouter(loudRouter);
        exports.registerLoadRouter = registerLoadRouter;
        const getSaveHandlers = url => IORouterRegistry.getSaveHandlers(url);
        exports.getSaveHandlers = getSaveHandlers;
        const getLoadHandlers = (url, loadOptions) => IORouterRegistry.getLoadHandlers(url, loadOptions);
        exports.getLoadHandlers = getLoadHandlers;

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

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.DTYPE_VALUE_SIZE_MAP = void 0;
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        /* Type definitions for exporting and importing of models. */
        /**
         * A map from Tensor dtype to number of bytes per element of the Tensor.
         */
        const DTYPE_VALUE_SIZE_MAP = {
            'float32': 4,
            'float16': 2,
            'int32': 4,
            'uint16': 2,
            'uint8': 1,
            'bool': 1,
            'complex64': 8
        };
        exports.DTYPE_VALUE_SIZE_MAP = DTYPE_VALUE_SIZE_MAP;

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

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.loadWeights = loadWeights;
        exports.loadWeightsAsArrayBuffer = loadWeightsAsArrayBuffer;
        exports.weightsLoaderFactory = weightsLoaderFactory;
        var _environment = require("../environment");
        var util = _interopRequireWildcard(require("../util"));
        var _io_utils = require("./io_utils");
        var _progress = require("./progress");
        var _types = require("./types");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Reads binary weights data from a number of URLs.
         *
         * @param fetchURLs URLs to send the HTTP requests at, using `fetch` calls.
         * @param requestOptions RequestInit (options) for the HTTP requests.
         * @param fetchFunc Optional overriding value for the `window.fetch` function.
         * @param onProgress Optional, progress callback function, fired periodically
         *   before the load is completed.
         * @returns A `Promise` of an Array of `ArrayBuffer`. The Array has the same
         *   length as `fetchURLs`.
         */
        async function loadWeightsAsArrayBuffer(fetchURLs, loadOptions) {
            if (loadOptions == null) {
                loadOptions = {};
            }
            const fetchFunc = loadOptions.fetchFunc == null ? (0,
                _environment.env)().platform.fetch : loadOptions.fetchFunc;
            // Create the requests for all of the weights in parallel.
            const requests = fetchURLs.map(fetchURL => fetchFunc(fetchURL, loadOptions.requestInit, {
                isBinary: true
            }));
            const fetchStartFraction = 0;
            const fetchEndFraction = 0.5;
            const responses = loadOptions.onProgress == null ? await Promise.all(requests) : await (0,
                _progress.monitorPromisesProgress)(requests, loadOptions.onProgress, fetchStartFraction, fetchEndFraction);
            const bufferPromises = responses.map(response => response.arrayBuffer());
            const bufferStartFraction = 0.5;
            const bufferEndFraction = 1;
            const buffers = loadOptions.onProgress == null ? await Promise.all(bufferPromises) : await (0,
                _progress.monitorPromisesProgress)(bufferPromises, loadOptions.onProgress, bufferStartFraction, bufferEndFraction);
            return buffers;
        }
        /**
         * Reads a weights manifest JSON configuration, fetches the weights and
         * returns them as `Tensor`s.
         *
         * @param manifest The weights manifest JSON.
         * @param filePathPrefix The path prefix for filenames given in the manifest.
         *     Defaults to the empty string.
         * @param weightNames The names of the weights to be fetched.
         */
        async function loadWeights(manifest, filePathPrefix = '', weightNames, requestInit) {
            // TODO(nsthorat): Groups are currently fetched atomically. If you need a
            // single weight from a group, the whole group will be fetched. At a future
            // date, we should support fetching only the individual shards within a
            // group that are needed to reconstruct the requested weight.
            // TODO(cais): Use `decodeWeights` for implementation.
            const fetchWeights = fetchUrls => loadWeightsAsArrayBuffer(fetchUrls, {
                requestInit
            });
            const loadWeights = weightsLoaderFactory(fetchWeights);
            return loadWeights(manifest, filePathPrefix, weightNames);
        }
        /**
         * Creates a function, which reads a weights manifest JSON configuration,
         * fetches the weight files using the specified function and returns them as
         * `Tensor`s.
         *
         * ```js
         * // example for creating a nodejs weight loader, which reads the weight files
         * // from disk using fs.readFileSync
         *
         * import * as fs from 'fs'
         *
         * const fetchWeightsFromDisk = (filePaths: string[]) =>
         *   filePaths.map(filePath => fs.readFileSync(filePath).buffer)
         *
         * const loadWeights = tf.io.weightsLoaderFactory(fetchWeightsFromDisk)
         *
         * const manifest = JSON.parse(
         *   fs.readFileSync('./my_model-weights_manifest').toString()
         * )
         * const weightMap = await loadWeights(manifest, './')
         * ```
         * @param fetchWeightsFunction The function used for fetching the weight files.
         * @returns Weight loading function.
         */
        function weightsLoaderFactory(fetchWeightsFunction) {
            return async (manifest, filePathPrefix = '', weightNames) => {
                // Collect all the groups, weights, and their relative offsets to be
                // fetched.
                const groupIndicesToFetchMap = manifest.map(() => false);
                const groupWeightsToFetch = {};
                const weightsFound = weightNames != null ? weightNames.map(() => false) : [];
                const allManifestWeightNames = [];
                manifest.forEach((manifestGroupConfig, groupIndex) => {
                    let groupOffset = 0;
                    manifestGroupConfig.weights.forEach(weightsEntry => {
                        const rawDtype = 'quantization' in weightsEntry ? weightsEntry.quantization.dtype : weightsEntry.dtype;
                        const weightsBytes = _types.DTYPE_VALUE_SIZE_MAP[rawDtype] * util.sizeFromShape(weightsEntry.shape);
                        const enqueueWeightsForFetchingFn = () => {
                            groupIndicesToFetchMap[groupIndex] = true;
                            if (groupWeightsToFetch[groupIndex] == null) {
                                groupWeightsToFetch[groupIndex] = [];
                            }
                            groupWeightsToFetch[groupIndex].push({
                                manifestEntry: weightsEntry,
                                groupOffset,
                                sizeBytes: weightsBytes
                            });
                        }
                            ;
                        if (weightNames != null) {
                            weightNames.forEach((weightName, weightIndex) => {
                                if (weightName === weightsEntry.name) {
                                    enqueueWeightsForFetchingFn();
                                    weightsFound[weightIndex] = true;
                                }
                            }
                            );
                        } else {
                            enqueueWeightsForFetchingFn();
                        }
                        allManifestWeightNames.push(weightsEntry.name);
                        groupOffset += weightsBytes;
                    }
                    );
                }
                );
                if (!weightsFound.every(found => found)) {
                    const weightsNotFound = weightNames.filter((_, i) => !weightsFound[i]);
                    throw new Error(`Could not find weights in manifest with names: ` + `${weightsNotFound.join(', ')}. \n` + `Manifest JSON has weights with names: ` + `${allManifestWeightNames.join(', ')}.`);
                }
                // Convert the one-hot boolean groupId => shouldFetch map to a list of group
                // IDs.
                const groupIndicesToFetch = groupIndicesToFetchMap.reduce((accumulator, shouldFetch, i) => {
                    if (shouldFetch) {
                        accumulator.push(i);
                    }
                    return accumulator;
                }
                    , []);
                const fetchUrls = [];
                groupIndicesToFetch.forEach(i => {
                    manifest[i].paths.forEach(filepath => {
                        const fetchUrl = filePathPrefix + (!filePathPrefix.endsWith('/') ? '/' : '') + filepath;
                        fetchUrls.push(fetchUrl);
                    }
                    );
                }
                );
                const buffers = await fetchWeightsFunction(fetchUrls);
                const weightsTensorMap = {};
                let bufferIndexOffset = 0;
                groupIndicesToFetch.forEach(i => {
                    const numBuffers = manifest[i].paths.length;
                    let groupBytes = 0;
                    for (let i = 0; i < numBuffers; i++) {
                        groupBytes += buffers[bufferIndexOffset + i].byteLength;
                    }
                    // Create a buffer for the whole group.
                    const groupBuffer = new ArrayBuffer(groupBytes);
                    const groupByteBuffer = new Uint8Array(groupBuffer);
                    let groupBufferOffset = 0;
                    for (let i = 0; i < numBuffers; i++) {
                        const buffer = new Uint8Array(buffers[bufferIndexOffset + i]);
                        groupByteBuffer.set(buffer, groupBufferOffset);
                        groupBufferOffset += buffer.byteLength;
                    }
                    const weightsEntries = groupWeightsToFetch[i];
                    weightsEntries.forEach(weightsEntry => {
                        const byteBuffer = groupBuffer.slice(weightsEntry.groupOffset, weightsEntry.groupOffset + weightsEntry.sizeBytes);
                        const nameToTensorMap = (0,
                            _io_utils.decodeWeights)(byteBuffer, [weightsEntry.manifestEntry]);
                        for (const name in nameToTensorMap) {
                            weightsTensorMap[name] = nameToTensorMap[name];
                        }
                    }
                    );
                    bufferIndexOffset += numBuffers;
                }
                );
                return weightsTensorMap;
            }
                ;
        }

    }
        , {
        "../environment": 78,
        "../util": 509,
        "./io_utils": 190,
        "./progress": 194,
        "./types": 196
    }],
    198: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.Minimum = exports.Min = exports.Mean = exports.Maximum = exports.MaxPoolWithArgmax = exports.MaxPoolGrad = exports.MaxPool3DGrad = exports.MaxPool3D = exports.MaxPool = exports.Max = exports.LowerBound = exports.LogicalXor = exports.LogicalOr = exports.LogicalNot = exports.LogicalAnd = exports.LogSoftmax = exports.Log1p = exports.Log = exports.LinSpace = exports.LessEqual = exports.Less = exports.LeakyRelu = exports.LRNGrad = exports.LRN = exports.IsNan = exports.IsInf = exports.IsFinite = exports.Imag = exports.Identity = exports.IFFT = exports.GreaterEqual = exports.Greater = exports.GatherV2 = exports.GatherNd = exports.FusedDepthwiseConv2D = exports.FusedConv2D = exports.FusedBatchNorm = exports.FromPixels = exports.FloorDiv = exports.Floor = exports.FlipLeftRight = exports.Fill = exports.FFT = exports.Expm1 = exports.ExpandDims = exports.Exp = exports.Erf = exports.Equal = exports.EluGrad = exports.Elu = exports.Einsum = exports.Dilation2DBackpropInput = exports.Dilation2DBackpropFilter = exports.Dilation2D = exports.Diag = exports.DepthwiseConv2dNativeBackpropInput = exports.DepthwiseConv2dNativeBackpropFilter = exports.DepthwiseConv2dNative = exports.DepthToSpace = exports.DenseBincount = exports.Cumsum = exports.Cumprod = exports.CropAndResize = exports.Cosh = exports.Cos = exports.Conv3DBackpropInputV2 = exports.Conv3DBackpropFilterV2 = exports.Conv3D = exports.Conv2DBackpropInput = exports.Conv2DBackpropFilter = exports.Conv2D = exports.Concat = exports.ComplexAbs = exports.Complex = exports.ClipByValue = exports.Ceil = exports.Cast = exports.BroadcastTo = exports.BroadcastArgs = exports.Bincount = exports.BatchToSpaceND = exports.BatchMatMul = exports.AvgPoolGrad = exports.AvgPool3DGrad = exports.AvgPool3D = exports.AvgPool = exports.Atanh = exports.Atan2 = exports.Atan = exports.Asinh = exports.Asin = exports.ArgMin = exports.ArgMax = exports.Any = exports.All = exports.AddN = exports.Add = exports.Acosh = exports.Acos = exports.Abs = void 0;
        exports._FusedMatMul = exports.ZerosLike = exports.UpperBound = exports.UnsortedSegmentSum = exports.Unpack = exports.Unique = exports.Transpose = exports.Transform = exports.TopK = exports.Tile = exports.Tanh = exports.Tan = exports.Sum = exports.Sub = exports.StringToHashBucketFast = exports.StringSplit = exports.StringNGrams = exports.StridedSlice = exports.Step = exports.SquaredDifference = exports.Square = exports.Sqrt = exports.SplitV = exports.SparseToDense = exports.SparseSegmentSum = exports.SparseSegmentMean = exports.SparseReshape = exports.SparseFillEmptyRows = exports.SpaceToBatchND = exports.Softplus = exports.Softmax = exports.Slice = exports.Sinh = exports.Sin = exports.Sign = exports.Sigmoid = exports.Selu = exports.Select = exports.SearchSorted = exports.ScatterNd = exports.Rsqrt = exports.Round = exports.RotateWithOffset = exports.Reverse = exports.ResizeNearestNeighborGrad = exports.ResizeNearestNeighbor = exports.ResizeBilinearGrad = exports.ResizeBilinear = exports.Reshape = exports.Relu6 = exports.Relu = exports.Reciprocal = exports.RealDiv = exports.Real = exports.Range = exports.RaggedTensorToTensor = exports.RaggedRange = exports.RaggedGather = exports.Prod = exports.Prelu = exports.Pow = exports.Pool = exports.PadV2 = exports.Pack = exports.OnesLike = exports.OneHot = exports.NotEqual = exports.NonMaxSuppressionV5 = exports.NonMaxSuppressionV4 = exports.NonMaxSuppressionV3 = exports.Neg = exports.Multiply = exports.Multinomial = exports.Mod = exports.MirrorPad = void 0;
        const Abs = 'Abs';
        exports.Abs = Abs;
        const Acos = 'Acos';
        exports.Acos = Acos;
        const Acosh = 'Acosh';
        exports.Acosh = Acosh;
        const Add = 'Add';
        exports.Add = Add;
        const AddN = 'AddN';
        exports.AddN = AddN;
        const All = 'All';
        exports.All = All;
        const Any = 'Any';
        exports.Any = Any;
        const ArgMax = 'ArgMax';
        exports.ArgMax = ArgMax;
        const ArgMin = 'ArgMin';
        exports.ArgMin = ArgMin;
        const Asin = 'Asin';
        exports.Asin = Asin;
        const Asinh = 'Asinh';
        exports.Asinh = Asinh;
        const Atan = 'Atan';
        exports.Atan = Atan;
        const Atanh = 'Atanh';
        exports.Atanh = Atanh;
        const Atan2 = 'Atan2';
        exports.Atan2 = Atan2;
        const AvgPool = 'AvgPool';
        exports.AvgPool = AvgPool;
        const AvgPoolGrad = 'AvgPoolGrad';
        exports.AvgPoolGrad = AvgPoolGrad;
        const AvgPool3D = 'AvgPool3D';
        exports.AvgPool3D = AvgPool3D;
        const AvgPool3DGrad = 'AvgPool3DGrad';
        exports.AvgPool3DGrad = AvgPool3DGrad;
        const BatchMatMul = 'BatchMatMul';
        exports.BatchMatMul = BatchMatMul;
        const BatchToSpaceND = 'BatchToSpaceND';
        exports.BatchToSpaceND = BatchToSpaceND;
        const Bincount = 'Bincount';
        exports.Bincount = Bincount;
        const BroadcastTo = 'BroadcastTo';
        exports.BroadcastTo = BroadcastTo;
        const BroadcastArgs = 'BroadcastArgs';
        exports.BroadcastArgs = BroadcastArgs;
        const Cast = 'Cast';
        exports.Cast = Cast;
        const Ceil = 'Ceil';
        exports.Ceil = Ceil;
        const ClipByValue = 'ClipByValue';
        exports.ClipByValue = ClipByValue;
        const Complex = 'Complex';
        exports.Complex = Complex;
        const ComplexAbs = 'ComplexAbs';
        exports.ComplexAbs = ComplexAbs;
        const Concat = 'Concat';
        exports.Concat = Concat;
        const Conv2D = 'Conv2D';
        exports.Conv2D = Conv2D;
        const Conv2DBackpropFilter = 'Conv2DBackpropFilter';
        exports.Conv2DBackpropFilter = Conv2DBackpropFilter;
        const Conv2DBackpropInput = 'Conv2DBackpropInput';
        exports.Conv2DBackpropInput = Conv2DBackpropInput;
        const Conv3D = 'Conv3D';
        exports.Conv3D = Conv3D;
        const Conv3DBackpropFilterV2 = 'Conv3DBackpropFilterV2';
        exports.Conv3DBackpropFilterV2 = Conv3DBackpropFilterV2;
        const Conv3DBackpropInputV2 = 'Conv3DBackpropInputV2';
        exports.Conv3DBackpropInputV2 = Conv3DBackpropInputV2;
        const Cos = 'Cos';
        exports.Cos = Cos;
        const Cosh = 'Cosh';
        exports.Cosh = Cosh;
        const Cumprod = 'Cumprod';
        exports.Cumprod = Cumprod;
        const Cumsum = 'Cumsum';
        exports.Cumsum = Cumsum;
        const CropAndResize = 'CropAndResize';
        exports.CropAndResize = CropAndResize;
        const DenseBincount = 'DenseBincount';
        exports.DenseBincount = DenseBincount;
        const DepthToSpace = 'DepthToSpace';
        exports.DepthToSpace = DepthToSpace;
        const DepthwiseConv2dNative = 'DepthwiseConv2dNative';
        exports.DepthwiseConv2dNative = DepthwiseConv2dNative;
        const DepthwiseConv2dNativeBackpropFilter = 'DepthwiseConv2dNativeBackpropFilter';
        exports.DepthwiseConv2dNativeBackpropFilter = DepthwiseConv2dNativeBackpropFilter;
        const DepthwiseConv2dNativeBackpropInput = 'DepthwiseConv2dNativeBackpropInput';
        exports.DepthwiseConv2dNativeBackpropInput = DepthwiseConv2dNativeBackpropInput;
        const Diag = 'Diag';
        exports.Diag = Diag;
        const Dilation2D = 'Dilation2D';
        exports.Dilation2D = Dilation2D;
        const Dilation2DBackpropInput = 'Dilation2DBackpropInput';
        exports.Dilation2DBackpropInput = Dilation2DBackpropInput;
        const Dilation2DBackpropFilter = 'Dilation2DBackpropFilter';
        exports.Dilation2DBackpropFilter = Dilation2DBackpropFilter;
        const RealDiv = 'RealDiv';
        exports.RealDiv = RealDiv;
        const Einsum = 'Einsum';
        exports.Einsum = Einsum;
        const Elu = 'Elu';
        exports.Elu = Elu;
        const EluGrad = 'EluGrad';
        exports.EluGrad = EluGrad;
        const Erf = 'Erf';
        exports.Erf = Erf;
        const Equal = 'Equal';
        exports.Equal = Equal;
        const Exp = 'Exp';
        exports.Exp = Exp;
        const ExpandDims = 'ExpandDims';
        exports.ExpandDims = ExpandDims;
        const Expm1 = 'Expm1';
        exports.Expm1 = Expm1;
        const FFT = 'FFT';
        exports.FFT = FFT;
        const Fill = 'Fill';
        exports.Fill = Fill;
        const FlipLeftRight = 'FlipLeftRight';
        exports.FlipLeftRight = FlipLeftRight;
        const Floor = 'Floor';
        exports.Floor = Floor;
        const FloorDiv = 'FloorDiv';
        exports.FloorDiv = FloorDiv;
        const FusedBatchNorm = 'FusedBatchNorm';
        exports.FusedBatchNorm = FusedBatchNorm;
        const GatherV2 = 'GatherV2';
        exports.GatherV2 = GatherV2;
        const GatherNd = 'GatherNd';
        exports.GatherNd = GatherNd;
        const Greater = 'Greater';
        exports.Greater = Greater;
        const GreaterEqual = 'GreaterEqual';
        exports.GreaterEqual = GreaterEqual;
        const Identity = 'Identity';
        exports.Identity = Identity;
        const IFFT = 'IFFT';
        exports.IFFT = IFFT;
        const Imag = 'Imag';
        exports.Imag = Imag;
        const IsFinite = 'IsFinite';
        exports.IsFinite = IsFinite;
        const IsInf = 'IsInf';
        exports.IsInf = IsInf;
        const IsNan = 'IsNan';
        exports.IsNan = IsNan;
        const LeakyRelu = 'LeakyRelu';
        exports.LeakyRelu = LeakyRelu;
        const Less = 'Less';
        exports.Less = Less;
        const LessEqual = 'LessEqual';
        exports.LessEqual = LessEqual;
        const LinSpace = 'LinSpace';
        exports.LinSpace = LinSpace;
        const Log = 'Log';
        exports.Log = Log;
        const Log1p = 'Log1p';
        exports.Log1p = Log1p;
        const LogicalAnd = 'LogicalAnd';
        exports.LogicalAnd = LogicalAnd;
        const LogicalNot = 'LogicalNot';
        exports.LogicalNot = LogicalNot;
        const LogicalOr = 'LogicalOr';
        exports.LogicalOr = LogicalOr;
        const LogicalXor = 'LogicalXor';
        exports.LogicalXor = LogicalXor;
        const LogSoftmax = 'LogSoftmax';
        exports.LogSoftmax = LogSoftmax;
        const LowerBound = 'LowerBound';
        exports.LowerBound = LowerBound;
        const LRN = 'LRN';
        exports.LRN = LRN;
        const LRNGrad = 'LRNGrad';
        exports.LRNGrad = LRNGrad;
        const Max = 'Max';
        exports.Max = Max;
        const Maximum = 'Maximum';
        exports.Maximum = Maximum;
        const MaxPool = 'MaxPool';
        exports.MaxPool = MaxPool;
        const MaxPoolGrad = 'MaxPoolGrad';
        exports.MaxPoolGrad = MaxPoolGrad;
        const MaxPool3D = 'MaxPool3D';
        exports.MaxPool3D = MaxPool3D;
        const MaxPool3DGrad = 'MaxPool3DGrad';
        exports.MaxPool3DGrad = MaxPool3DGrad;
        const MaxPoolWithArgmax = 'MaxPoolWithArgmax';
        exports.MaxPoolWithArgmax = MaxPoolWithArgmax;
        const Mean = 'Mean';
        exports.Mean = Mean;
        const Min = 'Min';
        exports.Min = Min;
        const Minimum = 'Minimum';
        exports.Minimum = Minimum;
        const MirrorPad = 'MirrorPad';
        exports.MirrorPad = MirrorPad;
        const Mod = 'Mod';
        exports.Mod = Mod;
        const Multinomial = 'Multinomial';
        exports.Multinomial = Multinomial;
        const Multiply = 'Multiply';
        exports.Multiply = Multiply;
        const Neg = 'Neg';
        exports.Neg = Neg;
        const NotEqual = 'NotEqual';
        exports.NotEqual = NotEqual;
        const NonMaxSuppressionV3 = 'NonMaxSuppressionV3';
        exports.NonMaxSuppressionV3 = NonMaxSuppressionV3;
        const NonMaxSuppressionV4 = 'NonMaxSuppressionV4';
        exports.NonMaxSuppressionV4 = NonMaxSuppressionV4;
        const NonMaxSuppressionV5 = 'NonMaxSuppressionV5';
        exports.NonMaxSuppressionV5 = NonMaxSuppressionV5;
        const OnesLike = 'OnesLike';
        exports.OnesLike = OnesLike;
        const OneHot = 'OneHot';
        exports.OneHot = OneHot;
        const Pack = 'Pack';
        exports.Pack = Pack;
        const PadV2 = 'PadV2';
        exports.PadV2 = PadV2;
        const Pool = 'Pool';
        exports.Pool = Pool;
        const Pow = 'Pow';
        exports.Pow = Pow;
        const Prelu = 'Prelu';
        exports.Prelu = Prelu;
        const Prod = 'Prod';
        exports.Prod = Prod;
        const RaggedGather = 'RaggedGather';
        exports.RaggedGather = RaggedGather;
        const RaggedRange = 'RaggedRange';
        exports.RaggedRange = RaggedRange;
        const RaggedTensorToTensor = 'RaggedTensorToTensor';
        exports.RaggedTensorToTensor = RaggedTensorToTensor;
        const Range = 'Range';
        exports.Range = Range;
        const Real = 'Real';
        exports.Real = Real;
        const Reciprocal = 'Reciprocal';
        exports.Reciprocal = Reciprocal;
        const Relu = 'Relu';
        exports.Relu = Relu;
        const Reshape = 'Reshape';
        exports.Reshape = Reshape;
        const ResizeNearestNeighbor = 'ResizeNearestNeighbor';
        exports.ResizeNearestNeighbor = ResizeNearestNeighbor;
        const ResizeNearestNeighborGrad = 'ResizeNearestNeighborGrad';
        exports.ResizeNearestNeighborGrad = ResizeNearestNeighborGrad;
        const ResizeBilinear = 'ResizeBilinear';
        exports.ResizeBilinear = ResizeBilinear;
        const ResizeBilinearGrad = 'ResizeBilinearGrad';
        exports.ResizeBilinearGrad = ResizeBilinearGrad;
        const Relu6 = 'Relu6';
        exports.Relu6 = Relu6;
        const Reverse = 'Reverse';
        exports.Reverse = Reverse;
        const Round = 'Round';
        exports.Round = Round;
        const Rsqrt = 'Rsqrt';
        exports.Rsqrt = Rsqrt;
        const ScatterNd = 'ScatterNd';
        exports.ScatterNd = ScatterNd;
        const SearchSorted = 'SearchSorted';
        exports.SearchSorted = SearchSorted;
        const Select = 'Select';
        exports.Select = Select;
        const Selu = 'Selu';
        exports.Selu = Selu;
        const Slice = 'Slice';
        exports.Slice = Slice;
        const Sin = 'Sin';
        exports.Sin = Sin;
        const Sinh = 'Sinh';
        exports.Sinh = Sinh;
        const Sign = 'Sign';
        exports.Sign = Sign;
        const Sigmoid = 'Sigmoid';
        exports.Sigmoid = Sigmoid;
        const Softplus = 'Softplus';
        exports.Softplus = Softplus;
        const Sqrt = 'Sqrt';
        exports.Sqrt = Sqrt;
        const Sum = 'Sum';
        exports.Sum = Sum;
        const SpaceToBatchND = 'SpaceToBatchND';
        exports.SpaceToBatchND = SpaceToBatchND;
        const SplitV = 'SplitV';
        exports.SplitV = SplitV;
        const Softmax = 'Softmax';
        exports.Softmax = Softmax;
        const SparseFillEmptyRows = 'SparseFillEmptyRows';
        exports.SparseFillEmptyRows = SparseFillEmptyRows;
        const SparseReshape = 'SparseReshape';
        exports.SparseReshape = SparseReshape;
        const SparseSegmentMean = 'SparseSegmentMean';
        exports.SparseSegmentMean = SparseSegmentMean;
        const SparseSegmentSum = 'SparseSegmentSum';
        exports.SparseSegmentSum = SparseSegmentSum;
        const SparseToDense = 'SparseToDense';
        exports.SparseToDense = SparseToDense;
        const SquaredDifference = 'SquaredDifference';
        exports.SquaredDifference = SquaredDifference;
        const Square = 'Square';
        exports.Square = Square;
        const StridedSlice = 'StridedSlice';
        exports.StridedSlice = StridedSlice;
        const StringNGrams = 'StringNGrams';
        exports.StringNGrams = StringNGrams;
        const StringSplit = 'StringSplit';
        exports.StringSplit = StringSplit;
        const StringToHashBucketFast = 'StringToHashBucketFast';
        exports.StringToHashBucketFast = StringToHashBucketFast;
        const Sub = 'Sub';
        exports.Sub = Sub;
        const Tan = 'Tan';
        exports.Tan = Tan;
        const Tanh = 'Tanh';
        exports.Tanh = Tanh;
        const Tile = 'Tile';
        exports.Tile = Tile;
        const TopK = 'TopK';
        exports.TopK = TopK;
        const Transform = 'Transform';
        exports.Transform = Transform;
        const Transpose = 'Transpose';
        exports.Transpose = Transpose;
        const Unique = 'Unique';
        exports.Unique = Unique;
        const Unpack = 'Unpack';
        exports.Unpack = Unpack;
        const UnsortedSegmentSum = 'UnsortedSegmentSum';
        exports.UnsortedSegmentSum = UnsortedSegmentSum;
        const UpperBound = 'UpperBound';
        exports.UpperBound = UpperBound;
        const ZerosLike = 'ZerosLike';
        /**
         * TensorFlow.js-only kernels
         */
        exports.ZerosLike = ZerosLike;
        const Step = 'Step';
        exports.Step = Step;
        const FromPixels = 'FromPixels';
        exports.FromPixels = FromPixels;
        const RotateWithOffset = 'RotateWithOffset';
        exports.RotateWithOffset = RotateWithOffset;
        const _FusedMatMul = '_FusedMatMul';
        exports._FusedMatMul = _FusedMatMul;
        const FusedConv2D = 'FusedConv2D';
        exports.FusedConv2D = FusedConv2D;
        const FusedDepthwiseConv2D = 'FusedDepthwiseConv2D';
        exports.FusedDepthwiseConv2D = FusedDepthwiseConv2D;

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

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.copyRegisteredKernels = copyRegisteredKernels;
        exports.getGradient = getGradient;
        exports.getKernel = getKernel;
        exports.getKernelsForBackend = getKernelsForBackend;
        exports.registerGradient = registerGradient;
        exports.registerKernel = registerKernel;
        exports.unregisterGradient = unregisterGradient;
        exports.unregisterKernel = unregisterKernel;
        var _environment = require("./environment");
        var _global_util = require("./global_util");
        var log = _interopRequireWildcard(require("./log"));
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2019 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const kernelRegistry = (0,
            _global_util.getGlobal)('kernelRegistry', () => new Map());
        const gradRegistry = (0,
            _global_util.getGlobal)('gradRegistry', () => new Map());
        /**
         * Returns the kernel function (code) associated with the provided names.
         *
         * @param kernelName The official name of the kernel.
         * @param backendName The official name of the backend.
         */
        function getKernel(kernelName, backendName) {
            const key = makeKey(kernelName, backendName);
            return kernelRegistry.get(key);
        }
        /**
         * Returns the registered gradient info associated with the provided kernel.
         * @param kernelName The official TF kernel name.
         */
        function getGradient(kernelName) {
            return gradRegistry.get(kernelName);
        }
        function getKernelsForBackend(backendName) {
            const it = kernelRegistry.entries();
            const result = [];
            while (true) {
                const { done, value } = it.next();
                if (done) {
                    break;
                }
                const [key, config] = value;
                const [backend] = key.split('_');
                if (backend === backendName) {
                    result.push(config);
                }
            }
            return result;
        }
        /**
         * Registers the function (forward pass) for the kernel in a global registry.
         *
         * @param config A config object with the following properties:
         * - `kernelName` The official name of the kernel.
         * - `backendName` The official name of the backend.
         * - `kernelFunc` The function to run during the forward pass of the kernel.
         * - `setupFunc` Optional. Gets called once, after the backend initializes.
         * - `disposeFunc` Optional. Gets called once, right before the backend is
         * disposed.
         */
        function registerKernel(config) {
            const { kernelName, backendName } = config;
            const key = makeKey(kernelName, backendName);
            if (kernelRegistry.has(key)) {
                log.warn(`The kernel '${kernelName}' for backend ` + `'${backendName}' is already registered`);
            }
            kernelRegistry.set(key, config);
        }
        /**
         * Registers a gradient function for a given kernel in the global registry,
         * to be used during the back-propagation of that kernel.
         *
         * @param config An object with the following properties:
         * - `kernelName` The name of the kernel that the gradient function is for.
         * - `gradFunc` The function to run during back-propagation.
         */
        function registerGradient(config) {
            const { kernelName } = config;
            if (gradRegistry.has(kernelName)) {
                // TODO (yassogba) after 3.0 assess whether we need to keep this gated
                // to debug mode.
                if ((0,
                    _environment.env)().getBool('DEBUG')) {
                    log.warn(`Overriding the gradient for '${kernelName}'`);
                }
            }
            gradRegistry.set(kernelName, config);
        }
        /**
         * Removes the kernel function from the registry.
         *
         * @param kernelName The official name of the kernel.
         * @param backendName The official name of the backend.
         *
         */
        function unregisterKernel(kernelName, backendName) {
            const key = makeKey(kernelName, backendName);
            if (!kernelRegistry.has(key)) {
                throw new Error(`The kernel '${kernelName}' for backend ` + `'${backendName}' is not registered`);
            }
            kernelRegistry.delete(key);
        }
        /** Removes the registered gradient from the global registry. */
        function unregisterGradient(kernelName) {
            if (!gradRegistry.has(kernelName)) {
                throw new Error(`The gradient '${kernelName}' for backend is not registered`);
            }
            gradRegistry.delete(kernelName);
        }
        /**
         * Finds kernels that have already been registered to a backend and re-registers
         * them for a new backend. Useful for registering custom backends.
         * @param registeredBackendName Already registered backend.
         * @param newBackendName New backend.
         */
        function copyRegisteredKernels(registeredBackendName, newBackendName) {
            const kernels = getKernelsForBackend(registeredBackendName);
            kernels.forEach(kernelConfig => {
                const newKernelConfig = Object.assign({}, kernelConfig, {
                    backendName: newBackendName
                });
                registerKernel(newKernelConfig);
            }
            );
        }
        function makeKey(kernelName, backendName) {
            return `${backendName}_${kernelName}`;
        }

    }
        , {
        "./environment": 78,
        "./global_util": 80,
        "./log": 200
    }],
    200: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.log = log;
        exports.warn = warn;
        var _environment = require("./environment");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        function warn(...msg) {
            if (!((0,
                _environment.env)().getBool('IS_TEST') || (0,
                    _environment.env)().getBool('PROD'))) {
                console.warn(...msg);
            }
        }
        function log(...msg) {
            if (!((0,
                _environment.env)().getBool('IS_TEST') || (0,
                    _environment.env)().getBool('PROD'))) {
                console.log(...msg);
            }
        }

    }
        , {
        "./environment": 78
    }],
    201: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        Object.defineProperty(exports, "confusionMatrix", {
            enumerable: true,
            get: function () {
                return _confusion_matrix.confusionMatrix;
            }
        });
        var _confusion_matrix = require("./ops/confusion_matrix");

    }
        , {
        "./ops/confusion_matrix": 247
    }],
    202: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.abs = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes absolute value element-wise: `abs(x)`
         *
         * ```js
         * const x = tf.tensor1d([-1, 2, -3, 4]);
         *
         * x.abs().print();  // or tf.abs(x)
         * ```
         * @param x The input `tf.Tensor`.
         *
         * @doc {heading: 'Operations', subheading: 'Basic math'}
         */
        function abs_(x) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'abs');
            if ($x.dtype === 'complex64') {
                const inputs = {
                    x: $x
                };
                return _engine.ENGINE.runKernel(_kernel_names.ComplexAbs, inputs);
            } else {
                const inputs = {
                    x: $x
                };
                return _engine.ENGINE.runKernel(_kernel_names.Abs, inputs);
            }
        }
        const abs = (0,
            _operation.op)({
                abs_
            });
        exports.abs = abs;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    203: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.acos = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes acos of the input `tf.Tensor` element-wise: `acos(x)`
         *
         * ```js
         * const x = tf.tensor1d([0, 1, -1, .7]);
         *
         * x.acos().print();  // or tf.acos(x)
         * ```
         * @param x The input tensor.
         * @doc {heading: 'Operations', subheading: 'Basic math'}
         */
        function acos_(x) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'acos');
            const inputs = {
                x: $x
            };
            return _engine.ENGINE.runKernel(_kernel_names.Acos, inputs);
        }
        const acos = (0,
            _operation.op)({
                acos_
            });
        exports.acos = acos;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    204: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.acosh = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes the inverse hyperbolic cos of the input `tf.Tensor` element-wise:
         * `acosh(x)`
         *
         * ```js
         * const x = tf.tensor1d([10, 1, 3, 5.7]);
         *
         * x.acosh().print();  // or tf.acosh(x)
         * ```
         * @param x The input tensor.
         *
         * @doc {heading: 'Operations', subheading: 'Basic math'}
         */
        function acosh_(x) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'acosh');
            const inputs = {
                x: $x
            };
            return _engine.ENGINE.runKernel(_kernel_names.Acosh, inputs);
        }
        const acosh = (0,
            _operation.op)({
                acosh_
            });
        exports.acosh = acosh;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    205: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.add = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util = require("../tensor_util");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Adds two `tf.Tensor`s element-wise, A + B. Supports broadcasting.
         *
         *
         * ```js
         * const a = tf.tensor1d([1, 2, 3, 4]);
         * const b = tf.tensor1d([10, 20, 30, 40]);
         *
         * a.add(b).print();  // or tf.add(a, b)
         * ```
         *
         * ```js
         * // Broadcast add a with b.
         * const a = tf.scalar(5);
         * const b = tf.tensor1d([10, 20, 30, 40]);
         *
         * a.add(b).print();  // or tf.add(a, b)
         * ```
         * @param a The first `tf.Tensor` to add.
         * @param b The second `tf.Tensor` to add. Must have the same type as `a`.
         *
         * @doc {heading: 'Operations', subheading: 'Arithmetic'}
         */
        function add_(a, b) {
            let $a = (0,
                _tensor_util_env.convertToTensor)(a, 'a', 'add');
            let $b = (0,
                _tensor_util_env.convertToTensor)(b, 'b', 'add');
            [$a, $b] = (0,
                _tensor_util.makeTypesMatch)($a, $b);
            const inputs = {
                a: $a,
                b: $b
            };
            return _engine.ENGINE.runKernel(_kernel_names.Add, inputs);
        }
        const add = (0,
            _operation.op)({
                add_
            });
        exports.add = add;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util": 503,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    206: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.addN = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var util = _interopRequireWildcard(require("../util"));
        var _operation = require("./operation");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Adds a list of `tf.Tensor`s element-wise, each with the same shape and dtype.
         *
         * ```js
         * const a = tf.tensor1d([1, 2]);
         * const b = tf.tensor1d([3, 4]);
         * const c = tf.tensor1d([5, 6]);
         *
         * tf.addN([a, b, c]).print();
         * ```
         * @param tensors A list of tensors with the same shape and dtype.
         * @doc {heading: 'Operations', subheading: 'Arithmetic'}
         */
        function addN_(tensors) {
            util.assert(Array.isArray(tensors), () => 'The argument passed to tf.addN() must be a list of tensors');
            util.assert(tensors.length >= 1, () => `Must pass at least one tensor to tf.addN(), but got ` + `${tensors.length}`);
            const $tensors = tensors.map((t, i) => (0,
                _tensor_util_env.convertToTensor)(t, `tensors${i}`, 'addN'));
            const firstTensor = $tensors[0];
            $tensors.forEach(t => {
                if (t.dtype !== firstTensor.dtype) {
                    throw new Error('All tensors passed to tf.addN() must have the same dtype');
                }
            }
            );
            $tensors.forEach(t => {
                if (!util.arraysEqual(t.shape, firstTensor.shape)) {
                    throw new Error('All tensors passed to tf.addN() must have the same shape');
                }
            }
            );
            const inputs = $tensors;
            return _engine.ENGINE.runKernel(_kernel_names.AddN, inputs);
        }
        const addN = (0,
            _operation.op)({
                addN_
            });
        exports.addN = addN;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "../util": 509,
        "./operation": 372
    }],
    207: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.all = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes the logical and of elements across dimensions of a `tf.Tensor`.
         *
         * Reduces the input along the dimensions given in `axes`. Unless `keepDims`
         * is true, the rank of the `tf.Tensor` is reduced by 1 for each entry in
         * `axes`. If `keepDims` is true, the reduced dimensions are retained with
         * length 1. If `axes` has no entries, all dimensions are reduced, and a
         * `tf.Tensor` with a single element is returned.
         *
         * ```js
         * const x = tf.tensor1d([1, 1, 1], 'bool');
         *
         * x.all().print();  // or tf.all(x)
         * ```
         *
         * ```js
         * const x = tf.tensor2d([1, 1, 0, 0], [2, 2], 'bool');
         *
         * const axis = 1;
         * x.all(axis).print();  // or tf.all(x, axis)
         * ```
         *
         * @param x The input tensor. Must be of dtype bool.
         * @param axis The dimension(s) to reduce. By default it reduces
         *     all dimensions.
         * @param keepDims If true, retains reduced dimensions with size 1.
         *
         * @doc {heading: 'Operations', subheading: 'Reduction'}
         */
        function all_(x, axis = null, keepDims = false) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'all', 'bool');
            const inputs = {
                x: $x
            };
            const attrs = {
                axis,
                keepDims
            };
            return _engine.ENGINE.runKernel(_kernel_names.All, inputs, attrs);
        }
        const all = (0,
            _operation.op)({
                all_
            });
        exports.all = all;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    208: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.any = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes the logical or of elements across dimensions of a `tf.Tensor`.
         *
         * Reduces the input along the dimensions given in `axes`. Unless `keepDims`
         * is true, the rank of the `tf.Tensor` is reduced by 1 for each entry in
         * `axes`. If `keepDims` is true, the reduced dimensions are retained with
         * length 1. If `axes` has no entries, all dimensions are reduced, and a
         * `tf.Tensor` with a single element is returned.
         *
         * ```js
         * const x = tf.tensor1d([1, 1, 1], 'bool');
         *
         * x.any().print();  // or tf.any(x)
         * ```
         *
         * ```js
         * const x = tf.tensor2d([1, 1, 0, 0], [2, 2], 'bool');
         *
         * const axis = 1;
         * x.any(axis).print();  // or tf.any(x, axis)
         * ```
         *
         * @param x The input tensor. Must be of dtype bool.
         * @param axis The dimension(s) to reduce. By default it reduces
         *     all dimensions.
         * @param keepDims If true, retains reduced dimensions with size 1.
         *
         * @doc {heading: 'Operations', subheading: 'Reduction'}
         */
        function any_(x, axis = null, keepDims = false) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'any', 'bool');
            const inputs = {
                x: $x
            };
            const attrs = {
                axis,
                keepDims
            };
            return _engine.ENGINE.runKernel(_kernel_names.Any, inputs, attrs);
        }
        // tslint:disable-next-line:variable-name
        const any = (0,
            _operation.op)({
                any_
            });
        exports.any = any;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    209: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.argMax = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2020 Google Inc. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Returns the indices of the maximum values along an `axis`.
         *
         * The result has the same shape as `input` with the dimension along `axis`
         * removed.
         *
         * ```js
         * const x = tf.tensor1d([1, 2, 3]);
         *
         * x.argMax().print();  // or tf.argMax(x)
         * ```
         *
         * ```js
         * const x = tf.tensor2d([1, 2, 4, 3], [2, 2]);
         *
         * const axis = 1;
         * x.argMax(axis).print();  // or tf.argMax(x, axis)
         * ```
         *
         * @param x The input tensor.
         * @param axis The dimension to reduce. Defaults to 0 (outer-most dimension).
         *
         * @doc {heading: 'Operations', subheading: 'Reduction'}
         */
        function argMax_(x, axis = 0) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'argMax');
            const inputs = {
                x: $x
            };
            const attrs = {
                axis
            };
            return _engine.ENGINE.runKernel(_kernel_names.ArgMax, inputs, attrs);
        }
        const argMax = (0,
            _operation.op)({
                argMax_
            });
        exports.argMax = argMax;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    210: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.argMin = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2020 Google Inc. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Returns the indices of the minimum values along an `axis`.
         *
         * The result has the same shape as `input` with the dimension along `axis`
         * removed.
         *
         * ```js
         * const x = tf.tensor1d([1, 2, 3]);
         *
         * x.argMin().print();  // or tf.argMin(x)
         * ```
         *
         * ```js
         * const x = tf.tensor2d([1, 2, 4, 3], [2, 2]);
         *
         * const axis = 1;
         * x.argMin(axis).print();  // or tf.argMin(x, axis)
         * ```
         *
         * @param x The input tensor.
         * @param axis The dimension to reduce. Defaults to 0 (outer-most dimension).
         *
         * @doc {heading: 'Operations', subheading: 'Reduction'}
         */
        function argMin_(x, axis = 0) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'argMin');
            const inputs = {
                x: $x
            };
            const attrs = {
                axis
            };
            return _engine.ENGINE.runKernel(_kernel_names.ArgMin, inputs, attrs);
        }
        const argMin = (0,
            _operation.op)({
                argMin_
            });
        exports.argMin = argMin;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    211: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.getPermuted = getPermuted;
        exports.getReshaped = getReshaped;
        exports.getReshapedPermuted = getReshapedPermuted;
        exports.getSliceBeginCoords = getSliceBeginCoords;
        exports.getSliceSize = getSliceSize;
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        /**
         * Gets the new shape of the input Tensor after it's been reshaped
         * to:
         * [blockShape[0], ..., blockShape[M-1], batch / prod(blockShape),
         * inputShape[1], ..., inputShape[N-1]]
         *
         * See step 1: https://www.tensorflow.org/api_docs/python/tf/batch_to_space_nd
         */
        function getReshaped(inputShape, blockShape, prod, batchToSpace = true) {
            let reshaped = [];
            if (batchToSpace) {
                reshaped = reshaped.concat(blockShape.slice(0));
                reshaped.push(inputShape[0] / prod);
                reshaped = reshaped.concat(inputShape.slice(1));
            } else {
                reshaped = reshaped.concat(inputShape[0]);
                const spatialLength = blockShape.length;
                for (let i = 0; i < spatialLength; ++i) {
                    reshaped = reshaped.concat([inputShape[i + 1] / blockShape[i], blockShape[i]]);
                }
                reshaped = reshaped.concat(inputShape.slice(spatialLength + 1));
            }
            return reshaped;
        }
        /**
         * Gets the permutation that will transpose the dimensions of the
         * reshaped tensor to shape:
         *
         * [batch / prod(block_shape),inputShape[1], blockShape[0], ...,
         * inputShape[M], blockShape[M-1],inputShape[M+1], ..., inputShape[N-1]]
         *
         * see step 2: https://www.tensorflow.org/api_docs/python/tf/batch_to_space_nd
         */
        function getPermuted(reshapedRank, blockShapeRank, batchToSpace = true) {
            const permuted = [];
            if (batchToSpace) {
                permuted.push(blockShapeRank);
                for (let i = blockShapeRank + 1; i < reshapedRank; ++i) {
                    if (i <= 2 * blockShapeRank) {
                        permuted.push(i);
                        permuted.push(i - (blockShapeRank + 1));
                    } else {
                        permuted.push(i);
                    }
                }
            } else {
                const permutedBeforeBatch = [];
                const permutedAfterBatch = [];
                for (let i = 1; i < reshapedRank; ++i) {
                    if (i >= blockShapeRank * 2 + 1 || i % 2 === 1) {
                        permutedAfterBatch.push(i);
                    } else {
                        permutedBeforeBatch.push(i);
                    }
                }
                permuted.push(...permutedBeforeBatch);
                permuted.push(0);
                permuted.push(...permutedAfterBatch);
            }
            return permuted;
        }
        /**
         * Gets the shape of the reshaped and permuted input Tensor before any cropping
         * is applied.  The new shape will be:
         *
         * [batch / prod(blockShape),inputShape[1] * blockShape[0], ...,
         * inputShape[M] * blockShape[M-1],inputShape[M+1], ..., inputShape[N-1]]
         *
         * See step 3: https://www.tensorflow.org/api_docs/python/tf/batch_to_space_nd
         */
        function getReshapedPermuted(inputShape, blockShape, prod, batchToSpace = true) {
            const reshapedPermuted = [];
            if (batchToSpace) {
                reshapedPermuted.push(inputShape[0] / prod);
            } else {
                reshapedPermuted.push(inputShape[0] * prod);
            }
            for (let i = 1; i < inputShape.length; ++i) {
                if (i <= blockShape.length) {
                    if (batchToSpace) {
                        reshapedPermuted.push(blockShape[i - 1] * inputShape[i]);
                    } else {
                        reshapedPermuted.push(inputShape[i] / blockShape[i - 1]);
                    }
                } else {
                    reshapedPermuted.push(inputShape[i]);
                }
            }
            return reshapedPermuted;
        }
        /**
         * Converts the crops argument into the beginning coordinates of a slice
         * operation.
         */
        function getSliceBeginCoords(crops, blockShape) {
            const sliceBeginCoords = [0];
            for (let i = 0; i < blockShape; ++i) {
                sliceBeginCoords.push(crops[i][0]);
            }
            return sliceBeginCoords;
        }
        /**
         * Converts the crops argument into the size of a slice operation.  When
         * combined with getSliceBeginCoords this function allows the reshaped and
         * permuted Tensor to be cropped to its final output shape of:
         *
         * inputShape[1] * blockShape[0] - crops[0,0] - crops[0,1], ...,
         * inputShape[M] * blockShape[M-1] -crops[M-1,0] -
         * crops[M-1,1],inputShape[M+1], ..., inputShape[N-1]]
         *
         * See step 4: https://www.tensorflow.org/api_docs/python/tf/batch_to_space_nd
         */
        function getSliceSize(uncroppedShape, crops, blockShape) {
            const sliceSize = uncroppedShape.slice(0, 1);
            for (let i = 0; i < blockShape; ++i) {
                sliceSize.push(uncroppedShape[i + 1] - crops[i][0] - crops[i][1]);
            }
            return sliceSize;
        }

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

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.asin = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes asin of the input `tf.Tensor` element-wise: `asin(x)`
         *
         * ```js
         * const x = tf.tensor1d([0, 1, -1, .7]);
         *
         * x.asin().print();  // or tf.asin(x)
         * ```
         * @param x The input tensor.
         * @doc {heading: 'Operations', subheading: 'Basic math'}
         */
        function asin_(x) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'asin');
            const inputs = {
                x: $x
            };
            return _engine.ENGINE.runKernel(_kernel_names.Asin, inputs);
        }
        const asin = (0,
            _operation.op)({
                asin_
            });
        exports.asin = asin;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    213: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.asinh = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes inverse hyperbolic sin of the input `tf.Tensor` element-wise:
         * `asinh(x)`
         *
         * ```js
         * const x = tf.tensor1d([0, 1, -1, .7]);
         *
         * x.asinh().print();  // or tf.asinh(x)
         * ```
         * @param x The input tensor.
         *
         * @doc {heading: 'Operations', subheading: 'Basic math'}
         */
        function asinh_(x) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'asinh');
            const inputs = {
                x: $x
            };
            return _engine.ENGINE.runKernel(_kernel_names.Asinh, inputs);
        }
        const asinh = (0,
            _operation.op)({
                asinh_
            });
        exports.asinh = asinh;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    214: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.atan = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes atan of the input `tf.Tensor` element-wise: `atan(x)`
         *
         * ```js
         * const x = tf.tensor1d([0, 1, -1, .7]);
         *
         * x.atan().print();  // or tf.atan(x)
         * ```
         * @param x The input tensor.
         *
         * @doc {heading: 'Operations', subheading: 'Basic math'}
         */
        function atan_(x) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'atan');
            const inputs = {
                x: $x
            };
            return _engine.ENGINE.runKernel(_kernel_names.Atan, inputs);
        }
        const atan = (0,
            _operation.op)({
                atan_
            });
        exports.atan = atan;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    215: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.atan2 = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util = require("../tensor_util");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes arctangent of `tf.Tensor`s a / b element-wise: `atan2(a, b)`.
         * Supports broadcasting.
         *
         * ```js
         * const a = tf.tensor1d([1.0, 1.0, -1.0, .7]);
         * const b = tf.tensor1d([2.0, 13.0, 3.5, .21]);
         *
         * tf.atan2(a, b).print()
         * ```
         *
         * @param a The first tensor.
         * @param b The second tensor. Must have the same dtype as `a`.
         *
         * @doc {heading: 'Operations', subheading: 'Basic math'}
         */
        function atan2_(a, b) {
            let $a = (0,
                _tensor_util_env.convertToTensor)(a, 'a', 'atan2');
            let $b = (0,
                _tensor_util_env.convertToTensor)(b, 'b', 'atan2');
            [$a, $b] = (0,
                _tensor_util.makeTypesMatch)($a, $b);
            const inputs = {
                a: $a,
                b: $b
            };
            return _engine.ENGINE.runKernel(_kernel_names.Atan2, inputs);
        }
        const atan2 = (0,
            _operation.op)({
                atan2_
            });
        exports.atan2 = atan2;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util": 503,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    216: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.atanh = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes inverse hyperbolic tan of the input `tf.Tensor` element-wise:
         * `atanh(x)`
         *
         * ```js
         * const x = tf.tensor1d([0, .1, -.1, .7]);
         *
         * x.atanh().print();  // or tf.atanh(x)
         * ```
         * @param x The input tensor.
         *
         * @doc {heading: 'Operations', subheading: 'Basic math'}
         */
        function atanh_(x) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'atanh');
            const inputs = {
                x: $x
            };
            return _engine.ENGINE.runKernel(_kernel_names.Atanh, inputs);
        }
        const atanh = (0,
            _operation.op)({
                atanh_
            });
        exports.atanh = atanh;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    217: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.avgPool = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var util = _interopRequireWildcard(require("../util"));
        var _cast = require("./cast");
        var conv_util = _interopRequireWildcard(require("./conv_util"));
        var _operation = require("./operation");
        var _reshape = require("./reshape");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes the 2D average pooling of an image.
         *
         * @param x The input tensor, of rank 4 or rank 3 of shape
         *     `[batch, height, width, inChannels]`. If rank 3, batch of 1 is assumed.
         * @param filterSize The filter size: `[filterHeight, filterWidth]`. If
         *     `filterSize` is a single number, then `filterHeight == filterWidth`.
         * @param strides The strides of the pooling: `[strideHeight, strideWidth]`. If
         *     `strides` is a single number, then `strideHeight == strideWidth`.
         * @param pad The type of padding algorithm:
         *    - `same` and stride 1: output will be of same size as input,
         *       regardless of filter size.
         *    - `valid`: output will be smaller than input if filter is larger
         *       than 1x1.
         *    - For more info, see this guide:
         *     [https://www.tensorflow.org/api_docs/python/tf/nn/convolution](
         *         https://www.tensorflow.org/api_docs/python/tf/nn/convolution)
         * @param dimRoundingMode A string from: 'ceil', 'round', 'floor'. If none is
         *     provided, it will default to truncate.
         *
         * @doc {heading: 'Operations', subheading: 'Convolution'}
         */
        function avgPool_(x, filterSize, strides, pad, dimRoundingMode) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'avgPool', 'float32');
            const dilations = 1;
            util.assert(conv_util.eitherStridesOrDilationsAreOne(strides, dilations), () => 'Error in avgPool: Either strides or dilations must be 1. ' + `Got strides ${strides} and dilations '${dilations}'`);
            let x4D = $x;
            let reshapedTo4D = false;
            if ($x.rank === 3) {
                reshapedTo4D = true;
                x4D = (0,
                    _reshape.reshape)($x, [1, $x.shape[0], $x.shape[1], $x.shape[2]]);
            }
            util.assert(x4D.rank === 4, () => `Error in avgPool: x must be rank 4 but got rank ${x4D.rank}.`);
            conv_util.checkPadOnDimRoundingMode('avgPool', pad, dimRoundingMode);
            const inputs = {
                x: x4D
            };
            const attrs = {
                filterSize,
                strides,
                pad,
                dimRoundingMode
            };
            // tslint:disable-next-line: no-unnecessary-type-assertion
            let res = _engine.ENGINE.runKernel(_kernel_names.AvgPool, inputs, attrs);
            res = (0,
                _cast.cast)(res, $x.dtype);
            if (reshapedTo4D) {
                return (0,
                    _reshape.reshape)(res, [res.shape[1], res.shape[2], res.shape[3]]);
            }
            return res;
        }
        const avgPool = (0,
            _operation.op)({
                avgPool_
            });
        exports.avgPool = avgPool;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "../util": 509,
        "./cast": 236,
        "./conv_util": 257,
        "./operation": 372,
        "./reshape": 402
    }],
    218: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.avgPool3d = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var util = _interopRequireWildcard(require("../util"));
        var _conv_util = require("./conv_util");
        var _cast = require("./cast");
        var _operation = require("./operation");
        var _reshape = require("./reshape");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes the 3D average pooling.
         *
         * ```js
         * const x = tf.tensor5d([1, 2, 3, 4, 5, 6, 7, 8], [1, 2, 2, 2, 1]);
         * const result = tf.avgPool3d(x, 2, 1, 'valid');
         * result.print();
         * ```
         *
         * @param x The input tensor, of rank 5 or rank 4 of shape
         *     `[batch, depth, height, width, inChannels]`.
         * @param filterSize The filter size:
         *     `[filterDepth, filterHeight, filterWidth]`.
         *     If `filterSize` is a single number,
         *     then `filterDepth == filterHeight == filterWidth`.
         * @param strides The strides of the pooling:
         *     `[strideDepth, strideHeight, strideWidth]`.
         *     If `strides` is a single number,
         *     then `strideDepth == strideHeight == strideWidth`.
         * @param pad The type of padding algorithm.
         *    - `same` and stride 1: output will be of same size as input,
         *       regardless of filter size.
         *    - `valid`: output will be smaller than input if filter is larger
         *       than 1*1x1.
         *    - For more info, see this guide:
         *     [https://www.tensorflow.org/api_docs/python/tf/nn/convolution](
         *          https://www.tensorflow.org/api_docs/python/tf/nn/convolution)
         * @param dimRoundingMode A string from: 'ceil', 'round', 'floor'. If none is
         *     provided, it will default to truncate.
         * @param dataFormat An optional string from: "NDHWC", "NCDHW". Defaults to
         *     "NDHWC". Specify the data format of the input and output data. With the
         *     default format "NDHWC", the data is stored in the order of: [batch,
         *     depth, height, width, channels]. Only "NDHWC" is currently supported.
         *
         * @doc {heading: 'Operations', subheading: 'Convolution'}
         */
        function avgPool3d_(x, filterSize, strides, pad, dimRoundingMode, dataFormat = 'NDHWC') {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'avgPool3d', 'float32');
            let x5D = $x;
            let reshapedTo5D = false;
            if ($x.rank === 4) {
                reshapedTo5D = true;
                x5D = (0,
                    _reshape.reshape)($x, [1, $x.shape[0], $x.shape[1], $x.shape[2], $x.shape[3]]);
            }
            util.assert(x5D.rank === 5, () => `Error in avgPool3d: x must be rank 5 but got rank ${x5D.rank}.`);
            util.assert(dataFormat === 'NDHWC', () => `Error in avgPool3d: Only NDHWC is currently supported, ` + `but got dataFormat of ${dataFormat}`);
            (0,
                _conv_util.checkPadOnDimRoundingMode)('avgPool3d', pad, dimRoundingMode);
            const inputs = {
                x: x5D
            };
            const attrs = {
                filterSize,
                strides,
                pad,
                dimRoundingMode,
                dataFormat
            };
            // tslint:disable-next-line: no-unnecessary-type-assertion
            let res = _engine.ENGINE.runKernel(_kernel_names.AvgPool3D, inputs, attrs);
            res = (0,
                _cast.cast)(res, x5D.dtype);
            if (reshapedTo5D) {
                return (0,
                    _reshape.reshape)(res, [res.shape[1], res.shape[2], res.shape[3], res.shape[4]]);
            }
            return res;
        }
        const avgPool3d = (0,
            _operation.op)({
                avgPool3d_
            });
        exports.avgPool3d = avgPool3d;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "../util": 509,
        "./cast": 236,
        "./conv_util": 257,
        "./operation": 372,
        "./reshape": 402
    }],
    219: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.avgPool3dGrad = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var util = _interopRequireWildcard(require("../util"));
        var _conv_util = require("./conv_util");
        var _operation = require("./operation");
        var _reshape = require("./reshape");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes the backprop of a 3d avg pool.
         *
         * @param dy The dy error, of rank 5 of shape
         *     [batchSize, depth, height, width, channels].
         * assumed.
         * @param input The original input image, of rank 5 or rank4 of shape
         *     [batchSize, depth, height, width, channels].
         * @param filterSize The filter size:
         *     `[filterDepth, filterHeight, filterWidth]`.
         *     `filterSize` is a single number,
         *     then `filterDepth == filterHeight == filterWidth`.
         * @param strides The strides of the pooling:
         *     `[strideDepth, strideHeight, strideWidth]`. If
         *     `strides` is a single number, then `strideHeight == strideWidth`.
         * @param pad A string from: 'same', 'valid'. The type of padding algorithm
         *     used in the forward prop of the op.
         * @param dimRoundingMode A string from: 'ceil', 'round', 'floor'. If none is
         *     provided, it will default to truncate.
         */
        function avgPool3dGrad_(dy, input, filterSize, strides, pad, dimRoundingMode) {
            const $dy = (0,
                _tensor_util_env.convertToTensor)(dy, 'dy', 'avgPool3dGrad');
            const $input = (0,
                _tensor_util_env.convertToTensor)(input, 'input', 'avgPool3dGrad');
            let dy5D = $dy;
            let input5D = $input;
            let reshapedTo5D = false;
            if ($input.rank === 4) {
                reshapedTo5D = true;
                dy5D = (0,
                    _reshape.reshape)($dy, [1, $dy.shape[0], $dy.shape[1], $dy.shape[2], $dy.shape[3]]);
                input5D = (0,
                    _reshape.reshape)($input, [1, $input.shape[0], $input.shape[1], $input.shape[2], $input.shape[3]]);
            }
            util.assert(dy5D.rank === 5, () => `Error in avgPool3dGrad: dy must be rank 5 but got rank ` + `${dy5D.rank}.`);
            util.assert(input5D.rank === 5, () => `Error in avgPool3dGrad: input must be rank 5 but got rank ` + `${input5D.rank}.`);
            (0,
                _conv_util.checkPadOnDimRoundingMode)('avgPool3dGrad', pad, dimRoundingMode);
            const inputs = {
                dy: dy5D,
                input: input5D
            };
            const attrs = {
                filterSize,
                strides,
                pad,
                dimRoundingMode
            };
            // tslint:disable-next-line: no-unnecessary-type-assertion
            const res = _engine.ENGINE.runKernel(_kernel_names.AvgPool3DGrad, inputs, attrs);
            if (reshapedTo5D) {
                return (0,
                    _reshape.reshape)(res, [res.shape[1], res.shape[2], res.shape[3], res.shape[4]]);
            }
            return res;
        }
        const avgPool3dGrad = (0,
            _operation.op)({
                avgPool3dGrad_
            });
        exports.avgPool3dGrad = avgPool3dGrad;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "../util": 509,
        "./conv_util": 257,
        "./operation": 372,
        "./reshape": 402
    }],
    220: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.avgPoolGrad = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var util = _interopRequireWildcard(require("../util"));
        var _operation = require("./operation");
        var _reshape = require("./reshape");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes the backprop of an 2D avg pool.
         *
         * @param dy The dy error, of rank 4 or rank 3 of shape
         *     [batchSize, height, width, channels]. If rank 3, batch of 1 is
         * assumed.
         * @param input The input image, of rank 4 or rank 3 of shape
         *     [batchSize, height, width, channels]. If rank 3, batch of 1 is
         * assumed.
         * @param filterSize The filter size: `[filterHeight, filterWidth]`. If
         *     `filterSize` is a single number, then `filterHeight == filterWidth`.
         * @param strides The strides of the pooling: `[strideHeight, strideWidth]`. If
         *     `strides` is a single number, then `strideHeight == strideWidth`.
         * @param pad The type of padding algorithm used in the forward prop of the op.
         *     'same', 'valid', for more info, see this guide:
         *     [https://www.tensorflow.org/api_docs/python/tf/nn/convolution](
         *         https://www.tensorflow.org/api_docs/python/tf/nn/convolution)
         */
        function avgPoolGrad_(dy, input, filterSize, strides, pad) {
            const $dy = (0,
                _tensor_util_env.convertToTensor)(dy, 'dy', 'avgPoolGrad');
            const $input = (0,
                _tensor_util_env.convertToTensor)(input, 'input', 'avgPoolGrad');
            util.assert($input.rank === $dy.rank, () => `Rank of input (${$input.rank}) does not match rank of dy (${$dy.rank})`);
            let input4D = $input;
            let dy4D = $dy;
            let reshapedTo4D = false;
            if ($input.rank === 3) {
                reshapedTo4D = true;
                input4D = (0,
                    _reshape.reshape)($input, [1, $input.shape[0], $input.shape[1], $input.shape[2]]);
                dy4D = (0,
                    _reshape.reshape)($dy, [1, $dy.shape[0], $dy.shape[1], $dy.shape[2]]);
            }
            util.assert(dy4D.rank === 4, () => `Error in avgPoolGrad: dy must be rank 4 but got rank ` + `${dy4D.rank}.`);
            util.assert(input4D.rank === 4, () => `Error in avgPoolGrad: input must be rank 4 but got rank ` + `${input4D.rank}.`);
            const inputs = {
                dy: dy4D,
                input: input4D
            };
            const attrs = {
                filterSize,
                strides,
                pad
            };
            // tslint:disable-next-line: no-unnecessary-type-assertion
            const res = _engine.ENGINE.runKernel(_kernel_names.AvgPoolGrad, inputs, attrs);
            if (reshapedTo4D) {
                return (0,
                    _reshape.reshape)(res, [res.shape[1], res.shape[2], res.shape[3]]);
            }
            return res;
        }
        const avgPoolGrad = (0,
            _operation.op)({
                avgPoolGrad_
            });
        exports.avgPoolGrad = avgPoolGrad;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "../util": 509,
        "./operation": 372,
        "./reshape": 402
    }],
    221: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.assertAxesAreInnerMostDims = assertAxesAreInnerMostDims;
        exports.axesAreInnerMostDims = axesAreInnerMostDims;
        exports.combineLocations = combineLocations;
        exports.computeOutAndReduceShapes = computeOutAndReduceShapes;
        exports.expandShapeToKeepDim = expandShapeToKeepDim;
        exports.getAxesPermutation = getAxesPermutation;
        exports.getInnerMostAxes = getInnerMostAxes;
        exports.getUndoAxesPermutation = getUndoAxesPermutation;
        var util = _interopRequireWildcard(require("../util"));
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2017 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Returns true if the axis specifies the inner most dimensions of the
         * array.
         */
        function axesAreInnerMostDims(axes, rank) {
            for (let i = 0; i < axes.length; ++i) {
                if (axes[axes.length - i - 1] !== rank - 1 - i) {
                    return false;
                }
            }
            return true;
        }
        function combineLocations(outputLoc, reduceLoc, axes) {
            const rank = outputLoc.length + reduceLoc.length;
            const loc = [];
            let outIdx = 0;
            let reduceIdx = 0;
            for (let dim = 0; dim < rank; dim++) {
                if (axes.indexOf(dim) === -1) {
                    loc.push(outputLoc[outIdx++]);
                } else {
                    loc.push(reduceLoc[reduceIdx++]);
                }
            }
            return loc;
        }
        function computeOutAndReduceShapes(aShape, axes) {
            const outShape = [];
            const rank = aShape.length;
            for (let dim = 0; dim < rank; dim++) {
                if (axes.indexOf(dim) === -1) {
                    outShape.push(aShape[dim]);
                }
            }
            const reduceShape = axes.map(dim => aShape[dim]);
            return [outShape, reduceShape];
        }
        function expandShapeToKeepDim(shape, axes) {
            const reduceSubShape = axes.map(x => 1);
            return combineLocations(shape, reduceSubShape, axes);
        }
        function assertAxesAreInnerMostDims(msg, axes, rank) {
            util.assert(axesAreInnerMostDims(axes, rank), () => `${msg} supports only inner-most axes for now. ` + `Got axes ${axes} and rank-${rank} input.`);
        }
        /**
         * Returns the axes permutation to be used with `tf.transpose`, if such
         * permutation is necessary. Otherwise it returns null. This method is used by
         * operations that operate only on inner-most axes.
         */
        function getAxesPermutation(axes, rank) {
            if (axesAreInnerMostDims(axes, rank)) {
                return null;
            }
            const result = [];
            for (let i = 0; i < rank; ++i) {
                if (axes.indexOf(i) === -1) {
                    result.push(i);
                }
            }
            axes.forEach(axis => result.push(axis));
            return result;
        }
        /** Returns the axes permutation that undoes the original permutation. */
        function getUndoAxesPermutation(axes) {
            return axes.map((axis, i) => [i, axis]).sort((a, b) => a[1] - b[1]).map(x => x[0]);
        }
        function getInnerMostAxes(numAxes, rank) {
            const res = [];
            for (let i = rank - numAxes; i < rank; ++i) {
                res.push(i);
            }
            return res;
        }

    }
        , {
        "../util": 509
    }],
    222: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.basicLSTMCell = void 0;
        var _tensor_util_env = require("../tensor_util_env");
        var _add = require("./add");
        var _concat = require("./concat");
        var _mat_mul = require("./mat_mul");
        var _mul = require("./mul");
        var _operation = require("./operation");
        var _sigmoid = require("./sigmoid");
        var _slice = require("./slice");
        var _tanh = require("./tanh");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes the next state and output of a BasicLSTMCell.
         *
         * Returns `[newC, newH]`.
         *
         * Derived from tf.contrib.rnn.BasicLSTMCell.
         *
         * @param forgetBias Forget bias for the cell.
         * @param lstmKernel The weights for the cell.
         * @param lstmBias The bias for the cell.
         * @param data The input to the cell.
         * @param c Previous cell state.
         * @param h Previous cell output.
         *
         * @doc {heading: 'Operations', subheading: 'RNN'}
         */
        function basicLSTMCell_(forgetBias, lstmKernel, lstmBias, data, c, h) {
            const $forgetBias = (0,
                _tensor_util_env.convertToTensor)(forgetBias, 'forgetBias', 'basicLSTMCell');
            const $lstmKernel = (0,
                _tensor_util_env.convertToTensor)(lstmKernel, 'lstmKernel', 'basicLSTMCell');
            const $lstmBias = (0,
                _tensor_util_env.convertToTensor)(lstmBias, 'lstmBias', 'basicLSTMCell');
            const $data = (0,
                _tensor_util_env.convertToTensor)(data, 'data', 'basicLSTMCell');
            const $c = (0,
                _tensor_util_env.convertToTensor)(c, 'c', 'basicLSTMCell');
            const $h = (0,
                _tensor_util_env.convertToTensor)(h, 'h', 'basicLSTMCell');
            const combined = (0,
                _concat.concat)([$data, $h], 1);
            const weighted = (0,
                _mat_mul.matMul)(combined, $lstmKernel);
            const res = (0,
                _add.add)(weighted, $lstmBias);
            // i = input_gate, j = new_input, f = forget_gate, o = output_gate
            const batchSize = res.shape[0];
            const sliceCols = res.shape[1] / 4;
            const sliceSize = [batchSize, sliceCols];
            const i = (0,
                _slice.slice)(res, [0, 0], sliceSize);
            const j = (0,
                _slice.slice)(res, [0, sliceCols], sliceSize);
            const f = (0,
                _slice.slice)(res, [0, sliceCols * 2], sliceSize);
            const o = (0,
                _slice.slice)(res, [0, sliceCols * 3], sliceSize);
            const newC = (0,
                _add.add)((0,
                    _mul.mul)((0,
                        _sigmoid.sigmoid)(i), (0,
                            _tanh.tanh)(j)), (0,
                                _mul.mul)($c, (0,
                                    _sigmoid.sigmoid)((0,
                                        _add.add)($forgetBias, f))));
            const newH = (0,
                _mul.mul)((0,
                    _tanh.tanh)(newC), (0,
                        _sigmoid.sigmoid)(o));
            return [newC, newH];
        }
        const basicLSTMCell = (0,
            _operation.op)({
                basicLSTMCell_
            });
        exports.basicLSTMCell = basicLSTMCell;

    }
        , {
        "../tensor_util_env": 504,
        "./add": 205,
        "./concat": 241,
        "./mat_mul": 346,
        "./mul": 362,
        "./operation": 372,
        "./sigmoid": 420,
        "./slice": 429,
        "./tanh": 466
    }],
    223: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.batchToSpaceND = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var util = _interopRequireWildcard(require("../util"));
        var _operation = require("./operation");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * This operation reshapes the "batch" dimension 0 into `M + 1` dimensions of
         * shape `blockShape + [batch]`, interleaves these blocks back into the grid
         * defined by the spatial dimensions `[1, ..., M]`, to obtain a result with
         * the same rank as the input. The spatial dimensions of this intermediate
         * result are then optionally cropped according to `crops` to produce the
         * output. This is the reverse of `tf.spaceToBatchND`. See below for a precise
         * description.
         *
         * ```js
         * const x = tf.tensor4d([1, 2, 3, 4], [4, 1, 1, 1]);
         * const blockShape = [2, 2];
         * const crops = [[0, 0], [0, 0]];
         *
         * x.batchToSpaceND(blockShape, crops).print();
         * ```
         *
         * @param x A `tf.Tensor`. N-D with `x.shape` = `[batch] + spatialShape +
         * remainingShape`, where spatialShape has `M` dimensions.
         * @param blockShape A 1-D array. Must have shape `[M]`, all values must
         * be >= 1.
         * @param crops A 2-D array.  Must have shape `[M, 2]`, all values must be >= 0.
         * `crops[i] = [cropStart, cropEnd]` specifies the amount to crop from input
         * dimension `i + 1`, which corresponds to spatial dimension `i`. It is required
         * that `cropStart[i] + cropEnd[i] <= blockShape[i] * inputShape[i + 1]`
         *
         * This operation is equivalent to the following steps:
         *
         * 1. Reshape `x` to `reshaped` of shape: `[blockShape[0], ...,
         * blockShape[M-1], batch / prod(blockShape), x.shape[1], ...,
         * x.shape[N-1]]`
         *
         * 2. Permute dimensions of `reshaped` to produce `permuted` of shape `[batch /
         * prod(blockShape),x.shape[1], blockShape[0], ..., x.shape[M],
         * blockShape[M-1],x.shape[M+1], ..., x.shape[N-1]]`
         *
         * 3. Reshape `permuted` to produce `reshapedPermuted` of shape `[batch /
         * prod(blockShape),x.shape[1] * blockShape[0], ..., x.shape[M] *
         * blockShape[M-1],x.shape[M+1], ..., x.shape[N-1]]`
         *
         * 4. Crop the start and end of dimensions `[1, ..., M]` of `reshapedPermuted`
         * according to `crops` to produce the output of shape: `[batch /
         * prod(blockShape),x.shape[1] * blockShape[0] - crops[0,0] - crops[0,1],
         * ..., x.shape[M] * blockShape[M-1] - crops[M-1,0] -
         * crops[M-1,1],x.shape[M+1], ..., x.shape[N-1]]`
         *
         * @doc {heading: 'Tensors', subheading: 'Transformations'}
         */
        function batchToSpaceND_(x, blockShape, crops) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'batchToSpaceND');
            const prod = blockShape.reduce((a, b) => a * b);
            util.assert($x.rank >= 1 + blockShape.length, () => `input rank is ${$x.rank} but should be > than blockShape.length ${blockShape.length}`);
            util.assert(crops.length === blockShape.length, () => `crops.length is ${crops.length} but should be equal to blockShape.length  ${blockShape.length}`);
            util.assert($x.shape[0] % prod === 0, () => `input tensor batch is ${$x.shape[0]} but is not divisible by the product of ` + `the elements of blockShape ${blockShape.join(' * ')} === ${prod}`);
            const inputs = {
                x: $x
            };
            const attrs = {
                blockShape,
                crops
            };
            return _engine.ENGINE.runKernel(_kernel_names.BatchToSpaceND, inputs, attrs);
        }
        const batchToSpaceND = (0,
            _operation.op)({
                batchToSpaceND_
            });
        exports.batchToSpaceND = batchToSpaceND;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "../util": 509,
        "./operation": 372
    }],
    224: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.batchNorm = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var util = _interopRequireWildcard(require("../util"));
        var _batchnorm_util = require("./batchnorm_util");
        var _operation = require("./operation");
        var _reshape = require("./reshape");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Batch normalization.
         *
         * As described in
         * [http://arxiv.org/abs/1502.03167](http://arxiv.org/abs/1502.03167).
         *
         * Mean, variance, scale, and offset can be of two shapes:
         *   - The same shape as the input.
         *   - In the common case, the depth dimension is the last dimension of x, so
         *     the values would be a `tf.Tensor1D` of shape [depth].
         *
         * Also available are stricter rank-specific methods with the same signature
         * as this method that assert that parameters passed are of given rank
         *   - `tf.batchNorm2d`
         *   - `tf.batchNorm3d`
         *   - `tf.batchNorm4d`
         *
         * @param x The input Tensor.
         * @param mean A mean Tensor.
         * @param variance A variance Tensor.
         * @param offset An offset Tensor.
         * @param scale A scale Tensor.
         * @param varianceEpsilon A small float number to avoid dividing by 0.
         *
         * @doc {heading: 'Operations', subheading: 'Normalization'}
         */
        function batchNorm_(x, mean, variance, offset, scale, varianceEpsilon) {
            if (varianceEpsilon == null) {
                varianceEpsilon = 0.001;
            }
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'batchNorm');
            const $mean = (0,
                _tensor_util_env.convertToTensor)(mean, 'mean', 'batchNorm');
            const $variance = (0,
                _tensor_util_env.convertToTensor)(variance, 'variance', 'batchNorm');
            let $scale;
            if (scale != null) {
                $scale = (0,
                    _tensor_util_env.convertToTensor)(scale, 'scale', 'batchNorm');
            }
            let $offset;
            if (offset != null) {
                $offset = (0,
                    _tensor_util_env.convertToTensor)(offset, 'offset', 'batchNorm');
            }
            util.assert($mean.rank === $variance.rank, () => 'Batch normalization gradient requires mean and variance to have ' + 'equal ranks.');
            util.assert($offset == null || $mean.rank === $offset.rank, () => 'Batch normalization gradient requires mean and offset to have ' + 'equal ranks.');
            util.assert($scale == null || $mean.rank === $scale.rank, () => 'Batch normalization gradient requires mean and scale to have ' + 'equal ranks.');
            const x4D = (0,
                _batchnorm_util.xAs4D)($x);
            const inputs = {
                x: x4D,
                scale: $scale,
                offset: $offset,
                mean: $mean,
                variance: $variance
            };
            const attrs = {
                varianceEpsilon
            };
            // tslint:disable-next-line: no-unnecessary-type-assertion
            const res = _engine.ENGINE.runKernel(_kernel_names.FusedBatchNorm, inputs, attrs);
            return (0,
                _reshape.reshape)(res, $x.shape);
        }
        const batchNorm = (0,
            _operation.op)({
                batchNorm_
            });
        exports.batchNorm = batchNorm;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "../util": 509,
        "./batchnorm_util": 228,
        "./operation": 372,
        "./reshape": 402
    }],
    225: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.batchNorm2d = void 0;
        var _tensor_util_env = require("../tensor_util_env");
        var util = _interopRequireWildcard(require("../util"));
        var _batchnorm = require("./batchnorm");
        var _operation = require("./operation");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * Batch normalization, strictly for 2D. For the more relaxed version, see
         * `tf.batchNorm`.
         *
         * @param x The input Tensor.
         * @param mean A mean Tensor.
         * @param variance A variance Tensor.
         * @param offset An offset Tensor.
         * @param scale A scale Tensor.
         * @param varianceEpsilon A small float number to avoid dividing by 0.
         */
        function batchNorm2d_(x, mean, variance, offset, scale, varianceEpsilon) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'batchNorm');
            const $mean = (0,
                _tensor_util_env.convertToTensor)(mean, 'mean', 'batchNorm');
            const $variance = (0,
                _tensor_util_env.convertToTensor)(variance, 'variance', 'batchNorm');
            let $scale;
            if (scale != null) {
                $scale = (0,
                    _tensor_util_env.convertToTensor)(scale, 'scale', 'batchNorm');
            }
            let $offset;
            if (offset != null) {
                $offset = (0,
                    _tensor_util_env.convertToTensor)(offset, 'offset', 'batchNorm');
            }
            util.assert($x.rank === 2, () => `Error in batchNorm2D: x must be rank 2 but got rank ` + `${$x.rank}.`);
            util.assert($mean.rank === 2 || $mean.rank === 1, () => `Error in batchNorm2D: mean must be rank 2 or rank 1 but ` + `got rank ${$mean.rank}.`);
            util.assert($variance.rank === 2 || $variance.rank === 1, () => `Error in batchNorm2D: variance must be rank 2 or rank 1 ` + `but got rank ${$variance.rank}.`);
            if ($scale != null) {
                util.assert($scale.rank === 2 || $scale.rank === 1, () => `Error in batchNorm2D: scale must be rank 2 or rank 1 ` + `but got rank ${$scale.rank}.`);
            }
            if ($offset != null) {
                util.assert($offset.rank === 2 || $offset.rank === 1, () => `Error in batchNorm2D: offset must be rank 2 or rank 1 ` + `but got rank ${$offset.rank}.`);
            }
            return (0,
                _batchnorm.batchNorm)($x, $mean, $variance, $offset, $scale, varianceEpsilon);
        }
        const batchNorm2d = (0,
            _operation.op)({
                batchNorm2d_
            });
        exports.batchNorm2d = batchNorm2d;

    }
        , {
        "../tensor_util_env": 504,
        "../util": 509,
        "./batchnorm": 224,
        "./operation": 372
    }],
    226: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.batchNorm3d = void 0;
        var _tensor_util_env = require("../tensor_util_env");
        var util = _interopRequireWildcard(require("../util"));
        var _batchnorm = require("./batchnorm");
        var _operation = require("./operation");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * Batch normalization, strictly for 3D. For the more relaxed version, see
         * `tf.batchNorm`.
         *
         * @param x The input Tensor.
         * @param mean A mean Tensor.
         * @param variance A variance Tensor.
         * @param offset An offset Tensor.
         * @param scale A scale Tensor.
         * @param varianceEpsilon A small float number to avoid dividing by 0.
         */
        function batchNorm3d_(x, mean, variance, offset, scale, varianceEpsilon) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'batchNorm');
            const $mean = (0,
                _tensor_util_env.convertToTensor)(mean, 'mean', 'batchNorm');
            const $variance = (0,
                _tensor_util_env.convertToTensor)(variance, 'variance', 'batchNorm');
            let $scale;
            if (scale != null) {
                $scale = (0,
                    _tensor_util_env.convertToTensor)(scale, 'scale', 'batchNorm');
            }
            let $offset;
            if (offset != null) {
                $offset = (0,
                    _tensor_util_env.convertToTensor)(offset, 'offset', 'batchNorm');
            }
            util.assert($x.rank === 3, () => `Error in batchNorm3D: x must be rank 3 but got rank ` + `${$x.rank}.`);
            util.assert($mean.rank === 3 || $mean.rank === 1, () => `Error in batchNorm3D: mean must be rank 3 or rank 1 but ` + `got rank ${$mean.rank}.`);
            util.assert($variance.rank === 3 || $variance.rank === 1, () => `Error in batchNorm3D: variance must be rank 3 or rank 1 ` + `but got rank ${$variance.rank}.`);
            if ($scale != null) {
                util.assert($scale.rank === 3 || $scale.rank === 1, () => `Error in batchNorm3D: scale must be rank 3 or rank 1 ` + `but got rank ${$scale.rank}.`);
            }
            if ($offset != null) {
                util.assert($offset.rank === 3 || $offset.rank === 1, () => `Error in batchNorm3D: offset must be rank 3 or rank 1 ` + `but got rank ${$offset.rank}.`);
            }
            return (0,
                _batchnorm.batchNorm)($x, $mean, $variance, $offset, $scale, varianceEpsilon);
        }
        const batchNorm3d = (0,
            _operation.op)({
                batchNorm3d_
            });
        exports.batchNorm3d = batchNorm3d;

    }
        , {
        "../tensor_util_env": 504,
        "../util": 509,
        "./batchnorm": 224,
        "./operation": 372
    }],
    227: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.batchNorm4d = void 0;
        var _tensor_util_env = require("../tensor_util_env");
        var util = _interopRequireWildcard(require("../util"));
        var _batchnorm = require("./batchnorm");
        var _operation = require("./operation");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * Batch normalization, strictly for 4D. For the more relaxed version, see
         * `tf.batchNorm`.
         *
         * @param x The input Tensor.
         * @param mean A mean Tensor.
         * @param variance A variance Tensor.
         * @param offset An offset Tensor.
         * @param scale A scale Tensor.
         * @param varianceEpsilon A small float number to avoid dividing by 0.
         */
        function batchNorm4d_(x, mean, variance, offset, scale, varianceEpsilon) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'batchNorm');
            const $mean = (0,
                _tensor_util_env.convertToTensor)(mean, 'mean', 'batchNorm');
            const $variance = (0,
                _tensor_util_env.convertToTensor)(variance, 'variance', 'batchNorm');
            let $scale;
            if (scale != null) {
                $scale = (0,
                    _tensor_util_env.convertToTensor)(scale, 'scale', 'batchNorm');
            }
            let $offset;
            if (offset != null) {
                $offset = (0,
                    _tensor_util_env.convertToTensor)(offset, 'offset', 'batchNorm');
            }
            util.assert($x.rank === 4, () => `Error in batchNorm4D: x must be rank 4 but got rank ` + `${$x.rank}.`);
            util.assert($mean.rank === 4 || $mean.rank === 1, () => `Error in batchNorm4D: mean must be rank 4 or rank 1 but ` + `got rank ${$mean.rank}.`);
            util.assert($variance.rank === 4 || $variance.rank === 1, () => `Error in batchNorm4D: variance must be rank 4 or rank 1 ` + `but got rank ${$variance.rank}.`);
            if ($scale != null) {
                util.assert($scale.rank === 4 || $scale.rank === 1, () => `Error in batchNorm4D: scale must be rank 4 or rank 1 ` + `but got rank ${$scale.rank}.`);
            }
            if ($offset != null) {
                util.assert($offset.rank === 4 || $offset.rank === 1, () => `Error in batchNorm4D: offset must be rank 4 or rank 1 ` + `but got rank ${$offset.rank}.`);
            }
            return (0,
                _batchnorm.batchNorm)($x, $mean, $variance, $offset, $scale, varianceEpsilon);
        }
        const batchNorm4d = (0,
            _operation.op)({
                batchNorm4d_
            });
        exports.batchNorm4d = batchNorm4d;

    }
        , {
        "../tensor_util_env": 504,
        "../util": 509,
        "./batchnorm": 224,
        "./operation": 372
    }],
    228: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.xAs4D = xAs4D;
        var _reshape = require("./reshape");
        function xAs4D(x) {
            let x4D;
            if (x.rank === 0 || x.rank === 1) {
                x4D = (0,
                    _reshape.reshape)(x, [1, 1, 1, x.size]);
            } else if (x.rank === 2) {
                x4D = (0,
                    _reshape.reshape)(x, [1, 1, x.shape[0], x.shape[1]]);
            } else if (x.rank === 3) {
                x4D = (0,
                    _reshape.reshape)(x, [1, x.shape[0], x.shape[1], x.shape[2]]);
            } else {
                x4D = x;
            }
            return x4D;
        }

    }
        , {
        "./reshape": 402
    }],
    229: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.bincount = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var util = _interopRequireWildcard(require("../util"));
        var _operation = require("./operation");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Outputs a vector with length `size` and the same dtype as `weights`.
         *
         * If `weights` are empty, then index `i` stores the number of times the value
         * `i` is counted in `x`. If `weights` are non-empty, then index `i` stores the
         * sum of the value in `weights` at each index where the corresponding value in
         * `x` is `i`.
         *
         * Values in `x` outside of the range [0, size) are ignored.
         *
         * @param x The input int tensor, rank 1.
         * @param weights The weights tensor, must have the same shape as x, or a
         *     length-0 Tensor, in which case it acts as all weights equal to 1.
         * @param size Non-negative integer.
         *
         * @doc {heading: 'Operations', subheading: 'Reduction'}
         */
        function bincount_(x, weights, size) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'bincount');
            const $weights = (0,
                _tensor_util_env.convertToTensor)(weights, 'weights', 'bincount');
            util.assert($x.dtype === 'int32', () => `Error in bincount: input ` + `dtype must be int32, but got ${$x.dtype}`);
            util.assert(size >= 0, () => `size must be non-negative, but got ${size}.`);
            util.assert($weights.size === $x.size || $weights.size === 0, () => `Error in bincount: weights must have the same size as input or` + `0-length, but got input shape: ${$x.shape}, weights shape: ` + `${$weights.shape}.`);
            const inputs = {
                x: $x,
                weights: $weights
            };
            const attrs = {
                size
            };
            return _engine.ENGINE.runKernel(_kernel_names.Bincount, inputs, attrs);
        }
        const bincount = (0,
            _operation.op)({
                bincount_
            });
        exports.bincount = bincount;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "../util": 509,
        "./operation": 372
    }],
    230: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.booleanMaskAsync = void 0;
        var _tensor_util_env = require("../tensor_util_env");
        var util = _interopRequireWildcard(require("../util"));
        var _gather = require("./gather");
        var _reshape = require("./reshape");
        var _squeeze = require("./squeeze");
        var _where_async = require("./where_async");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Apply boolean mask to tensor.
         *
         * ```js
         * const tensor = tf.tensor2d([1, 2, 3, 4, 5, 6], [3, 2]);
         * const mask = tf.tensor1d([1, 0, 1], 'bool');
         * const result = await tf.booleanMaskAsync(tensor, mask);
         * result.print();
         * ```
         *
         * @param tensor N-D tensor.
         * @param mask K-D boolean tensor, K <= N and K must be known statically.
         * @param axis A 0-D int Tensor representing the axis in tensor to mask from.
         *     By default, axis is 0 which will mask from the first dimension.
         *     Otherwise K + axis <= N.
         *
         * @doc {heading: 'Tensors', subheading: 'Slicing and Joining'}
         */
        async function booleanMaskAsync_(tensor, mask, axis) {
            const $tensor = (0,
                _tensor_util_env.convertToTensor)(tensor, 'tensor', 'boolMask');
            const $mask = (0,
                _tensor_util_env.convertToTensor)(mask, 'mask', 'boolMask', 'bool');
            const axisFrom = axis == null ? 0 : axis;
            const maskDim = $mask.rank;
            const tensorShape = $tensor.shape;
            util.assert(maskDim > 0, () => 'mask cannot be scalar');
            util.assertShapesMatch(tensorShape.slice(axisFrom, axisFrom + maskDim), $mask.shape, `mask's shape must match the first K dimensions of tensor's shape,`);
            let leadingSize = 1;
            for (let i = axisFrom; i < axisFrom + maskDim; i++) {
                leadingSize *= tensorShape[i];
            }
            const targetTensorShape = tensorShape.slice(0, axisFrom).concat([leadingSize], tensorShape.slice(axisFrom + maskDim));
            const reshapedTensor = (0,
                _reshape.reshape)($tensor, targetTensorShape);
            const reshapedMask = (0,
                _reshape.reshape)($mask, [-1]);
            const positivePositions = await (0,
                _where_async.whereAsync)(reshapedMask);
            const indices = (0,
                _squeeze.squeeze)(positivePositions, [1]);
            const res = (0,
                _gather.gather)(reshapedTensor, indices, axisFrom);
            // Ensure no memory leak.
            if (tensor !== $tensor) {
                $tensor.dispose();
            }
            if (mask !== $mask) {
                $mask.dispose();
            }
            indices.dispose();
            reshapedTensor.dispose();
            reshapedMask.dispose();
            positivePositions.dispose();
            return res;
        }
        const booleanMaskAsync = booleanMaskAsync_;
        exports.booleanMaskAsync = booleanMaskAsync;

    }
        , {
        "../tensor_util_env": 504,
        "../util": 509,
        "./gather": 293,
        "./reshape": 402,
        "./squeeze": 456,
        "./where_async": 485
    }],
    231: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.broadcastArgs = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2021 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Return the shape of s0 op s1 with broadcast.
         *
         * compute r0, the broadcasted shape as a tensor.
         * s0, s1 and r0 are all integer vectors.
         *
         * This function returns the shape of the result of an operation between
         * two tensors of size s0 and s1 performed with broadcast.
         *
         * @param s0 A tensor representing a shape
         * @param s1 A tensor representing a shape
         *
         * @doc {heading: 'Tensors', subheading: 'Transformations'}
         */
        function broadcastArgs_(s0, s1) {
            const shape1Input = (0,
                _tensor_util_env.convertToTensor)(s0, 's0', 'broadcastArgs', 'int32');
            const shape2Input = (0,
                _tensor_util_env.convertToTensor)(s1, 's1', 'broadcastArgs', 'int32');
            if (shape1Input.rank !== 1) {
                throw new Error('broadcastArgs(): first input must be a vector (rank=1). ' + `Has rank ${shape1Input.rank}`);
            }
            if (shape2Input.rank !== 1) {
                throw new Error('broadcastArgs(): second input must be a vector (rank=1). ' + `Has rank ${shape2Input.rank}`);
            }
            const inputs = {
                s0: shape1Input,
                s1: shape2Input
            };
            return _engine.ENGINE.runKernel(_kernel_names.BroadcastArgs, inputs);
        }
        const broadcastArgs = (0,
            _operation.op)({
                broadcastArgs_
            });
        exports.broadcastArgs = broadcastArgs;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    232: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.broadcastTo = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _util_base = require("../util_base");
        var _clone = require("./clone");
        var _operation = require("./operation");
        var _reshape = require("./reshape");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Broadcast an array to a compatible shape NumPy-style.
         *
         * The tensor's shape is compared to the broadcast shape from end to beginning.
         * Ones are prepended to the tensor's shape until it has the same length as
         * the broadcast shape. If input.shape[i]==shape[i], the (i+1)-th axis is
         * already broadcast-compatible. If input.shape[i]==1 and shape[i]==N, then
         * the input tensor is tiled N times along that axis (using tf.tile).
         *
         * @param input The tensor that is to be broadcasted.
         * @param shape The input is to be broadcast to this shape.
         *
         * @doc {heading: 'Tensors', subheading: 'Transformations'}
         */
        function broadcastTo_(x, shape) {
            let input = (0,
                _tensor_util_env.convertToTensor)(x, 'broadcastTo', 'x');
            const xShape = input.shape;
            (0,
                _util_base.assertNonNegativeIntegerDimensions)(shape);
            if (shape.length < input.rank) {
                throw new Error(`broadcastTo(): shape.length=${shape.length} < input.rank=${input.rank}.`);
            }
            if (shape.length > input.rank) {
                const newShape = input.shape.slice();
                while (newShape.length < shape.length) {
                    newShape.unshift(1);
                }
                input = (0,
                    _reshape.reshape)(input, newShape);
            }
            const inputShape = input.shape;
            const reps = Array.from(shape);
            for (let i = shape.length - 1; i >= 0; i--) {
                if (inputShape[i] === shape[i]) {
                    reps[i] = 1;
                } else if (input.shape[i] !== 1) {
                    throw new Error(`broadcastTo(): [${xShape}] cannot be broadcast to [${shape}].`);
                }
            }
            const axes = reps.map((n, i) => n > 1 ? i : -1).filter(i => i >= 0);
            if (axes.length === 0) {
                return (0,
                    _clone.clone)(input);
            }
            // TODO call broadcastTo kernel directly once backends implement broadcstTo
            const inputs = {
                x: input
            };
            const attrs = {
                reps
            };
            return _engine.ENGINE.runKernel(_kernel_names.Tile, inputs, attrs);
        }
        const broadcastTo = (0,
            _operation.op)({
                broadcastTo_
            });
        exports.broadcastTo = broadcastTo;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "../util_base": 510,
        "./clone": 239,
        "./operation": 372,
        "./reshape": 402
    }],
    233: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.assertAndGetBroadcastShape = assertAndGetBroadcastShape;
        exports.getBroadcastDims = getBroadcastDims;
        exports.getReductionAxes = getReductionAxes;
        /**
         * @license
         * Copyright 2017 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        /**
         * Returns the dimensions in the input shape that are broadcasted to
         * produce the provided output shape.
         *
         * The returned dimensions are 0-indexed and sorted. An example:
         * inShape = [4, 1, 3]
         * outShape = [5, 4, 3, 3]
         * result = [1]. Dimension 1 (2nd dimension of input) gets broadcasted 1 => 3.
         */
        function getBroadcastDims(inShape, outShape) {
            const inRank = inShape.length;
            const dims = [];
            for (let i = 0; i < inRank; i++) {
                const dim = inRank - 1 - i;
                const a = inShape[dim] || 1;
                const b = outShape[outShape.length - 1 - i] || 1;
                if (b > 1 && a === 1) {
                    dims.unshift(dim);
                }
            }
            return dims;
        }
        /**
         * Returns the axes in the output space that should be reduced to produce
         * the input space.
         */
        function getReductionAxes(inShape, outShape) {
            const result = [];
            for (let i = 0; i < outShape.length; i++) {
                const inDim = inShape[inShape.length - i - 1];
                const outAxis = outShape.length - i - 1;
                const outDim = outShape[outAxis];
                if (inDim == null || inDim === 1 && outDim > 1) {
                    result.unshift(outAxis);
                }
            }
            return result;
        }
        function assertAndGetBroadcastShape(shapeA, shapeB) {
            const result = [];
            const l = Math.max(shapeA.length, shapeB.length);
            for (let i = 0; i < l; i++) {
                let a = shapeA[shapeA.length - i - 1];
                if (a == null) {
                    a = 1;
                }
                let b = shapeB[shapeB.length - i - 1];
                if (b == null) {
                    b = 1;
                }
                if (a === 1) {
                    result.unshift(b);
                } else if (b === 1) {
                    result.unshift(a);
                } else if (a !== b) {
                    const errMsg = `Operands could not be broadcast together with shapes ` + `${shapeA} and ${shapeB}.`;
                    throw Error(errMsg);
                } else {
                    result.unshift(a);
                }
            }
            return result;
        }

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

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.fromPixels = void 0;
        exports.fromPixelsAsync = fromPixelsAsync;
        exports.toPixels = toPixels;
        var _engine = require("../engine");
        var _environment = require("../environment");
        var _kernel_names = require("../kernel_names");
        var _kernel_registry = require("../kernel_registry");
        var _tensor = require("../tensor");
        var _tensor_util_env = require("../tensor_util_env");
        var _cast = require("./cast");
        var _operation = require("./operation");
        var _tensor3d = require("./tensor3d");
        /**
         * @license
         * Copyright 2019 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        let fromPixels2DContext;
        /**
         * Creates a `tf.Tensor` from an image.
         *
         * ```js
         * const image = new ImageData(1, 1);
         * image.data[0] = 100;
         * image.data[1] = 150;
         * image.data[2] = 200;
         * image.data[3] = 255;
         *
         * tf.browser.fromPixels(image).print();
         * ```
         *
         * @param pixels The input image to construct the tensor from. The
         * supported image types are all 4-channel. You can also pass in an image
         * object with following attributes:
         * `{data: Uint8Array; width: number; height: number}`
         * @param numChannels The number of channels of the output tensor. A
         * numChannels value less than 4 allows you to ignore channels. Defaults to
         * 3 (ignores alpha channel of input image).
         *
         * @returns A Tensor3D with the shape `[height, width, numChannels]`.
         *
         * Note: fromPixels can be lossy in some cases, same image may result in
         * slightly different tensor values, if rendered by different rendering
         * engines. This means that results from different browsers, or even same
         * browser with CPU and GPU rendering engines can be different. See discussion
         * in details:
         * https://github.com/tensorflow/tfjs/issues/5482
         *
         * @doc {heading: 'Browser', namespace: 'browser', ignoreCI: true}
         */
        function fromPixels_(pixels, numChannels = 3) {
            // Sanity checks.
            if (numChannels > 4) {
                throw new Error('Cannot construct Tensor with more than 4 channels from pixels.');
            }
            if (pixels == null) {
                throw new Error('pixels passed to tf.browser.fromPixels() can not be null');
            }
            let isPixelData = false;
            let isImageData = false;
            let isVideo = false;
            let isImage = false;
            let isCanvasLike = false;
            let isImageBitmap = false;
            if (pixels.data instanceof Uint8Array) {
                isPixelData = true;
            } else if (typeof ImageData !== 'undefined' && pixels instanceof ImageData) {
                isImageData = true;
            } else if (typeof HTMLVideoElement !== 'undefined' && pixels instanceof HTMLVideoElement) {
                isVideo = true;
            } else if (typeof HTMLImageElement !== 'undefined' && pixels instanceof HTMLImageElement) {
                isImage = true;
                // tslint:disable-next-line: no-any
            } else if (pixels.getContext != null) {
                isCanvasLike = true;
            } else if (typeof ImageBitmap !== 'undefined' && pixels instanceof ImageBitmap) {
                isImageBitmap = true;
            } else {
                throw new Error('pixels passed to tf.browser.fromPixels() must be either an ' + `HTMLVideoElement, HTMLImageElement, HTMLCanvasElement, ImageData ` + `in browser, or OffscreenCanvas, ImageData in webworker` + ` or {data: Uint32Array, width: number, height: number}, ` + `but was ${pixels.constructor.name}`);
            }
            // If the current backend has 'FromPixels' registered, it has a more
            // efficient way of handling pixel uploads, so we call that.
            const kernel = (0,
                _kernel_registry.getKernel)(_kernel_names.FromPixels, _engine.ENGINE.backendName);
            if (kernel != null) {
                const inputs = {
                    pixels
                };
                const attrs = {
                    numChannels
                };
                return _engine.ENGINE.runKernel(_kernel_names.FromPixels, inputs, attrs);
            }
            const [width, height] = isVideo ? [pixels.videoWidth, pixels.videoHeight] : [pixels.width, pixels.height];
            let vals;
            if (isCanvasLike) {
                vals = // tslint:disable-next-line:no-any
                    pixels.getContext('2d').getImageData(0, 0, width, height).data;
            } else if (isImageData || isPixelData) {
                vals = pixels.data;
            } else if (isImage || isVideo || isImageBitmap) {
                if (fromPixels2DContext == null) {
                    if (typeof document === 'undefined') {
                        if (typeof OffscreenCanvas !== 'undefined' && typeof OffscreenCanvasRenderingContext2D !== 'undefined') {
                            // @ts-ignore
                            fromPixels2DContext = new OffscreenCanvas(1, 1).getContext('2d');
                        } else {
                            throw new Error('Cannot parse input in current context. ' + 'Reason: OffscreenCanvas Context2D rendering is not supported.');
                        }
                    } else {
                        fromPixels2DContext = document.createElement('canvas').getContext('2d', {
                            willReadFrequently: true
                        });
                    }
                }
                fromPixels2DContext.canvas.width = width;
                fromPixels2DContext.canvas.height = height;
                fromPixels2DContext.drawImage(pixels, 0, 0, width, height);
                vals = fromPixels2DContext.getImageData(0, 0, width, height).data;
            }
            let values;
            if (numChannels === 4) {
                values = new Int32Array(vals);
            } else {
                const numPixels = width * height;
                values = new Int32Array(numPixels * numChannels);
                for (let i = 0; i < numPixels; i++) {
                    for (let channel = 0; channel < numChannels; ++channel) {
                        values[i * numChannels + channel] = vals[i * 4 + channel];
                    }
                }
            }
            const outShape = [height, width, numChannels];
            return (0,
                _tensor3d.tensor3d)(values, outShape, 'int32');
        }
        // Helper functions for |fromPixelsAsync| to check whether the input can
        // be wrapped into imageBitmap.
        function isPixelData(pixels) {
            return pixels != null && pixels.data instanceof Uint8Array;
        }
        function isImageBitmapFullySupported() {
            return typeof window !== 'undefined' && typeof ImageBitmap !== 'undefined' && window.hasOwnProperty('createImageBitmap');
        }
        function isNonEmptyPixels(pixels) {
            return pixels != null && pixels.width !== 0 && pixels.height !== 0;
        }
        function canWrapPixelsToImageBitmap(pixels) {
            return isImageBitmapFullySupported() && !(pixels instanceof ImageBitmap) && isNonEmptyPixels(pixels) && !isPixelData(pixels);
        }
        /**
         * Creates a `tf.Tensor` from an image in async way.
         *
         * ```js
         * const image = new ImageData(1, 1);
         * image.data[0] = 100;
         * image.data[1] = 150;
         * image.data[2] = 200;
         * image.data[3] = 255;
         *
         * (await tf.browser.fromPixelsAsync(image)).print();
         * ```
         * This API is the async version of fromPixels. The API will first
         * check |WRAP_TO_IMAGEBITMAP| flag, and try to wrap the input to
         * imageBitmap if the flag is set to true.
         *
         * @param pixels The input image to construct the tensor from. The
         * supported image types are all 4-channel. You can also pass in an image
         * object with following attributes:
         * `{data: Uint8Array; width: number; height: number}`
         * @param numChannels The number of channels of the output tensor. A
         * numChannels value less than 4 allows you to ignore channels. Defaults to
         * 3 (ignores alpha channel of input image).
         *
         * @doc {heading: 'Browser', namespace: 'browser', ignoreCI: true}
         */
        async function fromPixelsAsync(pixels, numChannels = 3) {
            let inputs = null;
            // Check whether the backend needs to wrap |pixels| to imageBitmap and
            // whether |pixels| can be wrapped to imageBitmap.
            if ((0,
                _environment.env)().getBool('WRAP_TO_IMAGEBITMAP') && canWrapPixelsToImageBitmap(pixels)) {
                // Force the imageBitmap creation to not do any premultiply alpha
                // ops.
                let imageBitmap;
                try {
                    // wrap in try-catch block, because createImageBitmap may not work
                    // properly in some browsers, e.g.
                    // https://bugzilla.mozilla.org/show_bug.cgi?id=1335594
                    // tslint:disable-next-line: no-any
                    imageBitmap = await createImageBitmap(pixels, {
                        premultiplyAlpha: 'none'
                    });
                } catch (e) {
                    imageBitmap = null;
                }
                // createImageBitmap will clip the source size.
                // In some cases, the input will have larger size than its content.
                // E.g. new Image(10, 10) but with 1 x 1 content. Using
                // createImageBitmap will clip the size from 10 x 10 to 1 x 1, which
                // is not correct. We should avoid wrapping such resouce to
                // imageBitmap.
                if (imageBitmap != null && imageBitmap.width === pixels.width && imageBitmap.height === pixels.height) {
                    inputs = imageBitmap;
                } else {
                    inputs = pixels;
                }
            } else {
                inputs = pixels;
            }
            return fromPixels_(inputs, numChannels);
        }
        /**
         * Draws a `tf.Tensor` of pixel values to a byte array or optionally a
         * canvas.
         *
         * When the dtype of the input is 'float32', we assume values in the range
         * [0-1]. Otherwise, when input is 'int32', we assume values in the range
         * [0-255].
         *
         * Returns a promise that resolves when the canvas has been drawn to.
         *
         * @param img A rank-2 tensor with shape `[height, width]`, or a rank-3 tensor
         * of shape `[height, width, numChannels]`. If rank-2, draws grayscale. If
         * rank-3, must have depth of 1, 3 or 4. When depth of 1, draws
         * grayscale. When depth of 3, we draw with the first three components of
         * the depth dimension corresponding to r, g, b and alpha = 1. When depth of
         * 4, all four components of the depth dimension correspond to r, g, b, a.
         * @param canvas The canvas to draw to.
         *
         * @doc {heading: 'Browser', namespace: 'browser'}
         */
        async function toPixels(img, canvas) {
            let $img = (0,
                _tensor_util_env.convertToTensor)(img, 'img', 'toPixels');
            if (!(img instanceof _tensor.Tensor)) {
                // Assume int32 if user passed a native array.
                const originalImgTensor = $img;
                $img = (0,
                    _cast.cast)(originalImgTensor, 'int32');
                originalImgTensor.dispose();
            }
            if ($img.rank !== 2 && $img.rank !== 3) {
                throw new Error(`toPixels only supports rank 2 or 3 tensors, got rank ${$img.rank}.`);
            }
            const [height, width] = $img.shape.slice(0, 2);
            const depth = $img.rank === 2 ? 1 : $img.shape[2];
            if (depth > 4 || depth === 2) {
                throw new Error(`toPixels only supports depth of size ` + `1, 3 or 4 but got ${depth}`);
            }
            if ($img.dtype !== 'float32' && $img.dtype !== 'int32') {
                throw new Error(`Unsupported type for toPixels: ${$img.dtype}.` + ` Please use float32 or int32 tensors.`);
            }
            const data = await $img.data();
            const multiplier = $img.dtype === 'float32' ? 255 : 1;
            const bytes = new Uint8ClampedArray(width * height * 4);
            for (let i = 0; i < height * width; ++i) {
                const rgba = [0, 0, 0, 255];
                for (let d = 0; d < depth; d++) {
                    const value = data[i * depth + d];
                    if ($img.dtype === 'float32') {
                        if (value < 0 || value > 1) {
                            throw new Error(`Tensor values for a float32 Tensor must be in the ` + `range [0 - 1] but encountered ${value}.`);
                        }
                    } else if ($img.dtype === 'int32') {
                        if (value < 0 || value > 255) {
                            throw new Error(`Tensor values for a int32 Tensor must be in the ` + `range [0 - 255] but encountered ${value}.`);
                        }
                    }
                    if (depth === 1) {
                        rgba[0] = value * multiplier;
                        rgba[1] = value * multiplier;
                        rgba[2] = value * multiplier;
                    } else {
                        rgba[d] = value * multiplier;
                    }
                }
                const j = i * 4;
                bytes[j + 0] = Math.round(rgba[0]);
                bytes[j + 1] = Math.round(rgba[1]);
                bytes[j + 2] = Math.round(rgba[2]);
                bytes[j + 3] = Math.round(rgba[3]);
            }
            if (canvas != null) {
                canvas.width = width;
                canvas.height = height;
                const ctx = canvas.getContext('2d');
                const imageData = new ImageData(bytes, width, height);
                ctx.putImageData(imageData, 0, 0);
            }
            if ($img !== img) {
                $img.dispose();
            }
            return bytes;
        }
        const fromPixels = (0,
            _operation.op)({
                fromPixels_
            });
        exports.fromPixels = fromPixels;

    }
        , {
        "../engine": 77,
        "../environment": 78,
        "../kernel_names": 198,
        "../kernel_registry": 199,
        "../tensor": 501,
        "../tensor_util_env": 504,
        "./cast": 236,
        "./operation": 372,
        "./tensor3d": 470
    }],
    235: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.buffer = buffer;
        var _tensor = require("../tensor");
        var util = _interopRequireWildcard(require("../util"));
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2020 Google Inc. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Creates an empty `tf.TensorBuffer` with the specified `shape` and `dtype`.
         *
         * The values are stored in CPU as `TypedArray`. Fill the buffer using
         * `buffer.set()`, or by modifying directly `buffer.values`.
         *
         * When done, call `buffer.toTensor()` to get an immutable `tf.Tensor` with
         * those values.
         *
         * ```js
         * // Create a buffer and set values at particular indices.
         * const buffer = tf.buffer([2, 2]);
         * buffer.set(3, 0, 0);
         * buffer.set(5, 1, 0);
         *
         * // Convert the buffer back to a tensor.
         * buffer.toTensor().print();
         * ```
         *
         * @param shape An array of integers defining the output tensor shape.
         * @param dtype The dtype of the buffer. Defaults to 'float32'.
         * @param values The values of the buffer as `TypedArray`. Defaults to
         * zeros.
         *
         * @doc {heading: 'Tensors', subheading: 'Creation'}
         */
        function buffer(shape, dtype = 'float32', values) {
            dtype = dtype || 'float32';
            util.assertNonNegativeIntegerDimensions(shape);
            return new _tensor.TensorBuffer(shape, dtype, values);
        }

    }
        , {
        "../tensor": 501,
        "../util": 509
    }],
    236: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.cast = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var util = _interopRequireWildcard(require("../util"));
        var _operation = require("./operation");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2020 Google Inc. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Casts a `tf.Tensor` to a new dtype.
         *
         * ```js
         * const x = tf.tensor1d([1.5, 2.5, 3]);
         * tf.cast(x, 'int32').print();
         * ```
         * @param x The input tensor to be casted.
         * @param dtype The dtype to cast the input tensor to.
         *
         * @doc {heading: 'Tensors', subheading: 'Transformations'}
         */
        function cast_(x, dtype) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'cast');
            // Sanity checks.
            if (!util.isValidDtype(dtype)) {
                throw new Error(`Failed to cast to unknown dtype ${dtype}`);
            }
            if (dtype === 'string' && $x.dtype !== 'string' || dtype !== 'string' && $x.dtype === 'string') {
                throw new Error('Only strings can be casted to strings');
            }
            const inputs = {
                x: $x
            };
            const attrs = {
                dtype
            };
            return _engine.ENGINE.runKernel(_kernel_names.Cast, inputs, attrs);
        }
        const cast = (0,
            _operation.op)({
                cast_
            });
        exports.cast = cast;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "../util": 509,
        "./operation": 372
    }],
    237: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.ceil = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes ceiling of input `tf.Tensor` element-wise: `ceil(x)`
         *
         * ```js
         * const x = tf.tensor1d([.6, 1.1, -3.3]);
         *
         * x.ceil().print();  // or tf.ceil(x)
         * ```
         * @param x The input Tensor.
         *
         * @doc {heading: 'Operations', subheading: 'Basic math'}
         */
        function ceil_(x) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'ceil', 'float32');
            const inputs = {
                x: $x
            };
            return _engine.ENGINE.runKernel(_kernel_names.Ceil, inputs);
        }
        const ceil = (0,
            _operation.op)({
                ceil_
            });
        exports.ceil = ceil;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    238: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.clipByValue = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var util = _interopRequireWildcard(require("../util"));
        var _fill = require("./fill");
        var _operation = require("./operation");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Clips values element-wise. `max(min(x, clipValueMax), clipValueMin)`
         *
         * ```js
         * const x = tf.tensor1d([-1, 2, -3, 4]);
         *
         * x.clipByValue(-2, 3).print();  // or tf.clipByValue(x, -2, 3)
         * ```
         * @param x The input tensor.
         * @param clipValueMin Lower bound of range to be clipped to.
         * @param clipValueMax Upper bound of range to be clipped to.
         *
         * @doc {heading: 'Operations', subheading: 'Basic math'}
         */
        function clipByValue_(x, clipValueMin, clipValueMax) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'clipByValue');
            util.assert(clipValueMin <= clipValueMax, () => `Error in clip: min (${clipValueMin}) must be ` + `less than or equal to max (${clipValueMax}).`);
            if (clipValueMin === clipValueMax) {
                return (0,
                    _fill.fill)($x.shape, clipValueMin, $x.dtype);
            }
            const inputs = {
                x: $x
            };
            const attrs = {
                clipValueMin,
                clipValueMax
            };
            return _engine.ENGINE.runKernel(_kernel_names.ClipByValue, inputs, attrs);
        }
        const clipByValue = (0,
            _operation.op)({
                clipByValue_
            });
        exports.clipByValue = clipByValue;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "../util": 509,
        "./fill": 284,
        "./operation": 372
    }],
    239: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.clone = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Creates a new tensor with the same values and shape as the specified
         * tensor.
         *
         * ```js
         * const x = tf.tensor([1, 2]);
         *
         * x.clone().print();
         * ```
         *
         * @param x The tensor to clone.
         *
         * @doc {heading: 'Tensors', subheading: 'Creation'}
         */
        function clone_(x) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'clone', 'string_or_numeric');
            const inputs = {
                x: $x
            };
            // Note this op is called tf.identity in python. Hence the kernel name used
            // here.
            return _engine.ENGINE.runKernel(_kernel_names.Identity, inputs);
        }
        const clone = (0,
            _operation.op)({
                clone_
            });
        exports.clone = clone;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    240: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.complex = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var util = _interopRequireWildcard(require("../util"));
        var _operation = require("./operation");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Converts two real numbers to a complex number.
         *
         * Given a tensor `real` representing the real part of a complex number, and a
         * tensor `imag` representing the imaginary part of a complex number, this
         * operation returns complex numbers elementwise of the form [r0, i0, r1, i1],
         * where r represents the real part and i represents the imag part.
         *
         * The input tensors real and imag must have the same shape.
         *
         * ```js
         * const real = tf.tensor1d([2.25, 3.25]);
         * const imag = tf.tensor1d([4.75, 5.75]);
         * const complex = tf.complex(real, imag);
         *
         * complex.print();
         * ```
         *
         * @doc {heading: 'Tensors', subheading: 'Creation'}
         */
        function complex_(real, imag) {
            const $real = (0,
                _tensor_util_env.convertToTensor)(real, 'real', 'complex');
            const $imag = (0,
                _tensor_util_env.convertToTensor)(imag, 'imag', 'complex');
            util.assertShapesMatch($real.shape, $imag.shape, `real and imag shapes, ${$real.shape} and ${$imag.shape}, ` + `must match in call to tf.complex().`);
            const inputs = {
                real: $real,
                imag: $imag
            };
            return _engine.ENGINE.runKernel(_kernel_names.Complex, inputs);
        }
        const complex = (0,
            _operation.op)({
                complex_
            });
        exports.complex = complex;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "../util": 509,
        "./operation": 372
    }],
    241: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.concat = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _util = require("../util");
        var _clone = require("./clone");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Concatenates a list of `tf.Tensor`s along a given axis.
         *
         * The tensors ranks and types must match, and their sizes must match in all
         * dimensions except `axis`.
         *
         * Also available are stricter rank-specific methods that assert that
         * `tensors` are of the given rank:
         *   - `tf.concat1d`
         *   - `tf.concat2d`
         *   - `tf.concat3d`
         *   - `tf.concat4d`
         *
         * Except `tf.concat1d` (which does not have axis param), all methods have
         * same signature as this method.
         *
         * ```js
         * const a = tf.tensor1d([1, 2]);
         * const b = tf.tensor1d([3, 4]);
         * a.concat(b).print();  // or a.concat(b)
         * ```
         *
         * ```js
         * const a = tf.tensor1d([1, 2]);
         * const b = tf.tensor1d([3, 4]);
         * const c = tf.tensor1d([5, 6]);
         * tf.concat([a, b, c]).print();
         * ```
         *
         * ```js
         * const a = tf.tensor2d([[1, 2], [10, 20]]);
         * const b = tf.tensor2d([[3, 4], [30, 40]]);
         * const axis = 1;
         * tf.concat([a, b], axis).print();
         * ```
         * @param tensors A list of tensors to concatenate.
         * @param axis The axis to concatenate along. Defaults to 0 (the first dim).
         *
         * @doc {heading: 'Tensors', subheading: 'Slicing and Joining'}
         */
        function concat_(tensors, axis = 0) {
            (0,
                _util.assert)(tensors.length >= 1, () => 'Pass at least one tensor to concat');
            const $tensors = (0,
                _tensor_util_env.convertToTensorArray)(tensors, 'tensors', 'concat', 'string_or_numeric');
            if ($tensors[0].dtype === 'complex64') {
                $tensors.forEach(tensor => {
                    if (tensor.dtype !== 'complex64') {
                        throw new Error(`Cannot concatenate complex64 tensors with a tensor
          with dtype ${tensor.dtype}. `);
                    }
                }
                );
            }
            if ($tensors.length === 1) {
                return (0,
                    _clone.clone)($tensors[0]);
            }
            const inputs = $tensors;
            const attr = {
                axis
            };
            return _engine.ENGINE.runKernel(_kernel_names.Concat, inputs, attr);
        }
        const concat = (0,
            _operation.op)({
                concat_
            });
        exports.concat = concat;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "../util": 509,
        "./clone": 239,
        "./operation": 372
    }],
    242: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.concat1d = void 0;
        var _concat = require("./concat");
        var _operation = require("./operation");
        /**
         * Concatenates a list of`tf.Tensor1D`s along an axis. See `concat` for details.
         *
         * For example, if:
         * A: shape(3) = |r1, g1, b1|
         * B: shape(2) = |r2, g2|
         * C = tf.concat1d([A, B]) == |r1, g1, b1, r2, g2|
         *
         * @param tensors A list of`tf.Tensor`s to concatenate.
         * @return The concatenated array.
         */
        function concat1d_(tensors) {
            return (0,
                _concat.concat)(tensors, 0 /* axis */
                );
        }

        const concat1d = (0,
            _operation.op)({
                concat1d_
            });
        exports.concat1d = concat1d;

    }
        , {
        "./concat": 241,
        "./operation": 372
    }],
    243: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.concat2d = void 0;
        var _concat = require("./concat");
        var _operation = require("./operation");
        /**
         * Concatenates a list of`tf.Tensor2D`s along an axis. See `concat` for details.
         *
         * For example, if:
         * A: shape(2, 3) = | r1, g1, b1 |
         *                  | r2, g2, b2 |
         *
         * B: shape(2, 3) = | r3, g3, b3 |
         *                  | r4, g4, b4 |
         *
         * C = tf.concat2d([A, B], axis)
         *
         * if axis = 0:
         * C: shape(4, 3) = | r1, g1, b1 |
         *                  | r2, g2, b2 |
         *                  | r3, g3, b3 |
         *                  | r4, g4, b4 |
         *
         * if axis = 1:
         * C = shape(2, 6) = | r1, g1, b1, r3, g3, b3 |
         *                   | r2, g2, b2, r4, g4, b4 |
         *
         *
         * @param tensors A list of `tf.Tensor`s to concatenate.
         * @param axis The axis to concatenate along.
         * @return The concatenated array.
         */
        function concat2d_(tensors, axis) {
            return (0,
                _concat.concat)(tensors, axis);
        }
        const concat2d = (0,
            _operation.op)({
                concat2d_
            });
        exports.concat2d = concat2d;

    }
        , {
        "./concat": 241,
        "./operation": 372
    }],
    244: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.concat3d = void 0;
        var _concat = require("./concat");
        var _operation = require("./operation");
        /**
         * Concatenates a list of `tf.Tensor3D`s along an axis.
         * See `concat` for details.
         *
         * For example, if:
         * A: shape(2, 1, 3) = | r1, g1, b1 |
         *                     | r2, g2, b2 |
         *
         * B: shape(2, 1, 3) = | r3, g3, b3 |
         *                     | r4, g4, b4 |
         *
         * C = tf.concat3d([A, B], axis)
         *
         * if axis = 0:
         * C: shape(4, 1, 3) = | r1, g1, b1 |
         *                     | r2, g2, b2 |
         *                     | r3, g3, b3 |
         *                     | r4, g4, b4 |
         *
         * if axis = 1:
         * C: shape(2, 2, 3) = | r1, g1, b1, r3, g3, b3 |
         *                     | r2, g2, b2, r4, g4, b4 |
         *
         * if axis = 2:
         * C = shape(2, 1, 6) = | r1, g1, b1, r3, g3, b3 |
         *                      | r2, g2, b2, r4, g4, b4 |
         *
         * @param tensors A list of`tf.Tensor`s to concatenate.
         * @param axis The axis to concate along.
         * @return The concatenated array.
         */
        function concat3d_(tensors, axis) {
            return (0,
                _concat.concat)(tensors, axis);
        }
        const concat3d = (0,
            _operation.op)({
                concat3d_
            });
        exports.concat3d = concat3d;

    }
        , {
        "./concat": 241,
        "./operation": 372
    }],
    245: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.concat4d = void 0;
        var _concat = require("./concat");
        var _operation = require("./operation");
        /**
         * Concatenates a list of `tf.Tensor4D`s along an axis.
         * See `concat` for details.
         *
         * @param tensors A list of `tf.Tensor`s to concatenate.
         * @param axis The axis to concate along.
         * @return The concatenated array.
         */
        function concat4d_(tensors, axis) {
            return (0,
                _concat.concat)(tensors, axis);
        }
        const concat4d = (0,
            _operation.op)({
                concat4d_
            });
        exports.concat4d = concat4d;

    }
        , {
        "./concat": 241,
        "./operation": 372
    }],
    246: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.assertParamsConsistent = assertParamsConsistent;
        exports.computeOutShape = computeOutShape;
        var util = _interopRequireWildcard(require("../util"));
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2017 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        function assertParamsConsistent(shapes, axis) {
            const rank = shapes[0].length;
            shapes.forEach((shape, i) => {
                util.assert(shape.length === rank, () => `Error in concat${rank}D: rank of tensors[${i}] must be the same ` + `as the rank of the rest (${rank})`);
            }
            );
            util.assert(axis >= 0 && axis < rank, () => `Error in concat${rank}D: axis must be between 0 and ${rank - 1}.`);
            const firstShape = shapes[0];
            shapes.forEach((shape, i) => {
                for (let r = 0; r < rank; r++) {
                    util.assert(r === axis || shape[r] === firstShape[r], () => `Error in concat${rank}D: Shape of tensors[${i}] (${shape}) ` + `does not match the shape of the rest (${firstShape}) ` + `along the non-concatenated axis ${i}.`);
                }
            }
            );
        }
        function computeOutShape(shapes, axis) {
            const outputShape = shapes[0].slice();
            for (let i = 1; i < shapes.length; i++) {
                outputShape[axis] += shapes[i][axis];
            }
            return outputShape;
        }

    }
        , {
        "../util": 509
    }],
    247: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.confusionMatrix = void 0;
        exports.confusionMatrix_ = confusionMatrix_;
        var _tensor_util_env = require("../tensor_util_env");
        var util = _interopRequireWildcard(require("../util"));
        var _cast = require("./cast");
        var _mat_mul = require("./mat_mul");
        var _one_hot = require("./one_hot");
        var _operation = require("./operation");
        var _transpose = require("./transpose");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes the confusion matrix from true labels and predicted labels.
         *
         * ```js
         * const labels = tf.tensor1d([0, 1, 2, 1, 0], 'int32');
         * const predictions = tf.tensor1d([0, 2, 2, 1, 0], 'int32');
         * const numClasses = 3;
         * const out = tf.math.confusionMatrix(labels, predictions, numClasses);
         * out.print();
         * // Expected output matrix:
         * // [[2, 0, 0],
         * //  [0, 1, 1],
         * //  [0, 0, 1]]
         * ```
         *
         * @param labels The target labels, assumed to be 0-based integers
         *   for the classes. The shape is `[numExamples]`, where
         *   `numExamples` is the number of examples included.
         * @param predictions The predicted classes, assumed to be
         *   0-based integers for the classes. Must have the same shape as `labels`.
         * @param numClasses Number of all classes, as an integer.
         *   Its value must be larger than the largest element in `labels` and
         *   `predictions`.
         * @returns The confusion matrix as a int32-type 2D tensor. The value at
         *   row `r` and column `c` is the number of times examples of actual class
         *   `r` were predicted as class `c`.
         *
         * @doc {heading: 'Operations', subheading: 'Evaluation'}
         */
        function confusionMatrix_(labels, predictions, numClasses) {
            const $labels = (0,
                _tensor_util_env.convertToTensor)(labels, 'labels', 'confusionMatrix');
            const $predictions = (0,
                _tensor_util_env.convertToTensor)(predictions, 'predictions', 'confusionMatrix');
            util.assert(numClasses == null || numClasses > 0 && Number.isInteger(numClasses), () => `If provided, numClasses must be a positive integer, ` + `but got ${numClasses}`);
            util.assert($labels.rank === 1, () => `Expected the rank of labels to be 1, but got ${$labels.rank}`);
            util.assert($predictions.rank === 1, () => `Expected the rank of predictions to be 1, ` + `but got ${$predictions.rank}`);
            util.assert($labels.shape[0] === $predictions.shape[0], () => `Mismatch in the number of examples: ` + `${$labels.shape[0]} vs. ${$predictions.shape[0]}. ` + `Labels and predictions should have the same number of elements.`);
            util.assert(numClasses > 0 && Number.isInteger(numClasses), () => `numClasses is required to be a positive integer, but got ` + `${numClasses}`);
            // TODO(cais): In the future, if oneHot supports tensors inputs for
            //   `numClasses`, `confusionMatrix` can make `numClasses` optional.
            const oneHotLabels = (0,
                _one_hot.oneHot)((0,
                    _cast.cast)($labels, 'int32'), numClasses);
            const oneHotPredictions = (0,
                _one_hot.oneHot)((0,
                    _cast.cast)($predictions, 'int32'), numClasses);
            const oneHotLabelsT = (0,
                _transpose.transpose)(oneHotLabels);
            const product = (0,
                _mat_mul.matMul)(oneHotLabelsT, oneHotPredictions);
            return (0,
                _cast.cast)(product, 'int32');
        }
        const confusionMatrix = (0,
            _operation.op)({
                confusionMatrix_
            });
        exports.confusionMatrix = confusionMatrix;

    }
        , {
        "../tensor_util_env": 504,
        "../util": 509,
        "./cast": 236,
        "./mat_mul": 346,
        "./one_hot": 369,
        "./operation": 372,
        "./transpose": 477
    }],
    248: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.conv1d = void 0;
        var _tensor_util_env = require("../tensor_util_env");
        var util = _interopRequireWildcard(require("../util"));
        var _conv2d = require("./conv2d");
        var conv_util = _interopRequireWildcard(require("./conv_util"));
        var _operation = require("./operation");
        var _reshape = require("./reshape");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * Computes a 1D convolution over the input x.
         *
         * @param x The input tensor, of rank 3 or rank 2, of shape
         *     `[batch, width, inChannels]`. If rank 2, batch of 1 is assumed.
         * @param filter The filter, rank 3, of shape
         *     `[filterWidth, inDepth, outDepth]`.
         * @param stride The number of entries by which the filter is moved right at
         *     each step.
         * @param pad The type of padding algorithm.
         *    - `same` and stride 1: output will be of same size as input,
         *       regardless of filter size.
         *    - `valid`: output will be smaller than input if filter is larger
         *       than 1x1.
         *   - For more info, see this guide:
         *     [https://www.tensorflow.org/api_docs/python/tf/nn/convolution](
         *          https://www.tensorflow.org/api_docs/python/tf/nn/convolution)
         * @param dataFormat An optional string from "NWC", "NCW". Defaults to "NWC",
         *     the data is stored in the order of [batch, in_width, in_channels]. Only
         *     "NWC" is currently supported.
         * @param dilation The dilation rate in which we sample input values in
         *     atrous convolution. Defaults to `1`. If it is greater than 1, then
         *     stride must be `1`.
         * @param dimRoundingMode A string from: 'ceil', 'round', 'floor'. If none is
         *     provided, it will default to truncate.
         *
         * @doc {heading: 'Operations', subheading: 'Convolution'}
         */
        function conv1d_(x, filter, stride, pad, dataFormat = 'NWC', dilation = 1, dimRoundingMode) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'conv1d');
            const $filter = (0,
                _tensor_util_env.convertToTensor)(filter, 'filter', 'conv1d');
            let x3D = $x;
            let reshapedTo3D = false;
            if ($x.rank === 2) {
                reshapedTo3D = true;
                x3D = (0,
                    _reshape.reshape)($x, [1, $x.shape[0], $x.shape[1]]);
            }
            util.assert(x3D.rank === 3, () => `Error in conv1d: input must be rank 3, but got rank ${x3D.rank}.`);
            util.assert($filter.rank === 3, () => `Error in conv1d: filter must be rank 3, but got rank ` + `${$filter.rank}.`);
            conv_util.checkPadOnDimRoundingMode('conv1d', pad, dimRoundingMode);
            util.assert(x3D.shape[2] === $filter.shape[1], () => `Error in conv1d: depth of input (${x3D.shape[2]}) must match ` + `input depth for filter ${$filter.shape[1]}.`);
            util.assert(conv_util.eitherStridesOrDilationsAreOne(stride, dilation), () => 'Error in conv1D: Either stride or dilation must be 1. ' + `Got stride ${stride} and dilation '${dilation}'`);
            util.assert(dataFormat === 'NWC', () => `Error in conv1d: got dataFormat of ${dataFormat} but only NWC is currently supported.`);
            const filter4D = (0,
                _reshape.reshape)($filter, [1, $filter.shape[0], $filter.shape[1], $filter.shape[2]]);
            const input4D = (0,
                _reshape.reshape)(x3D, [x3D.shape[0], 1, x3D.shape[1], x3D.shape[2]]);
            const strides = [1, stride];
            const dilations = [1, dilation];
            const conv2dDataFormat = 'NHWC';
            const res = (0,
                _conv2d.conv2d)(input4D, filter4D, strides, pad, conv2dDataFormat, dilations, dimRoundingMode);
            if (reshapedTo3D) {
                return (0,
                    _reshape.reshape)(res, [res.shape[2], res.shape[3]]);
            }
            return (0,
                _reshape.reshape)(res, [res.shape[0], res.shape[2], res.shape[3]]);
        }
        const conv1d = (0,
            _operation.op)({
                conv1d_
            });
        exports.conv1d = conv1d;

    }
        , {
        "../tensor_util_env": 504,
        "../util": 509,
        "./conv2d": 249,
        "./conv_util": 257,
        "./operation": 372,
        "./reshape": 402
    }],
    249: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.conv2d = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var util = _interopRequireWildcard(require("../util"));
        var conv_util = _interopRequireWildcard(require("./conv_util"));
        var _operation = require("./operation");
        var _reshape = require("./reshape");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes a 2D convolution over the input x.
         *
         * @param x The input tensor, of rank 4 or rank 3, of shape
         *     `[batch, height, width, inChannels]`. If rank 3, batch of 1 is
         * assumed.
         * @param filter The filter, rank 4, of shape
         *     `[filterHeight, filterWidth, inDepth, outDepth]`.
         * @param strides The strides of the convolution: `[strideHeight,
         * strideWidth]`.
         * @param pad The type of padding algorithm.
         *    - `same` and stride 1: output will be of same size as input,
         *       regardless of filter size.
         *    - `valid`: output will be smaller than input if filter is larger
         *       than 1x1.
         *   - For more info, see this guide:
         *     [https://www.tensorflow.org/api_docs/python/tf/nn/convolution](
         *          https://www.tensorflow.org/api_docs/python/tf/nn/convolution)
         * @param dataFormat: An optional string from: "NHWC", "NCHW". Defaults to
         *     "NHWC". Specify the data format of the input and output data. With the
         *     default format "NHWC", the data is stored in the order of: [batch,
         *     height, width, channels].
         * @param dilations The dilation rates: `[dilationHeight, dilationWidth]`
         *     in which we sample input values across the height and width dimensions
         *     in atrous convolution. Defaults to `[1, 1]`. If `dilations` is a single
         *     number, then `dilationHeight == dilationWidth`. If it is greater than
         *     1, then all values of `strides` must be 1.
         * @param dimRoundingMode A string from: 'ceil', 'round', 'floor'. If none is
         *     provided, it will default to truncate.
         *
         * @doc {heading: 'Operations', subheading: 'Convolution'}
         */
        function conv2d_(x, filter, strides, pad, dataFormat = 'NHWC', dilations = [1, 1], dimRoundingMode) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'conv2d', 'float32');
            const $filter = (0,
                _tensor_util_env.convertToTensor)(filter, 'filter', 'conv2d', 'float32');
            let x4D = $x;
            let reshapedTo4D = false;
            if ($x.rank === 3) {
                reshapedTo4D = true;
                x4D = (0,
                    _reshape.reshape)($x, [1, $x.shape[0], $x.shape[1], $x.shape[2]]);
            }
            util.assert(x4D.rank === 4, () => `Error in conv2d: input must be rank 4, but got rank ${x4D.rank}.`);
            util.assert($filter.rank === 4, () => `Error in conv2d: filter must be rank 4, but got rank ` + `${$filter.rank}.`);
            conv_util.checkPadOnDimRoundingMode('conv2d', pad, dimRoundingMode);
            const inDepth = dataFormat === 'NHWC' ? x4D.shape[3] : x4D.shape[1];
            util.assert(inDepth === $filter.shape[2], () => `Error in conv2d: depth of input (${inDepth}) must match ` + `input depth for filter ${$filter.shape[2]}.`);
            util.assert(conv_util.eitherStridesOrDilationsAreOne(strides, dilations), () => 'Error in conv2D: Either strides or dilations must be 1. ' + `Got strides ${strides} and dilations '${dilations}'`);
            const inputs = {
                x: x4D,
                filter: $filter
            };
            const attrs = {
                strides,
                pad,
                dataFormat,
                dilations,
                dimRoundingMode
            };
            // tslint:disable-next-line: no-unnecessary-type-assertion
            const res = _engine.ENGINE.runKernel(_kernel_names.Conv2D, inputs, attrs);
            if (reshapedTo4D) {
                return (0,
                    _reshape.reshape)(res, [res.shape[1], res.shape[2], res.shape[3]]);
            }
            return res;
        }
        const conv2d = (0,
            _operation.op)({
                conv2d_
            });
        exports.conv2d = conv2d;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "../util": 509,
        "./conv_util": 257,
        "./operation": 372,
        "./reshape": 402
    }],
    250: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.conv2DBackpropFilter = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var util = _interopRequireWildcard(require("../util"));
        var conv_util = _interopRequireWildcard(require("./conv_util"));
        var _operation = require("./operation");
        var _reshape = require("./reshape");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes the derivative of the filter of a 2D convolution.
         *
         * @param x The input tensor, of rank 4 or rank 3 of shape
         *     [batch, height, width, inChannels]. If rank 3, batch of 1 is assumed.
         * @param dy The dy image, of rank 4 or rank 3, of shape
         *     [batch, height, width, outDepth]. If rank 3, batch of 1 is assumed.
         * @param filterShape The shape of the filter, length 4,
         *     [filterHeight, filterWidth, inDepth, outDepth].
         * @param strides The strides of the convolution: [strideHeight,
         * strideWidth].
         * @param pad A string from: 'same', 'valid'. The type of padding algorithm
         *     used in the forward prop of the op.
         * @param dataFormat: An optional string from: "NHWC", "NCHW". Defaults to
         *     "NHWC". Specify the data format of the input and output data. With the
         *     default format "NHWC", the data is stored in the order of: [batch,
         *     height, width, channels].
         * @param dimRoundingMode A string from: 'ceil', 'round', 'floor'. If none is
         *     provided, it will default to truncate.
         */
        function conv2DBackpropFilter_(x, dy, filterShape, strides, pad, dataFormat = 'NHWC', dimRoundingMode) {
            let x4D = x;
            if (x.rank === 3) {
                x4D = (0,
                    _reshape.reshape)(x, [1, x.shape[0], x.shape[1], x.shape[2]]);
            }
            let dy4D = dy;
            if (dy4D.rank === 3) {
                dy4D = (0,
                    _reshape.reshape)(dy, [1, dy.shape[0], dy.shape[1], dy.shape[2]]);
            }
            util.assert(x4D.rank === 4, () => `Error in conv2dDerFilter: input must be rank 4, but got shape ` + `${x4D.shape}.`);
            util.assert(dy4D.rank === 4, () => `Error in conv2dDerFilter: dy must be rank 4, but got shape ` + `${dy4D.shape}.`);
            util.assert(filterShape.length === 4, () => `Error in conv2dDerFilter: filterShape must be length 4, but got ` + `${filterShape}.`);
            const inDepth = dataFormat === 'NHWC' ? x4D.shape[3] : x4D.shape[1];
            const outDepth = dataFormat === 'NHWC' ? dy4D.shape[3] : dy4D.shape[1];
            util.assert(inDepth === filterShape[2], () => `Error in conv2dDerFilter: depth of input ${inDepth}) must ` + `match input depth in filter (${filterShape[2]}.`);
            util.assert(outDepth === filterShape[3], () => `Error in conv2dDerFilter: depth of dy (${outDepth}) must ` + `match output depth for filter (${filterShape[3]}).`);
            conv_util.checkPadOnDimRoundingMode('conv2dDerFilter', pad, dimRoundingMode);
            const inputs = {
                x: x4D,
                dy: dy4D
            };
            const attrs = {
                strides,
                pad,
                dataFormat,
                dimRoundingMode,
                filterShape
            };
            // tslint:disable-next-line: no-unnecessary-type-assertion
            return _engine.ENGINE.runKernel(_kernel_names.Conv2DBackpropFilter, inputs, attrs);
        }
        const conv2DBackpropFilter = (0,
            _operation.op)({
                conv2DBackpropFilter_
            });
        exports.conv2DBackpropFilter = conv2DBackpropFilter;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../util": 509,
        "./conv_util": 257,
        "./operation": 372,
        "./reshape": 402
    }],
    251: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.conv2DBackpropInput = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var util = _interopRequireWildcard(require("../util"));
        var conv_util = _interopRequireWildcard(require("./conv_util"));
        var _operation = require("./operation");
        var _reshape = require("./reshape");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes the derivative of the input of a 2D convolution.
         *
         * @param xShape The shape of the input: [batch, height, width, inDepth].
         * If length of 3, batch of 1 is assumed.
         * @param dy The derivative of the output, of rank 4 or rank 3 of shape
         *   `[batch, outHeight, outWidth, outDepth]`. If rank 3, batch of 1 is
         * assumed.
         * @param filter The filter, rank 4, of shape
         *     `[filterHeight, filterWidth, inDepth, outDepth]`.
         * @param strides The strides of the convolution: `[strideHeight,
         * strideWidth]`.
         * @param pad The type of padding algorithm used:
         *    - `same` and stride 1: output will be of same size as input,
         *       regardless of filter size.
         *    - `valid`: output will be smaller than input if filter is larger
         *       than 1x1.
         * @param dataFormat: An optional string from: "NHWC", "NCHW". Defaults to
         *     "NHWC". Specify the data format of the input and output data. With the
         *     default format "NHWC", the data is stored in the order of: [batch,
         *     height, width, channels].
         * @param dimRoundingMode A string from: 'ceil', 'round', 'floor'. If none is
         *     provided, it will default to truncate.
         */
        function conv2DBackpropInput_(xShape, dy, filter, strides, pad, dataFormat = 'NHWC', dimRoundingMode) {
            util.assert(xShape.length === dy.rank, () => `Length of inShape ` + `(${xShape.length}) and rank of dy (${dy.rank}) must match`);
            let xShape4D = xShape;
            let dy4D = dy;
            let reshapedTo4D = false;
            if (dy.rank === 3) {
                reshapedTo4D = true;
                dy4D = (0,
                    _reshape.reshape)(dy, [1, dy.shape[0], dy.shape[1], dy.shape[2]]);
                xShape4D = [1, xShape[0], xShape[1], xShape[2]];
            }
            util.assert(xShape4D.length === 4, () => `Error in conv2dDerInput: inShape must be length 4, but got length ` + `${xShape4D.length}.`);
            util.assert(dy4D.rank === 4, () => `Error in conv2dDerInput: dy must be rank 4, but got ` + `rank ${dy4D.rank}`);
            util.assert(filter.rank === 4, () => `Error in conv2dDerInput: filter must be rank 4, but got ` + `rank ${filter.rank}`);
            const inDepth = dataFormat === 'NHWC' ? xShape4D[3] : xShape4D[1];
            const outDepth = dataFormat === 'NHWC' ? dy4D.shape[3] : dy4D.shape[1];
            util.assert(inDepth === filter.shape[2], () => `Error in conv2dDerInput: depth of input (${inDepth}) must ` + `match input depth for filter ${filter.shape[2]}.`);
            util.assert(outDepth === filter.shape[3], () => `Error in conv2dDerInput: depth of output (${outDepth}) must ` + `match output depth for filter ${filter.shape[3]}.`);
            conv_util.checkPadOnDimRoundingMode('conv2dDerInput', pad, dimRoundingMode);
            const inputs = {
                dy: dy4D,
                filter
            };
            const attrs = {
                strides,
                pad,
                dataFormat,
                dimRoundingMode,
                inputShape: xShape4D
            };
            // tslint:disable-next-line: no-unnecessary-type-assertion
            const res = _engine.ENGINE.runKernel(_kernel_names.Conv2DBackpropInput, inputs, attrs);
            if (reshapedTo4D) {
                return (0,
                    _reshape.reshape)(res, [res.shape[1], res.shape[2], res.shape[3]]);
            }
            return res;
        }
        const conv2DBackpropInput = (0,
            _operation.op)({
                conv2DBackpropInput_
            });
        exports.conv2DBackpropInput = conv2DBackpropInput;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../util": 509,
        "./conv_util": 257,
        "./operation": 372,
        "./reshape": 402
    }],
    252: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.conv2dTranspose = void 0;
        var _tensor_util_env = require("../tensor_util_env");
        var _conv2d_backprop_input = require("./conv2d_backprop_input");
        var _operation = require("./operation");
        /**
         * Computes the transposed 2D convolution of an image, also known as a
         * deconvolution.
         *
         * @param x The input image, of rank 4 or rank 3, of shape
         *   `[batch, height, width, inDepth]`. If rank 3, batch of 1 is assumed.
         * @param filter The filter, rank 4, of shape
         *     `[filterHeight, filterWidth, outDepth, inDepth]`.
         *     `inDepth` must match `inDepth` in `x`.
         * @param outputShape Output shape, of rank 4 or rank 3:
         *     `[batch, height, width, outDepth]`. If rank 3, batch of 1 is assumed.
         * @param strides The strides of the original convolution:
         *     `[strideHeight, strideWidth]`.
         * @param pad  The type of padding algorithm used in the non-transpose version
         *    of the op.
         * @param dimRoundingMode A string from: 'ceil', 'round', 'floor'. If none is
         *     provided, it will default to truncate.
         *
         * @doc {heading: 'Operations', subheading: 'Convolution'}
         */
        function conv2dTranspose_(x, filter, outputShape, strides, pad, dimRoundingMode) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'conv2dTranspose');
            const $filter = (0,
                _tensor_util_env.convertToTensor)(filter, 'filter', 'conv2dTranspose');
            return (0,
                _conv2d_backprop_input.conv2DBackpropInput)(outputShape, $x, $filter, strides, pad, 'NHWC', dimRoundingMode);
        }
        const conv2dTranspose = (0,
            _operation.op)({
                conv2dTranspose_
            });
        exports.conv2dTranspose = conv2dTranspose;

    }
        , {
        "../tensor_util_env": 504,
        "./conv2d_backprop_input": 251,
        "./operation": 372
    }],
    253: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.conv3d = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var util = _interopRequireWildcard(require("../util"));
        var _conv_util = require("./conv_util");
        var _operation = require("./operation");
        var _reshape = require("./reshape");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes a 3D convolution over the input x.
         *
         * @param x The input tensor, of rank 5 or rank 4, of shape
         *     `[batch, depth, height, width, channels]`. If rank 4,
         * batch of 1 is assumed.
         * @param filter The filter, rank 5, of shape
         *     `[filterDepth, filterHeight, filterWidth, inChannels, outChannels]`.
         *      inChannels must match between input and filter.
         * @param strides The strides of the convolution: `[strideDepth, strideHeight,
         * strideWidth]`.
         * @param pad The type of padding algorithm.
         *    - `same` and stride 1: output will be of same size as input,
         *       regardless of filter size.
         *    - `valid`: output will be smaller than input if filter is larger
         *       than 1x1.
         *   - For more info, see this guide:
         *     [https://www.tensorflow.org/api_docs/python/tf/nn/convolution](
         *          https://www.tensorflow.org/api_docs/python/tf/nn/convolution)
         * @param dataFormat: An optional string from: "NDHWC", "NCDHW". Defaults to
         *     "NDHWC". Specify the data format of the input and output data. With the
         *     default format "NDHWC", the data is stored in the order of: [batch,
         *     depth, height, width, channels]. Only "NDHWC" is currently supported.
         * @param dilations The dilation rates: `[dilationDepth, dilationHeight,
         *     dilationWidth]` in which we sample input values across the height
         *     and width dimensions in atrous convolution. Defaults to `[1, 1, 1]`.
         *     If `dilations` is a single number, then
         *     `dilationDepth == dilationHeight == dilationWidth`. If it is greater
         *     than 1, then all values of `strides` must be 1.
         *
         * @doc {heading: 'Operations', subheading: 'Convolution'}
         */
        function conv3d_(x, filter, strides, pad, dataFormat = 'NDHWC', dilations = [1, 1, 1]) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'conv3d');
            const $filter = (0,
                _tensor_util_env.convertToTensor)(filter, 'filter', 'conv3d');
            let x5D = $x;
            let reshapedTo5D = false;
            if ($x.rank === 4) {
                reshapedTo5D = true;
                x5D = (0,
                    _reshape.reshape)($x, [1, $x.shape[0], $x.shape[1], $x.shape[2], $x.shape[3]]);
            }
            util.assert(x5D.rank === 5, () => `Error in conv3d: input must be rank 5, but got rank ${x5D.rank}.`);
            util.assert($filter.rank === 5, () => `Error in conv3d: filter must be rank 5, but got rank ` + `${$filter.rank}.`);
            util.assert(x5D.shape[4] === $filter.shape[3], () => `Error in conv3d: depth of input (${x5D.shape[4]}) must match ` + `input depth for filter ${$filter.shape[3]}.`);
            util.assert((0,
                _conv_util.eitherStridesOrDilationsAreOne)(strides, dilations), () => 'Error in conv3D: Either strides or dilations must be 1. ' + `Got strides ${strides} and dilations '${dilations}'`);
            util.assert(dataFormat === 'NDHWC', () => `Error in conv3d: got dataFormat of ${dataFormat} but only NDHWC is currently supported.`);
            const inputs = {
                x: x5D,
                filter: $filter
            };
            const attrs = {
                strides,
                pad,
                dataFormat,
                dilations
            };
            // tslint:disable-next-line: no-unnecessary-type-assertion
            const res = _engine.ENGINE.runKernel(_kernel_names.Conv3D, inputs, attrs);
            if (reshapedTo5D) {
                return (0,
                    _reshape.reshape)(res, [res.shape[1], res.shape[2], res.shape[3], res.shape[4]]);
            }
            return res;
        }
        const conv3d = (0,
            _operation.op)({
                conv3d_
            });
        exports.conv3d = conv3d;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "../util": 509,
        "./conv_util": 257,
        "./operation": 372,
        "./reshape": 402
    }],
    254: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.conv3DBackpropFilter = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var util = _interopRequireWildcard(require("../util"));
        var _operation = require("./operation");
        var _reshape = require("./reshape");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes the derivative of the filter of a 3D convolution.
         *
         * @param x The input tensor, of rank 5 or rank 4 of shape
         *     [batch, depth, height, width, inChannels]. If rank 4, batch of 1 is
         *     assumed.
         * @param dy The dy image, of rank 5 or rank 4, of shape
         *     [batch, depth, height, width, outDepth]. If rank 4, batch of 1 is
         *     assumed.
         * @param filterShape The shape of the filter, length 5,
         *     [filterDepth, filterHeight, filterWidth, inDepth, outDepth].
         * @param strides The strides of the convolution: [strideDepth, strideHeight,
         * strideWidth].
         * @param pad A string from: 'same', 'valid'. The type of padding algorithm
         *     used in the forward prop of the op.
         */
        function conv3DBackpropFilter_(x, dy, filterShape, strides, pad) {
            let x5D = x;
            if (x.rank === 4) {
                x5D = (0,
                    _reshape.reshape)(x, [1, x.shape[0], x.shape[1], x.shape[2], x.shape[3]]);
            }
            let dy5D = dy;
            if (dy5D.rank === 4) {
                dy5D = (0,
                    _reshape.reshape)(dy, [1, dy.shape[0], dy.shape[1], dy.shape[2], dy.shape[3]]);
            }
            util.assert(x5D.rank === 5, () => `Error in conv3dDerFilter: input must be rank 5, but got shape ` + `${x5D.shape}.`);
            util.assert(dy5D.rank === 5, () => `Error in conv3dDerFilter: dy must be rank 5, but got shape ` + `${dy5D.shape}.`);
            util.assert(filterShape.length === 5, () => `Error in conv3dDerFilter: filterShape must be length 5, but got ` + `${filterShape}.`);
            util.assert(x5D.shape[4] === filterShape[3], () => `Error in conv3dDerFilter: depth of input ${x5D.shape[4]}) must ` + `match input depth in filter (${filterShape[3]}.`);
            util.assert(dy5D.shape[4] === filterShape[4], () => `Error in conv3dDerFilter: depth of dy (${dy5D.shape[4]}) must ` + `match output depth for filter (${filterShape[4]}).`);
            const inputs = {
                x: x5D,
                dy: dy5D
            };
            const attrs = {
                strides,
                pad,
                filterShape
            };
            // tslint:disable-next-line: no-unnecessary-type-assertion
            return _engine.ENGINE.runKernel(_kernel_names.Conv3DBackpropFilterV2, inputs, attrs);
        }
        const conv3DBackpropFilter = (0,
            _operation.op)({
                conv3DBackpropFilter_
            });
        exports.conv3DBackpropFilter = conv3DBackpropFilter;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../util": 509,
        "./operation": 372,
        "./reshape": 402
    }],
    255: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.conv3DBackpropInput = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var util = _interopRequireWildcard(require("../util"));
        var _operation = require("./operation");
        var _reshape = require("./reshape");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes the derivative of the input of a 3D convolution.
         *
         * @param xShape The shape of the input: [batch, depth, height, width,
         * in_channels]. If length of 4, batch of 1 is assumed.
         * @param dy The derivative of the output, of rank 5 or rank 4 of shape
         *   `[batch, outDepth, outHeight, outWidth, in_channels]`.
         * If rank 4, batch of 1 is assumed.
         * @param filter The filter, rank 5, of shape
         *     `[filterDepth, filterHeight, filterWidth, inDepth, outDepth]`.
         * @param strides The strides of the convolution: `[strideDepth, strideHeight,
         * strideWidth]`.
         * @param pad The type of padding algorithm used:
         *    - `same` and stride 1: output will be of same size as input,
         *       regardless of filter size.
         *    - `valid`: output will be smaller than input if filter is larger
         *       than 1x1.
         */
        function conv3DBackpropInput_(xShape, dy, filter, strides, pad) {
            util.assert(xShape.length === dy.rank, () => `Length of inShape ` + `(${xShape.length}) and rank of dy (${dy.rank}) must match`);
            let xShape5D = xShape;
            let dy5D = dy;
            let reshapedTo5D = false;
            if (dy.rank === 4) {
                reshapedTo5D = true;
                dy5D = (0,
                    _reshape.reshape)(dy, [1, dy.shape[0], dy.shape[1], dy.shape[2], dy.shape[3]]);
                xShape5D = [1, xShape[0], xShape[1], xShape[2], xShape[3]];
            }
            const inDepth = xShape5D[4];
            const outDepth = dy5D.shape[4];
            util.assert(xShape5D.length === 5, () => `Error in conv3dDerInput: inShape must be length 5, but got length ` + `${xShape5D.length}.`);
            util.assert(dy5D.rank === 5, () => `Error in conv3dDerInput: dy must be rank 5, but got ` + `rank ${dy5D.rank}`);
            util.assert(filter.rank === 5, () => `Error in conv3dDerInput: filter must be rank 5, but got ` + `rank ${filter.rank}`);
            util.assert(inDepth === filter.shape[3], () => `Error in conv3dDerInput: depth of input (${inDepth}) must ` + `match input depth for filter ${filter.shape[3]}.`);
            util.assert(outDepth === filter.shape[4], () => `Error in conv3dDerInput: depth of output (${outDepth}) must ` + `match output depth for filter ${filter.shape[4]}.`);
            const inputs = {
                dy: dy5D,
                filter
            };
            const attrs = {
                pad,
                strides,
                inputShape: xShape5D
            };
            // tslint:disable-next-line: no-unnecessary-type-assertion
            const res = _engine.ENGINE.runKernel(_kernel_names.Conv3DBackpropInputV2, inputs, attrs);
            if (reshapedTo5D) {
                return (0,
                    _reshape.reshape)(res, [res.shape[1], res.shape[2], res.shape[3], res.shape[4]]);
            }
            return res;
        }
        const conv3DBackpropInput = (0,
            _operation.op)({
                conv3DBackpropInput_
            });
        exports.conv3DBackpropInput = conv3DBackpropInput;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../util": 509,
        "./operation": 372,
        "./reshape": 402
    }],
    256: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.conv3dTranspose = void 0;
        var _tensor_util_env = require("../tensor_util_env");
        var _conv3d_backprop_input = require("./conv3d_backprop_input");
        var _operation = require("./operation");
        /**
         * Computes the transposed 3D convolution of a volume, also known as a
         * deconvolution.
         *
         * @param x The input image, of rank 5 or rank 4, of shape
         *   `[batch, depth, height, width, inDepth]`. If rank 4, batch of 1 is assumed.
         * @param filter The filter, rank 4, of shape
         *     `[depth, filterHeight, filterWidth, outDepth, inDepth]`.
         *     `inDepth` must match `inDepth` in `x`.
         * @param outputShape Output shape, of rank 5 or rank 4:
         *     `[batch, depth, height, width, outDepth]`. If rank 3, batch of 1 is
         *    assumed.
         * @param strides The strides of the original convolution:
         *     `[strideDepth, strideHeight, strideWidth]`.
         * @param pad  The type of padding algorithm used in the non-transpose version
         *    of the op.
         *
         * @doc {heading: 'Operations', subheading: 'Convolution'}
         */
        function conv3dTranspose_(x, filter, outputShape, strides, pad) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'conv3dTranspose');
            const $filter = (0,
                _tensor_util_env.convertToTensor)(filter, 'filter', 'conv3dTranspose');
            return (0,
                _conv3d_backprop_input.conv3DBackpropInput)(outputShape, $x, $filter, strides, pad);
        }
        const conv3dTranspose = (0,
            _operation.op)({
                conv3dTranspose_
            });
        exports.conv3dTranspose = conv3dTranspose;

    }
        , {
        "../tensor_util_env": 504,
        "./conv3d_backprop_input": 255,
        "./operation": 372
    }],
    257: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.checkPadOnDimRoundingMode = checkPadOnDimRoundingMode;
        exports.computeConv2DInfo = computeConv2DInfo;
        exports.computeConv3DInfo = computeConv3DInfo;
        exports.computeDefaultPad = computeDefaultPad;
        exports.computeDilation2DInfo = computeDilation2DInfo;
        exports.computePool2DInfo = computePool2DInfo;
        exports.computePool3DInfo = computePool3DInfo;
        exports.convertConv2DDataFormat = convertConv2DDataFormat;
        exports.eitherStridesOrDilationsAreOne = eitherStridesOrDilationsAreOne;
        exports.tupleValuesAreOne = tupleValuesAreOne;
        var util = _interopRequireWildcard(require("../util"));
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         *
         * @param inputShape Input tensor shape is of the following dimensions:
         *     `[batch, height, width, inChannels]`.
         * @param filterShape The filter shape is of the following dimensions:
         *     `[filterHeight, filterWidth, depth]`.
         * @param strides The strides of the sliding window for each dimension of the
         *     input tensor: `[strideHeight, strideWidth]`.
         *     If `strides` is a single number,
         *     then `strideHeight == strideWidth`.
         * @param pad The type of padding algorithm.
         *    - `same` and stride 1: output will be of same size as input,
         *       regardless of filter size.
         *    - `valid`: output will be smaller than input if filter is larger
         *       than 1*1x1.
         *    - For more info, see this guide:
         *     [https://www.tensorflow.org/api_docs/python/tf/nn/convolution](
         *          https://www.tensorflow.org/api_docs/python/tf/nn/convolution)
         * @param dataFormat The data format of the input and output data.
         *     Defaults to 'NHWC'.
         * @param dilations The dilation rates: `[dilationHeight, dilationWidth]`.
         *     Defaults to `[1, 1]`. If `dilations` is a single number, then
         *     `dilationHeight == dilationWidth`.
         */
        function computeDilation2DInfo(inputShape, filterShape, strides, pad, dataFormat = 'NHWC', dilations) {
            // `computerConv2DInfo` require filterShape to be in the dimension of:
            // `[filterHeight, filterWidth, depth, outDepth]`, dilation2d doesn't have
            // outDepth, it should have the same depth as the input.
            // Input shape: [batch, height, width, inChannels]
            const inputChannels = inputShape[3];
            const $filterShape = [...filterShape, inputChannels];
            const $dataFormat = convertConv2DDataFormat(dataFormat);
            return computeConv2DInfo(inputShape, $filterShape, strides, dilations, pad, null /* roundingMode */
                , null /* depthWise */
                , $dataFormat);
        }
        function computePool2DInfo(inShape, filterSize, strides, dilations, pad, roundingMode, dataFormat = 'channelsLast') {
            const [filterHeight, filterWidth] = parseTupleParam(filterSize);
            let filterShape;
            if (dataFormat === 'channelsLast') {
                filterShape = [filterHeight, filterWidth, inShape[3], inShape[3]];
            } else if (dataFormat === 'channelsFirst') {
                filterShape = [filterHeight, filterWidth, inShape[1], inShape[1]];
            } else {
                throw new Error(`Unknown dataFormat ${dataFormat}`);
            }
            return computeConv2DInfo(inShape, filterShape, strides, dilations, pad, roundingMode, false, dataFormat);
        }
        /**
         * Computes the information for a forward pass of a pooling3D operation.
         */
        function computePool3DInfo(inShape, filterSize, strides, dilations, pad, roundingMode, dataFormat = 'NDHWC') {
            const [filterDepth, filterHeight, filterWidth] = parse3TupleParam(filterSize);
            let filterShape;
            let $dataFormat;
            if (dataFormat === 'NDHWC') {
                $dataFormat = 'channelsLast';
                filterShape = [filterDepth, filterHeight, filterWidth, inShape[4], inShape[4]];
            } else if (dataFormat === 'NCDHW') {
                $dataFormat = 'channelsFirst';
                filterShape = [filterDepth, filterHeight, filterWidth, inShape[1], inShape[1]];
            } else {
                throw new Error(`Unknown dataFormat ${dataFormat}`);
            }
            return computeConv3DInfo(inShape, filterShape, strides, dilations, pad, false, $dataFormat, roundingMode);
        }
        /**
         * Computes the information for a forward pass of a convolution/pooling
         * operation.
         */
        function computeConv2DInfo(inShape, filterShape, strides, dilations, pad, roundingMode, depthwise = false, dataFormat = 'channelsLast') {
            let [batchSize, inHeight, inWidth, inChannels] = [-1, -1, -1, -1];
            if (dataFormat === 'channelsLast') {
                [batchSize, inHeight, inWidth, inChannels] = inShape;
            } else if (dataFormat === 'channelsFirst') {
                [batchSize, inChannels, inHeight, inWidth] = inShape;
            } else {
                throw new Error(`Unknown dataFormat ${dataFormat}`);
            }
            const [filterHeight, filterWidth, , filterChannels] = filterShape;
            const [strideHeight, strideWidth] = parseTupleParam(strides);
            const [dilationHeight, dilationWidth] = parseTupleParam(dilations);
            const effectiveFilterHeight = getEffectiveFilterSize(filterHeight, dilationHeight);
            const effectiveFilterWidth = getEffectiveFilterSize(filterWidth, dilationWidth);
            const { padInfo, outHeight, outWidth } = getPadAndOutInfo(pad, inHeight, inWidth, strideHeight, strideWidth, effectiveFilterHeight, effectiveFilterWidth, roundingMode, dataFormat);
            const outChannels = depthwise ? filterChannels * inChannels : filterChannels;
            let outShape;
            if (dataFormat === 'channelsFirst') {
                outShape = [batchSize, outChannels, outHeight, outWidth];
            } else if (dataFormat === 'channelsLast') {
                outShape = [batchSize, outHeight, outWidth, outChannels];
            }
            return {
                batchSize,
                dataFormat,
                inHeight,
                inWidth,
                inChannels,
                outHeight,
                outWidth,
                outChannels,
                padInfo,
                strideHeight,
                strideWidth,
                filterHeight,
                filterWidth,
                effectiveFilterHeight,
                effectiveFilterWidth,
                dilationHeight,
                dilationWidth,
                inShape,
                outShape,
                filterShape
            };
        }
        /**
         * Computes the information for a forward pass of a 3D convolution/pooling
         * operation.
         */
        function computeConv3DInfo(inShape, filterShape, strides, dilations, pad, depthwise = false, dataFormat = 'channelsLast', roundingMode) {
            let [batchSize, inDepth, inHeight, inWidth, inChannels] = [-1, -1, -1, -1, -1];
            if (dataFormat === 'channelsLast') {
                [batchSize, inDepth, inHeight, inWidth, inChannels] = inShape;
            } else if (dataFormat === 'channelsFirst') {
                [batchSize, inChannels, inDepth, inHeight, inWidth] = inShape;
            } else {
                throw new Error(`Unknown dataFormat ${dataFormat}`);
            }
            const [filterDepth, filterHeight, filterWidth, , filterChannels] = filterShape;
            const [strideDepth, strideHeight, strideWidth] = parse3TupleParam(strides);
            const [dilationDepth, dilationHeight, dilationWidth] = parse3TupleParam(dilations);
            const effectiveFilterDepth = getEffectiveFilterSize(filterDepth, dilationDepth);
            const effectiveFilterHeight = getEffectiveFilterSize(filterHeight, dilationHeight);
            const effectiveFilterWidth = getEffectiveFilterSize(filterWidth, dilationWidth);
            const { padInfo, outDepth, outHeight, outWidth } = get3DPadAndOutInfo(pad, inDepth, inHeight, inWidth, strideDepth, strideHeight, strideWidth, effectiveFilterDepth, effectiveFilterHeight, effectiveFilterWidth, roundingMode);
            const outChannels = depthwise ? filterChannels * inChannels : filterChannels;
            let outShape;
            if (dataFormat === 'channelsFirst') {
                outShape = [batchSize, outChannels, outDepth, outHeight, outWidth];
            } else if (dataFormat === 'channelsLast') {
                outShape = [batchSize, outDepth, outHeight, outWidth, outChannels];
            }
            return {
                batchSize,
                dataFormat,
                inDepth,
                inHeight,
                inWidth,
                inChannels,
                outDepth,
                outHeight,
                outWidth,
                outChannels,
                padInfo,
                strideDepth,
                strideHeight,
                strideWidth,
                filterDepth,
                filterHeight,
                filterWidth,
                effectiveFilterDepth,
                effectiveFilterHeight,
                effectiveFilterWidth,
                dilationDepth,
                dilationHeight,
                dilationWidth,
                inShape,
                outShape,
                filterShape
            };
        }
        function computeOutputShape2D(inShape, fieldSize, stride, zeroPad, roundingMode) {
            if (zeroPad == null) {
                zeroPad = computeDefaultPad(inShape, fieldSize, stride);
            }
            const inputRows = inShape[0];
            const inputCols = inShape[1];
            const outputRows = round((inputRows - fieldSize + 2 * zeroPad) / stride + 1, roundingMode);
            const outputCols = round((inputCols - fieldSize + 2 * zeroPad) / stride + 1, roundingMode);
            return [outputRows, outputCols];
        }
        function computeOutputShape4D(inShape, fieldSize, outChannels, stride, zeroPad, roundingMode) {
            if (zeroPad == null) {
                zeroPad = computeDefaultPad(inShape, fieldSize, stride);
            }
            const inputDepth = inShape[0];
            const inputRows = inShape[1];
            const inputCols = inShape[2];
            const outputDepths = round((inputDepth - fieldSize + 2 * zeroPad) / stride + 1, roundingMode);
            const outputRows = round((inputRows - fieldSize + 2 * zeroPad) / stride + 1, roundingMode);
            const outputCols = round((inputCols - fieldSize + 2 * zeroPad) / stride + 1, roundingMode);
            return [outputDepths, outputRows, outputCols, outChannels];
        }
        function computeDefaultPad(inputShape, fieldSize, stride, dilation = 1) {
            const effectiveFieldSize = getEffectiveFilterSize(fieldSize, dilation);
            return Math.floor((inputShape[0] * (stride - 1) - stride + effectiveFieldSize) / 2);
        }
        function parseTupleParam(param) {
            if (typeof param === 'number') {
                return [param, param, param];
            }
            if (param.length === 2) {
                return [param[0], param[1], 1];
            }
            return param;
        }
        function parse3TupleParam(param) {
            return typeof param === 'number' ? [param, param, param] : param;
        }
        /* See https://www.tensorflow.org/api_docs/python/tf/nn/atrous_conv2d
         * Atrous convolution is equivalent to standard convolution with upsampled
         * filters with effective_filter_height =
         * filter_height + (filter_height - 1) * (dilation - 1)
         * and effective_filter_width =
         * filter_width + (filter_width - 1) * (dilation - 1),
         * produced by inserting dilation - 1 zeros along consecutive elements across
         * the filters' spatial dimensions.
         * When there is a dilation, this converts a filter dimension to the
         * effective filter dimension, so it can be used in a standard convolution.
         */
        function getEffectiveFilterSize(filterSize, dilation) {
            if (dilation <= 1) {
                return filterSize;
            }
            return filterSize + (filterSize - 1) * (dilation - 1);
        }
        function getPadAndOutInfo(pad, inHeight, inWidth, strideHeight, strideWidth, filterHeight, filterWidth, roundingMode, dataFormat) {
            let padInfo;
            let outHeight;
            let outWidth;
            if (typeof pad === 'number') {
                const padType = pad === 0 ? 'VALID' : 'NUMBER';
                padInfo = {
                    top: pad,
                    bottom: pad,
                    left: pad,
                    right: pad,
                    type: padType
                };
                const outShape = computeOutputShape2D([inHeight, inWidth], filterHeight, strideHeight, pad, roundingMode);
                outHeight = outShape[0];
                outWidth = outShape[1];
            } else if (pad === 'same') {
                outHeight = Math.ceil(inHeight / strideHeight);
                outWidth = Math.ceil(inWidth / strideWidth);
                const padAlongHeight = Math.max(0, (outHeight - 1) * strideHeight + filterHeight - inHeight);
                const padAlongWidth = Math.max(0, (outWidth - 1) * strideWidth + filterWidth - inWidth);
                const top = Math.floor(padAlongHeight / 2);
                const bottom = padAlongHeight - top;
                const left = Math.floor(padAlongWidth / 2);
                const right = padAlongWidth - left;
                padInfo = {
                    top,
                    bottom,
                    left,
                    right,
                    type: 'SAME'
                };
            } else if (pad === 'valid') {
                padInfo = {
                    top: 0,
                    bottom: 0,
                    left: 0,
                    right: 0,
                    type: 'VALID'
                };
                outHeight = Math.ceil((inHeight - filterHeight + 1) / strideHeight);
                outWidth = Math.ceil((inWidth - filterWidth + 1) / strideWidth);
            } else if (typeof pad === 'object') {
                const top = dataFormat === 'channelsLast' ? pad[1][0] : pad[2][0];
                const bottom = dataFormat === 'channelsLast' ? pad[1][1] : pad[2][1];
                const left = dataFormat === 'channelsLast' ? pad[2][0] : pad[3][0];
                const right = dataFormat === 'channelsLast' ? pad[2][1] : pad[3][1];
                const padType = top === 0 && bottom === 0 && left === 0 && right === 0 ? 'VALID' : 'EXPLICIT';
                padInfo = {
                    top,
                    bottom,
                    left,
                    right,
                    type: padType
                };
                outHeight = round((inHeight - filterHeight + top + bottom) / strideHeight + 1, roundingMode);
                outWidth = round((inWidth - filterWidth + left + right) / strideWidth + 1, roundingMode);
            } else {
                throw Error(`Unknown padding parameter: ${pad}`);
            }
            return {
                padInfo,
                outHeight,
                outWidth
            };
        }
        function get3DPadAndOutInfo(pad, inDepth, inHeight, inWidth, strideDepth, strideHeight, strideWidth, filterDepth, filterHeight, filterWidth, roundingMode) {
            let padInfo;
            let outDepth;
            let outHeight;
            let outWidth;
            if (typeof pad === 'number') {
                const padType = pad === 0 ? 'VALID' : 'NUMBER';
                padInfo = {
                    top: pad,
                    bottom: pad,
                    left: pad,
                    right: pad,
                    front: pad,
                    back: pad,
                    type: padType
                };
                const outShape = computeOutputShape4D([inDepth, inHeight, inWidth, 1], filterDepth, 1, strideDepth, pad, roundingMode);
                outDepth = outShape[0];
                outHeight = outShape[1];
                outWidth = outShape[2];
            } else if (pad === 'same') {
                outDepth = Math.ceil(inDepth / strideDepth);
                outHeight = Math.ceil(inHeight / strideHeight);
                outWidth = Math.ceil(inWidth / strideWidth);
                const padAlongDepth = (outDepth - 1) * strideDepth + filterDepth - inDepth;
                const padAlongHeight = (outHeight - 1) * strideHeight + filterHeight - inHeight;
                const padAlongWidth = (outWidth - 1) * strideWidth + filterWidth - inWidth;
                const front = Math.floor(padAlongDepth / 2);
                const back = padAlongDepth - front;
                const top = Math.floor(padAlongHeight / 2);
                const bottom = padAlongHeight - top;
                const left = Math.floor(padAlongWidth / 2);
                const right = padAlongWidth - left;
                padInfo = {
                    top,
                    bottom,
                    left,
                    right,
                    front,
                    back,
                    type: 'SAME'
                };
            } else if (pad === 'valid') {
                padInfo = {
                    top: 0,
                    bottom: 0,
                    left: 0,
                    right: 0,
                    front: 0,
                    back: 0,
                    type: 'VALID'
                };
                outDepth = Math.ceil((inDepth - filterDepth + 1) / strideDepth);
                outHeight = Math.ceil((inHeight - filterHeight + 1) / strideHeight);
                outWidth = Math.ceil((inWidth - filterWidth + 1) / strideWidth);
            } else {
                throw Error(`Unknown padding parameter: ${pad}`);
            }
            return {
                padInfo,
                outDepth,
                outHeight,
                outWidth
            };
        }
        /**
         * Rounds a value depending on the rounding mode
         * @param value
         * @param roundingMode A string from: 'ceil', 'round', 'floor'. If none is
         *     provided, it will default to truncate.
         */
        function round(value, roundingMode) {
            if (!roundingMode) {
                return Math.trunc(value);
            }
            switch (roundingMode) {
                case 'round':
                    // used for Caffe Conv
                    return Math.round(value);
                case 'ceil':
                    // used for Caffe Pool
                    return Math.ceil(value);
                case 'floor':
                    return Math.floor(value);
                default:
                    throw new Error(`Unknown roundingMode ${roundingMode}`);
            }
        }
        function tupleValuesAreOne(param) {
            const [dimA, dimB, dimC] = parseTupleParam(param);
            return dimA === 1 && dimB === 1 && dimC === 1;
        }
        function eitherStridesOrDilationsAreOne(strides, dilations) {
            return tupleValuesAreOne(strides) || tupleValuesAreOne(dilations);
        }
        /**
         * Convert Conv2D dataFormat from 'NHWC'|'NCHW' to
         *    'channelsLast'|'channelsFirst'
         * @param dataFormat in 'NHWC'|'NCHW' mode
         * @return dataFormat in 'channelsLast'|'channelsFirst' mode
         * @throws unknown dataFormat
         */
        function convertConv2DDataFormat(dataFormat) {
            if (dataFormat === 'NHWC') {
                return 'channelsLast';
            } else if (dataFormat === 'NCHW') {
                return 'channelsFirst';
            } else {
                throw new Error(`Unknown dataFormat ${dataFormat}`);
            }
        }
        /**
         * Check validity of pad when using dimRoundingMode.
         * @param opDesc A string of op description
         * @param pad The type of padding algorithm.
         *   - `same` and stride 1: output will be of same size as input,
         *       regardless of filter size.
         *   - `valid` output will be smaller than input if filter is larger
         *       than 1x1.
         *   - For more info, see this guide:
         *     [https://www.tensorflow.org/api_docs/python/tf/nn/convolution](
         *          https://www.tensorflow.org/api_docs/python/tf/nn/convolution)
         * @param dimRoundingMode A string from: 'ceil', 'round', 'floor'. If none is
         *     provided, it will default to truncate.
         * @throws unknown padding parameter
         */
        function checkPadOnDimRoundingMode(opDesc, pad, dimRoundingMode) {
            if (dimRoundingMode != null) {
                if (typeof pad === 'string') {
                    throw Error(`Error in ${opDesc}: pad must be an integer when using ` + `dimRoundingMode ${dimRoundingMode} but got pad ${pad}.`);
                } else if (typeof pad === 'number') {
                    util.assert(util.isInt(pad), () => `Error in ${opDesc}: pad must be an integer when using ` + `dimRoundingMode ${dimRoundingMode} but got pad ${pad}.`);
                } else if (typeof pad === 'object') {
                    pad.forEach(p => {
                        p.forEach(v => {
                            util.assert(util.isInt(v), () => `Error in ${opDesc}: pad must be an integer when using ` + `dimRoundingMode ${dimRoundingMode} but got pad ${v}.`);
                        }
                        );
                    }
                    );
                } else {
                    throw Error(`Error in ${opDesc}: Unknown padding parameter: ${pad}`);
                }
            }
        }

    }
        , {
        "../util": 509
    }],
    258: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.cos = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes cos of the input `tf.Tensor` element-wise: `cos(x)`
         *
         * ```js
         * const x = tf.tensor1d([0, Math.PI / 2, Math.PI * 3 / 4]);
         *
         * x.cos().print();  // or tf.cos(x)
         * ```
         * @param x The input tensor. Must be float32 type.
         *
         * @doc {heading: 'Operations', subheading: 'Basic math'}
         */
        function cos_(x) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'cos', 'float32');
            const inputs = {
                x: $x
            };
            return _engine.ENGINE.runKernel(_kernel_names.Cos, inputs);
        }
        const cos = (0,
            _operation.op)({
                cos_
            });
        exports.cos = cos;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    259: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.cosh = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes hyperbolic cos of the input `tf.Tensor` element-wise: `cosh(x)`
         *
         * ```js
         * const x = tf.tensor1d([0, 1, -1, .7]);
         *
         * x.cosh().print();  // or tf.cosh(x)
         * ```
         * @param x The input tensor. Must be float32 type.
         *
         * @doc {heading: 'Operations', subheading: 'Basic math'}
         */
        function cosh_(x) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'cosh', 'float32');
            const inputs = {
                x: $x
            };
            return _engine.ENGINE.runKernel(_kernel_names.Cosh, inputs);
        }
        const cosh = (0,
            _operation.op)({
                cosh_
            });
        exports.cosh = cosh;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    260: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.cumprod = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2022 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the 'License');
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an 'AS IS' BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes the cumulative product of a `tf.Tensor` along `axis`.
         *
         * ```js
         * const x = tf.tensor([1, 2, 3, 4]);
         * x.cumprod().print();
         * ```
         * ```js
         * const x = tf.tensor([[1, 2], [3, 4]]);
         * x.cumprod().print();
         * ```
         *
         * @param x The input tensor to cumulatively multiply.
         * @param axis The axis along which to multiply. Optional. Defaults to 0.
         * @param exclusive Whether to perform exclusive cumulative product. Optional.
         *     Defaults to false. If set to true then the product of each tensor entry
         *     does not include its own value, but only the values previous to it
         *     along the specified axis.
         * @param reverse Whether to multiply in the opposite direction. Optional.
         *     Defaults to false.
         *
         * @doc {heading: 'Operations', subheading: 'Scan'}
         */
        function cumprod_(x, axis = 0, exclusive = false, reverse = false) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'cumprod');
            const inputs = {
                x: $x
            };
            const attrs = {
                axis,
                exclusive,
                reverse
            };
            return _engine.ENGINE.runKernel(_kernel_names.Cumprod, inputs, attrs);
        }
        const cumprod = (0,
            _operation.op)({
                cumprod_
            });
        exports.cumprod = cumprod;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    261: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.cumsum = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes the cumulative sum of a `tf.Tensor` along `axis`.
         *
         * ```js
         * const x = tf.tensor([1, 2, 3, 4]);
         * x.cumsum().print();
         * ```
         * ```js
         * const x = tf.tensor([[1, 2], [3, 4]]);
         * x.cumsum().print();
         * ```
         *
         * @param x The input tensor to be summed.
         * @param axis The axis along which to sum. Optional. Defaults to 0.
         * @param exclusive Whether to perform exclusive cumulative sum. Optional.
         *     Defaults to false. If set to true then the sum of each tensor entry
         *     does not include its own value, but only the values previous to it
         *     along the specified axis.
         * @param reverse Whether to sum in the opposite direction. Optional.
         *     Defaults to false.
         *
         * @doc {heading: 'Operations', subheading: 'Scan'}
         */
        function cumsum_(x, axis = 0, exclusive = false, reverse = false) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'cumsum');
            const inputs = {
                x: $x
            };
            const attrs = {
                axis,
                exclusive,
                reverse
            };
            return _engine.ENGINE.runKernel(_kernel_names.Cumsum, inputs, attrs);
        }
        const cumsum = (0,
            _operation.op)({
                cumsum_
            });
        exports.cumsum = cumsum;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    262: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.denseBincount = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var util = _interopRequireWildcard(require("../util"));
        var _operation = require("./operation");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Outputs a vector with length `size` and the same dtype as `weights`.
         *
         * If `weights` are empty, then index `i` stores the number of times the value
         * `i` is counted in `x`. If `weights` are non-empty, then index `i` stores the
         * sum of the value in `weights` at each index where the corresponding value in
         * `x` is `i`.
         *
         * Values in `x` outside of the range [0, size) are ignored.
         *
         * @param x The input int tensor, rank 1 or rank 2.
         * @param weights The weights tensor, must have the same shape as x, or a
         *     length-0 Tensor, in which case it acts as all weights equal to 1.
         * @param size Non-negative integer.
         * @param binaryOutput Optional. Whether the kernel should count the appearance
         *     or number of occurrences. Defaults to False.
         *
         * @doc {heading: 'Operations', subheading: 'Reduction'}
         */
        function denseBincount_(x, weights, size, binaryOutput = false) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'denseBincount');
            const $weights = (0,
                _tensor_util_env.convertToTensor)(weights, 'weights', 'denseBincount');
            util.assert($x.dtype === 'int32', () => `Error in denseBincount: input ` + `dtype must be int32, but got ${$x.dtype}`);
            util.assert($x.rank <= 2, () => `Error in denseBincount: input must be at most rank 2, but got ` + `rank ${$x.rank}.`);
            util.assert(size >= 0, () => `size must be non-negative, but got ${size}.`);
            util.assert($weights.size === $x.size || $weights.size === 0, () => `Error in denseBincount: weights must have the same shape as x or ` + `0-length, but got x shape: ${$x.shape}, weights shape: ` + `${$weights.shape}.`);
            const inputs = {
                x: $x,
                weights: $weights
            };
            const attrs = {
                size,
                binaryOutput
            };
            return _engine.ENGINE.runKernel(_kernel_names.DenseBincount, inputs, attrs);
        }
        const denseBincount = (0,
            _operation.op)({
                denseBincount_
            });
        exports.denseBincount = denseBincount;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "../util": 509,
        "./operation": 372
    }],
    263: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.depthToSpace = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var util = _interopRequireWildcard(require("../util"));
        var _operation = require("./operation");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Rearranges data from depth into blocks of spatial data. More specifically,
         * this op outputs a copy of the input tensor where values from the `depth`
         * dimension are moved in spatial blocks to the `height` and `width` dimensions.
         * The attr `blockSize` indicates the input block size and how the data is
         * moved.
         *
         *  - Chunks of data of size `blockSize * blockSize` from depth are rearranged
         * into non-overlapping blocks of size `blockSize x blockSize`
         *
         *  - The width the output tensor is `inputWidth * blockSize`, whereas the
         * height is `inputHeight * blockSize`
         *
         *  - The Y, X coordinates within each block of the output image are determined
         * by the high order component of the input channel index
         *
         *  - The depth of the input tensor must be divisible by `blockSize *
         * blockSize`
         *
         * The `dataFormat` attr specifies the layout of the input and output tensors
         * with the following options: "NHWC": [ `batch, height, width, channels` ]
         * "NCHW": [ `batch, channels, height, width` ]
         *
         * ```js
         * const x = tf.tensor4d([1, 2, 3, 4], [1, 1, 1, 4]);
         * const blockSize = 2;
         * const dataFormat = "NHWC";
         *
         * tf.depthToSpace(x, blockSize, dataFormat).print();
         * ```
         *
         * @param x The input tensor of rank 4
         * @param blockSIze  An `int` that is `>= 2`. The size of the spatial block
         * @param dataFormat An optional string from: "NHWC", "NCHW". Defaults to "NHWC"
         *
         * @doc {heading: 'Tensors', subheading: 'Transformations'}
         */
        function depthToSpace_(x, blockSize, dataFormat = 'NHWC') {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'depthToSpace', 'float32');
            const inputHeight = dataFormat === 'NHWC' ? $x.shape[1] : $x.shape[2];
            const inputWidth = dataFormat === 'NHWC' ? $x.shape[2] : $x.shape[3];
            const inputDepth = dataFormat === 'NHWC' ? $x.shape[3] : $x.shape[1];
            util.assert(blockSize > 1, () => `blockSize should be > 1 for depthToSpace, but was: ${blockSize}`);
            util.assert(inputHeight * blockSize >= 0, () => `Negative dimension size caused by overflow when multiplying
    ${inputHeight} and ${blockSize}  for depthToSpace with input shape
    ${$x.shape}`);
            util.assert(inputWidth * blockSize >= 0, () => `Negative dimension size caused by overflow when multiplying
    ${inputWidth} and ${blockSize} for depthToSpace with input shape
        ${$x.shape}`);
            util.assert(inputDepth % (blockSize * blockSize) === 0, () => `Dimension size must be evenly divisible by ${blockSize * blockSize} but is ${inputDepth} for depthToSpace with input shape ${$x.shape}`);
            const inputs = {
                x: $x
            };
            const attrs = {
                blockSize,
                dataFormat
            };
            return _engine.ENGINE.runKernel(_kernel_names.DepthToSpace, inputs, attrs);
        }
        const depthToSpace = (0,
            _operation.op)({
                depthToSpace_
            });
        exports.depthToSpace = depthToSpace;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "../util": 509,
        "./operation": 372
    }],
    264: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.depthwiseConv2d = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var util = _interopRequireWildcard(require("../util"));
        var conv_util = _interopRequireWildcard(require("./conv_util"));
        var _operation = require("./operation");
        var _reshape = require("./reshape");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Depthwise 2D convolution.
         *
         * Given a 4D `input` array and a `filter` array of shape
         * `[filterHeight, filterWidth, inChannels, channelMultiplier]` containing
         * `inChannels` convolutional filters of depth 1, this op applies a
         * different filter to each input channel (expanding from 1 channel to
         * `channelMultiplier` channels for each), then concatenates the results
         * together. The output has `inChannels * channelMultiplier` channels.
         *
         * See
         * [https://www.tensorflow.org/api_docs/python/tf/nn/depthwise_conv2d](
         *     https://www.tensorflow.org/api_docs/python/tf/nn/depthwise_conv2d)
         * for more details.
         *
         * @param x The input tensor, of rank 4 or rank 3, of shape
         *     `[batch, height, width, inChannels]`. If rank 3, batch of 1 is
         * assumed.
         * @param filter The filter tensor, rank 4, of shape
         *     `[filterHeight, filterWidth, inChannels, channelMultiplier]`.
         * @param strides The strides of the convolution: `[strideHeight,
         * strideWidth]`. If strides is a single number, then `strideHeight ==
         * strideWidth`.
         * @param pad The type of padding algorithm.
         *   - `same` and stride 1: output will be of same size as input,
         *       regardless of filter size.
         *   - `valid`: output will be smaller than input if filter is larger
         *       than 1x1.
         *   - For more info, see this guide:
         *     [https://www.tensorflow.org/api_docs/python/tf/nn/convolution](
         *          https://www.tensorflow.org/api_docs/python/tf/nn/convolution)
         * @param dilations The dilation rates: `[dilationHeight, dilationWidth]`
         *     in which we sample input values across the height and width dimensions
         *     in atrous convolution. Defaults to `[1, 1]`. If `rate` is a single
         *     number, then `dilationHeight == dilationWidth`. If it is greater than
         *     1, then all values of `strides` must be 1.
         * @param dataFormat: An optional string from: "NHWC", "NCHW". Defaults to
         *     "NHWC". Specify the data format of the input and output data. With the
         *     default format "NHWC", the data is stored in the order of: [batch,
         *     height, width, channels]. Only "NHWC" is currently supported.
         * @param dimRoundingMode A string from: 'ceil', 'round', 'floor'. If none is
         *     provided, it will default to truncate.
         *
         * @doc {heading: 'Operations', subheading: 'Convolution'}
         */
        function depthwiseConv2d_(x, filter, strides, pad, dataFormat = 'NHWC', dilations = [1, 1], dimRoundingMode) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'depthwiseConv2d', 'float32');
            const $filter = (0,
                _tensor_util_env.convertToTensor)(filter, 'filter', 'depthwiseConv2d', 'float32');
            let x4D = $x;
            let reshapedTo4D = false;
            if ($x.rank === 3) {
                reshapedTo4D = true;
                x4D = (0,
                    _reshape.reshape)($x, [1, $x.shape[0], $x.shape[1], $x.shape[2]]);
            }
            util.assert(x4D.rank === 4, () => `Error in depthwiseConv2d: input must be rank 4, but got ` + `rank ${x4D.rank}.`);
            util.assert($filter.rank === 4, () => `Error in depthwiseConv2d: filter must be rank 4, but got rank ` + `${$filter.rank}.`);
            const inChannels = dataFormat === 'NHWC' ? x4D.shape[3] : x4D.shape[1];
            util.assert(inChannels === $filter.shape[2], () => `Error in depthwiseConv2d: number of input channels ` + `(${inChannels}) must match the inChannels dimension in ` + `filter ${$filter.shape[2]}.`);
            conv_util.checkPadOnDimRoundingMode('depthwiseConv2d', pad, dimRoundingMode);
            const inputs = {
                x: x4D,
                filter: $filter
            };
            const attrs = {
                strides,
                pad,
                dataFormat,
                dilations,
                dimRoundingMode
            };
            // tslint:disable-next-line: no-unnecessary-type-assertion
            const res = _engine.ENGINE.runKernel(_kernel_names.DepthwiseConv2dNative, inputs, attrs);
            if (reshapedTo4D) {
                return (0,
                    _reshape.reshape)(res, [res.shape[1], res.shape[2], res.shape[3]]);
            }
            return res;
        }
        const depthwiseConv2d = (0,
            _operation.op)({
                depthwiseConv2d_
            });
        exports.depthwiseConv2d = depthwiseConv2d;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "../util": 509,
        "./conv_util": 257,
        "./operation": 372,
        "./reshape": 402
    }],
    265: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.depthwiseConv2dNativeBackpropFilter = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _operation = require("./operation");
        var _reshape = require("./reshape");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        function depthwiseConv2dNativeBackpropFilter_(x, dy, filterShape, strides, pad, dilations = [1, 1], dimRoundingMode) {
            let x4D = x;
            if (x.rank === 3) {
                x4D = (0,
                    _reshape.reshape)(x, [1, x.shape[0], x.shape[1], x.shape[2]]);
            }
            let dy4D = dy;
            if (dy4D.rank === 3) {
                dy4D = (0,
                    _reshape.reshape)(dy, [1, dy.shape[0], dy.shape[1], dy.shape[2]]);
            }
            const inputs = {
                x: x4D,
                dy: dy4D
            };
            const attrs = {
                strides,
                pad,
                dimRoundingMode,
                dilations,
                filterShape
            };
            // tslint:disable-next-line: no-unnecessary-type-assertion
            return _engine.ENGINE.runKernel(_kernel_names.DepthwiseConv2dNativeBackpropFilter, inputs, attrs);
        }
        const depthwiseConv2dNativeBackpropFilter = (0,
            _operation.op)({
                depthwiseConv2dNativeBackpropFilter_
            });
        exports.depthwiseConv2dNativeBackpropFilter = depthwiseConv2dNativeBackpropFilter;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "./operation": 372,
        "./reshape": 402
    }],
    266: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.depthwiseConv2dNativeBackpropInput = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _operation = require("./operation");
        var _reshape = require("./reshape");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        function depthwiseConv2dNativeBackpropInput_(xShape, dy, filter, strides, pad, dilations = [1, 1], dimRoundingMode) {
            let dy4D = dy;
            let reshapedTo4D = false;
            if (dy.rank === 3) {
                reshapedTo4D = true;
                dy4D = (0,
                    _reshape.reshape)(dy, [1, dy.shape[0], dy.shape[1], dy.shape[2]]);
            }
            const inputs = {
                dy: dy4D,
                filter
            };
            const attrs = {
                strides,
                pad,
                dimRoundingMode,
                dilations,
                inputShape: xShape
            };
            const res = // tslint:disable-next-line: no-unnecessary-type-assertion
                _engine.ENGINE.runKernel(_kernel_names.DepthwiseConv2dNativeBackpropInput, inputs, attrs);
            if (reshapedTo4D) {
                return (0,
                    _reshape.reshape)(res, [res.shape[1], res.shape[2], res.shape[3]]);
            }
            return res;
        }
        const depthwiseConv2dNativeBackpropInput = (0,
            _operation.op)({
                depthwiseConv2dNativeBackpropInput_
            });
        exports.depthwiseConv2dNativeBackpropInput = depthwiseConv2dNativeBackpropInput;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "./operation": 372,
        "./reshape": 402
    }],
    267: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.diag = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Returns a diagonal tensor with given diagonal values.
         *
         * Given a diagonal, this operation returns a tensor with the diagonal and
         * everything else padded with zeros.
         *
         * Assume the input has dimensions `[D1,..., Dk]`, then the output is a tensor
         * of rank 2k with dimensions `[D1,..., Dk, D1,..., Dk]`
         *
         * ```js
         * const x = tf.tensor1d([1, 2, 3, 4]);
         *
         * tf.diag(x).print()
         * ```
         * ```js
         * const x = tf.tensor2d([1, 2, 3, 4, 5, 6, 6, 8], [4, 2])
         *
         * tf.diag(x).print()
         * ```
         * @param x The input tensor.
         *
         * @doc {heading: 'Tensors', subheading: 'Creation'}
         */
        function diag_(x) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'diag');
            const inputs = {
                x: $x
            };
            return _engine.ENGINE.runKernel(_kernel_names.Diag, inputs);
        }
        const diag = (0,
            _operation.op)({
                diag_
            });
        exports.diag = diag;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    268: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.dilation2d = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var util = _interopRequireWildcard(require("../util"));
        var _operation = require("./operation");
        var _reshape = require("./reshape");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes the grayscale dilation over the input `x`.
         *
         * @param x The input tensor, rank 3 or rank 4 of shape
         *     `[batch, height, width, inChannels]`. If rank 3, batch of 1 is assumed.
         * @param filter The filter tensor, rank 3, of shape
         *     `[filterHeight, filterWidth, depth]`.
         * @param strides The strides of the sliding window for each dimension of the
         *     input tensor: `[strideHeight, strideWidth]`.
         *     If `strides` is a single number,
         *     then `strideHeight == strideWidth`.
         * @param pad The type of padding algorithm.
         *    - `same` and stride 1: output will be of same size as input,
         *       regardless of filter size.
         *    - `valid`: output will be smaller than input if filter is larger
         *       than 1*1x1.
         *    - For more info, see this guide:
         *     [https://www.tensorflow.org/api_docs/python/tf/nn/convolution](
         *          https://www.tensorflow.org/api_docs/python/tf/nn/convolution)
         * @param dataFormat Specify the data format of the input and output data.
         *      Defaults to 'NHWC'. Only 'NHWC' is currently supported. With the
         *      default format "NHWC", the data is stored in the order of: [batch,
         *      height, width, channels].
         * @param dilations The dilation rates: `[dilationHeight, dilationWidth]`
         *     in which we sample input values across the height and width dimensions
         *     for atrous morphological dilation. Defaults to `[1, 1]`. If `dilations`
         *     is a single number, then `dilationHeight == dilationWidth`. If it is
         *     greater than 1, then all values of `strides` must be 1.
         *
         * @doc {heading: 'Operations', subheading: 'Convolution'}
         */
        function dilation2d_(x, filter, strides, pad, dilations = [1, 1], dataFormat = 'NHWC') {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'dilation2d');
            const $filter = (0,
                _tensor_util_env.convertToTensor)(filter, 'filter', 'dilation2d');
            util.assert($x.rank === 3 || $x.rank === 4, () => `Error in dilation2d: input must be rank 3 or 4, but got rank ` + `${$x.rank}.`);
            util.assert($filter.rank === 3, () => `Error in dilation2d: filter must be rank 3, but got rank ` + `${$filter.rank}.`);
            util.assert(dataFormat === 'NHWC', () => `Error in dilation2d: Only NHWC is currently supported, ` + `but got dataFormat of ${dataFormat}`);
            let x4D = $x;
            let reshapedTo4D = false;
            if ($x.rank === 3) {
                x4D = (0,
                    _reshape.reshape)($x, [1, $x.shape[0], $x.shape[1], $x.shape[2]]);
                reshapedTo4D = true;
            }
            const inputs = {
                x: x4D,
                filter: $filter
            };
            const attrs = {
                strides,
                pad,
                dilations
            };
            // tslint:disable-next-line: no-unnecessary-type-assertion
            const res = _engine.ENGINE.runKernel(_kernel_names.Dilation2D, inputs, attrs);
            if (reshapedTo4D) {
                return (0,
                    _reshape.reshape)(res, [res.shape[1], res.shape[2], res.shape[3]]);
            }
            return res;
        }
        const dilation2d = (0,
            _operation.op)({
                dilation2d_
            });
        exports.dilation2d = dilation2d;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "../util": 509,
        "./operation": 372,
        "./reshape": 402
    }],
    269: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.div = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util = require("../tensor_util");
        var _tensor_util_env = require("../tensor_util_env");
        var _floorDiv = require("./floorDiv");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Divides two `tf.Tensor`s element-wise, A / B. Supports broadcasting.
         *
         * ```js
         * const a = tf.tensor1d([1, 4, 9, 16]);
         * const b = tf.tensor1d([1, 2, 3, 4]);
         *
         * a.div(b).print();  // or tf.div(a, b)
         * ```
         *
         * ```js
         * // Broadcast div a with b.
         * const a = tf.tensor1d([2, 4, 6, 8]);
         * const b = tf.scalar(2);
         *
         * a.div(b).print();  // or tf.div(a, b)
         * ```
         *
         * @param a The first tensor as the numerator.
         * @param b The second tensor as the denominator. Must have the same dtype as
         * `a`.
         *
         * @doc {heading: 'Operations', subheading: 'Arithmetic'}
         */
        function div_(a, b) {
            let $a = (0,
                _tensor_util_env.convertToTensor)(a, 'a', 'div');
            let $b = (0,
                _tensor_util_env.convertToTensor)(b, 'b', 'div');
            [$a, $b] = (0,
                _tensor_util.makeTypesMatch)($a, $b);
            if ($a.dtype === 'int32' && $b.dtype === 'int32') {
                return (0,
                    _floorDiv.floorDiv)($a, $b);
            }
            const inputs = {
                a: $a,
                b: $b
            };
            const attrs = {};
            // tslint:disable-next-line: no-unnecessary-type-assertion
            return _engine.ENGINE.runKernel(_kernel_names.RealDiv, inputs, attrs);
        }
        const div = (0,
            _operation.op)({
                div_
            });
        exports.div = div;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util": 503,
        "../tensor_util_env": 504,
        "./floorDiv": 286,
        "./operation": 372
    }],
    270: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.divNoNan = void 0;
        var _tensor_util = require("../tensor_util");
        var _tensor_util_env = require("../tensor_util_env");
        var _div = require("./div");
        var _equal = require("./equal");
        var _operation = require("./operation");
        var _where = require("./where");
        var _zeros_like = require("./zeros_like");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Divides two `tf.Tensor`s element-wise, A / B. Supports broadcasting. Return 0
         * if denominator is 0.
         *
         *
         * ```js
         * const a = tf.tensor1d([1, 4, 9, 16]);
         * const b = tf.tensor1d([1, 2, 3, 4]);
         * const c = tf.tensor1d([0, 0, 0, 0]);
         *
         * a.divNoNan(b).print();  // or tf.divNoNan(a, b)
         * a.divNoNan(c).print();  // or tf.divNoNan(a, c)
         * ```
         *
         * ```js
         * // Broadcast div a with b.
         * const a = tf.tensor1d([2, 4, 6, 8]);
         * const b = tf.scalar(2);
         * const c = tf.scalar(0);
         *
         * a.divNoNan(b).print();  // or tf.divNoNan(a, b)
         * a.divNoNan(c).print();  // or tf.divNoNan(a, c)
         * ```
         *
         * @param a The first tensor as the numerator.
         * @param b The second tensor as the denominator. Must have the same dtype as
         * `a`.
         *
         * @doc {heading: 'Operations', subheading: 'Arithmetic'}
         */
        function divNoNan_(a, b) {
            // TODO: Make this into its own kernel.
            let $a = (0,
                _tensor_util_env.convertToTensor)(a, 'a', 'div');
            let $b = (0,
                _tensor_util_env.convertToTensor)(b, 'b', 'div');
            [$a, $b] = (0,
                _tensor_util.makeTypesMatch)($a, $b);
            const divResult = (0,
                _div.div)($a, $b);
            const zeros = (0,
                _zeros_like.zerosLike)(divResult);
            const bEqualsZero = (0,
                _equal.equal)($b, zeros);
            return (0,
                _where.where)(bEqualsZero, zeros, divResult);
        }
        const divNoNan = (0,
            _operation.op)({
                divNoNan_
            });
        exports.divNoNan = divNoNan;

    }
        , {
        "../tensor_util": 503,
        "../tensor_util_env": 504,
        "./div": 269,
        "./equal": 276,
        "./operation": 372,
        "./where": 484,
        "./zeros_like": 487
    }],
    271: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.dot = void 0;
        var _tensor_util_env = require("../tensor_util_env");
        var util = _interopRequireWildcard(require("../util"));
        var _mat_mul = require("./mat_mul");
        var _operation = require("./operation");
        var _reshape = require("./reshape");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes the dot product of two matrices and/or vectors, `t1` and `t2`.
         *
         * ```js
         * const a = tf.tensor1d([1, 2]);
         * const b = tf.tensor2d([[1, 2], [3, 4]]);
         * const c = tf.tensor2d([[1, 2, 3], [4, 5, 6]]);
         *
         * a.dot(b).print();  // or tf.dot(a, b)
         * b.dot(a).print();
         * b.dot(c).print();
         * ```
         * @param t1 The first tensor in the dot operation.
         * @param t2 The second tensor in the dot operation.
         *
         * @doc {heading: 'Operations', subheading: 'Matrices'}
         */
        function dot_(t1, t2) {
            const $t1 = (0,
                _tensor_util_env.convertToTensor)(t1, 't1', 'dot');
            const $t2 = (0,
                _tensor_util_env.convertToTensor)(t2, 't2', 'dot');
            util.assert(($t1.rank === 1 || $t1.rank === 2) && ($t2.rank === 1 || $t2.rank === 2), () => `Error in dot: inputs must all be rank 1 or 2, but got ranks ` + `${$t1.rank} and ${$t2.rank}.`);
            const t1Inner = $t1.rank === 1 ? $t1.size : $t1.shape[1];
            const t2Inner = $t2.rank === 1 ? $t2.size : $t2.shape[0];
            util.assert(t1Inner === t2Inner, () => `Error in dot: inner dimensions of inputs must match, but got ` + `${t1Inner} and ${t2Inner}.`);
            if ($t1.rank === 1 && $t2.rank === 1) {
                const t12D = (0,
                    _reshape.reshape)($t1, [1, -1]);
                const t22D = (0,
                    _reshape.reshape)($t2, [-1, 1]);
                const t1t2 = (0,
                    _mat_mul.matMul)(t12D, t22D);
                return (0,
                    _reshape.reshape)(t1t2, []);
            } else if ($t1.rank === 1 && $t2.rank === 2) {
                const t12D = (0,
                    _reshape.reshape)($t1, [1, -1]);
                const t22D = (0,
                    _reshape.reshape)($t2, [$t2.shape[0], $t2.shape[1]]);
                const t1t2 = (0,
                    _mat_mul.matMul)(t12D, t22D);
                return (0,
                    _reshape.reshape)(t1t2, [t1t2.size]);
            } else if ($t1.rank === 2 && $t2.rank === 1) {
                const t22D = (0,
                    _reshape.reshape)($t2, [-1, 1]);
                const t1t2 = (0,
                    _mat_mul.matMul)($t1, t22D);
                return (0,
                    _reshape.reshape)(t1t2, [t1t2.size]);
            } else {
                const t22D = (0,
                    _reshape.reshape)($t2, [$t2.shape[0], $t2.shape[1]]);
                const t1t2 = (0,
                    _mat_mul.matMul)($t1, t22D);
                return t1t2;
            }
        }
        const dot = (0,
            _operation.op)({
                dot_
            });
        exports.dot = dot;

    }
        , {
        "../tensor_util_env": 504,
        "../util": 509,
        "./mat_mul": 346,
        "./operation": 372,
        "./reshape": 402
    }],
    272: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.dropout = void 0;
        var _tensor = require("../tensor");
        var _tensor_util_env = require("../tensor_util_env");
        var util = _interopRequireWildcard(require("../util"));
        var _add = require("./add");
        var _div = require("./div");
        var _dropout_util = require("./dropout_util");
        var _floor = require("./floor");
        var _mul = require("./mul");
        var _operation = require("./operation");
        var _random_uniform = require("./random_uniform");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes dropout.
         *
         * ```js
         * const x = tf.tensor1d([1, 2, 2, 1]);
         * const rate = 0.75;
         * const output = tf.dropout(x, rate);
         * output.print();
         * ```
         *
         * @param x A floating point Tensor or TensorLike.
         * @param rate A float in the range [0, 1). The probability that each element
         *   of x is discarded.
         * @param noiseShape An array of numbers of type int32, representing the
         * shape for randomly generated keep/drop flags. If the noiseShape has null
         * value, it will be automatically replaced with the x's relative dimension
         * size. Optional.
         * @param seed Used to create random seeds. Optional.
         * @returns A Tensor of the same shape of x.
         *
         * @doc {heading: 'Operations', subheading: 'Dropout'}
         */
        function dropout_(x, rate, noiseShape, seed) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'dropout');
            util.assert($x.dtype === 'float32', () => `x has to be a floating point tensor since it's going to be ` + `scaled, but got a ${$x.dtype} tensor instead.`);
            util.assert(rate >= 0 && rate < 1, () => `rate must be a float in the range [0, 1), but got ${rate}.`);
            if (rate === 0) {
                return x instanceof _tensor.Tensor ? $x.clone() : $x;
            }
            const $noiseShape = (0,
                _dropout_util.getNoiseShape)($x, noiseShape);
            const keepProb = 1 - rate;
            const multiplier = (0,
                _div.div)((0,
                    _floor.floor)((0,
                        _add.add)((0,
                            _random_uniform.randomUniform)($noiseShape, 0, 1, 'float32', seed), keepProb)), keepProb);
            return (0,
                _mul.mul)($x, multiplier);
        }
        const dropout = (0,
            _operation.op)({
                dropout_
            });
        exports.dropout = dropout;

    }
        , {
        "../tensor": 501,
        "../tensor_util_env": 504,
        "../util": 509,
        "./add": 205,
        "./div": 269,
        "./dropout_util": 273,
        "./floor": 285,
        "./mul": 362,
        "./operation": 372,
        "./random_uniform": 395
    }],
    273: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.getNoiseShape = getNoiseShape;
        var util = _interopRequireWildcard(require("../util"));
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2019 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Normalize noise shape based on provided tensor and noise shape.
         *
         * @param x Tensor.
         * @param noiseShape The shape for the randomly generated keep/drop flags, as
         *   an array of numbers. Optional.
         * @returns Normalized noise shape.
         */
        function getNoiseShape(x, noiseShape) {
            if (noiseShape == null) {
                return x.shape.slice();
            }
            if (util.arraysEqual(x.shape, noiseShape)) {
                return noiseShape;
            }
            if (x.shape.length === noiseShape.length) {
                const newDimension = [];
                for (let i = 0; i < x.shape.length; i++) {
                    if (noiseShape[i] == null && x.shape[i] != null) {
                        newDimension.push(x.shape[i]);
                    } else {
                        newDimension.push(noiseShape[i]);
                    }
                }
                return newDimension;
            }
            return noiseShape;
        }

    }
        , {
        "../util": 509
    }],
    274: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.einsum = void 0;
        exports.einsum_ = einsum_;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2021 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Tensor contraction over specified indices and outer product.
         *
         * `einsum` allows defining Tensors by defining their element-wise computation.
         * This computation is based on
         * [Einstein summation](https://en.wikipedia.org/wiki/Einstein_notation).
         *
         * Some special cases include:
         *
         * Matrix multiplication:
         * ```js
         * const x = tf.tensor2d([[1, 2, 3], [4, 5, 6]]);
         * const y = tf.tensor2d([[0, 1], [2, 3], [4, 5]]);
         * x.print();
         * y.print();
         * tf.einsum('ij,jk->ik', x, y).print();
         * ```
         *
         * Dot product:
         * ```js
         * const x = tf.tensor1d([1, 2, 3]);
         * const y = tf.tensor1d([0, 1, 2]);
         * x.print();
         * y.print();
         * tf.einsum('i,i->', x, y).print();
         * ```
         *
         * Batch dot product:
         * ```js
         * const x = tf.tensor2d([[1, 2, 3], [4, 5, 6]]);
         * const y = tf.tensor2d([[0, 1, 2], [3, 4, 5]]);
         * x.print();
         * y.print();
         * tf.einsum('bi,bi->b', x, y).print();
         * ```
         *
         * Outer prouduct:
         * ```js
         * const x = tf.tensor1d([1, 3, 5]);
         * const y = tf.tensor1d([2, 4, 6]);
         * x.print();
         * y.print();
         * tf.einsum('i,j->ij', x, y).print();
         * ```
         *
         * Matrix transpose:
         * ```js
         * const x = tf.tensor2d([[1, 2], [3, 4]]);
         * x.print();
         * tf.einsum('ij->ji', x).print();
         * ```
         *
         * Batch matrix transpose:
         * ```js
         * const x = tf.tensor3d([[[1, 2], [3, 4]], [[-1, -2], [-3, -4]]]);
         * x.print();
         * tf.einsum('bij->bji', x).print();
         * ```
         *
         * Limitations:
         *
         * This implementation of einsum has the following limitations:
         *
         * - Does not support >2 input tensors.
         * - Does not support duplicate axes for any given input tensor. E.g., equation
         *   'ii->' is not supported.
         * - The `...` notation is not supported.
         *
         * @param equation a string describing the contraction, in the same format as
         * [numpy.einsum](https://numpy.org/doc/stable/reference/generated/numpy.einsum.html).
         * @param tensors the input(s) to contract (each one a Tensor), whose shapes
         *     should be consistent with equation.
         * @returns The output tensor.
         *
         * @doc {heading: 'Tensors', subheading: 'Matrices'}
         */
        function einsum_(equation, ...tensors) {
            const $tensors = tensors.map((t, i) => (0,
                _tensor_util_env.convertToTensor)(t, `tensors${i}`, 'einsum'));
            const attrs = {
                equation
            };
            return _engine.ENGINE.runKernel(_kernel_names.Einsum, $tensors, attrs);
        }
        const einsum = (0,
            _operation.op)({
                einsum_
            });
        exports.einsum = einsum;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    275: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.elu = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes exponential linear element-wise: `x > 0 ? x : (e ^ x) - 1`.
         *
         * ```js
         * const x = tf.tensor1d([-1, 1, -3, 2]);
         *
         * x.elu().print();  // or tf.elu(x)
         * ```
         * @param x The input tensor.
         *
         * @doc {heading: 'Operations', subheading: 'Basic math'}
         */
        function elu_(x) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'elu', 'float32');
            const inputs = {
                x: $x
            };
            return _engine.ENGINE.runKernel(_kernel_names.Elu, inputs);
        }
        const elu = (0,
            _operation.op)({
                elu_
            });
        exports.elu = elu;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    276: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.equal = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util = require("../tensor_util");
        var _tensor_util_env = require("../tensor_util_env");
        var _broadcast_util = require("./broadcast_util");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Returns the truth value of (a == b) element-wise. Supports broadcasting.
         *
         * ```js
         * const a = tf.tensor1d([1, 2, 3]);
         * const b = tf.tensor1d([2, 2, 2]);
         *
         * a.equal(b).print();
         * ```
         *
         * @param a The first input tensor.
         * @param b The second input tensor. Must have the same dtype as `a`.
         *
         * @doc {heading: 'Operations', subheading: 'Logical'}
         */
        function equal_(a, b) {
            let $a = (0,
                _tensor_util_env.convertToTensor)(a, 'a', 'equal', 'string_or_numeric');
            let $b = (0,
                _tensor_util_env.convertToTensor)(b, 'b', 'equal', 'string_or_numeric');
            [$a, $b] = (0,
                _tensor_util.makeTypesMatch)($a, $b);
            (0,
                _broadcast_util.assertAndGetBroadcastShape)($a.shape, $b.shape);
            const inputs = {
                a: $a,
                b: $b
            };
            return _engine.ENGINE.runKernel(_kernel_names.Equal, inputs);
        }
        const equal = (0,
            _operation.op)({
                equal_
            });
        exports.equal = equal;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util": 503,
        "../tensor_util_env": 504,
        "./broadcast_util": 233,
        "./operation": 372
    }],
    277: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.erf = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var util = _interopRequireWildcard(require("../util"));
        var _cast = require("./cast");
        var _operation = require("./operation");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes Gauss error function of the input `tf.Tensor` element-wise:
         * `erf(x)`
         *
         * ```js
         * const x = tf.tensor1d([0, .1, -.1, .7]);
         *
         * x.erf().print(); // or tf.erf(x);
         * ```
         * @param x The input tensor.
         *
         * @doc {heading: 'Operations', subheading: 'Basic math'}
         */
        function erf_(x) {
            let $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'erf');
            util.assert($x.dtype === 'int32' || $x.dtype === 'float32', () => 'Input dtype must be `int32` or `float32`.');
            if ($x.dtype === 'int32') {
                $x = (0,
                    _cast.cast)($x, 'float32');
            }
            const inputs = {
                x: $x
            };
            return _engine.ENGINE.runKernel(_kernel_names.Erf, inputs);
        }
        const erf = (0,
            _operation.op)({
                erf_
            });
        exports.erf = erf;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "../util": 509,
        "./cast": 236,
        "./operation": 372
    }],
    278: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.ERF_P = exports.ERF_A5 = exports.ERF_A4 = exports.ERF_A3 = exports.ERF_A2 = exports.ERF_A1 = void 0;
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        const ERF_P = 0.3275911;
        exports.ERF_P = ERF_P;
        const ERF_A1 = 0.254829592;
        exports.ERF_A1 = ERF_A1;
        const ERF_A2 = -0.284496736;
        exports.ERF_A2 = ERF_A2;
        const ERF_A3 = 1.421413741;
        exports.ERF_A3 = ERF_A3;
        const ERF_A4 = -1.453152027;
        exports.ERF_A4 = ERF_A4;
        const ERF_A5 = 1.061405429;
        exports.ERF_A5 = ERF_A5;

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

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.euclideanNorm = void 0;
        var _norm = require("./norm");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2022 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes the Euclidean norm of scalar, vectors, and matrices.
         *
         * ```js
         * const x = tf.tensor1d([1, 2, 3, 4]);
         *
         * x.euclideanNorm().print();  // or tf.euclideanNorm(x)
         * ```
         *
         * @param x The input array.
         * @param axis Optional. If axis is null (the default), the input is
         * considered a vector and a single vector norm is computed over the entire
         * set of values in the Tensor, i.e. euclideanNorm(x) is equivalent
         * to euclideanNorm(x.reshape([-1])). If axis is an integer, the input
         * is considered a batch of vectors, and axis determines the axis in x
         * over which to compute vector norms. If axis is a 2-tuple of integer it is
         * considered a batch of matrices and axis determines the axes in NDArray
         * over which to compute a matrix norm.
         * @param keepDims Optional. If true, the norm has the same dimensionality
         * as the input.
         *
         * @doc {heading: 'Operations', subheading: 'Matrices'}
         */
        function euclideanNorm_(x, axis = null, keepDims = false) {
            return (0,
                _norm.norm)(x, 'euclidean', axis, keepDims);
        }
        const euclideanNorm = (0,
            _operation.op)({
                euclideanNorm_
            });
        exports.euclideanNorm = euclideanNorm;

    }
        , {
        "./norm": 367,
        "./operation": 372
    }],
    280: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.exp = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes exponential of the input `tf.Tensor` element-wise. `e ^ x`
         *
         * ```js
         * const x = tf.tensor1d([1, 2, -3]);
         *
         * x.exp().print();  // or tf.exp(x)
         * ```
         * @param x The input tensor.
         *
         * @doc {heading: 'Operations', subheading: 'Basic math'}
         */
        function exp_(x) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'exp');
            const inputs = {
                x: $x
            };
            return _engine.ENGINE.runKernel(_kernel_names.Exp, inputs);
        }
        const exp = (0,
            _operation.op)({
                exp_
            });
        exports.exp = exp;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    281: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.expandDims = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var util = _interopRequireWildcard(require("../util"));
        var _operation = require("./operation");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Returns a `tf.Tensor` that has expanded rank, by inserting a dimension
         * into the tensor's shape.
         *
         * ```js
         * const x = tf.tensor1d([1, 2, 3, 4]);
         * const axis = 1;
         * x.expandDims(axis).print();
         * ```
         *
         * @param x The input tensor whose dimensions are to be expanded.
         * @param axis The dimension index at which to insert shape of `1`. Defaults
         *     to 0 (the first dimension).
         *
         * @doc {heading: 'Tensors', subheading: 'Transformations'}
         */
        function expandDims_(x, axis = 0) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'expandDims', 'string_or_numeric');
            util.assert(axis <= $x.rank, () => 'Axis must be <= rank of the tensor');
            const inputs = {
                input: $x
            };
            const attrs = {
                dim: axis
            };
            return _engine.ENGINE.runKernel(_kernel_names.ExpandDims, inputs, attrs);
        }
        const expandDims = (0,
            _operation.op)({
                expandDims_
            });
        exports.expandDims = expandDims;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "../util": 509,
        "./operation": 372
    }],
    282: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.expm1 = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes exponential of the input `tf.Tensor` minus one element-wise.
         * `e ^ x - 1`
         *
         * ```js
         * const x = tf.tensor1d([1, 2, -3]);
         *
         * x.expm1().print();  // or tf.expm1(x)
         * ```
         * @param x The input tensor.
         *
         * @doc {heading: 'Operations', subheading: 'Basic math'}
         */
        function expm1_(x) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'expm1');
            const inputs = {
                x: $x
            };
            return _engine.ENGINE.runKernel(_kernel_names.Expm1, inputs);
        }
        const expm1 = (0,
            _operation.op)({
                expm1_
            });
        exports.expm1 = expm1;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    283: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.eye = void 0;
        var _buffer = require("./buffer");
        var _expand_dims = require("./expand_dims");
        var _operation = require("./operation");
        var _reshape = require("./reshape");
        var _tile = require("./tile");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Create an identity matrix.
         *
         * @param numRows Number of rows.
         * @param numColumns Number of columns. Defaults to `numRows`.
         * @param batchShape If provided, will add the batch shape to the beginning
         *   of the shape of the returned `tf.Tensor` by repeating the identity
         *   matrix.
         * @param dtype Data type.
         * @returns Identity matrix of the specified size and data type, possibly
         *   with batch repetition if `batchShape` is specified.
         *
         * @doc {heading: 'Tensors', subheading: 'Creation'}
         */
        function eye_(numRows, numColumns, batchShape, dtype = 'float32') {
            if (numColumns == null) {
                numColumns = numRows;
            }
            const buff = (0,
                _buffer.buffer)([numRows, numColumns], dtype);
            const n = numRows <= numColumns ? numRows : numColumns;
            for (let i = 0; i < n; ++i) {
                buff.set(1, i, i);
            }
            const out = (0,
                _reshape.reshape)(buff.toTensor(), [numRows, numColumns]);
            if (batchShape == null) {
                return out;
            } else {
                if (batchShape.length === 1) {
                    return (0,
                        _tile.tile)((0,
                            _expand_dims.expandDims)(out, 0), [batchShape[0], 1, 1]);
                } else if (batchShape.length === 2) {
                    // tslint:disable-next-line:no-unnecessary-type-assertion
                    return (0,
                        _tile.tile)((0,
                            _expand_dims.expandDims)((0,
                                _expand_dims.expandDims)(out, 0), 0), [batchShape[0], batchShape[1], 1, 1]);
                } else if (batchShape.length === 3) {
                    // tslint:disable-next-line:no-unnecessary-type-assertion
                    return (0,
                        _tile.tile)((0,
                            _expand_dims.expandDims)((0,
                                _expand_dims.expandDims)((0,
                                    _expand_dims.expandDims)(out, 0), 0), 0), [batchShape[0], batchShape[1], batchShape[2], 1, 1]);
                } else {
                    throw new Error(`eye() currently supports only 1D and 2D ` + // tslint:disable-next-line:no-any
                        `batchShapes, but received ${batchShape.length}D.`);
                }
            }
        }
        const eye = (0,
            _operation.op)({
                eye_
            });
        exports.eye = eye;

    }
        , {
        "./buffer": 235,
        "./expand_dims": 281,
        "./operation": 372,
        "./reshape": 402,
        "./tile": 475
    }],
    284: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.fill = fill;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _util_base = require("../util_base");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Creates a `tf.Tensor` filled with a scalar value.
         *
         * ```js
         * tf.fill([2, 2], 4).print();
         * ```
         *
         * @param shape An array of integers defining the output tensor shape.
         * @param value The scalar value to fill the tensor with.
         * @param dtype The type of an element in the resulting tensor. Defaults to
         * 'float'.
         *
         * @doc {heading: 'Tensors', subheading: 'Creation'}
         */
        function fill(shape, value, dtype) {
            (0,
                _util_base.assertNonNegativeIntegerDimensions)(shape);
            const attrs = {
                shape,
                value,
                dtype
            };
            return _engine.ENGINE.runKernel(_kernel_names.Fill, {}, attrs);
        }

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../util_base": 510
    }],
    285: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.floor = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes floor of input `tf.Tensor` element-wise: `floor(x)`.
         *
         * ```js
         * const x = tf.tensor1d([.6, 1.1, -3.3]);
         *
         * x.floor().print();  // or tf.floor(x)
         * ```
         * @param x The input tensor.
         *
         * @doc {heading: 'Operations', subheading: 'Basic math'}
         */
        function floor_(x) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'floor', 'float32');
            const inputs = {
                x: $x
            };
            return _engine.ENGINE.runKernel(_kernel_names.Floor, inputs);
        }
        const floor = (0,
            _operation.op)({
                floor_
            });
        exports.floor = floor;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    286: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.floorDiv = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util = require("../tensor_util");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Divides two `tf.Tensor`s element-wise, A / B. Supports broadcasting.
         * The result is rounded with floor function.
         *
         *
         * ```js
         * const a = tf.tensor1d([1, 4, 9, 16]);
         * const b = tf.tensor1d([1, 2, 3, 4]);
         *
         * a.floorDiv(b).print();  // or tf.div(a, b)
         * ```
         *
         * ```js
         * // Broadcast div a with b.
         * const a = tf.tensor1d([2, 4, 6, 8]);
         * const b = tf.scalar(2);
         *
         * a.floorDiv(b).print();  // or tf.floorDiv(a, b)
         * ```
         *
         * @param a The first tensor as the numerator.
         * @param b The second tensor as the denominator. Must have the same dtype as
         * `a`.
         *
         * @doc {heading: 'Operations', subheading: 'Arithmetic'}
         */
        function floorDiv_(a, b) {
            let $a = (0,
                _tensor_util_env.convertToTensor)(a, 'a', 'floorDiv');
            let $b = (0,
                _tensor_util_env.convertToTensor)(b, 'b', 'floorDiv');
            [$a, $b] = (0,
                _tensor_util.makeTypesMatch)($a, $b);
            const inputs = {
                a: $a,
                b: $b
            };
            return _engine.ENGINE.runKernel(_kernel_names.FloorDiv, inputs);
        }
        const floorDiv = (0,
            _operation.op)({
                floorDiv_
            });
        exports.floorDiv = floorDiv;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util": 503,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    287: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.conv2d = void 0;
        var _engine = require("../../engine");
        var _gradients = require("../../gradients");
        var _kernel_names = require("../../kernel_names");
        var _tensor_util = require("../../tensor_util");
        var _tensor_util_env = require("../../tensor_util_env");
        var util = _interopRequireWildcard(require("../../util"));
        var _add = require("../add");
        var broadcast_util = _interopRequireWildcard(require("../broadcast_util"));
        var _conv2d = require("../conv2d");
        var _conv2d_backprop_filter = require("../conv2d_backprop_filter");
        var _conv2d_backprop_input = require("../conv2d_backprop_input");
        var conv_util = _interopRequireWildcard(require("../conv_util"));
        var _fused_util = require("../fused_util");
        var _operation = require("../operation");
        var _reshape = require("../reshape");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2019 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes a 2D convolution over the input x, optionally fused with adding a
         * bias and applying an activation.
         *
         * ```js
         * const inputDepth = 2;
         * const inShape = [2, 2, 2, inputDepth];
         * const outputDepth = 2;
         * const fSize = 1;
         * const pad = 0;
         * const strides = 1;
         *
         * const x = tf.tensor4d( [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
         * 16], inShape);
         * const w = tf.tensor4d([-1, 1, -2, 0.5], [fSize, fSize, inputDepth,
         * outputDepth]);
         *
         * tf.fused.conv2d({ x, filter: w, strides, pad, dataFormat: 'NHWC',
         * dilations: [1, 1], bias: tf.scalar(5), activation: 'relu' }).print();
         * ```
         *
         * @param obj An object with the following properties:
         * @param x The input tensor, of rank 4 or rank 3, of shape
         *     `[batch, height, width, inChannels]`. If rank 3, batch of 1 is
         * assumed.
         * @param filter The filter, rank 4, of shape
         *     `[filterHeight, filterWidth, inDepth, outDepth]`.
         * @param strides The strides of the convolution: `[strideHeight,
         * strideWidth]`.
         * @param pad The type of padding algorithm.
         *   - `same` and stride 1: output will be of same size as input,
         *       regardless of filter size.
         *   - `valid` output will be smaller than input if filter is larger
         *       than 1x1.
         *   - For more info, see this guide:
         *     [https://www.tensorflow.org/api_docs/python/tf/nn/convolution](
         *          https://www.tensorflow.org/api_docs/python/tf/nn/convolution)
         * @param dataFormat An optional string from: "NHWC", "NCHW". Defaults to
         *     "NHWC". Specify the data format of the input and output data. With the
         *     default format "NHWC", the data is stored in the order of: [batch,
         *     height, width, channels]. Only "NHWC" is currently supported.
         * @param dilations The dilation rates: `[dilationHeight, dilationWidth]`
         *     in which we sample input values across the height and width dimensions
         *     in atrous convolution. Defaults to `[1, 1]`. If `dilations` is a single
         *     number, then `dilationHeight == dilationWidth`. If it is greater than
         *     1, then all values of `strides` must be 1.
         * @param dimRoundingMode A string from: 'ceil', 'round', 'floor'. If none is
         *     provided, it will default to truncate.
         * @param bias Tensor to be added to the result.
         * @param activation Name of activation kernel (defaults to `linear`) to be
         *     applied
         *      after biasAdd.
         * @param preluActivationWeights Tensor of prelu weights to be applied as part
         *     of a `prelu` activation, typically the same shape as `x`.
         * @param leakyreluAlpha Optional. Alpha to be applied as part of a `leakyrelu`
         *     activation.
         */
        function fusedConv2d_({ x, filter, strides, pad, dataFormat = 'NHWC', dilations = [1, 1], dimRoundingMode, bias, activation = 'linear', preluActivationWeights, leakyreluAlpha }) {
            activation = activation || 'linear';
            if ((0,
                _fused_util.shouldFuse)(_engine.ENGINE.state.gradientDepth, activation) === false) {
                // TODO: Transpose bias and preluActivationWeights properly for NCHW
                // format before computation.
                util.assert(dataFormat === 'NHWC', () => `Error in fused conv2d: got dataFormat of ${dataFormat} but ` + `only NHWC is currently supported for the case of gradient depth ` + `is 0 and the activation is not linear.`);
                let result = (0,
                    _conv2d.conv2d)(x, filter, strides, pad, dataFormat, dilations, dimRoundingMode);
                if (bias != null) {
                    result = (0,
                        _add.add)(result, bias);
                }
                return (0,
                    _fused_util.applyActivation)(result, activation, preluActivationWeights, leakyreluAlpha);
            }
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'conv2d', 'float32');
            const $filter = (0,
                _tensor_util_env.convertToTensor)(filter, 'filter', 'conv2d', 'float32');
            let x4D = $x;
            let reshapedTo4D = false;
            if ($x.rank === 3) {
                reshapedTo4D = true;
                x4D = (0,
                    _reshape.reshape)($x, [1, $x.shape[0], $x.shape[1], $x.shape[2]]);
            }
            util.assert(x4D.rank === 4, () => `Error in fused conv2d: input must be rank 4, but got rank ` + `${x4D.rank}.`);
            util.assert($filter.rank === 4, () => `Error in fused conv2d: filter must be rank 4, but got rank ` + `${$filter.rank}.`);
            conv_util.checkPadOnDimRoundingMode('fused conv2d', pad, dimRoundingMode);
            const inputChannels = dataFormat === 'NHWC' ? x4D.shape[3] : x4D.shape[1];
            util.assert($filter.shape[2] === inputChannels, () => `Error in conv2d: depth of input (${inputChannels}) must match ` + `input depth for filter ${$filter.shape[2]}.`);
            util.assert(conv_util.eitherStridesOrDilationsAreOne(strides, dilations), () => 'Error in conv2D: Either strides or dilations must be 1. ' + `Got strides ${strides} and dilations '${dilations}'`);
            const convInfo = conv_util.computeConv2DInfo(x4D.shape, $filter.shape, strides, dilations, pad, dimRoundingMode);
            let $bias;
            if (bias != null) {
                $bias = (0,
                    _tensor_util_env.convertToTensor)(bias, 'bias', 'fused conv2d');
                [$bias] = (0,
                    _tensor_util.makeTypesMatch)($bias, $x);
                // According to TensorFlow, the bias is supposed be a 1-D tensor or a
                // scalar.
                //
                // 3-D or 4-D bias is not disabled for NHWC format, because they are
                // currently being used in some cases. For examplem in our code base,
                // https://github.com/tensorflow/tfjs/blob/b53bd47e880367ae57493f0ea628abaf08db2d5d/tfjs-core/src/ops/fused/fused_conv2d_test.ts#L1972.
                if (dataFormat === 'NHWC') {
                    broadcast_util.assertAndGetBroadcastShape(convInfo.outShape, $bias.shape);
                } else {
                    util.assert($bias.shape.length <= 1, () => `Error in fused conv2d: only supports scalar or 1-D Tensor ` + `bias for NCHW format but got the bias of ` + `rank-${$bias.shape.length}.`);
                    util.assert($bias.shape.length === 0 || $bias.shape[0] === convInfo.outChannels || $bias.shape[0] === 1, () => `Error in fused conv2d: bias shape (${$bias.shape}) is not ` + `compatible with the number of output channels ` + `(${convInfo.outChannels})`);
                }
            }
            let $preluActivationWeights;
            if (preluActivationWeights != null) {
                // PReLU's activation weights could be a scalar, a 1-D tensor or a 3-D
                // tensor.
                const alphaShape = preluActivationWeights.shape;
                util.assert(alphaShape.length <= 1 || alphaShape.length === 3, () => `Error in fused conv2d: only supports scalar, 1-D Tensor or ` + `3-D Tensor PReLU activation weights but got a tensor of ` + `rank-${alphaShape.length}.`);
                if (alphaShape.length === 1) {
                    // Whether the data format is NCHW or NHWC, the 1-D PReLU activation
                    // weights tensor should be aligned with the output channels of conv2d
                    // result.
                    util.assert(alphaShape[0] === 1 || alphaShape[0] === convInfo.outChannels, () => `Error in fused conv2d: PReLU activation weights ` + `(${alphaShape}) is not compatible with the number of output ` + `channels (${convInfo.outChannels}).`);
                } else if (alphaShape.length === 3) {
                    // Whether the data format is NCHW or NHWC, the PReLU activation weights
                    // tensor should has the compatible shape with the result of conv2d.
                    try {
                        broadcast_util.assertAndGetBroadcastShape(alphaShape, convInfo.outShape);
                    } catch (e) {
                        const errMsg = `Error in fused conv2d: PReLU activation weights (${alphaShape}) ` + `is not compatible with the output shape of the conv2d ` + `(${convInfo.outShape}).`;
                        throw Error(errMsg);
                    }
                }
                $preluActivationWeights = (0,
                    _tensor_util_env.convertToTensor)(preluActivationWeights, 'prelu weights', 'fused conv2d');
            }
            const grad = (dy, saved) => {
                util.assert(dataFormat === 'NHWC', () => `Error in gradient of fused conv2D: got dataFormat of ${dataFormat} but only NHWC is currently supported.`);
                const [$filter, x4D, y, $bias] = saved;
                const dyActivation = (0,
                    _fused_util.getFusedDyActivation)(dy, y, activation);
                util.assert(conv_util.tupleValuesAreOne(dilations), () => 'Error in gradient of fused conv2D: ' + `dilation rates greater than 1 ` + `are not yet supported in gradients. Got dilations '${dilations}'`);
                const xDer = (0,
                    _conv2d_backprop_input.conv2DBackpropInput)(x4D.shape, dyActivation, $filter, strides, pad);
                const filterDer = (0,
                    _conv2d_backprop_filter.conv2DBackpropFilter)(x4D, dyActivation, $filter.shape, strides, pad);
                const der = [xDer, filterDer];
                if ($bias != null) {
                    const biasDer = (0,
                        _fused_util.getFusedBiasGradient)($bias, dyActivation);
                    der.push(biasDer);
                }
                return der;
            }
                ;
            const inputs = {
                x: x4D,
                filter: $filter,
                bias: $bias,
                preluActivationWeights: $preluActivationWeights
            };
            const attrs = {
                strides,
                pad,
                dataFormat,
                dilations,
                dimRoundingMode,
                activation,
                leakyreluAlpha
            };
            // Depending on the the params passed in we will have different number of
            // inputs and thus a a different number of elements in the gradient.
            if (bias == null) {
                const customOp = (0,
                    _gradients.customGrad)((x4D, filter, save) => {
                        let res = // tslint:disable-next-line: no-unnecessary-type-assertion
                            _engine.ENGINE.runKernel(_kernel_names.FusedConv2D, inputs, attrs);
                        save([filter, x4D, res]);
                        if (reshapedTo4D) {
                            // tslint:disable-next-line: no-unnecessary-type-assertion
                            res = (0,
                                _reshape.reshape)(res, [res.shape[1], res.shape[2], res.shape[3]]);
                        }
                        return {
                            value: res,
                            gradFunc: grad
                        };
                    }
                    );
                return customOp(x4D, $filter);
            } else {
                const customOpWithBias = (0,
                    _gradients.customGrad)((x4D, filter, bias, save) => {
                        let res = _engine.ENGINE.runKernel(_kernel_names.FusedConv2D, inputs, attrs);
                        save([filter, x4D, res, bias]);
                        if (reshapedTo4D) {
                            // tslint:disable-next-line: no-unnecessary-type-assertion
                            res = (0,
                                _reshape.reshape)(res, [res.shape[1], res.shape[2], res.shape[3]]);
                        }
                        return {
                            value: res,
                            gradFunc: grad
                        };
                    }
                    );
                return customOpWithBias(x4D, $filter, $bias);
            }
        }
        const conv2d = (0,
            _operation.op)({
                fusedConv2d_
            });
        exports.conv2d = conv2d;

    }
        , {
        "../../engine": 77,
        "../../gradients": 82,
        "../../kernel_names": 198,
        "../../tensor_util": 503,
        "../../tensor_util_env": 504,
        "../../util": 509,
        "../add": 205,
        "../broadcast_util": 233,
        "../conv2d": 249,
        "../conv2d_backprop_filter": 250,
        "../conv2d_backprop_input": 251,
        "../conv_util": 257,
        "../fused_util": 292,
        "../operation": 372,
        "../reshape": 402
    }],
    288: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.depthwiseConv2d = void 0;
        var _engine = require("../../engine");
        var _gradients = require("../../gradients");
        var _kernel_names = require("../../kernel_names");
        var _tensor_util = require("../../tensor_util");
        var _tensor_util_env = require("../../tensor_util_env");
        var util = _interopRequireWildcard(require("../../util"));
        var _add = require("../add");
        var broadcast_util = _interopRequireWildcard(require("../broadcast_util"));
        var conv_util = _interopRequireWildcard(require("../conv_util"));
        var _depthwise_conv2d = require("../depthwise_conv2d");
        var _depthwise_conv2d_native_backprop_filter = require("../depthwise_conv2d_native_backprop_filter");
        var _depthwise_conv2d_native_backprop_input = require("../depthwise_conv2d_native_backprop_input");
        var _fused_util = require("../fused_util");
        var _operation = require("../operation");
        var _reshape = require("../reshape");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2019 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes depthwise 2D convolution, optionally fused with adding a
         * bias and applying an activation.
         *
         * Given a 4D `input` array and a `filter` array of shape
         * `[filterHeight, filterWidth, inChannels, channelMultiplier]` containing
         * `inChannels` convolutional filters of depth 1, this op applies a
         * different filter to each input channel (expanding from 1 channel to
         * `channelMultiplier` channels for each), then concatenates the results
         * together. The output has `inChannels * channelMultiplier` channels.
         *
         * See
         * [https://www.tensorflow.org/api_docs/python/tf/nn/depthwise_conv2d](
         *     https://www.tensorflow.org/api_docs/python/tf/nn/depthwise_conv2d)
         * for more details.
         *
         * @param obj An object with the following properties:
         * @param x The input tensor, of rank 4 or rank 3, of shape
         *     `[batch, height, width, inChannels]`. If rank 3, batch of 1 is
         * assumed.
         * @param filter The filter tensor, rank 4, of shape
         *     `[filterHeight, filterWidth, inChannels, channelMultiplier]`.
         * @param strides The strides of the convolution: `[strideHeight,
         * strideWidth]`. If strides is a single number, then `strideHeight ==
         * strideWidth`.
         * @param pad The type of padding algorithm.
         *   - `same` and stride 1: output will be of same size as input,
         *       regardless of filter size.
         *   - `valid`: output will be smaller than input if filter is larger
         *       than 1x1.
         *   - For more info, see this guide:
         *     [https://www.tensorflow.org/api_docs/python/tf/nn/convolution](
         *          https://www.tensorflow.org/api_docs/python/tf/nn/convolution)
         * @param dilations The dilation rates: `[dilationHeight, dilationWidth]`
         *     in which we sample input values across the height and width dimensions
         *     in atrous convolution. Defaults to `[1, 1]`. If `rate` is a single
         *     number, then `dilationHeight == dilationWidth`. If it is greater than
         *     1, then all values of `strides` must be 1.
         * @param dataFormat: An optional string from: "NHWC", "NCHW". Defaults to
         *     "NHWC". Specify the data format of the input and output data. With the
         *     default format "NHWC", the data is stored in the order of: [batch,
         *     height, width, channels]. Only "NHWC" is currently supported.
         * @param dimRoundingMode A string from: 'ceil', 'round', 'floor'. If none is
         *     provided, it will default to truncate.
         * @param bias Tensor to be added to the result.
         * @param activation Name of activation kernel (defaults to `linear`).
         * @param preluActivationWeights Tensor of prelu weights to be applied as part
         *     of a `prelu` activation, typically the same shape as `x`.
         * @param leakyreluAlpha Optional. Alpha to be applied as part of a `leakyrelu`
         *     activation.
         */
        function fusedDepthwiseConv2d_({ x, filter, strides, pad, dataFormat = 'NHWC', dilations = [1, 1], dimRoundingMode, bias, activation = 'linear', preluActivationWeights, leakyreluAlpha }) {
            if ((0,
                _fused_util.shouldFuse)(_engine.ENGINE.state.gradientDepth, activation) === false) {
                let result = (0,
                    _depthwise_conv2d.depthwiseConv2d)(x, filter, strides, pad, dataFormat, dilations, dimRoundingMode);
                if (bias != null) {
                    result = (0,
                        _add.add)(result, bias);
                }
                return (0,
                    _fused_util.applyActivation)(result, activation, preluActivationWeights, leakyreluAlpha);
            }
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'depthwiseConv2d', 'float32');
            const $filter = (0,
                _tensor_util_env.convertToTensor)(filter, 'filter', 'depthwiseConv2d', 'float32');
            let x4D = $x;
            let reshapedTo4D = false;
            if ($x.rank === 3) {
                reshapedTo4D = true;
                x4D = (0,
                    _reshape.reshape)($x, [1, $x.shape[0], $x.shape[1], $x.shape[2]]);
            }
            util.assert(x4D.rank === 4, () => `Error in fused depthwiseConv2d: input must be rank 4, but got ` + `rank ${x4D.rank}.`);
            util.assert($filter.rank === 4, () => `Error in fused depthwiseConv2d: filter must be rank 4, ` + `but got rank ${$filter.rank}.`);
            util.assert(x4D.shape[3] === $filter.shape[2], () => `Error in fused depthwiseConv2d: number of input channels ` + `(${x4D.shape[3]}) must match the inChannels dimension in ` + `filter ${$filter.shape[2]}.`);
            if (dilations == null) {
                dilations = [1, 1];
            }
            util.assert(conv_util.eitherStridesOrDilationsAreOne(strides, dilations), () => 'Error in fused depthwiseConv2d: Either strides or dilations must ' + `be 1. Got strides ${strides} and dilations '${dilations}'`);
            conv_util.checkPadOnDimRoundingMode('fused depthwiseConv2d', pad, dimRoundingMode);
            const convInfo = conv_util.computeConv2DInfo(x4D.shape, $filter.shape, strides, dilations, pad, dimRoundingMode, true /* depthwise */
            );
            let $bias;
            if (bias != null) {
                $bias = (0,
                    _tensor_util_env.convertToTensor)(bias, 'bias', 'fused conv2d');
                [$bias] = (0,
                    _tensor_util.makeTypesMatch)($bias, $x);
                broadcast_util.assertAndGetBroadcastShape(convInfo.outShape, $bias.shape);
            }
            let $preluActivationWeights;
            if (preluActivationWeights != null) {
                $preluActivationWeights = (0,
                    _tensor_util_env.convertToTensor)(preluActivationWeights, 'prelu weights', 'fused depthwiseConv2d');
            }
            const grad = (dy, saved) => {
                util.assert(conv_util.tupleValuesAreOne(dilations), () => 'Error in gradient of fused depthwiseConv2d: dilation rates ' + `greater than 1 are not yet supported. Got dilations ` + `'${dilations}'`);
                const [$filter, x4D, y, bias] = saved;
                const dyActivation = (0,
                    _fused_util.getFusedDyActivation)(dy, y, activation);
                const xDer = (0,
                    _depthwise_conv2d_native_backprop_input.depthwiseConv2dNativeBackpropInput)(x4D.shape, dyActivation, $filter, strides, pad, dilations, dimRoundingMode);
                const filterDer = (0,
                    _depthwise_conv2d_native_backprop_filter.depthwiseConv2dNativeBackpropFilter)(x4D, dyActivation, $filter.shape, strides, pad, dilations, dimRoundingMode);
                if (bias != null) {
                    const biasDer = (0,
                        _fused_util.getFusedBiasGradient)($bias, dyActivation);
                    return [xDer, filterDer, biasDer];
                }
                return [xDer, filterDer];
            }
                ;
            const inputs = {
                x: x4D,
                filter: $filter,
                bias: $bias,
                preluActivationWeights: $preluActivationWeights
            };
            const attrs = {
                strides,
                pad,
                dataFormat,
                dilations,
                dimRoundingMode,
                activation,
                leakyreluAlpha
            };
            // Depending on the the params passed in we will have different number of
            // inputs and thus a a different number of elements in the gradient.
            if (bias == null) {
                const customOp = (0,
                    _gradients.customGrad)((x4D, filter, save) => {
                        // tslint:disable-next-line: no-unnecessary-type-assertion
                        let res = _engine.ENGINE.runKernel(_kernel_names.FusedDepthwiseConv2D, inputs, attrs);
                        save([filter, x4D, res]);
                        if (reshapedTo4D) {
                            // tslint:disable-next-line: no-unnecessary-type-assertion
                            res = (0,
                                _reshape.reshape)(res, [res.shape[1], res.shape[2], res.shape[3]]);
                        }
                        return {
                            value: res,
                            gradFunc: grad
                        };
                    }
                    );
                return customOp(x4D, $filter);
            } else {
                const customOpWithBias = (0,
                    _gradients.customGrad)((x4D, filter, bias, save) => {
                        // tslint:disable-next-line: no-unnecessary-type-assertion
                        let res = _engine.ENGINE.runKernel(_kernel_names.FusedDepthwiseConv2D, inputs, attrs);
                        save([filter, x4D, res, bias]);
                        if (reshapedTo4D) {
                            // tslint:disable-next-line: no-unnecessary-type-assertion
                            res = (0,
                                _reshape.reshape)(res, [res.shape[1], res.shape[2], res.shape[3]]);
                        }
                        return {
                            value: res,
                            gradFunc: grad
                        };
                    }
                    );
                return customOpWithBias(x4D, $filter, $bias);
            }
        }
        const depthwiseConv2d = (0,
            _operation.op)({
                fusedDepthwiseConv2d_
            });
        exports.depthwiseConv2d = depthwiseConv2d;

    }
        , {
        "../../engine": 77,
        "../../gradients": 82,
        "../../kernel_names": 198,
        "../../tensor_util": 503,
        "../../tensor_util_env": 504,
        "../../util": 509,
        "../add": 205,
        "../broadcast_util": 233,
        "../conv_util": 257,
        "../depthwise_conv2d": 264,
        "../depthwise_conv2d_native_backprop_filter": 265,
        "../depthwise_conv2d_native_backprop_input": 266,
        "../fused_util": 292,
        "../operation": 372,
        "../reshape": 402
    }],
    289: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.matMul = void 0;
        var _engine = require("../../engine");
        var _gradients = require("../../gradients");
        var _kernel_names = require("../../kernel_names");
        var _tensor_util = require("../../tensor_util");
        var _tensor_util_env = require("../../tensor_util_env");
        var util = _interopRequireWildcard(require("../../util"));
        var _add = require("../add");
        var broadcast_util = _interopRequireWildcard(require("../broadcast_util"));
        var _fused_util = require("../fused_util");
        var _mat_mul = require("../mat_mul");
        var _operation = require("../operation");
        var _reshape = require("../reshape");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2019 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes the dot product of two matrices with optional activation and bias.
         *
         * ```js
         * const a = tf.tensor2d([-1, -2], [1, 2]);
         * const b = tf.tensor2d([1, 2, 3, 4], [2, 2]);
         * const bias = tf.tensor2d([1, 2], [1, 2]);
         *
         * tf.fused.matMul({a, b, bias, activation: 'relu'}).print();
         * ```
         *
         * @param obj An object with the following properties:
         * - `a` First matrix in dot product operation.
         * - `b` Second matrix in dot product operation.
         * - `transposeA` If true, `a` is transposed before multiplication.
         * - `transposeB` If true, `b` is transposed before multiplication.
         * - `bias` Matrix to be added to the result.
         * - `activation` Name of activation kernel (defaults to `linear`).
         * - `preluActivationWeights` Tensor of prelu weights.
         * - `leakyreluAlpha` Alpha of leakyrelu.
         */
        function fusedMatMul_({ a, b, transposeA = false, transposeB = false, bias, activation = 'linear', preluActivationWeights, leakyreluAlpha = 0.2 }) {
            if ((0,
                _fused_util.shouldFuse)(_engine.ENGINE.state.gradientDepth, activation) === false) {
                let result = (0,
                    _mat_mul.matMul)(a, b, transposeA, transposeB);
                if (bias != null) {
                    result = (0,
                        _add.add)(result, bias);
                }
                return (0,
                    _fused_util.applyActivation)(result, activation, preluActivationWeights, leakyreluAlpha);
            }
            let $a = (0,
                _tensor_util_env.convertToTensor)(a, 'a', 'fused matMul');
            let $b = (0,
                _tensor_util_env.convertToTensor)(b, 'b', 'fused matMul');
            [$a, $b] = (0,
                _tensor_util.makeTypesMatch)($a, $b);
            const innerShapeA = transposeA ? $a.shape[$a.rank - 2] : $a.shape[$a.rank - 1];
            const innerShapeB = transposeB ? $b.shape[$b.rank - 1] : $b.shape[$b.rank - 2];
            const outerShapeA = transposeA ? $a.shape[$a.rank - 1] : $a.shape[$a.rank - 2];
            const outerShapeB = transposeB ? $b.shape[$b.rank - 2] : $b.shape[$b.rank - 1];
            const outerDimsA = $a.shape.slice(0, -2);
            const outerDimsB = $b.shape.slice(0, -2);
            const batchDimA = util.sizeFromShape(outerDimsA);
            const batchDimB = util.sizeFromShape(outerDimsB);
            util.assert(innerShapeA === innerShapeB, () => `Error in fused matMul: inner shapes (${innerShapeA}) and (` + `${innerShapeB}) of Tensors with shapes ${$a.shape} and ` + `${$b.shape} and transposeA=${transposeA}` + ` and transposeB=${transposeB} must match.`);
            const outShapeOuterDims = broadcast_util.assertAndGetBroadcastShape($a.shape.slice(0, -2), $b.shape.slice(0, -2));
            const outShape = outShapeOuterDims.concat([outerShapeA, outerShapeB]);
            const a3D = transposeA ? (0,
                _reshape.reshape)($a, [batchDimA, innerShapeA, outerShapeA]) : (0,
                    _reshape.reshape)($a, [batchDimA, outerShapeA, innerShapeA]);
            const b3D = transposeB ? (0,
                _reshape.reshape)($b, [batchDimB, outerShapeB, innerShapeB]) : (0,
                    _reshape.reshape)($b, [batchDimB, innerShapeB, outerShapeB]);
            let $bias;
            if (bias != null) {
                $bias = (0,
                    _tensor_util_env.convertToTensor)(bias, 'bias', 'fused matMul');
                [$bias] = (0,
                    _tensor_util.makeTypesMatch)($bias, $a);
                broadcast_util.assertAndGetBroadcastShape(outShape, $bias.shape);
            }
            let $preluActivationWeights;
            if (preluActivationWeights != null) {
                $preluActivationWeights = (0,
                    _tensor_util_env.convertToTensor)(preluActivationWeights, 'prelu weights', 'fused matMul');
            }
            const grad = (dy, saved) => {
                const [a3D, b3D, y, $bias] = saved;
                // we reshape dy because the result of the forward is not
                // necessarily going to be a 3d tensor due to a reshape done at the end of
                // the customOp.
                const dyActivation = (0,
                    _fused_util.getFusedDyActivation)((0,
                        _reshape.reshape)(dy, y.shape), y, activation);
                let aDer;
                let bDer;
                if (!transposeA && !transposeB) {
                    aDer = (0,
                        _mat_mul.matMul)(dyActivation, b3D, false, true);
                    bDer = (0,
                        _mat_mul.matMul)(a3D, dyActivation, true, false);
                } else if (!transposeA && transposeB) {
                    aDer = (0,
                        _mat_mul.matMul)(dyActivation, b3D, false, false);
                    bDer = (0,
                        _mat_mul.matMul)(dyActivation, a3D, true, false);
                } else if (transposeA && !transposeB) {
                    aDer = (0,
                        _mat_mul.matMul)(b3D, dyActivation, false, true);
                    bDer = (0,
                        _mat_mul.matMul)(a3D, dyActivation, false, false);
                } else {
                    aDer = (0,
                        _mat_mul.matMul)(b3D, dyActivation, true, true);
                    bDer = (0,
                        _mat_mul.matMul)(dyActivation, a3D, true, true);
                }
                if (bias != null) {
                    const biasDer = (0,
                        _fused_util.getFusedBiasGradient)($bias, dyActivation);
                    return [aDer, bDer, biasDer];
                } else {
                    return [aDer, bDer];
                }
            }
                ;
            const inputs = {
                a: a3D,
                b: b3D,
                bias: $bias,
                preluActivationWeights: $preluActivationWeights
            };
            const attrs = {
                transposeA,
                transposeB,
                activation,
                leakyreluAlpha
            };
            // Depending on the the params passed in we will have different number of
            // inputs and thus a a different number of elements in the gradient.
            if (bias == null) {
                const customOp = (0,
                    _gradients.customGrad)((a3D, b3D, save) => {
                        const res = // tslint:disable-next-line: no-unnecessary-type-assertion
                            _engine.ENGINE.runKernel(_kernel_names._FusedMatMul, inputs, attrs);
                        save([a3D, b3D, res]);
                        return {
                            value: (0,
                                _reshape.reshape)(res, outShape),
                            gradFunc: grad
                        };
                    }
                    );
                return customOp(a3D, b3D);
            } else {
                const customOpWithBias = (0,
                    _gradients.customGrad)((a3D, b3D, $bias, save) => {
                        const res = // tslint:disable-next-line: no-unnecessary-type-assertion
                            _engine.ENGINE.runKernel(_kernel_names._FusedMatMul, inputs, attrs);
                        save([a3D, b3D, res, $bias]);
                        return {
                            value: (0,
                                _reshape.reshape)(res, outShape),
                            gradFunc: grad
                        };
                    }
                    );
                return customOpWithBias(a3D, b3D, $bias);
            }
        }
        const matMul = (0,
            _operation.op)({
                fusedMatMul_
            });
        exports.matMul = matMul;

    }
        , {
        "../../engine": 77,
        "../../gradients": 82,
        "../../kernel_names": 198,
        "../../tensor_util": 503,
        "../../tensor_util_env": 504,
        "../../util": 509,
        "../add": 205,
        "../broadcast_util": 233,
        "../fused_util": 292,
        "../mat_mul": 346,
        "../operation": 372,
        "../reshape": 402
    }],
    290: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        Object.defineProperty(exports, "conv2d", {
            enumerable: true,
            get: function () {
                return _conv2d.conv2d;
            }
        });
        Object.defineProperty(exports, "depthwiseConv2d", {
            enumerable: true,
            get: function () {
                return _depthwise_conv2d.depthwiseConv2d;
            }
        });
        Object.defineProperty(exports, "matMul", {
            enumerable: true,
            get: function () {
                return _mat_mul.matMul;
            }
        });
        var _conv2d = require("./fused/conv2d");
        var _depthwise_conv2d = require("./fused/depthwise_conv2d");
        var _mat_mul = require("./fused/mat_mul");

    }
        , {
        "./fused/conv2d": 287,
        "./fused/depthwise_conv2d": 288,
        "./fused/mat_mul": 289
    }],
    291: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });

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

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.applyActivation = applyActivation;
        exports.getFusedBiasGradient = getFusedBiasGradient;
        exports.getFusedDyActivation = getFusedDyActivation;
        exports.shouldFuse = void 0;
        var broadcast_util = _interopRequireWildcard(require("./broadcast_util"));
        var _elu = require("./elu");
        var _leaky_relu = require("./leaky_relu");
        var _mul = require("./mul");
        var _prelu = require("./prelu");
        var _relu = require("./relu");
        var _relu2 = require("./relu6");
        var _reshape = require("./reshape");
        var _sigmoid = require("./sigmoid");
        var _step = require("./step");
        var _sum = require("./sum");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2019 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        // Returns gradient for fused activation.
        function getFusedDyActivation(dy, y, activation) {
            if (activation == null || activation === 'linear') {
                return dy;
            }
            if (activation === 'relu') {
                return (0,
                    _mul.mul)(dy, (0,
                        _step.step)(y));
            }
            throw new Error(`Cannot compute gradient for fused activation ${activation}.`);
        }
        // Returns gradient for fused bias.
        function getFusedBiasGradient(bias, dyActivation) {
            let res = dyActivation;
            const reduceAxes = broadcast_util.getReductionAxes(bias.shape, dyActivation.shape);
            if (reduceAxes.length > 0) {
                res = (0,
                    _sum.sum)(res, reduceAxes);
            }
            return (0,
                _reshape.reshape)(res, bias.shape);
        }
        function applyActivation(x, activation, preluActivationWeights, leakyreluAlpha) {
            if (activation === 'linear') {
                return x;
            } else if (activation === 'relu') {
                return (0,
                    _relu.relu)(x);
            } else if (activation === 'elu') {
                return (0,
                    _elu.elu)(x);
            } else if (activation === 'relu6') {
                return (0,
                    _relu2.relu6)(x);
            } else if (activation === 'prelu') {
                return (0,
                    _prelu.prelu)(x, preluActivationWeights);
            } else if (activation === 'leakyrelu') {
                return (0,
                    _leaky_relu.leakyRelu)(x, leakyreluAlpha);
            } else if (activation === 'sigmoid') {
                return (0,
                    _sigmoid.sigmoid)(x);
            }
            throw new Error(`Unknown fused activation ${activation}.`);
        }
        // Whether we should call fused ops.
        const shouldFuse = (gradientDepth, activation) => {
            const gradientMode = gradientDepth > 0;
            return !gradientMode || activation === 'linear';
        };
        exports.shouldFuse = shouldFuse;

    }
        , {
        "./broadcast_util": 233,
        "./elu": 275,
        "./leaky_relu": 317,
        "./mul": 362,
        "./prelu": 383,
        "./relu": 400,
        "./relu6": 401,
        "./reshape": 402,
        "./sigmoid": 420,
        "./step": 458,
        "./sum": 464
    }],
    293: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.gather = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Gather slices from tensor `x`'s axis `axis` according to `indices`.
         *
         * ```js
         * const x = tf.tensor1d([1, 2, 3, 4]);
         * const indices = tf.tensor1d([1, 3, 3], 'int32');
         *
         * x.gather(indices).print();
         * ```
         *
         * ```js
         * const x = tf.tensor2d([1, 2, 3, 4], [2, 2]);
         * const indices = tf.tensor1d([1, 1, 0], 'int32');
         *
         * x.gather(indices).print();
         * ```
         * @param x The input tensor whose slices are to be gathered.
         * @param indices The indices of the values to extract.
         * @param axis The axis over which to select values. Defaults to 0.
         * @param batchDims Optional. The number of batch dimensions. It must be less
         *     than or equal to rank(indices). Defaults to 0.
         *     The output tensor will have shape of
         *     `x.shape[:axis] + indices.shape[batchDims:] + x.shape[axis + 1:]`
         *
         * @doc {heading: 'Tensors', subheading: 'Slicing and Joining'}
         */
        function gather_(x, indices, axis = 0, batchDims = 0) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'gather');
            const $indices = (0,
                _tensor_util_env.convertToTensor)(indices, 'indices', 'gather', 'int32');
            const inputs = {
                x: $x,
                indices: $indices
            };
            const attrs = {
                axis,
                batchDims
            };
            return _engine.ENGINE.runKernel(_kernel_names.GatherV2, inputs, attrs);
        }
        const gather = (0,
            _operation.op)({
                gather_
            });
        exports.gather = gather;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    294: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.gatherND = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Gather slices from input tensor into a Tensor with shape specified by
         * `indices`.
         *
         * `indices` is a K-dimensional integer tensor, best thought of as a
         * (K-1)-dimensional tensor of indices into input, where each element defines a
         * slice of input:
         * output[\\(i_0, ..., i_{K-2}\\)] = input[indices[\\(i_0, ..., i_{K-2}\\)]]
         *
         * Whereas in `tf.gather`, `indices` defines slices into the first dimension of
         * input, in `tf.gatherND`, `indices` defines slices into the first N dimensions
         * of input, where N = indices.shape[-1].
         *
         * The last dimension of indices can be at most the rank of input:
         * indices.shape[-1] <= input.rank
         *
         * The last dimension of `indices` corresponds to elements
         * (if indices.shape[-1] == input.rank) or slices
         * (if indices.shape[-1] < input.rank) along dimension indices.shape[-1] of
         * input.
         * The output tensor has shape
         * indices.shape[:-1] + input.shape[indices.shape[-1]:]
         *
         * Note that on CPU, if an out of bound index is found, an error is returned. On
         * GPU, if an out of bound index is found, a 0 is stored in the corresponding
         * output value.
         *
         * ```js
         * const indices = tf.tensor2d([0, 1, 1, 0], [2,2], 'int32');
         * const input = tf.tensor2d([9, 10, 11, 12], [2, 2]);
         * tf.gatherND(input, indices).print() // [10, 11]
         * ```
         *
         * @param x The tensor from which to gather values.
         * @param indices Index tensor, must be of type int32.
         *
         * @doc {heading: 'Operations', subheading: 'Slicing and Joining'}
         */
        function gatherND_(x, indices) {
            const $indices = (0,
                _tensor_util_env.convertToTensor)(indices, 'indices', 'gatherND', 'int32');
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'gatherND', 'string_or_numeric');
            const inputs = {
                params: $x,
                indices: $indices
            };
            return _engine.ENGINE.runKernel(_kernel_names.GatherNd, inputs);
        }
        const gatherND = (0,
            _operation.op)({
                gatherND_
            });
        exports.gatherND = gatherND;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    295: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.prepareAndValidate = prepareAndValidate;
        var _util = require("../util");
        /**
         * Validate gather nd inputs.
         *
         * @param tensor The tensor contains the source values.
         * @param indices The tensor contains the indices to slice the source.
         *
         * @returns [resultShape, numUpdates, sliceSize, strides]
         */
        function prepareAndValidate(tensor, indices) {
            const tensorRank = tensor.shape.length;
            const indicesRank = indices.shape.length;
            if (tensorRank < 1) {
                throw new Error('tf.gatherND() expects the input to be rank 1 or higher,' + ` but the rank was ${tensorRank}.`);
            }
            if (indicesRank < 1) {
                throw new Error('tf.gatherND() expects the indices to be rank 1 or higher,' + ` but the rank was ${indicesRank}.`);
            }
            if (indices.dtype !== 'int32') {
                throw new Error('tf.gatherND() expects the indices to be int32 type,' + ` but the dtype was ${indices.dtype}.`);
            }
            if (indices.shape[indicesRank - 1] > tensorRank) {
                throw new Error('index innermost dimension length must be <= tensor rank; saw: ' + `${indices.shape[indicesRank - 1]} vs. ${tensorRank}`);
            }
            if ((0,
                _util.sizeFromShape)(tensor.shape) === 0) {
                throw new Error('Requested more than 0 entries, but input is empty.' + ` Input shape: ${tensor.shape}.`);
            }
            const indicesShape = indices.shape;
            const sliceRank = indicesShape[indicesShape.length - 1];
            // The result shape is
            //   indices.shape[:-1] + params.shape[indices.shape[-1]:]
            let nResult = 1;
            for (let i = 0; i < indicesShape.length - 1; ++i) {
                nResult *= indicesShape[i];
            }
            const inputShape = tensor.shape;
            const resultShape = indicesShape.slice();
            resultShape.pop();
            let sliceSize = 1;
            for (let i = sliceRank; i < tensorRank; ++i) {
                sliceSize *= inputShape[i];
                resultShape.push(inputShape[i]);
            }
            const strides = [...(0,
                _util.computeStrides)(tensor.shape).map(stride => stride / sliceSize), 1].slice(0, sliceRank);
            return [resultShape, nResult, sliceSize, strides];
        }

    }
        , {
        "../util": 509
    }],
    296: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.greater = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util = require("../tensor_util");
        var _tensor_util_env = require("../tensor_util_env");
        var _broadcast_util = require("./broadcast_util");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Returns the truth value of (a > b) element-wise. Supports broadcasting.
         *
         * ```js
         * const a = tf.tensor1d([1, 2, 3]);
         * const b = tf.tensor1d([2, 2, 2]);
         *
         * a.greater(b).print();
         * ```
         *
         * @param a The first input tensor.
         * @param b The second input tensor. Must have the same dtype as `a`.
         *
         * @doc {heading: 'Operations', subheading: 'Logical'}
         */
        function greater_(a, b) {
            let $a = (0,
                _tensor_util_env.convertToTensor)(a, 'a', 'greater', 'string_or_numeric');
            let $b = (0,
                _tensor_util_env.convertToTensor)(b, 'b', 'greater', 'string_or_numeric');
            [$a, $b] = (0,
                _tensor_util.makeTypesMatch)($a, $b);
            (0,
                _broadcast_util.assertAndGetBroadcastShape)($a.shape, $b.shape);
            const inputs = {
                a: $a,
                b: $b
            };
            return _engine.ENGINE.runKernel(_kernel_names.Greater, inputs);
        }
        const greater = (0,
            _operation.op)({
                greater_
            });
        exports.greater = greater;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util": 503,
        "../tensor_util_env": 504,
        "./broadcast_util": 233,
        "./operation": 372
    }],
    297: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.greaterEqual = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util = require("../tensor_util");
        var _tensor_util_env = require("../tensor_util_env");
        var _broadcast_util = require("./broadcast_util");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Returns the truth value of (a >= b) element-wise. Supports broadcasting.
         *
         * ```js
         * const a = tf.tensor1d([1, 2, 3]);
         * const b = tf.tensor1d([2, 2, 2]);
         *
         * a.greaterEqual(b).print();
         * ```
         *
         * @param a The first input tensor.
         * @param b The second input tensor. Must have the same dtype as `a`.
         *
         * @doc {heading: 'Operations', subheading: 'Logical'}
         */
        function greaterEqual_(a, b) {
            let $a = (0,
                _tensor_util_env.convertToTensor)(a, 'a', 'greaterEqual', 'string_or_numeric');
            let $b = (0,
                _tensor_util_env.convertToTensor)(b, 'b', 'greaterEqual', 'string_or_numeric');
            [$a, $b] = (0,
                _tensor_util.makeTypesMatch)($a, $b);
            (0,
                _broadcast_util.assertAndGetBroadcastShape)($a.shape, $b.shape);
            const inputs = {
                a: $a,
                b: $b
            };
            return _engine.ENGINE.runKernel(_kernel_names.GreaterEqual, inputs);
        }
        const greaterEqual = (0,
            _operation.op)({
                greaterEqual_
            });
        exports.greaterEqual = greaterEqual;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util": 503,
        "../tensor_util_env": 504,
        "./broadcast_util": 233,
        "./operation": 372
    }],
    298: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.imag = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Returns the imaginary part of a complex (or real) tensor.
         *
         * Given a tensor input, this operation returns a tensor of type float that is
         * the imaginary part of each element in input considered as a complex number.
         * If input is real, a tensor of all zeros is returned.
         *
         * ```js
         * const x = tf.complex([-2.25, 3.25], [4.75, 5.75]);
         * tf.imag(x).print();
         * ```
         *
         * @doc {heading: 'Tensors', subheading: 'Creation'}
         */
        function imag_(input) {
            const $input = (0,
                _tensor_util_env.convertToTensor)(input, 'input', 'imag');
            const inputs = {
                input: $input
            };
            return _engine.ENGINE.runKernel(_kernel_names.Imag, inputs);
        }
        const imag = (0,
            _operation.op)({
                imag_
            });
        exports.imag = imag;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    299: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.cropAndResize = void 0;
        var _engine = require("../../engine");
        var _kernel_names = require("../../kernel_names");
        var _tensor_util_env = require("../../tensor_util_env");
        var util = _interopRequireWildcard(require("../../util"));
        var _operation = require("../operation");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Extracts crops from the input image tensor and resizes them using bilinear
         * sampling or nearest neighbor sampling (possibly with aspect ratio change)
         * to a common output size specified by cropSize.
         *
         * @param image 4d tensor of shape `[batch,imageHeight,imageWidth, depth]`,
         *     where imageHeight and imageWidth must be positive, specifying the
         *     batch of images from which to take crops
         * @param boxes 2d float32 tensor of shape `[numBoxes, 4]`. Each entry is
         *     `[y1, x1, y2, x2]`, where `(y1, x1)` and `(y2, x2)` are the normalized
         *     coordinates of the box in the `boxInd[i]`th image in the batch
         * @param boxInd 1d int32 tensor of shape `[numBoxes]` with values in range
         *     `[0, batch)` that specifies the image that the `i`-th box refers to.
         * @param cropSize 1d int32 tensor of 2 elements `[cropHeigh, cropWidth]`
         *     specifying the size to which all crops are resized to.
         * @param method Optional string from `'bilinear' | 'nearest'`,
         *     defaults to bilinear, which specifies the sampling method for resizing
         * @param extrapolationValue A threshold for deciding when to remove boxes based
         *     on score. Defaults to 0.
         * @return A 4D tensor of the shape `[numBoxes,cropHeight,cropWidth,depth]`
         *
         * @doc {heading: 'Operations', subheading: 'Images', namespace: 'image'}
         */
        function cropAndResize_(image, boxes, boxInd, cropSize, method = 'bilinear', extrapolationValue = 0) {
            const $image = (0,
                _tensor_util_env.convertToTensor)(image, 'image', 'cropAndResize');
            const $boxes = (0,
                _tensor_util_env.convertToTensor)(boxes, 'boxes', 'cropAndResize', 'float32');
            const $boxInd = (0,
                _tensor_util_env.convertToTensor)(boxInd, 'boxInd', 'cropAndResize', 'int32');
            const numBoxes = $boxes.shape[0];
            util.assert($image.rank === 4, () => 'Error in cropAndResize: image must be rank 4,' + `but got rank ${$image.rank}.`);
            util.assert($boxes.rank === 2 && $boxes.shape[1] === 4, () => `Error in cropAndResize: boxes must be have size [${numBoxes},4] ` + `but had shape ${$boxes.shape}.`);
            util.assert($boxInd.rank === 1 && $boxInd.shape[0] === numBoxes, () => `Error in cropAndResize: boxInd must be have size [${numBoxes}] ` + `but had shape ${$boxes.shape}.`);
            util.assert(cropSize.length === 2, () => `Error in cropAndResize: cropSize must be of length 2, but got ` + `length ${cropSize.length}.`);
            util.assert(cropSize[0] >= 1 && cropSize[1] >= 1, () => `cropSize must be atleast [1,1], but was ${cropSize}`);
            util.assert(method === 'bilinear' || method === 'nearest', () => `method must be bilinear or nearest, but was ${method}`);
            const inputs = {
                image: $image,
                boxes: $boxes,
                boxInd: $boxInd
            };
            const attrs = {
                method,
                extrapolationValue,
                cropSize
            };
            const res = _engine.ENGINE.runKernel(_kernel_names.CropAndResize, inputs, attrs);
            return res;
        }
        const cropAndResize = (0,
            _operation.op)({
                cropAndResize_
            });
        exports.cropAndResize = cropAndResize;

    }
        , {
        "../../engine": 77,
        "../../kernel_names": 198,
        "../../tensor_util_env": 504,
        "../../util": 509,
        "../operation": 372
    }],
    300: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.flipLeftRight = void 0;
        var _engine = require("../../engine");
        var _kernel_names = require("../../kernel_names");
        var _tensor_util_env = require("../../tensor_util_env");
        var util = _interopRequireWildcard(require("../../util"));
        var _operation = require("../operation");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Flips the image left to right. Currently available in the CPU, WebGL, and
         * WASM backends.
         *
         * @param image 4d tensor of shape `[batch, imageHeight, imageWidth, depth]`.
         */
        /** @doc {heading: 'Operations', subheading: 'Images', namespace: 'image'} */
        function flipLeftRight_(image) {
            const $image = (0,
                _tensor_util_env.convertToTensor)(image, 'image', 'flipLeftRight', 'float32');
            util.assert($image.rank === 4, () => 'Error in flipLeftRight: image must be rank 4,' + `but got rank ${$image.rank}.`);
            const inputs = {
                image: $image
            };
            const res = _engine.ENGINE.runKernel(_kernel_names.FlipLeftRight, inputs, {});
            return res;
        }
        const flipLeftRight = (0,
            _operation.op)({
                flipLeftRight_
            });
        exports.flipLeftRight = flipLeftRight;

    }
        , {
        "../../engine": 77,
        "../../kernel_names": 198,
        "../../tensor_util_env": 504,
        "../../util": 509,
        "../operation": 372
    }],
    301: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.grayscaleToRGB = void 0;
        var _tensor_util_env = require("../../tensor_util_env");
        var util = _interopRequireWildcard(require("../../util"));
        var _operation = require("../operation");
        var _tile = require("../tile");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2021 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Converts images from grayscale to RGB format.
         *
         * @param image A grayscale tensor to convert. The `image`'s last dimension must
         *     be size 1 with at least a two-dimensional shape.
         *
         * @doc {heading: 'Operations', subheading: 'Images', namespace: 'image'}
         */
        function grayscaleToRGB_(image) {
            const $image = (0,
                _tensor_util_env.convertToTensor)(image, 'image', 'grayscaleToRGB');
            const lastDimsIdx = $image.rank - 1;
            const lastDims = $image.shape[lastDimsIdx];
            util.assert($image.rank >= 2, () => 'Error in grayscaleToRGB: images must be at least rank 2, ' + `but got rank ${$image.rank}.`);
            util.assert(lastDims === 1, () => 'Error in grayscaleToRGB: last dimension of a grayscale image ' + `should be size 1, but got size ${lastDims}.`);
            const reps = new Array($image.rank);
            reps.fill(1, 0, lastDimsIdx);
            reps[lastDimsIdx] = 3;
            return (0,
                _tile.tile)($image, reps);
        }
        const grayscaleToRGB = (0,
            _operation.op)({
                grayscaleToRGB_
            });
        exports.grayscaleToRGB = grayscaleToRGB;

    }
        , {
        "../../tensor_util_env": 504,
        "../../util": 509,
        "../operation": 372,
        "../tile": 475
    }],
    302: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.nonMaxSuppression = void 0;
        var _engine = require("../../engine");
        var _kernel_names = require("../../kernel_names");
        var _tensor_util_env = require("../../tensor_util_env");
        var _nonmax_util = require("../nonmax_util");
        var _operation = require("../operation");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Performs non maximum suppression of bounding boxes based on
         * iou (intersection over union).
         *
         * @param boxes a 2d tensor of shape `[numBoxes, 4]`. Each entry is
         *     `[y1, x1, y2, x2]`, where `(y1, x1)` and `(y2, x2)` are the corners of
         *     the bounding box.
         * @param scores a 1d tensor providing the box scores of shape `[numBoxes]`.
         * @param maxOutputSize The maximum number of boxes to be selected.
         * @param iouThreshold A float representing the threshold for deciding whether
         *     boxes overlap too much with respect to IOU. Must be between [0, 1].
         *     Defaults to 0.5 (50% box overlap).
         * @param scoreThreshold A threshold for deciding when to remove boxes based
         *     on score. Defaults to -inf, which means any score is accepted.
         * @return A 1D tensor with the selected box indices.
         *
         * @doc {heading: 'Operations', subheading: 'Images', namespace: 'image'}
         */
        function nonMaxSuppression_(boxes, scores, maxOutputSize, iouThreshold = 0.5, scoreThreshold = Number.NEGATIVE_INFINITY) {
            const $boxes = (0,
                _tensor_util_env.convertToTensor)(boxes, 'boxes', 'nonMaxSuppression', 'float32');
            const $scores = (0,
                _tensor_util_env.convertToTensor)(scores, 'scores', 'nonMaxSuppression', 'float32');
            const inputs = (0,
                _nonmax_util.nonMaxSuppSanityCheck)($boxes, $scores, maxOutputSize, iouThreshold, scoreThreshold);
            maxOutputSize = inputs.maxOutputSize;
            iouThreshold = inputs.iouThreshold;
            scoreThreshold = inputs.scoreThreshold;
            const attrs = {
                maxOutputSize,
                iouThreshold,
                scoreThreshold
            };
            return _engine.ENGINE.runKernel(_kernel_names.NonMaxSuppressionV3, {
                boxes: $boxes,
                scores: $scores
            }, attrs);
        }
        const nonMaxSuppression = (0,
            _operation.op)({
                nonMaxSuppression_
            });
        exports.nonMaxSuppression = nonMaxSuppression;

    }
        , {
        "../../engine": 77,
        "../../kernel_names": 198,
        "../../tensor_util_env": 504,
        "../nonmax_util": 366,
        "../operation": 372
    }],
    303: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.nonMaxSuppressionAsync = void 0;
        var _non_max_suppression_impl = require("../../backends/non_max_suppression_impl");
        var _tensor_util_env = require("../../tensor_util_env");
        var _nonmax_util = require("../nonmax_util");
        var _tensor1d = require("../tensor1d");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Performs non maximum suppression of bounding boxes based on
         * iou (intersection over union).
         *
         * This is the async version of `nonMaxSuppression`
         *
         * @param boxes a 2d tensor of shape `[numBoxes, 4]`. Each entry is
         *     `[y1, x1, y2, x2]`, where `(y1, x1)` and `(y2, x2)` are the corners of
         *     the bounding box.
         * @param scores a 1d tensor providing the box scores of shape `[numBoxes]`.
         * @param maxOutputSize The maximum number of boxes to be selected.
         * @param iouThreshold A float representing the threshold for deciding whether
         *     boxes overlap too much with respect to IOU. Must be between [0, 1].
         *     Defaults to 0.5 (50% box overlap).
         * @param scoreThreshold A threshold for deciding when to remove boxes based
         *     on score. Defaults to -inf, which means any score is accepted.
         * @return A 1D tensor with the selected box indices.
         *
         * @doc {heading: 'Operations', subheading: 'Images', namespace: 'image'}
         */
        async function nonMaxSuppressionAsync_(boxes, scores, maxOutputSize, iouThreshold = 0.5, scoreThreshold = Number.NEGATIVE_INFINITY) {
            const $boxes = (0,
                _tensor_util_env.convertToTensor)(boxes, 'boxes', 'nonMaxSuppressionAsync');
            const $scores = (0,
                _tensor_util_env.convertToTensor)(scores, 'scores', 'nonMaxSuppressionAsync');
            const inputs = (0,
                _nonmax_util.nonMaxSuppSanityCheck)($boxes, $scores, maxOutputSize, iouThreshold, scoreThreshold);
            maxOutputSize = inputs.maxOutputSize;
            iouThreshold = inputs.iouThreshold;
            scoreThreshold = inputs.scoreThreshold;
            const boxesAndScores = await Promise.all([$boxes.data(), $scores.data()]);
            const boxesVals = boxesAndScores[0];
            const scoresVals = boxesAndScores[1];
            // We call a cpu based impl directly with the typedarray data  here rather
            // than a kernel because all kernels are synchronous (and thus cannot await
            // .data()).
            const { selectedIndices } = (0,
                _non_max_suppression_impl.nonMaxSuppressionV3Impl)(boxesVals, scoresVals, maxOutputSize, iouThreshold, scoreThreshold);
            if ($boxes !== boxes) {
                $boxes.dispose();
            }
            if ($scores !== scores) {
                $scores.dispose();
            }
            return (0,
                _tensor1d.tensor1d)(selectedIndices, 'int32');
        }
        const nonMaxSuppressionAsync = nonMaxSuppressionAsync_;
        exports.nonMaxSuppressionAsync = nonMaxSuppressionAsync;

    }
        , {
        "../../backends/non_max_suppression_impl": 71,
        "../../tensor_util_env": 504,
        "../nonmax_util": 366,
        "../tensor1d": 468
    }],
    304: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.nonMaxSuppressionPadded = void 0;
        var _engine = require("../../engine");
        var _kernel_names = require("../../kernel_names");
        var _tensor_util_env = require("../../tensor_util_env");
        var _nonmax_util = require("../nonmax_util");
        var _operation = require("../operation");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Asynchronously performs non maximum suppression of bounding boxes based on
         * iou (intersection over union), with an option to pad results.
         *
         * @param boxes a 2d tensor of shape `[numBoxes, 4]`. Each entry is
         *     `[y1, x1, y2, x2]`, where `(y1, x1)` and `(y2, x2)` are the corners of
         *     the bounding box.
         * @param scores a 1d tensor providing the box scores of shape `[numBoxes]`.
         * @param maxOutputSize The maximum number of boxes to be selected.
         * @param iouThreshold A float representing the threshold for deciding whether
         *     boxes overlap too much with respect to IOU. Must be between [0, 1].
         *     Defaults to 0.5 (50% box overlap).
         * @param scoreThreshold A threshold for deciding when to remove boxes based
         *     on score. Defaults to -inf, which means any score is accepted.
         * @param padToMaxOutputSize Defaults to false. If true, size of output
         *     `selectedIndices` is padded to maxOutputSize.
         * @return A map with the following properties:
         *     - selectedIndices: A 1D tensor with the selected box indices.
         *     - validOutputs: A scalar denoting how many elements in `selectedIndices`
         *       are valid. Valid elements occur first, then padding.
         *
         * @doc {heading: 'Operations', subheading: 'Images', namespace: 'image'}
         */
        function nonMaxSuppressionPadded_(boxes, scores, maxOutputSize, iouThreshold = 0.5, scoreThreshold = Number.NEGATIVE_INFINITY, padToMaxOutputSize = false) {
            const $boxes = (0,
                _tensor_util_env.convertToTensor)(boxes, 'boxes', 'nonMaxSuppression');
            const $scores = (0,
                _tensor_util_env.convertToTensor)(scores, 'scores', 'nonMaxSuppression');
            const params = (0,
                _nonmax_util.nonMaxSuppSanityCheck)($boxes, $scores, maxOutputSize, iouThreshold, scoreThreshold, null /* softNmsSigma */
                );
            const $maxOutputSize = params.maxOutputSize;
            const $iouThreshold = params.iouThreshold;
            const $scoreThreshold = params.scoreThreshold;
            const inputs = {
                boxes: $boxes,
                scores: $scores
            };
            const attrs = {
                maxOutputSize: $maxOutputSize,
                iouThreshold: $iouThreshold,
                scoreThreshold: $scoreThreshold,
                padToMaxOutputSize
            };
            // tslint:disable-next-line: no-unnecessary-type-assertion
            const result = _engine.ENGINE.runKernel(_kernel_names.NonMaxSuppressionV4, inputs, attrs);
            return {
                selectedIndices: result[0],
                validOutputs: result[1]
            };
        }
        const nonMaxSuppressionPadded = (0,
            _operation.op)({
                nonMaxSuppressionPadded_
            });
        exports.nonMaxSuppressionPadded = nonMaxSuppressionPadded;

    }
        , {
        "../../engine": 77,
        "../../kernel_names": 198,
        "../../tensor_util_env": 504,
        "../nonmax_util": 366,
        "../operation": 372
    }],
    305: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.nonMaxSuppressionPaddedAsync = void 0;
        var _non_max_suppression_impl = require("../../backends/non_max_suppression_impl");
        var _tensor_util_env = require("../../tensor_util_env");
        var _nonmax_util = require("../nonmax_util");
        var _scalar = require("../scalar");
        var _tensor1d = require("../tensor1d");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Asynchronously performs non maximum suppression of bounding boxes based on
         * iou (intersection over union), with an option to pad results.
         *
         * @param boxes a 2d tensor of shape `[numBoxes, 4]`. Each entry is
         *     `[y1, x1, y2, x2]`, where `(y1, x1)` and `(y2, x2)` are the corners of
         *     the bounding box.
         * @param scores a 1d tensor providing the box scores of shape `[numBoxes]`.
         * @param maxOutputSize The maximum number of boxes to be selected.
         * @param iouThreshold A float representing the threshold for deciding whether
         *     boxes overlap too much with respect to IOU. Must be between [0, 1].
         *     Defaults to 0.5 (50% box overlap).
         * @param scoreThreshold A threshold for deciding when to remove boxes based
         *     on score. Defaults to -inf, which means any score is accepted.
         * @param padToMaxOutputSize Defaults to false. If true, size of output
         *     `selectedIndices` is padded to maxOutputSize.
         * @return A map with the following properties:
         *     - selectedIndices: A 1D tensor with the selected box indices.
         *     - validOutputs: A scalar denoting how many elements in `selectedIndices`
         *       are valid. Valid elements occur first, then padding.
         *
         * @doc {heading: 'Operations', subheading: 'Images', namespace: 'image'}
         */
        async function nonMaxSuppressionPaddedAsync_(boxes, scores, maxOutputSize, iouThreshold = 0.5, scoreThreshold = Number.NEGATIVE_INFINITY, padToMaxOutputSize = false) {
            const $boxes = (0,
                _tensor_util_env.convertToTensor)(boxes, 'boxes', 'nonMaxSuppressionAsync');
            const $scores = (0,
                _tensor_util_env.convertToTensor)(scores, 'scores', 'nonMaxSuppressionAsync');
            const params = (0,
                _nonmax_util.nonMaxSuppSanityCheck)($boxes, $scores, maxOutputSize, iouThreshold, scoreThreshold, null /* softNmsSigma */
                );
            const $maxOutputSize = params.maxOutputSize;
            const $iouThreshold = params.iouThreshold;
            const $scoreThreshold = params.scoreThreshold;
            const [boxesVals, scoresVals] = await Promise.all([$boxes.data(), $scores.data()]);
            // We call a cpu based impl directly with the typedarray data here rather
            // than a kernel because all kernels are synchronous (and thus cannot await
            // .data()).
            const { selectedIndices, validOutputs } = (0,
                _non_max_suppression_impl.nonMaxSuppressionV4Impl)(boxesVals, scoresVals, $maxOutputSize, $iouThreshold, $scoreThreshold, padToMaxOutputSize);
            if ($boxes !== boxes) {
                $boxes.dispose();
            }
            if ($scores !== scores) {
                $scores.dispose();
            }
            return {
                selectedIndices: (0,
                    _tensor1d.tensor1d)(selectedIndices, 'int32'),
                validOutputs: (0,
                    _scalar.scalar)(validOutputs, 'int32')
            };
        }
        const nonMaxSuppressionPaddedAsync = nonMaxSuppressionPaddedAsync_;
        exports.nonMaxSuppressionPaddedAsync = nonMaxSuppressionPaddedAsync;

    }
        , {
        "../../backends/non_max_suppression_impl": 71,
        "../../tensor_util_env": 504,
        "../nonmax_util": 366,
        "../scalar": 411,
        "../tensor1d": 468
    }],
    306: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.nonMaxSuppressionWithScore = void 0;
        var _engine = require("../../engine");
        var _kernel_names = require("../../kernel_names");
        var _tensor_util_env = require("../../tensor_util_env");
        var _nonmax_util = require("../nonmax_util");
        var _operation = require("../operation");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Performs non maximum suppression of bounding boxes based on
         * iou (intersection over union).
         *
         * This op also supports a Soft-NMS mode (cf.
         * Bodla et al, https://arxiv.org/abs/1704.04503) where boxes reduce the score
         * of other overlapping boxes, therefore favoring different regions of the image
         * with high scores. To enable this Soft-NMS mode, set the `softNmsSigma`
         * parameter to be larger than 0.
         *
         * @param boxes a 2d tensor of shape `[numBoxes, 4]`. Each entry is
         *     `[y1, x1, y2, x2]`, where `(y1, x1)` and `(y2, x2)` are the corners of
         *     the bounding box.
         * @param scores a 1d tensor providing the box scores of shape `[numBoxes]`.
         * @param maxOutputSize The maximum number of boxes to be selected.
         * @param iouThreshold A float representing the threshold for deciding whether
         *     boxes overlap too much with respect to IOU. Must be between [0, 1].
         *     Defaults to 0.5 (50% box overlap).
         * @param scoreThreshold A threshold for deciding when to remove boxes based
         *     on score. Defaults to -inf, which means any score is accepted.
         * @param softNmsSigma A float representing the sigma parameter for Soft NMS.
         *     When sigma is 0, it falls back to nonMaxSuppression.
         * @return A map with the following properties:
         *     - selectedIndices: A 1D tensor with the selected box indices.
         *     - selectedScores: A 1D tensor with the corresponding scores for each
         *       selected box.
         *
         * @doc {heading: 'Operations', subheading: 'Images', namespace: 'image'}
         */
        function nonMaxSuppressionWithScore_(boxes, scores, maxOutputSize, iouThreshold = 0.5, scoreThreshold = Number.NEGATIVE_INFINITY, softNmsSigma = 0.0) {
            const $boxes = (0,
                _tensor_util_env.convertToTensor)(boxes, 'boxes', 'nonMaxSuppression');
            const $scores = (0,
                _tensor_util_env.convertToTensor)(scores, 'scores', 'nonMaxSuppression');
            const params = (0,
                _nonmax_util.nonMaxSuppSanityCheck)($boxes, $scores, maxOutputSize, iouThreshold, scoreThreshold, softNmsSigma);
            maxOutputSize = params.maxOutputSize;
            iouThreshold = params.iouThreshold;
            scoreThreshold = params.scoreThreshold;
            softNmsSigma = params.softNmsSigma;
            const inputs = {
                boxes: $boxes,
                scores: $scores
            };
            const attrs = {
                maxOutputSize,
                iouThreshold,
                scoreThreshold,
                softNmsSigma
            };
            // tslint:disable-next-line: no-unnecessary-type-assertion
            const result = _engine.ENGINE.runKernel(_kernel_names.NonMaxSuppressionV5, inputs, attrs);
            return {
                selectedIndices: result[0],
                selectedScores: result[1]
            };
        }
        const nonMaxSuppressionWithScore = (0,
            _operation.op)({
                nonMaxSuppressionWithScore_
            });
        exports.nonMaxSuppressionWithScore = nonMaxSuppressionWithScore;

    }
        , {
        "../../engine": 77,
        "../../kernel_names": 198,
        "../../tensor_util_env": 504,
        "../nonmax_util": 366,
        "../operation": 372
    }],
    307: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.nonMaxSuppressionWithScoreAsync = void 0;
        var _non_max_suppression_impl = require("../../backends/non_max_suppression_impl");
        var _tensor_util_env = require("../../tensor_util_env");
        var _nonmax_util = require("../nonmax_util");
        var _tensor1d = require("../tensor1d");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Asynchronously performs non maximum suppression of bounding boxes based on
         * iou (intersection over union).
         *
         * This op also supports a Soft-NMS mode (cf.
         * Bodla et al, https://arxiv.org/abs/1704.04503) where boxes reduce the score
         * of other overlapping boxes, therefore favoring different regions of the image
         * with high scores. To enable this Soft-NMS mode, set the `softNmsSigma`
         * parameter to be larger than 0.
         *
         * @param boxes a 2d tensor of shape `[numBoxes, 4]`. Each entry is
         *     `[y1, x1, y2, x2]`, where `(y1, x1)` and `(y2, x2)` are the corners of
         *     the bounding box.
         * @param scores a 1d tensor providing the box scores of shape `[numBoxes]`.
         * @param maxOutputSize The maximum number of boxes to be selected.
         * @param iouThreshold A float representing the threshold for deciding whether
         *     boxes overlap too much with respect to IOU. Must be between [0, 1].
         *     Defaults to 0.5 (50% box overlap).
         * @param scoreThreshold A threshold for deciding when to remove boxes based
         *     on score. Defaults to -inf, which means any score is accepted.
         * @param softNmsSigma A float representing the sigma parameter for Soft NMS.
         *     When sigma is 0, it falls back to nonMaxSuppression.
         * @return A map with the following properties:
         *     - selectedIndices: A 1D tensor with the selected box indices.
         *     - selectedScores: A 1D tensor with the corresponding scores for each
         *       selected box.
         *
         * @doc {heading: 'Operations', subheading: 'Images', namespace: 'image'}
         */
        async function nonMaxSuppressionWithScoreAsync_(boxes, scores, maxOutputSize, iouThreshold = 0.5, scoreThreshold = Number.NEGATIVE_INFINITY, softNmsSigma = 0.0) {
            const $boxes = (0,
                _tensor_util_env.convertToTensor)(boxes, 'boxes', 'nonMaxSuppressionAsync');
            const $scores = (0,
                _tensor_util_env.convertToTensor)(scores, 'scores', 'nonMaxSuppressionAsync');
            const params = (0,
                _nonmax_util.nonMaxSuppSanityCheck)($boxes, $scores, maxOutputSize, iouThreshold, scoreThreshold, softNmsSigma);
            maxOutputSize = params.maxOutputSize;
            iouThreshold = params.iouThreshold;
            scoreThreshold = params.scoreThreshold;
            softNmsSigma = params.softNmsSigma;
            const boxesAndScores = await Promise.all([$boxes.data(), $scores.data()]);
            const boxesVals = boxesAndScores[0];
            const scoresVals = boxesAndScores[1];
            // We call a cpu based impl directly with the typedarray data  here rather
            // than a kernel because all kernels are synchronous (and thus cannot await
            // .data()).
            const { selectedIndices, selectedScores } = (0,
                _non_max_suppression_impl.nonMaxSuppressionV5Impl)(boxesVals, scoresVals, maxOutputSize, iouThreshold, scoreThreshold, softNmsSigma);
            if ($boxes !== boxes) {
                $boxes.dispose();
            }
            if ($scores !== scores) {
                $scores.dispose();
            }
            return {
                selectedIndices: (0,
                    _tensor1d.tensor1d)(selectedIndices, 'int32'),
                selectedScores: (0,
                    _tensor1d.tensor1d)(selectedScores)
            };
        }
        const nonMaxSuppressionWithScoreAsync = nonMaxSuppressionWithScoreAsync_;
        exports.nonMaxSuppressionWithScoreAsync = nonMaxSuppressionWithScoreAsync;

    }
        , {
        "../../backends/non_max_suppression_impl": 71,
        "../../tensor_util_env": 504,
        "../nonmax_util": 366,
        "../tensor1d": 468
    }],
    308: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.resizeBilinear = void 0;
        var _engine = require("../../engine");
        var _kernel_names = require("../../kernel_names");
        var _tensor_util_env = require("../../tensor_util_env");
        var util = _interopRequireWildcard(require("../../util"));
        var _operation = require("../operation");
        var _reshape = require("../reshape");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Bilinear resize a single 3D image or a batch of 3D images to a new shape.
         *
         * @param images The images, of rank 4 or rank 3, of shape
         *     `[batch, height, width, inChannels]`. If rank 3, batch of 1 is assumed.
         * @param size The new shape `[newHeight, newWidth]` to resize the
         *     images to. Each channel is resized individually.
         * @param alignCorners Defaults to `false`. If true, rescale
         *     input by `(new_height - 1) / (height - 1)`, which exactly aligns the 4
         *     corners of images and resized images. If false, rescale by
         *     `new_height / height`. Treat similarly the width dimension.
         * @param halfPixelCenters Defaults to `false`. Whether to assume pixel centers
         *     are at 0.5, which would make the floating point coordinates of the top
         *     left pixel 0.5, 0.5.
         *
         * @doc {heading: 'Operations', subheading: 'Images', namespace: 'image'}
         */
        function resizeBilinear_(images, size, alignCorners = false, halfPixelCenters = false) {
            const $images = (0,
                _tensor_util_env.convertToTensor)(images, 'images', 'resizeBilinear');
            util.assert($images.rank === 3 || $images.rank === 4, () => `Error in resizeBilinear: x must be rank 3 or 4, but got ` + `rank ${$images.rank}.`);
            util.assert(size.length === 2, () => `Error in resizeBilinear: new shape must 2D, but got shape ` + `${size}.`);
            util.assert(halfPixelCenters === false || alignCorners === false, () => `Error in resizeBilinear: If halfPixelCenters is true, ` + `alignCorners must be false.`);
            let batchImages = $images;
            let reshapedTo4D = false;
            if ($images.rank === 3) {
                reshapedTo4D = true;
                batchImages = (0,
                    _reshape.reshape)($images, [1, $images.shape[0], $images.shape[1], $images.shape[2]]);
            }
            const [] = size;
            const inputs = {
                images: batchImages
            };
            const attrs = {
                alignCorners,
                halfPixelCenters,
                size
            };
            // tslint:disable-next-line: no-unnecessary-type-assertion
            const res = _engine.ENGINE.runKernel(_kernel_names.ResizeBilinear, inputs, attrs);
            if (reshapedTo4D) {
                return (0,
                    _reshape.reshape)(res, [res.shape[1], res.shape[2], res.shape[3]]);
            }
            return res;
        }
        const resizeBilinear = (0,
            _operation.op)({
                resizeBilinear_
            });
        exports.resizeBilinear = resizeBilinear;

    }
        , {
        "../../engine": 77,
        "../../kernel_names": 198,
        "../../tensor_util_env": 504,
        "../../util": 509,
        "../operation": 372,
        "../reshape": 402
    }],
    309: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.resizeNearestNeighbor = void 0;
        var _engine = require("../../engine");
        var _kernel_names = require("../../kernel_names");
        var _tensor_util_env = require("../../tensor_util_env");
        var util = _interopRequireWildcard(require("../../util"));
        var _operation = require("../operation");
        var _reshape = require("../reshape");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * NearestNeighbor resize a batch of 3D images to a new shape.
         *
         * @param images The images, of rank 4 or rank 3, of shape
         *     `[batch, height, width, inChannels]`. If rank 3, batch of 1 is assumed.
         * @param size The new shape `[newHeight, newWidth]` to resize the
         *     images to. Each channel is resized individually.
         * @param alignCorners Defaults to False. If true, rescale
         *     input by `(new_height - 1) / (height - 1)`, which exactly aligns the 4
         *     corners of images and resized images. If false, rescale by
         *     `new_height / height`. Treat similarly the width dimension.
         * @param halfPixelCenters Defaults to `false`. Whether to assume pixels are of
         *      half the actual dimensions, and yield more accurate resizes. This flag
         *      would also make the floating point coordinates of the top left pixel
         *      0.5, 0.5.
         *
         * @doc {heading: 'Operations', subheading: 'Images', namespace: 'image'}
         */
        function resizeNearestNeighbor_(images, size, alignCorners = false, halfPixelCenters = false) {
            const $images = (0,
                _tensor_util_env.convertToTensor)(images, 'images', 'resizeNearestNeighbor');
            util.assert($images.rank === 3 || $images.rank === 4, () => `Error in resizeNearestNeighbor: x must be rank 3 or 4, but got ` + `rank ${$images.rank}.`);
            util.assert(size.length === 2, () => `Error in resizeNearestNeighbor: new shape must 2D, but got shape ` + `${size}.`);
            util.assert($images.dtype === 'float32' || $images.dtype === 'int32', () => '`images` must have `int32` or `float32` as dtype');
            util.assert(halfPixelCenters === false || alignCorners === false, () => `Error in resizeNearestNeighbor: If halfPixelCenters is true, ` + `alignCorners must be false.`);
            let batchImages = $images;
            let reshapedTo4D = false;
            if ($images.rank === 3) {
                reshapedTo4D = true;
                batchImages = (0,
                    _reshape.reshape)($images, [1, $images.shape[0], $images.shape[1], $images.shape[2]]);
            }
            const [] = size;
            const inputs = {
                images: batchImages
            };
            const attrs = {
                alignCorners,
                halfPixelCenters,
                size
            };
            // tslint:disable-next-line: no-unnecessary-type-assertion
            const res = _engine.ENGINE.runKernel(_kernel_names.ResizeNearestNeighbor, inputs, attrs);
            if (reshapedTo4D) {
                return (0,
                    _reshape.reshape)(res, [res.shape[1], res.shape[2], res.shape[3]]);
            }
            return res;
        }
        const resizeNearestNeighbor = (0,
            _operation.op)({
                resizeNearestNeighbor_
            });
        exports.resizeNearestNeighbor = resizeNearestNeighbor;

    }
        , {
        "../../engine": 77,
        "../../kernel_names": 198,
        "../../tensor_util_env": 504,
        "../../util": 509,
        "../operation": 372,
        "../reshape": 402
    }],
    310: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.rotateWithOffset = void 0;
        var _engine = require("../../engine");
        var _kernel_names = require("../../kernel_names");
        var _tensor_util_env = require("../../tensor_util_env");
        var util = _interopRequireWildcard(require("../../util"));
        var _operation = require("../operation");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Rotates the input image tensor counter-clockwise with an optional offset
         * center of rotation. Currently available in the CPU, WebGL, and WASM backends.
         *
         * @param image 4d tensor of shape `[batch, imageHeight, imageWidth, depth]`.
         * @param radians The amount of rotation.
         * @param fillValue The value to fill in the empty space leftover
         *     after rotation. Can be either a single grayscale value (0-255), or an
         *     array of three numbers `[red, green, blue]` specifying the red, green,
         *     and blue channels. Defaults to `0` (black).
         * @param center The center of rotation. Can be either a single value (0-1), or
         *     an array of two numbers `[centerX, centerY]`. Defaults to `0.5` (rotates
         *     the image around its center).
         *
         * @doc {heading: 'Operations', subheading: 'Images', namespace: 'image'}
         */
        function rotateWithOffset_(image, radians, fillValue = 0, center = 0.5) {
            const $image = (0,
                _tensor_util_env.convertToTensor)(image, 'image', 'rotateWithOffset', 'float32');
            util.assert($image.rank === 4, () => 'Error in rotateWithOffset: image must be rank 4,' + `but got rank ${$image.rank}.`);
            const inputs = {
                image: $image
            };
            const attrs = {
                radians,
                fillValue,
                center
            };
            const res = _engine.ENGINE.runKernel(_kernel_names.RotateWithOffset, inputs, attrs);
            return res;
        }
        const rotateWithOffset = (0,
            _operation.op)({
                rotateWithOffset_
            });
        exports.rotateWithOffset = rotateWithOffset;

    }
        , {
        "../../engine": 77,
        "../../kernel_names": 198,
        "../../tensor_util_env": 504,
        "../../util": 509,
        "../operation": 372
    }],
    311: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.threshold = void 0;
        var _tensor1d = require("../tensor1d");
        var _operation = require("../operation");
        var _cast = require("../cast");
        var _split = require("../split");
        var _bincount = require("../bincount");
        var _less_equal = require("../less_equal");
        var _greater = require("../greater");
        var _sum = require("../sum");
        var _add = require("../add");
        var _mul = require("../mul");
        var _div = require("../div");
        var _sub = require("../sub");
        var _round = require("../round");
        var _where = require("../where");
        var _fill = require("../fill");
        var _slice = require("../slice");
        var _range = require("../range");
        var _tensor = require("../tensor");
        var util = _interopRequireWildcard(require("../../util"));
        var _tensor_util_env = require("../../tensor_util_env");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2021 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * https://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Performs image binarization with corresponding threshold
         * (depends on the method)value, which creates a binary image from a grayscale.
         * @param image 3d tensor of shape [imageHeight,imageWidth, depth],
         * where imageHeight and imageWidth must be positive.The image color
         * range should be [0, 255].
         * @param method Optional string from `'binary' | 'otsu'`
         * which specifies the method for thresholding. Defaults to 'binary'.
         * @param inverted Optional boolean whichspecifies
         * if colours should be inverted. Defaults to false.
         * @param threshValue Optional number which defines threshold value from 0 to 1.
         * Defaults to 0.5.
         * @return A 3d tensor of shape [imageHeight,imageWidth, depth], which
         * contains binarized image.
         */
        function threshold_(image, method = 'binary', inverted = false, threshValue = 0.5) {
            const $image = (0,
                _tensor_util_env.convertToTensor)(image, 'image', 'threshold');
            /* 0.2989, 0.5870, 0.1140 are represent luma coefficients in CCIR601.
            Reference for converting between RGB and grayscale: https://en.wikipedia.org/wiki/Luma_%28video%29  */
            const RED_INTENCITY_COEF = 0.2989;
            const GREEN_INTENCITY_COEF = 0.5870;
            const BLUE_INTENCITY_COEF = 0.1140;
            const totalPixelsInImage = $image.shape[0] * $image.shape[1];
            let $threshold = (0,
                _mul.mul)((0,
                    _tensor1d.tensor1d)([threshValue]), 255);
            let r, g, b, grayscale;
            util.assert($image.rank === 3, () => 'Error in threshold: image must be rank 3,' + `but got rank ${$image.rank}.`);
            util.assert($image.shape[2] === 3 || $image.shape[2] === 1, () => 'Error in threshold: ' + 'image color channel must be equal to 3 or 1' + `but got ${$image.shape[2]}.`);
            util.assert($image.dtype === 'int32' || $image.dtype === 'float32', () => 'Error in dtype: image dtype must be int32 or float32,' + `but got dtype ${$image.dtype}.`);
            util.assert(method === 'otsu' || method === 'binary', () => `Method must be binary or otsu, but was ${method}`);
            if ($image.shape[2] === 3) {
                [r, g, b] = (0,
                    _split.split)($image, [1, 1, 1], -1);
                const $r = (0,
                    _mul.mul)(r, RED_INTENCITY_COEF);
                const $g = (0,
                    _mul.mul)(g, GREEN_INTENCITY_COEF);
                const $b = (0,
                    _mul.mul)(b, BLUE_INTENCITY_COEF);
                grayscale = (0,
                    _add.add)((0,
                        _add.add)($r, $g), $b);
            } else {
                grayscale = image;
            }
            if (method === 'otsu') {
                const $histogram = (0,
                    _bincount.bincount)((0,
                        _cast.cast)((0,
                            _round.round)(grayscale), 'int32'), (0,
                                _tensor.tensor)([]), 256);
                $threshold = otsu($histogram, totalPixelsInImage);
            }
            const invCondition = inverted ? (0,
                _less_equal.lessEqual)(grayscale, $threshold) : (0,
                    _greater.greater)(grayscale, $threshold);
            const result = (0,
                _cast.cast)((0,
                    _mul.mul)(invCondition, 255), 'int32');
            return result;
        }
        function otsu(histogram, total) {
            let bestThresh = (0,
                _tensor1d.tensor1d)([-1]);
            let bestInBetVar = (0,
                _tensor1d.tensor1d)([0]);
            let cInBetVar = (0,
                _tensor1d.tensor1d)([0]);
            let classFirst, classSecond, meanFirst, meanSec, weightForeground, weightBack;
            for (let index = 0; index < histogram.size - 1; index++) {
                classFirst = (0,
                    _slice.slice)(histogram, 0, index + 1);
                classSecond = (0,
                    _slice.slice)(histogram, index + 1);
                weightForeground = (0,
                    _div.div)((0,
                        _sum.sum)(classFirst), total);
                weightBack = (0,
                    _div.div)((0,
                        _sum.sum)(classSecond), total);
                const meanFirstDivA = (0,
                    _sum.sum)((0,
                        _mul.mul)(classFirst, (0,
                            _range.range)(0, classFirst.size)));
                meanFirst = (0,
                    _div.div)(meanFirstDivA, (0,
                        _sum.sum)(classFirst));
                const meanSecFill = (0,
                    _fill.fill)(classSecond.shape, classFirst.size);
                const meanSecAdd = (0,
                    _add.add)((0,
                        _range.range)(0, classSecond.size), meanSecFill);
                const meanSecMul = (0,
                    _mul.mul)(classSecond, meanSecAdd);
                meanSec = (0,
                    _div.div)((0,
                        _sum.sum)(meanSecMul), (0,
                            _sum.sum)(classSecond));
                const cInBetVarSubA = (0,
                    _sub.sub)(meanFirst, meanSec);
                const cInBetVarSubB = (0,
                    _sub.sub)(meanFirst, meanSec);
                const cInBetVarMul = (0,
                    _mul.mul)(weightForeground, weightBack);
                cInBetVar = (0,
                    _mul.mul)((0,
                        _mul.mul)(cInBetVarMul, cInBetVarSubA), cInBetVarSubB);
                const condition = (0,
                    _greater.greater)(cInBetVar, bestInBetVar);
                bestInBetVar = (0,
                    _where.where)(condition, cInBetVar, bestInBetVar);
                bestThresh = (0,
                    _where.where)(condition, (0,
                        _tensor1d.tensor1d)([index]), bestThresh);
            }
            return bestThresh;
        }
        const threshold = (0,
            _operation.op)({
                threshold_
            });
        exports.threshold = threshold;

    }
        , {
        "../../tensor_util_env": 504,
        "../../util": 509,
        "../add": 205,
        "../bincount": 229,
        "../cast": 236,
        "../div": 269,
        "../fill": 284,
        "../greater": 296,
        "../less_equal": 319,
        "../mul": 362,
        "../operation": 372,
        "../range": 396,
        "../round": 409,
        "../slice": 429,
        "../split": 451,
        "../sub": 463,
        "../sum": 464,
        "../tensor": 467,
        "../tensor1d": 468,
        "../where": 484
    }],
    312: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.transform = void 0;
        var _engine = require("../../engine");
        var _kernel_names = require("../../kernel_names");
        var _tensor_util_env = require("../../tensor_util_env");
        var util = _interopRequireWildcard(require("../../util"));
        var _operation = require("../operation");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2021 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Applies the given transform(s) to the image(s).
         *
         * @param image 4d tensor of shape `[batch, imageHeight, imageWidth, depth]`.
         * @param transforms Projective transform matrix/matrices. A tensor1d of length
         *     8 or tensor of size N x 8. If one row of transforms is [a0, a1, a2, b0,
         *     b1, b2, c0, c1], then it maps the output point (x, y) to a transformed
         *     input point (x', y') = ((a0 x + a1 y + a2) / k, (b0 x + b1 y + b2) / k),
         *     where k = c0 x + c1 y + 1. The transforms are inverted compared to the
         *     transform mapping input points to output points.
         * @param interpolation Interpolation mode.
         *     Supported values: 'nearest', 'bilinear'. Default to 'nearest'.
         * @param fillMode Points outside the boundaries of the input are filled
         *     according to the given mode, one of 'constant', 'reflect', 'wrap',
         *     'nearest'. Default to 'constant'.
         *     'reflect': (d c b a | a b c d | d c b a ) The input is extended by
         *     reflecting about the edge of the last pixel.
         *     'constant': (k k k k | a b c d | k k k k) The input is extended by
         *     filling all values beyond the edge with the same constant value k.
         *     'wrap': (a b c d | a b c d | a b c d) The input is extended by
         *     wrapping around to the opposite edge.
         *     'nearest': (a a a a | a b c d | d d d d) The input is extended by
         *     the nearest pixel.
         * @param fillValue A float represents the value to be filled outside the
         *     boundaries when fillMode is 'constant'.
         * @param Output dimension after the transform, [height, width]. If undefined,
         *     output is the same size as input image.
         *
         * @doc {heading: 'Operations', subheading: 'Images', namespace: 'image'}
         */
        function transform_(image, transforms, interpolation = 'nearest', fillMode = 'constant', fillValue = 0, outputShape) {
            const $image = (0,
                _tensor_util_env.convertToTensor)(image, 'image', 'transform', 'float32');
            const $transforms = (0,
                _tensor_util_env.convertToTensor)(transforms, 'transforms', 'transform', 'float32');
            util.assert($image.rank === 4, () => 'Error in transform: image must be rank 4,' + `but got rank ${$image.rank}.`);
            util.assert($transforms.rank === 2 && ($transforms.shape[0] === $image.shape[0] || $transforms.shape[0] === 1) && $transforms.shape[1] === 8, () => `Error in transform: Input transform should be batch x 8 or 1 x 8`);
            util.assert(outputShape == null || outputShape.length === 2, () => 'Error in transform: outputShape must be [height, width] or null, ' + `but got ${outputShape}.`);
            const inputs = {
                image: $image,
                transforms: $transforms
            };
            const attrs = {
                interpolation,
                fillMode,
                fillValue,
                outputShape
            };
            return _engine.ENGINE.runKernel(_kernel_names.Transform, inputs, attrs);
        }
        const transform = (0,
            _operation.op)({
                transform_
            });
        exports.transform = transform;

    }
        , {
        "../../engine": 77,
        "../../kernel_names": 198,
        "../../tensor_util_env": 504,
        "../../util": 509,
        "../operation": 372
    }],
    313: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.inTopKAsync = void 0;
        var _tensor_util_env = require("../tensor_util_env");
        var _util = require("../util");
        var _tensor = require("./tensor");
        /**
         * @license
         * Copyright 2019 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Returns whether the targets are in the top K predictions.
         *
         * ```js
         * const predictions = tf.tensor2d([[20, 10, 40, 30], [30, 50, -20, 10]]);
         * const targets = tf.tensor1d([2, 0]);
         * const precision = await tf.inTopKAsync(predictions, targets);
         * precision.print();
         * ```
         * @param predictions 2-D or higher `tf.Tensor` with last dimension being
         *     at least `k`.
         * @param targets 1-D or higher `tf.Tensor`.
         * @param k Optional Number of top elements to look at for computing precision,
         *     default to 1.
         *
         * @doc {heading: 'Operations', subheading: 'Evaluation'}
         */
        async function inTopKAsync_(predictions, targets, k = 1) {
            const $predictions = (0,
                _tensor_util_env.convertToTensor)(predictions, 'predictions', 'inTopK');
            const $targets = (0,
                _tensor_util_env.convertToTensor)(targets, 'targets', 'inTopK');
            (0,
                _util.assert)($predictions.rank > 1, () => 'inTopK() expects the predictions to be of rank 2 or higher, ' + `but got ${$predictions.rank}`);
            (0,
                _util.assert)($predictions.rank - 1 === $targets.rank, () => `predictions rank should be 1 larger than ` + `targets rank, but got predictions rank ` + `${$predictions.rank} and targets rank ${$targets.rank}`);
            (0,
                _util.assertShapesMatch)($predictions.shape.slice(0, $predictions.shape.length - 1), $targets.shape, `predictions's shape should be align with the targets' shape, ` + 'except the last dimension.');
            const lastDim = $predictions.shape[$predictions.shape.length - 1];
            (0,
                _util.assert)(k > 0 && k <= lastDim, () => `'k' passed to inTopK() must be > 0 && <= the predictions last ` + `dimension (${lastDim}), but got ${k}`);
            const predictionsVals = await $predictions.data();
            const targetsVals = await $targets.data();
            // Reshape predictionsVals into a 2d tensor [batch, lastDim]
            // and look up topK along lastDim.
            const [batch, size] = [predictionsVals.length / lastDim, lastDim];
            const precision = (0,
                _util.getTypedArrayFromDType)('bool', batch);
            for (let b = 0; b < batch; b++) {
                const offset = b * size;
                const vals = predictionsVals.subarray(offset, offset + size);
                const valAndInd = [];
                for (let i = 0; i < vals.length; i++) {
                    valAndInd.push({
                        value: vals[i],
                        index: i
                    });
                }
                valAndInd.sort((a, b) => b.value - a.value);
                precision[b] = 0;
                for (let i = 0; i < k; i++) {
                    if (valAndInd[i].index === targetsVals[b]) {
                        precision[b] = 1;
                        break;
                    }
                }
            }
            if (predictions !== $predictions) {
                $predictions.dispose();
            }
            if (targets !== $targets) {
                $targets.dispose();
            }
            // Output precision has the same shape as targets.
            return (0,
                _tensor.tensor)(precision, $targets.shape, 'bool');
        }
        const inTopKAsync = inTopKAsync_;
        exports.inTopKAsync = inTopKAsync;

    }
        , {
        "../tensor_util_env": 504,
        "../util": 509,
        "./tensor": 467
    }],
    314: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.isFinite = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Returns which elements of x are finite.
         *
         * ```js
         * const x = tf.tensor1d([NaN, Infinity, -Infinity, 0, 1]);
         *
         * x.isFinite().print();  // or tf.isNaN(x)
         * ```
         * @param x The input Tensor.
         *
         * @doc {heading: 'Operations', subheading: 'Basic math'}
         */
        function isFinite_(x) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'isFinite');
            const inputs = {
                x: $x
            };
            return _engine.ENGINE.runKernel(_kernel_names.IsFinite, inputs);
        }
        const isFinite = (0,
            _operation.op)({
                isFinite_
            });
        exports.isFinite = isFinite;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    315: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.isInf = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Returns which elements of x are Infinity or -Infinity.
         *
         * ```js
         * const x = tf.tensor1d([NaN, Infinity, -Infinity, 0, 1]);
         *
         * x.isInf().print();  // or tf.isNaN(x)
         * ```
         * @param x The input Tensor.
         *
         * @doc {heading: 'Operations', subheading: 'Basic math'}
         */
        function isInf_(x) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'isInf');
            const inputs = {
                x: $x
            };
            return _engine.ENGINE.runKernel(_kernel_names.IsInf, inputs);
        }
        const isInf = (0,
            _operation.op)({
                isInf_
            });
        exports.isInf = isInf;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    316: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.isNaN = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Returns which elements of x are NaN.
         *
         * ```js
         * const x = tf.tensor1d([NaN, Infinity, -Infinity, 0, 1]);
         *
         * x.isNaN().print();  // or tf.isNaN(x)
         * ```
         * @param x The input Tensor.
         *
         * @doc {heading: 'Operations', subheading: 'Basic math'}
         */
        function isNaN_(x) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'isNaN');
            const inputs = {
                x: $x
            };
            return _engine.ENGINE.runKernel(_kernel_names.IsNan, inputs);
        }
        const isNaN = (0,
            _operation.op)({
                isNaN_
            });
        exports.isNaN = isNaN;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    317: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.leakyRelu = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes leaky rectified linear element-wise.
         *
         * See
         * [http://web.stanford.edu/~awni/papers/relu_hybrid_icml2013_final.pdf](
         *     http://web.stanford.edu/~awni/papers/relu_hybrid_icml2013_final.pdf)
         *
         * ```js
         * const x = tf.tensor1d([-1, 2, -3, 4]);
         *
         * x.leakyRelu(0.1).print();  // or tf.leakyRelu(x, 0.1)
         * ```
         * @param x The input tensor.
         * @param alpha The scaling factor for negative values, defaults to 0.2.
         *
         * @doc {heading: 'Operations', subheading: 'Basic math'}
         */
        function leakyRelu_(x, alpha = 0.2) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'leakyRelu');
            const inputs = {
                x: $x
            };
            const attrs = {
                alpha
            };
            return _engine.ENGINE.runKernel(_kernel_names.LeakyRelu, inputs, attrs);
        }
        const leakyRelu = (0,
            _operation.op)({
                leakyRelu_
            });
        exports.leakyRelu = leakyRelu;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    318: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.less = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util = require("../tensor_util");
        var _tensor_util_env = require("../tensor_util_env");
        var _broadcast_util = require("./broadcast_util");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Returns the truth value of (a < b) element-wise. Supports broadcasting.
         *
         * ```js
         * const a = tf.tensor1d([1, 2, 3]);
         * const b = tf.tensor1d([2, 2, 2]);
         *
         * a.less(b).print();
         * ```
         * @param a The first input tensor.
         * @param b The second input tensor. Must have the same dtype as `a`.
         *
         * @doc {heading: 'Operations', subheading: 'Logical'}
         */
        function less_(a, b) {
            let $a = (0,
                _tensor_util_env.convertToTensor)(a, 'a', 'less', 'string_or_numeric');
            let $b = (0,
                _tensor_util_env.convertToTensor)(b, 'b', 'less', 'string_or_numeric');
            [$a, $b] = (0,
                _tensor_util.makeTypesMatch)($a, $b);
            (0,
                _broadcast_util.assertAndGetBroadcastShape)($a.shape, $b.shape);
            const inputs = {
                a: $a,
                b: $b
            };
            return _engine.ENGINE.runKernel(_kernel_names.Less, inputs);
        }
        const less = (0,
            _operation.op)({
                less_
            });
        exports.less = less;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util": 503,
        "../tensor_util_env": 504,
        "./broadcast_util": 233,
        "./operation": 372
    }],
    319: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.lessEqual = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util = require("../tensor_util");
        var _tensor_util_env = require("../tensor_util_env");
        var _broadcast_util = require("./broadcast_util");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Returns the truth value of (a <= b) element-wise. Supports broadcasting.
         *
         * ```js
         * const a = tf.tensor1d([1, 2, 3]);
         * const b = tf.tensor1d([2, 2, 2]);
         *
         * a.lessEqual(b).print();
         * ```
         *
         * @param a The first input tensor.
         * @param b The second input tensor. Must have the same dtype as `a`.
         *
         * @doc {heading: 'Operations', subheading: 'Logical'}
         */
        function lessEqual_(a, b) {
            let $a = (0,
                _tensor_util_env.convertToTensor)(a, 'a', 'lessEqual', 'string_or_numeric');
            let $b = (0,
                _tensor_util_env.convertToTensor)(b, 'b', 'lessEqual', 'string_or_numeric');
            [$a, $b] = (0,
                _tensor_util.makeTypesMatch)($a, $b);
            (0,
                _broadcast_util.assertAndGetBroadcastShape)($a.shape, $b.shape);
            const inputs = {
                a: $a,
                b: $b
            };
            return _engine.ENGINE.runKernel(_kernel_names.LessEqual, inputs);
        }
        const lessEqual = (0,
            _operation.op)({
                lessEqual_
            });
        exports.lessEqual = lessEqual;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util": 503,
        "../tensor_util_env": 504,
        "./broadcast_util": 233,
        "./operation": 372
    }],
    320: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.bandPart = void 0;
        var _tensor_util_env = require("../../tensor_util_env");
        var _util = require("../../util");
        var _greater_equal = require("../greater_equal");
        var _less_equal = require("../less_equal");
        var _logical_and = require("../logical_and");
        var _operation = require("../operation");
        var _range = require("../range");
        var _reshape = require("../reshape");
        var _scalar = require("../scalar");
        var _stack = require("../stack");
        var _sub = require("../sub");
        var _unstack = require("../unstack");
        var _where = require("../where");
        var _zeros = require("../zeros");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Copy a tensor setting everything outside a central band in each innermost
         * matrix to zero.
         *
         * The band part is computed as follows: Assume input has `k` dimensions
         * `[I, J, K, ..., M, N]`, then the output is a tensor with the same shape where
         * `band[i, j, k, ..., m, n] = in_band(m, n) * input[i, j, k, ..., m, n]`.
         * The indicator function
         * `in_band(m, n) = (num_lower < 0 || (m-n) <= num_lower)`
         * `&& (num_upper < 0 || (n-m) <= num_upper)`
         *
         * ```js
         * const x = tf.tensor2d([[ 0,  1,  2, 3],
         *                        [-1,  0,  1, 2],
         *                        [-2, -1,  0, 1],
         *                        [-3, -2, -1, 0]]);
         * let y = tf.linalg.bandPart(x, 1, -1);
         * y.print(); // [[ 0,  1,  2, 3],
         *            //  [-1,  0,  1, 2],
         *            //  [ 0, -1,  0, 1],
         *            //  [ 0, 0 , -1, 0]]
         * let z = tf.linalg.bandPart(x, 2, 1);
         * z.print(); // [[ 0,  1,  0, 0],
         *            //  [-1,  0,  1, 0],
         *            //  [-2, -1,  0, 1],
         *            //  [ 0, -2, -1, 0]]
         * ```
         *
         * @param x Rank `k` tensor
         * @param numLower Number of subdiagonals to keep.
         *   If negative, keep entire lower triangle.
         * @param numUpper Number of subdiagonals to keep.
         *   If negative, keep entire upper triangle.
         * @returns Rank `k` tensor of the same shape as input.
         *   The extracted banded tensor.
         *
         * @doc {heading:'Operations', subheading:'Linear Algebra', namespace:'linalg'}
         */
        function bandPart_(a, numLower, numUpper) {
            (0,
                _util.assert)(numLower % 1 === 0, () => `bandPart(): numLower must be an integer, got ${numLower}.`);
            (0,
                _util.assert)(numUpper % 1 === 0, () => `bandPart(): numUpper must be an integer, got ${numUpper}.`);
            const $a = (0,
                _tensor_util_env.convertToTensor)(a, 'a', 'bandPart');
            (0,
                _util.assert)($a.rank >= 2, () => `bandPart(): Rank must be at least 2, got ${$a.rank}.`);
            const shape = $a.shape;
            const [M, N] = $a.shape.slice(-2);
            if (!(numLower <= M)) {
                throw new Error(`bandPart(): numLower (${numLower})` + ` must not be greater than the number of rows (${M}).`);
            }
            if (!(numUpper <= N)) {
                throw new Error(`bandPart(): numUpper (${numUpper})` + ` must not be greater than the number of columns (${N}).`);
            }
            if (numLower < 0) {
                numLower = M;
            }
            if (numUpper < 0) {
                numUpper = N;
            }
            const i = (0,
                _reshape.reshape)((0,
                    _range.range)(0, M, 1, 'int32'), [-1, 1]);
            const j = (0,
                _range.range)(0, N, 1, 'int32');
            const ij = (0,
                _sub.sub)(i, j);
            const inBand = (0,
                _logical_and.logicalAnd)((0,
                    _less_equal.lessEqual)(ij, (0,
                        _scalar.scalar)(+numLower, 'int32')), (0,
                            _greater_equal.greaterEqual)(ij, (0,
                                _scalar.scalar)(-numUpper, 'int32')));
            const zero = (0,
                _zeros.zeros)([M, N], $a.dtype);
            return (0,
                _reshape.reshape)((0,
                    _stack.stack)((0,
                        _unstack.unstack)((0,
                            _reshape.reshape)($a, [-1, M, N])).map(mat => (0,
                                _where.where)(inBand, mat, zero))), shape);
        }
        const bandPart = (0,
            _operation.op)({
                bandPart_
            });
        exports.bandPart = bandPart;

    }
        , {
        "../../tensor_util_env": 504,
        "../../util": 509,
        "../greater_equal": 297,
        "../less_equal": 319,
        "../logical_and": 331,
        "../operation": 372,
        "../range": 396,
        "../reshape": 402,
        "../scalar": 411,
        "../stack": 457,
        "../sub": 463,
        "../unstack": 481,
        "../where": 484,
        "../zeros": 486
    }],
    321: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.gramSchmidt = void 0;
        var _engine = require("../../engine");
        var _util = require("../../util");
        var _div = require("../div");
        var _mul = require("../mul");
        var _norm = require("../norm");
        var _operation = require("../operation");
        var _split = require("../split");
        var _squeeze = require("../squeeze");
        var _stack = require("../stack");
        var _sub = require("../sub");
        var _sum = require("../sum");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Gram-Schmidt orthogonalization.
         *
         * ```js
         * const x = tf.tensor2d([[1, 2], [3, 4]]);
         * let y = tf.linalg.gramSchmidt(x);
         * y.print();
         * console.log('Orthogonalized:');
         * y.dot(y.transpose()).print();  // should be nearly the identity matrix.
         * console.log('First row direction maintained:');
         * const data = await y.array();
         * console.log(data[0][1] / data[0][0]);  // should be nearly 2.
         * ```
         *
         * @param xs The vectors to be orthogonalized, in one of the two following
         *   formats:
         *   - An Array of `tf.Tensor1D`.
         *   - A `tf.Tensor2D`, i.e., a matrix, in which case the vectors are the rows
         *     of `xs`.
         *   In each case, all the vectors must have the same length and the length
         *   must be greater than or equal to the number of vectors.
         * @returns The orthogonalized and normalized vectors or matrix.
         *   Orthogonalization means that the vectors or the rows of the matrix
         *   are orthogonal (zero inner products). Normalization means that each
         *   vector or each row of the matrix has an L2 norm that equals `1`.
         *
         * @doc {heading:'Operations', subheading:'Linear Algebra', namespace:'linalg'}
         */
        function gramSchmidt_(xs) {
            let inputIsTensor2D;
            if (Array.isArray(xs)) {
                inputIsTensor2D = false;
                (0,
                    _util.assert)(xs != null && xs.length > 0, () => 'Gram-Schmidt process: input must not be null, undefined, or ' + 'empty');
                const dim = xs[0].shape[0];
                for (let i = 1; i < xs.length; ++i) {
                    (0,
                        _util.assert)(xs[i].shape[0] === dim, () => 'Gram-Schmidt: Non-unique lengths found in the input vectors: ' + `(${xs[i].shape[0]} vs. ${dim})`);
                }
            } else {
                inputIsTensor2D = true;
                xs = (0,
                    _split.split)(xs, xs.shape[0], 0).map(x => (0,
                        _squeeze.squeeze)(x, [0]));
            }
            (0,
                _util.assert)(xs.length <= xs[0].shape[0], () => `Gram-Schmidt: Number of vectors (${xs.length}) exceeds ` + `number of dimensions (${xs[0].shape[0]}).`);
            const ys = [];
            const xs1d = xs;
            for (let i = 0; i < xs.length; ++i) {
                ys.push(_engine.ENGINE.tidy(() => {
                    let x = xs1d[i];
                    if (i > 0) {
                        for (let j = 0; j < i; ++j) {
                            const proj = (0,
                                _mul.mul)((0,
                                    _sum.sum)((0,
                                        _mul.mul)(ys[j], x)), ys[j]);
                            x = (0,
                                _sub.sub)(x, proj);
                        }
                    }
                    return (0,
                        _div.div)(x, (0,
                            _norm.norm)(x, 'euclidean'));
                }
                ));
            }
            if (inputIsTensor2D) {
                return (0,
                    _stack.stack)(ys, 0);
            } else {
                return ys;
            }
        }
        const gramSchmidt = (0,
            _operation.op)({
                gramSchmidt_
            });
        exports.gramSchmidt = gramSchmidt;

    }
        , {
        "../../engine": 77,
        "../../util": 509,
        "../div": 269,
        "../mul": 362,
        "../norm": 367,
        "../operation": 372,
        "../split": 451,
        "../squeeze": 456,
        "../stack": 457,
        "../sub": 463,
        "../sum": 464
    }],
    322: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.qr = void 0;
        var _engine = require("../../engine");
        var _globals = require("../../globals");
        var _util = require("../../util");
        var _clone = require("../clone");
        var _concat = require("../concat");
        var _div = require("../div");
        var _eye = require("../eye");
        var _greater = require("../greater");
        var _mat_mul = require("../mat_mul");
        var _mul = require("../mul");
        var _neg = require("../neg");
        var _norm = require("../norm");
        var _operation = require("../operation");
        var _reshape = require("../reshape");
        var _slice = require("../slice");
        var _stack = require("../stack");
        var _sub = require("../sub");
        var _tensor2d = require("../tensor2d");
        var _transpose = require("../transpose");
        var _unstack = require("../unstack");
        var _where = require("../where");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Compute QR decomposition of m-by-n matrix using Householder transformation.
         *
         * Implementation based on
         *   [http://www.cs.cornell.edu/~bindel/class/cs6210-f09/lec18.pdf]
         * (http://www.cs.cornell.edu/~bindel/class/cs6210-f09/lec18.pdf)
         *
         * ```js
         * const a = tf.tensor2d([[1, 2], [3, 4]]);
         * let [q, r] = tf.linalg.qr(a);
         * console.log('Q');
         * q.print();
         * console.log('R');
         * r.print();
         * console.log('Orthogonalized');
         * q.dot(q.transpose()).print()  // should be nearly the identity matrix.
         * console.log('Reconstructed');
         * q.dot(r).print(); // should be nearly [[1, 2], [3, 4]];
         * ```
         *
         * @param x The `tf.Tensor` to be QR-decomposed. Must have rank >= 2. Suppose
         *   it has the shape `[..., M, N]`.
         * @param fullMatrices An optional boolean parameter. Defaults to `false`.
         *   If `true`, compute full-sized `Q`. If `false` (the default),
         *   compute only the leading N columns of `Q` and `R`.
         * @returns An `Array` of two `tf.Tensor`s: `[Q, R]`. `Q` is a unitary matrix,
         *   i.e., its columns all have unit norm and are mutually orthogonal.
         *   If `M >= N`,
         *     If `fullMatrices` is `false` (default),
         *       - `Q` has a shape of `[..., M, N]`,
         *       - `R` has a shape of `[..., N, N]`.
         *     If `fullMatrices` is `true` (default),
         *       - `Q` has a shape of `[..., M, M]`,
         *       - `R` has a shape of `[..., M, N]`.
         *   If `M < N`,
         *     - `Q` has a shape of `[..., M, M]`,
         *     - `R` has a shape of `[..., M, N]`.
         * @throws If the rank of `x` is less than 2.
         *
         * @doc {heading:'Operations',
         *       subheading:'Linear Algebra',
         *       namespace:'linalg'}
         */
        function qr_(x, fullMatrices = false) {
            (0,
                _util.assert)(x.rank >= 2, () => `qr() requires input tensor to have a rank >= 2, but got rank ${x.rank}`);
            if (x.rank === 2) {
                return qr2d(x, fullMatrices);
            } else {
                // Rank > 2.
                // TODO(cais): Below we split the input into individual 2D tensors,
                //   perform QR decomposition on them and then stack the results back
                //   together. We should explore whether this can be parallelized.
                const outerDimsProd = x.shape.slice(0, x.shape.length - 2).reduce((value, prev) => value * prev);
                const x2ds = (0,
                    _unstack.unstack)((0,
                        _reshape.reshape)(x, [outerDimsProd, x.shape[x.shape.length - 2], x.shape[x.shape.length - 1]]), 0);
                const q2ds = [];
                const r2ds = [];
                x2ds.forEach(x2d => {
                    const [q2d, r2d] = qr2d(x2d, fullMatrices);
                    q2ds.push(q2d);
                    r2ds.push(r2d);
                }
                );
                const q = (0,
                    _reshape.reshape)((0,
                        _stack.stack)(q2ds, 0), x.shape);
                const r = (0,
                    _reshape.reshape)((0,
                        _stack.stack)(r2ds, 0), x.shape);
                return [q, r];
            }
        }
        function qr2d(x, fullMatrices = false) {
            return _engine.ENGINE.tidy(() => {
                (0,
                    _util.assert)(x.shape.length === 2, () => `qr2d() requires a 2D Tensor, but got a ${x.shape.length}D Tensor.`);
                const m = x.shape[0];
                const n = x.shape[1];
                let q = (0,
                    _eye.eye)(m);
                // Orthogonal transform so far.
                let r = (0,
                    _clone.clone)(x);
                // Transformed matrix so far.
                const one2D = (0,
                    _tensor2d.tensor2d)([[1]], [1, 1]);
                let w = (0,
                    _clone.clone)(one2D);
                const iters = m >= n ? n : m;
                for (let j = 0; j < iters; ++j) {
                    // This tidy within the for-loop ensures we clean up temporary
                    // tensors as soon as they are no longer needed.
                    const rTemp = r;
                    const wTemp = w;
                    const qTemp = q;
                    [w, r, q] = _engine.ENGINE.tidy(() => {
                        // Find H = I - tau * w * w', to put zeros below R(j, j).
                        const rjEnd1 = (0,
                            _slice.slice)(r, [j, j], [m - j, 1]);
                        const normX = (0,
                            _norm.norm)(rjEnd1);
                        const rjj = (0,
                            _slice.slice)(r, [j, j], [1, 1]);
                        // The sign() function returns 0 on 0, which causes division by zero.
                        const s = (0,
                            _where.where)((0,
                                _greater.greater)(rjj, 0), (0,
                                    _tensor2d.tensor2d)([[-1]]), (0,
                                        _tensor2d.tensor2d)([[1]]));
                        const u1 = (0,
                            _sub.sub)(rjj, (0,
                                _mul.mul)(s, normX));
                        const wPre = (0,
                            _div.div)(rjEnd1, u1);
                        if (wPre.shape[0] === 1) {
                            w = (0,
                                _clone.clone)(one2D);
                        } else {
                            w = (0,
                                _concat.concat)([one2D, (0,
                                    _slice.slice)(wPre, [1, 0], [wPre.shape[0] - 1, wPre.shape[1]])], 0);
                        }
                        const tau = (0,
                            _neg.neg)((0,
                                _div.div)((0,
                                    _mat_mul.matMul)(s, u1), normX));
                        // -- R := HR, Q := QH.
                        const rjEndAll = (0,
                            _slice.slice)(r, [j, 0], [m - j, n]);
                        const tauTimesW = (0,
                            _mul.mul)(tau, w);
                        const wT = (0,
                            _transpose.transpose)(w);
                        if (j === 0) {
                            r = (0,
                                _sub.sub)(rjEndAll, (0,
                                    _mat_mul.matMul)(tauTimesW, (0,
                                        _mat_mul.matMul)(wT, rjEndAll)));
                        } else {
                            const rTimesTau = (0,
                                _sub.sub)(rjEndAll, (0,
                                    _mat_mul.matMul)(tauTimesW, (0,
                                        _mat_mul.matMul)(wT, rjEndAll)));
                            r = (0,
                                _concat.concat)([(0,
                                    _slice.slice)(r, [0, 0], [j, n]), rTimesTau], 0);
                        }
                        const tawTimesWT = (0,
                            _transpose.transpose)(tauTimesW);
                        const qAllJEnd = (0,
                            _slice.slice)(q, [0, j], [m, q.shape[1] - j]);
                        if (j === 0) {
                            q = (0,
                                _sub.sub)(qAllJEnd, (0,
                                    _mat_mul.matMul)((0,
                                        _mat_mul.matMul)(qAllJEnd, w), tawTimesWT));
                        } else {
                            const qTimesTau = (0,
                                _sub.sub)(qAllJEnd, (0,
                                    _mat_mul.matMul)((0,
                                        _mat_mul.matMul)(qAllJEnd, w), tawTimesWT));
                            q = (0,
                                _concat.concat)([(0,
                                    _slice.slice)(q, [0, 0], [m, j]), qTimesTau], 1);
                        }
                        return [w, r, q];
                    }
                    );
                    (0,
                        _globals.dispose)([rTemp, wTemp, qTemp]);
                }
                if (!fullMatrices && m > n) {
                    q = (0,
                        _slice.slice)(q, [0, 0], [m, n]);
                    r = (0,
                        _slice.slice)(r, [0, 0], [n, n]);
                }
                return [q, r];
            }
            );
        }
        const qr = (0,
            _operation.op)({
                qr_
            });
        exports.qr = qr;

    }
        , {
        "../../engine": 77,
        "../../globals": 81,
        "../../util": 509,
        "../clone": 239,
        "../concat": 241,
        "../div": 269,
        "../eye": 283,
        "../greater": 296,
        "../mat_mul": 346,
        "../mul": 362,
        "../neg": 365,
        "../norm": 367,
        "../operation": 372,
        "../reshape": 402,
        "../slice": 429,
        "../stack": 457,
        "../sub": 463,
        "../tensor2d": 469,
        "../transpose": 477,
        "../unstack": 481,
        "../where": 484
    }],
    323: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.linspace = linspace;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Return an evenly spaced sequence of numbers over the given interval.
         *
         * ```js
         * tf.linspace(0, 9, 10).print();
         * ```
         * @param start The start value of the sequence.
         * @param stop The end value of the sequence.
         * @param num The number of values to generate.
         *
         * @doc {heading: 'Tensors', subheading: 'Creation'}
         */
        function linspace(start, stop, num) {
            if (num <= 0) {
                throw new Error('The number of values should be positive.');
            }
            const attrs = {
                start,
                stop,
                num
            };
            return _engine.ENGINE.runKernel(_kernel_names.LinSpace, {}, attrs);
        }

    }
        , {
        "../engine": 77,
        "../kernel_names": 198
    }],
    324: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.localResponseNormalization = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var util = _interopRequireWildcard(require("../util"));
        var _operation = require("./operation");
        var _reshape = require("./reshape");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Normalizes the activation of a local neighborhood across or within
         * channels.
         *
         * @param x The input tensor. The 4-D input tensor is treated as a 3-D array
         *     of 1D vectors (along the last dimension), and each vector is
         *     normalized independently.
         * @param depthRadius The number of adjacent channels in the 1D normalization
         *     window.
         * @param bias A constant bias term for the basis.
         * @param alpha A scale factor, usually positive.
         * @param beta An exponent.
         *
         * @doc {heading: 'Operations', subheading: 'Normalization'}
         */
        function localResponseNormalization_(x, depthRadius = 5, bias = 1, alpha = 1, beta = 0.5) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'localResponseNormalization');
            util.assert($x.rank === 4 || $x.rank === 3, () => `Error in localResponseNormalization: x must be rank 3 or 4 but got
               rank ${$x.rank}.`);
            util.assert(util.isInt(depthRadius), () => `Error in localResponseNormalization: depthRadius must be an ` + `integer but got depthRadius ${depthRadius}.`);
            let x4D = $x;
            let reshapedTo4D = false;
            if ($x.rank === 3) {
                reshapedTo4D = true;
                x4D = (0,
                    _reshape.reshape)($x, [1, $x.shape[0], $x.shape[1], $x.shape[2]]);
            }
            const inputs = {
                x: x4D
            };
            const attrs = {
                depthRadius,
                bias,
                alpha,
                beta
            };
            // tslint:disable-next-line: no-unnecessary-type-assertion
            const res = _engine.ENGINE.runKernel(_kernel_names.LRN, inputs, attrs);
            if (reshapedTo4D) {
                return (0,
                    _reshape.reshape)(res, [res.shape[1], res.shape[2], res.shape[3]]);
            } else {
                return res;
            }
        }
        const localResponseNormalization = (0,
            _operation.op)({
                localResponseNormalization_
            });
        exports.localResponseNormalization = localResponseNormalization;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "../util": 509,
        "./operation": 372,
        "./reshape": 402
    }],
    325: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.localResponseNormalizationBackprop = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        function localResponseNormalizationBackprop_(x, y, dy, depthRadius = 5, bias = 1, alpha = 1, beta = 0.5) {
            const inputs = {
                x,
                y,
                dy
            };
            const attrs = {
                depthRadius,
                bias,
                alpha,
                beta
            };
            return _engine.ENGINE.runKernel(_kernel_names.LRNGrad, inputs, attrs);
        }
        const localResponseNormalizationBackprop = (0,
            _operation.op)({
                localResponseNormalizationBackprop_
            });
        exports.localResponseNormalizationBackprop = localResponseNormalizationBackprop;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "./operation": 372
    }],
    326: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.log = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes natural logarithm of the input `tf.Tensor` element-wise: `ln(x)`
         *
         * ```js
         * const x = tf.tensor1d([1, 2, Math.E]);
         *
         * x.log().print();  // or tf.log(x)
         * ```
         * @param x The input tensor.
         *
         * @doc {heading: 'Operations', subheading: 'Basic math'}
         */
        function log_(x) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'log', 'float32');
            const inputs = {
                x: $x
            };
            return _engine.ENGINE.runKernel(_kernel_names.Log, inputs);
        }
        const log = (0,
            _operation.op)({
                log_
            });
        exports.log = log;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    327: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.log1p = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes natural logarithm of the input `tf.Tensor` plus one
         * element-wise: `ln(1 + x)`
         *
         * ```js
         * const x = tf.tensor1d([1, 2, Math.E - 1]);
         *
         * x.log1p().print();  // or tf.log1p(x)
         * ```
         * @param x The input tensor.
         *
         * @doc {heading: 'Operations', subheading: 'Basic math'}
         */
        function log1p_(x) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'log1p');
            const inputs = {
                x: $x
            };
            return _engine.ENGINE.runKernel(_kernel_names.Log1p, inputs);
        }
        const log1p = (0,
            _operation.op)({
                log1p_
            });
        exports.log1p = log1p;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    328: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.logSigmoid = void 0;
        var _gradients = require("../gradients");
        var _tensor_util_env = require("../tensor_util_env");
        var _mul = require("./mul");
        var _neg = require("./neg");
        var _operation = require("./operation");
        var _sigmoid = require("./sigmoid");
        var _softplus = require("./softplus");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes log sigmoid of the input `tf.Tensor` element-wise:
         * `logSigmoid(x)`. For numerical stability, we use `-tf.softplus(-x)`.
         *
         * ```js
         * const x = tf.tensor1d([0, 1, -1, .7]);
         *
         * x.logSigmoid().print();  // or tf.logSigmoid(x)
         * ```
         * @param x The input tensor.
         *
         * @doc {heading: 'Operations', subheading: 'Basic math'}
         */
        function logSigmoid_(x) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'logSigmoid');
            // Use a custom gradient to maintain previous implementation.
            // There is no LogSigmoid kernel in TF so we can't use engine.runKernel
            // directly
            const customOp = (0,
                _gradients.customGrad)(x => {
                    // TODO(yassogba) we can remove the chained softplus call here only
                    // after backends have modualrized softplus at which point we can call
                    // engine runKernel(..., Sotfplus, ...) directly.
                    const value = (0,
                        _neg.neg)((0,
                            _softplus.softplus)((0,
                                _neg.neg)(x)));
                    const gradFunc = dy => {
                        const derX = (0,
                            _mul.mul)(dy, (0,
                                _sigmoid.sigmoid)((0,
                                    _neg.neg)(x)));
                        return derX;
                    }
                        ;
                    return {
                        value,
                        gradFunc
                    };
                }
                );
            return customOp($x);
        }
        const logSigmoid = (0,
            _operation.op)({
                logSigmoid_
            });
        exports.logSigmoid = logSigmoid;

    }
        , {
        "../gradients": 82,
        "../tensor_util_env": 504,
        "./mul": 362,
        "./neg": 365,
        "./operation": 372,
        "./sigmoid": 420,
        "./softplus": 436
    }],
    329: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.logSoftmax = void 0;
        var _gradients = require("../gradients");
        var _tensor_util_env = require("../tensor_util_env");
        var _cast = require("./cast");
        var _exp = require("./exp");
        var _log = require("./log");
        var _max = require("./max");
        var _mul = require("./mul");
        var _operation = require("./operation");
        var _sub = require("./sub");
        var _sum = require("./sum");
        /**
         * @license
         * Copyright 2020 Google Inc. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes the log softmax.
         *
         * ```js
         * const a = tf.tensor1d([1, 2, 3]);
         *
         * a.logSoftmax().print();  // or tf.logSoftmax(a)
         * ```
         *
         * ```js
         * const a = tf.tensor2d([2, 4, 6, 1, 2, 3], [2, 3]);
         *
         * a.logSoftmax().print();  // or tf.logSoftmax(a)
         * ```
         *
         * @param logits The logits array.
         * @param axis The dimension softmax would be performed on. Defaults to `-1`
         *     which indicates the last dimension.
         *
         * @doc {heading: 'Operations', subheading: 'Normalization'}
         */
        function logSoftmax_(logits, axis = -1) {
            const $logits = (0,
                _tensor_util_env.convertToTensor)(logits, 'logits', 'logSoftmax');
            if (axis === -1) {
                axis = $logits.rank - 1;
            }
            if (axis !== $logits.rank - 1) {
                throw Error('Log Softmax along a non-last dimension is not yet supported. ' + `Logits was rank ${$logits.rank} and axis was ${axis}`);
            }
            // const forward: ForwardFunc<Tensor> = (backend, save) => {
            //   const keepDims = true;
            //   const xMax = max(logits, axis, true);
            //   const shifted = sub(logits, xMax);
            //   const value =
            //       sub(cast(shifted, 'float32'), log(sum(exp(shifted), axis,
            //       keepDims)));
            //   save([value]);
            //   return value;
            // };
            // Use a custom gradient for numerical stability.
            const customOp = (0,
                _gradients.customGrad)((logits, save) => {
                    const keepDims = true;
                    const xMax = (0,
                        _max.max)(logits, axis, true);
                    const shifted = (0,
                        _sub.sub)(logits, xMax);
                    const value = (0,
                        _sub.sub)((0,
                            _cast.cast)(shifted, 'float32'), (0,
                                _log.log)((0,
                                    _sum.sum)((0,
                                        _exp.exp)(shifted), axis, keepDims)));
                    save([value]);
                    const gradFunc = (dy, saved) => {
                        const [value] = saved;
                        const keepDims = true;
                        const softmax = (0,
                            _exp.exp)(value);
                        return (0,
                            _sub.sub)(dy, (0,
                                _mul.mul)((0,
                                    _sum.sum)(dy, axis, keepDims), softmax));
                    }
                        ;
                    return {
                        value,
                        gradFunc
                    };
                }
                );
            return customOp($logits);
            // TODO Use Engine.runKernel when CPU/WebGL/WASM backends implement this.
            // const inputs: LogSoftmaxInputs = {logits: $logits};
            // const attrs: LogSoftmaxAttrs = {axis};
            // return ENGINE.runKernel(
            //            LogSoftmax, inputs as {} as NamedTensorMap,
            //            attrs as {} as NamedAttrMap);
        }

        const logSoftmax = (0,
            _operation.op)({
                logSoftmax_
            });
        exports.logSoftmax = logSoftmax;

    }
        , {
        "../gradients": 82,
        "../tensor_util_env": 504,
        "./cast": 236,
        "./exp": 280,
        "./log": 326,
        "./max": 347,
        "./mul": 362,
        "./operation": 372,
        "./sub": 463,
        "./sum": 464
    }],
    330: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.logSumExp = void 0;
        var _tensor_util_env = require("../tensor_util_env");
        var _util = require("../util");
        var _add = require("./add");
        var _axis_util = require("./axis_util");
        var _exp = require("./exp");
        var _log = require("./log");
        var _max = require("./max");
        var _operation = require("./operation");
        var _reshape = require("./reshape");
        var _sub = require("./sub");
        var _sum = require("./sum");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes the log(sum(exp(elements across the reduction dimensions))).
         *
         * Reduces the input along the dimensions given in `axis`. Unless `keepDims`
         * is true, the rank of the array is reduced by 1 for each entry in `axis`.
         * If `keepDims` is true, the reduced dimensions are retained with length 1.
         * If `axis` has no entries, all dimensions are reduced, and an array with a
         * single element is returned.
         *
         * ```js
         * const x = tf.tensor1d([1, 2, 3]);
         *
         * x.logSumExp().print();  // or tf.logSumExp(x)
         * ```
         *
         * ```js
         * const x = tf.tensor2d([1, 2, 3, 4], [2, 2]);
         *
         * const axis = 1;
         * x.logSumExp(axis).print();  // or tf.logSumExp(a, axis)
         * ```
         * @param x The input tensor.
         * @param axis The dimension(s) to reduce. If null (the default),
         *     reduces all dimensions.
         * @param keepDims If true, retains reduced dimensions with length
         *     of 1. Defaults to false.
         *
         * @doc {heading: 'Operations', subheading: 'Reduction'}
         */
        function logSumExp_(x, axis = null, keepDims = false) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'logSumExp');
            const axes = (0,
                _util.parseAxisParam)(axis, $x.shape);
            const xMax = (0,
                _max.max)($x, axes, true /* keepDims */
                );
            const a = (0,
                _sub.sub)($x, xMax);
            const b = (0,
                _exp.exp)(a);
            const c = (0,
                _sum.sum)(b, axes);
            const d = (0,
                _log.log)(c);
            const res = (0,
                _add.add)((0,
                    _reshape.reshape)(xMax, d.shape), d);
            if (keepDims) {
                const newShape = (0,
                    _axis_util.expandShapeToKeepDim)(res.shape, axes);
                return (0,
                    _reshape.reshape)(res, newShape);
            }
            return res;
        }
        const logSumExp = (0,
            _operation.op)({
                logSumExp_
            });
        exports.logSumExp = logSumExp;

    }
        , {
        "../tensor_util_env": 504,
        "../util": 509,
        "./add": 205,
        "./axis_util": 221,
        "./exp": 280,
        "./log": 326,
        "./max": 347,
        "./operation": 372,
        "./reshape": 402,
        "./sub": 463,
        "./sum": 464
    }],
    331: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.logicalAnd = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _broadcast_util = require("./broadcast_util");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Returns the truth value of `a AND b` element-wise. Supports broadcasting.
         *
         * ```js
         * const a = tf.tensor1d([false, false, true, true], 'bool');
         * const b = tf.tensor1d([false, true, false, true], 'bool');
         *
         * a.logicalAnd(b).print();
         * ```
         *
         * @param a The first input tensor. Must be of dtype bool.
         * @param b The second input tensor. Must be of dtype bool.
         *
         * @doc {heading: 'Operations', subheading: 'Logical'}
         */
        function logicalAnd_(a, b) {
            const $a = (0,
                _tensor_util_env.convertToTensor)(a, 'a', 'logicalAnd', 'bool');
            const $b = (0,
                _tensor_util_env.convertToTensor)(b, 'b', 'logicalAnd', 'bool');
            (0,
                _broadcast_util.assertAndGetBroadcastShape)($a.shape, $b.shape);
            const inputs = {
                a: $a,
                b: $b
            };
            return _engine.ENGINE.runKernel(_kernel_names.LogicalAnd, inputs);
        }
        const logicalAnd = (0,
            _operation.op)({
                logicalAnd_
            });
        exports.logicalAnd = logicalAnd;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./broadcast_util": 233,
        "./operation": 372
    }],
    332: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.logicalNot = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Returns the truth value of `NOT x` element-wise.
         *
         * ```js
         * const a = tf.tensor1d([false, true], 'bool');
         *
         * a.logicalNot().print();
         * ```
         *
         * @param x The input tensor. Must be of dtype 'bool'.
         *
         * @doc {heading: 'Operations', subheading: 'Logical'}
         */
        function logicalNot_(x) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'logicalNot', 'bool');
            const inputs = {
                x: $x
            };
            return _engine.ENGINE.runKernel(_kernel_names.LogicalNot, inputs);
        }
        const logicalNot = (0,
            _operation.op)({
                logicalNot_
            });
        exports.logicalNot = logicalNot;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    333: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.logicalOr = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _broadcast_util = require("./broadcast_util");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Returns the truth value of `a OR b` element-wise. Supports broadcasting.
         *
         * ```js
         * const a = tf.tensor1d([false, false, true, true], 'bool');
         * const b = tf.tensor1d([false, true, false, true], 'bool');
         *
         * a.logicalOr(b).print();
         * ```
         * @param a The first input tensor. Must be of dtype bool.
         * @param b The second input tensor. Must be of dtype bool.
         *
         * @doc {heading: 'Operations', subheading: 'Logical'}
         */
        function logicalOr_(a, b) {
            const $a = (0,
                _tensor_util_env.convertToTensor)(a, 'a', 'logicalOr', 'bool');
            const $b = (0,
                _tensor_util_env.convertToTensor)(b, 'b', 'logicalOr', 'bool');
            (0,
                _broadcast_util.assertAndGetBroadcastShape)($a.shape, $b.shape);
            const inputs = {
                a: $a,
                b: $b
            };
            return _engine.ENGINE.runKernel(_kernel_names.LogicalOr, inputs);
        }
        const logicalOr = (0,
            _operation.op)({
                logicalOr_
            });
        exports.logicalOr = logicalOr;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./broadcast_util": 233,
        "./operation": 372
    }],
    334: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.logicalXor = void 0;
        var _tensor_util_env = require("../tensor_util_env");
        var _broadcast_util = require("./broadcast_util");
        var _logical_and = require("./logical_and");
        var _logical_not = require("./logical_not");
        var _logical_or = require("./logical_or");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Returns the truth value of `a XOR b` element-wise. Supports broadcasting.
         *
         * ```js
         * const a = tf.tensor1d([false, false, true, true], 'bool');
         * const b = tf.tensor1d([false, true, false, true], 'bool');
         *
         * a.logicalXor(b).print();
         * ```
         *
         * @param a The first input tensor. Must be of dtype bool.
         * @param b The second input tensor. Must be of dtype bool.
         *
         * @doc {heading: 'Operations', subheading: 'Logical'}
         */
        function logicalXor_(a, b) {
            const $a = (0,
                _tensor_util_env.convertToTensor)(a, 'a', 'logicalXor', 'bool');
            const $b = (0,
                _tensor_util_env.convertToTensor)(b, 'b', 'logicalXor', 'bool');
            (0,
                _broadcast_util.assertAndGetBroadcastShape)($a.shape, $b.shape);
            // x ^ y = (x | y) & ~(x & y)
            return (0,
                _logical_and.logicalAnd)((0,
                    _logical_or.logicalOr)(a, b), (0,
                        _logical_not.logicalNot)((0,
                            _logical_and.logicalAnd)(a, b)));
        }
        const logicalXor = (0,
            _operation.op)({
                logicalXor_
            });
        exports.logicalXor = logicalXor;

    }
        , {
        "../tensor_util_env": 504,
        "./broadcast_util": 233,
        "./logical_and": 331,
        "./logical_not": 332,
        "./logical_or": 333,
        "./operation": 372
    }],
    335: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.Reduction = void 0;
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var Reduction;
        exports.Reduction = Reduction;
        (function (Reduction) {
            Reduction[Reduction["NONE"] = 0] = "NONE";
            Reduction[Reduction["MEAN"] = 1] = "MEAN";
            Reduction[Reduction["SUM"] = 2] = "SUM";
            Reduction[Reduction["SUM_BY_NONZERO_WEIGHTS"] = 3] = "SUM_BY_NONZERO_WEIGHTS";
        }
        )(Reduction || (exports.Reduction = Reduction = {}));

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

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.absoluteDifference = void 0;
        var _tensor_util_env = require("../../tensor_util_env");
        var _util = require("../../util");
        var _abs = require("../abs");
        var _loss_ops_utils = require("../loss_ops_utils");
        var _operation = require("../operation");
        var _sub = require("../sub");
        var _compute_weighted_loss = require("./compute_weighted_loss");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes the absolute difference loss between two tensors.
         *
         * @param labels The ground truth output tensor, same dimensions as
         *    'predictions'.
         * @param predictions The predicted outputs.
         * @param weights Tensor whose rank is either 0, or the same rank as
         *    `labels`, and must be broadcastable to `labels` (i.e., all dimensions
         *    must be either `1`, or the same as the corresponding `losses`
         *    dimension).
         * @param reduction Type of reduction to apply to loss. Should be of type
         *    `Reduction`
         *
         * @doc {heading: 'Training', subheading: 'Losses', namespace: 'losses'}
         */
        function absoluteDifference_(labels, predictions, weights, reduction = _loss_ops_utils.Reduction.SUM_BY_NONZERO_WEIGHTS) {
            const $labels = (0,
                _tensor_util_env.convertToTensor)(labels, 'labels', 'absoluteDifference');
            const $predictions = (0,
                _tensor_util_env.convertToTensor)(predictions, 'predictions', 'absoluteDifference');
            let $weights = null;
            if (weights != null) {
                $weights = (0,
                    _tensor_util_env.convertToTensor)(weights, 'weights', 'absoluteDifference');
            }
            (0,
                _util.assertShapesMatch)($labels.shape, $predictions.shape, 'Error in absoluteDifference: ');
            const losses = (0,
                _abs.abs)((0,
                    _sub.sub)($labels, $predictions));
            return (0,
                _compute_weighted_loss.computeWeightedLoss)(losses, $weights, reduction);
        }
        const absoluteDifference = (0,
            _operation.op)({
                absoluteDifference_
            });
        exports.absoluteDifference = absoluteDifference;

    }
        , {
        "../../tensor_util_env": 504,
        "../../util": 509,
        "../abs": 202,
        "../loss_ops_utils": 335,
        "../operation": 372,
        "../sub": 463,
        "./compute_weighted_loss": 337
    }],
    337: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.computeWeightedLoss = void 0;
        var _tensor_util_env = require("../../tensor_util_env");
        var _cast = require("../cast");
        var _div = require("../div");
        var _loss_ops_utils = require("../loss_ops_utils");
        var _mean = require("../mean");
        var _mul = require("../mul");
        var _not_equal = require("../not_equal");
        var _ones = require("../ones");
        var _operation = require("../operation");
        var _scalar = require("../scalar");
        var _sum = require("../sum");
        /**
         * Computes the weighted loss between two tensors.
         *
         * @param losses Tensor of shape `[batch_size, d1, ..., dN]`.
         * @param weights Tensor whose rank is either 0, or the same rank as
         *    `losses`, and must be broadcastable to `losses` (i.e., all
         *    dimensions must be either `1`, or the same as the corresponding
         *    `losses` dimension).
         *
         * @doc {heading: 'Training', subheading: 'Losses', namespace: 'losses'}
         */
        function computeWeightedLoss_(losses, weights, reduction = _loss_ops_utils.Reduction.SUM_BY_NONZERO_WEIGHTS) {
            const $losses = (0,
                _tensor_util_env.convertToTensor)(losses, 'losses', 'computeWeightedLoss');
            let $weights = null;
            if (weights != null) {
                $weights = (0,
                    _tensor_util_env.convertToTensor)(weights, 'weights', 'computeWeightedLoss');
            }
            const weightedLoss = $weights == null ? $losses : (0,
                _mul.mul)($losses, $weights);
            if (reduction === _loss_ops_utils.Reduction.NONE) {
                return weightedLoss;
            }
            if (reduction === _loss_ops_utils.Reduction.SUM) {
                return (0,
                    _sum.sum)(weightedLoss);
            }
            if (reduction === _loss_ops_utils.Reduction.MEAN) {
                if ($weights == null) {
                    return (0,
                        _mean.mean)(weightedLoss);
                } else {
                    const broadcastFactor = $losses.size / $weights.size;
                    const result = (0,
                        _div.div)((0,
                            _sum.sum)(weightedLoss), (0,
                                _sum.sum)($weights));
                    return broadcastFactor > 1 ? (0,
                        _div.div)(result, (0,
                            _scalar.scalar)(broadcastFactor)) : result;
                }
            }
            if (reduction === _loss_ops_utils.Reduction.SUM_BY_NONZERO_WEIGHTS) {
                if ($weights == null) {
                    return (0,
                        _div.div)((0,
                            _sum.sum)(weightedLoss), (0,
                                _scalar.scalar)($losses.size));
                } else {
                    const broadcastedWeights = (0,
                        _mul.mul)($weights, (0,
                            _ones.ones)($losses.shape));
                    const numNonZeros = (0,
                        _cast.cast)((0,
                            _sum.sum)((0,
                                _not_equal.notEqual)(broadcastedWeights, (0,
                                    _scalar.scalar)(0))), 'float32');
                    return (0,
                        _div.div)((0,
                            _sum.sum)(weightedLoss), numNonZeros);
                }
            }
            throw Error(`Unknown reduction: ${reduction}`);
        }
        const computeWeightedLoss = (0,
            _operation.op)({
                computeWeightedLoss_
            });
        exports.computeWeightedLoss = computeWeightedLoss;

    }
        , {
        "../../tensor_util_env": 504,
        "../cast": 236,
        "../div": 269,
        "../loss_ops_utils": 335,
        "../mean": 354,
        "../mul": 362,
        "../not_equal": 368,
        "../ones": 370,
        "../operation": 372,
        "../scalar": 411,
        "../sum": 464
    }],
    338: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.cosineDistance = void 0;
        var _tensor_util_env = require("../../tensor_util_env");
        var _util = require("../../util");
        var _loss_ops_utils = require("../loss_ops_utils");
        var _mul = require("../mul");
        var _operation = require("../operation");
        var _scalar = require("../scalar");
        var _sub = require("../sub");
        var _sum = require("../sum");
        var _compute_weighted_loss = require("./compute_weighted_loss");
        /**
         * Computes the cosine distance loss between two tensors.
         *
         * @param labels The ground truth output tensor, same dimensions as
         *    'predictions'.
         * @param predictions The predicted outputs.
         * @param axis The dimension along which the cosine distance is computed.
         * @param weights Tensor whose rank is either 0, or the same rank as
         *    `labels`, and must be broadcastable to `labels` (i.e., all dimensions
         *    must be either `1`, or the same as the corresponding `losses`
         *    dimension).
         * @param reduction Type of reduction to apply to loss. Should be of type
         *    `Reduction`
         *
         * @doc {heading: 'Training', subheading: 'Losses', namespace: 'losses'}
         */
        function cosineDistance_(labels, predictions, axis, weights, reduction = _loss_ops_utils.Reduction.SUM_BY_NONZERO_WEIGHTS) {
            const $labels = (0,
                _tensor_util_env.convertToTensor)(labels, 'labels', 'cosineDistance');
            const $predictions = (0,
                _tensor_util_env.convertToTensor)(predictions, 'predictions', 'cosineDistance');
            let $weights = null;
            if (weights != null) {
                $weights = (0,
                    _tensor_util_env.convertToTensor)(weights, 'weights', 'cosineDistance');
            }
            (0,
                _util.assertShapesMatch)($labels.shape, $predictions.shape, 'Error in cosineDistance: ');
            const one = (0,
                _scalar.scalar)(1);
            const losses = (0,
                _sub.sub)(one, (0,
                    _sum.sum)((0,
                        _mul.mul)($labels, $predictions), axis, true));
            return (0,
                _compute_weighted_loss.computeWeightedLoss)(losses, $weights, reduction);
        }
        const cosineDistance = (0,
            _operation.op)({
                cosineDistance_
            });
        exports.cosineDistance = cosineDistance;

    }
        , {
        "../../tensor_util_env": 504,
        "../../util": 509,
        "../loss_ops_utils": 335,
        "../mul": 362,
        "../operation": 372,
        "../scalar": 411,
        "../sub": 463,
        "../sum": 464,
        "./compute_weighted_loss": 337
    }],
    339: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.hingeLoss = void 0;
        var _tensor_util_env = require("../../tensor_util_env");
        var _util = require("../../util");
        var _loss_ops_utils = require("../loss_ops_utils");
        var _mul = require("../mul");
        var _operation = require("../operation");
        var _relu = require("../relu");
        var _scalar = require("../scalar");
        var _sub = require("../sub");
        var _compute_weighted_loss = require("./compute_weighted_loss");
        /**
         * Computes the Hinge loss between two tensors.
         *
         * @param labels The ground truth output tensor, same dimensions as
         *    'predictions'.
         * @param predictions The predicted outputs.
         * @param weights Tensor whose rank is either 0, or the same rank as
         *    `labels`, and must be broadcastable to `labels` (i.e., all dimensions
         *    must be either `1`, or the same as the corresponding `losses`
         *    dimension).
         * @param reduction Type of reduction to apply to loss. Should be of type
         *    `Reduction`
         *
         * @doc {heading: 'Training', subheading: 'Losses', namespace: 'losses'}
         */
        function hingeLoss_(labels, predictions, weights, reduction = _loss_ops_utils.Reduction.SUM_BY_NONZERO_WEIGHTS) {
            let $labels = (0,
                _tensor_util_env.convertToTensor)(labels, 'labels', 'hingeLoss');
            const $predictions = (0,
                _tensor_util_env.convertToTensor)(predictions, 'predictions', 'hingeLoss');
            let $weights = null;
            if (weights != null) {
                $weights = (0,
                    _tensor_util_env.convertToTensor)(weights, 'weights', 'hingeLoss');
            }
            (0,
                _util.assertShapesMatch)($labels.shape, $predictions.shape, 'Error in hingeLoss: ');
            const one = (0,
                _scalar.scalar)(1);
            // Convert binary labels to (-1, 1)
            $labels = (0,
                _sub.sub)((0,
                    _mul.mul)((0,
                        _scalar.scalar)(2), $labels), one);
            const losses = (0,
                _relu.relu)((0,
                    _sub.sub)(one, (0,
                        _mul.mul)($labels, $predictions)));
            return (0,
                _compute_weighted_loss.computeWeightedLoss)(losses, $weights, reduction);
        }
        const hingeLoss = (0,
            _operation.op)({
                hingeLoss_
            });
        exports.hingeLoss = hingeLoss;

    }
        , {
        "../../tensor_util_env": 504,
        "../../util": 509,
        "../loss_ops_utils": 335,
        "../mul": 362,
        "../operation": 372,
        "../relu": 400,
        "../scalar": 411,
        "../sub": 463,
        "./compute_weighted_loss": 337
    }],
    340: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.huberLoss = void 0;
        var _tensor_util_env = require("../../tensor_util_env");
        var _util = require("../../util");
        var _abs = require("../abs");
        var _add = require("../add");
        var _loss_ops_utils = require("../loss_ops_utils");
        var _minimum = require("../minimum");
        var _mul = require("../mul");
        var _operation = require("../operation");
        var _scalar = require("../scalar");
        var _square = require("../square");
        var _sub = require("../sub");
        var _compute_weighted_loss = require("./compute_weighted_loss");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes the Huber loss between two tensors.
         *
         * @param labels The ground truth output tensor, same dimensions as
         *    'predictions'.
         * @param predictions The predicted outputs.
         * @param weights Tensor whose rank is either 0, or the same rank as
         *    `labels`, and must be broadcastable to `labels` (i.e., all dimensions
         *    must be either `1`, or the same as the corresponding `losses`
         *    dimension).
         * @param delta Point where Huber loss changes from quadratic to linear.
         * @param reduction Type of reduction to apply to loss. Should be of type
         *    `Reduction`.
         *
         * @doc {heading: 'Training', subheading: 'Losses', namespace: 'losses'}
         */
        function huberLoss_(labels, predictions, weights, delta = 1.0, reduction = _loss_ops_utils.Reduction.SUM_BY_NONZERO_WEIGHTS) {
            const $labels = (0,
                _tensor_util_env.convertToTensor)(labels, 'labels', 'huberLoss');
            const $predictions = (0,
                _tensor_util_env.convertToTensor)(predictions, 'predictions', 'huberLoss');
            let $weights = null;
            if (weights != null) {
                $weights = (0,
                    _tensor_util_env.convertToTensor)(weights, 'weights', 'huberLoss');
            }
            (0,
                _util.assertShapesMatch)($labels.shape, $predictions.shape, 'Error in huberLoss: ');
            const deltaScalar = (0,
                _scalar.scalar)(delta);
            const error = (0,
                _abs.abs)((0,
                    _sub.sub)($predictions, $labels));
            const quadratic = (0,
                _minimum.minimum)(error, deltaScalar);
            const linear = (0,
                _sub.sub)(error, quadratic);
            const losses = (0,
                _add.add)((0,
                    _mul.mul)((0,
                        _scalar.scalar)(0.5), (0,
                            _square.square)(quadratic)), (0,
                                _mul.mul)(deltaScalar, linear));
            return (0,
                _compute_weighted_loss.computeWeightedLoss)(losses, $weights, reduction);
        }
        const huberLoss = (0,
            _operation.op)({
                huberLoss_
            });
        exports.huberLoss = huberLoss;

    }
        , {
        "../../tensor_util_env": 504,
        "../../util": 509,
        "../abs": 202,
        "../add": 205,
        "../loss_ops_utils": 335,
        "../minimum": 357,
        "../mul": 362,
        "../operation": 372,
        "../scalar": 411,
        "../square": 454,
        "../sub": 463,
        "./compute_weighted_loss": 337
    }],
    341: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.logLoss = void 0;
        var _tensor_util_env = require("../../tensor_util_env");
        var _util = require("../../util");
        var _add = require("../add");
        var _log = require("../log");
        var _loss_ops_utils = require("../loss_ops_utils");
        var _mul = require("../mul");
        var _neg = require("../neg");
        var _operation = require("../operation");
        var _scalar = require("../scalar");
        var _sub = require("../sub");
        var _compute_weighted_loss = require("./compute_weighted_loss");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes the log loss between two tensors.
         *
         * @param labels The ground truth output tensor, same dimensions as
         *    'predictions'.
         * @param predictions The predicted outputs.
         * @param weights Tensor whose rank is either 0, or the same rank as
         *    `labels`, and must be broadcastable to `labels` (i.e., all dimensions
         *    must be either `1`, or the same as the corresponding `losses`
         *    dimension).
         * @param epsilon A small increment to avoid taking log of zero
         * @param reduction Type of reduction to apply to loss. Should be of type
         *    `Reduction`
         *
         * @doc {heading: 'Training', subheading: 'Losses', namespace: 'losses'}
         */
        function logLoss_(labels, predictions, weights, epsilon = 1e-7, reduction = _loss_ops_utils.Reduction.SUM_BY_NONZERO_WEIGHTS) {
            const $labels = (0,
                _tensor_util_env.convertToTensor)(labels, 'labels', 'logLoss');
            const $predictions = (0,
                _tensor_util_env.convertToTensor)(predictions, 'predictions', 'logLoss');
            let $weights = null;
            if (weights != null) {
                $weights = (0,
                    _tensor_util_env.convertToTensor)(weights, 'weights', 'logLoss');
            }
            (0,
                _util.assertShapesMatch)($labels.shape, $predictions.shape, 'Error in logLoss: ');
            const one = (0,
                _scalar.scalar)(1);
            const epsilonScalar = (0,
                _scalar.scalar)(epsilon);
            const l1 = (0,
                _neg.neg)((0,
                    _mul.mul)($labels, (0,
                        _log.log)((0,
                            _add.add)($predictions, epsilonScalar))));
            const l2 = (0,
                _mul.mul)((0,
                    _sub.sub)(one, $labels), (0,
                        _log.log)((0,
                            _add.add)((0,
                                _sub.sub)(one, $predictions), epsilonScalar)));
            const losses = (0,
                _sub.sub)(l1, l2);
            return (0,
                _compute_weighted_loss.computeWeightedLoss)(losses, $weights, reduction);
        }
        const logLoss = (0,
            _operation.op)({
                logLoss_
            });
        exports.logLoss = logLoss;

    }
        , {
        "../../tensor_util_env": 504,
        "../../util": 509,
        "../add": 205,
        "../log": 326,
        "../loss_ops_utils": 335,
        "../mul": 362,
        "../neg": 365,
        "../operation": 372,
        "../scalar": 411,
        "../sub": 463,
        "./compute_weighted_loss": 337
    }],
    342: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.meanSquaredError = void 0;
        var _tensor_util_env = require("../../tensor_util_env");
        var _util = require("../../util");
        var _loss_ops_utils = require("../loss_ops_utils");
        var _operation = require("../operation");
        var _squared_difference = require("../squared_difference");
        var _compute_weighted_loss = require("./compute_weighted_loss");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes the mean squared error between two tensors.
         *
         * @param labels The ground truth output tensor, same dimensions as
         *    'predictions'.
         * @param predictions The predicted outputs.
         * @param weights Tensor whose rank is either 0, or the same rank as
         *    `labels`, and must be broadcastable to `labels` (i.e., all dimensions
         *    must be either `1`, or the same as the corresponding `losses`
         *    dimension).
         * @param reduction Type of reduction to apply to loss. Should be of type
         *    `Reduction`
         *
         * @doc {heading: 'Training', subheading: 'Losses', namespace: 'losses'}
         */
        function meanSquaredError_(labels, predictions, weights, reduction = _loss_ops_utils.Reduction.SUM_BY_NONZERO_WEIGHTS) {
            const $labels = (0,
                _tensor_util_env.convertToTensor)(labels, 'labels', 'meanSquaredError');
            const $predictions = (0,
                _tensor_util_env.convertToTensor)(predictions, 'predictions', 'meanSquaredError');
            let $weights = null;
            if (weights != null) {
                $weights = (0,
                    _tensor_util_env.convertToTensor)(weights, 'weights', 'meanSquaredError');
            }
            (0,
                _util.assertShapesMatch)($labels.shape, $predictions.shape, 'Error in meanSquaredError: ');
            const losses = (0,
                _squared_difference.squaredDifference)($labels, $predictions);
            return (0,
                _compute_weighted_loss.computeWeightedLoss)(losses, $weights, reduction);
        }
        const meanSquaredError = (0,
            _operation.op)({
                meanSquaredError_
            });
        exports.meanSquaredError = meanSquaredError;

    }
        , {
        "../../tensor_util_env": 504,
        "../../util": 509,
        "../loss_ops_utils": 335,
        "../operation": 372,
        "../squared_difference": 455,
        "./compute_weighted_loss": 337
    }],
    343: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.sigmoidCrossEntropy = void 0;
        var _tensor_util_env = require("../../tensor_util_env");
        var _util = require("../../util");
        var _abs = require("../abs");
        var _add = require("../add");
        var _exp = require("../exp");
        var _log1p = require("../log1p");
        var _loss_ops_utils = require("../loss_ops_utils");
        var _mul = require("../mul");
        var _neg = require("../neg");
        var _operation = require("../operation");
        var _relu = require("../relu");
        var _scalar = require("../scalar");
        var _sub = require("../sub");
        var _compute_weighted_loss = require("./compute_weighted_loss");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        function sigmoidCrossEntropyWithLogits_(labels, logits) {
            const $labels = (0,
                _tensor_util_env.convertToTensor)(labels, 'labels', 'sigmoidCrossEntropyWithLogits');
            const $logits = (0,
                _tensor_util_env.convertToTensor)(logits, 'logits', 'sigmoidCrossEntropyWithLogits');
            (0,
                _util.assertShapesMatch)($labels.shape, $logits.shape, 'Error in sigmoidCrossEntropyWithLogits: ');
            /**
             * Implementation Details:
             *
             * For brevity, let `x = logits`, `z = labels`.  The logistic loss is
             *     z * -log(sigmoid(x)) + (1 - z) * -log(1 - sigmoid(x))
             *   = z * -log(1 / (1 + exp(-x))) + (1 - z) * -log(exp(-x) / (1 + exp(-x)))
             *   = z * log(1 + exp(-x)) + (1 - z) * (-log(exp(-x)) + log(1 + exp(-x)))
             *   = z * log(1 + exp(-x)) + (1 - z) * (x + log(1 + exp(-x))
             *   = (1 - z) * x + log(1 + exp(-x))
             *   = x - x * z + log(1 + exp(-x))
             *
             *   For x < 0, to avoid overflow in exp(-x), we reformulate the above
             *     x - x * z + log(1 + exp(-x))
             *   = log(exp(x)) - x * z + log(1 + exp(-x))
             *   = - x * z + log(1 + exp(x))
             *
             * Hence, to ensure stability and avoid overflow, the implementation uses
             * this equivalent formulation:
             *     max(x, 0) - x * z + log(1 + exp(-abs(x)))
             */
            const maxOutput = (0,
                _relu.relu)($logits);
            const outputXTarget = (0,
                _mul.mul)($logits, $labels);
            const sigmoidOutput = (0,
                _log1p.log1p)((0,
                    _exp.exp)((0,
                        _neg.neg)((0,
                            _abs.abs)($logits))));
            return (0,
                _add.add)((0,
                    _sub.sub)(maxOutput, outputXTarget), sigmoidOutput);
        }
        /**
         * Computes the sigmoid cross entropy loss between two tensors.
         *
         * If labelSmoothing is nonzero, smooth the labels towards 1/2:
         *
         *   newMulticlassLabels = multiclassLabels * (1 - labelSmoothing)
         *                         + 0.5 * labelSmoothing
         *
         * @param multiClassLabels The ground truth output tensor of shape
         * [batch_size, num_classes], same dimensions as 'predictions'.
         * @param logits The predicted outputs.
         * @param weights Tensor whose rank is either 0, or the same rank as
         *    `labels`, and must be broadcastable to `labels` (i.e., all dimensions
         *    must be either `1`, or the same as the corresponding `losses`
         *    dimension).
         * @param labelSmoothing If greater than 0, then smooth the labels.
         * @param reduction Type of reduction to apply to loss. Should be of type
         *    `Reduction`
         *
         * @doc { heading: 'Training', subheading: 'Losses', namespace: 'losses' }
         */
        function sigmoidCrossEntropy_(multiClassLabels, logits, weights, labelSmoothing = 0, reduction = _loss_ops_utils.Reduction.SUM_BY_NONZERO_WEIGHTS) {
            let $multiClassLabels = (0,
                _tensor_util_env.convertToTensor)(multiClassLabels, 'multiClassLabels', 'sigmoidCrossEntropy');
            const $logits = (0,
                _tensor_util_env.convertToTensor)(logits, 'logits', 'sigmoidCrossEntropy');
            let $weights = null;
            if (weights != null) {
                $weights = (0,
                    _tensor_util_env.convertToTensor)(weights, 'weights', 'sigmoidCrossEntropy');
            }
            (0,
                _util.assertShapesMatch)($multiClassLabels.shape, $logits.shape, 'Error in sigmoidCrossEntropy: ');
            if (labelSmoothing > 0) {
                const labelSmoothingScalar = (0,
                    _scalar.scalar)(labelSmoothing);
                const one = (0,
                    _scalar.scalar)(1);
                const half = (0,
                    _scalar.scalar)(0.5);
                $multiClassLabels = (0,
                    _add.add)((0,
                        _mul.mul)($multiClassLabels, (0,
                            _sub.sub)(one, labelSmoothingScalar)), (0,
                                _mul.mul)(half, labelSmoothingScalar));
            }
            const losses = sigmoidCrossEntropyWithLogits_($multiClassLabels, $logits);
            return (0,
                _compute_weighted_loss.computeWeightedLoss)(losses, $weights, reduction);
        }
        const sigmoidCrossEntropy = (0,
            _operation.op)({
                sigmoidCrossEntropy_
            });
        exports.sigmoidCrossEntropy = sigmoidCrossEntropy;

    }
        , {
        "../../tensor_util_env": 504,
        "../../util": 509,
        "../abs": 202,
        "../add": 205,
        "../exp": 280,
        "../log1p": 327,
        "../loss_ops_utils": 335,
        "../mul": 362,
        "../neg": 365,
        "../operation": 372,
        "../relu": 400,
        "../scalar": 411,
        "../sub": 463,
        "./compute_weighted_loss": 337
    }],
    344: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.softmaxCrossEntropy = void 0;
        var _gradients = require("../../gradients");
        var _tensor_util_env = require("../../tensor_util_env");
        var _util = require("../../util");
        var _add = require("../add");
        var _axis_util = require("../axis_util");
        var _cast = require("../cast");
        var _div = require("../div");
        var _exp = require("../exp");
        var _log_sum_exp = require("../log_sum_exp");
        var _loss_ops_utils = require("../loss_ops_utils");
        var _mul = require("../mul");
        var _neg = require("../neg");
        var _operation = require("../operation");
        var _reshape = require("../reshape");
        var _scalar = require("../scalar");
        var _sub = require("../sub");
        var _sum = require("../sum");
        var _compute_weighted_loss = require("./compute_weighted_loss");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes softmax cross entropy between logits and labels.
         *
         * Measures the probability error in discrete classification tasks in which
         * the classes are mutually exclusive (each entry is in exactly one class).
         * For example, each CIFAR-10 image is labeled with one and only one label: an
         * image can be a dog or a truck, but not both.
         *
         * `NOTE`: While the classes are mutually exclusive, their probabilities need
         * not be. All that is required is that each row of labels is a valid
         * probability distribution. If they are not, the computation of the gradient
         * will be incorrect.
         *
         * `WARNING`: This op expects unscaled logits, since it performs a softmax on
         * logits internally for efficiency. Do not call this op with the output of
         * softmax, as it will produce incorrect results.
         *
         * logits and labels must have the same shape, e.g. [batch_size, num_classes]
         * and the same dtype.
         * @param labels The labels array.
         * @param logits The logits array.
         * @param dim The dimension softmax would be performed on. Defaults to `-1`
         *     which indicates the last dimension.
         */
        function softmaxCrossEntropyWithLogits_(labels, logits, dim = -1) {
            if (dim === -1) {
                dim = logits.rank - 1;
            }
            if (dim !== logits.rank - 1) {
                throw Error(`Softmax cross entropy along a non-last dimension is not yet ` + `supported. Labels / logits was rank ${logits.rank} ` + `and dim was ${dim}`);
            }
            // Use a custom gradient for numerical stability.
            const customOp = (0,
                _gradients.customGrad)((labels, logits, save) => {
                    // Reference:
                    //   1. http://cs231n.github.io/linear-classify/#softmax
                    //   2. https://blog.feedly.com/tricks-of-the-trade-logsumexp/
                    const keepDims = true;
                    const lse = (0,
                        _log_sum_exp.logSumExp)(logits, [dim], keepDims);
                    const logResult = (0,
                        _sub.sub)((0,
                            _cast.cast)(logits, 'float32'), lse);
                    save([labels, logResult]);
                    const costVector = (0,
                        _neg.neg)((0,
                            _mul.mul)(logResult, labels));
                    const value = (0,
                        _sum.sum)(costVector, [dim]);
                    const gradFunc = (dy, saved) => {
                        const [labels, logResult] = saved;
                        const dyShape = (0,
                            _axis_util.expandShapeToKeepDim)(dy.shape, [dim]);
                        return [(0,
                            _mul.mul)((0,
                                _reshape.reshape)(dy, dyShape), (0,
                                    _sub.sub)((0,
                                        _cast.cast)(labels, 'float32'), (0,
                                            _exp.exp)(logResult))), (0,
                                                _mul.mul)((0,
                                                    _reshape.reshape)(dy, dyShape), (0,
                                                        _sub.sub)((0,
                                                            _exp.exp)(logResult), (0,
                                                                _cast.cast)(labels, 'float32')))];
                    }
                        ;
                    return {
                        value,
                        gradFunc
                    };
                }
                );
            return customOp(labels, logits);
        }
        /**
         * Computes the softmax cross entropy loss between two tensors.
         *
         * If labelSmoothing is nonzero, smooth the labels towards 1/2:
         *
         *   newOnehotLabels = onehotLabels * (1 - labelSmoothing)
         *                         + labelSmoothing / numClasses
         *
         * @param onehotLabels One hot encoded labels
         *    [batch_size, num_classes], same dimensions as 'predictions'.
         * @param logits The predicted outputs.
         * @param weights Tensor whose rank is either 0, or 1, and must be
         *    broadcastable to `loss`  of shape [batch_size]
         * @param labelSmoothing If greater than 0, then smooth the labels.
         * @param reduction Type of reduction to apply to loss. Should be of type
         *    `Reduction`
         *
         * @doc { heading: 'Training', subheading: 'Losses', namespace: 'losses' }
         */
        function softmaxCrossEntropy_(onehotLabels, logits, weights, labelSmoothing = 0, reduction = _loss_ops_utils.Reduction.SUM_BY_NONZERO_WEIGHTS) {
            let $onehotLabels = (0,
                _tensor_util_env.convertToTensor)(onehotLabels, 'onehotLabels', 'softmaxCrossEntropy');
            const $logits = (0,
                _tensor_util_env.convertToTensor)(logits, 'logits', 'softmaxCrossEntropy');
            let $weights = null;
            if (weights != null) {
                $weights = (0,
                    _tensor_util_env.convertToTensor)(weights, 'weights', 'softmaxCrossEntropy');
            }
            (0,
                _util.assertShapesMatch)($onehotLabels.shape, $logits.shape, 'Error in softmaxCrossEntropy: ');
            if (labelSmoothing > 0) {
                const labelSmoothingScalar = (0,
                    _scalar.scalar)(labelSmoothing);
                const one = (0,
                    _scalar.scalar)(1);
                const numClasses = (0,
                    _scalar.scalar)($onehotLabels.shape[1]);
                $onehotLabels = (0,
                    _add.add)((0,
                        _mul.mul)($onehotLabels, (0,
                            _sub.sub)(one, labelSmoothingScalar)), (0,
                                _div.div)(labelSmoothingScalar, numClasses));
            }
            const losses = softmaxCrossEntropyWithLogits_($onehotLabels, $logits);
            return (0,
                _compute_weighted_loss.computeWeightedLoss)(losses, $weights, reduction);
        }
        const softmaxCrossEntropy = (0,
            _operation.op)({
                softmaxCrossEntropy_
            });
        exports.softmaxCrossEntropy = softmaxCrossEntropy;

    }
        , {
        "../../gradients": 82,
        "../../tensor_util_env": 504,
        "../../util": 509,
        "../add": 205,
        "../axis_util": 221,
        "../cast": 236,
        "../div": 269,
        "../exp": 280,
        "../log_sum_exp": 330,
        "../loss_ops_utils": 335,
        "../mul": 362,
        "../neg": 365,
        "../operation": 372,
        "../reshape": 402,
        "../scalar": 411,
        "../sub": 463,
        "../sum": 464,
        "./compute_weighted_loss": 337
    }],
    345: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.lowerBound = lowerBound;
        var _search_sorted = require("./search_sorted");
        /**
         * @license
         * Copyright 2022 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Searches for where a value would go in a sorted sequence.
         *
         * This is not a method for checking containment (like javascript in).
         *
         * The typical use case for this operation is "binning", "bucketing", or
         * "discretizing". The values are assigned to bucket-indices based on the edges
         * listed in 'sortedSequence'. This operation returns the bucket-index for each
         * value.
         *
         * The index returned corresponds to the first edge greater than or equal to the
         * value.
         *
         * The axis is not settable for this operation. It always operates on the
         * innermost dimension (axis=-1). The operation will accept any number of outer
         * dimensions.
         *
         * Note: This operation assumes that 'lowerBound' is sorted along the
         * innermost axis, maybe using 'sort(..., axis=-1)'. If the sequence is not
         * sorted no error is raised and the content of the returned tensor is not well
         * defined.
         *
         * ```js
         * const edges = tf.tensor1d([-1, 3.3, 9.1, 10.0]);
         * let values = tf.tensor1d([0.0, 4.1, 12.0]);
         * const result1 = tf.lowerBound(edges, values);
         * result1.print(); // [1, 2, 4]
         *
         * const seq = tf.tensor1d([0, 3, 9, 10, 10]);
         * values = tf.tensor1d([0, 4, 10]);
         * const result2 = tf.lowerBound(seq, values);
         * result2.print(); // [0, 2, 3]
         *
         * const sortedSequence = tf.tensor2d([[0., 3., 8., 9., 10.],
         *                                     [1., 2., 3., 4., 5.]]);
         * values = tf.tensor2d([[9.8, 2.1, 4.3],
         *                       [0.1, 6.6, 4.5, ]]);
         * const result3 = tf.lowerBound(sortedSequence, values);
         * result3.print(); // [[4, 1, 2], [0, 5, 4]]
         * ```
         * @param sortedSequence: N-D. Sorted sequence.
         * @param values: N-D. Search values.
         * @return An N-D int32 tensor the size of values containing the result of
         *     applying lower bound to each value. The result is not a global index to
         *     the entire Tensor, but the index in the last dimension.
         * @doc {heading: 'Operations', subheading: 'Evaluation'}
         */
        function lowerBound(sortedSequence, values) {
            return (0,
                _search_sorted.searchSorted)(sortedSequence, values, 'left');
        }

    }
        , {
        "./search_sorted": 414
    }],
    346: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.matMul = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util = require("../tensor_util");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes the dot product of two matrices, A * B. These must be matrices.
         *
         * ```js
         * const a = tf.tensor2d([1, 2], [1, 2]);
         * const b = tf.tensor2d([1, 2, 3, 4], [2, 2]);
         *
         * a.matMul(b).print();  // or tf.matMul(a, b)
         * ```
         * @param a First matrix in dot product operation.
         * @param b Second matrix in dot product operation.
         * @param transposeA If true, `a` is transposed before multiplication.
         * @param transposeB If true, `b` is transposed before multiplication.
         *
         * @doc {heading: 'Operations', subheading: 'Matrices'}
         */
        function matMul_(a, b, transposeA = false, transposeB = false) {
            let $a = (0,
                _tensor_util_env.convertToTensor)(a, 'a', 'matMul');
            let $b = (0,
                _tensor_util_env.convertToTensor)(b, 'b', 'matMul');
            [$a, $b] = (0,
                _tensor_util.makeTypesMatch)($a, $b);
            const inputs = {
                a: $a,
                b: $b
            };
            const attrs = {
                transposeA,
                transposeB
            };
            return _engine.ENGINE.runKernel(_kernel_names.BatchMatMul, inputs, attrs);
        }
        const matMul = (0,
            _operation.op)({
                matMul_
            });
        exports.matMul = matMul;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util": 503,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    347: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.max = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes the maximum of elements across dimensions of a `tf.Tensor`.
         *
         * Reduces the input along the dimensions given in `axes`. Unless `keepDims`
         * is true, the rank of the `tf.Tensor` is reduced by 1 for each entry in
         * `axes`. If `keepDims` is true, the reduced dimensions are retained with
         * length 1. If `axes` has no entries, all dimensions are reduced, and a
         * `tf.Tensor` with a single element is returned.
         *
         * ```js
         * const x = tf.tensor1d([1, 2, 3]);
         *
         * x.max().print();  // or tf.max(x)
         * ```
         *
         * ```js
         * const x = tf.tensor2d([1, 2, 3, 4], [2, 2]);
         *
         * const axis = 1;
         * x.max(axis).print();  // or tf.max(x, axis)
         * ```
         *
         * @param x The input tensor.
         * @param axis The dimension(s) to reduce. By default it reduces
         *     all dimensions.
         * @param keepDims If true, retains reduced dimensions with size 1.
         *
         * @doc {heading: 'Operations', subheading: 'Reduction'}
         */
        function max_(x, axis = null, keepDims = false) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'max');
            const inputs = {
                x: $x
            };
            const attrs = {
                reductionIndices: axis,
                keepDims
            };
            return _engine.ENGINE.runKernel(_kernel_names.Max, inputs, attrs);
        }
        const max = (0,
            _operation.op)({
                max_
            });
        exports.max = max;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    348: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.maxPool = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var util = _interopRequireWildcard(require("../util"));
        var conv_util = _interopRequireWildcard(require("./conv_util"));
        var _operation = require("./operation");
        var _reshape = require("./reshape");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes the 2D max pooling of an image.
         *
         * @param x The input tensor, of rank 4 or rank 3 of shape
         *     `[batch, height, width, inChannels]`. If rank 3, batch of 1 is assumed.
         * @param filterSize The filter size: `[filterHeight, filterWidth]`. If
         *     `filterSize` is a single number, then `filterHeight == filterWidth`.
         * @param strides The strides of the pooling: `[strideHeight, strideWidth]`. If
         *     `strides` is a single number, then `strideHeight == strideWidth`.
         * @param dilations The dilation rates: `[dilationHeight, dilationWidth]`
         *     in which we sample input values across the height and width dimensions
         *     in dilated pooling. Defaults to `[1, 1]`. If `dilations` is a single
         *     number, then `dilationHeight == dilationWidth`. If it is greater than
         *     1, then all values of `strides` must be 1.
         * @param pad The type of padding algorithm.
         *    - `same` and stride 1: output will be of same size as input,
         *       regardless of filter size.
         *    - `valid`: output will be smaller than input if filter is larger
         *       than 1x1.
         *    - For more info, see this guide:
         *     [https://www.tensorflow.org/api_docs/python/tf/nn/convolution](
         *          https://www.tensorflow.org/api_docs/python/tf/nn/convolution)
         * @param dimRoundingMode A string from: 'ceil', 'round', 'floor'. If none is
         *     provided, it will default to truncate.
         */
        function maxPool_(x, filterSize, strides, pad, dimRoundingMode) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'maxPool');
            const dilations = 1;
            let x4D = $x;
            let reshapedTo4D = false;
            if ($x.rank === 3) {
                reshapedTo4D = true;
                x4D = (0,
                    _reshape.reshape)($x, [1, $x.shape[0], $x.shape[1], $x.shape[2]]);
            }
            util.assert(x4D.rank === 4, () => `Error in maxPool: input must be rank 4 but got rank ${x4D.rank}.`);
            util.assert(conv_util.eitherStridesOrDilationsAreOne(strides, dilations), () => 'Error in maxPool: Either strides or dilations must be 1. ' + `Got strides ${strides} and dilations '${dilations}'`);
            conv_util.checkPadOnDimRoundingMode('maxPool', pad, dimRoundingMode);
            const inputs = {
                x: x4D
            };
            const attrs = {
                filterSize,
                strides,
                pad,
                dimRoundingMode
            };
            // tslint:disable-next-line: no-unnecessary-type-assertion
            const res = _engine.ENGINE.runKernel(_kernel_names.MaxPool, inputs, attrs);
            if (reshapedTo4D) {
                return (0,
                    _reshape.reshape)(res, [res.shape[1], res.shape[2], res.shape[3]]);
            }
            return res;
        }
        const maxPool = (0,
            _operation.op)({
                maxPool_
            });
        exports.maxPool = maxPool;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "../util": 509,
        "./conv_util": 257,
        "./operation": 372,
        "./reshape": 402
    }],
    349: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.maxPool3d = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var util = _interopRequireWildcard(require("../util"));
        var _conv_util = require("./conv_util");
        var _operation = require("./operation");
        var _reshape = require("./reshape");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes the 3D max pooling.
         *
         * ```js
         * const x = tf.tensor5d([1, 2, 3, 4, 5, 6, 7, 8], [1, 2, 2, 2, 1]);
         * const result = tf.maxPool3d(x, 2, 1, 'valid');
         * result.print();
         * ```
         *
         * @param x The input tensor, of rank 5 or rank 4 of shape
         *     `[batch, depth, height, width, inChannels]`.
         * @param filterSize The filter size:
         *     `[filterDepth, filterHeight, filterWidth]`.
         *     If `filterSize` is a single number,
         *     then `filterDepth == filterHeight == filterWidth`.
         * @param strides The strides of the pooling:
         *     `[strideDepth, strideHeight, strideWidth]`.
         *     If `strides` is a single number,
         *     then `strideDepth == strideHeight == strideWidth`.
         * @param pad The type of padding algorithm.
         *    - `same` and stride 1: output will be of same size as input,
         *       regardless of filter size.
         *    - `valid`: output will be smaller than input if filter is larger
         *       than 1*1x1.
         *    - For more info, see this guide:
         *     [https://www.tensorflow.org/api_docs/python/tf/nn/convolution](
         *          https://www.tensorflow.org/api_docs/python/tf/nn/convolution)
         * @param dimRoundingMode A string from: 'ceil', 'round', 'floor'. If none is
         *     provided, it will default to truncate.
         * @param dataFormat An optional string from: "NDHWC", "NCDHW". Defaults to
         *     "NDHWC". Specify the data format of the input and output data. With the
         *     default format "NDHWC", the data is stored in the order of: [batch,
         *     depth, height, width, channels]. Only "NDHWC" is currently supported.
         * @doc {heading: 'Operations', subheading: 'Convolution'}
         */
        function maxPool3d_(x, filterSize = [1, 1, 1], strides, pad, dimRoundingMode, dataFormat = 'NDHWC') {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'maxPool3d');
            let x5D = $x;
            let reshapedTo5D = false;
            if ($x.rank === 4) {
                reshapedTo5D = true;
                x5D = (0,
                    _reshape.reshape)($x, [1, $x.shape[0], $x.shape[1], $x.shape[2], $x.shape[3]]);
            }
            util.assert(x5D.rank === 5, () => `Error in maxPool3d: x must be rank 5 but got rank ${x5D.rank}.`);
            util.assert(dataFormat === 'NDHWC', () => `Error in maxPool3d: Only NDHWC is currently supported, ` + `but got dataFormat of ${dataFormat}`);
            (0,
                _conv_util.checkPadOnDimRoundingMode)('maxPool3d', pad, dimRoundingMode);
            const inputs = {
                x: x5D
            };
            const attrs = {
                filterSize,
                strides,
                pad,
                dimRoundingMode,
                dataFormat
            };
            // tslint:disable-next-line: no-unnecessary-type-assertion
            const res = _engine.ENGINE.runKernel(_kernel_names.MaxPool3D, inputs, attrs);
            if (reshapedTo5D) {
                return (0,
                    _reshape.reshape)(res, [res.shape[1], res.shape[2], res.shape[3], res.shape[4]]);
            }
            return res;
        }
        const maxPool3d = (0,
            _operation.op)({
                maxPool3d_
            });
        exports.maxPool3d = maxPool3d;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "../util": 509,
        "./conv_util": 257,
        "./operation": 372,
        "./reshape": 402
    }],
    350: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.maxPool3dGrad = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var util = _interopRequireWildcard(require("../util"));
        var _conv_util = require("./conv_util");
        var _operation = require("./operation");
        var _reshape = require("./reshape");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes the backprop of a 3d max pool.
         *
         * @param dy The dy error, of rank 5 of shape
         *     [batchSize, depth, height, width, channels].
         * assumed.
         * @param input The original input image, of rank 5 or rank 4 of shape
         *     [batchSize, depth, height, width, channels].
         * @param output The original output image, of rank 5 of shape
         *     [batchSize, outDepth, outHeight, outWidth, channels].
         * @param filterSize The filter size:
         *     `[filterDepth, filterHeight, filterWidth]`.
         *     `filterSize` is a single number,
         *     then `filterDepth == filterHeight == filterWidth`.
         * @param strides The strides of the pooling:
         *     `[strideDepth, strideHeight, strideWidth]`. If
         *     `strides` is a single number, then `strideHeight == strideWidth`.
         * @param pad A string from: 'same', 'valid'. The type of padding algorithm
         *     used in the forward prop of the op.
         * @param dimRoundingMode A string from: 'ceil', 'round', 'floor'. If none is
         *     provided, it will default to truncate.
         */
        function maxPool3dGrad_(dy, input, output, filterSize, strides, pad, dimRoundingMode) {
            const $dy = (0,
                _tensor_util_env.convertToTensor)(dy, 'dy', 'maxPool3dGrad');
            const $input = (0,
                _tensor_util_env.convertToTensor)(input, 'input', 'maxPool3dGrad');
            const $output = (0,
                _tensor_util_env.convertToTensor)(output, 'output', 'maxPool3dGrad');
            let dy5D = $dy;
            let input5D = $input;
            let output5D = $output;
            let reshapedTo5D = false;
            if ($input.rank === 4) {
                reshapedTo5D = true;
                dy5D = (0,
                    _reshape.reshape)($dy, [1, $dy.shape[0], $dy.shape[1], $dy.shape[2], $dy.shape[3]]);
                input5D = (0,
                    _reshape.reshape)($input, [1, $input.shape[0], $input.shape[1], $input.shape[2], $input.shape[3]]);
                output5D = (0,
                    _reshape.reshape)($output, [1, $output.shape[0], $output.shape[1], $output.shape[2], $output.shape[3]]);
            }
            util.assert(dy5D.rank === 5, () => `Error in maxPool3dGrad: dy must be rank 5 but got rank ` + `${dy5D.rank}.`);
            util.assert(input5D.rank === 5, () => `Error in maxPool3dGrad: input must be rank 5 but got rank ` + `${input5D.rank}.`);
            util.assert(output5D.rank === 5, () => `Error in maxPool3dGrad: output must be rank 5 but got rank ` + `${output5D.rank}.`);
            (0,
                _conv_util.checkPadOnDimRoundingMode)('maxPool3dGrad', pad, dimRoundingMode);
            const inputs = {
                dy: dy5D,
                input: input5D,
                output: output5D
            };
            const attrs = {
                filterSize,
                strides,
                pad,
                dimRoundingMode
            };
            // tslint:disable-next-line: no-unnecessary-type-assertion
            const res = _engine.ENGINE.runKernel(_kernel_names.MaxPool3DGrad, inputs, attrs);
            if (reshapedTo5D) {
                return (0,
                    _reshape.reshape)(res, [res.shape[1], res.shape[2], res.shape[3], res.shape[4]]);
            }
            return res;
        }
        const maxPool3dGrad = (0,
            _operation.op)({
                maxPool3dGrad_
            });
        exports.maxPool3dGrad = maxPool3dGrad;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "../util": 509,
        "./conv_util": 257,
        "./operation": 372,
        "./reshape": 402
    }],
    351: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.maxPoolGrad = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var util = _interopRequireWildcard(require("../util"));
        var conv_util = _interopRequireWildcard(require("./conv_util"));
        var _operation = require("./operation");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes the backprop of a 2D max pool.
         *
         * @param dy The dy error, of rank 4 or rank 3 of shape
         *     [batchSize, height, width, channels]. If rank 3, batch of 1 is
         * assumed.
         * @param input The original input image, of rank 4, of shape
         *     [batchSize, height, width, channels].
         * @param output The original output image, of rank 4, of shape
         *     [batchSize, outHeight, outWidth, channels].
         * @param filterSize The filter size: `[filterHeight, filterWidth]`. If
         *     `filterSize` is a single number, then `filterHeight == filterWidth`.
         * @param strides The strides of the pooling: `[strideHeight, strideWidth]`. If
         *     `strides` is a single number, then `strideHeight == strideWidth`.
         * @param pad The type of padding algorithm used in the forward prop of the op.
         *     'same', 'valid', for more info, see this guide:
         *     [https://www.tensorflow.org/api_docs/python/tf/nn/convolution](
         *          https://www.tensorflow.org/api_docs/python/tf/nn/convolution)
         * @param dimRoundingMode A string from: 'ceil', 'round', 'floor'. If none is
         *     provided, it will default to truncate.
         */
        function maxPoolGrad_(dy, input, output, filterSize, strides, pad, dimRoundingMode) {
            const $dy = (0,
                _tensor_util_env.convertToTensor)(dy, 'dy', 'maxPoolGrad');
            const $input = (0,
                _tensor_util_env.convertToTensor)(input, 'input', 'maxPoolGrad');
            const $output = (0,
                _tensor_util_env.convertToTensor)(output, 'output', 'maxPoolGrad');
            util.assert($input.rank === $dy.rank, () => `Rank of input (${$input.rank}) does not match rank of dy ` + `(${$dy.rank})`);
            util.assert($dy.rank === 4, () => `Error in maxPoolGrad: dy must be rank 4 but got rank ` + `${$dy.rank}.`);
            util.assert($input.rank === 4, () => `Error in maxPoolGrad: input must be rank 4 but got rank ` + `${$input.rank}.`);
            conv_util.checkPadOnDimRoundingMode('maxPoolGrad', pad, dimRoundingMode);
            const inputs = {
                dy: $dy,
                input: $input,
                output: $output
            };
            const attrs = {
                filterSize,
                strides,
                pad,
                dimRoundingMode
            };
            // tslint:disable-next-line: no-unnecessary-type-assertion
            return _engine.ENGINE.runKernel(_kernel_names.MaxPoolGrad, inputs, attrs);
        }
        const maxPoolGrad = (0,
            _operation.op)({
                maxPoolGrad_
            });
        exports.maxPoolGrad = maxPoolGrad;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "../util": 509,
        "./conv_util": 257,
        "./operation": 372
    }],
    352: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.maxPoolWithArgmax = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes the 2D max pooling of an image with Argmax index.
         * The indices in argmax are flattened, so that a maximum value at position `[b,
         * y, x, c]` becomes flattened index: `(y * width + x) * channels + c` if
         * include_batch_in_index is False; `((b * height + y) * width + x) * channels
         * +c` if include_batch_in_index is True.
         *
         * The indices returned are always in `[0, height) x [0, width)` before
         * flattening.
         *
         * @param x The input tensor, of rank 4 or rank 3 of shape
         *     `[batch, height, width, inChannels]`. If rank 3, batch of 1 is assumed.
         * @param filterSize The filter size: `[filterHeight, filterWidth]`. If
         *     `filterSize` is a single number, then `filterHeight == filterWidth`.
         * @param strides The strides of the pooling: `[strideHeight, strideWidth]`. If
         *     `strides` is a single number, then `strideHeight == strideWidth`.
         * @param dataFormat An optional string from: "NDHWC", "NCDHW". Defaults to
         *     "NDHWC". Specify the data format of the input and output data. With the
         *     default format "NDHWC", the data is stored in the order of: [batch,
         *     depth, height, width, channels]. Only "NDHWC" is currently supported.
         * @param pad The type of padding algorithm.
         *    - `same` and stride 1: output will be of same size as input,
         *       regardless of filter size.
         *    - `valid`: output will be smaller than input if filter is larger
         *       than 1x1.
         *    - For more info, see this guide:
         *     [https://www.tensorflow.org/api_docs/python/tf/nn/convolution](
         *          https://www.tensorflow.org/api_docs/python/tf/nn/convolution)
         * @param includeBatchIndex Defaults to False. Whether to include batch
         *    dimension in flattened index of argmax.
         *
         * @doc {heading: 'Operations', subheading: 'Convolution'}
         */
        function maxPoolWithArgmax_(x, filterSize, strides, pad, includeBatchInIndex = false) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'maxPoolWithArgmax');
            const inputs = {
                x: $x
            };
            const attrs = {
                filterSize,
                strides,
                pad,
                includeBatchInIndex
            };
            // tslint:disable-next-line: no-unnecessary-type-assertion
            const result = _engine.ENGINE.runKernel(_kernel_names.MaxPoolWithArgmax, inputs, attrs);
            return {
                result: result[0],
                indexes: result[1]
            };
        }
        const maxPoolWithArgmax = (0,
            _operation.op)({
                maxPoolWithArgmax_
            });
        exports.maxPoolWithArgmax = maxPoolWithArgmax;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    353: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.maximum = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util = require("../tensor_util");
        var _tensor_util_env = require("../tensor_util_env");
        var _broadcast_util = require("./broadcast_util");
        var _cast = require("./cast");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Returns the max of a and b (`a > b ? a : b`) element-wise.
         * Supports broadcasting.
         *
         * We also expose `tf.maximumStrict` which has the same signature as this op and
         * asserts that `a` and `b` are the same shape (does not broadcast).
         *
         * ```js
         * const a = tf.tensor1d([1, 4, 3, 16]);
         * const b = tf.tensor1d([1, 2, 9, 4]);
         *
         * a.maximum(b).print();  // or tf.maximum(a, b)
         * ```
         *
         * ```js
         * // Broadcast maximum a with b.
         * const a = tf.tensor1d([2, 4, 6, 8]);
         * const b = tf.scalar(5);
         *
         * a.maximum(b).print();  // or tf.maximum(a, b)
         * ```
         *
         * @param a The first tensor.
         * @param b The second tensor. Must have the same type as `a`.
         *
         * @doc {heading: 'Operations', subheading: 'Arithmetic'}
         */
        function maximum_(a, b) {
            let $a = (0,
                _tensor_util_env.convertToTensor)(a, 'a', 'maximum');
            let $b = (0,
                _tensor_util_env.convertToTensor)(b, 'b', 'maximum');
            [$a, $b] = (0,
                _tensor_util.makeTypesMatch)($a, $b);
            if ($a.dtype === 'bool') {
                $a = (0,
                    _cast.cast)($a, 'int32');
                $b = (0,
                    _cast.cast)($b, 'int32');
            }
            (0,
                _broadcast_util.assertAndGetBroadcastShape)($a.shape, $b.shape);
            const inputs = {
                a: $a,
                b: $b
            };
            return _engine.ENGINE.runKernel(_kernel_names.Maximum, inputs);
        }
        const maximum = (0,
            _operation.op)({
                maximum_
            });
        exports.maximum = maximum;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util": 503,
        "../tensor_util_env": 504,
        "./broadcast_util": 233,
        "./cast": 236,
        "./operation": 372
    }],
    354: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.mean = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2020 Google Inc. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes the mean of elements across dimensions of a `tf.Tensor`.
         *
         * Reduces `x` along the dimensions given in `axis`. Unless `keepDims` is
         * true, the rank of the `tf.Tensor` is reduced by 1 for each entry in `axis`.
         * If `keepDims` is true, the reduced dimensions are retained with length 1.
         * If `axis` has no entries, all dimensions are reduced, and a `tf.Tensor` with
         * a single element is returned.
         *
         * ```js
         * const x = tf.tensor1d([1, 2, 3]);
         *
         * x.mean().print();  // or tf.mean(a)
         * ```
         *
         * ```js
         * const x = tf.tensor2d([1, 2, 3, 4], [2, 2]);
         *
         * const axis = 1;
         * x.mean(axis).print();  // or tf.mean(x, axis)
         * ```
         *
         * @param x The input tensor.
         * @param axis The dimension(s) to reduce. By default it reduces
         *     all dimensions.
         * @param keepDims If true, retains reduced dimensions with size 1.
         *
         * @doc {heading: 'Operations', subheading: 'Reduction'}
         */
        function mean_(x, axis = null, keepDims = false) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'mean');
            const inputs = {
                x: $x
            };
            const attrs = {
                axis,
                keepDims
            };
            return _engine.ENGINE.runKernel(_kernel_names.Mean, inputs, attrs);
        }
        const mean = (0,
            _operation.op)({
                mean_
            });
        exports.mean = mean;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    355: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.meshgrid = meshgrid;
        var _mat_mul = require("./mat_mul");
        var _ones = require("./ones");
        var _reshape = require("./reshape");
        var _tensor = require("../tensor");
        var _tensor_util_env = require("../tensor_util_env");
        var _util_base = require("../util_base");
        /**
         * @license
         * Copyright 2021 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Broadcasts parameters for evaluation on an N-D grid.
         *
         * Given N one-dimensional coordinate arrays `*args`, returns a list `outputs`
         * of N-D coordinate arrays for evaluating expressions on an N-D grid.
         *
         * Notes:
         * `meshgrid` supports cartesian ('xy') and matrix ('ij') indexing conventions.
         * When the `indexing` argument is set to 'xy' (the default), the broadcasting
         * instructions for the first two dimensions are swapped.
         * Examples:
         * Calling `const [X, Y] = meshgrid(x, y)` with the tensors
         *
         * ```javascript
         * const x = [1, 2, 3];
         * const y = [4, 5, 6];
         * const [X, Y] = tf.meshgrid(x, y);
         * // X = [[1, 2, 3],
         * //      [1, 2, 3],
         * //      [1, 2, 3]]
         * // Y = [[4, 4, 4],
         * //      [5, 5, 5],
         * //      [6, 6, 6]]
         * ```
         *
         * @param x Tensor with rank geq 1.
         * @param y Tensor with rank geq 1.
         * @param indexing
         *
         * @doc {heading: 'Operations', subheading: 'Slicing and Joining'}
         */
        function meshgrid(x, y, { indexing = 'xy' } = {}) {
            if (indexing !== 'xy' && indexing !== 'ij') {
                throw new TypeError(`${indexing} is not a valid third argument to meshgrid`);
            }
            if (x === undefined) {
                return [];
            }
            let $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'meshgrid', x instanceof _tensor.Tensor ? x.dtype : 'float32');
            if (y === undefined) {
                return [$x];
            }
            let $y = (0,
                _tensor_util_env.convertToTensor)(y, 'y', 'meshgrid', y instanceof _tensor.Tensor ? y.dtype : 'float32');
            const w = (0,
                _util_base.sizeFromShape)($x.shape);
            const h = (0,
                _util_base.sizeFromShape)($y.shape);
            if (indexing === 'xy') {
                $x = (0,
                    _reshape.reshape)($x, [1, -1]);
                $y = (0,
                    _reshape.reshape)($y, [-1, 1]);
                return [(0,
                    _mat_mul.matMul)((0,
                        _ones.ones)([h, 1], $x.dtype), $x), (0,
                            _mat_mul.matMul)($y, (0,
                                _ones.ones)([1, w], $y.dtype))];
            }
            $x = (0,
                _reshape.reshape)($x, [-1, 1]);
            $y = (0,
                _reshape.reshape)($y, [1, -1]);
            return [(0,
                _mat_mul.matMul)($x, (0,
                    _ones.ones)([1, h], $x.dtype)), (0,
                        _mat_mul.matMul)((0,
                            _ones.ones)([w, 1], $y.dtype), $y)];
        }

    }
        , {
        "../tensor": 501,
        "../tensor_util_env": 504,
        "../util_base": 510,
        "./mat_mul": 346,
        "./ones": 370,
        "./reshape": 402
    }],
    356: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.min = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2020 Google Inc. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes the minimum value from the input.
         *
         * Reduces the input along the dimensions given in `axes`. Unless `keepDims`
         * is true, the rank of the array is reduced by 1 for each entry in `axes`.
         * If `keepDims` is true, the reduced dimensions are retained with length 1.
         * If `axes` has no entries, all dimensions are reduced, and an array with a
         * single element is returned.
         *
         * ```js
         * const x = tf.tensor1d([1, 2, 3]);
         *
         * x.min().print();  // or tf.min(x)
         * ```
         *
         * ```js
         * const x = tf.tensor2d([1, 2, 3, 4], [2, 2]);
         *
         * const axis = 1;
         * x.min(axis).print();  // or tf.min(x, axis)
         * ```
         *
         * @param x The input Tensor.
         * @param axis The dimension(s) to reduce. By default it reduces
         *     all dimensions.
         * @param keepDims If true, retains reduced dimensions with size 1.
         *
         * @doc {heading: 'Operations', subheading: 'Reduction'}
         */
        function min_(x, axis = null, keepDims = false) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'min');
            const inputs = {
                x: $x
            };
            const attrs = {
                axis,
                keepDims
            };
            // tslint:disable-next-line: no-unnecessary-type-assertion
            return _engine.ENGINE.runKernel(_kernel_names.Min, inputs, attrs);
        }
        const min = (0,
            _operation.op)({
                min_
            });
        exports.min = min;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    357: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.minimum = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util = require("../tensor_util");
        var _tensor_util_env = require("../tensor_util_env");
        var _broadcast_util = require("./broadcast_util");
        var _cast = require("./cast");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Returns the min of a and b (`a < b ? a : b`) element-wise.
         * Supports broadcasting.
         *
         * We also expose `minimumStrict` which has the same signature as this op and
         * asserts that `a` and `b` are the same shape (does not broadcast).
         *
         * ```js
         * const a = tf.tensor1d([1, 4, 3, 16]);
         * const b = tf.tensor1d([1, 2, 9, 4]);
         *
         * a.minimum(b).print();  // or tf.minimum(a, b)
         * ```
         *
         * ```js
         * // Broadcast minimum a with b.
         * const a = tf.tensor1d([2, 4, 6, 8]);
         * const b = tf.scalar(5);
         *
         * a.minimum(b).print();  // or tf.minimum(a, b)
         * ```
         *
         * @param a The first tensor.
         * @param b The second tensor. Must have the same type as `a`.
         *
         * @doc {heading: 'Operations', subheading: 'Arithmetic'}
         */
        function minimum_(a, b) {
            let $a = (0,
                _tensor_util_env.convertToTensor)(a, 'a', 'minimum');
            let $b = (0,
                _tensor_util_env.convertToTensor)(b, 'b', 'minimum');
            [$a, $b] = (0,
                _tensor_util.makeTypesMatch)($a, $b);
            if ($a.dtype === 'bool') {
                $a = (0,
                    _cast.cast)($a, 'int32');
                $b = (0,
                    _cast.cast)($b, 'int32');
            }
            (0,
                _broadcast_util.assertAndGetBroadcastShape)($a.shape, $b.shape);
            const inputs = {
                a: $a,
                b: $b
            };
            return _engine.ENGINE.runKernel(_kernel_names.Minimum, inputs);
        }
        const minimum = (0,
            _operation.op)({
                minimum_
            });
        exports.minimum = minimum;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util": 503,
        "../tensor_util_env": 504,
        "./broadcast_util": 233,
        "./cast": 236,
        "./operation": 372
    }],
    358: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.mirrorPad = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var util = _interopRequireWildcard(require("../util"));
        var _operation = require("./operation");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Pads a `tf.Tensor` using mirror padding.
         *
         * This operation implements the `REFLECT` and `SYMMETRIC` modes of pad.
         *
         * ```js
         * const x = tf.range(0, 9).reshape([1, 1, 3, 3]);
         * x.mirrorPad([[0, 0], [0, 0], [2, 2], [2, 2]], 'reflect').print();
         * ```
         * @param x The tensor to pad.
         * @param paddings An array of length `R` (the rank of the tensor), where
         * each element is a length-2 tuple of ints `[padBefore, padAfter]`,
         * specifying how much to pad along each dimension of the tensor.
         * In "reflect" mode, the padded regions do not include the borders,
         * while in "symmetric" mode the padded regions do include the borders.
         * For example, if the input is `[1, 2, 3]` and paddings is `[0, 2]`,
         * then the output is `[1, 2, 3, 2, 1]` in "reflect" mode, and
         * `[1, 2, 3, 3, 2]` in "symmetric" mode.
         * If `mode` is "reflect" then both `paddings[D, 0]` and `paddings[D, 1]`
         * must be no greater than `x.shape[D] - 1`. If mode is "symmetric"
         * then both `paddings[D, 0]` and `paddings[D, 1]` must be no greater than
         * `x.shape[D]`
         * @param mode String to specify padding mode. Can be `'reflect' | 'symmetric'`
         */
        /** @doc {heading: 'Tensors', subheading: 'Transformations'} */
        function mirrorPad_(x, paddings, mode) {
            util.assert(mode === 'reflect' || mode === 'symmetric', () => `Invalid mode. Mode must be either reflect or symmetric. ` + `Got ${mode}.`);
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'mirrorPad');
            if ($x.rank === 0) {
                throw new Error('mirrorPad(scalar) is not defined. ' + 'Pass non-scalar to mirrorPad');
            }
            util.assert(paddings.length === $x.rank, () => `Padding doesn't match input. Must be ${$x.rank}. ` + `Got ${paddings.length}.`);
            const shapeOffset = mode === 'reflect' ? 1 : 0;
            for (let i = 0; i < $x.rank; i++) {
                util.assert(paddings[i].length === 2, () => `Invalid number of paddings. Must be length of 2 each.`);
                util.assert(paddings[i][0] >= 0 && paddings[i][0] <= $x.shape[i] - shapeOffset && paddings[i][1] >= 0 && paddings[i][1] <= $x.shape[i] - shapeOffset, () => `Padding in dimension ${i} cannot be greater than or equal ` + `to ${$x.shape[i] - shapeOffset} or less than 0 for input of ` + `shape ${$x.shape}`);
            }
            const attrs = {
                paddings,
                mode
            };
            const inputs = {
                x: $x
            };
            return _engine.ENGINE.runKernel(_kernel_names.MirrorPad, inputs, attrs);
        }
        const mirrorPad = (0,
            _operation.op)({
                mirrorPad_
            });
        exports.mirrorPad = mirrorPad;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "../util": 509,
        "./operation": 372
    }],
    359: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.mod = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util = require("../tensor_util");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Returns the mod of a and b element-wise.
         * `floor(x / y) * y + mod(x, y) = x`
         * Supports broadcasting.
         *
         * We also expose `tf.modStrict` which has the same signature as this op and
         * asserts that `a` and `b` are the same shape (does not broadcast).
         *
         * ```js
         * const a = tf.tensor1d([1, 4, 3, 16]);
         * const b = tf.tensor1d([1, 2, 9, 4]);
         *
         * a.mod(b).print();  // or tf.mod(a, b)
         * ```
         *
         * ```js
         * // Broadcast a mod b.
         * const a = tf.tensor1d([2, 4, 6, 8]);
         * const b = tf.scalar(5);
         *
         * a.mod(b).print();  // or tf.mod(a, b)
         * ```
         *
         * @param a The first tensor.
         * @param b The second tensor. Must have the same type as `a`.
         *
         * @doc {heading: 'Operations', subheading: 'Arithmetic'}
         */
        function mod_(a, b) {
            let $a = (0,
                _tensor_util_env.convertToTensor)(a, 'a', 'mod');
            let $b = (0,
                _tensor_util_env.convertToTensor)(b, 'b', 'mod');
            [$a, $b] = (0,
                _tensor_util.makeTypesMatch)($a, $b);
            const inputs = {
                a: $a,
                b: $b
            };
            return _engine.ENGINE.runKernel(_kernel_names.Mod, inputs);
        }
        const mod = (0,
            _operation.op)({
                mod_
            });
        exports.mod = mod;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util": 503,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    360: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.moments = void 0;
        var _tensor_util_env = require("../tensor_util_env");
        var _util = require("../util");
        var _axis_util = require("./axis_util");
        var _cast = require("./cast");
        var _mean = require("./mean");
        var _operation = require("./operation");
        var _reshape = require("./reshape");
        var _square = require("./square");
        var _sub = require("./sub");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Calculates the mean and variance of `x`. The mean and variance are
         * calculated by aggregating the contents of `x` across `axes`. If `x` is
         * 1-D and `axes = [0]` this is just the mean and variance of a vector.
         *
         * @param x The input tensor.
         * @param axis The dimension(s) along with to compute mean and
         *     variance. By default it reduces all dimensions.
         * @param keepDims If true, the moments have the same dimensionality as the
         *     input.
         * @return An object with two keys: `mean` and `variance`.
         *
         * @doc {heading: 'Operations', subheading: 'Normalization'}
         */
        function moments_(x, axis = null, keepDims = false) {
            x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'moments');
            const axes = (0,
                _util.parseAxisParam)(axis, x.shape);
            const xMean = (0,
                _mean.mean)(x, axes, keepDims);
            let keepDimsShape = xMean.shape;
            if (!keepDims) {
                keepDimsShape = (0,
                    _axis_util.expandShapeToKeepDim)(xMean.shape, axes);
            }
            const devSquared = (0,
                _square.square)((0,
                    _sub.sub)((0,
                        _cast.cast)(x, 'float32'), (0,
                            _reshape.reshape)(xMean, keepDimsShape)));
            const variance = (0,
                _mean.mean)(devSquared, axes, keepDims);
            return {
                mean: xMean,
                variance
            };
        }
        const moments = (0,
            _operation.op)({
                moments_
            });
        exports.moments = moments;

    }
        , {
        "../tensor_util_env": 504,
        "../util": 509,
        "./axis_util": 221,
        "./cast": 236,
        "./mean": 354,
        "./operation": 372,
        "./reshape": 402,
        "./square": 454,
        "./sub": 463
    }],
    361: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.movingAverage = void 0;
        var _tensor_util = require("../tensor_util");
        var _tensor_util_env = require("../tensor_util_env");
        var util = _interopRequireWildcard(require("../util"));
        var _add = require("./add");
        var _div = require("./div");
        var _mul = require("./mul");
        var _operation = require("./operation");
        var _pow = require("./pow");
        var _scalar = require("./scalar");
        var _sub = require("./sub");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Compute the moving average of a variable.
         *
         * Without zeroDebias, the moving average operation is defined by:
         *   `v += delta`
         * where
         *   `delta = (1 - decay) * (x - v)`
         *
         * With zeroDebias (default), the `delta` term is scaled to debias the
         * effect of the (assumed) zero-initialization of `v`.
         *   `delta /= (1 - decay ^ step)`
         *
         * For more details on the zero-debiasing algorithm, see:
         *   https://arxiv.org/abs/1412.6980
         *
         * Note that this function is completely stateless and does not keep track of
         * step count. The step count needs to be maintained by the caller and passed
         * in as `step`.
         *
         * @param v The current moving average value.
         * @param x New input value, must have the same shape and dtype as `v`.
         * @param decay The decay factor. Typical values are 0.95 and 0.99.
         * @param step Step count.
         * @param zeroDebias: Whether zeroDebias is to be performed (default: `true`).
         * @returns The new moving average value.
         *
         * @doc {heading: 'Operations', subheading: 'Moving Average'}
         */
        function movingAverage_(v, x, decay, step, zeroDebias = true) {
            const $v = (0,
                _tensor_util_env.convertToTensor)(v, 'v', 'movingAverage');
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'movingAverage');
            const $decay = (0,
                _tensor_util_env.convertToTensor)(decay, 'decay', 'movingAverage');
            (0,
                _tensor_util.assertTypesMatch)($v, $x);
            util.assert(util.arraysEqual($v.shape, $x.shape), () => 'Shape mismatch in v and x');
            const one = (0,
                _scalar.scalar)(1);
            const oneMinusDecay = (0,
                _sub.sub)(one, $decay);
            let update = (0,
                _mul.mul)((0,
                    _sub.sub)($x, $v), oneMinusDecay);
            if (zeroDebias) {
                util.assert(step != null, () => 'When using zeroDebias: true, step is required.');
                const $step = (0,
                    _tensor_util_env.convertToTensor)(step, 'step', 'movingAverage');
                update = (0,
                    _div.div)(update, (0,
                        _sub.sub)(one, (0,
                            _pow.pow)($decay, $step)));
            }
            return (0,
                _add.add)($v, update);
        }
        const movingAverage = (0,
            _operation.op)({
                movingAverage_
            });
        exports.movingAverage = movingAverage;

    }
        , {
        "../tensor_util": 503,
        "../tensor_util_env": 504,
        "../util": 509,
        "./add": 205,
        "./div": 269,
        "./mul": 362,
        "./operation": 372,
        "./pow": 382,
        "./scalar": 411,
        "./sub": 463
    }],
    362: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.mul = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util = require("../tensor_util");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Multiplies two `tf.Tensor`s element-wise, A * B. Supports broadcasting.
         *
         * We also expose `tf.mulStrict` which has the same signature as this op and
         * asserts that `a` and `b` are the same shape (does not broadcast).
         *
         * ```js
         * const a = tf.tensor1d([1, 2, 3, 4]);
         * const b = tf.tensor1d([2, 3, 4, 5]);
         *
         * a.mul(b).print();  // or tf.mul(a, b)
         * ```
         *
         * ```js
         * // Broadcast mul a with b.
         * const a = tf.tensor1d([1, 2, 3, 4]);
         * const b = tf.scalar(5);
         *
         * a.mul(b).print();  // or tf.mul(a, b)
         * ```
         * @param a The first tensor to multiply.
         * @param b The second tensor to multiply. Must have the same dtype as `a`.
         *
         * @doc {heading: 'Operations', subheading: 'Arithmetic'}
         */
        function mul_(a, b) {
            let $a = (0,
                _tensor_util_env.convertToTensor)(a, 'a', 'mul');
            let $b = (0,
                _tensor_util_env.convertToTensor)(b, 'b', 'mul');
            [$a, $b] = (0,
                _tensor_util.makeTypesMatch)($a, $b);
            const inputs = {
                a: $a,
                b: $b
            };
            return _engine.ENGINE.runKernel(_kernel_names.Multiply, inputs);
        }
        const mul = (0,
            _operation.op)({
                mul_
            });
        exports.mul = mul;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util": 503,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    363: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.multiRNNCell = void 0;
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * Computes the next states and outputs of a stack of LSTMCells.
         *
         * Each cell output is used as input to the next cell.
         *
         * Returns `[cellState, cellOutput]`.
         *
         * Derived from tf.contrib.rn.MultiRNNCell.
         *
         * @param lstmCells Array of LSTMCell functions.
         * @param data The input to the cell.
         * @param c Array of previous cell states.
         * @param h Array of previous cell outputs.
         *
         * @doc {heading: 'Operations', subheading: 'RNN'}
         */
        function multiRNNCell_(lstmCells, data, c, h) {
            const $data = (0,
                _tensor_util_env.convertToTensor)(data, 'data', 'multiRNNCell');
            const $c = (0,
                _tensor_util_env.convertToTensorArray)(c, 'c', 'multiRNNCell');
            const $h = (0,
                _tensor_util_env.convertToTensorArray)(h, 'h', 'multiRNNCell');
            let input = $data;
            const newStates = [];
            for (let i = 0; i < lstmCells.length; i++) {
                const output = lstmCells[i](input, $c[i], $h[i]);
                newStates.push(output[0]);
                newStates.push(output[1]);
                input = output[1];
            }
            const newC = [];
            const newH = [];
            for (let i = 0; i < newStates.length; i += 2) {
                newC.push(newStates[i]);
                newH.push(newStates[i + 1]);
            }
            return [newC, newH];
        }
        const multiRNNCell = (0,
            _operation.op)({
                multiRNNCell_
            });
        exports.multiRNNCell = multiRNNCell;

    }
        , {
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    364: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.multinomial = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        var _reshape = require("./reshape");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Creates a `tf.Tensor` with values drawn from a multinomial distribution.
         *
         * ```js
         * const probs = tf.tensor([.75, .25]);
         * tf.multinomial(probs, 3).print();
         * ```
         *
         * @param logits 1D array with unnormalized log-probabilities, or
         *     2D array of shape `[batchSize, numOutcomes]`. See the `normalized`
         *     parameter.
         * @param numSamples Number of samples to draw for each row slice.
         * @param seed The seed number.
         * @param normalized Whether the provided `logits` are normalized true
         *     probabilities (sum to 1). Defaults to false.
         * @return 1D array of shape `[numSamples]`, or 2D array of shape
         *     `[batchSize, numSamples]`, depending on the rank of the input.
         *
         * @doc {heading: 'Tensors', subheading: 'Random'}
         */
        function multinomial_(logits, numSamples, seed, normalized = false) {
            const $logits = (0,
                _tensor_util_env.convertToTensor)(logits, 'logits', 'multinomial');
            const numOutcomes = $logits.size;
            const origRank = $logits.rank;
            if (numOutcomes < 2) {
                throw new Error(`Error in multinomial: you need at least 2 outcomes, but got ` + `${numOutcomes}.`);
            }
            if (origRank > 2) {
                throw new Error(`Rank of probabilities must be 1 or 2, but is ${origRank}`);
            }
            // TODO(lina128): Investigate correct seed behavior. The code seems not allow
            // setting see to 0.
            seed = seed || Math.random();
            // The kernel only accepts (and returns) rank 2 tensors.
            const logits2D = origRank === 1 ? (0,
                _reshape.reshape)($logits, [1, -1]) : $logits;
            const inputs = {
                logits: logits2D
            };
            const attrs = {
                numSamples,
                seed,
                normalized
            };
            // tslint:disable-next-line: no-unnecessary-type-assertion
            const res = _engine.ENGINE.runKernel(_kernel_names.Multinomial, inputs, attrs);
            // tslint:disable-next-line:no-unnecessary-type-assertion
            return origRank === 1 ? (0,
                _reshape.reshape)(res, [res.size]) : res;
        }
        const multinomial = (0,
            _operation.op)({
                multinomial_
            });
        exports.multinomial = multinomial;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372,
        "./reshape": 402
    }],
    365: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.neg = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes `-1 * x` element-wise.
         *
         * ```js
         * const x = tf.tensor2d([1, 2, -2, 0], [2, 2]);
         *
         * x.neg().print();  // or tf.neg(x)
         * ```
         *
         * @param x The input tensor.
         *
         * @doc {heading: 'Operations', subheading: 'Basic math'}
         */
        function neg_(x) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'neg');
            const inputs = {
                x: $x
            };
            return _engine.ENGINE.runKernel(_kernel_names.Neg, inputs);
        }
        const neg = (0,
            _operation.op)({
                neg_
            });
        exports.neg = neg;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    366: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.nonMaxSuppSanityCheck = nonMaxSuppSanityCheck;
        var util = _interopRequireWildcard(require("../util"));
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        function nonMaxSuppSanityCheck(boxes, scores, maxOutputSize, iouThreshold, scoreThreshold, softNmsSigma) {
            if (iouThreshold == null) {
                iouThreshold = 0.5;
            }
            if (scoreThreshold == null) {
                scoreThreshold = Number.NEGATIVE_INFINITY;
            }
            if (softNmsSigma == null) {
                softNmsSigma = 0.0;
            }
            const numBoxes = boxes.shape[0];
            maxOutputSize = Math.min(maxOutputSize, numBoxes);
            util.assert(0 <= iouThreshold && iouThreshold <= 1, () => `iouThreshold must be in [0, 1], but was '${iouThreshold}'`);
            util.assert(boxes.rank === 2, () => `boxes must be a 2D tensor, but was of rank '${boxes.rank}'`);
            util.assert(boxes.shape[1] === 4, () => `boxes must have 4 columns, but 2nd dimension was ${boxes.shape[1]}`);
            util.assert(scores.rank === 1, () => 'scores must be a 1D tensor');
            util.assert(scores.shape[0] === numBoxes, () => `scores has incompatible shape with boxes. Expected ${numBoxes}, ` + `but was ${scores.shape[0]}`);
            util.assert(0 <= softNmsSigma && softNmsSigma <= 1, () => `softNmsSigma must be in [0, 1], but was '${softNmsSigma}'`);
            return {
                maxOutputSize,
                iouThreshold,
                scoreThreshold,
                softNmsSigma
            };
        }

    }
        , {
        "../util": 509
    }],
    367: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.norm = void 0;
        var _tensor_util_env = require("../tensor_util_env");
        var _util = require("../util");
        var _abs = require("./abs");
        var axis_util = _interopRequireWildcard(require("./axis_util"));
        var _max = require("./max");
        var _min = require("./min");
        var _operation = require("./operation");
        var _pow = require("./pow");
        var _reshape = require("./reshape");
        var _scalar = require("./scalar");
        var _sqrt = require("./sqrt");
        var _square = require("./square");
        var _sum = require("./sum");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes the norm of scalar, vectors, and matrices.
         * This function can compute several different vector norms (the 1-norm, the
         * Euclidean or 2-norm, the inf-norm, and in general the p-norm for p > 0)
         * and matrix norms (Frobenius, 1-norm, and inf-norm).
         *
         * ```js
         * const x = tf.tensor1d([1, 2, 3, 4]);
         *
         * x.norm().print();  // or tf.norm(x)
         * ```
         *
         * @param x The input array.
         * @param ord Optional. Order of the norm. Supported norm types are
         * following:
         *
         *  | ord        | norm for matrices         | norm for vectors
         *  |------------|---------------------------|---------------------
         *  |'euclidean' |Frobenius norm             |2-norm
         *  |'fro'       |Frobenius norm             |
         *  |Infinity    |max(sum(abs(x), axis=1))   |max(abs(x))
         *  |-Infinity   |min(sum(abs(x), axis=1))   |min(abs(x))
         *  |1           |max(sum(abs(x), axis=0))   |sum(abs(x))
         *  |2           |                           |sum(abs(x)^2)^(1/2)
         *
         * @param axis Optional. If axis is null (the default), the input is
         * considered a vector and a single vector norm is computed over the entire
         * set of values in the Tensor, i.e. norm(x, ord) is equivalent
         * to norm(x.reshape([-1]), ord). If axis is an integer, the input
         * is considered a batch of vectors, and axis determines the axis in x
         * over which to compute vector norms. If axis is a 2-tuple of integer it is
         * considered a batch of matrices and axis determines the axes in NDArray
         * over which to compute a matrix norm.
         * @param keepDims Optional. If true, the norm has the same dimensionality
         * as the input.
         *
         * @doc {heading: 'Operations', subheading: 'Matrices'}
         */
        function norm_(x, ord = 'euclidean', axis = null, keepDims = false) {
            x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'norm');
            const norm = normImpl(x, ord, axis);
            let keepDimsShape = norm.shape;
            if (keepDims) {
                const axes = (0,
                    _util.parseAxisParam)(axis, x.shape);
                keepDimsShape = axis_util.expandShapeToKeepDim(norm.shape, axes);
            }
            return (0,
                _reshape.reshape)(norm, keepDimsShape);
        }
        function normImpl(x, p, axis = null) {
            if (x.rank === 0) {
                return (0,
                    _abs.abs)(x);
            }
            // consider vector when no axis is specified
            if (x.rank !== 1 && axis === null) {
                return normImpl((0,
                    _reshape.reshape)(x, [-1]), p, axis);
            }
            // vector
            if (x.rank === 1 || typeof axis === 'number' || Array.isArray(axis) && axis.length === 1) {
                if (p === 1) {
                    return (0,
                        _sum.sum)((0,
                            _abs.abs)(x), axis);
                }
                if (p === Infinity) {
                    return (0,
                        _max.max)((0,
                            _abs.abs)(x), axis);
                }
                if (p === -Infinity) {
                    return (0,
                        _min.min)((0,
                            _abs.abs)(x), axis);
                }
                if (p === 'euclidean' || p === 2) {
                    // norm(x, 2) = sum(abs(xi) ^ 2) ^ 1/2
                    return (0,
                        _sqrt.sqrt)((0,
                            _sum.sum)((0,
                                _pow.pow)((0,
                                    _abs.abs)(x), (0,
                                        _scalar.scalar)(2, 'int32')), axis));
                }
                throw new Error(`Error in norm: invalid ord value: ${p}`);
            }
            // matrix (assumption axis[0] < axis[1])
            if (Array.isArray(axis) && axis.length === 2) {
                if (p === 1) {
                    return (0,
                        _max.max)((0,
                            _sum.sum)((0,
                                _abs.abs)(x), axis[0]), axis[1] - 1);
                }
                if (p === Infinity) {
                    return (0,
                        _max.max)((0,
                            _sum.sum)((0,
                                _abs.abs)(x), axis[1]), axis[0]);
                }
                if (p === -Infinity) {
                    return (0,
                        _min.min)((0,
                            _sum.sum)((0,
                                _abs.abs)(x), axis[1]), axis[0]);
                }
                if (p === 'fro' || p === 'euclidean') {
                    // norm(x) = sqrt(sum(pow(x, 2)))
                    return (0,
                        _sqrt.sqrt)((0,
                            _sum.sum)((0,
                                _square.square)(x), axis));
                }
                throw new Error(`Error in norm: invalid ord value: ${p}`);
            }
            throw new Error(`Error in norm: invalid axis: ${axis}`);
        }
        const norm = (0,
            _operation.op)({
                norm_
            });
        exports.norm = norm;

    }
        , {
        "../tensor_util_env": 504,
        "../util": 509,
        "./abs": 202,
        "./axis_util": 221,
        "./max": 347,
        "./min": 356,
        "./operation": 372,
        "./pow": 382,
        "./reshape": 402,
        "./scalar": 411,
        "./sqrt": 453,
        "./square": 454,
        "./sum": 464
    }],
    368: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.notEqual = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util = require("../tensor_util");
        var _tensor_util_env = require("../tensor_util_env");
        var _broadcast_util = require("./broadcast_util");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Returns the truth value of (a != b) element-wise. Supports broadcasting.
         *
         * ```js
         * const a = tf.tensor1d([1, 2, 3]);
         * const b = tf.tensor1d([0, 2, 3]);
         *
         * a.notEqual(b).print();
         * ```
         * @param a The first input tensor.
         * @param b The second input tensor. Must have the same dtype as `a`.
         *
         * @doc {heading: 'Operations', subheading: 'Logical'}
         */
        function notEqual_(a, b) {
            let $a = (0,
                _tensor_util_env.convertToTensor)(a, 'a', 'notEqual', 'string_or_numeric');
            let $b = (0,
                _tensor_util_env.convertToTensor)(b, 'b', 'notEqual', 'string_or_numeric');
            [$a, $b] = (0,
                _tensor_util.makeTypesMatch)($a, $b);
            (0,
                _broadcast_util.assertAndGetBroadcastShape)($a.shape, $b.shape);
            const inputs = {
                a: $a,
                b: $b
            };
            return _engine.ENGINE.runKernel(_kernel_names.NotEqual, inputs);
        }
        const notEqual = (0,
            _operation.op)({
                notEqual_
            });
        exports.notEqual = notEqual;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util": 503,
        "../tensor_util_env": 504,
        "./broadcast_util": 233,
        "./operation": 372
    }],
    369: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.oneHot = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Creates a one-hot `tf.Tensor`. The locations represented by `indices` take
         * value `onValue` (defaults to 1), while all other locations take value
         * `offValue` (defaults to 0). If `indices` is rank `R`, the output has rank
         * `R+1` with the last axis of size `depth`.
         * `indices` used to encode prediction class must start from 0. For example,
         *  if you have 3 classes of data, class 1 should be encoded as 0, class 2
         *  should be 1, and class 3 should be 2.
         *
         * ```js
         * tf.oneHot(tf.tensor1d([0, 1], 'int32'), 3).print();
         * ```
         *
         * @param indices `tf.Tensor` of indices with dtype `int32`. Indices must
         * start from 0.
         * @param depth The depth of the one hot dimension.
         * @param onValue A number used to fill in the output when the index matches
         * the location.
         * @param offValue A number used to fill in the output when the index does
         *     not match the location.
         * @param dtype The dtype of the output tensor, default to 'int32'.
         *
         * @doc {heading: 'Tensors', subheading: 'Creation'}
         */
        function oneHot_(indices, depth, onValue = 1, offValue = 0, dtype = 'int32') {
            if (depth < 2) {
                throw new Error(`Error in oneHot: depth must be >=2, but it is ${depth}`);
            }
            const $indices = (0,
                _tensor_util_env.convertToTensor)(indices, 'indices', 'oneHot', 'int32');
            const inputs = {
                indices: $indices
            };
            const attrs = {
                dtype,
                depth,
                onValue,
                offValue
            };
            return _engine.ENGINE.runKernel(_kernel_names.OneHot, inputs, attrs);
        }
        const oneHot = (0,
            _operation.op)({
                oneHot_
            });
        exports.oneHot = oneHot;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    370: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.ones = ones;
        var _engine = require("../engine");
        var _util = require("../util");
        var _util_base = require("../util_base");
        var _complex = require("./complex");
        var _zeros = require("./zeros");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Creates a `tf.Tensor` with all elements set to 1.
         *
         * ```js
         * tf.ones([2, 2]).print();
         * ```
         *
         * @param shape An array of integers defining the output tensor shape.
         * @param dtype The type of an element in the resulting tensor. Defaults to
         *     'float'.
         *
         * @doc {heading: 'Tensors', subheading: 'Creation'}
         */
        function ones(shape, dtype = 'float32') {
            (0,
                _util_base.assertNonNegativeIntegerDimensions)(shape);
            if (dtype === 'complex64') {
                const real = ones(shape, 'float32');
                const imag = (0,
                    _zeros.zeros)(shape, 'float32');
                return (0,
                    _complex.complex)(real, imag);
            }
            const values = (0,
                _util.makeOnesTypedArray)((0,
                    _util.sizeFromShape)(shape), dtype);
            return _engine.ENGINE.makeTensor(values, shape, dtype);
        }

    }
        , {
        "../engine": 77,
        "../util": 509,
        "../util_base": 510,
        "./complex": 240,
        "./zeros": 486
    }],
    371: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.onesLike = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Creates a `tf.Tensor` with all elements set to 1 with the same shape as the
         * given tensor.
         *
         * ```js
         * const x = tf.tensor([1, 2]);
         * tf.onesLike(x).print();
         * ```
         * @param x A tensor.
         *
         * @doc {heading: 'Tensors', subheading: 'Creation'}
         */
        function onesLike_(x) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'onesLike');
            const inputs = {
                x: $x
            };
            return _engine.ENGINE.runKernel(_kernel_names.OnesLike, inputs);
        }
        const onesLike = (0,
            _operation.op)({
                onesLike_
            });
        exports.onesLike = onesLike;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    372: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.OP_SCOPE_SUFFIX = void 0;
        exports.op = op;
        var _engine = require("../engine");
        var _util = require("../util");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const OP_SCOPE_SUFFIX = '__op';
        /**
         * Used for wrapping functions that perform math operations on
         * Tensors. The function will be wrapped in a named scope that cleans all
         * memory usage after the function is done.
         */
        exports.OP_SCOPE_SUFFIX = OP_SCOPE_SUFFIX;
        function op(f) {
            const keys = Object.keys(f);
            if (keys.length !== 1) {
                throw new Error(`Please provide an object with a single key ` + `(operation name) mapping to a function. Got an object with ` + `${keys.length} keys.`);
            }
            let opName = keys[0];
            const fn = f[opName];
            // Strip the underscore from the end of the function name.
            if (opName.endsWith('_')) {
                opName = opName.substring(0, opName.length - 1);
            }
            // add an __op suffix to distinguish ops from kernels in tf.profile
            opName = opName + OP_SCOPE_SUFFIX;
            // tslint:disable-next-line:no-any
            const f2 = (...args) => {
                _engine.ENGINE.startScope(opName);
                try {
                    const result = fn(...args);
                    if ((0,
                        _util.isPromise)(result)) {
                        console.error('Cannot return a Promise inside of tidy.');
                    }
                    _engine.ENGINE.endScope(result);
                    return result;
                } catch (ex) {
                    _engine.ENGINE.endScope(null);
                    throw ex;
                }
            }
                ;
            Object.defineProperty(f2, 'name', {
                value: opName,
                configurable: true
            });
            // tslint:disable-next-line:no-any
            return f2;
        }

    }
        , {
        "../engine": 77,
        "../util": 509
    }],
    373: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        var _exportNames = {
            image: true,
            linalg: true,
            losses: true,
            spectral: true,
            signal: true,
            sparse: true,
            string: true,
            abs: true,
            acos: true,
            acosh: true,
            add: true,
            addN: true,
            all: true,
            any: true,
            argMax: true,
            argMin: true,
            asin: true,
            asinh: true,
            atan: true,
            atan2: true,
            atanh: true,
            avgPool: true,
            avgPool3d: true,
            basicLSTMCell: true,
            batchToSpaceND: true,
            batchNorm: true,
            batchNorm2d: true,
            batchNorm3d: true,
            batchNorm4d: true,
            bincount: true,
            broadcastArgs: true,
            broadcastTo: true,
            buffer: true,
            cast: true,
            ceil: true,
            clipByValue: true,
            clone: true,
            complex: true,
            concat: true,
            concat1d: true,
            concat2d: true,
            concat3d: true,
            concat4d: true,
            conv1d: true,
            conv2d: true,
            conv2dTranspose: true,
            conv3d: true,
            conv3dTranspose: true,
            cos: true,
            cosh: true,
            cumprod: true,
            cumsum: true,
            denseBincount: true,
            depthToSpace: true,
            depthwiseConv2d: true,
            diag: true,
            dilation2d: true,
            div: true,
            divNoNan: true,
            dot: true,
            einsum: true,
            elu: true,
            equal: true,
            erf: true,
            euclideanNorm: true,
            exp: true,
            expandDims: true,
            expm1: true,
            eye: true,
            fill: true,
            floor: true,
            floorDiv: true,
            gather: true,
            greater: true,
            greaterEqual: true,
            imag: true,
            isFinite: true,
            isInf: true,
            isNaN: true,
            leakyRelu: true,
            less: true,
            lessEqual: true,
            linspace: true,
            localResponseNormalization: true,
            log: true,
            log1p: true,
            logSigmoid: true,
            logSoftmax: true,
            logSumExp: true,
            logicalAnd: true,
            logicalNot: true,
            logicalOr: true,
            logicalXor: true,
            lowerBound: true,
            matMul: true,
            max: true,
            maxPool: true,
            maxPool3d: true,
            maxPoolWithArgmax: true,
            maximum: true,
            mean: true,
            meshgrid: true,
            min: true,
            minimum: true,
            mirrorPad: true,
            mod: true,
            moments: true,
            mul: true,
            multiRNNCell: true,
            multinomial: true,
            neg: true,
            notEqual: true,
            oneHot: true,
            ones: true,
            onesLike: true,
            outerProduct: true,
            pad: true,
            pad1d: true,
            pad2d: true,
            pad3d: true,
            pad4d: true,
            pool: true,
            pow: true,
            prelu: true,
            print: true,
            prod: true,
            raggedGather: true,
            raggedRange: true,
            raggedTensorToTensor: true,
            rand: true,
            randomGamma: true,
            randomNormal: true,
            randomStandardNormal: true,
            randomUniform: true,
            range: true,
            real: true,
            reciprocal: true,
            relu: true,
            relu6: true,
            reshape: true,
            reverse: true,
            reverse1d: true,
            reverse2d: true,
            reverse3d: true,
            reverse4d: true,
            round: true,
            rsqrt: true,
            scalar: true,
            selu: true,
            separableConv2d: true,
            setdiff1dAsync: true,
            sigmoid: true,
            sign: true,
            sin: true,
            sinh: true,
            slice: true,
            slice1d: true,
            slice2d: true,
            slice3d: true,
            slice4d: true,
            softmax: true,
            softplus: true,
            spaceToBatchND: true,
            fft: true,
            ifft: true,
            irfft: true,
            rfft: true,
            split: true,
            sqrt: true,
            square: true,
            squaredDifference: true,
            squeeze: true,
            stack: true,
            step: true,
            stridedSlice: true,
            sub: true,
            sum: true,
            tan: true,
            tanh: true,
            tensor: true,
            tensor1d: true,
            tensor2d: true,
            tensor3d: true,
            tensor4d: true,
            tensor5d: true,
            tensor6d: true,
            tile: true,
            topk: true,
            truncatedNormal: true,
            unique: true,
            unsortedSegmentSum: true,
            unstack: true,
            upperBound: true,
            variable: true,
            where: true,
            whereAsync: true,
            zeros: true,
            zerosLike: true,
            op: true,
            OP_SCOPE_SUFFIX: true,
            fused: true
        };
        Object.defineProperty(exports, "OP_SCOPE_SUFFIX", {
            enumerable: true,
            get: function () {
                return _operation.OP_SCOPE_SUFFIX;
            }
        });
        Object.defineProperty(exports, "abs", {
            enumerable: true,
            get: function () {
                return _abs.abs;
            }
        });
        Object.defineProperty(exports, "acos", {
            enumerable: true,
            get: function () {
                return _acos.acos;
            }
        });
        Object.defineProperty(exports, "acosh", {
            enumerable: true,
            get: function () {
                return _acosh.acosh;
            }
        });
        Object.defineProperty(exports, "add", {
            enumerable: true,
            get: function () {
                return _add.add;
            }
        });
        Object.defineProperty(exports, "addN", {
            enumerable: true,
            get: function () {
                return _add_n.addN;
            }
        });
        Object.defineProperty(exports, "all", {
            enumerable: true,
            get: function () {
                return _all.all;
            }
        });
        Object.defineProperty(exports, "any", {
            enumerable: true,
            get: function () {
                return _any.any;
            }
        });
        Object.defineProperty(exports, "argMax", {
            enumerable: true,
            get: function () {
                return _arg_max.argMax;
            }
        });
        Object.defineProperty(exports, "argMin", {
            enumerable: true,
            get: function () {
                return _arg_min.argMin;
            }
        });
        Object.defineProperty(exports, "asin", {
            enumerable: true,
            get: function () {
                return _asin.asin;
            }
        });
        Object.defineProperty(exports, "asinh", {
            enumerable: true,
            get: function () {
                return _asinh.asinh;
            }
        });
        Object.defineProperty(exports, "atan", {
            enumerable: true,
            get: function () {
                return _atan.atan;
            }
        });
        Object.defineProperty(exports, "atan2", {
            enumerable: true,
            get: function () {
                return _atan2.atan2;
            }
        });
        Object.defineProperty(exports, "atanh", {
            enumerable: true,
            get: function () {
                return _atanh.atanh;
            }
        });
        Object.defineProperty(exports, "avgPool", {
            enumerable: true,
            get: function () {
                return _avg_pool.avgPool;
            }
        });
        Object.defineProperty(exports, "avgPool3d", {
            enumerable: true,
            get: function () {
                return _avg_pool_3d.avgPool3d;
            }
        });
        Object.defineProperty(exports, "basicLSTMCell", {
            enumerable: true,
            get: function () {
                return _basic_lstm_cell.basicLSTMCell;
            }
        });
        Object.defineProperty(exports, "batchNorm", {
            enumerable: true,
            get: function () {
                return _batchnorm.batchNorm;
            }
        });
        Object.defineProperty(exports, "batchNorm2d", {
            enumerable: true,
            get: function () {
                return _batchnorm2d.batchNorm2d;
            }
        });
        Object.defineProperty(exports, "batchNorm3d", {
            enumerable: true,
            get: function () {
                return _batchnorm3d.batchNorm3d;
            }
        });
        Object.defineProperty(exports, "batchNorm4d", {
            enumerable: true,
            get: function () {
                return _batchnorm4d.batchNorm4d;
            }
        });
        Object.defineProperty(exports, "batchToSpaceND", {
            enumerable: true,
            get: function () {
                return _batch_to_space_nd.batchToSpaceND;
            }
        });
        Object.defineProperty(exports, "bincount", {
            enumerable: true,
            get: function () {
                return _bincount.bincount;
            }
        });
        Object.defineProperty(exports, "broadcastArgs", {
            enumerable: true,
            get: function () {
                return _broadcast_args.broadcastArgs;
            }
        });
        Object.defineProperty(exports, "broadcastTo", {
            enumerable: true,
            get: function () {
                return _broadcast_to.broadcastTo;
            }
        });
        Object.defineProperty(exports, "buffer", {
            enumerable: true,
            get: function () {
                return _buffer.buffer;
            }
        });
        Object.defineProperty(exports, "cast", {
            enumerable: true,
            get: function () {
                return _cast.cast;
            }
        });
        Object.defineProperty(exports, "ceil", {
            enumerable: true,
            get: function () {
                return _ceil.ceil;
            }
        });
        Object.defineProperty(exports, "clipByValue", {
            enumerable: true,
            get: function () {
                return _clip_by_value.clipByValue;
            }
        });
        Object.defineProperty(exports, "clone", {
            enumerable: true,
            get: function () {
                return _clone.clone;
            }
        });
        Object.defineProperty(exports, "complex", {
            enumerable: true,
            get: function () {
                return _complex.complex;
            }
        });
        Object.defineProperty(exports, "concat", {
            enumerable: true,
            get: function () {
                return _concat.concat;
            }
        });
        Object.defineProperty(exports, "concat1d", {
            enumerable: true,
            get: function () {
                return _concat_1d.concat1d;
            }
        });
        Object.defineProperty(exports, "concat2d", {
            enumerable: true,
            get: function () {
                return _concat_2d.concat2d;
            }
        });
        Object.defineProperty(exports, "concat3d", {
            enumerable: true,
            get: function () {
                return _concat_3d.concat3d;
            }
        });
        Object.defineProperty(exports, "concat4d", {
            enumerable: true,
            get: function () {
                return _concat_4d.concat4d;
            }
        });
        Object.defineProperty(exports, "conv1d", {
            enumerable: true,
            get: function () {
                return _conv1d.conv1d;
            }
        });
        Object.defineProperty(exports, "conv2d", {
            enumerable: true,
            get: function () {
                return _conv2d.conv2d;
            }
        });
        Object.defineProperty(exports, "conv2dTranspose", {
            enumerable: true,
            get: function () {
                return _conv2d_transpose.conv2dTranspose;
            }
        });
        Object.defineProperty(exports, "conv3d", {
            enumerable: true,
            get: function () {
                return _conv3d.conv3d;
            }
        });
        Object.defineProperty(exports, "conv3dTranspose", {
            enumerable: true,
            get: function () {
                return _conv3d_transpose.conv3dTranspose;
            }
        });
        Object.defineProperty(exports, "cos", {
            enumerable: true,
            get: function () {
                return _cos.cos;
            }
        });
        Object.defineProperty(exports, "cosh", {
            enumerable: true,
            get: function () {
                return _cosh.cosh;
            }
        });
        Object.defineProperty(exports, "cumprod", {
            enumerable: true,
            get: function () {
                return _cumprod.cumprod;
            }
        });
        Object.defineProperty(exports, "cumsum", {
            enumerable: true,
            get: function () {
                return _cumsum.cumsum;
            }
        });
        Object.defineProperty(exports, "denseBincount", {
            enumerable: true,
            get: function () {
                return _dense_bincount.denseBincount;
            }
        });
        Object.defineProperty(exports, "depthToSpace", {
            enumerable: true,
            get: function () {
                return _depth_to_space.depthToSpace;
            }
        });
        Object.defineProperty(exports, "depthwiseConv2d", {
            enumerable: true,
            get: function () {
                return _depthwise_conv2d.depthwiseConv2d;
            }
        });
        Object.defineProperty(exports, "diag", {
            enumerable: true,
            get: function () {
                return _diag.diag;
            }
        });
        Object.defineProperty(exports, "dilation2d", {
            enumerable: true,
            get: function () {
                return _dilation2d.dilation2d;
            }
        });
        Object.defineProperty(exports, "div", {
            enumerable: true,
            get: function () {
                return _div.div;
            }
        });
        Object.defineProperty(exports, "divNoNan", {
            enumerable: true,
            get: function () {
                return _div_no_nan.divNoNan;
            }
        });
        Object.defineProperty(exports, "dot", {
            enumerable: true,
            get: function () {
                return _dot.dot;
            }
        });
        Object.defineProperty(exports, "einsum", {
            enumerable: true,
            get: function () {
                return _einsum.einsum;
            }
        });
        Object.defineProperty(exports, "elu", {
            enumerable: true,
            get: function () {
                return _elu.elu;
            }
        });
        Object.defineProperty(exports, "equal", {
            enumerable: true,
            get: function () {
                return _equal.equal;
            }
        });
        Object.defineProperty(exports, "erf", {
            enumerable: true,
            get: function () {
                return _erf.erf;
            }
        });
        Object.defineProperty(exports, "euclideanNorm", {
            enumerable: true,
            get: function () {
                return _euclidean_norm.euclideanNorm;
            }
        });
        Object.defineProperty(exports, "exp", {
            enumerable: true,
            get: function () {
                return _exp.exp;
            }
        });
        Object.defineProperty(exports, "expandDims", {
            enumerable: true,
            get: function () {
                return _expand_dims.expandDims;
            }
        });
        Object.defineProperty(exports, "expm1", {
            enumerable: true,
            get: function () {
                return _expm.expm1;
            }
        });
        Object.defineProperty(exports, "eye", {
            enumerable: true,
            get: function () {
                return _eye.eye;
            }
        });
        Object.defineProperty(exports, "fft", {
            enumerable: true,
            get: function () {
                return _fft.fft;
            }
        });
        Object.defineProperty(exports, "fill", {
            enumerable: true,
            get: function () {
                return _fill.fill;
            }
        });
        Object.defineProperty(exports, "floor", {
            enumerable: true,
            get: function () {
                return _floor.floor;
            }
        });
        Object.defineProperty(exports, "floorDiv", {
            enumerable: true,
            get: function () {
                return _floorDiv.floorDiv;
            }
        });
        exports.fused = void 0;
        Object.defineProperty(exports, "gather", {
            enumerable: true,
            get: function () {
                return _gather.gather;
            }
        });
        Object.defineProperty(exports, "greater", {
            enumerable: true,
            get: function () {
                return _greater.greater;
            }
        });
        Object.defineProperty(exports, "greaterEqual", {
            enumerable: true,
            get: function () {
                return _greater_equal.greaterEqual;
            }
        });
        Object.defineProperty(exports, "ifft", {
            enumerable: true,
            get: function () {
                return _ifft.ifft;
            }
        });
        Object.defineProperty(exports, "imag", {
            enumerable: true,
            get: function () {
                return _imag.imag;
            }
        });
        exports.image = void 0;
        Object.defineProperty(exports, "irfft", {
            enumerable: true,
            get: function () {
                return _irfft.irfft;
            }
        });
        Object.defineProperty(exports, "isFinite", {
            enumerable: true,
            get: function () {
                return _is_finite.isFinite;
            }
        });
        Object.defineProperty(exports, "isInf", {
            enumerable: true,
            get: function () {
                return _is_inf.isInf;
            }
        });
        Object.defineProperty(exports, "isNaN", {
            enumerable: true,
            get: function () {
                return _is_nan.isNaN;
            }
        });
        Object.defineProperty(exports, "leakyRelu", {
            enumerable: true,
            get: function () {
                return _leaky_relu.leakyRelu;
            }
        });
        Object.defineProperty(exports, "less", {
            enumerable: true,
            get: function () {
                return _less.less;
            }
        });
        Object.defineProperty(exports, "lessEqual", {
            enumerable: true,
            get: function () {
                return _less_equal.lessEqual;
            }
        });
        exports.linalg = void 0;
        Object.defineProperty(exports, "linspace", {
            enumerable: true,
            get: function () {
                return _linspace.linspace;
            }
        });
        Object.defineProperty(exports, "localResponseNormalization", {
            enumerable: true,
            get: function () {
                return _local_response_normalization.localResponseNormalization;
            }
        });
        Object.defineProperty(exports, "log", {
            enumerable: true,
            get: function () {
                return _log.log;
            }
        });
        Object.defineProperty(exports, "log1p", {
            enumerable: true,
            get: function () {
                return _log1p.log1p;
            }
        });
        Object.defineProperty(exports, "logSigmoid", {
            enumerable: true,
            get: function () {
                return _log_sigmoid.logSigmoid;
            }
        });
        Object.defineProperty(exports, "logSoftmax", {
            enumerable: true,
            get: function () {
                return _log_softmax.logSoftmax;
            }
        });
        Object.defineProperty(exports, "logSumExp", {
            enumerable: true,
            get: function () {
                return _log_sum_exp.logSumExp;
            }
        });
        Object.defineProperty(exports, "logicalAnd", {
            enumerable: true,
            get: function () {
                return _logical_and.logicalAnd;
            }
        });
        Object.defineProperty(exports, "logicalNot", {
            enumerable: true,
            get: function () {
                return _logical_not.logicalNot;
            }
        });
        Object.defineProperty(exports, "logicalOr", {
            enumerable: true,
            get: function () {
                return _logical_or.logicalOr;
            }
        });
        Object.defineProperty(exports, "logicalXor", {
            enumerable: true,
            get: function () {
                return _logical_xor.logicalXor;
            }
        });
        exports.losses = void 0;
        Object.defineProperty(exports, "lowerBound", {
            enumerable: true,
            get: function () {
                return _lower_bound.lowerBound;
            }
        });
        Object.defineProperty(exports, "matMul", {
            enumerable: true,
            get: function () {
                return _mat_mul.matMul;
            }
        });
        Object.defineProperty(exports, "max", {
            enumerable: true,
            get: function () {
                return _max.max;
            }
        });
        Object.defineProperty(exports, "maxPool", {
            enumerable: true,
            get: function () {
                return _max_pool.maxPool;
            }
        });
        Object.defineProperty(exports, "maxPool3d", {
            enumerable: true,
            get: function () {
                return _max_pool_3d.maxPool3d;
            }
        });
        Object.defineProperty(exports, "maxPoolWithArgmax", {
            enumerable: true,
            get: function () {
                return _max_pool_with_argmax.maxPoolWithArgmax;
            }
        });
        Object.defineProperty(exports, "maximum", {
            enumerable: true,
            get: function () {
                return _maximum.maximum;
            }
        });
        Object.defineProperty(exports, "mean", {
            enumerable: true,
            get: function () {
                return _mean.mean;
            }
        });
        Object.defineProperty(exports, "meshgrid", {
            enumerable: true,
            get: function () {
                return _meshgrid.meshgrid;
            }
        });
        Object.defineProperty(exports, "min", {
            enumerable: true,
            get: function () {
                return _min.min;
            }
        });
        Object.defineProperty(exports, "minimum", {
            enumerable: true,
            get: function () {
                return _minimum.minimum;
            }
        });
        Object.defineProperty(exports, "mirrorPad", {
            enumerable: true,
            get: function () {
                return _mirror_pad.mirrorPad;
            }
        });
        Object.defineProperty(exports, "mod", {
            enumerable: true,
            get: function () {
                return _mod.mod;
            }
        });
        Object.defineProperty(exports, "moments", {
            enumerable: true,
            get: function () {
                return _moments.moments;
            }
        });
        Object.defineProperty(exports, "mul", {
            enumerable: true,
            get: function () {
                return _mul.mul;
            }
        });
        Object.defineProperty(exports, "multiRNNCell", {
            enumerable: true,
            get: function () {
                return _multi_rnn_cell.multiRNNCell;
            }
        });
        Object.defineProperty(exports, "multinomial", {
            enumerable: true,
            get: function () {
                return _multinomial.multinomial;
            }
        });
        Object.defineProperty(exports, "neg", {
            enumerable: true,
            get: function () {
                return _neg.neg;
            }
        });
        Object.defineProperty(exports, "notEqual", {
            enumerable: true,
            get: function () {
                return _not_equal.notEqual;
            }
        });
        Object.defineProperty(exports, "oneHot", {
            enumerable: true,
            get: function () {
                return _one_hot.oneHot;
            }
        });
        Object.defineProperty(exports, "ones", {
            enumerable: true,
            get: function () {
                return _ones.ones;
            }
        });
        Object.defineProperty(exports, "onesLike", {
            enumerable: true,
            get: function () {
                return _ones_like.onesLike;
            }
        });
        Object.defineProperty(exports, "op", {
            enumerable: true,
            get: function () {
                return _operation.op;
            }
        });
        Object.defineProperty(exports, "outerProduct", {
            enumerable: true,
            get: function () {
                return _outer_product.outerProduct;
            }
        });
        Object.defineProperty(exports, "pad", {
            enumerable: true,
            get: function () {
                return _pad.pad;
            }
        });
        Object.defineProperty(exports, "pad1d", {
            enumerable: true,
            get: function () {
                return _pad1d.pad1d;
            }
        });
        Object.defineProperty(exports, "pad2d", {
            enumerable: true,
            get: function () {
                return _pad2d.pad2d;
            }
        });
        Object.defineProperty(exports, "pad3d", {
            enumerable: true,
            get: function () {
                return _pad3d.pad3d;
            }
        });
        Object.defineProperty(exports, "pad4d", {
            enumerable: true,
            get: function () {
                return _pad4d.pad4d;
            }
        });
        Object.defineProperty(exports, "pool", {
            enumerable: true,
            get: function () {
                return _pool.pool;
            }
        });
        Object.defineProperty(exports, "pow", {
            enumerable: true,
            get: function () {
                return _pow.pow;
            }
        });
        Object.defineProperty(exports, "prelu", {
            enumerable: true,
            get: function () {
                return _prelu.prelu;
            }
        });
        Object.defineProperty(exports, "print", {
            enumerable: true,
            get: function () {
                return _print.print;
            }
        });
        Object.defineProperty(exports, "prod", {
            enumerable: true,
            get: function () {
                return _prod.prod;
            }
        });
        Object.defineProperty(exports, "raggedGather", {
            enumerable: true,
            get: function () {
                return _ragged_gather.raggedGather;
            }
        });
        Object.defineProperty(exports, "raggedRange", {
            enumerable: true,
            get: function () {
                return _ragged_range.raggedRange;
            }
        });
        Object.defineProperty(exports, "raggedTensorToTensor", {
            enumerable: true,
            get: function () {
                return _ragged_tensor_to_tensor.raggedTensorToTensor;
            }
        });
        Object.defineProperty(exports, "rand", {
            enumerable: true,
            get: function () {
                return _rand.rand;
            }
        });
        Object.defineProperty(exports, "randomGamma", {
            enumerable: true,
            get: function () {
                return _random_gamma.randomGamma;
            }
        });
        Object.defineProperty(exports, "randomNormal", {
            enumerable: true,
            get: function () {
                return _random_normal.randomNormal;
            }
        });
        Object.defineProperty(exports, "randomStandardNormal", {
            enumerable: true,
            get: function () {
                return _random_standard_normal.randomStandardNormal;
            }
        });
        Object.defineProperty(exports, "randomUniform", {
            enumerable: true,
            get: function () {
                return _random_uniform.randomUniform;
            }
        });
        Object.defineProperty(exports, "range", {
            enumerable: true,
            get: function () {
                return _range.range;
            }
        });
        Object.defineProperty(exports, "real", {
            enumerable: true,
            get: function () {
                return _real.real;
            }
        });
        Object.defineProperty(exports, "reciprocal", {
            enumerable: true,
            get: function () {
                return _reciprocal.reciprocal;
            }
        });
        Object.defineProperty(exports, "relu", {
            enumerable: true,
            get: function () {
                return _relu.relu;
            }
        });
        Object.defineProperty(exports, "relu6", {
            enumerable: true,
            get: function () {
                return _relu2.relu6;
            }
        });
        Object.defineProperty(exports, "reshape", {
            enumerable: true,
            get: function () {
                return _reshape.reshape;
            }
        });
        Object.defineProperty(exports, "reverse", {
            enumerable: true,
            get: function () {
                return _reverse.reverse;
            }
        });
        Object.defineProperty(exports, "reverse1d", {
            enumerable: true,
            get: function () {
                return _reverse_1d.reverse1d;
            }
        });
        Object.defineProperty(exports, "reverse2d", {
            enumerable: true,
            get: function () {
                return _reverse_2d.reverse2d;
            }
        });
        Object.defineProperty(exports, "reverse3d", {
            enumerable: true,
            get: function () {
                return _reverse_3d.reverse3d;
            }
        });
        Object.defineProperty(exports, "reverse4d", {
            enumerable: true,
            get: function () {
                return _reverse_4d.reverse4d;
            }
        });
        Object.defineProperty(exports, "rfft", {
            enumerable: true,
            get: function () {
                return _rfft.rfft;
            }
        });
        Object.defineProperty(exports, "round", {
            enumerable: true,
            get: function () {
                return _round.round;
            }
        });
        Object.defineProperty(exports, "rsqrt", {
            enumerable: true,
            get: function () {
                return _rsqrt.rsqrt;
            }
        });
        Object.defineProperty(exports, "scalar", {
            enumerable: true,
            get: function () {
                return _scalar.scalar;
            }
        });
        Object.defineProperty(exports, "selu", {
            enumerable: true,
            get: function () {
                return _selu.selu;
            }
        });
        Object.defineProperty(exports, "separableConv2d", {
            enumerable: true,
            get: function () {
                return _separable_conv2d.separableConv2d;
            }
        });
        Object.defineProperty(exports, "setdiff1dAsync", {
            enumerable: true,
            get: function () {
                return _setdiff1d_async.setdiff1dAsync;
            }
        });
        Object.defineProperty(exports, "sigmoid", {
            enumerable: true,
            get: function () {
                return _sigmoid.sigmoid;
            }
        });
        Object.defineProperty(exports, "sign", {
            enumerable: true,
            get: function () {
                return _sign.sign;
            }
        });
        exports.signal = void 0;
        Object.defineProperty(exports, "sin", {
            enumerable: true,
            get: function () {
                return _sin.sin;
            }
        });
        Object.defineProperty(exports, "sinh", {
            enumerable: true,
            get: function () {
                return _sinh.sinh;
            }
        });
        Object.defineProperty(exports, "slice", {
            enumerable: true,
            get: function () {
                return _slice.slice;
            }
        });
        Object.defineProperty(exports, "slice1d", {
            enumerable: true,
            get: function () {
                return _slice1d.slice1d;
            }
        });
        Object.defineProperty(exports, "slice2d", {
            enumerable: true,
            get: function () {
                return _slice2d.slice2d;
            }
        });
        Object.defineProperty(exports, "slice3d", {
            enumerable: true,
            get: function () {
                return _slice3d.slice3d;
            }
        });
        Object.defineProperty(exports, "slice4d", {
            enumerable: true,
            get: function () {
                return _slice4d.slice4d;
            }
        });
        Object.defineProperty(exports, "softmax", {
            enumerable: true,
            get: function () {
                return _softmax.softmax;
            }
        });
        Object.defineProperty(exports, "softplus", {
            enumerable: true,
            get: function () {
                return _softplus.softplus;
            }
        });
        Object.defineProperty(exports, "spaceToBatchND", {
            enumerable: true,
            get: function () {
                return _space_to_batch_nd.spaceToBatchND;
            }
        });
        exports.spectral = exports.sparse = void 0;
        Object.defineProperty(exports, "split", {
            enumerable: true,
            get: function () {
                return _split.split;
            }
        });
        Object.defineProperty(exports, "sqrt", {
            enumerable: true,
            get: function () {
                return _sqrt.sqrt;
            }
        });
        Object.defineProperty(exports, "square", {
            enumerable: true,
            get: function () {
                return _square.square;
            }
        });
        Object.defineProperty(exports, "squaredDifference", {
            enumerable: true,
            get: function () {
                return _squared_difference.squaredDifference;
            }
        });
        Object.defineProperty(exports, "squeeze", {
            enumerable: true,
            get: function () {
                return _squeeze.squeeze;
            }
        });
        Object.defineProperty(exports, "stack", {
            enumerable: true,
            get: function () {
                return _stack.stack;
            }
        });
        Object.defineProperty(exports, "step", {
            enumerable: true,
            get: function () {
                return _step.step;
            }
        });
        Object.defineProperty(exports, "stridedSlice", {
            enumerable: true,
            get: function () {
                return _strided_slice.stridedSlice;
            }
        });
        exports.string = void 0;
        Object.defineProperty(exports, "sub", {
            enumerable: true,
            get: function () {
                return _sub.sub;
            }
        });
        Object.defineProperty(exports, "sum", {
            enumerable: true,
            get: function () {
                return _sum.sum;
            }
        });
        Object.defineProperty(exports, "tan", {
            enumerable: true,
            get: function () {
                return _tan.tan;
            }
        });
        Object.defineProperty(exports, "tanh", {
            enumerable: true,
            get: function () {
                return _tanh.tanh;
            }
        });
        Object.defineProperty(exports, "tensor", {
            enumerable: true,
            get: function () {
                return _tensor.tensor;
            }
        });
        Object.defineProperty(exports, "tensor1d", {
            enumerable: true,
            get: function () {
                return _tensor1d.tensor1d;
            }
        });
        Object.defineProperty(exports, "tensor2d", {
            enumerable: true,
            get: function () {
                return _tensor2d.tensor2d;
            }
        });
        Object.defineProperty(exports, "tensor3d", {
            enumerable: true,
            get: function () {
                return _tensor3d.tensor3d;
            }
        });
        Object.defineProperty(exports, "tensor4d", {
            enumerable: true,
            get: function () {
                return _tensor4d.tensor4d;
            }
        });
        Object.defineProperty(exports, "tensor5d", {
            enumerable: true,
            get: function () {
                return _tensor5d.tensor5d;
            }
        });
        Object.defineProperty(exports, "tensor6d", {
            enumerable: true,
            get: function () {
                return _tensor6d.tensor6d;
            }
        });
        Object.defineProperty(exports, "tile", {
            enumerable: true,
            get: function () {
                return _tile.tile;
            }
        });
        Object.defineProperty(exports, "topk", {
            enumerable: true,
            get: function () {
                return _topk.topk;
            }
        });
        Object.defineProperty(exports, "truncatedNormal", {
            enumerable: true,
            get: function () {
                return _truncated_normal.truncatedNormal;
            }
        });
        Object.defineProperty(exports, "unique", {
            enumerable: true,
            get: function () {
                return _unique.unique;
            }
        });
        Object.defineProperty(exports, "unsortedSegmentSum", {
            enumerable: true,
            get: function () {
                return _unsorted_segment_sum.unsortedSegmentSum;
            }
        });
        Object.defineProperty(exports, "unstack", {
            enumerable: true,
            get: function () {
                return _unstack.unstack;
            }
        });
        Object.defineProperty(exports, "upperBound", {
            enumerable: true,
            get: function () {
                return _upper_bound.upperBound;
            }
        });
        Object.defineProperty(exports, "variable", {
            enumerable: true,
            get: function () {
                return _variable.variable;
            }
        });
        Object.defineProperty(exports, "where", {
            enumerable: true,
            get: function () {
                return _where.where;
            }
        });
        Object.defineProperty(exports, "whereAsync", {
            enumerable: true,
            get: function () {
                return _where_async.whereAsync;
            }
        });
        Object.defineProperty(exports, "zeros", {
            enumerable: true,
            get: function () {
                return _zeros.zeros;
            }
        });
        Object.defineProperty(exports, "zerosLike", {
            enumerable: true,
            get: function () {
                return _zeros_like.zerosLike;
            }
        });
        var _abs = require("./abs");
        var _acos = require("./acos");
        var _acosh = require("./acosh");
        var _add = require("./add");
        var _add_n = require("./add_n");
        var _all = require("./all");
        var _any = require("./any");
        var _arg_max = require("./arg_max");
        var _arg_min = require("./arg_min");
        var _asin = require("./asin");
        var _asinh = require("./asinh");
        var _atan = require("./atan");
        var _atan2 = require("./atan2");
        var _atanh = require("./atanh");
        var _avg_pool = require("./avg_pool");
        var _avg_pool_3d = require("./avg_pool_3d");
        var _basic_lstm_cell = require("./basic_lstm_cell");
        var _batch_to_space_nd = require("./batch_to_space_nd");
        var _batchnorm = require("./batchnorm");
        var _batchnorm2d = require("./batchnorm2d");
        var _batchnorm3d = require("./batchnorm3d");
        var _batchnorm4d = require("./batchnorm4d");
        var _bincount = require("./bincount");
        var _broadcast_args = require("./broadcast_args");
        var _broadcast_to = require("./broadcast_to");
        var _buffer = require("./buffer");
        var _cast = require("./cast");
        var _ceil = require("./ceil");
        var _clip_by_value = require("./clip_by_value");
        var _clone = require("./clone");
        var _complex = require("./complex");
        var _concat = require("./concat");
        var _concat_1d = require("./concat_1d");
        var _concat_2d = require("./concat_2d");
        var _concat_3d = require("./concat_3d");
        var _concat_4d = require("./concat_4d");
        var _conv1d = require("./conv1d");
        var _conv2d = require("./conv2d");
        var _conv2d_transpose = require("./conv2d_transpose");
        var _conv3d = require("./conv3d");
        var _conv3d_transpose = require("./conv3d_transpose");
        var _cos = require("./cos");
        var _cosh = require("./cosh");
        var _cumprod = require("./cumprod");
        var _cumsum = require("./cumsum");
        var _dense_bincount = require("./dense_bincount");
        var _depth_to_space = require("./depth_to_space");
        var _depthwise_conv2d = require("./depthwise_conv2d");
        var _diag = require("./diag");
        var _dilation2d = require("./dilation2d");
        var _div = require("./div");
        var _div_no_nan = require("./div_no_nan");
        var _dot = require("./dot");
        var _einsum = require("./einsum");
        var _elu = require("./elu");
        var _equal = require("./equal");
        var _erf = require("./erf");
        var _euclidean_norm = require("./euclidean_norm");
        var _exp = require("./exp");
        var _expand_dims = require("./expand_dims");
        var _expm = require("./expm1");
        var _eye = require("./eye");
        var _fill = require("./fill");
        var _floor = require("./floor");
        var _floorDiv = require("./floorDiv");
        var _gather = require("./gather");
        var _greater = require("./greater");
        var _greater_equal = require("./greater_equal");
        var _imag = require("./imag");
        var _is_finite = require("./is_finite");
        var _is_inf = require("./is_inf");
        var _is_nan = require("./is_nan");
        var _leaky_relu = require("./leaky_relu");
        var _less = require("./less");
        var _less_equal = require("./less_equal");
        var _linspace = require("./linspace");
        var _local_response_normalization = require("./local_response_normalization");
        var _log = require("./log");
        var _log1p = require("./log1p");
        var _log_sigmoid = require("./log_sigmoid");
        var _log_softmax = require("./log_softmax");
        var _log_sum_exp = require("./log_sum_exp");
        var _logical_and = require("./logical_and");
        var _logical_not = require("./logical_not");
        var _logical_or = require("./logical_or");
        var _logical_xor = require("./logical_xor");
        var _lower_bound = require("./lower_bound");
        var _mat_mul = require("./mat_mul");
        var _max = require("./max");
        var _max_pool = require("./max_pool");
        var _max_pool_3d = require("./max_pool_3d");
        var _max_pool_with_argmax = require("./max_pool_with_argmax");
        var _maximum = require("./maximum");
        var _mean = require("./mean");
        var _meshgrid = require("./meshgrid");
        var _min = require("./min");
        var _minimum = require("./minimum");
        var _mirror_pad = require("./mirror_pad");
        var _mod = require("./mod");
        var _moments = require("./moments");
        var _mul = require("./mul");
        var _multi_rnn_cell = require("./multi_rnn_cell");
        var _multinomial = require("./multinomial");
        var _neg = require("./neg");
        var _not_equal = require("./not_equal");
        var _one_hot = require("./one_hot");
        var _ones = require("./ones");
        var _ones_like = require("./ones_like");
        var _outer_product = require("./outer_product");
        var _pad = require("./pad");
        var _pad1d = require("./pad1d");
        var _pad2d = require("./pad2d");
        var _pad3d = require("./pad3d");
        var _pad4d = require("./pad4d");
        var _pool = require("./pool");
        var _pow = require("./pow");
        var _prelu = require("./prelu");
        var _print = require("./print");
        var _prod = require("./prod");
        var _ragged_gather = require("./ragged_gather");
        var _ragged_range = require("./ragged_range");
        var _ragged_tensor_to_tensor = require("./ragged_tensor_to_tensor");
        var _rand = require("./rand");
        var _random_gamma = require("./random_gamma");
        var _random_normal = require("./random_normal");
        var _random_standard_normal = require("./random_standard_normal");
        var _random_uniform = require("./random_uniform");
        var _range = require("./range");
        var _real = require("./real");
        var _reciprocal = require("./reciprocal");
        var _relu = require("./relu");
        var _relu2 = require("./relu6");
        var _reshape = require("./reshape");
        var _reverse = require("./reverse");
        var _reverse_1d = require("./reverse_1d");
        var _reverse_2d = require("./reverse_2d");
        var _reverse_3d = require("./reverse_3d");
        var _reverse_4d = require("./reverse_4d");
        var _round = require("./round");
        var _rsqrt = require("./rsqrt");
        var _scalar = require("./scalar");
        var _selu = require("./selu");
        var _separable_conv2d = require("./separable_conv2d");
        var _setdiff1d_async = require("./setdiff1d_async");
        var _sigmoid = require("./sigmoid");
        var _sign = require("./sign");
        var _sin = require("./sin");
        var _sinh = require("./sinh");
        var _slice = require("./slice");
        var _slice1d = require("./slice1d");
        var _slice2d = require("./slice2d");
        var _slice3d = require("./slice3d");
        var _slice4d = require("./slice4d");
        var _softmax = require("./softmax");
        var _softplus = require("./softplus");
        var _space_to_batch_nd = require("./space_to_batch_nd");
        var _fft = require("./spectral/fft");
        var _ifft = require("./spectral/ifft");
        var _irfft = require("./spectral/irfft");
        var _rfft = require("./spectral/rfft");
        var _split = require("./split");
        var _sqrt = require("./sqrt");
        var _square = require("./square");
        var _squared_difference = require("./squared_difference");
        var _squeeze = require("./squeeze");
        var _stack = require("./stack");
        var _step = require("./step");
        var _strided_slice = require("./strided_slice");
        var _sub = require("./sub");
        var _sum = require("./sum");
        var _tan = require("./tan");
        var _tanh = require("./tanh");
        var _tensor = require("./tensor");
        var _tensor1d = require("./tensor1d");
        var _tensor2d = require("./tensor2d");
        var _tensor3d = require("./tensor3d");
        var _tensor4d = require("./tensor4d");
        var _tensor5d = require("./tensor5d");
        var _tensor6d = require("./tensor6d");
        var _tile = require("./tile");
        var _topk = require("./topk");
        var _truncated_normal = require("./truncated_normal");
        var _unique = require("./unique");
        var _unsorted_segment_sum = require("./unsorted_segment_sum");
        var _unstack = require("./unstack");
        var _upper_bound = require("./upper_bound");
        var _variable = require("./variable");
        var _where = require("./where");
        var _where_async = require("./where_async");
        var _zeros = require("./zeros");
        var _zeros_like = require("./zeros_like");
        var _boolean_mask = require("./boolean_mask");
        Object.keys(_boolean_mask).forEach(function (key) {
            if (key === "default" || key === "__esModule")
                return;
            if (Object.prototype.hasOwnProperty.call(_exportNames, key))
                return;
            if (key in exports && exports[key] === _boolean_mask[key])
                return;
            Object.defineProperty(exports, key, {
                enumerable: true,
                get: function () {
                    return _boolean_mask[key];
                }
            });
        });
        var _transpose = require("./transpose");
        Object.keys(_transpose).forEach(function (key) {
            if (key === "default" || key === "__esModule")
                return;
            if (Object.prototype.hasOwnProperty.call(_exportNames, key))
                return;
            if (key in exports && exports[key] === _transpose[key])
                return;
            Object.defineProperty(exports, key, {
                enumerable: true,
                get: function () {
                    return _transpose[key];
                }
            });
        });
        var _norm = require("./norm");
        Object.keys(_norm).forEach(function (key) {
            if (key === "default" || key === "__esModule")
                return;
            if (Object.prototype.hasOwnProperty.call(_exportNames, key))
                return;
            if (key in exports && exports[key] === _norm[key])
                return;
            Object.defineProperty(exports, key, {
                enumerable: true,
                get: function () {
                    return _norm[key];
                }
            });
        });
        var _moving_average = require("./moving_average");
        Object.keys(_moving_average).forEach(function (key) {
            if (key === "default" || key === "__esModule")
                return;
            if (Object.prototype.hasOwnProperty.call(_exportNames, key))
                return;
            if (key in exports && exports[key] === _moving_average[key])
                return;
            Object.defineProperty(exports, key, {
                enumerable: true,
                get: function () {
                    return _moving_average[key];
                }
            });
        });
        var _scatter_nd = require("./scatter_nd");
        Object.keys(_scatter_nd).forEach(function (key) {
            if (key === "default" || key === "__esModule")
                return;
            if (Object.prototype.hasOwnProperty.call(_exportNames, key))
                return;
            if (key in exports && exports[key] === _scatter_nd[key])
                return;
            Object.defineProperty(exports, key, {
                enumerable: true,
                get: function () {
                    return _scatter_nd[key];
                }
            });
        });
        var _search_sorted = require("./search_sorted");
        Object.keys(_search_sorted).forEach(function (key) {
            if (key === "default" || key === "__esModule")
                return;
            if (Object.prototype.hasOwnProperty.call(_exportNames, key))
                return;
            if (key in exports && exports[key] === _search_sorted[key])
                return;
            Object.defineProperty(exports, key, {
                enumerable: true,
                get: function () {
                    return _search_sorted[key];
                }
            });
        });
        var _sparse_to_dense = require("./sparse_to_dense");
        Object.keys(_sparse_to_dense).forEach(function (key) {
            if (key === "default" || key === "__esModule")
                return;
            if (Object.prototype.hasOwnProperty.call(_exportNames, key))
                return;
            if (key in exports && exports[key] === _sparse_to_dense[key])
                return;
            Object.defineProperty(exports, key, {
                enumerable: true,
                get: function () {
                    return _sparse_to_dense[key];
                }
            });
        });
        var _gather_nd = require("./gather_nd");
        Object.keys(_gather_nd).forEach(function (key) {
            if (key === "default" || key === "__esModule")
                return;
            if (Object.prototype.hasOwnProperty.call(_exportNames, key))
                return;
            if (key in exports && exports[key] === _gather_nd[key])
                return;
            Object.defineProperty(exports, key, {
                enumerable: true,
                get: function () {
                    return _gather_nd[key];
                }
            });
        });
        var _dropout = require("./dropout");
        Object.keys(_dropout).forEach(function (key) {
            if (key === "default" || key === "__esModule")
                return;
            if (Object.prototype.hasOwnProperty.call(_exportNames, key))
                return;
            if (key in exports && exports[key] === _dropout[key])
                return;
            Object.defineProperty(exports, key, {
                enumerable: true,
                get: function () {
                    return _dropout[key];
                }
            });
        });
        var _signal_ops_util = require("./signal_ops_util");
        Object.keys(_signal_ops_util).forEach(function (key) {
            if (key === "default" || key === "__esModule")
                return;
            if (Object.prototype.hasOwnProperty.call(_exportNames, key))
                return;
            if (key in exports && exports[key] === _signal_ops_util[key])
                return;
            Object.defineProperty(exports, key, {
                enumerable: true,
                get: function () {
                    return _signal_ops_util[key];
                }
            });
        });
        var _in_top_k = require("./in_top_k");
        Object.keys(_in_top_k).forEach(function (key) {
            if (key === "default" || key === "__esModule")
                return;
            if (Object.prototype.hasOwnProperty.call(_exportNames, key))
                return;
            if (key in exports && exports[key] === _in_top_k[key])
                return;
            Object.defineProperty(exports, key, {
                enumerable: true,
                get: function () {
                    return _in_top_k[key];
                }
            });
        });
        var _operation = require("./operation");
        var fused = _interopRequireWildcard(require("./fused_ops"));
        exports.fused = fused;
        var _hamming_window = require("./signal/hamming_window");
        var _hann_window = require("./signal/hann_window");
        var _frame = require("./signal/frame");
        var _stft = require("./signal/stft");
        var _crop_and_resize = require("./image/crop_and_resize");
        var _flip_left_right = require("./image/flip_left_right");
        var _grayscale_to_rgb = require("./image/grayscale_to_rgb");
        var _rotate_with_offset = require("./image/rotate_with_offset");
        var _non_max_suppression = require("./image/non_max_suppression");
        var _non_max_suppression_async = require("./image/non_max_suppression_async");
        var _non_max_suppression_with_score = require("./image/non_max_suppression_with_score");
        var _non_max_suppression_with_score_async = require("./image/non_max_suppression_with_score_async");
        var _non_max_suppression_padded = require("./image/non_max_suppression_padded");
        var _non_max_suppression_padded_async = require("./image/non_max_suppression_padded_async");
        var _resize_bilinear = require("./image/resize_bilinear");
        var _resize_nearest_neighbor = require("./image/resize_nearest_neighbor");
        var _threshold = require("./image/threshold");
        var _transform = require("./image/transform");
        var _band_part = require("./linalg/band_part");
        var _gram_schmidt = require("./linalg/gram_schmidt");
        var _qr = require("./linalg/qr");
        var _absolute_difference = require("./losses/absolute_difference");
        var _compute_weighted_loss = require("./losses/compute_weighted_loss");
        var _cosine_distance = require("./losses/cosine_distance");
        var _hinge_loss = require("./losses/hinge_loss");
        var _huber_loss = require("./losses/huber_loss");
        var _log_loss = require("./losses/log_loss");
        var _mean_squared_error = require("./losses/mean_squared_error");
        var _sigmoid_cross_entropy = require("./losses/sigmoid_cross_entropy");
        var _softmax_cross_entropy = require("./losses/softmax_cross_entropy");
        var _sparse_fill_empty_rows = require("./sparse/sparse_fill_empty_rows");
        var _sparse_reshape = require("./sparse/sparse_reshape");
        var _sparse_segment_mean = require("./sparse/sparse_segment_mean");
        var _sparse_segment_sum = require("./sparse/sparse_segment_sum");
        var _string_n_grams = require("./string/string_n_grams");
        var _string_split = require("./string/string_split");
        var _string_to_hash_bucket_fast = require("./string/string_to_hash_bucket_fast");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        // Modularized ops.

        const spectral = {
            fft: _fft.fft,
            ifft: _ifft.ifft,
            rfft: _rfft.rfft,
            irfft: _irfft.irfft
        };
        exports.spectral = spectral;
        const signal = {
            hammingWindow: _hamming_window.hammingWindow,
            hannWindow: _hann_window.hannWindow,
            frame: _frame.frame,
            stft: _stft.stft
        };
        // Image Ops namespace
        exports.signal = signal;
        const image = {
            flipLeftRight: _flip_left_right.flipLeftRight,
            grayscaleToRGB: _grayscale_to_rgb.grayscaleToRGB,
            resizeNearestNeighbor: _resize_nearest_neighbor.resizeNearestNeighbor,
            resizeBilinear: _resize_bilinear.resizeBilinear,
            rotateWithOffset: _rotate_with_offset.rotateWithOffset,
            cropAndResize: _crop_and_resize.cropAndResize,
            nonMaxSuppression: _non_max_suppression.nonMaxSuppression,
            nonMaxSuppressionAsync: _non_max_suppression_async.nonMaxSuppressionAsync,
            nonMaxSuppressionWithScore: _non_max_suppression_with_score.nonMaxSuppressionWithScore,
            nonMaxSuppressionWithScoreAsync: _non_max_suppression_with_score_async.nonMaxSuppressionWithScoreAsync,
            nonMaxSuppressionPadded: _non_max_suppression_padded.nonMaxSuppressionPadded,
            nonMaxSuppressionPaddedAsync: _non_max_suppression_padded_async.nonMaxSuppressionPaddedAsync,
            threshold: _threshold.threshold,
            transform: _transform.transform
        };
        // linalg namespace
        exports.image = image;
        const linalg = {
            bandPart: _band_part.bandPart,
            gramSchmidt: _gram_schmidt.gramSchmidt,
            qr: _qr.qr
        };
        // losses namespace;
        exports.linalg = linalg;
        const losses = {
            absoluteDifference: _absolute_difference.absoluteDifference,
            computeWeightedLoss: _compute_weighted_loss.computeWeightedLoss,
            cosineDistance: _cosine_distance.cosineDistance,
            hingeLoss: _hinge_loss.hingeLoss,
            huberLoss: _huber_loss.huberLoss,
            logLoss: _log_loss.logLoss,
            meanSquaredError: _mean_squared_error.meanSquaredError,
            sigmoidCrossEntropy: _sigmoid_cross_entropy.sigmoidCrossEntropy,
            softmaxCrossEntropy: _softmax_cross_entropy.softmaxCrossEntropy
        };
        exports.losses = losses;
        const sparse = {
            sparseFillEmptyRows: _sparse_fill_empty_rows.sparseFillEmptyRows,
            sparseReshape: _sparse_reshape.sparseReshape,
            sparseSegmentMean: _sparse_segment_mean.sparseSegmentMean,
            sparseSegmentSum: _sparse_segment_sum.sparseSegmentSum
        };
        exports.sparse = sparse;
        // tslint:disable-next-line:variable-name
        const string = {
            stringNGrams: _string_n_grams.stringNGrams,
            stringSplit: _string_split.stringSplit,
            stringToHashBucketFast: _string_to_hash_bucket_fast.stringToHashBucketFast
        };
        // Second level exports.
        exports.string = string;

    }
        , {
        "./abs": 202,
        "./acos": 203,
        "./acosh": 204,
        "./add": 205,
        "./add_n": 206,
        "./all": 207,
        "./any": 208,
        "./arg_max": 209,
        "./arg_min": 210,
        "./asin": 212,
        "./asinh": 213,
        "./atan": 214,
        "./atan2": 215,
        "./atanh": 216,
        "./avg_pool": 217,
        "./avg_pool_3d": 218,
        "./basic_lstm_cell": 222,
        "./batch_to_space_nd": 223,
        "./batchnorm": 224,
        "./batchnorm2d": 225,
        "./batchnorm3d": 226,
        "./batchnorm4d": 227,
        "./bincount": 229,
        "./boolean_mask": 230,
        "./broadcast_args": 231,
        "./broadcast_to": 232,
        "./buffer": 235,
        "./cast": 236,
        "./ceil": 237,
        "./clip_by_value": 238,
        "./clone": 239,
        "./complex": 240,
        "./concat": 241,
        "./concat_1d": 242,
        "./concat_2d": 243,
        "./concat_3d": 244,
        "./concat_4d": 245,
        "./conv1d": 248,
        "./conv2d": 249,
        "./conv2d_transpose": 252,
        "./conv3d": 253,
        "./conv3d_transpose": 256,
        "./cos": 258,
        "./cosh": 259,
        "./cumprod": 260,
        "./cumsum": 261,
        "./dense_bincount": 262,
        "./depth_to_space": 263,
        "./depthwise_conv2d": 264,
        "./diag": 267,
        "./dilation2d": 268,
        "./div": 269,
        "./div_no_nan": 270,
        "./dot": 271,
        "./dropout": 272,
        "./einsum": 274,
        "./elu": 275,
        "./equal": 276,
        "./erf": 277,
        "./euclidean_norm": 279,
        "./exp": 280,
        "./expand_dims": 281,
        "./expm1": 282,
        "./eye": 283,
        "./fill": 284,
        "./floor": 285,
        "./floorDiv": 286,
        "./fused_ops": 290,
        "./gather": 293,
        "./gather_nd": 294,
        "./greater": 296,
        "./greater_equal": 297,
        "./imag": 298,
        "./image/crop_and_resize": 299,
        "./image/flip_left_right": 300,
        "./image/grayscale_to_rgb": 301,
        "./image/non_max_suppression": 302,
        "./image/non_max_suppression_async": 303,
        "./image/non_max_suppression_padded": 304,
        "./image/non_max_suppression_padded_async": 305,
        "./image/non_max_suppression_with_score": 306,
        "./image/non_max_suppression_with_score_async": 307,
        "./image/resize_bilinear": 308,
        "./image/resize_nearest_neighbor": 309,
        "./image/rotate_with_offset": 310,
        "./image/threshold": 311,
        "./image/transform": 312,
        "./in_top_k": 313,
        "./is_finite": 314,
        "./is_inf": 315,
        "./is_nan": 316,
        "./leaky_relu": 317,
        "./less": 318,
        "./less_equal": 319,
        "./linalg/band_part": 320,
        "./linalg/gram_schmidt": 321,
        "./linalg/qr": 322,
        "./linspace": 323,
        "./local_response_normalization": 324,
        "./log": 326,
        "./log1p": 327,
        "./log_sigmoid": 328,
        "./log_softmax": 329,
        "./log_sum_exp": 330,
        "./logical_and": 331,
        "./logical_not": 332,
        "./logical_or": 333,
        "./logical_xor": 334,
        "./losses/absolute_difference": 336,
        "./losses/compute_weighted_loss": 337,
        "./losses/cosine_distance": 338,
        "./losses/hinge_loss": 339,
        "./losses/huber_loss": 340,
        "./losses/log_loss": 341,
        "./losses/mean_squared_error": 342,
        "./losses/sigmoid_cross_entropy": 343,
        "./losses/softmax_cross_entropy": 344,
        "./lower_bound": 345,
        "./mat_mul": 346,
        "./max": 347,
        "./max_pool": 348,
        "./max_pool_3d": 349,
        "./max_pool_with_argmax": 352,
        "./maximum": 353,
        "./mean": 354,
        "./meshgrid": 355,
        "./min": 356,
        "./minimum": 357,
        "./mirror_pad": 358,
        "./mod": 359,
        "./moments": 360,
        "./moving_average": 361,
        "./mul": 362,
        "./multi_rnn_cell": 363,
        "./multinomial": 364,
        "./neg": 365,
        "./norm": 367,
        "./not_equal": 368,
        "./one_hot": 369,
        "./ones": 370,
        "./ones_like": 371,
        "./operation": 372,
        "./outer_product": 375,
        "./pad": 376,
        "./pad1d": 377,
        "./pad2d": 378,
        "./pad3d": 379,
        "./pad4d": 380,
        "./pool": 381,
        "./pow": 382,
        "./prelu": 383,
        "./print": 384,
        "./prod": 385,
        "./ragged_gather": 386,
        "./ragged_range": 387,
        "./ragged_tensor_to_tensor": 388,
        "./rand": 390,
        "./random_gamma": 392,
        "./random_normal": 393,
        "./random_standard_normal": 394,
        "./random_uniform": 395,
        "./range": 396,
        "./real": 397,
        "./reciprocal": 398,
        "./relu": 400,
        "./relu6": 401,
        "./reshape": 402,
        "./reverse": 403,
        "./reverse_1d": 404,
        "./reverse_2d": 405,
        "./reverse_3d": 406,
        "./reverse_4d": 407,
        "./round": 409,
        "./rsqrt": 410,
        "./scalar": 411,
        "./scatter_nd": 412,
        "./search_sorted": 414,
        "./selu": 416,
        "./separable_conv2d": 418,
        "./setdiff1d_async": 419,
        "./sigmoid": 420,
        "./sign": 421,
        "./signal/frame": 422,
        "./signal/hamming_window": 423,
        "./signal/hann_window": 424,
        "./signal/stft": 425,
        "./signal_ops_util": 426,
        "./sin": 427,
        "./sinh": 428,
        "./slice": 429,
        "./slice1d": 430,
        "./slice2d": 431,
        "./slice3d": 432,
        "./slice4d": 433,
        "./softmax": 435,
        "./softplus": 436,
        "./space_to_batch_nd": 437,
        "./sparse/sparse_fill_empty_rows": 438,
        "./sparse/sparse_reshape": 440,
        "./sparse/sparse_segment_mean": 442,
        "./sparse/sparse_segment_sum": 444,
        "./sparse_to_dense": 445,
        "./spectral/fft": 447,
        "./spectral/ifft": 448,
        "./spectral/irfft": 449,
        "./spectral/rfft": 450,
        "./split": 451,
        "./sqrt": 453,
        "./square": 454,
        "./squared_difference": 455,
        "./squeeze": 456,
        "./stack": 457,
        "./step": 458,
        "./strided_slice": 459,
        "./string/string_n_grams": 460,
        "./string/string_split": 461,
        "./string/string_to_hash_bucket_fast": 462,
        "./sub": 463,
        "./sum": 464,
        "./tan": 465,
        "./tanh": 466,
        "./tensor": 467,
        "./tensor1d": 468,
        "./tensor2d": 469,
        "./tensor3d": 470,
        "./tensor4d": 471,
        "./tensor5d": 472,
        "./tensor6d": 473,
        "./tile": 475,
        "./topk": 476,
        "./transpose": 477,
        "./truncated_normal": 478,
        "./unique": 479,
        "./unsorted_segment_sum": 480,
        "./unstack": 481,
        "./upper_bound": 482,
        "./variable": 483,
        "./where": 484,
        "./where_async": 485,
        "./zeros": 486,
        "./zeros_like": 487
    }],
    374: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        var _ops = require("./ops");
        Object.keys(_ops).forEach(function (key) {
            if (key === "default" || key === "__esModule")
                return;
            if (key in exports && exports[key] === _ops[key])
                return;
            Object.defineProperty(exports, key, {
                enumerable: true,
                get: function () {
                    return _ops[key];
                }
            });
        });

    }
        , {
        "./ops": 373
    }],
    375: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.outerProduct = void 0;
        var _tensor_util_env = require("../tensor_util_env");
        var util = _interopRequireWildcard(require("../util"));
        var _mat_mul = require("./mat_mul");
        var _operation = require("./operation");
        var _reshape = require("./reshape");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * Computes the outer product of two vectors, `v1` and `v2`.
         *
         * ```js
         * const a = tf.tensor1d([1, 2, 3]);
         * const b = tf.tensor1d([3, 4, 5]);
         *
         * tf.outerProduct(a, b).print();
         * ```
         * @param v1 The first vector in the outer product operation.
         * @param v2 The second vector in the outer product operation.
         *
         * @doc {heading: 'Operations', subheading: 'Matrices'}
         */
        function outerProduct_(v1, v2) {
            const $v1 = (0,
                _tensor_util_env.convertToTensor)(v1, 'v1', 'outerProduct');
            const $v2 = (0,
                _tensor_util_env.convertToTensor)(v2, 'v2', 'outerProduct');
            util.assert($v1.rank === 1 && $v2.rank === 1, () => `Error in outerProduct: inputs must be rank 1, but got ranks ` + `${$v1.rank} and ${$v2.rank}.`);
            const v12D = (0,
                _reshape.reshape)($v1, [-1, 1]);
            const v22D = (0,
                _reshape.reshape)($v2, [1, -1]);
            return (0,
                _mat_mul.matMul)(v12D, v22D);
        }
        const outerProduct = (0,
            _operation.op)({
                outerProduct_
            });
        exports.outerProduct = outerProduct;

    }
        , {
        "../tensor_util_env": 504,
        "../util": 509,
        "./mat_mul": 346,
        "./operation": 372,
        "./reshape": 402
    }],
    376: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.pad = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Pads a `tf.Tensor` with a given value and paddings.
         *
         * This operation implements `CONSTANT` mode. For `REFLECT` and `SYMMETRIC`,
         * refer to `tf.mirrorPad`.
         *
         * Also available are stricter rank-specific methods with the same signature
         * as this method that assert that `paddings` is of given length.
         *   - `tf.pad1d`
         *   - `tf.pad2d`
         *   - `tf.pad3d`
         *   - `tf.pad4d`
         *
         * ```js
         * const x = tf.tensor1d([1, 2, 3, 4]);
         * x.pad([[1, 2]]).print();
         * ```
         * @param x The tensor to pad.
         * @param paddings An array of length `R` (the rank of the tensor), where
         * each element is a length-2 tuple of ints `[padBefore, padAfter]`,
         * specifying how much to pad along each dimension of the tensor.
         * @param constantValue The pad value to use. Defaults to 0.
         *
         * @doc {heading: 'Tensors', subheading: 'Transformations'}
         */
        function pad_(x, paddings, constantValue = 0) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'pad');
            if ($x.rank === 0) {
                throw new Error('pad(scalar) is not defined. Pass non-scalar to pad');
            }
            const attrs = {
                paddings,
                constantValue
            };
            const inputs = {
                x: $x
            };
            return _engine.ENGINE.runKernel(_kernel_names.PadV2, inputs, attrs);
        }
        const pad = (0,
            _operation.op)({
                pad_
            });
        exports.pad = pad;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    377: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.pad1d = void 0;
        var _util = require("../util");
        var _operation = require("./operation");
        var _pad = require("./pad");
        /**
         * Pads a `tf.Tensor1D` with a given value and paddings. See `pad` for details.
         */
        function pad1d_(x, paddings, constantValue = 0) {
            (0,
                _util.assert)(paddings.length === 2, () => 'Invalid number of paddings. Must be length of 2.');
            return (0,
                _pad.pad)(x, [paddings], constantValue);
        }
        const pad1d = (0,
            _operation.op)({
                pad1d_
            });
        exports.pad1d = pad1d;

    }
        , {
        "../util": 509,
        "./operation": 372,
        "./pad": 376
    }],
    378: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.pad2d = void 0;
        var _util = require("../util");
        var _operation = require("./operation");
        var _pad = require("./pad");
        /**
         * Pads a `tf.Tensor2D` with a given value and paddings. See `pad` for details.
         */
        function pad2d_(x, paddings, constantValue = 0) {
            (0,
                _util.assert)(paddings.length === 2 && paddings[0].length === 2 && paddings[1].length === 2, () => 'Invalid number of paddings. Must be length of 2 each.');
            return (0,
                _pad.pad)(x, paddings, constantValue);
        }
        const pad2d = (0,
            _operation.op)({
                pad2d_
            });
        exports.pad2d = pad2d;

    }
        , {
        "../util": 509,
        "./operation": 372,
        "./pad": 376
    }],
    379: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.pad3d = void 0;
        var _util = require("../util");
        var _operation = require("./operation");
        var _pad = require("./pad");
        /**
         * Pads a `tf.Tensor3D` with a given value and paddings. See `pad` for details.
         */
        function pad3d_(x, paddings, constantValue = 0) {
            (0,
                _util.assert)(paddings.length === 3 && paddings[0].length === 2 && paddings[1].length === 2 && paddings[2].length === 2, () => 'Invalid number of paddings. Must be length of 2 each.');
            return (0,
                _pad.pad)(x, paddings, constantValue);
        }
        const pad3d = (0,
            _operation.op)({
                pad3d_
            });
        exports.pad3d = pad3d;

    }
        , {
        "../util": 509,
        "./operation": 372,
        "./pad": 376
    }],
    380: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.pad4d = void 0;
        var _util = require("../util");
        var _operation = require("./operation");
        var _pad = require("./pad");
        /**
         * Pads a `tf.Tensor4D` with a given value and paddings. See `pad` for details.
         */
        function pad4d_(x, paddings, constantValue = 0) {
            (0,
                _util.assert)(paddings.length === 4 && paddings[0].length === 2 && paddings[1].length === 2 && paddings[2].length === 2 && paddings[3].length === 2, () => 'Invalid number of paddings. Must be length of 2 each.');
            return (0,
                _pad.pad)(x, paddings, constantValue);
        }
        const pad4d = (0,
            _operation.op)({
                pad4d_
            });
        exports.pad4d = pad4d;

    }
        , {
        "../util": 509,
        "./operation": 372,
        "./pad": 376
    }],
    381: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.pool = void 0;
        var _tensor_util_env = require("../tensor_util_env");
        var util = _interopRequireWildcard(require("../util"));
        var _avg_pool = require("./avg_pool");
        var _batch_to_space_nd = require("./batch_to_space_nd");
        var conv_util = _interopRequireWildcard(require("./conv_util"));
        var _max_pool = require("./max_pool");
        var _operation = require("./operation");
        var _reshape = require("./reshape");
        var _space_to_batch_nd = require("./space_to_batch_nd");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Performs an N-D pooling operation
         *
         * @param input The input tensor, of rank 4 or rank 3 of shape
         *     `[batch, height, width, inChannels]`. If rank 3, batch of 1 is assumed.
         * @param windowShape The filter size: `[filterHeight, filterWidth]`. If
         *     `filterSize` is a single number, then `filterHeight == filterWidth`.
         * @param poolingType The type of pooling, either 'max' or 'avg'.
         * @param pad The type of padding algorithm:
         *    - `same` and stride 1: output will be of same size as input,
         *       regardless of filter size.
         *    - `valid`: output will be smaller than input if filter is larger
         *       than 1x1.
         *    - For more info, see this guide:
         *     [https://www.tensorflow.org/api_guides/python/nn#Convolution](
         *         https://www.tensorflow.org/api_guides/python/nn#Convolution)
         * @param dilations The dilation rates: `[dilationHeight, dilationWidth]`
         *     in which we sample input values across the height and width dimensions
         *     in dilated pooling. Defaults to `[1, 1]`. If `dilationRate` is a single
         *     number, then `dilationHeight == dilationWidth`. If it is greater than
         *     1, then all values of `strides` must be 1.
         * @param strides The strides of the pooling: `[strideHeight, strideWidth]`. If
         *     `strides` is a single number, then `strideHeight == strideWidth`.
         * @param dimRoundingMode A string from: 'ceil', 'round', 'floor'. If none is
         *     provided, it will default to truncate.
         *
         * @doc {heading: 'Operations', subheading: 'Convolution'}
         */
        function pool_(input, windowShape, poolingType, pad, dilations, strides, dimRoundingMode) {
            if (dilations == null) {
                dilations = [1, 1];
            }
            if (strides == null) {
                strides = 1;
            }
            if (pad === 0) {
                pad = 'valid';
            }
            const $x = (0,
                _tensor_util_env.convertToTensor)(input, 'x', 'maxPool');
            let x4D = $x;
            let reshapedTo4D = false;
            if ($x.rank === 3) {
                reshapedTo4D = true;
                x4D = (0,
                    _reshape.reshape)($x, [1, $x.shape[0], $x.shape[1], $x.shape[2]]);
            }
            util.assert(conv_util.eitherStridesOrDilationsAreOne(strides, dilations), () => 'Error in pool: Either strides or dilations must be 1. ' + `Got strides ${strides} and dilations '${dilations}'`);
            const convInfo = conv_util.computePool2DInfo(x4D.shape, windowShape, strides, dilations, pad);
            const dilation = [convInfo.dilationHeight, convInfo.dilationWidth];
            // The following implementation does batchToSpace(pool(spaceToBatch(x)))
            // whenever dilation > 1 since the TF kernels do not support dilation > 1.
            // tslint:disable-next-line:max-line-length
            // https://github.com/tensorflow/tensorflow/blob/50f6bb67dc98c9b74630b6047aae7a4f8a40fd02/tensorflow/python/ops/nn_ops.py#L1037
            let basePadding;
            if (pad === 'same') {
                basePadding = withSpaceToBatchBasePaddings([convInfo.filterHeight, convInfo.filterWidth], dilation);
            } else {
                basePadding = [[0, 0], [0, 0]];
            }
            const isDilationOne = dilation[0] === 1 && dilation[1] === 1;
            const [adjustedPadding, adjustedCrops] = requiredSpaceToBatchPaddings([convInfo.inHeight, convInfo.inWidth], dilation, basePadding);
            const convertedPad = isDilationOne ? pad : 'valid';
            const convertedX = isDilationOne ? x4D : (0,
                _space_to_batch_nd.spaceToBatchND)(x4D, dilation, adjustedPadding);
            const forwardOp = poolingType === 'avg' ? () => (0,
                _avg_pool.avgPool)(convertedX, windowShape, strides, convertedPad, dimRoundingMode) : () => (0,
                    _max_pool.maxPool)(convertedX, windowShape, strides, convertedPad, dimRoundingMode);
            const y = forwardOp();
            const res = isDilationOne ? y : (0,
                _batch_to_space_nd.batchToSpaceND)(y, dilation, adjustedCrops);
            if (reshapedTo4D) {
                return (0,
                    _reshape.reshape)(res, [res.shape[1], res.shape[2], res.shape[3]]);
            }
            return res;
        }
        // Helper function to compute crops and paddings for pool with dilation > 1.
        // tslint:disable-next-line:max-line-length
        // https://github.com/tensorflow/tensorflow/blob/50f6bb67dc98c9b74630b6047aae7a4f8a40fd02/tensorflow/python/ops/array_ops.py#L2184
        function requiredSpaceToBatchPaddings(inputShape, blockShape, basePadding) {
            const padStart = basePadding.map(b => b[0]);
            const origPadEnd = basePadding.map(b => b[1]);
            const fullInputShape = inputShape.concat(padStart, origPadEnd);
            const padEndExtra = blockShape.map((b, i) => (b - fullInputShape[i] % b) % b);
            const padEnd = origPadEnd.map((s, i) => s + padEndExtra[i]);
            const paddings = blockShape.map((_, i) => [padStart[i], padEnd[i]]);
            const crops = blockShape.map((_, i) => [0, padEndExtra[i]]);
            return [paddings, crops];
        }
        // Helper function to compute base paddings for pool with dilation > 1.
        // tslint:disable-next-line:max-line-length
        // https://github.com/tensorflow/tensorflow/blob/50f6bb67dc98c9b74630b6047aae7a4f8a40fd02/tensorflow/python/ops/nn_ops.py#L524
        function withSpaceToBatchBasePaddings(filterShape, dilation) {
            // Spatial dimensions of the filters and the upsampled filters in which we
            // introduce (rate - 1) zeros between consecutive filter values.
            const dilatedFilterShape = filterShape.map((s, i) => {
                return s + (s - 1) * (dilation[i] - 1);
            }
            );
            const padExtraShape = dilatedFilterShape.map(s => s - 1);
            // When padding is odd, we pad more at end, following the same
            // convention as conv2d.
            const padExtraStart = padExtraShape.map(s => Math.floor(s / 2));
            const padExtraEnd = padExtraShape.map((s, i) => s - padExtraStart[i]);
            return padExtraShape.map((_, i) => {
                return [padExtraStart[i], padExtraEnd[i]];
            }
            );
        }
        const pool = (0,
            _operation.op)({
                pool_
            });
        exports.pool = pool;

    }
        , {
        "../tensor_util_env": 504,
        "../util": 509,
        "./avg_pool": 217,
        "./batch_to_space_nd": 223,
        "./conv_util": 257,
        "./max_pool": 348,
        "./operation": 372,
        "./reshape": 402,
        "./space_to_batch_nd": 437
    }],
    382: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.pow = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util = require("../tensor_util");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes the power of one `tf.Tensor` to another. Supports broadcasting.
         *
         * Given a `tf.Tensor` x and a `tf.Tensor` y, this operation computes x^y for
         * corresponding elements in x and y. The result's dtype will be the upcasted
         * type of the `base` and `exp` dtypes.
         *
         * ```js
         * const a = tf.tensor([[2, 3], [4, 5]])
         * const b = tf.tensor([[1, 2], [3, 0]]).toInt();
         *
         * a.pow(b).print();  // or tf.pow(a, b)
         * ```
         *
         * ```js
         * const a = tf.tensor([[1, 2], [3, 4]])
         * const b = tf.tensor(2).toInt();
         *
         * a.pow(b).print();  // or tf.pow(a, b)
         * ```
         * We also expose `powStrict` which has the same signature as this op and
         * asserts that `base` and `exp` are the same shape (does not broadcast).
         *
         * @param base The base `tf.Tensor` to pow element-wise.
         * @param exp The exponent `tf.Tensor` to pow element-wise.
         *
         * @doc {heading: 'Operations', subheading: 'Arithmetic'}
         */
        function pow_(base, exp) {
            let $base = (0,
                _tensor_util_env.convertToTensor)(base, 'base', 'pow');
            let $exp = (0,
                _tensor_util_env.convertToTensor)(exp, 'exp', 'pow');
            [$base, $exp] = (0,
                _tensor_util.makeTypesMatch)($base, $exp);
            const inputs = {
                a: $base,
                b: $exp
            };
            return _engine.ENGINE.runKernel(_kernel_names.Pow, inputs);
        }
        const pow = (0,
            _operation.op)({
                pow_
            });
        exports.pow = pow;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util": 503,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    383: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.prelu = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes leaky rectified linear element-wise with parametric alphas.
         *
         * `x < 0 ? alpha * x : f(x) = x`
         *
         * ```js
         * const x = tf.tensor1d([-1, 2, -3, 4]);
         * const alpha = tf.scalar(0.1);
         *
         * x.prelu(alpha).print();  // or tf.prelu(x, alpha)
         * ```
         * @param x The input tensor.
         * @param alpha Scaling factor for negative values.
         *
         * @doc {heading: 'Operations', subheading: 'Basic math'}
         */
        function prelu_(x, alpha) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'prelu');
            const $alpha = (0,
                _tensor_util_env.convertToTensor)(alpha, 'alpha', 'prelu');
            const inputs = {
                x: $x,
                alpha: $alpha
            };
            return _engine.ENGINE.runKernel(_kernel_names.Prelu, inputs);
        }
        const prelu = (0,
            _operation.op)({
                prelu_
            });
        exports.prelu = prelu;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    384: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.print = print;
        /**
         * @license
         * Copyright 2020 Google Inc. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        /**
         * Prints information about the `tf.Tensor` including its data.
         *
         * ```js
         * const verbose = true;
         * tf.tensor2d([1, 2, 3, 4], [2, 2]).print(verbose);
         * ```
         * @param x The tensor to be printed.
         * @param verbose Whether to print verbose information about the ` Tensor`,
         * including dtype and size.
         *
         * @doc {heading: 'Tensors', subheading: 'Creation'}
         */
        function print(x, verbose = false) {
            console.log(x.toString(verbose));
        }

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

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.prod = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _cast = require("./cast");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes the product of elements across dimensions of a `tf.Tensor`.
         *
         * Reduces the input along the dimensions given in `axes`. Unless `keepDims`
         * is true, the rank of the `tf.Tensor` is reduced by 1 for each entry in
         * `axes`. If `keepDims` is true, the reduced dimensions are retained with
         * length 1. If `axes` has no entries, all dimensions are reduced, and a
         * `tf.Tensor` with a single element is returned.
         *
         * ```js
         * const x = tf.tensor1d([1, 2, 3]);
         *
         * x.prod().print();  // or tf.prod(x)
         * ```
         *
         * ```js
         * const x = tf.tensor2d([1, 2, 3, 4], [2, 2]);
         *
         * const axis = 1;
         * x.prod(axis).print();  // or tf.prod(x, axis)
         * ```
         *
         * @param x The input tensor to compute the product over. If the dtype is `bool`
         *   it will be converted to `int32` and the output dtype will be `int32`.
         * @param axis The dimension(s) to reduce. By default it reduces
         *     all dimensions.
         * @param keepDims If true, retains reduced dimensions with size 1.
         *
         * @doc {heading: 'Operations', subheading: 'Reduction'}
         */
        function prod_(x, axis = null, keepDims = false) {
            let $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'prod');
            if ($x.dtype === 'bool') {
                // bool is not an allowed type for the underlying kernel.
                $x = (0,
                    _cast.cast)($x, 'int32');
            }
            const inputs = {
                x: $x
            };
            const attrs = {
                axis,
                keepDims
            };
            return _engine.ENGINE.runKernel(_kernel_names.Prod, inputs, attrs);
        }
        const prod = (0,
            _operation.op)({
                prod_
            });
        exports.prod = prod;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./cast": 236,
        "./operation": 372
    }],
    386: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.raggedGather = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2022 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        function raggedGather_(paramsNestedSplits, paramsDenseValues, indices, outputRaggedRank) {
            const $paramsNestedSplits = paramsNestedSplits.map((t, i) => (0,
                _tensor_util_env.convertToTensor)(t, `tensors${i}`, 'raggedGather', 'int32'));
            const $paramsDenseValues = (0,
                _tensor_util_env.convertToTensor)(paramsDenseValues, 'paramsDenseValues', 'raggedGather');
            const $indices = (0,
                _tensor_util_env.convertToTensor)(indices, 'indices', 'raggedGather', 'int32');
            const inputs = {
                paramsNestedSplits: $paramsNestedSplits,
                paramsDenseValues: $paramsDenseValues,
                indices: $indices
            };
            const attrs = {
                outputRaggedRank
            };
            const result = _engine.ENGINE.runKernel(_kernel_names.RaggedGather, inputs, attrs);
            return {
                outputNestedSplits: result.slice(0, result.length - 1),
                outputDenseValues: result[result.length - 1]
            };
        }
        const raggedGather = (0,
            _operation.op)({
                raggedGather_
            });
        exports.raggedGather = raggedGather;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    387: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.raggedRange = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2022 Google LLC.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Returns a RaggedTensor result composed from rtDenseValues and rtNestedSplits,
         * such that result[i] = [starts[i], starts[i] + deltas[i], ..., limits[i]]).
         *
         * @param starts: A Tensor. Must be one of the following types:
         *     'float32', 'int32'. The starts of each range.
         * @param limits: A Tensor. Must have the same type as starts. The limits of
         *     each range.
         * @param deltas: A Tensor. Must have the same type as starts. The deltas of
         *     each range.
         * @return A map with the following properties:
         *     - rtNestedSplits: A Tensor of type 'int32'.
         *     - rtDenseValues: A Tensor. Has the same type as starts.
         */
        function raggedRange_(starts, limits, deltas) {
            const $starts = (0,
                _tensor_util_env.convertToTensor)(starts, 'starts', 'raggedRange');
            const $limits = (0,
                _tensor_util_env.convertToTensor)(limits, 'limits', 'raggedRange', $starts.dtype);
            const $deltas = (0,
                _tensor_util_env.convertToTensor)(deltas, 'deltas', 'raggedRange', $starts.dtype);
            const inputs = {
                starts: $starts,
                limits: $limits,
                deltas: $deltas
            };
            const result = _engine.ENGINE.runKernel(_kernel_names.RaggedRange, inputs);
            return {
                rtNestedSplits: result[0],
                rtDenseValues: result[1]
            };
        }
        const raggedRange = (0,
            _operation.op)({
                raggedRange_
            });
        exports.raggedRange = raggedRange;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    388: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.raggedTensorToTensor = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2022 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Create a dense tensor from a ragged tensor, possibly altering its shape.
         *
         * The raggedTensorToTensor op creates a dense tensor from am array of row
         * partition tensors, a value vector, and default values. If the shape is
         * unspecified, the minimal shape required to contain all the elements in the
         * ragged tensor (the natural shape) will be used. If some dimensions are left
         * unspecified, then the size of the natural shape is used in that dimension.
         *
         * The defaultValue will be broadcast to the output shape. After that, the
         * values from the ragged tensor overwrite the default values. Note that the
         * defaultValue must have less dimensions than the value.
         *
         * The row partition tensors are in the order of the dimensions. At present, the
         * types can be: "ROW_SPLITS": the row_splits tensor from the ragged tensor.
         *   "VALUE_ROWIDS": the value_rowids tensor from the ragged tensor.
         *   "FIRST_DIM_SIZE": if value_rowids is used for the first dimension, then it
         * is preceded by "FIRST_DIM_SIZE".
         * ```
         * @param shape: A Tensor. Must be one of the following types: 'int32'. The
         *     desired shape of the output tensor. If left unspecified (empty), the
         *     minimal shape required to contain all the elements in the ragged tensor
         *     (the natural shape) will be used. If some dimensions are left
         *     unspecified, then the size of the natural shape is used in that
         *     dimension.
         *
         *     Note that dense dimensions cannot be modified by the shape argument.
         *     Trying to change the size of a dense dimension will cause the op to fail.
         *     Examples: natural shape: [4, 5, 6] shape: -1 output shape: [4, 5, 6]
         *
         *     natural shape: [4, 5, 6] shape: [3, -1, 2] output shape: [3, 5, 2]
         *
         *     natural shape: [4, 5, 6] shape: [3, 7, 2] output shape: [3, 7, 2]
         * @param values: A Tensor. A 1D tensor representing the values of the ragged
         *     tensor.
         * @param defaultValue: A Tensor. Must have the same type as values. The
         *     defaultValue when the shape is larger than the ragged tensor. The
         *     defaultValue is broadcast until it is the shape of the output tensor,
         *     and then overwritten by values in the ragged tensor. The default value
         *     must be compatible with this broadcast operation, and must have fewer
         *     dimensions than the value tensor.
         * @param rowPartitionTensors: A list of at least 1 Tensor objects with the same
         *     type in: 'int32'.
         * @param rowPartitionTypes: A list of strings. The types of the row partition
         *     tensors. At present, these can be:
         *     "ROW_SPLITS": the row_splits tensor from the ragged tensor.
         *     "VALUE_ROWIDS": the value_rowids tensor from the ragged tensor.
         *     "FIRST_DIM_SIZE": if value_rowids is used for the first dimension, then
         *         it is preceeded by "FIRST_DIM_SIZE". The tensors are in the order of
         *         the dimensions.
         * @return A Tensor. Has the same type as values.
         * @doc {heading: 'Operations', subheading: 'Ragged'}
         */
        function raggedTensorToTensor_(shape, values, defaultValue, rowPartitionTensors, rowPartitionTypes) {
            const $shape = (0,
                _tensor_util_env.convertToTensor)(shape, 'shape', 'raggedTensorToTensor', 'int32');
            const $values = (0,
                _tensor_util_env.convertToTensor)(values, 'values', 'raggedTensorToTensor');
            const $defaultValue = (0,
                _tensor_util_env.convertToTensor)(defaultValue, 'defaultValue', 'raggedTensorToTensor', $values.dtype);
            const $rowPartitionTensors = rowPartitionTensors.map((t, i) => (0,
                _tensor_util_env.convertToTensor)(t, `tensors${i}`, 'raggedTensorToTensor', 'int32'));
            const inputs = {
                shape: $shape,
                values: $values,
                defaultValue: $defaultValue,
                rowPartitionTensors: $rowPartitionTensors
            };
            const attrs = {
                rowPartitionTypes
            };
            return _engine.ENGINE.runKernel(_kernel_names.RaggedTensorToTensor, inputs, attrs);
        }
        const raggedTensorToTensor = (0,
            _operation.op)({
                raggedTensorToTensor_
            });
        exports.raggedTensorToTensor = raggedTensorToTensor;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    389: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.RowPartitionType = void 0;
        exports.combineRaggedTensorToTensorShapes = combineRaggedTensorToTensorShapes;
        exports.getRaggedRank = getRaggedRank;
        exports.getRowPartitionTypesHelper = getRowPartitionTypesHelper;
        exports.validateDefaultValueShape = validateDefaultValueShape;
        /**
         * @license
         * Copyright 2022 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var RowPartitionType;
        exports.RowPartitionType = RowPartitionType;
        (function (RowPartitionType) {
            RowPartitionType[RowPartitionType["FIRST_DIM_SIZE"] = 0] = "FIRST_DIM_SIZE";
            RowPartitionType[RowPartitionType["VALUE_ROWIDS"] = 1] = "VALUE_ROWIDS";
            RowPartitionType[RowPartitionType["ROW_LENGTHS"] = 2] = "ROW_LENGTHS";
            RowPartitionType[RowPartitionType["ROW_SPLITS"] = 3] = "ROW_SPLITS";
            RowPartitionType[RowPartitionType["ROW_LIMITS"] = 4] = "ROW_LIMITS";
            RowPartitionType[RowPartitionType["ROW_STARTS"] = 5] = "ROW_STARTS";
        }
        )(RowPartitionType || (exports.RowPartitionType = RowPartitionType = {}));
        function combineRaggedTensorToTensorShapes(raggedRank, shape, valueShape) {
            // Test for consistency of valueShape and shape specified.
            // If shape is unspecified and valueShape is specified, then copy
            // over the size from the valueShape dimension.
            let outputShape = new Array();
            if (valueShape == null && shape == null) {
                return outputShape;
            }
            if (shape == null) {
                // Here, value_shape must be of known size.
                while (outputShape.length < raggedRank + valueShape.length) {
                    outputShape.push(-1);
                }
            } else {
                outputShape = shape.slice();
            }
            if (valueShape == null) {
                return outputShape;
            }
            // At this point, valueShape and output_shape have known ranks.
            if (raggedRank + valueShape.length !== outputShape.length) {
                throw new Error(`rt input.shape and shape=${shape} are incompatible: rt input.rank = ${raggedRank + valueShape.length}, but shape.rank = ${outputShape.length}`);
            }
            for (let i = 1; i < valueShape.length; ++i) {
                const valueDim = valueShape[i];
                const outputShapeDimIndex = outputShape[outputShape.length - valueShape.length + i];
                const outputShapeDim = outputShape[outputShapeDimIndex];
                if (valueDim >= 0) {
                    if (outputShapeDim >= 0) {
                        if (outputShapeDim !== valueDim) {
                            throw new Error(`rt input.shape and shape=${shape} are incompatible: rt input.shape[${i + raggedRank}] = ${valueDim} but shape[${i + raggedRank}] = ${outputShapeDim}`);
                        }
                    } else {
                        outputShape[outputShapeDimIndex] = valueDim;
                    }
                }
            }
            return outputShape;
        }
        function getRowPartitionTypesHelper(rowPartitionTypeStrings) {
            const stringToType = {
                'FIRST_DIM_SIZE': RowPartitionType.FIRST_DIM_SIZE,
                'VALUE_ROWIDS': RowPartitionType.VALUE_ROWIDS,
                'ROW_LENGTHS': RowPartitionType.ROW_LENGTHS,
                'ROW_SPLITS': RowPartitionType.ROW_SPLITS,
                'ROW_LIMITS': RowPartitionType.ROW_LIMITS,
                'ROW_STARTS': RowPartitionType.ROW_STARTS
            };
            const result = [];
            for (const typeStr of rowPartitionTypeStrings) {
                if (typeStr in stringToType) {
                    result.push(stringToType[typeStr]);
                } else {
                    break;
                }
            }
            return result;
        }
        function getRaggedRank(rowPartitionTypes) {
            if (rowPartitionTypes.length === 0) {
                return 0;
            }
            if (rowPartitionTypes[0] === RowPartitionType.FIRST_DIM_SIZE) {
                return rowPartitionTypes.length - 1;
            }
            return rowPartitionTypes.length;
        }
        function validateDefaultValueShape(defaultValueShape, valueShape) {
            if (defaultValueShape == null || valueShape == null) {
                return;
            }
            const defaultNDims = defaultValueShape.length;
            const valuesNDims = valueShape.length;
            if (defaultNDims >= valuesNDims) {
                throw new Error(`defaultValue.shape=${defaultValueShape} and ragged tensor flatValues.shape=${valueShape}, are incompatible: defaultValue.rank = ${defaultNDims} must be less than ragged tensor input flatValues.rank = ${valuesNDims})`);
            }
            for (let i = 0; i < Math.min(defaultNDims, valuesNDims - 1); ++i) {
                const defaultDim = defaultValueShape[i];
                const valueDim = valueShape[i + 1];
                if (defaultDim >= 0 && valueDim >= 0 && defaultDim !== 1 && defaultDim !== valueDim) {
                    throw new Error(`defaultValue.shape=${defaultValueShape}, and ragged tensor input flatValues.shape=${valueShape} are incompatible: defaultValue.shape[${i - defaultValueShape.length}] = ${defaultDim} but ragged tensor input.flatValues.shape[${i - defaultValueShape.length}] = ${valueDim}`);
                }
            }
        }

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

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.rand = void 0;
        var _engine = require("../engine");
        var _util = require("../util");
        var _util_base = require("../util_base");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Creates a `tf.Tensor` with values sampled from a random number generator
         * function defined by the user.
         *
         * @param shape An array of integers defining the output tensor shape.
         * @param randFunction A random number generator function which is called
         * for each element in the output tensor.
         * @param dtype The data type of the output tensor. Defaults to 'float32'.
         *
         * @doc {heading: 'Tensors', subheading: 'Random'}
         */
        function rand_(shape, randFunction, dtype) {
            (0,
                _util_base.assertNonNegativeIntegerDimensions)(shape);
            const size = (0,
                _util.sizeFromShape)(shape);
            let values = null;
            if (dtype == null || dtype === 'float32') {
                values = new Float32Array(size);
            } else if (dtype === 'int32') {
                values = new Int32Array(size);
            } else if (dtype === 'bool') {
                values = new Uint8Array(size);
            } else {
                throw new Error(`Unknown data type ${dtype}`);
            }
            for (let i = 0; i < size; i++) {
                values[i] = randFunction();
            }
            return _engine.ENGINE.makeTensor(values, shape, dtype);
        }
        const rand = (0,
            _operation.op)({
                rand_
            });
        exports.rand = rand;

    }
        , {
        "../engine": 77,
        "../util": 509,
        "../util_base": 510,
        "./operation": 372
    }],
    391: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.UniformRandom = exports.RandGamma = exports.MPRandGauss = void 0;
        exports.expectArrayInMeanStdRange = expectArrayInMeanStdRange;
        exports.jarqueBeraNormalityTest = jarqueBeraNormalityTest;
        var seedrandom = _interopRequireWildcard(require("seedrandom"));
        var _test_util = require("../test_util");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        // https://en.wikipedia.org/wiki/Marsaglia_polar_method
        class MPRandGauss {
            constructor(mean, stdDeviation, dtype, truncated, seed) {
                this.mean = mean;
                this.stdDev = stdDeviation;
                this.dtype = dtype;
                this.nextVal = NaN;
                this.truncated = truncated;
                if (this.truncated) {
                    this.upper = this.mean + this.stdDev * 2;
                    this.lower = this.mean - this.stdDev * 2;
                }
                const seedValue = seed ? seed : Math.random();
                this.random = seedrandom.alea(seedValue.toString());
            }
            /** Returns next sample from a Gaussian distribution. */
            nextValue() {
                if (!isNaN(this.nextVal)) {
                    const value = this.nextVal;
                    this.nextVal = NaN;
                    return value;
                }
                let resultX, resultY;
                let isValid = false;
                while (!isValid) {
                    let v1, v2, s;
                    do {
                        v1 = 2 * this.random() - 1;
                        v2 = 2 * this.random() - 1;
                        s = v1 * v1 + v2 * v2;
                    } while (s >= 1 || s === 0);
                    const mul = Math.sqrt(-2.0 * Math.log(s) / s);
                    resultX = this.mean + this.stdDev * v1 * mul;
                    resultY = this.mean + this.stdDev * v2 * mul;
                    if (!this.truncated || this.isValidTruncated(resultX)) {
                        isValid = true;
                    }
                }
                if (!this.truncated || this.isValidTruncated(resultY)) {
                    this.nextVal = this.convertValue(resultY);
                }
                return this.convertValue(resultX);
            }
            /** Handles proper rounding for non-floating-point numbers. */
            convertValue(value) {
                if (this.dtype == null || this.dtype === 'float32') {
                    return value;
                }
                return Math.round(value);
            }
            /** Returns true if less than 2-standard-deviations from the mean. */
            isValidTruncated(value) {
                return value <= this.upper && value >= this.lower;
            }
        }
        // Marsaglia, George, and Wai Wan Tsang. 2000. "A Simple Method for Generating
        // Gamma Variables."
        exports.MPRandGauss = MPRandGauss;
        class RandGamma {
            constructor(alpha, beta, dtype, seed) {
                this.alpha = alpha;
                this.beta = 1 / beta;
                // convert rate to scale parameter
                this.dtype = dtype;
                const seedValue = seed ? seed : Math.random();
                this.randu = seedrandom.alea(seedValue.toString());
                this.randn = new MPRandGauss(0, 1, dtype, false, this.randu());
                if (alpha < 1) {
                    this.d = alpha + 2 / 3;
                } else {
                    this.d = alpha - 1 / 3;
                }
                this.c = 1 / Math.sqrt(9 * this.d);
            }
            /** Returns next sample from a gamma distribution. */
            nextValue() {
                let x2, v0, v1, x, u, v;
                while (true) {
                    do {
                        x = this.randn.nextValue();
                        v = 1 + this.c * x;
                    } while (v <= 0);
                    v *= v * v;
                    x2 = x * x;
                    v0 = 1 - 0.331 * x2 * x2;
                    v1 = 0.5 * x2 + this.d * (1 - v + Math.log(v));
                    u = this.randu();
                    if (u < v0 || Math.log(u) < v1) {
                        break;
                    }
                }
                v = 1 / this.beta * this.d * v;
                if (this.alpha < 1) {
                    v *= Math.pow(this.randu(), 1 / this.alpha);
                }
                return this.convertValue(v);
            }
            /** Handles proper rounding for non-floating-point numbers. */
            convertValue(value) {
                if (this.dtype === 'float32') {
                    return value;
                }
                return Math.round(value);
            }
        }
        exports.RandGamma = RandGamma;
        class UniformRandom {
            constructor(min = 0, max = 1, dtype, seed) {
                /** Handles proper rounding for non floating point numbers. */
                this.canReturnFloat = () => this.dtype == null || this.dtype === 'float32';
                this.min = min;
                this.range = max - min;
                this.dtype = dtype;
                if (seed == null) {
                    seed = Math.random();
                }
                if (typeof seed === 'number') {
                    seed = seed.toString();
                }
                if (!this.canReturnFloat() && this.range <= 1) {
                    throw new Error(`The difference between ${min} - ${max} <= 1 and dtype is not float`);
                }
                this.random = seedrandom.alea(seed);
            }
            convertValue(value) {
                if (this.canReturnFloat()) {
                    return value;
                }
                return Math.round(value);
            }
            nextValue() {
                return this.convertValue(this.min + this.range * this.random());
            }
        }
        exports.UniformRandom = UniformRandom;
        function jarqueBeraNormalityTest(values) {
            // https://en.wikipedia.org/wiki/Jarque%E2%80%93Bera_test
            const n = values.length;
            const s = skewness(values);
            const k = kurtosis(values);
            const jb = n / 6 * (Math.pow(s, 2) + 0.25 * Math.pow(k - 3, 2));
            // JB test requires 2-degress of freedom from Chi-Square @ 0.95:
            // http://www.itl.nist.gov/div898/handbook/eda/section3/eda3674.htm
            const CHI_SQUARE_2DEG = 5.991;
            if (jb > CHI_SQUARE_2DEG) {
                throw new Error(`Invalid p-value for JB: ${jb}`);
            }
        }
        function expectArrayInMeanStdRange(actual, expectedMean, expectedStdDev, epsilon) {
            if (epsilon == null) {
                epsilon = (0,
                    _test_util.testEpsilon)();
            }
            const actualMean = mean(actual);
            (0,
                _test_util.expectNumbersClose)(actualMean, expectedMean, epsilon);
            (0,
                _test_util.expectNumbersClose)(standardDeviation(actual, actualMean), expectedStdDev, epsilon);
        }
        function mean(values) {
            let sum = 0;
            for (let i = 0; i < values.length; i++) {
                sum += values[i];
            }
            return sum / values.length;
        }
        function standardDeviation(values, mean) {
            let squareDiffSum = 0;
            for (let i = 0; i < values.length; i++) {
                const diff = values[i] - mean;
                squareDiffSum += diff * diff;
            }
            return Math.sqrt(squareDiffSum / values.length);
        }
        function kurtosis(values) {
            // https://en.wikipedia.org/wiki/Kurtosis
            const valuesMean = mean(values);
            const n = values.length;
            let sum2 = 0;
            let sum4 = 0;
            for (let i = 0; i < n; i++) {
                const v = values[i] - valuesMean;
                sum2 += Math.pow(v, 2);
                sum4 += Math.pow(v, 4);
            }
            return 1 / n * sum4 / Math.pow(1 / n * sum2, 2);
        }
        function skewness(values) {
            // https://en.wikipedia.org/wiki/Skewness
            const valuesMean = mean(values);
            const n = values.length;
            let sum2 = 0;
            let sum3 = 0;
            for (let i = 0; i < n; i++) {
                const v = values[i] - valuesMean;
                sum2 += Math.pow(v, 2);
                sum3 += Math.pow(v, 3);
            }
            return 1 / n * sum3 / Math.pow(1 / (n - 1) * sum2, 3 / 2);
        }

    }
        , {
        "../test_util": 505,
        "seedrandom": 638
    }],
    392: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.randomGamma = void 0;
        var _util_base = require("../util_base");
        var _buffer = require("./buffer");
        var _operation = require("./operation");
        var _rand_util = require("./rand_util");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Creates a `tf.Tensor` with values sampled from a gamma distribution.
         *
         * ```js
         * tf.randomGamma([2, 2], 1).print();
         * ```
         *
         * @param shape An array of integers defining the output tensor shape.
         * @param alpha The shape parameter of the gamma distribution.
         * @param beta The inverse scale parameter of the gamma distribution. Defaults
         *     to 1.
         * @param dtype The data type of the output. Defaults to float32.
         * @param seed The seed for the random number generator.
         *
         * @doc {heading: 'Tensors', subheading: 'Random'}
         */
        function randomGamma_(shape, alpha, beta = 1, dtype = 'float32', seed) {
            (0,
                _util_base.assertNonNegativeIntegerDimensions)(shape);
            if (beta == null) {
                beta = 1;
            }
            if (dtype == null) {
                dtype = 'float32';
            }
            if (dtype !== 'float32' && dtype !== 'int32') {
                throw new Error(`Unsupported data type ${dtype}`);
            }
            const rgamma = new _rand_util.RandGamma(alpha, beta, dtype, seed);
            const res = (0,
                _buffer.buffer)(shape, dtype);
            for (let i = 0; i < res.values.length; i++) {
                res.values[i] = rgamma.nextValue();
            }
            return res.toTensor();
        }
        const randomGamma = (0,
            _operation.op)({
                randomGamma_
            });
        exports.randomGamma = randomGamma;

    }
        , {
        "../util_base": 510,
        "./buffer": 235,
        "./operation": 372,
        "./rand_util": 391
    }],
    393: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.randomNormal = void 0;
        var _util_base = require("../util_base");
        var _buffer = require("./buffer");
        var _operation = require("./operation");
        var _rand_util = require("./rand_util");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Creates a `tf.Tensor` with values sampled from a normal distribution.
         *
         * ```js
         * tf.randomNormal([2, 2]).print();
         * ```
         *
         * @param shape An array of integers defining the output tensor shape.
         * @param mean The mean of the normal distribution.
         * @param stdDev The standard deviation of the normal distribution.
         * @param dtype The data type of the output.
         * @param seed The seed for the random number generator.
         *
         * @doc {heading: 'Tensors', subheading: 'Random'}
         */
        function randomNormal_(shape, mean = 0, stdDev = 1, dtype, seed) {
            (0,
                _util_base.assertNonNegativeIntegerDimensions)(shape);
            if (dtype != null && dtype === 'bool') {
                throw new Error(`Unsupported data type ${dtype}`);
            }
            const randGauss = new _rand_util.MPRandGauss(mean, stdDev, dtype, false /* truncated */
                , seed);
            const res = (0,
                _buffer.buffer)(shape, dtype);
            for (let i = 0; i < res.values.length; i++) {
                res.values[i] = randGauss.nextValue();
            }
            return res.toTensor();
        }
        const randomNormal = (0,
            _operation.op)({
                randomNormal_
            });
        exports.randomNormal = randomNormal;

    }
        , {
        "../util_base": 510,
        "./buffer": 235,
        "./operation": 372,
        "./rand_util": 391
    }],
    394: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.randomStandardNormal = void 0;
        var _operation = require("./operation");
        var _random_normal = require("./random_normal");
        /**
         * @license
         * Copyright 2022 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Creates a `tf.Tensor` with values sampled from a normal distribution.
         *
         * The generated values will have mean 0 and standard deviation 1.
         *
         * ```js
         * tf.randomStandardNormal([2, 2]).print();
         * ```
         *
         * @param shape An array of integers defining the output tensor shape.
         * @param dtype The data type of the output.
         * @param seed The seed for the random number generator.
         *
         * @doc {heading: 'Tensors', subheading: 'Random'}
         */
        function randomStandardNormal_(shape, dtype, seed) {
            if (dtype != null && dtype === 'bool') {
                throw new Error(`Unsupported data type ${dtype}`);
            }
            return (0,
                _random_normal.randomNormal)(shape, 0, 1, dtype, seed);
        }
        const randomStandardNormal = (0,
            _operation.op)({
                randomStandardNormal_
            });
        exports.randomStandardNormal = randomStandardNormal;

    }
        , {
        "./operation": 372,
        "./random_normal": 393
    }],
    395: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.randomUniform = void 0;
        var _util_base = require("../util_base");
        var _buffer = require("./buffer");
        var _operation = require("./operation");
        var _rand_util = require("./rand_util");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Creates a `tf.Tensor` with values sampled from a uniform distribution.
         *
         * The generated values follow a uniform distribution in the range [minval,
         * maxval). The lower bound minval is included in the range, while the upper
         * bound maxval is excluded.
         *
         * ```js
         * tf.randomUniform([2, 2]).print();
         * ```
         *
         * @param shape An array of integers defining the output tensor shape.
         * @param minval The lower bound on the range of random values to generate.
         *   Defaults to 0.
         * @param maxval The upper bound on the range of random values to generate.
         *   Defaults to 1.
         * @param dtype The data type of the output tensor. Defaults to 'float32'.
         *
         * @doc {heading: 'Tensors', subheading: 'Random'}
         */
        function randomUniform_(shape, minval = 0, maxval = 1, dtype = 'float32', seed) {
            (0,
                _util_base.assertNonNegativeIntegerDimensions)(shape);
            const res = (0,
                _buffer.buffer)(shape, dtype);
            const random = new _rand_util.UniformRandom(minval, maxval, null, seed);
            for (let i = 0; i < res.values.length; i++) {
                res.values[i] = random.nextValue();
            }
            return res.toTensor();
        }
        const randomUniform = (0,
            _operation.op)({
                randomUniform_
            });
        exports.randomUniform = randomUniform;

    }
        , {
        "../util_base": 510,
        "./buffer": 235,
        "./operation": 372,
        "./rand_util": 391
    }],
    396: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.range = range;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Creates a new `tf.Tensor1D` filled with the numbers in the range provided.
         *
         * The tensor is a half-open interval meaning it includes start, but
         * excludes stop. Decrementing ranges and negative step values are also
         * supported.
         *
         *
         * ```js
         * tf.range(0, 9, 2).print();
         * ```
         *
         * @param start An integer start value
         * @param stop An integer stop value
         * @param step An integer increment (will default to 1 or -1)
         * @param dtype The data type of the output tensor. Defaults to 'float32'.
         *
         * @doc {heading: 'Tensors', subheading: 'Creation'}
         */
        function range(start, stop, step = 1, dtype = 'float32') {
            if (step === 0) {
                throw new Error('Cannot have a step of zero');
            }
            const attrs = {
                start,
                stop,
                step,
                dtype
            };
            return _engine.ENGINE.runKernel(_kernel_names.Range, {}/* inputs */
                , attrs);
        }

    }
        , {
        "../engine": 77,
        "../kernel_names": 198
    }],
    397: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.real = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Returns the real part of a complex (or real) tensor.
         *
         * Given a tensor input, this operation returns a tensor of type float that is
         * the real part of each element in input considered as a complex number.
         *
         * If the input is real, it simply makes a clone.
         *
         * ```js
         * const x = tf.complex([-2.25, 3.25], [4.75, 5.75]);
         * tf.real(x).print();
         * ```
         *
         * @doc {heading: 'Tensors', subheading: 'Creation'}
         */
        function real_(input) {
            const $input = (0,
                _tensor_util_env.convertToTensor)(input, 'input', 'real');
            const inputs = {
                input: $input
            };
            return _engine.ENGINE.runKernel(_kernel_names.Real, inputs);
        }
        const real = (0,
            _operation.op)({
                real_
            });
        exports.real = real;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    398: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.reciprocal = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes reciprocal of x element-wise: `1 / x`
         *
         * ```js
         * const x = tf.tensor1d([0, 1, 2]);
         *
         * x.reciprocal().print();  // or tf.reciprocal(x)
         * ```
         * @param x The input tensor.
         *
         * @doc {heading: 'Operations', subheading: 'Basic math'}
         */
        function reciprocal_(x) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'reciprocal');
            const inputs = {
                x: $x
            };
            return _engine.ENGINE.runKernel(_kernel_names.Reciprocal, inputs);
        }
        const reciprocal = (0,
            _operation.op)({
                reciprocal_
            });
        exports.reciprocal = reciprocal;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    399: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.PARALLELIZE_THRESHOLD = void 0;
        exports.computeOptimalWindowSize = computeOptimalWindowSize;
        var _util = require("../util");
        /**
         * @license
         * Copyright 2017 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        /**
         * Inputs of size above this threshold will be parallelized by calling multiple
         * shader programs.
         */

        const PARALLELIZE_THRESHOLD = 30;
        exports.PARALLELIZE_THRESHOLD = PARALLELIZE_THRESHOLD;
        function computeOptimalWindowSize(inSize) {
            if (inSize <= PARALLELIZE_THRESHOLD) {
                return inSize;
            }
            return (0,
                _util.nearestDivisor)(inSize, Math.floor(Math.sqrt(inSize)));
        }

    }
        , {
        "../util": 509
    }],
    400: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.relu = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes rectified linear element-wise: `max(x, 0)`.
         *
         * ```js
         * const x = tf.tensor1d([-1, 2, -3, 4]);
         *
         * x.relu().print();  // or tf.relu(x)
         * ```
         * @param x The input tensor. If the dtype is `bool`, the output dtype will be
         *     `int32`.
         *
         * @doc {heading: 'Operations', subheading: 'Basic math'}
         */
        function relu_(x) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'relu');
            const inputs = {
                x: $x
            };
            return _engine.ENGINE.runKernel(_kernel_names.Relu, inputs);
        }
        const relu = (0,
            _operation.op)({
                relu_
            });
        exports.relu = relu;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    401: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.relu6 = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes rectified linear 6 element-wise: `min(max(x, 0), 6)`.
         *
         * ```js
         * const x = tf.tensor1d([-1, 2, -3, 8]);
         *
         * x.relu6().print();  // or tf.relu6(x)
         * ```
         * @param x The input tensor. If the dtype is `bool`, the output dtype will be
         *     `int32`.
         *
         * @doc {heading: 'Operations', subheading: 'Basic math'}
         */
        function relu6_(x) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'relu6');
            const inputs = {
                x: $x
            };
            return _engine.ENGINE.runKernel(_kernel_names.Relu6, inputs);
        }
        const relu6 = (0,
            _operation.op)({
                relu6_
            });
        exports.relu6 = relu6;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    402: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.reshape = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Reshapes a `tf.Tensor` to a given shape.
         *
         * Given an input tensor, returns a new tensor with the same values as the
         * input tensor with shape `shape`.
         *
         * If one component of shape is the special value -1, the size of that
         * dimension is computed so that the total size remains constant. In
         * particular, a shape of [-1] flattens into 1-D. At most one component of
         * shape can be -1.
         *
         * If shape is 1-D or higher, then the operation returns a tensor with shape
         * shape filled with the values of tensor. In this case, the number of
         * elements implied by shape must be the same as the number of elements in
         * tensor.
         *
         * ```js
         * const x = tf.tensor1d([1, 2, 3, 4]);
         * x.reshape([2, 2]).print();
         * ```
         *
         * @param x The input tensor to be reshaped.
         * @param shape An array of integers defining the output tensor shape.
         *
         * @doc {heading: 'Tensors', subheading: 'Transformations'}
         */
        function reshape_(x, shape) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'reshape', 'string_or_numeric');
            const inputs = {
                x: $x
            };
            const attrs = {
                shape
            };
            return _engine.ENGINE.runKernel(_kernel_names.Reshape, inputs, attrs);
        }
        const reshape = (0,
            _operation.op)({
                reshape_
            });
        exports.reshape = reshape;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    403: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.reverse = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Reverses a `tf.Tensor` along a specified axis.
         *
         * Also available are stricter rank-specific methods that assert that `x` is
         * of the given rank:
         *   - `tf.reverse1d`
         *   - `tf.reverse2d`
         *   - `tf.reverse3d`
         *   - `tf.reverse4d`
         *
         * Except `tf.reverse1d` (which does not have axis param), all methods have
         * same signature as this method.
         *
         * ```js
         * const x = tf.tensor1d([1, 2, 3, 4]);
         *
         * x.reverse().print();
         * ```
         *
         * ```js
         * const x = tf.tensor2d([1, 2, 3, 4], [2, 2]);
         *
         * const axis = 1;
         * x.reverse(axis).print();
         * ```
         * @param x The input tensor to be reversed.
         * @param axis The set of dimensions to reverse. Must be in the
         *     range [-rank(x), rank(x)). Defaults to all axes.
         *
         * @doc {heading: 'Tensors', subheading: 'Slicing and Joining'}
         */
        function reverse_(x, axis) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'reverse');
            const inputs = {
                x: $x
            };
            const attrs = {
                dims: axis
            };
            return _engine.ENGINE.runKernel(_kernel_names.Reverse, inputs, attrs);
        }
        const reverse = (0,
            _operation.op)({
                reverse_
            });
        exports.reverse = reverse;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    404: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.reverse1d = void 0;
        var _tensor_util_env = require("../tensor_util_env");
        var util = _interopRequireWildcard(require("../util"));
        var _operation = require("./operation");
        var _reverse = require("./reverse");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Reverses a `tf.Tensor1D`.
         *
         * @param x The input tensor.
         */
        function reverse1d_(x) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'reverse');
            util.assert($x.rank === 1, () => `Error in reverse1D: x must be rank 1 but got rank ${$x.rank}.`);
            return (0,
                _reverse.reverse)($x, 0);
        }
        const reverse1d = (0,
            _operation.op)({
                reverse1d_
            });
        exports.reverse1d = reverse1d;

    }
        , {
        "../tensor_util_env": 504,
        "../util": 509,
        "./operation": 372,
        "./reverse": 403
    }],
    405: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.reverse2d = void 0;
        var _tensor_util_env = require("../tensor_util_env");
        var util = _interopRequireWildcard(require("../util"));
        var _operation = require("./operation");
        var _reverse = require("./reverse");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Reverses a `tf.Tensor2D` along a specified axis.
         *
         * @param x The input tensor.
         * @param axis The set of dimensions to reverse. Must be in the
         *     range [-rank(x), rank(x)). Defaults to all axes.
         */
        function reverse2d_(x, axis) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'reverse');
            util.assert($x.rank === 2, () => `Error in reverse2D: x must be rank 2 but got rank ${$x.rank}.`);
            return (0,
                _reverse.reverse)($x, axis);
        }
        const reverse2d = (0,
            _operation.op)({
                reverse2d_
            });
        exports.reverse2d = reverse2d;

    }
        , {
        "../tensor_util_env": 504,
        "../util": 509,
        "./operation": 372,
        "./reverse": 403
    }],
    406: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.reverse3d = void 0;
        var _tensor_util_env = require("../tensor_util_env");
        var util = _interopRequireWildcard(require("../util"));
        var _operation = require("./operation");
        var _reverse = require("./reverse");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Reverses a `tf.Tensor3D` along a specified axis.
         *
         * @param x The input tensor.
         * @param axis The set of dimensions to reverse. Must be in the
         *     range [-rank(x), rank(x)). Defaults to all axes.
         */
        function reverse3d_(x, axis) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'reverse');
            util.assert($x.rank === 3, () => `Error in reverse3D: x must be rank 3 but got rank ${$x.rank}.`);
            return (0,
                _reverse.reverse)($x, axis);
        }
        const reverse3d = (0,
            _operation.op)({
                reverse3d_
            });
        exports.reverse3d = reverse3d;

    }
        , {
        "../tensor_util_env": 504,
        "../util": 509,
        "./operation": 372,
        "./reverse": 403
    }],
    407: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.reverse4d = void 0;
        var _tensor_util_env = require("../tensor_util_env");
        var util = _interopRequireWildcard(require("../util"));
        var _operation = require("./operation");
        var _reverse = require("./reverse");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Reverses a `tf.Tensor4D` along a specified axis.
         *
         * @param x The input tensor.
         * @param axis The set of dimensions to reverse. Must be in the
         *     range [-rank(x), rank(x)). Defaults to all axes.
         */
        function reverse4d_(x, axis) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'reverse');
            util.assert($x.rank === 4, () => `Error in reverse4D: x must be rank 4 but got rank ${$x.rank}.`);
            return (0,
                _reverse.reverse)($x, axis);
        }
        const reverse4d = (0,
            _operation.op)({
                reverse4d_
            });
        exports.reverse4d = reverse4d;

    }
        , {
        "../tensor_util_env": 504,
        "../util": 509,
        "./operation": 372,
        "./reverse": 403
    }],
    408: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.getImageCenter = getImageCenter;
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        // Returns the image center in pixels.
        function getImageCenter(center, imageHeight, imageWidth) {
            const centerX = imageWidth * (typeof center === 'number' ? center : center[0]);
            const centerY = imageHeight * (typeof center === 'number' ? center : center[1]);
            return [centerX, centerY];
        }

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

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.round = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes round of input `tf.Tensor` element-wise: `round(x)`.
         * It implements banker's rounding.
         *
         * ```js
         * const x = tf.tensor1d([.6, 1.1, -3.3]);
         *
         * x.round().print();  // or tf.round(x)
         * ```
         * @param x The input tensor.
         *
         * @doc {heading: 'Operations', subheading: 'Basic math'}
         */
        function round_(x) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'round');
            const inputs = {
                x: $x
            };
            return _engine.ENGINE.runKernel(_kernel_names.Round, inputs);
        }
        const round = (0,
            _operation.op)({
                round_
            });
        exports.round = round;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    410: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.rsqrt = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes reciprocal of square root of the input `tf.Tensor` element-wise:
         * `y = 1 / sqrt(x)`
         *
         * ```js
         * const x = tf.tensor1d([1, 2, 4, -1]);
         *
         * x.rsqrt().print();  // or tf.rsqrt(x)
         * ```
         * @param x The input tensor.
         *
         * @doc {heading: 'Operations', subheading: 'Basic math'}
         */
        function rsqrt_(x) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'rsqrt', 'float32');
            const inputs = {
                x: $x
            };
            return _engine.ENGINE.runKernel(_kernel_names.Rsqrt, inputs);
        }
        const rsqrt = (0,
            _operation.op)({
                rsqrt_
            });
        exports.rsqrt = rsqrt;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    411: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.scalar = scalar;
        var _util = require("../util");
        var _tensor_ops_util = require("./tensor_ops_util");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Creates rank-0 `tf.Tensor` (scalar) with the provided value and dtype.
         *
         * The same functionality can be achieved with `tf.tensor`, but in general
         * we recommend using `tf.scalar` as it makes the code more readable.
         *
         * ```js
         * tf.scalar(3.14).print();
         * ```
         *
         * @param value The value of the scalar.
         * @param dtype The data type.
         *
         * @doc {heading: 'Tensors', subheading: 'Creation'}
         */
        function scalar(value, dtype) {
            if (((0,
                _util.isTypedArray)(value) && dtype !== 'string' || Array.isArray(value)) && dtype !== 'complex64') {
                throw new Error('Error creating a new Scalar: value must be a primitive ' + '(number|boolean|string)');
            }
            if (dtype === 'string' && (0,
                _util.isTypedArray)(value) && !(value instanceof Uint8Array)) {
                throw new Error('When making a scalar from encoded string, ' + 'the value must be `Uint8Array`.');
            }
            const shape = [];
            const inferredShape = [];
            return (0,
                _tensor_ops_util.makeTensor)(value, shape, inferredShape, dtype);
        }

    }
        , {
        "../util": 509,
        "./tensor_ops_util": 474
    }],
    412: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.scatterND = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _util_base = require("../util_base");
        var _operation = require("./operation");
        var scatter_nd_util = _interopRequireWildcard(require("./scatter_nd_util"));
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Creates a new tensor by applying sparse updates to individual
         * values or slices within a zero tensor of the given shape tensor according to
         * indices. This operator is the inverse of the `tf.gatherND` operator which
         * extracts values or slices from a given tensor.
         *
         * ```js
         * const indices = tf.tensor2d([4, 3, 1, 7], [4, 1], 'int32');
         * const updates = tf.tensor1d([9, 10, 11, 12]);
         * const shape = [8];
         * tf.scatterND(indices, updates, shape).print() //[0, 11, 0, 10, 9, 0, 0, 12]
         * ```
         *
         * @param indices The tensor contains the indices into the output tensor.
         * @param updates The tensor contains the value for the indices.
         * @param shape: The shape of the output tensor.
         *
         * @doc {heading: 'Operations', subheading: 'Slicing and Joining'}
         */
        function scatterND_(indices, updates, shape) {
            (0,
                _util_base.assertNonNegativeIntegerDimensions)(shape);
            const $indices = (0,
                _tensor_util_env.convertToTensor)(indices, 'indices', 'scatterND', 'int32');
            const $updates = (0,
                _tensor_util_env.convertToTensor)(updates, 'updates', 'scatterND');
            scatter_nd_util.validateInput($updates, $indices, shape);
            const inputs = {
                indices: $indices,
                updates: $updates
            };
            const attrs = {
                shape
            };
            // tslint:disable-next-line: no-unnecessary-type-assertion
            return _engine.ENGINE.runKernel(_kernel_names.ScatterNd, inputs, attrs);
        }
        const scatterND = (0,
            _operation.op)({
                scatterND_
            });
        exports.scatterND = scatterND;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "../util_base": 510,
        "./operation": 372,
        "./scatter_nd_util": 413
    }],
    413: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.calculateShapes = calculateShapes;
        exports.validateInput = validateInput;
        exports.validateUpdateShape = validateUpdateShape;
        var _util = require("../util");
        /**
         * Check whether updates.shape = indices.shape[:batchDim] +
         * shape[sliceDim:]
         *
         * @param x The input tensor.
         */
        function validateUpdateShape(shape, indices, updates) {
            const sliceDim = indices.rank > 1 ? indices.shape[indices.rank - 1] : 1;
            const batchDim = indices.rank > 1 ? indices.rank - 1 : 1;
            const shapeError = 'Must have updates.shape = indices.shape[:batchDim] + ' + `shape[sliceDim:], got updates.shape: ${updates.shape}` + `, indices.shape: ${indices.shape}, shape: ${shape}` + `, sliceDim: ${sliceDim}, and batchDim: ${batchDim}.`;
            if (updates.rank < batchDim) {
                throw new Error(shapeError + ` update.rank < ${batchDim}. `);
            }
            if (shape.length < sliceDim + (updates.rank - batchDim)) {
                throw new Error(shapeError + ` Output shape length < ${sliceDim + (updates.rank - batchDim)}`);
            }
            if (updates.rank !== batchDim + shape.length - sliceDim) {
                throw new Error(shapeError + ` update.rank != ${batchDim + shape.length - sliceDim}`);
            }
            for (let d = 0; d < batchDim; ++d) {
                if (updates.shape[d] !== indices.shape[d]) {
                    throw new Error(shapeError + ` updates.shape[${d}] (${updates.shape[d]}) != indices.shape[${d}] (${indices.shape[d]}).`);
                }
            }
            for (let d = 0; d < updates.rank - batchDim; ++d) {
                if (updates.shape[d + batchDim] !== shape[d + sliceDim]) {
                    throw new Error(shapeError + ` updates.shape[${d + batchDim}] (${updates.shape[d + batchDim]}) != shape[${d + batchDim}] (${shape[d + batchDim]})`);
                }
            }
        }
        /**
         * Validate scatter nd inputs.
         *
         * @param update The tensor contains the update values.
         * @param indices The tensor contains the indices for the update values.
         * @param shape The shape of the output tensor.
         */
        function validateInput(updates, indices, shape) {
            if (indices.rank < 1) {
                throw new Error('tf.scatterND() expects the indices to be rank 1 or higher,' + ` but the rank was ${indices.rank}.`);
            }
            if (updates.rank < 1) {
                throw new Error('tf.scatterND() expects the updates to be rank 1 or higher,' + ` but the rank was ${updates.rank}.`);
            }
            if (indices.dtype !== 'int32') {
                throw new Error(`The dtype of 'indices' should be int32, but got dtype: ${indices.dtype}`);
            }
            if (shape.length < 1) {
                throw new Error(`Output rank must be greater or equal to 1, but got shape: ${shape}`);
            }
            if (shape.length === 0) {
                if (indices.size === 0) {
                    throw new Error(`Indices specified for empty output. indices shape: ${indices.shape}`);
                }
                if (updates.size === 0) {
                    throw new Error(`Updates specified for empty output. updates shape: ${updates.shape}`);
                }
            }
            validateUpdateShape(shape, indices, updates);
        }
        /**
         * Calculate the shape information for the output.
         *
         * @param update The tensor contains the update values.
         * @param indices The tensor contains the indices for the update values.
         * @param shape The shape of the output tensor.
         *
         * @returns ScatterShapeInfo
         */
        function calculateShapes(updates, indices, shape) {
            // Calculate the number of dimensions in indices
            const indicesRank = indices.shape.length;
            const sliceRank = indicesRank > 1 ? indices.shape[indicesRank - 1] : 1;
            // Calculate the number of elements that make up each slice of our updated
            // tensor. This allows us to work with flattened tensors and copy over whole
            // slices at a time.
            const totalNd = shape.length;
            let sliceSize = 1;
            for (let i = sliceRank; i < totalNd; ++i) {
                sliceSize *= shape[i];
            }
            const safeSliceDim = sliceRank < 1 ? 1 : sliceRank;
            const numUpdates = (0,
                _util.sizeFromShape)(indices.shape) / safeSliceDim;
            const strides = [...(0,
                _util.computeStrides)(shape.slice(0, sliceRank)), 1];
            const outputSize = (0,
                _util.sizeFromShape)(shape);
            return {
                sliceRank,
                numUpdates,
                sliceSize,
                strides,
                outputSize
            };
        }

    }
        , {
        "../util": 509
    }],
    414: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.searchSorted = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _util_base = require("../util_base");
        var _operation = require("./operation");
        var _reshape = require("./reshape");
        /**
         * @license
         * Copyright 2022 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const INT32_MAX = 2147483648;
        /**
         * Searches for where a value would go in a sorted sequence.
         *
         * This is not a method for checking containment (like javascript in).
         *
         * The typical use case for this operation is "binning", "bucketing", or
         * "discretizing". The values are assigned to bucket-indices based on the edges
         * listed in 'sortedSequence'. This operation returns the bucket-index for each
         * value.
         *
         * The side argument controls which index is returned if a value lands exactly
         * on an edge.
         *
         * The axis is not settable for this operation. It always operates on the
         * innermost dimension (axis=-1). The operation will accept any number of outer
         * dimensions.
         *
         * Note: This operation assumes that 'sortedSequence' is sorted along the
         * innermost axis, maybe using 'sort(..., axis=-1)'. If the sequence is not
         * sorted no error is raised and the content of the returned tensor is not well
         * defined.
         *
         * ```js
         * const edges = tf.tensor1d([-1, 3.3, 9.1, 10.0]);
         * let values = tf.tensor1d([0.0, 4.1, 12.0]);
         * const result1 = tf.searchSorted(edges, values, 'left');
         * result1.print(); // [1, 2, 4]
         *
         * const seq = tf.tensor1d([0, 3, 9, 10, 10]);
         * values = tf.tensor1d([0, 4, 10]);
         * const result2 = tf.searchSorted(seq, values, 'left');
         * result2.print(); // [0, 2, 3]
         * const result3 = tf.searchSorted(seq, values, 'right');
         * result3.print(); // [1, 2, 5]
         *
         * const sortedSequence = tf.tensor2d([[0., 3., 8., 9., 10.],
         *                                     [1., 2., 3., 4., 5.]]);
         * values = tf.tensor2d([[9.8, 2.1, 4.3],
         *                       [0.1, 6.6, 4.5, ]]);
         * const result4 = tf.searchSorted(sortedSequence, values, 'left');
         * result4.print(); // [[4, 1, 2], [0, 5, 4]]
         * ```
         * @param sortedSequence: N-D. Sorted sequence.
         * @param values: N-D. Search values.
         * @param side: 'left'|'right'. Defaults to 'left'. 'left' corresponds to lower
         *     bound and 'right' to upper bound.
         * @return An N-D int32 tensor the size of values containing the result of
         *     applying either lower bound or upper bound (depending on side) to each
         *     value. The result is not a global index to the entire Tensor, but the
         *     index in the last dimension.
         * @doc {heading: 'Operations', subheading: 'Evaluation'}
         */
        function searchSorted_(sortedSequence, values, side = 'left') {
            const $sortedSequence = (0,
                _tensor_util_env.convertToTensor)(sortedSequence, 'sortedSequence', 'searchSorted');
            const $values = (0,
                _tensor_util_env.convertToTensor)(values, 'values', 'searchSorted');
            const sequenceSize = $sortedSequence.shape[$sortedSequence.shape.length - 1];
            const valuesSize = $values.shape[$values.shape.length - 1];
            const $sortedSequence2D = (0,
                _reshape.reshape)($sortedSequence, [-1, sequenceSize]);
            const $values2D = (0,
                _reshape.reshape)($values, [-1, valuesSize]);
            if ($sortedSequence2D.rank < 2) {
                throw new Error(`Sorted input argument must be at least 2-dimensional`);
            }
            if ($sortedSequence2D.shape[0] !== $values2D.shape[0]) {
                throw new Error(`Leading dimension of 'sortedSequence' and 'values' must match.`);
            }
            if ((0,
                _util_base.sizeFromShape)($values2D.shape) >= INT32_MAX) {
                throw new Error(`values tensor size must less than ${INT32_MAX}`);
            }
            if ($sortedSequence2D.shape[1] >= INT32_MAX) {
                throw new Error(`trailing dim_size must less than ${INT32_MAX} for int32 output type, was ${$sortedSequence2D.shape[1]}`);
            }
            const inputs = {
                sortedSequence: $sortedSequence2D,
                values: $values2D
            };
            const attrs = {
                side
            };
            return _engine.ENGINE.runKernel(_kernel_names.SearchSorted, inputs, attrs);
        }
        const searchSorted = (0,
            _operation.op)({
                searchSorted_
            });
        exports.searchSorted = searchSorted;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "../util_base": 510,
        "./operation": 372,
        "./reshape": 402
    }],
    415: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.collectGatherOpShapeInfo = collectGatherOpShapeInfo;
        exports.computeOutShape = computeOutShape;
        exports.segOpComputeOptimalWindowSize = segOpComputeOptimalWindowSize;
        var _util = require("../util");
        var _reduce_util = require("./reduce_util");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        function segOpComputeOptimalWindowSize(inSize, numSegments) {
            let done = false;
            let res;
            if (inSize <= _reduce_util.PARALLELIZE_THRESHOLD) {
                res = inSize;
                done = true;
            } else {
                res = (0,
                    _util.nearestDivisor)(inSize, Math.floor(Math.sqrt(inSize)));
            }
            while (!done) {
                if (res > numSegments || res === inSize) {
                    done = true;
                } else {
                    res = (0,
                        _util.nearestDivisor)(inSize, res + 1);
                }
            }
            return res;
        }
        function computeOutShape(aShape, axis, numSegments) {
            const outShape = [];
            const rank = aShape.length;
            for (let dim = 0; dim < rank; dim++) {
                if (dim !== axis) {
                    outShape.push(aShape[dim]);
                } else {
                    outShape.push(numSegments);
                }
            }
            return outShape;
        }
        function collectGatherOpShapeInfo(x, indices, axis, batchDims) {
            const indicesRank = indices.shape.length;
            const xRank = x.shape.length;
            if (batchDims !== 0) {
                if (batchDims < -indicesRank || batchDims > indicesRank) {
                    throw new Error(`Expect batchDims in the range of [-${indicesRank}, ${indicesRank}], but got ${batchDims}`);
                }
            }
            if (batchDims < 0) {
                batchDims += indicesRank;
            }
            if (batchDims > xRank) {
                throw new Error(`batchDims (${batchDims}) must be less than rank(x) (
    ${xRank}).`);
            }
            if (axis < batchDims) {
                throw new Error(`batchDims (${batchDims}) must be less than or equal to axis (${axis}).`);
            }
            for (let i = 0; i < batchDims; ++i) {
                if (x.shape[i] !== indices.shape[i]) {
                    throw new Error(`x.shape[${i}]: ${x.shape[i]} should be equal to indices.shape[${i}]: ${indices.shape[i]}.`);
                }
            }
            const dimSize = x.shape[axis];
            const outputShape = [];
            let batchSize = 1;
            let outerSize = 1;
            let sliceSize = 1;
            for (let i = 0; i < batchDims; ++i) {
                outputShape.push(x.shape[i]);
                batchSize *= x.shape[i];
            }
            for (let i = batchDims; i < axis; i++) {
                outputShape.push(x.shape[i]);
                outerSize *= x.shape[i];
            }
            for (let i = batchDims; i < indicesRank; i++) {
                outputShape.push(indices.shape[i]);
            }
            for (let i = axis + 1; i < xRank; i++) {
                outputShape.push(x.shape[i]);
                sliceSize *= x.shape[i];
            }
            return {
                batchSize,
                sliceSize,
                outerSize,
                dimSize,
                outputShape
            };
        }

    }
        , {
        "../util": 509,
        "./reduce_util": 399
    }],
    416: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.selu = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes scaled exponential linear element-wise.
         *
         * `x < 0 ? scale * alpha * (exp(x) - 1) : scale * x`
         *
         * ```js
         * const x = tf.tensor1d([-1, 2, -3, 4]);
         *
         * x.selu().print();  // or tf.selu(x)
         * ```
         * @param x The input tensor.
         *
         * @doc {heading: 'Operations', subheading: 'Basic math'}
         */
        function selu_(x) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'selu');
            const inputs = {
                x: $x
            };
            return _engine.ENGINE.runKernel(_kernel_names.Selu, inputs);
        }
        const selu = (0,
            _operation.op)({
                selu_
            });
        exports.selu = selu;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    417: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.SELU_SCALEALPHA = exports.SELU_SCALE = void 0;
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        const SELU_SCALEALPHA = 1.7580993408473768599402175208123;
        exports.SELU_SCALEALPHA = SELU_SCALEALPHA;
        const SELU_SCALE = 1.0507009873554804934193349852946;
        exports.SELU_SCALE = SELU_SCALE;

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

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.separableConv2d = void 0;
        var _tensor_util_env = require("../tensor_util_env");
        var util = _interopRequireWildcard(require("../util"));
        var _conv2d = require("./conv2d");
        var _depthwise_conv2d = require("./depthwise_conv2d");
        var _operation = require("./operation");
        var _reshape = require("./reshape");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * 2-D convolution with separable filters.
         *
         * Performs a depthwise convolution that acts separately on channels followed
         * by a pointwise convolution that mixes channels. Note that this is
         * separability between dimensions [1, 2] and 3, not spatial separability
         * between dimensions 1 and 2.
         *
         * See
         * [https://www.tensorflow.org/api_docs/python/tf/nn/separable_conv2d](
         *     https://www.tensorflow.org/api_docs/python/tf/nn/separable_conv2d)
         * for more details.
         *
         * @param x The input tensor, of rank 4 or rank 3, of shape
         *     `[batch, height, width, inChannels]`. If rank 3, batch of 1 is
         * assumed.
         * @param depthwiseFilter The depthwise filter tensor, rank 4, of shape
         *     `[filterHeight, filterWidth, inChannels, channelMultiplier]`. This is
         *     the filter used in the first step.
         * @param pointwiseFilter The pointwise filter tensor, rank 4, of shape
         *     `[1, 1, inChannels * channelMultiplier, outChannels]`. This is
         *     the filter used in the second step.
         * @param strides The strides of the convolution: `[strideHeight,
         * strideWidth]`. If strides is a single number, then `strideHeight ==
         * strideWidth`.
         * @param pad The type of padding algorithm.
         *   - `same` and stride 1: output will be of same size as input,
         *       regardless of filter size.
         *   - `valid`: output will be smaller than input if filter is larger
         *       than 1x1.
         *   - For more info, see this guide:
         *     [https://www.tensorflow.org/api_docs/python/tf/nn/convolution](
         *          https://www.tensorflow.org/api_docs/python/tf/nn/convolution)
         * @param dilations The dilation rates: `[dilationHeight, dilationWidth]`
         *     in which we sample input values across the height and width dimensions
         *     in atrous convolution. Defaults to `[1, 1]`. If `rate` is a single
         *     number, then `dilationHeight == dilationWidth`. If it is greater than
         *     1, then all values of `strides` must be 1.
         * @param dataFormat: An optional string from: "NHWC", "NCHW". Defaults to
         *     "NHWC". Specify the data format of the input and output data. With the
         *     default format "NHWC", the data is stored in the order of: [batch,
         *     height, width, channels]. Only "NHWC" is currently supported.
         *
         * @doc {heading: 'Operations', subheading: 'Convolution'}
         */
        function separableConv2d_(x, depthwiseFilter, pointwiseFilter, strides, pad, dilation = [1, 1], dataFormat = 'NHWC') {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'separableConv2d');
            const $depthwiseFilter = (0,
                _tensor_util_env.convertToTensor)(depthwiseFilter, 'depthwiseFilter', 'separableConv2d');
            const $pointwiseFilter = (0,
                _tensor_util_env.convertToTensor)(pointwiseFilter, 'pointwiseFilter', 'separableConv2d');
            let x4D = $x;
            let reshapedTo4D = false;
            if ($x.rank === 3) {
                reshapedTo4D = true;
                x4D = (0,
                    _reshape.reshape)($x, [1, $x.shape[0], $x.shape[1], $x.shape[2]]);
            }
            if (dataFormat === 'NCHW') {
                throw new Error('separableConv2d currently does not support dataFormat NCHW; only ' + 'NHWC is supported');
            }
            util.assert(x4D.rank === 4, () => `Error in separableConv2d: input must be rank 4, but got ` + `rank ${x4D.rank}.`);
            util.assert($depthwiseFilter.rank === 4, () => `Error in separableConv2d: depthwise filter must be rank 4, but ` + `got rank ${$depthwiseFilter.rank}.`);
            util.assert($pointwiseFilter.rank === 4, () => `Error in separableConv2d: pointwise filter must be rank 4, but ` + `got rank ${$depthwiseFilter.rank}.`);
            util.assert($pointwiseFilter.shape[0] === 1, () => `Error in separableConv2d: the first dimension of pointwise filter ` + ` must be 1, but got ${$pointwiseFilter.shape[0]}.`);
            util.assert($pointwiseFilter.shape[1] === 1, () => `Error in separableConv2d: the second dimension of pointwise ` + `filter must be 1, but got ${$pointwiseFilter.shape[1]}.`);
            const inChannels = $depthwiseFilter.shape[2];
            const channelMultiplier = $depthwiseFilter.shape[3];
            util.assert($pointwiseFilter.shape[2] === inChannels * channelMultiplier, () => `Error in separableConv2d: the third dimension of pointwise filter ` + `must be ${inChannels * channelMultiplier}, ` + `but got ${$pointwiseFilter.shape[2]}.`);
            const depthwise = (0,
                _depthwise_conv2d.depthwiseConv2d)(x4D, $depthwiseFilter, strides, pad, dataFormat, dilation);
            const pointwiseStride = 1;
            const res = (0,
                _conv2d.conv2d)(depthwise, $pointwiseFilter, pointwiseStride, 'valid', dataFormat);
            if (reshapedTo4D) {
                return (0,
                    _reshape.reshape)(res, [res.shape[1], res.shape[2], res.shape[3]]);
            }
            return res;
        }
        const separableConv2d = (0,
            _operation.op)({
                separableConv2d_
            });
        exports.separableConv2d = separableConv2d;

    }
        , {
        "../tensor_util_env": 504,
        "../util": 509,
        "./conv2d": 249,
        "./depthwise_conv2d": 264,
        "./operation": 372,
        "./reshape": 402
    }],
    419: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.setdiff1dAsync = void 0;
        var _tensor = require("../tensor");
        var _tensor_util_env = require("../tensor_util_env");
        var util = _interopRequireWildcard(require("../util"));
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2020 Google Inc. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes the difference between two lists of numbers.
         *
         * Given a Tensor `x` and a Tensor `y`, this operation returns a Tensor `out`
         * that represents all values that are in `x` but not in `y`. The returned
         * Tensor `out` is sorted in the same order that the numbers appear in `x`
         * (duplicates are preserved). This operation also returns a Tensor indices that
         * represents the position of each out element in `x`. In other words:
         *
         * `out[i] = x[idx[i]] for i in [0, 1, ..., out.length - 1]`
         *
         * ```js
         * const x = [1, 2, 3, 4, 5, 6];
         * const y = [1, 3, 5];
         *
         * const [out, indices] = await tf.setdiff1dAsync(x, y);
         * out.print(); // [2, 4, 6]
         * indices.print(); // [1, 3, 5]
         * ```
         *
         * @param x 1-D Tensor. Values to keep.
         * @param y 1-D Tensor. Must have the same type as x. Values to exclude in the
         *     output.
         * @returns Promise of Tensor tuple [out, indices].
         *  out: Tensor with the same type as x.
         *  indices: A Tensor of type int32.
         *
         * @doc {heading: 'Tensors', subheading: 'Transformations'}
         */
        async function setdiff1dAsync_(x, y) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'setdiff1d');
            const $y = (0,
                _tensor_util_env.convertToTensor)(y, 'y', 'setdiff1d');
            util.assert($x.dtype === $y.dtype, () => `x and y should have the same dtype, but got x (${$x.dtype}) and y (${$y.dtype}).`);
            util.assert($x.rank === 1, () => `x should be 1D tensor, but got x (${$x.shape}).`);
            util.assert($y.rank === 1, () => `y should be 1D tensor, but got y (${$y.shape}).`);
            const xVals = await $x.data();
            const yVals = await $y.data();
            const ySet = new Set(yVals);
            let outputSize = 0;
            for (let i = 0; i < xVals.length; i++) {
                if (!ySet.has(xVals[i])) {
                    outputSize++;
                }
            }
            const buffer = new _tensor.TensorBuffer([outputSize], $x.dtype);
            const indices = new _tensor.TensorBuffer([outputSize], 'int32');
            for (let i = 0, p = 0; i < xVals.length; i++) {
                if (!ySet.has(xVals[i])) {
                    buffer.values[p] = xVals[i];
                    indices.values[p] = i;
                    p++;
                }
            }
            return [buffer.toTensor(), indices.toTensor()];
        }
        const setdiff1dAsync = setdiff1dAsync_;
        exports.setdiff1dAsync = setdiff1dAsync;

    }
        , {
        "../tensor": 501,
        "../tensor_util_env": 504,
        "../util": 509
    }],
    420: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.sigmoid = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes sigmoid element-wise, `1 / (1 + exp(-x))`
         *
         * ```js
         * const x = tf.tensor1d([0, -1, 2, -3]);
         *
         * x.sigmoid().print();  // or tf.sigmoid(x)
         * ```
         * @param x The input tensor.
         *
         * @doc {heading: 'Operations', subheading: 'Basic math'}
         */
        function sigmoid_(x) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'sigmoid', 'float32');
            const inputs = {
                x: $x
            };
            return _engine.ENGINE.runKernel(_kernel_names.Sigmoid, inputs);
        }
        const sigmoid = (0,
            _operation.op)({
                sigmoid_
            });
        exports.sigmoid = sigmoid;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    421: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.sign = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Returns an element-wise indication of the sign of a number.
         *
         * ```js
         * const x = tf.tensor1d([.6, 1.1, -3.3, NaN, 0]);
         *
         * x.sign().print();  // or tf.sign(x)
         * ```
         * @param x The input Tensor.
         *
         * @doc {heading: 'Operations', subheading: 'Basic math'}
         */
        function sign_(x) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'sign');
            const inputs = {
                x: $x
            };
            return _engine.ENGINE.runKernel(_kernel_names.Sign, inputs);
        }
        const sign = (0,
            _operation.op)({
                sign_
            });
        exports.sign = sign;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    422: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.frame = void 0;
        var _concat = require("../concat");
        var _fill = require("../fill");
        var _operation = require("../operation");
        var _reshape = require("../reshape");
        var _slice = require("../slice");
        var _tensor2d = require("../tensor2d");
        /**
         * @license
         * Copyright 2019 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Expands input into frames of frameLength.
         * Slides a window size with frameStep.
         *
         * ```js
         * tf.signal.frame([1, 2, 3], 2, 1).print();
         * ```
         * @param signal The input tensor to be expanded
         * @param frameLength Length of each frame
         * @param frameStep The frame hop size in samples.
         * @param padEnd Whether to pad the end of signal with padValue.
         * @param padValue A number to use where the input signal does
         *     not exist when padEnd is True.
         *
         * @doc {heading: 'Operations', subheading: 'Signal', namespace: 'signal'}
         */
        function frame_(signal, frameLength, frameStep, padEnd = false, padValue = 0) {
            let start = 0;
            const output = [];
            while (start + frameLength <= signal.size) {
                output.push((0,
                    _slice.slice)(signal, start, frameLength));
                start += frameStep;
            }
            if (padEnd) {
                while (start < signal.size) {
                    const padLen = start + frameLength - signal.size;
                    const pad = (0,
                        _concat.concat)([(0,
                            _slice.slice)(signal, start, frameLength - padLen), (0,
                                _fill.fill)([padLen], padValue)]);
                    output.push(pad);
                    start += frameStep;
                }
            }
            if (output.length === 0) {
                return (0,
                    _tensor2d.tensor2d)([], [0, frameLength]);
            }
            return (0,
                _reshape.reshape)((0,
                    _concat.concat)(output), [output.length, frameLength]);
        }
        const frame = (0,
            _operation.op)({
                frame_
            });
        exports.frame = frame;

    }
        , {
        "../concat": 241,
        "../fill": 284,
        "../operation": 372,
        "../reshape": 402,
        "../slice": 429,
        "../tensor2d": 469
    }],
    423: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.hammingWindow = void 0;
        var _operation = require("../operation");
        var _signal_ops_util = require("../signal_ops_util");
        /**
         * @license
         * Copyright 2019 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Generate a hamming window.
         *
         * See: https://en.wikipedia.org/wiki/Window_function#Hann_and_Hamming_windows
         *
         * ```js
         * tf.signal.hammingWindow(10).print();
         * ```
         * @param The length of window
         *
         * @doc {heading: 'Operations', subheading: 'Signal', namespace: 'signal'}
         */
        function hammingWindow_(windowLength) {
            return (0,
                _signal_ops_util.cosineWindow)(windowLength, 0.54, 0.46);
        }
        const hammingWindow = (0,
            _operation.op)({
                hammingWindow_
            });
        exports.hammingWindow = hammingWindow;

    }
        , {
        "../operation": 372,
        "../signal_ops_util": 426
    }],
    424: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.hannWindow = void 0;
        var _operation = require("../operation");
        var _signal_ops_util = require("../signal_ops_util");
        /**
         * @license
         * Copyright 2019 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Generate a Hann window.
         *
         * See: https://en.wikipedia.org/wiki/Window_function#Hann_and_Hamming_windows
         *
         * ```js
         * tf.signal.hannWindow(10).print();
         * ```
         * @param The length of window
         *
         * @doc {heading: 'Operations', subheading: 'Signal', namespace: 'signal'}
         */
        function hannWindow_(windowLength) {
            return (0,
                _signal_ops_util.cosineWindow)(windowLength, 0.5, 0.5);
        }
        const hannWindow = (0,
            _operation.op)({
                hannWindow_
            });
        exports.hannWindow = hannWindow;

    }
        , {
        "../operation": 372,
        "../signal_ops_util": 426
    }],
    425: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.stft = void 0;
        var _mul = require("../mul");
        var _operation = require("../operation");
        var _signal_ops_util = require("../signal_ops_util");
        var _rfft = require("../spectral/rfft");
        var _frame = require("./frame");
        var _hann_window = require("./hann_window");
        /**
         * @license
         * Copyright 2019 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes the Short-time Fourier Transform of signals
         * See: https://en.wikipedia.org/wiki/Short-time_Fourier_transform
         *
         * ```js
         * const input = tf.tensor1d([1, 1, 1, 1, 1])
         * tf.signal.stft(input, 3, 1).print();
         * ```
         * @param signal 1-dimensional real value tensor.
         * @param frameLength The window length of samples.
         * @param frameStep The number of samples to step.
         * @param fftLength The size of the FFT to apply.
         * @param windowFn A callable that takes a window length and returns 1-d tensor.
         *
         * @doc {heading: 'Operations', subheading: 'Signal', namespace: 'signal'}
         */
        function stft_(signal, frameLength, frameStep, fftLength, windowFn = _hann_window.hannWindow) {
            if (fftLength == null) {
                fftLength = (0,
                    _signal_ops_util.enclosingPowerOfTwo)(frameLength);
            }
            const framedSignal = (0,
                _frame.frame)(signal, frameLength, frameStep);
            const windowedSignal = (0,
                _mul.mul)(framedSignal, windowFn(frameLength));
            return (0,
                _rfft.rfft)(windowedSignal, fftLength);
        }
        const stft = (0,
            _operation.op)({
                stft_
            });
        exports.stft = stft;

    }
        , {
        "../mul": 362,
        "../operation": 372,
        "../signal_ops_util": 426,
        "../spectral/rfft": 450,
        "./frame": 422,
        "./hann_window": 424
    }],
    426: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.cosineWindow = cosineWindow;
        exports.enclosingPowerOfTwo = enclosingPowerOfTwo;
        var _tensor1d = require("./tensor1d");
        /**
         * @license
         * Copyright 2019 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        function enclosingPowerOfTwo(value) {
            // Return 2**N for integer N such that 2**N >= value.
            return Math.floor(Math.pow(2, Math.ceil(Math.log(value) / Math.log(2.0))));
        }
        function cosineWindow(windowLength, a, b) {
            const even = 1 - windowLength % 2;
            const newValues = new Float32Array(windowLength);
            for (let i = 0; i < windowLength; ++i) {
                const cosArg = 2.0 * Math.PI * i / (windowLength + even - 1);
                newValues[i] = a - b * Math.cos(cosArg);
            }
            return (0,
                _tensor1d.tensor1d)(newValues, 'float32');
        }

    }
        , {
        "./tensor1d": 468
    }],
    427: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.sin = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes sin of the input Tensor element-wise: `sin(x)`
         *
         * ```js
         * const x = tf.tensor1d([0, Math.PI / 2, Math.PI * 3 / 4]);
         *
         * x.sin().print();  // or tf.sin(x)
         * ```
         * @param x The input tensor.
         *
         * @doc {heading: 'Operations', subheading: 'Basic math'}
         */
        function sin_(x) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'sin', 'float32');
            const inputs = {
                x: $x
            };
            return _engine.ENGINE.runKernel(_kernel_names.Sin, inputs);
        }
        const sin = (0,
            _operation.op)({
                sin_
            });
        exports.sin = sin;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    428: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.sinh = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes hyperbolic sin of the input `tf.Tensor` element-wise: `sinh(x)`
         *
         * ```js
         * const x = tf.tensor1d([0, 1, -1, .7]);
         *
         * x.sinh().print();  // or tf.sinh(x)
         * ```
         * @param x The input tensor.
         *
         * @doc {heading: 'Operations', subheading: 'Basic math'}
         */
        function sinh_(x) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'sinh');
            const inputs = {
                x: $x
            };
            return _engine.ENGINE.runKernel(_kernel_names.Sinh, inputs);
        }
        const sinh = (0,
            _operation.op)({
                sinh_
            });
        exports.sinh = sinh;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    429: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.slice = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Extracts a slice from a `tf.Tensor` starting at coordinates `begin`
         * and is of size `size`.
         *
         * Also available are stricter rank-specific methods with the same signature
         * as this method that assert that `x` is of the given rank:
         *   - `tf.slice1d`
         *   - `tf.slice2d`
         *   - `tf.slice3d`
         *   - `tf.slice4d`
         *
         * ```js
         * const x = tf.tensor1d([1, 2, 3, 4]);
         *
         * x.slice([1], [2]).print();
         * ```
         *
         * ```js
         * const x = tf.tensor2d([1, 2, 3, 4], [2, 2]);
         *
         * x.slice([1, 0], [1, 2]).print();
         * ```
         * @param x The input `tf.Tensor` to slice from.
         * @param begin The coordinates to start the slice from. The length can be
         *     less than the rank of x - the rest of the axes will have implicit 0 as
         *     start. Can also be a single number, in which case it specifies the
         *     first axis.
         * @param size The size of the slice. The length can be less than the rank of
         *     x - the rest of the axes will have implicit -1. A value of -1 requests
         *     the rest of the dimensions in the axis. Can also be a single number,
         *     in which case it specifies the size of the first axis.
         *
         * @doc {heading: 'Tensors', subheading: 'Slicing and Joining'}
         */
        function slice_(x, begin, size) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'slice', 'string_or_numeric');
            if ($x.rank === 0) {
                throw new Error('Slicing scalar is not possible');
            }
            const inputs = {
                x: $x
            };
            const attrs = {
                begin,
                size
            };
            return _engine.ENGINE.runKernel(_kernel_names.Slice, inputs, attrs);
        }
        const slice = (0,
            _operation.op)({
                slice_
            });
        exports.slice = slice;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    430: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.slice1d = void 0;
        var _tensor_util_env = require("../tensor_util_env");
        var util = _interopRequireWildcard(require("../util"));
        var _operation = require("./operation");
        var _slice = require("./slice");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Extracts a 1D slice from 1D array starting at coordinates `begin` and is
         * of length `size`. See `slice` for details.
         */
        function slice1d_(x, begin, size) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'slice1d');
            util.assert($x.rank === 1, () => `slice1d expects a rank-1 tensor, but got a rank-${$x.rank} tensor`);
            return (0,
                _slice.slice)($x, [begin], [size]);
        }
        const slice1d = (0,
            _operation.op)({
                slice1d_
            });
        exports.slice1d = slice1d;

    }
        , {
        "../tensor_util_env": 504,
        "../util": 509,
        "./operation": 372,
        "./slice": 429
    }],
    431: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.slice2d = void 0;
        var _tensor_util_env = require("../tensor_util_env");
        var util = _interopRequireWildcard(require("../util"));
        var _operation = require("./operation");
        var _slice = require("./slice");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Extracts a 2D slice from a 2D array starting at coordinates `begin` and
         * is of size `size`. See `slice` for details.
         */
        function slice2d_(x, begin, size) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'slice2d');
            util.assert($x.rank === 2, () => `slice2d expects a rank-2 tensor, but got a rank-${$x.rank} tensor`);
            return (0,
                _slice.slice)($x, begin, size);
        }
        const slice2d = (0,
            _operation.op)({
                slice2d_
            });
        exports.slice2d = slice2d;

    }
        , {
        "../tensor_util_env": 504,
        "../util": 509,
        "./operation": 372,
        "./slice": 429
    }],
    432: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.slice3d = void 0;
        var _tensor_util_env = require("../tensor_util_env");
        var util = _interopRequireWildcard(require("../util"));
        var _operation = require("./operation");
        var _slice = require("./slice");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Extracts a 3D slice from a 3D array starting at coordinates `begin` and
         * is of size `size`. See `slice` for details.
         */
        function slice3d_(x, begin, size) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'slice3d');
            util.assert($x.rank === 3, () => `slice3d expects a rank-3 tensor, but got a rank-${$x.rank} tensor`);
            return (0,
                _slice.slice)($x, begin, size);
        }
        const slice3d = (0,
            _operation.op)({
                slice3d_
            });
        exports.slice3d = slice3d;

    }
        , {
        "../tensor_util_env": 504,
        "../util": 509,
        "./operation": 372,
        "./slice": 429
    }],
    433: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.slice4d = void 0;
        var _tensor_util_env = require("../tensor_util_env");
        var util = _interopRequireWildcard(require("../util"));
        var _operation = require("./operation");
        var _slice = require("./slice");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Extracts a 4D slice from a 4D array starting at coordinates `begin` and
         * is of size `size`. See `slice` for details.
         */
        function slice4d_(x, begin, size) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'slice4d');
            util.assert($x.rank === 4, () => `slice4d expects a rank-4 tensor, but got a rank-${$x.rank} tensor`);
            return (0,
                _slice.slice)($x, begin, size);
        }
        const slice4d = (0,
            _operation.op)({
                slice4d_
            });
        exports.slice4d = slice4d;

    }
        , {
        "../tensor_util_env": 504,
        "../util": 509,
        "./operation": 372,
        "./slice": 429
    }],
    434: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.assertParamsValid = assertParamsValid;
        exports.computeFlatOffset = computeFlatOffset;
        exports.computeOutShape = computeOutShape;
        exports.getNormalizedAxes = getNormalizedAxes;
        exports.isSliceContinous = isSliceContinous;
        exports.maskToAxes = maskToAxes;
        exports.parseSliceParams = parseSliceParams;
        exports.sliceInfo = sliceInfo;
        exports.startForAxis = startForAxis;
        exports.startIndicesWithElidedDims = startIndicesWithElidedDims;
        exports.stopForAxis = stopForAxis;
        exports.stopIndicesWithElidedDims = stopIndicesWithElidedDims;
        exports.stridesForAxis = stridesForAxis;
        exports.stridesWithElidedDims = stridesWithElidedDims;
        var util = _interopRequireWildcard(require("../util"));
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2021 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const NEW_AXIS = -2;
        const SHRINK_AXIS = -1;
        function assertParamsValid(input, begin, size) {
            const inputRank = input.shape.length;
            util.assert(inputRank === begin.length, () => `Error in slice${inputRank}D: Length of begin ${begin} must ` + `match the rank of the array (${inputRank}).`);
            util.assert(inputRank === size.length, () => `Error in slice${inputRank}D: Length of size ${size} must ` + `match the rank of the array (${inputRank}).`);
            for (let i = 0; i < inputRank; ++i) {
                util.assert(begin[i] + size[i] <= input.shape[i], () => `Error in slice${inputRank}D: begin[${i}] + size[${i}] ` + `(${begin[i] + size[i]}) would overflow input.shape[${i}] (${input.shape[i]})`);
            }
        }
        /** Converts a binary mask to an array of axes. Used in stridedSlice(). */
        function maskToAxes(mask) {
            const axes = [];
            let axis = 0;
            while (mask > 0) {
                if (mask & 1) {
                    axes.push(axis);
                }
                mask /= 2;
                axis++;
            }
            return axes;
        }
        /** Computes the output shape given the strided slice params. */
        function computeOutShape(begin, end, strides) {
            const size = [];
            for (let axis = 0; axis < begin.length; axis++) {
                size[axis] = Math.ceil((end[axis] - begin[axis]) / strides[axis]);
            }
            return size;
        }
        // Creates full selection at the elided dimensions. If the dimension matches
        // the ellipsis mask, override the current stride value. Otherwise, insert.
        function stridesWithElidedDims(strides, ellipsisInsertionIndex, numElidedAxes, inputShape) {
            const newStrides = [...strides];
            for (let i = newStrides.length; i < inputShape.length; i++) {
                newStrides.push(1);
            }
            for (let i = 0; i < numElidedAxes; i++) {
                if (i === 0) {
                    newStrides[ellipsisInsertionIndex] = 1;
                } else {
                    newStrides.splice(ellipsisInsertionIndex, 0 /* num elements to delete */
                        , 1 /* element to add */
                    );
                    newStrides.pop();
                }
            }
            return newStrides;
        }
        function unnormalizeAxis(ellipsisInsertionIndex, numElidedAxes, normalizedAxis) {
            if (normalizedAxis <= ellipsisInsertionIndex) {
                return normalizedAxis;
            }
            return normalizedAxis - (numElidedAxes - 1);
        }
        function getElidedAxes(numElidedAxes, ellipsisInsertionIndex) {
            const elidedAxes = [];
            for (let i = 0; i < numElidedAxes; i++) {
                elidedAxes.push(ellipsisInsertionIndex + i);
            }
            return elidedAxes;
        }
        // Normalize the start, end and strides.
        function getNormalizedAxes(inputShape, ellipsisAxes, numInterpolatedAxes, begin, end, strides, beginMask, endMask, ellipsisMask) {
            const inputRank = inputShape.length;
            let normalizedBegin = new Array(inputRank)
                , normalizedEnd = new Array(inputRank)
                , normalizedStrides = new Array(inputRank);
            if (ellipsisAxes.length && numInterpolatedAxes > 0) {
                const fullIndex = ellipsisAxes[0];
                // The ellipsis applies to the masked index as well as any dimensions
                // that are interpolated.
                const numElidedAxes = numInterpolatedAxes + 1;
                normalizedBegin = startIndicesWithElidedDims(beginMask, fullIndex, numElidedAxes, begin, inputShape);
                normalizedEnd = stopIndicesWithElidedDims(endMask, fullIndex, numElidedAxes, end, inputShape);
                normalizedStrides = stridesWithElidedDims(strides, fullIndex, numElidedAxes, inputShape);
            } else {
                for (let axis = 0; axis < inputRank; axis++) {
                    normalizedBegin[axis] = startForAxis(beginMask, begin, strides, inputShape, axis, ellipsisMask);
                    normalizedEnd[axis] = stopForAxis(endMask, end, strides, inputShape, axis, ellipsisMask);
                    normalizedStrides[axis] = stridesForAxis(strides, axis, ellipsisMask);
                }
            }
            return {
                begin: normalizedBegin,
                end: normalizedEnd,
                strides: normalizedStrides
            };
        }
        // Creates full selection at the elided dimensions. If the dimension matches
        // the ellipsis mask, override the current start value. Otherwise, insert.
        function startIndicesWithElidedDims(beginMask, ellipsisInsertionIndex, numElidedAxes, originalBegin, inputShape) {
            const newIndices = [...inputShape];
            const elidedAxes = getElidedAxes(numElidedAxes, ellipsisInsertionIndex);
            for (let axis = 0; axis < newIndices.length; axis++) {
                if (elidedAxes.indexOf(axis) > -1) {
                    newIndices[axis] = 0;
                } else {
                    const originalAxis = unnormalizeAxis(ellipsisInsertionIndex, numElidedAxes, axis);
                    let originalValue = originalBegin[originalAxis];
                    if (beginMask & 1 << originalAxis) {
                        originalValue = 0;
                    }
                    newIndices[axis] = originalValue;
                }
            }
            return newIndices;
        }
        // Creates full selection at the elided dimensions. If the dimension matches
        // the ellipsis mask, override the current stop value. Otherwise, insert.
        function stopIndicesWithElidedDims(endMask, ellipsisInsertionIndex, numElidedAxes, originalEnd, inputShape) {
            const newIndices = [...inputShape];
            const elidedAxes = getElidedAxes(numElidedAxes, ellipsisInsertionIndex);
            for (let axis = 0; axis < newIndices.length; axis++) {
                if (elidedAxes.indexOf(axis) > -1) {
                    newIndices[axis] = Number.MAX_SAFE_INTEGER;
                } else {
                    const originalAxis = unnormalizeAxis(ellipsisInsertionIndex, numElidedAxes, axis);
                    let originalValue = originalEnd[originalAxis];
                    if (endMask & 1 << originalAxis) {
                        originalValue = Number.MAX_SAFE_INTEGER;
                    }
                    newIndices[axis] = originalValue;
                }
            }
            for (let i = 0; i < newIndices.length; i++) {
                // Handle negative indices
                const axisSize = inputShape[i];
                if (newIndices[i] < 0) {
                    newIndices[i] += axisSize;
                }
                newIndices[i] = util.clamp(0, newIndices[i], inputShape[i]);
            }
            return newIndices;
        }
        function stridesForAxis(strides, axis, ellipsisMask) {
            let stride = strides[axis];
            if (ellipsisMask & 1 << axis || stride == null) {
                stride = 1;
            }
            return stride;
        }
        function startForAxis(beginMask, startIndices, strides, inputShape, axis, ellipsisMask) {
            // Begin with the specified index
            let start = startIndices[axis];
            const stride = strides[axis] || 1;
            // Check the axis bit from right of masked axes, or the begin index is not set
            // for the axis.
            if (beginMask & 1 << axis || ellipsisMask & 1 << axis || start == null) {
                if (stride > 0) {
                    // Forward iteration - use the first element. These values will get
                    // clamped below (Note: We could have set them to 0 and axis_size-1, but
                    // use lowest() and max() to maintain symmetry with StopForAxis())
                    start = Number.MIN_SAFE_INTEGER;
                } else {
                    // Backward iteration - use the last element.
                    start = Number.MAX_SAFE_INTEGER;
                }
            }
            // Handle negative indices
            const axisSize = inputShape[axis];
            if (start < 0) {
                start += axisSize;
            }
            // Clamping
            start = util.clamp(0, start, axisSize - 1);
            return start;
        }
        function stopForAxis(endMask, stopIndices, strides, inputShape, axis, ellipsisMask) {
            // Begin with the specified index
            let stop = stopIndices[axis];
            const stride = strides[axis] || 1;
            // Check the axis bit from right of masked axes, or if the stop index is not
            // set for this axis.
            if (endMask & 1 << axis || ellipsisMask & 1 << axis || stop == null) {
                if (stride > 0) {
                    // Forward iteration - use the last element. These values will get
                    // clamped below
                    stop = Number.MAX_SAFE_INTEGER;
                } else {
                    // Backward iteration - use the first element.
                    stop = Number.MIN_SAFE_INTEGER;
                }
            }
            // Handle negative indices
            const axisSize = inputShape[axis];
            if (stop < 0) {
                stop += axisSize;
            }
            // Clamping
            // Because the end index points one past the last element, we need slightly
            // different clamping ranges depending on the direction.
            if (stride > 0) {
                // Forward iteration
                stop = util.clamp(0, stop, axisSize);
            } else {
                // Backward iteration
                stop = util.clamp(-1, stop, axisSize - 1);
            }
            return stop;
        }
        /**
         * Returns true if the slice occupies a continous set of elements in the
         * 'flat' space.
         */
        function isSliceContinous(shape, begin, size) {
            // Index of the first axis that has size > 1.
            let firstNonOneAxis = size.length;
            for (let i = 0; i < size.length; i++) {
                if (size[i] > 1) {
                    firstNonOneAxis = i;
                    break;
                }
            }
            for (let i = firstNonOneAxis + 1; i < size.length; i++) {
                if (begin[i] > 0 || size[i] !== shape[i]) {
                    return false;
                }
            }
            return true;
        }
        function computeFlatOffset(begin, strides) {
            let flatOffset = begin.length > 0 ? begin[begin.length - 1] : 1;
            for (let i = 0; i < begin.length - 1; i++) {
                flatOffset += begin[i] * strides[i];
            }
            return flatOffset;
        }
        function parseSliceParams(x, begin, size) {
            // The following logic allows for more ergonomic calls.
            let begin_;
            const xRank = x.shape.length;
            if (typeof begin === 'number') {
                begin_ = [begin, ...new Array(xRank - 1).fill(0)];
            } else if (begin.length < xRank) {
                begin_ = begin.concat(new Array(xRank - begin.length).fill(0));
            } else {
                begin_ = begin.slice();
            }
            begin_.forEach(d => {
                util.assert(d !== -1, () => 'slice() does not support negative begin indexing.');
            }
            );
            let size_;
            if (size == null) {
                size_ = new Array(xRank).fill(-1);
            } else if (typeof size === 'number') {
                size_ = [size, ...new Array(xRank - 1).fill(-1)];
            } else if (size.length < xRank) {
                size_ = size.concat(new Array(xRank - size.length).fill(-1));
            } else {
                size_ = size;
            }
            size_ = size_.map((d, i) => {
                if (d >= 0) {
                    return d;
                } else {
                    util.assert(d === -1, () => `Negative size values should be exactly -1 but got ` + `${d} for the slice() size at index ${i}.`);
                    return x.shape[i] - begin_[i];
                }
            }
            );
            return [begin_, size_];
        }
        // Convert the slicing specification from a sparse representation to a dense
        // representation. This means that all ellipses and newaxis are expanded out.
        function sliceInfo(xShape, begin, end, strides, beginMask, endMask, ellipsisMask, newAxisMask, shrinkAxisMask) {
            let stridesNonNull;
            if (strides == null) {
                stridesNonNull = new Array(begin.length);
                stridesNonNull.fill(1);
            } else {
                stridesNonNull = strides;
            }
            // Only one non-zero bit is allowed in ellipsisMask, which means ellipsisMask
            // is a power of 2. Use bit compares to ensure ellipsisMask is 0 or a power
            // of 2. When i is a power of 2, i & (i - 1) is always 0.
            // Also ref:
            // https://stackoverflow.com/questions/600293/how-to-check-if-a-number-is-a-power-of-2
            if (ellipsisMask != null && (ellipsisMask & ellipsisMask - 1) !== 0) {
                throw new Error('Multiple ellipses in slice is not allowed.');
            }
            // Step 1: Account for ellipsis and new axis.
            // Check for ellipsis and count how many non-newaxis there are after.
            let ellipsisSeen = false;
            const sparseSpec = {
                dims: stridesNonNull.length,
                numAddAxisAfterEllipsis: 0,
                begin: begin.slice(),
                end: end.slice(),
                strides: stridesNonNull.slice(),
                beginMask,
                endMask,
                ellipsisMask,
                newAxisMask,
                shrinkAxisMask
            };
            for (let i = 0; i < sparseSpec.dims; i++) {
                if (ellipsisSeen && (1 << i & newAxisMask) !== 0) {
                    sparseSpec.numAddAxisAfterEllipsis++;
                }
                if (1 << i & ellipsisMask) {
                    ellipsisSeen = true;
                }
            }
            // If no ellipsis insert one at the end.
            if (!ellipsisSeen) {
                sparseSpec.ellipsisMask |= 1 << sparseSpec.dims;
                sparseSpec.dims++;
                // this effects loop iteration below
            }
            // Step 2: Make a sparse spec into a full index spec.
            //
            // The sparse spec deos not correspond to the number of dimensions.
            // Make a dense spec that cooresponds to the number of dimensions.
            //
            // For example suppose foo[...,3:] on foo.shape = [2, 2, 3] then we need to
            // produce the missing beginMask for the first two dimensions i.e. from
            // beginMaskSpec = 0, endMaskSpec = 2, we achieve beginMask = 6 (110),
            // endMask = 7 (111).
            const denseSpec = {
                dims: xShape.length,
                beginMask: 0,
                endMask: 0,
                beginValid: false,
                endValid: false
            };
            buildDenseSpec(sparseSpec, denseSpec);
            // Step 3: Make implicit ranges (non-zero beginMasks and endMasks) explicit
            // and bounds check.
            let isIdentity = true;
            let sliceDim0 = true;
            let isSimpleSlice = true;
            const processingShape = [];
            const finalShape = [];
            for (let i = 0; i < xShape.length; ++i) {
                if (denseSpec.strides[i] === 0) {
                    throw Error(`strides[${i}] must be non-zero`);
                }
                const shrinkI = !!(denseSpec.shrinkAxisMask & 1 << i);
                const dimI = xShape[i];
                if (dimI === -1) {
                    processingShape.push(shrinkI ? 1 : -1);
                    continue;
                }
                const masks = [denseSpec.beginMask & 1 << i, denseSpec.endMask & 1 << i];
                const validRange = [denseSpec.strides[i] > 0 ? 0 : -1, denseSpec.strides[i] > 0 ? dimI : dimI - 1];
                if (shrinkI && denseSpec.strides[i] <= 0) {
                    throw Error('only stride 1 allowed on non-range indexing.');
                }
                isSimpleSlice = isSimpleSlice && denseSpec.strides[i] === 1;
                const beginAndEndMasked = !!(denseSpec.beginMask & 1 << i && denseSpec.endMask & 1 << i);
                if (denseSpec.beginValid && denseSpec.endValid) {
                    if (shrinkI) {
                        // If we are shrinking, the end index is now possibly incorrect. In
                        // particular foo[-1] produces sparseBegin = -1, sparseEnd = 0.
                        // and canonical puts these to n-1 and 0, which implies a degenerate
                        // interval. Fortunately, it is now safe to re-create end as begin + 1.
                        const xFwd = denseSpec.begin[i] < 0 ? dimI + denseSpec.begin[i] : denseSpec.begin[i];
                        denseSpec.begin[i] = xFwd;
                        denseSpec.end[i] = denseSpec.begin[i] + 1;
                        if (xFwd < 0 || xFwd >= dimI) {
                            throw Error(`slice index ${denseSpec.begin[i]} of dimension ${i} out of bounds.`);
                        }
                    } else {
                        denseSpec.begin[i] = canonical(denseSpec.begin[i], 0, denseSpec.strides[i], dimI, masks, validRange);
                        denseSpec.end[i] = canonical(denseSpec.end[i], 1, denseSpec.strides[i], dimI, masks, validRange);
                    }
                    // Update optimization values
                    const takeAllInDimension = denseSpec.strides[i] === 1 && denseSpec.begin[i] === 0 && denseSpec.end[i] === dimI;
                    isIdentity = isIdentity && takeAllInDimension;
                    sliceDim0 = sliceDim0 && (i === 0 && denseSpec.strides[i] === 1 || takeAllInDimension);
                } else {
                    isIdentity = isIdentity && denseSpec.strides[i] === 1 && beginAndEndMasked;
                    sliceDim0 = sliceDim0 && (i === 0 && denseSpec.strides[i] === 1 || beginAndEndMasked);
                }
                // Compute the processing shape (the intermediate Eigen will produce)
                let intervalLength;
                let knownInterval = false;
                if (denseSpec.beginValid && denseSpec.endValid) {
                    intervalLength = denseSpec.end[i] - denseSpec.begin[i];
                    knownInterval = true;
                } else if (shrinkI) {
                    // The dimension is still known as 1 for the processingShape, but will be
                    // discarded for the final shape.
                    intervalLength = 1;
                    knownInterval = true;
                } else if (beginAndEndMasked) {
                    // Even if we don't have values for begin or end, we do know that this
                    // dimension covers the whole interval. If we have shape information for
                    // this dimension, that tells us the interval length.
                    if (dimI >= 0) {
                        if (denseSpec.strides[i] < 0) {
                            intervalLength = -dimI;
                        } else {
                            intervalLength = dimI;
                        }
                        knownInterval = true;
                    }
                }
                if (knownInterval) {
                    let sizeI;
                    // Hold zero if the interval is degenerate, otherwise account for
                    // remainder
                    if (intervalLength === 0 || intervalLength < 0 !== denseSpec.strides[i] < 0) {
                        sizeI = 0;
                    } else {
                        sizeI = Math.trunc(intervalLength / denseSpec.strides[i]) + (intervalLength % denseSpec.strides[i] !== 0 ? 1 : 0);
                    }
                    processingShape.push(sizeI);
                } else {
                    processingShape.push(-1);
                }
            }
            // Step 4: Compute the final shape
            //
            // newAxis will increase dimension by 1 (with a one-size dimension)
            // slices like foo[3, ...] will reduce dimension by 1.
            // This cannot be done earlier, because it depends on Step 3.
            for (let denseDim = 0; denseDim < denseSpec.finalShapeGatherIndices.length; ++denseDim) {
                const gatherIndex = denseSpec.finalShapeGatherIndices[denseDim];
                if (gatherIndex >= 0) {
                    finalShape.push(processingShape[gatherIndex]);
                } else if (gatherIndex === NEW_AXIS) {
                    finalShape.push(1);
                }
            }
            const finalShapeSparse = finalShape.filter((dim, i) => denseSpec.finalShapeGatherIndices[i] !== NEW_AXIS);
            return {
                finalShapeSparse,
                finalShape,
                isIdentity,
                sliceDim0,
                isSimpleSlice,
                begin: denseSpec.begin,
                end: denseSpec.end,
                strides: denseSpec.strides
            };
        }
        function buildDenseSpec(sparse, dense) {
            dense.beginMask = 0;
            dense.endMask = 0;
            dense.shrinkAxisMask = 0;
            let fullIndex = 0;
            dense.beginValid = sparse.begin != null;
            dense.endValid = sparse.end != null;
            dense.begin = new Array(dense.dims);
            dense.end = new Array(dense.dims);
            dense.strides = new Array(dense.dims);
            dense.finalShapeGatherIndices = [];
            dense.finalShapeGatherIndicesSparse = [];
            dense.inputShapeGatherIndicesSparse = new Array(dense.dims);
            for (let i = 0; i < sparse.dims; i++) {
                if (1 << i & sparse.ellipsisMask) {
                    // Only the bit that has ellipsis will fall in this condition.
                    // Expand the ellipsis into the appropriate indices
                    // Note: this only works because we guaranteed one ellipsis.
                    const nextIndex = Math.min(dense.dims - (sparse.dims - i) + 1 + sparse.numAddAxisAfterEllipsis, dense.dims);
                    for (; fullIndex < nextIndex; fullIndex++) {
                        // newAxis aren't real axis so you have to skip.
                        dense.begin[fullIndex] = 0;
                        dense.end[fullIndex] = 0;
                        dense.strides[fullIndex] = 1;
                        dense.beginMask |= 1 << fullIndex;
                        dense.endMask |= 1 << fullIndex;
                        dense.finalShapeGatherIndices.push(fullIndex);
                        dense.finalShapeGatherIndicesSparse.push(-1);
                        dense.inputShapeGatherIndicesSparse[fullIndex] = i;
                    }
                } else if (1 << i & sparse.newAxisMask) {
                    // Only the bit that has newAxis will fall in this condition.
                    dense.finalShapeGatherIndices.push(NEW_AXIS);
                    dense.finalShapeGatherIndicesSparse.push(-1);
                } else {
                    if (fullIndex === dense.begin.length) {
                        throw Error(`Index out of range using input dim ${fullIndex}; input ` + `has only ${dense.dims} dims, ${dense.begin.length}.`);
                    }
                    // Gather slicing spec into appropriate index.
                    if (sparse.begin != null) {
                        dense.begin[fullIndex] = sparse.begin[i];
                    }
                    if (sparse.end != null) {
                        dense.end[fullIndex] = sparse.end[i];
                    }
                    dense.strides[fullIndex] = sparse.strides[i];
                    if (sparse.beginMask & 1 << i) {
                        dense.beginMask |= 1 << fullIndex;
                    }
                    if (sparse.endMask & 1 << i) {
                        dense.endMask |= 1 << fullIndex;
                    }
                    // If shrink, record where to get the dimensionality from (i.e. newAxis)
                    // creates a fake 1 size dimension. Also remember shrink axis (now in
                    // dense form) so we can ignore dense.end below.
                    if (sparse.shrinkAxisMask & 1 << i) {
                        dense.finalShapeGatherIndices.push(SHRINK_AXIS);
                        dense.finalShapeGatherIndicesSparse.push(-1);
                        dense.shrinkAxisMask |= 1 << fullIndex;
                    } else {
                        dense.finalShapeGatherIndices.push(fullIndex);
                        // Remember that where in the sparse shape the dense dim comes from.
                        dense.finalShapeGatherIndicesSparse.push(i);
                    }
                    dense.inputShapeGatherIndicesSparse[fullIndex] = i;
                    fullIndex++;
                }
            }
        }
        function canonical(x, c, strideI, dimI, masks, validRange) {
            if (masks[c]) {
                return strideI > 0 ? validRange[c] : validRange[c + 1 & 1];
            } else {
                const xFwd = x < 0 ? dimI + x : x;
                // make negative indices positive
                return xFwd < validRange[0] ? validRange[0] : xFwd > validRange[1] ? validRange[1] : xFwd;
            }
        }

    }
        , {
        "../util": 509
    }],
    435: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.softmax = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes the softmax normalized vector given the logits.
         *
         * ```js
         * const a = tf.tensor1d([1, 2, 3]);
         *
         * a.softmax().print();  // or tf.softmax(a)
         * ```
         *
         * ```js
         * const a = tf.tensor2d([2, 4, 6, 1, 2, 3], [2, 3]);
         *
         * a.softmax().print();  // or tf.softmax(a)
         * ```
         *
         * @param logits The logits array.
         * @param dim The dimension softmax would be performed on. Defaults to `-1`
         *     which indicates the last dimension.
         *
         * @doc {heading: 'Operations', subheading: 'Normalization'}
         */
        function softmax_(logits, dim = -1) {
            const $logits = (0,
                _tensor_util_env.convertToTensor)(logits, 'logits', 'softmax', 'float32');
            if (dim === -1) {
                dim = $logits.rank - 1;
            }
            if (dim !== $logits.rank - 1) {
                throw Error('Softmax along a non-last dimension is not yet supported. ' + `Logits was rank ${$logits.rank} and dim was ${dim}`);
            }
            const inputs = {
                logits: $logits
            };
            const attrs = {
                dim
            };
            return _engine.ENGINE.runKernel(_kernel_names.Softmax, inputs, attrs);
        }
        const softmax = (0,
            _operation.op)({
                softmax_
            });
        exports.softmax = softmax;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    436: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.softplus = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes softplus of the input `tf.Tensor` element-wise: `log(exp(x) + 1)`
         *
         * ```js
         * const x = tf.tensor1d([0, 1, -1, .7]);
         *
         * x.softplus().print();  // or tf.softplus(x)
         * ```
         * @param x The input tensor.
         *
         * @doc {heading: 'Operations', subheading: 'Basic math'}
         */
        function softplus_(x) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'softplus');
            const inputs = {
                x: $x
            };
            return _engine.ENGINE.runKernel(_kernel_names.Softplus, inputs);
        }
        const softplus = (0,
            _operation.op)({
                softplus_
            });
        exports.softplus = softplus;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    437: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.spaceToBatchND = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var util = _interopRequireWildcard(require("../util"));
        var _operation = require("./operation");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * This operation divides "spatial" dimensions `[1, ..., M]` of the input into
         * a grid of blocks of shape `blockShape`, and interleaves these blocks with
         * the "batch" dimension (0) such that in the output, the spatial
         * dimensions `[1, ..., M]` correspond to the position within the grid,
         * and the batch dimension combines both the position within a spatial block
         * and the original batch position. Prior to division into blocks,
         * the spatial dimensions of the input are optionally zero padded
         * according to `paddings`. See below for a precise description.
         *
         * ```js
         * const x = tf.tensor4d([1, 2, 3, 4], [1, 2, 2, 1]);
         * const blockShape = [2, 2];
         * const paddings = [[0, 0], [0, 0]];
         *
         * x.spaceToBatchND(blockShape, paddings).print();
         * ```
         *
         * @param x A `tf.Tensor`. N-D with `x.shape` = `[batch] + spatialShape +
         * remainingShape`, where spatialShape has `M` dimensions.
         * @param blockShape A 1-D array. Must have shape `[M]`, all values must
         * be >= 1.
         * @param paddings A 2-D array. Must have shape `[M, 2]`, all values must be >=
         *     0. `paddings[i] = [padStart, padEnd]` specifies the amount to zero-pad
         * from input dimension `i + 1`, which corresponds to spatial dimension `i`. It
         * is required that
         * `(inputShape[i + 1] + padStart + padEnd) % blockShape[i] === 0`
         *
         * This operation is equivalent to the following steps:
         *
         * 1. Zero-pad the start and end of dimensions `[1, ..., M]` of the input
         * according to `paddings` to produce `padded` of shape paddedShape.
         *
         * 2. Reshape `padded` to `reshapedPadded` of shape:
         * `[batch] + [paddedShape[1] / blockShape[0], blockShape[0], ...,
         * paddedShape[M] / blockShape[M-1], blockShape[M-1]] + remainingShape`
         *
         * 3. Permute dimensions of `reshapedPadded` to produce `permutedReshapedPadded`
         * of shape: `blockShape + [batch] + [paddedShape[1] / blockShape[0], ...,
         * paddedShape[M] / blockShape[M-1]] + remainingShape`
         *
         * 4. Reshape `permutedReshapedPadded` to flatten `blockShape` into the
         * batch dimension, producing an output tensor of shape:
         * `[batch * prod(blockShape)] + [paddedShape[1] / blockShape[0], ...,
         * paddedShape[M] / blockShape[M-1]] + remainingShape`
         *
         * @doc {heading: 'Tensors', subheading: 'Transformations'}
         */
        function spaceToBatchND_(x, blockShape, paddings) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'spaceToBatchND');
            util.assert($x.rank >= 1 + blockShape.length, () => `input rank ${$x.rank} should be > than [blockShape] ${blockShape.length}`);
            util.assert(paddings.length === blockShape.length, () => `paddings.shape[0] ${paddings.length} must be equal to [blockShape] ${blockShape.length}`);
            util.assert($x.shape.reduce((a, b, i) => {
                if (i > 0 && i <= blockShape.length) {
                    return a && (b + paddings[i - 1][0] + paddings[i - 1][1]) % blockShape[i - 1] === 0;
                }
                return a;
            }
                , true), () => `input spatial dimensions ${$x.shape.slice(1)} with paddings ${paddings.toString()} must be divisible by blockShapes ${blockShape.toString()}`);
            const inputs = {
                x: $x
            };
            const attrs = {
                blockShape,
                paddings
            };
            return _engine.ENGINE.runKernel(_kernel_names.SpaceToBatchND, inputs, attrs);
        }
        const spaceToBatchND = (0,
            _operation.op)({
                spaceToBatchND_
            });
        exports.spaceToBatchND = spaceToBatchND;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "../util": 509,
        "./operation": 372
    }],
    438: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.sparseFillEmptyRows = void 0;
        var _engine = require("../../engine");
        var _kernel_names = require("../../kernel_names");
        var _tensor_util_env = require("../../tensor_util_env");
        var _operation = require("../operation");
        /**
         * @license
         * Copyright 2021 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * The input SparseTensor is represented via the map of inputs {`indices`,
         * `values`, `denseShape`}. The output SparseTensor has the same `denseShape`
         * but with indices `outputIndices` and values `outputValues`. This op inserts a
         * single entry for every row that doesn't have any values. The index is created
         * as `[row, 0, ..., 0]` and the inserted value is `defaultValue`.
         *
         * For example, suppose `spInput` has shape [5, 6] and non-empty values:
         * [0, 1]: a
         * [0, 3]: b
         * [2, 0]: c
         * [3, 1]: d
         *
         * Rows 1 and 4 are empty, so the output will be of shape [5, 6] with values:
         * [0, 1]: a
         * [0, 3]: b
         * [1, 0]: `defaultValue`
         * [2, 0]: c
         * [3, 1]: d
         * [4, 0]: `defaultValue`
         *
         * The output SparseTensor will be in row-major order and will have the same
         * shape as the input.
         *
         * This op also returns an indicator vector shaped [dense_shape[0]] such that
         * emptyRowIndicator[i] = True iff row i was an empty row.
         *
         * And a reverse index map vector shaped [indices.shape[0]] that is used during
         * backpropagation, reverseIndexMap[i] = outi s.t. indices[i, j] ==
         * outputIndices[outi, j] for all j
         *
         * ```js
         * const result = tf.sparse.sparseFillEmptyRows(
         *   [[0, 0], [1, 0], [1, 3], [1, 4], [3, 2], [3, 3]],
         *   [0, 10, 13, 14, 32, 33], [5, 6], -1);
         * console.log(result);
         * result['outputIndices'].print(); // [[0, 0], [1, 0], [1, 3], [1, 4],
         *                                  //  [2, 0], [3, 2], [3, 3], [4, 0]]
         * result['outputValues'].print(); // [0, 10, 13, 14,-1, 32, 33, -1]
         * result['emptyRowIndicator'].print(); // [false, false, true, false, true]
         * result['reverseIndexMap'].print(); // [0, 1, 2, 3, 5, 6]
         * ```
         * @param indices: 2-D. The indices of the sparse tensor.
         * @param values: 1-D. The values of the sparse tensor.
         * @param denseShape: 1-D. The shape of the sparse tensor.
         * @param defaultValue: 0-D. Default value to insert into location [row, 0, ...,
         *     0] for rows missing from the input sparse tensor.
         * @return A map with the following properties:
         *     - outputIndices
         *     - outputValues: 1-D. The values of the filled sparse tensor.
         *     - emptyRowIndicator: 1-D. Whether the dense row was missing in the input
         * sparse tensor.
         *     - reverseIndexMap: 1-D. A map from the input indices to the output
         * indices.
         * @doc {heading: 'Operations', subheading: 'Sparse'}
         */
        function sparseFillEmptyRows_(indices, values, denseShape, defaultValue) {
            const $indices = (0,
                _tensor_util_env.convertToTensor)(indices, 'indices', 'sparseFillEmptyRows', 'int32');
            const $values = (0,
                _tensor_util_env.convertToTensor)(values, 'values', 'sparseFillEmptyRows');
            const $denseShape = (0,
                _tensor_util_env.convertToTensor)(denseShape, 'denseShape', 'sparseFillEmptyRows', 'int32');
            const $defaultValue = (0,
                _tensor_util_env.convertToTensor)(defaultValue, 'defaultValue', 'sparseFillEmptyRows', $values.dtype);
            if ($indices.rank !== 2) {
                throw new Error(`Indices should be Tensor2D but received shape
        ${$indices.shape}`);
            }
            if ($values.rank !== 1) {
                throw new Error(`Values should be Tensor1D but received shape ${$values.shape}`);
            }
            if ($denseShape.rank !== 1) {
                throw new Error(`Dense shape should be Tensor1D but received shape ${$denseShape.shape}`);
            }
            if ($defaultValue.rank !== 0) {
                throw new Error(`Default value should be a scalar but received shape ${$defaultValue.shape}`);
            }
            const inputs = {
                indices: $indices,
                values: $values,
                denseShape: $denseShape,
                defaultValue: $defaultValue
            };
            const result = _engine.ENGINE.runKernel(_kernel_names.SparseFillEmptyRows, inputs);
            return {
                outputIndices: result[0],
                outputValues: result[1],
                emptyRowIndicator: result[2],
                reverseIndexMap: result[3]
            };
        }
        const sparseFillEmptyRows = (0,
            _operation.op)({
                sparseFillEmptyRows_
            });
        exports.sparseFillEmptyRows = sparseFillEmptyRows;

    }
        , {
        "../../engine": 77,
        "../../kernel_names": 198,
        "../../tensor_util_env": 504,
        "../operation": 372
    }],
    439: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.getSparseFillEmptyRowsIndicesDenseShapeMismatch = getSparseFillEmptyRowsIndicesDenseShapeMismatch;
        exports.getSparseFillEmptyRowsNegativeIndexErrorMessage = getSparseFillEmptyRowsNegativeIndexErrorMessage;
        exports.getSparseFillEmptyRowsOutOfRangeIndexErrorMessage = getSparseFillEmptyRowsOutOfRangeIndexErrorMessage;
        /**
         * @license
         * Copyright 2021 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        /**
         * Generates sparse fill empty rows indices, dense shape mismatch error message.
         *
         * @param indicesLength The first dimension of indices.
         */
        function getSparseFillEmptyRowsIndicesDenseShapeMismatch(indicesLength) {
            return `Received SparseTensor with denseShape[0] = 0 but
  indices.shape[0] = ${indicesLength}`;
        }
        /**
         * Generates sparse fill empty rows negative index error message.
         *
         * @param index The index with a negative value.
         * @param value The negative value.
         */
        function getSparseFillEmptyRowsNegativeIndexErrorMessage(index, value) {
            return `indices(${index}, 0) is invalid: ${value} < 0`;
        }
        /**
         * Generates sparse fill empty rows out of range index error message.
         *
         * @param index The index with an out of range value.
         * @param value The out of range value.
         * @param limit The upper limit for indices.
         */
        function getSparseFillEmptyRowsOutOfRangeIndexErrorMessage(index, value, limit) {
            return `indices(${index}, 0) is invalid: ${value} >= ${limit}`;
        }

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

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.sparseReshape = void 0;
        var _engine = require("../../engine");
        var _kernel_names = require("../../kernel_names");
        var _tensor_util_env = require("../../tensor_util_env");
        var _operation = require("../operation");
        /**
         * @license
         * Copyright 2021 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * This operation has the same semantics as reshape on the represented dense
         * tensor. The `inputIndices` are recomputed based on the requested `newShape`.
         * If one component of `newShape` is the special value -1, the size of that
         * dimension is computed so that the total dense size remains constant. At most
         * one component of `newShape` can be -1. The number of dense elements implied
         * by `newShape` must be the same as the number of dense elements originally
         * implied by `inputShape`. Reshaping does not affect the order of values in the
         * SparseTensor. If the input tensor has rank R_in and N non-empty values, and
         * `newShape` has length R_out, then `inputIndices` has shape [N, R_in],
         * `inputShape` has length R_in, `outputIndices` has shape [N, R_out], and
         * `outputShape` has length R_out.
         *
         * ```js
         * const result = tf.sparse.sparseReshape(
         *   [[0, 0, 0], [0, 0, 1], [0, 1, 0], [1, 0, 0], [1, 2, 3]],
         *   [2, 3, 6], [9, -1]);
         * console.log(result);
         * result['outputIndices'].print(); //[[0, 0], [0, 1], [1, 2], [4, 2], [8, 1]]
         * result['outputShape'].print(); // [9, 4]
         * ```
         * @param inputIndices: 2-D. N x R_in matrix with the indices of non-empty
         * values in a SparseTensor.
         * @param inputShape: 1-D. R_in Tensor1D with the input SparseTensor's dense
         * shape.
         * @param newShape: 1-D. R_out Tensor1D with the requested new dense shape.
         * @return A map with the following properties:
         *     - outputIndices: 2-D. N x R_out matrix with the updated indices of
         *       non-empty values in the output SparseTensor.
         *     - outputShape: 1-D. R_out vector with the full dense shape of the output
         *       SparseTensor. This is the same as newShape but with any -1 dimensions
         *        filled in.
         * @doc {heading: 'Operations', subheading: 'Sparse'}
         */
        function sparseReshape_(inputIndices, inputShape, newShape) {
            const $inputIndices = (0,
                _tensor_util_env.convertToTensor)(inputIndices, 'inputIndices', 'sparseReshape', 'int32');
            const $inputShape = (0,
                _tensor_util_env.convertToTensor)(inputShape, 'inputShape', 'sparseReshape', 'int32');
            const $newShape = (0,
                _tensor_util_env.convertToTensor)(newShape, 'newShape', 'sparseReshape', 'int32');
            if ($inputIndices.rank !== 2) {
                throw new Error(`Input indices should be Tensor2D but received shape
        ${$inputIndices.shape}`);
            }
            if ($inputShape.rank !== 1) {
                throw new Error(`Input shape should be Tensor1D but received shape ${$inputShape.shape}`);
            }
            if ($newShape.rank !== 1) {
                throw new Error(`New shape should be Tensor1D but received shape ${$newShape.shape}`);
            }
            const inputs = {
                inputIndices: $inputIndices,
                inputShape: $inputShape,
                newShape: $newShape
            };
            const result = _engine.ENGINE.runKernel(_kernel_names.SparseReshape, inputs);
            return {
                outputIndices: result[0],
                outputShape: result[1]
            };
        }
        const sparseReshape = (0,
            _operation.op)({
                sparseReshape_
            });
        exports.sparseReshape = sparseReshape;

    }
        , {
        "../../engine": 77,
        "../../kernel_names": 198,
        "../../tensor_util_env": 504,
        "../operation": 372
    }],
    441: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.getSparseReshapeEmptyTensorZeroOutputDimErrorMessage = getSparseReshapeEmptyTensorZeroOutputDimErrorMessage;
        exports.getSparseReshapeInputOutputMismatchErrorMessage = getSparseReshapeInputOutputMismatchErrorMessage;
        exports.getSparseReshapeInputOutputMultipleErrorMessage = getSparseReshapeInputOutputMultipleErrorMessage;
        exports.getSparseReshapeMultipleNegativeOneOutputDimErrorMessage = getSparseReshapeMultipleNegativeOneOutputDimErrorMessage;
        exports.getSparseReshapeNegativeOutputDimErrorMessage = getSparseReshapeNegativeOutputDimErrorMessage;
        var _util = require("../../util");
        /**
         * @license
         * Copyright 2021 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Generates sparse reshape multiple negative 1 output dimension error message.
         *
         * @param dim1 The first dimension with a negative 1 value.
         * @param dim2 The second dimension with a negative 1 value.
         */
        function getSparseReshapeMultipleNegativeOneOutputDimErrorMessage(dim1, dim2) {
            return `only one output dimension may be -1, not both ${dim1} and ${dim2}`;
        }
        /**
         * Generates sparse reshape negative output dimension error message.
         *
         * @param dim The dimension with a negative value.
         * @param value The negative value.
         */
        function getSparseReshapeNegativeOutputDimErrorMessage(dim, value) {
            return `size ${dim} must be non-negative, not ${value}`;
        }
        /**
         * Generates sparse reshape empty tensor zero output dimension error message.
         *
         */
        function getSparseReshapeEmptyTensorZeroOutputDimErrorMessage() {
            return 'reshape cannot infer the missing input size for an empty tensor ' + 'unless all specified input sizes are non-zero';
        }
        /**
         * Generates sparse reshape input output multiple mismatch error message.
         *
         * @param inputShape the input shape.
         * @param outputShape the requested output shape.
         */
        function getSparseReshapeInputOutputMultipleErrorMessage(inputShape, outputShape) {
            const inputSize = (0,
                _util.sizeFromShape)(inputShape);
            const outputSize = (0,
                _util.sizeFromShape)(outputShape);
            return `Input to reshape is a SparseTensor with ${inputSize}
  dense values, but the requested shape requires a multiple of ${outputSize}. inputShape=${inputShape} outputShape= ${outputShape}`;
        }
        /**
         * Generates sparse reshape input output inequality error message.
         *
         * @param inputShape the input shape.
         * @param outputShape the requested output shape.
         */
        function getSparseReshapeInputOutputMismatchErrorMessage(inputShape, outputShape) {
            const inputSize = (0,
                _util.sizeFromShape)(inputShape);
            const outputSize = (0,
                _util.sizeFromShape)(outputShape);
            return `Input to reshape is a tensor with ${inputSize} dense values, but the requested shape has ${outputSize}. inputShape=${inputShape} outputShape=${outputShape}`;
        }

    }
        , {
        "../../util": 509
    }],
    442: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.sparseSegmentMean = void 0;
        var _engine = require("../../engine");
        var _kernel_names = require("../../kernel_names");
        var _tensor_util_env = require("../../tensor_util_env");
        var _operation = require("../operation");
        /**
         * @license
         * Copyright 2021 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes the mean along sparse segments of a tensor.
         *
         * ```js
         * const c = tf.tensor2d([[1,2,3,4], [-1,-2,-3,-4], [6,7,8,9]]);
         * // Select two rows, one segment.
         * const result1 = tf.sparse.sparseSegmentMean(c,
         *                                           tf.tensor1d([0, 1], 'int32'),
         *                                           tf.tensor1d([0, 0], 'int32'));
         * result1.print(); // [[0, 0, 0, 0]]
         *
         * // Select two rows, two segments.
         * const result2 = tf.sparse.sparseSegmentMean(c,
         *                                             tf.tensor1d([0, 1], 'int32'),
         *                                             tf.tensor1d([0, 1], 'int32'));
         * result2.print(); // [[1, 2, 3, 4], [-1, -2, -3, -4]]
         *
         * // Select all rows, two segments.
         * const result3 = tf.sparse.sparseSegmentMean(c,
         *                                             tf.tensor1d([0, 1, 2], 'int32'),
         *                                             tf.tensor1d([0, 1, 1], 'int32'));
         * result3.print(); // [[1.0, 2.0, 3.0, 4.0], [2.5, 2.5, 2.5, 2.5]]
         * ```
         * @param data: A Tensor of at least one dimension with data that will be
         *     assembled in the output.
         * @param indices: A 1-D Tensor with indices into data. Has same rank as
         *     segmentIds.
         * @param segmentIds: A 1-D Tensor with indices into the output Tensor. Values
         *     should be sorted and can be repeated.
         * @return Has same shape as data, except for dimension 0 which has equal to
         *         the number of segments.
         *
         * @doc {heading: 'Operations', subheading: 'Sparse'}
         */
        function sparseSegmentMean_(data, indices, segmentIds) {
            const $data = (0,
                _tensor_util_env.convertToTensor)(data, 'data', 'sparseSegmentMean');
            const $indices = (0,
                _tensor_util_env.convertToTensor)(indices, 'indices', 'sparseSegmentMean', 'int32');
            const $segmentIds = (0,
                _tensor_util_env.convertToTensor)(segmentIds, 'segmentIds', 'sparseSegmentMean', 'int32');
            if ($data.rank < 1) {
                throw new Error(`Data should be at least 1 dimensional but received scalar`);
            }
            if ($indices.rank !== 1) {
                throw new Error(`Indices should be Tensor1D but received shape
          ${$indices.shape}`);
            }
            if ($segmentIds.rank !== 1) {
                throw new Error(`Segment ids should be Tensor1D but received shape
          ${$segmentIds.shape}`);
            }
            const inputs = {
                data: $data,
                indices: $indices,
                segmentIds: $segmentIds
            };
            return _engine.ENGINE.runKernel(_kernel_names.SparseSegmentMean, inputs);
        }
        const sparseSegmentMean = (0,
            _operation.op)({
                sparseSegmentMean_
            });
        exports.sparseSegmentMean = sparseSegmentMean;

    }
        , {
        "../../engine": 77,
        "../../kernel_names": 198,
        "../../tensor_util_env": 504,
        "../operation": 372
    }],
    443: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.getSparseSegmentReductionIndicesOutOfRangeErrorMessage = getSparseSegmentReductionIndicesOutOfRangeErrorMessage;
        exports.getSparseSegmentReductionNegativeSegmentIdsErrorMessage = getSparseSegmentReductionNegativeSegmentIdsErrorMessage;
        exports.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage = getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage;
        exports.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage = getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage;
        /**
         * @license
         * Copyright 2021 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        /**
         * Generates sparse segment reduction negative segment ids error message.
         *
         */
        function getSparseSegmentReductionNegativeSegmentIdsErrorMessage() {
            return `segment ids must be >= 0`;
        }
        /**
         * Generates sparse segment reduction non increasing segment ids error message.
         *
         */
        function getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage() {
            return `segment ids are not increasing`;
        }
        /**
         * Generates sparse segment reduction segment id out of range error message.
         *
         * @param segmentId The segment id index that is out of range.
         * @param outputRows Upper bound of valid segment id values.
         */
        function getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(segmentId, outputRows) {
            return `Segment id ${segmentId} out of range [0, ${outputRows}), possibly because segmentIds input is not sorted.`;
        }
        /**
         * Generates sparse segment reduction input indice out of range error message.
         *
         * @param index The index that holds the out of range value.
         * @param indexValue The value that is out of range.
         * @param inputRows Upper bound of valid index values.
         */
        function getSparseSegmentReductionIndicesOutOfRangeErrorMessage(index, indexValue, inputRows) {
            return `Bad: indices[${index}] == ${indexValue} out of range [0, ${inputRows})`;
        }

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

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.sparseSegmentSum = void 0;
        var _engine = require("../../engine");
        var _kernel_names = require("../../kernel_names");
        var _tensor_util_env = require("../../tensor_util_env");
        var _operation = require("../operation");
        /**
         * @license
         * Copyright 2021 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes the sum along sparse segments of a tensor.
         *
         * ```js
         * const c = tf.tensor2d([[1,2,3,4], [-1,-2,-3,-4], [5,6,7,8]]);
         * // Select two rows, one segment.
         * const result1 = tf.sparse.sparseSegmentSum(c,
         *                                           tf.tensor1d([0, 1], 'int32'),
         *                                           tf.tensor1d([0, 0], 'int32'));
         * result1.print(); // [[0, 0, 0, 0]]
         *
         * // Select two rows, two segments.
         * const result2 = tf.sparse.sparseSegmentSum(c,
         *                                           tf.tensor1d([0, 1], 'int32'),
         *                                           tf.tensor1d([0, 1], 'int32'));
         * result2.print(); // [[1, 2, 3, 4], [-1, -2, -3, -4]]
         *
         * // Select all rows, two segments.
         * const result3 = tf.sparse.sparseSegmentSum(c,
         *                                           tf.tensor1d([0, 1, 2], 'int32'),
         *                                           tf.tensor1d([0, 0, 1], 'int32'));
         * result3.print(); // [[0, 0, 0, 0], [5, 6, 7, 8]]
         * ```
         * @param data: A Tensor of at least one dimension with data that will be
         *     assembled in the output.
         * @param indices: A 1-D Tensor with indices into data. Has same rank as
         *     segmentIds.
         * @param segmentIds: A 1-D Tensor with indices into the output Tensor. Values
         *     should be sorted and can be repeated.
         * @return Has same shape as data, except for dimension 0 which has equal to
         *         the number of segments.
         *
         * @doc {heading: 'Operations', subheading: 'Sparse'}
         */
        function sparseSegmentSum_(data, indices, segmentIds) {
            const $data = (0,
                _tensor_util_env.convertToTensor)(data, 'data', 'sparseSegmentSum');
            const $indices = (0,
                _tensor_util_env.convertToTensor)(indices, 'indices', 'sparseSegmentSum', 'int32');
            const $segmentIds = (0,
                _tensor_util_env.convertToTensor)(segmentIds, 'segmentIds', 'sparseSegmentSum', 'int32');
            if ($data.rank < 1) {
                throw new Error(`Data should be at least 1 dimensional but received scalar`);
            }
            if ($indices.rank !== 1) {
                throw new Error(`Indices should be Tensor1D but received shape
         ${$indices.shape}`);
            }
            if ($segmentIds.rank !== 1) {
                throw new Error(`Segment ids should be Tensor1D but received shape
         ${$segmentIds.shape}`);
            }
            const inputs = {
                data: $data,
                indices: $indices,
                segmentIds: $segmentIds
            };
            return _engine.ENGINE.runKernel(_kernel_names.SparseSegmentSum, inputs);
        }
        const sparseSegmentSum = (0,
            _operation.op)({
                sparseSegmentSum_
            });
        exports.sparseSegmentSum = sparseSegmentSum;

    }
        , {
        "../../engine": 77,
        "../../kernel_names": 198,
        "../../tensor_util_env": 504,
        "../operation": 372
    }],
    445: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.sparseToDense = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var sparse_to_dense = _interopRequireWildcard(require("../ops/sparse_to_dense_util"));
        var _tensor_util_env = require("../tensor_util_env");
        var _util_base = require("../util_base");
        var _operation = require("./operation");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Converts a sparse representation into a dense tensor.
         *
         * Builds an array dense with shape outputShape such that:
         *
         * // If sparseIndices is scalar
         * dense[i] = (i == sparseIndices ? sparseValues : defaultValue)
         *
         * // If sparseIndices is a vector, then for each i
         * dense[sparseIndices[i]] = sparseValues[i]
         *
         * // If sparseIndices is an n by d matrix, then for each i in [0, n)
         * dense[sparseIndices[i][0], ..., sparseIndices[i][d-1]] = sparseValues[i]
         * All other values in dense are set to defaultValue. If sparseValues is a
         * scalar, all sparse indices are set to this single value.
         *
         * If indices are repeated the final value is summed over all values for those
         * indices.
         *
         * ```js
         * const indices = tf.tensor1d([4, 5, 6, 1, 2, 3], 'int32');
         * const values = tf.tensor1d([10, 11, 12, 13, 14, 15], 'float32');
         * const shape = [8];
         * tf.sparseToDense(indices, values, shape).print();
         * ```
         *
         * @param sparseIndices A 0-D, 1-D, or 2-D Tensor of type int32.
         * sparseIndices[i] contains the complete index where sparseValues[i] will be
         * placed.
         * @param sparseValues A 0-D or 1-D Tensor. Values
         * corresponding to each row of sparseIndices, or a scalar value to be used for
         * all sparse indices.
         * @param outputShape Shape of the dense output tensor. The type is inferred.
         * @param defaultValue Scalar. Value to set for indices not specified in
         * sparseIndices. Defaults to zero.
         *
         * @doc {heading: 'Operations', subheading: 'Normalization'}
         */
        function sparseToDense_(sparseIndices, sparseValues, outputShape, defaultValue = 0) {
            (0,
                _util_base.assertNonNegativeIntegerDimensions)(outputShape);
            const $sparseIndices = (0,
                _tensor_util_env.convertToTensor)(sparseIndices, 'sparseIndices', 'sparseToDense', 'int32');
            const $sparseValues = (0,
                _tensor_util_env.convertToTensor)(sparseValues, 'sparseValues', 'sparseToDense', 'string_or_numeric');
            const $defaultValue = (0,
                _tensor_util_env.convertToTensor)(defaultValue, 'defaultValue', 'sparseToDense', $sparseValues.dtype);
            sparse_to_dense.validateInput($sparseIndices, $sparseValues, outputShape, $defaultValue);
            const inputs = {
                sparseIndices: $sparseIndices,
                sparseValues: $sparseValues,
                defaultValue: $defaultValue
            };
            const attrs = {
                outputShape
            };
            return _engine.ENGINE.runKernel(_kernel_names.SparseToDense, inputs, attrs);
        }
        const sparseToDense = (0,
            _operation.op)({
                sparseToDense_
            });
        exports.sparseToDense = sparseToDense;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../ops/sparse_to_dense_util": 446,
        "../tensor_util_env": 504,
        "../util_base": 510,
        "./operation": 372
    }],
    446: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.validateInput = validateInput;
        /**
         * Validate sparseToDense inputs.
         *
         * @param sparseIndices A 0-D, 1-D, or 2-D Tensor of type int32.
         * sparseIndices[i] contains the complete index where sparseValues[i] will be
         * placed.
         * @param sparseValues A 0-D or 1-D Tensor. Values
         * corresponding to each row of sparseIndices, or a scalar value to be used for
         * all sparse indices.
         * @param outputShape number[]. Shape of the dense output tensor.
         * @param validateIndices boolean. indice validation is not supported, error
         * will be thrown if it is set.
         */
        function validateInput(sparseIndices, sparseValues, outputShape, defaultValues) {
            if (sparseIndices.dtype !== 'int32') {
                throw new Error('tf.sparseToDense() expects the indices to be int32 type,' + ` but the dtype was ${sparseIndices.dtype}.`);
            }
            if (sparseIndices.rank > 2) {
                throw new Error('sparseIndices should be a scalar, vector, or matrix,' + ` but got shape ${sparseIndices.shape}.`);
            }
            const numElems = sparseIndices.rank > 0 ? sparseIndices.shape[0] : 1;
            const numDims = sparseIndices.rank > 1 ? sparseIndices.shape[1] : 1;
            if (outputShape.length !== numDims) {
                throw new Error('outputShape has incorrect number of elements:,' + ` ${outputShape.length}, should be: ${numDims}.`);
            }
            const numValues = sparseValues.size;
            if (!(sparseValues.rank === 0 || sparseValues.rank === 1 && numValues === numElems)) {
                throw new Error('sparseValues has incorrect shape ' + `${sparseValues.shape}, should be [] or [${numElems}]`);
            }
            if (sparseValues.dtype !== defaultValues.dtype) {
                throw new Error('sparseValues.dtype must match defaultValues.dtype');
            }
        }

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

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.fft = void 0;
        var _engine = require("../../engine");
        var _kernel_names = require("../../kernel_names");
        var _util = require("../../util");
        var _operation = require("../operation");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Fast Fourier transform.
         *
         * Computes the 1-dimensional discrete Fourier transform over the inner-most
         * dimension of input.
         *
         * ```js
         * const real = tf.tensor1d([1, 2, 3]);
         * const imag = tf.tensor1d([1, 2, 3]);
         * const x = tf.complex(real, imag);
         *
         * x.fft().print();  // tf.spectral.fft(x).print();
         * ```
         * @param input The complex input to compute an fft over.
         *
         * @doc {heading: 'Operations', subheading: 'Spectral', namespace: 'spectral'}
         */
        function fft_(input) {
            (0,
                _util.assert)(input.dtype === 'complex64', () => `The dtype for tf.spectral.fft() must be complex64 ` + `but got ${input.dtype}.`);
            const inputs = {
                input
            };
            return _engine.ENGINE.runKernel(_kernel_names.FFT, inputs);
        }
        const fft = (0,
            _operation.op)({
                fft_
            });
        exports.fft = fft;

    }
        , {
        "../../engine": 77,
        "../../kernel_names": 198,
        "../../util": 509,
        "../operation": 372
    }],
    448: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.ifft = void 0;
        var _engine = require("../../engine");
        var _kernel_names = require("../../kernel_names");
        var _util = require("../../util");
        var _operation = require("../operation");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Inverse fast Fourier transform.
         *
         * Computes the inverse 1-dimensional discrete Fourier transform over the
         * inner-most dimension of input.
         *
         * ```js
         * const real = tf.tensor1d([1, 2, 3]);
         * const imag = tf.tensor1d([1, 2, 3]);
         * const x = tf.complex(real, imag);
         *
         * x.ifft().print();  // tf.spectral.ifft(x).print();
         * ```
         * @param input The complex input to compute an ifft over.
         *
         * @doc {heading: 'Operations', subheading: 'Spectral', namespace: 'spectral'}
         */
        function ifft_(input) {
            (0,
                _util.assert)(input.dtype === 'complex64', () => `The dtype for tf.spectral.ifft() must be complex64 ` + `but got ${input.dtype}.`);
            const inputs = {
                input
            };
            return _engine.ENGINE.runKernel(_kernel_names.IFFT, inputs);
        }
        const ifft = (0,
            _operation.op)({
                ifft_
            });
        exports.ifft = ifft;

    }
        , {
        "../../engine": 77,
        "../../kernel_names": 198,
        "../../util": 509,
        "../operation": 372
    }],
    449: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.irfft = void 0;
        var _complex = require("../complex");
        var _concat = require("../concat");
        var _imag = require("../imag");
        var _mul = require("../mul");
        var _operation = require("../operation");
        var _real = require("../real");
        var _reshape = require("../reshape");
        var _reverse = require("../reverse");
        var _scalar = require("../scalar");
        var _slice = require("../slice");
        var _ifft = require("./ifft");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Inversed real value input fast Fourier transform.
         *
         * Computes the 1-dimensional inversed discrete Fourier transform over the
         * inner-most dimension of the real input.
         *
         * ```js
         * const real = tf.tensor1d([1, 2, 3]);
         * const imag = tf.tensor1d([0, 0, 0]);
         * const x = tf.complex(real, imag);
         *
         * x.irfft().print();
         * ```
         * @param input The real value input to compute an irfft over.
         *
         * @doc {heading: 'Operations', subheading: 'Spectral', namespace: 'spectral'}
         */
        function irfft_(input) {
            const innerDimensionSize = input.shape[input.shape.length - 1];
            const batch = input.size / innerDimensionSize;
            let ret;
            if (innerDimensionSize <= 2) {
                const complexInput = (0,
                    _reshape.reshape)(input, [batch, innerDimensionSize]);
                ret = (0,
                    _ifft.ifft)(complexInput);
            } else {
                // The length of unique components of the DFT of a real-valued signal
                // is 2 * (input_len - 1)
                const outputShape = [batch, 2 * (innerDimensionSize - 1)];
                const realInput = (0,
                    _reshape.reshape)((0,
                        _real.real)(input), [batch, innerDimensionSize]);
                const imagInput = (0,
                    _reshape.reshape)((0,
                        _imag.imag)(input), [batch, innerDimensionSize]);
                const realConjugate = (0,
                    _reverse.reverse)((0,
                        _slice.slice)(realInput, [0, 1], [batch, innerDimensionSize - 2]), 1);
                const imagConjugate = (0,
                    _mul.mul)((0,
                        _reverse.reverse)((0,
                            _slice.slice)(imagInput, [0, 1], [batch, innerDimensionSize - 2]), 1), (0,
                                _scalar.scalar)(-1));
                const r = (0,
                    _concat.concat)([realInput, realConjugate], 1);
                const i = (0,
                    _concat.concat)([imagInput, imagConjugate], 1);
                const complexInput = (0,
                    _reshape.reshape)((0,
                        _complex.complex)(r, i), [outputShape[0], outputShape[1]]);
                ret = (0,
                    _ifft.ifft)(complexInput);
            }
            ret = (0,
                _real.real)(ret);
            // reshape the result if the input is 3D tensor.
            if (input.rank === 3 && input.shape[0] !== 0) {
                const temp = ret;
                const batch = input.shape[0];
                ret = (0,
                    _reshape.reshape)(ret, [batch, ret.shape[0] / batch, ret.shape[1]]);
                temp.dispose();
            }
            return ret;
        }
        const irfft = (0,
            _operation.op)({
                irfft_
            });
        exports.irfft = irfft;

    }
        , {
        "../complex": 240,
        "../concat": 241,
        "../imag": 298,
        "../mul": 362,
        "../operation": 372,
        "../real": 397,
        "../reshape": 402,
        "../reverse": 403,
        "../scalar": 411,
        "../slice": 429,
        "./ifft": 448
    }],
    450: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.rfft = void 0;
        var _util = require("../../util");
        var _complex = require("../complex");
        var _concat = require("../concat");
        var _imag = require("../imag");
        var _operation = require("../operation");
        var _real = require("../real");
        var _reshape = require("../reshape");
        var _slice = require("../slice");
        var _split = require("../split");
        var _zeros = require("../zeros");
        var _zeros_like = require("../zeros_like");
        var _fft = require("./fft");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Real value input fast Fourier transform.
         *
         * Computes the 1-dimensional discrete Fourier transform over the
         * inner-most dimension of the real input.
         *
         * ```js
         * const real = tf.tensor1d([1, 2, 3]);
         *
         * real.rfft().print();
         * ```
         * @param input The real value input to compute an rfft over.
         *
         * @doc {heading: 'Operations', subheading: 'Spectral', namespace: 'spectral'}
         */
        function rfft_(input, fftLength) {
            (0,
                _util.assert)(input.dtype === 'float32', () => `The dtype for rfft() must be real value but got ${input.dtype}`);
            let innerDimensionSize = input.shape[input.shape.length - 1];
            const batch = input.size / innerDimensionSize;
            let adjustedInput;
            if (fftLength != null && fftLength < innerDimensionSize) {
                // Need to crop
                const begin = input.shape.map(v => 0);
                const size = input.shape.map(v => v);
                size[input.shape.length - 1] = fftLength;
                adjustedInput = (0,
                    _slice.slice)(input, begin, size);
                innerDimensionSize = fftLength;
            } else if (fftLength != null && fftLength > innerDimensionSize) {
                // Need to pad with zeros
                const zerosShape = input.shape.map(v => v);
                zerosShape[input.shape.length - 1] = fftLength - innerDimensionSize;
                adjustedInput = (0,
                    _concat.concat)([input, (0,
                        _zeros.zeros)(zerosShape)], input.shape.length - 1);
                innerDimensionSize = fftLength;
            } else {
                adjustedInput = input;
            }
            // Complement the input with zero imaginary numbers.
            const zerosInput = (0,
                _zeros_like.zerosLike)(adjustedInput);
            const complexInput = (0,
                _reshape.reshape)((0,
                    _complex.complex)(adjustedInput, zerosInput), [batch, innerDimensionSize]);
            const ret = (0,
                _fft.fft)(complexInput);
            // Exclude complex conjugations. These conjugations are put symmetrically.
            const half = Math.floor(innerDimensionSize / 2) + 1;
            const realValues = (0,
                _real.real)(ret);
            const imagValues = (0,
                _imag.imag)(ret);
            const realComplexConjugate = (0,
                _split.split)(realValues, [half, innerDimensionSize - half], realValues.shape.length - 1);
            const imagComplexConjugate = (0,
                _split.split)(imagValues, [half, innerDimensionSize - half], imagValues.shape.length - 1);
            const outputShape = adjustedInput.shape.slice();
            outputShape[adjustedInput.shape.length - 1] = half;
            return (0,
                _reshape.reshape)((0,
                    _complex.complex)(realComplexConjugate[0], imagComplexConjugate[0]), outputShape);
        }
        const rfft = (0,
            _operation.op)({
                rfft_
            });
        exports.rfft = rfft;

    }
        , {
        "../../util": 509,
        "../complex": 240,
        "../concat": 241,
        "../imag": 298,
        "../operation": 372,
        "../real": 397,
        "../reshape": 402,
        "../slice": 429,
        "../split": 451,
        "../zeros": 486,
        "../zeros_like": 487,
        "./fft": 447
    }],
    451: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.split = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Splits a `tf.Tensor` into sub tensors.
         *
         * If `numOrSizeSplits` is a number, splits `x` along dimension `axis`
         * into `numOrSizeSplits` smaller tensors.
         * Requires that `numOrSizeSplits` evenly divides `x.shape[axis]`.
         *
         * If `numOrSizeSplits` is a number array, splits `x` into
         * `numOrSizeSplits.length` pieces. The shape of the `i`-th piece has the
         * same size as `x` except along dimension `axis` where the size is
         * `numOrSizeSplits[i]`.
         *
         * ```js
         * const x = tf.tensor2d([1, 2, 3, 4, 5, 6, 7, 8], [2, 4]);
         * const [a, b] = tf.split(x, 2, 1);
         * a.print();
         * b.print();
         *
         * const [c, d, e] = tf.split(x, [1, 2, 1], 1);
         * c.print();
         * d.print();
         * e.print();
         * ```
         *
         * @param x The input tensor to split.
         * @param numOrSizeSplits Either an integer indicating the number of
         * splits along the axis or an array of integers containing the sizes of
         * each output tensor along the axis. If a number then it must evenly divide
         * `x.shape[axis]`; otherwise the sum of sizes must match `x.shape[axis]`.
         * Can contain one -1 indicating that dimension is to be inferred.
         * @param axis The dimension along which to split. Defaults to 0 (the first
         * dim).
         *
         * @doc {heading: 'Tensors', subheading: 'Slicing and Joining'}
         */
        function split_(x, numOrSizeSplits, axis = 0) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'split');
            const inputs = {
                x: $x
            };
            const attr = {
                numOrSizeSplits,
                axis
            };
            return _engine.ENGINE.runKernel(_kernel_names.SplitV, inputs, attr);
        }
        const split = (0,
            _operation.op)({
                split_
            });
        exports.split = split;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    452: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.prepareSplitSize = prepareSplitSize;
        var _util = require("../util");
        /**
         * Prepare the split size array. When the input is a number, the axis is evenly
         * divided among the split size. When the input contains the negative value, the
         * rest of the axis is allocated toward that.
         */
        function prepareSplitSize(x, numOrSizeSplits, axis = 0) {
            let splitSizes = [];
            if (typeof numOrSizeSplits === 'number') {
                (0,
                    _util.assert)(x.shape[axis] % numOrSizeSplits === 0, () => 'Number of splits must evenly divide the axis.');
                splitSizes = new Array(numOrSizeSplits).fill(x.shape[axis] / numOrSizeSplits);
            } else {
                const numOfNegs = numOrSizeSplits.reduce((count, value) => {
                    if (value === -1) {
                        count += 1;
                    }
                    return count;
                }
                    , 0);
                (0,
                    _util.assert)(numOfNegs <= 1, () => 'There should be only one negative value in split array.');
                const negIndex = numOrSizeSplits.indexOf(-1);
                // Allow the number of split array to be -1, which indicates the rest
                // of dimension is allocated to that split.
                if (negIndex !== -1) {
                    const total = numOrSizeSplits.reduce((a, b) => b > 0 ? a + b : a);
                    numOrSizeSplits[negIndex] = x.shape[axis] - total;
                }
                (0,
                    _util.assert)(x.shape[axis] === numOrSizeSplits.reduce((a, b) => a + b), () => 'The sum of sizes must match the size of the axis dimension.');
                splitSizes = numOrSizeSplits;
            }
            return splitSizes;
        }

    }
        , {
        "../util": 509
    }],
    453: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.sqrt = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes square root of the input `tf.Tensor` element-wise: `y = sqrt(x)`
         *
         * ```js
         * const x = tf.tensor1d([1, 2, 4, -1]);
         *
         * x.sqrt().print();  // or tf.sqrt(x)
         * ```
         * @param x The input tensor.
         *
         * @doc {heading: 'Operations', subheading: 'Basic math'}
         */
        function sqrt_(x) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'sqrt', 'float32');
            const inputs = {
                x: $x
            };
            return _engine.ENGINE.runKernel(_kernel_names.Sqrt, inputs);
        }
        const sqrt = (0,
            _operation.op)({
                sqrt_
            });
        exports.sqrt = sqrt;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    454: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.square = void 0;
        var _engine = require("../engine");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2019 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes square of `x` element-wise: `x ^ 2`
         *
         * ```js
         * const x = tf.tensor1d([1, 2, Math.sqrt(2), -1]);
         *
         * x.square().print();  // or tf.square(x)
         * ```
         * @param x The input Tensor.
         *
         * @doc {heading: 'Operations', subheading: 'Basic math'}
         */
        function square_(x) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'square');
            const attrs = {};
            return _engine.ENGINE.runKernel('Square', {
                x: $x
            }, attrs);
        }
        const square = (0,
            _operation.op)({
                square_
            });
        exports.square = square;

    }
        , {
        "../engine": 77,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    455: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.squaredDifference = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util = require("../tensor_util");
        var _tensor_util_env = require("../tensor_util_env");
        var _broadcast_util = require("./broadcast_util");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Returns (a - b) * (a - b) element-wise.
         * Supports broadcasting.
         *
         * ```js
         * const a = tf.tensor1d([1, 4, 3, 16]);
         * const b = tf.tensor1d([1, 2, 9, 4]);
         *
         * a.squaredDifference(b).print();  // or tf.squaredDifference(a, b)
         * ```
         *
         * ```js
         * // Broadcast squared difference  a with b.
         * const a = tf.tensor1d([2, 4, 6, 8]);
         * const b = tf.scalar(5);
         *
         * a.squaredDifference(b).print();  // or tf.squaredDifference(a, b)
         * ```
         *
         * @param a The first tensor.
         * @param b The second tensor. Must have the same type as `a`.
         *
         * @doc {heading: 'Operations', subheading: 'Arithmetic'}
         */
        function squaredDifference_(a, b) {
            let $a = (0,
                _tensor_util_env.convertToTensor)(a, 'a', 'squaredDifference');
            let $b = (0,
                _tensor_util_env.convertToTensor)(b, 'b', 'squaredDifference');
            [$a, $b] = (0,
                _tensor_util.makeTypesMatch)($a, $b);
            (0,
                _broadcast_util.assertAndGetBroadcastShape)($a.shape, $b.shape);
            const inputs = {
                a: $a,
                b: $b
            };
            const attrs = {};
            return _engine.ENGINE.runKernel(_kernel_names.SquaredDifference, inputs, attrs);
        }
        const squaredDifference = (0,
            _operation.op)({
                squaredDifference_
            });
        exports.squaredDifference = squaredDifference;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util": 503,
        "../tensor_util_env": 504,
        "./broadcast_util": 233,
        "./operation": 372
    }],
    456: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.squeeze = void 0;
        var _tensor_util_env = require("../tensor_util_env");
        var _util = require("../util");
        var _operation = require("./operation");
        var _reshape = require("./reshape");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Removes dimensions of size 1 from the shape of a `tf.Tensor`.
         *
         * ```js
         * const x = tf.tensor([1, 2, 3, 4], [1, 1, 4]);
         * x.squeeze().print();
         * ```
         *
         * @param x The input tensor to be squeezed.
         * @param axis An optional list of numbers. If specified, only
         *     squeezes the dimensions listed. The dimension index starts at 0. It
         * is an error to squeeze a dimension that is not 1.
         *
         * @doc {heading: 'Tensors', subheading: 'Transformations'}
         */
        function squeeze_(x, axis) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'squeeze', 'string_or_numeric');
            return (0,
                _reshape.reshape)($x, (0,
                    _util.squeezeShape)($x.shape, axis).newShape);
        }
        const squeeze = (0,
            _operation.op)({
                squeeze_
            });
        exports.squeeze = squeeze;

    }
        , {
        "../tensor_util_env": 504,
        "../util": 509,
        "./operation": 372,
        "./reshape": 402
    }],
    457: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.stack = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var util = _interopRequireWildcard(require("../util"));
        var _operation = require("./operation");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Stacks a list of rank-`R` `tf.Tensor`s into one rank-`(R+1)` `tf.Tensor`.
         *
         * ```js
         * const a = tf.tensor1d([1, 2]);
         * const b = tf.tensor1d([3, 4]);
         * const c = tf.tensor1d([5, 6]);
         * tf.stack([a, b, c]).print();
         * ```
         *
         * @param tensors A list of tensor objects with the same shape and dtype.
         * @param axis The axis to stack along. Defaults to 0 (the first dim).
         *
         * @doc {heading: 'Tensors', subheading: 'Slicing and Joining'}
         */
        function stack_(tensors, axis = 0) {
            const $tensors = (0,
                _tensor_util_env.convertToTensorArray)(tensors, 'tensors', 'stack', 'string_or_numeric');
            util.assert($tensors.length >= 1, () => 'Pass at least one tensor to tf.stack');
            if ($tensors.length > 0) {
                util.assert(axis <= $tensors[0].rank, () => 'Axis must be <= rank of the tensor');
            }
            const inputs = $tensors;
            const attrs = {
                axis
            };
            return _engine.ENGINE.runKernel(_kernel_names.Pack, inputs, attrs);
        }
        const stack = (0,
            _operation.op)({
                stack_
            });
        exports.stack = stack;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "../util": 509,
        "./operation": 372
    }],
    458: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.step = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes step of the input `tf.Tensor` element-wise: `x > 0 ? 1 : alpha * x`
         *
         * ```js
         * const x = tf.tensor1d([0, 2, -1, -3]);
         *
         * x.step(.5).print();  // or tf.step(x, .5)
         * ```
         * @param x The input tensor.
         * @param alpha The gradient when input is negative.
         *
         * @doc {heading: 'Operations', subheading: 'Basic math'}
         */
        function step_(x, alpha = 0.0) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'step');
            const inputs = {
                x: $x
            };
            const attrs = {
                alpha
            };
            return _engine.ENGINE.runKernel(_kernel_names.Step, inputs, attrs);
        }
        const step = (0,
            _operation.op)({
                step_
            });
        exports.step = step;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    459: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.stridedSlice = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Extracts a strided slice of a tensor.
         *
         * Roughly speaking, this op extracts a slice of size (end-begin)/stride from
         * the given input tensor (x). Starting at the location specified by begin the
         * slice continues by adding stride to the index until all dimensions are not
         * less than end. Note that a stride can be negative, which causes a reverse
         * slice.
         *
         * ```js
         * const t = tf.tensor3d([1, 1, 1 ,2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6],
         *    [3, 2, 3]);
         * t.stridedSlice([1, 0, 0], [2, 1, 3], [1, 1, 1]).print()  // [[[3, 3, 3]]]
         * t.stridedSlice([1, 0, 0], [2, 2, 3], [1, 1, 1]).print()  // [[[3, 3, 3],
         *                                                     // [4, 4, 4]]]
         * t.stridedSlice([1, -1, 0], [2, -3, 3], [1, -1, 1]).print() // [[[4, 4, 4],
         *                                                     // [3, 3, 3]]]
         * ```
         *
         * @param x The tensor to stride slice.
         * @param begin The coordinates to start the slice from.
         * @param end: The coordinates to end the slice at.
         * @param strides: The size of the slice.
         * @param beginMask: If the ith bit of beginMask is set, begin[i] is ignored
         *      and the fullest possible range in that dimension is used instead.
         * @param endMask: If the ith bit of endMask is set, end[i] is ignored
         *      and the fullest possible range in that dimension is used instead.
         * @param shrinkAxisMask: a bitmask where bit i implies that
         * the ith specification should shrink the dimensionality. begin and end must
         * imply a slice of size 1 in the dimension.
         *
         * @doc {heading: 'Operations', subheading: 'Slicing and Joining'}
         */
        function stridedSlice_(x, begin, end, strides, beginMask = 0, endMask = 0, ellipsisMask = 0, newAxisMask = 0, shrinkAxisMask = 0) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'stridedSlice', 'string_or_numeric');
            const inputs = {
                x: $x
            };
            const attrs = {
                begin,
                end,
                strides,
                beginMask,
                endMask,
                ellipsisMask,
                newAxisMask,
                shrinkAxisMask
            };
            return _engine.ENGINE.runKernel(_kernel_names.StridedSlice, inputs, attrs);
        }
        const stridedSlice = (0,
            _operation.op)({
                stridedSlice_
            });
        exports.stridedSlice = stridedSlice;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    460: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.stringNGrams = void 0;
        var _engine = require("../../engine");
        var _kernel_names = require("../../kernel_names");
        var _tensor_util_env = require("../../tensor_util_env");
        var _operation = require("../operation");
        /**
         * @license
         * Copyright 2021 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Creates ngrams from ragged string data.
         *
         * This op accepts a ragged tensor with 1 ragged dimension containing only
         * strings and outputs a ragged tensor with 1 ragged dimension containing ngrams
         * of that string, joined along the innermost axis.
         *
         * ```js
         * const result = tf.string.stringNGrams(
         *   ['a', 'b', 'c', 'd'], tf.tensor1d([0, 2, 4], 'int32'),
         *   '|', [1, 2], 'LP', 'RP', -1, false);
         * result['nGrams'].print(); // ['a', 'b', 'LP|a', 'a|b', 'b|RP',
         *                           //  'c', 'd', 'LP|c', 'c|d', 'd|RP']
         * result['nGramsSplits'].print(); // [0, 5, 10]
         * ```
         * @param data: The values tensor of the ragged string tensor to make ngrams out
         *     of. Must be a 1D string tensor.
         * @param dataSplits: The splits tensor of the ragged string tensor to make
         *     ngrams out of.
         * @param separator: The string to append between elements of the token. Use ""
         *     for no separator.
         * @param nGramWidths: The sizes of the ngrams to create.
         * @param leftPad: The string to use to pad the left side of the ngram sequence.
         *     Only used if pad_width !== 0.
         * @param rightPad: The string to use to pad the right side of the ngram
         *     sequence. Only used if pad_width !== 0.
         * @param padWidth: The number of padding elements to add to each side of each
         *     sequence. Note that padding will never be greater than `nGramWidths`-1
         *     regardless of this value. If `padWidth`=-1, then add max(`nGramWidths`)-1
         *     elements.
         * @param preserveShortSequences: If true, then ensure that at least one ngram
         *     is generated for each input sequence. In particular, if an input sequence
         *     is shorter than min(ngramWidth) + 2*padWidth, then generate a single
         *     ngram containing the entire sequence. If false, then no ngrams are
         *     generated for these short input sequences.
         * @return A map with the following properties:
         *     - nGrams: The values tensor of the output ngrams ragged tensor.
         *     - nGramsSplits: The splits tensor of the output ngrams ragged tensor.
         *
         * @doc {heading: 'Operations', subheading: 'String'}
         */
        function stringNGrams_(data, dataSplits, separator, nGramWidths, leftPad, rightPad, padWidth, preserveShortSequences) {
            const $data = (0,
                _tensor_util_env.convertToTensor)(data, 'data', 'stringNGrams', 'string');
            if ($data.dtype !== 'string') {
                throw new Error('Data must be of datatype string');
            }
            if ($data.shape.length !== 1) {
                throw new Error(`Data must be a vector, saw: ${$data.shape}`);
            }
            const $dataSplits = (0,
                _tensor_util_env.convertToTensor)(dataSplits, 'dataSplits', 'stringNGrams');
            if ($dataSplits.dtype !== 'int32') {
                throw new Error('Data splits must be of datatype int32');
            }
            const attrs = {
                separator,
                nGramWidths,
                leftPad,
                rightPad,
                padWidth,
                preserveShortSequences
            };
            const inputs = {
                data: $data,
                dataSplits: $dataSplits
            };
            const result = _engine.ENGINE.runKernel(_kernel_names.StringNGrams, inputs, attrs);
            return {
                nGrams: result[0],
                nGramsSplits: result[1]
            };
        }
        const stringNGrams = (0,
            _operation.op)({
                stringNGrams_
            });
        exports.stringNGrams = stringNGrams;

    }
        , {
        "../../engine": 77,
        "../../kernel_names": 198,
        "../../tensor_util_env": 504,
        "../operation": 372
    }],
    461: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.stringSplit = void 0;
        var _engine = require("../../engine");
        var _kernel_names = require("../../kernel_names");
        var _tensor_util_env = require("../../tensor_util_env");
        var _operation = require("../operation");
        /**
         * @license
         * Copyright 2021 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Split elements of `input` based on `delimiter` into a SparseTensor .
         *
         * Let N be the size of source (typically N will be the batch size). Split each
         * element of `input` based on `delimiter` and return a SparseTensor containing
         * the splitted tokens. Empty tokens are ignored if `skipEmpty` is set to True.
         *
         * `delimiter` can be empty, or a string of split characters. If `delimiter` is
         * an empty string, each element of `input` is split into individual
         * character strings. Otherwise every character of `delimiter` is a potential
         * split point.
         *
         * ```js
         * const result = tf.string.stringSplit(['hello world',  'a b c'], ' ');
         * result['indices'].print(); // [[0, 0], [0, 1], [1, 0], [1, 1], [1, 2]]
         * result['values'].print(); // ['hello', 'world', 'a', 'b', 'c']
         * result['shape'].print(); // [2, 3]
         * ```
         * @param input: 1-D. Strings to split.
         * @param delimiter: 0-D. Delimiter characters, or empty string.
         * @param skipEmpty: Optional. If true, skip the empty strings from the result.
         *     Defaults to true.
         * @return A map with the following properties:
         *     - indices: A dense matrix of int32 representing the indices of the sparse
         *       tensor.
         *     - values: A vector of strings corresponding to the splited values.
         *     - shape: a length-2 vector of int32 representing the shape of the sparse
         * tensor, where the first value is N and the second value is the maximum number
         * of tokens in a single input entry.
         *
         * @doc {heading: 'Operations', subheading: 'String'}
         */
        function stringSplit_(input, delimiter, skipEmpty = true) {
            const $input = (0,
                _tensor_util_env.convertToTensor)(input, 'input', 'stringSplit', 'string');
            const $delimiter = (0,
                _tensor_util_env.convertToTensor)(delimiter, 'delimiter', 'stringSplit', 'string');
            if ($input.rank !== 1) {
                throw new Error(`Input should be Tensor1D but received shape ${$input.shape}`);
            }
            if ($delimiter.rank !== 0) {
                throw new Error(`Delimiter should be a scalar but received shape ${$delimiter.shape}`);
            }
            const attrs = {
                skipEmpty
            };
            const inputs = {
                input: $input,
                delimiter: $delimiter
            };
            const result = _engine.ENGINE.runKernel(_kernel_names.StringSplit, inputs, attrs);
            return {
                indices: result[0],
                values: result[1],
                shape: result[2]
            };
        }
        const stringSplit = (0,
            _operation.op)({
                stringSplit_
            });
        exports.stringSplit = stringSplit;

    }
        , {
        "../../engine": 77,
        "../../kernel_names": 198,
        "../../tensor_util_env": 504,
        "../operation": 372
    }],
    462: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.stringToHashBucketFast = void 0;
        var _engine = require("../../engine");
        var _kernel_names = require("../../kernel_names");
        var _tensor_util_env = require("../../tensor_util_env");
        var _operation = require("../operation");
        /**
         * @license
         * Copyright 2021 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Converts each string in the input Tensor to its hash mod by a number of
         * buckets.
         *
         * The hash function is deterministic on the content of the string within the
         * process and will never change. However, it is not suitable for cryptography.
         * This function may be used when CPU time is scarce and inputs are trusted or
         * unimportant. There is a risk of adversaries constructing inputs that all hash
         * to the same bucket.
         *
         * ```js
         * const result = tf.string.stringToHashBucketFast(
         *   ['Hello', 'TensorFlow', '2.x'], 3);
         * result.print(); // [0, 2, 2]
         * ```
         * @param input: The strings to assign a hash bucket.
         * @param numBuckets: The number of buckets.
         * @return A Tensor of the same shape as the input tensor.
         *
         * @doc {heading: 'Operations', subheading: 'String'}
         */
        function stringToHashBucketFast_(input, numBuckets) {
            const $input = (0,
                _tensor_util_env.convertToTensor)(input, 'input', 'stringToHashBucketFast', 'string');
            const attrs = {
                numBuckets
            };
            if (numBuckets <= 0) {
                throw new Error(`Number of buckets must be at least 1`);
            }
            const inputs = {
                input: $input
            };
            return _engine.ENGINE.runKernel(_kernel_names.StringToHashBucketFast, inputs, attrs);
        }
        const stringToHashBucketFast = (0,
            _operation.op)({
                stringToHashBucketFast_
            });
        exports.stringToHashBucketFast = stringToHashBucketFast;

    }
        , {
        "../../engine": 77,
        "../../kernel_names": 198,
        "../../tensor_util_env": 504,
        "../operation": 372
    }],
    463: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.sub = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util = require("../tensor_util");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Subtracts two `tf.Tensor`s element-wise, A - B. Supports broadcasting.
         *
         * ```js
         * const a = tf.tensor1d([10, 20, 30, 40]);
         * const b = tf.tensor1d([1, 2, 3, 4]);
         *
         * a.sub(b).print();  // or tf.sub(a, b)
         * ```
         *
         * ```js
         * // Broadcast subtract a with b.
         * const a = tf.tensor1d([10, 20, 30, 40]);
         * const b = tf.scalar(5);
         *
         * a.sub(b).print();  // or tf.sub(a, b)
         * ```
         * @param a The first `tf.Tensor` to subtract from.
         * @param b The second `tf.Tensor` to be subtracted. Must have the same dtype as
         * `a`.
         *
         * @doc {heading: 'Operations', subheading: 'Arithmetic'}
         */
        function sub_(a, b) {
            let $a = (0,
                _tensor_util_env.convertToTensor)(a, 'a', 'sub');
            let $b = (0,
                _tensor_util_env.convertToTensor)(b, 'b', 'sub');
            [$a, $b] = (0,
                _tensor_util.makeTypesMatch)($a, $b);
            const inputs = {
                a: $a,
                b: $b
            };
            return _engine.ENGINE.runKernel(_kernel_names.Sub, inputs);
        }
        const sub = (0,
            _operation.op)({
                sub_
            });
        exports.sub = sub;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util": 503,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    464: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.sum = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _cast = require("./cast");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes the sum of elements across dimensions of a `tf.Tensor`.
         *
         * Reduces the input along the dimensions given in `axes`. Unless `keepDims`
         * is true, the rank of the `tf.Tensor` is reduced by 1 for each entry in
         * `axes`. If `keepDims` is true, the reduced dimensions are retained with
         * length 1. If axes has no entries, all dimensions are reduced, and a
         * `tf.Tensor` with a single element is returned.
         *
         * ```js
         * const x = tf.tensor1d([1, 2, 3]);
         *
         * x.sum().print();  // or tf.sum(x)
         * ```
         *
         * ```js
         * const x = tf.tensor2d([1, 2, 3, 4], [2, 2]);
         *
         * const axis = 1;
         * x.sum(axis).print();  // or tf.sum(x, axis)
         * ```
         *
         * @param x The input tensor to compute the sum over. If the dtype is `bool`
         *   it will be converted to `int32` and the output dtype will be `int32`.
         * @param axis The dimension(s) to reduce. By default it reduces
         *     all dimensions.
         * @param keepDims If true, retains reduced dimensions with size 1.
         *
         * @doc {heading: 'Operations', subheading: 'Reduction'}
         */
        function sum_(x, axis = null, keepDims = false) {
            let $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'sum');
            if ($x.dtype === 'bool') {
                $x = (0,
                    _cast.cast)($x, 'int32');
            }
            const inputs = {
                x: $x
            };
            const attrs = {
                axis,
                keepDims
            };
            return _engine.ENGINE.runKernel(_kernel_names.Sum, inputs, attrs);
        }
        const sum = (0,
            _operation.op)({
                sum_
            });
        exports.sum = sum;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./cast": 236,
        "./operation": 372
    }],
    465: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.tan = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes tan of the input `tf.Tensor` element-wise, `tan(x)`
         *
         * ```js
         * const x = tf.tensor1d([0, Math.PI / 2, Math.PI * 3 / 4]);
         *
         * x.tan().print();  // or tf.tan(x)
         * ```
         * @param x The input tensor.
         *
         * @doc {heading: 'Operations', subheading: 'Basic math'}
         */
        function tan_(x) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'tan', 'float32');
            const inputs = {
                x: $x
            };
            return _engine.ENGINE.runKernel(_kernel_names.Tan, inputs);
        }
        const tan = (0,
            _operation.op)({
                tan_
            });
        exports.tan = tan;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    466: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.tanh = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes hyperbolic tangent of the input `tf.Tensor` element-wise: `tanh(x)`
         *
         * ```js
         * const x = tf.tensor1d([0, 1, -1, 70]);
         *
         * x.tanh().print();  // or tf.tanh(x)
         * ```
         * @param x The input tensor.
         *
         * @doc {heading: 'Operations', subheading: 'Basic math'}
         */
        function tanh_(x) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'tanh', 'float32');
            const inputs = {
                x: $x
            };
            return _engine.ENGINE.runKernel(_kernel_names.Tanh, inputs);
        }
        const tanh = (0,
            _operation.op)({
                tanh_
            });
        exports.tanh = tanh;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    467: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.tensor = tensor;
        var _tensor_util_env = require("../tensor_util_env");
        var _tensor_ops_util = require("./tensor_ops_util");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Creates a `tf.Tensor` with the provided values, shape and dtype.
         *
         * ```js
         * // Pass an array of values to create a vector.
         * tf.tensor([1, 2, 3, 4]).print();
         * ```
         *
         * ```js
         * // Pass a nested array of values to make a matrix or a higher
         * // dimensional tensor.
         * tf.tensor([[1, 2], [3, 4]]).print();
         * ```
         *
         * ```js
         * // Pass a flat array and specify a shape yourself.
         * tf.tensor([1, 2, 3, 4], [2, 2]).print();
         * ```
         *
         * ```js
         * // Pass a `WebGLData` object and specify a shape yourself.
         *
         * // This makes it possible for TF.js applications to avoid GPU / CPU sync.
         * // For example, if your application includes a preprocessing step on the GPU,
         * // you could upload the GPU output directly to TF.js, rather than first
         * // downloading the values.
         *
         * // Example for WebGL2:
         * const customCanvas = document.createElement('canvas');
         * const customBackend = new tf.MathBackendWebGL(customCanvas);
         * tf.registerBackend('custom-webgl', () => customBackend);
         * await tf.setBackend('custom-webgl');
         * const gl = customBackend.gpgpu.gl;
         * const texture = gl.createTexture();
         * const tex2d = gl.TEXTURE_2D;
         * const width = 2;
         * const height = 2;
         *
         * gl.bindTexture(tex2d, texture);
         * gl.texParameteri(tex2d, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
         * gl.texParameteri(tex2d, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
         * gl.texParameteri(tex2d, gl.TEXTURE_MIN_FILTER, gl.NEAREST);
         * gl.texParameteri(tex2d, gl.TEXTURE_MAG_FILTER, gl.NEAREST);
         * gl.texImage2D(
         *   tex2d, 0, gl.RGBA32F, // internalFormat
         *   width, height, 0,
         *   gl.RGBA, // textureFormat
         *   gl.FLOAT, // textureType
         *   new Float32Array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15])
         * );
         *
         * // Currently, the `texture` has 4 pixels:
         * // Pixel0 is {R:0, G:1, B:2, A:3}
         * // Pixel1 is {R:4, G:5, B:6, A:7}
         * // Pixel2 is {R:8, G:9, B:10, A:11}
         * // Pixel3 is {R:12, G:13, B:14, A:15}
         *
         * const logicalShape = [height * width * 2];
         * const a = tf.tensor({texture, height, width, channels: 'BR'}, logicalShape);
         * // Tensor value will be [2, 0, 6, 4, 10, 8, 14, 12], since [2, 0] is the
         * // values of 'B' and 'R' channels of Pixel0, [6, 4] is the values of 'B' and
         * 'R'
         * // channels of Pixel1...
         *
         * // For postprocessing on the GPU, it's possible to retrieve the texture
         * // backing any tensor by calling the tensor's `dataToGPU` method like
         * // so:
         *
         * const tex = a.dataToGPU();
         * ```
         * @param values The values of the tensor. Can be nested array of numbers,
         *     or a flat array, or a `TypedArray`, or a `WebGLData` object. If the
         * values are strings, they will be encoded as utf-8 and kept as `Uint8Array[]`.
         * If the values is a `WebGLData` object, the dtype could only be 'float32' or
         * 'int32' and the object has to have: 1. texture, a `WebGLTexture`, the texture
         * must share the same `WebGLRenderingContext` with TFJS's WebGL backend (you
         * could create a custom WebGL backend from your texture's canvas) and the
         * internal texture format for the input texture must be floating point or
         * normalized integer; 2. height, the height of the texture; 3. width, the width
         * of the texture; 4. channels, a non-empty subset of 'RGBA', indicating the
         * values of which channels will be passed to the tensor, such as 'R' or 'BR'
         * (The order of the channels affect the order of tensor values. ). (If the
         * values passed from texture is less than the tensor size, zeros will be padded
         * at the rear.)
         * @param shape The shape of the tensor. Optional. If not provided,
         *   it is inferred from `values`.
         * @param dtype The data type.
         *
         * @doc {heading: 'Tensors', subheading: 'Creation'}
         */
        function tensor(values, shape, dtype) {
            const inferredShape = (0,
                _tensor_util_env.inferShape)(values, dtype);
            return (0,
                _tensor_ops_util.makeTensor)(values, shape, inferredShape, dtype);
        }

    }
        , {
        "../tensor_util_env": 504,
        "./tensor_ops_util": 474
    }],
    468: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.tensor1d = tensor1d;
        var _tensor_util_env = require("../tensor_util_env");
        var _util = require("../util");
        var _tensor_ops_util = require("./tensor_ops_util");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Creates rank-1 `tf.Tensor` with the provided values, shape and dtype.
         *
         * The same functionality can be achieved with `tf.tensor`, but in general
         * we recommend using `tf.tensor1d` as it makes the code more readable.
         *
         * ```js
         * tf.tensor1d([1, 2, 3]).print();
         * ```
         *
         * @param values The values of the tensor. Can be array of numbers,
         *     or a `TypedArray`.
         * @param dtype The data type.
         *
         * @doc {heading: 'Tensors', subheading: 'Creation'}
         */
        function tensor1d(values, dtype) {
            (0,
                _util.assertNonNull)(values);
            const inferredShape = (0,
                _tensor_util_env.inferShape)(values, dtype);
            if (inferredShape.length !== 1) {
                throw new Error('tensor1d() requires values to be a flat/TypedArray');
            }
            const shape = null;
            return (0,
                _tensor_ops_util.makeTensor)(values, shape, inferredShape, dtype);
        }

    }
        , {
        "../tensor_util_env": 504,
        "../util": 509,
        "./tensor_ops_util": 474
    }],
    469: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.tensor2d = tensor2d;
        var _tensor_util_env = require("../tensor_util_env");
        var _util = require("../util");
        var _tensor_ops_util = require("./tensor_ops_util");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Creates rank-2 `tf.Tensor` with the provided values, shape and dtype.
         *
         * The same functionality can be achieved with `tf.tensor`, but in general
         * we recommend using `tf.tensor2d` as it makes the code more readable.
         *
         *  ```js
         * // Pass a nested array.
         * tf.tensor2d([[1, 2], [3, 4]]).print();
         * ```
         * ```js
         * // Pass a flat array and specify a shape.
         * tf.tensor2d([1, 2, 3, 4], [2, 2]).print();
         * ```
         *
         * @param values The values of the tensor. Can be nested array of numbers,
         *     or a flat array, or a `TypedArray`.
         * @param shape The shape of the tensor. If not provided, it is inferred from
         *     `values`.
         * @param dtype The data type.
         *
         * @doc {heading: 'Tensors', subheading: 'Creation'}
         */
        function tensor2d(values, shape, dtype) {
            (0,
                _util.assertNonNull)(values);
            if (shape != null && shape.length !== 2) {
                throw new Error('tensor2d() requires shape to have two numbers');
            }
            const inferredShape = (0,
                _tensor_util_env.inferShape)(values, dtype);
            if (inferredShape.length !== 2 && inferredShape.length !== 1) {
                throw new Error('tensor2d() requires values to be number[][] or flat/TypedArray');
            }
            if (inferredShape.length === 1 && shape == null) {
                throw new Error('tensor2d() requires shape to be provided when `values` ' + 'are a flat/TypedArray');
            }
            return (0,
                _tensor_ops_util.makeTensor)(values, shape, inferredShape, dtype);
        }

    }
        , {
        "../tensor_util_env": 504,
        "../util": 509,
        "./tensor_ops_util": 474
    }],
    470: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.tensor3d = tensor3d;
        var _tensor_util_env = require("../tensor_util_env");
        var _util = require("../util");
        var _tensor_ops_util = require("./tensor_ops_util");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Creates rank-3 `tf.Tensor` with the provided values, shape and dtype.
         *
         * The same functionality can be achieved with `tf.tensor`, but in general
         * we recommend using `tf.tensor3d` as it makes the code more readable.
         *
         *  ```js
         * // Pass a nested array.
         * tf.tensor3d([[[1], [2]], [[3], [4]]]).print();
         * ```
         * ```js
         * // Pass a flat array and specify a shape.
         * tf.tensor3d([1, 2, 3, 4], [2, 2, 1]).print();
         * ```
         *
         * @param values The values of the tensor. Can be nested array of numbers,
         *     or a flat array, or a `TypedArray`.
         * @param shape The shape of the tensor. If not provided,  it is inferred from
         *     `values`.
         * @param dtype The data type.
         *
         * @doc {heading: 'Tensors', subheading: 'Creation'}
         */
        function tensor3d(values, shape, dtype) {
            (0,
                _util.assertNonNull)(values);
            if (shape != null && shape.length !== 3) {
                throw new Error('tensor3d() requires shape to have three numbers');
            }
            const inferredShape = (0,
                _tensor_util_env.inferShape)(values, dtype);
            if (inferredShape.length !== 3 && inferredShape.length !== 1) {
                throw new Error('tensor3d() requires values to be number[][][] or flat/TypedArray');
            }
            if (inferredShape.length === 1 && shape == null) {
                throw new Error('tensor3d() requires shape to be provided when `values` ' + 'are a flat array');
            }
            return (0,
                _tensor_ops_util.makeTensor)(values, shape, inferredShape, dtype);
        }

    }
        , {
        "../tensor_util_env": 504,
        "../util": 509,
        "./tensor_ops_util": 474
    }],
    471: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.tensor4d = tensor4d;
        var _tensor_util_env = require("../tensor_util_env");
        var _util = require("../util");
        var _tensor_ops_util = require("./tensor_ops_util");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Creates rank-4 `tf.Tensor` with the provided values, shape and dtype.
         *
         * The same functionality can be achieved with `tf.tensor`, but in general
         * we recommend using `tf.tensor4d` as it makes the code more readable.
         *
         *  ```js
         * // Pass a nested array.
         * tf.tensor4d([[[[1], [2]], [[3], [4]]]]).print();
         * ```
         * ```js
         * // Pass a flat array and specify a shape.
         * tf.tensor4d([1, 2, 3, 4], [1, 2, 2, 1]).print();
         * ```
         *
         * @param values The values of the tensor. Can be nested array of numbers,
         *     or a flat array, or a `TypedArray`.
         * @param shape The shape of the tensor. Optional. If not provided,
         *   it is inferred from `values`.
         * @param dtype The data type.
         *
         * @doc {heading: 'Tensors', subheading: 'Creation'}
         */
        function tensor4d(values, shape, dtype) {
            (0,
                _util.assertNonNull)(values);
            if (shape != null && shape.length !== 4) {
                throw new Error('tensor4d() requires shape to have four numbers');
            }
            const inferredShape = (0,
                _tensor_util_env.inferShape)(values, dtype);
            if (inferredShape.length !== 4 && inferredShape.length !== 1) {
                throw new Error('tensor4d() requires values to be number[][][][] or flat/TypedArray');
            }
            if (inferredShape.length === 1 && shape == null) {
                throw new Error('tensor4d() requires shape to be provided when `values` ' + 'are a flat array');
            }
            return (0,
                _tensor_ops_util.makeTensor)(values, shape, inferredShape, dtype);
        }

    }
        , {
        "../tensor_util_env": 504,
        "../util": 509,
        "./tensor_ops_util": 474
    }],
    472: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.tensor5d = tensor5d;
        var _tensor_util_env = require("../tensor_util_env");
        var _util = require("../util");
        var _tensor_ops_util = require("./tensor_ops_util");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Creates rank-5 `tf.Tensor` with the provided values, shape and dtype.
         *
         * The same functionality can be achieved with `tf.tensor`, but in general
         * we recommend using `tf.tensor5d` as it makes the code more readable.
         *
         *  ```js
         * // Pass a nested array.
         * tf.tensor5d([[[[[1],[2]],[[3],[4]]],[[[5],[6]],[[7],[8]]]]]).print();
         * ```
         * ```js
         * // Pass a flat array and specify a shape.
         * tf.tensor5d([1, 2, 3, 4, 5, 6, 7, 8], [1, 2, 2, 2, 1]).print();
         * ```
         *
         * @param values The values of the tensor. Can be nested array of numbers,
         *     or a flat array, or a `TypedArray`.
         * @param shape The shape of the tensor. Optional. If not provided,
         *   it is inferred from `values`.
         * @param dtype The data type.
         *
         * @doc {heading: 'Tensors', subheading: 'Creation'}
         */
        function tensor5d(values, shape, dtype) {
            (0,
                _util.assertNonNull)(values);
            if (shape != null && shape.length !== 5) {
                throw new Error('tensor5d() requires shape to have five numbers');
            }
            const inferredShape = (0,
                _tensor_util_env.inferShape)(values, dtype);
            if (inferredShape.length !== 5 && inferredShape.length !== 1) {
                throw new Error('tensor5d() requires values to be ' + 'number[][][][][] or flat/TypedArray');
            }
            if (inferredShape.length === 1 && shape == null) {
                throw new Error('tensor5d() requires shape to be provided when `values` ' + 'are a flat array');
            }
            return (0,
                _tensor_ops_util.makeTensor)(values, shape, inferredShape, dtype);
        }

    }
        , {
        "../tensor_util_env": 504,
        "../util": 509,
        "./tensor_ops_util": 474
    }],
    473: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.tensor6d = tensor6d;
        var _tensor_util_env = require("../tensor_util_env");
        var _util = require("../util");
        var _tensor_ops_util = require("./tensor_ops_util");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Creates rank-6 `tf.Tensor` with the provided values, shape and dtype.
         *
         * The same functionality can be achieved with `tf.tensor`, but in general
         * we recommend using `tf.tensor6d` as it makes the code more readable.
         *
         *  ```js
         * // Pass a nested array.
         * tf.tensor6d([[[[[[1],[2]],[[3],[4]]],[[[5],[6]],[[7],[8]]]]]]).print();
         * ```
         * ```js
         * // Pass a flat array and specify a shape.
         * tf.tensor6d([1, 2, 3, 4, 5, 6, 7, 8], [1, 1, 2, 2, 2, 1]).print();
         * ```
         *
         * @param values The values of the tensor. Can be nested array of numbers,
         *     or a flat array, or a `TypedArray`.
         * @param shape The shape of the tensor. Optional. If not provided,
         *   it is inferred from `values`.
         * @param dtype The data type.
         *
         * @doc {heading: 'Tensors', subheading: 'Creation'}
         */
        function tensor6d(values, shape, dtype) {
            (0,
                _util.assertNonNull)(values);
            if (shape != null && shape.length !== 6) {
                throw new Error('tensor6d() requires shape to have six numbers');
            }
            const inferredShape = (0,
                _tensor_util_env.inferShape)(values, dtype);
            if (inferredShape.length !== 6 && inferredShape.length !== 1) {
                throw new Error('tensor6d() requires values to be number[][][][][][] or ' + 'flat/TypedArray');
            }
            if (inferredShape.length === 1 && shape == null) {
                throw new Error('tensor6d() requires shape to be provided when `values` ' + 'are a flat array');
            }
            shape = shape || inferredShape;
            return (0,
                _tensor_ops_util.makeTensor)(values, shape, inferredShape, dtype);
        }

    }
        , {
        "../tensor_util_env": 504,
        "../util": 509,
        "./tensor_ops_util": 474
    }],
    474: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.makeTensor = makeTensor;
        var _engine = require("../engine");
        var _util = require("../util");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /** This is shared code across all tensor creation methods. */
        function makeTensor(values, shape, inferredShape, dtype) {
            if (dtype == null) {
                dtype = (0,
                    _util.inferDtype)(values);
            }
            if (dtype === 'complex64') {
                throw new Error(`Cannot construct a complex64 tensor directly. ` + `Please use tf.complex(real, imag).`);
            }
            if (typeof values === 'object' && 'texture' in values) {
                if (dtype !== 'float32' && dtype !== 'int32') {
                    throw new Error(`Creating tensor from texture only supports ` + `'float32'|'int32' dtype, while the dtype is ${dtype}.`);
                }
                values.channels = values.channels || 'RGBA';
                return _engine.ENGINE.backend.createTensorFromTexture(values, shape || inferredShape, dtype);
            }
            if (!(0,
                _util.isTypedArray)(values) && !Array.isArray(values) && typeof values !== 'number' && typeof values !== 'boolean' && typeof values !== 'string') {
                throw new Error('values passed to tensor(values) must be a number/boolean/string or ' + 'an array of numbers/booleans/strings, or a TypedArray');
            }
            // Verify that the shape matches the inferred shape.
            if (shape != null) {
                (0,
                    _util.assertNonNegativeIntegerDimensions)(shape);
                const providedSize = (0,
                    _util.sizeFromShape)(shape);
                const inferredSize = (0,
                    _util.sizeFromShape)(inferredShape);
                (0,
                    _util.assert)(providedSize === inferredSize, () => `Based on the provided shape, [${shape}], the tensor should have ` + `${providedSize} values but has ${inferredSize}`);
                for (let i = 0; i < inferredShape.length; ++i) {
                    const inferred = inferredShape[i];
                    const flatDimsDontMatch = i === inferredShape.length - 1 ? inferred !== (0,
                        _util.sizeFromShape)(shape.slice(i)) : true;
                    (0,
                        _util.assert)(inferredShape[i] === shape[i] || !flatDimsDontMatch, () => `Error creating a new Tensor. Inferred shape ` + `(${inferredShape}) does not match the provided ` + `shape (${shape}). `);
                }
            }
            if (!(0,
                _util.isTypedArray)(values) && !Array.isArray(values)) {
                values = [values];
            }
            shape = shape || inferredShape;
            values = dtype !== 'string' ? (0,
                _util.toTypedArray)(values, dtype) : (0,
                    _util.flatten)(values, [], true);
            return _engine.ENGINE.makeTensor(values, shape, dtype);
        }

    }
        , {
        "../engine": 77,
        "../util": 509
    }],
    475: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.tile = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var util = _interopRequireWildcard(require("../util"));
        var _operation = require("./operation");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Construct a tensor by repeating it the number of times given by reps.
         *
         * This operation creates a new tensor by replicating `input` `reps`
         * times. The output tensor's `i`th dimension has `input.shape[i] *
         * reps[i]` elements, and the values of `input` are replicated
         * `reps[i]` times along the `i`th dimension. For example, tiling
         * `[a, b, c, d]` by `[2]` produces `[a, b, c, d, a, b, c, d]`.
         *
         * ```js
         * const a = tf.tensor1d([1, 2]);
         *
         * a.tile([2]).print();    // or a.tile([2])
         * ```
         *
         * ```js
         * const a = tf.tensor2d([1, 2, 3, 4], [2, 2]);
         *
         * a.tile([1, 2]).print();  // or a.tile([1, 2])
         * ```
         * @param x The tensor to tile.
         * @param reps Determines the number of replications per dimension.
         *
         * @doc {heading: 'Tensors', subheading: 'Slicing and Joining'}
         */
        function tile_(x, reps) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'tile', 'string_or_numeric');
            util.assert($x.rank === reps.length, () => `Error in transpose: rank of input ${$x.rank} ` + `must match length of reps ${reps}.`);
            const inputs = {
                x: $x
            };
            const attrs = {
                reps
            };
            return _engine.ENGINE.runKernel(_kernel_names.Tile, inputs, attrs);
        }
        const tile = (0,
            _operation.op)({
                tile_
            });
        exports.tile = tile;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "../util": 509,
        "./operation": 372
    }],
    476: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.topk = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Finds the values and indices of the `k` largest entries along the last
         * dimension.
         *
         * If the input is a vector (rank=1), finds the k largest entries in the vector
         * and outputs their values and indices as vectors. Thus values[j] is the j-th
         * largest entry in input, and its index is indices[j].
         * For higher rank inputs, computes the top k entries along the last dimension.
         *
         * If two elements are equal, the lower-index element appears first.
         *
         * ```js
         * const a = tf.tensor2d([[1, 5], [4, 3]]);
         * const {values, indices} = tf.topk(a);
         * values.print();
         * indices.print();
         * ```
         * @param x 1-D or higher `tf.Tensor` with last dimension being at least `k`.
         * @param k Number of top elements to look for along the last dimension.
         * @param sorted If true, the resulting `k` elements will be sorted by the
         *     values in descending order.
         *
         * @doc {heading: 'Operations', subheading: 'Evaluation'}
         */
        function topk_(x, k = 1, sorted = true) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'topk');
            if ($x.rank === 0) {
                throw new Error('topk() expects the input to be of rank 1 or higher');
            }
            const lastDim = $x.shape[$x.shape.length - 1];
            if (k < 0) {
                throw new Error(`'k' passed to topk() must be >= 0 but got ${k}`);
            }
            if (k > lastDim) {
                throw new Error(`'k' passed to topk() must be <= the last dimension (${lastDim}) ` + `but got ${k}`);
            }
            const inputs = {
                x: $x
            };
            const attrs = {
                k,
                sorted
            };
            const [values, indices] = _engine.ENGINE.runKernel(_kernel_names.TopK, inputs, attrs);
            return {
                values,
                indices
            };
        }
        const topk = (0,
            _operation.op)({
                topk_
            });
        exports.topk = topk;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    477: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.transpose = void 0;
        var _engine = require("../engine");
        var _globals = require("../globals");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var util = _interopRequireWildcard(require("../util"));
        var _complex = require("./complex");
        var _imag = require("./imag");
        var _neg = require("./neg");
        var _operation = require("./operation");
        var _real = require("./real");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Transposes the `tf.Tensor`. Permutes the dimensions according to `perm`.
         *
         * The returned `tf.Tensor`'s dimension `i` will correspond to the input
         * dimension `perm[i]`. If `perm` is not given, it is set to `[n-1...0]`,
         * where `n` is the rank of the input `tf.Tensor`. Hence by default, this
         * operation performs a regular matrix transpose on 2-D input `tf.Tensor`s.
         *
         * ```js
         * const a = tf.tensor2d([1, 2, 3, 4, 5, 6], [2, 3]);
         *
         * a.transpose().print();  // or tf.transpose(a)
         * ```
         *
         * @param x The tensor to transpose.
         * @param perm The permutation of the dimensions of a.
         * @param conjugate Will conjugate complex input if true.
         *
         * @doc {heading: 'Operations', subheading: 'Matrices'}
         */
        function transpose_(x, perm, conjugate) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'transpose');
            if (perm == null) {
                perm = $x.shape.map((s, i) => i).reverse();
            }
            util.assert($x.rank === perm.length, () => `Error in transpose: rank of input ${$x.rank} ` + `must match length of perm ${perm}.`);
            perm.forEach(axis => {
                util.assert(axis >= 0 && axis < $x.rank, () => `All entries in 'perm' must be between 0 and ${$x.rank - 1}` + ` but got ${perm}`);
            }
            );
            if ($x.rank <= 1) {
                return $x.clone();
            }
            const inputs = {
                x: $x
            };
            const attrs = {
                perm
            };
            if ($x.dtype === 'complex64') {
                return (0,
                    _globals.tidy)(() => {
                        let $real = (0,
                            _real.real)($x);
                        let $imag = (0,
                            _imag.imag)($x);
                        $real = _engine.ENGINE.runKernel(_kernel_names.Transpose, {
                            x: $real
                        }, attrs);
                        $imag = _engine.ENGINE.runKernel(_kernel_names.Transpose, {
                            x: $imag
                        }, attrs);
                        if (conjugate) {
                            $imag = (0,
                                _neg.neg)($imag);
                        }
                        return (0,
                            _complex.complex)($real, $imag);
                    }
                    );
            }
            return _engine.ENGINE.runKernel(_kernel_names.Transpose, inputs, attrs);
        }
        const transpose = (0,
            _operation.op)({
                transpose_
            });
        exports.transpose = transpose;

    }
        , {
        "../engine": 77,
        "../globals": 81,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "../util": 509,
        "./complex": 240,
        "./imag": 298,
        "./neg": 365,
        "./operation": 372,
        "./real": 397
    }],
    478: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.truncatedNormal = void 0;
        var _util_base = require("../util_base");
        var _buffer = require("./buffer");
        var _operation = require("./operation");
        var _rand_util = require("./rand_util");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Creates a `tf.Tensor` with values sampled from a truncated normal
         * distribution.
         *
         * ```js
         * tf.truncatedNormal([2, 2]).print();
         * ```
         *
         * The generated values follow a normal distribution with specified mean and
         * standard deviation, except that values whose magnitude is more than 2
         * standard deviations from the mean are dropped and re-picked.
         *
         * @param shape An array of integers defining the output tensor shape.
         * @param mean The mean of the normal distribution.
         * @param stdDev The standard deviation of the normal distribution.
         * @param dtype The data type of the output tensor.
         * @param seed The seed for the random number generator.
         *
         * @doc {heading: 'Tensors', subheading: 'Creation'}
         */
        function truncatedNormal_(shape, mean = 0, stdDev = 1, dtype, seed) {
            (0,
                _util_base.assertNonNegativeIntegerDimensions)(shape);
            if (dtype != null && dtype === 'bool') {
                throw new Error(`Unsupported data type $ { dtype }`);
            }
            const randGauss = new _rand_util.MPRandGauss(mean, stdDev, dtype, true /* truncated */
                , seed);
            const res = (0,
                _buffer.buffer)(shape, dtype);
            for (let i = 0; i < res.values.length; i++) {
                res.values[i] = randGauss.nextValue();
            }
            return res.toTensor();
        }
        const truncatedNormal = (0,
            _operation.op)({
                truncatedNormal_
            });
        exports.truncatedNormal = truncatedNormal;

    }
        , {
        "../util_base": 510,
        "./buffer": 235,
        "./operation": 372,
        "./rand_util": 391
    }],
    479: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.unique = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _util = require("../util");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Finds unique elements along an axis of a tensor.
         *
         * It returns a tensor `values` containing all of the unique elements along the
         * `axis` of the given tensor `x` in the same order that they occur along the
         * `axis` in `x`; `x` does not need to be sorted. It also returns a tensor
         * `indices` the same size as the number of the elements in `x` along the `axis`
         * dimension. It contains the index in the unique output `values`.
         *
         * ```js
         * // A 1-D tensor
         * const a = tf.tensor1d([1, 1, 2, 4, 4, 4, 7, 8, 8]);
         * const {values, indices} = tf.unique(a);
         * values.print();   // [1, 2, 4, 7, 8,]
         * indices.print();  // [0, 0, 1, 2, 2, 2, 3, 4, 4]
         * ```
         *
         * ```js
         * // A 2-D tensor with axis=0
         * //
         * // 'a' is: [[1, 0, 0],
         * //          [1, 0, 0],
         * //          [2, 0, 0]]
         * const a = tf.tensor2d([[1, 0, 0], [1, 0, 0], [2, 0, 0]]);
         * const {values, indices} = tf.unique(a, 0)
         * values.print();   // [[1, 0, 0],
         *                   //  [2, 0, 0]]
         * indices.print();  // [0, 0, 1]
         * ```
         *
         * ```js
         * // A 2-D tensor with axis=1
         * //
         * // 'a' is: [[1, 0, 0],
         * //          [1, 0, 0],
         * //          [2, 0, 0]]
         * const a = tf.tensor2d([[1, 0, 0], [1, 0, 0], [2, 0, 0]]);
         * const {values, indices} = tf.unique(a, 1)
         * values.print();   // [[1, 0],
         *                   //  [1, 0],
         *                   //  [2, 0]]
         * indices.print();  // [0, 1, 1]
         * ```
         * @param x A tensor (int32, string, bool).
         * @param axis The axis of the tensor to find the unique elements.
         * @returns [uniqueElements, indices] (see above for details)
         *
         * @doc {heading: 'Operations', subheading: 'Evaluation'}
         */
        function unique_(x, axis = 0) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'unique', 'string_or_numeric');
            (0,
                _util.assert)($x.rank > 0, () => 'The input tensor must be at least 1D');
            const inputs = {
                x: $x
            };
            const attrs = {
                axis
            };
            const [values, indices] = _engine.ENGINE.runKernel(_kernel_names.Unique, inputs, attrs);
            return {
                values,
                indices
            };
        }
        const unique = (0,
            _operation.op)({
                unique_
            });
        exports.unique = unique;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "../util": 509,
        "./operation": 372
    }],
    480: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.unsortedSegmentSum = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _util = require("../util");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes the sum along segments of a `tf.Tensor`.
         *
         * ```js
         * const x = tf.tensor1d([1, 2, 3, 4]);
         * const segmentIds = tf.tensor1d([1, 2, 0, 1], 'int32');
         * const numSegments = 3;
         *
         * x.unsortedSegmentSum(segmentIds, numSegments).print()
         * //or tf.unsortedSegmentSum(x, segmentIds, numSegments)
         * ```
         * @param x The `tf.Tensor` that will be summed along its segments.
         * @param segmentIds A `tf.Tensor1D` whose rank is equal to the rank of `x`'s
         * dimension along the `axis`.  Maps each element of `x` to a segment.
         * @param numSegments The number of distinct `segmentIds`.
         *
         * @doc {heading: 'Operations', subheading: 'Segment'}
         */
        function unsortedSegmentSum_(x, segmentIds, numSegments) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'unsortedSegmentSum');
            const $segmentIds = (0,
                _tensor_util_env.convertToTensor)(segmentIds, 'segmentIds', 'unsortedSegmentSum', 'int32');
            (0,
                _util.assert)((0,
                    _util.isInt)(numSegments), () => 'numSegments must be of dtype int');
            const inputs = {
                x: $x,
                segmentIds: $segmentIds
            };
            const attrs = {
                numSegments
            };
            return _engine.ENGINE.runKernel(_kernel_names.UnsortedSegmentSum, inputs, attrs);
        }
        const unsortedSegmentSum = (0,
            _operation.op)({
                unsortedSegmentSum_
            });
        exports.unsortedSegmentSum = unsortedSegmentSum;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "../util": 509,
        "./operation": 372
    }],
    481: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.unstack = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var util = _interopRequireWildcard(require("../util"));
        var _operation = require("./operation");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Unstacks a `tf.Tensor` of rank-`R` into a list of rank-`(R-1)` `tf.Tensor`s.
         *
         * ```js
         * const a = tf.tensor2d([1, 2, 3, 4], [2, 2]);
         *
         * tf.unstack(a).forEach(tensor => tensor.print());
         * ```
         *
         * @param x A tensor object.
         * @param axis The axis to unstack along. Defaults to 0 (the first dim).
         *
         * @doc {heading: 'Tensors', subheading: 'Slicing and Joining'}
         */
        function unstack_(x, axis = 0) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'unstack', 'string_or_numeric');
            util.assert(axis >= -$x.shape.length && axis < $x.shape.length, () => `Axis = ${axis} is not in [-${$x.shape.length}, ${$x.shape.length})`);
            const inputs = {
                value: $x
            };
            const attrs = {
                axis
            };
            return _engine.ENGINE.runKernel(_kernel_names.Unpack, inputs, attrs);
        }
        const unstack = (0,
            _operation.op)({
                unstack_
            });
        exports.unstack = unstack;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "../util": 509,
        "./operation": 372
    }],
    482: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.upperBound = upperBound;
        var _search_sorted = require("./search_sorted");
        /**
         * @license
         * Copyright 2022 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Searches for where a value would go in a sorted sequence.
         *
         * This is not a method for checking containment (like javascript in).
         *
         * The typical use case for this operation is "binning", "bucketing", or
         * "discretizing". The values are assigned to bucket-indices based on the edges
         * listed in 'sortedSequence'. This operation returns the bucket-index for each
         * value.
         *
         * The index returned corresponds to the first edge greater than the value.
         *
         * The axis is not settable for this operation. It always operates on the
         * innermost dimension (axis=-1). The operation will accept any number of outer
         * dimensions.
         *
         * Note: This operation assumes that 'upperBound' is sorted along the
         * innermost axis, maybe using 'sort(..., axis=-1)'. If the sequence is not
         * sorted no error is raised and the content of the returned tensor is not well
         * defined.
         *
         * ```js
         * const seq = tf.tensor1d([0, 3, 9, 10, 10]);
         * const values = tf.tensor1d([0, 4, 10]);
         * const result = tf.upperBound(seq, values);
         * result.print(); // [1, 2, 5]
         * ```
         * @param sortedSequence: N-D. Sorted sequence.
         * @param values: N-D. Search values.
         * @return An N-D int32 tensor the size of values containing the result of
         *     applying upper bound to each value. The result is not a global index to
         *     the entire Tensor, but the index in the last dimension.
         * @doc {heading: 'Operations', subheading: 'Evaluation'}
         */
        function upperBound(sortedSequence, values) {
            return (0,
                _search_sorted.searchSorted)(sortedSequence, values, 'right');
        }

    }
        , {
        "./search_sorted": 414
    }],
    483: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.variable = variable;
        var _engine = require("../engine");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Creates a new variable with the provided initial value.
         * ```js
         * const x = tf.variable(tf.tensor([1, 2, 3]));
         * x.assign(tf.tensor([4, 5, 6]));
         *
         * x.print();
         * ```
         *
         * @param initialValue Initial value for the tensor.
         * @param trainable If true, optimizers are allowed to update it.
         * @param name Name of the variable. Defaults to a unique id.
         * @param dtype If set, initialValue will be converted to the given type.
         *
         * @doc {heading: 'Tensors', subheading: 'Creation'}
         */
        function variable(initialValue, trainable = true, name, dtype) {
            return _engine.ENGINE.makeVariable(initialValue, trainable, name, dtype);
        }

    }
        , {
        "../engine": 77
    }],
    484: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.where = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _broadcast_to = require("./broadcast_to");
        var _broadcast_util = require("./broadcast_util");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Returns the elements, either `a` or `b` depending on the `condition`.
         *
         * If the condition is true, select from `a`, otherwise select from `b`.
         *
         * ```js
         * const cond = tf.tensor1d([false, false, true], 'bool');
         * const a = tf.tensor1d([1 , 2, 3]);
         * const b = tf.tensor1d([-1, -2, -3]);
         *
         * a.where(cond, b).print();
         * ```
         *
         * @param condition The input condition. Must be of dtype bool.
         * @param a If `condition` is rank 1, `a` may have a higher rank but
         *     its first dimension must match the size of `condition`.
         * @param b A tensor with the same dtype as `a` and with shape that is
         *     compatible with `a`.
         * @return A tensor with same dtype as `a` and `b`, and shape that is
         *     broadcastable from `a` and `b`.
         *
         * @doc {heading: 'Operations', subheading: 'Logical'}
         */
        function where_(condition, a, b) {
            const $a = (0,
                _tensor_util_env.convertToTensor)(a, 'a', 'where');
            const $b = (0,
                _tensor_util_env.convertToTensor)(b, 'b', 'where');
            const $condition = (0,
                _tensor_util_env.convertToTensor)(condition, 'condition', 'where', 'bool');
            // TODO: move this logic to forward function when the broadcastTo op is
            // implemented in WASM.
            // Find the broadcastable shape for $condition, $a, and $b.
            const broadcastShape = (0,
                _broadcast_util.assertAndGetBroadcastShape)((0,
                    _broadcast_util.assertAndGetBroadcastShape)($condition.shape, $a.shape), $b.shape);
            const $broadcastedCondition = (0,
                _broadcast_to.broadcastTo)($condition, broadcastShape);
            const $broadcastedA = (0,
                _broadcast_to.broadcastTo)($a, broadcastShape);
            const $broadcastedB = (0,
                _broadcast_to.broadcastTo)($b, broadcastShape);
            const inputs = {
                condition: $broadcastedCondition,
                t: $broadcastedA,
                e: $broadcastedB
            };
            return _engine.ENGINE.runKernel(_kernel_names.Select, inputs);
        }
        const where = (0,
            _operation.op)({
                where_
            });
        exports.where = where;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./broadcast_to": 232,
        "./broadcast_util": 233,
        "./operation": 372
    }],
    485: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.whereAsync = void 0;
        var _where_impl = require("../backends/where_impl");
        var _tensor_util_env = require("../tensor_util_env");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Returns the coordinates of true elements of condition.
         *
         * The coordinates are returned in a 2-D tensor where the first dimension (rows)
         * represents the number of true elements, and the second dimension (columns)
         * represents the coordinates of the true elements. Keep in mind, the shape of
         * the output tensor can vary depending on how many true values there are in
         * input. Indices are output in row-major order. The resulting tensor has the
         * shape `[numTrueElems, condition.rank]`.
         *
         * This is analogous to calling the python `tf.where(cond)` without an x or y.
         *
         * ```js
         * const cond = tf.tensor1d([false, false, true], 'bool');
         * const result = await tf.whereAsync(cond);
         * result.print();
         * ```
         *
         * @doc {heading: 'Operations', subheading: 'Logical'}
         */
        async function whereAsync_(condition) {
            const $condition = (0,
                _tensor_util_env.convertToTensor)(condition, 'condition', 'whereAsync', 'bool');
            const vals = await $condition.data();
            const res = (0,
                _where_impl.whereImpl)($condition.shape, vals);
            if (condition !== $condition) {
                $condition.dispose();
            }
            return res;
        }
        const whereAsync = whereAsync_;
        exports.whereAsync = whereAsync;

    }
        , {
        "../backends/where_impl": 73,
        "../tensor_util_env": 504
    }],
    486: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.zeros = zeros;
        var _engine = require("../engine");
        var _util = require("../util");
        var _complex = require("./complex");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Creates a `tf.Tensor` with all elements set to 0.
         *
         * ```js
         * tf.zeros([2, 2]).print();
         * ```
         *
         * @param shape An array of integers defining the output tensor shape.
         * @param dtype The type of an element in the resulting tensor. Can
         *     be 'float32', 'int32' or 'bool'. Defaults to 'float'.
         *
         * @doc {heading: 'Tensors', subheading: 'Creation'}
         */
        function zeros(shape, dtype = 'float32') {
            (0,
                _util.assertNonNegativeIntegerDimensions)(shape);
            if (dtype === 'complex64') {
                const real = zeros(shape, 'float32');
                const imag = zeros(shape, 'float32');
                return (0,
                    _complex.complex)(real, imag);
            }
            const values = (0,
                _util.makeZerosTypedArray)((0,
                    _util.sizeFromShape)(shape), dtype);
            return _engine.ENGINE.makeTensor(values, shape, dtype);
        }

    }
        , {
        "../engine": 77,
        "../util": 509,
        "./complex": 240
    }],
    487: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.zerosLike = void 0;
        var _engine = require("../engine");
        var _kernel_names = require("../kernel_names");
        var _tensor_util_env = require("../tensor_util_env");
        var _operation = require("./operation");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Creates a `tf.Tensor` with all elements set to 0 with the same shape as the
         * given tensor.
         *
         * ```js
         * const x = tf.tensor([1, 2]);
         * tf.zerosLike(x).print();
         * ```
         *
         * @param x The tensor of required shape.
         *
         * @doc {heading: 'Tensors', subheading: 'Creation'}
         */
        function zerosLike_(x) {
            const $x = (0,
                _tensor_util_env.convertToTensor)(x, 'x', 'zerosLike');
            const inputs = {
                x: $x
            };
            return _engine.ENGINE.runKernel(_kernel_names.ZerosLike, inputs);
        }
        const zerosLike = (0,
            _operation.op)({
                zerosLike_
            });
        exports.zerosLike = zerosLike;

    }
        , {
        "../engine": 77,
        "../kernel_names": 198,
        "../tensor_util_env": 504,
        "./operation": 372
    }],
    488: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.AdadeltaOptimizer = void 0;
        var _engine = require("../engine");
        var _globals = require("../globals");
        var _add = require("../ops/add");
        var _div = require("../ops/div");
        var _mul = require("../ops/mul");
        var _ops = require("../ops/ops");
        var _square = require("../ops/square");
        var _zeros_like = require("../ops/zeros_like");
        var _serialization = require("../serialization");
        var _optimizer = require("./optimizer");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /** @doclink Optimizer */
        class AdadeltaOptimizer extends _optimizer.Optimizer {
            constructor(learningRate, rho, epsilon = null) {
                super();
                this.learningRate = learningRate;
                this.rho = rho;
                this.epsilon = epsilon;
                this.accumulatedGrads = [];
                this.accumulatedUpdates = [];
                if (epsilon == null) {
                    this.epsilon = _engine.ENGINE.backend.epsilon();
                }
            }
            applyGradients(variableGradients) {
                const variableNames = Array.isArray(variableGradients) ? variableGradients.map(item => item.name) : Object.keys(variableGradients);
                variableNames.forEach((name, i) => {
                    const value = _engine.ENGINE.registeredVariables[name];
                    const trainable = false;
                    if (this.accumulatedGrads[i] == null) {
                        this.accumulatedGrads[i] = {
                            originalName: `${name}/accum_grad`,
                            variable: (0,
                                _globals.tidy)(() => (0,
                                    _zeros_like.zerosLike)(value).variable(trainable))
                        };
                    }
                    if (this.accumulatedUpdates[i] == null) {
                        this.accumulatedUpdates[i] = {
                            originalName: `${name}/accum_var`,
                            variable: (0,
                                _globals.tidy)(() => (0,
                                    _zeros_like.zerosLike)(value).variable(trainable))
                        };
                    }
                    const gradient = Array.isArray(variableGradients) ? variableGradients[i].tensor : variableGradients[name];
                    if (gradient == null) {
                        return;
                    }
                    const accumulatedGrad = this.accumulatedGrads[i].variable;
                    const accumulatedUpdate = this.accumulatedUpdates[i].variable;
                    (0,
                        _globals.tidy)(() => {
                            const newAccumulatedGrad = (0,
                                _add.add)((0,
                                    _mul.mul)(accumulatedGrad, this.rho), (0,
                                        _mul.mul)((0,
                                            _square.square)(gradient), 1 - this.rho));
                            const updates = (0,
                                _mul.mul)((0,
                                    _div.div)((0,
                                        _ops.sqrt)((0,
                                            _add.add)(accumulatedUpdate, this.epsilon)), (0,
                                                _ops.sqrt)((0,
                                                    _add.add)(accumulatedGrad, this.epsilon))), gradient);
                            const newAccumulatedUpdate = (0,
                                _add.add)((0,
                                    _mul.mul)(accumulatedUpdate, this.rho), (0,
                                        _mul.mul)((0,
                                            _square.square)(updates), 1 - this.rho));
                            accumulatedGrad.assign(newAccumulatedGrad);
                            accumulatedUpdate.assign(newAccumulatedUpdate);
                            const newValue = (0,
                                _add.add)((0,
                                    _mul.mul)(updates, -this.learningRate), value);
                            value.assign(newValue);
                        }
                        );
                }
                );
                this.incrementIterations();
            }
            dispose() {
                if (this.accumulatedUpdates != null) {
                    (0,
                        _globals.dispose)(this.accumulatedGrads.map(v => v.variable));
                    (0,
                        _globals.dispose)(this.accumulatedUpdates.map(v => v.variable));
                }
            }
            async getWeights() {
                // Order matters for Python compatibility.
                const variables = [...this.accumulatedGrads, ...this.accumulatedUpdates];
                return [await this.saveIterations()].concat(variables.map(v => ({
                    name: v.originalName,
                    tensor: v.variable
                })));
            }
            async setWeights(weightValues) {
                weightValues = await this.extractIterations(weightValues);
                const variableCount = weightValues.length / 2;
                const trainable = false;
                this.accumulatedGrads = weightValues.slice(0, variableCount).map(v => ({
                    originalName: v.name,
                    variable: v.tensor.variable(trainable)
                }));
                this.accumulatedUpdates = weightValues.slice(variableCount, variableCount * 2).map(v => ({
                    originalName: v.name,
                    variable: v.tensor.variable(trainable)
                }));
            }
            getConfig() {
                return {
                    'learningRate': this.learningRate,
                    'rho': this.rho,
                    'epsilon': this.epsilon
                };
            }
            /** @nocollapse */
            static fromConfig(cls, config) {
                return new cls(config['learningRate'], config['rho'], config['epsilon']);
            }
        }
        /** @nocollapse */
        exports.AdadeltaOptimizer = AdadeltaOptimizer;
        AdadeltaOptimizer.className = 'Adadelta';
        // Name matters for Python compatibility.
        (0,
            _serialization.registerClass)(AdadeltaOptimizer);

    }
        , {
        "../engine": 77,
        "../globals": 81,
        "../ops/add": 205,
        "../ops/div": 269,
        "../ops/mul": 362,
        "../ops/ops": 373,
        "../ops/square": 454,
        "../ops/zeros_like": 487,
        "../serialization": 499,
        "./optimizer": 493
    }],
    489: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.AdagradOptimizer = void 0;
        var _engine = require("../engine");
        var _globals = require("../globals");
        var _add = require("../ops/add");
        var _div = require("../ops/div");
        var _fill = require("../ops/fill");
        var _mul = require("../ops/mul");
        var _sqrt = require("../ops/sqrt");
        var _square = require("../ops/square");
        var _serialization = require("../serialization");
        var _optimizer = require("./optimizer");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /** @doclink Optimizer */
        class AdagradOptimizer extends _optimizer.Optimizer {
            constructor(learningRate, initialAccumulatorValue = 0.1) {
                super();
                this.learningRate = learningRate;
                this.initialAccumulatorValue = initialAccumulatorValue;
                this.accumulatedGrads = [];
            }
            applyGradients(variableGradients) {
                const variableNames = Array.isArray(variableGradients) ? variableGradients.map(item => item.name) : Object.keys(variableGradients);
                variableNames.forEach((name, i) => {
                    const value = _engine.ENGINE.registeredVariables[name];
                    if (this.accumulatedGrads[i] == null) {
                        const trainable = false;
                        this.accumulatedGrads[i] = {
                            originalName: `${name}/accumulator`,
                            variable: (0,
                                _globals.tidy)(() => (0,
                                    _fill.fill)(value.shape, this.initialAccumulatorValue).variable(trainable))
                        };
                    }
                    const gradient = Array.isArray(variableGradients) ? variableGradients[i].tensor : variableGradients[name];
                    if (gradient == null) {
                        return;
                    }
                    const accumulatedGrad = this.accumulatedGrads[i].variable;
                    (0,
                        _globals.tidy)(() => {
                            const newAccumulatedGrad = (0,
                                _add.add)(accumulatedGrad, (0,
                                    _square.square)(gradient));
                            accumulatedGrad.assign(newAccumulatedGrad);
                            const newValue = (0,
                                _add.add)((0,
                                    _mul.mul)((0,
                                        _div.div)(gradient, (0,
                                            _sqrt.sqrt)((0,
                                                _add.add)(newAccumulatedGrad, _engine.ENGINE.backend.epsilon()))), -this.learningRate), value);
                            value.assign(newValue);
                        }
                        );
                }
                );
                this.incrementIterations();
            }
            dispose() {
                if (this.accumulatedGrads != null) {
                    (0,
                        _globals.dispose)(this.accumulatedGrads.map(v => v.variable));
                }
            }
            async getWeights() {
                // Order matters for Python compatibility.
                return [await this.saveIterations()].concat(this.accumulatedGrads.map(v => ({
                    name: v.originalName,
                    tensor: v.variable
                })));
            }
            async setWeights(weightValues) {
                weightValues = await this.extractIterations(weightValues);
                const trainable = false;
                this.accumulatedGrads = weightValues.map(v => ({
                    originalName: v.name,
                    variable: v.tensor.variable(trainable)
                }));
            }
            getConfig() {
                return {
                    'learningRate': this.learningRate,
                    'initialAccumulatorValue': this.initialAccumulatorValue
                };
            }
            /** @nocollapse */
            static fromConfig(cls, config) {
                return new cls(config['learningRate'], config['initialAccumulatorValue']);
            }
        }
        /** @nocollapse */
        exports.AdagradOptimizer = AdagradOptimizer;
        AdagradOptimizer.className = 'Adagrad';
        // Note: Name matters for Python compatibility.
        (0,
            _serialization.registerClass)(AdagradOptimizer);

    }
        , {
        "../engine": 77,
        "../globals": 81,
        "../ops/add": 205,
        "../ops/div": 269,
        "../ops/fill": 284,
        "../ops/mul": 362,
        "../ops/sqrt": 453,
        "../ops/square": 454,
        "../serialization": 499,
        "./optimizer": 493
    }],
    490: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.AdamOptimizer = void 0;
        var _engine = require("../engine");
        var _globals = require("../globals");
        var _add = require("../ops/add");
        var _div = require("../ops/div");
        var _mul = require("../ops/mul");
        var _pow = require("../ops/pow");
        var _scalar = require("../ops/scalar");
        var _sqrt = require("../ops/sqrt");
        var _square = require("../ops/square");
        var _sub = require("../ops/sub");
        var _zeros_like = require("../ops/zeros_like");
        var _serialization = require("../serialization");
        var _optimizer = require("./optimizer");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        class AdamOptimizer extends _optimizer.Optimizer {
            constructor(learningRate, beta1, beta2, epsilon = null) {
                super();
                this.learningRate = learningRate;
                this.beta1 = beta1;
                this.beta2 = beta2;
                this.epsilon = epsilon;
                this.accumulatedFirstMoment = [];
                this.accumulatedSecondMoment = [];
                (0,
                    _globals.tidy)(() => {
                        // accB* will be updated by batch.
                        this.accBeta1 = (0,
                            _scalar.scalar)(beta1).variable();
                        this.accBeta2 = (0,
                            _scalar.scalar)(beta2).variable();
                    }
                    );
                if (epsilon == null) {
                    this.epsilon = _engine.ENGINE.backend.epsilon();
                }
            }
            applyGradients(variableGradients) {
                const varNames = Array.isArray(variableGradients) ? variableGradients.map(v => v.name) : Object.keys(variableGradients);
                (0,
                    _globals.tidy)(() => {
                        const oneMinusAccBeta1 = (0,
                            _sub.sub)(1, this.accBeta1);
                        const oneMinusAccBeta2 = (0,
                            _sub.sub)(1, this.accBeta2);
                        varNames.forEach((name, i) => {
                            const value = _engine.ENGINE.registeredVariables[name];
                            const trainable = false;
                            if (this.accumulatedFirstMoment[i] == null) {
                                this.accumulatedFirstMoment[i] = {
                                    originalName: `${name}/m`,
                                    variable: (0,
                                        _globals.tidy)(() => (0,
                                            _zeros_like.zerosLike)(value).variable(trainable))
                                };
                            }
                            if (this.accumulatedSecondMoment[i] == null) {
                                this.accumulatedSecondMoment[i] = {
                                    originalName: `${name}/v`,
                                    variable: (0,
                                        _globals.tidy)(() => (0,
                                            _zeros_like.zerosLike)(value).variable(trainable))
                                };
                            }
                            const gradient = Array.isArray(variableGradients) ? variableGradients[i].tensor : variableGradients[name];
                            if (gradient == null) {
                                return;
                            }
                            const firstMoment = this.accumulatedFirstMoment[i].variable;
                            const secondMoment = this.accumulatedSecondMoment[i].variable;
                            const newFirstMoment = (0,
                                _add.add)((0,
                                    _mul.mul)(firstMoment, this.beta1), (0,
                                        _mul.mul)(gradient, 1 - this.beta1));
                            const newSecondMoment = (0,
                                _add.add)((0,
                                    _mul.mul)(secondMoment, this.beta2), (0,
                                        _mul.mul)((0,
                                            _square.square)(gradient), 1 - this.beta2));
                            const biasCorrectedFirstMoment = (0,
                                _div.div)(newFirstMoment, oneMinusAccBeta1);
                            const biasCorrectedSecondMoment = (0,
                                _div.div)(newSecondMoment, oneMinusAccBeta2);
                            firstMoment.assign(newFirstMoment);
                            secondMoment.assign(newSecondMoment);
                            const newValue = (0,
                                _add.add)((0,
                                    _mul.mul)((0,
                                        _div.div)(biasCorrectedFirstMoment, (0,
                                            _add.add)((0,
                                                _sqrt.sqrt)(biasCorrectedSecondMoment), this.epsilon)), -this.learningRate), value);
                            value.assign(newValue);
                        }
                        );
                        this.accBeta1.assign((0,
                            _mul.mul)(this.accBeta1, this.beta1));
                        this.accBeta2.assign((0,
                            _mul.mul)(this.accBeta2, this.beta2));
                    }
                    );
                this.incrementIterations();
            }
            dispose() {
                this.accBeta1.dispose();
                this.accBeta2.dispose();
                if (this.accumulatedFirstMoment != null) {
                    (0,
                        _globals.dispose)(this.accumulatedFirstMoment.map(v => v.variable));
                }
                if (this.accumulatedSecondMoment != null) {
                    (0,
                        _globals.dispose)(this.accumulatedSecondMoment.map(v => v.variable));
                }
            }
            async getWeights() {
                // Order matters for Python compatibility.
                const variables = [...this.accumulatedFirstMoment, ...this.accumulatedSecondMoment];
                return [await this.saveIterations()].concat(variables.map(v => ({
                    name: v.originalName,
                    tensor: v.variable
                })));
            }
            async setWeights(weightValues) {
                weightValues = await this.extractIterations(weightValues);
                (0,
                    _globals.tidy)(() => {
                        this.accBeta1.assign((0,
                            _pow.pow)(this.beta1, this.iterations_ + 1));
                        this.accBeta2.assign((0,
                            _pow.pow)(this.beta2, this.iterations_ + 1));
                    }
                    );
                const variableCount = weightValues.length / 2;
                const trainable = false;
                this.accumulatedFirstMoment = weightValues.slice(0, variableCount).map(v => ({
                    originalName: v.name,
                    variable: v.tensor.variable(trainable)
                }));
                this.accumulatedSecondMoment = weightValues.slice(variableCount, variableCount * 2).map(v => ({
                    originalName: v.name,
                    variable: v.tensor.variable(trainable)
                }));
            }
            getConfig() {
                return {
                    'learningRate': this.learningRate,
                    'beta1': this.beta1,
                    'beta2': this.beta2,
                    'epsilon': this.epsilon
                };
            }
            /** @nocollapse */
            static fromConfig(cls, config) {
                return new cls(config['learningRate'], config['beta1'], config['beta2'], config['epsilon']);
            }
        }
        /** @nocollapse */
        exports.AdamOptimizer = AdamOptimizer;
        AdamOptimizer.className = 'Adam';
        // Note: Name matters for Python compatibility.
        (0,
            _serialization.registerClass)(AdamOptimizer);

    }
        , {
        "../engine": 77,
        "../globals": 81,
        "../ops/add": 205,
        "../ops/div": 269,
        "../ops/mul": 362,
        "../ops/pow": 382,
        "../ops/scalar": 411,
        "../ops/sqrt": 453,
        "../ops/square": 454,
        "../ops/sub": 463,
        "../ops/zeros_like": 487,
        "../serialization": 499,
        "./optimizer": 493
    }],
    491: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.AdamaxOptimizer = void 0;
        var _engine = require("../engine");
        var _globals = require("../globals");
        var _abs = require("../ops/abs");
        var _add = require("../ops/add");
        var _div = require("../ops/div");
        var _maximum = require("../ops/maximum");
        var _mul = require("../ops/mul");
        var _scalar = require("../ops/scalar");
        var _sub = require("../ops/sub");
        var _zeros_like = require("../ops/zeros_like");
        var _serialization = require("../serialization");
        var _optimizer = require("./optimizer");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        class AdamaxOptimizer extends _optimizer.Optimizer {
            constructor(learningRate, beta1, beta2, epsilon = null, decay = 0.0) {
                super();
                this.learningRate = learningRate;
                this.beta1 = beta1;
                this.beta2 = beta2;
                this.epsilon = epsilon;
                this.decay = decay;
                this.accumulatedFirstMoment = [];
                this.accumulatedWeightedInfNorm = [];
                (0,
                    _globals.tidy)(() => {
                        this.iteration = (0,
                            _scalar.scalar)(0).variable();
                        this.accBeta1 = (0,
                            _scalar.scalar)(beta1).variable();
                    }
                    );
                if (epsilon == null) {
                    this.epsilon = _engine.ENGINE.backend.epsilon();
                }
            }
            applyGradients(variableGradients) {
                const variableNames = Array.isArray(variableGradients) ? variableGradients.map(item => item.name) : Object.keys(variableGradients);
                (0,
                    _globals.tidy)(() => {
                        const oneMinusAccBeta1 = (0,
                            _sub.sub)(1, this.accBeta1);
                        const lr = (0,
                            _div.div)(-this.learningRate, (0,
                                _add.add)((0,
                                    _mul.mul)(this.iteration, this.decay), 1));
                        variableNames.forEach((name, i) => {
                            const value = _engine.ENGINE.registeredVariables[name];
                            const trainable = false;
                            if (this.accumulatedFirstMoment[i] == null) {
                                this.accumulatedFirstMoment[i] = {
                                    originalName: `${name}/m`,
                                    variable: (0,
                                        _zeros_like.zerosLike)(value).variable(trainable)
                                };
                            }
                            if (this.accumulatedWeightedInfNorm[i] == null) {
                                this.accumulatedWeightedInfNorm[i] = {
                                    originalName: `${name}/v`,
                                    variable: (0,
                                        _zeros_like.zerosLike)(value).variable(trainable)
                                };
                            }
                            const gradient = Array.isArray(variableGradients) ? variableGradients[i].tensor : variableGradients[name];
                            if (gradient == null) {
                                return;
                            }
                            const firstMoment = this.accumulatedFirstMoment[i].variable;
                            const weightedInfNorm = this.accumulatedWeightedInfNorm[i].variable;
                            const newFirstMoment = (0,
                                _add.add)((0,
                                    _mul.mul)(firstMoment, this.beta1), (0,
                                        _mul.mul)(gradient, 1 - this.beta1));
                            const ut0 = (0,
                                _mul.mul)(weightedInfNorm, this.beta2);
                            const ut1 = (0,
                                _abs.abs)(gradient);
                            const newWeightedInfNorm = (0,
                                _maximum.maximum)(ut0, ut1);
                            firstMoment.assign(newFirstMoment);
                            weightedInfNorm.assign(newWeightedInfNorm);
                            const newValue = (0,
                                _add.add)((0,
                                    _mul.mul)((0,
                                        _div.div)(lr, oneMinusAccBeta1), (0,
                                            _div.div)(newFirstMoment, (0,
                                                _add.add)(newWeightedInfNorm, this.epsilon))), value);
                            value.assign(newValue);
                        }
                        );
                        this.iteration.assign((0,
                            _add.add)(this.iteration, 1));
                        this.accBeta1.assign((0,
                            _mul.mul)(this.accBeta1, this.beta1));
                    }
                    );
                this.incrementIterations();
            }
            dispose() {
                this.accBeta1.dispose();
                this.iteration.dispose();
                if (this.accumulatedFirstMoment != null) {
                    (0,
                        _globals.dispose)(this.accumulatedFirstMoment.map(v => v.variable));
                }
                if (this.accumulatedWeightedInfNorm != null) {
                    (0,
                        _globals.dispose)(this.accumulatedWeightedInfNorm.map(v => v.variable));
                }
            }
            async getWeights() {
                throw new Error('getWeights() is not implemented for Adamax yet.');
            }
            async setWeights(weightValues) {
                throw new Error('setWeights() is not implemented for Adamax yet.');
            }
            getConfig() {
                return {
                    'learningRate': this.learningRate,
                    'beta1': this.beta1,
                    'beta2': this.beta2,
                    'epsilon': this.epsilon,
                    'decay': this.decay
                };
            }
            /** @nocollapse */
            static fromConfig(cls, config) {
                return new cls(config['learningRate'], config['beta1'], config['beta2'], config['epsilon'], config['decay']);
            }
        }
        /** @nocollapse */
        exports.AdamaxOptimizer = AdamaxOptimizer;
        AdamaxOptimizer.className = 'Adamax';
        // Note: Name matters for Python compatbility.
        (0,
            _serialization.registerClass)(AdamaxOptimizer);

    }
        , {
        "../engine": 77,
        "../globals": 81,
        "../ops/abs": 202,
        "../ops/add": 205,
        "../ops/div": 269,
        "../ops/maximum": 353,
        "../ops/mul": 362,
        "../ops/scalar": 411,
        "../ops/sub": 463,
        "../ops/zeros_like": 487,
        "../serialization": 499,
        "./optimizer": 493
    }],
    492: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.MomentumOptimizer = void 0;
        var _engine = require("../engine");
        var _globals = require("../globals");
        var _add = require("../ops/add");
        var _mul = require("../ops/mul");
        var _scalar = require("../ops/scalar");
        var _zeros_like = require("../ops/zeros_like");
        var _serialization = require("../serialization");
        var _sgd_optimizer = require("./sgd_optimizer");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /** @doclink Optimizer */
        class MomentumOptimizer extends _sgd_optimizer.SGDOptimizer {
            constructor(learningRate, momentum, useNesterov = false) {
                super(learningRate);
                this.learningRate = learningRate;
                this.momentum = momentum;
                this.useNesterov = useNesterov;
                this.accumulations = [];
                this.m = (0,
                    _scalar.scalar)(this.momentum);
            }
            applyGradients(variableGradients) {
                const variableNames = Array.isArray(variableGradients) ? variableGradients.map(item => item.name) : Object.keys(variableGradients);
                variableNames.forEach((name, i) => {
                    const value = _engine.ENGINE.registeredVariables[name];
                    if (this.accumulations[i] == null) {
                        const trainable = false;
                        this.accumulations[i] = {
                            originalName: `${name}/momentum`,
                            variable: (0,
                                _globals.tidy)(() => (0,
                                    _zeros_like.zerosLike)(value).variable(trainable))
                        };
                    }
                    const accumulation = this.accumulations[i].variable;
                    const gradient = Array.isArray(variableGradients) ? variableGradients[i].tensor : variableGradients[name];
                    if (gradient == null) {
                        return;
                    }
                    (0,
                        _globals.tidy)(() => {
                            let newValue;
                            const newAccumulation = (0,
                                _add.add)((0,
                                    _mul.mul)(this.m, accumulation), gradient);
                            if (this.useNesterov) {
                                newValue = (0,
                                    _add.add)((0,
                                        _mul.mul)(this.c, (0,
                                            _add.add)(gradient, (0,
                                                _mul.mul)(newAccumulation, this.m))), value);
                            } else {
                                newValue = (0,
                                    _add.add)((0,
                                        _mul.mul)(this.c, newAccumulation), value);
                            }
                            accumulation.assign(newAccumulation);
                            value.assign(newValue);
                        }
                        );
                }
                );
                this.incrementIterations();
            }
            dispose() {
                this.m.dispose();
                if (this.accumulations != null) {
                    (0,
                        _globals.dispose)(this.accumulations.map(v => v.variable));
                }
            }
            /**
             * Sets the momentum of the optimizer.
             *
             * @param momentum
             */
            setMomentum(momentum) {
                this.momentum = momentum;
            }
            async getWeights() {
                // Order matters for Python compatibility.
                return [await this.saveIterations()].concat(this.accumulations.map(v => ({
                    name: v.originalName,
                    tensor: v.variable
                })));
            }
            async setWeights(weightValues) {
                weightValues = await this.extractIterations(weightValues);
                const trainable = false;
                this.accumulations = weightValues.map(v => ({
                    originalName: v.name,
                    variable: v.tensor.variable(trainable)
                }));
            }
            getConfig() {
                return {
                    'learningRate': this.learningRate,
                    'momentum': this.momentum,
                    'useNesterov': this.useNesterov
                };
            }
            /** @nocollapse */
            static fromConfig(cls, config) {
                return new cls(config['learningRate'], config['momentum'], config['useNesterov']);
            }
        }
        /** @nocollapse */
        // Name matters for Python compatibility.
        exports.MomentumOptimizer = MomentumOptimizer;
        MomentumOptimizer.className = 'Momentum';
        (0,
            _serialization.registerClass)(MomentumOptimizer);

    }
        , {
        "../engine": 77,
        "../globals": 81,
        "../ops/add": 205,
        "../ops/mul": 362,
        "../ops/scalar": 411,
        "../ops/zeros_like": 487,
        "../serialization": 499,
        "./sgd_optimizer": 496
    }],
    493: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.Optimizer = void 0;
        var _globals = require("../globals");
        var _gradients = require("../gradients");
        var _ops = require("../ops/ops");
        var _serialization = require("../serialization");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /** @doc {heading: 'Training', subheading: 'Classes', namespace: 'train'} */
        class Optimizer extends _serialization.Serializable {
            /**
             * Executes `f()` and minimizes the scalar output of `f()` by computing
             * gradients of y with respect to the list of trainable variables provided by
             * `varList`. If no list is provided, it defaults to all trainable variables.
             *
             * @param f The function to execute and whose output to minimize.
             * @param returnCost Whether to return the scalar cost value produced by
             * executing `f()`.
             * @param varList An optional list of variables to update. If specified, only
             * the trainable variables in varList will be updated by minimize. Defaults to
             * all trainable variables.
             *
             * @doc {heading: 'Training', subheading: 'Optimizers'}
             */
            minimize(f, returnCost = false, varList) {
                const { value, grads } = this.computeGradients(f, varList);
                if (varList != null) {
                    const gradArray = varList.map(v => ({
                        name: v.name,
                        tensor: grads[v.name]
                    }));
                    this.applyGradients(gradArray);
                } else {
                    this.applyGradients(grads);
                }
                // Dispose gradients.
                (0,
                    _globals.dispose)(grads);
                if (returnCost) {
                    return value;
                } else {
                    value.dispose();
                    return null;
                }
            }
            /**
             * The number of iterations that this optimizer instance has been invoked for.
             */
            get iterations() {
                if (this.iterations_ == null) {
                    this.iterations_ = 0;
                }
                return this.iterations_;
            }
            incrementIterations() {
                this.iterations_ = this.iterations + 1;
            }
            /**
             * Executes f() and computes the gradient of the scalar output of f() with
             * respect to the list of trainable variables provided by `varList`. If no
             * list is provided, it defaults to all trainable variables.
             *
             * @param f The function to execute and whose output to use for computing
             * gradients with respect to variables.
             * @param varList An optional list of variables to compute gradients with
             * respect to. If specified, only the trainable variables in varList will have
             * gradients computed with respect to. Defaults to all trainable variables.
             *
             * @doc {heading: 'Training', subheading: 'Optimizers'}
             */
            computeGradients(f, varList) {
                return (0,
                    _gradients.variableGrads)(f, varList);
            }
            /**
             * Dispose the variables (if any) owned by this optimizer instance.
             */
            dispose() {
                if (this.iterations_ != null) {
                    (0,
                        _globals.dispose)(this.iterations_);
                }
            }
            async saveIterations() {
                if (this.iterations_ == null) {
                    this.iterations_ = 0;
                }
                return {
                    name: 'iter',
                    // TODO(cais): Use 'int64' type when available.
                    tensor: (0,
                        _ops.scalar)(this.iterations_, 'int32')
                };
            }
            async getWeights() {
                throw new Error('getWeights() is not implemented for this optimizer yet.');
            }
            async setWeights(weightValues) {
                throw new Error(`setWeights() is not implemented for this optimizer class ` + `${this.getClassName()}`);
            }
            /**
             * Extract the first element of the weight values and set it
             * as the iterations counter variable of this instance of optimizer.
             *
             * @param weightValues
             * @returns Weight values with the first element consumed and excluded.
             */
            async extractIterations(weightValues) {
                this.iterations_ = (await weightValues[0].tensor.data())[0];
                return weightValues.slice(1);
            }
        }
        exports.Optimizer = Optimizer;
        Object.defineProperty(Optimizer, Symbol.hasInstance, {
            value: instance => {
                return instance.minimize != null && instance.computeGradients != null && instance.applyGradients != null;
            }
        });

    }
        , {
        "../globals": 81,
        "../gradients": 82,
        "../ops/ops": 373,
        "../serialization": 499
    }],
    494: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.OptimizerConstructors = void 0;
        var _adadelta_optimizer = require("./adadelta_optimizer");
        var _adagrad_optimizer = require("./adagrad_optimizer");
        var _adam_optimizer = require("./adam_optimizer");
        var _adamax_optimizer = require("./adamax_optimizer");
        var _momentum_optimizer = require("./momentum_optimizer");
        var _rmsprop_optimizer = require("./rmsprop_optimizer");
        var _sgd_optimizer = require("./sgd_optimizer");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        class OptimizerConstructors {
            /**
             * Constructs a `tf.SGDOptimizer` that uses stochastic gradient descent.
             *
             * ```js
             * // Fit a quadratic function by learning the coefficients a, b, c.
             * const xs = tf.tensor1d([0, 1, 2, 3]);
             * const ys = tf.tensor1d([1.1, 5.9, 16.8, 33.9]);
             *
             * const a = tf.scalar(Math.random()).variable();
             * const b = tf.scalar(Math.random()).variable();
             * const c = tf.scalar(Math.random()).variable();
             *
             * // y = a * x^2 + b * x + c.
             * const f = x => a.mul(x.square()).add(b.mul(x)).add(c);
             * const loss = (pred, label) => pred.sub(label).square().mean();
             *
             * const learningRate = 0.01;
             * const optimizer = tf.train.sgd(learningRate);
             *
             * // Train the model.
             * for (let i = 0; i < 10; i++) {
             *   optimizer.minimize(() => loss(f(xs), ys));
             * }
             *
             * // Make predictions.
             * console.log(
             *     `a: ${a.dataSync()}, b: ${b.dataSync()}, c: ${c.dataSync()}`);
             * const preds = f(xs).dataSync();
             * preds.forEach((pred, i) => {
             *   console.log(`x: ${i}, pred: ${pred}`);
             * });
             * ```
             *
             * @param learningRate The learning rate to use for the SGD algorithm.
             *
             * @doc {heading: 'Training', subheading: 'Optimizers', namespace: 'train'}
             */
            static sgd(learningRate) {
                return new _sgd_optimizer.SGDOptimizer(learningRate);
            }
            /**
             * Constructs a `tf.MomentumOptimizer` that uses momentum gradient
             * descent.
             *
             * See
             * [http://proceedings.mlr.press/v28/sutskever13.pdf](
             * http://proceedings.mlr.press/v28/sutskever13.pdf)
             *
             * @param learningRate The learning rate to use for the Momentum gradient
             * descent algorithm.
             * @param momentum The momentum to use for the momentum gradient descent
             * algorithm.
             *
             * @doc {heading: 'Training', subheading: 'Optimizers', namespace: 'train'}
             */
            static momentum(learningRate, momentum, useNesterov = false) {
                return new _momentum_optimizer.MomentumOptimizer(learningRate, momentum, useNesterov);
            }
            /**
             * Constructs a `tf.RMSPropOptimizer` that uses RMSProp gradient
             * descent. This implementation uses plain momentum and is not centered
             * version of RMSProp.
             *
             * See
             * [http://www.cs.toronto.edu/~tijmen/csc321/slides/lecture_slides_lec6.pdf](
             * http://www.cs.toronto.edu/~tijmen/csc321/slides/lecture_slides_lec6.pdf)
             *
             * @param learningRate The learning rate to use for the RMSProp gradient
             * descent algorithm.
             * @param decay The discounting factor for the history/coming gradient.
             * @param momentum The momentum to use for the RMSProp gradient descent
             * algorithm.
             * @param epsilon Small value to avoid zero denominator.
             * @param centered If true, gradients are normalized by the estimated
             * variance of the gradient.
             *
             * @doc {heading: 'Training', subheading: 'Optimizers', namespace: 'train'}
             */
            static rmsprop(learningRate, decay = .9, momentum = 0.0, epsilon = null, centered = false) {
                return new _rmsprop_optimizer.RMSPropOptimizer(learningRate, decay, momentum, epsilon, centered);
            }
            /**
             * Constructs a `tf.AdamOptimizer` that uses the Adam algorithm.
             * See [https://arxiv.org/abs/1412.6980](https://arxiv.org/abs/1412.6980)
             *
             * @param learningRate The learning rate to use for the Adam gradient
             * descent algorithm.
             * @param beta1 The exponential decay rate for the 1st moment estimates.
             * @param beta2 The exponential decay rate for the 2nd moment estimates.
             * @param epsilon A small constant for numerical stability.
             *
             * @doc {heading: 'Training', subheading: 'Optimizers', namespace: 'train'}
             */
            static adam(learningRate = 0.001, beta1 = 0.9, beta2 = 0.999, epsilon = null) {
                return new _adam_optimizer.AdamOptimizer(learningRate, beta1, beta2, epsilon);
            }
            /**
             * Constructs a `tf.AdadeltaOptimizer` that uses the Adadelta algorithm.
             * See [https://arxiv.org/abs/1212.5701](https://arxiv.org/abs/1212.5701)
             *
             * @param learningRate The learning rate to use for the Adadelta gradient
             * descent algorithm.
             * @param rho The learning rate decay over each update.
             * @param epsilon A constant epsilon used to better condition the grad
             * update.
             *
             * @doc {heading: 'Training', subheading: 'Optimizers', namespace: 'train'}
             */
            static adadelta(learningRate = .001, rho = .95, epsilon = null) {
                return new _adadelta_optimizer.AdadeltaOptimizer(learningRate, rho, epsilon);
            }
            /**
             * Constructs a `tf.AdamaxOptimizer` that uses the Adamax algorithm.
             * See [https://arxiv.org/abs/1412.6980](https://arxiv.org/abs/1412.6980)
             *
             * @param learningRate The learning rate to use for the Adamax gradient
             * descent algorithm.
             * @param beta1 The exponential decay rate for the 1st moment estimates.
             * @param beta2 The exponential decay rate for the 2nd moment estimates.
             * @param epsilon A small constant for numerical stability.
             * @param decay The learning rate decay over each update.
             *
             * @doc {heading: 'Training', subheading: 'Optimizers', namespace: 'train'}
             */
            static adamax(learningRate = 0.002, beta1 = 0.9, beta2 = 0.999, epsilon = null, decay = 0.0) {
                return new _adamax_optimizer.AdamaxOptimizer(learningRate, beta1, beta2, epsilon, decay);
            }
            /**
             * Constructs a `tf.AdagradOptimizer` that uses the Adagrad algorithm.
             * See
             * [http://www.jmlr.org/papers/volume12/duchi11a/duchi11a.pdf](
             * http://www.jmlr.org/papers/volume12/duchi11a/duchi11a.pdf)
             * or
             * [http://ruder.io/optimizing-gradient-descent/index.html#adagrad](
             * http://ruder.io/optimizing-gradient-descent/index.html#adagrad)
             *
             * @param learningRate The learning rate to use for the Adagrad gradient
             * descent algorithm.
             * @param initialAccumulatorValue Starting value for the accumulators, must be
             * positive.
             *
             * @doc {heading: 'Training', subheading: 'Optimizers', namespace: 'train'}
             */
            static adagrad(learningRate, initialAccumulatorValue = 0.1) {
                return new _adagrad_optimizer.AdagradOptimizer(learningRate, initialAccumulatorValue);
            }
        }
        exports.OptimizerConstructors = OptimizerConstructors;

    }
        , {
        "./adadelta_optimizer": 488,
        "./adagrad_optimizer": 489,
        "./adam_optimizer": 490,
        "./adamax_optimizer": 491,
        "./momentum_optimizer": 492,
        "./rmsprop_optimizer": 495,
        "./sgd_optimizer": 496
    }],
    495: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.RMSPropOptimizer = void 0;
        var _engine = require("../engine");
        var _globals = require("../globals");
        var _add = require("../ops/add");
        var _div = require("../ops/div");
        var _mul = require("../ops/mul");
        var _sqrt = require("../ops/sqrt");
        var _square = require("../ops/square");
        var _sub = require("../ops/sub");
        var _zeros_like = require("../ops/zeros_like");
        var _serialization = require("../serialization");
        var _optimizer = require("./optimizer");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /** @doclink Optimizer */
        class RMSPropOptimizer extends _optimizer.Optimizer {
            constructor(learningRate, decay = 0.9, momentum = 0.0, epsilon = null, centered = false) {
                super();
                this.learningRate = learningRate;
                this.decay = decay;
                this.momentum = momentum;
                this.epsilon = epsilon;
                this.accumulatedMeanSquares = [];
                this.accumulatedMoments = [];
                this.accumulatedMeanGrads = [];
                this.centered = centered;
                if (epsilon == null) {
                    this.epsilon = _engine.ENGINE.backend.epsilon();
                }
                if (learningRate == null) {
                    throw new Error(`learningRate for RMSPropOptimizer must be defined.`);
                }
            }
            applyGradients(variableGradients) {
                const variableNames = Array.isArray(variableGradients) ? variableGradients.map(item => item.name) : Object.keys(variableGradients);
                variableNames.forEach((name, i) => {
                    const value = _engine.ENGINE.registeredVariables[name];
                    const trainable = false;
                    if (this.accumulatedMeanSquares[i] == null) {
                        this.accumulatedMeanSquares[i] = {
                            originalName: `${name}/rms`,
                            variable: (0,
                                _globals.tidy)(() => (0,
                                    _zeros_like.zerosLike)(value).variable(trainable))
                        };
                    }
                    if (this.accumulatedMoments[i] == null) {
                        this.accumulatedMoments[i] = {
                            originalName: `${name}/momentum`,
                            variable: (0,
                                _globals.tidy)(() => (0,
                                    _zeros_like.zerosLike)(value).variable(trainable))
                        };
                    }
                    if (this.accumulatedMeanGrads[i] == null && this.centered) {
                        this.accumulatedMeanGrads[i] = {
                            originalName: `${name}/mg`,
                            variable: (0,
                                _globals.tidy)(() => (0,
                                    _zeros_like.zerosLike)(value).variable(trainable))
                        };
                    }
                    const gradient = Array.isArray(variableGradients) ? variableGradients[i].tensor : variableGradients[name];
                    if (gradient == null) {
                        return;
                    }
                    const accumulatedMeanSquare = this.accumulatedMeanSquares[i].variable;
                    const accumulatedMoments = this.accumulatedMoments[i].variable;
                    (0,
                        _globals.tidy)(() => {
                            const newAccumulatedMeanSquare = (0,
                                _add.add)((0,
                                    _mul.mul)(accumulatedMeanSquare, this.decay), (0,
                                        _mul.mul)((0,
                                            _square.square)(gradient), 1 - this.decay));
                            if (this.centered) {
                                const accumulatedMeanGrad = this.accumulatedMeanGrads[i].variable;
                                // Centered gradient
                                const newAccumulatedMeanGrad = (0,
                                    _add.add)((0,
                                        _mul.mul)(accumulatedMeanGrad, this.decay), (0,
                                            _mul.mul)(gradient, 1 - this.decay));
                                const gradContribution = (0,
                                    _div.div)((0,
                                        _mul.mul)(gradient, this.learningRate), (0,
                                            _sqrt.sqrt)((0,
                                                _sub.sub)(newAccumulatedMeanSquare, (0,
                                                    _add.add)((0,
                                                        _square.square)(newAccumulatedMeanGrad), this.epsilon))));
                                const newAccumulatedMoments = (0,
                                    _add.add)((0,
                                        _mul.mul)(accumulatedMoments, this.momentum), gradContribution);
                                accumulatedMeanSquare.assign(newAccumulatedMeanSquare);
                                accumulatedMeanGrad.assign(newAccumulatedMeanGrad);
                                accumulatedMoments.assign(newAccumulatedMoments);
                                const newValue = (0,
                                    _sub.sub)(value, newAccumulatedMoments);
                                value.assign(newValue);
                            } else {
                                // Plain gradient
                                const newAccumulatedMeanSquare = (0,
                                    _add.add)((0,
                                        _mul.mul)(accumulatedMeanSquare, this.decay), (0,
                                            _mul.mul)((0,
                                                _square.square)(gradient), 1 - this.decay));
                                const newAccumulatedMoments = (0,
                                    _add.add)((0,
                                        _mul.mul)(accumulatedMoments, this.momentum), (0,
                                            _div.div)((0,
                                                _mul.mul)(gradient, this.learningRate), (0,
                                                    _sqrt.sqrt)((0,
                                                        _add.add)(newAccumulatedMeanSquare, this.epsilon))));
                                accumulatedMeanSquare.assign(newAccumulatedMeanSquare);
                                accumulatedMoments.assign(newAccumulatedMoments);
                                const newValue = (0,
                                    _sub.sub)(value, newAccumulatedMoments);
                                value.assign(newValue);
                            }
                        }
                        );
                }
                );
                this.incrementIterations();
            }
            dispose() {
                if (this.accumulatedMeanSquares != null) {
                    (0,
                        _globals.dispose)(this.accumulatedMeanSquares.map(v => v.variable));
                }
                if (this.accumulatedMeanGrads != null && this.centered) {
                    (0,
                        _globals.dispose)(this.accumulatedMeanGrads.map(v => v.variable));
                }
                if (this.accumulatedMoments != null) {
                    (0,
                        _globals.dispose)(this.accumulatedMoments.map(v => v.variable));
                }
            }
            async getWeights() {
                // Order matters for Python compatibility.
                const variables = [...this.accumulatedMeanSquares, ...this.accumulatedMoments];
                if (this.centered) {
                    variables.push(...this.accumulatedMeanGrads);
                }
                return [await this.saveIterations()].concat(variables.map(v => ({
                    name: v.originalName,
                    tensor: v.variable
                })));
            }
            async setWeights(weightValues) {
                weightValues = await this.extractIterations(weightValues);
                const variableCount = this.centered ? weightValues.length / 3 : weightValues.length / 2;
                const trainable = false;
                this.accumulatedMeanSquares = weightValues.slice(0, variableCount).map(v => ({
                    originalName: v.name,
                    variable: v.tensor.variable(trainable)
                }));
                this.accumulatedMoments = weightValues.slice(variableCount, variableCount * 2).map(v => ({
                    originalName: v.name,
                    variable: v.tensor.variable(trainable)
                }));
                if (this.centered) {
                    this.accumulatedMeanGrads = weightValues.slice(variableCount * 2, variableCount * 3).map(v => ({
                        originalName: v.name,
                        variable: v.tensor.variable(trainable)
                    }));
                }
            }
            getConfig() {
                return {
                    'learningRate': this.learningRate,
                    'decay': this.decay,
                    'momentum': this.momentum,
                    'epsilon': this.epsilon,
                    'centered': this.centered
                };
            }
            /** @nocollapse */
            static fromConfig(cls, config) {
                return new cls(config['learningRate'], config['decay'], config['momentum'], config['epsilon'], config['centered']);
            }
        }
        /** @nocollapse */
        exports.RMSPropOptimizer = RMSPropOptimizer;
        RMSPropOptimizer.className = 'RMSProp';
        // Note: Name matters for Python compatibility.
        (0,
            _serialization.registerClass)(RMSPropOptimizer);

    }
        , {
        "../engine": 77,
        "../globals": 81,
        "../ops/add": 205,
        "../ops/div": 269,
        "../ops/mul": 362,
        "../ops/sqrt": 453,
        "../ops/square": 454,
        "../ops/sub": 463,
        "../ops/zeros_like": 487,
        "../serialization": 499,
        "./optimizer": 493
    }],
    496: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.SGDOptimizer = void 0;
        var _engine = require("../engine");
        var _globals = require("../globals");
        var _add = require("../ops/add");
        var _mul = require("../ops/mul");
        var _scalar = require("../ops/scalar");
        var _serialization = require("../serialization");
        var _optimizer = require("./optimizer");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /** @doclink Optimizer */
        class SGDOptimizer extends _optimizer.Optimizer {
            constructor(learningRate) {
                super();
                this.learningRate = learningRate;
                this.setLearningRate(learningRate);
            }
            applyGradients(variableGradients) {
                const varNames = Array.isArray(variableGradients) ? variableGradients.map(v => v.name) : Object.keys(variableGradients);
                varNames.forEach((name, i) => {
                    const gradient = Array.isArray(variableGradients) ? variableGradients[i].tensor : variableGradients[name];
                    if (gradient == null) {
                        return;
                    }
                    const value = _engine.ENGINE.registeredVariables[name];
                    (0,
                        _globals.tidy)(() => {
                            const newValue = (0,
                                _add.add)((0,
                                    _mul.mul)(this.c, gradient), value);
                            value.assign(newValue);
                        }
                        );
                }
                );
                this.incrementIterations();
            }
            /**
             * Sets the learning rate of the optimizer.
             */
            setLearningRate(learningRate) {
                this.learningRate = learningRate;
                if (this.c != null) {
                    this.c.dispose();
                }
                this.c = (0,
                    _globals.keep)((0,
                        _scalar.scalar)(-learningRate));
            }
            dispose() {
                this.c.dispose();
            }
            async getWeights() {
                return [await this.saveIterations()];
            }
            async setWeights(weightValues) {
                weightValues = await this.extractIterations(weightValues);
                if (weightValues.length !== 0) {
                    throw new Error('SGD optimizer does not have settable weights.');
                }
            }
            getConfig() {
                return {
                    'learningRate': this.learningRate
                };
            }
            /** @nocollapse */
            static fromConfig(cls, config) {
                return new cls(config['learningRate']);
            }
        }
        /** @nocollapse */
        exports.SGDOptimizer = SGDOptimizer;
        SGDOptimizer.className = 'SGD';
        // Note: Name matters for Python compatibility.
        (0,
            _serialization.registerClass)(SGDOptimizer);

    }
        , {
        "../engine": 77,
        "../globals": 81,
        "../ops/add": 205,
        "../ops/mul": 362,
        "../ops/scalar": 411,
        "../serialization": 499,
        "./optimizer": 493
    }],
    497: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.Profiler = exports.Logger = void 0;
        exports.checkComputationForErrors = checkComputationForErrors;
        var _environment = require("./environment");
        var util = _interopRequireWildcard(require("./util"));
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        class Profiler {
            constructor(backendTimer, logger) {
                this.backendTimer = backendTimer;
                this.logger = logger;
                if (logger == null) {
                    this.logger = new Logger();
                }
            }
            profileKernel(kernelName, inputs, f) {
                let outputs;
                const holdResultWrapperFn = () => {
                    outputs = f();
                }
                    ;
                let timer;
                const start = util.now();
                if (this.backendTimer.timerAvailable()) {
                    timer = this.backendTimer.time(holdResultWrapperFn);
                } else {
                    holdResultWrapperFn();
                    for (const output of outputs) {
                        output.dataSync();
                    }
                    timer = Promise.resolve({
                        kernelMs: util.now() - start
                    });
                }
                if ((0,
                    _environment.env)().getBool('CHECK_COMPUTATION_FOR_ERRORS')) {
                    for (let i = 0; i < outputs.length; i++) {
                        const output = outputs[i];
                        // Dangling promise here because we don't want to propagate up
                        // asynchronicity.
                        output.data().then(tensorVals => {
                            checkComputationForErrors(tensorVals, output.dtype, kernelName);
                        }
                        );
                    }
                }
                const kernelProfile = {
                    kernelName,
                    outputs,
                    inputs,
                    timeMs: timer.then(timing => timing.kernelMs),
                    extraInfo: timer.then(timing => timing.getExtraProfileInfo != null ? timing.getExtraProfileInfo() : '')
                };
                return kernelProfile;
            }
            logKernelProfile(kernelProfile) {
                const { kernelName, outputs, timeMs, inputs, extraInfo } = kernelProfile;
                outputs.forEach(result => {
                    Promise.all([result.data(), timeMs, extraInfo]).then(valueContainer => {
                        this.logger.logKernelProfile(kernelName, result, valueContainer[0], valueContainer[1], inputs, valueContainer[2]);
                    }
                    );
                }
                );
            }
        }
        exports.Profiler = Profiler;
        function checkComputationForErrors(vals, dtype, kernelName) {
            if (dtype !== 'float32') {
                // Only floating point computations will generate NaN values
                return false;
            }
            for (let i = 0; i < vals.length; i++) {
                const num = vals[i];
                if (isNaN(num) || !isFinite(num)) {
                    // Throwing custom exception so behavior is testable.
                    console.warn(`Found ${num} in the result of '${kernelName}'`);
                    return true;
                }
            }
            return false;
        }
        class Logger {
            logKernelProfile(name, result, vals, timeMs, inputs, extraInfo) {
                const time = typeof timeMs === 'number' ? util.rightPad(`${timeMs}ms`, 9) : timeMs['error'];
                const paddedName = util.rightPad(name, 25);
                const rank = result.rank;
                const size = result.size;
                const shape = util.rightPad(result.shape.toString(), 14);
                let inputShapesDescription = '';
                for (const name in inputs) {
                    const input = inputs[name];
                    if (input != null) {
                        // The input might be a non-tensor (e.g HTMLImageElement), in which case
                        // we claim the output shape as input shape.
                        const inputShape = input.shape || result.shape;
                        const inputRank = inputShape.length;
                        inputShapesDescription += `${name}: ${inputRank}D ${inputRank > 0 ? inputShape : ''} `;
                    }
                }
                console.log(`%c${paddedName}\t%c${time}\t%c${rank}D ${shape}\t%c${size}\t%c${inputShapesDescription}\t%c${extraInfo}`, 'font-weight:bold', 'color:red', 'color:blue', 'color: orange', 'color: green', 'color: steelblue');
            }
        }
        exports.Logger = Logger;

    }
        , {
        "./environment": 78,
        "./util": 509
    }],
    498: [function (require, module, exports) {
        "use strict";

        var _Abs_grad = require("./gradients/Abs_grad");
        var _Acos_grad = require("./gradients/Acos_grad");
        var _Acosh_grad = require("./gradients/Acosh_grad");
        var _Add_grad = require("./gradients/Add_grad");
        var _AddN_grad = require("./gradients/AddN_grad");
        var _ArgMax_grad = require("./gradients/ArgMax_grad");
        var _ArgMin_grad = require("./gradients/ArgMin_grad");
        var _Asin_grad = require("./gradients/Asin_grad");
        var _Asinh_grad = require("./gradients/Asinh_grad");
        var _Atan2_grad = require("./gradients/Atan2_grad");
        var _Atan_grad = require("./gradients/Atan_grad");
        var _Atanh_grad = require("./gradients/Atanh_grad");
        var _AvgPool3D_grad = require("./gradients/AvgPool3D_grad");
        var _AvgPool_grad = require("./gradients/AvgPool_grad");
        var _BatchMatMul_grad = require("./gradients/BatchMatMul_grad");
        var _BatchToSpaceND_grad = require("./gradients/BatchToSpaceND_grad");
        var _BroadcastTo_grad = require("./gradients/BroadcastTo_grad");
        var _Cast_grad = require("./gradients/Cast_grad");
        var _Ceil_grad = require("./gradients/Ceil_grad");
        var _ClipByValue_grad = require("./gradients/ClipByValue_grad");
        var _ComplexAbs_grad = require("./gradients/ComplexAbs_grad");
        var _Concat_grad = require("./gradients/Concat_grad");
        var _Conv2D_grad = require("./gradients/Conv2D_grad");
        var _Conv2DBackpropInput_grad = require("./gradients/Conv2DBackpropInput_grad");
        var _Conv3D_grad = require("./gradients/Conv3D_grad");
        var _Cos_grad = require("./gradients/Cos_grad");
        var _Cosh_grad = require("./gradients/Cosh_grad");
        var _Cumsum_grad = require("./gradients/Cumsum_grad");
        var _DepthwiseConv2dNative_grad = require("./gradients/DepthwiseConv2dNative_grad");
        var _Dilation2D_grad = require("./gradients/Dilation2D_grad");
        var _Elu_grad = require("./gradients/Elu_grad");
        var _Erf_grad = require("./gradients/Erf_grad");
        var _Exp_grad = require("./gradients/Exp_grad");
        var _ExpandDims_grad = require("./gradients/ExpandDims_grad");
        var _Expm1_grad = require("./gradients/Expm1_grad");
        var _Floor_grad = require("./gradients/Floor_grad");
        var _FloorDiv_grad = require("./gradients/FloorDiv_grad");
        var _FusedBatchNorm_grad = require("./gradients/FusedBatchNorm_grad");
        var _GatherV2_grad = require("./gradients/GatherV2_grad");
        var _GreaterEqual_grad = require("./gradients/GreaterEqual_grad");
        var _Identity_grad = require("./gradients/Identity_grad");
        var _IsFinite_grad = require("./gradients/IsFinite_grad");
        var _IsInf_grad = require("./gradients/IsInf_grad");
        var _IsNan_grad = require("./gradients/IsNan_grad");
        var _LeakyRelu_grad = require("./gradients/LeakyRelu_grad");
        var _Log1p_grad = require("./gradients/Log1p_grad");
        var _Log_grad = require("./gradients/Log_grad");
        var _LogSoftmax_grad = require("./gradients/LogSoftmax_grad");
        var _LRN_grad = require("./gradients/LRN_grad");
        var _Max_grad = require("./gradients/Max_grad");
        var _Maximum_grad = require("./gradients/Maximum_grad");
        var _MaxPool3D_grad = require("./gradients/MaxPool3D_grad");
        var _MaxPool_grad = require("./gradients/MaxPool_grad");
        var _Mean_grad = require("./gradients/Mean_grad");
        var _Min_grad = require("./gradients/Min_grad");
        var _Minimum_grad = require("./gradients/Minimum_grad");
        var _MirrorPad_grad = require("./gradients/MirrorPad_grad");
        var _Mod_grad = require("./gradients/Mod_grad");
        var _Multiply_grad = require("./gradients/Multiply_grad");
        var _Neg_grad = require("./gradients/Neg_grad");
        var _OneHot_grad = require("./gradients/OneHot_grad");
        var _OnesLike_grad = require("./gradients/OnesLike_grad");
        var _Pack_grad = require("./gradients/Pack_grad");
        var _PadV2_grad = require("./gradients/PadV2_grad");
        var _Pow_grad = require("./gradients/Pow_grad");
        var _Prelu_grad = require("./gradients/Prelu_grad");
        var _Prod_grad = require("./gradients/Prod_grad");
        var _RealDiv_grad = require("./gradients/RealDiv_grad");
        var _Reciprocal_grad = require("./gradients/Reciprocal_grad");
        var _Relu6_grad = require("./gradients/Relu6_grad");
        var _Relu_grad = require("./gradients/Relu_grad");
        var _Reshape_grad = require("./gradients/Reshape_grad");
        var _ResizeBilinear_grad = require("./gradients/ResizeBilinear_grad");
        var _ResizeNearestNeighbor_grad = require("./gradients/ResizeNearestNeighbor_grad");
        var _Reverse_grad = require("./gradients/Reverse_grad");
        var _Round_grad = require("./gradients/Round_grad");
        var _Rsqrt_grad = require("./gradients/Rsqrt_grad");
        var _Select_grad = require("./gradients/Select_grad");
        var _Selu_grad = require("./gradients/Selu_grad");
        var _Sigmoid_grad = require("./gradients/Sigmoid_grad");
        var _Sign_grad = require("./gradients/Sign_grad");
        var _Sin_grad = require("./gradients/Sin_grad");
        var _Sinh_grad = require("./gradients/Sinh_grad");
        var _Slice_grad = require("./gradients/Slice_grad");
        var _Softmax_grad = require("./gradients/Softmax_grad");
        var _Softplus_grad = require("./gradients/Softplus_grad");
        var _SpaceToBatchND_grad = require("./gradients/SpaceToBatchND_grad");
        var _SplitV_grad = require("./gradients/SplitV_grad");
        var _Sqrt_grad = require("./gradients/Sqrt_grad");
        var _Square_grad = require("./gradients/Square_grad");
        var _SquaredDifference_grad = require("./gradients/SquaredDifference_grad");
        var _Step_grad = require("./gradients/Step_grad");
        var _Sub_grad = require("./gradients/Sub_grad");
        var _Sum_grad = require("./gradients/Sum_grad");
        var _Tan_grad = require("./gradients/Tan_grad");
        var _Tanh_grad = require("./gradients/Tanh_grad");
        var _Tile_grad = require("./gradients/Tile_grad");
        var _Transpose_grad = require("./gradients/Transpose_grad");
        var _Unpack_grad = require("./gradients/Unpack_grad");
        var _UnsortedSegmentSum_grad = require("./gradients/UnsortedSegmentSum_grad");
        var _ZerosLike_grad = require("./gradients/ZerosLike_grad");
        var _kernel_registry = require("./kernel_registry");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        // Export all kernel configs here so that the package can auto register them
        const gradConfigs = [_Abs_grad.absGradConfig, _Acos_grad.acosGradConfig, _Acosh_grad.acoshGradConfig, _Add_grad.addGradConfig, _AddN_grad.addNGradConfig, _ArgMax_grad.argMaxGradConfig, _ArgMin_grad.argMinGradConfig, _Asin_grad.asinGradConfig, _Asinh_grad.asinhGradConfig, _Atan2_grad.atan2GradConfig, _Atan_grad.atanGradConfig, _Atanh_grad.atanhGradConfig, _AvgPool3D_grad.avgPool3DGradConfig, _AvgPool_grad.avgPoolGradConfig, _BatchMatMul_grad.batchMatMulGradConfig, _BatchToSpaceND_grad.batchToSpaceNDGradConfig, _BroadcastTo_grad.broadcastToGradConfig, _Cast_grad.castGradConfig, _Ceil_grad.ceilGradConfig, _ClipByValue_grad.clipByValueGradConfig, _ComplexAbs_grad.complexAbsGradConfig, _Concat_grad.concatGradConfig, _Conv2DBackpropInput_grad.conv2DBackpropInputGradConfig, _Conv2D_grad.conv2DGradConfig, _Conv3D_grad.conv3DGradConfig, _Cos_grad.cosGradConfig, _Cosh_grad.coshGradConfig, _Cumsum_grad.cumsumGradConfig, _DepthwiseConv2dNative_grad.depthwiseConv2dNativeGradConfig, _Dilation2D_grad.dilation2dGradConfig, _RealDiv_grad.divGradConfig, _Elu_grad.eluGradConfig, _Erf_grad.erfGradConfig, _Exp_grad.expGradConfig, _ExpandDims_grad.expandDimsGradConfig, _Expm1_grad.expm1GradConfig, _FloorDiv_grad.floorDivGradConfig, _Floor_grad.floorGradConfig, _FusedBatchNorm_grad.fusedBatchNormGradConfig, _GatherV2_grad.gatherGradConfig, _GreaterEqual_grad.greaterEqualGradConfig, _Identity_grad.identityGradConfig, _IsFinite_grad.isFiniteGradConfig, _IsInf_grad.isInfGradConfig, _IsNan_grad.isNanGradConfig, _LeakyRelu_grad.leakyReluGradConfig, _Log1p_grad.log1pGradConfig, _Log_grad.logGradConfig, _LogSoftmax_grad.logSoftmaxGradConfig, _LRN_grad.lrnGradConfig, _Max_grad.maxGradConfig, _Max_grad.maxGradConfig, _Maximum_grad.maximumGradConfig, _MaxPool3D_grad.maxPool3DGradConfig, _MaxPool_grad.maxPoolGradConfig, _Mean_grad.meanGradConfig, _Min_grad.minGradConfig, _Minimum_grad.minimumGradConfig, _MirrorPad_grad.mirrorPadGradConfig, _Mod_grad.modGradConfig, _Multiply_grad.multiplyGradConfig, _Neg_grad.negGradConfig, _OneHot_grad.oneHotGradConfig, _OnesLike_grad.onesLikeGradConfig, _Pack_grad.packGradConfig, _PadV2_grad.padV2GradConfig, _PadV2_grad.padV2GradConfig, _Pow_grad.powGradConfig, _Prelu_grad.preluGradConfig, _Prod_grad.prodGradConfig, _Reciprocal_grad.reciprocalGradConfig, _Relu6_grad.relu6GradConfig, _Relu_grad.reluGradConfig, _Reshape_grad.reshapeGradConfig, _ResizeBilinear_grad.resizeBilinearGradConfig, _ResizeNearestNeighbor_grad.resizeNearestNeighborGradConfig, _Reverse_grad.reverseGradConfig, _Round_grad.roundGradConfig, _Rsqrt_grad.rsqrtGradConfig, _Select_grad.selectGradConfig, _Selu_grad.seluGradConfig, _Sigmoid_grad.sigmoidGradConfig, _Sign_grad.signGradConfig, _Sin_grad.sinGradConfig, _Sinh_grad.sinhGradConfig, _Slice_grad.sliceGradConfig, _Softmax_grad.softmaxGradConfig, _Softplus_grad.softplusGradConfig, _SpaceToBatchND_grad.spaceToBatchNDGradConfig, _SpaceToBatchND_grad.spaceToBatchNDGradConfig, _SplitV_grad.splitVGradConfig, _SplitV_grad.splitVGradConfig, _Sqrt_grad.sqrtGradConfig, _SquaredDifference_grad.squaredDifferenceGradConfig, _Square_grad.squareGradConfig, _Step_grad.stepGradConfig, _Sub_grad.subGradConfig, _Sum_grad.sumGradConfig, _Tan_grad.tanGradConfig, _Tanh_grad.tanhGradConfig, _Tile_grad.tileGradConfig, _Transpose_grad.transposeGradConfig, _Unpack_grad.unpackGradConfig, _UnsortedSegmentSum_grad.unsortedSegmentSumGradConfig, _ZerosLike_grad.zerosLikeGradConfig];
        for (const gradientConfig of gradConfigs) {
            (0,
                _kernel_registry.registerGradient)(gradientConfig);
        }

    }
        , {
        "./gradients/Abs_grad": 83,
        "./gradients/Acos_grad": 84,
        "./gradients/Acosh_grad": 85,
        "./gradients/AddN_grad": 86,
        "./gradients/Add_grad": 87,
        "./gradients/ArgMax_grad": 88,
        "./gradients/ArgMin_grad": 89,
        "./gradients/Asin_grad": 90,
        "./gradients/Asinh_grad": 91,
        "./gradients/Atan2_grad": 92,
        "./gradients/Atan_grad": 93,
        "./gradients/Atanh_grad": 94,
        "./gradients/AvgPool3D_grad": 95,
        "./gradients/AvgPool_grad": 96,
        "./gradients/BatchMatMul_grad": 97,
        "./gradients/BatchToSpaceND_grad": 98,
        "./gradients/BroadcastTo_grad": 99,
        "./gradients/Cast_grad": 100,
        "./gradients/Ceil_grad": 101,
        "./gradients/ClipByValue_grad": 102,
        "./gradients/ComplexAbs_grad": 103,
        "./gradients/Concat_grad": 104,
        "./gradients/Conv2DBackpropInput_grad": 105,
        "./gradients/Conv2D_grad": 106,
        "./gradients/Conv3D_grad": 107,
        "./gradients/Cos_grad": 108,
        "./gradients/Cosh_grad": 109,
        "./gradients/Cumsum_grad": 110,
        "./gradients/DepthwiseConv2dNative_grad": 111,
        "./gradients/Dilation2D_grad": 112,
        "./gradients/Elu_grad": 113,
        "./gradients/Erf_grad": 114,
        "./gradients/Exp_grad": 115,
        "./gradients/ExpandDims_grad": 116,
        "./gradients/Expm1_grad": 117,
        "./gradients/FloorDiv_grad": 118,
        "./gradients/Floor_grad": 119,
        "./gradients/FusedBatchNorm_grad": 120,
        "./gradients/GatherV2_grad": 121,
        "./gradients/GreaterEqual_grad": 122,
        "./gradients/Identity_grad": 123,
        "./gradients/IsFinite_grad": 124,
        "./gradients/IsInf_grad": 125,
        "./gradients/IsNan_grad": 126,
        "./gradients/LRN_grad": 127,
        "./gradients/LeakyRelu_grad": 128,
        "./gradients/Log1p_grad": 129,
        "./gradients/LogSoftmax_grad": 130,
        "./gradients/Log_grad": 131,
        "./gradients/MaxPool3D_grad": 132,
        "./gradients/MaxPool_grad": 133,
        "./gradients/Max_grad": 134,
        "./gradients/Maximum_grad": 135,
        "./gradients/Mean_grad": 136,
        "./gradients/Min_grad": 137,
        "./gradients/Minimum_grad": 138,
        "./gradients/MirrorPad_grad": 139,
        "./gradients/Mod_grad": 140,
        "./gradients/Multiply_grad": 141,
        "./gradients/Neg_grad": 142,
        "./gradients/OneHot_grad": 143,
        "./gradients/OnesLike_grad": 144,
        "./gradients/Pack_grad": 145,
        "./gradients/PadV2_grad": 146,
        "./gradients/Pow_grad": 147,
        "./gradients/Prelu_grad": 148,
        "./gradients/Prod_grad": 149,
        "./gradients/RealDiv_grad": 150,
        "./gradients/Reciprocal_grad": 151,
        "./gradients/Relu6_grad": 152,
        "./gradients/Relu_grad": 153,
        "./gradients/Reshape_grad": 154,
        "./gradients/ResizeBilinear_grad": 155,
        "./gradients/ResizeNearestNeighbor_grad": 156,
        "./gradients/Reverse_grad": 157,
        "./gradients/Round_grad": 158,
        "./gradients/Rsqrt_grad": 159,
        "./gradients/Select_grad": 160,
        "./gradients/Selu_grad": 161,
        "./gradients/Sigmoid_grad": 162,
        "./gradients/Sign_grad": 163,
        "./gradients/Sin_grad": 164,
        "./gradients/Sinh_grad": 165,
        "./gradients/Slice_grad": 166,
        "./gradients/Softmax_grad": 167,
        "./gradients/Softplus_grad": 168,
        "./gradients/SpaceToBatchND_grad": 169,
        "./gradients/SplitV_grad": 170,
        "./gradients/Sqrt_grad": 171,
        "./gradients/Square_grad": 172,
        "./gradients/SquaredDifference_grad": 173,
        "./gradients/Step_grad": 174,
        "./gradients/Sub_grad": 175,
        "./gradients/Sum_grad": 176,
        "./gradients/Tan_grad": 177,
        "./gradients/Tanh_grad": 178,
        "./gradients/Tile_grad": 179,
        "./gradients/Transpose_grad": 180,
        "./gradients/Unpack_grad": 181,
        "./gradients/UnsortedSegmentSum_grad": 182,
        "./gradients/ZerosLike_grad": 183,
        "./kernel_registry": 199
    }],
    499: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.SerializationMap = exports.Serializable = void 0;
        exports.registerClass = registerClass;
        var _util = require("./util");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Serializable defines the serialization contract.
         *
         * TFJS requires serializable classes to return their className when asked
         * to avoid issues with minification.
         */
        class Serializable {
            /**
             * Return the class name for this class to use in serialization contexts.
             *
             * Generally speaking this will be the same thing that constructor.name
             * would have returned.  However, the class name needs to be robust
             * against minification for serialization/deserialization to work properly.
             *
             * There's also places such as initializers.VarianceScaling, where
             * implementation details between different languages led to different
             * class hierarchies and a non-leaf node is used for serialization purposes.
             */
            getClassName() {
                return this.constructor.className;
            }
            /**
             * Creates an instance of T from a ConfigDict.
             *
             * This works for most descendants of serializable.  A few need to
             * provide special handling.
             * @param cls A Constructor for the class to instantiate.
             * @param config The Configuration for the object.
             */
            /** @nocollapse */
            static fromConfig(cls, config) {
                return new cls(config);
            }
        }
        /**
         * Maps string keys to class constructors.
         *
         * Used during (de)serialization from the cross-language JSON format, which
         * requires the class name in the serialization format matches the class
         * names as used in Python, should it exist.
         */
        exports.Serializable = Serializable;
        class SerializationMap {
            constructor() {
                this.classNameMap = {};
            }
            /**
             * Returns the singleton instance of the map.
             */
            static getMap() {
                if (SerializationMap.instance == null) {
                    SerializationMap.instance = new SerializationMap();
                }
                return SerializationMap.instance;
            }
            /**
             * Registers the class as serializable.
             */
            static register(cls) {
                SerializationMap.getMap().classNameMap[cls.className] = [cls, cls.fromConfig];
            }
        }
        /**
         * Register a class with the serialization map of TensorFlow.js.
         *
         * This is often used for registering custom Layers, so they can be
         * serialized and deserialized.
         *
         * Example:
         *
         * ```js
         * class MyCustomLayer extends tf.layers.Layer {
         *   static className = 'MyCustomLayer';
         *
         *   constructor(config) {
         *     super(config);
         *   }
         * }
         * tf.serialization.registerClass(MyCustomLayer);
         * ```
         *
         * @param cls The class to be registered. It must have a public static member
         *   called `className` defined and the value must be a non-empty string.
         *
         * @doc {heading: 'Models', subheading: 'Serialization', ignoreCI: true}
         */
        exports.SerializationMap = SerializationMap;
        function registerClass(cls) {
            (0,
                _util.assert)(cls.className != null, () => `Class being registered does not have the static className ` + `property defined.`);
            (0,
                _util.assert)(typeof cls.className === 'string', () => `className is required to be a string, but got type ` + typeof cls.className);
            (0,
                _util.assert)(cls.className.length > 0, () => `Class being registered has an empty-string as its className, ` + `which is disallowed.`);
            SerializationMap.register(cls);
        }

    }
        , {
        "./util": 509
    }],
    500: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.backpropagateGradients = backpropagateGradients;
        exports.getFilteredNodesXToY = getFilteredNodesXToY;
        var util = _interopRequireWildcard(require("./util"));
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2017 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Computes a list of TapeNodes that connect x to y, filtering everything else
         * out and preserving the order of the original tape elements.
         *
         * @param tape The tape elements to filter.
         * @param xs The input Tensors.
         * @param y The output Tensor.
         */
        function getFilteredNodesXToY(tape, xs, y) {
            // Forward pass to compute all the nodes and Tensors that are transitively a
            // function of x.
            const tensorsFromX = {};
            const nodesFromX = {};
            for (let i = 0; i < xs.length; i++) {
                tensorsFromX[xs[i].id] = true;
            }
            for (let i = 0; i < tape.length; i++) {
                const node = tape[i];
                const nodeInputs = node.inputs;
                for (const inputName in nodeInputs) {
                    const input = nodeInputs[inputName];
                    let anyInputFromX = false;
                    for (let j = 0; j < xs.length; j++) {
                        if (tensorsFromX[input.id]) {
                            node.outputs.forEach(output => tensorsFromX[output.id] = true);
                            anyInputFromX = true;
                            nodesFromX[node.id] = true;
                            break;
                        }
                    }
                    if (anyInputFromX) {
                        break;
                    }
                }
            }
            // Backward pass to find all of the nodes and Tensors that lead to y.
            const tensorsLeadToY = {};
            tensorsLeadToY[y.id] = true;
            const nodesToY = {};
            for (let i = tape.length - 1; i >= 0; i--) {
                const node = tape[i];
                const nodeInputs = node.inputs;
                // If any of the outputs lead to y, mark all of the inputs as leading to y.
                for (let j = 0; j < node.outputs.length; j++) {
                    if (tensorsLeadToY[node.outputs[j].id]) {
                        for (const inputName in nodeInputs) {
                            tensorsLeadToY[nodeInputs[inputName].id] = true;
                            nodesToY[node.id] = true;
                        }
                        break;
                    }
                }
            }
            // Return the paths that come from x and lead to y.
            const filteredTape = [];
            for (let i = 0; i < tape.length; i++) {
                const node = tape[i];
                if (nodesFromX[node.id] && nodesToY[node.id]) {
                    // Prune the inputs from the node that aren't a function of x.
                    const prunedInputs = {};
                    for (const inputName in node.inputs) {
                        const nodeInput = node.inputs[inputName];
                        if (tensorsFromX[nodeInput.id]) {
                            prunedInputs[inputName] = nodeInput;
                        }
                    }
                    // Copy the node and overwrite inputsAndArgs to the pruned version.
                    const prunedNode = Object.assign({}, node);
                    prunedNode.inputs = prunedInputs;
                    prunedNode.outputs = node.outputs;
                    filteredTape.push(prunedNode);
                }
            }
            return filteredTape;
        }
        /**
         * Backpropagate gradients through the filtered TapeNodes.
         *
         * @param tensorAccumulatedGradientMap A map of Tensor to its gradient. This map
         * is mutated by this method.
         * @param filteredTape The filtered TapeNodes to backprop through.
         */
        function backpropagateGradients(tensorAccumulatedGradientMap, filteredTape, tidy, add) {
            // Walk the tape backward and keep a map of Tensor to its gradient.
            for (let i = filteredTape.length - 1; i >= 0; i--) {
                const node = filteredTape[i];
                const dys = [];
                node.outputs.forEach(o => {
                    const gradTensor = tensorAccumulatedGradientMap[o.id];
                    if (gradTensor != null) {
                        dys.push(gradTensor);
                    } else {
                        // This particular output is not in the back-propagation subgraph, so it
                        // does not affect the final output, thus we put null for its dy.
                        dys.push(null);
                    }
                }
                );
                if (node.gradient == null) {
                    throw new Error(`Cannot compute gradient: gradient function not found ` + `for ${node.kernelName}.`);
                }
                // Backprop dy through this node and accumulate gradients over the inputs.
                const inputGradients = node.gradient(dys);
                for (const inputName in node.inputs) {
                    if (!(inputName in inputGradients)) {
                        throw new Error(`Cannot backprop through input ${inputName}. ` + `Available gradients found: ${Object.keys(inputGradients)}.`);
                    }
                    // Call the gradient function.
                    const dx = tidy(() => inputGradients[inputName]());
                    if (dx.dtype !== 'float32') {
                        throw new Error(`Error in gradient for op ${node.kernelName}. The gradient of input ` + `${inputName} must have 'float32' dtype, but has '${dx.dtype}'`);
                    }
                    const x = node.inputs[inputName];
                    if (!util.arraysEqual(dx.shape, x.shape)) {
                        throw new Error(`Error in gradient for op ${node.kernelName}. The gradient of input ` + `'${inputName}' has shape '${dx.shape}', which does not match ` + `the shape of the input '${x.shape}'`);
                    }
                    if (tensorAccumulatedGradientMap[x.id] == null) {
                        tensorAccumulatedGradientMap[x.id] = dx;
                    } else {
                        const curGradient = tensorAccumulatedGradientMap[x.id];
                        tensorAccumulatedGradientMap[x.id] = add(curGradient, dx);
                        curGradient.dispose();
                    }
                }
            }
        }

    }
        , {
        "./util": 509
    }],
    501: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.Variable = exports.TensorBuffer = exports.Tensor = void 0;
        exports.getGlobalTensorClass = getGlobalTensorClass;
        exports.setDeprecationWarningFn = setDeprecationWarningFn;
        exports.setOpHandler = setOpHandler;
        exports.setTensorTracker = setTensorTracker;
        var _global_util = require("./global_util");
        var _tensor_format = require("./tensor_format");
        var util = _interopRequireWildcard(require("./util"));
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2017 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        // Workaround for: https://github.com/bazelbuild/rules_nodejs/issues/1265
        /// <reference types="@webgpu/types/dist" />

        /**
         * A mutable object, similar to `tf.Tensor`, that allows users to set values
         * at locations before converting to an immutable `tf.Tensor`.
         *
         * See `tf.buffer` for creating a tensor buffer.
         *
         * @doc {heading: 'Tensors', subheading: 'Classes'}
         */
        class TensorBuffer {
            constructor(shape, dtype, values) {
                this.dtype = dtype;
                this.shape = shape.slice();
                this.size = util.sizeFromShape(shape);
                if (values != null) {
                    const n = values.length;
                    util.assert(n === this.size, () => `Length of values '${n}' does not match the size ` + `inferred by the shape '${this.size}'.`);
                }
                if (dtype === 'complex64') {
                    throw new Error(`complex64 dtype TensorBuffers are not supported. Please create ` + `a TensorBuffer for the real and imaginary parts separately and ` + `call tf.complex(real, imag).`);
                }
                this.values = values || util.getArrayFromDType(dtype, this.size);
                this.strides = (0,
                    util.computeStrides)(shape);
            }
            /**
             * Sets a value in the buffer at a given location.
             *
             * @param value The value to set.
             * @param locs  The location indices.
             *
             * @doc {heading: 'Tensors', subheading: 'Creation'}
             */
            set(value, ...locs) {
                if (locs.length === 0) {
                    locs = [0];
                }
                util.assert(locs.length === this.rank, () => `The number of provided coordinates (${locs.length}) must ` + `match the rank (${this.rank})`);
                const index = this.locToIndex(locs);
                this.values[index] = value;
            }
            /**
             * Returns the value in the buffer at the provided location.
             *
             * @param locs The location indices.
             *
             * @doc {heading: 'Tensors', subheading: 'Creation'}
             */
            get(...locs) {
                if (locs.length === 0) {
                    locs = [0];
                }
                let i = 0;
                for (const loc of locs) {
                    if (loc < 0 || loc >= this.shape[i]) {
                        const msg = `Requested out of range element at ${locs}. ` + `  Buffer shape=${this.shape}`;
                        throw new Error(msg);
                    }
                    i++;
                }
                let index = locs[locs.length - 1];
                for (let i = 0; i < locs.length - 1; ++i) {
                    index += this.strides[i] * locs[i];
                }
                return this.values[index];
            }
            locToIndex(locs) {
                if (this.rank === 0) {
                    return 0;
                } else if (this.rank === 1) {
                    return locs[0];
                }
                let index = locs[locs.length - 1];
                for (let i = 0; i < locs.length - 1; ++i) {
                    index += this.strides[i] * locs[i];
                }
                return index;
            }
            indexToLoc(index) {
                if (this.rank === 0) {
                    return [];
                } else if (this.rank === 1) {
                    return [index];
                }
                const locs = new Array(this.shape.length);
                for (let i = 0; i < locs.length - 1; ++i) {
                    locs[i] = Math.floor(index / this.strides[i]);
                    index -= locs[i] * this.strides[i];
                }
                locs[locs.length - 1] = index;
                return locs;
            }
            get rank() {
                return this.shape.length;
            }
            /**
             * Creates an immutable `tf.Tensor` object from the buffer.
             *
             * @doc {heading: 'Tensors', subheading: 'Creation'}
             */
            toTensor() {
                return trackerFn().makeTensor(this.values, this.shape, this.dtype);
            }
        }
        // For tracking tensor creation and disposal.
        exports.TensorBuffer = TensorBuffer;
        let trackerFn = null;
        // Used by chaining methods to call into ops.
        let opHandler = null;
        // Used to warn about deprecated methods.
        let deprecationWarningFn = null;
        // This here so that we can use this method on dev branches and keep the
        // functionality at master.
        // tslint:disable-next-line:no-unused-expression
        [deprecationWarningFn];
        /**
         * An external consumer can register itself as the tensor tracker. This way
         * the Tensor class can notify the tracker for every tensor created and
         * disposed.
         */
        function setTensorTracker(fn) {
            trackerFn = fn;
        }
        /**
         * An external consumer can register itself as the op handler. This way the
         * Tensor class can have chaining methods that call into ops via the op
         * handler.
         */
        function setOpHandler(handler) {
            opHandler = handler;
        }
        /**
         * Sets the deprecation warning function to be used by this file. This way the
         * Tensor class can be a leaf but still use the environment.
         */
        function setDeprecationWarningFn(fn) {
            deprecationWarningFn = fn;
        }
        /**
         * A `tf.Tensor` object represents an immutable, multidimensional array of
         * numbers that has a shape and a data type.
         *
         * For performance reasons, functions that create tensors do not necessarily
         * perform a copy of the data passed to them (e.g. if the data is passed as a
         * `Float32Array`), and changes to the data will change the tensor. This is not
         * a feature and is not supported. To avoid this behavior, use the tensor before
         * changing the input data or create a copy with `copy = tf.add(yourTensor, 0)`.
         *
         * See `tf.tensor` for details on how to create a `tf.Tensor`.
         *
         * @doc {heading: 'Tensors', subheading: 'Classes'}
         */
        class Tensor {
            constructor(shape, dtype, dataId, id) {
                /** Whether this tensor has been globally kept. */
                this.kept = false;
                this.isDisposedInternal = false;
                this.shape = shape.slice();
                this.dtype = dtype || 'float32';
                this.size = util.sizeFromShape(shape);
                this.strides = (0,
                    util.computeStrides)(shape);
                this.dataId = dataId;
                this.id = id;
                this.rankType = this.rank < 5 ? this.rank.toString() : 'higher';
            }
            get rank() {
                return this.shape.length;
            }
            /**
             * Returns a promise of `tf.TensorBuffer` that holds the underlying data.
             *
             * @doc {heading: 'Tensors', subheading: 'Classes'}
             */
            async buffer() {
                const vals = await this.data();
                return opHandler.buffer(this.shape, this.dtype, vals);
            }
            /**
             * Returns a `tf.TensorBuffer` that holds the underlying data.
             * @doc {heading: 'Tensors', subheading: 'Classes'}
             */
            bufferSync() {
                return opHandler.buffer(this.shape, this.dtype, this.dataSync());
            }
            /**
             * Returns the tensor data as a nested array. The transfer of data is done
             * asynchronously.
             *
             * @doc {heading: 'Tensors', subheading: 'Classes'}
             */
            async array() {
                const vals = await this.data();
                return (0,
                    util.toNestedArray)(this.shape, vals, this.dtype === 'complex64');
            }
            /**
             * Returns the tensor data as a nested array. The transfer of data is done
             * synchronously.
             *
             * @doc {heading: 'Tensors', subheading: 'Classes'}
             */
            arraySync() {
                return (0,
                    util.toNestedArray)(this.shape, this.dataSync(), this.dtype === 'complex64');
            }
            /**
             * Asynchronously downloads the values from the `tf.Tensor`. Returns a
             * promise of `TypedArray` that resolves when the computation has finished.
             *
             * @doc {heading: 'Tensors', subheading: 'Classes'}
             */
            async data() {
                this.throwIfDisposed();
                const data = trackerFn().read(this.dataId);
                if (this.dtype === 'string') {
                    const bytes = await data;
                    try {
                        return bytes.map(b => util.decodeString(b));
                    } catch (_a) {
                        throw new Error('Failed to decode the string bytes into utf-8. ' + 'To get the original bytes, call tensor.bytes().');
                    }
                }
                return data;
            }
            /**
             * Copy the tensor's data to a new GPU resource. Comparing to the `dataSync()`
             * and `data()`, this method prevents data from being downloaded to CPU.
             *
             * For WebGL backend, the data will be stored on a densely packed texture.
             * This means that the texture will use the RGBA channels to store value.
             *
             * For WebGPU backend, the data will be stored on a buffer. There is no
             * parameter, so can not use a user-defined size to create the buffer.
             *
             * @param options:
             *     For WebGL,
             *         - customTexShape: Optional. If set, will use the user defined
             *     texture shape to create the texture.
             *
             * @returns For WebGL backend, a GPUData contains the new texture and
             *     its information.
             *     {
             *        tensorRef: The tensor that is associated with this texture,
             *        texture: WebGLTexture,
             *        texShape: [number, number] // [height, width]
             *     }
             *
             *     For WebGPU backend, a GPUData contains the new buffer and
             *     its information.
             *     {
             *        tensorRef: The tensor that is associated with this buffer,
             *        buffer: GPUBuffer,
             *        bufSize: number
             *     }
             *
             *     Remember to dispose the GPUData after it is used by
             *     `res.tensorRef.dispose()`.
             *
             * @doc {heading: 'Tensors', subheading: 'Classes'}
             */
            dataToGPU(options) {
                this.throwIfDisposed();
                return trackerFn().readToGPU(this.dataId, options);
            }
            /**
             * Synchronously downloads the values from the `tf.Tensor`. This blocks the
             * UI thread until the values are ready, which can cause performance issues.
             *
             * @doc {heading: 'Tensors', subheading: 'Classes'}
             */
            dataSync() {
                this.throwIfDisposed();
                const data = trackerFn().readSync(this.dataId);
                if (this.dtype === 'string') {
                    try {
                        return data.map(b => util.decodeString(b));
                    } catch (_a) {
                        throw new Error('Failed to decode the string bytes into utf-8. ' + 'To get the original bytes, call tensor.bytes().');
                    }
                }
                return data;
            }
            /** Returns the underlying bytes of the tensor's data. */
            async bytes() {
                this.throwIfDisposed();
                const data = await trackerFn().read(this.dataId);
                if (this.dtype === 'string') {
                    return data;
                } else {
                    return new Uint8Array(data.buffer);
                }
            }
            /**
             * Disposes `tf.Tensor` from memory.
             *
             * @doc {heading: 'Tensors', subheading: 'Classes'}
             */
            dispose() {
                if (this.isDisposed) {
                    return;
                }
                trackerFn().disposeTensor(this);
                this.isDisposedInternal = true;
            }
            get isDisposed() {
                return this.isDisposedInternal;
            }
            throwIfDisposed() {
                if (this.isDisposed) {
                    throw new Error(`Tensor is disposed.`);
                }
            }
            /**
             * Prints the `tf.Tensor`. See `tf.print` for details.
             *
             * @param verbose Whether to print verbose information about the tensor,
             *    including dtype and size.
             *
             * @doc {heading: 'Tensors', subheading: 'Classes'}
             */
            print(verbose = false) {
                return opHandler.print(this, verbose);
            }
            /**
             * Returns a copy of the tensor. See `tf.clone` for details.
             * @doc {heading: 'Tensors', subheading: 'Classes'}
             */
            clone() {
                this.throwIfDisposed();
                return opHandler.clone(this);
            }
            /**
             * Returns a human-readable description of the tensor. Useful for logging.
             *
             * @doc {heading: 'Tensors', subheading: 'Classes'}
             */
            toString(verbose = false) {
                const vals = this.dataSync();
                return (0,
                    _tensor_format.tensorToString)(vals, this.shape, this.dtype, verbose);
            }
            cast(dtype) {
                this.throwIfDisposed();
                return opHandler.cast(this, dtype);
            }
            variable(trainable = true, name, dtype) {
                this.throwIfDisposed();
                return trackerFn().makeVariable(this, trainable, name, dtype);
            }
        }
        exports.Tensor = Tensor;
        Object.defineProperty(Tensor, Symbol.hasInstance, {
            value: instance => {
                // Implementation note: we should use properties of the object that will be
                // defined before the constructor body has finished executing (methods).
                // This is because when this code is transpiled by babel, babel will call
                // classCallCheck before the constructor body is run.
                // See https://github.com/tensorflow/tfjs/issues/3384 for backstory.
                return !!instance && instance.data != null && instance.dataSync != null && instance.throwIfDisposed != null;
            }
        });
        function getGlobalTensorClass() {
            // Use getGlobal so that we can augment the Tensor class across package
            // boundaries becase the node resolution alg may result in different modules
            // being returned for this file depending on the path they are loaded from.
            return (0,
                _global_util.getGlobal)('Tensor', () => {
                    return Tensor;
                }
                );
        }
        // Global side effect. Cache global reference to Tensor class
        getGlobalTensorClass();
        /**
         * A mutable `tf.Tensor`, useful for persisting state, e.g. for training.
         *
         * @doc {heading: 'Tensors', subheading: 'Classes'}
         */
        class Variable extends Tensor {
            constructor(initialValue, trainable, name, tensorId) {
                super(initialValue.shape, initialValue.dtype, initialValue.dataId, tensorId);
                this.trainable = trainable;
                this.name = name;
            }
            /**
             * Assign a new `tf.Tensor` to this variable. The new `tf.Tensor` must have
             * the same shape and dtype as the old `tf.Tensor`.
             *
             * @param newValue New tensor to be assigned to this variable.
             *
             * @doc {heading: 'Tensors', subheading: 'Classes'}
             */
            assign(newValue) {
                if (newValue.dtype !== this.dtype) {
                    throw new Error(`dtype of the new value (${newValue.dtype}) and ` + `previous value (${this.dtype}) must match`);
                }
                if (!util.arraysEqual(newValue.shape, this.shape)) {
                    throw new Error(`shape of the new value (${newValue.shape}) and ` + `previous value (${this.shape}) must match`);
                }
                trackerFn().disposeTensor(this);
                this.dataId = newValue.dataId;
                trackerFn().incRef(this, null /* backend */
                );
            }

            dispose() {
                trackerFn().disposeVariable(this);
                this.isDisposedInternal = true;
            }
        }
        exports.Variable = Variable;
        Object.defineProperty(Variable, Symbol.hasInstance, {
            value: instance => {
                return instance instanceof Tensor && instance.assign != null && instance.assign instanceof Function;
            }
        });

    }
        , {
        "./global_util": 80,
        "./tensor_format": 502,
        "./util": 509
    }],
    502: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.tensorToString = tensorToString;
        var _util = require("./util");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        // Maximum number of values before we decide to show ellipsis.
        const FORMAT_LIMIT_NUM_VALS = 20;
        // Number of first and last values to show when displaying a, b,...,y, z.
        const FORMAT_NUM_FIRST_LAST_VALS = 3;
        // Number of significant digits to show.
        const FORMAT_NUM_SIG_DIGITS = 7;
        function tensorToString(vals, shape, dtype, verbose) {
            const strides = (0,
                _util.computeStrides)(shape);
            const padPerCol = computeMaxSizePerColumn(vals, shape, dtype, strides);
            const rank = shape.length;
            const valsLines = subTensorToString(vals, shape, dtype, strides, padPerCol);
            const lines = ['Tensor'];
            if (verbose) {
                lines.push(`  dtype: ${dtype}`);
                lines.push(`  rank: ${rank}`);
                lines.push(`  shape: [${shape}]`);
                lines.push(`  values:`);
            }
            lines.push(valsLines.map(l => '    ' + l).join('\n'));
            return lines.join('\n');
        }
        function computeMaxSizePerColumn(vals, shape, dtype, strides) {
            const n = (0,
                _util.sizeFromShape)(shape);
            const numCols = strides[strides.length - 1];
            const padPerCol = new Array(numCols).fill(0);
            const rank = shape.length;
            const valuesOrTuples = dtype === 'complex64' ? createComplexTuples(vals) : vals;
            if (rank > 1) {
                for (let row = 0; row < n / numCols; row++) {
                    const offset = row * numCols;
                    for (let j = 0; j < numCols; j++) {
                        padPerCol[j] = Math.max(padPerCol[j], valToString(valuesOrTuples[offset + j], 0, dtype).length);
                    }
                }
            }
            return padPerCol;
        }
        function valToString(val, pad, dtype) {
            let valStr;
            if (Array.isArray(val)) {
                valStr = `${parseFloat(val[0].toFixed(FORMAT_NUM_SIG_DIGITS))} + ` + `${parseFloat(val[1].toFixed(FORMAT_NUM_SIG_DIGITS))}j`;
            } else if ((0,
                _util.isString)(val)) {
                valStr = `'${val}'`;
            } else if (dtype === 'bool') {
                valStr = boolNumToString(val);
            } else {
                valStr = parseFloat(val.toFixed(FORMAT_NUM_SIG_DIGITS)).toString();
            }
            return (0,
                _util.rightPad)(valStr, pad);
        }
        function boolNumToString(v) {
            return v === 0 ? 'false' : 'true';
        }
        function subTensorToString(vals, shape, dtype, strides, padPerCol, isLast = true) {
            const storagePerElement = dtype === 'complex64' ? 2 : 1;
            const size = shape[0];
            const rank = shape.length;
            if (rank === 0) {
                if (dtype === 'complex64') {
                    const complexTuple = createComplexTuples(vals);
                    return [valToString(complexTuple[0], 0, dtype)];
                }
                if (dtype === 'bool') {
                    return [boolNumToString(vals[0])];
                }
                return [vals[0].toString()];
            }
            if (rank === 1) {
                if (size > FORMAT_LIMIT_NUM_VALS) {
                    const firstValsSize = FORMAT_NUM_FIRST_LAST_VALS * storagePerElement;
                    let firstVals = Array.from(vals.slice(0, firstValsSize));
                    let lastVals = Array.from(vals.slice((size - FORMAT_NUM_FIRST_LAST_VALS) * storagePerElement, size * storagePerElement));
                    if (dtype === 'complex64') {
                        firstVals = createComplexTuples(firstVals);
                        lastVals = createComplexTuples(lastVals);
                    }
                    return ['[' + firstVals.map((x, i) => valToString(x, padPerCol[i], dtype)).join(', ') + ', ..., ' + lastVals.map((x, i) => valToString(x, padPerCol[size - FORMAT_NUM_FIRST_LAST_VALS + i], dtype)).join(', ') + ']'];
                }
                const displayVals = dtype === 'complex64' ? createComplexTuples(vals) : Array.from(vals);
                return ['[' + displayVals.map((x, i) => valToString(x, padPerCol[i], dtype)).join(', ') + ']'];
            }
            // The array is rank 2 or more.
            const subshape = shape.slice(1);
            const substrides = strides.slice(1);
            const stride = strides[0] * storagePerElement;
            const lines = [];
            if (size > FORMAT_LIMIT_NUM_VALS) {
                for (let i = 0; i < FORMAT_NUM_FIRST_LAST_VALS; i++) {
                    const start = i * stride;
                    const end = start + stride;
                    lines.push(...subTensorToString(vals.slice(start, end), subshape, dtype, substrides, padPerCol, false /* isLast */
                    ));
                }

                lines.push('...');
                for (let i = size - FORMAT_NUM_FIRST_LAST_VALS; i < size; i++) {
                    const start = i * stride;
                    const end = start + stride;
                    lines.push(...subTensorToString(vals.slice(start, end), subshape, dtype, substrides, padPerCol, i === size - 1 /* isLast */
                    ));
                }
            } else {
                for (let i = 0; i < size; i++) {
                    const start = i * stride;
                    const end = start + stride;
                    lines.push(...subTensorToString(vals.slice(start, end), subshape, dtype, substrides, padPerCol, i === size - 1 /* isLast */
                    ));
                }
            }

            const sep = rank === 2 ? ',' : '';
            lines[0] = '[' + lines[0] + sep;
            for (let i = 1; i < lines.length - 1; i++) {
                lines[i] = ' ' + lines[i] + sep;
            }
            let newLineSep = ',\n';
            for (let i = 2; i < rank; i++) {
                newLineSep += '\n';
            }
            lines[lines.length - 1] = ' ' + lines[lines.length - 1] + ']' + (isLast ? '' : newLineSep);
            return lines;
        }
        function createComplexTuples(vals) {
            const complexTuples = [];
            for (let i = 0; i < vals.length; i += 2) {
                complexTuples.push([vals[i], vals[i + 1]]);
            }
            return complexTuples;
        }

    }
        , {
        "./util": 509
    }],
    503: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.assertTypesMatch = assertTypesMatch;
        exports.getTensorsInContainer = getTensorsInContainer;
        exports.isTensorInList = isTensorInList;
        exports.makeTypesMatch = makeTypesMatch;
        var _tensor = require("./tensor");
        var _types = require("./types");
        var _util = require("./util");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        function makeTypesMatch(a, b) {
            if (a.dtype === b.dtype) {
                return [a, b];
            }
            const dtype = (0,
                _types.upcastType)(a.dtype, b.dtype);
            return [a.cast(dtype), b.cast(dtype)];
        }
        function assertTypesMatch(a, b) {
            (0,
                _util.assert)(a.dtype === b.dtype, () => `The dtypes of the first(${a.dtype}) and` + ` second(${b.dtype}) input must match`);
        }
        function isTensorInList(tensor, tensorList) {
            return tensorList.some(x => x.id === tensor.id);
        }
        /**
         * Extracts any `Tensor`s found within the provided object.
         *
         * @param container an object that may be a `Tensor` or may directly contain
         *   `Tensor`s, such as a `Tensor[]` or `{key: Tensor, ...}`. In general it
         *   is safe to pass any object here, except that `Promise`s are not
         *   supported.
         * @returns An array of `Tensors` found within the passed object. If the
         *   argument is simply a `Tensor', a list containing that `Tensor` is
         *   returned. If the object is not a `Tensor` or does not
         *   contain `Tensors`, an empty list is returned.
         */
        function getTensorsInContainer(result) {
            const list = [];
            const seen = new Set();
            walkTensorContainer(result, list, seen);
            return list;
        }
        function walkTensorContainer(container, list, seen) {
            if (container == null) {
                return;
            }
            if (container instanceof _tensor.Tensor) {
                list.push(container);
                return;
            }
            if (!isIterable(container)) {
                return;
            }
            // Iteration over keys works also for arrays.
            const iterable = container;
            for (const k in iterable) {
                const val = iterable[k];
                if (!seen.has(val)) {
                    seen.add(val);
                    walkTensorContainer(val, list, seen);
                }
            }
        }
        // tslint:disable-next-line:no-any
        function isIterable(obj) {
            return Array.isArray(obj) || typeof obj === 'object';
        }

    }
        , {
        "./tensor": 501,
        "./types": 508,
        "./util": 509
    }],
    504: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.convertToTensor = convertToTensor;
        exports.convertToTensorArray = convertToTensorArray;
        exports.inferShape = inferShape;
        var _engine = require("./engine");
        var _environment = require("./environment");
        var _tensor = require("./tensor");
        var _util = require("./util");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        function inferShape(val, dtype) {
            let firstElem = val;
            if ((0,
                _util.isTypedArray)(val)) {
                return dtype === 'string' ? [] : [val.length];
            }
            if (typeof val === 'object' && 'texture' in val) {
                const usedChannels = val.channels || 'RGBA';
                return [val.height, val.width * usedChannels.length];
            }
            if (!Array.isArray(val)) {
                return [];
                // Scalar.
            }

            const shape = [];
            while (Array.isArray(firstElem) || (0,
                _util.isTypedArray)(firstElem) && dtype !== 'string') {
                shape.push(firstElem.length);
                firstElem = firstElem[0];
            }
            if (Array.isArray(val) && (0,
                _environment.env)().getBool('TENSORLIKE_CHECK_SHAPE_CONSISTENCY')) {
                deepAssertShapeConsistency(val, shape, []);
            }
            return shape;
        }
        function deepAssertShapeConsistency(val, shape, indices) {
            indices = indices || [];
            if (!Array.isArray(val) && !(0,
                _util.isTypedArray)(val)) {
                (0,
                    _util.assert)(shape.length === 0, () => `Element arr[${indices.join('][')}] is a primitive, ` + `but should be an array/TypedArray of ${shape[0]} elements`);
                return;
            }
            (0,
                _util.assert)(shape.length > 0, () => `Element arr[${indices.join('][')}] should be a primitive, ` + `but is an array of ${val.length} elements`);
            (0,
                _util.assert)(val.length === shape[0], () => `Element arr[${indices.join('][')}] should have ${shape[0]} ` + `elements, but has ${val.length} elements`);
            const subShape = shape.slice(1);
            for (let i = 0; i < val.length; ++i) {
                deepAssertShapeConsistency(val[i], subShape, indices.concat(i));
            }
        }
        function assertDtype(expectedDtype, actualDType, argName, functionName) {
            if (expectedDtype === 'string_or_numeric') {
                return;
            }
            if (expectedDtype == null) {
                throw new Error(`Expected dtype cannot be null.`);
            }
            if (expectedDtype !== 'numeric' && expectedDtype !== actualDType || expectedDtype === 'numeric' && actualDType === 'string') {
                throw new Error(`Argument '${argName}' passed to '${functionName}' must ` + `be ${expectedDtype} tensor, but got ${actualDType} tensor`);
            }
        }
        function convertToTensor(x, argName, functionName, parseAsDtype = 'numeric') {
            if (x instanceof _tensor.Tensor) {
                assertDtype(parseAsDtype, x.dtype, argName, functionName);
                return x;
            }
            let inferredDtype = (0,
                _util.inferDtype)(x);
            // If the user expects a bool/int/float, use that info to update the
            // inferredDtype when it is not a string.
            if (inferredDtype !== 'string' && ['bool', 'int32', 'float32'].indexOf(parseAsDtype) >= 0) {
                inferredDtype = parseAsDtype;
            }
            assertDtype(parseAsDtype, inferredDtype, argName, functionName);
            if (x == null || !(0,
                _util.isTypedArray)(x) && !Array.isArray(x) && typeof x !== 'number' && typeof x !== 'boolean' && typeof x !== 'string') {
                const type = x == null ? 'null' : x.constructor.name;
                throw new Error(`Argument '${argName}' passed to '${functionName}' must be a ` + `Tensor or TensorLike, but got '${type}'`);
            }
            const inferredShape = inferShape(x, inferredDtype);
            if (!(0,
                _util.isTypedArray)(x) && !Array.isArray(x)) {
                x = [x];
            }
            const skipTypedArray = true;
            const values = inferredDtype !== 'string' ? (0,
                _util.toTypedArray)(x, inferredDtype) : (0,
                    _util.flatten)(x, [], skipTypedArray);
            return _engine.ENGINE.makeTensor(values, inferredShape, inferredDtype);
        }
        function convertToTensorArray(arg, argName, functionName, parseAsDtype = 'numeric') {
            if (!Array.isArray(arg)) {
                throw new Error(`Argument ${argName} passed to ${functionName} must be a ` + '`Tensor[]` or `TensorLike[]`');
            }
            const tensors = arg;
            return tensors.map((t, i) => convertToTensor(t, `${argName}[${i}]`, functionName, parseAsDtype));
        }

    }
        , {
        "./engine": 77,
        "./environment": 78,
        "./tensor": 501,
        "./util": 509
    }],
    505: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.TEST_EPSILON_FLOAT16 = void 0;
        exports.createVideoElement = createVideoElement;
        exports.encodeStrings = encodeStrings;
        exports.expectArrayBuffersEqual = expectArrayBuffersEqual;
        exports.expectArraysClose = expectArraysClose;
        exports.expectArraysEqual = expectArraysEqual;
        exports.expectNumbersClose = expectNumbersClose;
        exports.expectPromiseToFail = expectPromiseToFail;
        exports.expectValuesInRange = expectValuesInRange;
        exports.play = play;
        exports.testEpsilon = testEpsilon;
        var _engine = require("./engine");
        var _tensor_util_env = require("./tensor_util_env");
        var _util = require("./util");
        /**
         * @license
         * Copyright 2017 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const TEST_EPSILON_FLOAT32 = 1e-3;
        const TEST_EPSILON_FLOAT16 = 1e-1;
        exports.TEST_EPSILON_FLOAT16 = TEST_EPSILON_FLOAT16;
        function expectArraysClose(actual, expected, epsilon) {
            if (epsilon == null) {
                epsilon = testEpsilon();
            }
            return expectArraysPredicate(actual, expected, (a, b) => areClose(a, b, epsilon));
        }
        function testEpsilon() {
            return _engine.ENGINE.backend.floatPrecision() === 32 ? TEST_EPSILON_FLOAT32 : TEST_EPSILON_FLOAT16;
        }
        function expectArraysPredicate(actual, expected, predicate) {
            let checkClassType = true;
            if ((0,
                _util.isTypedArray)(actual) || (0,
                    _util.isTypedArray)(expected)) {
                checkClassType = false;
            }
            if ((0,
                _util.isTypedArray)(actual) && (0,
                    _util.isTypedArray)(expected)) {
                checkClassType = true;
            }
            if (checkClassType) {
                const aType = actual.constructor.name;
                const bType = expected.constructor.name;
                if (aType !== bType) {
                    throw new Error(`Arrays are of different type. Actual: ${aType}. ` + `Expected: ${bType}`);
                }
            }
            if (Array.isArray(actual) && Array.isArray(expected)) {
                const actualShape = (0,
                    _tensor_util_env.inferShape)(actual);
                const expectedShape = (0,
                    _tensor_util_env.inferShape)(expected);
                if (!(0,
                    _util.arraysEqual)(actualShape, expectedShape)) {
                    throw new Error(`Arrays have different shapes. ` + `Actual: [${actualShape}]. Expected: [${expectedShape}]`);
                }
            }
            const actualFlat = (0,
                _util.isTypedArray)(actual) ? actual : (0,
                    _util.flatten)(actual);
            const expectedFlat = (0,
                _util.isTypedArray)(expected) ? expected : (0,
                    _util.flatten)(expected);
            if (actualFlat.length !== expectedFlat.length) {
                throw new Error(`Arrays have different lengths actual: ${actualFlat.length} vs ` + `expected: ${expectedFlat.length}.\n` + `Actual:   ${actualFlat}.\n` + `Expected: ${expectedFlat}.`);
            }
            for (let i = 0; i < expectedFlat.length; ++i) {
                const a = actualFlat[i];
                const e = expectedFlat[i];
                if (!predicate(a, e)) {
                    throw new Error(`Arrays differ: actual[${i}] = ${a}, expected[${i}] = ${e}.\n` + `Actual:   ${actualFlat}.\n` + `Expected: ${expectedFlat}.`);
                }
            }
            if (typeof expect !== 'undefined') {
                expect().nothing();
            }
        }
        function expectPromiseToFail(fn, done) {
            fn().then(() => done.fail(), () => done());
            if (typeof expect !== 'undefined') {
                expect().nothing();
            }
        }
        function expectArraysEqual(actual, expected) {
            const exp = typeof expected === 'string' || typeof expected === 'number' || typeof expected === 'boolean' ? [expected] : expected;
            if ((0,
                _util.isString)(actual) || (0,
                    _util.isString)(actual[0]) || (0,
                        _util.isString)(expected) || (0,
                            _util.isString)(expected[0])) {
                // tslint:disable-next-line: triple-equals
                return expectArraysPredicate(actual, exp, (a, b) => a == b);
            }
            return expectArraysPredicate(actual, expected, (a, b) => areClose(a, b, 0));
        }
        function expectNumbersClose(a, e, epsilon) {
            if (epsilon == null) {
                epsilon = testEpsilon();
            }
            if (!areClose(a, e, epsilon)) {
                throw new Error(`Numbers differ: actual === ${a}, expected === ${e}`);
            }
            if (typeof expect !== 'undefined') {
                expect().nothing();
            }
        }
        function areClose(a, e, epsilon) {
            if (!isFinite(a) && !isFinite(e)) {
                return true;
            }
            if (isNaN(a) || isNaN(e) || Math.abs(a - e) > epsilon) {
                return false;
            }
            return true;
        }
        function expectValuesInRange(actual, low, high) {
            for (let i = 0; i < actual.length; i++) {
                if (actual[i] < low || actual[i] > high) {
                    throw new Error(`Value out of range:${actual[i]} low: ${low}, high: ${high}`);
                }
            }
        }
        function expectArrayBuffersEqual(actual, expected) {
            // Safari does not like comparing ArrayBuffers directly. Wrapping in
            // a Float32Array solves this issue.
            const actualArray = new Float32Array(actual);
            const expectedArray = new Float32Array(expected);
            if (actualArray.length !== expectedArray.length) {
                throw new Error('Expected ArrayBuffer to be of length ' + `${expectedArray.length}, but it was ${actualArray.length}`);
            }
            for (let i = 0; i < expectedArray.length; i++) {
                if (actualArray[i] !== expectedArray[i]) {
                    throw new Error(`Expected ArrayBuffer value at ${i} to be ` + `${expectedArray[i]} but got ${actualArray[i]} instead`);
                }
            }
        }
        /** Encodes strings into utf-8 bytes. */
        function encodeStrings(a) {
            for (let i = 0; i < a.length; i++) {
                const val = a[i];
                if (Array.isArray(val)) {
                    encodeStrings(val);
                } else {
                    a[i] = (0,
                        _util.encodeString)(val);
                }
            }
            return a;
        }
        /** Creates an HTMLVideoElement with autoplay-friendly default settings. */
        function createVideoElement(source) {
            const video = document.createElement('video');
            if ('playsInline' in video) {
                // tslint:disable-next-line:no-any
                video.playsInline = true;
            }
            video.muted = true;
            video.loop = true;
            video.style.position = 'fixed';
            video.style.left = '0px';
            video.style.top = '0px';
            video.preload = 'auto';
            video.appendChild(source);
            return new Promise(resolve => {
                video.addEventListener('loadeddata', _ => resolve(video));
                video.load();
            }
            );
        }
        async function play(video) {
            await video.play();
            if ('requestVideoFrameCallback' in video) {
                await new Promise(resolve => {
                    // tslint:disable-next-line:no-any
                    video.requestVideoFrameCallback(resolve);
                }
                );
            }
        }

    }
        , {
        "./engine": 77,
        "./tensor_util_env": 504,
        "./util": 509
    }],
    506: [function (require, module, exports) {
        (function (process, global, Buffer, __argument0, __argument1, __argument2, __argument3, setImmediate) {
            (function () {
                /**
 * @license
 * Copyright 2022 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                'use strict';
                Object.defineProperty(exports, '__esModule', {
                    value: true
                });
                function _mergeNamespaces(n, m) {
                    m.forEach(function (e) {
                        Object.keys(e).forEach(function (k) {
                            if (k !== 'default' && !(k in n)) {
                                var d = Object.getOwnPropertyDescriptor(e, k);
                                Object.defineProperty(n, k, d.get ? d : {
                                    enumerable: true,
                                    get: function () {
                                        return e[k];
                                    }
                                });
                            }
                        });
                    });
                    return n;
                }
                /******************************************************************************
Copyright (c) Microsoft Corporation.

Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */
                /* global Reflect, Promise */
                var extendStatics = function (d, b) {
                    extendStatics = Object.setPrototypeOf || {
                        __proto__: []
                    } instanceof Array && function (d, b) {
                        d.__proto__ = b;
                    }
                        || function (d, b) {
                            for (var p in b)
                                if (Object.prototype.hasOwnProperty.call(b, p))
                                    d[p] = b[p];
                        }
                        ;
                    return extendStatics(d, b);
                };
                function __extends(d, b) {
                    if (typeof b !== "function" && b !== null)
                        throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
                    extendStatics(d, b);
                    function __() {
                        this.constructor = d;
                    }
                    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype,
                        new __());
                }

                function __awaiter(thisArg, _arguments, P, generator) {
                    function adopt(value) {
                        return value instanceof P ? value : new P(function (resolve) {
                            resolve(value);
                        });
                    }
                    return new (P || (P = Promise))(function (resolve, reject) {
                        function fulfilled(value) {
                            try {
                                step(generator.next(value));
                            } catch (e) {
                                reject(e);
                            }
                        }
                        function rejected(value) {
                            try {
                                step(generator["throw"](value));
                            } catch (e) {
                                reject(e);
                            }
                        }
                        function step(result) {
                            result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
                        }
                        step((generator = generator.apply(thisArg, _arguments || [])).next());
                    });
                }

                function __generator(thisArg, body) {
                    var _ = {
                        label: 0,
                        sent: function () {
                            if (t[0] & 1)
                                throw t[1];
                            return t[1];
                        },
                        trys: [],
                        ops: []
                    }, f, y, t, g;
                    return g = {
                        next: verb(0),
                        "throw": verb(1),
                        "return": verb(2)
                    },
                        typeof Symbol === "function" && (g[Symbol.iterator] = function () {
                            return this;
                        }
                        ),
                        g;
                    function verb(n) {
                        return function (v) {
                            return step([n, v]);
                        }
                            ;
                    }
                    function step(op) {
                        if (f)
                            throw new TypeError("Generator is already executing.");
                        while (_)
                            try {
                                if (f = 1,
                                    y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y),
                                        0) : y.next) && !(t = t.call(y, op[1])).done)
                                    return t;
                                if (y = 0,
                                    t)
                                    op = [op[0] & 2, t.value];
                                switch (op[0]) {
                                    case 0:
                                    case 1:
                                        t = op;
                                        break;
                                    case 4:
                                        _.label++;
                                        return {
                                            value: op[1],
                                            done: false
                                        };
                                    case 5:
                                        _.label++;
                                        y = op[1];
                                        op = [0];
                                        continue;
                                    case 7:
                                        op = _.ops.pop();
                                        _.trys.pop();
                                        continue;
                                    default:
                                        if (!(t = _.trys,
                                            t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
                                            _ = 0;
                                            continue;
                                        }
                                        if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
                                            _.label = op[1];
                                            break;
                                        }
                                        if (op[0] === 6 && _.label < t[1]) {
                                            _.label = t[1];
                                            t = op;
                                            break;
                                        }
                                        if (t && _.label < t[2]) {
                                            _.label = t[2];
                                            _.ops.push(op);
                                            break;
                                        }
                                        if (t[2])
                                            _.ops.pop();
                                        _.trys.pop();
                                        continue;
                                }
                                op = body.call(thisArg, _);
                            } catch (e) {
                                op = [6, e];
                                y = 0;
                            } finally {
                                f = t = 0;
                            }
                        if (op[0] & 5)
                            throw op[1];
                        return {
                            value: op[0] ? op[1] : void 0,
                            done: true
                        };
                    }
                }
                function __values(o) {
                    var s = typeof Symbol === "function" && Symbol.iterator
                        , m = s && o[s]
                        , i = 0;
                    if (m)
                        return m.call(o);
                    if (o && typeof o.length === "number")
                        return {
                            next: function () {
                                if (o && i >= o.length)
                                    o = void 0;
                                return {
                                    value: o && o[i++],
                                    done: !o
                                };
                            }
                        };
                    throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
                }
                function __read(o, n) {
                    var m = typeof Symbol === "function" && o[Symbol.iterator];
                    if (!m)
                        return o;
                    var i = m.call(o), r, ar = [], e;
                    try {
                        while ((n === void 0 || n-- > 0) && !(r = i.next()).done)
                            ar.push(r.value);
                    } catch (error) {
                        e = {
                            error: error
                        };
                    } finally {
                        try {
                            if (r && !r.done && (m = i["return"]))
                                m.call(i);
                        } finally {
                            if (e)
                                throw e.error;
                        }
                    }
                    return ar;
                }
                function __spreadArray(to, from, pack) {
                    if (pack || arguments.length === 2)
                        for (var i = 0, l = from.length, ar; i < l; i++) {
                            if (ar || !(i in from)) {
                                if (!ar)
                                    ar = Array.prototype.slice.call(from, 0, i);
                                ar[i] = from[i];
                            }
                        }
                    return to.concat(ar || Array.prototype.slice.call(from));
                }
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                var EPSILON_FLOAT32 = 1e-7;
                var EPSILON_FLOAT16 = 1e-4;
                /** Convenient class for storing tensor-related data. */
                var DataStorage = /** @class */
                    function () {
                        function DataStorage(backend, dataMover) {
                            this.backend = backend;
                            this.dataMover = dataMover;
                            this.data = new WeakMap();
                            this.dataIdsCount = 0;
                        }
                        DataStorage.prototype.get = function (dataId) {
                            if (!this.data.has(dataId)) {
                                this.dataMover.moveData(this.backend, dataId);
                            }
                            return this.data.get(dataId);
                        }
                            ;
                        DataStorage.prototype.set = function (dataId, value) {
                            this.dataIdsCount++;
                            this.data.set(dataId, value);
                        }
                            ;
                        DataStorage.prototype.has = function (dataId) {
                            return this.data.has(dataId);
                        }
                            ;
                        DataStorage.prototype.delete = function (dataId) {
                            this.dataIdsCount--;
                            return this.data.delete(dataId);
                        }
                            ;
                        DataStorage.prototype.numDataIds = function () {
                            return this.dataIdsCount;
                        }
                            ;
                        return DataStorage;
                    }();
                /**
 * The interface that defines the kernels that should be implemented when
 * adding a new backend. New backends don't need to implement every one of the
 * methods, this can be done gradually (throw an error for unimplemented
 * methods).
 */
                var KernelBackend = /** @class */
                    function () {
                        function KernelBackend() { }
                        KernelBackend.prototype.refCount = function (dataId) {
                            return notYetImplemented('refCount');
                        }
                            ;
                        KernelBackend.prototype.incRef = function (dataId) {
                            return notYetImplemented('incRef');
                        }
                            ;
                        KernelBackend.prototype.timerAvailable = function () {
                            return true;
                        }
                            ;
                        KernelBackend.prototype.time = function (f) {
                            return notYetImplemented('time');
                        }
                            ;
                        KernelBackend.prototype.read = function (dataId) {
                            return notYetImplemented('read');
                        }
                            ;
                        KernelBackend.prototype.readSync = function (dataId) {
                            return notYetImplemented('readSync');
                        }
                            ;
                        KernelBackend.prototype.readToGPU = function (dataId, options) {
                            return notYetImplemented('readToGPU');
                        }
                            ;
                        KernelBackend.prototype.numDataIds = function () {
                            return notYetImplemented('numDataIds');
                        }
                            ;
                        KernelBackend.prototype.disposeData = function (dataId, force) {
                            return notYetImplemented('disposeData');
                        }
                            ;
                        KernelBackend.prototype.write = function (values, shape, dtype) {
                            return notYetImplemented('write');
                        }
                            ;
                        KernelBackend.prototype.move = function (dataId, values, shape, dtype, refCount) {
                            return notYetImplemented('move');
                        }
                            ;
                        KernelBackend.prototype.createTensorFromTexture = function (values, shape, dtype) {
                            return notYetImplemented('createTensorFromTexture');
                        }
                            ;
                        KernelBackend.prototype.memory = function () {
                            return notYetImplemented('memory');
                        }
                            ;
                        /** Returns the highest precision for floats in bits (e.g. 16 or 32) */
                        KernelBackend.prototype.floatPrecision = function () {
                            return notYetImplemented('floatPrecision');
                        }
                            ;
                        /** Returns the smallest representable number.  */
                        KernelBackend.prototype.epsilon = function () {
                            return this.floatPrecision() === 32 ? EPSILON_FLOAT32 : EPSILON_FLOAT16;
                        }
                            ;
                        KernelBackend.prototype.dispose = function () {
                            return notYetImplemented('dispose');
                        }
                            ;
                        return KernelBackend;
                    }();
                function notYetImplemented(kernelName) {
                    throw new Error("'".concat(kernelName, "' not yet implemented or not found in the registry. ") + "This kernel may not be supported by the tfjs backend you have chosen");
                }
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Shuffles the array in-place using Fisher-Yates algorithm.
 *
 * ```js
 * const a = [1, 2, 3, 4, 5];
 * tf.util.shuffle(a);
 * console.log(a);
 * ```
 *
 * @param array The array to shuffle in-place.
 *
 * @doc {heading: 'Util', namespace: 'util'}
 */
                // tslint:disable-next-line:no-any
                function shuffle(array) {
                    var counter = array.length;
                    var index = 0;
                    // While there are elements in the array
                    while (counter > 0) {
                        // Pick a random index
                        index = Math.random() * counter | 0;
                        // Decrease counter by 1
                        counter--;
                        // And swap the last element with it
                        swap(array, counter, index);
                    }
                }
                /**
 * Shuffles two arrays in-place the same way using Fisher-Yates algorithm.
 *
 * ```js
 * const a = [1,2,3,4,5];
 * const b = [11,22,33,44,55];
 * tf.util.shuffleCombo(a, b);
 * console.log(a, b);
 * ```
 *
 * @param array The first array to shuffle in-place.
 * @param array2 The second array to shuffle in-place with the same permutation
 *     as the first array.
 *
 * @doc {heading: 'Util', namespace: 'util'}
 */
                function shuffleCombo(// tslint:disable-next-line:no-any
                    array, // tslint:disable-next-line:no-any
                    array2) {
                    if (array.length !== array2.length) {
                        throw new Error("Array sizes must match to be shuffled together " + "First array length was ".concat(array.length) + "Second array length was ".concat(array2.length));
                    }
                    var counter = array.length;
                    var index = 0;
                    // While there are elements in the array
                    while (counter > 0) {
                        // Pick a random index
                        index = Math.random() * counter | 0;
                        // Decrease counter by 1
                        counter--;
                        // And swap the last element of each array with it
                        swap(array, counter, index);
                        swap(array2, counter, index);
                    }
                }
                /** Clamps a value to a specified range. */
                function clamp(min, x, max) {
                    return Math.max(min, Math.min(x, max));
                }
                function nearestLargerEven(val) {
                    return val % 2 === 0 ? val : val + 1;
                }
                function swap(object, left, right) {
                    var temp = object[left];
                    object[left] = object[right];
                    object[right] = temp;
                }
                function sum$1(arr) {
                    var sum = 0;
                    for (var i = 0; i < arr.length; i++) {
                        sum += arr[i];
                    }
                    return sum;
                }
                /**
 * Returns a sample from a uniform [a, b) distribution.
 *
 * @param a The minimum support (inclusive).
 * @param b The maximum support (exclusive).
 * @return A pseudorandom number on the half-open interval [a,b).
 */
                function randUniform(a, b) {
                    var r = Math.random();
                    return b * r + (1 - r) * a;
                }
                /** Returns the squared Euclidean distance between two vectors. */
                function distSquared(a, b) {
                    var result = 0;
                    for (var i = 0; i < a.length; i++) {
                        var diff = Number(a[i]) - Number(b[i]);
                        result += diff * diff;
                    }
                    return result;
                }
                /**
 * Asserts that the expression is true. Otherwise throws an error with the
 * provided message.
 *
 * ```js
 * const x = 2;
 * tf.util.assert(x === 2, 'x is not 2');
 * ```
 *
 * @param expr The expression to assert (as a boolean).
 * @param msg A function that returns the message to report when throwing an
 *     error. We use a function for performance reasons.
 *
 * @doc {heading: 'Util', namespace: 'util'}
 */
                function assert(expr, msg) {
                    if (!expr) {
                        throw new Error(typeof msg === 'string' ? msg : msg());
                    }
                }
                function assertShapesMatch(shapeA, shapeB, errorMessagePrefix) {
                    if (errorMessagePrefix === void 0) {
                        errorMessagePrefix = '';
                    }
                    assert(arraysEqual(shapeA, shapeB), function () {
                        return errorMessagePrefix + " Shapes ".concat(shapeA, " and ").concat(shapeB, " must match");
                    });
                }
                function assertNonNull(a) {
                    assert(a != null, function () {
                        return "The input to the tensor constructor must be a non-null value.";
                    });
                }
                // NOTE: We explicitly type out what T extends instead of any so that
                // util.flatten on a nested array of number doesn't try to infer T as a
                // number[][], causing us to explicitly type util.flatten<number>().
                /**
 *  Flattens an arbitrarily nested array.
 *
 * ```js
 * const a = [[1, 2], [3, 4], [5, [6, [7]]]];
 * const flat = tf.util.flatten(a);
 * console.log(flat);
 * ```
 *
 *  @param arr The nested array to flatten.
 *  @param result The destination array which holds the elements.
 *  @param skipTypedArray If true, avoids flattening the typed arrays. Defaults
 *      to false.
 *
 * @doc {heading: 'Util', namespace: 'util'}
 */
                function flatten(arr, result, skipTypedArray) {
                    if (result === void 0) {
                        result = [];
                    }
                    if (skipTypedArray === void 0) {
                        skipTypedArray = false;
                    }
                    if (result == null) {
                        result = [];
                    }
                    if (Array.isArray(arr) || isTypedArray(arr) && !skipTypedArray) {
                        for (var i = 0; i < arr.length; ++i) {
                            flatten(arr[i], result, skipTypedArray);
                        }
                    } else {
                        result.push(arr);
                    }
                    return result;
                }
                /**
 * Returns the size (number of elements) of the tensor given its shape.
 *
 * ```js
 * const shape = [3, 4, 2];
 * const size = tf.util.sizeFromShape(shape);
 * console.log(size);
 * ```
 *
 * @doc {heading: 'Util', namespace: 'util'}
 */
                function sizeFromShape(shape) {
                    if (shape.length === 0) {
                        // Scalar.
                        return 1;
                    }
                    var size = shape[0];
                    for (var i = 1; i < shape.length; i++) {
                        size *= shape[i];
                    }
                    return size;
                }
                function isScalarShape(shape) {
                    return shape.length === 0;
                }
                function arraysEqual(n1, n2) {
                    if (n1 === n2) {
                        return true;
                    }
                    if (n1 == null || n2 == null) {
                        return false;
                    }
                    if (n1.length !== n2.length) {
                        return false;
                    }
                    for (var i = 0; i < n1.length; i++) {
                        if (n1[i] !== n2[i]) {
                            return false;
                        }
                    }
                    return true;
                }
                function isInt(a) {
                    return a % 1 === 0;
                }
                function tanh$1(x) {
                    // tslint:disable-next-line:no-any
                    if (Math.tanh != null) {
                        // tslint:disable-next-line:no-any
                        return Math.tanh(x);
                    }
                    if (x === Infinity) {
                        return 1;
                    } else if (x === -Infinity) {
                        return -1;
                    } else {
                        var e2x = Math.exp(2 * x);
                        return (e2x - 1) / (e2x + 1);
                    }
                }
                function sizeToSquarishShape(size) {
                    var width = Math.ceil(Math.sqrt(size));
                    return [width, Math.ceil(size / width)];
                }
                /**
 * Creates a new array with randomized indices to a given quantity.
 *
 * ```js
 * const randomTen = tf.util.createShuffledIndices(10);
 * console.log(randomTen);
 * ```
 *
 * @param number Quantity of how many shuffled indices to create.
 *
 * @doc {heading: 'Util', namespace: 'util'}
 */
                function createShuffledIndices(n) {
                    var shuffledIndices = new Uint32Array(n);
                    for (var i = 0; i < n; ++i) {
                        shuffledIndices[i] = i;
                    }
                    shuffle(shuffledIndices);
                    return shuffledIndices;
                }
                function rightPad(a, size) {
                    if (size <= a.length) {
                        return a;
                    }
                    return a + ' '.repeat(size - a.length);
                }
                function repeatedTry(checkFn, delayFn, maxCounter, scheduleFn) {
                    if (delayFn === void 0) {
                        delayFn = function (counter) {
                            return 0;
                        }
                            ;
                    }
                    return new Promise(function (resolve, reject) {
                        var tryCount = 0;
                        var tryFn = function () {
                            if (checkFn()) {
                                resolve();
                                return;
                            }
                            tryCount++;
                            var nextBackoff = delayFn(tryCount);
                            if (maxCounter != null && tryCount >= maxCounter) {
                                reject();
                                return;
                            }
                            if (scheduleFn != null) {
                                scheduleFn(tryFn, nextBackoff);
                            } else {
                                // google3 does not allow assigning another variable to setTimeout.
                                // Don't refactor this so scheduleFn has a default value of setTimeout.
                                setTimeout(tryFn, nextBackoff);
                            }
                        };
                        tryFn();
                    }
                    );
                }
                /**
 * Given the full size of the array and a shape that may contain -1 as the
 * implicit dimension, returns the inferred shape where -1 is replaced.
 * E.g. For shape=[2, -1, 3] and size=24, it will return [2, 4, 3].
 *
 * @param shape The shape, which may contain -1 in some dimension.
 * @param size The full size (number of elements) of the array.
 * @return The inferred shape where -1 is replaced with the inferred size.
 */
                function inferFromImplicitShape(shape, size) {
                    var shapeProd = 1;
                    var implicitIdx = -1;
                    for (var i = 0; i < shape.length; ++i) {
                        if (shape[i] >= 0) {
                            shapeProd *= shape[i];
                        } else if (shape[i] === -1) {
                            if (implicitIdx !== -1) {
                                throw Error("Shapes can only have 1 implicit size. " + "Found -1 at dim ".concat(implicitIdx, " and dim ").concat(i));
                            }
                            implicitIdx = i;
                        } else if (shape[i] < 0) {
                            throw Error("Shapes can not be < 0. Found ".concat(shape[i], " at dim ").concat(i));
                        }
                    }
                    if (implicitIdx === -1) {
                        if (size > 0 && size !== shapeProd) {
                            throw Error("Size(".concat(size, ") must match the product of shape ").concat(shape));
                        }
                        return shape;
                    }
                    if (shapeProd === 0) {
                        throw Error("Cannot infer the missing size in [".concat(shape, "] when ") + "there are 0 elements");
                    }
                    if (size % shapeProd !== 0) {
                        throw Error("The implicit shape can't be a fractional number. " + "Got ".concat(size, " / ").concat(shapeProd));
                    }
                    var newShape = shape.slice();
                    newShape[implicitIdx] = size / shapeProd;
                    return newShape;
                }
                function parseAxisParam(axis, shape) {
                    var rank = shape.length;
                    // Normalize input
                    axis = axis == null ? shape.map(function (s, i) {
                        return i;
                    }) : [].concat(axis);
                    // Check for valid range
                    assert(axis.every(function (ax) {
                        return ax >= -rank && ax < rank;
                    }), function () {
                        return "All values in axis param must be in range [-".concat(rank, ", ").concat(rank, ") but ") + "got axis ".concat(axis);
                    });
                    // Check for only integers
                    assert(axis.every(function (ax) {
                        return isInt(ax);
                    }), function () {
                        return "All values in axis param must be integers but " + "got axis ".concat(axis);
                    });
                    // Handle negative axis.
                    return axis.map(function (a) {
                        return a < 0 ? rank + a : a;
                    });
                }
                /** Reduces the shape by removing all dimensions of shape 1. */
                function squeezeShape(shape, axis) {
                    var newShape = [];
                    var keptDims = [];
                    var isEmptyArray = axis != null && Array.isArray(axis) && axis.length === 0;
                    var axes = axis == null || isEmptyArray ? null : parseAxisParam(axis, shape).sort();
                    var j = 0;
                    for (var i = 0; i < shape.length; ++i) {
                        if (axes != null) {
                            if (axes[j] === i && shape[i] !== 1) {
                                throw new Error("Can't squeeze axis ".concat(i, " since its dim '").concat(shape[i], "' is not 1"));
                            }
                            if ((axes[j] == null || axes[j] > i) && shape[i] === 1) {
                                newShape.push(shape[i]);
                                keptDims.push(i);
                            }
                            if (axes[j] <= i) {
                                j++;
                            }
                        }
                        if (shape[i] !== 1) {
                            newShape.push(shape[i]);
                            keptDims.push(i);
                        }
                    }
                    return {
                        newShape: newShape,
                        keptDims: keptDims
                    };
                }
                function getTypedArrayFromDType(dtype, size) {
                    var values = null;
                    if (dtype == null || dtype === 'float32') {
                        values = new Float32Array(size);
                    } else if (dtype === 'int32') {
                        values = new Int32Array(size);
                    } else if (dtype === 'bool') {
                        values = new Uint8Array(size);
                    } else {
                        throw new Error("Unknown data type ".concat(dtype));
                    }
                    return values;
                }
                function getArrayFromDType(dtype, size) {
                    var values = null;
                    if (dtype == null || dtype === 'float32') {
                        values = new Float32Array(size);
                    } else if (dtype === 'int32') {
                        values = new Int32Array(size);
                    } else if (dtype === 'bool') {
                        values = new Uint8Array(size);
                    } else if (dtype === 'string') {
                        values = new Array(size);
                    } else {
                        throw new Error("Unknown data type ".concat(dtype));
                    }
                    return values;
                }
                function checkConversionForErrors(vals, dtype) {
                    for (var i = 0; i < vals.length; i++) {
                        var num = vals[i];
                        if (isNaN(num) || !isFinite(num)) {
                            throw Error("A tensor of type ".concat(dtype, " being uploaded contains ").concat(num, "."));
                        }
                    }
                }
                /** Returns true if the dtype is valid. */
                function isValidDtype(dtype) {
                    return dtype === 'bool' || dtype === 'complex64' || dtype === 'float32' || dtype === 'int32' || dtype === 'string';
                }
                /**
 * Returns true if the new type can't encode the old type without loss of
 * precision.
 */
                function hasEncodingLoss(oldType, newType) {
                    if (newType === 'complex64') {
                        return false;
                    }
                    if (newType === 'float32' && oldType !== 'complex64') {
                        return false;
                    }
                    if (newType === 'int32' && oldType !== 'float32' && oldType !== 'complex64') {
                        return false;
                    }
                    if (newType === 'bool' && oldType === 'bool') {
                        return false;
                    }
                    return true;
                }
                function isTypedArray(a) {
                    return a instanceof Float32Array || a instanceof Int32Array || a instanceof Uint8Array || a instanceof Uint8ClampedArray;
                }
                function bytesPerElement(dtype) {
                    if (dtype === 'float32' || dtype === 'int32') {
                        return 4;
                    } else if (dtype === 'complex64') {
                        return 8;
                    } else if (dtype === 'bool') {
                        return 1;
                    } else {
                        throw new Error("Unknown dtype ".concat(dtype));
                    }
                }
                /**
 * Returns the approximate number of bytes allocated in the string array - 2
 * bytes per character. Computing the exact bytes for a native string in JS
 * is not possible since it depends on the encoding of the html page that
 * serves the website.
 */
                function bytesFromStringArray(arr) {
                    if (arr == null) {
                        return 0;
                    }
                    var bytes = 0;
                    arr.forEach(function (x) {
                        return bytes += x.length;
                    });
                    return bytes;
                }
                /** Returns true if the value is a string. */
                function isString(value) {
                    return typeof value === 'string' || value instanceof String;
                }
                function isBoolean(value) {
                    return typeof value === 'boolean';
                }
                function isNumber(value) {
                    return typeof value === 'number';
                }
                function inferDtype(values) {
                    if (Array.isArray(values)) {
                        return inferDtype(values[0]);
                    }
                    if (values instanceof Float32Array) {
                        return 'float32';
                    } else if (values instanceof Int32Array || values instanceof Uint8Array || values instanceof Uint8ClampedArray) {
                        return 'int32';
                    } else if (isNumber(values)) {
                        return 'float32';
                    } else if (isString(values)) {
                        return 'string';
                    } else if (isBoolean(values)) {
                        return 'bool';
                    }
                    return 'float32';
                }
                function isFunction(f) {
                    return !!(f && f.constructor && f.call && f.apply);
                }
                function nearestDivisor(size, start) {
                    for (var i = start; i < size; ++i) {
                        if (size % i === 0) {
                            return i;
                        }
                    }
                    return size;
                }
                function computeStrides(shape) {
                    var rank = shape.length;
                    if (rank < 2) {
                        return [];
                    }
                    // Last dimension has implicit stride of 1, thus having D-1 (instead of D)
                    // strides.
                    var strides = new Array(rank - 1);
                    strides[rank - 2] = shape[rank - 1];
                    for (var i = rank - 3; i >= 0; --i) {
                        strides[i] = strides[i + 1] * shape[i + 1];
                    }
                    return strides;
                }
                function createNestedArray(offset, shape, a, isComplex) {
                    if (isComplex === void 0) {
                        isComplex = false;
                    }
                    var ret = new Array();
                    if (shape.length === 1) {
                        var d = shape[0] * (isComplex ? 2 : 1);
                        for (var i = 0; i < d; i++) {
                            ret[i] = a[offset + i];
                        }
                    } else {
                        var d = shape[0];
                        var rest = shape.slice(1);
                        var len = rest.reduce(function (acc, c) {
                            return acc * c;
                        }) * (isComplex ? 2 : 1);
                        for (var i = 0; i < d; i++) {
                            ret[i] = createNestedArray(offset + i * len, rest, a, isComplex);
                        }
                    }
                    return ret;
                }
                // Provide a nested array of TypedArray in given shape.
                function toNestedArray(shape, a, isComplex) {
                    if (isComplex === void 0) {
                        isComplex = false;
                    }
                    if (shape.length === 0) {
                        // Scalar type should return a single number.
                        return a[0];
                    }
                    var size = shape.reduce(function (acc, c) {
                        return acc * c;
                    }) * (isComplex ? 2 : 1);
                    if (size === 0) {
                        // A tensor with shape zero should be turned into empty list.
                        return [];
                    }
                    if (size !== a.length) {
                        throw new Error("[".concat(shape, "] does not match the input size ").concat(a.length).concat(isComplex ? ' for a complex tensor' : '', "."));
                    }
                    return createNestedArray(0, shape, a, isComplex);
                }
                function makeOnesTypedArray(size, dtype) {
                    var array = makeZerosTypedArray(size, dtype);
                    for (var i = 0; i < array.length; i++) {
                        array[i] = 1;
                    }
                    return array;
                }
                function makeZerosTypedArray(size, dtype) {
                    if (dtype == null || dtype === 'float32' || dtype === 'complex64') {
                        return new Float32Array(size);
                    } else if (dtype === 'int32') {
                        return new Int32Array(size);
                    } else if (dtype === 'bool') {
                        return new Uint8Array(size);
                    } else {
                        throw new Error("Unknown data type ".concat(dtype));
                    }
                }
                /**
 * Make nested `TypedArray` filled with zeros.
 * @param shape The shape information for the nested array.
 * @param dtype dtype of the array element.
 */
                function makeZerosNestedTypedArray(shape, dtype) {
                    var size = shape.reduce(function (prev, curr) {
                        return prev * curr;
                    }, 1);
                    if (dtype == null || dtype === 'float32') {
                        return toNestedArray(shape, new Float32Array(size));
                    } else if (dtype === 'int32') {
                        return toNestedArray(shape, new Int32Array(size));
                    } else if (dtype === 'bool') {
                        return toNestedArray(shape, new Uint8Array(size));
                    } else {
                        throw new Error("Unknown data type ".concat(dtype));
                    }
                }
                function assertNonNegativeIntegerDimensions(shape) {
                    shape.forEach(function (dimSize) {
                        assert(Number.isInteger(dimSize) && dimSize >= 0, function () {
                            return "Tensor must have a shape comprised of positive integers but got " + "shape [".concat(shape, "].");
                        });
                    });
                }
                /**
 * Computes flat index for a given location (multidimentionsal index) in a
 * Tensor/multidimensional array.
 *
 * @param locs Location in the tensor.
 * @param rank Rank of the tensor.
 * @param strides Tensor strides.
 */
                function locToIndex(locs, rank, strides) {
                    if (rank === 0) {
                        return 0;
                    } else if (rank === 1) {
                        return locs[0];
                    }
                    var index = locs[locs.length - 1];
                    for (var i = 0; i < locs.length - 1; ++i) {
                        index += strides[i] * locs[i];
                    }
                    return index;
                }
                /**
 * Computes the location (multidimensional index) in a
 * tensor/multidimentional array for a given flat index.
 *
 * @param index Index in flat array.
 * @param rank Rank of tensor.
 * @param strides Strides of tensor.
 */
                function indexToLoc(index, rank, strides) {
                    if (rank === 0) {
                        return [];
                    } else if (rank === 1) {
                        return [index];
                    }
                    var locs = new Array(rank);
                    for (var i = 0; i < locs.length - 1; ++i) {
                        locs[i] = Math.floor(index / strides[i]);
                        index -= locs[i] * strides[i];
                    }
                    locs[locs.length - 1] = index;
                    return locs;
                }
                /**
 * This method asserts whether an object is a Promise instance.
 * @param object
 */
                // tslint:disable-next-line: no-any
                function isPromise(object) {
                    //  We chose to not use 'obj instanceOf Promise' for two reasons:
                    //  1. It only reliably works for es6 Promise, not other Promise
                    //  implementations.
                    //  2. It doesn't work with framework that uses zone.js. zone.js monkey
                    //  patch the async calls, so it is possible the obj (patched) is
                    //  comparing to a pre-patched Promise.
                    return object && object.then && typeof object.then === 'function';
                }
                // Expects flags from URL in the format ?tfjsflags=FLAG1:1,FLAG2:true.
                var TENSORFLOWJS_FLAGS_PREFIX = 'tfjsflags';
                /**
 * The environment contains evaluated flags as well as the registered platform.
 * This is always used as a global singleton and can be retrieved with
 * `tf.env()`.
 *
 * @doc {heading: 'Environment'}
 */
                var Environment = /** @class */
                    function () {
                        // tslint:disable-next-line: no-any
                        function Environment(global) {
                            this.global = global;
                            this.flags = {};
                            this.flagRegistry = {};
                            this.urlFlags = {};
                            // Jasmine spies on this in 'environment_test.ts'
                            this.getQueryParams = getQueryParams;
                            this.populateURLFlags();
                        }
                        Environment.prototype.setPlatform = function (platformName, platform) {
                            if (this.platform != null) {
                                if (!(env().getBool('IS_TEST') || env().getBool('PROD'))) {
                                    console.warn("Platform ".concat(this.platformName, " has already been set. ") + "Overwriting the platform with ".concat(platformName, "."));
                                }
                            }
                            this.platformName = platformName;
                            this.platform = platform;
                        }
                            ;
                        Environment.prototype.registerFlag = function (flagName, evaluationFn, setHook) {
                            this.flagRegistry[flagName] = {
                                evaluationFn: evaluationFn,
                                setHook: setHook
                            };
                            // Override the flag value from the URL. This has to happen here because
                            // the environment is initialized before flags get registered.
                            if (this.urlFlags[flagName] != null) {
                                var flagValue = this.urlFlags[flagName];
                                if (!(env().getBool('IS_TEST') || env().getBool('PROD'))) {
                                    console.warn("Setting feature override from URL ".concat(flagName, ": ").concat(flagValue, "."));
                                }
                                this.set(flagName, flagValue);
                            }
                        }
                            ;
                        Environment.prototype.getAsync = function (flagName) {
                            return __awaiter(this, void 0, void 0, function () {
                                var _a, _b;
                                return __generator(this, function (_c) {
                                    switch (_c.label) {
                                        case 0:
                                            if (flagName in this.flags) {
                                                return [2 /*return*/
                                                    , this.flags[flagName]];
                                            }
                                            _a = this.flags;
                                            _b = flagName;
                                            return [4 /*yield*/
                                                , this.evaluateFlag(flagName)];
                                        case 1:
                                            _a[_b] = _c.sent();
                                            return [2 /*return*/
                                                , this.flags[flagName]];
                                    }
                                });
                            });
                        }
                            ;
                        Environment.prototype.get = function (flagName) {
                            if (flagName in this.flags) {
                                return this.flags[flagName];
                            }
                            var flagValue = this.evaluateFlag(flagName);
                            if (isPromise(flagValue)) {
                                throw new Error("Flag ".concat(flagName, " cannot be synchronously evaluated. ") + "Please use getAsync() instead.");
                            }
                            this.flags[flagName] = flagValue;
                            return this.flags[flagName];
                        }
                            ;
                        Environment.prototype.getNumber = function (flagName) {
                            return this.get(flagName);
                        }
                            ;
                        Environment.prototype.getBool = function (flagName) {
                            return this.get(flagName);
                        }
                            ;
                        Environment.prototype.getFlags = function () {
                            return this.flags;
                        }
                            ;
                        Object.defineProperty(Environment.prototype, "features", {
                            // For backwards compatibility.
                            get: function () {
                                return this.flags;
                            },
                            enumerable: false,
                            configurable: true
                        });
                        Environment.prototype.set = function (flagName, value) {
                            if (this.flagRegistry[flagName] == null) {
                                throw new Error("Cannot set flag ".concat(flagName, " as it has not been registered."));
                            }
                            this.flags[flagName] = value;
                            if (this.flagRegistry[flagName].setHook != null) {
                                this.flagRegistry[flagName].setHook(value);
                            }
                        }
                            ;
                        Environment.prototype.evaluateFlag = function (flagName) {
                            if (this.flagRegistry[flagName] == null) {
                                throw new Error("Cannot evaluate flag '".concat(flagName, "': no evaluation function found."));
                            }
                            return this.flagRegistry[flagName].evaluationFn();
                        }
                            ;
                        Environment.prototype.setFlags = function (flags) {
                            this.flags = Object.assign({}, flags);
                        }
                            ;
                        Environment.prototype.reset = function () {
                            this.flags = {};
                            this.urlFlags = {};
                            this.populateURLFlags();
                        }
                            ;
                        Environment.prototype.populateURLFlags = function () {
                            var _this = this;
                            if (typeof this.global === 'undefined' || typeof this.global.location === 'undefined' || typeof this.global.location.search === 'undefined') {
                                return;
                            }
                            var urlParams = this.getQueryParams(this.global.location.search);
                            if (TENSORFLOWJS_FLAGS_PREFIX in urlParams) {
                                var keyValues = urlParams[TENSORFLOWJS_FLAGS_PREFIX].split(',');
                                keyValues.forEach(function (keyValue) {
                                    var _a = __read(keyValue.split(':'), 2)
                                        , key = _a[0]
                                        , value = _a[1];
                                    _this.urlFlags[key] = parseValue(key, value);
                                });
                            }
                        }
                            ;
                        return Environment;
                    }();
                function getQueryParams(queryString) {
                    var params = {};
                    queryString.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g, function (s) {
                        var t = [];
                        for (var _i = 1; _i < arguments.length; _i++) {
                            t[_i - 1] = arguments[_i];
                        }
                        decodeParam(params, t[0], t[1]);
                        return t.join('=');
                    });
                    return params;
                }
                function decodeParam(params, name, value) {
                    params[decodeURIComponent(name)] = decodeURIComponent(value || '');
                }
                function parseValue(flagName, value) {
                    value = value.toLowerCase();
                    if (value === 'true' || value === 'false') {
                        return value === 'true';
                    } else if ("".concat(+value) === value) {
                        return +value;
                    }
                    throw new Error("Could not parse value flag value ".concat(value, " for flag ").concat(flagName, "."));
                }
                /**
 * Returns the current environment (a global singleton).
 *
 * The environment object contains the evaluated feature values as well as the
 * active platform.
 *
 * @doc {heading: 'Environment'}
 */
                function env() {
                    return exports.ENV;
                }
                exports.ENV = null;
                function setEnvironmentGlobal(environment) {
                    exports.ENV = environment;
                }
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                // Note that the identifier globalNameSpace is scoped to this module, but will
                // always resolve to the same global object regardless of how the module is
                // resolved.
                // tslint:disable-next-line:no-any
                var globalNameSpace;
                // tslint:disable-next-line:no-any
                function getGlobalNamespace() {
                    if (globalNameSpace == null) {
                        // tslint:disable-next-line:no-any
                        var ns = void 0;
                        if (typeof window !== 'undefined') {
                            ns = window;
                        } else if (typeof global !== 'undefined') {
                            ns = global;
                        } else if (typeof process !== 'undefined') {
                            ns = process;
                        } else if (typeof self !== 'undefined') {
                            ns = self;
                        } else {
                            throw new Error('Could not find a global object');
                        }
                        globalNameSpace = ns;
                    }
                    return globalNameSpace;
                }
                // tslint:disable-next-line:no-any
                function getGlobalMap() {
                    var ns = getGlobalNamespace();
                    if (ns._tfGlobals == null) {
                        ns._tfGlobals = new Map();
                    }
                    return ns._tfGlobals;
                }
                /**
 * Returns a globally accessible 'singleton' object.
 *
 * @param key the name of the object
 * @param init a function to initialize to initialize this object
 *             the first time it is fetched.
 */
                function getGlobal(key, init) {
                    var globalMap = getGlobalMap();
                    if (globalMap.has(key)) {
                        return globalMap.get(key);
                    } else {
                        var singleton = init();
                        globalMap.set(key, singleton);
                        return globalMap.get(key);
                    }
                }
                var Abs = 'Abs';
                var Acos = 'Acos';
                var Acosh = 'Acosh';
                var Add = 'Add';
                var AddN = 'AddN';
                var All = 'All';
                var Any = 'Any';
                var ArgMax = 'ArgMax';
                var ArgMin = 'ArgMin';
                var Asin = 'Asin';
                var Asinh = 'Asinh';
                var Atan = 'Atan';
                var Atanh = 'Atanh';
                var Atan2 = 'Atan2';
                var AvgPool = 'AvgPool';
                var AvgPoolGrad = 'AvgPoolGrad';
                var AvgPool3D = 'AvgPool3D';
                var AvgPool3DGrad = 'AvgPool3DGrad';
                var BatchMatMul = 'BatchMatMul';
                var BatchToSpaceND = 'BatchToSpaceND';
                var Bincount = 'Bincount';
                var BroadcastTo = 'BroadcastTo';
                var BroadcastArgs = 'BroadcastArgs';
                var Cast = 'Cast';
                var Ceil = 'Ceil';
                var ClipByValue = 'ClipByValue';
                var Complex = 'Complex';
                var ComplexAbs = 'ComplexAbs';
                var Concat = 'Concat';
                var Conv2D = 'Conv2D';
                var Conv2DBackpropFilter = 'Conv2DBackpropFilter';
                var Conv2DBackpropInput = 'Conv2DBackpropInput';
                var Conv3D = 'Conv3D';
                var Conv3DBackpropFilterV2 = 'Conv3DBackpropFilterV2';
                var Conv3DBackpropInputV2 = 'Conv3DBackpropInputV2';
                var Cos = 'Cos';
                var Cosh = 'Cosh';
                var Cumprod = 'Cumprod';
                var Cumsum = 'Cumsum';
                var CropAndResize = 'CropAndResize';
                var DenseBincount = 'DenseBincount';
                var DepthToSpace = 'DepthToSpace';
                var DepthwiseConv2dNative = 'DepthwiseConv2dNative';
                var DepthwiseConv2dNativeBackpropFilter = 'DepthwiseConv2dNativeBackpropFilter';
                var DepthwiseConv2dNativeBackpropInput = 'DepthwiseConv2dNativeBackpropInput';
                var Diag = 'Diag';
                var Dilation2D = 'Dilation2D';
                var Dilation2DBackpropInput = 'Dilation2DBackpropInput';
                var Dilation2DBackpropFilter = 'Dilation2DBackpropFilter';
                var RealDiv = 'RealDiv';
                var Einsum = 'Einsum';
                var Elu = 'Elu';
                var EluGrad = 'EluGrad';
                var Erf = 'Erf';
                var Equal = 'Equal';
                var Exp = 'Exp';
                var ExpandDims = 'ExpandDims';
                var Expm1 = 'Expm1';
                var FFT = 'FFT';
                var Fill = 'Fill';
                var FlipLeftRight = 'FlipLeftRight';
                var Floor = 'Floor';
                var FloorDiv = 'FloorDiv';
                var FusedBatchNorm = 'FusedBatchNorm';
                var GatherV2 = 'GatherV2';
                var GatherNd = 'GatherNd';
                var Greater = 'Greater';
                var GreaterEqual = 'GreaterEqual';
                var Identity = 'Identity';
                var IFFT = 'IFFT';
                var Imag = 'Imag';
                var IsFinite = 'IsFinite';
                var IsInf = 'IsInf';
                var IsNan = 'IsNan';
                var LeakyRelu = 'LeakyRelu';
                var Less = 'Less';
                var LessEqual = 'LessEqual';
                var LinSpace = 'LinSpace';
                var Log = 'Log';
                var Log1p = 'Log1p';
                var LogicalAnd = 'LogicalAnd';
                var LogicalNot = 'LogicalNot';
                var LogicalOr = 'LogicalOr';
                var LogicalXor = 'LogicalXor';
                var LogSoftmax = 'LogSoftmax';
                var LowerBound = 'LowerBound';
                var LRN = 'LRN';
                var LRNGrad = 'LRNGrad';
                var Max = 'Max';
                var Maximum = 'Maximum';
                var MaxPool = 'MaxPool';
                var MaxPoolGrad = 'MaxPoolGrad';
                var MaxPool3D = 'MaxPool3D';
                var MaxPool3DGrad = 'MaxPool3DGrad';
                var MaxPoolWithArgmax = 'MaxPoolWithArgmax';
                var Mean = 'Mean';
                var Min = 'Min';
                var Minimum = 'Minimum';
                var MirrorPad = 'MirrorPad';
                var Mod = 'Mod';
                var Multinomial = 'Multinomial';
                var Multiply = 'Multiply';
                var Neg = 'Neg';
                var NotEqual = 'NotEqual';
                var NonMaxSuppressionV3 = 'NonMaxSuppressionV3';
                var NonMaxSuppressionV4 = 'NonMaxSuppressionV4';
                var NonMaxSuppressionV5 = 'NonMaxSuppressionV5';
                var OnesLike = 'OnesLike';
                var OneHot = 'OneHot';
                var Pack = 'Pack';
                var PadV2 = 'PadV2';
                var Pool = 'Pool';
                var Pow = 'Pow';
                var Prelu = 'Prelu';
                var Prod = 'Prod';
                var RaggedGather = 'RaggedGather';
                var RaggedRange = 'RaggedRange';
                var RaggedTensorToTensor = 'RaggedTensorToTensor';
                var Range = 'Range';
                var Real = 'Real';
                var Reciprocal = 'Reciprocal';
                var Relu = 'Relu';
                var Reshape = 'Reshape';
                var ResizeNearestNeighbor = 'ResizeNearestNeighbor';
                var ResizeNearestNeighborGrad = 'ResizeNearestNeighborGrad';
                var ResizeBilinear = 'ResizeBilinear';
                var ResizeBilinearGrad = 'ResizeBilinearGrad';
                var Relu6 = 'Relu6';
                var Reverse = 'Reverse';
                var Round = 'Round';
                var Rsqrt = 'Rsqrt';
                var ScatterNd = 'ScatterNd';
                var SearchSorted = 'SearchSorted';
                var Select = 'Select';
                var Selu = 'Selu';
                var Slice = 'Slice';
                var Sin = 'Sin';
                var Sinh = 'Sinh';
                var Sign = 'Sign';
                var Sigmoid = 'Sigmoid';
                var Softplus = 'Softplus';
                var Sqrt = 'Sqrt';
                var Sum = 'Sum';
                var SpaceToBatchND = 'SpaceToBatchND';
                var SplitV = 'SplitV';
                var Softmax = 'Softmax';
                var SparseFillEmptyRows = 'SparseFillEmptyRows';
                var SparseReshape = 'SparseReshape';
                var SparseSegmentMean = 'SparseSegmentMean';
                var SparseSegmentSum = 'SparseSegmentSum';
                var SparseToDense = 'SparseToDense';
                var SquaredDifference = 'SquaredDifference';
                var Square = 'Square';
                var StridedSlice = 'StridedSlice';
                var StringNGrams = 'StringNGrams';
                var StringSplit = 'StringSplit';
                var StringToHashBucketFast = 'StringToHashBucketFast';
                var Sub = 'Sub';
                var Tan = 'Tan';
                var Tanh = 'Tanh';
                var Tile = 'Tile';
                var TopK = 'TopK';
                var Transform = 'Transform';
                var Transpose = 'Transpose';
                var Unique = 'Unique';
                var Unpack = 'Unpack';
                var UnsortedSegmentSum = 'UnsortedSegmentSum';
                var UpperBound = 'UpperBound';
                var ZerosLike = 'ZerosLike';
                /**
 * TensorFlow.js-only kernels
 */
                var Step = 'Step';
                var FromPixels = 'FromPixels';
                var RotateWithOffset = 'RotateWithOffset';
                var _FusedMatMul = '_FusedMatMul';
                var FusedConv2D = 'FusedConv2D';
                var FusedDepthwiseConv2D = 'FusedDepthwiseConv2D';
                function warn() {
                    var msg = [];
                    for (var _i = 0; _i < arguments.length; _i++) {
                        msg[_i] = arguments[_i];
                    }
                    if (!(env().getBool('IS_TEST') || env().getBool('PROD'))) {
                        console.warn.apply(console, __spreadArray([], __read(msg), false));
                    }
                }
                function log$1() {
                    var msg = [];
                    for (var _i = 0; _i < arguments.length; _i++) {
                        msg[_i] = arguments[_i];
                    }
                    if (!(env().getBool('IS_TEST') || env().getBool('PROD'))) {
                        console.log.apply(console, __spreadArray([], __read(msg), false));
                    }
                }
                var kernelRegistry = getGlobal('kernelRegistry', function () {
                    return new Map();
                });
                var gradRegistry = getGlobal('gradRegistry', function () {
                    return new Map();
                });
                /**
 * Returns the kernel function (code) associated with the provided names.
 *
 * @param kernelName The official name of the kernel.
 * @param backendName The official name of the backend.
 */
                function getKernel(kernelName, backendName) {
                    var key = makeKey(kernelName, backendName);
                    return kernelRegistry.get(key);
                }
                /**
 * Returns the registered gradient info associated with the provided kernel.
 * @param kernelName The official TF kernel name.
 */
                function getGradient(kernelName) {
                    return gradRegistry.get(kernelName);
                }
                function getKernelsForBackend(backendName) {
                    var it = kernelRegistry.entries();
                    var result = [];
                    while (true) {
                        var _a = it.next()
                            , done = _a.done
                            , value = _a.value;
                        if (done) {
                            break;
                        }
                        var _b = __read(value, 2)
                            , key = _b[0]
                            , config = _b[1];
                        var _c = __read(key.split('_'), 1)
                            , backend = _c[0];
                        if (backend === backendName) {
                            result.push(config);
                        }
                    }
                    return result;
                }
                /**
 * Registers the function (forward pass) for the kernel in a global registry.
 *
 * @param config A config object with the following properties:
 * - `kernelName` The official name of the kernel.
 * - `backendName` The official name of the backend.
 * - `kernelFunc` The function to run during the forward pass of the kernel.
 * - `setupFunc` Optional. Gets called once, after the backend initializes.
 * - `disposeFunc` Optional. Gets called once, right before the backend is
 * disposed.
 */
                function registerKernel(config) {
                    var kernelName = config.kernelName
                        , backendName = config.backendName;
                    var key = makeKey(kernelName, backendName);
                    if (kernelRegistry.has(key)) {
                        warn("The kernel '".concat(kernelName, "' for backend ") + "'".concat(backendName, "' is already registered"));
                    }
                    kernelRegistry.set(key, config);
                }
                /**
 * Registers a gradient function for a given kernel in the global registry,
 * to be used during the back-propagation of that kernel.
 *
 * @param config An object with the following properties:
 * - `kernelName` The name of the kernel that the gradient function is for.
 * - `gradFunc` The function to run during back-propagation.
 */
                function registerGradient(config) {
                    var kernelName = config.kernelName;
                    if (gradRegistry.has(kernelName)) {
                        // TODO (yassogba) after 3.0 assess whether we need to keep this gated
                        // to debug mode.
                        if (env().getBool('DEBUG')) {
                            warn("Overriding the gradient for '".concat(kernelName, "'"));
                        }
                    }
                    gradRegistry.set(kernelName, config);
                }
                /**
 * Removes the kernel function from the registry.
 *
 * @param kernelName The official name of the kernel.
 * @param backendName The official name of the backend.
 *
 */
                function unregisterKernel(kernelName, backendName) {
                    var key = makeKey(kernelName, backendName);
                    if (!kernelRegistry.has(key)) {
                        throw new Error("The kernel '".concat(kernelName, "' for backend ") + "'".concat(backendName, "' is not registered"));
                    }
                    kernelRegistry.delete(key);
                }
                /** Removes the registered gradient from the global registry. */
                function unregisterGradient(kernelName) {
                    if (!gradRegistry.has(kernelName)) {
                        throw new Error("The gradient '".concat(kernelName, "' for backend is not registered"));
                    }
                    gradRegistry.delete(kernelName);
                }
                /**
 * Finds kernels that have already been registered to a backend and re-registers
 * them for a new backend. Useful for registering custom backends.
 * @param registeredBackendName Already registered backend.
 * @param newBackendName New backend.
 */
                function copyRegisteredKernels(registeredBackendName, newBackendName) {
                    var kernels = getKernelsForBackend(registeredBackendName);
                    kernels.forEach(function (kernelConfig) {
                        var newKernelConfig = Object.assign({}, kernelConfig, {
                            backendName: newBackendName
                        });
                        registerKernel(newKernelConfig);
                    });
                }
                function makeKey(kernelName, backendName) {
                    return "".concat(backendName, "_").concat(kernelName);
                }
                var long = Long$1;
                /**
 * wasm optimizations, to do native i64 multiplication and divide
 */
                var wasm = null;
                try {
                    wasm = new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0, 97, 115, 109, 1, 0, 0, 0, 1, 13, 2, 96, 0, 1, 127, 96, 4, 127, 127, 127, 127, 1, 127, 3, 7, 6, 0, 1, 1, 1, 1, 1, 6, 6, 1, 127, 1, 65, 0, 11, 7, 50, 6, 3, 109, 117, 108, 0, 1, 5, 100, 105, 118, 95, 115, 0, 2, 5, 100, 105, 118, 95, 117, 0, 3, 5, 114, 101, 109, 95, 115, 0, 4, 5, 114, 101, 109, 95, 117, 0, 5, 8, 103, 101, 116, 95, 104, 105, 103, 104, 0, 0, 10, 191, 1, 6, 4, 0, 35, 0, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 126, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 127, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 128, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 129, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 130, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11])), {}).exports;
                } catch (e) {// no wasm support :(
                }
                /**
 * Constructs a 64 bit two's-complement integer, given its low and high 32 bit values as *signed* integers.
 *  See the from* functions below for more convenient ways of constructing Longs.
 * @exports Long
 * @class A Long class for representing a 64 bit two's-complement integer value.
 * @param {number} low The low (signed) 32 bits of the long
 * @param {number} high The high (signed) 32 bits of the long
 * @param {boolean=} unsigned Whether unsigned or not, defaults to signed
 * @constructor
 */
                function Long$1(low, high, unsigned) {
                    /**
     * The low 32 bits as a signed value.
     * @type {number}
     */
                    this.low = low | 0;
                    /**
     * The high 32 bits as a signed value.
     * @type {number}
     */
                    this.high = high | 0;
                    /**
     * Whether unsigned or not.
     * @type {boolean}
     */
                    this.unsigned = !!unsigned;
                }
                // The internal representation of a long is the two given signed, 32-bit values.
                // We use 32-bit pieces because these are the size of integers on which
                // Javascript performs bit-operations.  For operations like addition and
                // multiplication, we split each number into 16 bit pieces, which can easily be
                // multiplied within Javascript's floating-point representation without overflow
                // or change in sign.
                //
                // In the algorithms below, we frequently reduce the negative case to the
                // positive case by negating the input(s) and then post-processing the result.
                // Note that we must ALWAYS check specially whether those values are MIN_VALUE
                // (-2^63) because -MIN_VALUE == MIN_VALUE (since 2^63 cannot be represented as
                // a positive number, it overflows back into a negative).  Not handling this
                // case would often result in infinite recursion.
                //
                // Common constant values ZERO, ONE, NEG_ONE, etc. are defined below the from*
                // methods on which they depend.
                /**
 * An indicator used to reliably determine if an object is a Long or not.
 * @type {boolean}
 * @const
 * @private
 */
                Long$1.prototype.__isLong__;
                Object.defineProperty(Long$1.prototype, "__isLong__", {
                    value: true
                });
                /**
 * @function
 * @param {*} obj Object
 * @returns {boolean}
 * @inner
 */
                function isLong(obj) {
                    return (obj && obj["__isLong__"]) === true;
                }
                /**
 * Tests if the specified object is a Long.
 * @function
 * @param {*} obj Object
 * @returns {boolean}
 */
                Long$1.isLong = isLong;
                /**
 * A cache of the Long representations of small integer values.
 * @type {!Object}
 * @inner
 */
                var INT_CACHE = {};
                /**
 * A cache of the Long representations of small unsigned integer values.
 * @type {!Object}
 * @inner
 */
                var UINT_CACHE = {};
                /**
 * @param {number} value
 * @param {boolean=} unsigned
 * @returns {!Long}
 * @inner
 */
                function fromInt(value, unsigned) {
                    var obj, cachedObj, cache;
                    if (unsigned) {
                        value >>>= 0;
                        if (cache = 0 <= value && value < 256) {
                            cachedObj = UINT_CACHE[value];
                            if (cachedObj)
                                return cachedObj;
                        }
                        obj = fromBits(value, (value | 0) < 0 ? -1 : 0, true);
                        if (cache)
                            UINT_CACHE[value] = obj;
                        return obj;
                    } else {
                        value |= 0;
                        if (cache = -128 <= value && value < 128) {
                            cachedObj = INT_CACHE[value];
                            if (cachedObj)
                                return cachedObj;
                        }
                        obj = fromBits(value, value < 0 ? -1 : 0, false);
                        if (cache)
                            INT_CACHE[value] = obj;
                        return obj;
                    }
                }
                /**
 * Returns a Long representing the given 32 bit integer value.
 * @function
 * @param {number} value The 32 bit integer in question
 * @param {boolean=} unsigned Whether unsigned or not, defaults to signed
 * @returns {!Long} The corresponding Long value
 */
                Long$1.fromInt = fromInt;
                /**
 * @param {number} value
 * @param {boolean=} unsigned
 * @returns {!Long}
 * @inner
 */
                function fromNumber(value, unsigned) {
                    if (isNaN(value))
                        return unsigned ? UZERO : ZERO;
                    if (unsigned) {
                        if (value < 0)
                            return UZERO;
                        if (value >= TWO_PWR_64_DBL)
                            return MAX_UNSIGNED_VALUE;
                    } else {
                        if (value <= -TWO_PWR_63_DBL)
                            return MIN_VALUE;
                        if (value + 1 >= TWO_PWR_63_DBL)
                            return MAX_VALUE;
                    }
                    if (value < 0)
                        return fromNumber(-value, unsigned).neg();
                    return fromBits(value % TWO_PWR_32_DBL | 0, value / TWO_PWR_32_DBL | 0, unsigned);
                }
                /**
 * Returns a Long representing the given value, provided that it is a finite number. Otherwise, zero is returned.
 * @function
 * @param {number} value The number in question
 * @param {boolean=} unsigned Whether unsigned or not, defaults to signed
 * @returns {!Long} The corresponding Long value
 */
                Long$1.fromNumber = fromNumber;
                /**
 * @param {number} lowBits
 * @param {number} highBits
 * @param {boolean=} unsigned
 * @returns {!Long}
 * @inner
 */
                function fromBits(lowBits, highBits, unsigned) {
                    return new Long$1(lowBits, highBits, unsigned);
                }
                /**
 * Returns a Long representing the 64 bit integer that comes by concatenating the given low and high bits. Each is
 *  assumed to use 32 bits.
 * @function
 * @param {number} lowBits The low 32 bits
 * @param {number} highBits The high 32 bits
 * @param {boolean=} unsigned Whether unsigned or not, defaults to signed
 * @returns {!Long} The corresponding Long value
 */
                Long$1.fromBits = fromBits;
                /**
 * @function
 * @param {number} base
 * @param {number} exponent
 * @returns {number}
 * @inner
 */
                var pow_dbl = Math.pow;
                // Used 4 times (4*8 to 15+4)
                /**
 * @param {string} str
 * @param {(boolean|number)=} unsigned
 * @param {number=} radix
 * @returns {!Long}
 * @inner
 */
                function fromString(str, unsigned, radix) {
                    if (str.length === 0)
                        throw Error('empty string');
                    if (str === "NaN" || str === "Infinity" || str === "+Infinity" || str === "-Infinity")
                        return ZERO;
                    if (typeof unsigned === 'number') {
                        // For goog.math.long compatibility
                        radix = unsigned,
                            unsigned = false;
                    } else {
                        unsigned = !!unsigned;
                    }
                    radix = radix || 10;
                    if (radix < 2 || 36 < radix)
                        throw RangeError('radix');
                    var p;
                    if ((p = str.indexOf('-')) > 0)
                        throw Error('interior hyphen');
                    else if (p === 0) {
                        return fromString(str.substring(1), unsigned, radix).neg();
                    }
                    // Do several (8) digits each time through the loop, so as to
                    // minimize the calls to the very expensive emulated div.
                    var radixToPower = fromNumber(pow_dbl(radix, 8));
                    var result = ZERO;
                    for (var i = 0; i < str.length; i += 8) {
                        var size = Math.min(8, str.length - i)
                            , value = parseInt(str.substring(i, i + size), radix);
                        if (size < 8) {
                            var power = fromNumber(pow_dbl(radix, size));
                            result = result.mul(power).add(fromNumber(value));
                        } else {
                            result = result.mul(radixToPower);
                            result = result.add(fromNumber(value));
                        }
                    }
                    result.unsigned = unsigned;
                    return result;
                }
                /**
 * Returns a Long representation of the given string, written using the specified radix.
 * @function
 * @param {string} str The textual representation of the Long
 * @param {(boolean|number)=} unsigned Whether unsigned or not, defaults to signed
 * @param {number=} radix The radix in which the text is written (2-36), defaults to 10
 * @returns {!Long} The corresponding Long value
 */
                Long$1.fromString = fromString;
                /**
 * @function
 * @param {!Long|number|string|!{low: number, high: number, unsigned: boolean}} val
 * @param {boolean=} unsigned
 * @returns {!Long}
 * @inner
 */
                function fromValue(val, unsigned) {
                    if (typeof val === 'number')
                        return fromNumber(val, unsigned);
                    if (typeof val === 'string')
                        return fromString(val, unsigned);
                    // Throws for non-objects, converts non-instanceof Long:
                    return fromBits(val.low, val.high, typeof unsigned === 'boolean' ? unsigned : val.unsigned);
                }
                /**
 * Converts the specified value to a Long using the appropriate from* function for its type.
 * @function
 * @param {!Long|number|string|!{low: number, high: number, unsigned: boolean}} val Value
 * @param {boolean=} unsigned Whether unsigned or not, defaults to signed
 * @returns {!Long}
 */
                Long$1.fromValue = fromValue;
                // NOTE: the compiler should inline these constant values below and then remove these variables, so there should be
                // no runtime penalty for these.
                /**
 * @type {number}
 * @const
 * @inner
 */
                var TWO_PWR_16_DBL = 1 << 16;
                /**
 * @type {number}
 * @const
 * @inner
 */
                var TWO_PWR_24_DBL = 1 << 24;
                /**
 * @type {number}
 * @const
 * @inner
 */
                var TWO_PWR_32_DBL = TWO_PWR_16_DBL * TWO_PWR_16_DBL;
                /**
 * @type {number}
 * @const
 * @inner
 */
                var TWO_PWR_64_DBL = TWO_PWR_32_DBL * TWO_PWR_32_DBL;
                /**
 * @type {number}
 * @const
 * @inner
 */
                var TWO_PWR_63_DBL = TWO_PWR_64_DBL / 2;
                /**
 * @type {!Long}
 * @const
 * @inner
 */
                var TWO_PWR_24 = fromInt(TWO_PWR_24_DBL);
                /**
 * @type {!Long}
 * @inner
 */
                var ZERO = fromInt(0);
                /**
 * Signed zero.
 * @type {!Long}
 */
                Long$1.ZERO = ZERO;
                /**
 * @type {!Long}
 * @inner
 */
                var UZERO = fromInt(0, true);
                /**
 * Unsigned zero.
 * @type {!Long}
 */
                Long$1.UZERO = UZERO;
                /**
 * @type {!Long}
 * @inner
 */
                var ONE = fromInt(1);
                /**
 * Signed one.
 * @type {!Long}
 */
                Long$1.ONE = ONE;
                /**
 * @type {!Long}
 * @inner
 */
                var UONE = fromInt(1, true);
                /**
 * Unsigned one.
 * @type {!Long}
 */
                Long$1.UONE = UONE;
                /**
 * @type {!Long}
 * @inner
 */
                var NEG_ONE = fromInt(-1);
                /**
 * Signed negative one.
 * @type {!Long}
 */
                Long$1.NEG_ONE = NEG_ONE;
                /**
 * @type {!Long}
 * @inner
 */
                var MAX_VALUE = fromBits(0xFFFFFFFF | 0, 0x7FFFFFFF | 0, false);
                /**
 * Maximum signed value.
 * @type {!Long}
 */
                Long$1.MAX_VALUE = MAX_VALUE;
                /**
 * @type {!Long}
 * @inner
 */
                var MAX_UNSIGNED_VALUE = fromBits(0xFFFFFFFF | 0, 0xFFFFFFFF | 0, true);
                /**
 * Maximum unsigned value.
 * @type {!Long}
 */
                Long$1.MAX_UNSIGNED_VALUE = MAX_UNSIGNED_VALUE;
                /**
 * @type {!Long}
 * @inner
 */
                var MIN_VALUE = fromBits(0, 0x80000000 | 0, false);
                /**
 * Minimum signed value.
 * @type {!Long}
 */
                Long$1.MIN_VALUE = MIN_VALUE;
                /**
 * @alias Long.prototype
 * @inner
 */
                var LongPrototype = Long$1.prototype;
                /**
 * Converts the Long to a 32 bit integer, assuming it is a 32 bit integer.
 * @returns {number}
 */
                LongPrototype.toInt = function toInt() {
                    return this.unsigned ? this.low >>> 0 : this.low;
                }
                    ;
                /**
 * Converts the Long to a the nearest floating-point representation of this value (double, 53 bit mantissa).
 * @returns {number}
 */
                LongPrototype.toNumber = function toNumber() {
                    if (this.unsigned)
                        return (this.high >>> 0) * TWO_PWR_32_DBL + (this.low >>> 0);
                    return this.high * TWO_PWR_32_DBL + (this.low >>> 0);
                }
                    ;
                /**
 * Converts the Long to a string written in the specified radix.
 * @param {number=} radix Radix (2-36), defaults to 10
 * @returns {string}
 * @override
 * @throws {RangeError} If `radix` is out of range
 */
                LongPrototype.toString = function toString(radix) {
                    radix = radix || 10;
                    if (radix < 2 || 36 < radix)
                        throw RangeError('radix');
                    if (this.isZero())
                        return '0';
                    if (this.isNegative()) {
                        // Unsigned Longs are never negative
                        if (this.eq(MIN_VALUE)) {
                            // We need to change the Long value before it can be negated, so we remove
                            // the bottom-most digit in this base and then recurse to do the rest.
                            var radixLong = fromNumber(radix)
                                , div = this.div(radixLong)
                                , rem1 = div.mul(radixLong).sub(this);
                            return div.toString(radix) + rem1.toInt().toString(radix);
                        } else
                            return '-' + this.neg().toString(radix);
                    }
                    // Do several (6) digits each time through the loop, so as to
                    // minimize the calls to the very expensive emulated div.
                    var radixToPower = fromNumber(pow_dbl(radix, 6), this.unsigned)
                        , rem = this;
                    var result = '';
                    while (true) {
                        var remDiv = rem.div(radixToPower)
                            , intval = rem.sub(remDiv.mul(radixToPower)).toInt() >>> 0
                            , digits = intval.toString(radix);
                        rem = remDiv;
                        if (rem.isZero())
                            return digits + result;
                        else {
                            while (digits.length < 6)
                                digits = '0' + digits;
                            result = '' + digits + result;
                        }
                    }
                }
                    ;
                /**
 * Gets the high 32 bits as a signed integer.
 * @returns {number} Signed high bits
 */
                LongPrototype.getHighBits = function getHighBits() {
                    return this.high;
                }
                    ;
                /**
 * Gets the high 32 bits as an unsigned integer.
 * @returns {number} Unsigned high bits
 */
                LongPrototype.getHighBitsUnsigned = function getHighBitsUnsigned() {
                    return this.high >>> 0;
                }
                    ;
                /**
 * Gets the low 32 bits as a signed integer.
 * @returns {number} Signed low bits
 */
                LongPrototype.getLowBits = function getLowBits() {
                    return this.low;
                }
                    ;
                /**
 * Gets the low 32 bits as an unsigned integer.
 * @returns {number} Unsigned low bits
 */
                LongPrototype.getLowBitsUnsigned = function getLowBitsUnsigned() {
                    return this.low >>> 0;
                }
                    ;
                /**
 * Gets the number of bits needed to represent the absolute value of this Long.
 * @returns {number}
 */
                LongPrototype.getNumBitsAbs = function getNumBitsAbs() {
                    if (this.isNegative())
                        // Unsigned Longs are never negative
                        return this.eq(MIN_VALUE) ? 64 : this.neg().getNumBitsAbs();
                    var val = this.high != 0 ? this.high : this.low;
                    for (var bit = 31; bit > 0; bit--)
                        if ((val & 1 << bit) != 0)
                            break;
                    return this.high != 0 ? bit + 33 : bit + 1;
                }
                    ;
                /**
 * Tests if this Long's value equals zero.
 * @returns {boolean}
 */
                LongPrototype.isZero = function isZero() {
                    return this.high === 0 && this.low === 0;
                }
                    ;
                /**
 * Tests if this Long's value equals zero. This is an alias of {@link Long#isZero}.
 * @returns {boolean}
 */
                LongPrototype.eqz = LongPrototype.isZero;
                /**
 * Tests if this Long's value is negative.
 * @returns {boolean}
 */
                LongPrototype.isNegative = function isNegative() {
                    return !this.unsigned && this.high < 0;
                }
                    ;
                /**
 * Tests if this Long's value is positive.
 * @returns {boolean}
 */
                LongPrototype.isPositive = function isPositive() {
                    return this.unsigned || this.high >= 0;
                }
                    ;
                /**
 * Tests if this Long's value is odd.
 * @returns {boolean}
 */
                LongPrototype.isOdd = function isOdd() {
                    return (this.low & 1) === 1;
                }
                    ;
                /**
 * Tests if this Long's value is even.
 * @returns {boolean}
 */
                LongPrototype.isEven = function isEven() {
                    return (this.low & 1) === 0;
                }
                    ;
                /**
 * Tests if this Long's value equals the specified's.
 * @param {!Long|number|string} other Other value
 * @returns {boolean}
 */
                LongPrototype.equals = function equals(other) {
                    if (!isLong(other))
                        other = fromValue(other);
                    if (this.unsigned !== other.unsigned && this.high >>> 31 === 1 && other.high >>> 31 === 1)
                        return false;
                    return this.high === other.high && this.low === other.low;
                }
                    ;
                /**
 * Tests if this Long's value equals the specified's. This is an alias of {@link Long#equals}.
 * @function
 * @param {!Long|number|string} other Other value
 * @returns {boolean}
 */
                LongPrototype.eq = LongPrototype.equals;
                /**
 * Tests if this Long's value differs from the specified's.
 * @param {!Long|number|string} other Other value
 * @returns {boolean}
 */
                LongPrototype.notEquals = function notEquals(other) {
                    return !this.eq(/* validates */
                        other);
                }
                    ;
                /**
 * Tests if this Long's value differs from the specified's. This is an alias of {@link Long#notEquals}.
 * @function
 * @param {!Long|number|string} other Other value
 * @returns {boolean}
 */
                LongPrototype.neq = LongPrototype.notEquals;
                /**
 * Tests if this Long's value differs from the specified's. This is an alias of {@link Long#notEquals}.
 * @function
 * @param {!Long|number|string} other Other value
 * @returns {boolean}
 */
                LongPrototype.ne = LongPrototype.notEquals;
                /**
 * Tests if this Long's value is less than the specified's.
 * @param {!Long|number|string} other Other value
 * @returns {boolean}
 */
                LongPrototype.lessThan = function lessThan(other) {
                    return this.comp(/* validates */
                        other) < 0;
                }
                    ;
                /**
 * Tests if this Long's value is less than the specified's. This is an alias of {@link Long#lessThan}.
 * @function
 * @param {!Long|number|string} other Other value
 * @returns {boolean}
 */
                LongPrototype.lt = LongPrototype.lessThan;
                /**
 * Tests if this Long's value is less than or equal the specified's.
 * @param {!Long|number|string} other Other value
 * @returns {boolean}
 */
                LongPrototype.lessThanOrEqual = function lessThanOrEqual(other) {
                    return this.comp(/* validates */
                        other) <= 0;
                }
                    ;
                /**
 * Tests if this Long's value is less than or equal the specified's. This is an alias of {@link Long#lessThanOrEqual}.
 * @function
 * @param {!Long|number|string} other Other value
 * @returns {boolean}
 */
                LongPrototype.lte = LongPrototype.lessThanOrEqual;
                /**
 * Tests if this Long's value is less than or equal the specified's. This is an alias of {@link Long#lessThanOrEqual}.
 * @function
 * @param {!Long|number|string} other Other value
 * @returns {boolean}
 */
                LongPrototype.le = LongPrototype.lessThanOrEqual;
                /**
 * Tests if this Long's value is greater than the specified's.
 * @param {!Long|number|string} other Other value
 * @returns {boolean}
 */
                LongPrototype.greaterThan = function greaterThan(other) {
                    return this.comp(/* validates */
                        other) > 0;
                }
                    ;
                /**
 * Tests if this Long's value is greater than the specified's. This is an alias of {@link Long#greaterThan}.
 * @function
 * @param {!Long|number|string} other Other value
 * @returns {boolean}
 */
                LongPrototype.gt = LongPrototype.greaterThan;
                /**
 * Tests if this Long's value is greater than or equal the specified's.
 * @param {!Long|number|string} other Other value
 * @returns {boolean}
 */
                LongPrototype.greaterThanOrEqual = function greaterThanOrEqual(other) {
                    return this.comp(/* validates */
                        other) >= 0;
                }
                    ;
                /**
 * Tests if this Long's value is greater than or equal the specified's. This is an alias of {@link Long#greaterThanOrEqual}.
 * @function
 * @param {!Long|number|string} other Other value
 * @returns {boolean}
 */
                LongPrototype.gte = LongPrototype.greaterThanOrEqual;
                /**
 * Tests if this Long's value is greater than or equal the specified's. This is an alias of {@link Long#greaterThanOrEqual}.
 * @function
 * @param {!Long|number|string} other Other value
 * @returns {boolean}
 */
                LongPrototype.ge = LongPrototype.greaterThanOrEqual;
                /**
 * Compares this Long's value with the specified's.
 * @param {!Long|number|string} other Other value
 * @returns {number} 0 if they are the same, 1 if the this is greater and -1
 *  if the given one is greater
 */
                LongPrototype.compare = function compare(other) {
                    if (!isLong(other))
                        other = fromValue(other);
                    if (this.eq(other))
                        return 0;
                    var thisNeg = this.isNegative()
                        , otherNeg = other.isNegative();
                    if (thisNeg && !otherNeg)
                        return -1;
                    if (!thisNeg && otherNeg)
                        return 1;
                    // At this point the sign bits are the same
                    if (!this.unsigned)
                        return this.sub(other).isNegative() ? -1 : 1;
                    // Both are positive if at least one is unsigned
                    return other.high >>> 0 > this.high >>> 0 || other.high === this.high && other.low >>> 0 > this.low >>> 0 ? -1 : 1;
                }
                    ;
                /**
 * Compares this Long's value with the specified's. This is an alias of {@link Long#compare}.
 * @function
 * @param {!Long|number|string} other Other value
 * @returns {number} 0 if they are the same, 1 if the this is greater and -1
 *  if the given one is greater
 */
                LongPrototype.comp = LongPrototype.compare;
                /**
 * Negates this Long's value.
 * @returns {!Long} Negated Long
 */
                LongPrototype.negate = function negate() {
                    if (!this.unsigned && this.eq(MIN_VALUE))
                        return MIN_VALUE;
                    return this.not().add(ONE);
                }
                    ;
                /**
 * Negates this Long's value. This is an alias of {@link Long#negate}.
 * @function
 * @returns {!Long} Negated Long
 */
                LongPrototype.neg = LongPrototype.negate;
                /**
 * Returns the sum of this and the specified Long.
 * @param {!Long|number|string} addend Addend
 * @returns {!Long} Sum
 */
                LongPrototype.add = function add(addend) {
                    if (!isLong(addend))
                        addend = fromValue(addend);
                    // Divide each number into 4 chunks of 16 bits, and then sum the chunks.
                    var a48 = this.high >>> 16;
                    var a32 = this.high & 0xFFFF;
                    var a16 = this.low >>> 16;
                    var a00 = this.low & 0xFFFF;
                    var b48 = addend.high >>> 16;
                    var b32 = addend.high & 0xFFFF;
                    var b16 = addend.low >>> 16;
                    var b00 = addend.low & 0xFFFF;
                    var c48 = 0
                        , c32 = 0
                        , c16 = 0
                        , c00 = 0;
                    c00 += a00 + b00;
                    c16 += c00 >>> 16;
                    c00 &= 0xFFFF;
                    c16 += a16 + b16;
                    c32 += c16 >>> 16;
                    c16 &= 0xFFFF;
                    c32 += a32 + b32;
                    c48 += c32 >>> 16;
                    c32 &= 0xFFFF;
                    c48 += a48 + b48;
                    c48 &= 0xFFFF;
                    return fromBits(c16 << 16 | c00, c48 << 16 | c32, this.unsigned);
                }
                    ;
                /**
 * Returns the difference of this and the specified Long.
 * @param {!Long|number|string} subtrahend Subtrahend
 * @returns {!Long} Difference
 */
                LongPrototype.subtract = function subtract(subtrahend) {
                    if (!isLong(subtrahend))
                        subtrahend = fromValue(subtrahend);
                    return this.add(subtrahend.neg());
                }
                    ;
                /**
 * Returns the difference of this and the specified Long. This is an alias of {@link Long#subtract}.
 * @function
 * @param {!Long|number|string} subtrahend Subtrahend
 * @returns {!Long} Difference
 */
                LongPrototype.sub = LongPrototype.subtract;
                /**
 * Returns the product of this and the specified Long.
 * @param {!Long|number|string} multiplier Multiplier
 * @returns {!Long} Product
 */
                LongPrototype.multiply = function multiply(multiplier) {
                    if (this.isZero())
                        return ZERO;
                    if (!isLong(multiplier))
                        multiplier = fromValue(multiplier);
                    // use wasm support if present
                    if (wasm) {
                        var low = wasm.mul(this.low, this.high, multiplier.low, multiplier.high);
                        return fromBits(low, wasm.get_high(), this.unsigned);
                    }
                    if (multiplier.isZero())
                        return ZERO;
                    if (this.eq(MIN_VALUE))
                        return multiplier.isOdd() ? MIN_VALUE : ZERO;
                    if (multiplier.eq(MIN_VALUE))
                        return this.isOdd() ? MIN_VALUE : ZERO;
                    if (this.isNegative()) {
                        if (multiplier.isNegative())
                            return this.neg().mul(multiplier.neg());
                        else
                            return this.neg().mul(multiplier).neg();
                    } else if (multiplier.isNegative())
                        return this.mul(multiplier.neg()).neg();
                    // If both longs are small, use float multiplication
                    if (this.lt(TWO_PWR_24) && multiplier.lt(TWO_PWR_24))
                        return fromNumber(this.toNumber() * multiplier.toNumber(), this.unsigned);
                    // Divide each long into 4 chunks of 16 bits, and then add up 4x4 products.
                    // We can skip products that would overflow.
                    var a48 = this.high >>> 16;
                    var a32 = this.high & 0xFFFF;
                    var a16 = this.low >>> 16;
                    var a00 = this.low & 0xFFFF;
                    var b48 = multiplier.high >>> 16;
                    var b32 = multiplier.high & 0xFFFF;
                    var b16 = multiplier.low >>> 16;
                    var b00 = multiplier.low & 0xFFFF;
                    var c48 = 0
                        , c32 = 0
                        , c16 = 0
                        , c00 = 0;
                    c00 += a00 * b00;
                    c16 += c00 >>> 16;
                    c00 &= 0xFFFF;
                    c16 += a16 * b00;
                    c32 += c16 >>> 16;
                    c16 &= 0xFFFF;
                    c16 += a00 * b16;
                    c32 += c16 >>> 16;
                    c16 &= 0xFFFF;
                    c32 += a32 * b00;
                    c48 += c32 >>> 16;
                    c32 &= 0xFFFF;
                    c32 += a16 * b16;
                    c48 += c32 >>> 16;
                    c32 &= 0xFFFF;
                    c32 += a00 * b32;
                    c48 += c32 >>> 16;
                    c32 &= 0xFFFF;
                    c48 += a48 * b00 + a32 * b16 + a16 * b32 + a00 * b48;
                    c48 &= 0xFFFF;
                    return fromBits(c16 << 16 | c00, c48 << 16 | c32, this.unsigned);
                }
                    ;
                /**
 * Returns the product of this and the specified Long. This is an alias of {@link Long#multiply}.
 * @function
 * @param {!Long|number|string} multiplier Multiplier
 * @returns {!Long} Product
 */
                LongPrototype.mul = LongPrototype.multiply;
                /**
 * Returns this Long divided by the specified. The result is signed if this Long is signed or
 *  unsigned if this Long is unsigned.
 * @param {!Long|number|string} divisor Divisor
 * @returns {!Long} Quotient
 */
                LongPrototype.divide = function divide(divisor) {
                    if (!isLong(divisor))
                        divisor = fromValue(divisor);
                    if (divisor.isZero())
                        throw Error('division by zero');
                    // use wasm support if present
                    if (wasm) {
                        // guard against signed division overflow: the largest
                        // negative number / -1 would be 1 larger than the largest
                        // positive number, due to two's complement.
                        if (!this.unsigned && this.high === -0x80000000 && divisor.low === -1 && divisor.high === -1) {
                            // be consistent with non-wasm code path
                            return this;
                        }
                        var low = (this.unsigned ? wasm.div_u : wasm.div_s)(this.low, this.high, divisor.low, divisor.high);
                        return fromBits(low, wasm.get_high(), this.unsigned);
                    }
                    if (this.isZero())
                        return this.unsigned ? UZERO : ZERO;
                    var approx, rem, res;
                    if (!this.unsigned) {
                        // This section is only relevant for signed longs and is derived from the
                        // closure library as a whole.
                        if (this.eq(MIN_VALUE)) {
                            if (divisor.eq(ONE) || divisor.eq(NEG_ONE))
                                return MIN_VALUE;
                            // recall that -MIN_VALUE == MIN_VALUE
                            else if (divisor.eq(MIN_VALUE))
                                return ONE;
                            else {
                                // At this point, we have |other| >= 2, so |this/other| < |MIN_VALUE|.
                                var halfThis = this.shr(1);
                                approx = halfThis.div(divisor).shl(1);
                                if (approx.eq(ZERO)) {
                                    return divisor.isNegative() ? ONE : NEG_ONE;
                                } else {
                                    rem = this.sub(divisor.mul(approx));
                                    res = approx.add(rem.div(divisor));
                                    return res;
                                }
                            }
                        } else if (divisor.eq(MIN_VALUE))
                            return this.unsigned ? UZERO : ZERO;
                        if (this.isNegative()) {
                            if (divisor.isNegative())
                                return this.neg().div(divisor.neg());
                            return this.neg().div(divisor).neg();
                        } else if (divisor.isNegative())
                            return this.div(divisor.neg()).neg();
                        res = ZERO;
                    } else {
                        // The algorithm below has not been made for unsigned longs. It's therefore
                        // required to take special care of the MSB prior to running it.
                        if (!divisor.unsigned)
                            divisor = divisor.toUnsigned();
                        if (divisor.gt(this))
                            return UZERO;
                        if (divisor.gt(this.shru(1)))
                            // 15 >>> 1 = 7 ; with divisor = 8 ; true
                            return UONE;
                        res = UZERO;
                    }
                    // Repeat the following until the remainder is less than other:  find a
                    // floating-point that approximates remainder / other *from below*, add this
                    // into the result, and subtract it from the remainder.  It is critical that
                    // the approximate value is less than or equal to the real value so that the
                    // remainder never becomes negative.
                    rem = this;
                    while (rem.gte(divisor)) {
                        // Approximate the result of division. This may be a little greater or
                        // smaller than the actual value.
                        approx = Math.max(1, Math.floor(rem.toNumber() / divisor.toNumber()));
                        // We will tweak the approximate result by changing it in the 48-th digit or
                        // the smallest non-fractional digit, whichever is larger.
                        var log2 = Math.ceil(Math.log(approx) / Math.LN2)
                            , delta = log2 <= 48 ? 1 : pow_dbl(2, log2 - 48)
                            , // Decrease the approximation until it is smaller than the remainder.  Note
                            // that if it is too large, the product overflows and is negative.
                            approxRes = fromNumber(approx)
                            , approxRem = approxRes.mul(divisor);
                        while (approxRem.isNegative() || approxRem.gt(rem)) {
                            approx -= delta;
                            approxRes = fromNumber(approx, this.unsigned);
                            approxRem = approxRes.mul(divisor);
                        }
                        // We know the answer can't be zero... and actually, zero would cause
                        // infinite recursion since we would make no progress.
                        if (approxRes.isZero())
                            approxRes = ONE;
                        res = res.add(approxRes);
                        rem = rem.sub(approxRem);
                    }
                    return res;
                }
                    ;
                /**
 * Returns this Long divided by the specified. This is an alias of {@link Long#divide}.
 * @function
 * @param {!Long|number|string} divisor Divisor
 * @returns {!Long} Quotient
 */
                LongPrototype.div = LongPrototype.divide;
                /**
 * Returns this Long modulo the specified.
 * @param {!Long|number|string} divisor Divisor
 * @returns {!Long} Remainder
 */
                LongPrototype.modulo = function modulo(divisor) {
                    if (!isLong(divisor))
                        divisor = fromValue(divisor);
                    // use wasm support if present
                    if (wasm) {
                        var low = (this.unsigned ? wasm.rem_u : wasm.rem_s)(this.low, this.high, divisor.low, divisor.high);
                        return fromBits(low, wasm.get_high(), this.unsigned);
                    }
                    return this.sub(this.div(divisor).mul(divisor));
                }
                    ;
                /**
 * Returns this Long modulo the specified. This is an alias of {@link Long#modulo}.
 * @function
 * @param {!Long|number|string} divisor Divisor
 * @returns {!Long} Remainder
 */
                LongPrototype.mod = LongPrototype.modulo;
                /**
 * Returns this Long modulo the specified. This is an alias of {@link Long#modulo}.
 * @function
 * @param {!Long|number|string} divisor Divisor
 * @returns {!Long} Remainder
 */
                LongPrototype.rem = LongPrototype.modulo;
                /**
 * Returns the bitwise NOT of this Long.
 * @returns {!Long}
 */
                LongPrototype.not = function not() {
                    return fromBits(~this.low, ~this.high, this.unsigned);
                }
                    ;
                /**
 * Returns the bitwise AND of this Long and the specified.
 * @param {!Long|number|string} other Other Long
 * @returns {!Long}
 */
                LongPrototype.and = function and(other) {
                    if (!isLong(other))
                        other = fromValue(other);
                    return fromBits(this.low & other.low, this.high & other.high, this.unsigned);
                }
                    ;
                /**
 * Returns the bitwise OR of this Long and the specified.
 * @param {!Long|number|string} other Other Long
 * @returns {!Long}
 */
                LongPrototype.or = function or(other) {
                    if (!isLong(other))
                        other = fromValue(other);
                    return fromBits(this.low | other.low, this.high | other.high, this.unsigned);
                }
                    ;
                /**
 * Returns the bitwise XOR of this Long and the given one.
 * @param {!Long|number|string} other Other Long
 * @returns {!Long}
 */
                LongPrototype.xor = function xor(other) {
                    if (!isLong(other))
                        other = fromValue(other);
                    return fromBits(this.low ^ other.low, this.high ^ other.high, this.unsigned);
                }
                    ;
                /**
 * Returns this Long with bits shifted to the left by the given amount.
 * @param {number|!Long} numBits Number of bits
 * @returns {!Long} Shifted Long
 */
                LongPrototype.shiftLeft = function shiftLeft(numBits) {
                    if (isLong(numBits))
                        numBits = numBits.toInt();
                    if ((numBits &= 63) === 0)
                        return this;
                    else if (numBits < 32)
                        return fromBits(this.low << numBits, this.high << numBits | this.low >>> 32 - numBits, this.unsigned);
                    else
                        return fromBits(0, this.low << numBits - 32, this.unsigned);
                }
                    ;
                /**
 * Returns this Long with bits shifted to the left by the given amount. This is an alias of {@link Long#shiftLeft}.
 * @function
 * @param {number|!Long} numBits Number of bits
 * @returns {!Long} Shifted Long
 */
                LongPrototype.shl = LongPrototype.shiftLeft;
                /**
 * Returns this Long with bits arithmetically shifted to the right by the given amount.
 * @param {number|!Long} numBits Number of bits
 * @returns {!Long} Shifted Long
 */
                LongPrototype.shiftRight = function shiftRight(numBits) {
                    if (isLong(numBits))
                        numBits = numBits.toInt();
                    if ((numBits &= 63) === 0)
                        return this;
                    else if (numBits < 32)
                        return fromBits(this.low >>> numBits | this.high << 32 - numBits, this.high >> numBits, this.unsigned);
                    else
                        return fromBits(this.high >> numBits - 32, this.high >= 0 ? 0 : -1, this.unsigned);
                }
                    ;
                /**
 * Returns this Long with bits arithmetically shifted to the right by the given amount. This is an alias of {@link Long#shiftRight}.
 * @function
 * @param {number|!Long} numBits Number of bits
 * @returns {!Long} Shifted Long
 */
                LongPrototype.shr = LongPrototype.shiftRight;
                /**
 * Returns this Long with bits logically shifted to the right by the given amount.
 * @param {number|!Long} numBits Number of bits
 * @returns {!Long} Shifted Long
 */
                LongPrototype.shiftRightUnsigned = function shiftRightUnsigned(numBits) {
                    if (isLong(numBits))
                        numBits = numBits.toInt();
                    numBits &= 63;
                    if (numBits === 0)
                        return this;
                    else {
                        var high = this.high;
                        if (numBits < 32) {
                            var low = this.low;
                            return fromBits(low >>> numBits | high << 32 - numBits, high >>> numBits, this.unsigned);
                        } else if (numBits === 32)
                            return fromBits(high, 0, this.unsigned);
                        else
                            return fromBits(high >>> numBits - 32, 0, this.unsigned);
                    }
                }
                    ;
                /**
 * Returns this Long with bits logically shifted to the right by the given amount. This is an alias of {@link Long#shiftRightUnsigned}.
 * @function
 * @param {number|!Long} numBits Number of bits
 * @returns {!Long} Shifted Long
 */
                LongPrototype.shru = LongPrototype.shiftRightUnsigned;
                /**
 * Returns this Long with bits logically shifted to the right by the given amount. This is an alias of {@link Long#shiftRightUnsigned}.
 * @function
 * @param {number|!Long} numBits Number of bits
 * @returns {!Long} Shifted Long
 */
                LongPrototype.shr_u = LongPrototype.shiftRightUnsigned;
                /**
 * Converts this Long to signed.
 * @returns {!Long} Signed long
 */
                LongPrototype.toSigned = function toSigned() {
                    if (!this.unsigned)
                        return this;
                    return fromBits(this.low, this.high, false);
                }
                    ;
                /**
 * Converts this Long to unsigned.
 * @returns {!Long} Unsigned long
 */
                LongPrototype.toUnsigned = function toUnsigned() {
                    if (this.unsigned)
                        return this;
                    return fromBits(this.low, this.high, true);
                }
                    ;
                /**
 * Converts this Long to its byte representation.
 * @param {boolean=} le Whether little or big endian, defaults to big endian
 * @returns {!Array.<number>} Byte representation
 */
                LongPrototype.toBytes = function toBytes(le) {
                    return le ? this.toBytesLE() : this.toBytesBE();
                }
                    ;
                /**
 * Converts this Long to its little endian byte representation.
 * @returns {!Array.<number>} Little endian byte representation
 */
                LongPrototype.toBytesLE = function toBytesLE() {
                    var hi = this.high
                        , lo = this.low;
                    return [lo & 0xff, lo >>> 8 & 0xff, lo >>> 16 & 0xff, lo >>> 24, hi & 0xff, hi >>> 8 & 0xff, hi >>> 16 & 0xff, hi >>> 24];
                }
                    ;
                /**
 * Converts this Long to its big endian byte representation.
 * @returns {!Array.<number>} Big endian byte representation
 */
                LongPrototype.toBytesBE = function toBytesBE() {
                    var hi = this.high
                        , lo = this.low;
                    return [hi >>> 24, hi >>> 16 & 0xff, hi >>> 8 & 0xff, hi & 0xff, lo >>> 24, lo >>> 16 & 0xff, lo >>> 8 & 0xff, lo & 0xff];
                }
                    ;
                /**
 * Creates a Long from its byte representation.
 * @param {!Array.<number>} bytes Byte representation
 * @param {boolean=} unsigned Whether unsigned or not, defaults to signed
 * @param {boolean=} le Whether little or big endian, defaults to big endian
 * @returns {Long} The corresponding Long value
 */
                Long$1.fromBytes = function fromBytes(bytes, unsigned, le) {
                    return le ? Long$1.fromBytesLE(bytes, unsigned) : Long$1.fromBytesBE(bytes, unsigned);
                }
                    ;
                /**
 * Creates a Long from its little endian byte representation.
 * @param {!Array.<number>} bytes Little endian byte representation
 * @param {boolean=} unsigned Whether unsigned or not, defaults to signed
 * @returns {Long} The corresponding Long value
 */
                Long$1.fromBytesLE = function fromBytesLE(bytes, unsigned) {
                    return new Long$1(bytes[0] | bytes[1] << 8 | bytes[2] << 16 | bytes[3] << 24, bytes[4] | bytes[5] << 8 | bytes[6] << 16 | bytes[7] << 24, unsigned);
                }
                    ;
                /**
 * Creates a Long from its big endian byte representation.
 * @param {!Array.<number>} bytes Big endian byte representation
 * @param {boolean=} unsigned Whether unsigned or not, defaults to signed
 * @returns {Long} The corresponding Long value
 */
                Long$1.fromBytesBE = function fromBytesBE(bytes, unsigned) {
                    return new Long$1(bytes[4] << 24 | bytes[5] << 16 | bytes[6] << 8 | bytes[7], bytes[0] << 24 | bytes[1] << 16 | bytes[2] << 8 | bytes[3], unsigned);
                }
                    ;
                var LongExports = /*#__PURE__*/
                    _mergeNamespaces({
                        __proto__: null,
                        'default': long
                    }, [long]);
                // tslint:disable-next-line
                var Long = // tslint:disable-next-line
                    long || LongExports;
                function hexToLong(hex) {
                    return Long.fromString(hex, true, 16);
                }
                // Some primes between 2^63 and 2^64 for various uses.
                // Hex 0xc3a5c85c97cb3127
                var k0 = hexToLong('c3a5c85c97cb3127');
                // Hex 0xb492b66fbe98f273
                var k1 = hexToLong('b492b66fbe98f273');
                // Hex 0x9ae16a3b2f90404f
                var k2 = hexToLong('9ae16a3b2f90404f');
                function shiftMix(val) {
                    return val.xor(val.shru(47));
                }
                function fetch$2(s, offset, numBytes) {
                    var bytes = s.slice(offset, offset + numBytes);
                    return Long.fromBytes(Array.from(bytes), true, true);
                }
                function fetch64(s, offset) {
                    return fetch$2(s, offset, 8);
                }
                function fetch32(s, offset) {
                    return fetch$2(s, offset, 4);
                }
                function rotate64(val, shift) {
                    // Avoid shifting by 64: doing so yields an undefined result.
                    return shift === 0 ? val : val.shru(shift).or(val.shl(64 - shift));
                }
                function hashLen16(u, v, mul) {
                    if (mul === void 0) {
                        mul = hexToLong('9ddfea08eb382d69');
                    }
                    // Murmur-inspired hashing.
                    var a = u.xor(v).mul(mul);
                    a = a.xor(a.shru(47));
                    var b = v.xor(a).mul(mul);
                    b = b.xor(b.shru(47));
                    b = b.mul(mul);
                    return b;
                }
                // Return a 16-byte hash for 48 bytes.  Quick and dirty.
                // Callers do best to use "random-looking" values for a and b.
                function weakHashLen32WithSeeds(w, x, y, z, a, b) {
                    a = a.add(w);
                    b = rotate64(b.add(a).add(z), 21);
                    var c = a;
                    a = a.add(x);
                    a = a.add(y);
                    b = b.add(rotate64(a, 44));
                    return [a.add(z), b.add(c)];
                }
                function weakHashLen32WithSeedsStr(s, offset, a, b) {
                    return weakHashLen32WithSeeds(fetch64(s, offset), fetch64(s, offset + 8), fetch64(s, offset + 16), fetch64(s, offset + 24), a, b);
                }
                function hashLen0to16(s, len) {
                    if (len === void 0) {
                        len = s.length;
                    }
                    if (len >= 8) {
                        var mul = k2.add(len * 2);
                        var a = fetch64(s, 0).add(k2);
                        var b = fetch64(s, len - 8);
                        var c = rotate64(b, 37).mul(mul).add(a);
                        var d = rotate64(a, 25).add(b).mul(mul);
                        return hashLen16(c, d, mul);
                    }
                    if (len >= 4) {
                        var mul = k2.add(len * 2);
                        var a = fetch32(s, 0);
                        return hashLen16(a.shl(3).add(len), fetch32(s, len - 4), mul);
                    }
                    if (len > 0) {
                        var a = s[0];
                        var b = s[len >> 1];
                        var c = s[len - 1];
                        var y = a + (b << 8);
                        var z = len + (c << 2);
                        return shiftMix(k2.mul(y).xor(k0.mul(z))).mul(k2);
                    }
                    return k2;
                }
                function hashLen17to32(s, len) {
                    if (len === void 0) {
                        len = s.length;
                    }
                    var mul = k2.add(len * 2);
                    var a = fetch64(s, 0).mul(k1);
                    var b = fetch64(s, 8);
                    var c = fetch64(s, len - 8).mul(mul);
                    var d = fetch64(s, len - 16).mul(k2);
                    return hashLen16(rotate64(a.add(b), 43).add(rotate64(c, 30)).add(d), a.add(rotate64(b.add(k2), 18)).add(c), mul);
                }
                function hashLen33to64(s, len) {
                    if (len === void 0) {
                        len = s.length;
                    }
                    var mul = k2.add(len * 2);
                    var a = fetch64(s, 0).mul(k2);
                    var b = fetch64(s, 8);
                    var c = fetch64(s, len - 8).mul(mul);
                    var d = fetch64(s, len - 16).mul(k2);
                    var y = rotate64(a.add(b), 43).add(rotate64(c, 30)).add(d);
                    var z = hashLen16(y, a.add(rotate64(b.add(k2), 18)).add(c), mul);
                    var e = fetch64(s, 16).mul(mul);
                    var f = fetch64(s, 24);
                    var g = y.add(fetch64(s, len - 32)).mul(mul);
                    var h = z.add(fetch64(s, len - 24)).mul(mul);
                    return hashLen16(rotate64(e.add(f), 43).add(rotate64(g, 30)).add(h), e.add(rotate64(f.add(a), 18)).add(g), mul);
                }
                function fingerPrint64(s, len) {
                    var _a, _b;
                    if (len === void 0) {
                        len = s.length;
                    }
                    var seed = Long.fromNumber(81, true);
                    if (len <= 32) {
                        if (len <= 16) {
                            return hashLen0to16(s, len);
                        } else {
                            return hashLen17to32(s, len);
                        }
                    } else if (len <= 64) {
                        return hashLen33to64(s, len);
                    }
                    // For strings over 64 bytes we loop.  Internal state consists of
                    // 56 bytes: v, w, x, y, and z.
                    var x = seed;
                    var y = seed.mul(k1).add(113);
                    var z = shiftMix(y.mul(k2).add(113)).mul(k2);
                    var v = [Long.UZERO, Long.UZERO];
                    var w = [Long.UZERO, Long.UZERO];
                    x = x.mul(k2).add(fetch64(s, 0));
                    var offset = 0;
                    // Set end so that after the loop we have 1 to 64 bytes left to process.
                    var end = (len - 1 >> 6) * 64;
                    var last64 = end + (len - 1 & 63) - 63;
                    do {
                        x = rotate64(x.add(y).add(v[0]).add(fetch64(s, offset + 8)), 37).mul(k1);
                        y = rotate64(y.add(v[1]).add(fetch64(s, offset + 48)), 42).mul(k1);
                        x = x.xor(w[1]);
                        y = y.add(v[0]).add(fetch64(s, offset + 40));
                        z = rotate64(z.add(w[0]), 33).mul(k1);
                        v = weakHashLen32WithSeedsStr(s, offset, v[1].mul(k1), x.add(w[0]));
                        w = weakHashLen32WithSeedsStr(s, offset + 32, z.add(w[1]), y.add(fetch64(s, offset + 16)));
                        _a = __read([x, z], 2),
                            z = _a[0],
                            x = _a[1];
                        offset += 64;
                    } while (offset !== end);
                    var mul = k1.add(z.and(0xff).shl(1));
                    // Point to the last 64 bytes of input.
                    offset = last64;
                    w[0] = w[0].add(len - 1 & 63);
                    v[0] = v[0].add(w[0]);
                    w[0] = w[0].add(v[0]);
                    x = rotate64(x.add(y).add(v[0]).add(fetch64(s, offset + 8)), 37).mul(mul);
                    y = rotate64(y.add(v[1]).add(fetch64(s, offset + 48)), 42).mul(mul);
                    x = x.xor(w[1].mul(9));
                    y = y.add(v[0].mul(9).add(fetch64(s, offset + 40)));
                    z = rotate64(z.add(w[0]), 33).mul(mul);
                    v = weakHashLen32WithSeedsStr(s, offset, v[1].mul(mul), x.add(w[0]));
                    w = weakHashLen32WithSeedsStr(s, offset + 32, z.add(w[1]), y.add(fetch64(s, offset + 16)));
                    _b = __read([x, z], 2),
                        z = _b[0],
                        x = _b[1];
                    return hashLen16(hashLen16(v[0], w[0], mul).add(shiftMix(y).mul(k0)).add(z), hashLen16(v[1], w[1], mul).add(x), mul);
                }
                /**
 * @license
 * Copyright 2017 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Create typed array for scalar value. Used for storing in `DataStorage`.
 */
                function createScalarValue(value, dtype) {
                    if (dtype === 'string') {
                        return encodeString(value);
                    }
                    return toTypedArray([value], dtype);
                }
                function noConversionNeeded(a, dtype) {
                    return a instanceof Float32Array && dtype === 'float32' || a instanceof Int32Array && dtype === 'int32' || a instanceof Uint8Array && dtype === 'bool';
                }
                function toTypedArray(a, dtype) {
                    if (dtype === 'string') {
                        throw new Error('Cannot convert a string[] to a TypedArray');
                    }
                    if (Array.isArray(a)) {
                        a = flatten(a);
                    }
                    if (env().getBool('DEBUG')) {
                        checkConversionForErrors(a, dtype);
                    }
                    if (noConversionNeeded(a, dtype)) {
                        return a;
                    }
                    if (dtype == null || dtype === 'float32' || dtype === 'complex64') {
                        return new Float32Array(a);
                    } else if (dtype === 'int32') {
                        return new Int32Array(a);
                    } else if (dtype === 'bool') {
                        var bool = new Uint8Array(a.length);
                        for (var i = 0; i < bool.length; ++i) {
                            if (Math.round(a[i]) !== 0) {
                                bool[i] = 1;
                            }
                        }
                        return bool;
                    } else {
                        throw new Error("Unknown data type ".concat(dtype));
                    }
                }
                /**
 * Returns the current high-resolution time in milliseconds relative to an
 * arbitrary time in the past. It works across different platforms (node.js,
 * browsers).
 *
 * ```js
 * console.log(tf.util.now());
 * ```
 *
 * @doc {heading: 'Util', namespace: 'util'}
 */
                function now() {
                    return env().platform.now();
                }
                /**
 * Returns a platform-specific implementation of
 * [`fetch`](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API).
 *
 * If `fetch` is defined on the global object (`window`, `process`, etc.),
 * `tf.util.fetch` returns that function.
 *
 * If not, `tf.util.fetch` returns a platform-specific solution.
 *
 * ```js
 * const resource = await tf.util.fetch('https://unpkg.com/@tensorflow/tfjs');
 * // handle response
 * ```
 *
 * @doc {heading: 'Util'}
 */
                function fetch$1(path, requestInits) {
                    return env().platform.fetch(path, requestInits);
                }
                /**
 * Encodes the provided string into bytes using the provided encoding scheme.
 *
 * @param s The string to encode.
 * @param encoding The encoding scheme. Defaults to utf-8.
 *
 * @doc {heading: 'Util'}
 */
                function encodeString(s, encoding) {
                    if (encoding === void 0) {
                        encoding = 'utf-8';
                    }
                    encoding = encoding || 'utf-8';
                    return env().platform.encode(s, encoding);
                }
                /**
 * Decodes the provided bytes into a string using the provided encoding scheme.
 * @param bytes The bytes to decode.
 *
 * @param encoding The encoding scheme. Defaults to utf-8.
 *
 * @doc {heading: 'Util'}
 */
                function decodeString(bytes, encoding) {
                    if (encoding === void 0) {
                        encoding = 'utf-8';
                    }
                    encoding = encoding || 'utf-8';
                    return env().platform.decode(bytes, encoding);
                }
                var util = {
                    __proto__: null,
                    createScalarValue: createScalarValue,
                    toTypedArray: toTypedArray,
                    now: now,
                    fetch: fetch$1,
                    encodeString: encodeString,
                    decodeString: decodeString,
                    shuffle: shuffle,
                    shuffleCombo: shuffleCombo,
                    clamp: clamp,
                    nearestLargerEven: nearestLargerEven,
                    swap: swap,
                    sum: sum$1,
                    randUniform: randUniform,
                    distSquared: distSquared,
                    assert: assert,
                    assertShapesMatch: assertShapesMatch,
                    assertNonNull: assertNonNull,
                    flatten: flatten,
                    sizeFromShape: sizeFromShape,
                    isScalarShape: isScalarShape,
                    arraysEqual: arraysEqual,
                    isInt: isInt,
                    tanh: tanh$1,
                    sizeToSquarishShape: sizeToSquarishShape,
                    createShuffledIndices: createShuffledIndices,
                    rightPad: rightPad,
                    repeatedTry: repeatedTry,
                    inferFromImplicitShape: inferFromImplicitShape,
                    parseAxisParam: parseAxisParam,
                    squeezeShape: squeezeShape,
                    getTypedArrayFromDType: getTypedArrayFromDType,
                    getArrayFromDType: getArrayFromDType,
                    checkConversionForErrors: checkConversionForErrors,
                    isValidDtype: isValidDtype,
                    hasEncodingLoss: hasEncodingLoss,
                    isTypedArray: isTypedArray,
                    bytesPerElement: bytesPerElement,
                    bytesFromStringArray: bytesFromStringArray,
                    isString: isString,
                    isBoolean: isBoolean,
                    isNumber: isNumber,
                    inferDtype: inferDtype,
                    isFunction: isFunction,
                    nearestDivisor: nearestDivisor,
                    computeStrides: computeStrides,
                    toNestedArray: toNestedArray,
                    makeOnesTypedArray: makeOnesTypedArray,
                    makeZerosTypedArray: makeZerosTypedArray,
                    makeZerosNestedTypedArray: makeZerosNestedTypedArray,
                    assertNonNegativeIntegerDimensions: assertNonNegativeIntegerDimensions,
                    locToIndex: locToIndex,
                    indexToLoc: indexToLoc,
                    isPromise: isPromise,
                    hexToLong: hexToLong,
                    fingerPrint64: fingerPrint64
                };
                var Profiler = /** @class */
                    function () {
                        function Profiler(backendTimer, logger) {
                            this.backendTimer = backendTimer;
                            this.logger = logger;
                            if (logger == null) {
                                this.logger = new Logger();
                            }
                        }
                        Profiler.prototype.profileKernel = function (kernelName, inputs, f) {
                            var e_1, _a;
                            var outputs;
                            var holdResultWrapperFn = function () {
                                outputs = f();
                            };
                            var timer;
                            var start = now();
                            if (this.backendTimer.timerAvailable()) {
                                timer = this.backendTimer.time(holdResultWrapperFn);
                            } else {
                                holdResultWrapperFn();
                                try {
                                    for (var outputs_1 = __values(outputs), outputs_1_1 = outputs_1.next(); !outputs_1_1.done; outputs_1_1 = outputs_1.next()) {
                                        var output = outputs_1_1.value;
                                        output.dataSync();
                                    }
                                } catch (e_1_1) {
                                    e_1 = {
                                        error: e_1_1
                                    };
                                } finally {
                                    try {
                                        if (outputs_1_1 && !outputs_1_1.done && (_a = outputs_1.return))
                                            _a.call(outputs_1);
                                    } finally {
                                        if (e_1)
                                            throw e_1.error;
                                    }
                                }
                                timer = Promise.resolve({
                                    kernelMs: now() - start
                                });
                            }
                            if (env().getBool('CHECK_COMPUTATION_FOR_ERRORS')) {
                                var _loop_1 = function (i) {
                                    var output = outputs[i];
                                    // Dangling promise here because we don't want to propagate up
                                    // asynchronicity.
                                    output.data().then(function (tensorVals) {
                                        checkComputationForErrors(tensorVals, output.dtype, kernelName);
                                    });
                                };
                                for (var i = 0; i < outputs.length; i++) {
                                    _loop_1(i);
                                }
                            }
                            var kernelProfile = {
                                kernelName: kernelName,
                                outputs: outputs,
                                inputs: inputs,
                                timeMs: timer.then(function (timing) {
                                    return timing.kernelMs;
                                }),
                                extraInfo: timer.then(function (timing) {
                                    return timing.getExtraProfileInfo != null ? timing.getExtraProfileInfo() : '';
                                })
                            };
                            return kernelProfile;
                        }
                            ;
                        Profiler.prototype.logKernelProfile = function (kernelProfile) {
                            var _this = this;
                            var kernelName = kernelProfile.kernelName
                                , outputs = kernelProfile.outputs
                                , timeMs = kernelProfile.timeMs
                                , inputs = kernelProfile.inputs
                                , extraInfo = kernelProfile.extraInfo;
                            outputs.forEach(function (result) {
                                Promise.all([result.data(), timeMs, extraInfo]).then(function (valueContainer) {
                                    _this.logger.logKernelProfile(kernelName, result, valueContainer[0], valueContainer[1], inputs, valueContainer[2]);
                                });
                            });
                        }
                            ;
                        return Profiler;
                    }();
                function checkComputationForErrors(vals, dtype, kernelName) {
                    if (dtype !== 'float32') {
                        // Only floating point computations will generate NaN values
                        return false;
                    }
                    for (var i = 0; i < vals.length; i++) {
                        var num = vals[i];
                        if (isNaN(num) || !isFinite(num)) {
                            // Throwing custom exception so behavior is testable.
                            console.warn("Found ".concat(num, " in the result of '").concat(kernelName, "'"));
                            return true;
                        }
                    }
                    return false;
                }
                var Logger = /** @class */
                    function () {
                        function Logger() { }
                        Logger.prototype.logKernelProfile = function (name, result, vals, timeMs, inputs, extraInfo) {
                            var time = typeof timeMs === 'number' ? rightPad("".concat(timeMs, "ms"), 9) : timeMs['error'];
                            var paddedName = rightPad(name, 25);
                            var rank = result.rank;
                            var size = result.size;
                            var shape = rightPad(result.shape.toString(), 14);
                            var inputShapesDescription = '';
                            for (var name_1 in inputs) {
                                var input = inputs[name_1];
                                if (input != null) {
                                    // The input might be a non-tensor (e.g HTMLImageElement), in which case
                                    // we claim the output shape as input shape.
                                    var inputShape = input.shape || result.shape;
                                    var inputRank = inputShape.length;
                                    inputShapesDescription += "".concat(name_1, ": ").concat(inputRank, "D ").concat(inputRank > 0 ? inputShape : '', " ");
                                }
                            }
                            console.log("%c".concat(paddedName, "\t%c").concat(time, "\t%c").concat(rank, "D ").concat(shape, "\t%c").concat(size, "\t%c").concat(inputShapesDescription, "\t%c").concat(extraInfo), 'font-weight:bold', 'color:red', 'color:blue', 'color: orange', 'color: green', 'color: steelblue');
                        }
                            ;
                        return Logger;
                    }();
                /**
 * @license
 * Copyright 2017 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes a list of TapeNodes that connect x to y, filtering everything else
 * out and preserving the order of the original tape elements.
 *
 * @param tape The tape elements to filter.
 * @param xs The input Tensors.
 * @param y The output Tensor.
 */
                function getFilteredNodesXToY(tape, xs, y) {
                    // Forward pass to compute all the nodes and Tensors that are transitively a
                    // function of x.
                    var tensorsFromX = {};
                    var nodesFromX = {};
                    for (var i = 0; i < xs.length; i++) {
                        tensorsFromX[xs[i].id] = true;
                    }
                    for (var i = 0; i < tape.length; i++) {
                        var node = tape[i];
                        var nodeInputs = node.inputs;
                        for (var inputName in nodeInputs) {
                            var input = nodeInputs[inputName];
                            var anyInputFromX = false;
                            for (var j = 0; j < xs.length; j++) {
                                if (tensorsFromX[input.id]) {
                                    node.outputs.forEach(function (output) {
                                        return tensorsFromX[output.id] = true;
                                    });
                                    anyInputFromX = true;
                                    nodesFromX[node.id] = true;
                                    break;
                                }
                            }
                            if (anyInputFromX) {
                                break;
                            }
                        }
                    }
                    // Backward pass to find all of the nodes and Tensors that lead to y.
                    var tensorsLeadToY = {};
                    tensorsLeadToY[y.id] = true;
                    var nodesToY = {};
                    for (var i = tape.length - 1; i >= 0; i--) {
                        var node = tape[i];
                        var nodeInputs = node.inputs;
                        // If any of the outputs lead to y, mark all of the inputs as leading to y.
                        for (var j = 0; j < node.outputs.length; j++) {
                            if (tensorsLeadToY[node.outputs[j].id]) {
                                for (var inputName in nodeInputs) {
                                    tensorsLeadToY[nodeInputs[inputName].id] = true;
                                    nodesToY[node.id] = true;
                                }
                                break;
                            }
                        }
                    }
                    // Return the paths that come from x and lead to y.
                    var filteredTape = [];
                    for (var i = 0; i < tape.length; i++) {
                        var node = tape[i];
                        if (nodesFromX[node.id] && nodesToY[node.id]) {
                            // Prune the inputs from the node that aren't a function of x.
                            var prunedInputs = {};
                            for (var inputName in node.inputs) {
                                var nodeInput = node.inputs[inputName];
                                if (tensorsFromX[nodeInput.id]) {
                                    prunedInputs[inputName] = nodeInput;
                                }
                            }
                            // Copy the node and overwrite inputsAndArgs to the pruned version.
                            var prunedNode = Object.assign({}, node);
                            prunedNode.inputs = prunedInputs;
                            prunedNode.outputs = node.outputs;
                            filteredTape.push(prunedNode);
                        }
                    }
                    return filteredTape;
                }
                /**
 * Backpropagate gradients through the filtered TapeNodes.
 *
 * @param tensorAccumulatedGradientMap A map of Tensor to its gradient. This map
 * is mutated by this method.
 * @param filteredTape The filtered TapeNodes to backprop through.
 */
                function backpropagateGradients(tensorAccumulatedGradientMap, filteredTape, tidy, add) {
                    var _loop_1 = function (i) {
                        var node = filteredTape[i];
                        var dys = [];
                        node.outputs.forEach(function (o) {
                            var gradTensor = tensorAccumulatedGradientMap[o.id];
                            if (gradTensor != null) {
                                dys.push(gradTensor);
                            } else {
                                // This particular output is not in the back-propagation subgraph, so it
                                // does not affect the final output, thus we put null for its dy.
                                dys.push(null);
                            }
                        });
                        if (node.gradient == null) {
                            throw new Error("Cannot compute gradient: gradient function not found " + "for ".concat(node.kernelName, "."));
                        }
                        // Backprop dy through this node and accumulate gradients over the inputs.
                        var inputGradients = node.gradient(dys);
                        var _loop_2 = function (inputName) {
                            if (!(inputName in inputGradients)) {
                                throw new Error("Cannot backprop through input ".concat(inputName, ". ") + "Available gradients found: ".concat(Object.keys(inputGradients), "."));
                            }
                            // Call the gradient function.
                            var dx = tidy(function () {
                                return inputGradients[inputName]();
                            });
                            if (dx.dtype !== 'float32') {
                                throw new Error("Error in gradient for op ".concat(node.kernelName, ". The gradient of input ") + "".concat(inputName, " must have 'float32' dtype, but has '").concat(dx.dtype, "'"));
                            }
                            var x = node.inputs[inputName];
                            if (!arraysEqual(dx.shape, x.shape)) {
                                throw new Error("Error in gradient for op ".concat(node.kernelName, ". The gradient of input ") + "'".concat(inputName, "' has shape '").concat(dx.shape, "', which does not match ") + "the shape of the input '".concat(x.shape, "'"));
                            }
                            if (tensorAccumulatedGradientMap[x.id] == null) {
                                tensorAccumulatedGradientMap[x.id] = dx;
                            } else {
                                var curGradient = tensorAccumulatedGradientMap[x.id];
                                tensorAccumulatedGradientMap[x.id] = add(curGradient, dx);
                                curGradient.dispose();
                            }
                        };
                        for (var inputName in node.inputs) {
                            _loop_2(inputName);
                        }
                    };
                    // Walk the tape backward and keep a map of Tensor to its gradient.
                    for (var i = filteredTape.length - 1; i >= 0; i--) {
                        _loop_1(i);
                    }
                }
                // Maximum number of values before we decide to show ellipsis.
                var FORMAT_LIMIT_NUM_VALS = 20;
                // Number of first and last values to show when displaying a, b,...,y, z.
                var FORMAT_NUM_FIRST_LAST_VALS = 3;
                // Number of significant digits to show.
                var FORMAT_NUM_SIG_DIGITS = 7;
                function tensorToString(vals, shape, dtype, verbose) {
                    var strides = computeStrides(shape);
                    var padPerCol = computeMaxSizePerColumn(vals, shape, dtype, strides);
                    var rank = shape.length;
                    var valsLines = subTensorToString(vals, shape, dtype, strides, padPerCol);
                    var lines = ['Tensor'];
                    if (verbose) {
                        lines.push("  dtype: ".concat(dtype));
                        lines.push("  rank: ".concat(rank));
                        lines.push("  shape: [".concat(shape, "]"));
                        lines.push("  values:");
                    }
                    lines.push(valsLines.map(function (l) {
                        return '    ' + l;
                    }).join('\n'));
                    return lines.join('\n');
                }
                function computeMaxSizePerColumn(vals, shape, dtype, strides) {
                    var n = sizeFromShape(shape);
                    var numCols = strides[strides.length - 1];
                    var padPerCol = new Array(numCols).fill(0);
                    var rank = shape.length;
                    var valuesOrTuples = dtype === 'complex64' ? createComplexTuples(vals) : vals;
                    if (rank > 1) {
                        for (var row = 0; row < n / numCols; row++) {
                            var offset = row * numCols;
                            for (var j = 0; j < numCols; j++) {
                                padPerCol[j] = Math.max(padPerCol[j], valToString(valuesOrTuples[offset + j], 0, dtype).length);
                            }
                        }
                    }
                    return padPerCol;
                }
                function valToString(val, pad, dtype) {
                    var valStr;
                    if (Array.isArray(val)) {
                        valStr = "".concat(parseFloat(val[0].toFixed(FORMAT_NUM_SIG_DIGITS)), " + ") + "".concat(parseFloat(val[1].toFixed(FORMAT_NUM_SIG_DIGITS)), "j");
                    } else if (isString(val)) {
                        valStr = "'".concat(val, "'");
                    } else if (dtype === 'bool') {
                        valStr = boolNumToString(val);
                    } else {
                        valStr = parseFloat(val.toFixed(FORMAT_NUM_SIG_DIGITS)).toString();
                    }
                    return rightPad(valStr, pad);
                }
                function boolNumToString(v) {
                    return v === 0 ? 'false' : 'true';
                }
                function subTensorToString(vals, shape, dtype, strides, padPerCol, isLast) {
                    if (isLast === void 0) {
                        isLast = true;
                    }
                    var storagePerElement = dtype === 'complex64' ? 2 : 1;
                    var size = shape[0];
                    var rank = shape.length;
                    if (rank === 0) {
                        if (dtype === 'complex64') {
                            var complexTuple = createComplexTuples(vals);
                            return [valToString(complexTuple[0], 0, dtype)];
                        }
                        if (dtype === 'bool') {
                            return [boolNumToString(vals[0])];
                        }
                        return [vals[0].toString()];
                    }
                    if (rank === 1) {
                        if (size > FORMAT_LIMIT_NUM_VALS) {
                            var firstValsSize = FORMAT_NUM_FIRST_LAST_VALS * storagePerElement;
                            var firstVals = Array.from(vals.slice(0, firstValsSize));
                            var lastVals = Array.from(vals.slice((size - FORMAT_NUM_FIRST_LAST_VALS) * storagePerElement, size * storagePerElement));
                            if (dtype === 'complex64') {
                                firstVals = createComplexTuples(firstVals);
                                lastVals = createComplexTuples(lastVals);
                            }
                            return ['[' + firstVals.map(function (x, i) {
                                return valToString(x, padPerCol[i], dtype);
                            }).join(', ') + ', ..., ' + lastVals.map(function (x, i) {
                                return valToString(x, padPerCol[size - FORMAT_NUM_FIRST_LAST_VALS + i], dtype);
                            }).join(', ') + ']'];
                        }
                        var displayVals = dtype === 'complex64' ? createComplexTuples(vals) : Array.from(vals);
                        return ['[' + displayVals.map(function (x, i) {
                            return valToString(x, padPerCol[i], dtype);
                        }).join(', ') + ']'];
                    }
                    // The array is rank 2 or more.
                    var subshape = shape.slice(1);
                    var substrides = strides.slice(1);
                    var stride = strides[0] * storagePerElement;
                    var lines = [];
                    if (size > FORMAT_LIMIT_NUM_VALS) {
                        for (var i = 0; i < FORMAT_NUM_FIRST_LAST_VALS; i++) {
                            var start = i * stride;
                            var end = start + stride;
                            lines.push.apply(lines, __spreadArray([], __read(subTensorToString(vals.slice(start, end), subshape, dtype, substrides, padPerCol, false /* isLast */
                            )), false));
                        }
                        lines.push('...');
                        for (var i = size - FORMAT_NUM_FIRST_LAST_VALS; i < size; i++) {
                            var start = i * stride;
                            var end = start + stride;
                            lines.push.apply(lines, __spreadArray([], __read(subTensorToString(vals.slice(start, end), subshape, dtype, substrides, padPerCol, i === size - 1 /* isLast */
                            )), false));
                        }
                    } else {
                        for (var i = 0; i < size; i++) {
                            var start = i * stride;
                            var end = start + stride;
                            lines.push.apply(lines, __spreadArray([], __read(subTensorToString(vals.slice(start, end), subshape, dtype, substrides, padPerCol, i === size - 1 /* isLast */
                            )), false));
                        }
                    }
                    var sep = rank === 2 ? ',' : '';
                    lines[0] = '[' + lines[0] + sep;
                    for (var i = 1; i < lines.length - 1; i++) {
                        lines[i] = ' ' + lines[i] + sep;
                    }
                    var newLineSep = ',\n';
                    for (var i = 2; i < rank; i++) {
                        newLineSep += '\n';
                    }
                    lines[lines.length - 1] = ' ' + lines[lines.length - 1] + ']' + (isLast ? '' : newLineSep);
                    return lines;
                }
                function createComplexTuples(vals) {
                    var complexTuples = [];
                    for (var i = 0; i < vals.length; i += 2) {
                        complexTuples.push([vals[i], vals[i + 1]]);
                    }
                    return complexTuples;
                }
                /**
 * A mutable object, similar to `tf.Tensor`, that allows users to set values
 * at locations before converting to an immutable `tf.Tensor`.
 *
 * See `tf.buffer` for creating a tensor buffer.
 *
 * @doc {heading: 'Tensors', subheading: 'Classes'}
 */
                var TensorBuffer = /** @class */
                    function () {
                        function TensorBuffer(shape, dtype, values) {
                            var _this = this;
                            this.dtype = dtype;
                            this.shape = shape.slice();
                            this.size = sizeFromShape(shape);
                            if (values != null) {
                                var n_1 = values.length;
                                assert(n_1 === this.size, function () {
                                    return "Length of values '".concat(n_1, "' does not match the size ") + "inferred by the shape '".concat(_this.size, "'.");
                                });
                            }
                            if (dtype === 'complex64') {
                                throw new Error("complex64 dtype TensorBuffers are not supported. Please create " + "a TensorBuffer for the real and imaginary parts separately and " + "call tf.complex(real, imag).");
                            }
                            this.values = values || getArrayFromDType(dtype, this.size);
                            this.strides = computeStrides(shape);
                        }
                        /**
         * Sets a value in the buffer at a given location.
         *
         * @param value The value to set.
         * @param locs  The location indices.
         *
         * @doc {heading: 'Tensors', subheading: 'Creation'}
         */
                        TensorBuffer.prototype.set = function (value) {
                            var _this = this;
                            var locs = [];
                            for (var _i = 1; _i < arguments.length; _i++) {
                                locs[_i - 1] = arguments[_i];
                            }
                            if (locs.length === 0) {
                                locs = [0];
                            }
                            assert(locs.length === this.rank, function () {
                                return "The number of provided coordinates (".concat(locs.length, ") must ") + "match the rank (".concat(_this.rank, ")");
                            });
                            var index = this.locToIndex(locs);
                            this.values[index] = value;
                        }
                            ;
                        /**
         * Returns the value in the buffer at the provided location.
         *
         * @param locs The location indices.
         *
         * @doc {heading: 'Tensors', subheading: 'Creation'}
         */
                        TensorBuffer.prototype.get = function () {
                            var e_1, _b;
                            var locs = [];
                            for (var _i = 0; _i < arguments.length; _i++) {
                                locs[_i] = arguments[_i];
                            }
                            if (locs.length === 0) {
                                locs = [0];
                            }
                            var i = 0;
                            try {
                                for (var locs_1 = __values(locs), locs_1_1 = locs_1.next(); !locs_1_1.done; locs_1_1 = locs_1.next()) {
                                    var loc = locs_1_1.value;
                                    if (loc < 0 || loc >= this.shape[i]) {
                                        var msg = "Requested out of range element at ".concat(locs, ". ") + "  Buffer shape=".concat(this.shape);
                                        throw new Error(msg);
                                    }
                                    i++;
                                }
                            } catch (e_1_1) {
                                e_1 = {
                                    error: e_1_1
                                };
                            } finally {
                                try {
                                    if (locs_1_1 && !locs_1_1.done && (_b = locs_1.return))
                                        _b.call(locs_1);
                                } finally {
                                    if (e_1)
                                        throw e_1.error;
                                }
                            }
                            var index = locs[locs.length - 1];
                            for (var i_1 = 0; i_1 < locs.length - 1; ++i_1) {
                                index += this.strides[i_1] * locs[i_1];
                            }
                            return this.values[index];
                        }
                            ;
                        TensorBuffer.prototype.locToIndex = function (locs) {
                            if (this.rank === 0) {
                                return 0;
                            } else if (this.rank === 1) {
                                return locs[0];
                            }
                            var index = locs[locs.length - 1];
                            for (var i = 0; i < locs.length - 1; ++i) {
                                index += this.strides[i] * locs[i];
                            }
                            return index;
                        }
                            ;
                        TensorBuffer.prototype.indexToLoc = function (index) {
                            if (this.rank === 0) {
                                return [];
                            } else if (this.rank === 1) {
                                return [index];
                            }
                            var locs = new Array(this.shape.length);
                            for (var i = 0; i < locs.length - 1; ++i) {
                                locs[i] = Math.floor(index / this.strides[i]);
                                index -= locs[i] * this.strides[i];
                            }
                            locs[locs.length - 1] = index;
                            return locs;
                        }
                            ;
                        Object.defineProperty(TensorBuffer.prototype, "rank", {
                            get: function () {
                                return this.shape.length;
                            },
                            enumerable: false,
                            configurable: true
                        });
                        /**
         * Creates an immutable `tf.Tensor` object from the buffer.
         *
         * @doc {heading: 'Tensors', subheading: 'Creation'}
         */
                        TensorBuffer.prototype.toTensor = function () {
                            return trackerFn().makeTensor(this.values, this.shape, this.dtype);
                        }
                            ;
                        return TensorBuffer;
                    }();
                // For tracking tensor creation and disposal.
                var trackerFn = null;
                // Used by chaining methods to call into ops.
                var opHandler$1 = null;
                /**
 * An external consumer can register itself as the tensor tracker. This way
 * the Tensor class can notify the tracker for every tensor created and
 * disposed.
 */
                function setTensorTracker(fn) {
                    trackerFn = fn;
                }
                /**
 * An external consumer can register itself as the op handler. This way the
 * Tensor class can have chaining methods that call into ops via the op
 * handler.
 */
                function setOpHandler(handler) {
                    opHandler$1 = handler;
                }
                /**
 * A `tf.Tensor` object represents an immutable, multidimensional array of
 * numbers that has a shape and a data type.
 *
 * For performance reasons, functions that create tensors do not necessarily
 * perform a copy of the data passed to them (e.g. if the data is passed as a
 * `Float32Array`), and changes to the data will change the tensor. This is not
 * a feature and is not supported. To avoid this behavior, use the tensor before
 * changing the input data or create a copy with `copy = tf.add(yourTensor, 0)`.
 *
 * See `tf.tensor` for details on how to create a `tf.Tensor`.
 *
 * @doc {heading: 'Tensors', subheading: 'Classes'}
 */
                var Tensor = /** @class */
                    function () {
                        function Tensor(shape, dtype, dataId, id) {
                            /** Whether this tensor has been globally kept. */
                            this.kept = false;
                            this.isDisposedInternal = false;
                            this.shape = shape.slice();
                            this.dtype = dtype || 'float32';
                            this.size = sizeFromShape(shape);
                            this.strides = computeStrides(shape);
                            this.dataId = dataId;
                            this.id = id;
                            this.rankType = this.rank < 5 ? this.rank.toString() : 'higher';
                        }
                        Object.defineProperty(Tensor.prototype, "rank", {
                            get: function () {
                                return this.shape.length;
                            },
                            enumerable: false,
                            configurable: true
                        });
                        /**
         * Returns a promise of `tf.TensorBuffer` that holds the underlying data.
         *
         * @doc {heading: 'Tensors', subheading: 'Classes'}
         */
                        Tensor.prototype.buffer = function () {
                            return __awaiter(this, void 0, void 0, function () {
                                var vals;
                                return __generator(this, function (_b) {
                                    switch (_b.label) {
                                        case 0:
                                            return [4 /*yield*/
                                                , this.data()];
                                        case 1:
                                            vals = _b.sent();
                                            return [2 /*return*/
                                                , opHandler$1.buffer(this.shape, this.dtype, vals)];
                                    }
                                });
                            });
                        }
                            ;
                        /**
         * Returns a `tf.TensorBuffer` that holds the underlying data.
         * @doc {heading: 'Tensors', subheading: 'Classes'}
         */
                        Tensor.prototype.bufferSync = function () {
                            return opHandler$1.buffer(this.shape, this.dtype, this.dataSync());
                        }
                            ;
                        /**
         * Returns the tensor data as a nested array. The transfer of data is done
         * asynchronously.
         *
         * @doc {heading: 'Tensors', subheading: 'Classes'}
         */
                        Tensor.prototype.array = function () {
                            return __awaiter(this, void 0, void 0, function () {
                                var vals;
                                return __generator(this, function (_b) {
                                    switch (_b.label) {
                                        case 0:
                                            return [4 /*yield*/
                                                , this.data()];
                                        case 1:
                                            vals = _b.sent();
                                            return [2 /*return*/
                                                , toNestedArray(this.shape, vals, this.dtype === 'complex64')];
                                    }
                                });
                            });
                        }
                            ;
                        /**
         * Returns the tensor data as a nested array. The transfer of data is done
         * synchronously.
         *
         * @doc {heading: 'Tensors', subheading: 'Classes'}
         */
                        Tensor.prototype.arraySync = function () {
                            return toNestedArray(this.shape, this.dataSync(), this.dtype === 'complex64');
                        }
                            ;
                        /**
         * Asynchronously downloads the values from the `tf.Tensor`. Returns a
         * promise of `TypedArray` that resolves when the computation has finished.
         *
         * @doc {heading: 'Tensors', subheading: 'Classes'}
         */
                        Tensor.prototype.data = function () {
                            return __awaiter(this, void 0, void 0, function () {
                                var data, bytes;
                                return __generator(this, function (_b) {
                                    switch (_b.label) {
                                        case 0:
                                            this.throwIfDisposed();
                                            data = trackerFn().read(this.dataId);
                                            if (!(this.dtype === 'string'))
                                                return [3 /*break*/
                                                    , 2];
                                            return [4 /*yield*/
                                                , data];
                                        case 1:
                                            bytes = _b.sent();
                                            try {
                                                return [2 /*return*/
                                                    , bytes.map(function (b) {
                                                        return decodeString(b);
                                                    })];
                                            } catch (_a) {
                                                throw new Error('Failed to decode the string bytes into utf-8. ' + 'To get the original bytes, call tensor.bytes().');
                                            }
                                            _b.label = 2;
                                        case 2:
                                            return [2 /*return*/
                                                , data];
                                    }
                                });
                            });
                        }
                            ;
                        /**
         * Copy the tensor's data to a new GPU resource. Comparing to the `dataSync()`
         * and `data()`, this method prevents data from being downloaded to CPU.
         *
         * For WebGL backend, the data will be stored on a densely packed texture.
         * This means that the texture will use the RGBA channels to store value.
         *
         * For WebGPU backend, the data will be stored on a buffer. There is no
         * parameter, so can not use a user-defined size to create the buffer.
         *
         * @param options:
         *     For WebGL,
         *         - customTexShape: Optional. If set, will use the user defined
         *     texture shape to create the texture.
         *
         * @returns For WebGL backend, a GPUData contains the new texture and
         *     its information.
         *     {
         *        tensorRef: The tensor that is associated with this texture,
         *        texture: WebGLTexture,
         *        texShape: [number, number] // [height, width]
         *     }
         *
         *     For WebGPU backend, a GPUData contains the new buffer and
         *     its information.
         *     {
         *        tensorRef: The tensor that is associated with this buffer,
         *        buffer: GPUBuffer,
         *        bufSize: number
         *     }
         *
         *     Remember to dispose the GPUData after it is used by
         *     `res.tensorRef.dispose()`.
         *
         * @doc {heading: 'Tensors', subheading: 'Classes'}
         */
                        Tensor.prototype.dataToGPU = function (options) {
                            this.throwIfDisposed();
                            return trackerFn().readToGPU(this.dataId, options);
                        }
                            ;
                        /**
         * Synchronously downloads the values from the `tf.Tensor`. This blocks the
         * UI thread until the values are ready, which can cause performance issues.
         *
         * @doc {heading: 'Tensors', subheading: 'Classes'}
         */
                        Tensor.prototype.dataSync = function () {
                            this.throwIfDisposed();
                            var data = trackerFn().readSync(this.dataId);
                            if (this.dtype === 'string') {
                                try {
                                    return data.map(function (b) {
                                        return decodeString(b);
                                    });
                                } catch (_a) {
                                    throw new Error('Failed to decode the string bytes into utf-8. ' + 'To get the original bytes, call tensor.bytes().');
                                }
                            }
                            return data;
                        }
                            ;
                        /** Returns the underlying bytes of the tensor's data. */
                        Tensor.prototype.bytes = function () {
                            return __awaiter(this, void 0, void 0, function () {
                                var data;
                                return __generator(this, function (_b) {
                                    switch (_b.label) {
                                        case 0:
                                            this.throwIfDisposed();
                                            return [4 /*yield*/
                                                , trackerFn().read(this.dataId)];
                                        case 1:
                                            data = _b.sent();
                                            if (this.dtype === 'string') {
                                                return [2 /*return*/
                                                    , data];
                                            } else {
                                                return [2 /*return*/
                                                    , new Uint8Array(data.buffer)];
                                            }
                                    }
                                });
                            });
                        }
                            ;
                        /**
         * Disposes `tf.Tensor` from memory.
         *
         * @doc {heading: 'Tensors', subheading: 'Classes'}
         */
                        Tensor.prototype.dispose = function () {
                            if (this.isDisposed) {
                                return;
                            }
                            trackerFn().disposeTensor(this);
                            this.isDisposedInternal = true;
                        }
                            ;
                        Object.defineProperty(Tensor.prototype, "isDisposed", {
                            get: function () {
                                return this.isDisposedInternal;
                            },
                            enumerable: false,
                            configurable: true
                        });
                        Tensor.prototype.throwIfDisposed = function () {
                            if (this.isDisposed) {
                                throw new Error("Tensor is disposed.");
                            }
                        }
                            ;
                        /**
         * Prints the `tf.Tensor`. See `tf.print` for details.
         *
         * @param verbose Whether to print verbose information about the tensor,
         *    including dtype and size.
         *
         * @doc {heading: 'Tensors', subheading: 'Classes'}
         */
                        Tensor.prototype.print = function (verbose) {
                            if (verbose === void 0) {
                                verbose = false;
                            }
                            return opHandler$1.print(this, verbose);
                        }
                            ;
                        /**
         * Returns a copy of the tensor. See `tf.clone` for details.
         * @doc {heading: 'Tensors', subheading: 'Classes'}
         */
                        Tensor.prototype.clone = function () {
                            this.throwIfDisposed();
                            return opHandler$1.clone(this);
                        }
                            ;
                        /**
         * Returns a human-readable description of the tensor. Useful for logging.
         *
         * @doc {heading: 'Tensors', subheading: 'Classes'}
         */
                        Tensor.prototype.toString = function (verbose) {
                            if (verbose === void 0) {
                                verbose = false;
                            }
                            var vals = this.dataSync();
                            return tensorToString(vals, this.shape, this.dtype, verbose);
                        }
                            ;
                        Tensor.prototype.cast = function (dtype) {
                            this.throwIfDisposed();
                            return opHandler$1.cast(this, dtype);
                        }
                            ;
                        Tensor.prototype.variable = function (trainable, name, dtype) {
                            if (trainable === void 0) {
                                trainable = true;
                            }
                            this.throwIfDisposed();
                            return trackerFn().makeVariable(this, trainable, name, dtype);
                        }
                            ;
                        return Tensor;
                    }();
                Object.defineProperty(Tensor, Symbol.hasInstance, {
                    value: function (instance) {
                        // Implementation note: we should use properties of the object that will be
                        // defined before the constructor body has finished executing (methods).
                        // This is because when this code is transpiled by babel, babel will call
                        // classCallCheck before the constructor body is run.
                        // See https://github.com/tensorflow/tfjs/issues/3384 for backstory.
                        return !!instance && instance.data != null && instance.dataSync != null && instance.throwIfDisposed != null;
                    }
                });
                function getGlobalTensorClass() {
                    // Use getGlobal so that we can augment the Tensor class across package
                    // boundaries becase the node resolution alg may result in different modules
                    // being returned for this file depending on the path they are loaded from.
                    return getGlobal('Tensor', function () {
                        return Tensor;
                    });
                }
                // Global side effect. Cache global reference to Tensor class
                getGlobalTensorClass();
                /**
 * A mutable `tf.Tensor`, useful for persisting state, e.g. for training.
 *
 * @doc {heading: 'Tensors', subheading: 'Classes'}
 */
                var Variable = /** @class */
                    function (_super) {
                        __extends(Variable, _super);
                        function Variable(initialValue, trainable, name, tensorId) {
                            var _this = _super.call(this, initialValue.shape, initialValue.dtype, initialValue.dataId, tensorId) || this;
                            _this.trainable = trainable;
                            _this.name = name;
                            return _this;
                        }
                        /**
         * Assign a new `tf.Tensor` to this variable. The new `tf.Tensor` must have
         * the same shape and dtype as the old `tf.Tensor`.
         *
         * @param newValue New tensor to be assigned to this variable.
         *
         * @doc {heading: 'Tensors', subheading: 'Classes'}
         */
                        Variable.prototype.assign = function (newValue) {
                            if (newValue.dtype !== this.dtype) {
                                throw new Error("dtype of the new value (".concat(newValue.dtype, ") and ") + "previous value (".concat(this.dtype, ") must match"));
                            }
                            if (!arraysEqual(newValue.shape, this.shape)) {
                                throw new Error("shape of the new value (".concat(newValue.shape, ") and ") + "previous value (".concat(this.shape, ") must match"));
                            }
                            trackerFn().disposeTensor(this);
                            this.dataId = newValue.dataId;
                            trackerFn().incRef(this, null /* backend */
                            );
                        }
                            ;
                        Variable.prototype.dispose = function () {
                            trackerFn().disposeVariable(this);
                            this.isDisposedInternal = true;
                        }
                            ;
                        return Variable;
                    }(Tensor);
                Object.defineProperty(Variable, Symbol.hasInstance, {
                    value: function (instance) {
                        return instance instanceof Tensor && instance.assign != null && instance.assign instanceof Function;
                    }
                });
                /**
 * @license
 * Copyright 2017 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                exports.Rank = void 0;
                (function (Rank) {
                    Rank["R0"] = "R0";
                    Rank["R1"] = "R1";
                    Rank["R2"] = "R2";
                    Rank["R3"] = "R3";
                    Rank["R4"] = "R4";
                    Rank["R5"] = "R5";
                    Rank["R6"] = "R6";
                }
                )(exports.Rank || (exports.Rank = {}));
                // Looks for upcasting types. Used, for example, in operations with mixed dtype
                // inputs.
                var UpcastInt32AndMap;
                (function (UpcastInt32AndMap) {
                    UpcastInt32AndMap["float32"] = "float32";
                    UpcastInt32AndMap["int32"] = "int32";
                    UpcastInt32AndMap["bool"] = "int32";
                    UpcastInt32AndMap["complex64"] = "complex64";
                }
                )(UpcastInt32AndMap || (UpcastInt32AndMap = {}));
                var UpcastBoolAndMap;
                (function (UpcastBoolAndMap) {
                    UpcastBoolAndMap["float32"] = "float32";
                    UpcastBoolAndMap["int32"] = "int32";
                    UpcastBoolAndMap["bool"] = "bool";
                    UpcastBoolAndMap["complex64"] = "complex64";
                }
                )(UpcastBoolAndMap || (UpcastBoolAndMap = {}));
                var UpcastFloat32AndMap;
                (function (UpcastFloat32AndMap) {
                    UpcastFloat32AndMap["float32"] = "float32";
                    UpcastFloat32AndMap["int32"] = "float32";
                    UpcastFloat32AndMap["bool"] = "float32";
                    UpcastFloat32AndMap["complex64"] = "complex64";
                }
                )(UpcastFloat32AndMap || (UpcastFloat32AndMap = {}));
                var UpcastComplex64AndMap;
                (function (UpcastComplex64AndMap) {
                    UpcastComplex64AndMap["float32"] = "complex64";
                    UpcastComplex64AndMap["int32"] = "complex64";
                    UpcastComplex64AndMap["bool"] = "complex64";
                    UpcastComplex64AndMap["complex64"] = "complex64";
                }
                )(UpcastComplex64AndMap || (UpcastComplex64AndMap = {}));
                var upcastTypeMap = {
                    'float32': UpcastFloat32AndMap,
                    'int32': UpcastInt32AndMap,
                    'bool': UpcastBoolAndMap,
                    'complex64': UpcastComplex64AndMap
                };
                function upcastType(typeA, typeB) {
                    if (typeA === 'string' || typeB === 'string') {
                        if (typeA === 'string' && typeB === 'string') {
                            return 'string';
                        }
                        throw new Error("Can not upcast ".concat(typeA, " with ").concat(typeB));
                    }
                    return upcastTypeMap[typeA][typeB];
                }
                /** Returns the output type after summation. */
                function sumOutType(type) {
                    return upcastType(type, 'int32');
                }
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                function makeTypesMatch(a, b) {
                    if (a.dtype === b.dtype) {
                        return [a, b];
                    }
                    var dtype = upcastType(a.dtype, b.dtype);
                    return [a.cast(dtype), b.cast(dtype)];
                }
                function assertTypesMatch(a, b) {
                    assert(a.dtype === b.dtype, function () {
                        return "The dtypes of the first(".concat(a.dtype, ") and") + " second(".concat(b.dtype, ") input must match");
                    });
                }
                function isTensorInList(tensor, tensorList) {
                    return tensorList.some(function (x) {
                        return x.id === tensor.id;
                    });
                }
                /**
 * Extracts any `Tensor`s found within the provided object.
 *
 * @param container an object that may be a `Tensor` or may directly contain
 *   `Tensor`s, such as a `Tensor[]` or `{key: Tensor, ...}`. In general it
 *   is safe to pass any object here, except that `Promise`s are not
 *   supported.
 * @returns An array of `Tensors` found within the passed object. If the
 *   argument is simply a `Tensor', a list containing that `Tensor` is
 *   returned. If the object is not a `Tensor` or does not
 *   contain `Tensors`, an empty list is returned.
 */
                function getTensorsInContainer(result) {
                    var list = [];
                    var seen = new Set();
                    walkTensorContainer(result, list, seen);
                    return list;
                }
                function walkTensorContainer(container, list, seen) {
                    if (container == null) {
                        return;
                    }
                    if (container instanceof Tensor) {
                        list.push(container);
                        return;
                    }
                    if (!isIterable(container)) {
                        return;
                    }
                    // Iteration over keys works also for arrays.
                    var iterable = container;
                    for (var k in iterable) {
                        var val = iterable[k];
                        if (!seen.has(val)) {
                            seen.add(val);
                            walkTensorContainer(val, list, seen);
                        }
                    }
                }
                // tslint:disable-next-line:no-any
                function isIterable(obj) {
                    return Array.isArray(obj) || typeof obj === 'object';
                }
                var tensor_util = {
                    __proto__: null,
                    makeTypesMatch: makeTypesMatch,
                    assertTypesMatch: assertTypesMatch,
                    isTensorInList: isTensorInList,
                    getTensorsInContainer: getTensorsInContainer
                };
                function isRegisteredKernelInvocation(kernelInvocation) {
                    return kernelInvocation.kernelName != null;
                }
                var EngineState = /** @class */
                    function () {
                        function EngineState() {
                            // Public since optimizers will use it.
                            this.registeredVariables = {};
                            this.nextTapeNodeId = 0;
                            this.numBytes = 0;
                            this.numTensors = 0;
                            this.numStringTensors = 0;
                            this.numDataBuffers = 0;
                            // Number of nested tf.grad() statements when computing higher-order
                            // gradients. E.g. `1` for first-order gradients and `2` for second-order
                            // gradients. Used to track if the tape should be removed after a backprop.
                            this.gradientDepth = 0;
                            // Number of nested kernel calls. When kernel depth is greater than 1, we turn
                            // off the tape.
                            this.kernelDepth = 0;
                            this.scopeStack = [];
                            /**
             * Keeps track of the number of data moves during a kernel execution. We
             * maintain a stack since kernels can call other kernels, recursively.
             */
                            this.numDataMovesStack = [];
                            this.nextScopeId = 0;
                            this.tensorInfo = new WeakMap();
                            this.profiling = false;
                            this.activeProfile = {
                                newBytes: 0,
                                newTensors: 0,
                                peakBytes: 0,
                                kernels: [],
                                result: null,
                                get kernelNames() {
                                    return Array.from(new Set(this.kernels.map(function (k) {
                                        return k.name;
                                    })));
                                }
                            };
                        }
                        EngineState.prototype.dispose = function () {
                            for (var variableName in this.registeredVariables) {
                                this.registeredVariables[variableName].dispose();
                            }
                        }
                            ;
                        return EngineState;
                    }();
                var Engine = /** @class */
                    function () {
                        function Engine(ENV) {
                            this.ENV = ENV;
                            this.registry = {};
                            this.registryFactory = {};
                            this.pendingBackendInitId = 0;
                            this.state = new EngineState();
                        }
                        Engine.prototype.ready = function () {
                            return __awaiter(this, void 0, void 0, function () {
                                var sortedBackends, i, backendName, success;
                                return __generator(this, function (_a) {
                                    switch (_a.label) {
                                        case 0:
                                            if (this.pendingBackendInit != null) {
                                                return [2 /*return*/
                                                    , this.pendingBackendInit.then(function () { })];
                                            }
                                            if (this.backendInstance != null) {
                                                return [2 /*return*/
                                                ];
                                            }
                                            sortedBackends = this.getSortedBackends();
                                            i = 0;
                                            _a.label = 1;
                                        case 1:
                                            if (!(i < sortedBackends.length))
                                                return [3 /*break*/
                                                    , 5];
                                            backendName = sortedBackends[i];
                                            return [4 /*yield*/
                                                , this.initializeBackend(backendName).success];
                                        case 2:
                                            success = _a.sent();
                                            if (!success)
                                                return [3 /*break*/
                                                    , 4];
                                            return [4 /*yield*/
                                                , this.setBackend(backendName)];
                                        case 3:
                                            _a.sent();
                                            return [2 /*return*/
                                            ];
                                        case 4:
                                            i++;
                                            return [3 /*break*/
                                                , 1];
                                        case 5:
                                            throw new Error("Could not initialize any backends, all backend initializations " + "failed.");
                                    }
                                });
                            });
                        }
                            ;
                        Object.defineProperty(Engine.prototype, "backend", {
                            get: function () {
                                if (this.pendingBackendInit != null) {
                                    throw new Error("Backend '".concat(this.backendName, "' has not yet been initialized. Make ") + "sure to await tf.ready() or await tf.setBackend() before calling " + "other methods");
                                }
                                if (this.backendInstance == null) {
                                    var _a = this.initializeBackendsAndReturnBest()
                                        , name = _a.name
                                        , asyncInit = _a.asyncInit;
                                    if (asyncInit) {
                                        throw new Error("The highest priority backend '".concat(name, "' has not yet been ") + "initialized. Make sure to await tf.ready() or " + "await tf.setBackend() before calling other methods");
                                    }
                                    this.setBackend(name);
                                }
                                return this.backendInstance;
                            },
                            enumerable: false,
                            configurable: true
                        });
                        Engine.prototype.backendNames = function () {
                            return Object.keys(this.registryFactory);
                        }
                            ;
                        Engine.prototype.findBackend = function (backendName) {
                            if (!(backendName in this.registry)) {
                                // If the backend hasn't been initialized but we have a registry entry for
                                // it, initialize it and return it.
                                if (backendName in this.registryFactory) {
                                    var asyncInit = this.initializeBackend(backendName).asyncInit;
                                    if (asyncInit) {
                                        // Backend is not ready yet.
                                        return null;
                                    }
                                } else {
                                    return null;
                                }
                            }
                            return this.registry[backendName];
                        }
                            ;
                        Engine.prototype.findBackendFactory = function (backendName) {
                            if (!(backendName in this.registryFactory)) {
                                return null;
                            }
                            return this.registryFactory[backendName].factory;
                        }
                            ;
                        Engine.prototype.registerBackend = function (backendName, factory, priority) {
                            if (priority === void 0) {
                                priority = 1;
                            }
                            if (backendName in this.registryFactory) {
                                warn("".concat(backendName, " backend was already registered. ") + "Reusing existing backend factory.");
                                return false;
                            }
                            this.registryFactory[backendName] = {
                                factory: factory,
                                priority: priority
                            };
                            return true;
                        }
                            ;
                        Engine.prototype.setBackend = function (backendName) {
                            return __awaiter(this, void 0, void 0, function () {
                                var _a, success, asyncInit, result, _b;
                                return __generator(this, function (_c) {
                                    switch (_c.label) {
                                        case 0:
                                            if (this.registryFactory[backendName] == null) {
                                                throw new Error("Backend name '".concat(backendName, "' not found in registry"));
                                            }
                                            this.backendName = backendName;
                                            if (!(this.registry[backendName] == null))
                                                return [3 /*break*/
                                                    , 4];
                                            this.backendInstance = null;
                                            _a = this.initializeBackend(backendName),
                                                success = _a.success,
                                                asyncInit = _a.asyncInit;
                                            if (!asyncInit)
                                                return [3 /*break*/
                                                    , 2];
                                            return [4 /*yield*/
                                                , success];
                                        case 1:
                                            _b = _c.sent();
                                            return [3 /*break*/
                                                , 3];
                                        case 2:
                                            _b = success;
                                            _c.label = 3;
                                        case 3:
                                            result = _b;
                                            if (!result) {
                                                return [2 /*return*/
                                                    , false];
                                            }
                                            _c.label = 4;
                                        case 4:
                                            this.backendInstance = this.registry[backendName];
                                            this.setupRegisteredKernels();
                                            // Reset the profiler.
                                            this.profiler = new Profiler(this.backendInstance);
                                            return [2 /*return*/
                                                , true];
                                    }
                                });
                            });
                        }
                            ;
                        Engine.prototype.setupRegisteredKernels = function () {
                            var _this = this;
                            var kernels = getKernelsForBackend(this.backendName);
                            kernels.forEach(function (kernel) {
                                if (kernel.setupFunc != null) {
                                    kernel.setupFunc(_this.backendInstance);
                                }
                            });
                        }
                            ;
                        Engine.prototype.disposeRegisteredKernels = function (backendName) {
                            var _this = this;
                            var kernels = getKernelsForBackend(backendName);
                            kernels.forEach(function (kernel) {
                                if (kernel.disposeFunc != null) {
                                    kernel.disposeFunc(_this.registry[backendName]);
                                }
                            });
                        }
                            ;
                        /**
         * Initializes a backend by looking up the backend name in the factory
         * registry and calling the factory method. Returns a boolean representing
         * whether the initialization of the backend suceeded. Throws an error if
         * there is no backend in the factory registry.
         */
                        Engine.prototype.initializeBackend = function (backendName) {
                            var _this = this;
                            var registryFactoryEntry = this.registryFactory[backendName];
                            if (registryFactoryEntry == null) {
                                throw new Error("Cannot initialize backend ".concat(backendName, ", no registration found."));
                            }
                            try {
                                var backend = registryFactoryEntry.factory();
                                /* Test if the factory returns a promise.
                Done in a more liberal way than
                previous 'Promise.resolve(backend)===backend'
                as we needed to account for custom Promise
                implementations (e.g. Angular) */
                                if (backend && !(backend instanceof KernelBackend) && typeof backend.then === 'function') {
                                    var promiseId_1 = ++this.pendingBackendInitId;
                                    var success = backend.then(function (backendInstance) {
                                        // Outdated promise. Another backend was set in the meantime.
                                        if (promiseId_1 < _this.pendingBackendInitId) {
                                            return false;
                                        }
                                        _this.registry[backendName] = backendInstance;
                                        _this.pendingBackendInit = null;
                                        return true;
                                    }).catch(function (err) {
                                        // Outdated promise. Another backend was set in the meantime.
                                        if (promiseId_1 < _this.pendingBackendInitId) {
                                            return false;
                                        }
                                        _this.pendingBackendInit = null;
                                        warn("Initialization of backend ".concat(backendName, " failed"));
                                        warn(err.stack || err.message);
                                        return false;
                                    });
                                    this.pendingBackendInit = success;
                                    return {
                                        success: success,
                                        asyncInit: true
                                    };
                                } else {
                                    this.registry[backendName] = backend;
                                    return {
                                        success: true,
                                        asyncInit: false
                                    };
                                }
                            } catch (err) {
                                warn("Initialization of backend ".concat(backendName, " failed"));
                                warn(err.stack || err.message);
                                return {
                                    success: false,
                                    asyncInit: false
                                };
                            }
                        }
                            ;
                        Engine.prototype.removeBackend = function (backendName) {
                            if (!(backendName in this.registryFactory)) {
                                throw new Error("".concat(backendName, " backend not found in registry"));
                            }
                            if (this.backendName === backendName && this.pendingBackendInit != null) {
                                // There is a pending promise of the backend we want to remove. Make it
                                // obsolete.
                                this.pendingBackendInitId++;
                            }
                            if (backendName in this.registry) {
                                this.disposeRegisteredKernels(backendName);
                                this.registry[backendName].dispose();
                                delete this.registry[backendName];
                            }
                            delete this.registryFactory[backendName];
                            // Unset the backend if it is active.
                            if (this.backendName === backendName) {
                                this.pendingBackendInit = null;
                                this.backendName = null;
                                this.backendInstance = null;
                            }
                        }
                            ;
                        Engine.prototype.getSortedBackends = function () {
                            var _this = this;
                            if (Object.keys(this.registryFactory).length === 0) {
                                throw new Error('No backend found in registry.');
                            }
                            return Object.keys(this.registryFactory).sort(function (a, b) {
                                // Highest priority comes first.
                                return _this.registryFactory[b].priority - _this.registryFactory[a].priority;
                            });
                        }
                            ;
                        Engine.prototype.initializeBackendsAndReturnBest = function () {
                            var sortedBackends = this.getSortedBackends();
                            for (var i = 0; i < sortedBackends.length; i++) {
                                var backendName = sortedBackends[i];
                                var _a = this.initializeBackend(backendName)
                                    , success = _a.success
                                    , asyncInit = _a.asyncInit;
                                if (asyncInit || success) {
                                    return {
                                        name: backendName,
                                        asyncInit: asyncInit
                                    };
                                }
                            }
                            throw new Error("Could not initialize any backends, all backend initializations " + "failed.");
                        }
                            ;
                        Engine.prototype.moveData = function (backend, dataId) {
                            var info = this.state.tensorInfo.get(dataId);
                            var srcBackend = info.backend;
                            var values = this.readSync(dataId);
                            var refCount = srcBackend.refCount(dataId);
                            // Delete the tensor from the old backend and move it to the new
                            // backend.
                            srcBackend.disposeData(dataId, true);
                            info.backend = backend;
                            backend.move(dataId, values, info.shape, info.dtype, refCount);
                            if (this.shouldCheckForMemLeaks()) {
                                // Track the number of moves during a kernel execution to correctly
                                // detect memory leaks.
                                this.state.numDataMovesStack[this.state.numDataMovesStack.length - 1]++;
                            }
                        }
                            ;
                        Engine.prototype.tidy = function (nameOrFn, fn) {
                            var _this = this;
                            var name = null;
                            if (fn == null) {
                                // Called with only 1 argument.
                                if (typeof nameOrFn !== 'function') {
                                    throw new Error('Please provide a function to tidy()');
                                }
                                fn = nameOrFn;
                            } else {
                                // Called with 2 arguments.
                                if (typeof nameOrFn !== 'string' && !(nameOrFn instanceof String)) {
                                    throw new Error('When calling with two arguments, the first argument ' + 'to tidy() must be a string');
                                }
                                if (typeof fn !== 'function') {
                                    throw new Error('When calling with two arguments, the 2nd argument ' + 'to tidy() must be a function');
                                }
                                name = nameOrFn;
                                // TODO(nsthorat,smilkov): Do operation logging and performance
                                // profiling.
                            }
                            var result;
                            return this.scopedRun(function () {
                                return _this.startScope(name);
                            }, function () {
                                return _this.endScope(result);
                            }, function () {
                                result = fn();
                                if (result instanceof Promise) {
                                    console.error('Cannot return a Promise inside of tidy.');
                                }
                                return result;
                            });
                        }
                            ;
                        Engine.prototype.scopedRun = function (start, end, f) {
                            start();
                            try {
                                var res = f();
                                end();
                                return res;
                            } catch (ex) {
                                end();
                                throw ex;
                            }
                        }
                            ;
                        Engine.prototype.nextTensorId = function () {
                            return Engine.nextTensorId++;
                        }
                            ;
                        Engine.prototype.nextVariableId = function () {
                            return Engine.nextVariableId++;
                        }
                            ;
                        /**
         * This method is called instead of the public-facing tensor.clone() when
         * saving a tensor for backwards pass. It makes sure to add the clone
         * operation to the tape regardless of being called inside a kernel
         * execution.
         */
                        Engine.prototype.clone = function (x) {
                            var y = ENGINE.runKernel(Identity, {
                                x: x
                            });
                            var inputs = {
                                x: x
                            };
                            var grad = function (dy) {
                                return {
                                    x: function () {
                                        var dtype = 'float32';
                                        var gradInputs = {
                                            x: dy
                                        };
                                        var attrs = {
                                            dtype: dtype
                                        };
                                        return ENGINE.runKernel(Cast, gradInputs, // tslint:disable-next-line: no-unnecessary-type-assertion
                                            attrs);
                                    }
                                };
                            };
                            var saved = [];
                            this.addTapeNode(this.state.activeScope.name, inputs, [y], grad, saved, {});
                            return y;
                        }
                            ;
                        /**
         * Execute a kernel with the given name and return the output tensor.
         *
         * @param kernelName The name of the kernel to execute.
         * @param inputs A map of input names to tensors.
         * @param attrs A map of attribute names to their values. An attribute is a
         *     primitive (non-tensor) input to the kernel.
         * @param inputsToSave A list of tensors, inputs to save for the backprop
         *     computation.
         * @param outputsToSave A list of booleans, specifying which output to save
         *     for the backprop computation. These are booleans since the output
         * tensors are not visible to the user.
         */
                        Engine.prototype.runKernel = function (kernelName, inputs, attrs) {
                            if (this.backendName == null) {
                                // backend has not been initialized yet (backend initialization is lazy
                                // can be deferred until an op/ kernel is run).
                                // The below getter has side effects that will try to initialize the
                                // backend and set properties like this.backendName
                                // tslint:disable-next-line: no-unused-expression
                                this.backend;
                            }
                            var hasKernel = getKernel(kernelName, this.backendName) != null;
                            if (!hasKernel) {
                                throw new Error("Kernel '".concat(kernelName, "' not registered for backend '").concat(this.backendName, "'"));
                            }
                            return this.runKernelFunc({
                                kernelName: kernelName,
                                inputs: inputs,
                                attrs: attrs
                            });
                        }
                            ;
                        Engine.prototype.shouldCheckForMemLeaks = function () {
                            return this.ENV.getBool('IS_TEST');
                        }
                            ;
                        Engine.prototype.checkKernelForMemLeak = function (kernelName, numDataIdsBefore, outInfos) {
                            var numDataIdsAfter = this.backend.numDataIds();
                            // Count the number of data ids associated with the result of the kernel.
                            var numOutputDataIds = 0;
                            outInfos.forEach(function (info) {
                                // Complex numbers allocate 3 data ids, one for 'real', one for
                                // 'imaginary', and one for the container that holds the former two.
                                numOutputDataIds += info.dtype === 'complex64' ? 3 : 1;
                            });
                            // Account for the number of moves during kernel execution. A "data move"
                            // can happen in the middle of a kernel execution, placing a new (key,value)
                            // pair in the data storage. Since data moves have net zero effect (we
                            // always remove the data from the old backend), we have to cancel them out
                            // when detecting memory leaks.
                            var numMoves = this.state.numDataMovesStack[this.state.numDataMovesStack.length - 1];
                            var dataIdsLeaked = numDataIdsAfter - numDataIdsBefore - numOutputDataIds - numMoves;
                            if (dataIdsLeaked > 0) {
                                throw new Error("Backend '".concat(this.backendName, "' has an internal memory leak ") + "(".concat(dataIdsLeaked, " data ids) after running '").concat(kernelName, "'"));
                            }
                        }
                            ;
                        /**
         * Internal helper method to execute a kernel Func
         *
         * Use `runKernel` to execute kernels from outside of engine.
         */
                        Engine.prototype.runKernelFunc = function (kernelParams) {
                            var _this = this;
                            var outputs;
                            var saved = [];
                            var isTapeOn = this.isTapeOn();
                            var startingBytecount = this.state.numBytes;
                            var startingNumTensors = this.state.numTensors;
                            if (this.shouldCheckForMemLeaks()) {
                                this.state.numDataMovesStack.push(0);
                            }
                            var kernelFunc;
                            if (this.backendName == null) {
                                // backend has not been initialized yet (backend initialization is lazy
                                // can be deferred until an op/ kernel is run).
                                // The below getter has side effects that will try to initialize the
                                // backend and set properties like this.backendName
                                // tslint:disable-next-line: no-unused-expression
                                this.backend;
                            }
                            var out;
                            var kernelOrScopeName = isRegisteredKernelInvocation(kernelParams) ? kernelParams.kernelName : this.state.activeScope != null ? this.state.activeScope.name : '';
                            // Create the kernelFunc from either a registered kernel OR passed in
                            // forward/backward functions (used by custom grad). In this context a
                            // kernelFunc wraps a kernel implementation with some bookkeeping.
                            if (isRegisteredKernelInvocation(kernelParams)) {
                                var kernelName_1 = kernelParams.kernelName
                                    , inputs_1 = kernelParams.inputs
                                    , attrs_1 = kernelParams.attrs;
                                if (this.backendName == null) {
                                    // backend has not been initialized yet (backend initialization is lazy
                                    // can be deferred until an op/ kernel is run).
                                    // The below getter has side effects that will try to initialize the
                                    // backend and set properties like this.backendName
                                    // tslint:disable-next-line: no-unused-expression
                                    this.backend;
                                }
                                var kernel_1 = getKernel(kernelName_1, this.backendName);
                                assert(kernel_1 != null, function () {
                                    return "Cannot find registered kernel '".concat(kernelName_1, "' for backend '").concat(_this.backendName, "'");
                                });
                                kernelFunc = function () {
                                    var numDataIdsBefore = _this.backend.numDataIds();
                                    out = kernel_1.kernelFunc({
                                        inputs: inputs_1,
                                        attrs: attrs_1,
                                        backend: _this.backend
                                    });
                                    var outInfos = Array.isArray(out) ? out : [out];
                                    if (_this.shouldCheckForMemLeaks()) {
                                        _this.checkKernelForMemLeak(kernelName_1, numDataIdsBefore, outInfos);
                                    }
                                    var outTensors = outInfos.map(function (outInfo) {
                                        // todo (yassogba) remove this option (Tensor) when node backend
                                        // methods have been modularized and they all return tensorInfo.
                                        // TensorInfos do not have a rank attribute.
                                        if (outInfo.rank != null) {
                                            return outInfo;
                                        }
                                        return _this.makeTensorFromTensorInfo(outInfo);
                                    });
                                    // Save any required inputs and outputs.
                                    // Do not save unless we are recording to the tape. Otherwise it would
                                    // cause a mem leak since there would be no backprop for these tensors
                                    // (which would otherwise dispose them).
                                    if (isTapeOn) {
                                        var tensorsToSave = _this.getTensorsForGradient(kernelName_1, inputs_1, outTensors);
                                        saved = _this.saveTensorsForBackwardMode(tensorsToSave);
                                    }
                                    return outTensors;
                                }
                                    ;
                            } else {
                                var forwardFunc_1 = kernelParams.forwardFunc;
                                // Running a customGrad op.
                                var saveFunc_1 = function (tensors) {
                                    // Do not save unless we are recording to the tape. Otherwise it would
                                    // cause a mem leak since we would never run backprop, which disposes
                                    // the kept tensors.
                                    if (!isTapeOn) {
                                        return;
                                    }
                                    saved = tensors.map(function (tensor) {
                                        return _this.keep(_this.clone(tensor));
                                    });
                                };
                                kernelFunc = function () {
                                    var numDataIdsBefore = _this.backend.numDataIds();
                                    out = _this.tidy(function () {
                                        return forwardFunc_1(_this.backend, saveFunc_1);
                                    });
                                    var outs = Array.isArray(out) ? out : [out];
                                    if (_this.shouldCheckForMemLeaks()) {
                                        // Scope name is used to print a more helpful error message if needed.
                                        _this.checkKernelForMemLeak(kernelOrScopeName, numDataIdsBefore, outs);
                                    }
                                    return outs;
                                }
                                    ;
                            }
                            //
                            // Run the kernelFunc. Optionally profiling it.
                            //
                            var inputs = kernelParams.inputs
                                , attrs = kernelParams.attrs;
                            var backwardsFunc = isRegisteredKernelInvocation(kernelParams) ? null : kernelParams.backwardsFunc;
                            var kernelProfile;
                            this.scopedRun(// Stop recording to a tape when running a kernel.
                                function () {
                                    return _this.state.kernelDepth++;
                                }, function () {
                                    return _this.state.kernelDepth--;
                                }, function () {
                                    if (!_this.ENV.getBool('DEBUG') && !_this.state.profiling) {
                                        outputs = kernelFunc();
                                    } else {
                                        kernelProfile = _this.profiler.profileKernel(kernelOrScopeName, inputs, function () {
                                            return kernelFunc();
                                        });
                                        if (_this.ENV.getBool('DEBUG')) {
                                            _this.profiler.logKernelProfile(kernelProfile);
                                        }
                                        outputs = kernelProfile.outputs;
                                    }
                                });
                            if (isTapeOn) {
                                this.addTapeNode(kernelOrScopeName, inputs, outputs, backwardsFunc, saved, attrs);
                            }
                            if (this.state.profiling) {
                                this.state.activeProfile.kernels.push({
                                    name: kernelOrScopeName,
                                    bytesAdded: this.state.numBytes - startingBytecount,
                                    totalBytesSnapshot: this.state.numBytes,
                                    tensorsAdded: this.state.numTensors - startingNumTensors,
                                    totalTensorsSnapshot: this.state.numTensors,
                                    inputShapes: Object.keys(inputs).map(function (key) {
                                        return inputs[key] != null ? inputs[key].shape : null;
                                    }),
                                    outputShapes: outputs.map(function (item) {
                                        return item.shape;
                                    }),
                                    kernelTimeMs: kernelProfile.timeMs,
                                    extraInfo: kernelProfile.extraInfo
                                });
                            }
                            return Array.isArray(out) ? outputs : outputs[0];
                        }
                            ;
                        /**
         * Saves tensors used in forward mode for use in backward mode.
         *
         * @param tensors the list of tensors to save.
         */
                        Engine.prototype.saveTensorsForBackwardMode = function (tensors) {
                            var _this = this;
                            var saved = tensors.map(function (tensor) {
                                return _this.keep(_this.clone(tensor));
                            });
                            return saved;
                        }
                            ;
                        /**
         * Returns a list of tensors to save for a given gradient calculation.
         *
         * @param kernelName name of kernel to look up gradient for.
         * @param inputs a map of input tensors.
         * @param outputs an array of output tensors from forward mode of kernel.
         */
                        Engine.prototype.getTensorsForGradient = function (kernelName, inputs, outputs) {
                            var gradConfig = getGradient(kernelName);
                            if (gradConfig != null) {
                                var inputsToSave = gradConfig.inputsToSave || [];
                                var outputsToSave_1 = gradConfig.outputsToSave || [];
                                // If saveAllInputs is true, all inputs will be saved. Otherwise, inputs
                                // specified in inputsToSave will be saved.
                                var inputTensorsToSave = void 0;
                                if (gradConfig.saveAllInputs) {
                                    assert(Array.isArray(inputs), function () {
                                        return 'saveAllInputs is true, expected inputs to be an array.';
                                    });
                                    inputTensorsToSave = Object.keys(inputs).map(function (key) {
                                        return inputs[key];
                                    });
                                } else {
                                    inputTensorsToSave = inputsToSave.map(function (inputName) {
                                        return inputs[inputName];
                                    });
                                }
                                var outputTensorsToSave = outputs.filter(function (_, i) {
                                    return outputsToSave_1[i];
                                });
                                return inputTensorsToSave.concat(outputTensorsToSave);
                            }
                            // We return an empty list rather than throw an error because the kernel we
                            // are looking up may not actually be relevant to backproping through the
                            // overall function
                            //
                            // See 'does not error if irrelevant (pruned) ops are missing grads' test
                            // in gradients_test.ts for an example.
                            return [];
                        }
                            ;
                        /**
         * Internal method used by public APIs for tensor creation. Makes a new
         * tensor with the provided shape, dtype and values. It always
         * creates a new data id and writes the values to the underlying backend.
         */
                        Engine.prototype.makeTensor = function (values, shape, dtype, backend) {
                            if (values == null) {
                                throw new Error('Values passed to engine.makeTensor() are null');
                            }
                            dtype = dtype || 'float32';
                            backend = backend || this.backend;
                            var backendVals = values;
                            if (dtype === 'string' && isString(values[0])) {
                                backendVals = values.map(function (d) {
                                    return encodeString(d);
                                });
                            }
                            var dataId = backend.write(backendVals, shape, dtype);
                            var t = new Tensor(shape, dtype, dataId, this.nextTensorId());
                            this.trackTensor(t, backend);
                            // Count bytes for string tensors.
                            if (dtype === 'string') {
                                var info = this.state.tensorInfo.get(dataId);
                                var newBytes = bytesFromStringArray(backendVals);
                                this.state.numBytes += newBytes - info.bytes;
                                info.bytes = newBytes;
                            }
                            return t;
                        }
                            ;
                        /**
         * Internal method used by backends. Makes a new tensor
         * that is a wrapper around an existing data id. It doesn't create
         * a new data id, only increments the ref count used in memory tracking.
         * @deprecated
         */
                        Engine.prototype.makeTensorFromDataId = function (dataId, shape, dtype, backend) {
                            dtype = dtype || 'float32';
                            var tensorInfo = {
                                dataId: dataId,
                                shape: shape,
                                dtype: dtype
                            };
                            return this.makeTensorFromTensorInfo(tensorInfo, backend);
                        }
                            ;
                        /**
         * Internal method used by backends. Makes a new tensor that is a wrapper
         * around an existing data id in TensorInfo. It doesn't create a new data id,
         * only increments the ref count used in memory tracking.
         */
                        Engine.prototype.makeTensorFromTensorInfo = function (tensorInfo, backend) {
                            var dataId = tensorInfo.dataId
                                , shape = tensorInfo.shape
                                , dtype = tensorInfo.dtype;
                            var t = new Tensor(shape, dtype, dataId, this.nextTensorId());
                            this.trackTensor(t, backend);
                            return t;
                        }
                            ;
                        Engine.prototype.makeVariable = function (initialValue, trainable, name, dtype) {
                            if (trainable === void 0) {
                                trainable = true;
                            }
                            name = name || this.nextVariableId().toString();
                            if (dtype != null && dtype !== initialValue.dtype) {
                                initialValue = initialValue.cast(dtype);
                            }
                            var v = new Variable(initialValue, trainable, name, this.nextTensorId());
                            if (this.state.registeredVariables[v.name] != null) {
                                throw new Error("Variable with name ".concat(v.name, " was already registered"));
                            }
                            this.state.registeredVariables[v.name] = v;
                            this.incRef(v, this.backend);
                            return v;
                        }
                            ;
                        Engine.prototype.trackTensor = function (a, backend) {
                            this.state.numTensors++;
                            if (a.dtype === 'string') {
                                this.state.numStringTensors++;
                            }
                            // Bytes for complex numbers are counted by their components. Bytes for
                            // string tensors are counted when writing values.
                            var bytes = 0;
                            if (a.dtype !== 'complex64' && a.dtype !== 'string') {
                                bytes = a.size * bytesPerElement(a.dtype);
                            }
                            this.state.numBytes += bytes;
                            if (!this.state.tensorInfo.has(a.dataId)) {
                                this.state.numDataBuffers++;
                                this.state.tensorInfo.set(a.dataId, {
                                    backend: backend || this.backend,
                                    dtype: a.dtype,
                                    shape: a.shape,
                                    bytes: bytes
                                });
                            }
                            if (!(a instanceof Variable)) {
                                this.track(a);
                            }
                        }
                            ;
                        // Track the tensor by dataId and increase the refCount for the dataId in the
                        // backend.
                        // TODO(pyu10055): This is currently used by makeVariable method, to increase
                        // refCount on the backend for the dataId. It can potentially be replaced with
                        // Identity op indead of calling backend directly.
                        Engine.prototype.incRef = function (a, backend) {
                            this.trackTensor(a, backend);
                            this.backend.incRef(a.dataId);
                        }
                            ;
                        Engine.prototype.removeDataId = function (dataId, backend) {
                            if (this.state.tensorInfo.has(dataId) && this.state.tensorInfo.get(dataId).backend === backend) {
                                this.state.tensorInfo.delete(dataId);
                                this.state.numDataBuffers--;
                            }
                        }
                            ;
                        Engine.prototype.disposeTensor = function (a) {
                            if (!this.state.tensorInfo.has(a.dataId)) {
                                return;
                            }
                            var info = this.state.tensorInfo.get(a.dataId);
                            this.state.numTensors--;
                            if (a.dtype === 'string') {
                                this.state.numStringTensors--;
                                this.state.numBytes -= info.bytes;
                            }
                            // Don't count bytes for complex numbers as they are counted by their
                            // components.
                            if (a.dtype !== 'complex64' && a.dtype !== 'string') {
                                var bytes = a.size * bytesPerElement(a.dtype);
                                this.state.numBytes -= bytes;
                            }
                            // Remove the reference to dataId if backend dispose the data successfully
                            if (info.backend.disposeData(a.dataId)) {
                                this.removeDataId(a.dataId, info.backend);
                            }
                            // TODO(nsthorat): Construct an error and save the stack trace for
                            // debugging when in debug mode. Creating a stack trace is too expensive
                            // to do unconditionally.
                        }
                            ;
                        Engine.prototype.disposeVariables = function () {
                            for (var varName in this.state.registeredVariables) {
                                var v = this.state.registeredVariables[varName];
                                this.disposeVariable(v);
                            }
                        }
                            ;
                        Engine.prototype.disposeVariable = function (v) {
                            this.disposeTensor(v);
                            if (this.state.registeredVariables[v.name] != null) {
                                delete this.state.registeredVariables[v.name];
                            }
                        }
                            ;
                        Engine.prototype.memory = function () {
                            var info = this.backend.memory();
                            info.numTensors = this.state.numTensors;
                            info.numDataBuffers = this.state.numDataBuffers;
                            info.numBytes = this.state.numBytes;
                            if (this.state.numStringTensors > 0) {
                                info.unreliable = true;
                                if (info.reasons == null) {
                                    info.reasons = [];
                                }
                                info.reasons.push('Memory usage by string tensors is approximate ' + '(2 bytes per character)');
                            }
                            return info;
                        }
                            ;
                        Engine.prototype.profile = function (query) {
                            return __awaiter(this, void 0, void 0, function () {
                                var startBytes, startNumTensors, _a, _b, _c, kernel, _d, _e, e_1_1;
                                var e_1, _f;
                                return __generator(this, function (_g) {
                                    switch (_g.label) {
                                        case 0:
                                            this.state.profiling = true;
                                            startBytes = this.state.numBytes;
                                            startNumTensors = this.state.numTensors;
                                            this.state.activeProfile.kernels = [];
                                            _a = this.state.activeProfile;
                                            return [4 /*yield*/
                                                , query()];
                                        case 1:
                                            _a.result = _g.sent();
                                            this.state.profiling = false;
                                            this.state.activeProfile.peakBytes = Math.max.apply(Math, __spreadArray([], __read(this.state.activeProfile.kernels.map(function (d) {
                                                return d.totalBytesSnapshot;
                                            })), false));
                                            this.state.activeProfile.newBytes = this.state.numBytes - startBytes;
                                            this.state.activeProfile.newTensors = this.state.numTensors - startNumTensors;
                                            _g.label = 2;
                                        case 2:
                                            _g.trys.push([2, 8, 9, 10]);
                                            _b = __values(this.state.activeProfile.kernels),
                                                _c = _b.next();
                                            _g.label = 3;
                                        case 3:
                                            if (!!_c.done)
                                                return [3 /*break*/
                                                    , 7];
                                            kernel = _c.value;
                                            _d = kernel;
                                            return [4 /*yield*/
                                                , kernel.kernelTimeMs];
                                        case 4:
                                            _d.kernelTimeMs = _g.sent();
                                            _e = kernel;
                                            return [4 /*yield*/
                                                , kernel.extraInfo];
                                        case 5:
                                            _e.extraInfo = _g.sent();
                                            _g.label = 6;
                                        case 6:
                                            _c = _b.next();
                                            return [3 /*break*/
                                                , 3];
                                        case 7:
                                            return [3 /*break*/
                                                , 10];
                                        case 8:
                                            e_1_1 = _g.sent();
                                            e_1 = {
                                                error: e_1_1
                                            };
                                            return [3 /*break*/
                                                , 10];
                                        case 9:
                                            try {
                                                if (_c && !_c.done && (_f = _b.return))
                                                    _f.call(_b);
                                            } finally {
                                                if (e_1)
                                                    throw e_1.error;
                                            }
                                            return [7 /*endfinally*/
                                            ];
                                        case 10:
                                            return [2 /*return*/
                                                , this.state.activeProfile];
                                    }
                                });
                            });
                        }
                            ;
                        Engine.prototype.isTapeOn = function () {
                            return this.state.gradientDepth > 0 && this.state.kernelDepth === 0;
                        }
                            ;
                        Engine.prototype.addTapeNode = function (kernelName, inputs, outputs, gradientsFunc, saved, attrs) {
                            var _this = this;
                            var tapeNode = {
                                id: this.state.nextTapeNodeId++,
                                kernelName: kernelName,
                                inputs: inputs,
                                outputs: outputs,
                                saved: saved
                            };
                            var gradConfig = getGradient(kernelName);
                            if (gradConfig != null) {
                                gradientsFunc = gradConfig.gradFunc;
                            }
                            if (gradientsFunc != null) {
                                tapeNode.gradient = function (dys) {
                                    // TODO(smilkov): To optimize back-prop, pass dys that are not used in
                                    // the backprop graph to the user as null instead of zeros
                                    dys = dys.map(function (dy, i) {
                                        if (dy == null) {
                                            var output = outputs[i];
                                            var vals = makeZerosTypedArray(output.size, output.dtype);
                                            return _this.makeTensor(vals, output.shape, output.dtype);
                                        }
                                        return dy;
                                    });
                                    // Grad functions of ops with single outputs expect a dy, while ops
                                    // with multiple outputs expect dys (array of dy).
                                    return gradientsFunc(dys.length > 1 ? dys : dys[0], saved, attrs);
                                }
                                    ;
                            }
                            this.state.activeTape.push(tapeNode);
                        }
                            ;
                        Engine.prototype.keep = function (result) {
                            result.kept = true;
                            return result;
                        }
                            ;
                        Engine.prototype.startTape = function () {
                            if (this.state.gradientDepth === 0) {
                                this.state.activeTape = [];
                            }
                            this.state.gradientDepth++;
                        }
                            ;
                        Engine.prototype.endTape = function () {
                            this.state.gradientDepth--;
                        }
                            ;
                        /**
         * Start a scope. Use this with endScope() to achieve the same functionality
         * as scope() without the need for a function closure.
         */
                        Engine.prototype.startScope = function (name) {
                            var scopeInfo = {
                                track: [],
                                name: 'unnamed scope',
                                id: this.state.nextScopeId++
                            };
                            if (name) {
                                scopeInfo.name = name;
                            }
                            this.state.scopeStack.push(scopeInfo);
                            this.state.activeScope = scopeInfo;
                        }
                            ;
                        /**
         * End a scope. Use this with startScope() to achieve the same functionality
         * as scope() without the need for a function closure.
         */
                        Engine.prototype.endScope = function (result) {
                            var _this = this;
                            var tensorsToTrackInParent = getTensorsInContainer(result);
                            var tensorsToTrackInParentSet = new Set(tensorsToTrackInParent.map(function (t) {
                                return t.id;
                            }));
                            // Dispose the arrays tracked in this scope.
                            for (var i = 0; i < this.state.activeScope.track.length; i++) {
                                var tensor = this.state.activeScope.track[i];
                                if (!tensor.kept && !tensorsToTrackInParentSet.has(tensor.id)) {
                                    tensor.dispose();
                                }
                            }
                            var oldScope = this.state.scopeStack.pop();
                            this.state.activeScope = this.state.scopeStack.length === 0 ? null : this.state.scopeStack[this.state.scopeStack.length - 1];
                            // Track the current result in the parent scope.
                            tensorsToTrackInParent.forEach(function (tensor) {
                                // Only track the tensor if was allocated in the inner scope and is not
                                // globally kept.
                                if (!tensor.kept && tensor.scopeId === oldScope.id) {
                                    _this.track(tensor);
                                }
                            });
                        }
                            ;
                        /**
         * Returns gradients of `f` with respect to each of the `xs`. The gradients
         * returned are of the same length as `xs`, but some might be null if `f`
         * was not a function of that `x`. It also takes optional dy to multiply the
         * gradient, which defaults to `1`.
         */
                        Engine.prototype.gradients = function (f, xs, dy, allowNoGradients) {
                            var _this = this;
                            if (allowNoGradients === void 0) {
                                allowNoGradients = false;
                            }
                            assert(xs.length > 0, function () {
                                return 'gradients() received an empty list of xs.';
                            });
                            if (dy != null && dy.dtype !== 'float32') {
                                throw new Error("dy must have 'float32' dtype, but has '".concat(dy.dtype, "'"));
                            }
                            var y = this.scopedRun(function () {
                                return _this.startTape();
                            }, function () {
                                return _this.endTape();
                            }, function () {
                                return _this.tidy('forward', f);
                            });
                            assert(y instanceof Tensor, function () {
                                return 'The result y returned by f() must be a tensor.';
                            });
                            // Filter out the nodes that don't connect x => y.
                            var filteredTape = getFilteredNodesXToY(this.state.activeTape, xs, y);
                            if (!allowNoGradients && filteredTape.length === 0 && xs.length > 0) {
                                throw new Error('Cannot compute gradient of y=f(x) with respect to x. Make sure ' + 'that the f you passed encloses all operations that lead from x ' + 'to y.');
                            }
                            return this.tidy('backward', function () {
                                var accumulatedGradientMap = {};
                                accumulatedGradientMap[y.id] = dy == null ? ones$1(y.shape) : dy;
                                // Backprop gradients through the filtered nodes.
                                backpropagateGradients(accumulatedGradientMap, filteredTape, // Pass the tidy function to avoid circular dep with `tape.ts`.
                                    function (f) {
                                        return _this.tidy(f);
                                    }, // Pass an add function to avoide a circular dep with `tape.ts`.
                                    add$1);
                                var grads = xs.map(function (x) {
                                    return accumulatedGradientMap[x.id];
                                });
                                if (_this.state.gradientDepth === 0) {
                                    // This means that we are not computing higher-order gradients
                                    // and can clean up the tape.
                                    _this.state.activeTape.forEach(function (node) {
                                        var e_2, _a;
                                        try {
                                            for (var _b = __values(node.saved), _c = _b.next(); !_c.done; _c = _b.next()) {
                                                var tensor = _c.value;
                                                tensor.dispose();
                                            }
                                        } catch (e_2_1) {
                                            e_2 = {
                                                error: e_2_1
                                            };
                                        } finally {
                                            try {
                                                if (_c && !_c.done && (_a = _b.return))
                                                    _a.call(_b);
                                            } finally {
                                                if (e_2)
                                                    throw e_2.error;
                                            }
                                        }
                                    });
                                    _this.state.activeTape = null;
                                }
                                return {
                                    value: y,
                                    grads: grads
                                };
                            });
                        }
                            ;
                        Engine.prototype.customGrad = function (f) {
                            var _this = this;
                            assert(isFunction(f), function () {
                                return 'The f passed in customGrad(f) must be a function.';
                            });
                            return function () {
                                var inputs = [];
                                for (var _i = 0; _i < arguments.length; _i++) {
                                    inputs[_i] = arguments[_i];
                                }
                                assert(inputs.every(function (t) {
                                    return t instanceof Tensor;
                                }), function () {
                                    return 'The args passed in customGrad(f)(x1, x2,...) must all be ' + 'tensors';
                                });
                                var res;
                                var inputMap = {};
                                inputs.forEach(function (input, i) {
                                    inputMap[i] = input;
                                });
                                var forwardFunc = function (_, save) {
                                    res = f.apply(void 0, __spreadArray([], __read(__spreadArray(__spreadArray([], __read(inputs), false), [save], false)), false));
                                    assert(res.value instanceof Tensor, function () {
                                        return 'The function f passed in customGrad(f) must return an ' + 'object where `obj.value` is a tensor';
                                    });
                                    assert(isFunction(res.gradFunc), function () {
                                        return 'The function f passed in customGrad(f) must return an ' + 'object where `obj.gradFunc` is a function.';
                                    });
                                    return res.value;
                                };
                                var backwardsFunc = function (dy, saved) {
                                    var gradRes = res.gradFunc(dy, saved);
                                    var grads = Array.isArray(gradRes) ? gradRes : [gradRes];
                                    assert(grads.length === inputs.length, function () {
                                        return 'The function f passed in customGrad(f) must return an ' + 'object where `obj.gradFunc` is a function that returns ' + 'the same number of tensors as inputs passed to f(...).';
                                    });
                                    assert(grads.every(function (t) {
                                        return t instanceof Tensor;
                                    }), function () {
                                        return 'The function f passed in customGrad(f) must return an ' + 'object where `obj.gradFunc` is a function that returns ' + 'a list of only tensors.';
                                    });
                                    var gradMap = {};
                                    grads.forEach(function (grad, i) {
                                        gradMap[i] = function () {
                                            return grad;
                                        }
                                            ;
                                    });
                                    return gradMap;
                                };
                                return _this.runKernelFunc({
                                    forwardFunc: forwardFunc,
                                    backwardsFunc: backwardsFunc,
                                    inputs: inputMap
                                });
                            }
                                ;
                        }
                            ;
                        Engine.prototype.readSync = function (dataId) {
                            // Route the read to the correct backend.
                            var info = this.state.tensorInfo.get(dataId);
                            return info.backend.readSync(dataId);
                        }
                            ;
                        Engine.prototype.read = function (dataId) {
                            // Route the read to the correct backend.
                            var info = this.state.tensorInfo.get(dataId);
                            return info.backend.read(dataId);
                        }
                            ;
                        Engine.prototype.readToGPU = function (dataId, options) {
                            // Route the read to the correct backend.
                            var info = this.state.tensorInfo.get(dataId);
                            return info.backend.readToGPU(dataId, options);
                        }
                            ;
                        Engine.prototype.time = function (query) {
                            return __awaiter(this, void 0, void 0, function () {
                                var start, timingInfo;
                                return __generator(this, function (_a) {
                                    switch (_a.label) {
                                        case 0:
                                            start = now();
                                            return [4 /*yield*/
                                                , this.backend.time(query)];
                                        case 1:
                                            timingInfo = _a.sent();
                                            timingInfo.wallMs = now() - start;
                                            return [2 /*return*/
                                                , timingInfo];
                                    }
                                });
                            });
                        }
                            ;
                        /**
         * Tracks a Tensor in the current scope to be automatically cleaned up
         * when the current scope ends, and returns the value.
         *
         * @param result The Tensor to track in the current scope.
         */
                        Engine.prototype.track = function (result) {
                            if (this.state.activeScope != null) {
                                result.scopeId = this.state.activeScope.id;
                                this.state.activeScope.track.push(result);
                            }
                            return result;
                        }
                            ;
                        Object.defineProperty(Engine.prototype, "registeredVariables", {
                            get: function () {
                                return this.state.registeredVariables;
                            },
                            enumerable: false,
                            configurable: true
                        });
                        /**
         * Resets the engine state. Removes all backends but does not remove
         * registered backend factories.
         */
                        Engine.prototype.reset = function () {
                            // Make any pending promise obsolete.
                            this.pendingBackendInitId++;
                            this.state.dispose();
                            this.ENV.reset();
                            this.state = new EngineState();
                            for (var backendName in this.registry) {
                                this.disposeRegisteredKernels(backendName);
                                this.registry[backendName].dispose();
                                delete this.registry[backendName];
                            }
                            this.backendName = null;
                            this.backendInstance = null;
                            this.pendingBackendInit = null;
                        }
                            ;
                        return Engine;
                    }();
                Engine.nextTensorId = 0;
                Engine.nextVariableId = 0;
                function ones$1(shape) {
                    var values = makeOnesTypedArray(sizeFromShape(shape), 'float32');
                    return ENGINE.makeTensor(values, shape, 'float32');
                }
                function getOrMakeEngine() {
                    var ns = getGlobalNamespace();
                    if (ns._tfengine == null) {
                        var environment = new Environment(ns);
                        ns._tfengine = new Engine(environment);
                    }
                    setEnvironmentGlobal(ns._tfengine.ENV);
                    // Tell the current tensor interface that the global engine is responsible
                    // for tracking.
                    setTensorTracker(function () {
                        return ns._tfengine;
                    });
                    return ns._tfengine;
                }
                var ENGINE = getOrMakeEngine();
                /**
 * A implementation of the add op for use within engine and tape.
 *
 * This allows us to avoid a circular dependency between add.ts and engine.
 * It is exported to be available in tape tests.
 */
                function add$1(a, b) {
                    // We duplicate Add here to avoid a circular dependency with add.ts.
                    var inputs = {
                        a: a,
                        b: b
                    };
                    return ENGINE.runKernel(Add, inputs);
                }
                /**
 * @license
 * Copyright 2017 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                // tslint:disable-next-line:no-any
                function _isNavigatorDefined() {
                    return typeof navigator !== 'undefined' && navigator != null;
                }
                var isMobileMockValue;
                function mockIsMobile(value) {
                    isMobileMockValue = value;
                }
                function isMobile(nav) {
                    if (isMobileMockValue !== undefined) {
                        return isMobileMockValue;
                    }
                    if (nav || _isNavigatorDefined()) {
                        if (!nav) {
                            nav = navigator;
                        }
                        if (nav.product === 'ReactNative') {
                            return true;
                        }
                        var a = nav.userAgent || nav.vendor || (// tslint:disable-next-line:no-any
                            typeof window !== 'undefined' ? window.opera : '');
                        // Use `navigator.userAgentData.mobile` as fallback.
                        if (!a) {
                            // tslint:disable-next-line:no-any
                            var navAny = nav;
                            return navAny.userAgentData && navAny.userAgentData.mobile;
                        }
                        // tslint:disable-next-line:max-line-length
                        return /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a) || // tslint:disable-next-line:max-line-length
                            /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0, 4));
                    }
                    return false;
                }
                function isBrowser() {
                    return typeof window !== 'undefined' && window.document != null || //@ts-ignore
                        typeof WorkerGlobalScope !== 'undefined';
                }
                var device_util = {
                    __proto__: null,
                    mockIsMobile: mockIsMobile,
                    isMobile: isMobile,
                    isBrowser: isBrowser
                };
                /**
 * @license
 * Copyright 2019 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                var ENV = env();
                /**
 * This file contains environment-related flag registrations.
 */
                /** Whether to enable debug mode. */
                ENV.registerFlag('DEBUG', function () {
                    return false;
                }, function (debugValue) {
                    if (debugValue) {
                        console.warn('Debugging mode is ON. The output of every math call will ' + 'be downloaded to CPU and checked for NaNs. ' + 'This significantly impacts performance.');
                    }
                });
                /** Whether we are in a browser (as versus, say, node.js) environment. */
                ENV.registerFlag('IS_BROWSER', function () {
                    return isBrowser();
                });
                /** Whether we are in a browser (as versus, say, node.js) environment. */
                ENV.registerFlag('IS_NODE', function () {
                    return typeof process !== 'undefined' && typeof process.versions !== 'undefined' && typeof process.versions.node !== 'undefined';
                });
                /** Whether this browser is Chrome. */
                ENV.registerFlag('IS_CHROME', function () {
                    return typeof navigator !== 'undefined' && navigator != null && navigator.userAgent != null && /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);
                });
                /**
 * True when the environment is "production" where we disable safety checks
 * to gain performance.
 */
                ENV.registerFlag('PROD', function () {
                    return false;
                });
                /**
 * Whether to do sanity checks when inferring a shape from user-provided
 * values, used when creating a new tensor.
 */
                ENV.registerFlag('TENSORLIKE_CHECK_SHAPE_CONSISTENCY', function () {
                    return ENV.getBool('DEBUG');
                });
                /** Whether deprecation warnings are enabled. */
                ENV.registerFlag('DEPRECATION_WARNINGS_ENABLED', function () {
                    return true;
                });
                /** True if running unit tests. */
                ENV.registerFlag('IS_TEST', function () {
                    return false;
                });
                /** Whether to check computation result for errors. */
                ENV.registerFlag('CHECK_COMPUTATION_FOR_ERRORS', function () {
                    return true;
                });
                /** Whether the backend needs to wrap input to imageBitmap. */
                ENV.registerFlag('WRAP_TO_IMAGEBITMAP', function () {
                    return false;
                });
                /** Whether to enable canvas2d willReadFrequently for GPU backends */
                ENV.registerFlag('CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU', function () {
                    return false;
                });
                /** Whether to use setTimeoutCustom */
                ENV.registerFlag('USE_SETTIMEOUTCUSTOM', function () {
                    return false;
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                function inferShape(val, dtype) {
                    var firstElem = val;
                    if (isTypedArray(val)) {
                        return dtype === 'string' ? [] : [val.length];
                    }
                    if (typeof val === 'object' && 'texture' in val) {
                        var usedChannels = val.channels || 'RGBA';
                        return [val.height, val.width * usedChannels.length];
                    }
                    if (!Array.isArray(val)) {
                        return [];
                        // Scalar.
                    }
                    var shape = [];
                    while (Array.isArray(firstElem) || isTypedArray(firstElem) && dtype !== 'string') {
                        shape.push(firstElem.length);
                        firstElem = firstElem[0];
                    }
                    if (Array.isArray(val) && env().getBool('TENSORLIKE_CHECK_SHAPE_CONSISTENCY')) {
                        deepAssertShapeConsistency(val, shape, []);
                    }
                    return shape;
                }
                function deepAssertShapeConsistency(val, shape, indices) {
                    indices = indices || [];
                    if (!Array.isArray(val) && !isTypedArray(val)) {
                        assert(shape.length === 0, function () {
                            return "Element arr[".concat(indices.join(']['), "] is a primitive, ") + "but should be an array/TypedArray of ".concat(shape[0], " elements");
                        });
                        return;
                    }
                    assert(shape.length > 0, function () {
                        return "Element arr[".concat(indices.join(']['), "] should be a primitive, ") + "but is an array of ".concat(val.length, " elements");
                    });
                    assert(val.length === shape[0], function () {
                        return "Element arr[".concat(indices.join(']['), "] should have ").concat(shape[0], " ") + "elements, but has ".concat(val.length, " elements");
                    });
                    var subShape = shape.slice(1);
                    for (var i = 0; i < val.length; ++i) {
                        deepAssertShapeConsistency(val[i], subShape, indices.concat(i));
                    }
                }
                function assertDtype(expectedDtype, actualDType, argName, functionName) {
                    if (expectedDtype === 'string_or_numeric') {
                        return;
                    }
                    if (expectedDtype == null) {
                        throw new Error("Expected dtype cannot be null.");
                    }
                    if (expectedDtype !== 'numeric' && expectedDtype !== actualDType || expectedDtype === 'numeric' && actualDType === 'string') {
                        throw new Error("Argument '".concat(argName, "' passed to '").concat(functionName, "' must ") + "be ".concat(expectedDtype, " tensor, but got ").concat(actualDType, " tensor"));
                    }
                }
                function convertToTensor(x, argName, functionName, parseAsDtype) {
                    if (parseAsDtype === void 0) {
                        parseAsDtype = 'numeric';
                    }
                    if (x instanceof Tensor) {
                        assertDtype(parseAsDtype, x.dtype, argName, functionName);
                        return x;
                    }
                    var inferredDtype = inferDtype(x);
                    // If the user expects a bool/int/float, use that info to update the
                    // inferredDtype when it is not a string.
                    if (inferredDtype !== 'string' && ['bool', 'int32', 'float32'].indexOf(parseAsDtype) >= 0) {
                        inferredDtype = parseAsDtype;
                    }
                    assertDtype(parseAsDtype, inferredDtype, argName, functionName);
                    if (x == null || !isTypedArray(x) && !Array.isArray(x) && typeof x !== 'number' && typeof x !== 'boolean' && typeof x !== 'string') {
                        var type = x == null ? 'null' : x.constructor.name;
                        throw new Error("Argument '".concat(argName, "' passed to '").concat(functionName, "' must be a ") + "Tensor or TensorLike, but got '".concat(type, "'"));
                    }
                    var inferredShape = inferShape(x, inferredDtype);
                    if (!isTypedArray(x) && !Array.isArray(x)) {
                        x = [x];
                    }
                    var skipTypedArray = true;
                    var values = inferredDtype !== 'string' ? toTypedArray(x, inferredDtype) : flatten(x, [], skipTypedArray);
                    return ENGINE.makeTensor(values, inferredShape, inferredDtype);
                }
                function convertToTensorArray(arg, argName, functionName, parseAsDtype) {
                    if (parseAsDtype === void 0) {
                        parseAsDtype = 'numeric';
                    }
                    if (!Array.isArray(arg)) {
                        throw new Error("Argument ".concat(argName, " passed to ").concat(functionName, " must be a ") + '`Tensor[]` or `TensorLike[]`');
                    }
                    var tensors = arg;
                    return tensors.map(function (t, i) {
                        return convertToTensor(t, "".concat(argName, "[").concat(i, "]"), functionName, parseAsDtype);
                    });
                }
                var OP_SCOPE_SUFFIX = '__op';
                /**
 * Used for wrapping functions that perform math operations on
 * Tensors. The function will be wrapped in a named scope that cleans all
 * memory usage after the function is done.
 */
                function op(f) {
                    var keys = Object.keys(f);
                    if (keys.length !== 1) {
                        throw new Error("Please provide an object with a single key " + "(operation name) mapping to a function. Got an object with " + "".concat(keys.length, " keys."));
                    }
                    var opName = keys[0];
                    var fn = f[opName];
                    // Strip the underscore from the end of the function name.
                    if (opName.endsWith('_')) {
                        opName = opName.substring(0, opName.length - 1);
                    }
                    // add an __op suffix to distinguish ops from kernels in tf.profile
                    opName = opName + OP_SCOPE_SUFFIX;
                    // tslint:disable-next-line:no-any
                    var f2 = function () {
                        var args = [];
                        for (var _i = 0; _i < arguments.length; _i++) {
                            args[_i] = arguments[_i];
                        }
                        ENGINE.startScope(opName);
                        try {
                            var result = fn.apply(void 0, __spreadArray([], __read(args), false));
                            if (isPromise(result)) {
                                console.error('Cannot return a Promise inside of tidy.');
                            }
                            ENGINE.endScope(result);
                            return result;
                        } catch (ex) {
                            ENGINE.endScope(null);
                            throw ex;
                        }
                    };
                    Object.defineProperty(f2, 'name', {
                        value: opName,
                        configurable: true
                    });
                    // tslint:disable-next-line:no-any
                    return f2;
                }
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Converts two real numbers to a complex number.
 *
 * Given a tensor `real` representing the real part of a complex number, and a
 * tensor `imag` representing the imaginary part of a complex number, this
 * operation returns complex numbers elementwise of the form [r0, i0, r1, i1],
 * where r represents the real part and i represents the imag part.
 *
 * The input tensors real and imag must have the same shape.
 *
 * ```js
 * const real = tf.tensor1d([2.25, 3.25]);
 * const imag = tf.tensor1d([4.75, 5.75]);
 * const complex = tf.complex(real, imag);
 *
 * complex.print();
 * ```
 *
 * @doc {heading: 'Tensors', subheading: 'Creation'}
 */
                function complex_(real, imag) {
                    var $real = convertToTensor(real, 'real', 'complex');
                    var $imag = convertToTensor(imag, 'imag', 'complex');
                    assertShapesMatch($real.shape, $imag.shape, "real and imag shapes, ".concat($real.shape, " and ").concat($imag.shape, ", ") + "must match in call to tf.complex().");
                    var inputs = {
                        real: $real,
                        imag: $imag
                    };
                    return ENGINE.runKernel(Complex, inputs);
                }
                var complex = op({
                    complex_: complex_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /** This is shared code across all tensor creation methods. */
                function makeTensor(values, shape, inferredShape, dtype) {
                    if (dtype == null) {
                        dtype = inferDtype(values);
                    }
                    if (dtype === 'complex64') {
                        throw new Error("Cannot construct a complex64 tensor directly. " + "Please use tf.complex(real, imag).");
                    }
                    if (typeof values === 'object' && 'texture' in values) {
                        if (dtype !== 'float32' && dtype !== 'int32') {
                            throw new Error("Creating tensor from texture only supports " + "'float32'|'int32' dtype, while the dtype is ".concat(dtype, "."));
                        }
                        values.channels = values.channels || 'RGBA';
                        return ENGINE.backend.createTensorFromTexture(values, shape || inferredShape, dtype);
                    }
                    if (!isTypedArray(values) && !Array.isArray(values) && typeof values !== 'number' && typeof values !== 'boolean' && typeof values !== 'string') {
                        throw new Error('values passed to tensor(values) must be a number/boolean/string or ' + 'an array of numbers/booleans/strings, or a TypedArray');
                    }
                    // Verify that the shape matches the inferred shape.
                    if (shape != null) {
                        assertNonNegativeIntegerDimensions(shape);
                        var providedSize_1 = sizeFromShape(shape);
                        var inferredSize_1 = sizeFromShape(inferredShape);
                        assert(providedSize_1 === inferredSize_1, function () {
                            return "Based on the provided shape, [".concat(shape, "], the tensor should have ") + "".concat(providedSize_1, " values but has ").concat(inferredSize_1);
                        });
                        for (var i = 0; i < inferredShape.length; ++i) {
                            var inferred = inferredShape[i];
                            var flatDimsDontMatch = i === inferredShape.length - 1 ? inferred !== sizeFromShape(shape.slice(i)) : true;
                            assert(inferredShape[i] === shape[i] || !flatDimsDontMatch, function () {
                                return "Error creating a new Tensor. Inferred shape " + "(".concat(inferredShape, ") does not match the provided ") + "shape (".concat(shape, "). ");
                            });
                        }
                    }
                    if (!isTypedArray(values) && !Array.isArray(values)) {
                        values = [values];
                    }
                    shape = shape || inferredShape;
                    values = dtype !== 'string' ? toTypedArray(values, dtype) : flatten(values, [], true);
                    return ENGINE.makeTensor(values, shape, dtype);
                }
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Creates a `tf.Tensor` with the provided values, shape and dtype.
 *
 * ```js
 * // Pass an array of values to create a vector.
 * tf.tensor([1, 2, 3, 4]).print();
 * ```
 *
 * ```js
 * // Pass a nested array of values to make a matrix or a higher
 * // dimensional tensor.
 * tf.tensor([[1, 2], [3, 4]]).print();
 * ```
 *
 * ```js
 * // Pass a flat array and specify a shape yourself.
 * tf.tensor([1, 2, 3, 4], [2, 2]).print();
 * ```
 *
 * ```js
 * // Pass a `WebGLData` object and specify a shape yourself.
 *
 * // This makes it possible for TF.js applications to avoid GPU / CPU sync.
 * // For example, if your application includes a preprocessing step on the GPU,
 * // you could upload the GPU output directly to TF.js, rather than first
 * // downloading the values.
 *
 * // Example for WebGL2:
 * const customCanvas = document.createElement('canvas');
 * const customBackend = new tf.MathBackendWebGL(customCanvas);
 * tf.registerBackend('custom-webgl', () => customBackend);
 * await tf.setBackend('custom-webgl');
 * const gl = customBackend.gpgpu.gl;
 * const texture = gl.createTexture();
 * const tex2d = gl.TEXTURE_2D;
 * const width = 2;
 * const height = 2;
 *
 * gl.bindTexture(tex2d, texture);
 * gl.texParameteri(tex2d, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
 * gl.texParameteri(tex2d, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
 * gl.texParameteri(tex2d, gl.TEXTURE_MIN_FILTER, gl.NEAREST);
 * gl.texParameteri(tex2d, gl.TEXTURE_MAG_FILTER, gl.NEAREST);
 * gl.texImage2D(
 *   tex2d, 0, gl.RGBA32F, // internalFormat
 *   width, height, 0,
 *   gl.RGBA, // textureFormat
 *   gl.FLOAT, // textureType
 *   new Float32Array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15])
 * );
 *
 * // Currently, the `texture` has 4 pixels:
 * // Pixel0 is {R:0, G:1, B:2, A:3}
 * // Pixel1 is {R:4, G:5, B:6, A:7}
 * // Pixel2 is {R:8, G:9, B:10, A:11}
 * // Pixel3 is {R:12, G:13, B:14, A:15}
 *
 * const logicalShape = [height * width * 2];
 * const a = tf.tensor({texture, height, width, channels: 'BR'}, logicalShape);
 * // Tensor value will be [2, 0, 6, 4, 10, 8, 14, 12], since [2, 0] is the
 * // values of 'B' and 'R' channels of Pixel0, [6, 4] is the values of 'B' and
 * 'R'
 * // channels of Pixel1...
 *
 * // For postprocessing on the GPU, it's possible to retrieve the texture
 * // backing any tensor by calling the tensor's `dataToGPU` method like
 * // so:
 *
 * const tex = a.dataToGPU();
 * ```
 * @param values The values of the tensor. Can be nested array of numbers,
 *     or a flat array, or a `TypedArray`, or a `WebGLData` object. If the
 * values are strings, they will be encoded as utf-8 and kept as `Uint8Array[]`.
 * If the values is a `WebGLData` object, the dtype could only be 'float32' or
 * 'int32' and the object has to have: 1. texture, a `WebGLTexture`, the texture
 * must share the same `WebGLRenderingContext` with TFJS's WebGL backend (you
 * could create a custom WebGL backend from your texture's canvas) and the
 * internal texture format for the input texture must be floating point or
 * normalized integer; 2. height, the height of the texture; 3. width, the width
 * of the texture; 4. channels, a non-empty subset of 'RGBA', indicating the
 * values of which channels will be passed to the tensor, such as 'R' or 'BR'
 * (The order of the channels affect the order of tensor values. ). (If the
 * values passed from texture is less than the tensor size, zeros will be padded
 * at the rear.)
 * @param shape The shape of the tensor. Optional. If not provided,
 *   it is inferred from `values`.
 * @param dtype The data type.
 *
 * @doc {heading: 'Tensors', subheading: 'Creation'}
 */
                function tensor(values, shape, dtype) {
                    var inferredShape = inferShape(values, dtype);
                    return makeTensor(values, shape, inferredShape, dtype);
                }
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /* Type definitions for exporting and importing of models. */
                /**
 * A map from Tensor dtype to number of bytes per element of the Tensor.
 */
                var DTYPE_VALUE_SIZE_MAP = {
                    'float32': 4,
                    'float16': 2,
                    'int32': 4,
                    'uint16': 2,
                    'uint8': 1,
                    'bool': 1,
                    'complex64': 8
                };
                /** Number of bytes reserved for the length of the string. (32bit integer). */
                var NUM_BYTES_STRING_LENGTH = 4;
                /**
 * Encode a map from names to weight values as an ArrayBuffer, along with an
 * `Array` of `WeightsManifestEntry` as specification of the encoded weights.
 *
 * This function does not perform sharding.
 *
 * This function is the reverse of `decodeWeights`.
 *
 * @param tensors A map ("dict") from names to tensors.
 * @param group Group to which the weights belong (optional).
 * @returns A `Promise` of
 *   - A flat `ArrayBuffer` with all the binary values of the `Tensor`s
 *     concatenated.
 *   - An `Array` of `WeightManifestEntry`s, carrying information including
 *     tensor names, `dtype`s and shapes.
 * @throws Error: on unsupported tensor `dtype`.
 */
                function encodeWeights(tensors, group) {
                    return __awaiter(this, void 0, void 0, function () {
                        var specs, dataPromises, names, _loop_1, i, tensorValues;
                        var _this = this;
                        return __generator(this, function (_a) {
                            switch (_a.label) {
                                case 0:
                                    specs = [];
                                    dataPromises = [];
                                    names = Array.isArray(tensors) ? tensors.map(function (tensor) {
                                        return tensor.name;
                                    }) : Object.keys(tensors);
                                    _loop_1 = function (i) {
                                        var name = names[i];
                                        var t = Array.isArray(tensors) ? tensors[i].tensor : tensors[name];
                                        if (t.dtype !== 'float32' && t.dtype !== 'int32' && t.dtype !== 'bool' && t.dtype !== 'string' && t.dtype !== 'complex64') {
                                            throw new Error("Unsupported dtype in weight '".concat(name, "': ").concat(t.dtype));
                                        }
                                        var spec = {
                                            name: name,
                                            shape: t.shape,
                                            dtype: t.dtype
                                        };
                                        if (t.dtype === 'string') {
                                            var utf8bytes = new Promise(function (resolve) {
                                                return __awaiter(_this, void 0, void 0, function () {
                                                    var vals, totalNumBytes, bytes, offset, i_1, val, bytesOfLength;
                                                    return __generator(this, function (_a) {
                                                        switch (_a.label) {
                                                            case 0:
                                                                return [4 /*yield*/
                                                                    , t.bytes()];
                                                            case 1:
                                                                vals = _a.sent();
                                                                totalNumBytes = vals.reduce(function (p, c) {
                                                                    return p + c.length;
                                                                }, 0) + NUM_BYTES_STRING_LENGTH * vals.length;
                                                                bytes = new Uint8Array(totalNumBytes);
                                                                offset = 0;
                                                                for (i_1 = 0; i_1 < vals.length; i_1++) {
                                                                    val = vals[i_1];
                                                                    bytesOfLength = new Uint8Array(new Uint32Array([val.length]).buffer);
                                                                    bytes.set(bytesOfLength, offset);
                                                                    offset += NUM_BYTES_STRING_LENGTH;
                                                                    bytes.set(val, offset);
                                                                    offset += val.length;
                                                                }
                                                                resolve(bytes);
                                                                return [2 /*return*/
                                                                ];
                                                        }
                                                    });
                                                });
                                            }
                                            );
                                            dataPromises.push(utf8bytes);
                                        } else {
                                            dataPromises.push(t.data());
                                        }
                                        if (group != null) {
                                            spec.group = group;
                                        }
                                        specs.push(spec);
                                    }
                                        ;
                                    for (i = 0; i < names.length; ++i) {
                                        _loop_1(i);
                                    }
                                    return [4 /*yield*/
                                        , Promise.all(dataPromises)];
                                case 1:
                                    tensorValues = _a.sent();
                                    return [2 /*return*/
                                        , {
                                            data: concatenateTypedArrays(tensorValues),
                                            specs: specs
                                        }];
                            }
                        });
                    });
                }
                /**
 * Decode flat ArrayBuffer as weights.
 *
 * This function does not handle sharding.
 *
 * This function is the reverse of `encodeWeights`.
 *
 * @param buffer A flat ArrayBuffer carrying the binary values of the tensors
 *   concatenated in the order specified in `specs`.
 * @param specs Specifications of the names, dtypes and shapes of the tensors
 *   whose value are encoded by `buffer`.
 * @return A map from tensor name to tensor value, with the names corresponding
 *   to names in `specs`.
 * @throws Error, if any of the tensors has unsupported dtype.
 */
                function decodeWeights(buffer, specs) {
                    var e_1, _a;
                    // TODO(adarob, cais): Support quantization.
                    var out = {};
                    var float16Decode;
                    var offset = 0;
                    try {
                        for (var specs_1 = __values(specs), specs_1_1 = specs_1.next(); !specs_1_1.done; specs_1_1 = specs_1.next()) {
                            var spec = specs_1_1.value;
                            var name = spec.name;
                            var dtype = spec.dtype;
                            var shape = spec.shape;
                            var size = sizeFromShape(shape);
                            var values = void 0;
                            if ('quantization' in spec) {
                                var quantization = spec.quantization;
                                if (quantization.dtype === 'uint8' || quantization.dtype === 'uint16') {
                                    if (!('min' in quantization && 'scale' in quantization)) {
                                        throw new Error("Weight ".concat(spec.name, " with quantization ").concat(quantization.dtype, " ") + "doesn't have corresponding metadata min and scale.");
                                    }
                                } else if (quantization.dtype === 'float16') {
                                    if (dtype !== 'float32') {
                                        throw new Error("Weight ".concat(spec.name, " is quantized with ").concat(quantization.dtype, " ") + "which only supports weights of type float32 not ".concat(dtype, "."));
                                    }
                                } else {
                                    throw new Error("Weight ".concat(spec.name, " has unknown ") + "quantization dtype ".concat(quantization.dtype, ". ") + "Supported quantization dtypes are: " + "'uint8', 'uint16', and 'float16'.");
                                }
                                var quantizationSizeFactor = DTYPE_VALUE_SIZE_MAP[quantization.dtype];
                                var byteBuffer = buffer.slice(offset, offset + size * quantizationSizeFactor);
                                var quantizedArray = quantization.dtype === 'uint8' ? new Uint8Array(byteBuffer) : new Uint16Array(byteBuffer);
                                if (dtype === 'float32') {
                                    if (quantization.dtype === 'uint8' || quantization.dtype === 'uint16') {
                                        values = new Float32Array(quantizedArray.length);
                                        for (var i = 0; i < quantizedArray.length; i++) {
                                            var v = quantizedArray[i];
                                            values[i] = v * quantization.scale + quantization.min;
                                        }
                                    } else if (quantization.dtype === 'float16') {
                                        if (float16Decode === undefined) {
                                            float16Decode = getFloat16Decoder();
                                        }
                                        values = float16Decode(quantizedArray);
                                    } else {
                                        throw new Error("Unsupported quantization type ".concat(quantization.dtype, " ") + "for weight type float32.");
                                    }
                                } else if (dtype === 'int32') {
                                    if (quantization.dtype !== 'uint8' && quantization.dtype !== 'uint16') {
                                        throw new Error("Unsupported quantization type ".concat(quantization.dtype, " ") + "for weight type int32.");
                                    }
                                    values = new Int32Array(quantizedArray.length);
                                    for (var i = 0; i < quantizedArray.length; i++) {
                                        var v = quantizedArray[i];
                                        values[i] = Math.round(v * quantization.scale + quantization.min);
                                    }
                                } else {
                                    throw new Error("Unsupported dtype in weight '".concat(name, "': ").concat(dtype));
                                }
                                offset += size * quantizationSizeFactor;
                            } else if (dtype === 'string') {
                                var size_1 = sizeFromShape(spec.shape);
                                values = [];
                                for (var i = 0; i < size_1; i++) {
                                    var byteLength = new Uint32Array(buffer.slice(offset, offset + NUM_BYTES_STRING_LENGTH))[0];
                                    offset += NUM_BYTES_STRING_LENGTH;
                                    var bytes = new Uint8Array(buffer.slice(offset, offset + byteLength));
                                    values.push(bytes);
                                    offset += byteLength;
                                }
                            } else {
                                var dtypeFactor = DTYPE_VALUE_SIZE_MAP[dtype];
                                var byteBuffer = buffer.slice(offset, offset + size * dtypeFactor);
                                if (dtype === 'float32') {
                                    values = new Float32Array(byteBuffer);
                                } else if (dtype === 'int32') {
                                    values = new Int32Array(byteBuffer);
                                } else if (dtype === 'bool') {
                                    values = new Uint8Array(byteBuffer);
                                } else if (dtype === 'complex64') {
                                    values = new Float32Array(byteBuffer);
                                    var real = new Float32Array(values.length / 2);
                                    var image = new Float32Array(values.length / 2);
                                    for (var i = 0; i < real.length; i++) {
                                        real[i] = values[i * 2];
                                        image[i] = values[i * 2 + 1];
                                    }
                                    var realTensor = tensor(real, shape, 'float32');
                                    var imageTensor = tensor(image, shape, 'float32');
                                    out[name] = complex(realTensor, imageTensor);
                                    realTensor.dispose();
                                    imageTensor.dispose();
                                } else {
                                    throw new Error("Unsupported dtype in weight '".concat(name, "': ").concat(dtype));
                                }
                                offset += size * dtypeFactor;
                            }
                            if (dtype !== 'complex64') {
                                out[name] = tensor(values, shape, dtype);
                            }
                        }
                    } catch (e_1_1) {
                        e_1 = {
                            error: e_1_1
                        };
                    } finally {
                        try {
                            if (specs_1_1 && !specs_1_1.done && (_a = specs_1.return))
                                _a.call(specs_1);
                        } finally {
                            if (e_1)
                                throw e_1.error;
                        }
                    }
                    return out;
                }
                /**
 * Concatenate TypedArrays into an ArrayBuffer.
 */
                function concatenateTypedArrays(xs) {
                    // TODO(adarob, cais): Support quantization.
                    if (xs === null) {
                        throw new Error("Invalid input value: ".concat(JSON.stringify(xs)));
                    }
                    var totalByteLength = 0;
                    // `normalizedXs` is here for this reason: a `TypedArray`'s `buffer'
                    // can have a different byte length from that of the `TypedArray` itself,
                    // for example, when the `TypedArray` is created from an offset in an
                    // `ArrayBuffer`. `normliazedXs` holds `TypedArray`s whose `buffer`s match
                    // the `TypedArray` in byte length. If an element of `xs` does not show
                    // this property, a new `TypedArray` that satisfy this property will be
                    // constructed and pushed into `normalizedXs`.
                    var normalizedXs = [];
                    xs.forEach(function (x) {
                        totalByteLength += x.byteLength;
                        // tslint:disable:no-any
                        normalizedXs.push(x.byteLength === x.buffer.byteLength ? x : new x.constructor(x));
                        if (!(x instanceof Float32Array || x instanceof Int32Array || x instanceof Uint8Array)) {
                            throw new Error("Unsupported TypedArray subtype: ".concat(x.constructor.name));
                        }
                        // tslint:enable:no-any
                    });
                    var y = new Uint8Array(totalByteLength);
                    var offset = 0;
                    normalizedXs.forEach(function (x) {
                        y.set(new Uint8Array(x.buffer), offset);
                        offset += x.byteLength;
                    });
                    return y.buffer;
                }
                // Use Buffer on Node.js instead of Blob/atob/btoa
                var useNodeBuffer = typeof Buffer !== 'undefined' && (typeof Blob === 'undefined' || typeof atob === 'undefined' || typeof btoa === 'undefined');
                /**
 * Calculate the byte length of a JavaScript string.
 *
 * Note that a JavaScript string can contain wide characters, therefore the
 * length of the string is not necessarily equal to the byte length.
 *
 * @param str Input string.
 * @returns Byte length.
 */
                function stringByteLength(str) {
                    if (useNodeBuffer) {
                        return Buffer.byteLength(str);
                    }
                    return new Blob([str]).size;
                }
                /**
 * Encode an ArrayBuffer as a base64 encoded string.
 *
 * @param buffer `ArrayBuffer` to be converted.
 * @returns A string that base64-encodes `buffer`.
 */
                function arrayBufferToBase64String(buffer) {
                    if (useNodeBuffer) {
                        return Buffer.from(buffer).toString('base64');
                    }
                    var buf = new Uint8Array(buffer);
                    var s = '';
                    for (var i = 0, l = buf.length; i < l; i++) {
                        s += String.fromCharCode(buf[i]);
                    }
                    return btoa(s);
                }
                /**
 * Decode a base64 string as an ArrayBuffer.
 *
 * @param str Base64 string.
 * @returns Decoded `ArrayBuffer`.
 */
                function base64StringToArrayBuffer(str) {
                    if (useNodeBuffer) {
                        var buf = Buffer.from(str, 'base64');
                        return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);
                    }
                    var s = atob(str);
                    var buffer = new Uint8Array(s.length);
                    for (var i = 0; i < s.length; ++i) {
                        buffer.set([s.charCodeAt(i)], i);
                    }
                    return buffer.buffer;
                }
                /**
 * Concatenate a number of ArrayBuffers into one.
 *
 * @param buffers A number of array buffers to concatenate.
 * @returns Result of concatenating `buffers` in order.
 */
                function concatenateArrayBuffers(buffers) {
                    if (buffers.length === 1) {
                        return buffers[0];
                    }
                    var totalByteLength = 0;
                    buffers.forEach(function (buffer) {
                        totalByteLength += buffer.byteLength;
                    });
                    var temp = new Uint8Array(totalByteLength);
                    var offset = 0;
                    buffers.forEach(function (buffer) {
                        temp.set(new Uint8Array(buffer), offset);
                        offset += buffer.byteLength;
                    });
                    return temp.buffer;
                }
                /**
 * Get the basename of a path.
 *
 * Behaves in a way analogous to Linux's basename command.
 *
 * @param path
 */
                function basename(path) {
                    var SEPARATOR = '/';
                    path = path.trim();
                    while (path.endsWith(SEPARATOR)) {
                        path = path.slice(0, path.length - 1);
                    }
                    var items = path.split(SEPARATOR);
                    return items[items.length - 1];
                }
                /**
 * Create `ModelJSON` from `ModelArtifacts`.
 *
 * @param artifacts Model artifacts, describing the model and its weights.
 * @param manifest Weight manifest, describing where the weights of the
 *     `ModelArtifacts` are stored, and some metadata about them.
 * @returns Object representing the `model.json` file describing the model
 *     artifacts and weights
 */
                function getModelJSONForModelArtifacts(artifacts, manifest) {
                    var result = {
                        modelTopology: artifacts.modelTopology,
                        format: artifacts.format,
                        generatedBy: artifacts.generatedBy,
                        convertedBy: artifacts.convertedBy,
                        weightsManifest: manifest
                    };
                    if (artifacts.signature != null) {
                        result.signature = artifacts.signature;
                    }
                    if (artifacts.userDefinedMetadata != null) {
                        result.userDefinedMetadata = artifacts.userDefinedMetadata;
                    }
                    if (artifacts.modelInitializer != null) {
                        result.modelInitializer = artifacts.modelInitializer;
                    }
                    if (artifacts.initializerSignature != null) {
                        result.initializerSignature = artifacts.initializerSignature;
                    }
                    if (artifacts.trainingConfig != null) {
                        result.trainingConfig = artifacts.trainingConfig;
                    }
                    return result;
                }
                /**
 * Create `ModelArtifacts` from a JSON file and weights.
 *
 * @param modelJSON Object containing the parsed JSON of `model.json`
 * @param weightSpecs The list of WeightsManifestEntry for the model. Must be
 *     passed if the modelJSON has a weightsManifest.
 * @param weightData An ArrayBuffer of weight data for the model corresponding
 *     to the weights in weightSpecs. Must be passed if the modelJSON has a
 *     weightsManifest.
 * @returns A Promise of the `ModelArtifacts`, as described by the JSON file.
 */
                function getModelArtifactsForJSONSync(modelJSON, weightSpecs, weightData) {
                    var modelArtifacts = {
                        modelTopology: modelJSON.modelTopology,
                        format: modelJSON.format,
                        generatedBy: modelJSON.generatedBy,
                        convertedBy: modelJSON.convertedBy
                    };
                    if (modelJSON.trainingConfig != null) {
                        modelArtifacts.trainingConfig = modelJSON.trainingConfig;
                    }
                    if (modelJSON.weightsManifest != null) {
                        if (!weightSpecs) {
                            throw new Error('modelJSON has weightsManifest but weightSpecs is null');
                        }
                        if (!weightData) {
                            throw new Error('modelJSON has weightsManifest but weightData is null');
                        }
                        modelArtifacts.weightSpecs = weightSpecs;
                        modelArtifacts.weightData = weightData;
                    }
                    if (modelJSON.signature != null) {
                        modelArtifacts.signature = modelJSON.signature;
                    }
                    if (modelJSON.userDefinedMetadata != null) {
                        modelArtifacts.userDefinedMetadata = modelJSON.userDefinedMetadata;
                    }
                    if (modelJSON.modelInitializer != null) {
                        modelArtifacts.modelInitializer = modelJSON.modelInitializer;
                    }
                    if (modelJSON.initializerSignature != null) {
                        modelArtifacts.initializerSignature = modelJSON.initializerSignature;
                    }
                    return modelArtifacts;
                }
                /**
 * Create `ModelArtifacts` from a JSON file.
 *
 * @param modelJSON Object containing the parsed JSON of `model.json`
 * @param loadWeights Function that takes the JSON file's weights manifest,
 *     reads weights from the listed path(s), and returns a Promise of the
 *     weight manifest entries along with the weights data.
 * @returns A Promise of the `ModelArtifacts`, as described by the JSON file.
 */
                function getModelArtifactsForJSON(modelJSON, loadWeights) {
                    return __awaiter(this, void 0, void 0, function () {
                        var weightSpecs, weightData;
                        var _a;
                        return __generator(this, function (_b) {
                            switch (_b.label) {
                                case 0:
                                    if (!(modelJSON.weightsManifest != null))
                                        return [3 /*break*/
                                            , 2];
                                    return [4 /*yield*/
                                        , loadWeights(modelJSON.weightsManifest)];
                                case 1:
                                    _a = __read.apply(void 0, [_b.sent(), 2]),
                                        weightSpecs = _a[0],
                                        weightData = _a[1];
                                    _b.label = 2;
                                case 2:
                                    return [2 /*return*/
                                        , getModelArtifactsForJSONSync(modelJSON, weightSpecs, weightData)];
                            }
                        });
                    });
                }
                /**
 * Populate ModelArtifactsInfo fields for a model with JSON topology.
 * @param modelArtifacts
 * @returns A ModelArtifactsInfo object.
 */
                function getModelArtifactsInfoForJSON(modelArtifacts) {
                    if (modelArtifacts.modelTopology instanceof ArrayBuffer) {
                        throw new Error('Expected JSON model topology, received ArrayBuffer.');
                    }
                    return {
                        dateSaved: new Date(),
                        modelTopologyType: 'JSON',
                        modelTopologyBytes: modelArtifacts.modelTopology == null ? 0 : stringByteLength(JSON.stringify(modelArtifacts.modelTopology)),
                        weightSpecsBytes: modelArtifacts.weightSpecs == null ? 0 : stringByteLength(JSON.stringify(modelArtifacts.weightSpecs)),
                        weightDataBytes: modelArtifacts.weightData == null ? 0 : modelArtifacts.weightData.byteLength
                    };
                }
                /**
 * Concatenate the weights stored in a WeightsManifestConfig into a list of
 * WeightsManifestEntry
 *
 * @param weightsManifest The WeightsManifestConfig to extract weights from.
 * @returns A list of WeightsManifestEntry of the weights in the weightsManifest
 */
                function getWeightSpecs(weightsManifest) {
                    var e_2, _a;
                    var weightSpecs = [];
                    try {
                        for (var weightsManifest_1 = __values(weightsManifest), weightsManifest_1_1 = weightsManifest_1.next(); !weightsManifest_1_1.done; weightsManifest_1_1 = weightsManifest_1.next()) {
                            var entry = weightsManifest_1_1.value;
                            weightSpecs.push.apply(weightSpecs, __spreadArray([], __read(entry.weights), false));
                        }
                    } catch (e_2_1) {
                        e_2 = {
                            error: e_2_1
                        };
                    } finally {
                        try {
                            if (weightsManifest_1_1 && !weightsManifest_1_1.done && (_a = weightsManifest_1.return))
                                _a.call(weightsManifest_1);
                        } finally {
                            if (e_2)
                                throw e_2.error;
                        }
                    }
                    return weightSpecs;
                }
                /**
 * Computes mantisa table for casting Float16 to Float32
 * See http://www.fox-toolkit.org/ftp/fasthalffloatconversion.pdf
 *
 * @returns Uint32Array, 2048 mantissa lookup values.
 */
                function computeFloat16MantisaTable() {
                    var convertMantissa = function (i) {
                        var m = i << 13;
                        var e = 0;
                        while ((m & 0x00800000) === 0) {
                            e -= 0x00800000;
                            m <<= 1;
                        }
                        m &= ~0x00800000;
                        e += 0x38800000;
                        return m | e;
                    };
                    var mantisaTable = new Uint32Array(2048);
                    mantisaTable[0] = 0;
                    for (var i = 1; i < 1024; i++) {
                        mantisaTable[i] = convertMantissa(i);
                    }
                    for (var i = 1024; i < 2048; i++) {
                        mantisaTable[i] = 0x38000000 + (i - 1024 << 13);
                    }
                    return mantisaTable;
                }
                /**
 * Computes exponent table for casting Float16 to Float32
 * See http://www.fox-toolkit.org/ftp/fasthalffloatconversion.pdf
 *
 * @returns Uint32Array, 64 exponent lookup values.
 */
                function computeFloat16ExponentTable() {
                    var exponentTable = new Uint32Array(64);
                    exponentTable[0] = 0;
                    exponentTable[31] = 0x47800000;
                    exponentTable[32] = 0x80000000;
                    exponentTable[63] = 0xc7800000;
                    for (var i = 1; i < 31; i++) {
                        exponentTable[i] = i << 23;
                    }
                    for (var i = 33; i < 63; i++) {
                        exponentTable[i] = 0x80000000 + (i - 32 << 23);
                    }
                    return exponentTable;
                }
                /**
 * Computes offset table for casting Float16 to Float32
 * See http://www.fox-toolkit.org/ftp/fasthalffloatconversion.pdf
 *
 * @returns Uint32Array, 6d offset values.
 */
                function computeFloat16OffsetTable() {
                    var offsetTable = new Uint32Array(64);
                    for (var i = 0; i < 64; i++) {
                        offsetTable[i] = 1024;
                    }
                    offsetTable[0] = offsetTable[32] = 0;
                    return offsetTable;
                }
                /**
 * Retrieve a Float16 decoder which will decode a ByteArray of Float16 values
 * to a Float32Array.
 *
 * @returns Function (buffer: Uint16Array) => Float32Array which decodes
 *          the Uint16Array of Float16 bytes to a Float32Array.
 */
                function getFloat16Decoder() {
                    // Algorithm is based off of
                    // http://www.fox-toolkit.org/ftp/fasthalffloatconversion.pdf
                    // Cache lookup tables
                    var mantisaTable = computeFloat16MantisaTable();
                    var exponentTable = computeFloat16ExponentTable();
                    var offsetTable = computeFloat16OffsetTable();
                    return function (quantizedArray) {
                        var buffer = new ArrayBuffer(4 * quantizedArray.length);
                        var bufferUint32View = new Uint32Array(buffer);
                        for (var index = 0; index < quantizedArray.length; index++) {
                            var float16Bits = quantizedArray[index];
                            var float32Bits = mantisaTable[offsetTable[float16Bits >> 10] + (float16Bits & 0x3ff)] + exponentTable[float16Bits >> 10];
                            bufferUint32View[index] = float32Bits;
                        }
                        return new Float32Array(buffer);
                    }
                        ;
                }
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                var IORouterRegistry = /** @class */
                    function () {
                        function IORouterRegistry() {
                            this.saveRouters = [];
                            this.loadRouters = [];
                        }
                        IORouterRegistry.getInstance = function () {
                            if (IORouterRegistry.instance == null) {
                                IORouterRegistry.instance = new IORouterRegistry();
                            }
                            return IORouterRegistry.instance;
                        }
                            ;
                        /**
         * Register a save-handler router.
         *
         * @param saveRouter A function that maps a URL-like string onto an instance
         * of `IOHandler` with the `save` method defined or `null`.
         */
                        IORouterRegistry.registerSaveRouter = function (saveRouter) {
                            IORouterRegistry.getInstance().saveRouters.push(saveRouter);
                        }
                            ;
                        /**
         * Register a load-handler router.
         *
         * @param loadRouter A function that maps a URL-like string onto an instance
         * of `IOHandler` with the `load` method defined or `null`.
         */
                        IORouterRegistry.registerLoadRouter = function (loadRouter) {
                            IORouterRegistry.getInstance().loadRouters.push(loadRouter);
                        }
                            ;
                        /**
         * Look up IOHandler for saving, given a URL-like string.
         *
         * @param url
         * @returns If only one match is found, an instance of IOHandler with the
         * `save` method defined. If no match is found, `null`.
         * @throws Error, if more than one match is found.
         */
                        IORouterRegistry.getSaveHandlers = function (url) {
                            return IORouterRegistry.getHandlers(url, 'save');
                        }
                            ;
                        /**
         * Look up IOHandler for loading, given a URL-like string.
         *
         * @param url
         * @param loadOptions Optional, custom load options.
         * @returns All valid handlers for `url`, given the currently registered
         *   handler routers.
         */
                        IORouterRegistry.getLoadHandlers = function (url, loadOptions) {
                            return IORouterRegistry.getHandlers(url, 'load', loadOptions);
                        }
                            ;
                        IORouterRegistry.getHandlers = function (url, handlerType, loadOptions) {
                            var validHandlers = [];
                            var routers = handlerType === 'load' ? IORouterRegistry.getInstance().loadRouters : IORouterRegistry.getInstance().saveRouters;
                            routers.forEach(function (router) {
                                var handler = router(url, loadOptions);
                                if (handler !== null) {
                                    validHandlers.push(handler);
                                }
                            });
                            return validHandlers;
                        }
                            ;
                        return IORouterRegistry;
                    }();
                var registerSaveRouter = function (loudRouter) {
                    return IORouterRegistry.registerSaveRouter(loudRouter);
                };
                var registerLoadRouter = function (loudRouter) {
                    return IORouterRegistry.registerLoadRouter(loudRouter);
                };
                var getSaveHandlers = function (url) {
                    return IORouterRegistry.getSaveHandlers(url);
                };
                var getLoadHandlers = function (url, loadOptions) {
                    return IORouterRegistry.getLoadHandlers(url, loadOptions);
                };
                var DATABASE_NAME = 'tensorflowjs';
                var DATABASE_VERSION = 1;
                // Model data and ModelArtifactsInfo (metadata) are stored in two separate
                // stores for efficient access of the list of stored models and their metadata.
                // 1. The object store for model data: topology, weights and weight manifests.
                var MODEL_STORE_NAME = 'models_store';
                // 2. The object store for ModelArtifactsInfo, including meta-information such
                //    as the type of topology (JSON vs binary), byte size of the topology, byte
                //    size of the weights, etc.
                var INFO_STORE_NAME = 'model_info_store';
                function getIndexedDBFactory() {
                    if (!env().getBool('IS_BROWSER')) {
                        // TODO(cais): Add more info about what IOHandler subtypes are available.
                        //   Maybe point to a doc page on the web and/or automatically determine
                        //   the available IOHandlers and print them in the error message.
                        throw new Error('Failed to obtain IndexedDB factory because the current environment' + 'is not a web browser.');
                    }
                    // tslint:disable-next-line:no-any
                    var theWindow = typeof window === 'undefined' ? self : window;
                    var factory = theWindow.indexedDB || theWindow.mozIndexedDB || theWindow.webkitIndexedDB || theWindow.msIndexedDB || theWindow.shimIndexedDB;
                    if (factory == null) {
                        throw new Error('The current browser does not appear to support IndexedDB.');
                    }
                    return factory;
                }
                function setUpDatabase(openRequest) {
                    var db = openRequest.result;
                    db.createObjectStore(MODEL_STORE_NAME, {
                        keyPath: 'modelPath'
                    });
                    db.createObjectStore(INFO_STORE_NAME, {
                        keyPath: 'modelPath'
                    });
                }
                /**
 * IOHandler subclass: Browser IndexedDB.
 *
 * See the doc string of `browserIndexedDB` for more details.
 */
                var BrowserIndexedDB = /** @class */
                    function () {
                        function BrowserIndexedDB(modelPath) {
                            this.indexedDB = getIndexedDBFactory();
                            if (modelPath == null || !modelPath) {
                                throw new Error('For IndexedDB, modelPath must not be null, undefined or empty.');
                            }
                            this.modelPath = modelPath;
                        }
                        BrowserIndexedDB.prototype.save = function (modelArtifacts) {
                            return __awaiter(this, void 0, void 0, function () {
                                return __generator(this, function (_a) {
                                    // TODO(cais): Support saving GraphDef models.
                                    if (modelArtifacts.modelTopology instanceof ArrayBuffer) {
                                        throw new Error('BrowserLocalStorage.save() does not support saving model topology ' + 'in binary formats yet.');
                                    }
                                    return [2 /*return*/
                                        , this.databaseAction(this.modelPath, modelArtifacts)];
                                });
                            });
                        }
                            ;
                        BrowserIndexedDB.prototype.load = function () {
                            return __awaiter(this, void 0, void 0, function () {
                                return __generator(this, function (_a) {
                                    return [2 /*return*/
                                        , this.databaseAction(this.modelPath)];
                                });
                            });
                        }
                            ;
                        /**
         * Perform database action to put model artifacts into or read model artifacts
         * from IndexedDB object store.
         *
         * Whether the action is put or get depends on whether `modelArtifacts` is
         * specified. If it is specified, the action will be put; otherwise the action
         * will be get.
         *
         * @param modelPath A unique string path for the model.
         * @param modelArtifacts If specified, it will be the model artifacts to be
         *   stored in IndexedDB.
         * @returns A `Promise` of `SaveResult`, if the action is put, or a `Promise`
         *   of `ModelArtifacts`, if the action is get.
         */
                        BrowserIndexedDB.prototype.databaseAction = function (modelPath, modelArtifacts) {
                            var _this = this;
                            return new Promise(function (resolve, reject) {
                                var openRequest = _this.indexedDB.open(DATABASE_NAME, DATABASE_VERSION);
                                openRequest.onupgradeneeded = function () {
                                    return setUpDatabase(openRequest);
                                }
                                    ;
                                openRequest.onsuccess = function () {
                                    var db = openRequest.result;
                                    if (modelArtifacts == null) {
                                        // Read model out from object store.
                                        var modelTx = db.transaction(MODEL_STORE_NAME, 'readonly');
                                        var modelStore = modelTx.objectStore(MODEL_STORE_NAME);
                                        var getRequest_1 = modelStore.get(_this.modelPath);
                                        getRequest_1.onsuccess = function () {
                                            if (getRequest_1.result == null) {
                                                db.close();
                                                return reject(new Error("Cannot find model with path '".concat(_this.modelPath, "' ") + "in IndexedDB."));
                                            } else {
                                                resolve(getRequest_1.result.modelArtifacts);
                                            }
                                        }
                                            ;
                                        getRequest_1.onerror = function (error) {
                                            db.close();
                                            return reject(getRequest_1.error);
                                        }
                                            ;
                                        modelTx.oncomplete = function () {
                                            return db.close();
                                        }
                                            ;
                                    } else {
                                        // Put model into object store.
                                        var modelArtifactsInfo_1 = getModelArtifactsInfoForJSON(modelArtifacts);
                                        // First, put ModelArtifactsInfo into info store.
                                        var infoTx_1 = db.transaction(INFO_STORE_NAME, 'readwrite');
                                        var infoStore_1 = infoTx_1.objectStore(INFO_STORE_NAME);
                                        var putInfoRequest_1 = infoStore_1.put({
                                            modelPath: _this.modelPath,
                                            modelArtifactsInfo: modelArtifactsInfo_1
                                        });
                                        var modelTx_1;
                                        putInfoRequest_1.onsuccess = function () {
                                            // Second, put model data into model store.
                                            modelTx_1 = db.transaction(MODEL_STORE_NAME, 'readwrite');
                                            var modelStore = modelTx_1.objectStore(MODEL_STORE_NAME);
                                            var putModelRequest = modelStore.put({
                                                modelPath: _this.modelPath,
                                                modelArtifacts: modelArtifacts,
                                                modelArtifactsInfo: modelArtifactsInfo_1
                                            });
                                            putModelRequest.onsuccess = function () {
                                                return resolve({
                                                    modelArtifactsInfo: modelArtifactsInfo_1
                                                });
                                            }
                                                ;
                                            putModelRequest.onerror = function (error) {
                                                // If the put-model request fails, roll back the info entry as
                                                // well.
                                                infoStore_1 = infoTx_1.objectStore(INFO_STORE_NAME);
                                                var deleteInfoRequest = infoStore_1.delete(_this.modelPath);
                                                deleteInfoRequest.onsuccess = function () {
                                                    db.close();
                                                    return reject(putModelRequest.error);
                                                }
                                                    ;
                                                deleteInfoRequest.onerror = function (error) {
                                                    db.close();
                                                    return reject(putModelRequest.error);
                                                }
                                                    ;
                                            }
                                                ;
                                        }
                                            ;
                                        putInfoRequest_1.onerror = function (error) {
                                            db.close();
                                            return reject(putInfoRequest_1.error);
                                        }
                                            ;
                                        infoTx_1.oncomplete = function () {
                                            if (modelTx_1 == null) {
                                                db.close();
                                            } else {
                                                modelTx_1.oncomplete = function () {
                                                    return db.close();
                                                }
                                                    ;
                                            }
                                        }
                                            ;
                                    }
                                }
                                    ;
                                openRequest.onerror = function (error) {
                                    return reject(openRequest.error);
                                }
                                    ;
                            }
                            );
                        }
                            ;
                        return BrowserIndexedDB;
                    }();
                BrowserIndexedDB.URL_SCHEME = 'indexeddb://';
                var indexedDBRouter = function (url) {
                    if (!env().getBool('IS_BROWSER')) {
                        return null;
                    } else {
                        if (!Array.isArray(url) && url.startsWith(BrowserIndexedDB.URL_SCHEME)) {
                            return browserIndexedDB(url.slice(BrowserIndexedDB.URL_SCHEME.length));
                        } else {
                            return null;
                        }
                    }
                };
                IORouterRegistry.registerSaveRouter(indexedDBRouter);
                IORouterRegistry.registerLoadRouter(indexedDBRouter);
                /**
 * Creates a browser IndexedDB IOHandler for saving and loading models.
 *
 * ```js
 * const model = tf.sequential();
 * model.add(
 *     tf.layers.dense({units: 1, inputShape: [100], activation: 'sigmoid'}));
 *
 * const saveResult = await model.save('indexeddb://MyModel'));
 * console.log(saveResult);
 * ```
 *
 * @param modelPath A unique identifier for the model to be saved. Must be a
 *   non-empty string.
 * @returns An instance of `BrowserIndexedDB` (sublcass of `IOHandler`),
 *   which can be used with, e.g., `tf.Model.save`.
 */
                function browserIndexedDB(modelPath) {
                    return new BrowserIndexedDB(modelPath);
                }
                function maybeStripScheme$1(key) {
                    return key.startsWith(BrowserIndexedDB.URL_SCHEME) ? key.slice(BrowserIndexedDB.URL_SCHEME.length) : key;
                }
                var BrowserIndexedDBManager = /** @class */
                    function () {
                        function BrowserIndexedDBManager() {
                            this.indexedDB = getIndexedDBFactory();
                        }
                        BrowserIndexedDBManager.prototype.listModels = function () {
                            return __awaiter(this, void 0, void 0, function () {
                                var _this = this;
                                return __generator(this, function (_a) {
                                    return [2 /*return*/
                                        , new Promise(function (resolve, reject) {
                                            var openRequest = _this.indexedDB.open(DATABASE_NAME, DATABASE_VERSION);
                                            openRequest.onupgradeneeded = function () {
                                                return setUpDatabase(openRequest);
                                            }
                                                ;
                                            openRequest.onsuccess = function () {
                                                var db = openRequest.result;
                                                var tx = db.transaction(INFO_STORE_NAME, 'readonly');
                                                var store = tx.objectStore(INFO_STORE_NAME);
                                                // tslint:disable:max-line-length
                                                // Need to cast `store` as `any` here because TypeScript's DOM
                                                // library does not have the `getAll()` method even though the
                                                // method is supported in the latest version of most mainstream
                                                // browsers:
                                                // https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore/getAll
                                                // tslint:enable:max-line-length
                                                // tslint:disable-next-line:no-any
                                                var getAllInfoRequest = store.getAll();
                                                getAllInfoRequest.onsuccess = function () {
                                                    var e_1, _a;
                                                    var out = {};
                                                    try {
                                                        for (var _b = __values(getAllInfoRequest.result), _c = _b.next(); !_c.done; _c = _b.next()) {
                                                            var item = _c.value;
                                                            out[item.modelPath] = item.modelArtifactsInfo;
                                                        }
                                                    } catch (e_1_1) {
                                                        e_1 = {
                                                            error: e_1_1
                                                        };
                                                    } finally {
                                                        try {
                                                            if (_c && !_c.done && (_a = _b.return))
                                                                _a.call(_b);
                                                        } finally {
                                                            if (e_1)
                                                                throw e_1.error;
                                                        }
                                                    }
                                                    resolve(out);
                                                }
                                                    ;
                                                getAllInfoRequest.onerror = function (error) {
                                                    db.close();
                                                    return reject(getAllInfoRequest.error);
                                                }
                                                    ;
                                                tx.oncomplete = function () {
                                                    return db.close();
                                                }
                                                    ;
                                            }
                                                ;
                                            openRequest.onerror = function (error) {
                                                return reject(openRequest.error);
                                            }
                                                ;
                                        }
                                        )];
                                });
                            });
                        }
                            ;
                        BrowserIndexedDBManager.prototype.removeModel = function (path) {
                            return __awaiter(this, void 0, void 0, function () {
                                var _this = this;
                                return __generator(this, function (_a) {
                                    path = maybeStripScheme$1(path);
                                    return [2 /*return*/
                                        , new Promise(function (resolve, reject) {
                                            var openRequest = _this.indexedDB.open(DATABASE_NAME, DATABASE_VERSION);
                                            openRequest.onupgradeneeded = function () {
                                                return setUpDatabase(openRequest);
                                            }
                                                ;
                                            openRequest.onsuccess = function () {
                                                var db = openRequest.result;
                                                var infoTx = db.transaction(INFO_STORE_NAME, 'readwrite');
                                                var infoStore = infoTx.objectStore(INFO_STORE_NAME);
                                                var getInfoRequest = infoStore.get(path);
                                                var modelTx;
                                                getInfoRequest.onsuccess = function () {
                                                    if (getInfoRequest.result == null) {
                                                        db.close();
                                                        return reject(new Error("Cannot find model with path '".concat(path, "' ") + "in IndexedDB."));
                                                    } else {
                                                        // First, delete the entry in the info store.
                                                        var deleteInfoRequest = infoStore.delete(path);
                                                        var deleteModelData_1 = function () {
                                                            // Second, delete the entry in the model store.
                                                            modelTx = db.transaction(MODEL_STORE_NAME, 'readwrite');
                                                            var modelStore = modelTx.objectStore(MODEL_STORE_NAME);
                                                            var deleteModelRequest = modelStore.delete(path);
                                                            deleteModelRequest.onsuccess = function () {
                                                                return resolve(getInfoRequest.result.modelArtifactsInfo);
                                                            }
                                                                ;
                                                            deleteModelRequest.onerror = function (error) {
                                                                return reject(getInfoRequest.error);
                                                            }
                                                                ;
                                                        };
                                                        // Proceed with deleting model data regardless of whether deletion
                                                        // of info data succeeds or not.
                                                        deleteInfoRequest.onsuccess = deleteModelData_1;
                                                        deleteInfoRequest.onerror = function (error) {
                                                            deleteModelData_1();
                                                            db.close();
                                                            return reject(getInfoRequest.error);
                                                        }
                                                            ;
                                                    }
                                                }
                                                    ;
                                                getInfoRequest.onerror = function (error) {
                                                    db.close();
                                                    return reject(getInfoRequest.error);
                                                }
                                                    ;
                                                infoTx.oncomplete = function () {
                                                    if (modelTx == null) {
                                                        db.close();
                                                    } else {
                                                        modelTx.oncomplete = function () {
                                                            return db.close();
                                                        }
                                                            ;
                                                    }
                                                }
                                                    ;
                                            }
                                                ;
                                            openRequest.onerror = function (error) {
                                                return reject(openRequest.error);
                                            }
                                                ;
                                        }
                                        )];
                                });
                            });
                        }
                            ;
                        return BrowserIndexedDBManager;
                    }();
                var PATH_SEPARATOR = '/';
                var PATH_PREFIX = 'tensorflowjs_models';
                var INFO_SUFFIX = 'info';
                var MODEL_TOPOLOGY_SUFFIX = 'model_topology';
                var WEIGHT_SPECS_SUFFIX = 'weight_specs';
                var WEIGHT_DATA_SUFFIX = 'weight_data';
                var MODEL_METADATA_SUFFIX = 'model_metadata';
                function getModelKeys(path) {
                    return {
                        info: [PATH_PREFIX, path, INFO_SUFFIX].join(PATH_SEPARATOR),
                        topology: [PATH_PREFIX, path, MODEL_TOPOLOGY_SUFFIX].join(PATH_SEPARATOR),
                        weightSpecs: [PATH_PREFIX, path, WEIGHT_SPECS_SUFFIX].join(PATH_SEPARATOR),
                        weightData: [PATH_PREFIX, path, WEIGHT_DATA_SUFFIX].join(PATH_SEPARATOR),
                        modelMetadata: [PATH_PREFIX, path, MODEL_METADATA_SUFFIX].join(PATH_SEPARATOR)
                    };
                }
                function removeItems(keys) {
                    var e_1, _a;
                    try {
                        for (var _b = __values(Object.values(keys)), _c = _b.next(); !_c.done; _c = _b.next()) {
                            var key = _c.value;
                            window.localStorage.removeItem(key);
                        }
                    } catch (e_1_1) {
                        e_1 = {
                            error: e_1_1
                        };
                    } finally {
                        try {
                            if (_c && !_c.done && (_a = _b.return))
                                _a.call(_b);
                        } finally {
                            if (e_1)
                                throw e_1.error;
                        }
                    }
                }
                /**
 * Get model path from a local-storage key.
 *
 * E.g., 'tensorflowjs_models/my/model/1/info' --> 'my/model/1'
 *
 * @param key
 */
                function getModelPathFromKey(key) {
                    var items = key.split(PATH_SEPARATOR);
                    if (items.length < 3) {
                        throw new Error("Invalid key format: ".concat(key));
                    }
                    return items.slice(1, items.length - 1).join(PATH_SEPARATOR);
                }
                function maybeStripScheme(key) {
                    return key.startsWith(BrowserLocalStorage.URL_SCHEME) ? key.slice(BrowserLocalStorage.URL_SCHEME.length) : key;
                }
                /**
 * IOHandler subclass: Browser Local Storage.
 *
 * See the doc string to `browserLocalStorage` for more details.
 */
                var BrowserLocalStorage = /** @class */
                    function () {
                        function BrowserLocalStorage(modelPath) {
                            if (!env().getBool('IS_BROWSER') || typeof window === 'undefined' || typeof window.localStorage === 'undefined') {
                                // TODO(cais): Add more info about what IOHandler subtypes are
                                // available.
                                //   Maybe point to a doc page on the web and/or automatically determine
                                //   the available IOHandlers and print them in the error message.
                                throw new Error('The current environment does not support local storage.');
                            }
                            this.LS = window.localStorage;
                            if (modelPath == null || !modelPath) {
                                throw new Error('For local storage, modelPath must not be null, undefined or empty.');
                            }
                            this.modelPath = modelPath;
                            this.keys = getModelKeys(this.modelPath);
                        }
                        /**
         * Save model artifacts to browser local storage.
         *
         * See the documentation to `browserLocalStorage` for details on the saved
         * artifacts.
         *
         * @param modelArtifacts The model artifacts to be stored.
         * @returns An instance of SaveResult.
         */
                        BrowserLocalStorage.prototype.save = function (modelArtifacts) {
                            return __awaiter(this, void 0, void 0, function () {
                                var topology, weightSpecs, modelArtifactsInfo, metadata;
                                return __generator(this, function (_a) {
                                    if (modelArtifacts.modelTopology instanceof ArrayBuffer) {
                                        throw new Error('BrowserLocalStorage.save() does not support saving model topology ' + 'in binary formats yet.');
                                    } else {
                                        topology = JSON.stringify(modelArtifacts.modelTopology);
                                        weightSpecs = JSON.stringify(modelArtifacts.weightSpecs);
                                        modelArtifactsInfo = getModelArtifactsInfoForJSON(modelArtifacts);
                                        try {
                                            this.LS.setItem(this.keys.info, JSON.stringify(modelArtifactsInfo));
                                            this.LS.setItem(this.keys.topology, topology);
                                            this.LS.setItem(this.keys.weightSpecs, weightSpecs);
                                            this.LS.setItem(this.keys.weightData, arrayBufferToBase64String(modelArtifacts.weightData));
                                            metadata = {
                                                format: modelArtifacts.format,
                                                generatedBy: modelArtifacts.generatedBy,
                                                convertedBy: modelArtifacts.convertedBy,
                                                signature: modelArtifacts.signature != null ? modelArtifacts.signature : undefined,
                                                userDefinedMetadata: modelArtifacts.userDefinedMetadata != null ? modelArtifacts.userDefinedMetadata : undefined,
                                                modelInitializer: modelArtifacts.modelInitializer != null ? modelArtifacts.modelInitializer : undefined,
                                                initializerSignature: modelArtifacts.initializerSignature != null ? modelArtifacts.initializerSignature : undefined,
                                                trainingConfig: modelArtifacts.trainingConfig != null ? modelArtifacts.trainingConfig : undefined
                                            };
                                            this.LS.setItem(this.keys.modelMetadata, JSON.stringify(metadata));
                                            return [2 /*return*/
                                                , {
                                                    modelArtifactsInfo: modelArtifactsInfo
                                                }];
                                        } catch (err) {
                                            // If saving failed, clean up all items saved so far.
                                            removeItems(this.keys);
                                            throw new Error("Failed to save model '".concat(this.modelPath, "' to local storage: ") + "size quota being exceeded is a possible cause of this failure: " + "modelTopologyBytes=".concat(modelArtifactsInfo.modelTopologyBytes, ", ") + "weightSpecsBytes=".concat(modelArtifactsInfo.weightSpecsBytes, ", ") + "weightDataBytes=".concat(modelArtifactsInfo.weightDataBytes, "."));
                                        }
                                    }
                                    return [2 /*return*/
                                    ];
                                });
                            });
                        }
                            ;
                        /**
         * Load a model from local storage.
         *
         * See the documentation to `browserLocalStorage` for details on the saved
         * artifacts.
         *
         * @returns The loaded model (if loading succeeds).
         */
                        BrowserLocalStorage.prototype.load = function () {
                            return __awaiter(this, void 0, void 0, function () {
                                var info, out, topology, weightSpecs, metadataString, metadata, weightDataBase64;
                                return __generator(this, function (_a) {
                                    info = JSON.parse(this.LS.getItem(this.keys.info));
                                    if (info == null) {
                                        throw new Error("In local storage, there is no model with name '".concat(this.modelPath, "'"));
                                    }
                                    if (info.modelTopologyType !== 'JSON') {
                                        throw new Error('BrowserLocalStorage does not support loading non-JSON model ' + 'topology yet.');
                                    }
                                    out = {};
                                    topology = JSON.parse(this.LS.getItem(this.keys.topology));
                                    if (topology == null) {
                                        throw new Error("In local storage, the topology of model '".concat(this.modelPath, "' ") + "is missing.");
                                    }
                                    out.modelTopology = topology;
                                    weightSpecs = JSON.parse(this.LS.getItem(this.keys.weightSpecs));
                                    if (weightSpecs == null) {
                                        throw new Error("In local storage, the weight specs of model '".concat(this.modelPath, "' ") + "are missing.");
                                    }
                                    out.weightSpecs = weightSpecs;
                                    metadataString = this.LS.getItem(this.keys.modelMetadata);
                                    if (metadataString != null) {
                                        metadata = JSON.parse(metadataString);
                                        out.format = metadata.format;
                                        out.generatedBy = metadata.generatedBy;
                                        out.convertedBy = metadata.convertedBy;
                                        if (metadata.signature != null) {
                                            out.signature = metadata.signature;
                                        }
                                        if (metadata.userDefinedMetadata != null) {
                                            out.userDefinedMetadata = metadata.userDefinedMetadata;
                                        }
                                        if (metadata.modelInitializer != null) {
                                            out.modelInitializer = metadata.modelInitializer;
                                        }
                                        if (metadata.initializerSignature != null) {
                                            out.initializerSignature = metadata.initializerSignature;
                                        }
                                        if (metadata.trainingConfig != null) {
                                            out.trainingConfig = metadata.trainingConfig;
                                        }
                                    }
                                    weightDataBase64 = this.LS.getItem(this.keys.weightData);
                                    if (weightDataBase64 == null) {
                                        throw new Error("In local storage, the binary weight values of model " + "'".concat(this.modelPath, "' are missing."));
                                    }
                                    out.weightData = base64StringToArrayBuffer(weightDataBase64);
                                    return [2 /*return*/
                                        , out];
                                });
                            });
                        }
                            ;
                        return BrowserLocalStorage;
                    }();
                BrowserLocalStorage.URL_SCHEME = 'localstorage://';
                var localStorageRouter = function (url) {
                    if (!env().getBool('IS_BROWSER')) {
                        return null;
                    } else {
                        if (!Array.isArray(url) && url.startsWith(BrowserLocalStorage.URL_SCHEME)) {
                            return browserLocalStorage(url.slice(BrowserLocalStorage.URL_SCHEME.length));
                        } else {
                            return null;
                        }
                    }
                };
                IORouterRegistry.registerSaveRouter(localStorageRouter);
                IORouterRegistry.registerLoadRouter(localStorageRouter);
                /**
 * Factory function for local storage IOHandler.
 *
 * This `IOHandler` supports both `save` and `load`.
 *
 * For each model's saved artifacts, four items are saved to local storage.
 *   - `${PATH_SEPARATOR}/${modelPath}/info`: Contains meta-info about the
 *     model, such as date saved, type of the topology, size in bytes, etc.
 *   - `${PATH_SEPARATOR}/${modelPath}/topology`: Model topology. For Keras-
 *     style models, this is a stringized JSON.
 *   - `${PATH_SEPARATOR}/${modelPath}/weight_specs`: Weight specs of the
 *     model, can be used to decode the saved binary weight values (see
 *     item below).
 *   - `${PATH_SEPARATOR}/${modelPath}/weight_data`: Concatenated binary
 *     weight values, stored as a base64-encoded string.
 *
 * Saving may throw an `Error` if the total size of the artifacts exceed the
 * browser-specific quota.
 *
 * @param modelPath A unique identifier for the model to be saved. Must be a
 *   non-empty string.
 * @returns An instance of `IOHandler`, which can be used with, e.g.,
 *   `tf.Model.save`.
 */
                function browserLocalStorage(modelPath) {
                    return new BrowserLocalStorage(modelPath);
                }
                var BrowserLocalStorageManager = /** @class */
                    function () {
                        function BrowserLocalStorageManager() {
                            assert(env().getBool('IS_BROWSER'), function () {
                                return 'Current environment is not a web browser';
                            });
                            assert(typeof window === 'undefined' || typeof window.localStorage !== 'undefined', function () {
                                return 'Current browser does not appear to support localStorage';
                            });
                            this.LS = window.localStorage;
                        }
                        BrowserLocalStorageManager.prototype.listModels = function () {
                            return __awaiter(this, void 0, void 0, function () {
                                var out, prefix, suffix, i, key, modelPath;
                                return __generator(this, function (_a) {
                                    out = {};
                                    prefix = PATH_PREFIX + PATH_SEPARATOR;
                                    suffix = PATH_SEPARATOR + INFO_SUFFIX;
                                    for (i = 0; i < this.LS.length; ++i) {
                                        key = this.LS.key(i);
                                        if (key.startsWith(prefix) && key.endsWith(suffix)) {
                                            modelPath = getModelPathFromKey(key);
                                            out[modelPath] = JSON.parse(this.LS.getItem(key));
                                        }
                                    }
                                    return [2 /*return*/
                                        , out];
                                });
                            });
                        }
                            ;
                        BrowserLocalStorageManager.prototype.removeModel = function (path) {
                            return __awaiter(this, void 0, void 0, function () {
                                var keys, info;
                                return __generator(this, function (_a) {
                                    path = maybeStripScheme(path);
                                    keys = getModelKeys(path);
                                    if (this.LS.getItem(keys.info) == null) {
                                        throw new Error("Cannot find model at path '".concat(path, "'"));
                                    }
                                    info = JSON.parse(this.LS.getItem(keys.info));
                                    removeItems(keys);
                                    return [2 /*return*/
                                        , info];
                                });
                            });
                        }
                            ;
                        return BrowserLocalStorageManager;
                    }();
                var URL_SCHEME_SUFFIX = '://';
                var ModelStoreManagerRegistry = /** @class */
                    function () {
                        function ModelStoreManagerRegistry() {
                            this.managers = {};
                        }
                        ModelStoreManagerRegistry.getInstance = function () {
                            if (ModelStoreManagerRegistry.instance == null) {
                                ModelStoreManagerRegistry.instance = new ModelStoreManagerRegistry();
                            }
                            return ModelStoreManagerRegistry.instance;
                        }
                            ;
                        /**
         * Register a save-handler router.
         *
         * @param saveRouter A function that maps a URL-like string onto an instance
         * of `IOHandler` with the `save` method defined or `null`.
         */
                        ModelStoreManagerRegistry.registerManager = function (scheme, manager) {
                            assert(scheme != null, function () {
                                return 'scheme must not be undefined or null.';
                            });
                            if (scheme.endsWith(URL_SCHEME_SUFFIX)) {
                                scheme = scheme.slice(0, scheme.indexOf(URL_SCHEME_SUFFIX));
                            }
                            assert(scheme.length > 0, function () {
                                return 'scheme must not be an empty string.';
                            });
                            var registry = ModelStoreManagerRegistry.getInstance();
                            assert(registry.managers[scheme] == null, function () {
                                return "A model store manager is already registered for scheme '".concat(scheme, "'.");
                            });
                            registry.managers[scheme] = manager;
                        }
                            ;
                        ModelStoreManagerRegistry.getManager = function (scheme) {
                            var manager = ModelStoreManagerRegistry.getInstance().managers[scheme];
                            if (manager == null) {
                                throw new Error("Cannot find model manager for scheme '".concat(scheme, "'"));
                            }
                            return manager;
                        }
                            ;
                        ModelStoreManagerRegistry.getSchemes = function () {
                            return Object.keys(ModelStoreManagerRegistry.getInstance().managers);
                        }
                            ;
                        return ModelStoreManagerRegistry;
                    }();
                /**
 * Helper method for parsing a URL string into a scheme and a path.
 *
 * @param url E.g., 'localstorage://my-model'
 * @returns A dictionary with two fields: scheme and path.
 *   Scheme: e.g., 'localstorage' in the example above.
 *   Path: e.g., 'my-model' in the example above.
 */
                function parseURL(url) {
                    if (url.indexOf(URL_SCHEME_SUFFIX) === -1) {
                        throw new Error("The url string provided does not contain a scheme. " + "Supported schemes are: " + "".concat(ModelStoreManagerRegistry.getSchemes().join(',')));
                    }
                    return {
                        scheme: url.split(URL_SCHEME_SUFFIX)[0],
                        path: url.split(URL_SCHEME_SUFFIX)[1]
                    };
                }
                function cloneModelInternal(sourceURL, destURL, deleteSource) {
                    if (deleteSource === void 0) {
                        deleteSource = false;
                    }
                    return __awaiter(this, void 0, void 0, function () {
                        var loadHandlers, loadHandler, saveHandlers, saveHandler, sourceScheme, sourcePath, sameMedium, modelArtifacts, saveResult;
                        return __generator(this, function (_a) {
                            switch (_a.label) {
                                case 0:
                                    assert(sourceURL !== destURL, function () {
                                        return "Old path and new path are the same: '".concat(sourceURL, "'");
                                    });
                                    loadHandlers = IORouterRegistry.getLoadHandlers(sourceURL);
                                    assert(loadHandlers.length > 0, function () {
                                        return "Copying failed because no load handler is found for source URL ".concat(sourceURL, ".");
                                    });
                                    assert(loadHandlers.length < 2, function () {
                                        return "Copying failed because more than one (".concat(loadHandlers.length, ") ") + "load handlers for source URL ".concat(sourceURL, ".");
                                    });
                                    loadHandler = loadHandlers[0];
                                    saveHandlers = IORouterRegistry.getSaveHandlers(destURL);
                                    assert(saveHandlers.length > 0, function () {
                                        return "Copying failed because no save handler is found for destination " + "URL ".concat(destURL, ".");
                                    });
                                    assert(saveHandlers.length < 2, function () {
                                        return "Copying failed because more than one (".concat(loadHandlers.length, ") ") + "save handlers for destination URL ".concat(destURL, ".");
                                    });
                                    saveHandler = saveHandlers[0];
                                    sourceScheme = parseURL(sourceURL).scheme;
                                    sourcePath = parseURL(sourceURL).path;
                                    sameMedium = sourceScheme === parseURL(sourceURL).scheme;
                                    return [4 /*yield*/
                                        , loadHandler.load()];
                                case 1:
                                    modelArtifacts = _a.sent();
                                    if (!(deleteSource && sameMedium))
                                        return [3 /*break*/
                                            , 3];
                                    return [4 /*yield*/
                                        , ModelStoreManagerRegistry.getManager(sourceScheme).removeModel(sourcePath)];
                                case 2:
                                    _a.sent();
                                    _a.label = 3;
                                case 3:
                                    return [4 /*yield*/
                                        , saveHandler.save(modelArtifacts)];
                                case 4:
                                    saveResult = _a.sent();
                                    if (!(deleteSource && !sameMedium))
                                        return [3 /*break*/
                                            , 6];
                                    return [4 /*yield*/
                                        , ModelStoreManagerRegistry.getManager(sourceScheme).removeModel(sourcePath)];
                                case 5:
                                    _a.sent();
                                    _a.label = 6;
                                case 6:
                                    return [2 /*return*/
                                        , saveResult.modelArtifactsInfo];
                            }
                        });
                    });
                }
                /**
 * List all models stored in registered storage mediums.
 *
 * For a web browser environment, the registered mediums are Local Storage and
 * IndexedDB.
 *
 * ```js
 * // First create and save a model.
 * const model = tf.sequential();
 * model.add(tf.layers.dense(
 *     {units: 1, inputShape: [10], activation: 'sigmoid'}));
 * await model.save('localstorage://demo/management/model1');
 *
 * // Then list existing models.
 * console.log(JSON.stringify(await tf.io.listModels()));
 *
 * // Delete the model.
 * await tf.io.removeModel('localstorage://demo/management/model1');
 *
 * // List models again.
 * console.log(JSON.stringify(await tf.io.listModels()));
 * ```
 *
 * @returns A `Promise` of a dictionary mapping URLs of existing models to
 * their model artifacts info. URLs include medium-specific schemes, e.g.,
 *   'indexeddb://my/model/1'. Model artifacts info include type of the
 * model's topology, byte sizes of the topology, weights, etc.
 *
 * @doc {
 *   heading: 'Models',
 *   subheading: 'Management',
 *   namespace: 'io',
 *   ignoreCI: true
 * }
 */
                function listModels() {
                    return __awaiter(this, void 0, void 0, function () {
                        var schemes, out, schemes_1, schemes_1_1, scheme, schemeOut, path, url, e_1_1;
                        var e_1, _a;
                        return __generator(this, function (_b) {
                            switch (_b.label) {
                                case 0:
                                    schemes = ModelStoreManagerRegistry.getSchemes();
                                    out = {};
                                    _b.label = 1;
                                case 1:
                                    _b.trys.push([1, 6, 7, 8]);
                                    schemes_1 = __values(schemes),
                                        schemes_1_1 = schemes_1.next();
                                    _b.label = 2;
                                case 2:
                                    if (!!schemes_1_1.done)
                                        return [3 /*break*/
                                            , 5];
                                    scheme = schemes_1_1.value;
                                    return [4 /*yield*/
                                        , ModelStoreManagerRegistry.getManager(scheme).listModels()];
                                case 3:
                                    schemeOut = _b.sent();
                                    for (path in schemeOut) {
                                        url = scheme + URL_SCHEME_SUFFIX + path;
                                        out[url] = schemeOut[path];
                                    }
                                    _b.label = 4;
                                case 4:
                                    schemes_1_1 = schemes_1.next();
                                    return [3 /*break*/
                                        , 2];
                                case 5:
                                    return [3 /*break*/
                                        , 8];
                                case 6:
                                    e_1_1 = _b.sent();
                                    e_1 = {
                                        error: e_1_1
                                    };
                                    return [3 /*break*/
                                        , 8];
                                case 7:
                                    try {
                                        if (schemes_1_1 && !schemes_1_1.done && (_a = schemes_1.return))
                                            _a.call(schemes_1);
                                    } finally {
                                        if (e_1)
                                            throw e_1.error;
                                    }
                                    return [7 /*endfinally*/
                                    ];
                                case 8:
                                    return [2 /*return*/
                                        , out];
                            }
                        });
                    });
                }
                /**
 * Remove a model specified by URL from a registered storage medium.
 *
 * ```js
 * // First create and save a model.
 * const model = tf.sequential();
 * model.add(tf.layers.dense(
 *     {units: 1, inputShape: [10], activation: 'sigmoid'}));
 * await model.save('localstorage://demo/management/model1');
 *
 * // Then list existing models.
 * console.log(JSON.stringify(await tf.io.listModels()));
 *
 * // Delete the model.
 * await tf.io.removeModel('localstorage://demo/management/model1');
 *
 * // List models again.
 * console.log(JSON.stringify(await tf.io.listModels()));
 * ```
 *
 * @param url A URL to a stored model, with a scheme prefix, e.g.,
 *   'localstorage://my-model-1', 'indexeddb://my/model/2'.
 * @returns ModelArtifactsInfo of the deleted model (if and only if deletion
 *   is successful).
 * @throws Error if deletion fails, e.g., if no model exists at `path`.
 *
 * @doc {
 *   heading: 'Models',
 *   subheading: 'Management',
 *   namespace: 'io',
 *   ignoreCI: true
 * }
 */
                function removeModel(url) {
                    return __awaiter(this, void 0, void 0, function () {
                        var schemeAndPath, manager;
                        return __generator(this, function (_a) {
                            schemeAndPath = parseURL(url);
                            manager = ModelStoreManagerRegistry.getManager(schemeAndPath.scheme);
                            return [2 /*return*/
                                , manager.removeModel(schemeAndPath.path)];
                        });
                    });
                }
                /**
 * Copy a model from one URL to another.
 *
 * This function supports:
 *
 * 1. Copying within a storage medium, e.g.,
 *    `tf.io.copyModel('localstorage://model-1', 'localstorage://model-2')`
 * 2. Copying between two storage mediums, e.g.,
 *    `tf.io.copyModel('localstorage://model-1', 'indexeddb://model-1')`
 *
 * ```js
 * // First create and save a model.
 * const model = tf.sequential();
 * model.add(tf.layers.dense(
 *     {units: 1, inputShape: [10], activation: 'sigmoid'}));
 * await model.save('localstorage://demo/management/model1');
 *
 * // Then list existing models.
 * console.log(JSON.stringify(await tf.io.listModels()));
 *
 * // Copy the model, from Local Storage to IndexedDB.
 * await tf.io.copyModel(
 *     'localstorage://demo/management/model1',
 *     'indexeddb://demo/management/model1');
 *
 * // List models again.
 * console.log(JSON.stringify(await tf.io.listModels()));
 *
 * // Remove both models.
 * await tf.io.removeModel('localstorage://demo/management/model1');
 * await tf.io.removeModel('indexeddb://demo/management/model1');
 * ```
 *
 * @param sourceURL Source URL of copying.
 * @param destURL Destination URL of copying.
 * @returns ModelArtifactsInfo of the copied model (if and only if copying
 *   is successful).
 * @throws Error if copying fails, e.g., if no model exists at `sourceURL`, or
 *   if `oldPath` and `newPath` are identical.
 *
 * @doc {
 *   heading: 'Models',
 *   subheading: 'Management',
 *   namespace: 'io',
 *   ignoreCI: true
 * }
 */
                function copyModel(sourceURL, destURL) {
                    return __awaiter(this, void 0, void 0, function () {
                        var deleteSource;
                        return __generator(this, function (_a) {
                            deleteSource = false;
                            return [2 /*return*/
                                , cloneModelInternal(sourceURL, destURL, deleteSource)];
                        });
                    });
                }
                /**
 * Move a model from one URL to another.
 *
 * This function supports:
 *
 * 1. Moving within a storage medium, e.g.,
 *    `tf.io.moveModel('localstorage://model-1', 'localstorage://model-2')`
 * 2. Moving between two storage mediums, e.g.,
 *    `tf.io.moveModel('localstorage://model-1', 'indexeddb://model-1')`
 *
 * ```js
 * // First create and save a model.
 * const model = tf.sequential();
 * model.add(tf.layers.dense(
 *     {units: 1, inputShape: [10], activation: 'sigmoid'}));
 * await model.save('localstorage://demo/management/model1');
 *
 * // Then list existing models.
 * console.log(JSON.stringify(await tf.io.listModels()));
 *
 * // Move the model, from Local Storage to IndexedDB.
 * await tf.io.moveModel(
 *     'localstorage://demo/management/model1',
 *     'indexeddb://demo/management/model1');
 *
 * // List models again.
 * console.log(JSON.stringify(await tf.io.listModels()));
 *
 * // Remove the moved model.
 * await tf.io.removeModel('indexeddb://demo/management/model1');
 * ```
 *
 * @param sourceURL Source URL of moving.
 * @param destURL Destination URL of moving.
 * @returns ModelArtifactsInfo of the copied model (if and only if copying
 *   is successful).
 * @throws Error if moving fails, e.g., if no model exists at `sourceURL`, or
 *   if `oldPath` and `newPath` are identical.
 *
 * @doc {
 *   heading: 'Models',
 *   subheading: 'Management',
 *   namespace: 'io',
 *   ignoreCI: true
 * }
 */
                function moveModel(sourceURL, destURL) {
                    return __awaiter(this, void 0, void 0, function () {
                        var deleteSource;
                        return __generator(this, function (_a) {
                            deleteSource = true;
                            return [2 /*return*/
                                , cloneModelInternal(sourceURL, destURL, deleteSource)];
                        });
                    });
                }
                /**
 * @license
 * Copyright 2019 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                var PlatformBrowser = /** @class */
                    function () {
                        function PlatformBrowser() {
                            // For setTimeoutCustom
                            this.messageName = 'setTimeoutCustom';
                            this.functionRefs = [];
                            this.handledMessageCount = 0;
                            this.hasEventListener = false;
                        }
                        PlatformBrowser.prototype.fetch = function (path, init) {
                            return fetch(path, init);
                        }
                            ;
                        PlatformBrowser.prototype.now = function () {
                            return performance.now();
                        }
                            ;
                        PlatformBrowser.prototype.encode = function (text, encoding) {
                            if (encoding !== 'utf-8' && encoding !== 'utf8') {
                                throw new Error("Browser's encoder only supports utf-8, but got ".concat(encoding));
                            }
                            if (this.textEncoder == null) {
                                this.textEncoder = new TextEncoder();
                            }
                            return this.textEncoder.encode(text);
                        }
                            ;
                        PlatformBrowser.prototype.decode = function (bytes, encoding) {
                            return new TextDecoder(encoding).decode(bytes);
                        }
                            ;
                        // If the setTimeout nesting level is greater than 5 and timeout is less
                        // than 4ms, timeout will be clamped to 4ms, which hurts the perf.
                        // Interleaving window.postMessage and setTimeout will trick the browser and
                        // avoid the clamp.
                        PlatformBrowser.prototype.setTimeoutCustom = function (functionRef, delay) {
                            var _this = this;
                            if (typeof window === 'undefined' || !env().getBool('USE_SETTIMEOUTCUSTOM')) {
                                setTimeout(functionRef, delay);
                                return;
                            }
                            this.functionRefs.push(functionRef);
                            setTimeout(function () {
                                window.postMessage({
                                    name: _this.messageName,
                                    index: _this.functionRefs.length - 1
                                }, '*');
                            }, delay);
                            if (!this.hasEventListener) {
                                this.hasEventListener = true;
                                window.addEventListener('message', function (event) {
                                    if (event.source === window && event.data.name === _this.messageName) {
                                        event.stopPropagation();
                                        var functionRef_1 = _this.functionRefs[event.data.index];
                                        functionRef_1();
                                        _this.handledMessageCount++;
                                        if (_this.handledMessageCount === _this.functionRefs.length) {
                                            _this.functionRefs = [];
                                            _this.handledMessageCount = 0;
                                        }
                                    }
                                }, true);
                            }
                        }
                            ;
                        return PlatformBrowser;
                    }();
                if (env().get('IS_BROWSER')) {
                    env().setPlatform('browser', new PlatformBrowser());
                    // Register LocalStorage IOHandler
                    try {
                        ModelStoreManagerRegistry.registerManager(BrowserLocalStorage.URL_SCHEME, new BrowserLocalStorageManager());
                    } catch (err) { }
                    // Register IndexedDB IOHandler
                    try {
                        ModelStoreManagerRegistry.registerManager(BrowserIndexedDB.URL_SCHEME, new BrowserIndexedDBManager());
                    } catch (err) { }
                }
                /**
 * @license
 * Copyright 2019 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                // We are wrapping this within an object so it can be stubbed by Jasmine.
                var getNodeFetch = {
                    // tslint:disable-next-line:no-require-imports
                    importFetch: function () {
                        return require('node-fetch');
                    }
                };
                var systemFetch;
                var PlatformNode = /** @class */
                    function () {
                        function PlatformNode() {
                            // tslint:disable-next-line:no-require-imports
                            this.util = require('util');
                            // According to the spec, the built-in encoder can do only UTF-8 encoding.
                            // https://developer.mozilla.org/en-US/docs/Web/API/TextEncoder/TextEncoder
                            this.textEncoder = new this.util.TextEncoder();
                        }
                        PlatformNode.prototype.fetch = function (path, requestInits) {
                            if (env().global.fetch != null) {
                                return env().global.fetch(path, requestInits);
                            }
                            if (systemFetch == null) {
                                systemFetch = getNodeFetch.importFetch();
                            }
                            return systemFetch(path, requestInits);
                        }
                            ;
                        PlatformNode.prototype.now = function () {
                            var time = process.hrtime();
                            return time[0] * 1000 + time[1] / 1000000;
                        }
                            ;
                        PlatformNode.prototype.encode = function (text, encoding) {
                            if (encoding !== 'utf-8' && encoding !== 'utf8') {
                                throw new Error("Node built-in encoder only supports utf-8, but got ".concat(encoding));
                            }
                            return this.textEncoder.encode(text);
                        }
                            ;
                        PlatformNode.prototype.decode = function (bytes, encoding) {
                            if (bytes.length === 0) {
                                return '';
                            }
                            return new this.util.TextDecoder(encoding).decode(bytes);
                        }
                            ;
                        return PlatformNode;
                    }();
                if (env().get('IS_NODE') && !env().get('IS_BROWSER')) {
                    env().setPlatform('node', new PlatformNode());
                }
                /**
 * @license
 * Copyright 2020 Google Inc. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Creates an empty `tf.TensorBuffer` with the specified `shape` and `dtype`.
 *
 * The values are stored in CPU as `TypedArray`. Fill the buffer using
 * `buffer.set()`, or by modifying directly `buffer.values`.
 *
 * When done, call `buffer.toTensor()` to get an immutable `tf.Tensor` with
 * those values.
 *
 * ```js
 * // Create a buffer and set values at particular indices.
 * const buffer = tf.buffer([2, 2]);
 * buffer.set(3, 0, 0);
 * buffer.set(5, 1, 0);
 *
 * // Convert the buffer back to a tensor.
 * buffer.toTensor().print();
 * ```
 *
 * @param shape An array of integers defining the output tensor shape.
 * @param dtype The dtype of the buffer. Defaults to 'float32'.
 * @param values The values of the buffer as `TypedArray`. Defaults to
 * zeros.
 *
 * @doc {heading: 'Tensors', subheading: 'Creation'}
 */
                function buffer(shape, dtype, values) {
                    if (dtype === void 0) {
                        dtype = 'float32';
                    }
                    dtype = dtype || 'float32';
                    assertNonNegativeIntegerDimensions(shape);
                    return new TensorBuffer(shape, dtype, values);
                }
                /**
 * @license
 * Copyright 2020 Google Inc. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Casts a `tf.Tensor` to a new dtype.
 *
 * ```js
 * const x = tf.tensor1d([1.5, 2.5, 3]);
 * tf.cast(x, 'int32').print();
 * ```
 * @param x The input tensor to be casted.
 * @param dtype The dtype to cast the input tensor to.
 *
 * @doc {heading: 'Tensors', subheading: 'Transformations'}
 */
                function cast_(x, dtype) {
                    var $x = convertToTensor(x, 'x', 'cast');
                    // Sanity checks.
                    if (!isValidDtype(dtype)) {
                        throw new Error("Failed to cast to unknown dtype ".concat(dtype));
                    }
                    if (dtype === 'string' && $x.dtype !== 'string' || dtype !== 'string' && $x.dtype === 'string') {
                        throw new Error('Only strings can be casted to strings');
                    }
                    var inputs = {
                        x: $x
                    };
                    var attrs = {
                        dtype: dtype
                    };
                    return ENGINE.runKernel(Cast, inputs, attrs);
                }
                var cast = op({
                    cast_: cast_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Creates a new tensor with the same values and shape as the specified
 * tensor.
 *
 * ```js
 * const x = tf.tensor([1, 2]);
 *
 * x.clone().print();
 * ```
 *
 * @param x The tensor to clone.
 *
 * @doc {heading: 'Tensors', subheading: 'Creation'}
 */
                function clone_(x) {
                    var $x = convertToTensor(x, 'x', 'clone', 'string_or_numeric');
                    var inputs = {
                        x: $x
                    };
                    // Note this op is called tf.identity in python. Hence the kernel name used
                    // here.
                    return ENGINE.runKernel(Identity, inputs);
                }
                var clone = op({
                    clone_: clone_
                });
                /**
 * @license
 * Copyright 2020 Google Inc. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Prints information about the `tf.Tensor` including its data.
 *
 * ```js
 * const verbose = true;
 * tf.tensor2d([1, 2, 3, 4], [2, 2]).print(verbose);
 * ```
 * @param x The tensor to be printed.
 * @param verbose Whether to print verbose information about the ` Tensor`,
 * including dtype and size.
 *
 * @doc {heading: 'Tensors', subheading: 'Creation'}
 */
                function print(x, verbose) {
                    if (verbose === void 0) {
                        verbose = false;
                    }
                    console.log(x.toString(verbose));
                }
                /**
 * @license
 * Copyright 2020 Google Inc. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getOrMakeEngine();
                var opHandler = {
                    buffer: buffer,
                    cast: cast,
                    clone: clone,
                    print: print
                };
                setOpHandler(opHandler);
                var DEFAULT_FILE_NAME_PREFIX = 'model';
                var DEFAULT_JSON_EXTENSION_NAME = '.json';
                var DEFAULT_WEIGHT_DATA_EXTENSION_NAME = '.weights.bin';
                function defer(f) {
                    return new Promise(function (resolve) {
                        return setTimeout(resolve);
                    }
                    ).then(f);
                }
                var BrowserDownloads = /** @class */
                    function () {
                        function BrowserDownloads(fileNamePrefix) {
                            if (!env().getBool('IS_BROWSER')) {
                                // TODO(cais): Provide info on what IOHandlers are available under the
                                //   current environment.
                                throw new Error('browserDownloads() cannot proceed because the current environment ' + 'is not a browser.');
                            }
                            if (fileNamePrefix.startsWith(BrowserDownloads.URL_SCHEME)) {
                                fileNamePrefix = fileNamePrefix.slice(BrowserDownloads.URL_SCHEME.length);
                            }
                            if (fileNamePrefix == null || fileNamePrefix.length === 0) {
                                fileNamePrefix = DEFAULT_FILE_NAME_PREFIX;
                            }
                            this.modelJsonFileName = fileNamePrefix + DEFAULT_JSON_EXTENSION_NAME;
                            this.weightDataFileName = fileNamePrefix + DEFAULT_WEIGHT_DATA_EXTENSION_NAME;
                        }
                        BrowserDownloads.prototype.save = function (modelArtifacts) {
                            return __awaiter(this, void 0, void 0, function () {
                                var weightsURL, weightsManifest, modelJSON, modelJsonURL, jsonAnchor_1, weightDataAnchor_1;
                                return __generator(this, function (_a) {
                                    switch (_a.label) {
                                        case 0:
                                            if (typeof document === 'undefined') {
                                                throw new Error('Browser downloads are not supported in ' + 'this environment since `document` is not present');
                                            }
                                            weightsURL = window.URL.createObjectURL(new Blob([modelArtifacts.weightData], {
                                                type: 'application/octet-stream'
                                            }));
                                            if (!(modelArtifacts.modelTopology instanceof ArrayBuffer))
                                                return [3 /*break*/
                                                    , 1];
                                            throw new Error('BrowserDownloads.save() does not support saving model topology ' + 'in binary formats yet.');
                                        case 1:
                                            weightsManifest = [{
                                                paths: ['./' + this.weightDataFileName],
                                                weights: modelArtifacts.weightSpecs
                                            }];
                                            modelJSON = getModelJSONForModelArtifacts(modelArtifacts, weightsManifest);
                                            modelJsonURL = window.URL.createObjectURL(new Blob([JSON.stringify(modelJSON)], {
                                                type: 'application/json'
                                            }));
                                            jsonAnchor_1 = this.modelJsonAnchor == null ? document.createElement('a') : this.modelJsonAnchor;
                                            jsonAnchor_1.download = this.modelJsonFileName;
                                            jsonAnchor_1.href = modelJsonURL;
                                            // Trigger downloads by evoking a click event on the download anchors.
                                            // When multiple downloads are started synchronously, Firefox will only
                                            // save the last one.
                                            return [4 /*yield*/
                                                , defer(function () {
                                                    return jsonAnchor_1.dispatchEvent(new MouseEvent('click'));
                                                })];
                                        case 2:
                                            // Trigger downloads by evoking a click event on the download anchors.
                                            // When multiple downloads are started synchronously, Firefox will only
                                            // save the last one.
                                            _a.sent();
                                            if (!(modelArtifacts.weightData != null))
                                                return [3 /*break*/
                                                    , 4];
                                            weightDataAnchor_1 = this.weightDataAnchor == null ? document.createElement('a') : this.weightDataAnchor;
                                            weightDataAnchor_1.download = this.weightDataFileName;
                                            weightDataAnchor_1.href = weightsURL;
                                            return [4 /*yield*/
                                                , defer(function () {
                                                    return weightDataAnchor_1.dispatchEvent(new MouseEvent('click'));
                                                })];
                                        case 3:
                                            _a.sent();
                                            _a.label = 4;
                                        case 4:
                                            return [2 /*return*/
                                                , {
                                                    modelArtifactsInfo: getModelArtifactsInfoForJSON(modelArtifacts)
                                                }];
                                    }
                                });
                            });
                        }
                            ;
                        return BrowserDownloads;
                    }();
                BrowserDownloads.URL_SCHEME = 'downloads://';
                var BrowserFiles = /** @class */
                    function () {
                        function BrowserFiles(files) {
                            if (files == null || files.length < 1) {
                                throw new Error("When calling browserFiles, at least 1 file is required, " + "but received ".concat(files));
                            }
                            this.jsonFile = files[0];
                            this.weightsFiles = files.slice(1);
                        }
                        BrowserFiles.prototype.load = function () {
                            return __awaiter(this, void 0, void 0, function () {
                                var _this = this;
                                return __generator(this, function (_a) {
                                    return [2 /*return*/
                                        , new Promise(function (resolve, reject) {
                                            var jsonReader = new FileReader();
                                            jsonReader.onload = function (event) {
                                                // tslint:disable-next-line:no-any
                                                var modelJSON = JSON.parse(event.target.result);
                                                var modelTopology = modelJSON.modelTopology;
                                                if (modelTopology == null) {
                                                    reject(new Error("modelTopology field is missing from file ".concat(_this.jsonFile.name)));
                                                    return;
                                                }
                                                var weightsManifest = modelJSON.weightsManifest;
                                                if (weightsManifest == null) {
                                                    reject(new Error("weightManifest field is missing from file ".concat(_this.jsonFile.name)));
                                                    return;
                                                }
                                                if (_this.weightsFiles.length === 0) {
                                                    resolve({
                                                        modelTopology: modelTopology
                                                    });
                                                    return;
                                                }
                                                var modelArtifactsPromise = getModelArtifactsForJSON(modelJSON, function (weightsManifest) {
                                                    return _this.loadWeights(weightsManifest);
                                                });
                                                resolve(modelArtifactsPromise);
                                            }
                                                ;
                                            jsonReader.onerror = function (error) {
                                                return reject("Failed to read model topology and weights manifest JSON " + "from file '".concat(_this.jsonFile.name, "'. BrowserFiles supports loading ") + "Keras-style tf.Model artifacts only.");
                                            }
                                                ;
                                            jsonReader.readAsText(_this.jsonFile);
                                        }
                                        )];
                                });
                            });
                        }
                            ;
                        BrowserFiles.prototype.loadWeights = function (weightsManifest) {
                            var e_1, _a;
                            var _this = this;
                            var weightSpecs = [];
                            var paths = [];
                            try {
                                for (var weightsManifest_1 = __values(weightsManifest), weightsManifest_1_1 = weightsManifest_1.next(); !weightsManifest_1_1.done; weightsManifest_1_1 = weightsManifest_1.next()) {
                                    var entry = weightsManifest_1_1.value;
                                    weightSpecs.push.apply(weightSpecs, __spreadArray([], __read(entry.weights), false));
                                    paths.push.apply(paths, __spreadArray([], __read(entry.paths), false));
                                }
                            } catch (e_1_1) {
                                e_1 = {
                                    error: e_1_1
                                };
                            } finally {
                                try {
                                    if (weightsManifest_1_1 && !weightsManifest_1_1.done && (_a = weightsManifest_1.return))
                                        _a.call(weightsManifest_1);
                                } finally {
                                    if (e_1)
                                        throw e_1.error;
                                }
                            }
                            var pathToFile = this.checkManifestAndWeightFiles(weightsManifest);
                            var promises = paths.map(function (path) {
                                return _this.loadWeightsFile(path, pathToFile[path]);
                            });
                            return Promise.all(promises).then(function (buffers) {
                                return [weightSpecs, concatenateArrayBuffers(buffers)];
                            });
                        }
                            ;
                        BrowserFiles.prototype.loadWeightsFile = function (path, file) {
                            return new Promise(function (resolve, reject) {
                                var weightFileReader = new FileReader();
                                weightFileReader.onload = function (event) {
                                    // tslint:disable-next-line:no-any
                                    var weightData = event.target.result;
                                    resolve(weightData);
                                }
                                    ;
                                weightFileReader.onerror = function (error) {
                                    return reject("Failed to weights data from file of path '".concat(path, "'."));
                                }
                                    ;
                                weightFileReader.readAsArrayBuffer(file);
                            }
                            );
                        }
                            ;
                        /**
         * Check the compatibility between weights manifest and weight files.
         */
                        BrowserFiles.prototype.checkManifestAndWeightFiles = function (manifest) {
                            var e_2, _a;
                            var _this = this;
                            var basenames = [];
                            var fileNames = this.weightsFiles.map(function (file) {
                                return basename(file.name);
                            });
                            var pathToFile = {};
                            try {
                                for (var manifest_1 = __values(manifest), manifest_1_1 = manifest_1.next(); !manifest_1_1.done; manifest_1_1 = manifest_1.next()) {
                                    var group = manifest_1_1.value;
                                    group.paths.forEach(function (path) {
                                        var pathBasename = basename(path);
                                        if (basenames.indexOf(pathBasename) !== -1) {
                                            throw new Error("Duplicate file basename found in weights manifest: " + "'".concat(pathBasename, "'"));
                                        }
                                        basenames.push(pathBasename);
                                        if (fileNames.indexOf(pathBasename) === -1) {
                                            throw new Error("Weight file with basename '".concat(pathBasename, "' is not provided."));
                                        } else {
                                            pathToFile[path] = _this.weightsFiles[fileNames.indexOf(pathBasename)];
                                        }
                                    });
                                }
                            } catch (e_2_1) {
                                e_2 = {
                                    error: e_2_1
                                };
                            } finally {
                                try {
                                    if (manifest_1_1 && !manifest_1_1.done && (_a = manifest_1.return))
                                        _a.call(manifest_1);
                                } finally {
                                    if (e_2)
                                        throw e_2.error;
                                }
                            }
                            if (basenames.length !== this.weightsFiles.length) {
                                throw new Error("Mismatch in the number of files in weights manifest " + "(".concat(basenames.length, ") and the number of weight files provided ") + "(".concat(this.weightsFiles.length, ")."));
                            }
                            return pathToFile;
                        }
                            ;
                        return BrowserFiles;
                    }();
                var browserDownloadsRouter = function (url) {
                    if (!env().getBool('IS_BROWSER')) {
                        return null;
                    } else {
                        if (!Array.isArray(url) && url.startsWith(BrowserDownloads.URL_SCHEME)) {
                            return browserDownloads(url.slice(BrowserDownloads.URL_SCHEME.length));
                        } else {
                            return null;
                        }
                    }
                };
                IORouterRegistry.registerSaveRouter(browserDownloadsRouter);
                /**
 * Creates an IOHandler that triggers file downloads from the browser.
 *
 * The returned `IOHandler` instance can be used as model exporting methods such
 * as `tf.Model.save` and supports only saving.
 *
 * ```js
 * const model = tf.sequential();
 * model.add(tf.layers.dense(
 *     {units: 1, inputShape: [10], activation: 'sigmoid'}));
 * const saveResult = await model.save('downloads://mymodel');
 * // This will trigger downloading of two files:
 * //   'mymodel.json' and 'mymodel.weights.bin'.
 * console.log(saveResult);
 * ```
 *
 * @param fileNamePrefix Prefix name of the files to be downloaded. For use with
 *   `tf.Model`, `fileNamePrefix` should follow either of the following two
 *   formats:
 *   1. `null` or `undefined`, in which case the default file
 *      names will be used:
 *      - 'model.json' for the JSON file containing the model topology and
 *        weights manifest.
 *      - 'model.weights.bin' for the binary file containing the binary weight
 *        values.
 *   2. A single string or an Array of a single string, as the file name prefix.
 *      For example, if `'foo'` is provided, the downloaded JSON
 *      file and binary weights file will be named 'foo.json' and
 *      'foo.weights.bin', respectively.
 * @param config Additional configuration for triggering downloads.
 * @returns An instance of `BrowserDownloads` `IOHandler`.
 *
 * @doc {
 *   heading: 'Models',
 *   subheading: 'Loading',
 *   namespace: 'io',
 *   ignoreCI: true
 * }
 */
                function browserDownloads(fileNamePrefix) {
                    if (fileNamePrefix === void 0) {
                        fileNamePrefix = 'model';
                    }
                    return new BrowserDownloads(fileNamePrefix);
                }
                /**
 * Creates an IOHandler that loads model artifacts from user-selected files.
 *
 * This method can be used for loading from files such as user-selected files
 * in the browser.
 * When used in conjunction with `tf.loadLayersModel`, an instance of
 * `tf.LayersModel` (Keras-style) can be constructed from the loaded artifacts.
 *
 * ```js
 * // Note: This code snippet won't run properly without the actual file input
 * //   elements in the HTML DOM.
 *
 * // Suppose there are two HTML file input (`<input type="file" ...>`)
 * // elements.
 * const uploadJSONInput = document.getElementById('upload-json');
 * const uploadWeightsInput = document.getElementById('upload-weights');
 * const model = await tf.loadLayersModel(tf.io.browserFiles(
 *     [uploadJSONInput.files[0], uploadWeightsInput.files[0]]));
 * ```
 *
 * @param files `File`s to load from. Currently, this function supports only
 *   loading from files that contain Keras-style models (i.e., `tf.Model`s), for
 *   which an `Array` of `File`s is expected (in that order):
 *   - A JSON file containing the model topology and weight manifest.
 *   - Optionally, one or more binary files containing the binary weights.
 *     These files must have names that match the paths in the `weightsManifest`
 *     contained by the aforementioned JSON file, or errors will be thrown
 *     during loading. These weights files have the same format as the ones
 *     generated by `tensorflowjs_converter` that comes with the `tensorflowjs`
 *     Python PIP package. If no weights files are provided, only the model
 *     topology will be loaded from the JSON file above.
 * @returns An instance of `Files` `IOHandler`.
 *
 * @doc {
 *   heading: 'Models',
 *   subheading: 'Loading',
 *   namespace: 'io',
 *   ignoreCI: true
 * }
 */
                function browserFiles(files) {
                    return new BrowserFiles(files);
                }
                /**
 * @license
 * Copyright 2019 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Monitor Promise.all progress, fire onProgress callback function.
 *
 * @param promises Promise list going to be monitored
 * @param onProgress Callback function. Fired when a promise resolved.
 * @param startFraction Optional fraction start. Default to 0.
 * @param endFraction Optional fraction end. Default to 1.
 */
                function monitorPromisesProgress(promises, onProgress, startFraction, endFraction) {
                    checkPromises(promises);
                    startFraction = startFraction == null ? 0 : startFraction;
                    endFraction = endFraction == null ? 1 : endFraction;
                    checkFraction(startFraction, endFraction);
                    var resolvedPromise = 0;
                    var registerMonitor = function (promise) {
                        promise.then(function (value) {
                            var fraction = startFraction + ++resolvedPromise / promises.length * (endFraction - startFraction);
                            // pass fraction as parameter to callback function.
                            onProgress(fraction);
                            return value;
                        });
                        return promise;
                    };
                    function checkPromises(promises) {
                        assert(promises != null && Array.isArray(promises) && promises.length > 0, function () {
                            return 'promises must be a none empty array';
                        });
                    }
                    function checkFraction(startFraction, endFraction) {
                        assert(startFraction >= 0 && startFraction <= 1, function () {
                            return "Progress fraction must be in range [0, 1], but " + "got startFraction ".concat(startFraction);
                        });
                        assert(endFraction >= 0 && endFraction <= 1, function () {
                            return "Progress fraction must be in range [0, 1], but " + "got endFraction ".concat(endFraction);
                        });
                        assert(endFraction >= startFraction, function () {
                            return "startFraction must be no more than endFraction, but " + "got startFraction ".concat(startFraction, " and endFraction ") + "".concat(endFraction);
                        });
                    }
                    return Promise.all(promises.map(registerMonitor));
                }
                /**
 * Reads binary weights data from a number of URLs.
 *
 * @param fetchURLs URLs to send the HTTP requests at, using `fetch` calls.
 * @param requestOptions RequestInit (options) for the HTTP requests.
 * @param fetchFunc Optional overriding value for the `window.fetch` function.
 * @param onProgress Optional, progress callback function, fired periodically
 *   before the load is completed.
 * @returns A `Promise` of an Array of `ArrayBuffer`. The Array has the same
 *   length as `fetchURLs`.
 */
                function loadWeightsAsArrayBuffer(fetchURLs, loadOptions) {
                    return __awaiter(this, void 0, void 0, function () {
                        var fetchFunc, requests, fetchStartFraction, fetchEndFraction, responses, _a, bufferPromises, bufferStartFraction, bufferEndFraction, buffers, _b;
                        return __generator(this, function (_c) {
                            switch (_c.label) {
                                case 0:
                                    if (loadOptions == null) {
                                        loadOptions = {};
                                    }
                                    fetchFunc = loadOptions.fetchFunc == null ? env().platform.fetch : loadOptions.fetchFunc;
                                    requests = fetchURLs.map(function (fetchURL) {
                                        return fetchFunc(fetchURL, loadOptions.requestInit, {
                                            isBinary: true
                                        });
                                    });
                                    fetchStartFraction = 0;
                                    fetchEndFraction = 0.5;
                                    if (!(loadOptions.onProgress == null))
                                        return [3 /*break*/
                                            , 2];
                                    return [4 /*yield*/
                                        , Promise.all(requests)];
                                case 1:
                                    _a = _c.sent();
                                    return [3 /*break*/
                                        , 4];
                                case 2:
                                    return [4 /*yield*/
                                        , monitorPromisesProgress(requests, loadOptions.onProgress, fetchStartFraction, fetchEndFraction)];
                                case 3:
                                    _a = _c.sent();
                                    _c.label = 4;
                                case 4:
                                    responses = _a;
                                    bufferPromises = responses.map(function (response) {
                                        return response.arrayBuffer();
                                    });
                                    bufferStartFraction = 0.5;
                                    bufferEndFraction = 1;
                                    if (!(loadOptions.onProgress == null))
                                        return [3 /*break*/
                                            , 6];
                                    return [4 /*yield*/
                                        , Promise.all(bufferPromises)];
                                case 5:
                                    _b = _c.sent();
                                    return [3 /*break*/
                                        , 8];
                                case 6:
                                    return [4 /*yield*/
                                        , monitorPromisesProgress(bufferPromises, loadOptions.onProgress, bufferStartFraction, bufferEndFraction)];
                                case 7:
                                    _b = _c.sent();
                                    _c.label = 8;
                                case 8:
                                    buffers = _b;
                                    return [2 /*return*/
                                        , buffers];
                            }
                        });
                    });
                }
                /**
 * Reads a weights manifest JSON configuration, fetches the weights and
 * returns them as `Tensor`s.
 *
 * @param manifest The weights manifest JSON.
 * @param filePathPrefix The path prefix for filenames given in the manifest.
 *     Defaults to the empty string.
 * @param weightNames The names of the weights to be fetched.
 */
                function loadWeights(manifest, filePathPrefix, weightNames, requestInit) {
                    if (filePathPrefix === void 0) {
                        filePathPrefix = '';
                    }
                    return __awaiter(this, void 0, void 0, function () {
                        var fetchWeights, loadWeights;
                        return __generator(this, function (_a) {
                            fetchWeights = function (fetchUrls) {
                                return loadWeightsAsArrayBuffer(fetchUrls, {
                                    requestInit: requestInit
                                });
                            }
                                ;
                            loadWeights = weightsLoaderFactory(fetchWeights);
                            return [2 /*return*/
                                , loadWeights(manifest, filePathPrefix, weightNames)];
                        });
                    });
                }
                /**
 * Creates a function, which reads a weights manifest JSON configuration,
 * fetches the weight files using the specified function and returns them as
 * `Tensor`s.
 *
 * ```js
 * // example for creating a nodejs weight loader, which reads the weight files
 * // from disk using fs.readFileSync
 *
 * import * as fs from 'fs'
 *
 * const fetchWeightsFromDisk = (filePaths: string[]) =>
 *   filePaths.map(filePath => fs.readFileSync(filePath).buffer)
 *
 * const loadWeights = tf.io.weightsLoaderFactory(fetchWeightsFromDisk)
 *
 * const manifest = JSON.parse(
 *   fs.readFileSync('./my_model-weights_manifest').toString()
 * )
 * const weightMap = await loadWeights(manifest, './')
 * ```
 * @param fetchWeightsFunction The function used for fetching the weight files.
 * @returns Weight loading function.
 */
                function weightsLoaderFactory(fetchWeightsFunction) {
                    var _this = this;
                    return function (manifest, filePathPrefix, weightNames) {
                        if (filePathPrefix === void 0) {
                            filePathPrefix = '';
                        }
                        return __awaiter(_this, void 0, void 0, function () {
                            var groupIndicesToFetchMap, groupWeightsToFetch, weightsFound, allManifestWeightNames, weightsNotFound, groupIndicesToFetch, fetchUrls, buffers, weightsTensorMap, bufferIndexOffset;
                            return __generator(this, function (_a) {
                                switch (_a.label) {
                                    case 0:
                                        groupIndicesToFetchMap = manifest.map(function () {
                                            return false;
                                        });
                                        groupWeightsToFetch = {};
                                        weightsFound = weightNames != null ? weightNames.map(function () {
                                            return false;
                                        }) : [];
                                        allManifestWeightNames = [];
                                        manifest.forEach(function (manifestGroupConfig, groupIndex) {
                                            var groupOffset = 0;
                                            manifestGroupConfig.weights.forEach(function (weightsEntry) {
                                                var rawDtype = 'quantization' in weightsEntry ? weightsEntry.quantization.dtype : weightsEntry.dtype;
                                                var weightsBytes = DTYPE_VALUE_SIZE_MAP[rawDtype] * sizeFromShape(weightsEntry.shape);
                                                var enqueueWeightsForFetchingFn = function () {
                                                    groupIndicesToFetchMap[groupIndex] = true;
                                                    if (groupWeightsToFetch[groupIndex] == null) {
                                                        groupWeightsToFetch[groupIndex] = [];
                                                    }
                                                    groupWeightsToFetch[groupIndex].push({
                                                        manifestEntry: weightsEntry,
                                                        groupOffset: groupOffset,
                                                        sizeBytes: weightsBytes
                                                    });
                                                };
                                                if (weightNames != null) {
                                                    weightNames.forEach(function (weightName, weightIndex) {
                                                        if (weightName === weightsEntry.name) {
                                                            enqueueWeightsForFetchingFn();
                                                            weightsFound[weightIndex] = true;
                                                        }
                                                    });
                                                } else {
                                                    enqueueWeightsForFetchingFn();
                                                }
                                                allManifestWeightNames.push(weightsEntry.name);
                                                groupOffset += weightsBytes;
                                            });
                                        });
                                        if (!weightsFound.every(function (found) {
                                            return found;
                                        })) {
                                            weightsNotFound = weightNames.filter(function (_, i) {
                                                return !weightsFound[i];
                                            });
                                            throw new Error("Could not find weights in manifest with names: " + "".concat(weightsNotFound.join(', '), ". \n") + "Manifest JSON has weights with names: " + "".concat(allManifestWeightNames.join(', '), "."));
                                        }
                                        groupIndicesToFetch = groupIndicesToFetchMap.reduce(function (accumulator, shouldFetch, i) {
                                            if (shouldFetch) {
                                                accumulator.push(i);
                                            }
                                            return accumulator;
                                        }, []);
                                        fetchUrls = [];
                                        groupIndicesToFetch.forEach(function (i) {
                                            manifest[i].paths.forEach(function (filepath) {
                                                var fetchUrl = filePathPrefix + (!filePathPrefix.endsWith('/') ? '/' : '') + filepath;
                                                fetchUrls.push(fetchUrl);
                                            });
                                        });
                                        return [4 /*yield*/
                                            , fetchWeightsFunction(fetchUrls)];
                                    case 1:
                                        buffers = _a.sent();
                                        weightsTensorMap = {};
                                        bufferIndexOffset = 0;
                                        groupIndicesToFetch.forEach(function (i) {
                                            var numBuffers = manifest[i].paths.length;
                                            var groupBytes = 0;
                                            for (var i_1 = 0; i_1 < numBuffers; i_1++) {
                                                groupBytes += buffers[bufferIndexOffset + i_1].byteLength;
                                            }
                                            // Create a buffer for the whole group.
                                            var groupBuffer = new ArrayBuffer(groupBytes);
                                            var groupByteBuffer = new Uint8Array(groupBuffer);
                                            var groupBufferOffset = 0;
                                            for (var i_2 = 0; i_2 < numBuffers; i_2++) {
                                                var buffer = new Uint8Array(buffers[bufferIndexOffset + i_2]);
                                                groupByteBuffer.set(buffer, groupBufferOffset);
                                                groupBufferOffset += buffer.byteLength;
                                            }
                                            var weightsEntries = groupWeightsToFetch[i];
                                            weightsEntries.forEach(function (weightsEntry) {
                                                var byteBuffer = groupBuffer.slice(weightsEntry.groupOffset, weightsEntry.groupOffset + weightsEntry.sizeBytes);
                                                var nameToTensorMap = decodeWeights(byteBuffer, [weightsEntry.manifestEntry]);
                                                for (var name in nameToTensorMap) {
                                                    weightsTensorMap[name] = nameToTensorMap[name];
                                                }
                                            });
                                            bufferIndexOffset += numBuffers;
                                        });
                                        return [2 /*return*/
                                            , weightsTensorMap];
                                }
                            });
                        });
                    }
                        ;
                }
                var OCTET_STREAM_MIME_TYPE = 'application/octet-stream';
                var JSON_TYPE = 'application/json';

                var HTTPRequest = /** @class */
                    function () {
                        function HTTPRequest(path, loadOptions) {
                            this.DEFAULT_METHOD = 'POST';
                            if (loadOptions == null) {
                                loadOptions = {};
                            }
                            this.weightPathPrefix = loadOptions.weightPathPrefix;
                            this.onProgress = loadOptions.onProgress;
                            this.weightUrlConverter = loadOptions.weightUrlConverter;
                            if (loadOptions.fetchFunc != null) {
                                assert(typeof loadOptions.fetchFunc === 'function', function () {
                                    return 'Must pass a function that matches the signature of ' + '`fetch` (see ' + 'https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)';
                                });
                                this.fetch = loadOptions.fetchFunc;
                            } else {
                                this.fetch = env().platform.fetch;
                            }
                            assert(path != null && path.length > 0, function () {
                                return 'URL path for http must not be null, undefined or ' + 'empty.';
                            });
                            if (Array.isArray(path)) {
                                assert(path.length === 2, function () {
                                    return 'URL paths for http must have a length of 2, ' + "(actual length is ".concat(path.length, ").");
                                });
                            }
                            this.path = path;
                            if (loadOptions.requestInit != null && loadOptions.requestInit.body != null) {
                                throw new Error('requestInit is expected to have no pre-existing body, but has one.');
                            }
                            this.requestInit = loadOptions.requestInit || {};
                        }

                        HTTPRequest.prototype.save = function (modelArtifacts) {
                            return __awaiter(this, void 0, void 0, function () {
                                var init, weightsManifest, modelTopologyAndWeightManifest, response;
                                return __generator(this, function (_a) {
                                    switch (_a.label) {
                                        case 0:
                                            if (modelArtifacts.modelTopology instanceof ArrayBuffer) {
                                                throw new Error('BrowserHTTPRequest.save() does not support saving model topology ' + 'in binary formats yet.');
                                            }
                                            init = Object.assign({
                                                method: this.DEFAULT_METHOD
                                            }, this.requestInit);
                                            init.body = new FormData();
                                            weightsManifest = [{
                                                paths: ['./model.weights.bin'],
                                                weights: modelArtifacts.weightSpecs
                                            }];
                                            modelTopologyAndWeightManifest = getModelJSONForModelArtifacts(modelArtifacts, weightsManifest);
                                            init.body.append('model.json', new Blob([JSON.stringify(modelTopologyAndWeightManifest)], {
                                                type: JSON_TYPE
                                            }), 'model.json');
                                            if (modelArtifacts.weightData != null) {
                                                init.body.append('model.weights.bin', new Blob([modelArtifacts.weightData], {
                                                    type: OCTET_STREAM_MIME_TYPE
                                                }), 'model.weights.bin');
                                            }
                                            return [4 /*yield*/
                                                , this.fetch(this.path, init)];
                                        case 1:
                                            response = _a.sent();
                                            if (response.ok) {
                                                return [2 /*return*/
                                                    , {
                                                        modelArtifactsInfo: getModelArtifactsInfoForJSON(modelArtifacts),
                                                        responses: [response]
                                                    }];
                                            } else {
                                                throw new Error("BrowserHTTPRequest.save() failed due to HTTP response status " + "".concat(response.status, "."));
                                            }
                                    }
                                });
                            });
                        }
                            ;
                        /**
         * Load model artifacts via HTTP request(s).
         *
         * See the documentation to `tf.io.http` for details on the saved
         * artifacts.
         *
         * @returns The loaded model artifacts (if loading succeeds).
         */
                        HTTPRequest.prototype.load = function () {
                            return __awaiter(this, void 0, void 0, function () {
                                var modelConfigRequest, modelJSON, message, modelTopology, weightsManifest;
                                var _this = this;
                                return __generator(this, function (_a) {
                                    switch (_a.label) {
                                        case 0:
                                            let res = typeof this.fetch === null ? TFJS_MOBILENET : this.fetch(this.path, this.requestInit);
                                            return [4 /*yield*/
                                                , res];
                                        case 1:
                                            modelConfigRequest = _a.sent();
                                            if (!modelConfigRequest.ok) {
                                                throw new Error("Request to ".concat(this.path, " failed with status code ") + "".concat(modelConfigRequest.status, ". Please verify this URL points to ") + "the model JSON of the model to load.");
                                            }
                                            _a.label = 2;
                                        case 2:
                                            _a.trys.push([2, 4, , 5]);
                                            return [4 /*yield*/
                                                , modelConfigRequest.json()];
                                        case 3:
                                            modelJSON = _a.sent();
                                            return [3 /*break*/
                                                , 5];
                                        case 4:
                                            _a.sent();
                                            message = "Failed to parse model JSON of response from ".concat(this.path, ".");
                                            // TODO(nsthorat): Remove this after some time when we're comfortable that
                                            // .pb files are mostly gone.
                                            if (this.path.endsWith('.pb')) {
                                                message += ' Your path contains a .pb file extension. ' + 'Support for .pb models have been removed in TensorFlow.js 1.0 ' + 'in favor of .json models. You can re-convert your Python ' + 'TensorFlow model using the TensorFlow.js 1.0 conversion scripts ' + 'or you can convert your.pb models with the \'pb2json\'' + 'NPM script in the tensorflow/tfjs-converter repository.';
                                            } else {
                                                message += ' Please make sure the server is serving valid ' + 'JSON for this request.';
                                            }
                                            throw new Error(message);
                                        case 5:
                                            modelTopology = modelJSON.modelTopology;
                                            weightsManifest = modelJSON.weightsManifest;
                                            if (modelTopology == null && weightsManifest == null) {
                                                throw new Error("The JSON from HTTP path ".concat(this.path, " contains neither model ") + "topology or manifest for weights.");
                                            }
                                            return [2 /*return*/
                                                , getModelArtifactsForJSON(modelJSON, function (weightsManifest) {
                                                    return _this.loadWeights(weightsManifest);
                                                })];
                                    }
                                });
                            });
                        }
                            ;
                        HTTPRequest.prototype.loadWeights = function (weightsManifest) {
                            return __awaiter(this, void 0, void 0, function () {
                                var weightPath, _a, prefix, suffix, pathPrefix, weightSpecs, fetchURLs, urlPromises, weightsManifest_1, weightsManifest_1_1, weightsGroup, _b, _c, path, _d, _e, _f, _g, buffers;
                                var e_2, _h, e_3, _j;
                                return __generator(this, function (_k) {
                                    switch (_k.label) {
                                        case 0:
                                            weightPath = Array.isArray(this.path) ? this.path[1] : this.path;
                                            _a = __read(parseUrl(weightPath), 2),
                                                prefix = _a[0],
                                                suffix = _a[1];
                                            pathPrefix = this.weightPathPrefix || prefix;
                                            weightSpecs = getWeightSpecs(weightsManifest);
                                            fetchURLs = [];
                                            urlPromises = [];
                                            try {
                                                for (weightsManifest_1 = __values(weightsManifest),
                                                    weightsManifest_1_1 = weightsManifest_1.next(); !weightsManifest_1_1.done; weightsManifest_1_1 = weightsManifest_1.next()) {
                                                    weightsGroup = weightsManifest_1_1.value;
                                                    try {
                                                        for (_b = (e_3 = void 0,
                                                            __values(weightsGroup.paths)),
                                                            _c = _b.next(); !_c.done; _c = _b.next()) {
                                                            path = _c.value;
                                                            if (this.weightUrlConverter != null) {
                                                                urlPromises.push(this.weightUrlConverter(path));
                                                            } else {
                                                                fetchURLs.push(pathPrefix + path + suffix);
                                                            }
                                                        }
                                                    } catch (e_3_1) {
                                                        e_3 = {
                                                            error: e_3_1
                                                        };
                                                    } finally {
                                                        try {
                                                            if (_c && !_c.done && (_j = _b.return))
                                                                _j.call(_b);
                                                        } finally {
                                                            if (e_3)
                                                                throw e_3.error;
                                                        }
                                                    }
                                                }
                                            } catch (e_2_1) {
                                                e_2 = {
                                                    error: e_2_1
                                                };
                                            } finally {
                                                try {
                                                    if (weightsManifest_1_1 && !weightsManifest_1_1.done && (_h = weightsManifest_1.return))
                                                        _h.call(weightsManifest_1);
                                                } finally {
                                                    if (e_2)
                                                        throw e_2.error;
                                                }
                                            }
                                            if (!this.weightUrlConverter)
                                                return [3 /*break*/
                                                    , 2];
                                            _e = (_d = fetchURLs.push).apply;
                                            _f = [fetchURLs];
                                            _g = [[]];
                                            return [4 /*yield*/
                                                , Promise.all(urlPromises)];
                                        case 1:
                                            _e.apply(_d, _f.concat([__spreadArray.apply(void 0, _g.concat([__read.apply(void 0, [_k.sent()]), false]))]));
                                            _k.label = 2;
                                        case 2:
                                            return [4 /*yield*/
                                                , loadWeightsAsArrayBuffer(fetchURLs, {
                                                    requestInit: this.requestInit,
                                                    fetchFunc: this.fetch,
                                                    onProgress: this.onProgress
                                                })];
                                        case 3:
                                            buffers = _k.sent();
                                            return [2 /*return*/
                                                , [weightSpecs, concatenateArrayBuffers(buffers)]];
                                    }
                                });
                            });
                        }
                            ;
                        return HTTPRequest;
                    }();
                HTTPRequest.URL_SCHEME_REGEX = /^https?:\/\//;
                /**
 * Extract the prefix and suffix of the url, where the prefix is the path before
 * the last file, and suffix is the search params after the last file.
 * ```
 * const url = 'http://tfhub.dev/model/1/tensorflowjs_model.pb?tfjs-format=file'
 * [prefix, suffix] = parseUrl(url)
 * // prefix = 'http://tfhub.dev/model/1/'
 * // suffix = '?tfjs-format=file'
 * ```
 * @param url the model url to be parsed.
 */
                function parseUrl(url) {
                    var lastSlash = url.lastIndexOf('/');
                    var lastSearchParam = url.lastIndexOf('?');
                    var prefix = url.substring(0, lastSlash);
                    var suffix = lastSearchParam > lastSlash ? url.substring(lastSearchParam) : '';
                    return [prefix + '/', suffix];
                }
                function isHTTPScheme(url) {
                    return url.match(HTTPRequest.URL_SCHEME_REGEX) != null;
                }
                var httpRouter = function (url, loadOptions) {
                    if (typeof fetch === 'undefined' && (loadOptions == null || loadOptions.fetchFunc == null)) {
                        // `http` uses `fetch` or `node-fetch`, if one wants to use it in
                        // an environment that is not the browser or node they have to setup a
                        // global fetch polyfill.
                        return null;
                    } else {
                        var isHTTP = true;
                        if (Array.isArray(url)) {
                            isHTTP = url.every(function (urlItem) {
                                return isHTTPScheme(urlItem);
                            });
                        } else {
                            isHTTP = isHTTPScheme(url);
                        }
                        if (isHTTP) {
                            return http(url, loadOptions);
                        }
                    }
                    return null;
                };
                IORouterRegistry.registerSaveRouter(httpRouter);
                IORouterRegistry.registerLoadRouter(httpRouter);
                /**
 * Creates an IOHandler subtype that sends model artifacts to HTTP server.
 *
 * An HTTP request of the `multipart/form-data` mime type will be sent to the
 * `path` URL. The form data includes artifacts that represent the topology
 * and/or weights of the model. In the case of Keras-style `tf.Model`, two
 * blobs (files) exist in form-data:
 *   - A JSON file consisting of `modelTopology` and `weightsManifest`.
 *   - A binary weights file consisting of the concatenated weight values.
 * These files are in the same format as the one generated by
 * [tfjs_converter](https://js.tensorflow.org/tutorials/import-keras.html).
 *
 * The following code snippet exemplifies the client-side code that uses this
 * function:
 *
 * ```js
 * const model = tf.sequential();
 * model.add(
 *     tf.layers.dense({units: 1, inputShape: [100], activation: 'sigmoid'}));
 *
 * const saveResult = await model.save(tf.io.http(
 *     'http://model-server:5000/upload', {requestInit: {method: 'PUT'}}));
 * console.log(saveResult);
 * ```
 *
 * If the default `POST` method is to be used, without any custom parameters
 * such as headers, you can simply pass an HTTP or HTTPS URL to `model.save`:
 *
 * ```js
 * const saveResult = await model.save('http://model-server:5000/upload');
 * ```
 *
 * The following GitHub Gist
 * https://gist.github.com/dsmilkov/1b6046fd6132d7408d5257b0976f7864
 * implements a server based on [flask](https://github.com/pallets/flask) that
 * can receive the request. Upon receiving the model artifacts via the requst,
 * this particular server reconstitutes instances of [Keras
 * Models](https://keras.io/models/model/) in memory.
 *
 *
 * @param path A URL path to the model.
 *   Can be an absolute HTTP path (e.g.,
 *   'http://localhost:8000/model-upload)') or a relative path (e.g.,
 *   './model-upload').
 * @param requestInit Request configurations to be used when sending
 *    HTTP request to server using `fetch`. It can contain fields such as
 *    `method`, `credentials`, `headers`, `mode`, etc. See
 *    https://developer.mozilla.org/en-US/docs/Web/API/Request/Request
 *    for more information. `requestInit` must not have a body, because the
 * body will be set by TensorFlow.js. File blobs representing the model
 * topology (filename: 'model.json') and the weights of the model (filename:
 * 'model.weights.bin') will be appended to the body. If `requestInit` has a
 * `body`, an Error will be thrown.
 * @param loadOptions Optional configuration for the loading. It includes the
 *   following fields:
 *   - weightPathPrefix Optional, this specifies the path prefix for weight
 *     files, by default this is calculated from the path param.
 *   - fetchFunc Optional, custom `fetch` function. E.g., in Node.js,
 *     the `fetch` from node-fetch can be used here.
 *   - onProgress Optional, progress callback function, fired periodically
 *     before the load is completed.
 * @returns An instance of `IOHandler`.
 *
 * @doc {
 *   heading: 'Models',
 *   subheading: 'Loading',
 *   namespace: 'io',
 *   ignoreCI: true
 * }
 */
                function http(path, loadOptions) {
                    return new HTTPRequest(path, loadOptions);
                }
                /**
 * Deprecated. Use `tf.io.http`.
 * @param path
 * @param loadOptions
 */
                function browserHTTPRequest(path, loadOptions) {
                    return http(path, loadOptions);
                }
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                var PassthroughLoader = /** @class */
                    function () {
                        function PassthroughLoader(modelArtifacts) {
                            this.modelArtifacts = modelArtifacts;
                        }
                        PassthroughLoader.prototype.load = function () {
                            return this.modelArtifacts;
                        }
                            ;
                        return PassthroughLoader;
                    }();
                var PassthroughSaver = /** @class */
                    function () {
                        function PassthroughSaver(saveHandler) {
                            this.saveHandler = saveHandler;
                        }
                        PassthroughSaver.prototype.save = function (modelArtifacts) {
                            return this.saveHandler(modelArtifacts);
                        }
                            ;
                        return PassthroughSaver;
                    }();
                var PassthroughAsync = /** @class */
                    function () {
                        function PassthroughAsync(handler) {
                            if (handler.load) {
                                this.load = function () {
                                    return Promise.resolve(handler.load());
                                }
                                    ;
                            }
                            if (handler.save) {
                                this.save = function (modelArtifacts) {
                                    return Promise.resolve(handler.save(modelArtifacts));
                                }
                                    ;
                            }
                        }
                        return PassthroughAsync;
                    }();
                /**
 * Creates an IOHandler that loads model artifacts from memory.
 *
 * When used in conjunction with `tf.loadLayersModel`, an instance of
 * `tf.LayersModel` (Keras-style) can be constructed from the loaded artifacts.
 *
 * ```js
 * const model = await tf.loadLayersModel(tf.io.fromMemory(
 *     modelTopology, weightSpecs, weightData));
 * ```
 *
 * @param modelArtifacts a object containing model topology (i.e., parsed from
 *   the JSON format).
 * @param weightSpecs An array of `WeightsManifestEntry` objects describing the
 *   names, shapes, types, and quantization of the weight data. Optional.
 * @param weightData A single `ArrayBuffer` containing the weight data,
 *   concatenated in the order described by the weightSpecs. Optional.
 * @param trainingConfig Model training configuration. Optional.
 *
 * @returns A passthrough `IOHandler` that simply loads the provided data.
 */
                function fromMemory(modelArtifacts, weightSpecs, weightData, trainingConfig) {
                    var args = arguments;
                    return new PassthroughAsync(fromMemorySync.apply(void 0, __spreadArray([], __read(args), false)));
                }
                /**
 * Creates an IOHandler that loads model artifacts from memory.
 *
 * When used in conjunction with `tf.loadLayersModel`, an instance of
 * `tf.LayersModel` (Keras-style) can be constructed from the loaded artifacts.
 *
 * ```js
 * const model = await tf.loadLayersModel(tf.io.fromMemory(
 *     modelTopology, weightSpecs, weightData));
 * ```
 *
 * @param modelArtifacts a object containing model topology (i.e., parsed from
 *   the JSON format).
 * @param weightSpecs An array of `WeightsManifestEntry` objects describing the
 *   names, shapes, types, and quantization of the weight data. Optional.
 * @param weightData A single `ArrayBuffer` containing the weight data,
 *   concatenated in the order described by the weightSpecs. Optional.
 * @param trainingConfig Model training configuration. Optional.
 *
 * @returns A passthrough `IOHandlerSync` that simply loads the provided data.
 */
                function fromMemorySync(modelArtifacts, weightSpecs, weightData, trainingConfig) {
                    if (arguments.length === 1) {
                        var isModelArtifacts = modelArtifacts.modelTopology != null || modelArtifacts.weightSpecs != null;
                        if (isModelArtifacts) {
                            return new PassthroughLoader(modelArtifacts);
                        } else {
                            // Legacy support: with only modelTopology.
                            // TODO(cais): Remove this deprecated API.
                            console.warn('Please call tf.io.fromMemory() with only one argument. ' + 'The argument should be of type ModelArtifacts. ' + 'The multi-argument signature of tf.io.fromMemory() has been ' + 'deprecated and will be removed in a future release.');
                            return new PassthroughLoader({
                                modelTopology: modelArtifacts
                            });
                        }
                    } else {
                        // Legacy support.
                        // TODO(cais): Remove this deprecated API.
                        console.warn('Please call tf.io.fromMemory() with only one argument. ' + 'The argument should be of type ModelArtifacts. ' + 'The multi-argument signature of tf.io.fromMemory() has been ' + 'deprecated and will be removed in a future release.');
                        return new PassthroughLoader({
                            modelTopology: modelArtifacts,
                            weightSpecs: weightSpecs,
                            weightData: weightData,
                            trainingConfig: trainingConfig
                        });
                    }
                }
                /**
 * Creates an IOHandler that passes saved model artifacts to a callback.
 *
 * ```js
 * function handleSave(artifacts) {
 *   // ... do something with the artifacts ...
 *   return {modelArtifactsInfo: {...}, ...};
 * }
 *
 * const saveResult = model.save(tf.io.withSaveHandler(handleSave));
 * ```
 *
 * @param saveHandler A function that accepts a `ModelArtifacts` and returns a
 *     promise that resolves to a `SaveResult`.
 */
                function withSaveHandler(saveHandler) {
                    return new PassthroughSaver(saveHandler);
                }
                /**
 * Creates an IOHandlerSync that passes saved model artifacts to a callback.
 *
 * ```js
 * function handleSave(artifacts) {
 *   // ... do something with the artifacts ...
 *   return {modelArtifactsInfo: {...}, ...};
 * }
 *
 * const saveResult = model.save(tf.io.withSaveHandler(handleSave));
 * ```
 *
 * @param saveHandler A function that accepts a `ModelArtifacts` and returns a
 *     `SaveResult`.
 */
                function withSaveHandlerSync(saveHandler) {
                    return new PassthroughSaver(saveHandler);
                }
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                var io = {
                    __proto__: null,
                    browserFiles: browserFiles,
                    browserHTTPRequest: browserHTTPRequest,
                    concatenateArrayBuffers: concatenateArrayBuffers,
                    decodeWeights: decodeWeights,
                    encodeWeights: encodeWeights,
                    fromMemory: fromMemory,
                    fromMemorySync: fromMemorySync,
                    getLoadHandlers: getLoadHandlers,
                    getModelArtifactsForJSON: getModelArtifactsForJSON,
                    getModelArtifactsForJSONSync: getModelArtifactsForJSONSync,
                    getModelArtifactsInfoForJSON: getModelArtifactsInfoForJSON,
                    getSaveHandlers: getSaveHandlers,
                    getWeightSpecs: getWeightSpecs,
                    http: http,
                    isHTTPScheme: isHTTPScheme,
                    loadWeights: loadWeights,
                    registerLoadRouter: registerLoadRouter,
                    registerSaveRouter: registerSaveRouter,
                    weightsLoaderFactory: weightsLoaderFactory,
                    withSaveHandler: withSaveHandler,
                    withSaveHandlerSync: withSaveHandlerSync,
                    copyModel: copyModel,
                    listModels: listModels,
                    moveModel: moveModel,
                    removeModel: removeModel
                };
                /**
 * Computes the dot product of two matrices, A * B. These must be matrices.
 *
 * ```js
 * const a = tf.tensor2d([1, 2], [1, 2]);
 * const b = tf.tensor2d([1, 2, 3, 4], [2, 2]);
 *
 * a.matMul(b).print();  // or tf.matMul(a, b)
 * ```
 * @param a First matrix in dot product operation.
 * @param b Second matrix in dot product operation.
 * @param transposeA If true, `a` is transposed before multiplication.
 * @param transposeB If true, `b` is transposed before multiplication.
 *
 * @doc {heading: 'Operations', subheading: 'Matrices'}
 */
                function matMul_(a, b, transposeA, transposeB) {
                    var _a;
                    if (transposeA === void 0) {
                        transposeA = false;
                    }
                    if (transposeB === void 0) {
                        transposeB = false;
                    }
                    var $a = convertToTensor(a, 'a', 'matMul');
                    var $b = convertToTensor(b, 'b', 'matMul');
                    _a = __read(makeTypesMatch($a, $b), 2),
                        $a = _a[0],
                        $b = _a[1];
                    var inputs = {
                        a: $a,
                        b: $b
                    };
                    var attrs = {
                        transposeA: transposeA,
                        transposeB: transposeB
                    };
                    return ENGINE.runKernel(BatchMatMul, inputs, attrs);
                }
                var matMul$1 = op({
                    matMul_: matMul_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Creates a one-hot `tf.Tensor`. The locations represented by `indices` take
 * value `onValue` (defaults to 1), while all other locations take value
 * `offValue` (defaults to 0). If `indices` is rank `R`, the output has rank
 * `R+1` with the last axis of size `depth`.
 * `indices` used to encode prediction class must start from 0. For example,
 *  if you have 3 classes of data, class 1 should be encoded as 0, class 2
 *  should be 1, and class 3 should be 2.
 *
 * ```js
 * tf.oneHot(tf.tensor1d([0, 1], 'int32'), 3).print();
 * ```
 *
 * @param indices `tf.Tensor` of indices with dtype `int32`. Indices must
 * start from 0.
 * @param depth The depth of the one hot dimension.
 * @param onValue A number used to fill in the output when the index matches
 * the location.
 * @param offValue A number used to fill in the output when the index does
 *     not match the location.
 * @param dtype The dtype of the output tensor, default to 'int32'.
 *
 * @doc {heading: 'Tensors', subheading: 'Creation'}
 */
                function oneHot_(indices, depth, onValue, offValue, dtype) {
                    if (onValue === void 0) {
                        onValue = 1;
                    }
                    if (offValue === void 0) {
                        offValue = 0;
                    }
                    if (dtype === void 0) {
                        dtype = 'int32';
                    }
                    if (depth < 2) {
                        throw new Error("Error in oneHot: depth must be >=2, but it is ".concat(depth));
                    }
                    var $indices = convertToTensor(indices, 'indices', 'oneHot', 'int32');
                    var inputs = {
                        indices: $indices
                    };
                    var attrs = {
                        dtype: dtype,
                        depth: depth,
                        onValue: onValue,
                        offValue: offValue
                    };
                    return ENGINE.runKernel(OneHot, inputs, attrs);
                }
                var oneHot = op({
                    oneHot_: oneHot_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Enables production mode which disables correctness checks in favor of
 * performance.
 *
 * @doc {heading: 'Environment'}
 */
                function enableProdMode() {
                    env().set('PROD', true);
                }
                /**
 * Enables debug mode which will log information about all executed kernels:
 * the elapsed time of the kernel execution, as well as the rank, shape, and
 * size of the output tensor.
 *
 * Debug mode will significantly slow down your application as it will
 * download the result of every operation to the CPU. This should not be used in
 * production. Debug mode does not affect the timing information of the kernel
 * execution as we do not measure download time in the kernel execution time.
 *
 * See also: `tf.profile`, `tf.memory`.
 *
 * @doc {heading: 'Environment'}
 */
                function enableDebugMode() {
                    env().set('DEBUG', true);
                }
                /** Globally disables deprecation warnings */
                function disableDeprecationWarnings() {
                    env().set('DEPRECATION_WARNINGS_ENABLED', false);
                    console.warn("TensorFlow.js deprecation warnings have been disabled.");
                }
                /** Warn users about deprecated functionality. */
                function deprecationWarn(msg) {
                    if (env().getBool('DEPRECATION_WARNINGS_ENABLED')) {
                        console.warn(msg + ' You can disable deprecation warnings with ' + 'tf.disableDeprecationWarnings().');
                    }
                }
                /**
 * Dispose all variables kept in backend engine.
 *
 * @doc {heading: 'Environment'}
 */
                function disposeVariables() {
                    ENGINE.disposeVariables();
                }
                /**
 * It returns the global engine that keeps track of all tensors and backends.
 *
 * @doc {heading: 'Environment'}
 */
                function engine() {
                    return ENGINE;
                }
                /**
 * Returns memory info at the current time in the program. The result is an
 * object with the following properties:
 *
 * - `numBytes`: Number of bytes allocated (undisposed) at this time.
 * - `numTensors`: Number of unique tensors allocated.
 * - `numDataBuffers`: Number of unique data buffers allocated
 *   (undisposed) at this time, which is ≤ the number of tensors
 *   (e.g. `a.reshape(newShape)` makes a new Tensor that shares the same
 *   data buffer with `a`).
 * - `unreliable`: True if the memory usage is unreliable. See `reasons` when
 *    `unreliable` is true.
 * - `reasons`: `string[]`, reasons why the memory is unreliable, present if
 *    `unreliable` is true.
 *
 * WebGL Properties:
 * - `numBytesInGPU`: Number of bytes allocated (undisposed) in the GPU only at
 *     this time.
 *
 * @doc {heading: 'Performance', subheading: 'Memory'}
 */
                function memory() {
                    return ENGINE.memory();
                }
                /**
 * Executes the provided function `f()` and returns a promise that resolves
 * with information about the function's memory use:
 * - `newBytes`: the number of new bytes allocated
 * - `newTensors`: the number of new tensors created
 * - `peakBytes`: the peak number of bytes allocated
 * - `kernels`: an array of objects for each kernel involved that reports
 * their input and output shapes, number of bytes used, and number of new
 * tensors created.
 * - `kernelNames`: an array of unique strings with just the names of the
 * kernels in the `kernels` array.
 *
 * ```js
 * const profile = await tf.profile(() => {
 *   const x = tf.tensor1d([1, 2, 3]);
 *   let x2 = x.square();
 *   x2.dispose();
 *   x2 = x.square();
 *   x2.dispose();
 *   return x;
 * });
 *
 * console.log(`newBytes: ${profile.newBytes}`);
 * console.log(`newTensors: ${profile.newTensors}`);
 * console.log(`byte usage over all kernels: ${profile.kernels.map(k =>
 * k.totalBytesSnapshot)}`);
 * ```
 *
 *
 * @doc {heading: 'Performance', subheading: 'Profile'}
 */
                function profile(f) {
                    return ENGINE.profile(f);
                }
                /**
 * Executes the provided function `fn` and after it is executed, cleans up all
 * intermediate tensors allocated by `fn` except those returned by `fn`.
 * `fn` must not return a Promise (async functions not allowed). The returned
 * result can be a complex object.
 *
 * Using this method helps avoid memory leaks. In general, wrap calls to
 * operations in `tf.tidy` for automatic memory cleanup.
 *
 * NOTE: Variables do *not* get cleaned up when inside a tidy(). If you want to
 * dispose variables, please use `tf.disposeVariables` or call dispose()
 * directly on variables.
 *
 * ```js
 * // y = 2 ^ 2 + 1
 * const y = tf.tidy(() => {
 *   // a, b, and one will be cleaned up when the tidy ends.
 *   const one = tf.scalar(1);
 *   const a = tf.scalar(2);
 *   const b = a.square();
 *
 *   console.log('numTensors (in tidy): ' + tf.memory().numTensors);
 *
 *   // The value returned inside the tidy function will return
 *   // through the tidy, in this case to the variable y.
 *   return b.add(one);
 * });
 *
 * console.log('numTensors (outside tidy): ' + tf.memory().numTensors);
 * y.print();
 * ```
 *
 * @param nameOrFn The name of the closure, or the function to execute.
 *     If a name is provided, the 2nd argument should be the function.
 *     If debug mode is on, the timing and the memory usage of the function
 *     will be tracked and displayed on the console using the provided name.
 * @param fn The function to execute.
 *
 * @doc {heading: 'Performance', subheading: 'Memory'}
 */
                function tidy(nameOrFn, fn) {
                    return ENGINE.tidy(nameOrFn, fn);
                }
                /**
 * Disposes any `tf.Tensor`s found within the provided object.
 *
 * @param container an object that may be a `tf.Tensor` or may directly
 *     contain `tf.Tensor`s, such as a `Tensor[]` or `{key: Tensor, ...}`. If
 *     the object is not a `tf.Tensor` or does not contain `Tensors`, nothing
 *     happens. In general it is safe to pass any object here, except that
 *     `Promise`s are not supported.
 *
 * @doc {heading: 'Performance', subheading: 'Memory'}
 */
                function dispose(container) {
                    var tensors = getTensorsInContainer(container);
                    tensors.forEach(function (tensor) {
                        return tensor.dispose();
                    });
                }
                /**
 * Keeps a `tf.Tensor` generated inside a `tf.tidy` from being disposed
 * automatically.
 *
 * ```js
 * let b;
 * const y = tf.tidy(() => {
 *   const one = tf.scalar(1);
 *   const a = tf.scalar(2);
 *
 *   // b will not be cleaned up by the tidy. a and one will be cleaned up
 *   // when the tidy ends.
 *   b = tf.keep(a.square());
 *
 *   console.log('numTensors (in tidy): ' + tf.memory().numTensors);
 *
 *   // The value returned inside the tidy function will return
 *   // through the tidy, in this case to the variable y.
 *   return b.add(one);
 * });
 *
 * console.log('numTensors (outside tidy): ' + tf.memory().numTensors);
 * console.log('y:');
 * y.print();
 * console.log('b:');
 * b.print();
 * ```
 *
 * @param result The tensor to keep from being disposed.
 *
 * @doc {heading: 'Performance', subheading: 'Memory'}
 */
                function keep(result) {
                    return ENGINE.keep(result);
                }
                /**
 * Executes `f()` and returns a promise that resolves with timing
 * information.
 *
 * The result is an object with the following properties:
 *
 * - `wallMs`: Wall execution time.
 * - `kernelMs`: Kernel execution time, ignoring data transfer. If using the
 * WebGL backend and the query timer extension is not available, this will
 * return an error object.
 * - On `WebGL` The following additional properties exist:
 *   - `uploadWaitMs`: CPU blocking time on texture uploads.
 *   - `downloadWaitMs`: CPU blocking time on texture downloads (readPixels).
 *
 * ```js
 * const x = tf.randomNormal([20, 20]);
 * const time = await tf.time(() => x.matMul(x));
 *
 * console.log(`kernelMs: ${time.kernelMs}, wallTimeMs: ${time.wallMs}`);
 * ```
 *
 * @param f The function to execute and time.
 *
 * @doc {heading: 'Performance', subheading: 'Timing'}
 */
                function time(f) {
                    return ENGINE.time(f);
                }
                /**
 * Sets the backend (cpu, webgl, wasm, etc) responsible for creating tensors and
 * executing operations on those tensors. Returns a promise that resolves
 * to a boolean if the backend initialization was successful.
 *
 * Note this disposes the current backend, if any, as well as any tensors
 * associated with it. A new backend is initialized, even if it is of the
 * same type as the previous one.
 *
 * @param backendName The name of the backend. Currently supports
 *     `'webgl'|'cpu'` in the browser, `'tensorflow'` under node.js
 *     (requires tfjs-node), and `'wasm'` (requires tfjs-backend-wasm).
 *
 * @doc {heading: 'Backends'}
 */
                function setBackend(backendName) {
                    return ENGINE.setBackend(backendName);
                }
                /**
 * Returns a promise that resolves when the currently selected backend (or the
 * highest priority one) has initialized. Await this promise when you are using
 * a backend that has async initialization.
 *
 * @doc {heading: 'Backends'}
 */
                function ready() {
                    return ENGINE.ready();
                }
                /**
 * Returns the current backend name (cpu, webgl, etc). The backend is
 * responsible for creating tensors and executing operations on those tensors.
 *
 * @doc {heading: 'Backends'}
 */
                function getBackend() {
                    return ENGINE.backendName;
                }
                /**
 * Removes a backend and the registered factory.
 *
 * @doc {heading: 'Backends'}
 */
                function removeBackend(name) {
                    ENGINE.removeBackend(name);
                }
                /**
 * Finds the backend registered under the provided name. Returns null if the
 * name is not in the registry, or the registration hasn't finished yet.
 */
                function findBackend(name) {
                    return ENGINE.findBackend(name);
                }
                /**
 * Finds the backend factory registered under the provided name. Returns a
 * function that produces a new backend when called. Returns null if the name
 * is not in the registry.
 */
                function findBackendFactory(name) {
                    return ENGINE.findBackendFactory(name);
                }
                /**
 * Registers a global backend. The registration should happen when importing
 * a module file (e.g. when importing `backend_webgl.ts`), and is used for
 * modular builds (e.g. custom tfjs bundle with only webgl support).
 *
 * @param factory The backend factory function. When called, it should
 * return a backend instance, or a promise of an instance.
 * @param priority The priority of the backend (higher = more important).
 *     In case multiple backends are registered, the priority is used to find
 *     the best backend. Defaults to 1.
 * @return False if there is already a registered backend under this name, true
 *     if not.
 *
 * @doc {heading: 'Backends'}
 */
                function registerBackend(name, factory, priority) {
                    if (priority === void 0) {
                        priority = 1;
                    }
                    return ENGINE.registerBackend(name, factory, priority);
                }
                /**
 * Gets the current backend. If no backends have been initialized, this will
 * attempt to initialize the best backend. Will throw an error if the highest
 * priority backend has async initialization, in which case you should call
 * 'await tf.ready()' before running other code.
 *
 * @doc {heading: 'Backends'}
 */
                function backend() {
                    return ENGINE.backend;
                }
                /**
 * Sets the global platform.
 *
 * @param platformName The name of this platform.
 * @param platform A platform implementation.
 */
                function setPlatform(platformName, platform) {
                    env().setPlatform(platformName, platform);
                }
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Returns the imaginary part of a complex (or real) tensor.
 *
 * Given a tensor input, this operation returns a tensor of type float that is
 * the imaginary part of each element in input considered as a complex number.
 * If input is real, a tensor of all zeros is returned.
 *
 * ```js
 * const x = tf.complex([-2.25, 3.25], [4.75, 5.75]);
 * tf.imag(x).print();
 * ```
 *
 * @doc {heading: 'Tensors', subheading: 'Creation'}
 */
                function imag_(input) {
                    var $input = convertToTensor(input, 'input', 'imag');
                    var inputs = {
                        input: $input
                    };
                    return ENGINE.runKernel(Imag, inputs);
                }
                var imag = op({
                    imag_: imag_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes `-1 * x` element-wise.
 *
 * ```js
 * const x = tf.tensor2d([1, 2, -2, 0], [2, 2]);
 *
 * x.neg().print();  // or tf.neg(x)
 * ```
 *
 * @param x The input tensor.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function neg_(x) {
                    var $x = convertToTensor(x, 'x', 'neg');
                    var inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(Neg, inputs);
                }
                var neg = op({
                    neg_: neg_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Returns the real part of a complex (or real) tensor.
 *
 * Given a tensor input, this operation returns a tensor of type float that is
 * the real part of each element in input considered as a complex number.
 *
 * If the input is real, it simply makes a clone.
 *
 * ```js
 * const x = tf.complex([-2.25, 3.25], [4.75, 5.75]);
 * tf.real(x).print();
 * ```
 *
 * @doc {heading: 'Tensors', subheading: 'Creation'}
 */
                function real_(input) {
                    var $input = convertToTensor(input, 'input', 'real');
                    var inputs = {
                        input: $input
                    };
                    return ENGINE.runKernel(Real, inputs);
                }
                var real = op({
                    real_: real_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Transposes the `tf.Tensor`. Permutes the dimensions according to `perm`.
 *
 * The returned `tf.Tensor`'s dimension `i` will correspond to the input
 * dimension `perm[i]`. If `perm` is not given, it is set to `[n-1...0]`,
 * where `n` is the rank of the input `tf.Tensor`. Hence by default, this
 * operation performs a regular matrix transpose on 2-D input `tf.Tensor`s.
 *
 * ```js
 * const a = tf.tensor2d([1, 2, 3, 4, 5, 6], [2, 3]);
 *
 * a.transpose().print();  // or tf.transpose(a)
 * ```
 *
 * @param x The tensor to transpose.
 * @param perm The permutation of the dimensions of a.
 * @param conjugate Will conjugate complex input if true.
 *
 * @doc {heading: 'Operations', subheading: 'Matrices'}
 */
                function transpose_(x, perm, conjugate) {
                    var $x = convertToTensor(x, 'x', 'transpose');
                    if (perm == null) {
                        perm = $x.shape.map(function (s, i) {
                            return i;
                        }).reverse();
                    }
                    assert($x.rank === perm.length, function () {
                        return "Error in transpose: rank of input ".concat($x.rank, " ") + "must match length of perm ".concat(perm, ".");
                    });
                    perm.forEach(function (axis) {
                        assert(axis >= 0 && axis < $x.rank, function () {
                            return "All entries in 'perm' must be between 0 and ".concat($x.rank - 1) + " but got ".concat(perm);
                        });
                    });
                    if ($x.rank <= 1) {
                        return $x.clone();
                    }
                    var inputs = {
                        x: $x
                    };
                    var attrs = {
                        perm: perm
                    };
                    if ($x.dtype === 'complex64') {
                        return tidy(function () {
                            var $real = real($x);
                            var $imag = imag($x);
                            $real = ENGINE.runKernel(Transpose, {
                                x: $real
                            }, attrs);
                            $imag = ENGINE.runKernel(Transpose, {
                                x: $imag
                            }, attrs);
                            if (conjugate) {
                                $imag = neg($imag);
                            }
                            return complex($real, $imag);
                        });
                    }
                    return ENGINE.runKernel(Transpose, inputs, attrs);
                }
                var transpose = op({
                    transpose_: transpose_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the confusion matrix from true labels and predicted labels.
 *
 * ```js
 * const labels = tf.tensor1d([0, 1, 2, 1, 0], 'int32');
 * const predictions = tf.tensor1d([0, 2, 2, 1, 0], 'int32');
 * const numClasses = 3;
 * const out = tf.math.confusionMatrix(labels, predictions, numClasses);
 * out.print();
 * // Expected output matrix:
 * // [[2, 0, 0],
 * //  [0, 1, 1],
 * //  [0, 0, 1]]
 * ```
 *
 * @param labels The target labels, assumed to be 0-based integers
 *   for the classes. The shape is `[numExamples]`, where
 *   `numExamples` is the number of examples included.
 * @param predictions The predicted classes, assumed to be
 *   0-based integers for the classes. Must have the same shape as `labels`.
 * @param numClasses Number of all classes, as an integer.
 *   Its value must be larger than the largest element in `labels` and
 *   `predictions`.
 * @returns The confusion matrix as a int32-type 2D tensor. The value at
 *   row `r` and column `c` is the number of times examples of actual class
 *   `r` were predicted as class `c`.
 *
 * @doc {heading: 'Operations', subheading: 'Evaluation'}
 */
                function confusionMatrix_(labels, predictions, numClasses) {
                    var $labels = convertToTensor(labels, 'labels', 'confusionMatrix');
                    var $predictions = convertToTensor(predictions, 'predictions', 'confusionMatrix');
                    assert(numClasses == null || numClasses > 0 && Number.isInteger(numClasses), function () {
                        return "If provided, numClasses must be a positive integer, " + "but got ".concat(numClasses);
                    });
                    assert($labels.rank === 1, function () {
                        return "Expected the rank of labels to be 1, but got ".concat($labels.rank);
                    });
                    assert($predictions.rank === 1, function () {
                        return "Expected the rank of predictions to be 1, " + "but got ".concat($predictions.rank);
                    });
                    assert($labels.shape[0] === $predictions.shape[0], function () {
                        return "Mismatch in the number of examples: " + "".concat($labels.shape[0], " vs. ").concat($predictions.shape[0], ". ") + "Labels and predictions should have the same number of elements.";
                    });
                    assert(numClasses > 0 && Number.isInteger(numClasses), function () {
                        return "numClasses is required to be a positive integer, but got " + "".concat(numClasses);
                    });
                    // TODO(cais): In the future, if oneHot supports tensors inputs for
                    //   `numClasses`, `confusionMatrix` can make `numClasses` optional.
                    var oneHotLabels = oneHot(cast($labels, 'int32'), numClasses);
                    var oneHotPredictions = oneHot(cast($predictions, 'int32'), numClasses);
                    var oneHotLabelsT = transpose(oneHotLabels);
                    var product = matMul$1(oneHotLabelsT, oneHotPredictions);
                    return cast(product, 'int32');
                }
                var confusionMatrix = op({
                    confusionMatrix_: confusionMatrix_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                var math = {
                    __proto__: null,
                    confusionMatrix: confusionMatrix
                };
                /**
 * @license
 * Copyright 2017 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Returns the dimensions in the input shape that are broadcasted to
 * produce the provided output shape.
 *
 * The returned dimensions are 0-indexed and sorted. An example:
 * inShape = [4, 1, 3]
 * outShape = [5, 4, 3, 3]
 * result = [1]. Dimension 1 (2nd dimension of input) gets broadcasted 1 => 3.
 */
                function getBroadcastDims(inShape, outShape) {
                    var inRank = inShape.length;
                    var dims = [];
                    for (var i = 0; i < inRank; i++) {
                        var dim = inRank - 1 - i;
                        var a = inShape[dim] || 1;
                        var b = outShape[outShape.length - 1 - i] || 1;
                        if (b > 1 && a === 1) {
                            dims.unshift(dim);
                        }
                    }
                    return dims;
                }
                /**
 * Returns the axes in the output space that should be reduced to produce
 * the input space.
 */
                function getReductionAxes(inShape, outShape) {
                    var result = [];
                    for (var i = 0; i < outShape.length; i++) {
                        var inDim = inShape[inShape.length - i - 1];
                        var outAxis = outShape.length - i - 1;
                        var outDim = outShape[outAxis];
                        if (inDim == null || inDim === 1 && outDim > 1) {
                            result.unshift(outAxis);
                        }
                    }
                    return result;
                }
                function assertAndGetBroadcastShape(shapeA, shapeB) {
                    var result = [];
                    var l = Math.max(shapeA.length, shapeB.length);
                    for (var i = 0; i < l; i++) {
                        var a = shapeA[shapeA.length - i - 1];
                        if (a == null) {
                            a = 1;
                        }
                        var b = shapeB[shapeB.length - i - 1];
                        if (b == null) {
                            b = 1;
                        }
                        if (a === 1) {
                            result.unshift(b);
                        } else if (b === 1) {
                            result.unshift(a);
                        } else if (a !== b) {
                            var errMsg = "Operands could not be broadcast together with shapes " + "".concat(shapeA, " and ").concat(shapeB, ".");
                            throw Error(errMsg);
                        } else {
                            result.unshift(a);
                        }
                    }
                    return result;
                }
                var broadcast_util = {
                    __proto__: null,
                    getBroadcastDims: getBroadcastDims,
                    getReductionAxes: getReductionAxes,
                    assertAndGetBroadcastShape: assertAndGetBroadcastShape
                };
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Creates rank-3 `tf.Tensor` with the provided values, shape and dtype.
 *
 * The same functionality can be achieved with `tf.tensor`, but in general
 * we recommend using `tf.tensor3d` as it makes the code more readable.
 *
 *  ```js
 * // Pass a nested array.
 * tf.tensor3d([[[1], [2]], [[3], [4]]]).print();
 * ```
 * ```js
 * // Pass a flat array and specify a shape.
 * tf.tensor3d([1, 2, 3, 4], [2, 2, 1]).print();
 * ```
 *
 * @param values The values of the tensor. Can be nested array of numbers,
 *     or a flat array, or a `TypedArray`.
 * @param shape The shape of the tensor. If not provided,  it is inferred from
 *     `values`.
 * @param dtype The data type.
 *
 * @doc {heading: 'Tensors', subheading: 'Creation'}
 */
                function tensor3d(values, shape, dtype) {
                    assertNonNull(values);
                    if (shape != null && shape.length !== 3) {
                        throw new Error('tensor3d() requires shape to have three numbers');
                    }
                    var inferredShape = inferShape(values, dtype);
                    if (inferredShape.length !== 3 && inferredShape.length !== 1) {
                        throw new Error('tensor3d() requires values to be number[][][] or flat/TypedArray');
                    }
                    if (inferredShape.length === 1 && shape == null) {
                        throw new Error('tensor3d() requires shape to be provided when `values` ' + 'are a flat array');
                    }
                    return makeTensor(values, shape, inferredShape, dtype);
                }
                var fromPixels2DContext;
                /**
 * Creates a `tf.Tensor` from an image.
 *
 * ```js
 * const image = new ImageData(1, 1);
 * image.data[0] = 100;
 * image.data[1] = 150;
 * image.data[2] = 200;
 * image.data[3] = 255;
 *
 * tf.browser.fromPixels(image).print();
 * ```
 *
 * @param pixels The input image to construct the tensor from. The
 * supported image types are all 4-channel. You can also pass in an image
 * object with following attributes:
 * `{data: Uint8Array; width: number; height: number}`
 * @param numChannels The number of channels of the output tensor. A
 * numChannels value less than 4 allows you to ignore channels. Defaults to
 * 3 (ignores alpha channel of input image).
 *
 * @returns A Tensor3D with the shape `[height, width, numChannels]`.
 *
 * Note: fromPixels can be lossy in some cases, same image may result in
 * slightly different tensor values, if rendered by different rendering
 * engines. This means that results from different browsers, or even same
 * browser with CPU and GPU rendering engines can be different. See discussion
 * in details:
 * https://github.com/tensorflow/tfjs/issues/5482
 *
 * @doc {heading: 'Browser', namespace: 'browser', ignoreCI: true}
 */
                function fromPixels_(pixels, numChannels) {
                    if (numChannels === void 0) {
                        numChannels = 3;
                    }
                    // Sanity checks.
                    if (numChannels > 4) {
                        throw new Error('Cannot construct Tensor with more than 4 channels from pixels.');
                    }
                    if (pixels == null) {
                        throw new Error('pixels passed to tf.browser.fromPixels() can not be null');
                    }
                    var isPixelData = false;
                    var isImageData = false;
                    var isVideo = false;
                    var isImage = false;
                    var isCanvasLike = false;
                    var isImageBitmap = false;
                    if (pixels.data instanceof Uint8Array) {
                        isPixelData = true;
                    } else if (typeof ImageData !== 'undefined' && pixels instanceof ImageData) {
                        isImageData = true;
                    } else if (typeof HTMLVideoElement !== 'undefined' && pixels instanceof HTMLVideoElement) {
                        isVideo = true;
                    } else if (typeof HTMLImageElement !== 'undefined' && pixels instanceof HTMLImageElement) {
                        isImage = true;
                        // tslint:disable-next-line: no-any
                    } else if (pixels.getContext != null) {
                        isCanvasLike = true;
                    } else if (typeof ImageBitmap !== 'undefined' && pixels instanceof ImageBitmap) {
                        isImageBitmap = true;
                    } else {
                        throw new Error('pixels passed to tf.browser.fromPixels() must be either an ' + "HTMLVideoElement, HTMLImageElement, HTMLCanvasElement, ImageData " + "in browser, or OffscreenCanvas, ImageData in webworker" + " or {data: Uint32Array, width: number, height: number}, " + "but was ".concat(pixels.constructor.name));
                    }
                    // If the current backend has 'FromPixels' registered, it has a more
                    // efficient way of handling pixel uploads, so we call that.
                    var kernel = getKernel(FromPixels, ENGINE.backendName);
                    if (kernel != null) {
                        var inputs = {
                            pixels: pixels
                        };
                        var attrs = {
                            numChannels: numChannels
                        };
                        return ENGINE.runKernel(FromPixels, inputs, attrs);
                    }
                    var _a = __read(isVideo ? [pixels.videoWidth, pixels.videoHeight] : [pixels.width, pixels.height], 2)
                        , width = _a[0]
                        , height = _a[1];
                    var vals;
                    if (isCanvasLike) {
                        vals = // tslint:disable-next-line:no-any
                            pixels.getContext('2d').getImageData(0, 0, width, height).data;
                    } else if (isImageData || isPixelData) {
                        vals = pixels.data;
                    } else if (isImage || isVideo || isImageBitmap) {
                        if (fromPixels2DContext == null) {
                            if (typeof document === 'undefined') {
                                if (typeof OffscreenCanvas !== 'undefined' && typeof OffscreenCanvasRenderingContext2D !== 'undefined') {
                                    // @ts-ignore
                                    fromPixels2DContext = new OffscreenCanvas(1, 1).getContext('2d');
                                } else {
                                    throw new Error('Cannot parse input in current context. ' + 'Reason: OffscreenCanvas Context2D rendering is not supported.');
                                }
                            } else {
                                fromPixels2DContext = document.createElement('canvas').getContext('2d', {
                                    willReadFrequently: true
                                });
                            }
                        }
                        fromPixels2DContext.canvas.width = width;
                        fromPixels2DContext.canvas.height = height;
                        fromPixels2DContext.drawImage(pixels, 0, 0, width, height);
                        vals = fromPixels2DContext.getImageData(0, 0, width, height).data;
                    }
                    var values;
                    if (numChannels === 4) {
                        values = new Int32Array(vals);
                    } else {
                        var numPixels = width * height;
                        values = new Int32Array(numPixels * numChannels);
                        for (var i = 0; i < numPixels; i++) {
                            for (var channel = 0; channel < numChannels; ++channel) {
                                values[i * numChannels + channel] = vals[i * 4 + channel];
                            }
                        }
                    }
                    var outShape = [height, width, numChannels];
                    return tensor3d(values, outShape, 'int32');
                }
                // Helper functions for |fromPixelsAsync| to check whether the input can
                // be wrapped into imageBitmap.
                function isPixelData(pixels) {
                    return pixels != null && pixels.data instanceof Uint8Array;
                }
                function isImageBitmapFullySupported() {
                    return typeof window !== 'undefined' && typeof ImageBitmap !== 'undefined' && window.hasOwnProperty('createImageBitmap');
                }
                function isNonEmptyPixels(pixels) {
                    return pixels != null && pixels.width !== 0 && pixels.height !== 0;
                }
                function canWrapPixelsToImageBitmap(pixels) {
                    return isImageBitmapFullySupported() && !(pixels instanceof ImageBitmap) && isNonEmptyPixels(pixels) && !isPixelData(pixels);
                }
                /**
 * Creates a `tf.Tensor` from an image in async way.
 *
 * ```js
 * const image = new ImageData(1, 1);
 * image.data[0] = 100;
 * image.data[1] = 150;
 * image.data[2] = 200;
 * image.data[3] = 255;
 *
 * (await tf.browser.fromPixelsAsync(image)).print();
 * ```
 * This API is the async version of fromPixels. The API will first
 * check |WRAP_TO_IMAGEBITMAP| flag, and try to wrap the input to
 * imageBitmap if the flag is set to true.
 *
 * @param pixels The input image to construct the tensor from. The
 * supported image types are all 4-channel. You can also pass in an image
 * object with following attributes:
 * `{data: Uint8Array; width: number; height: number}`
 * @param numChannels The number of channels of the output tensor. A
 * numChannels value less than 4 allows you to ignore channels. Defaults to
 * 3 (ignores alpha channel of input image).
 *
 * @doc {heading: 'Browser', namespace: 'browser', ignoreCI: true}
 */
                function fromPixelsAsync(pixels, numChannels) {
                    if (numChannels === void 0) {
                        numChannels = 3;
                    }
                    return __awaiter(this, void 0, void 0, function () {
                        var inputs, imageBitmap;
                        return __generator(this, function (_a) {
                            switch (_a.label) {
                                case 0:
                                    inputs = null;
                                    if (!(env().getBool('WRAP_TO_IMAGEBITMAP') && canWrapPixelsToImageBitmap(pixels)))
                                        return [3 /*break*/
                                            , 5];
                                    imageBitmap = void 0;
                                    _a.label = 1;
                                case 1:
                                    _a.trys.push([1, 3, , 4]);
                                    return [4 /*yield*/
                                        , createImageBitmap(pixels, {
                                            premultiplyAlpha: 'none'
                                        })];
                                case 2:
                                    // wrap in try-catch block, because createImageBitmap may not work
                                    // properly in some browsers, e.g.
                                    // https://bugzilla.mozilla.org/show_bug.cgi?id=1335594
                                    // tslint:disable-next-line: no-any
                                    imageBitmap = _a.sent();
                                    return [3 /*break*/
                                        , 4];
                                case 3:
                                    _a.sent();
                                    imageBitmap = null;
                                    return [3 /*break*/
                                        , 4];
                                case 4:
                                    // createImageBitmap will clip the source size.
                                    // In some cases, the input will have larger size than its content.
                                    // E.g. new Image(10, 10) but with 1 x 1 content. Using
                                    // createImageBitmap will clip the size from 10 x 10 to 1 x 1, which
                                    // is not correct. We should avoid wrapping such resouce to
                                    // imageBitmap.
                                    if (imageBitmap != null && imageBitmap.width === pixels.width && imageBitmap.height === pixels.height) {
                                        inputs = imageBitmap;
                                    } else {
                                        inputs = pixels;
                                    }
                                    return [3 /*break*/
                                        , 6];
                                case 5:
                                    inputs = pixels;
                                    _a.label = 6;
                                case 6:
                                    return [2 /*return*/
                                        , fromPixels_(inputs, numChannels)];
                            }
                        });
                    });
                }
                /**
 * Draws a `tf.Tensor` of pixel values to a byte array or optionally a
 * canvas.
 *
 * When the dtype of the input is 'float32', we assume values in the range
 * [0-1]. Otherwise, when input is 'int32', we assume values in the range
 * [0-255].
 *
 * Returns a promise that resolves when the canvas has been drawn to.
 *
 * @param img A rank-2 tensor with shape `[height, width]`, or a rank-3 tensor
 * of shape `[height, width, numChannels]`. If rank-2, draws grayscale. If
 * rank-3, must have depth of 1, 3 or 4. When depth of 1, draws
 * grayscale. When depth of 3, we draw with the first three components of
 * the depth dimension corresponding to r, g, b and alpha = 1. When depth of
 * 4, all four components of the depth dimension correspond to r, g, b, a.
 * @param canvas The canvas to draw to.
 *
 * @doc {heading: 'Browser', namespace: 'browser'}
 */
                function toPixels(img, canvas) {
                    return __awaiter(this, void 0, void 0, function () {
                        var $img, originalImgTensor, _a, height, width, depth, data, multiplier, bytes, i, rgba, d, value, j, ctx, imageData;
                        return __generator(this, function (_b) {
                            switch (_b.label) {
                                case 0:
                                    $img = convertToTensor(img, 'img', 'toPixels');
                                    if (!(img instanceof Tensor)) {
                                        originalImgTensor = $img;
                                        $img = cast(originalImgTensor, 'int32');
                                        originalImgTensor.dispose();
                                    }
                                    if ($img.rank !== 2 && $img.rank !== 3) {
                                        throw new Error("toPixels only supports rank 2 or 3 tensors, got rank ".concat($img.rank, "."));
                                    }
                                    _a = __read($img.shape.slice(0, 2), 2),
                                        height = _a[0],
                                        width = _a[1];
                                    depth = $img.rank === 2 ? 1 : $img.shape[2];
                                    if (depth > 4 || depth === 2) {
                                        throw new Error("toPixels only supports depth of size " + "1, 3 or 4 but got ".concat(depth));
                                    }
                                    if ($img.dtype !== 'float32' && $img.dtype !== 'int32') {
                                        throw new Error("Unsupported type for toPixels: ".concat($img.dtype, ".") + " Please use float32 or int32 tensors.");
                                    }
                                    return [4 /*yield*/
                                        , $img.data()];
                                case 1:
                                    data = _b.sent();
                                    multiplier = $img.dtype === 'float32' ? 255 : 1;
                                    bytes = new Uint8ClampedArray(width * height * 4);
                                    for (i = 0; i < height * width; ++i) {
                                        rgba = [0, 0, 0, 255];
                                        for (d = 0; d < depth; d++) {
                                            value = data[i * depth + d];
                                            if ($img.dtype === 'float32') {
                                                if (value < 0 || value > 1) {
                                                    throw new Error("Tensor values for a float32 Tensor must be in the " + "range [0 - 1] but encountered ".concat(value, "."));
                                                }
                                            } else if ($img.dtype === 'int32') {
                                                if (value < 0 || value > 255) {
                                                    throw new Error("Tensor values for a int32 Tensor must be in the " + "range [0 - 255] but encountered ".concat(value, "."));
                                                }
                                            }
                                            if (depth === 1) {
                                                rgba[0] = value * multiplier;
                                                rgba[1] = value * multiplier;
                                                rgba[2] = value * multiplier;
                                            } else {
                                                rgba[d] = value * multiplier;
                                            }
                                        }
                                        j = i * 4;
                                        bytes[j + 0] = Math.round(rgba[0]);
                                        bytes[j + 1] = Math.round(rgba[1]);
                                        bytes[j + 2] = Math.round(rgba[2]);
                                        bytes[j + 3] = Math.round(rgba[3]);
                                    }
                                    if (canvas != null) {
                                        canvas.width = width;
                                        canvas.height = height;
                                        ctx = canvas.getContext('2d');
                                        imageData = new ImageData(bytes, width, height);
                                        ctx.putImageData(imageData, 0, 0);
                                    }
                                    if ($img !== img) {
                                        $img.dispose();
                                    }
                                    return [2 /*return*/
                                        , bytes];
                            }
                        });
                    });
                }
                var fromPixels = op({
                    fromPixels_: fromPixels_
                });
                var browser = {
                    __proto__: null,
                    fromPixelsAsync: fromPixelsAsync,
                    toPixels: toPixels,
                    fromPixels: fromPixels
                };
                /**
 * Validate gather nd inputs.
 *
 * @param tensor The tensor contains the source values.
 * @param indices The tensor contains the indices to slice the source.
 *
 * @returns [resultShape, numUpdates, sliceSize, strides]
 */
                function prepareAndValidate(tensor, indices) {
                    var tensorRank = tensor.shape.length;
                    var indicesRank = indices.shape.length;
                    if (tensorRank < 1) {
                        throw new Error('tf.gatherND() expects the input to be rank 1 or higher,' + " but the rank was ".concat(tensorRank, "."));
                    }
                    if (indicesRank < 1) {
                        throw new Error('tf.gatherND() expects the indices to be rank 1 or higher,' + " but the rank was ".concat(indicesRank, "."));
                    }
                    if (indices.dtype !== 'int32') {
                        throw new Error('tf.gatherND() expects the indices to be int32 type,' + " but the dtype was ".concat(indices.dtype, "."));
                    }
                    if (indices.shape[indicesRank - 1] > tensorRank) {
                        throw new Error('index innermost dimension length must be <= tensor rank; saw: ' + "".concat(indices.shape[indicesRank - 1], " vs. ").concat(tensorRank));
                    }
                    if (sizeFromShape(tensor.shape) === 0) {
                        throw new Error('Requested more than 0 entries, but input is empty.' + " Input shape: ".concat(tensor.shape, "."));
                    }
                    var indicesShape = indices.shape;
                    var sliceRank = indicesShape[indicesShape.length - 1];
                    // The result shape is
                    //   indices.shape[:-1] + params.shape[indices.shape[-1]:]
                    var nResult = 1;
                    for (var i = 0; i < indicesShape.length - 1; ++i) {
                        nResult *= indicesShape[i];
                    }
                    var inputShape = tensor.shape;
                    var resultShape = indicesShape.slice();
                    resultShape.pop();
                    var sliceSize = 1;
                    for (var i = sliceRank; i < tensorRank; ++i) {
                        sliceSize *= inputShape[i];
                        resultShape.push(inputShape[i]);
                    }
                    var strides = __spreadArray(__spreadArray([], __read(computeStrides(tensor.shape).map(function (stride) {
                        return stride / sliceSize;
                    })), false), [1], false).slice(0, sliceRank);
                    return [resultShape, nResult, sliceSize, strides];
                }
                var gather_nd_util = {
                    __proto__: null,
                    prepareAndValidate: prepareAndValidate
                };
                /**
 * Check whether updates.shape = indices.shape[:batchDim] +
 * shape[sliceDim:]
 *
 * @param x The input tensor.
 */
                function validateUpdateShape(shape, indices, updates) {
                    var sliceDim = indices.rank > 1 ? indices.shape[indices.rank - 1] : 1;
                    var batchDim = indices.rank > 1 ? indices.rank - 1 : 1;
                    var shapeError = 'Must have updates.shape = indices.shape[:batchDim] + ' + "shape[sliceDim:], got updates.shape: ".concat(updates.shape) + ", indices.shape: ".concat(indices.shape, ", shape: ").concat(shape) + ", sliceDim: ".concat(sliceDim, ", and batchDim: ").concat(batchDim, ".");
                    if (updates.rank < batchDim) {
                        throw new Error(shapeError + " update.rank < ".concat(batchDim, ". "));
                    }
                    if (shape.length < sliceDim + (updates.rank - batchDim)) {
                        throw new Error(shapeError + " Output shape length < ".concat(sliceDim + (updates.rank - batchDim)));
                    }
                    if (updates.rank !== batchDim + shape.length - sliceDim) {
                        throw new Error(shapeError + " update.rank != ".concat(batchDim + shape.length - sliceDim));
                    }
                    for (var d = 0; d < batchDim; ++d) {
                        if (updates.shape[d] !== indices.shape[d]) {
                            throw new Error(shapeError + " updates.shape[".concat(d, "] (").concat(updates.shape[d], ") != indices.shape[").concat(d, "] (").concat(indices.shape[d], ")."));
                        }
                    }
                    for (var d = 0; d < updates.rank - batchDim; ++d) {
                        if (updates.shape[d + batchDim] !== shape[d + sliceDim]) {
                            throw new Error(shapeError + " updates.shape[".concat(d + batchDim, "] (").concat(updates.shape[d + batchDim], ") != shape[").concat(d + batchDim, "] (").concat(shape[d + batchDim], ")"));
                        }
                    }
                }
                /**
 * Validate scatter nd inputs.
 *
 * @param update The tensor contains the update values.
 * @param indices The tensor contains the indices for the update values.
 * @param shape The shape of the output tensor.
 */
                function validateInput$1(updates, indices, shape) {
                    if (indices.rank < 1) {
                        throw new Error('tf.scatterND() expects the indices to be rank 1 or higher,' + " but the rank was ".concat(indices.rank, "."));
                    }
                    if (updates.rank < 1) {
                        throw new Error('tf.scatterND() expects the updates to be rank 1 or higher,' + " but the rank was ".concat(updates.rank, "."));
                    }
                    if (indices.dtype !== 'int32') {
                        throw new Error("The dtype of 'indices' should be int32, but got dtype: ".concat(indices.dtype));
                    }
                    if (shape.length < 1) {
                        throw new Error("Output rank must be greater or equal to 1, but got shape: ".concat(shape));
                    }
                    if (shape.length === 0) {
                        if (indices.size === 0) {
                            throw new Error("Indices specified for empty output. indices shape: ".concat(indices.shape));
                        }
                        if (updates.size === 0) {
                            throw new Error("Updates specified for empty output. updates shape: ".concat(updates.shape));
                        }
                    }
                    validateUpdateShape(shape, indices, updates);
                }
                /**
 * Calculate the shape information for the output.
 *
 * @param update The tensor contains the update values.
 * @param indices The tensor contains the indices for the update values.
 * @param shape The shape of the output tensor.
 *
 * @returns ScatterShapeInfo
 */
                function calculateShapes(updates, indices, shape) {
                    // Calculate the number of dimensions in indices
                    var indicesRank = indices.shape.length;
                    var sliceRank = indicesRank > 1 ? indices.shape[indicesRank - 1] : 1;
                    // Calculate the number of elements that make up each slice of our updated
                    // tensor. This allows us to work with flattened tensors and copy over whole
                    // slices at a time.
                    var totalNd = shape.length;
                    var sliceSize = 1;
                    for (var i = sliceRank; i < totalNd; ++i) {
                        sliceSize *= shape[i];
                    }
                    var safeSliceDim = sliceRank < 1 ? 1 : sliceRank;
                    var numUpdates = sizeFromShape(indices.shape) / safeSliceDim;
                    var strides = __spreadArray(__spreadArray([], __read(computeStrides(shape.slice(0, sliceRank))), false), [1], false);
                    var outputSize = sizeFromShape(shape);
                    return {
                        sliceRank: sliceRank,
                        numUpdates: numUpdates,
                        sliceSize: sliceSize,
                        strides: strides,
                        outputSize: outputSize
                    };
                }
                var scatter_nd_util = {
                    __proto__: null,
                    validateUpdateShape: validateUpdateShape,
                    validateInput: validateInput$1,
                    calculateShapes: calculateShapes
                };
                var NEW_AXIS = -2;
                var SHRINK_AXIS = -1;
                function assertParamsValid(input, begin, size) {
                    var inputRank = input.shape.length;
                    assert(inputRank === begin.length, function () {
                        return "Error in slice".concat(inputRank, "D: Length of begin ").concat(begin, " must ") + "match the rank of the array (".concat(inputRank, ").");
                    });
                    assert(inputRank === size.length, function () {
                        return "Error in slice".concat(inputRank, "D: Length of size ").concat(size, " must ") + "match the rank of the array (".concat(inputRank, ").");
                    });
                    var _loop_1 = function (i) {
                        assert(begin[i] + size[i] <= input.shape[i], function () {
                            return "Error in slice".concat(inputRank, "D: begin[").concat(i, "] + size[").concat(i, "] ") + "(".concat(begin[i] + size[i], ") would overflow input.shape[").concat(i, "] (").concat(input.shape[i], ")");
                        });
                    };
                    for (var i = 0; i < inputRank; ++i) {
                        _loop_1(i);
                    }
                }
                /** Converts a binary mask to an array of axes. Used in stridedSlice(). */
                function maskToAxes(mask) {
                    var axes = [];
                    var axis = 0;
                    while (mask > 0) {
                        if (mask & 1) {
                            axes.push(axis);
                        }
                        mask /= 2;
                        axis++;
                    }
                    return axes;
                }
                /** Computes the output shape given the strided slice params. */
                function computeOutShape$2(begin, end, strides) {
                    var size = [];
                    for (var axis = 0; axis < begin.length; axis++) {
                        size[axis] = Math.ceil((end[axis] - begin[axis]) / strides[axis]);
                    }
                    return size;
                }
                // Creates full selection at the elided dimensions. If the dimension matches
                // the ellipsis mask, override the current stride value. Otherwise, insert.
                function stridesWithElidedDims(strides, ellipsisInsertionIndex, numElidedAxes, inputShape) {
                    var newStrides = __spreadArray([], __read(strides), false);
                    for (var i = newStrides.length; i < inputShape.length; i++) {
                        newStrides.push(1);
                    }
                    for (var i = 0; i < numElidedAxes; i++) {
                        if (i === 0) {
                            newStrides[ellipsisInsertionIndex] = 1;
                        } else {
                            newStrides.splice(ellipsisInsertionIndex, 0 /* num elements to delete */
                                , 1 /* element to add */
                            );
                            newStrides.pop();
                        }
                    }
                    return newStrides;
                }
                function unnormalizeAxis(ellipsisInsertionIndex, numElidedAxes, normalizedAxis) {
                    if (normalizedAxis <= ellipsisInsertionIndex) {
                        return normalizedAxis;
                    }
                    return normalizedAxis - (numElidedAxes - 1);
                }
                function getElidedAxes(numElidedAxes, ellipsisInsertionIndex) {
                    var elidedAxes = [];
                    for (var i = 0; i < numElidedAxes; i++) {
                        elidedAxes.push(ellipsisInsertionIndex + i);
                    }
                    return elidedAxes;
                }
                // Normalize the start, end and strides.
                function getNormalizedAxes(inputShape, ellipsisAxes, numInterpolatedAxes, begin, end, strides, beginMask, endMask, ellipsisMask) {
                    var inputRank = inputShape.length;
                    var normalizedBegin = new Array(inputRank)
                        , normalizedEnd = new Array(inputRank)
                        , normalizedStrides = new Array(inputRank);
                    if (ellipsisAxes.length && numInterpolatedAxes > 0) {
                        var fullIndex = ellipsisAxes[0];
                        // The ellipsis applies to the masked index as well as any dimensions
                        // that are interpolated.
                        var numElidedAxes = numInterpolatedAxes + 1;
                        normalizedBegin = startIndicesWithElidedDims(beginMask, fullIndex, numElidedAxes, begin, inputShape);
                        normalizedEnd = stopIndicesWithElidedDims(endMask, fullIndex, numElidedAxes, end, inputShape);
                        normalizedStrides = stridesWithElidedDims(strides, fullIndex, numElidedAxes, inputShape);
                    } else {
                        for (var axis = 0; axis < inputRank; axis++) {
                            normalizedBegin[axis] = startForAxis(beginMask, begin, strides, inputShape, axis, ellipsisMask);
                            normalizedEnd[axis] = stopForAxis(endMask, end, strides, inputShape, axis, ellipsisMask);
                            normalizedStrides[axis] = stridesForAxis(strides, axis, ellipsisMask);
                        }
                    }
                    return {
                        begin: normalizedBegin,
                        end: normalizedEnd,
                        strides: normalizedStrides
                    };
                }
                // Creates full selection at the elided dimensions. If the dimension matches
                // the ellipsis mask, override the current start value. Otherwise, insert.
                function startIndicesWithElidedDims(beginMask, ellipsisInsertionIndex, numElidedAxes, originalBegin, inputShape) {
                    var newIndices = __spreadArray([], __read(inputShape), false);
                    var elidedAxes = getElidedAxes(numElidedAxes, ellipsisInsertionIndex);
                    for (var axis = 0; axis < newIndices.length; axis++) {
                        if (elidedAxes.indexOf(axis) > -1) {
                            newIndices[axis] = 0;
                        } else {
                            var originalAxis = unnormalizeAxis(ellipsisInsertionIndex, numElidedAxes, axis);
                            var originalValue = originalBegin[originalAxis];
                            if (beginMask & 1 << originalAxis) {
                                originalValue = 0;
                            }
                            newIndices[axis] = originalValue;
                        }
                    }
                    return newIndices;
                }
                // Creates full selection at the elided dimensions. If the dimension matches
                // the ellipsis mask, override the current stop value. Otherwise, insert.
                function stopIndicesWithElidedDims(endMask, ellipsisInsertionIndex, numElidedAxes, originalEnd, inputShape) {
                    var newIndices = __spreadArray([], __read(inputShape), false);
                    var elidedAxes = getElidedAxes(numElidedAxes, ellipsisInsertionIndex);
                    for (var axis = 0; axis < newIndices.length; axis++) {
                        if (elidedAxes.indexOf(axis) > -1) {
                            newIndices[axis] = Number.MAX_SAFE_INTEGER;
                        } else {
                            var originalAxis = unnormalizeAxis(ellipsisInsertionIndex, numElidedAxes, axis);
                            var originalValue = originalEnd[originalAxis];
                            if (endMask & 1 << originalAxis) {
                                originalValue = Number.MAX_SAFE_INTEGER;
                            }
                            newIndices[axis] = originalValue;
                        }
                    }
                    for (var i = 0; i < newIndices.length; i++) {
                        // Handle negative indices
                        var axisSize = inputShape[i];
                        if (newIndices[i] < 0) {
                            newIndices[i] += axisSize;
                        }
                        newIndices[i] = clamp(0, newIndices[i], inputShape[i]);
                    }
                    return newIndices;
                }
                function stridesForAxis(strides, axis, ellipsisMask) {
                    var stride = strides[axis];
                    if (ellipsisMask & 1 << axis || stride == null) {
                        stride = 1;
                    }
                    return stride;
                }
                function startForAxis(beginMask, startIndices, strides, inputShape, axis, ellipsisMask) {
                    // Begin with the specified index
                    var start = startIndices[axis];
                    var stride = strides[axis] || 1;
                    // Check the axis bit from right of masked axes, or the begin index is not set
                    // for the axis.
                    if (beginMask & 1 << axis || ellipsisMask & 1 << axis || start == null) {
                        if (stride > 0) {
                            // Forward iteration - use the first element. These values will get
                            // clamped below (Note: We could have set them to 0 and axis_size-1, but
                            // use lowest() and max() to maintain symmetry with StopForAxis())
                            start = Number.MIN_SAFE_INTEGER;
                        } else {
                            // Backward iteration - use the last element.
                            start = Number.MAX_SAFE_INTEGER;
                        }
                    }
                    // Handle negative indices
                    var axisSize = inputShape[axis];
                    if (start < 0) {
                        start += axisSize;
                    }
                    // Clamping
                    start = clamp(0, start, axisSize - 1);
                    return start;
                }
                function stopForAxis(endMask, stopIndices, strides, inputShape, axis, ellipsisMask) {
                    // Begin with the specified index
                    var stop = stopIndices[axis];
                    var stride = strides[axis] || 1;
                    // Check the axis bit from right of masked axes, or if the stop index is not
                    // set for this axis.
                    if (endMask & 1 << axis || ellipsisMask & 1 << axis || stop == null) {
                        if (stride > 0) {
                            // Forward iteration - use the last element. These values will get
                            // clamped below
                            stop = Number.MAX_SAFE_INTEGER;
                        } else {
                            // Backward iteration - use the first element.
                            stop = Number.MIN_SAFE_INTEGER;
                        }
                    }
                    // Handle negative indices
                    var axisSize = inputShape[axis];
                    if (stop < 0) {
                        stop += axisSize;
                    }
                    // Clamping
                    // Because the end index points one past the last element, we need slightly
                    // different clamping ranges depending on the direction.
                    if (stride > 0) {
                        // Forward iteration
                        stop = clamp(0, stop, axisSize);
                    } else {
                        // Backward iteration
                        stop = clamp(-1, stop, axisSize - 1);
                    }
                    return stop;
                }
                /**
 * Returns true if the slice occupies a continous set of elements in the
 * 'flat' space.
 */
                function isSliceContinous(shape, begin, size) {
                    // Index of the first axis that has size > 1.
                    var firstNonOneAxis = size.length;
                    for (var i = 0; i < size.length; i++) {
                        if (size[i] > 1) {
                            firstNonOneAxis = i;
                            break;
                        }
                    }
                    for (var i = firstNonOneAxis + 1; i < size.length; i++) {
                        if (begin[i] > 0 || size[i] !== shape[i]) {
                            return false;
                        }
                    }
                    return true;
                }
                function computeFlatOffset(begin, strides) {
                    var flatOffset = begin.length > 0 ? begin[begin.length - 1] : 1;
                    for (var i = 0; i < begin.length - 1; i++) {
                        flatOffset += begin[i] * strides[i];
                    }
                    return flatOffset;
                }
                function parseSliceParams(x, begin, size) {
                    // The following logic allows for more ergonomic calls.
                    var begin_;
                    var xRank = x.shape.length;
                    if (typeof begin === 'number') {
                        begin_ = __spreadArray([begin], __read(new Array(xRank - 1).fill(0)), false);
                    } else if (begin.length < xRank) {
                        begin_ = begin.concat(new Array(xRank - begin.length).fill(0));
                    } else {
                        begin_ = begin.slice();
                    }
                    begin_.forEach(function (d) {
                        assert(d !== -1, function () {
                            return 'slice() does not support negative begin indexing.';
                        });
                    });
                    var size_;
                    if (size == null) {
                        size_ = new Array(xRank).fill(-1);
                    } else if (typeof size === 'number') {
                        size_ = __spreadArray([size], __read(new Array(xRank - 1).fill(-1)), false);
                    } else if (size.length < xRank) {
                        size_ = size.concat(new Array(xRank - size.length).fill(-1));
                    } else {
                        size_ = size;
                    }
                    size_ = size_.map(function (d, i) {
                        if (d >= 0) {
                            return d;
                        } else {
                            assert(d === -1, function () {
                                return "Negative size values should be exactly -1 but got " + "".concat(d, " for the slice() size at index ").concat(i, ".");
                            });
                            return x.shape[i] - begin_[i];
                        }
                    });
                    return [begin_, size_];
                }
                // Convert the slicing specification from a sparse representation to a dense
                // representation. This means that all ellipses and newaxis are expanded out.
                function sliceInfo(xShape, begin, end, strides, beginMask, endMask, ellipsisMask, newAxisMask, shrinkAxisMask) {
                    var stridesNonNull;
                    if (strides == null) {
                        stridesNonNull = new Array(begin.length);
                        stridesNonNull.fill(1);
                    } else {
                        stridesNonNull = strides;
                    }
                    // Only one non-zero bit is allowed in ellipsisMask, which means ellipsisMask
                    // is a power of 2. Use bit compares to ensure ellipsisMask is 0 or a power
                    // of 2. When i is a power of 2, i & (i - 1) is always 0.
                    // Also ref:
                    // https://stackoverflow.com/questions/600293/how-to-check-if-a-number-is-a-power-of-2
                    if (ellipsisMask != null && (ellipsisMask & ellipsisMask - 1) !== 0) {
                        throw new Error('Multiple ellipses in slice is not allowed.');
                    }
                    // Step 1: Account for ellipsis and new axis.
                    // Check for ellipsis and count how many non-newaxis there are after.
                    var ellipsisSeen = false;
                    var sparseSpec = {
                        dims: stridesNonNull.length,
                        numAddAxisAfterEllipsis: 0,
                        begin: begin.slice(),
                        end: end.slice(),
                        strides: stridesNonNull.slice(),
                        beginMask: beginMask,
                        endMask: endMask,
                        ellipsisMask: ellipsisMask,
                        newAxisMask: newAxisMask,
                        shrinkAxisMask: shrinkAxisMask
                    };
                    for (var i = 0; i < sparseSpec.dims; i++) {
                        if (ellipsisSeen && (1 << i & newAxisMask) !== 0) {
                            sparseSpec.numAddAxisAfterEllipsis++;
                        }
                        if (1 << i & ellipsisMask) {
                            ellipsisSeen = true;
                        }
                    }
                    // If no ellipsis insert one at the end.
                    if (!ellipsisSeen) {
                        sparseSpec.ellipsisMask |= 1 << sparseSpec.dims;
                        sparseSpec.dims++;
                        // this effects loop iteration below
                    }
                    // Step 2: Make a sparse spec into a full index spec.
                    //
                    // The sparse spec deos not correspond to the number of dimensions.
                    // Make a dense spec that cooresponds to the number of dimensions.
                    //
                    // For example suppose foo[...,3:] on foo.shape = [2, 2, 3] then we need to
                    // produce the missing beginMask for the first two dimensions i.e. from
                    // beginMaskSpec = 0, endMaskSpec = 2, we achieve beginMask = 6 (110),
                    // endMask = 7 (111).
                    var denseSpec = {
                        dims: xShape.length,
                        beginMask: 0,
                        endMask: 0,
                        beginValid: false,
                        endValid: false
                    };
                    buildDenseSpec(sparseSpec, denseSpec);
                    // Step 3: Make implicit ranges (non-zero beginMasks and endMasks) explicit
                    // and bounds check.
                    var isIdentity = true;
                    var sliceDim0 = true;
                    var isSimpleSlice = true;
                    var processingShape = [];
                    var finalShape = [];
                    for (var i = 0; i < xShape.length; ++i) {
                        if (denseSpec.strides[i] === 0) {
                            throw Error("strides[".concat(i, "] must be non-zero"));
                        }
                        var shrinkI = !!(denseSpec.shrinkAxisMask & 1 << i);
                        var dimI = xShape[i];
                        if (dimI === -1) {
                            processingShape.push(shrinkI ? 1 : -1);
                            continue;
                        }
                        var masks = [denseSpec.beginMask & 1 << i, denseSpec.endMask & 1 << i];
                        var validRange = [denseSpec.strides[i] > 0 ? 0 : -1, denseSpec.strides[i] > 0 ? dimI : dimI - 1];
                        if (shrinkI && denseSpec.strides[i] <= 0) {
                            throw Error('only stride 1 allowed on non-range indexing.');
                        }
                        isSimpleSlice = isSimpleSlice && denseSpec.strides[i] === 1;
                        var beginAndEndMasked = !!(denseSpec.beginMask & 1 << i && denseSpec.endMask & 1 << i);
                        if (denseSpec.beginValid && denseSpec.endValid) {
                            if (shrinkI) {
                                // If we are shrinking, the end index is now possibly incorrect. In
                                // particular foo[-1] produces sparseBegin = -1, sparseEnd = 0.
                                // and canonical puts these to n-1 and 0, which implies a degenerate
                                // interval. Fortunately, it is now safe to re-create end as begin + 1.
                                var xFwd = denseSpec.begin[i] < 0 ? dimI + denseSpec.begin[i] : denseSpec.begin[i];
                                denseSpec.begin[i] = xFwd;
                                denseSpec.end[i] = denseSpec.begin[i] + 1;
                                if (xFwd < 0 || xFwd >= dimI) {
                                    throw Error("slice index ".concat(denseSpec.begin[i], " of dimension ").concat(i, " out of bounds."));
                                }
                            } else {
                                denseSpec.begin[i] = canonical(denseSpec.begin[i], 0, denseSpec.strides[i], dimI, masks, validRange);
                                denseSpec.end[i] = canonical(denseSpec.end[i], 1, denseSpec.strides[i], dimI, masks, validRange);
                            }
                            // Update optimization values
                            var takeAllInDimension = denseSpec.strides[i] === 1 && denseSpec.begin[i] === 0 && denseSpec.end[i] === dimI;
                            isIdentity = isIdentity && takeAllInDimension;
                            sliceDim0 = sliceDim0 && (i === 0 && denseSpec.strides[i] === 1 || takeAllInDimension);
                        } else {
                            isIdentity = isIdentity && denseSpec.strides[i] === 1 && beginAndEndMasked;
                            sliceDim0 = sliceDim0 && (i === 0 && denseSpec.strides[i] === 1 || beginAndEndMasked);
                        }
                        // Compute the processing shape (the intermediate Eigen will produce)
                        var intervalLength = void 0;
                        var knownInterval = false;
                        if (denseSpec.beginValid && denseSpec.endValid) {
                            intervalLength = denseSpec.end[i] - denseSpec.begin[i];
                            knownInterval = true;
                        } else if (shrinkI) {
                            // The dimension is still known as 1 for the processingShape, but will be
                            // discarded for the final shape.
                            intervalLength = 1;
                            knownInterval = true;
                        } else if (beginAndEndMasked) {
                            // Even if we don't have values for begin or end, we do know that this
                            // dimension covers the whole interval. If we have shape information for
                            // this dimension, that tells us the interval length.
                            if (dimI >= 0) {
                                if (denseSpec.strides[i] < 0) {
                                    intervalLength = -dimI;
                                } else {
                                    intervalLength = dimI;
                                }
                                knownInterval = true;
                            }
                        }
                        if (knownInterval) {
                            var sizeI = void 0;
                            // Hold zero if the interval is degenerate, otherwise account for
                            // remainder
                            if (intervalLength === 0 || intervalLength < 0 !== denseSpec.strides[i] < 0) {
                                sizeI = 0;
                            } else {
                                sizeI = Math.trunc(intervalLength / denseSpec.strides[i]) + (intervalLength % denseSpec.strides[i] !== 0 ? 1 : 0);
                            }
                            processingShape.push(sizeI);
                        } else {
                            processingShape.push(-1);
                        }
                    }
                    // Step 4: Compute the final shape
                    //
                    // newAxis will increase dimension by 1 (with a one-size dimension)
                    // slices like foo[3, ...] will reduce dimension by 1.
                    // This cannot be done earlier, because it depends on Step 3.
                    for (var denseDim = 0; denseDim < denseSpec.finalShapeGatherIndices.length; ++denseDim) {
                        var gatherIndex = denseSpec.finalShapeGatherIndices[denseDim];
                        if (gatherIndex >= 0) {
                            finalShape.push(processingShape[gatherIndex]);
                        } else if (gatherIndex === NEW_AXIS) {
                            finalShape.push(1);
                        }
                    }
                    var finalShapeSparse = finalShape.filter(function (dim, i) {
                        return denseSpec.finalShapeGatherIndices[i] !== NEW_AXIS;
                    });
                    return {
                        finalShapeSparse: finalShapeSparse,
                        finalShape: finalShape,
                        isIdentity: isIdentity,
                        sliceDim0: sliceDim0,
                        isSimpleSlice: isSimpleSlice,
                        begin: denseSpec.begin,
                        end: denseSpec.end,
                        strides: denseSpec.strides
                    };
                }
                function buildDenseSpec(sparse, dense) {
                    dense.beginMask = 0;
                    dense.endMask = 0;
                    dense.shrinkAxisMask = 0;
                    var fullIndex = 0;
                    dense.beginValid = sparse.begin != null;
                    dense.endValid = sparse.end != null;
                    dense.begin = new Array(dense.dims);
                    dense.end = new Array(dense.dims);
                    dense.strides = new Array(dense.dims);
                    dense.finalShapeGatherIndices = [];
                    dense.finalShapeGatherIndicesSparse = [];
                    dense.inputShapeGatherIndicesSparse = new Array(dense.dims);
                    for (var i = 0; i < sparse.dims; i++) {
                        if (1 << i & sparse.ellipsisMask) {
                            // Only the bit that has ellipsis will fall in this condition.
                            // Expand the ellipsis into the appropriate indices
                            // Note: this only works because we guaranteed one ellipsis.
                            var nextIndex = Math.min(dense.dims - (sparse.dims - i) + 1 + sparse.numAddAxisAfterEllipsis, dense.dims);
                            for (; fullIndex < nextIndex; fullIndex++) {
                                // newAxis aren't real axis so you have to skip.
                                dense.begin[fullIndex] = 0;
                                dense.end[fullIndex] = 0;
                                dense.strides[fullIndex] = 1;
                                dense.beginMask |= 1 << fullIndex;
                                dense.endMask |= 1 << fullIndex;
                                dense.finalShapeGatherIndices.push(fullIndex);
                                dense.finalShapeGatherIndicesSparse.push(-1);
                                dense.inputShapeGatherIndicesSparse[fullIndex] = i;
                            }
                        } else if (1 << i & sparse.newAxisMask) {
                            // Only the bit that has newAxis will fall in this condition.
                            dense.finalShapeGatherIndices.push(NEW_AXIS);
                            dense.finalShapeGatherIndicesSparse.push(-1);
                        } else {
                            if (fullIndex === dense.begin.length) {
                                throw Error("Index out of range using input dim ".concat(fullIndex, "; input ") + "has only ".concat(dense.dims, " dims, ").concat(dense.begin.length, "."));
                            }
                            // Gather slicing spec into appropriate index.
                            if (sparse.begin != null) {
                                dense.begin[fullIndex] = sparse.begin[i];
                            }
                            if (sparse.end != null) {
                                dense.end[fullIndex] = sparse.end[i];
                            }
                            dense.strides[fullIndex] = sparse.strides[i];
                            if (sparse.beginMask & 1 << i) {
                                dense.beginMask |= 1 << fullIndex;
                            }
                            if (sparse.endMask & 1 << i) {
                                dense.endMask |= 1 << fullIndex;
                            }
                            // If shrink, record where to get the dimensionality from (i.e. newAxis)
                            // creates a fake 1 size dimension. Also remember shrink axis (now in
                            // dense form) so we can ignore dense.end below.
                            if (sparse.shrinkAxisMask & 1 << i) {
                                dense.finalShapeGatherIndices.push(SHRINK_AXIS);
                                dense.finalShapeGatherIndicesSparse.push(-1);
                                dense.shrinkAxisMask |= 1 << fullIndex;
                            } else {
                                dense.finalShapeGatherIndices.push(fullIndex);
                                // Remember that where in the sparse shape the dense dim comes from.
                                dense.finalShapeGatherIndicesSparse.push(i);
                            }
                            dense.inputShapeGatherIndicesSparse[fullIndex] = i;
                            fullIndex++;
                        }
                    }
                }
                function canonical(x, c, strideI, dimI, masks, validRange) {
                    if (masks[c]) {
                        return strideI > 0 ? validRange[c] : validRange[c + 1 & 1];
                    } else {
                        var xFwd = x < 0 ? dimI + x : x;
                        // make negative indices positive
                        return xFwd < validRange[0] ? validRange[0] : xFwd > validRange[1] ? validRange[1] : xFwd;
                    }
                }
                var slice_util = {
                    __proto__: null,
                    assertParamsValid: assertParamsValid,
                    maskToAxes: maskToAxes,
                    computeOutShape: computeOutShape$2,
                    stridesWithElidedDims: stridesWithElidedDims,
                    getNormalizedAxes: getNormalizedAxes,
                    startIndicesWithElidedDims: startIndicesWithElidedDims,
                    stopIndicesWithElidedDims: stopIndicesWithElidedDims,
                    stridesForAxis: stridesForAxis,
                    startForAxis: startForAxis,
                    stopForAxis: stopForAxis,
                    isSliceContinous: isSliceContinous,
                    computeFlatOffset: computeFlatOffset,
                    parseSliceParams: parseSliceParams,
                    sliceInfo: sliceInfo
                };
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Serializable defines the serialization contract.
 *
 * TFJS requires serializable classes to return their className when asked
 * to avoid issues with minification.
 */
                var Serializable = /** @class */
                    function () {
                        function Serializable() { }
                        /**
         * Return the class name for this class to use in serialization contexts.
         *
         * Generally speaking this will be the same thing that constructor.name
         * would have returned.  However, the class name needs to be robust
         * against minification for serialization/deserialization to work properly.
         *
         * There's also places such as initializers.VarianceScaling, where
         * implementation details between different languages led to different
         * class hierarchies and a non-leaf node is used for serialization purposes.
         */
                        Serializable.prototype.getClassName = function () {
                            return this.constructor.className;
                        }
                            ;
                        /**
         * Creates an instance of T from a ConfigDict.
         *
         * This works for most descendants of serializable.  A few need to
         * provide special handling.
         * @param cls A Constructor for the class to instantiate.
         * @param config The Configuration for the object.
         */
                        /** @nocollapse */
                        Serializable.fromConfig = function (cls, config) {
                            return new cls(config);
                        }
                            ;
                        return Serializable;
                    }();
                /**
 * Maps string keys to class constructors.
 *
 * Used during (de)serialization from the cross-language JSON format, which
 * requires the class name in the serialization format matches the class
 * names as used in Python, should it exist.
 */
                var SerializationMap = /** @class */
                    function () {
                        function SerializationMap() {
                            this.classNameMap = {};
                        }
                        /**
         * Returns the singleton instance of the map.
         */
                        SerializationMap.getMap = function () {
                            if (SerializationMap.instance == null) {
                                SerializationMap.instance = new SerializationMap();
                            }
                            return SerializationMap.instance;
                        }
                            ;
                        /**
         * Registers the class as serializable.
         */
                        SerializationMap.register = function (cls) {
                            SerializationMap.getMap().classNameMap[cls.className] = [cls, cls.fromConfig];
                        }
                            ;
                        return SerializationMap;
                    }();
                /**
 * Register a class with the serialization map of TensorFlow.js.
 *
 * This is often used for registering custom Layers, so they can be
 * serialized and deserialized.
 *
 * Example:
 *
 * ```js
 * class MyCustomLayer extends tf.layers.Layer {
 *   static className = 'MyCustomLayer';
 *
 *   constructor(config) {
 *     super(config);
 *   }
 * }
 * tf.serialization.registerClass(MyCustomLayer);
 * ```
 *
 * @param cls The class to be registered. It must have a public static member
 *   called `className` defined and the value must be a non-empty string.
 *
 * @doc {heading: 'Models', subheading: 'Serialization', ignoreCI: true}
 */
                function registerClass(cls) {
                    assert(cls.className != null, function () {
                        return "Class being registered does not have the static className " + "property defined.";
                    });
                    assert(typeof cls.className === 'string', function () {
                        return "className is required to be a string, but got type " + typeof cls.className;
                    });
                    assert(cls.className.length > 0, function () {
                        return "Class being registered has an empty-string as its className, " + "which is disallowed.";
                    });
                    SerializationMap.register(cls);
                }
                var serialization = {
                    __proto__: null,
                    Serializable: Serializable,
                    SerializationMap: SerializationMap,
                    registerClass: registerClass
                };
                var TEST_EPSILON_FLOAT32 = 1e-3;
                var TEST_EPSILON_FLOAT16 = 1e-1;
                function expectArraysClose(actual, expected, epsilon) {
                    if (epsilon == null) {
                        epsilon = testEpsilon();
                    }
                    return expectArraysPredicate(actual, expected, function (a, b) {
                        return areClose(a, b, epsilon);
                    });
                }
                function testEpsilon() {
                    return ENGINE.backend.floatPrecision() === 32 ? TEST_EPSILON_FLOAT32 : TEST_EPSILON_FLOAT16;
                }
                function expectArraysPredicate(actual, expected, predicate) {
                    var checkClassType = true;
                    if (isTypedArray(actual) || isTypedArray(expected)) {
                        checkClassType = false;
                    }
                    if (isTypedArray(actual) && isTypedArray(expected)) {
                        checkClassType = true;
                    }
                    if (checkClassType) {
                        var aType = actual.constructor.name;
                        var bType = expected.constructor.name;
                        if (aType !== bType) {
                            throw new Error("Arrays are of different type. Actual: ".concat(aType, ". ") + "Expected: ".concat(bType));
                        }
                    }
                    if (Array.isArray(actual) && Array.isArray(expected)) {
                        var actualShape = inferShape(actual);
                        var expectedShape = inferShape(expected);
                        if (!arraysEqual(actualShape, expectedShape)) {
                            throw new Error("Arrays have different shapes. " + "Actual: [".concat(actualShape, "]. Expected: [").concat(expectedShape, "]"));
                        }
                    }
                    var actualFlat = isTypedArray(actual) ? actual : flatten(actual);
                    var expectedFlat = isTypedArray(expected) ? expected : flatten(expected);
                    if (actualFlat.length !== expectedFlat.length) {
                        throw new Error("Arrays have different lengths actual: ".concat(actualFlat.length, " vs ") + "expected: ".concat(expectedFlat.length, ".\n") + "Actual:   ".concat(actualFlat, ".\n") + "Expected: ".concat(expectedFlat, "."));
                    }
                    for (var i = 0; i < expectedFlat.length; ++i) {
                        var a = actualFlat[i];
                        var e = expectedFlat[i];
                        if (!predicate(a, e)) {
                            throw new Error("Arrays differ: actual[".concat(i, "] = ").concat(a, ", expected[").concat(i, "] = ").concat(e, ".\n") + "Actual:   ".concat(actualFlat, ".\n") + "Expected: ".concat(expectedFlat, "."));
                        }
                    }
                    if (typeof expect !== 'undefined') {
                        expect().nothing();
                    }
                }
                function expectPromiseToFail(fn, done) {
                    fn().then(function () {
                        return done.fail();
                    }, function () {
                        return done();
                    });
                    if (typeof expect !== 'undefined') {
                        expect().nothing();
                    }
                }
                function expectArraysEqual(actual, expected) {
                    var exp = typeof expected === 'string' || typeof expected === 'number' || typeof expected === 'boolean' ? [expected] : expected;
                    if (isString(actual) || isString(actual[0]) || isString(expected) || isString(expected[0])) {
                        // tslint:disable-next-line: triple-equals
                        return expectArraysPredicate(actual, exp, function (a, b) {
                            return a == b;
                        });
                    }
                    return expectArraysPredicate(actual, expected, function (a, b) {
                        return areClose(a, b, 0);
                    });
                }
                function expectNumbersClose(a, e, epsilon) {
                    if (epsilon == null) {
                        epsilon = testEpsilon();
                    }
                    if (!areClose(a, e, epsilon)) {
                        throw new Error("Numbers differ: actual === ".concat(a, ", expected === ").concat(e));
                    }
                    if (typeof expect !== 'undefined') {
                        expect().nothing();
                    }
                }
                function areClose(a, e, epsilon) {
                    if (!isFinite(a) && !isFinite(e)) {
                        return true;
                    }
                    if (isNaN(a) || isNaN(e) || Math.abs(a - e) > epsilon) {
                        return false;
                    }
                    return true;
                }
                function expectValuesInRange(actual, low, high) {
                    for (var i = 0; i < actual.length; i++) {
                        if (actual[i] < low || actual[i] > high) {
                            throw new Error("Value out of range:".concat(actual[i], " low: ").concat(low, ", high: ").concat(high));
                        }
                    }
                }
                function expectArrayBuffersEqual(actual, expected) {
                    // Safari does not like comparing ArrayBuffers directly. Wrapping in
                    // a Float32Array solves this issue.
                    var actualArray = new Float32Array(actual);
                    var expectedArray = new Float32Array(expected);
                    if (actualArray.length !== expectedArray.length) {
                        throw new Error('Expected ArrayBuffer to be of length ' + "".concat(expectedArray.length, ", but it was ").concat(actualArray.length));
                    }
                    for (var i = 0; i < expectedArray.length; i++) {
                        if (actualArray[i] !== expectedArray[i]) {
                            throw new Error("Expected ArrayBuffer value at ".concat(i, " to be ") + "".concat(expectedArray[i], " but got ").concat(actualArray[i], " instead"));
                        }
                    }
                }
                /** Encodes strings into utf-8 bytes. */
                function encodeStrings(a) {
                    for (var i = 0; i < a.length; i++) {
                        var val = a[i];
                        if (Array.isArray(val)) {
                            encodeStrings(val);
                        } else {
                            a[i] = encodeString(val);
                        }
                    }
                    return a;
                }
                /** Creates an HTMLVideoElement with autoplay-friendly default settings. */
                function createVideoElement(source) {
                    var video = document.createElement('video');
                    if ('playsInline' in video) {
                        // tslint:disable-next-line:no-any
                        video.playsInline = true;
                    }
                    video.muted = true;
                    video.loop = true;
                    video.style.position = 'fixed';
                    video.style.left = '0px';
                    video.style.top = '0px';
                    video.preload = 'auto';
                    video.appendChild(source);
                    return new Promise(function (resolve) {
                        video.addEventListener('loadeddata', function (_) {
                            return resolve(video);
                        });
                        video.load();
                    }
                    );
                }
                function play(video) {
                    return __awaiter(this, void 0, void 0, function () {
                        return __generator(this, function (_a) {
                            switch (_a.label) {
                                case 0:
                                    return [4 /*yield*/
                                        , video.play()];
                                case 1:
                                    _a.sent();
                                    if (!('requestVideoFrameCallback' in video))
                                        return [3 /*break*/
                                            , 3];
                                    return [4 /*yield*/
                                        , new Promise(function (resolve) {
                                            // tslint:disable-next-line:no-any
                                            video.requestVideoFrameCallback(resolve);
                                        }
                                        )];
                                case 2:
                                    _a.sent();
                                    _a.label = 3;
                                case 3:
                                    return [2 /*return*/
                                    ];
                            }
                        });
                    });
                }
                var test_util = {
                    __proto__: null,
                    TEST_EPSILON_FLOAT16: TEST_EPSILON_FLOAT16,
                    expectArraysClose: expectArraysClose,
                    testEpsilon: testEpsilon,
                    expectPromiseToFail: expectPromiseToFail,
                    expectArraysEqual: expectArraysEqual,
                    expectNumbersClose: expectNumbersClose,
                    expectValuesInRange: expectValuesInRange,
                    expectArrayBuffersEqual: expectArrayBuffersEqual,
                    encodeStrings: encodeStrings,
                    createVideoElement: createVideoElement,
                    play: play
                };
                /** @license See the LICENSE file. */
                // This code is auto-generated, do not modify this file!
                var version = '4.1.0';
                /**
 * Adds two `tf.Tensor`s element-wise, A + B. Supports broadcasting.
 *
 *
 * ```js
 * const a = tf.tensor1d([1, 2, 3, 4]);
 * const b = tf.tensor1d([10, 20, 30, 40]);
 *
 * a.add(b).print();  // or tf.add(a, b)
 * ```
 *
 * ```js
 * // Broadcast add a with b.
 * const a = tf.scalar(5);
 * const b = tf.tensor1d([10, 20, 30, 40]);
 *
 * a.add(b).print();  // or tf.add(a, b)
 * ```
 * @param a The first `tf.Tensor` to add.
 * @param b The second `tf.Tensor` to add. Must have the same type as `a`.
 *
 * @doc {heading: 'Operations', subheading: 'Arithmetic'}
 */
                function add_(a, b) {
                    var _a;
                    var $a = convertToTensor(a, 'a', 'add');
                    var $b = convertToTensor(b, 'b', 'add');
                    _a = __read(makeTypesMatch($a, $b), 2),
                        $a = _a[0],
                        $b = _a[1];
                    var inputs = {
                        a: $a,
                        b: $b
                    };
                    return ENGINE.runKernel(Add, inputs);
                }
                var add = op({
                    add_: add_
                });
                /**
 * Divides two `tf.Tensor`s element-wise, A / B. Supports broadcasting.
 * The result is rounded with floor function.
 *
 *
 * ```js
 * const a = tf.tensor1d([1, 4, 9, 16]);
 * const b = tf.tensor1d([1, 2, 3, 4]);
 *
 * a.floorDiv(b).print();  // or tf.div(a, b)
 * ```
 *
 * ```js
 * // Broadcast div a with b.
 * const a = tf.tensor1d([2, 4, 6, 8]);
 * const b = tf.scalar(2);
 *
 * a.floorDiv(b).print();  // or tf.floorDiv(a, b)
 * ```
 *
 * @param a The first tensor as the numerator.
 * @param b The second tensor as the denominator. Must have the same dtype as
 * `a`.
 *
 * @doc {heading: 'Operations', subheading: 'Arithmetic'}
 */
                function floorDiv_(a, b) {
                    var _a;
                    var $a = convertToTensor(a, 'a', 'floorDiv');
                    var $b = convertToTensor(b, 'b', 'floorDiv');
                    _a = __read(makeTypesMatch($a, $b), 2),
                        $a = _a[0],
                        $b = _a[1];
                    var inputs = {
                        a: $a,
                        b: $b
                    };
                    return ENGINE.runKernel(FloorDiv, inputs);
                }
                var floorDiv = op({
                    floorDiv_: floorDiv_
                });
                /**
 * Divides two `tf.Tensor`s element-wise, A / B. Supports broadcasting.
 *
 * ```js
 * const a = tf.tensor1d([1, 4, 9, 16]);
 * const b = tf.tensor1d([1, 2, 3, 4]);
 *
 * a.div(b).print();  // or tf.div(a, b)
 * ```
 *
 * ```js
 * // Broadcast div a with b.
 * const a = tf.tensor1d([2, 4, 6, 8]);
 * const b = tf.scalar(2);
 *
 * a.div(b).print();  // or tf.div(a, b)
 * ```
 *
 * @param a The first tensor as the numerator.
 * @param b The second tensor as the denominator. Must have the same dtype as
 * `a`.
 *
 * @doc {heading: 'Operations', subheading: 'Arithmetic'}
 */
                function div_(a, b) {
                    var _a;
                    var $a = convertToTensor(a, 'a', 'div');
                    var $b = convertToTensor(b, 'b', 'div');
                    _a = __read(makeTypesMatch($a, $b), 2),
                        $a = _a[0],
                        $b = _a[1];
                    if ($a.dtype === 'int32' && $b.dtype === 'int32') {
                        return floorDiv($a, $b);
                    }
                    var inputs = {
                        a: $a,
                        b: $b
                    };
                    var attrs = {};
                    // tslint:disable-next-line: no-unnecessary-type-assertion
                    return ENGINE.runKernel(RealDiv, inputs, attrs);
                }
                var div = op({
                    div_: div_
                });
                /**
 * Multiplies two `tf.Tensor`s element-wise, A * B. Supports broadcasting.
 *
 * We also expose `tf.mulStrict` which has the same signature as this op and
 * asserts that `a` and `b` are the same shape (does not broadcast).
 *
 * ```js
 * const a = tf.tensor1d([1, 2, 3, 4]);
 * const b = tf.tensor1d([2, 3, 4, 5]);
 *
 * a.mul(b).print();  // or tf.mul(a, b)
 * ```
 *
 * ```js
 * // Broadcast mul a with b.
 * const a = tf.tensor1d([1, 2, 3, 4]);
 * const b = tf.scalar(5);
 *
 * a.mul(b).print();  // or tf.mul(a, b)
 * ```
 * @param a The first tensor to multiply.
 * @param b The second tensor to multiply. Must have the same dtype as `a`.
 *
 * @doc {heading: 'Operations', subheading: 'Arithmetic'}
 */
                function mul_(a, b) {
                    var _a;
                    var $a = convertToTensor(a, 'a', 'mul');
                    var $b = convertToTensor(b, 'b', 'mul');
                    _a = __read(makeTypesMatch($a, $b), 2),
                        $a = _a[0],
                        $b = _a[1];
                    var inputs = {
                        a: $a,
                        b: $b
                    };
                    return ENGINE.runKernel(Multiply, inputs);
                }
                var mul = op({
                    mul_: mul_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes absolute value element-wise: `abs(x)`
 *
 * ```js
 * const x = tf.tensor1d([-1, 2, -3, 4]);
 *
 * x.abs().print();  // or tf.abs(x)
 * ```
 * @param x The input `tf.Tensor`.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function abs_(x) {
                    var $x = convertToTensor(x, 'x', 'abs');
                    if ($x.dtype === 'complex64') {
                        var inputs = {
                            x: $x
                        };
                        return ENGINE.runKernel(ComplexAbs, inputs);
                    } else {
                        var inputs = {
                            x: $x
                        };
                        return ENGINE.runKernel(Abs, inputs);
                    }
                }
                var abs = op({
                    abs_: abs_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes acos of the input `tf.Tensor` element-wise: `acos(x)`
 *
 * ```js
 * const x = tf.tensor1d([0, 1, -1, .7]);
 *
 * x.acos().print();  // or tf.acos(x)
 * ```
 * @param x The input tensor.
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function acos_(x) {
                    var $x = convertToTensor(x, 'x', 'acos');
                    var inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(Acos, inputs);
                }
                var acos = op({
                    acos_: acos_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the inverse hyperbolic cos of the input `tf.Tensor` element-wise:
 * `acosh(x)`
 *
 * ```js
 * const x = tf.tensor1d([10, 1, 3, 5.7]);
 *
 * x.acosh().print();  // or tf.acosh(x)
 * ```
 * @param x The input tensor.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function acosh_(x) {
                    var $x = convertToTensor(x, 'x', 'acosh');
                    var inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(Acosh, inputs);
                }
                var acosh = op({
                    acosh_: acosh_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Adds a list of `tf.Tensor`s element-wise, each with the same shape and dtype.
 *
 * ```js
 * const a = tf.tensor1d([1, 2]);
 * const b = tf.tensor1d([3, 4]);
 * const c = tf.tensor1d([5, 6]);
 *
 * tf.addN([a, b, c]).print();
 * ```
 * @param tensors A list of tensors with the same shape and dtype.
 * @doc {heading: 'Operations', subheading: 'Arithmetic'}
 */
                function addN_(tensors) {
                    assert(Array.isArray(tensors), function () {
                        return 'The argument passed to tf.addN() must be a list of tensors';
                    });
                    assert(tensors.length >= 1, function () {
                        return "Must pass at least one tensor to tf.addN(), but got " + "".concat(tensors.length);
                    });
                    var $tensors = tensors.map(function (t, i) {
                        return convertToTensor(t, "tensors".concat(i), 'addN');
                    });
                    var firstTensor = $tensors[0];
                    $tensors.forEach(function (t) {
                        if (t.dtype !== firstTensor.dtype) {
                            throw new Error('All tensors passed to tf.addN() must have the same dtype');
                        }
                    });
                    $tensors.forEach(function (t) {
                        if (!arraysEqual(t.shape, firstTensor.shape)) {
                            throw new Error('All tensors passed to tf.addN() must have the same shape');
                        }
                    });
                    var inputs = $tensors;
                    return ENGINE.runKernel(AddN, inputs);
                }
                var addN = op({
                    addN_: addN_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the logical and of elements across dimensions of a `tf.Tensor`.
 *
 * Reduces the input along the dimensions given in `axes`. Unless `keepDims`
 * is true, the rank of the `tf.Tensor` is reduced by 1 for each entry in
 * `axes`. If `keepDims` is true, the reduced dimensions are retained with
 * length 1. If `axes` has no entries, all dimensions are reduced, and a
 * `tf.Tensor` with a single element is returned.
 *
 * ```js
 * const x = tf.tensor1d([1, 1, 1], 'bool');
 *
 * x.all().print();  // or tf.all(x)
 * ```
 *
 * ```js
 * const x = tf.tensor2d([1, 1, 0, 0], [2, 2], 'bool');
 *
 * const axis = 1;
 * x.all(axis).print();  // or tf.all(x, axis)
 * ```
 *
 * @param x The input tensor. Must be of dtype bool.
 * @param axis The dimension(s) to reduce. By default it reduces
 *     all dimensions.
 * @param keepDims If true, retains reduced dimensions with size 1.
 *
 * @doc {heading: 'Operations', subheading: 'Reduction'}
 */
                function all_(x, axis, keepDims) {
                    if (axis === void 0) {
                        axis = null;
                    }
                    if (keepDims === void 0) {
                        keepDims = false;
                    }
                    var $x = convertToTensor(x, 'x', 'all', 'bool');
                    var inputs = {
                        x: $x
                    };
                    var attrs = {
                        axis: axis,
                        keepDims: keepDims
                    };
                    return ENGINE.runKernel(All, inputs, attrs);
                }
                var all = op({
                    all_: all_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the logical or of elements across dimensions of a `tf.Tensor`.
 *
 * Reduces the input along the dimensions given in `axes`. Unless `keepDims`
 * is true, the rank of the `tf.Tensor` is reduced by 1 for each entry in
 * `axes`. If `keepDims` is true, the reduced dimensions are retained with
 * length 1. If `axes` has no entries, all dimensions are reduced, and a
 * `tf.Tensor` with a single element is returned.
 *
 * ```js
 * const x = tf.tensor1d([1, 1, 1], 'bool');
 *
 * x.any().print();  // or tf.any(x)
 * ```
 *
 * ```js
 * const x = tf.tensor2d([1, 1, 0, 0], [2, 2], 'bool');
 *
 * const axis = 1;
 * x.any(axis).print();  // or tf.any(x, axis)
 * ```
 *
 * @param x The input tensor. Must be of dtype bool.
 * @param axis The dimension(s) to reduce. By default it reduces
 *     all dimensions.
 * @param keepDims If true, retains reduced dimensions with size 1.
 *
 * @doc {heading: 'Operations', subheading: 'Reduction'}
 */
                function any_(x, axis, keepDims) {
                    if (axis === void 0) {
                        axis = null;
                    }
                    if (keepDims === void 0) {
                        keepDims = false;
                    }
                    var $x = convertToTensor(x, 'x', 'any', 'bool');
                    var inputs = {
                        x: $x
                    };
                    var attrs = {
                        axis: axis,
                        keepDims: keepDims
                    };
                    return ENGINE.runKernel(Any, inputs, attrs);
                }
                // tslint:disable-next-line:variable-name
                var any = op({
                    any_: any_
                });
                /**
 * @license
 * Copyright 2020 Google Inc. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Returns the indices of the maximum values along an `axis`.
 *
 * The result has the same shape as `input` with the dimension along `axis`
 * removed.
 *
 * ```js
 * const x = tf.tensor1d([1, 2, 3]);
 *
 * x.argMax().print();  // or tf.argMax(x)
 * ```
 *
 * ```js
 * const x = tf.tensor2d([1, 2, 4, 3], [2, 2]);
 *
 * const axis = 1;
 * x.argMax(axis).print();  // or tf.argMax(x, axis)
 * ```
 *
 * @param x The input tensor.
 * @param axis The dimension to reduce. Defaults to 0 (outer-most dimension).
 *
 * @doc {heading: 'Operations', subheading: 'Reduction'}
 */
                function argMax_(x, axis) {
                    if (axis === void 0) {
                        axis = 0;
                    }
                    var $x = convertToTensor(x, 'x', 'argMax');
                    var inputs = {
                        x: $x
                    };
                    var attrs = {
                        axis: axis
                    };
                    return ENGINE.runKernel(ArgMax, inputs, attrs);
                }
                var argMax = op({
                    argMax_: argMax_
                });
                /**
 * @license
 * Copyright 2020 Google Inc. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Returns the indices of the minimum values along an `axis`.
 *
 * The result has the same shape as `input` with the dimension along `axis`
 * removed.
 *
 * ```js
 * const x = tf.tensor1d([1, 2, 3]);
 *
 * x.argMin().print();  // or tf.argMin(x)
 * ```
 *
 * ```js
 * const x = tf.tensor2d([1, 2, 4, 3], [2, 2]);
 *
 * const axis = 1;
 * x.argMin(axis).print();  // or tf.argMin(x, axis)
 * ```
 *
 * @param x The input tensor.
 * @param axis The dimension to reduce. Defaults to 0 (outer-most dimension).
 *
 * @doc {heading: 'Operations', subheading: 'Reduction'}
 */
                function argMin_(x, axis) {
                    if (axis === void 0) {
                        axis = 0;
                    }
                    var $x = convertToTensor(x, 'x', 'argMin');
                    var inputs = {
                        x: $x
                    };
                    var attrs = {
                        axis: axis
                    };
                    return ENGINE.runKernel(ArgMin, inputs, attrs);
                }
                var argMin = op({
                    argMin_: argMin_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes asin of the input `tf.Tensor` element-wise: `asin(x)`
 *
 * ```js
 * const x = tf.tensor1d([0, 1, -1, .7]);
 *
 * x.asin().print();  // or tf.asin(x)
 * ```
 * @param x The input tensor.
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function asin_(x) {
                    var $x = convertToTensor(x, 'x', 'asin');
                    var inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(Asin, inputs);
                }
                var asin = op({
                    asin_: asin_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes inverse hyperbolic sin of the input `tf.Tensor` element-wise:
 * `asinh(x)`
 *
 * ```js
 * const x = tf.tensor1d([0, 1, -1, .7]);
 *
 * x.asinh().print();  // or tf.asinh(x)
 * ```
 * @param x The input tensor.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function asinh_(x) {
                    var $x = convertToTensor(x, 'x', 'asinh');
                    var inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(Asinh, inputs);
                }
                var asinh = op({
                    asinh_: asinh_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes atan of the input `tf.Tensor` element-wise: `atan(x)`
 *
 * ```js
 * const x = tf.tensor1d([0, 1, -1, .7]);
 *
 * x.atan().print();  // or tf.atan(x)
 * ```
 * @param x The input tensor.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function atan_(x) {
                    var $x = convertToTensor(x, 'x', 'atan');
                    var inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(Atan, inputs);
                }
                var atan = op({
                    atan_: atan_
                });
                /**
 * Computes arctangent of `tf.Tensor`s a / b element-wise: `atan2(a, b)`.
 * Supports broadcasting.
 *
 * ```js
 * const a = tf.tensor1d([1.0, 1.0, -1.0, .7]);
 * const b = tf.tensor1d([2.0, 13.0, 3.5, .21]);
 *
 * tf.atan2(a, b).print()
 * ```
 *
 * @param a The first tensor.
 * @param b The second tensor. Must have the same dtype as `a`.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function atan2_(a, b) {
                    var _a;
                    var $a = convertToTensor(a, 'a', 'atan2');
                    var $b = convertToTensor(b, 'b', 'atan2');
                    _a = __read(makeTypesMatch($a, $b), 2),
                        $a = _a[0],
                        $b = _a[1];
                    var inputs = {
                        a: $a,
                        b: $b
                    };
                    return ENGINE.runKernel(Atan2, inputs);
                }
                var atan2 = op({
                    atan2_: atan2_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes inverse hyperbolic tan of the input `tf.Tensor` element-wise:
 * `atanh(x)`
 *
 * ```js
 * const x = tf.tensor1d([0, .1, -.1, .7]);
 *
 * x.atanh().print();  // or tf.atanh(x)
 * ```
 * @param x The input tensor.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function atanh_(x) {
                    var $x = convertToTensor(x, 'x', 'atanh');
                    var inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(Atanh, inputs);
                }
                var atanh = op({
                    atanh_: atanh_
                });
                /**
 *
 * @param inputShape Input tensor shape is of the following dimensions:
 *     `[batch, height, width, inChannels]`.
 * @param filterShape The filter shape is of the following dimensions:
 *     `[filterHeight, filterWidth, depth]`.
 * @param strides The strides of the sliding window for each dimension of the
 *     input tensor: `[strideHeight, strideWidth]`.
 *     If `strides` is a single number,
 *     then `strideHeight == strideWidth`.
 * @param pad The type of padding algorithm.
 *    - `same` and stride 1: output will be of same size as input,
 *       regardless of filter size.
 *    - `valid`: output will be smaller than input if filter is larger
 *       than 1*1x1.
 *    - For more info, see this guide:
 *     [https://www.tensorflow.org/api_docs/python/tf/nn/convolution](
 *          https://www.tensorflow.org/api_docs/python/tf/nn/convolution)
 * @param dataFormat The data format of the input and output data.
 *     Defaults to 'NHWC'.
 * @param dilations The dilation rates: `[dilationHeight, dilationWidth]`.
 *     Defaults to `[1, 1]`. If `dilations` is a single number, then
 *     `dilationHeight == dilationWidth`.
 */
                function computeDilation2DInfo(inputShape, filterShape, strides, pad, dataFormat, dilations) {
                    if (dataFormat === void 0) {
                        dataFormat = 'NHWC';
                    }
                    // `computerConv2DInfo` require filterShape to be in the dimension of:
                    // `[filterHeight, filterWidth, depth, outDepth]`, dilation2d doesn't have
                    // outDepth, it should have the same depth as the input.
                    // Input shape: [batch, height, width, inChannels]
                    var inputChannels = inputShape[3];
                    var $filterShape = __spreadArray(__spreadArray([], __read(filterShape), false), [inputChannels], false);
                    var $dataFormat = convertConv2DDataFormat(dataFormat);
                    return computeConv2DInfo(inputShape, $filterShape, strides, dilations, pad, null /* roundingMode */
                        , null /* depthWise */
                        , $dataFormat);
                }
                function computePool2DInfo(inShape, filterSize, strides, dilations, pad, roundingMode, dataFormat) {
                    if (dataFormat === void 0) {
                        dataFormat = 'channelsLast';
                    }
                    var _a = __read(parseTupleParam(filterSize), 2)
                        , filterHeight = _a[0]
                        , filterWidth = _a[1];
                    var filterShape;
                    if (dataFormat === 'channelsLast') {
                        filterShape = [filterHeight, filterWidth, inShape[3], inShape[3]];
                    } else if (dataFormat === 'channelsFirst') {
                        filterShape = [filterHeight, filterWidth, inShape[1], inShape[1]];
                    } else {
                        throw new Error("Unknown dataFormat ".concat(dataFormat));
                    }
                    return computeConv2DInfo(inShape, filterShape, strides, dilations, pad, roundingMode, false, dataFormat);
                }
                /**
 * Computes the information for a forward pass of a pooling3D operation.
 */
                function computePool3DInfo(inShape, filterSize, strides, dilations, pad, roundingMode, dataFormat) {
                    if (dataFormat === void 0) {
                        dataFormat = 'NDHWC';
                    }
                    var _a = __read(parse3TupleParam(filterSize), 3)
                        , filterDepth = _a[0]
                        , filterHeight = _a[1]
                        , filterWidth = _a[2];
                    var filterShape;
                    var $dataFormat;
                    if (dataFormat === 'NDHWC') {
                        $dataFormat = 'channelsLast';
                        filterShape = [filterDepth, filterHeight, filterWidth, inShape[4], inShape[4]];
                    } else if (dataFormat === 'NCDHW') {
                        $dataFormat = 'channelsFirst';
                        filterShape = [filterDepth, filterHeight, filterWidth, inShape[1], inShape[1]];
                    } else {
                        throw new Error("Unknown dataFormat ".concat(dataFormat));
                    }
                    return computeConv3DInfo(inShape, filterShape, strides, dilations, pad, false, $dataFormat, roundingMode);
                }
                /**
 * Computes the information for a forward pass of a convolution/pooling
 * operation.
 */
                function computeConv2DInfo(inShape, filterShape, strides, dilations, pad, roundingMode, depthwise, dataFormat) {
                    var _a, _b;
                    if (depthwise === void 0) {
                        depthwise = false;
                    }
                    if (dataFormat === void 0) {
                        dataFormat = 'channelsLast';
                    }
                    var _c = __read([-1, -1, -1, -1], 4)
                        , batchSize = _c[0]
                        , inHeight = _c[1]
                        , inWidth = _c[2]
                        , inChannels = _c[3];
                    if (dataFormat === 'channelsLast') {
                        _a = __read(inShape, 4),
                            batchSize = _a[0],
                            inHeight = _a[1],
                            inWidth = _a[2],
                            inChannels = _a[3];
                    } else if (dataFormat === 'channelsFirst') {
                        _b = __read(inShape, 4),
                            batchSize = _b[0],
                            inChannels = _b[1],
                            inHeight = _b[2],
                            inWidth = _b[3];
                    } else {
                        throw new Error("Unknown dataFormat ".concat(dataFormat));
                    }
                    var _d = __read(filterShape, 4)
                        , filterHeight = _d[0]
                        , filterWidth = _d[1]
                        , filterChannels = _d[3];
                    var _e = __read(parseTupleParam(strides), 2)
                        , strideHeight = _e[0]
                        , strideWidth = _e[1];
                    var _f = __read(parseTupleParam(dilations), 2)
                        , dilationHeight = _f[0]
                        , dilationWidth = _f[1];
                    var effectiveFilterHeight = getEffectiveFilterSize(filterHeight, dilationHeight);
                    var effectiveFilterWidth = getEffectiveFilterSize(filterWidth, dilationWidth);
                    var _g = getPadAndOutInfo(pad, inHeight, inWidth, strideHeight, strideWidth, effectiveFilterHeight, effectiveFilterWidth, roundingMode, dataFormat)
                        , padInfo = _g.padInfo
                        , outHeight = _g.outHeight
                        , outWidth = _g.outWidth;
                    var outChannels = depthwise ? filterChannels * inChannels : filterChannels;
                    var outShape;
                    if (dataFormat === 'channelsFirst') {
                        outShape = [batchSize, outChannels, outHeight, outWidth];
                    } else if (dataFormat === 'channelsLast') {
                        outShape = [batchSize, outHeight, outWidth, outChannels];
                    }
                    return {
                        batchSize: batchSize,
                        dataFormat: dataFormat,
                        inHeight: inHeight,
                        inWidth: inWidth,
                        inChannels: inChannels,
                        outHeight: outHeight,
                        outWidth: outWidth,
                        outChannels: outChannels,
                        padInfo: padInfo,
                        strideHeight: strideHeight,
                        strideWidth: strideWidth,
                        filterHeight: filterHeight,
                        filterWidth: filterWidth,
                        effectiveFilterHeight: effectiveFilterHeight,
                        effectiveFilterWidth: effectiveFilterWidth,
                        dilationHeight: dilationHeight,
                        dilationWidth: dilationWidth,
                        inShape: inShape,
                        outShape: outShape,
                        filterShape: filterShape
                    };
                }
                /**
 * Computes the information for a forward pass of a 3D convolution/pooling
 * operation.
 */
                function computeConv3DInfo(inShape, filterShape, strides, dilations, pad, depthwise, dataFormat, roundingMode) {
                    var _a, _b;
                    if (depthwise === void 0) {
                        depthwise = false;
                    }
                    if (dataFormat === void 0) {
                        dataFormat = 'channelsLast';
                    }
                    var _c = __read([-1, -1, -1, -1, -1], 5)
                        , batchSize = _c[0]
                        , inDepth = _c[1]
                        , inHeight = _c[2]
                        , inWidth = _c[3]
                        , inChannels = _c[4];
                    if (dataFormat === 'channelsLast') {
                        _a = __read(inShape, 5),
                            batchSize = _a[0],
                            inDepth = _a[1],
                            inHeight = _a[2],
                            inWidth = _a[3],
                            inChannels = _a[4];
                    } else if (dataFormat === 'channelsFirst') {
                        _b = __read(inShape, 5),
                            batchSize = _b[0],
                            inChannels = _b[1],
                            inDepth = _b[2],
                            inHeight = _b[3],
                            inWidth = _b[4];
                    } else {
                        throw new Error("Unknown dataFormat ".concat(dataFormat));
                    }
                    var _d = __read(filterShape, 5)
                        , filterDepth = _d[0]
                        , filterHeight = _d[1]
                        , filterWidth = _d[2]
                        , filterChannels = _d[4];
                    var _e = __read(parse3TupleParam(strides), 3)
                        , strideDepth = _e[0]
                        , strideHeight = _e[1]
                        , strideWidth = _e[2];
                    var _f = __read(parse3TupleParam(dilations), 3)
                        , dilationDepth = _f[0]
                        , dilationHeight = _f[1]
                        , dilationWidth = _f[2];
                    var effectiveFilterDepth = getEffectiveFilterSize(filterDepth, dilationDepth);
                    var effectiveFilterHeight = getEffectiveFilterSize(filterHeight, dilationHeight);
                    var effectiveFilterWidth = getEffectiveFilterSize(filterWidth, dilationWidth);
                    var _g = get3DPadAndOutInfo(pad, inDepth, inHeight, inWidth, strideDepth, strideHeight, strideWidth, effectiveFilterDepth, effectiveFilterHeight, effectiveFilterWidth, roundingMode)
                        , padInfo = _g.padInfo
                        , outDepth = _g.outDepth
                        , outHeight = _g.outHeight
                        , outWidth = _g.outWidth;
                    var outChannels = depthwise ? filterChannels * inChannels : filterChannels;
                    var outShape;
                    if (dataFormat === 'channelsFirst') {
                        outShape = [batchSize, outChannels, outDepth, outHeight, outWidth];
                    } else if (dataFormat === 'channelsLast') {
                        outShape = [batchSize, outDepth, outHeight, outWidth, outChannels];
                    }
                    return {
                        batchSize: batchSize,
                        dataFormat: dataFormat,
                        inDepth: inDepth,
                        inHeight: inHeight,
                        inWidth: inWidth,
                        inChannels: inChannels,
                        outDepth: outDepth,
                        outHeight: outHeight,
                        outWidth: outWidth,
                        outChannels: outChannels,
                        padInfo: padInfo,
                        strideDepth: strideDepth,
                        strideHeight: strideHeight,
                        strideWidth: strideWidth,
                        filterDepth: filterDepth,
                        filterHeight: filterHeight,
                        filterWidth: filterWidth,
                        effectiveFilterDepth: effectiveFilterDepth,
                        effectiveFilterHeight: effectiveFilterHeight,
                        effectiveFilterWidth: effectiveFilterWidth,
                        dilationDepth: dilationDepth,
                        dilationHeight: dilationHeight,
                        dilationWidth: dilationWidth,
                        inShape: inShape,
                        outShape: outShape,
                        filterShape: filterShape
                    };
                }
                function computeOutputShape2D(inShape, fieldSize, stride, zeroPad, roundingMode) {
                    if (zeroPad == null) {
                        zeroPad = computeDefaultPad(inShape, fieldSize, stride);
                    }
                    var inputRows = inShape[0];
                    var inputCols = inShape[1];
                    var outputRows = round$1((inputRows - fieldSize + 2 * zeroPad) / stride + 1, roundingMode);
                    var outputCols = round$1((inputCols - fieldSize + 2 * zeroPad) / stride + 1, roundingMode);
                    return [outputRows, outputCols];
                }
                function computeOutputShape4D(inShape, fieldSize, outChannels, stride, zeroPad, roundingMode) {
                    if (zeroPad == null) {
                        zeroPad = computeDefaultPad(inShape, fieldSize, stride);
                    }
                    var inputDepth = inShape[0];
                    var inputRows = inShape[1];
                    var inputCols = inShape[2];
                    var outputDepths = round$1((inputDepth - fieldSize + 2 * zeroPad) / stride + 1, roundingMode);
                    var outputRows = round$1((inputRows - fieldSize + 2 * zeroPad) / stride + 1, roundingMode);
                    var outputCols = round$1((inputCols - fieldSize + 2 * zeroPad) / stride + 1, roundingMode);
                    return [outputDepths, outputRows, outputCols, outChannels];
                }
                function computeDefaultPad(inputShape, fieldSize, stride, dilation) {
                    if (dilation === void 0) {
                        dilation = 1;
                    }
                    var effectiveFieldSize = getEffectiveFilterSize(fieldSize, dilation);
                    return Math.floor((inputShape[0] * (stride - 1) - stride + effectiveFieldSize) / 2);
                }
                function parseTupleParam(param) {
                    if (typeof param === 'number') {
                        return [param, param, param];
                    }
                    if (param.length === 2) {
                        return [param[0], param[1], 1];
                    }
                    return param;
                }
                function parse3TupleParam(param) {
                    return typeof param === 'number' ? [param, param, param] : param;
                }
                /* See https://www.tensorflow.org/api_docs/python/tf/nn/atrous_conv2d
 * Atrous convolution is equivalent to standard convolution with upsampled
 * filters with effective_filter_height =
 * filter_height + (filter_height - 1) * (dilation - 1)
 * and effective_filter_width =
 * filter_width + (filter_width - 1) * (dilation - 1),
 * produced by inserting dilation - 1 zeros along consecutive elements across
 * the filters' spatial dimensions.
 * When there is a dilation, this converts a filter dimension to the
 * effective filter dimension, so it can be used in a standard convolution.
 */
                function getEffectiveFilterSize(filterSize, dilation) {
                    if (dilation <= 1) {
                        return filterSize;
                    }
                    return filterSize + (filterSize - 1) * (dilation - 1);
                }
                function getPadAndOutInfo(pad, inHeight, inWidth, strideHeight, strideWidth, filterHeight, filterWidth, roundingMode, dataFormat) {
                    var padInfo;
                    var outHeight;
                    var outWidth;
                    if (typeof pad === 'number') {
                        var padType = pad === 0 ? 'VALID' : 'NUMBER';
                        padInfo = {
                            top: pad,
                            bottom: pad,
                            left: pad,
                            right: pad,
                            type: padType
                        };
                        var outShape = computeOutputShape2D([inHeight, inWidth], filterHeight, strideHeight, pad, roundingMode);
                        outHeight = outShape[0];
                        outWidth = outShape[1];
                    } else if (pad === 'same') {
                        outHeight = Math.ceil(inHeight / strideHeight);
                        outWidth = Math.ceil(inWidth / strideWidth);
                        var padAlongHeight = Math.max(0, (outHeight - 1) * strideHeight + filterHeight - inHeight);
                        var padAlongWidth = Math.max(0, (outWidth - 1) * strideWidth + filterWidth - inWidth);
                        var top = Math.floor(padAlongHeight / 2);
                        var bottom = padAlongHeight - top;
                        var left = Math.floor(padAlongWidth / 2);
                        var right = padAlongWidth - left;
                        padInfo = {
                            top: top,
                            bottom: bottom,
                            left: left,
                            right: right,
                            type: 'SAME'
                        };
                    } else if (pad === 'valid') {
                        padInfo = {
                            top: 0,
                            bottom: 0,
                            left: 0,
                            right: 0,
                            type: 'VALID'
                        };
                        outHeight = Math.ceil((inHeight - filterHeight + 1) / strideHeight);
                        outWidth = Math.ceil((inWidth - filterWidth + 1) / strideWidth);
                    } else if (typeof pad === 'object') {
                        var top = dataFormat === 'channelsLast' ? pad[1][0] : pad[2][0];
                        var bottom = dataFormat === 'channelsLast' ? pad[1][1] : pad[2][1];
                        var left = dataFormat === 'channelsLast' ? pad[2][0] : pad[3][0];
                        var right = dataFormat === 'channelsLast' ? pad[2][1] : pad[3][1];
                        var padType = top === 0 && bottom === 0 && left === 0 && right === 0 ? 'VALID' : 'EXPLICIT';
                        padInfo = {
                            top: top,
                            bottom: bottom,
                            left: left,
                            right: right,
                            type: padType
                        };
                        outHeight = round$1((inHeight - filterHeight + top + bottom) / strideHeight + 1, roundingMode);
                        outWidth = round$1((inWidth - filterWidth + left + right) / strideWidth + 1, roundingMode);
                    } else {
                        throw Error("Unknown padding parameter: ".concat(pad));
                    }
                    return {
                        padInfo: padInfo,
                        outHeight: outHeight,
                        outWidth: outWidth
                    };
                }
                function get3DPadAndOutInfo(pad, inDepth, inHeight, inWidth, strideDepth, strideHeight, strideWidth, filterDepth, filterHeight, filterWidth, roundingMode) {
                    var padInfo;
                    var outDepth;
                    var outHeight;
                    var outWidth;
                    if (typeof pad === 'number') {
                        var padType = pad === 0 ? 'VALID' : 'NUMBER';
                        padInfo = {
                            top: pad,
                            bottom: pad,
                            left: pad,
                            right: pad,
                            front: pad,
                            back: pad,
                            type: padType
                        };
                        var outShape = computeOutputShape4D([inDepth, inHeight, inWidth, 1], filterDepth, 1, strideDepth, pad, roundingMode);
                        outDepth = outShape[0];
                        outHeight = outShape[1];
                        outWidth = outShape[2];
                    } else if (pad === 'same') {
                        outDepth = Math.ceil(inDepth / strideDepth);
                        outHeight = Math.ceil(inHeight / strideHeight);
                        outWidth = Math.ceil(inWidth / strideWidth);
                        var padAlongDepth = (outDepth - 1) * strideDepth + filterDepth - inDepth;
                        var padAlongHeight = (outHeight - 1) * strideHeight + filterHeight - inHeight;
                        var padAlongWidth = (outWidth - 1) * strideWidth + filterWidth - inWidth;
                        var front = Math.floor(padAlongDepth / 2);
                        var back = padAlongDepth - front;
                        var top = Math.floor(padAlongHeight / 2);
                        var bottom = padAlongHeight - top;
                        var left = Math.floor(padAlongWidth / 2);
                        var right = padAlongWidth - left;
                        padInfo = {
                            top: top,
                            bottom: bottom,
                            left: left,
                            right: right,
                            front: front,
                            back: back,
                            type: 'SAME'
                        };
                    } else if (pad === 'valid') {
                        padInfo = {
                            top: 0,
                            bottom: 0,
                            left: 0,
                            right: 0,
                            front: 0,
                            back: 0,
                            type: 'VALID'
                        };
                        outDepth = Math.ceil((inDepth - filterDepth + 1) / strideDepth);
                        outHeight = Math.ceil((inHeight - filterHeight + 1) / strideHeight);
                        outWidth = Math.ceil((inWidth - filterWidth + 1) / strideWidth);
                    } else {
                        throw Error("Unknown padding parameter: ".concat(pad));
                    }
                    return {
                        padInfo: padInfo,
                        outDepth: outDepth,
                        outHeight: outHeight,
                        outWidth: outWidth
                    };
                }
                /**
 * Rounds a value depending on the rounding mode
 * @param value
 * @param roundingMode A string from: 'ceil', 'round', 'floor'. If none is
 *     provided, it will default to truncate.
 */
                function round$1(value, roundingMode) {
                    if (!roundingMode) {
                        return Math.trunc(value);
                    }
                    switch (roundingMode) {
                        case 'round':
                            // used for Caffe Conv
                            return Math.round(value);
                        case 'ceil':
                            // used for Caffe Pool
                            return Math.ceil(value);
                        case 'floor':
                            return Math.floor(value);
                        default:
                            throw new Error("Unknown roundingMode ".concat(roundingMode));
                    }
                }
                function tupleValuesAreOne(param) {
                    var _a = __read(parseTupleParam(param), 3)
                        , dimA = _a[0]
                        , dimB = _a[1]
                        , dimC = _a[2];
                    return dimA === 1 && dimB === 1 && dimC === 1;
                }
                function eitherStridesOrDilationsAreOne(strides, dilations) {
                    return tupleValuesAreOne(strides) || tupleValuesAreOne(dilations);
                }
                /**
 * Convert Conv2D dataFormat from 'NHWC'|'NCHW' to
 *    'channelsLast'|'channelsFirst'
 * @param dataFormat in 'NHWC'|'NCHW' mode
 * @return dataFormat in 'channelsLast'|'channelsFirst' mode
 * @throws unknown dataFormat
 */
                function convertConv2DDataFormat(dataFormat) {
                    if (dataFormat === 'NHWC') {
                        return 'channelsLast';
                    } else if (dataFormat === 'NCHW') {
                        return 'channelsFirst';
                    } else {
                        throw new Error("Unknown dataFormat ".concat(dataFormat));
                    }
                }
                /**
 * Check validity of pad when using dimRoundingMode.
 * @param opDesc A string of op description
 * @param pad The type of padding algorithm.
 *   - `same` and stride 1: output will be of same size as input,
 *       regardless of filter size.
 *   - `valid` output will be smaller than input if filter is larger
 *       than 1x1.
 *   - For more info, see this guide:
 *     [https://www.tensorflow.org/api_docs/python/tf/nn/convolution](
 *          https://www.tensorflow.org/api_docs/python/tf/nn/convolution)
 * @param dimRoundingMode A string from: 'ceil', 'round', 'floor'. If none is
 *     provided, it will default to truncate.
 * @throws unknown padding parameter
 */
                function checkPadOnDimRoundingMode(opDesc, pad, dimRoundingMode) {
                    if (dimRoundingMode != null) {
                        if (typeof pad === 'string') {
                            throw Error("Error in ".concat(opDesc, ": pad must be an integer when using ") + "dimRoundingMode ".concat(dimRoundingMode, " but got pad ").concat(pad, "."));
                        } else if (typeof pad === 'number') {
                            assert(isInt(pad), function () {
                                return "Error in ".concat(opDesc, ": pad must be an integer when using ") + "dimRoundingMode ".concat(dimRoundingMode, " but got pad ").concat(pad, ".");
                            });
                        } else if (typeof pad === 'object') {
                            pad.forEach(function (p) {
                                p.forEach(function (v) {
                                    assert(isInt(v), function () {
                                        return "Error in ".concat(opDesc, ": pad must be an integer when using ") + "dimRoundingMode ".concat(dimRoundingMode, " but got pad ").concat(v, ".");
                                    });
                                });
                            });
                        } else {
                            throw Error("Error in ".concat(opDesc, ": Unknown padding parameter: ").concat(pad));
                        }
                    }
                }
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Reshapes a `tf.Tensor` to a given shape.
 *
 * Given an input tensor, returns a new tensor with the same values as the
 * input tensor with shape `shape`.
 *
 * If one component of shape is the special value -1, the size of that
 * dimension is computed so that the total size remains constant. In
 * particular, a shape of [-1] flattens into 1-D. At most one component of
 * shape can be -1.
 *
 * If shape is 1-D or higher, then the operation returns a tensor with shape
 * shape filled with the values of tensor. In this case, the number of
 * elements implied by shape must be the same as the number of elements in
 * tensor.
 *
 * ```js
 * const x = tf.tensor1d([1, 2, 3, 4]);
 * x.reshape([2, 2]).print();
 * ```
 *
 * @param x The input tensor to be reshaped.
 * @param shape An array of integers defining the output tensor shape.
 *
 * @doc {heading: 'Tensors', subheading: 'Transformations'}
 */
                function reshape_(x, shape) {
                    var $x = convertToTensor(x, 'x', 'reshape', 'string_or_numeric');
                    var inputs = {
                        x: $x
                    };
                    var attrs = {
                        shape: shape
                    };
                    return ENGINE.runKernel(Reshape, inputs, attrs);
                }
                var reshape = op({
                    reshape_: reshape_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the 2D average pooling of an image.
 *
 * @param x The input tensor, of rank 4 or rank 3 of shape
 *     `[batch, height, width, inChannels]`. If rank 3, batch of 1 is assumed.
 * @param filterSize The filter size: `[filterHeight, filterWidth]`. If
 *     `filterSize` is a single number, then `filterHeight == filterWidth`.
 * @param strides The strides of the pooling: `[strideHeight, strideWidth]`. If
 *     `strides` is a single number, then `strideHeight == strideWidth`.
 * @param pad The type of padding algorithm:
 *    - `same` and stride 1: output will be of same size as input,
 *       regardless of filter size.
 *    - `valid`: output will be smaller than input if filter is larger
 *       than 1x1.
 *    - For more info, see this guide:
 *     [https://www.tensorflow.org/api_docs/python/tf/nn/convolution](
 *         https://www.tensorflow.org/api_docs/python/tf/nn/convolution)
 * @param dimRoundingMode A string from: 'ceil', 'round', 'floor'. If none is
 *     provided, it will default to truncate.
 *
 * @doc {heading: 'Operations', subheading: 'Convolution'}
 */
                function avgPool_(x, filterSize, strides, pad, dimRoundingMode) {
                    var $x = convertToTensor(x, 'x', 'avgPool', 'float32');
                    var dilations = 1;
                    assert(eitherStridesOrDilationsAreOne(strides, dilations), function () {
                        return 'Error in avgPool: Either strides or dilations must be 1. ' + "Got strides ".concat(strides, " and dilations '").concat(dilations, "'");
                    });
                    var x4D = $x;
                    var reshapedTo4D = false;
                    if ($x.rank === 3) {
                        reshapedTo4D = true;
                        x4D = reshape($x, [1, $x.shape[0], $x.shape[1], $x.shape[2]]);
                    }
                    assert(x4D.rank === 4, function () {
                        return "Error in avgPool: x must be rank 4 but got rank ".concat(x4D.rank, ".");
                    });
                    checkPadOnDimRoundingMode('avgPool', pad, dimRoundingMode);
                    var inputs = {
                        x: x4D
                    };
                    var attrs = {
                        filterSize: filterSize,
                        strides: strides,
                        pad: pad,
                        dimRoundingMode: dimRoundingMode
                    };
                    // tslint:disable-next-line: no-unnecessary-type-assertion
                    var res = ENGINE.runKernel(AvgPool, inputs, attrs);
                    res = cast(res, $x.dtype);
                    if (reshapedTo4D) {
                        return reshape(res, [res.shape[1], res.shape[2], res.shape[3]]);
                    }
                    return res;
                }
                var avgPool = op({
                    avgPool_: avgPool_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the 3D average pooling.
 *
 * ```js
 * const x = tf.tensor5d([1, 2, 3, 4, 5, 6, 7, 8], [1, 2, 2, 2, 1]);
 * const result = tf.avgPool3d(x, 2, 1, 'valid');
 * result.print();
 * ```
 *
 * @param x The input tensor, of rank 5 or rank 4 of shape
 *     `[batch, depth, height, width, inChannels]`.
 * @param filterSize The filter size:
 *     `[filterDepth, filterHeight, filterWidth]`.
 *     If `filterSize` is a single number,
 *     then `filterDepth == filterHeight == filterWidth`.
 * @param strides The strides of the pooling:
 *     `[strideDepth, strideHeight, strideWidth]`.
 *     If `strides` is a single number,
 *     then `strideDepth == strideHeight == strideWidth`.
 * @param pad The type of padding algorithm.
 *    - `same` and stride 1: output will be of same size as input,
 *       regardless of filter size.
 *    - `valid`: output will be smaller than input if filter is larger
 *       than 1*1x1.
 *    - For more info, see this guide:
 *     [https://www.tensorflow.org/api_docs/python/tf/nn/convolution](
 *          https://www.tensorflow.org/api_docs/python/tf/nn/convolution)
 * @param dimRoundingMode A string from: 'ceil', 'round', 'floor'. If none is
 *     provided, it will default to truncate.
 * @param dataFormat An optional string from: "NDHWC", "NCDHW". Defaults to
 *     "NDHWC". Specify the data format of the input and output data. With the
 *     default format "NDHWC", the data is stored in the order of: [batch,
 *     depth, height, width, channels]. Only "NDHWC" is currently supported.
 *
 * @doc {heading: 'Operations', subheading: 'Convolution'}
 */
                function avgPool3d_(x, filterSize, strides, pad, dimRoundingMode, dataFormat) {
                    if (dataFormat === void 0) {
                        dataFormat = 'NDHWC';
                    }
                    var $x = convertToTensor(x, 'x', 'avgPool3d', 'float32');
                    var x5D = $x;
                    var reshapedTo5D = false;
                    if ($x.rank === 4) {
                        reshapedTo5D = true;
                        x5D = reshape($x, [1, $x.shape[0], $x.shape[1], $x.shape[2], $x.shape[3]]);
                    }
                    assert(x5D.rank === 5, function () {
                        return "Error in avgPool3d: x must be rank 5 but got rank ".concat(x5D.rank, ".");
                    });
                    assert(dataFormat === 'NDHWC', function () {
                        return "Error in avgPool3d: Only NDHWC is currently supported, " + "but got dataFormat of ".concat(dataFormat);
                    });
                    checkPadOnDimRoundingMode('avgPool3d', pad, dimRoundingMode);
                    var inputs = {
                        x: x5D
                    };
                    var attrs = {
                        filterSize: filterSize,
                        strides: strides,
                        pad: pad,
                        dimRoundingMode: dimRoundingMode,
                        dataFormat: dataFormat
                    };
                    // tslint:disable-next-line: no-unnecessary-type-assertion
                    var res = ENGINE.runKernel(AvgPool3D, inputs, attrs);
                    res = cast(res, x5D.dtype);
                    if (reshapedTo5D) {
                        return reshape(res, [res.shape[1], res.shape[2], res.shape[3], res.shape[4]]);
                    }
                    return res;
                }
                var avgPool3d = op({
                    avgPool3d_: avgPool3d_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Concatenates a list of `tf.Tensor`s along a given axis.
 *
 * The tensors ranks and types must match, and their sizes must match in all
 * dimensions except `axis`.
 *
 * Also available are stricter rank-specific methods that assert that
 * `tensors` are of the given rank:
 *   - `tf.concat1d`
 *   - `tf.concat2d`
 *   - `tf.concat3d`
 *   - `tf.concat4d`
 *
 * Except `tf.concat1d` (which does not have axis param), all methods have
 * same signature as this method.
 *
 * ```js
 * const a = tf.tensor1d([1, 2]);
 * const b = tf.tensor1d([3, 4]);
 * a.concat(b).print();  // or a.concat(b)
 * ```
 *
 * ```js
 * const a = tf.tensor1d([1, 2]);
 * const b = tf.tensor1d([3, 4]);
 * const c = tf.tensor1d([5, 6]);
 * tf.concat([a, b, c]).print();
 * ```
 *
 * ```js
 * const a = tf.tensor2d([[1, 2], [10, 20]]);
 * const b = tf.tensor2d([[3, 4], [30, 40]]);
 * const axis = 1;
 * tf.concat([a, b], axis).print();
 * ```
 * @param tensors A list of tensors to concatenate.
 * @param axis The axis to concatenate along. Defaults to 0 (the first dim).
 *
 * @doc {heading: 'Tensors', subheading: 'Slicing and Joining'}
 */
                function concat_(tensors, axis) {
                    if (axis === void 0) {
                        axis = 0;
                    }
                    assert(tensors.length >= 1, function () {
                        return 'Pass at least one tensor to concat';
                    });
                    var $tensors = convertToTensorArray(tensors, 'tensors', 'concat', 'string_or_numeric');
                    if ($tensors[0].dtype === 'complex64') {
                        $tensors.forEach(function (tensor) {
                            if (tensor.dtype !== 'complex64') {
                                throw new Error("Cannot concatenate complex64 tensors with a tensor\n          with dtype ".concat(tensor.dtype, ". "));
                            }
                        });
                    }
                    if ($tensors.length === 1) {
                        return clone($tensors[0]);
                    }
                    var inputs = $tensors;
                    var attr = {
                        axis: axis
                    };
                    return ENGINE.runKernel(Concat, inputs, attr);
                }
                var concat = op({
                    concat_: concat_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes sigmoid element-wise, `1 / (1 + exp(-x))`
 *
 * ```js
 * const x = tf.tensor1d([0, -1, 2, -3]);
 *
 * x.sigmoid().print();  // or tf.sigmoid(x)
 * ```
 * @param x The input tensor.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function sigmoid_(x) {
                    var $x = convertToTensor(x, 'x', 'sigmoid', 'float32');
                    var inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(Sigmoid, inputs);
                }
                var sigmoid = op({
                    sigmoid_: sigmoid_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Extracts a slice from a `tf.Tensor` starting at coordinates `begin`
 * and is of size `size`.
 *
 * Also available are stricter rank-specific methods with the same signature
 * as this method that assert that `x` is of the given rank:
 *   - `tf.slice1d`
 *   - `tf.slice2d`
 *   - `tf.slice3d`
 *   - `tf.slice4d`
 *
 * ```js
 * const x = tf.tensor1d([1, 2, 3, 4]);
 *
 * x.slice([1], [2]).print();
 * ```
 *
 * ```js
 * const x = tf.tensor2d([1, 2, 3, 4], [2, 2]);
 *
 * x.slice([1, 0], [1, 2]).print();
 * ```
 * @param x The input `tf.Tensor` to slice from.
 * @param begin The coordinates to start the slice from. The length can be
 *     less than the rank of x - the rest of the axes will have implicit 0 as
 *     start. Can also be a single number, in which case it specifies the
 *     first axis.
 * @param size The size of the slice. The length can be less than the rank of
 *     x - the rest of the axes will have implicit -1. A value of -1 requests
 *     the rest of the dimensions in the axis. Can also be a single number,
 *     in which case it specifies the size of the first axis.
 *
 * @doc {heading: 'Tensors', subheading: 'Slicing and Joining'}
 */
                function slice_(x, begin, size) {
                    var $x = convertToTensor(x, 'x', 'slice', 'string_or_numeric');
                    if ($x.rank === 0) {
                        throw new Error('Slicing scalar is not possible');
                    }
                    var inputs = {
                        x: $x
                    };
                    var attrs = {
                        begin: begin,
                        size: size
                    };
                    return ENGINE.runKernel(Slice, inputs, attrs);
                }
                var slice = op({
                    slice_: slice_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes hyperbolic tangent of the input `tf.Tensor` element-wise: `tanh(x)`
 *
 * ```js
 * const x = tf.tensor1d([0, 1, -1, 70]);
 *
 * x.tanh().print();  // or tf.tanh(x)
 * ```
 * @param x The input tensor.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function tanh_(x) {
                    var $x = convertToTensor(x, 'x', 'tanh', 'float32');
                    var inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(Tanh, inputs);
                }
                var tanh = op({
                    tanh_: tanh_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the next state and output of a BasicLSTMCell.
 *
 * Returns `[newC, newH]`.
 *
 * Derived from tf.contrib.rnn.BasicLSTMCell.
 *
 * @param forgetBias Forget bias for the cell.
 * @param lstmKernel The weights for the cell.
 * @param lstmBias The bias for the cell.
 * @param data The input to the cell.
 * @param c Previous cell state.
 * @param h Previous cell output.
 *
 * @doc {heading: 'Operations', subheading: 'RNN'}
 */
                function basicLSTMCell_(forgetBias, lstmKernel, lstmBias, data, c, h) {
                    var $forgetBias = convertToTensor(forgetBias, 'forgetBias', 'basicLSTMCell');
                    var $lstmKernel = convertToTensor(lstmKernel, 'lstmKernel', 'basicLSTMCell');
                    var $lstmBias = convertToTensor(lstmBias, 'lstmBias', 'basicLSTMCell');
                    var $data = convertToTensor(data, 'data', 'basicLSTMCell');
                    var $c = convertToTensor(c, 'c', 'basicLSTMCell');
                    var $h = convertToTensor(h, 'h', 'basicLSTMCell');
                    var combined = concat([$data, $h], 1);
                    var weighted = matMul$1(combined, $lstmKernel);
                    var res = add(weighted, $lstmBias);
                    // i = input_gate, j = new_input, f = forget_gate, o = output_gate
                    var batchSize = res.shape[0];
                    var sliceCols = res.shape[1] / 4;
                    var sliceSize = [batchSize, sliceCols];
                    var i = slice(res, [0, 0], sliceSize);
                    var j = slice(res, [0, sliceCols], sliceSize);
                    var f = slice(res, [0, sliceCols * 2], sliceSize);
                    var o = slice(res, [0, sliceCols * 3], sliceSize);
                    var newC = add(mul(sigmoid(i), tanh(j)), mul($c, sigmoid(add($forgetBias, f))));
                    var newH = mul(tanh(newC), sigmoid(o));
                    return [newC, newH];
                }
                var basicLSTMCell = op({
                    basicLSTMCell_: basicLSTMCell_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * This operation reshapes the "batch" dimension 0 into `M + 1` dimensions of
 * shape `blockShape + [batch]`, interleaves these blocks back into the grid
 * defined by the spatial dimensions `[1, ..., M]`, to obtain a result with
 * the same rank as the input. The spatial dimensions of this intermediate
 * result are then optionally cropped according to `crops` to produce the
 * output. This is the reverse of `tf.spaceToBatchND`. See below for a precise
 * description.
 *
 * ```js
 * const x = tf.tensor4d([1, 2, 3, 4], [4, 1, 1, 1]);
 * const blockShape = [2, 2];
 * const crops = [[0, 0], [0, 0]];
 *
 * x.batchToSpaceND(blockShape, crops).print();
 * ```
 *
 * @param x A `tf.Tensor`. N-D with `x.shape` = `[batch] + spatialShape +
 * remainingShape`, where spatialShape has `M` dimensions.
 * @param blockShape A 1-D array. Must have shape `[M]`, all values must
 * be >= 1.
 * @param crops A 2-D array.  Must have shape `[M, 2]`, all values must be >= 0.
 * `crops[i] = [cropStart, cropEnd]` specifies the amount to crop from input
 * dimension `i + 1`, which corresponds to spatial dimension `i`. It is required
 * that `cropStart[i] + cropEnd[i] <= blockShape[i] * inputShape[i + 1]`
 *
 * This operation is equivalent to the following steps:
 *
 * 1. Reshape `x` to `reshaped` of shape: `[blockShape[0], ...,
 * blockShape[M-1], batch / prod(blockShape), x.shape[1], ...,
 * x.shape[N-1]]`
 *
 * 2. Permute dimensions of `reshaped` to produce `permuted` of shape `[batch /
 * prod(blockShape),x.shape[1], blockShape[0], ..., x.shape[M],
 * blockShape[M-1],x.shape[M+1], ..., x.shape[N-1]]`
 *
 * 3. Reshape `permuted` to produce `reshapedPermuted` of shape `[batch /
 * prod(blockShape),x.shape[1] * blockShape[0], ..., x.shape[M] *
 * blockShape[M-1],x.shape[M+1], ..., x.shape[N-1]]`
 *
 * 4. Crop the start and end of dimensions `[1, ..., M]` of `reshapedPermuted`
 * according to `crops` to produce the output of shape: `[batch /
 * prod(blockShape),x.shape[1] * blockShape[0] - crops[0,0] - crops[0,1],
 * ..., x.shape[M] * blockShape[M-1] - crops[M-1,0] -
 * crops[M-1,1],x.shape[M+1], ..., x.shape[N-1]]`
 *
 * @doc {heading: 'Tensors', subheading: 'Transformations'}
 */
                function batchToSpaceND_(x, blockShape, crops) {
                    var $x = convertToTensor(x, 'x', 'batchToSpaceND');
                    var prod = blockShape.reduce(function (a, b) {
                        return a * b;
                    });
                    assert($x.rank >= 1 + blockShape.length, function () {
                        return "input rank is ".concat($x.rank, " but should be > than blockShape.length ").concat(blockShape.length);
                    });
                    assert(crops.length === blockShape.length, function () {
                        return "crops.length is ".concat(crops.length, " but should be equal to blockShape.length  ").concat(blockShape.length);
                    });
                    assert($x.shape[0] % prod === 0, function () {
                        return "input tensor batch is ".concat($x.shape[0], " but is not divisible by the product of ") + "the elements of blockShape ".concat(blockShape.join(' * '), " === ").concat(prod);
                    });
                    var inputs = {
                        x: $x
                    };
                    var attrs = {
                        blockShape: blockShape,
                        crops: crops
                    };
                    return ENGINE.runKernel(BatchToSpaceND, inputs, attrs);
                }
                var batchToSpaceND = op({
                    batchToSpaceND_: batchToSpaceND_
                });
                function xAs4D(x) {
                    var x4D;
                    if (x.rank === 0 || x.rank === 1) {
                        x4D = reshape(x, [1, 1, 1, x.size]);
                    } else if (x.rank === 2) {
                        x4D = reshape(x, [1, 1, x.shape[0], x.shape[1]]);
                    } else if (x.rank === 3) {
                        x4D = reshape(x, [1, x.shape[0], x.shape[1], x.shape[2]]);
                    } else {
                        x4D = x;
                    }
                    return x4D;
                }
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Batch normalization.
 *
 * As described in
 * [http://arxiv.org/abs/1502.03167](http://arxiv.org/abs/1502.03167).
 *
 * Mean, variance, scale, and offset can be of two shapes:
 *   - The same shape as the input.
 *   - In the common case, the depth dimension is the last dimension of x, so
 *     the values would be a `tf.Tensor1D` of shape [depth].
 *
 * Also available are stricter rank-specific methods with the same signature
 * as this method that assert that parameters passed are of given rank
 *   - `tf.batchNorm2d`
 *   - `tf.batchNorm3d`
 *   - `tf.batchNorm4d`
 *
 * @param x The input Tensor.
 * @param mean A mean Tensor.
 * @param variance A variance Tensor.
 * @param offset An offset Tensor.
 * @param scale A scale Tensor.
 * @param varianceEpsilon A small float number to avoid dividing by 0.
 *
 * @doc {heading: 'Operations', subheading: 'Normalization'}
 */
                function batchNorm_(x, mean, variance, offset, scale, varianceEpsilon) {
                    if (varianceEpsilon == null) {
                        varianceEpsilon = 0.001;
                    }
                    var $x = convertToTensor(x, 'x', 'batchNorm');
                    var $mean = convertToTensor(mean, 'mean', 'batchNorm');
                    var $variance = convertToTensor(variance, 'variance', 'batchNorm');
                    var $scale;
                    if (scale != null) {
                        $scale = convertToTensor(scale, 'scale', 'batchNorm');
                    }
                    var $offset;
                    if (offset != null) {
                        $offset = convertToTensor(offset, 'offset', 'batchNorm');
                    }
                    assert($mean.rank === $variance.rank, function () {
                        return 'Batch normalization gradient requires mean and variance to have ' + 'equal ranks.';
                    });
                    assert($offset == null || $mean.rank === $offset.rank, function () {
                        return 'Batch normalization gradient requires mean and offset to have ' + 'equal ranks.';
                    });
                    assert($scale == null || $mean.rank === $scale.rank, function () {
                        return 'Batch normalization gradient requires mean and scale to have ' + 'equal ranks.';
                    });
                    var x4D = xAs4D($x);
                    var inputs = {
                        x: x4D,
                        scale: $scale,
                        offset: $offset,
                        mean: $mean,
                        variance: $variance
                    };
                    var attrs = {
                        varianceEpsilon: varianceEpsilon
                    };
                    // tslint:disable-next-line: no-unnecessary-type-assertion
                    var res = ENGINE.runKernel(FusedBatchNorm, inputs, attrs);
                    return reshape(res, $x.shape);
                }
                var batchNorm = op({
                    batchNorm_: batchNorm_
                });
                /**
 * Batch normalization, strictly for 2D. For the more relaxed version, see
 * `tf.batchNorm`.
 *
 * @param x The input Tensor.
 * @param mean A mean Tensor.
 * @param variance A variance Tensor.
 * @param offset An offset Tensor.
 * @param scale A scale Tensor.
 * @param varianceEpsilon A small float number to avoid dividing by 0.
 */
                function batchNorm2d_(x, mean, variance, offset, scale, varianceEpsilon) {
                    var $x = convertToTensor(x, 'x', 'batchNorm');
                    var $mean = convertToTensor(mean, 'mean', 'batchNorm');
                    var $variance = convertToTensor(variance, 'variance', 'batchNorm');
                    var $scale;
                    if (scale != null) {
                        $scale = convertToTensor(scale, 'scale', 'batchNorm');
                    }
                    var $offset;
                    if (offset != null) {
                        $offset = convertToTensor(offset, 'offset', 'batchNorm');
                    }
                    assert($x.rank === 2, function () {
                        return "Error in batchNorm2D: x must be rank 2 but got rank " + "".concat($x.rank, ".");
                    });
                    assert($mean.rank === 2 || $mean.rank === 1, function () {
                        return "Error in batchNorm2D: mean must be rank 2 or rank 1 but " + "got rank ".concat($mean.rank, ".");
                    });
                    assert($variance.rank === 2 || $variance.rank === 1, function () {
                        return "Error in batchNorm2D: variance must be rank 2 or rank 1 " + "but got rank ".concat($variance.rank, ".");
                    });
                    if ($scale != null) {
                        assert($scale.rank === 2 || $scale.rank === 1, function () {
                            return "Error in batchNorm2D: scale must be rank 2 or rank 1 " + "but got rank ".concat($scale.rank, ".");
                        });
                    }
                    if ($offset != null) {
                        assert($offset.rank === 2 || $offset.rank === 1, function () {
                            return "Error in batchNorm2D: offset must be rank 2 or rank 1 " + "but got rank ".concat($offset.rank, ".");
                        });
                    }
                    return batchNorm($x, $mean, $variance, $offset, $scale, varianceEpsilon);
                }
                var batchNorm2d = op({
                    batchNorm2d_: batchNorm2d_
                });
                /**
 * Batch normalization, strictly for 3D. For the more relaxed version, see
 * `tf.batchNorm`.
 *
 * @param x The input Tensor.
 * @param mean A mean Tensor.
 * @param variance A variance Tensor.
 * @param offset An offset Tensor.
 * @param scale A scale Tensor.
 * @param varianceEpsilon A small float number to avoid dividing by 0.
 */
                function batchNorm3d_(x, mean, variance, offset, scale, varianceEpsilon) {
                    var $x = convertToTensor(x, 'x', 'batchNorm');
                    var $mean = convertToTensor(mean, 'mean', 'batchNorm');
                    var $variance = convertToTensor(variance, 'variance', 'batchNorm');
                    var $scale;
                    if (scale != null) {
                        $scale = convertToTensor(scale, 'scale', 'batchNorm');
                    }
                    var $offset;
                    if (offset != null) {
                        $offset = convertToTensor(offset, 'offset', 'batchNorm');
                    }
                    assert($x.rank === 3, function () {
                        return "Error in batchNorm3D: x must be rank 3 but got rank " + "".concat($x.rank, ".");
                    });
                    assert($mean.rank === 3 || $mean.rank === 1, function () {
                        return "Error in batchNorm3D: mean must be rank 3 or rank 1 but " + "got rank ".concat($mean.rank, ".");
                    });
                    assert($variance.rank === 3 || $variance.rank === 1, function () {
                        return "Error in batchNorm3D: variance must be rank 3 or rank 1 " + "but got rank ".concat($variance.rank, ".");
                    });
                    if ($scale != null) {
                        assert($scale.rank === 3 || $scale.rank === 1, function () {
                            return "Error in batchNorm3D: scale must be rank 3 or rank 1 " + "but got rank ".concat($scale.rank, ".");
                        });
                    }
                    if ($offset != null) {
                        assert($offset.rank === 3 || $offset.rank === 1, function () {
                            return "Error in batchNorm3D: offset must be rank 3 or rank 1 " + "but got rank ".concat($offset.rank, ".");
                        });
                    }
                    return batchNorm($x, $mean, $variance, $offset, $scale, varianceEpsilon);
                }
                var batchNorm3d = op({
                    batchNorm3d_: batchNorm3d_
                });
                /**
 * Batch normalization, strictly for 4D. For the more relaxed version, see
 * `tf.batchNorm`.
 *
 * @param x The input Tensor.
 * @param mean A mean Tensor.
 * @param variance A variance Tensor.
 * @param offset An offset Tensor.
 * @param scale A scale Tensor.
 * @param varianceEpsilon A small float number to avoid dividing by 0.
 */
                function batchNorm4d_(x, mean, variance, offset, scale, varianceEpsilon) {
                    var $x = convertToTensor(x, 'x', 'batchNorm');
                    var $mean = convertToTensor(mean, 'mean', 'batchNorm');
                    var $variance = convertToTensor(variance, 'variance', 'batchNorm');
                    var $scale;
                    if (scale != null) {
                        $scale = convertToTensor(scale, 'scale', 'batchNorm');
                    }
                    var $offset;
                    if (offset != null) {
                        $offset = convertToTensor(offset, 'offset', 'batchNorm');
                    }
                    assert($x.rank === 4, function () {
                        return "Error in batchNorm4D: x must be rank 4 but got rank " + "".concat($x.rank, ".");
                    });
                    assert($mean.rank === 4 || $mean.rank === 1, function () {
                        return "Error in batchNorm4D: mean must be rank 4 or rank 1 but " + "got rank ".concat($mean.rank, ".");
                    });
                    assert($variance.rank === 4 || $variance.rank === 1, function () {
                        return "Error in batchNorm4D: variance must be rank 4 or rank 1 " + "but got rank ".concat($variance.rank, ".");
                    });
                    if ($scale != null) {
                        assert($scale.rank === 4 || $scale.rank === 1, function () {
                            return "Error in batchNorm4D: scale must be rank 4 or rank 1 " + "but got rank ".concat($scale.rank, ".");
                        });
                    }
                    if ($offset != null) {
                        assert($offset.rank === 4 || $offset.rank === 1, function () {
                            return "Error in batchNorm4D: offset must be rank 4 or rank 1 " + "but got rank ".concat($offset.rank, ".");
                        });
                    }
                    return batchNorm($x, $mean, $variance, $offset, $scale, varianceEpsilon);
                }
                var batchNorm4d = op({
                    batchNorm4d_: batchNorm4d_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Outputs a vector with length `size` and the same dtype as `weights`.
 *
 * If `weights` are empty, then index `i` stores the number of times the value
 * `i` is counted in `x`. If `weights` are non-empty, then index `i` stores the
 * sum of the value in `weights` at each index where the corresponding value in
 * `x` is `i`.
 *
 * Values in `x` outside of the range [0, size) are ignored.
 *
 * @param x The input int tensor, rank 1.
 * @param weights The weights tensor, must have the same shape as x, or a
 *     length-0 Tensor, in which case it acts as all weights equal to 1.
 * @param size Non-negative integer.
 *
 * @doc {heading: 'Operations', subheading: 'Reduction'}
 */
                function bincount_(x, weights, size) {
                    var $x = convertToTensor(x, 'x', 'bincount');
                    var $weights = convertToTensor(weights, 'weights', 'bincount');
                    assert($x.dtype === 'int32', function () {
                        return "Error in bincount: input " + "dtype must be int32, but got ".concat($x.dtype);
                    });
                    assert(size >= 0, function () {
                        return "size must be non-negative, but got ".concat(size, ".");
                    });
                    assert($weights.size === $x.size || $weights.size === 0, function () {
                        return "Error in bincount: weights must have the same size as input or" + "0-length, but got input shape: ".concat($x.shape, ", weights shape: ") + "".concat($weights.shape, ".");
                    });
                    var inputs = {
                        x: $x,
                        weights: $weights
                    };
                    var attrs = {
                        size: size
                    };
                    return ENGINE.runKernel(Bincount, inputs, attrs);
                }
                var bincount = op({
                    bincount_: bincount_
                });
                /**
 * @license
 * Copyright 2021 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Return the shape of s0 op s1 with broadcast.
 *
 * compute r0, the broadcasted shape as a tensor.
 * s0, s1 and r0 are all integer vectors.
 *
 * This function returns the shape of the result of an operation between
 * two tensors of size s0 and s1 performed with broadcast.
 *
 * @param s0 A tensor representing a shape
 * @param s1 A tensor representing a shape
 *
 * @doc {heading: 'Tensors', subheading: 'Transformations'}
 */
                function broadcastArgs_(s0, s1) {
                    var shape1Input = convertToTensor(s0, 's0', 'broadcastArgs', 'int32');
                    var shape2Input = convertToTensor(s1, 's1', 'broadcastArgs', 'int32');
                    if (shape1Input.rank !== 1) {
                        throw new Error('broadcastArgs(): first input must be a vector (rank=1). ' + "Has rank ".concat(shape1Input.rank));
                    }
                    if (shape2Input.rank !== 1) {
                        throw new Error('broadcastArgs(): second input must be a vector (rank=1). ' + "Has rank ".concat(shape2Input.rank));
                    }
                    var inputs = {
                        s0: shape1Input,
                        s1: shape2Input
                    };
                    return ENGINE.runKernel(BroadcastArgs, inputs);
                }
                var broadcastArgs = op({
                    broadcastArgs_: broadcastArgs_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Broadcast an array to a compatible shape NumPy-style.
 *
 * The tensor's shape is compared to the broadcast shape from end to beginning.
 * Ones are prepended to the tensor's shape until it has the same length as
 * the broadcast shape. If input.shape[i]==shape[i], the (i+1)-th axis is
 * already broadcast-compatible. If input.shape[i]==1 and shape[i]==N, then
 * the input tensor is tiled N times along that axis (using tf.tile).
 *
 * @param input The tensor that is to be broadcasted.
 * @param shape The input is to be broadcast to this shape.
 *
 * @doc {heading: 'Tensors', subheading: 'Transformations'}
 */
                function broadcastTo_(x, shape) {
                    var input = convertToTensor(x, 'broadcastTo', 'x');
                    var xShape = input.shape;
                    assertNonNegativeIntegerDimensions(shape);
                    if (shape.length < input.rank) {
                        throw new Error("broadcastTo(): shape.length=".concat(shape.length, " < input.rank=").concat(input.rank, "."));
                    }
                    if (shape.length > input.rank) {
                        var newShape = input.shape.slice();
                        while (newShape.length < shape.length) {
                            newShape.unshift(1);
                        }
                        input = reshape(input, newShape);
                    }
                    var inputShape = input.shape;
                    var reps = Array.from(shape);
                    for (var i = shape.length - 1; i >= 0; i--) {
                        if (inputShape[i] === shape[i]) {
                            reps[i] = 1;
                        } else if (input.shape[i] !== 1) {
                            throw new Error("broadcastTo(): [".concat(xShape, "] cannot be broadcast to [").concat(shape, "]."));
                        }
                    }
                    var axes = reps.map(function (n, i) {
                        return n > 1 ? i : -1;
                    }).filter(function (i) {
                        return i >= 0;
                    });
                    if (axes.length === 0) {
                        return clone(input);
                    }
                    // TODO call broadcastTo kernel directly once backends implement broadcstTo
                    var inputs = {
                        x: input
                    };
                    var attrs = {
                        reps: reps
                    };
                    return ENGINE.runKernel(Tile, inputs, attrs);
                }
                var broadcastTo = op({
                    broadcastTo_: broadcastTo_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes ceiling of input `tf.Tensor` element-wise: `ceil(x)`
 *
 * ```js
 * const x = tf.tensor1d([.6, 1.1, -3.3]);
 *
 * x.ceil().print();  // or tf.ceil(x)
 * ```
 * @param x The input Tensor.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function ceil_(x) {
                    var $x = convertToTensor(x, 'x', 'ceil', 'float32');
                    var inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(Ceil, inputs);
                }
                var ceil = op({
                    ceil_: ceil_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Creates a `tf.Tensor` filled with a scalar value.
 *
 * ```js
 * tf.fill([2, 2], 4).print();
 * ```
 *
 * @param shape An array of integers defining the output tensor shape.
 * @param value The scalar value to fill the tensor with.
 * @param dtype The type of an element in the resulting tensor. Defaults to
 * 'float'.
 *
 * @doc {heading: 'Tensors', subheading: 'Creation'}
 */
                function fill(shape, value, dtype) {
                    assertNonNegativeIntegerDimensions(shape);
                    var attrs = {
                        shape: shape,
                        value: value,
                        dtype: dtype
                    };
                    return ENGINE.runKernel(Fill, {}, attrs);
                }
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Clips values element-wise. `max(min(x, clipValueMax), clipValueMin)`
 *
 * ```js
 * const x = tf.tensor1d([-1, 2, -3, 4]);
 *
 * x.clipByValue(-2, 3).print();  // or tf.clipByValue(x, -2, 3)
 * ```
 * @param x The input tensor.
 * @param clipValueMin Lower bound of range to be clipped to.
 * @param clipValueMax Upper bound of range to be clipped to.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function clipByValue_(x, clipValueMin, clipValueMax) {
                    var $x = convertToTensor(x, 'x', 'clipByValue');
                    assert(clipValueMin <= clipValueMax, function () {
                        return "Error in clip: min (".concat(clipValueMin, ") must be ") + "less than or equal to max (".concat(clipValueMax, ").");
                    });
                    if (clipValueMin === clipValueMax) {
                        return fill($x.shape, clipValueMin, $x.dtype);
                    }
                    var inputs = {
                        x: $x
                    };
                    var attrs = {
                        clipValueMin: clipValueMin,
                        clipValueMax: clipValueMax
                    };
                    return ENGINE.runKernel(ClipByValue, inputs, attrs);
                }
                var clipByValue = op({
                    clipByValue_: clipByValue_
                });
                /**
 * Concatenates a list of`tf.Tensor1D`s along an axis. See `concat` for details.
 *
 * For example, if:
 * A: shape(3) = |r1, g1, b1|
 * B: shape(2) = |r2, g2|
 * C = tf.concat1d([A, B]) == |r1, g1, b1, r2, g2|
 *
 * @param tensors A list of`tf.Tensor`s to concatenate.
 * @return The concatenated array.
 */
                function concat1d_(tensors) {
                    return concat(tensors, 0 /* axis */
                    );
                }
                var concat1d = op({
                    concat1d_: concat1d_
                });
                /**
 * Concatenates a list of`tf.Tensor2D`s along an axis. See `concat` for details.
 *
 * For example, if:
 * A: shape(2, 3) = | r1, g1, b1 |
 *                  | r2, g2, b2 |
 *
 * B: shape(2, 3) = | r3, g3, b3 |
 *                  | r4, g4, b4 |
 *
 * C = tf.concat2d([A, B], axis)
 *
 * if axis = 0:
 * C: shape(4, 3) = | r1, g1, b1 |
 *                  | r2, g2, b2 |
 *                  | r3, g3, b3 |
 *                  | r4, g4, b4 |
 *
 * if axis = 1:
 * C = shape(2, 6) = | r1, g1, b1, r3, g3, b3 |
 *                   | r2, g2, b2, r4, g4, b4 |
 *
 *
 * @param tensors A list of `tf.Tensor`s to concatenate.
 * @param axis The axis to concatenate along.
 * @return The concatenated array.
 */
                function concat2d_(tensors, axis) {
                    return concat(tensors, axis);
                }
                var concat2d = op({
                    concat2d_: concat2d_
                });
                /**
 * Concatenates a list of `tf.Tensor3D`s along an axis.
 * See `concat` for details.
 *
 * For example, if:
 * A: shape(2, 1, 3) = | r1, g1, b1 |
 *                     | r2, g2, b2 |
 *
 * B: shape(2, 1, 3) = | r3, g3, b3 |
 *                     | r4, g4, b4 |
 *
 * C = tf.concat3d([A, B], axis)
 *
 * if axis = 0:
 * C: shape(4, 1, 3) = | r1, g1, b1 |
 *                     | r2, g2, b2 |
 *                     | r3, g3, b3 |
 *                     | r4, g4, b4 |
 *
 * if axis = 1:
 * C: shape(2, 2, 3) = | r1, g1, b1, r3, g3, b3 |
 *                     | r2, g2, b2, r4, g4, b4 |
 *
 * if axis = 2:
 * C = shape(2, 1, 6) = | r1, g1, b1, r3, g3, b3 |
 *                      | r2, g2, b2, r4, g4, b4 |
 *
 * @param tensors A list of`tf.Tensor`s to concatenate.
 * @param axis The axis to concate along.
 * @return The concatenated array.
 */
                function concat3d_(tensors, axis) {
                    return concat(tensors, axis);
                }
                var concat3d = op({
                    concat3d_: concat3d_
                });
                /**
 * Concatenates a list of `tf.Tensor4D`s along an axis.
 * See `concat` for details.
 *
 * @param tensors A list of `tf.Tensor`s to concatenate.
 * @param axis The axis to concate along.
 * @return The concatenated array.
 */
                function concat4d_(tensors, axis) {
                    return concat(tensors, axis);
                }
                var concat4d = op({
                    concat4d_: concat4d_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes a 2D convolution over the input x.
 *
 * @param x The input tensor, of rank 4 or rank 3, of shape
 *     `[batch, height, width, inChannels]`. If rank 3, batch of 1 is
 * assumed.
 * @param filter The filter, rank 4, of shape
 *     `[filterHeight, filterWidth, inDepth, outDepth]`.
 * @param strides The strides of the convolution: `[strideHeight,
 * strideWidth]`.
 * @param pad The type of padding algorithm.
 *    - `same` and stride 1: output will be of same size as input,
 *       regardless of filter size.
 *    - `valid`: output will be smaller than input if filter is larger
 *       than 1x1.
 *   - For more info, see this guide:
 *     [https://www.tensorflow.org/api_docs/python/tf/nn/convolution](
 *          https://www.tensorflow.org/api_docs/python/tf/nn/convolution)
 * @param dataFormat: An optional string from: "NHWC", "NCHW". Defaults to
 *     "NHWC". Specify the data format of the input and output data. With the
 *     default format "NHWC", the data is stored in the order of: [batch,
 *     height, width, channels].
 * @param dilations The dilation rates: `[dilationHeight, dilationWidth]`
 *     in which we sample input values across the height and width dimensions
 *     in atrous convolution. Defaults to `[1, 1]`. If `dilations` is a single
 *     number, then `dilationHeight == dilationWidth`. If it is greater than
 *     1, then all values of `strides` must be 1.
 * @param dimRoundingMode A string from: 'ceil', 'round', 'floor'. If none is
 *     provided, it will default to truncate.
 *
 * @doc {heading: 'Operations', subheading: 'Convolution'}
 */
                function conv2d_(x, filter, strides, pad, dataFormat, dilations, dimRoundingMode) {
                    if (dataFormat === void 0) {
                        dataFormat = 'NHWC';
                    }
                    if (dilations === void 0) {
                        dilations = [1, 1];
                    }
                    var $x = convertToTensor(x, 'x', 'conv2d', 'float32');
                    var $filter = convertToTensor(filter, 'filter', 'conv2d', 'float32');
                    var x4D = $x;
                    var reshapedTo4D = false;
                    if ($x.rank === 3) {
                        reshapedTo4D = true;
                        x4D = reshape($x, [1, $x.shape[0], $x.shape[1], $x.shape[2]]);
                    }
                    assert(x4D.rank === 4, function () {
                        return "Error in conv2d: input must be rank 4, but got rank ".concat(x4D.rank, ".");
                    });
                    assert($filter.rank === 4, function () {
                        return "Error in conv2d: filter must be rank 4, but got rank " + "".concat($filter.rank, ".");
                    });
                    checkPadOnDimRoundingMode('conv2d', pad, dimRoundingMode);
                    var inDepth = dataFormat === 'NHWC' ? x4D.shape[3] : x4D.shape[1];
                    assert(inDepth === $filter.shape[2], function () {
                        return "Error in conv2d: depth of input (".concat(inDepth, ") must match ") + "input depth for filter ".concat($filter.shape[2], ".");
                    });
                    assert(eitherStridesOrDilationsAreOne(strides, dilations), function () {
                        return 'Error in conv2D: Either strides or dilations must be 1. ' + "Got strides ".concat(strides, " and dilations '").concat(dilations, "'");
                    });
                    var inputs = {
                        x: x4D,
                        filter: $filter
                    };
                    var attrs = {
                        strides: strides,
                        pad: pad,
                        dataFormat: dataFormat,
                        dilations: dilations,
                        dimRoundingMode: dimRoundingMode
                    };
                    // tslint:disable-next-line: no-unnecessary-type-assertion
                    var res = ENGINE.runKernel(Conv2D, inputs, attrs);
                    if (reshapedTo4D) {
                        return reshape(res, [res.shape[1], res.shape[2], res.shape[3]]);
                    }
                    return res;
                }
                var conv2d$1 = op({
                    conv2d_: conv2d_
                });
                /**
 * Computes a 1D convolution over the input x.
 *
 * @param x The input tensor, of rank 3 or rank 2, of shape
 *     `[batch, width, inChannels]`. If rank 2, batch of 1 is assumed.
 * @param filter The filter, rank 3, of shape
 *     `[filterWidth, inDepth, outDepth]`.
 * @param stride The number of entries by which the filter is moved right at
 *     each step.
 * @param pad The type of padding algorithm.
 *    - `same` and stride 1: output will be of same size as input,
 *       regardless of filter size.
 *    - `valid`: output will be smaller than input if filter is larger
 *       than 1x1.
 *   - For more info, see this guide:
 *     [https://www.tensorflow.org/api_docs/python/tf/nn/convolution](
 *          https://www.tensorflow.org/api_docs/python/tf/nn/convolution)
 * @param dataFormat An optional string from "NWC", "NCW". Defaults to "NWC",
 *     the data is stored in the order of [batch, in_width, in_channels]. Only
 *     "NWC" is currently supported.
 * @param dilation The dilation rate in which we sample input values in
 *     atrous convolution. Defaults to `1`. If it is greater than 1, then
 *     stride must be `1`.
 * @param dimRoundingMode A string from: 'ceil', 'round', 'floor'. If none is
 *     provided, it will default to truncate.
 *
 * @doc {heading: 'Operations', subheading: 'Convolution'}
 */
                function conv1d_(x, filter, stride, pad, dataFormat, dilation, dimRoundingMode) {
                    if (dataFormat === void 0) {
                        dataFormat = 'NWC';
                    }
                    if (dilation === void 0) {
                        dilation = 1;
                    }
                    var $x = convertToTensor(x, 'x', 'conv1d');
                    var $filter = convertToTensor(filter, 'filter', 'conv1d');
                    var x3D = $x;
                    var reshapedTo3D = false;
                    if ($x.rank === 2) {
                        reshapedTo3D = true;
                        x3D = reshape($x, [1, $x.shape[0], $x.shape[1]]);
                    }
                    assert(x3D.rank === 3, function () {
                        return "Error in conv1d: input must be rank 3, but got rank ".concat(x3D.rank, ".");
                    });
                    assert($filter.rank === 3, function () {
                        return "Error in conv1d: filter must be rank 3, but got rank " + "".concat($filter.rank, ".");
                    });
                    checkPadOnDimRoundingMode('conv1d', pad, dimRoundingMode);
                    assert(x3D.shape[2] === $filter.shape[1], function () {
                        return "Error in conv1d: depth of input (".concat(x3D.shape[2], ") must match ") + "input depth for filter ".concat($filter.shape[1], ".");
                    });
                    assert(eitherStridesOrDilationsAreOne(stride, dilation), function () {
                        return 'Error in conv1D: Either stride or dilation must be 1. ' + "Got stride ".concat(stride, " and dilation '").concat(dilation, "'");
                    });
                    assert(dataFormat === 'NWC', function () {
                        return "Error in conv1d: got dataFormat of ".concat(dataFormat, " but only NWC is currently supported.");
                    });
                    var filter4D = reshape($filter, [1, $filter.shape[0], $filter.shape[1], $filter.shape[2]]);
                    var input4D = reshape(x3D, [x3D.shape[0], 1, x3D.shape[1], x3D.shape[2]]);
                    var strides = [1, stride];
                    var dilations = [1, dilation];
                    var conv2dDataFormat = 'NHWC';
                    var res = conv2d$1(input4D, filter4D, strides, pad, conv2dDataFormat, dilations, dimRoundingMode);
                    if (reshapedTo3D) {
                        return reshape(res, [res.shape[2], res.shape[3]]);
                    }
                    return reshape(res, [res.shape[0], res.shape[2], res.shape[3]]);
                }
                var conv1d = op({
                    conv1d_: conv1d_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the derivative of the input of a 2D convolution.
 *
 * @param xShape The shape of the input: [batch, height, width, inDepth].
 * If length of 3, batch of 1 is assumed.
 * @param dy The derivative of the output, of rank 4 or rank 3 of shape
 *   `[batch, outHeight, outWidth, outDepth]`. If rank 3, batch of 1 is
 * assumed.
 * @param filter The filter, rank 4, of shape
 *     `[filterHeight, filterWidth, inDepth, outDepth]`.
 * @param strides The strides of the convolution: `[strideHeight,
 * strideWidth]`.
 * @param pad The type of padding algorithm used:
 *    - `same` and stride 1: output will be of same size as input,
 *       regardless of filter size.
 *    - `valid`: output will be smaller than input if filter is larger
 *       than 1x1.
 * @param dataFormat: An optional string from: "NHWC", "NCHW". Defaults to
 *     "NHWC". Specify the data format of the input and output data. With the
 *     default format "NHWC", the data is stored in the order of: [batch,
 *     height, width, channels].
 * @param dimRoundingMode A string from: 'ceil', 'round', 'floor'. If none is
 *     provided, it will default to truncate.
 */
                function conv2DBackpropInput_(xShape, dy, filter, strides, pad, dataFormat, dimRoundingMode) {
                    if (dataFormat === void 0) {
                        dataFormat = 'NHWC';
                    }
                    assert(xShape.length === dy.rank, function () {
                        return "Length of inShape " + "(".concat(xShape.length, ") and rank of dy (").concat(dy.rank, ") must match");
                    });
                    var xShape4D = xShape;
                    var dy4D = dy;
                    var reshapedTo4D = false;
                    if (dy.rank === 3) {
                        reshapedTo4D = true;
                        dy4D = reshape(dy, [1, dy.shape[0], dy.shape[1], dy.shape[2]]);
                        xShape4D = [1, xShape[0], xShape[1], xShape[2]];
                    }
                    assert(xShape4D.length === 4, function () {
                        return "Error in conv2dDerInput: inShape must be length 4, but got length " + "".concat(xShape4D.length, ".");
                    });
                    assert(dy4D.rank === 4, function () {
                        return "Error in conv2dDerInput: dy must be rank 4, but got " + "rank ".concat(dy4D.rank);
                    });
                    assert(filter.rank === 4, function () {
                        return "Error in conv2dDerInput: filter must be rank 4, but got " + "rank ".concat(filter.rank);
                    });
                    var inDepth = dataFormat === 'NHWC' ? xShape4D[3] : xShape4D[1];
                    var outDepth = dataFormat === 'NHWC' ? dy4D.shape[3] : dy4D.shape[1];
                    assert(inDepth === filter.shape[2], function () {
                        return "Error in conv2dDerInput: depth of input (".concat(inDepth, ") must ") + "match input depth for filter ".concat(filter.shape[2], ".");
                    });
                    assert(outDepth === filter.shape[3], function () {
                        return "Error in conv2dDerInput: depth of output (".concat(outDepth, ") must ") + "match output depth for filter ".concat(filter.shape[3], ".");
                    });
                    checkPadOnDimRoundingMode('conv2dDerInput', pad, dimRoundingMode);
                    var inputs = {
                        dy: dy4D,
                        filter: filter
                    };
                    var attrs = {
                        strides: strides,
                        pad: pad,
                        dataFormat: dataFormat,
                        dimRoundingMode: dimRoundingMode,
                        inputShape: xShape4D
                    };
                    // tslint:disable-next-line: no-unnecessary-type-assertion
                    var res = ENGINE.runKernel(Conv2DBackpropInput, inputs, attrs);
                    if (reshapedTo4D) {
                        return reshape(res, [res.shape[1], res.shape[2], res.shape[3]]);
                    }
                    return res;
                }
                var conv2DBackpropInput = op({
                    conv2DBackpropInput_: conv2DBackpropInput_
                });
                /**
 * Computes the transposed 2D convolution of an image, also known as a
 * deconvolution.
 *
 * @param x The input image, of rank 4 or rank 3, of shape
 *   `[batch, height, width, inDepth]`. If rank 3, batch of 1 is assumed.
 * @param filter The filter, rank 4, of shape
 *     `[filterHeight, filterWidth, outDepth, inDepth]`.
 *     `inDepth` must match `inDepth` in `x`.
 * @param outputShape Output shape, of rank 4 or rank 3:
 *     `[batch, height, width, outDepth]`. If rank 3, batch of 1 is assumed.
 * @param strides The strides of the original convolution:
 *     `[strideHeight, strideWidth]`.
 * @param pad  The type of padding algorithm used in the non-transpose version
 *    of the op.
 * @param dimRoundingMode A string from: 'ceil', 'round', 'floor'. If none is
 *     provided, it will default to truncate.
 *
 * @doc {heading: 'Operations', subheading: 'Convolution'}
 */
                function conv2dTranspose_(x, filter, outputShape, strides, pad, dimRoundingMode) {
                    var $x = convertToTensor(x, 'x', 'conv2dTranspose');
                    var $filter = convertToTensor(filter, 'filter', 'conv2dTranspose');
                    return conv2DBackpropInput(outputShape, $x, $filter, strides, pad, 'NHWC', dimRoundingMode);
                }
                var conv2dTranspose = op({
                    conv2dTranspose_: conv2dTranspose_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes a 3D convolution over the input x.
 *
 * @param x The input tensor, of rank 5 or rank 4, of shape
 *     `[batch, depth, height, width, channels]`. If rank 4,
 * batch of 1 is assumed.
 * @param filter The filter, rank 5, of shape
 *     `[filterDepth, filterHeight, filterWidth, inChannels, outChannels]`.
 *      inChannels must match between input and filter.
 * @param strides The strides of the convolution: `[strideDepth, strideHeight,
 * strideWidth]`.
 * @param pad The type of padding algorithm.
 *    - `same` and stride 1: output will be of same size as input,
 *       regardless of filter size.
 *    - `valid`: output will be smaller than input if filter is larger
 *       than 1x1.
 *   - For more info, see this guide:
 *     [https://www.tensorflow.org/api_docs/python/tf/nn/convolution](
 *          https://www.tensorflow.org/api_docs/python/tf/nn/convolution)
 * @param dataFormat: An optional string from: "NDHWC", "NCDHW". Defaults to
 *     "NDHWC". Specify the data format of the input and output data. With the
 *     default format "NDHWC", the data is stored in the order of: [batch,
 *     depth, height, width, channels]. Only "NDHWC" is currently supported.
 * @param dilations The dilation rates: `[dilationDepth, dilationHeight,
 *     dilationWidth]` in which we sample input values across the height
 *     and width dimensions in atrous convolution. Defaults to `[1, 1, 1]`.
 *     If `dilations` is a single number, then
 *     `dilationDepth == dilationHeight == dilationWidth`. If it is greater
 *     than 1, then all values of `strides` must be 1.
 *
 * @doc {heading: 'Operations', subheading: 'Convolution'}
 */
                function conv3d_(x, filter, strides, pad, dataFormat, dilations) {
                    if (dataFormat === void 0) {
                        dataFormat = 'NDHWC';
                    }
                    if (dilations === void 0) {
                        dilations = [1, 1, 1];
                    }
                    var $x = convertToTensor(x, 'x', 'conv3d');
                    var $filter = convertToTensor(filter, 'filter', 'conv3d');
                    var x5D = $x;
                    var reshapedTo5D = false;
                    if ($x.rank === 4) {
                        reshapedTo5D = true;
                        x5D = reshape($x, [1, $x.shape[0], $x.shape[1], $x.shape[2], $x.shape[3]]);
                    }
                    assert(x5D.rank === 5, function () {
                        return "Error in conv3d: input must be rank 5, but got rank ".concat(x5D.rank, ".");
                    });
                    assert($filter.rank === 5, function () {
                        return "Error in conv3d: filter must be rank 5, but got rank " + "".concat($filter.rank, ".");
                    });
                    assert(x5D.shape[4] === $filter.shape[3], function () {
                        return "Error in conv3d: depth of input (".concat(x5D.shape[4], ") must match ") + "input depth for filter ".concat($filter.shape[3], ".");
                    });
                    assert(eitherStridesOrDilationsAreOne(strides, dilations), function () {
                        return 'Error in conv3D: Either strides or dilations must be 1. ' + "Got strides ".concat(strides, " and dilations '").concat(dilations, "'");
                    });
                    assert(dataFormat === 'NDHWC', function () {
                        return "Error in conv3d: got dataFormat of ".concat(dataFormat, " but only NDHWC is currently supported.");
                    });
                    var inputs = {
                        x: x5D,
                        filter: $filter
                    };
                    var attrs = {
                        strides: strides,
                        pad: pad,
                        dataFormat: dataFormat,
                        dilations: dilations
                    };
                    // tslint:disable-next-line: no-unnecessary-type-assertion
                    var res = ENGINE.runKernel(Conv3D, inputs, attrs);
                    if (reshapedTo5D) {
                        return reshape(res, [res.shape[1], res.shape[2], res.shape[3], res.shape[4]]);
                    }
                    return res;
                }
                var conv3d = op({
                    conv3d_: conv3d_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the derivative of the input of a 3D convolution.
 *
 * @param xShape The shape of the input: [batch, depth, height, width,
 * in_channels]. If length of 4, batch of 1 is assumed.
 * @param dy The derivative of the output, of rank 5 or rank 4 of shape
 *   `[batch, outDepth, outHeight, outWidth, in_channels]`.
 * If rank 4, batch of 1 is assumed.
 * @param filter The filter, rank 5, of shape
 *     `[filterDepth, filterHeight, filterWidth, inDepth, outDepth]`.
 * @param strides The strides of the convolution: `[strideDepth, strideHeight,
 * strideWidth]`.
 * @param pad The type of padding algorithm used:
 *    - `same` and stride 1: output will be of same size as input,
 *       regardless of filter size.
 *    - `valid`: output will be smaller than input if filter is larger
 *       than 1x1.
 */
                function conv3DBackpropInput_(xShape, dy, filter, strides, pad) {
                    assert(xShape.length === dy.rank, function () {
                        return "Length of inShape " + "(".concat(xShape.length, ") and rank of dy (").concat(dy.rank, ") must match");
                    });
                    var xShape5D = xShape;
                    var dy5D = dy;
                    var reshapedTo5D = false;
                    if (dy.rank === 4) {
                        reshapedTo5D = true;
                        dy5D = reshape(dy, [1, dy.shape[0], dy.shape[1], dy.shape[2], dy.shape[3]]);
                        xShape5D = [1, xShape[0], xShape[1], xShape[2], xShape[3]];
                    }
                    var inDepth = xShape5D[4];
                    var outDepth = dy5D.shape[4];
                    assert(xShape5D.length === 5, function () {
                        return "Error in conv3dDerInput: inShape must be length 5, but got length " + "".concat(xShape5D.length, ".");
                    });
                    assert(dy5D.rank === 5, function () {
                        return "Error in conv3dDerInput: dy must be rank 5, but got " + "rank ".concat(dy5D.rank);
                    });
                    assert(filter.rank === 5, function () {
                        return "Error in conv3dDerInput: filter must be rank 5, but got " + "rank ".concat(filter.rank);
                    });
                    assert(inDepth === filter.shape[3], function () {
                        return "Error in conv3dDerInput: depth of input (".concat(inDepth, ") must ") + "match input depth for filter ".concat(filter.shape[3], ".");
                    });
                    assert(outDepth === filter.shape[4], function () {
                        return "Error in conv3dDerInput: depth of output (".concat(outDepth, ") must ") + "match output depth for filter ".concat(filter.shape[4], ".");
                    });
                    var inputs = {
                        dy: dy5D,
                        filter: filter
                    };
                    var attrs = {
                        pad: pad,
                        strides: strides,
                        inputShape: xShape5D
                    };
                    // tslint:disable-next-line: no-unnecessary-type-assertion
                    var res = ENGINE.runKernel(Conv3DBackpropInputV2, inputs, attrs);
                    if (reshapedTo5D) {
                        return reshape(res, [res.shape[1], res.shape[2], res.shape[3], res.shape[4]]);
                    }
                    return res;
                }
                var conv3DBackpropInput = op({
                    conv3DBackpropInput_: conv3DBackpropInput_
                });
                /**
 * Computes the transposed 3D convolution of a volume, also known as a
 * deconvolution.
 *
 * @param x The input image, of rank 5 or rank 4, of shape
 *   `[batch, depth, height, width, inDepth]`. If rank 4, batch of 1 is assumed.
 * @param filter The filter, rank 4, of shape
 *     `[depth, filterHeight, filterWidth, outDepth, inDepth]`.
 *     `inDepth` must match `inDepth` in `x`.
 * @param outputShape Output shape, of rank 5 or rank 4:
 *     `[batch, depth, height, width, outDepth]`. If rank 3, batch of 1 is
 *    assumed.
 * @param strides The strides of the original convolution:
 *     `[strideDepth, strideHeight, strideWidth]`.
 * @param pad  The type of padding algorithm used in the non-transpose version
 *    of the op.
 *
 * @doc {heading: 'Operations', subheading: 'Convolution'}
 */
                function conv3dTranspose_(x, filter, outputShape, strides, pad) {
                    var $x = convertToTensor(x, 'x', 'conv3dTranspose');
                    var $filter = convertToTensor(filter, 'filter', 'conv3dTranspose');
                    return conv3DBackpropInput(outputShape, $x, $filter, strides, pad);
                }
                var conv3dTranspose = op({
                    conv3dTranspose_: conv3dTranspose_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes cos of the input `tf.Tensor` element-wise: `cos(x)`
 *
 * ```js
 * const x = tf.tensor1d([0, Math.PI / 2, Math.PI * 3 / 4]);
 *
 * x.cos().print();  // or tf.cos(x)
 * ```
 * @param x The input tensor. Must be float32 type.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function cos_(x) {
                    var $x = convertToTensor(x, 'x', 'cos', 'float32');
                    var inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(Cos, inputs);
                }
                var cos = op({
                    cos_: cos_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes hyperbolic cos of the input `tf.Tensor` element-wise: `cosh(x)`
 *
 * ```js
 * const x = tf.tensor1d([0, 1, -1, .7]);
 *
 * x.cosh().print();  // or tf.cosh(x)
 * ```
 * @param x The input tensor. Must be float32 type.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function cosh_(x) {
                    var $x = convertToTensor(x, 'x', 'cosh', 'float32');
                    var inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(Cosh, inputs);
                }
                var cosh = op({
                    cosh_: cosh_
                });
                /**
 * @license
 * Copyright 2022 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the 'License');
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an 'AS IS' BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the cumulative product of a `tf.Tensor` along `axis`.
 *
 * ```js
 * const x = tf.tensor([1, 2, 3, 4]);
 * x.cumprod().print();
 * ```
 * ```js
 * const x = tf.tensor([[1, 2], [3, 4]]);
 * x.cumprod().print();
 * ```
 *
 * @param x The input tensor to cumulatively multiply.
 * @param axis The axis along which to multiply. Optional. Defaults to 0.
 * @param exclusive Whether to perform exclusive cumulative product. Optional.
 *     Defaults to false. If set to true then the product of each tensor entry
 *     does not include its own value, but only the values previous to it
 *     along the specified axis.
 * @param reverse Whether to multiply in the opposite direction. Optional.
 *     Defaults to false.
 *
 * @doc {heading: 'Operations', subheading: 'Scan'}
 */
                function cumprod_(x, axis, exclusive, reverse) {
                    if (axis === void 0) {
                        axis = 0;
                    }
                    if (exclusive === void 0) {
                        exclusive = false;
                    }
                    if (reverse === void 0) {
                        reverse = false;
                    }
                    var $x = convertToTensor(x, 'x', 'cumprod');
                    var inputs = {
                        x: $x
                    };
                    var attrs = {
                        axis: axis,
                        exclusive: exclusive,
                        reverse: reverse
                    };
                    return ENGINE.runKernel(Cumprod, inputs, attrs);
                }
                var cumprod = op({
                    cumprod_: cumprod_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the cumulative sum of a `tf.Tensor` along `axis`.
 *
 * ```js
 * const x = tf.tensor([1, 2, 3, 4]);
 * x.cumsum().print();
 * ```
 * ```js
 * const x = tf.tensor([[1, 2], [3, 4]]);
 * x.cumsum().print();
 * ```
 *
 * @param x The input tensor to be summed.
 * @param axis The axis along which to sum. Optional. Defaults to 0.
 * @param exclusive Whether to perform exclusive cumulative sum. Optional.
 *     Defaults to false. If set to true then the sum of each tensor entry
 *     does not include its own value, but only the values previous to it
 *     along the specified axis.
 * @param reverse Whether to sum in the opposite direction. Optional.
 *     Defaults to false.
 *
 * @doc {heading: 'Operations', subheading: 'Scan'}
 */
                function cumsum_(x, axis, exclusive, reverse) {
                    if (axis === void 0) {
                        axis = 0;
                    }
                    if (exclusive === void 0) {
                        exclusive = false;
                    }
                    if (reverse === void 0) {
                        reverse = false;
                    }
                    var $x = convertToTensor(x, 'x', 'cumsum');
                    var inputs = {
                        x: $x
                    };
                    var attrs = {
                        axis: axis,
                        exclusive: exclusive,
                        reverse: reverse
                    };
                    return ENGINE.runKernel(Cumsum, inputs, attrs);
                }
                var cumsum = op({
                    cumsum_: cumsum_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Outputs a vector with length `size` and the same dtype as `weights`.
 *
 * If `weights` are empty, then index `i` stores the number of times the value
 * `i` is counted in `x`. If `weights` are non-empty, then index `i` stores the
 * sum of the value in `weights` at each index where the corresponding value in
 * `x` is `i`.
 *
 * Values in `x` outside of the range [0, size) are ignored.
 *
 * @param x The input int tensor, rank 1 or rank 2.
 * @param weights The weights tensor, must have the same shape as x, or a
 *     length-0 Tensor, in which case it acts as all weights equal to 1.
 * @param size Non-negative integer.
 * @param binaryOutput Optional. Whether the kernel should count the appearance
 *     or number of occurrences. Defaults to False.
 *
 * @doc {heading: 'Operations', subheading: 'Reduction'}
 */
                function denseBincount_(x, weights, size, binaryOutput) {
                    if (binaryOutput === void 0) {
                        binaryOutput = false;
                    }
                    var $x = convertToTensor(x, 'x', 'denseBincount');
                    var $weights = convertToTensor(weights, 'weights', 'denseBincount');
                    assert($x.dtype === 'int32', function () {
                        return "Error in denseBincount: input " + "dtype must be int32, but got ".concat($x.dtype);
                    });
                    assert($x.rank <= 2, function () {
                        return "Error in denseBincount: input must be at most rank 2, but got " + "rank ".concat($x.rank, ".");
                    });
                    assert(size >= 0, function () {
                        return "size must be non-negative, but got ".concat(size, ".");
                    });
                    assert($weights.size === $x.size || $weights.size === 0, function () {
                        return "Error in denseBincount: weights must have the same shape as x or " + "0-length, but got x shape: ".concat($x.shape, ", weights shape: ") + "".concat($weights.shape, ".");
                    });
                    var inputs = {
                        x: $x,
                        weights: $weights
                    };
                    var attrs = {
                        size: size,
                        binaryOutput: binaryOutput
                    };
                    return ENGINE.runKernel(DenseBincount, inputs, attrs);
                }
                var denseBincount = op({
                    denseBincount_: denseBincount_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Rearranges data from depth into blocks of spatial data. More specifically,
 * this op outputs a copy of the input tensor where values from the `depth`
 * dimension are moved in spatial blocks to the `height` and `width` dimensions.
 * The attr `blockSize` indicates the input block size and how the data is
 * moved.
 *
 *  - Chunks of data of size `blockSize * blockSize` from depth are rearranged
 * into non-overlapping blocks of size `blockSize x blockSize`
 *
 *  - The width the output tensor is `inputWidth * blockSize`, whereas the
 * height is `inputHeight * blockSize`
 *
 *  - The Y, X coordinates within each block of the output image are determined
 * by the high order component of the input channel index
 *
 *  - The depth of the input tensor must be divisible by `blockSize *
 * blockSize`
 *
 * The `dataFormat` attr specifies the layout of the input and output tensors
 * with the following options: "NHWC": [ `batch, height, width, channels` ]
 * "NCHW": [ `batch, channels, height, width` ]
 *
 * ```js
 * const x = tf.tensor4d([1, 2, 3, 4], [1, 1, 1, 4]);
 * const blockSize = 2;
 * const dataFormat = "NHWC";
 *
 * tf.depthToSpace(x, blockSize, dataFormat).print();
 * ```
 *
 * @param x The input tensor of rank 4
 * @param blockSIze  An `int` that is `>= 2`. The size of the spatial block
 * @param dataFormat An optional string from: "NHWC", "NCHW". Defaults to "NHWC"
 *
 * @doc {heading: 'Tensors', subheading: 'Transformations'}
 */
                function depthToSpace_(x, blockSize, dataFormat) {
                    if (dataFormat === void 0) {
                        dataFormat = 'NHWC';
                    }
                    var $x = convertToTensor(x, 'x', 'depthToSpace', 'float32');
                    var inputHeight = dataFormat === 'NHWC' ? $x.shape[1] : $x.shape[2];
                    var inputWidth = dataFormat === 'NHWC' ? $x.shape[2] : $x.shape[3];
                    var inputDepth = dataFormat === 'NHWC' ? $x.shape[3] : $x.shape[1];
                    assert(blockSize > 1, function () {
                        return "blockSize should be > 1 for depthToSpace, but was: ".concat(blockSize);
                    });
                    assert(inputHeight * blockSize >= 0, function () {
                        return "Negative dimension size caused by overflow when multiplying\n    ".concat(inputHeight, " and ").concat(blockSize, "  for depthToSpace with input shape\n    ").concat($x.shape);
                    });
                    assert(inputWidth * blockSize >= 0, function () {
                        return "Negative dimension size caused by overflow when multiplying\n    ".concat(inputWidth, " and ").concat(blockSize, " for depthToSpace with input shape\n        ").concat($x.shape);
                    });
                    assert(inputDepth % (blockSize * blockSize) === 0, function () {
                        return "Dimension size must be evenly divisible by ".concat(blockSize * blockSize, " but is ").concat(inputDepth, " for depthToSpace with input shape ").concat($x.shape);
                    });
                    var inputs = {
                        x: $x
                    };
                    var attrs = {
                        blockSize: blockSize,
                        dataFormat: dataFormat
                    };
                    return ENGINE.runKernel(DepthToSpace, inputs, attrs);
                }
                var depthToSpace = op({
                    depthToSpace_: depthToSpace_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Depthwise 2D convolution.
 *
 * Given a 4D `input` array and a `filter` array of shape
 * `[filterHeight, filterWidth, inChannels, channelMultiplier]` containing
 * `inChannels` convolutional filters of depth 1, this op applies a
 * different filter to each input channel (expanding from 1 channel to
 * `channelMultiplier` channels for each), then concatenates the results
 * together. The output has `inChannels * channelMultiplier` channels.
 *
 * See
 * [https://www.tensorflow.org/api_docs/python/tf/nn/depthwise_conv2d](
 *     https://www.tensorflow.org/api_docs/python/tf/nn/depthwise_conv2d)
 * for more details.
 *
 * @param x The input tensor, of rank 4 or rank 3, of shape
 *     `[batch, height, width, inChannels]`. If rank 3, batch of 1 is
 * assumed.
 * @param filter The filter tensor, rank 4, of shape
 *     `[filterHeight, filterWidth, inChannels, channelMultiplier]`.
 * @param strides The strides of the convolution: `[strideHeight,
 * strideWidth]`. If strides is a single number, then `strideHeight ==
 * strideWidth`.
 * @param pad The type of padding algorithm.
 *   - `same` and stride 1: output will be of same size as input,
 *       regardless of filter size.
 *   - `valid`: output will be smaller than input if filter is larger
 *       than 1x1.
 *   - For more info, see this guide:
 *     [https://www.tensorflow.org/api_docs/python/tf/nn/convolution](
 *          https://www.tensorflow.org/api_docs/python/tf/nn/convolution)
 * @param dilations The dilation rates: `[dilationHeight, dilationWidth]`
 *     in which we sample input values across the height and width dimensions
 *     in atrous convolution. Defaults to `[1, 1]`. If `rate` is a single
 *     number, then `dilationHeight == dilationWidth`. If it is greater than
 *     1, then all values of `strides` must be 1.
 * @param dataFormat: An optional string from: "NHWC", "NCHW". Defaults to
 *     "NHWC". Specify the data format of the input and output data. With the
 *     default format "NHWC", the data is stored in the order of: [batch,
 *     height, width, channels]. Only "NHWC" is currently supported.
 * @param dimRoundingMode A string from: 'ceil', 'round', 'floor'. If none is
 *     provided, it will default to truncate.
 *
 * @doc {heading: 'Operations', subheading: 'Convolution'}
 */
                function depthwiseConv2d_(x, filter, strides, pad, dataFormat, dilations, dimRoundingMode) {
                    if (dataFormat === void 0) {
                        dataFormat = 'NHWC';
                    }
                    if (dilations === void 0) {
                        dilations = [1, 1];
                    }
                    var $x = convertToTensor(x, 'x', 'depthwiseConv2d', 'float32');
                    var $filter = convertToTensor(filter, 'filter', 'depthwiseConv2d', 'float32');
                    var x4D = $x;
                    var reshapedTo4D = false;
                    if ($x.rank === 3) {
                        reshapedTo4D = true;
                        x4D = reshape($x, [1, $x.shape[0], $x.shape[1], $x.shape[2]]);
                    }
                    assert(x4D.rank === 4, function () {
                        return "Error in depthwiseConv2d: input must be rank 4, but got " + "rank ".concat(x4D.rank, ".");
                    });
                    assert($filter.rank === 4, function () {
                        return "Error in depthwiseConv2d: filter must be rank 4, but got rank " + "".concat($filter.rank, ".");
                    });
                    var inChannels = dataFormat === 'NHWC' ? x4D.shape[3] : x4D.shape[1];
                    assert(inChannels === $filter.shape[2], function () {
                        return "Error in depthwiseConv2d: number of input channels " + "(".concat(inChannels, ") must match the inChannels dimension in ") + "filter ".concat($filter.shape[2], ".");
                    });
                    checkPadOnDimRoundingMode('depthwiseConv2d', pad, dimRoundingMode);
                    var inputs = {
                        x: x4D,
                        filter: $filter
                    };
                    var attrs = {
                        strides: strides,
                        pad: pad,
                        dataFormat: dataFormat,
                        dilations: dilations,
                        dimRoundingMode: dimRoundingMode
                    };
                    // tslint:disable-next-line: no-unnecessary-type-assertion
                    var res = ENGINE.runKernel(DepthwiseConv2dNative, inputs, attrs);
                    if (reshapedTo4D) {
                        return reshape(res, [res.shape[1], res.shape[2], res.shape[3]]);
                    }
                    return res;
                }
                var depthwiseConv2d$1 = op({
                    depthwiseConv2d_: depthwiseConv2d_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Returns a diagonal tensor with given diagonal values.
 *
 * Given a diagonal, this operation returns a tensor with the diagonal and
 * everything else padded with zeros.
 *
 * Assume the input has dimensions `[D1,..., Dk]`, then the output is a tensor
 * of rank 2k with dimensions `[D1,..., Dk, D1,..., Dk]`
 *
 * ```js
 * const x = tf.tensor1d([1, 2, 3, 4]);
 *
 * tf.diag(x).print()
 * ```
 * ```js
 * const x = tf.tensor2d([1, 2, 3, 4, 5, 6, 6, 8], [4, 2])
 *
 * tf.diag(x).print()
 * ```
 * @param x The input tensor.
 *
 * @doc {heading: 'Tensors', subheading: 'Creation'}
 */
                function diag_(x) {
                    var $x = convertToTensor(x, 'x', 'diag');
                    var inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(Diag, inputs);
                }
                var diag = op({
                    diag_: diag_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the grayscale dilation over the input `x`.
 *
 * @param x The input tensor, rank 3 or rank 4 of shape
 *     `[batch, height, width, inChannels]`. If rank 3, batch of 1 is assumed.
 * @param filter The filter tensor, rank 3, of shape
 *     `[filterHeight, filterWidth, depth]`.
 * @param strides The strides of the sliding window for each dimension of the
 *     input tensor: `[strideHeight, strideWidth]`.
 *     If `strides` is a single number,
 *     then `strideHeight == strideWidth`.
 * @param pad The type of padding algorithm.
 *    - `same` and stride 1: output will be of same size as input,
 *       regardless of filter size.
 *    - `valid`: output will be smaller than input if filter is larger
 *       than 1*1x1.
 *    - For more info, see this guide:
 *     [https://www.tensorflow.org/api_docs/python/tf/nn/convolution](
 *          https://www.tensorflow.org/api_docs/python/tf/nn/convolution)
 * @param dataFormat Specify the data format of the input and output data.
 *      Defaults to 'NHWC'. Only 'NHWC' is currently supported. With the
 *      default format "NHWC", the data is stored in the order of: [batch,
 *      height, width, channels].
 * @param dilations The dilation rates: `[dilationHeight, dilationWidth]`
 *     in which we sample input values across the height and width dimensions
 *     for atrous morphological dilation. Defaults to `[1, 1]`. If `dilations`
 *     is a single number, then `dilationHeight == dilationWidth`. If it is
 *     greater than 1, then all values of `strides` must be 1.
 *
 * @doc {heading: 'Operations', subheading: 'Convolution'}
 */
                function dilation2d_(x, filter, strides, pad, dilations, dataFormat) {
                    if (dilations === void 0) {
                        dilations = [1, 1];
                    }
                    if (dataFormat === void 0) {
                        dataFormat = 'NHWC';
                    }
                    var $x = convertToTensor(x, 'x', 'dilation2d');
                    var $filter = convertToTensor(filter, 'filter', 'dilation2d');
                    assert($x.rank === 3 || $x.rank === 4, function () {
                        return "Error in dilation2d: input must be rank 3 or 4, but got rank " + "".concat($x.rank, ".");
                    });
                    assert($filter.rank === 3, function () {
                        return "Error in dilation2d: filter must be rank 3, but got rank " + "".concat($filter.rank, ".");
                    });
                    assert(dataFormat === 'NHWC', function () {
                        return "Error in dilation2d: Only NHWC is currently supported, " + "but got dataFormat of ".concat(dataFormat);
                    });
                    var x4D = $x;
                    var reshapedTo4D = false;
                    if ($x.rank === 3) {
                        x4D = reshape($x, [1, $x.shape[0], $x.shape[1], $x.shape[2]]);
                        reshapedTo4D = true;
                    }
                    var inputs = {
                        x: x4D,
                        filter: $filter
                    };
                    var attrs = {
                        strides: strides,
                        pad: pad,
                        dilations: dilations
                    };
                    // tslint:disable-next-line: no-unnecessary-type-assertion
                    var res = ENGINE.runKernel(Dilation2D, inputs, attrs);
                    if (reshapedTo4D) {
                        return reshape(res, [res.shape[1], res.shape[2], res.shape[3]]);
                    }
                    return res;
                }
                var dilation2d = op({
                    dilation2d_: dilation2d_
                });
                /**
 * Returns the truth value of (a == b) element-wise. Supports broadcasting.
 *
 * ```js
 * const a = tf.tensor1d([1, 2, 3]);
 * const b = tf.tensor1d([2, 2, 2]);
 *
 * a.equal(b).print();
 * ```
 *
 * @param a The first input tensor.
 * @param b The second input tensor. Must have the same dtype as `a`.
 *
 * @doc {heading: 'Operations', subheading: 'Logical'}
 */
                function equal_(a, b) {
                    var _a;
                    var $a = convertToTensor(a, 'a', 'equal', 'string_or_numeric');
                    var $b = convertToTensor(b, 'b', 'equal', 'string_or_numeric');
                    _a = __read(makeTypesMatch($a, $b), 2),
                        $a = _a[0],
                        $b = _a[1];
                    assertAndGetBroadcastShape($a.shape, $b.shape);
                    var inputs = {
                        a: $a,
                        b: $b
                    };
                    return ENGINE.runKernel(Equal, inputs);
                }
                var equal = op({
                    equal_: equal_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Returns the elements, either `a` or `b` depending on the `condition`.
 *
 * If the condition is true, select from `a`, otherwise select from `b`.
 *
 * ```js
 * const cond = tf.tensor1d([false, false, true], 'bool');
 * const a = tf.tensor1d([1 , 2, 3]);
 * const b = tf.tensor1d([-1, -2, -3]);
 *
 * a.where(cond, b).print();
 * ```
 *
 * @param condition The input condition. Must be of dtype bool.
 * @param a If `condition` is rank 1, `a` may have a higher rank but
 *     its first dimension must match the size of `condition`.
 * @param b A tensor with the same dtype as `a` and with shape that is
 *     compatible with `a`.
 * @return A tensor with same dtype as `a` and `b`, and shape that is
 *     broadcastable from `a` and `b`.
 *
 * @doc {heading: 'Operations', subheading: 'Logical'}
 */
                function where_(condition, a, b) {
                    var $a = convertToTensor(a, 'a', 'where');
                    var $b = convertToTensor(b, 'b', 'where');
                    var $condition = convertToTensor(condition, 'condition', 'where', 'bool');
                    // TODO: move this logic to forward function when the broadcastTo op is
                    // implemented in WASM.
                    // Find the broadcastable shape for $condition, $a, and $b.
                    var broadcastShape = assertAndGetBroadcastShape(assertAndGetBroadcastShape($condition.shape, $a.shape), $b.shape);
                    var $broadcastedCondition = broadcastTo($condition, broadcastShape);
                    var $broadcastedA = broadcastTo($a, broadcastShape);
                    var $broadcastedB = broadcastTo($b, broadcastShape);
                    var inputs = {
                        condition: $broadcastedCondition,
                        t: $broadcastedA,
                        e: $broadcastedB
                    };
                    return ENGINE.runKernel(Select, inputs);
                }
                var where = op({
                    where_: where_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Creates a `tf.Tensor` with all elements set to 0 with the same shape as the
 * given tensor.
 *
 * ```js
 * const x = tf.tensor([1, 2]);
 * tf.zerosLike(x).print();
 * ```
 *
 * @param x The tensor of required shape.
 *
 * @doc {heading: 'Tensors', subheading: 'Creation'}
 */
                function zerosLike_(x) {
                    var $x = convertToTensor(x, 'x', 'zerosLike');
                    var inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(ZerosLike, inputs);
                }
                var zerosLike = op({
                    zerosLike_: zerosLike_
                });
                /**
 * Divides two `tf.Tensor`s element-wise, A / B. Supports broadcasting. Return 0
 * if denominator is 0.
 *
 *
 * ```js
 * const a = tf.tensor1d([1, 4, 9, 16]);
 * const b = tf.tensor1d([1, 2, 3, 4]);
 * const c = tf.tensor1d([0, 0, 0, 0]);
 *
 * a.divNoNan(b).print();  // or tf.divNoNan(a, b)
 * a.divNoNan(c).print();  // or tf.divNoNan(a, c)
 * ```
 *
 * ```js
 * // Broadcast div a with b.
 * const a = tf.tensor1d([2, 4, 6, 8]);
 * const b = tf.scalar(2);
 * const c = tf.scalar(0);
 *
 * a.divNoNan(b).print();  // or tf.divNoNan(a, b)
 * a.divNoNan(c).print();  // or tf.divNoNan(a, c)
 * ```
 *
 * @param a The first tensor as the numerator.
 * @param b The second tensor as the denominator. Must have the same dtype as
 * `a`.
 *
 * @doc {heading: 'Operations', subheading: 'Arithmetic'}
 */
                function divNoNan_(a, b) {
                    var _a;
                    // TODO: Make this into its own kernel.
                    var $a = convertToTensor(a, 'a', 'div');
                    var $b = convertToTensor(b, 'b', 'div');
                    _a = __read(makeTypesMatch($a, $b), 2),
                        $a = _a[0],
                        $b = _a[1];
                    var divResult = div($a, $b);
                    var zeros = zerosLike(divResult);
                    var bEqualsZero = equal($b, zeros);
                    return where(bEqualsZero, zeros, divResult);
                }
                var divNoNan = op({
                    divNoNan_: divNoNan_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the dot product of two matrices and/or vectors, `t1` and `t2`.
 *
 * ```js
 * const a = tf.tensor1d([1, 2]);
 * const b = tf.tensor2d([[1, 2], [3, 4]]);
 * const c = tf.tensor2d([[1, 2, 3], [4, 5, 6]]);
 *
 * a.dot(b).print();  // or tf.dot(a, b)
 * b.dot(a).print();
 * b.dot(c).print();
 * ```
 * @param t1 The first tensor in the dot operation.
 * @param t2 The second tensor in the dot operation.
 *
 * @doc {heading: 'Operations', subheading: 'Matrices'}
 */
                function dot_(t1, t2) {
                    var $t1 = convertToTensor(t1, 't1', 'dot');
                    var $t2 = convertToTensor(t2, 't2', 'dot');
                    assert(($t1.rank === 1 || $t1.rank === 2) && ($t2.rank === 1 || $t2.rank === 2), function () {
                        return "Error in dot: inputs must all be rank 1 or 2, but got ranks " + "".concat($t1.rank, " and ").concat($t2.rank, ".");
                    });
                    var t1Inner = $t1.rank === 1 ? $t1.size : $t1.shape[1];
                    var t2Inner = $t2.rank === 1 ? $t2.size : $t2.shape[0];
                    assert(t1Inner === t2Inner, function () {
                        return "Error in dot: inner dimensions of inputs must match, but got " + "".concat(t1Inner, " and ").concat(t2Inner, ".");
                    });
                    if ($t1.rank === 1 && $t2.rank === 1) {
                        var t12D = reshape($t1, [1, -1]);
                        var t22D = reshape($t2, [-1, 1]);
                        var t1t2 = matMul$1(t12D, t22D);
                        return reshape(t1t2, []);
                    } else if ($t1.rank === 1 && $t2.rank === 2) {
                        var t12D = reshape($t1, [1, -1]);
                        var t22D = reshape($t2, [$t2.shape[0], $t2.shape[1]]);
                        var t1t2 = matMul$1(t12D, t22D);
                        return reshape(t1t2, [t1t2.size]);
                    } else if ($t1.rank === 2 && $t2.rank === 1) {
                        var t22D = reshape($t2, [-1, 1]);
                        var t1t2 = matMul$1($t1, t22D);
                        return reshape(t1t2, [t1t2.size]);
                    } else {
                        var t22D = reshape($t2, [$t2.shape[0], $t2.shape[1]]);
                        var t1t2 = matMul$1($t1, t22D);
                        return t1t2;
                    }
                }
                var dot = op({
                    dot_: dot_
                });
                /**
 * @license
 * Copyright 2021 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Tensor contraction over specified indices and outer product.
 *
 * `einsum` allows defining Tensors by defining their element-wise computation.
 * This computation is based on
 * [Einstein summation](https://en.wikipedia.org/wiki/Einstein_notation).
 *
 * Some special cases include:
 *
 * Matrix multiplication:
 * ```js
 * const x = tf.tensor2d([[1, 2, 3], [4, 5, 6]]);
 * const y = tf.tensor2d([[0, 1], [2, 3], [4, 5]]);
 * x.print();
 * y.print();
 * tf.einsum('ij,jk->ik', x, y).print();
 * ```
 *
 * Dot product:
 * ```js
 * const x = tf.tensor1d([1, 2, 3]);
 * const y = tf.tensor1d([0, 1, 2]);
 * x.print();
 * y.print();
 * tf.einsum('i,i->', x, y).print();
 * ```
 *
 * Batch dot product:
 * ```js
 * const x = tf.tensor2d([[1, 2, 3], [4, 5, 6]]);
 * const y = tf.tensor2d([[0, 1, 2], [3, 4, 5]]);
 * x.print();
 * y.print();
 * tf.einsum('bi,bi->b', x, y).print();
 * ```
 *
 * Outer prouduct:
 * ```js
 * const x = tf.tensor1d([1, 3, 5]);
 * const y = tf.tensor1d([2, 4, 6]);
 * x.print();
 * y.print();
 * tf.einsum('i,j->ij', x, y).print();
 * ```
 *
 * Matrix transpose:
 * ```js
 * const x = tf.tensor2d([[1, 2], [3, 4]]);
 * x.print();
 * tf.einsum('ij->ji', x).print();
 * ```
 *
 * Batch matrix transpose:
 * ```js
 * const x = tf.tensor3d([[[1, 2], [3, 4]], [[-1, -2], [-3, -4]]]);
 * x.print();
 * tf.einsum('bij->bji', x).print();
 * ```
 *
 * Limitations:
 *
 * This implementation of einsum has the following limitations:
 *
 * - Does not support >2 input tensors.
 * - Does not support duplicate axes for any given input tensor. E.g., equation
 *   'ii->' is not supported.
 * - The `...` notation is not supported.
 *
 * @param equation a string describing the contraction, in the same format as
 * [numpy.einsum](https://numpy.org/doc/stable/reference/generated/numpy.einsum.html).
 * @param tensors the input(s) to contract (each one a Tensor), whose shapes
 *     should be consistent with equation.
 * @returns The output tensor.
 *
 * @doc {heading: 'Tensors', subheading: 'Matrices'}
 */
                function einsum_(equation) {
                    var tensors = [];
                    for (var _i = 1; _i < arguments.length; _i++) {
                        tensors[_i - 1] = arguments[_i];
                    }
                    var $tensors = tensors.map(function (t, i) {
                        return convertToTensor(t, "tensors".concat(i), 'einsum');
                    });
                    var attrs = {
                        equation: equation
                    };
                    return ENGINE.runKernel(Einsum, $tensors, attrs);
                }
                var einsum = op({
                    einsum_: einsum_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes exponential linear element-wise: `x > 0 ? x : (e ^ x) - 1`.
 *
 * ```js
 * const x = tf.tensor1d([-1, 1, -3, 2]);
 *
 * x.elu().print();  // or tf.elu(x)
 * ```
 * @param x The input tensor.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function elu_(x) {
                    var $x = convertToTensor(x, 'x', 'elu', 'float32');
                    var inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(Elu, inputs);
                }
                var elu = op({
                    elu_: elu_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes Gauss error function of the input `tf.Tensor` element-wise:
 * `erf(x)`
 *
 * ```js
 * const x = tf.tensor1d([0, .1, -.1, .7]);
 *
 * x.erf().print(); // or tf.erf(x);
 * ```
 * @param x The input tensor.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function erf_(x) {
                    var $x = convertToTensor(x, 'x', 'erf');
                    assert($x.dtype === 'int32' || $x.dtype === 'float32', function () {
                        return 'Input dtype must be `int32` or `float32`.';
                    });
                    if ($x.dtype === 'int32') {
                        $x = cast($x, 'float32');
                    }
                    var inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(Erf, inputs);
                }
                var erf = op({
                    erf_: erf_
                });
                /**
 * @license
 * Copyright 2017 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Returns true if the axis specifies the inner most dimensions of the
 * array.
 */
                function axesAreInnerMostDims(axes, rank) {
                    for (var i = 0; i < axes.length; ++i) {
                        if (axes[axes.length - i - 1] !== rank - 1 - i) {
                            return false;
                        }
                    }
                    return true;
                }
                function combineLocations(outputLoc, reduceLoc, axes) {
                    var rank = outputLoc.length + reduceLoc.length;
                    var loc = [];
                    var outIdx = 0;
                    var reduceIdx = 0;
                    for (var dim = 0; dim < rank; dim++) {
                        if (axes.indexOf(dim) === -1) {
                            loc.push(outputLoc[outIdx++]);
                        } else {
                            loc.push(reduceLoc[reduceIdx++]);
                        }
                    }
                    return loc;
                }
                function computeOutAndReduceShapes(aShape, axes) {
                    var outShape = [];
                    var rank = aShape.length;
                    for (var dim = 0; dim < rank; dim++) {
                        if (axes.indexOf(dim) === -1) {
                            outShape.push(aShape[dim]);
                        }
                    }
                    var reduceShape = axes.map(function (dim) {
                        return aShape[dim];
                    });
                    return [outShape, reduceShape];
                }
                function expandShapeToKeepDim(shape, axes) {
                    var reduceSubShape = axes.map(function (x) {
                        return 1;
                    });
                    return combineLocations(shape, reduceSubShape, axes);
                }
                function assertAxesAreInnerMostDims(msg, axes, rank) {
                    assert(axesAreInnerMostDims(axes, rank), function () {
                        return "".concat(msg, " supports only inner-most axes for now. ") + "Got axes ".concat(axes, " and rank-").concat(rank, " input.");
                    });
                }
                /**
 * Returns the axes permutation to be used with `tf.transpose`, if such
 * permutation is necessary. Otherwise it returns null. This method is used by
 * operations that operate only on inner-most axes.
 */
                function getAxesPermutation(axes, rank) {
                    if (axesAreInnerMostDims(axes, rank)) {
                        return null;
                    }
                    var result = [];
                    for (var i = 0; i < rank; ++i) {
                        if (axes.indexOf(i) === -1) {
                            result.push(i);
                        }
                    }
                    axes.forEach(function (axis) {
                        return result.push(axis);
                    });
                    return result;
                }
                /** Returns the axes permutation that undoes the original permutation. */
                function getUndoAxesPermutation(axes) {
                    return axes.map(function (axis, i) {
                        return [i, axis];
                    }).sort(function (a, b) {
                        return a[1] - b[1];
                    }).map(function (x) {
                        return x[0];
                    });
                }
                function getInnerMostAxes(numAxes, rank) {
                    var res = [];
                    for (var i = rank - numAxes; i < rank; ++i) {
                        res.push(i);
                    }
                    return res;
                }
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the maximum of elements across dimensions of a `tf.Tensor`.
 *
 * Reduces the input along the dimensions given in `axes`. Unless `keepDims`
 * is true, the rank of the `tf.Tensor` is reduced by 1 for each entry in
 * `axes`. If `keepDims` is true, the reduced dimensions are retained with
 * length 1. If `axes` has no entries, all dimensions are reduced, and a
 * `tf.Tensor` with a single element is returned.
 *
 * ```js
 * const x = tf.tensor1d([1, 2, 3]);
 *
 * x.max().print();  // or tf.max(x)
 * ```
 *
 * ```js
 * const x = tf.tensor2d([1, 2, 3, 4], [2, 2]);
 *
 * const axis = 1;
 * x.max(axis).print();  // or tf.max(x, axis)
 * ```
 *
 * @param x The input tensor.
 * @param axis The dimension(s) to reduce. By default it reduces
 *     all dimensions.
 * @param keepDims If true, retains reduced dimensions with size 1.
 *
 * @doc {heading: 'Operations', subheading: 'Reduction'}
 */
                function max_(x, axis, keepDims) {
                    if (axis === void 0) {
                        axis = null;
                    }
                    if (keepDims === void 0) {
                        keepDims = false;
                    }
                    var $x = convertToTensor(x, 'x', 'max');
                    var inputs = {
                        x: $x
                    };
                    var attrs = {
                        reductionIndices: axis,
                        keepDims: keepDims
                    };
                    return ENGINE.runKernel(Max, inputs, attrs);
                }
                var max = op({
                    max_: max_
                });
                /**
 * @license
 * Copyright 2020 Google Inc. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the minimum value from the input.
 *
 * Reduces the input along the dimensions given in `axes`. Unless `keepDims`
 * is true, the rank of the array is reduced by 1 for each entry in `axes`.
 * If `keepDims` is true, the reduced dimensions are retained with length 1.
 * If `axes` has no entries, all dimensions are reduced, and an array with a
 * single element is returned.
 *
 * ```js
 * const x = tf.tensor1d([1, 2, 3]);
 *
 * x.min().print();  // or tf.min(x)
 * ```
 *
 * ```js
 * const x = tf.tensor2d([1, 2, 3, 4], [2, 2]);
 *
 * const axis = 1;
 * x.min(axis).print();  // or tf.min(x, axis)
 * ```
 *
 * @param x The input Tensor.
 * @param axis The dimension(s) to reduce. By default it reduces
 *     all dimensions.
 * @param keepDims If true, retains reduced dimensions with size 1.
 *
 * @doc {heading: 'Operations', subheading: 'Reduction'}
 */
                function min_(x, axis, keepDims) {
                    if (axis === void 0) {
                        axis = null;
                    }
                    if (keepDims === void 0) {
                        keepDims = false;
                    }
                    var $x = convertToTensor(x, 'x', 'min');
                    var inputs = {
                        x: $x
                    };
                    var attrs = {
                        axis: axis,
                        keepDims: keepDims
                    };
                    // tslint:disable-next-line: no-unnecessary-type-assertion
                    return ENGINE.runKernel(Min, inputs, attrs);
                }
                var min = op({
                    min_: min_
                });
                /**
 * Computes the power of one `tf.Tensor` to another. Supports broadcasting.
 *
 * Given a `tf.Tensor` x and a `tf.Tensor` y, this operation computes x^y for
 * corresponding elements in x and y. The result's dtype will be the upcasted
 * type of the `base` and `exp` dtypes.
 *
 * ```js
 * const a = tf.tensor([[2, 3], [4, 5]])
 * const b = tf.tensor([[1, 2], [3, 0]]).toInt();
 *
 * a.pow(b).print();  // or tf.pow(a, b)
 * ```
 *
 * ```js
 * const a = tf.tensor([[1, 2], [3, 4]])
 * const b = tf.tensor(2).toInt();
 *
 * a.pow(b).print();  // or tf.pow(a, b)
 * ```
 * We also expose `powStrict` which has the same signature as this op and
 * asserts that `base` and `exp` are the same shape (does not broadcast).
 *
 * @param base The base `tf.Tensor` to pow element-wise.
 * @param exp The exponent `tf.Tensor` to pow element-wise.
 *
 * @doc {heading: 'Operations', subheading: 'Arithmetic'}
 */
                function pow_(base, exp) {
                    var _a;
                    var $base = convertToTensor(base, 'base', 'pow');
                    var $exp = convertToTensor(exp, 'exp', 'pow');
                    _a = __read(makeTypesMatch($base, $exp), 2),
                        $base = _a[0],
                        $exp = _a[1];
                    var inputs = {
                        a: $base,
                        b: $exp
                    };
                    return ENGINE.runKernel(Pow, inputs);
                }
                var pow = op({
                    pow_: pow_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Creates rank-0 `tf.Tensor` (scalar) with the provided value and dtype.
 *
 * The same functionality can be achieved with `tf.tensor`, but in general
 * we recommend using `tf.scalar` as it makes the code more readable.
 *
 * ```js
 * tf.scalar(3.14).print();
 * ```
 *
 * @param value The value of the scalar.
 * @param dtype The data type.
 *
 * @doc {heading: 'Tensors', subheading: 'Creation'}
 */
                function scalar(value, dtype) {
                    if ((isTypedArray(value) && dtype !== 'string' || Array.isArray(value)) && dtype !== 'complex64') {
                        throw new Error('Error creating a new Scalar: value must be a primitive ' + '(number|boolean|string)');
                    }
                    if (dtype === 'string' && isTypedArray(value) && !(value instanceof Uint8Array)) {
                        throw new Error('When making a scalar from encoded string, ' + 'the value must be `Uint8Array`.');
                    }
                    var shape = [];
                    var inferredShape = [];
                    return makeTensor(value, shape, inferredShape, dtype);
                }
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes square root of the input `tf.Tensor` element-wise: `y = sqrt(x)`
 *
 * ```js
 * const x = tf.tensor1d([1, 2, 4, -1]);
 *
 * x.sqrt().print();  // or tf.sqrt(x)
 * ```
 * @param x The input tensor.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function sqrt_(x) {
                    var $x = convertToTensor(x, 'x', 'sqrt', 'float32');
                    var inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(Sqrt, inputs);
                }
                var sqrt = op({
                    sqrt_: sqrt_
                });
                /**
 * @license
 * Copyright 2019 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes square of `x` element-wise: `x ^ 2`
 *
 * ```js
 * const x = tf.tensor1d([1, 2, Math.sqrt(2), -1]);
 *
 * x.square().print();  // or tf.square(x)
 * ```
 * @param x The input Tensor.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function square_(x) {
                    var $x = convertToTensor(x, 'x', 'square');
                    var attrs = {};
                    return ENGINE.runKernel('Square', {
                        x: $x
                    }, attrs);
                }
                var square = op({
                    square_: square_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the sum of elements across dimensions of a `tf.Tensor`.
 *
 * Reduces the input along the dimensions given in `axes`. Unless `keepDims`
 * is true, the rank of the `tf.Tensor` is reduced by 1 for each entry in
 * `axes`. If `keepDims` is true, the reduced dimensions are retained with
 * length 1. If axes has no entries, all dimensions are reduced, and a
 * `tf.Tensor` with a single element is returned.
 *
 * ```js
 * const x = tf.tensor1d([1, 2, 3]);
 *
 * x.sum().print();  // or tf.sum(x)
 * ```
 *
 * ```js
 * const x = tf.tensor2d([1, 2, 3, 4], [2, 2]);
 *
 * const axis = 1;
 * x.sum(axis).print();  // or tf.sum(x, axis)
 * ```
 *
 * @param x The input tensor to compute the sum over. If the dtype is `bool`
 *   it will be converted to `int32` and the output dtype will be `int32`.
 * @param axis The dimension(s) to reduce. By default it reduces
 *     all dimensions.
 * @param keepDims If true, retains reduced dimensions with size 1.
 *
 * @doc {heading: 'Operations', subheading: 'Reduction'}
 */
                function sum_(x, axis, keepDims) {
                    if (axis === void 0) {
                        axis = null;
                    }
                    if (keepDims === void 0) {
                        keepDims = false;
                    }
                    var $x = convertToTensor(x, 'x', 'sum');
                    if ($x.dtype === 'bool') {
                        $x = cast($x, 'int32');
                    }
                    var inputs = {
                        x: $x
                    };
                    var attrs = {
                        axis: axis,
                        keepDims: keepDims
                    };
                    return ENGINE.runKernel(Sum, inputs, attrs);
                }
                var sum = op({
                    sum_: sum_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the norm of scalar, vectors, and matrices.
 * This function can compute several different vector norms (the 1-norm, the
 * Euclidean or 2-norm, the inf-norm, and in general the p-norm for p > 0)
 * and matrix norms (Frobenius, 1-norm, and inf-norm).
 *
 * ```js
 * const x = tf.tensor1d([1, 2, 3, 4]);
 *
 * x.norm().print();  // or tf.norm(x)
 * ```
 *
 * @param x The input array.
 * @param ord Optional. Order of the norm. Supported norm types are
 * following:
 *
 *  | ord        | norm for matrices         | norm for vectors
 *  |------------|---------------------------|---------------------
 *  |'euclidean' |Frobenius norm             |2-norm
 *  |'fro'       |Frobenius norm             |
 *  |Infinity    |max(sum(abs(x), axis=1))   |max(abs(x))
 *  |-Infinity   |min(sum(abs(x), axis=1))   |min(abs(x))
 *  |1           |max(sum(abs(x), axis=0))   |sum(abs(x))
 *  |2           |                           |sum(abs(x)^2)^(1/2)
 *
 * @param axis Optional. If axis is null (the default), the input is
 * considered a vector and a single vector norm is computed over the entire
 * set of values in the Tensor, i.e. norm(x, ord) is equivalent
 * to norm(x.reshape([-1]), ord). If axis is an integer, the input
 * is considered a batch of vectors, and axis determines the axis in x
 * over which to compute vector norms. If axis is a 2-tuple of integer it is
 * considered a batch of matrices and axis determines the axes in NDArray
 * over which to compute a matrix norm.
 * @param keepDims Optional. If true, the norm has the same dimensionality
 * as the input.
 *
 * @doc {heading: 'Operations', subheading: 'Matrices'}
 */
                function norm_(x, ord, axis, keepDims) {
                    if (ord === void 0) {
                        ord = 'euclidean';
                    }
                    if (axis === void 0) {
                        axis = null;
                    }
                    if (keepDims === void 0) {
                        keepDims = false;
                    }
                    x = convertToTensor(x, 'x', 'norm');
                    var norm = normImpl(x, ord, axis);
                    var keepDimsShape = norm.shape;
                    if (keepDims) {
                        var axes = parseAxisParam(axis, x.shape);
                        keepDimsShape = expandShapeToKeepDim(norm.shape, axes);
                    }
                    return reshape(norm, keepDimsShape);
                }
                function normImpl(x, p, axis) {
                    if (axis === void 0) {
                        axis = null;
                    }
                    if (x.rank === 0) {
                        return abs(x);
                    }
                    // consider vector when no axis is specified
                    if (x.rank !== 1 && axis === null) {
                        return normImpl(reshape(x, [-1]), p, axis);
                    }
                    // vector
                    if (x.rank === 1 || typeof axis === 'number' || Array.isArray(axis) && axis.length === 1) {
                        if (p === 1) {
                            return sum(abs(x), axis);
                        }
                        if (p === Infinity) {
                            return max(abs(x), axis);
                        }
                        if (p === -Infinity) {
                            return min(abs(x), axis);
                        }
                        if (p === 'euclidean' || p === 2) {
                            // norm(x, 2) = sum(abs(xi) ^ 2) ^ 1/2
                            return sqrt(sum(pow(abs(x), scalar(2, 'int32')), axis));
                        }
                        throw new Error("Error in norm: invalid ord value: ".concat(p));
                    }
                    // matrix (assumption axis[0] < axis[1])
                    if (Array.isArray(axis) && axis.length === 2) {
                        if (p === 1) {
                            return max(sum(abs(x), axis[0]), axis[1] - 1);
                        }
                        if (p === Infinity) {
                            return max(sum(abs(x), axis[1]), axis[0]);
                        }
                        if (p === -Infinity) {
                            return min(sum(abs(x), axis[1]), axis[0]);
                        }
                        if (p === 'fro' || p === 'euclidean') {
                            // norm(x) = sqrt(sum(pow(x, 2)))
                            return sqrt(sum(square(x), axis));
                        }
                        throw new Error("Error in norm: invalid ord value: ".concat(p));
                    }
                    throw new Error("Error in norm: invalid axis: ".concat(axis));
                }
                var norm = op({
                    norm_: norm_
                });
                /**
 * @license
 * Copyright 2022 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the Euclidean norm of scalar, vectors, and matrices.
 *
 * ```js
 * const x = tf.tensor1d([1, 2, 3, 4]);
 *
 * x.euclideanNorm().print();  // or tf.euclideanNorm(x)
 * ```
 *
 * @param x The input array.
 * @param axis Optional. If axis is null (the default), the input is
 * considered a vector and a single vector norm is computed over the entire
 * set of values in the Tensor, i.e. euclideanNorm(x) is equivalent
 * to euclideanNorm(x.reshape([-1])). If axis is an integer, the input
 * is considered a batch of vectors, and axis determines the axis in x
 * over which to compute vector norms. If axis is a 2-tuple of integer it is
 * considered a batch of matrices and axis determines the axes in NDArray
 * over which to compute a matrix norm.
 * @param keepDims Optional. If true, the norm has the same dimensionality
 * as the input.
 *
 * @doc {heading: 'Operations', subheading: 'Matrices'}
 */
                function euclideanNorm_(x, axis, keepDims) {
                    if (axis === void 0) {
                        axis = null;
                    }
                    if (keepDims === void 0) {
                        keepDims = false;
                    }
                    return norm(x, 'euclidean', axis, keepDims);
                }
                var euclideanNorm = op({
                    euclideanNorm_: euclideanNorm_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes exponential of the input `tf.Tensor` element-wise. `e ^ x`
 *
 * ```js
 * const x = tf.tensor1d([1, 2, -3]);
 *
 * x.exp().print();  // or tf.exp(x)
 * ```
 * @param x The input tensor.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function exp_(x) {
                    var $x = convertToTensor(x, 'x', 'exp');
                    var inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(Exp, inputs);
                }
                var exp = op({
                    exp_: exp_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Returns a `tf.Tensor` that has expanded rank, by inserting a dimension
 * into the tensor's shape.
 *
 * ```js
 * const x = tf.tensor1d([1, 2, 3, 4]);
 * const axis = 1;
 * x.expandDims(axis).print();
 * ```
 *
 * @param x The input tensor whose dimensions are to be expanded.
 * @param axis The dimension index at which to insert shape of `1`. Defaults
 *     to 0 (the first dimension).
 *
 * @doc {heading: 'Tensors', subheading: 'Transformations'}
 */
                function expandDims_(x, axis) {
                    if (axis === void 0) {
                        axis = 0;
                    }
                    var $x = convertToTensor(x, 'x', 'expandDims', 'string_or_numeric');
                    assert(axis <= $x.rank, function () {
                        return 'Axis must be <= rank of the tensor';
                    });
                    var inputs = {
                        input: $x
                    };
                    var attrs = {
                        dim: axis
                    };
                    return ENGINE.runKernel(ExpandDims, inputs, attrs);
                }
                var expandDims = op({
                    expandDims_: expandDims_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes exponential of the input `tf.Tensor` minus one element-wise.
 * `e ^ x - 1`
 *
 * ```js
 * const x = tf.tensor1d([1, 2, -3]);
 *
 * x.expm1().print();  // or tf.expm1(x)
 * ```
 * @param x The input tensor.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function expm1_(x) {
                    var $x = convertToTensor(x, 'x', 'expm1');
                    var inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(Expm1, inputs);
                }
                var expm1 = op({
                    expm1_: expm1_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Construct a tensor by repeating it the number of times given by reps.
 *
 * This operation creates a new tensor by replicating `input` `reps`
 * times. The output tensor's `i`th dimension has `input.shape[i] *
 * reps[i]` elements, and the values of `input` are replicated
 * `reps[i]` times along the `i`th dimension. For example, tiling
 * `[a, b, c, d]` by `[2]` produces `[a, b, c, d, a, b, c, d]`.
 *
 * ```js
 * const a = tf.tensor1d([1, 2]);
 *
 * a.tile([2]).print();    // or a.tile([2])
 * ```
 *
 * ```js
 * const a = tf.tensor2d([1, 2, 3, 4], [2, 2]);
 *
 * a.tile([1, 2]).print();  // or a.tile([1, 2])
 * ```
 * @param x The tensor to tile.
 * @param reps Determines the number of replications per dimension.
 *
 * @doc {heading: 'Tensors', subheading: 'Slicing and Joining'}
 */
                function tile_(x, reps) {
                    var $x = convertToTensor(x, 'x', 'tile', 'string_or_numeric');
                    assert($x.rank === reps.length, function () {
                        return "Error in transpose: rank of input ".concat($x.rank, " ") + "must match length of reps ".concat(reps, ".");
                    });
                    var inputs = {
                        x: $x
                    };
                    var attrs = {
                        reps: reps
                    };
                    return ENGINE.runKernel(Tile, inputs, attrs);
                }
                var tile = op({
                    tile_: tile_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Create an identity matrix.
 *
 * @param numRows Number of rows.
 * @param numColumns Number of columns. Defaults to `numRows`.
 * @param batchShape If provided, will add the batch shape to the beginning
 *   of the shape of the returned `tf.Tensor` by repeating the identity
 *   matrix.
 * @param dtype Data type.
 * @returns Identity matrix of the specified size and data type, possibly
 *   with batch repetition if `batchShape` is specified.
 *
 * @doc {heading: 'Tensors', subheading: 'Creation'}
 */
                function eye_(numRows, numColumns, batchShape, dtype) {
                    if (dtype === void 0) {
                        dtype = 'float32';
                    }
                    if (numColumns == null) {
                        numColumns = numRows;
                    }
                    var buff = buffer([numRows, numColumns], dtype);
                    var n = numRows <= numColumns ? numRows : numColumns;
                    for (var i = 0; i < n; ++i) {
                        buff.set(1, i, i);
                    }
                    var out = reshape(buff.toTensor(), [numRows, numColumns]);
                    if (batchShape == null) {
                        return out;
                    } else {
                        if (batchShape.length === 1) {
                            return tile(expandDims(out, 0), [batchShape[0], 1, 1]);
                        } else if (batchShape.length === 2) {
                            // tslint:disable-next-line:no-unnecessary-type-assertion
                            return tile(expandDims(expandDims(out, 0), 0), [batchShape[0], batchShape[1], 1, 1]);
                        } else if (batchShape.length === 3) {
                            // tslint:disable-next-line:no-unnecessary-type-assertion
                            return tile(expandDims(expandDims(expandDims(out, 0), 0), 0), [batchShape[0], batchShape[1], batchShape[2], 1, 1]);
                        } else {
                            throw new Error("eye() currently supports only 1D and 2D " + // tslint:disable-next-line:no-any
                                "batchShapes, but received ".concat(batchShape.length, "D."));
                        }
                    }
                }
                var eye = op({
                    eye_: eye_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes floor of input `tf.Tensor` element-wise: `floor(x)`.
 *
 * ```js
 * const x = tf.tensor1d([.6, 1.1, -3.3]);
 *
 * x.floor().print();  // or tf.floor(x)
 * ```
 * @param x The input tensor.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function floor_(x) {
                    var $x = convertToTensor(x, 'x', 'floor', 'float32');
                    var inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(Floor, inputs);
                }
                var floor = op({
                    floor_: floor_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Gather slices from tensor `x`'s axis `axis` according to `indices`.
 *
 * ```js
 * const x = tf.tensor1d([1, 2, 3, 4]);
 * const indices = tf.tensor1d([1, 3, 3], 'int32');
 *
 * x.gather(indices).print();
 * ```
 *
 * ```js
 * const x = tf.tensor2d([1, 2, 3, 4], [2, 2]);
 * const indices = tf.tensor1d([1, 1, 0], 'int32');
 *
 * x.gather(indices).print();
 * ```
 * @param x The input tensor whose slices are to be gathered.
 * @param indices The indices of the values to extract.
 * @param axis The axis over which to select values. Defaults to 0.
 * @param batchDims Optional. The number of batch dimensions. It must be less
 *     than or equal to rank(indices). Defaults to 0.
 *     The output tensor will have shape of
 *     `x.shape[:axis] + indices.shape[batchDims:] + x.shape[axis + 1:]`
 *
 * @doc {heading: 'Tensors', subheading: 'Slicing and Joining'}
 */
                function gather_(x, indices, axis, batchDims) {
                    if (axis === void 0) {
                        axis = 0;
                    }
                    if (batchDims === void 0) {
                        batchDims = 0;
                    }
                    var $x = convertToTensor(x, 'x', 'gather');
                    var $indices = convertToTensor(indices, 'indices', 'gather', 'int32');
                    var inputs = {
                        x: $x,
                        indices: $indices
                    };
                    var attrs = {
                        axis: axis,
                        batchDims: batchDims
                    };
                    return ENGINE.runKernel(GatherV2, inputs, attrs);
                }
                var gather = op({
                    gather_: gather_
                });
                /**
 * Returns the truth value of (a > b) element-wise. Supports broadcasting.
 *
 * ```js
 * const a = tf.tensor1d([1, 2, 3]);
 * const b = tf.tensor1d([2, 2, 2]);
 *
 * a.greater(b).print();
 * ```
 *
 * @param a The first input tensor.
 * @param b The second input tensor. Must have the same dtype as `a`.
 *
 * @doc {heading: 'Operations', subheading: 'Logical'}
 */
                function greater_(a, b) {
                    var _a;
                    var $a = convertToTensor(a, 'a', 'greater', 'string_or_numeric');
                    var $b = convertToTensor(b, 'b', 'greater', 'string_or_numeric');
                    _a = __read(makeTypesMatch($a, $b), 2),
                        $a = _a[0],
                        $b = _a[1];
                    assertAndGetBroadcastShape($a.shape, $b.shape);
                    var inputs = {
                        a: $a,
                        b: $b
                    };
                    return ENGINE.runKernel(Greater, inputs);
                }
                var greater = op({
                    greater_: greater_
                });
                /**
 * Returns the truth value of (a >= b) element-wise. Supports broadcasting.
 *
 * ```js
 * const a = tf.tensor1d([1, 2, 3]);
 * const b = tf.tensor1d([2, 2, 2]);
 *
 * a.greaterEqual(b).print();
 * ```
 *
 * @param a The first input tensor.
 * @param b The second input tensor. Must have the same dtype as `a`.
 *
 * @doc {heading: 'Operations', subheading: 'Logical'}
 */
                function greaterEqual_(a, b) {
                    var _a;
                    var $a = convertToTensor(a, 'a', 'greaterEqual', 'string_or_numeric');
                    var $b = convertToTensor(b, 'b', 'greaterEqual', 'string_or_numeric');
                    _a = __read(makeTypesMatch($a, $b), 2),
                        $a = _a[0],
                        $b = _a[1];
                    assertAndGetBroadcastShape($a.shape, $b.shape);
                    var inputs = {
                        a: $a,
                        b: $b
                    };
                    return ENGINE.runKernel(GreaterEqual, inputs);
                }
                var greaterEqual = op({
                    greaterEqual_: greaterEqual_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Returns which elements of x are finite.
 *
 * ```js
 * const x = tf.tensor1d([NaN, Infinity, -Infinity, 0, 1]);
 *
 * x.isFinite().print();  // or tf.isNaN(x)
 * ```
 * @param x The input Tensor.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function isFinite_(x) {
                    var $x = convertToTensor(x, 'x', 'isFinite');
                    var inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(IsFinite, inputs);
                }
                var isFinite$1 = op({
                    isFinite_: isFinite_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Returns which elements of x are Infinity or -Infinity.
 *
 * ```js
 * const x = tf.tensor1d([NaN, Infinity, -Infinity, 0, 1]);
 *
 * x.isInf().print();  // or tf.isNaN(x)
 * ```
 * @param x The input Tensor.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function isInf_(x) {
                    var $x = convertToTensor(x, 'x', 'isInf');
                    var inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(IsInf, inputs);
                }
                var isInf = op({
                    isInf_: isInf_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Returns which elements of x are NaN.
 *
 * ```js
 * const x = tf.tensor1d([NaN, Infinity, -Infinity, 0, 1]);
 *
 * x.isNaN().print();  // or tf.isNaN(x)
 * ```
 * @param x The input Tensor.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function isNaN_(x) {
                    var $x = convertToTensor(x, 'x', 'isNaN');
                    var inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(IsNan, inputs);
                }
                var isNaN$1 = op({
                    isNaN_: isNaN_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes leaky rectified linear element-wise.
 *
 * See
 * [http://web.stanford.edu/~awni/papers/relu_hybrid_icml2013_final.pdf](
 *     http://web.stanford.edu/~awni/papers/relu_hybrid_icml2013_final.pdf)
 *
 * ```js
 * const x = tf.tensor1d([-1, 2, -3, 4]);
 *
 * x.leakyRelu(0.1).print();  // or tf.leakyRelu(x, 0.1)
 * ```
 * @param x The input tensor.
 * @param alpha The scaling factor for negative values, defaults to 0.2.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function leakyRelu_(x, alpha) {
                    if (alpha === void 0) {
                        alpha = 0.2;
                    }
                    var $x = convertToTensor(x, 'x', 'leakyRelu');
                    var inputs = {
                        x: $x
                    };
                    var attrs = {
                        alpha: alpha
                    };
                    return ENGINE.runKernel(LeakyRelu, inputs, attrs);
                }
                var leakyRelu = op({
                    leakyRelu_: leakyRelu_
                });
                /**
 * Returns the truth value of (a < b) element-wise. Supports broadcasting.
 *
 * ```js
 * const a = tf.tensor1d([1, 2, 3]);
 * const b = tf.tensor1d([2, 2, 2]);
 *
 * a.less(b).print();
 * ```
 * @param a The first input tensor.
 * @param b The second input tensor. Must have the same dtype as `a`.
 *
 * @doc {heading: 'Operations', subheading: 'Logical'}
 */
                function less_(a, b) {
                    var _a;
                    var $a = convertToTensor(a, 'a', 'less', 'string_or_numeric');
                    var $b = convertToTensor(b, 'b', 'less', 'string_or_numeric');
                    _a = __read(makeTypesMatch($a, $b), 2),
                        $a = _a[0],
                        $b = _a[1];
                    assertAndGetBroadcastShape($a.shape, $b.shape);
                    var inputs = {
                        a: $a,
                        b: $b
                    };
                    return ENGINE.runKernel(Less, inputs);
                }
                var less = op({
                    less_: less_
                });
                /**
 * Returns the truth value of (a <= b) element-wise. Supports broadcasting.
 *
 * ```js
 * const a = tf.tensor1d([1, 2, 3]);
 * const b = tf.tensor1d([2, 2, 2]);
 *
 * a.lessEqual(b).print();
 * ```
 *
 * @param a The first input tensor.
 * @param b The second input tensor. Must have the same dtype as `a`.
 *
 * @doc {heading: 'Operations', subheading: 'Logical'}
 */
                function lessEqual_(a, b) {
                    var _a;
                    var $a = convertToTensor(a, 'a', 'lessEqual', 'string_or_numeric');
                    var $b = convertToTensor(b, 'b', 'lessEqual', 'string_or_numeric');
                    _a = __read(makeTypesMatch($a, $b), 2),
                        $a = _a[0],
                        $b = _a[1];
                    assertAndGetBroadcastShape($a.shape, $b.shape);
                    var inputs = {
                        a: $a,
                        b: $b
                    };
                    return ENGINE.runKernel(LessEqual, inputs);
                }
                var lessEqual = op({
                    lessEqual_: lessEqual_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Return an evenly spaced sequence of numbers over the given interval.
 *
 * ```js
 * tf.linspace(0, 9, 10).print();
 * ```
 * @param start The start value of the sequence.
 * @param stop The end value of the sequence.
 * @param num The number of values to generate.
 *
 * @doc {heading: 'Tensors', subheading: 'Creation'}
 */
                function linspace(start, stop, num) {
                    if (num <= 0) {
                        throw new Error('The number of values should be positive.');
                    }
                    var attrs = {
                        start: start,
                        stop: stop,
                        num: num
                    };
                    return ENGINE.runKernel(LinSpace, {}, attrs);
                }
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Normalizes the activation of a local neighborhood across or within
 * channels.
 *
 * @param x The input tensor. The 4-D input tensor is treated as a 3-D array
 *     of 1D vectors (along the last dimension), and each vector is
 *     normalized independently.
 * @param depthRadius The number of adjacent channels in the 1D normalization
 *     window.
 * @param bias A constant bias term for the basis.
 * @param alpha A scale factor, usually positive.
 * @param beta An exponent.
 *
 * @doc {heading: 'Operations', subheading: 'Normalization'}
 */
                function localResponseNormalization_(x, depthRadius, bias, alpha, beta) {
                    if (depthRadius === void 0) {
                        depthRadius = 5;
                    }
                    if (bias === void 0) {
                        bias = 1;
                    }
                    if (alpha === void 0) {
                        alpha = 1;
                    }
                    if (beta === void 0) {
                        beta = 0.5;
                    }
                    var $x = convertToTensor(x, 'x', 'localResponseNormalization');
                    assert($x.rank === 4 || $x.rank === 3, function () {
                        return "Error in localResponseNormalization: x must be rank 3 or 4 but got\n               rank ".concat($x.rank, ".");
                    });
                    assert(isInt(depthRadius), function () {
                        return "Error in localResponseNormalization: depthRadius must be an " + "integer but got depthRadius ".concat(depthRadius, ".");
                    });
                    var x4D = $x;
                    var reshapedTo4D = false;
                    if ($x.rank === 3) {
                        reshapedTo4D = true;
                        x4D = reshape($x, [1, $x.shape[0], $x.shape[1], $x.shape[2]]);
                    }
                    var inputs = {
                        x: x4D
                    };
                    var attrs = {
                        depthRadius: depthRadius,
                        bias: bias,
                        alpha: alpha,
                        beta: beta
                    };
                    // tslint:disable-next-line: no-unnecessary-type-assertion
                    var res = ENGINE.runKernel(LRN, inputs, attrs);
                    if (reshapedTo4D) {
                        return reshape(res, [res.shape[1], res.shape[2], res.shape[3]]);
                    } else {
                        return res;
                    }
                }
                var localResponseNormalization = op({
                    localResponseNormalization_: localResponseNormalization_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes natural logarithm of the input `tf.Tensor` element-wise: `ln(x)`
 *
 * ```js
 * const x = tf.tensor1d([1, 2, Math.E]);
 *
 * x.log().print();  // or tf.log(x)
 * ```
 * @param x The input tensor.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function log_(x) {
                    var $x = convertToTensor(x, 'x', 'log', 'float32');
                    var inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(Log, inputs);
                }
                var log = op({
                    log_: log_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes natural logarithm of the input `tf.Tensor` plus one
 * element-wise: `ln(1 + x)`
 *
 * ```js
 * const x = tf.tensor1d([1, 2, Math.E - 1]);
 *
 * x.log1p().print();  // or tf.log1p(x)
 * ```
 * @param x The input tensor.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function log1p_(x) {
                    var $x = convertToTensor(x, 'x', 'log1p');
                    var inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(Log1p, inputs);
                }
                var log1p = op({
                    log1p_: log1p_
                });
                /**
 * Provided `f(x)`, returns another function `g(x, dy?)`, which gives the
 * gradient of `f(x)` with respect to `x`.
 *
 * If `dy` is provided, the gradient of `f(x).mul(dy).sum()` with respect to
 * `x` is computed instead. `f(x)` must take a single tensor `x` and return a
 * single tensor `y`. If `f()` takes multiple inputs, use `tf.grads` instead.
 *
 * ```js
 * // f(x) = x ^ 2
 * const f = x => x.square();
 * // f'(x) = 2x
 * const g = tf.grad(f);
 *
 * const x = tf.tensor1d([2, 3]);
 * g(x).print();
 * ```
 *
 * ```js
 * // f(x) = x ^ 3
 * const f = x => x.pow(tf.scalar(3, 'int32'));
 * // f'(x) = 3x ^ 2
 * const g = tf.grad(f);
 * // f''(x) = 6x
 * const gg = tf.grad(g);
 *
 * const x = tf.tensor1d([2, 3]);
 * gg(x).print();
 * ```
 *
 * @param f The function f(x), to compute gradient for.
 *
 * @doc {heading: 'Training', subheading: 'Gradients'}
 */
                function grad(f) {
                    assert(isFunction(f), function () {
                        return 'The f passed in grad(f) must be a function';
                    });
                    return function (x, dy) {
                        // x can be of any dtype, thus null as the last argument.
                        var $x = convertToTensor(x, 'x', 'tf.grad', 'string_or_numeric');
                        var $dy = dy != null ? convertToTensor(dy, 'dy', 'tf.grad') : null;
                        return ENGINE.tidy(function () {
                            var _a = ENGINE.gradients(function () {
                                return f($x);
                            }, [$x], $dy)
                                , value = _a.value
                                , grads = _a.grads;
                            if ($dy != null) {
                                assertShapesMatch(value.shape, $dy.shape, 'The shape of dy passed in grad(f)(x, dy) must match the shape ' + 'returned by f(x)');
                            }
                            checkGrads(grads);
                            return grads[0];
                        });
                    }
                        ;
                }
                /**
 * Provided `f(x1, x2,...)`, returns another function `g([x1, x2,...], dy?)`,
 * which gives an array of gradients of `f()` with respect to each input
 * [`x1`,`x2`,...].
 *
 * If `dy` is passed when calling `g()`, the gradient of
 * `f(x1,...).mul(dy).sum()` with respect to each input is computed instead.
 * The provided `f` must take one or more tensors and return a single tensor
 * `y`. If `f()` takes a single input, we recommend using `tf.grad` instead.
 *
 * ```js
 * // f(a, b) = a * b
 * const f = (a, b) => a.mul(b);
 * // df / da = b, df / db = a
 * const g = tf.grads(f);
 *
 * const a = tf.tensor1d([2, 3]);
 * const b = tf.tensor1d([-2, -3]);
 * const [da, db] = g([a, b]);
 * console.log('da');
 * da.print();
 * console.log('db');
 * db.print();
 * ```
 *
 * @param f The function `f(x1, x2,...)` to compute gradients for.
 *
 * @doc {heading: 'Training', subheading: 'Gradients'}
 */
                function grads(f) {
                    assert(isFunction(f), function () {
                        return 'The f passed in grads(f) must be a function';
                    });
                    return function (args, dy) {
                        assert(Array.isArray(args), function () {
                            return 'The args passed in grads(f)(args) must be an array ' + 'of `Tensor`s or `TensorLike`s';
                        });
                        // args can be of any dtype, thus null as the last argument.
                        var $args = convertToTensorArray(args, 'args', 'tf.grads', 'string_or_numeric');
                        var $dy = dy != null ? convertToTensor(dy, 'dy', 'tf.grads') : null;
                        return ENGINE.tidy(function () {
                            var _a = ENGINE.gradients(function () {
                                return f.apply(void 0, __spreadArray([], __read($args), false));
                            }, $args, $dy)
                                , value = _a.value
                                , grads = _a.grads;
                            if ($dy != null) {
                                assertShapesMatch(value.shape, $dy.shape, 'The shape of dy passed in grads(f)([x1,...], dy) must ' + 'match the shape returned by f([x1,...])');
                            }
                            checkGrads(grads);
                            return grads;
                        });
                    }
                        ;
                }
                /**
 * Like `tf.grad`, but also returns the value of `f()`. Useful when `f()`
 * returns a metric you want to show.
 *
 * The result is a rich object with the following properties:
 * - grad: The gradient of `f(x)` w.r.t. `x` (result of `tf.grad`).
 * - value: The value returned by `f(x)`.
 *
 * ```js
 * // f(x) = x ^ 2
 * const f = x => x.square();
 * // f'(x) = 2x
 * const g = tf.valueAndGrad(f);
 *
 * const x = tf.tensor1d([2, 3]);
 * const {value, grad} = g(x);
 *
 * console.log('value');
 * value.print();
 * console.log('grad');
 * grad.print();
 * ```
 *
 * @doc {heading: 'Training', subheading: 'Gradients'}
 */
                function valueAndGrad(f) {
                    assert(isFunction(f), function () {
                        return 'The f passed in valueAndGrad(f) must be a function';
                    });
                    return function (x, dy) {
                        assert(x instanceof Tensor, function () {
                            return 'The x passed in valueAndGrad(f)(x) must be a tensor';
                        });
                        assert(dy == null || dy instanceof Tensor, function () {
                            return 'The dy passed in valueAndGrad(f)(x, dy) must be a tensor';
                        });
                        var _a = ENGINE.gradients(function () {
                            return f(x);
                        }, [x], dy)
                            , grads = _a.grads
                            , value = _a.value;
                        checkGrads(grads);
                        return {
                            grad: grads[0],
                            value: value
                        };
                    }
                        ;
                }
                /**
 * Like `tf.grads`, but returns also the value of `f()`. Useful when `f()`
 * returns a metric you want to show.
 *
 * The result is a rich object with the following properties:
 * - grads: The gradients of `f()` w.r.t. each input (result of `tf.grads`).
 * - value: The value returned by `f(x)`.
 *
 * ```js
 * // f(a, b) = a * b
 * const f = (a, b) => a.mul(b);
 * // df/da = b, df/db = a
 * const g = tf.valueAndGrads(f);
 *
 * const a = tf.tensor1d([2, 3]);
 * const b = tf.tensor1d([-2, -3]);
 * const {value, grads} = g([a, b]);
 *
 * const [da, db] = grads;
 *
 * console.log('value');
 * value.print();
 *
 * console.log('da');
 * da.print();
 * console.log('db');
 * db.print();
 * ```
 *
 * @doc {heading: 'Training', subheading: 'Gradients'}
 */
                function valueAndGrads(f) {
                    assert(isFunction(f), function () {
                        return 'The f passed in valueAndGrads(f) must be a function';
                    });
                    return function (args, dy) {
                        assert(Array.isArray(args) && args.every(function (arg) {
                            return arg instanceof Tensor;
                        }), function () {
                            return 'The args passed in valueAndGrads(f)(args) must be array of ' + 'tensors';
                        });
                        assert(dy == null || dy instanceof Tensor, function () {
                            return 'The dy passed in valueAndGrads(f)(args, dy) must be a tensor';
                        });
                        var res = ENGINE.gradients(function () {
                            return f.apply(void 0, __spreadArray([], __read(args), false));
                        }, args, dy);
                        if (dy != null) {
                            assertShapesMatch(res.value.shape, dy.shape, 'The shape of dy passed in valueAndGrads(f)([x1,...], dy) must ' + 'match the shape returned by f([x1,...])');
                        }
                        checkGrads(res.grads);
                        return res;
                    }
                        ;
                }
                /**
 * Computes and returns the gradient of f(x) with respect to the list of
 * trainable variables provided by `varList`. If no list is provided, it
 * defaults to all trainable variables.
 *
 * ```js
 * const a = tf.variable(tf.tensor1d([3, 4]));
 * const b = tf.variable(tf.tensor1d([5, 6]));
 * const x = tf.tensor1d([1, 2]);
 *
 * // f(a, b) = a * x ^ 2 + b * x
 * const f = () => a.mul(x.square()).add(b.mul(x)).sum();
 * // df/da = x ^ 2, df/db = x
 * const {value, grads} = tf.variableGrads(f);
 *
 * Object.keys(grads).forEach(varName => grads[varName].print());
 * ```
 *
 * @param f The function to execute. f() should return a scalar.
 * @param varList The list of variables to compute the gradients with respect
 *     to. Defaults to all trainable variables.
 * @returns An object with the following keys and values:
 *   - `value`: The value of the function `f`.
 *   - `grads`: A map from the names of the variables to the gradients.
 *     If the `varList` argument is provided explicitly and contains a subset of
 *     non-trainable variables, this map in the return value will contain keys
 *     that map the names of the non-trainable variables to `null`.
 *
 * @doc {heading: 'Training', subheading: 'Gradients'}
 */
                function variableGrads(f, varList) {
                    assert(isFunction(f), function () {
                        return 'The f passed in variableGrads(f) must be a function';
                    });
                    assert(varList == null || Array.isArray(varList) && varList.every(function (v) {
                        return v instanceof Variable;
                    }), function () {
                        return 'The varList passed in variableGrads(f, varList) must be an array ' + 'of variables';
                    });
                    var specifiedVarList = varList != null;
                    if (!specifiedVarList) {
                        // Get all of the trainable variables.
                        varList = [];
                        for (var varName in ENGINE.registeredVariables) {
                            varList.push(ENGINE.registeredVariables[varName]);
                        }
                    }
                    var specifiedNonTrainable = specifiedVarList ? varList.filter(function (variable) {
                        return !variable.trainable;
                    }) : null;
                    // Prune non-trainable variables.
                    var originalVarCount = varList.length;
                    varList = varList.filter(function (variable) {
                        return variable.trainable;
                    });
                    assert(varList.length > 0, function () {
                        return "variableGrads() expects at least one of the input variables to " + "be trainable, but none of the ".concat(originalVarCount, " variables is ") + "trainable.";
                    });
                    var allowNoGradients = true;
                    var _a = ENGINE.gradients(f, varList, null, allowNoGradients)
                        , value = _a.value
                        , grads = _a.grads;
                    assert(grads.some(function (g) {
                        return g != null;
                    }), function () {
                        return 'Cannot find a connection between any variable and the result of ' + 'the loss function y=f(x). Please make sure the operations that ' + 'use variables are inside the function f passed to minimize().';
                    });
                    assert(value.rank === 0, function () {
                        return "The f passed in variableGrads(f) must return a scalar, but it " + "returned a rank-".concat(value.rank, " tensor");
                    });
                    var namedGrads = {};
                    varList.forEach(function (v, i) {
                        if (grads[i] != null) {
                            namedGrads[v.name] = grads[i];
                        }
                    });
                    if (specifiedNonTrainable != null) {
                        // If varList is explicitly provided and contains non-trainable values,
                        // add them to the returned gradients with `null` values.
                        specifiedNonTrainable.forEach(function (v) {
                            return namedGrads[v.name] = null;
                        });
                    }
                    return {
                        value: value,
                        grads: namedGrads
                    };
                }
                /**
 * Overrides the gradient computation of a function `f`.
 *
 * Takes a function
 * `f(...inputs, save) => {value: Tensor, gradFunc: (dy, saved) => Tensor[]}`
 * and returns another function `g(...inputs)` which takes the same inputs as
 * `f`. When called, `g` returns `f().value`. In backward mode, custom gradients
 * with respect to each input of `f` are computed using `f().gradFunc`.
 *
 * The `save` function passed to `f` should be used for saving tensors needed
 * in the gradient. And the `saved` passed to the `gradFunc` is a
 * `NamedTensorMap`, which contains those saved tensors.
 *
 * ```js
 * const customOp = tf.customGrad((x, save) => {
 *   // Save x to make sure it's available later for the gradient.
 *   save([x]);
 *   // Override gradient of our custom x ^ 2 op to be dy * abs(x);
 *   return {
 *     value: x.square(),
 *     // Note `saved.x` which points to the `x` we saved earlier.
 *     gradFunc: (dy, saved) => [dy.mul(saved[0].abs())]
 *   };
 * });
 *
 * const x = tf.tensor1d([-1, -2, 3]);
 * const dx = tf.grad(x => customOp(x));
 *
 * console.log(`f(x):`);
 * customOp(x).print();
 * console.log(`f'(x):`);
 * dx(x).print();
 * ```
 *
 * @param f The function to evaluate in forward mode, which should return
 *     `{value: Tensor, gradFunc: (dy, saved) => Tensor[]}`, where `gradFunc`
 *     returns the custom gradients of `f` with respect to its inputs.
 *
 * @doc {heading: 'Training', subheading: 'Gradients'}
 */
                function customGrad(f) {
                    return ENGINE.customGrad(f);
                }
                function checkGrads(grads) {
                    var numNullGradients = grads.filter(function (g) {
                        return g == null;
                    }).length;
                    if (numNullGradients > 0) {
                        throw new Error("Cannot compute gradient of y=f(x) with respect to x. Make sure that\n    the f you passed encloses all operations that lead from x to y.");
                    }
                }
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes softplus of the input `tf.Tensor` element-wise: `log(exp(x) + 1)`
 *
 * ```js
 * const x = tf.tensor1d([0, 1, -1, .7]);
 *
 * x.softplus().print();  // or tf.softplus(x)
 * ```
 * @param x The input tensor.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function softplus_(x) {
                    var $x = convertToTensor(x, 'x', 'softplus');
                    var inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(Softplus, inputs);
                }
                var softplus = op({
                    softplus_: softplus_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes log sigmoid of the input `tf.Tensor` element-wise:
 * `logSigmoid(x)`. For numerical stability, we use `-tf.softplus(-x)`.
 *
 * ```js
 * const x = tf.tensor1d([0, 1, -1, .7]);
 *
 * x.logSigmoid().print();  // or tf.logSigmoid(x)
 * ```
 * @param x The input tensor.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function logSigmoid_(x) {
                    var $x = convertToTensor(x, 'x', 'logSigmoid');
                    // Use a custom gradient to maintain previous implementation.
                    // There is no LogSigmoid kernel in TF so we can't use engine.runKernel
                    // directly
                    var customOp = customGrad(function (x) {
                        // TODO(yassogba) we can remove the chained softplus call here only
                        // after backends have modualrized softplus at which point we can call
                        // engine runKernel(..., Sotfplus, ...) directly.
                        var value = neg(softplus(neg(x)));
                        var gradFunc = function (dy) {
                            var derX = mul(dy, sigmoid(neg(x)));
                            return derX;
                        };
                        return {
                            value: value,
                            gradFunc: gradFunc
                        };
                    });
                    return customOp($x);
                }
                var logSigmoid = op({
                    logSigmoid_: logSigmoid_
                });
                /**
 * Subtracts two `tf.Tensor`s element-wise, A - B. Supports broadcasting.
 *
 * ```js
 * const a = tf.tensor1d([10, 20, 30, 40]);
 * const b = tf.tensor1d([1, 2, 3, 4]);
 *
 * a.sub(b).print();  // or tf.sub(a, b)
 * ```
 *
 * ```js
 * // Broadcast subtract a with b.
 * const a = tf.tensor1d([10, 20, 30, 40]);
 * const b = tf.scalar(5);
 *
 * a.sub(b).print();  // or tf.sub(a, b)
 * ```
 * @param a The first `tf.Tensor` to subtract from.
 * @param b The second `tf.Tensor` to be subtracted. Must have the same dtype as
 * `a`.
 *
 * @doc {heading: 'Operations', subheading: 'Arithmetic'}
 */
                function sub_(a, b) {
                    var _a;
                    var $a = convertToTensor(a, 'a', 'sub');
                    var $b = convertToTensor(b, 'b', 'sub');
                    _a = __read(makeTypesMatch($a, $b), 2),
                        $a = _a[0],
                        $b = _a[1];
                    var inputs = {
                        a: $a,
                        b: $b
                    };
                    return ENGINE.runKernel(Sub, inputs);
                }
                var sub = op({
                    sub_: sub_
                });
                /**
 * Computes the log softmax.
 *
 * ```js
 * const a = tf.tensor1d([1, 2, 3]);
 *
 * a.logSoftmax().print();  // or tf.logSoftmax(a)
 * ```
 *
 * ```js
 * const a = tf.tensor2d([2, 4, 6, 1, 2, 3], [2, 3]);
 *
 * a.logSoftmax().print();  // or tf.logSoftmax(a)
 * ```
 *
 * @param logits The logits array.
 * @param axis The dimension softmax would be performed on. Defaults to `-1`
 *     which indicates the last dimension.
 *
 * @doc {heading: 'Operations', subheading: 'Normalization'}
 */
                function logSoftmax_(logits, axis) {
                    if (axis === void 0) {
                        axis = -1;
                    }
                    var $logits = convertToTensor(logits, 'logits', 'logSoftmax');
                    if (axis === -1) {
                        axis = $logits.rank - 1;
                    }
                    if (axis !== $logits.rank - 1) {
                        throw Error('Log Softmax along a non-last dimension is not yet supported. ' + "Logits was rank ".concat($logits.rank, " and axis was ").concat(axis));
                    }
                    // const forward: ForwardFunc<Tensor> = (backend, save) => {
                    //   const keepDims = true;
                    //   const xMax = max(logits, axis, true);
                    //   const shifted = sub(logits, xMax);
                    //   const value =
                    //       sub(cast(shifted, 'float32'), log(sum(exp(shifted), axis,
                    //       keepDims)));
                    //   save([value]);
                    //   return value;
                    // };
                    // Use a custom gradient for numerical stability.
                    var customOp = customGrad(function (logits, save) {
                        var keepDims = true;
                        var xMax = max(logits, axis, true);
                        var shifted = sub(logits, xMax);
                        var value = sub(cast(shifted, 'float32'), log(sum(exp(shifted), axis, keepDims)));
                        save([value]);
                        var gradFunc = function (dy, saved) {
                            var _a = __read(saved, 1)
                                , value = _a[0];
                            var keepDims = true;
                            var softmax = exp(value);
                            return sub(dy, mul(sum(dy, axis, keepDims), softmax));
                        };
                        return {
                            value: value,
                            gradFunc: gradFunc
                        };
                    });
                    return customOp($logits);
                    // TODO Use Engine.runKernel when CPU/WebGL/WASM backends implement this.
                    // const inputs: LogSoftmaxInputs = {logits: $logits};
                    // const attrs: LogSoftmaxAttrs = {axis};
                    // return ENGINE.runKernel(
                    //            LogSoftmax, inputs as {} as NamedTensorMap,
                    //            attrs as {} as NamedAttrMap);
                }
                var logSoftmax = op({
                    logSoftmax_: logSoftmax_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the log(sum(exp(elements across the reduction dimensions))).
 *
 * Reduces the input along the dimensions given in `axis`. Unless `keepDims`
 * is true, the rank of the array is reduced by 1 for each entry in `axis`.
 * If `keepDims` is true, the reduced dimensions are retained with length 1.
 * If `axis` has no entries, all dimensions are reduced, and an array with a
 * single element is returned.
 *
 * ```js
 * const x = tf.tensor1d([1, 2, 3]);
 *
 * x.logSumExp().print();  // or tf.logSumExp(x)
 * ```
 *
 * ```js
 * const x = tf.tensor2d([1, 2, 3, 4], [2, 2]);
 *
 * const axis = 1;
 * x.logSumExp(axis).print();  // or tf.logSumExp(a, axis)
 * ```
 * @param x The input tensor.
 * @param axis The dimension(s) to reduce. If null (the default),
 *     reduces all dimensions.
 * @param keepDims If true, retains reduced dimensions with length
 *     of 1. Defaults to false.
 *
 * @doc {heading: 'Operations', subheading: 'Reduction'}
 */
                function logSumExp_(x, axis, keepDims) {
                    if (axis === void 0) {
                        axis = null;
                    }
                    if (keepDims === void 0) {
                        keepDims = false;
                    }
                    var $x = convertToTensor(x, 'x', 'logSumExp');
                    var axes = parseAxisParam(axis, $x.shape);
                    var xMax = max($x, axes, true /* keepDims */
                    );
                    var a = sub($x, xMax);
                    var b = exp(a);
                    var c = sum(b, axes);
                    var d = log(c);
                    var res = add(reshape(xMax, d.shape), d);
                    if (keepDims) {
                        var newShape = expandShapeToKeepDim(res.shape, axes);
                        return reshape(res, newShape);
                    }
                    return res;
                }
                var logSumExp = op({
                    logSumExp_: logSumExp_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Returns the truth value of `a AND b` element-wise. Supports broadcasting.
 *
 * ```js
 * const a = tf.tensor1d([false, false, true, true], 'bool');
 * const b = tf.tensor1d([false, true, false, true], 'bool');
 *
 * a.logicalAnd(b).print();
 * ```
 *
 * @param a The first input tensor. Must be of dtype bool.
 * @param b The second input tensor. Must be of dtype bool.
 *
 * @doc {heading: 'Operations', subheading: 'Logical'}
 */
                function logicalAnd_(a, b) {
                    var $a = convertToTensor(a, 'a', 'logicalAnd', 'bool');
                    var $b = convertToTensor(b, 'b', 'logicalAnd', 'bool');
                    assertAndGetBroadcastShape($a.shape, $b.shape);
                    var inputs = {
                        a: $a,
                        b: $b
                    };
                    return ENGINE.runKernel(LogicalAnd, inputs);
                }
                var logicalAnd = op({
                    logicalAnd_: logicalAnd_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Returns the truth value of `NOT x` element-wise.
 *
 * ```js
 * const a = tf.tensor1d([false, true], 'bool');
 *
 * a.logicalNot().print();
 * ```
 *
 * @param x The input tensor. Must be of dtype 'bool'.
 *
 * @doc {heading: 'Operations', subheading: 'Logical'}
 */
                function logicalNot_(x) {
                    var $x = convertToTensor(x, 'x', 'logicalNot', 'bool');
                    var inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(LogicalNot, inputs);
                }
                var logicalNot = op({
                    logicalNot_: logicalNot_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Returns the truth value of `a OR b` element-wise. Supports broadcasting.
 *
 * ```js
 * const a = tf.tensor1d([false, false, true, true], 'bool');
 * const b = tf.tensor1d([false, true, false, true], 'bool');
 *
 * a.logicalOr(b).print();
 * ```
 * @param a The first input tensor. Must be of dtype bool.
 * @param b The second input tensor. Must be of dtype bool.
 *
 * @doc {heading: 'Operations', subheading: 'Logical'}
 */
                function logicalOr_(a, b) {
                    var $a = convertToTensor(a, 'a', 'logicalOr', 'bool');
                    var $b = convertToTensor(b, 'b', 'logicalOr', 'bool');
                    assertAndGetBroadcastShape($a.shape, $b.shape);
                    var inputs = {
                        a: $a,
                        b: $b
                    };
                    return ENGINE.runKernel(LogicalOr, inputs);
                }
                var logicalOr = op({
                    logicalOr_: logicalOr_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Returns the truth value of `a XOR b` element-wise. Supports broadcasting.
 *
 * ```js
 * const a = tf.tensor1d([false, false, true, true], 'bool');
 * const b = tf.tensor1d([false, true, false, true], 'bool');
 *
 * a.logicalXor(b).print();
 * ```
 *
 * @param a The first input tensor. Must be of dtype bool.
 * @param b The second input tensor. Must be of dtype bool.
 *
 * @doc {heading: 'Operations', subheading: 'Logical'}
 */
                function logicalXor_(a, b) {
                    var $a = convertToTensor(a, 'a', 'logicalXor', 'bool');
                    var $b = convertToTensor(b, 'b', 'logicalXor', 'bool');
                    assertAndGetBroadcastShape($a.shape, $b.shape);
                    // x ^ y = (x | y) & ~(x & y)
                    return logicalAnd(logicalOr(a, b), logicalNot(logicalAnd(a, b)));
                }
                var logicalXor = op({
                    logicalXor_: logicalXor_
                });
                /**
 * @license
 * Copyright 2022 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                var INT32_MAX = 2147483648;
                /**
 * Searches for where a value would go in a sorted sequence.
 *
 * This is not a method for checking containment (like javascript in).
 *
 * The typical use case for this operation is "binning", "bucketing", or
 * "discretizing". The values are assigned to bucket-indices based on the edges
 * listed in 'sortedSequence'. This operation returns the bucket-index for each
 * value.
 *
 * The side argument controls which index is returned if a value lands exactly
 * on an edge.
 *
 * The axis is not settable for this operation. It always operates on the
 * innermost dimension (axis=-1). The operation will accept any number of outer
 * dimensions.
 *
 * Note: This operation assumes that 'sortedSequence' is sorted along the
 * innermost axis, maybe using 'sort(..., axis=-1)'. If the sequence is not
 * sorted no error is raised and the content of the returned tensor is not well
 * defined.
 *
 * ```js
 * const edges = tf.tensor1d([-1, 3.3, 9.1, 10.0]);
 * let values = tf.tensor1d([0.0, 4.1, 12.0]);
 * const result1 = tf.searchSorted(edges, values, 'left');
 * result1.print(); // [1, 2, 4]
 *
 * const seq = tf.tensor1d([0, 3, 9, 10, 10]);
 * values = tf.tensor1d([0, 4, 10]);
 * const result2 = tf.searchSorted(seq, values, 'left');
 * result2.print(); // [0, 2, 3]
 * const result3 = tf.searchSorted(seq, values, 'right');
 * result3.print(); // [1, 2, 5]
 *
 * const sortedSequence = tf.tensor2d([[0., 3., 8., 9., 10.],
 *                                     [1., 2., 3., 4., 5.]]);
 * values = tf.tensor2d([[9.8, 2.1, 4.3],
 *                       [0.1, 6.6, 4.5, ]]);
 * const result4 = tf.searchSorted(sortedSequence, values, 'left');
 * result4.print(); // [[4, 1, 2], [0, 5, 4]]
 * ```
 * @param sortedSequence: N-D. Sorted sequence.
 * @param values: N-D. Search values.
 * @param side: 'left'|'right'. Defaults to 'left'. 'left' corresponds to lower
 *     bound and 'right' to upper bound.
 * @return An N-D int32 tensor the size of values containing the result of
 *     applying either lower bound or upper bound (depending on side) to each
 *     value. The result is not a global index to the entire Tensor, but the
 *     index in the last dimension.
 * @doc {heading: 'Operations', subheading: 'Evaluation'}
 */
                function searchSorted_(sortedSequence, values, side) {
                    if (side === void 0) {
                        side = 'left';
                    }
                    var $sortedSequence = convertToTensor(sortedSequence, 'sortedSequence', 'searchSorted');
                    var $values = convertToTensor(values, 'values', 'searchSorted');
                    var sequenceSize = $sortedSequence.shape[$sortedSequence.shape.length - 1];
                    var valuesSize = $values.shape[$values.shape.length - 1];
                    var $sortedSequence2D = reshape($sortedSequence, [-1, sequenceSize]);
                    var $values2D = reshape($values, [-1, valuesSize]);
                    if ($sortedSequence2D.rank < 2) {
                        throw new Error("Sorted input argument must be at least 2-dimensional");
                    }
                    if ($sortedSequence2D.shape[0] !== $values2D.shape[0]) {
                        throw new Error("Leading dimension of 'sortedSequence' and 'values' must match.");
                    }
                    if (sizeFromShape($values2D.shape) >= INT32_MAX) {
                        throw new Error("values tensor size must less than ".concat(INT32_MAX));
                    }
                    if ($sortedSequence2D.shape[1] >= INT32_MAX) {
                        throw new Error("trailing dim_size must less than ".concat(INT32_MAX, " for int32 output type, was ").concat($sortedSequence2D.shape[1]));
                    }
                    var inputs = {
                        sortedSequence: $sortedSequence2D,
                        values: $values2D
                    };
                    var attrs = {
                        side: side
                    };
                    return ENGINE.runKernel(SearchSorted, inputs, attrs);
                }
                var searchSorted = op({
                    searchSorted_: searchSorted_
                });
                /**
 * @license
 * Copyright 2022 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Searches for where a value would go in a sorted sequence.
 *
 * This is not a method for checking containment (like javascript in).
 *
 * The typical use case for this operation is "binning", "bucketing", or
 * "discretizing". The values are assigned to bucket-indices based on the edges
 * listed in 'sortedSequence'. This operation returns the bucket-index for each
 * value.
 *
 * The index returned corresponds to the first edge greater than or equal to the
 * value.
 *
 * The axis is not settable for this operation. It always operates on the
 * innermost dimension (axis=-1). The operation will accept any number of outer
 * dimensions.
 *
 * Note: This operation assumes that 'lowerBound' is sorted along the
 * innermost axis, maybe using 'sort(..., axis=-1)'. If the sequence is not
 * sorted no error is raised and the content of the returned tensor is not well
 * defined.
 *
 * ```js
 * const edges = tf.tensor1d([-1, 3.3, 9.1, 10.0]);
 * let values = tf.tensor1d([0.0, 4.1, 12.0]);
 * const result1 = tf.lowerBound(edges, values);
 * result1.print(); // [1, 2, 4]
 *
 * const seq = tf.tensor1d([0, 3, 9, 10, 10]);
 * values = tf.tensor1d([0, 4, 10]);
 * const result2 = tf.lowerBound(seq, values);
 * result2.print(); // [0, 2, 3]
 *
 * const sortedSequence = tf.tensor2d([[0., 3., 8., 9., 10.],
 *                                     [1., 2., 3., 4., 5.]]);
 * values = tf.tensor2d([[9.8, 2.1, 4.3],
 *                       [0.1, 6.6, 4.5, ]]);
 * const result3 = tf.lowerBound(sortedSequence, values);
 * result3.print(); // [[4, 1, 2], [0, 5, 4]]
 * ```
 * @param sortedSequence: N-D. Sorted sequence.
 * @param values: N-D. Search values.
 * @return An N-D int32 tensor the size of values containing the result of
 *     applying lower bound to each value. The result is not a global index to
 *     the entire Tensor, but the index in the last dimension.
 * @doc {heading: 'Operations', subheading: 'Evaluation'}
 */
                function lowerBound(sortedSequence, values) {
                    return searchSorted(sortedSequence, values, 'left');
                }
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the 2D max pooling of an image.
 *
 * @param x The input tensor, of rank 4 or rank 3 of shape
 *     `[batch, height, width, inChannels]`. If rank 3, batch of 1 is assumed.
 * @param filterSize The filter size: `[filterHeight, filterWidth]`. If
 *     `filterSize` is a single number, then `filterHeight == filterWidth`.
 * @param strides The strides of the pooling: `[strideHeight, strideWidth]`. If
 *     `strides` is a single number, then `strideHeight == strideWidth`.
 * @param dilations The dilation rates: `[dilationHeight, dilationWidth]`
 *     in which we sample input values across the height and width dimensions
 *     in dilated pooling. Defaults to `[1, 1]`. If `dilations` is a single
 *     number, then `dilationHeight == dilationWidth`. If it is greater than
 *     1, then all values of `strides` must be 1.
 * @param pad The type of padding algorithm.
 *    - `same` and stride 1: output will be of same size as input,
 *       regardless of filter size.
 *    - `valid`: output will be smaller than input if filter is larger
 *       than 1x1.
 *    - For more info, see this guide:
 *     [https://www.tensorflow.org/api_docs/python/tf/nn/convolution](
 *          https://www.tensorflow.org/api_docs/python/tf/nn/convolution)
 * @param dimRoundingMode A string from: 'ceil', 'round', 'floor'. If none is
 *     provided, it will default to truncate.
 */
                function maxPool_(x, filterSize, strides, pad, dimRoundingMode) {
                    var $x = convertToTensor(x, 'x', 'maxPool');
                    var dilations = 1;
                    var x4D = $x;
                    var reshapedTo4D = false;
                    if ($x.rank === 3) {
                        reshapedTo4D = true;
                        x4D = reshape($x, [1, $x.shape[0], $x.shape[1], $x.shape[2]]);
                    }
                    assert(x4D.rank === 4, function () {
                        return "Error in maxPool: input must be rank 4 but got rank ".concat(x4D.rank, ".");
                    });
                    assert(eitherStridesOrDilationsAreOne(strides, dilations), function () {
                        return 'Error in maxPool: Either strides or dilations must be 1. ' + "Got strides ".concat(strides, " and dilations '").concat(dilations, "'");
                    });
                    checkPadOnDimRoundingMode('maxPool', pad, dimRoundingMode);
                    var inputs = {
                        x: x4D
                    };
                    var attrs = {
                        filterSize: filterSize,
                        strides: strides,
                        pad: pad,
                        dimRoundingMode: dimRoundingMode
                    };
                    // tslint:disable-next-line: no-unnecessary-type-assertion
                    var res = ENGINE.runKernel(MaxPool, inputs, attrs);
                    if (reshapedTo4D) {
                        return reshape(res, [res.shape[1], res.shape[2], res.shape[3]]);
                    }
                    return res;
                }
                var maxPool = op({
                    maxPool_: maxPool_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the 3D max pooling.
 *
 * ```js
 * const x = tf.tensor5d([1, 2, 3, 4, 5, 6, 7, 8], [1, 2, 2, 2, 1]);
 * const result = tf.maxPool3d(x, 2, 1, 'valid');
 * result.print();
 * ```
 *
 * @param x The input tensor, of rank 5 or rank 4 of shape
 *     `[batch, depth, height, width, inChannels]`.
 * @param filterSize The filter size:
 *     `[filterDepth, filterHeight, filterWidth]`.
 *     If `filterSize` is a single number,
 *     then `filterDepth == filterHeight == filterWidth`.
 * @param strides The strides of the pooling:
 *     `[strideDepth, strideHeight, strideWidth]`.
 *     If `strides` is a single number,
 *     then `strideDepth == strideHeight == strideWidth`.
 * @param pad The type of padding algorithm.
 *    - `same` and stride 1: output will be of same size as input,
 *       regardless of filter size.
 *    - `valid`: output will be smaller than input if filter is larger
 *       than 1*1x1.
 *    - For more info, see this guide:
 *     [https://www.tensorflow.org/api_docs/python/tf/nn/convolution](
 *          https://www.tensorflow.org/api_docs/python/tf/nn/convolution)
 * @param dimRoundingMode A string from: 'ceil', 'round', 'floor'. If none is
 *     provided, it will default to truncate.
 * @param dataFormat An optional string from: "NDHWC", "NCDHW". Defaults to
 *     "NDHWC". Specify the data format of the input and output data. With the
 *     default format "NDHWC", the data is stored in the order of: [batch,
 *     depth, height, width, channels]. Only "NDHWC" is currently supported.
 * @doc {heading: 'Operations', subheading: 'Convolution'}
 */
                function maxPool3d_(x, filterSize, strides, pad, dimRoundingMode, dataFormat) {
                    if (filterSize === void 0) {
                        filterSize = [1, 1, 1];
                    }
                    if (dataFormat === void 0) {
                        dataFormat = 'NDHWC';
                    }
                    var $x = convertToTensor(x, 'x', 'maxPool3d');
                    var x5D = $x;
                    var reshapedTo5D = false;
                    if ($x.rank === 4) {
                        reshapedTo5D = true;
                        x5D = reshape($x, [1, $x.shape[0], $x.shape[1], $x.shape[2], $x.shape[3]]);
                    }
                    assert(x5D.rank === 5, function () {
                        return "Error in maxPool3d: x must be rank 5 but got rank ".concat(x5D.rank, ".");
                    });
                    assert(dataFormat === 'NDHWC', function () {
                        return "Error in maxPool3d: Only NDHWC is currently supported, " + "but got dataFormat of ".concat(dataFormat);
                    });
                    checkPadOnDimRoundingMode('maxPool3d', pad, dimRoundingMode);
                    var inputs = {
                        x: x5D
                    };
                    var attrs = {
                        filterSize: filterSize,
                        strides: strides,
                        pad: pad,
                        dimRoundingMode: dimRoundingMode,
                        dataFormat: dataFormat
                    };
                    // tslint:disable-next-line: no-unnecessary-type-assertion
                    var res = ENGINE.runKernel(MaxPool3D, inputs, attrs);
                    if (reshapedTo5D) {
                        return reshape(res, [res.shape[1], res.shape[2], res.shape[3], res.shape[4]]);
                    }
                    return res;
                }
                var maxPool3d = op({
                    maxPool3d_: maxPool3d_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the 2D max pooling of an image with Argmax index.
 * The indices in argmax are flattened, so that a maximum value at position `[b,
 * y, x, c]` becomes flattened index: `(y * width + x) * channels + c` if
 * include_batch_in_index is False; `((b * height + y) * width + x) * channels
 * +c` if include_batch_in_index is True.
 *
 * The indices returned are always in `[0, height) x [0, width)` before
 * flattening.
 *
 * @param x The input tensor, of rank 4 or rank 3 of shape
 *     `[batch, height, width, inChannels]`. If rank 3, batch of 1 is assumed.
 * @param filterSize The filter size: `[filterHeight, filterWidth]`. If
 *     `filterSize` is a single number, then `filterHeight == filterWidth`.
 * @param strides The strides of the pooling: `[strideHeight, strideWidth]`. If
 *     `strides` is a single number, then `strideHeight == strideWidth`.
 * @param dataFormat An optional string from: "NDHWC", "NCDHW". Defaults to
 *     "NDHWC". Specify the data format of the input and output data. With the
 *     default format "NDHWC", the data is stored in the order of: [batch,
 *     depth, height, width, channels]. Only "NDHWC" is currently supported.
 * @param pad The type of padding algorithm.
 *    - `same` and stride 1: output will be of same size as input,
 *       regardless of filter size.
 *    - `valid`: output will be smaller than input if filter is larger
 *       than 1x1.
 *    - For more info, see this guide:
 *     [https://www.tensorflow.org/api_docs/python/tf/nn/convolution](
 *          https://www.tensorflow.org/api_docs/python/tf/nn/convolution)
 * @param includeBatchIndex Defaults to False. Whether to include batch
 *    dimension in flattened index of argmax.
 *
 * @doc {heading: 'Operations', subheading: 'Convolution'}
 */
                function maxPoolWithArgmax_(x, filterSize, strides, pad, includeBatchInIndex) {
                    if (includeBatchInIndex === void 0) {
                        includeBatchInIndex = false;
                    }
                    var $x = convertToTensor(x, 'x', 'maxPoolWithArgmax');
                    var inputs = {
                        x: $x
                    };
                    var attrs = {
                        filterSize: filterSize,
                        strides: strides,
                        pad: pad,
                        includeBatchInIndex: includeBatchInIndex
                    };
                    // tslint:disable-next-line: no-unnecessary-type-assertion
                    var result = ENGINE.runKernel(MaxPoolWithArgmax, inputs, attrs);
                    return {
                        result: result[0],
                        indexes: result[1]
                    };
                }
                var maxPoolWithArgmax = op({
                    maxPoolWithArgmax_: maxPoolWithArgmax_
                });
                /**
 * Returns the max of a and b (`a > b ? a : b`) element-wise.
 * Supports broadcasting.
 *
 * We also expose `tf.maximumStrict` which has the same signature as this op and
 * asserts that `a` and `b` are the same shape (does not broadcast).
 *
 * ```js
 * const a = tf.tensor1d([1, 4, 3, 16]);
 * const b = tf.tensor1d([1, 2, 9, 4]);
 *
 * a.maximum(b).print();  // or tf.maximum(a, b)
 * ```
 *
 * ```js
 * // Broadcast maximum a with b.
 * const a = tf.tensor1d([2, 4, 6, 8]);
 * const b = tf.scalar(5);
 *
 * a.maximum(b).print();  // or tf.maximum(a, b)
 * ```
 *
 * @param a The first tensor.
 * @param b The second tensor. Must have the same type as `a`.
 *
 * @doc {heading: 'Operations', subheading: 'Arithmetic'}
 */
                function maximum_(a, b) {
                    var _a;
                    var $a = convertToTensor(a, 'a', 'maximum');
                    var $b = convertToTensor(b, 'b', 'maximum');
                    _a = __read(makeTypesMatch($a, $b), 2),
                        $a = _a[0],
                        $b = _a[1];
                    if ($a.dtype === 'bool') {
                        $a = cast($a, 'int32');
                        $b = cast($b, 'int32');
                    }
                    assertAndGetBroadcastShape($a.shape, $b.shape);
                    var inputs = {
                        a: $a,
                        b: $b
                    };
                    return ENGINE.runKernel(Maximum, inputs);
                }
                var maximum = op({
                    maximum_: maximum_
                });
                /**
 * @license
 * Copyright 2020 Google Inc. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the mean of elements across dimensions of a `tf.Tensor`.
 *
 * Reduces `x` along the dimensions given in `axis`. Unless `keepDims` is
 * true, the rank of the `tf.Tensor` is reduced by 1 for each entry in `axis`.
 * If `keepDims` is true, the reduced dimensions are retained with length 1.
 * If `axis` has no entries, all dimensions are reduced, and a `tf.Tensor` with
 * a single element is returned.
 *
 * ```js
 * const x = tf.tensor1d([1, 2, 3]);
 *
 * x.mean().print();  // or tf.mean(a)
 * ```
 *
 * ```js
 * const x = tf.tensor2d([1, 2, 3, 4], [2, 2]);
 *
 * const axis = 1;
 * x.mean(axis).print();  // or tf.mean(x, axis)
 * ```
 *
 * @param x The input tensor.
 * @param axis The dimension(s) to reduce. By default it reduces
 *     all dimensions.
 * @param keepDims If true, retains reduced dimensions with size 1.
 *
 * @doc {heading: 'Operations', subheading: 'Reduction'}
 */
                function mean_(x, axis, keepDims) {
                    if (axis === void 0) {
                        axis = null;
                    }
                    if (keepDims === void 0) {
                        keepDims = false;
                    }
                    var $x = convertToTensor(x, 'x', 'mean');
                    var inputs = {
                        x: $x
                    };
                    var attrs = {
                        axis: axis,
                        keepDims: keepDims
                    };
                    return ENGINE.runKernel(Mean, inputs, attrs);
                }
                var mean = op({
                    mean_: mean_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Creates a `tf.Tensor` with all elements set to 0.
 *
 * ```js
 * tf.zeros([2, 2]).print();
 * ```
 *
 * @param shape An array of integers defining the output tensor shape.
 * @param dtype The type of an element in the resulting tensor. Can
 *     be 'float32', 'int32' or 'bool'. Defaults to 'float'.
 *
 * @doc {heading: 'Tensors', subheading: 'Creation'}
 */
                function zeros(shape, dtype) {
                    if (dtype === void 0) {
                        dtype = 'float32';
                    }
                    assertNonNegativeIntegerDimensions(shape);
                    if (dtype === 'complex64') {
                        var real = zeros(shape, 'float32');
                        var imag = zeros(shape, 'float32');
                        return complex(real, imag);
                    }
                    var values = makeZerosTypedArray(sizeFromShape(shape), dtype);
                    return ENGINE.makeTensor(values, shape, dtype);
                }
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Creates a `tf.Tensor` with all elements set to 1.
 *
 * ```js
 * tf.ones([2, 2]).print();
 * ```
 *
 * @param shape An array of integers defining the output tensor shape.
 * @param dtype The type of an element in the resulting tensor. Defaults to
 *     'float'.
 *
 * @doc {heading: 'Tensors', subheading: 'Creation'}
 */
                function ones(shape, dtype) {
                    if (dtype === void 0) {
                        dtype = 'float32';
                    }
                    assertNonNegativeIntegerDimensions(shape);
                    if (dtype === 'complex64') {
                        var real = ones(shape, 'float32');
                        var imag = zeros(shape, 'float32');
                        return complex(real, imag);
                    }
                    var values = makeOnesTypedArray(sizeFromShape(shape), dtype);
                    return ENGINE.makeTensor(values, shape, dtype);
                }
                /**
 * @license
 * Copyright 2021 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Broadcasts parameters for evaluation on an N-D grid.
 *
 * Given N one-dimensional coordinate arrays `*args`, returns a list `outputs`
 * of N-D coordinate arrays for evaluating expressions on an N-D grid.
 *
 * Notes:
 * `meshgrid` supports cartesian ('xy') and matrix ('ij') indexing conventions.
 * When the `indexing` argument is set to 'xy' (the default), the broadcasting
 * instructions for the first two dimensions are swapped.
 * Examples:
 * Calling `const [X, Y] = meshgrid(x, y)` with the tensors
 *
 * ```javascript
 * const x = [1, 2, 3];
 * const y = [4, 5, 6];
 * const [X, Y] = tf.meshgrid(x, y);
 * // X = [[1, 2, 3],
 * //      [1, 2, 3],
 * //      [1, 2, 3]]
 * // Y = [[4, 4, 4],
 * //      [5, 5, 5],
 * //      [6, 6, 6]]
 * ```
 *
 * @param x Tensor with rank geq 1.
 * @param y Tensor with rank geq 1.
 * @param indexing
 *
 * @doc {heading: 'Operations', subheading: 'Slicing and Joining'}
 */
                function meshgrid(x, y, _a) {
                    var _b = _a === void 0 ? {} : _a
                        , _c = _b.indexing
                        , indexing = _c === void 0 ? 'xy' : _c;
                    if (indexing !== 'xy' && indexing !== 'ij') {
                        throw new TypeError("".concat(indexing, " is not a valid third argument to meshgrid"));
                    }
                    if (x === undefined) {
                        return [];
                    }
                    var $x = convertToTensor(x, 'x', 'meshgrid', x instanceof Tensor ? x.dtype : 'float32');
                    if (y === undefined) {
                        return [$x];
                    }
                    var $y = convertToTensor(y, 'y', 'meshgrid', y instanceof Tensor ? y.dtype : 'float32');
                    var w = sizeFromShape($x.shape);
                    var h = sizeFromShape($y.shape);
                    if (indexing === 'xy') {
                        $x = reshape($x, [1, -1]);
                        $y = reshape($y, [-1, 1]);
                        return [matMul$1(ones([h, 1], $x.dtype), $x), matMul$1($y, ones([1, w], $y.dtype))];
                    }
                    $x = reshape($x, [-1, 1]);
                    $y = reshape($y, [1, -1]);
                    return [matMul$1($x, ones([1, h], $x.dtype)), matMul$1(ones([w, 1], $y.dtype), $y)];
                }
                /**
 * Returns the min of a and b (`a < b ? a : b`) element-wise.
 * Supports broadcasting.
 *
 * We also expose `minimumStrict` which has the same signature as this op and
 * asserts that `a` and `b` are the same shape (does not broadcast).
 *
 * ```js
 * const a = tf.tensor1d([1, 4, 3, 16]);
 * const b = tf.tensor1d([1, 2, 9, 4]);
 *
 * a.minimum(b).print();  // or tf.minimum(a, b)
 * ```
 *
 * ```js
 * // Broadcast minimum a with b.
 * const a = tf.tensor1d([2, 4, 6, 8]);
 * const b = tf.scalar(5);
 *
 * a.minimum(b).print();  // or tf.minimum(a, b)
 * ```
 *
 * @param a The first tensor.
 * @param b The second tensor. Must have the same type as `a`.
 *
 * @doc {heading: 'Operations', subheading: 'Arithmetic'}
 */
                function minimum_(a, b) {
                    var _a;
                    var $a = convertToTensor(a, 'a', 'minimum');
                    var $b = convertToTensor(b, 'b', 'minimum');
                    _a = __read(makeTypesMatch($a, $b), 2),
                        $a = _a[0],
                        $b = _a[1];
                    if ($a.dtype === 'bool') {
                        $a = cast($a, 'int32');
                        $b = cast($b, 'int32');
                    }
                    assertAndGetBroadcastShape($a.shape, $b.shape);
                    var inputs = {
                        a: $a,
                        b: $b
                    };
                    return ENGINE.runKernel(Minimum, inputs);
                }
                var minimum = op({
                    minimum_: minimum_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Pads a `tf.Tensor` using mirror padding.
 *
 * This operation implements the `REFLECT` and `SYMMETRIC` modes of pad.
 *
 * ```js
 * const x = tf.range(0, 9).reshape([1, 1, 3, 3]);
 * x.mirrorPad([[0, 0], [0, 0], [2, 2], [2, 2]], 'reflect').print();
 * ```
 * @param x The tensor to pad.
 * @param paddings An array of length `R` (the rank of the tensor), where
 * each element is a length-2 tuple of ints `[padBefore, padAfter]`,
 * specifying how much to pad along each dimension of the tensor.
 * In "reflect" mode, the padded regions do not include the borders,
 * while in "symmetric" mode the padded regions do include the borders.
 * For example, if the input is `[1, 2, 3]` and paddings is `[0, 2]`,
 * then the output is `[1, 2, 3, 2, 1]` in "reflect" mode, and
 * `[1, 2, 3, 3, 2]` in "symmetric" mode.
 * If `mode` is "reflect" then both `paddings[D, 0]` and `paddings[D, 1]`
 * must be no greater than `x.shape[D] - 1`. If mode is "symmetric"
 * then both `paddings[D, 0]` and `paddings[D, 1]` must be no greater than
 * `x.shape[D]`
 * @param mode String to specify padding mode. Can be `'reflect' | 'symmetric'`
 */
                /** @doc {heading: 'Tensors', subheading: 'Transformations'} */
                function mirrorPad_(x, paddings, mode) {
                    assert(mode === 'reflect' || mode === 'symmetric', function () {
                        return "Invalid mode. Mode must be either reflect or symmetric. " + "Got ".concat(mode, ".");
                    });
                    var $x = convertToTensor(x, 'x', 'mirrorPad');
                    if ($x.rank === 0) {
                        throw new Error('mirrorPad(scalar) is not defined. ' + 'Pass non-scalar to mirrorPad');
                    }
                    assert(paddings.length === $x.rank, function () {
                        return "Padding doesn't match input. Must be ".concat($x.rank, ". ") + "Got ".concat(paddings.length, ".");
                    });
                    var shapeOffset = mode === 'reflect' ? 1 : 0;
                    var _loop_1 = function (i) {
                        assert(paddings[i].length === 2, function () {
                            return "Invalid number of paddings. Must be length of 2 each.";
                        });
                        assert(paddings[i][0] >= 0 && paddings[i][0] <= $x.shape[i] - shapeOffset && paddings[i][1] >= 0 && paddings[i][1] <= $x.shape[i] - shapeOffset, function () {
                            return "Padding in dimension ".concat(i, " cannot be greater than or equal ") + "to ".concat($x.shape[i] - shapeOffset, " or less than 0 for input of ") + "shape ".concat($x.shape);
                        });
                    };
                    for (var i = 0; i < $x.rank; i++) {
                        _loop_1(i);
                    }
                    var attrs = {
                        paddings: paddings,
                        mode: mode
                    };
                    var inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(MirrorPad, inputs, attrs);
                }
                var mirrorPad = op({
                    mirrorPad_: mirrorPad_
                });
                /**
 * Returns the mod of a and b element-wise.
 * `floor(x / y) * y + mod(x, y) = x`
 * Supports broadcasting.
 *
 * We also expose `tf.modStrict` which has the same signature as this op and
 * asserts that `a` and `b` are the same shape (does not broadcast).
 *
 * ```js
 * const a = tf.tensor1d([1, 4, 3, 16]);
 * const b = tf.tensor1d([1, 2, 9, 4]);
 *
 * a.mod(b).print();  // or tf.mod(a, b)
 * ```
 *
 * ```js
 * // Broadcast a mod b.
 * const a = tf.tensor1d([2, 4, 6, 8]);
 * const b = tf.scalar(5);
 *
 * a.mod(b).print();  // or tf.mod(a, b)
 * ```
 *
 * @param a The first tensor.
 * @param b The second tensor. Must have the same type as `a`.
 *
 * @doc {heading: 'Operations', subheading: 'Arithmetic'}
 */
                function mod_(a, b) {
                    var _a;
                    var $a = convertToTensor(a, 'a', 'mod');
                    var $b = convertToTensor(b, 'b', 'mod');
                    _a = __read(makeTypesMatch($a, $b), 2),
                        $a = _a[0],
                        $b = _a[1];
                    var inputs = {
                        a: $a,
                        b: $b
                    };
                    return ENGINE.runKernel(Mod, inputs);
                }
                var mod = op({
                    mod_: mod_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Calculates the mean and variance of `x`. The mean and variance are
 * calculated by aggregating the contents of `x` across `axes`. If `x` is
 * 1-D and `axes = [0]` this is just the mean and variance of a vector.
 *
 * @param x The input tensor.
 * @param axis The dimension(s) along with to compute mean and
 *     variance. By default it reduces all dimensions.
 * @param keepDims If true, the moments have the same dimensionality as the
 *     input.
 * @return An object with two keys: `mean` and `variance`.
 *
 * @doc {heading: 'Operations', subheading: 'Normalization'}
 */
                function moments_(x, axis, keepDims) {
                    if (axis === void 0) {
                        axis = null;
                    }
                    if (keepDims === void 0) {
                        keepDims = false;
                    }
                    x = convertToTensor(x, 'x', 'moments');
                    var axes = parseAxisParam(axis, x.shape);
                    var xMean = mean(x, axes, keepDims);
                    var keepDimsShape = xMean.shape;
                    if (!keepDims) {
                        keepDimsShape = expandShapeToKeepDim(xMean.shape, axes);
                    }
                    var devSquared = square(sub(cast(x, 'float32'), reshape(xMean, keepDimsShape)));
                    var variance = mean(devSquared, axes, keepDims);
                    return {
                        mean: xMean,
                        variance: variance
                    };
                }
                var moments = op({
                    moments_: moments_
                });
                /**
 * Computes the next states and outputs of a stack of LSTMCells.
 *
 * Each cell output is used as input to the next cell.
 *
 * Returns `[cellState, cellOutput]`.
 *
 * Derived from tf.contrib.rn.MultiRNNCell.
 *
 * @param lstmCells Array of LSTMCell functions.
 * @param data The input to the cell.
 * @param c Array of previous cell states.
 * @param h Array of previous cell outputs.
 *
 * @doc {heading: 'Operations', subheading: 'RNN'}
 */
                function multiRNNCell_(lstmCells, data, c, h) {
                    var $data = convertToTensor(data, 'data', 'multiRNNCell');
                    var $c = convertToTensorArray(c, 'c', 'multiRNNCell');
                    var $h = convertToTensorArray(h, 'h', 'multiRNNCell');
                    var input = $data;
                    var newStates = [];
                    for (var i = 0; i < lstmCells.length; i++) {
                        var output = lstmCells[i](input, $c[i], $h[i]);
                        newStates.push(output[0]);
                        newStates.push(output[1]);
                        input = output[1];
                    }
                    var newC = [];
                    var newH = [];
                    for (var i = 0; i < newStates.length; i += 2) {
                        newC.push(newStates[i]);
                        newH.push(newStates[i + 1]);
                    }
                    return [newC, newH];
                }
                var multiRNNCell = op({
                    multiRNNCell_: multiRNNCell_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Creates a `tf.Tensor` with values drawn from a multinomial distribution.
 *
 * ```js
 * const probs = tf.tensor([.75, .25]);
 * tf.multinomial(probs, 3).print();
 * ```
 *
 * @param logits 1D array with unnormalized log-probabilities, or
 *     2D array of shape `[batchSize, numOutcomes]`. See the `normalized`
 *     parameter.
 * @param numSamples Number of samples to draw for each row slice.
 * @param seed The seed number.
 * @param normalized Whether the provided `logits` are normalized true
 *     probabilities (sum to 1). Defaults to false.
 * @return 1D array of shape `[numSamples]`, or 2D array of shape
 *     `[batchSize, numSamples]`, depending on the rank of the input.
 *
 * @doc {heading: 'Tensors', subheading: 'Random'}
 */
                function multinomial_(logits, numSamples, seed, normalized) {
                    if (normalized === void 0) {
                        normalized = false;
                    }
                    var $logits = convertToTensor(logits, 'logits', 'multinomial');
                    var numOutcomes = $logits.size;
                    var origRank = $logits.rank;
                    if (numOutcomes < 2) {
                        throw new Error("Error in multinomial: you need at least 2 outcomes, but got " + "".concat(numOutcomes, "."));
                    }
                    if (origRank > 2) {
                        throw new Error("Rank of probabilities must be 1 or 2, but is ".concat(origRank));
                    }
                    // TODO(lina128): Investigate correct seed behavior. The code seems not allow
                    // setting see to 0.
                    seed = seed || Math.random();
                    // The kernel only accepts (and returns) rank 2 tensors.
                    var logits2D = origRank === 1 ? reshape($logits, [1, -1]) : $logits;
                    var inputs = {
                        logits: logits2D
                    };
                    var attrs = {
                        numSamples: numSamples,
                        seed: seed,
                        normalized: normalized
                    };
                    // tslint:disable-next-line: no-unnecessary-type-assertion
                    var res = ENGINE.runKernel(Multinomial, inputs, attrs);
                    // tslint:disable-next-line:no-unnecessary-type-assertion
                    return origRank === 1 ? reshape(res, [res.size]) : res;
                }
                var multinomial = op({
                    multinomial_: multinomial_
                });
                /**
 * Returns the truth value of (a != b) element-wise. Supports broadcasting.
 *
 * ```js
 * const a = tf.tensor1d([1, 2, 3]);
 * const b = tf.tensor1d([0, 2, 3]);
 *
 * a.notEqual(b).print();
 * ```
 * @param a The first input tensor.
 * @param b The second input tensor. Must have the same dtype as `a`.
 *
 * @doc {heading: 'Operations', subheading: 'Logical'}
 */
                function notEqual_(a, b) {
                    var _a;
                    var $a = convertToTensor(a, 'a', 'notEqual', 'string_or_numeric');
                    var $b = convertToTensor(b, 'b', 'notEqual', 'string_or_numeric');
                    _a = __read(makeTypesMatch($a, $b), 2),
                        $a = _a[0],
                        $b = _a[1];
                    assertAndGetBroadcastShape($a.shape, $b.shape);
                    var inputs = {
                        a: $a,
                        b: $b
                    };
                    return ENGINE.runKernel(NotEqual, inputs);
                }
                var notEqual = op({
                    notEqual_: notEqual_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Creates a `tf.Tensor` with all elements set to 1 with the same shape as the
 * given tensor.
 *
 * ```js
 * const x = tf.tensor([1, 2]);
 * tf.onesLike(x).print();
 * ```
 * @param x A tensor.
 *
 * @doc {heading: 'Tensors', subheading: 'Creation'}
 */
                function onesLike_(x) {
                    var $x = convertToTensor(x, 'x', 'onesLike');
                    var inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(OnesLike, inputs);
                }
                var onesLike = op({
                    onesLike_: onesLike_
                });
                /**
 * Computes the outer product of two vectors, `v1` and `v2`.
 *
 * ```js
 * const a = tf.tensor1d([1, 2, 3]);
 * const b = tf.tensor1d([3, 4, 5]);
 *
 * tf.outerProduct(a, b).print();
 * ```
 * @param v1 The first vector in the outer product operation.
 * @param v2 The second vector in the outer product operation.
 *
 * @doc {heading: 'Operations', subheading: 'Matrices'}
 */
                function outerProduct_(v1, v2) {
                    var $v1 = convertToTensor(v1, 'v1', 'outerProduct');
                    var $v2 = convertToTensor(v2, 'v2', 'outerProduct');
                    assert($v1.rank === 1 && $v2.rank === 1, function () {
                        return "Error in outerProduct: inputs must be rank 1, but got ranks " + "".concat($v1.rank, " and ").concat($v2.rank, ".");
                    });
                    var v12D = reshape($v1, [-1, 1]);
                    var v22D = reshape($v2, [1, -1]);
                    return matMul$1(v12D, v22D);
                }
                var outerProduct = op({
                    outerProduct_: outerProduct_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Pads a `tf.Tensor` with a given value and paddings.
 *
 * This operation implements `CONSTANT` mode. For `REFLECT` and `SYMMETRIC`,
 * refer to `tf.mirrorPad`.
 *
 * Also available are stricter rank-specific methods with the same signature
 * as this method that assert that `paddings` is of given length.
 *   - `tf.pad1d`
 *   - `tf.pad2d`
 *   - `tf.pad3d`
 *   - `tf.pad4d`
 *
 * ```js
 * const x = tf.tensor1d([1, 2, 3, 4]);
 * x.pad([[1, 2]]).print();
 * ```
 * @param x The tensor to pad.
 * @param paddings An array of length `R` (the rank of the tensor), where
 * each element is a length-2 tuple of ints `[padBefore, padAfter]`,
 * specifying how much to pad along each dimension of the tensor.
 * @param constantValue The pad value to use. Defaults to 0.
 *
 * @doc {heading: 'Tensors', subheading: 'Transformations'}
 */
                function pad_(x, paddings, constantValue) {
                    if (constantValue === void 0) {
                        constantValue = 0;
                    }
                    var $x = convertToTensor(x, 'x', 'pad');
                    if ($x.rank === 0) {
                        throw new Error('pad(scalar) is not defined. Pass non-scalar to pad');
                    }
                    var attrs = {
                        paddings: paddings,
                        constantValue: constantValue
                    };
                    var inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(PadV2, inputs, attrs);
                }
                var pad = op({
                    pad_: pad_
                });
                /**
 * Pads a `tf.Tensor1D` with a given value and paddings. See `pad` for details.
 */
                function pad1d_(x, paddings, constantValue) {
                    if (constantValue === void 0) {
                        constantValue = 0;
                    }
                    assert(paddings.length === 2, function () {
                        return 'Invalid number of paddings. Must be length of 2.';
                    });
                    return pad(x, [paddings], constantValue);
                }
                var pad1d = op({
                    pad1d_: pad1d_
                });
                /**
 * Pads a `tf.Tensor2D` with a given value and paddings. See `pad` for details.
 */
                function pad2d_(x, paddings, constantValue) {
                    if (constantValue === void 0) {
                        constantValue = 0;
                    }
                    assert(paddings.length === 2 && paddings[0].length === 2 && paddings[1].length === 2, function () {
                        return 'Invalid number of paddings. Must be length of 2 each.';
                    });
                    return pad(x, paddings, constantValue);
                }
                var pad2d = op({
                    pad2d_: pad2d_
                });
                /**
 * Pads a `tf.Tensor3D` with a given value and paddings. See `pad` for details.
 */
                function pad3d_(x, paddings, constantValue) {
                    if (constantValue === void 0) {
                        constantValue = 0;
                    }
                    assert(paddings.length === 3 && paddings[0].length === 2 && paddings[1].length === 2 && paddings[2].length === 2, function () {
                        return 'Invalid number of paddings. Must be length of 2 each.';
                    });
                    return pad(x, paddings, constantValue);
                }
                var pad3d = op({
                    pad3d_: pad3d_
                });
                /**
 * Pads a `tf.Tensor4D` with a given value and paddings. See `pad` for details.
 */
                function pad4d_(x, paddings, constantValue) {
                    if (constantValue === void 0) {
                        constantValue = 0;
                    }
                    assert(paddings.length === 4 && paddings[0].length === 2 && paddings[1].length === 2 && paddings[2].length === 2 && paddings[3].length === 2, function () {
                        return 'Invalid number of paddings. Must be length of 2 each.';
                    });
                    return pad(x, paddings, constantValue);
                }
                var pad4d = op({
                    pad4d_: pad4d_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * This operation divides "spatial" dimensions `[1, ..., M]` of the input into
 * a grid of blocks of shape `blockShape`, and interleaves these blocks with
 * the "batch" dimension (0) such that in the output, the spatial
 * dimensions `[1, ..., M]` correspond to the position within the grid,
 * and the batch dimension combines both the position within a spatial block
 * and the original batch position. Prior to division into blocks,
 * the spatial dimensions of the input are optionally zero padded
 * according to `paddings`. See below for a precise description.
 *
 * ```js
 * const x = tf.tensor4d([1, 2, 3, 4], [1, 2, 2, 1]);
 * const blockShape = [2, 2];
 * const paddings = [[0, 0], [0, 0]];
 *
 * x.spaceToBatchND(blockShape, paddings).print();
 * ```
 *
 * @param x A `tf.Tensor`. N-D with `x.shape` = `[batch] + spatialShape +
 * remainingShape`, where spatialShape has `M` dimensions.
 * @param blockShape A 1-D array. Must have shape `[M]`, all values must
 * be >= 1.
 * @param paddings A 2-D array. Must have shape `[M, 2]`, all values must be >=
 *     0. `paddings[i] = [padStart, padEnd]` specifies the amount to zero-pad
 * from input dimension `i + 1`, which corresponds to spatial dimension `i`. It
 * is required that
 * `(inputShape[i + 1] + padStart + padEnd) % blockShape[i] === 0`
 *
 * This operation is equivalent to the following steps:
 *
 * 1. Zero-pad the start and end of dimensions `[1, ..., M]` of the input
 * according to `paddings` to produce `padded` of shape paddedShape.
 *
 * 2. Reshape `padded` to `reshapedPadded` of shape:
 * `[batch] + [paddedShape[1] / blockShape[0], blockShape[0], ...,
 * paddedShape[M] / blockShape[M-1], blockShape[M-1]] + remainingShape`
 *
 * 3. Permute dimensions of `reshapedPadded` to produce `permutedReshapedPadded`
 * of shape: `blockShape + [batch] + [paddedShape[1] / blockShape[0], ...,
 * paddedShape[M] / blockShape[M-1]] + remainingShape`
 *
 * 4. Reshape `permutedReshapedPadded` to flatten `blockShape` into the
 * batch dimension, producing an output tensor of shape:
 * `[batch * prod(blockShape)] + [paddedShape[1] / blockShape[0], ...,
 * paddedShape[M] / blockShape[M-1]] + remainingShape`
 *
 * @doc {heading: 'Tensors', subheading: 'Transformations'}
 */
                function spaceToBatchND_(x, blockShape, paddings) {
                    var $x = convertToTensor(x, 'x', 'spaceToBatchND');
                    assert($x.rank >= 1 + blockShape.length, function () {
                        return "input rank ".concat($x.rank, " should be > than [blockShape] ").concat(blockShape.length);
                    });
                    assert(paddings.length === blockShape.length, function () {
                        return "paddings.shape[0] ".concat(paddings.length, " must be equal to [blockShape] ").concat(blockShape.length);
                    });
                    assert($x.shape.reduce(function (a, b, i) {
                        if (i > 0 && i <= blockShape.length) {
                            return a && (b + paddings[i - 1][0] + paddings[i - 1][1]) % blockShape[i - 1] === 0;
                        }
                        return a;
                    }, true), function () {
                        return "input spatial dimensions ".concat($x.shape.slice(1), " with paddings ").concat(paddings.toString(), " must be divisible by blockShapes ").concat(blockShape.toString());
                    });
                    var inputs = {
                        x: $x
                    };
                    var attrs = {
                        blockShape: blockShape,
                        paddings: paddings
                    };
                    return ENGINE.runKernel(SpaceToBatchND, inputs, attrs);
                }
                var spaceToBatchND = op({
                    spaceToBatchND_: spaceToBatchND_
                });
                /**
 * Performs an N-D pooling operation
 *
 * @param input The input tensor, of rank 4 or rank 3 of shape
 *     `[batch, height, width, inChannels]`. If rank 3, batch of 1 is assumed.
 * @param windowShape The filter size: `[filterHeight, filterWidth]`. If
 *     `filterSize` is a single number, then `filterHeight == filterWidth`.
 * @param poolingType The type of pooling, either 'max' or 'avg'.
 * @param pad The type of padding algorithm:
 *    - `same` and stride 1: output will be of same size as input,
 *       regardless of filter size.
 *    - `valid`: output will be smaller than input if filter is larger
 *       than 1x1.
 *    - For more info, see this guide:
 *     [https://www.tensorflow.org/api_guides/python/nn#Convolution](
 *         https://www.tensorflow.org/api_guides/python/nn#Convolution)
 * @param dilations The dilation rates: `[dilationHeight, dilationWidth]`
 *     in which we sample input values across the height and width dimensions
 *     in dilated pooling. Defaults to `[1, 1]`. If `dilationRate` is a single
 *     number, then `dilationHeight == dilationWidth`. If it is greater than
 *     1, then all values of `strides` must be 1.
 * @param strides The strides of the pooling: `[strideHeight, strideWidth]`. If
 *     `strides` is a single number, then `strideHeight == strideWidth`.
 * @param dimRoundingMode A string from: 'ceil', 'round', 'floor'. If none is
 *     provided, it will default to truncate.
 *
 * @doc {heading: 'Operations', subheading: 'Convolution'}
 */
                function pool_(input, windowShape, poolingType, pad, dilations, strides, dimRoundingMode) {
                    if (dilations == null) {
                        dilations = [1, 1];
                    }
                    if (strides == null) {
                        strides = 1;
                    }
                    if (pad === 0) {
                        pad = 'valid';
                    }
                    var $x = convertToTensor(input, 'x', 'maxPool');
                    var x4D = $x;
                    var reshapedTo4D = false;
                    if ($x.rank === 3) {
                        reshapedTo4D = true;
                        x4D = reshape($x, [1, $x.shape[0], $x.shape[1], $x.shape[2]]);
                    }
                    assert(eitherStridesOrDilationsAreOne(strides, dilations), function () {
                        return 'Error in pool: Either strides or dilations must be 1. ' + "Got strides ".concat(strides, " and dilations '").concat(dilations, "'");
                    });
                    var convInfo = computePool2DInfo(x4D.shape, windowShape, strides, dilations, pad);
                    var dilation = [convInfo.dilationHeight, convInfo.dilationWidth];
                    // The following implementation does batchToSpace(pool(spaceToBatch(x)))
                    // whenever dilation > 1 since the TF kernels do not support dilation > 1.
                    // tslint:disable-next-line:max-line-length
                    // https://github.com/tensorflow/tensorflow/blob/50f6bb67dc98c9b74630b6047aae7a4f8a40fd02/tensorflow/python/ops/nn_ops.py#L1037
                    var basePadding;
                    if (pad === 'same') {
                        basePadding = withSpaceToBatchBasePaddings([convInfo.filterHeight, convInfo.filterWidth], dilation);
                    } else {
                        basePadding = [[0, 0], [0, 0]];
                    }
                    var isDilationOne = dilation[0] === 1 && dilation[1] === 1;
                    var _a = __read(requiredSpaceToBatchPaddings([convInfo.inHeight, convInfo.inWidth], dilation, basePadding), 2)
                        , adjustedPadding = _a[0]
                        , adjustedCrops = _a[1];
                    var convertedPad = isDilationOne ? pad : 'valid';
                    var convertedX = isDilationOne ? x4D : spaceToBatchND(x4D, dilation, adjustedPadding);
                    var forwardOp = poolingType === 'avg' ? function () {
                        return avgPool(convertedX, windowShape, strides, convertedPad, dimRoundingMode);
                    }
                        : function () {
                            return maxPool(convertedX, windowShape, strides, convertedPad, dimRoundingMode);
                        }
                        ;
                    var y = forwardOp();
                    var res = isDilationOne ? y : batchToSpaceND(y, dilation, adjustedCrops);
                    if (reshapedTo4D) {
                        return reshape(res, [res.shape[1], res.shape[2], res.shape[3]]);
                    }
                    return res;
                }
                // Helper function to compute crops and paddings for pool with dilation > 1.
                // tslint:disable-next-line:max-line-length
                // https://github.com/tensorflow/tensorflow/blob/50f6bb67dc98c9b74630b6047aae7a4f8a40fd02/tensorflow/python/ops/array_ops.py#L2184
                function requiredSpaceToBatchPaddings(inputShape, blockShape, basePadding) {
                    var padStart = basePadding.map(function (b) {
                        return b[0];
                    });
                    var origPadEnd = basePadding.map(function (b) {
                        return b[1];
                    });
                    var fullInputShape = inputShape.concat(padStart, origPadEnd);
                    var padEndExtra = blockShape.map(function (b, i) {
                        return (b - fullInputShape[i] % b) % b;
                    });
                    var padEnd = origPadEnd.map(function (s, i) {
                        return s + padEndExtra[i];
                    });
                    var paddings = blockShape.map(function (_, i) {
                        return [padStart[i], padEnd[i]];
                    });
                    var crops = blockShape.map(function (_, i) {
                        return [0, padEndExtra[i]];
                    });
                    return [paddings, crops];
                }
                // Helper function to compute base paddings for pool with dilation > 1.
                // tslint:disable-next-line:max-line-length
                // https://github.com/tensorflow/tensorflow/blob/50f6bb67dc98c9b74630b6047aae7a4f8a40fd02/tensorflow/python/ops/nn_ops.py#L524
                function withSpaceToBatchBasePaddings(filterShape, dilation) {
                    // Spatial dimensions of the filters and the upsampled filters in which we
                    // introduce (rate - 1) zeros between consecutive filter values.
                    var dilatedFilterShape = filterShape.map(function (s, i) {
                        return s + (s - 1) * (dilation[i] - 1);
                    });
                    var padExtraShape = dilatedFilterShape.map(function (s) {
                        return s - 1;
                    });
                    // When padding is odd, we pad more at end, following the same
                    // convention as conv2d.
                    var padExtraStart = padExtraShape.map(function (s) {
                        return Math.floor(s / 2);
                    });
                    var padExtraEnd = padExtraShape.map(function (s, i) {
                        return s - padExtraStart[i];
                    });
                    return padExtraShape.map(function (_, i) {
                        return [padExtraStart[i], padExtraEnd[i]];
                    });
                }
                var pool = op({
                    pool_: pool_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes leaky rectified linear element-wise with parametric alphas.
 *
 * `x < 0 ? alpha * x : f(x) = x`
 *
 * ```js
 * const x = tf.tensor1d([-1, 2, -3, 4]);
 * const alpha = tf.scalar(0.1);
 *
 * x.prelu(alpha).print();  // or tf.prelu(x, alpha)
 * ```
 * @param x The input tensor.
 * @param alpha Scaling factor for negative values.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function prelu_(x, alpha) {
                    var $x = convertToTensor(x, 'x', 'prelu');
                    var $alpha = convertToTensor(alpha, 'alpha', 'prelu');
                    var inputs = {
                        x: $x,
                        alpha: $alpha
                    };
                    return ENGINE.runKernel(Prelu, inputs);
                }
                var prelu = op({
                    prelu_: prelu_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the product of elements across dimensions of a `tf.Tensor`.
 *
 * Reduces the input along the dimensions given in `axes`. Unless `keepDims`
 * is true, the rank of the `tf.Tensor` is reduced by 1 for each entry in
 * `axes`. If `keepDims` is true, the reduced dimensions are retained with
 * length 1. If `axes` has no entries, all dimensions are reduced, and a
 * `tf.Tensor` with a single element is returned.
 *
 * ```js
 * const x = tf.tensor1d([1, 2, 3]);
 *
 * x.prod().print();  // or tf.prod(x)
 * ```
 *
 * ```js
 * const x = tf.tensor2d([1, 2, 3, 4], [2, 2]);
 *
 * const axis = 1;
 * x.prod(axis).print();  // or tf.prod(x, axis)
 * ```
 *
 * @param x The input tensor to compute the product over. If the dtype is `bool`
 *   it will be converted to `int32` and the output dtype will be `int32`.
 * @param axis The dimension(s) to reduce. By default it reduces
 *     all dimensions.
 * @param keepDims If true, retains reduced dimensions with size 1.
 *
 * @doc {heading: 'Operations', subheading: 'Reduction'}
 */
                function prod_(x, axis, keepDims) {
                    if (axis === void 0) {
                        axis = null;
                    }
                    if (keepDims === void 0) {
                        keepDims = false;
                    }
                    var $x = convertToTensor(x, 'x', 'prod');
                    if ($x.dtype === 'bool') {
                        // bool is not an allowed type for the underlying kernel.
                        $x = cast($x, 'int32');
                    }
                    var inputs = {
                        x: $x
                    };
                    var attrs = {
                        axis: axis,
                        keepDims: keepDims
                    };
                    return ENGINE.runKernel(Prod, inputs, attrs);
                }
                var prod = op({
                    prod_: prod_
                });
                /**
 * @license
 * Copyright 2022 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                function raggedGather_(paramsNestedSplits, paramsDenseValues, indices, outputRaggedRank) {
                    var $paramsNestedSplits = paramsNestedSplits.map(function (t, i) {
                        return convertToTensor(t, "tensors".concat(i), 'raggedGather', 'int32');
                    });
                    var $paramsDenseValues = convertToTensor(paramsDenseValues, 'paramsDenseValues', 'raggedGather');
                    var $indices = convertToTensor(indices, 'indices', 'raggedGather', 'int32');
                    var inputs = {
                        paramsNestedSplits: $paramsNestedSplits,
                        paramsDenseValues: $paramsDenseValues,
                        indices: $indices
                    };
                    var attrs = {
                        outputRaggedRank: outputRaggedRank
                    };
                    var result = ENGINE.runKernel(RaggedGather, inputs, attrs);
                    return {
                        outputNestedSplits: result.slice(0, result.length - 1),
                        outputDenseValues: result[result.length - 1]
                    };
                }
                var raggedGather = op({
                    raggedGather_: raggedGather_
                });
                /**
 * @license
 * Copyright 2022 Google LLC.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Returns a RaggedTensor result composed from rtDenseValues and rtNestedSplits,
 * such that result[i] = [starts[i], starts[i] + deltas[i], ..., limits[i]]).
 *
 * @param starts: A Tensor. Must be one of the following types:
 *     'float32', 'int32'. The starts of each range.
 * @param limits: A Tensor. Must have the same type as starts. The limits of
 *     each range.
 * @param deltas: A Tensor. Must have the same type as starts. The deltas of
 *     each range.
 * @return A map with the following properties:
 *     - rtNestedSplits: A Tensor of type 'int32'.
 *     - rtDenseValues: A Tensor. Has the same type as starts.
 */
                function raggedRange_(starts, limits, deltas) {
                    var $starts = convertToTensor(starts, 'starts', 'raggedRange');
                    var $limits = convertToTensor(limits, 'limits', 'raggedRange', $starts.dtype);
                    var $deltas = convertToTensor(deltas, 'deltas', 'raggedRange', $starts.dtype);
                    var inputs = {
                        starts: $starts,
                        limits: $limits,
                        deltas: $deltas
                    };
                    var result = ENGINE.runKernel(RaggedRange, inputs);
                    return {
                        rtNestedSplits: result[0],
                        rtDenseValues: result[1]
                    };
                }
                var raggedRange = op({
                    raggedRange_: raggedRange_
                });
                /**
 * @license
 * Copyright 2022 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Create a dense tensor from a ragged tensor, possibly altering its shape.
 *
 * The raggedTensorToTensor op creates a dense tensor from am array of row
 * partition tensors, a value vector, and default values. If the shape is
 * unspecified, the minimal shape required to contain all the elements in the
 * ragged tensor (the natural shape) will be used. If some dimensions are left
 * unspecified, then the size of the natural shape is used in that dimension.
 *
 * The defaultValue will be broadcast to the output shape. After that, the
 * values from the ragged tensor overwrite the default values. Note that the
 * defaultValue must have less dimensions than the value.
 *
 * The row partition tensors are in the order of the dimensions. At present, the
 * types can be: "ROW_SPLITS": the row_splits tensor from the ragged tensor.
 *   "VALUE_ROWIDS": the value_rowids tensor from the ragged tensor.
 *   "FIRST_DIM_SIZE": if value_rowids is used for the first dimension, then it
 * is preceded by "FIRST_DIM_SIZE".
 * ```
 * @param shape: A Tensor. Must be one of the following types: 'int32'. The
 *     desired shape of the output tensor. If left unspecified (empty), the
 *     minimal shape required to contain all the elements in the ragged tensor
 *     (the natural shape) will be used. If some dimensions are left
 *     unspecified, then the size of the natural shape is used in that
 *     dimension.
 *
 *     Note that dense dimensions cannot be modified by the shape argument.
 *     Trying to change the size of a dense dimension will cause the op to fail.
 *     Examples: natural shape: [4, 5, 6] shape: -1 output shape: [4, 5, 6]
 *
 *     natural shape: [4, 5, 6] shape: [3, -1, 2] output shape: [3, 5, 2]
 *
 *     natural shape: [4, 5, 6] shape: [3, 7, 2] output shape: [3, 7, 2]
 * @param values: A Tensor. A 1D tensor representing the values of the ragged
 *     tensor.
 * @param defaultValue: A Tensor. Must have the same type as values. The
 *     defaultValue when the shape is larger than the ragged tensor. The
 *     defaultValue is broadcast until it is the shape of the output tensor,
 *     and then overwritten by values in the ragged tensor. The default value
 *     must be compatible with this broadcast operation, and must have fewer
 *     dimensions than the value tensor.
 * @param rowPartitionTensors: A list of at least 1 Tensor objects with the same
 *     type in: 'int32'.
 * @param rowPartitionTypes: A list of strings. The types of the row partition
 *     tensors. At present, these can be:
 *     "ROW_SPLITS": the row_splits tensor from the ragged tensor.
 *     "VALUE_ROWIDS": the value_rowids tensor from the ragged tensor.
 *     "FIRST_DIM_SIZE": if value_rowids is used for the first dimension, then
 *         it is preceeded by "FIRST_DIM_SIZE". The tensors are in the order of
 *         the dimensions.
 * @return A Tensor. Has the same type as values.
 * @doc {heading: 'Operations', subheading: 'Ragged'}
 */
                function raggedTensorToTensor_(shape, values, defaultValue, rowPartitionTensors, rowPartitionTypes) {
                    var $shape = convertToTensor(shape, 'shape', 'raggedTensorToTensor', 'int32');
                    var $values = convertToTensor(values, 'values', 'raggedTensorToTensor');
                    var $defaultValue = convertToTensor(defaultValue, 'defaultValue', 'raggedTensorToTensor', $values.dtype);
                    var $rowPartitionTensors = rowPartitionTensors.map(function (t, i) {
                        return convertToTensor(t, "tensors".concat(i), 'raggedTensorToTensor', 'int32');
                    });
                    var inputs = {
                        shape: $shape,
                        values: $values,
                        defaultValue: $defaultValue,
                        rowPartitionTensors: $rowPartitionTensors
                    };
                    var attrs = {
                        rowPartitionTypes: rowPartitionTypes
                    };
                    return ENGINE.runKernel(RaggedTensorToTensor, inputs, attrs);
                }
                var raggedTensorToTensor = op({
                    raggedTensorToTensor_: raggedTensorToTensor_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Creates a `tf.Tensor` with values sampled from a random number generator
 * function defined by the user.
 *
 * @param shape An array of integers defining the output tensor shape.
 * @param randFunction A random number generator function which is called
 * for each element in the output tensor.
 * @param dtype The data type of the output tensor. Defaults to 'float32'.
 *
 * @doc {heading: 'Tensors', subheading: 'Random'}
 */
                function rand_(shape, randFunction, dtype) {
                    assertNonNegativeIntegerDimensions(shape);
                    var size = sizeFromShape(shape);
                    var values = null;
                    if (dtype == null || dtype === 'float32') {
                        values = new Float32Array(size);
                    } else if (dtype === 'int32') {
                        values = new Int32Array(size);
                    } else if (dtype === 'bool') {
                        values = new Uint8Array(size);
                    } else {
                        throw new Error("Unknown data type ".concat(dtype));
                    }
                    for (var i = 0; i < size; i++) {
                        values[i] = randFunction();
                    }
                    return ENGINE.makeTensor(values, shape, dtype);
                }
                var rand = op({
                    rand_: rand_
                });
                var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
                function createCommonjsModule(fn) {
                    var module = {
                        exports: {}
                    };
                    return fn(module, module.exports),
                        module.exports;
                }
                var alea = createCommonjsModule(function (module) {
                    // A port of an algorithm by Johannes Baagøe <baagoe@baagoe.com>, 2010
                    // http://baagoe.com/en/RandomMusings/javascript/
                    // https://github.com/nquinlan/better-random-numbers-for-javascript-mirror
                    // Original work is under MIT license -
                    // Copyright (C) 2010 by Johannes Baagøe <baagoe@baagoe.org>
                    //
                    // Permission is hereby granted, free of charge, to any person obtaining a copy
                    // of this software and associated documentation files (the "Software"), to deal
                    // in the Software without restriction, including without limitation the rights
                    // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
                    // copies of the Software, and to permit persons to whom the Software is
                    // furnished to do so, subject to the following conditions:
                    //
                    // The above copyright notice and this permission notice shall be included in
                    // all copies or substantial portions of the Software.
                    //
                    // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
                    // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
                    // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
                    // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
                    // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
                    // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
                    // THE SOFTWARE.
                    (function (global, module, define) {
                        function Alea(seed) {
                            var me = this
                                , mash = Mash();
                            me.next = function () {
                                var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10;
                                // 2^-32
                                me.s0 = me.s1;
                                me.s1 = me.s2;
                                return me.s2 = t - (me.c = t | 0);
                            }
                                ;
                            // Apply the seeding algorithm from Baagoe.
                            me.c = 1;
                            me.s0 = mash(' ');
                            me.s1 = mash(' ');
                            me.s2 = mash(' ');
                            me.s0 -= mash(seed);
                            if (me.s0 < 0) {
                                me.s0 += 1;
                            }
                            me.s1 -= mash(seed);
                            if (me.s1 < 0) {
                                me.s1 += 1;
                            }
                            me.s2 -= mash(seed);
                            if (me.s2 < 0) {
                                me.s2 += 1;
                            }
                            mash = null;
                        }
                        function copy(f, t) {
                            t.c = f.c;
                            t.s0 = f.s0;
                            t.s1 = f.s1;
                            t.s2 = f.s2;
                            return t;
                        }
                        function impl(seed, opts) {
                            var xg = new Alea(seed)
                                , state = opts && opts.state
                                , prng = xg.next;
                            prng.int32 = function () {
                                return xg.next() * 0x100000000 | 0;
                            }
                                ;
                            prng.double = function () {
                                return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16;
                                // 2^-53
                            }
                                ;
                            prng.quick = prng;
                            if (state) {
                                if (typeof state == 'object')
                                    copy(state, xg);
                                prng.state = function () {
                                    return copy(xg, {});
                                }
                                    ;
                            }
                            return prng;
                        }
                        function Mash() {
                            var n = 0xefc8249d;
                            var mash = function (data) {
                                data = String(data);
                                for (var i = 0; i < data.length; i++) {
                                    n += data.charCodeAt(i);
                                    var h = 0.02519603282416938 * n;
                                    n = h >>> 0;
                                    h -= n;
                                    h *= n;
                                    n = h >>> 0;
                                    h -= n;
                                    n += h * 0x100000000;
                                    // 2^32
                                }
                                return (n >>> 0) * 2.3283064365386963e-10;
                                // 2^-32
                            };
                            return mash;
                        }
                        if (module && module.exports) {
                            module.exports = impl;
                        } else if (define && define.amd) {
                            define(function () {
                                return impl;
                            });
                        } else {
                            this.alea = impl;
                        }
                    }
                    )(commonjsGlobal, module, // present in node.js
                        typeof undefined == 'function'// present with an AMD loader
                    );
                });
                var xor128 = createCommonjsModule(function (module) {
                    // A Javascript implementaion of the "xor128" prng algorithm by
                    // George Marsaglia.  See http://www.jstatsoft.org/v08/i14/paper
                    (function (global, module, define) {
                        function XorGen(seed) {
                            var me = this
                                , strseed = '';
                            me.x = 0;
                            me.y = 0;
                            me.z = 0;
                            me.w = 0;
                            // Set up generator function.
                            me.next = function () {
                                var t = me.x ^ me.x << 11;
                                me.x = me.y;
                                me.y = me.z;
                                me.z = me.w;
                                return me.w ^= me.w >>> 19 ^ t ^ t >>> 8;
                            }
                                ;
                            if (seed === (seed | 0)) {
                                // Integer seed.
                                me.x = seed;
                            } else {
                                // String seed.
                                strseed += seed;
                            }
                            // Mix in string seed, then discard an initial batch of 64 values.
                            for (var k = 0; k < strseed.length + 64; k++) {
                                me.x ^= strseed.charCodeAt(k) | 0;
                                me.next();
                            }
                        }
                        function copy(f, t) {
                            t.x = f.x;
                            t.y = f.y;
                            t.z = f.z;
                            t.w = f.w;
                            return t;
                        }
                        function impl(seed, opts) {
                            var xg = new XorGen(seed)
                                , state = opts && opts.state
                                , prng = function () {
                                    return (xg.next() >>> 0) / 0x100000000;
                                };
                            prng.double = function () {
                                do {
                                    var top = xg.next() >>> 11
                                        , bot = (xg.next() >>> 0) / 0x100000000
                                        , result = (top + bot) / (1 << 21);
                                } while (result === 0);
                                return result;
                            }
                                ;
                            prng.int32 = xg.next;
                            prng.quick = prng;
                            if (state) {
                                if (typeof state == 'object')
                                    copy(state, xg);
                                prng.state = function () {
                                    return copy(xg, {});
                                }
                                    ;
                            }
                            return prng;
                        }
                        if (module && module.exports) {
                            module.exports = impl;
                        } else if (define && define.amd) {
                            define(function () {
                                return impl;
                            });
                        } else {
                            this.xor128 = impl;
                        }
                    }
                    )(commonjsGlobal, module, // present in node.js
                        typeof undefined == 'function'// present with an AMD loader
                    );
                });
                var xorwow = createCommonjsModule(function (module) {
                    // A Javascript implementaion of the "xorwow" prng algorithm by
                    // George Marsaglia.  See http://www.jstatsoft.org/v08/i14/paper
                    (function (global, module, define) {
                        function XorGen(seed) {
                            var me = this
                                , strseed = '';
                            // Set up generator function.
                            me.next = function () {
                                var t = me.x ^ me.x >>> 2;
                                me.x = me.y;
                                me.y = me.z;
                                me.z = me.w;
                                me.w = me.v;
                                return (me.d = me.d + 362437 | 0) + (me.v = me.v ^ me.v << 4 ^ (t ^ t << 1)) | 0;
                            }
                                ;
                            me.x = 0;
                            me.y = 0;
                            me.z = 0;
                            me.w = 0;
                            me.v = 0;
                            if (seed === (seed | 0)) {
                                // Integer seed.
                                me.x = seed;
                            } else {
                                // String seed.
                                strseed += seed;
                            }
                            // Mix in string seed, then discard an initial batch of 64 values.
                            for (var k = 0; k < strseed.length + 64; k++) {
                                me.x ^= strseed.charCodeAt(k) | 0;
                                if (k == strseed.length) {
                                    me.d = me.x << 10 ^ me.x >>> 4;
                                }
                                me.next();
                            }
                        }
                        function copy(f, t) {
                            t.x = f.x;
                            t.y = f.y;
                            t.z = f.z;
                            t.w = f.w;
                            t.v = f.v;
                            t.d = f.d;
                            return t;
                        }
                        function impl(seed, opts) {
                            var xg = new XorGen(seed)
                                , state = opts && opts.state
                                , prng = function () {
                                    return (xg.next() >>> 0) / 0x100000000;
                                };
                            prng.double = function () {
                                do {
                                    var top = xg.next() >>> 11
                                        , bot = (xg.next() >>> 0) / 0x100000000
                                        , result = (top + bot) / (1 << 21);
                                } while (result === 0);
                                return result;
                            }
                                ;
                            prng.int32 = xg.next;
                            prng.quick = prng;
                            if (state) {
                                if (typeof state == 'object')
                                    copy(state, xg);
                                prng.state = function () {
                                    return copy(xg, {});
                                }
                                    ;
                            }
                            return prng;
                        }
                        if (module && module.exports) {
                            module.exports = impl;
                        } else if (define && define.amd) {
                            define(function () {
                                return impl;
                            });
                        } else {
                            this.xorwow = impl;
                        }
                    }
                    )(commonjsGlobal, module, // present in node.js
                        typeof undefined == 'function'// present with an AMD loader
                    );
                });
                var xorshift7 = createCommonjsModule(function (module) {
                    // A Javascript implementaion of the "xorshift7" algorithm by
                    // François Panneton and Pierre L'ecuyer:
                    // "On the Xorgshift Random Number Generators"
                    // http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf
                    (function (global, module, define) {
                        function XorGen(seed) {
                            var me = this;
                            // Set up generator function.
                            me.next = function () {
                                // Update xor generator.
                                var X = me.x, i = me.i, t, v;
                                t = X[i];
                                t ^= t >>> 7;
                                v = t ^ t << 24;
                                t = X[i + 1 & 7];
                                v ^= t ^ t >>> 10;
                                t = X[i + 3 & 7];
                                v ^= t ^ t >>> 3;
                                t = X[i + 4 & 7];
                                v ^= t ^ t << 7;
                                t = X[i + 7 & 7];
                                t = t ^ t << 13;
                                v ^= t ^ t << 9;
                                X[i] = v;
                                me.i = i + 1 & 7;
                                return v;
                            }
                                ;
                            function init(me, seed) {
                                var j, X = [];
                                if (seed === (seed | 0)) {
                                    // Seed state array using a 32-bit integer.
                                    X[0] = seed;
                                } else {
                                    // Seed state using a string.
                                    seed = '' + seed;
                                    for (j = 0; j < seed.length; ++j) {
                                        X[j & 7] = X[j & 7] << 15 ^ seed.charCodeAt(j) + X[j + 1 & 7] << 13;
                                    }
                                }
                                // Enforce an array length of 8, not all zeroes.
                                while (X.length < 8)
                                    X.push(0);
                                for (j = 0; j < 8 && X[j] === 0; ++j)
                                    ;
                                if (j == 8)
                                    X[7] = -1;
                                me.x = X;
                                me.i = 0;
                                // Discard an initial 256 values.
                                for (j = 256; j > 0; --j) {
                                    me.next();
                                }
                            }
                            init(me, seed);
                        }
                        function copy(f, t) {
                            t.x = f.x.slice();
                            t.i = f.i;
                            return t;
                        }
                        function impl(seed, opts) {
                            if (seed == null)
                                seed = +new Date();
                            var xg = new XorGen(seed)
                                , state = opts && opts.state
                                , prng = function () {
                                    return (xg.next() >>> 0) / 0x100000000;
                                };
                            prng.double = function () {
                                do {
                                    var top = xg.next() >>> 11
                                        , bot = (xg.next() >>> 0) / 0x100000000
                                        , result = (top + bot) / (1 << 21);
                                } while (result === 0);
                                return result;
                            }
                                ;
                            prng.int32 = xg.next;
                            prng.quick = prng;
                            if (state) {
                                if (state.x)
                                    copy(state, xg);
                                prng.state = function () {
                                    return copy(xg, {});
                                }
                                    ;
                            }
                            return prng;
                        }
                        if (module && module.exports) {
                            module.exports = impl;
                        } else if (define && define.amd) {
                            define(function () {
                                return impl;
                            });
                        } else {
                            this.xorshift7 = impl;
                        }
                    }
                    )(commonjsGlobal, module, // present in node.js
                        typeof undefined == 'function'// present with an AMD loader
                    );
                });
                var xor4096 = createCommonjsModule(function (module) {
                    // A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.
                    //
                    // This fast non-cryptographic random number generator is designed for
                    // use in Monte-Carlo algorithms. It combines a long-period xorshift
                    // generator with a Weyl generator, and it passes all common batteries
                    // of stasticial tests for randomness while consuming only a few nanoseconds
                    // for each prng generated.  For background on the generator, see Brent's
                    // paper: "Some long-period random number generators using shifts and xors."
                    // http://arxiv.org/pdf/1004.3115v1.pdf
                    //
                    // Usage:
                    //
                    // var xor4096 = require('xor4096');
                    // random = xor4096(1);                        // Seed with int32 or string.
                    // assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.
                    // assert.equal(random.int32(), 1806534897);   // signed int32, 32 bits.
                    //
                    // For nonzero numeric keys, this impelementation provides a sequence
                    // identical to that by Brent's xorgens 3 implementaion in C.  This
                    // implementation also provides for initalizing the generator with
                    // string seeds, or for saving and restoring the state of the generator.
                    //
                    // On Chrome, this prng benchmarks about 2.1 times slower than
                    // Javascript's built-in Math.random().
                    (function (global, module, define) {
                        function XorGen(seed) {
                            var me = this;
                            // Set up generator function.
                            me.next = function () {
                                var w = me.w, X = me.X, i = me.i, t, v;
                                // Update Weyl generator.
                                me.w = w = w + 0x61c88647 | 0;
                                // Update xor generator.
                                v = X[i + 34 & 127];
                                t = X[i = i + 1 & 127];
                                v ^= v << 13;
                                t ^= t << 17;
                                v ^= v >>> 15;
                                t ^= t >>> 12;
                                // Update Xor generator array state.
                                v = X[i] = v ^ t;
                                me.i = i;
                                // Result is the combination.
                                return v + (w ^ w >>> 16) | 0;
                            }
                                ;
                            function init(me, seed) {
                                var t, v, i, j, w, X = [], limit = 128;
                                if (seed === (seed | 0)) {
                                    // Numeric seeds initialize v, which is used to generates X.
                                    v = seed;
                                    seed = null;
                                } else {
                                    // String seeds are mixed into v and X one character at a time.
                                    seed = seed + '\0';
                                    v = 0;
                                    limit = Math.max(limit, seed.length);
                                }
                                // Initialize circular array and weyl value.
                                for (i = 0,
                                    j = -32; j < limit; ++j) {
                                    // Put the unicode characters into the array, and shuffle them.
                                    if (seed)
                                        v ^= seed.charCodeAt((j + 32) % seed.length);
                                    // After 32 shuffles, take v as the starting w value.
                                    if (j === 0)
                                        w = v;
                                    v ^= v << 10;
                                    v ^= v >>> 15;
                                    v ^= v << 4;
                                    v ^= v >>> 13;
                                    if (j >= 0) {
                                        w = w + 0x61c88647 | 0;
                                        // Weyl.
                                        t = X[j & 127] ^= v + w;
                                        // Combine xor and weyl to init array.
                                        i = 0 == t ? i + 1 : 0;
                                        // Count zeroes.
                                    }
                                }
                                // We have detected all zeroes; make the key nonzero.
                                if (i >= 128) {
                                    X[(seed && seed.length || 0) & 127] = -1;
                                }
                                // Run the generator 512 times to further mix the state before using it.
                                // Factoring this as a function slows the main generator, so it is just
                                // unrolled here.  The weyl generator is not advanced while warming up.
                                i = 127;
                                for (j = 4 * 128; j > 0; --j) {
                                    v = X[i + 34 & 127];
                                    t = X[i = i + 1 & 127];
                                    v ^= v << 13;
                                    t ^= t << 17;
                                    v ^= v >>> 15;
                                    t ^= t >>> 12;
                                    X[i] = v ^ t;
                                }
                                // Storing state as object members is faster than using closure variables.
                                me.w = w;
                                me.X = X;
                                me.i = i;
                            }
                            init(me, seed);
                        }
                        function copy(f, t) {
                            t.i = f.i;
                            t.w = f.w;
                            t.X = f.X.slice();
                            return t;
                        }
                        function impl(seed, opts) {
                            if (seed == null)
                                seed = +new Date();
                            var xg = new XorGen(seed)
                                , state = opts && opts.state
                                , prng = function () {
                                    return (xg.next() >>> 0) / 0x100000000;
                                };
                            prng.double = function () {
                                do {
                                    var top = xg.next() >>> 11
                                        , bot = (xg.next() >>> 0) / 0x100000000
                                        , result = (top + bot) / (1 << 21);
                                } while (result === 0);
                                return result;
                            }
                                ;
                            prng.int32 = xg.next;
                            prng.quick = prng;
                            if (state) {
                                if (state.X)
                                    copy(state, xg);
                                prng.state = function () {
                                    return copy(xg, {});
                                }
                                    ;
                            }
                            return prng;
                        }
                        if (module && module.exports) {
                            module.exports = impl;
                        } else if (define && define.amd) {
                            define(function () {
                                return impl;
                            });
                        } else {
                            this.xor4096 = impl;
                        }
                    }
                    )(commonjsGlobal, // window object or global
                        module, // present in node.js
                        typeof undefined == 'function'// present with an AMD loader
                    );
                });
                var tychei = createCommonjsModule(function (module) {
                    // A Javascript implementaion of the "Tyche-i" prng algorithm by
                    // Samuel Neves and Filipe Araujo.
                    // See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf
                    (function (global, module, define) {
                        function XorGen(seed) {
                            var me = this
                                , strseed = '';
                            // Set up generator function.
                            me.next = function () {
                                var b = me.b
                                    , c = me.c
                                    , d = me.d
                                    , a = me.a;
                                b = b << 25 ^ b >>> 7 ^ c;
                                c = c - d | 0;
                                d = d << 24 ^ d >>> 8 ^ a;
                                a = a - b | 0;
                                me.b = b = b << 20 ^ b >>> 12 ^ c;
                                me.c = c = c - d | 0;
                                me.d = d << 16 ^ c >>> 16 ^ a;
                                return me.a = a - b | 0;
                            }
                                ;
                            /* The following is non-inverted tyche, which has better internal
             * bit diffusion, but which is about 25% slower than tyche-i in JS.
            me.next = function() {
              var a = me.a, b = me.b, c = me.c, d = me.d;
              a = (me.a + me.b | 0) >>> 0;
              d = me.d ^ a; d = d << 16 ^ d >>> 16;
              c = me.c + d | 0;
              b = me.b ^ c; b = b << 12 ^ d >>> 20;
              me.a = a = a + b | 0;
              d = d ^ a; me.d = d = d << 8 ^ d >>> 24;
              me.c = c = c + d | 0;
              b = b ^ c;
              return me.b = (b << 7 ^ b >>> 25);
            }
            */
                            me.a = 0;
                            me.b = 0;
                            me.c = 2654435769 | 0;
                            me.d = 1367130551;
                            if (seed === Math.floor(seed)) {
                                // Integer seed.
                                me.a = seed / 0x100000000 | 0;
                                me.b = seed | 0;
                            } else {
                                // String seed.
                                strseed += seed;
                            }
                            // Mix in string seed, then discard an initial batch of 64 values.
                            for (var k = 0; k < strseed.length + 20; k++) {
                                me.b ^= strseed.charCodeAt(k) | 0;
                                me.next();
                            }
                        }
                        function copy(f, t) {
                            t.a = f.a;
                            t.b = f.b;
                            t.c = f.c;
                            t.d = f.d;
                            return t;
                        }
                        function impl(seed, opts) {
                            var xg = new XorGen(seed)
                                , state = opts && opts.state
                                , prng = function () {
                                    return (xg.next() >>> 0) / 0x100000000;
                                };
                            prng.double = function () {
                                do {
                                    var top = xg.next() >>> 11
                                        , bot = (xg.next() >>> 0) / 0x100000000
                                        , result = (top + bot) / (1 << 21);
                                } while (result === 0);
                                return result;
                            }
                                ;
                            prng.int32 = xg.next;
                            prng.quick = prng;
                            if (state) {
                                if (typeof state == 'object')
                                    copy(state, xg);
                                prng.state = function () {
                                    return copy(xg, {});
                                }
                                    ;
                            }
                            return prng;
                        }
                        if (module && module.exports) {
                            module.exports = impl;
                        } else if (define && define.amd) {
                            define(function () {
                                return impl;
                            });
                        } else {
                            this.tychei = impl;
                        }
                    }
                    )(commonjsGlobal, module, // present in node.js
                        typeof undefined == 'function'// present with an AMD loader
                    );
                });
                /*
Copyright 2019 David Bau.

Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

*/
                var seedrandom$1 = createCommonjsModule(function (module) {
                    (function (global, pool, math) {
                        //
                        // The following constants are related to IEEE 754 limits.
                        //
                        var width = 256, // each RC4 output is 0 <= x < 256
                            chunks = 6, // at least six RC4 outputs for each double
                            digits = 52, // there are 52 significant digits in a double
                            rngname = 'random', // rngname: name for Math.random and Math.seedrandom
                            startdenom = math.pow(width, chunks), significance = math.pow(2, digits), overflow = significance * 2, mask = width - 1, nodecrypto;
                        // node.js crypto module, initialized at the bottom.
                        //
                        // seedrandom()
                        // This is the seedrandom function described above.
                        //
                        function seedrandom(seed, options, callback) {
                            var key = [];
                            options = options == true ? {
                                entropy: true
                            } : options || {};
                            // Flatten the seed string or build one from local entropy if needed.
                            var shortseed = mixkey(flatten(options.entropy ? [seed, tostring(pool)] : seed == null ? autoseed() : seed, 3), key);
                            // Use the seed to initialize an ARC4 generator.
                            var arc4 = new ARC4(key);
                            // This function returns a random double in [0, 1) that contains
                            // randomness in every bit of the mantissa of the IEEE 754 value.
                            var prng = function () {
                                var n = arc4.g(chunks)
                                    , // Start with a numerator n < 2 ^ 48
                                    d = startdenom
                                    , //   and denominator d = 2 ^ 48.
                                    x = 0;
                                //   and no 'extra last byte'.
                                while (n < significance) {
                                    // Fill up all significant digits by
                                    n = (n + x) * width;
                                    //   shifting numerator and
                                    d *= width;
                                    //   denominator and generating a
                                    x = arc4.g(1);
                                    //   new least-significant-byte.
                                }
                                while (n >= overflow) {
                                    // To avoid rounding up, before adding
                                    n /= 2;
                                    //   last byte, shift everything
                                    d /= 2;
                                    //   right using integer math until
                                    x >>>= 1;
                                    //   we have exactly the desired bits.
                                }
                                return (n + x) / d;
                                // Form the number within [0, 1).
                            };
                            prng.int32 = function () {
                                return arc4.g(4) | 0;
                            }
                                ;
                            prng.quick = function () {
                                return arc4.g(4) / 0x100000000;
                            }
                                ;
                            prng.double = prng;
                            // Mix the randomness into accumulated entropy.
                            mixkey(tostring(arc4.S), pool);
                            // Calling convention: what to return as a function of prng, seed, is_math.
                            return (options.pass || callback || function (prng, seed, is_math_call, state) {
                                if (state) {
                                    // Load the arc4 state from the given state if it has an S array.
                                    if (state.S) {
                                        copy(state, arc4);
                                    }
                                    // Only provide the .state method if requested via options.state.
                                    prng.state = function () {
                                        return copy(arc4, {});
                                    }
                                        ;
                                }
                                // If called as a method of Math (Math.seedrandom()), mutate
                                // Math.random because that is how seedrandom.js has worked since v1.0.
                                if (is_math_call) {
                                    math[rngname] = prng;
                                    return seed;
                                }// Otherwise, it is a newer calling convention, so return the
                                // prng directly.
                                else
                                    return prng;
                            }
                            )(prng, shortseed, 'global' in options ? options.global : this == math, options.state);
                        }
                        //
                        // ARC4
                        //
                        // An ARC4 implementation.  The constructor takes a key in the form of
                        // an array of at most (width) integers that should be 0 <= x < (width).
                        //
                        // The g(count) method returns a pseudorandom integer that concatenates
                        // the next (count) outputs from ARC4.  Its return value is a number x
                        // that is in the range 0 <= x < (width ^ count).
                        //
                        function ARC4(key) {
                            var t, keylen = key.length, me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];
                            // The empty key [] is treated as [0].
                            if (!keylen) {
                                key = [keylen++];
                            }
                            // Set up S using the standard key scheduling algorithm.
                            while (i < width) {
                                s[i] = i++;
                            }
                            for (i = 0; i < width; i++) {
                                s[i] = s[j = mask & j + key[i % keylen] + (t = s[i])];
                                s[j] = t;
                            }
                            // The "g" method returns the next (count) outputs as one number.
                            (me.g = function (count) {
                                // Using instance members instead of closure state nearly doubles speed.
                                var t, r = 0, i = me.i, j = me.j, s = me.S;
                                while (count--) {
                                    t = s[i = mask & i + 1];
                                    r = r * width + s[mask & (s[i] = s[j = mask & j + t]) + (s[j] = t)];
                                }
                                me.i = i;
                                me.j = j;
                                return r;
                                // For robust unpredictability, the function call below automatically
                                // discards an initial batch of values.  This is called RC4-drop[256].
                                // See http://google.com/search?q=rsa+fluhrer+response&btnI
                            }
                            )(width);
                        }
                        //
                        // copy()
                        // Copies internal state of ARC4 to or from a plain object.
                        //
                        function copy(f, t) {
                            t.i = f.i;
                            t.j = f.j;
                            t.S = f.S.slice();
                            return t;
                        }
                        //
                        // flatten()
                        // Converts an object tree to nested arrays of strings.
                        //
                        function flatten(obj, depth) {
                            var result = [], typ = typeof obj, prop;
                            if (depth && typ == 'object') {
                                for (prop in obj) {
                                    try {
                                        result.push(flatten(obj[prop], depth - 1));
                                    } catch (e) { }
                                }
                            }
                            return result.length ? result : typ == 'string' ? obj : obj + '\0';
                        }
                        //
                        // mixkey()
                        // Mixes a string seed into a key that is an array of integers, and
                        // returns a shortened string seed that is equivalent to the result key.
                        //
                        function mixkey(seed, key) {
                            var stringseed = seed + '', smear, j = 0;
                            while (j < stringseed.length) {
                                key[mask & j] = mask & (smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++);
                            }
                            return tostring(key);
                        }
                        //
                        // autoseed()
                        // Returns an object for autoseeding, using window.crypto and Node crypto
                        // module if available.
                        //
                        function autoseed() {
                            try {
                                var out;
                                if (nodecrypto && (out = nodecrypto.randomBytes)) {
                                    // The use of 'out' to remember randomBytes makes tight minified code.
                                    out = out(width);
                                } else {
                                    out = new Uint8Array(width);
                                    (global.crypto || global.msCrypto).getRandomValues(out);
                                }
                                return tostring(out);
                            } catch (e) {
                                var browser = global.navigator
                                    , plugins = browser && browser.plugins;
                                return [+new Date(), global, plugins, global.screen, tostring(pool)];
                            }
                        }
                        //
                        // tostring()
                        // Converts an array of charcodes to a string
                        //
                        function tostring(a) {
                            return String.fromCharCode.apply(0, a);
                        }
                        //
                        // When seedrandom.js is loaded, we immediately mix a few bits
                        // from the built-in RNG into the entropy pool.  Because we do
                        // not want to interfere with deterministic PRNG state later,
                        // seedrandom will not call math.random on its own again after
                        // initialization.
                        //
                        mixkey(math.random(), pool);
                        //
                        // Nodejs and AMD support: export the implementation as a module using
                        // either convention.
                        //
                        if (module.exports) {
                            module.exports = seedrandom;
                            // When in node.js, try using crypto package for autoseeding.
                            try {
                                nodecrypto = require('crypto');
                            } catch (ex) { }
                        } else {
                            // When included as a plain script, set up Math.seedrandom global.
                            math['seed' + rngname] = seedrandom;
                        }
                        // End anonymous scope, and pass initial values.
                    }
                    )(// global: `self` in browsers (including strict mode and web workers),
                        // otherwise `this` in Node and other environments
                        typeof self !== 'undefined' ? self : commonjsGlobal, [], // pool: entropy pool starts empty
                        Math // math: package containing random, pow, and seedrandom
                    );
                });
                // A library of seedable RNGs implemented in Javascript.
                //
                // Usage:
                //
                // var seedrandom = require('seedrandom');
                // var random = seedrandom(1); // or any seed.
                // var x = random();       // 0 <= x < 1.  Every bit is random.
                // var x = random.quick(); // 0 <= x < 1.  32 bits of randomness.
                // alea, a 53-bit multiply-with-carry generator by Johannes Baagøe.
                // Period: ~2^116
                // Reported to pass all BigCrush tests.
                // xor128, a pure xor-shift generator by George Marsaglia.
                // Period: 2^128-1.
                // Reported to fail: MatrixRank and LinearComp.
                // xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.
                // Period: 2^192-2^32
                // Reported to fail: CollisionOver, SimpPoker, and LinearComp.
                // xorshift7, by François Panneton and Pierre L'ecuyer, takes
                // a different approach: it adds robustness by allowing more shifts
                // than Marsaglia's original three.  It is a 7-shift generator
                // with 256 bits, that passes BigCrush with no systmatic failures.
                // Period 2^256-1.
                // No systematic BigCrush failures reported.
                // xor4096, by Richard Brent, is a 4096-bit xor-shift with a
                // very long period that also adds a Weyl generator. It also passes
                // BigCrush with no systematic failures.  Its long period may
                // be useful if you have many generators and need to avoid
                // collisions.
                // Period: 2^4128-2^32.
                // No systematic BigCrush failures reported.
                // Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random
                // number generator derived from ChaCha, a modern stream cipher.
                // https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf
                // Period: ~2^127
                // No systematic BigCrush failures reported.
                // The original ARC4-based prng included in this library.
                // Period: ~2^1600
                seedrandom$1.alea = alea;
                seedrandom$1.xor128 = xor128;
                seedrandom$1.xorwow = xorwow;
                seedrandom$1.xorshift7 = xorshift7;
                seedrandom$1.xor4096 = xor4096;
                seedrandom$1.tychei = tychei;
                var seedrandom = seedrandom$1;
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                // https://en.wikipedia.org/wiki/Marsaglia_polar_method
                var MPRandGauss = /** @class */
                    function () {
                        function MPRandGauss(mean, stdDeviation, dtype, truncated, seed) {
                            this.mean = mean;
                            this.stdDev = stdDeviation;
                            this.dtype = dtype;
                            this.nextVal = NaN;
                            this.truncated = truncated;
                            if (this.truncated) {
                                this.upper = this.mean + this.stdDev * 2;
                                this.lower = this.mean - this.stdDev * 2;
                            }
                            var seedValue = seed ? seed : Math.random();
                            this.random = seedrandom.alea(seedValue.toString());
                        }
                        /** Returns next sample from a Gaussian distribution. */
                        MPRandGauss.prototype.nextValue = function () {
                            if (!isNaN(this.nextVal)) {
                                var value = this.nextVal;
                                this.nextVal = NaN;
                                return value;
                            }
                            var resultX, resultY;
                            var isValid = false;
                            while (!isValid) {
                                var v1 = void 0
                                    , v2 = void 0
                                    , s = void 0;
                                do {
                                    v1 = 2 * this.random() - 1;
                                    v2 = 2 * this.random() - 1;
                                    s = v1 * v1 + v2 * v2;
                                } while (s >= 1 || s === 0);
                                var mul = Math.sqrt(-2.0 * Math.log(s) / s);
                                resultX = this.mean + this.stdDev * v1 * mul;
                                resultY = this.mean + this.stdDev * v2 * mul;
                                if (!this.truncated || this.isValidTruncated(resultX)) {
                                    isValid = true;
                                }
                            }
                            if (!this.truncated || this.isValidTruncated(resultY)) {
                                this.nextVal = this.convertValue(resultY);
                            }
                            return this.convertValue(resultX);
                        }
                            ;
                        /** Handles proper rounding for non-floating-point numbers. */
                        MPRandGauss.prototype.convertValue = function (value) {
                            if (this.dtype == null || this.dtype === 'float32') {
                                return value;
                            }
                            return Math.round(value);
                        }
                            ;
                        /** Returns true if less than 2-standard-deviations from the mean. */
                        MPRandGauss.prototype.isValidTruncated = function (value) {
                            return value <= this.upper && value >= this.lower;
                        }
                            ;
                        return MPRandGauss;
                    }();
                // Marsaglia, George, and Wai Wan Tsang. 2000. "A Simple Method for Generating
                // Gamma Variables."
                var RandGamma = /** @class */
                    function () {
                        function RandGamma(alpha, beta, dtype, seed) {
                            this.alpha = alpha;
                            this.beta = 1 / beta;
                            // convert rate to scale parameter
                            this.dtype = dtype;
                            var seedValue = seed ? seed : Math.random();
                            this.randu = seedrandom.alea(seedValue.toString());
                            this.randn = new MPRandGauss(0, 1, dtype, false, this.randu());
                            if (alpha < 1) {
                                this.d = alpha + 2 / 3;
                            } else {
                                this.d = alpha - 1 / 3;
                            }
                            this.c = 1 / Math.sqrt(9 * this.d);
                        }
                        /** Returns next sample from a gamma distribution. */
                        RandGamma.prototype.nextValue = function () {
                            var x2, v0, v1, x, u, v;
                            while (true) {
                                do {
                                    x = this.randn.nextValue();
                                    v = 1 + this.c * x;
                                } while (v <= 0);
                                v *= v * v;
                                x2 = x * x;
                                v0 = 1 - 0.331 * x2 * x2;
                                v1 = 0.5 * x2 + this.d * (1 - v + Math.log(v));
                                u = this.randu();
                                if (u < v0 || Math.log(u) < v1) {
                                    break;
                                }
                            }
                            v = 1 / this.beta * this.d * v;
                            if (this.alpha < 1) {
                                v *= Math.pow(this.randu(), 1 / this.alpha);
                            }
                            return this.convertValue(v);
                        }
                            ;
                        /** Handles proper rounding for non-floating-point numbers. */
                        RandGamma.prototype.convertValue = function (value) {
                            if (this.dtype === 'float32') {
                                return value;
                            }
                            return Math.round(value);
                        }
                            ;
                        return RandGamma;
                    }();
                var UniformRandom = /** @class */
                    function () {
                        function UniformRandom(min, max, dtype, seed) {
                            if (min === void 0) {
                                min = 0;
                            }
                            if (max === void 0) {
                                max = 1;
                            }
                            var _this = this;
                            /** Handles proper rounding for non floating point numbers. */
                            this.canReturnFloat = function () {
                                return _this.dtype == null || _this.dtype === 'float32';
                            }
                                ;
                            this.min = min;
                            this.range = max - min;
                            this.dtype = dtype;
                            if (seed == null) {
                                seed = Math.random();
                            }
                            if (typeof seed === 'number') {
                                seed = seed.toString();
                            }
                            if (!this.canReturnFloat() && this.range <= 1) {
                                throw new Error("The difference between ".concat(min, " - ").concat(max, " <= 1 and dtype is not float"));
                            }
                            this.random = seedrandom.alea(seed);
                        }
                        UniformRandom.prototype.convertValue = function (value) {
                            if (this.canReturnFloat()) {
                                return value;
                            }
                            return Math.round(value);
                        }
                            ;
                        UniformRandom.prototype.nextValue = function () {
                            return this.convertValue(this.min + this.range * this.random());
                        }
                            ;
                        return UniformRandom;
                    }();
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Creates a `tf.Tensor` with values sampled from a gamma distribution.
 *
 * ```js
 * tf.randomGamma([2, 2], 1).print();
 * ```
 *
 * @param shape An array of integers defining the output tensor shape.
 * @param alpha The shape parameter of the gamma distribution.
 * @param beta The inverse scale parameter of the gamma distribution. Defaults
 *     to 1.
 * @param dtype The data type of the output. Defaults to float32.
 * @param seed The seed for the random number generator.
 *
 * @doc {heading: 'Tensors', subheading: 'Random'}
 */
                function randomGamma_(shape, alpha, beta, dtype, seed) {
                    if (beta === void 0) {
                        beta = 1;
                    }
                    if (dtype === void 0) {
                        dtype = 'float32';
                    }
                    assertNonNegativeIntegerDimensions(shape);
                    if (beta == null) {
                        beta = 1;
                    }
                    if (dtype == null) {
                        dtype = 'float32';
                    }
                    if (dtype !== 'float32' && dtype !== 'int32') {
                        throw new Error("Unsupported data type ".concat(dtype));
                    }
                    var rgamma = new RandGamma(alpha, beta, dtype, seed);
                    var res = buffer(shape, dtype);
                    for (var i = 0; i < res.values.length; i++) {
                        res.values[i] = rgamma.nextValue();
                    }
                    return res.toTensor();
                }
                var randomGamma = op({
                    randomGamma_: randomGamma_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Creates a `tf.Tensor` with values sampled from a normal distribution.
 *
 * ```js
 * tf.randomNormal([2, 2]).print();
 * ```
 *
 * @param shape An array of integers defining the output tensor shape.
 * @param mean The mean of the normal distribution.
 * @param stdDev The standard deviation of the normal distribution.
 * @param dtype The data type of the output.
 * @param seed The seed for the random number generator.
 *
 * @doc {heading: 'Tensors', subheading: 'Random'}
 */
                function randomNormal_(shape, mean, stdDev, dtype, seed) {
                    if (mean === void 0) {
                        mean = 0;
                    }
                    if (stdDev === void 0) {
                        stdDev = 1;
                    }
                    assertNonNegativeIntegerDimensions(shape);
                    if (dtype != null && dtype === 'bool') {
                        throw new Error("Unsupported data type ".concat(dtype));
                    }
                    var randGauss = new MPRandGauss(mean, stdDev, dtype, false /* truncated */
                        , seed);
                    var res = buffer(shape, dtype);
                    for (var i = 0; i < res.values.length; i++) {
                        res.values[i] = randGauss.nextValue();
                    }
                    return res.toTensor();
                }
                var randomNormal = op({
                    randomNormal_: randomNormal_
                });
                /**
 * @license
 * Copyright 2022 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Creates a `tf.Tensor` with values sampled from a normal distribution.
 *
 * The generated values will have mean 0 and standard deviation 1.
 *
 * ```js
 * tf.randomStandardNormal([2, 2]).print();
 * ```
 *
 * @param shape An array of integers defining the output tensor shape.
 * @param dtype The data type of the output.
 * @param seed The seed for the random number generator.
 *
 * @doc {heading: 'Tensors', subheading: 'Random'}
 */
                function randomStandardNormal_(shape, dtype, seed) {
                    if (dtype != null && dtype === 'bool') {
                        throw new Error("Unsupported data type ".concat(dtype));
                    }
                    return randomNormal(shape, 0, 1, dtype, seed);
                }
                var randomStandardNormal = op({
                    randomStandardNormal_: randomStandardNormal_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Creates a `tf.Tensor` with values sampled from a uniform distribution.
 *
 * The generated values follow a uniform distribution in the range [minval,
 * maxval). The lower bound minval is included in the range, while the upper
 * bound maxval is excluded.
 *
 * ```js
 * tf.randomUniform([2, 2]).print();
 * ```
 *
 * @param shape An array of integers defining the output tensor shape.
 * @param minval The lower bound on the range of random values to generate.
 *   Defaults to 0.
 * @param maxval The upper bound on the range of random values to generate.
 *   Defaults to 1.
 * @param dtype The data type of the output tensor. Defaults to 'float32'.
 *
 * @doc {heading: 'Tensors', subheading: 'Random'}
 */
                function randomUniform_(shape, minval, maxval, dtype, seed) {
                    if (minval === void 0) {
                        minval = 0;
                    }
                    if (maxval === void 0) {
                        maxval = 1;
                    }
                    if (dtype === void 0) {
                        dtype = 'float32';
                    }
                    assertNonNegativeIntegerDimensions(shape);
                    var res = buffer(shape, dtype);
                    var random = new UniformRandom(minval, maxval, null, seed);
                    for (var i = 0; i < res.values.length; i++) {
                        res.values[i] = random.nextValue();
                    }
                    return res.toTensor();
                }
                var randomUniform = op({
                    randomUniform_: randomUniform_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Creates a new `tf.Tensor1D` filled with the numbers in the range provided.
 *
 * The tensor is a half-open interval meaning it includes start, but
 * excludes stop. Decrementing ranges and negative step values are also
 * supported.
 *
 *
 * ```js
 * tf.range(0, 9, 2).print();
 * ```
 *
 * @param start An integer start value
 * @param stop An integer stop value
 * @param step An integer increment (will default to 1 or -1)
 * @param dtype The data type of the output tensor. Defaults to 'float32'.
 *
 * @doc {heading: 'Tensors', subheading: 'Creation'}
 */
                function range(start, stop, step, dtype) {
                    if (step === void 0) {
                        step = 1;
                    }
                    if (dtype === void 0) {
                        dtype = 'float32';
                    }
                    if (step === 0) {
                        throw new Error('Cannot have a step of zero');
                    }
                    var attrs = {
                        start: start,
                        stop: stop,
                        step: step,
                        dtype: dtype
                    };
                    return ENGINE.runKernel(Range, {}/* inputs */
                        , attrs);
                }
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes reciprocal of x element-wise: `1 / x`
 *
 * ```js
 * const x = tf.tensor1d([0, 1, 2]);
 *
 * x.reciprocal().print();  // or tf.reciprocal(x)
 * ```
 * @param x The input tensor.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function reciprocal_(x) {
                    var $x = convertToTensor(x, 'x', 'reciprocal');
                    var inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(Reciprocal, inputs);
                }
                var reciprocal = op({
                    reciprocal_: reciprocal_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes rectified linear element-wise: `max(x, 0)`.
 *
 * ```js
 * const x = tf.tensor1d([-1, 2, -3, 4]);
 *
 * x.relu().print();  // or tf.relu(x)
 * ```
 * @param x The input tensor. If the dtype is `bool`, the output dtype will be
 *     `int32`.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function relu_(x) {
                    var $x = convertToTensor(x, 'x', 'relu');
                    var inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(Relu, inputs);
                }
                var relu = op({
                    relu_: relu_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes rectified linear 6 element-wise: `min(max(x, 0), 6)`.
 *
 * ```js
 * const x = tf.tensor1d([-1, 2, -3, 8]);
 *
 * x.relu6().print();  // or tf.relu6(x)
 * ```
 * @param x The input tensor. If the dtype is `bool`, the output dtype will be
 *     `int32`.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function relu6_(x) {
                    var $x = convertToTensor(x, 'x', 'relu6');
                    var inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(Relu6, inputs);
                }
                var relu6 = op({
                    relu6_: relu6_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Reverses a `tf.Tensor` along a specified axis.
 *
 * Also available are stricter rank-specific methods that assert that `x` is
 * of the given rank:
 *   - `tf.reverse1d`
 *   - `tf.reverse2d`
 *   - `tf.reverse3d`
 *   - `tf.reverse4d`
 *
 * Except `tf.reverse1d` (which does not have axis param), all methods have
 * same signature as this method.
 *
 * ```js
 * const x = tf.tensor1d([1, 2, 3, 4]);
 *
 * x.reverse().print();
 * ```
 *
 * ```js
 * const x = tf.tensor2d([1, 2, 3, 4], [2, 2]);
 *
 * const axis = 1;
 * x.reverse(axis).print();
 * ```
 * @param x The input tensor to be reversed.
 * @param axis The set of dimensions to reverse. Must be in the
 *     range [-rank(x), rank(x)). Defaults to all axes.
 *
 * @doc {heading: 'Tensors', subheading: 'Slicing and Joining'}
 */
                function reverse_(x, axis) {
                    var $x = convertToTensor(x, 'x', 'reverse');
                    var inputs = {
                        x: $x
                    };
                    var attrs = {
                        dims: axis
                    };
                    return ENGINE.runKernel(Reverse, inputs, attrs);
                }
                var reverse = op({
                    reverse_: reverse_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Reverses a `tf.Tensor1D`.
 *
 * @param x The input tensor.
 */
                function reverse1d_(x) {
                    var $x = convertToTensor(x, 'x', 'reverse');
                    assert($x.rank === 1, function () {
                        return "Error in reverse1D: x must be rank 1 but got rank ".concat($x.rank, ".");
                    });
                    return reverse($x, 0);
                }
                var reverse1d = op({
                    reverse1d_: reverse1d_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Reverses a `tf.Tensor2D` along a specified axis.
 *
 * @param x The input tensor.
 * @param axis The set of dimensions to reverse. Must be in the
 *     range [-rank(x), rank(x)). Defaults to all axes.
 */
                function reverse2d_(x, axis) {
                    var $x = convertToTensor(x, 'x', 'reverse');
                    assert($x.rank === 2, function () {
                        return "Error in reverse2D: x must be rank 2 but got rank ".concat($x.rank, ".");
                    });
                    return reverse($x, axis);
                }
                var reverse2d = op({
                    reverse2d_: reverse2d_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Reverses a `tf.Tensor3D` along a specified axis.
 *
 * @param x The input tensor.
 * @param axis The set of dimensions to reverse. Must be in the
 *     range [-rank(x), rank(x)). Defaults to all axes.
 */
                function reverse3d_(x, axis) {
                    var $x = convertToTensor(x, 'x', 'reverse');
                    assert($x.rank === 3, function () {
                        return "Error in reverse3D: x must be rank 3 but got rank ".concat($x.rank, ".");
                    });
                    return reverse($x, axis);
                }
                var reverse3d = op({
                    reverse3d_: reverse3d_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Reverses a `tf.Tensor4D` along a specified axis.
 *
 * @param x The input tensor.
 * @param axis The set of dimensions to reverse. Must be in the
 *     range [-rank(x), rank(x)). Defaults to all axes.
 */
                function reverse4d_(x, axis) {
                    var $x = convertToTensor(x, 'x', 'reverse');
                    assert($x.rank === 4, function () {
                        return "Error in reverse4D: x must be rank 4 but got rank ".concat($x.rank, ".");
                    });
                    return reverse($x, axis);
                }
                var reverse4d = op({
                    reverse4d_: reverse4d_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes round of input `tf.Tensor` element-wise: `round(x)`.
 * It implements banker's rounding.
 *
 * ```js
 * const x = tf.tensor1d([.6, 1.1, -3.3]);
 *
 * x.round().print();  // or tf.round(x)
 * ```
 * @param x The input tensor.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function round_(x) {
                    var $x = convertToTensor(x, 'x', 'round');
                    var inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(Round, inputs);
                }
                var round = op({
                    round_: round_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes reciprocal of square root of the input `tf.Tensor` element-wise:
 * `y = 1 / sqrt(x)`
 *
 * ```js
 * const x = tf.tensor1d([1, 2, 4, -1]);
 *
 * x.rsqrt().print();  // or tf.rsqrt(x)
 * ```
 * @param x The input tensor.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function rsqrt_(x) {
                    var $x = convertToTensor(x, 'x', 'rsqrt', 'float32');
                    var inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(Rsqrt, inputs);
                }
                var rsqrt = op({
                    rsqrt_: rsqrt_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes scaled exponential linear element-wise.
 *
 * `x < 0 ? scale * alpha * (exp(x) - 1) : scale * x`
 *
 * ```js
 * const x = tf.tensor1d([-1, 2, -3, 4]);
 *
 * x.selu().print();  // or tf.selu(x)
 * ```
 * @param x The input tensor.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function selu_(x) {
                    var $x = convertToTensor(x, 'x', 'selu');
                    var inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(Selu, inputs);
                }
                var selu = op({
                    selu_: selu_
                });
                /**
 * 2-D convolution with separable filters.
 *
 * Performs a depthwise convolution that acts separately on channels followed
 * by a pointwise convolution that mixes channels. Note that this is
 * separability between dimensions [1, 2] and 3, not spatial separability
 * between dimensions 1 and 2.
 *
 * See
 * [https://www.tensorflow.org/api_docs/python/tf/nn/separable_conv2d](
 *     https://www.tensorflow.org/api_docs/python/tf/nn/separable_conv2d)
 * for more details.
 *
 * @param x The input tensor, of rank 4 or rank 3, of shape
 *     `[batch, height, width, inChannels]`. If rank 3, batch of 1 is
 * assumed.
 * @param depthwiseFilter The depthwise filter tensor, rank 4, of shape
 *     `[filterHeight, filterWidth, inChannels, channelMultiplier]`. This is
 *     the filter used in the first step.
 * @param pointwiseFilter The pointwise filter tensor, rank 4, of shape
 *     `[1, 1, inChannels * channelMultiplier, outChannels]`. This is
 *     the filter used in the second step.
 * @param strides The strides of the convolution: `[strideHeight,
 * strideWidth]`. If strides is a single number, then `strideHeight ==
 * strideWidth`.
 * @param pad The type of padding algorithm.
 *   - `same` and stride 1: output will be of same size as input,
 *       regardless of filter size.
 *   - `valid`: output will be smaller than input if filter is larger
 *       than 1x1.
 *   - For more info, see this guide:
 *     [https://www.tensorflow.org/api_docs/python/tf/nn/convolution](
 *          https://www.tensorflow.org/api_docs/python/tf/nn/convolution)
 * @param dilations The dilation rates: `[dilationHeight, dilationWidth]`
 *     in which we sample input values across the height and width dimensions
 *     in atrous convolution. Defaults to `[1, 1]`. If `rate` is a single
 *     number, then `dilationHeight == dilationWidth`. If it is greater than
 *     1, then all values of `strides` must be 1.
 * @param dataFormat: An optional string from: "NHWC", "NCHW". Defaults to
 *     "NHWC". Specify the data format of the input and output data. With the
 *     default format "NHWC", the data is stored in the order of: [batch,
 *     height, width, channels]. Only "NHWC" is currently supported.
 *
 * @doc {heading: 'Operations', subheading: 'Convolution'}
 */
                function separableConv2d_(x, depthwiseFilter, pointwiseFilter, strides, pad, dilation, dataFormat) {
                    if (dilation === void 0) {
                        dilation = [1, 1];
                    }
                    if (dataFormat === void 0) {
                        dataFormat = 'NHWC';
                    }
                    var $x = convertToTensor(x, 'x', 'separableConv2d');
                    var $depthwiseFilter = convertToTensor(depthwiseFilter, 'depthwiseFilter', 'separableConv2d');
                    var $pointwiseFilter = convertToTensor(pointwiseFilter, 'pointwiseFilter', 'separableConv2d');
                    var x4D = $x;
                    var reshapedTo4D = false;
                    if ($x.rank === 3) {
                        reshapedTo4D = true;
                        x4D = reshape($x, [1, $x.shape[0], $x.shape[1], $x.shape[2]]);
                    }
                    if (dataFormat === 'NCHW') {
                        throw new Error('separableConv2d currently does not support dataFormat NCHW; only ' + 'NHWC is supported');
                    }
                    assert(x4D.rank === 4, function () {
                        return "Error in separableConv2d: input must be rank 4, but got " + "rank ".concat(x4D.rank, ".");
                    });
                    assert($depthwiseFilter.rank === 4, function () {
                        return "Error in separableConv2d: depthwise filter must be rank 4, but " + "got rank ".concat($depthwiseFilter.rank, ".");
                    });
                    assert($pointwiseFilter.rank === 4, function () {
                        return "Error in separableConv2d: pointwise filter must be rank 4, but " + "got rank ".concat($depthwiseFilter.rank, ".");
                    });
                    assert($pointwiseFilter.shape[0] === 1, function () {
                        return "Error in separableConv2d: the first dimension of pointwise filter " + " must be 1, but got ".concat($pointwiseFilter.shape[0], ".");
                    });
                    assert($pointwiseFilter.shape[1] === 1, function () {
                        return "Error in separableConv2d: the second dimension of pointwise " + "filter must be 1, but got ".concat($pointwiseFilter.shape[1], ".");
                    });
                    var inChannels = $depthwiseFilter.shape[2];
                    var channelMultiplier = $depthwiseFilter.shape[3];
                    assert($pointwiseFilter.shape[2] === inChannels * channelMultiplier, function () {
                        return "Error in separableConv2d: the third dimension of pointwise filter " + "must be ".concat(inChannels * channelMultiplier, ", ") + "but got ".concat($pointwiseFilter.shape[2], ".");
                    });
                    var depthwise = depthwiseConv2d$1(x4D, $depthwiseFilter, strides, pad, dataFormat, dilation);
                    var pointwiseStride = 1;
                    var res = conv2d$1(depthwise, $pointwiseFilter, pointwiseStride, 'valid', dataFormat);
                    if (reshapedTo4D) {
                        return reshape(res, [res.shape[1], res.shape[2], res.shape[3]]);
                    }
                    return res;
                }
                var separableConv2d = op({
                    separableConv2d_: separableConv2d_
                });
                /**
 * Computes the difference between two lists of numbers.
 *
 * Given a Tensor `x` and a Tensor `y`, this operation returns a Tensor `out`
 * that represents all values that are in `x` but not in `y`. The returned
 * Tensor `out` is sorted in the same order that the numbers appear in `x`
 * (duplicates are preserved). This operation also returns a Tensor indices that
 * represents the position of each out element in `x`. In other words:
 *
 * `out[i] = x[idx[i]] for i in [0, 1, ..., out.length - 1]`
 *
 * ```js
 * const x = [1, 2, 3, 4, 5, 6];
 * const y = [1, 3, 5];
 *
 * const [out, indices] = await tf.setdiff1dAsync(x, y);
 * out.print(); // [2, 4, 6]
 * indices.print(); // [1, 3, 5]
 * ```
 *
 * @param x 1-D Tensor. Values to keep.
 * @param y 1-D Tensor. Must have the same type as x. Values to exclude in the
 *     output.
 * @returns Promise of Tensor tuple [out, indices].
 *  out: Tensor with the same type as x.
 *  indices: A Tensor of type int32.
 *
 * @doc {heading: 'Tensors', subheading: 'Transformations'}
 */
                function setdiff1dAsync_(x, y) {
                    return __awaiter(this, void 0, void 0, function () {
                        var $x, $y, xVals, yVals, ySet, outputSize, i, buffer, indices, i, p;
                        return __generator(this, function (_a) {
                            switch (_a.label) {
                                case 0:
                                    $x = convertToTensor(x, 'x', 'setdiff1d');
                                    $y = convertToTensor(y, 'y', 'setdiff1d');
                                    assert($x.dtype === $y.dtype, function () {
                                        return "x and y should have the same dtype, but got x (".concat($x.dtype, ") and y (").concat($y.dtype, ").");
                                    });
                                    assert($x.rank === 1, function () {
                                        return "x should be 1D tensor, but got x (".concat($x.shape, ").");
                                    });
                                    assert($y.rank === 1, function () {
                                        return "y should be 1D tensor, but got y (".concat($y.shape, ").");
                                    });
                                    return [4 /*yield*/
                                        , $x.data()];
                                case 1:
                                    xVals = _a.sent();
                                    return [4 /*yield*/
                                        , $y.data()];
                                case 2:
                                    yVals = _a.sent();
                                    ySet = new Set(yVals);
                                    outputSize = 0;
                                    for (i = 0; i < xVals.length; i++) {
                                        if (!ySet.has(xVals[i])) {
                                            outputSize++;
                                        }
                                    }
                                    buffer = new TensorBuffer([outputSize], $x.dtype);
                                    indices = new TensorBuffer([outputSize], 'int32');
                                    for (i = 0,
                                        p = 0; i < xVals.length; i++) {
                                        if (!ySet.has(xVals[i])) {
                                            buffer.values[p] = xVals[i];
                                            indices.values[p] = i;
                                            p++;
                                        }
                                    }
                                    return [2 /*return*/
                                        , [buffer.toTensor(), indices.toTensor()]];
                            }
                        });
                    });
                }
                var setdiff1dAsync = setdiff1dAsync_;
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Returns an element-wise indication of the sign of a number.
 *
 * ```js
 * const x = tf.tensor1d([.6, 1.1, -3.3, NaN, 0]);
 *
 * x.sign().print();  // or tf.sign(x)
 * ```
 * @param x The input Tensor.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function sign_(x) {
                    var $x = convertToTensor(x, 'x', 'sign');
                    var inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(Sign, inputs);
                }
                var sign = op({
                    sign_: sign_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes sin of the input Tensor element-wise: `sin(x)`
 *
 * ```js
 * const x = tf.tensor1d([0, Math.PI / 2, Math.PI * 3 / 4]);
 *
 * x.sin().print();  // or tf.sin(x)
 * ```
 * @param x The input tensor.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function sin_(x) {
                    var $x = convertToTensor(x, 'x', 'sin', 'float32');
                    var inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(Sin, inputs);
                }
                var sin = op({
                    sin_: sin_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes hyperbolic sin of the input `tf.Tensor` element-wise: `sinh(x)`
 *
 * ```js
 * const x = tf.tensor1d([0, 1, -1, .7]);
 *
 * x.sinh().print();  // or tf.sinh(x)
 * ```
 * @param x The input tensor.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function sinh_(x) {
                    var $x = convertToTensor(x, 'x', 'sinh');
                    var inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(Sinh, inputs);
                }
                var sinh = op({
                    sinh_: sinh_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Extracts a 1D slice from 1D array starting at coordinates `begin` and is
 * of length `size`. See `slice` for details.
 */
                function slice1d_(x, begin, size) {
                    var $x = convertToTensor(x, 'x', 'slice1d');
                    assert($x.rank === 1, function () {
                        return "slice1d expects a rank-1 tensor, but got a rank-".concat($x.rank, " tensor");
                    });
                    return slice($x, [begin], [size]);
                }
                var slice1d = op({
                    slice1d_: slice1d_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Extracts a 2D slice from a 2D array starting at coordinates `begin` and
 * is of size `size`. See `slice` for details.
 */
                function slice2d_(x, begin, size) {
                    var $x = convertToTensor(x, 'x', 'slice2d');
                    assert($x.rank === 2, function () {
                        return "slice2d expects a rank-2 tensor, but got a rank-".concat($x.rank, " tensor");
                    });
                    return slice($x, begin, size);
                }
                var slice2d = op({
                    slice2d_: slice2d_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Extracts a 3D slice from a 3D array starting at coordinates `begin` and
 * is of size `size`. See `slice` for details.
 */
                function slice3d_(x, begin, size) {
                    var $x = convertToTensor(x, 'x', 'slice3d');
                    assert($x.rank === 3, function () {
                        return "slice3d expects a rank-3 tensor, but got a rank-".concat($x.rank, " tensor");
                    });
                    return slice($x, begin, size);
                }
                var slice3d = op({
                    slice3d_: slice3d_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Extracts a 4D slice from a 4D array starting at coordinates `begin` and
 * is of size `size`. See `slice` for details.
 */
                function slice4d_(x, begin, size) {
                    var $x = convertToTensor(x, 'x', 'slice4d');
                    assert($x.rank === 4, function () {
                        return "slice4d expects a rank-4 tensor, but got a rank-".concat($x.rank, " tensor");
                    });
                    return slice($x, begin, size);
                }
                var slice4d = op({
                    slice4d_: slice4d_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the softmax normalized vector given the logits.
 *
 * ```js
 * const a = tf.tensor1d([1, 2, 3]);
 *
 * a.softmax().print();  // or tf.softmax(a)
 * ```
 *
 * ```js
 * const a = tf.tensor2d([2, 4, 6, 1, 2, 3], [2, 3]);
 *
 * a.softmax().print();  // or tf.softmax(a)
 * ```
 *
 * @param logits The logits array.
 * @param dim The dimension softmax would be performed on. Defaults to `-1`
 *     which indicates the last dimension.
 *
 * @doc {heading: 'Operations', subheading: 'Normalization'}
 */
                function softmax_(logits, dim) {
                    if (dim === void 0) {
                        dim = -1;
                    }
                    var $logits = convertToTensor(logits, 'logits', 'softmax', 'float32');
                    if (dim === -1) {
                        dim = $logits.rank - 1;
                    }
                    if (dim !== $logits.rank - 1) {
                        throw Error('Softmax along a non-last dimension is not yet supported. ' + "Logits was rank ".concat($logits.rank, " and dim was ").concat(dim));
                    }
                    var inputs = {
                        logits: $logits
                    };
                    var attrs = {
                        dim: dim
                    };
                    return ENGINE.runKernel(Softmax, inputs, attrs);
                }
                var softmax = op({
                    softmax_: softmax_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Fast Fourier transform.
 *
 * Computes the 1-dimensional discrete Fourier transform over the inner-most
 * dimension of input.
 *
 * ```js
 * const real = tf.tensor1d([1, 2, 3]);
 * const imag = tf.tensor1d([1, 2, 3]);
 * const x = tf.complex(real, imag);
 *
 * x.fft().print();  // tf.spectral.fft(x).print();
 * ```
 * @param input The complex input to compute an fft over.
 *
 * @doc {heading: 'Operations', subheading: 'Spectral', namespace: 'spectral'}
 */
                function fft_(input) {
                    assert(input.dtype === 'complex64', function () {
                        return "The dtype for tf.spectral.fft() must be complex64 " + "but got ".concat(input.dtype, ".");
                    });
                    var inputs = {
                        input: input
                    };
                    return ENGINE.runKernel(FFT, inputs);
                }
                var fft = op({
                    fft_: fft_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Inverse fast Fourier transform.
 *
 * Computes the inverse 1-dimensional discrete Fourier transform over the
 * inner-most dimension of input.
 *
 * ```js
 * const real = tf.tensor1d([1, 2, 3]);
 * const imag = tf.tensor1d([1, 2, 3]);
 * const x = tf.complex(real, imag);
 *
 * x.ifft().print();  // tf.spectral.ifft(x).print();
 * ```
 * @param input The complex input to compute an ifft over.
 *
 * @doc {heading: 'Operations', subheading: 'Spectral', namespace: 'spectral'}
 */
                function ifft_(input) {
                    assert(input.dtype === 'complex64', function () {
                        return "The dtype for tf.spectral.ifft() must be complex64 " + "but got ".concat(input.dtype, ".");
                    });
                    var inputs = {
                        input: input
                    };
                    return ENGINE.runKernel(IFFT, inputs);
                }
                var ifft = op({
                    ifft_: ifft_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Inversed real value input fast Fourier transform.
 *
 * Computes the 1-dimensional inversed discrete Fourier transform over the
 * inner-most dimension of the real input.
 *
 * ```js
 * const real = tf.tensor1d([1, 2, 3]);
 * const imag = tf.tensor1d([0, 0, 0]);
 * const x = tf.complex(real, imag);
 *
 * x.irfft().print();
 * ```
 * @param input The real value input to compute an irfft over.
 *
 * @doc {heading: 'Operations', subheading: 'Spectral', namespace: 'spectral'}
 */
                function irfft_(input) {
                    var innerDimensionSize = input.shape[input.shape.length - 1];
                    var batch = input.size / innerDimensionSize;
                    var ret;
                    if (innerDimensionSize <= 2) {
                        var complexInput = reshape(input, [batch, innerDimensionSize]);
                        ret = ifft(complexInput);
                    } else {
                        // The length of unique components of the DFT of a real-valued signal
                        // is 2 * (input_len - 1)
                        var outputShape = [batch, 2 * (innerDimensionSize - 1)];
                        var realInput = reshape(real(input), [batch, innerDimensionSize]);
                        var imagInput = reshape(imag(input), [batch, innerDimensionSize]);
                        var realConjugate = reverse(slice(realInput, [0, 1], [batch, innerDimensionSize - 2]), 1);
                        var imagConjugate = mul(reverse(slice(imagInput, [0, 1], [batch, innerDimensionSize - 2]), 1), scalar(-1));
                        var r = concat([realInput, realConjugate], 1);
                        var i = concat([imagInput, imagConjugate], 1);
                        var complexInput = reshape(complex(r, i), [outputShape[0], outputShape[1]]);
                        ret = ifft(complexInput);
                    }
                    ret = real(ret);
                    // reshape the result if the input is 3D tensor.
                    if (input.rank === 3 && input.shape[0] !== 0) {
                        var temp = ret;
                        var batch_1 = input.shape[0];
                        ret = reshape(ret, [batch_1, ret.shape[0] / batch_1, ret.shape[1]]);
                        temp.dispose();
                    }
                    return ret;
                }
                var irfft = op({
                    irfft_: irfft_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Splits a `tf.Tensor` into sub tensors.
 *
 * If `numOrSizeSplits` is a number, splits `x` along dimension `axis`
 * into `numOrSizeSplits` smaller tensors.
 * Requires that `numOrSizeSplits` evenly divides `x.shape[axis]`.
 *
 * If `numOrSizeSplits` is a number array, splits `x` into
 * `numOrSizeSplits.length` pieces. The shape of the `i`-th piece has the
 * same size as `x` except along dimension `axis` where the size is
 * `numOrSizeSplits[i]`.
 *
 * ```js
 * const x = tf.tensor2d([1, 2, 3, 4, 5, 6, 7, 8], [2, 4]);
 * const [a, b] = tf.split(x, 2, 1);
 * a.print();
 * b.print();
 *
 * const [c, d, e] = tf.split(x, [1, 2, 1], 1);
 * c.print();
 * d.print();
 * e.print();
 * ```
 *
 * @param x The input tensor to split.
 * @param numOrSizeSplits Either an integer indicating the number of
 * splits along the axis or an array of integers containing the sizes of
 * each output tensor along the axis. If a number then it must evenly divide
 * `x.shape[axis]`; otherwise the sum of sizes must match `x.shape[axis]`.
 * Can contain one -1 indicating that dimension is to be inferred.
 * @param axis The dimension along which to split. Defaults to 0 (the first
 * dim).
 *
 * @doc {heading: 'Tensors', subheading: 'Slicing and Joining'}
 */
                function split_(x, numOrSizeSplits, axis) {
                    if (axis === void 0) {
                        axis = 0;
                    }
                    var $x = convertToTensor(x, 'x', 'split');
                    var inputs = {
                        x: $x
                    };
                    var attr = {
                        numOrSizeSplits: numOrSizeSplits,
                        axis: axis
                    };
                    return ENGINE.runKernel(SplitV, inputs, attr);
                }
                var split = op({
                    split_: split_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Real value input fast Fourier transform.
 *
 * Computes the 1-dimensional discrete Fourier transform over the
 * inner-most dimension of the real input.
 *
 * ```js
 * const real = tf.tensor1d([1, 2, 3]);
 *
 * real.rfft().print();
 * ```
 * @param input The real value input to compute an rfft over.
 *
 * @doc {heading: 'Operations', subheading: 'Spectral', namespace: 'spectral'}
 */
                function rfft_(input, fftLength) {
                    assert(input.dtype === 'float32', function () {
                        return "The dtype for rfft() must be real value but got ".concat(input.dtype);
                    });
                    var innerDimensionSize = input.shape[input.shape.length - 1];
                    var batch = input.size / innerDimensionSize;
                    var adjustedInput;
                    if (fftLength != null && fftLength < innerDimensionSize) {
                        // Need to crop
                        var begin = input.shape.map(function (v) {
                            return 0;
                        });
                        var size = input.shape.map(function (v) {
                            return v;
                        });
                        size[input.shape.length - 1] = fftLength;
                        adjustedInput = slice(input, begin, size);
                        innerDimensionSize = fftLength;
                    } else if (fftLength != null && fftLength > innerDimensionSize) {
                        // Need to pad with zeros
                        var zerosShape = input.shape.map(function (v) {
                            return v;
                        });
                        zerosShape[input.shape.length - 1] = fftLength - innerDimensionSize;
                        adjustedInput = concat([input, zeros(zerosShape)], input.shape.length - 1);
                        innerDimensionSize = fftLength;
                    } else {
                        adjustedInput = input;
                    }
                    // Complement the input with zero imaginary numbers.
                    var zerosInput = zerosLike(adjustedInput);
                    var complexInput = reshape(complex(adjustedInput, zerosInput), [batch, innerDimensionSize]);
                    var ret = fft(complexInput);
                    // Exclude complex conjugations. These conjugations are put symmetrically.
                    var half = Math.floor(innerDimensionSize / 2) + 1;
                    var realValues = real(ret);
                    var imagValues = imag(ret);
                    var realComplexConjugate = split(realValues, [half, innerDimensionSize - half], realValues.shape.length - 1);
                    var imagComplexConjugate = split(imagValues, [half, innerDimensionSize - half], imagValues.shape.length - 1);
                    var outputShape = adjustedInput.shape.slice();
                    outputShape[adjustedInput.shape.length - 1] = half;
                    return reshape(complex(realComplexConjugate[0], imagComplexConjugate[0]), outputShape);
                }
                var rfft = op({
                    rfft_: rfft_
                });
                /**
 * Returns (a - b) * (a - b) element-wise.
 * Supports broadcasting.
 *
 * ```js
 * const a = tf.tensor1d([1, 4, 3, 16]);
 * const b = tf.tensor1d([1, 2, 9, 4]);
 *
 * a.squaredDifference(b).print();  // or tf.squaredDifference(a, b)
 * ```
 *
 * ```js
 * // Broadcast squared difference  a with b.
 * const a = tf.tensor1d([2, 4, 6, 8]);
 * const b = tf.scalar(5);
 *
 * a.squaredDifference(b).print();  // or tf.squaredDifference(a, b)
 * ```
 *
 * @param a The first tensor.
 * @param b The second tensor. Must have the same type as `a`.
 *
 * @doc {heading: 'Operations', subheading: 'Arithmetic'}
 */
                function squaredDifference_(a, b) {
                    var _a;
                    var $a = convertToTensor(a, 'a', 'squaredDifference');
                    var $b = convertToTensor(b, 'b', 'squaredDifference');
                    _a = __read(makeTypesMatch($a, $b), 2),
                        $a = _a[0],
                        $b = _a[1];
                    assertAndGetBroadcastShape($a.shape, $b.shape);
                    var inputs = {
                        a: $a,
                        b: $b
                    };
                    var attrs = {};
                    return ENGINE.runKernel(SquaredDifference, inputs, attrs);
                }
                var squaredDifference = op({
                    squaredDifference_: squaredDifference_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Removes dimensions of size 1 from the shape of a `tf.Tensor`.
 *
 * ```js
 * const x = tf.tensor([1, 2, 3, 4], [1, 1, 4]);
 * x.squeeze().print();
 * ```
 *
 * @param x The input tensor to be squeezed.
 * @param axis An optional list of numbers. If specified, only
 *     squeezes the dimensions listed. The dimension index starts at 0. It
 * is an error to squeeze a dimension that is not 1.
 *
 * @doc {heading: 'Tensors', subheading: 'Transformations'}
 */
                function squeeze_(x, axis) {
                    var $x = convertToTensor(x, 'x', 'squeeze', 'string_or_numeric');
                    return reshape($x, squeezeShape($x.shape, axis).newShape);
                }
                var squeeze = op({
                    squeeze_: squeeze_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Stacks a list of rank-`R` `tf.Tensor`s into one rank-`(R+1)` `tf.Tensor`.
 *
 * ```js
 * const a = tf.tensor1d([1, 2]);
 * const b = tf.tensor1d([3, 4]);
 * const c = tf.tensor1d([5, 6]);
 * tf.stack([a, b, c]).print();
 * ```
 *
 * @param tensors A list of tensor objects with the same shape and dtype.
 * @param axis The axis to stack along. Defaults to 0 (the first dim).
 *
 * @doc {heading: 'Tensors', subheading: 'Slicing and Joining'}
 */
                function stack_(tensors, axis) {
                    if (axis === void 0) {
                        axis = 0;
                    }
                    var $tensors = convertToTensorArray(tensors, 'tensors', 'stack', 'string_or_numeric');
                    assert($tensors.length >= 1, function () {
                        return 'Pass at least one tensor to tf.stack';
                    });
                    if ($tensors.length > 0) {
                        assert(axis <= $tensors[0].rank, function () {
                            return 'Axis must be <= rank of the tensor';
                        });
                    }
                    var inputs = $tensors;
                    var attrs = {
                        axis: axis
                    };
                    return ENGINE.runKernel(Pack, inputs, attrs);
                }
                var stack = op({
                    stack_: stack_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes step of the input `tf.Tensor` element-wise: `x > 0 ? 1 : alpha * x`
 *
 * ```js
 * const x = tf.tensor1d([0, 2, -1, -3]);
 *
 * x.step(.5).print();  // or tf.step(x, .5)
 * ```
 * @param x The input tensor.
 * @param alpha The gradient when input is negative.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function step_(x, alpha) {
                    if (alpha === void 0) {
                        alpha = 0.0;
                    }
                    var $x = convertToTensor(x, 'x', 'step');
                    var inputs = {
                        x: $x
                    };
                    var attrs = {
                        alpha: alpha
                    };
                    return ENGINE.runKernel(Step, inputs, attrs);
                }
                var step = op({
                    step_: step_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Extracts a strided slice of a tensor.
 *
 * Roughly speaking, this op extracts a slice of size (end-begin)/stride from
 * the given input tensor (x). Starting at the location specified by begin the
 * slice continues by adding stride to the index until all dimensions are not
 * less than end. Note that a stride can be negative, which causes a reverse
 * slice.
 *
 * ```js
 * const t = tf.tensor3d([1, 1, 1 ,2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6],
 *    [3, 2, 3]);
 * t.stridedSlice([1, 0, 0], [2, 1, 3], [1, 1, 1]).print()  // [[[3, 3, 3]]]
 * t.stridedSlice([1, 0, 0], [2, 2, 3], [1, 1, 1]).print()  // [[[3, 3, 3],
 *                                                     // [4, 4, 4]]]
 * t.stridedSlice([1, -1, 0], [2, -3, 3], [1, -1, 1]).print() // [[[4, 4, 4],
 *                                                     // [3, 3, 3]]]
 * ```
 *
 * @param x The tensor to stride slice.
 * @param begin The coordinates to start the slice from.
 * @param end: The coordinates to end the slice at.
 * @param strides: The size of the slice.
 * @param beginMask: If the ith bit of beginMask is set, begin[i] is ignored
 *      and the fullest possible range in that dimension is used instead.
 * @param endMask: If the ith bit of endMask is set, end[i] is ignored
 *      and the fullest possible range in that dimension is used instead.
 * @param shrinkAxisMask: a bitmask where bit i implies that
 * the ith specification should shrink the dimensionality. begin and end must
 * imply a slice of size 1 in the dimension.
 *
 * @doc {heading: 'Operations', subheading: 'Slicing and Joining'}
 */
                function stridedSlice_(x, begin, end, strides, beginMask, endMask, ellipsisMask, newAxisMask, shrinkAxisMask) {
                    if (beginMask === void 0) {
                        beginMask = 0;
                    }
                    if (endMask === void 0) {
                        endMask = 0;
                    }
                    if (ellipsisMask === void 0) {
                        ellipsisMask = 0;
                    }
                    if (newAxisMask === void 0) {
                        newAxisMask = 0;
                    }
                    if (shrinkAxisMask === void 0) {
                        shrinkAxisMask = 0;
                    }
                    var $x = convertToTensor(x, 'x', 'stridedSlice', 'string_or_numeric');
                    var inputs = {
                        x: $x
                    };
                    var attrs = {
                        begin: begin,
                        end: end,
                        strides: strides,
                        beginMask: beginMask,
                        endMask: endMask,
                        ellipsisMask: ellipsisMask,
                        newAxisMask: newAxisMask,
                        shrinkAxisMask: shrinkAxisMask
                    };
                    return ENGINE.runKernel(StridedSlice, inputs, attrs);
                }
                var stridedSlice = op({
                    stridedSlice_: stridedSlice_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes tan of the input `tf.Tensor` element-wise, `tan(x)`
 *
 * ```js
 * const x = tf.tensor1d([0, Math.PI / 2, Math.PI * 3 / 4]);
 *
 * x.tan().print();  // or tf.tan(x)
 * ```
 * @param x The input tensor.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function tan_(x) {
                    var $x = convertToTensor(x, 'x', 'tan', 'float32');
                    var inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(Tan, inputs);
                }
                var tan = op({
                    tan_: tan_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Creates rank-1 `tf.Tensor` with the provided values, shape and dtype.
 *
 * The same functionality can be achieved with `tf.tensor`, but in general
 * we recommend using `tf.tensor1d` as it makes the code more readable.
 *
 * ```js
 * tf.tensor1d([1, 2, 3]).print();
 * ```
 *
 * @param values The values of the tensor. Can be array of numbers,
 *     or a `TypedArray`.
 * @param dtype The data type.
 *
 * @doc {heading: 'Tensors', subheading: 'Creation'}
 */
                function tensor1d(values, dtype) {
                    assertNonNull(values);
                    var inferredShape = inferShape(values, dtype);
                    if (inferredShape.length !== 1) {
                        throw new Error('tensor1d() requires values to be a flat/TypedArray');
                    }
                    var shape = null;
                    return makeTensor(values, shape, inferredShape, dtype);
                }
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Creates rank-2 `tf.Tensor` with the provided values, shape and dtype.
 *
 * The same functionality can be achieved with `tf.tensor`, but in general
 * we recommend using `tf.tensor2d` as it makes the code more readable.
 *
 *  ```js
 * // Pass a nested array.
 * tf.tensor2d([[1, 2], [3, 4]]).print();
 * ```
 * ```js
 * // Pass a flat array and specify a shape.
 * tf.tensor2d([1, 2, 3, 4], [2, 2]).print();
 * ```
 *
 * @param values The values of the tensor. Can be nested array of numbers,
 *     or a flat array, or a `TypedArray`.
 * @param shape The shape of the tensor. If not provided, it is inferred from
 *     `values`.
 * @param dtype The data type.
 *
 * @doc {heading: 'Tensors', subheading: 'Creation'}
 */
                function tensor2d(values, shape, dtype) {
                    assertNonNull(values);
                    if (shape != null && shape.length !== 2) {
                        throw new Error('tensor2d() requires shape to have two numbers');
                    }
                    var inferredShape = inferShape(values, dtype);
                    if (inferredShape.length !== 2 && inferredShape.length !== 1) {
                        throw new Error('tensor2d() requires values to be number[][] or flat/TypedArray');
                    }
                    if (inferredShape.length === 1 && shape == null) {
                        throw new Error('tensor2d() requires shape to be provided when `values` ' + 'are a flat/TypedArray');
                    }
                    return makeTensor(values, shape, inferredShape, dtype);
                }
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Creates rank-4 `tf.Tensor` with the provided values, shape and dtype.
 *
 * The same functionality can be achieved with `tf.tensor`, but in general
 * we recommend using `tf.tensor4d` as it makes the code more readable.
 *
 *  ```js
 * // Pass a nested array.
 * tf.tensor4d([[[[1], [2]], [[3], [4]]]]).print();
 * ```
 * ```js
 * // Pass a flat array and specify a shape.
 * tf.tensor4d([1, 2, 3, 4], [1, 2, 2, 1]).print();
 * ```
 *
 * @param values The values of the tensor. Can be nested array of numbers,
 *     or a flat array, or a `TypedArray`.
 * @param shape The shape of the tensor. Optional. If not provided,
 *   it is inferred from `values`.
 * @param dtype The data type.
 *
 * @doc {heading: 'Tensors', subheading: 'Creation'}
 */
                function tensor4d(values, shape, dtype) {
                    assertNonNull(values);
                    if (shape != null && shape.length !== 4) {
                        throw new Error('tensor4d() requires shape to have four numbers');
                    }
                    var inferredShape = inferShape(values, dtype);
                    if (inferredShape.length !== 4 && inferredShape.length !== 1) {
                        throw new Error('tensor4d() requires values to be number[][][][] or flat/TypedArray');
                    }
                    if (inferredShape.length === 1 && shape == null) {
                        throw new Error('tensor4d() requires shape to be provided when `values` ' + 'are a flat array');
                    }
                    return makeTensor(values, shape, inferredShape, dtype);
                }
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Creates rank-5 `tf.Tensor` with the provided values, shape and dtype.
 *
 * The same functionality can be achieved with `tf.tensor`, but in general
 * we recommend using `tf.tensor5d` as it makes the code more readable.
 *
 *  ```js
 * // Pass a nested array.
 * tf.tensor5d([[[[[1],[2]],[[3],[4]]],[[[5],[6]],[[7],[8]]]]]).print();
 * ```
 * ```js
 * // Pass a flat array and specify a shape.
 * tf.tensor5d([1, 2, 3, 4, 5, 6, 7, 8], [1, 2, 2, 2, 1]).print();
 * ```
 *
 * @param values The values of the tensor. Can be nested array of numbers,
 *     or a flat array, or a `TypedArray`.
 * @param shape The shape of the tensor. Optional. If not provided,
 *   it is inferred from `values`.
 * @param dtype The data type.
 *
 * @doc {heading: 'Tensors', subheading: 'Creation'}
 */
                function tensor5d(values, shape, dtype) {
                    assertNonNull(values);
                    if (shape != null && shape.length !== 5) {
                        throw new Error('tensor5d() requires shape to have five numbers');
                    }
                    var inferredShape = inferShape(values, dtype);
                    if (inferredShape.length !== 5 && inferredShape.length !== 1) {
                        throw new Error('tensor5d() requires values to be ' + 'number[][][][][] or flat/TypedArray');
                    }
                    if (inferredShape.length === 1 && shape == null) {
                        throw new Error('tensor5d() requires shape to be provided when `values` ' + 'are a flat array');
                    }
                    return makeTensor(values, shape, inferredShape, dtype);
                }
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Creates rank-6 `tf.Tensor` with the provided values, shape and dtype.
 *
 * The same functionality can be achieved with `tf.tensor`, but in general
 * we recommend using `tf.tensor6d` as it makes the code more readable.
 *
 *  ```js
 * // Pass a nested array.
 * tf.tensor6d([[[[[[1],[2]],[[3],[4]]],[[[5],[6]],[[7],[8]]]]]]).print();
 * ```
 * ```js
 * // Pass a flat array and specify a shape.
 * tf.tensor6d([1, 2, 3, 4, 5, 6, 7, 8], [1, 1, 2, 2, 2, 1]).print();
 * ```
 *
 * @param values The values of the tensor. Can be nested array of numbers,
 *     or a flat array, or a `TypedArray`.
 * @param shape The shape of the tensor. Optional. If not provided,
 *   it is inferred from `values`.
 * @param dtype The data type.
 *
 * @doc {heading: 'Tensors', subheading: 'Creation'}
 */
                function tensor6d(values, shape, dtype) {
                    assertNonNull(values);
                    if (shape != null && shape.length !== 6) {
                        throw new Error('tensor6d() requires shape to have six numbers');
                    }
                    var inferredShape = inferShape(values, dtype);
                    if (inferredShape.length !== 6 && inferredShape.length !== 1) {
                        throw new Error('tensor6d() requires values to be number[][][][][][] or ' + 'flat/TypedArray');
                    }
                    if (inferredShape.length === 1 && shape == null) {
                        throw new Error('tensor6d() requires shape to be provided when `values` ' + 'are a flat array');
                    }
                    shape = shape || inferredShape;
                    return makeTensor(values, shape, inferredShape, dtype);
                }
                /**
 * Finds the values and indices of the `k` largest entries along the last
 * dimension.
 *
 * If the input is a vector (rank=1), finds the k largest entries in the vector
 * and outputs their values and indices as vectors. Thus values[j] is the j-th
 * largest entry in input, and its index is indices[j].
 * For higher rank inputs, computes the top k entries along the last dimension.
 *
 * If two elements are equal, the lower-index element appears first.
 *
 * ```js
 * const a = tf.tensor2d([[1, 5], [4, 3]]);
 * const {values, indices} = tf.topk(a);
 * values.print();
 * indices.print();
 * ```
 * @param x 1-D or higher `tf.Tensor` with last dimension being at least `k`.
 * @param k Number of top elements to look for along the last dimension.
 * @param sorted If true, the resulting `k` elements will be sorted by the
 *     values in descending order.
 *
 * @doc {heading: 'Operations', subheading: 'Evaluation'}
 */
                function topk_(x, k, sorted) {
                    if (k === void 0) {
                        k = 1;
                    }
                    if (sorted === void 0) {
                        sorted = true;
                    }
                    var $x = convertToTensor(x, 'x', 'topk');
                    if ($x.rank === 0) {
                        throw new Error('topk() expects the input to be of rank 1 or higher');
                    }
                    var lastDim = $x.shape[$x.shape.length - 1];
                    if (k < 0) {
                        throw new Error("'k' passed to topk() must be >= 0 but got ".concat(k));
                    }
                    if (k > lastDim) {
                        throw new Error("'k' passed to topk() must be <= the last dimension (".concat(lastDim, ") ") + "but got ".concat(k));
                    }
                    var inputs = {
                        x: $x
                    };
                    var attrs = {
                        k: k,
                        sorted: sorted
                    };
                    var _a = __read(ENGINE.runKernel(TopK, inputs, attrs), 2)
                        , values = _a[0]
                        , indices = _a[1];
                    return {
                        values: values,
                        indices: indices
                    };
                }
                var topk = op({
                    topk_: topk_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Creates a `tf.Tensor` with values sampled from a truncated normal
 * distribution.
 *
 * ```js
 * tf.truncatedNormal([2, 2]).print();
 * ```
 *
 * The generated values follow a normal distribution with specified mean and
 * standard deviation, except that values whose magnitude is more than 2
 * standard deviations from the mean are dropped and re-picked.
 *
 * @param shape An array of integers defining the output tensor shape.
 * @param mean The mean of the normal distribution.
 * @param stdDev The standard deviation of the normal distribution.
 * @param dtype The data type of the output tensor.
 * @param seed The seed for the random number generator.
 *
 * @doc {heading: 'Tensors', subheading: 'Creation'}
 */
                function truncatedNormal_(shape, mean, stdDev, dtype, seed) {
                    if (mean === void 0) {
                        mean = 0;
                    }
                    if (stdDev === void 0) {
                        stdDev = 1;
                    }
                    assertNonNegativeIntegerDimensions(shape);
                    if (dtype != null && dtype === 'bool') {
                        throw new Error("Unsupported data type $ { dtype }");
                    }
                    var randGauss = new MPRandGauss(mean, stdDev, dtype, true /* truncated */
                        , seed);
                    var res = buffer(shape, dtype);
                    for (var i = 0; i < res.values.length; i++) {
                        res.values[i] = randGauss.nextValue();
                    }
                    return res.toTensor();
                }
                var truncatedNormal = op({
                    truncatedNormal_: truncatedNormal_
                });
                /**
 * Finds unique elements along an axis of a tensor.
 *
 * It returns a tensor `values` containing all of the unique elements along the
 * `axis` of the given tensor `x` in the same order that they occur along the
 * `axis` in `x`; `x` does not need to be sorted. It also returns a tensor
 * `indices` the same size as the number of the elements in `x` along the `axis`
 * dimension. It contains the index in the unique output `values`.
 *
 * ```js
 * // A 1-D tensor
 * const a = tf.tensor1d([1, 1, 2, 4, 4, 4, 7, 8, 8]);
 * const {values, indices} = tf.unique(a);
 * values.print();   // [1, 2, 4, 7, 8,]
 * indices.print();  // [0, 0, 1, 2, 2, 2, 3, 4, 4]
 * ```
 *
 * ```js
 * // A 2-D tensor with axis=0
 * //
 * // 'a' is: [[1, 0, 0],
 * //          [1, 0, 0],
 * //          [2, 0, 0]]
 * const a = tf.tensor2d([[1, 0, 0], [1, 0, 0], [2, 0, 0]]);
 * const {values, indices} = tf.unique(a, 0)
 * values.print();   // [[1, 0, 0],
 *                   //  [2, 0, 0]]
 * indices.print();  // [0, 0, 1]
 * ```
 *
 * ```js
 * // A 2-D tensor with axis=1
 * //
 * // 'a' is: [[1, 0, 0],
 * //          [1, 0, 0],
 * //          [2, 0, 0]]
 * const a = tf.tensor2d([[1, 0, 0], [1, 0, 0], [2, 0, 0]]);
 * const {values, indices} = tf.unique(a, 1)
 * values.print();   // [[1, 0],
 *                   //  [1, 0],
 *                   //  [2, 0]]
 * indices.print();  // [0, 1, 1]
 * ```
 * @param x A tensor (int32, string, bool).
 * @param axis The axis of the tensor to find the unique elements.
 * @returns [uniqueElements, indices] (see above for details)
 *
 * @doc {heading: 'Operations', subheading: 'Evaluation'}
 */
                function unique_(x, axis) {
                    if (axis === void 0) {
                        axis = 0;
                    }
                    var $x = convertToTensor(x, 'x', 'unique', 'string_or_numeric');
                    assert($x.rank > 0, function () {
                        return 'The input tensor must be at least 1D';
                    });
                    var inputs = {
                        x: $x
                    };
                    var attrs = {
                        axis: axis
                    };
                    var _a = __read(ENGINE.runKernel(Unique, inputs, attrs), 2)
                        , values = _a[0]
                        , indices = _a[1];
                    return {
                        values: values,
                        indices: indices
                    };
                }
                var unique = op({
                    unique_: unique_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the sum along segments of a `tf.Tensor`.
 *
 * ```js
 * const x = tf.tensor1d([1, 2, 3, 4]);
 * const segmentIds = tf.tensor1d([1, 2, 0, 1], 'int32');
 * const numSegments = 3;
 *
 * x.unsortedSegmentSum(segmentIds, numSegments).print()
 * //or tf.unsortedSegmentSum(x, segmentIds, numSegments)
 * ```
 * @param x The `tf.Tensor` that will be summed along its segments.
 * @param segmentIds A `tf.Tensor1D` whose rank is equal to the rank of `x`'s
 * dimension along the `axis`.  Maps each element of `x` to a segment.
 * @param numSegments The number of distinct `segmentIds`.
 *
 * @doc {heading: 'Operations', subheading: 'Segment'}
 */
                function unsortedSegmentSum_(x, segmentIds, numSegments) {
                    var $x = convertToTensor(x, 'x', 'unsortedSegmentSum');
                    var $segmentIds = convertToTensor(segmentIds, 'segmentIds', 'unsortedSegmentSum', 'int32');
                    assert(isInt(numSegments), function () {
                        return 'numSegments must be of dtype int';
                    });
                    var inputs = {
                        x: $x,
                        segmentIds: $segmentIds
                    };
                    var attrs = {
                        numSegments: numSegments
                    };
                    return ENGINE.runKernel(UnsortedSegmentSum, inputs, attrs);
                }
                var unsortedSegmentSum = op({
                    unsortedSegmentSum_: unsortedSegmentSum_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Unstacks a `tf.Tensor` of rank-`R` into a list of rank-`(R-1)` `tf.Tensor`s.
 *
 * ```js
 * const a = tf.tensor2d([1, 2, 3, 4], [2, 2]);
 *
 * tf.unstack(a).forEach(tensor => tensor.print());
 * ```
 *
 * @param x A tensor object.
 * @param axis The axis to unstack along. Defaults to 0 (the first dim).
 *
 * @doc {heading: 'Tensors', subheading: 'Slicing and Joining'}
 */
                function unstack_(x, axis) {
                    if (axis === void 0) {
                        axis = 0;
                    }
                    var $x = convertToTensor(x, 'x', 'unstack', 'string_or_numeric');
                    assert(axis >= -$x.shape.length && axis < $x.shape.length, function () {
                        return "Axis = ".concat(axis, " is not in [-").concat($x.shape.length, ", ").concat($x.shape.length, ")");
                    });
                    var inputs = {
                        value: $x
                    };
                    var attrs = {
                        axis: axis
                    };
                    return ENGINE.runKernel(Unpack, inputs, attrs);
                }
                var unstack = op({
                    unstack_: unstack_
                });
                /**
 * @license
 * Copyright 2022 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Searches for where a value would go in a sorted sequence.
 *
 * This is not a method for checking containment (like javascript in).
 *
 * The typical use case for this operation is "binning", "bucketing", or
 * "discretizing". The values are assigned to bucket-indices based on the edges
 * listed in 'sortedSequence'. This operation returns the bucket-index for each
 * value.
 *
 * The index returned corresponds to the first edge greater than the value.
 *
 * The axis is not settable for this operation. It always operates on the
 * innermost dimension (axis=-1). The operation will accept any number of outer
 * dimensions.
 *
 * Note: This operation assumes that 'upperBound' is sorted along the
 * innermost axis, maybe using 'sort(..., axis=-1)'. If the sequence is not
 * sorted no error is raised and the content of the returned tensor is not well
 * defined.
 *
 * ```js
 * const seq = tf.tensor1d([0, 3, 9, 10, 10]);
 * const values = tf.tensor1d([0, 4, 10]);
 * const result = tf.upperBound(seq, values);
 * result.print(); // [1, 2, 5]
 * ```
 * @param sortedSequence: N-D. Sorted sequence.
 * @param values: N-D. Search values.
 * @return An N-D int32 tensor the size of values containing the result of
 *     applying upper bound to each value. The result is not a global index to
 *     the entire Tensor, but the index in the last dimension.
 * @doc {heading: 'Operations', subheading: 'Evaluation'}
 */
                function upperBound(sortedSequence, values) {
                    return searchSorted(sortedSequence, values, 'right');
                }
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Creates a new variable with the provided initial value.
 * ```js
 * const x = tf.variable(tf.tensor([1, 2, 3]));
 * x.assign(tf.tensor([4, 5, 6]));
 *
 * x.print();
 * ```
 *
 * @param initialValue Initial value for the tensor.
 * @param trainable If true, optimizers are allowed to update it.
 * @param name Name of the variable. Defaults to a unique id.
 * @param dtype If set, initialValue will be converted to the given type.
 *
 * @doc {heading: 'Tensors', subheading: 'Creation'}
 */
                function variable(initialValue, trainable, name, dtype) {
                    if (trainable === void 0) {
                        trainable = true;
                    }
                    return ENGINE.makeVariable(initialValue, trainable, name, dtype);
                }
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                function whereImpl(condShape, condVals) {
                    var indices = [];
                    for (var i = 0; i < condVals.length; i++) {
                        if (condVals[i]) {
                            indices.push(i);
                        }
                    }
                    var inBuffer = buffer(condShape, 'int32');
                    var out = buffer([indices.length, condShape.length], 'int32');
                    for (var i = 0; i < indices.length; i++) {
                        var loc = inBuffer.indexToLoc(indices[i]);
                        var offset = i * condShape.length;
                        out.values.set(loc, offset);
                    }
                    return out.toTensor();
                }
                /**
 * Returns the coordinates of true elements of condition.
 *
 * The coordinates are returned in a 2-D tensor where the first dimension (rows)
 * represents the number of true elements, and the second dimension (columns)
 * represents the coordinates of the true elements. Keep in mind, the shape of
 * the output tensor can vary depending on how many true values there are in
 * input. Indices are output in row-major order. The resulting tensor has the
 * shape `[numTrueElems, condition.rank]`.
 *
 * This is analogous to calling the python `tf.where(cond)` without an x or y.
 *
 * ```js
 * const cond = tf.tensor1d([false, false, true], 'bool');
 * const result = await tf.whereAsync(cond);
 * result.print();
 * ```
 *
 * @doc {heading: 'Operations', subheading: 'Logical'}
 */
                function whereAsync_(condition) {
                    return __awaiter(this, void 0, void 0, function () {
                        var $condition, vals, res;
                        return __generator(this, function (_a) {
                            switch (_a.label) {
                                case 0:
                                    $condition = convertToTensor(condition, 'condition', 'whereAsync', 'bool');
                                    return [4 /*yield*/
                                        , $condition.data()];
                                case 1:
                                    vals = _a.sent();
                                    res = whereImpl($condition.shape, vals);
                                    if (condition !== $condition) {
                                        $condition.dispose();
                                    }
                                    return [2 /*return*/
                                        , res];
                            }
                        });
                    });
                }
                var whereAsync = whereAsync_;
                /**
 * Apply boolean mask to tensor.
 *
 * ```js
 * const tensor = tf.tensor2d([1, 2, 3, 4, 5, 6], [3, 2]);
 * const mask = tf.tensor1d([1, 0, 1], 'bool');
 * const result = await tf.booleanMaskAsync(tensor, mask);
 * result.print();
 * ```
 *
 * @param tensor N-D tensor.
 * @param mask K-D boolean tensor, K <= N and K must be known statically.
 * @param axis A 0-D int Tensor representing the axis in tensor to mask from.
 *     By default, axis is 0 which will mask from the first dimension.
 *     Otherwise K + axis <= N.
 *
 * @doc {heading: 'Tensors', subheading: 'Slicing and Joining'}
 */
                function booleanMaskAsync_(tensor, mask, axis) {
                    return __awaiter(this, void 0, void 0, function () {
                        var $tensor, $mask, axisFrom, maskDim, tensorShape, leadingSize, i, targetTensorShape, reshapedTensor, reshapedMask, positivePositions, indices, res;
                        return __generator(this, function (_a) {
                            switch (_a.label) {
                                case 0:
                                    $tensor = convertToTensor(tensor, 'tensor', 'boolMask');
                                    $mask = convertToTensor(mask, 'mask', 'boolMask', 'bool');
                                    axisFrom = axis == null ? 0 : axis;
                                    maskDim = $mask.rank;
                                    tensorShape = $tensor.shape;
                                    assert(maskDim > 0, function () {
                                        return 'mask cannot be scalar';
                                    });
                                    assertShapesMatch(tensorShape.slice(axisFrom, axisFrom + maskDim), $mask.shape, "mask's shape must match the first K dimensions of tensor's shape,");
                                    leadingSize = 1;
                                    for (i = axisFrom; i < axisFrom + maskDim; i++) {
                                        leadingSize *= tensorShape[i];
                                    }
                                    targetTensorShape = tensorShape.slice(0, axisFrom).concat([leadingSize], tensorShape.slice(axisFrom + maskDim));
                                    reshapedTensor = reshape($tensor, targetTensorShape);
                                    reshapedMask = reshape($mask, [-1]);
                                    return [4 /*yield*/
                                        , whereAsync(reshapedMask)];
                                case 1:
                                    positivePositions = _a.sent();
                                    indices = squeeze(positivePositions, [1]);
                                    res = gather(reshapedTensor, indices, axisFrom);
                                    // Ensure no memory leak.
                                    if (tensor !== $tensor) {
                                        $tensor.dispose();
                                    }
                                    if (mask !== $mask) {
                                        $mask.dispose();
                                    }
                                    indices.dispose();
                                    reshapedTensor.dispose();
                                    reshapedMask.dispose();
                                    positivePositions.dispose();
                                    return [2 /*return*/
                                        , res];
                            }
                        });
                    });
                }
                var booleanMaskAsync = booleanMaskAsync_;
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Compute the moving average of a variable.
 *
 * Without zeroDebias, the moving average operation is defined by:
 *   `v += delta`
 * where
 *   `delta = (1 - decay) * (x - v)`
 *
 * With zeroDebias (default), the `delta` term is scaled to debias the
 * effect of the (assumed) zero-initialization of `v`.
 *   `delta /= (1 - decay ^ step)`
 *
 * For more details on the zero-debiasing algorithm, see:
 *   https://arxiv.org/abs/1412.6980
 *
 * Note that this function is completely stateless and does not keep track of
 * step count. The step count needs to be maintained by the caller and passed
 * in as `step`.
 *
 * @param v The current moving average value.
 * @param x New input value, must have the same shape and dtype as `v`.
 * @param decay The decay factor. Typical values are 0.95 and 0.99.
 * @param step Step count.
 * @param zeroDebias: Whether zeroDebias is to be performed (default: `true`).
 * @returns The new moving average value.
 *
 * @doc {heading: 'Operations', subheading: 'Moving Average'}
 */
                function movingAverage_(v, x, decay, step, zeroDebias) {
                    if (zeroDebias === void 0) {
                        zeroDebias = true;
                    }
                    var $v = convertToTensor(v, 'v', 'movingAverage');
                    var $x = convertToTensor(x, 'x', 'movingAverage');
                    var $decay = convertToTensor(decay, 'decay', 'movingAverage');
                    assertTypesMatch($v, $x);
                    assert(arraysEqual($v.shape, $x.shape), function () {
                        return 'Shape mismatch in v and x';
                    });
                    var one = scalar(1);
                    var oneMinusDecay = sub(one, $decay);
                    var update = mul(sub($x, $v), oneMinusDecay);
                    if (zeroDebias) {
                        assert(step != null, function () {
                            return 'When using zeroDebias: true, step is required.';
                        });
                        var $step = convertToTensor(step, 'step', 'movingAverage');
                        update = div(update, sub(one, pow($decay, $step)));
                    }
                    return add($v, update);
                }
                var movingAverage = op({
                    movingAverage_: movingAverage_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Creates a new tensor by applying sparse updates to individual
 * values or slices within a zero tensor of the given shape tensor according to
 * indices. This operator is the inverse of the `tf.gatherND` operator which
 * extracts values or slices from a given tensor.
 *
 * ```js
 * const indices = tf.tensor2d([4, 3, 1, 7], [4, 1], 'int32');
 * const updates = tf.tensor1d([9, 10, 11, 12]);
 * const shape = [8];
 * tf.scatterND(indices, updates, shape).print() //[0, 11, 0, 10, 9, 0, 0, 12]
 * ```
 *
 * @param indices The tensor contains the indices into the output tensor.
 * @param updates The tensor contains the value for the indices.
 * @param shape: The shape of the output tensor.
 *
 * @doc {heading: 'Operations', subheading: 'Slicing and Joining'}
 */
                function scatterND_(indices, updates, shape) {
                    assertNonNegativeIntegerDimensions(shape);
                    var $indices = convertToTensor(indices, 'indices', 'scatterND', 'int32');
                    var $updates = convertToTensor(updates, 'updates', 'scatterND');
                    validateInput$1($updates, $indices, shape);
                    var inputs = {
                        indices: $indices,
                        updates: $updates
                    };
                    var attrs = {
                        shape: shape
                    };
                    // tslint:disable-next-line: no-unnecessary-type-assertion
                    return ENGINE.runKernel(ScatterNd, inputs, attrs);
                }
                var scatterND = op({
                    scatterND_: scatterND_
                });
                /**
 * Validate sparseToDense inputs.
 *
 * @param sparseIndices A 0-D, 1-D, or 2-D Tensor of type int32.
 * sparseIndices[i] contains the complete index where sparseValues[i] will be
 * placed.
 * @param sparseValues A 0-D or 1-D Tensor. Values
 * corresponding to each row of sparseIndices, or a scalar value to be used for
 * all sparse indices.
 * @param outputShape number[]. Shape of the dense output tensor.
 * @param validateIndices boolean. indice validation is not supported, error
 * will be thrown if it is set.
 */
                function validateInput(sparseIndices, sparseValues, outputShape, defaultValues) {
                    if (sparseIndices.dtype !== 'int32') {
                        throw new Error('tf.sparseToDense() expects the indices to be int32 type,' + " but the dtype was ".concat(sparseIndices.dtype, "."));
                    }
                    if (sparseIndices.rank > 2) {
                        throw new Error('sparseIndices should be a scalar, vector, or matrix,' + " but got shape ".concat(sparseIndices.shape, "."));
                    }
                    var numElems = sparseIndices.rank > 0 ? sparseIndices.shape[0] : 1;
                    var numDims = sparseIndices.rank > 1 ? sparseIndices.shape[1] : 1;
                    if (outputShape.length !== numDims) {
                        throw new Error('outputShape has incorrect number of elements:,' + " ".concat(outputShape.length, ", should be: ").concat(numDims, "."));
                    }
                    var numValues = sparseValues.size;
                    if (!(sparseValues.rank === 0 || sparseValues.rank === 1 && numValues === numElems)) {
                        throw new Error('sparseValues has incorrect shape ' + "".concat(sparseValues.shape, ", should be [] or [").concat(numElems, "]"));
                    }
                    if (sparseValues.dtype !== defaultValues.dtype) {
                        throw new Error('sparseValues.dtype must match defaultValues.dtype');
                    }
                }
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Converts a sparse representation into a dense tensor.
 *
 * Builds an array dense with shape outputShape such that:
 *
 * // If sparseIndices is scalar
 * dense[i] = (i == sparseIndices ? sparseValues : defaultValue)
 *
 * // If sparseIndices is a vector, then for each i
 * dense[sparseIndices[i]] = sparseValues[i]
 *
 * // If sparseIndices is an n by d matrix, then for each i in [0, n)
 * dense[sparseIndices[i][0], ..., sparseIndices[i][d-1]] = sparseValues[i]
 * All other values in dense are set to defaultValue. If sparseValues is a
 * scalar, all sparse indices are set to this single value.
 *
 * If indices are repeated the final value is summed over all values for those
 * indices.
 *
 * ```js
 * const indices = tf.tensor1d([4, 5, 6, 1, 2, 3], 'int32');
 * const values = tf.tensor1d([10, 11, 12, 13, 14, 15], 'float32');
 * const shape = [8];
 * tf.sparseToDense(indices, values, shape).print();
 * ```
 *
 * @param sparseIndices A 0-D, 1-D, or 2-D Tensor of type int32.
 * sparseIndices[i] contains the complete index where sparseValues[i] will be
 * placed.
 * @param sparseValues A 0-D or 1-D Tensor. Values
 * corresponding to each row of sparseIndices, or a scalar value to be used for
 * all sparse indices.
 * @param outputShape Shape of the dense output tensor. The type is inferred.
 * @param defaultValue Scalar. Value to set for indices not specified in
 * sparseIndices. Defaults to zero.
 *
 * @doc {heading: 'Operations', subheading: 'Normalization'}
 */
                function sparseToDense_(sparseIndices, sparseValues, outputShape, defaultValue) {
                    if (defaultValue === void 0) {
                        defaultValue = 0;
                    }
                    assertNonNegativeIntegerDimensions(outputShape);
                    var $sparseIndices = convertToTensor(sparseIndices, 'sparseIndices', 'sparseToDense', 'int32');
                    var $sparseValues = convertToTensor(sparseValues, 'sparseValues', 'sparseToDense', 'string_or_numeric');
                    var $defaultValue = convertToTensor(defaultValue, 'defaultValue', 'sparseToDense', $sparseValues.dtype);
                    validateInput($sparseIndices, $sparseValues, outputShape, $defaultValue);
                    var inputs = {
                        sparseIndices: $sparseIndices,
                        sparseValues: $sparseValues,
                        defaultValue: $defaultValue
                    };
                    var attrs = {
                        outputShape: outputShape
                    };
                    return ENGINE.runKernel(SparseToDense, inputs, attrs);
                }
                var sparseToDense = op({
                    sparseToDense_: sparseToDense_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Gather slices from input tensor into a Tensor with shape specified by
 * `indices`.
 *
 * `indices` is a K-dimensional integer tensor, best thought of as a
 * (K-1)-dimensional tensor of indices into input, where each element defines a
 * slice of input:
 * output[\\(i_0, ..., i_{K-2}\\)] = input[indices[\\(i_0, ..., i_{K-2}\\)]]
 *
 * Whereas in `tf.gather`, `indices` defines slices into the first dimension of
 * input, in `tf.gatherND`, `indices` defines slices into the first N dimensions
 * of input, where N = indices.shape[-1].
 *
 * The last dimension of indices can be at most the rank of input:
 * indices.shape[-1] <= input.rank
 *
 * The last dimension of `indices` corresponds to elements
 * (if indices.shape[-1] == input.rank) or slices
 * (if indices.shape[-1] < input.rank) along dimension indices.shape[-1] of
 * input.
 * The output tensor has shape
 * indices.shape[:-1] + input.shape[indices.shape[-1]:]
 *
 * Note that on CPU, if an out of bound index is found, an error is returned. On
 * GPU, if an out of bound index is found, a 0 is stored in the corresponding
 * output value.
 *
 * ```js
 * const indices = tf.tensor2d([0, 1, 1, 0], [2,2], 'int32');
 * const input = tf.tensor2d([9, 10, 11, 12], [2, 2]);
 * tf.gatherND(input, indices).print() // [10, 11]
 * ```
 *
 * @param x The tensor from which to gather values.
 * @param indices Index tensor, must be of type int32.
 *
 * @doc {heading: 'Operations', subheading: 'Slicing and Joining'}
 */
                function gatherND_(x, indices) {
                    var $indices = convertToTensor(indices, 'indices', 'gatherND', 'int32');
                    var $x = convertToTensor(x, 'x', 'gatherND', 'string_or_numeric');
                    var inputs = {
                        params: $x,
                        indices: $indices
                    };
                    return ENGINE.runKernel(GatherNd, inputs);
                }
                var gatherND = op({
                    gatherND_: gatherND_
                });
                /**
 * @license
 * Copyright 2019 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Normalize noise shape based on provided tensor and noise shape.
 *
 * @param x Tensor.
 * @param noiseShape The shape for the randomly generated keep/drop flags, as
 *   an array of numbers. Optional.
 * @returns Normalized noise shape.
 */
                function getNoiseShape(x, noiseShape) {
                    if (noiseShape == null) {
                        return x.shape.slice();
                    }
                    if (arraysEqual(x.shape, noiseShape)) {
                        return noiseShape;
                    }
                    if (x.shape.length === noiseShape.length) {
                        var newDimension = [];
                        for (var i = 0; i < x.shape.length; i++) {
                            if (noiseShape[i] == null && x.shape[i] != null) {
                                newDimension.push(x.shape[i]);
                            } else {
                                newDimension.push(noiseShape[i]);
                            }
                        }
                        return newDimension;
                    }
                    return noiseShape;
                }
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes dropout.
 *
 * ```js
 * const x = tf.tensor1d([1, 2, 2, 1]);
 * const rate = 0.75;
 * const output = tf.dropout(x, rate);
 * output.print();
 * ```
 *
 * @param x A floating point Tensor or TensorLike.
 * @param rate A float in the range [0, 1). The probability that each element
 *   of x is discarded.
 * @param noiseShape An array of numbers of type int32, representing the
 * shape for randomly generated keep/drop flags. If the noiseShape has null
 * value, it will be automatically replaced with the x's relative dimension
 * size. Optional.
 * @param seed Used to create random seeds. Optional.
 * @returns A Tensor of the same shape of x.
 *
 * @doc {heading: 'Operations', subheading: 'Dropout'}
 */
                function dropout_(x, rate, noiseShape, seed) {
                    var $x = convertToTensor(x, 'x', 'dropout');
                    assert($x.dtype === 'float32', function () {
                        return "x has to be a floating point tensor since it's going to be " + "scaled, but got a ".concat($x.dtype, " tensor instead.");
                    });
                    assert(rate >= 0 && rate < 1, function () {
                        return "rate must be a float in the range [0, 1), but got ".concat(rate, ".");
                    });
                    if (rate === 0) {
                        return x instanceof Tensor ? $x.clone() : $x;
                    }
                    var $noiseShape = getNoiseShape($x, noiseShape);
                    var keepProb = 1 - rate;
                    var multiplier = div(floor(add(randomUniform($noiseShape, 0, 1, 'float32', seed), keepProb)), keepProb);
                    return mul($x, multiplier);
                }
                var dropout = op({
                    dropout_: dropout_
                });
                /**
 * @license
 * Copyright 2019 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                function enclosingPowerOfTwo(value) {
                    // Return 2**N for integer N such that 2**N >= value.
                    return Math.floor(Math.pow(2, Math.ceil(Math.log(value) / Math.log(2.0))));
                }
                function cosineWindow(windowLength, a, b) {
                    var even = 1 - windowLength % 2;
                    var newValues = new Float32Array(windowLength);
                    for (var i = 0; i < windowLength; ++i) {
                        var cosArg = 2.0 * Math.PI * i / (windowLength + even - 1);
                        newValues[i] = a - b * Math.cos(cosArg);
                    }
                    return tensor1d(newValues, 'float32');
                }
                /**
 * Returns whether the targets are in the top K predictions.
 *
 * ```js
 * const predictions = tf.tensor2d([[20, 10, 40, 30], [30, 50, -20, 10]]);
 * const targets = tf.tensor1d([2, 0]);
 * const precision = await tf.inTopKAsync(predictions, targets);
 * precision.print();
 * ```
 * @param predictions 2-D or higher `tf.Tensor` with last dimension being
 *     at least `k`.
 * @param targets 1-D or higher `tf.Tensor`.
 * @param k Optional Number of top elements to look at for computing precision,
 *     default to 1.
 *
 * @doc {heading: 'Operations', subheading: 'Evaluation'}
 */
                function inTopKAsync_(predictions, targets, k) {
                    if (k === void 0) {
                        k = 1;
                    }
                    return __awaiter(this, void 0, void 0, function () {
                        var $predictions, $targets, lastDim, predictionsVals, targetsVals, _a, batch, size, precision, b, offset, vals, valAndInd, i, i;
                        return __generator(this, function (_b) {
                            switch (_b.label) {
                                case 0:
                                    $predictions = convertToTensor(predictions, 'predictions', 'inTopK');
                                    $targets = convertToTensor(targets, 'targets', 'inTopK');
                                    assert($predictions.rank > 1, function () {
                                        return 'inTopK() expects the predictions to be of rank 2 or higher, ' + "but got ".concat($predictions.rank);
                                    });
                                    assert($predictions.rank - 1 === $targets.rank, function () {
                                        return "predictions rank should be 1 larger than " + "targets rank, but got predictions rank " + "".concat($predictions.rank, " and targets rank ").concat($targets.rank);
                                    });
                                    assertShapesMatch($predictions.shape.slice(0, $predictions.shape.length - 1), $targets.shape, "predictions's shape should be align with the targets' shape, " + 'except the last dimension.');
                                    lastDim = $predictions.shape[$predictions.shape.length - 1];
                                    assert(k > 0 && k <= lastDim, function () {
                                        return "'k' passed to inTopK() must be > 0 && <= the predictions last " + "dimension (".concat(lastDim, "), but got ").concat(k);
                                    });
                                    return [4 /*yield*/
                                        , $predictions.data()];
                                case 1:
                                    predictionsVals = _b.sent();
                                    return [4 /*yield*/
                                        , $targets.data()];
                                case 2:
                                    targetsVals = _b.sent();
                                    _a = __read([predictionsVals.length / lastDim, lastDim], 2),
                                        batch = _a[0],
                                        size = _a[1];
                                    precision = getTypedArrayFromDType('bool', batch);
                                    for (b = 0; b < batch; b++) {
                                        offset = b * size;
                                        vals = predictionsVals.subarray(offset, offset + size);
                                        valAndInd = [];
                                        for (i = 0; i < vals.length; i++) {
                                            valAndInd.push({
                                                value: vals[i],
                                                index: i
                                            });
                                        }
                                        valAndInd.sort(function (a, b) {
                                            return b.value - a.value;
                                        });
                                        precision[b] = 0;
                                        for (i = 0; i < k; i++) {
                                            if (valAndInd[i].index === targetsVals[b]) {
                                                precision[b] = 1;
                                                break;
                                            }
                                        }
                                    }
                                    if (predictions !== $predictions) {
                                        $predictions.dispose();
                                    }
                                    if (targets !== $targets) {
                                        $targets.dispose();
                                    }
                                    // Output precision has the same shape as targets.
                                    return [2 /*return*/
                                        , tensor(precision, $targets.shape, 'bool')];
                            }
                        });
                    });
                }
                var inTopKAsync = inTopKAsync_;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the derivative of the filter of a 2D convolution.
 *
 * @param x The input tensor, of rank 4 or rank 3 of shape
 *     [batch, height, width, inChannels]. If rank 3, batch of 1 is assumed.
 * @param dy The dy image, of rank 4 or rank 3, of shape
 *     [batch, height, width, outDepth]. If rank 3, batch of 1 is assumed.
 * @param filterShape The shape of the filter, length 4,
 *     [filterHeight, filterWidth, inDepth, outDepth].
 * @param strides The strides of the convolution: [strideHeight,
 * strideWidth].
 * @param pad A string from: 'same', 'valid'. The type of padding algorithm
 *     used in the forward prop of the op.
 * @param dataFormat: An optional string from: "NHWC", "NCHW". Defaults to
 *     "NHWC". Specify the data format of the input and output data. With the
 *     default format "NHWC", the data is stored in the order of: [batch,
 *     height, width, channels].
 * @param dimRoundingMode A string from: 'ceil', 'round', 'floor'. If none is
 *     provided, it will default to truncate.
 */
                function conv2DBackpropFilter_(x, dy, filterShape, strides, pad, dataFormat, dimRoundingMode) {
                    if (dataFormat === void 0) {
                        dataFormat = 'NHWC';
                    }
                    var x4D = x;
                    if (x.rank === 3) {
                        x4D = reshape(x, [1, x.shape[0], x.shape[1], x.shape[2]]);
                    }
                    var dy4D = dy;
                    if (dy4D.rank === 3) {
                        dy4D = reshape(dy, [1, dy.shape[0], dy.shape[1], dy.shape[2]]);
                    }
                    assert(x4D.rank === 4, function () {
                        return "Error in conv2dDerFilter: input must be rank 4, but got shape " + "".concat(x4D.shape, ".");
                    });
                    assert(dy4D.rank === 4, function () {
                        return "Error in conv2dDerFilter: dy must be rank 4, but got shape " + "".concat(dy4D.shape, ".");
                    });
                    assert(filterShape.length === 4, function () {
                        return "Error in conv2dDerFilter: filterShape must be length 4, but got " + "".concat(filterShape, ".");
                    });
                    var inDepth = dataFormat === 'NHWC' ? x4D.shape[3] : x4D.shape[1];
                    var outDepth = dataFormat === 'NHWC' ? dy4D.shape[3] : dy4D.shape[1];
                    assert(inDepth === filterShape[2], function () {
                        return "Error in conv2dDerFilter: depth of input ".concat(inDepth, ") must ") + "match input depth in filter (".concat(filterShape[2], ".");
                    });
                    assert(outDepth === filterShape[3], function () {
                        return "Error in conv2dDerFilter: depth of dy (".concat(outDepth, ") must ") + "match output depth for filter (".concat(filterShape[3], ").");
                    });
                    checkPadOnDimRoundingMode('conv2dDerFilter', pad, dimRoundingMode);
                    var inputs = {
                        x: x4D,
                        dy: dy4D
                    };
                    var attrs = {
                        strides: strides,
                        pad: pad,
                        dataFormat: dataFormat,
                        dimRoundingMode: dimRoundingMode,
                        filterShape: filterShape
                    };
                    // tslint:disable-next-line: no-unnecessary-type-assertion
                    return ENGINE.runKernel(Conv2DBackpropFilter, inputs, attrs);
                }
                var conv2DBackpropFilter = op({
                    conv2DBackpropFilter_: conv2DBackpropFilter_
                });
                /**
 * @license
 * Copyright 2019 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                // Returns gradient for fused activation.
                function getFusedDyActivation(dy, y, activation) {
                    if (activation == null || activation === 'linear') {
                        return dy;
                    }
                    if (activation === 'relu') {
                        return mul(dy, step(y));
                    }
                    throw new Error("Cannot compute gradient for fused activation ".concat(activation, "."));
                }
                // Returns gradient for fused bias.
                function getFusedBiasGradient(bias, dyActivation) {
                    var res = dyActivation;
                    var reduceAxes = getReductionAxes(bias.shape, dyActivation.shape);
                    if (reduceAxes.length > 0) {
                        res = sum(res, reduceAxes);
                    }
                    return reshape(res, bias.shape);
                }
                function applyActivation(x, activation, preluActivationWeights, leakyreluAlpha) {
                    if (activation === 'linear') {
                        return x;
                    } else if (activation === 'relu') {
                        return relu(x);
                    } else if (activation === 'elu') {
                        return elu(x);
                    } else if (activation === 'relu6') {
                        return relu6(x);
                    } else if (activation === 'prelu') {
                        return prelu(x, preluActivationWeights);
                    } else if (activation === 'leakyrelu') {
                        return leakyRelu(x, leakyreluAlpha);
                    } else if (activation === 'sigmoid') {
                        return sigmoid(x);
                    }
                    throw new Error("Unknown fused activation ".concat(activation, "."));
                }
                // Whether we should call fused ops.
                var shouldFuse = function (gradientDepth, activation) {
                    var gradientMode = gradientDepth > 0;
                    return !gradientMode || activation === 'linear';
                };
                /**
 * Computes a 2D convolution over the input x, optionally fused with adding a
 * bias and applying an activation.
 *
 * ```js
 * const inputDepth = 2;
 * const inShape = [2, 2, 2, inputDepth];
 * const outputDepth = 2;
 * const fSize = 1;
 * const pad = 0;
 * const strides = 1;
 *
 * const x = tf.tensor4d( [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
 * 16], inShape);
 * const w = tf.tensor4d([-1, 1, -2, 0.5], [fSize, fSize, inputDepth,
 * outputDepth]);
 *
 * tf.fused.conv2d({ x, filter: w, strides, pad, dataFormat: 'NHWC',
 * dilations: [1, 1], bias: tf.scalar(5), activation: 'relu' }).print();
 * ```
 *
 * @param obj An object with the following properties:
 * @param x The input tensor, of rank 4 or rank 3, of shape
 *     `[batch, height, width, inChannels]`. If rank 3, batch of 1 is
 * assumed.
 * @param filter The filter, rank 4, of shape
 *     `[filterHeight, filterWidth, inDepth, outDepth]`.
 * @param strides The strides of the convolution: `[strideHeight,
 * strideWidth]`.
 * @param pad The type of padding algorithm.
 *   - `same` and stride 1: output will be of same size as input,
 *       regardless of filter size.
 *   - `valid` output will be smaller than input if filter is larger
 *       than 1x1.
 *   - For more info, see this guide:
 *     [https://www.tensorflow.org/api_docs/python/tf/nn/convolution](
 *          https://www.tensorflow.org/api_docs/python/tf/nn/convolution)
 * @param dataFormat An optional string from: "NHWC", "NCHW". Defaults to
 *     "NHWC". Specify the data format of the input and output data. With the
 *     default format "NHWC", the data is stored in the order of: [batch,
 *     height, width, channels]. Only "NHWC" is currently supported.
 * @param dilations The dilation rates: `[dilationHeight, dilationWidth]`
 *     in which we sample input values across the height and width dimensions
 *     in atrous convolution. Defaults to `[1, 1]`. If `dilations` is a single
 *     number, then `dilationHeight == dilationWidth`. If it is greater than
 *     1, then all values of `strides` must be 1.
 * @param dimRoundingMode A string from: 'ceil', 'round', 'floor'. If none is
 *     provided, it will default to truncate.
 * @param bias Tensor to be added to the result.
 * @param activation Name of activation kernel (defaults to `linear`) to be
 *     applied
 *      after biasAdd.
 * @param preluActivationWeights Tensor of prelu weights to be applied as part
 *     of a `prelu` activation, typically the same shape as `x`.
 * @param leakyreluAlpha Optional. Alpha to be applied as part of a `leakyrelu`
 *     activation.
 */
                function fusedConv2d_(_a) {
                    var _b;
                    var x = _a.x
                        , filter = _a.filter
                        , strides = _a.strides
                        , pad = _a.pad
                        , _c = _a.dataFormat
                        , dataFormat = _c === void 0 ? 'NHWC' : _c
                        , _d = _a.dilations
                        , dilations = _d === void 0 ? [1, 1] : _d
                        , dimRoundingMode = _a.dimRoundingMode
                        , bias = _a.bias
                        , _e = _a.activation
                        , activation = _e === void 0 ? 'linear' : _e
                        , preluActivationWeights = _a.preluActivationWeights
                        , leakyreluAlpha = _a.leakyreluAlpha;
                    activation = activation || 'linear';
                    if (shouldFuse(ENGINE.state.gradientDepth, activation) === false) {
                        // TODO: Transpose bias and preluActivationWeights properly for NCHW
                        // format before computation.
                        assert(dataFormat === 'NHWC', function () {
                            return "Error in fused conv2d: got dataFormat of ".concat(dataFormat, " but ") + "only NHWC is currently supported for the case of gradient depth " + "is 0 and the activation is not linear.";
                        });
                        var result = conv2d$1(x, filter, strides, pad, dataFormat, dilations, dimRoundingMode);
                        if (bias != null) {
                            result = add(result, bias);
                        }
                        return applyActivation(result, activation, preluActivationWeights, leakyreluAlpha);
                    }
                    var $x = convertToTensor(x, 'x', 'conv2d', 'float32');
                    var $filter = convertToTensor(filter, 'filter', 'conv2d', 'float32');
                    var x4D = $x;
                    var reshapedTo4D = false;
                    if ($x.rank === 3) {
                        reshapedTo4D = true;
                        x4D = reshape($x, [1, $x.shape[0], $x.shape[1], $x.shape[2]]);
                    }
                    assert(x4D.rank === 4, function () {
                        return "Error in fused conv2d: input must be rank 4, but got rank " + "".concat(x4D.rank, ".");
                    });
                    assert($filter.rank === 4, function () {
                        return "Error in fused conv2d: filter must be rank 4, but got rank " + "".concat($filter.rank, ".");
                    });
                    checkPadOnDimRoundingMode('fused conv2d', pad, dimRoundingMode);
                    var inputChannels = dataFormat === 'NHWC' ? x4D.shape[3] : x4D.shape[1];
                    assert($filter.shape[2] === inputChannels, function () {
                        return "Error in conv2d: depth of input (".concat(inputChannels, ") must match ") + "input depth for filter ".concat($filter.shape[2], ".");
                    });
                    assert(eitherStridesOrDilationsAreOne(strides, dilations), function () {
                        return 'Error in conv2D: Either strides or dilations must be 1. ' + "Got strides ".concat(strides, " and dilations '").concat(dilations, "'");
                    });
                    var convInfo = computeConv2DInfo(x4D.shape, $filter.shape, strides, dilations, pad, dimRoundingMode);
                    var $bias;
                    if (bias != null) {
                        $bias = convertToTensor(bias, 'bias', 'fused conv2d');
                        _b = __read(makeTypesMatch($bias, $x), 1),
                            $bias = _b[0];
                        // According to TensorFlow, the bias is supposed be a 1-D tensor or a
                        // scalar.
                        //
                        // 3-D or 4-D bias is not disabled for NHWC format, because they are
                        // currently being used in some cases. For examplem in our code base,
                        // https://github.com/tensorflow/tfjs/blob/b53bd47e880367ae57493f0ea628abaf08db2d5d/tfjs-core/src/ops/fused/fused_conv2d_test.ts#L1972.
                        if (dataFormat === 'NHWC') {
                            assertAndGetBroadcastShape(convInfo.outShape, $bias.shape);
                        } else {
                            assert($bias.shape.length <= 1, function () {
                                return "Error in fused conv2d: only supports scalar or 1-D Tensor " + "bias for NCHW format but got the bias of " + "rank-".concat($bias.shape.length, ".");
                            });
                            assert($bias.shape.length === 0 || $bias.shape[0] === convInfo.outChannels || $bias.shape[0] === 1, function () {
                                return "Error in fused conv2d: bias shape (".concat($bias.shape, ") is not ") + "compatible with the number of output channels " + "(".concat(convInfo.outChannels, ")");
                            });
                        }
                    }
                    var $preluActivationWeights;
                    if (preluActivationWeights != null) {
                        // PReLU's activation weights could be a scalar, a 1-D tensor or a 3-D
                        // tensor.
                        var alphaShape_1 = preluActivationWeights.shape;
                        assert(alphaShape_1.length <= 1 || alphaShape_1.length === 3, function () {
                            return "Error in fused conv2d: only supports scalar, 1-D Tensor or " + "3-D Tensor PReLU activation weights but got a tensor of " + "rank-".concat(alphaShape_1.length, ".");
                        });
                        if (alphaShape_1.length === 1) {
                            // Whether the data format is NCHW or NHWC, the 1-D PReLU activation
                            // weights tensor should be aligned with the output channels of conv2d
                            // result.
                            assert(alphaShape_1[0] === 1 || alphaShape_1[0] === convInfo.outChannels, function () {
                                return "Error in fused conv2d: PReLU activation weights " + "(".concat(alphaShape_1, ") is not compatible with the number of output ") + "channels (".concat(convInfo.outChannels, ").");
                            });
                        } else if (alphaShape_1.length === 3) {
                            // Whether the data format is NCHW or NHWC, the PReLU activation weights
                            // tensor should has the compatible shape with the result of conv2d.
                            try {
                                assertAndGetBroadcastShape(alphaShape_1, convInfo.outShape);
                            } catch (e) {
                                var errMsg = "Error in fused conv2d: PReLU activation weights (".concat(alphaShape_1, ") ") + "is not compatible with the output shape of the conv2d " + "(".concat(convInfo.outShape, ").");
                                throw Error(errMsg);
                            }
                        }
                        $preluActivationWeights = convertToTensor(preluActivationWeights, 'prelu weights', 'fused conv2d');
                    }
                    var grad = function (dy, saved) {
                        assert(dataFormat === 'NHWC', function () {
                            return "Error in gradient of fused conv2D: got dataFormat of ".concat(dataFormat, " but only NHWC is currently supported.");
                        });
                        var _a = __read(saved, 4)
                            , $filter = _a[0]
                            , x4D = _a[1]
                            , y = _a[2]
                            , $bias = _a[3];
                        var dyActivation = getFusedDyActivation(dy, y, activation);
                        assert(tupleValuesAreOne(dilations), function () {
                            return 'Error in gradient of fused conv2D: ' + "dilation rates greater than 1 " + "are not yet supported in gradients. Got dilations '".concat(dilations, "'");
                        });
                        var xDer = conv2DBackpropInput(x4D.shape, dyActivation, $filter, strides, pad);
                        var filterDer = conv2DBackpropFilter(x4D, dyActivation, $filter.shape, strides, pad);
                        var der = [xDer, filterDer];
                        if ($bias != null) {
                            var biasDer = getFusedBiasGradient($bias, dyActivation);
                            der.push(biasDer);
                        }
                        return der;
                    };
                    var inputs = {
                        x: x4D,
                        filter: $filter,
                        bias: $bias,
                        preluActivationWeights: $preluActivationWeights
                    };
                    var attrs = {
                        strides: strides,
                        pad: pad,
                        dataFormat: dataFormat,
                        dilations: dilations,
                        dimRoundingMode: dimRoundingMode,
                        activation: activation,
                        leakyreluAlpha: leakyreluAlpha
                    };
                    // Depending on the the params passed in we will have different number of
                    // inputs and thus a a different number of elements in the gradient.
                    if (bias == null) {
                        var customOp = customGrad(function (x4D, filter, save) {
                            var res = // tslint:disable-next-line: no-unnecessary-type-assertion
                                ENGINE.runKernel(FusedConv2D, inputs, attrs);
                            save([filter, x4D, res]);
                            if (reshapedTo4D) {
                                // tslint:disable-next-line: no-unnecessary-type-assertion
                                res = reshape(res, [res.shape[1], res.shape[2], res.shape[3]]);
                            }
                            return {
                                value: res,
                                gradFunc: grad
                            };
                        });
                        return customOp(x4D, $filter);
                    } else {
                        var customOpWithBias = customGrad(function (x4D, filter, bias, save) {
                            var res = ENGINE.runKernel(FusedConv2D, inputs, attrs);
                            save([filter, x4D, res, bias]);
                            if (reshapedTo4D) {
                                // tslint:disable-next-line: no-unnecessary-type-assertion
                                res = reshape(res, [res.shape[1], res.shape[2], res.shape[3]]);
                            }
                            return {
                                value: res,
                                gradFunc: grad
                            };
                        });
                        return customOpWithBias(x4D, $filter, $bias);
                    }
                }
                var conv2d = op({
                    fusedConv2d_: fusedConv2d_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                function depthwiseConv2dNativeBackpropFilter_(x, dy, filterShape, strides, pad, dilations, dimRoundingMode) {
                    if (dilations === void 0) {
                        dilations = [1, 1];
                    }
                    var x4D = x;
                    if (x.rank === 3) {
                        x4D = reshape(x, [1, x.shape[0], x.shape[1], x.shape[2]]);
                    }
                    var dy4D = dy;
                    if (dy4D.rank === 3) {
                        dy4D = reshape(dy, [1, dy.shape[0], dy.shape[1], dy.shape[2]]);
                    }
                    var inputs = {
                        x: x4D,
                        dy: dy4D
                    };
                    var attrs = {
                        strides: strides,
                        pad: pad,
                        dimRoundingMode: dimRoundingMode,
                        dilations: dilations,
                        filterShape: filterShape
                    };
                    // tslint:disable-next-line: no-unnecessary-type-assertion
                    return ENGINE.runKernel(DepthwiseConv2dNativeBackpropFilter, inputs, attrs);
                }
                var depthwiseConv2dNativeBackpropFilter = op({
                    depthwiseConv2dNativeBackpropFilter_: depthwiseConv2dNativeBackpropFilter_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                function depthwiseConv2dNativeBackpropInput_(xShape, dy, filter, strides, pad, dilations, dimRoundingMode) {
                    if (dilations === void 0) {
                        dilations = [1, 1];
                    }
                    var dy4D = dy;
                    var reshapedTo4D = false;
                    if (dy.rank === 3) {
                        reshapedTo4D = true;
                        dy4D = reshape(dy, [1, dy.shape[0], dy.shape[1], dy.shape[2]]);
                    }
                    var inputs = {
                        dy: dy4D,
                        filter: filter
                    };
                    var attrs = {
                        strides: strides,
                        pad: pad,
                        dimRoundingMode: dimRoundingMode,
                        dilations: dilations,
                        inputShape: xShape
                    };
                    var res = // tslint:disable-next-line: no-unnecessary-type-assertion
                        ENGINE.runKernel(DepthwiseConv2dNativeBackpropInput, inputs, attrs);
                    if (reshapedTo4D) {
                        return reshape(res, [res.shape[1], res.shape[2], res.shape[3]]);
                    }
                    return res;
                }
                var depthwiseConv2dNativeBackpropInput = op({
                    depthwiseConv2dNativeBackpropInput_: depthwiseConv2dNativeBackpropInput_
                });
                /**
 * Computes depthwise 2D convolution, optionally fused with adding a
 * bias and applying an activation.
 *
 * Given a 4D `input` array and a `filter` array of shape
 * `[filterHeight, filterWidth, inChannels, channelMultiplier]` containing
 * `inChannels` convolutional filters of depth 1, this op applies a
 * different filter to each input channel (expanding from 1 channel to
 * `channelMultiplier` channels for each), then concatenates the results
 * together. The output has `inChannels * channelMultiplier` channels.
 *
 * See
 * [https://www.tensorflow.org/api_docs/python/tf/nn/depthwise_conv2d](
 *     https://www.tensorflow.org/api_docs/python/tf/nn/depthwise_conv2d)
 * for more details.
 *
 * @param obj An object with the following properties:
 * @param x The input tensor, of rank 4 or rank 3, of shape
 *     `[batch, height, width, inChannels]`. If rank 3, batch of 1 is
 * assumed.
 * @param filter The filter tensor, rank 4, of shape
 *     `[filterHeight, filterWidth, inChannels, channelMultiplier]`.
 * @param strides The strides of the convolution: `[strideHeight,
 * strideWidth]`. If strides is a single number, then `strideHeight ==
 * strideWidth`.
 * @param pad The type of padding algorithm.
 *   - `same` and stride 1: output will be of same size as input,
 *       regardless of filter size.
 *   - `valid`: output will be smaller than input if filter is larger
 *       than 1x1.
 *   - For more info, see this guide:
 *     [https://www.tensorflow.org/api_docs/python/tf/nn/convolution](
 *          https://www.tensorflow.org/api_docs/python/tf/nn/convolution)
 * @param dilations The dilation rates: `[dilationHeight, dilationWidth]`
 *     in which we sample input values across the height and width dimensions
 *     in atrous convolution. Defaults to `[1, 1]`. If `rate` is a single
 *     number, then `dilationHeight == dilationWidth`. If it is greater than
 *     1, then all values of `strides` must be 1.
 * @param dataFormat: An optional string from: "NHWC", "NCHW". Defaults to
 *     "NHWC". Specify the data format of the input and output data. With the
 *     default format "NHWC", the data is stored in the order of: [batch,
 *     height, width, channels]. Only "NHWC" is currently supported.
 * @param dimRoundingMode A string from: 'ceil', 'round', 'floor'. If none is
 *     provided, it will default to truncate.
 * @param bias Tensor to be added to the result.
 * @param activation Name of activation kernel (defaults to `linear`).
 * @param preluActivationWeights Tensor of prelu weights to be applied as part
 *     of a `prelu` activation, typically the same shape as `x`.
 * @param leakyreluAlpha Optional. Alpha to be applied as part of a `leakyrelu`
 *     activation.
 */
                function fusedDepthwiseConv2d_(_a) {
                    var _b;
                    var x = _a.x
                        , filter = _a.filter
                        , strides = _a.strides
                        , pad = _a.pad
                        , _c = _a.dataFormat
                        , dataFormat = _c === void 0 ? 'NHWC' : _c
                        , _d = _a.dilations
                        , dilations = _d === void 0 ? [1, 1] : _d
                        , dimRoundingMode = _a.dimRoundingMode
                        , bias = _a.bias
                        , _e = _a.activation
                        , activation = _e === void 0 ? 'linear' : _e
                        , preluActivationWeights = _a.preluActivationWeights
                        , leakyreluAlpha = _a.leakyreluAlpha;
                    if (shouldFuse(ENGINE.state.gradientDepth, activation) === false) {
                        var result = depthwiseConv2d$1(x, filter, strides, pad, dataFormat, dilations, dimRoundingMode);
                        if (bias != null) {
                            result = add(result, bias);
                        }
                        return applyActivation(result, activation, preluActivationWeights, leakyreluAlpha);
                    }
                    var $x = convertToTensor(x, 'x', 'depthwiseConv2d', 'float32');
                    var $filter = convertToTensor(filter, 'filter', 'depthwiseConv2d', 'float32');
                    var x4D = $x;
                    var reshapedTo4D = false;
                    if ($x.rank === 3) {
                        reshapedTo4D = true;
                        x4D = reshape($x, [1, $x.shape[0], $x.shape[1], $x.shape[2]]);
                    }
                    assert(x4D.rank === 4, function () {
                        return "Error in fused depthwiseConv2d: input must be rank 4, but got " + "rank ".concat(x4D.rank, ".");
                    });
                    assert($filter.rank === 4, function () {
                        return "Error in fused depthwiseConv2d: filter must be rank 4, " + "but got rank ".concat($filter.rank, ".");
                    });
                    assert(x4D.shape[3] === $filter.shape[2], function () {
                        return "Error in fused depthwiseConv2d: number of input channels " + "(".concat(x4D.shape[3], ") must match the inChannels dimension in ") + "filter ".concat($filter.shape[2], ".");
                    });
                    if (dilations == null) {
                        dilations = [1, 1];
                    }
                    assert(eitherStridesOrDilationsAreOne(strides, dilations), function () {
                        return 'Error in fused depthwiseConv2d: Either strides or dilations must ' + "be 1. Got strides ".concat(strides, " and dilations '").concat(dilations, "'");
                    });
                    checkPadOnDimRoundingMode('fused depthwiseConv2d', pad, dimRoundingMode);
                    var convInfo = computeConv2DInfo(x4D.shape, $filter.shape, strides, dilations, pad, dimRoundingMode, true /* depthwise */
                    );
                    var $bias;
                    if (bias != null) {
                        $bias = convertToTensor(bias, 'bias', 'fused conv2d');
                        _b = __read(makeTypesMatch($bias, $x), 1),
                            $bias = _b[0];
                        assertAndGetBroadcastShape(convInfo.outShape, $bias.shape);
                    }
                    var $preluActivationWeights;
                    if (preluActivationWeights != null) {
                        $preluActivationWeights = convertToTensor(preluActivationWeights, 'prelu weights', 'fused depthwiseConv2d');
                    }
                    var grad = function (dy, saved) {
                        assert(tupleValuesAreOne(dilations), function () {
                            return 'Error in gradient of fused depthwiseConv2d: dilation rates ' + "greater than 1 are not yet supported. Got dilations " + "'".concat(dilations, "'");
                        });
                        var _a = __read(saved, 4)
                            , $filter = _a[0]
                            , x4D = _a[1]
                            , y = _a[2]
                            , bias = _a[3];
                        var dyActivation = getFusedDyActivation(dy, y, activation);
                        var xDer = depthwiseConv2dNativeBackpropInput(x4D.shape, dyActivation, $filter, strides, pad, dilations, dimRoundingMode);
                        var filterDer = depthwiseConv2dNativeBackpropFilter(x4D, dyActivation, $filter.shape, strides, pad, dilations, dimRoundingMode);
                        if (bias != null) {
                            var biasDer = getFusedBiasGradient($bias, dyActivation);
                            return [xDer, filterDer, biasDer];
                        }
                        return [xDer, filterDer];
                    };
                    var inputs = {
                        x: x4D,
                        filter: $filter,
                        bias: $bias,
                        preluActivationWeights: $preluActivationWeights
                    };
                    var attrs = {
                        strides: strides,
                        pad: pad,
                        dataFormat: dataFormat,
                        dilations: dilations,
                        dimRoundingMode: dimRoundingMode,
                        activation: activation,
                        leakyreluAlpha: leakyreluAlpha
                    };
                    // Depending on the the params passed in we will have different number of
                    // inputs and thus a a different number of elements in the gradient.
                    if (bias == null) {
                        var customOp = customGrad(function (x4D, filter, save) {
                            // tslint:disable-next-line: no-unnecessary-type-assertion
                            var res = ENGINE.runKernel(FusedDepthwiseConv2D, inputs, attrs);
                            save([filter, x4D, res]);
                            if (reshapedTo4D) {
                                // tslint:disable-next-line: no-unnecessary-type-assertion
                                res = reshape(res, [res.shape[1], res.shape[2], res.shape[3]]);
                            }
                            return {
                                value: res,
                                gradFunc: grad
                            };
                        });
                        return customOp(x4D, $filter);
                    } else {
                        var customOpWithBias = customGrad(function (x4D, filter, bias, save) {
                            // tslint:disable-next-line: no-unnecessary-type-assertion
                            var res = ENGINE.runKernel(FusedDepthwiseConv2D, inputs, attrs);
                            save([filter, x4D, res, bias]);
                            if (reshapedTo4D) {
                                // tslint:disable-next-line: no-unnecessary-type-assertion
                                res = reshape(res, [res.shape[1], res.shape[2], res.shape[3]]);
                            }
                            return {
                                value: res,
                                gradFunc: grad
                            };
                        });
                        return customOpWithBias(x4D, $filter, $bias);
                    }
                }
                var depthwiseConv2d = op({
                    fusedDepthwiseConv2d_: fusedDepthwiseConv2d_
                });
                /**
 * Computes the dot product of two matrices with optional activation and bias.
 *
 * ```js
 * const a = tf.tensor2d([-1, -2], [1, 2]);
 * const b = tf.tensor2d([1, 2, 3, 4], [2, 2]);
 * const bias = tf.tensor2d([1, 2], [1, 2]);
 *
 * tf.fused.matMul({a, b, bias, activation: 'relu'}).print();
 * ```
 *
 * @param obj An object with the following properties:
 * - `a` First matrix in dot product operation.
 * - `b` Second matrix in dot product operation.
 * - `transposeA` If true, `a` is transposed before multiplication.
 * - `transposeB` If true, `b` is transposed before multiplication.
 * - `bias` Matrix to be added to the result.
 * - `activation` Name of activation kernel (defaults to `linear`).
 * - `preluActivationWeights` Tensor of prelu weights.
 * - `leakyreluAlpha` Alpha of leakyrelu.
 */
                function fusedMatMul_(_a) {
                    var _b, _c;
                    var a = _a.a
                        , b = _a.b
                        , _d = _a.transposeA
                        , transposeA = _d === void 0 ? false : _d
                        , _e = _a.transposeB
                        , transposeB = _e === void 0 ? false : _e
                        , bias = _a.bias
                        , _f = _a.activation
                        , activation = _f === void 0 ? 'linear' : _f
                        , preluActivationWeights = _a.preluActivationWeights
                        , _g = _a.leakyreluAlpha
                        , leakyreluAlpha = _g === void 0 ? 0.2 : _g;
                    if (shouldFuse(ENGINE.state.gradientDepth, activation) === false) {
                        var result = matMul$1(a, b, transposeA, transposeB);
                        if (bias != null) {
                            result = add(result, bias);
                        }
                        return applyActivation(result, activation, preluActivationWeights, leakyreluAlpha);
                    }
                    var $a = convertToTensor(a, 'a', 'fused matMul');
                    var $b = convertToTensor(b, 'b', 'fused matMul');
                    _b = __read(makeTypesMatch($a, $b), 2),
                        $a = _b[0],
                        $b = _b[1];
                    var innerShapeA = transposeA ? $a.shape[$a.rank - 2] : $a.shape[$a.rank - 1];
                    var innerShapeB = transposeB ? $b.shape[$b.rank - 1] : $b.shape[$b.rank - 2];
                    var outerShapeA = transposeA ? $a.shape[$a.rank - 1] : $a.shape[$a.rank - 2];
                    var outerShapeB = transposeB ? $b.shape[$b.rank - 2] : $b.shape[$b.rank - 1];
                    var outerDimsA = $a.shape.slice(0, -2);
                    var outerDimsB = $b.shape.slice(0, -2);
                    var batchDimA = sizeFromShape(outerDimsA);
                    var batchDimB = sizeFromShape(outerDimsB);
                    assert(innerShapeA === innerShapeB, function () {
                        return "Error in fused matMul: inner shapes (".concat(innerShapeA, ") and (") + "".concat(innerShapeB, ") of Tensors with shapes ").concat($a.shape, " and ") + "".concat($b.shape, " and transposeA=").concat(transposeA) + " and transposeB=".concat(transposeB, " must match.");
                    });
                    var outShapeOuterDims = assertAndGetBroadcastShape($a.shape.slice(0, -2), $b.shape.slice(0, -2));
                    var outShape = outShapeOuterDims.concat([outerShapeA, outerShapeB]);
                    var a3D = transposeA ? reshape($a, [batchDimA, innerShapeA, outerShapeA]) : reshape($a, [batchDimA, outerShapeA, innerShapeA]);
                    var b3D = transposeB ? reshape($b, [batchDimB, outerShapeB, innerShapeB]) : reshape($b, [batchDimB, innerShapeB, outerShapeB]);
                    var $bias;
                    if (bias != null) {
                        $bias = convertToTensor(bias, 'bias', 'fused matMul');
                        _c = __read(makeTypesMatch($bias, $a), 1),
                            $bias = _c[0];
                        assertAndGetBroadcastShape(outShape, $bias.shape);
                    }
                    var $preluActivationWeights;
                    if (preluActivationWeights != null) {
                        $preluActivationWeights = convertToTensor(preluActivationWeights, 'prelu weights', 'fused matMul');
                    }
                    var grad = function (dy, saved) {
                        var _a = __read(saved, 4)
                            , a3D = _a[0]
                            , b3D = _a[1]
                            , y = _a[2]
                            , $bias = _a[3];
                        // we reshape dy because the result of the forward is not
                        // necessarily going to be a 3d tensor due to a reshape done at the end of
                        // the customOp.
                        var dyActivation = getFusedDyActivation(reshape(dy, y.shape), y, activation);
                        var aDer;
                        var bDer;
                        if (!transposeA && !transposeB) {
                            aDer = matMul$1(dyActivation, b3D, false, true);
                            bDer = matMul$1(a3D, dyActivation, true, false);
                        } else if (!transposeA && transposeB) {
                            aDer = matMul$1(dyActivation, b3D, false, false);
                            bDer = matMul$1(dyActivation, a3D, true, false);
                        } else if (transposeA && !transposeB) {
                            aDer = matMul$1(b3D, dyActivation, false, true);
                            bDer = matMul$1(a3D, dyActivation, false, false);
                        } else {
                            aDer = matMul$1(b3D, dyActivation, true, true);
                            bDer = matMul$1(dyActivation, a3D, true, true);
                        }
                        if (bias != null) {
                            var biasDer = getFusedBiasGradient($bias, dyActivation);
                            return [aDer, bDer, biasDer];
                        } else {
                            return [aDer, bDer];
                        }
                    };
                    var inputs = {
                        a: a3D,
                        b: b3D,
                        bias: $bias,
                        preluActivationWeights: $preluActivationWeights
                    };
                    var attrs = {
                        transposeA: transposeA,
                        transposeB: transposeB,
                        activation: activation,
                        leakyreluAlpha: leakyreluAlpha
                    };
                    // Depending on the the params passed in we will have different number of
                    // inputs and thus a a different number of elements in the gradient.
                    if (bias == null) {
                        var customOp = customGrad(function (a3D, b3D, save) {
                            var res = // tslint:disable-next-line: no-unnecessary-type-assertion
                                ENGINE.runKernel(_FusedMatMul, inputs, attrs);
                            save([a3D, b3D, res]);
                            return {
                                value: reshape(res, outShape),
                                gradFunc: grad
                            };
                        });
                        return customOp(a3D, b3D);
                    } else {
                        var customOpWithBias = customGrad(function (a3D, b3D, $bias, save) {
                            var res = // tslint:disable-next-line: no-unnecessary-type-assertion
                                ENGINE.runKernel(_FusedMatMul, inputs, attrs);
                            save([a3D, b3D, res, $bias]);
                            return {
                                value: reshape(res, outShape),
                                gradFunc: grad
                            };
                        });
                        return customOpWithBias(a3D, b3D, $bias);
                    }
                }
                var matMul = op({
                    fusedMatMul_: fusedMatMul_
                });
                /**
 * @license
 * Copyright 2019 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                var fused_ops = {
                    __proto__: null,
                    conv2d: conv2d,
                    depthwiseConv2d: depthwiseConv2d,
                    matMul: matMul
                };
                /**
 * @license
 * Copyright 2019 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Generate a hamming window.
 *
 * See: https://en.wikipedia.org/wiki/Window_function#Hann_and_Hamming_windows
 *
 * ```js
 * tf.signal.hammingWindow(10).print();
 * ```
 * @param The length of window
 *
 * @doc {heading: 'Operations', subheading: 'Signal', namespace: 'signal'}
 */
                function hammingWindow_(windowLength) {
                    return cosineWindow(windowLength, 0.54, 0.46);
                }
                var hammingWindow = op({
                    hammingWindow_: hammingWindow_
                });
                /**
 * @license
 * Copyright 2019 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Generate a Hann window.
 *
 * See: https://en.wikipedia.org/wiki/Window_function#Hann_and_Hamming_windows
 *
 * ```js
 * tf.signal.hannWindow(10).print();
 * ```
 * @param The length of window
 *
 * @doc {heading: 'Operations', subheading: 'Signal', namespace: 'signal'}
 */
                function hannWindow_(windowLength) {
                    return cosineWindow(windowLength, 0.5, 0.5);
                }
                var hannWindow = op({
                    hannWindow_: hannWindow_
                });
                /**
 * @license
 * Copyright 2019 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Expands input into frames of frameLength.
 * Slides a window size with frameStep.
 *
 * ```js
 * tf.signal.frame([1, 2, 3], 2, 1).print();
 * ```
 * @param signal The input tensor to be expanded
 * @param frameLength Length of each frame
 * @param frameStep The frame hop size in samples.
 * @param padEnd Whether to pad the end of signal with padValue.
 * @param padValue A number to use where the input signal does
 *     not exist when padEnd is True.
 *
 * @doc {heading: 'Operations', subheading: 'Signal', namespace: 'signal'}
 */
                function frame_(signal, frameLength, frameStep, padEnd, padValue) {
                    if (padEnd === void 0) {
                        padEnd = false;
                    }
                    if (padValue === void 0) {
                        padValue = 0;
                    }
                    var start = 0;
                    var output = [];
                    while (start + frameLength <= signal.size) {
                        output.push(slice(signal, start, frameLength));
                        start += frameStep;
                    }
                    if (padEnd) {
                        while (start < signal.size) {
                            var padLen = start + frameLength - signal.size;
                            var pad = concat([slice(signal, start, frameLength - padLen), fill([padLen], padValue)]);
                            output.push(pad);
                            start += frameStep;
                        }
                    }
                    if (output.length === 0) {
                        return tensor2d([], [0, frameLength]);
                    }
                    return reshape(concat(output), [output.length, frameLength]);
                }
                var frame = op({
                    frame_: frame_
                });
                /**
 * @license
 * Copyright 2019 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the Short-time Fourier Transform of signals
 * See: https://en.wikipedia.org/wiki/Short-time_Fourier_transform
 *
 * ```js
 * const input = tf.tensor1d([1, 1, 1, 1, 1])
 * tf.signal.stft(input, 3, 1).print();
 * ```
 * @param signal 1-dimensional real value tensor.
 * @param frameLength The window length of samples.
 * @param frameStep The number of samples to step.
 * @param fftLength The size of the FFT to apply.
 * @param windowFn A callable that takes a window length and returns 1-d tensor.
 *
 * @doc {heading: 'Operations', subheading: 'Signal', namespace: 'signal'}
 */
                function stft_(signal, frameLength, frameStep, fftLength, windowFn) {
                    if (windowFn === void 0) {
                        windowFn = hannWindow;
                    }
                    if (fftLength == null) {
                        fftLength = enclosingPowerOfTwo(frameLength);
                    }
                    var framedSignal = frame(signal, frameLength, frameStep);
                    var windowedSignal = mul(framedSignal, windowFn(frameLength));
                    return rfft(windowedSignal, fftLength);
                }
                var stft = op({
                    stft_: stft_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Extracts crops from the input image tensor and resizes them using bilinear
 * sampling or nearest neighbor sampling (possibly with aspect ratio change)
 * to a common output size specified by cropSize.
 *
 * @param image 4d tensor of shape `[batch,imageHeight,imageWidth, depth]`,
 *     where imageHeight and imageWidth must be positive, specifying the
 *     batch of images from which to take crops
 * @param boxes 2d float32 tensor of shape `[numBoxes, 4]`. Each entry is
 *     `[y1, x1, y2, x2]`, where `(y1, x1)` and `(y2, x2)` are the normalized
 *     coordinates of the box in the `boxInd[i]`th image in the batch
 * @param boxInd 1d int32 tensor of shape `[numBoxes]` with values in range
 *     `[0, batch)` that specifies the image that the `i`-th box refers to.
 * @param cropSize 1d int32 tensor of 2 elements `[cropHeigh, cropWidth]`
 *     specifying the size to which all crops are resized to.
 * @param method Optional string from `'bilinear' | 'nearest'`,
 *     defaults to bilinear, which specifies the sampling method for resizing
 * @param extrapolationValue A threshold for deciding when to remove boxes based
 *     on score. Defaults to 0.
 * @return A 4D tensor of the shape `[numBoxes,cropHeight,cropWidth,depth]`
 *
 * @doc {heading: 'Operations', subheading: 'Images', namespace: 'image'}
 */
                function cropAndResize_(image, boxes, boxInd, cropSize, method, extrapolationValue) {
                    if (method === void 0) {
                        method = 'bilinear';
                    }
                    if (extrapolationValue === void 0) {
                        extrapolationValue = 0;
                    }
                    var $image = convertToTensor(image, 'image', 'cropAndResize');
                    var $boxes = convertToTensor(boxes, 'boxes', 'cropAndResize', 'float32');
                    var $boxInd = convertToTensor(boxInd, 'boxInd', 'cropAndResize', 'int32');
                    var numBoxes = $boxes.shape[0];
                    assert($image.rank === 4, function () {
                        return 'Error in cropAndResize: image must be rank 4,' + "but got rank ".concat($image.rank, ".");
                    });
                    assert($boxes.rank === 2 && $boxes.shape[1] === 4, function () {
                        return "Error in cropAndResize: boxes must be have size [".concat(numBoxes, ",4] ") + "but had shape ".concat($boxes.shape, ".");
                    });
                    assert($boxInd.rank === 1 && $boxInd.shape[0] === numBoxes, function () {
                        return "Error in cropAndResize: boxInd must be have size [".concat(numBoxes, "] ") + "but had shape ".concat($boxes.shape, ".");
                    });
                    assert(cropSize.length === 2, function () {
                        return "Error in cropAndResize: cropSize must be of length 2, but got " + "length ".concat(cropSize.length, ".");
                    });
                    assert(cropSize[0] >= 1 && cropSize[1] >= 1, function () {
                        return "cropSize must be atleast [1,1], but was ".concat(cropSize);
                    });
                    assert(method === 'bilinear' || method === 'nearest', function () {
                        return "method must be bilinear or nearest, but was ".concat(method);
                    });
                    var inputs = {
                        image: $image,
                        boxes: $boxes,
                        boxInd: $boxInd
                    };
                    var attrs = {
                        method: method,
                        extrapolationValue: extrapolationValue,
                        cropSize: cropSize
                    };
                    var res = ENGINE.runKernel(CropAndResize, inputs, attrs);
                    return res;
                }
                var cropAndResize = op({
                    cropAndResize_: cropAndResize_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Flips the image left to right. Currently available in the CPU, WebGL, and
 * WASM backends.
 *
 * @param image 4d tensor of shape `[batch, imageHeight, imageWidth, depth]`.
 */
                /** @doc {heading: 'Operations', subheading: 'Images', namespace: 'image'} */
                function flipLeftRight_(image) {
                    var $image = convertToTensor(image, 'image', 'flipLeftRight', 'float32');
                    assert($image.rank === 4, function () {
                        return 'Error in flipLeftRight: image must be rank 4,' + "but got rank ".concat($image.rank, ".");
                    });
                    var inputs = {
                        image: $image
                    };
                    var res = ENGINE.runKernel(FlipLeftRight, inputs, {});
                    return res;
                }
                var flipLeftRight = op({
                    flipLeftRight_: flipLeftRight_
                });
                /**
 * @license
 * Copyright 2021 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Converts images from grayscale to RGB format.
 *
 * @param image A grayscale tensor to convert. The `image`'s last dimension must
 *     be size 1 with at least a two-dimensional shape.
 *
 * @doc {heading: 'Operations', subheading: 'Images', namespace: 'image'}
 */
                function grayscaleToRGB_(image) {
                    var $image = convertToTensor(image, 'image', 'grayscaleToRGB');
                    var lastDimsIdx = $image.rank - 1;
                    var lastDims = $image.shape[lastDimsIdx];
                    assert($image.rank >= 2, function () {
                        return 'Error in grayscaleToRGB: images must be at least rank 2, ' + "but got rank ".concat($image.rank, ".");
                    });
                    assert(lastDims === 1, function () {
                        return 'Error in grayscaleToRGB: last dimension of a grayscale image ' + "should be size 1, but got size ".concat(lastDims, ".");
                    });
                    var reps = new Array($image.rank);
                    reps.fill(1, 0, lastDimsIdx);
                    reps[lastDimsIdx] = 3;
                    return tile($image, reps);
                }
                var grayscaleToRGB = op({
                    grayscaleToRGB_: grayscaleToRGB_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Rotates the input image tensor counter-clockwise with an optional offset
 * center of rotation. Currently available in the CPU, WebGL, and WASM backends.
 *
 * @param image 4d tensor of shape `[batch, imageHeight, imageWidth, depth]`.
 * @param radians The amount of rotation.
 * @param fillValue The value to fill in the empty space leftover
 *     after rotation. Can be either a single grayscale value (0-255), or an
 *     array of three numbers `[red, green, blue]` specifying the red, green,
 *     and blue channels. Defaults to `0` (black).
 * @param center The center of rotation. Can be either a single value (0-1), or
 *     an array of two numbers `[centerX, centerY]`. Defaults to `0.5` (rotates
 *     the image around its center).
 *
 * @doc {heading: 'Operations', subheading: 'Images', namespace: 'image'}
 */
                function rotateWithOffset_(image, radians, fillValue, center) {
                    if (fillValue === void 0) {
                        fillValue = 0;
                    }
                    if (center === void 0) {
                        center = 0.5;
                    }
                    var $image = convertToTensor(image, 'image', 'rotateWithOffset', 'float32');
                    assert($image.rank === 4, function () {
                        return 'Error in rotateWithOffset: image must be rank 4,' + "but got rank ".concat($image.rank, ".");
                    });
                    var inputs = {
                        image: $image
                    };
                    var attrs = {
                        radians: radians,
                        fillValue: fillValue,
                        center: center
                    };
                    var res = ENGINE.runKernel(RotateWithOffset, inputs, attrs);
                    return res;
                }
                var rotateWithOffset = op({
                    rotateWithOffset_: rotateWithOffset_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                function nonMaxSuppSanityCheck(boxes, scores, maxOutputSize, iouThreshold, scoreThreshold, softNmsSigma) {
                    if (iouThreshold == null) {
                        iouThreshold = 0.5;
                    }
                    if (scoreThreshold == null) {
                        scoreThreshold = Number.NEGATIVE_INFINITY;
                    }
                    if (softNmsSigma == null) {
                        softNmsSigma = 0.0;
                    }
                    var numBoxes = boxes.shape[0];
                    maxOutputSize = Math.min(maxOutputSize, numBoxes);
                    assert(0 <= iouThreshold && iouThreshold <= 1, function () {
                        return "iouThreshold must be in [0, 1], but was '".concat(iouThreshold, "'");
                    });
                    assert(boxes.rank === 2, function () {
                        return "boxes must be a 2D tensor, but was of rank '".concat(boxes.rank, "'");
                    });
                    assert(boxes.shape[1] === 4, function () {
                        return "boxes must have 4 columns, but 2nd dimension was ".concat(boxes.shape[1]);
                    });
                    assert(scores.rank === 1, function () {
                        return 'scores must be a 1D tensor';
                    });
                    assert(scores.shape[0] === numBoxes, function () {
                        return "scores has incompatible shape with boxes. Expected ".concat(numBoxes, ", ") + "but was ".concat(scores.shape[0]);
                    });
                    assert(0 <= softNmsSigma && softNmsSigma <= 1, function () {
                        return "softNmsSigma must be in [0, 1], but was '".concat(softNmsSigma, "'");
                    });
                    return {
                        maxOutputSize: maxOutputSize,
                        iouThreshold: iouThreshold,
                        scoreThreshold: scoreThreshold,
                        softNmsSigma: softNmsSigma
                    };
                }
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Performs non maximum suppression of bounding boxes based on
 * iou (intersection over union).
 *
 * @param boxes a 2d tensor of shape `[numBoxes, 4]`. Each entry is
 *     `[y1, x1, y2, x2]`, where `(y1, x1)` and `(y2, x2)` are the corners of
 *     the bounding box.
 * @param scores a 1d tensor providing the box scores of shape `[numBoxes]`.
 * @param maxOutputSize The maximum number of boxes to be selected.
 * @param iouThreshold A float representing the threshold for deciding whether
 *     boxes overlap too much with respect to IOU. Must be between [0, 1].
 *     Defaults to 0.5 (50% box overlap).
 * @param scoreThreshold A threshold for deciding when to remove boxes based
 *     on score. Defaults to -inf, which means any score is accepted.
 * @return A 1D tensor with the selected box indices.
 *
 * @doc {heading: 'Operations', subheading: 'Images', namespace: 'image'}
 */
                function nonMaxSuppression_(boxes, scores, maxOutputSize, iouThreshold, scoreThreshold) {
                    if (iouThreshold === void 0) {
                        iouThreshold = 0.5;
                    }
                    if (scoreThreshold === void 0) {
                        scoreThreshold = Number.NEGATIVE_INFINITY;
                    }
                    var $boxes = convertToTensor(boxes, 'boxes', 'nonMaxSuppression', 'float32');
                    var $scores = convertToTensor(scores, 'scores', 'nonMaxSuppression', 'float32');
                    var inputs = nonMaxSuppSanityCheck($boxes, $scores, maxOutputSize, iouThreshold, scoreThreshold);
                    maxOutputSize = inputs.maxOutputSize;
                    iouThreshold = inputs.iouThreshold;
                    scoreThreshold = inputs.scoreThreshold;
                    var attrs = {
                        maxOutputSize: maxOutputSize,
                        iouThreshold: iouThreshold,
                        scoreThreshold: scoreThreshold
                    };
                    return ENGINE.runKernel(NonMaxSuppressionV3, {
                        boxes: $boxes,
                        scores: $scores
                    }, attrs);
                }
                var nonMaxSuppression = op({
                    nonMaxSuppression_: nonMaxSuppression_
                });
                /**
 * @license
 * Copyright 2019 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Inserts a value into a sorted array. This method allows duplicate, meaning it
 * allows inserting duplicate value, in which case, the element will be inserted
 * at the lowest index of the value.
 * @param arr The array to modify.
 * @param element The element to insert.
 * @param comparator Optional. If no comparator is specified, elements are
 * compared using array_util.defaultComparator, which is suitable for Strings
 * and Numbers in ascending arrays. If the array contains multiple instances of
 * the target value, the left-most instance will be returned. To provide a
 * comparator, it should take 2 arguments to compare and return a negative,
 * zero, or a positive number.
 */
                function binaryInsert(arr, element, comparator) {
                    var index = binarySearch(arr, element, comparator);
                    var insertionPoint = index < 0 ? -(index + 1) : index;
                    arr.splice(insertionPoint, 0, element);
                }
                /**
 * Searches the array for the target using binary search, returns the index
 * of the found element, or position to insert if element not found. If no
 * comparator is specified, elements are compared using array_
 * util.defaultComparator, which is suitable for Strings and Numbers in
 * ascending arrays. If the array contains multiple instances of the target
 * value, the left-most instance will be returned.
 * @param arr The array to be searched in.
 * @param target The target to be searched for.
 * @param comparator Should take 2 arguments to compare and return a negative,
 *    zero, or a positive number.
 * @return Lowest index of the target value if found, otherwise the insertion
 *    point where the target should be inserted, in the form of
 *    (-insertionPoint - 1).
 */
                function binarySearch(arr, target, comparator) {
                    return binarySearch_(arr, target, comparator || defaultComparator);
                }
                /**
 * Compares its two arguments for order.
 * @param a The first element to be compared.
 * @param b The second element to be compared.
 * @return A negative number, zero, or a positive number as the first
 *     argument is less than, equal to, or greater than the second.
 */
                function defaultComparator(a, b) {
                    return a > b ? 1 : a < b ? -1 : 0;
                }
                function binarySearch_(arr, target, comparator) {
                    var left = 0;
                    var right = arr.length;
                    var middle = 0;
                    var found = false;
                    while (left < right) {
                        middle = left + (right - left >>> 1);
                        var compareResult = comparator(target, arr[middle]);
                        if (compareResult > 0) {
                            left = middle + 1;
                        } else {
                            right = middle;
                            // If compareResult is 0, the value is found. We record it is found,
                            // and then keep looking because there may be duplicate.
                            found = !compareResult;
                        }
                    }
                    return found ? left : -left - 1;
                }
                function nonMaxSuppressionV3Impl(boxes, scores, maxOutputSize, iouThreshold, scoreThreshold) {
                    return nonMaxSuppressionImpl_(boxes, scores, maxOutputSize, iouThreshold, scoreThreshold, 0 /* softNmsSigma */
                    );
                }
                function nonMaxSuppressionV4Impl(boxes, scores, maxOutputSize, iouThreshold, scoreThreshold, padToMaxOutputSize) {
                    return nonMaxSuppressionImpl_(boxes, scores, maxOutputSize, iouThreshold, scoreThreshold, 0 /* softNmsSigma */
                        , false /* returnScoresTensor */
                        , padToMaxOutputSize /* padToMaxOutputSize */
                        , true /* returnValidOutputs */
                    );
                }
                function nonMaxSuppressionV5Impl(boxes, scores, maxOutputSize, iouThreshold, scoreThreshold, softNmsSigma) {
                    return nonMaxSuppressionImpl_(boxes, scores, maxOutputSize, iouThreshold, scoreThreshold, softNmsSigma, true /* returnScoresTensor */
                    );
                }
                function nonMaxSuppressionImpl_(boxes, scores, maxOutputSize, iouThreshold, scoreThreshold, softNmsSigma, returnScoresTensor, padToMaxOutputSize, returnValidOutputs) {
                    if (returnScoresTensor === void 0) {
                        returnScoresTensor = false;
                    }
                    if (padToMaxOutputSize === void 0) {
                        padToMaxOutputSize = false;
                    }
                    if (returnValidOutputs === void 0) {
                        returnValidOutputs = false;
                    }
                    // The list is sorted in ascending order, so that we can always pop the
                    // candidate with the largest score in O(1) time.
                    var candidates = [];
                    for (var i = 0; i < scores.length; i++) {
                        if (scores[i] > scoreThreshold) {
                            candidates.push({
                                score: scores[i],
                                boxIndex: i,
                                suppressBeginIndex: 0
                            });
                        }
                    }
                    candidates.sort(ascendingComparator);
                    // If softNmsSigma is 0, the outcome of this algorithm is exactly same as
                    // before.
                    var scale = softNmsSigma > 0 ? -0.5 / softNmsSigma : 0.0;
                    var selectedIndices = [];
                    var selectedScores = [];
                    while (selectedIndices.length < maxOutputSize && candidates.length > 0) {
                        var candidate = candidates.pop();
                        var originalScore = candidate.score
                            , boxIndex = candidate.boxIndex
                            , suppressBeginIndex = candidate.suppressBeginIndex;
                        if (originalScore < scoreThreshold) {
                            break;
                        }
                        // Overlapping boxes are likely to have similar scores, therefore we
                        // iterate through the previously selected boxes backwards in order to
                        // see if candidate's score should be suppressed. We use
                        // suppressBeginIndex to track and ensure a candidate can be suppressed
                        // by a selected box no more than once. Also, if the overlap exceeds
                        // iouThreshold, we simply ignore the candidate.
                        var ignoreCandidate = false;
                        for (var j = selectedIndices.length - 1; j >= suppressBeginIndex; --j) {
                            var iou = intersectionOverUnion(boxes, boxIndex, selectedIndices[j]);
                            if (iou >= iouThreshold) {
                                ignoreCandidate = true;
                                break;
                            }
                            candidate.score = candidate.score * suppressWeight(iouThreshold, scale, iou);
                            if (candidate.score <= scoreThreshold) {
                                break;
                            }
                        }
                        // At this point, if `candidate.score` has not dropped below
                        // `scoreThreshold`, then we know that we went through all of the
                        // previous selections and can safely update `suppressBeginIndex` to the
                        // end of the selected array. Then we can re-insert the candidate with
                        // the updated score and suppressBeginIndex back in the candidate list.
                        // If on the other hand, `candidate.score` has dropped below the score
                        // threshold, we will not add it back to the candidates list.
                        candidate.suppressBeginIndex = selectedIndices.length;
                        if (!ignoreCandidate) {
                            // Candidate has passed all the tests, and is not suppressed, so
                            // select the candidate.
                            if (candidate.score === originalScore) {
                                selectedIndices.push(boxIndex);
                                selectedScores.push(candidate.score);
                            } else if (candidate.score > scoreThreshold) {
                                // Candidate's score is suppressed but is still high enough to be
                                // considered, so add back to the candidates list.
                                binaryInsert(candidates, candidate, ascendingComparator);
                            }
                        }
                    }
                    // NonMaxSuppressionV4 feature: padding output to maxOutputSize.
                    var validOutputs = selectedIndices.length;
                    var elemsToPad = maxOutputSize - validOutputs;
                    if (padToMaxOutputSize && elemsToPad > 0) {
                        selectedIndices.push.apply(selectedIndices, __spreadArray([], __read(new Array(elemsToPad).fill(0)), false));
                        selectedScores.push.apply(selectedScores, __spreadArray([], __read(new Array(elemsToPad).fill(0.0)), false));
                    }
                    var result = {
                        selectedIndices: selectedIndices
                    };
                    if (returnScoresTensor) {
                        result['selectedScores'] = selectedScores;
                    }
                    if (returnValidOutputs) {
                        result['validOutputs'] = validOutputs;
                    }
                    return result;
                }
                function intersectionOverUnion(boxes, i, j) {
                    var iCoord = boxes.subarray(i * 4, i * 4 + 4);
                    var jCoord = boxes.subarray(j * 4, j * 4 + 4);
                    var yminI = Math.min(iCoord[0], iCoord[2]);
                    var xminI = Math.min(iCoord[1], iCoord[3]);
                    var ymaxI = Math.max(iCoord[0], iCoord[2]);
                    var xmaxI = Math.max(iCoord[1], iCoord[3]);
                    var yminJ = Math.min(jCoord[0], jCoord[2]);
                    var xminJ = Math.min(jCoord[1], jCoord[3]);
                    var ymaxJ = Math.max(jCoord[0], jCoord[2]);
                    var xmaxJ = Math.max(jCoord[1], jCoord[3]);
                    var areaI = (ymaxI - yminI) * (xmaxI - xminI);
                    var areaJ = (ymaxJ - yminJ) * (xmaxJ - xminJ);
                    if (areaI <= 0 || areaJ <= 0) {
                        return 0.0;
                    }
                    var intersectionYmin = Math.max(yminI, yminJ);
                    var intersectionXmin = Math.max(xminI, xminJ);
                    var intersectionYmax = Math.min(ymaxI, ymaxJ);
                    var intersectionXmax = Math.min(xmaxI, xmaxJ);
                    var intersectionArea = Math.max(intersectionYmax - intersectionYmin, 0.0) * Math.max(intersectionXmax - intersectionXmin, 0.0);
                    return intersectionArea / (areaI + areaJ - intersectionArea);
                }
                // A Gaussian penalty function, this method always returns values in [0, 1].
                // The weight is a function of similarity, the more overlap two boxes are, the
                // smaller the weight is, meaning highly overlapping boxe will be significantly
                // penalized. On the other hand, a non-overlapping box will not be penalized.
                function suppressWeight(iouThreshold, scale, iou) {
                    var weight = Math.exp(scale * iou * iou);
                    return iou <= iouThreshold ? weight : 0.0;
                }
                function ascendingComparator(c1, c2) {
                    // For objects with same scores, we make the object with the larger index go
                    // first. In an array that pops from the end, this means that the object with
                    // the smaller index will be popped first. This ensures the same output as
                    // the TensorFlow python version.
                    return c1.score - c2.score || c1.score === c2.score && c2.boxIndex - c1.boxIndex;
                }
                /**
 * Performs non maximum suppression of bounding boxes based on
 * iou (intersection over union).
 *
 * This is the async version of `nonMaxSuppression`
 *
 * @param boxes a 2d tensor of shape `[numBoxes, 4]`. Each entry is
 *     `[y1, x1, y2, x2]`, where `(y1, x1)` and `(y2, x2)` are the corners of
 *     the bounding box.
 * @param scores a 1d tensor providing the box scores of shape `[numBoxes]`.
 * @param maxOutputSize The maximum number of boxes to be selected.
 * @param iouThreshold A float representing the threshold for deciding whether
 *     boxes overlap too much with respect to IOU. Must be between [0, 1].
 *     Defaults to 0.5 (50% box overlap).
 * @param scoreThreshold A threshold for deciding when to remove boxes based
 *     on score. Defaults to -inf, which means any score is accepted.
 * @return A 1D tensor with the selected box indices.
 *
 * @doc {heading: 'Operations', subheading: 'Images', namespace: 'image'}
 */
                function nonMaxSuppressionAsync_(boxes, scores, maxOutputSize, iouThreshold, scoreThreshold) {
                    if (iouThreshold === void 0) {
                        iouThreshold = 0.5;
                    }
                    if (scoreThreshold === void 0) {
                        scoreThreshold = Number.NEGATIVE_INFINITY;
                    }
                    return __awaiter(this, void 0, void 0, function () {
                        var $boxes, $scores, inputs, boxesAndScores, boxesVals, scoresVals, selectedIndices;
                        return __generator(this, function (_a) {
                            switch (_a.label) {
                                case 0:
                                    $boxes = convertToTensor(boxes, 'boxes', 'nonMaxSuppressionAsync');
                                    $scores = convertToTensor(scores, 'scores', 'nonMaxSuppressionAsync');
                                    inputs = nonMaxSuppSanityCheck($boxes, $scores, maxOutputSize, iouThreshold, scoreThreshold);
                                    maxOutputSize = inputs.maxOutputSize;
                                    iouThreshold = inputs.iouThreshold;
                                    scoreThreshold = inputs.scoreThreshold;
                                    return [4 /*yield*/
                                        , Promise.all([$boxes.data(), $scores.data()])];
                                case 1:
                                    boxesAndScores = _a.sent();
                                    boxesVals = boxesAndScores[0];
                                    scoresVals = boxesAndScores[1];
                                    selectedIndices = nonMaxSuppressionV3Impl(boxesVals, scoresVals, maxOutputSize, iouThreshold, scoreThreshold).selectedIndices;
                                    if ($boxes !== boxes) {
                                        $boxes.dispose();
                                    }
                                    if ($scores !== scores) {
                                        $scores.dispose();
                                    }
                                    return [2 /*return*/
                                        , tensor1d(selectedIndices, 'int32')];
                            }
                        });
                    });
                }
                var nonMaxSuppressionAsync = nonMaxSuppressionAsync_;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Performs non maximum suppression of bounding boxes based on
 * iou (intersection over union).
 *
 * This op also supports a Soft-NMS mode (cf.
 * Bodla et al, https://arxiv.org/abs/1704.04503) where boxes reduce the score
 * of other overlapping boxes, therefore favoring different regions of the image
 * with high scores. To enable this Soft-NMS mode, set the `softNmsSigma`
 * parameter to be larger than 0.
 *
 * @param boxes a 2d tensor of shape `[numBoxes, 4]`. Each entry is
 *     `[y1, x1, y2, x2]`, where `(y1, x1)` and `(y2, x2)` are the corners of
 *     the bounding box.
 * @param scores a 1d tensor providing the box scores of shape `[numBoxes]`.
 * @param maxOutputSize The maximum number of boxes to be selected.
 * @param iouThreshold A float representing the threshold for deciding whether
 *     boxes overlap too much with respect to IOU. Must be between [0, 1].
 *     Defaults to 0.5 (50% box overlap).
 * @param scoreThreshold A threshold for deciding when to remove boxes based
 *     on score. Defaults to -inf, which means any score is accepted.
 * @param softNmsSigma A float representing the sigma parameter for Soft NMS.
 *     When sigma is 0, it falls back to nonMaxSuppression.
 * @return A map with the following properties:
 *     - selectedIndices: A 1D tensor with the selected box indices.
 *     - selectedScores: A 1D tensor with the corresponding scores for each
 *       selected box.
 *
 * @doc {heading: 'Operations', subheading: 'Images', namespace: 'image'}
 */
                function nonMaxSuppressionWithScore_(boxes, scores, maxOutputSize, iouThreshold, scoreThreshold, softNmsSigma) {
                    if (iouThreshold === void 0) {
                        iouThreshold = 0.5;
                    }
                    if (scoreThreshold === void 0) {
                        scoreThreshold = Number.NEGATIVE_INFINITY;
                    }
                    if (softNmsSigma === void 0) {
                        softNmsSigma = 0.0;
                    }
                    var $boxes = convertToTensor(boxes, 'boxes', 'nonMaxSuppression');
                    var $scores = convertToTensor(scores, 'scores', 'nonMaxSuppression');
                    var params = nonMaxSuppSanityCheck($boxes, $scores, maxOutputSize, iouThreshold, scoreThreshold, softNmsSigma);
                    maxOutputSize = params.maxOutputSize;
                    iouThreshold = params.iouThreshold;
                    scoreThreshold = params.scoreThreshold;
                    softNmsSigma = params.softNmsSigma;
                    var inputs = {
                        boxes: $boxes,
                        scores: $scores
                    };
                    var attrs = {
                        maxOutputSize: maxOutputSize,
                        iouThreshold: iouThreshold,
                        scoreThreshold: scoreThreshold,
                        softNmsSigma: softNmsSigma
                    };
                    // tslint:disable-next-line: no-unnecessary-type-assertion
                    var result = ENGINE.runKernel(NonMaxSuppressionV5, inputs, attrs);
                    return {
                        selectedIndices: result[0],
                        selectedScores: result[1]
                    };
                }
                var nonMaxSuppressionWithScore = op({
                    nonMaxSuppressionWithScore_: nonMaxSuppressionWithScore_
                });
                /**
 * Asynchronously performs non maximum suppression of bounding boxes based on
 * iou (intersection over union).
 *
 * This op also supports a Soft-NMS mode (cf.
 * Bodla et al, https://arxiv.org/abs/1704.04503) where boxes reduce the score
 * of other overlapping boxes, therefore favoring different regions of the image
 * with high scores. To enable this Soft-NMS mode, set the `softNmsSigma`
 * parameter to be larger than 0.
 *
 * @param boxes a 2d tensor of shape `[numBoxes, 4]`. Each entry is
 *     `[y1, x1, y2, x2]`, where `(y1, x1)` and `(y2, x2)` are the corners of
 *     the bounding box.
 * @param scores a 1d tensor providing the box scores of shape `[numBoxes]`.
 * @param maxOutputSize The maximum number of boxes to be selected.
 * @param iouThreshold A float representing the threshold for deciding whether
 *     boxes overlap too much with respect to IOU. Must be between [0, 1].
 *     Defaults to 0.5 (50% box overlap).
 * @param scoreThreshold A threshold for deciding when to remove boxes based
 *     on score. Defaults to -inf, which means any score is accepted.
 * @param softNmsSigma A float representing the sigma parameter for Soft NMS.
 *     When sigma is 0, it falls back to nonMaxSuppression.
 * @return A map with the following properties:
 *     - selectedIndices: A 1D tensor with the selected box indices.
 *     - selectedScores: A 1D tensor with the corresponding scores for each
 *       selected box.
 *
 * @doc {heading: 'Operations', subheading: 'Images', namespace: 'image'}
 */
                function nonMaxSuppressionWithScoreAsync_(boxes, scores, maxOutputSize, iouThreshold, scoreThreshold, softNmsSigma) {
                    if (iouThreshold === void 0) {
                        iouThreshold = 0.5;
                    }
                    if (scoreThreshold === void 0) {
                        scoreThreshold = Number.NEGATIVE_INFINITY;
                    }
                    if (softNmsSigma === void 0) {
                        softNmsSigma = 0.0;
                    }
                    return __awaiter(this, void 0, void 0, function () {
                        var $boxes, $scores, params, boxesAndScores, boxesVals, scoresVals, _a, selectedIndices, selectedScores;
                        return __generator(this, function (_b) {
                            switch (_b.label) {
                                case 0:
                                    $boxes = convertToTensor(boxes, 'boxes', 'nonMaxSuppressionAsync');
                                    $scores = convertToTensor(scores, 'scores', 'nonMaxSuppressionAsync');
                                    params = nonMaxSuppSanityCheck($boxes, $scores, maxOutputSize, iouThreshold, scoreThreshold, softNmsSigma);
                                    maxOutputSize = params.maxOutputSize;
                                    iouThreshold = params.iouThreshold;
                                    scoreThreshold = params.scoreThreshold;
                                    softNmsSigma = params.softNmsSigma;
                                    return [4 /*yield*/
                                        , Promise.all([$boxes.data(), $scores.data()])];
                                case 1:
                                    boxesAndScores = _b.sent();
                                    boxesVals = boxesAndScores[0];
                                    scoresVals = boxesAndScores[1];
                                    _a = nonMaxSuppressionV5Impl(boxesVals, scoresVals, maxOutputSize, iouThreshold, scoreThreshold, softNmsSigma),
                                        selectedIndices = _a.selectedIndices,
                                        selectedScores = _a.selectedScores;
                                    if ($boxes !== boxes) {
                                        $boxes.dispose();
                                    }
                                    if ($scores !== scores) {
                                        $scores.dispose();
                                    }
                                    return [2 /*return*/
                                        , {
                                            selectedIndices: tensor1d(selectedIndices, 'int32'),
                                            selectedScores: tensor1d(selectedScores)
                                        }];
                            }
                        });
                    });
                }
                var nonMaxSuppressionWithScoreAsync = nonMaxSuppressionWithScoreAsync_;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Asynchronously performs non maximum suppression of bounding boxes based on
 * iou (intersection over union), with an option to pad results.
 *
 * @param boxes a 2d tensor of shape `[numBoxes, 4]`. Each entry is
 *     `[y1, x1, y2, x2]`, where `(y1, x1)` and `(y2, x2)` are the corners of
 *     the bounding box.
 * @param scores a 1d tensor providing the box scores of shape `[numBoxes]`.
 * @param maxOutputSize The maximum number of boxes to be selected.
 * @param iouThreshold A float representing the threshold for deciding whether
 *     boxes overlap too much with respect to IOU. Must be between [0, 1].
 *     Defaults to 0.5 (50% box overlap).
 * @param scoreThreshold A threshold for deciding when to remove boxes based
 *     on score. Defaults to -inf, which means any score is accepted.
 * @param padToMaxOutputSize Defaults to false. If true, size of output
 *     `selectedIndices` is padded to maxOutputSize.
 * @return A map with the following properties:
 *     - selectedIndices: A 1D tensor with the selected box indices.
 *     - validOutputs: A scalar denoting how many elements in `selectedIndices`
 *       are valid. Valid elements occur first, then padding.
 *
 * @doc {heading: 'Operations', subheading: 'Images', namespace: 'image'}
 */
                function nonMaxSuppressionPadded_(boxes, scores, maxOutputSize, iouThreshold, scoreThreshold, padToMaxOutputSize) {
                    if (iouThreshold === void 0) {
                        iouThreshold = 0.5;
                    }
                    if (scoreThreshold === void 0) {
                        scoreThreshold = Number.NEGATIVE_INFINITY;
                    }
                    if (padToMaxOutputSize === void 0) {
                        padToMaxOutputSize = false;
                    }
                    var $boxes = convertToTensor(boxes, 'boxes', 'nonMaxSuppression');
                    var $scores = convertToTensor(scores, 'scores', 'nonMaxSuppression');
                    var params = nonMaxSuppSanityCheck($boxes, $scores, maxOutputSize, iouThreshold, scoreThreshold, null /* softNmsSigma */
                    );
                    var $maxOutputSize = params.maxOutputSize;
                    var $iouThreshold = params.iouThreshold;
                    var $scoreThreshold = params.scoreThreshold;
                    var inputs = {
                        boxes: $boxes,
                        scores: $scores
                    };
                    var attrs = {
                        maxOutputSize: $maxOutputSize,
                        iouThreshold: $iouThreshold,
                        scoreThreshold: $scoreThreshold,
                        padToMaxOutputSize: padToMaxOutputSize
                    };
                    // tslint:disable-next-line: no-unnecessary-type-assertion
                    var result = ENGINE.runKernel(NonMaxSuppressionV4, inputs, attrs);
                    return {
                        selectedIndices: result[0],
                        validOutputs: result[1]
                    };
                }
                var nonMaxSuppressionPadded = op({
                    nonMaxSuppressionPadded_: nonMaxSuppressionPadded_
                });
                /**
 * Asynchronously performs non maximum suppression of bounding boxes based on
 * iou (intersection over union), with an option to pad results.
 *
 * @param boxes a 2d tensor of shape `[numBoxes, 4]`. Each entry is
 *     `[y1, x1, y2, x2]`, where `(y1, x1)` and `(y2, x2)` are the corners of
 *     the bounding box.
 * @param scores a 1d tensor providing the box scores of shape `[numBoxes]`.
 * @param maxOutputSize The maximum number of boxes to be selected.
 * @param iouThreshold A float representing the threshold for deciding whether
 *     boxes overlap too much with respect to IOU. Must be between [0, 1].
 *     Defaults to 0.5 (50% box overlap).
 * @param scoreThreshold A threshold for deciding when to remove boxes based
 *     on score. Defaults to -inf, which means any score is accepted.
 * @param padToMaxOutputSize Defaults to false. If true, size of output
 *     `selectedIndices` is padded to maxOutputSize.
 * @return A map with the following properties:
 *     - selectedIndices: A 1D tensor with the selected box indices.
 *     - validOutputs: A scalar denoting how many elements in `selectedIndices`
 *       are valid. Valid elements occur first, then padding.
 *
 * @doc {heading: 'Operations', subheading: 'Images', namespace: 'image'}
 */
                function nonMaxSuppressionPaddedAsync_(boxes, scores, maxOutputSize, iouThreshold, scoreThreshold, padToMaxOutputSize) {
                    if (iouThreshold === void 0) {
                        iouThreshold = 0.5;
                    }
                    if (scoreThreshold === void 0) {
                        scoreThreshold = Number.NEGATIVE_INFINITY;
                    }
                    if (padToMaxOutputSize === void 0) {
                        padToMaxOutputSize = false;
                    }
                    return __awaiter(this, void 0, void 0, function () {
                        var $boxes, $scores, params, $maxOutputSize, $iouThreshold, $scoreThreshold, _a, boxesVals, scoresVals, _b, selectedIndices, validOutputs;
                        return __generator(this, function (_c) {
                            switch (_c.label) {
                                case 0:
                                    $boxes = convertToTensor(boxes, 'boxes', 'nonMaxSuppressionAsync');
                                    $scores = convertToTensor(scores, 'scores', 'nonMaxSuppressionAsync');
                                    params = nonMaxSuppSanityCheck($boxes, $scores, maxOutputSize, iouThreshold, scoreThreshold, null /* softNmsSigma */
                                    );
                                    $maxOutputSize = params.maxOutputSize;
                                    $iouThreshold = params.iouThreshold;
                                    $scoreThreshold = params.scoreThreshold;
                                    return [4 /*yield*/
                                        , Promise.all([$boxes.data(), $scores.data()])];
                                case 1:
                                    _a = __read.apply(void 0, [_c.sent(), 2]),
                                        boxesVals = _a[0],
                                        scoresVals = _a[1];
                                    _b = nonMaxSuppressionV4Impl(boxesVals, scoresVals, $maxOutputSize, $iouThreshold, $scoreThreshold, padToMaxOutputSize),
                                        selectedIndices = _b.selectedIndices,
                                        validOutputs = _b.validOutputs;
                                    if ($boxes !== boxes) {
                                        $boxes.dispose();
                                    }
                                    if ($scores !== scores) {
                                        $scores.dispose();
                                    }
                                    return [2 /*return*/
                                        , {
                                            selectedIndices: tensor1d(selectedIndices, 'int32'),
                                            validOutputs: scalar(validOutputs, 'int32')
                                        }];
                            }
                        });
                    });
                }
                var nonMaxSuppressionPaddedAsync = nonMaxSuppressionPaddedAsync_;
                /**
 * Bilinear resize a single 3D image or a batch of 3D images to a new shape.
 *
 * @param images The images, of rank 4 or rank 3, of shape
 *     `[batch, height, width, inChannels]`. If rank 3, batch of 1 is assumed.
 * @param size The new shape `[newHeight, newWidth]` to resize the
 *     images to. Each channel is resized individually.
 * @param alignCorners Defaults to `false`. If true, rescale
 *     input by `(new_height - 1) / (height - 1)`, which exactly aligns the 4
 *     corners of images and resized images. If false, rescale by
 *     `new_height / height`. Treat similarly the width dimension.
 * @param halfPixelCenters Defaults to `false`. Whether to assume pixel centers
 *     are at 0.5, which would make the floating point coordinates of the top
 *     left pixel 0.5, 0.5.
 *
 * @doc {heading: 'Operations', subheading: 'Images', namespace: 'image'}
 */
                function resizeBilinear_(images, size, alignCorners, halfPixelCenters) {
                    if (alignCorners === void 0) {
                        alignCorners = false;
                    }
                    if (halfPixelCenters === void 0) {
                        halfPixelCenters = false;
                    }
                    var $images = convertToTensor(images, 'images', 'resizeBilinear');
                    assert($images.rank === 3 || $images.rank === 4, function () {
                        return "Error in resizeBilinear: x must be rank 3 or 4, but got " + "rank ".concat($images.rank, ".");
                    });
                    assert(size.length === 2, function () {
                        return "Error in resizeBilinear: new shape must 2D, but got shape " + "".concat(size, ".");
                    });
                    assert(halfPixelCenters === false || alignCorners === false, function () {
                        return "Error in resizeBilinear: If halfPixelCenters is true, " + "alignCorners must be false.";
                    });
                    var batchImages = $images;
                    var reshapedTo4D = false;
                    if ($images.rank === 3) {
                        reshapedTo4D = true;
                        batchImages = reshape($images, [1, $images.shape[0], $images.shape[1], $images.shape[2]]);
                    }
                    __read(size, 0);
                    var inputs = {
                        images: batchImages
                    };
                    var attrs = {
                        alignCorners: alignCorners,
                        halfPixelCenters: halfPixelCenters,
                        size: size
                    };
                    // tslint:disable-next-line: no-unnecessary-type-assertion
                    var res = ENGINE.runKernel(ResizeBilinear, inputs, attrs);
                    if (reshapedTo4D) {
                        return reshape(res, [res.shape[1], res.shape[2], res.shape[3]]);
                    }
                    return res;
                }
                var resizeBilinear = op({
                    resizeBilinear_: resizeBilinear_
                });
                /**
 * NearestNeighbor resize a batch of 3D images to a new shape.
 *
 * @param images The images, of rank 4 or rank 3, of shape
 *     `[batch, height, width, inChannels]`. If rank 3, batch of 1 is assumed.
 * @param size The new shape `[newHeight, newWidth]` to resize the
 *     images to. Each channel is resized individually.
 * @param alignCorners Defaults to False. If true, rescale
 *     input by `(new_height - 1) / (height - 1)`, which exactly aligns the 4
 *     corners of images and resized images. If false, rescale by
 *     `new_height / height`. Treat similarly the width dimension.
 * @param halfPixelCenters Defaults to `false`. Whether to assume pixels are of
 *      half the actual dimensions, and yield more accurate resizes. This flag
 *      would also make the floating point coordinates of the top left pixel
 *      0.5, 0.5.
 *
 * @doc {heading: 'Operations', subheading: 'Images', namespace: 'image'}
 */
                function resizeNearestNeighbor_(images, size, alignCorners, halfPixelCenters) {
                    if (alignCorners === void 0) {
                        alignCorners = false;
                    }
                    if (halfPixelCenters === void 0) {
                        halfPixelCenters = false;
                    }
                    var $images = convertToTensor(images, 'images', 'resizeNearestNeighbor');
                    assert($images.rank === 3 || $images.rank === 4, function () {
                        return "Error in resizeNearestNeighbor: x must be rank 3 or 4, but got " + "rank ".concat($images.rank, ".");
                    });
                    assert(size.length === 2, function () {
                        return "Error in resizeNearestNeighbor: new shape must 2D, but got shape " + "".concat(size, ".");
                    });
                    assert($images.dtype === 'float32' || $images.dtype === 'int32', function () {
                        return '`images` must have `int32` or `float32` as dtype';
                    });
                    assert(halfPixelCenters === false || alignCorners === false, function () {
                        return "Error in resizeNearestNeighbor: If halfPixelCenters is true, " + "alignCorners must be false.";
                    });
                    var batchImages = $images;
                    var reshapedTo4D = false;
                    if ($images.rank === 3) {
                        reshapedTo4D = true;
                        batchImages = reshape($images, [1, $images.shape[0], $images.shape[1], $images.shape[2]]);
                    }
                    __read(size, 0);
                    var inputs = {
                        images: batchImages
                    };
                    var attrs = {
                        alignCorners: alignCorners,
                        halfPixelCenters: halfPixelCenters,
                        size: size
                    };
                    // tslint:disable-next-line: no-unnecessary-type-assertion
                    var res = ENGINE.runKernel(ResizeNearestNeighbor, inputs, attrs);
                    if (reshapedTo4D) {
                        return reshape(res, [res.shape[1], res.shape[2], res.shape[3]]);
                    }
                    return res;
                }
                var resizeNearestNeighbor = op({
                    resizeNearestNeighbor_: resizeNearestNeighbor_
                });
                /**
 * Performs image binarization with corresponding threshold
 * (depends on the method)value, which creates a binary image from a grayscale.
 * @param image 3d tensor of shape [imageHeight,imageWidth, depth],
 * where imageHeight and imageWidth must be positive.The image color
 * range should be [0, 255].
 * @param method Optional string from `'binary' | 'otsu'`
 * which specifies the method for thresholding. Defaults to 'binary'.
 * @param inverted Optional boolean whichspecifies
 * if colours should be inverted. Defaults to false.
 * @param threshValue Optional number which defines threshold value from 0 to 1.
 * Defaults to 0.5.
 * @return A 3d tensor of shape [imageHeight,imageWidth, depth], which
 * contains binarized image.
 */
                function threshold_(image, method, inverted, threshValue) {
                    var _a;
                    if (method === void 0) {
                        method = 'binary';
                    }
                    if (inverted === void 0) {
                        inverted = false;
                    }
                    if (threshValue === void 0) {
                        threshValue = 0.5;
                    }
                    var $image = convertToTensor(image, 'image', 'threshold');
                    /* 0.2989, 0.5870, 0.1140 are represent luma coefficients in CCIR601.
    Reference for converting between RGB and grayscale: https://en.wikipedia.org/wiki/Luma_%28video%29  */
                    var RED_INTENCITY_COEF = 0.2989;
                    var GREEN_INTENCITY_COEF = 0.5870;
                    var BLUE_INTENCITY_COEF = 0.1140;
                    var totalPixelsInImage = $image.shape[0] * $image.shape[1];
                    var $threshold = mul(tensor1d([threshValue]), 255);
                    var r, g, b, grayscale;
                    assert($image.rank === 3, function () {
                        return 'Error in threshold: image must be rank 3,' + "but got rank ".concat($image.rank, ".");
                    });
                    assert($image.shape[2] === 3 || $image.shape[2] === 1, function () {
                        return 'Error in threshold: ' + 'image color channel must be equal to 3 or 1' + "but got ".concat($image.shape[2], ".");
                    });
                    assert($image.dtype === 'int32' || $image.dtype === 'float32', function () {
                        return 'Error in dtype: image dtype must be int32 or float32,' + "but got dtype ".concat($image.dtype, ".");
                    });
                    assert(method === 'otsu' || method === 'binary', function () {
                        return "Method must be binary or otsu, but was ".concat(method);
                    });
                    if ($image.shape[2] === 3) {
                        _a = __read(split($image, [1, 1, 1], -1), 3),
                            r = _a[0],
                            g = _a[1],
                            b = _a[2];
                        var $r = mul(r, RED_INTENCITY_COEF);
                        var $g = mul(g, GREEN_INTENCITY_COEF);
                        var $b = mul(b, BLUE_INTENCITY_COEF);
                        grayscale = add(add($r, $g), $b);
                    } else {
                        grayscale = image;
                    }
                    if (method === 'otsu') {
                        var $histogram = bincount(cast(round(grayscale), 'int32'), tensor([]), 256);
                        $threshold = otsu($histogram, totalPixelsInImage);
                    }
                    var invCondition = inverted ? lessEqual(grayscale, $threshold) : greater(grayscale, $threshold);
                    var result = cast(mul(invCondition, 255), 'int32');
                    return result;
                }
                function otsu(histogram, total) {
                    var bestThresh = tensor1d([-1]);
                    var bestInBetVar = tensor1d([0]);
                    var cInBetVar = tensor1d([0]);
                    var classFirst, classSecond, meanFirst, meanSec, weightForeground, weightBack;
                    for (var index = 0; index < histogram.size - 1; index++) {
                        classFirst = slice(histogram, 0, index + 1);
                        classSecond = slice(histogram, index + 1);
                        weightForeground = div(sum(classFirst), total);
                        weightBack = div(sum(classSecond), total);
                        var meanFirstDivA = sum(mul(classFirst, range(0, classFirst.size)));
                        meanFirst = div(meanFirstDivA, sum(classFirst));
                        var meanSecFill = fill(classSecond.shape, classFirst.size);
                        var meanSecAdd = add(range(0, classSecond.size), meanSecFill);
                        var meanSecMul = mul(classSecond, meanSecAdd);
                        meanSec = div(sum(meanSecMul), sum(classSecond));
                        var cInBetVarSubA = sub(meanFirst, meanSec);
                        var cInBetVarSubB = sub(meanFirst, meanSec);
                        var cInBetVarMul = mul(weightForeground, weightBack);
                        cInBetVar = mul(mul(cInBetVarMul, cInBetVarSubA), cInBetVarSubB);
                        var condition = greater(cInBetVar, bestInBetVar);
                        bestInBetVar = where(condition, cInBetVar, bestInBetVar);
                        bestThresh = where(condition, tensor1d([index]), bestThresh);
                    }
                    return bestThresh;
                }
                var threshold = op({
                    threshold_: threshold_
                });
                /**
 * @license
 * Copyright 2021 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Applies the given transform(s) to the image(s).
 *
 * @param image 4d tensor of shape `[batch, imageHeight, imageWidth, depth]`.
 * @param transforms Projective transform matrix/matrices. A tensor1d of length
 *     8 or tensor of size N x 8. If one row of transforms is [a0, a1, a2, b0,
 *     b1, b2, c0, c1], then it maps the output point (x, y) to a transformed
 *     input point (x', y') = ((a0 x + a1 y + a2) / k, (b0 x + b1 y + b2) / k),
 *     where k = c0 x + c1 y + 1. The transforms are inverted compared to the
 *     transform mapping input points to output points.
 * @param interpolation Interpolation mode.
 *     Supported values: 'nearest', 'bilinear'. Default to 'nearest'.
 * @param fillMode Points outside the boundaries of the input are filled
 *     according to the given mode, one of 'constant', 'reflect', 'wrap',
 *     'nearest'. Default to 'constant'.
 *     'reflect': (d c b a | a b c d | d c b a ) The input is extended by
 *     reflecting about the edge of the last pixel.
 *     'constant': (k k k k | a b c d | k k k k) The input is extended by
 *     filling all values beyond the edge with the same constant value k.
 *     'wrap': (a b c d | a b c d | a b c d) The input is extended by
 *     wrapping around to the opposite edge.
 *     'nearest': (a a a a | a b c d | d d d d) The input is extended by
 *     the nearest pixel.
 * @param fillValue A float represents the value to be filled outside the
 *     boundaries when fillMode is 'constant'.
 * @param Output dimension after the transform, [height, width]. If undefined,
 *     output is the same size as input image.
 *
 * @doc {heading: 'Operations', subheading: 'Images', namespace: 'image'}
 */
                function transform_(image, transforms, interpolation, fillMode, fillValue, outputShape) {
                    if (interpolation === void 0) {
                        interpolation = 'nearest';
                    }
                    if (fillMode === void 0) {
                        fillMode = 'constant';
                    }
                    if (fillValue === void 0) {
                        fillValue = 0;
                    }
                    var $image = convertToTensor(image, 'image', 'transform', 'float32');
                    var $transforms = convertToTensor(transforms, 'transforms', 'transform', 'float32');
                    assert($image.rank === 4, function () {
                        return 'Error in transform: image must be rank 4,' + "but got rank ".concat($image.rank, ".");
                    });
                    assert($transforms.rank === 2 && ($transforms.shape[0] === $image.shape[0] || $transforms.shape[0] === 1) && $transforms.shape[1] === 8, function () {
                        return "Error in transform: Input transform should be batch x 8 or 1 x 8";
                    });
                    assert(outputShape == null || outputShape.length === 2, function () {
                        return 'Error in transform: outputShape must be [height, width] or null, ' + "but got ".concat(outputShape, ".");
                    });
                    var inputs = {
                        image: $image,
                        transforms: $transforms
                    };
                    var attrs = {
                        interpolation: interpolation,
                        fillMode: fillMode,
                        fillValue: fillValue,
                        outputShape: outputShape
                    };
                    return ENGINE.runKernel(Transform, inputs, attrs);
                }
                var transform = op({
                    transform_: transform_
                });
                /**
 * Copy a tensor setting everything outside a central band in each innermost
 * matrix to zero.
 *
 * The band part is computed as follows: Assume input has `k` dimensions
 * `[I, J, K, ..., M, N]`, then the output is a tensor with the same shape where
 * `band[i, j, k, ..., m, n] = in_band(m, n) * input[i, j, k, ..., m, n]`.
 * The indicator function
 * `in_band(m, n) = (num_lower < 0 || (m-n) <= num_lower)`
 * `&& (num_upper < 0 || (n-m) <= num_upper)`
 *
 * ```js
 * const x = tf.tensor2d([[ 0,  1,  2, 3],
 *                        [-1,  0,  1, 2],
 *                        [-2, -1,  0, 1],
 *                        [-3, -2, -1, 0]]);
 * let y = tf.linalg.bandPart(x, 1, -1);
 * y.print(); // [[ 0,  1,  2, 3],
 *            //  [-1,  0,  1, 2],
 *            //  [ 0, -1,  0, 1],
 *            //  [ 0, 0 , -1, 0]]
 * let z = tf.linalg.bandPart(x, 2, 1);
 * z.print(); // [[ 0,  1,  0, 0],
 *            //  [-1,  0,  1, 0],
 *            //  [-2, -1,  0, 1],
 *            //  [ 0, -2, -1, 0]]
 * ```
 *
 * @param x Rank `k` tensor
 * @param numLower Number of subdiagonals to keep.
 *   If negative, keep entire lower triangle.
 * @param numUpper Number of subdiagonals to keep.
 *   If negative, keep entire upper triangle.
 * @returns Rank `k` tensor of the same shape as input.
 *   The extracted banded tensor.
 *
 * @doc {heading:'Operations', subheading:'Linear Algebra', namespace:'linalg'}
 */
                function bandPart_(a, numLower, numUpper) {
                    assert(numLower % 1 === 0, function () {
                        return "bandPart(): numLower must be an integer, got ".concat(numLower, ".");
                    });
                    assert(numUpper % 1 === 0, function () {
                        return "bandPart(): numUpper must be an integer, got ".concat(numUpper, ".");
                    });
                    var $a = convertToTensor(a, 'a', 'bandPart');
                    assert($a.rank >= 2, function () {
                        return "bandPart(): Rank must be at least 2, got ".concat($a.rank, ".");
                    });
                    var shape = $a.shape;
                    var _a = __read($a.shape.slice(-2), 2)
                        , M = _a[0]
                        , N = _a[1];
                    if (!(numLower <= M)) {
                        throw new Error("bandPart(): numLower (".concat(numLower, ")") + " must not be greater than the number of rows (".concat(M, ")."));
                    }
                    if (!(numUpper <= N)) {
                        throw new Error("bandPart(): numUpper (".concat(numUpper, ")") + " must not be greater than the number of columns (".concat(N, ")."));
                    }
                    if (numLower < 0) {
                        numLower = M;
                    }
                    if (numUpper < 0) {
                        numUpper = N;
                    }
                    var i = reshape(range(0, M, 1, 'int32'), [-1, 1]);
                    var j = range(0, N, 1, 'int32');
                    var ij = sub(i, j);
                    var inBand = logicalAnd(lessEqual(ij, scalar(+numLower, 'int32')), greaterEqual(ij, scalar(-numUpper, 'int32')));
                    var zero = zeros([M, N], $a.dtype);
                    return reshape(stack(unstack(reshape($a, [-1, M, N])).map(function (mat) {
                        return where(inBand, mat, zero);
                    })), shape);
                }
                var bandPart = op({
                    bandPart_: bandPart_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Gram-Schmidt orthogonalization.
 *
 * ```js
 * const x = tf.tensor2d([[1, 2], [3, 4]]);
 * let y = tf.linalg.gramSchmidt(x);
 * y.print();
 * console.log('Orthogonalized:');
 * y.dot(y.transpose()).print();  // should be nearly the identity matrix.
 * console.log('First row direction maintained:');
 * const data = await y.array();
 * console.log(data[0][1] / data[0][0]);  // should be nearly 2.
 * ```
 *
 * @param xs The vectors to be orthogonalized, in one of the two following
 *   formats:
 *   - An Array of `tf.Tensor1D`.
 *   - A `tf.Tensor2D`, i.e., a matrix, in which case the vectors are the rows
 *     of `xs`.
 *   In each case, all the vectors must have the same length and the length
 *   must be greater than or equal to the number of vectors.
 * @returns The orthogonalized and normalized vectors or matrix.
 *   Orthogonalization means that the vectors or the rows of the matrix
 *   are orthogonal (zero inner products). Normalization means that each
 *   vector or each row of the matrix has an L2 norm that equals `1`.
 *
 * @doc {heading:'Operations', subheading:'Linear Algebra', namespace:'linalg'}
 */
                function gramSchmidt_(xs) {
                    var inputIsTensor2D;
                    if (Array.isArray(xs)) {
                        inputIsTensor2D = false;
                        assert(xs != null && xs.length > 0, function () {
                            return 'Gram-Schmidt process: input must not be null, undefined, or ' + 'empty';
                        });
                        var dim_1 = xs[0].shape[0];
                        var _loop_1 = function (i) {
                            assert(xs[i].shape[0] === dim_1, function () {
                                return 'Gram-Schmidt: Non-unique lengths found in the input vectors: ' + "(".concat(xs[i].shape[0], " vs. ").concat(dim_1, ")");
                            });
                        };
                        for (var i = 1; i < xs.length; ++i) {
                            _loop_1(i);
                        }
                    } else {
                        inputIsTensor2D = true;
                        xs = split(xs, xs.shape[0], 0).map(function (x) {
                            return squeeze(x, [0]);
                        });
                    }
                    assert(xs.length <= xs[0].shape[0], function () {
                        return "Gram-Schmidt: Number of vectors (".concat(xs.length, ") exceeds ") + "number of dimensions (".concat(xs[0].shape[0], ").");
                    });
                    var ys = [];
                    var xs1d = xs;
                    var _loop_2 = function (i) {
                        ys.push(ENGINE.tidy(function () {
                            var x = xs1d[i];
                            if (i > 0) {
                                for (var j = 0; j < i; ++j) {
                                    var proj = mul(sum(mul(ys[j], x)), ys[j]);
                                    x = sub(x, proj);
                                }
                            }
                            return div(x, norm(x, 'euclidean'));
                        }));
                    };
                    for (var i = 0; i < xs.length; ++i) {
                        _loop_2(i);
                    }
                    if (inputIsTensor2D) {
                        return stack(ys, 0);
                    } else {
                        return ys;
                    }
                }
                var gramSchmidt = op({
                    gramSchmidt_: gramSchmidt_
                });
                /**
 * Compute QR decomposition of m-by-n matrix using Householder transformation.
 *
 * Implementation based on
 *   [http://www.cs.cornell.edu/~bindel/class/cs6210-f09/lec18.pdf]
 * (http://www.cs.cornell.edu/~bindel/class/cs6210-f09/lec18.pdf)
 *
 * ```js
 * const a = tf.tensor2d([[1, 2], [3, 4]]);
 * let [q, r] = tf.linalg.qr(a);
 * console.log('Q');
 * q.print();
 * console.log('R');
 * r.print();
 * console.log('Orthogonalized');
 * q.dot(q.transpose()).print()  // should be nearly the identity matrix.
 * console.log('Reconstructed');
 * q.dot(r).print(); // should be nearly [[1, 2], [3, 4]];
 * ```
 *
 * @param x The `tf.Tensor` to be QR-decomposed. Must have rank >= 2. Suppose
 *   it has the shape `[..., M, N]`.
 * @param fullMatrices An optional boolean parameter. Defaults to `false`.
 *   If `true`, compute full-sized `Q`. If `false` (the default),
 *   compute only the leading N columns of `Q` and `R`.
 * @returns An `Array` of two `tf.Tensor`s: `[Q, R]`. `Q` is a unitary matrix,
 *   i.e., its columns all have unit norm and are mutually orthogonal.
 *   If `M >= N`,
 *     If `fullMatrices` is `false` (default),
 *       - `Q` has a shape of `[..., M, N]`,
 *       - `R` has a shape of `[..., N, N]`.
 *     If `fullMatrices` is `true` (default),
 *       - `Q` has a shape of `[..., M, M]`,
 *       - `R` has a shape of `[..., M, N]`.
 *   If `M < N`,
 *     - `Q` has a shape of `[..., M, M]`,
 *     - `R` has a shape of `[..., M, N]`.
 * @throws If the rank of `x` is less than 2.
 *
 * @doc {heading:'Operations',
 *       subheading:'Linear Algebra',
 *       namespace:'linalg'}
 */
                function qr_(x, fullMatrices) {
                    if (fullMatrices === void 0) {
                        fullMatrices = false;
                    }
                    assert(x.rank >= 2, function () {
                        return "qr() requires input tensor to have a rank >= 2, but got rank ".concat(x.rank);
                    });
                    if (x.rank === 2) {
                        return qr2d(x, fullMatrices);
                    } else {
                        // Rank > 2.
                        // TODO(cais): Below we split the input into individual 2D tensors,
                        //   perform QR decomposition on them and then stack the results back
                        //   together. We should explore whether this can be parallelized.
                        var outerDimsProd = x.shape.slice(0, x.shape.length - 2).reduce(function (value, prev) {
                            return value * prev;
                        });
                        var x2ds = unstack(reshape(x, [outerDimsProd, x.shape[x.shape.length - 2], x.shape[x.shape.length - 1]]), 0);
                        var q2ds_1 = [];
                        var r2ds_1 = [];
                        x2ds.forEach(function (x2d) {
                            var _a = __read(qr2d(x2d, fullMatrices), 2)
                                , q2d = _a[0]
                                , r2d = _a[1];
                            q2ds_1.push(q2d);
                            r2ds_1.push(r2d);
                        });
                        var q = reshape(stack(q2ds_1, 0), x.shape);
                        var r = reshape(stack(r2ds_1, 0), x.shape);
                        return [q, r];
                    }
                }
                function qr2d(x, fullMatrices) {
                    if (fullMatrices === void 0) {
                        fullMatrices = false;
                    }
                    return ENGINE.tidy(function () {
                        assert(x.shape.length === 2, function () {
                            return "qr2d() requires a 2D Tensor, but got a ".concat(x.shape.length, "D Tensor.");
                        });
                        var m = x.shape[0];
                        var n = x.shape[1];
                        var q = eye(m);
                        // Orthogonal transform so far.
                        var r = clone(x);
                        // Transformed matrix so far.
                        var one2D = tensor2d([[1]], [1, 1]);
                        var w = clone(one2D);
                        var iters = m >= n ? n : m;
                        var _loop_1 = function (j) {
                            var _a;
                            // This tidy within the for-loop ensures we clean up temporary
                            // tensors as soon as they are no longer needed.
                            var rTemp = r;
                            var wTemp = w;
                            var qTemp = q;
                            _a = __read(ENGINE.tidy(function () {
                                // Find H = I - tau * w * w', to put zeros below R(j, j).
                                var rjEnd1 = slice(r, [j, j], [m - j, 1]);
                                var normX = norm(rjEnd1);
                                var rjj = slice(r, [j, j], [1, 1]);
                                // The sign() function returns 0 on 0, which causes division by zero.
                                var s = where(greater(rjj, 0), tensor2d([[-1]]), tensor2d([[1]]));
                                var u1 = sub(rjj, mul(s, normX));
                                var wPre = div(rjEnd1, u1);
                                if (wPre.shape[0] === 1) {
                                    w = clone(one2D);
                                } else {
                                    w = concat([one2D, slice(wPre, [1, 0], [wPre.shape[0] - 1, wPre.shape[1]])], 0);
                                }
                                var tau = neg(div(matMul$1(s, u1), normX));
                                // -- R := HR, Q := QH.
                                var rjEndAll = slice(r, [j, 0], [m - j, n]);
                                var tauTimesW = mul(tau, w);
                                var wT = transpose(w);
                                if (j === 0) {
                                    r = sub(rjEndAll, matMul$1(tauTimesW, matMul$1(wT, rjEndAll)));
                                } else {
                                    var rTimesTau = sub(rjEndAll, matMul$1(tauTimesW, matMul$1(wT, rjEndAll)));
                                    r = concat([slice(r, [0, 0], [j, n]), rTimesTau], 0);
                                }
                                var tawTimesWT = transpose(tauTimesW);
                                var qAllJEnd = slice(q, [0, j], [m, q.shape[1] - j]);
                                if (j === 0) {
                                    q = sub(qAllJEnd, matMul$1(matMul$1(qAllJEnd, w), tawTimesWT));
                                } else {
                                    var qTimesTau = sub(qAllJEnd, matMul$1(matMul$1(qAllJEnd, w), tawTimesWT));
                                    q = concat([slice(q, [0, 0], [m, j]), qTimesTau], 1);
                                }
                                return [w, r, q];
                            }), 3),
                                w = _a[0],
                                r = _a[1],
                                q = _a[2];
                            dispose([rTemp, wTemp, qTemp]);
                        };
                        for (var j = 0; j < iters; ++j) {
                            _loop_1(j);
                        }
                        if (!fullMatrices && m > n) {
                            q = slice(q, [0, 0], [m, n]);
                            r = slice(r, [0, 0], [n, n]);
                        }
                        return [q, r];
                    });
                }
                var qr = op({
                    qr_: qr_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                exports.Reduction = void 0;
                (function (Reduction) {
                    Reduction[Reduction["NONE"] = 0] = "NONE";
                    Reduction[Reduction["MEAN"] = 1] = "MEAN";
                    Reduction[Reduction["SUM"] = 2] = "SUM";
                    Reduction[Reduction["SUM_BY_NONZERO_WEIGHTS"] = 3] = "SUM_BY_NONZERO_WEIGHTS";
                }
                )(exports.Reduction || (exports.Reduction = {}));
                /**
 * Computes the weighted loss between two tensors.
 *
 * @param losses Tensor of shape `[batch_size, d1, ..., dN]`.
 * @param weights Tensor whose rank is either 0, or the same rank as
 *    `losses`, and must be broadcastable to `losses` (i.e., all
 *    dimensions must be either `1`, or the same as the corresponding
 *    `losses` dimension).
 *
 * @doc {heading: 'Training', subheading: 'Losses', namespace: 'losses'}
 */
                function computeWeightedLoss_(losses, weights, reduction) {
                    if (reduction === void 0) {
                        reduction = exports.Reduction.SUM_BY_NONZERO_WEIGHTS;
                    }
                    var $losses = convertToTensor(losses, 'losses', 'computeWeightedLoss');
                    var $weights = null;
                    if (weights != null) {
                        $weights = convertToTensor(weights, 'weights', 'computeWeightedLoss');
                    }
                    var weightedLoss = $weights == null ? $losses : mul($losses, $weights);
                    if (reduction === exports.Reduction.NONE) {
                        return weightedLoss;
                    }
                    if (reduction === exports.Reduction.SUM) {
                        return sum(weightedLoss);
                    }
                    if (reduction === exports.Reduction.MEAN) {
                        if ($weights == null) {
                            return mean(weightedLoss);
                        } else {
                            var broadcastFactor = $losses.size / $weights.size;
                            var result = div(sum(weightedLoss), sum($weights));
                            return broadcastFactor > 1 ? div(result, scalar(broadcastFactor)) : result;
                        }
                    }
                    if (reduction === exports.Reduction.SUM_BY_NONZERO_WEIGHTS) {
                        if ($weights == null) {
                            return div(sum(weightedLoss), scalar($losses.size));
                        } else {
                            var broadcastedWeights = mul($weights, ones($losses.shape));
                            var numNonZeros = cast(sum(notEqual(broadcastedWeights, scalar(0))), 'float32');
                            return div(sum(weightedLoss), numNonZeros);
                        }
                    }
                    throw Error("Unknown reduction: ".concat(reduction));
                }
                var computeWeightedLoss = op({
                    computeWeightedLoss_: computeWeightedLoss_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the absolute difference loss between two tensors.
 *
 * @param labels The ground truth output tensor, same dimensions as
 *    'predictions'.
 * @param predictions The predicted outputs.
 * @param weights Tensor whose rank is either 0, or the same rank as
 *    `labels`, and must be broadcastable to `labels` (i.e., all dimensions
 *    must be either `1`, or the same as the corresponding `losses`
 *    dimension).
 * @param reduction Type of reduction to apply to loss. Should be of type
 *    `Reduction`
 *
 * @doc {heading: 'Training', subheading: 'Losses', namespace: 'losses'}
 */
                function absoluteDifference_(labels, predictions, weights, reduction) {
                    if (reduction === void 0) {
                        reduction = exports.Reduction.SUM_BY_NONZERO_WEIGHTS;
                    }
                    var $labels = convertToTensor(labels, 'labels', 'absoluteDifference');
                    var $predictions = convertToTensor(predictions, 'predictions', 'absoluteDifference');
                    var $weights = null;
                    if (weights != null) {
                        $weights = convertToTensor(weights, 'weights', 'absoluteDifference');
                    }
                    assertShapesMatch($labels.shape, $predictions.shape, 'Error in absoluteDifference: ');
                    var losses = abs(sub($labels, $predictions));
                    return computeWeightedLoss(losses, $weights, reduction);
                }
                var absoluteDifference = op({
                    absoluteDifference_: absoluteDifference_
                });
                /**
 * Computes the cosine distance loss between two tensors.
 *
 * @param labels The ground truth output tensor, same dimensions as
 *    'predictions'.
 * @param predictions The predicted outputs.
 * @param axis The dimension along which the cosine distance is computed.
 * @param weights Tensor whose rank is either 0, or the same rank as
 *    `labels`, and must be broadcastable to `labels` (i.e., all dimensions
 *    must be either `1`, or the same as the corresponding `losses`
 *    dimension).
 * @param reduction Type of reduction to apply to loss. Should be of type
 *    `Reduction`
 *
 * @doc {heading: 'Training', subheading: 'Losses', namespace: 'losses'}
 */
                function cosineDistance_(labels, predictions, axis, weights, reduction) {
                    if (reduction === void 0) {
                        reduction = exports.Reduction.SUM_BY_NONZERO_WEIGHTS;
                    }
                    var $labels = convertToTensor(labels, 'labels', 'cosineDistance');
                    var $predictions = convertToTensor(predictions, 'predictions', 'cosineDistance');
                    var $weights = null;
                    if (weights != null) {
                        $weights = convertToTensor(weights, 'weights', 'cosineDistance');
                    }
                    assertShapesMatch($labels.shape, $predictions.shape, 'Error in cosineDistance: ');
                    var one = scalar(1);
                    var losses = sub(one, sum(mul($labels, $predictions), axis, true));
                    return computeWeightedLoss(losses, $weights, reduction);
                }
                var cosineDistance = op({
                    cosineDistance_: cosineDistance_
                });
                /**
 * Computes the Hinge loss between two tensors.
 *
 * @param labels The ground truth output tensor, same dimensions as
 *    'predictions'.
 * @param predictions The predicted outputs.
 * @param weights Tensor whose rank is either 0, or the same rank as
 *    `labels`, and must be broadcastable to `labels` (i.e., all dimensions
 *    must be either `1`, or the same as the corresponding `losses`
 *    dimension).
 * @param reduction Type of reduction to apply to loss. Should be of type
 *    `Reduction`
 *
 * @doc {heading: 'Training', subheading: 'Losses', namespace: 'losses'}
 */
                function hingeLoss_(labels, predictions, weights, reduction) {
                    if (reduction === void 0) {
                        reduction = exports.Reduction.SUM_BY_NONZERO_WEIGHTS;
                    }
                    var $labels = convertToTensor(labels, 'labels', 'hingeLoss');
                    var $predictions = convertToTensor(predictions, 'predictions', 'hingeLoss');
                    var $weights = null;
                    if (weights != null) {
                        $weights = convertToTensor(weights, 'weights', 'hingeLoss');
                    }
                    assertShapesMatch($labels.shape, $predictions.shape, 'Error in hingeLoss: ');
                    var one = scalar(1);
                    // Convert binary labels to (-1, 1)
                    $labels = sub(mul(scalar(2), $labels), one);
                    var losses = relu(sub(one, mul($labels, $predictions)));
                    return computeWeightedLoss(losses, $weights, reduction);
                }
                var hingeLoss = op({
                    hingeLoss_: hingeLoss_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the Huber loss between two tensors.
 *
 * @param labels The ground truth output tensor, same dimensions as
 *    'predictions'.
 * @param predictions The predicted outputs.
 * @param weights Tensor whose rank is either 0, or the same rank as
 *    `labels`, and must be broadcastable to `labels` (i.e., all dimensions
 *    must be either `1`, or the same as the corresponding `losses`
 *    dimension).
 * @param delta Point where Huber loss changes from quadratic to linear.
 * @param reduction Type of reduction to apply to loss. Should be of type
 *    `Reduction`.
 *
 * @doc {heading: 'Training', subheading: 'Losses', namespace: 'losses'}
 */
                function huberLoss_(labels, predictions, weights, delta, reduction) {
                    if (delta === void 0) {
                        delta = 1.0;
                    }
                    if (reduction === void 0) {
                        reduction = exports.Reduction.SUM_BY_NONZERO_WEIGHTS;
                    }
                    var $labels = convertToTensor(labels, 'labels', 'huberLoss');
                    var $predictions = convertToTensor(predictions, 'predictions', 'huberLoss');
                    var $weights = null;
                    if (weights != null) {
                        $weights = convertToTensor(weights, 'weights', 'huberLoss');
                    }
                    assertShapesMatch($labels.shape, $predictions.shape, 'Error in huberLoss: ');
                    var deltaScalar = scalar(delta);
                    var error = abs(sub($predictions, $labels));
                    var quadratic = minimum(error, deltaScalar);
                    var linear = sub(error, quadratic);
                    var losses = add(mul(scalar(0.5), square(quadratic)), mul(deltaScalar, linear));
                    return computeWeightedLoss(losses, $weights, reduction);
                }
                var huberLoss = op({
                    huberLoss_: huberLoss_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the log loss between two tensors.
 *
 * @param labels The ground truth output tensor, same dimensions as
 *    'predictions'.
 * @param predictions The predicted outputs.
 * @param weights Tensor whose rank is either 0, or the same rank as
 *    `labels`, and must be broadcastable to `labels` (i.e., all dimensions
 *    must be either `1`, or the same as the corresponding `losses`
 *    dimension).
 * @param epsilon A small increment to avoid taking log of zero
 * @param reduction Type of reduction to apply to loss. Should be of type
 *    `Reduction`
 *
 * @doc {heading: 'Training', subheading: 'Losses', namespace: 'losses'}
 */
                function logLoss_(labels, predictions, weights, epsilon, reduction) {
                    if (epsilon === void 0) {
                        epsilon = 1e-7;
                    }
                    if (reduction === void 0) {
                        reduction = exports.Reduction.SUM_BY_NONZERO_WEIGHTS;
                    }
                    var $labels = convertToTensor(labels, 'labels', 'logLoss');
                    var $predictions = convertToTensor(predictions, 'predictions', 'logLoss');
                    var $weights = null;
                    if (weights != null) {
                        $weights = convertToTensor(weights, 'weights', 'logLoss');
                    }
                    assertShapesMatch($labels.shape, $predictions.shape, 'Error in logLoss: ');
                    var one = scalar(1);
                    var epsilonScalar = scalar(epsilon);
                    var l1 = neg(mul($labels, log(add($predictions, epsilonScalar))));
                    var l2 = mul(sub(one, $labels), log(add(sub(one, $predictions), epsilonScalar)));
                    var losses = sub(l1, l2);
                    return computeWeightedLoss(losses, $weights, reduction);
                }
                var logLoss = op({
                    logLoss_: logLoss_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the mean squared error between two tensors.
 *
 * @param labels The ground truth output tensor, same dimensions as
 *    'predictions'.
 * @param predictions The predicted outputs.
 * @param weights Tensor whose rank is either 0, or the same rank as
 *    `labels`, and must be broadcastable to `labels` (i.e., all dimensions
 *    must be either `1`, or the same as the corresponding `losses`
 *    dimension).
 * @param reduction Type of reduction to apply to loss. Should be of type
 *    `Reduction`
 *
 * @doc {heading: 'Training', subheading: 'Losses', namespace: 'losses'}
 */
                function meanSquaredError_(labels, predictions, weights, reduction) {
                    if (reduction === void 0) {
                        reduction = exports.Reduction.SUM_BY_NONZERO_WEIGHTS;
                    }
                    var $labels = convertToTensor(labels, 'labels', 'meanSquaredError');
                    var $predictions = convertToTensor(predictions, 'predictions', 'meanSquaredError');
                    var $weights = null;
                    if (weights != null) {
                        $weights = convertToTensor(weights, 'weights', 'meanSquaredError');
                    }
                    assertShapesMatch($labels.shape, $predictions.shape, 'Error in meanSquaredError: ');
                    var losses = squaredDifference($labels, $predictions);
                    return computeWeightedLoss(losses, $weights, reduction);
                }
                var meanSquaredError = op({
                    meanSquaredError_: meanSquaredError_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                function sigmoidCrossEntropyWithLogits_(labels, logits) {
                    var $labels = convertToTensor(labels, 'labels', 'sigmoidCrossEntropyWithLogits');
                    var $logits = convertToTensor(logits, 'logits', 'sigmoidCrossEntropyWithLogits');
                    assertShapesMatch($labels.shape, $logits.shape, 'Error in sigmoidCrossEntropyWithLogits: ');
                    /**
     * Implementation Details:
     *
     * For brevity, let `x = logits`, `z = labels`.  The logistic loss is
     *     z * -log(sigmoid(x)) + (1 - z) * -log(1 - sigmoid(x))
     *   = z * -log(1 / (1 + exp(-x))) + (1 - z) * -log(exp(-x) / (1 + exp(-x)))
     *   = z * log(1 + exp(-x)) + (1 - z) * (-log(exp(-x)) + log(1 + exp(-x)))
     *   = z * log(1 + exp(-x)) + (1 - z) * (x + log(1 + exp(-x))
     *   = (1 - z) * x + log(1 + exp(-x))
     *   = x - x * z + log(1 + exp(-x))
     *
     *   For x < 0, to avoid overflow in exp(-x), we reformulate the above
     *     x - x * z + log(1 + exp(-x))
     *   = log(exp(x)) - x * z + log(1 + exp(-x))
     *   = - x * z + log(1 + exp(x))
     *
     * Hence, to ensure stability and avoid overflow, the implementation uses
     * this equivalent formulation:
     *     max(x, 0) - x * z + log(1 + exp(-abs(x)))
     */
                    var maxOutput = relu($logits);
                    var outputXTarget = mul($logits, $labels);
                    var sigmoidOutput = log1p(exp(neg(abs($logits))));
                    return add(sub(maxOutput, outputXTarget), sigmoidOutput);
                }
                /**
 * Computes the sigmoid cross entropy loss between two tensors.
 *
 * If labelSmoothing is nonzero, smooth the labels towards 1/2:
 *
 *   newMulticlassLabels = multiclassLabels * (1 - labelSmoothing)
 *                         + 0.5 * labelSmoothing
 *
 * @param multiClassLabels The ground truth output tensor of shape
 * [batch_size, num_classes], same dimensions as 'predictions'.
 * @param logits The predicted outputs.
 * @param weights Tensor whose rank is either 0, or the same rank as
 *    `labels`, and must be broadcastable to `labels` (i.e., all dimensions
 *    must be either `1`, or the same as the corresponding `losses`
 *    dimension).
 * @param labelSmoothing If greater than 0, then smooth the labels.
 * @param reduction Type of reduction to apply to loss. Should be of type
 *    `Reduction`
 *
 * @doc { heading: 'Training', subheading: 'Losses', namespace: 'losses' }
 */
                function sigmoidCrossEntropy_(multiClassLabels, logits, weights, labelSmoothing, reduction) {
                    if (labelSmoothing === void 0) {
                        labelSmoothing = 0;
                    }
                    if (reduction === void 0) {
                        reduction = exports.Reduction.SUM_BY_NONZERO_WEIGHTS;
                    }
                    var $multiClassLabels = convertToTensor(multiClassLabels, 'multiClassLabels', 'sigmoidCrossEntropy');
                    var $logits = convertToTensor(logits, 'logits', 'sigmoidCrossEntropy');
                    var $weights = null;
                    if (weights != null) {
                        $weights = convertToTensor(weights, 'weights', 'sigmoidCrossEntropy');
                    }
                    assertShapesMatch($multiClassLabels.shape, $logits.shape, 'Error in sigmoidCrossEntropy: ');
                    if (labelSmoothing > 0) {
                        var labelSmoothingScalar = scalar(labelSmoothing);
                        var one = scalar(1);
                        var half = scalar(0.5);
                        $multiClassLabels = add(mul($multiClassLabels, sub(one, labelSmoothingScalar)), mul(half, labelSmoothingScalar));
                    }
                    var losses = sigmoidCrossEntropyWithLogits_($multiClassLabels, $logits);
                    return computeWeightedLoss(losses, $weights, reduction);
                }
                var sigmoidCrossEntropy = op({
                    sigmoidCrossEntropy_: sigmoidCrossEntropy_
                });
                /**
 * Computes softmax cross entropy between logits and labels.
 *
 * Measures the probability error in discrete classification tasks in which
 * the classes are mutually exclusive (each entry is in exactly one class).
 * For example, each CIFAR-10 image is labeled with one and only one label: an
 * image can be a dog or a truck, but not both.
 *
 * `NOTE`: While the classes are mutually exclusive, their probabilities need
 * not be. All that is required is that each row of labels is a valid
 * probability distribution. If they are not, the computation of the gradient
 * will be incorrect.
 *
 * `WARNING`: This op expects unscaled logits, since it performs a softmax on
 * logits internally for efficiency. Do not call this op with the output of
 * softmax, as it will produce incorrect results.
 *
 * logits and labels must have the same shape, e.g. [batch_size, num_classes]
 * and the same dtype.
 * @param labels The labels array.
 * @param logits The logits array.
 * @param dim The dimension softmax would be performed on. Defaults to `-1`
 *     which indicates the last dimension.
 */
                function softmaxCrossEntropyWithLogits_(labels, logits, dim) {
                    if (dim === void 0) {
                        dim = -1;
                    }
                    if (dim === -1) {
                        dim = logits.rank - 1;
                    }
                    if (dim !== logits.rank - 1) {
                        throw Error("Softmax cross entropy along a non-last dimension is not yet " + "supported. Labels / logits was rank ".concat(logits.rank, " ") + "and dim was ".concat(dim));
                    }
                    // Use a custom gradient for numerical stability.
                    var customOp = customGrad(function (labels, logits, save) {
                        // Reference:
                        //   1. http://cs231n.github.io/linear-classify/#softmax
                        //   2. https://blog.feedly.com/tricks-of-the-trade-logsumexp/
                        var keepDims = true;
                        var lse = logSumExp(logits, [dim], keepDims);
                        var logResult = sub(cast(logits, 'float32'), lse);
                        save([labels, logResult]);
                        var costVector = neg(mul(logResult, labels));
                        var value = sum(costVector, [dim]);
                        var gradFunc = function (dy, saved) {
                            var _a = __read(saved, 2)
                                , labels = _a[0]
                                , logResult = _a[1];
                            var dyShape = expandShapeToKeepDim(dy.shape, [dim]);
                            return [mul(reshape(dy, dyShape), sub(cast(labels, 'float32'), exp(logResult))), mul(reshape(dy, dyShape), sub(exp(logResult), cast(labels, 'float32')))];
                        };
                        return {
                            value: value,
                            gradFunc: gradFunc
                        };
                    });
                    return customOp(labels, logits);
                }
                /**
 * Computes the softmax cross entropy loss between two tensors.
 *
 * If labelSmoothing is nonzero, smooth the labels towards 1/2:
 *
 *   newOnehotLabels = onehotLabels * (1 - labelSmoothing)
 *                         + labelSmoothing / numClasses
 *
 * @param onehotLabels One hot encoded labels
 *    [batch_size, num_classes], same dimensions as 'predictions'.
 * @param logits The predicted outputs.
 * @param weights Tensor whose rank is either 0, or 1, and must be
 *    broadcastable to `loss`  of shape [batch_size]
 * @param labelSmoothing If greater than 0, then smooth the labels.
 * @param reduction Type of reduction to apply to loss. Should be of type
 *    `Reduction`
 *
 * @doc { heading: 'Training', subheading: 'Losses', namespace: 'losses' }
 */
                function softmaxCrossEntropy_(onehotLabels, logits, weights, labelSmoothing, reduction) {
                    if (labelSmoothing === void 0) {
                        labelSmoothing = 0;
                    }
                    if (reduction === void 0) {
                        reduction = exports.Reduction.SUM_BY_NONZERO_WEIGHTS;
                    }
                    var $onehotLabels = convertToTensor(onehotLabels, 'onehotLabels', 'softmaxCrossEntropy');
                    var $logits = convertToTensor(logits, 'logits', 'softmaxCrossEntropy');
                    var $weights = null;
                    if (weights != null) {
                        $weights = convertToTensor(weights, 'weights', 'softmaxCrossEntropy');
                    }
                    assertShapesMatch($onehotLabels.shape, $logits.shape, 'Error in softmaxCrossEntropy: ');
                    if (labelSmoothing > 0) {
                        var labelSmoothingScalar = scalar(labelSmoothing);
                        var one = scalar(1);
                        var numClasses = scalar($onehotLabels.shape[1]);
                        $onehotLabels = add(mul($onehotLabels, sub(one, labelSmoothingScalar)), div(labelSmoothingScalar, numClasses));
                    }
                    var losses = softmaxCrossEntropyWithLogits_($onehotLabels, $logits);
                    return computeWeightedLoss(losses, $weights, reduction);
                }
                var softmaxCrossEntropy = op({
                    softmaxCrossEntropy_: softmaxCrossEntropy_
                });
                /**
 * @license
 * Copyright 2021 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * The input SparseTensor is represented via the map of inputs {`indices`,
 * `values`, `denseShape`}. The output SparseTensor has the same `denseShape`
 * but with indices `outputIndices` and values `outputValues`. This op inserts a
 * single entry for every row that doesn't have any values. The index is created
 * as `[row, 0, ..., 0]` and the inserted value is `defaultValue`.
 *
 * For example, suppose `spInput` has shape [5, 6] and non-empty values:
 * [0, 1]: a
 * [0, 3]: b
 * [2, 0]: c
 * [3, 1]: d
 *
 * Rows 1 and 4 are empty, so the output will be of shape [5, 6] with values:
 * [0, 1]: a
 * [0, 3]: b
 * [1, 0]: `defaultValue`
 * [2, 0]: c
 * [3, 1]: d
 * [4, 0]: `defaultValue`
 *
 * The output SparseTensor will be in row-major order and will have the same
 * shape as the input.
 *
 * This op also returns an indicator vector shaped [dense_shape[0]] such that
 * emptyRowIndicator[i] = True iff row i was an empty row.
 *
 * And a reverse index map vector shaped [indices.shape[0]] that is used during
 * backpropagation, reverseIndexMap[i] = outi s.t. indices[i, j] ==
 * outputIndices[outi, j] for all j
 *
 * ```js
 * const result = tf.sparse.sparseFillEmptyRows(
 *   [[0, 0], [1, 0], [1, 3], [1, 4], [3, 2], [3, 3]],
 *   [0, 10, 13, 14, 32, 33], [5, 6], -1);
 * console.log(result);
 * result['outputIndices'].print(); // [[0, 0], [1, 0], [1, 3], [1, 4],
 *                                  //  [2, 0], [3, 2], [3, 3], [4, 0]]
 * result['outputValues'].print(); // [0, 10, 13, 14,-1, 32, 33, -1]
 * result['emptyRowIndicator'].print(); // [false, false, true, false, true]
 * result['reverseIndexMap'].print(); // [0, 1, 2, 3, 5, 6]
 * ```
 * @param indices: 2-D. The indices of the sparse tensor.
 * @param values: 1-D. The values of the sparse tensor.
 * @param denseShape: 1-D. The shape of the sparse tensor.
 * @param defaultValue: 0-D. Default value to insert into location [row, 0, ...,
 *     0] for rows missing from the input sparse tensor.
 * @return A map with the following properties:
 *     - outputIndices
 *     - outputValues: 1-D. The values of the filled sparse tensor.
 *     - emptyRowIndicator: 1-D. Whether the dense row was missing in the input
 * sparse tensor.
 *     - reverseIndexMap: 1-D. A map from the input indices to the output
 * indices.
 * @doc {heading: 'Operations', subheading: 'Sparse'}
 */
                function sparseFillEmptyRows_(indices, values, denseShape, defaultValue) {
                    var $indices = convertToTensor(indices, 'indices', 'sparseFillEmptyRows', 'int32');
                    var $values = convertToTensor(values, 'values', 'sparseFillEmptyRows');
                    var $denseShape = convertToTensor(denseShape, 'denseShape', 'sparseFillEmptyRows', 'int32');
                    var $defaultValue = convertToTensor(defaultValue, 'defaultValue', 'sparseFillEmptyRows', $values.dtype);
                    if ($indices.rank !== 2) {
                        throw new Error("Indices should be Tensor2D but received shape\n        ".concat($indices.shape));
                    }
                    if ($values.rank !== 1) {
                        throw new Error("Values should be Tensor1D but received shape ".concat($values.shape));
                    }
                    if ($denseShape.rank !== 1) {
                        throw new Error("Dense shape should be Tensor1D but received shape ".concat($denseShape.shape));
                    }
                    if ($defaultValue.rank !== 0) {
                        throw new Error("Default value should be a scalar but received shape ".concat($defaultValue.shape));
                    }
                    var inputs = {
                        indices: $indices,
                        values: $values,
                        denseShape: $denseShape,
                        defaultValue: $defaultValue
                    };
                    var result = ENGINE.runKernel(SparseFillEmptyRows, inputs);
                    return {
                        outputIndices: result[0],
                        outputValues: result[1],
                        emptyRowIndicator: result[2],
                        reverseIndexMap: result[3]
                    };
                }
                var sparseFillEmptyRows = op({
                    sparseFillEmptyRows_: sparseFillEmptyRows_
                });
                /**
 * @license
 * Copyright 2021 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * This operation has the same semantics as reshape on the represented dense
 * tensor. The `inputIndices` are recomputed based on the requested `newShape`.
 * If one component of `newShape` is the special value -1, the size of that
 * dimension is computed so that the total dense size remains constant. At most
 * one component of `newShape` can be -1. The number of dense elements implied
 * by `newShape` must be the same as the number of dense elements originally
 * implied by `inputShape`. Reshaping does not affect the order of values in the
 * SparseTensor. If the input tensor has rank R_in and N non-empty values, and
 * `newShape` has length R_out, then `inputIndices` has shape [N, R_in],
 * `inputShape` has length R_in, `outputIndices` has shape [N, R_out], and
 * `outputShape` has length R_out.
 *
 * ```js
 * const result = tf.sparse.sparseReshape(
 *   [[0, 0, 0], [0, 0, 1], [0, 1, 0], [1, 0, 0], [1, 2, 3]],
 *   [2, 3, 6], [9, -1]);
 * console.log(result);
 * result['outputIndices'].print(); //[[0, 0], [0, 1], [1, 2], [4, 2], [8, 1]]
 * result['outputShape'].print(); // [9, 4]
 * ```
 * @param inputIndices: 2-D. N x R_in matrix with the indices of non-empty
 * values in a SparseTensor.
 * @param inputShape: 1-D. R_in Tensor1D with the input SparseTensor's dense
 * shape.
 * @param newShape: 1-D. R_out Tensor1D with the requested new dense shape.
 * @return A map with the following properties:
 *     - outputIndices: 2-D. N x R_out matrix with the updated indices of
 *       non-empty values in the output SparseTensor.
 *     - outputShape: 1-D. R_out vector with the full dense shape of the output
 *       SparseTensor. This is the same as newShape but with any -1 dimensions
 *        filled in.
 * @doc {heading: 'Operations', subheading: 'Sparse'}
 */
                function sparseReshape_(inputIndices, inputShape, newShape) {
                    var $inputIndices = convertToTensor(inputIndices, 'inputIndices', 'sparseReshape', 'int32');
                    var $inputShape = convertToTensor(inputShape, 'inputShape', 'sparseReshape', 'int32');
                    var $newShape = convertToTensor(newShape, 'newShape', 'sparseReshape', 'int32');
                    if ($inputIndices.rank !== 2) {
                        throw new Error("Input indices should be Tensor2D but received shape\n        ".concat($inputIndices.shape));
                    }
                    if ($inputShape.rank !== 1) {
                        throw new Error("Input shape should be Tensor1D but received shape ".concat($inputShape.shape));
                    }
                    if ($newShape.rank !== 1) {
                        throw new Error("New shape should be Tensor1D but received shape ".concat($newShape.shape));
                    }
                    var inputs = {
                        inputIndices: $inputIndices,
                        inputShape: $inputShape,
                        newShape: $newShape
                    };
                    var result = ENGINE.runKernel(SparseReshape, inputs);
                    return {
                        outputIndices: result[0],
                        outputShape: result[1]
                    };
                }
                var sparseReshape = op({
                    sparseReshape_: sparseReshape_
                });
                /**
 * @license
 * Copyright 2021 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the mean along sparse segments of a tensor.
 *
 * ```js
 * const c = tf.tensor2d([[1,2,3,4], [-1,-2,-3,-4], [6,7,8,9]]);
 * // Select two rows, one segment.
 * const result1 = tf.sparse.sparseSegmentMean(c,
 *                                           tf.tensor1d([0, 1], 'int32'),
 *                                           tf.tensor1d([0, 0], 'int32'));
 * result1.print(); // [[0, 0, 0, 0]]
 *
 * // Select two rows, two segments.
 * const result2 = tf.sparse.sparseSegmentMean(c,
 *                                             tf.tensor1d([0, 1], 'int32'),
 *                                             tf.tensor1d([0, 1], 'int32'));
 * result2.print(); // [[1, 2, 3, 4], [-1, -2, -3, -4]]
 *
 * // Select all rows, two segments.
 * const result3 = tf.sparse.sparseSegmentMean(c,
 *                                             tf.tensor1d([0, 1, 2], 'int32'),
 *                                             tf.tensor1d([0, 1, 1], 'int32'));
 * result3.print(); // [[1.0, 2.0, 3.0, 4.0], [2.5, 2.5, 2.5, 2.5]]
 * ```
 * @param data: A Tensor of at least one dimension with data that will be
 *     assembled in the output.
 * @param indices: A 1-D Tensor with indices into data. Has same rank as
 *     segmentIds.
 * @param segmentIds: A 1-D Tensor with indices into the output Tensor. Values
 *     should be sorted and can be repeated.
 * @return Has same shape as data, except for dimension 0 which has equal to
 *         the number of segments.
 *
 * @doc {heading: 'Operations', subheading: 'Sparse'}
 */
                function sparseSegmentMean_(data, indices, segmentIds) {
                    var $data = convertToTensor(data, 'data', 'sparseSegmentMean');
                    var $indices = convertToTensor(indices, 'indices', 'sparseSegmentMean', 'int32');
                    var $segmentIds = convertToTensor(segmentIds, 'segmentIds', 'sparseSegmentMean', 'int32');
                    if ($data.rank < 1) {
                        throw new Error("Data should be at least 1 dimensional but received scalar");
                    }
                    if ($indices.rank !== 1) {
                        throw new Error("Indices should be Tensor1D but received shape\n          ".concat($indices.shape));
                    }
                    if ($segmentIds.rank !== 1) {
                        throw new Error("Segment ids should be Tensor1D but received shape\n          ".concat($segmentIds.shape));
                    }
                    var inputs = {
                        data: $data,
                        indices: $indices,
                        segmentIds: $segmentIds
                    };
                    return ENGINE.runKernel(SparseSegmentMean, inputs);
                }
                var sparseSegmentMean = op({
                    sparseSegmentMean_: sparseSegmentMean_
                });
                /**
 * @license
 * Copyright 2021 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the sum along sparse segments of a tensor.
 *
 * ```js
 * const c = tf.tensor2d([[1,2,3,4], [-1,-2,-3,-4], [5,6,7,8]]);
 * // Select two rows, one segment.
 * const result1 = tf.sparse.sparseSegmentSum(c,
 *                                           tf.tensor1d([0, 1], 'int32'),
 *                                           tf.tensor1d([0, 0], 'int32'));
 * result1.print(); // [[0, 0, 0, 0]]
 *
 * // Select two rows, two segments.
 * const result2 = tf.sparse.sparseSegmentSum(c,
 *                                           tf.tensor1d([0, 1], 'int32'),
 *                                           tf.tensor1d([0, 1], 'int32'));
 * result2.print(); // [[1, 2, 3, 4], [-1, -2, -3, -4]]
 *
 * // Select all rows, two segments.
 * const result3 = tf.sparse.sparseSegmentSum(c,
 *                                           tf.tensor1d([0, 1, 2], 'int32'),
 *                                           tf.tensor1d([0, 0, 1], 'int32'));
 * result3.print(); // [[0, 0, 0, 0], [5, 6, 7, 8]]
 * ```
 * @param data: A Tensor of at least one dimension with data that will be
 *     assembled in the output.
 * @param indices: A 1-D Tensor with indices into data. Has same rank as
 *     segmentIds.
 * @param segmentIds: A 1-D Tensor with indices into the output Tensor. Values
 *     should be sorted and can be repeated.
 * @return Has same shape as data, except for dimension 0 which has equal to
 *         the number of segments.
 *
 * @doc {heading: 'Operations', subheading: 'Sparse'}
 */
                function sparseSegmentSum_(data, indices, segmentIds) {
                    var $data = convertToTensor(data, 'data', 'sparseSegmentSum');
                    var $indices = convertToTensor(indices, 'indices', 'sparseSegmentSum', 'int32');
                    var $segmentIds = convertToTensor(segmentIds, 'segmentIds', 'sparseSegmentSum', 'int32');
                    if ($data.rank < 1) {
                        throw new Error("Data should be at least 1 dimensional but received scalar");
                    }
                    if ($indices.rank !== 1) {
                        throw new Error("Indices should be Tensor1D but received shape\n         ".concat($indices.shape));
                    }
                    if ($segmentIds.rank !== 1) {
                        throw new Error("Segment ids should be Tensor1D but received shape\n         ".concat($segmentIds.shape));
                    }
                    var inputs = {
                        data: $data,
                        indices: $indices,
                        segmentIds: $segmentIds
                    };
                    return ENGINE.runKernel(SparseSegmentSum, inputs);
                }
                var sparseSegmentSum = op({
                    sparseSegmentSum_: sparseSegmentSum_
                });
                /**
 * @license
 * Copyright 2021 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Creates ngrams from ragged string data.
 *
 * This op accepts a ragged tensor with 1 ragged dimension containing only
 * strings and outputs a ragged tensor with 1 ragged dimension containing ngrams
 * of that string, joined along the innermost axis.
 *
 * ```js
 * const result = tf.string.stringNGrams(
 *   ['a', 'b', 'c', 'd'], tf.tensor1d([0, 2, 4], 'int32'),
 *   '|', [1, 2], 'LP', 'RP', -1, false);
 * result['nGrams'].print(); // ['a', 'b', 'LP|a', 'a|b', 'b|RP',
 *                           //  'c', 'd', 'LP|c', 'c|d', 'd|RP']
 * result['nGramsSplits'].print(); // [0, 5, 10]
 * ```
 * @param data: The values tensor of the ragged string tensor to make ngrams out
 *     of. Must be a 1D string tensor.
 * @param dataSplits: The splits tensor of the ragged string tensor to make
 *     ngrams out of.
 * @param separator: The string to append between elements of the token. Use ""
 *     for no separator.
 * @param nGramWidths: The sizes of the ngrams to create.
 * @param leftPad: The string to use to pad the left side of the ngram sequence.
 *     Only used if pad_width !== 0.
 * @param rightPad: The string to use to pad the right side of the ngram
 *     sequence. Only used if pad_width !== 0.
 * @param padWidth: The number of padding elements to add to each side of each
 *     sequence. Note that padding will never be greater than `nGramWidths`-1
 *     regardless of this value. If `padWidth`=-1, then add max(`nGramWidths`)-1
 *     elements.
 * @param preserveShortSequences: If true, then ensure that at least one ngram
 *     is generated for each input sequence. In particular, if an input sequence
 *     is shorter than min(ngramWidth) + 2*padWidth, then generate a single
 *     ngram containing the entire sequence. If false, then no ngrams are
 *     generated for these short input sequences.
 * @return A map with the following properties:
 *     - nGrams: The values tensor of the output ngrams ragged tensor.
 *     - nGramsSplits: The splits tensor of the output ngrams ragged tensor.
 *
 * @doc {heading: 'Operations', subheading: 'String'}
 */
                function stringNGrams_(data, dataSplits, separator, nGramWidths, leftPad, rightPad, padWidth, preserveShortSequences) {
                    var $data = convertToTensor(data, 'data', 'stringNGrams', 'string');
                    if ($data.dtype !== 'string') {
                        throw new Error('Data must be of datatype string');
                    }
                    if ($data.shape.length !== 1) {
                        throw new Error("Data must be a vector, saw: ".concat($data.shape));
                    }
                    var $dataSplits = convertToTensor(dataSplits, 'dataSplits', 'stringNGrams');
                    if ($dataSplits.dtype !== 'int32') {
                        throw new Error('Data splits must be of datatype int32');
                    }
                    var attrs = {
                        separator: separator,
                        nGramWidths: nGramWidths,
                        leftPad: leftPad,
                        rightPad: rightPad,
                        padWidth: padWidth,
                        preserveShortSequences: preserveShortSequences
                    };
                    var inputs = {
                        data: $data,
                        dataSplits: $dataSplits
                    };
                    var result = ENGINE.runKernel(StringNGrams, inputs, attrs);
                    return {
                        nGrams: result[0],
                        nGramsSplits: result[1]
                    };
                }
                var stringNGrams = op({
                    stringNGrams_: stringNGrams_
                });
                /**
 * @license
 * Copyright 2021 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Split elements of `input` based on `delimiter` into a SparseTensor .
 *
 * Let N be the size of source (typically N will be the batch size). Split each
 * element of `input` based on `delimiter` and return a SparseTensor containing
 * the splitted tokens. Empty tokens are ignored if `skipEmpty` is set to True.
 *
 * `delimiter` can be empty, or a string of split characters. If `delimiter` is
 * an empty string, each element of `input` is split into individual
 * character strings. Otherwise every character of `delimiter` is a potential
 * split point.
 *
 * ```js
 * const result = tf.string.stringSplit(['hello world',  'a b c'], ' ');
 * result['indices'].print(); // [[0, 0], [0, 1], [1, 0], [1, 1], [1, 2]]
 * result['values'].print(); // ['hello', 'world', 'a', 'b', 'c']
 * result['shape'].print(); // [2, 3]
 * ```
 * @param input: 1-D. Strings to split.
 * @param delimiter: 0-D. Delimiter characters, or empty string.
 * @param skipEmpty: Optional. If true, skip the empty strings from the result.
 *     Defaults to true.
 * @return A map with the following properties:
 *     - indices: A dense matrix of int32 representing the indices of the sparse
 *       tensor.
 *     - values: A vector of strings corresponding to the splited values.
 *     - shape: a length-2 vector of int32 representing the shape of the sparse
 * tensor, where the first value is N and the second value is the maximum number
 * of tokens in a single input entry.
 *
 * @doc {heading: 'Operations', subheading: 'String'}
 */
                function stringSplit_(input, delimiter, skipEmpty) {
                    if (skipEmpty === void 0) {
                        skipEmpty = true;
                    }
                    var $input = convertToTensor(input, 'input', 'stringSplit', 'string');
                    var $delimiter = convertToTensor(delimiter, 'delimiter', 'stringSplit', 'string');
                    if ($input.rank !== 1) {
                        throw new Error("Input should be Tensor1D but received shape ".concat($input.shape));
                    }
                    if ($delimiter.rank !== 0) {
                        throw new Error("Delimiter should be a scalar but received shape ".concat($delimiter.shape));
                    }
                    var attrs = {
                        skipEmpty: skipEmpty
                    };
                    var inputs = {
                        input: $input,
                        delimiter: $delimiter
                    };
                    var result = ENGINE.runKernel(StringSplit, inputs, attrs);
                    return {
                        indices: result[0],
                        values: result[1],
                        shape: result[2]
                    };
                }
                var stringSplit = op({
                    stringSplit_: stringSplit_
                });
                /**
 * @license
 * Copyright 2021 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Converts each string in the input Tensor to its hash mod by a number of
 * buckets.
 *
 * The hash function is deterministic on the content of the string within the
 * process and will never change. However, it is not suitable for cryptography.
 * This function may be used when CPU time is scarce and inputs are trusted or
 * unimportant. There is a risk of adversaries constructing inputs that all hash
 * to the same bucket.
 *
 * ```js
 * const result = tf.string.stringToHashBucketFast(
 *   ['Hello', 'TensorFlow', '2.x'], 3);
 * result.print(); // [0, 2, 2]
 * ```
 * @param input: The strings to assign a hash bucket.
 * @param numBuckets: The number of buckets.
 * @return A Tensor of the same shape as the input tensor.
 *
 * @doc {heading: 'Operations', subheading: 'String'}
 */
                function stringToHashBucketFast_(input, numBuckets) {
                    var $input = convertToTensor(input, 'input', 'stringToHashBucketFast', 'string');
                    var attrs = {
                        numBuckets: numBuckets
                    };
                    if (numBuckets <= 0) {
                        throw new Error("Number of buckets must be at least 1");
                    }
                    var inputs = {
                        input: $input
                    };
                    return ENGINE.runKernel(StringToHashBucketFast, inputs, attrs);
                }
                var stringToHashBucketFast = op({
                    stringToHashBucketFast_: stringToHashBucketFast_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                var spectral = {
                    fft: fft,
                    ifft: ifft,
                    rfft: rfft,
                    irfft: irfft
                };
                var signal = {
                    hammingWindow: hammingWindow,
                    hannWindow: hannWindow,
                    frame: frame,
                    stft: stft
                };
                var image = {
                    flipLeftRight: flipLeftRight,
                    grayscaleToRGB: grayscaleToRGB,
                    resizeNearestNeighbor: resizeNearestNeighbor,
                    resizeBilinear: resizeBilinear,
                    rotateWithOffset: rotateWithOffset,
                    cropAndResize: cropAndResize,
                    nonMaxSuppression: nonMaxSuppression,
                    nonMaxSuppressionAsync: nonMaxSuppressionAsync,
                    nonMaxSuppressionWithScore: nonMaxSuppressionWithScore,
                    nonMaxSuppressionWithScoreAsync: nonMaxSuppressionWithScoreAsync,
                    nonMaxSuppressionPadded: nonMaxSuppressionPadded,
                    nonMaxSuppressionPaddedAsync: nonMaxSuppressionPaddedAsync,
                    threshold: threshold,
                    transform: transform
                };
                var linalg = {
                    bandPart: bandPart,
                    gramSchmidt: gramSchmidt,
                    qr: qr
                };
                var losses = {
                    absoluteDifference: absoluteDifference,
                    computeWeightedLoss: computeWeightedLoss,
                    cosineDistance: cosineDistance,
                    hingeLoss: hingeLoss,
                    huberLoss: huberLoss,
                    logLoss: logLoss,
                    meanSquaredError: meanSquaredError,
                    sigmoidCrossEntropy: sigmoidCrossEntropy,
                    softmaxCrossEntropy: softmaxCrossEntropy
                };
                var sparse = {
                    sparseFillEmptyRows: sparseFillEmptyRows,
                    sparseReshape: sparseReshape,
                    sparseSegmentMean: sparseSegmentMean,
                    sparseSegmentSum: sparseSegmentSum
                };
                // tslint:disable-next-line:variable-name
                var string = {
                    stringNGrams: stringNGrams,
                    stringSplit: stringSplit,
                    stringToHashBucketFast: stringToHashBucketFast
                };
                /** @doc {heading: 'Training', subheading: 'Classes', namespace: 'train'} */
                var Optimizer = /** @class */
                    function (_super) {
                        __extends(Optimizer, _super);
                        function Optimizer() {
                            return _super !== null && _super.apply(this, arguments) || this;
                        }
                        /**
         * Executes `f()` and minimizes the scalar output of `f()` by computing
         * gradients of y with respect to the list of trainable variables provided by
         * `varList`. If no list is provided, it defaults to all trainable variables.
         *
         * @param f The function to execute and whose output to minimize.
         * @param returnCost Whether to return the scalar cost value produced by
         * executing `f()`.
         * @param varList An optional list of variables to update. If specified, only
         * the trainable variables in varList will be updated by minimize. Defaults to
         * all trainable variables.
         *
         * @doc {heading: 'Training', subheading: 'Optimizers'}
         */
                        Optimizer.prototype.minimize = function (f, returnCost, varList) {
                            if (returnCost === void 0) {
                                returnCost = false;
                            }
                            var _a = this.computeGradients(f, varList)
                                , value = _a.value
                                , grads = _a.grads;
                            if (varList != null) {
                                var gradArray = varList.map(function (v) {
                                    return {
                                        name: v.name,
                                        tensor: grads[v.name]
                                    };
                                });
                                this.applyGradients(gradArray);
                            } else {
                                this.applyGradients(grads);
                            }
                            // Dispose gradients.
                            dispose(grads);
                            if (returnCost) {
                                return value;
                            } else {
                                value.dispose();
                                return null;
                            }
                        }
                            ;
                        Object.defineProperty(Optimizer.prototype, "iterations", {
                            /**
             * The number of iterations that this optimizer instance has been invoked for.
             */
                            get: function () {
                                if (this.iterations_ == null) {
                                    this.iterations_ = 0;
                                }
                                return this.iterations_;
                            },
                            enumerable: false,
                            configurable: true
                        });
                        Optimizer.prototype.incrementIterations = function () {
                            this.iterations_ = this.iterations + 1;
                        }
                            ;
                        /**
         * Executes f() and computes the gradient of the scalar output of f() with
         * respect to the list of trainable variables provided by `varList`. If no
         * list is provided, it defaults to all trainable variables.
         *
         * @param f The function to execute and whose output to use for computing
         * gradients with respect to variables.
         * @param varList An optional list of variables to compute gradients with
         * respect to. If specified, only the trainable variables in varList will have
         * gradients computed with respect to. Defaults to all trainable variables.
         *
         * @doc {heading: 'Training', subheading: 'Optimizers'}
         */
                        Optimizer.prototype.computeGradients = function (f, varList) {
                            return variableGrads(f, varList);
                        }
                            ;
                        /**
         * Dispose the variables (if any) owned by this optimizer instance.
         */
                        Optimizer.prototype.dispose = function () {
                            if (this.iterations_ != null) {
                                dispose(this.iterations_);
                            }
                        }
                            ;
                        Optimizer.prototype.saveIterations = function () {
                            return __awaiter(this, void 0, void 0, function () {
                                return __generator(this, function (_a) {
                                    if (this.iterations_ == null) {
                                        this.iterations_ = 0;
                                    }
                                    return [2 /*return*/
                                        , {
                                            name: 'iter',
                                            // TODO(cais): Use 'int64' type when available.
                                            tensor: scalar(this.iterations_, 'int32')
                                        }];
                                });
                            });
                        }
                            ;
                        Optimizer.prototype.getWeights = function () {
                            return __awaiter(this, void 0, void 0, function () {
                                return __generator(this, function (_a) {
                                    throw new Error('getWeights() is not implemented for this optimizer yet.');
                                });
                            });
                        }
                            ;
                        Optimizer.prototype.setWeights = function (weightValues) {
                            return __awaiter(this, void 0, void 0, function () {
                                return __generator(this, function (_a) {
                                    throw new Error("setWeights() is not implemented for this optimizer class " + "".concat(this.getClassName()));
                                });
                            });
                        }
                            ;
                        /**
         * Extract the first element of the weight values and set it
         * as the iterations counter variable of this instance of optimizer.
         *
         * @param weightValues
         * @returns Weight values with the first element consumed and excluded.
         */
                        Optimizer.prototype.extractIterations = function (weightValues) {
                            return __awaiter(this, void 0, void 0, function () {
                                var _a;
                                return __generator(this, function (_b) {
                                    switch (_b.label) {
                                        case 0:
                                            _a = this;
                                            return [4 /*yield*/
                                                , weightValues[0].tensor.data()];
                                        case 1:
                                            _a.iterations_ = _b.sent()[0];
                                            return [2 /*return*/
                                                , weightValues.slice(1)];
                                    }
                                });
                            });
                        }
                            ;
                        return Optimizer;
                    }(Serializable);
                Object.defineProperty(Optimizer, Symbol.hasInstance, {
                    value: function (instance) {
                        return instance.minimize != null && instance.computeGradients != null && instance.applyGradients != null;
                    }
                });
                /** @doclink Optimizer */
                var AdadeltaOptimizer = /** @class */
                    function (_super) {
                        __extends(AdadeltaOptimizer, _super);
                        function AdadeltaOptimizer(learningRate, rho, epsilon) {
                            if (epsilon === void 0) {
                                epsilon = null;
                            }
                            var _this = _super.call(this) || this;
                            _this.learningRate = learningRate;
                            _this.rho = rho;
                            _this.epsilon = epsilon;
                            _this.accumulatedGrads = [];
                            _this.accumulatedUpdates = [];
                            if (epsilon == null) {
                                _this.epsilon = ENGINE.backend.epsilon();
                            }
                            return _this;
                        }
                        AdadeltaOptimizer.prototype.applyGradients = function (variableGradients) {
                            var _this = this;
                            var variableNames = Array.isArray(variableGradients) ? variableGradients.map(function (item) {
                                return item.name;
                            }) : Object.keys(variableGradients);
                            variableNames.forEach(function (name, i) {
                                var value = ENGINE.registeredVariables[name];
                                var trainable = false;
                                if (_this.accumulatedGrads[i] == null) {
                                    _this.accumulatedGrads[i] = {
                                        originalName: "".concat(name, "/accum_grad"),
                                        variable: tidy(function () {
                                            return zerosLike(value).variable(trainable);
                                        })
                                    };
                                }
                                if (_this.accumulatedUpdates[i] == null) {
                                    _this.accumulatedUpdates[i] = {
                                        originalName: "".concat(name, "/accum_var"),
                                        variable: tidy(function () {
                                            return zerosLike(value).variable(trainable);
                                        })
                                    };
                                }
                                var gradient = Array.isArray(variableGradients) ? variableGradients[i].tensor : variableGradients[name];
                                if (gradient == null) {
                                    return;
                                }
                                var accumulatedGrad = _this.accumulatedGrads[i].variable;
                                var accumulatedUpdate = _this.accumulatedUpdates[i].variable;
                                tidy(function () {
                                    var newAccumulatedGrad = add(mul(accumulatedGrad, _this.rho), mul(square(gradient), 1 - _this.rho));
                                    var updates = mul(div(sqrt(add(accumulatedUpdate, _this.epsilon)), sqrt(add(accumulatedGrad, _this.epsilon))), gradient);
                                    var newAccumulatedUpdate = add(mul(accumulatedUpdate, _this.rho), mul(square(updates), 1 - _this.rho));
                                    accumulatedGrad.assign(newAccumulatedGrad);
                                    accumulatedUpdate.assign(newAccumulatedUpdate);
                                    var newValue = add(mul(updates, -_this.learningRate), value);
                                    value.assign(newValue);
                                });
                            });
                            this.incrementIterations();
                        }
                            ;
                        AdadeltaOptimizer.prototype.dispose = function () {
                            if (this.accumulatedUpdates != null) {
                                dispose(this.accumulatedGrads.map(function (v) {
                                    return v.variable;
                                }));
                                dispose(this.accumulatedUpdates.map(function (v) {
                                    return v.variable;
                                }));
                            }
                        }
                            ;
                        AdadeltaOptimizer.prototype.getWeights = function () {
                            return __awaiter(this, void 0, void 0, function () {
                                var variables;
                                return __generator(this, function (_a) {
                                    switch (_a.label) {
                                        case 0:
                                            variables = __spreadArray(__spreadArray([], __read(this.accumulatedGrads), false), __read(this.accumulatedUpdates), false);
                                            return [4 /*yield*/
                                                , this.saveIterations()];
                                        case 1:
                                            return [2 /*return*/
                                                , [_a.sent()].concat(variables.map(function (v) {
                                                    return {
                                                        name: v.originalName,
                                                        tensor: v.variable
                                                    };
                                                }))];
                                    }
                                });
                            });
                        }
                            ;
                        AdadeltaOptimizer.prototype.setWeights = function (weightValues) {
                            return __awaiter(this, void 0, void 0, function () {
                                var variableCount, trainable;
                                return __generator(this, function (_a) {
                                    switch (_a.label) {
                                        case 0:
                                            return [4 /*yield*/
                                                , this.extractIterations(weightValues)];
                                        case 1:
                                            weightValues = _a.sent();
                                            variableCount = weightValues.length / 2;
                                            trainable = false;
                                            this.accumulatedGrads = weightValues.slice(0, variableCount).map(function (v) {
                                                return {
                                                    originalName: v.name,
                                                    variable: v.tensor.variable(trainable)
                                                };
                                            });
                                            this.accumulatedUpdates = weightValues.slice(variableCount, variableCount * 2).map(function (v) {
                                                return {
                                                    originalName: v.name,
                                                    variable: v.tensor.variable(trainable)
                                                };
                                            });
                                            return [2 /*return*/
                                            ];
                                    }
                                });
                            });
                        }
                            ;
                        AdadeltaOptimizer.prototype.getConfig = function () {
                            return {
                                'learningRate': this.learningRate,
                                'rho': this.rho,
                                'epsilon': this.epsilon
                            };
                        }
                            ;
                        /** @nocollapse */
                        AdadeltaOptimizer.fromConfig = function (cls, config) {
                            return new cls(config['learningRate'], config['rho'], config['epsilon']);
                        }
                            ;
                        return AdadeltaOptimizer;
                    }(Optimizer);
                /** @nocollapse */
                AdadeltaOptimizer.className = 'Adadelta';
                // Name matters for Python compatibility.
                registerClass(AdadeltaOptimizer);
                /** @doclink Optimizer */
                var AdagradOptimizer = /** @class */
                    function (_super) {
                        __extends(AdagradOptimizer, _super);
                        function AdagradOptimizer(learningRate, initialAccumulatorValue) {
                            if (initialAccumulatorValue === void 0) {
                                initialAccumulatorValue = 0.1;
                            }
                            var _this = _super.call(this) || this;
                            _this.learningRate = learningRate;
                            _this.initialAccumulatorValue = initialAccumulatorValue;
                            _this.accumulatedGrads = [];
                            return _this;
                        }
                        AdagradOptimizer.prototype.applyGradients = function (variableGradients) {
                            var _this = this;
                            var variableNames = Array.isArray(variableGradients) ? variableGradients.map(function (item) {
                                return item.name;
                            }) : Object.keys(variableGradients);
                            variableNames.forEach(function (name, i) {
                                var value = ENGINE.registeredVariables[name];
                                if (_this.accumulatedGrads[i] == null) {
                                    var trainable_1 = false;
                                    _this.accumulatedGrads[i] = {
                                        originalName: "".concat(name, "/accumulator"),
                                        variable: tidy(function () {
                                            return fill(value.shape, _this.initialAccumulatorValue).variable(trainable_1);
                                        })
                                    };
                                }
                                var gradient = Array.isArray(variableGradients) ? variableGradients[i].tensor : variableGradients[name];
                                if (gradient == null) {
                                    return;
                                }
                                var accumulatedGrad = _this.accumulatedGrads[i].variable;
                                tidy(function () {
                                    var newAccumulatedGrad = add(accumulatedGrad, square(gradient));
                                    accumulatedGrad.assign(newAccumulatedGrad);
                                    var newValue = add(mul(div(gradient, sqrt(add(newAccumulatedGrad, ENGINE.backend.epsilon()))), -_this.learningRate), value);
                                    value.assign(newValue);
                                });
                            });
                            this.incrementIterations();
                        }
                            ;
                        AdagradOptimizer.prototype.dispose = function () {
                            if (this.accumulatedGrads != null) {
                                dispose(this.accumulatedGrads.map(function (v) {
                                    return v.variable;
                                }));
                            }
                        }
                            ;
                        AdagradOptimizer.prototype.getWeights = function () {
                            return __awaiter(this, void 0, void 0, function () {
                                return __generator(this, function (_a) {
                                    switch (_a.label) {
                                        case 0:
                                            return [4 /*yield*/
                                                , this.saveIterations()];
                                        case 1:
                                            // Order matters for Python compatibility.
                                            return [2 /*return*/
                                                , [_a.sent()].concat(this.accumulatedGrads.map(function (v) {
                                                    return {
                                                        name: v.originalName,
                                                        tensor: v.variable
                                                    };
                                                }))];
                                    }
                                });
                            });
                        }
                            ;
                        AdagradOptimizer.prototype.setWeights = function (weightValues) {
                            return __awaiter(this, void 0, void 0, function () {
                                var trainable;
                                return __generator(this, function (_a) {
                                    switch (_a.label) {
                                        case 0:
                                            return [4 /*yield*/
                                                , this.extractIterations(weightValues)];
                                        case 1:
                                            weightValues = _a.sent();
                                            trainable = false;
                                            this.accumulatedGrads = weightValues.map(function (v) {
                                                return {
                                                    originalName: v.name,
                                                    variable: v.tensor.variable(trainable)
                                                };
                                            });
                                            return [2 /*return*/
                                            ];
                                    }
                                });
                            });
                        }
                            ;
                        AdagradOptimizer.prototype.getConfig = function () {
                            return {
                                'learningRate': this.learningRate,
                                'initialAccumulatorValue': this.initialAccumulatorValue
                            };
                        }
                            ;
                        /** @nocollapse */
                        AdagradOptimizer.fromConfig = function (cls, config) {
                            return new cls(config['learningRate'], config['initialAccumulatorValue']);
                        }
                            ;
                        return AdagradOptimizer;
                    }(Optimizer);
                /** @nocollapse */
                AdagradOptimizer.className = 'Adagrad';
                // Note: Name matters for Python compatibility.
                registerClass(AdagradOptimizer);
                var AdamOptimizer = /** @class */
                    function (_super) {
                        __extends(AdamOptimizer, _super);
                        function AdamOptimizer(learningRate, beta1, beta2, epsilon) {
                            if (epsilon === void 0) {
                                epsilon = null;
                            }
                            var _this = _super.call(this) || this;
                            _this.learningRate = learningRate;
                            _this.beta1 = beta1;
                            _this.beta2 = beta2;
                            _this.epsilon = epsilon;
                            _this.accumulatedFirstMoment = [];
                            _this.accumulatedSecondMoment = [];
                            tidy(function () {
                                // accB* will be updated by batch.
                                _this.accBeta1 = scalar(beta1).variable();
                                _this.accBeta2 = scalar(beta2).variable();
                            });
                            if (epsilon == null) {
                                _this.epsilon = ENGINE.backend.epsilon();
                            }
                            return _this;
                        }
                        AdamOptimizer.prototype.applyGradients = function (variableGradients) {
                            var _this = this;
                            var varNames = Array.isArray(variableGradients) ? variableGradients.map(function (v) {
                                return v.name;
                            }) : Object.keys(variableGradients);
                            tidy(function () {
                                var oneMinusAccBeta1 = sub(1, _this.accBeta1);
                                var oneMinusAccBeta2 = sub(1, _this.accBeta2);
                                varNames.forEach(function (name, i) {
                                    var value = ENGINE.registeredVariables[name];
                                    var trainable = false;
                                    if (_this.accumulatedFirstMoment[i] == null) {
                                        _this.accumulatedFirstMoment[i] = {
                                            originalName: "".concat(name, "/m"),
                                            variable: tidy(function () {
                                                return zerosLike(value).variable(trainable);
                                            })
                                        };
                                    }
                                    if (_this.accumulatedSecondMoment[i] == null) {
                                        _this.accumulatedSecondMoment[i] = {
                                            originalName: "".concat(name, "/v"),
                                            variable: tidy(function () {
                                                return zerosLike(value).variable(trainable);
                                            })
                                        };
                                    }
                                    var gradient = Array.isArray(variableGradients) ? variableGradients[i].tensor : variableGradients[name];
                                    if (gradient == null) {
                                        return;
                                    }
                                    var firstMoment = _this.accumulatedFirstMoment[i].variable;
                                    var secondMoment = _this.accumulatedSecondMoment[i].variable;
                                    var newFirstMoment = add(mul(firstMoment, _this.beta1), mul(gradient, 1 - _this.beta1));
                                    var newSecondMoment = add(mul(secondMoment, _this.beta2), mul(square(gradient), 1 - _this.beta2));
                                    var biasCorrectedFirstMoment = div(newFirstMoment, oneMinusAccBeta1);
                                    var biasCorrectedSecondMoment = div(newSecondMoment, oneMinusAccBeta2);
                                    firstMoment.assign(newFirstMoment);
                                    secondMoment.assign(newSecondMoment);
                                    var newValue = add(mul(div(biasCorrectedFirstMoment, add(sqrt(biasCorrectedSecondMoment), _this.epsilon)), -_this.learningRate), value);
                                    value.assign(newValue);
                                });
                                _this.accBeta1.assign(mul(_this.accBeta1, _this.beta1));
                                _this.accBeta2.assign(mul(_this.accBeta2, _this.beta2));
                            });
                            this.incrementIterations();
                        }
                            ;
                        AdamOptimizer.prototype.dispose = function () {
                            this.accBeta1.dispose();
                            this.accBeta2.dispose();
                            if (this.accumulatedFirstMoment != null) {
                                dispose(this.accumulatedFirstMoment.map(function (v) {
                                    return v.variable;
                                }));
                            }
                            if (this.accumulatedSecondMoment != null) {
                                dispose(this.accumulatedSecondMoment.map(function (v) {
                                    return v.variable;
                                }));
                            }
                        }
                            ;
                        AdamOptimizer.prototype.getWeights = function () {
                            return __awaiter(this, void 0, void 0, function () {
                                var variables;
                                return __generator(this, function (_a) {
                                    switch (_a.label) {
                                        case 0:
                                            variables = __spreadArray(__spreadArray([], __read(this.accumulatedFirstMoment), false), __read(this.accumulatedSecondMoment), false);
                                            return [4 /*yield*/
                                                , this.saveIterations()];
                                        case 1:
                                            return [2 /*return*/
                                                , [_a.sent()].concat(variables.map(function (v) {
                                                    return {
                                                        name: v.originalName,
                                                        tensor: v.variable
                                                    };
                                                }))];
                                    }
                                });
                            });
                        }
                            ;
                        AdamOptimizer.prototype.setWeights = function (weightValues) {
                            return __awaiter(this, void 0, void 0, function () {
                                var variableCount, trainable;
                                var _this = this;
                                return __generator(this, function (_a) {
                                    switch (_a.label) {
                                        case 0:
                                            return [4 /*yield*/
                                                , this.extractIterations(weightValues)];
                                        case 1:
                                            weightValues = _a.sent();
                                            tidy(function () {
                                                _this.accBeta1.assign(pow(_this.beta1, _this.iterations_ + 1));
                                                _this.accBeta2.assign(pow(_this.beta2, _this.iterations_ + 1));
                                            });
                                            variableCount = weightValues.length / 2;
                                            trainable = false;
                                            this.accumulatedFirstMoment = weightValues.slice(0, variableCount).map(function (v) {
                                                return {
                                                    originalName: v.name,
                                                    variable: v.tensor.variable(trainable)
                                                };
                                            });
                                            this.accumulatedSecondMoment = weightValues.slice(variableCount, variableCount * 2).map(function (v) {
                                                return {
                                                    originalName: v.name,
                                                    variable: v.tensor.variable(trainable)
                                                };
                                            });
                                            return [2 /*return*/
                                            ];
                                    }
                                });
                            });
                        }
                            ;
                        AdamOptimizer.prototype.getConfig = function () {
                            return {
                                'learningRate': this.learningRate,
                                'beta1': this.beta1,
                                'beta2': this.beta2,
                                'epsilon': this.epsilon
                            };
                        }
                            ;
                        /** @nocollapse */
                        AdamOptimizer.fromConfig = function (cls, config) {
                            return new cls(config['learningRate'], config['beta1'], config['beta2'], config['epsilon']);
                        }
                            ;
                        return AdamOptimizer;
                    }(Optimizer);
                /** @nocollapse */
                AdamOptimizer.className = 'Adam';
                // Note: Name matters for Python compatibility.
                registerClass(AdamOptimizer);
                var AdamaxOptimizer = /** @class */
                    function (_super) {
                        __extends(AdamaxOptimizer, _super);
                        function AdamaxOptimizer(learningRate, beta1, beta2, epsilon, decay) {
                            if (epsilon === void 0) {
                                epsilon = null;
                            }
                            if (decay === void 0) {
                                decay = 0.0;
                            }
                            var _this = _super.call(this) || this;
                            _this.learningRate = learningRate;
                            _this.beta1 = beta1;
                            _this.beta2 = beta2;
                            _this.epsilon = epsilon;
                            _this.decay = decay;
                            _this.accumulatedFirstMoment = [];
                            _this.accumulatedWeightedInfNorm = [];
                            tidy(function () {
                                _this.iteration = scalar(0).variable();
                                _this.accBeta1 = scalar(beta1).variable();
                            });
                            if (epsilon == null) {
                                _this.epsilon = ENGINE.backend.epsilon();
                            }
                            return _this;
                        }
                        AdamaxOptimizer.prototype.applyGradients = function (variableGradients) {
                            var _this = this;
                            var variableNames = Array.isArray(variableGradients) ? variableGradients.map(function (item) {
                                return item.name;
                            }) : Object.keys(variableGradients);
                            tidy(function () {
                                var oneMinusAccBeta1 = sub(1, _this.accBeta1);
                                var lr = div(-_this.learningRate, add(mul(_this.iteration, _this.decay), 1));
                                variableNames.forEach(function (name, i) {
                                    var value = ENGINE.registeredVariables[name];
                                    var trainable = false;
                                    if (_this.accumulatedFirstMoment[i] == null) {
                                        _this.accumulatedFirstMoment[i] = {
                                            originalName: "".concat(name, "/m"),
                                            variable: zerosLike(value).variable(trainable)
                                        };
                                    }
                                    if (_this.accumulatedWeightedInfNorm[i] == null) {
                                        _this.accumulatedWeightedInfNorm[i] = {
                                            originalName: "".concat(name, "/v"),
                                            variable: zerosLike(value).variable(trainable)
                                        };
                                    }
                                    var gradient = Array.isArray(variableGradients) ? variableGradients[i].tensor : variableGradients[name];
                                    if (gradient == null) {
                                        return;
                                    }
                                    var firstMoment = _this.accumulatedFirstMoment[i].variable;
                                    var weightedInfNorm = _this.accumulatedWeightedInfNorm[i].variable;
                                    var newFirstMoment = add(mul(firstMoment, _this.beta1), mul(gradient, 1 - _this.beta1));
                                    var ut0 = mul(weightedInfNorm, _this.beta2);
                                    var ut1 = abs(gradient);
                                    var newWeightedInfNorm = maximum(ut0, ut1);
                                    firstMoment.assign(newFirstMoment);
                                    weightedInfNorm.assign(newWeightedInfNorm);
                                    var newValue = add(mul(div(lr, oneMinusAccBeta1), div(newFirstMoment, add(newWeightedInfNorm, _this.epsilon))), value);
                                    value.assign(newValue);
                                });
                                _this.iteration.assign(add(_this.iteration, 1));
                                _this.accBeta1.assign(mul(_this.accBeta1, _this.beta1));
                            });
                            this.incrementIterations();
                        }
                            ;
                        AdamaxOptimizer.prototype.dispose = function () {
                            this.accBeta1.dispose();
                            this.iteration.dispose();
                            if (this.accumulatedFirstMoment != null) {
                                dispose(this.accumulatedFirstMoment.map(function (v) {
                                    return v.variable;
                                }));
                            }
                            if (this.accumulatedWeightedInfNorm != null) {
                                dispose(this.accumulatedWeightedInfNorm.map(function (v) {
                                    return v.variable;
                                }));
                            }
                        }
                            ;
                        AdamaxOptimizer.prototype.getWeights = function () {
                            return __awaiter(this, void 0, void 0, function () {
                                return __generator(this, function (_a) {
                                    throw new Error('getWeights() is not implemented for Adamax yet.');
                                });
                            });
                        }
                            ;
                        AdamaxOptimizer.prototype.setWeights = function (weightValues) {
                            return __awaiter(this, void 0, void 0, function () {
                                return __generator(this, function (_a) {
                                    throw new Error('setWeights() is not implemented for Adamax yet.');
                                });
                            });
                        }
                            ;
                        AdamaxOptimizer.prototype.getConfig = function () {
                            return {
                                'learningRate': this.learningRate,
                                'beta1': this.beta1,
                                'beta2': this.beta2,
                                'epsilon': this.epsilon,
                                'decay': this.decay
                            };
                        }
                            ;
                        /** @nocollapse */
                        AdamaxOptimizer.fromConfig = function (cls, config) {
                            return new cls(config['learningRate'], config['beta1'], config['beta2'], config['epsilon'], config['decay']);
                        }
                            ;
                        return AdamaxOptimizer;
                    }(Optimizer);
                /** @nocollapse */
                AdamaxOptimizer.className = 'Adamax';
                // Note: Name matters for Python compatbility.
                registerClass(AdamaxOptimizer);
                /** @doclink Optimizer */
                var SGDOptimizer = /** @class */
                    function (_super) {
                        __extends(SGDOptimizer, _super);
                        function SGDOptimizer(learningRate) {
                            var _this = _super.call(this) || this;
                            _this.learningRate = learningRate;
                            _this.setLearningRate(learningRate);
                            return _this;
                        }
                        SGDOptimizer.prototype.applyGradients = function (variableGradients) {
                            var _this = this;
                            var varNames = Array.isArray(variableGradients) ? variableGradients.map(function (v) {
                                return v.name;
                            }) : Object.keys(variableGradients);
                            varNames.forEach(function (name, i) {
                                var gradient = Array.isArray(variableGradients) ? variableGradients[i].tensor : variableGradients[name];
                                if (gradient == null) {
                                    return;
                                }
                                var value = ENGINE.registeredVariables[name];
                                tidy(function () {
                                    var newValue = add(mul(_this.c, gradient), value);
                                    value.assign(newValue);
                                });
                            });
                            this.incrementIterations();
                        }
                            ;
                        /**
         * Sets the learning rate of the optimizer.
         */
                        SGDOptimizer.prototype.setLearningRate = function (learningRate) {
                            this.learningRate = learningRate;
                            if (this.c != null) {
                                this.c.dispose();
                            }
                            this.c = keep(scalar(-learningRate));
                        }
                            ;
                        SGDOptimizer.prototype.dispose = function () {
                            this.c.dispose();
                        }
                            ;
                        SGDOptimizer.prototype.getWeights = function () {
                            return __awaiter(this, void 0, void 0, function () {
                                return __generator(this, function (_a) {
                                    switch (_a.label) {
                                        case 0:
                                            return [4 /*yield*/
                                                , this.saveIterations()];
                                        case 1:
                                            return [2 /*return*/
                                                , [_a.sent()]];
                                    }
                                });
                            });
                        }
                            ;
                        SGDOptimizer.prototype.setWeights = function (weightValues) {
                            return __awaiter(this, void 0, void 0, function () {
                                return __generator(this, function (_a) {
                                    switch (_a.label) {
                                        case 0:
                                            return [4 /*yield*/
                                                , this.extractIterations(weightValues)];
                                        case 1:
                                            weightValues = _a.sent();
                                            if (weightValues.length !== 0) {
                                                throw new Error('SGD optimizer does not have settable weights.');
                                            }
                                            return [2 /*return*/
                                            ];
                                    }
                                });
                            });
                        }
                            ;
                        SGDOptimizer.prototype.getConfig = function () {
                            return {
                                'learningRate': this.learningRate
                            };
                        }
                            ;
                        /** @nocollapse */
                        SGDOptimizer.fromConfig = function (cls, config) {
                            return new cls(config['learningRate']);
                        }
                            ;
                        return SGDOptimizer;
                    }(Optimizer);
                /** @nocollapse */
                SGDOptimizer.className = 'SGD';
                // Note: Name matters for Python compatibility.
                registerClass(SGDOptimizer);
                /** @doclink Optimizer */
                var MomentumOptimizer = /** @class */
                    function (_super) {
                        __extends(MomentumOptimizer, _super);
                        function MomentumOptimizer(learningRate, momentum, useNesterov) {
                            if (useNesterov === void 0) {
                                useNesterov = false;
                            }
                            var _this = _super.call(this, learningRate) || this;
                            _this.learningRate = learningRate;
                            _this.momentum = momentum;
                            _this.useNesterov = useNesterov;
                            _this.accumulations = [];
                            _this.m = scalar(_this.momentum);
                            return _this;
                        }
                        MomentumOptimizer.prototype.applyGradients = function (variableGradients) {
                            var _this = this;
                            var variableNames = Array.isArray(variableGradients) ? variableGradients.map(function (item) {
                                return item.name;
                            }) : Object.keys(variableGradients);
                            variableNames.forEach(function (name, i) {
                                var value = ENGINE.registeredVariables[name];
                                if (_this.accumulations[i] == null) {
                                    var trainable_1 = false;
                                    _this.accumulations[i] = {
                                        originalName: "".concat(name, "/momentum"),
                                        variable: tidy(function () {
                                            return zerosLike(value).variable(trainable_1);
                                        })
                                    };
                                }
                                var accumulation = _this.accumulations[i].variable;
                                var gradient = Array.isArray(variableGradients) ? variableGradients[i].tensor : variableGradients[name];
                                if (gradient == null) {
                                    return;
                                }
                                tidy(function () {
                                    var newValue;
                                    var newAccumulation = add(mul(_this.m, accumulation), gradient);
                                    if (_this.useNesterov) {
                                        newValue = add(mul(_this.c, add(gradient, mul(newAccumulation, _this.m))), value);
                                    } else {
                                        newValue = add(mul(_this.c, newAccumulation), value);
                                    }
                                    accumulation.assign(newAccumulation);
                                    value.assign(newValue);
                                });
                            });
                            this.incrementIterations();
                        }
                            ;
                        MomentumOptimizer.prototype.dispose = function () {
                            this.m.dispose();
                            if (this.accumulations != null) {
                                dispose(this.accumulations.map(function (v) {
                                    return v.variable;
                                }));
                            }
                        }
                            ;
                        /**
         * Sets the momentum of the optimizer.
         *
         * @param momentum
         */
                        MomentumOptimizer.prototype.setMomentum = function (momentum) {
                            this.momentum = momentum;
                        }
                            ;
                        MomentumOptimizer.prototype.getWeights = function () {
                            return __awaiter(this, void 0, void 0, function () {
                                return __generator(this, function (_a) {
                                    switch (_a.label) {
                                        case 0:
                                            return [4 /*yield*/
                                                , this.saveIterations()];
                                        case 1:
                                            // Order matters for Python compatibility.
                                            return [2 /*return*/
                                                , [_a.sent()].concat(this.accumulations.map(function (v) {
                                                    return {
                                                        name: v.originalName,
                                                        tensor: v.variable
                                                    };
                                                }))];
                                    }
                                });
                            });
                        }
                            ;
                        MomentumOptimizer.prototype.setWeights = function (weightValues) {
                            return __awaiter(this, void 0, void 0, function () {
                                var trainable;
                                return __generator(this, function (_a) {
                                    switch (_a.label) {
                                        case 0:
                                            return [4 /*yield*/
                                                , this.extractIterations(weightValues)];
                                        case 1:
                                            weightValues = _a.sent();
                                            trainable = false;
                                            this.accumulations = weightValues.map(function (v) {
                                                return {
                                                    originalName: v.name,
                                                    variable: v.tensor.variable(trainable)
                                                };
                                            });
                                            return [2 /*return*/
                                            ];
                                    }
                                });
                            });
                        }
                            ;
                        MomentumOptimizer.prototype.getConfig = function () {
                            return {
                                'learningRate': this.learningRate,
                                'momentum': this.momentum,
                                'useNesterov': this.useNesterov
                            };
                        }
                            ;
                        /** @nocollapse */
                        MomentumOptimizer.fromConfig = function (cls, config) {
                            return new cls(config['learningRate'], config['momentum'], config['useNesterov']);
                        }
                            ;
                        return MomentumOptimizer;
                    }(SGDOptimizer);
                /** @nocollapse */
                // Name matters for Python compatibility.
                MomentumOptimizer.className = 'Momentum';
                registerClass(MomentumOptimizer);
                /** @doclink Optimizer */
                var RMSPropOptimizer = /** @class */
                    function (_super) {
                        __extends(RMSPropOptimizer, _super);
                        function RMSPropOptimizer(learningRate, decay, momentum, epsilon, centered) {
                            if (decay === void 0) {
                                decay = 0.9;
                            }
                            if (momentum === void 0) {
                                momentum = 0.0;
                            }
                            if (epsilon === void 0) {
                                epsilon = null;
                            }
                            if (centered === void 0) {
                                centered = false;
                            }
                            var _this = _super.call(this) || this;
                            _this.learningRate = learningRate;
                            _this.decay = decay;
                            _this.momentum = momentum;
                            _this.epsilon = epsilon;
                            _this.accumulatedMeanSquares = [];
                            _this.accumulatedMoments = [];
                            _this.accumulatedMeanGrads = [];
                            _this.centered = centered;
                            if (epsilon == null) {
                                _this.epsilon = ENGINE.backend.epsilon();
                            }
                            if (learningRate == null) {
                                throw new Error("learningRate for RMSPropOptimizer must be defined.");
                            }
                            return _this;
                        }
                        RMSPropOptimizer.prototype.applyGradients = function (variableGradients) {
                            var _this = this;
                            var variableNames = Array.isArray(variableGradients) ? variableGradients.map(function (item) {
                                return item.name;
                            }) : Object.keys(variableGradients);
                            variableNames.forEach(function (name, i) {
                                var value = ENGINE.registeredVariables[name];
                                var trainable = false;
                                if (_this.accumulatedMeanSquares[i] == null) {
                                    _this.accumulatedMeanSquares[i] = {
                                        originalName: "".concat(name, "/rms"),
                                        variable: tidy(function () {
                                            return zerosLike(value).variable(trainable);
                                        })
                                    };
                                }
                                if (_this.accumulatedMoments[i] == null) {
                                    _this.accumulatedMoments[i] = {
                                        originalName: "".concat(name, "/momentum"),
                                        variable: tidy(function () {
                                            return zerosLike(value).variable(trainable);
                                        })
                                    };
                                }
                                if (_this.accumulatedMeanGrads[i] == null && _this.centered) {
                                    _this.accumulatedMeanGrads[i] = {
                                        originalName: "".concat(name, "/mg"),
                                        variable: tidy(function () {
                                            return zerosLike(value).variable(trainable);
                                        })
                                    };
                                }
                                var gradient = Array.isArray(variableGradients) ? variableGradients[i].tensor : variableGradients[name];
                                if (gradient == null) {
                                    return;
                                }
                                var accumulatedMeanSquare = _this.accumulatedMeanSquares[i].variable;
                                var accumulatedMoments = _this.accumulatedMoments[i].variable;
                                tidy(function () {
                                    var newAccumulatedMeanSquare = add(mul(accumulatedMeanSquare, _this.decay), mul(square(gradient), 1 - _this.decay));
                                    if (_this.centered) {
                                        var accumulatedMeanGrad = _this.accumulatedMeanGrads[i].variable;
                                        // Centered gradient
                                        var newAccumulatedMeanGrad = add(mul(accumulatedMeanGrad, _this.decay), mul(gradient, 1 - _this.decay));
                                        var gradContribution = div(mul(gradient, _this.learningRate), sqrt(sub(newAccumulatedMeanSquare, add(square(newAccumulatedMeanGrad), _this.epsilon))));
                                        var newAccumulatedMoments = add(mul(accumulatedMoments, _this.momentum), gradContribution);
                                        accumulatedMeanSquare.assign(newAccumulatedMeanSquare);
                                        accumulatedMeanGrad.assign(newAccumulatedMeanGrad);
                                        accumulatedMoments.assign(newAccumulatedMoments);
                                        var newValue = sub(value, newAccumulatedMoments);
                                        value.assign(newValue);
                                    } else {
                                        // Plain gradient
                                        var newAccumulatedMeanSquare_1 = add(mul(accumulatedMeanSquare, _this.decay), mul(square(gradient), 1 - _this.decay));
                                        var newAccumulatedMoments = add(mul(accumulatedMoments, _this.momentum), div(mul(gradient, _this.learningRate), sqrt(add(newAccumulatedMeanSquare_1, _this.epsilon))));
                                        accumulatedMeanSquare.assign(newAccumulatedMeanSquare_1);
                                        accumulatedMoments.assign(newAccumulatedMoments);
                                        var newValue = sub(value, newAccumulatedMoments);
                                        value.assign(newValue);
                                    }
                                });
                            });
                            this.incrementIterations();
                        }
                            ;
                        RMSPropOptimizer.prototype.dispose = function () {
                            if (this.accumulatedMeanSquares != null) {
                                dispose(this.accumulatedMeanSquares.map(function (v) {
                                    return v.variable;
                                }));
                            }
                            if (this.accumulatedMeanGrads != null && this.centered) {
                                dispose(this.accumulatedMeanGrads.map(function (v) {
                                    return v.variable;
                                }));
                            }
                            if (this.accumulatedMoments != null) {
                                dispose(this.accumulatedMoments.map(function (v) {
                                    return v.variable;
                                }));
                            }
                        }
                            ;
                        RMSPropOptimizer.prototype.getWeights = function () {
                            return __awaiter(this, void 0, void 0, function () {
                                var variables;
                                return __generator(this, function (_a) {
                                    switch (_a.label) {
                                        case 0:
                                            variables = __spreadArray(__spreadArray([], __read(this.accumulatedMeanSquares), false), __read(this.accumulatedMoments), false);
                                            if (this.centered) {
                                                variables.push.apply(variables, __spreadArray([], __read(this.accumulatedMeanGrads), false));
                                            }
                                            return [4 /*yield*/
                                                , this.saveIterations()];
                                        case 1:
                                            return [2 /*return*/
                                                , [_a.sent()].concat(variables.map(function (v) {
                                                    return {
                                                        name: v.originalName,
                                                        tensor: v.variable
                                                    };
                                                }))];
                                    }
                                });
                            });
                        }
                            ;
                        RMSPropOptimizer.prototype.setWeights = function (weightValues) {
                            return __awaiter(this, void 0, void 0, function () {
                                var variableCount, trainable;
                                return __generator(this, function (_a) {
                                    switch (_a.label) {
                                        case 0:
                                            return [4 /*yield*/
                                                , this.extractIterations(weightValues)];
                                        case 1:
                                            weightValues = _a.sent();
                                            variableCount = this.centered ? weightValues.length / 3 : weightValues.length / 2;
                                            trainable = false;
                                            this.accumulatedMeanSquares = weightValues.slice(0, variableCount).map(function (v) {
                                                return {
                                                    originalName: v.name,
                                                    variable: v.tensor.variable(trainable)
                                                };
                                            });
                                            this.accumulatedMoments = weightValues.slice(variableCount, variableCount * 2).map(function (v) {
                                                return {
                                                    originalName: v.name,
                                                    variable: v.tensor.variable(trainable)
                                                };
                                            });
                                            if (this.centered) {
                                                this.accumulatedMeanGrads = weightValues.slice(variableCount * 2, variableCount * 3).map(function (v) {
                                                    return {
                                                        originalName: v.name,
                                                        variable: v.tensor.variable(trainable)
                                                    };
                                                });
                                            }
                                            return [2 /*return*/
                                            ];
                                    }
                                });
                            });
                        }
                            ;
                        RMSPropOptimizer.prototype.getConfig = function () {
                            return {
                                'learningRate': this.learningRate,
                                'decay': this.decay,
                                'momentum': this.momentum,
                                'epsilon': this.epsilon,
                                'centered': this.centered
                            };
                        }
                            ;
                        /** @nocollapse */
                        RMSPropOptimizer.fromConfig = function (cls, config) {
                            return new cls(config['learningRate'], config['decay'], config['momentum'], config['epsilon'], config['centered']);
                        }
                            ;
                        return RMSPropOptimizer;
                    }(Optimizer);
                /** @nocollapse */
                RMSPropOptimizer.className = 'RMSProp';
                // Note: Name matters for Python compatibility.
                registerClass(RMSPropOptimizer);
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                var OptimizerConstructors = /** @class */
                    function () {
                        function OptimizerConstructors() { }
                        /**
         * Constructs a `tf.SGDOptimizer` that uses stochastic gradient descent.
         *
         * ```js
         * // Fit a quadratic function by learning the coefficients a, b, c.
         * const xs = tf.tensor1d([0, 1, 2, 3]);
         * const ys = tf.tensor1d([1.1, 5.9, 16.8, 33.9]);
         *
         * const a = tf.scalar(Math.random()).variable();
         * const b = tf.scalar(Math.random()).variable();
         * const c = tf.scalar(Math.random()).variable();
         *
         * // y = a * x^2 + b * x + c.
         * const f = x => a.mul(x.square()).add(b.mul(x)).add(c);
         * const loss = (pred, label) => pred.sub(label).square().mean();
         *
         * const learningRate = 0.01;
         * const optimizer = tf.train.sgd(learningRate);
         *
         * // Train the model.
         * for (let i = 0; i < 10; i++) {
         *   optimizer.minimize(() => loss(f(xs), ys));
         * }
         *
         * // Make predictions.
         * console.log(
         *     `a: ${a.dataSync()}, b: ${b.dataSync()}, c: ${c.dataSync()}`);
         * const preds = f(xs).dataSync();
         * preds.forEach((pred, i) => {
         *   console.log(`x: ${i}, pred: ${pred}`);
         * });
         * ```
         *
         * @param learningRate The learning rate to use for the SGD algorithm.
         *
         * @doc {heading: 'Training', subheading: 'Optimizers', namespace: 'train'}
         */
                        OptimizerConstructors.sgd = function (learningRate) {
                            return new SGDOptimizer(learningRate);
                        }
                            ;
                        /**
         * Constructs a `tf.MomentumOptimizer` that uses momentum gradient
         * descent.
         *
         * See
         * [http://proceedings.mlr.press/v28/sutskever13.pdf](
         * http://proceedings.mlr.press/v28/sutskever13.pdf)
         *
         * @param learningRate The learning rate to use for the Momentum gradient
         * descent algorithm.
         * @param momentum The momentum to use for the momentum gradient descent
         * algorithm.
         *
         * @doc {heading: 'Training', subheading: 'Optimizers', namespace: 'train'}
         */
                        OptimizerConstructors.momentum = function (learningRate, momentum, useNesterov) {
                            if (useNesterov === void 0) {
                                useNesterov = false;
                            }
                            return new MomentumOptimizer(learningRate, momentum, useNesterov);
                        }
                            ;
                        /**
         * Constructs a `tf.RMSPropOptimizer` that uses RMSProp gradient
         * descent. This implementation uses plain momentum and is not centered
         * version of RMSProp.
         *
         * See
         * [http://www.cs.toronto.edu/~tijmen/csc321/slides/lecture_slides_lec6.pdf](
         * http://www.cs.toronto.edu/~tijmen/csc321/slides/lecture_slides_lec6.pdf)
         *
         * @param learningRate The learning rate to use for the RMSProp gradient
         * descent algorithm.
         * @param decay The discounting factor for the history/coming gradient.
         * @param momentum The momentum to use for the RMSProp gradient descent
         * algorithm.
         * @param epsilon Small value to avoid zero denominator.
         * @param centered If true, gradients are normalized by the estimated
         * variance of the gradient.
         *
         * @doc {heading: 'Training', subheading: 'Optimizers', namespace: 'train'}
         */
                        OptimizerConstructors.rmsprop = function (learningRate, decay, momentum, epsilon, centered) {
                            if (decay === void 0) {
                                decay = .9;
                            }
                            if (momentum === void 0) {
                                momentum = 0.0;
                            }
                            if (epsilon === void 0) {
                                epsilon = null;
                            }
                            if (centered === void 0) {
                                centered = false;
                            }
                            return new RMSPropOptimizer(learningRate, decay, momentum, epsilon, centered);
                        }
                            ;
                        /**
         * Constructs a `tf.AdamOptimizer` that uses the Adam algorithm.
         * See [https://arxiv.org/abs/1412.6980](https://arxiv.org/abs/1412.6980)
         *
         * @param learningRate The learning rate to use for the Adam gradient
         * descent algorithm.
         * @param beta1 The exponential decay rate for the 1st moment estimates.
         * @param beta2 The exponential decay rate for the 2nd moment estimates.
         * @param epsilon A small constant for numerical stability.
         *
         * @doc {heading: 'Training', subheading: 'Optimizers', namespace: 'train'}
         */
                        OptimizerConstructors.adam = function (learningRate, beta1, beta2, epsilon) {
                            if (learningRate === void 0) {
                                learningRate = 0.001;
                            }
                            if (beta1 === void 0) {
                                beta1 = 0.9;
                            }
                            if (beta2 === void 0) {
                                beta2 = 0.999;
                            }
                            if (epsilon === void 0) {
                                epsilon = null;
                            }
                            return new AdamOptimizer(learningRate, beta1, beta2, epsilon);
                        }
                            ;
                        /**
         * Constructs a `tf.AdadeltaOptimizer` that uses the Adadelta algorithm.
         * See [https://arxiv.org/abs/1212.5701](https://arxiv.org/abs/1212.5701)
         *
         * @param learningRate The learning rate to use for the Adadelta gradient
         * descent algorithm.
         * @param rho The learning rate decay over each update.
         * @param epsilon A constant epsilon used to better condition the grad
         * update.
         *
         * @doc {heading: 'Training', subheading: 'Optimizers', namespace: 'train'}
         */
                        OptimizerConstructors.adadelta = function (learningRate, rho, epsilon) {
                            if (learningRate === void 0) {
                                learningRate = .001;
                            }
                            if (rho === void 0) {
                                rho = .95;
                            }
                            if (epsilon === void 0) {
                                epsilon = null;
                            }
                            return new AdadeltaOptimizer(learningRate, rho, epsilon);
                        }
                            ;
                        /**
         * Constructs a `tf.AdamaxOptimizer` that uses the Adamax algorithm.
         * See [https://arxiv.org/abs/1412.6980](https://arxiv.org/abs/1412.6980)
         *
         * @param learningRate The learning rate to use for the Adamax gradient
         * descent algorithm.
         * @param beta1 The exponential decay rate for the 1st moment estimates.
         * @param beta2 The exponential decay rate for the 2nd moment estimates.
         * @param epsilon A small constant for numerical stability.
         * @param decay The learning rate decay over each update.
         *
         * @doc {heading: 'Training', subheading: 'Optimizers', namespace: 'train'}
         */
                        OptimizerConstructors.adamax = function (learningRate, beta1, beta2, epsilon, decay) {
                            if (learningRate === void 0) {
                                learningRate = 0.002;
                            }
                            if (beta1 === void 0) {
                                beta1 = 0.9;
                            }
                            if (beta2 === void 0) {
                                beta2 = 0.999;
                            }
                            if (epsilon === void 0) {
                                epsilon = null;
                            }
                            if (decay === void 0) {
                                decay = 0.0;
                            }
                            return new AdamaxOptimizer(learningRate, beta1, beta2, epsilon, decay);
                        }
                            ;
                        /**
         * Constructs a `tf.AdagradOptimizer` that uses the Adagrad algorithm.
         * See
         * [http://www.jmlr.org/papers/volume12/duchi11a/duchi11a.pdf](
         * http://www.jmlr.org/papers/volume12/duchi11a/duchi11a.pdf)
         * or
         * [http://ruder.io/optimizing-gradient-descent/index.html#adagrad](
         * http://ruder.io/optimizing-gradient-descent/index.html#adagrad)
         *
         * @param learningRate The learning rate to use for the Adagrad gradient
         * descent algorithm.
         * @param initialAccumulatorValue Starting value for the accumulators, must be
         * positive.
         *
         * @doc {heading: 'Training', subheading: 'Optimizers', namespace: 'train'}
         */
                        OptimizerConstructors.adagrad = function (learningRate, initialAccumulatorValue) {
                            if (initialAccumulatorValue === void 0) {
                                initialAccumulatorValue = 0.1;
                            }
                            return new AdagradOptimizer(learningRate, initialAccumulatorValue);
                        }
                            ;
                        return OptimizerConstructors;
                    }();
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                var train = {
                    sgd: OptimizerConstructors.sgd,
                    momentum: OptimizerConstructors.momentum,
                    adadelta: OptimizerConstructors.adadelta,
                    adagrad: OptimizerConstructors.adagrad,
                    rmsprop: OptimizerConstructors.rmsprop,
                    adamax: OptimizerConstructors.adamax,
                    adam: OptimizerConstructors.adam
                };
                /**
 * @license
 * Copyright 2017 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                var delayCallback = function () {
                    if (typeof requestAnimationFrame !== 'undefined') {
                        return requestAnimationFrame;
                    } else if (typeof setImmediate !== 'undefined') {
                        return setImmediate;
                    }
                    return function (f) {
                        return f();
                    }
                        ;
                    // no delays
                }();
                /**
 * Returns a promise that resolves when a requestAnimationFrame has completed.
 *
 * On Node.js this uses setImmediate instead of requestAnimationFrame.
 *
 * This is simply a sugar method so that users can do the following:
 * `await tf.nextFrame();`
 *
 * @doc {heading: 'Performance', subheading: 'Timing'}
 */
                function nextFrame() {
                    return new Promise(function (resolve) {
                        return delayCallback(function () {
                            return resolve();
                        });
                    }
                    );
                }
                /**
 * @license
 * Copyright 2017 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                function assertParamsConsistent(shapes, axis) {
                    var rank = shapes[0].length;
                    shapes.forEach(function (shape, i) {
                        assert(shape.length === rank, function () {
                            return "Error in concat".concat(rank, "D: rank of tensors[").concat(i, "] must be the same ") + "as the rank of the rest (".concat(rank, ")");
                        });
                    });
                    assert(axis >= 0 && axis < rank, function () {
                        return "Error in concat".concat(rank, "D: axis must be between 0 and ").concat(rank - 1, ".");
                    });
                    var firstShape = shapes[0];
                    shapes.forEach(function (shape, i) {
                        for (var r = 0; r < rank; r++) {
                            assert(r === axis || shape[r] === firstShape[r], function () {
                                return "Error in concat".concat(rank, "D: Shape of tensors[").concat(i, "] (").concat(shape, ") ") + "does not match the shape of the rest (".concat(firstShape, ") ") + "along the non-concatenated axis ".concat(i, ".");
                            });
                        }
                    });
                }
                function computeOutShape$1(shapes, axis) {
                    var outputShape = shapes[0].slice();
                    for (var i = 1; i < shapes.length; i++) {
                        outputShape[axis] += shapes[i][axis];
                    }
                    return outputShape;
                }
                /**
 * @license
 * Copyright 2022 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                var RowPartitionType;
                (function (RowPartitionType) {
                    RowPartitionType[RowPartitionType["FIRST_DIM_SIZE"] = 0] = "FIRST_DIM_SIZE";
                    RowPartitionType[RowPartitionType["VALUE_ROWIDS"] = 1] = "VALUE_ROWIDS";
                    RowPartitionType[RowPartitionType["ROW_LENGTHS"] = 2] = "ROW_LENGTHS";
                    RowPartitionType[RowPartitionType["ROW_SPLITS"] = 3] = "ROW_SPLITS";
                    RowPartitionType[RowPartitionType["ROW_LIMITS"] = 4] = "ROW_LIMITS";
                    RowPartitionType[RowPartitionType["ROW_STARTS"] = 5] = "ROW_STARTS";
                }
                )(RowPartitionType || (RowPartitionType = {}));
                function combineRaggedTensorToTensorShapes(raggedRank, shape, valueShape) {
                    // Test for consistency of valueShape and shape specified.
                    // If shape is unspecified and valueShape is specified, then copy
                    // over the size from the valueShape dimension.
                    var outputShape = new Array();
                    if (valueShape == null && shape == null) {
                        return outputShape;
                    }
                    if (shape == null) {
                        // Here, value_shape must be of known size.
                        while (outputShape.length < raggedRank + valueShape.length) {
                            outputShape.push(-1);
                        }
                    } else {
                        outputShape = shape.slice();
                    }
                    if (valueShape == null) {
                        return outputShape;
                    }
                    // At this point, valueShape and output_shape have known ranks.
                    if (raggedRank + valueShape.length !== outputShape.length) {
                        throw new Error("rt input.shape and shape=".concat(shape, " are incompatible: rt input.rank = ").concat(raggedRank + valueShape.length, ", but shape.rank = ").concat(outputShape.length));
                    }
                    for (var i = 1; i < valueShape.length; ++i) {
                        var valueDim = valueShape[i];
                        var outputShapeDimIndex = outputShape[outputShape.length - valueShape.length + i];
                        var outputShapeDim = outputShape[outputShapeDimIndex];
                        if (valueDim >= 0) {
                            if (outputShapeDim >= 0) {
                                if (outputShapeDim !== valueDim) {
                                    throw new Error("rt input.shape and shape=".concat(shape, " are incompatible: rt input.shape[").concat(i + raggedRank, "] = ").concat(valueDim, " but shape[").concat(i + raggedRank, "] = ").concat(outputShapeDim));
                                }
                            } else {
                                outputShape[outputShapeDimIndex] = valueDim;
                            }
                        }
                    }
                    return outputShape;
                }
                function getRowPartitionTypesHelper(rowPartitionTypeStrings) {
                    var e_1, _a;
                    var stringToType = {
                        'FIRST_DIM_SIZE': RowPartitionType.FIRST_DIM_SIZE,
                        'VALUE_ROWIDS': RowPartitionType.VALUE_ROWIDS,
                        'ROW_LENGTHS': RowPartitionType.ROW_LENGTHS,
                        'ROW_SPLITS': RowPartitionType.ROW_SPLITS,
                        'ROW_LIMITS': RowPartitionType.ROW_LIMITS,
                        'ROW_STARTS': RowPartitionType.ROW_STARTS
                    };
                    var result = [];
                    try {
                        for (var rowPartitionTypeStrings_1 = __values(rowPartitionTypeStrings), rowPartitionTypeStrings_1_1 = rowPartitionTypeStrings_1.next(); !rowPartitionTypeStrings_1_1.done; rowPartitionTypeStrings_1_1 = rowPartitionTypeStrings_1.next()) {
                            var typeStr = rowPartitionTypeStrings_1_1.value;
                            if (typeStr in stringToType) {
                                result.push(stringToType[typeStr]);
                            } else {
                                break;
                            }
                        }
                    } catch (e_1_1) {
                        e_1 = {
                            error: e_1_1
                        };
                    } finally {
                        try {
                            if (rowPartitionTypeStrings_1_1 && !rowPartitionTypeStrings_1_1.done && (_a = rowPartitionTypeStrings_1.return))
                                _a.call(rowPartitionTypeStrings_1);
                        } finally {
                            if (e_1)
                                throw e_1.error;
                        }
                    }
                    return result;
                }
                function getRaggedRank(rowPartitionTypes) {
                    if (rowPartitionTypes.length === 0) {
                        return 0;
                    }
                    if (rowPartitionTypes[0] === RowPartitionType.FIRST_DIM_SIZE) {
                        return rowPartitionTypes.length - 1;
                    }
                    return rowPartitionTypes.length;
                }
                function validateDefaultValueShape(defaultValueShape, valueShape) {
                    if (defaultValueShape == null || valueShape == null) {
                        return;
                    }
                    var defaultNDims = defaultValueShape.length;
                    var valuesNDims = valueShape.length;
                    if (defaultNDims >= valuesNDims) {
                        throw new Error("defaultValue.shape=".concat(defaultValueShape, " and ragged tensor flatValues.shape=").concat(valueShape, ", are incompatible: defaultValue.rank = ").concat(defaultNDims, " must be less than ragged tensor input flatValues.rank = ").concat(valuesNDims, ")"));
                    }
                    for (var i = 0; i < Math.min(defaultNDims, valuesNDims - 1); ++i) {
                        var defaultDim = defaultValueShape[i];
                        var valueDim = valueShape[i + 1];
                        if (defaultDim >= 0 && valueDim >= 0 && defaultDim !== 1 && defaultDim !== valueDim) {
                            throw new Error("defaultValue.shape=".concat(defaultValueShape, ", and ragged tensor input flatValues.shape=").concat(valueShape, " are incompatible: defaultValue.shape[").concat(i - defaultValueShape.length, "] = ").concat(defaultDim, " but ragged tensor input.flatValues.shape[").concat(i - defaultValueShape.length, "] = ").concat(valueDim));
                        }
                    }
                }
                /**
 * @license
 * Copyright 2017 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                var PARALLELIZE_THRESHOLD = 30;
                function computeOptimalWindowSize(inSize) {
                    if (inSize <= PARALLELIZE_THRESHOLD) {
                        return inSize;
                    }
                    return nearestDivisor(inSize, Math.floor(Math.sqrt(inSize)));
                }
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                // Returns the image center in pixels.
                function getImageCenter(center, imageHeight, imageWidth) {
                    var centerX = imageWidth * (typeof center === 'number' ? center : center[0]);
                    var centerY = imageHeight * (typeof center === 'number' ? center : center[1]);
                    return [centerX, centerY];
                }
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Gets the new shape of the input Tensor after it's been reshaped
 * to:
 * [blockShape[0], ..., blockShape[M-1], batch / prod(blockShape),
 * inputShape[1], ..., inputShape[N-1]]
 *
 * See step 1: https://www.tensorflow.org/api_docs/python/tf/batch_to_space_nd
 */
                function getReshaped(inputShape, blockShape, prod, batchToSpace) {
                    if (batchToSpace === void 0) {
                        batchToSpace = true;
                    }
                    var reshaped = [];
                    if (batchToSpace) {
                        reshaped = reshaped.concat(blockShape.slice(0));
                        reshaped.push(inputShape[0] / prod);
                        reshaped = reshaped.concat(inputShape.slice(1));
                    } else {
                        reshaped = reshaped.concat(inputShape[0]);
                        var spatialLength = blockShape.length;
                        for (var i = 0; i < spatialLength; ++i) {
                            reshaped = reshaped.concat([inputShape[i + 1] / blockShape[i], blockShape[i]]);
                        }
                        reshaped = reshaped.concat(inputShape.slice(spatialLength + 1));
                    }
                    return reshaped;
                }
                /**
 * Gets the permutation that will transpose the dimensions of the
 * reshaped tensor to shape:
 *
 * [batch / prod(block_shape),inputShape[1], blockShape[0], ...,
 * inputShape[M], blockShape[M-1],inputShape[M+1], ..., inputShape[N-1]]
 *
 * see step 2: https://www.tensorflow.org/api_docs/python/tf/batch_to_space_nd
 */
                function getPermuted(reshapedRank, blockShapeRank, batchToSpace) {
                    if (batchToSpace === void 0) {
                        batchToSpace = true;
                    }
                    var permuted = [];
                    if (batchToSpace) {
                        permuted.push(blockShapeRank);
                        for (var i = blockShapeRank + 1; i < reshapedRank; ++i) {
                            if (i <= 2 * blockShapeRank) {
                                permuted.push(i);
                                permuted.push(i - (blockShapeRank + 1));
                            } else {
                                permuted.push(i);
                            }
                        }
                    } else {
                        var permutedBeforeBatch = [];
                        var permutedAfterBatch = [];
                        for (var i = 1; i < reshapedRank; ++i) {
                            if (i >= blockShapeRank * 2 + 1 || i % 2 === 1) {
                                permutedAfterBatch.push(i);
                            } else {
                                permutedBeforeBatch.push(i);
                            }
                        }
                        permuted.push.apply(permuted, __spreadArray([], __read(permutedBeforeBatch), false));
                        permuted.push(0);
                        permuted.push.apply(permuted, __spreadArray([], __read(permutedAfterBatch), false));
                    }
                    return permuted;
                }
                /**
 * Gets the shape of the reshaped and permuted input Tensor before any cropping
 * is applied.  The new shape will be:
 *
 * [batch / prod(blockShape),inputShape[1] * blockShape[0], ...,
 * inputShape[M] * blockShape[M-1],inputShape[M+1], ..., inputShape[N-1]]
 *
 * See step 3: https://www.tensorflow.org/api_docs/python/tf/batch_to_space_nd
 */
                function getReshapedPermuted(inputShape, blockShape, prod, batchToSpace) {
                    if (batchToSpace === void 0) {
                        batchToSpace = true;
                    }
                    var reshapedPermuted = [];
                    if (batchToSpace) {
                        reshapedPermuted.push(inputShape[0] / prod);
                    } else {
                        reshapedPermuted.push(inputShape[0] * prod);
                    }
                    for (var i = 1; i < inputShape.length; ++i) {
                        if (i <= blockShape.length) {
                            if (batchToSpace) {
                                reshapedPermuted.push(blockShape[i - 1] * inputShape[i]);
                            } else {
                                reshapedPermuted.push(inputShape[i] / blockShape[i - 1]);
                            }
                        } else {
                            reshapedPermuted.push(inputShape[i]);
                        }
                    }
                    return reshapedPermuted;
                }
                /**
 * Converts the crops argument into the beginning coordinates of a slice
 * operation.
 */
                function getSliceBeginCoords(crops, blockShape) {
                    var sliceBeginCoords = [0];
                    for (var i = 0; i < blockShape; ++i) {
                        sliceBeginCoords.push(crops[i][0]);
                    }
                    return sliceBeginCoords;
                }
                /**
 * Converts the crops argument into the size of a slice operation.  When
 * combined with getSliceBeginCoords this function allows the reshaped and
 * permuted Tensor to be cropped to its final output shape of:
 *
 * inputShape[1] * blockShape[0] - crops[0,0] - crops[0,1], ...,
 * inputShape[M] * blockShape[M-1] -crops[M-1,0] -
 * crops[M-1,1],inputShape[M+1], ..., inputShape[N-1]]
 *
 * See step 4: https://www.tensorflow.org/api_docs/python/tf/batch_to_space_nd
 */
                function getSliceSize(uncroppedShape, crops, blockShape) {
                    var sliceSize = uncroppedShape.slice(0, 1);
                    for (var i = 0; i < blockShape; ++i) {
                        sliceSize.push(uncroppedShape[i + 1] - crops[i][0] - crops[i][1]);
                    }
                    return sliceSize;
                }
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                var SELU_SCALEALPHA = 1.7580993408473768599402175208123;
                var SELU_SCALE = 1.0507009873554804934193349852946;
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                var ERF_P = 0.3275911;
                var ERF_A1 = 0.254829592;
                var ERF_A2 = -0.284496736;
                var ERF_A3 = 1.421413741;
                var ERF_A4 = -1.453152027;
                var ERF_A5 = 1.061405429;
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Merges real and imaginary Float32Arrays into a single complex Float32Array.
 *
 * The memory layout is interleaved as follows:
 * real: [r0, r1, r2]
 * imag: [i0, i1, i2]
 * complex: [r0, i0, r1, i1, r2, i2]
 *
 * This is the inverse of splitRealAndImagArrays.
 *
 * @param real The real values of the complex tensor values.
 * @param imag The imag values of the complex tensor values.
 * @returns A complex tensor as a Float32Array with merged values.
 */
                function mergeRealAndImagArrays(real, imag) {
                    if (real.length !== imag.length) {
                        throw new Error("Cannot merge real and imag arrays of different lengths. real:" + "".concat(real.length, ", imag: ").concat(imag.length, "."));
                    }
                    var result = new Float32Array(real.length * 2);
                    for (var i = 0; i < result.length; i += 2) {
                        result[i] = real[i / 2];
                        result[i + 1] = imag[i / 2];
                    }
                    return result;
                }
                /**
 * Splits a complex Float32Array into real and imag parts.
 *
 * The memory layout is interleaved as follows:
 * complex: [r0, i0, r1, i1, r2, i2]
 * real: [r0, r1, r2]
 * imag: [i0, i1, i2]
 *
 * This is the inverse of mergeRealAndImagArrays.
 *
 * @param complex The complex tensor values.
 * @returns An object with real and imag Float32Array components of the complex
 *     tensor.
 */
                function splitRealAndImagArrays(complex) {
                    var real = new Float32Array(complex.length / 2);
                    var imag = new Float32Array(complex.length / 2);
                    for (var i = 0; i < complex.length; i += 2) {
                        real[i / 2] = complex[i];
                        imag[i / 2] = complex[i + 1];
                    }
                    return {
                        real: real,
                        imag: imag
                    };
                }
                /**
 * Extracts even indexed complex values in the given array.
 * @param complex The complex tensor values
 */
                function complexWithEvenIndex(complex) {
                    var len = Math.ceil(complex.length / 4);
                    var real = new Float32Array(len);
                    var imag = new Float32Array(len);
                    for (var i = 0; i < complex.length; i += 4) {
                        real[Math.floor(i / 4)] = complex[i];
                        imag[Math.floor(i / 4)] = complex[i + 1];
                    }
                    return {
                        real: real,
                        imag: imag
                    };
                }
                /**
 * Extracts odd indexed comple values in the given array.
 * @param complex The complex tensor values
 */
                function complexWithOddIndex(complex) {
                    var len = Math.floor(complex.length / 4);
                    var real = new Float32Array(len);
                    var imag = new Float32Array(len);
                    for (var i = 2; i < complex.length; i += 4) {
                        real[Math.floor(i / 4)] = complex[i];
                        imag[Math.floor(i / 4)] = complex[i + 1];
                    }
                    return {
                        real: real,
                        imag: imag
                    };
                }
                /**
 * Get the map representing a complex value in the given array.
 * @param complex The complex tensor values.
 * @param index An index of the target complex value.
 */
                function getComplexWithIndex(complex, index) {
                    var real = complex[index * 2];
                    var imag = complex[index * 2 + 1];
                    return {
                        real: real,
                        imag: imag
                    };
                }
                /**
 * Insert a given complex value into the TypedArray.
 * @param data The array in which the complex value is inserted.
 * @param c The complex value to be inserted.
 * @param index An index of the target complex value.
 */
                function assignToTypedArray(data, real, imag, index) {
                    data[index * 2] = real;
                    data[index * 2 + 1] = imag;
                }
                /**
 * Make the list of exponent terms used by FFT.
 */
                function exponents(n, inverse) {
                    var real = new Float32Array(n / 2);
                    var imag = new Float32Array(n / 2);
                    for (var i = 0; i < Math.ceil(n / 2); i++) {
                        var x = (inverse ? 2 : -2) * Math.PI * (i / n);
                        real[i] = Math.cos(x);
                        imag[i] = Math.sin(x);
                    }
                    return {
                        real: real,
                        imag: imag
                    };
                }
                /**
 * Make the exponent term used by FFT.
 */
                function exponent(k, n, inverse) {
                    var x = (inverse ? 2 : -2) * Math.PI * (k / n);
                    var real = Math.cos(x);
                    var imag = Math.sin(x);
                    return {
                        real: real,
                        imag: imag
                    };
                }
                var ARROW = '->';
                var ARROW_REGEX = /->/g;
                var COMMA = ',';
                var ELLIPSIS = '...';
                /**
 * Parse an equation for einsum.
 *
 * @param equation The einsum equation (e.g., "ij,jk->ik").
 * @param numTensors Number of tensors provided along with `equation`. Used to
 *   check matching number of input tensors.
 * @returns An object consisting of the following fields:
 *   - allDims: all dimension names as strings.
 *   - summedDims: a list of all dimensions being summed over, as indices to
 *     the elements of `allDims`.
 *   - idDims: indices of the dimensions in each input tensor, as indices to
 *     the elements of `allDims.
 */
                function decodeEinsumEquation(equation, numTensors) {
                    equation = equation.replace(/\s/g, '');
                    // Remove witespace in equation.
                    var numArrows = (equation.length - equation.replace(ARROW_REGEX, '').length) / ARROW.length;
                    if (numArrows < 1) {
                        throw new Error('Equations without an arrow are not supported.');
                    } else if (numArrows > 1) {
                        throw new Error("Equation must contain exactly one arrow (\"".concat(ARROW, "\")."));
                    }
                    var _a = __read(equation.split(ARROW), 2)
                        , inputString = _a[0]
                        , outputString = _a[1];
                    assert(inputString.indexOf(ELLIPSIS) === -1, function () {
                        return "The ellipsis notation (\"".concat(ELLIPSIS, "\") is not supported yet.");
                    });
                    var inputTerms = inputString.split(COMMA);
                    var numInputs = inputTerms.length;
                    if (numTensors !== numInputs) {
                        throw new Error("Expected ".concat(numInputs, " input tensors, received ").concat(numTensors));
                    }
                    if (numInputs > 2) {
                        throw new Error('Support for more than 2 input tensors is not implemented yet.');
                    }
                    var allDims = [];
                    var _loop_1 = function (i) {
                        var dimName = outputString[i];
                        if (!inputTerms.some(function (inputTerm) {
                            return inputTerm.indexOf(dimName) !== -1;
                        })) {
                            throw new Error("Output subscripts contain the label ".concat(dimName, " ") + "not present in the input subscripts.");
                        }
                        if (allDims.indexOf(dimName) === -1) {
                            allDims.push(dimName);
                        }
                    };
                    for (var i = 0; i < outputString.length; ++i) {
                        _loop_1(i);
                    }
                    for (var i = 0; i < inputString.length; ++i) {
                        var dimName = inputString[i];
                        if (allDims.indexOf(dimName) === -1 && dimName !== COMMA) {
                            allDims.push(dimName);
                        }
                    }
                    var idDims = new Array(inputTerms.length);
                    for (var i = 0; i < numInputs; ++i) {
                        if (new Set(inputTerms[i].split('')).size !== inputTerms[i].length) {
                            throw new Error("Found duplicate axes in input component ".concat(inputTerms[i], ". ") + "Support for duplicate axes in input is not implemented yet.");
                        }
                        idDims[i] = [];
                        for (var j = 0; j < inputTerms[i].length; ++j) {
                            idDims[i].push(allDims.indexOf(inputTerms[i][j]));
                        }
                    }
                    var numDims = allDims.length;
                    // Number of unique dimensions.
                    var numOutDims = outputString.length;
                    // Number of output dimensions.
                    var summedDims = [];
                    // Dimensions being summed over.
                    for (var i = numOutDims; i < numDims; ++i) {
                        summedDims.push(i);
                    }
                    return {
                        allDims: allDims,
                        summedDims: summedDims,
                        idDims: idDims
                    };
                }
                /**
 * Get the permutation for a given input tensor.
 *
 * @param nDims Total number of dimension of all tensors involved in the einsum
 *   operation.
 * @param idDims Dimension indices involve in the tensor in question.
 * @returns An object consisting of the following fields:
 *   - permutationIndices: Indices to permute the axes of the tensor with.
 *   - expandDims: Indices to the dimension that need to be expanded from the
 *     tensor after permutation.
 */
                function getEinsumPermutation(nDims, idDims) {
                    var permutationIndices = new Array(nDims);
                    permutationIndices.fill(-1);
                    for (var i = 0; i < idDims.length; ++i) {
                        permutationIndices[idDims[i]] = i;
                    }
                    var expandDims = [];
                    for (var i = 0; i < nDims; ++i) {
                        if (permutationIndices[i] === -1) {
                            expandDims.push(i);
                        }
                    }
                    permutationIndices = permutationIndices.filter(function (d) {
                        return d !== -1;
                    });
                    return {
                        permutationIndices: permutationIndices,
                        expandDims: expandDims
                    };
                }
                /**
 * Checks that the dimension sizes from different input tensors match the
 * equation.
 */
                function checkEinsumDimSizes(nDims, idDims, tensors) {
                    var dimSizes = new Array(nDims);
                    var _loop_2 = function (i) {
                        var shape = tensors[i].shape;
                        var _loop_3 = function (j) {
                            if (dimSizes[idDims[i][j]] === undefined) {
                                dimSizes[idDims[i][j]] = shape[j];
                            } else {
                                assert(dimSizes[idDims[i][j]] === shape[j], function () {
                                    return "Expected dimension ".concat(dimSizes[idDims[i][j]], " at axis ").concat(j, " ") + "of input shaped ".concat(JSON.stringify(shape), ", ") + "but got dimension ".concat(shape[j]);
                                });
                            }
                        };
                        for (var j = 0; j < idDims[i].length; ++j) {
                            _loop_3(j);
                        }
                    };
                    for (var i = 0; i < tensors.length; ++i) {
                        _loop_2(i);
                    }
                }
                /**
 * Gets path of computation for einsum.
 *
 * @param summedDims indices to the dimensions being summed over.
 * @param idDims A look up table for the dimensions present in each input
 *     tensor. Each consituent array contains indices for the dimensions in the
 *     corresponding input tensor.
 *
 * @return A map with two fields:
 *   - path: The path of computation, with each element indicating the dimension
 *     being summed over after the element-wise multiplication in that step.
 *   - steps: With the same length as `path`. Each element contains the indices
 *     to the input tensors being used for element-wise multiplication in the
 *     corresponding step.
 */
                function getEinsumComputePath(summedDims, idDims) {
                    var e_1, _a;
                    var path = summedDims;
                    var steps = [];
                    var nSteps = 0;
                    if (summedDims.length === 0) {
                        // Einsum that involes no summing: e.g., transpose and outer product.
                        path.push(-1);
                    }
                    nSteps = summedDims.length + 1;
                    for (var i = 0; i < nSteps; ++i) {
                        steps.push([]);
                    }
                    var computedTermIndices = [];
                    for (var i = 0; i < path.length; ++i) {
                        var summedDim = path[i];
                        var termIndices = findTermsWithDim(idDims, summedDim);
                        try {
                            for (var termIndices_1 = (e_1 = void 0,
                                __values(termIndices)), termIndices_1_1 = termIndices_1.next(); !termIndices_1_1.done; termIndices_1_1 = termIndices_1.next()) {
                                var termIndex = termIndices_1_1.value;
                                if (computedTermIndices.indexOf(termIndex) === -1) {
                                    steps[i].push(termIndex);
                                    computedTermIndices.push(termIndex);
                                }
                            }
                        } catch (e_1_1) {
                            e_1 = {
                                error: e_1_1
                            };
                        } finally {
                            try {
                                if (termIndices_1_1 && !termIndices_1_1.done && (_a = termIndices_1.return))
                                    _a.call(termIndices_1);
                            } finally {
                                if (e_1)
                                    throw e_1.error;
                            }
                        }
                    }
                    return {
                        path: path,
                        steps: steps
                    };
                }
                /** Determines if an axes permutation is the identity permutation. */
                function isIdentityPermutation(perm) {
                    return perm.every(function (dim, index) {
                        return dim === index;
                    });
                }
                function findTermsWithDim(idDims, dim) {
                    var termIndices = [];
                    for (var i = 0; i < idDims.length; ++i) {
                        if (idDims[i].length === 0 || idDims[i].indexOf(dim) !== -1 || dim === -1) {
                            termIndices.push(i);
                        }
                    }
                    return termIndices;
                }
                /**
 * Prepare the split size array. When the input is a number, the axis is evenly
 * divided among the split size. When the input contains the negative value, the
 * rest of the axis is allocated toward that.
 */
                function prepareSplitSize(x, numOrSizeSplits, axis) {
                    if (axis === void 0) {
                        axis = 0;
                    }
                    var splitSizes = [];
                    if (typeof numOrSizeSplits === 'number') {
                        assert(x.shape[axis] % numOrSizeSplits === 0, function () {
                            return 'Number of splits must evenly divide the axis.';
                        });
                        splitSizes = new Array(numOrSizeSplits).fill(x.shape[axis] / numOrSizeSplits);
                    } else {
                        var numOfNegs = numOrSizeSplits.reduce(function (count, value) {
                            if (value === -1) {
                                count += 1;
                            }
                            return count;
                        }, 0);
                        assert(numOfNegs <= 1, function () {
                            return 'There should be only one negative value in split array.';
                        });
                        var negIndex = numOrSizeSplits.indexOf(-1);
                        // Allow the number of split array to be -1, which indicates the rest
                        // of dimension is allocated to that split.
                        if (negIndex !== -1) {
                            var total = numOrSizeSplits.reduce(function (a, b) {
                                return b > 0 ? a + b : a;
                            });
                            numOrSizeSplits[negIndex] = x.shape[axis] - total;
                        }
                        assert(x.shape[axis] === numOrSizeSplits.reduce(function (a, b) {
                            return a + b;
                        }), function () {
                            return 'The sum of sizes must match the size of the axis dimension.';
                        });
                        splitSizes = numOrSizeSplits;
                    }
                    return splitSizes;
                }
                /**
 * @license
 * Copyright 2021 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Generates sparse fill empty rows indices, dense shape mismatch error message.
 *
 * @param indicesLength The first dimension of indices.
 */
                function getSparseFillEmptyRowsIndicesDenseShapeMismatch(indicesLength) {
                    return "Received SparseTensor with denseShape[0] = 0 but\n  indices.shape[0] = ".concat(indicesLength);
                }
                /**
 * Generates sparse fill empty rows negative index error message.
 *
 * @param index The index with a negative value.
 * @param value The negative value.
 */
                function getSparseFillEmptyRowsNegativeIndexErrorMessage(index, value) {
                    return "indices(".concat(index, ", 0) is invalid: ").concat(value, " < 0");
                }
                /**
 * Generates sparse fill empty rows out of range index error message.
 *
 * @param index The index with an out of range value.
 * @param value The out of range value.
 * @param limit The upper limit for indices.
 */
                function getSparseFillEmptyRowsOutOfRangeIndexErrorMessage(index, value, limit) {
                    return "indices(".concat(index, ", 0) is invalid: ").concat(value, " >= ").concat(limit);
                }
                /**
 * @license
 * Copyright 2021 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Generates sparse reshape multiple negative 1 output dimension error message.
 *
 * @param dim1 The first dimension with a negative 1 value.
 * @param dim2 The second dimension with a negative 1 value.
 */
                function getSparseReshapeMultipleNegativeOneOutputDimErrorMessage(dim1, dim2) {
                    return "only one output dimension may be -1, not both ".concat(dim1, " and ").concat(dim2);
                }
                /**
 * Generates sparse reshape negative output dimension error message.
 *
 * @param dim The dimension with a negative value.
 * @param value The negative value.
 */
                function getSparseReshapeNegativeOutputDimErrorMessage(dim, value) {
                    return "size ".concat(dim, " must be non-negative, not ").concat(value);
                }
                /**
 * Generates sparse reshape empty tensor zero output dimension error message.
 *
 */
                function getSparseReshapeEmptyTensorZeroOutputDimErrorMessage() {
                    return 'reshape cannot infer the missing input size for an empty tensor ' + 'unless all specified input sizes are non-zero';
                }
                /**
 * Generates sparse reshape input output multiple mismatch error message.
 *
 * @param inputShape the input shape.
 * @param outputShape the requested output shape.
 */
                function getSparseReshapeInputOutputMultipleErrorMessage(inputShape, outputShape) {
                    var inputSize = sizeFromShape(inputShape);
                    var outputSize = sizeFromShape(outputShape);
                    return "Input to reshape is a SparseTensor with ".concat(inputSize, "\n  dense values, but the requested shape requires a multiple of ").concat(outputSize, ". inputShape=").concat(inputShape, " outputShape= ").concat(outputShape);
                }
                /**
 * Generates sparse reshape input output inequality error message.
 *
 * @param inputShape the input shape.
 * @param outputShape the requested output shape.
 */
                function getSparseReshapeInputOutputMismatchErrorMessage(inputShape, outputShape) {
                    var inputSize = sizeFromShape(inputShape);
                    var outputSize = sizeFromShape(outputShape);
                    return "Input to reshape is a tensor with ".concat(inputSize, " dense values, but the requested shape has ").concat(outputSize, ". inputShape=").concat(inputShape, " outputShape=").concat(outputShape);
                }
                /**
 * @license
 * Copyright 2021 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Generates sparse segment reduction negative segment ids error message.
 *
 */
                function getSparseSegmentReductionNegativeSegmentIdsErrorMessage() {
                    return "segment ids must be >= 0";
                }
                /**
 * Generates sparse segment reduction non increasing segment ids error message.
 *
 */
                function getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage() {
                    return "segment ids are not increasing";
                }
                /**
 * Generates sparse segment reduction segment id out of range error message.
 *
 * @param segmentId The segment id index that is out of range.
 * @param outputRows Upper bound of valid segment id values.
 */
                function getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(segmentId, outputRows) {
                    return "Segment id ".concat(segmentId, " out of range [0, ").concat(outputRows, "), possibly because segmentIds input is not sorted.");
                }
                /**
 * Generates sparse segment reduction input indice out of range error message.
 *
 * @param index The index that holds the out of range value.
 * @param indexValue The value that is out of range.
 * @param inputRows Upper bound of valid index values.
 */
                function getSparseSegmentReductionIndicesOutOfRangeErrorMessage(index, indexValue, inputRows) {
                    return "Bad: indices[".concat(index, "] == ").concat(indexValue, " out of range [0, ").concat(inputRows, ")");
                }
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                function segOpComputeOptimalWindowSize(inSize, numSegments) {
                    var done = false;
                    var res;
                    if (inSize <= PARALLELIZE_THRESHOLD) {
                        res = inSize;
                        done = true;
                    } else {
                        res = nearestDivisor(inSize, Math.floor(Math.sqrt(inSize)));
                    }
                    while (!done) {
                        if (res > numSegments || res === inSize) {
                            done = true;
                        } else {
                            res = nearestDivisor(inSize, res + 1);
                        }
                    }
                    return res;
                }
                function computeOutShape(aShape, axis, numSegments) {
                    var outShape = [];
                    var rank = aShape.length;
                    for (var dim = 0; dim < rank; dim++) {
                        if (dim !== axis) {
                            outShape.push(aShape[dim]);
                        } else {
                            outShape.push(numSegments);
                        }
                    }
                    return outShape;
                }
                function collectGatherOpShapeInfo(x, indices, axis, batchDims) {
                    var indicesRank = indices.shape.length;
                    var xRank = x.shape.length;
                    if (batchDims !== 0) {
                        if (batchDims < -indicesRank || batchDims > indicesRank) {
                            throw new Error("Expect batchDims in the range of [-".concat(indicesRank, ", ").concat(indicesRank, "], but got ").concat(batchDims));
                        }
                    }
                    if (batchDims < 0) {
                        batchDims += indicesRank;
                    }
                    if (batchDims > xRank) {
                        throw new Error("batchDims (".concat(batchDims, ") must be less than rank(x) (\n    ").concat(xRank, ")."));
                    }
                    if (axis < batchDims) {
                        throw new Error("batchDims (".concat(batchDims, ") must be less than or equal to axis (").concat(axis, ")."));
                    }
                    for (var i = 0; i < batchDims; ++i) {
                        if (x.shape[i] !== indices.shape[i]) {
                            throw new Error("x.shape[".concat(i, "]: ").concat(x.shape[i], " should be equal to indices.shape[").concat(i, "]: ").concat(indices.shape[i], "."));
                        }
                    }
                    var dimSize = x.shape[axis];
                    var outputShape = [];
                    var batchSize = 1;
                    var outerSize = 1;
                    var sliceSize = 1;
                    for (var i = 0; i < batchDims; ++i) {
                        outputShape.push(x.shape[i]);
                        batchSize *= x.shape[i];
                    }
                    for (var i = batchDims; i < axis; i++) {
                        outputShape.push(x.shape[i]);
                        outerSize *= x.shape[i];
                    }
                    for (var i = batchDims; i < indicesRank; i++) {
                        outputShape.push(indices.shape[i]);
                    }
                    for (var i = axis + 1; i < xRank; i++) {
                        outputShape.push(x.shape[i]);
                        sliceSize *= x.shape[i];
                    }
                    return {
                        batchSize: batchSize,
                        sliceSize: sliceSize,
                        outerSize: outerSize,
                        dimSize: dimSize,
                        outputShape: outputShape
                    };
                }
                var segment_util = {
                    __proto__: null,
                    segOpComputeOptimalWindowSize: segOpComputeOptimalWindowSize,
                    computeOutShape: computeOutShape,
                    collectGatherOpShapeInfo: collectGatherOpShapeInfo
                };
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                function fromUint8ToStringArray(vals) {
                    try {
                        // Decode the bytes into string.
                        return vals.map(function (val) {
                            return decodeString(val);
                        });
                    } catch (err) {
                        throw new Error("Failed to decode encoded string bytes into utf-8, error: ".concat(err));
                    }
                }
                function fromStringArrayToUint8(strings) {
                    return strings.map(function (s) {
                        return encodeString(s);
                    });
                }
                var backend_util = {
                    __proto__: null,
                    slice_util: slice_util,
                    segment_util: segment_util,
                    fromUint8ToStringArray: fromUint8ToStringArray,
                    fromStringArrayToUint8: fromStringArrayToUint8,
                    upcastType: upcastType,
                    axesAreInnerMostDims: axesAreInnerMostDims,
                    combineLocations: combineLocations,
                    computeOutAndReduceShapes: computeOutAndReduceShapes,
                    expandShapeToKeepDim: expandShapeToKeepDim,
                    assertAxesAreInnerMostDims: assertAxesAreInnerMostDims,
                    getAxesPermutation: getAxesPermutation,
                    getUndoAxesPermutation: getUndoAxesPermutation,
                    getInnerMostAxes: getInnerMostAxes,
                    getBroadcastDims: getBroadcastDims,
                    getReductionAxes: getReductionAxes,
                    assertAndGetBroadcastShape: assertAndGetBroadcastShape,
                    assertParamsConsistent: assertParamsConsistent,
                    computeOutShape: computeOutShape$1,
                    computeDilation2DInfo: computeDilation2DInfo,
                    computePool2DInfo: computePool2DInfo,
                    computePool3DInfo: computePool3DInfo,
                    computeConv2DInfo: computeConv2DInfo,
                    computeConv3DInfo: computeConv3DInfo,
                    computeDefaultPad: computeDefaultPad,
                    tupleValuesAreOne: tupleValuesAreOne,
                    eitherStridesOrDilationsAreOne: eitherStridesOrDilationsAreOne,
                    convertConv2DDataFormat: convertConv2DDataFormat,
                    checkPadOnDimRoundingMode: checkPadOnDimRoundingMode,
                    getFusedDyActivation: getFusedDyActivation,
                    getFusedBiasGradient: getFusedBiasGradient,
                    applyActivation: applyActivation,
                    shouldFuse: shouldFuse,
                    get RowPartitionType() {
                        return RowPartitionType;
                    },
                    combineRaggedTensorToTensorShapes: combineRaggedTensorToTensorShapes,
                    getRowPartitionTypesHelper: getRowPartitionTypesHelper,
                    getRaggedRank: getRaggedRank,
                    validateDefaultValueShape: validateDefaultValueShape,
                    PARALLELIZE_THRESHOLD: PARALLELIZE_THRESHOLD,
                    computeOptimalWindowSize: computeOptimalWindowSize,
                    getImageCenter: getImageCenter,
                    getReshaped: getReshaped,
                    getPermuted: getPermuted,
                    getReshapedPermuted: getReshapedPermuted,
                    getSliceBeginCoords: getSliceBeginCoords,
                    getSliceSize: getSliceSize,
                    prepareAndValidate: prepareAndValidate,
                    validateUpdateShape: validateUpdateShape,
                    validateInput: validateInput$1,
                    calculateShapes: calculateShapes,
                    SELU_SCALEALPHA: SELU_SCALEALPHA,
                    SELU_SCALE: SELU_SCALE,
                    ERF_P: ERF_P,
                    ERF_A1: ERF_A1,
                    ERF_A2: ERF_A2,
                    ERF_A3: ERF_A3,
                    ERF_A4: ERF_A4,
                    ERF_A5: ERF_A5,
                    warn: warn,
                    log: log$1,
                    mergeRealAndImagArrays: mergeRealAndImagArrays,
                    splitRealAndImagArrays: splitRealAndImagArrays,
                    complexWithEvenIndex: complexWithEvenIndex,
                    complexWithOddIndex: complexWithOddIndex,
                    getComplexWithIndex: getComplexWithIndex,
                    assignToTypedArray: assignToTypedArray,
                    exponents: exponents,
                    exponent: exponent,
                    decodeEinsumEquation: decodeEinsumEquation,
                    getEinsumPermutation: getEinsumPermutation,
                    checkEinsumDimSizes: checkEinsumDimSizes,
                    getEinsumComputePath: getEinsumComputePath,
                    isIdentityPermutation: isIdentityPermutation,
                    prepareSplitSize: prepareSplitSize,
                    getSparseFillEmptyRowsIndicesDenseShapeMismatch: getSparseFillEmptyRowsIndicesDenseShapeMismatch,
                    getSparseFillEmptyRowsNegativeIndexErrorMessage: getSparseFillEmptyRowsNegativeIndexErrorMessage,
                    getSparseFillEmptyRowsOutOfRangeIndexErrorMessage: getSparseFillEmptyRowsOutOfRangeIndexErrorMessage,
                    getSparseReshapeMultipleNegativeOneOutputDimErrorMessage: getSparseReshapeMultipleNegativeOneOutputDimErrorMessage,
                    getSparseReshapeNegativeOutputDimErrorMessage: getSparseReshapeNegativeOutputDimErrorMessage,
                    getSparseReshapeEmptyTensorZeroOutputDimErrorMessage: getSparseReshapeEmptyTensorZeroOutputDimErrorMessage,
                    getSparseReshapeInputOutputMultipleErrorMessage: getSparseReshapeInputOutputMultipleErrorMessage,
                    getSparseReshapeInputOutputMismatchErrorMessage: getSparseReshapeInputOutputMismatchErrorMessage,
                    getSparseSegmentReductionNegativeSegmentIdsErrorMessage: getSparseSegmentReductionNegativeSegmentIdsErrorMessage,
                    getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage: getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage,
                    getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage: getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage,
                    getSparseSegmentReductionIndicesOutOfRangeErrorMessage: getSparseSegmentReductionIndicesOutOfRangeErrorMessage
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                var kernel_impls = {
                    __proto__: null,
                    nonMaxSuppressionV3Impl: nonMaxSuppressionV3Impl,
                    nonMaxSuppressionV4Impl: nonMaxSuppressionV4Impl,
                    nonMaxSuppressionV5Impl: nonMaxSuppressionV5Impl,
                    whereImpl: whereImpl
                };
                exports.Abs = Abs;
                exports.Acos = Acos;
                exports.Acosh = Acosh;
                exports.AdadeltaOptimizer = AdadeltaOptimizer;
                exports.AdagradOptimizer = AdagradOptimizer;
                exports.AdamOptimizer = AdamOptimizer;
                exports.AdamaxOptimizer = AdamaxOptimizer;
                exports.Add = Add;
                exports.AddN = AddN;
                exports.All = All;
                exports.Any = Any;
                exports.ArgMax = ArgMax;
                exports.ArgMin = ArgMin;
                exports.Asin = Asin;
                exports.Asinh = Asinh;
                exports.Atan = Atan;
                exports.Atan2 = Atan2;
                exports.Atanh = Atanh;
                exports.AvgPool = AvgPool;
                exports.AvgPool3D = AvgPool3D;
                exports.AvgPool3DGrad = AvgPool3DGrad;
                exports.AvgPoolGrad = AvgPoolGrad;
                exports.BatchMatMul = BatchMatMul;
                exports.BatchToSpaceND = BatchToSpaceND;
                exports.Bincount = Bincount;
                exports.BroadcastArgs = BroadcastArgs;
                exports.BroadcastTo = BroadcastTo;
                exports.Cast = Cast;
                exports.Ceil = Ceil;
                exports.ClipByValue = ClipByValue;
                exports.Complex = Complex;
                exports.ComplexAbs = ComplexAbs;
                exports.Concat = Concat;
                exports.Conv2D = Conv2D;
                exports.Conv2DBackpropFilter = Conv2DBackpropFilter;
                exports.Conv2DBackpropInput = Conv2DBackpropInput;
                exports.Conv3D = Conv3D;
                exports.Conv3DBackpropFilterV2 = Conv3DBackpropFilterV2;
                exports.Conv3DBackpropInputV2 = Conv3DBackpropInputV2;
                exports.Cos = Cos;
                exports.Cosh = Cosh;
                exports.CropAndResize = CropAndResize;
                exports.Cumprod = Cumprod;
                exports.Cumsum = Cumsum;
                exports.DataStorage = DataStorage;
                exports.DenseBincount = DenseBincount;
                exports.DepthToSpace = DepthToSpace;
                exports.DepthwiseConv2dNative = DepthwiseConv2dNative;
                exports.DepthwiseConv2dNativeBackpropFilter = DepthwiseConv2dNativeBackpropFilter;
                exports.DepthwiseConv2dNativeBackpropInput = DepthwiseConv2dNativeBackpropInput;
                exports.Diag = Diag;
                exports.Dilation2D = Dilation2D;
                exports.Dilation2DBackpropFilter = Dilation2DBackpropFilter;
                exports.Dilation2DBackpropInput = Dilation2DBackpropInput;
                exports.Einsum = Einsum;
                exports.Elu = Elu;
                exports.EluGrad = EluGrad;
                exports.Environment = Environment;
                exports.Equal = Equal;
                exports.Erf = Erf;
                exports.Exp = Exp;
                exports.ExpandDims = ExpandDims;
                exports.Expm1 = Expm1;
                exports.FFT = FFT;
                exports.Fill = Fill;
                exports.FlipLeftRight = FlipLeftRight;
                exports.Floor = Floor;
                exports.FloorDiv = FloorDiv;
                exports.FromPixels = FromPixels;
                exports.FusedBatchNorm = FusedBatchNorm;
                exports.FusedConv2D = FusedConv2D;
                exports.FusedDepthwiseConv2D = FusedDepthwiseConv2D;
                exports.GatherNd = GatherNd;
                exports.GatherV2 = GatherV2;
                exports.Greater = Greater;
                exports.GreaterEqual = GreaterEqual;
                exports.IFFT = IFFT;
                exports.Identity = Identity;
                exports.Imag = Imag;
                exports.IsFinite = IsFinite;
                exports.IsInf = IsInf;
                exports.IsNan = IsNan;
                exports.KernelBackend = KernelBackend;
                exports.LRN = LRN;
                exports.LRNGrad = LRNGrad;
                exports.LeakyRelu = LeakyRelu;
                exports.Less = Less;
                exports.LessEqual = LessEqual;
                exports.LinSpace = LinSpace;
                exports.Log = Log;
                exports.Log1p = Log1p;
                exports.LogSoftmax = LogSoftmax;
                exports.LogicalAnd = LogicalAnd;
                exports.LogicalNot = LogicalNot;
                exports.LogicalOr = LogicalOr;
                exports.LogicalXor = LogicalXor;
                exports.LowerBound = LowerBound;
                exports.Max = Max;
                exports.MaxPool = MaxPool;
                exports.MaxPool3D = MaxPool3D;
                exports.MaxPool3DGrad = MaxPool3DGrad;
                exports.MaxPoolGrad = MaxPoolGrad;
                exports.MaxPoolWithArgmax = MaxPoolWithArgmax;
                exports.Maximum = Maximum;
                exports.Mean = Mean;
                exports.Min = Min;
                exports.Minimum = Minimum;
                exports.MirrorPad = MirrorPad;
                exports.Mod = Mod;
                exports.MomentumOptimizer = MomentumOptimizer;
                exports.Multinomial = Multinomial;
                exports.Multiply = Multiply;
                exports.Neg = Neg;
                exports.NonMaxSuppressionV3 = NonMaxSuppressionV3;
                exports.NonMaxSuppressionV4 = NonMaxSuppressionV4;
                exports.NonMaxSuppressionV5 = NonMaxSuppressionV5;
                exports.NotEqual = NotEqual;
                exports.OP_SCOPE_SUFFIX = OP_SCOPE_SUFFIX;
                exports.OneHot = OneHot;
                exports.OnesLike = OnesLike;
                exports.Optimizer = Optimizer;
                exports.OptimizerConstructors = OptimizerConstructors;
                exports.Pack = Pack;
                exports.PadV2 = PadV2;
                exports.Pool = Pool;
                exports.Pow = Pow;
                exports.Prelu = Prelu;
                exports.Prod = Prod;
                exports.RMSPropOptimizer = RMSPropOptimizer;
                exports.RaggedGather = RaggedGather;
                exports.RaggedRange = RaggedRange;
                exports.RaggedTensorToTensor = RaggedTensorToTensor;
                exports.Range = Range;
                exports.Real = Real;
                exports.RealDiv = RealDiv;
                exports.Reciprocal = Reciprocal;
                exports.Relu = Relu;
                exports.Relu6 = Relu6;
                exports.Reshape = Reshape;
                exports.ResizeBilinear = ResizeBilinear;
                exports.ResizeBilinearGrad = ResizeBilinearGrad;
                exports.ResizeNearestNeighbor = ResizeNearestNeighbor;
                exports.ResizeNearestNeighborGrad = ResizeNearestNeighborGrad;
                exports.Reverse = Reverse;
                exports.RotateWithOffset = RotateWithOffset;
                exports.Round = Round;
                exports.Rsqrt = Rsqrt;
                exports.SGDOptimizer = SGDOptimizer;
                exports.ScatterNd = ScatterNd;
                exports.SearchSorted = SearchSorted;
                exports.Select = Select;
                exports.Selu = Selu;
                exports.Sigmoid = Sigmoid;
                exports.Sign = Sign;
                exports.Sin = Sin;
                exports.Sinh = Sinh;
                exports.Slice = Slice;
                exports.Softmax = Softmax;
                exports.Softplus = Softplus;
                exports.SpaceToBatchND = SpaceToBatchND;
                exports.SparseFillEmptyRows = SparseFillEmptyRows;
                exports.SparseReshape = SparseReshape;
                exports.SparseSegmentMean = SparseSegmentMean;
                exports.SparseSegmentSum = SparseSegmentSum;
                exports.SparseToDense = SparseToDense;
                exports.SplitV = SplitV;
                exports.Sqrt = Sqrt;
                exports.Square = Square;
                exports.SquaredDifference = SquaredDifference;
                exports.Step = Step;
                exports.StridedSlice = StridedSlice;
                exports.StringNGrams = StringNGrams;
                exports.StringSplit = StringSplit;
                exports.StringToHashBucketFast = StringToHashBucketFast;
                exports.Sub = Sub;
                exports.Sum = Sum;
                exports.Tan = Tan;
                exports.Tanh = Tanh;
                exports.Tensor = Tensor;
                exports.TensorBuffer = TensorBuffer;
                exports.Tile = Tile;
                exports.TopK = TopK;
                exports.Transform = Transform;
                exports.Transpose = Transpose;
                exports.Unique = Unique;
                exports.Unpack = Unpack;
                exports.UnsortedSegmentSum = UnsortedSegmentSum;
                exports.UpperBound = UpperBound;
                exports.Variable = Variable;
                exports.ZerosLike = ZerosLike;
                exports._FusedMatMul = _FusedMatMul;
                exports.abs = abs;
                exports.acos = acos;
                exports.acosh = acosh;
                exports.add = add;
                exports.addN = addN;
                exports.all = all;
                exports.any = any;
                exports.argMax = argMax;
                exports.argMin = argMin;
                exports.asin = asin;
                exports.asinh = asinh;
                exports.atan = atan;
                exports.atan2 = atan2;
                exports.atanh = atanh;
                exports.avgPool = avgPool;
                exports.avgPool3d = avgPool3d;
                exports.backend = backend;
                exports.backend_util = backend_util;
                exports.basicLSTMCell = basicLSTMCell;
                exports.batchNorm = batchNorm;
                exports.batchNorm2d = batchNorm2d;
                exports.batchNorm3d = batchNorm3d;
                exports.batchNorm4d = batchNorm4d;
                exports.batchToSpaceND = batchToSpaceND;
                exports.bincount = bincount;
                exports.booleanMaskAsync = booleanMaskAsync;
                exports.broadcastArgs = broadcastArgs;
                exports.broadcastTo = broadcastTo;
                exports.broadcast_util = broadcast_util;
                exports.browser = browser;
                exports.buffer = buffer;
                exports.cast = cast;
                exports.ceil = ceil;
                exports.clipByValue = clipByValue;
                exports.clone = clone;
                exports.complex = complex;
                exports.concat = concat;
                exports.concat1d = concat1d;
                exports.concat2d = concat2d;
                exports.concat3d = concat3d;
                exports.concat4d = concat4d;
                exports.conv1d = conv1d;
                exports.conv2d = conv2d$1;
                exports.conv2dTranspose = conv2dTranspose;
                exports.conv3d = conv3d;
                exports.conv3dTranspose = conv3dTranspose;
                exports.copyRegisteredKernels = copyRegisteredKernels;
                exports.cos = cos;
                exports.cosh = cosh;
                exports.cosineWindow = cosineWindow;
                exports.cumprod = cumprod;
                exports.cumsum = cumsum;
                exports.customGrad = customGrad;
                exports.denseBincount = denseBincount;
                exports.deprecationWarn = deprecationWarn;
                exports.depthToSpace = depthToSpace;
                exports.depthwiseConv2d = depthwiseConv2d$1;
                exports.device_util = device_util;
                exports.diag = diag;
                exports.dilation2d = dilation2d;
                exports.disableDeprecationWarnings = disableDeprecationWarnings;
                exports.dispose = dispose;
                exports.disposeVariables = disposeVariables;
                exports.div = div;
                exports.divNoNan = divNoNan;
                exports.dot = dot;
                exports.dropout = dropout;
                exports.einsum = einsum;
                exports.elu = elu;
                exports.enableDebugMode = enableDebugMode;
                exports.enableProdMode = enableProdMode;
                exports.enclosingPowerOfTwo = enclosingPowerOfTwo;
                exports.engine = engine;
                exports.env = env;
                exports.equal = equal;
                exports.erf = erf;
                exports.euclideanNorm = euclideanNorm;
                exports.exp = exp;
                exports.expandDims = expandDims;
                exports.expm1 = expm1;
                exports.eye = eye;
                exports.fft = fft;
                exports.fill = fill;
                exports.findBackend = findBackend;
                exports.findBackendFactory = findBackendFactory;
                exports.floor = floor;
                exports.floorDiv = floorDiv;
                exports.fused = fused_ops;
                exports.gather = gather;
                exports.gatherND = gatherND;
                exports.gather_util = gather_nd_util;
                exports.getBackend = getBackend;
                exports.getGradient = getGradient;
                exports.getKernel = getKernel;
                exports.getKernelsForBackend = getKernelsForBackend;
                exports.grad = grad;
                exports.grads = grads;
                exports.greater = greater;
                exports.greaterEqual = greaterEqual;
                exports.ifft = ifft;
                exports.imag = imag;
                exports.image = image;
                exports.inTopKAsync = inTopKAsync;
                exports.io = io;
                exports.irfft = irfft;
                exports.isFinite = isFinite$1;
                exports.isInf = isInf;
                exports.isNaN = isNaN$1;
                exports.keep = keep;
                exports.kernel_impls = kernel_impls;
                exports.leakyRelu = leakyRelu;
                exports.less = less;
                exports.lessEqual = lessEqual;
                exports.linalg = linalg;
                exports.linspace = linspace;
                exports.localResponseNormalization = localResponseNormalization;
                exports.log = log;
                exports.log1p = log1p;
                exports.logSigmoid = logSigmoid;
                exports.logSoftmax = logSoftmax;
                exports.logSumExp = logSumExp;
                exports.logicalAnd = logicalAnd;
                exports.logicalNot = logicalNot;
                exports.logicalOr = logicalOr;
                exports.logicalXor = logicalXor;
                exports.losses = losses;
                exports.lowerBound = lowerBound;
                exports.matMul = matMul$1;
                exports.math = math;
                exports.max = max;
                exports.maxPool = maxPool;
                exports.maxPool3d = maxPool3d;
                exports.maxPoolWithArgmax = maxPoolWithArgmax;
                exports.maximum = maximum;
                exports.mean = mean;
                exports.memory = memory;
                exports.meshgrid = meshgrid;
                exports.min = min;
                exports.minimum = minimum;
                exports.mirrorPad = mirrorPad;
                exports.mod = mod;
                exports.moments = moments;
                exports.movingAverage = movingAverage;
                exports.mul = mul;
                exports.multiRNNCell = multiRNNCell;
                exports.multinomial = multinomial;
                exports.neg = neg;
                exports.nextFrame = nextFrame;
                exports.norm = norm;
                exports.notEqual = notEqual;
                exports.oneHot = oneHot;
                exports.ones = ones;
                exports.onesLike = onesLike;
                exports.op = op;
                exports.outerProduct = outerProduct;
                exports.pad = pad;
                exports.pad1d = pad1d;
                exports.pad2d = pad2d;
                exports.pad3d = pad3d;
                exports.pad4d = pad4d;
                exports.pool = pool;
                exports.pow = pow;
                exports.prelu = prelu;
                exports.print = print;
                exports.prod = prod;
                exports.profile = profile;
                exports.raggedGather = raggedGather;
                exports.raggedRange = raggedRange;
                exports.raggedTensorToTensor = raggedTensorToTensor;
                exports.rand = rand;
                exports.randomGamma = randomGamma;
                exports.randomNormal = randomNormal;
                exports.randomStandardNormal = randomStandardNormal;
                exports.randomUniform = randomUniform;
                exports.range = range;
                exports.ready = ready;
                exports.real = real;
                exports.reciprocal = reciprocal;
                exports.registerBackend = registerBackend;
                exports.registerGradient = registerGradient;
                exports.registerKernel = registerKernel;
                exports.relu = relu;
                exports.relu6 = relu6;
                exports.removeBackend = removeBackend;
                exports.reshape = reshape;
                exports.reverse = reverse;
                exports.reverse1d = reverse1d;
                exports.reverse2d = reverse2d;
                exports.reverse3d = reverse3d;
                exports.reverse4d = reverse4d;
                exports.rfft = rfft;
                exports.round = round;
                exports.rsqrt = rsqrt;
                exports.scalar = scalar;
                exports.scatterND = scatterND;
                exports.scatter_util = scatter_nd_util;
                exports.searchSorted = searchSorted;
                exports.selu = selu;
                exports.separableConv2d = separableConv2d;
                exports.serialization = serialization;
                exports.setBackend = setBackend;
                exports.setPlatform = setPlatform;
                exports.setdiff1dAsync = setdiff1dAsync;
                exports.sigmoid = sigmoid;
                exports.sign = sign;
                exports.signal = signal;
                exports.sin = sin;
                exports.sinh = sinh;
                exports.slice = slice;
                exports.slice1d = slice1d;
                exports.slice2d = slice2d;
                exports.slice3d = slice3d;
                exports.slice4d = slice4d;
                exports.slice_util = slice_util;
                exports.softmax = softmax;
                exports.softplus = softplus;
                exports.spaceToBatchND = spaceToBatchND;
                exports.sparse = sparse;
                exports.sparseToDense = sparseToDense;
                exports.spectral = spectral;
                exports.split = split;
                exports.sqrt = sqrt;
                exports.square = square;
                exports.squaredDifference = squaredDifference;
                exports.squeeze = squeeze;
                exports.stack = stack;
                exports.step = step;
                exports.stridedSlice = stridedSlice;
                exports.string = string;
                exports.sub = sub;
                exports.sum = sum;
                exports.sumOutType = sumOutType;
                exports.tan = tan;
                exports.tanh = tanh;
                exports.tensor = tensor;
                exports.tensor1d = tensor1d;
                exports.tensor2d = tensor2d;
                exports.tensor3d = tensor3d;
                exports.tensor4d = tensor4d;
                exports.tensor5d = tensor5d;
                exports.tensor6d = tensor6d;
                exports.tensor_util = tensor_util;
                exports.test_util = test_util;
                exports.tidy = tidy;
                exports.tile = tile;
                exports.time = time;
                exports.topk = topk;
                exports.train = train;
                exports.transpose = transpose;
                exports.truncatedNormal = truncatedNormal;
                exports.unique = unique;
                exports.unregisterGradient = unregisterGradient;
                exports.unregisterKernel = unregisterKernel;
                exports.unsortedSegmentSum = unsortedSegmentSum;
                exports.unstack = unstack;
                exports.upcastType = upcastType;
                exports.upperBound = upperBound;
                exports.util = util;
                exports.valueAndGrad = valueAndGrad;
                exports.valueAndGrads = valueAndGrads;
                exports.variable = variable;
                exports.variableGrads = variableGrads;
                exports.version_core = version;
                exports.where = where;
                exports.whereAsync = whereAsync;
                exports.zeros = zeros;
                exports.zerosLike = zerosLike;

            }
            ).call(this)
        }
        ).call(this, require('_process'), typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}, require("buffer").Buffer, arguments[3], arguments[4], arguments[5], arguments[6], require("timers").setImmediate)
    }
        , {
        "_process": 649,
        "buffer": 647,
        "crypto": 636,
        "node-fetch": 636,
        "timers": 650,
        "util": 636
    }],
    507: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.train = void 0;
        var _adadelta_optimizer = require("./optimizers/adadelta_optimizer");
        var _adagrad_optimizer = require("./optimizers/adagrad_optimizer");
        var _adam_optimizer = require("./optimizers/adam_optimizer");
        var _adamax_optimizer = require("./optimizers/adamax_optimizer");
        var _momentum_optimizer = require("./optimizers/momentum_optimizer");
        var _optimizer_constructors = require("./optimizers/optimizer_constructors");
        var _rmsprop_optimizer = require("./optimizers/rmsprop_optimizer");
        var _sgd_optimizer = require("./optimizers/sgd_optimizer");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        // So typings can propagate.

        // tslint:disable-next-line:no-unused-expression
        [_momentum_optimizer.MomentumOptimizer, _sgd_optimizer.SGDOptimizer, _adadelta_optimizer.AdadeltaOptimizer, _adagrad_optimizer.AdagradOptimizer, _rmsprop_optimizer.RMSPropOptimizer, _adamax_optimizer.AdamaxOptimizer, _adam_optimizer.AdamOptimizer];
        const train = {
            sgd: _optimizer_constructors.OptimizerConstructors.sgd,
            momentum: _optimizer_constructors.OptimizerConstructors.momentum,
            adadelta: _optimizer_constructors.OptimizerConstructors.adadelta,
            adagrad: _optimizer_constructors.OptimizerConstructors.adagrad,
            rmsprop: _optimizer_constructors.OptimizerConstructors.rmsprop,
            adamax: _optimizer_constructors.OptimizerConstructors.adamax,
            adam: _optimizer_constructors.OptimizerConstructors.adam
        };
        exports.train = train;

    }
        , {
        "./optimizers/adadelta_optimizer": 488,
        "./optimizers/adagrad_optimizer": 489,
        "./optimizers/adam_optimizer": 490,
        "./optimizers/adamax_optimizer": 491,
        "./optimizers/momentum_optimizer": 492,
        "./optimizers/optimizer_constructors": 494,
        "./optimizers/rmsprop_optimizer": 495,
        "./optimizers/sgd_optimizer": 496
    }],
    508: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.Rank = void 0;
        exports.sumOutType = sumOutType;
        exports.upcastType = upcastType;
        /**
         * @license
         * Copyright 2017 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        var Rank;
        exports.Rank = Rank;
        (function (Rank) {
            Rank["R0"] = "R0";
            Rank["R1"] = "R1";
            Rank["R2"] = "R2";
            Rank["R3"] = "R3";
            Rank["R4"] = "R4";
            Rank["R5"] = "R5";
            Rank["R6"] = "R6";
        }
        )(Rank || (exports.Rank = Rank = {}));
        // Looks for upcasting types. Used, for example, in operations with mixed dtype
        // inputs.
        var UpcastInt32AndMap;
        (function (UpcastInt32AndMap) {
            UpcastInt32AndMap["float32"] = "float32";
            UpcastInt32AndMap["int32"] = "int32";
            UpcastInt32AndMap["bool"] = "int32";
            UpcastInt32AndMap["complex64"] = "complex64";
        }
        )(UpcastInt32AndMap || (UpcastInt32AndMap = {}));
        var UpcastBoolAndMap;
        (function (UpcastBoolAndMap) {
            UpcastBoolAndMap["float32"] = "float32";
            UpcastBoolAndMap["int32"] = "int32";
            UpcastBoolAndMap["bool"] = "bool";
            UpcastBoolAndMap["complex64"] = "complex64";
        }
        )(UpcastBoolAndMap || (UpcastBoolAndMap = {}));
        var UpcastFloat32AndMap;
        (function (UpcastFloat32AndMap) {
            UpcastFloat32AndMap["float32"] = "float32";
            UpcastFloat32AndMap["int32"] = "float32";
            UpcastFloat32AndMap["bool"] = "float32";
            UpcastFloat32AndMap["complex64"] = "complex64";
        }
        )(UpcastFloat32AndMap || (UpcastFloat32AndMap = {}));
        var UpcastComplex64AndMap;
        (function (UpcastComplex64AndMap) {
            UpcastComplex64AndMap["float32"] = "complex64";
            UpcastComplex64AndMap["int32"] = "complex64";
            UpcastComplex64AndMap["bool"] = "complex64";
            UpcastComplex64AndMap["complex64"] = "complex64";
        }
        )(UpcastComplex64AndMap || (UpcastComplex64AndMap = {}));
        const upcastTypeMap = {
            'float32': UpcastFloat32AndMap,
            'int32': UpcastInt32AndMap,
            'bool': UpcastBoolAndMap,
            'complex64': UpcastComplex64AndMap
        };
        function upcastType(typeA, typeB) {
            if (typeA === 'string' || typeB === 'string') {
                if (typeA === 'string' && typeB === 'string') {
                    return 'string';
                }
                throw new Error(`Can not upcast ${typeA} with ${typeB}`);
            }
            return upcastTypeMap[typeA][typeB];
        }
        /** Returns the output type after summation. */
        function sumOutType(type) {
            return upcastType(type, 'int32');
        }

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

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        var _exportNames = {
            createScalarValue: true,
            toTypedArray: true,
            now: true,
            fetch: true,
            encodeString: true,
            decodeString: true
        };
        exports.createScalarValue = createScalarValue;
        exports.decodeString = decodeString;
        exports.encodeString = encodeString;
        exports.fetch = fetch;
        exports.now = now;
        exports.toTypedArray = toTypedArray;
        var _environment = require("./environment");
        var base = _interopRequireWildcard(require("./util_base"));
        Object.keys(base).forEach(function (key) {
            if (key === "default" || key === "__esModule")
                return;
            if (Object.prototype.hasOwnProperty.call(_exportNames, key))
                return;
            if (key in exports && exports[key] === base[key])
                return;
            Object.defineProperty(exports, key, {
                enumerable: true,
                get: function () {
                    return base[key];
                }
            });
        });
        var _hash_util = require("./hash_util");
        Object.keys(_hash_util).forEach(function (key) {
            if (key === "default" || key === "__esModule")
                return;
            if (Object.prototype.hasOwnProperty.call(_exportNames, key))
                return;
            if (key in exports && exports[key] === _hash_util[key])
                return;
            Object.defineProperty(exports, key, {
                enumerable: true,
                get: function () {
                    return _hash_util[key];
                }
            });
        });
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2017 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Create typed array for scalar value. Used for storing in `DataStorage`.
         */
        function createScalarValue(value, dtype) {
            if (dtype === 'string') {
                return encodeString(value);
            }
            return toTypedArray([value], dtype);
        }
        function noConversionNeeded(a, dtype) {
            return a instanceof Float32Array && dtype === 'float32' || a instanceof Int32Array && dtype === 'int32' || a instanceof Uint8Array && dtype === 'bool';
        }
        function toTypedArray(a, dtype) {
            if (dtype === 'string') {
                throw new Error('Cannot convert a string[] to a TypedArray');
            }
            if (Array.isArray(a)) {
                a = base.flatten(a);
            }
            if ((0,
                _environment.env)().getBool('DEBUG')) {
                base.checkConversionForErrors(a, dtype);
            }
            if (noConversionNeeded(a, dtype)) {
                return a;
            }
            if (dtype == null || dtype === 'float32' || dtype === 'complex64') {
                return new Float32Array(a);
            } else if (dtype === 'int32') {
                return new Int32Array(a);
            } else if (dtype === 'bool') {
                const bool = new Uint8Array(a.length);
                for (let i = 0; i < bool.length; ++i) {
                    if (Math.round(a[i]) !== 0) {
                        bool[i] = 1;
                    }
                }
                return bool;
            } else {
                throw new Error(`Unknown data type ${dtype}`);
            }
        }
        /**
         * Returns the current high-resolution time in milliseconds relative to an
         * arbitrary time in the past. It works across different platforms (node.js,
         * browsers).
         *
         * ```js
         * console.log(tf.util.now());
         * ```
         *
         * @doc {heading: 'Util', namespace: 'util'}
         */
        function now() {
            return (0,
                _environment.env)().platform.now();
        }
        /**
         * Returns a platform-specific implementation of
         * [`fetch`](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API).
         *
         * If `fetch` is defined on the global object (`window`, `process`, etc.),
         * `tf.util.fetch` returns that function.
         *
         * If not, `tf.util.fetch` returns a platform-specific solution.
         *
         * ```js
         * const resource = await tf.util.fetch('https://unpkg.com/@tensorflow/tfjs');
         * // handle response
         * ```
         *
         * @doc {heading: 'Util'}
         */
        function fetch(path, requestInits) {
            return (0,
                _environment.env)().platform.fetch(path, requestInits);
        }
        /**
         * Encodes the provided string into bytes using the provided encoding scheme.
         *
         * @param s The string to encode.
         * @param encoding The encoding scheme. Defaults to utf-8.
         *
         * @doc {heading: 'Util'}
         */
        function encodeString(s, encoding = 'utf-8') {
            encoding = encoding || 'utf-8';
            return (0,
                _environment.env)().platform.encode(s, encoding);
        }
        /**
         * Decodes the provided bytes into a string using the provided encoding scheme.
         * @param bytes The bytes to decode.
         *
         * @param encoding The encoding scheme. Defaults to utf-8.
         *
         * @doc {heading: 'Util'}
         */
        function decodeString(bytes, encoding = 'utf-8') {
            encoding = encoding || 'utf-8';
            return (0,
                _environment.env)().platform.decode(bytes, encoding);
        }

    }
        , {
        "./environment": 78,
        "./hash_util": 185,
        "./util_base": 510
    }],
    510: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.arraysEqual = arraysEqual;
        exports.assert = assert;
        exports.assertNonNegativeIntegerDimensions = assertNonNegativeIntegerDimensions;
        exports.assertNonNull = assertNonNull;
        exports.assertShapesMatch = assertShapesMatch;
        exports.bytesFromStringArray = bytesFromStringArray;
        exports.bytesPerElement = bytesPerElement;
        exports.checkConversionForErrors = checkConversionForErrors;
        exports.clamp = clamp;
        exports.computeStrides = computeStrides;
        exports.createShuffledIndices = createShuffledIndices;
        exports.distSquared = distSquared;
        exports.flatten = flatten;
        exports.getArrayFromDType = getArrayFromDType;
        exports.getTypedArrayFromDType = getTypedArrayFromDType;
        exports.hasEncodingLoss = hasEncodingLoss;
        exports.indexToLoc = indexToLoc;
        exports.inferDtype = inferDtype;
        exports.inferFromImplicitShape = inferFromImplicitShape;
        exports.isBoolean = isBoolean;
        exports.isFunction = isFunction;
        exports.isInt = isInt;
        exports.isNumber = isNumber;
        exports.isPromise = isPromise;
        exports.isScalarShape = isScalarShape;
        exports.isString = isString;
        exports.isTypedArray = isTypedArray;
        exports.isValidDtype = isValidDtype;
        exports.locToIndex = locToIndex;
        exports.makeOnesTypedArray = makeOnesTypedArray;
        exports.makeZerosNestedTypedArray = makeZerosNestedTypedArray;
        exports.makeZerosTypedArray = makeZerosTypedArray;
        exports.nearestDivisor = nearestDivisor;
        exports.nearestLargerEven = nearestLargerEven;
        exports.parseAxisParam = parseAxisParam;
        exports.randUniform = randUniform;
        exports.repeatedTry = repeatedTry;
        exports.rightPad = rightPad;
        exports.shuffle = shuffle;
        exports.shuffleCombo = shuffleCombo;
        exports.sizeFromShape = sizeFromShape;
        exports.sizeToSquarishShape = sizeToSquarishShape;
        exports.squeezeShape = squeezeShape;
        exports.sum = sum;
        exports.swap = swap;
        exports.tanh = tanh;
        exports.toNestedArray = toNestedArray;
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        /**
         * Shuffles the array in-place using Fisher-Yates algorithm.
         *
         * ```js
         * const a = [1, 2, 3, 4, 5];
         * tf.util.shuffle(a);
         * console.log(a);
         * ```
         *
         * @param array The array to shuffle in-place.
         *
         * @doc {heading: 'Util', namespace: 'util'}
         */
        // tslint:disable-next-line:no-any
        function shuffle(array) {
            let counter = array.length;
            let index = 0;
            // While there are elements in the array
            while (counter > 0) {
                // Pick a random index
                index = Math.random() * counter | 0;
                // Decrease counter by 1
                counter--;
                // And swap the last element with it
                swap(array, counter, index);
            }
        }
        /**
         * Shuffles two arrays in-place the same way using Fisher-Yates algorithm.
         *
         * ```js
         * const a = [1,2,3,4,5];
         * const b = [11,22,33,44,55];
         * tf.util.shuffleCombo(a, b);
         * console.log(a, b);
         * ```
         *
         * @param array The first array to shuffle in-place.
         * @param array2 The second array to shuffle in-place with the same permutation
         *     as the first array.
         *
         * @doc {heading: 'Util', namespace: 'util'}
         */
        function shuffleCombo(// tslint:disable-next-line:no-any
            array, // tslint:disable-next-line:no-any
            array2) {
            if (array.length !== array2.length) {
                throw new Error(`Array sizes must match to be shuffled together ` + `First array length was ${array.length}` + `Second array length was ${array2.length}`);
            }
            let counter = array.length;
            let index = 0;
            // While there are elements in the array
            while (counter > 0) {
                // Pick a random index
                index = Math.random() * counter | 0;
                // Decrease counter by 1
                counter--;
                // And swap the last element of each array with it
                swap(array, counter, index);
                swap(array2, counter, index);
            }
        }
        /** Clamps a value to a specified range. */
        function clamp(min, x, max) {
            return Math.max(min, Math.min(x, max));
        }
        function nearestLargerEven(val) {
            return val % 2 === 0 ? val : val + 1;
        }
        function swap(object, left, right) {
            const temp = object[left];
            object[left] = object[right];
            object[right] = temp;
        }
        function sum(arr) {
            let sum = 0;
            for (let i = 0; i < arr.length; i++) {
                sum += arr[i];
            }
            return sum;
        }
        /**
         * Returns a sample from a uniform [a, b) distribution.
         *
         * @param a The minimum support (inclusive).
         * @param b The maximum support (exclusive).
         * @return A pseudorandom number on the half-open interval [a,b).
         */
        function randUniform(a, b) {
            const r = Math.random();
            return b * r + (1 - r) * a;
        }
        /** Returns the squared Euclidean distance between two vectors. */
        function distSquared(a, b) {
            let result = 0;
            for (let i = 0; i < a.length; i++) {
                const diff = Number(a[i]) - Number(b[i]);
                result += diff * diff;
            }
            return result;
        }
        /**
         * Asserts that the expression is true. Otherwise throws an error with the
         * provided message.
         *
         * ```js
         * const x = 2;
         * tf.util.assert(x === 2, 'x is not 2');
         * ```
         *
         * @param expr The expression to assert (as a boolean).
         * @param msg A function that returns the message to report when throwing an
         *     error. We use a function for performance reasons.
         *
         * @doc {heading: 'Util', namespace: 'util'}
         */
        function assert(expr, msg) {
            if (!expr) {
                throw new Error(typeof msg === 'string' ? msg : msg());
            }
        }
        function assertShapesMatch(shapeA, shapeB, errorMessagePrefix = '') {
            assert(arraysEqual(shapeA, shapeB), () => errorMessagePrefix + ` Shapes ${shapeA} and ${shapeB} must match`);
        }
        function assertNonNull(a) {
            assert(a != null, () => `The input to the tensor constructor must be a non-null value.`);
        }
        // NOTE: We explicitly type out what T extends instead of any so that
        // util.flatten on a nested array of number doesn't try to infer T as a
        // number[][], causing us to explicitly type util.flatten<number>().
        /**
         *  Flattens an arbitrarily nested array.
         *
         * ```js
         * const a = [[1, 2], [3, 4], [5, [6, [7]]]];
         * const flat = tf.util.flatten(a);
         * console.log(flat);
         * ```
         *
         *  @param arr The nested array to flatten.
         *  @param result The destination array which holds the elements.
         *  @param skipTypedArray If true, avoids flattening the typed arrays. Defaults
         *      to false.
         *
         * @doc {heading: 'Util', namespace: 'util'}
         */
        function flatten(arr, result = [], skipTypedArray = false) {
            if (result == null) {
                result = [];
            }
            if (Array.isArray(arr) || isTypedArray(arr) && !skipTypedArray) {
                for (let i = 0; i < arr.length; ++i) {
                    flatten(arr[i], result, skipTypedArray);
                }
            } else {
                result.push(arr);
            }
            return result;
        }
        /**
         * Returns the size (number of elements) of the tensor given its shape.
         *
         * ```js
         * const shape = [3, 4, 2];
         * const size = tf.util.sizeFromShape(shape);
         * console.log(size);
         * ```
         *
         * @doc {heading: 'Util', namespace: 'util'}
         */
        function sizeFromShape(shape) {
            if (shape.length === 0) {
                // Scalar.
                return 1;
            }
            let size = shape[0];
            for (let i = 1; i < shape.length; i++) {
                size *= shape[i];
            }
            return size;
        }
        function isScalarShape(shape) {
            return shape.length === 0;
        }
        function arraysEqual(n1, n2) {
            if (n1 === n2) {
                return true;
            }
            if (n1 == null || n2 == null) {
                return false;
            }
            if (n1.length !== n2.length) {
                return false;
            }
            for (let i = 0; i < n1.length; i++) {
                if (n1[i] !== n2[i]) {
                    return false;
                }
            }
            return true;
        }
        function isInt(a) {
            return a % 1 === 0;
        }
        function tanh(x) {
            // tslint:disable-next-line:no-any
            if (Math.tanh != null) {
                // tslint:disable-next-line:no-any
                return Math.tanh(x);
            }
            if (x === Infinity) {
                return 1;
            } else if (x === -Infinity) {
                return -1;
            } else {
                const e2x = Math.exp(2 * x);
                return (e2x - 1) / (e2x + 1);
            }
        }
        function sizeToSquarishShape(size) {
            const width = Math.ceil(Math.sqrt(size));
            return [width, Math.ceil(size / width)];
        }
        /**
         * Creates a new array with randomized indices to a given quantity.
         *
         * ```js
         * const randomTen = tf.util.createShuffledIndices(10);
         * console.log(randomTen);
         * ```
         *
         * @param number Quantity of how many shuffled indices to create.
         *
         * @doc {heading: 'Util', namespace: 'util'}
         */
        function createShuffledIndices(n) {
            const shuffledIndices = new Uint32Array(n);
            for (let i = 0; i < n; ++i) {
                shuffledIndices[i] = i;
            }
            shuffle(shuffledIndices);
            return shuffledIndices;
        }
        function rightPad(a, size) {
            if (size <= a.length) {
                return a;
            }
            return a + ' '.repeat(size - a.length);
        }
        function repeatedTry(checkFn, delayFn = counter => 0, maxCounter, scheduleFn) {
            return new Promise((resolve, reject) => {
                let tryCount = 0;
                const tryFn = () => {
                    if (checkFn()) {
                        resolve();
                        return;
                    }
                    tryCount++;
                    const nextBackoff = delayFn(tryCount);
                    if (maxCounter != null && tryCount >= maxCounter) {
                        reject();
                        return;
                    }
                    if (scheduleFn != null) {
                        scheduleFn(tryFn, nextBackoff);
                    } else {
                        // google3 does not allow assigning another variable to setTimeout.
                        // Don't refactor this so scheduleFn has a default value of setTimeout.
                        setTimeout(tryFn, nextBackoff);
                    }
                }
                    ;
                tryFn();
            }
            );
        }
        /**
         * Given the full size of the array and a shape that may contain -1 as the
         * implicit dimension, returns the inferred shape where -1 is replaced.
         * E.g. For shape=[2, -1, 3] and size=24, it will return [2, 4, 3].
         *
         * @param shape The shape, which may contain -1 in some dimension.
         * @param size The full size (number of elements) of the array.
         * @return The inferred shape where -1 is replaced with the inferred size.
         */
        function inferFromImplicitShape(shape, size) {
            let shapeProd = 1;
            let implicitIdx = -1;
            for (let i = 0; i < shape.length; ++i) {
                if (shape[i] >= 0) {
                    shapeProd *= shape[i];
                } else if (shape[i] === -1) {
                    if (implicitIdx !== -1) {
                        throw Error(`Shapes can only have 1 implicit size. ` + `Found -1 at dim ${implicitIdx} and dim ${i}`);
                    }
                    implicitIdx = i;
                } else if (shape[i] < 0) {
                    throw Error(`Shapes can not be < 0. Found ${shape[i]} at dim ${i}`);
                }
            }
            if (implicitIdx === -1) {
                if (size > 0 && size !== shapeProd) {
                    throw Error(`Size(${size}) must match the product of shape ${shape}`);
                }
                return shape;
            }
            if (shapeProd === 0) {
                throw Error(`Cannot infer the missing size in [${shape}] when ` + `there are 0 elements`);
            }
            if (size % shapeProd !== 0) {
                throw Error(`The implicit shape can't be a fractional number. ` + `Got ${size} / ${shapeProd}`);
            }
            const newShape = shape.slice();
            newShape[implicitIdx] = size / shapeProd;
            return newShape;
        }
        function parseAxisParam(axis, shape) {
            const rank = shape.length;
            // Normalize input
            axis = axis == null ? shape.map((s, i) => i) : [].concat(axis);
            // Check for valid range
            assert(axis.every(ax => ax >= -rank && ax < rank), () => `All values in axis param must be in range [-${rank}, ${rank}) but ` + `got axis ${axis}`);
            // Check for only integers
            assert(axis.every(ax => isInt(ax)), () => `All values in axis param must be integers but ` + `got axis ${axis}`);
            // Handle negative axis.
            return axis.map(a => a < 0 ? rank + a : a);
        }
        /** Reduces the shape by removing all dimensions of shape 1. */
        function squeezeShape(shape, axis) {
            const newShape = [];
            const keptDims = [];
            const isEmptyArray = axis != null && Array.isArray(axis) && axis.length === 0;
            const axes = axis == null || isEmptyArray ? null : parseAxisParam(axis, shape).sort();
            let j = 0;
            for (let i = 0; i < shape.length; ++i) {
                if (axes != null) {
                    if (axes[j] === i && shape[i] !== 1) {
                        throw new Error(`Can't squeeze axis ${i} since its dim '${shape[i]}' is not 1`);
                    }
                    if ((axes[j] == null || axes[j] > i) && shape[i] === 1) {
                        newShape.push(shape[i]);
                        keptDims.push(i);
                    }
                    if (axes[j] <= i) {
                        j++;
                    }
                }
                if (shape[i] !== 1) {
                    newShape.push(shape[i]);
                    keptDims.push(i);
                }
            }
            return {
                newShape,
                keptDims
            };
        }
        function getTypedArrayFromDType(dtype, size) {
            let values = null;
            if (dtype == null || dtype === 'float32') {
                values = new Float32Array(size);
            } else if (dtype === 'int32') {
                values = new Int32Array(size);
            } else if (dtype === 'bool') {
                values = new Uint8Array(size);
            } else {
                throw new Error(`Unknown data type ${dtype}`);
            }
            return values;
        }
        function getArrayFromDType(dtype, size) {
            let values = null;
            if (dtype == null || dtype === 'float32') {
                values = new Float32Array(size);
            } else if (dtype === 'int32') {
                values = new Int32Array(size);
            } else if (dtype === 'bool') {
                values = new Uint8Array(size);
            } else if (dtype === 'string') {
                values = new Array(size);
            } else {
                throw new Error(`Unknown data type ${dtype}`);
            }
            return values;
        }
        function checkConversionForErrors(vals, dtype) {
            for (let i = 0; i < vals.length; i++) {
                const num = vals[i];
                if (isNaN(num) || !isFinite(num)) {
                    throw Error(`A tensor of type ${dtype} being uploaded contains ${num}.`);
                }
            }
        }
        /** Returns true if the dtype is valid. */
        function isValidDtype(dtype) {
            return dtype === 'bool' || dtype === 'complex64' || dtype === 'float32' || dtype === 'int32' || dtype === 'string';
        }
        /**
         * Returns true if the new type can't encode the old type without loss of
         * precision.
         */
        function hasEncodingLoss(oldType, newType) {
            if (newType === 'complex64') {
                return false;
            }
            if (newType === 'float32' && oldType !== 'complex64') {
                return false;
            }
            if (newType === 'int32' && oldType !== 'float32' && oldType !== 'complex64') {
                return false;
            }
            if (newType === 'bool' && oldType === 'bool') {
                return false;
            }
            return true;
        }
        function isTypedArray(a) {
            return a instanceof Float32Array || a instanceof Int32Array || a instanceof Uint8Array || a instanceof Uint8ClampedArray;
        }
        function bytesPerElement(dtype) {
            if (dtype === 'float32' || dtype === 'int32') {
                return 4;
            } else if (dtype === 'complex64') {
                return 8;
            } else if (dtype === 'bool') {
                return 1;
            } else {
                throw new Error(`Unknown dtype ${dtype}`);
            }
        }
        /**
         * Returns the approximate number of bytes allocated in the string array - 2
         * bytes per character. Computing the exact bytes for a native string in JS
         * is not possible since it depends on the encoding of the html page that
         * serves the website.
         */
        function bytesFromStringArray(arr) {
            if (arr == null) {
                return 0;
            }
            let bytes = 0;
            arr.forEach(x => bytes += x.length);
            return bytes;
        }
        /** Returns true if the value is a string. */
        function isString(value) {
            return typeof value === 'string' || value instanceof String;
        }
        function isBoolean(value) {
            return typeof value === 'boolean';
        }
        function isNumber(value) {
            return typeof value === 'number';
        }
        function inferDtype(values) {
            if (Array.isArray(values)) {
                return inferDtype(values[0]);
            }
            if (values instanceof Float32Array) {
                return 'float32';
            } else if (values instanceof Int32Array || values instanceof Uint8Array || values instanceof Uint8ClampedArray) {
                return 'int32';
            } else if (isNumber(values)) {
                return 'float32';
            } else if (isString(values)) {
                return 'string';
            } else if (isBoolean(values)) {
                return 'bool';
            }
            return 'float32';
        }
        function isFunction(f) {
            return !!(f && f.constructor && f.call && f.apply);
        }
        function nearestDivisor(size, start) {
            for (let i = start; i < size; ++i) {
                if (size % i === 0) {
                    return i;
                }
            }
            return size;
        }
        function computeStrides(shape) {
            const rank = shape.length;
            if (rank < 2) {
                return [];
            }
            // Last dimension has implicit stride of 1, thus having D-1 (instead of D)
            // strides.
            const strides = new Array(rank - 1);
            strides[rank - 2] = shape[rank - 1];
            for (let i = rank - 3; i >= 0; --i) {
                strides[i] = strides[i + 1] * shape[i + 1];
            }
            return strides;
        }
        function createNestedArray(offset, shape, a, isComplex = false) {
            const ret = new Array();
            if (shape.length === 1) {
                const d = shape[0] * (isComplex ? 2 : 1);
                for (let i = 0; i < d; i++) {
                    ret[i] = a[offset + i];
                }
            } else {
                const d = shape[0];
                const rest = shape.slice(1);
                const len = rest.reduce((acc, c) => acc * c) * (isComplex ? 2 : 1);
                for (let i = 0; i < d; i++) {
                    ret[i] = createNestedArray(offset + i * len, rest, a, isComplex);
                }
            }
            return ret;
        }
        // Provide a nested array of TypedArray in given shape.
        function toNestedArray(shape, a, isComplex = false) {
            if (shape.length === 0) {
                // Scalar type should return a single number.
                return a[0];
            }
            const size = shape.reduce((acc, c) => acc * c) * (isComplex ? 2 : 1);
            if (size === 0) {
                // A tensor with shape zero should be turned into empty list.
                return [];
            }
            if (size !== a.length) {
                throw new Error(`[${shape}] does not match the input size ${a.length}${isComplex ? ' for a complex tensor' : ''}.`);
            }
            return createNestedArray(0, shape, a, isComplex);
        }
        function makeOnesTypedArray(size, dtype) {
            const array = makeZerosTypedArray(size, dtype);
            for (let i = 0; i < array.length; i++) {
                array[i] = 1;
            }
            return array;
        }
        function makeZerosTypedArray(size, dtype) {
            if (dtype == null || dtype === 'float32' || dtype === 'complex64') {
                return new Float32Array(size);
            } else if (dtype === 'int32') {
                return new Int32Array(size);
            } else if (dtype === 'bool') {
                return new Uint8Array(size);
            } else {
                throw new Error(`Unknown data type ${dtype}`);
            }
        }
        /**
         * Make nested `TypedArray` filled with zeros.
         * @param shape The shape information for the nested array.
         * @param dtype dtype of the array element.
         */
        function makeZerosNestedTypedArray(shape, dtype) {
            const size = shape.reduce((prev, curr) => prev * curr, 1);
            if (dtype == null || dtype === 'float32') {
                return toNestedArray(shape, new Float32Array(size));
            } else if (dtype === 'int32') {
                return toNestedArray(shape, new Int32Array(size));
            } else if (dtype === 'bool') {
                return toNestedArray(shape, new Uint8Array(size));
            } else {
                throw new Error(`Unknown data type ${dtype}`);
            }
        }
        function assertNonNegativeIntegerDimensions(shape) {
            shape.forEach(dimSize => {
                assert(Number.isInteger(dimSize) && dimSize >= 0, () => `Tensor must have a shape comprised of positive integers but got ` + `shape [${shape}].`);
            }
            );
        }
        /**
         * Computes flat index for a given location (multidimentionsal index) in a
         * Tensor/multidimensional array.
         *
         * @param locs Location in the tensor.
         * @param rank Rank of the tensor.
         * @param strides Tensor strides.
         */
        function locToIndex(locs, rank, strides) {
            if (rank === 0) {
                return 0;
            } else if (rank === 1) {
                return locs[0];
            }
            let index = locs[locs.length - 1];
            for (let i = 0; i < locs.length - 1; ++i) {
                index += strides[i] * locs[i];
            }
            return index;
        }
        /**
         * Computes the location (multidimensional index) in a
         * tensor/multidimentional array for a given flat index.
         *
         * @param index Index in flat array.
         * @param rank Rank of tensor.
         * @param strides Strides of tensor.
         */
        function indexToLoc(index, rank, strides) {
            if (rank === 0) {
                return [];
            } else if (rank === 1) {
                return [index];
            }
            const locs = new Array(rank);
            for (let i = 0; i < locs.length - 1; ++i) {
                locs[i] = Math.floor(index / strides[i]);
                index -= locs[i] * strides[i];
            }
            locs[locs.length - 1] = index;
            return locs;
        }
        /**
         * This method asserts whether an object is a Promise instance.
         * @param object
         */
        // tslint:disable-next-line: no-any
        function isPromise(object) {
            //  We chose to not use 'obj instanceOf Promise' for two reasons:
            //  1. It only reliably works for es6 Promise, not other Promise
            //  implementations.
            //  2. It doesn't work with framework that uses zone.js. zone.js monkey
            //  patch the async calls, so it is possible the obj (patched) is
            //  comparing to a pre-patched Promise.
            return object && object.then && typeof object.then === 'function';
        }

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

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.version = void 0;
        /** @license See the LICENSE file. */
        // This code is auto-generated, do not modify this file!
        const version = '4.1.0';
        exports.version = version;

    }
        , {}],
    512: [function (require, module, exports) {
        (function (global, Buffer) {
            (function () {
                /**
                 * @license
                 * Copyright 2022 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */
                'use strict';

                Object.defineProperty(exports, '__esModule', {
                    value: true
                });
                var tf = require('@tensorflow/tfjs-core');
                function _interopNamespace(e) {
                    if (e && e.__esModule)
                        return e;
                    var n = Object.create(null);
                    if (e) {
                        Object.keys(e).forEach(function (k) {
                            if (k !== 'default') {
                                var d = Object.getOwnPropertyDescriptor(e, k);
                                Object.defineProperty(n, k, d.get ? d : {
                                    enumerable: true,
                                    get: function () {
                                        return e[k];
                                    }
                                });
                            }
                        });
                    }
                    n["default"] = e;
                    return n;
                }
                var tf__namespace = /*#__PURE__*/
                    _interopNamespace(tf);

                /******************************************************************************
                Copyright (c) Microsoft Corporation.
                
                Permission to use, copy, modify, and/or distribute this software for any
                purpose with or without fee is hereby granted.
                
                THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
                REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
                AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
                INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
                LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
                OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
                PERFORMANCE OF THIS SOFTWARE.
                ***************************************************************************** */
                /* global Reflect, Promise */
                var extendStatics = function (d, b) {
                    extendStatics = Object.setPrototypeOf || {
                        __proto__: []
                    } instanceof Array && function (d, b) {
                        d.__proto__ = b;
                    }
                        || function (d, b) {
                            for (var p in b)
                                if (Object.prototype.hasOwnProperty.call(b, p))
                                    d[p] = b[p];
                        }
                        ;
                    return extendStatics(d, b);
                };
                function __extends(d, b) {
                    if (typeof b !== "function" && b !== null)
                        throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
                    extendStatics(d, b);
                    function __() {
                        this.constructor = d;
                    }
                    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype,
                        new __());
                }
                function __awaiter(thisArg, _arguments, P, generator) {
                    function adopt(value) {
                        return value instanceof P ? value : new P(function (resolve) {
                            resolve(value);
                        }
                        );
                    }
                    return new (P || (P = Promise))(function (resolve, reject) {
                        function fulfilled(value) {
                            try {
                                step(generator.next(value));
                            } catch (e) {
                                reject(e);
                            }
                        }
                        function rejected(value) {
                            try {
                                step(generator["throw"](value));
                            } catch (e) {
                                reject(e);
                            }
                        }
                        function step(result) {
                            result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
                        }
                        step((generator = generator.apply(thisArg, _arguments || [])).next());
                    }
                    );
                }
                function __generator(thisArg, body) {
                    var _ = {
                        label: 0,
                        sent: function () {
                            if (t[0] & 1)
                                throw t[1];
                            return t[1];
                        },
                        trys: [],
                        ops: []
                    }, f, y, t, g;
                    return g = {
                        next: verb(0),
                        "throw": verb(1),
                        "return": verb(2)
                    },
                        typeof Symbol === "function" && (g[Symbol.iterator] = function () {
                            return this;
                        }
                        ),
                        g;
                    function verb(n) {
                        return function (v) {
                            return step([n, v]);
                        }
                            ;
                    }
                    function step(op) {
                        if (f)
                            throw new TypeError("Generator is already executing.");
                        while (_)
                            try {
                                if (f = 1,
                                    y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y),
                                        0) : y.next) && !(t = t.call(y, op[1])).done)
                                    return t;
                                if (y = 0,
                                    t)
                                    op = [op[0] & 2, t.value];
                                switch (op[0]) {
                                    case 0:
                                    case 1:
                                        t = op;
                                        break;
                                    case 4:
                                        _.label++;
                                        return {
                                            value: op[1],
                                            done: false
                                        };
                                    case 5:
                                        _.label++;
                                        y = op[1];
                                        op = [0];
                                        continue;
                                    case 7:
                                        op = _.ops.pop();
                                        _.trys.pop();
                                        continue;
                                    default:
                                        if (!(t = _.trys,
                                            t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
                                            _ = 0;
                                            continue;
                                        }
                                        if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
                                            _.label = op[1];
                                            break;
                                        }
                                        if (op[0] === 6 && _.label < t[1]) {
                                            _.label = t[1];
                                            t = op;
                                            break;
                                        }
                                        if (t && _.label < t[2]) {
                                            _.label = t[2];
                                            _.ops.push(op);
                                            break;
                                        }
                                        if (t[2])
                                            _.ops.pop();
                                        _.trys.pop();
                                        continue;
                                }
                                op = body.call(thisArg, _);
                            } catch (e) {
                                op = [6, e];
                                y = 0;
                            } finally {
                                f = t = 0;
                            }
                        if (op[0] & 5)
                            throw op[1];
                        return {
                            value: op[0] ? op[1] : void 0,
                            done: true
                        };
                    }
                }
                function __values(o) {
                    var s = typeof Symbol === "function" && Symbol.iterator
                        , m = s && o[s]
                        , i = 0;
                    if (m)
                        return m.call(o);
                    if (o && typeof o.length === "number")
                        return {
                            next: function () {
                                if (o && i >= o.length)
                                    o = void 0;
                                return {
                                    value: o && o[i++],
                                    done: !o
                                };
                            }
                        };
                    throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
                }
                function __read(o, n) {
                    var m = typeof Symbol === "function" && o[Symbol.iterator];
                    if (!m)
                        return o;
                    var i = m.call(o), r, ar = [], e;
                    try {
                        while ((n === void 0 || n-- > 0) && !(r = i.next()).done)
                            ar.push(r.value);
                    } catch (error) {
                        e = {
                            error: error
                        };
                    } finally {
                        try {
                            if (r && !r.done && (m = i["return"]))
                                m.call(i);
                        } finally {
                            if (e)
                                throw e.error;
                        }
                    }
                    return ar;
                }
                function __spreadArray(to, from, pack) {
                    if (pack || arguments.length === 2)
                        for (var i = 0, l = from.length, ar; i < l; i++) {
                            if (ar || !(i in from)) {
                                if (!ar)
                                    ar = Array.prototype.slice.call(from, 0, i);
                                ar[i] = from[i];
                            }
                        }
                    return to.concat(ar || Array.prototype.slice.call(from));
                }
                var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
                function getAugmentedNamespace(n) {
                    if (n.__esModule)
                        return n;
                    var a = Object.defineProperty({}, '__esModule', {
                        value: true
                    });
                    Object.keys(n).forEach(function (k) {
                        var d = Object.getOwnPropertyDescriptor(n, k);
                        Object.defineProperty(a, k, d.get ? d : {
                            enumerable: true,
                            get: function () {
                                return n[k];
                            }
                        });
                    });
                    return a;
                }
                function createCommonjsModule(fn) {
                    var module = {
                        exports: {}
                    };
                    return fn(module, module.exports),
                        module.exports;
                }
                var alea = createCommonjsModule(function (module) {
                    // A port of an algorithm by Johannes Baagøe <baagoe@baagoe.com>, 2010
                    // http://baagoe.com/en/RandomMusings/javascript/
                    // https://github.com/nquinlan/better-random-numbers-for-javascript-mirror
                    // Original work is under MIT license -
                    // Copyright (C) 2010 by Johannes Baagøe <baagoe@baagoe.org>
                    //
                    // Permission is hereby granted, free of charge, to any person obtaining a copy
                    // of this software and associated documentation files (the "Software"), to deal
                    // in the Software without restriction, including without limitation the rights
                    // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
                    // copies of the Software, and to permit persons to whom the Software is
                    // furnished to do so, subject to the following conditions:
                    //
                    // The above copyright notice and this permission notice shall be included in
                    // all copies or substantial portions of the Software.
                    //
                    // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
                    // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
                    // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
                    // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
                    // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
                    // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
                    // THE SOFTWARE.
                    (function (global, module, define) {
                        function Alea(seed) {
                            var me = this
                                , mash = Mash();
                            me.next = function () {
                                var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10;
                                // 2^-32
                                me.s0 = me.s1;
                                me.s1 = me.s2;
                                return me.s2 = t - (me.c = t | 0);
                            }
                                ;
                            // Apply the seeding algorithm from Baagoe.
                            me.c = 1;
                            me.s0 = mash(' ');
                            me.s1 = mash(' ');
                            me.s2 = mash(' ');
                            me.s0 -= mash(seed);
                            if (me.s0 < 0) {
                                me.s0 += 1;
                            }
                            me.s1 -= mash(seed);
                            if (me.s1 < 0) {
                                me.s1 += 1;
                            }
                            me.s2 -= mash(seed);
                            if (me.s2 < 0) {
                                me.s2 += 1;
                            }
                            mash = null;
                        }
                        function copy(f, t) {
                            t.c = f.c;
                            t.s0 = f.s0;
                            t.s1 = f.s1;
                            t.s2 = f.s2;
                            return t;
                        }
                        function impl(seed, opts) {
                            var xg = new Alea(seed)
                                , state = opts && opts.state
                                , prng = xg.next;
                            prng.int32 = function () {
                                return xg.next() * 0x100000000 | 0;
                            }
                                ;
                            prng.double = function () {
                                return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16;
                                // 2^-53
                            }
                                ;

                            prng.quick = prng;
                            if (state) {
                                if (typeof state == 'object')
                                    copy(state, xg);
                                prng.state = function () {
                                    return copy(xg, {});
                                }
                                    ;
                            }
                            return prng;
                        }
                        function Mash() {
                            var n = 0xefc8249d;
                            var mash = function (data) {
                                data = String(data);
                                for (var i = 0; i < data.length; i++) {
                                    n += data.charCodeAt(i);
                                    var h = 0.02519603282416938 * n;
                                    n = h >>> 0;
                                    h -= n;
                                    h *= n;
                                    n = h >>> 0;
                                    h -= n;
                                    n += h * 0x100000000;
                                    // 2^32
                                }

                                return (n >>> 0) * 2.3283064365386963e-10;
                                // 2^-32
                            };

                            return mash;
                        }
                        if (module && module.exports) {
                            module.exports = impl;
                        } else if (define && define.amd) {
                            define(function () {
                                return impl;
                            });
                        } else {
                            this.alea = impl;
                        }
                    }
                    )(commonjsGlobal, module, // present in node.js
                        typeof undefined == 'function'// present with an AMD loader
                    );
                });

                var xor128 = createCommonjsModule(function (module) {
                    // A Javascript implementaion of the "xor128" prng algorithm by
                    // George Marsaglia.  See http://www.jstatsoft.org/v08/i14/paper
                    (function (global, module, define) {
                        function XorGen(seed) {
                            var me = this
                                , strseed = '';
                            me.x = 0;
                            me.y = 0;
                            me.z = 0;
                            me.w = 0;
                            // Set up generator function.
                            me.next = function () {
                                var t = me.x ^ me.x << 11;
                                me.x = me.y;
                                me.y = me.z;
                                me.z = me.w;
                                return me.w ^= me.w >>> 19 ^ t ^ t >>> 8;
                            }
                                ;
                            if (seed === (seed | 0)) {
                                // Integer seed.
                                me.x = seed;
                            } else {
                                // String seed.
                                strseed += seed;
                            }
                            // Mix in string seed, then discard an initial batch of 64 values.
                            for (var k = 0; k < strseed.length + 64; k++) {
                                me.x ^= strseed.charCodeAt(k) | 0;
                                me.next();
                            }
                        }
                        function copy(f, t) {
                            t.x = f.x;
                            t.y = f.y;
                            t.z = f.z;
                            t.w = f.w;
                            return t;
                        }
                        function impl(seed, opts) {
                            var xg = new XorGen(seed)
                                , state = opts && opts.state
                                , prng = function () {
                                    return (xg.next() >>> 0) / 0x100000000;
                                };
                            prng.double = function () {
                                do {
                                    var top = xg.next() >>> 11
                                        , bot = (xg.next() >>> 0) / 0x100000000
                                        , result = (top + bot) / (1 << 21);
                                } while (result === 0);
                                return result;
                            }
                                ;
                            prng.int32 = xg.next;
                            prng.quick = prng;
                            if (state) {
                                if (typeof state == 'object')
                                    copy(state, xg);
                                prng.state = function () {
                                    return copy(xg, {});
                                }
                                    ;
                            }
                            return prng;
                        }
                        if (module && module.exports) {
                            module.exports = impl;
                        } else if (define && define.amd) {
                            define(function () {
                                return impl;
                            });
                        } else {
                            this.xor128 = impl;
                        }
                    }
                    )(commonjsGlobal, module, // present in node.js
                        typeof undefined == 'function'// present with an AMD loader
                    );
                });

                var xorwow = createCommonjsModule(function (module) {
                    // A Javascript implementaion of the "xorwow" prng algorithm by
                    // George Marsaglia.  See http://www.jstatsoft.org/v08/i14/paper
                    (function (global, module, define) {
                        function XorGen(seed) {
                            var me = this
                                , strseed = '';
                            // Set up generator function.
                            me.next = function () {
                                var t = me.x ^ me.x >>> 2;
                                me.x = me.y;
                                me.y = me.z;
                                me.z = me.w;
                                me.w = me.v;
                                return (me.d = me.d + 362437 | 0) + (me.v = me.v ^ me.v << 4 ^ (t ^ t << 1)) | 0;
                            }
                                ;
                            me.x = 0;
                            me.y = 0;
                            me.z = 0;
                            me.w = 0;
                            me.v = 0;
                            if (seed === (seed | 0)) {
                                // Integer seed.
                                me.x = seed;
                            } else {
                                // String seed.
                                strseed += seed;
                            }
                            // Mix in string seed, then discard an initial batch of 64 values.
                            for (var k = 0; k < strseed.length + 64; k++) {
                                me.x ^= strseed.charCodeAt(k) | 0;
                                if (k == strseed.length) {
                                    me.d = me.x << 10 ^ me.x >>> 4;
                                }
                                me.next();
                            }
                        }
                        function copy(f, t) {
                            t.x = f.x;
                            t.y = f.y;
                            t.z = f.z;
                            t.w = f.w;
                            t.v = f.v;
                            t.d = f.d;
                            return t;
                        }
                        function impl(seed, opts) {
                            var xg = new XorGen(seed)
                                , state = opts && opts.state
                                , prng = function () {
                                    return (xg.next() >>> 0) / 0x100000000;
                                };
                            prng.double = function () {
                                do {
                                    var top = xg.next() >>> 11
                                        , bot = (xg.next() >>> 0) / 0x100000000
                                        , result = (top + bot) / (1 << 21);
                                } while (result === 0);
                                return result;
                            }
                                ;
                            prng.int32 = xg.next;
                            prng.quick = prng;
                            if (state) {
                                if (typeof state == 'object')
                                    copy(state, xg);
                                prng.state = function () {
                                    return copy(xg, {});
                                }
                                    ;
                            }
                            return prng;
                        }
                        if (module && module.exports) {
                            module.exports = impl;
                        } else if (define && define.amd) {
                            define(function () {
                                return impl;
                            });
                        } else {
                            this.xorwow = impl;
                        }
                    }
                    )(commonjsGlobal, module, // present in node.js
                        typeof undefined == 'function'// present with an AMD loader
                    );
                });

                var xorshift7 = createCommonjsModule(function (module) {
                    // A Javascript implementaion of the "xorshift7" algorithm by
                    // François Panneton and Pierre L'ecuyer:
                    // "On the Xorgshift Random Number Generators"
                    // http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf
                    (function (global, module, define) {
                        function XorGen(seed) {
                            var me = this;
                            // Set up generator function.
                            me.next = function () {
                                // Update xor generator.
                                var X = me.x, i = me.i, t, v;
                                t = X[i];
                                t ^= t >>> 7;
                                v = t ^ t << 24;
                                t = X[i + 1 & 7];
                                v ^= t ^ t >>> 10;
                                t = X[i + 3 & 7];
                                v ^= t ^ t >>> 3;
                                t = X[i + 4 & 7];
                                v ^= t ^ t << 7;
                                t = X[i + 7 & 7];
                                t = t ^ t << 13;
                                v ^= t ^ t << 9;
                                X[i] = v;
                                me.i = i + 1 & 7;
                                return v;
                            }
                                ;
                            function init(me, seed) {
                                var j, X = [];
                                if (seed === (seed | 0)) {
                                    // Seed state array using a 32-bit integer.
                                    X[0] = seed;
                                } else {
                                    // Seed state using a string.
                                    seed = '' + seed;
                                    for (j = 0; j < seed.length; ++j) {
                                        X[j & 7] = X[j & 7] << 15 ^ seed.charCodeAt(j) + X[j + 1 & 7] << 13;
                                    }
                                }
                                // Enforce an array length of 8, not all zeroes.
                                while (X.length < 8)
                                    X.push(0);
                                for (j = 0; j < 8 && X[j] === 0; ++j)
                                    ;
                                if (j == 8)
                                    X[7] = -1;
                                me.x = X;
                                me.i = 0;
                                // Discard an initial 256 values.
                                for (j = 256; j > 0; --j) {
                                    me.next();
                                }
                            }
                            init(me, seed);
                        }
                        function copy(f, t) {
                            t.x = f.x.slice();
                            t.i = f.i;
                            return t;
                        }
                        function impl(seed, opts) {
                            if (seed == null)
                                seed = +new Date();
                            var xg = new XorGen(seed)
                                , state = opts && opts.state
                                , prng = function () {
                                    return (xg.next() >>> 0) / 0x100000000;
                                };
                            prng.double = function () {
                                do {
                                    var top = xg.next() >>> 11
                                        , bot = (xg.next() >>> 0) / 0x100000000
                                        , result = (top + bot) / (1 << 21);
                                } while (result === 0);
                                return result;
                            }
                                ;
                            prng.int32 = xg.next;
                            prng.quick = prng;
                            if (state) {
                                if (state.x)
                                    copy(state, xg);
                                prng.state = function () {
                                    return copy(xg, {});
                                }
                                    ;
                            }
                            return prng;
                        }
                        if (module && module.exports) {
                            module.exports = impl;
                        } else if (define && define.amd) {
                            define(function () {
                                return impl;
                            });
                        } else {
                            this.xorshift7 = impl;
                        }
                    }
                    )(commonjsGlobal, module, // present in node.js
                        typeof undefined == 'function'// present with an AMD loader
                    );
                });

                var xor4096 = createCommonjsModule(function (module) {
                    // A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.
                    //
                    // This fast non-cryptographic random number generator is designed for
                    // use in Monte-Carlo algorithms. It combines a long-period xorshift
                    // generator with a Weyl generator, and it passes all common batteries
                    // of stasticial tests for randomness while consuming only a few nanoseconds
                    // for each prng generated.  For background on the generator, see Brent's
                    // paper: "Some long-period random number generators using shifts and xors."
                    // http://arxiv.org/pdf/1004.3115v1.pdf
                    //
                    // Usage:
                    //
                    // var xor4096 = require('xor4096');
                    // random = xor4096(1);                        // Seed with int32 or string.
                    // assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.
                    // assert.equal(random.int32(), 1806534897);   // signed int32, 32 bits.
                    //
                    // For nonzero numeric keys, this impelementation provides a sequence
                    // identical to that by Brent's xorgens 3 implementaion in C.  This
                    // implementation also provides for initalizing the generator with
                    // string seeds, or for saving and restoring the state of the generator.
                    //
                    // On Chrome, this prng benchmarks about 2.1 times slower than
                    // Javascript's built-in Math.random().
                    (function (global, module, define) {
                        function XorGen(seed) {
                            var me = this;
                            // Set up generator function.
                            me.next = function () {
                                var w = me.w, X = me.X, i = me.i, t, v;
                                // Update Weyl generator.
                                me.w = w = w + 0x61c88647 | 0;
                                // Update xor generator.
                                v = X[i + 34 & 127];
                                t = X[i = i + 1 & 127];
                                v ^= v << 13;
                                t ^= t << 17;
                                v ^= v >>> 15;
                                t ^= t >>> 12;
                                // Update Xor generator array state.
                                v = X[i] = v ^ t;
                                me.i = i;
                                // Result is the combination.
                                return v + (w ^ w >>> 16) | 0;
                            }
                                ;
                            function init(me, seed) {
                                var t, v, i, j, w, X = [], limit = 128;
                                if (seed === (seed | 0)) {
                                    // Numeric seeds initialize v, which is used to generates X.
                                    v = seed;
                                    seed = null;
                                } else {
                                    // String seeds are mixed into v and X one character at a time.
                                    seed = seed + '\0';
                                    v = 0;
                                    limit = Math.max(limit, seed.length);
                                }
                                // Initialize circular array and weyl value.
                                for (i = 0,
                                    j = -32; j < limit; ++j) {
                                    // Put the unicode characters into the array, and shuffle them.
                                    if (seed)
                                        v ^= seed.charCodeAt((j + 32) % seed.length);
                                    // After 32 shuffles, take v as the starting w value.
                                    if (j === 0)
                                        w = v;
                                    v ^= v << 10;
                                    v ^= v >>> 15;
                                    v ^= v << 4;
                                    v ^= v >>> 13;
                                    if (j >= 0) {
                                        w = w + 0x61c88647 | 0;
                                        // Weyl.
                                        t = X[j & 127] ^= v + w;
                                        // Combine xor and weyl to init array.
                                        i = 0 == t ? i + 1 : 0;
                                        // Count zeroes.
                                    }
                                }
                                // We have detected all zeroes; make the key nonzero.
                                if (i >= 128) {
                                    X[(seed && seed.length || 0) & 127] = -1;
                                }
                                // Run the generator 512 times to further mix the state before using it.
                                // Factoring this as a function slows the main generator, so it is just
                                // unrolled here.  The weyl generator is not advanced while warming up.
                                i = 127;
                                for (j = 4 * 128; j > 0; --j) {
                                    v = X[i + 34 & 127];
                                    t = X[i = i + 1 & 127];
                                    v ^= v << 13;
                                    t ^= t << 17;
                                    v ^= v >>> 15;
                                    t ^= t >>> 12;
                                    X[i] = v ^ t;
                                }
                                // Storing state as object members is faster than using closure variables.
                                me.w = w;
                                me.X = X;
                                me.i = i;
                            }
                            init(me, seed);
                        }
                        function copy(f, t) {
                            t.i = f.i;
                            t.w = f.w;
                            t.X = f.X.slice();
                            return t;
                        }
                        function impl(seed, opts) {
                            if (seed == null)
                                seed = +new Date();
                            var xg = new XorGen(seed)
                                , state = opts && opts.state
                                , prng = function () {
                                    return (xg.next() >>> 0) / 0x100000000;
                                };
                            prng.double = function () {
                                do {
                                    var top = xg.next() >>> 11
                                        , bot = (xg.next() >>> 0) / 0x100000000
                                        , result = (top + bot) / (1 << 21);
                                } while (result === 0);
                                return result;
                            }
                                ;
                            prng.int32 = xg.next;
                            prng.quick = prng;
                            if (state) {
                                if (state.X)
                                    copy(state, xg);
                                prng.state = function () {
                                    return copy(xg, {});
                                }
                                    ;
                            }
                            return prng;
                        }
                        if (module && module.exports) {
                            module.exports = impl;
                        } else if (define && define.amd) {
                            define(function () {
                                return impl;
                            });
                        } else {
                            this.xor4096 = impl;
                        }
                    }
                    )(commonjsGlobal, // window object or global
                        module, // present in node.js
                        typeof undefined == 'function'// present with an AMD loader
                    );
                });

                var tychei = createCommonjsModule(function (module) {
                    // A Javascript implementaion of the "Tyche-i" prng algorithm by
                    // Samuel Neves and Filipe Araujo.
                    // See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf
                    (function (global, module, define) {
                        function XorGen(seed) {
                            var me = this
                                , strseed = '';
                            // Set up generator function.
                            me.next = function () {
                                var b = me.b
                                    , c = me.c
                                    , d = me.d
                                    , a = me.a;
                                b = b << 25 ^ b >>> 7 ^ c;
                                c = c - d | 0;
                                d = d << 24 ^ d >>> 8 ^ a;
                                a = a - b | 0;
                                me.b = b = b << 20 ^ b >>> 12 ^ c;
                                me.c = c = c - d | 0;
                                me.d = d << 16 ^ c >>> 16 ^ a;
                                return me.a = a - b | 0;
                            }
                                ;
                            /* The following is non-inverted tyche, which has better internal
                             * bit diffusion, but which is about 25% slower than tyche-i in JS.
                            me.next = function() {
                              var a = me.a, b = me.b, c = me.c, d = me.d;
                              a = (me.a + me.b | 0) >>> 0;
                              d = me.d ^ a; d = d << 16 ^ d >>> 16;
                              c = me.c + d | 0;
                              b = me.b ^ c; b = b << 12 ^ d >>> 20;
                              me.a = a = a + b | 0;
                              d = d ^ a; me.d = d = d << 8 ^ d >>> 24;
                              me.c = c = c + d | 0;
                              b = b ^ c;
                              return me.b = (b << 7 ^ b >>> 25);
                            }
                            */
                            me.a = 0;
                            me.b = 0;
                            me.c = 2654435769 | 0;
                            me.d = 1367130551;
                            if (seed === Math.floor(seed)) {
                                // Integer seed.
                                me.a = seed / 0x100000000 | 0;
                                me.b = seed | 0;
                            } else {
                                // String seed.
                                strseed += seed;
                            }
                            // Mix in string seed, then discard an initial batch of 64 values.
                            for (var k = 0; k < strseed.length + 20; k++) {
                                me.b ^= strseed.charCodeAt(k) | 0;
                                me.next();
                            }
                        }
                        function copy(f, t) {
                            t.a = f.a;
                            t.b = f.b;
                            t.c = f.c;
                            t.d = f.d;
                            return t;
                        }
                        function impl(seed, opts) {
                            var xg = new XorGen(seed)
                                , state = opts && opts.state
                                , prng = function () {
                                    return (xg.next() >>> 0) / 0x100000000;
                                };
                            prng.double = function () {
                                do {
                                    var top = xg.next() >>> 11
                                        , bot = (xg.next() >>> 0) / 0x100000000
                                        , result = (top + bot) / (1 << 21);
                                } while (result === 0);
                                return result;
                            }
                                ;
                            prng.int32 = xg.next;
                            prng.quick = prng;
                            if (state) {
                                if (typeof state == 'object')
                                    copy(state, xg);
                                prng.state = function () {
                                    return copy(xg, {});
                                }
                                    ;
                            }
                            return prng;
                        }
                        if (module && module.exports) {
                            module.exports = impl;
                        } else if (define && define.amd) {
                            define(function () {
                                return impl;
                            });
                        } else {
                            this.tychei = impl;
                        }
                    }
                    )(commonjsGlobal, module, // present in node.js
                        typeof undefined == 'function'// present with an AMD loader
                    );
                });

                var _nodeResolve_empty = {};
                var _nodeResolve_empty$1 = {
                    __proto__: null,
                    'default': _nodeResolve_empty
                };
                var require$$0 = /*@__PURE__*/
                    getAugmentedNamespace(_nodeResolve_empty$1);

                /*
                Copyright 2019 David Bau.
                
                Permission is hereby granted, free of charge, to any person obtaining
                a copy of this software and associated documentation files (the
                "Software"), to deal in the Software without restriction, including
                without limitation the rights to use, copy, modify, merge, publish,
                distribute, sublicense, and/or sell copies of the Software, and to
                permit persons to whom the Software is furnished to do so, subject to
                the following conditions:
                
                The above copyright notice and this permission notice shall be
                included in all copies or substantial portions of the Software.
                
                THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
                EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
                MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
                IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
                CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
                TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
                SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
                
                */
                var seedrandom$1 = createCommonjsModule(function (module) {
                    (function (global, pool, math) {
                        //
                        // The following constants are related to IEEE 754 limits.
                        //
                        var width = 256, // each RC4 output is 0 <= x < 256
                            chunks = 6, // at least six RC4 outputs for each double
                            digits = 52, // there are 52 significant digits in a double
                            rngname = 'random', // rngname: name for Math.random and Math.seedrandom
                            startdenom = math.pow(width, chunks), significance = math.pow(2, digits), overflow = significance * 2, mask = width - 1, nodecrypto;
                        // node.js crypto module, initialized at the bottom.
                        //
                        // seedrandom()
                        // This is the seedrandom function described above.
                        //
                        function seedrandom(seed, options, callback) {
                            var key = [];
                            options = options == true ? {
                                entropy: true
                            } : options || {};
                            // Flatten the seed string or build one from local entropy if needed.
                            var shortseed = mixkey(flatten(options.entropy ? [seed, tostring(pool)] : seed == null ? autoseed() : seed, 3), key);
                            // Use the seed to initialize an ARC4 generator.
                            var arc4 = new ARC4(key);
                            // This function returns a random double in [0, 1) that contains
                            // randomness in every bit of the mantissa of the IEEE 754 value.
                            var prng = function () {
                                var n = arc4.g(chunks)
                                    , // Start with a numerator n < 2 ^ 48
                                    d = startdenom
                                    , //   and denominator d = 2 ^ 48.
                                    x = 0;
                                //   and no 'extra last byte'.
                                while (n < significance) {
                                    // Fill up all significant digits by
                                    n = (n + x) * width;
                                    //   shifting numerator and
                                    d *= width;
                                    //   denominator and generating a
                                    x = arc4.g(1);
                                    //   new least-significant-byte.
                                }

                                while (n >= overflow) {
                                    // To avoid rounding up, before adding
                                    n /= 2;
                                    //   last byte, shift everything
                                    d /= 2;
                                    //   right using integer math until
                                    x >>>= 1;
                                    //   we have exactly the desired bits.
                                }

                                return (n + x) / d;
                                // Form the number within [0, 1).
                            };

                            prng.int32 = function () {
                                return arc4.g(4) | 0;
                            }
                                ;
                            prng.quick = function () {
                                return arc4.g(4) / 0x100000000;
                            }
                                ;
                            prng.double = prng;
                            // Mix the randomness into accumulated entropy.
                            mixkey(tostring(arc4.S), pool);
                            // Calling convention: what to return as a function of prng, seed, is_math.
                            return (options.pass || callback || function (prng, seed, is_math_call, state) {
                                if (state) {
                                    // Load the arc4 state from the given state if it has an S array.
                                    if (state.S) {
                                        copy(state, arc4);
                                    }
                                    // Only provide the .state method if requested via options.state.
                                    prng.state = function () {
                                        return copy(arc4, {});
                                    }
                                        ;
                                }
                                // If called as a method of Math (Math.seedrandom()), mutate
                                // Math.random because that is how seedrandom.js has worked since v1.0.
                                if (is_math_call) {
                                    math[rngname] = prng;
                                    return seed;
                                }// Otherwise, it is a newer calling convention, so return the
                                // prng directly.
                                else
                                    return prng;
                            }
                            )(prng, shortseed, 'global' in options ? options.global : this == math, options.state);
                        }
                        //
                        // ARC4
                        //
                        // An ARC4 implementation.  The constructor takes a key in the form of
                        // an array of at most (width) integers that should be 0 <= x < (width).
                        //
                        // The g(count) method returns a pseudorandom integer that concatenates
                        // the next (count) outputs from ARC4.  Its return value is a number x
                        // that is in the range 0 <= x < (width ^ count).
                        //
                        function ARC4(key) {
                            var t, keylen = key.length, me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];
                            // The empty key [] is treated as [0].
                            if (!keylen) {
                                key = [keylen++];
                            }
                            // Set up S using the standard key scheduling algorithm.
                            while (i < width) {
                                s[i] = i++;
                            }
                            for (i = 0; i < width; i++) {
                                s[i] = s[j = mask & j + key[i % keylen] + (t = s[i])];
                                s[j] = t;
                            }
                            // The "g" method returns the next (count) outputs as one number.
                            (me.g = function (count) {
                                // Using instance members instead of closure state nearly doubles speed.
                                var t, r = 0, i = me.i, j = me.j, s = me.S;
                                while (count--) {
                                    t = s[i = mask & i + 1];
                                    r = r * width + s[mask & (s[i] = s[j = mask & j + t]) + (s[j] = t)];
                                }
                                me.i = i;
                                me.j = j;
                                return r;
                                // For robust unpredictability, the function call below automatically
                                // discards an initial batch of values.  This is called RC4-drop[256].
                                // See http://google.com/search?q=rsa+fluhrer+response&btnI
                            }
                            )(width);
                        }
                        //
                        // copy()
                        // Copies internal state of ARC4 to or from a plain object.
                        //
                        function copy(f, t) {
                            t.i = f.i;
                            t.j = f.j;
                            t.S = f.S.slice();
                            return t;
                        }
                        //
                        // flatten()
                        // Converts an object tree to nested arrays of strings.
                        //
                        function flatten(obj, depth) {
                            var result = [], typ = typeof obj, prop;
                            if (depth && typ == 'object') {
                                for (prop in obj) {
                                    try {
                                        result.push(flatten(obj[prop], depth - 1));
                                    } catch (e) { }
                                }
                            }
                            return result.length ? result : typ == 'string' ? obj : obj + '\0';
                        }
                        //
                        // mixkey()
                        // Mixes a string seed into a key that is an array of integers, and
                        // returns a shortened string seed that is equivalent to the result key.
                        //
                        function mixkey(seed, key) {
                            var stringseed = seed + '', smear, j = 0;
                            while (j < stringseed.length) {
                                key[mask & j] = mask & (smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++);
                            }
                            return tostring(key);
                        }
                        //
                        // autoseed()
                        // Returns an object for autoseeding, using window.crypto and Node crypto
                        // module if available.
                        //
                        function autoseed() {
                            try {
                                var out;
                                if (nodecrypto && (out = nodecrypto.randomBytes)) {
                                    // The use of 'out' to remember randomBytes makes tight minified code.
                                    out = out(width);
                                } else {
                                    out = new Uint8Array(width);
                                    (global.crypto || global.msCrypto).getRandomValues(out);
                                }
                                return tostring(out);
                            } catch (e) {
                                var browser = global.navigator
                                    , plugins = browser && browser.plugins;
                                return [+new Date(), global, plugins, global.screen, tostring(pool)];
                            }
                        }
                        //
                        // tostring()
                        // Converts an array of charcodes to a string
                        //
                        function tostring(a) {
                            return String.fromCharCode.apply(0, a);
                        }
                        //
                        // When seedrandom.js is loaded, we immediately mix a few bits
                        // from the built-in RNG into the entropy pool.  Because we do
                        // not want to interfere with deterministic PRNG state later,
                        // seedrandom will not call math.random on its own again after
                        // initialization.
                        //
                        mixkey(math.random(), pool);
                        //
                        // Nodejs and AMD support: export the implementation as a module using
                        // either convention.
                        //
                        if (module.exports) {
                            module.exports = seedrandom;
                            // When in node.js, try using crypto package for autoseeding.
                            try {
                                nodecrypto = require$$0;
                            } catch (ex) { }
                        } else {
                            // When included as a plain script, set up Math.seedrandom global.
                            math['seed' + rngname] = seedrandom;
                        }
                        // End anonymous scope, and pass initial values.
                    }
                    )(// global: `self` in browsers (including strict mode and web workers),
                        // otherwise `this` in Node and other environments
                        typeof self !== 'undefined' ? self : commonjsGlobal, [], // pool: entropy pool starts empty
                        Math // math: package containing random, pow, and seedrandom
                    );
                });

                // A library of seedable RNGs implemented in Javascript.
                //
                // Usage:
                //
                // var seedrandom = require('seedrandom');
                // var random = seedrandom(1); // or any seed.
                // var x = random();       // 0 <= x < 1.  Every bit is random.
                // var x = random.quick(); // 0 <= x < 1.  32 bits of randomness.
                // alea, a 53-bit multiply-with-carry generator by Johannes Baagøe.
                // Period: ~2^116
                // Reported to pass all BigCrush tests.
                // xor128, a pure xor-shift generator by George Marsaglia.
                // Period: 2^128-1.
                // Reported to fail: MatrixRank and LinearComp.
                // xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.
                // Period: 2^192-2^32
                // Reported to fail: CollisionOver, SimpPoker, and LinearComp.
                // xorshift7, by François Panneton and Pierre L'ecuyer, takes
                // a different approach: it adds robustness by allowing more shifts
                // than Marsaglia's original three.  It is a 7-shift generator
                // with 256 bits, that passes BigCrush with no systmatic failures.
                // Period 2^256-1.
                // No systematic BigCrush failures reported.
                // xor4096, by Richard Brent, is a 4096-bit xor-shift with a
                // very long period that also adds a Weyl generator. It also passes
                // BigCrush with no systematic failures.  Its long period may
                // be useful if you have many generators and need to avoid
                // collisions.
                // Period: 2^4128-2^32.
                // No systematic BigCrush failures reported.
                // Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random
                // number generator derived from ChaCha, a modern stream cipher.
                // https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf
                // Period: ~2^127
                // No systematic BigCrush failures reported.
                // The original ARC4-based prng included in this library.
                // Period: ~2^1600
                seedrandom$1.alea = alea;
                seedrandom$1.xor128 = xor128;
                seedrandom$1.xorwow = xorwow;
                seedrandom$1.xorshift7 = xorshift7;
                seedrandom$1.xor4096 = xor4096;
                seedrandom$1.tychei = tychei;
                var seedrandom = seedrandom$1;

                /**
                 * Apply a mapping function to a nested structure in a recursive manner.
                 *
                 * The result of the mapping is an object with the same nested structure (i.e.,
                 * of arrays and dicts) as the input, except that some subtrees are replaced,
                 * according to the results of the mapping function.
                 *
                 * Mappings are memoized.  Thus, if the nested structure contains the same
                 * object in multiple positions, the output will contain the same mapped object
                 * in those positions.  Cycles are not supported, however.
                 *
                 * @param input: The object to which to apply the mapping function.
                 * @param mapFn: A function that expects a single node of the object tree, and
                 *   returns a `DeepMapResult`.  The `DeepMapResult` either provides a
                 *   replacement value for that node (i.e., replacing the subtree), or indicates
                 *   that the node should be processed recursively.
                 */
                function deepMap(input, mapFn) {
                    return deepMapInternal(input, mapFn);
                }
                /**
                 * @param seen: A Map of known object mappings (i.e., memoized results of
                 *   `mapFn()`)
                 * @param containedIn: An set containing objects on the reference path currently
                 *   being processed (used to detect cycles).
                 */
                function deepMapInternal(input, mapFn, seen, containedIn) {
                    if (seen === void 0) {
                        seen = new Map();
                    }
                    if (containedIn === void 0) {
                        containedIn = new Set();
                    }
                    if (input == null) {
                        return null;
                    }
                    if (typeof Blob === 'function' && input instanceof Blob) {
                        return input.slice();
                    }
                    if (containedIn.has(input)) {
                        throw new Error('Circular references are not supported.');
                    }
                    if (seen.has(input)) {
                        return seen.get(input);
                    }
                    var result = mapFn(input);
                    if (result.recurse && result.value !== null) {
                        throw new Error('A deep map function may not return both a value and recurse=true.');
                    }
                    if (!result.recurse) {
                        seen.set(input, result.value);
                        return result.value;
                    } else if (isIterable(input)) {
                        // tslint:disable-next-line:no-any
                        var mappedIterable = Array.isArray(input) ? [] : {};
                        containedIn.add(input);
                        for (var k in input) {
                            var child = input[k];
                            var childResult = deepMapInternal(child, mapFn, seen, containedIn);
                            mappedIterable[k] = childResult;
                        }
                        containedIn.delete(input);
                        if (input.__proto__) {
                            mappedIterable.__proto__ = input.__proto__;
                        }
                        return mappedIterable;
                    } else {
                        throw new Error("Can't recurse into non-iterable type: ".concat(input));
                    }
                }
                // TODO(soergel, kangyizhang) Reconsider naming of deepZip() to avoid confusion
                // with zip()
                /**
                 * Zip nested structures together in a recursive manner.
                 *
                 * This has the effect of transposing or pivoting data, e.g. converting it from
                 * a row-major representation to a column-major representation.
                 *
                 * For example, `deepZip([{a: 1, b: 2}, {a: 3, b: 4}])` returns
                 * `{a: [1, 3], b: [2, 4]}`.
                 *
                 * The inputs should all have the same nested structure (i.e., of arrays and
                 * dicts).  The result is a single object with the same nested structure, where
                 * the leaves are arrays collecting the values of the inputs at that location
                 * (or, optionally, the result of a custom function applied to those arrays).
                 *
                 * @param inputs: An array of the objects to zip together.
                 * @param zipFn: (optional) A function that expects an array of elements at a
                 *   single node of the object tree, and returns a `DeepMapResult`.  The
                 *   `DeepMapResult` either provides a result value for that node (i.e.,
                 *   representing the subtree), or indicates that the node should be processed
                 *   recursively.  The default zipFn recurses as far as possible and places
                 *   arrays at the leaves.
                 */
                function deepZip(inputs, zipFn) {
                    if (zipFn === void 0) {
                        zipFn = zipToList;
                    }
                    return deepZipInternal(inputs, zipFn);
                }
                /**
                 * @param containedIn: An set containing objects on the reference path currently
                 *   being processed (used to detect cycles).
                 */
                function deepZipInternal(inputs, zipFn, containedIn) {
                    if (containedIn === void 0) {
                        containedIn = new Set();
                    }
                    // The recursion follows the structure of input 0; it's assumed that all the
                    // other inputs have the same structure.
                    var input = inputs[0];
                    if (containedIn.has(input)) {
                        throw new Error('Circular references are not supported.');
                    }
                    var result = zipFn(inputs);
                    if (result.recurse && result.value !== null) {
                        throw new Error('A deep zip function may not return both a value and recurse=true.');
                    }
                    if (!result.recurse) {
                        return result.value;
                    } else if (isIterable(input)) {
                        // tslint:disable-next-line:no-any
                        var mappedIterable = Array.isArray(input) ? [] : {};
                        containedIn.add(input);
                        var _loop_1 = function (k) {
                            var children = inputs.map(function (x) {
                                return x[k];
                            });
                            var childResult = deepZipInternal(children, zipFn, containedIn);
                            mappedIterable[k] = childResult;
                        };
                        for (var k in input) {
                            _loop_1(k);
                        }
                        containedIn.delete(input);
                        return mappedIterable;
                    } else {
                        throw new Error("Can't recurse into non-iterable type: ".concat(input));
                    }
                }
                // tslint:disable-next-line:no-any
                function zipToList(x) {
                    if (x === null) {
                        return null;
                    }
                    // TODO(soergel): validate array type?
                    if (isIterable(x[0])) {
                        return {
                            value: null,
                            recurse: true
                        };
                    } else {
                        return {
                            value: x,
                            recurse: false
                        };
                    }
                }
                /**
                 * Apply an async mapping function to a nested structure in a recursive manner.
                 *
                 * This first creates a nested structure of Promises, and then awaits all of
                 * those, resulting in a single Promise for a resolved nested structure.
                 *
                 * The result of the mapping is an object with the same nested structure (i.e.,
                 * of arrays and dicts) as the input, except that some subtrees are replaced,
                 * according to the results of the mapping function.
                 *
                 * Mappings are memoized.  Thus, if the nested structure contains the same
                 * object in multiple positions, the output will contain the same mapped object
                 * in those positions.  Cycles are not supported, however.
                 *
                 * @param input: The object to which to apply the mapping function.
                 * @param mapFn: A function that expects a single node of the object tree, and
                 *   returns a `DeepMapAsyncResult`.  The `DeepMapAsyncResult` either provides
                 *   a `Promise` for a replacement value for that node (i.e., replacing the
                 *   subtree), or indicates that the node should be processed recursively.  Note
                 *   that the decision whether or not to recurse must be made immediately; only
                 *   the mapped value may be promised.
                 */
                function deepMapAndAwaitAll(input, mapFn) {
                    return __awaiter(this, void 0, void 0, function () {
                        var seen, _a, _b, key, value, mappedValue, e_1_1, result;
                        var e_1, _c;
                        return __generator(this, function (_d) {
                            switch (_d.label) {
                                case 0:
                                    seen = new Map();
                                    // First do a normal deepMap, collecting Promises in 'seen' as a side effect.
                                    deepMapInternal(input, mapFn, seen);
                                    _d.label = 1;
                                case 1:
                                    _d.trys.push([1, 6, 7, 8]);
                                    _a = __values(Array.from(seen.keys())),
                                        _b = _a.next();
                                    _d.label = 2;
                                case 2:
                                    if (!!_b.done)
                                        return [3 /*break*/
                                            , 5];
                                    key = _b.value;
                                    value = seen.get(key);
                                    if (!tf__namespace.util.isPromise(value))
                                        return [3 /*break*/
                                            , 4];
                                    return [4 /*yield*/
                                        , value];
                                case 3:
                                    mappedValue = _d.sent();
                                    seen.set(key, mappedValue);
                                    _d.label = 4;
                                case 4:
                                    _b = _a.next();
                                    return [3 /*break*/
                                        , 2];
                                case 5:
                                    return [3 /*break*/
                                        , 8];
                                case 6:
                                    e_1_1 = _d.sent();
                                    e_1 = {
                                        error: e_1_1
                                    };
                                    return [3 /*break*/
                                        , 8];
                                case 7:
                                    try {
                                        if (_b && !_b.done && (_c = _a.return))
                                            _c.call(_a);
                                    } finally {
                                        if (e_1)
                                            throw e_1.error;
                                    }
                                    return [7 /*endfinally*/
                                    ];
                                case 8:
                                    result = deepMapInternal(input, mapFn, seen);
                                    return [2 /*return*/
                                        , result];
                            }
                        });
                    });
                }
                /**
                 * Determine whether the argument is iterable.
                 *
                 * @returns true if the argument is an array or any non-Tensor object.
                 */
                // tslint:disable-next-line:no-any
                function isIterable(obj) {
                    var isTextDecoder = false;
                    if (tf__namespace.env().get('IS_BROWSER')) {
                        isTextDecoder = obj instanceof TextDecoder;
                    } else {
                        // tslint:disable-next-line:no-require-imports
                        var StringDecoder = require('string_decoder').StringDecoder;
                        isTextDecoder = obj instanceof StringDecoder;
                    }
                    return obj != null && !ArrayBuffer.isView(obj) && (Array.isArray(obj) || typeof obj === 'object' && !(obj instanceof tf__namespace.Tensor) && !(obj instanceof Promise) && !isTextDecoder);
                }
                /**
                 * Determine whether the argument can be converted to Tensor.
                 *
                 * Tensors, primitives, arrays, and TypedArrays all qualify; anything else does
                 * not.
                 *
                 * @returns true if the argument can be converted to Tensor.
                 */
                // tslint:disable-next-line:no-any
                function canTensorify(obj) {
                    return obj == null || isPrimitive(obj) || Array.isArray(obj) || typeof obj === 'object' && obj instanceof tf__namespace.Tensor || tf__namespace.util.isTypedArray(obj);
                }
                /**
                 * Returns true if the given `value` is a primitive type. Otherwise returns
                 * false. This is equivalant to node util.isPrimitive
                 */
                function isPrimitive(value) {
                    return value === null || typeof value !== 'object' && typeof value !== 'function';
                }

                /**
                 * @license
                 * Copyright 2018 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 *
                 * =============================================================================
                 */
                function deepClone(container) {
                    return deepMap(container, cloneIfTensor);
                }
                // tslint:disable-next-line: no-any
                function cloneIfTensor(item) {
                    if (item instanceof tf__namespace.Tensor) {
                        return {
                            value: item.clone(),
                            recurse: false
                        };
                    } else if (isIterable(item)) {
                        return {
                            value: null,
                            recurse: true
                        };
                    } else {
                        return {
                            value: item,
                            recurse: false
                        };
                    }
                }

                /**
                 * @license
                 * Copyright 2018 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 *
                 * =============================================================================
                 */
                /**
                 * A ring buffer, providing O(1) FIFO, LIFO, and related operations.
                 */
                var RingBuffer = /** @class */
                    function () {
                        /**
                         * Constructs a `RingBuffer`.
                         * @param capacity The number of items that the buffer can accomodate.
                         */
                        function RingBuffer(capacity) {
                            this.capacity = capacity;
                            // Note we store the indices in the range 0 <= index < 2*capacity.
                            // This allows us to distinguish the full from the empty case.
                            // See https://www.snellman.net/blog/archive/2016-12-13-ring-buffers/
                            this.begin = 0;
                            // inclusive
                            this.end = 0;
                            // exclusive
                            if (capacity == null) {
                                throw new RangeError('Can\'t create a ring buffer of unknown capacity.');
                            }
                            if (capacity < 1) {
                                throw new RangeError('Can\'t create ring buffer of capacity < 1.');
                            }
                            this.data = new Array(capacity);
                            this.doubledCapacity = 2 * capacity;
                        }
                        /**
                         * Map any index into the range 0 <= index < 2*capacity.
                         */
                        RingBuffer.prototype.wrap = function (index) {
                            // don't trust % on negative numbers
                            while (index < 0) {
                                index += this.doubledCapacity;
                            }
                            return index % this.doubledCapacity;
                        }
                            ;
                        RingBuffer.prototype.get = function (index) {
                            if (index < 0) {
                                throw new RangeError('Can\'t get item at a negative index.');
                            }
                            return this.data[index % this.capacity];
                        }
                            ;
                        RingBuffer.prototype.set = function (index, value) {
                            if (index < 0) {
                                throw new RangeError('Can\'t set item at a negative index.');
                            }
                            this.data[index % this.capacity] = value;
                        }
                            ;
                        /**
                         * Returns the current number of items in the buffer.
                         */
                        RingBuffer.prototype.length = function () {
                            var length = this.end - this.begin;
                            if (length < 0) {
                                length = this.doubledCapacity + length;
                            }
                            return length;
                        }
                            ;
                        /**
                         * Reports whether the buffer is full.
                         * @returns true if the number of items in the buffer equals its capacity, and
                         *   false otherwise.
                         */
                        RingBuffer.prototype.isFull = function () {
                            return this.length() === this.capacity;
                        }
                            ;
                        /**
                         * Reports whether the buffer is empty.
                         * @returns true if the number of items in the buffer equals zero, and
                         *   false otherwise.
                         */
                        RingBuffer.prototype.isEmpty = function () {
                            return this.length() === 0;
                        }
                            ;
                        /**
                         * Adds an item to the end of the buffer.
                         */
                        RingBuffer.prototype.push = function (value) {
                            if (this.isFull()) {
                                throw new RangeError('Ring buffer is full.');
                            }
                            this.set(this.end, value);
                            this.end = this.wrap(this.end + 1);
                        }
                            ;
                        /**
                         * Adds many items to the end of the buffer, in order.
                         */
                        RingBuffer.prototype.pushAll = function (values) {
                            var e_1, _a;
                            try {
                                for (var values_1 = __values(values), values_1_1 = values_1.next(); !values_1_1.done; values_1_1 = values_1.next()) {
                                    var value = values_1_1.value;
                                    this.push(value);
                                }
                            } catch (e_1_1) {
                                e_1 = {
                                    error: e_1_1
                                };
                            } finally {
                                try {
                                    if (values_1_1 && !values_1_1.done && (_a = values_1.return))
                                        _a.call(values_1);
                                } finally {
                                    if (e_1)
                                        throw e_1.error;
                                }
                            }
                        }
                            ;
                        /**
                         * Removes and returns the last item in the buffer.
                         */
                        RingBuffer.prototype.pop = function () {
                            if (this.isEmpty()) {
                                throw new RangeError('Ring buffer is empty.');
                            }
                            this.end = this.wrap(this.end - 1);
                            var result = this.get(this.end);
                            this.set(this.end, undefined);
                            return result;
                        }
                            ;
                        /**
                         * Adds an item to the beginning of the buffer.
                         */
                        RingBuffer.prototype.unshift = function (value) {
                            if (this.isFull()) {
                                throw new RangeError('Ring buffer is full.');
                            }
                            this.begin = this.wrap(this.begin - 1);
                            this.set(this.begin, value);
                        }
                            ;
                        /**
                         * Removes and returns the first item in the buffer.
                         */
                        RingBuffer.prototype.shift = function () {
                            if (this.isEmpty()) {
                                throw new RangeError('Ring buffer is empty.');
                            }
                            var result = this.get(this.begin);
                            this.set(this.begin, undefined);
                            this.begin = this.wrap(this.begin + 1);
                            return result;
                        }
                            ;
                        /**
                         * Removes and returns a specific item in the buffer, and moves the last item
                         * to the vacated slot.  This is useful for implementing a shuffling stream.
                         * Note that this operation necessarily scrambles the original order.
                         *
                         * @param relativeIndex: the index of the item to remove, relative to the
                         *   first item in the buffer (e.g., hiding the ring nature of the underlying
                         *   storage).
                         */
                        RingBuffer.prototype.shuffleExcise = function (relativeIndex) {
                            if (this.isEmpty()) {
                                throw new RangeError('Ring buffer is empty.');
                            }
                            var index = this.wrap(this.begin + relativeIndex);
                            var result = this.get(index);
                            this.set(index, this.pop());
                            return result;
                        }
                            ;
                        return RingBuffer;
                    }();
                var GrowingRingBuffer = /** @class */
                    function (_super) {
                        __extends(GrowingRingBuffer, _super);
                        /**
                         * Constructs a `GrowingRingBuffer`.
                         */
                        function GrowingRingBuffer() {
                            return _super.call(this, GrowingRingBuffer.INITIAL_CAPACITY) || this;
                        }
                        GrowingRingBuffer.prototype.isFull = function () {
                            return false;
                        }
                            ;
                        GrowingRingBuffer.prototype.push = function (value) {
                            if (_super.prototype.isFull.call(this)) {
                                this.expand();
                            }
                            _super.prototype.push.call(this, value);
                        }
                            ;
                        GrowingRingBuffer.prototype.unshift = function (value) {
                            if (_super.prototype.isFull.call(this)) {
                                this.expand();
                            }
                            _super.prototype.unshift.call(this, value);
                        }
                            ;
                        /**
                         * Doubles the capacity of the buffer.
                         */
                        GrowingRingBuffer.prototype.expand = function () {
                            var newCapacity = this.capacity * 2;
                            var newData = new Array(newCapacity);
                            var len = this.length();
                            // Rotate the buffer to start at index 0 again, since we can't just
                            // allocate more space at the end.
                            for (var i = 0; i < len; i++) {
                                newData[i] = this.get(this.wrap(this.begin + i));
                            }
                            this.data = newData;
                            this.capacity = newCapacity;
                            this.doubledCapacity = 2 * this.capacity;
                            this.begin = 0;
                            this.end = len;
                        }
                            ;
                        return GrowingRingBuffer;
                    }(RingBuffer);
                GrowingRingBuffer.INITIAL_CAPACITY = 32;

                // Here we implement a simple asynchronous iterator.
                // This lets us avoid using either third-party stream libraries or
                // recent TypeScript language support requiring polyfills.
                /**
                 * Create a `LazyIterator` from an array of items.
                 */
                function iteratorFromItems(items) {
                    return new ArrayIterator(items);
                }
                /**
                 * Create a `LazyIterator` from a function.
                 *
                 * ```js
                 * let i = -1;
                 * const func = () =>
                 *    ++i < 5 ? {value: i, done: false} : {value: null, done: true};
                 * const iter = tf.data.iteratorFromFunction(func);
                 * await iter.forEachAsync(e => console.log(e));
                 * ```
                 *
                 * @param func A function that produces data on each call.
                 */
                function iteratorFromFunction(func) {
                    return new FunctionCallIterator(func);
                }
                /**
                 * Create a `LazyIterator` by concatenating underlying streams, which are
                 * themselves provided as a stream.
                 *
                 * This can also be thought of as a "stream flatten" operation.
                 *
                 * @param baseIterators A stream of streams to be concatenated.
                 * @param baseErrorHandler An optional function that can intercept `Error`s
                 *   raised during a `next()` call on the base stream.  This function can decide
                 *   whether the error should be propagated, whether the error should be
                 *   ignored, or whether the base stream should be terminated.
                 */
                function iteratorFromConcatenated(baseIterators, baseErrorHandler) {
                    return new ChainedIterator(baseIterators, baseErrorHandler);
                }
                /**
                 * Create a `LazyIterator` by zipping together an array, dict, or nested
                 * structure of `LazyIterator`s (and perhaps additional constants).
                 *
                 * The underlying streams must provide elements in a consistent order such
                 * that they correspond.
                 *
                 * Typically, the underlying streams should have the same number of
                 * elements. If they do not, the behavior is determined by the
                 * `mismatchMode` argument.
                 *
                 * The nested structure of the `iterators` argument determines the
                 * structure of elements in the resulting iterator.
                 *
                 * @param iterators: An array or object containing LazyIterators at the
                 * leaves.
                 * @param mismatchMode: Determines what to do when one underlying iterator
                 * is exhausted before the others.  `ZipMismatchMode.FAIL` (the default)
                 * causes an error to be thrown in this case.  `ZipMismatchMode.SHORTEST`
                 * causes the zipped iterator to terminate with the furst underlying
                 * streams, so elements remaining on the longer streams are ignored.
                 * `ZipMismatchMode.LONGEST` causes the zipped stream to continue, filling
                 * in nulls for the exhausted streams, until all streams are exhausted.
                 */
                function iteratorFromZipped(iterators, mismatchMode) {
                    if (mismatchMode === void 0) {
                        mismatchMode = ZipMismatchMode.FAIL;
                    }
                    return new ZipIterator(iterators, mismatchMode);
                }
                /**
                 * An asynchronous iterator, providing lazy access to a potentially
                 * unbounded stream of elements.
                 *
                 * Iterator can be obtained from a dataset:
                 * `const iter = await dataset.iterator();`
                 */
                var LazyIterator = /** @class */
                    function () {
                        function LazyIterator() { }
                        /**
                         * Collect all remaining elements of a bounded stream into an array.
                         * Obviously this will succeed only for small streams that fit in memory.
                         * Useful for testing.
                         *
                         * @returns A Promise for an array of stream elements, which will resolve
                         *   when the stream is exhausted.
                         */
                        LazyIterator.prototype.toArray = function () {
                            return __awaiter(this, void 0, void 0, function () {
                                var result, x;
                                return __generator(this, function (_a) {
                                    switch (_a.label) {
                                        case 0:
                                            result = [];
                                            return [4 /*yield*/
                                                , this.next()];
                                        case 1:
                                            x = _a.sent();
                                            _a.label = 2;
                                        case 2:
                                            if (!!x.done)
                                                return [3 /*break*/
                                                    , 4];
                                            result.push(x.value);
                                            return [4 /*yield*/
                                                , this.next()];
                                        case 3:
                                            x = _a.sent();
                                            return [3 /*break*/
                                                , 2];
                                        case 4:
                                            return [2 /*return*/
                                                , result];
                                    }
                                });
                            });
                        }
                            ;
                        /**
                         * Collect all elements of this dataset into an array with prefetching 100
                         * elements. This is useful for testing, because the prefetch changes the
                         * order in which the Promises are resolved along the processing pipeline.
                         * This may help expose bugs where results are dependent on the order of
                         * Promise resolution rather than on the logical order of the stream (i.e.,
                         * due to hidden mutable state).
                         *
                         * @returns A Promise for an array of stream elements, which will resolve
                         *   when the stream is exhausted.
                         */
                        LazyIterator.prototype.toArrayForTest = function () {
                            return __awaiter(this, void 0, void 0, function () {
                                var stream, result, x;
                                return __generator(this, function (_a) {
                                    switch (_a.label) {
                                        case 0:
                                            stream = this.prefetch(100);
                                            result = [];
                                            return [4 /*yield*/
                                                , stream.next()];
                                        case 1:
                                            x = _a.sent();
                                            _a.label = 2;
                                        case 2:
                                            if (!!x.done)
                                                return [3 /*break*/
                                                    , 4];
                                            result.push(x.value);
                                            return [4 /*yield*/
                                                , stream.next()];
                                        case 3:
                                            x = _a.sent();
                                            return [3 /*break*/
                                                , 2];
                                        case 4:
                                            return [2 /*return*/
                                                , result];
                                    }
                                });
                            });
                        }
                            ;
                        /**
                         * Draw items from the stream until it is exhausted.
                         *
                         * This can be useful when the stream has side effects but no output.  In
                         * that case, calling this function guarantees that the stream will be
                         * fully processed.
                         */
                        LazyIterator.prototype.resolveFully = function () {
                            return __awaiter(this, void 0, void 0, function () {
                                var x;
                                return __generator(this, function (_a) {
                                    switch (_a.label) {
                                        case 0:
                                            return [4 /*yield*/
                                                , this.next()];
                                        case 1:
                                            x = _a.sent();
                                            _a.label = 2;
                                        case 2:
                                            if (!!x.done)
                                                return [3 /*break*/
                                                    , 4];
                                            return [4 /*yield*/
                                                , this.next()];
                                        case 3:
                                            x = _a.sent();
                                            return [3 /*break*/
                                                , 2];
                                        case 4:
                                            return [2 /*return*/
                                            ];
                                    }
                                });
                            });
                        }
                            ;
                        /**
                         * Draw items from the stream until it is exhausted, or a predicate fails.
                         *
                         * This can be useful when the stream has side effects but no output.  In
                         * that case, calling this function guarantees that the stream will be
                         * fully processed.
                         */
                        LazyIterator.prototype.resolveWhile = function (predicate) {
                            return __awaiter(this, void 0, void 0, function () {
                                var x, shouldContinue;
                                return __generator(this, function (_a) {
                                    switch (_a.label) {
                                        case 0:
                                            return [4 /*yield*/
                                                , this.next()];
                                        case 1:
                                            x = _a.sent();
                                            shouldContinue = predicate(x.value);
                                            _a.label = 2;
                                        case 2:
                                            if (!(!x.done && shouldContinue))
                                                return [3 /*break*/
                                                    , 4];
                                            return [4 /*yield*/
                                                , this.next()];
                                        case 3:
                                            x = _a.sent();
                                            shouldContinue = predicate(x.value);
                                            return [3 /*break*/
                                                , 2];
                                        case 4:
                                            return [2 /*return*/
                                            ];
                                    }
                                });
                            });
                        }
                            ;
                        /**
                         * Handles errors thrown on this stream using a provided handler function.
                         *
                         * @param handler A function that handles any `Error` thrown during a `next()`
                         *   call and returns true if the stream should continue (dropping the failed
                         *   call) or false if the stream should quietly terminate.  If the handler
                         *   itself throws (or rethrows) an `Error`, that will be propagated.
                         *
                         * @returns A `LazyIterator` of elements passed through from upstream,
                         *   possibly filtering or terminating on upstream `next()` calls that
                         *   throw an `Error`.
                         */
                        LazyIterator.prototype.handleErrors = function (handler) {
                            return new ErrorHandlingLazyIterator(this, handler);
                        }
                            ;
                        // TODO(soergel): Implement reduce() etc.
                        /**
                         * Filters this stream according to `predicate`.
                         *
                         * @param predicate A function mapping a stream element to a boolean or a
                         * `Promise` for one.
                         *
                         * @returns A `LazyIterator` of elements for which the predicate was true.
                         */
                        LazyIterator.prototype.filter = function (predicate) {
                            return new FilterIterator(this, predicate);
                        }
                            ;
                        /**
                         * Maps this stream through a 1-to-1 transform.
                         *
                         * @param transform A function mapping a stream element to a transformed
                         *   element.
                         *
                         * @returns A `LazyIterator` of transformed elements.
                         */
                        LazyIterator.prototype.map = function (transform) {
                            return new MapIterator(this, transform);
                        }
                            ;
                        /**
                         * Maps this stream through an async 1-to-1 transform.
                         *
                         * @param transform A function mapping a stream element to a `Promise` for a
                         *   transformed stream element.
                         *
                         * @returns A `LazyIterator` of transformed elements.
                         */
                        LazyIterator.prototype.mapAsync = function (transform) {
                            return new AsyncMapIterator(this, transform);
                        }
                            ;
                        /**
                         * Maps this stream through a 1-to-1 transform, forcing serial execution.
                         *
                         * @param transform A function mapping a stream element to a transformed
                         *   element.
                         *
                         * @returns A `LazyIterator` of transformed elements.
                         */
                        LazyIterator.prototype.serialMapAsync = function (transform) {
                            return new AsyncMapIterator(this, transform).serial();
                        }
                            ;
                        /**
                         * Maps this stream through a 1-to-many transform.
                         *
                         * @param transform A function mapping a stream element to an array of
                         *   transformed elements.
                         *
                         * @returns A `DataStream` of transformed elements.
                         */
                        LazyIterator.prototype.flatmap = function (transform) {
                            return new FlatmapIterator(this, transform);
                        }
                            ;
                        /**
                         * Apply a function to every element of the stream.
                         *
                         * @param f A function to apply to each stream element.
                         */
                        LazyIterator.prototype.forEachAsync = function (f) {
                            return __awaiter(this, void 0, void 0, function () {
                                return __generator(this, function (_a) {
                                    return [2 /*return*/
                                        , this.map(f).resolveFully()];
                                });
                            });
                        }
                            ;
                        /**
                         * Apply a function to every element of the stream, forcing serial execution.
                         *
                         * @param f A function to apply to each stream element.  Should return 'true'
                         *   to indicate that the stream should continue, or 'false' to cause it to
                         *   terminate.
                         */
                        LazyIterator.prototype.serialForEach = function (f) {
                            return __awaiter(this, void 0, void 0, function () {
                                return __generator(this, function (_a) {
                                    return [2 /*return*/
                                        , this.serialMapAsync(f).resolveWhile(function (x) {
                                            return x === true;
                                        })];
                                });
                            });
                        }
                            ;
                        /**
                         * Groups elements into batches, represented as arrays of elements.
                         *
                         * We can think of the elements of this iterator as 'rows' (even if they are
                         * nested structures).  By the same token, consecutive values for a given
                         * key within the elements form a 'column'.  This matches the usual sense of
                         * 'row' and 'column' when processing tabular data (e.g., parsing a CSV).
                         *
                         * Thus, "Row-major" means that the resulting batch is simply a collection of
                         * rows: `[row1, row2, row3, ...]`.  This is contrast to the column-major
                         * form, which is needed for vectorized computation.
                         *
                         * @param batchSize The number of elements desired per batch.
                         * @param smallLastBatch Whether to emit the final batch when it has fewer
                         *   than batchSize elements. Default true.
                         * @returns A `LazyIterator` of batches of elements, represented as arrays
                         *   of the original element type.
                         */
                        LazyIterator.prototype.rowMajorBatch = function (batchSize, smallLastBatch) {
                            if (smallLastBatch === void 0) {
                                smallLastBatch = true;
                            }
                            return new RowMajorBatchIterator(this, batchSize, smallLastBatch);
                        }
                            ;
                        /**
                         * Groups elements into batches, represented in column-major form.
                         *
                         * We can think of the elements of this iterator as 'rows' (even if they are
                         * nested structures).  By the same token, consecutive values for a given
                         * key within the elements form a 'column'.  This matches the usual sense of
                         * 'row' and 'column' when processing tabular data (e.g., parsing a CSV).
                         *
                         * Thus, "column-major" means that the resulting batch is a (potentially
                         * nested) structure representing the columns.  Each column entry, then,
                         * contains a collection of the values found in that column for a range of
                         * input elements.  This representation allows for vectorized computation, in
                         * contrast to the row-major form.
                         *
                         * The inputs should all have the same nested structure (i.e., of arrays and
                         * dicts).  The result is a single object with the same nested structure,
                         * where the leaves are arrays collecting the values of the inputs at that
                         * location (or, optionally, the result of a custom function applied to those
                         * arrays).
                         *
                         * @param batchSize The number of elements desired per batch.
                         * @param smallLastBatch Whether to emit the final batch when it has fewer
                         *   than batchSize elements. Default true.
                         * @param zipFn: (optional) A function that expects an array of elements at a
                         *   single node of the object tree, and returns a `DeepMapResult`.  The
                         *   `DeepMapResult` either provides a result value for that node (i.e.,
                         *   representing the subtree), or indicates that the node should be processed
                         *   recursively.  The default zipFn recurses as far as possible and places
                         *   arrays at the leaves.
                         * @returns A `LazyIterator` of batches of elements, represented as an object
                         *   with collections at the leaves.
                         */
                        LazyIterator.prototype.columnMajorBatch = function (batchSize, smallLastBatch, // tslint:disable-next-line:no-any
                            zipFn) {
                            if (smallLastBatch === void 0) {
                                smallLastBatch = true;
                            }
                            if (zipFn === void 0) {
                                zipFn = zipToList;
                            }
                            // First collect the desired number of input elements as a row-major batch.
                            var rowBatches = this.rowMajorBatch(batchSize, smallLastBatch);
                            // Now 'rotate' or 'pivot' the data, collecting all values from each column
                            // in the batch (i.e., for each key within the elements) into an array.
                            return rowBatches.map(function (x) {
                                return deepZip(x, zipFn);
                            });
                        }
                            ;
                        /**
                         * Concatenate this `LazyIterator` with another.
                         *
                         * @param iterator A `LazyIterator` to be concatenated onto this one.
                         * @param baseErrorHandler An optional function that can intercept `Error`s
                         *   raised during a `next()` call on the base stream.  This function can
                         *   decide whether the error should be propagated, whether the error should
                         *   be ignored, or whether the base stream should be terminated.
                         * @returns A `LazyIterator`.
                         */
                        LazyIterator.prototype.concatenate = function (iterator, baseErrorHandler) {
                            return new ChainedIterator(iteratorFromItems([this, iterator]), baseErrorHandler);
                        }
                            ;
                        /**
                         * Limits this stream to return at most `count` items.
                         *
                         * @param count The maximum number of items to provide from the stream. If
                         * a negative or undefined value is given, the entire stream is returned
                         *   unaltered.
                         */
                        LazyIterator.prototype.take = function (count) {
                            if (count < 0 || count == null) {
                                return this;
                            }
                            return new TakeIterator(this, count);
                        }
                            ;
                        /**
                         * Skips the first `count` items in this stream.
                         *
                         * @param count The number of items to skip.  If a negative or undefined
                         * value is given, the entire stream is returned unaltered.
                         */
                        LazyIterator.prototype.skip = function (count) {
                            if (count < 0 || count == null) {
                                return this;
                            }
                            return new SkipIterator(this, count);
                        }
                            ;
                        /**
                         * Prefetch the first `bufferSize` items in this stream.
                         *
                         * Note this prefetches Promises, but makes no guarantees about when those
                         * Promises resolve.
                         *
                         * @param bufferSize: An integer specifying the number of elements to be
                         *   prefetched.
                         */
                        LazyIterator.prototype.prefetch = function (bufferSize) {
                            return new PrefetchIterator(this, bufferSize);
                        }
                            ;
                        // TODO(soergel): deep sharded shuffle, where supported
                        /**
                         * Randomly shuffles the elements of this stream.
                         *
                         * @param bufferSize: An integer specifying the number of elements from
                         * this stream from which the new stream will sample.
                         * @param seed: (Optional.) An integer specifying the random seed that
                         * will be used to create the distribution.
                         */
                        LazyIterator.prototype.shuffle = function (windowSize, seed) {
                            return new ShuffleIterator(this, windowSize, seed);
                        }
                            ;
                        /**
                         * Force an iterator to execute serially: each next() call will await the
                         * prior one, so that they cannot execute concurrently.
                         */
                        LazyIterator.prototype.serial = function () {
                            return new SerialIterator(this);
                        }
                            ;
                        return LazyIterator;
                    }();
                // ============================================================================
                // The following private classes serve to implement the chainable methods
                // on LazyIterator.  Unfortunately they can't be placed in separate files,
                // due to resulting trouble with circular imports.
                // ============================================================================
                // Iterators that just extend LazyIterator directly
                // ============================================================================
                var ArrayIterator = /** @class */
                    function (_super) {
                        __extends(ArrayIterator, _super);
                        function ArrayIterator(items) {
                            var _this = _super.call(this) || this;
                            _this.items = items;
                            _this.trav = 0;
                            return _this;
                        }
                        ArrayIterator.prototype.summary = function () {
                            return "Array of ".concat(this.items.length, " items");
                        }
                            ;
                        ArrayIterator.prototype.next = function () {
                            return __awaiter(this, void 0, void 0, function () {
                                var item;
                                return __generator(this, function (_a) {
                                    if (this.trav >= this.items.length) {
                                        return [2 /*return*/
                                            , {
                                                value: null,
                                                done: true
                                            }];
                                    }
                                    item = this.items[this.trav];
                                    this.trav++;
                                    return [2 /*return*/
                                        , {
                                            value: deepClone(item),
                                            done: false
                                        }];
                                });
                            });
                        }
                            ;
                        return ArrayIterator;
                    }(LazyIterator);
                var FunctionCallIterator = /** @class */
                    function (_super) {
                        __extends(FunctionCallIterator, _super);
                        function FunctionCallIterator(nextFn) {
                            var _this = _super.call(this) || this;
                            _this.nextFn = nextFn;
                            return _this;
                        }
                        FunctionCallIterator.prototype.summary = function () {
                            return "Function call";
                        }
                            ;
                        FunctionCallIterator.prototype.next = function () {
                            return __awaiter(this, void 0, void 0, function () {
                                return __generator(this, function (_a) {
                                    try {
                                        return [2 /*return*/
                                            , this.nextFn()];
                                    } catch (e) {
                                        // Modify the error message but leave the stack trace intact
                                        e.message = "Error thrown while iterating through a dataset: ".concat(e.message);
                                        throw e;
                                    }
                                    return [2 /*return*/
                                    ];
                                });
                            });
                        }
                            ;

                        return FunctionCallIterator;
                    }(LazyIterator);
                var SerialIterator = /** @class */
                    function (_super) {
                        __extends(SerialIterator, _super);
                        function SerialIterator(upstream) {
                            var _this = _super.call(this) || this;
                            _this.upstream = upstream;
                            _this.lastRead = Promise.resolve({
                                value: null,
                                done: false
                            });
                            return _this;
                        }
                        SerialIterator.prototype.summary = function () {
                            return "".concat(this.upstream.summary(), " -> Serial");
                        }
                            ;
                        SerialIterator.prototype.next = function () {
                            return __awaiter(this, void 0, void 0, function () {
                                var _this = this;
                                return __generator(this, function (_a) {
                                    // This sets this.lastRead to a new Promise right away, as opposed to
                                    // saying `await this.lastRead; this.lastRead = this.serialNext();` which
                                    // would not work because this.nextRead would be updated only after the
                                    // promise resolves.
                                    this.lastRead = this.lastRead.then(function () {
                                        return _this.serialNext();
                                    });
                                    return [2 /*return*/
                                        , this.lastRead];
                                });
                            });
                        }
                            ;
                        SerialIterator.prototype.serialNext = function () {
                            return __awaiter(this, void 0, void 0, function () {
                                return __generator(this, function (_a) {
                                    return [2 /*return*/
                                        , this.upstream.next()];
                                });
                            });
                        }
                            ;
                        return SerialIterator;
                    }(LazyIterator);
                var SkipIterator = /** @class */
                    function (_super) {
                        __extends(SkipIterator, _super);
                        function SkipIterator(upstream, maxCount) {
                            var _this = _super.call(this) || this;
                            _this.upstream = upstream;
                            _this.maxCount = maxCount;
                            // Local state that should not be clobbered by out-of-order execution.
                            _this.count = 0;
                            _this.lastRead = Promise.resolve({
                                value: null,
                                done: false
                            });
                            return _this;
                        }
                        SkipIterator.prototype.summary = function () {
                            return "".concat(this.upstream.summary(), " -> Skip");
                        }
                            ;
                        SkipIterator.prototype.next = function () {
                            return __awaiter(this, void 0, void 0, function () {
                                var _this = this;
                                return __generator(this, function (_a) {
                                    // This sets this.lastRead to a new Promise right away, as opposed to
                                    // saying `await this.lastRead; this.lastRead = this.serialNext();` which
                                    // would not work because this.nextRead would be updated only after the
                                    // promise resolves.
                                    this.lastRead = this.lastRead.then(function () {
                                        return _this.serialNext();
                                    });
                                    return [2 /*return*/
                                        , this.lastRead];
                                });
                            });
                        }
                            ;
                        SkipIterator.prototype.serialNext = function () {
                            return __awaiter(this, void 0, void 0, function () {
                                var skipped;
                                return __generator(this, function (_a) {
                                    switch (_a.label) {
                                        case 0:
                                            if (!(this.count++ < this.maxCount))
                                                return [3 /*break*/
                                                    , 2];
                                            return [4 /*yield*/
                                                , this.upstream.next()];
                                        case 1:
                                            skipped = _a.sent();
                                            // short-circuit if upstream is already empty
                                            if (skipped.done) {
                                                return [2 /*return*/
                                                    , skipped];
                                            }
                                            tf__namespace.dispose(skipped.value);
                                            return [3 /*break*/
                                                , 0];
                                        case 2:
                                            return [2 /*return*/
                                                , this.upstream.next()];
                                    }
                                });
                            });
                        }
                            ;
                        return SkipIterator;
                    }(LazyIterator);
                var TakeIterator = /** @class */
                    function (_super) {
                        __extends(TakeIterator, _super);
                        function TakeIterator(upstream, maxCount) {
                            var _this = _super.call(this) || this;
                            _this.upstream = upstream;
                            _this.maxCount = maxCount;
                            _this.count = 0;
                            return _this;
                        }
                        TakeIterator.prototype.summary = function () {
                            return "".concat(this.upstream.summary(), " -> Take");
                        }
                            ;
                        TakeIterator.prototype.next = function () {
                            return __awaiter(this, void 0, void 0, function () {
                                return __generator(this, function (_a) {
                                    if (this.count++ >= this.maxCount) {
                                        return [2 /*return*/
                                            , {
                                                value: null,
                                                done: true
                                            }];
                                    }
                                    return [2 /*return*/
                                        , this.upstream.next()];
                                });
                            });
                        }
                            ;
                        return TakeIterator;
                    }(LazyIterator);
                // Note this batch just groups items into row-wise element arrays.
                // Rotating these to a column-wise representation happens only at the dataset
                // level.
                var RowMajorBatchIterator = /** @class */
                    function (_super) {
                        __extends(RowMajorBatchIterator, _super);
                        function RowMajorBatchIterator(upstream, batchSize, enableSmallLastBatch) {
                            if (enableSmallLastBatch === void 0) {
                                enableSmallLastBatch = true;
                            }
                            var _this = _super.call(this) || this;
                            _this.upstream = upstream;
                            _this.batchSize = batchSize;
                            _this.enableSmallLastBatch = enableSmallLastBatch;
                            _this.lastRead = Promise.resolve({
                                value: null,
                                done: false
                            });
                            return _this;
                        }
                        RowMajorBatchIterator.prototype.summary = function () {
                            return "".concat(this.upstream.summary(), " -> RowMajorBatch");
                        }
                            ;
                        RowMajorBatchIterator.prototype.next = function () {
                            return __awaiter(this, void 0, void 0, function () {
                                var _this = this;
                                return __generator(this, function (_a) {
                                    // This sets this.lastRead to a new Promise right away, as opposed to
                                    // saying `await this.lastRead; this.lastRead = this.serialNext();` which
                                    // would not work because this.nextRead would be updated only after the
                                    // promise resolves.
                                    this.lastRead = this.lastRead.then(function () {
                                        return _this.serialNext();
                                    });
                                    return [2 /*return*/
                                        , this.lastRead];
                                });
                            });
                        }
                            ;
                        RowMajorBatchIterator.prototype.serialNext = function () {
                            return __awaiter(this, void 0, void 0, function () {
                                var batch, item;
                                return __generator(this, function (_a) {
                                    switch (_a.label) {
                                        case 0:
                                            batch = [];
                                            _a.label = 1;
                                        case 1:
                                            if (!(batch.length < this.batchSize))
                                                return [3 /*break*/
                                                    , 3];
                                            return [4 /*yield*/
                                                , this.upstream.next()];
                                        case 2:
                                            item = _a.sent();
                                            if (item.done) {
                                                if (this.enableSmallLastBatch && batch.length > 0) {
                                                    return [2 /*return*/
                                                        , {
                                                            value: batch,
                                                            done: false
                                                        }];
                                                }
                                                return [2 /*return*/
                                                    , {
                                                        value: null,
                                                        done: true
                                                    }];
                                            }
                                            batch.push(item.value);
                                            return [3 /*break*/
                                                , 1];
                                        case 3:
                                            return [2 /*return*/
                                                , {
                                                    value: batch,
                                                    done: false
                                                }];
                                    }
                                });
                            });
                        }
                            ;
                        return RowMajorBatchIterator;
                    }(LazyIterator);
                var FilterIterator = /** @class */
                    function (_super) {
                        __extends(FilterIterator, _super);
                        function FilterIterator(upstream, predicate) {
                            var _this = _super.call(this) || this;
                            _this.upstream = upstream;
                            _this.predicate = predicate;
                            _this.lastRead = Promise.resolve({
                                value: null,
                                done: false
                            });
                            return _this;
                        }
                        FilterIterator.prototype.summary = function () {
                            return "".concat(this.upstream.summary(), " -> Filter");
                        }
                            ;
                        FilterIterator.prototype.next = function () {
                            return __awaiter(this, void 0, void 0, function () {
                                var _this = this;
                                return __generator(this, function (_a) {
                                    // This sets this.lastRead to a new Promise right away, as opposed to
                                    // saying `await this.lastRead; this.lastRead = this.serialNext();` which
                                    // would not work because this.nextRead would be updated only after the
                                    // promise resolves.
                                    this.lastRead = this.lastRead.then(function () {
                                        return _this.serialNext();
                                    });
                                    return [2 /*return*/
                                        , this.lastRead];
                                });
                            });
                        }
                            ;
                        FilterIterator.prototype.serialNext = function () {
                            return __awaiter(this, void 0, void 0, function () {
                                var item;
                                return __generator(this, function (_a) {
                                    switch (_a.label) {
                                        case 0:
                                            return [4 /*yield*/
                                                , this.upstream.next()];
                                        case 1:
                                            item = _a.sent();
                                            if (item.done || this.predicate(item.value)) {
                                                return [2 /*return*/
                                                    , item];
                                            }
                                            tf__namespace.dispose(item.value);
                                            return [3 /*break*/
                                                , 0];
                                        case 2:
                                            return [2 /*return*/
                                            ];
                                    }
                                });
                            });
                        }
                            ;

                        return FilterIterator;
                    }(LazyIterator);
                var MapIterator = /** @class */
                    function (_super) {
                        __extends(MapIterator, _super);
                        function MapIterator(upstream, transform) {
                            var _this = _super.call(this) || this;
                            _this.upstream = upstream;
                            _this.transform = transform;
                            return _this;
                        }
                        MapIterator.prototype.summary = function () {
                            return "".concat(this.upstream.summary(), " -> Map");
                        }
                            ;
                        MapIterator.prototype.next = function () {
                            return __awaiter(this, void 0, void 0, function () {
                                var item, inputTensors, mapped, outputTensors, inputTensors_1, inputTensors_1_1, t;
                                var e_1, _a;
                                return __generator(this, function (_b) {
                                    switch (_b.label) {
                                        case 0:
                                            return [4 /*yield*/
                                                , this.upstream.next()];
                                        case 1:
                                            item = _b.sent();
                                            if (item.done) {
                                                return [2 /*return*/
                                                    , {
                                                        value: null,
                                                        done: true
                                                    }];
                                            }
                                            inputTensors = tf__namespace.tensor_util.getTensorsInContainer(item.value);
                                            mapped = this.transform(item.value);
                                            outputTensors = tf__namespace.tensor_util.getTensorsInContainer(mapped);
                                            try {
                                                // TODO(soergel) faster intersection
                                                // TODO(soergel) move to tf.disposeExcept(in, out)?
                                                for (inputTensors_1 = __values(inputTensors),
                                                    inputTensors_1_1 = inputTensors_1.next(); !inputTensors_1_1.done; inputTensors_1_1 = inputTensors_1.next()) {
                                                    t = inputTensors_1_1.value;
                                                    if (!tf__namespace.tensor_util.isTensorInList(t, outputTensors)) {
                                                        t.dispose();
                                                    }
                                                }
                                            } catch (e_1_1) {
                                                e_1 = {
                                                    error: e_1_1
                                                };
                                            } finally {
                                                try {
                                                    if (inputTensors_1_1 && !inputTensors_1_1.done && (_a = inputTensors_1.return))
                                                        _a.call(inputTensors_1);
                                                } finally {
                                                    if (e_1)
                                                        throw e_1.error;
                                                }
                                            }
                                            return [2 /*return*/
                                                , {
                                                    value: mapped,
                                                    done: false
                                                }];
                                    }
                                });
                            });
                        }
                            ;
                        return MapIterator;
                    }(LazyIterator);
                var ErrorHandlingLazyIterator = /** @class */
                    function (_super) {
                        __extends(ErrorHandlingLazyIterator, _super);
                        function ErrorHandlingLazyIterator(upstream, handler) {
                            var _this = _super.call(this) || this;
                            _this.upstream = upstream;
                            _this.handler = handler;
                            _this.count = 0;
                            _this.lastRead = Promise.resolve({
                                value: null,
                                done: false
                            });
                            return _this;
                        }
                        ErrorHandlingLazyIterator.prototype.summary = function () {
                            return "".concat(this.upstream.summary(), " -> handleErrors");
                        }
                            ;
                        ErrorHandlingLazyIterator.prototype.next = function () {
                            return __awaiter(this, void 0, void 0, function () {
                                var _this = this;
                                return __generator(this, function (_a) {
                                    // This sets this.lastRead to a new Promise right away, as opposed to
                                    // saying `await this.lastRead; this.lastRead = this.serialNext();` which
                                    // would not work because this.nextRead would be updated only after the
                                    // promise resolves.
                                    this.lastRead = this.lastRead.then(function () {
                                        return _this.serialNext();
                                    });
                                    return [2 /*return*/
                                        , this.lastRead];
                                });
                            });
                        }
                            ;
                        ErrorHandlingLazyIterator.prototype.serialNext = function () {
                            return __awaiter(this, void 0, void 0, function () {
                                var e_2;
                                return __generator(this, function (_a) {
                                    switch (_a.label) {
                                        case 0:
                                            _a.label = 1;
                                        case 1:
                                            _a.trys.push([1, 3, , 4]);
                                            return [4 /*yield*/
                                                , this.upstream.next()];
                                        case 2:
                                            return [2 /*return*/
                                                , _a.sent()];
                                        case 3:
                                            e_2 = _a.sent();
                                            if (!this.handler(e_2)) {
                                                return [2 /*return*/
                                                    , {
                                                        value: null,
                                                        done: true
                                                    }];
                                            }
                                            return [3 /*break*/
                                                , 4];
                                        case 4:
                                            return [3 /*break*/
                                                , 0];
                                        case 5:
                                            return [2 /*return*/
                                            ];
                                    }
                                });
                            });
                        }
                            ;

                        return ErrorHandlingLazyIterator;
                    }(LazyIterator);
                var AsyncMapIterator = /** @class */
                    function (_super) {
                        __extends(AsyncMapIterator, _super);
                        function AsyncMapIterator(upstream, transform) {
                            var _this = _super.call(this) || this;
                            _this.upstream = upstream;
                            _this.transform = transform;
                            return _this;
                        }
                        AsyncMapIterator.prototype.summary = function () {
                            return "".concat(this.upstream.summary(), " -> AsyncMap");
                        }
                            ;
                        AsyncMapIterator.prototype.next = function () {
                            return __awaiter(this, void 0, void 0, function () {
                                var item, inputTensors, mapped, outputTensors, inputTensors_2, inputTensors_2_1, t;
                                var e_3, _a;
                                return __generator(this, function (_b) {
                                    switch (_b.label) {
                                        case 0:
                                            return [4 /*yield*/
                                                , this.upstream.next()];
                                        case 1:
                                            item = _b.sent();
                                            if (item.done) {
                                                return [2 /*return*/
                                                    , {
                                                        value: null,
                                                        done: true
                                                    }];
                                            }
                                            inputTensors = tf__namespace.tensor_util.getTensorsInContainer(item.value);
                                            return [4 /*yield*/
                                                , this.transform(item.value)];
                                        case 2:
                                            mapped = _b.sent();
                                            outputTensors = tf__namespace.tensor_util.getTensorsInContainer(mapped);
                                            try {
                                                // TODO(soergel) faster intersection
                                                // TODO(soergel) move to tf.disposeExcept(in, out)?
                                                for (inputTensors_2 = __values(inputTensors),
                                                    inputTensors_2_1 = inputTensors_2.next(); !inputTensors_2_1.done; inputTensors_2_1 = inputTensors_2.next()) {
                                                    t = inputTensors_2_1.value;
                                                    if (!tf__namespace.tensor_util.isTensorInList(t, outputTensors)) {
                                                        t.dispose();
                                                    }
                                                }
                                            } catch (e_3_1) {
                                                e_3 = {
                                                    error: e_3_1
                                                };
                                            } finally {
                                                try {
                                                    if (inputTensors_2_1 && !inputTensors_2_1.done && (_a = inputTensors_2.return))
                                                        _a.call(inputTensors_2);
                                                } finally {
                                                    if (e_3)
                                                        throw e_3.error;
                                                }
                                            }
                                            return [2 /*return*/
                                                , {
                                                    value: mapped,
                                                    done: false
                                                }];
                                    }
                                });
                            });
                        }
                            ;
                        return AsyncMapIterator;
                    }(LazyIterator);
                // Iterators that maintain a queue of pending items
                // ============================================================================
                /**
                 * A base class for transforming streams that operate by maintaining an
                 * output queue of elements that are ready to return via next().  This is
                 * commonly required when the transformation is 1-to-many:  A call to next()
                 * may trigger a call to the underlying stream, which will produce many
                 * mapped elements of this stream-- of which we need to return only one, so
                 * we have to queue the rest.
                 */
                var OneToManyIterator = /** @class */
                    function (_super) {
                        __extends(OneToManyIterator, _super);
                        function OneToManyIterator() {
                            var _this = _super.call(this) || this;
                            _this.outputQueue = new GrowingRingBuffer();
                            _this.lastRead = Promise.resolve({
                                value: null,
                                done: false
                            });
                            return _this;
                        }
                        OneToManyIterator.prototype.next = function () {
                            return __awaiter(this, void 0, void 0, function () {
                                var _this = this;
                                return __generator(this, function (_a) {
                                    // This sets this.lastRead to a new Promise right away, as opposed to
                                    // saying `await this.lastRead; this.lastRead = this.serialNext();` which
                                    // would not work because this.nextRead would be updated only after the
                                    // promise resolves.
                                    this.lastRead = this.lastRead.then(function () {
                                        return _this.serialNext();
                                    });
                                    return [2 /*return*/
                                        , this.lastRead];
                                });
                            });
                        }
                            ;
                        OneToManyIterator.prototype.serialNext = function () {
                            return __awaiter(this, void 0, void 0, function () {
                                return __generator(this, function (_a) {
                                    switch (_a.label) {
                                        case 0:
                                            if (!(this.outputQueue.length() === 0))
                                                return [3 /*break*/
                                                    , 2];
                                            return [4 /*yield*/
                                                , this.pump()];
                                        case 1:
                                            // TODO(soergel): consider parallel reads.
                                            if (!_a.sent()) {
                                                return [2 /*return*/
                                                    , {
                                                        value: null,
                                                        done: true
                                                    }];
                                            }
                                            return [3 /*break*/
                                                , 0];
                                        case 2:
                                            return [2 /*return*/
                                                , {
                                                    value: this.outputQueue.shift(),
                                                    done: false
                                                }];
                                    }
                                });
                            });
                        }
                            ;
                        return OneToManyIterator;
                    }(LazyIterator);
                var FlatmapIterator = /** @class */
                    function (_super) {
                        __extends(FlatmapIterator, _super);
                        function FlatmapIterator(upstream, transform) {
                            var _this = _super.call(this) || this;
                            _this.upstream = upstream;
                            _this.transform = transform;
                            return _this;
                        }
                        FlatmapIterator.prototype.summary = function () {
                            return "".concat(this.upstream.summary(), " -> Flatmap");
                        }
                            ;
                        FlatmapIterator.prototype.pump = function () {
                            return __awaiter(this, void 0, void 0, function () {
                                var item, inputTensors, mappedArray, outputTensors, inputTensors_3, inputTensors_3_1, t;
                                var e_4, _a;
                                return __generator(this, function (_b) {
                                    switch (_b.label) {
                                        case 0:
                                            return [4 /*yield*/
                                                , this.upstream.next()];
                                        case 1:
                                            item = _b.sent();
                                            if (item.done) {
                                                return [2 /*return*/
                                                    , false];
                                            }
                                            inputTensors = tf__namespace.tensor_util.getTensorsInContainer(item.value);
                                            mappedArray = this.transform(item.value);
                                            outputTensors = tf__namespace.tensor_util.getTensorsInContainer(mappedArray);
                                            this.outputQueue.pushAll(mappedArray);
                                            try {
                                                // TODO(soergel) faster intersection, and deduplicate outputTensors
                                                // TODO(soergel) move to tf.disposeExcept(in, out)?
                                                for (inputTensors_3 = __values(inputTensors),
                                                    inputTensors_3_1 = inputTensors_3.next(); !inputTensors_3_1.done; inputTensors_3_1 = inputTensors_3.next()) {
                                                    t = inputTensors_3_1.value;
                                                    if (!tf__namespace.tensor_util.isTensorInList(t, outputTensors)) {
                                                        t.dispose();
                                                    }
                                                }
                                            } catch (e_4_1) {
                                                e_4 = {
                                                    error: e_4_1
                                                };
                                            } finally {
                                                try {
                                                    if (inputTensors_3_1 && !inputTensors_3_1.done && (_a = inputTensors_3.return))
                                                        _a.call(inputTensors_3);
                                                } finally {
                                                    if (e_4)
                                                        throw e_4.error;
                                                }
                                            }
                                            return [2 /*return*/
                                                , true];
                                    }
                                });
                            });
                        }
                            ;
                        return FlatmapIterator;
                    }(OneToManyIterator);
                /**
                 * Provides a `LazyIterator` that concatenates a stream of underlying
                 * streams.
                 *
                 * Doing this in a concurrency-safe way requires some trickery.  In
                 * particular, we want this stream to return the elements from the
                 * underlying streams in the correct order according to when next() was
                 * called, even if the resulting Promises resolve in a different order.
                 */
                var ChainedIterator = /** @class */
                    function (_super) {
                        __extends(ChainedIterator, _super);
                        function ChainedIterator(iterators, baseErrorHandler) {
                            var _this = _super.call(this) || this;
                            _this.baseErrorHandler = baseErrorHandler;
                            // Strict Promise execution order:
                            // a next() call may not even begin until the previous one completes.
                            _this.lastRead = null;
                            // Local state that should not be clobbered by out-of-order execution.
                            _this.iterator = null;
                            _this.moreIterators = iterators;
                            return _this;
                        }
                        ChainedIterator.prototype.summary = function () {
                            var upstreamSummaries = 'TODO: fill in upstream of chained summaries';
                            return "".concat(upstreamSummaries, " -> Chained");
                        }
                            ;
                        ChainedIterator.prototype.next = function () {
                            return __awaiter(this, void 0, void 0, function () {
                                return __generator(this, function (_a) {
                                    this.lastRead = this.readFromChain(this.lastRead);
                                    return [2 /*return*/
                                        , this.lastRead];
                                });
                            });
                        }
                            ;
                        ChainedIterator.prototype.readFromChain = function (lastRead) {
                            return __awaiter(this, void 0, void 0, function () {
                                var iteratorResult, itemResult;
                                return __generator(this, function (_a) {
                                    switch (_a.label) {
                                        case 0:
                                            // Must await on the previous read since the previous read may have advanced
                                            // the stream of streams, from which we need to read.
                                            // This is unfortunate since we can't parallelize reads. Which means
                                            // prefetching of chained streams is a no-op.
                                            // One solution is to prefetch immediately upstream of this.
                                            return [4 /*yield*/
                                                , lastRead];
                                        case 1:
                                            // Must await on the previous read since the previous read may have advanced
                                            // the stream of streams, from which we need to read.
                                            // This is unfortunate since we can't parallelize reads. Which means
                                            // prefetching of chained streams is a no-op.
                                            // One solution is to prefetch immediately upstream of this.
                                            _a.sent();
                                            if (!(this.iterator == null))
                                                return [3 /*break*/
                                                    , 3];
                                            return [4 /*yield*/
                                                , this.moreIterators.next()];
                                        case 2:
                                            iteratorResult = _a.sent();
                                            if (iteratorResult.done) {
                                                // No more streams to stream from.
                                                return [2 /*return*/
                                                    , {
                                                        value: null,
                                                        done: true
                                                    }];
                                            }
                                            this.iterator = iteratorResult.value;
                                            if (this.baseErrorHandler != null) {
                                                this.iterator = this.iterator.handleErrors(this.baseErrorHandler);
                                            }
                                            _a.label = 3;
                                        case 3:
                                            return [4 /*yield*/
                                                , this.iterator.next()];
                                        case 4:
                                            itemResult = _a.sent();
                                            if (itemResult.done) {
                                                this.iterator = null;
                                                return [2 /*return*/
                                                    , this.readFromChain(lastRead)];
                                            }
                                            return [2 /*return*/
                                                , itemResult];
                                    }
                                });
                            });
                        }
                            ;
                        return ChainedIterator;
                    }(LazyIterator);
                var ZipMismatchMode;
                (function (ZipMismatchMode) {
                    ZipMismatchMode[ZipMismatchMode["FAIL"] = 0] = "FAIL";
                    ZipMismatchMode[ZipMismatchMode["SHORTEST"] = 1] = "SHORTEST";
                    ZipMismatchMode[ZipMismatchMode["LONGEST"] = 2] = "LONGEST";
                    // use nulls for exhausted streams; use up the longest stream.
                }
                )(ZipMismatchMode || (ZipMismatchMode = {}));
                /**
                 * Provides a `LazyIterator` that zips together an array, dict, or nested
                 * structure of `LazyIterator`s (and perhaps additional constants).
                 *
                 * The underlying streams must provide elements in a consistent order such
                 * that they correspond.
                 *
                 * Typically, the underlying streams should have the same number of
                 * elements. If they do not, the behavior is determined by the
                 * `mismatchMode` argument.
                 *
                 * The nested structure of the `iterators` argument determines the
                 * structure of elements in the resulting iterator.
                 *
                 * Doing this in a concurrency-safe way requires some trickery.  In
                 * particular, we want this stream to return the elements from the
                 * underlying streams in the correct order according to when next() was
                 * called, even if the resulting Promises resolve in a different order.
                 *
                 * @param iterators: An array or object containing LazyIterators at the
                 * leaves.
                 * @param mismatchMode: Determines what to do when one underlying iterator
                 * is exhausted before the others.  `ZipMismatchMode.FAIL` (the default)
                 * causes an error to be thrown in this case.  `ZipMismatchMode.SHORTEST`
                 * causes the zipped iterator to terminate with the furst underlying
                 * streams, so elements remaining on the longer streams are ignored.
                 * `ZipMismatchMode.LONGEST` causes the zipped stream to continue, filling
                 * in nulls for the exhausted streams, until all streams are exhausted.
                 */
                var ZipIterator = /** @class */
                    function (_super) {
                        __extends(ZipIterator, _super);
                        function ZipIterator(iterators, mismatchMode) {
                            if (mismatchMode === void 0) {
                                mismatchMode = ZipMismatchMode.FAIL;
                            }
                            var _this = _super.call(this) || this;
                            _this.iterators = iterators;
                            _this.mismatchMode = mismatchMode;
                            _this.count = 0;
                            _this.currentPromise = null;
                            return _this;
                        }
                        ZipIterator.prototype.summary = function () {
                            var upstreamSummaries = 'TODO: fill in upstream of zip summaries';
                            return "{".concat(upstreamSummaries, "} -> Zip");
                        }
                            ;
                        ZipIterator.prototype.nextState = function (afterState) {
                            return __awaiter(this, void 0, void 0, function () {
                                function getNext(container) {
                                    if (container instanceof LazyIterator) {
                                        var result = container.next();
                                        return {
                                            value: result.then(function (x) {
                                                numIterators++;
                                                if (x.done) {
                                                    iteratorsDone++;
                                                }
                                                return x.value;
                                            }),
                                            recurse: false
                                        };
                                    } else {
                                        return {
                                            value: null,
                                            recurse: true
                                        };
                                    }
                                }
                                var numIterators, iteratorsDone, mapped;
                                return __generator(this, function (_a) {
                                    switch (_a.label) {
                                        case 0:
                                            // This chaining ensures that the underlying next() are not even called
                                            // before the previous ones have resolved.
                                            return [4 /*yield*/
                                                , afterState];
                                        case 1:
                                            // This chaining ensures that the underlying next() are not even called
                                            // before the previous ones have resolved.
                                            _a.sent();
                                            numIterators = 0;
                                            iteratorsDone = 0;
                                            return [4 /*yield*/
                                                , deepMapAndAwaitAll(this.iterators, getNext)];
                                        case 2:
                                            mapped = _a.sent();
                                            if (numIterators === iteratorsDone) {
                                                // The streams have all ended.
                                                return [2 /*return*/
                                                    , {
                                                        value: null,
                                                        done: true
                                                    }];
                                            }
                                            if (iteratorsDone > 0) {
                                                switch (this.mismatchMode) {
                                                    case ZipMismatchMode.FAIL:
                                                        throw new Error('Zipped streams should have the same length. ' + "Mismatched at element ".concat(this.count, "."));
                                                    case ZipMismatchMode.SHORTEST:
                                                        return [2 /*return*/
                                                            , {
                                                                value: null,
                                                                done: true
                                                            }];
                                                    case ZipMismatchMode.LONGEST:
                                                    // Continue.  The exhausted streams already produced value: null.
                                                }
                                            }

                                            this.count++;
                                            return [2 /*return*/
                                                , {
                                                    value: mapped,
                                                    done: false
                                                }];
                                    }
                                });
                            });
                        }
                            ;
                        ZipIterator.prototype.next = function () {
                            return __awaiter(this, void 0, void 0, function () {
                                return __generator(this, function (_a) {
                                    this.currentPromise = this.nextState(this.currentPromise);
                                    return [2 /*return*/
                                        , this.currentPromise];
                                });
                            });
                        }
                            ;
                        return ZipIterator;
                    }(LazyIterator);
                // Iterators that maintain a ring buffer of pending promises
                // ============================================================================
                /**
                 * A stream that prefetches a given number of items from an upstream source,
                 * returning them in FIFO order.
                 *
                 * Note this prefetches Promises, but makes no guarantees about when those
                 * Promises resolve.
                 */
                var PrefetchIterator = /** @class */
                    function (_super) {
                        __extends(PrefetchIterator, _super);
                        function PrefetchIterator(upstream, bufferSize) {
                            var _this = _super.call(this) || this;
                            _this.upstream = upstream;
                            _this.bufferSize = bufferSize;
                            _this.buffer = new RingBuffer(bufferSize);
                            return _this;
                        }
                        PrefetchIterator.prototype.summary = function () {
                            return "".concat(this.upstream.summary(), " -> Prefetch");
                        }
                            ;
                        /**
                         * Refill the prefetch buffer.  Returns only after the buffer is full, or
                         * the upstream source is exhausted.
                         */
                        PrefetchIterator.prototype.refill = function () {
                            while (!this.buffer.isFull()) {
                                var v = this.upstream.next();
                                this.buffer.push(v);
                            }
                        }
                            ;
                        PrefetchIterator.prototype.next = function () {
                            this.refill();
                            // This shift will never throw an error because the buffer is always
                            // full after a refill. If the stream is exhausted, the buffer will be
                            // full of Promises that will resolve to the end-of-stream signal.
                            return this.buffer.shift();
                        }
                            ;
                        return PrefetchIterator;
                    }(LazyIterator);
                /**
                 * A stream that performs a sliding-window random shuffle on an upstream
                 * source. This is like a `PrefetchIterator` except that the items are
                 * returned in randomized order.  Mixing naturally improves as the buffer
                 * size increases.
                 */
                var ShuffleIterator = /** @class */
                    function (_super) {
                        __extends(ShuffleIterator, _super);
                        function ShuffleIterator(upstream, windowSize, seed) {
                            var _this = _super.call(this, upstream, windowSize) || this;
                            _this.upstream = upstream;
                            _this.windowSize = windowSize;
                            // Local state that should not be clobbered by out-of-order execution.
                            _this.upstreamExhausted = false;
                            _this.random = seedrandom.alea(seed || tf__namespace.util.now().toString());
                            _this.lastRead = Promise.resolve({
                                value: null,
                                done: false
                            });
                            return _this;
                        }
                        ShuffleIterator.prototype.next = function () {
                            return __awaiter(this, void 0, void 0, function () {
                                var _this = this;
                                return __generator(this, function (_a) {
                                    // This sets this.lastRead to a new Promise right away, as opposed to
                                    // saying `await this.lastRead; this.lastRead = this.serialNext();` which
                                    // would not work because this.nextRead would be updated only after the
                                    // promise resolves.
                                    this.lastRead = this.lastRead.then(function () {
                                        return _this.serialNext();
                                    });
                                    return [2 /*return*/
                                        , this.lastRead];
                                });
                            });
                        }
                            ;
                        ShuffleIterator.prototype.randomInt = function (max) {
                            return Math.floor(this.random() * max);
                        }
                            ;
                        ShuffleIterator.prototype.chooseIndex = function () {
                            return this.randomInt(this.buffer.length());
                        }
                            ;
                        ShuffleIterator.prototype.serialNext = function () {
                            return __awaiter(this, void 0, void 0, function () {
                                var chosenIndex, result;
                                return __generator(this, function (_a) {
                                    switch (_a.label) {
                                        case 0:
                                            // TODO(soergel): consider performance
                                            if (!this.upstreamExhausted) {
                                                this.refill();
                                            }
                                            _a.label = 1;
                                        case 1:
                                            if (!!this.buffer.isEmpty())
                                                return [3 /*break*/
                                                    , 3];
                                            chosenIndex = this.chooseIndex();
                                            return [4 /*yield*/
                                                , this.buffer.shuffleExcise(chosenIndex)];
                                        case 2:
                                            result = _a.sent();
                                            if (result.done) {
                                                this.upstreamExhausted = true;
                                            } else {
                                                this.refill();
                                                return [2 /*return*/
                                                    , result];
                                            }
                                            return [3 /*break*/
                                                , 1];
                                        case 3:
                                            return [2 /*return*/
                                                , {
                                                    value: null,
                                                    done: true
                                                }];
                                    }
                                });
                            });
                        }
                            ;
                        return ShuffleIterator;
                    }(PrefetchIterator);

                // TODO(soergel): consider vectorized operations within the pipeline.
                /**
                 * Represents a potentially large list of independent data elements (typically
                 * 'samples' or 'examples').
                 *
                 * A 'data example' may be a primitive, an array, a map from string keys to
                 * values, or any nested structure of these.
                 *
                 * A `Dataset` represents an ordered collection of elements, together with a
                 * chain of transformations to be performed on those elements. Each
                 * transformation is a method of `Dataset` that returns another `Dataset`, so
                 * these may be chained, e.g.
                 * `const processedDataset = rawDataset.filter(...).map(...).batch(...)`.
                 *
                 * Data loading and transformation is done in a lazy, streaming fashion.  The
                 * dataset may be iterated over multiple times; each iteration starts the data
                 * loading anew and recapitulates the transformations.
                 *
                 * A `Dataset` is typically processed as a stream of unbatched examples -- i.e.,
                 * its transformations are applied one example at a time. Batching produces a
                 * new `Dataset` where each element is a batch. Batching should usually come
                 * last in a pipeline, because data transformations are easier to express on a
                 * per-example basis than on a per-batch basis.
                 *
                 * The following code examples are calling `await dataset.forEachAsync(...)` to
                 * iterate once over the entire dataset in order to print out the data.
                 *
                 * @doc {heading: 'Data', subheading: 'Classes', namespace: 'data'}
                 */
                var Dataset = /** @class */
                    function () {
                        function Dataset() {
                            this.size = null;
                        }
                        // TODO(soergel): Make Datasets report whether repeated iterator() calls
                        // produce the same result (e.g., reading from a file) or different results
                        // (e.g., from the webcam).  Currently we don't make this distinction but it
                        // could be important for the user to know.
                        // abstract isDeterministic(): boolean;
                        /**
                         * Groups elements into batches.
                         *
                         * It is assumed that each of the incoming dataset elements has the same
                         * structure -- i.e. the same set of keys at each location in an object
                         * hierarchy.  For each key, the resulting `Dataset` provides a batched
                         * element collecting all of the incoming values for that key.
                         *
                         *  * Incoming primitives are grouped into a 1-D Tensor.
                         *  * Incoming Tensors are grouped into a new Tensor where the 0th axis is
                         *    the batch dimension.
                         *  * Incoming arrays are converted to Tensor and then batched.
                         *  * A nested array is interpreted as an n-D Tensor, so the batched result
                         *    has n+1 dimensions.
                         *  * An array that cannot be converted to Tensor produces an error.
                         *
                         * If an array should not be batched as a unit, it should first be converted
                         * to an object with integer keys.
                         *
                         * Here are a few examples:
                         *
                         * Batch a dataset of numbers:
                         * ```js
                         * const a = tf.data.array([1, 2, 3, 4, 5, 6, 7, 8]).batch(4);
                         * await a.forEachAsync(e => e.print());
                         * ```
                         *
                         * Batch a dataset of arrays:
                         * ```js
                         * const b = tf.data.array([[1], [2], [3], [4], [5], [6], [7], [8]]).batch(4);
                         * await b.forEachAsync(e => e.print());
                         * ```
                         *
                         * Batch a dataset of objects:
                         * ```js
                         * const c = tf.data.array([{a: 1, b: 11}, {a: 2, b: 12}, {a: 3, b: 13},
                         *   {a: 4, b: 14}, {a: 5, b: 15}, {a: 6, b: 16}, {a: 7, b: 17},
                         *   {a: 8, b: 18}]).batch(4);
                         * await c.forEachAsync(e => {
                         *   console.log('{');
                         *   for(var key in e) {
                         *     console.log(key+':');
                         *     e[key].print();
                         *   }
                         *   console.log('}');
                         * })
                         * ```
                         *
                         * @param batchSize The number of elements desired per batch.
                         * @param smallLastBatch Whether to emit the final batch when it has fewer
                         *   than batchSize elements. Default true.
                         * @returns A `Dataset`, from which a stream of batches can be obtained.
                         *
                         * @doc {heading: 'Data', subheading: 'Classes'}
                         */
                        Dataset.prototype.batch = function (batchSize, smallLastBatch) {
                            var _this = this;
                            if (smallLastBatch === void 0) {
                                smallLastBatch = true;
                            }
                            var base = this;
                            tf__namespace.util.assert(batchSize > 0, function () {
                                return "batchSize needs to be positive, but it is\n      ".concat(batchSize);
                            });
                            var size;
                            if (this.size === Infinity || this.size == null) {
                                // If the size of this dataset is infinity or null, the new size keeps the
                                // same.
                                size = this.size;
                            } else if (smallLastBatch) {
                                // If the size of this dataset is known and include small last batch, the
                                // new size is full batch count plus last batch.
                                size = Math.ceil(this.size / batchSize);
                            } else {
                                // If the size of this dataset is known and not include small last batch,
                                // the new size is full batch count.
                                size = Math.floor(this.size / batchSize);
                            }
                            return datasetFromIteratorFn(function () {
                                return __awaiter(_this, void 0, void 0, function () {
                                    return __generator(this, function (_a) {
                                        switch (_a.label) {
                                            case 0:
                                                return [4 /*yield*/
                                                    , base.iterator()];
                                            case 1:
                                                return [2 /*return*/
                                                    , _a.sent().columnMajorBatch(batchSize, smallLastBatch, deepBatchConcat)];
                                        }
                                    });
                                });
                            }, size);
                        }
                            ;
                        /**
                         * Concatenates this `Dataset` with another.
                         *
                         * ```js
                         * const a = tf.data.array([1, 2, 3]);
                         * const b = tf.data.array([4, 5, 6]);
                         * const c = a.concatenate(b);
                         * await c.forEachAsync(e => console.log(e));
                         * ```
                         *
                         * @param dataset A `Dataset` to be concatenated onto this one.
                         * @returns A `Dataset`.
                         *
                         * @doc {heading: 'Data', subheading: 'Classes'}
                         */
                        Dataset.prototype.concatenate = function (dataset) {
                            var _this = this;
                            var base = this;
                            var size;
                            if (this.size === Infinity || dataset.size === Infinity) {
                                // If the size of any of these two dataset is infinity, new size is
                                // infinity.
                                size = Infinity;
                            } else if (this.size != null && dataset.size != null) {
                                // If the size of both datasets are known and not infinity, new size is
                                // sum the size of these two datasets.
                                size = this.size + dataset.size;
                            } else {
                                // If neither of these two datasets has infinite size and any of these two
                                // datasets' size is null, the new size is null.
                                size = null;
                            }
                            return datasetFromIteratorFn(function () {
                                return __awaiter(_this, void 0, void 0, function () {
                                    var _a, _b;
                                    return __generator(this, function (_c) {
                                        switch (_c.label) {
                                            case 0:
                                                return [4 /*yield*/
                                                    , base.iterator()];
                                            case 1:
                                                _b = (_a = _c.sent()).concatenate;
                                                return [4 /*yield*/
                                                    , dataset.iterator()];
                                            case 2:
                                                return [2 /*return*/
                                                    , _b.apply(_a, [_c.sent()])];
                                        }
                                    });
                                });
                            }, size);
                        }
                            ;
                        /**
                         * Filters this dataset according to `predicate`.
                         *
                         * ```js
                         * const a = tf.data.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
                         *   .filter(x => x%2 === 0);
                         * await a.forEachAsync(e => console.log(e));
                         * ```
                         *
                         * @param predicate A function mapping a dataset element to a boolean or a
                         * `Promise` for one.
                         *
                         * @returns A `Dataset` of elements for which the predicate was true.
                         *
                         * @doc {heading: 'Data', subheading: 'Classes'}
                         */
                        Dataset.prototype.filter = function (predicate) {
                            var _this = this;
                            var base = this;
                            var size;
                            if (this.size === Infinity) {
                                // If the size of this dataset is infinity, new size is infinity
                                size = Infinity;
                            } else {
                                // If this dataset has limited elements, new size is null because it might
                                // exhausted randomly.
                                size = null;
                            }
                            return datasetFromIteratorFn(function () {
                                return __awaiter(_this, void 0, void 0, function () {
                                    return __generator(this, function (_a) {
                                        switch (_a.label) {
                                            case 0:
                                                return [4 /*yield*/
                                                    , base.iterator()];
                                            case 1:
                                                return [2 /*return*/
                                                    , _a.sent().filter(function (x) {
                                                        return tf__namespace.tidy(function () {
                                                            return predicate(x);
                                                        });
                                                    })];
                                        }
                                    });
                                });
                            }, size);
                        }
                            ;
                        /**
                         * Apply a function to every element of the dataset.
                         *
                         * After the function is applied to a dataset element, any Tensors contained
                         * within that element are disposed.
                         *
                         * ```js
                         * const a = tf.data.array([1, 2, 3]);
                         * await a.forEachAsync(e => console.log(e));
                         * ```
                         *
                         * @param f A function to apply to each dataset element.
                         * @returns A `Promise` that resolves after all elements have been processed.
                         *
                         * @doc {heading: 'Data', subheading: 'Classes'}
                         */
                        Dataset.prototype.forEachAsync = function (f) {
                            return __awaiter(this, void 0, void 0, function () {
                                return __generator(this, function (_a) {
                                    switch (_a.label) {
                                        case 0:
                                            return [4 /*yield*/
                                                , this.iterator()];
                                        case 1:
                                            return [2 /*return*/
                                                , _a.sent().forEachAsync(f)];
                                    }
                                });
                            });
                        }
                            ;
                        /**
                         * Maps this dataset through a 1-to-1 transform.
                         *
                         * ```js
                         * const a = tf.data.array([1, 2, 3]).map(x => x*x);
                         * await a.forEachAsync(e => console.log(e));
                         * ```
                         *
                         * @param transform A function mapping a dataset element to a transformed
                         *   dataset element.
                         *
                         * @returns A `Dataset` of transformed elements.
                         *
                         * @doc {heading: 'Data', subheading: 'Classes'}
                         */
                        Dataset.prototype.map = function (transform) {
                            var _this = this;
                            var base = this;
                            return datasetFromIteratorFn(function () {
                                return __awaiter(_this, void 0, void 0, function () {
                                    return __generator(this, function (_a) {
                                        switch (_a.label) {
                                            case 0:
                                                return [4 /*yield*/
                                                    , base.iterator()];
                                            case 1:
                                                return [2 /*return*/
                                                    , _a.sent().map(function (x) {
                                                        return tf__namespace.tidy(function () {
                                                            return transform(x);
                                                        });
                                                    })];
                                        }
                                    });
                                });
                            }, this.size);
                        }
                            ;
                        /**
                         * Maps this dataset through an async 1-to-1 transform.
                         *
                         * ```js
                         * const a =
                         *  tf.data.array([1, 2, 3]).mapAsync(x => new Promise(function(resolve){
                         *    setTimeout(() => {
                         *      resolve(x * x);
                         *    }, Math.random()*1000 + 500);
                         *  }));
                         * console.log(await a.toArray());
                         * ```
                         *
                         * @param transform A function mapping a dataset element to a `Promise` for a
                         *   transformed dataset element.  This transform is responsible for disposing
                         *   any intermediate `Tensor`s, i.e. by wrapping its computation in
                         *   `tf.tidy()`; that cannot be automated here (as it is in the synchronous
                         *   `map()` case).
                         *
                         * @returns A `Dataset` of transformed elements.
                         *
                         * @doc {heading: 'Data', subheading: 'Classes'}
                         */
                        Dataset.prototype.mapAsync = function (transform) {
                            var _this = this;
                            var base = this;
                            return datasetFromIteratorFn(function () {
                                return __awaiter(_this, void 0, void 0, function () {
                                    return __generator(this, function (_a) {
                                        switch (_a.label) {
                                            case 0:
                                                return [4 /*yield*/
                                                    , base.iterator()];
                                            case 1:
                                                return [2 /*return*/
                                                    , _a.sent().mapAsync(transform)];
                                        }
                                    });
                                });
                            }, this.size);
                        }
                            ;
                        /**
                         *  Creates a `Dataset` that prefetches elements from this dataset.
                         *
                         * @param bufferSize: An integer specifying the number of elements to be
                         *   prefetched.
                         * @returns A `Dataset`.
                         *
                         * @doc {heading: 'Data', subheading: 'Classes'}
                         */
                        Dataset.prototype.prefetch = function (bufferSize) {
                            var _this = this;
                            if (bufferSize == null) {
                                throw new RangeError('`Dataset.prefetch()` requires bufferSize to be specified.');
                            }
                            var base = this;
                            return datasetFromIteratorFn(function () {
                                return __awaiter(_this, void 0, void 0, function () {
                                    return __generator(this, function (_a) {
                                        switch (_a.label) {
                                            case 0:
                                                return [4 /*yield*/
                                                    , base.iterator()];
                                            case 1:
                                                return [2 /*return*/
                                                    , _a.sent().prefetch(bufferSize)];
                                        }
                                    });
                                });
                            }, this.size);
                        }
                            ;
                        /**
                         * Repeats this dataset `count` times.
                         *
                         * NOTE: If this dataset is a function of global state (e.g. a random number
                         * generator), then different repetitions may produce different elements.
                         *
                         * ```js
                         * const a = tf.data.array([1, 2, 3]).repeat(3);
                         * await a.forEachAsync(e => console.log(e));
                         * ```
                         *
                         * @param count: (Optional) An integer, representing the number of times
                         *   the dataset should be repeated. The default behavior (if `count` is
                         *   `undefined` or negative) is for the dataset be repeated indefinitely.
                         * @returns A `Dataset`.
                         *
                         * @doc {heading: 'Data', subheading: 'Classes'}
                         */
                        Dataset.prototype.repeat = function (count) {
                            var _this = this;
                            var base = this;
                            var size;
                            if (this.size != null && count > 0) {
                                // If this dataset has size and count is positive, new size is current
                                // size multiply count. This also covers the case that current size is
                                // infinity.
                                size = this.size * count;
                            } else if (count === 0) {
                                // If count is 0, new size is 0.
                                size = 0;
                            } else if (this.size != null && (count === undefined || count < 0)) {
                                // If this dataset has size and count is undefined or negative, the
                                // dataset will be repeated indefinitely and new size is infinity.
                                size = Infinity;
                            } else {
                                // If the size of this dataset is null, the new dataset's size is null.
                                size = null;
                            }
                            return datasetFromIteratorFn(function () {
                                return __awaiter(_this, void 0, void 0, function () {
                                    var iteratorIterator;
                                    var _this = this;
                                    return __generator(this, function (_a) {
                                        iteratorIterator = iteratorFromFunction(function () {
                                            return __awaiter(_this, void 0, void 0, function () {
                                                var _a;
                                                return __generator(this, function (_b) {
                                                    switch (_b.label) {
                                                        case 0:
                                                            _a = {};
                                                            return [4 /*yield*/
                                                                , base.iterator()];
                                                        case 1:
                                                            return [2 /*return*/
                                                                , (_a.value = _b.sent(),
                                                                    _a.done = false,
                                                                    _a)];
                                                    }
                                                });
                                            });
                                        });
                                        return [2 /*return*/
                                            , iteratorFromConcatenated(iteratorIterator.take(count))];
                                    });
                                });
                            }, size);
                        }
                            ;
                        /**
                         * Creates a `Dataset` that skips `count` initial elements from this dataset.
                         *
                         * ```js
                         * const a = tf.data.array([1, 2, 3, 4, 5, 6]).skip(3);
                         * await a.forEachAsync(e => console.log(e));
                         * ```
                         *
                         * @param count: The number of elements of this dataset that should be skipped
                         *   to form the new dataset.  If `count` is greater than the size of this
                         *   dataset, the new dataset will contain no elements.  If `count`
                         *   is `undefined` or negative, skips the entire dataset.
                         *
                         * @returns A `Dataset`.
                         *
                         * @doc {heading: 'Data', subheading: 'Classes'}
                         */
                        Dataset.prototype.skip = function (count) {
                            var _this = this;
                            var base = this;
                            var size;
                            if (this.size != null && count >= 0 && this.size >= count) {
                                // If the size of this dataset is greater than count, the new dataset's
                                // size is current size minus skipped size.This also covers the case that
                                // current size is infinity.
                                size = this.size - count;
                            } else if (this.size != null && (this.size < count || count === undefined || count < 0)) {
                                // If the size of this dataset is smaller than count, or count is
                                // undefined or negative, skips the entire dataset and the new size is 0.
                                size = 0;
                            } else {
                                // If the size of this dataset is null, the new dataset's size is null.
                                size = null;
                            }
                            return datasetFromIteratorFn(function () {
                                return __awaiter(_this, void 0, void 0, function () {
                                    return __generator(this, function (_a) {
                                        switch (_a.label) {
                                            case 0:
                                                return [4 /*yield*/
                                                    , base.iterator()];
                                            case 1:
                                                return [2 /*return*/
                                                    , _a.sent().skip(count)];
                                        }
                                    });
                                });
                            }, size);
                        }
                            ;
                        /**
                         * Pseudorandomly shuffles the elements of this dataset. This is done in a
                         * streaming manner, by sampling from a given number of prefetched elements.
                         *
                         * ```js
                         * const a = tf.data.array([1, 2, 3, 4, 5, 6]).shuffle(3);
                         * await a.forEachAsync(e => console.log(e));
                         * ```
                         *
                         * @param bufferSize: An integer specifying the number of elements from this
                         *   dataset from which the new dataset will sample.
                         * @param seed: (Optional) An integer specifying the random seed that will
                         *   be used to create the distribution.
                         * @param reshuffleEachIteration: (Optional) A boolean, which if true
                         *   indicates that the dataset should be pseudorandomly reshuffled each time
                         *   it is iterated over. If false, elements will be returned in the same
                         *   shuffled order on each iteration. (Defaults to `true`.)
                         * @returns A `Dataset`.
                         *
                         * @doc {heading: 'Data', subheading: 'Classes'}
                         */
                        Dataset.prototype.shuffle = function (bufferSize, seed, reshuffleEachIteration) {
                            var _this = this;
                            if (reshuffleEachIteration === void 0) {
                                reshuffleEachIteration = true;
                            }
                            if (bufferSize == null || bufferSize < 0) {
                                if (this.size == null) {
                                    throw new RangeError('`Dataset.shuffle()` requires bufferSize to be specified.');
                                } else {
                                    throw new RangeError('`Dataset.shuffle()` requires bufferSize to be specified.  ' + 'If your data fits in main memory (for regular JS objects), ' + 'and/or GPU memory (for `tf.Tensor`s), consider setting ' + "bufferSize to the dataset size (".concat(this.size, " elements)"));
                                }
                            }
                            var base = this;
                            var random = seedrandom.alea(seed || tf__namespace.util.now().toString());
                            return datasetFromIteratorFn(function () {
                                return __awaiter(_this, void 0, void 0, function () {
                                    var seed2;
                                    return __generator(this, function (_a) {
                                        switch (_a.label) {
                                            case 0:
                                                seed2 = random.int32();
                                                if (reshuffleEachIteration) {
                                                    seed2 += random.int32();
                                                }
                                                return [4 /*yield*/
                                                    , base.iterator()];
                                            case 1:
                                                return [2 /*return*/
                                                    , _a.sent().shuffle(bufferSize, seed2.toString())];
                                        }
                                    });
                                });
                            }, this.size);
                        }
                            ;
                        /**
                         * Creates a `Dataset` with at most `count` initial elements from this
                         * dataset.
                         *
                         * ```js
                         * const a = tf.data.array([1, 2, 3, 4, 5, 6]).take(3);
                         * await a.forEachAsync(e => console.log(e));
                         * ```
                         *
                         * @param count: The number of elements of this dataset that should be taken
                         *   to form the new dataset.  If `count` is `undefined` or negative, or if
                         *   `count` is greater than the size of this dataset, the new dataset will
                         *   contain all elements of this dataset.
                         * @returns A `Dataset`.
                         *
                         * @doc {heading: 'Data', subheading: 'Classes'}
                         */
                        Dataset.prototype.take = function (count) {
                            var _this = this;
                            var base = this;
                            var size;
                            if (this.size != null && this.size > count) {
                                // If the size of this dataset is greater than count, the new dataset's
                                // size is count.
                                size = count;
                            } else if (this.size != null && this.size <= count) {
                                // If the size of this dataset is equal or smaller than count, the new
                                // dataset's size is the size of this dataset.
                                size = this.size;
                            } else {
                                // If the size of this dataset is null, the new dataset's size is null.
                                size = null;
                            }
                            return datasetFromIteratorFn(function () {
                                return __awaiter(_this, void 0, void 0, function () {
                                    return __generator(this, function (_a) {
                                        switch (_a.label) {
                                            case 0:
                                                return [4 /*yield*/
                                                    , base.iterator()];
                                            case 1:
                                                return [2 /*return*/
                                                    , _a.sent().take(count)];
                                        }
                                    });
                                });
                            }, size);
                        }
                            ;
                        /**
                         * Collect all elements of this dataset into an array.
                         *
                         * Obviously this will succeed only for small datasets that fit in memory.
                         * Useful for testing and generally should be avoided if possible.
                         *
                         * ```js
                         * const a = tf.data.array([1, 2, 3, 4, 5, 6]);
                         * console.log(await a.toArray());
                         * ```
                         *
                         * @returns A Promise for an array of elements, which will resolve
                         *   when a new stream has been obtained and fully consumed.
                         *
                         * @doc {heading: 'Data', subheading: 'Classes'}
                         */
                        Dataset.prototype.toArray = function () {
                            return __awaiter(this, void 0, void 0, function () {
                                return __generator(this, function (_a) {
                                    switch (_a.label) {
                                        case 0:
                                            if (this.size === Infinity) {
                                                throw new Error('Can not convert infinite data stream to array.');
                                            }
                                            return [4 /*yield*/
                                                , this.iterator()];
                                        case 1:
                                            return [2 /*return*/
                                                , _a.sent().toArray()];
                                    }
                                });
                            });
                        }
                            ;
                        /**
                         * Collect all elements of this dataset into an array with prefetching 100
                         * elements. This is useful for testing, because the prefetch changes the
                         * order in which the Promises are resolved along the processing pipeline.
                         * This may help expose bugs where results are dependent on the order of
                         * Promise resolution rather than on the logical order of the stream (i.e.,
                         * due to hidden mutable state).
                         *
                         * @returns A Promise for an array of elements, which will resolve
                         *   when a new stream has been obtained and fully consumed.
                         */
                        Dataset.prototype.toArrayForTest = function () {
                            return __awaiter(this, void 0, void 0, function () {
                                return __generator(this, function (_a) {
                                    switch (_a.label) {
                                        case 0:
                                            if (this.size === Infinity) {
                                                throw new Error('Can not convert infinite data stream to array.');
                                            }
                                            return [4 /*yield*/
                                                , this.iterator()];
                                        case 1:
                                            return [2 /*return*/
                                                , _a.sent().toArrayForTest()];
                                    }
                                });
                            });
                        }
                            ;
                        return Dataset;
                    }();
                // TODO(soergel): deep sharded shuffle, where supported
                Dataset.MAX_BUFFER_SIZE = 10000;
                /**
                 * Create a `Dataset` defined by a provided iterator() function.
                 *
                 * ```js
                 * let i = -1;
                 * const func = () =>
                 *    ++i < 5 ? {value: i, done: false} : {value: null, done: true};
                 * const iter = tf.data.iteratorFromFunction(func);
                 * const ds = tf.data.datasetFromIteratorFn(iter);
                 * await ds.forEachAsync(e => console.log(e));
                 * ```
                 */
                function datasetFromIteratorFn(iteratorFn, size) {
                    if (size === void 0) {
                        size = null;
                    }
                    return new (/** @class */
                        function (_super) {
                            __extends(class_1, _super);
                            function class_1() {
                                var _this = _super.apply(this, __spreadArray([], __read(arguments), false)) || this;
                                _this.size = size;
                                return _this;
                            }
                            /*
                             * Provide a new stream of elements.  Note this will also start new streams
                             * from any underlying `Dataset`s.
                             */
                            class_1.prototype.iterator = function () {
                                return __awaiter(this, void 0, void 0, function () {
                                    return __generator(this, function (_a) {
                                        return [2 /*return*/
                                            , iteratorFn()];
                                    });
                                });
                            }
                                ;
                            return class_1;
                        }(Dataset))();
                }
                /**
                 * Create a `Dataset` from an array of elements.
                 *
                 * Create a Dataset from an array of objects:
                 * ```js
                 * const a = tf.data.array([{'item': 1}, {'item': 2}, {'item': 3}]);
                 * await a.forEachAsync(e => console.log(e));
                 * ```
                 *
                 * Create a Dataset from an array of numbers:
                 * ```js
                 * const a = tf.data.array([4, 5, 6]);
                 * await a.forEachAsync(e => console.log(e));
                 * ```
                 * @param items An array of elements that will be parsed as items in a dataset.
                 *
                 * @doc {heading: 'Data', subheading: 'Creation', namespace: 'data'}
                 */
                function array(items) {
                    var _this = this;
                    return datasetFromIteratorFn(function () {
                        return __awaiter(_this, void 0, void 0, function () {
                            return __generator(this, function (_a) {
                                return [2 /*return*/
                                    , iteratorFromItems(items)];
                            });
                        });
                    }, items.length);
                }
                /**
                 * Create a `Dataset` by zipping together an array, dict, or nested
                 * structure of `Dataset`s (and perhaps additional constants).
                 * The underlying datasets must provide elements in a consistent order such that
                 * they correspond.
                 *
                 * The number of elements in the resulting dataset is the same as the size of
                 * the smallest dataset in datasets.
                 *
                 * The nested structure of the `datasets` argument determines the
                 * structure of elements in the resulting iterator.
                 *
                 * Note this means that, given an array of two datasets that produce dict
                 * elements, the result is a dataset that produces elements that are arrays
                 * of two dicts:
                 *
                 * Zip an array of datasets:
                 * ```js
                 * console.log('Zip two datasets of objects:');
                 * const ds1 = tf.data.array([{a: 1}, {a: 2}, {a: 3}]);
                 * const ds2 = tf.data.array([{b: 4}, {b: 5}, {b: 6}]);
                 * const ds3 = tf.data.zip([ds1, ds2]);
                 * await ds3.forEachAsync(e => console.log(JSON.stringify(e)));
                 *
                 * // If the goal is to merge the dicts in order to produce elements like
                 * // {a: ..., b: ...}, this requires a second step such as:
                 * console.log('Merge the objects:');
                 * const ds4 = ds3.map(x => {return {a: x[0].a, b: x[1].b}});
                 * await ds4.forEachAsync(e => console.log(e));
                 * ```
                 *
                 * Zip a dict of datasets:
                 * ```js
                 * const a = tf.data.array([{a: 1}, {a: 2}, {a: 3}]);
                 * const b = tf.data.array([{b: 4}, {b: 5}, {b: 6}]);
                 * const c = tf.data.zip({c: a, d: b});
                 * await c.forEachAsync(e => console.log(JSON.stringify(e)));
                 * ```
                 *
                 * @doc {heading: 'Data', subheading: 'Operations', namespace: 'data'}
                 */
                function zip(datasets) {
                    var _this = this;
                    // manually type-check the argument for JS users
                    if (!isIterable(datasets)) {
                        throw new Error('The argument to zip() must be an object or array.');
                    }
                    var size;
                    if (Array.isArray(datasets)) {
                        for (var i = 0; i < datasets.length; i++) {
                            size = size == null ? datasets[i].size : Math.min(size, datasets[i].size);
                        }
                    } else if (datasets instanceof Object) {
                        for (var ds in datasets) {
                            size = size == null ? datasets[ds].size : Math.min(size, datasets[ds].size);
                        }
                    }
                    return datasetFromIteratorFn(function () {
                        return __awaiter(_this, void 0, void 0, function () {
                            var streams;
                            return __generator(this, function (_a) {
                                switch (_a.label) {
                                    case 0:
                                        return [4 /*yield*/
                                            , deepMapAndAwaitAll(datasets, function (d) {
                                                if (d instanceof Dataset) {
                                                    return {
                                                        value: d.iterator(),
                                                        recurse: false
                                                    };
                                                } else if (isIterable(d)) {
                                                    return {
                                                        value: null,
                                                        recurse: true
                                                    };
                                                } else {
                                                    throw new Error('Leaves of the structure passed to zip() must be Datasets, ' + 'not primitives.');
                                                }
                                            })];
                                    case 1:
                                        streams = _a.sent();
                                        return [2 /*return*/
                                            , iteratorFromZipped(streams, ZipMismatchMode.SHORTEST)];
                                }
                            });
                        });
                    }, size);
                }
                /**
                 * A zip function for use with deepZip, passed via the columnMajorBatch call.
                 *
                 * Accepts an array of identically-structured nested elements and either batches
                 * them (if they are primitives, numeric arrays, or Tensors) or requests
                 * recursion (if not).
                 */
                // tslint:disable-next-line:no-any
                function deepBatchConcat(rows) {
                    if (rows === null) {
                        return null;
                    }
                    // use the first item to decide whether to recurse or batch here.
                    var exampleRow = rows[0];
                    if (canTensorify(exampleRow)) {
                        // rows is an array of primitives, Tensors, or arrays.  Batch them.
                        var value = batchConcat(rows);
                        return {
                            value: value,
                            recurse: false
                        };
                    }
                    // the example row is an object, so recurse into it.
                    return {
                        value: null,
                        recurse: true
                    };
                }
                /**
                 * Assembles a list of same-shaped numbers, number arrays, or Tensors
                 * into a single new Tensor where axis 0 is the batch dimension.
                 */
                function batchConcat(arrays) {
                    if (arrays.length === 0) {
                        // We can't return an empty Tensor because we don't know the element shape.
                        throw new Error('Can\'t make a batch of zero elements.');
                    }
                    if (arrays[0] instanceof tf__namespace.Tensor) {
                        // Input is an array of Tensors
                        return tf__namespace.stack(arrays);
                    } else {
                        // Input is a possibly-nested array of numbers.
                        return tf__namespace.tensor(arrays);
                    }
                }

                /**
                 * Represents a potentially large collection of text lines.
                 *
                 * The results are not batched.
                 */
                var TextLineDataset = /** @class */
                    function (_super) {
                        __extends(TextLineDataset, _super);
                        /**
                         * Create a `TextLineDataset`.
                         *
                         * @param input A `DataSource` providing a chunked, UTF8-encoded byte stream.
                         */
                        function TextLineDataset(input) {
                            var _this = _super.call(this) || this;
                            _this.input = input;
                            return _this;
                        }
                        TextLineDataset.prototype.iterator = function () {
                            return __awaiter(this, void 0, void 0, function () {
                                var inputIterator, utf8Iterator, lineIterator;
                                return __generator(this, function (_a) {
                                    switch (_a.label) {
                                        case 0:
                                            return [4 /*yield*/
                                                , this.input.iterator()];
                                        case 1:
                                            inputIterator = _a.sent();
                                            utf8Iterator = inputIterator.decodeUTF8();
                                            lineIterator = utf8Iterator.split('\n').map(function (line) {
                                                // Windows/DOS format text file has extra line breaker at the end of line.
                                                if (line.endsWith('\r')) {
                                                    line = line.slice(0, -1);
                                                }
                                                return line;
                                            });
                                            return [2 /*return*/
                                                , lineIterator];
                                    }
                                });
                            });
                        }
                            ;
                        return TextLineDataset;
                    }(Dataset);
                var CODE_QUOTE = '"';
                var STATE_OUT = Symbol('out');
                var STATE_FIELD = Symbol('field');
                var STATE_QUOTE = Symbol('quote');
                var STATE_QUOTE_AFTER_QUOTE = Symbol('quoteafterquote');
                var STATE_WITHIN_QUOTE_IN_QUOTE = Symbol('quoteinquote');
                /**
                 * Represents a potentially large collection of delimited text records.
                 *
                 * The produced `TensorContainer`s each contain one key-value pair for
                 * every column of the table.  When a field is empty in the incoming data, the
                 * resulting value is `undefined`, or throw error if it is required.  Values
                 * that can be parsed as numbers are emitted as type `number`, other values
                 * are parsed as `string`.
                 *
                 * The results are not batched.
                 *
                 * @doc {heading: 'Data', subheading: 'Classes', namespace: 'data'}
                 */
                var CSVDataset = /** @class */
                    function (_super) {
                        __extends(CSVDataset, _super);
                        /**
                         * Create a `CSVDataset`.
                         *
                         * @param input A `DataSource` providing a chunked, UTF8-encoded byte stream.
                         * @param csvConfig (Optional) A CSVConfig object that contains configurations
                         *     of reading and decoding from CSV file(s).
                         *
                         *     hasHeader: (Optional) A boolean value that indicates whether the first
                         *     row of provided CSV file is a header line with column names, and should
                         *     not be included in the data. Defaults to `true`.
                         *
                         *     columnNames: (Optional) A list of strings that corresponds to
                         *     the CSV column names, in order. If provided, it ignores the column
                         *     names inferred from the header row. If not provided, infers the column
                         *     names from the first row of the records. If hasHeader is false and
                         *     columnNames is not provided, this method throws an error.
                         *
                         *     columnConfigs: (Optional) A dictionary whose key is column names, value
                         *     is an object stating if this column is required, column's data type,
                         *     default value, and if this column is label. If provided, keys must
                         *     correspond to names provided in columnNames or inferred from the file
                         *     header lines. If isLabel is true any column, returns an array of two
                         *     items: the first item is a dict of features key/value pairs, the second
                         *     item is a dict of labels key/value pairs. If no feature is marked as
                         *     label, returns a dict of features only.
                         *
                         *     configuredColumnsOnly (Optional) If true, only columns provided in
                         *     columnConfigs will be parsed and provided during iteration.
                         *
                         *     delimiter (Optional) The string used to parse each line of the input
                         *     file. Defaults to `,`.
                         */
                        function CSVDataset(input, csvConfig) {
                            var _this = _super.call(this) || this;
                            _this.input = input;
                            _this.hasHeader = true;
                            _this.fullColumnNames = null;
                            _this.columnNamesValidated = false;
                            _this.columnConfigs = null;
                            _this.configuredColumnsOnly = false;
                            _this.delimiter = ',';
                            _this.delimWhitespace = false;
                            _this.base = new TextLineDataset(input);
                            if (!csvConfig) {
                                csvConfig = {};
                            }
                            _this.hasHeader = csvConfig.hasHeader === false ? false : true;
                            _this.fullColumnNames = csvConfig.columnNames;
                            _this.columnConfigs = csvConfig.columnConfigs;
                            _this.configuredColumnsOnly = csvConfig.configuredColumnsOnly;
                            if (csvConfig.delimWhitespace) {
                                tf.util.assert(csvConfig.delimiter == null, function () {
                                    return 'Delimiter should not be provided when delimWhitespace is true.';
                                });
                                _this.delimWhitespace = true;
                                _this.delimiter = ' ';
                            } else {
                                _this.delimiter = csvConfig.delimiter ? csvConfig.delimiter : ',';
                            }
                            return _this;
                        }
                        /**
                         * Returns column names of the csv dataset. If `configuredColumnsOnly` is
                         * true, return column names in `columnConfigs`. If `configuredColumnsOnly` is
                         * false and `columnNames` is provided, `columnNames`. If
                         * `configuredColumnsOnly` is false and `columnNames` is not provided, return
                         * all column names parsed from the csv file. For example usage please go to
                         * `tf.data.csv`.
                         *
                         * @doc {heading: 'Data', subheading: 'Classes'}
                         */
                        CSVDataset.prototype.columnNames = function () {
                            return __awaiter(this, void 0, void 0, function () {
                                return __generator(this, function (_a) {
                                    switch (_a.label) {
                                        case 0:
                                            if (!!this.columnNamesValidated)
                                                return [3 /*break*/
                                                    , 2];
                                            return [4 /*yield*/
                                                , this.setColumnNames()];
                                        case 1:
                                            _a.sent();
                                            _a.label = 2;
                                        case 2:
                                            return [2 /*return*/
                                                , this.configuredColumnsOnly ? Object.keys(this.columnConfigs) : this.fullColumnNames];
                                    }
                                });
                            });
                        }
                            ;
                        /* 1) If `columnNames` is provided as string[], use this string[] as output
                         * keys in corresponding order. The length must match the number of inferred
                         * columns if `hasHeader` is true .
                         * 2) If `columnNames` is not provided, parse header line as `columnNames` if
                         * hasHeader is true. If `hasHeader` is false, throw an error.
                         * 3) If `columnConfigs` is provided, all the keys in `columnConfigs` must
                         * exist in parsed `columnNames`.
                         */
                        CSVDataset.prototype.setColumnNames = function () {
                            return __awaiter(this, void 0, void 0, function () {
                                var columnNamesFromFile, counts, duplicateNames, _a, _b, key, index;
                                var e_1, _c;
                                var _this = this;
                                return __generator(this, function (_d) {
                                    switch (_d.label) {
                                        case 0:
                                            return [4 /*yield*/
                                                , this.maybeReadHeaderLine()];
                                        case 1:
                                            columnNamesFromFile = _d.sent();
                                            if (!this.fullColumnNames && !columnNamesFromFile) {
                                                // Throw an error if columnNames is not provided and no header line.
                                                throw new Error('Column names must be provided if there is no header line.');
                                            } else if (this.fullColumnNames && columnNamesFromFile) {
                                                // Check provided columnNames match header line.
                                                tf.util.assert(columnNamesFromFile.length === this.fullColumnNames.length, function () {
                                                    return 'The length of provided columnNames (' + _this.fullColumnNames.length.toString() + ') does not match the length of the header line read from ' + 'file (' + columnNamesFromFile.length.toString() + ').';
                                                });
                                            }
                                            if (!this.fullColumnNames) {
                                                this.fullColumnNames = columnNamesFromFile;
                                            }
                                            counts = this.fullColumnNames.reduce(function (countAcc, name) {
                                                countAcc[name] = countAcc[name] + 1 || 1;
                                                return countAcc;
                                            }, {});
                                            duplicateNames = Object.keys(counts).filter(function (name) {
                                                return counts[name] > 1;
                                            });
                                            tf.util.assert(duplicateNames.length === 0, function () {
                                                return 'Duplicate column names found: ' + duplicateNames.toString();
                                            });
                                            // Check if keys in columnConfigs match columnNames.
                                            if (this.columnConfigs) {
                                                try {
                                                    for (_a = __values(Object.keys(this.columnConfigs)),
                                                        _b = _a.next(); !_b.done; _b = _a.next()) {
                                                        key = _b.value;
                                                        index = this.fullColumnNames.indexOf(key);
                                                        if (index === -1) {
                                                            throw new Error('The key "' + key + '" provided in columnConfigs does not match any of the column ' + 'names (' + this.fullColumnNames.toString() + ').');
                                                        }
                                                    }
                                                } catch (e_1_1) {
                                                    e_1 = {
                                                        error: e_1_1
                                                    };
                                                } finally {
                                                    try {
                                                        if (_b && !_b.done && (_c = _a.return))
                                                            _c.call(_a);
                                                    } finally {
                                                        if (e_1)
                                                            throw e_1.error;
                                                    }
                                                }
                                            }
                                            this.columnNamesValidated = true;
                                            return [2 /*return*/
                                            ];
                                    }
                                });
                            });
                        }
                            ;

                        CSVDataset.prototype.maybeReadHeaderLine = function () {
                            return __awaiter(this, void 0, void 0, function () {
                                var iter, firstElement, firstLine, headers;
                                return __generator(this, function (_a) {
                                    switch (_a.label) {
                                        case 0:
                                            if (!this.hasHeader)
                                                return [3 /*break*/
                                                    , 3];
                                            return [4 /*yield*/
                                                , this.base.iterator()];
                                        case 1:
                                            iter = _a.sent();
                                            return [4 /*yield*/
                                                , iter.next()];
                                        case 2:
                                            firstElement = _a.sent();
                                            if (firstElement.done) {
                                                throw new Error('No data was found for CSV parsing.');
                                            }
                                            firstLine = firstElement.value;
                                            headers = this.parseRow(firstLine, false);
                                            return [2 /*return*/
                                                , headers];
                                        case 3:
                                            return [2 /*return*/
                                                , null];
                                    }
                                });
                            });
                        }
                            ;
                        CSVDataset.prototype.iterator = function () {
                            return __awaiter(this, void 0, void 0, function () {
                                var lines;
                                var _this = this;
                                return __generator(this, function (_a) {
                                    switch (_a.label) {
                                        case 0:
                                            if (!!this.columnNamesValidated)
                                                return [3 /*break*/
                                                    , 2];
                                            return [4 /*yield*/
                                                , this.setColumnNames()];
                                        case 1:
                                            _a.sent();
                                            _a.label = 2;
                                        case 2:
                                            return [4 /*yield*/
                                                , this.base.iterator()];
                                        case 3:
                                            lines = _a.sent();
                                            if (this.hasHeader) {
                                                // We previously read the first line to get the columnNames.
                                                // Now that we're providing data, skip it.
                                                lines = lines.skip(1);
                                            }
                                            return [2 /*return*/
                                                , lines.map(function (x) {
                                                    return _this.makeDataElement(x);
                                                })];
                                    }
                                });
                            });
                        }
                            ;
                        CSVDataset.prototype.makeDataElement = function (line) {
                            var values = this.parseRow(line);
                            var features = {};
                            var labels = {};
                            for (var i = 0; i < this.fullColumnNames.length; i++) {
                                var key = this.fullColumnNames[i];
                                var config = this.columnConfigs ? this.columnConfigs[key] : null;
                                if (this.configuredColumnsOnly && !config) {
                                    // This column is not selected.
                                    continue;
                                } else {
                                    var value = values[i];
                                    var parsedValue = null;
                                    if (value === '') {
                                        // If default value is provided, use it. If default value is not
                                        // provided, set as undefined.
                                        if (config && config.default !== undefined) {
                                            parsedValue = config.default;
                                        } else if (config && (config.required || config.isLabel)) {
                                            throw new Error("Required column ".concat(key, " is empty in this line: ").concat(line));
                                        } else {
                                            parsedValue = undefined;
                                        }
                                    } else {
                                        // A value is present, so parse it based on type
                                        var valueAsNum = Number(value);
                                        if (isNaN(valueAsNum)) {
                                            // The value is a string and this column is declared as boolean
                                            // in config, parse it as boolean.
                                            if (config && config.dtype === 'bool') {
                                                parsedValue = this.getBoolean(value);
                                            } else {
                                                // Set value as string
                                                parsedValue = value;
                                            }
                                        } else if (!config || !config.dtype) {
                                            // If this value is a number and no type config is provided, return
                                            // it as number.
                                            parsedValue = valueAsNum;
                                        } else {
                                            // If this value is a number and data type is provided, parse it
                                            // according to provided data type.
                                            switch (config.dtype) {
                                                case 'float32':
                                                    parsedValue = valueAsNum;
                                                    break;
                                                case 'int32':
                                                    parsedValue = Math.floor(valueAsNum);
                                                    break;
                                                case 'bool':
                                                    parsedValue = this.getBoolean(value);
                                                    break;
                                                default:
                                                    parsedValue = valueAsNum;
                                            }
                                        }
                                    }
                                    // Check if this column is label.
                                    config && config.isLabel ? labels[key] = parsedValue : features[key] = parsedValue;
                                }
                            }
                            // If label exists, return an object of features and labels as {xs:features,
                            // ys:labels}, otherwise return features only.
                            if (Object.keys(labels).length === 0) {
                                return features;
                            } else {
                                return {
                                    xs: features,
                                    ys: labels
                                };
                            }
                        }
                            ;
                        CSVDataset.prototype.getBoolean = function (value) {
                            if (value === '1' || value.toLowerCase() === 'true') {
                                return 1;
                            } else {
                                return 0;
                            }
                        }
                            ;
                        // adapted from https://beta.observablehq.com/@mbostock/streaming-csv
                        CSVDataset.prototype.parseRow = function (line, validateElementCount) {
                            if (validateElementCount === void 0) {
                                validateElementCount = true;
                            }
                            var result = [];
                            var readOffset = 0;
                            var readLength = line.length;
                            var currentState = STATE_OUT;
                            // Goes through the line to parse quote.
                            for (var i = 0; i < readLength; i++) {
                                switch (currentState) {
                                    // Before enter a new field
                                    case STATE_OUT:
                                        switch (line.charAt(i)) {
                                            // Enter a quoted field
                                            case CODE_QUOTE:
                                                readOffset = i + 1;
                                                currentState = STATE_QUOTE;
                                                break;
                                            // Read an empty field
                                            case this.delimiter:
                                                readOffset = i + 1;
                                                // If delimiter is white space and configured to collapse
                                                // multiple white spaces, ignore this white space.
                                                if (this.delimiter === ' ' && this.delimWhitespace) {
                                                    break;
                                                }
                                                result.push('');
                                                currentState = STATE_OUT;
                                                break;
                                            // Enter an unquoted field
                                            default:
                                                currentState = STATE_FIELD;
                                                readOffset = i;
                                                break;
                                        }
                                        break;
                                    // In an unquoted field
                                    case STATE_FIELD:
                                        switch (line.charAt(i)) {
                                            // Exit an unquoted field, add it to result
                                            case this.delimiter:
                                                result.push(line.substring(readOffset, i));
                                                currentState = STATE_OUT;
                                                readOffset = i + 1;
                                                break;
                                        }
                                        break;
                                    // In a quoted field
                                    case STATE_QUOTE:
                                        switch (line.charAt(i)) {
                                            // Read a quote after a quote
                                            case CODE_QUOTE:
                                                currentState = STATE_QUOTE_AFTER_QUOTE;
                                                break;
                                        }
                                        break;
                                    // This state means it's right after a second quote in a field
                                    case STATE_QUOTE_AFTER_QUOTE:
                                        switch (line.charAt(i)) {
                                            // Finished a quoted field
                                            case this.delimiter:
                                                result.push(line.substring(readOffset, i - 1));
                                                currentState = STATE_OUT;
                                                readOffset = i + 1;
                                                break;
                                            // Finished a quoted part in a quoted field
                                            case CODE_QUOTE:
                                                currentState = STATE_QUOTE;
                                                break;
                                            // In a quoted part in a quoted field
                                            default:
                                                currentState = STATE_WITHIN_QUOTE_IN_QUOTE;
                                                break;
                                        }
                                        break;
                                    case STATE_WITHIN_QUOTE_IN_QUOTE:
                                        switch (line.charAt(i)) {
                                            // Exit a quoted part in a quoted field
                                            case CODE_QUOTE:
                                                currentState = STATE_QUOTE;
                                                break;
                                        }
                                        break;
                                }
                            }
                            // Adds last item based on if it is quoted.
                            if (currentState === STATE_QUOTE_AFTER_QUOTE) {
                                result.push(line.substring(readOffset, readLength - 1));
                            } else {
                                result.push(line.substring(readOffset));
                            }
                            // Check if each row has the same number of elements as column names.
                            if (validateElementCount && result.length !== this.fullColumnNames.length) {
                                throw new Error("Invalid row in csv file. Should have ".concat(this.fullColumnNames.length, " elements in a row, but got ").concat(result));
                            }
                            return result;
                        }
                            ;
                        return CSVDataset;
                    }(Dataset);
                // TODO(soergel): add more basic datasets for parity with tf.data
                // tf.data.FixedLengthRecordDataset()
                // tf.data.TFRecordDataset()

                /**
                 * Provide a stream of tensors from microphone audio stream. The tensors are
                 * representing audio data as frequency-domain spectrogram generated with
                 * browser's native FFT. Tensors representing time-domain waveform is available
                 * based on configuration. Only works in browser environment.
                 */
                var MicrophoneIterator = /** @class */
                    function (_super) {
                        __extends(MicrophoneIterator, _super);
                        function MicrophoneIterator(microphoneConfig) {
                            var _this = _super.call(this) || this;
                            _this.microphoneConfig = microphoneConfig;
                            _this.isClosed = false;
                            _this.fftSize = microphoneConfig.fftSize || 1024;
                            var fftSizeLog2 = Math.log2(_this.fftSize);
                            if (_this.fftSize < 0 || fftSizeLog2 < 4 || fftSizeLog2 > 14 || !Number.isInteger(fftSizeLog2)) {
                                throw new Error("Invalid fftSize: it must be a power of 2 between " + "2 to 4 and 2 to 14, but got ".concat(_this.fftSize));
                            }
                            _this.numFrames = microphoneConfig.numFramesPerSpectrogram || 43;
                            _this.sampleRateHz = microphoneConfig.sampleRateHz;
                            _this.columnTruncateLength = microphoneConfig.columnTruncateLength || _this.fftSize;
                            _this.audioTrackConstraints = microphoneConfig.audioTrackConstraints;
                            _this.smoothingTimeConstant = microphoneConfig.smoothingTimeConstant || 0;
                            _this.includeSpectrogram = microphoneConfig.includeSpectrogram === false ? false : true;
                            _this.includeWaveform = microphoneConfig.includeWaveform === true ? true : false;
                            if (!_this.includeSpectrogram && !_this.includeWaveform) {
                                throw new Error('Both includeSpectrogram and includeWaveform are false. ' + 'At least one type of data should be returned.');
                            }
                            return _this;
                        }
                        MicrophoneIterator.prototype.summary = function () {
                            return "microphone";
                        }
                            ;
                        // Construct a MicrophoneIterator and start the audio stream.
                        MicrophoneIterator.create = function (microphoneConfig) {
                            if (microphoneConfig === void 0) {
                                microphoneConfig = {};
                            }
                            return __awaiter(this, void 0, void 0, function () {
                                var microphoneIterator;
                                return __generator(this, function (_a) {
                                    switch (_a.label) {
                                        case 0:
                                            if (!tf.env().get('IS_BROWSER')) {
                                                throw new Error('microphone API is only supported in browser environment.');
                                            }
                                            microphoneIterator = new MicrophoneIterator(microphoneConfig);
                                            // Call async function start() to initialize the audio stream.
                                            return [4 /*yield*/
                                                , microphoneIterator.start()];
                                        case 1:
                                            // Call async function start() to initialize the audio stream.
                                            _a.sent();
                                            return [2 /*return*/
                                                , microphoneIterator];
                                    }
                                });
                            });
                        }
                            ;
                        // Start the audio stream and FFT.
                        MicrophoneIterator.prototype.start = function () {
                            return __awaiter(this, void 0, void 0, function () {
                                var _a, e_1, ctxConstructor, streamSource;
                                return __generator(this, function (_b) {
                                    switch (_b.label) {
                                        case 0:
                                            _b.trys.push([0, 2, , 3]);
                                            _a = this;
                                            return [4 /*yield*/
                                                , navigator.mediaDevices.getUserMedia({
                                                    audio: this.audioTrackConstraints == null ? true : this.audioTrackConstraints,
                                                    video: false
                                                })];
                                        case 1:
                                            _a.stream = _b.sent();
                                            return [3 /*break*/
                                                , 3];
                                        case 2:
                                            e_1 = _b.sent();
                                            throw new Error("Error thrown while initializing video stream: ".concat(e_1.message));
                                        case 3:
                                            if (!this.stream) {
                                                throw new Error('Could not obtain audio from microphone.');
                                            }
                                            ctxConstructor = // tslint:disable-next-line:no-any
                                                window.AudioContext || window.webkitAudioContext;
                                            this.audioContext = new ctxConstructor();
                                            if (!this.sampleRateHz) {
                                                // If sample rate is not provided, use the available sample rate on
                                                // device.
                                                this.sampleRateHz = this.audioContext.sampleRate;
                                            } else if (this.audioContext.sampleRate !== this.sampleRateHz) {
                                                throw new Error("Mismatch in sampling rate: " + "Expected: ".concat(this.sampleRateHz, "; ") + "Actual: ".concat(this.audioContext.sampleRate));
                                            }
                                            streamSource = this.audioContext.createMediaStreamSource(this.stream);
                                            this.analyser = this.audioContext.createAnalyser();
                                            this.analyser.fftSize = this.fftSize * 2;
                                            this.analyser.smoothingTimeConstant = this.smoothingTimeConstant;
                                            streamSource.connect(this.analyser);
                                            this.freqData = new Float32Array(this.fftSize);
                                            this.timeData = new Float32Array(this.fftSize);
                                            return [2 /*return*/
                                            ];
                                    }
                                });
                            });
                        }
                            ;

                        MicrophoneIterator.prototype.next = function () {
                            return __awaiter(this, void 0, void 0, function () {
                                var spectrogramTensor, waveformTensor, audioDataQueue, freqData, timeData;
                                return __generator(this, function (_a) {
                                    switch (_a.label) {
                                        case 0:
                                            if (this.isClosed) {
                                                return [2 /*return*/
                                                    , {
                                                        value: null,
                                                        done: true
                                                    }];
                                            }
                                            return [4 /*yield*/
                                                , this.getAudioData()];
                                        case 1:
                                            audioDataQueue = _a.sent();
                                            if (this.includeSpectrogram) {
                                                freqData = this.flattenQueue(audioDataQueue.freqDataQueue);
                                                spectrogramTensor = this.getTensorFromAudioDataArray(freqData, [this.numFrames, this.columnTruncateLength, 1]);
                                            }
                                            if (this.includeWaveform) {
                                                timeData = this.flattenQueue(audioDataQueue.timeDataQueue);
                                                waveformTensor = this.getTensorFromAudioDataArray(timeData, [this.numFrames * this.fftSize, 1]);
                                            }
                                            return [2 /*return*/
                                                , {
                                                    value: {
                                                        'spectrogram': spectrogramTensor,
                                                        'waveform': waveformTensor
                                                    },
                                                    done: false
                                                }];
                                    }
                                });
                            });
                        }
                            ;
                        // Capture one result from the audio stream, and extract the value from
                        // iterator.next() result.
                        MicrophoneIterator.prototype.capture = function () {
                            return __awaiter(this, void 0, void 0, function () {
                                return __generator(this, function (_a) {
                                    switch (_a.label) {
                                        case 0:
                                            return [4 /*yield*/
                                                , this.next()];
                                        case 1:
                                            return [2 /*return*/
                                                , _a.sent().value];
                                    }
                                });
                            });
                        }
                            ;
                        MicrophoneIterator.prototype.getAudioData = function () {
                            return __awaiter(this, void 0, void 0, function () {
                                var freqDataQueue, timeDataQueue, currentFrames;
                                var _this = this;
                                return __generator(this, function (_a) {
                                    freqDataQueue = [];
                                    timeDataQueue = [];
                                    currentFrames = 0;
                                    return [2 /*return*/
                                        , new Promise(function (resolve) {
                                            var intervalID = setInterval(function () {
                                                if (_this.includeSpectrogram) {
                                                    _this.analyser.getFloatFrequencyData(_this.freqData);
                                                    // If the audio stream is initializing, return empty queue.
                                                    if (_this.freqData[0] === -Infinity) {
                                                        resolve({
                                                            freqDataQueue: freqDataQueue,
                                                            timeDataQueue: timeDataQueue
                                                        });
                                                    }
                                                    freqDataQueue.push(_this.freqData.slice(0, _this.columnTruncateLength));
                                                }
                                                if (_this.includeWaveform) {
                                                    _this.analyser.getFloatTimeDomainData(_this.timeData);
                                                    timeDataQueue.push(_this.timeData.slice());
                                                }
                                                // Clean interval and return when all frames have been collected
                                                if (++currentFrames === _this.numFrames) {
                                                    clearInterval(intervalID);
                                                    resolve({
                                                        freqDataQueue: freqDataQueue,
                                                        timeDataQueue: timeDataQueue
                                                    });
                                                }
                                            }, _this.fftSize / _this.sampleRateHz * 1e3);
                                        }
                                        )];
                                });
                            });
                        }
                            ;
                        // Stop the audio stream and pause the iterator.
                        MicrophoneIterator.prototype.stop = function () {
                            if (!this.isClosed) {
                                this.isClosed = true;
                                this.analyser.disconnect();
                                this.audioContext.close();
                                if (this.stream != null && this.stream.getTracks().length > 0) {
                                    this.stream.getTracks()[0].stop();
                                }
                            }
                        }
                            ;
                        // Override toArray() function to prevent collecting.
                        MicrophoneIterator.prototype.toArray = function () {
                            throw new Error('Can not convert infinite audio stream to array.');
                        }
                            ;
                        // Return audio sampling rate in Hz
                        MicrophoneIterator.prototype.getSampleRate = function () {
                            return this.sampleRateHz;
                        }
                            ;
                        MicrophoneIterator.prototype.flattenQueue = function (queue) {
                            var frameSize = queue[0].length;
                            var freqData = new Float32Array(queue.length * frameSize);
                            queue.forEach(function (data, i) {
                                return freqData.set(data, i * frameSize);
                            });
                            return freqData;
                        }
                            ;
                        MicrophoneIterator.prototype.getTensorFromAudioDataArray = function (freqData, shape) {
                            var vals = new Float32Array(tf.util.sizeFromShape(shape));
                            // If the data is less than the output shape, the rest is padded with zeros.
                            vals.set(freqData, vals.length - freqData.length);
                            return tf.tensor(vals, shape);
                        }
                            ;
                        return MicrophoneIterator;
                    }(LazyIterator);

                /**
                 * Provide a stream of image tensors from webcam video stream. Only works in
                 * browser environment.
                 */
                var WebcamIterator = /** @class */
                    function (_super) {
                        __extends(WebcamIterator, _super);
                        function WebcamIterator(webcamVideoElement, webcamConfig) {
                            var _this = _super.call(this) || this;
                            _this.webcamVideoElement = webcamVideoElement;
                            _this.webcamConfig = webcamConfig;
                            _this.isClosed = true;
                            _this.resize = false;
                            if (_this.needToResize()) {
                                _this.resize = true;
                                _this.cropSize = [_this.webcamConfig.resizeHeight, _this.webcamConfig.resizeWidth];
                                _this.cropBoxInd = tf.tensor1d([0], 'int32');
                                if (_this.webcamConfig.centerCrop) {
                                    // Calculate the box based on resizing shape.
                                    var widthCroppingRatio = _this.webcamConfig.resizeWidth * 1.0 / _this.webcamVideoElement.width;
                                    var heightCroppingRatio = _this.webcamConfig.resizeHeight * 1.0 / _this.webcamVideoElement.height;
                                    var widthCropStart = (1 - widthCroppingRatio) / 2;
                                    var heightCropStart = (1 - heightCroppingRatio) / 2;
                                    var widthCropEnd = widthCropStart + widthCroppingRatio;
                                    var heightCropEnd = heightCroppingRatio + heightCropStart;
                                    _this.cropBox = tf.tensor2d([heightCropStart, widthCropStart, heightCropEnd, widthCropEnd], [1, 4]);
                                } else {
                                    _this.cropBox = tf.tensor2d([0, 0, 1, 1], [1, 4]);
                                }
                            }
                            return _this;
                        }
                        WebcamIterator.prototype.summary = function () {
                            return "webcam";
                        }
                            ;
                        // Construct a WebcamIterator and start it's video stream.
                        WebcamIterator.create = function (webcamVideoElement, webcamConfig) {
                            if (webcamConfig === void 0) {
                                webcamConfig = {};
                            }
                            return __awaiter(this, void 0, void 0, function () {
                                var webcamIterator;
                                return __generator(this, function (_a) {
                                    switch (_a.label) {
                                        case 0:
                                            if (!tf.env().get('IS_BROWSER')) {
                                                throw new Error('tf.data.webcam is only supported in browser environment.');
                                            }
                                            if (!webcamVideoElement) {
                                                // If webcam video element is not provided, create a hidden video element
                                                // with provided width and height.
                                                webcamVideoElement = document.createElement('video');
                                                if (!webcamConfig.resizeWidth || !webcamConfig.resizeHeight) {
                                                    throw new Error('Please provide webcam video element, or resizeWidth and ' + 'resizeHeight to create a hidden video element.');
                                                }
                                                webcamVideoElement.width = webcamConfig.resizeWidth;
                                                webcamVideoElement.height = webcamConfig.resizeHeight;
                                            }
                                            webcamIterator = new WebcamIterator(webcamVideoElement, webcamConfig);
                                            // Call async function to initialize the video stream.
                                            return [4 /*yield*/
                                                , webcamIterator.start()];
                                        case 1:
                                            // Call async function to initialize the video stream.
                                            _a.sent();
                                            return [2 /*return*/
                                                , webcamIterator];
                                    }
                                });
                            });
                        }
                            ;
                        // Async function to start video stream.
                        WebcamIterator.prototype.start = function () {
                            return __awaiter(this, void 0, void 0, function () {
                                var _a, e_1;
                                var _this = this;
                                return __generator(this, function (_b) {
                                    switch (_b.label) {
                                        case 0:
                                            if (this.webcamConfig.facingMode) {
                                                tf.util.assert(this.webcamConfig.facingMode === 'user' || this.webcamConfig.facingMode === 'environment', function () {
                                                    return "Invalid webcam facing mode: ".concat(_this.webcamConfig.facingMode, ". ") + "Please provide 'user' or 'environment'";
                                                });
                                            }
                                            _b.label = 1;
                                        case 1:
                                            _b.trys.push([1, 3, , 4]);
                                            _a = this;
                                            return [4 /*yield*/
                                                , navigator.mediaDevices.getUserMedia({
                                                    video: {
                                                        deviceId: this.webcamConfig.deviceId,
                                                        facingMode: this.webcamConfig.facingMode ? this.webcamConfig.facingMode : 'user',
                                                        width: this.webcamVideoElement.width,
                                                        height: this.webcamVideoElement.height
                                                    }
                                                })];
                                        case 2:
                                            _a.stream = _b.sent();
                                            return [3 /*break*/
                                                , 4];
                                        case 3:
                                            e_1 = _b.sent();
                                            // Modify the error message but leave the stack trace intact
                                            e_1.message = "Error thrown while initializing video stream: ".concat(e_1.message);
                                            throw e_1;
                                        case 4:
                                            if (!this.stream) {
                                                throw new Error('Could not obtain video from webcam.');
                                            }
                                            // Older browsers may not have srcObject
                                            try {
                                                this.webcamVideoElement.srcObject = this.stream;
                                            } catch (error) {
                                                console.log(error);
                                                this.webcamVideoElement.src = window.URL.createObjectURL(this.stream);
                                            }
                                            // Start the webcam video stream
                                            this.webcamVideoElement.play();
                                            this.isClosed = false;
                                            return [2 /*return*/
                                                , new Promise(function (resolve) {
                                                    // Add event listener to make sure the webcam has been fully initialized.
                                                    _this.webcamVideoElement.onloadedmetadata = function () {
                                                        resolve();
                                                    }
                                                        ;
                                                }
                                                )];
                                    }
                                });
                            });
                        }
                            ;
                        WebcamIterator.prototype.next = function () {
                            return __awaiter(this, void 0, void 0, function () {
                                var img;
                                return __generator(this, function (_a) {
                                    if (this.isClosed) {
                                        return [2 /*return*/
                                            , {
                                                value: null,
                                                done: true
                                            }];
                                    }
                                    try {
                                        img = tf.browser.fromPixels(this.webcamVideoElement);
                                    } catch (e) {
                                        throw new Error("Error thrown converting video to pixels: ".concat(JSON.stringify(e)));
                                    }
                                    if (this.resize) {
                                        try {
                                            return [2 /*return*/
                                                , {
                                                    value: this.cropAndResizeFrame(img),
                                                    done: false
                                                }];
                                        } catch (e) {
                                            throw new Error("Error thrown cropping the video: ".concat(e.message));
                                        } finally {
                                            img.dispose();
                                        }
                                    } else {
                                        return [2 /*return*/
                                            , {
                                                value: img,
                                                done: false
                                            }];
                                    }
                                    return [2 /*return*/
                                    ];
                                });
                            });
                        }
                            ;

                        WebcamIterator.prototype.needToResize = function () {
                            // If resizeWidth and resizeHeight are provided, and different from the
                            // width and height of original HTMLVideoElement, then resizing and cropping
                            // is required.
                            if (this.webcamConfig.resizeWidth && this.webcamConfig.resizeHeight && (this.webcamVideoElement.width !== this.webcamConfig.resizeWidth || this.webcamVideoElement.height !== this.webcamConfig.resizeHeight)) {
                                return true;
                            }
                            return false;
                        }
                            ;
                        // Cropping and resizing each frame based on config
                        WebcamIterator.prototype.cropAndResizeFrame = function (img) {
                            var _this = this;
                            return tf.tidy(function () {
                                var expandedImage = tf.expandDims(tf.cast(img, 'float32'), 0);
                                var resizedImage;
                                resizedImage = tf.image.cropAndResize(expandedImage, _this.cropBox, _this.cropBoxInd, _this.cropSize, 'bilinear');
                                // Extract image from batch cropping.
                                var shape = resizedImage.shape;
                                return tf.reshape(resizedImage, shape.slice(1));
                            });
                        }
                            ;
                        // Capture one frame from the video stream, and extract the value from
                        // iterator.next() result.
                        WebcamIterator.prototype.capture = function () {
                            return __awaiter(this, void 0, void 0, function () {
                                return __generator(this, function (_a) {
                                    switch (_a.label) {
                                        case 0:
                                            return [4 /*yield*/
                                                , this.next()];
                                        case 1:
                                            return [2 /*return*/
                                                , _a.sent().value];
                                    }
                                });
                            });
                        }
                            ;
                        // Stop the video stream and pause webcam iterator.
                        WebcamIterator.prototype.stop = function () {
                            var tracks = this.stream.getTracks();
                            tracks.forEach(function (track) {
                                return track.stop();
                            });
                            try {
                                this.webcamVideoElement.srcObject = null;
                            } catch (error) {
                                console.log(error);
                                this.webcamVideoElement.src = null;
                            }
                            this.isClosed = true;
                        }
                            ;
                        // Override toArray() function to prevent collecting.
                        WebcamIterator.prototype.toArray = function () {
                            throw new Error('Can not convert infinite video stream to array.');
                        }
                            ;
                        return WebcamIterator;
                    }(LazyIterator);

                /**
                 * @license
                 * Copyright 2018 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 *
                 * =============================================================================
                 */
                /**
                 * Represents a data source readable as a stream of binary data chunks.
                 *
                 * Because `Dataset`s can be read repeatedly (via `Dataset.iterator()`), this
                 * provides a means to repeatedly create streams from the underlying data
                 * sources.
                 */
                var DataSource = /** @class */
                    function () {
                        function DataSource() { }
                        return DataSource;
                    }();
                // TODO(soergel): consider convenience factory functions here
                // in combination with chainable source->dataset above, e.g.:
                // tf.data.url(...).asCsvDataset().shuffle().batch()

                var StringIterator = /** @class */
                    function (_super) {
                        __extends(StringIterator, _super);
                        function StringIterator() {
                            return _super !== null && _super.apply(this, arguments) || this;
                        }
                        /**
                         * Splits a string stream on a given separator.
                         *
                         * It is assumed that the incoming chunk boundaries have no semantic meaning,
                         * so conceptually the incoming stream is treated simply as the concatenation
                         * of its elements.
                         *
                         * The outgoing stream provides chunks corresponding to the results of the
                         * standard string split() operation (even if such a chunk spanned incoming
                         * chunks).  The separators are not included.
                         *
                         * A typical usage is to split a text file (represented as a stream with
                         * arbitrary chunk boundaries) into lines.
                         *
                         * @param upstream A readable stream of strings that can be treated as
                         *   concatenated.
                         * @param separator A character to split on.
                         */
                        StringIterator.prototype.split = function (separator) {
                            return new SplitIterator(this, separator);
                        }
                            ;
                        return StringIterator;
                    }(LazyIterator);
                // ============================================================================
                // The following private classes serve to implement the chainable methods
                // on StringIterator.  Unfortunately they can't be placed in separate files, due
                // to resulting trouble with circular imports.
                // ============================================================================
                // We wanted multiple inheritance, e.g.
                //   class SplitIterator extends QueueIterator<string>, StringIterator
                // but the TypeScript mixin approach is a bit hacky, so we take this adapter
                // approach instead.
                var SplitIterator = /** @class */
                    function (_super) {
                        __extends(SplitIterator, _super);
                        function SplitIterator(upstream, separator) {
                            var _this = _super.call(this) || this;
                            _this.upstream = upstream;
                            _this.impl = new SplitIteratorImpl(upstream, separator);
                            return _this;
                        }
                        SplitIterator.prototype.summary = function () {
                            return this.impl.summary();
                        }
                            ;
                        SplitIterator.prototype.next = function () {
                            return __awaiter(this, void 0, void 0, function () {
                                return __generator(this, function (_a) {
                                    return [2 /*return*/
                                        , this.impl.next()];
                                });
                            });
                        }
                            ;
                        return SplitIterator;
                    }(StringIterator);
                var SplitIteratorImpl = /** @class */
                    function (_super) {
                        __extends(SplitIteratorImpl, _super);
                        function SplitIteratorImpl(upstream, separator) {
                            var _this = _super.call(this) || this;
                            _this.upstream = upstream;
                            _this.separator = separator;
                            // A partial string at the end of an upstream chunk
                            _this.carryover = '';
                            return _this;
                        }
                        SplitIteratorImpl.prototype.summary = function () {
                            return "".concat(this.upstream.summary(), " -> Split('").concat(this.separator, "')");
                        }
                            ;
                        SplitIteratorImpl.prototype.pump = function () {
                            return __awaiter(this, void 0, void 0, function () {
                                var chunkResult, lines, _a, _b, line;
                                var e_1, _c;
                                return __generator(this, function (_d) {
                                    switch (_d.label) {
                                        case 0:
                                            return [4 /*yield*/
                                                , this.upstream.next()];
                                        case 1:
                                            chunkResult = _d.sent();
                                            if (chunkResult.done) {
                                                if (this.carryover === '') {
                                                    return [2 /*return*/
                                                        , false];
                                                }
                                                // Pretend that the pump succeeded in order to emit the small last batch.
                                                // The next pump() call will actually fail.
                                                this.outputQueue.push(this.carryover);
                                                this.carryover = '';
                                                return [2 /*return*/
                                                    , true];
                                            }
                                            lines = chunkResult.value.split(this.separator);
                                            // Note the behavior: " ab ".split(' ') === ['', 'ab', '']
                                            // Thus the carryover may be '' if the separator falls on a chunk
                                            // boundary; this produces the correct result.
                                            lines[0] = this.carryover + lines[0];
                                            try {
                                                for (_a = __values(lines.slice(0, -1)),
                                                    _b = _a.next(); !_b.done; _b = _a.next()) {
                                                    line = _b.value;
                                                    this.outputQueue.push(line);
                                                }
                                            } catch (e_1_1) {
                                                e_1 = {
                                                    error: e_1_1
                                                };
                                            } finally {
                                                try {
                                                    if (_b && !_b.done && (_c = _a.return))
                                                        _c.call(_a);
                                                } finally {
                                                    if (e_1)
                                                        throw e_1.error;
                                                }
                                            }
                                            this.carryover = lines[lines.length - 1];
                                            return [2 /*return*/
                                                , true];
                                    }
                                });
                            });
                        }
                            ;
                        return SplitIteratorImpl;
                    }(OneToManyIterator);
                var ByteChunkIterator = /** @class */
                    function (_super) {
                        __extends(ByteChunkIterator, _super);
                        function ByteChunkIterator() {
                            return _super !== null && _super.apply(this, arguments) || this;
                        }
                        /**
                         * Decode a stream of UTF8-encoded byte arrays to a stream of strings.
                         *
                         * The byte arrays producetd from the ByteChunkIterator on which this is
                         * called will be interpreted as concatenated.  No assumptions are made about
                         * the boundaries of the incoming chunks, so a multi-byte UTF8 encoding of a
                         * character may span the boundary between chunks.  This naturally happens,
                         * for instance, when reading fixed-size byte arrays from a file.
                         */
                        ByteChunkIterator.prototype.decodeUTF8 = function () {
                            return new Utf8Iterator(this);
                        }
                            ;
                        return ByteChunkIterator;
                    }(LazyIterator);
                // ============================================================================
                // The following private classes serve to implement the chainable methods
                // on ByteChunkIterator.  Unfortunately they can't be placed in separate files,
                // due to resulting trouble with circular imports.
                // ============================================================================
                // We wanted multiple inheritance, e.g.
                //   class Utf8Iterator extends QueueIterator<string>, StringIterator
                // but the TypeScript mixin approach is a bit hacky, so we take this adapter
                // approach instead.
                var Utf8Iterator = /** @class */
                    function (_super) {
                        __extends(Utf8Iterator, _super);
                        function Utf8Iterator(upstream) {
                            var _this = _super.call(this) || this;
                            _this.upstream = upstream;
                            _this.impl = new Utf8IteratorImpl(upstream);
                            return _this;
                        }
                        Utf8Iterator.prototype.summary = function () {
                            return this.impl.summary();
                        }
                            ;
                        Utf8Iterator.prototype.next = function () {
                            return __awaiter(this, void 0, void 0, function () {
                                return __generator(this, function (_a) {
                                    return [2 /*return*/
                                        , this.impl.next()];
                                });
                            });
                        }
                            ;
                        return Utf8Iterator;
                    }(StringIterator);
                /**
                 * Decode a stream of UTF8-encoded byte arrays to a stream of strings.
                 *
                 * This is tricky because the incoming byte array boundaries may disrupt a
                 * multi-byte UTF8 character. Thus any incomplete character data at the end of
                 * a chunk must be carried over and prepended to the next chunk before
                 * decoding. Luckily with native decoder, TextDecoder in browser and
                 * string_decoder in node, byte array boundaries are handled automatically.
                 *
                 * In the context of an input pipeline for machine learning, UTF8 decoding is
                 * needed to parse text files containing training examples or prediction
                 * requests (e.g., formatted as CSV or JSON). We cannot use the built-in
                 * decoding provided by FileReader.readAsText() because here we are in a
                 * streaming context, which FileReader does not support.
                 *
                 * @param upstream A `LazyIterator` of `Uint8Arrays` containing UTF8-encoded
                 *   text, which should be interpreted as concatenated.  No assumptions are
                 *   made about the boundaries of the incoming chunks, so a multi-byte UTF8
                 *   encoding of a character may span the boundary between chunks.  This
                 *   naturally happens, for instance, when reading fixed-size byte arrays from a
                 *   file.
                 */
                var Utf8IteratorImpl = /** @class */
                    function (_super) {
                        __extends(Utf8IteratorImpl, _super);
                        function Utf8IteratorImpl(upstream) {
                            var _this = _super.call(this) || this;
                            _this.upstream = upstream;
                            if (tf.env().get('IS_BROWSER')) {
                                _this.decoder = new TextDecoder('utf-8');
                            } else {
                                // tslint:disable-next-line:no-require-imports
                                var StringDecoder = require('string_decoder').StringDecoder;
                                _this.decoder = new StringDecoder('utf8');
                            }
                            return _this;
                        }
                        Utf8IteratorImpl.prototype.summary = function () {
                            return "".concat(this.upstream.summary(), " -> Utf8");
                        }
                            ;
                        Utf8IteratorImpl.prototype.pump = function () {
                            return __awaiter(this, void 0, void 0, function () {
                                var chunkResult, chunk, text;
                                return __generator(this, function (_a) {
                                    switch (_a.label) {
                                        case 0:
                                            return [4 /*yield*/
                                                , this.upstream.next()];
                                        case 1:
                                            chunkResult = _a.sent();
                                            if (chunkResult.done) {
                                                return [2 /*return*/
                                                    , false];
                                            } else {
                                                chunk = chunkResult.value;
                                            }
                                            if (tf.env().get('IS_BROWSER')) {
                                                text = this.decoder.decode(chunk, {
                                                    stream: true
                                                });
                                            } else {
                                                text = this.decoder.write(Buffer.from(chunk.buffer));
                                            }
                                            this.outputQueue.push(text);
                                            return [2 /*return*/
                                                , true];
                                    }
                                });
                            });
                        }
                            ;
                        return Utf8IteratorImpl;
                    }(OneToManyIterator);

                /**
                 * Provide a stream of chunks from a File, Blob, or Uint8Array.
                 * @param file The source File, Blob or Uint8Array.
                 * @param options Optional settings controlling file reading.
                 * @returns a lazy Iterator of Uint8Arrays containing sequential chunks of the
                 *   input File, Blob or Uint8Array.
                 */
                var FileChunkIterator = /** @class */
                    function (_super) {
                        __extends(FileChunkIterator, _super);
                        function FileChunkIterator(file, options) {
                            if (options === void 0) {
                                options = {};
                            }
                            var _this = _super.call(this) || this;
                            _this.file = file;
                            _this.options = options;
                            tf.util.assert(file instanceof Uint8Array || (tf.env().get('IS_BROWSER') ? file instanceof File || file instanceof Blob : false), function () {
                                return 'FileChunkIterator only supports File, Blob and Uint8Array ' + 'right now.';
                            });
                            _this.offset = options.offset || 0;
                            // default 1MB chunk has tolerable perf on large files
                            _this.chunkSize = options.chunkSize || 1024 * 1024;
                            return _this;
                        }
                        FileChunkIterator.prototype.summary = function () {
                            return "FileChunks ".concat(this.file);
                        }
                            ;
                        FileChunkIterator.prototype.next = function () {
                            return __awaiter(this, void 0, void 0, function () {
                                var chunk;
                                var _a;
                                var _this = this;
                                return __generator(this, function (_b) {
                                    switch (_b.label) {
                                        case 0:
                                            if (this.offset >= (this.file instanceof Uint8Array ? this.file.byteLength : this.file.size)) {
                                                return [2 /*return*/
                                                    , {
                                                        value: null,
                                                        done: true
                                                    }];
                                            }
                                            chunk = new Promise(function (resolve, reject) {
                                                var end = _this.offset + _this.chunkSize;
                                                if (_this.file instanceof Uint8Array) {
                                                    // Note if end > this.uint8Array.byteLength, we just get a small last
                                                    // chunk.
                                                    resolve(new Uint8Array(_this.file.slice(_this.offset, end)));
                                                } else {
                                                    // This branch assumes that this.file type is File or Blob, which
                                                    // means it is in the browser environment.
                                                    // TODO(soergel): is this a performance issue?
                                                    var fileReader_1 = new FileReader();
                                                    fileReader_1.onload = function (event) {
                                                        var data = fileReader_1.result;
                                                        // Not sure we can trust the return type of
                                                        // FileReader.readAsArrayBuffer See e.g.
                                                        // https://github.com/node-file-api/FileReader/issues/2
                                                        if (data instanceof ArrayBuffer) {
                                                            data = new Uint8Array(data);
                                                        }
                                                        if (!(data instanceof Uint8Array)) {
                                                            return reject(new TypeError('FileReader returned unknown type.'));
                                                        }
                                                        resolve(data);
                                                    }
                                                        ;
                                                    fileReader_1.onabort = function (event) {
                                                        return reject(new Error('Aborted'));
                                                    }
                                                        ;
                                                    fileReader_1.onerror = function (event) {
                                                        return reject(new Error(event.type));
                                                    }
                                                        ;
                                                    // TODO(soergel): better handle onabort, onerror
                                                    // Note if end > this.file.size, we just get a small last chunk.
                                                    var slice = _this.file.slice(_this.offset, end);
                                                    // We can't use readAsText here (even if we know the file is text)
                                                    // because the slice boundary may fall within a multi-byte character.
                                                    fileReader_1.readAsArrayBuffer(slice);
                                                }
                                                _this.offset = end;
                                            }
                                            );
                                            _a = {};
                                            return [4 /*yield*/
                                                , chunk];
                                        case 1:
                                            return [2 /*return*/
                                                , (_a.value = _b.sent(),
                                                    _a.done = false,
                                                    _a)];
                                    }
                                });
                            });
                        }
                            ;
                        return FileChunkIterator;
                    }(ByteChunkIterator);

                /**
                 * Provide a stream of chunks from a URL.
                 *
                 * Note this class first downloads the entire file into memory before providing
                 * the first element from the stream.  This is because the Fetch API does not
                 * yet reliably provide a reader stream for the response body.
                 */
                function urlChunkIterator(url, options, fetchFunc) {
                    if (options === void 0) {
                        options = {};
                    }
                    return __awaiter(this, void 0, void 0, function () {
                        var urlString, requestInit, response, uint8Array, _a;
                        return __generator(this, function (_b) {
                            switch (_b.label) {
                                case 0:
                                    if (typeof url === 'string') {
                                        urlString = url;
                                    } else {
                                        urlString = url.url;
                                        requestInit = getRequestInitFromRequest(url);
                                    }
                                    return [4 /*yield*/
                                        , (fetchFunc || tf.util.fetch)(urlString, requestInit)];
                                case 1:
                                    response = _b.sent();
                                    if (!response.ok)
                                        return [3 /*break*/
                                            , 3];
                                    _a = Uint8Array.bind;
                                    return [4 /*yield*/
                                        , response.arrayBuffer()];
                                case 2:
                                    uint8Array = new (_a.apply(Uint8Array, [void 0, _b.sent()]))();
                                    return [2 /*return*/
                                        , new FileChunkIterator(uint8Array, options)];
                                case 3:
                                    throw new Error(response.statusText);
                            }
                        });
                    });
                }
                // Generate RequestInit from Request to match tf.util.fetch signature.
                var getRequestInitFromRequest = function (request) {
                    var init = {
                        method: request.method,
                        headers: request.headers,
                        body: request.body,
                        mode: request.mode,
                        credentials: request.credentials,
                        cache: request.cache,
                        redirect: request.redirect,
                        referrer: request.referrer,
                        integrity: request.integrity
                    };
                    return init;
                };

                /**
                 * @license
                 * Copyright 2018 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 *
                 * =============================================================================
                 */
                // Skip tslint any type check cause this method is aiming to check type of
                // input.
                // tslint:disable-next-line:no-any
                function isLocalPath(source) {
                    return typeof source === 'string' && source.slice(0, 7) === 'file://';
                }

                /**
                 * Represents a file, blob, or Uint8Array readable as a stream of binary data
                 * chunks.
                 */
                var FileDataSource = /** @class */
                    function (_super) {
                        __extends(FileDataSource, _super);
                        /**
                         * Create a `FileDataSource`.
                         *
                         * @param input Local file path, or `File`/`Blob`/`Uint8Array` object to
                         *     read. Local file only works in node environment.
                         * @param options Options passed to the underlying `FileChunkIterator`s,
                         *   such as {chunksize: 1024}.
                         */
                        function FileDataSource(input, options) {
                            if (options === void 0) {
                                options = {};
                            }
                            var _this = _super.call(this) || this;
                            _this.input = input;
                            _this.options = options;
                            return _this;
                        }
                        FileDataSource.prototype.iterator = function () {
                            return __awaiter(this, void 0, void 0, function () {
                                var fs;
                                return __generator(this, function (_a) {
                                    if (isLocalPath(this.input) && tf.env().get('IS_NODE')) {
                                        fs = require('fs');
                                        this.input = fs.readFileSync(this.input.slice(7));
                                    }
                                    // TODO(kangyizhang): Add LocalFileChunkIterator to split local streaming
                                    // with file in browser.
                                    return [2 /*return*/
                                        , new FileChunkIterator(this.input, this.options)];
                                });
                            });
                        }
                            ;
                        return FileDataSource;
                    }(DataSource);

                /*
                 * Represents a URL readable as a stream of binary data chunks.
                 */
                var URLDataSource = /** @class */
                    function (_super) {
                        __extends(URLDataSource, _super);
                        /**
                         * Create a `URLDataSource`.
                         *
                         * @param url A source URL string, or a `Request` object.
                         * @param options Options passed to the underlying `FileChunkIterator`s,
                         *   such as {chunksize: 1024}.
                         */
                        function URLDataSource(url, fileOptions) {
                            if (fileOptions === void 0) {
                                fileOptions = {};
                            }
                            var _this = _super.call(this) || this;
                            _this.url = url;
                            _this.fileOptions = fileOptions;
                            return _this;
                        }
                        // TODO(soergel): provide appropriate caching options.  Currently this
                        // will download the URL anew for each call to iterator().  Since we have
                        // to treat the downloaded file as a blob/buffer anyway, we may as well retain
                        // it-- but that raises GC issues.  Also we may want a persistent disk cache.
                        URLDataSource.prototype.iterator = function () {
                            return __awaiter(this, void 0, void 0, function () {
                                return __generator(this, function (_a) {
                                    if (isLocalPath(this.url)) {
                                        return [2 /*return*/
                                            , new FileDataSource(this.url, this.fileOptions).iterator()];
                                    } else {
                                        return [2 /*return*/
                                            , urlChunkIterator(this.url, this.fileOptions)];
                                    }
                                });
                            });
                        }
                            ;
                        return URLDataSource;
                    }(DataSource);

                /**
                 * Create a `CSVDataset` by reading and decoding CSV file(s) from provided URL
                 * or local path if it's in Node environment.
                 *
                 * Note: If isLabel in columnConfigs is `true` for at least one column, the
                 * element in returned `CSVDataset` will be an object of
                 * `{xs:features, ys:labels}`: xs is a dict of features key/value pairs, ys
                 * is a dict of labels key/value pairs. If no column is marked as label,
                 * returns a dict of features only.
                 *
                 * ```js
                 * const csvUrl =
                 * 'https://storage.googleapis.com/tfjs-examples/multivariate-linear-regression/data/boston-housing-train.csv';
                 *
                 * async function run() {
                 *   // We want to predict the column "medv", which represents a median value of
                 *   // a home (in $1000s), so we mark it as a label.
                 *   const csvDataset = tf.data.csv(
                 *     csvUrl, {
                 *       columnConfigs: {
                 *         medv: {
                 *           isLabel: true
                 *         }
                 *       }
                 *     });
                 *
                 *   // Number of features is the number of column names minus one for the label
                 *   // column.
                 *   const numOfFeatures = (await csvDataset.columnNames()).length - 1;
                 *
                 *   // Prepare the Dataset for training.
                 *   const flattenedDataset =
                 *     csvDataset
                 *     .map(({xs, ys}) =>
                 *       {
                 *         // Convert xs(features) and ys(labels) from object form (keyed by
                 *         // column name) to array form.
                 *         return {xs:Object.values(xs), ys:Object.values(ys)};
                 *       })
                 *     .batch(10);
                 *
                 *   // Define the model.
                 *   const model = tf.sequential();
                 *   model.add(tf.layers.dense({
                 *     inputShape: [numOfFeatures],
                 *     units: 1
                 *   }));
                 *   model.compile({
                 *     optimizer: tf.train.sgd(0.000001),
                 *     loss: 'meanSquaredError'
                 *   });
                 *
                 *   // Fit the model using the prepared Dataset
                 *   return model.fitDataset(flattenedDataset, {
                 *     epochs: 10,
                 *     callbacks: {
                 *       onEpochEnd: async (epoch, logs) => {
                 *         console.log(epoch + ':' + logs.loss);
                 *       }
                 *     }
                 *   });
                 * }
                 *
                 * await run();
                 * ```
                 *
                 * @param source URL or local path to get CSV file. If it's a local path, it
                 * must have prefix `file://` and it only works in node environment.
                 * @param csvConfig (Optional) A CSVConfig object that contains configurations
                 *     of reading and decoding from CSV file(s).
                 *
                 * @doc {
                 *   heading: 'Data',
                 *   subheading: 'Creation',
                 *   namespace: 'data',
                 *   configParamIndices: [1]
                 *  }
                 */
                function csv(source, csvConfig) {
                    if (csvConfig === void 0) {
                        csvConfig = {};
                    }
                    return new CSVDataset(new URLDataSource(source), csvConfig);
                }
                /**
                 * Create a `Dataset` that produces each element by calling a provided function.
                 *
                 * Note that repeated iterations over this `Dataset` may produce different
                 * results, because the function will be called anew for each element of each
                 * iteration.
                 *
                 * Also, beware that the sequence of calls to this function may be out of order
                 * in time with respect to the logical order of the Dataset. This is due to the
                 * asynchronous lazy nature of stream processing, and depends on downstream
                 * transformations (e.g. .shuffle()). If the provided function is pure, this is
                 * no problem, but if it is a closure over a mutable state (e.g., a traversal
                 * pointer), then the order of the produced elements may be scrambled.
                 *
                 * ```js
                 * let i = -1;
                 * const func = () =>
                 *    ++i < 5 ? {value: i, done: false} : {value: null, done: true};
                 * const ds = tf.data.func(func);
                 * await ds.forEachAsync(e => console.log(e));
                 * ```
                 *
                 * @param f A function that produces one data element on each call.
                 */
                function func(f) {
                    var _this = this;
                    var iter = iteratorFromFunction(f);
                    return datasetFromIteratorFn(function () {
                        return __awaiter(_this, void 0, void 0, function () {
                            return __generator(this, function (_a) {
                                return [2 /*return*/
                                    , iter];
                            });
                        });
                    });
                }
                /**
                 * Create a `Dataset` that produces each element from provided JavaScript
                 * generator, which is a function*
                 * (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Iterators_and_Generators#Generator_functions),
                 * or a function that returns an
                 * iterator
                 * (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Iterators_and_Generators#Generator_functions).
                 *
                 * The returned iterator should have `.next()` function that returns element in
                 * format of `{value: TensorContainer, done:boolean}`.
                 *
                 * Example of creating a dataset from an iterator factory:
                 * ```js
                 * function makeIterator() {
                 *   const numElements = 10;
                 *   let index = 0;
                 *
                 *   const iterator = {
                 *     next: () => {
                 *       let result;
                 *       if (index < numElements) {
                 *         result = {value: index, done: false};
                 *         index++;
                 *         return result;
                 *       }
                 *       return {value: index, done: true};
                 *     }
                 *   };
                 *   return iterator;
                 * }
                 * const ds = tf.data.generator(makeIterator);
                 * await ds.forEachAsync(e => console.log(e));
                 * ```
                 *
                 * Example of creating a dataset from a generator:
                 * ```js
                 * function* dataGenerator() {
                 *   const numElements = 10;
                 *   let index = 0;
                 *   while (index < numElements) {
                 *     const x = index;
                 *     index++;
                 *     yield x;
                 *   }
                 * }
                 *
                 * const ds = tf.data.generator(dataGenerator);
                 * await ds.forEachAsync(e => console.log(e));
                 * ```
                 *
                 * @param generator A JavaScript generator function that returns a JavaScript
                 *     iterator.
                 *
                 * @doc {
                 *   heading: 'Data',
                 *   subheading: 'Creation',
                 *   namespace: 'data',
                 *   configParamIndices: [1]
                 *  }
                 */
                function generator(generator) {
                    var _this = this;
                    return datasetFromIteratorFn(function () {
                        return __awaiter(_this, void 0, void 0, function () {
                            var gen;
                            return __generator(this, function (_a) {
                                switch (_a.label) {
                                    case 0:
                                        return [4 /*yield*/
                                            , generator()];
                                    case 1:
                                        gen = _a.sent();
                                        return [2 /*return*/
                                            , iteratorFromFunction(function () {
                                                return gen.next();
                                            })];
                                }
                            });
                        });
                    });
                }
                /**
                 * Create an iterator that generates `Tensor`s from webcam video stream. This
                 * API only works in Browser environment when the device has webcam.
                 *
                 * Note: this code snippet only works when the device has a webcam. It will
                 * request permission to open the webcam when running.
                 * ```js
                 * const videoElement = document.createElement('video');
                 * videoElement.width = 100;
                 * videoElement.height = 100;
                 * const cam = await tf.data.webcam(videoElement);
                 * const img = await cam.capture();
                 * img.print();
                 * cam.stop();
                 * ```
                 *
                 * @param webcamVideoElement A `HTMLVideoElement` used to play video from
                 *     webcam. If this element is not provided, a hidden `HTMLVideoElement` will
                 *     be created. In that case, `resizeWidth` and `resizeHeight` must be
                 *     provided to set the generated tensor shape.
                 * @param webcamConfig A `WebcamConfig` object that contains configurations of
                 *     reading and manipulating data from webcam video stream.
                 *
                 * @doc {
                 *   heading: 'Data',
                 *   subheading: 'Creation',
                 *   namespace: 'data',
                 *   ignoreCI: true
                 *  }
                 */
                function webcam(webcamVideoElement, webcamConfig) {
                    return __awaiter(this, void 0, void 0, function () {
                        return __generator(this, function (_a) {
                            return [2 /*return*/
                                , WebcamIterator.create(webcamVideoElement, webcamConfig)];
                        });
                    });
                }
                /**
                 * Create an iterator that generates frequency-domain spectrogram `Tensor`s from
                 * microphone audio stream with browser's native FFT. This API only works in
                 * browser environment when the device has microphone.
                 *
                 * Note: this code snippet only works when the device has a microphone. It will
                 * request permission to open the microphone when running.
                 * ```js
                 * const mic = await tf.data.microphone({
                 *   fftSize: 1024,
                 *   columnTruncateLength: 232,
                 *   numFramesPerSpectrogram: 43,
                 *   sampleRateHz:44100,
                 *   includeSpectrogram: true,
                 *   includeWaveform: true
                 * });
                 * const audioData = await mic.capture();
                 * const spectrogramTensor = audioData.spectrogram;
                 * spectrogramTensor.print();
                 * const waveformTensor = audioData.waveform;
                 * waveformTensor.print();
                 * mic.stop();
                 * ```
                 *
                 * @param microphoneConfig A `MicrophoneConfig` object that contains
                 *     configurations of reading audio data from microphone.
                 *
                 * @doc {
                 *   heading: 'Data',
                 *   subheading: 'Creation',
                 *   namespace: 'data',
                 *   ignoreCI: true
                 *  }
                 */
                function microphone(microphoneConfig) {
                    return __awaiter(this, void 0, void 0, function () {
                        return __generator(this, function (_a) {
                            return [2 /*return*/
                                , MicrophoneIterator.create(microphoneConfig)];
                        });
                    });
                }

                /** @license See the LICENSE file. */
                // This code is auto-generated, do not modify this file!
                var version = '4.1.0';
                exports.CSVDataset = CSVDataset;
                exports.Dataset = Dataset;
                exports.FileDataSource = FileDataSource;
                exports.TextLineDataset = TextLineDataset;
                exports.URLDataSource = URLDataSource;
                exports.array = array;
                exports.csv = csv;
                exports.func = func;
                exports.generator = generator;
                exports.microphone = microphone;
                exports.version_data = version;
                exports.webcam = webcam;
                exports.zip = zip;

            }
            ).call(this)
        }
        ).call(this, typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}, require("buffer").Buffer)
    }
        , {
        "@tensorflow/tfjs-core": 506,
        "buffer": 647,
        "fs": 636,
        "string_decoder": 636
    }],
    513: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.Tanh = exports.Swish = exports.Softsign = exports.Softplus = exports.Softmax = exports.Sigmoid = exports.Selu = exports.Relu6 = exports.Relu = exports.Mish = exports.LogSoftmax = exports.Linear = exports.HardSigmoid = exports.Elu = exports.Activation = void 0;
        exports.deserializeActivation = deserializeActivation;
        exports.getActivation = getActivation;
        exports.serializeActivation = serializeActivation;
        var tfc = _interopRequireWildcard(require("@tensorflow/tfjs-core"));
        var K = _interopRequireWildcard(require("./backend/tfjs_backend"));
        var _generic_utils = require("./utils/generic_utils");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2018 Google LLC
         *
         * Use of this source code is governed by an MIT-style
         * license that can be found in the LICENSE file or at
         * https://opensource.org/licenses/MIT.
         * =============================================================================
         */
        // Layer activation functions

        /**
         * Base class for Activations.
         *
         * Special note: due to cross-language compatibility reasons, the
         * static readonly className field in this family of classes must be set to
         * the initialLowerCamelCase name of the activation.
         */
        class Activation extends tfc.serialization.Serializable {
            getConfig() {
                return {};
            }
        }
        /**
         * Exponential linear unit (ELU).
         * Reference: https://arxiv.org/abs/1511.07289
         */
        exports.Activation = Activation;
        class Elu extends Activation {
            /**
             * Calculate the activation function.
             *
             * @param x: Input.
             * @param alpha: Scaling factor the negative section.
             * @return Output of the ELU activation.
             */
            apply(x, alpha = 1) {
                return K.elu(x, alpha);
            }
        }
        /** @nocollapse */
        exports.Elu = Elu;
        Elu.className = 'elu';
        tfc.serialization.registerClass(Elu);
        /**
         * Scaled Exponential Linear Unit. (Klambauer et al., 2017).
         * Reference: Self-Normalizing Neural Networks, https://arxiv.org/abs/1706.02515
         * Notes:
         *   - To be used together with the initialization "lecunNormal".
         *   - To be used together with the dropout variant "AlphaDropout".
         */
        class Selu extends Activation {
            apply(x) {
                return tfc.selu(x);
            }
        }
        /** @nocollapse */
        exports.Selu = Selu;
        Selu.className = 'selu';
        tfc.serialization.registerClass(Selu);
        /**
         *  Rectified linear unit
         */
        class Relu extends Activation {
            apply(x) {
                return tfc.relu(x);
            }
        }
        /** @nocollapse */
        exports.Relu = Relu;
        Relu.className = 'relu';
        tfc.serialization.registerClass(Relu);
        /**
         * Rectified linear unit activation maxing out at 6.0.
         */
        class Relu6 extends Activation {
            apply(x) {
                return (0,
                    tfc.tidy)(() => tfc.minimum(6.0, tfc.relu(x)));
            }
        }
        /** @nocollapse */
        exports.Relu6 = Relu6;
        Relu6.className = 'relu6';
        tfc.serialization.registerClass(Relu6);
        //* Linear activation (no-op) */
        class Linear extends Activation {
            apply(x) {
                return x;
            }
        }
        /** @nocollapse */
        exports.Linear = Linear;
        Linear.className = 'linear';
        tfc.serialization.registerClass(Linear);
        /**
         * Sigmoid activation function.
         */
        class Sigmoid extends Activation {
            apply(x) {
                return tfc.sigmoid(x);
            }
        }
        /** @nocollapse */
        exports.Sigmoid = Sigmoid;
        Sigmoid.className = 'sigmoid';
        tfc.serialization.registerClass(Sigmoid);
        /**
         * Segment-wise linear approximation of sigmoid.
         */
        class HardSigmoid extends Activation {
            apply(x) {
                return K.hardSigmoid(x);
            }
        }
        /** @nocollapse */
        exports.HardSigmoid = HardSigmoid;
        HardSigmoid.className = 'hardSigmoid';
        tfc.serialization.registerClass(HardSigmoid);
        /**
         * Softplus activation function.
         */
        class Softplus extends Activation {
            apply(x) {
                return tfc.softplus(x);
            }
        }
        /** @nocollapse */
        exports.Softplus = Softplus;
        Softplus.className = 'softplus';
        tfc.serialization.registerClass(Softplus);
        /**
         * Softsign activation function.
         */
        class Softsign extends Activation {
            apply(x) {
                return K.softsign(x);
            }
        }
        /** @nocollapse */
        exports.Softsign = Softsign;
        Softsign.className = 'softsign';
        tfc.serialization.registerClass(Softsign);
        /**
         * Hyperbolic tangent function.
         */
        class Tanh extends Activation {
            apply(x) {
                return tfc.tanh(x);
            }
        }
        /** @nocollapse */
        exports.Tanh = Tanh;
        Tanh.className = 'tanh';
        tfc.serialization.registerClass(Tanh);
        /**
         * Softmax activation function
         */
        class Softmax extends Activation {
            /**
             * Calculate the activation function.
             *
             * @param x Tensor.
             * @param axis Integer, axis along which the softmax normalization is applied.
             * Invalid if < 2, as softmax across 1 (the batch dimension) is assumed to be
             * an error.
             *
             * @returns a Tensor of the same shape as x
             *
             * @throws ValueError: In case `dim(x) < 2`.
             */
            apply(x, axis = -1) {
                return tfc.softmax(x, axis);
            }
        }
        /** @nocollapse */
        exports.Softmax = Softmax;
        Softmax.className = 'softmax';
        tfc.serialization.registerClass(Softmax);
        /**
         * Log softmax activation function
         */
        class LogSoftmax extends Activation {
            /**
             * Calculate the activation function of log softmax:
             * log( exp(x_i) / sum(exp(x)) )
             *
             * @param x Tensor.
             * @param axis Integer, axis along which the softmax normalization is applied.
             * Invalid if < 2, as softmax across 1 (the batch dimension) is assumed to be
             * an error.
             *
             * @returns a Tensor of the same shape as x
             *
             * @throws ValueError: In case `dim(x) < 2`.
             */
            apply(x, axis = -1) {
                return tfc.logSoftmax(x, axis);
            }
        }
        /** @nocollapse */
        exports.LogSoftmax = LogSoftmax;
        LogSoftmax.className = 'logSoftmax';
        tfc.serialization.registerClass(LogSoftmax);
        /**
         * Swish activation function
         */
        class Swish extends Activation {
            /**
             * Calculate the activation function.
             *
             * @param x Tensor.
             * @param alpha Scaling factor for the sigmoid function.
             * @returns a Tensor of the same shape as x
             */
            apply(x, alpha = 1) {
                return (0,
                    tfc.tidy)(() => tfc.mul(tfc.sigmoid(tfc.mul(x, alpha)), x));
            }
        }
        /** @nocollapse */
        exports.Swish = Swish;
        Swish.className = 'swish';
        tfc.serialization.registerClass(Swish);
        /**
         * Mish activation function
         */
        class Mish extends Activation {
            /**
             * Calculate the activation function.
             *
             * @param x Tensor.
             * @returns a Tensor of the same shape as x
             */
            apply(x) {
                return (0,
                    tfc.tidy)(() => tfc.mul(x, tfc.tanh(tfc.softplus(x))));
            }
        }
        /** @nocollapse */
        exports.Mish = Mish;
        Mish.className = 'mish';
        tfc.serialization.registerClass(Mish);
        function serializeActivation(activation) {
            return activation.getClassName();
        }
        function deserializeActivation(config, customObjects = {}) {
            return (0,
                _generic_utils.deserializeKerasObject)(config, tfc.serialization.SerializationMap.getMap().classNameMap, customObjects, 'activation');
        }
        function getActivation(identifier) {
            if (identifier == null) {
                const config = {};
                config['className'] = 'linear';
                config['config'] = {};
                return deserializeActivation(config);
            }
            if (typeof identifier === 'string') {
                const config = {};
                config['className'] = identifier;
                config['config'] = {};
                return deserializeActivation(config);
            } else if (identifier instanceof Activation) {
                return identifier;
            } else {
                return deserializeActivation(identifier);
            }
        }

    }
        , {
        "./backend/tfjs_backend": 516,
        "./utils/generic_utils": 570,
        "@tensorflow/tfjs-core": 506
    }],
    514: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.epsilon = epsilon;
        exports.imageDataFormat = imageDataFormat;
        exports.setEpsilon = setEpsilon;
        var _tfjsCore = require("@tensorflow/tfjs-core");
        /**
         * @license
         * Copyright 2018 Google LLC
         *
         * Use of this source code is governed by an MIT-style
         * license that can be found in the LICENSE file or at
         * https://opensource.org/licenses/MIT.
         * =============================================================================
         */

        let _epsilon;
        /**
         * Returns the value of the fuzz factor used in numeric expressions.
         */
        function epsilon() {
            if (_epsilon == null) {
                _epsilon = (0,
                    _tfjsCore.backend)().epsilon();
            }
            return _epsilon;
        }
        /**
         * Sets the value of the fuzz factor used in numeric expressions.
         * @param e New value of epsilon.
         */
        function setEpsilon(e) {
            _epsilon = e;
        }
        /**
         * Returns the default image data format convention.
         */
        function imageDataFormat() {
            return 'channelsLast';
        }

    }
        , {
        "@tensorflow/tfjs-core": 506
    }],
    515: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.getNextUniqueTensorId = getNextUniqueTensorId;
        exports.getUid = getUid;
        /**
         * @license
         * Copyright 2018 Google LLC
         *
         * Use of this source code is governed by an MIT-style
         * license that can be found in the LICENSE file or at
         * https://opensource.org/licenses/MIT.
         * =============================================================================
         */
        /**
         * Utilities related to persistent state in the backend.
         */
        /**
         * An ID to track `tf.SymbolicTensor`s and derived classes.
         * Required in different places in engine/topology.ts to identify unique
         * tensors.
         */
        let _nextUniqueTensorId = 0;
        function getNextUniqueTensorId() {
            return _nextUniqueTensorId++;
        }
        const _uidPrefixes = {};
        /**
         * Provides a unique UID given a string prefix.
         *
         * @param prefix
         */
        function getUid(prefix = '') {
            if (!(prefix in _uidPrefixes)) {
                _uidPrefixes[prefix] = 0;
            }
            _uidPrefixes[prefix] += 1;
            return prefix + _uidPrefixes[prefix].toString();
        }

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

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.batchFlatten = batchFlatten;
        exports.biasAdd = biasAdd;
        exports.cast = cast;
        exports.concatAlongFirstAxis = concatAlongFirstAxis;
        exports.concatenate = concatenate;
        exports.countParams = countParams;
        exports.dot = dot;
        exports.dropout = dropout;
        exports.elu = elu;
        exports.expandDims = expandDims;
        exports.flatten = flatten;
        exports.gather = gather;
        exports.getBackend = getBackend;
        exports.hardSigmoid = hardSigmoid;
        exports.inTrainPhase = inTrainPhase;
        exports.isBackendSymbolic = isBackendSymbolic;
        exports.oneHot = oneHot;
        exports.pow = pow;
        exports.randomNormal = randomNormal;
        exports.repeat = repeat;
        exports.setBackend = setBackend;
        exports.sign = sign;
        exports.sliceAlongAxis = sliceAlongAxis;
        exports.sliceAlongFirstAxis = sliceAlongFirstAxis;
        exports.sliceAlongLastAxis = sliceAlongLastAxis;
        exports.softsign = softsign;
        exports.square = square;
        exports.tile = tile;
        var tfc = _interopRequireWildcard(require("@tensorflow/tfjs-core"));
        var _common = require("../common");
        var _errors = require("../errors");
        var math_utils = _interopRequireWildcard(require("../utils/math_utils"));
        var _common2 = require("./common");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2018 Google LLC
         *
         * Use of this source code is governed by an MIT-style
         * license that can be found in the LICENSE file or at
         * https://opensource.org/licenses/MIT.
         * =============================================================================
         */
        /**
         * deeplearn.js backend.
         */

        // tslint:enable
        /* Setting and getting backend from deeplearn.js. */
        // Default deeplearn.js backend is WebGL (GPU).
        let backend = 'webgl';
        function setBackend(requestedBackend) {
            tfc.setBackend(requestedBackend);
            backend = requestedBackend;
        }
        function getBackend() {
            return backend;
        }
        /**
         * Indicates whether the backend is operating symbolically.
         *
         * This function will be used to determine how to interpret user code. If
         * it returns true, calls to the backend construct a symbolic graph; if
         * it returns false, calls to the backend execute immediately.
         */
        function isBackendSymbolic() {
            return false;
        }
        /**
         * Get the number of elements in a Tensor.
         * @param x The Tensor.
         * @return Number of elements in `x`.
         */
        function countParams(x) {
            const shape = x.shape;
            if (shape.length > 0) {
                return shape.reduce((a, b) => a * b);
            } else {
                // Scalar.
                return 1;
            }
        }
        /**
         * Casts a tensor to a different dtype and returns it.
         * @param x Input tensor.
         * @param dtype String: 'float32'|'int32'|'bool'.
         * @returns Tensor of the specified `dtype`.
         */
        function cast(x, dtype) {
            return tfc.cast(x, dtype);
        }
        /**
         * Adds a 1-sized dimension at index "axis".
         * @param x Input tensor.
         * @param axis Position where to add the new axis.
         * @returns Result of the dimension expansion.
         */
        function expandDims(x, axis = -1) {
            const outShape = x.shape.slice();
            if (axis < 0) {
                axis = outShape.length + axis + 1;
            }
            outShape.splice(axis, 0, 1);
            return tfc.reshape(x, outShape);
        }
        /**
         * Repeats a 2D tensor.
         *
         * If `x` has shape `[samples, dim]` and `n` is 2, for example, the output
         * will have shape `[samples, 2, dim]`.
         *
         * @param x Input tensor.
         * @param n Integer, number of times to repeat.
         * @returns The result of the repeat operation.
         * @throws ValueError: If input tensor is not 2D.
         */
        function repeat(x, n) {
            return (0,
                tfc.tidy)(() => {
                    if (x.shape.length !== 2) {
                        throw new _errors.ValueError(`repeat() expects a rank-2 tensor, but received a ` + `rank-${x.shape.length} tensor.`);
                    }
                    const y = expandDims(x, 1);
                    return tile(y, [1, n, 1]);
                }
                );
        }
        /**
         * Flatten a Tensor into 1D.
         * @param x Input tensor.
         * @return The result of the flattening `x`.
         */
        function flatten(x) {
            const newShape = [math_utils.arrayProd(x.shape)];
            return tfc.reshape(x, newShape);
        }
        /**
         * Turn a nD tensor into a 2D tensor with same 0th dimension.
         * In other words, it flattens each data samples of a batch.
         *
         * @param x The tensor to flatten. The rank of this tensor is required to be 2
         *   or higher.
         * @return The result of the flattening.
         */
        function batchFlatten(x) {
            if (x.rank <= 1) {
                throw new _errors.ValueError(`batchFlatten requires a minimum rank of 2. Got rank: ${x.rank}.`);
            }
            const newShape = [x.shape[0], math_utils.arrayProd(x.shape, 1)];
            return tfc.reshape(x, newShape);
        }
        /**
         * Do slicing along the first axis.
         * @param array input `tf.Tensor`.
         * @param start starting index, inclusive.
         * @param size size of the slice along the first axis.
         * @returns result of the slicing.
         * @throws ValueError: If `array` is of an unsupported subtype of `tf.Tensor`.
         */
        function sliceAlongFirstAxis(array, start, size) {
            return (0,
                tfc.tidy)(() => {
                    switch (array.rank) {
                        case 1:
                            return tfc.slice1d(array, start, size);
                        case 2:
                            return tfc.slice2d(array, [start, 0], [size, array.shape[1]]);
                        case 3:
                            return tfc.slice3d(array, [start, 0, 0], [size, array.shape[1], array.shape[2]]);
                        case 4:
                            return tfc.slice4d(array, [start, 0, 0, 0], [size, array.shape[1], array.shape[2], array.shape[3]]);
                        case 5:
                            return tfc.slice(array, [start, 0, 0, 0, 0], [size, array.shape[1], array.shape[2], array.shape[3], array.shape[4]]);
                        case 6:
                            return tfc.slice(array, [start, 0, 0, 0, 0, 0], [size, array.shape[1], array.shape[2], array.shape[3], array.shape[4], array.shape[5]]);
                        default:
                            throw new _errors.ValueError(`sliceAlongFirstAxis() received an unsupported tensor rank: ` + `${array.rank}`);
                    }
                }
                );
        }
        /**
         * Do slicing along the last axis.
         * @param array input `tf.Tensor`.
         * @param start starting index, inclusive.
         * @param size size of the slice along the last axis.
         * @returns result of the slicing.
         * @throws ValueError: If `array` is of an unsupported subtype of `tf.Tensor`.
         */
        function sliceAlongLastAxis(array, start, size) {
            return (0,
                tfc.tidy)(() => {
                    switch (array.rank) {
                        case 1:
                            return tfc.slice1d(array, start, size);
                        case 2:
                            return tfc.slice2d(array, [0, start], [array.shape[0], size]);
                        case 3:
                            return tfc.slice3d(array, [0, 0, start], [array.shape[0], array.shape[1], size]);
                        case 4:
                            return tfc.slice4d(array, [0, 0, 0, start], [array.shape[0], array.shape[1], array.shape[2], size]);
                        default:
                            throw new _errors.ValueError(`sliceAlongLastAxis() received an unsupported tensor rank: ` + `${array.rank}`);
                    }
                }
                );
        }
        /**
         * Do slicing along the sepcified axis.
         * @param array input `tf.Tensor`.
         * @param start starting index, inclusive.
         * @param size of the slice along the chosen axis.
         * @param choose an axis.
         * @returns result of the slicing.
         * @throws ValueError: If `array` is of an unsupported subtype of `tf.Tensor`.
         */
        function sliceAlongAxis(array, start, size, axis) {
            return (0,
                tfc.tidy)(() => {
                    switch (array.rank) {
                        case 1:
                            return tfc.slice1d(array, start, size);
                        case 2:
                            switch (axis) {
                                case 1:
                                    return sliceAlongFirstAxis(array, start, size);
                                case 2:
                                    return sliceAlongLastAxis(array, start, size);
                                default:
                                    throw new _errors.ValueError(`The axis is not within the rank of the tensor ` + `${axis}`);
                            }
                        case 3:
                            switch (axis) {
                                case 1:
                                    return sliceAlongFirstAxis(array, start, size);
                                case 2:
                                    return tfc.slice3d(array, [0, start, 0], [array.shape[0], size, array.shape[2]]);
                                case 3:
                                    return sliceAlongLastAxis(array, start, size);
                                default:
                                    throw new _errors.ValueError(`The axis is not within the rank of the tensor ` + `${axis}`);
                            }
                        case 4:
                            switch (axis) {
                                case 1:
                                    return sliceAlongFirstAxis(array, start, size);
                                case 2:
                                    return tfc.slice4d(array, [0, start, 0, 0], [array.shape[0], size, array.shape[2], array.shape[3]]);
                                case 3:
                                    return tfc.slice4d(array, [0, 0, start, 0], [array.shape[0], array.shape[1], size, array.shape[3]]);
                                case 4:
                                    return sliceAlongLastAxis(array, start, size);
                                default:
                                    throw new _errors.ValueError(`The axis is not within the rank of the tensor ` + `${axis}`);
                            }
                        default:
                            throw new _errors.ValueError(`sliceAlongLastAxis() received an unsupported tensor rank: ` + `${array.rank}`);
                    }
                }
                );
        }
        /**
         * Concatenates a list of tensors alongside the specified axis.
         * @param tensors `Array` of tensors to concatenate.
         * @param axis Concatenation axis.
         * @returns The result of the concatenation.
         */
        function concatenate(tensors, axis = -1) {
            let rank;
            if (axis < 0) {
                rank = tensors[0].rank;
                if (rank !== 0) {
                    axis = rank;
                } else {
                    axis = 0;
                }
            }
            if (axis === tensors[0].rank) {
                // Porting Note: This is necessary because tfc.concat() requires axis to be
                //   in the interval [-rank, rank).
                axis = -1;
            }
            // Porting Note: Sparse concat is not supported yet.
            return tfc.concat(tensors, axis);
        }
        /**
         * Concatenate two arrays along the first dimension.
         * @param a The 1st `tf.Tensor` to concatenate.
         * @param b The 2nd `tf.Tensor` to concatenate.
         * @returns Result of the concatenation.
         * @throws ValueError: If `a` is of an unsupported subtype of `tf.Tensor`.
         */
        function concatAlongFirstAxis(a, b) {
            switch (a.rank) {
                case 1:
                    return tfc.concat1d([a, b]);
                case 2:
                    return tfc.concat2d([a, b], 0);
                case 3:
                    return tfc.concat3d([a, b], 0);
                case 4:
                    return tfc.concat4d([a, b], 0);
                default:
                    throw new _errors.ValueError(`concatAlongFirstAxis() received an unsupported ` + `tensor rank: ${a.rank}`);
            }
        }
        /**
         * Creates a tensor by tiling `x` by `n`.
         * @param x A tensor.
         * @param n An Array of integers or a single integer. If an Array, the length
         *   must be the same as the number of dimensions in `x`. If a single integer,
         *   it will be treated as an Array of length 1.
         */
        function tile(x, n) {
            if (!Array.isArray(n)) {
                n = [n];
            }
            if (x.rank !== n.length) {
                throw new _errors.ValueError(`The length of input n (${n.length}) does not match ` + `the number of dimensions in input x (${x.rank})`);
            }
            return tfc.tile(x, n);
        }
        /* Creation of random tensors. */
        /**
         * Get a tensor with normal distribution of values.
         *
         * @param shape Shape of the tensor.
         * @param mean mean value of the normal distribution.
         * @param stddev standard deviation of the normal distribution.
         * @param dtype
         * @param seed
         * @return The normal tensor.
         */
        function randomNormal(shape, mean = 0.0, stddev = 1.0, dtype, seed) {
            return tfc.randomNormal(shape, mean, stddev, dtype, seed);
        }
        /* Linear Algebra */
        /**
         * Multiply two tensors and returns the result as a tensor.
         *
         * For 2D tensors, this is equivalent to matrix multiplication (matMul).
         * For tensors of higher ranks, it follows the Theano behavior,
         * (e.g. `(2, 3) * (4, 3, 5) -> (2, 4, 5)`).  From the Theano documentation:
         *
         * For N dimensions it is a sum product over the last axis of x and the
         * second-to-last of y:
         *
         * @param a A tensor of at least rank 2.
         * @param b A tensor of at least rank 2.
         * @param activation (optional) A string identifying the activation
         *   function.
         * @return Result of the dot operation.
         */
        function dot(a, b, activation, bias) {
            if (a.rank < 2 || b.rank < 2) {
                throw new _errors.NotImplementedError(`dot requires both inputs to be rank >= 2` + ` but got x shape = ${a.shape} and y shape = ${b.shape}`);
            }
            if (b.rank >= 3) {
                const xLastDim = a.shape.slice(-1)[0];
                const ySecondLastDim = b.shape.slice(-2)[0];
                if (xLastDim !== ySecondLastDim) {
                    throw new _errors.NotImplementedError(`If rank y >= 3, then the second last dim` + ` of y must equal the last dim of x but got x shape = ${a.shape} and ` + ` y shape = ${b.shape}`);
                }
            }
            // Handle basic 2D x 2D case.
            if (a.rank === 2 && b.rank === 2) {
                const transposeA = false;
                const transposeB = false;
                // tfc.fused.matMul only fuses certain activation functions. Unsupported
                // activation functions are treated as 'linear' activations, which is
                // equivalent to a no-op.
                return tfc.fused.matMul({
                    a,
                    b: b,
                    transposeA,
                    transposeB,
                    bias: bias ? reshapeBias(a.rank, bias, (0,
                        _common2.imageDataFormat)()) : null,
                    activation
                });
            } else {
                // Reshape x into the analogous 2D Tensor.
                const aFirstDims = a.shape.slice();
                // Holds all but the last dim of x.
                const aLastDim = aFirstDims.pop();
                a = tfc.reshape(a, [-1, aLastDim]);
                // Reshape y into the analogous 2D Tensor, and keep track of the
                // required dimensions to reproduce the output shape.
                const bShape = b.shape.slice();
                const bLastDim = bShape.pop();
                const ySecondLastDim = bShape.pop();
                const yOtherDims = [...bShape, bLastDim];
                // permutation should be like [r-2, 0, 1, 2, ... r-4, r-3, r-1]
                // where r is the rank of y.
                const perm = Array.from({
                    length: b.rank
                }, (_, i) => {
                    if (i === 0) {
                        return b.rank - 2;
                    } else if (i <= b.rank - 2) {
                        return i - 1;
                    }
                    return i;
                }
                );
                b = tfc.reshape(tfc.transpose(b, perm), [ySecondLastDim, -1]);
                // Multiply x and y as 2D Tensors, and then reshape back to original.
                const outputShape = [...aFirstDims, ...yOtherDims];
                const transposeA = false;
                const transposeB = false;
                return tfc.reshape(tfc.fused.matMul({
                    a,
                    b,
                    transposeA,
                    transposeB,
                    bias: bias ? reshapeBias(a.rank, bias, (0,
                        _common2.imageDataFormat)()) : null,
                    activation
                }), outputShape);
            }
        }
        /**
         * Compute the sign Tensor of an input Tensor.
         *
         * Elements of the input `tf.Tensor` that are === 0 are mapped to 0.
         * Elements of the input `tf.Tensor` that are > 0 are mapped to 1.
         * Elements of the input `tf.Tensor` that are < 0 are mapped to -1.
         *
         * @param x Input `tf.Tensor`.
         * @return The sign `tf.Tensor`.
         */
        function sign(x) {
            // TODO(cais): Move to the core.
            return (0,
                tfc.tidy)(() => {
                    const zerosLikeX = (0,
                        tfc.zerosLike)(x);
                    const onesLikeX = (0,
                        tfc.onesLike)(x);
                    return (0,
                        tfc.where)(tfc.equal(x, zerosLikeX), zerosLikeX, (0,
                            tfc.where)(tfc.greater(x, (0,
                                tfc.zerosLike)(x)), onesLikeX, tfc.mul(-1, onesLikeX)));
                }
                );
        }
        /**
         * Computes the one-hot representation of an integer tensor.
         * @param indices nD integer tensor of shape
         *   `(batch_size, dim1, dim2, ... dim(n-1))`
         * @param numClasses Integer, number of classes to consider.
         * @returns (n + 1)D one hot representation of the input
         *   with shape `(batch_size, dim1, dim2, ... dim(n-1), num_classes)`
         */
        function oneHot(indices, numClasses) {
            return (0,
                tfc.tidy)(() => {
                    if (indices.rank !== 1) {
                        throw new Error('Only 1D one-hot tensors are supported in the ' + 'deeplearn backend, at present.');
                    }
                    indices = tfc.cast(indices, 'int32');
                    return tfc.cast(tfc.oneHot(indices, numClasses), 'float32');
                }
                );
        }
        /* Elementary math functions. */
        /**
         * Retrieves the elements of indices `indices` in the tensor `reference`.
         * @param reference A tensor.
         * @param indices An integer tensor of indices or an `Array` of integers.
         * @param axis Axis along which to perform the gather operation.
         * @returns The result of the gathering as a tensor.
         */
        function gather(reference, indices, axis) {
            return (0,
                tfc.tidy)(() => {
                    if (Array.isArray(indices)) {
                        indices = (0,
                            tfc.tensor1d)(indices, 'int32');
                    } else {
                        indices = tfc.cast(indices, 'int32');
                    }
                    return tfc.gather(reference, indices, axis);
                }
                );
        }
        /**
         * Element-wise square.
         * @param x Input tensor.
         * @return element-wise x^2
         */
        function square(x) {
            return tfc.mul(x, x);
        }
        /**
         * Element-wise exponentiation.
         *
         * Porting Note: In PyKeras, `a` (the exponent) is a Python integer, which
         *   takes advatnage of the backend's (e.g., TensorFlow's) automatic
         * conversion to tensor. Here we allow `a` to be either a number or a tensor.
         *
         * @param x The base tensor.
         * @param a The exponent, tensor or number. If a number, it is rounded to the
         *   nearest integer and converted to a tensor.
         * @returns A tensor of the same shape as `x`.
         */
        function pow(x, a) {
            return (0,
                tfc.tidy)(() => {
                    if (typeof a === 'number') {
                        a = (0,
                            tfc.scalar)(Math.round(a), 'int32');
                    }
                    if (a.dtype !== 'int32') {
                        throw new _errors.NotImplementedError(`Non-int32 dtype (${a.dtype}) is not supported by pow() yet`);
                    }
                    return tfc.pow(x, a);
                }
                );
        }
        /**
         * Reshapes bias tensor according to rank of x.
         */
        function reshapeBias(xRank, bias, dataFormat) {
            const biasShape = bias.shape;
            if (bias.rank !== 1 && bias.rank !== xRank) {
                throw new _errors.ValueError(`Unexpected bias dimensions: ${bias.rank}` + `; expected it to be 1 or ${xRank}`);
            }
            if (xRank === 5) {
                if (dataFormat === 'channelsFirst') {
                    if (biasShape.length === 1) {
                        return tfc.reshape(bias, [1, biasShape[0], 1, 1, 1]);
                    } else {
                        return tfc.reshape(bias, [1, biasShape[3], biasShape[0], biasShape[1], biasShape[2]]);
                    }
                } else if (dataFormat === 'channelsLast') {
                    if (biasShape.length === 1) {
                        return tfc.reshape(bias, [1, 1, 1, 1, biasShape[0]]);
                    } else {
                        return tfc.reshape(bias, [1].concat(biasShape));
                    }
                }
            } else if (xRank === 4) {
                if (dataFormat === 'channelsFirst') {
                    if (biasShape.length === 1) {
                        return tfc.reshape(bias, [1, biasShape[0], 1, 1]);
                    } else {
                        return tfc.reshape(bias, [1, biasShape[2], biasShape[0], biasShape[1]]);
                    }
                } else if (dataFormat === 'channelsLast') {
                    if (biasShape.length === 1) {
                        return tfc.reshape(bias, [1, 1, 1, biasShape[0]]);
                    } else {
                        return tfc.reshape(bias, [1].concat(biasShape));
                    }
                }
            } else if (xRank === 3) {
                if (dataFormat === 'channelsFirst') {
                    if (biasShape.length === 1) {
                        return tfc.reshape(bias, [1, biasShape[0], 1]);
                    } else {
                        return tfc.reshape(bias, [1, biasShape[1], biasShape[0]]);
                    }
                } else if (dataFormat === 'channelsLast') {
                    if (biasShape.length === 1) {
                        return tfc.reshape(bias, [1, 1, biasShape[0]]);
                    } else {
                        return tfc.reshape(bias, [1].concat(biasShape));
                    }
                }
            } else if (xRank < 3) {
                return bias;
            }
            throw new _errors.ValueError(`Unsupported input rank by biasAdd: ${bias.rank}`);
        }
        /* Neural-network operations. */
        /**
         * Add a bias to a tensor.
         *
         * @param x The tensor to add the bias to.
         * @param bias The bias to add to `x`. Must be 1D or the same rank as `x`.
         * @return Result of the bias adding.
         * @throws ValueError: If the rank of `bias` is incorrect.
         */
        function biasAdd(x, bias, dataFormat) {
            return (0,
                tfc.tidy)(() => {
                    if (dataFormat == null) {
                        dataFormat = (0,
                            _common2.imageDataFormat)();
                    }
                    (0,
                        _common.checkDataFormat)(dataFormat);
                    return tfc.add(x, reshapeBias(x.rank, bias, dataFormat));
                }
                );
        }
        /**
         * Exponential linear unit (ELU).
         * @param x A tensor or variable to compute the activation function for.
         * @param alpha: A scalar, a scaling factor for the negative section.
         * @return Output of the ELU operation.
         */
        function elu(x, alpha = 1) {
            // TODO(cais): Add support for alpha values other than 1.
            if (alpha !== 1) {
                throw new _errors.NotImplementedError(`Support for alpha values other than 1 (${alpha}) is not implemented ` + `yet.`);
            }
            return tfc.elu(x);
        }
        /**
         * Softsign of a tensor.
         *
         * Defined as x / (abs(x) + 1), element-wise.
         *
         * @param x: Input.
         * @returns Output.
         */
        function softsign(x) {
            return (0,
                tfc.tidy)(() => tfc.div(x, tfc.add(tfc.abs(x), 1)));
        }
        /**
         * Sets entries in `x` to zero at random, while scaling the entire tensor.
         *
         * @param x input tensor.
         * @param level fraction of the entries in the tensor that will be set to 0.
         * @param noiseShape shape of randomly generated keep/drop flags, must be
         *   broadcastable to the shape of `x`. Optional.
         * @param seed random seed to ensure determinism. Optional.
         * @returns Result of the dropout operation.
         */
        function dropout(x, level, noiseShape, seed) {
            return (0,
                tfc.tidy)(() => tfc.dropout(x, level, noiseShape, seed));
        }
        /**
         * Element-wise, segment-wise linear approximation of sigmoid.
         *
         * Returns `0.` if `x < -2.5`, `1.` if `x > 2.5`.
         * In `-2.5 <= x <= 2.5`, returns `0.2 * x + 0.5`.
         *
         * @param x Input tensor.
         * @returns Output tensor.
         */
        function hardSigmoid(x) {
            return (0,
                tfc.tidy)(() => {
                    const y = tfc.add(.5, tfc.mul(.2, x));
                    return tfc.clipByValue(y, 0, 1);
                }
                );
        }
        /**
         * Invoke `x` in the training phase, and `alt` otherwise.
         *
         * Porting Note: We do not create placeholder tensors for the `training`
         * boolean flag here, because there is no such thing in the TF.js imperative
         * backend.
         *
         * @param x The function to invoke iff `training` is `true`.
         * @param alt The function to invoke iff `training` is `false`.
         * @param training Boolean flag for whether training phase is active.
         * @returns The return value of `x()` if `training` is `true`, or the return
         *   value of `alt()` if `training` is `false`.
         */
        function inTrainPhase(x, alt, training = false) {
            return training ? x() : alt();
        }

    }
        , {
        "../common": 519,
        "../errors": 529,
        "../utils/math_utils": 572,
        "./common": 514,
        "@tensorflow/tfjs-core": 506
    }],
    517: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.ModelLoggingVerbosity = exports.History = exports.DEFAULT_YIELD_EVERY_MS = exports.CustomCallback = exports.CallbackList = exports.CallbackConstructorRegistry = exports.BaseLogger = exports.BaseCallback = void 0;
        exports.configureCallbacks = configureCallbacks;
        exports.standardizeCallbacks = standardizeCallbacks;
        var _tfjsCore = require("@tensorflow/tfjs-core");
        var _errors = require("./errors");
        var _logs = require("./logs");
        var generic_utils = _interopRequireWildcard(require("./utils/generic_utils"));
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2018 Google LLC
         *
         * Use of this source code is governed by an MIT-style
         * license that can be found in the LICENSE file or at
         * https://opensource.org/licenses/MIT.
         * =============================================================================
         */
        /* Original source: keras/callbacks.py */

        /** Verbosity logging level when fitting a model. */
        var ModelLoggingVerbosity;
        exports.ModelLoggingVerbosity = ModelLoggingVerbosity;
        (function (ModelLoggingVerbosity) {
            ModelLoggingVerbosity[ModelLoggingVerbosity["SILENT"] = 0] = "SILENT";
            ModelLoggingVerbosity[ModelLoggingVerbosity["VERBOSE"] = 1] = "VERBOSE";
        }
        )(ModelLoggingVerbosity || (exports.ModelLoggingVerbosity = ModelLoggingVerbosity = {}));
        /** How often to yield to the main thread when training (in ms). */
        const DEFAULT_YIELD_EVERY_MS = 125;
        /**
         * Abstract base class used to build new callbacks.
         *
         * The `logs` dictionary that callback methods take as argument will contain
         * keys for quantities relevant to the current batch or epoch.
         *
         * Currently, the `.fit()` method of the `Sequential` model class
         * will include the following quantities in the `logs` that
         * it passes to its callbacks:
         *
         * onEpochEnd: Logs include `acc` and `loss`, and optionally include `valLoss`
         *   (if validation is enabled in `fit`), and `valAcc` (if validation and
         *   accuracy monitoring are enabled).
         * onBatchBegin: Logs include `size`, the number of samples in the current
         *   batch.
         * onBatchEnd: Logs include `loss`, and optionally `acc` (if accuracy monitoring
         *   is enabled).
         */
        exports.DEFAULT_YIELD_EVERY_MS = DEFAULT_YIELD_EVERY_MS;
        class BaseCallback {
            constructor() {
                // TODO(michaelterry): This type is a best guess.
                this.validationData = null;
            }
            setParams(params) {
                this.params = params;
            }
            async onEpochBegin(epoch, logs) { }
            async onEpochEnd(epoch, logs) { }
            async onBatchBegin(batch, logs) { }
            async onBatchEnd(batch, logs) { }
            async onTrainBegin(logs) { }
            async onTrainEnd(logs) { }
            // LayersModel needs to call Callback.setModel(), but cannot actually depend
            // on Callback because that creates a cyclic dependency.  Providing this no-op
            // method on BaseCallback breaks the cycle: this way LayersModel can depend on
            // BaseCallback but not on Callback.  The argument is typed as `Container`
            // (the superclass of LayersModel) to avoid recapitulating the cycle. Callback
            // overrides this method and enforces that the argument is really a
            // LayersModel.
            setModel(model) {// Do nothing. Use Callback instead of BaseCallback to track the model.
            }
        }
        /**
         * Container abstracting a list of callbacks.
         */
        exports.BaseCallback = BaseCallback;
        class CallbackList {
            // TODO(cais): When the need arises, uncomment the following lines and
            // implement the queue for time values.
            // private deltaTBatch: number;
            // private deltaTsBatchBegin: Array<number>;
            // private deltaTsBatchEnd: Array<number>;
            /**
             * Constructor of CallbackList.
             * @param callbacks Array of `Callback` instances.
             * @param queueLength Queue length for keeping running statistics over
             *   callback execution time.
             */
            constructor(callbacks, queueLength = 10) {
                // TODO(cais): Make use of queueLength when implementing the queue for time
                // values.
                if (callbacks == null) {
                    callbacks = [];
                }
                this.callbacks = callbacks;
                this.queueLength = queueLength;
            }
            append(callback) {
                this.callbacks.push(callback);
            }
            setParams(params) {
                for (const callback of this.callbacks) {
                    callback.setParams(params);
                }
            }
            setModel(model) {
                for (const callback of this.callbacks) {
                    callback.setModel(model);
                }
            }
            /**
             * Called at the start of an epoch.
             * @param epoch Index of epoch.
             * @param logs Dictionary of logs.
             */
            async onEpochBegin(epoch, logs) {
                if (logs == null) {
                    logs = {};
                }
                for (const callback of this.callbacks) {
                    await callback.onEpochBegin(epoch, logs);
                }
            }
            /**
             * Called at the end of an epoch.
             * @param epoch Index of epoch.
             * @param logs Dictionary of logs.
             */
            async onEpochEnd(epoch, logs) {
                if (logs == null) {
                    logs = {};
                }
                for (const callback of this.callbacks) {
                    await callback.onEpochEnd(epoch, logs);
                }
            }
            /**
             * Called  right before processing a batch.
             * @param batch Index of batch within the current epoch.
             * @param logs Dictionary of logs.
             */
            async onBatchBegin(batch, logs) {
                if (logs == null) {
                    logs = {};
                }
                for (const callback of this.callbacks) {
                    await callback.onBatchBegin(batch, logs);
                }
            }
            /**
             * Called at the end of a batch.
             * @param batch Index of batch within the current epoch.
             * @param logs Dictionary of logs.
             */
            async onBatchEnd(batch, logs) {
                if (logs == null) {
                    logs = {};
                }
                for (const callback of this.callbacks) {
                    await callback.onBatchEnd(batch, logs);
                }
            }
            /**
             * Called at the beginning of training.
             * @param logs Dictionary of logs.
             */
            async onTrainBegin(logs) {
                if (logs == null) {
                    logs = {};
                }
                for (const callback of this.callbacks) {
                    await callback.onTrainBegin(logs);
                }
            }
            /**
             * Called at the end of training.
             * @param logs Dictionary of logs.
             */
            async onTrainEnd(logs) {
                if (logs == null) {
                    logs = {};
                }
                for (const callback of this.callbacks) {
                    await callback.onTrainEnd(logs);
                }
            }
        }
        /**
         * Callback that accumulates epoch averages of metrics.
         *
         * This callback is automatically applied to every LayersModel.
         */
        exports.CallbackList = CallbackList;
        class BaseLogger extends BaseCallback {
            constructor() {
                super();
            }
            async onEpochBegin(epoch) {
                this.seen = 0;
                this.totals = {};
            }
            async onBatchEnd(batch, logs) {
                if (logs == null) {
                    logs = {};
                }
                const batchSize = logs['size'] == null ? 0 : logs['size'];
                this.seen += batchSize;
                for (const key in logs) {
                    const value = logs[key];
                    if (typeof value === 'number') {
                        if (!this.totals.hasOwnProperty(key)) {
                            this.totals[key] = 0;
                        }
                        this.totals[key] = this.totals[key] + value * batchSize;
                    } else {
                        let oldTotalsToDispose;
                        if (key in this.totals) {
                            oldTotalsToDispose = this.totals[key];
                        } else {
                            this.totals[key] = 0;
                        }
                        const total = (0,
                            _tfjsCore.tidy)(() => (0,
                                _tfjsCore.add)(this.totals[key], (0,
                                    _tfjsCore.mul)(value, batchSize)));
                        this.totals[key] = total;
                        if (oldTotalsToDispose != null) {
                            oldTotalsToDispose.dispose();
                        }
                    }
                }
            }
            async onEpochEnd(epoch, logs) {
                if (logs != null) {
                    for (const key of this.params['metrics']) {
                        if (this.totals[key] == null) {
                            continue;
                        }
                        if (typeof this.totals[key] === 'number') {
                            logs[key] = this.totals[key] / this.seen;
                        } else {
                            (0,
                                _tfjsCore.tidy)(() => {
                                    const log = (0,
                                        _tfjsCore.mul)((0,
                                            _tfjsCore.div)(1, this.seen), this.totals[key]);
                                    logs[key] = log;
                                    this.totals[key].dispose();
                                    (0,
                                        _tfjsCore.keep)(logs[key]);
                                }
                                );
                        }
                    }
                }
            }
        }
        /**
         * Callback that records events into a `History` object. This callback is
         * automatically applied to every TF.js Layers model. The `History` object
         * gets returned by the `fit` method of models.
         */
        exports.BaseLogger = BaseLogger;
        class History extends BaseCallback {
            async onTrainBegin(logs) {
                this.epoch = [];
                this.history = {};
            }
            async onEpochEnd(epoch, logs) {
                if (logs == null) {
                    logs = {};
                }
                this.epoch.push(epoch);
                for (const key in logs) {
                    if (this.history[key] == null) {
                        this.history[key] = [];
                    }
                    this.history[key].push(logs[key]);
                }
            }
            /**
             * Await the values of all losses and metrics.
             */
            async syncData() {
                const promises = [];
                const keys = [];
                const indices = [];
                for (const key in this.history) {
                    const valueArray = this.history[key];
                    for (let i = 0; i < valueArray.length; ++i) {
                        if (typeof valueArray[i] !== 'number') {
                            const valueScalar = valueArray[i];
                            promises.push(valueScalar.data());
                            keys.push(key);
                            indices.push(i);
                        }
                    }
                }
                const values = await Promise.all(promises);
                for (let n = 0; n < values.length; ++n) {
                    const tensorToDispose = this.history[keys[n]][indices[n]];
                    tensorToDispose.dispose();
                    this.history[keys[n]][indices[n]] = values[n][0];
                }
            }
        }
        /**
         * Custom callback for training.
         */
        exports.History = History;
        class CustomCallback extends BaseCallback {
            constructor(args, yieldEvery) {
                super();
                this.currentEpoch = 0;
                this.nowFunc = args.nowFunc;
                this.nextFrameFunc = args.nextFrameFunc || _tfjsCore.nextFrame;
                this.yieldEvery = yieldEvery || 'auto';
                if (this.yieldEvery === 'auto') {
                    this.yieldEvery = DEFAULT_YIELD_EVERY_MS;
                }
                if (this.yieldEvery === 'never' && args.onYield != null) {
                    throw new Error('yieldEvery is `never` but you provided an `onYield` callback. ' + 'Either change `yieldEvery` or remove the callback');
                }
                if (_tfjsCore.util.isNumber(this.yieldEvery)) {
                    // Decorate `maybeWait` so it will be called at most once every
                    // `yieldEvery` ms.
                    this.maybeWait = generic_utils.debounce(this.maybeWait.bind(this), this.yieldEvery, this.nowFunc);
                }
                this.trainBegin = args.onTrainBegin;
                this.trainEnd = args.onTrainEnd;
                this.epochBegin = args.onEpochBegin;
                this.epochEnd = args.onEpochEnd;
                this.batchBegin = args.onBatchBegin;
                this.batchEnd = args.onBatchEnd;
                this.yield = args.onYield;
            }
            async maybeWait(epoch, batch, logs) {
                const ps = [];
                if (this.yield != null) {
                    await (0,
                        _logs.resolveScalarsInLogs)(logs);
                    ps.push(this.yield(epoch, batch, logs));
                }
                ps.push(this.nextFrameFunc());
                await Promise.all(ps);
            }
            async onEpochBegin(epoch, logs) {
                this.currentEpoch = epoch;
                if (this.epochBegin != null) {
                    await (0,
                        _logs.resolveScalarsInLogs)(logs);
                    await this.epochBegin(epoch, logs);
                }
            }
            async onEpochEnd(epoch, logs) {
                const ps = [];
                if (this.epochEnd != null) {
                    await (0,
                        _logs.resolveScalarsInLogs)(logs);
                    ps.push(this.epochEnd(epoch, logs));
                }
                if (this.yieldEvery === 'epoch') {
                    ps.push(this.nextFrameFunc());
                }
                await Promise.all(ps);
            }
            async onBatchBegin(batch, logs) {
                if (this.batchBegin != null) {
                    await (0,
                        _logs.resolveScalarsInLogs)(logs);
                    await this.batchBegin(batch, logs);
                }
            }
            async onBatchEnd(batch, logs) {
                const ps = [];
                if (this.batchEnd != null) {
                    await (0,
                        _logs.resolveScalarsInLogs)(logs);
                    ps.push(this.batchEnd(batch, logs));
                }
                if (this.yieldEvery === 'batch') {
                    ps.push(this.nextFrameFunc());
                } else if (_tfjsCore.util.isNumber(this.yieldEvery)) {
                    ps.push(this.maybeWait(this.currentEpoch, batch, logs));
                }
                await Promise.all(ps);
            }
            async onTrainBegin(logs) {
                if (this.trainBegin != null) {
                    await (0,
                        _logs.resolveScalarsInLogs)(logs);
                    await this.trainBegin(logs);
                }
            }
            async onTrainEnd(logs) {
                if (this.trainEnd != null) {
                    await (0,
                        _logs.resolveScalarsInLogs)(logs);
                    await this.trainEnd(logs);
                }
            }
        }
        /**
         * Standardize callbacks or configurations of them to an Array of callbacks.
         */
        exports.CustomCallback = CustomCallback;
        function standardizeCallbacks(callbacks, yieldEvery) {
            if (callbacks == null) {
                callbacks = {};
            }
            if (callbacks instanceof BaseCallback) {
                return [callbacks];
            }
            if (Array.isArray(callbacks) && callbacks[0] instanceof BaseCallback) {
                return callbacks;
            }
            // Convert custom callback configs to custom callback objects.
            const callbackConfigs = generic_utils.toList(callbacks);
            return callbackConfigs.map(callbackConfig => new CustomCallback(callbackConfig, yieldEvery));
        }
        /**
         * A global registry for callback constructors to be used during
         * LayersModel.fit().
         */
        class CallbackConstructorRegistry {
            /**
             * Blocks public access to constructor.
             */
            constructor() { }
            /**
             * Register a tf.LayersModel.fit() callback constructor.
             *
             * The registered callback constructor will be used to instantiate
             * callbacks for every tf.LayersModel.fit() call afterwards.
             *
             * @param verbosityLevel Level of verbosity at which the `callbackConstructor`
             *   is to be reigstered.
             * @param callbackConstructor A no-arg constructor for `tf.Callback`.
             * @throws Error, if the same callbackConstructor has been registered before,
             *   either at the same or a different `verbosityLevel`.
             */
            static registerCallbackConstructor(verbosityLevel, callbackConstructor) {
                _tfjsCore.util.assert(verbosityLevel >= 0 && Number.isInteger(verbosityLevel), () => `Verbosity level is expected to be an integer >= 0, ` + `but got ${verbosityLevel}`);
                CallbackConstructorRegistry.checkForDuplicate(callbackConstructor);
                if (CallbackConstructorRegistry.constructors[verbosityLevel] == null) {
                    CallbackConstructorRegistry.constructors[verbosityLevel] = [];
                }
                CallbackConstructorRegistry.constructors[verbosityLevel].push(callbackConstructor);
            }
            static checkForDuplicate(callbackConstructor) {
                for (const levelName in CallbackConstructorRegistry.constructors) {
                    const constructors = CallbackConstructorRegistry.constructors[+levelName];
                    constructors.forEach(ctor => {
                        if (ctor === callbackConstructor) {
                            throw new _errors.ValueError('Duplicate callback constructor.');
                        }
                    }
                    );
                }
            }
            /**
             * Clear all registered callback constructors.
             */
            static clear() {
                CallbackConstructorRegistry.constructors = {};
            }
            /**
             * Create callbacks using the registered callback constructors.
             *
             * Given `verbosityLevel`, all constructors registered at that level or above
             * will be called and the instantiated callbacks will be used.
             *
             * @param verbosityLevel: Level of verbosity.
             */
            static createCallbacks(verbosityLevel) {
                const constructors = [];
                for (const levelName in CallbackConstructorRegistry.constructors) {
                    const level = +levelName;
                    if (verbosityLevel >= level) {
                        constructors.push(...CallbackConstructorRegistry.constructors[level]);
                    }
                }
                return constructors.map(ctor => new ctor());
            }
        }
        exports.CallbackConstructorRegistry = CallbackConstructorRegistry;
        CallbackConstructorRegistry.constructors = {};
        function configureCallbacks(callbacks, verbose, epochs, initialEpoch, numTrainSamples, stepsPerEpoch, batchSize, doValidation, callbackMetrics) {
            const history = new History();
            const actualCallbacks = [new BaseLogger(), ...CallbackConstructorRegistry.createCallbacks(verbose)];
            if (callbacks != null) {
                actualCallbacks.push(...callbacks);
            }
            actualCallbacks.push(history);
            const callbackList = new CallbackList(actualCallbacks);
            // TODO(cais): Figure out when this LayersModel instance can have a
            // dynamically
            //   set property called 'callback_model' as in PyKeras.
            callbackList.setParams({
                epochs,
                initialEpoch,
                samples: numTrainSamples,
                steps: stepsPerEpoch,
                batchSize,
                verbose,
                doValidation,
                metrics: callbackMetrics
            });
            return {
                callbackList,
                history
            };
        }

    }
        , {
        "./errors": 529,
        "./logs": 561,
        "./utils/generic_utils": 570,
        "@tensorflow/tfjs-core": 506
    }],
    518: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.callbacks = exports.EarlyStopping = exports.Callback = void 0;
        exports.earlyStopping = earlyStopping;
        var _base_callbacks = require("./base_callbacks");
        var _training = require("./engine/training");
        var _errors = require("./errors");
        var _logs = require("./logs");
        /**
         * @license
         * Copyright 2018 Google LLC
         *
         * Use of this source code is governed by an MIT-style
         * license that can be found in the LICENSE file or at
         * https://opensource.org/licenses/MIT.
         * =============================================================================
         */
        /* Original source: keras/callbacks.py */

        class Callback extends _base_callbacks.BaseCallback {
            constructor() {
                super(...arguments);
                /** Instance of `keras.models.Model`. Reference of the model being trained. */
                this.model = null;
            }
            setModel(model) {
                if (!(model instanceof _training.LayersModel)) {
                    throw new Error('model must be a LayersModel, not some other Container');
                }
                this.model = model;
            }
        }
        exports.Callback = Callback;
        function less(currVal, prevVal) {
            return currVal < prevVal;
        }
        function greater(currVal, prevVal) {
            return currVal > prevVal;
        }
        /**
         * A Callback that stops training when a monitored quantity has stopped
         * improving.
         */
        class EarlyStopping extends Callback {
            constructor(args) {
                super();
                if (args == null) {
                    args = {};
                }
                if (args.restoreBestWeights) {
                    throw new _errors.NotImplementedError('restoreBestWeights = True is not implemented in EarlyStopping yet.');
                }
                this.monitor = args.monitor || 'val_loss';
                this.minDelta = Math.abs(args.minDelta || 0);
                this.patience = args.patience || 0;
                this.verbose = args.verbose || 0;
                this.mode = args.mode || 'auto';
                this.baseline = args.baseline;
                if (['auto', 'min', 'max'].indexOf(this.mode) === -1) {
                    console.warn(`EarlyStopping mode '${this.mode}' is invalid. ` + `Falling back to mode 'auto'.`);
                    this.mode = 'auto';
                }
                if (this.mode === 'min') {
                    this.monitorFunc = less;
                } else if (this.mode === 'max') {
                    this.monitorFunc = greater;
                } else {
                    // For mode === 'auto'.
                    if (this.monitor.indexOf('acc') !== -1) {
                        this.monitorFunc = greater;
                    } else {
                        this.monitorFunc = less;
                    }
                }
                if (this.monitorFunc === less) {
                    this.minDelta *= -1;
                }
            }
            async onTrainBegin(logs) {
                this.wait = 0;
                this.stoppedEpoch = 0;
                if (this.baseline != null) {
                    this.best = this.baseline;
                } else {
                    this.best = this.monitorFunc === less ? Infinity : -Infinity;
                }
            }
            async onEpochEnd(epoch, logs) {
                await (0,
                    _logs.resolveScalarsInLogs)(logs);
                const current = this.getMonitorValue(logs);
                if (current == null) {
                    return;
                }
                if (this.monitorFunc(current - this.minDelta, this.best)) {
                    this.best = current;
                    this.wait = 0;
                    // TODO(cais): Logic for restoreBestWeights.
                } else {
                    this.wait++;
                    if (this.wait >= this.patience) {
                        this.stoppedEpoch = epoch;
                        this.model.stopTraining = true;
                    }
                    // TODO(cais): Logic for restoreBestWeights.
                }
            }

            async onTrainEnd(logs) {
                if (this.stoppedEpoch > 0 && this.verbose) {
                    console.log(`Epoch ${this.stoppedEpoch}: early stopping.`);
                }
            }
            getMonitorValue(logs) {
                if (logs == null) {
                    logs = {};
                }
                const monitorValue = logs[this.monitor];
                if (monitorValue == null) {
                    console.warn(`Metric for EarlyStopping ${this.monitor} is not available. ` + `Available metrics are: ${Object.keys(logs)}`);
                }
                return monitorValue;
            }
        }
        /**
         * Factory function for a Callback that stops training when a monitored
         * quantity has stopped improving.
         *
         * Early stopping is a type of regularization, and protects model against
         * overfitting.
         *
         * The following example based on fake data illustrates how this callback
         * can be used during `tf.LayersModel.fit()`:
         *
         * ```js
         * const model = tf.sequential();
         * model.add(tf.layers.dense({
         *   units: 3,
         *   activation: 'softmax',
         *   kernelInitializer: 'ones',
         *   inputShape: [2]
         * }));
         * const xs = tf.tensor2d([1, 2, 3, 4], [2, 2]);
         * const ys = tf.tensor2d([[1, 0, 0], [0, 1, 0]], [2, 3]);
         * const xsVal = tf.tensor2d([4, 3, 2, 1], [2, 2]);
         * const ysVal = tf.tensor2d([[0, 0, 1], [0, 1, 0]], [2, 3]);
         * model.compile(
         *     {loss: 'categoricalCrossentropy', optimizer: 'sgd', metrics: ['acc']});
         *
         * // Without the EarlyStopping callback, the val_acc value would be:
         * //   0.5, 0.5, 0.5, 0.5, ...
         * // With val_acc being monitored, training should stop after the 2nd epoch.
         * const history = await model.fit(xs, ys, {
         *   epochs: 10,
         *   validationData: [xsVal, ysVal],
         *   callbacks: tf.callbacks.earlyStopping({monitor: 'val_acc'})
         * });
         *
         * // Expect to see a length-2 array.
         * console.log(history.history.val_acc);
         * ```
         *
         * @doc {
         *   heading: 'Callbacks',
         *   namespace: 'callbacks'
         * }
         */
        exports.EarlyStopping = EarlyStopping;
        function earlyStopping(args) {
            return new EarlyStopping(args);
        }
        const callbacks = {
            earlyStopping
        };
        exports.callbacks = callbacks;

    }
        , {
        "./base_callbacks": 517,
        "./engine/training": 525,
        "./errors": 529,
        "./logs": 561
    }],
    519: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.checkDataFormat = checkDataFormat;
        exports.checkInterpolationFormat = checkInterpolationFormat;
        exports.checkPaddingMode = checkPaddingMode;
        exports.checkPoolMode = checkPoolMode;
        exports.getScopedTensorName = getScopedTensorName;
        exports.getUniqueTensorName = getUniqueTensorName;
        exports.isValidTensorName = isValidTensorName;
        exports.nameScope = nameScope;
        var _common = require("./keras_format/common");
        var _generic_utils = require("./utils/generic_utils");
        /**
         * @license
         * Copyright 2018 Google LLC
         *
         * Use of this source code is governed by an MIT-style
         * license that can be found in the LICENSE file or at
         * https://opensource.org/licenses/MIT.
         * =============================================================================
         */
        /**
         * Common functions for TensorFlow.js Layers.
         */

        // A map from the requested scoped name of a Tensor to the number of Tensors
        // wanting that name so far.  This allows enforcing name uniqueness by appending
        // an incrementing index, e.g. scope/name, scope/name_1, scope/name_2, etc.
        const nameMap = new Map();
        function checkDataFormat(value) {
            (0,
                _generic_utils.checkStringTypeUnionValue)(_common.VALID_DATA_FORMAT_VALUES, 'DataFormat', value);
        }
        function checkInterpolationFormat(value) {
            (0,
                _generic_utils.checkStringTypeUnionValue)(_common.VALID_INTERPOLATION_FORMAT_VALUES, 'InterpolationFormat', value);
        }
        function checkPaddingMode(value) {
            (0,
                _generic_utils.checkStringTypeUnionValue)(_common.VALID_PADDING_MODE_VALUES, 'PaddingMode', value);
        }
        function checkPoolMode(value) {
            (0,
                _generic_utils.checkStringTypeUnionValue)(_common.VALID_POOL_MODE_VALUES, 'PoolMode', value);
        }
        const _nameScopeStack = [];
        const _nameScopeDivider = '/';
        /**
         * Enter namescope, which can be nested.
         */
        function nameScope(name, fn) {
            _nameScopeStack.push(name);
            try {
                const val = fn();
                _nameScopeStack.pop();
                return val;
            } catch (e) {
                _nameScopeStack.pop();
                throw e;
            }
        }
        /**
         * Get the current namescope as a flat, concatenated string.
         */
        function currentNameScopePrefix() {
            if (_nameScopeStack.length === 0) {
                return '';
            } else {
                return _nameScopeStack.join(_nameScopeDivider) + _nameScopeDivider;
            }
        }
        /**
         * Get the name a Tensor (or Variable) would have if not uniqueified.
         * @param tensorName
         * @return Scoped name string.
         */
        function getScopedTensorName(tensorName) {
            if (!isValidTensorName(tensorName)) {
                throw new Error('Not a valid tensor name: \'' + tensorName + '\'');
            }
            return currentNameScopePrefix() + tensorName;
        }
        /**
         * Get unique names for Tensors and Variables.
         * @param scopedName The fully-qualified name of the Tensor, i.e. as produced by
         *  `getScopedTensorName()`.
         * @return A unique version of the given fully scoped name.
         *   If this is the first time that the scoped name is seen in this session,
         *   then the given `scopedName` is returned unaltered.  If the same name is
         *   seen again (producing a collision), an incrementing suffix is added to the
         *   end of the name, so it takes the form 'scope/name_1', 'scope/name_2', etc.
         */
        function getUniqueTensorName(scopedName) {
            if (!isValidTensorName(scopedName)) {
                throw new Error('Not a valid tensor name: \'' + scopedName + '\'');
            }
            if (!nameMap.has(scopedName)) {
                nameMap.set(scopedName, 0);
            }
            const index = nameMap.get(scopedName);
            nameMap.set(scopedName, nameMap.get(scopedName) + 1);
            if (index > 0) {
                const result = `${scopedName}_${index}`;
                // Mark the composed name as used in case someone wants
                // to call getUniqueTensorName("name_1").
                nameMap.set(result, 1);
                return result;
            } else {
                return scopedName;
            }
        }
        const tensorNameRegex = new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\._\/]*$/);
        /**
         * Determine whether a string is a valid tensor name.
         * @param name
         * @returns A Boolean indicating whether `name` is a valid tensor name.
         */
        function isValidTensorName(name) {
            return !!name.match(tensorNameRegex);
        }

    }
        , {
        "./keras_format/common": 540,
        "./utils/generic_utils": 570
    }],
    520: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.UnitNorm = exports.NonNeg = exports.MinMaxNorm = exports.MaxNorm = exports.Constraint = exports.CONSTRAINT_IDENTIFIER_REGISTRY_SYMBOL_MAP = void 0;
        exports.deserializeConstraint = deserializeConstraint;
        exports.getConstraint = getConstraint;
        exports.serializeConstraint = serializeConstraint;
        var tfc = _interopRequireWildcard(require("@tensorflow/tfjs-core"));
        var _common = require("./backend/common");
        var _generic_utils = require("./utils/generic_utils");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2018 Google LLC
         *
         * Use of this source code is governed by an MIT-style
         * license that can be found in the LICENSE file or at
         * https://opensource.org/licenses/MIT.
         * =============================================================================
         */
        /* Original source: keras/contraints.py */

        /**
         * Helper function used by many of the Constraints to find the L2Norms.
         */
        function calcL2Norms(w, axis) {
            return (0,
                tfc.tidy)(() => tfc.sqrt(tfc.sum(tfc.mul(w, w), axis, true)));
        }
        /**
         * Base class for functions that impose constraints on weight values
         *
         * @doc {
         *   heading: 'Constraints',
         *   subheading: 'Classes',
         *   namespace: 'constraints'
         * }
         */
        class Constraint extends tfc.serialization.Serializable {
            getConfig() {
                return {};
            }
        }
        exports.Constraint = Constraint;
        class MaxNorm extends Constraint {
            constructor(args) {
                super();
                this.defaultMaxValue = 2;
                this.defaultAxis = 0;
                this.maxValue = args.maxValue != null ? args.maxValue : this.defaultMaxValue;
                this.axis = args.axis != null ? args.axis : this.defaultAxis;
            }
            apply(w) {
                return (0,
                    tfc.tidy)(() => {
                        const norms = calcL2Norms(w, this.axis);
                        const desired = tfc.clipByValue(norms, 0, this.maxValue);
                        return tfc.mul(w, tfc.div(desired, tfc.add((0,
                            _common.epsilon)(), norms)));
                    }
                    );
            }
            getConfig() {
                return {
                    maxValue: this.maxValue,
                    axis: this.axis
                };
            }
        }
        /** @nocollapse */
        exports.MaxNorm = MaxNorm;
        MaxNorm.className = 'MaxNorm';
        tfc.serialization.registerClass(MaxNorm);
        class UnitNorm extends Constraint {
            constructor(args) {
                super();
                this.defaultAxis = 0;
                this.axis = args.axis != null ? args.axis : this.defaultAxis;
            }
            apply(w) {
                return (0,
                    tfc.tidy)(() => tfc.div(w, tfc.add((0,
                        _common.epsilon)(), calcL2Norms(w, this.axis))));
            }
            getConfig() {
                return {
                    axis: this.axis
                };
            }
        }
        /** @nocollapse */
        exports.UnitNorm = UnitNorm;
        UnitNorm.className = 'UnitNorm';
        tfc.serialization.registerClass(UnitNorm);
        class NonNeg extends Constraint {
            apply(w) {
                return tfc.relu(w);
            }
        }
        /** @nocollapse */
        exports.NonNeg = NonNeg;
        NonNeg.className = 'NonNeg';
        tfc.serialization.registerClass(NonNeg);
        class MinMaxNorm extends Constraint {
            constructor(args) {
                super();
                this.defaultMinValue = 0.0;
                this.defaultMaxValue = 1.0;
                this.defaultRate = 1.0;
                this.defaultAxis = 0;
                this.minValue = args.minValue != null ? args.minValue : this.defaultMinValue;
                this.maxValue = args.maxValue != null ? args.maxValue : this.defaultMaxValue;
                this.rate = args.rate != null ? args.rate : this.defaultRate;
                this.axis = args.axis != null ? args.axis : this.defaultAxis;
            }
            apply(w) {
                return (0,
                    tfc.tidy)(() => {
                        const norms = calcL2Norms(w, this.axis);
                        const desired = tfc.add(tfc.mul(this.rate, tfc.clipByValue(norms, this.minValue, this.maxValue)), tfc.mul(1.0 - this.rate, norms));
                        return tfc.mul(w, tfc.div(desired, tfc.add((0,
                            _common.epsilon)(), norms)));
                    }
                    );
            }
            getConfig() {
                return {
                    minValue: this.minValue,
                    maxValue: this.maxValue,
                    rate: this.rate,
                    axis: this.axis
                };
            }
        }
        /** @nocollapse */
        exports.MinMaxNorm = MinMaxNorm;
        MinMaxNorm.className = 'MinMaxNorm';
        tfc.serialization.registerClass(MinMaxNorm);
        // Maps the JavaScript-like identifier keys to the corresponding registry
        // symbols.
        const CONSTRAINT_IDENTIFIER_REGISTRY_SYMBOL_MAP = {
            'maxNorm': 'MaxNorm',
            'minMaxNorm': 'MinMaxNorm',
            'nonNeg': 'NonNeg',
            'unitNorm': 'UnitNorm'
        };
        exports.CONSTRAINT_IDENTIFIER_REGISTRY_SYMBOL_MAP = CONSTRAINT_IDENTIFIER_REGISTRY_SYMBOL_MAP;
        function serializeConstraint(constraint) {
            return (0,
                _generic_utils.serializeKerasObject)(constraint);
        }
        function deserializeConstraint(config, customObjects = {}) {
            return (0,
                _generic_utils.deserializeKerasObject)(config, tfc.serialization.SerializationMap.getMap().classNameMap, customObjects, 'constraint');
        }
        function getConstraint(identifier) {
            if (identifier == null) {
                return null;
            }
            if (typeof identifier === 'string') {
                const className = identifier in CONSTRAINT_IDENTIFIER_REGISTRY_SYMBOL_MAP ? CONSTRAINT_IDENTIFIER_REGISTRY_SYMBOL_MAP[identifier] : identifier;
                const config = {
                    className,
                    config: {}
                };
                return deserializeConstraint(config);
            } else if (identifier instanceof Constraint) {
                return identifier;
            } else {
                return deserializeConstraint(identifier);
            }
        }

    }
        , {
        "./backend/common": 514,
        "./utils/generic_utils": 570,
        "@tensorflow/tfjs-core": 506
    }],
    521: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.Container = void 0;
        var _tfjsCore = require("@tensorflow/tfjs-core");
        var _state = require("../backend/state");
        var _errors = require("../errors");
        var _serialization = require("../layers/serialization");
        var generic_utils = _interopRequireWildcard(require("../utils/generic_utils"));
        var _serialization_utils = require("../utils/serialization_utils");
        var types_utils = _interopRequireWildcard(require("../utils/types_utils"));
        var _variables = require("../variables");
        var _version = require("../version");
        var _executor = require("./executor");
        var _input_layer = require("./input_layer");
        var _topology = require("./topology");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2018 Google LLC
         *
         * Use of this source code is governed by an MIT-style
         * license that can be found in the LICENSE file or at
         * https://opensource.org/licenses/MIT.
         * =============================================================================
         */
        /* Original source: keras/engine/topology.py */

        /**
         * A Container is a directed acyclic graph of layers.
         *
         * It is the topological form of a "model". A LayersModel
         * is simply a Container with added training routines.
         *
         */
        class Container extends _topology.Layer {
            constructor(args) {
                // No args passed to super's constructor.
                super({});
                this.containerNodes = new Set();
                this.name = args.name;
                if (this.name == null) {
                    const prefix = this.getClassName().toLowerCase();
                    this.name = (0,
                        _state.getUid)(prefix);
                }
                this.supportsMasking = false;
                this.trainable_ = true;
                // TODO(michaelterry): Initialize perInputLosses/Updates here.
                // Container-specific properties.
                if (Array.isArray(args.inputs)) {
                    this.inputs = args.inputs.slice();
                } else {
                    this.inputs = [args.inputs];
                }
                if (Array.isArray(args.outputs)) {
                    this.outputs = args.outputs.slice();
                } else {
                    this.outputs = [args.outputs];
                }
                // Check for redundancy in inputs.
                if (generic_utils.unique(this.inputs).length !== this.inputs.length) {
                    throw new _errors.ValueError('The list of inputs passed to the model is ' + 'redundant. All inputs should only appear once. Found: ' + `${this.inputs.map(x => x.name)}`);
                }
                // Check for redundancy in outputs.
                if (generic_utils.unique(this.outputs).length !== this.outputs.length) {
                    console.warn('The list of outputs passed to the model is redundant. ' + 'All outputs should only appear once. Found: ' + `${this.outputs.map(x => x.name)}`);
                }
                /*
                  List of initial layers (1 to 1 mapping with this.inputs, hence the same
                  layer might appear twice)
                */
                this.inputLayers = [];
                this.inputLayersNodeIndices = [];
                this.inputLayersTensorIndices = [];
                /*
                  List of layers (1 to 1 mapping with this.outputs, hence the same layer
                  might appear twice)
                */
                this.outputLayers = [];
                this.outputLayersNodeIndices = [];
                this.outputLayersTensorIndices = [];
                /*
                  All layers in order of horizontal graph traversal. Entries are unique.
                  Includes input and output layers.
                */
                this.layers = [];
                /*
                  References to container layers that were constructed internally. We need
                  these to properly dispose of tensors from nested containers.
                */
                this.internalContainerRefs = [];
                // TODO(michaelterry): Determine if caching still needed with eager
                // backend.
                /*
                  This is for performance optimization when calling the Container on new
                  inputs. Every time the Container is called on a set on input tensors,
                  we compute the output tensors, output masks and output shapes in one pass,
                  then cache them here. When one of these outputs is queried later,
                  we retrieve it from there instead of recomputing it.
                */
                // this.outputTensorCache = {};
                // this.outputShapeCache = {};
                // Build this.outputLayers:
                for (const x of this.outputs) {
                    const layer = x.sourceLayer;
                    const nodeIndex = x.nodeIndex;
                    const tensorIndex = x.tensorIndex;
                    this.outputLayers.push(layer);
                    this.outputLayersNodeIndices.push(nodeIndex);
                    this.outputLayersTensorIndices.push(tensorIndex);
                }
                // TODO(michaelterry): Add output mask cache code.
                // Build this.inputLayers:
                for (const x of this.inputs) {
                    const layer = x.sourceLayer;
                    const nodeIndex = x.nodeIndex;
                    const tensorIndex = x.tensorIndex;
                    /*
                      It's supposed to be an input layer, so only one node
                      and one tensor output.
                    */
                    generic_utils.assert(nodeIndex === 0, 'input layer has >1 nodes');
                    generic_utils.assert(tensorIndex === 0, 'input layer has >1 tensors');
                    this.inputLayers.push(layer);
                    this.inputLayersNodeIndices.push(nodeIndex);
                    this.inputLayersTensorIndices.push(tensorIndex);
                }
                // Build this.inputNames and this.outputNames.
                this.inputNames = [];
                this.outputNames = [];
                this.feedInputShapes = [];
                this.feedInputNames = [];
                this.feedOutputNames = [];
                for (let i = 0; i < this.inputLayers.length; i++) {
                    const layer = this.inputLayers[i];
                    // Check that layer is an InputLayer.
                    if (!(layer instanceof _input_layer.InputLayer)) {
                        throw new TypeError('Input layers to a LayersModel must be InputLayer objects. ' + `Received inputs: ${args.inputs}. ` + `Input ${i} (0-based) originates ` + `from layer type ${layer.getClassName()}.`);
                    }
                    this.inputNames.push(layer.name);
                    this.feedInputShapes.push(layer.batchInputShape);
                    this.feedInputNames.push(layer.name);
                }
                for (const layer of this.outputLayers) {
                    this.outputNames.push(layer.name);
                }
                this.internalInputShapes = this.inputs.map(x => x.shape);
                this.internalOutputShapes = this.outputs.map(x => x.shape);
                /*
                  Container_nodes: set of nodes included in the graph (not all nodes
                  included in the layers are relevant to the current graph).
                */
                // ids of all nodes relevant to the Container:
                const nodesDepths = {};
                // To recover nodes from their ID.
                const nodeIDToNode = {};
                const layersDepths = {};
                // To layers from their ID.
                const layerIDToLayer = {};
                const layerIndices = {};
                const nodesInDecreasingDepth = [];
                /**
                 * Builds a map of the graph of layers.
                 *
                 * This recursively updates the map `layerIndices`,
                 * the list `nodesInDecreasingDepth` and the set `containerNodes`.
                 *
                 * @param tensor Some tensor in a graph.
                 * @param finishedNodes Set of nodes whose subgraphs have been traversed
                 *         completely. Useful to prevent duplicated work.
                 * @param nodesInProgress Set of nodes that are currently active on the
                 *         recursion stack. Useful to detect cycles.
                 * @param layer Layer from which `tensor` comes from. If not provided,
                 *   will be obtained from tensor.sourceLayer.
                 * @param nodeIndex Node index from which `tensor` comes from.
                 * @param tensorIndex TensorIndex from which `tensor` comes from.
                 *
                 * @exception RuntimeError if a cycle is detected.
                 */
                const buildMapOfGraph = (tensor, finishedNodes, nodesInProgress, layer, nodeIndex, tensorIndex) => {
                    if (layer == null || nodeIndex == null || tensorIndex == null) {
                        layer = tensor.sourceLayer;
                        nodeIndex = tensor.nodeIndex;
                        tensorIndex = tensor.tensorIndex;
                    }
                    const node = layer.inboundNodes[nodeIndex];
                    // Prevent cycles.
                    if (nodesInProgress.indexOf(node) !== -1) {
                        throw new _errors.RuntimeError(`The tensor ${tensor.name} at layer "${layer.name}" ` + 'is part of a cycle.');
                    }
                    // Don't repeat work for shared subgraphs
                    if (finishedNodes.indexOf(node) !== -1) {
                        return;
                    }
                    // Update containerNodes.
                    this.containerNodes.add(Container.nodeKey(layer, nodeIndex));
                    // Store the traversal order for layer sorting.
                    if (!(layer.id in layerIndices)) {
                        layerIndices[layer.id] = Object.keys(layerIndices).length;
                    }
                    if (nodesInProgress.indexOf(node) === -1) {
                        nodesInProgress.push(node);
                    }
                    // Propagate to all previous tensors connected to this node.
                    const numInboundLayers = node.inboundLayers.length;
                    for (let i = 0; i < numInboundLayers; i++) {
                        const x = node.inputTensors[i];
                        const layer = node.inboundLayers[i];
                        const nodeIndex = node.nodeIndices[i];
                        const tensorIndex = node.tensorIndices[i];
                        buildMapOfGraph(x, finishedNodes, nodesInProgress, layer, nodeIndex, tensorIndex);
                    }
                    finishedNodes.push(node);
                    while (nodesInProgress.indexOf(node) >= 0) {
                        nodesInProgress.splice(nodesInProgress.indexOf(node), 1);
                    }
                    nodesInDecreasingDepth.push(node);
                }
                    ;
                const finishedNodes = [];
                const nodesInProgress = [];
                for (const x of this.outputs) {
                    buildMapOfGraph(x, finishedNodes, nodesInProgress);
                }
                const reversedNodesInDecreasingDepth = nodesInDecreasingDepth.slice().reverse();
                for (const node of reversedNodesInDecreasingDepth) {
                    nodeIDToNode[node.id] = node;
                    // If the depth is not set, the node has no outbound nodes (depth 0).
                    if (!(node.id in nodesDepths)) {
                        nodesDepths[node.id] = 0;
                    }
                    let depth = nodesDepths[node.id];
                    // Update the depth of the corresponding layer
                    const previousDepth = layersDepths[node.outboundLayer.id] == null ? 0 : layersDepths[node.outboundLayer.id];
                    /*
                      If we've seen this layer before at a higher depth, we should use that
                      depth instead of the node depth.  This is necessary for shared layers
                      that have inputs at different depth levels in the graph.
                    */
                    depth = Math.max(depth, previousDepth);
                    layersDepths[node.outboundLayer.id] = depth;
                    layerIDToLayer[node.outboundLayer.id] = node.outboundLayer;
                    nodesDepths[node.id] = depth;
                    // Update the depth of inbound nodes.
                    for (let i = 0; i < node.inboundLayers.length; i++) {
                        const inboundLayer = node.inboundLayers[i];
                        const nodeIndex = node.nodeIndices[i];
                        const inboundNode = inboundLayer.inboundNodes[nodeIndex];
                        const previousDepth = nodesDepths[inboundNode.id] == null ? 0 : nodesDepths[inboundNode.id];
                        nodesDepths[inboundNode.id] = Math.max(depth + 1, previousDepth);
                        nodeIDToNode[inboundNode.id] = inboundNode;
                    }
                }
                // Build a dict {depth: list of nodes with this depth}
                const nodesByDepth = {};
                for (const nodeID in nodesDepths) {
                    const depth = nodesDepths[nodeID];
                    if (!(depth in nodesByDepth)) {
                        nodesByDepth[depth] = [];
                    }
                    nodesByDepth[depth].push(nodeIDToNode[nodeID]);
                }
                // Build a dict {depth: list of layers with this depth}
                const layersByDepth = {};
                for (const layerID in layersDepths) {
                    const depth = layersDepths[layerID];
                    if (!(depth in layersByDepth)) {
                        layersByDepth[depth] = [];
                    }
                    layersByDepth[depth].push(layerIDToLayer[layerID]);
                }
                // Get sorted list of layer depths.
                let depthKeys = Object.keys(layersByDepth).map(x => parseInt(x, 10)).sort(generic_utils.reverseNumberCompare);
                // Set this.layers and this.layersByDepth.
                this.layers = [];
                for (const depth of depthKeys) {
                    const layersForDepth = layersByDepth[depth];
                    // Container.layers needs to have a deterministic order:
                    // here we order them by traversal order.
                    layersForDepth.sort((a, b) => {
                        const aIndex = layerIndices[a.id];
                        const bIndex = layerIndices[b.id];
                        if (aIndex < bIndex) {
                            return -1;
                        }
                        if (aIndex > bIndex) {
                            return 1;
                        }
                        return 0;
                    }
                    );
                    for (const layer of layersForDepth) {
                        if (layer instanceof Container) {
                            this.internalContainerRefs.push(layer);
                        }
                        this.layers.push(layer);
                    }
                }
                this.layersByDepth = layersByDepth;
                // Get sorted list of node depths;
                depthKeys = Object.keys(nodesByDepth).map(x => parseInt(x, 10)).sort(generic_utils.reverseNumberCompare);
                // Check that all tensors required are computable.
                // computable_tensors: all tensors in the graph
                // that can be computed from the inputs provided.
                const computableTensors = this.inputs.slice();
                // To provide a better error msg.
                const layersWithCompleteInput = [];
                for (const depth of depthKeys) {
                    for (const node of nodesByDepth[depth]) {
                        const layer = node.outboundLayer;
                        if (layer != null) {
                            for (const x of node.inputTensors) {
                                if (computableTensors.indexOf(x) === -1) {
                                    throw new _errors.RuntimeError(`Graph disconnected: cannot obtain value for tensor ${x}` + ` at layer "${layer.name}". ` + 'The following previous layers were accessed without ' + `issue: ${layersWithCompleteInput}`);
                                }
                            }
                            for (const x of node.outputTensors) {
                                computableTensors.push(x);
                            }
                            layersWithCompleteInput.push(layer.name);
                        }
                    }
                }
                // Set this.containerNodes and this.nodesByDepth.
                this.nodesByDepth = nodesByDepth;
                // Ensure name unicity, which will be crucial for serialization
                // (since serialized nodes refer to layers by their name).
                const allNames = this.layers.map(x => x.name);
                for (const name of allNames) {
                    const numOccurrences = allNames.filter(x => x === name).length;
                    if (numOccurrences !== 1) {
                        throw new _errors.RuntimeError(`The name "${name}" is used ${numOccurrences} times ` + 'in the model. All layer names should be unique. Layer names: ' + JSON.stringify(allNames));
                    }
                }
                // Layer parameters.
                // The new container starts with a single inbound node
                // for its inputs, and no outbound nodes.
                // Will be appended to by future calls to apply().
                this.outboundNodes = [];
                // Will be appended to below, and by future calls to apply().
                this.inboundNodes = [];
                // Create the node linking internal inputs to internal outputs.
                // (This call has side effects.)
                // tslint:disable-next-line:no-unused-expression
                new _topology.Node({
                    outboundLayer: this,
                    inboundLayers: [],
                    nodeIndices: [],
                    tensorIndices: [],
                    inputTensors: this.inputs,
                    outputTensors: this.outputs,
                    inputMasks: this.inputs.map(x => null),
                    outputMasks: this.outputs.map(x => null),
                    inputShapes: this.inputs.map(x => x.shape),
                    outputShapes: this.outputs.map(x => x.shape)
                });
                this.built = true;
                this._refCount = 1;
                // The ref count of a container always start at 1.
            }

            assertNotDisposed() {
                if (this._refCount === 0) {
                    throw new Error(`Container '${this.name}' is already disposed.`);
                }
            }
            /**
             * Attempt to dispose a LayersModel's weights.
             *
             * This method decrease the reference count of the LayersModel object by 1.
             *
             * A LayersModel is reference-counted. Its reference count is incremented by 1
             * when it is first constructed and when it is used as a Layer of another
             * LayersModel.
             *
             * If the reference count of a LayersModel becomes 0, the `dispose` method of
             * all its constituent `Layer`s will be called.
             *
             * Note: If the reference count is greater than 0 after the decrement, the
             * `dispose` method of its constituent `Layer`s will *not* be called.
             *
             * After a LayersModel is disposed, it cannot be used in calls such as
             * 'predict`, `evaluate` or `fit` anymore.
             *
             * @returns A DisposeResult Object with the following fields:
             *   - refCountAfterDispose: The reference count of the LayersModel after this
             *     `dispose()` call.
             *   - numDisposedVariables: Number of `tf.Variable`s (i.e., weights) disposed
             *     during this `dispose()` call.
             * @throws {Error} If the layer is not built yet, or if the LayersModel has
             *   already been disposed.
             */
            dispose() {
                this.assertNotDisposed();
                const result = {
                    refCountAfterDispose: null,
                    numDisposedVariables: 0
                };
                if (--this._refCount === 0) {
                    for (const layer of this.layers) {
                        result.numDisposedVariables += layer.dispose().numDisposedVariables;
                    }
                    // Call dispose on each internally created container layer again to ensure
                    // their refCounts hit zero and their tensors are subsequently deleted.
                    for (const container of this.internalContainerRefs) {
                        result.numDisposedVariables += container.dispose().numDisposedVariables;
                    }
                }
                result.refCountAfterDispose = this._refCount;
                return result;
            }
            get trainable() {
                return this.trainable_;
            }
            set trainable(trainable) {
                this.layers.forEach(layer => {
                    // tslint:disable-next-line:no-any
                    layer._trainableWeights.forEach(w => w.trainable = trainable);
                }
                );
                this.trainable_ = trainable;
            }
            get trainableWeights() {
                // Porting Note: This check below is to prevent errors where the
                //   _trainableWeights inherited from the parent class (Layer) gets
                //   inadvertently used.
                if (this._trainableWeights.length > 0) {
                    throw new _errors.ValueError('Container instance unexpectedly contains _trainableWeights.' + 'The trainable weights of a Container are a union of the ' + 'trainable weights of its consituent Layers. Its own ' + '_trainableWeights must remain an empty Array.');
                }
                if (!this.trainable) {
                    return [];
                }
                let weights = [];
                for (const layer of this.layers) {
                    weights = weights.concat(layer.trainableWeights);
                }
                return weights;
            }
            get nonTrainableWeights() {
                const weights = [];
                for (const layer of this.layers) {
                    weights.push(...layer.nonTrainableWeights);
                }
                if (!this.trainable) {
                    const trainableWeights = [];
                    for (const layer of this.layers) {
                        trainableWeights.push(...layer.trainableWeights);
                    }
                    return trainableWeights.concat(weights);
                }
                return weights;
            }
            get weights() {
                return this.trainableWeights.concat(this.nonTrainableWeights);
            }
            /**
             * Loads all layer weights from a JSON object.
             *
             * Porting Note: HDF5 weight files cannot be directly loaded in JavaScript /
             *   TypeScript. The utility script at `scripts/pykeras.py` offers means
             *   to convert them into JSON strings compatible with this method.
             * Porting Note: TensorFlow.js Layers supports only loading by name currently.
             *
             * @param weights A JSON mapping weight names to weight values as nested
             *   arrays of numbers, or a `NamedTensorMap`, i.e., a JSON mapping weight
             *   names to `tf.Tensor` objects.
             * @param strict Require that the provided weights exactly match those
             *   required by the container.  Default: `true`.  Passing `false` means that
             *   extra weights and missing weights will be silently ignored.
             */
            loadWeights(weights, strict = true) {
                const nameToWeight = {};
                let totalWeightsCount = 0;
                for (const layer of this.layers) {
                    for (const weight of layer.weights) {
                        if (nameToWeight[weight.originalName] != null) {
                            throw new _errors.ValueError(`Duplicate weight name: ${weight.originalName}`);
                        }
                        nameToWeight[weight.originalName] = weight;
                        totalWeightsCount++;
                    }
                }
                const weightValueTuples = [];
                for (const name in weights) {
                    // TF 2.2.0 added cell name to the weight name in the format of
                    // layer_name/cell_name/weight_name, we need to remove
                    // the inner cell name.
                    let validatedName = name;
                    if (nameToWeight[name] == null) {
                        const tokens = name.split('/');
                        const shortenNameArray = tokens.slice(0, -2).concat([tokens[tokens.length - 1]]);
                        validatedName = shortenNameArray.join('/');
                    }
                    if (nameToWeight[validatedName] != null) {
                        weightValueTuples.push([nameToWeight[validatedName], weights[name]]);
                    } else if (strict) {
                        throw new _errors.ValueError(`Provided weight data has no target variable: ${name}`);
                    }
                    delete nameToWeight[validatedName];
                }
                if (strict) {
                    // Check that all weights are set.
                    const unsetNames = [];
                    for (const name in nameToWeight) {
                        unsetNames.push(name);
                    }
                    if (unsetNames.length > 0) {
                        throw new _errors.ValueError(`${unsetNames.length} of ${totalWeightsCount} weights are not set: ` + `${unsetNames}`);
                    }
                }
                (0,
                    _variables.batchSetValue)(weightValueTuples);
            }
            /**
             * Util shared between different serialization methods.
             * @returns LayersModel config with Keras version information added.
             */
            updatedConfig() {
                const theConfig = this.getConfig();
                const modelConfig = {};
                modelConfig['className'] = this.getClassName();
                modelConfig['config'] = theConfig;
                modelConfig['kerasVersion'] = `tfjs-layers ${_version.version}`;
                // TODO(nielsene): Replace something like K.backend() once
                // possible.
                modelConfig['backend'] = 'TensorFlow.js';
                return modelConfig;
            }
            /**
             * Returns a JSON string containing the network configuration.
             *
             * To load a network from a JSON save file, use
             * models.modelFromJSON(jsonString);
             * @param extraJsonArgs Unused in tfjs-layers, maintained for PyKeras
             * @param returnString Whether the return value should be stringified
             *    (default: `true`).
             * @returns a JSON string if `returnString` (default), or a JSON object if
             *   `!returnString`.
             */
            // tslint:disable-next-line:no-any
            toJSON(unused, returnString = true) {
                const modelConfig = (0,
                    _serialization_utils.convertTsToPythonic)(this.updatedConfig());
                return returnString ? JSON.stringify(modelConfig) : modelConfig;
            }
            /**
             * Call the model on new inputs.
             *
             * In this case `call` just reapplies all ops in the graph to the new inputs
             * (e.g. build a new computational graph from the provided inputs).
             *
             * @param inputs A tensor or list of tensors.
             * @param mask A mask or list of masks. A mask can be either a tensor or null
             *   (no mask).
             *
             * @return A tensor if there is a single output, or a list of tensors if there
             *   are more than one outputs.
             */
            call(inputs, kwargs) {
                return (0,
                    _tfjsCore.tidy)(() => {
                        inputs = generic_utils.toList(inputs);
                        const feedDict = new _executor.FeedDict();
                        for (let i = 0; i < this.inputs.length; ++i) {
                            feedDict.add(this.inputs[i], inputs[i]);
                        }
                        return (0,
                            _executor.execute)(this.outputs, feedDict, kwargs);
                    }
                    );
            }
            /**
             * Computes an output mask tensor.
             *
             * @param inputs Tensor or list of tensors.
             * @param mask Tensor or list of tensors.
             *
             * @return null or a tensor (or list of tensors, one per output tensor of the
             * layer).
             */
            computeMask(inputs, mask) {
                return (0,
                    _tfjsCore.tidy)(() => {
                        inputs = generic_utils.toList(inputs);
                        let masks;
                        if (mask == null) {
                            masks = generic_utils.pyListRepeat(null, inputs.length);
                        } else {
                            masks = generic_utils.toList(mask);
                        }
                        // TODO(michaelterry): Add support for mask caching.
                        return this.runInternalGraph(inputs, masks)[1];
                    }
                    );
            }
            /**
             * Computes the output shape of the layer.
             *
             * Assumes that the layer will be built to match that input shape provided.
             *
             * @param inputShape A shape (tuple of integers) or a list of shape tuples
             *   (one per output tensor of the layer). Shape tuples can include null for
             *   free dimensions, instead of an integer.
             */
            computeOutputShape(inputShape) {
                const inputShapes = types_utils.normalizeShapeList(inputShape);
                if (inputShapes.length !== this.inputLayers.length) {
                    throw new _errors.ValueError(`Invalid inputShape argument ${inputShape}: ` + `model has ${this.inputLayers.length} tensor inputs.`);
                }
                // TODO(michaelterry): Add caching
                const layersToOutputShapes = {};
                for (let i = 0; i < inputShapes.length; i++) {
                    const layer = this.inputLayers[i];
                    const inputShape = inputShapes[i];
                    // It's an input layer: computeOutputShape is identity,
                    // and there is only one node and one tensor output.
                    const shapeKey = layer.name + '_0_0';
                    layersToOutputShapes[shapeKey] = inputShape;
                }
                const depthKeys = Object.keys(this.nodesByDepth).map(x => parseInt(x, 10)).sort(generic_utils.reverseNumberCompare);
                // Iterate over nodes, by depth level.
                if (depthKeys.length > 1) {
                    for (const depth of depthKeys) {
                        const nodes = this.nodesByDepth[depth];
                        for (const node of nodes) {
                            // This is always a single layer, never a list.
                            const layer = node.outboundLayer;
                            if (this.inputLayers.map(x => x.id).indexOf(layer.id) !== -1) {
                                // We've already covered the input layers a few lines above.
                                continue;
                            }
                            // Potentially redundant list, same size of node.inputTensors.
                            const inputShapes = [];
                            for (let j = 0; j < node.inboundLayers.length; j++) {
                                const inboundLayer = node.inboundLayers[j];
                                const nodeIndex = node.nodeIndices[j];
                                const tensorIndex = node.tensorIndices[j];
                                const shapeKey = `${inboundLayer.name}_${nodeIndex}_${tensorIndex}`;
                                const inputShape = layersToOutputShapes[shapeKey];
                                inputShapes.push(inputShape);
                            }
                            const outputShape = layer.computeOutputShape(generic_utils.singletonOrArray(inputShapes));
                            const outputShapes = types_utils.normalizeShapeList(outputShape);
                            const nodeIndex = layer.inboundNodes.indexOf(node);
                            for (let j = 0; j < outputShapes.length; j++) {
                                const shapeKey = `${layer.name}_${nodeIndex}_${j}`;
                                layersToOutputShapes[shapeKey] = outputShapes[j];
                            }
                        }
                    }
                }
                // Read final output shapes from layersToOutputShapes.
                const outputShapes = [];
                const outputShapeKeys = [];
                for (let i = 0; i < this.outputLayers.length; i++) {
                    const layer = this.outputLayers[i];
                    const nodeIndex = this.outputLayersNodeIndices[i];
                    const tensorIndex = this.outputLayersTensorIndices[i];
                    const shapeKey = `${layer.name}_${nodeIndex}_${tensorIndex}`;
                    outputShapeKeys.push(shapeKey);
                }
                for (let i = 0; i < outputShapeKeys.length; i++) {
                    const key = outputShapeKeys[i];
                    generic_utils.assert(key in layersToOutputShapes);
                    outputShapes.push(layersToOutputShapes[key]);
                }
                // TODO(michaelterry): Update cache
                return generic_utils.singletonOrArray(outputShapes);
            }
            /**
             * Computes output tensors for new inputs.
             *
             * Note:
             *   - Expects `inputs` to be a list (potentially with 1 element).
             *
             * @param inputs List of tensors
             * @param masks List of masks (tensors or null).
             * @return Three lists: outputTensors, outputMasks, outputShapes
             */
            runInternalGraph(inputs, masks) {
                if (masks == null) {
                    masks = generic_utils.pyListRepeat(null, inputs.length);
                }
                // Dictionary mapping reference tensors to tuples
                // (computed tensor, compute mask)
                // we assume a 1:1 mapping from tensor to mask
                // TODO: raise exception when a `.computeMask()` call
                // does not return a list the same size as `call`
                const tensorMap = {};
                for (let i = 0; i < this.inputs.length; ++i) {
                    const x = this.inputs[i];
                    const y = inputs[i];
                    const mask = masks[i];
                    tensorMap[x.id] = [y, mask];
                }
                const depthKeys = Object.keys(this.nodesByDepth).map(x => parseInt(x, 10)).sort(generic_utils.reverseNumberCompare);
                for (const depth of depthKeys) {
                    const nodes = this.nodesByDepth[depth];
                    for (const node of nodes) {
                        // This is always a single layer, never a list.
                        const layer = node.outboundLayer;
                        const referenceInputTensors = node.inputTensors;
                        const referenceOutputTensors = node.outputTensors;
                        // If all previous input tensors are available in tensorMap,
                        // then call node.inboundLayer on them.
                        // List of tuples [input, mask]:
                        const computedData = new Array();
                        for (const x of referenceInputTensors) {
                            if (x.id in tensorMap) {
                                computedData.push(tensorMap[x.id]);
                            }
                        }
                        if (computedData.length === referenceInputTensors.length) {
                            // TODO(michaelterry): Add K.name_scope here, if we need it.
                            let kwargs = {};
                            let computedTensors;
                            let computedMasks;
                            let outputTensors;
                            let outputMasks;
                            // call layer
                            if (node.callArgs != null) {
                                kwargs = node.callArgs;
                            }
                            if (computedData.length === 1) {
                                const [computedTensor, computedMask] = computedData[0];
                                if (kwargs['mask'] == null) {
                                    kwargs['mask'] = computedMask;
                                }
                                outputTensors = generic_utils.toList(layer.call(computedTensor, kwargs));
                                outputMasks = generic_utils.toList(layer.computeMask(computedTensor, computedMask));
                                computedTensors = [computedTensor];
                                computedMasks = [computedMask];
                            } else {
                                computedTensors = computedData.map(x => x[0]);
                                computedMasks = computedData.map(x => x[1]);
                                if (kwargs['mask'] == null) {
                                    kwargs['mask'] = computedMasks;
                                }
                                outputTensors = generic_utils.toList(layer.call(computedTensors, kwargs));
                                outputMasks = generic_utils.toList(layer.computeMask(computedTensors, computedMasks));
                            }
                            if (layer.activityRegularizer) {
                                throw new _errors.NotImplementedError('LayersModel invocation with concrete Tensor value(s) in the ' + 'presence of activity regularizer(s) is not supported yet.');
                            }
                            // TODO(michaelterry): Add model updates and losses
                            // Update tensor map.
                            for (let i = 0; i < referenceOutputTensors.length; ++i) {
                                const x = referenceOutputTensors[i];
                                const y = outputTensors[i];
                                const mask = outputMasks[i];
                                tensorMap[x.id] = [y, mask];
                            }
                        }
                    }
                }
                const outputTensors = [];
                const outputMasks = [];
                const outputShapes = [];
                for (const x of this.outputs) {
                    generic_utils.assert(x.id in tensorMap, `Could not compute output ${x.name} : ${x.id}`);
                    const [tensor, mask] = tensorMap[x.id];
                    outputShapes.push(tensor.shape);
                    outputTensors.push(tensor);
                    outputMasks.push(mask);
                }
                // TODO(michaelterry): Add support for caches.
                return [outputTensors, outputMasks, outputShapes];
            }
            /**
             * Builds a map of internal node keys to node ordering.
             * Used in serializaion a node orderings may change as unused nodes are
             * dropped. Porting Note:  This helper method was pulled out of getConfig to
             * improve readability.
             * @param layers An array of Layers in the model.
             * @returns Map of Node Keys to index order within the layer.
             */
            buildNodeConversionMap(layers) {
                const nodeConversionMap = {};
                let keptNodes;
                for (const layer of this.layers) {
                    keptNodes = layer instanceof Container ? 1 : 0;
                    for (let originalNodeIndex = 0; originalNodeIndex < layer.inboundNodes.length; originalNodeIndex++) {
                        const nodeKey = Container.nodeKey(layer, originalNodeIndex);
                        if (this.containerNodes.has(nodeKey)) {
                            // i.e. we mark it to be saved
                            nodeConversionMap[nodeKey] = keptNodes;
                            keptNodes += 1;
                        }
                    }
                }
                return nodeConversionMap;
            }
            /**
             * Retrieves a layer based on either its name (unique) or index.
             *
             * Indices are based on order of horizontal graph traversal (bottom-up).
             *
             * If both `name` and `index` are specified, `index` takes precedence.
             *
             * @param name Name of layer.
             * @param index Index of layer.
             * @returns A Layer instance.
             * @throws ValueError: In case of invalid layer name or index.
             *
             * @doc {
             *    heading: 'Layers',
             *    subheading: 'Classes',
             *    namespace: 'layers',
             *    subclasses: ['LayersModel']
             * }
             */
            getLayer(name, index) {
                if (index != null) {
                    if (this.layers.length <= index) {
                        throw new _errors.ValueError(`Was asked to retrieve layer at index ${index}, but model only ` + `has ${this.layers.length} layer(s).`);
                    } else {
                        return this.layers[index];
                    }
                } else {
                    if (name == null) {
                        throw new _errors.ValueError('Provide either a layer name or layer index');
                    }
                }
                for (const layer of this.layers) {
                    if (layer.name === name) {
                        return layer;
                    }
                }
                throw new _errors.ValueError(`No such layer: ${name}`);
            }
            /**
             * Retrieves the Container's current loss values.
             *
             * Used for regularizers during training.
             */
            calculateLosses() {
                // Porting Node: This is an augmentation to Container.loss in PyKeras.
                //   In PyKeras, Container.loss returns symbolic tensors. Here a concrete
                //   Tensor (specifically Scalar) values are returned. This is due to the
                //   imperative backend.
                return (0,
                    _tfjsCore.tidy)(() => {
                        const losses = [];
                        for (const layer of this.layers) {
                            for (let nodeIndex = 0; nodeIndex < layer.inboundNodes.length; ++nodeIndex) {
                                const nodeKey = Container.nodeKey(layer, nodeIndex);
                                if (this.containerNodes.has(nodeKey)) {
                                    losses.push(...layer.calculateLosses());
                                }
                            }
                        }
                        // TODO(cais): Add any unconditional model-level losses?
                        return losses;
                    }
                    );
            }
            getConfig() {
                const config = {
                    name: this.name
                };
                // Build a map from layer unique name (self._node_key)
                // to the index of the nodes that are saved in the config.
                // Only nodes in container_nodes are saved.
                const nodeConversionMap = this.buildNodeConversionMap(this.layers);
                // Serialize and save the layers in layerConfigs
                const layerConfigs = [];
                for (const layer of this.layers) {
                    const layerClassName = layer.getClassName();
                    const layerConfig = layer.getConfig();
                    const filteredInboundNodes = [];
                    for (let originalNodeIndex = 0; originalNodeIndex < layer.inboundNodes.length; originalNodeIndex++) {
                        const node = layer.inboundNodes[originalNodeIndex];
                        const nodeKey = Container.nodeKey(layer, originalNodeIndex);
                        let kwargs = {};
                        if (this.containerNodes.has(nodeKey)) {
                            // The node is relevant to the model:
                            // add to filteredInboundNodes.
                            if (node.callArgs) {
                                try {
                                    JSON.stringify(node.callArgs);
                                    kwargs = node.callArgs;
                                } catch (err) {
                                    console.warn(`Layer ${layer.name} was passed ` + `non-serializable keyword arguments: ` + `${node.callArgs}. They will not be included ` + `in the serialized model (and thus will be ` + `missing at deserialization time).`);
                                    kwargs = {};
                                }
                            }
                            if (node.inboundLayers.length > 0) {
                                const nodeData = [];
                                for (let i = 0; i < node.inboundLayers.length; i++) {
                                    const inboundLayer = node.inboundLayers[i];
                                    const nodeIndex = node.nodeIndices[i];
                                    const tensorIndex = node.tensorIndices[i];
                                    const nodeKey = Container.nodeKey(inboundLayer, nodeIndex);
                                    let newNodeIndex = nodeConversionMap[nodeKey];
                                    if (newNodeIndex == null) {
                                        newNodeIndex = 0;
                                    }
                                    nodeData.push([inboundLayer.name, newNodeIndex, tensorIndex, kwargs]);
                                }
                                filteredInboundNodes.push(nodeData);
                            }
                        }
                    }
                    const dict = {};
                    dict['name'] = layer.name;
                    dict['className'] = layerClassName;
                    dict['config'] = layerConfig;
                    dict['inboundNodes'] = filteredInboundNodes;
                    layerConfigs.push(dict);
                }
                config['layers'] = layerConfigs;
                // Gather info about inputs and outputs
                const modelInputs = [];
                for (let i = 0; i < this.inputLayers.length; i++) {
                    const layer = this.inputLayers[i];
                    const nodeIndex = this.inputLayersNodeIndices[i];
                    const nodeKey = Container.nodeKey(layer, nodeIndex);
                    if (!this.containerNodes.has(nodeKey)) {
                        continue;
                    }
                    let newNodeIndex = nodeConversionMap[nodeKey];
                    if (newNodeIndex === null || newNodeIndex === undefined) {
                        newNodeIndex = 0;
                    }
                    const tensorIndex = this.inputLayersTensorIndices[i];
                    modelInputs.push([layer.name, newNodeIndex, tensorIndex]);
                }
                config['inputLayers'] = modelInputs;
                const modelOutputs = [];
                for (let i = 0; i < this.outputLayers.length; i++) {
                    const layer = this.outputLayers[i];
                    const nodeIndex = this.outputLayersNodeIndices[i];
                    const nodeKey = Container.nodeKey(layer, nodeIndex);
                    if (!this.containerNodes.has(nodeKey)) {
                        continue;
                    }
                    let newNodeIndex = nodeConversionMap[nodeKey];
                    if (newNodeIndex === null || newNodeIndex === undefined) {
                        newNodeIndex = 0;
                    }
                    const tensorIndex = this.outputLayersTensorIndices[i];
                    modelOutputs.push([layer.name, newNodeIndex, tensorIndex]);
                }
                config['outputLayers'] = modelOutputs;
                return config;
            }
            /**
             * Instantiates a LayersModel from its config (output of `get_config()`).
             * @param cls the class to create
             * @param config LayersModel config dictionary.
             * @param customObjects An optional dictionary of custom objects.
             * @param fastWeightInit Optional flag to use fast weight initialization
             *   during deserialization. This is applicable to cases in which
             *   the initialization will be immediately overwritten by loaded weight
             *   values. Default: `false`.
             * @returns A LayersModel instance.
             * @throws ValueError: In case of improperly formatted config dict.
             */
            /** @nocollapse */
            static fromConfig(cls, config, customObjects = {}, fastWeightInit = false) {
                // Layer instances created during
                // the graph reconstruction process
                const createdLayers = {};
                // Dictionary mapping layer instances to
                // node data that specifies a layer call.
                // It acts as a queue that maintains any unprocessed
                // layer call until it becomes possible to process it
                // (i.e. until the input tensors to the call all exist).
                const unprocessedNodes = {};
                function addUnprocessedNode(layer, nodeData) {
                    if (!(layer.name in unprocessedNodes)) {
                        unprocessedNodes[layer.name] = [nodeData];
                    } else {
                        unprocessedNodes[layer.name].push(nodeData);
                    }
                }
                function processNode(layer, nodeData) {
                    const inputTensors = [];
                    let kwargs;
                    for (const inputData of nodeData) {
                        const inboundLayerName = inputData[0];
                        const inboundNodeIndex = inputData[1];
                        const inboundTensorIndex = inputData[2];
                        kwargs = inputData[3] == null ? {} : inputData[3];
                        if (!(inboundLayerName in createdLayers)) {
                            addUnprocessedNode(layer, nodeData);
                            return;
                        }
                        const inboundLayer = createdLayers[inboundLayerName];
                        if (inboundLayer.inboundNodes.length <= inboundNodeIndex) {
                            addUnprocessedNode(layer, nodeData);
                            return;
                        }
                        const inboundNode = inboundLayer.inboundNodes[inboundNodeIndex];
                        inputTensors.push(inboundNode.outputTensors[inboundTensorIndex]);
                    }
                    // Call layer on its inputs, thus creating the node
                    // and building the layer if needed.
                    // Note: This has Eager vs Graph Implications.
                    if (inputTensors.length > 0) {
                        layer.apply(generic_utils.singletonOrArray(inputTensors), kwargs);
                        // was ** kwargs
                    }
                }
                /**
                 * Deserialize a layer, then call it on appropriate inputs.
                 * @param layerData: layer config dict.
                 * @throws ValueError: In case of improperly formatted `layer_data`
                 * dict.
                 */
                function processLayer(layerData) {
                    const layerName = layerData['name'];
                    // Instantiate layer.
                    const layer = (0,
                        _serialization.deserialize)(layerData, config['customObjects'] != null ? config['customObjects'] : {});
                    layer.setFastWeightInitDuringBuild(fastWeightInit);
                    createdLayers[layerName] = layer;
                    // Gather layer inputs.
                    const inboundNodesData = layerData['inboundNodes'];
                    inboundNodesData.forEach(nodeData => {
                        if (!(nodeData instanceof Array)) {
                            throw new _errors.ValueError(`Corrupted configuration, expected array for nodeData: ${nodeData}`);
                        }
                        // We don't process nodes (i.e. make layer calls)
                        // on the fly because the inbound node may not yet exist,
                        // in case of layer shared at different topological depths
                        // (e.g.a model such as A(B(A(B(x)))))
                        addUnprocessedNode(layer, nodeData);
                    }
                    );
                }
                // First, we create all layers and enqueue nodes to be processed.
                const name = config['name'];
                const layersFromConfig = config['layers'];
                for (const layerData of layersFromConfig) {
                    processLayer(layerData);
                }
                // Then we process nodes in order of layer depth.
                // Nodes that cannot yet be processed(if the inbound node
                // does not yet exist) are re - enqueued, and the process
                // is repeated until all nodes are processed.
                while (!generic_utils.isObjectEmpty(unprocessedNodes)) {
                    for (const layerData of layersFromConfig) {
                        const layer = createdLayers[layerData['name']];
                        if (layer.name in unprocessedNodes) {
                            const currentUnprocessedNodesForLayer = unprocessedNodes[layer.name];
                            delete unprocessedNodes[layer.name];
                            for (const nodeData of currentUnprocessedNodesForLayer) {
                                processNode(layer, nodeData);
                            }
                        }
                    }
                }
                const inputTensors = [];
                const outputTensors = [];
                const inputLayersFromConfig = config['inputLayers'];
                for (const layerData of inputLayersFromConfig) {
                    const layerName = layerData[0];
                    const nodeIndex = layerData[1];
                    const tensorIndex = layerData[2];
                    generic_utils.assert(layerName in createdLayers);
                    const layer = createdLayers[layerName];
                    const layerOutputTensors = layer.inboundNodes[nodeIndex].outputTensors;
                    inputTensors.push(layerOutputTensors[tensorIndex]);
                }
                const outputLayersFromConfig = config['outputLayers'];
                for (const layerData of outputLayersFromConfig) {
                    const layerName = layerData[0];
                    const nodeIndex = layerData[1];
                    const tensorIndex = layerData[2];
                    generic_utils.assert(layerName in createdLayers);
                    const layer = createdLayers[layerName];
                    const layerOutputTensors = layer.inboundNodes[nodeIndex].outputTensors;
                    outputTensors.push(layerOutputTensors[tensorIndex]);
                }
                return new cls({
                    inputs: inputTensors,
                    outputs: outputTensors,
                    name
                });
            }
            /**
             * Determine whether the container is stateful.
             *
             * Porting Note: this is the equivalent of the stateful @property of
             *   the Container class in PyKeras.
             */
            get stateful() {
                // Porting Note: This check is to prevent inadvertent setting of the
                //   _stateful property of the Container instance.
                if (this._stateful) {
                    throw new _errors.ValueError('Container instance unexpectedly has _stateful = true. The ' + 'statefulness of a Container is determined by the Layers it ' + 'contains. Its _stateful property must remain the default false.');
                }
                for (const layer of this.layers) {
                    if (layer.stateful) {
                        return true;
                    }
                }
                return false;
            }
            /**
             * Reset the state of all stateful constituent layers (if any).
             *
             * Examples of stateful layers include RNN layers whose `stateful` property
             * is set as `true`.
             */
            resetStates() {
                (0,
                    _tfjsCore.tidy)(() => {
                        this.layers.forEach(layer => {
                            // tslint:disable:no-any
                            if (layer.stateful) {
                                layer.resetStates();
                            }
                            // tslint:enable:no-any
                        }
                        );
                    }
                    );
            }
        }
        exports.Container = Container;

    }
        , {
        "../backend/state": 515,
        "../errors": 529,
        "../layers/serialization": 559,
        "../utils/generic_utils": 570,
        "../utils/serialization_utils": 573,
        "../utils/types_utils": 574,
        "../variables": 576,
        "../version": 577,
        "./executor": 522,
        "./input_layer": 523,
        "./topology": 524,
        "@tensorflow/tfjs-core": 506
    }],
    522: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.cachedSorted = exports.cachedRecipientCounts = exports.FeedDict = void 0;
        exports.execute = execute;
        exports.getTopologicalSortAndRecipientCountsForOneFetch = getTopologicalSortAndRecipientCountsForOneFetch;
        exports.updateCacheMaxEntries = updateCacheMaxEntries;
        var _tfjsCore = require("@tensorflow/tfjs-core");
        var _errors = require("../errors");
        var _executor_utils = require("../utils/executor_utils");
        var _generic_utils = require("../utils/generic_utils");
        var _input_layer = require("./input_layer");
        var _topology = require("./topology");
        /**
         * @license
         * Copyright 2018 Google LLC
         *
         * Use of this source code is governed by an MIT-style
         * license that can be found in the LICENSE file or at
         * https://opensource.org/licenses/MIT.
         * =============================================================================
         */
        /**
         * Executor: Evaluates SymbolicTensor based on feeds.
         */

        /**
         * Helper function to check the dtype and shape compatibility of a feed value.
         */
        function assertFeedCompatibility(key, val) {
            // Check dtype compatibility.
            if (key.dtype == null || key.dtype === val.dtype) {
                //  a.  If types match, return val tensor as is.
                return val;
            }
            try {
                //  b. Attempt to convert to expected type.
                return (0,
                    _tfjsCore.cast)(val, key.dtype);
            } catch (err) {
                //  c. If conversion fails, return helpful error.
                throw new _errors.ValueError(`The dtype of the feed (${val.dtype}) can not be cast to the dtype ` + `of the key '${key.name}' (${key.dtype}).`);
            }
        }
        /**
         * FeedDict: A mapping from unique SymbolicTensors to feed values for them.
         * A feed value is a concrete value represented as an `Tensor`.
         */
        class FeedDict {
            /**
             * Constructor, optionally does copy-construction.
             * @param feeds An Array of `Feed`s, or another `FeedDict`, in which case
             *   copy-construction will be performed.
             */
            constructor(feeds) {
                this.id2Value = {};
                this.id2Mask = {};
                this.name2Id = {};
                if (feeds instanceof FeedDict) {
                    for (const id in feeds.id2Value) {
                        this.id2Value[id] = feeds.id2Value[id];
                        if (id in feeds.id2Mask) {
                            this.id2Mask[id] = feeds.id2Mask[id];
                        }
                    }
                } else {
                    if (feeds == null) {
                        return;
                    }
                    for (const feed of feeds) {
                        this.add(feed.key, feed.value);
                    }
                }
            }
            /**
             * Add a key-value pair to the FeedDict.
             *
             * @param key The key of the feed.
             * @param value The value of the tensor feed.
             * @param mask The value of the mask feed (optional).
             * @returns This `FeedDict`.
             * @throws ValueError: If the key `SymbolicTensor` already exists in the
             *   `FeedDict`.
             */
            add(key, value, mask) {
                if (this.id2Value[key.id] == null) {
                    this.id2Value[key.id] = assertFeedCompatibility(key, value);
                    this.name2Id[key.name] = key.id;
                    if (mask != null) {
                        this.id2Mask[key.id] = mask;
                    }
                } else {
                    throw new _errors.ValueError(`Duplicate key: name=${key.name}, id=${key.id}`);
                }
                return this;
            }
            /**
             * Add a Feed to the FeedDict.
             * @param feed The new `Feed` to add.
             * @returns This `FeedDict`.
             */
            addFeed(feed) {
                this.add(feed.key, feed.value);
            }
            /**
             * Probe whether a key already exists in the FeedDict.
             * @param key
             */
            hasKey(key) {
                return this.id2Value[key.id] != null;
            }
            /**
             * Get all the SymbolicTensor available in this FeedDict.
             */
            names() {
                return Object.keys(this.name2Id);
            }
            /**
             * Get the feed value for given key.
             * @param key The SymbolicTensor, or its name (as a string), of which the
             *     value is sought.
             * @returns If `key` exists, the corresponding feed value.
             * @throws ValueError: If `key` does not exist in this `FeedDict`.
             */
            getValue(key) {
                if (key instanceof _topology.SymbolicTensor) {
                    if (this.id2Value[key.id] == null) {
                        throw new _errors.ValueError(`Nonexistent key: ${key.name}`);
                    } else {
                        return this.id2Value[key.id];
                    }
                } else {
                    const id = this.name2Id[key];
                    if (id == null) {
                        throw new _errors.ValueError(`Feed dict has no SymbolicTensor name: ${key}`);
                    }
                    return this.id2Value[id];
                }
            }
            /**
             * Get the feed mask for given key.
             * @param key The SymbolicTensor, or its name (as a string), of which the
             *     value is sought.
             * @returns If `key` exists, the corresponding feed mask.
             * @throws ValueError: If `key` does not exist in this `FeedDict`.
             */
            getMask(key) {
                if (key instanceof _topology.SymbolicTensor) {
                    if (this.id2Value[key.id] == null) {
                        throw new _errors.ValueError(`Nonexistent key: ${key.name}`);
                    } else {
                        return this.id2Mask[key.id];
                    }
                } else {
                    const id = this.name2Id[key];
                    if (id == null) {
                        throw new _errors.ValueError(`Feed dict has no SymbolicTensor name: ${key}`);
                    }
                    return this.id2Mask[id];
                }
            }
            /** Dispose all mask Tensors held by this object. */
            disposeMasks() {
                if (this.id2Mask != null) {
                    (0,
                        _tfjsCore.dispose)(this.id2Mask);
                }
            }
        }
        // Cache for topologically sorted SymbolicTensors for given execution
        // targets (i.e., fetches).
        exports.FeedDict = FeedDict;
        const cachedSorted = new _executor_utils.LruCache();
        // Cache for recipient count maps for given execution targets (i.e., fetches).
        exports.cachedSorted = cachedSorted;
        const cachedRecipientCounts = new _executor_utils.LruCache();
        exports.cachedRecipientCounts = cachedRecipientCounts;
        function updateCacheMaxEntries(maxEntries) {
            if (cachedSorted != null) {
                cachedSorted.setMaxEntries(maxEntries);
            }
            if (cachedRecipientCounts != null) {
                cachedRecipientCounts.setMaxEntries(maxEntries);
            }
        }
        /**
         * Execute a SymbolicTensor by using concrete feed values.
         *
         * A `SymbolicTensor` object is a node in a computation graph of TF.js
         * Layers. The object is backed by a source layer and input
         * `SymbolicTensor`s to the source layer. This method evaluates
         * the `call()` method of the source layer, using concrete values of the
         * inputs obtained from either
         * * `feedDict`, if the input key exists in `feedDict`, or else,
         * * a recursive call to `execute()` itself.
         *
         * @param x: The `SymbolicTensor` to execute.
         * @param feedDict: The feed values, as base condition of the recursion.
         *   execution.
         * @param kwargs: Optional keyword arguments.
         * @param probe: A probe object (of interface `ExecutionProbe`) used for
         *   testing memory footprint of `execute` calls.
         * @returns Result of the execution.
         * @throws ValueError: If any `SymbolicTensor`s from `InputLayer`s
         *   encountered during the execution lacks a feed value in `feedDict`.
         */
        function execute(fetches, feedDict, kwargs, probe) {
            const training = kwargs == null ? false : kwargs['training'];
            const arrayFetches = Array.isArray(fetches);
            const fetchArray = arrayFetches ? fetches : [fetches];
            const outputNames = fetchArray.map(t => t.name);
            const finalOutputs = [];
            const feedNames = feedDict.names();
            for (const outputName of outputNames) {
                if (feedNames.indexOf(outputName) !== -1) {
                    finalOutputs.push(feedDict.getValue(outputName));
                } else {
                    finalOutputs.push(null);
                }
            }
            if (probe != null) {
                // For optional probing of memory footprint during execution.
                probe.maxNumTensors = -Infinity;
                probe.minNumTensors = Infinity;
            }
            // Check cache.
            const fetchAndFeedKey = outputNames.join(',') + '|' + feedDict.names().sort().join(',');
            let sorted = cachedSorted.get(fetchAndFeedKey);
            let recipientCounts;
            if (sorted == null) {
                // Cache doesn't contain the desired combination of fetches. Compute
                // topological sort for the combination for the first time.
                const out = getTopologicalSortAndRecipientCounts(fetchArray, feedDict);
                sorted = out.sorted;
                recipientCounts = out.recipientCounts;
                // Store results in cache for future use.
                cachedSorted.put(fetchAndFeedKey, sorted);
                cachedRecipientCounts.put(fetchAndFeedKey, recipientCounts);
            }
            recipientCounts = {};
            if (!training) {
                Object.assign(recipientCounts, cachedRecipientCounts.get(fetchAndFeedKey));
            }
            const internalFeedDict = new FeedDict(feedDict);
            // Start iterative execution on the topologically-sorted SymbolicTensors.
            for (let i = 0; i < sorted.length; ++i) {
                if (probe != null) {
                    // For optional probing of memory usage during execution.
                    const numTensors = (0,
                        _tfjsCore.memory)().numTensors;
                    if (numTensors > probe.maxNumTensors) {
                        probe.maxNumTensors = numTensors;
                    }
                    if (numTensors < probe.minNumTensors) {
                        probe.minNumTensors = numTensors;
                    }
                }
                const symbolic = sorted[i];
                const srcLayer = symbolic.sourceLayer;
                if (srcLayer instanceof _input_layer.InputLayer) {
                    continue;
                }
                const inputValues = [];
                const inputMasks = [];
                const tensorsToDispose = [];
                let maskExists = false;
                for (const input of symbolic.inputs) {
                    const value = internalFeedDict.getValue(input);
                    const mask = internalFeedDict.getMask(input);
                    inputValues.push(value);
                    inputMasks.push(mask);
                    if (mask != null) {
                        maskExists = true;
                    }
                    if (!training) {
                        recipientCounts[input.name]--;
                        if (recipientCounts[input.name] === 0 && !feedDict.hasKey(input) && outputNames.indexOf(input.name) === -1 && !value.isDisposed && input.sourceLayer.stateful !== true) {
                            tensorsToDispose.push(value);
                        }
                    }
                }
                if (maskExists) {
                    kwargs = kwargs || {};
                    kwargs['mask'] = inputMasks[0];
                }
                const outputTensors = (0,
                    _generic_utils.toList)(srcLayer.apply(inputValues, kwargs));
                let outputMask = null;
                if (srcLayer.supportsMasking) {
                    outputMask = srcLayer.computeMask(inputValues, inputMasks);
                }
                const layerOutputs = getNodeOutputs(symbolic);
                const outputSymbolicTensors = Array.isArray(layerOutputs) ? layerOutputs : [layerOutputs];
                for (let i = 0; i < outputSymbolicTensors.length; ++i) {
                    if (!internalFeedDict.hasKey(outputSymbolicTensors[i])) {
                        internalFeedDict.add(outputSymbolicTensors[i], outputTensors[i], Array.isArray(outputMask) ? outputMask[0] : outputMask);
                    }
                    const index = outputNames.indexOf(outputSymbolicTensors[i].name);
                    if (index !== -1) {
                        finalOutputs[index] = outputTensors[i];
                    }
                }
                if (!training) {
                    // Clean up Tensors that are no longer needed.
                    (0,
                        _tfjsCore.dispose)(tensorsToDispose);
                }
            }
            // NOTE(cais): Unlike intermediate tensors, we don't discard mask
            // tensors as we go, because these tensors are sometimes passed over a
            // series of mutliple layers, i.e., not obeying the immediate input
            // relations in the graph. If this becomes a memory-usage concern,
            // we can improve this in the future.
            internalFeedDict.disposeMasks();
            return arrayFetches ? finalOutputs : finalOutputs[0];
        }
        /**
         * Sort the `SymbolicTensor`s topologically, for an array of fetches.
         *
         * This function calls getTopologicalSortAndRecipientCountsForOneFetch and
         * merges their results.
         *
         * @param fetch The array of fetches requested. Must be a non-empty array.
         * @param feedDict The dictionary of fed values.
         * @returns sorted: Topologically-sorted array of SymbolicTensors.
         *   recipientCounts: Recipient counts for all SymbolicTensors in `sorted`.
         */
        function getTopologicalSortAndRecipientCounts(fetches, feedDict) {
            _tfjsCore.util.assert(fetches != null && fetches.length > 0, () => `Expected at least one fetch, got none`);
            let finalSorted = [];
            let finalRecipientMap = {};
            if (fetches.length === 1) {
                // Special-casing 1 fetch for efficiency.
                const out = getTopologicalSortAndRecipientCountsForOneFetch(fetches[0], feedDict);
                finalSorted = out.sorted;
                finalRecipientMap = out.recipientMap;
            } else {
                const visited = new Set();
                for (const fetch of fetches) {
                    const { sorted, recipientMap } = getTopologicalSortAndRecipientCountsForOneFetch(fetch, feedDict);
                    // Merge sorted SymbolicTensor Arrays.
                    for (const symbolicTensor of sorted) {
                        if (!visited.has(symbolicTensor.name)) {
                            finalSorted.push(symbolicTensor);
                            visited.add(symbolicTensor.name);
                        }
                    }
                    // Merge recipient maps.
                    for (const name in recipientMap) {
                        if (finalRecipientMap[name] == null) {
                            finalRecipientMap[name] = new Set();
                        }
                        recipientMap[name].forEach(recipient => finalRecipientMap[name].add(recipient));
                    }
                }
            }
            return {
                sorted: finalSorted,
                recipientCounts: recipientMap2Counts(finalRecipientMap)
            };
        }
        function recipientMap2Counts(recipientMap) {
            const recipientCounts = {};
            for (const name in recipientMap) {
                recipientCounts[name] = recipientMap[name].size;
            }
            return recipientCounts;
        }
        /**
         * Sort the `SymbolicTensor`s topologically, for a single fetch.
         *
         * This helper function processes the upstream SymbolicTensors of a single
         * fetch.
         *
         * @param fetch The single fetch requested.
         * @param feedDict The dictionary of fed values.
         * @returns sorted: Topologically-sorted array of SymbolicTensors.
         *   recipientMap: Recipient names for all SymbolicTensors in `sorted`.
         */
        function getTopologicalSortAndRecipientCountsForOneFetch(fetch, feedDict) {
            const visited = new Set();
            const sorted = [];
            const recipientMap = {};
            // Put keys of the feedDict into visited first, so they don't have to be
            // walked. This is needed in case where there are feeds for intermediate
            // SymbolicTensors of the graph.
            for (const key of feedDict.names()) {
                visited.add(key);
            }
            const stack = [];
            const marks = [];
            // Initial population of stack and marks.
            stack.push(fetch);
            while (stack.length > 0) {
                const top = stack[stack.length - 1];
                if (visited.has(top.name)) {
                    stack.pop();
                    continue;
                }
                const topIsMarked = marks[marks.length - 1] === stack.length - 1;
                if (top.inputs.length === 0 || topIsMarked) {
                    // Input SymbolicTensor or all children have been visited.
                    stack.pop();
                    sorted.push(top);
                    visited.add(top.name);
                    if (topIsMarked) {
                        marks.pop();
                    }
                } else {
                    // A non-input SymbolicTensor whose upstream SymbolicTensors haven't
                    // been visited yet. Push them onto the stack.
                    marks.push(stack.length - 1);
                    for (const input of top.inputs) {
                        // Increment the recipient count. Note that this needs to happen
                        // regardless of whether the SymbolicTensor has been visited before.
                        if (recipientMap[input.name] == null) {
                            recipientMap[input.name] = new Set();
                        }
                        recipientMap[input.name].add(top.name);
                        if (visited.has(input.name)) {
                            continue;
                            // Avoid repeated visits to the same SymbolicTensor.
                        }

                        stack.push(input);
                    }
                }
            }
            return {
                sorted,
                recipientMap
            };
        }
        /**
         * Get the symbolic output tensors of the node to which a given fetch belongs.
         * @param fetch The fetched symbolic tensor.
         * @returns The Array of symbolic tensors output by the node to which `fetch`
         *   belongs.
         */
        function getNodeOutputs(fetch) {
            let layerOutputs;
            if (fetch.sourceLayer.inboundNodes.length === 1) {
                layerOutputs = fetch.sourceLayer.output;
            } else {
                let nodeIndex = null;
                for (let i = 0; i < fetch.sourceLayer.inboundNodes.length; ++i) {
                    for (const outputTensor of fetch.sourceLayer.inboundNodes[i].outputTensors) {
                        if (outputTensor.id === fetch.id) {
                            nodeIndex = i;
                            break;
                        }
                    }
                }
                layerOutputs = fetch.sourceLayer.getOutputAt(nodeIndex);
            }
            return layerOutputs;
        }

    }
        , {
        "../errors": 529,
        "../utils/executor_utils": 569,
        "../utils/generic_utils": 570,
        "./input_layer": 523,
        "./topology": 524,
        "@tensorflow/tfjs-core": 506
    }],
    523: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.Input = Input;
        exports.InputLayer = void 0;
        var _tfjsCore = require("@tensorflow/tfjs-core");
        var _state = require("../backend/state");
        var _errors = require("../errors");
        var _topology = require("./topology");
        /**
         * @license
         * Copyright 2018 Google LLC
         *
         * Use of this source code is governed by an MIT-style
         * license that can be found in the LICENSE file or at
         * https://opensource.org/licenses/MIT.
         * =============================================================================
         */

        class InputLayer extends _topology.Layer {
            constructor(args) {
                super({
                    dtype: args.dtype,
                    name: args.name != null ? args.name : (0,
                        _state.getUid)('input').toString()
                });
                // Normalize config.batchSize and config.sparse
                if (args.batchSize == null) {
                    args.batchSize = null;
                }
                if (args.sparse == null) {
                    args.sparse = false;
                }
                this.trainable = false;
                this.built = true;
                this.sparse = args.sparse;
                if (args.inputShape != null && args.batchInputShape != null) {
                    throw new _errors.ValueError('Only provide the inputShape OR ' + 'batchInputShape argument to inputLayer, not both at the same time.');
                }
                let batchInputShape = args.batchInputShape;
                if (batchInputShape == null) {
                    if (args.inputShape == null) {
                        throw new _errors.ValueError('An InputLayer should be passed either a ' + '`batchInputShape` or an `inputShape`.');
                    } else {
                        batchInputShape = [args.batchSize].concat(args.inputShape);
                    }
                } else {
                    // TODO(michaelterry): Backport to PyKeras
                    if (args.batchSize != null) {
                        throw new _errors.ValueError('Cannot specify batchSize if batchInputShape is ' + 'specified when creating an InputLayer.');
                    }
                }
                const dtype = args.dtype || 'float32';
                this.batchInputShape = batchInputShape;
                this.dtype = dtype;
                // TODO(michaelterry): Backport this to PyKeras?
                this.inputSpec = [{
                    shape: batchInputShape
                }];
                const inputTensor = new _topology.SymbolicTensor(this.dtype, this.batchInputShape, this, [], {}, this.name);
                inputTensor.nodeIndex = 0;
                inputTensor.tensorIndex = 0;
                // Create an input node to add to this.outboundNode.
                // (This call has side effects.)
                // tslint:disable-next-line:no-unused-expression
                new _topology.Node({
                    outboundLayer: this,
                    inboundLayers: [],
                    nodeIndices: [],
                    tensorIndices: [],
                    inputTensors: [inputTensor],
                    outputTensors: [inputTensor],
                    inputMasks: [null],
                    outputMasks: [null],
                    inputShapes: [batchInputShape],
                    outputShapes: [batchInputShape]
                });
            }
            apply(inputs, kwargs) {
                throw new _errors.ValueError('Cannot pass any input to an ' + `InputLayer's apply() method. InputLayer name: ${this.name}`);
            }
            dispose() {
                // dispose() for InputLayer is overridden as no-op.
                return {
                    refCountAfterDispose: this._refCount,
                    numDisposedVariables: 0
                };
            }
            getConfig() {
                return {
                    batchInputShape: this.batchInputShape,
                    dtype: this.dtype,
                    sparse: this.sparse,
                    name: this.name
                };
            }
        }
        /** @nocollapse */
        exports.InputLayer = InputLayer;
        InputLayer.className = 'InputLayer';
        _tfjsCore.serialization.registerClass(InputLayer);
        function Input(config) {
            if (config.batchShape == null && config.shape == null) {
                throw new Error('Please provide to Input either a `shape`' + ' or a `batchShape` argument. Note that ' + '`shape` does not include the batch ' + 'dimension.');
            }
            if (config.batchShape != null && config.shape != null) {
                // TODO(michaelterry): Backport to PyKeras.
                throw new _errors.ValueError('Please provide either a `shape` or `batchShape` ' + 'argument to Input, but not both.');
            }
            let batchShape = config.batchShape;
            if (config.shape != null && batchShape == null) {
                batchShape = [null].concat(config.shape);
            }
            let dtype = config.dtype;
            if (dtype == null) {
                dtype = 'float32';
            }
            const inputLayer = new InputLayer({
                batchInputShape: batchShape,
                name: config.name,
                dtype,
                sparse: config.sparse
            });
            const outputs = inputLayer.inboundNodes[0].outputTensors;
            return outputs[0];
        }

    }
        , {
        "../backend/state": 515,
        "../errors": 529,
        "./topology": 524,
        "@tensorflow/tfjs-core": 506
    }],
    524: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.SymbolicTensor = exports.Node = exports.Layer = exports.InputSpec = void 0;
        exports.getSourceInputs = getSourceInputs;
        var _tfjsCore = require("@tensorflow/tfjs-core");
        var _state = require("../backend/state");
        var _common = require("../common");
        var _errors = require("../errors");
        var _initializers = require("../initializers");
        var generic_utils = _interopRequireWildcard(require("../utils/generic_utils"));
        var types_utils = _interopRequireWildcard(require("../utils/types_utils"));
        var variable_utils = _interopRequireWildcard(require("../utils/variable_utils"));
        var _variables = require("../variables");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2018 Google LLC
         *
         * Use of this source code is governed by an MIT-style
         * license that can be found in the LICENSE file or at
         * https://opensource.org/licenses/MIT.
         * =============================================================================
         */
        /* Original source: keras/engine/topology.py */

        /**
         * Specifies the ndim, dtype and shape of every input to a layer.
         *
         * Every layer should expose (if appropriate) an `inputSpec` attribute:
         * a list of instances of InputSpec (one per input tensor).
         *
         * A null entry in a shape is compatible with any dimension,
         * a null shape is compatible with any shape.
         */
        class InputSpec {
            constructor(args) {
                this.dtype = args.dtype;
                this.shape = args.shape;
                /*
                  TODO(michaelterry): Could throw error if ndim and shape are both defined
                    (then backport).
                */
                if (args.shape != null) {
                    this.ndim = args.shape.length;
                } else {
                    this.ndim = args.ndim;
                }
                this.maxNDim = args.maxNDim;
                this.minNDim = args.minNDim;
                this.axes = args.axes || {};
            }
        }
        /**
         * `tf.SymbolicTensor` is a placeholder for a Tensor without any concrete value.
         *
         * They are most often encountered when building a graph of `Layer`s for a
         * `tf.LayersModel` and the input data's shape, but not values are known.
         *
         * @doc {heading: 'Models', 'subheading': 'Classes'}
         */
        exports.InputSpec = InputSpec;
        class SymbolicTensor {
            /**
             *
             * @param dtype
             * @param shape
             * @param sourceLayer The Layer that produced this symbolic tensor.
             * @param inputs The inputs passed to sourceLayer's __call__() method.
             * @param nodeIndex
             * @param tensorIndex
             * @param callArgs The keyword arguments passed to the __call__() method.
             * @param name
             * @param outputTensorIndex The index of this tensor in the list of outputs
             *   returned by apply().
             */
            constructor(dtype, shape, sourceLayer, inputs, callArgs, name, outputTensorIndex) {
                this.dtype = dtype;
                this.shape = shape;
                this.sourceLayer = sourceLayer;
                this.inputs = inputs;
                this.callArgs = callArgs;
                this.outputTensorIndex = outputTensorIndex;
                this.id = (0,
                    _state.getNextUniqueTensorId)();
                if (name != null) {
                    this.originalName = (0,
                        _common.getScopedTensorName)(name);
                    this.name = (0,
                        _common.getUniqueTensorName)(this.originalName);
                }
                this.rank = shape.length;
            }
        }
        exports.SymbolicTensor = SymbolicTensor;
        let _nextNodeID = 0;
        /**
         * A `Node` describes the connectivity between two layers.
         *
         * Each time a layer is connected to some new input,
         * a node is added to `layer.inboundNodes`.
         *
         * Each time the output of a layer is used by another layer,
         * a node is added to `layer.outboundNodes`.
         *
         * `nodeIndices` and `tensorIndices` are basically fine-grained coordinates
         * describing the origin of the `inputTensors`, verifying the following:
         *
         * `inputTensors[i] ==
         * inboundLayers[i].inboundNodes[nodeIndices[i]].outputTensors[
         *   tensorIndices[i]]`
         *
         * A node from layer A to layer B is added to:
         *     A.outboundNodes
         *     B.inboundNodes
         */
        class Node {
            constructor(args, // TODO(michaelterry): Define actual type for this.
                callArgs) {
                this.callArgs = callArgs;
                this.id = _nextNodeID++;
                /*
                  Layer instance (NOT a list).
                  this is the layer that takes a list of input tensors
                  and turns them into a list of output tensors.
                  the current node will be added to
                  the inboundNodes of outboundLayer.
                */
                this.outboundLayer = args.outboundLayer;
                /*
                    The following 3 properties describe where
                    the input tensors come from: which layers,
                    and for each layer, which node and which
                    tensor output of each node.
                */
                // List of layer instances.
                this.inboundLayers = args.inboundLayers;
                // List of integers, 1:1 mapping with inboundLayers.
                this.nodeIndices = args.nodeIndices;
                // List of integers, 1:1 mapping with inboundLayers.
                this.tensorIndices = args.tensorIndices;
                /*
                    Following 2 properties:
                    tensor inputs and outputs of outboundLayer.
                */
                // List of tensors. 1:1 mapping with inboundLayers.
                this.inputTensors = args.inputTensors;
                // List of tensors, created by outboundLayer.call().
                this.outputTensors = args.outputTensors;
                /*
                    Following 2 properties: input and output masks.
                    List of tensors, 1:1 mapping with inputTensor.
                */
                this.inputMasks = args.inputMasks;
                // List of tensors, created by outboundLayer.computeMask().
                this.outputMasks = args.outputMasks;
                // Following 2 properties: input and output shapes.
                // List of shape tuples, shapes of inputTensors.
                this.inputShapes = args.inputShapes;
                // List of shape tuples, shapes of outputTensors.
                this.outputShapes = args.outputShapes;
                // Add nodes to all layers involved.
                for (const layer of args.inboundLayers) {
                    if (layer != null) {
                        layer.outboundNodes.push(this);
                    }
                }
                args.outboundLayer.inboundNodes.push(this);
            }
            getConfig() {
                const inboundNames = [];
                for (const layer of this.inboundLayers) {
                    if (layer != null) {
                        inboundNames.push(layer.name);
                    } else {
                        inboundNames.push(null);
                    }
                }
                return {
                    outboundLayer: this.outboundLayer ? this.outboundLayer.name : null,
                    inboundLayers: inboundNames,
                    nodeIndices: this.nodeIndices,
                    tensorIndices: this.tensorIndices
                };
            }
        }
        exports.Node = Node;
        let _nextLayerID = 0;
        /**
         * A layer is a grouping of operations and weights that can be composed to
         * create a `tf.LayersModel`.
         *
         * Layers are constructed by using the functions under the
         * [tf.layers](#Layers-Basic) namespace.
         *
         * @doc {heading: 'Layers', subheading: 'Classes', namespace: 'layers'}
         */
        class Layer extends _tfjsCore.serialization.Serializable {
            constructor(args = {}) {
                super();
                this._callHook = null;
                this._addedWeightNames = [];
                // Porting Notes: PyKeras does not have this property in this base Layer
                //   class. Instead lets Layer subclass set it dynamically and checks the
                //   value with `hasattr`. In tfjs-layers, we let this be a member of this
                //   base class.
                this._stateful = false;
                this.id = _nextLayerID++;
                this.activityRegularizer = null;
                this.inputSpec = null;
                this.supportsMasking = false;
                // These properties will be set upon call of this.build()
                this._trainableWeights = [];
                this._nonTrainableWeights = [];
                this._losses = [];
                this._updates = [];
                this._built = false;
                /*
                  These lists will be filled via successive calls
                  to this.addInboundNode().
                 */
                this.inboundNodes = [];
                this.outboundNodes = [];
                let name = args.name;
                if (!name) {
                    const prefix = this.getClassName();
                    name = generic_utils.toSnakeCase(prefix) + '_' + (0,
                        _state.getUid)(prefix);
                }
                this.name = name;
                this.trainable_ = args.trainable == null ? true : args.trainable;
                if (args.inputShape != null || args.batchInputShape != null) {
                    /*
                      In this case we will later create an input layer
                      to insert before the current layer
                     */
                    let batchInputShape;
                    if (args.batchInputShape != null) {
                        batchInputShape = args.batchInputShape;
                    } else if (args.inputShape != null) {
                        let batchSize = null;
                        if (args.batchSize != null) {
                            batchSize = args.batchSize;
                        }
                        batchInputShape = [batchSize].concat(args.inputShape);
                    }
                    this.batchInputShape = batchInputShape;
                    // Set dtype.
                    let dtype = args.dtype;
                    if (dtype == null) {
                        dtype = args.inputDType;
                    }
                    if (dtype == null) {
                        dtype = 'float32';
                    }
                    this.dtype = dtype;
                }
                if (args.weights != null) {
                    this.initialWeights = args.weights;
                } else {
                    this.initialWeights = null;
                }
                // The value of `_refCount` is initialized to null. When the layer is used
                // in a symbolic way for the first time, it will be set to 1.
                this._refCount = null;
                this.fastWeightInitDuringBuild = false;
            }
            /**
             * Converts a layer and its index to a unique (immutable type) name.
             * This function is used internally with `this.containerNodes`.
             * @param layer The layer.
             * @param nodeIndex The layer's position (e.g. via enumerate) in a list of
             *   nodes.
             *
             * @returns The unique name.
             */
            static nodeKey(layer, nodeIndex) {
                return layer.name + '_ib-' + nodeIndex.toString();
            }
            /**
             * Returns this.inboundNode at index nodeIndex.
             *
             * Porting note: This is a replacement for _get_node_attribute_at_index()
             * @param nodeIndex
             * @param attrName The name of the attribute related to request for this node.
             */
            getNodeAtIndex(nodeIndex, attrName) {
                if (this.inboundNodes.length === 0) {
                    throw new _errors.RuntimeError('The layer has never been called ' + `and thus has no defined ${attrName}.`);
                }
                if (this.inboundNodes.length <= nodeIndex) {
                    throw new _errors.ValueError(`Asked to get ${attrName} at node ${nodeIndex}, ` + `but the layer has only ${this.inboundNodes.length} inbound nodes.`);
                }
                return this.inboundNodes[nodeIndex];
            }
            /**
             * Retrieves the input tensor(s) of a layer at a given node.
             *
             * @param nodeIndex Integer, index of the node from which to retrieve the
             *   attribute. E.g. `nodeIndex=0` will correspond to the first time the layer
             *   was called.
             *
             * @return A tensor (or list of tensors if the layer has multiple inputs).
             */
            getInputAt(nodeIndex) {
                return generic_utils.singletonOrArray(this.getNodeAtIndex(nodeIndex, 'input').inputTensors);
            }
            /**
             * Retrieves the output tensor(s) of a layer at a given node.
             *
             * @param nodeIndex Integer, index of the node from which to retrieve the
             *   attribute. E.g. `nodeIndex=0` will correspond to the first time the layer
             *   was called.
             *
             * @return A tensor (or list of tensors if the layer has multiple outputs).
             */
            getOutputAt(nodeIndex) {
                return generic_utils.singletonOrArray(this.getNodeAtIndex(nodeIndex, 'output').outputTensors);
            }
            // Properties
            /**
             * Retrieves the input tensor(s) of a layer.
             *
             * Only applicable if the layer has exactly one inbound node,
             * i.e. if it is connected to one incoming layer.
             *
             * @return Input tensor or list of input tensors.
             *
             * @exception AttributeError if the layer is connected to more than one
             *   incoming layers.
             */
            get input() {
                if (this.inboundNodes.length > 1) {
                    throw new _errors.AttributeError(`Layer ${this.name}` + ' has multiple inbound nodes, ' + 'hence the notion of "layer input" ' + 'is ill-defined. ' + 'Use `getInputAt(nodeIndex)` instead.');
                } else if (this.inboundNodes.length === 0) {
                    throw new _errors.AttributeError(`Layer ${this.name}` + ' is not connected, no input to return.');
                }
                return generic_utils.singletonOrArray(this.getNodeAtIndex(0, 'input').inputTensors);
            }
            /**
             * Retrieves the output tensor(s) of a layer.
             *
             * Only applicable if the layer has exactly one inbound node,
             * i.e. if it is connected to one incoming layer.
             *
             * @return Output tensor or list of output tensors.
             *
             * @exception AttributeError if the layer is connected to more than one
             *   incoming layers.
             */
            get output() {
                if (this.inboundNodes.length === 0) {
                    throw new _errors.AttributeError(`Layer ${this.name}` + ' has no inbound nodes.');
                }
                if (this.inboundNodes.length > 1) {
                    throw new _errors.AttributeError(`Layer ${this.name}` + ' has multiple inbound nodes, ' + 'hence the notion of "layer output" ' + 'is ill-defined. ' + 'Use `getOutputAt(nodeIndex)` instead.');
                }
                return generic_utils.singletonOrArray(this.getNodeAtIndex(0, 'output').outputTensors);
            }
            get losses() {
                return this._losses;
            }
            /**
             * Retrieves the Layer's current loss values.
             *
             * Used for regularizers during training.
             */
            calculateLosses() {
                // Porting Node: This is an augmentation to Layer.loss in PyKeras.
                //   In PyKeras, Layer.loss returns symbolic tensors. Here a concrete
                //   Tensor (specifically Scalar) values are returned. This is due to the
                //   imperative backend.
                return this.losses.map(lossFn => lossFn());
            }
            get updates() {
                return this._updates;
            }
            get built() {
                return this._built;
            }
            set built(built) {
                this._built = built;
            }
            get trainable() {
                return this.trainable_;
            }
            set trainable(trainable) {
                this._trainableWeights.forEach(w => w.trainable = trainable);
                this.trainable_ = trainable;
            }
            get trainableWeights() {
                if (this.trainable_) {
                    return this._trainableWeights.filter(w => w.trainable);
                } else {
                    return [];
                }
            }
            set trainableWeights(weights) {
                this._trainableWeights = weights;
            }
            get nonTrainableWeights() {
                if (this.trainable) {
                    return this._trainableWeights.filter(w => !w.trainable).concat(this._nonTrainableWeights);
                } else {
                    return this._trainableWeights.concat(this._nonTrainableWeights);
                }
            }
            set nonTrainableWeights(weights) {
                this._nonTrainableWeights = weights;
            }
            /**
             * The concatenation of the lists trainableWeights and nonTrainableWeights
             * (in this order).
             */
            get weights() {
                return this.trainableWeights.concat(this.nonTrainableWeights);
            }
            get stateful() {
                return this._stateful;
            }
            /**
             * Reset the states of the layer.
             *
             * This method of the base Layer class is essentially a no-op.
             * Subclasses that are stateful (e.g., stateful RNNs) should override this
             * method.
             */
            resetStates() {
                if (!this.stateful) {
                    throw new Error('Cannot call the resetStates() method of a non-stateful Layer ' + 'object.');
                }
            }
            /**
             * Checks compatibility between the layer and provided inputs.
             *
             * This checks that the tensor(s) `input`
             * verify the input assumptions of the layer
             * (if any). If not, exceptions are raised.
             *
             * @param inputs Input tensor or list of input tensors.
             *
             * @exception ValueError in case of mismatch between
             *   the provided inputs and the expectations of the layer.
             */
            assertInputCompatibility(inputs) {
                inputs = generic_utils.toList(inputs);
                if (this.inputSpec == null || this.inputSpec.length === 0) {
                    return;
                }
                const inputSpec = generic_utils.toList(this.inputSpec);
                if (inputs.length !== inputSpec.length) {
                    throw new _errors.ValueError(`Layer ${this.name} expects ${inputSpec.length} inputs, ` + `but it received ${inputs.length} input tensors. ` + `Input received: ${inputs}`);
                }
                for (let inputIndex = 0; inputIndex < inputs.length; inputIndex++) {
                    const x = inputs[inputIndex];
                    const spec = inputSpec[inputIndex];
                    if (spec == null) {
                        continue;
                    }
                    // Check ndim.
                    const ndim = x.rank;
                    if (spec.ndim != null) {
                        if (ndim !== spec.ndim) {
                            throw new _errors.ValueError(`Input ${inputIndex} is incompatible with layer ${this.name}: ` + `expected ndim=${spec.ndim}, found ndim=${ndim}`);
                        }
                    }
                    if (spec.maxNDim != null) {
                        if (ndim > spec.maxNDim) {
                            throw new _errors.ValueError(`Input ${inputIndex} is incompatible with layer ${this.name}` + `: expected max_ndim=${spec.maxNDim}, found ndim=${ndim}`);
                        }
                    }
                    if (spec.minNDim != null) {
                        if (ndim < spec.minNDim) {
                            throw new _errors.ValueError(`Input ${inputIndex} is incompatible with layer ${this.name}` + `: expected min_ndim=${spec.minNDim}, found ndim=${ndim}.`);
                        }
                    }
                    // Check dtype.
                    if (spec.dtype != null) {
                        if (x.dtype !== spec.dtype) {
                            throw new _errors.ValueError(`Input ${inputIndex} is incompatible with layer ${this.name} ` + `: expected dtype=${spec.dtype}, found dtype=${x.dtype}.`);
                        }
                    }
                    // Check specific shape axes.
                    if (spec.axes) {
                        const xShape = x.shape;
                        for (const key in spec.axes) {
                            const axis = Number(key);
                            const value = spec.axes[key];
                            // Perform Python-style slicing in case axis < 0;
                            // TODO(cais): Use https://github.com/alvivi/typescript-underscore to
                            // ensure type safety through Underscore calls.
                            const xShapeAtAxis = axis >= 0 ? xShape[axis] : xShape[xShape.length + axis];
                            if (value != null && [value, null].indexOf(xShapeAtAxis) === -1) {
                                throw new _errors.ValueError(`Input ${inputIndex} is incompatible with layer ` + `${this.name}: expected axis ${axis} of input shape to ` + `have value ${value} but got shape ${xShape}.`);
                            }
                        }
                    }
                    // Check shape.
                    if (spec.shape != null) {
                        for (let i = 0; i < spec.shape.length; ++i) {
                            const specDim = spec.shape[i];
                            const dim = x.shape[i];
                            if (specDim != null && dim != null) {
                                if (specDim !== dim) {
                                    throw new _errors.ValueError(`Input ${inputIndex} is incompatible with layer ` + `${this.name}: expected shape=${spec.shape}, ` + `found shape=${x.shape}.`);
                                }
                            }
                        }
                    }
                }
            }
            /**
             * This is where the layer's logic lives.
             *
             * @param inputs Input tensor, or list/tuple of input tensors.
             * @param kwargs Additional keyword arguments.
             *
             * @return A tensor or list/tuple of tensors.
             */
            call(inputs, kwargs) {
                return inputs;
            }
            invokeCallHook(inputs, kwargs) {
                if (this._callHook != null) {
                    this._callHook(inputs, kwargs);
                }
            }
            /**
             * Set call hook.
             * This is currently used for testing only.
             * @param callHook
             */
            setCallHook(callHook) {
                this._callHook = callHook;
            }
            /**
             * Clear call hook.
             * This is currently used for testing only.
             */
            clearCallHook() {
                this._callHook = null;
            }
            /**
             * Builds or executes a `Layer`'s logic.
             *
             * When called with `tf.Tensor`(s), execute the `Layer`'s computation and
             * return Tensor(s). For example:
             *
             * ```js
             * const denseLayer = tf.layers.dense({
             *   units: 1,
             *   kernelInitializer: 'zeros',
             *   useBias: false
             * });
             *
             * // Invoke the layer's apply() method with a `tf.Tensor` (with concrete
             * // numeric values).
             * const input = tf.ones([2, 2]);
             * const output = denseLayer.apply(input);
             *
             * // The output's value is expected to be [[0], [0]], due to the fact that
             * // the dense layer has a kernel initialized to all-zeros and does not have
             * // a bias.
             * output.print();
             * ```
             *
             * When called with `tf.SymbolicTensor`(s), this will prepare the layer for
             * future execution.  This entails internal book-keeping on shapes of
             * expected Tensors, wiring layers together, and initializing weights.
             *
             * Calling `apply` with `tf.SymbolicTensor`s are typically used during the
             * building of non-`tf.Sequential` models. For example:
             *
             * ```js
             * const flattenLayer = tf.layers.flatten();
             * const denseLayer = tf.layers.dense({units: 1});
             *
             * // Use tf.layers.input() to obtain a SymbolicTensor as input to apply().
             * const input = tf.input({shape: [2, 2]});
             * const output1 = flattenLayer.apply(input);
             *
             * // output1.shape is [null, 4]. The first dimension is the undetermined
             * // batch size. The second dimension comes from flattening the [2, 2]
             * // shape.
             * console.log(JSON.stringify(output1.shape));
             *
             * // The output SymbolicTensor of the flatten layer can be used to call
             * // the apply() of the dense layer:
             * const output2 = denseLayer.apply(output1);
             *
             * // output2.shape is [null, 1]. The first dimension is the undetermined
             * // batch size. The second dimension matches the number of units of the
             * // dense layer.
             * console.log(JSON.stringify(output2.shape));
             *
             * // The input and output can be used to construct a model that consists
             * // of the flatten and dense layers.
             * const model = tf.model({inputs: input, outputs: output2});
             * ```
             *
             * @param inputs a `tf.Tensor` or `tf.SymbolicTensor` or an Array of them.
             * @param kwargs Additional keyword arguments to be passed to `call()`.
             *
             * @return Output of the layer's `call` method.
             *
             * @exception ValueError error in case the layer is missing shape information
             *   for its `build` call.
             *
             * @doc {heading: 'Models', 'subheading': 'Classes'}
             */
            // Porting Note: This is a replacement for __call__() in Python.
            apply(inputs, kwargs) {
                kwargs = kwargs || {};
                this.assertNotDisposed();
                // Ensure inputs are all the same type.
                const inputsList = generic_utils.toList(inputs);
                let allAreSymbolic = true;
                for (const input of inputsList) {
                    if (!(input instanceof SymbolicTensor)) {
                        allAreSymbolic = false;
                        break;
                    }
                }
                let noneAreSymbolic = true;
                for (const input of inputsList) {
                    if (input instanceof SymbolicTensor) {
                        noneAreSymbolic = false;
                        break;
                    }
                }
                if (allAreSymbolic === noneAreSymbolic) {
                    throw new _errors.ValueError('Arguments to apply() must be all ' + 'SymbolicTensors or all Tensors');
                }
                // TODO(michaelterry): nameScope() may not be necessary.
                return (0,
                    _common.nameScope)(this.name, () => {
                        // Handle laying building (weight creating, input spec locking).
                        if (!this.built) {
                            /*
                              Throw exceptions in case the input is not compatible
                              with the inputSpec specified in the layer constructor.
                             */
                            this.assertInputCompatibility(inputs);
                            // Collect input shapes to build layer.
                            const inputShapes = [];
                            for (const xElem of generic_utils.toList(inputs)) {
                                inputShapes.push(xElem.shape);
                            }
                            this.build(generic_utils.singletonOrArray(inputShapes));
                            this.built = true;
                            // Load weights that were specified at layer instantiation.
                            if (this.initialWeights) {
                                this.setWeights(this.initialWeights);
                            }
                            if (this._refCount === null && noneAreSymbolic) {
                                // The first use of this layer is a non-symbolic call, set ref count
                                // to 1 so the Layer can be properly disposed if its dispose() method
                                // is called.
                                this._refCount = 1;
                            }
                        }
                        /*
                          Throw exceptions in case the input is not compatible
                          with the inputSpec set at build time.
                        */
                        this.assertInputCompatibility(inputs);
                        // Handle mask propagation.
                        // TODO(michaelterry): Mask propagation not currently implemented.
                        // Actually call the layer, collecting output(s), mask(s), and shape(s).
                        if (noneAreSymbolic) {
                            let output = this.call(inputs, kwargs);
                            // TODO(michaelterry): Compute the outputMask
                            // If the layer returns tensors from its inputs, unmodified,
                            // we copy them to avoid loss of tensor metadata.
                            const outputList = generic_utils.toList(output);
                            const outputListCopy = [];
                            // TODO(michaelterry): This copying may not be necessary given our eager
                            // backend.
                            for (let x of outputList) {
                                if (inputsList.indexOf(x) !== -1) {
                                    x = x.clone();
                                }
                                outputListCopy.push(x);
                            }
                            output = generic_utils.singletonOrArray(outputListCopy);
                            if (this.activityRegularizer != null) {
                                throw new _errors.NotImplementedError('Layer invocation in the presence of activity ' + 'regularizer(s) is not supported yet.');
                            }
                            // TODO(michaelterry): Call addInboundNode()?
                            return output;
                        } else {
                            const inputShape = collectInputShape(inputs);
                            const outputShape = this.computeOutputShape(inputShape);
                            let output;
                            const outputDType = guessOutputDType(inputs);
                            this.warnOnIncompatibleInputShape(Array.isArray(inputs) ? inputShape[0] : inputShape);
                            if (outputShape != null && outputShape.length > 0 && Array.isArray(outputShape[0])) {
                                // We have multiple output shapes. Create multiple output tensors.
                                output = outputShape.map((shape, index) => new SymbolicTensor(outputDType, shape, this, generic_utils.toList(inputs), kwargs, this.name, index));
                            } else {
                                output = new SymbolicTensor(outputDType, outputShape, this, generic_utils.toList(inputs), kwargs, this.name);
                            }
                            /*
                              Add an inbound node to the layer, so that it keeps track
                              of the call and of all new variables created during the call.
                              This also updates the layer history of the output tensor(s).
                              If the input tensor(s) had no previous history,
                              this does nothing.
                            */
                            this.addInboundNode(inputs, output, null, null, inputShape, outputShape, kwargs);
                            this._refCount++;
                            if (this.activityRegularizer != null) {
                                throw new _errors.NotImplementedError('Layer invocation in the presence of activity ' + 'regularizer(s) is not supported yet.');
                            }
                            return output;
                        }
                    }
                    );
            }
            /**
             * Check compatibility between input shape and this layer's batchInputShape.
             *
             * Print warning if any incompatibility is found.
             *
             * @param inputShape Input shape to be checked.
             */
            warnOnIncompatibleInputShape(inputShape) {
                if (this.batchInputShape == null) {
                    return;
                } else if (inputShape.length !== this.batchInputShape.length) {
                    console.warn(`The rank of the input tensor provided (shape: ` + `${JSON.stringify(inputShape)}) does not match that of the ` + `batchInputShape (${JSON.stringify(this.batchInputShape)}) ` + `of the layer ${this.name}`);
                } else {
                    let dimMismatch = false;
                    this.batchInputShape.forEach((dimension, i) => {
                        if (dimension != null && inputShape[i] != null && inputShape[i] !== dimension) {
                            dimMismatch = true;
                        }
                    }
                    );
                    if (dimMismatch) {
                        console.warn(`The shape of the input tensor ` + `(${JSON.stringify(inputShape)}) does not ` + `match the expectation of layer ${this.name}: ` + `${JSON.stringify(this.batchInputShape)}`);
                    }
                }
            }
            /**
             * Retrieves the output shape(s) of a layer.
             *
             * Only applicable if the layer has only one inbound node, or if all inbound
             * nodes have the same output shape.
             *
             * @returns Output shape or shapes.
             * @throws AttributeError: if the layer is connected to more than one incoming
             *   nodes.
             *
             * @doc {heading: 'Models', 'subheading': 'Classes'}
             */
            get outputShape() {
                if (this.inboundNodes == null || this.inboundNodes.length === 0) {
                    throw new _errors.AttributeError(`The layer ${this.name} has never been called and thus has no ` + `defined output shape.`);
                }
                const allOutputShapes = [];
                for (const node of this.inboundNodes) {
                    const shapeString = JSON.stringify(node.outputShapes);
                    if (allOutputShapes.indexOf(shapeString) === -1) {
                        allOutputShapes.push(shapeString);
                    }
                }
                if (allOutputShapes.length === 1) {
                    const outputShapes = this.inboundNodes[0].outputShapes;
                    if (Array.isArray(outputShapes) && Array.isArray(outputShapes[0]) && outputShapes.length === 1) {
                        return outputShapes[0];
                    } else {
                        return outputShapes;
                    }
                } else {
                    throw new _errors.AttributeError(`The layer ${this.name} has multiple inbound nodes with different ` + `output shapes. Hence the notion of "output shape" is ill-defined ` + `for the layer.`);
                    // TODO(cais): Implement getOutputShapeAt().
                }
            }
            /**
             * Counts the total number of numbers (e.g., float32, int32) in the
             * weights.
             *
             * @returns An integer count.
             * @throws RuntimeError: If the layer is not built yet (in which case its
             *   weights are not defined yet.)
             *
             * @doc {heading: 'Models', 'subheading': 'Classes'}
             */
            countParams() {
                if (!this.built) {
                    throw new _errors.RuntimeError(`You tried to call countParams() on ${this.name}, ` + `but the layer is not built yet. Build it first by calling ` + `build(batchInputShape).`);
                }
                return variable_utils.countParamsInWeights(this.weights);
            }
            /**
             * Creates the layer weights.
             *
             * Must be implemented on all layers that have weights.
             *
             * Called when apply() is called to construct the weights.
             *
             * @param inputShape A `Shape` or array of `Shape` (unused).
             *
             * @doc {heading: 'Models', 'subheading': 'Classes'}
             */
            build(inputShape) {
                this.built = true;
            }
            /**
             * Returns the current values of the weights of the layer.
             *
             * @param trainableOnly Whether to get the values of only trainable weights.
             * @returns Weight values as an `Array` of `tf.Tensor`s.
             *
             * @doc {heading: 'Models', 'subheading': 'Classes'}
             */
            getWeights(trainableOnly = false) {
                return (0,
                    _variables.batchGetValue)(trainableOnly ? this.trainableWeights : this.weights);
            }
            /**
             * Sets the weights of the layer, from Tensors.
             *
             * @param weights a list of Tensors. The number of arrays and their shape
             *   must match number of the dimensions of the weights of the layer (i.e.
             *   it should match the output of `getWeights`).
             *
             * @exception ValueError If the provided weights list does not match the
             *   layer's specifications.
             *
             * @doc {heading: 'Models', 'subheading': 'Classes'}
             */
            setWeights(weights) {
                (0,
                    _tfjsCore.tidy)(() => {
                        const params = this.weights;
                        if (params.length !== weights.length) {
                            // TODO(cais): Restore the following and use `providedWeights`, instead
                            // of `weights` in the error message, once the deeplearn.js bug is
                            // fixed: https://github.com/PAIR-code/deeplearnjs/issues/498 const
                            // providedWeights = JSON.stringify(weights).slice(0, 50);
                            throw new _errors.ValueError(`You called setWeights(weights) on layer "${this.name}" ` + `with a weight list of length ${weights.length}, ` + `but the layer was expecting ${params.length} weights. ` + `Provided weights: ${weights}...`);
                        }
                        if (params.length === 0) {
                            return;
                        }
                        const weightValueTuples = [];
                        const paramValues = (0,
                            _variables.batchGetValue)(params);
                        for (let i = 0; i < paramValues.length; ++i) {
                            const pv = paramValues[i];
                            const p = params[i];
                            const w = weights[i];
                            if (!_tfjsCore.util.arraysEqual(pv.shape, w.shape)) {
                                throw new _errors.ValueError(`Layer weight shape ${pv.shape} ` + `not compatible with provided weight shape ${w.shape}`);
                            }
                            weightValueTuples.push([p, w]);
                        }
                        (0,
                            _variables.batchSetValue)(weightValueTuples);
                    }
                    );
            }
            /**
             * Adds a weight variable to the layer.
             *
             * @param name Name of the new weight variable.
             * @param shape The shape of the weight.
             * @param dtype The dtype of the weight.
             * @param initializer An initializer instance.
             * @param regularizer A regularizer instance.
             * @param trainable Whether the weight should be trained via backprop or not
             *   (assuming that the layer itself is also trainable).
             * @param constraint An optional trainable.
             * @return The created weight variable.
             *
             * @doc {heading: 'Models', 'subheading': 'Classes'}
             */
            addWeight(name, shape, dtype, initializer, regularizer, trainable, constraint, getInitializerFunc) {
                // Reject duplicate weight names.
                if (this._addedWeightNames.indexOf(name) !== -1) {
                    throw new _errors.ValueError(`Duplicate weight name ${name} for layer ${this.name}`);
                }
                this._addedWeightNames.push(name);
                if (dtype == null) {
                    dtype = 'float32';
                }
                if (this.fastWeightInitDuringBuild) {
                    initializer = getInitializerFunc != null ? getInitializerFunc() : (0,
                        _initializers.getInitializer)('zeros');
                }
                const initValue = initializer.apply(shape, dtype);
                const weight = new _variables.LayerVariable(initValue, dtype, name, trainable, constraint);
                initValue.dispose();
                // Request backend not to dispose the weights of the model on scope() exit.
                if (regularizer != null) {
                    this.addLoss(() => regularizer.apply(weight.read()));
                }
                if (trainable == null) {
                    trainable = true;
                }
                if (trainable) {
                    this._trainableWeights.push(weight);
                } else {
                    this._nonTrainableWeights.push(weight);
                }
                return weight;
            }
            /**
             * Set the fast-weight-initialization flag.
             *
             * In cases where the initialized weight values will be immediately
             * overwritten by loaded weight values during model loading, setting
             * the flag to `true` saves unnecessary calls to potentially expensive
             * initializers and speeds up the loading process.
             *
             * @param value Target value of the flag.
             */
            setFastWeightInitDuringBuild(value) {
                this.fastWeightInitDuringBuild = value;
            }
            /**
             * Add losses to the layer.
             *
             * The loss may potentially be conditional on some inputs tensors,
             * for instance activity losses are conditional on the layer's inputs.
             *
             * @doc {heading: 'Models', 'subheading': 'Classes'}
             */
            addLoss(losses) {
                if (losses == null || Array.isArray(losses) && losses.length === 0) {
                    return;
                }
                // Update this.losses
                losses = generic_utils.toList(losses);
                if (this._losses !== undefined && this._losses !== null) {
                    this.losses.push(...losses);
                }
            }
            /**
             * Computes the output shape of the layer.
             *
             * Assumes that the layer will be built to match that input shape provided.
             *
             * @param inputShape A shape (tuple of integers) or a list of shape tuples
             *   (one per output tensor of the layer). Shape tuples can include null for
             *   free dimensions, instead of an integer.
             *
             * @doc {heading: 'Models', 'subheading': 'Classes'}
             */
            computeOutputShape(inputShape) {
                return inputShape;
            }
            /**
             * Computes an output mask tensor.
             *
             * @param inputs Tensor or list of tensors.
             * @param mask Tensor or list of tensors.
             *
             * @return null or a tensor (or list of tensors, one per output tensor of the
             * layer).
             */
            computeMask(inputs, mask) {
                if (!this.supportsMasking) {
                    if (mask != null) {
                        if (Array.isArray(mask)) {
                            mask.forEach(maskElement => {
                                if (maskElement != null) {
                                    throw new TypeError(`Layer ${this.name} does not support masking, ` + 'but was passed an inputMask.');
                                }
                            }
                            );
                        } else {
                            throw new TypeError(`Layer ${this.name} does not support masking, ` + 'but was passed an inputMask.');
                        }
                    }
                    // masking not explicitly supported: return null as mask
                    return null;
                }
                // if masking is explictly supported, by default
                // carry over the input mask
                return mask;
            }
            /**
             * Internal method to create an inbound node for the layer.
             *
             * @param inputTensors List of input tensors.
             * @param outputTensors List of output tensors.
             * @param inputMasks List of input masks (a mask can be a tensor, or null).
             * @param outputMasks List of output masks (a mask can be a tensor, or null).
             * @param inputShapes List of input shape tuples.
             * @param outputShapes List of output shape tuples.
             * @param kwargs Dictionary of keyword arguments that were passed to the
             *   `call` method of the layer at the call that created the node.
             */
            addInboundNode(inputTensors, outputTensors, inputMasks, outputMasks, inputShapes, outputShapes, kwargs = null) {
                const inputTensorList = generic_utils.toList(inputTensors);
                outputTensors = generic_utils.toList(outputTensors);
                inputMasks = generic_utils.toList(inputMasks);
                outputMasks = generic_utils.toList(outputMasks);
                inputShapes = types_utils.normalizeShapeList(inputShapes);
                outputShapes = types_utils.normalizeShapeList(outputShapes);
                // Collect input tensor(s) coordinates.
                const inboundLayers = [];
                const nodeIndices = [];
                const tensorIndices = [];
                for (const x of inputTensorList) {
                    /*
                     * TODO(michaelterry): Keras adds this value to tensors; it's not
                     * clear whether we'll use this or not.
                     */
                    inboundLayers.push(x.sourceLayer);
                    nodeIndices.push(x.nodeIndex);
                    tensorIndices.push(x.tensorIndex);
                }
                // Create node, add it to inbound nodes.
                // (This call has side effects.)
                // tslint:disable-next-line:no-unused-expression
                new Node({
                    outboundLayer: this,
                    inboundLayers,
                    nodeIndices,
                    tensorIndices,
                    inputTensors: inputTensorList,
                    outputTensors,
                    inputMasks,
                    outputMasks,
                    inputShapes,
                    outputShapes
                }, kwargs);
                // Update tensor history
                for (let i = 0; i < outputTensors.length; i++) {
                    // TODO(michaelterry: _uses_learning_phase not tracked.
                    outputTensors[i].sourceLayer = this;
                    outputTensors[i].nodeIndex = this.inboundNodes.length - 1;
                    outputTensors[i].tensorIndex = i;
                }
            }
            /**
             * Returns the config of the layer.
             *
             * A layer config is a TS dictionary (serializable)
             * containing the configuration of a layer.
             * The same layer can be reinstantiated later
             * (without its trained weights) from this configuration.
             *
             * The config of a layer does not include connectivity
             * information, nor the layer class name.  These are handled
             * by 'Container' (one layer of abstraction above).
             *
             * Porting Note: The TS dictionary follows TS naming standards for
             * keys, and uses tfjs-layers type-safe Enums.  Serialization methods
             * should use a helper function to convert to the pythonic storage
             * standard. (see serialization_utils.convertTsToPythonic)
             *
             * @returns TS dictionary of configuration.
             *
             * @doc {heading: 'Models', 'subheading': 'Classes'}
             */
            getConfig() {
                const config = {
                    name: this.name,
                    trainable: this.trainable
                };
                if (this.batchInputShape != null) {
                    config['batchInputShape'] = this.batchInputShape;
                }
                if (this.dtype != null) {
                    config['dtype'] = this.dtype;
                }
                return config;
            }
            /**
             * Dispose the weight variables that this Layer instance holds.
             *
             * @returns {number} Number of disposed variables.
             */
            disposeWeights() {
                this.weights.forEach(weight => weight.dispose());
                return this.weights.length;
            }
            assertNotDisposed() {
                if (this._refCount === 0) {
                    throw new Error(`Layer '${this.name}' is already disposed.`);
                }
            }
            /**
             * Attempt to dispose layer's weights.
             *
             * This method decreases the reference count of the Layer object by 1.
             *
             * A Layer is reference-counted. Its reference count is incremented by 1
             * the first item its `apply()` method is called and when it becomes a part
             * of a new `Node` (through calling the `apply()` method on a
             * `tf.SymbolicTensor`).
             *
             * If the reference count of a Layer becomes 0, all the weights will be
             * disposed and the underlying memory (e.g., the textures allocated in WebGL)
             * will be freed.
             *
             * Note: If the reference count is greater than 0 after the decrement, the
             * weights of the Layer will *not* be disposed.
             *
             * After a Layer is disposed, it cannot be used in calls such as `apply()`,
             * `getWeights()` or `setWeights()` anymore.
             *
             * @returns A DisposeResult Object with the following fields:
             *   - refCountAfterDispose: The reference count of the Container after this
             *     `dispose()` call.
             *   - numDisposedVariables: Number of `tf.Variable`s (i.e., weights) disposed
             *     during this `dispose()` call.
             * @throws {Error} If the layer is not built yet, or if the layer has already
             *   been disposed.
             *
             * @doc {heading: 'Models', 'subheading': 'Classes'}
             */
            dispose() {
                if (!this.built) {
                    throw new Error(`Cannot dispose Layer ${this.name} because it has not been ` + `built yet.`);
                }
                if (this._refCount === null) {
                    throw new Error(`Cannot dispose Layer ${this.name} because it has not been used ` + `yet.`);
                }
                this.assertNotDisposed();
                let numDisposedVariables = 0;
                if (--this._refCount === 0) {
                    numDisposedVariables = this.disposeWeights();
                }
                return {
                    refCountAfterDispose: this._refCount,
                    numDisposedVariables
                };
            }
        }
        /**
         * Collects the input shape(s) of a list of `tf.Tensor`s or
         * `tf.SymbolicTensor`s.
         *
         * TODO(michaelterry): Update PyKeras docs (backport).
         *
         * @param inputTensors List of input tensors (or single input tensor).
         *
         * @return List of shape tuples (or single tuple), one tuple per input.
         */
        exports.Layer = Layer;
        function collectInputShape(inputTensors) {
            inputTensors = generic_utils.toList(inputTensors);
            const shapes = [];
            for (const x of inputTensors) {
                shapes.push(x.shape);
            }
            return generic_utils.singletonOrArray(shapes);
        }
        /**
         * Guesses output dtype based on inputs.
         *
         * At present, just returns 'float32' for any input.
         *
         * @param inputTensors List of input tensors (or single input tensor).
         *
         * @return The guessed DType. At present, always returns 'float32'.
         */
        function guessOutputDType(inputTensors) {
            return 'float32';
        }
        /**
         * Returns the list of input tensors necessary to compute `tensor`.
         *
         * Output will always be a list of tensors (potentially with 1 element).
         *
         * @param tensor The tensor to start from.
         * @param layer Origin layer of the tensor.
         * @param nodeIndex Origin node index of the tensor.
         *
         * @return Array of input tensors.
         */
        function getSourceInputs(tensor, layer, nodeIndex) {
            if (layer == null || nodeIndex != null && nodeIndex > 0) {
                layer = tensor.sourceLayer;
                nodeIndex = tensor.nodeIndex;
            }
            if (layer.inboundNodes.length === 0) {
                return [tensor];
            } else {
                const node = layer.inboundNodes[nodeIndex];
                if (node.inboundLayers.length === 0) {
                    return node.inputTensors;
                } else {
                    const sourceTensors = [];
                    for (let i = 0; i < node.inboundLayers.length; i++) {
                        const x = node.inputTensors[i];
                        const layer = node.inboundLayers[i];
                        const nodeIndex = node.nodeIndices[i];
                        const previousSources = getSourceInputs(x, layer, nodeIndex);
                        // Avoid input redundancy.
                        for (const x of previousSources) {
                            if (sourceTensors.indexOf(x) === -1) {
                                sourceTensors.push(x);
                            }
                        }
                    }
                    return sourceTensors;
                }
            }
        }

    }
        , {
        "../backend/state": 515,
        "../common": 519,
        "../errors": 529,
        "../initializers": 539,
        "../utils/generic_utils": 570,
        "../utils/types_utils": 574,
        "../utils/variable_utils": 575,
        "../variables": 576,
        "@tensorflow/tfjs-core": 506
    }],
    525: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.LayersModel = exports.Functional = void 0;
        exports.checkArrayLengths = checkArrayLengths;
        exports.collectMetrics = collectMetrics;
        exports.isDataArray = isDataArray;
        exports.isDataDict = isDataDict;
        exports.isDataTensor = isDataTensor;
        exports.standardizeInputData = standardizeInputData;
        var tfc = _interopRequireWildcard(require("@tensorflow/tfjs-core"));
        var K = _interopRequireWildcard(require("../backend/tfjs_backend"));
        var _base_callbacks = require("../base_callbacks");
        var _common = require("../common");
        var _errors = require("../errors");
        var _serialization = require("../layers/serialization");
        var _logs = require("../logs");
        var losses = _interopRequireWildcard(require("../losses"));
        var Metrics = _interopRequireWildcard(require("../metrics"));
        var optimizers = _interopRequireWildcard(require("../optimizers"));
        var _user_defined_metadata = require("../user_defined_metadata");
        var _generic_utils = require("../utils/generic_utils");
        var _layer_utils = require("../utils/layer_utils");
        var _math_utils = require("../utils/math_utils");
        var _serialization_utils = require("../utils/serialization_utils");
        var _version = require("../version");
        var _container = require("./container");
        var _executor = require("./executor");
        var _training_dataset = require("./training_dataset");
        var _training_tensors = require("./training_tensors");
        var _training_utils = require("./training_utils");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2018 Google LLC
         *
         * Use of this source code is governed by an MIT-style
         * license that can be found in the LICENSE file or at
         * https://opensource.org/licenses/MIT.
         * =============================================================================
         */
        /* Original Source: engine/training.py */

        /**
         * Helper function for polymorphic input data: 1. singleton Tensor.
         */
        function isDataTensor(x) {
            return x instanceof tfc.Tensor;
        }
        /**
         * Helper function for polymorphic input data: 2. Array of Tensor.
         */
        function isDataArray(x) {
            return Array.isArray(x);
        }
        /**
         * Helper function for polymorphic input data: 3. "dict" of Tensor.
         */
        function isDataDict(x) {
            return !isDataTensor(x) && !isDataArray(x);
        }
        /**
         * Normalizes inputs and targets provided by users.
         * @param data User-provided input data (polymorphic).
         * @param names An Array of expected Tensor names.
         * @param shapes Optional Array of expected Tensor shapes.
         * @param checkBatchAxis Whether to check that the batch axis of the arrays
         *   match  the expected value found in `shapes`.
         * @param exceptionPrefix String prefix used for exception formatting.
         * @returns List of standardized input Tensors (one Tensor per model input).
         * @throws ValueError: in case of improperly formatted user data.
         */
        function standardizeInputData(data, names, shapes, checkBatchAxis = true, exceptionPrefix = '') {
            if (names == null || names.length === 0) {
                // Check for the case where the model expected no data, but some data got
                // sent.
                if (data != null) {
                    let gotUnexpectedData = false;
                    if (isDataArray(data) && data.length > 0) {
                        gotUnexpectedData = true;
                    } else if (isDataDict(data)) {
                        for (const key in data) {
                            if (data.hasOwnProperty(key)) {
                                gotUnexpectedData = true;
                                break;
                            }
                        }
                    } else {
                        // `data` is a singleton Tensor in this case.
                        gotUnexpectedData = true;
                    }
                    if (gotUnexpectedData) {
                        throw new _errors.ValueError(`Error when checking model ${exceptionPrefix} expected no data, ` + `but got ${data}`);
                    }
                }
                return [];
            }
            if (data == null) {
                return names.map(name => null);
            }
            let arrays;
            if (isDataDict(data)) {
                data = data;
                arrays = [];
                for (const name of names) {
                    if (data[name] == null) {
                        throw new _errors.ValueError(`No data provided for "${name}". Need data for each key in: ` + `${names}`);
                    }
                    arrays.push(data[name]);
                }
            } else if (isDataArray(data)) {
                data = data;
                if (data.length !== names.length) {
                    throw new _errors.ValueError(`Error when checking model ${exceptionPrefix}: the Array of ` + `Tensors that you are passing to your model is not the size the ` + `model expected. Expected to see ${names.length} Tensor(s), but ` + `instead got the following list of Tensor(s): ${data}`);
                }
                arrays = data;
            } else {
                data = data;
                if (names.length > 1) {
                    throw new _errors.ValueError(`The model ${exceptionPrefix} expects ${names.length} Tensor(s), ` + `but only received one Tensor. Found: Tensor with shape ${data.shape}`);
                }
                arrays = [data];
            }
            arrays = (0,
                _training_tensors.ensureTensorsRank2OrHigher)(arrays);
            // Check shape compatibility.
            if (shapes != null) {
                for (let i = 0; i < names.length; ++i) {
                    if (shapes[i] == null) {
                        continue;
                    }
                    const array = arrays[i];
                    if (array.shape.length !== shapes[i].length) {
                        throw new _errors.ValueError(`Error when checking ${exceptionPrefix}: expected ${names[i]} ` + `to have ${shapes[i].length} dimension(s). but got array with ` + `shape ${array.shape}`);
                    }
                    for (let j = 0; j < shapes[i].length; ++j) {
                        if (j === 0 && !checkBatchAxis) {
                            // Skip the first (batch) axis.
                            continue;
                        }
                        const dim = array.shape[j];
                        const refDim = shapes[i][j];
                        if (refDim != null && refDim >= 0 && dim !== refDim) {
                            throw new _errors.ValueError(`${exceptionPrefix} expected a batch of elements where each ` + `example has shape [${shapes[i].slice(1, shapes[i].length)}] ` + `(i.e.,tensor shape [*,${shapes[i].slice(1, shapes[i].length)}])` + ` but the ${exceptionPrefix} received an input with ${array.shape[0]}` + ` examples, each with shape [${array.shape.slice(1, array.shape.length)}]` + ` (tensor shape [${array.shape}])`);
                        }
                    }
                }
            }
            return arrays;
        }
        /**
         * User input validation for Tensors.
         * @param inputs `Array` of `tf.Tensor`s for inputs.
         * @param targets `Array` of `tf.Tensor`s for targets.
         * @param weights Optional `Array` of `tf.Tensor`s for sample weights.
         * @throws ValueError: in case of incorrectly formatted data.
         */
        function checkArrayLengths(inputs, targets, weights) {
            const setX = (0,
                _generic_utils.unique)(inputs.map(input => input.shape[0]));
            setX.sort();
            const setY = (0,
                _generic_utils.unique)(targets.map(target => target.shape[0]));
            setY.sort();
            // TODO(cais): Check `weights` as well.
            if (setX.length > 1) {
                throw new _errors.ValueError(`All input Tensors (x) should have the same number of samples. ` + `Got array shapes: ` + `${JSON.stringify(inputs.map(input => input.shape))}`);
            }
            if (setY.length > 1) {
                throw new _errors.ValueError(`All target Tensors (y) should have the same number of samples. ` + `Got array shapes: ` + `${JSON.stringify(targets.map(target => target.shape))}`);
            }
            if (setX.length > 0 && setY.length > 0 && !tfc.util.arraysEqual(setX, setY)) {
                throw new _errors.ValueError(`Input Tensors should have the same number of samples as target ` + `Tensors. Found ${setX[0]} input sample(s) and ${setY[0]} target ` + `sample(s).`);
            }
        }
        /**
         * Validation on the compatibility of targes and loss functions.
         *
         * This helps prevent users from using loss functions incorrectly.
         *
         * @param targets `Array` of `tf.Tensor`s of targets.
         * @param lossFns `Array` of loss functions.
         * @param outputShapes `Array` of shapes of model outputs.
         */
        function checkLossAndTargetCompatibility(targets, lossFns, outputShapes) {
            // TODO(cais): Dedicated test coverage?
            const keyLosses = [losses.meanSquaredError, losses.binaryCrossentropy, losses.categoricalCrossentropy];
            for (let i = 0; i < targets.length; ++i) {
                const y = targets[i];
                const loss = lossFns[i];
                const shape = outputShapes[i];
                if (loss == null) {
                    continue;
                }
                if (loss === losses.categoricalCrossentropy) {
                    if (y.shape[y.shape.length - 1] === 1) {
                        throw new _errors.ValueError(`You are passing a target array of shape ${y.shape} while using ` + `a loss 'categorical_crossentropy'. 'categorical_crossentropy'` + `expects targets to be binary matrices (1s and 0s) of shape ` + `[samples, classes].`);
                        // TODO(cais): Example code in error message.
                    }
                }

                if (keyLosses.indexOf(loss) !== -1) {
                    const slicedYShape = y.shape.slice(1);
                    const slicedShape = shape.slice(1);
                    for (let j = 0; j < slicedYShape.length; ++j) {
                        const targetDim = slicedYShape[j];
                        const outDim = slicedShape[j];
                        if (outDim != null && targetDim !== outDim) {
                            throw new _errors.ValueError(`A target Tensor with shape ${y.shape} was passed for an ` + `output of shape ${shape}, while using a loss function that ` + `expects targets to have the same shape as the output.`);
                        }
                    }
                }
            }
        }
        /**
         * Check inputs provided by the user.
         *
         * Porting Note: This corresponds to _standardize_input_data() in Python
         *   Keras. Because of the strong typing in TF.js, we do not need to convert
         *   the data. Specifically:
         *   1) in PyKeras, `data` can be `DataFrame` instances from pandas, for
         *      example. We don't need to worry about that here because there is no
         *      widely popular javascript/typesdcript equivalent of pandas (so far).
         *      If one becomes available in the future, we can add support.
         *   2) in PyKeras, inputs can be Python dict. But here we are stipulating
         * that the data is either a single `tf.Tensor` or an Array of `tf.Tensor`s. We
         * may add support for `Object` data inputs in the future when the need
         * arises.
         *
         * Instead, we perform basic checks for number of parameters and shapes.
         *
         * @param data: The input data.
         * @param names: Name for the inputs, from the model.
         * @param shapes: Expected shapes for the input data, from the model.
         * @param checkBatchAxis: Whether the size along the batch axis (i.e., the
         *   first dimension) will be checked for matching.
         * @param exceptionPrefix: Execption prefix message, used in generating error
         *   messages.
         * @throws ValueError: on incorrect number of inputs or mismatches in shapes.
         */
        function checkInputData(data, names, shapes, checkBatchAxis = true, exceptionPrefix = '') {
            let arrays;
            if (Array.isArray(data)) {
                if (data.length !== names.length) {
                    throw new _errors.ValueError(`Error when checking model ${exceptionPrefix}: the Array of ` + `Tensors that you are passing to your model is not the size the ` + `the model expected. Expected to see ${names.length} Tensor(s),` + ` but instead got ${data.length} Tensors(s).`);
                }
                arrays = data;
            } else {
                if (names.length > 1) {
                    throw new _errors.ValueError(`The model expects ${names.length} ${exceptionPrefix} Tensors, ` + `but only received one Tensor. Found: array with shape ` + `${JSON.stringify(data.shape)}.`);
                }
                arrays = [data];
            }
            if (shapes != null) {
                for (let i = 0; i < names.length; ++i) {
                    if (shapes[i] == null) {
                        continue;
                    }
                    const array = arrays[i];
                    if (array.shape.length !== shapes[i].length) {
                        throw new _errors.ValueError(`Error when checking ${exceptionPrefix}: expected ${names[i]} ` + `to have ${shapes[i].length} dimension(s), but got array with ` + `shape ${JSON.stringify(array.shape)}`);
                    }
                    for (let j = 0; j < shapes[i].length; ++j) {
                        if (j === 0 && !checkBatchAxis) {
                            continue;
                        }
                        const dim = array.shape[j];
                        const refDim = shapes[i][j];
                        if (refDim != null) {
                            if (refDim !== dim) {
                                throw new _errors.ValueError(`Error when checking ${exceptionPrefix}: expected ` + `${names[i]} to have shape ${JSON.stringify(shapes[i])} but ` + `got array with shape ${JSON.stringify(array.shape)}.`);
                            }
                        }
                    }
                }
            }
        }
        /**
         * Maps metric functions to model outputs.
         * @param metrics An shortcut strings name, metric function, `Array` or dict
         *   (`Object`) of metric functions.
         * @param outputNames An `Array` of the names of model outputs.
         * @returns An `Array` (one entry per model output) of `Array` of metric
         *   functions. For instance, if the model has 2 outputs, and for the first
         *   output we want to compute `binaryAccuracy` and `binaryCrossentropy`,
         *   and just `binaryAccuracy` for the second output, the `Array` would look
         *   like:
         *     `[[binaryAccuracy, binaryCrossentropy],  [binaryAccuracy]]`
         * @throws TypeError: incompatible metrics format.
         */
        function collectMetrics(metrics, outputNames) {
            if (metrics == null || Array.isArray(metrics) && metrics.length === 0) {
                return outputNames.map(name => []);
            }
            let wrappedMetrics;
            if (typeof metrics === 'string' || typeof metrics === 'function') {
                wrappedMetrics = [metrics];
            } else if (Array.isArray(metrics) || typeof metrics === 'object') {
                wrappedMetrics = metrics;
            } else {
                throw new TypeError('Type of metrics argument not understood. Expected an string,' + `function, Array, or Object, found: ${metrics}`);
            }
            if (Array.isArray(wrappedMetrics)) {
                // We then apply all metrics to all outputs.
                return outputNames.map(name => wrappedMetrics);
            } else {
                // In this case, metrics is a dict.
                const nestedMetrics = [];
                for (const name of outputNames) {
                    let outputMetrics = wrappedMetrics.hasOwnProperty(name) ? wrappedMetrics[name] : [];
                    if (!Array.isArray(outputMetrics)) {
                        outputMetrics = [outputMetrics];
                    }
                    nestedMetrics.push(outputMetrics);
                }
                return nestedMetrics;
            }
        }
        const LAYERS_MODEL_FORMAT_NAME = 'layers-model';
        /**
         * A `tf.LayersModel` is a directed, acyclic graph of `tf.Layer`s plus methods
         * for training, evaluation, prediction and saving.
         *
         * `tf.LayersModel` is the basic unit of training, inference and evaluation in
         * TensorFlow.js. To create a `tf.LayersModel`, use `tf.LayersModel`.
         *
         * See also:
         *   `tf.Sequential`, `tf.loadLayersModel`.
         *
         * @doc {heading: 'Models', subheading: 'Classes'}
         */
        class LayersModel extends _container.Container {
            constructor(args) {
                super(args);
                this.isTraining = false;
            }
            /**
             * Print a text summary of the model's layers.
             *
             * The summary includes
             * - Name and type of all layers that comprise the model.
             * - Output shape(s) of the layers
             * - Number of weight parameters of each layer
             * - If the model has non-sequential-like topology, the inputs each layer
             *   receives
             * - The total number of trainable and non-trainable parameters of the model.
             *
             * ```js
             * const input1 = tf.input({shape: [10]});
             * const input2 = tf.input({shape: [20]});
             * const dense1 = tf.layers.dense({units: 4}).apply(input1);
             * const dense2 = tf.layers.dense({units: 8}).apply(input2);
             * const concat = tf.layers.concatenate().apply([dense1, dense2]);
             * const output =
             *     tf.layers.dense({units: 3, activation: 'softmax'}).apply(concat);
             *
             * const model = tf.model({inputs: [input1, input2], outputs: output});
             * model.summary();
             * ```
             *
             * @param lineLength Custom line length, in number of characters.
             * @param positions Custom widths of each of the columns, as either
             *   fractions of `lineLength` (e.g., `[0.5, 0.75, 1]`) or absolute number
             *   of characters (e.g., `[30, 50, 65]`). Each number corresponds to
             *   right-most (i.e., ending) position of a column.
             * @param printFn Custom print function. Can be used to replace the default
             *   `console.log`. For example, you can use `x => {}` to mute the printed
             *   messages in the console.
             *
             * @doc {heading: 'Models', subheading: 'Classes'}
             */
            summary(lineLength, positions, printFn = console.log) {
                if (!this.built) {
                    throw new _errors.ValueError(`This model has never been called, thus its weights have not been ` + `created yet. So no summary can be displayed. Build the model ` + `first (e.g., by calling it on some test data).`);
                }
                (0,
                    _layer_utils.printSummary)(this, lineLength, positions, printFn);
            }
            /**
             * Configures and prepares the model for training and evaluation.  Compiling
             * outfits the model with an optimizer, loss, and/or metrics.  Calling `fit`
             * or `evaluate` on an un-compiled model will throw an error.
             *
             * @param args a `ModelCompileArgs` specifying the loss, optimizer, and
             * metrics to be used for fitting and evaluating this model.
             *
             * @doc {heading: 'Models', subheading: 'Classes'}
             */
            compile(args) {
                if (args.loss == null) {
                    args.loss = [];
                }
                this.loss = args.loss;
                if (typeof args.optimizer === 'string') {
                    this.optimizer_ = optimizers.getOptimizer(args.optimizer);
                    this.isOptimizerOwned = true;
                } else {
                    if (!(args.optimizer instanceof tfc.Optimizer)) {
                        throw new _errors.ValueError(`User-defined optimizer must be an instance of tf.Optimizer.`);
                    }
                    this.optimizer_ = args.optimizer;
                    this.isOptimizerOwned = false;
                }
                // TODO(cais): Add lossWeights.
                // TODO(cais): Add sampleWeightMode.
                // Prepare loss functions.
                let lossFunctions = [];
                if (!Array.isArray(args.loss) && typeof args.loss !== 'string' && typeof args.loss !== 'function') {
                    args.loss = args.loss;
                    for (const name in args.loss) {
                        if (this.outputNames.indexOf(name) === -1) {
                            throw new _errors.ValueError(`Unknown entry in loss dictionary: "${name}". ` + `Only expected the following keys: ${this.outputNames}`);
                        }
                    }
                    for (const name of this.outputNames) {
                        if (args.loss[name] == null) {
                            console.warn(`Output "${name}" is missing from loss dictionary. We assume ` + `this was done on purpose, and we will not be expecting data ` + `to be passed to ${name} during training`);
                        }
                        lossFunctions.push(losses.get(args.loss[name]));
                    }
                } else if (Array.isArray(args.loss)) {
                    if (args.loss.length !== this.outputs.length) {
                        throw new _errors.ValueError(`When passing an Array as loss, it should have one entry per ` + `model output. The model has ${this.outputs.length} output(s), ` + `but you passed loss=${args.loss}.`);
                    }
                    const theLosses = args.loss;
                    lossFunctions = theLosses.map(l => losses.get(l));
                } else {
                    const lossFunction = losses.get(args.loss);
                    this.outputs.forEach(_ => {
                        lossFunctions.push(lossFunction);
                    }
                    );
                }
                this.lossFunctions = lossFunctions;
                this.feedOutputNames = [];
                this.feedOutputShapes = [];
                this.feedLossFns = [];
                for (let i = 0; i < this.outputs.length; ++i) {
                    // TODO(cais): Logic for skipping target(s).
                    const shape = this.internalOutputShapes[i];
                    const name = this.outputNames[i];
                    this.feedOutputNames.push(name);
                    this.feedOutputShapes.push(shape);
                    this.feedLossFns.push(this.lossFunctions[i]);
                }
                // TODO(cais): Add logic for output masks.
                // TODO(cais): Add logic for sample weights.
                const skipTargetIndices = [];
                // Prepare metrics.
                this.metrics = args.metrics;
                // TODO(cais): Add weightedMetrics.
                this.metricsNames = ['loss'];
                this.metricsTensors = [];
                // Compute total loss.
                // Porting Note: In PyKeras, metrics_tensors are symbolic tensor objects.
                //   Here, metricsTensors are TypeScript functions. This difference is due
                //   to the difference in symbolic/imperative property of the backends.
                (0,
                    _common.nameScope)('loss', () => {
                        for (let i = 0; i < this.outputs.length; ++i) {
                            if (skipTargetIndices.indexOf(i) !== -1) {
                                continue;
                            }
                            // TODO(cais): Add weightedLoss, sampleWeight and mask.
                            //   The following line should be weightedLoss
                            const weightedLoss = this.lossFunctions[i];
                            if (this.outputs.length > 1) {
                                this.metricsTensors.push([weightedLoss, i]);
                                this.metricsNames.push(this.outputNames[i] + '_loss');
                            }
                        }
                        // Porting Note: Due to the imperative nature of the backend, we calculate
                        //   the regularizer penalties in the totalLossFunction, instead of here.
                    }
                    );

                const nestedMetrics = collectMetrics(args.metrics, this.outputNames);
                // TODO(cais): Add nestedWeightedMetrics.
                /**
                 * Helper function used in loop below.
                 */
                const appendMetric = (outputIndex, metricName, metricTensor) => {
                    if (this.outputNames.length > 1) {
                        metricName = this.outputNames[outputIndex] + '_' + metricName;
                    }
                    this.metricsNames.push(metricName);
                    this.metricsTensors.push([metricTensor, outputIndex]);
                }
                    ;
                (0,
                    _common.nameScope)('metric', () => {
                        for (let i = 0; i < this.outputs.length; ++i) {
                            if (skipTargetIndices.indexOf(i) !== -1) {
                                continue;
                            }
                            const outputMetrics = nestedMetrics[i];
                            // TODO(cais): Add weights and outputWeightedMetrics.
                            // TODO(cais): Add optional arg `weights` to the following function.
                            const handleMetrics = metrics => {
                                const metricNamePrefix = '';
                                let metricName;
                                let accFn;
                                let weightedMetricFn;
                                //  TODO(cais): Use 'weights_' for weighted metrics.
                                for (const metric of metrics) {
                                    if (typeof metric === 'string' && ['accuracy', 'acc', 'crossentropy', 'ce'].indexOf(metric) !== -1) {
                                        const outputShape = this.internalOutputShapes[i];
                                        if (outputShape[outputShape.length - 1] === 1 || this.lossFunctions[i] === losses.binaryCrossentropy) {
                                            // case: binary accuracy/crossentropy.
                                            if (['accuracy', 'acc'].indexOf(metric) !== -1) {
                                                accFn = Metrics.binaryAccuracy;
                                            } else if (['crossentropy', 'ce'].indexOf(metric) !== -1) {
                                                accFn = Metrics.binaryCrossentropy;
                                            }
                                        } else if (this.lossFunctions[i] === losses.sparseCategoricalCrossentropy) {
                                            // case: categorical accuracy / crossentropy with sparse
                                            // targets.
                                            if (['accuracy', 'acc'].indexOf(metric) !== -1) {
                                                accFn = Metrics.sparseCategoricalAccuracy;
                                            } else if (['crossentropy', 'ce'].indexOf(metric) !== -1) {
                                                accFn = Metrics.sparseCategoricalCrossentropy;
                                            }
                                        } else {
                                            // case: categorical accuracy / crossentropy.
                                            if (['accuracy', 'acc'].indexOf(metric) !== -1) {
                                                accFn = Metrics.categoricalAccuracy;
                                            } else if (['crossentropy', 'ce'].indexOf(metric) !== -1) {
                                                accFn = Metrics.categoricalCrossentropy;
                                            }
                                        }
                                        let suffix;
                                        if (['accuracy', 'acc'].indexOf(metric) !== -1) {
                                            suffix = 'acc';
                                        } else if (['crossentropy', 'ce'].indexOf(metric) !== -1) {
                                            suffix = 'ce';
                                        }
                                        // TODO(cais): Add weighting actually.
                                        weightedMetricFn = accFn;
                                        metricName = metricNamePrefix + suffix;
                                    } else {
                                        const metricFn = Metrics.get(metric);
                                        // TODO(cais): Add weighting actually.
                                        weightedMetricFn = metricFn;
                                        metricName = metricNamePrefix + Metrics.getLossOrMetricName(metric);
                                    }
                                    // TODO(cais): Add weighting and masking to metricResult.
                                    let metricResult;
                                    (0,
                                        _common.nameScope)(metricName, () => {
                                            metricResult = weightedMetricFn;
                                        }
                                        );
                                    appendMetric(i, metricName, metricResult);
                                }
                            }
                                ;
                            handleMetrics(outputMetrics);
                            // TODO(cais): Call handleMetrics with weights.
                        }
                    }
                    );
                // Porting Notes: Given the imperative backend of tfjs-core,
                //   there is no need for constructing the symbolic graph and placeholders.
                this.collectedTrainableWeights = this.trainableWeights;
            }
            /**
             * Check trainable weights count consistency.
             *
             * This will raise a warning if `this.trainableWeights` and
             * `this.collectedTrainableWeights` are inconsistent (i.e., have different
             * numbers of parameters).
             * Inconsistency will typically arise when one modifies `model.trainable`
             * without calling `model.compile()` again.
             */
            checkTrainableWeightsConsistency() {
                if (this.collectedTrainableWeights == null) {
                    return;
                }
                if (this.trainableWeights.length !== this.collectedTrainableWeights.length) {
                    console.warn('Discrepancy between trainableweights and collected trainable ' + 'weights. Did you set `model.trainable` without calling ' + '`model.compile()` afterwards?');
                }
            }
            /**
             * Returns the loss value & metrics values for the model in test mode.
             *
             * Loss and metrics are specified during `compile()`, which needs to happen
             * before calls to `evaluate()`.
             *
             * Computation is done in batches.
             *
             * ```js
             * const model = tf.sequential({
             *   layers: [tf.layers.dense({units: 1, inputShape: [10]})]
             * });
             * model.compile({optimizer: 'sgd', loss: 'meanSquaredError'});
             * const result = model.evaluate(
             *     tf.ones([8, 10]), tf.ones([8, 1]), {batchSize: 4});
             * result.print();
             * ```
             *
             * @param x `tf.Tensor` of test data, or an `Array` of `tf.Tensor`s if the
             * model has multiple inputs.
             * @param y `tf.Tensor` of target data, or an `Array` of `tf.Tensor`s if the
             * model has multiple outputs.
             * @param args A `ModelEvaluateArgs`, containing optional fields.
             *
             * @return `Scalar` test loss (if the model has a single output and no
             *   metrics) or `Array` of `Scalar`s (if the model has multiple outputs
             *   and/or metrics). The attribute `model.metricsNames`
             *   will give you the display labels for the scalar outputs.
             *
             * @doc {heading: 'Models', subheading: 'Classes'}
             */
            evaluate(x, y, args = {}) {
                const batchSize = args.batchSize == null ? 32 : args.batchSize;
                (0,
                    _training_tensors.checkBatchSize)(batchSize);
                // TODO(cais): Standardize `config.sampleWeights` as well.
                // Validate user data.
                const checkBatchAxis = true;
                const standardizedOuts = this.standardizeUserDataXY(x, y, checkBatchAxis, batchSize);
                try {
                    // TODO(cais): If uses `useLearningPhase`, set the corresponding element
                    // of the input to 0.
                    const ins = standardizedOuts[0].concat(standardizedOuts[1]);
                    this.makeTestFunction();
                    const f = this.testFunction;
                    const testOuts = this.testLoop(f, ins, batchSize, args.verbose, args.steps);
                    return (0,
                        _generic_utils.singletonOrArray)(testOuts);
                } finally {
                    (0,
                        _training_tensors.disposeNewTensors)(standardizedOuts[0], x);
                    (0,
                        _training_tensors.disposeNewTensors)(standardizedOuts[1], y);
                }
            }
            // TODO(cais): Add code snippet below once real dataset objects are
            //   available.
            /**
             * Evaluate model using a dataset object.
             *
             * Note: Unlike `evaluate()`, this method is asynchronous (`async`).
             *
             * @param dataset A dataset object. Its `iterator()` method is expected
             *   to generate a dataset iterator object, the `next()` method of which
             *   is expected to produce data batches for evaluation. The return value
             *   of the `next()` call ought to contain a boolean `done` field and a
             *   `value` field. The `value` field is expected to be an array of two
             *   `tf.Tensor`s or an array of two nested `tf.Tensor` structures. The former
             *   case is for models with exactly one input and one output (e.g.
             *   a sequential model). The latter case is for models with multiple
             *   inputs and/or multiple outputs. Of the two items in the array, the
             *   first is the input feature(s) and the second is the output target(s).
             * @param args A configuration object for the dataset-based evaluation.
             * @returns Loss and metric values as an Array of `Scalar` objects.
             *
             * @doc {heading: 'Models', subheading: 'Classes'}
             */
            async evaluateDataset(dataset, args) {
                this.makeTestFunction();
                return (0,
                    _training_dataset.evaluateDataset)(this, dataset, args);
            }
            /**
             * Get number of samples provided for training, evaluation or prediction.
             *
             * @param ins Input `tf.Tensor`.
             * @param batchSize Integer batch size, optional.
             * @param steps Total number of steps (batches of samples) before
             * declaring loop finished. Optional.
             * @param stepsName The public API's parameter name for `steps`.
             * @returns Number of samples provided.
             */
            checkNumSamples(ins, batchSize, steps, stepsName = 'steps') {
                let numSamples;
                if (steps != null) {
                    numSamples = null;
                    if (batchSize != null) {
                        throw new _errors.ValueError(`If ${stepsName} is set, batchSize must be null or undefined.` + `Got batchSize = ${batchSize}`);
                    }
                } else if (ins != null) {
                    if (Array.isArray(ins)) {
                        numSamples = ins[0].shape[0];
                    } else {
                        numSamples = ins.shape[0];
                    }
                } else {
                    throw new _errors.ValueError(`Either the input data should have a defined shape, or ` + `${stepsName} shoud be specified.`);
                }
                return numSamples;
            }
            /**
             * Execute internal tensors of the model with input data feed.
             * @param inputs Input data feed. Must match the inputs of the model.
             * @param outputs Names of the output tensors to be fetched. Must match
             *   names of the SymbolicTensors that belong to the graph.
             * @returns Fetched values for `outputs`.
             */
            execute(inputs, outputs) {
                if (Array.isArray(outputs) && outputs.length === 0) {
                    throw new _errors.ValueError('`outputs` is an empty Array, which is not allowed.');
                }
                const outputsIsArray = Array.isArray(outputs);
                const outputNames = outputsIsArray ? outputs : [outputs];
                const outputSymbolicTensors = this.retrieveSymbolicTensors(outputNames);
                // Format the input into a FeedDict.
                const feedDict = new _executor.FeedDict();
                if (inputs instanceof tfc.Tensor) {
                    inputs = [inputs];
                }
                if (Array.isArray(inputs)) {
                    if (inputs.length !== this.inputs.length) {
                        throw new _errors.ValueError(`The number of inputs provided (${inputs.length}) ` + `does not match the number of inputs of this model ` + `(${this.inputs.length}).`);
                    }
                    for (let i = 0; i < this.inputs.length; ++i) {
                        feedDict.add(this.inputs[i], inputs[i]);
                    }
                } else {
                    for (const input of this.inputs) {
                        const tensorValue = inputs[input.name];
                        if (tensorValue == null) {
                            throw new _errors.ValueError(`No value is provided for the model's input ${input.name}`);
                        }
                        feedDict.add(input, tensorValue);
                    }
                }
                // Run execution.
                const executeOutputs = (0,
                    _executor.execute)(outputSymbolicTensors, feedDict);
                return outputsIsArray ? executeOutputs : executeOutputs[0];
            }
            /**
             * Retrieve the model's internal symbolic tensors from symbolic-tensor names.
             */
            retrieveSymbolicTensors(symbolicTensorNames) {
                const outputSymbolicTensors = (0,
                    _generic_utils.pyListRepeat)(null, symbolicTensorNames.length);
                let outputsRemaining = symbolicTensorNames.length;
                for (const layer of this.layers) {
                    const layerOutputs = Array.isArray(layer.output) ? layer.output : [layer.output];
                    const layerOutputNames = layerOutputs.map(output => output.name);
                    for (let i = 0; i < symbolicTensorNames.length; ++i) {
                        const index = layerOutputNames.indexOf(symbolicTensorNames[i]);
                        if (index !== -1) {
                            outputSymbolicTensors[i] = layerOutputs[index];
                            outputsRemaining--;
                        }
                        if (outputsRemaining === 0) {
                            break;
                        }
                    }
                    if (outputsRemaining === 0) {
                        break;
                    }
                }
                if (outputsRemaining > 0) {
                    const remainingNames = [];
                    outputSymbolicTensors.forEach((tensor, i) => {
                        if (tensor == null) {
                            remainingNames.push(symbolicTensorNames[i]);
                        }
                    }
                    );
                    throw new _errors.ValueError(`Cannot find SymbolicTensors for output name(s): ` + `${JSON.stringify(remainingNames)}`);
                }
                return outputSymbolicTensors;
            }
            /**
             * Helper method to loop over some data in batches.
             *
             * Porting Note: Not using the functional approach in the Python equivalent
             *   due to the imperative backend.
             * Porting Note: Does not support step mode currently.
             *
             * @param ins: input data
             * @param batchSize: integer batch size.
             * @param verbose: verbosity model
             * @returns: Predictions as `tf.Tensor` (if a single output) or an `Array` of
             *   `tf.Tensor` (if multipe outputs).
             */
            predictLoop(ins, batchSize = 32, verbose = false) {
                return tfc.tidy(() => {
                    const numSamples = this.checkNumSamples(ins);
                    if (verbose) {
                        throw new _errors.NotImplementedError('Verbose predictLoop() is not implemented yet.');
                    }
                    // Sample-based predictions.
                    // Porting Note: Tensor currently does not support sliced assignments as
                    //   in numpy, e.g., x[1:3] = y. Therefore we use concatenation while
                    //   iterating over the batches.
                    const batches = (0,
                        _training_tensors.makeBatches)(numSamples, batchSize);
                    const outsBatches = this.outputs.map(output => []);
                    // TODO(cais): Can the scope() be pushed down inside the for loop?
                    for (let batchIndex = 0; batchIndex < batches.length; ++batchIndex) {
                        const batchOuts = tfc.tidy(() => {
                            const batchStart = batches[batchIndex][0];
                            const batchEnd = batches[batchIndex][1];
                            // TODO(cais): Take care of the case of the last element is a flag for
                            //   training/test.
                            const insBatch = (0,
                                _training_tensors.sliceArrays)(ins, batchStart, batchEnd);
                            // Construct the feeds for execute();
                            const feeds = [];
                            if (Array.isArray(insBatch)) {
                                for (let i = 0; i < insBatch.length; ++i) {
                                    feeds.push({
                                        key: this.inputs[i],
                                        value: insBatch[i]
                                    });
                                }
                            } else {
                                feeds.push({
                                    key: this.inputs[0],
                                    value: insBatch
                                });
                            }
                            const feedDict = new _executor.FeedDict(feeds);
                            return (0,
                                _executor.execute)(this.outputs, feedDict);
                        }
                        );
                        batchOuts.forEach((batchOut, i) => outsBatches[i].push(batchOut));
                    }
                    return (0,
                        _generic_utils.singletonOrArray)(outsBatches.map(batches => tfc.concat(batches, 0)));
                }
                );
            }
            /**
             * Generates output predictions for the input samples.
             *
             * Computation is done in batches.
             *
             * Note: the "step" mode of predict() is currently not supported.
             *   This is because the TensorFlow.js core backend is imperative only.
             *
             * ```js
             * const model = tf.sequential({
             *   layers: [tf.layers.dense({units: 1, inputShape: [10]})]
             * });
             * model.predict(tf.ones([8, 10]), {batchSize: 4}).print();
             * ```
             *
             * @param x The input data, as a Tensor, or an `Array` of `tf.Tensor`s if
             *   the model has multiple inputs.
             * @param args A `ModelPredictArgs` object containing optional fields.
             *
             * @return Prediction results as a `tf.Tensor`(s).
             *
             * @exception ValueError In case of mismatch between the provided input data
             *   and the model's expectations, or in case a stateful model receives a
             *   number of samples that is not a multiple of the batch size.
             *
             * @doc {heading: 'Models', subheading: 'Classes'}
             */
            predict(x, args = {}) {
                const xsRank2OrHigher = (0,
                    _training_tensors.ensureTensorsRank2OrHigher)(x);
                checkInputData(xsRank2OrHigher, this.inputNames, this.feedInputShapes, false);
                try {
                    // TODO(cais): Take care of stateful models.
                    //   if (this.stateful) ...
                    // TODO(cais): Take care of the learning_phase boolean flag.
                    //   if (this.useLearningPhase) ...
                    const batchSize = args.batchSize == null ? 32 : args.batchSize;
                    (0,
                        _training_tensors.checkBatchSize)(batchSize);
                    return this.predictLoop(xsRank2OrHigher, batchSize);
                } finally {
                    (0,
                        _training_tensors.disposeNewTensors)(xsRank2OrHigher, x);
                }
            }
            /**
             * Returns predictions for a single batch of samples.
             *
             * ```js
             * const model = tf.sequential({
             *   layers: [tf.layers.dense({units: 1, inputShape: [10]})]
             * });
             * model.predictOnBatch(tf.ones([8, 10])).print();
             * ```
             * @param x: Input samples, as a Tensor (for models with exactly one
             *   input) or an array of Tensors (for models with more than one input).
             * @return Tensor(s) of predictions
             *
             * @doc {heading: 'Models', subheading: 'Classes'}
             */
            predictOnBatch(x) {
                checkInputData(x, this.inputNames, this.feedInputShapes, true);
                // TODO(cais): Take care of the learning_phase boolean flag.
                //   if (this.useLearningPhase) ...
                const batchSize = (Array.isArray(x) ? x[0] : x).shape[0];
                return this.predictLoop(x, batchSize);
            }
            standardizeUserDataXY(x, y, checkBatchAxis = true, batchSize) {
                // TODO(cais): Add sampleWeight, classWeight
                if (this.optimizer_ == null) {
                    throw new _errors.RuntimeError('You must compile a model before training/testing. Use ' + 'LayersModel.compile(modelCompileArgs).');
                }
                const outputShapes = [];
                for (let i = 0; i < this.feedOutputShapes.length; ++i) {
                    const outputShape = this.feedOutputShapes[i];
                    const lossFn = this.feedLossFns[i];
                    if (lossFn === losses.sparseCategoricalCrossentropy) {
                        outputShapes.push(outputShape.slice(0, outputShape.length - 1).concat([1]));
                    } else {
                        // Porting Note: Because of strong typing `lossFn` must be a function.
                        outputShapes.push(outputShape);
                    }
                }
                x = standardizeInputData(x, this.feedInputNames, this.feedInputShapes, false, 'input');
                y = standardizeInputData(y, this.feedOutputNames, outputShapes, false, 'target');
                // TODO(cais): Standardize sampleWeights & classWeights.
                checkArrayLengths(x, y, null);
                // TODO(cais): Check sampleWeights as well.
                checkLossAndTargetCompatibility(y, this.feedLossFns, this.feedOutputShapes);
                if (this.stateful && batchSize != null && batchSize > 0) {
                    if (x[0].shape[0] % batchSize !== 0) {
                        throw new _errors.ValueError(`In a stateful network, you should only pass inputs with a ` + `number of samples that is divisible by the batch size ` + `${batchSize}. Found: ${x[0].shape[0]} sample(s).`);
                    }
                }
                return [x, y];
            }
            async standardizeUserData(x, y, sampleWeight, classWeight, checkBatchAxis = true, batchSize) {
                const [standardXs, standardYs] = this.standardizeUserDataXY(x, y, checkBatchAxis, batchSize);
                // TODO(cais): Handle sampleWeights.
                if (sampleWeight != null) {
                    throw new Error('sample weight is not supported yet.');
                }
                let standardSampleWeights = null;
                if (classWeight != null) {
                    const classWeights = (0,
                        _training_utils.standardizeClassWeights)(classWeight, this.outputNames);
                    standardSampleWeights = [];
                    for (let i = 0; i < classWeights.length; ++i) {
                        standardSampleWeights.push(await (0,
                            _training_utils.standardizeWeights)(standardYs[i], null, classWeights[i]));
                    }
                }
                // TODO(cais): Deal with the case of model.stateful == true.
                return [standardXs, standardYs, standardSampleWeights];
            }
            /**
             * Loop over some test data in batches.
             * @param f A Function returning a list of tensors.
             * @param ins Array of tensors to be fed to `f`.
             * @param batchSize Integer batch size or `null` / `undefined`.
             * @param verbose verbosity mode.
             * @param steps Total number of steps (batches of samples) before
             * declaring test finished. Ignored with the default value of `null` /
             * `undefined`.
             * @returns Array of Scalars.
             */
            testLoop(f, ins, batchSize, verbose = 0, steps) {
                return tfc.tidy(() => {
                    const numSamples = this.checkNumSamples(ins, batchSize, steps, 'steps');
                    const outs = [];
                    if (verbose > 0) {
                        throw new _errors.NotImplementedError('Verbose mode is not implemented yet.');
                    }
                    // TODO(cais): Use `indicesForConversionToDense' to prevent slow down.
                    if (steps != null) {
                        throw new _errors.NotImplementedError('steps mode in testLoop() is not implemented yet');
                    } else {
                        const batches = (0,
                            _training_tensors.makeBatches)(numSamples, batchSize);
                        const indexArray = (0,
                            tfc.tensor1d)((0,
                                _math_utils.range)(0, numSamples));
                        for (let batchIndex = 0; batchIndex < batches.length; ++batchIndex) {
                            const batchStart = batches[batchIndex][0];
                            const batchEnd = batches[batchIndex][1];
                            const batchIds = K.sliceAlongFirstAxis(indexArray, batchStart, batchEnd - batchStart);
                            // TODO(cais): In ins, train flag can be a number, instead of an
                            //   Tensor? Do we need to handle this in tfjs-layers?
                            const insBatch = (0,
                                _training_tensors.sliceArraysByIndices)(ins, batchIds);
                            const batchOuts = f(insBatch);
                            if (batchIndex === 0) {
                                for (let i = 0; i < batchOuts.length; ++i) {
                                    outs.push((0,
                                        tfc.scalar)(0));
                                }
                            }
                            for (let i = 0; i < batchOuts.length; ++i) {
                                const batchOut = batchOuts[i];
                                outs[i] = tfc.add(outs[i], tfc.mul(batchEnd - batchStart, batchOut));
                            }
                        }
                        for (let i = 0; i < outs.length; ++i) {
                            outs[i] = tfc.div(outs[i], numSamples);
                        }
                    }
                    return outs;
                }
                );
            }
            getDedupedMetricsNames() {
                const outLabels = this.metricsNames;
                // Rename duplicated metrics names (can happen with an output layer
                // shared among multiple dataflows).
                const dedupedOutLabels = [];
                for (let i = 0; i < outLabels.length; ++i) {
                    const label = outLabels[i];
                    let newLabel = label;
                    if ((0,
                        _generic_utils.count)(outLabels, label) > 1) {
                        const dupIndex = (0,
                            _generic_utils.count)(outLabels.slice(0, i), label);
                        newLabel += `_${dupIndex}`;
                    }
                    dedupedOutLabels.push(newLabel);
                }
                return dedupedOutLabels;
            }
            /**
             * Creates a function that performs the following actions:
             *
             * 1. computes the losses
             * 2. sums them to get the total loss
             * 3. call the optimizer computes the gradients of the LayersModel's
             *    trainable weights w.r.t. the total loss and update the variables
             * 4. calculates the metrics
             * 5. returns the values of the losses and metrics.
             */
            makeTrainFunction() {
                return data => {
                    const lossValues = [];
                    const inputs = data.slice(0, this.inputs.length);
                    const targets = data.slice(this.inputs.length, this.inputs.length + this.outputs.length);
                    const sampleWeights = data.slice(this.inputs.length + this.outputs.length, this.inputs.length + this.outputs.length * 2);
                    const metricsValues = [];
                    // Create a function that computes the total loss based on the
                    // inputs. This function is used for obtaining gradients through
                    // backprop.
                    const totalLossFunction = () => {
                        const feeds = [];
                        for (let i = 0; i < this.inputs.length; ++i) {
                            feeds.push({
                                key: this.inputs[i],
                                value: inputs[i]
                            });
                        }
                        const feedDict = new _executor.FeedDict(feeds);
                        const outputs = (0,
                            _executor.execute)(this.outputs, feedDict, {
                                'training': true
                            });
                        // TODO(cais): Take care of the case of multiple outputs from a
                        //   single layer?
                        let totalLoss;
                        for (let i = 0; i < this.lossFunctions.length; ++i) {
                            const lossFunction = this.lossFunctions[i];
                            let loss = lossFunction(targets[i], outputs[i]);
                            if (sampleWeights[i] != null) {
                                loss = (0,
                                    _training_utils.computeWeightedLoss)(loss, sampleWeights[i]);
                            }
                            // TODO(cais): push Scalar instead.
                            const meanLoss = tfc.mean(loss);
                            // TODO(cais): Use a scope() instead, to avoid ownership.
                            lossValues.push(meanLoss);
                            if (i === 0) {
                                totalLoss = loss;
                            } else {
                                totalLoss = tfc.add(totalLoss, loss);
                            }
                        }
                        // Compute the metrics.
                        // TODO(cais): These should probably be calculated outside
                        //   totalLossFunction to benefit speed?
                        for (let i = 0; i < this.metricsTensors.length; ++i) {
                            let weightedMetric;
                            if (this.outputs.length > 1 && i < this.outputs.length) {
                                weightedMetric = lossValues[i];
                            } else {
                                const metric = this.metricsTensors[i][0];
                                const outputIndex = this.metricsTensors[i][1];
                                weightedMetric = tfc.mean(metric(targets[outputIndex], outputs[outputIndex]));
                            }
                            tfc.keep(weightedMetric);
                            // TODO(cais): Use a scope() instead, to avoid ownership.
                            metricsValues.push(weightedMetric);
                        }
                        totalLoss = tfc.mean(totalLoss);
                        // Add regularizer penalties.
                        this.calculateLosses().forEach(regularizerLoss => {
                            totalLoss = tfc.add(totalLoss, regularizerLoss);
                        }
                        );
                        return totalLoss;
                    }
                        ;
                    const variables = this.collectedTrainableWeights.map(param => param.read());
                    const returnCost = true;
                    const totalLossValue = this.optimizer_.minimize(totalLossFunction, returnCost, variables);
                    return [totalLossValue].concat(metricsValues);
                }
                    ;
            }
            /**
             * Create a function which, when invoked with an array of `tf.Tensor`s as a
             * batch of inputs, returns the prespecified loss and metrics of the model
             * under the batch of input data.
             */
            makeTestFunction() {
                this.testFunction = data => {
                    return tfc.tidy(() => {
                        const valOutputs = [];
                        let totalLoss;
                        const inputs = data.slice(0, this.inputs.length);
                        const targets = data.slice(this.inputs.length, this.inputs.length + this.outputs.length);
                        const feeds = [];
                        for (let i = 0; i < this.inputs.length; ++i) {
                            feeds.push({
                                key: this.inputs[i],
                                value: inputs[i]
                            });
                        }
                        const feedDict = new _executor.FeedDict(feeds);
                        const outputs = (0,
                            _executor.execute)(this.outputs, feedDict);
                        // Compute total loss.
                        for (let i = 0; i < this.lossFunctions.length; ++i) {
                            const lossFunction = this.lossFunctions[i];
                            // TODO(cais): Add sample weighting and replace the simple
                            // averaging.
                            const loss = tfc.mean(lossFunction(targets[i], outputs[i]));
                            if (i === 0) {
                                totalLoss = loss;
                            } else {
                                totalLoss = tfc.add(totalLoss, loss);
                            }
                            valOutputs.push(totalLoss);
                        }
                        // Compute the metrics.
                        for (let i = 0; i < this.metricsTensors.length; ++i) {
                            const metric = this.metricsTensors[i][0];
                            const outputIndex = this.metricsTensors[i][1];
                            // TODO(cais): Replace K.mean() with a proper weighting function.
                            const meanMetric = tfc.mean(metric(targets[outputIndex], outputs[outputIndex]));
                            valOutputs.push(meanMetric);
                        }
                        return valOutputs;
                    }
                    );
                }
                    ;
            }
            /**
             * Trains the model for a fixed number of epochs (iterations on a
             * dataset).
             *
             * ```js
             * const model = tf.sequential({
             *     layers: [tf.layers.dense({units: 1, inputShape: [10]})]
             * });
             * model.compile({optimizer: 'sgd', loss: 'meanSquaredError'});
             * for (let i = 1; i < 5 ; ++i) {
             *   const h = await model.fit(tf.ones([8, 10]), tf.ones([8, 1]), {
             *       batchSize: 4,
             *       epochs: 3
             *   });
             *   console.log("Loss after Epoch " + i + " : " + h.history.loss[0]);
             * }
             * ```
             *
             * @param x `tf.Tensor` of training data, or an array of `tf.Tensor`s if the
             * model has multiple inputs. If all inputs in the model are named, you
             * can also pass a dictionary mapping input names to `tf.Tensor`s.
             * @param y `tf.Tensor` of target (label) data, or an array of `tf.Tensor`s if
             * the model has multiple outputs. If all outputs in the model are named,
             * you can also pass a dictionary mapping output names to `tf.Tensor`s.
             * @param args A `ModelFitArgs`, containing optional fields.
             *
             * @return A `History` instance. Its `history` attribute contains all
             *   information collected during training.
             *
             * @exception ValueError In case of mismatch between the provided input
             * data and what the model expects.
             *
             * @doc {heading: 'Models', subheading: 'Classes'}
             */
            async fit(x, y, args = {}) {
                if (this.isTraining) {
                    throw new Error('Cannot start training because another fit() call is ongoing.');
                }
                this.isTraining = true;
                let inputs;
                let targets;
                let originalInputs;
                let originalTargets;
                let inputValX;
                let inputValY;
                let valX;
                let valY;
                let sampleWeights;
                try {
                    const batchSize = args.batchSize == null ? 32 : args.batchSize;
                    (0,
                        _training_tensors.checkBatchSize)(batchSize);
                    // Validate user data.
                    // TODO(cais): Support sampleWeight.
                    const checkBatchAxis = false;
                    const standardizedOuts = await this.standardizeUserData(x, y, args.sampleWeight, args.classWeight, checkBatchAxis, batchSize);
                    inputs = standardizedOuts[0];
                    targets = standardizedOuts[1];
                    sampleWeights = standardizedOuts[2];
                    // Prepare validation data.
                    let doValidation = false;
                    let valIns;
                    if (args.validationData != null && args.validationData.length > 0) {
                        doValidation = true;
                        if (args.validationData.length === 2) {
                            // config.validationData consists of valX and valY.
                            inputValX = args.validationData[0];
                            inputValY = args.validationData[1];
                        } else if (args.validationData.length === 3) {
                            throw new _errors.NotImplementedError('validationData including sample weights is not supported yet.');
                        } else {
                            throw new _errors.ValueError(`When passing validation data, it must contain 2 (valX, valY) ` + `or 3 (valX, valY, valSampleWeight) items; ` + `${args.validationData} is invalid.`);
                        }
                        const checkBatchAxis = true;
                        const valStandardized = await this.standardizeUserData(inputValX, inputValY, null, /** Unused sample weights. */
                            null, /** Unused class weights. */
                            checkBatchAxis, batchSize);
                        valX = valStandardized[0];
                        valY = valStandardized[1];
                        valIns = valX.concat(valY);
                        // TODO(cais): Add useLearningPhase data properly.
                    } else if (args.validationSplit != null && args.validationSplit > 0 && args.validationSplit < 1) {
                        doValidation = true;
                        // Porting Note: In tfjs-layers, inputs[0] is always a Tensor.
                        const splitAt = Math.floor(inputs[0].shape[0] * (1 - args.validationSplit));
                        const originalBatchSize = inputs[0].shape[0];
                        valX = (0,
                            _training_tensors.sliceArrays)(inputs, splitAt, originalBatchSize);
                        originalInputs = inputs;
                        inputs = (0,
                            _training_tensors.sliceArrays)(inputs, 0, splitAt);
                        valY = (0,
                            _training_tensors.sliceArrays)(targets, splitAt, originalBatchSize);
                        originalTargets = targets;
                        targets = (0,
                            _training_tensors.sliceArrays)(targets, 0, splitAt);
                        // TODO(cais): Once sampleWeights becomes available, slice it to get
                        //   valSampleWeights.
                        valIns = valX.concat(valY);
                        // TODO(cais): Add useLearningPhase data properly.
                    } else if (args.validationSteps != null) {
                        doValidation = true;
                        // TODO(cais): Add useLearningPhase.
                    }

                    const ins = inputs.concat(targets).concat(sampleWeights);
                    this.checkTrainableWeightsConsistency();
                    // TODO(cais): Handle use_learning_phase and learning_phase?
                    // Porting Note: Here we see a key deviation of tfjs-layers from
                    // Keras.
                    //  Due to the imperative nature of tfjs-layers' backend (tfjs-core),
                    //  we do not construct symbolic computation graphs to embody the
                    //  training process. Instead, we define a function that performs the
                    //  training action. In PyKeras, the data (inputs and targets) are fed
                    //  through graph placeholders. In tfjs-layers, the data are fed as
                    //  function arguments. Since the function are defined below in the
                    //  scope, we don't have equivalents of PyKeras's
                    //  `_make_train_funciton`.
                    const trainFunction = this.makeTrainFunction();
                    const outLabels = this.getDedupedMetricsNames();
                    let valFunction;
                    let callbackMetrics;
                    if (doValidation) {
                        this.makeTestFunction();
                        valFunction = this.testFunction;
                        callbackMetrics = outLabels.slice().concat(outLabels.map(n => 'val_' + n));
                    } else {
                        valFunction = null;
                        valIns = [];
                        callbackMetrics = outLabels.slice();
                    }
                    const callbacks = (0,
                        _base_callbacks.standardizeCallbacks)(args.callbacks, args.yieldEvery);
                    const out = await this.fitLoop(trainFunction, ins, outLabels, batchSize, args.epochs, args.verbose, callbacks, valFunction, valIns, args.shuffle, callbackMetrics, args.initialEpoch, null, null);
                    return out;
                } finally {
                    this.isTraining = false;
                    // Memory clean up.
                    (0,
                        _training_tensors.disposeNewTensors)(inputs, x);
                    (0,
                        _training_tensors.disposeNewTensors)(targets, y);
                    (0,
                        _training_tensors.disposeNewTensors)(originalInputs, x);
                    (0,
                        _training_tensors.disposeNewTensors)(originalTargets, y);
                    (0,
                        _training_tensors.disposeNewTensors)(valX, inputValX);
                    (0,
                        _training_tensors.disposeNewTensors)(valY, inputValY);
                    if (sampleWeights != null) {
                        tfc.dispose(sampleWeights);
                    }
                }
                // TODO(cais): Add value to outLabels.
            }
            /**
             * Abstract fit function for `f(ins)`.
             * @param f A Function returning a list of tensors. For training, this
             *   function is expected to perform the updates to the variables.
             * @param ins List of tensors to be fed to `f`.
             * @param outLabels List of strings, display names of the outputs of `f`.
             * @param batchSize Integer batch size or `== null` if unknown. Default : 32.
             * @param epochs Number of times to iterate over the data. Default : 1.
             * @param verbose Verbosity mode: 0, 1, or 2. Default: 1.
             * @param callbacks List of callbacks to be called during training.
             * @param valF Function to call for validation.
             * @param valIns List of tensors to be fed to `valF`.
             * @param shuffle Whether to shuffle the data at the beginning of every
             * epoch. Default : true.
             * @param callbackMetrics List of strings, the display names of the metrics
             *   passed to the callbacks. They should be the concatenation of the
             *   display names of the outputs of `f` and the list of display names
             *   of the outputs of `valF`.
             * @param initialEpoch Epoch at which to start training (useful for
             *   resuming a previous training run). Default : 0.
             * @param stepsPerEpoch Total number of steps (batches on samples) before
             *   declaring one epoch finished and starting the next epoch. Ignored with
             *   the default value of `undefined` or `null`.
             * @param validationSteps Number of steps to run validation for (only if
             *   doing validation from data tensors). Not applicable for tfjs-layers.
             * @returns A `History` object.
             */
            async fitLoop(f, ins, outLabels, batchSize, epochs, verbose, callbacks, valF, valIns, shuffle, callbackMetrics, initialEpoch, stepsPerEpoch, validationSteps) {
                if (batchSize == null) {
                    batchSize = 32;
                }
                if (epochs == null) {
                    epochs = 1;
                }
                if (shuffle == null) {
                    shuffle = true;
                }
                if (initialEpoch == null) {
                    initialEpoch = 0;
                }
                // TODO(cais): Change const to let below when implementing validation.
                let doValidation = false;
                if (valF != null && valIns != null) {
                    doValidation = true;
                    // TODO(cais): verbose message.
                }

                if (validationSteps != null) {
                    doValidation = true;
                    if (stepsPerEpoch == null) {
                        throw new _errors.ValueError('Can only use `validationSteps` when doing step-wise training, ' + 'i.e., `stepsPerEpoch` must be set.');
                    }
                }
                const numTrainSamples = this.checkNumSamples(ins, batchSize, stepsPerEpoch, 'steps_per_epoch');
                let indexArray;
                if (numTrainSamples != null) {
                    indexArray = (0,
                        _math_utils.range)(0, numTrainSamples);
                }
                if (verbose == null) {
                    verbose = 1;
                }
                const { callbackList, history } = (0,
                    _base_callbacks.configureCallbacks)(callbacks, verbose, epochs, initialEpoch, numTrainSamples, stepsPerEpoch, batchSize, doValidation, callbackMetrics);
                callbackList.setModel(this);
                this.history = history;
                await callbackList.onTrainBegin();
                this.stopTraining_ = false;
                // TODO(cais): Take care of callbacks.validation_data as in PyKeras.
                // TODO(cais): Pre-convert feeds for performance as in PyKeras.
                for (let epoch = initialEpoch; epoch < epochs; ++epoch) {
                    await callbackList.onEpochBegin(epoch);
                    const epochLogs = {};
                    if (stepsPerEpoch != null) {
                        throw new _errors.NotImplementedError('stepsPerEpoch mode is not implemented yet.');
                    } else {
                        if (shuffle === 'batch') {
                            throw new _errors.NotImplementedError('batch shuffling is not implemneted' + ' yet');
                        } else if (shuffle) {
                            tfc.util.shuffle(indexArray);
                        }
                        // Convert the potentially shuffled indices to Tensor1D, to avoid the
                        // cost of repeated creation of Array1Ds later on.
                        const epochIndexArray1D = (0,
                            tfc.tensor1d)(indexArray);
                        const batches = (0,
                            _training_tensors.makeBatches)(numTrainSamples, batchSize);
                        for (let batchIndex = 0; batchIndex < batches.length; ++batchIndex) {
                            const batchLogs = {};
                            await callbackList.onBatchBegin(batchIndex, batchLogs);
                            tfc.tidy(() => {
                                const batchStart = batches[batchIndex][0];
                                const batchEnd = batches[batchIndex][1];
                                const batchIds = K.sliceAlongFirstAxis(epochIndexArray1D, batchStart, batchEnd - batchStart);
                                batchLogs['batch'] = batchIndex;
                                batchLogs['size'] = batchEnd - batchStart;
                                // TODO(cais): In ins, train flag can be a number, instead of an
                                //   Tensor? Do we need to handle this in tfjs-layers?
                                const insBatch = (0,
                                    _training_tensors.sliceArraysByIndices)(ins, batchIds);
                                const outs = f(insBatch);
                                for (let i = 0; i < outLabels.length; ++i) {
                                    const label = outLabels[i];
                                    const out = outs[i];
                                    batchLogs[label] = out;
                                    tfc.keep(out);
                                    // TODO(cais): Use scope() to avoid ownership.
                                }

                                if (batchIndex === batches.length - 1) {
                                    // Last batch.
                                    if (doValidation) {
                                        const valOuts = this.testLoop(valF, valIns, batchSize);
                                        // Porting Notes: In tfjs-layers, valOuts is always an Array.
                                        for (let i = 0; i < outLabels.length; ++i) {
                                            const label = outLabels[i];
                                            const out = valOuts[i];
                                            tfc.keep(out);
                                            // TODO(cais): Use scope() to avoid ownership.
                                            epochLogs['val_' + label] = out;
                                        }
                                    }
                                }
                            }
                            );
                            await callbackList.onBatchEnd(batchIndex, batchLogs);
                            (0,
                                _logs.disposeTensorsInLogs)(batchLogs);
                            if (this.stopTraining_) {
                                break;
                            }
                            // TODO(cais): return outs as list of Tensor.
                        }

                        epochIndexArray1D.dispose();
                    }
                    // TODO(cais): Run validation at the end of the epoch.
                    await callbackList.onEpochEnd(epoch, epochLogs);
                    if (this.stopTraining_) {
                        break;
                    }
                }
                await callbackList.onTrainEnd();
                await this.history.syncData();
                return this.history;
            }
            // TODO(cais): Add code snippet below when it's possible to instantiate
            //   actual dataset objects.
            /**
             * Trains the model using a dataset object.
             *
             * @param dataset A dataset object. Its `iterator()` method is expected
             *   to generate a dataset iterator object, the `next()` method of which
             *   is expected to produce data batches for training. The return value
             *   of the `next()` call ought to contain a boolean `done` field and a
             *   `value` field. The `value` field is expected to be an array of two
             *   `tf.Tensor`s or an array of two nested `tf.Tensor` structures. The former
             *   case is for models with exactly one input and one output (e.g.
             *   a sequential model). The latter case is for models with multiple
             *   inputs and/or multiple outputs.
             *   Of the two items in the array, the first is the input feature(s) and
             *   the second is the output target(s).
             * @param args A `ModelFitDatasetArgs`, containing optional fields.
             *
             * @return A `History` instance. Its `history` attribute contains all
             *   information collected during training.
             *
             * @doc {heading: 'Models', subheading: 'Classes'}
             */
            async fitDataset(dataset, args) {
                return (0,
                    _training_dataset.fitDataset)(this, dataset, args);
            }
            /**
             * Runs a single gradient update on a single batch of data.
             *
             * This method differs from `fit()` and `fitDataset()` in the following
             * regards:
             *   - It operates on exactly one batch of data.
             *   - It returns only the loss and metric values, instead of
             *     returning the batch-by-batch loss and metric values.
             *   - It doesn't support fine-grained options such as verbosity and
             *     callbacks.
             *
             * @param x Input data. It could be one of the following:
             *   - A `tf.Tensor`, or an Array of `tf.Tensor`s (in case the model has
             *     multiple inputs).
             *   - An Object mapping input names to corresponding `tf.Tensor` (if the
             *     model has named inputs).
             * @param y Target data. It could be either a `tf.Tensor` or multiple
             *   `tf.Tensor`s. It should be consistent with `x`.
             * @returns Training loss or losses (in case the model has
             *   multiple outputs), along with metrics (if any), as numbers.
             *
             * @doc {heading: 'Models', subheading: 'Classes'}
             */
            async trainOnBatch(x, y) {
                // TODO(cais): Support sampleWeight and classWeight.
                // TODO(cais): Support Dataset objects.
                const standardizeOut = await this.standardizeUserData(x, y);
                const inputs = standardizeOut[0];
                const targets = standardizeOut[1];
                const trainFunction = this.makeTrainFunction();
                const losses = trainFunction(inputs.concat(targets));
                const lossValues = [];
                for (const loss of losses) {
                    const v = await loss.data();
                    lossValues.push(v[0]);
                }
                tfc.dispose(losses);
                (0,
                    _training_tensors.disposeNewTensors)(standardizeOut[0], x);
                (0,
                    _training_tensors.disposeNewTensors)(standardizeOut[1], y);
                return (0,
                    _generic_utils.singletonOrArray)(lossValues);
            }
            /**
             * Extract weight values of the model.
             *
             * @param config: An instance of `io.SaveConfig`, which specifies
             * model-saving options such as whether only trainable weights are to be
             * saved.
             * @returns A `NamedTensorMap` mapping original weight names (i.e.,
             *   non-uniqueified weight names) to their values.
             */
            getNamedWeights(config) {
                const namedWeights = [];
                const trainableOnly = config != null && config.trainableOnly;
                const weights = trainableOnly ? this.trainableWeights : this.weights;
                const weightValues = this.getWeights(trainableOnly);
                for (let i = 0; i < weights.length; ++i) {
                    if (trainableOnly && !weights[i].trainable) {
                        // Optionally skip non-trainable weights.
                        continue;
                    }
                    namedWeights.push({
                        name: weights[i].originalName,
                        tensor: weightValues[i]
                    });
                }
                return namedWeights;
            }
            /**
             * Setter used for force stopping of LayersModel.fit() (i.e., training).
             *
             * Example:
             *
             * ```js
             * const input = tf.input({shape: [10]});
             * const output = tf.layers.dense({units: 1}).apply(input);
             * const model = tf.model({inputs: [input], outputs: [output]});
             * model.compile({loss: 'meanSquaredError', optimizer: 'sgd'});
             * const xs = tf.ones([8, 10]);
             * const ys = tf.zeros([8, 1]);
             *
             * const history = await model.fit(xs, ys, {
             *   epochs: 10,
             *   callbacks: {
             *     onEpochEnd: async (epoch, logs) => {
             *       if (epoch === 2) {
             *         model.stopTraining = true;
             *       }
             *     }
             *   }
             * });
             *
             * // There should be only 3 values in the loss array, instead of 10
             * values,
             * // due to the stopping after 3 epochs.
             * console.log(history.history.loss);
             * ```
             */
            set stopTraining(stop) {
                this.stopTraining_ = stop;
            }
            get stopTraining() {
                return this.stopTraining_;
            }
            get optimizer() {
                return this.optimizer_;
            }
            set optimizer(optimizer) {
                if (this.optimizer_ !== optimizer) {
                    this.optimizer_ = optimizer;
                    this.isOptimizerOwned = false;
                }
            }
            dispose() {
                const result = super.dispose();
                if (result.refCountAfterDispose === 0 && this.optimizer != null && this.isOptimizerOwned) {
                    const numTensorsBeforeOptmizerDisposal = tfc.memory().numTensors;
                    this.optimizer_.dispose();
                    result.numDisposedVariables += numTensorsBeforeOptmizerDisposal - tfc.memory().numTensors;
                }
                return result;
            }
            getLossIdentifiers() {
                let lossNames;
                if (typeof this.loss === 'string') {
                    lossNames = (0,
                        _generic_utils.toSnakeCase)(this.loss);
                } else if (Array.isArray(this.loss)) {
                    for (const loss of this.loss) {
                        if (typeof loss !== 'string') {
                            throw new Error('Serialization of non-string loss is not supported.');
                        }
                    }
                    lossNames = this.loss.map(name => (0,
                        _generic_utils.toSnakeCase)(name));
                } else {
                    const outputNames = Object.keys(this.loss);
                    lossNames = {};
                    const losses = this.loss;
                    for (const outputName of outputNames) {
                        if (typeof losses[outputName] === 'string') {
                            lossNames[outputName] = (0,
                                _generic_utils.toSnakeCase)(losses[outputName]);
                        } else {
                            throw new Error('Serialization of non-string loss is not supported.');
                        }
                    }
                }
                return lossNames;
            }
            getMetricIdentifiers() {
                if (typeof this.metrics === 'string' || typeof this.metrics === 'function') {
                    return [(0,
                        _generic_utils.toSnakeCase)(Metrics.getLossOrMetricName(this.metrics))];
                } else if (Array.isArray(this.metrics)) {
                    return this.metrics.map(metric => (0,
                        _generic_utils.toSnakeCase)(Metrics.getLossOrMetricName(metric)));
                } else {
                    const metricsIdentifiers = {};
                    for (const key in this.metrics) {
                        metricsIdentifiers[key] = (0,
                            _generic_utils.toSnakeCase)(Metrics.getLossOrMetricName(this.metrics[key]));
                    }
                    return metricsIdentifiers;
                }
            }
            getTrainingConfig() {
                return {
                    loss: this.getLossIdentifiers(),
                    metrics: this.getMetricIdentifiers(),
                    optimizer_config: {
                        class_name: this.optimizer.getClassName(),
                        config: this.optimizer.getConfig()
                    }
                };
                // TODO(cais): Add weight_metrics when they are supported.
                // TODO(cais): Add sample_weight_mode when it's supported.
                // TODO(cais): Add loss_weights when it's supported.
            }

            loadTrainingConfig(trainingConfig) {
                if (trainingConfig.weighted_metrics != null) {
                    throw new Error('Loading weight_metrics is not supported yet.');
                }
                if (trainingConfig.loss_weights != null) {
                    throw new Error('Loading loss_weights is not supported yet.');
                }
                if (trainingConfig.sample_weight_mode != null) {
                    throw new Error('Loading sample_weight_mode is not supported yet.');
                }
                const tsConfig = (0,
                    _serialization_utils.convertPythonicToTs)(trainingConfig.optimizer_config);
                const optimizer = (0,
                    _serialization.deserialize)(tsConfig);
                let loss;
                if (typeof trainingConfig.loss === 'string') {
                    loss = (0,
                        _generic_utils.toCamelCase)(trainingConfig.loss);
                } else if (Array.isArray(trainingConfig.loss)) {
                    loss = trainingConfig.loss.map(lossEntry => (0,
                        _generic_utils.toCamelCase)(lossEntry));
                } else if (trainingConfig.loss != null) {
                    loss = {};
                    for (const key in trainingConfig.loss) {
                        loss[key] = (0,
                            _generic_utils.toCamelCase)(trainingConfig.loss[key]);
                    }
                }
                let metrics;
                if (Array.isArray(trainingConfig.metrics)) {
                    metrics = trainingConfig.metrics.map(metric => (0,
                        _generic_utils.toCamelCase)(metric));
                } else if (trainingConfig.metrics != null) {
                    metrics = {};
                    for (const key in trainingConfig.metrics) {
                        metrics[key] = (0,
                            _generic_utils.toCamelCase)(trainingConfig.metrics[key]);
                    }
                }
                this.compile({
                    loss,
                    metrics,
                    optimizer
                });
            }
            /**
             * Save the configuration and/or weights of the LayersModel.
             *
             * An `IOHandler` is an object that has a `save` method of the proper
             * signature defined. The `save` method manages the storing or
             * transmission of serialized data ("artifacts") that represent the
             * model's topology and weights onto or via a specific medium, such as
             * file downloads, local storage, IndexedDB in the web browser and HTTP
             * requests to a server. TensorFlow.js provides `IOHandler`
             * implementations for a number of frequently used saving mediums, such as
             * `tf.io.browserDownloads` and `tf.io.browserLocalStorage`. See `tf.io`
             * for more details.
             *
             * This method also allows you to refer to certain types of `IOHandler`s
             * as URL-like string shortcuts, such as 'localstorage://' and
             * 'indexeddb://'.
             *
             * Example 1: Save `model`'s topology and weights to browser [local
             * storage](https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage);
             * then load it back.
             *
             * ```js
             * const model = tf.sequential(
             *     {layers: [tf.layers.dense({units: 1, inputShape: [3]})]});
             * console.log('Prediction from original model:');
             * model.predict(tf.ones([1, 3])).print();
             *
             * const saveResults = await model.save('localstorage://my-model-1');
             *
             * const loadedModel = await tf.loadLayersModel('localstorage://my-model-1');
             * console.log('Prediction from loaded model:');
             * loadedModel.predict(tf.ones([1, 3])).print();
             * ```
             *
             * Example 2. Saving `model`'s topology and weights to browser
             * [IndexedDB](https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API);
             * then load it back.
             *
             * ```js
             * const model = tf.sequential(
             *     {layers: [tf.layers.dense({units: 1, inputShape: [3]})]});
             * console.log('Prediction from original model:');
             * model.predict(tf.ones([1, 3])).print();
             *
             * const saveResults = await model.save('indexeddb://my-model-1');
             *
             * const loadedModel = await tf.loadLayersModel('indexeddb://my-model-1');
             * console.log('Prediction from loaded model:');
             * loadedModel.predict(tf.ones([1, 3])).print();
             * ```
             *
             * Example 3. Saving `model`'s topology and weights as two files
             * (`my-model-1.json` and `my-model-1.weights.bin`) downloaded from
             * browser.
             *
             * ```js
             * const model = tf.sequential(
             *     {layers: [tf.layers.dense({units: 1, inputShape: [3]})]});
             * const saveResults = await model.save('downloads://my-model-1');
             * ```
             *
             * Example 4. Send  `model`'s topology and weights to an HTTP server.
             * See the documentation of `tf.io.http` for more details
             * including specifying request parameters and implementation of the
             * server.
             *
             * ```js
             * const model = tf.sequential(
             *     {layers: [tf.layers.dense({units: 1, inputShape: [3]})]});
             * const saveResults = await model.save('http://my-server/model/upload');
             * ```
             *
             * @param handlerOrURL An instance of `IOHandler` or a URL-like,
             * scheme-based string shortcut for `IOHandler`.
             * @param config Options for saving the model.
             * @returns A `Promise` of `SaveResult`, which summarizes the result of
             * the saving, such as byte sizes of the saved artifacts for the model's
             *   topology and weight values.
             *
             * @doc {heading: 'Models', subheading: 'Classes', ignoreCI: true}
             */
            async save(handlerOrURL, config) {
                if (typeof handlerOrURL === 'string') {
                    const handlers = tfc.io.getSaveHandlers(handlerOrURL);
                    if (handlers.length === 0) {
                        throw new _errors.ValueError(`Cannot find any save handlers for URL '${handlerOrURL}'`);
                    } else if (handlers.length > 1) {
                        throw new _errors.ValueError(`Found more than one (${handlers.length}) save handlers for ` + `URL '${handlerOrURL}'`);
                    }
                    handlerOrURL = handlers[0];
                }
                if (handlerOrURL.save == null) {
                    throw new _errors.ValueError('LayersModel.save() cannot proceed because the IOHandler ' + 'provided does not have the `save` attribute defined.');
                }
                const weightDataAndSpecs = await tfc.io.encodeWeights(this.getNamedWeights(config));
                const returnString = false;
                const unusedArg = null;
                const modelConfig = this.toJSON(unusedArg, returnString);
                const modelArtifacts = {
                    modelTopology: modelConfig,
                    format: LAYERS_MODEL_FORMAT_NAME,
                    generatedBy: `TensorFlow.js tfjs-layers v${_version.version}`,
                    convertedBy: null
                };
                const includeOptimizer = config == null ? false : config.includeOptimizer;
                if (includeOptimizer && this.optimizer != null) {
                    modelArtifacts.trainingConfig = this.getTrainingConfig();
                    const weightType = 'optimizer';
                    const { data: optimizerWeightData, specs: optimizerWeightSpecs } = await tfc.io.encodeWeights(await this.optimizer.getWeights(), weightType);
                    weightDataAndSpecs.specs.push(...optimizerWeightSpecs);
                    weightDataAndSpecs.data = tfc.io.concatenateArrayBuffers([weightDataAndSpecs.data, optimizerWeightData]);
                }
                if (this.userDefinedMetadata != null) {
                    // Check serialized size of user-defined metadata.
                    const checkSize = true;
                    (0,
                        _user_defined_metadata.checkUserDefinedMetadata)(this.userDefinedMetadata, this.name, checkSize);
                    modelArtifacts.userDefinedMetadata = this.userDefinedMetadata;
                }
                modelArtifacts.weightData = weightDataAndSpecs.data;
                modelArtifacts.weightSpecs = weightDataAndSpecs.specs;
                return handlerOrURL.save(modelArtifacts);
            }
            /**
             * Set user-defined metadata.
             *
             * The set metadata will be serialized together with the topology
             * and weights of the model during `save()` calls.
             *
             * @param setUserDefinedMetadata
             */
            setUserDefinedMetadata(userDefinedMetadata) {
                (0,
                    _user_defined_metadata.checkUserDefinedMetadata)(userDefinedMetadata, this.name);
                this.userDefinedMetadata = userDefinedMetadata;
            }
            /**
             * Get user-defined metadata.
             *
             * The metadata is supplied via one of the two routes:
             *   1. By calling `setUserDefinedMetadata()`.
             *   2. Loaded during model loading (if the model is constructed
             *      via `tf.loadLayersModel()`.)
             *
             * If no user-defined metadata is available from either of the
             * two routes, this function will return `undefined`.
             */
            getUserDefinedMetadata() {
                return this.userDefinedMetadata;
            }
        }
        // The class name is 'Model' rather than 'LayersModel' for backwards
        // compatibility since this class name shows up in the serialization format.
        /** @nocollapse */
        exports.LayersModel = LayersModel;
        LayersModel.className = 'Model';
        tfc.serialization.registerClass(LayersModel);
        /**
         * A `tf.Functional` is an alias to `tf.LayersModel`.
         *
         * See also:
         *   `tf.LayersModel`, `tf.Sequential`, `tf.loadLayersModel`.
         */
        /** @doc {heading: 'Models', subheading: 'Classes'} */
        class Functional extends LayersModel {
        }
        exports.Functional = Functional;
        Functional.className = 'Functional';
        tfc.serialization.registerClass(Functional);

    }
        , {
        "../backend/tfjs_backend": 516,
        "../base_callbacks": 517,
        "../common": 519,
        "../errors": 529,
        "../layers/serialization": 559,
        "../logs": 561,
        "../losses": 562,
        "../metrics": 563,
        "../optimizers": 565,
        "../user_defined_metadata": 567,
        "../utils/generic_utils": 570,
        "../utils/layer_utils": 571,
        "../utils/math_utils": 572,
        "../utils/serialization_utils": 573,
        "../version": 577,
        "./container": 521,
        "./executor": 522,
        "./training_dataset": 526,
        "./training_tensors": 527,
        "./training_utils": 528,
        "@tensorflow/tfjs-core": 506
    }],
    526: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.evaluateDataset = evaluateDataset;
        exports.fitDataset = fitDataset;
        var tfc = _interopRequireWildcard(require("@tensorflow/tfjs-core"));
        var _base_callbacks = require("../base_callbacks");
        var _errors = require("../errors");
        var _logs = require("../logs");
        var _generic_utils = require("../utils/generic_utils");
        var _training_utils = require("./training_utils");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2018 Google LLC
         *
         * Use of this source code is governed by an MIT-style
         * license that can be found in the LICENSE file or at
         * https://opensource.org/licenses/MIT.
         * =============================================================================
         */
        /**
         * Interfaces and methods for training models using TensorFlow.js datasets.
         */

        // Default batch size used during tensor-based validation.
        const DEFAULT_VALIDATION_BATCH_SIZE = 32;
        /**
         * Standardize the output of a dataset iterator for use by
         * LayersModel.fitDataset().
         *
         * @param model: A `tf.LayersModel` object.
         * @param iteratorOut The output of a dataset iterator. It is required to be
         *   an object of the form `{xs: TensorOrArrayOrMap, ys:
         * TensorOrArrayOrMap}`, where `TensorOrArrayOrMap` is a single `tf.Tensor`,
         * a `tf.Tensor[]`, or a flat map from string names to `tf.Tensor`s.
         * @returns A flat array of `tf.Tensor` objects: the input `tf.Tensor`s
         *   followed by the target `tf.Tensor`s.  When `tf.Tensor`s are provided
         *   as a map, the order in the resulting array is taken from the `inputNames`
         *   and `outputNames` of the model.
         */
        function standardizeDataIteratorOutput(// Type `model` as `any` here to avoid circular dependency w/
            // training.ts.
            // tslint:disable-next-line:no-any
            model, iteratorOut) {
            let xs;
            let ys;
            const iteratorOutObj = iteratorOut;
            xs = iteratorOutObj['xs'];
            ys = iteratorOutObj['ys'];
            tfc.util.assert(xs != null && ys != null, () => 'A Dataset iterator for fitDataset() is expected to generate ' + 'objects of the form `{xs: xVal, ys: yVal}`, where the two ' + 'values may be `tf.Tensor`, an array of Tensors, or a map of ' + 'string to Tensor.  The provided Dataset instead generates ' + `${iteratorOut}`);
            const flattenedXs = flattenTensorOrArrayOrMap('input', model.inputNames, xs);
            const flattenedYs = flattenTensorOrArrayOrMap('output', model.outputNames, ys);
            const batchSize = flattenedXs[0].shape[0];
            tfc.util.assert(flattenedXs.length === model.inputs.length, () => `LayersModel has ${model.inputs.length} inputs, but the dataset ` + `provides ${flattenedXs.length} inputs.  (Expected input keys: ` + `${JSON.stringify(model.inputNames)})`);
            tfc.util.assert(flattenedYs.length === model.outputs.length, () => `LayersModel has ${model.outputs.length} outputs, but the dataset ` + `provides ${flattenedYs.length} outputs.  (Expected output keys: ` + `${JSON.stringify(model.outputNames)})`);
            for (let xIndex = 0; xIndex < flattenedXs.length; xIndex++) {
                tfc.util.assert(flattenedXs[xIndex].shape[0] === batchSize, () => `Batch size mismatch: input ` + `${model.inputNames[xIndex]} has ${flattenedXs[xIndex].shape[0]}; ` + `expected  ${batchSize} based on input ${model.inputNames[0]}.`);
            }
            for (let yIndex = 0; yIndex < flattenedYs.length; yIndex++) {
                tfc.util.assert(flattenedYs[yIndex].shape[0] === batchSize, () => `Batch size mismatch: output ` + `${model.outputNames[yIndex]} has ${flattenedYs[yIndex].shape[0]}; ` + `expected  ${batchSize} based on input ${model.inputNames[0]}.`);
            }
            return {
                xs: flattenedXs,
                ys: flattenedYs
            };
        }
        function flattenTensorOrArrayOrMap(inputOrOutput, names, values) {
            if (values instanceof tfc.Tensor) {
                return [values];
            } else if (Array.isArray(values)) {
                tfc.util.assert(values.length === names.length, () => `Received an array of ${values.length} Tensors, but expected ${names.length} to match the ${inputOrOutput} keys ${names}.`);
                return values;
            } else {
                const result = [];
                // Check that all the required keys are available.
                for (const name of names) {
                    if (values[name] == null) {
                        throw new _errors.ValueError(`The feature data generated by the dataset lacks the required ` + `${inputOrOutput} key '${name}'.`);
                    }
                    result.push(values[name]);
                }
                return result;
            }
        }
        function standardizeTensorValidationData(data) {
            if (data.length === 3) {
                throw new _errors.NotImplementedError('Validation with sample weights is not implemented yet.');
            }
            return {
                xs: data[0],
                ys: data[1]
            };
        }
        async function fitDataset(// Type `model` as `any` here to avoid circular dependency w/
            // training.ts.
            // tslint:disable-next-line:no-any
            model, dataset, args) {
            const hasBatchesPerEpoch = args.batchesPerEpoch != null;
            tfc.util.assert(model.optimizer != null, () => 'You must compile a model before training/testing. Use ' + 'LayersModel.compile(modelCompileConfig).');
            tfc.util.assert(args != null, () => `For fitDataset(), the 2nd argument (config) is required, ` + `but it is not provided in this call.`);
            tfc.util.assert(args.epochs != null && args.epochs > 0 && Number.isInteger(args.epochs), () => `For fitDataset(), config.epochs is expected to be a positive ` + `integer, but got ${args.epochs}`);
            tfc.util.assert(!hasBatchesPerEpoch || args.batchesPerEpoch > 0 && Number.isInteger(args.batchesPerEpoch), () => `For fitDataset(), config.batchesPerEpoch is expected to be a ` + `positive integer if specified, but got ${args.batchesPerEpoch}`);
            tfc.util.assert(// tslint:disable-next-line:no-any
                args['validationSplit'] == null, () => '`validationSplit` is not supported by `fitDataset()`. ' + 'Use validationData instead.');
            if (model.isTraining) {
                throw new Error('Cannot start training because another fit() call is ongoing.');
            }
            model.isTraining = true;
            try {
                const doValidation = args.validationData != null;
                let valXs;
                let valYs;
                if (doValidation) {
                    if (isDatasetObject(args.validationData)) {
                        tfc.util.assert(args.validationBatches == null || args.validationBatches > 0 && Number.isInteger(args.validationBatches), () => `For fitDataset() with dataset-based validation, ` + `config.validationBatches is expected not to be provided, ` + `or to be a positive integer, ` + `but got ${args.validationBatches}`);
                    } else {
                        const validationData = standardizeTensorValidationData(args.validationData);
                        valXs = validationData.xs;
                        valYs = validationData.ys;
                    }
                }
                const trainFunction = model.makeTrainFunction();
                const outLabels = model.getDedupedMetricsNames();
                let callbackMetrics;
                if (doValidation) {
                    callbackMetrics = outLabels.slice().concat(outLabels.map(n => 'val_' + n));
                } else {
                    callbackMetrics = outLabels.slice();
                }
                const callbacks = (0,
                    _base_callbacks.standardizeCallbacks)(args.callbacks, args.yieldEvery);
                const verbose = args.verbose == null ? 1 : args.verbose;
                const { callbackList, history } = (0,
                    _base_callbacks.configureCallbacks)(callbacks, verbose, args.epochs, null, null, getStepsPerEpoch(dataset, args), null, // Batch size determined by the dataset itself.
                        doValidation, callbackMetrics);
                callbackList.setModel(model);
                model.history = history;
                await callbackList.onTrainBegin();
                model.stopTraining_ = false;
                let epoch = args.initialEpoch == null ? 0 : args.initialEpoch;
                let dataIterator = await dataset.iterator();
                while (epoch < args.epochs) {
                    const epochLogs = {};
                    await callbackList.onEpochBegin(epoch);
                    let stepsDone = 0;
                    let batchIndex = 0;
                    if (!hasBatchesPerEpoch) {
                        dataIterator = await dataset.iterator();
                    }
                    while (hasBatchesPerEpoch ? stepsDone < args.batchesPerEpoch : true) {
                        const iteratorOut = await dataIterator.next();
                        // If `batchesPerEpoch` is specified, the dataset should not be
                        // exhausted until all epoches are done.
                        if (hasBatchesPerEpoch && iteratorOut.done) {
                            console.warn('You provided `batchesPerEpoch` as ' + `${args.batchesPerEpoch}, ` + 'but your dataset iterator ran out of data after ' + `${stepsDone} batches; ` + 'interrupting training. Make sure that your ' + 'dataset can generate at least `batchesPerEpoch * epochs` ' + 'batches (in this case, ' + `${args.batchesPerEpoch * args.epochs} batches). ` + 'You may need to use the repeat() function when building ' + 'your dataset.');
                            break;
                        }
                        if (iteratorOut.value != null) {
                            const { xs, ys } = standardizeDataIteratorOutput(model, iteratorOut.value);
                            const batchLogs = {};
                            batchLogs['batch'] = batchIndex;
                            batchLogs['size'] = xs[0].shape[0];
                            await callbackList.onBatchBegin(batchIndex, batchLogs);
                            const sampleWeights = [];
                            if (args.classWeight != null) {
                                const standardClassWeights = (0,
                                    _training_utils.standardizeClassWeights)(args.classWeight, model.outputNames);
                                for (let i = 0; i < standardClassWeights.length; ++i) {
                                    sampleWeights.push(await (0,
                                        _training_utils.standardizeWeights)(ys[i], null, standardClassWeights[i]));
                                }
                            }
                            // Train on batch.
                            const ins = xs.concat(ys).concat(sampleWeights);
                            const outs = trainFunction(ins);
                            tfc.dispose(ins);
                            for (let i = 0; i < outLabels.length; ++i) {
                                const label = outLabels[i];
                                const out = outs[i];
                                batchLogs[label] = out;
                                tfc.keep(out);
                            }
                            await callbackList.onBatchEnd(batchIndex, batchLogs);
                            (0,
                                _logs.disposeTensorsInLogs)(batchLogs);
                            batchIndex++;
                            stepsDone++;
                        }
                        if (hasBatchesPerEpoch ? stepsDone >= args.batchesPerEpoch : iteratorOut.done) {
                            // Epoch finished. Perform validation.
                            if (doValidation) {
                                let valOuts;
                                if (isDatasetObject(args.validationData)) {
                                    valOuts = (0,
                                        _generic_utils.toList)(await model.evaluateDataset(args.validationData, {
                                            batches: args.validationBatches
                                        }));
                                } else {
                                    valOuts = (0,
                                        _generic_utils.toList)(model.evaluate(valXs, valYs, {
                                            batchSize: args.validationBatchSize == null ? DEFAULT_VALIDATION_BATCH_SIZE : args.validationBatchSize,
                                            verbose: 0
                                        }));
                                }
                                for (let i = 0; i < model.metricsNames.length; ++i) {
                                    epochLogs[`val_${model.metricsNames[i]}`] = valOuts[i];
                                }
                            }
                            // Call `break` to exit one epoch lopp after validation is done. If
                            // config.batchesPerEpoch is specified, an epoch while loop will
                            // stop when `stepsDone >= config.batchesPerEpoch`. When
                            // config.batchesPerEpoch is not provided, the following `break` is
                            // required to exit the while lopp after dataset is exhausted.
                            break;
                        }
                        if (model.stopTraining_) {
                            break;
                        }
                    }
                    await callbackList.onEpochEnd(epoch, epochLogs);
                    epoch++;
                    if (model.stopTraining_) {
                        break;
                    }
                }
                await callbackList.onTrainEnd();
                await model.history.syncData();
                return model.history;
            } finally {
                model.isTraining = false;
            }
        }
        /** Helper function that determines number of steps (batches) per epoch. */
        function getStepsPerEpoch(dataset, args) {
            // Attempt to determine # of batches in an epoch.
            let stepsPerEpoch = null;
            if (args.batchesPerEpoch != null) {
                stepsPerEpoch = args.batchesPerEpoch;
            } else if (Number.isFinite(dataset.size)) {
                stepsPerEpoch = dataset.size;
            }
            return stepsPerEpoch;
        }
        // Check if provided object is a Dataset object by checking its .iterator
        // element.
        function isDatasetObject(dataset) {
            return typeof dataset.iterator === 'function';
        }
        // Check if provided object is a LazyIterator object by checking it's .next
        // element.
        function isLazyIteratorObject(iterator) {
            return typeof iterator.next === 'function';
        }
        async function evaluateDataset(// Type `model` as `any` here to avoid circular dependency w/
            // training.ts.
            // tslint:disable-next-line:no-any
            model, dataset, args) {
            args = args || {};
            const hasBatches = args.batches != null;
            const f = model.testFunction;
            let outs = [];
            if (args.verbose > 0) {
                throw new _errors.NotImplementedError('Verbose mode is not implemented yet.');
            }
            tfc.util.assert(!hasBatches || args.batches > 0 && Number.isInteger(args.batches), () => 'Test loop expects `batches` to be a positive integer, but ' + `received ${JSON.stringify(args.batches)}`);
            const dataIterator = isLazyIteratorObject(dataset) ? dataset : await dataset.iterator();
            // Keeps track of number of examples used in this evaluation.
            let numExamples = 0;
            let batch = 0;
            while (hasBatches ? batch < args.batches : true) {
                const iteratorOut = await dataIterator.next();
                outs = tfc.tidy(() => {
                    if (iteratorOut.value) {
                        // TODO(cais): Once real dataset is available, use
                        //   `map(x => standardizeDataIteratorOutput(model, x).map(f)`.
                        const { xs, ys } = standardizeDataIteratorOutput(model, iteratorOut.value);
                        const xsAndYs = xs.concat(ys);
                        const batchOuts = tfc.tidy(() => f(xsAndYs));
                        tfc.dispose(xsAndYs);
                        if (batch === 0) {
                            for (let i = 0; i < batchOuts.length; ++i) {
                                outs.push((0,
                                    tfc.scalar)(0));
                            }
                        }
                        const batchSize = xsAndYs[0].shape[0];
                        for (let i = 0; i < batchOuts.length; ++i) {
                            const batchOut = batchOuts[i];
                            const oldScalar = outs[i];
                            outs[i] = tfc.tidy(() => tfc.add(outs[i], tfc.mul(batchSize, batchOut)));
                            if (batch > 0) {
                                tfc.dispose(oldScalar);
                            }
                        }
                        tfc.dispose(batchOuts);
                        numExamples += batchSize;
                        ++batch;
                    }
                    return outs;
                }
                );
                if (iteratorOut.done) {
                    if (hasBatches) {
                        console.warn('Your dataset iterator ran out of data during evaluateDataset(). ' + 'Interrupting evalution. Make sure that your ' + 'dataset can generate at least `batches` ' + `batches (in this case, ${args.batches} batches). ` + 'You may need to use the repeat() function when building ' + 'your dataset.');
                    }
                    break;
                }
            }
            for (let i = 0; i < outs.length; ++i) {
                const oldScalar = outs[i];
                outs[i] = tfc.div(outs[i], numExamples);
                tfc.dispose(oldScalar);
            }
            return (0,
                _generic_utils.singletonOrArray)(outs);
        }

    }
        , {
        "../base_callbacks": 517,
        "../errors": 529,
        "../logs": 561,
        "../utils/generic_utils": 570,
        "./training_utils": 528,
        "@tensorflow/tfjs-core": 506
    }],
    527: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.checkBatchSize = checkBatchSize;
        exports.disposeNewTensors = disposeNewTensors;
        exports.ensureTensorsRank2OrHigher = ensureTensorsRank2OrHigher;
        exports.makeBatches = makeBatches;
        exports.sliceArrays = sliceArrays;
        exports.sliceArraysByIndices = sliceArraysByIndices;
        var tfc = _interopRequireWildcard(require("@tensorflow/tfjs-core"));
        var _tfjs_backend = require("../backend/tfjs_backend");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2018 Google LLC
         *
         * Use of this source code is governed by an MIT-style
         * license that can be found in the LICENSE file or at
         * https://opensource.org/licenses/MIT.
         * =============================================================================
         */
        /**
         * Interfaces and methods for training models using tf.Tensor objects.
         */

        function checkBatchSize(batchSize) {
            tfc.util.assert(batchSize > 0 && Number.isInteger(batchSize), () => `batchSize is required to be a positive integer, but got ${batchSize}`);
        }
        /**
         * Slice a Tensor or an Array of Tensors, by start and stop indices.
         *
         * Porting Note: The `_slice_arrays` function in PyKeras is covered by this
         *   function and `sliceArraysByIndices()` together.
         *
         * @param arrays: the input.
         * @param start: the starting index (inclusive).
         * @param stop: the stopping index (exclusive).
         * @returns The result of the slicing. If `arrays` is an `Array` of
         *   `tf.Tensor`s, the slicing will be applied to all elements of the `Array`
         *   in the same way.
         */
        function sliceArrays(arrays, start, stop) {
            if (arrays == null) {
                return [null];
            } else if (Array.isArray(arrays)) {
                return arrays.map(array => (0,
                    _tfjs_backend.sliceAlongFirstAxis)(array, start, stop - start));
            } else {
                // Tensor.
                return (0,
                    _tfjs_backend.sliceAlongFirstAxis)(arrays, start, stop - start);
            }
        }
        /**
         * Slice a Tensor or an Array of Tensors, by random-order indices.
         *
         * Porting Note: The `_slice_arrays` function in PyKeras is covered by this
         *   function and `sliceArrays()` together.
         *
         * @param arrays The input `tf.Tensor` or `Array` of `tf.Tensor`s to slice.
         *   If an `Array` of `tf.Tensor`s, all `tf.Tensor`s will be sliced in the
         *   same fashion.
         * @param indices The indices to use for slicing along the first (batch)
         *   dimension.
         * @returns Result(s) of the slicing.
         */
        function sliceArraysByIndices(arrays, indices) {
            return tfc.tidy(() => {
                if (arrays == null) {
                    return null;
                } else if (Array.isArray(arrays)) {
                    return arrays.map(array => sliceArraysByIndices(array, indices));
                } else {
                    // TODO(cais): indices should be a pre-constructed Tensor1D to avoid
                    //   tensor1d() calls.
                    return (0,
                        _tfjs_backend.gather)(arrays, indices.dtype === 'int32' ? indices : tfc.cast(indices, 'int32'));
                }
            }
            );
        }
        /**
         * Returns a list of batch indices (tuples of indices).
         * @param size: Integer, total size of the data to slice into batches.
         * @param batchSize: Integer, batch size.
         * @returns An Array of [batchStart, batchEnd] tuples. batchStart is
         *   inclusive; batchEnd is exclusive. I.e., each batch consists of indices x
         *   that satisfy batchStart <= x < batchEnd.
         */
        function makeBatches(size, batchSize) {
            const output = [];
            let batchStart = 0;
            let batchEnd = null;
            while (batchStart < size) {
                batchEnd = batchStart + batchSize;
                if (batchEnd >= size) {
                    batchEnd = size;
                }
                output.push([batchStart, batchEnd]);
                batchStart = batchEnd;
            }
            return output;
        }
        /**
         * Ensure tensors all have a rank of at least 2.
         *
         * If a tensor has a rank of 1, it is dimension-expanded to rank 2.
         * If any tensor has a rank of 0 (i.e., is a scalar), an error will be thrown.
         */
        function ensureTensorsRank2OrHigher(tensors) {
            const outs = [];
            if (tensors instanceof tfc.Tensor) {
                tensors = [tensors];
            }
            // Make Tensors at least 2D.
            for (let i = 0; i < tensors.length; ++i) {
                const tensor = tensors[i];
                if (tensor.rank === 1) {
                    outs.push((0,
                        _tfjs_backend.expandDims)(tensor, 1));
                } else if (tensor.rank === 0) {
                    throw new Error('Expected tensor to be at least 1D, but received a 0D tensor ' + '(scalar).');
                } else {
                    outs.push(tensor);
                }
            }
            return outs;
        }
        /**
         * Compare a set of tensors with a reference (old) set, discard the ones
         * in the new set that are not present in the reference set.
         *
         * This method is used for memory clenaup during calls such as
         * LayersModel.fit().
         *
         * @param tensors New set which may contain Tensors not present in
         *   `refTensors`.
         * @param refTensors Reference Tensor set.
         */
        // TODO(cais, kangyizhang): Deduplicate with tfjs-data.
        function disposeNewTensors(tensors, refTensors) {
            if (tensors == null) {
                return;
            }
            const oldTensorIds = [];
            if (refTensors instanceof tfc.Tensor) {
                oldTensorIds.push(refTensors.id);
            } else if (Array.isArray(refTensors)) {
                refTensors.forEach(t => oldTensorIds.push(t.id));
            } else if (refTensors != null) {
                // `oldTensors` is a map from string name to Tensor.
                for (const name in refTensors) {
                    const oldTensor = refTensors[name];
                    oldTensorIds.push(oldTensor.id);
                }
            }
            const tensorsToDispose = [];
            if (tensors instanceof tfc.Tensor) {
                if (oldTensorIds.indexOf(tensors.id) === -1) {
                    tensorsToDispose.push(tensors);
                }
            } else if (Array.isArray(tensors)) {
                tensors.forEach(t => {
                    if (oldTensorIds.indexOf(t.id) === -1) {
                        tensorsToDispose.push(t);
                    }
                }
                );
            } else if (tensors != null) {
                // `oldTensors` is a map from string name to Tensor.
                for (const name in tensors) {
                    const tensor = tensors[name];
                    if (oldTensorIds.indexOf(tensor.id) === -1) {
                        tensorsToDispose.push(tensor);
                    }
                }
            }
            tensorsToDispose.forEach(t => {
                if (!t.isDisposed) {
                    t.dispose();
                }
            }
            );
        }

    }
        , {
        "../backend/tfjs_backend": 516,
        "@tensorflow/tfjs-core": 506
    }],
    528: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.computeWeightedLoss = computeWeightedLoss;
        exports.standardizeClassWeights = standardizeClassWeights;
        exports.standardizeSampleWeights = standardizeSampleWeights;
        exports.standardizeWeights = standardizeWeights;
        var _tfjsCore = require("@tensorflow/tfjs-core");
        /**
         * @license
         * Copyright 2018 Google LLC
         *
         * Use of this source code is governed by an MIT-style
         * license that can be found in the LICENSE file or at
         * https://opensource.org/licenses/MIT.
         * =============================================================================
         */

        function standardizeSampleOrClassWeights(xWeight, outputNames, weightType) {
            const numOutputs = outputNames.length;
            if (xWeight == null || Array.isArray(xWeight) && xWeight.length === 0) {
                return outputNames.map(name => null);
            }
            if (numOutputs === 1) {
                if (Array.isArray(xWeight) && xWeight.length === 1) {
                    return xWeight;
                } else if (typeof xWeight === 'object' && outputNames[0] in xWeight) {
                    return [xWeight[outputNames[0]]];
                } else {
                    return [xWeight];
                }
            }
            if (Array.isArray(xWeight)) {
                if (xWeight.length !== numOutputs) {
                    throw new Error(`Provided ${weightType} is an array of ${xWeight.length} ` + `element(s), but the model has ${numOutputs} outputs. ` + `Make sure a set of weights is provided for each model output.`);
                }
                return xWeight;
            } else if (typeof xWeight === 'object' && Object.keys(xWeight).length > 0 && typeof xWeight[Object.keys(xWeight)[0]] === 'object') {
                const output = [];
                outputNames.forEach(outputName => {
                    if (outputName in xWeight) {
                        output.push(xWeight[outputName]);
                    } else {
                        output.push(null);
                    }
                }
                );
                return output;
            } else {
                throw new Error(`The model has multiple (${numOutputs}) outputs, ` + `so ${weightType} must be either an array with ` + `${numOutputs} elements or an object with ${outputNames} keys. ` + `Provided ${weightType} not understood: ${JSON.stringify(xWeight)}`);
            }
        }
        /**
         * Standardize class weighting objects.
         *
         * This function takes a single class-weighting object, an array of them,
         * or a map from output name to class-weighting object. It compares it to the
         * output name(s) of the model, base on which it outputs an array of
         * class-weighting objects of which the length matches the number of outputs.
         *
         * @param classWeight Input class-weighting object(s).
         * @param outputNames All output name(s) of the model.
         * @return An array of class-weighting objects. The length of the array matches
         *   the model's number of outputs.
         */
        function standardizeClassWeights(classWeight, outputNames) {
            return standardizeSampleOrClassWeights(classWeight, outputNames, 'classWeight');
        }
        function standardizeSampleWeights(classWeight, outputNames) {
            return standardizeSampleOrClassWeights(classWeight, outputNames, 'sampleWeight');
        }
        /**
         * Standardize by-sample and/or by-class weights for training.
         *
         * Note that this function operates on one model output at a time. For a model
         * with multiple outputs, you must call this function multiple times.
         *
         * @param y The target tensor that the by-sample and/or by-class weight is for.
         *     The values of y are assumed to encode the classes, either directly
         *     as an integer index, or as one-hot encoding.
         * @param sampleWeight By-sample weights.
         * @param classWeight By-class weights: an object mapping class indices
         *     (integers) to a weight (float) to apply to the model's loss for the
         *     samples from this class during training. This can be useful to tell the
         *     model to "pay more attention" to samples from an under-represented class.
         * @param sampleWeightMode The mode for the sample weights.
         * @return A Promise of weight tensor, of which the size of the first dimension
         *     matches that of `y`.
         */
        async function standardizeWeights(y, sampleWeight, classWeight, sampleWeightMode) {
            if (sampleWeight != null || sampleWeightMode != null) {
                // TODO(cais): Once 'temporal' mode is implemented, document it in the doc
                // string.
                throw new Error('Support sampleWeight is not implemented yet');
            }
            if (classWeight != null) {
                // Apply class weights per sample.
                const yClasses = (0,
                    _tfjsCore.tidy)(() => {
                        if (y.shape.length === 1) {
                            // Assume class indices.
                            return (0,
                                _tfjsCore.clone)(y);
                        } else if (y.shape.length === 2) {
                            if (y.shape[1] > 1) {
                                // Assume one-hot encoding of classes.
                                const axis = 1;
                                return (0,
                                    _tfjsCore.argMax)(y, axis);
                            } else if (y.shape[1] === 1) {
                                // Class index.
                                return (0,
                                    _tfjsCore.reshape)(y, [y.shape[0]]);
                            } else {
                                throw new Error(`Encountered unexpected last-dimension size (${y.shape[1]}) ` + `during handling of class weights. The size is expected to be ` + `>= 1.`);
                            }
                        } else {
                            throw new Error(`Unexpected rank of target (y) tensor (${y.rank}) during ` + `handling of class weights. The rank is expected to be 1 or 2.`);
                        }
                    }
                    );
                const yClassIndices = Array.from(await yClasses.data());
                (0,
                    _tfjsCore.dispose)(yClasses);
                const classSampleWeight = [];
                yClassIndices.forEach(classIndex => {
                    if (classWeight[classIndex] == null) {
                        throw new Error(`classWeight must contain all classes in the training data. ` + `The class ${classIndex} exists in the data but not in ` + `classWeight`);
                    } else {
                        classSampleWeight.push(classWeight[classIndex]);
                    }
                }
                );
                return (0,
                    _tfjsCore.tensor1d)(classSampleWeight, 'float32');
            } else {
                return null;
            }
        }
        /**
         * Apply per-sample weights on the loss values from a number of samples.
         *
         * @param losses Loss tensor of shape `[batchSize]`.
         * @param sampleWeights Per-sample weight tensor of shape `[batchSize]`.
         * @returns Tensor of the same shape as`losses`.
         */
        function computeWeightedLoss(losses, sampleWeights) {
            return (0,
                _tfjsCore.mul)(losses, sampleWeights);
        }

    }
        , {
        "@tensorflow/tfjs-core": 506
    }],
    529: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.ValueError = exports.RuntimeError = exports.NotImplementedError = exports.IndexError = exports.AttributeError = exports.AssertionError = void 0;
        /**
         * @license
         * Copyright 2018 Google LLC
         *
         * Use of this source code is governed by an MIT-style
         * license that can be found in the LICENSE file or at
         * https://opensource.org/licenses/MIT.
         * =============================================================================
         */
        /**
         * Explicit error types.
         *
         * See the following link for more information about why the code includes
         * calls to setPrototypeOf:
         *
         * https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work
         */
        // tslint:enable
        /**
         * Equivalent of Python's AttributeError.
         */
        class AttributeError extends Error {
            constructor(message) {
                super(message);
                // Set the prototype explicitly.
                Object.setPrototypeOf(this, AttributeError.prototype);
            }
        }
        /**
         * Equivalent of Python's RuntimeError.
         */
        exports.AttributeError = AttributeError;
        class RuntimeError extends Error {
            constructor(message) {
                super(message);
                // Set the prototype explicitly.
                Object.setPrototypeOf(this, RuntimeError.prototype);
            }
        }
        /**
         * Equivalent of Python's ValueError.
         */
        exports.RuntimeError = RuntimeError;
        class ValueError extends Error {
            constructor(message) {
                super(message);
                // Set the prototype explicitly.
                Object.setPrototypeOf(this, ValueError.prototype);
            }
        }
        /**
         * Equivalent of Python's NotImplementedError.
         */
        exports.ValueError = ValueError;
        class NotImplementedError extends Error {
            constructor(message) {
                super(message);
                // Set the prototype explicitly.
                Object.setPrototypeOf(this, NotImplementedError.prototype);
            }
        }
        /**
         * Equivalent of Python's AssertionError.
         */
        exports.NotImplementedError = NotImplementedError;
        class AssertionError extends Error {
            constructor(message) {
                super(message);
                // Set the prototype explicitly.
                Object.setPrototypeOf(this, AssertionError.prototype);
            }
        }
        /**
         * Equivalent of Python's IndexError.
         */
        exports.AssertionError = AssertionError;
        class IndexError extends Error {
            constructor(message) {
                super(message);
                // Set the prototype explicitly.
                Object.setPrototypeOf(this, IndexError.prototype);
            }
        }
        exports.IndexError = IndexError;

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

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.input = input;
        Object.defineProperty(exports, "loadLayersModel", {
            enumerable: true,
            get: function () {
                return _models.loadLayersModel;
            }
        });
        exports.model = model;
        exports.registerCallbackConstructor = registerCallbackConstructor;
        exports.sequential = sequential;
        var _base_callbacks = require("./base_callbacks");
        var _input_layer = require("./engine/input_layer");
        var _training = require("./engine/training");
        var _models = require("./models");
        /**
         * @license
         * Copyright 2018 Google LLC
         *
         * Use of this source code is governed by an MIT-style
         * license that can be found in the LICENSE file or at
         * https://opensource.org/licenses/MIT.
         * =============================================================================
         */
        /**
         * Exported functions.
         */

        // TODO(cais): Add doc string to all the public static functions in this
        //   class; include exectuable JavaScript code snippets where applicable
        //   (b/74074458).
        // LayersModel and related factory methods.
        /**
         * A model is a data structure that consists of `Layers` and defines inputs
         * and outputs.
         *
         * The key difference between `tf.model` and `tf.sequential` is that
         * `tf.model` is more generic, supporting an arbitrary graph (without
         * cycles) of layers. `tf.sequential` is less generic and supports only a linear
         * stack of layers.
         *
         * When creating a `tf.LayersModel`, specify its input(s) and output(s). Layers
         * are used to wire input(s) to output(s).
         *
         * For example, the following code snippet defines a model consisting of
         * two `dense` layers, with 10 and 4 units, respectively.
         *
         * ```js
         * // Define input, which has a size of 5 (not including batch dimension).
         * const input = tf.input({shape: [5]});
         *
         * // First dense layer uses relu activation.
         * const denseLayer1 = tf.layers.dense({units: 10, activation: 'relu'});
         * // Second dense layer uses softmax activation.
         * const denseLayer2 = tf.layers.dense({units: 4, activation: 'softmax'});
         *
         * // Obtain the output symbolic tensor by applying the layers on the input.
         * const output = denseLayer2.apply(denseLayer1.apply(input));
         *
         * // Create the model based on the inputs.
         * const model = tf.model({inputs: input, outputs: output});
         *
         * // The model can be used for training, evaluation and prediction.
         * // For example, the following line runs prediction with the model on
         * // some fake data.
         * model.predict(tf.ones([2, 5])).print();
         * ```
         * See also:
         *   `tf.sequential`, `tf.loadLayersModel`.
         *
         * @doc {heading: 'Models', subheading: 'Creation'}
         */
        function model(args) {
            return new _training.LayersModel(args);
        }
        /**
         * Creates a `tf.Sequential` model.  A sequential model is any model where the
         * outputs of one layer are the inputs to the next layer, i.e. the model
         * topology is a simple 'stack' of layers, with no branching or skipping.
         *
         * This means that the first layer passed to a `tf.Sequential` model should have
         * a defined input shape. What that means is that it should have received an
         * `inputShape` or `batchInputShape` argument, or for some type of layers
         * (recurrent, Dense...) an `inputDim` argument.
         *
         * The key difference between `tf.model` and `tf.sequential` is that
         * `tf.sequential` is less generic, supporting only a linear stack of layers.
         * `tf.model` is more generic and supports an arbitrary graph (without
         * cycles) of layers.
         *
         * Examples:
         *
         * ```js
         * const model = tf.sequential();
         *
         * // First layer must have an input shape defined.
         * model.add(tf.layers.dense({units: 32, inputShape: [50]}));
         * // Afterwards, TF.js does automatic shape inference.
         * model.add(tf.layers.dense({units: 4}));
         *
         * // Inspect the inferred shape of the model's output, which equals
         * // `[null, 4]`. The 1st dimension is the undetermined batch dimension; the
         * // 2nd is the output size of the model's last layer.
         * console.log(JSON.stringify(model.outputs[0].shape));
         * ```
         *
         * It is also possible to specify a batch size (with potentially undetermined
         * batch dimension, denoted by "null") for the first layer using the
         * `batchInputShape` key. The following example is equivalent to the above:
         *
         * ```js
         * const model = tf.sequential();
         *
         * // First layer must have a defined input shape
         * model.add(tf.layers.dense({units: 32, batchInputShape: [null, 50]}));
         * // Afterwards, TF.js does automatic shape inference.
         * model.add(tf.layers.dense({units: 4}));
         *
         * // Inspect the inferred shape of the model's output.
         * console.log(JSON.stringify(model.outputs[0].shape));
         * ```
         *
         * You can also use an `Array` of already-constructed `Layer`s to create
         * a `tf.Sequential` model:
         *
         * ```js
         * const model = tf.sequential({
         *   layers: [tf.layers.dense({units: 32, inputShape: [50]}),
         *            tf.layers.dense({units: 4})]
         * });
         * console.log(JSON.stringify(model.outputs[0].shape));
         * ```
         *
         * @doc {heading: 'Models', subheading: 'Creation'}
         */
        function sequential(config) {
            return new _models.Sequential(config);
        }
        /**
         * Used to instantiate an input to a model as a `tf.SymbolicTensor`.
         *
         * Users should call the `input` factory function for
         * consistency with other generator functions.
         *
         * Example:
         *
         * ```js
         * // Defines a simple logistic regression model with 32 dimensional input
         * // and 3 dimensional output.
         * const x = tf.input({shape: [32]});
         * const y = tf.layers.dense({units: 3, activation: 'softmax'}).apply(x);
         * const model = tf.model({inputs: x, outputs: y});
         * model.predict(tf.ones([2, 32])).print();
         * ```
         *
         * Note: `input` is only necessary when using `model`. When using
         * `sequential`, specify `inputShape` for the first layer or use `inputLayer`
         * as the first layer.
         *
         * @doc {heading: 'Models', subheading: 'Inputs'}
         */
        function input(config) {
            return (0,
                _input_layer.Input)(config);
        }
        function registerCallbackConstructor(verbosityLevel, callbackConstructor) {
            _base_callbacks.CallbackConstructorRegistry.registerCallbackConstructor(verbosityLevel, callbackConstructor);
        }

    }
        , {
        "./base_callbacks": 517,
        "./engine/input_layer": 523,
        "./engine/training": 525,
        "./models": 564
    }],
    531: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.maxNorm = maxNorm;
        exports.minMaxNorm = minMaxNorm;
        exports.nonNeg = nonNeg;
        exports.unitNorm = unitNorm;
        var _constraints = require("./constraints");
        /**
         * @license
         * Copyright 2018 Google LLC
         *
         * Use of this source code is governed by an MIT-style
         * license that can be found in the LICENSE file or at
         * https://opensource.org/licenses/MIT.
         * =============================================================================
         */
        // tslint:disable-next-line:max-line-length

        /**
         * MaxNorm weight constraint.
         *
         * Constrains the weights incident to each hidden unit
         * to have a norm less than or equal to a desired value.
         *
         * References
         *       - [Dropout: A Simple Way to Prevent Neural Networks from Overfitting
         * Srivastava, Hinton, et al.
         * 2014](http://www.cs.toronto.edu/~rsalakhu/papers/srivastava14a.pdf)
         *
         * @doc {heading: 'Constraints',namespace: 'constraints'}
         */
        function maxNorm(args) {
            return new _constraints.MaxNorm(args);
        }
        /**
         * Constrains the weights incident to each hidden unit to have unit norm.
         *
         * @doc {heading: 'Constraints', namespace: 'constraints'}
         */
        function unitNorm(args) {
            return new _constraints.UnitNorm(args);
        }
        /**
         * Constrains the weight to be non-negative.
         *
         * @doc {heading: 'Constraints', namespace: 'constraints'}
         */
        function nonNeg() {
            return new _constraints.NonNeg();
        }
        /** @doc {heading: 'Constraints', namespace: 'constraints'} */
        function minMaxNorm(config) {
            return new _constraints.MinMaxNorm(config);
        }

    }
        , {
        "./constraints": 520
    }],
    532: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.constant = constant;
        exports.glorotNormal = glorotNormal;
        exports.glorotUniform = glorotUniform;
        exports.heNormal = heNormal;
        exports.heUniform = heUniform;
        exports.identity = identity;
        exports.leCunNormal = leCunNormal;
        exports.leCunUniform = leCunUniform;
        exports.ones = ones;
        exports.orthogonal = orthogonal;
        exports.randomNormal = randomNormal;
        exports.randomUniform = randomUniform;
        exports.truncatedNormal = truncatedNormal;
        exports.varianceScaling = varianceScaling;
        exports.zeros = zeros;
        var _initializers = require("./initializers");
        /**
         * @license
         * Copyright 2018 Google LLC
         *
         * Use of this source code is governed by an MIT-style
         * license that can be found in the LICENSE file or at
         * https://opensource.org/licenses/MIT.
         * =============================================================================
         */
        // tslint:disable-next-line:max-line-length

        /**
         * Initializer that generates tensors initialized to 0.
         *
         * @doc {heading: 'Initializers', namespace: 'initializers'}
         */
        function zeros() {
            return new _initializers.Zeros();
        }
        /**
         * Initializer that generates tensors initialized to 1.
         *
         * @doc {heading: 'Initializers', namespace: 'initializers'}
         */
        function ones() {
            return new _initializers.Ones();
        }
        /**
         * Initializer that generates values initialized to some constant.
         *
         * @doc {heading: 'Initializers', namespace: 'initializers'}
         */
        function constant(args) {
            return new _initializers.Constant(args);
        }
        /**
         * Initializer that generates random values initialized to a uniform
         * distribution.
         *
         * Values will be distributed uniformly between the configured minval and
         * maxval.
         *
         * @doc {heading: 'Initializers', namespace: 'initializers'}
         */
        function randomUniform(args) {
            return new _initializers.RandomUniform(args);
        }
        /**
         * Initializer that generates random values initialized to a normal
         * distribution.
         *
         * @doc {heading: 'Initializers', namespace: 'initializers'}
         */
        function randomNormal(args) {
            return new _initializers.RandomNormal(args);
        }
        /**
         * Initializer that generates random values initialized to a truncated normal
         * distribution.
         *
         * These values are similar to values from a `RandomNormal` except that values
         * more than two standard deviations from the mean are discarded and re-drawn.
         * This is the recommended initializer for neural network weights and filters.
         *
         * @doc {heading: 'Initializers', namespace: 'initializers'}
         */
        function truncatedNormal(args) {
            return new _initializers.TruncatedNormal(args);
        }
        /**
         * Initializer that generates the identity matrix.
         * Only use for square 2D matrices.
         *
         * @doc {heading: 'Initializers', namespace: 'initializers'}
         */
        function identity(args) {
            return new _initializers.Identity(args);
        }
        /**
         * Initializer capable of adapting its scale to the shape of weights.
         * With distribution=NORMAL, samples are drawn from a truncated normal
         * distribution centered on zero, with `stddev = sqrt(scale / n)` where n is:
         *   - number of input units in the weight tensor, if mode = FAN_IN.
         *   - number of output units, if mode = FAN_OUT.
         *   - average of the numbers of input and output units, if mode = FAN_AVG.
         * With distribution=UNIFORM,
         * samples are drawn from a uniform distribution
         * within [-limit, limit], with `limit = sqrt(3 * scale / n)`.
         *
         * @doc {heading: 'Initializers',namespace: 'initializers'}
         */
        function varianceScaling(config) {
            return new _initializers.VarianceScaling(config);
        }
        /**
         * Glorot uniform initializer, also called Xavier uniform initializer.
         * It draws samples from a uniform distribution within [-limit, limit]
         * where `limit` is `sqrt(6 / (fan_in + fan_out))`
         * where `fan_in` is the number of input units in the weight tensor
         * and `fan_out` is the number of output units in the weight tensor
         *
         * Reference:
         *   Glorot & Bengio, AISTATS 2010
         *       http://jmlr.org/proceedings/papers/v9/glorot10a/glorot10a.pdf.
         *
         * @doc {heading: 'Initializers', namespace: 'initializers'}
         */
        function glorotUniform(args) {
            return new _initializers.GlorotUniform(args);
        }
        /**
         * Glorot normal initializer, also called Xavier normal initializer.
         * It draws samples from a truncated normal distribution centered on 0
         * with `stddev = sqrt(2 / (fan_in + fan_out))`
         * where `fan_in` is the number of input units in the weight tensor
         * and `fan_out` is the number of output units in the weight tensor.
         *
         * Reference:
         *   Glorot & Bengio, AISTATS 2010
         *       http://jmlr.org/proceedings/papers/v9/glorot10a/glorot10a.pdf
         *
         * @doc {heading: 'Initializers', namespace: 'initializers'}
         */
        function glorotNormal(args) {
            return new _initializers.GlorotNormal(args);
        }
        /**
         * He normal initializer.
         *
         * It draws samples from a truncated normal distribution centered on 0
         * with `stddev = sqrt(2 / fanIn)`
         * where `fanIn` is the number of input units in the weight tensor.
         *
         * Reference:
         *     He et al., http://arxiv.org/abs/1502.01852
         *
         * @doc {heading: 'Initializers', namespace: 'initializers'}
         */
        function heNormal(args) {
            return new _initializers.HeNormal(args);
        }
        /**
         * He uniform initializer.
         *
         * It draws samples from a uniform distribution within [-limit, limit]
         * where `limit` is `sqrt(6 / fan_in)`
         * where `fanIn` is the number of input units in the weight tensor.
         *
         * Reference:
         *     He et al., http://arxiv.org/abs/1502.01852
         *
         * @doc {heading: 'Initializers',namespace: 'initializers'}
         */
        function heUniform(args) {
            return new _initializers.HeUniform(args);
        }
        /**
         * LeCun normal initializer.
         *
         * It draws samples from a truncated normal distribution centered on 0
         * with `stddev = sqrt(1 / fanIn)`
         * where `fanIn` is the number of input units in the weight tensor.
         *
         * References:
         *   [Self-Normalizing Neural Networks](https://arxiv.org/abs/1706.02515)
         *   [Efficient Backprop](http://yann.lecun.com/exdb/publis/pdf/lecun-98b.pdf)
         *
         * @doc {heading: 'Initializers', namespace: 'initializers'}
         */
        function leCunNormal(args) {
            return new _initializers.LeCunNormal(args);
        }
        /**
         * LeCun uniform initializer.
         *
         * It draws samples from a uniform distribution in the interval
         * `[-limit, limit]` with `limit = sqrt(3 / fanIn)`,
         * where `fanIn` is the number of input units in the weight tensor.
         *
         * @doc {heading: 'Initializers', namespace: 'initializers'}
         */
        function leCunUniform(args) {
            return new _initializers.LeCunUniform(args);
        }
        /**
         * Initializer that generates a random orthogonal matrix.
         *
         * Reference:
         * [Saxe et al., http://arxiv.org/abs/1312.6120](http://arxiv.org/abs/1312.6120)
         *
         * @doc {heading: 'Initializers', namespace: 'initializers'}
         */
        function orthogonal(args) {
            return new _initializers.Orthogonal(args);
        }

    }
        , {
        "./initializers": 539
    }],
    533: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        Object.defineProperty(exports, "Layer", {
            enumerable: true,
            get: function () {
                return _topology.Layer;
            }
        });
        Object.defineProperty(exports, "RNN", {
            enumerable: true,
            get: function () {
                return _recurrent.RNN;
            }
        });
        Object.defineProperty(exports, "RNNCell", {
            enumerable: true,
            get: function () {
                return _recurrent.RNNCell;
            }
        });
        exports.activation = activation;
        exports.add = add;
        exports.alphaDropout = alphaDropout;
        exports.average = average;
        exports.averagePooling1d = averagePooling1d;
        exports.averagePooling2d = averagePooling2d;
        exports.averagePooling3d = averagePooling3d;
        exports.avgPool1d = avgPool1d;
        exports.avgPool2d = avgPool2d;
        exports.avgPool3d = avgPool3d;
        exports.avgPooling1d = avgPooling1d;
        exports.avgPooling2d = avgPooling2d;
        exports.avgPooling3d = avgPooling3d;
        exports.batchNormalization = batchNormalization;
        exports.bidirectional = bidirectional;
        exports.categoryEncoding = categoryEncoding;
        exports.centerCrop = centerCrop;
        exports.concatenate = concatenate;
        exports.conv1d = conv1d;
        exports.conv2d = conv2d;
        exports.conv2dTranspose = conv2dTranspose;
        exports.conv3d = conv3d;
        exports.conv3dTranspose = conv3dTranspose;
        exports.convLstm2d = convLstm2d;
        exports.convLstm2dCell = convLstm2dCell;
        exports.cropping2D = cropping2D;
        exports.dense = dense;
        exports.depthwiseConv2d = depthwiseConv2d;
        exports.dot = dot;
        exports.dropout = dropout;
        exports.elu = elu;
        exports.embedding = embedding;
        exports.flatten = flatten;
        exports.gaussianDropout = gaussianDropout;
        exports.gaussianNoise = gaussianNoise;
        exports.globalAveragePooling1d = globalAveragePooling1d;
        exports.globalAveragePooling2d = globalAveragePooling2d;
        exports.globalMaxPool2d = exports.globalMaxPool1d = void 0;
        exports.globalMaxPooling1d = globalMaxPooling1d;
        exports.globalMaxPooling2d = globalMaxPooling2d;
        exports.gru = gru;
        exports.gruCell = gruCell;
        Object.defineProperty(exports, "input", {
            enumerable: true,
            get: function () {
                return _exports.input;
            }
        });
        exports.inputLayer = inputLayer;
        exports.layerNormalization = layerNormalization;
        exports.leakyReLU = leakyReLU;
        exports.lstm = lstm;
        exports.lstmCell = lstmCell;
        exports.masking = masking;
        exports.maxPool2d = exports.maxPool1d = void 0;
        exports.maxPooling1d = maxPooling1d;
        exports.maxPooling2d = maxPooling2d;
        exports.maxPooling3d = maxPooling3d;
        exports.maximum = maximum;
        exports.minimum = minimum;
        exports.multiply = multiply;
        exports.permute = permute;
        exports.prelu = prelu;
        exports.reLU = reLU;
        exports.repeatVector = repeatVector;
        exports.rescaling = rescaling;
        exports.reshape = reshape;
        exports.resizing = resizing;
        exports.rnn = rnn;
        exports.separableConv2d = separableConv2d;
        exports.simpleRNN = simpleRNN;
        exports.simpleRNNCell = simpleRNNCell;
        exports.softmax = softmax;
        exports.spatialDropout1d = spatialDropout1d;
        exports.stackedRNNCells = stackedRNNCells;
        exports.thresholdedReLU = thresholdedReLU;
        exports.timeDistributed = timeDistributed;
        exports.upSampling2d = upSampling2d;
        exports.zeroPadding2d = zeroPadding2d;
        var _input_layer = require("./engine/input_layer");
        var _topology = require("./engine/topology");
        var _exports = require("./exports");
        var _advanced_activations = require("./layers/advanced_activations");
        var _convolutional = require("./layers/convolutional");
        var _convolutional_depthwise = require("./layers/convolutional_depthwise");
        var _convolutional_recurrent = require("./layers/convolutional_recurrent");
        var _core = require("./layers/core");
        var _embeddings = require("./layers/embeddings");
        var _merge = require("./layers/merge");
        var _noise = require("./layers/noise");
        var _normalization = require("./layers/normalization");
        var _padding = require("./layers/padding");
        var _pooling = require("./layers/pooling");
        var _recurrent = require("./layers/recurrent");
        var _wrappers = require("./layers/wrappers");
        var _image_preprocessing = require("./layers/preprocessing/image_preprocessing");
        var _center_crop = require("./layers/preprocessing/center_crop");
        var _category_encoding = require("./layers/preprocessing/category_encoding");
        var _image_resizing = require("./layers/preprocessing/image_resizing");
        /**
         * @license
         * Copyright 2018 Google LLC
         *
         * Use of this source code is governed by an MIT-style
         * license that can be found in the LICENSE file or at
         * https://opensource.org/licenses/MIT.
         * =============================================================================
         */

        // TODO(cais): Add doc string to all the public static functions in this
        //   class; include exectuable JavaScript code snippets where applicable
        //   (b/74074458).
        // Input Layer.
        /**
         * An input layer is an entry point into a `tf.LayersModel`.
         *
         * `InputLayer` is generated automatically for `tf.Sequential` models by
         * specifying the `inputshape` or `batchInputShape` for the first layer.  It
         * should not be specified explicitly. However, it can be useful sometimes,
         * e.g., when constructing a sequential model from a subset of another
         * sequential model's layers. Like the code snippet below shows.
         *
         * ```js
         * // Define a model which simply adds two inputs.
         * const model1 = tf.sequential();
         * model1.add(tf.layers.dense({inputShape: [4], units: 3, activation: 'relu'}));
         * model1.add(tf.layers.dense({units: 1, activation: 'sigmoid'}));
         * model1.summary();
         * model1.predict(tf.zeros([1, 4])).print();
         *
         * // Construct another model, reusing the second layer of `model1` while
         * // not using the first layer of `model1`. Note that you cannot add the second
         * // layer of `model` directly as the first layer of the new sequential model,
         * // because doing so will lead to an error related to the fact that the layer
         * // is not an input layer. Instead, you need to create an `inputLayer` and add
         * // it to the new sequential model before adding the reused layer.
         * const model2 = tf.sequential();
         * // Use an inputShape that matches the input shape of `model1`'s second
         * // layer.
         * model2.add(tf.layers.inputLayer({inputShape: [3]}));
         * model2.add(model1.layers[1]);
         * model2.summary();
         * model2.predict(tf.zeros([1, 3])).print();
         * ```
         *
         * @doc {heading: 'Layers', subheading: 'Inputs', namespace: 'layers'}
         */
        function inputLayer(args) {
            return new _input_layer.InputLayer(args);
        }
        // Advanced Activation Layers.
        /**
         * Exponential Linear Unit (ELU).
         *
         * It follows:
         * `f(x) =  alpha * (exp(x) - 1.) for x < 0`,
         * `f(x) = x for x >= 0`.
         *
         * Input shape:
         *   Arbitrary. Use the configuration `inputShape` when using this layer as the
         *   first layer in a model.
         *
         * Output shape:
         *   Same shape as the input.
         *
         * References:
         *   - [Fast and Accurate Deep Network Learning by Exponential Linear Units
         * (ELUs)](https://arxiv.org/abs/1511.07289v1)
         *
         * @doc {
         *   heading: 'Layers',
         *   subheading: 'Advanced Activation',
         *   namespace: 'layers'
         * }
         */
        function elu(args) {
            return new _advanced_activations.ELU(args);
        }
        /**
         * Rectified Linear Unit activation function.
         *
         * Input shape:
         *   Arbitrary. Use the config field `inputShape` (Array of integers, does
         *   not include the sample axis) when using this layer as the first layer
         *   in a model.
         *
         * Output shape:
         *   Same shape as the input.
         *
         * @doc {
         *   heading: 'Layers',
         *   subheading: 'Advanced Activation',
         *   namespace: 'layers'
         * }
         */
        function reLU(args) {
            return new _advanced_activations.ReLU(args);
        }
        /**
         * Leaky version of a rectified linear unit.
         *
         * It allows a small gradient when the unit is not active:
         * `f(x) = alpha * x for x < 0.`
         * `f(x) = x for x >= 0.`
         *
         * Input shape:
         *   Arbitrary. Use the configuration `inputShape` when using this layer as the
         *   first layer in a model.
         *
         * Output shape:
         *   Same shape as the input.
         *
         * @doc {
         *   heading: 'Layers',
         *   subheading: 'Advanced Activation',
         *   namespace: 'layers'
         * }
         */
        function leakyReLU(args) {
            return new _advanced_activations.LeakyReLU(args);
        }
        /**
         * Parameterized version of a leaky rectified linear unit.
         *
         * It follows
         * `f(x) = alpha * x for x < 0.`
         * `f(x) = x for x >= 0.`
         * wherein `alpha` is a trainable weight.
         *
         * Input shape:
         *   Arbitrary. Use the configuration `inputShape` when using this layer as the
         *   first layer in a model.
         *
         * Output shape:
         *   Same shape as the input.
         *
         * @doc {
         *   heading: 'Layers',
         *   subheading: 'Advanced Activation',
         *   namespace: 'layers'
         * }
         */
        function prelu(args) {
            return new _advanced_activations.PReLU(args);
        }
        /**
         * Softmax activation layer.
         *
         * Input shape:
         *   Arbitrary. Use the configuration `inputShape` when using this layer as the
         *   first layer in a model.
         *
         * Output shape:
         *   Same shape as the input.
         *
         * @doc {
         *   heading: 'Layers',
         *   subheading: 'Advanced Activation',
         *   namespace: 'layers'
         * }
         */
        function softmax(args) {
            return new _advanced_activations.Softmax(args);
        }
        /**
         * Thresholded Rectified Linear Unit.
         *
         * It follows:
         * `f(x) = x for x > theta`,
         * `f(x) = 0 otherwise`.
         *
         * Input shape:
         *   Arbitrary. Use the configuration `inputShape` when using this layer as the
         *   first layer in a model.
         *
         * Output shape:
         *   Same shape as the input.
         *
         * References:
         *   - [Zero-Bias Autoencoders and the Benefits of Co-Adapting
         * Features](http://arxiv.org/abs/1402.3337)
         *
         * @doc {
         *   heading: 'Layers',
         *   subheading: 'Advanced Activation',
         *   namespace: 'layers'
         * }
         */
        function thresholdedReLU(args) {
            return new _advanced_activations.ThresholdedReLU(args);
        }
        // Convolutional Layers.
        /**
         * 1D convolution layer (e.g., temporal convolution).
         *
         * This layer creates a convolution kernel that is convolved
         * with the layer input over a single spatial (or temporal) dimension
         * to produce a tensor of outputs.
         *
         * If `use_bias` is True, a bias vector is created and added to the outputs.
         *
         * If `activation` is not `null`, it is applied to the outputs as well.
         *
         * When using this layer as the first layer in a model, provide an
         * `inputShape` argument `Array` or `null`.
         *
         * For example, `inputShape` would be:
         * - `[10, 128]` for sequences of 10 vectors of 128-dimensional vectors
         * - `[null, 128]` for variable-length sequences of 128-dimensional vectors.
         *
         * @doc {heading: 'Layers', subheading: 'Convolutional',  namespace: 'layers'}
         */
        function conv1d(args) {
            return new _convolutional.Conv1D(args);
        }
        /**
         * 2D convolution layer (e.g. spatial convolution over images).
         *
         * This layer creates a convolution kernel that is convolved
         * with the layer input to produce a tensor of outputs.
         *
         * If `useBias` is True, a bias vector is created and added to the outputs.
         *
         * If `activation` is not `null`, it is applied to the outputs as well.
         *
         * When using this layer as the first layer in a model,
         * provide the keyword argument `inputShape`
         * (Array of integers, does not include the sample axis),
         * e.g. `inputShape=[128, 128, 3]` for 128x128 RGB pictures
         * in `dataFormat='channelsLast'`.
         *
         * @doc {heading: 'Layers', subheading: 'Convolutional', namespace: 'layers'}
         */
        function conv2d(args) {
            return new _convolutional.Conv2D(args);
        }
        /**
         * Transposed convolutional layer (sometimes called Deconvolution).
         *
         * The need for transposed convolutions generally arises
         * from the desire to use a transformation going in the opposite direction of
         * a normal convolution, i.e., from something that has the shape of the output
         * of some convolution to something that has the shape of its input while
         * maintaining a connectivity pattern that is compatible with said
         * convolution.
         *
         * When using this layer as the first layer in a model, provide the
         * configuration `inputShape` (`Array` of integers, does not include the
         * sample axis), e.g., `inputShape: [128, 128, 3]` for 128x128 RGB pictures in
         * `dataFormat: 'channelsLast'`.
         *
         * Input shape:
         *   4D tensor with shape:
         *   `[batch, channels, rows, cols]` if `dataFormat` is `'channelsFirst'`.
         *   or 4D tensor with shape
         *   `[batch, rows, cols, channels]` if `dataFormat` is `'channelsLast'`.
         *
         * Output shape:
         *   4D tensor with shape:
         *   `[batch, filters, newRows, newCols]` if `dataFormat` is
         * `'channelsFirst'`. or 4D tensor with shape:
         *   `[batch, newRows, newCols, filters]` if `dataFormat` is `'channelsLast'`.
         *
         * References:
         *   - [A guide to convolution arithmetic for deep
         * learning](https://arxiv.org/abs/1603.07285v1)
         *   - [Deconvolutional
         * Networks](http://www.matthewzeiler.com/pubs/cvpr2010/cvpr2010.pdf)
         *
         * @doc {heading: 'Layers', subheading: 'Convolutional', namespace: 'layers'}
         */
        function conv2dTranspose(args) {
            return new _convolutional.Conv2DTranspose(args);
        }
        /**
         * 3D convolution layer (e.g. spatial convolution over volumes).
         *
         * This layer creates a convolution kernel that is convolved
         * with the layer input to produce a tensor of outputs.
         *
         * If `useBias` is True, a bias vector is created and added to the outputs.
         *
         * If `activation` is not `null`, it is applied to the outputs as well.
         *
         * When using this layer as the first layer in a model,
         * provide the keyword argument `inputShape`
         * (Array of integers, does not include the sample axis),
         * e.g. `inputShape=[128, 128, 128, 1]` for 128x128x128 grayscale volumes
         * in `dataFormat='channelsLast'`.
         *
         * @doc {heading: 'Layers', subheading: 'Convolutional', namespace: 'layers'}
         */
        function conv3d(args) {
            return new _convolutional.Conv3D(args);
        }
        function conv3dTranspose(args) {
            return new _convolutional.Conv3DTranspose(args);
        }
        /**
         * Depthwise separable 2D convolution.
         *
         * Separable convolution consists of first performing
         * a depthwise spatial convolution
         * (which acts on each input channel separately)
         * followed by a pointwise convolution which mixes together the resulting
         * output channels. The `depthMultiplier` argument controls how many
         * output channels are generated per input channel in the depthwise step.
         *
         * Intuitively, separable convolutions can be understood as
         * a way to factorize a convolution kernel into two smaller kernels,
         * or as an extreme version of an Inception block.
         *
         * Input shape:
         *   4D tensor with shape:
         *     `[batch, channels, rows, cols]` if data_format='channelsFirst'
         *   or 4D tensor with shape:
         *     `[batch, rows, cols, channels]` if data_format='channelsLast'.
         *
         * Output shape:
         *   4D tensor with shape:
         *     `[batch, filters, newRows, newCols]` if data_format='channelsFirst'
         *   or 4D tensor with shape:
         *     `[batch, newRows, newCols, filters]` if data_format='channelsLast'.
         *     `rows` and `cols` values might have changed due to padding.
         *
         * @doc {heading: 'Layers', subheading: 'Convolutional', namespace: 'layers'}
         */
        function separableConv2d(args) {
            return new _convolutional.SeparableConv2D(args);
        }
        /**
         * Cropping layer for 2D input (e.g., image).
         *
         * This layer can crop an input
         * at the top, bottom, left and right side of an image tensor.
         *
         * Input shape:
         *   4D tensor with shape:
         *   - If `dataFormat` is `"channelsLast"`:
         *     `[batch, rows, cols, channels]`
         *   - If `data_format` is `"channels_first"`:
         *     `[batch, channels, rows, cols]`.
         *
         * Output shape:
         *   4D with shape:
         *   - If `dataFormat` is `"channelsLast"`:
         *     `[batch, croppedRows, croppedCols, channels]`
         *    - If `dataFormat` is `"channelsFirst"`:
         *     `[batch, channels, croppedRows, croppedCols]`.
         *
         * Examples
         * ```js
         *
         * const model = tf.sequential();
         * model.add(tf.layers.cropping2D({cropping:[[2, 2], [2, 2]],
         *                                inputShape: [128, 128, 3]}));
         * //now output shape is [batch, 124, 124, 3]
         * ```
         *
         * @doc {heading: 'Layers', subheading: 'Convolutional', namespace: 'layers'}
         */
        function cropping2D(args) {
            return new _convolutional.Cropping2D(args);
        }
        /**
         * Upsampling layer for 2D inputs.
         *
         * Repeats the rows and columns of the data
         * by size[0] and size[1] respectively.
         *
         *
         * Input shape:
         *    4D tensor with shape:
         *     - If `dataFormat` is `"channelsLast"`:
         *         `[batch, rows, cols, channels]`
         *     - If `dataFormat` is `"channelsFirst"`:
         *        `[batch, channels, rows, cols]`
         *
         * Output shape:
         *     4D tensor with shape:
         *     - If `dataFormat` is `"channelsLast"`:
         *        `[batch, upsampledRows, upsampledCols, channels]`
         *     - If `dataFormat` is `"channelsFirst"`:
         *         `[batch, channels, upsampledRows, upsampledCols]`
         *
         *
         * @doc {heading: 'Layers', subheading: 'Convolutional', namespace: 'layers'}
         */
        function upSampling2d(args) {
            return new _convolutional.UpSampling2D(args);
        }
        // Convolutional(depthwise) Layers.
        /**
         * Depthwise separable 2D convolution.
         *
         * Depthwise Separable convolutions consists in performing just the first step
         * in a depthwise spatial convolution (which acts on each input channel
         * separately). The `depthMultiplier` argument controls how many output channels
         * are generated per input channel in the depthwise step.
         *
         * @doc {heading: 'Layers', subheading: 'Convolutional', namespace: 'layers'}
         */
        function depthwiseConv2d(args) {
            return new _convolutional_depthwise.DepthwiseConv2D(args);
        }
        // Basic Layers.
        /**
         * Applies an activation function to an output.
         *
         * This layer applies element-wise activation function.  Other layers, notably
         * `dense` can also apply activation functions.  Use this isolated activation
         * function to extract the values before and after the
         * activation. For instance:
         *
         * ```js
         * const input = tf.input({shape: [5]});
         * const denseLayer = tf.layers.dense({units: 1});
         * const activationLayer = tf.layers.activation({activation: 'relu6'});
         *
         * // Obtain the output symbolic tensors by applying the layers in order.
         * const denseOutput = denseLayer.apply(input);
         * const activationOutput = activationLayer.apply(denseOutput);
         *
         * // Create the model based on the inputs.
         * const model = tf.model({
         *     inputs: input,
         *     outputs: [denseOutput, activationOutput]
         * });
         *
         * // Collect both outputs and print separately.
         * const [denseOut, activationOut] = model.predict(tf.randomNormal([6, 5]));
         * denseOut.print();
         * activationOut.print();
         * ```
         *
         * @doc {heading: 'Layers', subheading: 'Basic', namespace: 'layers'}
         */
        function activation(args) {
            return new _core.Activation(args);
        }
        /**
         * Creates a dense (fully connected) layer.
         *
         * This layer implements the operation:
         *   `output = activation(dot(input, kernel) + bias)`
         *
         * `activation` is the element-wise activation function
         *   passed as the `activation` argument.
         *
         * `kernel` is a weights matrix created by the layer.
         *
         * `bias` is a bias vector created by the layer (only applicable if `useBias`
         * is `true`).
         *
         * **Input shape:**
         *
         *   nD `tf.Tensor` with shape: `(batchSize, ..., inputDim)`.
         *
         *   The most common situation would be
         *   a 2D input with shape `(batchSize, inputDim)`.
         *
         * **Output shape:**
         *
         *   nD tensor with shape: `(batchSize, ..., units)`.
         *
         *   For instance, for a 2D input with shape `(batchSize, inputDim)`,
         *   the output would have shape `(batchSize, units)`.
         *
         * Note: if the input to the layer has a rank greater than 2, then it is
         * flattened prior to the initial dot product with the kernel.
         *
         * @doc {heading: 'Layers', subheading: 'Basic', namespace: 'layers'}
         */
        function dense(args) {
            return new _core.Dense(args);
        }
        /**
         * Applies
         * [dropout](http://www.cs.toronto.edu/~rsalakhu/papers/srivastava14a.pdf) to
         * the input.
         *
         * Dropout consists in randomly setting a fraction `rate` of input units to 0 at
         * each update during training time, which helps prevent overfitting.
         *
         * @doc {heading: 'Layers', subheading: 'Basic', namespace: 'layers'}
         */
        function dropout(args) {
            return new _core.Dropout(args);
        }
        /**
         * Spatial 1D version of Dropout.
         *
         * This Layer type performs the same function as the Dropout layer, but it drops
         * entire 1D feature maps instead of individual elements. For example, if an
         * input example consists of 3 timesteps and the feature map for each timestep
         * has a size of 4, a `spatialDropout1d` layer may zero out the feature maps
         * of the 1st timesteps and 2nd timesteps completely while sparing all feature
         * elements of the 3rd timestep.
         *
         * If adjacent frames (timesteps) are strongly correlated (as is normally the
         * case in early convolution layers), regular dropout will not regularize the
         * activation and will otherwise just result in merely an effective learning
         * rate decrease. In this case, `spatialDropout1d` will help promote
         * independence among feature maps and should be used instead.
         *
         * **Arguments:**
         *   rate: A floating-point number >=0 and <=1. Fraction of the input elements
         *     to drop.
         *
         * **Input shape:**
         *   3D tensor with shape `(samples, timesteps, channels)`.
         *
         * **Output shape:**
         *   Same as the input shape.
         *
         * References:
         *   - [Efficient Object Localization Using Convolutional
         *      Networks](https://arxiv.org/abs/1411.4280)
         *
         * @doc {heading: 'Layers', subheading: 'Basic', namespace: 'layers'}
         */
        function spatialDropout1d(args) {
            return new _core.SpatialDropout1D(args);
        }
        /**
         * Flattens the input. Does not affect the batch size.
         *
         * A `Flatten` layer flattens each batch in its inputs to 1D (making the output
         * 2D).
         *
         * For example:
         *
         * ```js
         * const input = tf.input({shape: [4, 3]});
         * const flattenLayer = tf.layers.flatten();
         * // Inspect the inferred output shape of the flatten layer, which
         * // equals `[null, 12]`. The 2nd dimension is 4 * 3, i.e., the result of the
         * // flattening. (The 1st dimension is the undermined batch size.)
         * console.log(JSON.stringify(flattenLayer.apply(input).shape));
         * ```
         *
         * @doc {heading: 'Layers', subheading: 'Basic', namespace: 'layers'}
         */
        function flatten(args) {
            return new _core.Flatten(args);
        }
        /**
         * Repeats the input n times in a new dimension.
         *
         * ```js
         *  const model = tf.sequential();
         *  model.add(tf.layers.repeatVector({n: 4, inputShape: [2]}));
         *  const x = tf.tensor2d([[10, 20]]);
         *  // Use the model to do inference on a data point the model hasn't see
         *  model.predict(x).print();
         *  // output shape is now [batch, 2, 4]
         * ```
         *
         * @doc {heading: 'Layers', subheading: 'Basic', namespace: 'layers'}
         */
        function repeatVector(args) {
            return new _core.RepeatVector(args);
        }
        /**
         * Reshapes an input to a certain shape.
         *
         * ```js
         * const input = tf.input({shape: [4, 3]});
         * const reshapeLayer = tf.layers.reshape({targetShape: [2, 6]});
         * // Inspect the inferred output shape of the Reshape layer, which
         * // equals `[null, 2, 6]`. (The 1st dimension is the undermined batch size.)
         * console.log(JSON.stringify(reshapeLayer.apply(input).shape));
         * ```
         *
         * Input shape:
         *   Arbitrary, although all dimensions in the input shape must be fixed.
         *   Use the configuration `inputShape` when using this layer as the
         *   first layer in a model.
         *
         *
         * Output shape:
         *   [batchSize, targetShape[0], targetShape[1], ...,
         *    targetShape[targetShape.length - 1]].
         *
         * @doc {heading: 'Layers', subheading: 'Basic', namespace: 'layers'}
         */
        function reshape(args) {
            return new _core.Reshape(args);
        }
        /**
         * Permutes the dimensions of the input according to a given pattern.
         *
         * Useful for, e.g., connecting RNNs and convnets together.
         *
         * Example:
         *
         * ```js
         * const model = tf.sequential();
         * model.add(tf.layers.permute({
         *   dims: [2, 1],
         *   inputShape: [10, 64]
         * }));
         * console.log(model.outputShape);
         * // Now model's output shape is [null, 64, 10], where null is the
         * // unpermuted sample (batch) dimension.
         * ```
         *
         * Input shape:
         *   Arbitrary. Use the configuration field `inputShape` when using this
         *   layer as the first layer in a model.
         *
         * Output shape:
         *   Same rank as the input shape, but with the dimensions re-ordered (i.e.,
         *   permuted) according to the `dims` configuration of this layer.
         *
         * @doc {heading: 'Layers', subheading: 'Basic', namespace: 'layers'}
         */
        function permute(args) {
            return new _core.Permute(args);
        }
        /**
         * Maps positive integers (indices) into dense vectors of fixed size.
         * E.g. [[4], [20]] -> [[0.25, 0.1], [0.6, -0.2]]
         *
         * **Input shape:** 2D tensor with shape: `[batchSize, sequenceLength]`.
         *
         * **Output shape:** 3D tensor with shape: `[batchSize, sequenceLength,
         * outputDim]`.
         *
         * @doc {heading: 'Layers', subheading: 'Basic', namespace: 'layers'}
         */
        function embedding(args) {
            return new _embeddings.Embedding(args);
        }
        // Merge Layers.
        /**
         * Layer that performs element-wise addition on an `Array` of inputs.
         *
         * It takes as input a list of tensors, all of the same shape, and returns a
         * single tensor (also of the same shape). The inputs are specified as an
         * `Array` when the `apply` method of the `Add` layer instance is called. For
         * example:
         *
         * ```js
         * const input1 = tf.input({shape: [2, 2]});
         * const input2 = tf.input({shape: [2, 2]});
         * const addLayer = tf.layers.add();
         * const sum = addLayer.apply([input1, input2]);
         * console.log(JSON.stringify(sum.shape));
         * // You get [null, 2, 2], with the first dimension as the undetermined batch
         * // dimension.
         * ```
         *
         * @doc {heading: 'Layers', subheading: 'Merge', namespace: 'layers'}
         */
        function add(args) {
            return new _merge.Add(args);
        }
        /**
         * Layer that performs element-wise averaging on an `Array` of inputs.
         *
         * It takes as input a list of tensors, all of the same shape, and returns a
         * single tensor (also of the same shape). For example:
         *
         * ```js
         * const input1 = tf.input({shape: [2, 2]});
         * const input2 = tf.input({shape: [2, 2]});
         * const averageLayer = tf.layers.average();
         * const average = averageLayer.apply([input1, input2]);
         * console.log(JSON.stringify(average.shape));
         * // You get [null, 2, 2], with the first dimension as the undetermined batch
         * // dimension.
         * ```
         *
         * @doc {heading: 'Layers', subheading: 'Merge', namespace: 'layers'}
         */
        function average(args) {
            return new _merge.Average(args);
        }
        /**
         * Layer that concatenates an `Array` of inputs.
         *
         * It takes a list of tensors, all of the same shape except for the
         * concatenation axis, and returns a single tensor, the concatenation
         * of all inputs. For example:
         *
         * ```js
         * const input1 = tf.input({shape: [2, 2]});
         * const input2 = tf.input({shape: [2, 3]});
         * const concatLayer = tf.layers.concatenate();
         * const output = concatLayer.apply([input1, input2]);
         * console.log(JSON.stringify(output.shape));
         * // You get [null, 2, 5], with the first dimension as the undetermined batch
         * // dimension. The last dimension (5) is the result of concatenating the
         * // last dimensions of the inputs (2 and 3).
         * ```
         *
         * @doc {heading: 'Layers', subheading: 'Merge', namespace: 'layers'}
         */
        function concatenate(args) {
            return new _merge.Concatenate(args);
        }
        /**
         * Layer that computes the element-wise maximum of an `Array` of inputs.
         *
         * It takes as input a list of tensors, all of the same shape, and returns a
         * single tensor (also of the same shape). For example:
         *
         * ```js
         * const input1 = tf.input({shape: [2, 2]});
         * const input2 = tf.input({shape: [2, 2]});
         * const maxLayer = tf.layers.maximum();
         * const max = maxLayer.apply([input1, input2]);
         * console.log(JSON.stringify(max.shape));
         * // You get [null, 2, 2], with the first dimension as the undetermined batch
         * // dimension.
         * ```
         *
         * @doc {heading: 'Layers', subheading: 'Merge', namespace: 'layers'}
         */
        function maximum(args) {
            return new _merge.Maximum(args);
        }
        /**
         * Layer that computes the element-wise minimum of an `Array` of inputs.
         *
         * It takes as input a list of tensors, all of the same shape, and returns a
         * single tensor (also of the same shape). For example:
         *
         * ```js
         * const input1 = tf.input({shape: [2, 2]});
         * const input2 = tf.input({shape: [2, 2]});
         * const minLayer = tf.layers.minimum();
         * const min = minLayer.apply([input1, input2]);
         * console.log(JSON.stringify(min.shape));
         * // You get [null, 2, 2], with the first dimension as the undetermined batch
         * // dimension.
         * ```
         *
         * @doc {heading: 'Layers', subheading: 'Merge', namespace: 'layers'}
         */
        function minimum(args) {
            return new _merge.Minimum(args);
        }
        /**
         * Layer that multiplies (element-wise) an `Array` of inputs.
         *
         * It takes as input an Array of tensors, all of the same
         * shape, and returns a single tensor (also of the same shape).
         * For example:
         *
         * ```js
         * const input1 = tf.input({shape: [2, 2]});
         * const input2 = tf.input({shape: [2, 2]});
         * const input3 = tf.input({shape: [2, 2]});
         * const multiplyLayer = tf.layers.multiply();
         * const product = multiplyLayer.apply([input1, input2, input3]);
         * console.log(product.shape);
         * // You get [null, 2, 2], with the first dimension as the undetermined batch
         * // dimension.
         *
         * @doc {heading: 'Layers', subheading: 'Merge', namespace: 'layers'}
         */
        function multiply(args) {
            return new _merge.Multiply(args);
        }
        /**
         * Layer that computes a dot product between samples in two tensors.
         *
         * E.g., if applied to a list of two tensors `a` and `b` both of shape
         * `[batchSize, n]`, the output will be a tensor of shape `[batchSize, 1]`,
         * where each entry at index `[i, 0]` will be the dot product between
         * `a[i, :]` and `b[i, :]`.
         *
         * Example:
         *
         * ```js
         * const dotLayer = tf.layers.dot({axes: -1});
         * const x1 = tf.tensor2d([[10, 20], [30, 40]]);
         * const x2 = tf.tensor2d([[-1, -2], [-3, -4]]);
         *
         * // Invoke the layer's apply() method in eager (imperative) mode.
         * const y = dotLayer.apply([x1, x2]);
         * y.print();
         * ```
         *
         * @doc {heading: 'Layers', subheading: 'Merge', namespace: 'layers'}
         */
        function dot(args) {
            return new _merge.Dot(args);
        }
        // Normalization Layers.
        /**
         * Batch normalization layer (Ioffe and Szegedy, 2014).
         *
         * Normalize the activations of the previous layer at each batch,
         * i.e. applies a transformation that maintains the mean activation
         * close to 0 and the activation standard deviation close to 1.
         *
         * Input shape:
         *   Arbitrary. Use the keyword argument `inputShape` (Array of integers, does
         *   not include the sample axis) when calling the constructor of this class,
         *   if this layer is used as a first layer in a model.
         *
         * Output shape:
         *   Same shape as input.
         *
         * References:
         *   - [Batch Normalization: Accelerating Deep Network Training by Reducing
         * Internal Covariate Shift](https://arxiv.org/abs/1502.03167)
         *
         * @doc {heading: 'Layers', subheading: 'Normalization', namespace: 'layers'}
         */
        function batchNormalization(args) {
            return new _normalization.BatchNormalization(args);
        }
        /**
         * Layer-normalization layer (Ba et al., 2016).
         *
         * Normalizes the activations of the previous layer for each given example in a
         * batch independently, instead of across a batch like in `batchNormalization`.
         * In other words, this layer applies a transformation that maintains the mean
         * activation within each example close to 0 and activation variance close to 1.
         *
         * Input shape:
         *   Arbitrary. Use the argument `inputShape` when using this layer as the first
         *   layer in a model.
         *
         * Output shape:
         *   Same as input.
         *
         * References:
         *   - [Layer Normalization](https://arxiv.org/abs/1607.06450)
         *
         * @doc {heading: 'Layers', subheading: 'Normalization', namespace: 'layers'}
         */
        function layerNormalization(args) {
            return new _normalization.LayerNormalization(args);
        }
        // Padding Layers.
        /**
         * Zero-padding layer for 2D input (e.g., image).
         *
         * This layer can add rows and columns of zeros
         * at the top, bottom, left and right side of an image tensor.
         *
         * Input shape:
         *   4D tensor with shape:
         *   - If `dataFormat` is `"channelsLast"`:
         *     `[batch, rows, cols, channels]`
         *   - If `data_format` is `"channels_first"`:
         *     `[batch, channels, rows, cols]`.
         *
         * Output shape:
         *   4D with shape:
         *   - If `dataFormat` is `"channelsLast"`:
         *     `[batch, paddedRows, paddedCols, channels]`
         *    - If `dataFormat` is `"channelsFirst"`:
         *     `[batch, channels, paddedRows, paddedCols]`.
         *
         * @doc {heading: 'Layers', subheading: 'Padding', namespace: 'layers'}
         */
        function zeroPadding2d(args) {
            return new _padding.ZeroPadding2D(args);
        }
        // Pooling Layers.
        /**
         * Average pooling operation for spatial data.
         *
         * Input shape: `[batchSize, inLength, channels]`
         *
         * Output shape: `[batchSize, pooledLength, channels]`
         *
         * `tf.avgPool1d` is an alias.
         *
         * @doc {heading: 'Layers', subheading: 'Pooling', namespace: 'layers'}
         */
        function averagePooling1d(args) {
            return new _pooling.AveragePooling1D(args);
        }
        function avgPool1d(args) {
            return averagePooling1d(args);
        }
        // For backwards compatibility.
        // See https://github.com/tensorflow/tfjs/issues/152
        function avgPooling1d(args) {
            return averagePooling1d(args);
        }
        /**
         * Average pooling operation for spatial data.
         *
         * Input shape:
         *  - If `dataFormat === CHANNEL_LAST`:
         *      4D tensor with shape:
         *      `[batchSize, rows, cols, channels]`
         *  - If `dataFormat === CHANNEL_FIRST`:
         *      4D tensor with shape:
         *      `[batchSize, channels, rows, cols]`
         *
         * Output shape
         *  - If `dataFormat === CHANNEL_LAST`:
         *      4D tensor with shape:
         *      `[batchSize, pooledRows, pooledCols, channels]`
         *  - If `dataFormat === CHANNEL_FIRST`:
         *      4D tensor with shape:
         *      `[batchSize, channels, pooledRows, pooledCols]`
         *
         * `tf.avgPool2d` is an alias.
         *
         * @doc {heading: 'Layers', subheading: 'Pooling', namespace: 'layers'}
         */
        function averagePooling2d(args) {
            return new _pooling.AveragePooling2D(args);
        }
        function avgPool2d(args) {
            return averagePooling2d(args);
        }
        // For backwards compatibility.
        // See https://github.com/tensorflow/tfjs/issues/152
        function avgPooling2d(args) {
            return averagePooling2d(args);
        }
        /**
         * Average pooling operation for 3D data.
         *
         * Input shape
         *   - If `dataFormat === channelsLast`:
         *       5D tensor with shape:
         *       `[batchSize, depths, rows, cols, channels]`
         *   - If `dataFormat === channelsFirst`:
         *      4D tensor with shape:
         *       `[batchSize, channels, depths, rows, cols]`
         *
         * Output shape
         *   - If `dataFormat=channelsLast`:
         *       5D tensor with shape:
         *       `[batchSize, pooledDepths, pooledRows, pooledCols, channels]`
         *   - If `dataFormat=channelsFirst`:
         *       5D tensor with shape:
         *       `[batchSize, channels, pooledDepths, pooledRows, pooledCols]`
         *
         * @doc {heading: 'Layers', subheading: 'Pooling', namespace: 'layers'}
         */
        function averagePooling3d(args) {
            return new _pooling.AveragePooling3D(args);
        }
        function avgPool3d(args) {
            return averagePooling3d(args);
        }
        // For backwards compatibility.
        // See https://github.com/tensorflow/tfjs/issues/152
        function avgPooling3d(args) {
            return averagePooling3d(args);
        }
        /**
         * Global average pooling operation for temporal data.
         *
         * Input Shape: 3D tensor with shape: `[batchSize, steps, features]`.
         *
         * Output Shape: 2D tensor with shape: `[batchSize, features]`.
         *
         * @doc {heading: 'Layers', subheading: 'Pooling', namespace: 'layers'}
         */
        function globalAveragePooling1d(args) {
            return new _pooling.GlobalAveragePooling1D(args);
        }
        /**
         * Global average pooling operation for spatial data.
         *
         * Input shape:
         *   - If `dataFormat` is `CHANNEL_LAST`:
         *       4D tensor with shape: `[batchSize, rows, cols, channels]`.
         *   - If `dataFormat` is `CHANNEL_FIRST`:
         *       4D tensor with shape: `[batchSize, channels, rows, cols]`.
         *
         * Output shape:
         *   2D tensor with shape: `[batchSize, channels]`.
         *
         * @doc {heading: 'Layers', subheading: 'Pooling', namespace: 'layers'}
         */
        function globalAveragePooling2d(args) {
            return new _pooling.GlobalAveragePooling2D(args);
        }
        /**
         * Global max pooling operation for temporal data.
         *
         * Input Shape: 3D tensor with shape: `[batchSize, steps, features]`.
         *
         * Output Shape: 2D tensor with shape: `[batchSize, features]`.
         *
         * @doc {heading: 'Layers', subheading: 'Pooling', namespace: 'layers'}
         */
        function globalMaxPooling1d(args) {
            return new _pooling.GlobalMaxPooling1D(args);
        }
        /**
         * Global max pooling operation for spatial data.
         *
         * Input shape:
         *   - If `dataFormat` is `CHANNEL_LAST`:
         *       4D tensor with shape: `[batchSize, rows, cols, channels]`.
         *   - If `dataFormat` is `CHANNEL_FIRST`:
         *       4D tensor with shape: `[batchSize, channels, rows, cols]`.
         *
         * Output shape:
         *   2D tensor with shape: `[batchSize, channels]`.
         *
         * @doc {heading: 'Layers', subheading: 'Pooling', namespace: 'layers'}
         */
        function globalMaxPooling2d(args) {
            return new _pooling.GlobalMaxPooling2D(args);
        }
        /**
         * Max pooling operation for temporal data.
         *
         * Input shape:  `[batchSize, inLength, channels]`
         *
         * Output shape: `[batchSize, pooledLength, channels]`
         *
         * @doc {heading: 'Layers', subheading: 'Pooling', namespace: 'layers'}
         */
        function maxPooling1d(args) {
            return new _pooling.MaxPooling1D(args);
        }
        /**
         * Max pooling operation for spatial data.
         *
         * Input shape
         *   - If `dataFormat === CHANNEL_LAST`:
         *       4D tensor with shape:
         *       `[batchSize, rows, cols, channels]`
         *   - If `dataFormat === CHANNEL_FIRST`:
         *      4D tensor with shape:
         *       `[batchSize, channels, rows, cols]`
         *
         * Output shape
         *   - If `dataFormat=CHANNEL_LAST`:
         *       4D tensor with shape:
         *       `[batchSize, pooledRows, pooledCols, channels]`
         *   - If `dataFormat=CHANNEL_FIRST`:
         *       4D tensor with shape:
         *       `[batchSize, channels, pooledRows, pooledCols]`
         *
         * @doc {heading: 'Layers', subheading: 'Pooling', namespace: 'layers'}
         */
        function maxPooling2d(args) {
            return new _pooling.MaxPooling2D(args);
        }
        /**
         * Max pooling operation for 3D data.
         *
         * Input shape
         *   - If `dataFormat === channelsLast`:
         *       5D tensor with shape:
         *       `[batchSize, depths, rows, cols, channels]`
         *   - If `dataFormat === channelsFirst`:
         *      5D tensor with shape:
         *       `[batchSize, channels, depths, rows, cols]`
         *
         * Output shape
         *   - If `dataFormat=channelsLast`:
         *       5D tensor with shape:
         *       `[batchSize, pooledDepths, pooledRows, pooledCols, channels]`
         *   - If `dataFormat=channelsFirst`:
         *       5D tensor with shape:
         *       `[batchSize, channels, pooledDepths, pooledRows, pooledCols]`
         *
         * @doc {heading: 'Layers', subheading: 'Pooling', namespace: 'layers'}
         */
        function maxPooling3d(args) {
            return new _pooling.MaxPooling3D(args);
        }
        // Recurrent Layers.
        /**
         * Gated Recurrent Unit - Cho et al. 2014.
         *
         * This is an `RNN` layer consisting of one `GRUCell`. However, unlike
         * the underlying `GRUCell`, the `apply` method of `SimpleRNN` operates
         * on a sequence of inputs. The shape of the input (not including the first,
         * batch dimension) needs to be at least 2-D, with the first dimension being
         * time steps. For example:
         *
         * ```js
         * const rnn = tf.layers.gru({units: 8, returnSequences: true});
         *
         * // Create an input with 10 time steps.
         * const input = tf.input({shape: [10, 20]});
         * const output = rnn.apply(input);
         *
         * console.log(JSON.stringify(output.shape));
         * // [null, 10, 8]: 1st dimension is unknown batch size; 2nd dimension is the
         * // same as the sequence length of `input`, due to `returnSequences`: `true`;
         * // 3rd dimension is the `GRUCell`'s number of units.
         *
         * @doc {heading: 'Layers', subheading: 'Recurrent', namespace: 'layers'}
         */
        function gru(args) {
            return new _recurrent.GRU(args);
        }
        /**
         * Cell class for `GRU`.
         *
         * `GRUCell` is distinct from the `RNN` subclass `GRU` in that its
         * `apply` method takes the input data of only a single time step and returns
         * the cell's output at the time step, while `GRU` takes the input data
         * over a number of time steps. For example:
         *
         * ```js
         * const cell = tf.layers.gruCell({units: 2});
         * const input = tf.input({shape: [10]});
         * const output = cell.apply(input);
         *
         * console.log(JSON.stringify(output.shape));
         * // [null, 10]: This is the cell's output at a single time step. The 1st
         * // dimension is the unknown batch size.
         * ```
         *
         * Instance(s) of `GRUCell` can be used to construct `RNN` layers. The
         * most typical use of this workflow is to combine a number of cells into a
         * stacked RNN cell (i.e., `StackedRNNCell` internally) and use it to create an
         * RNN. For example:
         *
         * ```js
         * const cells = [
         *   tf.layers.gruCell({units: 4}),
         *   tf.layers.gruCell({units: 8}),
         * ];
         * const rnn = tf.layers.rnn({cell: cells, returnSequences: true});
         *
         * // Create an input with 10 time steps and a length-20 vector at each step.
         * const input = tf.input({shape: [10, 20]});
         * const output = rnn.apply(input);
         *
         * console.log(JSON.stringify(output.shape));
         * // [null, 10, 8]: 1st dimension is unknown batch size; 2nd dimension is the
         * // same as the sequence length of `input`, due to `returnSequences`: `true`;
         * // 3rd dimension is the last `gruCell`'s number of units.
         * ```
         *
         * To create an `RNN` consisting of only *one* `GRUCell`, use the
         * `tf.layers.gru`.
         *
         * @doc {heading: 'Layers', subheading: 'Recurrent', namespace: 'layers'}
         */
        function gruCell(args) {
            return new _recurrent.GRUCell(args);
        }
        /**
         * Long-Short Term Memory layer - Hochreiter 1997.
         *
         * This is an `RNN` layer consisting of one `LSTMCell`. However, unlike
         * the underlying `LSTMCell`, the `apply` method of `LSTM` operates
         * on a sequence of inputs. The shape of the input (not including the first,
         * batch dimension) needs to be at least 2-D, with the first dimension being
         * time steps. For example:
         *
         * ```js
         * const lstm = tf.layers.lstm({units: 8, returnSequences: true});
         *
         * // Create an input with 10 time steps.
         * const input = tf.input({shape: [10, 20]});
         * const output = lstm.apply(input);
         *
         * console.log(JSON.stringify(output.shape));
         * // [null, 10, 8]: 1st dimension is unknown batch size; 2nd dimension is the
         * // same as the sequence length of `input`, due to `returnSequences`: `true`;
         * // 3rd dimension is the `LSTMCell`'s number of units.
         *
         * @doc {heading: 'Layers', subheading: 'Recurrent', namespace: 'layers'}
         */
        function lstm(args) {
            return new _recurrent.LSTM(args);
        }
        /**
         * Cell class for `LSTM`.
         *
         * `LSTMCell` is distinct from the `RNN` subclass `LSTM` in that its
         * `apply` method takes the input data of only a single time step and returns
         * the cell's output at the time step, while `LSTM` takes the input data
         * over a number of time steps. For example:
         *
         * ```js
         * const cell = tf.layers.lstmCell({units: 2});
         * const input = tf.input({shape: [10]});
         * const output = cell.apply(input);
         *
         * console.log(JSON.stringify(output.shape));
         * // [null, 10]: This is the cell's output at a single time step. The 1st
         * // dimension is the unknown batch size.
         * ```
         *
         * Instance(s) of `LSTMCell` can be used to construct `RNN` layers. The
         * most typical use of this workflow is to combine a number of cells into a
         * stacked RNN cell (i.e., `StackedRNNCell` internally) and use it to create an
         * RNN. For example:
         *
         * ```js
         * const cells = [
         *   tf.layers.lstmCell({units: 4}),
         *   tf.layers.lstmCell({units: 8}),
         * ];
         * const rnn = tf.layers.rnn({cell: cells, returnSequences: true});
         *
         * // Create an input with 10 time steps and a length-20 vector at each step.
         * const input = tf.input({shape: [10, 20]});
         * const output = rnn.apply(input);
         *
         * console.log(JSON.stringify(output.shape));
         * // [null, 10, 8]: 1st dimension is unknown batch size; 2nd dimension is the
         * // same as the sequence length of `input`, due to `returnSequences`: `true`;
         * // 3rd dimension is the last `lstmCell`'s number of units.
         * ```
         *
         * To create an `RNN` consisting of only *one* `LSTMCell`, use the
         * `tf.layers.lstm`.
         *
         * @doc {heading: 'Layers', subheading: 'Recurrent', namespace: 'layers'}
         */
        function lstmCell(args) {
            return new _recurrent.LSTMCell(args);
        }
        /**
         * Fully-connected RNN where the output is to be fed back to input.
         *
         * This is an `RNN` layer consisting of one `SimpleRNNCell`. However, unlike
         * the underlying `SimpleRNNCell`, the `apply` method of `SimpleRNN` operates
         * on a sequence of inputs. The shape of the input (not including the first,
         * batch dimension) needs to be at least 2-D, with the first dimension being
         * time steps. For example:
         *
         * ```js
         * const rnn = tf.layers.simpleRNN({units: 8, returnSequences: true});
         *
         * // Create an input with 10 time steps.
         * const input = tf.input({shape: [10, 20]});
         * const output = rnn.apply(input);
         *
         * console.log(JSON.stringify(output.shape));
         * // [null, 10, 8]: 1st dimension is unknown batch size; 2nd dimension is the
         * // same as the sequence length of `input`, due to `returnSequences`: `true`;
         * // 3rd dimension is the `SimpleRNNCell`'s number of units.
         * ```
         *
         * @doc {heading: 'Layers', subheading: 'Recurrent', namespace: 'layers'}
         */
        function simpleRNN(args) {
            return new _recurrent.SimpleRNN(args);
        }
        /**
         * Cell class for `SimpleRNN`.
         *
         * `SimpleRNNCell` is distinct from the `RNN` subclass `SimpleRNN` in that its
         * `apply` method takes the input data of only a single time step and returns
         * the cell's output at the time step, while `SimpleRNN` takes the input data
         * over a number of time steps. For example:
         *
         * ```js
         * const cell = tf.layers.simpleRNNCell({units: 2});
         * const input = tf.input({shape: [10]});
         * const output = cell.apply(input);
         *
         * console.log(JSON.stringify(output.shape));
         * // [null, 10]: This is the cell's output at a single time step. The 1st
         * // dimension is the unknown batch size.
         * ```
         *
         * Instance(s) of `SimpleRNNCell` can be used to construct `RNN` layers. The
         * most typical use of this workflow is to combine a number of cells into a
         * stacked RNN cell (i.e., `StackedRNNCell` internally) and use it to create an
         * RNN. For example:
         *
         * ```js
         * const cells = [
         *   tf.layers.simpleRNNCell({units: 4}),
         *   tf.layers.simpleRNNCell({units: 8}),
         * ];
         * const rnn = tf.layers.rnn({cell: cells, returnSequences: true});
         *
         * // Create an input with 10 time steps and a length-20 vector at each step.
         * const input = tf.input({shape: [10, 20]});
         * const output = rnn.apply(input);
         *
         * console.log(JSON.stringify(output.shape));
         * // [null, 10, 8]: 1st dimension is unknown batch size; 2nd dimension is the
         * // same as the sequence length of `input`, due to `returnSequences`: `true`;
         * // 3rd dimension is the last `SimpleRNNCell`'s number of units.
         * ```
         *
         * To create an `RNN` consisting of only *one* `SimpleRNNCell`, use the
         * `tf.layers.simpleRNN`.
         *
         * @doc {heading: 'Layers', subheading: 'Recurrent', namespace: 'layers'}
         */
        function simpleRNNCell(args) {
            return new _recurrent.SimpleRNNCell(args);
        }
        /**
         * Convolutional LSTM layer - Xingjian Shi 2015.
         *
         * This is a `ConvRNN2D` layer consisting of one `ConvLSTM2DCell`. However,
         * unlike the underlying `ConvLSTM2DCell`, the `apply` method of `ConvLSTM2D`
         * operates on a sequence of inputs. The shape of the input (not including the
         * first, batch dimension) needs to be 4-D, with the first dimension being time
         * steps. For example:
         *
         * ```js
         * const filters = 3;
         * const kernelSize = 3;
         *
         * const batchSize = 4;
         * const sequenceLength = 2;
         * const size = 5;
         * const channels = 3;
         *
         * const inputShape = [batchSize, sequenceLength, size, size, channels];
         * const input = tf.ones(inputShape);
         *
         * const layer = tf.layers.convLstm2d({filters, kernelSize});
         *
         * const output = layer.apply(input);
         * ```
         */
        /** @doc {heading: 'Layers', subheading: 'Recurrent', namespace: 'layers'} */
        function convLstm2d(args) {
            return new _convolutional_recurrent.ConvLSTM2D(args);
        }
        /**
         * Cell class for `ConvLSTM2D`.
         *
         * `ConvLSTM2DCell` is distinct from the `ConvRNN2D` subclass `ConvLSTM2D` in
         * that its `call` method takes the input data of only a single time step and
         * returns the cell's output at the time step, while `ConvLSTM2D` takes the
         * input data over a number of time steps. For example:
         *
         * ```js
         * const filters = 3;
         * const kernelSize = 3;
         *
         * const sequenceLength = 1;
         * const size = 5;
         * const channels = 3;
         *
         * const inputShape = [sequenceLength, size, size, channels];
         * const input = tf.ones(inputShape);
         *
         * const cell = tf.layers.convLstm2dCell({filters, kernelSize});
         *
         * cell.build(input.shape);
         *
         * const outputSize = size - kernelSize + 1;
         * const outShape = [sequenceLength, outputSize, outputSize, filters];
         *
         * const initialH = tf.zeros(outShape);
         * const initialC = tf.zeros(outShape);
         *
         * const [o, h, c] = cell.call([input, initialH, initialC], {});
         * ```
         */
        /** @doc {heading: 'Layers', subheading: 'Recurrent', namespace: 'layers'} */
        function convLstm2dCell(args) {
            return new _convolutional_recurrent.ConvLSTM2DCell(args);
        }
        /**
         * Base class for recurrent layers.
         *
         * Input shape:
         *   3D tensor with shape `[batchSize, timeSteps, inputDim]`.
         *
         * Output shape:
         *   - if `returnState`, an Array of tensors (i.e., `tf.Tensor`s). The first
         *     tensor is the output. The remaining tensors are the states at the
         *     last time step, each with shape `[batchSize, units]`.
         *   - if `returnSequences`, the output will have shape
         *     `[batchSize, timeSteps, units]`.
         *   - else, the output will have shape `[batchSize, units]`.
         *
         * Masking:
         *   This layer supports masking for input data with a variable number
         *   of timesteps. To introduce masks to your data,
         *   use an embedding layer with the `mask_zero` parameter
         *   set to `True`.
         *
         * Notes on using statefulness in RNNs:
         *   You can set RNN layers to be 'stateful', which means that the states
         *   computed for the samples in one batch will be reused as initial states
         *   for the samples in the next batch. This assumes a one-to-one mapping
         *   between samples in different successive batches.
         *
         *   To enable statefulness:
         *     - specify `stateful: true` in the layer constructor.
         *     - specify a fixed batch size for your model, by passing
         *       if sequential model:
         *         `batchInputShape=[...]` to the first layer in your model.
         *       else for functional model with 1 or more Input layers:
         *         `batchShape=[...]` to all the first layers in your model.
         *       This is the expected shape of your inputs *including the batch size*.
         *       It should be a tuple of integers, e.g. `(32, 10, 100)`.
         *     - specify `shuffle=False` when calling fit().
         *
         *   To reset the states of your model, call `.resetStates()` on either
         *   a specific layer, or on your entire model.
         *
         * Note on specifying the initial state of RNNs
         *   You can specify the initial state of RNN layers symbolically by
         *   calling them with the option `initialState`. The value of
         *   `initialState` should be a tensor or list of tensors representing
         *   the initial state of the RNN layer.
         *
         *   You can specify the initial state of RNN layers numerically by
         *   calling `resetStates` with the keyword argument `states`. The value of
         *   `states` should be a numpy array or list of numpy arrays representing
         *   the initial state of the RNN layer.
         *
         * Note on passing external constants to RNNs
         *   You can pass "external" constants to the cell using the `constants`
         *   keyword argument of `RNN.call` method. This requires that the `cell.call`
         *   method accepts the same keyword argument `constants`. Such constants
         *   can be used to condition the cell transformation on additional static
         *   inputs (not changing over time), a.k.a. an attention mechanism.
         *
         * @doc {heading: 'Layers', subheading: 'Recurrent', namespace: 'layers'}
         */
        function rnn(args) {
            return new _recurrent.RNN(args);
        }
        /**
         * Wrapper allowing a stack of RNN cells to behave as a single cell.
         *
         * Used to implement efficient stacked RNNs.
         *
         * @doc {heading: 'Layers', subheading: 'Recurrent', namespace: 'layers'}
         */
        function stackedRNNCells(args) {
            return new _recurrent.StackedRNNCells(args);
        }
        // Wrapper Layers.
        /** @doc {heading: 'Layers', subheading: 'Wrapper', namespace: 'layers'} */
        function bidirectional(args) {
            return new _wrappers.Bidirectional(args);
        }
        /**
         * This wrapper applies a layer to every temporal slice of an input.
         *
         * The input should be at least 3D,  and the dimension of the index `1` will be
         * considered to be the temporal dimension.
         *
         * Consider a batch of 32 samples, where each sample is a sequence of 10 vectors
         * of 16 dimensions. The batch input shape of the layer is then `[32,  10,
         * 16]`, and the `inputShape`, not including the sample dimension, is
         * `[10, 16]`.
         *
         * You can then use `TimeDistributed` to apply a `Dense` layer to each of the 10
         * timesteps, independently:
         *
         * ```js
         * const model = tf.sequential();
         * model.add(tf.layers.timeDistributed({
         *   layer: tf.layers.dense({units: 8}),
         *   inputShape: [10, 16],
         * }));
         *
         * // Now model.outputShape = [null, 10, 8].
         * // The output will then have shape `[32, 10, 8]`.
         *
         * // In subsequent layers, there is no need for `inputShape`:
         * model.add(tf.layers.timeDistributed({layer: tf.layers.dense({units: 32})}));
         * console.log(JSON.stringify(model.outputs[0].shape));
         * // Now model.outputShape = [null, 10, 32].
         * ```
         *
         * The output will then have shape `[32, 10, 32]`.
         *
         * `TimeDistributed` can be used with arbitrary layers, not just `Dense`, for
         * instance a `Conv2D` layer.
         *
         * ```js
         * const model = tf.sequential();
         * model.add(tf.layers.timeDistributed({
         *   layer: tf.layers.conv2d({filters: 64, kernelSize: [3, 3]}),
         *   inputShape: [10, 299, 299, 3],
         * }));
         * console.log(JSON.stringify(model.outputs[0].shape));
         * ```
         *
         * @doc {heading: 'Layers', subheading: 'Wrapper', namespace: 'layers'}
         */
        function timeDistributed(args) {
            return new _wrappers.TimeDistributed(args);
        }
        // Aliases for pooling.
        const globalMaxPool1d = globalMaxPooling1d;
        exports.globalMaxPool1d = globalMaxPool1d;
        const globalMaxPool2d = globalMaxPooling2d;
        exports.globalMaxPool2d = globalMaxPool2d;
        const maxPool1d = maxPooling1d;
        exports.maxPool1d = maxPool1d;
        const maxPool2d = maxPooling2d;
        exports.maxPool2d = maxPool2d;
        /**
         * Apply additive zero-centered Gaussian noise.
         *
         * As it is a regularization layer, it is only active at training time.
         *
         * This is useful to mitigate overfitting
         * (you could see it as a form of random data augmentation).
         * Gaussian Noise (GS) is a natural choice as corruption process
         * for real valued inputs.
         *
         * # Arguments
         * stddev: float, standard deviation of the noise distribution.
         *
         * # Input shape
         * Arbitrary. Use the keyword argument `input_shape`
         * (tuple of integers, does not include the samples axis)
         * when using this layer as the first layer in a model.
         *
         * # Output shape
         * Same shape as input.
         *
         * @doc {heading: 'Layers', subheading: 'Noise', namespace: 'layers'}
         */
        function gaussianNoise(args) {
            return new _noise.GaussianNoise(args);
        }
        /**
         * Apply multiplicative 1-centered Gaussian noise.
         *
         * As it is a regularization layer, it is only active at training time.
         *
         * Arguments:
         *   - `rate`: float, drop probability (as with `Dropout`).
         *     The multiplicative noise will have
         *     standard deviation `sqrt(rate / (1 - rate))`.
         *
         * Input shape:
         *   Arbitrary. Use the keyword argument `inputShape`
         *   (tuple of integers, does not include the samples axis)
         *   when using this layer as the first layer in a model.
         *
         * Output shape:
         *   Same shape as input.
         *
         * References:
         *   - [Dropout: A Simple Way to Prevent Neural Networks from Overfitting](
         *      http://www.cs.toronto.edu/~rsalakhu/papers/srivastava14a.pdf)
         *
         * @doc {heading: 'Layers', subheading: 'Noise', namespace: 'layers'}
         */
        function gaussianDropout(args) {
            return new _noise.GaussianDropout(args);
        }
        /**
         * Applies Alpha Dropout to the input.
         *
         * As it is a regularization layer, it is only active at training time.
         *
         * Alpha Dropout is a `Dropout` that keeps mean and variance of inputs
         * to their original values, in order to ensure the self-normalizing property
         * even after this dropout.
         * Alpha Dropout fits well to Scaled Exponential Linear Units
         * by randomly setting activations to the negative saturation value.
         *
         * Arguments:
         *   - `rate`: float, drop probability (as with `Dropout`).
         *     The multiplicative noise will have
         *     standard deviation `sqrt(rate / (1 - rate))`.
         *   - `noise_shape`: A 1-D `Tensor` of type `int32`, representing the
         *     shape for randomly generated keep/drop flags.
         *
         * Input shape:
         *   Arbitrary. Use the keyword argument `inputShape`
         *   (tuple of integers, does not include the samples axis)
         *   when using this layer as the first layer in a model.
         *
         * Output shape:
         *   Same shape as input.
         *
         * References:
         *   - [Self-Normalizing Neural Networks](https://arxiv.org/abs/1706.02515)
         *
         * @doc {heading: 'Layers', subheading: 'Noise', namespace: 'layers'}
         */
        function alphaDropout(args) {
            return new _noise.AlphaDropout(args);
        }
        /**
         * Masks a sequence by using a mask value to skip timesteps.
         *
         * If all features for a given sample timestep are equal to `mask_value`,
         * then the sample timestep will be masked (skipped) in all downstream layers
         * (as long as they support masking).
         *
         * If any downstream layer does not support masking yet receives such
         * an input mask, an exception will be raised.
         *
         * Arguments:
         *   - `maskValue`: Either None or mask value to skip.
         *
         * Input shape:
         *   Arbitrary. Use the keyword argument `inputShape`
         *   (tuple of integers, does not include the samples axis)
         *   when using this layer as the first layer in a model.
         *
         * Output shape:
         *   Same shape as input.
         *
         * @doc {heading: 'Layers', subheading: 'Mask', namespace: 'layers'}
         */
        function masking(args) {
            return new _core.Masking(args);
        }
        /**
         * A preprocessing layer which rescales input values to a new range.
         *
         * This layer rescales every value of an input (often an image) by multiplying
         * by `scale` and adding `offset`.
         *
         * For instance:
         * 1. To rescale an input in the ``[0, 255]`` range
         * to be in the `[0, 1]` range, you would pass `scale=1/255`.
         * 2. To rescale an input in the ``[0, 255]`` range to be in the `[-1, 1]`
         * range, you would pass `scale=1./127.5, offset=-1`.
         * The rescaling is applied both during training and inference. Inputs can be
         * of integer or floating point dtype, and by default the layer will output
         * floats.
         *
         * Arguments:
         *   - `scale`: Float, the scale to apply to the inputs.
         *   - `offset`: Float, the offset to apply to the inputs.
         *
         * Input shape:
         *   Arbitrary.
         *
         * Output shape:
         *   Same as input.
         *
         * @doc {heading: 'Layers', subheading: 'Rescaling', namespace: 'layers'}
         */
        function rescaling(args) {
            return new _image_preprocessing.Rescaling(args);
        }
        /**
         *  A preprocessing layer which center crops images.
         *
         *   This layers crops the central portion of the images to a target size. If an
         *   image is smaller than the target size, it will be resized and cropped so as
         *   to return the largest possible window in the image that matches the target
         *   aspect ratio.
         *
         *   Input pixel values can be of any range (e.g. `[0., 1.)` or `[0, 255]`) and
         *   of integer or floating point dtype.
         *
         *   If the input height/width is even and the target height/width is odd (or
         *   inversely), the input image is left-padded by 1 pixel.
         *
         *   Arguments:
         *     `height`: Integer, the height of the output shape.
         *     `width`: Integer, the width of the output shape.
         *
         *   Input shape:
         *     3D (unbatched) or 4D (batched) tensor with shape:
         *     `(..., height, width, channels)`, in `channelsLast` format.
         *
         *   Output shape:
         *     3D (unbatched) or 4D (batched) tensor with shape:
         *     `(..., targetHeight, targetWidth, channels)`.
         *
         *
         *  @doc {heading: 'Layers', subheading: 'CenterCrop', namespace: 'layers'}
         */
        function centerCrop(args) {
            return new _center_crop.CenterCrop(args);
        }
        /**
         * A preprocessing layer which resizes images.
         * This layer resizes an image input to a target height and width. The input
         * should be a 4D (batched) or 3D (unbatched) tensor in `"channels_last"`
         * format.  Input pixel values can be of any range (e.g. `[0., 1.)` or `[0,
         * 255]`) and of interger or floating point dtype. By default, the layer will
         * output floats.
         *
         * Arguments:
         *   - `height`: number, the height for the output tensor.
         *   - `width`: number, the width for the output tensor.
         *   - `interpolation`: string, the method for image resizing interpolation.
         *   - `cropToAspectRatio`: boolean, whether to keep image aspect ratio.
         *
         * Input shape:
         *   Arbitrary.
         *
         * Output shape:
         *   height, width, num channels.
         *
         * @doc {heading: 'Layers', subheading: 'Resizing', namespace: 'layers'}
         */
        function resizing(args) {
            return new _image_resizing.Resizing(args);
        }
        /**
         * A preprocessing layer which encodes integer features.
         *
         * This layer provides options for condensing data into a categorical encoding
         * when the total number of tokens are known in advance. It accepts integer
         * values as inputs, and it outputs a dense representation of those
         * inputs.
         *
         * Arguments:
         *
         * numTokens: The total number of tokens the layer should support. All
         *  inputs to the layer must integers in the range `0 <= value <
         *  numTokens`, or an error will be thrown.
         *
         * outputMode: Specification for the output of the layer.
         *  Defaults to `multiHot`. Values can be `oneHot`, `multiHot` or
         *  `count`, configuring the layer as follows:
         *
         *    oneHot: Encodes each individual element in the input into an
         *      array of `numTokens` size, containing a 1 at the element index. If
         *      the last dimension is size 1, will encode on that dimension. If the
         *      last dimension is not size 1, will append a new dimension for the
         *      encoded output.
         *
         *    multiHot: Encodes each sample in the input into a single array
         *     of `numTokens` size, containing a 1 for each vocabulary term
         *     present in the sample. Treats the last dimension as the sample
         *     dimension, if input shape is `(..., sampleLength)`, output shape
         *     will be `(..., numTokens)`.
         *
         *    count: Like `multiHot`, but the int array contains a count of
         *     the number of times the token at that index appeared in the sample.
         *
         *  For all output modes, currently only output up to rank 2 is supported.
         *   Call arguments:
         *    inputs: A 1D or 2D tensor of integer inputs.
         *    countWeights: A tensor in the same shape as `inputs` indicating the
         *    weight for each sample value when summing up in `count` mode. Not used
         *    in `multiHot` or `oneHot` modes.
         *
         *
         * @doc {heading: 'Layers', subheading: 'CategoryEncoding', namespace: 'layers'}
         */
        function categoryEncoding(args) {
            return new _category_encoding.CategoryEncoding(args);
        }

    }
        , {
        "./engine/input_layer": 523,
        "./engine/topology": 524,
        "./exports": 530,
        "./layers/advanced_activations": 542,
        "./layers/convolutional": 543,
        "./layers/convolutional_depthwise": 544,
        "./layers/convolutional_recurrent": 545,
        "./layers/core": 546,
        "./layers/embeddings": 547,
        "./layers/merge": 548,
        "./layers/noise": 549,
        "./layers/normalization": 550,
        "./layers/padding": 551,
        "./layers/pooling": 552,
        "./layers/preprocessing/category_encoding": 553,
        "./layers/preprocessing/center_crop": 554,
        "./layers/preprocessing/image_preprocessing": 555,
        "./layers/preprocessing/image_resizing": 556,
        "./layers/recurrent": 558,
        "./layers/wrappers": 560
    }],
    534: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.MAPE = MAPE;
        exports.MSE = MSE;
        exports.binaryAccuracy = binaryAccuracy;
        exports.binaryCrossentropy = binaryCrossentropy;
        exports.categoricalAccuracy = categoricalAccuracy;
        exports.categoricalCrossentropy = categoricalCrossentropy;
        exports.cosineProximity = cosineProximity;
        exports.mape = mape;
        exports.meanAbsoluteError = meanAbsoluteError;
        exports.meanAbsolutePercentageError = meanAbsolutePercentageError;
        exports.meanSquaredError = meanSquaredError;
        exports.mse = mse;
        exports.precision = precision;
        exports.recall = recall;
        exports.sparseCategoricalAccuracy = sparseCategoricalAccuracy;
        var losses = _interopRequireWildcard(require("./losses"));
        var metrics = _interopRequireWildcard(require("./metrics"));
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * Binary accuracy metric function.
         *
         * `yTrue` and `yPred` can have 0-1 values. Example:
         * ```js
         * const x = tf.tensor2d([[1, 1, 1, 1], [0, 0, 0, 0]], [2, 4]);
         * const y = tf.tensor2d([[1, 0, 1, 0], [0, 0, 0, 1]], [2, 4]);
         * const accuracy = tf.metrics.binaryAccuracy(x, y);
         * accuracy.print();
         * ```
         *
         * `yTrue` and `yPred` can also have floating-number values between 0 and 1, in
         * which case the values will be thresholded at 0.5 to yield 0-1 values (i.e.,
         * a value >= 0.5 and <= 1.0 is interpreted as 1).
         *
         * Example:
         * ```js
         * const x = tf.tensor1d([1, 1, 1, 1, 0, 0, 0, 0]);
         * const y = tf.tensor1d([0.2, 0.4, 0.6, 0.8, 0.2, 0.3, 0.4, 0.7]);
         * const accuracy = tf.metrics.binaryAccuracy(x, y);
         * accuracy.print();
         * ```
         *
         * @param yTrue Binary Tensor of truth.
         * @param yPred Binary Tensor of prediction.
         * @return Accuracy Tensor.
         *
         * @doc {heading: 'Metrics', namespace: 'metrics'}
         */
        function binaryAccuracy(yTrue, yPred) {
            return metrics.binaryAccuracy(yTrue, yPred);
        }
        /**
         * Binary crossentropy metric function.
         *
         * Example:
         * ```js
         * const x = tf.tensor2d([[0], [1], [1], [1]]);
         * const y = tf.tensor2d([[0], [0], [0.5], [1]]);
         * const crossentropy = tf.metrics.binaryCrossentropy(x, y);
         * crossentropy.print();
         * ```
         *
         * @param yTrue Binary Tensor of truth.
         * @param yPred Binary Tensor of prediction, probabilities for the `1` case.
         * @return Accuracy Tensor.
         *
         * @doc {heading: 'Metrics', namespace: 'metrics'}
         */
        function binaryCrossentropy(yTrue, yPred) {
            return metrics.binaryCrossentropy(yTrue, yPred);
        }
        /**
         * Sparse categorical accuracy metric function.
         *
         * Example:
         * ```js
         *
         * const yTrue = tf.tensor1d([1, 1, 2, 2, 0]);
         * const yPred = tf.tensor2d(
         *      [[0, 1, 0], [1, 0, 0], [0, 0.4, 0.6], [0, 0.6, 0.4], [0.7, 0.3, 0]]);
         * const crossentropy = tf.metrics.sparseCategoricalAccuracy(yTrue, yPred);
         * crossentropy.print();
         * ```
         *
         * @param yTrue True labels: indices.
         * @param yPred Predicted probabilities or logits.
         * @returns Accuracy tensor.
         *
         * @doc {heading: 'Metrics', namespace: 'metrics'}
         */
        function sparseCategoricalAccuracy(yTrue, yPred) {
            return metrics.sparseCategoricalAccuracy(yTrue, yPred);
        }
        /**
         * Categorical accuracy metric function.
         *
         * Example:
         * ```js
         * const x = tf.tensor2d([[0, 0, 0, 1], [0, 0, 0, 1]]);
         * const y = tf.tensor2d([[0.1, 0.8, 0.05, 0.05], [0.1, 0.05, 0.05, 0.8]]);
         * const accuracy = tf.metrics.categoricalAccuracy(x, y);
         * accuracy.print();
         * ```
         *
         * @param yTrue Binary Tensor of truth: one-hot encoding of categories.
         * @param yPred Binary Tensor of prediction: probabilities or logits for the
         *   same categories as in `yTrue`.
         * @return Accuracy Tensor.
         *
         * @doc {heading: 'Metrics', namespace: 'metrics'}
         */
        function categoricalAccuracy(yTrue, yPred) {
            return metrics.categoricalAccuracy(yTrue, yPred);
        }
        /**
         * Categorical crossentropy between an output tensor and a target tensor.
         *
         * @param target A tensor of the same shape as `output`.
         * @param output A tensor resulting from a softmax (unless `fromLogits` is
         *  `true`, in which case `output` is expected to be the logits).
         * @param fromLogits Boolean, whether `output` is the result of a softmax, or is
         *   a tensor of logits.
         *
         * @doc {heading: 'Metrics', namespace: 'metrics'}
         */
        function categoricalCrossentropy(yTrue, yPred) {
            return metrics.categoricalCrossentropy(yTrue, yPred);
        }
        /**
         * Computes the precision of the predictions with respect to the labels.
         *
         * Example:
         * ```js
         * const x = tf.tensor2d(
         *    [
         *      [0, 0, 0, 1],
         *      [0, 1, 0, 0],
         *      [0, 0, 0, 1],
         *      [1, 0, 0, 0],
         *      [0, 0, 1, 0]
         *    ]
         * );
         *
         * const y = tf.tensor2d(
         *    [
         *      [0, 0, 1, 0],
         *      [0, 1, 0, 0],
         *      [0, 0, 0, 1],
         *      [0, 1, 0, 0],
         *      [0, 1, 0, 0]
         *    ]
         * );
         *
         * const precision = tf.metrics.precision(x, y);
         * precision.print();
         * ```
         *
         * @param yTrue The ground truth values. Expected to contain only 0-1 values.
         * @param yPred The predicted values. Expected to contain only 0-1 values.
         * @return Precision Tensor.
         *
         * @doc {heading: 'Metrics', namespace: 'metrics'}
         */
        function precision(yTrue, yPred) {
            return metrics.precision(yTrue, yPred);
        }
        /**
         * Computes the recall of the predictions with respect to the labels.
         *
         * Example:
         * ```js
         * const x = tf.tensor2d(
         *    [
         *      [0, 0, 0, 1],
         *      [0, 1, 0, 0],
         *      [0, 0, 0, 1],
         *      [1, 0, 0, 0],
         *      [0, 0, 1, 0]
         *    ]
         * );
         *
         * const y = tf.tensor2d(
         *    [
         *      [0, 0, 1, 0],
         *      [0, 1, 0, 0],
         *      [0, 0, 0, 1],
         *      [0, 1, 0, 0],
         *      [0, 1, 0, 0]
         *    ]
         * );
         *
         * const recall = tf.metrics.recall(x, y);
         * recall.print();
         * ```
         *
         * @param yTrue The ground truth values. Expected to contain only 0-1 values.
         * @param yPred The predicted values. Expected to contain only 0-1 values.
         * @return Recall Tensor.
         *
         * @doc {heading: 'Metrics', namespace: 'metrics'}
         */
        function recall(yTrue, yPred) {
            return metrics.recall(yTrue, yPred);
        }
        /**
         * Loss or metric function: Cosine proximity.
         *
         * Mathematically, cosine proximity is defined as:
         *   `-sum(l2Normalize(yTrue) * l2Normalize(yPred))`,
         * wherein `l2Normalize()` normalizes the L2 norm of the input to 1 and `*`
         * represents element-wise multiplication.
         *
         * ```js
         * const yTrue = tf.tensor2d([[1, 0], [1, 0]]);
         * const yPred = tf.tensor2d([[1 / Math.sqrt(2), 1 / Math.sqrt(2)], [0, 1]]);
         * const proximity = tf.metrics.cosineProximity(yTrue, yPred);
         * proximity.print();
         * ```
         *
         * @param yTrue Truth Tensor.
         * @param yPred Prediction Tensor.
         * @return Cosine proximity Tensor.
         *
         * @doc {heading: 'Metrics', namespace: 'metrics'}
         */
        function cosineProximity(yTrue, yPred) {
            return losses.cosineProximity(yTrue, yPred);
        }
        /**
         * Loss or metric function: Mean absolute error.
         *
         * Mathematically, mean absolute error is defined as:
         *   `mean(abs(yPred - yTrue))`,
         * wherein the `mean` is applied over feature dimensions.
         *
         * ```js
         * const yTrue = tf.tensor2d([[0, 1], [0, 0], [2, 3]]);
         * const yPred = tf.tensor2d([[0, 1], [0, 1], [-2, -3]]);
         * const mse = tf.metrics.meanAbsoluteError(yTrue, yPred);
         * mse.print();
         * ```
         *
         * @param yTrue Truth Tensor.
         * @param yPred Prediction Tensor.
         * @return Mean absolute error Tensor.
         *
         * @doc {heading: 'Metrics', namespace: 'metrics'}
         */
        function meanAbsoluteError(yTrue, yPred) {
            return losses.meanAbsoluteError(yTrue, yPred);
        }
        /**
         * Loss or metric function: Mean absolute percentage error.
         *
         * ```js
         * const yTrue = tf.tensor2d([[0, 1], [10, 20]]);
         * const yPred = tf.tensor2d([[0, 1], [11, 24]]);
         * const mse = tf.metrics.meanAbsolutePercentageError(yTrue, yPred);
         * mse.print();
         * ```
         *
         * Aliases: `tf.metrics.MAPE`, `tf.metrics.mape`.
         *
         * @param yTrue Truth Tensor.
         * @param yPred Prediction Tensor.
         * @return Mean absolute percentage error Tensor.
         *
         * @doc {heading: 'Metrics', namespace: 'metrics'}
         */
        function meanAbsolutePercentageError(yTrue, yPred) {
            return losses.meanAbsolutePercentageError(yTrue, yPred);
        }
        function MAPE(yTrue, yPred) {
            return losses.meanAbsolutePercentageError(yTrue, yPred);
        }
        function mape(yTrue, yPred) {
            return losses.meanAbsolutePercentageError(yTrue, yPred);
        }
        /**
         * Loss or metric function: Mean squared error.
         *
         * ```js
         * const yTrue = tf.tensor2d([[0, 1], [3, 4]]);
         * const yPred = tf.tensor2d([[0, 1], [-3, -4]]);
         * const mse = tf.metrics.meanSquaredError(yTrue, yPred);
         * mse.print();
         * ```
         *
         * Aliases: `tf.metrics.MSE`, `tf.metrics.mse`.
         *
         * @param yTrue Truth Tensor.
         * @param yPred Prediction Tensor.
         * @return Mean squared error Tensor.
         *
         * @doc {heading: 'Metrics', namespace: 'metrics'}
         */
        function meanSquaredError(yTrue, yPred) {
            return losses.meanSquaredError(yTrue, yPred);
        }
        function MSE(yTrue, yPred) {
            return losses.meanSquaredError(yTrue, yPred);
        }
        function mse(yTrue, yPred) {
            return losses.meanSquaredError(yTrue, yPred);
        }

    }
        , {
        "./losses": 562,
        "./metrics": 563
    }],
    535: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        Object.defineProperty(exports, "modelFromJSON", {
            enumerable: true,
            get: function () {
                return _models.modelFromJSON;
            }
        });
        var _models = require("./models");

    }
        , {
        "./models": 564
    }],
    536: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.l1 = l1;
        exports.l1l2 = l1l2;
        exports.l2 = l2;
        var regularizers = _interopRequireWildcard(require("./regularizers"));
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2018 Google LLC
         *
         * Use of this source code is governed by an MIT-style
         * license that can be found in the LICENSE file or at
         * https://opensource.org/licenses/MIT.
         * =============================================================================
         */

        // tslint:disable-next-line:max-line-length

        /**
         * Regularizer for L1 and L2 regularization.
         *
         * Adds a term to the loss to penalize large weights:
         * loss += sum(l1 * abs(x)) + sum(l2 * x^2)
         *
         * @doc {heading: 'Regularizers', namespace: 'regularizers'}
         */
        function l1l2(config) {
            return new regularizers.L1L2(config);
        }
        /**
         * Regularizer for L1 regularization.
         *
         * Adds a term to the loss to penalize large weights:
         * loss += sum(l1 * abs(x))
         * @param args l1 config.
         *
         * @doc {heading: 'Regularizers', namespace: 'regularizers'}
         */
        function l1(config) {
            return regularizers.l1(config);
        }
        /**
         * Regularizer for L2 regularization.
         *
         * Adds a term to the loss to penalize large weights:
         * loss += sum(l2 * x^2)
         * @param args l2 config.
         *
         * @doc {heading: 'Regularizers', namespace: 'regularizers'}
         */
        function l2(config) {
            return regularizers.l2(config);
        }

    }
        , {
        "./regularizers": 566
    }],
    537: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.ENV = void 0;
        var _tfjsCore = require("@tensorflow/tfjs-core");
        var _executor = require("./engine/executor");
        /**
         * @license
         * Copyright 2022 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const ENV = (0,
            _tfjsCore.env)();
        /** The max number of entries for the caches of layers' topological sort. */
        exports.ENV = ENV;
        ENV.registerFlag('TOPOLOGICAL_SORT_CACHE_MAX_ENTRIES', () => 100, _executor.updateCacheMaxEntries);

    }
        , {
        "./engine/executor": 522,
        "@tensorflow/tfjs-core": 506
    }],
    538: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        Object.defineProperty(exports, "Callback", {
            enumerable: true,
            get: function () {
                return _callbacks.Callback;
            }
        });
        Object.defineProperty(exports, "CallbackList", {
            enumerable: true,
            get: function () {
                return _base_callbacks.CallbackList;
            }
        });
        Object.defineProperty(exports, "CustomCallback", {
            enumerable: true,
            get: function () {
                return _base_callbacks.CustomCallback;
            }
        });
        Object.defineProperty(exports, "EarlyStopping", {
            enumerable: true,
            get: function () {
                return _callbacks.EarlyStopping;
            }
        });
        Object.defineProperty(exports, "History", {
            enumerable: true,
            get: function () {
                return _base_callbacks.History;
            }
        });
        Object.defineProperty(exports, "InputSpec", {
            enumerable: true,
            get: function () {
                return _topology.InputSpec;
            }
        });
        Object.defineProperty(exports, "LayerVariable", {
            enumerable: true,
            get: function () {
                return _variables.LayerVariable;
            }
        });
        Object.defineProperty(exports, "LayersModel", {
            enumerable: true,
            get: function () {
                return _training.LayersModel;
            }
        });
        Object.defineProperty(exports, "RNN", {
            enumerable: true,
            get: function () {
                return _recurrent.RNN;
            }
        });
        Object.defineProperty(exports, "Sequential", {
            enumerable: true,
            get: function () {
                return _models.Sequential;
            }
        });
        Object.defineProperty(exports, "SymbolicTensor", {
            enumerable: true,
            get: function () {
                return _topology.SymbolicTensor;
            }
        });
        Object.defineProperty(exports, "callbacks", {
            enumerable: true,
            get: function () {
                return _callbacks.callbacks;
            }
        });
        exports.initializers = exports.constraints = void 0;
        Object.defineProperty(exports, "input", {
            enumerable: true,
            get: function () {
                return _exports.input;
            }
        });
        exports.layers = void 0;
        Object.defineProperty(exports, "loadLayersModel", {
            enumerable: true,
            get: function () {
                return _exports.loadLayersModel;
            }
        });
        exports.metrics = void 0;
        Object.defineProperty(exports, "model", {
            enumerable: true,
            get: function () {
                return _exports.model;
            }
        });
        exports.models = void 0;
        Object.defineProperty(exports, "registerCallbackConstructor", {
            enumerable: true,
            get: function () {
                return _exports.registerCallbackConstructor;
            }
        });
        exports.regularizers = void 0;
        Object.defineProperty(exports, "sequential", {
            enumerable: true,
            get: function () {
                return _exports.sequential;
            }
        });
        Object.defineProperty(exports, "version_layers", {
            enumerable: true,
            get: function () {
                return _version.version;
            }
        });
        require("./flags_layers");
        require("@tensorflow/tfjs-core");
        require("@tensorflow/tfjs-core/dist/register_all_gradients");
        var constraints = _interopRequireWildcard(require("./exports_constraints"));
        exports.constraints = constraints;
        var initializers = _interopRequireWildcard(require("./exports_initializers"));
        exports.initializers = initializers;
        var layers = _interopRequireWildcard(require("./exports_layers"));
        exports.layers = layers;
        var metrics = _interopRequireWildcard(require("./exports_metrics"));
        exports.metrics = metrics;
        var models = _interopRequireWildcard(require("./exports_models"));
        exports.models = models;
        var regularizers = _interopRequireWildcard(require("./exports_regularizers"));
        exports.regularizers = regularizers;
        var _base_callbacks = require("./base_callbacks");
        var _callbacks = require("./callbacks");
        var _topology = require("./engine/topology");
        var _training = require("./engine/training");
        var _exports = require("./exports");
        var _recurrent = require("./layers/recurrent");
        var _models = require("./models");
        var _variables = require("./variables");
        var _version = require("./version");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }

    }
        , {
        "./base_callbacks": 517,
        "./callbacks": 518,
        "./engine/topology": 524,
        "./engine/training": 525,
        "./exports": 530,
        "./exports_constraints": 531,
        "./exports_initializers": 532,
        "./exports_layers": 533,
        "./exports_metrics": 534,
        "./exports_models": 535,
        "./exports_regularizers": 536,
        "./flags_layers": 537,
        "./layers/recurrent": 558,
        "./models": 564,
        "./variables": 576,
        "./version": 577,
        "@tensorflow/tfjs-core": 506,
        "@tensorflow/tfjs-core/dist/register_all_gradients": 498
    }],
    539: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.Zeros = exports.VarianceScaling = exports.TruncatedNormal = exports.RandomUniform = exports.RandomNormal = exports.Orthogonal = exports.Ones = exports.LeCunUniform = exports.LeCunNormal = exports.Initializer = exports.Identity = exports.INITIALIZER_IDENTIFIER_REGISTRY_SYMBOL_MAP = exports.HeUniform = exports.HeNormal = exports.GlorotUniform = exports.GlorotNormal = exports.Constant = void 0;
        exports.checkDistribution = checkDistribution;
        exports.checkFanMode = checkFanMode;
        exports.getInitializer = getInitializer;
        exports.serializeInitializer = serializeInitializer;
        var _tfjsCore = require("@tensorflow/tfjs-core");
        var K = _interopRequireWildcard(require("./backend/tfjs_backend"));
        var _common = require("./common");
        var _errors = require("./errors");
        var _initializer_config = require("./keras_format/initializer_config");
        var _generic_utils = require("./utils/generic_utils");
        var _math_utils = require("./utils/math_utils");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2018 Google LLC
         *
         * Use of this source code is governed by an MIT-style
         * license that can be found in the LICENSE file or at
         * https://opensource.org/licenses/MIT.
         * =============================================================================
         */

        function checkFanMode(value) {
            (0,
                _generic_utils.checkStringTypeUnionValue)(_initializer_config.VALID_FAN_MODE_VALUES, 'FanMode', value);
        }
        function checkDistribution(value) {
            (0,
                _generic_utils.checkStringTypeUnionValue)(_initializer_config.VALID_DISTRIBUTION_VALUES, 'Distribution', value);
        }
        /**
         * Initializer base class.
         *
         * @doc {
         *   heading: 'Initializers', subheading: 'Classes', namespace: 'initializers'}
         */
        class Initializer extends _tfjsCore.serialization.Serializable {
            fromConfigUsesCustomObjects() {
                return false;
            }
            getConfig() {
                return {};
            }
        }
        exports.Initializer = Initializer;
        class Zeros extends Initializer {
            apply(shape, dtype) {
                return (0,
                    _tfjsCore.zeros)(shape, dtype);
            }
        }
        /** @nocollapse */
        exports.Zeros = Zeros;
        Zeros.className = 'Zeros';
        _tfjsCore.serialization.registerClass(Zeros);
        class Ones extends Initializer {
            apply(shape, dtype) {
                return (0,
                    _tfjsCore.ones)(shape, dtype);
            }
        }
        /** @nocollapse */
        exports.Ones = Ones;
        Ones.className = 'Ones';
        _tfjsCore.serialization.registerClass(Ones);
        class Constant extends Initializer {
            constructor(args) {
                super();
                if (typeof args !== 'object') {
                    throw new _errors.ValueError(`Expected argument of type ConstantConfig but got ${args}`);
                }
                if (args.value === undefined) {
                    throw new _errors.ValueError(`config must have value set but got ${args}`);
                }
                this.value = args.value;
            }
            apply(shape, dtype) {
                return (0,
                    _tfjsCore.tidy)(() => (0,
                        _tfjsCore.mul)((0,
                            _tfjsCore.scalar)(this.value), (0,
                                _tfjsCore.ones)(shape, dtype)));
            }
            getConfig() {
                return {
                    value: this.value
                };
            }
        }
        /** @nocollapse */
        exports.Constant = Constant;
        Constant.className = 'Constant';
        _tfjsCore.serialization.registerClass(Constant);
        class RandomUniform extends Initializer {
            constructor(args) {
                super();
                this.DEFAULT_MINVAL = -0.05;
                this.DEFAULT_MAXVAL = 0.05;
                this.minval = args.minval || this.DEFAULT_MINVAL;
                this.maxval = args.maxval || this.DEFAULT_MAXVAL;
                this.seed = args.seed;
            }
            apply(shape, dtype) {
                return (0,
                    _tfjsCore.randomUniform)(shape, this.minval, this.maxval, dtype);
            }
            getConfig() {
                return {
                    minval: this.minval,
                    maxval: this.maxval,
                    seed: this.seed
                };
            }
        }
        /** @nocollapse */
        exports.RandomUniform = RandomUniform;
        RandomUniform.className = 'RandomUniform';
        _tfjsCore.serialization.registerClass(RandomUniform);
        class RandomNormal extends Initializer {
            constructor(args) {
                super();
                this.DEFAULT_MEAN = 0.;
                this.DEFAULT_STDDEV = 0.05;
                this.mean = args.mean || this.DEFAULT_MEAN;
                this.stddev = args.stddev || this.DEFAULT_STDDEV;
                this.seed = args.seed;
            }
            apply(shape, dtype) {
                dtype = dtype || 'float32';
                if (dtype !== 'float32' && dtype !== 'int32') {
                    throw new _errors.NotImplementedError(`randomNormal does not support dType ${dtype}.`);
                }
                return K.randomNormal(shape, this.mean, this.stddev, dtype, this.seed);
            }
            getConfig() {
                return {
                    mean: this.mean,
                    stddev: this.stddev,
                    seed: this.seed
                };
            }
        }
        /** @nocollapse */
        exports.RandomNormal = RandomNormal;
        RandomNormal.className = 'RandomNormal';
        _tfjsCore.serialization.registerClass(RandomNormal);
        class TruncatedNormal extends Initializer {
            constructor(args) {
                super();
                this.DEFAULT_MEAN = 0.;
                this.DEFAULT_STDDEV = 0.05;
                this.mean = args.mean || this.DEFAULT_MEAN;
                this.stddev = args.stddev || this.DEFAULT_STDDEV;
                this.seed = args.seed;
            }
            apply(shape, dtype) {
                dtype = dtype || 'float32';
                if (dtype !== 'float32' && dtype !== 'int32') {
                    throw new _errors.NotImplementedError(`truncatedNormal does not support dType ${dtype}.`);
                }
                return (0,
                    _tfjsCore.truncatedNormal)(shape, this.mean, this.stddev, dtype, this.seed);
            }
            getConfig() {
                return {
                    mean: this.mean,
                    stddev: this.stddev,
                    seed: this.seed
                };
            }
        }
        /** @nocollapse */
        exports.TruncatedNormal = TruncatedNormal;
        TruncatedNormal.className = 'TruncatedNormal';
        _tfjsCore.serialization.registerClass(TruncatedNormal);
        class Identity extends Initializer {
            constructor(args) {
                super();
                this.gain = args.gain != null ? args.gain : 1.0;
            }
            apply(shape, dtype) {
                return (0,
                    _tfjsCore.tidy)(() => {
                        if (shape.length !== 2 || shape[0] !== shape[1]) {
                            throw new _errors.ValueError('Identity matrix initializer can only be used for' + ' 2D square matrices.');
                        } else {
                            return (0,
                                _tfjsCore.mul)(this.gain, (0,
                                    _tfjsCore.eye)(shape[0]));
                        }
                    }
                    );
            }
            getConfig() {
                return {
                    gain: this.gain
                };
            }
        }
        /** @nocollapse */
        exports.Identity = Identity;
        Identity.className = 'Identity';
        _tfjsCore.serialization.registerClass(Identity);
        /**
         * Computes the number of input and output units for a weight shape.
         * @param shape Shape of weight.
         * @param dataFormat data format to use for convolution kernels.
         *   Note that all kernels in Keras are standardized on the
         *   CHANNEL_LAST ordering (even when inputs are set to CHANNEL_FIRST).
         * @return An length-2 array: fanIn, fanOut.
         */
        function computeFans(shape, dataFormat = 'channelsLast') {
            let fanIn;
            let fanOut;
            (0,
                _common.checkDataFormat)(dataFormat);
            if (shape.length === 2) {
                fanIn = shape[0];
                fanOut = shape[1];
            } else if ([3, 4, 5].indexOf(shape.length) !== -1) {
                if (dataFormat === 'channelsFirst') {
                    const receptiveFieldSize = (0,
                        _math_utils.arrayProd)(shape, 2);
                    fanIn = shape[1] * receptiveFieldSize;
                    fanOut = shape[0] * receptiveFieldSize;
                } else if (dataFormat === 'channelsLast') {
                    const receptiveFieldSize = (0,
                        _math_utils.arrayProd)(shape, 0, shape.length - 2);
                    fanIn = shape[shape.length - 2] * receptiveFieldSize;
                    fanOut = shape[shape.length - 1] * receptiveFieldSize;
                }
            } else {
                const shapeProd = (0,
                    _math_utils.arrayProd)(shape);
                fanIn = Math.sqrt(shapeProd);
                fanOut = Math.sqrt(shapeProd);
            }
            return [fanIn, fanOut];
        }
        class VarianceScaling extends Initializer {
            /**
             * Constructor of VarianceScaling.
             * @throws ValueError for invalid value in scale.
             */
            constructor(args) {
                super();
                if (args.scale < 0.0) {
                    throw new _errors.ValueError(`scale must be a positive float. Got: ${args.scale}`);
                }
                this.scale = args.scale == null ? 1.0 : args.scale;
                this.mode = args.mode == null ? 'fanIn' : args.mode;
                checkFanMode(this.mode);
                this.distribution = args.distribution == null ? 'normal' : args.distribution;
                checkDistribution(this.distribution);
                this.seed = args.seed;
            }
            apply(shape, dtype) {
                const fans = computeFans(shape);
                const fanIn = fans[0];
                const fanOut = fans[1];
                let scale = this.scale;
                if (this.mode === 'fanIn') {
                    scale /= Math.max(1, fanIn);
                } else if (this.mode === 'fanOut') {
                    scale /= Math.max(1, fanOut);
                } else {
                    scale /= Math.max(1, (fanIn + fanOut) / 2);
                }
                if (this.distribution === 'normal') {
                    const stddev = Math.sqrt(scale);
                    dtype = dtype || 'float32';
                    if (dtype !== 'float32' && dtype !== 'int32') {
                        throw new _errors.NotImplementedError(`${this.getClassName()} does not support dType ${dtype}.`);
                    }
                    return (0,
                        _tfjsCore.truncatedNormal)(shape, 0, stddev, dtype, this.seed);
                } else {
                    const limit = Math.sqrt(3 * scale);
                    return (0,
                        _tfjsCore.randomUniform)(shape, -limit, limit, dtype);
                }
            }
            getConfig() {
                return {
                    scale: this.scale,
                    mode: this.mode,
                    distribution: this.distribution,
                    seed: this.seed
                };
            }
        }
        /** @nocollapse */
        exports.VarianceScaling = VarianceScaling;
        VarianceScaling.className = 'VarianceScaling';
        _tfjsCore.serialization.registerClass(VarianceScaling);
        class GlorotUniform extends VarianceScaling {
            /**
             * Constructor of GlorotUniform
             * @param scale
             * @param mode
             * @param distribution
             * @param seed
             */
            constructor(args) {
                super({
                    scale: 1.0,
                    mode: 'fanAvg',
                    distribution: 'uniform',
                    seed: args == null ? null : args.seed
                });
            }
            getClassName() {
                // In Python Keras, GlorotUniform is not a class, but a helper method
                // that creates a VarianceScaling object. Use 'VarianceScaling' as
                // class name to be compatible with that.
                return VarianceScaling.className;
            }
        }
        /** @nocollapse */
        exports.GlorotUniform = GlorotUniform;
        GlorotUniform.className = 'GlorotUniform';
        _tfjsCore.serialization.registerClass(GlorotUniform);
        class GlorotNormal extends VarianceScaling {
            /**
             * Constructor of GlorotNormal.
             * @param scale
             * @param mode
             * @param distribution
             * @param seed
             */
            constructor(args) {
                super({
                    scale: 1.0,
                    mode: 'fanAvg',
                    distribution: 'normal',
                    seed: args == null ? null : args.seed
                });
            }
            getClassName() {
                // In Python Keras, GlorotNormal is not a class, but a helper method
                // that creates a VarianceScaling object. Use 'VarianceScaling' as
                // class name to be compatible with that.
                return VarianceScaling.className;
            }
        }
        /** @nocollapse */
        exports.GlorotNormal = GlorotNormal;
        GlorotNormal.className = 'GlorotNormal';
        _tfjsCore.serialization.registerClass(GlorotNormal);
        class HeNormal extends VarianceScaling {
            constructor(args) {
                super({
                    scale: 2.0,
                    mode: 'fanIn',
                    distribution: 'normal',
                    seed: args == null ? null : args.seed
                });
            }
            getClassName() {
                // In Python Keras, HeNormal is not a class, but a helper method
                // that creates a VarianceScaling object. Use 'VarianceScaling' as
                // class name to be compatible with that.
                return VarianceScaling.className;
            }
        }
        /** @nocollapse */
        exports.HeNormal = HeNormal;
        HeNormal.className = 'HeNormal';
        _tfjsCore.serialization.registerClass(HeNormal);
        class HeUniform extends VarianceScaling {
            constructor(args) {
                super({
                    scale: 2.0,
                    mode: 'fanIn',
                    distribution: 'uniform',
                    seed: args == null ? null : args.seed
                });
            }
            getClassName() {
                // In Python Keras, HeUniform is not a class, but a helper method
                // that creates a VarianceScaling object. Use 'VarianceScaling' as
                // class name to be compatible with that.
                return VarianceScaling.className;
            }
        }
        /** @nocollapse */
        exports.HeUniform = HeUniform;
        HeUniform.className = 'HeUniform';
        _tfjsCore.serialization.registerClass(HeUniform);
        class LeCunNormal extends VarianceScaling {
            constructor(args) {
                super({
                    scale: 1.0,
                    mode: 'fanIn',
                    distribution: 'normal',
                    seed: args == null ? null : args.seed
                });
            }
            getClassName() {
                // In Python Keras, LeCunNormal is not a class, but a helper method
                // that creates a VarianceScaling object. Use 'VarianceScaling' as
                // class name to be compatible with that.
                return VarianceScaling.className;
            }
        }
        /** @nocollapse */
        exports.LeCunNormal = LeCunNormal;
        LeCunNormal.className = 'LeCunNormal';
        _tfjsCore.serialization.registerClass(LeCunNormal);
        class LeCunUniform extends VarianceScaling {
            constructor(args) {
                super({
                    scale: 1.0,
                    mode: 'fanIn',
                    distribution: 'uniform',
                    seed: args == null ? null : args.seed
                });
            }
            getClassName() {
                // In Python Keras, LeCunUniform is not a class, but a helper method
                // that creates a VarianceScaling object. Use 'VarianceScaling' as
                // class name to be compatible with that.
                return VarianceScaling.className;
            }
        }
        /** @nocollapse */
        exports.LeCunUniform = LeCunUniform;
        LeCunUniform.className = 'LeCunNormal';
        _tfjsCore.serialization.registerClass(LeCunUniform);
        class Orthogonal extends Initializer {
            constructor(args) {
                super();
                this.DEFAULT_GAIN = 1;
                this.gain = args.gain == null ? this.DEFAULT_GAIN : args.gain;
                this.seed = args.seed;
                if (this.seed != null) {
                    throw new _errors.NotImplementedError('Random seed is not implemented for Orthogonal Initializer yet.');
                }
            }
            apply(shape, dtype) {
                return (0,
                    _tfjsCore.tidy)(() => {
                        if (shape.length < 2) {
                            throw new _errors.NotImplementedError('Shape must be at least 2D.');
                        }
                        if (shape[0] * shape[1] > 2000) {
                            console.warn(`Orthogonal initializer is being called on a matrix with more ` + `than 2000 (${shape[0] * shape[1]}) elements: ` + `Slowness may result.`);
                        }
                        // TODO(cais): Add seed support.
                        const normalizedShape = shape[0] > shape[1] ? [shape[1], shape[0]] : shape;
                        const a = K.randomNormal(normalizedShape, 0, 1, 'float32');
                        let q = _tfjsCore.linalg.gramSchmidt(a);
                        if (shape[0] > shape[1]) {
                            q = (0,
                                _tfjsCore.transpose)(q);
                        }
                        return (0,
                            _tfjsCore.mul)(this.gain, q);
                    }
                    );
            }
            getConfig() {
                return {
                    gain: this.gain,
                    seed: this.seed
                };
            }
        }
        /** @nocollapse */
        exports.Orthogonal = Orthogonal;
        Orthogonal.className = 'Orthogonal';
        _tfjsCore.serialization.registerClass(Orthogonal);
        // Maps the JavaScript-like identifier keys to the corresponding registry
        // symbols.
        const INITIALIZER_IDENTIFIER_REGISTRY_SYMBOL_MAP = {
            'constant': 'Constant',
            'glorotNormal': 'GlorotNormal',
            'glorotUniform': 'GlorotUniform',
            'heNormal': 'HeNormal',
            'heUniform': 'HeUniform',
            'identity': 'Identity',
            'leCunNormal': 'LeCunNormal',
            'leCunUniform': 'LeCunUniform',
            'ones': 'Ones',
            'orthogonal': 'Orthogonal',
            'randomNormal': 'RandomNormal',
            'randomUniform': 'RandomUniform',
            'truncatedNormal': 'TruncatedNormal',
            'varianceScaling': 'VarianceScaling',
            'zeros': 'Zeros'
        };
        exports.INITIALIZER_IDENTIFIER_REGISTRY_SYMBOL_MAP = INITIALIZER_IDENTIFIER_REGISTRY_SYMBOL_MAP;
        function deserializeInitializer(config, customObjects = {}) {
            return (0,
                _generic_utils.deserializeKerasObject)(config, _tfjsCore.serialization.SerializationMap.getMap().classNameMap, customObjects, 'initializer');
        }
        function serializeInitializer(initializer) {
            return (0,
                _generic_utils.serializeKerasObject)(initializer);
        }
        function getInitializer(identifier) {
            if (typeof identifier === 'string') {
                const className = identifier in INITIALIZER_IDENTIFIER_REGISTRY_SYMBOL_MAP ? INITIALIZER_IDENTIFIER_REGISTRY_SYMBOL_MAP[identifier] : identifier;
                /* We have four 'helper' classes for common initializers that
                all get serialized as 'VarianceScaling' and shouldn't go through
                the deserializeInitializer pathway. */
                if (className === 'GlorotNormal') {
                    return new GlorotNormal();
                } else if (className === 'GlorotUniform') {
                    return new GlorotUniform();
                } else if (className === 'HeNormal') {
                    return new HeNormal();
                } else if (className === 'HeUniform') {
                    return new HeUniform();
                } else if (className === 'LeCunNormal') {
                    return new LeCunNormal();
                } else if (className === 'LeCunUniform') {
                    return new LeCunUniform();
                } else {
                    const config = {};
                    config['className'] = className;
                    config['config'] = {};
                    return deserializeInitializer(config);
                }
            } else if (identifier instanceof Initializer) {
                return identifier;
            } else {
                return deserializeInitializer(identifier);
            }
        }

    }
        , {
        "./backend/tfjs_backend": 516,
        "./common": 519,
        "./errors": 529,
        "./keras_format/initializer_config": 541,
        "./utils/generic_utils": 570,
        "./utils/math_utils": 572,
        "@tensorflow/tfjs-core": 506
    }],
    540: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.VALID_SAMPLE_WEIGHT_MODES = exports.VALID_POOL_MODE_VALUES = exports.VALID_PADDING_MODE_VALUES = exports.VALID_INTERPOLATION_FORMAT_VALUES = exports.VALID_DATA_FORMAT_VALUES = exports.VALID_BIDIRECTIONAL_MERGE_MODES = void 0;
        /**
         * @license
         * Copyright 2018 Google LLC
         *
         * Use of this source code is governed by an MIT-style
         * license that can be found in the LICENSE file or at
         * https://opensource.org/licenses/MIT.
         * =============================================================================
         */
        const VALID_DATA_FORMAT_VALUES = ['channelsFirst', 'channelsLast'];
        exports.VALID_DATA_FORMAT_VALUES = VALID_DATA_FORMAT_VALUES;
        const VALID_INTERPOLATION_FORMAT_VALUES = ['nearest', 'bilinear'];
        exports.VALID_INTERPOLATION_FORMAT_VALUES = VALID_INTERPOLATION_FORMAT_VALUES;
        const VALID_PADDING_MODE_VALUES = ['valid', 'same', 'causal'];
        exports.VALID_PADDING_MODE_VALUES = VALID_PADDING_MODE_VALUES;
        const VALID_POOL_MODE_VALUES = ['max', 'avg'];
        exports.VALID_POOL_MODE_VALUES = VALID_POOL_MODE_VALUES;
        const VALID_BIDIRECTIONAL_MERGE_MODES = ['sum', 'mul', 'concat', 'ave'];
        exports.VALID_BIDIRECTIONAL_MERGE_MODES = VALID_BIDIRECTIONAL_MERGE_MODES;
        const VALID_SAMPLE_WEIGHT_MODES = ['temporal'];
        exports.VALID_SAMPLE_WEIGHT_MODES = VALID_SAMPLE_WEIGHT_MODES;

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

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.initializerClassNames = exports.VALID_FAN_MODE_VALUES = exports.VALID_DISTRIBUTION_VALUES = void 0;
        /**
         * @license
         * Copyright 2018 Google LLC
         *
         * Use of this source code is governed by an MIT-style
         * license that can be found in the LICENSE file or at
         * https://opensource.org/licenses/MIT.
         * =============================================================================
         */
        const VALID_FAN_MODE_VALUES = ['fanIn', 'fanOut', 'fanAvg'];
        exports.VALID_FAN_MODE_VALUES = VALID_FAN_MODE_VALUES;
        const VALID_DISTRIBUTION_VALUES = ['normal', 'uniform', 'truncatedNormal'];
        // We can't easily extract a string[] from the string union type, but we can
        // recapitulate the list, enforcing at compile time that the values are valid
        // and that we have the right number of them.
        /**
         * A string array of valid Initializer class names.
         *
         * This is guaranteed to match the `InitializerClassName` union type.
         */
        exports.VALID_DISTRIBUTION_VALUES = VALID_DISTRIBUTION_VALUES;
        const initializerClassNames = ['Zeros', 'Ones', 'Constant', 'RandomNormal', 'RandomUniform', 'TruncatedNormal', 'VarianceScaling', 'Orthogonal', 'Identity'];
        exports.initializerClassNames = initializerClassNames;

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

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.ThresholdedReLU = exports.Softmax = exports.ReLU = exports.PReLU = exports.LeakyReLU = exports.ELU = void 0;
        var _tfjsCore = require("@tensorflow/tfjs-core");
        var _activations = require("../activations");
        var _constraints = require("../constraints");
        var _topology = require("../engine/topology");
        var _errors = require("../errors");
        var _initializers = require("../initializers");
        var _regularizers = require("../regularizers");
        var _types_utils = require("../utils/types_utils");
        /**
         * @license
         * Copyright 2018 Google LLC
         *
         * Use of this source code is governed by an MIT-style
         * license that can be found in the LICENSE file or at
         * https://opensource.org/licenses/MIT.
         * =============================================================================
         */
        /**
         *  Advanced activation layers.
         */

        class ReLU extends _topology.Layer {
            constructor(args) {
                super(args == null ? {} : args);
                this.supportsMasking = true;
                if (args != null) {
                    this.maxValue = args.maxValue;
                }
            }
            call(inputs, kwargs) {
                inputs = (0,
                    _types_utils.getExactlyOneTensor)(inputs);
                let output = (0,
                    _tfjsCore.relu)(inputs);
                if (this.maxValue != null) {
                    output = (0,
                        _tfjsCore.clipByValue)(output, 0, this.maxValue);
                }
                return output;
            }
            computeOutputShape(inputShape) {
                return inputShape;
            }
            getConfig() {
                const config = {
                    maxValue: this.maxValue
                };
                const baseConfig = super.getConfig();
                Object.assign(config, baseConfig);
                return config;
            }
        }
        /** @nocollapse */
        exports.ReLU = ReLU;
        ReLU.className = 'ReLU';
        _tfjsCore.serialization.registerClass(ReLU);
        class LeakyReLU extends _topology.Layer {
            constructor(args) {
                super(args == null ? {} : args);
                this.DEFAULT_ALPHA = 0.3;
                if (args == null) {
                    args = {};
                }
                this.alpha = args.alpha == null ? this.DEFAULT_ALPHA : args.alpha;
            }
            call(inputs, kwargs) {
                const x = (0,
                    _types_utils.getExactlyOneTensor)(inputs);
                return (0,
                    _tfjsCore.leakyRelu)(x, this.alpha);
            }
            computeOutputShape(inputShape) {
                return inputShape;
            }
            getConfig() {
                const config = {
                    alpha: this.alpha
                };
                const baseConfig = super.getConfig();
                Object.assign(config, baseConfig);
                return config;
            }
        }
        /** @nocollapse */
        exports.LeakyReLU = LeakyReLU;
        LeakyReLU.className = 'LeakyReLU';
        _tfjsCore.serialization.registerClass(LeakyReLU);
        class PReLU extends _topology.Layer {
            constructor(args) {
                super(args == null ? {} : args);
                this.DEFAULT_ALPHA_INITIALIZER = 'zeros';
                if (args == null) {
                    args = {};
                }
                this.supportsMasking = true;
                this.alphaInitializer = (0,
                    _initializers.getInitializer)(args.alphaInitializer || this.DEFAULT_ALPHA_INITIALIZER);
                this.alphaRegularizer = (0,
                    _regularizers.getRegularizer)(args.alphaRegularizer);
                this.alphaConstraint = (0,
                    _constraints.getConstraint)(args.alphaConstraint);
                if (args.sharedAxes == null) {
                    this.sharedAxes = null;
                } else if (Array.isArray(args.sharedAxes)) {
                    this.sharedAxes = args.sharedAxes;
                } else if (typeof args.sharedAxes === 'number') {
                    this.sharedAxes = [args.sharedAxes];
                } else {
                    throw new _errors.ValueError(`Expected sharedAxes to be a number or an array of numbers, ` + `but got ${args.sharedAxes}`);
                }
            }
            build(inputShape) {
                inputShape = (0,
                    _types_utils.getExactlyOneShape)(inputShape);
                const paramShape = inputShape.slice(1);
                if (this.sharedAxes != null) {
                    for (const i of this.sharedAxes) {
                        paramShape[i - 1] = 1;
                    }
                }
                this.alpha = this.addWeight('alpha', paramShape, 'float32', this.alphaInitializer, this.alphaRegularizer, true, this.alphaConstraint);
                // Set input spec.
                const axes = {};
                if (this.sharedAxes != null) {
                    for (let i = 1; i < inputShape.length; ++i) {
                        axes[i] = inputShape[i];
                    }
                }
                this.inputSpec = [new _topology.InputSpec({
                    ndim: inputShape.length,
                    axes
                })];
                this.built = true;
            }
            call(inputs, kwargs) {
                inputs = (0,
                    _types_utils.getExactlyOneTensor)(inputs);
                return (0,
                    _tfjsCore.prelu)(inputs, this.alpha.read());
            }
            getConfig() {
                const config = {
                    alphaInitializer: (0,
                        _initializers.serializeInitializer)(this.alphaInitializer),
                    alphaRegularizer: (0,
                        _regularizers.serializeRegularizer)(this.alphaRegularizer),
                    alphaConstraint: (0,
                        _constraints.serializeConstraint)(this.alphaConstraint),
                    sharedAxes: this.sharedAxes
                };
                const baseConfig = super.getConfig();
                Object.assign(config, baseConfig);
                return config;
            }
        }
        /** @nocollapse */
        exports.PReLU = PReLU;
        PReLU.className = 'PReLU';
        _tfjsCore.serialization.registerClass(PReLU);
        class ELU extends _topology.Layer {
            constructor(args) {
                super(args == null ? {} : args);
                this.DEFAULT_ALPHA = 1.0;
                if (args == null) {
                    args = {};
                }
                if (args.alpha != null && args.alpha !== this.DEFAULT_ALPHA) {
                    throw new _errors.NotImplementedError(`Non-default alpha value (${args.alpha}) is not supported by the ` + `ELU layer yet.`);
                }
                this.alpha = args.alpha == null ? this.DEFAULT_ALPHA : args.alpha;
            }
            call(inputs, kwargs) {
                const x = (0,
                    _types_utils.getExactlyOneTensor)(inputs);
                return (0,
                    _tfjsCore.elu)(x);
            }
            computeOutputShape(inputShape) {
                return inputShape;
            }
            getConfig() {
                const config = {
                    alpha: this.alpha
                };
                const baseConfig = super.getConfig();
                Object.assign(config, baseConfig);
                return config;
            }
        }
        /** @nocollapse */
        exports.ELU = ELU;
        ELU.className = 'ELU';
        _tfjsCore.serialization.registerClass(ELU);
        class ThresholdedReLU extends _topology.Layer {
            constructor(args) {
                super(args == null ? {} : args);
                this.DEFAULT_THETA = 1.0;
                if (args == null) {
                    args = {};
                }
                this.theta = args.theta == null ? this.DEFAULT_THETA : args.theta;
            }
            call(inputs, kwargs) {
                const x = (0,
                    _types_utils.getExactlyOneTensor)(inputs);
                return (0,
                    _tfjsCore.mul)(x, (0,
                        _tfjsCore.cast)((0,
                            _tfjsCore.greater)(x, this.theta), 'float32'));
            }
            computeOutputShape(inputShape) {
                return inputShape;
            }
            getConfig() {
                const config = {
                    theta: this.theta
                };
                const baseConfig = super.getConfig();
                Object.assign(config, baseConfig);
                return config;
            }
        }
        /** @nocollapse */
        exports.ThresholdedReLU = ThresholdedReLU;
        ThresholdedReLU.className = 'ThresholdedReLU';
        _tfjsCore.serialization.registerClass(ThresholdedReLU);
        class Softmax extends _topology.Layer {
            constructor(args) {
                super(args == null ? {} : args);
                this.DEFAULT_AXIS = 1.0;
                if (args == null) {
                    args = {};
                }
                this.softmax = new _activations.Softmax().apply;
                this.axis = args.axis == null ? this.DEFAULT_AXIS : args.axis;
            }
            call(inputs, kwargs) {
                const x = (0,
                    _types_utils.getExactlyOneTensor)(inputs);
                return this.softmax(x, this.axis);
            }
            computeOutputShape(inputShape) {
                return inputShape;
            }
            getConfig() {
                const config = {
                    axis: this.axis
                };
                const baseConfig = super.getConfig();
                Object.assign(config, baseConfig);
                return config;
            }
        }
        /** @nocollapse */
        exports.Softmax = Softmax;
        Softmax.className = 'Softmax';
        _tfjsCore.serialization.registerClass(Softmax);

    }
        , {
        "../activations": 513,
        "../constraints": 520,
        "../engine/topology": 524,
        "../errors": 529,
        "../initializers": 539,
        "../regularizers": 566,
        "../utils/types_utils": 574,
        "@tensorflow/tfjs-core": 506
    }],
    543: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.UpSampling2D = exports.SeparableConv2D = exports.SeparableConv = exports.Cropping2D = exports.Conv3DTranspose = exports.Conv3D = exports.Conv2DTranspose = exports.Conv2D = exports.Conv1D = exports.Conv = exports.BaseConv = void 0;
        exports.conv1d = conv1d;
        exports.conv1dWithBias = conv1dWithBias;
        exports.conv2d = conv2d;
        exports.conv2dWithBiasActivation = conv2dWithBiasActivation;
        exports.conv3d = conv3d;
        exports.conv3dWithBias = conv3dWithBias;
        exports.preprocessConv2DInput = preprocessConv2DInput;
        exports.preprocessConv3DInput = preprocessConv3DInput;
        var tfc = _interopRequireWildcard(require("@tensorflow/tfjs-core"));
        var _activations = require("../activations");
        var _common = require("../backend/common");
        var K = _interopRequireWildcard(require("../backend/tfjs_backend"));
        var _common2 = require("../common");
        var _constraints = require("../constraints");
        var _topology = require("../engine/topology");
        var _errors = require("../errors");
        var _initializers = require("../initializers");
        var _regularizers = require("../regularizers");
        var _conv_utils = require("../utils/conv_utils");
        var generic_utils = _interopRequireWildcard(require("../utils/generic_utils"));
        var _types_utils = require("../utils/types_utils");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2018 Google LLC
         *
         * Use of this source code is governed by an MIT-style
         * license that can be found in the LICENSE file or at
         * https://opensource.org/licenses/MIT.
         * =============================================================================
         */
        /**
         * TensorFlow.js Layers: Convolutional Layers
         */

        /**
         * Transpose and cast the input before the conv2d.
         * @param x Input image tensor.
         * @param dataFormat
         */
        function preprocessConv2DInput(x, dataFormat) {
            // TODO(cais): Cast type to float32 if not.
            return (0,
                tfc.tidy)(() => {
                    (0,
                        _common2.checkDataFormat)(dataFormat);
                    if (dataFormat === 'channelsFirst') {
                        return tfc.transpose(x, [0, 2, 3, 1]);
                        // NCHW -> NHWC.
                    } else {
                        return x;
                    }
                }
                );
        }
        /**
         * Transpose and cast the input before the conv3d.
         * @param x Input image tensor.
         * @param dataFormat
         */
        function preprocessConv3DInput(x, dataFormat) {
            return (0,
                tfc.tidy)(() => {
                    (0,
                        _common2.checkDataFormat)(dataFormat);
                    if (dataFormat === 'channelsFirst') {
                        return tfc.transpose(x, [0, 2, 3, 4, 1]);
                        // NCDHW -> NDHWC.
                    } else {
                        return x;
                    }
                }
                );
        }
        /**
         * 1D-convolution with bias added.
         *
         * Porting Note: This function does not exist in the Python Keras backend.
         *   It is exactly the same as `conv2d`, except the added `bias`.
         *
         * @param x Input tensor, rank-3, of shape `[batchSize, width, inChannels]`.
         * @param kernel Kernel, rank-3, of shape `[filterWidth, inDepth, outDepth]`.
         * @param bias Bias, rank-3, of shape `[outDepth]`.
         * @param strides
         * @param padding Padding mode.
         * @param dataFormat Data format.
         * @param dilationRate
         * @returns The result of the 1D convolution.
         * @throws ValueError, if `x`, `kernel` or `bias` is not of the correct rank.
         */
        function conv1dWithBias(x, kernel, bias, strides = 1, padding = 'valid', dataFormat, dilationRate = 1) {
            return (0,
                tfc.tidy)(() => {
                    if (dataFormat == null) {
                        dataFormat = (0,
                            _common.imageDataFormat)();
                    }
                    (0,
                        _common2.checkDataFormat)(dataFormat);
                    // Check the ranks of x, kernel and bias.
                    if (x.shape.length !== 3) {
                        throw new _errors.ValueError(`The input of a conv1dWithBias operation should be 3, but is ` + `${x.shape.length} instead.`);
                    }
                    if (kernel.shape.length !== 3) {
                        throw new _errors.ValueError(`The kernel for a conv1dWithBias operation should be 3, but is ` + `${kernel.shape.length} instead`);
                    }
                    if (bias != null && bias.shape.length !== 1) {
                        throw new _errors.ValueError(`The bias for a conv1dWithBias operation should be 1, but is ` + `${kernel.shape.length} instead`);
                    }
                    // TODO(cais): Support CAUSAL padding mode.
                    if (dataFormat === 'channelsFirst') {
                        x = tfc.transpose(x, [0, 2, 1]);
                        // NCW -> NWC.
                    }

                    if (padding === 'causal') {
                        throw new _errors.NotImplementedError('The support for CAUSAL padding mode in conv1dWithBias is not ' + 'implemented yet.');
                    }
                    let y = tfc.conv1d(x, kernel, strides, padding === 'same' ? 'same' : 'valid', 'NWC', dilationRate);
                    if (bias != null) {
                        y = K.biasAdd(y, bias);
                    }
                    return y;
                }
                );
        }
        /**
         * 1D-convolution.
         *
         * @param x Input tensor, rank-3, of shape `[batchSize, width, inChannels]`.
         * @param kernel Kernel, rank-3, of shape `[filterWidth, inDepth, outDepth]`.s
         * @param strides
         * @param padding Padding mode.
         * @param dataFormat Data format.
         * @param dilationRate
         * @returns The result of the 1D convolution.
         * @throws ValueError, if `x`, `kernel` or `bias` is not of the correct rank.
         */
        function conv1d(x, kernel, strides = 1, padding = 'valid', dataFormat, dilationRate = 1) {
            return (0,
                tfc.tidy)(() => {
                    (0,
                        _common2.checkDataFormat)(dataFormat);
                    return conv1dWithBias(x, kernel, null, strides, padding, dataFormat, dilationRate);
                }
                );
        }
        /**
         * 2D Convolution
         * @param x
         * @param kernel kernel of the convolution.
         * @param strides strides array.
         * @param padding padding mode. Default to 'valid'.
         * @param dataFormat data format. Defaults to 'channelsLast'.
         * @param dilationRate dilation rate array.
         * @returns Result of the 2D pooling.
         */
        function conv2d(x, kernel, strides = [1, 1], padding = 'valid', dataFormat, dilationRate) {
            return (0,
                tfc.tidy)(() => {
                    (0,
                        _common2.checkDataFormat)(dataFormat);
                    return conv2dWithBiasActivation(x, kernel, null, strides, padding, dataFormat, dilationRate);
                }
                );
        }
        /**
         * 2D Convolution with an added bias and optional activation.
         * Note: This function does not exist in the Python Keras Backend. This function
         * is exactly the same as `conv2d`, except the added `bias`.
         */
        function conv2dWithBiasActivation(x, kernel, bias, strides = [1, 1], padding = 'valid', dataFormat, dilationRate, activation = null) {
            return (0,
                tfc.tidy)(() => {
                    if (dataFormat == null) {
                        dataFormat = (0,
                            _common.imageDataFormat)();
                    }
                    (0,
                        _common2.checkDataFormat)(dataFormat);
                    if (x.rank !== 3 && x.rank !== 4) {
                        throw new _errors.ValueError(`conv2dWithBiasActivation expects input to be of rank 3 or 4, ` + `but received ${x.rank}.`);
                    }
                    if (kernel.rank !== 3 && kernel.rank !== 4) {
                        throw new _errors.ValueError(`conv2dWithBiasActivation expects kernel to be of rank 3 or 4, ` + `but received ${x.rank}.`);
                    }
                    let y = preprocessConv2DInput(x, dataFormat);
                    if (padding === 'causal') {
                        throw new _errors.NotImplementedError('The support for CAUSAL padding mode in conv1dWithBias is not ' + 'implemented yet.');
                    }
                    y = tfc.fused.conv2d({
                        x: y,
                        filter: kernel,
                        strides: strides,
                        pad: padding === 'same' ? 'same' : 'valid',
                        dilations: dilationRate,
                        dataFormat: 'NHWC',
                        bias,
                        activation
                    });
                    if (dataFormat === 'channelsFirst') {
                        y = tfc.transpose(y, [0, 3, 1, 2]);
                    }
                    return y;
                }
                );
        }
        /**
         * 3D Convolution.
         * @param x
         * @param kernel kernel of the convolution.
         * @param strides strides array.
         * @param padding padding mode. Default to 'valid'.
         * @param dataFormat data format. Defaults to 'channelsLast'.
         * @param dilationRate dilation rate array.
         * @returns Result of the 3D convolution.
         */
        function conv3d(x, kernel, strides = [1, 1, 1], padding = 'valid', dataFormat, dilationRate) {
            return (0,
                tfc.tidy)(() => {
                    (0,
                        _common2.checkDataFormat)(dataFormat);
                    return conv3dWithBias(x, kernel, null, strides, padding, dataFormat, dilationRate);
                }
                );
        }
        /**
         * 3D Convolution with an added bias.
         * Note: This function does not exist in the Python Keras Backend. This function
         * is exactly the same as `conv3d`, except the added `bias`.
         */
        function conv3dWithBias(x, kernel, bias, strides = [1, 1, 1], padding = 'valid', dataFormat, dilationRate) {
            return (0,
                tfc.tidy)(() => {
                    if (dataFormat == null) {
                        dataFormat = (0,
                            _common.imageDataFormat)();
                    }
                    (0,
                        _common2.checkDataFormat)(dataFormat);
                    if (x.rank !== 4 && x.rank !== 5) {
                        throw new _errors.ValueError(`conv3dWithBias expects input to be of rank 4 or 5, but received ` + `${x.rank}.`);
                    }
                    if (kernel.rank !== 4 && kernel.rank !== 5) {
                        throw new _errors.ValueError(`conv3dWithBias expects kernel to be of rank 4 or 5, but received ` + `${x.rank}.`);
                    }
                    let y = preprocessConv3DInput(x, dataFormat);
                    if (padding === 'causal') {
                        throw new _errors.NotImplementedError('The support for CAUSAL padding mode in conv3dWithBias is not ' + 'implemented yet.');
                    }
                    y = tfc.conv3d(y, kernel, strides, padding === 'same' ? 'same' : 'valid', 'NDHWC', dilationRate);
                    if (bias != null) {
                        y = K.biasAdd(y, bias);
                    }
                    if (dataFormat === 'channelsFirst') {
                        y = tfc.transpose(y, [0, 4, 1, 2, 3]);
                    }
                    return y;
                }
                );
        }
        /**
         * Abstract convolution layer.
         */
        class BaseConv extends _topology.Layer {
            constructor(rank, args) {
                super(args);
                this.bias = null;
                this.DEFAULT_KERNEL_INITIALIZER = 'glorotNormal';
                this.DEFAULT_BIAS_INITIALIZER = 'zeros';
                BaseConv.verifyArgs(args);
                this.rank = rank;
                generic_utils.assertPositiveInteger(this.rank, 'rank');
                if (this.rank !== 1 && this.rank !== 2 && this.rank !== 3) {
                    throw new _errors.NotImplementedError(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is ` + `not implemented yet.`);
                }
                this.kernelSize = (0,
                    _conv_utils.normalizeArray)(args.kernelSize, rank, 'kernelSize');
                this.strides = (0,
                    _conv_utils.normalizeArray)(args.strides == null ? 1 : args.strides, rank, 'strides');
                this.padding = args.padding == null ? 'valid' : args.padding;
                (0,
                    _common2.checkPaddingMode)(this.padding);
                this.dataFormat = args.dataFormat == null ? 'channelsLast' : args.dataFormat;
                (0,
                    _common2.checkDataFormat)(this.dataFormat);
                this.activation = (0,
                    _activations.getActivation)(args.activation);
                this.useBias = args.useBias == null ? true : args.useBias;
                this.biasInitializer = (0,
                    _initializers.getInitializer)(args.biasInitializer || this.DEFAULT_BIAS_INITIALIZER);
                this.biasConstraint = (0,
                    _constraints.getConstraint)(args.biasConstraint);
                this.biasRegularizer = (0,
                    _regularizers.getRegularizer)(args.biasRegularizer);
                this.activityRegularizer = (0,
                    _regularizers.getRegularizer)(args.activityRegularizer);
                this.dilationRate = (0,
                    _conv_utils.normalizeArray)(args.dilationRate == null ? 1 : args.dilationRate, rank, 'dilationRate');
                if (this.rank === 1 && Array.isArray(this.dilationRate) && this.dilationRate.length !== 1) {
                    throw new _errors.ValueError(`dilationRate must be a number or an array of a single number ` + `for 1D convolution, but received ` + `${JSON.stringify(this.dilationRate)}`);
                } else if (this.rank === 2) {
                    if (typeof this.dilationRate === 'number') {
                        this.dilationRate = [this.dilationRate, this.dilationRate];
                    } else if (this.dilationRate.length !== 2) {
                        throw new _errors.ValueError(`dilationRate must be a number or array of two numbers for 2D ` + `convolution, but received ${JSON.stringify(this.dilationRate)}`);
                    }
                } else if (this.rank === 3) {
                    if (typeof this.dilationRate === 'number') {
                        this.dilationRate = [this.dilationRate, this.dilationRate, this.dilationRate];
                    } else if (this.dilationRate.length !== 3) {
                        throw new _errors.ValueError(`dilationRate must be a number or array of three numbers for 3D ` + `convolution, but received ${JSON.stringify(this.dilationRate)}`);
                    }
                }
            }
            static verifyArgs(args) {
                // Check config.kernelSize type and shape.
                generic_utils.assert('kernelSize' in args, `required key 'kernelSize' not in config`);
                if (typeof args.kernelSize !== 'number' && !generic_utils.checkArrayTypeAndLength(args.kernelSize, 'number', 1, 3)) {
                    throw new _errors.ValueError(`BaseConv expects config.kernelSize to be number or number[] with ` + `length 1, 2, or 3, but received ${JSON.stringify(args.kernelSize)}.`);
                }
            }
            getConfig() {
                const config = {
                    kernelSize: this.kernelSize,
                    strides: this.strides,
                    padding: this.padding,
                    dataFormat: this.dataFormat,
                    dilationRate: this.dilationRate,
                    activation: (0,
                        _activations.serializeActivation)(this.activation),
                    useBias: this.useBias,
                    biasInitializer: (0,
                        _initializers.serializeInitializer)(this.biasInitializer),
                    biasRegularizer: (0,
                        _regularizers.serializeRegularizer)(this.biasRegularizer),
                    activityRegularizer: (0,
                        _regularizers.serializeRegularizer)(this.activityRegularizer),
                    biasConstraint: (0,
                        _constraints.serializeConstraint)(this.biasConstraint)
                };
                const baseConfig = super.getConfig();
                Object.assign(config, baseConfig);
                return config;
            }
        }
        /**
         * Abstract nD convolution layer.  Ancestor of convolution layers which reduce
         * across channels, i.e., Conv1D and Conv2D, but not DepthwiseConv2D.
         */
        exports.BaseConv = BaseConv;
        class Conv extends BaseConv {
            constructor(rank, args) {
                super(rank, args);
                this.kernel = null;
                Conv.verifyArgs(args);
                this.filters = args.filters;
                generic_utils.assertPositiveInteger(this.filters, 'filters');
                this.kernelInitializer = (0,
                    _initializers.getInitializer)(args.kernelInitializer || this.DEFAULT_KERNEL_INITIALIZER);
                this.kernelConstraint = (0,
                    _constraints.getConstraint)(args.kernelConstraint);
                this.kernelRegularizer = (0,
                    _regularizers.getRegularizer)(args.kernelRegularizer);
            }
            build(inputShape) {
                inputShape = (0,
                    _types_utils.getExactlyOneShape)(inputShape);
                const channelAxis = this.dataFormat === 'channelsFirst' ? 1 : inputShape.length - 1;
                if (inputShape[channelAxis] == null) {
                    throw new _errors.ValueError(`The channel dimension of the input should be defined. ` + `Found ${inputShape[channelAxis]}`);
                }
                const inputDim = inputShape[channelAxis];
                const kernelShape = this.kernelSize.concat([inputDim, this.filters]);
                this.kernel = this.addWeight('kernel', kernelShape, null, this.kernelInitializer, this.kernelRegularizer, true, this.kernelConstraint);
                if (this.useBias) {
                    this.bias = this.addWeight('bias', [this.filters], null, this.biasInitializer, this.biasRegularizer, true, this.biasConstraint);
                }
                this.inputSpec = [{
                    ndim: this.rank + 2,
                    axes: {
                        [channelAxis]: inputDim
                    }
                }];
                this.built = true;
            }
            call(inputs, kwargs) {
                return (0,
                    tfc.tidy)(() => {
                        inputs = (0,
                            _types_utils.getExactlyOneTensor)(inputs);
                        let outputs;
                        const biasValue = this.bias == null ? null : this.bias.read();
                        const fusedActivationName = generic_utils.mapActivationToFusedKernel(this.activation.getClassName());
                        if (fusedActivationName != null && this.rank === 2) {
                            outputs = conv2dWithBiasActivation(inputs, this.kernel.read(), biasValue, this.strides, this.padding, this.dataFormat, this.dilationRate, fusedActivationName);
                        } else {
                            if (this.rank === 1) {
                                outputs = conv1dWithBias(inputs, this.kernel.read(), biasValue, this.strides[0], this.padding, this.dataFormat, this.dilationRate[0]);
                            } else if (this.rank === 2) {
                                // TODO(cais): Move up to constructor.
                                outputs = conv2dWithBiasActivation(inputs, this.kernel.read(), biasValue, this.strides, this.padding, this.dataFormat, this.dilationRate);
                            } else if (this.rank === 3) {
                                outputs = conv3dWithBias(inputs, this.kernel.read(), biasValue, this.strides, this.padding, this.dataFormat, this.dilationRate);
                            } else {
                                throw new _errors.NotImplementedError('convolutions greater than 3D are not implemented yet.');
                            }
                            if (this.activation != null) {
                                outputs = this.activation.apply(outputs);
                            }
                        }
                        return outputs;
                    }
                    );
            }
            computeOutputShape(inputShape) {
                inputShape = (0,
                    _types_utils.getExactlyOneShape)(inputShape);
                const newSpace = [];
                const space = this.dataFormat === 'channelsLast' ? inputShape.slice(1, inputShape.length - 1) : inputShape.slice(2);
                for (let i = 0; i < space.length; ++i) {
                    const newDim = (0,
                        _conv_utils.convOutputLength)(space[i], this.kernelSize[i], this.padding, this.strides[i], typeof this.dilationRate === 'number' ? this.dilationRate : this.dilationRate[i]);
                    newSpace.push(newDim);
                }
                let outputShape = [inputShape[0]];
                if (this.dataFormat === 'channelsLast') {
                    outputShape = outputShape.concat(newSpace);
                    outputShape.push(this.filters);
                } else {
                    outputShape.push(this.filters);
                    outputShape = outputShape.concat(newSpace);
                }
                return outputShape;
            }
            getConfig() {
                const config = {
                    filters: this.filters,
                    kernelInitializer: (0,
                        _initializers.serializeInitializer)(this.kernelInitializer),
                    kernelRegularizer: (0,
                        _regularizers.serializeRegularizer)(this.kernelRegularizer),
                    kernelConstraint: (0,
                        _constraints.serializeConstraint)(this.kernelConstraint)
                };
                const baseConfig = super.getConfig();
                Object.assign(config, baseConfig);
                return config;
            }
            static verifyArgs(args) {
                // Check config.filters type, shape, and value.
                if (!('filters' in args) || typeof args.filters !== 'number' || args.filters < 1) {
                    throw new _errors.ValueError(`Convolution layer expected config.filters to be a 'number' > 0 ` + `but got ${JSON.stringify(args.filters)}`);
                }
            }
        }
        exports.Conv = Conv;
        class Conv2D extends Conv {
            constructor(args) {
                super(2, args);
                Conv2D.verifyArgs(args);
            }
            getConfig() {
                const config = super.getConfig();
                delete config['rank'];
                return config;
            }
            static verifyArgs(args) {
                // config.kernelSize must be a number or array of numbers.
                if (typeof args.kernelSize !== 'number' && !generic_utils.checkArrayTypeAndLength(args.kernelSize, 'number', 1, 2)) {
                    throw new _errors.ValueError(`Conv2D expects config.kernelSize to be number or number[] with ` + `length 1 or 2, but received ${JSON.stringify(args.kernelSize)}.`);
                }
            }
        }
        /** @nocollapse */
        exports.Conv2D = Conv2D;
        Conv2D.className = 'Conv2D';
        tfc.serialization.registerClass(Conv2D);
        class Conv3D extends Conv {
            constructor(args) {
                super(3, args);
                Conv3D.verifyArgs(args);
            }
            getConfig() {
                const config = super.getConfig();
                delete config['rank'];
                return config;
            }
            static verifyArgs(args) {
                // config.kernelSize must be a number or array of numbers.
                if (typeof args.kernelSize !== 'number') {
                    if (!(Array.isArray(args.kernelSize) && (args.kernelSize.length === 1 || args.kernelSize.length === 3))) {
                        throw new _errors.ValueError(`Conv3D expects config.kernelSize to be number or` + ` [number, number, number], but received ${JSON.stringify(args.kernelSize)}.`);
                    }
                }
            }
        }
        /** @nocollapse */
        exports.Conv3D = Conv3D;
        Conv3D.className = 'Conv3D';
        tfc.serialization.registerClass(Conv3D);
        class Conv2DTranspose extends Conv2D {
            constructor(args) {
                super(args);
                this.inputSpec = [new _topology.InputSpec({
                    ndim: 4
                })];
                if (this.padding !== 'same' && this.padding !== 'valid') {
                    throw new _errors.ValueError(`Conv2DTranspose currently supports only padding modes 'same' ` + `and 'valid', but received padding mode ${this.padding}`);
                }
            }
            build(inputShape) {
                inputShape = (0,
                    _types_utils.getExactlyOneShape)(inputShape);
                if (inputShape.length !== 4) {
                    throw new _errors.ValueError('Input should have rank 4; Received input shape: ' + JSON.stringify(inputShape));
                }
                const channelAxis = this.dataFormat === 'channelsFirst' ? 1 : inputShape.length - 1;
                if (inputShape[channelAxis] == null) {
                    throw new _errors.ValueError('The channel dimension of the inputs should be defined. ' + 'Found `None`.');
                }
                const inputDim = inputShape[channelAxis];
                const kernelShape = this.kernelSize.concat([this.filters, inputDim]);
                this.kernel = this.addWeight('kernel', kernelShape, 'float32', this.kernelInitializer, this.kernelRegularizer, true, this.kernelConstraint);
                if (this.useBias) {
                    this.bias = this.addWeight('bias', [this.filters], 'float32', this.biasInitializer, this.biasRegularizer, true, this.biasConstraint);
                }
                // Set input spec.
                this.inputSpec = [new _topology.InputSpec({
                    ndim: 4,
                    axes: {
                        [channelAxis]: inputDim
                    }
                })];
                this.built = true;
            }
            call(inputs, kwargs) {
                return tfc.tidy(() => {
                    let input = (0,
                        _types_utils.getExactlyOneTensor)(inputs);
                    if (input.shape.length !== 4) {
                        throw new _errors.ValueError(`Conv2DTranspose.call() expects input tensor to be rank-4, but ` + `received a tensor of rank-${input.shape.length}`);
                    }
                    const inputShape = input.shape;
                    const batchSize = inputShape[0];
                    let hAxis;
                    let wAxis;
                    if (this.dataFormat === 'channelsFirst') {
                        hAxis = 2;
                        wAxis = 3;
                    } else {
                        hAxis = 1;
                        wAxis = 2;
                    }
                    const height = inputShape[hAxis];
                    const width = inputShape[wAxis];
                    const kernelH = this.kernelSize[0];
                    const kernelW = this.kernelSize[1];
                    const strideH = this.strides[0];
                    const strideW = this.strides[1];
                    // Infer the dynamic output shape.
                    const outHeight = (0,
                        _conv_utils.deconvLength)(height, strideH, kernelH, this.padding);
                    const outWidth = (0,
                        _conv_utils.deconvLength)(width, strideW, kernelW, this.padding);
                    // Porting Note: We don't branch based on `this.dataFormat` here,
                    // because
                    //   the tjfs-core function `conv2dTranspose` called below always
                    //   assumes channelsLast.
                    const outputShape = [batchSize, outHeight, outWidth, this.filters];
                    if (this.dataFormat !== 'channelsLast') {
                        input = tfc.transpose(input, [0, 2, 3, 1]);
                    }
                    let outputs = tfc.conv2dTranspose(input, this.kernel.read(), outputShape, this.strides, this.padding);
                    if (this.dataFormat !== 'channelsLast') {
                        outputs = tfc.transpose(outputs, [0, 3, 1, 2]);
                    }
                    if (this.bias != null) {
                        outputs = K.biasAdd(outputs, this.bias.read(), this.dataFormat);
                    }
                    if (this.activation != null) {
                        outputs = this.activation.apply(outputs);
                    }
                    return outputs;
                }
                );
            }
            computeOutputShape(inputShape) {
                inputShape = (0,
                    _types_utils.getExactlyOneShape)(inputShape);
                const outputShape = inputShape.slice();
                let channelAxis;
                let heightAxis;
                let widthAxis;
                if (this.dataFormat === 'channelsFirst') {
                    channelAxis = 1;
                    heightAxis = 2;
                    widthAxis = 3;
                } else {
                    channelAxis = 3;
                    heightAxis = 1;
                    widthAxis = 2;
                }
                const kernelH = this.kernelSize[0];
                const kernelW = this.kernelSize[1];
                const strideH = this.strides[0];
                const strideW = this.strides[1];
                outputShape[channelAxis] = this.filters;
                outputShape[heightAxis] = (0,
                    _conv_utils.deconvLength)(outputShape[heightAxis], strideH, kernelH, this.padding);
                outputShape[widthAxis] = (0,
                    _conv_utils.deconvLength)(outputShape[widthAxis], strideW, kernelW, this.padding);
                return outputShape;
            }
            getConfig() {
                const config = super.getConfig();
                delete config['dilationRate'];
                return config;
            }
        }
        /** @nocollapse */
        exports.Conv2DTranspose = Conv2DTranspose;
        Conv2DTranspose.className = 'Conv2DTranspose';
        tfc.serialization.registerClass(Conv2DTranspose);
        class Conv3DTranspose extends Conv3D {
            constructor(args) {
                super(args);
                this.inputSpec = [new _topology.InputSpec({
                    ndim: 5
                })];
                if (this.padding !== 'same' && this.padding !== 'valid') {
                    throw new _errors.ValueError(`Conv3DTranspose currently supports only padding modes 'same' ` + `and 'valid', but received padding mode ${this.padding}`);
                }
            }
            build(inputShape) {
                inputShape = (0,
                    _types_utils.getExactlyOneShape)(inputShape);
                if (inputShape.length !== 5) {
                    throw new _errors.ValueError('Input should have rank 5; Received input shape: ' + JSON.stringify(inputShape));
                }
                const channelAxis = this.dataFormat === 'channelsFirst' ? 1 : inputShape.length - 1;
                if (inputShape[channelAxis] == null) {
                    throw new _errors.ValueError('The channel dimension of the inputs should be defined. ' + 'Found `None`.');
                }
                const inputDim = inputShape[channelAxis];
                const kernelShape = this.kernelSize.concat([this.filters, inputDim]);
                this.kernel = this.addWeight('kernel', kernelShape, 'float32', this.kernelInitializer, this.kernelRegularizer, true, this.kernelConstraint);
                if (this.useBias) {
                    this.bias = this.addWeight('bias', [this.filters], 'float32', this.biasInitializer, this.biasRegularizer, true, this.biasConstraint);
                }
                // Set input spec.
                this.inputSpec = [new _topology.InputSpec({
                    ndim: 5,
                    axes: {
                        [channelAxis]: inputDim
                    }
                })];
                this.built = true;
            }
            call(inputs, kwargs) {
                return tfc.tidy(() => {
                    let input = (0,
                        _types_utils.getExactlyOneTensor)(inputs);
                    if (input.shape.length !== 5) {
                        throw new _errors.ValueError(`Conv3DTranspose.call() expects input tensor to be rank-4, but ` + `received a tensor of rank-${input.shape.length}`);
                    }
                    const inputShape = input.shape;
                    const batchSize = inputShape[0];
                    let hAxis;
                    let wAxis;
                    let dAxis;
                    if (this.dataFormat === 'channelsFirst') {
                        dAxis = 2;
                        hAxis = 3;
                        wAxis = 4;
                    } else {
                        dAxis = 1;
                        hAxis = 2;
                        wAxis = 3;
                    }
                    const depth = inputShape[dAxis];
                    const height = inputShape[hAxis];
                    const width = inputShape[wAxis];
                    const kernelD = this.kernelSize[0];
                    const kernelH = this.kernelSize[1];
                    const kernelW = this.kernelSize[2];
                    const strideD = this.strides[0];
                    const strideH = this.strides[1];
                    const strideW = this.strides[2];
                    // Infer the dynamic output shape.
                    const outDepth = (0,
                        _conv_utils.deconvLength)(depth, strideD, kernelD, this.padding);
                    const outHeight = (0,
                        _conv_utils.deconvLength)(height, strideH, kernelH, this.padding);
                    const outWidth = (0,
                        _conv_utils.deconvLength)(width, strideW, kernelW, this.padding);
                    // Same as `conv2dTranspose`. We always assumes channelsLast.
                    const outputShape = [batchSize, outDepth, outHeight, outWidth, this.filters];
                    if (this.dataFormat !== 'channelsLast') {
                        input = tfc.transpose(input, [0, 2, 3, 4, 1]);
                    }
                    let outputs = tfc.conv3dTranspose(input, this.kernel.read(), outputShape, this.strides, this.padding);
                    if (this.dataFormat !== 'channelsLast') {
                        outputs = tfc.transpose(outputs, [0, 4, 1, 2, 3]);
                    }
                    if (this.bias !== null) {
                        outputs = K.biasAdd(outputs, this.bias.read(), this.dataFormat);
                    }
                    if (this.activation !== null) {
                        outputs = this.activation.apply(outputs);
                    }
                    return outputs;
                }
                );
            }
            computeOutputShape(inputShape) {
                inputShape = (0,
                    _types_utils.getExactlyOneShape)(inputShape);
                const outputShape = inputShape.slice();
                let channelAxis;
                let depthAxis;
                let heightAxis;
                let widthAxis;
                if (this.dataFormat === 'channelsFirst') {
                    channelAxis = 1;
                    depthAxis = 2;
                    heightAxis = 3;
                    widthAxis = 4;
                } else {
                    channelAxis = 4;
                    depthAxis = 1;
                    heightAxis = 2;
                    widthAxis = 3;
                }
                const kernelD = this.kernelSize[0];
                const kernelH = this.kernelSize[1];
                const kernelW = this.kernelSize[2];
                const strideD = this.strides[0];
                const strideH = this.strides[1];
                const strideW = this.strides[2];
                outputShape[channelAxis] = this.filters;
                outputShape[depthAxis] = (0,
                    _conv_utils.deconvLength)(outputShape[depthAxis], strideD, kernelD, this.padding);
                outputShape[heightAxis] = (0,
                    _conv_utils.deconvLength)(outputShape[heightAxis], strideH, kernelH, this.padding);
                outputShape[widthAxis] = (0,
                    _conv_utils.deconvLength)(outputShape[widthAxis], strideW, kernelW, this.padding);
                return outputShape;
            }
            getConfig() {
                const config = super.getConfig();
                delete config['dilationRate'];
                return config;
            }
        }
        /** @nocollapse */
        exports.Conv3DTranspose = Conv3DTranspose;
        Conv3DTranspose.className = 'Conv3DTranspose';
        tfc.serialization.registerClass(Conv3DTranspose);
        class SeparableConv extends Conv {
            constructor(rank, config) {
                super(rank, config);
                this.DEFAULT_DEPTHWISE_INITIALIZER = 'glorotUniform';
                this.DEFAULT_POINTWISE_INITIALIZER = 'glorotUniform';
                this.depthwiseKernel = null;
                this.pointwiseKernel = null;
                if (config.filters == null) {
                    throw new _errors.ValueError('The `filters` configuration field is required by SeparableConv, ' + 'but is unspecified.');
                }
                if (config.kernelInitializer != null || config.kernelRegularizer != null || config.kernelConstraint != null) {
                    throw new _errors.ValueError('Fields kernelInitializer, kernelRegularizer and kernelConstraint ' + 'are invalid for SeparableConv2D. Use depthwiseInitializer, ' + 'depthwiseRegularizer, depthwiseConstraint, pointwiseInitializer, ' + 'pointwiseRegularizer and pointwiseConstraint instead.');
                }
                if (config.padding != null && config.padding !== 'same' && config.padding !== 'valid') {
                    throw new _errors.ValueError(`SeparableConv${this.rank}D supports only padding modes: ` + `'same' and 'valid', but received ${JSON.stringify(config.padding)}`);
                }
                this.depthMultiplier = config.depthMultiplier == null ? 1 : config.depthMultiplier;
                this.depthwiseInitializer = (0,
                    _initializers.getInitializer)(config.depthwiseInitializer || this.DEFAULT_DEPTHWISE_INITIALIZER);
                this.depthwiseRegularizer = (0,
                    _regularizers.getRegularizer)(config.depthwiseRegularizer);
                this.depthwiseConstraint = (0,
                    _constraints.getConstraint)(config.depthwiseConstraint);
                this.pointwiseInitializer = (0,
                    _initializers.getInitializer)(config.depthwiseInitializer || this.DEFAULT_POINTWISE_INITIALIZER);
                this.pointwiseRegularizer = (0,
                    _regularizers.getRegularizer)(config.pointwiseRegularizer);
                this.pointwiseConstraint = (0,
                    _constraints.getConstraint)(config.pointwiseConstraint);
            }
            build(inputShape) {
                inputShape = (0,
                    _types_utils.getExactlyOneShape)(inputShape);
                if (inputShape.length < this.rank + 2) {
                    throw new _errors.ValueError(`Inputs to SeparableConv${this.rank}D should have rank ` + `${this.rank + 2}, but received input shape: ` + `${JSON.stringify(inputShape)}`);
                }
                const channelAxis = this.dataFormat === 'channelsFirst' ? 1 : inputShape.length - 1;
                if (inputShape[channelAxis] == null || inputShape[channelAxis] < 0) {
                    throw new _errors.ValueError(`The channel dimension of the inputs should be defined, ` + `but found ${JSON.stringify(inputShape[channelAxis])}`);
                }
                const inputDim = inputShape[channelAxis];
                const depthwiseKernelShape = this.kernelSize.concat([inputDim, this.depthMultiplier]);
                const pointwiseKernelShape = [];
                for (let i = 0; i < this.rank; ++i) {
                    pointwiseKernelShape.push(1);
                }
                pointwiseKernelShape.push(inputDim * this.depthMultiplier, this.filters);
                const trainable = true;
                this.depthwiseKernel = this.addWeight('depthwise_kernel', depthwiseKernelShape, 'float32', this.depthwiseInitializer, this.depthwiseRegularizer, trainable, this.depthwiseConstraint);
                this.pointwiseKernel = this.addWeight('pointwise_kernel', pointwiseKernelShape, 'float32', this.pointwiseInitializer, this.pointwiseRegularizer, trainable, this.pointwiseConstraint);
                if (this.useBias) {
                    this.bias = this.addWeight('bias', [this.filters], 'float32', this.biasInitializer, this.biasRegularizer, trainable, this.biasConstraint);
                } else {
                    this.bias = null;
                }
                this.inputSpec = [new _topology.InputSpec({
                    ndim: this.rank + 2,
                    axes: {
                        [channelAxis]: inputDim
                    }
                })];
                this.built = true;
            }
            call(inputs, kwargs) {
                return (0,
                    tfc.tidy)(() => {
                        inputs = (0,
                            _types_utils.getExactlyOneTensor)(inputs);
                        let output;
                        if (this.rank === 1) {
                            throw new _errors.NotImplementedError('1D separable convolution is not implemented yet.');
                        } else if (this.rank === 2) {
                            if (this.dataFormat === 'channelsFirst') {
                                inputs = tfc.transpose(inputs, [0, 2, 3, 1]);
                                // NCHW -> NHWC.
                            }

                            output = tfc.separableConv2d(inputs, this.depthwiseKernel.read(), this.pointwiseKernel.read(), this.strides, this.padding, this.dilationRate, 'NHWC');
                        }
                        if (this.useBias) {
                            output = K.biasAdd(output, this.bias.read(), this.dataFormat);
                        }
                        if (this.activation != null) {
                            output = this.activation.apply(output);
                        }
                        if (this.dataFormat === 'channelsFirst') {
                            output = tfc.transpose(output, [0, 3, 1, 2]);
                            // NHWC -> NCHW.
                        }

                        return output;
                    }
                    );
            }
            getConfig() {
                const config = super.getConfig();
                delete config['rank'];
                delete config['kernelInitializer'];
                delete config['kernelRegularizer'];
                delete config['kernelConstraint'];
                config['depthwiseInitializer'] = (0,
                    _initializers.serializeInitializer)(this.depthwiseInitializer);
                config['pointwiseInitializer'] = (0,
                    _initializers.serializeInitializer)(this.pointwiseInitializer);
                config['depthwiseRegularizer'] = (0,
                    _regularizers.serializeRegularizer)(this.depthwiseRegularizer);
                config['pointwiseRegularizer'] = (0,
                    _regularizers.serializeRegularizer)(this.pointwiseRegularizer);
                config['depthwiseConstraint'] = (0,
                    _constraints.serializeConstraint)(this.depthwiseConstraint);
                config['pointwiseConstraint'] = (0,
                    _constraints.serializeConstraint)(this.pointwiseConstraint);
                return config;
            }
        }
        /** @nocollapse */
        exports.SeparableConv = SeparableConv;
        SeparableConv.className = 'SeparableConv';
        class SeparableConv2D extends SeparableConv {
            constructor(args) {
                super(2, args);
            }
        }
        /** @nocollapse */
        exports.SeparableConv2D = SeparableConv2D;
        SeparableConv2D.className = 'SeparableConv2D';
        tfc.serialization.registerClass(SeparableConv2D);
        class Conv1D extends Conv {
            constructor(args) {
                super(1, args);
                Conv1D.verifyArgs(args);
                this.inputSpec = [{
                    ndim: 3
                }];
            }
            getConfig() {
                const config = super.getConfig();
                delete config['rank'];
                delete config['dataFormat'];
                return config;
            }
            static verifyArgs(args) {
                // config.kernelSize must be a number or array of numbers.
                if (typeof args.kernelSize !== 'number' && !generic_utils.checkArrayTypeAndLength(args.kernelSize, 'number', 1, 1)) {
                    throw new _errors.ValueError(`Conv1D expects config.kernelSize to be number or number[] with ` + `length 1, but received ${JSON.stringify(args.kernelSize)}.`);
                }
            }
        }
        /** @nocollapse */
        exports.Conv1D = Conv1D;
        Conv1D.className = 'Conv1D';
        tfc.serialization.registerClass(Conv1D);
        class Cropping2D extends _topology.Layer {
            constructor(args) {
                super(args);
                if (typeof args.cropping === 'number') {
                    this.cropping = [[args.cropping, args.cropping], [args.cropping, args.cropping]];
                } else if (typeof args.cropping[0] === 'number') {
                    this.cropping = [[args.cropping[0], args.cropping[0]], [args.cropping[1], args.cropping[1]]];
                } else {
                    this.cropping = args.cropping;
                }
                this.dataFormat = args.dataFormat === undefined ? 'channelsLast' : args.dataFormat;
                this.inputSpec = [{
                    ndim: 4
                }];
            }
            computeOutputShape(inputShape) {
                if (this.dataFormat === 'channelsFirst') {
                    return [inputShape[0], inputShape[1], inputShape[2] - this.cropping[0][0] - this.cropping[0][1], inputShape[3] - this.cropping[1][0] - this.cropping[1][1]];
                } else {
                    return [inputShape[0], inputShape[1] - this.cropping[0][0] - this.cropping[0][1], inputShape[2] - this.cropping[1][0] - this.cropping[1][1], inputShape[3]];
                }
            }
            call(inputs, kwargs) {
                return (0,
                    tfc.tidy)(() => {
                        inputs = (0,
                            _types_utils.getExactlyOneTensor)(inputs);
                        if (this.dataFormat === 'channelsLast') {
                            const hSliced = K.sliceAlongAxis(inputs, this.cropping[0][0], inputs.shape[1] - this.cropping[0][0] - this.cropping[0][1], 2);
                            return K.sliceAlongAxis(hSliced, this.cropping[1][0], inputs.shape[2] - this.cropping[1][1] - this.cropping[1][0], 3);
                        } else {
                            const hSliced = K.sliceAlongAxis(inputs, this.cropping[0][0], inputs.shape[2] - this.cropping[0][0] - this.cropping[0][1], 3);
                            return K.sliceAlongAxis(hSliced, this.cropping[1][0], inputs.shape[3] - this.cropping[1][1] - this.cropping[1][0], 4);
                        }
                    }
                    );
            }
            getConfig() {
                const config = {
                    cropping: this.cropping,
                    dataFormat: this.dataFormat
                };
                const baseConfig = super.getConfig();
                Object.assign(config, baseConfig);
                return config;
            }
        }
        /** @nocollapse */
        exports.Cropping2D = Cropping2D;
        Cropping2D.className = 'Cropping2D';
        tfc.serialization.registerClass(Cropping2D);
        class UpSampling2D extends _topology.Layer {
            constructor(args) {
                super(args);
                this.DEFAULT_SIZE = [2, 2];
                this.inputSpec = [{
                    ndim: 4
                }];
                this.size = args.size == null ? this.DEFAULT_SIZE : args.size;
                this.dataFormat = args.dataFormat == null ? 'channelsLast' : args.dataFormat;
                (0,
                    _common2.checkDataFormat)(this.dataFormat);
                this.interpolation = args.interpolation == null ? 'nearest' : args.interpolation;
                (0,
                    _common2.checkInterpolationFormat)(this.interpolation);
            }
            computeOutputShape(inputShape) {
                if (this.dataFormat === 'channelsFirst') {
                    const height = inputShape[2] == null ? null : this.size[0] * inputShape[2];
                    const width = inputShape[3] == null ? null : this.size[1] * inputShape[3];
                    return [inputShape[0], inputShape[1], height, width];
                } else {
                    const height = inputShape[1] == null ? null : this.size[0] * inputShape[1];
                    const width = inputShape[2] == null ? null : this.size[1] * inputShape[2];
                    return [inputShape[0], height, width, inputShape[3]];
                }
            }
            call(inputs, kwargs) {
                return tfc.tidy(() => {
                    let input = (0,
                        _types_utils.getExactlyOneTensor)(inputs);
                    const inputShape = input.shape;
                    if (this.dataFormat === 'channelsFirst') {
                        input = tfc.transpose(input, [0, 2, 3, 1]);
                        const height = this.size[0] * inputShape[2];
                        const width = this.size[1] * inputShape[3];
                        const resized = this.interpolation === 'nearest' ? tfc.image.resizeNearestNeighbor(input, [height, width]) : tfc.image.resizeBilinear(input, [height, width]);
                        return tfc.transpose(resized, [0, 3, 1, 2]);
                    } else {
                        const height = this.size[0] * inputShape[1];
                        const width = this.size[1] * inputShape[2];
                        return this.interpolation === 'nearest' ? tfc.image.resizeNearestNeighbor(input, [height, width]) : tfc.image.resizeBilinear(input, [height, width]);
                    }
                }
                );
            }
            getConfig() {
                const config = {
                    size: this.size,
                    dataFormat: this.dataFormat,
                    interpolation: this.interpolation
                };
                const baseConfig = super.getConfig();
                Object.assign(config, baseConfig);
                return config;
            }
        }
        /** @nocollapse */
        exports.UpSampling2D = UpSampling2D;
        UpSampling2D.className = 'UpSampling2D';
        tfc.serialization.registerClass(UpSampling2D);

    }
        , {
        "../activations": 513,
        "../backend/common": 514,
        "../backend/tfjs_backend": 516,
        "../common": 519,
        "../constraints": 520,
        "../engine/topology": 524,
        "../errors": 529,
        "../initializers": 539,
        "../regularizers": 566,
        "../utils/conv_utils": 568,
        "../utils/generic_utils": 570,
        "../utils/types_utils": 574,
        "@tensorflow/tfjs-core": 506
    }],
    544: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.DepthwiseConv2D = void 0;
        exports.depthwiseConv2d = depthwiseConv2d;
        var tfc = _interopRequireWildcard(require("@tensorflow/tfjs-core"));
        var _common = require("../backend/common");
        var K = _interopRequireWildcard(require("../backend/tfjs_backend"));
        var _common2 = require("../common");
        var _constraints = require("../constraints");
        var _errors = require("../errors");
        var _initializers = require("../initializers");
        var _regularizers = require("../regularizers");
        var _conv_utils = require("../utils/conv_utils");
        var _types_utils = require("../utils/types_utils");
        var _convolutional = require("./convolutional");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2018 Google LLC
         *
         * Use of this source code is governed by an MIT-style
         * license that can be found in the LICENSE file or at
         * https://opensource.org/licenses/MIT.
         * =============================================================================
         */
        /**
         * TensorFlow.js Layers: Depthwise Convolutional Layers
         */

        /**
         * 2D convolution with separable filters.
         * @param x Input tensor.
         * @param depthwiseKernel Convolution kernel for depthwise convolution.
         * @param strides Strides (Array of two integers).
         * @param padding Padding model.
         * @param dataFormat Data format.
         * @param dilationRate Array of two integers, dilation rates for the separable
         *   convolution.
         * @returns Output tensor.
         * @throws ValueError If depthwiseKernel is not a 4D array.
         */
        function depthwiseConv2d(x, depthwiseKernel, strides = [1, 1], padding = 'valid', dataFormat, dilationRate) {
            return (0,
                tfc.tidy)(() => {
                    if (dataFormat == null) {
                        dataFormat = (0,
                            _common.imageDataFormat)();
                    }
                    (0,
                        _common2.checkDataFormat)(dataFormat);
                    let y = (0,
                        _convolutional.preprocessConv2DInput)(x, dataFormat);
                    if (x.rank !== 4) {
                        throw new _errors.ValueError(`Input for depthwiseConv2d is required to be 4-D, but is instead ` + `${x.rank}-D`);
                    }
                    if (depthwiseKernel.rank !== 4) {
                        throw new _errors.ValueError(`depthwiseKernel is required to be 4-D, but is instead ` + `${depthwiseKernel.rank}-D`);
                    }
                    y = tfc.depthwiseConv2d(y, depthwiseKernel, strides, padding === 'same' ? 'same' : 'valid', 'NHWC', dilationRate);
                    if (dataFormat === 'channelsFirst') {
                        y = tfc.transpose(y, [0, 3, 1, 2]);
                    }
                    return y;
                }
                );
        }
        class DepthwiseConv2D extends _convolutional.BaseConv {
            constructor(args) {
                super(2, args);
                this.depthwiseKernel = null;
                this.depthMultiplier = args.depthMultiplier == null ? 1 : args.depthMultiplier;
                this.depthwiseInitializer = (0,
                    _initializers.getInitializer)(args.depthwiseInitializer || this.DEFAULT_KERNEL_INITIALIZER);
                this.depthwiseConstraint = (0,
                    _constraints.getConstraint)(args.depthwiseConstraint);
                this.depthwiseRegularizer = (0,
                    _regularizers.getRegularizer)(args.depthwiseRegularizer);
            }
            build(inputShape) {
                inputShape = (0,
                    _types_utils.getExactlyOneShape)(inputShape);
                if (inputShape.length < 4) {
                    throw new _errors.ValueError(`Inputs to DepthwiseConv2D should have rank 4. ` + `Received input shape: ${JSON.stringify(inputShape)}.`);
                }
                const channelAxis = this.dataFormat === 'channelsFirst' ? 1 : 3;
                if (inputShape[channelAxis] == null || inputShape[channelAxis] < 0) {
                    throw new _errors.ValueError('The channel dimension of the inputs to DepthwiseConv2D should ' + `be defined, but is not (${inputShape[channelAxis]}).`);
                }
                const inputDim = inputShape[channelAxis];
                const depthwiseKernelShape = [this.kernelSize[0], this.kernelSize[1], inputDim, this.depthMultiplier];
                this.depthwiseKernel = this.addWeight('depthwise_kernel', depthwiseKernelShape, null, this.depthwiseInitializer, this.depthwiseRegularizer, true, this.depthwiseConstraint);
                if (this.useBias) {
                    this.bias = this.addWeight('bias', [inputDim * this.depthMultiplier], null, this.biasInitializer, this.biasRegularizer, true, this.biasConstraint);
                } else {
                    this.bias = null;
                }
                this.built = true;
            }
            call(inputs, kwargs) {
                return (0,
                    tfc.tidy)(() => {
                        inputs = (0,
                            _types_utils.getExactlyOneTensor)(inputs);
                        let outputs = depthwiseConv2d(inputs, this.depthwiseKernel.read(), this.strides, this.padding, this.dataFormat, null);
                        // TODO(cais): Add support for dilation.
                        if (this.useBias) {
                            outputs = K.biasAdd(outputs, this.bias.read(), this.dataFormat);
                        }
                        if (this.activation != null) {
                            outputs = this.activation.apply(outputs);
                        }
                        return outputs;
                    }
                    );
            }
            computeOutputShape(inputShape) {
                inputShape = (0,
                    _types_utils.getExactlyOneShape)(inputShape);
                const rows = this.dataFormat === 'channelsFirst' ? inputShape[2] : inputShape[1];
                const cols = this.dataFormat === 'channelsFirst' ? inputShape[3] : inputShape[2];
                const outFilters = this.dataFormat === 'channelsFirst' ? inputShape[1] * this.depthMultiplier : inputShape[3] * this.depthMultiplier;
                const outRows = (0,
                    _conv_utils.convOutputLength)(rows, this.kernelSize[0], this.padding, this.strides[0]);
                const outCols = (0,
                    _conv_utils.convOutputLength)(cols, this.kernelSize[1], this.padding, this.strides[1]);
                if (this.dataFormat === 'channelsFirst') {
                    return [inputShape[0], outFilters, outRows, outCols];
                } else {
                    // In this case, assume 'channelsLast'.
                    return [inputShape[0], outRows, outCols, outFilters];
                }
            }
            getConfig() {
                const config = super.getConfig();
                config['depthMultiplier'] = this.depthMultiplier;
                config['depthwiseInitializer'] = (0,
                    _initializers.serializeInitializer)(this.depthwiseInitializer);
                config['depthwiseRegularizer'] = (0,
                    _regularizers.serializeRegularizer)(this.depthwiseRegularizer);
                config['depthwiseConstraint'] = (0,
                    _constraints.serializeConstraint)(this.depthwiseRegularizer);
                return config;
            }
        }
        /** @nocollapse */
        exports.DepthwiseConv2D = DepthwiseConv2D;
        DepthwiseConv2D.className = 'DepthwiseConv2D';
        tfc.serialization.registerClass(DepthwiseConv2D);

    }
        , {
        "../backend/common": 514,
        "../backend/tfjs_backend": 516,
        "../common": 519,
        "../constraints": 520,
        "../errors": 529,
        "../initializers": 539,
        "../regularizers": 566,
        "../utils/conv_utils": 568,
        "../utils/types_utils": 574,
        "./convolutional": 543,
        "@tensorflow/tfjs-core": 506
    }],
    545: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.ConvLSTM2DCell = exports.ConvLSTM2D = void 0;
        var tfc = _interopRequireWildcard(require("@tensorflow/tfjs-core"));
        var K = _interopRequireWildcard(require("../backend/tfjs_backend"));
        var _common = require("../common");
        var _topology = require("../engine/topology");
        var _errors = require("../errors");
        var _initializers = require("../initializers");
        var _conv_utils = require("../utils/conv_utils");
        var _generic_utils = require("../utils/generic_utils");
        var _types_utils = require("../utils/types_utils");
        var _recurrent = require("./recurrent");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2020 Google LLC
         *
         * Use of this source code is governed by an MIT-style
         * license that can be found in the LICENSE file or at
         * https://opensource.org/licenses/MIT.
         * =============================================================================
         */
        var __rest = void 0 && (void 0).__rest || function (s, e) {
            var t = {};
            for (var p in s)
                if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
                    t[p] = s[p];
            if (s != null && typeof Object.getOwnPropertySymbols === "function")
                for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
                    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
                        t[p[i]] = s[p[i]];
                }
            return t;
        };
        class ConvRNN2DCell extends _recurrent.RNNCell {
        }
        /**
         * Base class for convolutional-recurrent layers.
         */
        class ConvRNN2D extends _recurrent.RNN {
            constructor(args) {
                if (args.unroll) {
                    throw new _errors.NotImplementedError('Unrolling is not possible with convolutional RNNs.');
                }
                if (Array.isArray(args.cell)) {
                    throw new _errors.NotImplementedError('It is not possible at the moment to stack convolutional cells.');
                }
                super(args);
                this.inputSpec = [new _topology.InputSpec({
                    ndim: 5
                })];
            }
            call(inputs, kwargs) {
                return tfc.tidy(() => {
                    if (this.cell.dropoutMask != null) {
                        tfc.dispose(this.cell.dropoutMask);
                        this.cell.dropoutMask = null;
                    }
                    if (this.cell.recurrentDropoutMask != null) {
                        tfc.dispose(this.cell.recurrentDropoutMask);
                        this.cell.recurrentDropoutMask = null;
                    }
                    if (kwargs && kwargs['constants']) {
                        throw new _errors.ValueError('ConvRNN2D cell does not support constants');
                    }
                    const mask = kwargs == null ? null : kwargs['mask'];
                    const training = kwargs == null ? null : kwargs['training'];
                    const initialState = kwargs == null ? null : kwargs['initialState'];
                    return super.call(inputs, {
                        mask,
                        training,
                        initialState
                    });
                }
                );
            }
            computeOutputShape(inputShape) {
                let outShape = this.computeSingleOutputShape(inputShape);
                if (!this.returnSequences) {
                    outShape = [outShape[0], ...outShape.slice(2)];
                }
                if (this.returnState) {
                    outShape = [outShape, ...Array(2).fill([inputShape[0], ...outShape.slice(-3)])];
                }
                return outShape;
            }
            getInitialState(inputs) {
                return tfc.tidy(() => {
                    const { stateSize } = this.cell;
                    const inputShape = inputs.shape;
                    const outputShape = this.computeSingleOutputShape(inputShape);
                    const stateShape = [outputShape[0], ...outputShape.slice(2)];
                    const initialState = tfc.zeros(stateShape);
                    if (Array.isArray(stateSize)) {
                        return Array(stateSize.length).fill(initialState);
                    }
                    return [initialState];
                }
                );
            }
            resetStates(states, training = false) {
                tfc.tidy(() => {
                    if (!this.stateful) {
                        throw new _errors.AttributeError('Cannot call resetStates() on an RNN Layer that is not stateful.');
                    }
                    const inputShape = this.inputSpec[0].shape;
                    const outputShape = this.computeSingleOutputShape(inputShape);
                    const stateShape = [outputShape[0], ...outputShape.slice(2)];
                    const batchSize = inputShape[0];
                    if (batchSize == null) {
                        throw new _errors.ValueError('If an RNN is stateful, it needs to know its batch size. Specify ' + 'the batch size of your input tensors: \n' + '- If using a Sequential model, specify the batch size by ' + 'passing a `batchInputShape` option to your first layer.\n' + '- If using the functional API, specify the batch size by ' + 'passing a `batchShape` option to your Input layer.');
                    }
                    // Initialize state if null.
                    if (this.getStates() == null) {
                        if (Array.isArray(this.cell.stateSize)) {
                            this.states_ = this.cell.stateSize.map(() => tfc.zeros(stateShape));
                        } else {
                            this.states_ = [tfc.zeros(stateShape)];
                        }
                    } else if (states == null) {
                        // Dispose old state tensors.
                        tfc.dispose(this.states_);
                        // For stateful RNNs, fully dispose kept old states.
                        if (this.keptStates != null) {
                            tfc.dispose(this.keptStates);
                            this.keptStates = [];
                        }
                        if (Array.isArray(this.cell.stateSize)) {
                            this.states_ = this.cell.stateSize.map(() => tfc.zeros(stateShape));
                        } else {
                            this.states_[0] = tfc.zeros(stateShape);
                        }
                    } else {
                        if (!Array.isArray(states)) {
                            states = [states];
                        }
                        if (states.length !== this.states_.length) {
                            throw new _errors.ValueError(`Layer ${this.name} expects ${this.states_.length} state(s), ` + `but it received ${states.length} state value(s). Input ` + `received: ${states}`);
                        }
                        if (training) {
                            // Store old state tensors for complete disposal later, i.e., during
                            // the next no-arg call to this method. We do not dispose the old
                            // states immediately because that BPTT (among other things) require
                            // them.
                            this.keptStates.push(this.states_.slice());
                        } else {
                            tfc.dispose(this.states_);
                        }
                        for (let index = 0; index < this.states_.length; ++index) {
                            const value = states[index];
                            const expectedShape = stateShape;
                            if (!tfc.util.arraysEqual(value.shape, expectedShape)) {
                                throw new _errors.ValueError(`State ${index} is incompatible with layer ${this.name}: ` + `expected shape=${expectedShape}, received shape=${value.shape}`);
                            }
                            this.states_[index] = value;
                        }
                    }
                    this.states_ = this.states_.map(state => tfc.keep(state.clone()));
                }
                );
            }
            computeSingleOutputShape(inputShape) {
                const { dataFormat, filters, kernelSize, padding, strides, dilationRate } = this.cell;
                const isChannelsFirst = dataFormat === 'channelsFirst';
                const h = inputShape[isChannelsFirst ? 3 : 2];
                const w = inputShape[isChannelsFirst ? 4 : 3];
                const hOut = (0,
                    _conv_utils.convOutputLength)(h, kernelSize[0], padding, strides[0], dilationRate[0]);
                const wOut = (0,
                    _conv_utils.convOutputLength)(w, kernelSize[1], padding, strides[1], dilationRate[1]);
                const outShape = [...inputShape.slice(0, 2), ...(isChannelsFirst ? [filters, hOut, wOut] : [hOut, wOut, filters])];
                return outShape;
            }
        }
        /** @nocollapse */
        ConvRNN2D.className = 'ConvRNN2D';
        class ConvLSTM2DCell extends _recurrent.LSTMCell {
            constructor(args) {
                const { filters, kernelSize, strides, padding, dataFormat, dilationRate } = args;
                super(Object.assign(Object.assign({}, args), {
                    units: filters
                }));
                this.filters = filters;
                (0,
                    _generic_utils.assertPositiveInteger)(this.filters, 'filters');
                this.kernelSize = (0,
                    _conv_utils.normalizeArray)(kernelSize, 2, 'kernelSize');
                this.kernelSize.forEach(size => (0,
                    _generic_utils.assertPositiveInteger)(size, 'kernelSize'));
                this.strides = (0,
                    _conv_utils.normalizeArray)(strides || 1, 2, 'strides');
                this.strides.forEach(stride => (0,
                    _generic_utils.assertPositiveInteger)(stride, 'strides'));
                this.padding = padding || 'valid';
                (0,
                    _common.checkPaddingMode)(this.padding);
                this.dataFormat = dataFormat || 'channelsLast';
                (0,
                    _common.checkDataFormat)(this.dataFormat);
                this.dilationRate = (0,
                    _conv_utils.normalizeArray)(dilationRate || 1, 2, 'dilationRate');
                this.dilationRate.forEach(rate => (0,
                    _generic_utils.assertPositiveInteger)(rate, 'dilationRate'));
            }
            build(inputShape) {
                var _a;
                inputShape = (0,
                    _types_utils.getExactlyOneShape)(inputShape);
                const channelAxis = this.dataFormat === 'channelsFirst' ? 1 : inputShape.length - 1;
                if (inputShape[channelAxis] == null) {
                    throw new _errors.ValueError(`The channel dimension of the input should be defined. ` + `Found ${inputShape[channelAxis]}`);
                }
                const inputDim = inputShape[channelAxis];
                const numOfKernels = 4;
                const kernelShape = this.kernelSize.concat([inputDim, this.filters * numOfKernels]);
                this.kernel = this.addWeight('kernel', kernelShape, null, this.kernelInitializer, this.kernelRegularizer, true, this.kernelConstraint);
                const recurrentKernelShape = this.kernelSize.concat([this.filters, this.filters * numOfKernels]);
                this.recurrentKernel = this.addWeight('recurrent_kernel', recurrentKernelShape, null, this.recurrentInitializer, this.recurrentRegularizer, true, this.recurrentConstraint);
                if (this.useBias) {
                    let biasInitializer;
                    if (this.unitForgetBias) {
                        const init = this.biasInitializer;
                        const filters = this.filters;
                        biasInitializer = new (_a = class CustomInit extends _initializers.Initializer {
                            apply(shape, dtype) {
                                const biasI = init.apply([filters]);
                                const biasF = tfc.ones([filters]);
                                const biasCAndO = init.apply([filters * 2]);
                                return K.concatenate([biasI, biasF, biasCAndO]);
                            }
                        }
                            ,
                            /** @nocollapse */
                            _a.className = 'CustomInit',
                            _a)();
                    } else {
                        biasInitializer = this.biasInitializer;
                    }
                    this.bias = this.addWeight('bias', [this.filters * numOfKernels], null, biasInitializer, this.biasRegularizer, true, this.biasConstraint);
                }
                this.built = true;
            }
            call(inputs, kwargs) {
                return tfc.tidy(() => {
                    if (inputs.length !== 3) {
                        throw new _errors.ValueError(`ConvLSTM2DCell expects 3 input Tensors (inputs, h, c), got ` + `${inputs.length}.`);
                    }
                    const training = kwargs['training'] || false;
                    const x = inputs[0];
                    // Current input
                    const hTMinus1 = inputs[1];
                    // Previous memory state.
                    const cTMinus1 = inputs[2];
                    // Previous carry state.
                    const numOfKernels = 4;
                    if (0 < this.dropout && this.dropout < 1 && this.dropoutMask == null) {
                        this.dropoutMask = (0,
                            _recurrent.generateDropoutMask)({
                                ones: () => tfc.onesLike(x),
                                rate: this.dropout,
                                training,
                                count: numOfKernels,
                                dropoutFunc: this.dropoutFunc
                            });
                    }
                    const dropoutMask = this.dropoutMask;
                    const applyDropout = (x, mask, index) => {
                        if (!mask || !mask[index]) {
                            return x;
                        }
                        return tfc.mul(mask[index], x);
                    }
                        ;
                    let xI = applyDropout(x, dropoutMask, 0);
                    let xF = applyDropout(x, dropoutMask, 1);
                    let xC = applyDropout(x, dropoutMask, 2);
                    let xO = applyDropout(x, dropoutMask, 3);
                    if (0 < this.recurrentDropout && this.recurrentDropout < 1 && this.recurrentDropoutMask == null) {
                        this.recurrentDropoutMask = (0,
                            _recurrent.generateDropoutMask)({
                                ones: () => tfc.onesLike(hTMinus1),
                                rate: this.recurrentDropout,
                                training,
                                count: numOfKernels,
                                dropoutFunc: this.dropoutFunc
                            });
                    }
                    const recDropoutMask = this.recurrentDropoutMask;
                    let hI = applyDropout(hTMinus1, recDropoutMask, 0);
                    let hF = applyDropout(hTMinus1, recDropoutMask, 1);
                    let hC = applyDropout(hTMinus1, recDropoutMask, 2);
                    let hO = applyDropout(hTMinus1, recDropoutMask, 3);
                    const kernelChannelAxis = 3;
                    const [kernelI, kernelF, kernelC, kernelO] = tfc.split(this.kernel.read(), numOfKernels, kernelChannelAxis);
                    const [biasI, biasF, biasC, biasO] = this.useBias ? tfc.split(this.bias.read(), numOfKernels) : [null, null, null, null];
                    xI = this.inputConv(xI, kernelI, biasI, this.padding);
                    xF = this.inputConv(xF, kernelF, biasF, this.padding);
                    xC = this.inputConv(xC, kernelC, biasC, this.padding);
                    xO = this.inputConv(xO, kernelO, biasO, this.padding);
                    const [recKernelI, recKernelF, recKernelC, recKernelO] = tfc.split(this.recurrentKernel.read(), numOfKernels, kernelChannelAxis);
                    hI = this.recurrentConv(hI, recKernelI);
                    hF = this.recurrentConv(hF, recKernelF);
                    hC = this.recurrentConv(hC, recKernelC);
                    hO = this.recurrentConv(hO, recKernelO);
                    const i = this.recurrentActivation.apply(tfc.add(xI, hI));
                    const f = this.recurrentActivation.apply(tfc.add(xF, hF));
                    const c = tfc.add(tfc.mul(f, cTMinus1), tfc.mul(i, this.activation.apply(tfc.add(xC, hC))));
                    const h = tfc.mul(this.recurrentActivation.apply(tfc.add(xO, hO)), this.activation.apply(c));
                    return [h, h, c];
                }
                );
            }
            getConfig() {
                const _a = super.getConfig()
                    , { 'units': _ } = _a
                    , baseConfig = __rest(_a, ['units']);
                const config = {
                    filters: this.filters,
                    kernelSize: this.kernelSize,
                    padding: this.padding,
                    dataFormat: this.dataFormat,
                    dilationRate: this.dilationRate,
                    strides: this.strides
                };
                return Object.assign(Object.assign({}, baseConfig), config);
            }
            inputConv(x, w, b, padding) {
                const out = tfc.conv2d(x, w, this.strides, padding || 'valid', this.dataFormat === 'channelsFirst' ? 'NCHW' : 'NHWC', this.dilationRate);
                if (b) {
                    return K.biasAdd(out, b, this.dataFormat);
                }
                return out;
            }
            recurrentConv(x, w) {
                const strides = 1;
                return tfc.conv2d(x, w, strides, 'same', this.dataFormat === 'channelsFirst' ? 'NCHW' : 'NHWC');
            }
        }
        /** @nocollapse */
        exports.ConvLSTM2DCell = ConvLSTM2DCell;
        ConvLSTM2DCell.className = 'ConvLSTM2DCell';
        tfc.serialization.registerClass(ConvLSTM2DCell);
        class ConvLSTM2D extends ConvRNN2D {
            constructor(args) {
                const cell = new ConvLSTM2DCell(args);
                super(Object.assign(Object.assign({}, args), {
                    cell
                }));
            }
            /** @nocollapse */
            static fromConfig(cls, config) {
                return new cls(config);
            }
        }
        /** @nocollapse */
        exports.ConvLSTM2D = ConvLSTM2D;
        ConvLSTM2D.className = 'ConvLSTM2D';
        tfc.serialization.registerClass(ConvLSTM2D);

    }
        , {
        "../backend/tfjs_backend": 516,
        "../common": 519,
        "../engine/topology": 524,
        "../errors": 529,
        "../initializers": 539,
        "../utils/conv_utils": 568,
        "../utils/generic_utils": 570,
        "../utils/types_utils": 574,
        "./recurrent": 558,
        "@tensorflow/tfjs-core": 506
    }],
    546: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.SpatialDropout1D = exports.Reshape = exports.RepeatVector = exports.Permute = exports.Masking = exports.Flatten = exports.Dropout = exports.Dense = exports.Activation = void 0;
        var _tfjsCore = require("@tensorflow/tfjs-core");
        var _activations = require("../activations");
        var K = _interopRequireWildcard(require("../backend/tfjs_backend"));
        var _constraints = require("../constraints");
        var _topology = require("../engine/topology");
        var _errors = require("../errors");
        var _initializers = require("../initializers");
        var _regularizers = require("../regularizers");
        var _generic_utils = require("../utils/generic_utils");
        var _math_utils = require("../utils/math_utils");
        var _types_utils = require("../utils/types_utils");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2018 Google LLC
         *
         * Use of this source code is governed by an MIT-style
         * license that can be found in the LICENSE file or at
         * https://opensource.org/licenses/MIT.
         * =============================================================================
         */
        /**
         * TensorFlow.js Layers: Basic Layers.
         */

        class Dropout extends _topology.Layer {
            constructor(args) {
                super(args);
                this.rate = Math.max(Math.min(args.rate, 1), 0);
                // So that the scalar doesn't get tidied up between executions.
                this.noiseShape = args.noiseShape;
                this.seed = args.seed;
                this.supportsMasking = true;
            }
            getNoiseShape(input) {
                if (this.noiseShape == null) {
                    return this.noiseShape;
                }
                const inputShape = input.shape;
                const noiseShape = [];
                for (let i = 0; i < this.noiseShape.length; ++i) {
                    noiseShape.push(this.noiseShape[i] == null ? inputShape[i] : this.noiseShape[i]);
                }
                return noiseShape;
            }
            call(inputs, kwargs) {
                return (0,
                    _tfjsCore.tidy)(() => {
                        this.invokeCallHook(inputs, kwargs);
                        const input = (0,
                            _types_utils.getExactlyOneTensor)(inputs);
                        if (0 < this.rate && this.rate < 1) {
                            const training = kwargs['training'] == null ? false : kwargs['training'];
                            const noiseShape = this.getNoiseShape(input);
                            const output = K.inTrainPhase(() => K.dropout(input, this.rate, noiseShape, this.seed), () => input, training);
                            return output;
                        }
                        return inputs;
                    }
                    );
            }
            getConfig() {
                const config = {
                    rate: this.rate,
                    noiseShape: this.noiseShape,
                    seed: this.seed
                };
                const baseConfig = super.getConfig();
                Object.assign(config, baseConfig);
                return config;
            }
            dispose() {
                return super.dispose();
            }
        }
        /** @nocollapse */
        exports.Dropout = Dropout;
        Dropout.className = 'Dropout';
        _tfjsCore.serialization.registerClass(Dropout);
        class SpatialDropout1D extends Dropout {
            constructor(args) {
                super(args);
                this.inputSpec = [{
                    ndim: 3
                }];
            }
            getNoiseShape(input) {
                const inputShape = input.shape;
                return [inputShape[0], 1, inputShape[2]];
            }
        }
        /** @nocollapse */
        exports.SpatialDropout1D = SpatialDropout1D;
        SpatialDropout1D.className = 'SpatialDropout1D';
        _tfjsCore.serialization.registerClass(SpatialDropout1D);
        class Dense extends _topology.Layer {
            constructor(args) {
                super(args);
                // Default activation: Linear (none).
                this.activation = null;
                this.useBias = true;
                this.kernel = null;
                this.bias = null;
                this.DEFAULT_KERNEL_INITIALIZER = 'glorotNormal';
                this.DEFAULT_BIAS_INITIALIZER = 'zeros';
                if (args.batchInputShape == null && args.inputShape == null && args.inputDim != null) {
                    // This logic is copied from Layer's constructor, since we can't
                    // do exactly what the Python constructor does for Dense().
                    let batchSize = null;
                    if (args.batchSize != null) {
                        batchSize = args.batchSize;
                    }
                    this.batchInputShape = [batchSize, args.inputDim];
                }
                this.units = args.units;
                (0,
                    _generic_utils.assertPositiveInteger)(this.units, 'units');
                this.activation = (0,
                    _activations.getActivation)(args.activation);
                if (args.useBias != null) {
                    this.useBias = args.useBias;
                }
                this.kernelInitializer = (0,
                    _initializers.getInitializer)(args.kernelInitializer || this.DEFAULT_KERNEL_INITIALIZER);
                this.biasInitializer = (0,
                    _initializers.getInitializer)(args.biasInitializer || this.DEFAULT_BIAS_INITIALIZER);
                this.kernelConstraint = (0,
                    _constraints.getConstraint)(args.kernelConstraint);
                this.biasConstraint = (0,
                    _constraints.getConstraint)(args.biasConstraint);
                this.kernelRegularizer = (0,
                    _regularizers.getRegularizer)(args.kernelRegularizer);
                this.biasRegularizer = (0,
                    _regularizers.getRegularizer)(args.biasRegularizer);
                this.activityRegularizer = (0,
                    _regularizers.getRegularizer)(args.activityRegularizer);
                this.supportsMasking = true;
                this.inputSpec = [{
                    minNDim: 2
                }];
            }
            build(inputShape) {
                inputShape = (0,
                    _types_utils.getExactlyOneShape)(inputShape);
                const inputLastDim = inputShape[inputShape.length - 1];
                if (this.kernel == null) {
                    this.kernel = this.addWeight('kernel', [inputLastDim, this.units], null, this.kernelInitializer, this.kernelRegularizer, true, this.kernelConstraint);
                    if (this.useBias) {
                        this.bias = this.addWeight('bias', [this.units], null, this.biasInitializer, this.biasRegularizer, true, this.biasConstraint);
                    }
                }
                this.inputSpec = [{
                    minNDim: 2,
                    axes: {
                        [-1]: inputLastDim
                    }
                }];
                this.built = true;
            }
            computeOutputShape(inputShape) {
                inputShape = (0,
                    _types_utils.getExactlyOneShape)(inputShape);
                const outputShape = inputShape.slice();
                outputShape[outputShape.length - 1] = this.units;
                return outputShape;
            }
            call(inputs, kwargs) {
                return (0,
                    _tfjsCore.tidy)(() => {
                        this.invokeCallHook(inputs, kwargs);
                        // Dense layer accepts only a single input.
                        const input = (0,
                            _types_utils.getExactlyOneTensor)(inputs);
                        const fusedActivationName = (0,
                            _generic_utils.mapActivationToFusedKernel)(this.activation.getClassName());
                        let output;
                        if (fusedActivationName != null) {
                            output = K.dot(input, this.kernel.read(), fusedActivationName, this.bias ? this.bias.read() : null);
                        } else {
                            output = K.dot(input, this.kernel.read());
                            if (this.bias != null) {
                                output = K.biasAdd(output, this.bias.read());
                            }
                            if (this.activation != null) {
                                output = this.activation.apply(output);
                            }
                        }
                        return output;
                    }
                    );
            }
            getConfig() {
                const config = {
                    units: this.units,
                    activation: (0,
                        _activations.serializeActivation)(this.activation),
                    useBias: this.useBias,
                    kernelInitializer: (0,
                        _initializers.serializeInitializer)(this.kernelInitializer),
                    biasInitializer: (0,
                        _initializers.serializeInitializer)(this.biasInitializer),
                    kernelRegularizer: (0,
                        _regularizers.serializeRegularizer)(this.kernelRegularizer),
                    biasRegularizer: (0,
                        _regularizers.serializeRegularizer)(this.biasRegularizer),
                    activityRegularizer: (0,
                        _regularizers.serializeRegularizer)(this.activityRegularizer),
                    kernelConstraint: (0,
                        _constraints.serializeConstraint)(this.kernelConstraint),
                    biasConstraint: (0,
                        _constraints.serializeConstraint)(this.biasConstraint)
                };
                const baseConfig = super.getConfig();
                Object.assign(config, baseConfig);
                return config;
            }
        }
        /** @nocollapse */
        exports.Dense = Dense;
        Dense.className = 'Dense';
        _tfjsCore.serialization.registerClass(Dense);
        class Flatten extends _topology.Layer {
            constructor(args) {
                args = args || {};
                super(args);
                this.inputSpec = [{
                    minNDim: 3
                }];
                this.dataFormat = args.dataFormat;
            }
            computeOutputShape(inputShape) {
                inputShape = (0,
                    _types_utils.getExactlyOneShape)(inputShape);
                for (const dim of inputShape.slice(1)) {
                    if (dim == null) {
                        throw new _errors.ValueError(`The shape of the input to "Flatten" is not fully defined ` + `(got ${inputShape.slice(1)}). Make sure to pass a complete ` + `"input_shape" or "batch_input_shape" argument to the first ` + `layer in your model.`);
                    }
                }
                return [inputShape[0], (0,
                    _math_utils.arrayProd)(inputShape, 1)];
            }
            call(inputs, kwargs) {
                return (0,
                    _tfjsCore.tidy)(() => {
                        this.invokeCallHook(inputs, kwargs);
                        let input = (0,
                            _types_utils.getExactlyOneTensor)(inputs);
                        if (this.dataFormat === 'channelsFirst' && input.rank > 1) {
                            const permutation = [0];
                            for (let i = 2; i < input.rank; ++i) {
                                permutation.push(i);
                            }
                            permutation.push(1);
                            input = (0,
                                _tfjsCore.transpose)(input, permutation);
                        }
                        return K.batchFlatten(input);
                    }
                    );
            }
            getConfig() {
                const config = {};
                if (this.dataFormat != null) {
                    config['dataFormat'] = this.dataFormat;
                }
                const baseConfig = super.getConfig();
                Object.assign(config, baseConfig);
                return config;
            }
        }
        /** @nocollapse */
        exports.Flatten = Flatten;
        Flatten.className = 'Flatten';
        _tfjsCore.serialization.registerClass(Flatten);
        class Activation extends _topology.Layer {
            constructor(args) {
                super(args);
                this.supportsMasking = true;
                this.activation = (0,
                    _activations.getActivation)(args.activation);
            }
            call(inputs, kwargs) {
                return (0,
                    _tfjsCore.tidy)(() => {
                        this.invokeCallHook(inputs, kwargs);
                        const input = (0,
                            _types_utils.getExactlyOneTensor)(inputs);
                        return this.activation.apply(input);
                    }
                    );
            }
            getConfig() {
                const config = {
                    activation: (0,
                        _activations.serializeActivation)(this.activation)
                };
                const baseConfig = super.getConfig();
                Object.assign(config, baseConfig);
                return config;
            }
        }
        /** @nocollapse */
        exports.Activation = Activation;
        Activation.className = 'Activation';
        _tfjsCore.serialization.registerClass(Activation);
        class RepeatVector extends _topology.Layer {
            constructor(args) {
                super(args);
                this.n = args.n;
                this.inputSpec = [{
                    ndim: 2
                }];
            }
            computeOutputShape(inputShape) {
                return [inputShape[0], this.n, inputShape[1]];
            }
            call(inputs, kwargs) {
                return (0,
                    _tfjsCore.tidy)(() => {
                        inputs = (0,
                            _types_utils.getExactlyOneTensor)(inputs);
                        return K.repeat(inputs, this.n);
                    }
                    );
            }
            getConfig() {
                const config = {
                    n: this.n
                };
                const baseConfig = super.getConfig();
                Object.assign(config, baseConfig);
                return config;
            }
        }
        /** @nocollapse */
        exports.RepeatVector = RepeatVector;
        RepeatVector.className = 'RepeatVector';
        _tfjsCore.serialization.registerClass(RepeatVector);
        class Reshape extends _topology.Layer {
            constructor(args) {
                super(args);
                this.targetShape = args.targetShape;
                // Make sure that all unknown dimensions are represented as `null`.
                for (let i = 0; i < this.targetShape.length; ++i) {
                    if (this.isUnknown(this.targetShape[i])) {
                        this.targetShape[i] = null;
                    }
                }
            }
            isUnknown(dim) {
                return dim < 0 || dim == null;
            }
            /**
             * Finds and replaces a missing dimension in output shape.
             *
             * This is a near direct port of the internal Numpy function
             * `_fix_unknown_dimension` in `numpy/core/src/multiarray/shape.c`.
             *
             * @param inputShape: Original shape of array begin reshape.
             * @param outputShape: Target shape of the array, with at most a single
             * `null` or negative number, which indicates an underdetermined dimension
             * that should be derived from `inputShape` and the known dimensions of
             *   `outputShape`.
             * @returns: The output shape with `null` replaced with its computed value.
             * @throws: ValueError: If `inputShape` and `outputShape` do not match.
             */
            fixUnknownDimension(inputShape, outputShape) {
                const errorMsg = 'Total size of new array must be unchanged.';
                const finalShape = outputShape.slice();
                let known = 1;
                let unknown = null;
                for (let i = 0; i < finalShape.length; ++i) {
                    const dim = finalShape[i];
                    if (this.isUnknown(dim)) {
                        if (unknown === null) {
                            unknown = i;
                        } else {
                            throw new _errors.ValueError('Can only specifiy one unknown dimension.');
                        }
                    } else {
                        known *= dim;
                    }
                }
                const originalSize = (0,
                    _math_utils.arrayProd)(inputShape);
                if (unknown !== null) {
                    if (known === 0 || originalSize % known !== 0) {
                        throw new _errors.ValueError(errorMsg);
                    }
                    finalShape[unknown] = originalSize / known;
                } else if (originalSize !== known) {
                    throw new _errors.ValueError(errorMsg);
                }
                return finalShape;
            }
            computeOutputShape(inputShape) {
                let anyUnknownDims = false;
                for (let i = 0; i < inputShape.length; ++i) {
                    if (this.isUnknown(inputShape[i])) {
                        anyUnknownDims = true;
                        break;
                    }
                }
                if (anyUnknownDims) {
                    return inputShape.slice(0, 1).concat(this.targetShape);
                } else {
                    return inputShape.slice(0, 1).concat(this.fixUnknownDimension(inputShape.slice(1), this.targetShape));
                }
            }
            call(inputs, kwargs) {
                return (0,
                    _tfjsCore.tidy)(() => {
                        this.invokeCallHook(inputs, kwargs);
                        const input = (0,
                            _types_utils.getExactlyOneTensor)(inputs);
                        const inputShape = input.shape;
                        const outputShape = inputShape.slice(0, 1).concat(this.fixUnknownDimension(inputShape.slice(1), this.targetShape));
                        return (0,
                            _tfjsCore.reshape)(input, outputShape);
                    }
                    );
            }
            getConfig() {
                const config = {
                    targetShape: this.targetShape
                };
                const baseConfig = super.getConfig();
                Object.assign(config, baseConfig);
                return config;
            }
        }
        /** @nocollapse */
        exports.Reshape = Reshape;
        Reshape.className = 'Reshape';
        _tfjsCore.serialization.registerClass(Reshape);
        class Permute extends _topology.Layer {
            constructor(args) {
                super(args);
                if (args.dims == null) {
                    throw new Error('Required configuration field `dims` is missing during Permute ' + 'constructor call.');
                }
                if (!Array.isArray(args.dims)) {
                    throw new Error('Permute constructor requires `dims` to be an Array, but received ' + `${args.dims} instead.`);
                }
                // Check the validity of the permutation indices.
                const expectedSortedIndices = (0,
                    _math_utils.range)(1, args.dims.length + 1);
                if (!_tfjsCore.util.arraysEqual(args.dims.slice().sort(), expectedSortedIndices)) {
                    throw new Error('Invalid permutation `dims`: ' + JSON.stringify(args.dims) + ' `dims` must contain consecutive integers starting from 1.');
                }
                this.dims = args.dims;
                this.dimsIncludingBatch = [0].concat(this.dims);
                this.inputSpec = [new _topology.InputSpec({
                    ndim: this.dims.length + 1
                })];
            }
            computeOutputShape(inputShape) {
                inputShape = (0,
                    _types_utils.getExactlyOneShape)(inputShape);
                const outputShape = inputShape.slice();
                this.dims.forEach((dim, i) => {
                    outputShape[i + 1] = inputShape[dim];
                }
                );
                return outputShape;
            }
            call(inputs, kwargs) {
                return (0,
                    _tfjsCore.transpose)((0,
                        _types_utils.getExactlyOneTensor)(inputs), this.dimsIncludingBatch);
            }
            getConfig() {
                const config = {
                    dims: this.dims
                };
                const baseConfig = super.getConfig();
                Object.assign(config, baseConfig);
                return config;
            }
        }
        /** @nocollapse */
        exports.Permute = Permute;
        Permute.className = 'Permute';
        _tfjsCore.serialization.registerClass(Permute);
        class Masking extends _topology.Layer {
            constructor(args) {
                super(args == null ? {} : args);
                this.supportsMasking = true;
                if (args != null) {
                    this.maskValue = args.maskValue == null ? 0 : args.maskValue;
                } else {
                    this.maskValue = 0;
                }
            }
            computeOutputShape(inputShape) {
                return inputShape;
            }
            getConfig() {
                const baseConfig = super.getConfig();
                const config = {
                    maskValue: this.maskValue
                };
                Object.assign(config, baseConfig);
                return config;
            }
            computeMask(inputs, mask) {
                const input = (0,
                    _types_utils.getExactlyOneTensor)(inputs);
                const axis = -1;
                return (0,
                    _tfjsCore.any)((0,
                        _tfjsCore.notEqual)(input, this.maskValue), axis);
            }
            call(inputs, kwargs) {
                return (0,
                    _tfjsCore.tidy)(() => {
                        this.invokeCallHook(inputs, kwargs);
                        const input = (0,
                            _types_utils.getExactlyOneTensor)(inputs);
                        const axis = -1;
                        const keepDims = true;
                        const booleanMask = (0,
                            _tfjsCore.any)((0,
                                _tfjsCore.notEqual)(input, this.maskValue), axis, keepDims);
                        const output = (0,
                            _tfjsCore.mul)(input, (0,
                                _tfjsCore.cast)(booleanMask, input.dtype));
                        return output;
                    }
                    );
            }
        }
        /** @nocollapse */
        exports.Masking = Masking;
        Masking.className = 'Masking';
        _tfjsCore.serialization.registerClass(Masking);

    }
        , {
        "../activations": 513,
        "../backend/tfjs_backend": 516,
        "../constraints": 520,
        "../engine/topology": 524,
        "../errors": 529,
        "../initializers": 539,
        "../regularizers": 566,
        "../utils/generic_utils": 570,
        "../utils/math_utils": 572,
        "../utils/types_utils": 574,
        "@tensorflow/tfjs-core": 506
    }],
    547: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.Embedding = void 0;
        var _tfjsCore = require("@tensorflow/tfjs-core");
        var K = _interopRequireWildcard(require("../backend/tfjs_backend"));
        var _constraints = require("../constraints");
        var _topology = require("../engine/topology");
        var _errors = require("../errors");
        var _initializers = require("../initializers");
        var _regularizers = require("../regularizers");
        var generic_utils = _interopRequireWildcard(require("../utils/generic_utils"));
        var _types_utils = require("../utils/types_utils");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2018 Google LLC
         *
         * Use of this source code is governed by an MIT-style
         * license that can be found in the LICENSE file or at
         * https://opensource.org/licenses/MIT.
         * =============================================================================
         */
        /**
         * TensorFlow.js Layers: Embedding Layer.
         *
         * Original source: keras/constraints.py
         */

        class Embedding extends _topology.Layer {
            constructor(args) {
                super(args);
                this.embeddings = null;
                this.DEFAULT_EMBEDDINGS_INITIALIZER = 'randomUniform';
                if (args.batchInputShape == null && args.inputShape == null) {
                    // Porting Note: This logic is copied from Layer's constructor, since we
                    // can't do exactly what the Python constructor does for Embedding().
                    // Specifically, the super constructor can not be called after the
                    // mutation of the `config` argument.
                    let batchSize = null;
                    if (args.batchSize != null) {
                        batchSize = args.batchSize;
                    }
                    if (args.inputLength == null) {
                        // Fix super-constructor to what it would have done if
                        // 'config.inputShape' were (None, )
                        this.batchInputShape = [batchSize, null];
                    } else {
                        // Fix super-constructor to what it would have done if
                        // 'config.inputShape' were (config.inputLength, )
                        this.batchInputShape = [batchSize].concat(generic_utils.toList(args.inputLength));
                    }
                }
                this.inputDim = args.inputDim;
                generic_utils.assertPositiveInteger(this.inputDim, 'inputDim');
                this.outputDim = args.outputDim;
                generic_utils.assertPositiveInteger(this.outputDim, 'outputDim');
                this.embeddingsInitializer = (0,
                    _initializers.getInitializer)(args.embeddingsInitializer || this.DEFAULT_EMBEDDINGS_INITIALIZER);
                this.embeddingsRegularizer = (0,
                    _regularizers.getRegularizer)(args.embeddingsRegularizer);
                this.activityRegularizer = (0,
                    _regularizers.getRegularizer)(args.activityRegularizer);
                this.embeddingsConstraint = (0,
                    _constraints.getConstraint)(args.embeddingsConstraint);
                this.maskZero = args.maskZero;
                this.supportsMasking = args.maskZero;
                this.inputLength = args.inputLength;
            }
            build(inputShape) {
                this.embeddings = this.addWeight('embeddings', [this.inputDim, this.outputDim], this.dtype, this.embeddingsInitializer, this.embeddingsRegularizer, true, this.embeddingsConstraint);
                this.built = true;
            }
            // Override warnOnIncompatibleInputShape because an embedding layer allows
            // the input to have varying ranks.
            warnOnIncompatibleInputShape(inputShape) { }
            computeMask(inputs, mask) {
                return (0,
                    _tfjsCore.tidy)(() => {
                        if (!this.maskZero) {
                            return null;
                        } else {
                            inputs = (0,
                                _types_utils.getExactlyOneTensor)(inputs);
                            return (0,
                                _tfjsCore.notEqual)(inputs, (0,
                                    _tfjsCore.zerosLike)(inputs));
                        }
                    }
                    );
            }
            computeOutputShape(inputShape) {
                inputShape = (0,
                    _types_utils.getExactlyOneShape)(inputShape);
                if (this.inputLength == null) {
                    return [...inputShape, this.outputDim];
                }
                // inputLength can be an array if input is 3D or higher.
                const inLens = generic_utils.toList(this.inputLength);
                if (inLens.length !== inputShape.length - 1) {
                    throw new _errors.ValueError(`"inputLength" is ${this.inputLength}, but received ` + `input shape has shape ${inputShape}`);
                } else {
                    let i = 0;
                    for (let k = 0; k < inLens.length; ++k) {
                        const s1 = inLens[k];
                        const s2 = inputShape[k + 1];
                        if (s1 != null && s2 != null && s1 !== s2) {
                            throw new _errors.ValueError(`"inputLength" is ${this.inputLength}, but received ` + `input shape has shape ${inputShape}`);
                        } else if (s1 == null) {
                            inLens[i] = s2;
                        }
                        i++;
                    }
                }
                return [inputShape[0], ...inLens, this.outputDim];
            }
            call(inputs, kwargs) {
                return (0,
                    _tfjsCore.tidy)(() => {
                        this.invokeCallHook(inputs, kwargs);
                        // Embedding layer accepts only a single input.
                        let input = (0,
                            _types_utils.getExactlyOneTensor)(inputs);
                        if (input.dtype !== 'int32') {
                            input = K.cast(input, 'int32');
                        }
                        const output = K.gather(this.embeddings.read(), (0,
                            _tfjsCore.reshape)(input, [input.size]));
                        return (0,
                            _tfjsCore.reshape)(output, (0,
                                _types_utils.getExactlyOneShape)(this.computeOutputShape(input.shape)));
                    }
                    );
            }
            getConfig() {
                const config = {
                    inputDim: this.inputDim,
                    outputDim: this.outputDim,
                    embeddingsInitializer: (0,
                        _initializers.serializeInitializer)(this.embeddingsInitializer),
                    embeddingsRegularizer: (0,
                        _regularizers.serializeRegularizer)(this.embeddingsRegularizer),
                    activityRegularizer: (0,
                        _regularizers.serializeRegularizer)(this.activityRegularizer),
                    embeddingsConstraint: (0,
                        _constraints.serializeConstraint)(this.embeddingsConstraint),
                    maskZero: this.maskZero,
                    inputLength: this.inputLength
                };
                const baseConfig = super.getConfig();
                Object.assign(config, baseConfig);
                return config;
            }
        }
        /** @nocollapse */
        exports.Embedding = Embedding;
        Embedding.className = 'Embedding';
        _tfjsCore.serialization.registerClass(Embedding);

    }
        , {
        "../backend/tfjs_backend": 516,
        "../constraints": 520,
        "../engine/topology": 524,
        "../errors": 529,
        "../initializers": 539,
        "../regularizers": 566,
        "../utils/generic_utils": 570,
        "../utils/types_utils": 574,
        "@tensorflow/tfjs-core": 506
    }],
    548: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.Multiply = exports.Minimum = exports.Merge = exports.Maximum = exports.Dot = exports.Concatenate = exports.Average = exports.Add = void 0;
        exports.add = add;
        exports.average = average;
        exports.concatenate = concatenate;
        exports.maximum = maximum;
        exports.minimum = minimum;
        exports.multiply = multiply;
        var tfc = _interopRequireWildcard(require("@tensorflow/tfjs-core"));
        var K = _interopRequireWildcard(require("../backend/tfjs_backend"));
        var _topology = require("../engine/topology");
        var _errors = require("../errors");
        var _losses = require("../losses");
        var generic_utils = _interopRequireWildcard(require("../utils/generic_utils"));
        var mathUtils = _interopRequireWildcard(require("../utils/math_utils"));
        var _types_utils = require("../utils/types_utils");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2018 Google LLC
         *
         * Use of this source code is governed by an MIT-style
         * license that can be found in the LICENSE file or at
         * https://opensource.org/licenses/MIT.
         * =============================================================================
         */
        /**
         * TensorFlow.js Layers: Merge Layers.
         */

        /**
         * Generic Merge layer for element-wise merge functions.
         *
         * Used to implement `Sum`, `Average`, `Concatenate`, etc.
         */
        class Merge extends _topology.Layer {
            constructor(args) {
                super(args || {});
                this.supportsMasking = true;
            }
            /**
             * Logic for merging multiple tensors, to be overridden by subclasses.
             * @param inputs
             */
            mergeFunction(inputs) {
                throw new _errors.NotImplementedError();
            }
            /**
             * Computes the shape of the result of an elementwise operation.
             *
             * @param shape1: Shape of the first tensor.
             * @param shape2: Shape of the second tensor.
             * @returns Expected output shape when an elementwise operation is carried
             *   out on 2 tensors with shapes `shape1` and `shape2`.
             * @throws ValueError: If `shape1` and `shape2` are not compatible for
             *   element-wise operations.
             */
            computeElementwiseOpOutputShape(shape1, shape2) {
                if (shape1 == null || shape2 == null) {
                    return null;
                } else if (shape1.length < shape2.length) {
                    return this.computeElementwiseOpOutputShape(shape2, shape1);
                } else if (shape2.length === 0) {
                    return shape1;
                }
                const outputShape = shape1.slice(0, shape1.length - shape2.length);
                for (let k = 0; k < shape2.length; ++k) {
                    const i = shape1[shape1.length - shape2.length + k];
                    const j = shape2[k];
                    if (i == null || j == null || i < 0 || j < 0) {
                        outputShape.push(null);
                    } else if (i === 1) {
                        outputShape.push(j);
                    } else if (j === 1) {
                        outputShape.push(i);
                    } else {
                        if (i !== j) {
                            throw new _errors.ValueError('Operands could not be broadcast together with shapes ' + JSON.stringify(shape1) + ' ' + JSON.stringify(shape2));
                        }
                        outputShape.push(i);
                    }
                }
                return outputShape;
            }
            build(inputShape) {
                // Used purely for shape validation.
                if (Array.isArray(inputShape) && !Array.isArray(inputShape[0])) {
                    // Make sure that inputShape is an Array of shape.
                    inputShape = [(0,
                        _types_utils.getExactlyOneShape)(inputShape)];
                }
                inputShape = inputShape;
                if (inputShape.length < 2) {
                    throw new _errors.ValueError('A merge layer should be called on an Array of at least 2 inputs.' + ` Got ${inputShape.length} input(s).`);
                }
                // Make sure that there is at most one unique batch size among the input
                // shapes.
                let batchSizes = [];
                for (const shape of inputShape) {
                    if (shape != null && shape[0] !== null) {
                        batchSizes.push(shape[0]);
                    }
                }
                batchSizes = generic_utils.unique(batchSizes);
                if (batchSizes.length > 1) {
                    throw new _errors.ValueError(`Can not merge tensors with different batch sizes. ` + `Got tensors with shapes: ${JSON.stringify(inputShape)}.`);
                }
                let outputShape = inputShape[0] == null ? null : inputShape[0].slice(1);
                for (let i = 1; i < inputShape.length; ++i) {
                    const shape = inputShape[i] == null ? null : inputShape[i].slice(1);
                    outputShape = this.computeElementwiseOpOutputShape(outputShape, shape);
                }
                // If the inputs have different ranks, we have to reshape them to make them
                // broadcastable.
                const allRanks = inputShape.map(shape => shape.length);
                if (inputShape.indexOf(null) === -1 && generic_utils.unique(allRanks).length === 1) {
                    this.reshapeRequired = false;
                } else {
                    this.reshapeRequired = true;
                }
            }
            call(inputs, kwargs) {
                return (0,
                    tfc.tidy)(() => {
                        inputs = inputs;
                        if (this.reshapeRequired) {
                            const reshapedInputs = [];
                            const inputDims = inputs.map(input => input.rank);
                            if (inputDims.indexOf(null) === -1) {
                                // If ranks of all inputs are available, we simply expand each of them
                                // at axis=1 until all of them have the same rank.
                                const maxNDim = mathUtils.max(inputDims);
                                for (let x of inputs) {
                                    const xNDim = x.rank;
                                    for (let k = 0; k < maxNDim - xNDim; ++k) {
                                        x = K.expandDims(x, 1);
                                    }
                                    reshapedInputs.push(x);
                                }
                                return this.mergeFunction(reshapedInputs);
                            } else {
                                // Transpose all inputs so that batch size is the last dimension.
                                // [batchSize, dim1, dim2, ...] -> [dim1, dim2, ..., batchSize]
                                let transposed = false;
                                for (const x of inputs) {
                                    const xNDim = x.rank;
                                    if (xNDim == null) {
                                        const xShape = x.shape;
                                        const batchSize = xShape[0];
                                        const newShape = xShape.slice(1).concat([batchSize]);
                                        let xTransposed = tfc.reshape(x, [batchSize].concat(mathUtils.arrayProd(xShape.slice(1))));
                                        xTransposed = tfc.transpose(xTransposed, [1, 0]);
                                        xTransposed = tfc.reshape(xTransposed, newShape);
                                        reshapedInputs.push(xTransposed);
                                        transposed = true;
                                    } else if (xNDim > 1) {
                                        const dims = mathUtils.range(1, xNDim).concat([0]);
                                        reshapedInputs.push(tfc.transpose(x, dims));
                                        transposed = true;
                                    } else {
                                        // We don't transpose inputs if they are 1D vectors or scalars.
                                        reshapedInputs.push(x);
                                    }
                                }
                                let y = this.mergeFunction(reshapedInputs);
                                const yNDim = y.rank;
                                if (transposed) {
                                    // If inputs have been transposed, we have to transpose the output
                                    // too.
                                    if (yNDim == null) {
                                        const yShape = y.shape;
                                        const yNDim = yShape.length;
                                        const batchSize = yShape[yNDim - 1];
                                        const newShape = [batchSize].concat(yShape.slice(0, yShape.length - 1));
                                        y = tfc.reshape(tfc.transpose(tfc.reshape(y, [-1, batchSize]), [1, 0]), newShape);
                                    } else if (yNDim > 1) {
                                        const dims = [yNDim - 1].concat(mathUtils.range(0, yNDim - 1));
                                        y = tfc.transpose(y, dims);
                                    }
                                }
                                return y;
                            }
                        } else {
                            return this.mergeFunction(inputs);
                        }
                    }
                    );
            }
            computeOutputShape(inputShape) {
                inputShape = inputShape;
                let outputShape;
                if (inputShape[0] == null) {
                    outputShape = null;
                } else {
                    outputShape = inputShape[0].slice(1);
                }
                for (let i = 1; i < inputShape.length; ++i) {
                    const shape = inputShape[i] == null ? null : inputShape[i].slice(1);
                    outputShape = this.computeElementwiseOpOutputShape(outputShape, shape);
                }
                let batchSizes = [];
                for (const shape of inputShape) {
                    if (shape != null && shape[0] !== null) {
                        batchSizes.push(shape[0]);
                    }
                }
                batchSizes = generic_utils.unique(batchSizes);
                if (batchSizes.length === 1) {
                    outputShape = batchSizes.concat(outputShape);
                } else {
                    outputShape = [null].concat(outputShape);
                }
                return outputShape;
            }
            computeMask(inputs, mask) {
                return tfc.tidy(() => {
                    if (mask == null) {
                        return null;
                    }
                    if (!Array.isArray(mask)) {
                        throw new _errors.ValueError('`mask` should be an Array');
                    }
                    if (!Array.isArray(inputs)) {
                        throw new _errors.ValueError('`inputs` should be an Array');
                    }
                    if (mask.length !== inputs.length) {
                        throw new _errors.ValueError(`The Array 'inputs' and 'mask' are expected to have the same ` + `length, but have different lengths ` + `(${inputs.length} vs ${mask.length})`);
                    }
                    if (mask.every(m => m == null)) {
                        return null;
                    }
                    mask = mask.map(m => m == null ? m : tfc.expandDims(m, 0));
                    let output = mask[0];
                    for (let i = 1; i < mask.length - 1; ++i) {
                        output = tfc.logicalAnd(output, mask[i]);
                    }
                    return output;
                }
                );
            }
        }
        exports.Merge = Merge;
        class Add extends Merge {
            constructor(args) {
                super(args);
            }
            mergeFunction(inputs) {
                return (0,
                    tfc.tidy)(() => {
                        let output = inputs[0].clone();
                        for (let i = 1; i < inputs.length; ++i) {
                            output = tfc.add(output, inputs[i]);
                        }
                        return output;
                    }
                    );
            }
        }
        /** @nocollapse */
        exports.Add = Add;
        Add.className = 'Add';
        tfc.serialization.registerClass(Add);
        /**
         * Calculate the element-wise sum of inputs, which all have the same shape.
         *
         * This function can be invoked in three ways.
         *
         * 1. Construct an instance of `Add` layer, by using no input argument
         *    or a single configuration argument. The resultant `Add` layer can then
         *    be used on `tf.SymbolicTensor`s or `tf.Tensor`s. For example:
         *
         * ```js
         * const addLayer = tf.layers.add();
         *
         * // The layer can be applied to inputs.
         * const input1 = tf.input({shape: [2, 2]});
         * const input2 = tf.input({shape: [2, 2]});
         * const output = addLayer.apply([input1, input2]);
         * console.log(output.shape);
         * // You get [null, 2, 2], with the first dimension as the undetermined batch
         * // dimension.
         * ```
         *
         * 2. Invoke directly on an `Array` of `tf.SymbolicTensor`s. This constructs
         *    an `Layer` object internally and calls its `apply` method on the inputs,
         *    generating a new `tf.SymbolicTensor`. For example:
         *
         * ```js
         * const input1 = tf.input({shape: [2, 2]});
         * const input2 = tf.input({shape: [2, 2]});
         * const output = tf.layers.add([input1, input2]);
         * console.log(output.shape);
         * // You get [null, 2, 2], with the first dimension as the undetermined batch
         * // dimension.
         * ```
         *
         * 3. Invoke directly on `tf.Tensor`s, i.e., concrete values. This constructs
         *    an `Layer` object internally and calls its `apply` method on the inputs,
         *    generating a new `tf.Tensor` as the result of the computation. For
         * example:
         *
         * ```js
         * const input1 = tf.tensor2d([1, 2, 3, 4], [2, 2]);
         * const input2 = tf.tensor2d([10, 20, 30, 40], [2, 2]);
         * tf.layers.add([input1, input2]).print();
         * // Gives [[11, 22], [33, 44]].
         *
         */
        function add(config) {
            if (Array.isArray(config)) {
                const layer = new Add({});
                return layer.apply(config);
            } else {
                return new Add(config);
            }
        }
        class Multiply extends Merge {
            constructor(args) {
                super(args);
            }
            mergeFunction(inputs) {
                return (0,
                    tfc.tidy)(() => {
                        let output = inputs[0].clone();
                        for (let i = 1; i < inputs.length; ++i) {
                            output = tfc.mul(output, inputs[i]);
                        }
                        return output;
                    }
                    );
            }
        }
        /** @nocollapse */
        exports.Multiply = Multiply;
        Multiply.className = 'Multiply';
        tfc.serialization.registerClass(Multiply);
        /**
         * Calculate the element-wise product of inputs, which all have the same shape.
         *
         * This function can be invoked in three ways.
         *
         * 1. Construct an instance of `Multiply` layer, by using no input argument
         *    or a single configuration argument. The resultant `Multiply` layer can
         *    then be used on `tf.SymbolicTensor`s or `tf.Tensor`s. For example:
         *
         * ```js
         * const multiplyLayer = tf.layers.multiply();
         *
         * // The layer can be applied to inputs.
         * const input1 = tf.input({shape: [2, 2]});
         * const input2 = tf.input({shape: [2, 2]});
         * const output = multiplyLayer.apply([input1, input2]);
         * console.log(output.shape);
         * // You get [null, 2, 2], with the first dimension as the undetermined batch
         * // dimension.
         * ```
         *
         * 2. Invoke directly on an `Array` of `tf.SymbolicTensor`s. This constructs
         *    an `Layer` object internally and calls its `apply` method on the inputs,
         *    generating a new `tf.SymbolicTensor`. For example:
         *
         * ```js
         * const input1 = tf.input({shape: [2, 2]});
         * const input2 = tf.input({shape: [2, 2]});
         * const output = tf.layers.multiply([input1, input2]);
         * console.log(output.shape);
         * // You get [null, 2, 2], with the first dimension as the undetermined batch
         * // dimension.
         * ```
         *
         * 3. Invoke directly on `tf.Tensor`s, i.e., concrete values. This constructs
         *    an `Layer` object internally and calls its `apply` method on the inputs,
         *    generating a new `tf.Tensor` as the result of the computation. For
         * example:
         *
         * ```js
         * const input1 = tf.tensor2d([1, 2, 3, 4], [2, 2]);
         * const input2 = tf.tensor2d([10, 20, 30, 40], [2, 2]);
         * tf.layers.multiply([input1, input2]).print();
         * // Gives [[10, 40], [90, 160]].
         *
         */
        function multiply(config) {
            if (Array.isArray(config)) {
                const layer = new Multiply({});
                return layer.apply(config);
            } else {
                return new Multiply(config);
            }
        }
        class Average extends Merge {
            constructor(args) {
                super(args);
            }
            mergeFunction(inputs) {
                return (0,
                    tfc.tidy)(() => {
                        let output = inputs[0].clone();
                        for (let i = 1; i < inputs.length; ++i) {
                            output = tfc.add(output, inputs[i]);
                        }
                        return tfc.mul(1 / inputs.length, output);
                    }
                    );
            }
        }
        /** @nocollapse */
        exports.Average = Average;
        Average.className = 'Average';
        tfc.serialization.registerClass(Average);
        /**
         * Calculate the element-wise arithmetic mean of inputs, which all have the same
         * shape.
         *
         * This function can be invoked in three ways.
         *
         * 1. Construct an instance of `Average` layer, by using no input argument
         *    or a single configuration argument. The resultant `Average` layer can then
         *    be used on `tf.SymbolicTensor`s or `tf.Tensor`s. For example:
         *
         * ```js
         * const averageLayer = tf.layers.average();
         *
         * // The layer can be applied to inputs.
         * const input1 = tf.input({shape: [2, 2]});
         * const input2 = tf.input({shape: [2, 2]});
         * const output = averageLayer.apply([input1, input2]);
         * console.log(output.shape);
         * // You get [null, 2, 2], with the first dimension as the undetermined batch
         * // dimension.
         * ```
         *
         * 2. Invoke directly on an `Array` of `tf.SymbolicTensor`s. This constructs
         *    an `Layer` object internally and calls its `apply` method on the inputs,
         *    generating a new `tf.SymbolicTensor`. For example:
         *
         * ```js
         * const input1 = tf.input({shape: [2, 2]});
         * const input2 = tf.input({shape: [2, 2]});
         * const output = tf.layers.average([input1, input2]);
         * console.log(output.shape);
         * // You get [null, 2, 2], with the first dimension as the undetermined batch
         * // dimension.
         * ```
         *
         * 3. Invoke directly on `tf.Tensor`s, i.e., concrete values. This constructs
         *    an `Layer` object internally and calls its `apply` method on the inputs,
         *    generating a new `tf.Tensor` as the result of the computation. For
         * example:
         *
         * ```js
         * const input1 = tf.tensor2d([1, 2, 3, 4], [2, 2]);
         * const input2 = tf.tensor2d([10, 20, 30, 40], [2, 2]);
         * tf.layers.average([input1, input2]).print();
         * // Gives [[5.5, 11], [16.5, 22]].
         *
         */
        function average(config) {
            if (Array.isArray(config)) {
                const layer = new Average({});
                return layer.apply(config);
            } else {
                return new Average(config);
            }
        }
        class Maximum extends Merge {
            constructor(args) {
                super(args);
            }
            mergeFunction(inputs) {
                return (0,
                    tfc.tidy)(() => {
                        let output = inputs[0];
                        for (let i = 1; i < inputs.length; ++i) {
                            output = tfc.maximum(output, inputs[i]);
                        }
                        return output;
                    }
                    );
            }
        }
        /** @nocollapse */
        exports.Maximum = Maximum;
        Maximum.className = 'Maximum';
        tfc.serialization.registerClass(Maximum);
        /**
         * Calculate the element-wise maximum of inputs, which all have the same shape.
         *
         * This function can be invoked in three ways.
         *
         * 1. Construct an instance of `Maximum` layer, by using no input argument
         *    or a single configuration argument. The resultant `Maximum` layer can then
         *    be used on `tf.SymbolicTensor`s or `tf.Tensor`s. For example:
         *
         * ```js
         * const maximumLayer = tf.layers.maximum();
         *
         * // The layer can be applied to inputs.
         * const input1 = tf.input({shape: [2, 2]});
         * const input2 = tf.input({shape: [2, 2]});
         * const output = maximumLayer.apply([input1, input2]);
         * console.log(output.shape);
         * // You get [null, 2, 2], with the first dimension as the undetermined batch
         * // dimension.
         * ```
         *
         * 2. Invoke directly on an `Array` of `tf.SymbolicTensor`s. This constructs
         *    an `Layer` object internally and calls its `apply` method on the inputs,
         *    generating a new `tf.SymbolicTensor`. For example:
         *
         * ```js
         * const input1 = tf.input({shape: [2, 2]});
         * const input2 = tf.input({shape: [2, 2]});
         * const output = tf.layers.maximum([input1, input2]);
         * console.log(output.shape);
         * // You get [null, 2, 2], with the first dimension as the undetermined batch
         * // dimension.
         * ```
         *
         * 3. Invoke directly on `tf.Tensor`s, i.e., concrete values. This constructs
         *    an `Layer` object internally and calls its `apply` method on the inputs,
         *    generating a new `tf.Tensor` as the result of the computation. For
         * example:
         *
         * ```js
         * const input1 = tf.tensor2d([1, 20, 3, 40], [2, 2]);
         * const input2 = tf.tensor2d([10, 2, 30, 4], [2, 2]);
         * tf.layers.maximum([input1, input2]).print();
         * // Gives [[10, 20], [30, 40]].
         *
         */
        function maximum(config) {
            if (Array.isArray(config)) {
                const layer = new Maximum({});
                return layer.apply(config);
            } else {
                return new Maximum(config);
            }
        }
        class Minimum extends Merge {
            constructor(args) {
                super(args);
            }
            mergeFunction(inputs) {
                return (0,
                    tfc.tidy)(() => {
                        let output = inputs[0];
                        for (let i = 1; i < inputs.length; ++i) {
                            output = tfc.minimum(output, inputs[i]);
                        }
                        return output;
                    }
                    );
            }
        }
        /** @nocollapse */
        exports.Minimum = Minimum;
        Minimum.className = 'Minimum';
        tfc.serialization.registerClass(Minimum);
        /**
         * Calculate the element-wise minimum of inputs, which all have the same shape.
         *
         * This function can be invoked in three ways.
         *
         * 1. Construct an instance of `Minimum` layer, by using no input argument
         *    or a single configuration argument. The resultant `Minimum` layer can then
         *    be used on `tf.SymbolicTensor`s or `tf.Tensor`s. For example:
         *
         * ```js
         * const minimumLayer = tf.layers.minimum();
         *
         * // The layer can be applied to inputs.
         * const input1 = tf.input({shape: [2, 2]});
         * const input2 = tf.input({shape: [2, 2]});
         * const output = minimumLayer.apply([input1, input2]);
         * console.log(output.shape);
         * // You get [null, 2, 2], with the first dimension as the undetermined batch
         * // dimension.
         * ```
         *
         * 2. Invoke directly on an `Array` of `tf.SymbolicTensor`s. This constructs
         *    an `Layer` object internally and calls its `apply` method on the inputs,
         *    generating a new `tf.SymbolicTensor`. For example:
         *
         * ```js
         * const input1 = tf.input({shape: [2, 2]});
         * const input2 = tf.input({shape: [2, 2]});
         * const output = tf.layers.minimum([input1, input2]);
         * console.log(output.shape);
         * // You get [null, 2, 2], with the first dimension as the undetermined batch
         * // dimension.
         * ```
         *
         * 3. Invoke directly on `tf.Tensor`s, i.e., concrete values. This constructs
         *    an `Layer` object internally and calls its `apply` method on the inputs,
         *    generating a new `tf.Tensor` as the result of the computation. For
         * example:
         *
         * ```js
         * const input1 = tf.tensor2d([1, 20, 3, 40], [2, 2]);
         * const input2 = tf.tensor2d([10, 2, 30, 4], [2, 2]);
         * tf.layers.minimum([input1, input2]).print();
         * // Gives [[1, 2], [3, 4]].
         *
         */
        function minimum(config) {
            if (Array.isArray(config)) {
                const layer = new Minimum({});
                return layer.apply(config);
            } else {
                return new Minimum(config);
            }
        }
        class Concatenate extends Merge {
            constructor(args) {
                super(args);
                this.DEFAULT_AXIS = -1;
                if (args == null) {
                    args = {};
                }
                this.axis = args.axis == null ? this.DEFAULT_AXIS : args.axis;
                this.supportsMasking = true;
                this.reshapeRequired = false;
            }
            build(inputShape) {
                // Used purely for shape validation.]
                if (!(Array.isArray(inputShape) && Array.isArray(inputShape[0])) || inputShape.length === 1) {
                    throw new _errors.ValueError('A `Concatenate` layer should be called on a list of at least 2 ' + 'inputs');
                }
                inputShape = inputShape;
                let allNoneShape = true;
                for (const shape of inputShape) {
                    if (shape != null) {
                        allNoneShape = false;
                        break;
                    }
                }
                if (allNoneShape) {
                    return;
                }
                const shapeSet = [];
                for (let i = 0; i < inputShape.length; ++i) {
                    const shapeWithoutConcatAxis = inputShape[i].slice();
                    shapeWithoutConcatAxis.splice(this.axis, 1);
                    let exists = false;
                    for (const shape of shapeSet) {
                        if (tfc.util.arraysEqual(shape, shapeWithoutConcatAxis)) {
                            exists = true;
                            break;
                        }
                    }
                    if (!exists) {
                        shapeSet.push(shapeWithoutConcatAxis);
                    }
                }
                if (shapeSet.length > 1) {
                    throw new _errors.ValueError('A `Concatenate` layer requires inputs with matching shapes ' + 'except for the concat axis. Got input shapes: ' + JSON.stringify(inputShape));
                }
            }
            mergeFunction(inputs) {
                return (0,
                    tfc.tidy)(() => {
                        return K.concatenate(inputs, this.axis);
                    }
                    );
            }
            computeOutputShape(inputShape) {
                if (!(Array.isArray(inputShape) && Array.isArray(inputShape[0]))) {
                    throw new _errors.ValueError('A `Concatenate` layer should be called on a list of inputs.');
                }
                const inputShapes = inputShape;
                const outputShape = inputShapes[0].slice();
                const axis = this.axis < 0 ? outputShape.length + this.axis : this.axis;
                // Porting Note: the line above is because TypeScript doesn't support
                //   negative indices.
                for (const shape of inputShapes.slice(1)) {
                    if (outputShape[axis] == null || shape[axis] == null) {
                        outputShape[axis] = null;
                        break;
                    }
                    outputShape[axis] += shape[axis];
                }
                return outputShape;
            }
            computeMask(inputs, mask) {
                if (mask == null) {
                    return null;
                }
                if (!Array.isArray(mask)) {
                    throw new _errors.ValueError('`mask` should be an array for Concatenate');
                }
                if (!Array.isArray(inputs)) {
                    throw new _errors.ValueError('`inputs` should be an array for Concatenate');
                }
                if (mask.length !== inputs.length) {
                    throw new _errors.ValueError(`Mismatch in the length of mask (${mask.length}) ` + `and the legnth of inputs (${inputs.length})`);
                }
                return tfc.tidy(() => {
                    let allNullMasks = true;
                    mask.forEach(m => {
                        if (m != null) {
                            allNullMasks = false;
                            return;
                        }
                    }
                    );
                    if (allNullMasks) {
                        return null;
                    }
                    const outputMasks = [];
                    for (let i = 0; i < inputs.length; ++i) {
                        if (mask[i] == null) {
                            // Input is unmasked. Append all 1's to masks.
                            outputMasks.push(tfc.cast(tfc.onesLike(inputs[i]), 'bool'));
                        } else if (mask[i].rank < inputs[i].rank) {
                            // Mask is smaller than the input, expand it.
                            outputMasks.push(tfc.expandDims(mask[i], -1));
                        } else {
                            outputMasks.push(mask[i]);
                        }
                    }
                    const concatenatedMasks = tfc.concat(outputMasks, this.axis);
                    return tfc.all(concatenatedMasks, -1, false);
                }
                );
            }
            getConfig() {
                const config = {
                    'axis': this.axis
                };
                const baseConfig = super.getConfig();
                Object.assign(config, baseConfig);
                return config;
            }
        }
        /** @nocollapse */
        exports.Concatenate = Concatenate;
        Concatenate.className = 'Concatenate';
        tfc.serialization.registerClass(Concatenate);
        /**
         * Concatenate an `Array` of inputs.
         *
         * This function can be invoked in three ways.
         *
         * 1. Construct an instance of `Concatenate` layer, by using no input argument
         *    or a single configuration argument. The resultant `Concatenate` layer can
         *    then be used on `tf.SymbolicTensor`s or `tf.Tensor`s. For example:
         *
         * ```js
         * const concatLayer = tf.layers.concatenate();
         *
         * // The layer can be applied to inputs.
         * const input1 = tf.input({shape: [2, 3]});
         * const input2 = tf.input({shape: [2, 4]});
         * const output = concatLayer.apply([input1, input2]);
         * console.log(output.shape);
         * // You get [null, 2, 7], with the first dimension as the undetermined batch
         * // dimension and the last dimension as the result of concatenating the
         * // last dimensions of the two inputs.
         * ```
         *
         * 2. Invoke directly on an `Array` of `tf.SymbolicTensor`s. This constructs
         *    an `Layer` object internally and calls its `apply` method on the inputs,
         *    generating a new `tf.SymbolicTensor`. For example:
         *
         * ```js
         * const input1 = tf.input({shape: [2, 3]});
         * const input2 = tf.input({shape: [2, 4]});
         * const output = tf.layers.concatenate([input1, input2]);
         * console.log(output.shape);
         * // You get [null, 2, 2], with the first dimension as the undetermined batch
         * // dimension and the last dimension as the result of concatenating the
         * // last dimensions of the two inputs.
         * ```
         *
         * 3. Invoke directly on `tf.Tensor`s, i.e., concrete values. This constructs
         *    an `Layer` object internally and calls its `apply` method on the inputs,
         *    generating a new `tf.Tensor` as the result of the computation. For
         * example:
         *
         * ```js
         * const input1 = tf.tensor2d([[1, 2], [3, 4]], [2, 2]);
         * const input2 = tf.tensor2d([[10, 20], [30, 40]], [2, 2]);
         * tf.layers.concatenate([input1, input2]).print();
         * // Gives [[1, 2, 10, 20], [3, 4, 30, 40]].
         *
         */
        function concatenate(config) {
            if (Array.isArray(config)) {
                const layer = new Concatenate({});
                return layer.apply(config);
            } else {
                return new Concatenate(config);
            }
        }
        /**
         * Interpretable potentially negative axis index.
         *
         * For example, given axis = -1, and dim = 3, this function will return 2.
         *
         * @param axis The axis index, may be a positive, zero or negative integer.
         * @param dim Total number of dimensions, a positive integer.
         * @returns A non-negative axis index equivalent to the input `axis`.
         */
        function interpretAxis(axis, dim) {
            while (axis < 0) {
                axis += dim;
            }
            return axis;
        }
        function batchDot(x, y, axes) {
            if (x.shape.length > 3 || y.shape.length > 3) {
                throw new _errors.NotImplementedError('batchDot is not implemented for tensors of 4D or higher rank yet');
            }
            tfc.util.assert(x.shape.length >= 2, () => `batchDot requires the rank of x to be >= 2, ` + `but got ${x.shape.length}`);
            tfc.util.assert(x.shape.length >= 2, () => `batchDot requires the rank of y to be >= 2, ` + `but got ${y.shape.length}`);
            if (typeof axes === 'number') {
                axes = [axes, axes];
            }
            if (x.dtype === 'complex64' || y.dtype === 'complex64') {
                throw new _errors.NotImplementedError('batchDot is not implemented for complex64-type Tensors yet.');
            }
            const xNDim = x.shape.length;
            const yNDim = y.shape.length;
            if (axes == null) {
                // Behave like batchMatmul by default.
                axes = [xNDim - 1, yNDim - 2];
            }
            const axesArray = axes;
            return tfc.tidy(() => {
                let diff;
                if (xNDim > yNDim) {
                    diff = xNDim - yNDim;
                    const diffShape = [];
                    for (let i = 0; i < diff; ++i) {
                        diffShape.push(1);
                    }
                    y = tfc.reshape(y, y.shape.concat(diffShape));
                } else if (yNDim > xNDim) {
                    diff = yNDim - xNDim;
                    const diffShape = [];
                    for (let i = 0; i < diff; ++i) {
                        diffShape.push(1);
                    }
                    x = tfc.reshape(x, x.shape.concat(diffShape));
                } else {
                    diff = 0;
                }
                let out;
                if (x.shape.length === 2 && y.shape.length === 2) {
                    if (axesArray[0] === axesArray[1]) {
                        out = tfc.sum(tfc.mul(x, y), axesArray[0]);
                    } else {
                        out = tfc.sum(tfc.mul(tfc.transpose(x, [1, 0]), y), axesArray[1]);
                    }
                } else {
                    const adjX = axesArray[0] !== x.shape.length - 1;
                    const adjY = axesArray[1] === y.shape.length - 1;
                    out = tfc.matMul(x, y, adjX, adjY);
                }
                if (diff > 0) {
                    let idx;
                    if (xNDim > yNDim) {
                        idx = xNDim + yNDim - 3;
                    } else {
                        idx = xNDim - 1;
                    }
                    const squeezeAxes = [];
                    for (let i = idx; i < idx + diff; ++i) {
                        squeezeAxes.push(i);
                    }
                    out = tfc.squeeze(out, squeezeAxes);
                }
                if (out.shape.length === 1) {
                    out = tfc.expandDims(out, 1);
                }
                return out;
            }
            );
        }
        class Dot extends Merge {
            constructor(args) {
                super(args);
                this.axes = args.axes;
                this.normalize = args.normalize == null ? false : args.normalize;
                this.supportsMasking = true;
                this.reshapeRequired = false;
            }
            build(inputShape) {
                tfc.util.assert(Array.isArray(inputShape) && inputShape.length === 2 && Array.isArray(inputShape[0]) && Array.isArray(inputShape[1]), () => 'A `Dot` layer should be called on a list of exactly 2 inputs.');
                const shape1 = inputShape[0];
                const shape2 = inputShape[1];
                if (shape1.length > 3 || shape2.length > 3) {
                    throw new _errors.NotImplementedError('Dot layer does not support tensors of 4D or higher rank yet.');
                }
                const axes = this.interpretAxes(shape1, shape2);
                if (shape1[axes[0]] !== shape2[axes[1]]) {
                    throw new _errors.ValueError(`Dimension incompatibility: ` + `${shape1[axes[0]]} !== ${shape2[axes[1]]}`);
                }
            }
            mergeFunction(inputs) {
                if (inputs.length !== 2) {
                    throw new _errors.ValueError('A `Dot` layer must be called on exactly 2 inputs, ' + `but received ${inputs.length} input(s).`);
                }
                let x1 = inputs[0];
                let x2 = inputs[1];
                let axes;
                if (!Array.isArray(this.axes)) {
                    axes = [interpretAxis(this.axes, x1.shape.length), interpretAxis(this.axes, x2.shape.length)];
                } else {
                    axes = this.axes.map((axis, i) => interpretAxis(axis, inputs[i].shape.length));
                }
                if (this.normalize) {
                    x1 = (0,
                        _losses.l2Normalize)(x1, axes[0]);
                    x2 = (0,
                        _losses.l2Normalize)(x2, axes[1]);
                }
                return batchDot(x1, x2, axes);
            }
            interpretAxes(shape1, shape2) {
                let axes;
                if (!Array.isArray(this.axes)) {
                    // `this.axes` is a single integer.
                    axes = [interpretAxis(this.axes, shape1.length), interpretAxis(this.axes, shape2.length)];
                } else {
                    // `this.axes` is an Array of integers.
                    axes = this.axes;
                }
                return axes;
            }
            computeOutputShape(inputShape) {
                tfc.util.assert(Array.isArray(inputShape) && inputShape.length === 2 && Array.isArray(inputShape[0]) && Array.isArray(inputShape[1]), () => 'A `Dot` layer should be called on a list of exactly 2 inputs.');
                const shape1 = inputShape[0].slice();
                const shape2 = inputShape[1].slice();
                if (shape1.length > 3 || shape2.length > 3) {
                    throw new _errors.NotImplementedError('Dot layer does not support tensors of 4D or higher rank yet.');
                }
                const axes = this.interpretAxes(shape1, shape2);
                shape1.splice(axes[0], 1);
                shape2.splice(axes[1], 1);
                shape2.splice(0, 1);
                const outputShape = shape1.concat(shape2);
                if (outputShape.length === 1) {
                    outputShape.push(1);
                }
                return outputShape;
            }
            computeMask(inputs, mask) {
                return null;
            }
            getConfig() {
                const config = {
                    'axes': this.axes,
                    'normalize': this.normalize
                };
                const baseConfig = super.getConfig();
                Object.assign(config, baseConfig);
                return config;
            }
        }
        /** @nocollapse */
        exports.Dot = Dot;
        Dot.className = 'Dot';
        tfc.serialization.registerClass(Dot);
        // TODO(cais): Add functional interfaces for the merge layers.

    }
        , {
        "../backend/tfjs_backend": 516,
        "../engine/topology": 524,
        "../errors": 529,
        "../losses": 562,
        "../utils/generic_utils": 570,
        "../utils/math_utils": 572,
        "../utils/types_utils": 574,
        "@tensorflow/tfjs-core": 506
    }],
    549: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.GaussianNoise = exports.GaussianDropout = exports.AlphaDropout = void 0;
        var _tfjsCore = require("@tensorflow/tfjs-core");
        var K = _interopRequireWildcard(require("../backend/tfjs_backend"));
        var _topology = require("../engine/topology");
        var _types_utils = require("../utils/types_utils");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2018 Google LLC
         *
         * Use of this source code is governed by an MIT-style
         * license that can be found in the LICENSE file or at
         * https://opensource.org/licenses/MIT.
         * =============================================================================
         */
        /**
         * TensorFlow.js Layers: Noise Layers.
         */

        class GaussianNoise extends _topology.Layer {
            constructor(args) {
                super(args);
                this.supportsMasking = true;
                this.stddev = args.stddev;
            }
            computeOutputShape(inputShape) {
                return inputShape;
            }
            getConfig() {
                const baseConfig = super.getConfig();
                const config = {
                    stddev: this.stddev
                };
                Object.assign(config, baseConfig);
                return config;
            }
            call(inputs, kwargs) {
                return (0,
                    _tfjsCore.tidy)(() => {
                        this.invokeCallHook(inputs, kwargs);
                        const input = (0,
                            _types_utils.getExactlyOneTensor)(inputs);
                        const noised = () => (0,
                            _tfjsCore.add)(K.randomNormal(input.shape, 0, this.stddev), input);
                        const output = K.inTrainPhase(noised, () => input, kwargs['training'] || false);
                        return output;
                    }
                    );
            }
        }
        /** @nocollapse */
        exports.GaussianNoise = GaussianNoise;
        GaussianNoise.className = 'GaussianNoise';
        _tfjsCore.serialization.registerClass(GaussianNoise);
        class GaussianDropout extends _topology.Layer {
            constructor(args) {
                super(args);
                this.supportsMasking = true;
                this.rate = args.rate;
            }
            computeOutputShape(inputShape) {
                return inputShape;
            }
            getConfig() {
                const baseConfig = super.getConfig();
                const config = {
                    rate: this.rate
                };
                Object.assign(config, baseConfig);
                return config;
            }
            call(inputs, kwargs) {
                return (0,
                    _tfjsCore.tidy)(() => {
                        this.invokeCallHook(inputs, kwargs);
                        const input = (0,
                            _types_utils.getExactlyOneTensor)(inputs);
                        if (this.rate > 0 && this.rate < 1) {
                            const noised = () => {
                                const stddev = Math.sqrt(this.rate / (1 - this.rate));
                                return (0,
                                    _tfjsCore.mul)(input, K.randomNormal(input.shape, 1, stddev));
                            }
                                ;
                            return K.inTrainPhase(noised, () => input, kwargs['training'] || false);
                        }
                        return input;
                    }
                    );
            }
        }
        /** @nocollapse */
        exports.GaussianDropout = GaussianDropout;
        GaussianDropout.className = 'GaussianDropout';
        _tfjsCore.serialization.registerClass(GaussianDropout);
        /**
         * Applies Alpha Dropout to the input.
         *
         * As it is a regularization layer, it is only active at training time.
         *
         * Alpha Dropout is a `Dropout` that keeps mean and variance of inputs
         * to their original values, in order to ensure the self-normalizing property
         * even after this dropout.
         * Alpha Dropout fits well to Scaled Exponential Linear Units
         * by randomly setting activations to the negative saturation value.
         *
         * Arguments:
         *   - `rate`: float, drop probability (as with `Dropout`).
         *     The multiplicative noise will have
         *     standard deviation `sqrt(rate / (1 - rate))`.
         *   - `noise_shape`: A 1-D `Tensor` of type `int32`, representing the
         *     shape for randomly generated keep/drop flags.
         *
         * Input shape:
         *   Arbitrary. Use the keyword argument `inputShape`
         *   (tuple of integers, does not include the samples axis)
         *   when using this layer as the first layer in a model.
         *
         * Output shape:
         *   Same shape as input.
         *
         * References:
         *   - [Self-Normalizing Neural Networks](https://arxiv.org/abs/1706.02515)
         */
        class AlphaDropout extends _topology.Layer {
            constructor(args) {
                super(args);
                this.supportsMasking = true;
                this.rate = args.rate;
                this.noiseShape = args.noiseShape;
            }
            _getNoiseShape(inputs) {
                return this.noiseShape || (0,
                    _types_utils.getExactlyOneTensor)(inputs).shape;
            }
            computeOutputShape(inputShape) {
                return inputShape;
            }
            getConfig() {
                const baseConfig = super.getConfig();
                const config = {
                    rate: this.rate
                };
                Object.assign(config, baseConfig);
                return config;
            }
            call(inputs, kwargs) {
                return (0,
                    _tfjsCore.tidy)(() => {
                        if (this.rate < 1 && this.rate > 0) {
                            const noiseShape = this._getNoiseShape(inputs);
                            const droppedInputs = () => {
                                const input = (0,
                                    _types_utils.getExactlyOneTensor)(inputs);
                                const alpha = 1.6732632423543772848170429916717;
                                const scale = 1.0507009873554804934193349852946;
                                const alphaP = -alpha * scale;
                                let keptIdx = (0,
                                    _tfjsCore.greaterEqual)((0,
                                        _tfjsCore.randomUniform)(noiseShape), this.rate);
                                keptIdx = K.cast(keptIdx, 'float32');
                                // get default dtype.
                                // Get affine transformation params.
                                const a = ((1 - this.rate) * (1 + this.rate * alphaP ** 2)) ** -0.5;
                                const b = -a * alphaP * this.rate;
                                // Apply mask.
                                const x = (0,
                                    _tfjsCore.add)((0,
                                        _tfjsCore.mul)(input, keptIdx), (0,
                                            _tfjsCore.mul)((0,
                                                _tfjsCore.add)(keptIdx, -1), alphaP));
                                return (0,
                                    _tfjsCore.add)((0,
                                        _tfjsCore.mul)(x, a), b);
                            }
                                ;
                            return K.inTrainPhase(droppedInputs, () => (0,
                                _types_utils.getExactlyOneTensor)(inputs), kwargs['training'] || false);
                        }
                        return inputs;
                    }
                    );
            }
        }
        /** @nocollapse */
        exports.AlphaDropout = AlphaDropout;
        AlphaDropout.className = 'AlphaDropout';
        _tfjsCore.serialization.registerClass(AlphaDropout);

    }
        , {
        "../backend/tfjs_backend": 516,
        "../engine/topology": 524,
        "../utils/types_utils": 574,
        "@tensorflow/tfjs-core": 506
    }],
    550: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.LayerNormalization = exports.BatchNormalization = void 0;
        exports.batchNormalization = batchNormalization;
        exports.normalizeBatchInTraining = normalizeBatchInTraining;
        var tfc = _interopRequireWildcard(require("@tensorflow/tfjs-core"));
        var _constraints = require("../constraints");
        var _topology = require("../engine/topology");
        var _errors = require("../errors");
        var _initializers = require("../initializers");
        var _regularizers = require("../regularizers");
        var generic_utils = _interopRequireWildcard(require("../utils/generic_utils"));
        var math_utils = _interopRequireWildcard(require("../utils/math_utils"));
        var _types_utils = require("../utils/types_utils");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2018 Google LLC
         *
         * Use of this source code is governed by an MIT-style
         * license that can be found in the LICENSE file or at
         * https://opensource.org/licenses/MIT.
         * =============================================================================
         */
        /**
         * Normalization layers.
         */

        /**
         * Applies batch normalization on x given mean, var, beta and gamma.
         *
         * I.e. returns:
         *   `output = (x - mean) / (sqrt(var) + epsilon) * gamma + beta`
         *
         * @param x Input tensor.
         * @param mean Mean of batch.
         * @param variance Variance of batch.
         * @param beta Tensor with which to center the input.
         * @param gamma Tensor by which to scale the input.
         * @param epsilon Fuzz factor.
         * @returns The result of the batch normalization.
         */
        function batchNormalization(x, mean, variance, beta, gamma, epsilon = 1e-3) {
            let out;
            if (x.rank === 2) {
                out = tfc.batchNorm2d(x, mean, variance, beta, gamma, epsilon);
            } else if (x.rank === 3) {
                // TODO(cais): Check rank; give proper error message.
                out = tfc.batchNorm3d(x, mean, variance, beta, gamma, epsilon);
            } else if (x.rank === 4) {
                out = tfc.batchNorm4d(x, mean, variance, beta, gamma, epsilon);
            } else {
                throw new _errors.NotImplementedError(`batchNormalization is not implemented for array of rank ${x.rank} ` + `yet`);
            }
            return out;
        }
        /**
         * Non-broadcasting batch normalization for use in training (not inference).
         *
         * The input is normalized to zero mean and unit variance along the
         * `reductionAxes`, followed by scaling with `gamma` and shifted by `beta`.
         * The result of that is returned as the first element
         * of the returned `Array`. The other two elements are the mean and variance,
         * respectively.
         *
         * @param x Input tensor to be normalized.
         * @param gamma Tensor by which to scale the input.
         * @param beta Tensor by which to center the input.
         * @param reductionAxes Axes over which to normalize.
         * @param epsilon Fuzz factor.
         * @returns An `Array` of three `Tensors`:
         *   [normalized tensor, mean of input, variance of input].
         */
        function regularNormalizeBatchInTraining(x, gamma, beta, reductionAxes, epsilon = 1e-3) {
            return (0,
                tfc.tidy)(() => {
                    const meanAndVariance = tfc.moments(x, reductionAxes);
                    const mean = meanAndVariance.mean;
                    const variance = meanAndVariance.variance;
                    const normed = batchNormalization(x, mean, variance, beta, gamma, epsilon);
                    return [normed, mean, variance];
                }
                );
        }
        /**
         * Broadcasting batch normalization for use in training (not inference).
         *
         * The input is normalized to zero mean and unit variance along the
         * `reductionAxes`, followed by scaling with `gamma` and shifted by `beta`.
         * The result of that is returned as the first element
         * of the returned `Array`. The other two elements are the mean and variance,
         * respectively.
         *
         * @param x Input tensor to be normalized.
         * @param gamma Tensor by which to scale the input.
         * @param beta Tensor by which to center the input.
         * @param reductionAxes Axes over which to normalize.
         * @param epsilon Fuzz factor.
         * @returns An `Array` of three `Tensors`:
         *   [normalized tensor, mean of input, variance of input].
         */
        function broadcastNormalizeBatchInTraining(x, gamma, beta, reductionAxes, epsilon = 1e-3) {
            return (0,
                tfc.tidy)(() => {
                    const meanAndVariance = tfc.moments(x, reductionAxes);
                    const mean = meanAndVariance.mean;
                    const variance = meanAndVariance.variance;
                    const targetShape = [];
                    for (const axis of math_utils.range(0, x.rank)) {
                        if (reductionAxes.indexOf(axis) !== -1) {
                            targetShape.push(1);
                        } else {
                            targetShape.push(x.shape[axis]);
                        }
                    }
                    const broadcastMean = (0,
                        tfc.reshape)(mean, targetShape);
                    const broadcastVariance = (0,
                        tfc.reshape)(variance, targetShape);
                    const broadcastGamma = gamma == null ? null : (0,
                        tfc.reshape)(gamma, targetShape);
                    const broadcastBeta = beta == null ? null : (0,
                        tfc.reshape)(beta, targetShape);
                    const normed = batchNormalization(x, broadcastMean, broadcastVariance, broadcastBeta, broadcastGamma, epsilon);
                    return [normed, mean, variance];
                }
                );
        }
        /**
         * Batch normalization for use in training (not inference).
         *
         * @param x Input tensor to be normalized.
         * @param gamma Tensor by which to scale the input.
         * @param beta Tensor by which to center the input.
         * @param reductionAxes Axes over which to normalize.
         * @param epsilon Fuzz factor.
         * @returns An `Array` of three `Tensors`:
         *   [normalized tensor, mean of input, variance of input].
         */
        function normalizeBatchInTraining(x, gamma, beta, reductionAxes, epsilon = 1e-3) {
            if (tfc.util.arraysEqual(reductionAxes.slice().sort(), math_utils.range(0, x.rank - 1))) {
                return regularNormalizeBatchInTraining(x, gamma, beta, reductionAxes, epsilon);
            } else {
                return broadcastNormalizeBatchInTraining(x, gamma, beta, reductionAxes, epsilon);
            }
        }
        class BatchNormalization extends _topology.Layer {
            constructor(args) {
                if (args == null) {
                    args = {};
                }
                super(args);
                this.supportsMasking = true;
                this.axis = args.axis == null ? -1 : args.axis;
                this.momentum = args.momentum == null ? 0.99 : args.momentum;
                this.epsilon = args.epsilon == null ? 1e-3 : args.epsilon;
                this.center = args.center == null ? true : args.center;
                this.scale = args.scale == null ? true : args.scale;
                this.betaInitializer = (0,
                    _initializers.getInitializer)(args.betaInitializer || 'zeros');
                this.gammaInitializer = (0,
                    _initializers.getInitializer)(args.gammaInitializer || 'ones');
                this.movingMeanInitializer = (0,
                    _initializers.getInitializer)(args.movingMeanInitializer || 'zeros');
                this.movingVarianceInitializer = (0,
                    _initializers.getInitializer)(args.movingVarianceInitializer || 'ones');
                this.betaConstraint = (0,
                    _constraints.getConstraint)(args.betaConstraint);
                this.gammaConstraint = (0,
                    _constraints.getConstraint)(args.gammaConstraint);
                this.betaRegularizer = (0,
                    _regularizers.getRegularizer)(args.betaRegularizer);
                this.gammaRegularizer = (0,
                    _regularizers.getRegularizer)(args.gammaRegularizer);
            }
            build(inputShape) {
                inputShape = (0,
                    _types_utils.getExactlyOneShape)(inputShape);
                const axis = this.axis >= 0 ? this.axis : this.axis + inputShape.length;
                const dim = inputShape[axis];
                if (dim == null) {
                    throw new _errors.ValueError(`Axis ${axis} of input tensor should have a defined dimension but ` + `the layer received an input with shape ` + `${JSON.stringify(inputShape)}.`);
                }
                this.inputSpec = [new _topology.InputSpec({
                    ndim: inputShape.length,
                    axes: {
                        [axis]: dim
                    }
                })];
                const shape = [dim];
                if (this.scale) {
                    this.gamma = this.addWeight('gamma', shape, null, this.gammaInitializer, this.gammaRegularizer, true, this.gammaConstraint);
                }
                if (this.center) {
                    this.beta = this.addWeight('beta', shape, null, this.betaInitializer, this.betaRegularizer, true, this.betaConstraint);
                }
                this.movingMean = this.addWeight('moving_mean', shape, null, this.movingMeanInitializer, null, false);
                this.movingVariance = this.addWeight('moving_variance', shape, null, this.movingVarianceInitializer, null, false);
                this.built = true;
            }
            call(inputs, kwargs) {
                return (0,
                    tfc.tidy)(() => {
                        const training = kwargs['training'] == null ? false : kwargs['training'];
                        const input = (0,
                            _types_utils.getExactlyOneTensor)(inputs);
                        const inputShape = input.shape;
                        const ndim = inputShape.length;
                        const reductionAxes = math_utils.range(0, ndim);
                        const axis = this.axis >= 0 ? this.axis : this.axis + ndim;
                        reductionAxes.splice(axis, 1);
                        const broadcastShape = generic_utils.pyListRepeat(1, ndim);
                        broadcastShape[axis] = inputShape[axis];
                        const sortedReductionAxes = reductionAxes.slice();
                        sortedReductionAxes.sort();
                        const needsBroadcasting = !tfc.util.arraysEqual(sortedReductionAxes, math_utils.range(0, ndim).slice(0, ndim - 1));
                        const normalizeInference = () => {
                            if (needsBroadcasting) {
                                const broadcastMovingMean = (0,
                                    tfc.reshape)(this.movingMean.read(), broadcastShape);
                                const broadcastMovingVariance = (0,
                                    tfc.reshape)(this.movingVariance.read(), broadcastShape);
                                const broadcastBeta = this.center ? (0,
                                    tfc.reshape)(this.beta.read(), broadcastShape) : null;
                                const broadcastGamma = this.scale ? (0,
                                    tfc.reshape)(this.gamma.read(), broadcastShape) : null;
                                return batchNormalization(input, broadcastMovingMean, broadcastMovingVariance, broadcastBeta, broadcastGamma, this.epsilon);
                            } else {
                                return batchNormalization(input, this.movingMean.read(), this.movingVariance.read(), this.beta == null ? null : this.beta.read(), this.gamma == null ? null : this.gamma.read(), this.epsilon);
                            }
                        }
                            ;
                        if (!training) {
                            return normalizeInference();
                        }
                        const [normedTraining, mean, variance] = normalizeBatchInTraining(input, this.gamma.read(), this.beta.read(), reductionAxes, this.epsilon);
                        const doMovingAverage = (variable, value, momentum) => {
                            tfc.tidy(() => {
                                const decay = 1 - momentum;
                                const origValue = variable.read();
                                const updateDelta = tfc.mul(tfc.sub(origValue, value), decay);
                                variable.write(tfc.sub(origValue, updateDelta));
                            }
                            );
                        }
                            ;
                        // Perform updates to moving mean and moving variance for training.
                        // Porting Note: In PyKeras, these updates to `movingMean` and
                        //   `movingAverage` are done as a deferred Graph, added to the `Layer`'s
                        //   `update`s using the `add_update()` method. Here we do it imperatively
                        //   and encapsulate the updates in a function that is invoked
                        //   immediately.
                        const updateMovingMeanAndVariance = () => {
                            doMovingAverage(this.movingMean, mean, this.momentum);
                            doMovingAverage(this.movingVariance, variance, this.momentum);
                        }
                            ;
                        updateMovingMeanAndVariance();
                        return normedTraining;
                    }
                    );
            }
            getConfig() {
                const config = {
                    axis: this.axis,
                    momentum: this.momentum,
                    epsilon: this.epsilon,
                    center: this.center,
                    scale: this.scale,
                    betaInitializer: (0,
                        _initializers.serializeInitializer)(this.betaInitializer),
                    gammaInitializer: (0,
                        _initializers.serializeInitializer)(this.gammaInitializer),
                    movingMeanInitializer: (0,
                        _initializers.serializeInitializer)(this.movingMeanInitializer),
                    movingVarianceInitializer: (0,
                        _initializers.serializeInitializer)(this.movingVarianceInitializer),
                    betaRegularizer: (0,
                        _regularizers.serializeRegularizer)(this.betaRegularizer),
                    gammaRegularizer: (0,
                        _regularizers.serializeRegularizer)(this.gammaRegularizer),
                    betaConstraint: (0,
                        _constraints.serializeConstraint)(this.betaConstraint),
                    gammaConstraint: (0,
                        _constraints.serializeConstraint)(this.gammaConstraint)
                };
                const baseConfig = super.getConfig();
                Object.assign(config, baseConfig);
                return config;
            }
        }
        /** @nocollapse */
        exports.BatchNormalization = BatchNormalization;
        BatchNormalization.className = 'BatchNormalization';
        tfc.serialization.registerClass(BatchNormalization);
        class LayerNormalization extends _topology.Layer {
            constructor(args) {
                if (args == null) {
                    args = {};
                }
                super(args);
                this.axis = args.axis == null ? -1 : args.axis;
                if (typeof this.axis === 'number') {
                    if (!Number.isInteger(this.axis)) {
                        throw new Error(`Expected axis to be an integer, but received ${this.axis}`);
                    }
                } else if (Array.isArray(this.axis)) {
                    for (const axis of this.axis) {
                        if (!Number.isInteger(axis)) {
                            throw new Error(`Expected axis to be an array of integers, ` + `but received ${JSON.stringify(this.axis)}`);
                        }
                    }
                } else {
                    throw new Error(`Expected axis to be an integer or an array of integers, ` + `but received ${JSON.stringify(this.axis)}`);
                }
                this.epsilon = args.epsilon == null ? 1e-3 : args.epsilon;
                this.center = args.center == null ? true : args.center;
                this.scale = args.scale == null ? true : args.scale;
                this.betaInitializer = (0,
                    _initializers.getInitializer)(args.betaInitializer || 'zeros');
                this.gammaInitializer = (0,
                    _initializers.getInitializer)(args.gammaInitializer || 'ones');
                this.betaRegularizer = (0,
                    _regularizers.getRegularizer)(args.betaRegularizer);
                this.gammaRegularizer = (0,
                    _regularizers.getRegularizer)(args.gammaRegularizer);
                this.supportsMasking = true;
            }
            build(inputShape) {
                inputShape = (0,
                    _types_utils.getExactlyOneShape)(inputShape);
                const nDims = inputShape.length;
                // Convert axis to array and resolve negatives.
                if (typeof this.axis === 'number') {
                    this.axis = [this.axis];
                }
                for (let i = 0; i < this.axis.length; ++i) {
                    if (this.axis[i] < 0) {
                        this.axis[i] += nDims;
                    }
                }
                // Further validate axes.
                for (const axis of this.axis) {
                    if (axis < 0 || axis >= nDims) {
                        throw new Error(`Invalid axis: ${axis}`);
                    }
                }
                if (this.axis.length !== generic_utils.unique(this.axis).length) {
                    throw new Error(`Found duplicate axes in: ${this.axis}`);
                }
                const paramShape = this.axis.map(axis => inputShape[axis]);
                const trainable = true;
                if (this.scale) {
                    this.gamma = this.addWeight('gamma', paramShape, 'float32', this.gammaInitializer, this.gammaRegularizer, trainable);
                } else {
                    this.gamma = null;
                }
                if (this.center) {
                    this.beta = this.addWeight('beta', paramShape, 'float32', this.betaInitializer, this.betaRegularizer, trainable);
                } else {
                    this.beta = null;
                }
                this.built = true;
            }
            call(inputs, kwargs) {
                const input = (0,
                    _types_utils.getExactlyOneTensor)(inputs);
                const inputShape = input.shape;
                const nDims = inputShape.length;
                return (0,
                    tfc.tidy)(() => {
                        const keepDims = true;
                        let { mean, variance } = (0,
                            tfc.moments)(input, this.axis, keepDims);
                        const broadcastShape = generic_utils.pyListRepeat(1, nDims);
                        for (const dim of this.axis) {
                            broadcastShape[dim] = inputShape[dim];
                        }
                        const broadcast = v => {
                            if (v != null && v.shape.length !== nDims) {
                                return tfc.reshape(v, broadcastShape);
                            } else {
                                return v;
                            }
                        }
                            ;
                        let scale = this.scale ? broadcast(this.gamma.read()) : null;
                        let offset = this.center ? broadcast(this.beta.read()) : null;
                        // TODO(https://github.com/tensorflow/tfjs/issues/2120): The tiling below
                        // is a workaround for the limitation of core's batchNormalization?d don't
                        // support broadcasting in their gradients. In addition, the tiling is
                        // necessary to ensure correctness on the browser CPU backend regardless
                        // of forward or backward computation. Remove this workaround once the
                        // limitation is addressed. See .
                        const momentsTiling = [];
                        const scaleOffsetTiling = [];
                        for (let i = 0; i < nDims; ++i) {
                            if (this.axis.indexOf(i) !== -1) {
                                momentsTiling.push(inputShape[i]);
                                scaleOffsetTiling.push(1);
                            } else {
                                momentsTiling.push(1);
                                scaleOffsetTiling.push(inputShape[i]);
                            }
                        }
                        mean = tfc.tile(mean, momentsTiling);
                        variance = tfc.tile(variance, momentsTiling);
                        if (scale != null) {
                            scale = tfc.tile(scale, scaleOffsetTiling);
                        }
                        if (offset != null) {
                            offset = tfc.tile(offset, scaleOffsetTiling);
                        }
                        return batchNormalization(input, mean, variance, offset, scale, this.epsilon);
                    }
                    );
            }
            getConfig() {
                const config = {
                    axis: this.axis,
                    epsilon: this.epsilon,
                    center: this.center,
                    scale: this.scale,
                    betaInitializer: (0,
                        _initializers.serializeInitializer)(this.betaInitializer),
                    gammaInitializer: (0,
                        _initializers.serializeInitializer)(this.gammaInitializer),
                    betaRegularizer: (0,
                        _regularizers.serializeRegularizer)(this.betaRegularizer),
                    gammaRegularizer: (0,
                        _regularizers.serializeRegularizer)(this.gammaRegularizer)
                };
                const baseConfig = super.getConfig();
                Object.assign(config, baseConfig);
                return config;
            }
        }
        /** @nocollapse */
        exports.LayerNormalization = LayerNormalization;
        LayerNormalization.className = 'LayerNormalization';
        tfc.serialization.registerClass(LayerNormalization);

    }
        , {
        "../constraints": 520,
        "../engine/topology": 524,
        "../errors": 529,
        "../initializers": 539,
        "../regularizers": 566,
        "../utils/generic_utils": 570,
        "../utils/math_utils": 572,
        "../utils/types_utils": 574,
        "@tensorflow/tfjs-core": 506
    }],
    551: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.ZeroPadding2D = void 0;
        exports.spatial2dPadding = spatial2dPadding;
        exports.temporalPadding = temporalPadding;
        var tfc = _interopRequireWildcard(require("@tensorflow/tfjs-core"));
        var _common = require("../backend/common");
        var _topology = require("../engine/topology");
        var _errors = require("../errors");
        var _types_utils = require("../utils/types_utils");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2018 Google LLC
         *
         * Use of this source code is governed by an MIT-style
         * license that can be found in the LICENSE file or at
         * https://opensource.org/licenses/MIT.
         * =============================================================================
         */
        /**
         * Padding Layers.
         */
        // Porting Note: In Python Keras, the padding layers are in convolutional.py,
        //   but we decided to put them in a separate file (padding.ts) for clarity.

        /**
         * Pads the middle dimension of a 3D tensor.
         *
         * @param x Input `tf.Tensor` to be padded.
         * @param padding `Array` of 2 integers, how many zeros to add at the start and
         *   end of the middle dimension (i.e., dimension 1).
         * @return A padded 3D `tf.Tensor`.
         */
        function temporalPadding(x, padding) {
            return (0,
                tfc.tidy)(() => {
                    if (x.rank !== 3) {
                        throw new _errors.ValueError(`temporalPadding expects input tensor to be 3-D, but received a ` + `${x.rank}-D tensor.`);
                    }
                    if (padding == null) {
                        padding = [1, 1];
                    }
                    if (padding.length !== 2) {
                        throw new _errors.ValueError(`temporalPadding expects input padding pattern to be a length-2 ` + `array, but received a length-${padding.length} array.`);
                    }
                    const pattern = [[0, 0], padding, [0, 0]];
                    return tfc.pad(x, pattern);
                }
                );
        }
        /**
         * Pads the 2nd and 3rd dimensions of a 4D tensor.
         *
         * @param x Input `tf.Tensor` to be padded.
         * @param padding `Array` of two `Array`s, each of which is an `Array` of two
         *   integers. The amount of padding at the beginning and end of the 2nd and 3rd
         *   dimensions, respectively.
         * @param dataFormat 'channelsLast' (default) or 'channelsFirst'.
         * @return Padded 4D `tf.Tensor`.
         */
        function spatial2dPadding(x, padding, dataFormat) {
            return (0,
                tfc.tidy)(() => {
                    if (x.rank !== 4) {
                        throw new _errors.ValueError(`temporalPadding expects input tensor to be 4-D, but received a ` + `${x.rank}-D tensor.`);
                    }
                    if (padding == null) {
                        padding = [[1, 1], [1, 1]];
                    }
                    if (padding.length !== 2 || padding[0].length !== 2 || padding[1].length !== 2) {
                        throw new _errors.ValueError('spatial2dPadding expects `padding` to be an Array of two Arrays, ' + 'each of which is an Array of two integers.');
                    }
                    if (dataFormat == null) {
                        dataFormat = (0,
                            _common.imageDataFormat)();
                    }
                    if (dataFormat !== 'channelsLast' && dataFormat !== 'channelsFirst') {
                        throw new _errors.ValueError(`Unknown data format: ${dataFormat}. ` + `Supported data formats are 'channelsLast' and 'channelsFirst.`);
                    }
                    let pattern;
                    if (dataFormat === 'channelsFirst') {
                        pattern = [[0, 0], [0, 0], padding[0], padding[1]];
                    } else {
                        pattern = [[0, 0], padding[0], padding[1], [0, 0]];
                    }
                    return tfc.pad(x, pattern);
                }
                );
        }
        class ZeroPadding2D extends _topology.Layer {
            constructor(args) {
                if (args == null) {
                    args = {};
                }
                super(args);
                this.dataFormat = args.dataFormat == null ? (0,
                    _common.imageDataFormat)() : args.dataFormat;
                // TODO(cais): Maybe refactor the following logic surrounding `padding`
                //   into a helper method.
                if (args.padding == null) {
                    this.padding = [[1, 1], [1, 1]];
                } else if (typeof args.padding === 'number') {
                    this.padding = [[args.padding, args.padding], [args.padding, args.padding]];
                } else {
                    args.padding = args.padding;
                    if (args.padding.length !== 2) {
                        throw new _errors.ValueError(`ZeroPadding2D expects padding to be a length-2 array, but ` + `received a length-${args.padding.length} array.`);
                    }
                    let heightPadding;
                    let widthPadding;
                    if (typeof args.padding[0] === 'number') {
                        heightPadding = [args.padding[0], args.padding[0]];
                        widthPadding = [args.padding[1], args.padding[1]];
                    } else {
                        args.padding = args.padding;
                        if (args.padding[0].length !== 2) {
                            throw new _errors.ValueError(`ZeroPadding2D expects height padding to be a length-2 array, ` + `but received a length-${args.padding[0].length} array.`);
                        }
                        heightPadding = args.padding[0];
                        if (args.padding[1].length !== 2) {
                            throw new _errors.ValueError(`ZeroPadding2D expects width padding to be a length-2 array, ` + `but received a length-${args.padding[1].length} array.`);
                        }
                        widthPadding = args.padding[1];
                    }
                    this.padding = [heightPadding, widthPadding];
                }
                this.inputSpec = [new _topology.InputSpec({
                    ndim: 4
                })];
            }
            computeOutputShape(inputShape) {
                inputShape = (0,
                    _types_utils.getExactlyOneShape)(inputShape);
                let rows;
                let cols;
                if (this.dataFormat === 'channelsFirst') {
                    if (inputShape[2] != null && inputShape[2] >= 0) {
                        rows = inputShape[2] + this.padding[0][0] + this.padding[0][1];
                    } else {
                        rows = null;
                    }
                    if (inputShape[3] != null && inputShape[3] >= 0) {
                        cols = inputShape[3] + this.padding[1][0] + this.padding[1][1];
                    } else {
                        cols = null;
                    }
                    return [inputShape[0], inputShape[1], rows, cols];
                } else {
                    if (inputShape[1] != null && inputShape[1] >= 0) {
                        rows = inputShape[1] + this.padding[0][0] + this.padding[0][1];
                    } else {
                        rows = null;
                    }
                    if (inputShape[2] != null && inputShape[2] >= 0) {
                        cols = inputShape[2] + this.padding[1][0] + this.padding[1][1];
                    } else {
                        cols = null;
                    }
                    return [inputShape[0], rows, cols, inputShape[3]];
                }
            }
            call(inputs, kwargs) {
                return (0,
                    tfc.tidy)(() => spatial2dPadding((0,
                        _types_utils.getExactlyOneTensor)(inputs), this.padding, this.dataFormat));
            }
            getConfig() {
                const config = {
                    padding: this.padding,
                    dataFormat: this.dataFormat
                };
                const baseConfig = super.getConfig();
                Object.assign(config, baseConfig);
                return config;
            }
        }
        /** @nocollapse */
        exports.ZeroPadding2D = ZeroPadding2D;
        ZeroPadding2D.className = 'ZeroPadding2D';
        tfc.serialization.registerClass(ZeroPadding2D);

    }
        , {
        "../backend/common": 514,
        "../engine/topology": 524,
        "../errors": 529,
        "../utils/types_utils": 574,
        "@tensorflow/tfjs-core": 506
    }],
    552: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.Pooling3D = exports.Pooling2D = exports.Pooling1D = exports.MaxPooling3D = exports.MaxPooling2D = exports.MaxPooling1D = exports.GlobalPooling2D = exports.GlobalPooling1D = exports.GlobalMaxPooling2D = exports.GlobalMaxPooling1D = exports.GlobalAveragePooling2D = exports.GlobalAveragePooling1D = exports.AveragePooling3D = exports.AveragePooling2D = exports.AveragePooling1D = void 0;
        exports.pool2d = pool2d;
        exports.pool3d = pool3d;
        var tfc = _interopRequireWildcard(require("@tensorflow/tfjs-core"));
        var _common = require("../backend/common");
        var K = _interopRequireWildcard(require("../backend/tfjs_backend"));
        var _common2 = require("../common");
        var _topology = require("../engine/topology");
        var _errors = require("../errors");
        var _conv_utils = require("../utils/conv_utils");
        var _generic_utils = require("../utils/generic_utils");
        var _types_utils = require("../utils/types_utils");
        var _convolutional = require("./convolutional");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2018 Google LLC
         *
         * Use of this source code is governed by an MIT-style
         * license that can be found in the LICENSE file or at
         * https://opensource.org/licenses/MIT.
         * =============================================================================
         */
        /**
         * TensorFlow.js Layers: Pooling Layers.
         */

        /**
         * 2D pooling.
         * @param x
         * @param poolSize
         * @param strides strides. Defaults to [1, 1].
         * @param padding padding. Defaults to 'valid'.
         * @param dataFormat data format. Defaults to 'channelsLast'.
         * @param poolMode Mode of pooling. Defaults to 'max'.
         * @returns Result of the 2D pooling.
         */
        function pool2d(x, poolSize, strides, padding, dataFormat, poolMode) {
            return (0,
                tfc.tidy)(() => {
                    (0,
                        _common2.checkDataFormat)(dataFormat);
                    (0,
                        _common2.checkPoolMode)(poolMode);
                    (0,
                        _common2.checkPaddingMode)(padding);
                    if (strides == null) {
                        strides = [1, 1];
                    }
                    if (padding == null) {
                        padding = 'valid';
                    }
                    if (dataFormat == null) {
                        dataFormat = (0,
                            _common.imageDataFormat)();
                    }
                    if (poolMode == null) {
                        poolMode = 'max';
                    }
                    // TODO(cais): Remove the preprocessing step once deeplearn.js supports
                    // dataFormat as an input argument.
                    x = (0,
                        _convolutional.preprocessConv2DInput)(x, dataFormat);
                    // x is NHWC after preprocessing.
                    let y;
                    const paddingString = padding === 'same' ? 'same' : 'valid';
                    if (poolMode === 'max') {
                        // TODO(cais): Rank check?
                        y = tfc.maxPool(x, poolSize, strides, paddingString);
                    } else {
                        // 'avg'
                        // TODO(cais): Check the dtype and rank of x and give clear error message
                        //   if those are incorrect.
                        y = tfc.avgPool(// TODO(cais): Rank check?
                            x, poolSize, strides, paddingString);
                    }
                    if (dataFormat === 'channelsFirst') {
                        y = tfc.transpose(y, [0, 3, 1, 2]);
                        // NHWC -> NCHW.
                    }

                    return y;
                }
                );
        }
        /**
         * 3D pooling.
         * @param x
         * @param poolSize. Default to [1, 1, 1].
         * @param strides strides. Defaults to [1, 1, 1].
         * @param padding padding. Defaults to 'valid'.
         * @param dataFormat data format. Defaults to 'channelsLast'.
         * @param poolMode Mode of pooling. Defaults to 'max'.
         * @returns Result of the 3D pooling.
         */
        function pool3d(x, poolSize, strides, padding, dataFormat, poolMode) {
            return (0,
                tfc.tidy)(() => {
                    (0,
                        _common2.checkDataFormat)(dataFormat);
                    (0,
                        _common2.checkPoolMode)(poolMode);
                    (0,
                        _common2.checkPaddingMode)(padding);
                    if (strides == null) {
                        strides = [1, 1, 1];
                    }
                    if (padding == null) {
                        padding = 'valid';
                    }
                    if (dataFormat == null) {
                        dataFormat = (0,
                            _common.imageDataFormat)();
                    }
                    if (poolMode == null) {
                        poolMode = 'max';
                    }
                    // x is NDHWC after preprocessing.
                    x = (0,
                        _convolutional.preprocessConv3DInput)(x, dataFormat);
                    let y;
                    const paddingString = padding === 'same' ? 'same' : 'valid';
                    if (poolMode === 'max') {
                        y = tfc.maxPool3d(x, poolSize, strides, paddingString);
                    } else {
                        // 'avg'
                        y = tfc.avgPool3d(x, poolSize, strides, paddingString);
                    }
                    if (dataFormat === 'channelsFirst') {
                        y = tfc.transpose(y, [0, 4, 1, 2, 3]);
                        // NDHWC -> NCDHW.
                    }

                    return y;
                }
                );
        }
        /**
         * Abstract class for different pooling 1D layers.
         */
        class Pooling1D extends _topology.Layer {
            /**
             *
             * @param args Parameters for the Pooling layer.
             *
             * config.poolSize defaults to 2.
             */
            constructor(args) {
                if (args.poolSize == null) {
                    args.poolSize = 2;
                }
                super(args);
                if (typeof args.poolSize === 'number') {
                    this.poolSize = [args.poolSize];
                } else if (Array.isArray(args.poolSize) && args.poolSize.length === 1 && typeof args.poolSize[0] === 'number') {
                    this.poolSize = args.poolSize;
                } else {
                    throw new _errors.ValueError(`poolSize for 1D convolutional layer must be a number or an ` + `Array of a single number, but received ` + `${JSON.stringify(args.poolSize)}`);
                }
                (0,
                    _generic_utils.assertPositiveInteger)(this.poolSize, 'poolSize');
                if (args.strides == null) {
                    this.strides = this.poolSize;
                } else {
                    if (typeof args.strides === 'number') {
                        this.strides = [args.strides];
                    } else if (Array.isArray(args.strides) && args.strides.length === 1 && typeof args.strides[0] === 'number') {
                        this.strides = args.strides;
                    } else {
                        throw new _errors.ValueError(`strides for 1D convolutional layer must be a number or an ` + `Array of a single number, but received ` + `${JSON.stringify(args.strides)}`);
                    }
                }
                (0,
                    _generic_utils.assertPositiveInteger)(this.strides, 'strides');
                this.padding = args.padding == null ? 'valid' : args.padding;
                (0,
                    _common2.checkPaddingMode)(this.padding);
                this.inputSpec = [new _topology.InputSpec({
                    ndim: 3
                })];
            }
            computeOutputShape(inputShape) {
                inputShape = (0,
                    _types_utils.getExactlyOneShape)(inputShape);
                const length = (0,
                    _conv_utils.convOutputLength)(inputShape[1], this.poolSize[0], this.padding, this.strides[0]);
                return [inputShape[0], length, inputShape[2]];
            }
            call(inputs, kwargs) {
                return (0,
                    tfc.tidy)(() => {
                        this.invokeCallHook(inputs, kwargs);
                        // Add dummy last dimension.
                        inputs = K.expandDims((0,
                            _types_utils.getExactlyOneTensor)(inputs), 2);
                        const output = this.poolingFunction((0,
                            _types_utils.getExactlyOneTensor)(inputs), [this.poolSize[0], 1], [this.strides[0], 1], this.padding, 'channelsLast');
                        // Remove dummy last dimension.
                        return tfc.squeeze(output, [2]);
                    }
                    );
            }
            getConfig() {
                const config = {
                    poolSize: this.poolSize,
                    padding: this.padding,
                    strides: this.strides
                };
                const baseConfig = super.getConfig();
                Object.assign(config, baseConfig);
                return config;
            }
        }
        exports.Pooling1D = Pooling1D;
        class MaxPooling1D extends Pooling1D {
            constructor(args) {
                super(args);
            }
            poolingFunction(inputs, poolSize, strides, padding, dataFormat) {
                (0,
                    _common2.checkDataFormat)(dataFormat);
                (0,
                    _common2.checkPaddingMode)(padding);
                return pool2d(inputs, poolSize, strides, padding, dataFormat, 'max');
            }
        }
        /** @nocollapse */
        exports.MaxPooling1D = MaxPooling1D;
        MaxPooling1D.className = 'MaxPooling1D';
        tfc.serialization.registerClass(MaxPooling1D);
        class AveragePooling1D extends Pooling1D {
            constructor(args) {
                super(args);
            }
            poolingFunction(inputs, poolSize, strides, padding, dataFormat) {
                (0,
                    _common2.checkDataFormat)(dataFormat);
                (0,
                    _common2.checkPaddingMode)(padding);
                return pool2d(inputs, poolSize, strides, padding, dataFormat, 'avg');
            }
        }
        /** @nocollapse */
        exports.AveragePooling1D = AveragePooling1D;
        AveragePooling1D.className = 'AveragePooling1D';
        tfc.serialization.registerClass(AveragePooling1D);
        /**
         * Abstract class for different pooling 2D layers.
         */
        class Pooling2D extends _topology.Layer {
            constructor(args) {
                if (args.poolSize == null) {
                    args.poolSize = [2, 2];
                }
                super(args);
                this.poolSize = Array.isArray(args.poolSize) ? args.poolSize : [args.poolSize, args.poolSize];
                if (args.strides == null) {
                    this.strides = this.poolSize;
                } else if (Array.isArray(args.strides)) {
                    if (args.strides.length !== 2) {
                        throw new _errors.ValueError(`If the strides property of a 2D pooling layer is an Array, ` + `it is expected to have a length of 2, but received length ` + `${args.strides.length}.`);
                    }
                    this.strides = args.strides;
                } else {
                    // `config.strides` is a number.
                    this.strides = [args.strides, args.strides];
                }
                (0,
                    _generic_utils.assertPositiveInteger)(this.poolSize, 'poolSize');
                (0,
                    _generic_utils.assertPositiveInteger)(this.strides, 'strides');
                this.padding = args.padding == null ? 'valid' : args.padding;
                this.dataFormat = args.dataFormat == null ? 'channelsLast' : args.dataFormat;
                (0,
                    _common2.checkDataFormat)(this.dataFormat);
                (0,
                    _common2.checkPaddingMode)(this.padding);
                this.inputSpec = [new _topology.InputSpec({
                    ndim: 4
                })];
            }
            computeOutputShape(inputShape) {
                inputShape = (0,
                    _types_utils.getExactlyOneShape)(inputShape);
                let rows = this.dataFormat === 'channelsFirst' ? inputShape[2] : inputShape[1];
                let cols = this.dataFormat === 'channelsFirst' ? inputShape[3] : inputShape[2];
                rows = (0,
                    _conv_utils.convOutputLength)(rows, this.poolSize[0], this.padding, this.strides[0]);
                cols = (0,
                    _conv_utils.convOutputLength)(cols, this.poolSize[1], this.padding, this.strides[1]);
                if (this.dataFormat === 'channelsFirst') {
                    return [inputShape[0], inputShape[1], rows, cols];
                } else {
                    return [inputShape[0], rows, cols, inputShape[3]];
                }
            }
            call(inputs, kwargs) {
                return (0,
                    tfc.tidy)(() => {
                        this.invokeCallHook(inputs, kwargs);
                        return this.poolingFunction((0,
                            _types_utils.getExactlyOneTensor)(inputs), this.poolSize, this.strides, this.padding, this.dataFormat);
                    }
                    );
            }
            getConfig() {
                const config = {
                    poolSize: this.poolSize,
                    padding: this.padding,
                    strides: this.strides,
                    dataFormat: this.dataFormat
                };
                const baseConfig = super.getConfig();
                Object.assign(config, baseConfig);
                return config;
            }
        }
        exports.Pooling2D = Pooling2D;
        class MaxPooling2D extends Pooling2D {
            constructor(args) {
                super(args);
            }
            poolingFunction(inputs, poolSize, strides, padding, dataFormat) {
                (0,
                    _common2.checkDataFormat)(dataFormat);
                (0,
                    _common2.checkPaddingMode)(padding);
                return pool2d(inputs, poolSize, strides, padding, dataFormat, 'max');
            }
        }
        /** @nocollapse */
        exports.MaxPooling2D = MaxPooling2D;
        MaxPooling2D.className = 'MaxPooling2D';
        tfc.serialization.registerClass(MaxPooling2D);
        class AveragePooling2D extends Pooling2D {
            constructor(args) {
                super(args);
            }
            poolingFunction(inputs, poolSize, strides, padding, dataFormat) {
                (0,
                    _common2.checkDataFormat)(dataFormat);
                (0,
                    _common2.checkPaddingMode)(padding);
                return pool2d(inputs, poolSize, strides, padding, dataFormat, 'avg');
            }
        }
        /** @nocollapse */
        exports.AveragePooling2D = AveragePooling2D;
        AveragePooling2D.className = 'AveragePooling2D';
        tfc.serialization.registerClass(AveragePooling2D);
        /**
         * Abstract class for different pooling 3D layers.
         */
        class Pooling3D extends _topology.Layer {
            constructor(args) {
                if (args.poolSize == null) {
                    args.poolSize = [2, 2, 2];
                }
                super(args);
                this.poolSize = Array.isArray(args.poolSize) ? args.poolSize : [args.poolSize, args.poolSize, args.poolSize];
                if (args.strides == null) {
                    this.strides = this.poolSize;
                } else if (Array.isArray(args.strides)) {
                    if (args.strides.length !== 3) {
                        throw new _errors.ValueError(`If the strides property of a 3D pooling layer is an Array, ` + `it is expected to have a length of 3, but received length ` + `${args.strides.length}.`);
                    }
                    this.strides = args.strides;
                } else {
                    // `config.strides` is a number.
                    this.strides = [args.strides, args.strides, args.strides];
                }
                (0,
                    _generic_utils.assertPositiveInteger)(this.poolSize, 'poolSize');
                (0,
                    _generic_utils.assertPositiveInteger)(this.strides, 'strides');
                this.padding = args.padding == null ? 'valid' : args.padding;
                this.dataFormat = args.dataFormat == null ? 'channelsLast' : args.dataFormat;
                (0,
                    _common2.checkDataFormat)(this.dataFormat);
                (0,
                    _common2.checkPaddingMode)(this.padding);
                this.inputSpec = [new _topology.InputSpec({
                    ndim: 5
                })];
            }
            computeOutputShape(inputShape) {
                inputShape = (0,
                    _types_utils.getExactlyOneShape)(inputShape);
                let depths = this.dataFormat === 'channelsFirst' ? inputShape[2] : inputShape[1];
                let rows = this.dataFormat === 'channelsFirst' ? inputShape[3] : inputShape[2];
                let cols = this.dataFormat === 'channelsFirst' ? inputShape[4] : inputShape[3];
                depths = (0,
                    _conv_utils.convOutputLength)(depths, this.poolSize[0], this.padding, this.strides[0]);
                rows = (0,
                    _conv_utils.convOutputLength)(rows, this.poolSize[1], this.padding, this.strides[1]);
                cols = (0,
                    _conv_utils.convOutputLength)(cols, this.poolSize[2], this.padding, this.strides[2]);
                if (this.dataFormat === 'channelsFirst') {
                    return [inputShape[0], inputShape[1], depths, rows, cols];
                } else {
                    return [inputShape[0], depths, rows, cols, inputShape[4]];
                }
            }
            call(inputs, kwargs) {
                return (0,
                    tfc.tidy)(() => {
                        this.invokeCallHook(inputs, kwargs);
                        return this.poolingFunction((0,
                            _types_utils.getExactlyOneTensor)(inputs), this.poolSize, this.strides, this.padding, this.dataFormat);
                    }
                    );
            }
            getConfig() {
                const config = {
                    poolSize: this.poolSize,
                    padding: this.padding,
                    strides: this.strides,
                    dataFormat: this.dataFormat
                };
                const baseConfig = super.getConfig();
                Object.assign(config, baseConfig);
                return config;
            }
        }
        exports.Pooling3D = Pooling3D;
        class MaxPooling3D extends Pooling3D {
            constructor(args) {
                super(args);
            }
            poolingFunction(inputs, poolSize, strides, padding, dataFormat) {
                (0,
                    _common2.checkDataFormat)(dataFormat);
                (0,
                    _common2.checkPaddingMode)(padding);
                return pool3d(inputs, poolSize, strides, padding, dataFormat, 'max');
            }
        }
        /** @nocollapse */
        exports.MaxPooling3D = MaxPooling3D;
        MaxPooling3D.className = 'MaxPooling3D';
        tfc.serialization.registerClass(MaxPooling3D);
        class AveragePooling3D extends Pooling3D {
            constructor(args) {
                super(args);
            }
            poolingFunction(inputs, poolSize, strides, padding, dataFormat) {
                (0,
                    _common2.checkDataFormat)(dataFormat);
                (0,
                    _common2.checkPaddingMode)(padding);
                return pool3d(inputs, poolSize, strides, padding, dataFormat, 'avg');
            }
        }
        /** @nocollapse */
        exports.AveragePooling3D = AveragePooling3D;
        AveragePooling3D.className = 'AveragePooling3D';
        tfc.serialization.registerClass(AveragePooling3D);
        /**
         * Abstract class for different global pooling 1D layers.
         */
        class GlobalPooling1D extends _topology.Layer {
            constructor(args) {
                super(args);
                this.inputSpec = [new _topology.InputSpec({
                    ndim: 3
                })];
            }
            computeOutputShape(inputShape) {
                return [inputShape[0], inputShape[2]];
            }
            call(inputs, kwargs) {
                throw new _errors.NotImplementedError();
            }
        }
        exports.GlobalPooling1D = GlobalPooling1D;
        class GlobalAveragePooling1D extends GlobalPooling1D {
            constructor(args) {
                super(args || {});
            }
            call(inputs, kwargs) {
                return (0,
                    tfc.tidy)(() => {
                        const input = (0,
                            _types_utils.getExactlyOneTensor)(inputs);
                        return tfc.mean(input, 1);
                    }
                    );
            }
        }
        /** @nocollapse */
        exports.GlobalAveragePooling1D = GlobalAveragePooling1D;
        GlobalAveragePooling1D.className = 'GlobalAveragePooling1D';
        tfc.serialization.registerClass(GlobalAveragePooling1D);
        class GlobalMaxPooling1D extends GlobalPooling1D {
            constructor(args) {
                super(args || {});
            }
            call(inputs, kwargs) {
                return (0,
                    tfc.tidy)(() => {
                        const input = (0,
                            _types_utils.getExactlyOneTensor)(inputs);
                        return tfc.max(input, 1);
                    }
                    );
            }
        }
        /** @nocollapse */
        exports.GlobalMaxPooling1D = GlobalMaxPooling1D;
        GlobalMaxPooling1D.className = 'GlobalMaxPooling1D';
        tfc.serialization.registerClass(GlobalMaxPooling1D);
        /**
         * Abstract class for different global pooling 2D layers.
         */
        class GlobalPooling2D extends _topology.Layer {
            constructor(args) {
                super(args);
                this.dataFormat = args.dataFormat == null ? 'channelsLast' : args.dataFormat;
                (0,
                    _common2.checkDataFormat)(this.dataFormat);
                this.inputSpec = [new _topology.InputSpec({
                    ndim: 4
                })];
            }
            computeOutputShape(inputShape) {
                inputShape = inputShape;
                if (this.dataFormat === 'channelsLast') {
                    return [inputShape[0], inputShape[3]];
                } else {
                    return [inputShape[0], inputShape[1]];
                }
            }
            call(inputs, kwargs) {
                throw new _errors.NotImplementedError();
            }
            getConfig() {
                const config = {
                    dataFormat: this.dataFormat
                };
                const baseConfig = super.getConfig();
                Object.assign(config, baseConfig);
                return config;
            }
        }
        exports.GlobalPooling2D = GlobalPooling2D;
        class GlobalAveragePooling2D extends GlobalPooling2D {
            call(inputs, kwargs) {
                return (0,
                    tfc.tidy)(() => {
                        const input = (0,
                            _types_utils.getExactlyOneTensor)(inputs);
                        if (this.dataFormat === 'channelsLast') {
                            return tfc.mean(input, [1, 2]);
                        } else {
                            return tfc.mean(input, [2, 3]);
                        }
                    }
                    );
            }
        }
        /** @nocollapse */
        exports.GlobalAveragePooling2D = GlobalAveragePooling2D;
        GlobalAveragePooling2D.className = 'GlobalAveragePooling2D';
        tfc.serialization.registerClass(GlobalAveragePooling2D);
        class GlobalMaxPooling2D extends GlobalPooling2D {
            call(inputs, kwargs) {
                return (0,
                    tfc.tidy)(() => {
                        const input = (0,
                            _types_utils.getExactlyOneTensor)(inputs);
                        if (this.dataFormat === 'channelsLast') {
                            return tfc.max(input, [1, 2]);
                        } else {
                            return tfc.max(input, [2, 3]);
                        }
                    }
                    );
            }
        }
        /** @nocollapse */
        exports.GlobalMaxPooling2D = GlobalMaxPooling2D;
        GlobalMaxPooling2D.className = 'GlobalMaxPooling2D';
        tfc.serialization.registerClass(GlobalMaxPooling2D);

    }
        , {
        "../backend/common": 514,
        "../backend/tfjs_backend": 516,
        "../common": 519,
        "../engine/topology": 524,
        "../errors": 529,
        "../utils/conv_utils": 568,
        "../utils/generic_utils": 570,
        "../utils/types_utils": 574,
        "./convolutional": 543,
        "@tensorflow/tfjs-core": 506
    }],
    553: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.CategoryEncoding = void 0;
        var _topology = require("../../engine/topology");
        var _tfjsCore = require("@tensorflow/tfjs-core");
        var _types_utils = require("../../utils/types_utils");
        var _errors = require("../../errors");
        var K = _interopRequireWildcard(require("../../backend/tfjs_backend"));
        var utils = _interopRequireWildcard(require("./preprocessing_utils"));
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2022 CodeSmith LLC
         *
         * Use of this source code is governed by an MIT-style
         * license that can be found in the LICENSE file or at
         * https://opensource.org/licenses/MIT.
         * =============================================================================
         */

        class CategoryEncoding extends _topology.Layer {
            constructor(args) {
                super(args);
                this.numTokens = args.numTokens;
                if (args.outputMode) {
                    this.outputMode = args.outputMode;
                } else {
                    this.outputMode = 'multiHot';
                }
            }
            getConfig() {
                const config = {
                    'numTokens': this.numTokens,
                    'outputMode': this.outputMode
                };
                const baseConfig = super.getConfig();
                Object.assign(config, baseConfig);
                return config;
            }
            computeOutputShape(inputShape) {
                inputShape = (0,
                    _types_utils.getExactlyOneShape)(inputShape);
                if (inputShape == null) {
                    return [this.numTokens];
                }
                if (this.outputMode === 'oneHot' && inputShape[inputShape.length - 1] !== 1) {
                    inputShape.push(this.numTokens);
                    return inputShape;
                }
                inputShape[inputShape.length - 1] = this.numTokens;
                return inputShape;
            }
            call(inputs, kwargs) {
                return (0,
                    _tfjsCore.tidy)(() => {
                        inputs = (0,
                            _types_utils.getExactlyOneTensor)(inputs);
                        if (inputs.dtype !== 'int32') {
                            inputs = K.cast(inputs, 'int32');
                        }
                        let countWeights;
                        if (typeof kwargs['countWeights'] !== 'undefined') {
                            if (this.outputMode !== 'count') {
                                throw new _errors.ValueError(`countWeights is not used when outputMode !== count.
              Received countWeights=${kwargs['countWeights']}`);
                            }
                            countWeights = (0,
                                _types_utils.getExactlyOneTensor)(kwargs['countWeights']);
                        }
                        const maxValue = (0,
                            _tfjsCore.max)(inputs);
                        const minValue = (0,
                            _tfjsCore.min)(inputs);
                        const greaterEqualMax = (0,
                            _tfjsCore.greater)(this.numTokens, maxValue).bufferSync().get(0);
                        const greaterMin = (0,
                            _tfjsCore.greaterEqual)(minValue, 0).bufferSync().get(0);
                        if (!(greaterEqualMax && greaterMin)) {
                            throw new _errors.ValueError('Input values must be between 0 < values <=' + ` numTokens with numTokens=${this.numTokens}`);
                        }
                        return utils.encodeCategoricalInputs(inputs, this.outputMode, this.numTokens, countWeights);
                    }
                    );
            }
        }
        /** @nocollapse */
        exports.CategoryEncoding = CategoryEncoding;
        CategoryEncoding.className = 'CategoryEncoding';
        _tfjsCore.serialization.registerClass(CategoryEncoding);

    }
        , {
        "../../backend/tfjs_backend": 516,
        "../../engine/topology": 524,
        "../../errors": 529,
        "../../utils/types_utils": 574,
        "./preprocessing_utils": 557,
        "@tensorflow/tfjs-core": 506
    }],
    554: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.CenterCrop = void 0;
        var _tfjsCore = require("@tensorflow/tfjs-core");
        var _types_utils = require("../../utils/types_utils");
        var _topology = require("../../engine/topology");
        var K = _interopRequireWildcard(require("../../backend/tfjs_backend"));
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2022 CodeSmith LLC
         *
         * Use of this source code is governed by an MIT-style
         * license that can be found in the LICENSE file or at
         * https://opensource.org/licenses/MIT.
         * =============================================================================
         */

        const { resizeBilinear, cropAndResize } = _tfjsCore.image;
        class CenterCrop extends _topology.Layer {
            constructor(args) {
                super(args);
                this.height = args.height;
                this.width = args.width;
            }
            centerCrop(inputs, hBuffer, wBuffer, height, width, inputHeight, inputWidth, dtype) {
                return (0,
                    _tfjsCore.tidy)(() => {
                        let input;
                        let isRank3 = false;
                        const top = hBuffer / inputHeight;
                        const left = wBuffer / inputWidth;
                        const bottom = (height + hBuffer) / inputHeight;
                        const right = (width + wBuffer) / inputWidth;
                        const bound = [top, left, bottom, right];
                        const boxesArr = [];
                        if (inputs.rank === 3) {
                            isRank3 = true;
                            input = (0,
                                _tfjsCore.stack)([inputs]);
                        } else {
                            input = inputs;
                        }
                        for (let i = 0; i < input.shape[0]; i++) {
                            boxesArr.push(bound);
                        }
                        const boxes = (0,
                            _tfjsCore.tensor)(boxesArr, [boxesArr.length, 4]);
                        const boxInd = (0,
                            _tfjsCore.range)(0, boxesArr.length, 1, 'int32');
                        const cropSize = [height, width];
                        const cropped = cropAndResize(input, boxes, boxInd, cropSize, 'nearest');
                        if (isRank3) {
                            return K.cast((0,
                                _types_utils.getExactlyOneTensor)((0,
                                    _tfjsCore.unstack)(cropped)), dtype);
                        }
                        return K.cast(cropped, dtype);
                    }
                    );
            }
            upsize(inputs, height, width, dtype) {
                return (0,
                    _tfjsCore.tidy)(() => {
                        const outputs = resizeBilinear(inputs, [height, width]);
                        return K.cast(outputs, dtype);
                    }
                    );
            }
            call(inputs, kwargs) {
                return (0,
                    _tfjsCore.tidy)(() => {
                        const rankedInputs = (0,
                            _types_utils.getExactlyOneTensor)(inputs);
                        const dtype = rankedInputs.dtype;
                        const inputShape = rankedInputs.shape;
                        const inputHeight = inputShape[inputShape.length - 3];
                        const inputWidth = inputShape[inputShape.length - 2];
                        let hBuffer = 0;
                        if (inputHeight !== this.height) {
                            hBuffer = Math.floor((inputHeight - this.height) / 2);
                        }
                        let wBuffer = 0;
                        if (inputWidth !== this.width) {
                            wBuffer = Math.floor((inputWidth - this.width) / 2);
                            if (wBuffer === 0) {
                                wBuffer = 1;
                            }
                        }
                        if (hBuffer >= 0 && wBuffer >= 0) {
                            return this.centerCrop(rankedInputs, hBuffer, wBuffer, this.height, this.width, inputHeight, inputWidth, dtype);
                        } else {
                            return this.upsize(inputs, this.height, this.width, dtype);
                        }
                    }
                    );
            }
            getConfig() {
                const config = {
                    'height': this.height,
                    'width': this.width
                };
                const baseConfig = super.getConfig();
                Object.assign(config, baseConfig);
                return config;
            }
            computeOutputShape(inputShape) {
                inputShape = (0,
                    _types_utils.getExactlyOneShape)(inputShape);
                const hAxis = inputShape.length - 3;
                const wAxis = inputShape.length - 2;
                inputShape[hAxis] = this.height;
                inputShape[wAxis] = this.width;
                return inputShape;
            }
        }
        /** @nocollapse */
        exports.CenterCrop = CenterCrop;
        CenterCrop.className = 'CenterCrop';
        _tfjsCore.serialization.registerClass(CenterCrop);

    }
        , {
        "../../backend/tfjs_backend": 516,
        "../../engine/topology": 524,
        "../../utils/types_utils": 574,
        "@tensorflow/tfjs-core": 506
    }],
    555: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.Rescaling = void 0;
        var _topology = require("../../engine/topology");
        var _tfjsCore = require("@tensorflow/tfjs-core");
        var _types_utils = require("../../utils/types_utils");
        var K = _interopRequireWildcard(require("../../backend/tfjs_backend"));
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2022 CodeSmith LLC
         *
         * Use of this source code is governed by an MIT-style
         * license that can be found in the LICENSE file or at
         * https://opensource.org/licenses/MIT.
         * =============================================================================
         */

        /**
         * Preprocessing Rescaling Layer
         *
         * This rescales images by a scaling and offset factor
         */
        class Rescaling extends _topology.Layer {
            constructor(args) {
                super(args);
                this.scale = args.scale;
                if (args.offset) {
                    this.offset = args.offset;
                } else {
                    this.offset = 0;
                }
            }
            getConfig() {
                const config = {
                    'scale': this.scale,
                    'offset': this.offset
                };
                const baseConfig = super.getConfig();
                Object.assign(config, baseConfig);
                return config;
            }
            call(inputs, kwargs) {
                return (0,
                    _tfjsCore.tidy)(() => {
                        inputs = (0,
                            _types_utils.getExactlyOneTensor)(inputs);
                        if (inputs.dtype !== 'float32') {
                            inputs = K.cast(inputs, 'float32');
                        }
                        return (0,
                            _tfjsCore.add)((0,
                                _tfjsCore.mul)(inputs, this.scale), this.offset);
                    }
                    );
            }
        }
        /** @nocollapse */
        exports.Rescaling = Rescaling;
        Rescaling.className = 'Rescaling';
        _tfjsCore.serialization.registerClass(Rescaling);

    }
        , {
        "../../backend/tfjs_backend": 516,
        "../../engine/topology": 524,
        "../../utils/types_utils": 574,
        "@tensorflow/tfjs-core": 506
    }],
    556: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.Resizing = void 0;
        var _tfjsCore = require("@tensorflow/tfjs-core");
        var _topology = require("../../engine/topology");
        var _errors = require("../../errors");
        var _types_utils = require("../../utils/types_utils");
        /**
         * @license
         * Copyright 2022 CodeSmith LLC
         *
         * Use of this source code is governed by an MIT-style
         * license that can be found in the LICENSE file or at
         * https://opensource.org/licenses/MIT.
         * =============================================================================
         */
        // mul, add

        //, getExactlyOneTensor
        // tf methods unimplemented in tfjs: 'bicubic', 'area', 'lanczos3', 'lanczos5',
        //                                   'gaussian', 'mitchellcubic'
        const INTERPOLATION_KEYS = ['bilinear', 'nearest'];
        const INTERPOLATION_METHODS = new Set(INTERPOLATION_KEYS);
        /**
         * Preprocessing Resizing Layer
         *
         * This resizes images by a scaling and offset factor
         */
        class Resizing extends _topology.Layer {
            constructor(args) {
                super(args);
                this.height = args.height;
                this.width = args.width;
                if (args.interpolation) {
                    if (INTERPOLATION_METHODS.has(args.interpolation)) {
                        this.interpolation = args.interpolation;
                    } else {
                        throw new _errors.ValueError(`Invalid interpolation parameter: ${args.interpolation} is not implemented`);
                    }
                } else {
                    this.interpolation = 'bilinear';
                }
                this.cropToAspectRatio = Boolean(args.cropToAspectRatio);
            }
            computeOutputShape(inputShape) {
                inputShape = (0,
                    _types_utils.getExactlyOneShape)(inputShape);
                const numChannels = inputShape[2];
                return [this.height, this.width, numChannels];
            }
            getConfig() {
                const config = {
                    'height': this.height,
                    'width': this.width,
                    'interpolation': this.interpolation,
                    'cropToAspectRatio': this.cropToAspectRatio
                };
                const baseConfig = super.getConfig();
                Object.assign(config, baseConfig);
                return config;
            }
            call(inputs, kwargs) {
                return (0,
                    _tfjsCore.tidy)(() => {
                        const size = [this.height, this.width];
                        if (this.interpolation === 'bilinear') {
                            return _tfjsCore.image.resizeBilinear(inputs, size, !this.cropToAspectRatio);
                        } else if (this.interpolation === 'nearest') {
                            return _tfjsCore.image.resizeNearestNeighbor(inputs, size, !this.cropToAspectRatio);
                        } else {
                            throw new Error(`Interpolation is ${this.interpolation} but only ${[...INTERPOLATION_METHODS]} are supported`);
                        }
                    }
                    );
            }
        }
        /** @nocollapse */
        exports.Resizing = Resizing;
        Resizing.className = 'Resizing';
        _tfjsCore.serialization.registerClass(Resizing);

    }
        , {
        "../../engine/topology": 524,
        "../../errors": 529,
        "../../utils/types_utils": 574,
        "@tensorflow/tfjs-core": 506
    }],
    557: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.encodeCategoricalInputs = encodeCategoricalInputs;
        var _tfjsCore = require("@tensorflow/tfjs-core");
        var _types_utils = require("../../utils/types_utils");
        var _errors = require("../../errors");
        var K = _interopRequireWildcard(require("../../backend/tfjs_backend"));
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2022 CodeSmith LLC
         *
         * Use of this source code is governed by an MIT-style
         * license that can be found in the LICENSE file or at
         * https://opensource.org/licenses/MIT.
         * =============================================================================
         */

        function encodeCategoricalInputs(inputs, outputMode, depth, weights) {
            let input = (0,
                _types_utils.getExactlyOneTensor)(inputs);
            if (input.dtype !== 'int32') {
                input = K.cast(input, 'int32');
            }
            if (outputMode === 'int') {
                return input;
            }
            const originalShape = input.shape;
            if (input.rank === 0) {
                input = (0,
                    _tfjsCore.expandDims)(input, -1);
            }
            if (outputMode === 'oneHot') {
                if (input.shape[input.shape.length - 1] !== 1) {
                    input = (0,
                        _tfjsCore.expandDims)(input, -1);
                }
            }
            if (input.rank > 2) {
                throw new _errors.ValueError(`When outputMode is not int, maximum output rank is 2` + ` Received outputMode ${outputMode} and input shape ${originalShape}` + ` which would result in output rank ${input.rank}.`);
            }
            const binaryOutput = ['multiHot', 'oneHot'].includes(outputMode);
            const denseBincountInput = input;
            let binCounts;
            if (typeof weights !== 'undefined' && outputMode === 'count') {
                binCounts = (0,
                    _tfjsCore.denseBincount)(denseBincountInput, weights, depth, binaryOutput);
            } else {
                binCounts = (0,
                    _tfjsCore.denseBincount)(denseBincountInput, [], depth, binaryOutput);
            }
            if (outputMode !== 'tfIdf') {
                return binCounts;
            }
            if (weights) {
                return (0,
                    _tfjsCore.mul)(binCounts, weights);
            } else {
                throw new _errors.ValueError(`When outputMode is 'tfIdf', weights must be provided.`);
            }
        }

    }
        , {
        "../../backend/tfjs_backend": 516,
        "../../errors": 529,
        "../../utils/types_utils": 574,
        "@tensorflow/tfjs-core": 506
    }],
    558: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.StackedRNNCells = exports.SimpleRNNCell = exports.SimpleRNN = exports.RNNCell = exports.RNN = exports.LSTMCell = exports.LSTM = exports.GRUCell = exports.GRU = void 0;
        exports.generateDropoutMask = generateDropoutMask;
        exports.rnn = rnn;
        exports.standardizeArgs = standardizeArgs;
        var tfc = _interopRequireWildcard(require("@tensorflow/tfjs-core"));
        var _activations = require("../activations");
        var K = _interopRequireWildcard(require("../backend/tfjs_backend"));
        var _common = require("../common");
        var _constraints = require("../constraints");
        var _topology = require("../engine/topology");
        var _errors = require("../errors");
        var _initializers = require("../initializers");
        var _regularizers = require("../regularizers");
        var _generic_utils = require("../utils/generic_utils");
        var math_utils = _interopRequireWildcard(require("../utils/math_utils"));
        var _types_utils = require("../utils/types_utils");
        var _variables = require("../variables");
        var _serialization = require("./serialization");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2018 Google LLC
         *
         * Use of this source code is governed by an MIT-style
         * license that can be found in the LICENSE file or at
         * https://opensource.org/licenses/MIT.
         * =============================================================================
         */
        /**
         * TensorFlow.js Layers: Recurrent Neural Network Layers.
         */

        /**
         * Standardize `apply()` args to a single list of tensor inputs.
         *
         * When running a model loaded from file, the input tensors `initialState` and
         * `constants` are passed to `RNN.apply()` as part of `inputs` instead of the
         * dedicated kwargs fields. `inputs` consists of
         * `[inputs, initialState0, initialState1, ..., constant0, constant1]` in this
         * case.
         * This method makes sure that arguments are
         * separated and that `initialState` and `constants` are `Array`s of tensors
         * (or None).
         *
         * @param inputs Tensor or `Array` of  tensors.
         * @param initialState Tensor or `Array` of tensors or `null`/`undefined`.
         * @param constants Tensor or `Array` of tensors or `null`/`undefined`.
         * @returns An object consisting of
         *   inputs: A tensor.
         *   initialState: `Array` of tensors or `null`.
         *   constants: `Array` of tensors or `null`.
         * @throws ValueError, if `inputs` is an `Array` but either `initialState` or
         *   `constants` is provided.
         */
        function standardizeArgs(inputs, initialState, constants, numConstants) {
            if (Array.isArray(inputs)) {
                if (initialState != null || constants != null) {
                    throw new _errors.ValueError('When inputs is an array, neither initialState or constants ' + 'should be provided');
                }
                if (numConstants != null) {
                    constants = inputs.slice(inputs.length - numConstants, inputs.length);
                    inputs = inputs.slice(0, inputs.length - numConstants);
                }
                if (inputs.length > 1) {
                    initialState = inputs.slice(1, inputs.length);
                }
                inputs = inputs[0];
            }
            function toListOrNull(x) {
                if (x == null || Array.isArray(x)) {
                    return x;
                } else {
                    return [x];
                }
            }
            initialState = toListOrNull(initialState);
            constants = toListOrNull(constants);
            return {
                inputs,
                initialState,
                constants
            };
        }
        /**
         * Iterates over the time dimension of a tensor.
         *
         * @param stepFunction RNN step function.
         *   Parameters:
         *     inputs: tensor with shape `[samples, ...]` (no time dimension),
         *       representing input for the batch of samples at a certain time step.
         *     states: an Array of tensors.
         *   Returns:
         *     outputs: tensor with shape `[samples, outputDim]` (no time dimension).
         *     newStates: list of tensors, same length and shapes as `states`. The first
         *       state in the list must be the output tensor at the previous timestep.
         * @param inputs Tensor of temporal data of shape `[samples, time, ...]` (at
         *   least 3D).
         * @param initialStates Tensor with shape `[samples, outputDim]` (no time
         *   dimension), containing the initial values of the states used in the step
         *   function.
         * @param goBackwards If `true`, do the iteration over the time dimension in
         *   reverse order and return the reversed sequence.
         * @param mask Binary tensor with shape `[sample, time, 1]`, with a zero for
         *   every element that is masked.
         * @param constants An Array of constant values passed at each step.
         * @param unroll Whether to unroll the RNN or to use a symbolic loop. *Not*
         *   applicable to this imperative deeplearn.js backend. Its value is ignored.
         * @param needPerStepOutputs Whether the per-step outputs are to be
         *   concatenated into a single tensor and returned (as the second return
         *   value). Default: `false`. This arg is included so that the relatively
         *   expensive concatenation of the stepwise outputs can be omitted unless
         *   the stepwise outputs need to be kept (e.g., for an LSTM layer of which
         *   `returnSequence` is `true`.)
         * @returns An Array: `[lastOutput, outputs, newStates]`.
         *   lastOutput: the lastest output of the RNN, of shape `[samples, ...]`.
         *   outputs: tensor with shape `[samples, time, ...]` where each entry
         *     `output[s, t]` is the output of the step function at time `t` for sample
         *     `s`. This return value is provided if and only if the
         *     `needPerStepOutputs` is set as `true`. If it is set as `false`, this
         *     return value will be `undefined`.
         *   newStates: Array of tensors, latest states returned by the step function,
         *      of shape `(samples, ...)`.
         * @throws ValueError If input dimension is less than 3.
         *
         * TODO(nielsene): This needs to be tidy-ed.
         */
        function rnn(stepFunction, inputs, initialStates, goBackwards = false, mask, constants, unroll = false, needPerStepOutputs = false) {
            return tfc.tidy(() => {
                const ndim = inputs.shape.length;
                if (ndim < 3) {
                    throw new _errors.ValueError(`Input should be at least 3D, but is ${ndim}D.`);
                }
                // Transpose to time-major, i.e., from [batch, time, ...] to [time, batch,
                // ...].
                const axes = [1, 0].concat(math_utils.range(2, ndim));
                inputs = tfc.transpose(inputs, axes);
                if (constants != null) {
                    throw new _errors.NotImplementedError('The rnn() functoin of the deeplearn.js backend does not support ' + 'constants yet.');
                }
                // Porting Note: the unroll option is ignored by the imperative backend.
                if (unroll) {
                    console.warn('Backend rnn(): the unroll = true option is not applicable to the ' + 'imperative deeplearn.js backend.');
                }
                if (mask != null) {
                    mask = tfc.cast(tfc.cast(mask, 'bool'), 'float32');
                    if (mask.rank === ndim - 1) {
                        mask = tfc.expandDims(mask, -1);
                    }
                    mask = tfc.transpose(mask, axes);
                }
                if (goBackwards) {
                    inputs = tfc.reverse(inputs, 0);
                    if (mask != null) {
                        mask = tfc.reverse(mask, 0);
                    }
                }
                // Porting Note: PyKeras with TensorFlow backend uses a symbolic loop
                //   (tf.while_loop). But for the imperative deeplearn.js backend, we just
                //   use the usual TypeScript control flow to iterate over the time steps in
                //   the inputs.
                // Porting Note: PyKeras patches a "_use_learning_phase" attribute to
                // outputs.
                //   This is not idiomatic in TypeScript. The info regarding whether we are
                //   in a learning (i.e., training) phase for RNN is passed in a different
                //   way.
                const perStepOutputs = [];
                let lastOutput;
                let states = initialStates;
                const timeSteps = inputs.shape[0];
                const perStepInputs = tfc.unstack(inputs);
                let perStepMasks;
                if (mask != null) {
                    perStepMasks = tfc.unstack(mask);
                }
                for (let t = 0; t < timeSteps; ++t) {
                    const currentInput = perStepInputs[t];
                    const stepOutputs = tfc.tidy(() => stepFunction(currentInput, states));
                    if (mask == null) {
                        lastOutput = stepOutputs[0];
                        states = stepOutputs[1];
                    } else {
                        const maskedOutputs = tfc.tidy(() => {
                            const stepMask = perStepMasks[t];
                            const negStepMask = tfc.sub(tfc.onesLike(stepMask), stepMask);
                            // TODO(cais): Would tfc.where() be better for performance?
                            const output = tfc.add(tfc.mul(stepOutputs[0], stepMask), tfc.mul(states[0], negStepMask));
                            const newStates = states.map((state, i) => {
                                return tfc.add(tfc.mul(stepOutputs[1][i], stepMask), tfc.mul(state, negStepMask));
                            }
                            );
                            return {
                                output,
                                newStates
                            };
                        }
                        );
                        lastOutput = maskedOutputs.output;
                        states = maskedOutputs.newStates;
                    }
                    if (needPerStepOutputs) {
                        perStepOutputs.push(lastOutput);
                    }
                }
                let outputs;
                if (needPerStepOutputs) {
                    const axis = 1;
                    outputs = tfc.stack(perStepOutputs, axis);
                }
                return [lastOutput, outputs, states];
            }
            );
        }
        class RNN extends _topology.Layer {
            constructor(args) {
                super(args);
                let cell;
                if (args.cell == null) {
                    throw new _errors.ValueError('cell property is missing for the constructor of RNN.');
                } else if (Array.isArray(args.cell)) {
                    cell = new StackedRNNCells({
                        cells: args.cell
                    });
                } else {
                    cell = args.cell;
                }
                if (cell.stateSize == null) {
                    throw new _errors.ValueError('The RNN cell should have an attribute `stateSize` (tuple of ' + 'integers, one integer per RNN state).');
                }
                this.cell = cell;
                this.returnSequences = args.returnSequences == null ? false : args.returnSequences;
                this.returnState = args.returnState == null ? false : args.returnState;
                this.goBackwards = args.goBackwards == null ? false : args.goBackwards;
                this._stateful = args.stateful == null ? false : args.stateful;
                this.unroll = args.unroll == null ? false : args.unroll;
                this.supportsMasking = true;
                this.inputSpec = [new _topology.InputSpec({
                    ndim: 3
                })];
                this.stateSpec = null;
                this.states_ = null;
                // TODO(cais): Add constantsSpec and numConstants.
                this.numConstants = null;
                // TODO(cais): Look into the use of initial_state in the kwargs of the
                //   constructor.
                this.keptStates = [];
            }
            // Porting Note: This is the equivalent of `RNN.states` property getter in
            //   PyKeras.
            getStates() {
                if (this.states_ == null) {
                    const numStates = Array.isArray(this.cell.stateSize) ? this.cell.stateSize.length : 1;
                    return math_utils.range(0, numStates).map(x => null);
                } else {
                    return this.states_;
                }
            }
            // Porting Note: This is the equivalent of the `RNN.states` property setter in
            //   PyKeras.
            setStates(states) {
                this.states_ = states;
            }
            computeOutputShape(inputShape) {
                if ((0,
                    _types_utils.isArrayOfShapes)(inputShape)) {
                    inputShape = inputShape[0];
                }
                inputShape = inputShape;
                // TODO(cais): Remove the casting once stacked RNN cells become supported.
                let stateSize = this.cell.stateSize;
                if (!Array.isArray(stateSize)) {
                    stateSize = [stateSize];
                }
                const outputDim = stateSize[0];
                let outputShape;
                if (this.returnSequences) {
                    outputShape = [inputShape[0], inputShape[1], outputDim];
                } else {
                    outputShape = [inputShape[0], outputDim];
                }
                if (this.returnState) {
                    const stateShape = [];
                    for (const dim of stateSize) {
                        stateShape.push([inputShape[0], dim]);
                    }
                    return [outputShape].concat(stateShape);
                } else {
                    return outputShape;
                }
            }
            computeMask(inputs, mask) {
                return tfc.tidy(() => {
                    if (Array.isArray(mask)) {
                        mask = mask[0];
                    }
                    const outputMask = this.returnSequences ? mask : null;
                    if (this.returnState) {
                        const stateMask = this.states.map(s => null);
                        return [outputMask].concat(stateMask);
                    } else {
                        return outputMask;
                    }
                }
                );
            }
            /**
             * Get the current state tensors of the RNN.
             *
             * If the state hasn't been set, return an array of `null`s of the correct
             * length.
             */
            get states() {
                if (this.states_ == null) {
                    const numStates = Array.isArray(this.cell.stateSize) ? this.cell.stateSize.length : 1;
                    const output = [];
                    for (let i = 0; i < numStates; ++i) {
                        output.push(null);
                    }
                    return output;
                } else {
                    return this.states_;
                }
            }
            set states(s) {
                this.states_ = s;
            }
            build(inputShape) {
                // Note inputShape will be an Array of Shapes of initial states and
                // constants if these are passed in apply().
                const constantShape = null;
                if (this.numConstants != null) {
                    throw new _errors.NotImplementedError('Constants support is not implemented in RNN yet.');
                }
                if ((0,
                    _types_utils.isArrayOfShapes)(inputShape)) {
                    inputShape = inputShape[0];
                }
                inputShape = inputShape;
                const batchSize = this.stateful ? inputShape[0] : null;
                const inputDim = inputShape.slice(2);
                this.inputSpec[0] = new _topology.InputSpec({
                    shape: [batchSize, null, ...inputDim]
                });
                // Allow cell (if RNNCell Layer) to build before we set or validate
                // stateSpec.
                const stepInputShape = [inputShape[0]].concat(inputShape.slice(2));
                if (constantShape != null) {
                    throw new _errors.NotImplementedError('Constants support is not implemented in RNN yet.');
                } else {
                    this.cell.build(stepInputShape);
                }
                // Set or validate stateSpec.
                let stateSize;
                if (Array.isArray(this.cell.stateSize)) {
                    stateSize = this.cell.stateSize;
                } else {
                    stateSize = [this.cell.stateSize];
                }
                if (this.stateSpec != null) {
                    if (!tfc.util.arraysEqual(this.stateSpec.map(spec => spec.shape[spec.shape.length - 1]), stateSize)) {
                        throw new _errors.ValueError(`An initialState was passed that is not compatible with ` + `cell.stateSize. Received stateSpec=${this.stateSpec}; ` + `However cell.stateSize is ${this.cell.stateSize}`);
                    }
                } else {
                    this.stateSpec = stateSize.map(dim => new _topology.InputSpec({
                        shape: [null, dim]
                    }));
                }
                if (this.stateful) {
                    this.resetStates();
                }
            }
            /**
             * Reset the state tensors of the RNN.
             *
             * If the `states` argument is `undefined` or `null`, will set the
             * state tensor(s) of the RNN to all-zero tensors of the appropriate
             * shape(s).
             *
             * If `states` is provided, will set the state tensors of the RNN to its
             * value.
             *
             * @param states Optional externally-provided initial states.
             * @param training Whether this call is done during training. For stateful
             *   RNNs, this affects whether the old states are kept or discarded. In
             *   particular, if `training` is `true`, the old states will be kept so
             *   that subsequent backpropgataion through time (BPTT) may work properly.
             *   Else, the old states will be discarded.
             */
            resetStates(states, training = false) {
                (0,
                    tfc.tidy)(() => {
                        if (!this.stateful) {
                            throw new _errors.AttributeError('Cannot call resetStates() on an RNN Layer that is not stateful.');
                        }
                        const batchSize = this.inputSpec[0].shape[0];
                        if (batchSize == null) {
                            throw new _errors.ValueError('If an RNN is stateful, it needs to know its batch size. Specify ' + 'the batch size of your input tensors: \n' + '- If using a Sequential model, specify the batch size by ' + 'passing a `batchInputShape` option to your first layer.\n' + '- If using the functional API, specify the batch size by ' + 'passing a `batchShape` option to your Input layer.');
                        }
                        // Initialize state if null.
                        if (this.states_ == null) {
                            if (Array.isArray(this.cell.stateSize)) {
                                this.states_ = this.cell.stateSize.map(dim => tfc.zeros([batchSize, dim]));
                            } else {
                                this.states_ = [tfc.zeros([batchSize, this.cell.stateSize])];
                            }
                        } else if (states == null) {
                            // Dispose old state tensors.
                            tfc.dispose(this.states_);
                            // For stateful RNNs, fully dispose kept old states.
                            if (this.keptStates != null) {
                                tfc.dispose(this.keptStates);
                                this.keptStates = [];
                            }
                            if (Array.isArray(this.cell.stateSize)) {
                                this.states_ = this.cell.stateSize.map(dim => tfc.zeros([batchSize, dim]));
                            } else {
                                this.states_[0] = tfc.zeros([batchSize, this.cell.stateSize]);
                            }
                        } else {
                            if (!Array.isArray(states)) {
                                states = [states];
                            }
                            if (states.length !== this.states_.length) {
                                throw new _errors.ValueError(`Layer ${this.name} expects ${this.states_.length} state(s), ` + `but it received ${states.length} state value(s). Input ` + `received: ${states}`);
                            }
                            if (training === true) {
                                // Store old state tensors for complete disposal later, i.e., during
                                // the next no-arg call to this method. We do not dispose the old
                                // states immediately because that BPTT (among other things) require
                                // them.
                                this.keptStates.push(this.states_.slice());
                            } else {
                                tfc.dispose(this.states_);
                            }
                            for (let index = 0; index < this.states_.length; ++index) {
                                const value = states[index];
                                const dim = Array.isArray(this.cell.stateSize) ? this.cell.stateSize[index] : this.cell.stateSize;
                                const expectedShape = [batchSize, dim];
                                if (!tfc.util.arraysEqual(value.shape, expectedShape)) {
                                    throw new _errors.ValueError(`State ${index} is incompatible with layer ${this.name}: ` + `expected shape=${expectedShape}, received shape=${value.shape}`);
                                }
                                this.states_[index] = value;
                            }
                        }
                        this.states_ = this.states_.map(state => tfc.keep(state.clone()));
                    }
                    );
            }
            apply(inputs, kwargs) {
                // TODO(cais): Figure out whether initialState is in kwargs or inputs.
                let initialState = kwargs == null ? null : kwargs['initialState'];
                let constants = kwargs == null ? null : kwargs['constants'];
                if (kwargs == null) {
                    kwargs = {};
                }
                const standardized = standardizeArgs(inputs, initialState, constants, this.numConstants);
                inputs = standardized.inputs;
                initialState = standardized.initialState;
                constants = standardized.constants;
                // If any of `initial_state` or `constants` are specified and are
                // `tf.SymbolicTensor`s, then add them to the inputs and temporarily modify
                // the input_spec to include them.
                let additionalInputs = [];
                let additionalSpecs = [];
                if (initialState != null) {
                    kwargs['initialState'] = initialState;
                    additionalInputs = additionalInputs.concat(initialState);
                    this.stateSpec = [];
                    for (const state of initialState) {
                        this.stateSpec.push(new _topology.InputSpec({
                            shape: state.shape
                        }));
                    }
                    // TODO(cais): Use the following instead.
                    // this.stateSpec = initialState.map(state => new InputSpec({shape:
                    // state.shape}));
                    additionalSpecs = additionalSpecs.concat(this.stateSpec);
                }
                if (constants != null) {
                    kwargs['constants'] = constants;
                    additionalInputs = additionalInputs.concat(constants);
                    // TODO(cais): Add this.constantsSpec.
                    this.numConstants = constants.length;
                }
                const isTensor = additionalInputs[0] instanceof _topology.SymbolicTensor;
                if (isTensor) {
                    // Compute full input spec, including state and constants.
                    const fullInput = [inputs].concat(additionalInputs);
                    const fullInputSpec = this.inputSpec.concat(additionalSpecs);
                    // Perform the call with temporarily replaced inputSpec.
                    const originalInputSpec = this.inputSpec;
                    this.inputSpec = fullInputSpec;
                    const output = super.apply(fullInput, kwargs);
                    this.inputSpec = originalInputSpec;
                    return output;
                } else {
                    return super.apply(inputs, kwargs);
                }
            }
            // tslint:disable-next-line:no-any
            call(inputs, kwargs) {
                // Input shape: `[samples, time (padded with zeros), input_dim]`.
                // Note that the .build() method of subclasses **must** define
                // this.inputSpec and this.stateSpec owith complete input shapes.
                return (0,
                    tfc.tidy)(() => {
                        const mask = kwargs == null ? null : kwargs['mask'];
                        const training = kwargs == null ? null : kwargs['training'];
                        let initialState = kwargs == null ? null : kwargs['initialState'];
                        inputs = (0,
                            _types_utils.getExactlyOneTensor)(inputs);
                        if (initialState == null) {
                            if (this.stateful) {
                                initialState = this.states_;
                            } else {
                                initialState = this.getInitialState(inputs);
                            }
                        }
                        const numStates = Array.isArray(this.cell.stateSize) ? this.cell.stateSize.length : 1;
                        if (initialState.length !== numStates) {
                            throw new _errors.ValueError(`RNN Layer has ${numStates} state(s) but was passed ` + `${initialState.length} initial state(s).`);
                        }
                        if (this.unroll) {
                            console.warn('Ignoring unroll = true for RNN layer, due to imperative backend.');
                        }
                        const cellCallKwargs = {
                            training
                        };
                        // TODO(cais): Add support for constants.
                        const step = (inputs, states) => {
                            // `inputs` and `states` are concatenated to form a single `Array` of
                            // `tf.Tensor`s as the input to `cell.call()`.
                            const outputs = this.cell.call([inputs].concat(states), cellCallKwargs);
                            // Marshall the return value into output and new states.
                            return [outputs[0], outputs.slice(1)];
                        }
                            ;
                        // TODO(cais): Add support for constants.
                        const rnnOutputs = rnn(step, inputs, initialState, this.goBackwards, mask, null, this.unroll, this.returnSequences);
                        const lastOutput = rnnOutputs[0];
                        const outputs = rnnOutputs[1];
                        const states = rnnOutputs[2];
                        if (this.stateful) {
                            this.resetStates(states, training);
                        }
                        const output = this.returnSequences ? outputs : lastOutput;
                        // TODO(cais): Porperty set learning phase flag.
                        if (this.returnState) {
                            return [output].concat(states);
                        } else {
                            return output;
                        }
                    }
                    );
            }
            getInitialState(inputs) {
                return (0,
                    tfc.tidy)(() => {
                        // Build an all-zero tensor of shape [samples, outputDim].
                        // [Samples, timeSteps, inputDim].
                        let initialState = tfc.zeros(inputs.shape);
                        // [Samples].
                        initialState = tfc.sum(initialState, [1, 2]);
                        initialState = K.expandDims(initialState);
                        // [Samples, 1].
                        if (Array.isArray(this.cell.stateSize)) {
                            return this.cell.stateSize.map(dim => dim > 1 ? K.tile(initialState, [1, dim]) : initialState);
                        } else {
                            return this.cell.stateSize > 1 ? [K.tile(initialState, [1, this.cell.stateSize])] : [initialState];
                        }
                    }
                    );
            }
            get trainableWeights() {
                if (!this.trainable) {
                    return [];
                }
                // Porting Note: In TypeScript, `this` is always an instance of `Layer`.
                return this.cell.trainableWeights;
            }
            get nonTrainableWeights() {
                // Porting Note: In TypeScript, `this` is always an instance of `Layer`.
                if (!this.trainable) {
                    return this.cell.weights;
                }
                return this.cell.nonTrainableWeights;
            }
            setFastWeightInitDuringBuild(value) {
                super.setFastWeightInitDuringBuild(value);
                if (this.cell != null) {
                    this.cell.setFastWeightInitDuringBuild(value);
                }
            }
            getConfig() {
                const baseConfig = super.getConfig();
                const config = {
                    returnSequences: this.returnSequences,
                    returnState: this.returnState,
                    goBackwards: this.goBackwards,
                    stateful: this.stateful,
                    unroll: this.unroll
                };
                if (this.numConstants != null) {
                    config['numConstants'] = this.numConstants;
                }
                const cellConfig = this.cell.getConfig();
                if (this.getClassName() === RNN.className) {
                    config['cell'] = {
                        'className': this.cell.getClassName(),
                        'config': cellConfig
                    };
                }
                // this order is necessary, to prevent cell name from replacing layer name
                return Object.assign(Object.assign(Object.assign({}, cellConfig), baseConfig), config);
            }
            /** @nocollapse */
            static fromConfig(cls, config, customObjects = {}) {
                const cellConfig = config['cell'];
                const cell = (0,
                    _serialization.deserialize)(cellConfig, customObjects);
                return new cls(Object.assign(config, {
                    cell
                }));
            }
        }
        /** @nocollapse */
        exports.RNN = RNN;
        RNN.className = 'RNN';
        tfc.serialization.registerClass(RNN);
        // Porting Note: This is a common parent class for RNN cells. There is no
        // equivalent of this in PyKeras. Having a common parent class forgoes the
        //  need for `has_attr(cell, ...)` checks or its TypeScript equivalent.
        /**
         * An RNNCell layer.
         *
         * @doc {heading: 'Layers', subheading: 'Classes'}
         */
        class RNNCell extends _topology.Layer {
        }
        exports.RNNCell = RNNCell;
        class SimpleRNNCell extends RNNCell {
            constructor(args) {
                super(args);
                this.DEFAULT_ACTIVATION = 'tanh';
                this.DEFAULT_KERNEL_INITIALIZER = 'glorotNormal';
                this.DEFAULT_RECURRENT_INITIALIZER = 'orthogonal';
                this.DEFAULT_BIAS_INITIALIZER = 'zeros';
                this.units = args.units;
                (0,
                    _generic_utils.assertPositiveInteger)(this.units, `units`);
                this.activation = (0,
                    _activations.getActivation)(args.activation == null ? this.DEFAULT_ACTIVATION : args.activation);
                this.useBias = args.useBias == null ? true : args.useBias;
                this.kernelInitializer = (0,
                    _initializers.getInitializer)(args.kernelInitializer || this.DEFAULT_KERNEL_INITIALIZER);
                this.recurrentInitializer = (0,
                    _initializers.getInitializer)(args.recurrentInitializer || this.DEFAULT_RECURRENT_INITIALIZER);
                this.biasInitializer = (0,
                    _initializers.getInitializer)(args.biasInitializer || this.DEFAULT_BIAS_INITIALIZER);
                this.kernelRegularizer = (0,
                    _regularizers.getRegularizer)(args.kernelRegularizer);
                this.recurrentRegularizer = (0,
                    _regularizers.getRegularizer)(args.recurrentRegularizer);
                this.biasRegularizer = (0,
                    _regularizers.getRegularizer)(args.biasRegularizer);
                this.kernelConstraint = (0,
                    _constraints.getConstraint)(args.kernelConstraint);
                this.recurrentConstraint = (0,
                    _constraints.getConstraint)(args.recurrentConstraint);
                this.biasConstraint = (0,
                    _constraints.getConstraint)(args.biasConstraint);
                this.dropout = math_utils.min([1, math_utils.max([0, args.dropout == null ? 0 : args.dropout])]);
                this.recurrentDropout = math_utils.min([1, math_utils.max([0, args.recurrentDropout == null ? 0 : args.recurrentDropout])]);
                this.dropoutFunc = args.dropoutFunc;
                this.stateSize = this.units;
                this.dropoutMask = null;
                this.recurrentDropoutMask = null;
            }
            build(inputShape) {
                inputShape = (0,
                    _types_utils.getExactlyOneShape)(inputShape);
                // TODO(cais): Use regularizer.
                this.kernel = this.addWeight('kernel', [inputShape[inputShape.length - 1], this.units], null, this.kernelInitializer, this.kernelRegularizer, true, this.kernelConstraint);
                this.recurrentKernel = this.addWeight('recurrent_kernel', [this.units, this.units], null, this.recurrentInitializer, this.recurrentRegularizer, true, this.recurrentConstraint);
                if (this.useBias) {
                    this.bias = this.addWeight('bias', [this.units], null, this.biasInitializer, this.biasRegularizer, true, this.biasConstraint);
                } else {
                    this.bias = null;
                }
                this.built = true;
            }
            // Porting Note: PyKeras' equivalent of this method takes two tensor inputs:
            //   `inputs` and `states`. Here, the two tensors are combined into an
            //   `Tensor[]` Array as the first input argument.
            //   Similarly, PyKeras' equivalent of this method returns two values:
            //    `output` and `[output]`. Here the two are combined into one length-2
            //    `Tensor[]`, consisting of `output` repeated.
            call(inputs, kwargs) {
                return (0,
                    tfc.tidy)(() => {
                        inputs = inputs;
                        if (inputs.length !== 2) {
                            throw new _errors.ValueError(`SimpleRNNCell expects 2 input Tensors, got ${inputs.length}.`);
                        }
                        let prevOutput = inputs[1];
                        inputs = inputs[0];
                        const training = kwargs['training'] == null ? false : kwargs['training'];
                        if (0 < this.dropout && this.dropout < 1 && this.dropoutMask == null) {
                            this.dropoutMask = generateDropoutMask({
                                ones: () => tfc.onesLike(inputs),
                                rate: this.dropout,
                                training,
                                dropoutFunc: this.dropoutFunc
                            });
                        }
                        if (0 < this.recurrentDropout && this.recurrentDropout < 1 && this.recurrentDropoutMask == null) {
                            this.recurrentDropoutMask = generateDropoutMask({
                                ones: () => tfc.onesLike(prevOutput),
                                rate: this.recurrentDropout,
                                training,
                                dropoutFunc: this.dropoutFunc
                            });
                        }
                        let h;
                        const dpMask = this.dropoutMask;
                        const recDpMask = this.recurrentDropoutMask;
                        if (dpMask != null) {
                            h = K.dot(tfc.mul(inputs, dpMask), this.kernel.read());
                        } else {
                            h = K.dot(inputs, this.kernel.read());
                        }
                        if (this.bias != null) {
                            h = K.biasAdd(h, this.bias.read());
                        }
                        if (recDpMask != null) {
                            prevOutput = tfc.mul(prevOutput, recDpMask);
                        }
                        let output = tfc.add(h, K.dot(prevOutput, this.recurrentKernel.read()));
                        if (this.activation != null) {
                            output = this.activation.apply(output);
                        }
                        // TODO(cais): Properly set learning phase on output tensor?
                        return [output, output];
                    }
                    );
            }
            getConfig() {
                const baseConfig = super.getConfig();
                const config = {
                    units: this.units,
                    activation: (0,
                        _activations.serializeActivation)(this.activation),
                    useBias: this.useBias,
                    kernelInitializer: (0,
                        _initializers.serializeInitializer)(this.kernelInitializer),
                    recurrentInitializer: (0,
                        _initializers.serializeInitializer)(this.recurrentInitializer),
                    biasInitializer: (0,
                        _initializers.serializeInitializer)(this.biasInitializer),
                    kernelRegularizer: (0,
                        _regularizers.serializeRegularizer)(this.kernelRegularizer),
                    recurrentRegularizer: (0,
                        _regularizers.serializeRegularizer)(this.recurrentRegularizer),
                    biasRegularizer: (0,
                        _regularizers.serializeRegularizer)(this.biasRegularizer),
                    activityRegularizer: (0,
                        _regularizers.serializeRegularizer)(this.activityRegularizer),
                    kernelConstraint: (0,
                        _constraints.serializeConstraint)(this.kernelConstraint),
                    recurrentConstraint: (0,
                        _constraints.serializeConstraint)(this.recurrentConstraint),
                    biasConstraint: (0,
                        _constraints.serializeConstraint)(this.biasConstraint),
                    dropout: this.dropout,
                    recurrentDropout: this.recurrentDropout
                };
                return Object.assign(Object.assign({}, baseConfig), config);
            }
        }
        /** @nocollapse */
        exports.SimpleRNNCell = SimpleRNNCell;
        SimpleRNNCell.className = 'SimpleRNNCell';
        tfc.serialization.registerClass(SimpleRNNCell);
        class SimpleRNN extends RNN {
            constructor(args) {
                args.cell = new SimpleRNNCell(args);
                super(args);
                // TODO(cais): Add activityRegularizer.
            }

            call(inputs, kwargs) {
                return (0,
                    tfc.tidy)(() => {
                        if (this.cell.dropoutMask != null) {
                            tfc.dispose(this.cell.dropoutMask);
                            this.cell.dropoutMask = null;
                        }
                        if (this.cell.recurrentDropoutMask != null) {
                            tfc.dispose(this.cell.recurrentDropoutMask);
                            this.cell.recurrentDropoutMask = null;
                        }
                        const mask = kwargs == null ? null : kwargs['mask'];
                        const training = kwargs == null ? null : kwargs['training'];
                        const initialState = kwargs == null ? null : kwargs['initialState'];
                        return super.call(inputs, {
                            mask,
                            training,
                            initialState
                        });
                    }
                    );
            }
            /** @nocollapse */
            static fromConfig(cls, config) {
                return new cls(config);
            }
        }
        /** @nocollapse */
        exports.SimpleRNN = SimpleRNN;
        SimpleRNN.className = 'SimpleRNN';
        tfc.serialization.registerClass(SimpleRNN);
        class GRUCell extends RNNCell {
            constructor(args) {
                super(args);
                this.DEFAULT_ACTIVATION = 'tanh';
                this.DEFAULT_RECURRENT_ACTIVATION = 'hardSigmoid';
                this.DEFAULT_KERNEL_INITIALIZER = 'glorotNormal';
                this.DEFAULT_RECURRENT_INITIALIZER = 'orthogonal';
                this.DEFAULT_BIAS_INITIALIZER = 'zeros';
                if (args.resetAfter) {
                    throw new _errors.ValueError(`GRUCell does not support reset_after parameter set to true.`);
                }
                this.units = args.units;
                (0,
                    _generic_utils.assertPositiveInteger)(this.units, 'units');
                this.activation = (0,
                    _activations.getActivation)(args.activation === undefined ? this.DEFAULT_ACTIVATION : args.activation);
                this.recurrentActivation = (0,
                    _activations.getActivation)(args.recurrentActivation === undefined ? this.DEFAULT_RECURRENT_ACTIVATION : args.recurrentActivation);
                this.useBias = args.useBias == null ? true : args.useBias;
                this.kernelInitializer = (0,
                    _initializers.getInitializer)(args.kernelInitializer || this.DEFAULT_KERNEL_INITIALIZER);
                this.recurrentInitializer = (0,
                    _initializers.getInitializer)(args.recurrentInitializer || this.DEFAULT_RECURRENT_INITIALIZER);
                this.biasInitializer = (0,
                    _initializers.getInitializer)(args.biasInitializer || this.DEFAULT_BIAS_INITIALIZER);
                this.kernelRegularizer = (0,
                    _regularizers.getRegularizer)(args.kernelRegularizer);
                this.recurrentRegularizer = (0,
                    _regularizers.getRegularizer)(args.recurrentRegularizer);
                this.biasRegularizer = (0,
                    _regularizers.getRegularizer)(args.biasRegularizer);
                this.kernelConstraint = (0,
                    _constraints.getConstraint)(args.kernelConstraint);
                this.recurrentConstraint = (0,
                    _constraints.getConstraint)(args.recurrentConstraint);
                this.biasConstraint = (0,
                    _constraints.getConstraint)(args.biasConstraint);
                this.dropout = math_utils.min([1, math_utils.max([0, args.dropout == null ? 0 : args.dropout])]);
                this.recurrentDropout = math_utils.min([1, math_utils.max([0, args.recurrentDropout == null ? 0 : args.recurrentDropout])]);
                this.dropoutFunc = args.dropoutFunc;
                this.implementation = args.implementation;
                this.stateSize = this.units;
                this.dropoutMask = null;
                this.recurrentDropoutMask = null;
            }
            build(inputShape) {
                inputShape = (0,
                    _types_utils.getExactlyOneShape)(inputShape);
                const inputDim = inputShape[inputShape.length - 1];
                this.kernel = this.addWeight('kernel', [inputDim, this.units * 3], null, this.kernelInitializer, this.kernelRegularizer, true, this.kernelConstraint);
                this.recurrentKernel = this.addWeight('recurrent_kernel', [this.units, this.units * 3], null, this.recurrentInitializer, this.recurrentRegularizer, true, this.recurrentConstraint);
                if (this.useBias) {
                    this.bias = this.addWeight('bias', [this.units * 3], null, this.biasInitializer, this.biasRegularizer, true, this.biasConstraint);
                } else {
                    this.bias = null;
                }
                // Porting Notes: Unlike the PyKeras implementation, we perform slicing
                //   of the weights and bias in the call() method, at execution time.
                this.built = true;
            }
            call(inputs, kwargs) {
                return (0,
                    tfc.tidy)(() => {
                        inputs = inputs;
                        if (inputs.length !== 2) {
                            throw new _errors.ValueError(`GRUCell expects 2 input Tensors (inputs, h, c), got ` + `${inputs.length}.`);
                        }
                        const training = kwargs['training'] == null ? false : kwargs['training'];
                        let hTMinus1 = inputs[1];
                        // Previous memory state.
                        inputs = inputs[0];
                        // Note: For superior performance, TensorFlow.js always uses
                        // implementation 2, regardless of the actual value of
                        // config.implementation.
                        if (0 < this.dropout && this.dropout < 1 && this.dropoutMask == null) {
                            this.dropoutMask = generateDropoutMask({
                                ones: () => tfc.onesLike(inputs),
                                rate: this.dropout,
                                training,
                                count: 3,
                                dropoutFunc: this.dropoutFunc
                            });
                        }
                        if (0 < this.recurrentDropout && this.recurrentDropout < 1 && this.recurrentDropoutMask == null) {
                            this.recurrentDropoutMask = generateDropoutMask({
                                ones: () => tfc.onesLike(hTMinus1),
                                rate: this.recurrentDropout,
                                training,
                                count: 3,
                                dropoutFunc: this.dropoutFunc
                            });
                        }
                        const dpMask = this.dropoutMask;
                        const recDpMask = this.recurrentDropoutMask;
                        let z;
                        let r;
                        let hh;
                        if (0 < this.dropout && this.dropout < 1) {
                            inputs = tfc.mul(inputs, dpMask[0]);
                        }
                        let matrixX = K.dot(inputs, this.kernel.read());
                        if (this.useBias) {
                            matrixX = K.biasAdd(matrixX, this.bias.read());
                        }
                        if (0 < this.recurrentDropout && this.recurrentDropout < 1) {
                            hTMinus1 = tfc.mul(hTMinus1, recDpMask[0]);
                        }
                        const recurrentKernelValue = this.recurrentKernel.read();
                        const [rk1, rk2] = tfc.split(recurrentKernelValue, [2 * this.units, this.units], recurrentKernelValue.rank - 1);
                        const matrixInner = K.dot(hTMinus1, rk1);
                        const [xZ, xR, xH] = tfc.split(matrixX, 3, matrixX.rank - 1);
                        const [recurrentZ, recurrentR] = tfc.split(matrixInner, 2, matrixInner.rank - 1);
                        z = this.recurrentActivation.apply(tfc.add(xZ, recurrentZ));
                        r = this.recurrentActivation.apply(tfc.add(xR, recurrentR));
                        const recurrentH = K.dot(tfc.mul(r, hTMinus1), rk2);
                        hh = this.activation.apply(tfc.add(xH, recurrentH));
                        const h = tfc.add(tfc.mul(z, hTMinus1), tfc.mul(tfc.add(1, tfc.neg(z)), hh));
                        // TODO(cais): Add use_learning_phase flag properly.
                        return [h, h];
                    }
                    );
            }
            getConfig() {
                const baseConfig = super.getConfig();
                const config = {
                    units: this.units,
                    activation: (0,
                        _activations.serializeActivation)(this.activation),
                    recurrentActivation: (0,
                        _activations.serializeActivation)(this.recurrentActivation),
                    useBias: this.useBias,
                    kernelInitializer: (0,
                        _initializers.serializeInitializer)(this.kernelInitializer),
                    recurrentInitializer: (0,
                        _initializers.serializeInitializer)(this.recurrentInitializer),
                    biasInitializer: (0,
                        _initializers.serializeInitializer)(this.biasInitializer),
                    kernelRegularizer: (0,
                        _regularizers.serializeRegularizer)(this.kernelRegularizer),
                    recurrentRegularizer: (0,
                        _regularizers.serializeRegularizer)(this.recurrentRegularizer),
                    biasRegularizer: (0,
                        _regularizers.serializeRegularizer)(this.biasRegularizer),
                    activityRegularizer: (0,
                        _regularizers.serializeRegularizer)(this.activityRegularizer),
                    kernelConstraint: (0,
                        _constraints.serializeConstraint)(this.kernelConstraint),
                    recurrentConstraint: (0,
                        _constraints.serializeConstraint)(this.recurrentConstraint),
                    biasConstraint: (0,
                        _constraints.serializeConstraint)(this.biasConstraint),
                    dropout: this.dropout,
                    recurrentDropout: this.recurrentDropout,
                    implementation: this.implementation,
                    resetAfter: false
                };
                return Object.assign(Object.assign({}, baseConfig), config);
            }
        }
        /** @nocollapse */
        exports.GRUCell = GRUCell;
        GRUCell.className = 'GRUCell';
        tfc.serialization.registerClass(GRUCell);
        class GRU extends RNN {
            constructor(args) {
                if (args.implementation === 0) {
                    console.warn('`implementation=0` has been deprecated, and now defaults to ' + '`implementation=1`. Please update your layer call.');
                }
                args.cell = new GRUCell(args);
                super(args);
                // TODO(cais): Add activityRegularizer.
            }

            call(inputs, kwargs) {
                return (0,
                    tfc.tidy)(() => {
                        if (this.cell.dropoutMask != null) {
                            tfc.dispose(this.cell.dropoutMask);
                            this.cell.dropoutMask = null;
                        }
                        if (this.cell.recurrentDropoutMask != null) {
                            tfc.dispose(this.cell.recurrentDropoutMask);
                            this.cell.recurrentDropoutMask = null;
                        }
                        const mask = kwargs == null ? null : kwargs['mask'];
                        const training = kwargs == null ? null : kwargs['training'];
                        const initialState = kwargs == null ? null : kwargs['initialState'];
                        return super.call(inputs, {
                            mask,
                            training,
                            initialState
                        });
                    }
                    );
            }
            /** @nocollapse */
            static fromConfig(cls, config) {
                if (config['implmentation'] === 0) {
                    config['implementation'] = 1;
                }
                return new cls(config);
            }
        }
        /** @nocollapse */
        exports.GRU = GRU;
        GRU.className = 'GRU';
        tfc.serialization.registerClass(GRU);
        class LSTMCell extends RNNCell {
            constructor(args) {
                super(args);
                this.DEFAULT_ACTIVATION = 'tanh';
                this.DEFAULT_RECURRENT_ACTIVATION = 'hardSigmoid';
                this.DEFAULT_KERNEL_INITIALIZER = 'glorotNormal';
                this.DEFAULT_RECURRENT_INITIALIZER = 'orthogonal';
                this.DEFAULT_BIAS_INITIALIZER = 'zeros';
                this.units = args.units;
                (0,
                    _generic_utils.assertPositiveInteger)(this.units, 'units');
                this.activation = (0,
                    _activations.getActivation)(args.activation === undefined ? this.DEFAULT_ACTIVATION : args.activation);
                this.recurrentActivation = (0,
                    _activations.getActivation)(args.recurrentActivation === undefined ? this.DEFAULT_RECURRENT_ACTIVATION : args.recurrentActivation);
                this.useBias = args.useBias == null ? true : args.useBias;
                this.kernelInitializer = (0,
                    _initializers.getInitializer)(args.kernelInitializer || this.DEFAULT_KERNEL_INITIALIZER);
                this.recurrentInitializer = (0,
                    _initializers.getInitializer)(args.recurrentInitializer || this.DEFAULT_RECURRENT_INITIALIZER);
                this.biasInitializer = (0,
                    _initializers.getInitializer)(args.biasInitializer || this.DEFAULT_BIAS_INITIALIZER);
                this.unitForgetBias = args.unitForgetBias;
                this.kernelRegularizer = (0,
                    _regularizers.getRegularizer)(args.kernelRegularizer);
                this.recurrentRegularizer = (0,
                    _regularizers.getRegularizer)(args.recurrentRegularizer);
                this.biasRegularizer = (0,
                    _regularizers.getRegularizer)(args.biasRegularizer);
                this.kernelConstraint = (0,
                    _constraints.getConstraint)(args.kernelConstraint);
                this.recurrentConstraint = (0,
                    _constraints.getConstraint)(args.recurrentConstraint);
                this.biasConstraint = (0,
                    _constraints.getConstraint)(args.biasConstraint);
                this.dropout = math_utils.min([1, math_utils.max([0, args.dropout == null ? 0 : args.dropout])]);
                this.recurrentDropout = math_utils.min([1, math_utils.max([0, args.recurrentDropout == null ? 0 : args.recurrentDropout])]);
                this.dropoutFunc = args.dropoutFunc;
                this.implementation = args.implementation;
                this.stateSize = [this.units, this.units];
                this.dropoutMask = null;
                this.recurrentDropoutMask = null;
            }
            build(inputShape) {
                var _a;
                inputShape = (0,
                    _types_utils.getExactlyOneShape)(inputShape);
                const inputDim = inputShape[inputShape.length - 1];
                this.kernel = this.addWeight('kernel', [inputDim, this.units * 4], null, this.kernelInitializer, this.kernelRegularizer, true, this.kernelConstraint);
                this.recurrentKernel = this.addWeight('recurrent_kernel', [this.units, this.units * 4], null, this.recurrentInitializer, this.recurrentRegularizer, true, this.recurrentConstraint);
                let biasInitializer;
                if (this.useBias) {
                    if (this.unitForgetBias) {
                        const capturedBiasInit = this.biasInitializer;
                        const capturedUnits = this.units;
                        biasInitializer = new (_a = class CustomInit extends _initializers.Initializer {
                            apply(shape, dtype) {
                                // TODO(cais): More informative variable names?
                                const bI = capturedBiasInit.apply([capturedUnits]);
                                const bF = new _initializers.Ones().apply([capturedUnits]);
                                const bCAndH = capturedBiasInit.apply([capturedUnits * 2]);
                                return K.concatAlongFirstAxis(K.concatAlongFirstAxis(bI, bF), bCAndH);
                            }
                        }
                            ,
                            /** @nocollapse */
                            _a.className = 'CustomInit',
                            _a)();
                    } else {
                        biasInitializer = this.biasInitializer;
                    }
                    this.bias = this.addWeight('bias', [this.units * 4], null, biasInitializer, this.biasRegularizer, true, this.biasConstraint);
                } else {
                    this.bias = null;
                }
                // Porting Notes: Unlike the PyKeras implementation, we perform slicing
                //   of the weights and bias in the call() method, at execution time.
                this.built = true;
            }
            call(inputs, kwargs) {
                return (0,
                    tfc.tidy)(() => {
                        const training = kwargs['training'] == null ? false : kwargs['training'];
                        inputs = inputs;
                        if (inputs.length !== 3) {
                            throw new _errors.ValueError(`LSTMCell expects 3 input Tensors (inputs, h, c), got ` + `${inputs.length}.`);
                        }
                        let hTMinus1 = inputs[1];
                        // Previous memory state.
                        const cTMinus1 = inputs[2];
                        // Previous carry state.
                        inputs = inputs[0];
                        if (0 < this.dropout && this.dropout < 1 && this.dropoutMask == null) {
                            this.dropoutMask = generateDropoutMask({
                                ones: () => tfc.onesLike(inputs),
                                rate: this.dropout,
                                training,
                                count: 4,
                                dropoutFunc: this.dropoutFunc
                            });
                        }
                        if (0 < this.recurrentDropout && this.recurrentDropout < 1 && this.recurrentDropoutMask == null) {
                            this.recurrentDropoutMask = generateDropoutMask({
                                ones: () => tfc.onesLike(hTMinus1),
                                rate: this.recurrentDropout,
                                training,
                                count: 4,
                                dropoutFunc: this.dropoutFunc
                            });
                        }
                        const dpMask = this.dropoutMask;
                        const recDpMask = this.recurrentDropoutMask;
                        // Note: For superior performance, TensorFlow.js always uses
                        // implementation 2 regardless of the actual value of
                        // config.implementation.
                        let i;
                        let f;
                        let c;
                        let o;
                        if (0 < this.dropout && this.dropout < 1) {
                            inputs = tfc.mul(inputs, dpMask[0]);
                        }
                        let z = K.dot(inputs, this.kernel.read());
                        if (0 < this.recurrentDropout && this.recurrentDropout < 1) {
                            hTMinus1 = tfc.mul(hTMinus1, recDpMask[0]);
                        }
                        z = tfc.add(z, K.dot(hTMinus1, this.recurrentKernel.read()));
                        if (this.useBias) {
                            z = K.biasAdd(z, this.bias.read());
                        }
                        const [z0, z1, z2, z3] = tfc.split(z, 4, z.rank - 1);
                        i = this.recurrentActivation.apply(z0);
                        f = this.recurrentActivation.apply(z1);
                        c = tfc.add(tfc.mul(f, cTMinus1), tfc.mul(i, this.activation.apply(z2)));
                        o = this.recurrentActivation.apply(z3);
                        const h = tfc.mul(o, this.activation.apply(c));
                        // TODO(cais): Add use_learning_phase flag properly.
                        return [h, h, c];
                    }
                    );
            }
            getConfig() {
                const baseConfig = super.getConfig();
                const config = {
                    units: this.units,
                    activation: (0,
                        _activations.serializeActivation)(this.activation),
                    recurrentActivation: (0,
                        _activations.serializeActivation)(this.recurrentActivation),
                    useBias: this.useBias,
                    kernelInitializer: (0,
                        _initializers.serializeInitializer)(this.kernelInitializer),
                    recurrentInitializer: (0,
                        _initializers.serializeInitializer)(this.recurrentInitializer),
                    biasInitializer: (0,
                        _initializers.serializeInitializer)(this.biasInitializer),
                    unitForgetBias: this.unitForgetBias,
                    kernelRegularizer: (0,
                        _regularizers.serializeRegularizer)(this.kernelRegularizer),
                    recurrentRegularizer: (0,
                        _regularizers.serializeRegularizer)(this.recurrentRegularizer),
                    biasRegularizer: (0,
                        _regularizers.serializeRegularizer)(this.biasRegularizer),
                    activityRegularizer: (0,
                        _regularizers.serializeRegularizer)(this.activityRegularizer),
                    kernelConstraint: (0,
                        _constraints.serializeConstraint)(this.kernelConstraint),
                    recurrentConstraint: (0,
                        _constraints.serializeConstraint)(this.recurrentConstraint),
                    biasConstraint: (0,
                        _constraints.serializeConstraint)(this.biasConstraint),
                    dropout: this.dropout,
                    recurrentDropout: this.recurrentDropout,
                    implementation: this.implementation
                };
                return Object.assign(Object.assign({}, baseConfig), config);
            }
        }
        /** @nocollapse */
        exports.LSTMCell = LSTMCell;
        LSTMCell.className = 'LSTMCell';
        tfc.serialization.registerClass(LSTMCell);
        class LSTM extends RNN {
            constructor(args) {
                if (args.implementation === 0) {
                    console.warn('`implementation=0` has been deprecated, and now defaults to ' + '`implementation=1`. Please update your layer call.');
                }
                args.cell = new LSTMCell(args);
                super(args);
                // TODO(cais): Add activityRegularizer.
            }

            call(inputs, kwargs) {
                return (0,
                    tfc.tidy)(() => {
                        if (this.cell.dropoutMask != null) {
                            tfc.dispose(this.cell.dropoutMask);
                            this.cell.dropoutMask = null;
                        }
                        if (this.cell.recurrentDropoutMask != null) {
                            tfc.dispose(this.cell.recurrentDropoutMask);
                            this.cell.recurrentDropoutMask = null;
                        }
                        const mask = kwargs == null ? null : kwargs['mask'];
                        const training = kwargs == null ? null : kwargs['training'];
                        const initialState = kwargs == null ? null : kwargs['initialState'];
                        return super.call(inputs, {
                            mask,
                            training,
                            initialState
                        });
                    }
                    );
            }
            /** @nocollapse */
            static fromConfig(cls, config) {
                if (config['implmentation'] === 0) {
                    config['implementation'] = 1;
                }
                return new cls(config);
            }
        }
        /** @nocollapse */
        exports.LSTM = LSTM;
        LSTM.className = 'LSTM';
        tfc.serialization.registerClass(LSTM);
        class StackedRNNCells extends RNNCell {
            constructor(args) {
                super(args);
                this.cells = args.cells;
            }
            get stateSize() {
                // States are a flat list in reverse order of the cell stack.
                // This allows perserving the requirement `stack.statesize[0] ===
                // outputDim`. E.g., states of a 2-layer LSTM would be `[h2, c2, h1, c1]`,
                // assuming one LSTM has states `[h, c]`.
                const stateSize = [];
                for (const cell of this.cells.slice().reverse()) {
                    if (Array.isArray(cell.stateSize)) {
                        stateSize.push(...cell.stateSize);
                    } else {
                        stateSize.push(cell.stateSize);
                    }
                }
                return stateSize;
            }
            call(inputs, kwargs) {
                return (0,
                    tfc.tidy)(() => {
                        inputs = inputs;
                        let states = inputs.slice(1);
                        // Recover per-cell states.
                        const nestedStates = [];
                        for (const cell of this.cells.slice().reverse()) {
                            if (Array.isArray(cell.stateSize)) {
                                nestedStates.push(states.splice(0, cell.stateSize.length));
                            } else {
                                nestedStates.push(states.splice(0, 1));
                            }
                        }
                        nestedStates.reverse();
                        // Call the cells in order and store the returned states.
                        const newNestedStates = [];
                        let callInputs;
                        for (let i = 0; i < this.cells.length; ++i) {
                            const cell = this.cells[i];
                            states = nestedStates[i];
                            // TODO(cais): Take care of constants.
                            if (i === 0) {
                                callInputs = [inputs[0]].concat(states);
                            } else {
                                callInputs = [callInputs[0]].concat(states);
                            }
                            callInputs = cell.call(callInputs, kwargs);
                            newNestedStates.push(callInputs.slice(1));
                        }
                        // Format the new states as a flat list in reverse cell order.
                        states = [];
                        for (const cellStates of newNestedStates.slice().reverse()) {
                            states.push(...cellStates);
                        }
                        return [callInputs[0]].concat(states);
                    }
                    );
            }
            build(inputShape) {
                if ((0,
                    _types_utils.isArrayOfShapes)(inputShape)) {
                    // TODO(cais): Take care of input constants.
                    // const constantShape = inputShape.slice(1);
                    inputShape = inputShape[0];
                }
                inputShape = inputShape;
                let outputDim;
                this.cells.forEach((cell, i) => {
                    (0,
                        _common.nameScope)(`RNNCell_${i}`, () => {
                            // TODO(cais): Take care of input constants.
                            cell.build(inputShape);
                            if (Array.isArray(cell.stateSize)) {
                                outputDim = cell.stateSize[0];
                            } else {
                                outputDim = cell.stateSize;
                            }
                            inputShape = [inputShape[0], outputDim];
                        }
                        );
                }
                );
                this.built = true;
            }
            getConfig() {
                const baseConfig = super.getConfig();
                const getCellConfig = cell => {
                    return {
                        'className': cell.getClassName(),
                        'config': cell.getConfig()
                    };
                }
                    ;
                const cellConfigs = this.cells.map(getCellConfig);
                const config = {
                    'cells': cellConfigs
                };
                return Object.assign(Object.assign({}, baseConfig), config);
            }
            /** @nocollapse */
            static fromConfig(cls, config, customObjects = {}) {
                const cells = [];
                for (const cellConfig of config['cells']) {
                    cells.push((0,
                        _serialization.deserialize)(cellConfig, customObjects));
                }
                return new cls({
                    cells
                });
            }
            get trainableWeights() {
                if (!this.trainable) {
                    return [];
                }
                const weights = [];
                for (const cell of this.cells) {
                    weights.push(...cell.trainableWeights);
                }
                return weights;
            }
            get nonTrainableWeights() {
                const weights = [];
                for (const cell of this.cells) {
                    weights.push(...cell.nonTrainableWeights);
                }
                if (!this.trainable) {
                    const trainableWeights = [];
                    for (const cell of this.cells) {
                        trainableWeights.push(...cell.trainableWeights);
                    }
                    return trainableWeights.concat(weights);
                }
                return weights;
            }
            /**
             * Retrieve the weights of a the model.
             *
             * @returns A flat `Array` of `tf.Tensor`s.
             */
            getWeights() {
                const weights = [];
                for (const cell of this.cells) {
                    weights.push(...cell.weights);
                }
                return (0,
                    _variables.batchGetValue)(weights);
            }
            /**
             * Set the weights of the model.
             *
             * @param weights An `Array` of `tf.Tensor`s with shapes and types matching
             *     the output of `getWeights()`.
             */
            setWeights(weights) {
                const tuples = [];
                for (const cell of this.cells) {
                    const numParams = cell.weights.length;
                    const inputWeights = weights.splice(numParams);
                    for (let i = 0; i < cell.weights.length; ++i) {
                        tuples.push([cell.weights[i], inputWeights[i]]);
                    }
                }
                (0,
                    _variables.batchSetValue)(tuples);
            }
        }
        /** @nocollapse */
        exports.StackedRNNCells = StackedRNNCells;
        StackedRNNCells.className = 'StackedRNNCells';
        tfc.serialization.registerClass(StackedRNNCells);
        function generateDropoutMask(args) {
            const { ones, rate, training = false, count = 1, dropoutFunc } = args;
            const droppedInputs = () => dropoutFunc != null ? dropoutFunc(ones(), rate) : K.dropout(ones(), rate);
            const createMask = () => K.inTrainPhase(droppedInputs, ones, training);
            // just in case count is provided with null or undefined
            if (!count || count <= 1) {
                return tfc.keep(createMask().clone());
            }
            const masks = Array(count).fill(undefined).map(createMask);
            return masks.map(m => tfc.keep(m.clone()));
        }

    }
        , {
        "../activations": 513,
        "../backend/tfjs_backend": 516,
        "../common": 519,
        "../constraints": 520,
        "../engine/topology": 524,
        "../errors": 529,
        "../initializers": 539,
        "../regularizers": 566,
        "../utils/generic_utils": 570,
        "../utils/math_utils": 572,
        "../utils/types_utils": 574,
        "../variables": 576,
        "./serialization": 559,
        "@tensorflow/tfjs-core": 506
    }],
    559: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.deserialize = deserialize;
        var _tfjsCore = require("@tensorflow/tfjs-core");
        var _generic_utils = require("../utils/generic_utils");
        /**
         * @license
         * Copyright 2018 Google LLC
         *
         * Use of this source code is governed by an MIT-style
         * license that can be found in the LICENSE file or at
         * https://opensource.org/licenses/MIT.
         * =============================================================================
         */
        /* Original Source layers/__init__.py */

        /**
         * Instantiate a layer from a config dictionary.
         * @param config dict of the form {class_name: str, config: dict}
         * @param customObjects dict mapping class names (or function names)
         *   of custom (non-Keras) objects to class/functions
         * @param fastWeightInit Optional flag to use fast weight initialization
         *   during deserialization. This is applicable to cases in which
         *   the initialization will be immediately overwritten by loaded weight
         *   values. Default: `false`.
         * @returns Layer instance (may be LayersModel, Sequential, Layer...)
         */
        function deserialize(config, customObjects = {}, fastWeightInit = false) {
            return (0,
                _generic_utils.deserializeKerasObject)(config, _tfjsCore.serialization.SerializationMap.getMap().classNameMap, customObjects, 'layer', fastWeightInit);
        }

    }
        , {
        "../utils/generic_utils": 570,
        "@tensorflow/tfjs-core": 506
    }],
    560: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.Wrapper = exports.TimeDistributed = exports.Bidirectional = void 0;
        exports.checkBidirectionalMergeMode = checkBidirectionalMergeMode;
        var tfc = _interopRequireWildcard(require("@tensorflow/tfjs-core"));
        var K = _interopRequireWildcard(require("../backend/tfjs_backend"));
        var _common = require("../common");
        var _topology = require("../engine/topology");
        var _errors = require("../errors");
        var _common2 = require("../keras_format/common");
        var generic_utils = _interopRequireWildcard(require("../utils/generic_utils"));
        var _types_utils = require("../utils/types_utils");
        var _recurrent = require("./recurrent");
        var _serialization = require("./serialization");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2018 Google LLC
         *
         * Use of this source code is governed by an MIT-style
         * license that can be found in the LICENSE file or at
         * https://opensource.org/licenses/MIT.
         * =============================================================================
         */
        /**
         * Layers that augment the functionality of a base layer.
         */

        /**
         * Abstract wrapper base class.
         *
         * Wrappers take another layer and augment it in various ways.
         * Do not use this class as a layer, it is only an abstract base class.
         * Two usable wrappers are the `TimeDistributed` and `Bidirectional` wrappers.
         */
        class Wrapper extends _topology.Layer {
            constructor(args) {
                // Porting Note: In PyKeras, `self.layer` is set prior to the calling
                //   `super()`. But we can't do that here due to TypeScript's restriction.
                //   See: https://github.com/Microsoft/TypeScript/issues/8277
                //   As a result, we have to add checks in `get trainable()` and
                //   `set trainable()` below in order to prevent using `this.layer` when
                //   its value is `undefined`. The super constructor does use the getter
                //   and the setter of `this.layer`.
                super(args);
                this.layer = args.layer;
            }
            build(inputShape) {
                this.built = true;
            }
            // TODO(cais): Implement activityRegularizer getter.
            get trainable() {
                // Porting Note: the check of `this.layer` here is necessary due to the
                //   way the `constructor` of this class is written (see Porting Note
                //   above).
                if (this.layer != null) {
                    return this.layer.trainable;
                } else {
                    return false;
                }
            }
            set trainable(value) {
                // Porting Note: the check of `this.layer` here is necessary due to the
                //   way the `constructor` of this class is written (see Porting Note
                //   above).
                if (this.layer != null) {
                    this.layer.trainable = value;
                }
            }
            get trainableWeights() {
                return this.layer.trainableWeights;
            }
            // TODO(cais): Implement setter for trainableWeights.
            get nonTrainableWeights() {
                return this.layer.nonTrainableWeights;
            }
            // TODO(cais): Implement setter for nonTrainableWeights.
            get updates() {
                // tslint:disable-next-line:no-any
                return this.layer._updates;
            }
            // TODO(cais): Implement getUpdatesFor().
            get losses() {
                return this.layer.losses;
            }
            // TODO(cais): Implement getLossesFor().
            getWeights() {
                return this.layer.getWeights();
            }
            setWeights(weights) {
                this.layer.setWeights(weights);
            }
            getConfig() {
                const config = {
                    'layer': {
                        'className': this.layer.getClassName(),
                        'config': this.layer.getConfig()
                    }
                };
                const baseConfig = super.getConfig();
                Object.assign(config, baseConfig);
                return config;
            }
            setFastWeightInitDuringBuild(value) {
                super.setFastWeightInitDuringBuild(value);
                if (this.layer != null) {
                    this.layer.setFastWeightInitDuringBuild(value);
                }
            }
            /** @nocollapse */
            static fromConfig(cls, config, customObjects = {}) {
                const layerConfig = config['layer'];
                const layer = (0,
                    _serialization.deserialize)(layerConfig, customObjects);
                delete config['layer'];
                const newConfig = {
                    layer
                };
                Object.assign(newConfig, config);
                return new cls(newConfig);
            }
        }
        exports.Wrapper = Wrapper;
        class TimeDistributed extends Wrapper {
            constructor(args) {
                super(args);
                this.supportsMasking = true;
            }
            build(inputShape) {
                inputShape = (0,
                    _types_utils.getExactlyOneShape)(inputShape);
                if (inputShape.length < 3) {
                    throw new _errors.ValueError(`TimeDistributed layer expects an input shape >= 3D, but received ` + `input shape ${JSON.stringify(inputShape)}`);
                }
                this.inputSpec = [{
                    shape: inputShape
                }];
                const childInputShape = [inputShape[0]].concat(inputShape.slice(2));
                if (!this.layer.built) {
                    this.layer.build(childInputShape);
                    this.layer.built = true;
                }
                super.build(inputShape);
            }
            computeOutputShape(inputShape) {
                inputShape = (0,
                    _types_utils.getExactlyOneShape)(inputShape);
                const childInputShape = [inputShape[0]].concat(inputShape.slice(2));
                const childOutputShape = this.layer.computeOutputShape(childInputShape);
                const timesteps = inputShape[1];
                return [childOutputShape[0], timesteps].concat(childOutputShape.slice(1));
            }
            call(inputs, kwargs) {
                return (0,
                    tfc.tidy)(() => {
                        // TODO(cais): Add 'training' and 'useLearningPhase' to kwargs.
                        inputs = (0,
                            _types_utils.getExactlyOneTensor)(inputs);
                        // Porting Note: In tfjs-layers, `inputs` are always concrete tensor
                        // values. Hence the inputs can't have an undetermined first (batch)
                        // dimension, which is why we always use the K.rnn approach here.
                        const step = (inputs, states) => {
                            // TODO(cais): Add useLearningPhase.
                            // NOTE(cais): `layer.call` may return a length-1 array of Tensor in
                            //   some cases (e.g., `layer` is a `Sequential` instance), which is
                            //   why `getExactlyOneTensor` is used below.
                            const output = (0,
                                _types_utils.getExactlyOneTensor)(this.layer.call(inputs, kwargs));
                            return [output, []];
                        }
                            ;
                        const rnnOutputs = (0,
                            _recurrent.rnn)(step, inputs, [], false /* goBackwards */
                                , null /* mask */
                                , null /* constants */
                                , false /* unroll */
                                , true /* needPerStepOutputs */
                            );
                        const y = rnnOutputs[1];
                        // TODO(cais): Add activity regularization.
                        // TODO(cais): Add useLearningPhase.
                        return y;
                    }
                    );
            }
        }
        /** @nocollapse */
        exports.TimeDistributed = TimeDistributed;
        TimeDistributed.className = 'TimeDistributed';
        tfc.serialization.registerClass(TimeDistributed);
        function checkBidirectionalMergeMode(value) {
            generic_utils.checkStringTypeUnionValue(_common2.VALID_BIDIRECTIONAL_MERGE_MODES, 'BidirectionalMergeMode', value);
        }
        const DEFAULT_BIDIRECTIONAL_MERGE_MODE = 'concat';
        class Bidirectional extends Wrapper {
            constructor(args) {
                super(args);
                // Note: When creating `this.forwardLayer`, the original Layer object
                //   (`config.layer`) ought to be cloned. This is why we call
                //   `getConfig()` followed by `deserialize()`. Without this cloning,
                //   the layer names saved during serialization will incorrectly contain
                //   the 'forward_' prefix. In Python Keras, this is done using
                //   `copy.copy` (shallow copy), which does not have a simple equivalent
                //   in JavaScript. JavaScript's `Object.assign()` does not copy
                //   methods.
                const layerConfig = args.layer.getConfig();
                const forwDict = {};
                forwDict['className'] = args.layer.getClassName();
                forwDict['config'] = layerConfig;
                this.forwardLayer = (0,
                    _serialization.deserialize)(forwDict);
                layerConfig['goBackwards'] = layerConfig['goBackwards'] === true ? false : true;
                const backDict = {};
                backDict['className'] = args.layer.getClassName();
                backDict['config'] = layerConfig;
                this.backwardLayer = (0,
                    _serialization.deserialize)(backDict);
                this.forwardLayer.name = 'forward_' + this.forwardLayer.name;
                this.backwardLayer.name = 'backward_' + this.backwardLayer.name;
                this.mergeMode = args.mergeMode === undefined ? DEFAULT_BIDIRECTIONAL_MERGE_MODE : args.mergeMode;
                checkBidirectionalMergeMode(this.mergeMode);
                if (args.weights) {
                    throw new _errors.NotImplementedError('weights support is not implemented for Bidirectional layer yet.');
                }
                this._stateful = args.layer.stateful;
                this.returnSequences = args.layer.returnSequences;
                this.returnState = args.layer.returnState;
                this.supportsMasking = true;
                this._trainable = true;
                this.inputSpec = args.layer.inputSpec;
                this.numConstants = null;
            }
            get trainable() {
                return this._trainable;
            }
            set trainable(value) {
                // Porting Note: the check of `this.layer` here is necessary due to the
                //   way the `constructor` of this class is written (see Porting Note
                //   above).
                this._trainable = value;
                if (this.forwardLayer != null) {
                    this.forwardLayer.trainable = value;
                }
                if (this.backwardLayer != null) {
                    this.backwardLayer.trainable = value;
                }
            }
            getWeights() {
                return this.forwardLayer.getWeights().concat(this.backwardLayer.getWeights());
            }
            setWeights(weights) {
                const numWeights = weights.length;
                const numeightsOver2 = Math.floor(numWeights / 2);
                this.forwardLayer.setWeights(weights.slice(0, numeightsOver2));
                this.backwardLayer.setWeights(weights.slice(numeightsOver2));
            }
            computeOutputShape(inputShape) {
                let layerShapes = this.forwardLayer.computeOutputShape(inputShape);
                if (!(Array.isArray(layerShapes) && Array.isArray(layerShapes[0]))) {
                    layerShapes = [layerShapes];
                }
                layerShapes = layerShapes;
                let outputShape;
                let outputShapes;
                let stateShape;
                if (this.returnState) {
                    stateShape = layerShapes.slice(1);
                    outputShape = layerShapes[0];
                } else {
                    outputShape = layerShapes[0];
                }
                outputShape = outputShape;
                if (this.mergeMode === 'concat') {
                    outputShape[outputShape.length - 1] *= 2;
                    outputShapes = [outputShape];
                } else if (this.mergeMode == null) {
                    outputShapes = [outputShape, outputShape.slice()];
                } else {
                    outputShapes = [outputShape];
                }
                if (this.returnState) {
                    if (this.mergeMode == null) {
                        return outputShapes.concat(stateShape).concat(stateShape.slice());
                    }
                    return [outputShape].concat(stateShape).concat(stateShape.slice());
                }
                return generic_utils.singletonOrArray(outputShapes);
            }
            apply(inputs, kwargs) {
                let initialState = kwargs == null ? null : kwargs['initialState'];
                let constants = kwargs == null ? null : kwargs['constants'];
                if (kwargs == null) {
                    kwargs = {};
                }
                const standardized = (0,
                    _recurrent.standardizeArgs)(inputs, initialState, constants, this.numConstants);
                inputs = standardized.inputs;
                initialState = standardized.initialState;
                constants = standardized.constants;
                if (Array.isArray(inputs)) {
                    initialState = inputs.slice(1);
                    inputs = inputs[0];
                }
                if ((initialState == null || initialState.length === 0) && constants == null) {
                    return super.apply(inputs, kwargs);
                }
                const additionalInputs = [];
                const additionalSpecs = [];
                if (initialState != null) {
                    const numStates = initialState.length;
                    if (numStates % 2 > 0) {
                        throw new _errors.ValueError('When passing `initialState` to a Bidrectional RNN, ' + 'the state should be an Array containing the states of ' + 'the underlying RNNs.');
                    }
                    kwargs['initialState'] = initialState;
                    additionalInputs.push(...initialState);
                    const stateSpecs = initialState.map(state => new _topology.InputSpec({
                        shape: state.shape
                    }));
                    this.forwardLayer.stateSpec = stateSpecs.slice(0, numStates / 2);
                    this.backwardLayer.stateSpec = stateSpecs.slice(numStates / 2);
                    additionalSpecs.push(...stateSpecs);
                }
                if (constants != null) {
                    throw new _errors.NotImplementedError('Support for constants in Bidirectional layers is not ' + 'implemented yet.');
                }
                const isSymbolicTensor = additionalInputs[0] instanceof _topology.SymbolicTensor;
                for (const tensor of additionalInputs) {
                    if (tensor instanceof _topology.SymbolicTensor !== isSymbolicTensor) {
                        throw new _errors.ValueError('The initial state of a Bidirectional layer cannot be ' + 'specified as a mix of symbolic and non-symbolic tensors');
                    }
                }
                if (isSymbolicTensor) {
                    // Compute the full input and specs, including the states.
                    const fullInput = [inputs].concat(additionalInputs);
                    const fullInputSpec = this.inputSpec.concat(additionalSpecs);
                    // Perform the call temporarily and replace inputSpec.
                    // Note: with initial states symbolic calls and non-symbolic calls to
                    // this method differ in how the initial states are passed. For
                    // symbolic calls, the initial states are passed in the first arg, as
                    // an Array of SymbolicTensors; for non-symbolic calls, they are
                    // passed in the second arg as a part of the kwargs. Hence the need to
                    // temporarily modify inputSpec here.
                    // TODO(cais): Make refactoring so that this hacky code below is no
                    // longer needed.
                    const originalInputSpec = this.inputSpec;
                    this.inputSpec = fullInputSpec;
                    const output = super.apply(fullInput, kwargs);
                    this.inputSpec = originalInputSpec;
                    return output;
                } else {
                    return super.apply(inputs, kwargs);
                }
            }
            call(inputs, kwargs) {
                return (0,
                    tfc.tidy)(() => {
                        const initialState = kwargs['initialState'];
                        let y;
                        let yRev;
                        if (initialState == null) {
                            y = this.forwardLayer.call(inputs, kwargs);
                            yRev = this.backwardLayer.call(inputs, kwargs);
                        } else {
                            const forwardState = initialState.slice(0, initialState.length / 2);
                            const backwardState = initialState.slice(initialState.length / 2);
                            y = this.forwardLayer.call(inputs, Object.assign(kwargs, {
                                initialState: forwardState
                            }));
                            yRev = this.backwardLayer.call(inputs, Object.assign(kwargs, {
                                initialState: backwardState
                            }));
                        }
                        let states;
                        if (this.returnState) {
                            if (Array.isArray(y)) {
                                states = y.slice(1).concat(yRev.slice(1));
                            } else { }
                            y = y[0];
                            yRev = yRev[0];
                        }
                        if (this.returnSequences) {
                            yRev = tfc.reverse(yRev, 1);
                        }
                        let output;
                        if (this.mergeMode === 'concat') {
                            output = K.concatenate([y, yRev]);
                        } else if (this.mergeMode === 'sum') {
                            output = tfc.add(y, yRev);
                        } else if (this.mergeMode === 'ave') {
                            output = tfc.mul(.5, tfc.add(y, yRev));
                        } else if (this.mergeMode === 'mul') {
                            output = tfc.mul(y, yRev);
                        } else if (this.mergeMode == null) {
                            output = [y, yRev];
                        }
                        // TODO(cais): Properly set learning phase.
                        if (this.returnState) {
                            if (this.mergeMode == null) {
                                return output.concat(states);
                            }
                            return [output].concat(states);
                        }
                        return output;
                    }
                    );
            }
            resetStates(states) {
                this.forwardLayer.resetStates();
                this.backwardLayer.resetStates();
            }
            build(inputShape) {
                (0,
                    _common.nameScope)(this.forwardLayer.name, () => {
                        this.forwardLayer.build(inputShape);
                    }
                    );
                (0,
                    _common.nameScope)(this.backwardLayer.name, () => {
                        this.backwardLayer.build(inputShape);
                    }
                    );
                this.built = true;
            }
            computeMask(inputs, mask) {
                if (Array.isArray(mask)) {
                    mask = mask[0];
                }
                let outputMask;
                if (this.returnSequences) {
                    if (this.mergeMode == null) {
                        outputMask = [mask, mask];
                    } else {
                        outputMask = mask;
                    }
                } else {
                    if (this.mergeMode == null) {
                        outputMask = [null, null];
                    } else {
                        outputMask = null;
                    }
                }
                if (this.returnState) {
                    const states = this.forwardLayer.states;
                    const stateMask = states.map(state => null);
                    if (Array.isArray(outputMask)) {
                        return outputMask.concat(stateMask).concat(stateMask);
                    } else {
                        return [outputMask].concat(stateMask).concat(stateMask);
                    }
                } else {
                    return outputMask;
                }
            }
            get trainableWeights() {
                return this.forwardLayer.trainableWeights.concat(this.backwardLayer.trainableWeights);
            }
            get nonTrainableWeights() {
                return this.forwardLayer.nonTrainableWeights.concat(this.backwardLayer.nonTrainableWeights);
            }
            // TODO(cais): Implement constraints().
            setFastWeightInitDuringBuild(value) {
                super.setFastWeightInitDuringBuild(value);
                if (this.forwardLayer != null) {
                    this.forwardLayer.setFastWeightInitDuringBuild(value);
                }
                if (this.backwardLayer != null) {
                    this.backwardLayer.setFastWeightInitDuringBuild(value);
                }
            }
            getConfig() {
                const config = {
                    'mergeMode': this.mergeMode
                };
                // TODO(cais): Add logic for `numConstants` once the property is added.
                const baseConfig = super.getConfig();
                Object.assign(config, baseConfig);
                return config;
            }
            /** @nocollapse */
            static fromConfig(cls, config) {
                const rnnLayer = (0,
                    _serialization.deserialize)(config['layer']);
                delete config['layer'];
                // TODO(cais): Add logic for `numConstants` once the property is added.
                if (config['numConstants'] != null) {
                    throw new _errors.NotImplementedError(`Deserialization of a Bidirectional layer with numConstants ` + `present is not supported yet.`);
                }
                // tslint:disable-next-line:no-any
                const newConfig = config;
                newConfig['layer'] = rnnLayer;
                return new cls(newConfig);
            }
        }
        /** @nocollapse */
        exports.Bidirectional = Bidirectional;
        Bidirectional.className = 'Bidirectional';
        tfc.serialization.registerClass(Bidirectional);

    }
        , {
        "../backend/tfjs_backend": 516,
        "../common": 519,
        "../engine/topology": 524,
        "../errors": 529,
        "../keras_format/common": 540,
        "../utils/generic_utils": 570,
        "../utils/types_utils": 574,
        "./recurrent": 558,
        "./serialization": 559,
        "@tensorflow/tfjs-core": 506
    }],
    561: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.disposeTensorsInLogs = disposeTensorsInLogs;
        exports.resolveScalarsInLogs = resolveScalarsInLogs;
        var _tfjsCore = require("@tensorflow/tfjs-core");
        /**
         * @license
         * Copyright 2018 Google LLC
         *
         * Use of this source code is governed by an MIT-style
         * license that can be found in the LICENSE file or at
         * https://opensource.org/licenses/MIT.
         * =============================================================================
         */

        /**
         * Turn any Scalar values in a Logs object into actual number values.
         *
         * @param logs The `Logs` object to be resolved in place.
         */
        async function resolveScalarsInLogs(logs) {
            if (logs == null) {
                return;
            }
            const promises = [];
            const keys = [];
            const scalarsToDispose = [];
            for (const key in logs) {
                const value = logs[key];
                if (typeof value !== 'number') {
                    const valueScalar = value;
                    promises.push(valueScalar.data());
                    keys.push(key);
                    scalarsToDispose.push(valueScalar);
                }
            }
            if (promises.length > 0) {
                const values = await Promise.all(promises);
                for (let i = 0; i < values.length; ++i) {
                    logs[keys[i]] = values[i][0];
                }
                // Dispose the original scalar tensors.
                (0,
                    _tfjsCore.dispose)(scalarsToDispose);
            }
        }
        /**
         * Dispose all Tensors in an UnresolvedLogs object.
         *
         * @param logs An `UnresolvedLogs` object potentially containing `tf.Tensor`s in
         *   places where the values can be `tf.Tensor` or `number`.
         */
        function disposeTensorsInLogs(logs) {
            if (logs == null) {
                return;
            }
            for (const key in logs) {
                const value = logs[key];
                if (typeof value !== 'number') {
                    value.dispose();
                }
            }
        }

    }
        , {
        "@tensorflow/tfjs-core": 506
    }],
    562: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.MSLE = exports.MSE = exports.MAPE = exports.MAE = exports.KLD = void 0;
        exports.binaryCrossentropy = binaryCrossentropy;
        exports.categoricalCrossentropy = categoricalCrossentropy;
        exports.categoricalHinge = categoricalHinge;
        exports.cosine = void 0;
        exports.cosineProximity = cosineProximity;
        exports.get = get;
        exports.hinge = hinge;
        exports.kld = void 0;
        exports.kullbackLeiblerDivergence = kullbackLeiblerDivergence;
        exports.l2Normalize = l2Normalize;
        exports.logcosh = logcosh;
        exports.mape = exports.mae = exports.lossesMap = void 0;
        exports.meanAbsoluteError = meanAbsoluteError;
        exports.meanAbsolutePercentageError = meanAbsolutePercentageError;
        exports.meanSquaredError = meanSquaredError;
        exports.meanSquaredLogarithmicError = meanSquaredLogarithmicError;
        exports.msle = exports.mse = void 0;
        exports.poisson = poisson;
        exports.sigmoidCrossEntropyWithLogits = sigmoidCrossEntropyWithLogits;
        exports.sparseCategoricalCrossentropy = sparseCategoricalCrossentropy;
        exports.squaredHinge = squaredHinge;
        var tfc = _interopRequireWildcard(require("@tensorflow/tfjs-core"));
        var _common = require("./backend/common");
        var K = _interopRequireWildcard(require("./backend/tfjs_backend"));
        var _errors = require("./errors");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2018 Google LLC
         *
         * Use of this source code is governed by an MIT-style
         * license that can be found in the LICENSE file or at
         * https://opensource.org/licenses/MIT.
         * =============================================================================
         */
        /* Original Source: losses.py */

        /**
         * Normalizes a tensor wrt the L2 norm alongside the specified axis.
         * @param x
         * @param axis Axis along which to perform normalization.
         */
        function l2Normalize(x, axis) {
            return (0,
                tfc.tidy)(() => {
                    if (x.dtype !== 'float32') {
                        x = tfc.cast(x, 'float32');
                    }
                    const squareSum = tfc.sum(K.square(x), axis, true);
                    const epsilonTensor = tfc.fill(squareSum.shape, (0,
                        _common.epsilon)());
                    const norm = tfc.sqrt(tfc.maximum(squareSum, epsilonTensor));
                    return tfc.div(x, norm);
                }
                );
        }
        function meanSquaredError(yTrue, yPred) {
            return (0,
                tfc.tidy)(() => tfc.mean(K.square(tfc.sub(yPred, yTrue)), -1));
        }
        function meanAbsoluteError(yTrue, yPred) {
            return (0,
                tfc.tidy)(() => tfc.mean(tfc.abs(tfc.sub(yPred, yTrue)), -1));
        }
        function meanAbsolutePercentageError(yTrue, yPred) {
            return (0,
                tfc.tidy)(() => {
                    const diff = tfc.sub(yTrue, yPred);
                    const clippedTrue = tfc.clipByValue(tfc.abs(yTrue), (0,
                        _common.epsilon)(), Number.MAX_VALUE);
                    const absResult = tfc.abs(tfc.div(diff, clippedTrue));
                    return tfc.mul(100, tfc.mean(absResult, -1));
                }
                );
        }
        function meanSquaredLogarithmicError(yTrue, yPred) {
            return (0,
                tfc.tidy)(() => {
                    const clippedPred = tfc.clipByValue(yPred, (0,
                        _common.epsilon)(), Number.MAX_VALUE);
                    const firstLog = tfc.log(tfc.add(1, clippedPred));
                    const clippedTrue = tfc.clipByValue(yTrue, (0,
                        _common.epsilon)(), Number.MAX_VALUE);
                    const secondLog = tfc.log(tfc.add(1, clippedTrue));
                    return tfc.mean(K.square(tfc.sub(firstLog, secondLog)), -1);
                }
                );
        }
        function squaredHinge(yTrue, yPred) {
            return (0,
                tfc.tidy)(() => {
                    const maxResult = tfc.maximum(0, tfc.sub(1, tfc.mul(yTrue, yPred)));
                    return tfc.mean(K.square(maxResult), -1);
                }
                );
        }
        function hinge(yTrue, yPred) {
            return (0,
                tfc.tidy)(() => {
                    const maxResult = tfc.maximum(0, tfc.sub(1, tfc.mul(yTrue, yPred)));
                    return tfc.mean(maxResult, -1);
                }
                );
        }
        function categoricalHinge(yTrue, yPred) {
            return (0,
                tfc.tidy)(() => {
                    const pos = tfc.sum(tfc.mul(yTrue, yPred), -1);
                    const neg = tfc.max(tfc.mul(tfc.sub(1, yTrue), yPred), -1);
                    return tfc.maximum(0, tfc.add(1, tfc.sub(neg, pos)));
                }
                );
        }
        /**
         * Logarithm of the hyperbolic cosine of the prediction error.
         *
         * `log(cosh(x))` is approximately equal to `(x ** 2) / 2` for small `x` and
         * to `abs(x) - log(2)` for large `x`. This means that 'logcosh' works mostly
         * like the mean squared error, but will not be so strongly affected by the
         * occasional wildly incorrect prediction.
         */
        function logcosh(yTrue, yPred) {
            return (0,
                tfc.tidy)(() => {
                    const log2 = Math.log(2);
                    const predictionDiff = tfc.sub(yPred, yTrue);
                    const logcoshResult = tfc.sub(tfc.add(predictionDiff, tfc.softplus(tfc.mul(-2, predictionDiff))), log2);
                    return tfc.mean(logcoshResult, -1);
                }
                );
        }
        function categoricalCrossentropy(target, output, fromLogits = false) {
            return (0,
                tfc.tidy)(() => {
                    if (fromLogits) {
                        output = tfc.softmax(output);
                    } else {
                        // scale preds so that the class probabilities of each sample sum to 1.
                        const outputSum = tfc.sum(output, output.shape.length - 1, true);
                        output = tfc.div(output, outputSum);
                    }
                    output = tfc.clipByValue(output, (0,
                        _common.epsilon)(), 1 - (0,
                            _common.epsilon)());
                    return tfc.neg(tfc.sum(tfc.mul(tfc.cast(target, 'float32'), tfc.log(output)), output.shape.length - 1));
                }
                );
        }
        /**
         * Categorical crossentropy with integer targets.
         *
         * @param target An integer tensor.
         * @param output A tensor resulting from a softmax (unless `fromLogits` is
         *  `true`, in which case `output` is expected to be the logits).
         * @param fromLogits Boolean, whether `output` is the result of a softmax, or is
         *   a tensor of logits.
         */
        function sparseCategoricalCrossentropy(target, output, fromLogits = false) {
            return (0,
                tfc.tidy)(() => {
                    const flatTarget = tfc.cast(tfc.floor(K.flatten(target)), 'int32');
                    output = tfc.clipByValue(output, (0,
                        _common.epsilon)(), 1 - (0,
                            _common.epsilon)());
                    const outputShape = output.shape;
                    const oneHotTarget = tfc.reshape(tfc.oneHot(flatTarget, outputShape[outputShape.length - 1]), outputShape);
                    return categoricalCrossentropy(oneHotTarget, output, fromLogits);
                }
                );
        }
        /**
         * From TensorFlow's implementation in nn_impl.py:
         *
         * For brevity, let `x = logits`, `z = labels`.  The logistic loss is
         *      z * -log(sigmoid(x)) + (1 - z) * -log(1 - sigmoid(x))
         *    = z * -log(1 / (1 + exp(-x))) + (1 - z) * -log(exp(-x) / (1 + exp(-x)))
         *    = z * log(1 + exp(-x)) + (1 - z) * (-log(exp(-x)) + log(1 + exp(-x)))
         *    = z * log(1 + exp(-x)) + (1 - z) * (x + log(1 + exp(-x))
         *    = (1 - z) * x + log(1 + exp(-x))
         *    = x - x * z + log(1 + exp(-x))
         * For x < 0, to avoid overflow in exp(-x), we reformulate the above
         *      x - x * z + log(1 + exp(-x))
         *    = log(exp(x)) - x * z + log(1 + exp(-x))
         *    = - x * z + log(1 + exp(x))
         * Hence, to ensure stability and avoid overflow, the implementation uses this
         * equivalent formulation
         *    max(x, 0) - x * z + log(1 + exp(-abs(x)))
         *
         * @param labels The labels.
         * @param logits The logits.
         */
        function sigmoidCrossEntropyWithLogits(labels, logits) {
            if (!tfc.util.arraysEqual(labels.shape, logits.shape)) {
                throw new _errors.ValueError(`logits and labels must have the same shape, but got shapes ` + `${JSON.stringify(labels.shape)} and ${JSON.stringify(logits.shape)}`);
            }
            return (0,
                tfc.tidy)(() => {
                    // The logistic loss formula from above is
                    //   x - x * z + log(1 + exp(-x))
                    // For x < 0, a more numerically stable formula is
                    //   -x * z + log(1 + exp(x))
                    // Note that these two expressions can be combined into the following:
                    //   max(x, 0) - x * z + log(1 + exp(-abs(x)))
                    const reluLogits = tfc.relu(logits);
                    const negAbsLogits = tfc.neg(tfc.abs(logits));
                    return tfc.add(tfc.sub(reluLogits, tfc.mul(logits, labels)), tfc.log1p(tfc.exp(negAbsLogits)));
                }
                );
        }
        function binaryCrossentropy(yTrue, yPred) {
            return (0,
                tfc.tidy)(() => {
                    let y;
                    y = tfc.clipByValue(yPred, (0,
                        _common.epsilon)(), 1 - (0,
                            _common.epsilon)());
                    y = tfc.log(tfc.div(y, tfc.sub(1, y)));
                    return tfc.mean(sigmoidCrossEntropyWithLogits(yTrue, y), -1);
                }
                );
        }
        function kullbackLeiblerDivergence(yTrue, yPred) {
            return (0,
                tfc.tidy)(() => {
                    const clippedTrue = tfc.clipByValue(yTrue, (0,
                        _common.epsilon)(), 1);
                    const clippedPred = tfc.clipByValue(yPred, (0,
                        _common.epsilon)(), 1);
                    return tfc.sum(tfc.mul(yTrue, tfc.log(tfc.div(clippedTrue, clippedPred))), -1);
                }
                );
        }
        function poisson(yTrue, yPred) {
            return (0,
                tfc.tidy)(() => {
                    const logPred = tfc.log(tfc.add((0,
                        _common.epsilon)(), yPred));
                    return tfc.mean(tfc.sub(yPred, tfc.mul(yTrue, logPred)), -1);
                }
                );
        }
        function cosineProximity(yTrue, yPred) {
            return (0,
                tfc.tidy)(() => {
                    const trueNormalized = l2Normalize(yTrue, -1);
                    const predNormalized = l2Normalize(yPred, -1);
                    const trueXPred = tfc.mul(trueNormalized, predNormalized);
                    return tfc.neg(tfc.sum(trueXPred, -1));
                }
                );
        }
        const mse = meanSquaredError;
        exports.mse = mse;
        const MSE = meanSquaredError;
        exports.MSE = MSE;
        const mae = meanAbsoluteError;
        exports.mae = mae;
        const MAE = meanAbsoluteError;
        exports.MAE = MAE;
        const mape = meanAbsolutePercentageError;
        exports.mape = mape;
        const MAPE = meanAbsolutePercentageError;
        exports.MAPE = MAPE;
        const msle = meanSquaredLogarithmicError;
        exports.msle = msle;
        const MSLE = meanSquaredLogarithmicError;
        exports.MSLE = MSLE;
        const kld = kullbackLeiblerDivergence;
        exports.kld = kld;
        const KLD = kullbackLeiblerDivergence;
        exports.KLD = KLD;
        const cosine = cosineProximity;
        // TODO(michaelterry): Add deserialize() function.
        exports.cosine = cosine;
        const lossesMap = {
            meanSquaredError,
            meanAbsoluteError,
            meanAbsolutePercentageError,
            meanSquaredLogarithmicError,
            squaredHinge,
            hinge,
            categoricalHinge,
            logcosh,
            categoricalCrossentropy,
            sparseCategoricalCrossentropy,
            binaryCrossentropy,
            kullbackLeiblerDivergence,
            poisson,
            cosineProximity
        };
        // Porting note: This diverges from the PyKeras implementation and may need to
        // change based on (de)serialization requirements.
        exports.lossesMap = lossesMap;
        function get(identifierOrFn) {
            if (typeof identifierOrFn === 'string') {
                if (identifierOrFn in lossesMap) {
                    return lossesMap[identifierOrFn];
                }
                let errMsg = `Unknown loss ${identifierOrFn}`;
                if (identifierOrFn.toLowerCase().includes('softmaxcrossentropy')) {
                    errMsg = `Unknown loss ${identifierOrFn}. ` + 'Use "categoricalCrossentropy" as the string name for ' + 'tf.losses.softmaxCrossEntropy';
                }
                throw new _errors.ValueError(errMsg);
            } else {
                return identifierOrFn;
            }
        }

    }
        , {
        "./backend/common": 514,
        "./backend/tfjs_backend": 516,
        "./errors": 529,
        "@tensorflow/tfjs-core": 506
    }],
    563: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.MSE = exports.MAPE = exports.MAE = void 0;
        exports.binaryAccuracy = binaryAccuracy;
        exports.binaryCrossentropy = binaryCrossentropy;
        exports.categoricalAccuracy = categoricalAccuracy;
        exports.cosine = exports.categoricalCrossentropy = void 0;
        exports.get = get;
        exports.getLossOrMetricName = getLossOrMetricName;
        exports.mse = exports.metricsMap = exports.mape = exports.mae = void 0;
        exports.precision = precision;
        exports.recall = recall;
        exports.sparseCategoricalAccuracy = sparseCategoricalAccuracy;
        exports.sparseCategoricalCrossentropy = void 0;
        exports.sparseTopKCategoricalAccuracy = sparseTopKCategoricalAccuracy;
        exports.topKCategoricalAccuracy = topKCategoricalAccuracy;
        var tfc = _interopRequireWildcard(require("@tensorflow/tfjs-core"));
        var K = _interopRequireWildcard(require("./backend/tfjs_backend"));
        var _errors = require("./errors");
        var _losses = require("./losses");
        var util = _interopRequireWildcard(require("./utils/generic_utils"));
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2018 Google LLC
         *
         * Use of this source code is governed by an MIT-style
         * license that can be found in the LICENSE file or at
         * https://opensource.org/licenses/MIT.
         * =============================================================================
         */
        /**
         * Built-in metrics.
         */

        function binaryAccuracy(yTrue, yPred) {
            return (0,
                tfc.tidy)(() => {
                    const threshold = tfc.mul(.5, tfc.onesLike(yPred));
                    const yPredThresholded = K.cast(tfc.greater(yPred, threshold), yTrue.dtype);
                    return tfc.mean(tfc.equal(yTrue, yPredThresholded), -1);
                }
                );
        }
        function categoricalAccuracy(yTrue, yPred) {
            return (0,
                tfc.tidy)(() => K.cast(tfc.equal(tfc.argMax(yTrue, -1), tfc.argMax(yPred, -1)), 'float32'));
        }
        function truePositives(yTrue, yPred) {
            return (0,
                tfc.tidy)(() => {
                    return tfc.cast(tfc.sum(tfc.logicalAnd(tfc.equal(yTrue, 1), tfc.equal(yPred, 1))), 'float32');
                }
                );
        }
        function falseNegatives(yTrue, yPred) {
            return (0,
                tfc.tidy)(() => {
                    return tfc.cast(tfc.sum(tfc.logicalAnd(tfc.equal(yTrue, 1), tfc.equal(yPred, 0))), 'float32');
                }
                );
        }
        function falsePositives(yTrue, yPred) {
            return (0,
                tfc.tidy)(() => {
                    return tfc.cast(tfc.sum(tfc.logicalAnd(tfc.equal(yTrue, 0), tfc.equal(yPred, 1))), 'float32');
                }
                );
        }
        function precision(yTrue, yPred) {
            return (0,
                tfc.tidy)(() => {
                    const tp = truePositives(yTrue, yPred);
                    const fp = falsePositives(yTrue, yPred);
                    const denominator = tfc.add(tp, fp);
                    return tfc.cast(tfc.where(tfc.greater(denominator, 0), tfc.div(tp, denominator), 0), 'float32');
                }
                );
        }
        function recall(yTrue, yPred) {
            return (0,
                tfc.tidy)(() => {
                    const tp = truePositives(yTrue, yPred);
                    const fn = falseNegatives(yTrue, yPred);
                    const denominator = tfc.add(tp, fn);
                    return tfc.cast(tfc.where(tfc.greater(denominator, 0), tfc.div(tp, denominator), 0), 'float32');
                }
                );
        }
        function binaryCrossentropy(yTrue, yPred) {
            return (0,
                _losses.binaryCrossentropy)(yTrue, yPred);
        }
        function sparseCategoricalAccuracy(yTrue, yPred) {
            if (yTrue.rank === yPred.rank) {
                yTrue = tfc.squeeze(yTrue, [yTrue.rank - 1]);
            }
            yPred = tfc.argMax(yPred, -1);
            if (yPred.dtype !== yTrue.dtype) {
                yPred = tfc.cast(yPred, yTrue.dtype);
            }
            return tfc.cast(tfc.equal(yTrue, yPred), 'float32');
        }
        function topKCategoricalAccuracy(yTrue, yPred) {
            throw new _errors.NotImplementedError();
        }
        function sparseTopKCategoricalAccuracy(yTrue, yPred) {
            throw new _errors.NotImplementedError();
        }
        // Aliases.
        const mse = _losses.meanSquaredError;
        exports.mse = mse;
        const MSE = _losses.meanSquaredError;
        exports.MSE = MSE;
        const mae = _losses.meanAbsoluteError;
        exports.mae = mae;
        const MAE = _losses.meanAbsoluteError;
        exports.MAE = MAE;
        const mape = _losses.meanAbsolutePercentageError;
        exports.mape = mape;
        const MAPE = _losses.meanAbsolutePercentageError;
        exports.MAPE = MAPE;
        const categoricalCrossentropy = _losses.categoricalCrossentropy;
        exports.categoricalCrossentropy = categoricalCrossentropy;
        const cosine = _losses.cosineProximity;
        exports.cosine = cosine;
        const sparseCategoricalCrossentropy = _losses.sparseCategoricalCrossentropy;
        // TODO(cais, nielsene): Add serialize().
        exports.sparseCategoricalCrossentropy = sparseCategoricalCrossentropy;
        const metricsMap = {
            binaryAccuracy,
            categoricalAccuracy,
            precision,
            categoricalCrossentropy,
            sparseCategoricalCrossentropy,
            mse,
            MSE,
            mae,
            MAE,
            mape,
            MAPE,
            cosine
        };
        exports.metricsMap = metricsMap;
        function get(identifier) {
            if (typeof identifier === 'string' && identifier in metricsMap) {
                return metricsMap[identifier];
            } else if (typeof identifier !== 'string' && identifier != null) {
                return identifier;
            } else {
                throw new _errors.ValueError(`Unknown metric ${identifier}`);
            }
        }
        /**
         * Get the shortcut function name.
         *
         * If the fn name is a string,
         *   directly return the string name.
         * If the function is included in metricsMap or lossesMap,
         *   return key of the map.
         *   - If the function relative to multiple keys,
         *     return the first found key as the function name.
         *   - If the function exists in both lossesMap and metricsMap,
         *     search lossesMap first.
         * If the function is not included in metricsMap or lossesMap,
         *   return the function name.
         *
         * @param fn loss function, metric function, or short cut name.
         * @returns Loss or Metric name in string.
         */
        function getLossOrMetricName(fn) {
            util.assert(fn !== null, `Unknown LossOrMetricFn ${fn}`);
            if (typeof fn === 'string') {
                return fn;
            } else {
                let fnName;
                for (const key of Object.keys(_losses.lossesMap)) {
                    if (_losses.lossesMap[key] === fn) {
                        fnName = key;
                        break;
                    }
                }
                if (fnName !== undefined) {
                    return fnName;
                }
                for (const key of Object.keys(metricsMap)) {
                    if (metricsMap[key] === fn) {
                        fnName = key;
                        break;
                    }
                }
                if (fnName !== undefined) {
                    return fnName;
                }
                return fn.name;
            }
        }

    }
        , {
        "./backend/tfjs_backend": 516,
        "./errors": 529,
        "./losses": 562,
        "./utils/generic_utils": 570,
        "@tensorflow/tfjs-core": 506
    }],
    564: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.Sequential = void 0;
        exports.loadLayersModel = loadLayersModel;
        exports.loadLayersModelFromIOHandler = loadLayersModelFromIOHandler;
        exports.modelFromJSON = modelFromJSON;
        var _tfjsCore = require("@tensorflow/tfjs-core");
        var _state = require("./backend/state");
        var _input_layer = require("./engine/input_layer");
        var _topology = require("./engine/topology");
        var _training = require("./engine/training");
        var _errors = require("./errors");
        var _serialization = require("./layers/serialization");
        var generic_utils = _interopRequireWildcard(require("./utils/generic_utils"));
        var _serialization_utils = require("./utils/serialization_utils");
        var _types_utils = require("./utils/types_utils");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2018 Google LLC
         *
         * Use of this source code is governed by an MIT-style
         * license that can be found in the LICENSE file or at
         * https://opensource.org/licenses/MIT.
         * =============================================================================
         */
        /* Original source keras/models.py */

        /**
         * Parses a JSON model configuration file and returns a model instance.
         *
         * ```js
         * // This example shows how to serialize a model using `toJSON()` and
         * // deserialize it as another model using `tf.models.modelFromJSON()`.
         * // Note: this example serializes and deserializes only the topology
         * // of the model; the weights of the loaded model will be different
         * // from those of the the original model, due to random weight
         * // initialization.
         * // To load the topology and weights of a model, use `tf.loadLayersModel()`.
         * const model1 = tf.sequential();
         * model1.add(tf.layers.repeatVector({inputShape: [2], n: 4}));
         * // Serialize `model1` as a JSON object.
         * const model1JSON = model1.toJSON(null, false);
         * model1.summary();
         *
         * const model2 = await tf.models.modelFromJSON(model1JSON);
         * model2.summary();
         * ```
         *
         *  @param modelAndWeightsConfig JSON object or string encoding a model and
         *       weights configuration. It can also be only the topology JSON of the
         *       model, in which case the weights will not be loaded.
         *  @param custom_objects Optional dictionary mapping names
         *       (strings) to custom classes or functions to be
         *       considered during deserialization.
         * @returns A TensorFlow.js Layers `tf.LayersModel` instance (uncompiled).
         */
        async function modelFromJSON(modelAndWeightsConfig, customObjects) {
            if (!('modelTopology' in modelAndWeightsConfig)) {
                modelAndWeightsConfig = {
                    modelTopology: modelAndWeightsConfig
                };
            }
            modelAndWeightsConfig = modelAndWeightsConfig;
            let modelTopology = modelAndWeightsConfig.modelTopology;
            if (modelTopology['model_config'] != null) {
                // If the model-topology JSON contains a 'model_config' field, then it is
                // a full model JSON (e.g., from `keras.Model.save()`), which contains
                // not only the model's architecture in its 'model_config' field, but
                // additional information such as the model's optimizer. We use only the
                // 'model_config' field currently.
                modelTopology = modelTopology['model_config'];
            }
            const tsConfig = (0,
                _serialization_utils.convertPythonicToTs)(modelTopology);
            const model = (0,
                _serialization.deserialize)(tsConfig, customObjects);
            if (modelAndWeightsConfig.weightsManifest != null) {
                // Load the weight values keyed by the original tensor names in the model
                // file that was loaded.  These should match the keys of the weight
                // manifest.
                const weightValues = await _tfjsCore.io.loadWeights(modelAndWeightsConfig.weightsManifest, modelAndWeightsConfig.pathPrefix, model.weights.map(weight => weight.originalName));
                // Map the weights to the unique tensor names generated during model loading
                const uniqueWeightValues = {};
                for (const weight of model.weights) {
                    uniqueWeightValues[weight.originalName] = weightValues[weight.originalName];
                }
                model.loadWeights(uniqueWeightValues);
                // Dispose temporary weight values.
                (0,
                    _tfjsCore.dispose)(weightValues);
            }
            return model;
        }
        /**
         * Load a model composed of Layer objects, including its topology and optionally
         * weights. See the Tutorial named "How to import a Keras Model" for usage
         * examples.
         *
         * This method is applicable to:
         *
         * 1. Models created with the `tf.layers.*`, `tf.sequential`, and
         * `tf.model` APIs of TensorFlow.js and later saved with the
         * `tf.LayersModel.save` method.
         * 2. Models converted from Keras or TensorFlow tf.keras using the
         * [tensorflowjs_converter](https://github.com/tensorflow/tfjs/tree/master/tfjs-converter).
         *
         * This mode is *not* applicable to TensorFlow `SavedModel`s or their converted
         * forms. For those models, use `tf.loadGraphModel`.
         *
         * Example 1. Load a model from an HTTP server.
         *
         * ```js
         * const model = await tf.loadLayersModel(
         *     'https://storage.googleapis.com/tfjs-models/tfjs/iris_v1/model.json');
         * model.summary();
         * ```
         *
         * Example 2: Save `model`'s topology and weights to browser [local
         * storage](https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage);
         * then load it back.
         *
         * ```js
         * const model = tf.sequential(
         *     {layers: [tf.layers.dense({units: 1, inputShape: [3]})]});
         * console.log('Prediction from original model:');
         * model.predict(tf.ones([1, 3])).print();
         *
         * const saveResults = await model.save('localstorage://my-model-1');
         *
         * const loadedModel = await tf.loadLayersModel('localstorage://my-model-1');
         * console.log('Prediction from loaded model:');
         * loadedModel.predict(tf.ones([1, 3])).print();
         * ```
         *
         * Example 3. Saving `model`'s topology and weights to browser
         * [IndexedDB](https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API);
         * then load it back.
         *
         * ```js
         * const model = tf.sequential(
         *     {layers: [tf.layers.dense({units: 1, inputShape: [3]})]});
         * console.log('Prediction from original model:');
         * model.predict(tf.ones([1, 3])).print();
         *
         * const saveResults = await model.save('indexeddb://my-model-1');
         *
         * const loadedModel = await tf.loadLayersModel('indexeddb://my-model-1');
         * console.log('Prediction from loaded model:');
         * loadedModel.predict(tf.ones([1, 3])).print();
         * ```
         *
         * Example 4. Load a model from user-selected files from HTML
         * [file input
         * elements](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file).
         *
         * ```js
         * // Note: this code snippet will not work without the HTML elements in the
         * //   page
         * const jsonUpload = document.getElementById('json-upload');
         * const weightsUpload = document.getElementById('weights-upload');
         *
         * const model = await tf.loadLayersModel(
         *     tf.io.browserFiles([jsonUpload.files[0], weightsUpload.files[0]]));
         * ```
         *
         * @param pathOrIOHandler Can be either of the two formats
         *   1. A string path to the `ModelAndWeightsConfig` JSON describing
         *      the model in the canonical TensorFlow.js format. For file://
         *      (tfjs-node-only), http:// and https:// schemas, the path can be
         *      either absolute or relative. The content of the JSON file is assumed to
         *      be a JSON object with the following fields and values:
         *      - 'modelTopology': A JSON object that can be either of:
         *        1. a model architecture JSON consistent with the format of the return
         *            value of `keras.Model.to_json()`
         *        2. a full model JSON in the format of `keras.models.save_model()`.
         *      - 'weightsManifest': A TensorFlow.js weights manifest.
         *      See the Python converter function `save_model()` for more details.
         *      It is also assumed that model weights can be accessed from relative
         *      paths described by the `paths` fields in weights manifest.
         *   2. A `tf.io.IOHandler` object that loads model artifacts with its `load`
         *      method.
         * @param options Optional configuration arguments for the model loading,
         *   including:
         *   - `strict`: Require that the provided weights exactly match those required
         *     by the layers.  Default true.  Passing false means that both extra
         *     weights and missing weights will be silently ignored.
         *   - `onProgress`: A progress callback of the form:
         *     `(fraction: number) => void`. This callback can be used to monitor the
         *     model-loading process.
         * @returns A `Promise` of `tf.LayersModel`, with the topology and weights
         *     loaded.
         *
         * @doc {heading: 'Models', subheading: 'Loading'}
         */
        async function loadLayersModel(pathOrIOHandler, options) {
            if (options == null) {
                options = {};
            }
            if (typeof pathOrIOHandler === 'string') {
                const handlers = _tfjsCore.io.getLoadHandlers(pathOrIOHandler, options);
                if (handlers.length === 0) {
                    // For backward compatibility: if no load handler can be found,
                    // assume it is a relative http path.
                    // TODO(cais): Reformat the args into a single `LoadOptions` once the core
                    // is refactored.
                    handlers.push(_tfjsCore.io.browserHTTPRequest(pathOrIOHandler, options));
                } else if (handlers.length > 1) {
                    throw new _errors.ValueError(`Found more than one (${handlers.length}) load handlers for ` + `URL '${pathOrIOHandler}'`);
                }
                pathOrIOHandler = handlers[0];
            }
            return loadLayersModelFromIOHandler(pathOrIOHandler, undefined, options);
        }
        /**
         * Load a model and optionally its weights, using an IOHandler object.
         *
         * @param handler The instance of `IOHandler` to be used during the model
         *   loading.
         * @param customObjects Any optional custom objects to be used during model
         *   loading.
         * @param strict Whether the weight loading will be done in strict mode.
         *   Default: `true`.
         */
        async function loadLayersModelFromIOHandler(handler, customObjects, options) {
            if (options == null) {
                options = {};
            }
            if (handler.load == null) {
                throw new _errors.ValueError('Cannot proceed with model loading because the IOHandler provided ' + 'does not have the `load` method implemented.');
            }
            const artifacts = await handler.load();
            let modelTopology = artifacts.modelTopology;
            if (modelTopology['model_config'] != null) {
                modelTopology = modelTopology['model_config'];
            }
            const strict = options.strict == null ? true : options.strict;
            // If weights are provided and the weight-loading mode is strict, use
            // fast weight initialization. This skips costly initializers such as
            // 'orthogonal' and saves unnecessary computation in cases where
            // the initialized weight values will immediately be overwritten by
            // loaded weight values.
            const fastWeightInit = artifacts.weightData != null && artifacts.weightSpecs != null && strict;
            const model = (0,
                _serialization.deserialize)((0,
                    _serialization_utils.convertPythonicToTs)(modelTopology), customObjects, fastWeightInit);
            const trainingConfig = artifacts.trainingConfig;
            if (trainingConfig != null) {
                model.loadTrainingConfig(trainingConfig);
            }
            if (artifacts.userDefinedMetadata != null) {
                model.setUserDefinedMetadata(artifacts.userDefinedMetadata);
            }
            // If weightData is present, load the weights into the model.
            if (artifacts.weightData != null) {
                // Loading weights requires weightSpecs.
                if (artifacts.weightSpecs == null) {
                    throw new _errors.ValueError('LayersModel artifacts contains weight data, but not weight specs. ' + 'Therefore loading of weights cannot proceed.');
                }
                const { modelWeights, optimizerWeights } = decodeModelAndOptimizerWeights(artifacts.weightData, artifacts.weightSpecs);
                model.loadWeights(modelWeights, strict);
                if (model.optimizer != null && optimizerWeights.length > 0) {
                    await model.optimizer.setWeights(optimizerWeights);
                }
                // Dispose temporary weight values.
                (0,
                    _tfjsCore.dispose)(modelWeights);
                (0,
                    _tfjsCore.dispose)(optimizerWeights.map(w => w.tensor));
            }
            return model;
        }
        function decodeModelAndOptimizerWeights(buffer, specs) {
            const name2Tensor = _tfjsCore.io.decodeWeights(buffer, specs);
            const modelWeights = {};
            const optimizerWeights = [];
            specs.forEach(spec => {
                if (spec.group === 'optimizer') {
                    optimizerWeights.push({
                        name: spec.name,
                        tensor: name2Tensor[spec.name]
                    });
                } else {
                    modelWeights[spec.name] = name2Tensor[spec.name];
                }
            }
            );
            return {
                modelWeights,
                optimizerWeights
            };
        }
        /**
         * A model with a stack of layers, feeding linearly from one to the next.
         *
         * `tf.sequential` is a factory function that creates an instance of
         * `tf.Sequential`.
         *
         * ```js
         *  // Define a model for linear regression.
         *  const model = tf.sequential();
         *  model.add(tf.layers.dense({units: 1, inputShape: [1]}));
         *
         *  // Prepare the model for training: Specify the loss and the optimizer.
         *  model.compile({loss: 'meanSquaredError', optimizer: 'sgd'});
         *
         *  // Generate some synthetic data for training.
         *  const xs = tf.tensor2d([1, 2, 3, 4], [4, 1]);
         *  const ys = tf.tensor2d([1, 3, 5, 7], [4, 1]);
         *
         *  // Train the model using the data then do inference on a data point the
         *  // model hasn't seen:
         *  await model.fit(xs, ys);
         *  model.predict(tf.tensor2d([5], [1, 1])).print();
         * ```
         *
         * @doc {heading: 'Models', subheading: 'Classes'}
         */
        class Sequential extends _training.LayersModel {
            constructor(args) {
                super({
                    inputs: [],
                    outputs: []
                });
                args = args || {};
                this.trainable = true;
                this.built = false;
                // Set model name.
                this.name = args.name != null ? args.name : (0,
                    _state.getUid)('sequential_');
                // Add to the model any layers passed to the constructor.
                if (args.layers != null) {
                    for (const layer of args.layers) {
                        this.add(layer);
                    }
                }
            }
            // Helper function to Sequential.add  Throws if the new output shape will be
            // invalid.
            checkShape(layer) {
                const shape = layer.inboundNodes[0].outputTensors[0].shape;
                if (shape.some(x => x < 0)) {
                    throw new _errors.ValueError('Negative dimension size caused by adding layer ' + `${layer.name} with input shape [` + `${layer.inboundNodes[0].inputTensors[0].shape}]`);
                }
            }
            /**
             * Adds a layer instance on top of the layer stack.
             *
             * ```js
             *  const model = tf.sequential();
             *  model.add(tf.layers.dense({units: 8, inputShape: [1]}));
             *  model.add(tf.layers.dense({units: 4, activation: 'relu6'}));
             *  model.add(tf.layers.dense({units: 1, activation: 'relu6'}));
             *  // Note that the untrained model is random at this point.
             *  model.predict(tf.randomNormal([10, 1])).print();
             * ```
             * @param layer Layer instance.
             *
             * @exception ValueError In case the `layer` argument does not know its
             * input shape.
             * @exception ValueError In case the `layer` argument has multiple output
             *   tensors, or is already connected somewhere else (forbidden in
             *   `Sequential` models).
             *
             * @doc {heading: 'Models', subheading: 'Classes'}
             */
            add(layer) {
                const isLayerModelInstance = layer instanceof Sequential || layer instanceof _training.LayersModel;
                let modelLayer;
                if (isLayerModelInstance) {
                    modelLayer = layer;
                    if (modelLayer.outputs.length !== 1) {
                        throw new _errors.ValueError('All layers in a Sequential model ' + 'should have a single output tensor. ' + 'For multi-output layers, ' + 'use the functional API.');
                    }
                    if (modelLayer.inputs.length !== 1) {
                        throw new _errors.ValueError('All layers in a Sequential model ' + 'should have a single input tensor. ' + 'For multi-input layers, ' + 'use the functional API.');
                    }
                }
                if (this.outputs.length === 0) {
                    // first layer in model: check that it is an input layer
                    if (layer.inboundNodes.length === 0) {
                        // create an input layer
                        if (layer.batchInputShape == null) {
                            throw new _errors.ValueError('The first layer in a Sequential model must ' + 'get an `inputShape` or `batchInputShape` argument.');
                        }
                        // Instantiate the input layer.
                        const x = (0,
                            _input_layer.Input)({
                                batchShape: layer.batchInputShape,
                                dtype: layer.dtype,
                                name: layer.name + '_input'
                            });
                        // This will build the current layer and create the node connecting
                        // the current layer to the input layer we just created.
                        layer.apply(x);
                    }
                    if (isLayerModelInstance) {
                        this.outputs = modelLayer.outputs;
                        this.inputs = modelLayer.inputs;
                    } else {
                        if (layer.inboundNodes.length !== 1) {
                            throw new _errors.ValueError('A layer added to a Sequential model must not already be ' + `connected somewhere else. LayersModel received layer ${layer.name} ` + `which has ${layer.inboundNodes.length} pre-existing inbound ` + 'connections.');
                        }
                        if (layer.inboundNodes[0].outputTensors.length !== 1) {
                            throw new _errors.ValueError('All layers in a Sequential model ' + 'should have a single output tensor. ' + 'For multi-output layers, ' + 'use the functional API.');
                        }
                        this.checkShape(layer);
                        this.outputs = [layer.inboundNodes[0].outputTensors[0]];
                        this.inputs = (0,
                            _topology.getSourceInputs)(this.outputs[0]);
                    }
                    this.inboundNodes = [];
                    // We create an input node, which we will keep updated
                    // as we add more layers.
                    // (This call has side effects.)
                    // tslint:disable-next-line:no-unused-expression
                    new _topology.Node({
                        outboundLayer: this,
                        inboundLayers: [],
                        nodeIndices: [],
                        tensorIndices: [],
                        inputTensors: this.inputs,
                        outputTensors: this.outputs,
                        // no model-level masking for now
                        inputMasks: generic_utils.pyListRepeat(null, this.inputs.length),
                        outputMasks: [null],
                        inputShapes: this.inputs.map(x => x.shape),
                        outputShapes: this.outputs[0].shape
                    });
                } else {
                    const outputTensor = layer.apply(this.outputs[0]);
                    if (Array.isArray(outputTensor)) {
                        throw new TypeError('All layers in a Sequential model ' + 'should have a single output tensor. ' + 'For multi-output layers, ' + 'use the functional API.');
                    }
                    this.checkShape(layer);
                    this.outputs = [outputTensor];
                    // update self.inbound_nodes
                    this.inboundNodes[0].outputTensors = this.outputs;
                    this.inboundNodes[0].outputShapes = [this.outputs[0].shape];
                }
                this.layers.push(layer);
                this.built = false;
            }
            /**
             * Removes the last layer in the model.
             *
             * @exception TypeError if there are no layers in the model.
             */
            pop() {
                if (this.layers.length === 0) {
                    throw new TypeError('There are no layers in the model.');
                }
                this.layers.pop();
                if (this.layers.length === 0) {
                    this.outputs = [];
                    this.inboundNodes = [];
                    this.outboundNodes = [];
                } else {
                    const lastLayerIndex = this.layers.length - 1;
                    this.layers[lastLayerIndex].outboundNodes = [];
                    this.outputs = [this.layers[lastLayerIndex].output];
                    // update self.inbound_nodes
                    this.inboundNodes[0].outputTensors = this.outputs;
                    this.inboundNodes[0].outputShapes = [this.outputs[0].shape];
                }
            }
            call(inputs, kwargs) {
                if (this.model == null) {
                    this.build();
                }
                return this.model.call(inputs, kwargs);
            }
            build(inputShape) {
                // Call `getExactlyOneShape` without using its return value,
                // to verify that exactly one input shape is provided.
                (0,
                    _types_utils.getExactlyOneShape)(inputShape);
                if (this.inputs.length === 0 || this.outputs.length === 0) {
                    throw new TypeError('Sequential model cannot be built: model is empty.' + ' Add some layers first.');
                }
                // actually create the model
                this.model = new _training.LayersModel({
                    inputs: this.inputs,
                    outputs: this.outputs[0],
                    name: this.name + '_model'
                });
                this.model.trainable = this.trainable;
                // mirror model attributes
                this.supportsMasking = this.model.supportsMasking;
                // TODO(michaelterry): Add caches
                this.inputLayers = this.model.inputLayers;
                this.inputLayersNodeIndices = this.model.inputLayersNodeIndices;
                this.inputLayersTensorIndices = this.model.inputLayersTensorIndices;
                this.outputLayers = this.model.outputLayers;
                this.outputLayersNodeIndices = this.model.outputLayersNodeIndices;
                this.outputLayersTensorIndices = this.model.outputLayersTensorIndices;
                this.nodesByDepth = this.model.nodesByDepth;
                this.containerNodes = this.model.containerNodes;
                this.outputNames = this.model.outputNames;
                this.inputNames = this.model.inputNames;
                // TODO(michaelterry): Add feedInputNames, feedInputs, if needed.
                // TODO(michaelterry): Add callbackModel if needed.
                this.built = true;
            }
            countParams() {
                if (!this.built) {
                    this.build();
                }
                return super.countParams();
            }
            /**
             * Print a text summary of the Sequential model's layers.
             *
             * The summary includes
             * - Name and type of all layers that comprise the model.
             * - Output shape(s) of the layers
             * - Number of weight parameters of each layer
             * - The total number of trainable and non-trainable parameters of the
             * model.
             *
             * ```js
             * const model = tf.sequential();
             * model.add(
             *     tf.layers.dense({units: 100, inputShape: [10], activation: 'relu'}));
             * model.add(tf.layers.dense({units: 1, activation: 'sigmoid'}));
             *
             * model.summary();
             * ```
             *
             * @param lineLength Custom line length, in number of characters.
             * @param positions Custom widths of each of the columns, as either
             *   fractions of `lineLength` (e.g., `[0.5, 0.75, 1]`) or absolute number
             *   of characters (e.g., `[30, 50, 65]`). Each number corresponds to
             *   right-most (i.e., ending) position of a column.
             * @param printFn Custom print function. Can be used to replace the default
             *   `console.log`. For example, you can use `x => {}` to mute the printed
             *   messages in the console.
             *
             * @doc {heading: 'Models', subheading: 'Classes'}
             */
            summary(lineLength, positions, printFn = console.log) {
                if (!this.built) {
                    this.build();
                }
                super.summary(lineLength, positions, printFn);
            }
            /**
             * Sets the weights of the model.
             *
             * @param weights Should be a list of Tensors with shapes and types matching
             *   the output of `model.getWeights()`.
             */
            setWeights(weights) {
                if (this.model == null) {
                    this.build();
                }
                this.model.setWeights(weights);
            }
            /**
             * Returns the loss value & metrics values for the model in test mode.
             *
             * Loss and metrics are specified during `compile()`, which needs to happen
             * before calls to `evaluate()`.
             *
             * Computation is done in batches.
             *
             * ```js
             * const model = tf.sequential({
             *   layers: [tf.layers.dense({units: 1, inputShape: [10]})]
             * });
             * model.compile({optimizer: 'sgd', loss: 'meanSquaredError'});
             * const result = model.evaluate(tf.ones([8, 10]), tf.ones([8, 1]), {
             *   batchSize: 4,
             * });
             * result.print();
             * ```
             *
             * @param x `tf.Tensor` of test data, or an `Array` of `tf.Tensor`s if the
             * model has multiple inputs.
             * @param y `tf.Tensor` of target data, or an `Array` of `tf.Tensor`s if the
             * model has multiple outputs.
             * @param args A `ModelEvaluateConfig`, containing optional fields.
             *
             * @return `Scalar` test loss (if the model has a single output and no
             *   metrics) or `Array` of `Scalar`s (if the model has multiple outputs
             *   and/or metrics). The attribute `model.metricsNames`
             *   will give you the display labels for the scalar outputs.
             *
             * @doc {heading: 'Models', subheading: 'Classes'}
             */
            evaluate(x, y, args = {}) {
                if (!this.built) {
                    throw new _errors.RuntimeError('The model needs to be compiled before being used.');
                }
                return this.model.evaluate(x, y, args);
            }
            // TODO(cais): Add code snippet below once real dataset objects are
            //   available.
            /**
             * Evaluate model using a dataset object.
             *
             * Note: Unlike `evaluate()`, this method is asynchronous (`async`).
             *
             * @param dataset A dataset object. Its `iterator()` method is expected
             *   to generate a dataset iterator object, the `next()` method of which
             *   is expected to produce data batches for evaluation. The return value
             *   of the `next()` call ought to contain a boolean `done` field and a
             *   `value` field. The `value` field is expected to be an array of two
             *   `tf.Tensor`s or an array of two nested `tf.Tensor` structures. The former
             *   case is for models with exactly one input and one output (e.g.
             *   a sequential model). The latter case is for models with multiple
             *   inputs and/or multiple outputs. Of the two items in the array, the
             *   first is the input feature(s) and the second is the output target(s).
             * @param args A configuration object for the dataset-based evaluation.
             * @returns Loss and metric values as an Array of `Scalar` objects.
             *
             * @doc {heading: 'Models', subheading: 'Classes'}
             */
            async evaluateDataset(dataset, args) {
                if (!this.built) {
                    throw new _errors.RuntimeError('The model needs to be compiled before being used.');
                }
                return this.model.evaluateDataset(dataset, args);
            }
            /**
             * Generates output predictions for the input samples.
             *
             * Computation is done in batches.
             *
             * Note: the "step" mode of predict() is currently not supported.
             *   This is because the TensorFlow.js core backend is imperative only.
             *
             * ```js
             * const model = tf.sequential({
             *   layers: [tf.layers.dense({units: 1, inputShape: [10]})]
             * });
             * model.predict(tf.ones([2, 10])).print();
             * ```
             *
             * @param x The input data, as a Tensor, or an `Array` of `tf.Tensor`s if
             *   the model has multiple inputs.
             * @param conifg A `ModelPredictConfig` object containing optional fields.
             *
             * @return `tf.Tensor`(s) of predictions.
             *
             * @exception ValueError In case of mismatch between the provided input data
             *   and the model's expectations, or in case a stateful model receives a
             *   number of samples that is not a multiple of the batch size.
             *
             * @doc {heading: 'Models', subheading: 'Classes'}
             */
            predict(x, args = {}) {
                if (this.model == null) {
                    this.build();
                }
                return this.model.predict(x, args);
            }
            /**
             * Returns predictions for a single batch of samples.
             *
             * @param x: Input samples, as a Tensor, or list of Tensors (if the model
             *   has multiple inputs).
             * @return Tensor(s) of predictions
             */
            predictOnBatch(x) {
                if (this.model == null) {
                    this.build();
                }
                return this.model.predictOnBatch(x);
            }
            /**
             * See `LayersModel.compile`.
             *
             * @param args
             */
            compile(args) {
                this.build();
                this.model.compile(args);
                this.optimizer_ = this.model.optimizer;
                // tslint:disable-next-line:no-any
                this.isOptimizerOwned = this.model.isOptimizerOwned;
                this.loss = this.model.loss;
                this.metrics = this.model.metrics;
                // TODO(cais): Add this.lossWeights, this.sampleWeightMode,
                //   this.weightedMetrics, this.targets.
                this.metricsTensors = this.model.metricsTensors;
                this.metricsNames = this.model.metricsNames;
                // TODO(cais): Add sampleWeights.
            }

            get optimizer() {
                return this.model == null ? undefined : this.model.optimizer;
            }
            set optimizer(optimizer) {
                this.model.optimizer = optimizer;
            }
            /**
             * Trains the model for a fixed number of epochs (iterations on a dataset).
             *
             * ```js
             * const model = tf.sequential({
             *   layers: [tf.layers.dense({units: 1, inputShape: [10]})]
             * });
             * model.compile({optimizer: 'sgd', loss: 'meanSquaredError'});
             * const history = await model.fit(tf.ones([8, 10]), tf.ones([8, 1]), {
             *   batchSize: 4,
             *   epochs: 3
             * });
             * console.log(history.history.loss[0]);
             * ```
             *
             * @param x `tf.Tensor` of training data, or an array of `tf.Tensor`s if the
             * model has multiple inputs. If all inputs in the model are named, you can
             * also pass a dictionary mapping input names to `tf.Tensor`s.
             * @param y `tf.Tensor` of target (label) data, or an array of `tf.Tensor`s if
             * the model has multiple outputs. If all outputs in the model are named, you
             *  can also pass a dictionary mapping output names to `tf.Tensor`s.
             * @param args  A `ModelFitConfig`, containing optional fields.
             *
             * @return A `History` instance. Its `history` attribute contains all
             *   information collected during training.
             *
             * @exception ValueError In case of mismatch between the provided input data
             *   and what the model expects.
             *
             * @doc {heading: 'Models', subheading: 'Classes'}
             */
            async fit(x, y, args = {}) {
                if (!this.built) {
                    throw new _errors.RuntimeError('The model needs to be compiled before ' + 'being used.');
                }
                return this.model.fit(x, y, args);
            }
            /**
             * Trains the model using a dataset object.
             *
             * ```js
             * const xArray = [
             *   [1, 1, 1, 1, 1, 1, 1, 1, 1],
             *   [1, 1, 1, 1, 1, 1, 1, 1, 1],
             *   [1, 1, 1, 1, 1, 1, 1, 1, 1],
             *   [1, 1, 1, 1, 1, 1, 1, 1, 1],
             * ];
             * const yArray = [1, 1, 1, 1];
             * // Create a dataset from the JavaScript array.
             * const xDataset = tf.data.array(xArray);
             * const yDataset = tf.data.array(yArray);
             * // Zip combines the `x` and `y` Datasets into a single Dataset, the
             * // iterator of which will return an object containing of two tensors,
             * // corresponding to `x` and `y`.  The call to `batch(4)` will bundle
             * // four such samples into a single object, with the same keys now pointing
             * // to tensors that hold 4 examples, organized along the batch dimension.
             * // The call to `shuffle(4)` causes each iteration through the dataset to
             * // happen in a different order.  The size of the shuffle window is 4.
             * const xyDataset = tf.data.zip({xs: xDataset, ys: yDataset})
             *     .batch(4)
             *     .shuffle(4);
             * const model = tf.sequential({
             *   layers: [tf.layers.dense({units: 1, inputShape: [9]})]
             * });
             * model.compile({optimizer: 'sgd', loss: 'meanSquaredError'});
             * const history = await model.fitDataset(xyDataset, {
             *   epochs: 4,
             *   callbacks: {onEpochEnd: (epoch, logs) => console.log(logs.loss)}
             * });
             * ```
             *
             * @param dataset A dataset object. Its `iterator()` method is expected to
             *   generate a dataset iterator object, the `next()` method of which is
             *   expected to produce data batches for evaluation. The return value of the
             *   `next()` call ought to contain a boolean `done` field and a `value`
             *   field.
             *
             *   The `value` field is expected to be an object of with fields
             *   `xs` and `ys`, which point to the feature tensor and the target tensor,
             *   respectively. This case is for models with exactly one input and one
             *   output (e.g. a sequential model). For example:
             *   ```js
             *   {value: {xs: xsTensor, ys: ysTensor}, done: false}
             *   ```
             *
             *   If the model has multiple inputs, the `xs` field of `value` should
             *   be an object mapping input names to their respective feature tensors.
             *   For example:
             *   ```js
             *   {
             *     value: {
             *       xs: {
             *         input_1: xsTensor1,
             *         input_2: xsTensor2
             *       },
             *       ys: ysTensor
             *     },
             *     done: false
             *   }
             *   ```
             *   If the model has multiple outputs, the `ys` field of `value` should
             *   be an object mapping output names to their respective target tensors.
             *   For example:
             *   ```js
             *   {
             *     value: {
             *       xs: xsTensor,
             *       ys: {
             *         output_1: ysTensor1,
             *         output_2: ysTensor2
             *       },
             *     },
             *     done: false
             *   }
             *   ```
             * @param args A `ModelFitDatasetArgs`, containing optional fields.
             *
             * @return A `History` instance. Its `history` attribute contains all
             *   information collected during training.
             *
             * @doc {heading: 'Models', subheading: 'Classes', ignoreCI: true}
             */
            async fitDataset(dataset, args) {
                if (!this.built) {
                    throw new _errors.RuntimeError('The model needs to be compiled before ' + 'being used.');
                }
                return this.model.fitDataset(dataset, args);
            }
            /**
             * Runs a single gradient update on a single batch of data.
             *
             * This method differs from `fit()` and `fitDataset()` in the following
             * regards:
             *   - It operates on exactly one batch of data.
             *   - It returns only the loss and metric values, instead of
             *     returning the batch-by-batch loss and metric values.
             *   - It doesn't support fine-grained options such as verbosity and
             *     callbacks.
             *
             * @param x Input data. It could be one of the following:
             *   - A `tf.Tensor`, or an Array of `tf.Tensor`s (in case the model has
             *     multiple inputs).
             *   - An Object mapping input names to corresponding `tf.Tensor` (if the
             *     model has named inputs).
             * @param y Target data. It could be either a `tf.Tensor` or multiple
             *   `tf.Tensor`s. It should be consistent with `x`.
             * @returns Training loss or losses (in case the model has
             *   multiple outputs), along with metrics (if any), as numbers.
             *
             * @doc {heading: 'Models', subheading: 'Classes'}
             */
            async trainOnBatch(x, y) {
                return this.model.trainOnBatch(x, y);
            }
            /* See parent class for JsDoc */
            /** @nocollapse */
            static fromConfig(cls, config, customObjects = {}, fastWeightInit = false) {
                let configArray;
                let extraModelConfig = {};
                if (config instanceof Array) {
                    if (!(config[0].className != null) || config[0]['className'] === 'Merge') {
                        throw new _errors.ValueError('Legacy serialization format not supported yet.');
                    }
                    configArray = config;
                } else {
                    _tfjsCore.util.assert(config['layers'] != null, () => `When the config data for a Sequential model is not an Array, ` + `it must be an Object that contains the 'layers' field.`);
                    configArray = config['layers'];
                    delete config['layers'];
                    extraModelConfig = config;
                }
                const model = new cls(extraModelConfig);
                if (!(model instanceof Sequential)) {
                    throw new _errors.NotImplementedError(`Sequential.fromConfig called on non-Sequential input: ${model}`);
                }
                for (const conf of configArray) {
                    const customObjects = undefined;
                    const layer = (0,
                        _serialization.deserialize)(conf, customObjects, fastWeightInit);
                    if (fastWeightInit) {
                        layer.setFastWeightInitDuringBuild(true);
                    }
                    model.add(layer);
                }
                return model;
            }
            /**
             * Setter used for force stopping of LayersModel.fit() (i.e., training).
             *
             * Example:
             *
             * ```js
             * const model = tf.sequential();
             * model.add(tf.layers.dense({units: 1, inputShape: [10]}));
             * model.compile({loss: 'meanSquaredError', optimizer: 'sgd'});
             * const xs = tf.ones([8, 10]);
             * const ys = tf.zeros([8, 1]);
             *
             * const history = await model.fit(xs, ys, {
             *   epochs: 10,
             *   callbacks: {
             *     onEpochEnd: async (epoch, logs) => {
             *       if (epoch === 2) {
             *         model.stopTraining = true;
             *       }
             *     }
             *   }
             * });
             *
             * // There should be only 3 values in the loss array, instead of 10 values,
             * // due to the stopping after 3 epochs.
             * console.log(history.history.loss);
             * ```
             */
            set stopTraining(stop) {
                // TODO(cais): When refactoring to remove the composition pattern happens,
                // remove this method overriding.
                if (this.model == null) {
                    throw new _errors.ValueError('Cannot set the stopTraining property of a sequential model before ' + 'it is compiled.');
                }
                this.model.stopTraining = stop;
            }
            get stopTraining() {
                if (this.model == null) {
                    throw new _errors.ValueError('Cannot get the stopTraining property of a sequential model before ' + 'it is compiled.');
                }
                return this.model.stopTraining;
            }
            // TODO(cais): Override get trainableWeights() here
            // tslint:disable-next-line:no-any
            getConfig() {
                // NOTE(cais): We override the return type of getConfig() to `any` here,
                //   because the `Sequential` class is a special case among `Container`
                //   subtypes in that its getConfig() method returns an Array (not a
                //   dict).
                const layers = [];
                for (const layer of this.layers) {
                    const dict = {};
                    dict['className'] = layer.getClassName();
                    dict['config'] = layer.getConfig();
                    layers.push(dict);
                }
                return {
                    name: this.name,
                    layers
                };
            }
        }
        /** @nocollapse */
        exports.Sequential = Sequential;
        Sequential.className = 'Sequential';
        _tfjsCore.serialization.registerClass(Sequential);

    }
        , {
        "./backend/state": 515,
        "./engine/input_layer": 523,
        "./engine/topology": 524,
        "./engine/training": 525,
        "./errors": 529,
        "./layers/serialization": 559,
        "./utils/generic_utils": 570,
        "./utils/serialization_utils": 573,
        "./utils/types_utils": 574,
        "@tensorflow/tfjs-core": 506
    }],
    565: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.getOptimizer = getOptimizer;
        var _tfjsCore = require("@tensorflow/tfjs-core");
        var _common = require("./backend/common");
        var _errors = require("./errors");
        /**
         * @license
         * Copyright 2018 Google LLC
         *
         * Use of this source code is governed by an MIT-style
         * license that can be found in the LICENSE file or at
         * https://opensource.org/licenses/MIT.
         * =============================================================================
         */
        /**
         * Optimizers.
         */

        // Add (de)serialize()
        // Porting note: This diverges from the PyKeras implementation and may need to
        // change based on (de)serialization requirements.
        function getOptimizer(identifier) {
            const optimizerMap = {
                'Adagrad': () => _tfjsCore.train.adagrad(0.01),
                'Adadelta': () => _tfjsCore.train.adadelta(1, 0.95, (0,
                    _common.epsilon)()),
                'Adam': () => _tfjsCore.train.adam(0.001, 0.9, 0.999, (0,
                    _common.epsilon)()),
                'Adamax': () => _tfjsCore.train.adamax(0.002, 0.9, 0.999, (0,
                    _common.epsilon)(), 0),
                'RMSProp': () => _tfjsCore.train.rmsprop(0.001, 0.9, 0, (0,
                    _common.epsilon)()),
                'SGD': () => _tfjsCore.train.sgd(0.01)
            };
            optimizerMap['adagrad'] = optimizerMap['Adagrad'];
            optimizerMap['adadelta'] = optimizerMap['Adadelta'];
            optimizerMap['adam'] = optimizerMap['Adam'];
            optimizerMap['adamax'] = optimizerMap['Adamax'];
            optimizerMap['rmsprop'] = optimizerMap['RMSProp'];
            optimizerMap['sgd'] = optimizerMap['SGD'];
            if (identifier in optimizerMap) {
                return optimizerMap[identifier]();
            }
            throw new _errors.ValueError(`Unknown Optimizer ${identifier}`);
        }

    }
        , {
        "./backend/common": 514,
        "./errors": 529,
        "@tensorflow/tfjs-core": 506
    }],
    566: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.Regularizer = exports.REGULARIZER_IDENTIFIER_REGISTRY_SYMBOL_MAP = exports.L1L2 = void 0;
        exports.deserializeRegularizer = deserializeRegularizer;
        exports.getRegularizer = getRegularizer;
        exports.l1 = l1;
        exports.l2 = l2;
        exports.serializeRegularizer = serializeRegularizer;
        var tfc = _interopRequireWildcard(require("@tensorflow/tfjs-core"));
        var K = _interopRequireWildcard(require("./backend/tfjs_backend"));
        var _generic_utils = require("./utils/generic_utils");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2018 Google LLC
         *
         * Use of this source code is governed by an MIT-style
         * license that can be found in the LICENSE file or at
         * https://opensource.org/licenses/MIT.
         * =============================================================================
         */
        /* original source: keras/regularizers.py */

        function assertObjectArgs(args) {
            if (args != null && typeof args !== 'object') {
                throw new Error(`Argument to L1L2 regularizer's constructor is expected to be an ` + `object, but received: ${args}`);
            }
        }
        /**
         * Regularizer base class.
         */
        class Regularizer extends tfc.serialization.Serializable {
        }
        exports.Regularizer = Regularizer;
        class L1L2 extends Regularizer {
            constructor(args) {
                super();
                assertObjectArgs(args);
                this.l1 = args == null || args.l1 == null ? 0.01 : args.l1;
                this.l2 = args == null || args.l2 == null ? 0.01 : args.l2;
                this.hasL1 = this.l1 !== 0;
                this.hasL2 = this.l2 !== 0;
            }
            /**
             * Porting note: Renamed from __call__.
             * @param x Variable of which to calculate the regularization score.
             */
            apply(x) {
                return (0,
                    tfc.tidy)(() => {
                        let regularization = (0,
                            tfc.zeros)([1]);
                        if (this.hasL1) {
                            regularization = (0,
                                tfc.add)(regularization, (0,
                                    tfc.sum)(tfc.mul(this.l1, (0,
                                        tfc.abs)(x))));
                        }
                        if (this.hasL2) {
                            regularization = (0,
                                tfc.add)(regularization, (0,
                                    tfc.sum)(tfc.mul(this.l2, K.square(x))));
                        }
                        return tfc.reshape(regularization, []);
                    }
                    );
            }
            getConfig() {
                return {
                    'l1': this.l1,
                    'l2': this.l2
                };
            }
            /** @nocollapse */
            static fromConfig(cls, config) {
                return new cls({
                    l1: config['l1'],
                    l2: config['l2']
                });
            }
        }
        /** @nocollapse */
        exports.L1L2 = L1L2;
        L1L2.className = 'L1L2';
        tfc.serialization.registerClass(L1L2);
        function l1(args) {
            assertObjectArgs(args);
            return new L1L2({
                l1: args != null ? args.l1 : null,
                l2: 0
            });
        }
        function l2(args) {
            assertObjectArgs(args);
            return new L1L2({
                l2: args != null ? args.l2 : null,
                l1: 0
            });
        }
        // Maps the JavaScript-like identifier keys to the corresponding keras symbols.
        const REGULARIZER_IDENTIFIER_REGISTRY_SYMBOL_MAP = {
            'l1l2': 'L1L2'
        };
        exports.REGULARIZER_IDENTIFIER_REGISTRY_SYMBOL_MAP = REGULARIZER_IDENTIFIER_REGISTRY_SYMBOL_MAP;
        function serializeRegularizer(constraint) {
            return (0,
                _generic_utils.serializeKerasObject)(constraint);
        }
        function deserializeRegularizer(config, customObjects = {}) {
            return (0,
                _generic_utils.deserializeKerasObject)(config, tfc.serialization.SerializationMap.getMap().classNameMap, customObjects, 'regularizer');
        }
        function getRegularizer(identifier) {
            if (identifier == null) {
                return null;
            }
            if (typeof identifier === 'string') {
                const className = identifier in REGULARIZER_IDENTIFIER_REGISTRY_SYMBOL_MAP ? REGULARIZER_IDENTIFIER_REGISTRY_SYMBOL_MAP[identifier] : identifier;
                const config = {
                    className,
                    config: {}
                };
                return deserializeRegularizer(config);
            } else if (identifier instanceof Regularizer) {
                return identifier;
            } else {
                return deserializeRegularizer(identifier);
            }
        }

    }
        , {
        "./backend/tfjs_backend": 516,
        "./utils/generic_utils": 570,
        "@tensorflow/tfjs-core": 506
    }],
    567: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.MAX_USER_DEFINED_METADATA_SERIALIZED_LENGTH = void 0;
        exports.checkUserDefinedMetadata = checkUserDefinedMetadata;
        exports.plainObjectCheck = plainObjectCheck;
        /**
         * @license
         * Copyright 2019 Google LLC
         *
         * Use of this source code is governed by an MIT-style
         * license that can be found in the LICENSE file or at
         * https://opensource.org/licenses/MIT.
         * =============================================================================
         */
        /** Utility functions related to user-defined metadata. */
        // Maximum recommended serialized size for user-defined metadata.
        // Beyond this limit, a warning message will be printed during model loading and
        // saving.
        const MAX_USER_DEFINED_METADATA_SERIALIZED_LENGTH = 1 * 1024 * 1024;
        /**
         * Check validity of user-defined metadata.
         *
         * @param userDefinedMetadata
         * @param modelName Name of the model that the user-defined metadata belongs to.
         *   Used during construction of error messages.
         * @param checkSize Whether to check the size of the metadata is under
         *   recommended limit. Default: `false`. If `true`, will try stringify the
         *   JSON object and print a console warning if the serialzied size is above the
         *   limit.
         * @throws Error if `userDefinedMetadata` is not a plain JSON object.
         */
        exports.MAX_USER_DEFINED_METADATA_SERIALIZED_LENGTH = MAX_USER_DEFINED_METADATA_SERIALIZED_LENGTH;
        function checkUserDefinedMetadata(userDefinedMetadata, modelName, checkSize = false) {
            if (userDefinedMetadata == null || typeof userDefinedMetadata !== 'object' || Object.getPrototypeOf(userDefinedMetadata) !== Object.prototype || !plainObjectCheck(userDefinedMetadata)) {
                throw new Error('User-defined metadata is expected to be a JSON object, but is not.');
            }
            if (checkSize) {
                const out = JSON.stringify(userDefinedMetadata);
                if (out.length > MAX_USER_DEFINED_METADATA_SERIALIZED_LENGTH) {
                    console.warn(`User-defined metadata of model "${modelName}" is too large in ` + `size (length=${out.length} when serialized). It is not ` + `recommended to store such large objects in user-defined metadata. ` + `Please make sure its serialized length is <= ` + `${MAX_USER_DEFINED_METADATA_SERIALIZED_LENGTH}.`);
                }
            }
        }
        /**
         * Check if an input is plain JSON object or any valid subfield of it.
         *
         * @param x The input to be checked.
         * @param assertObject Whether to assert `x` is a JSON object, i.e., reject
         *   cases of arrays and primitives.
         * @return Returns `true` if and only if `x` is a plain JSON object,
         *   a JSON-valid primitive including string, number, boolean and null,
         *   or an array of the said types.
         */
        // tslint:disable-next-line:no-any
        function plainObjectCheck(x) {
            if (x === null) {
                // Note: typeof `null` is 'object', and `null` is valid in JSON.
                return true;
            } else if (typeof x === 'object') {
                if (Object.getPrototypeOf(x) === Object.prototype) {
                    // `x` is a JavaScript object and its prototype is Object.
                    const keys = Object.keys(x);
                    for (const key of keys) {
                        if (typeof key !== 'string') {
                            // JSON keys must be strings.
                            return false;
                        }
                        if (!plainObjectCheck(x[key])) {
                            // Recursive call.
                            return false;
                        }
                    }
                    return true;
                } else {
                    // `x` is a JavaScript object but its prototype is not Object.
                    if (Array.isArray(x)) {
                        // `x` is a JavaScript array.
                        for (const item of x) {
                            if (!plainObjectCheck(item)) {
                                // Recursive call.
                                return false;
                            }
                        }
                        return true;
                    } else {
                        // `x` is a JavaScript object and its prototype is not Object,
                        // and it's not an Array. I.e., it's a complex object such as
                        // `Error` and `Date`.
                        return false;
                    }
                }
            } else {
                // `x` is not a JavaScript object or `null`.
                const xType = typeof x;
                return xType === 'string' || xType === 'number' || xType === 'boolean';
            }
        }

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

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.convOutputLength = convOutputLength;
        exports.deconvLength = deconvLength;
        exports.normalizeArray = normalizeArray;
        var _errors = require("../errors");
        var _generic_utils = require("./generic_utils");
        var _math_utils = require("./math_utils");
        /**
         * @license
         * Copyright 2018 Google LLC
         *
         * Use of this source code is governed by an MIT-style
         * license that can be found in the LICENSE file or at
         * https://opensource.org/licenses/MIT.
         * =============================================================================
         */

        /**
         * Transforms a single number of array of numbers into an array of numbers.
         * @param value
         * @param n: The size of the tuple to be returned.
         * @param name: Name of the parameter, used for generating error messages.
         * @returns An array of numbers.
         */
        function normalizeArray(value, n, name) {
            if (typeof value === 'number') {
                return (0,
                    _generic_utils.pyListRepeat)(value, n);
            } else {
                if (value.length !== n) {
                    throw new _errors.ValueError(`The ${name} argument must be an integer or tuple of ${n} integers.` + ` Received: ${value.length} elements.`);
                }
                for (let i = 0; i < n; ++i) {
                    const singleValue = value[i];
                    if (!(0,
                        _math_utils.isInteger)(singleValue)) {
                        throw new _errors.ValueError(`The ${name} argument must be an integer or tuple of ${n}` + ` integers. Received: ${JSON.stringify(value)} including a` + ` non-integer number ${singleValue}`);
                    }
                }
                return value;
            }
        }
        /**
         * Determines output length of a convolution given input length.
         * @param inputLength
         * @param filterSize
         * @param padding
         * @param stride
         * @param dilation: dilation rate.
         */
        function convOutputLength(inputLength, filterSize, padding, stride, dilation = 1) {
            if (inputLength == null) {
                return inputLength;
            }
            const dilatedFilterSize = filterSize + (filterSize - 1) * (dilation - 1);
            let outputLength;
            if (padding === 'same') {
                outputLength = inputLength;
            } else {
                // VALID
                outputLength = inputLength - dilatedFilterSize + 1;
            }
            return Math.floor((outputLength + stride - 1) / stride);
        }
        function deconvLength(dimSize, strideSize, kernelSize, padding) {
            if (dimSize == null) {
                return null;
            }
            if (padding === 'valid') {
                dimSize = dimSize * strideSize + (0,
                    _math_utils.max)([kernelSize - strideSize, 0]);
            } else if (padding === 'same') {
                dimSize = dimSize * strideSize;
            } else {
                throw new _errors.ValueError(`Unsupport padding mode: ${padding}.`);
            }
            return dimSize;
        }

    }
        , {
        "../errors": 529,
        "./generic_utils": 570,
        "./math_utils": 572
    }],
    569: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.LruCache = void 0;
        /**
         * @license
         * Copyright 2022 Google LLC
         *
         * Use of this source code is governed by an MIT-style
         * license that can be found in the LICENSE file or at
         * https://opensource.org/licenses/MIT.
         * =============================================================================
         */
        /**
         * LruCache: A mapping from the String to T. If the number of the entries is
         * exceeding the `maxEntries`, the LruCache will delete the least recently
         * used entry.
         */
        class LruCache {
            constructor(maxEntries) {
                this.maxEntries = maxEntries || 100;
                this.cache = new Map();
            }
            /**
             * Get the entry for the key and mark it as used recently.
             */
            get(key) {
                let entry;
                if (this.cache.has(key)) {
                    entry = this.cache.get(key);
                    this.cache.delete(key);
                    this.cache.set(key, entry);
                }
                return entry;
            }
            /**
             * Put the entry into the cache. If the key already existed, mark the key as
             * used recently.
             */
            put(key, value) {
                if (this.cache.has(key)) {
                    this.cache.delete(key);
                } else if (this.cache.size >= this.maxEntries) {
                    const keyToDelete = this.cache.keys().next().value;
                    this.cache.delete(keyToDelete);
                }
                this.cache.set(key, value);
            }
            /**
             * Get the MaxEntries of the cache.
             */
            getMaxEntries() {
                return this.maxEntries;
            }
            /**
             * Set the MaxEntries of the cache. If the maxEntries is decreased, reduce
             * entries in the cache.
             */
            setMaxEntries(maxEntries) {
                if (maxEntries < 0) {
                    throw new Error(`The maxEntries of LRU caches must be at least 0, but got ${maxEntries}.`);
                }
                if (this.maxEntries > maxEntries) {
                    for (let i = 0; i < this.maxEntries - maxEntries; i++) {
                        const keyToDelete = this.cache.keys().next().value;
                        this.cache.delete(keyToDelete);
                    }
                }
                this.maxEntries = maxEntries;
            }
        }
        exports.LruCache = LruCache;

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

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.assert = assert;
        exports.assertPositiveInteger = assertPositiveInteger;
        exports.checkArrayTypeAndLength = checkArrayTypeAndLength;
        exports.checkStringTypeUnionValue = checkStringTypeUnionValue;
        exports.count = count;
        exports.debounce = debounce;
        exports.deserializeKerasObject = deserializeKerasObject;
        exports.formatAsFriendlyString = formatAsFriendlyString;
        exports.getCartesianProductOfValues = getCartesianProductOfValues;
        exports.isObjectEmpty = isObjectEmpty;
        exports.mapActivationToFusedKernel = mapActivationToFusedKernel;
        exports.numberCompare = numberCompare;
        exports.objectListUid = objectListUid;
        exports.pyListRepeat = pyListRepeat;
        exports.reverseNumberCompare = reverseNumberCompare;
        exports.serializeKerasObject = serializeKerasObject;
        exports.singletonOrArray = singletonOrArray;
        exports.stringToDType = stringToDType;
        exports.stringsEqual = stringsEqual;
        exports.toCamelCase = toCamelCase;
        exports.toList = toList;
        exports.toSnakeCase = toSnakeCase;
        exports.unique = unique;
        var _tfjsCore = require("@tensorflow/tfjs-core");
        var _errors = require("../errors");
        /**
         * @license
         * Copyright 2018 Google LLC
         *
         * Use of this source code is governed by an MIT-style
         * license that can be found in the LICENSE file or at
         * https://opensource.org/licenses/MIT.
         * =============================================================================
         */
        /* Original source: utils/generic_utils.py */

        // tslint:enable
        /**
         * If `value` is an Array, equivalent to Python's `value * numValues`.
         * If `value` is not an Array, equivalent to Python's `[value] * numValues`
         */
        // tslint:disable-next-line:no-any
        function pyListRepeat(value, numValues) {
            if (Array.isArray(value)) {
                // tslint:disable-next-line:no-any
                let newArray = [];
                for (let i = 0; i < numValues; i++) {
                    newArray = newArray.concat(value);
                }
                return newArray;
            } else {
                const newArray = new Array(numValues);
                newArray.fill(value);
                return newArray;
            }
        }
        function assert(val, message) {
            if (!val) {
                throw new _errors.AssertionError(message);
            }
        }
        /**
         * Count the number of elements of the `array` that are equal to `reference`.
         */
        function count(array, refernce) {
            let counter = 0;
            for (const item of array) {
                if (item === refernce) {
                    counter++;
                }
            }
            return counter;
        }
        /**
         * If an array is of length 1, just return the first element. Otherwise, return
         * the full array.
         * @param tensors
         */
        function singletonOrArray(xs) {
            if (xs.length === 1) {
                return xs[0];
            }
            return xs;
        }
        /**
         * Normalizes a list/tensor into a list.
         *
         * If a tensor is passed, we return
         * a list of size 1 containing the tensor.
         *
         * @param x target object to be normalized.
         */
        // tslint:disable-next-line:no-any
        function toList(x) {
            if (Array.isArray(x)) {
                return x;
            }
            return [x];
        }
        /**
         * Generate a UID for a list
         */
        // tslint:disable-next-line:no-any
        function objectListUid(objs) {
            const objectList = toList(objs);
            let retVal = '';
            for (const obj of objectList) {
                if (obj.id == null) {
                    throw new _errors.ValueError(`Object ${obj} passed to objectListUid without an id`);
                }
                if (retVal !== '') {
                    retVal = retVal + ', ';
                }
                retVal = `${retVal}${Math.abs(obj.id)}`;
            }
            return retVal;
        }
        /**
         * Converts string to snake-case.
         * @param name
         */
        function toSnakeCase(name) {
            const intermediate = name.replace(/(.)([A-Z][a-z0-9]+)/g, '$1_$2');
            const insecure = intermediate.replace(/([a-z])([A-Z])/g, '$1_$2').toLowerCase();
            /*
             If the class is private the name starts with "_" which is not secure
             for creating scopes. We prefix the name with "private" in this case.
             */
            if (insecure[0] !== '_') {
                return insecure;
            }
            return 'private' + insecure;
        }
        function toCamelCase(identifier) {
            // quick return for empty string or single character strings
            if (identifier.length <= 1) {
                return identifier;
            }
            // Check for the underscore indicating snake_case
            if (identifier.indexOf('_') === -1) {
                return identifier;
            }
            return identifier.replace(/[_]+(\w|$)/g, (m, p1) => p1.toUpperCase());
        }
        // tslint:disable-next-line:no-any
        let _GLOBAL_CUSTOM_OBJECTS = {};
        function serializeKerasObject(instance) {
            if (instance === null || instance === undefined) {
                return null;
            }
            const dict = {};
            dict['className'] = instance.getClassName();
            dict['config'] = instance.getConfig();
            return dict;
        }
        /**
         * Replace ndarray-style scalar objects in serialization objects with numbers.
         *
         * Background: In some versions of tf.keras, certain scalar values in the HDF5
         * model save file can be serialized as: `{'type': 'ndarray', 'value': num}`,
         * where in `num` is a plain number. This method converts such serialization
         * to a `number`.
         *
         * @param config The keras-format serialization object to be processed
         *   (in place).
         */
        function convertNDArrayScalarsInConfig(config) {
            if (config == null || typeof config !== 'object') {
                return;
            } else if (Array.isArray(config)) {
                config.forEach(configItem => convertNDArrayScalarsInConfig(configItem));
            } else {
                const fields = Object.keys(config);
                for (const field of fields) {
                    const value = config[field];
                    if (value != null && typeof value === 'object') {
                        if (!Array.isArray(value) && value['type'] === 'ndarray' && typeof value['value'] === 'number') {
                            config[field] = value['value'];
                        } else {
                            convertNDArrayScalarsInConfig(value);
                        }
                    }
                }
            }
        }
        /**
         * Deserialize a saved Keras Object
         * @param identifier either a string ID or a saved Keras dictionary
         * @param moduleObjects a list of Python class names to object constructors
         * @param customObjects a list of Python class names to object constructors
         * @param printableModuleName debug text for the object being reconstituted
         * @param fastWeightInit Optional flag to use fast weight initialization
         *   during deserialization. This is applicable to cases in which
         *   the initialization will be immediately overwritten by loaded weight
         *   values. Default: `false`.
         * @returns a TensorFlow.js Layers object
         */
        // tslint:disable:no-any
        function deserializeKerasObject(identifier, moduleObjects = {}, customObjects = {}, printableModuleName = 'object', fastWeightInit = false) {
            // tslint:enable
            if (typeof identifier === 'string') {
                const functionName = identifier;
                let fn;
                if (functionName in customObjects) {
                    fn = customObjects[functionName];
                } else if (functionName in _GLOBAL_CUSTOM_OBJECTS) {
                    fn = _GLOBAL_CUSTOM_OBJECTS[functionName];
                } else {
                    fn = moduleObjects[functionName];
                    if (fn == null) {
                        throw new _errors.ValueError(`Unknown ${printableModuleName}: ${identifier}. ` + `This may be due to one of the following reasons:\n` + `1. The ${printableModuleName} is defined in Python, in which ` + `case it needs to be ported to TensorFlow.js or your JavaScript ` + `code.\n` + `2. The custom ${printableModuleName} is defined in JavaScript, ` + `but is not registered properly with ` + `tf.serialization.registerClass().`);
                        // TODO(cais): Add link to tutorial page on custom layers.
                    }
                }

                return fn;
            } else {
                // In this case we are dealing with a Keras config dictionary.
                const config = identifier;
                if (config['className'] == null || config['config'] == null) {
                    throw new _errors.ValueError(`${printableModuleName}: Improper config format: ` + `${JSON.stringify(config)}.\n` + `'className' and 'config' must set.`);
                }
                const className = config['className'];
                let cls, fromConfig;
                if (className in customObjects) {
                    [cls, fromConfig] = customObjects[className];
                } else if (className in _GLOBAL_CUSTOM_OBJECTS) {
                    [cls, fromConfig] = _GLOBAL_CUSTOM_OBJECTS['className'];
                } else if (className in moduleObjects) {
                    [cls, fromConfig] = moduleObjects[className];
                }
                if (cls == null) {
                    throw new _errors.ValueError(`Unknown ${printableModuleName}: ${className}. ` + `This may be due to one of the following reasons:\n` + `1. The ${printableModuleName} is defined in Python, in which ` + `case it needs to be ported to TensorFlow.js or your JavaScript ` + `code.\n` + `2. The custom ${printableModuleName} is defined in JavaScript, ` + `but is not registered properly with ` + `tf.serialization.registerClass().`);
                    // TODO(cais): Add link to tutorial page on custom layers.
                }

                if (fromConfig != null) {
                    // Porting notes: Instead of checking to see whether fromConfig accepts
                    // customObjects, we create a customObjects dictionary and tack it on to
                    // config['config'] as config['config'].customObjects. Objects can use it,
                    // if they want.
                    // tslint:disable-next-line:no-any
                    const customObjectsCombined = {};
                    for (const key of Object.keys(_GLOBAL_CUSTOM_OBJECTS)) {
                        customObjectsCombined[key] = _GLOBAL_CUSTOM_OBJECTS[key];
                    }
                    for (const key of Object.keys(customObjects)) {
                        customObjectsCombined[key] = customObjects[key];
                    }
                    // Add the customObjects to config
                    const nestedConfig = config['config'];
                    nestedConfig['customObjects'] = customObjectsCombined;
                    const backupCustomObjects = Object.assign({}, _GLOBAL_CUSTOM_OBJECTS);
                    for (const key of Object.keys(customObjects)) {
                        _GLOBAL_CUSTOM_OBJECTS[key] = customObjects[key];
                    }
                    convertNDArrayScalarsInConfig(config['config']);
                    const returnObj = fromConfig(cls, config['config'], customObjects, fastWeightInit);
                    _GLOBAL_CUSTOM_OBJECTS = Object.assign({}, backupCustomObjects);
                    return returnObj;
                } else {
                    // Then `cls` may be a function returning a class.
                    // In this case by convention `config` holds
                    // the kwargs of the function.
                    const backupCustomObjects = Object.assign({}, _GLOBAL_CUSTOM_OBJECTS);
                    for (const key of Object.keys(customObjects)) {
                        _GLOBAL_CUSTOM_OBJECTS[key] = customObjects[key];
                    }
                    // In python this is **config['config'], for tfjs-layers we require
                    // classes that use this fall-through construction method to take
                    // a config interface that mimics the expansion of named parameters.
                    const returnObj = new cls(config['config']);
                    _GLOBAL_CUSTOM_OBJECTS = Object.assign({}, backupCustomObjects);
                    return returnObj;
                }
            }
        }
        /**
         * Compares two numbers for sorting.
         * @param a
         * @param b
         */
        function numberCompare(a, b) {
            return a < b ? -1 : a > b ? 1 : 0;
        }
        /**
         * Comparison of two numbers for reverse sorting.
         * @param a
         * @param b
         */
        function reverseNumberCompare(a, b) {
            return -1 * numberCompare(a, b);
        }
        /**
         * Convert a string into the corresponding DType.
         * @param dtype
         * @returns An instance of DType.
         */
        function stringToDType(dtype) {
            switch (dtype) {
                case 'float32':
                    return 'float32';
                default:
                    throw new _errors.ValueError(`Invalid dtype: ${dtype}`);
            }
        }
        /**
         * Test the element-by-element equality of two Arrays of strings.
         * @param xs First array of strings.
         * @param ys Second array of strings.
         * @returns Wether the two arrays are all equal, element by element.
         */
        function stringsEqual(xs, ys) {
            if (xs == null || ys == null) {
                return xs === ys;
            }
            if (xs.length !== ys.length) {
                return false;
            }
            for (let i = 0; i < xs.length; ++i) {
                if (xs[i] !== ys[i]) {
                    return false;
                }
            }
            return true;
        }
        /**
         * Get the unique elements of an array.
         * @param xs Array.
         * @returns An Array consisting of the unique elements in `xs`.
         */
        function unique(xs) {
            if (xs == null) {
                return xs;
            }
            const out = [];
            // TODO(cais): Maybe improve performance by sorting.
            for (const x of xs) {
                if (out.indexOf(x) === -1) {
                    out.push(x);
                }
            }
            return out;
        }
        /**
         * Determine if an Object is empty (i.e., does not have own properties).
         * @param obj Object
         * @returns Whether the Object is empty.
         * @throws ValueError: If object is `null` or `undefined`.
         */
        function isObjectEmpty(obj) {
            if (obj == null) {
                throw new _errors.ValueError(`Invalid value in obj: ${JSON.stringify(obj)}`);
            }
            for (const key in obj) {
                if (obj.hasOwnProperty(key)) {
                    return false;
                }
            }
            return true;
        }
        /**
         * Helper function used to build type union/enum run-time checkers.
         * @param values The list of allowed values.
         * @param label A string name for the type
         * @param value The value to test.
         * @throws ValueError: If the value is not in values nor `undefined`/`null`.
         */
        function checkStringTypeUnionValue(values, label, value) {
            if (value == null) {
                return;
            }
            if (values.indexOf(value) < 0) {
                throw new _errors.ValueError(`${value} is not a valid ${label}.  Valid values are ${values} or null/undefined.`);
            }
        }
        /**
         * Helper function for verifying the types of inputs.
         *
         * Ensures that the elements of `x` are all of type `expectedType`.
         * Also verifies that the length of `x` is within bounds.
         *
         * @param x Object to test.
         * @param expectedType The string expected type of all of the elements in the
         * Array.
         * @param minLength Return false if x.length is less than this.
         * @param maxLength Return false if x.length is greater than this.
         * @returns true if and only if `x` is an `Array<expectedType>` with
         * length >= `minLength` and <= `maxLength`.
         */
        // tslint:disable:no-any
        function checkArrayTypeAndLength(x, expectedType, minLength = 0, maxLength = Infinity) {
            assert(minLength >= 0);
            assert(maxLength >= minLength);
            return Array.isArray(x) && x.length >= minLength && x.length <= maxLength && x.every(e => typeof e === expectedType);
        }
        // tslint:enable:no-any
        /**
         * Assert that a value or an array of value are positive integer.
         *
         * @param value The value being asserted on. May be a single number or an array
         *   of numbers.
         * @param name Name of the value, used to make the error message.
         */
        function assertPositiveInteger(value, name) {
            if (Array.isArray(value)) {
                _tfjsCore.util.assert(value.length > 0, () => `${name} is unexpectedly an empty array.`);
                value.forEach((v, i) => assertPositiveInteger(v, `element ${i + 1} of ${name}`));
            } else {
                _tfjsCore.util.assert(Number.isInteger(value) && value > 0, () => `Expected ${name} to be a positive integer, but got ` + `${formatAsFriendlyString(value)}.`);
            }
        }
        /**
         * Format a value into a display-friendly, human-readable fashion.
         *
         * - `null` is formatted as `'null'`
         * - Strings are formated with flanking pair of quotes.
         * - Arrays are formatted with flanking pair of square brackets.
         *
         * @param value The value to display.
         * @return Formatted string.
         */
        // tslint:disable-next-line:no-any
        function formatAsFriendlyString(value) {
            if (value === null) {
                return 'null';
            } else if (Array.isArray(value)) {
                return '[' + value.map(v => formatAsFriendlyString(v)).join(',') + ']';
            } else if (typeof value === 'string') {
                return `"${value}"`;
            } else {
                return `${value}`;
            }
        }
        /**
         * Returns a function `f2` (decorator) which wraps the original function
         * `f`. `f2` guarantees that `f` can be called at most once
         * every `waitMs` ms. If `f2` is called more often, it will return
         * the last returned result of `f`.
         *
         * @param f The original function `f` to wrap.
         * @param waitMs The time between two consecutive calls to `f` in ms.
         */
        function debounce(f, waitMs, nowFunc) {
            let lastTime = nowFunc != null ? nowFunc() : _tfjsCore.util.now();
            let lastResult;
            const f2 = (...args) => {
                const now = nowFunc != null ? nowFunc() : _tfjsCore.util.now();
                if (now - lastTime < waitMs) {
                    return lastResult;
                }
                lastTime = now;
                lastResult = f(...args);
                return lastResult;
            }
                ;
            return f2;
        }
        /**
         * Returns the fusable activation given a layers identifier.
         *
         * @param activationName The layers identifier string.
         * @return The name of the fusable activation.
         */
        function mapActivationToFusedKernel(activationName) {
            if (activationName === 'relu') {
                return 'relu';
            }
            if (activationName === 'linear') {
                return 'linear';
            }
            if (activationName === 'elu') {
                return 'elu';
            }
            return null;
        }
        /**
         * Returns the cartesian product of sets of values.
         * This works the same as itertools.product in Python.
         *
         * Example:
         *
         * filters = [128, 256, 512]
         * paddings = ['same', 'valid']
         *
         * product = [ [128, 'same'], [128, 'valid'], [256, 'same'], [256, 'valid'],
         * [512, 'same'], [512, 'valid']]
         *
         * @param arrayOfValues List/array of values.
         * @return The cartesian product.
         */
        function getCartesianProductOfValues(...arrayOfValues) {
            assert(arrayOfValues.length > 0, 'arrayOfValues is empty');
            for (const values of arrayOfValues) {
                assert(Array.isArray(values), 'one of the values is not an array');
                assert(values.length > 0, 'one of the values is empty');
            }
            return arrayOfValues.reduce((products, values) => {
                if (products.length === 0) {
                    return values.map(value => [value]);
                }
                return values.map(value => {
                    return products.map(prevValue => [...prevValue, value]);
                }
                ).reduce((flattenedProduct, unflattenedProduct) => {
                    return flattenedProduct.concat(unflattenedProduct);
                }
                    , []);
            }
                , []);
        }

    }
        , {
        "../errors": 529,
        "@tensorflow/tfjs-core": 506
    }],
    571: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.printSummary = printSummary;
        var _variable_utils = require("./variable_utils");
        /**
         * @license
         * Copyright 2018 Google LLC
         *
         * Use of this source code is governed by an MIT-style
         * license that can be found in the LICENSE file or at
         * https://opensource.org/licenses/MIT.
         * =============================================================================
         */

        /**
         * Print the summary of a LayersModel object.
         *
         * @param model tf.LayersModel instance.
         * @param lineLength Total length of printed lines. Set this to adapt to the
         *   display to different terminal or console sizes.
         * @param positions Relative or absolute positions of log elements in each
         *   line. Each number corresponds to right-most (i.e., ending) position of a
         *   column.
         *   If not provided, defaults to `[0.45, 0.85, 1]` for sequential-like
         *   models and `[0.33, 0.55, 0.67, 1]` for non-sequential like models.
         * @param printFn Print function to use.
         *   It will be called on each line of the summary. You can provide a custom
         *   function in order to capture the string summary. Defaults to `console.log`.
         */
        function printSummary(model, lineLength, positions, // tslint:disable-next-line:no-any
            printFn = console.log) {
            const sequentialLike = isModelSequentialLike(model);
            // Header names for different log elements.
            const toDisplay = ['Layer (type)', 'Input Shape', 'Output shape', 'Param #'];
            if (sequentialLike) {
                lineLength = lineLength || 90;
                positions = positions || [0.32, 0.61, 0.89, 1];
            } else {
                lineLength = lineLength || 115;
                positions = positions || [0.24, 0.48, 0.70, 0.80, 1];
                // Header names for different log elements.
            }

            if (positions[positions.length - 1] <= 1) {
                // `positions` is relative. Convert it to absolute positioning.
                positions = positions.map(p => Math.floor(lineLength * p));
            }
            let relevantNodes;
            if (!sequentialLike) {
                toDisplay.push('Receives inputs');
                relevantNodes = [];
                for (const depth in model.nodesByDepth) {
                    relevantNodes.push(...model.nodesByDepth[depth]);
                }
            }
            printFn('_'.repeat(lineLength));
            printRow(toDisplay, positions, printFn);
            printFn('='.repeat(lineLength));
            const layers = model.layers;
            for (let i = 0; i < layers.length; ++i) {
                if (sequentialLike) {
                    printLayerSummary(layers[i], positions, printFn);
                } else {
                    printLayerSummaryWithConnections(layers[i], positions, relevantNodes, printFn);
                }
                printFn((i === layers.length - 1 ? '=' : '_').repeat(lineLength));
            }
            // tslint:disable-next-line:no-any
            model.checkTrainableWeightsConsistency();
            const trainableCount = countTrainableParams(model);
            const nonTrainableCount = (0,
                _variable_utils.countParamsInWeights)(model.nonTrainableWeights);
            printFn(`Total params: ${trainableCount + nonTrainableCount}`);
            printFn(`Trainable params: ${trainableCount}`);
            printFn(`Non-trainable params: ${nonTrainableCount}`);
            printFn('_'.repeat(lineLength));
        }
        function countTrainableParams(model) {
            let trainableCount;
            // tslint:disable:no-any
            if (model.collectedTrainableWeights != null) {
                trainableCount = (0,
                    _variable_utils.countParamsInWeights)(model.collectedTrainableWeights);
            } else {
                trainableCount = (0,
                    _variable_utils.countParamsInWeights)(model.trainableWeights);
            }
            // tslint:enable:no-any
            return trainableCount;
        }
        function isModelSequentialLike(model) {
            let sequentialLike = true;
            const nodesByDepth = [];
            const nodes = [];
            for (const depth in model.nodesByDepth) {
                nodesByDepth.push(model.nodesByDepth[depth]);
            }
            for (const depthNodes of nodesByDepth) {
                if (depthNodes.length > 1 || depthNodes.length === 1 && depthNodes[0].inboundLayers.length > 1) {
                    sequentialLike = false;
                    break;
                }
                nodes.push(...depthNodes);
            }
            if (sequentialLike) {
                // Search for shared layers.
                for (const layer of model.layers) {
                    let flag = false;
                    for (const node of layer.inboundNodes) {
                        if (nodes.indexOf(node) !== -1) {
                            if (flag) {
                                sequentialLike = false;
                                break;
                            } else {
                                flag = true;
                            }
                        }
                    }
                    if (!sequentialLike) {
                        break;
                    }
                }
            }
            return sequentialLike;
        }
        function printRow(fields, positions, // tslint:disable-next-line:no-any
            printFn = console.log) {
            let line = '';
            for (let i = 0; i < fields.length; ++i) {
                if (i > 0) {
                    line = line.slice(0, line.length - 1) + ' ';
                }
                line += fields[i];
                line = line.slice(0, positions[i]);
                line += ' '.repeat(positions[i] - line.length);
            }
            printFn(line);
        }
        /**
         * Prints a summary for a single Layer, without connectivity information.
         *
         * @param layer: Layer instance to print.
         */
        function printLayerSummary(layer, positions, // tslint:disable-next-line:no-any
            printFn) {
            let outputShape;
            let inputShape;
            try {
                inputShape = layer.inboundNodes.map(x => JSON.stringify(x.inputShapes)).join(',');
            } catch (err) {
                inputShape = 'multiple';
            }
            try {
                outputShape = JSON.stringify(layer.outputShape);
            } catch (err) {
                outputShape = 'multiple';
            }
            const name = layer.name;
            const className = layer.getClassName();
            const fields = [`${name} (${className})`, inputShape, outputShape, layer.countParams().toString()];
            printRow(fields, positions, printFn);
        }
        /**
         * Prints a summary for a single Layer, with connectivity information.
         */
        function printLayerSummaryWithConnections(layer, positions, relevantNodes, // tslint:disable-next-line:no-any
            printFn) {
            let outputShape;
            let inputShape;
            try {
                inputShape = layer.inboundNodes.map(x => JSON.stringify(x.inputShapes)).join(',');
            } catch (err) {
                inputShape = 'multiple';
            }
            try {
                outputShape = JSON.stringify(layer.outputShape);
            } catch (err) {
                outputShape = 'multiple';
            }
            const connections = [];
            for (const node of layer.inboundNodes) {
                if (relevantNodes != null && relevantNodes.length > 0 && relevantNodes.indexOf(node) === -1) {
                    continue;
                }
                for (let i = 0; i < node.inboundLayers.length; ++i) {
                    const inboundLayer = node.inboundLayers[i].name;
                    const inboundLayerIndex = node.nodeIndices[i];
                    const inboundTensorIndex = node.tensorIndices[i];
                    connections.push(`${inboundLayer}[${inboundLayerIndex}][${inboundTensorIndex}]`);
                }
            }
            const name = layer.name;
            const className = layer.getClassName();
            const firstConnection = connections.length === 0 ? '' : connections[0];
            const fields = [`${name} (${className})`, inputShape, outputShape, layer.countParams().toString(), firstConnection];
            printRow(fields, positions, printFn);
            for (let i = 1; i < connections.length; ++i) {
                printRow(['', '', '', '', connections[i]], positions, printFn);
            }
        }

    }
        , {
        "./variable_utils": 575
    }],
    572: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.arrayProd = arrayProd;
        exports.isInteger = isInteger;
        exports.max = max;
        exports.mean = mean;
        exports.median = median;
        exports.min = min;
        exports.range = range;
        exports.sum = sum;
        exports.variance = variance;
        var _errors = require("../errors");
        /**
         * @license
         * Copyright 2018 Google LLC
         *
         * Use of this source code is governed by an MIT-style
         * license that can be found in the LICENSE file or at
         * https://opensource.org/licenses/MIT.
         * =============================================================================
         */
        /**
         * Math utility functions.
         *
         * This file contains some frequently used math function that operates on
         * number[] or Float32Array and return a number. Many of these functions are
         * not-so-thick wrappers around TF.js Core functions. But they offer the
         * convenience of
         * 1) not having to convert the inputs into Tensors,
         * 2) not having to convert the returned Tensors to numbers.
         */

        /**
         * Determine if a number is an integer.
         */
        function isInteger(x) {
            return x === parseInt(x.toString(), 10);
        }
        /**
         * Calculate the product of an array of numbers.
         * @param array The array to calculate the product over.
         * @param begin Beginning index, inclusive.
         * @param end Ending index, exclusive.
         * @return The product.
         */
        function arrayProd(array, begin, end) {
            if (begin == null) {
                begin = 0;
            }
            if (end == null) {
                end = array.length;
            }
            let prod = 1;
            for (let i = begin; i < end; ++i) {
                prod *= array[i];
            }
            return prod;
        }
        /**
         * Compute minimum value.
         * @param array
         * @return minimum value.
         */
        function min(array) {
            // same behavior as tf.min()
            if (array.length === 0) {
                return Number.NaN;
            }
            let min = Number.POSITIVE_INFINITY;
            for (let i = 0; i < array.length; i++) {
                const value = array[i];
                if (value < min) {
                    min = value;
                }
            }
            return min;
        }
        /**
         * Compute maximum value.
         * @param array
         * @return maximum value
         */
        function max(array) {
            // same behavior as tf.max()
            if (array.length === 0) {
                return Number.NaN;
            }
            let max = Number.NEGATIVE_INFINITY;
            for (let i = 0; i < array.length; i++) {
                const value = array[i];
                if (value > max) {
                    max = value;
                }
            }
            return max;
        }
        /**
         * Compute sum of array.
         * @param array
         * @return The sum.
         */
        function sum(array) {
            let sum = 0;
            for (let i = 0; i < array.length; i++) {
                const value = array[i];
                sum += value;
            }
            return sum;
        }
        /**
         * Compute mean of array.
         * @param array
         * @return The mean.
         */
        function mean(array) {
            return sum(array) / array.length;
        }
        /**
         * Compute variance of array.
         * @param array
         * @return The variance.
         */
        function variance(array) {
            const meanValue = mean(array);
            const demeaned = array.map(value => value - meanValue);
            let sumSquare = 0;
            for (let i = 0; i < demeaned.length; i++) {
                const value = demeaned[i];
                sumSquare += value * value;
            }
            return sumSquare / array.length;
        }
        /**
         * Compute median of array.
         * @param array
         * @return The median value.
         */
        function median(array) {
            const arraySorted = array.slice().sort((a, b) => a - b);
            const lowIdx = Math.floor((arraySorted.length - 1) / 2);
            const highIdx = Math.ceil((arraySorted.length - 1) / 2);
            if (lowIdx === highIdx) {
                return arraySorted[lowIdx];
            }
            return (arraySorted[lowIdx] + arraySorted[highIdx]) / 2;
        }
        /**
         * Generate an array of integers in [begin, end).
         * @param begin Beginning integer, inclusive.
         * @param end Ending integer, exclusive.
         * @returns Range array.
         * @throws ValueError, iff `end` < `begin`.
         */
        function range(begin, end) {
            if (end < begin) {
                throw new _errors.ValueError(`end (${end}) < begin (${begin}) is forbidden.`);
            }
            const out = [];
            for (let i = begin; i < end; ++i) {
                out.push(i);
            }
            return out;
        }

    }
        , {
        "../errors": 529
    }],
    573: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.convertPythonicToTs = convertPythonicToTs;
        exports.convertTsToPythonic = convertTsToPythonic;
        var generic_utils = _interopRequireWildcard(require("../utils/generic_utils"));
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2018 Google LLC
         *
         * Use of this source code is governed by an MIT-style
         * license that can be found in the LICENSE file or at
         * https://opensource.org/licenses/MIT.
         * =============================================================================
         */

        // tslint:enable
        /**
         * Test whether a value in an array is the name of a LayersModel or Layer.
         * @param key The key name that the value is found under. Note that the key
         *   may not be at the level immediately above the value, if the value is in a
         *   nested array.
         * @param index Index of the value in the Array that it is found in.
         * @param value The value object.
         * @returns A boolean indicating whether value is a name.
         */
        function isArrayItemInputOrOutputName(key, index, value) {
            return (key === 'inboundNodes' || key === 'outputLayers' || key === 'inputLayers') && index === 0 && typeof value === 'string';
        }
        /**
         * Convert a Pythonic config object to TypeScript config object.
         * @param pythonicConfig The config object to convert.
         * @param key Optional key name of the object being converted.
         * @returns Result of the conversion.
         */
        function convertPythonicToTs(pythonicConfig, key) {
            if (pythonicConfig === null) {
                return null;
            } else if (typeof pythonicConfig === 'string') {
                return generic_utils.toCamelCase(pythonicConfig);
            } else if (typeof pythonicConfig === 'number' || typeof pythonicConfig === 'boolean') {
                return pythonicConfig;
            } else if (pythonicConfig instanceof Array) {
                const tsArray = [];
                const arrayLength = pythonicConfig.length;
                for (let i = 0; i < arrayLength; ++i) {
                    const item = pythonicConfig[i];
                    if (isArrayItemInputOrOutputName(key, i, item)) {
                        tsArray.push(item);
                    } else {
                        tsArray.push(convertPythonicToTs(item, key));
                    }
                }
                return tsArray;
            } else {
                const tsDict = {};
                for (const pythonicKey of Object.keys(pythonicConfig)) {
                    const pythonicValue = pythonicConfig[pythonicKey];
                    if (pythonicKey === 'name' && typeof pythonicValue === 'string') {
                        // Special case the 'name' key with a string value. Name values, such as
                        // the names of LayersModel and Layer instances, should not undergo the
                        // camel-case conversion.
                        tsDict[pythonicKey] = pythonicValue;
                    } else {
                        const tsKey = generic_utils.toCamelCase(pythonicKey);
                        tsDict[tsKey] = convertPythonicToTs(pythonicValue, tsKey);
                    }
                }
                return tsDict;
            }
        }
        /**
         * Convert a TypeScript config object to Python config object.
         * @param tsConfig The config object to convert.
         * @param key Optional key name of the object being converted.
         * @returns Result of the conversion.
         */
        function convertTsToPythonic(tsConfig, key) {
            if (tsConfig === null || tsConfig === undefined) {
                return null;
            } else if (typeof tsConfig === 'string') {
                return generic_utils.toSnakeCase(tsConfig);
            } else if (typeof tsConfig === 'number' || typeof tsConfig === 'boolean') {
                return tsConfig;
            } else if (tsConfig instanceof Array) {
                const pyArray = [];
                const arrayLength = tsConfig.length;
                for (let i = 0; i < arrayLength; ++i) {
                    const item = tsConfig[i];
                    if (isArrayItemInputOrOutputName(key, i, item)) {
                        pyArray.push(item);
                    } else {
                        pyArray.push(convertTsToPythonic(item, key));
                    }
                }
                return pyArray;
            } else {
                const pyDict = {};
                for (const tsKey of Object.keys(tsConfig)) {
                    const tsValue = tsConfig[tsKey];
                    const pyKey = generic_utils.toSnakeCase(tsKey);
                    if ((tsKey === 'name' || tsKey === 'className') && typeof tsValue === 'string') {
                        // Special case the 'name' key with a string value. Name values, such as
                        // the names of LayersModel and Layer instances, should not undergo the
                        // snake-case conversion.
                        pyDict[pyKey] = tsValue;
                    } else {
                        pyDict[pyKey] = convertTsToPythonic(tsValue, tsKey);
                    }
                }
                return pyDict;
            }
        }

    }
        , {
        "../utils/generic_utils": 570
    }],
    574: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.getExactlyOneShape = getExactlyOneShape;
        exports.getExactlyOneTensor = getExactlyOneTensor;
        exports.isArrayOfShapes = isArrayOfShapes;
        exports.normalizeShapeList = normalizeShapeList;
        var _errors = require("../errors");
        /**
         * @license
         * Copyright 2018 Google LLC
         *
         * Use of this source code is governed by an MIT-style
         * license that can be found in the LICENSE file or at
         * https://opensource.org/licenses/MIT.
         * =============================================================================
         */

        // tslint:enable
        /**
         * Determine whether the input is an Array of Shapes.
         */
        function isArrayOfShapes(x) {
            return Array.isArray(x) && Array.isArray(x[0]);
        }
        /**
         * Special case of normalizing shapes to lists.
         *
         * @param x A shape or list of shapes to normalize into a list of Shapes.
         * @return A list of Shapes.
         */
        function normalizeShapeList(x) {
            if (x.length === 0) {
                return [];
            }
            if (!Array.isArray(x[0])) {
                return [x];
            }
            return x;
        }
        /**
         * Helper function to obtain exactly one Tensor.
         * @param xs: A single `tf.Tensor` or an `Array` of `tf.Tensor`s.
         * @return A single `tf.Tensor`. If `xs` is an `Array`, return the first one.
         * @throws ValueError: If `xs` is an `Array` and its length is not 1.
         */
        function getExactlyOneTensor(xs) {
            let x;
            if (Array.isArray(xs)) {
                if (xs.length !== 1) {
                    throw new _errors.ValueError(`Expected Tensor length to be 1; got ${xs.length}`);
                }
                x = xs[0];
            } else {
                x = xs;
            }
            return x;
        }
        /**
         * Helper function to obtain exactly on instance of Shape.
         *
         * @param shapes Input single `Shape` or Array of `Shape`s.
         * @returns If input is a single `Shape`, return it unchanged. If the input is
         *   an `Array` containing exactly one instance of `Shape`, return the instance.
         *   Otherwise, throw a `ValueError`.
         * @throws ValueError: If input is an `Array` of `Shape`s, and its length is not
         *   1.
         */
        function getExactlyOneShape(shapes) {
            if (Array.isArray(shapes) && Array.isArray(shapes[0])) {
                if (shapes.length === 1) {
                    shapes = shapes;
                    return shapes[0];
                } else {
                    throw new _errors.ValueError(`Expected exactly 1 Shape; got ${shapes.length}`);
                }
            } else {
                return shapes;
            }
        }

    }
        , {
        "../errors": 529
    }],
    575: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.countParamsInWeights = countParamsInWeights;
        /**
         * @license
         * Copyright 2018 Google LLC
         *
         * Use of this source code is governed by an MIT-style
         * license that can be found in the LICENSE file or at
         * https://opensource.org/licenses/MIT.
         * =============================================================================
         */
        /**
         * Count the elements in an Array of LayerVariables.
         *
         * @param weights: The LayerVariables of which the constituent numbers are to
         *   be counted.
         * @returns A count of the elements in all the LayerVariables
         */
        function countParamsInWeights(weights) {
            let count = 0;
            for (const weight of weights) {
                if (weight.shape.length === 0) {
                    count += 1;
                } else {
                    count += weight.shape.reduce((a, b) => a * b);
                }
            }
            return count;
        }

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

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.LayerVariable = void 0;
        exports.batchGetValue = batchGetValue;
        exports.batchSetValue = batchSetValue;
        exports.eyeVariable = eyeVariable;
        exports.gradients = gradients;
        exports.onesLike = onesLike;
        exports.onesVariable = onesVariable;
        exports.randomNormalVariable = randomNormalVariable;
        exports.randomUniformVariable = randomUniformVariable;
        exports.truncatedNormalVariable = truncatedNormalVariable;
        exports.update = update;
        exports.updateAdd = updateAdd;
        exports.updateSub = updateSub;
        exports.variable = variable;
        exports.zerosLike = zerosLike;
        exports.zerosVariable = zerosVariable;
        var tfc = _interopRequireWildcard(require("@tensorflow/tfjs-core"));
        var _state = require("./backend/state");
        var _common = require("./common");
        var _errors = require("./errors");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2018 Google LLC
         *
         * Use of this source code is governed by an MIT-style
         * license that can be found in the LICENSE file or at
         * https://opensource.org/licenses/MIT.
         * =============================================================================
         */

        const DEFAULT_VARIABLE_NAME_PREFIX = 'Variable';
        /**
         * A `tf.layers.LayerVariable` is similar to a `tf.Tensor` in that it has a
         * dtype and shape, but its value is mutable.  The value is itself represented
         * as a`tf.Tensor`, and can be read with the `read()` method and updated with
         * the `write()` method.
         */
        class LayerVariable {
            /**
             * Construct Variable from a `tf.Tensor`.
             *
             * If not explicitly named, the Variable will be given a name with the
             * prefix 'Variable'. Variable names are unique. In the case of name
             * collision, suffixies '_<num>' will be added to the name.
             *
             * @param val Initial value of the Variable.
             * @param name Name of the variable. If `null` or `undefined` is provided, it
             *   will default a name with the prefix 'Variable'.
             * @param constraint Optional, projection function to be applied to the
             * variable after optimize updates
             * @throws ValueError if `name` is `null` or `undefined`.
             */
            constructor(val, dtype = 'float32', name = DEFAULT_VARIABLE_NAME_PREFIX, trainable = true, constraint = null) {
                this.dtype = dtype == null ? 'float32' : dtype;
                this.shape = val.shape;
                this.id = (0,
                    _state.getNextUniqueTensorId)();
                name = name == null ? DEFAULT_VARIABLE_NAME_PREFIX : name;
                this.originalName = (0,
                    _common.getScopedTensorName)(name);
                this.name = (0,
                    _common.getUniqueTensorName)(this.originalName);
                this.trainable_ = trainable;
                this.constraint = constraint;
                this.val = tfc.variable(val, this.trainable_, this.name, this.dtype);
            }
            /**
             * Get a snapshot of the Variable's value.
             *
             * The returned value is a snapshot of the Variable's value at the time of
             * the invocation. Future mutations in the value of the tensor will only
             * be reflected by future calls to this method.
             */
            read() {
                this.assertNotDisposed();
                return this.val;
            }
            /**
             * Update the value of the Variable.
             *
             * @param newVal: The new value to update to. Must be consistent with the
             *   dtype and shape of the Variable.
             * @return This Variable.
             */
            write(newVal) {
                // TODO(cais): Once  TF.js Core supports Tensor.dtype, check dtype match.
                this.assertNotDisposed();
                checkShapesMatch(this.val, newVal);
                // Skip updating if this is the exact same tensor.
                if (this.val.id !== newVal.id) {
                    this.val.assign(newVal);
                    if (this.constraint != null) {
                        this.val.assign(this.constraint.apply(this.val));
                    }
                }
                return this;
            }
            /**
             * Dispose this LayersVariable instance from memory.
             */
            dispose() {
                this.assertNotDisposed();
                this.val.dispose();
            }
            assertNotDisposed() {
                if (this.val.isDisposed) {
                    throw new Error(`LayersVariable ${this.name} is already disposed.`);
                }
            }
            get trainable() {
                return this.trainable_;
            }
            set trainable(trainable) {
                this.trainable_ = trainable;
                this.val.trainable = trainable;
            }
        }
        exports.LayerVariable = LayerVariable;
        function checkShapesMatch(x, y) {
            if (x.shape.toString() !== y.shape.toString()) {
                throw new Error('Shape mismatch: ' + JSON.stringify(x.shape) + ' vs. ' + JSON.stringify(y.shape));
            }
        }
        /**
         * Create a Variable.
         * @param x The initial value of the `Variable`.
         * @param dtype optional, the type of the variable.
         * @param name optional, the name of the variable, default provided by
         * Variable.
         * @param constraint optional, a constraint to be applied after every update.
         * @return The newly instantiated `Variable`.
         */
        function variable(x, dtype, name, constraint) {
            return new LayerVariable(x, dtype, name, true, constraint);
        }
        /**
         * Instantiates an all-zeros Variable and returns it.
         *
         * @param shape Shape of the tensor.
         * @param dtype DType of the tensor.
         * @param name Name of the tensor.
         * @return An all-zero Variable.
         */
        function zerosVariable(shape, dtype, name) {
            // TODO(cais): Implement logic for dtype.
            return new LayerVariable(tfc.zeros(shape), dtype, name);
        }
        /**
         * Instantiates an all-zeros tensor of the same shape as another tensor.
         *
         * @param x The other tensor.
         * @param dtype DType of the tensor.
         * @param name Name of the tensor.
         * @return A newly instantiated Variable.
         */
        function zerosLike(x, dtype, name) {
            return new LayerVariable(tfc.zerosLike(x), dtype, name);
        }
        /**
         * Instantiates an all-ones tensor and returns it.
         *
         * @param shape Shape of the tensor.
         * @param dtype DType of the tensor.
         * @param name Name of the tensor.
         * @return An all-ones Variable.
         */
        function onesVariable(shape, dtype, name) {
            // TODO(cais): Implement logic for dtype.
            const allocated = tfc.ones(shape);
            return new LayerVariable(allocated, dtype, name);
        }
        /**
         * Instantiates an all-ones tensor of the same shape as another tensor.
         *
         * @param x The other tensor.
         * @param dtype DType of the tensor.
         * @param name Name of the tensor.
         * @return A newly instantiated Variable.
         */
        function onesLike(x, dtype, name) {
            const allocated = tfc.onesLike(x);
            return new LayerVariable(allocated, dtype, name);
        }
        /**
         * Instantiate an identity matrix and returns it, as a Variable
         *
         * @param size Number of rows/columns.
         * @param dtype Data type of returned Variable.
         * @param name Name of returned Variable.
         * @return A Variable, an identity matrix.
         */
        function eyeVariable(size, dtype, name) {
            return new LayerVariable(tfc.eye(size), dtype, name);
        }
        /**
         * Get a Variable with uniform distribution of values.
         * @param shape Shape of the tensor.
         * @param minval Lower bound of the uniform distribution.
         * @param maxval Upper bound of the uniform distribution.
         * @param dtype
         * @param seed
         * @param name Optional name.
         * @return The uniform-random Variable.
         */
        function randomUniformVariable(shape, minval, maxval, dtype, seed, name = 'randomUniform') {
            return new LayerVariable(tfc.randomUniform(shape, minval, maxval, dtype), dtype, name);
        }
        /**
         * Get a Variable with truncated-normal distribution of values.
         * @param shape Shape of the tensor.
         * @param mean mean value of the normal distribution.
         * @param stddev standard deviation of the normal distribution.
         * @param dtype
         * @param seed
         * @param name Optional name.
         * @return The truncated-normal-random Variable.
         */
        function truncatedNormalVariable(shape, mean = 0.0, stddev = 1.0, dtype, seed, name = 'truncatedNormal') {
            // TODO(cais): Implement logic for dtype and seed once they are supported
            // by deeplearn.js.
            dtype = dtype || 'float32';
            if (dtype !== 'float32' && dtype !== 'int32') {
                throw new _errors.NotImplementedError(`randomNormal does not support dType ${dtype}.`);
            }
            return new LayerVariable(tfc.truncatedNormal(shape, mean, stddev, dtype, seed), dtype, name);
        }
        /**
         * Get a Variable with normal distribution of values.
         * @param shape Shape of the tensor.
         * @param mean mean value of the normal distribution.
         * @param stddev standard deviation of the normal distribution.
         * @param dtype
         * @param seed
         * @param name Optional name.
         * @return The truncated-normal-random Variable.
         */
        function randomNormalVariable(shape, mean = 0.0, stddev = 1.0, dtype, seed, name = 'randomNormal') {
            dtype = dtype || 'float32';
            if (dtype !== 'float32' && dtype !== 'int32') {
                throw new _errors.NotImplementedError(`randomNormalVariable does not support dType ${dtype}.`);
            }
            return new LayerVariable(tfc.randomNormal(shape, mean, stddev, dtype, seed), dtype, name);
        }
        /**
         * Update the value of a Variable.
         * @param x The Variable to be updated.
         * @param xNew The new value to update to.
         * @return The Variable updated.
         */
        function update(x, xNew) {
            return x.write(xNew);
        }
        /**
         * Update the value of a Variable by adding an increment.
         * @param x The Variable to be updated.
         * @param increment The incrment to add to `x`.
         * @return The Variable updated.
         */
        function updateAdd(x, increment) {
            return x.write(tfc.add(x.read(), increment));
        }
        /**
         * Update the value of a Variable by subtracting a decrement.
         * @param x The Variable to be updated.
         * @param decrement The decrement to subtract from `x`.
         * @return The Variable updated.
         */
        function updateSub(x, decrement) {
            return x.write(tfc.sub(x.read(), decrement));
        }
        /**
         * Get the values of an array of Variables.
         *
         * @param tensors An `Array` of `Variable`s to get the values of.
         * @return The values of the inputs, as an `Array` of`tf.Tensor`s.
         */
        function batchGetValue(xs) {
            return xs.map(x => x.read());
        }
        /**
         * Update the value of multiple Variables at once.
         *
         * @param variablesAndValues An `Array`, each element is of type
         *   [Variable, Tensor]. The first item is the
         *   `Variable` of which the value is to be updated. The second item
         *   carries the new value.
         */
        function batchSetValue(variablesAndValues) {
            variablesAndValues.forEach(variableAndValue => {
                const variable = variableAndValue[0];
                variable.write(variableAndValue[1]);
            }
            );
        }
        /**
         * Returns the gradients of `variables` w.r.t. the return value of `lossFn`.
         * @param lossFn A function which returns a Scalar to be used as the function
         *   value (i.e., numerator) for differentiation.
         * @param variables List of variables to be used as the independent variables
         *   (i.e., denominator) for differentiation.
         * @returns An Array of gradients tensors.
         */
        function gradients(lossFn, variables) {
            // TODO(cais): The return type signature can be simplified if deeplearn makes
            //   the corresponding type public.
            const variableList = variables.map(variable => variable.read());
            const valudAndGrads = (0,
                tfc.variableGrads)(lossFn, variableList);
            return variables.map(variable => valudAndGrads.grads[variable.name]);
        }

    }
        , {
        "./backend/state": 515,
        "./common": 519,
        "./errors": 529,
        "@tensorflow/tfjs-core": 506
    }],
    577: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.version = void 0;
        /** @license See the LICENSE file. */
        // This code is auto-generated, do not modify this file!
        const version = '4.1.0';
        exports.version = version;

    }
        , {}],
    578: [function (require, module, exports) {
        (function (process, global, Buffer, __argument0, __argument1, __argument2, __argument3, setImmediate) {
            (function () {
                /**
 * @license
 * Copyright 2022 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                'use strict';
                Object.defineProperty(exports, '__esModule', {
                    value: true
                });
                function _interopDefault(ex) {
                    return ex && typeof ex === 'object' && 'default' in ex ? ex['default'] : ex;
                }
                var tfjsCore = require('@tensorflow/tfjs-core');
                var LongExports = require('long');
                var LongExports__default = _interopDefault(LongExports);
                var tfjsLayers = require('@tensorflow/tfjs-layers');
                var tfjsConverter = require('@tensorflow/tfjs-converter');
                var tfjsData = require('@tensorflow/tfjs-data');
                var tfjsBackendCpu = require('@tensorflow/tfjs-backend-cpu');
                var tfjsBackendWebgl = require('@tensorflow/tfjs-backend-webgl');
                const Abs = 'Abs';
                const Acos = 'Acos';
                const Acosh = 'Acosh';
                const Add = 'Add';
                const AddN = 'AddN';
                const All = 'All';
                const Any = 'Any';
                const ArgMax = 'ArgMax';
                const ArgMin = 'ArgMin';
                const Asin = 'Asin';
                const Asinh = 'Asinh';
                const Atan = 'Atan';
                const Atanh = 'Atanh';
                const Atan2 = 'Atan2';
                const AvgPool = 'AvgPool';
                const AvgPoolGrad = 'AvgPoolGrad';
                const AvgPool3D = 'AvgPool3D';
                const AvgPool3DGrad = 'AvgPool3DGrad';
                const BatchMatMul = 'BatchMatMul';
                const BatchToSpaceND = 'BatchToSpaceND';
                const Bincount = 'Bincount';
                const BroadcastTo = 'BroadcastTo';
                const BroadcastArgs = 'BroadcastArgs';
                const Cast = 'Cast';
                const Ceil = 'Ceil';
                const ClipByValue = 'ClipByValue';
                const Complex = 'Complex';
                const ComplexAbs = 'ComplexAbs';
                const Concat = 'Concat';
                const Conv2D = 'Conv2D';
                const Conv2DBackpropFilter = 'Conv2DBackpropFilter';
                const Conv2DBackpropInput = 'Conv2DBackpropInput';
                const Conv3D = 'Conv3D';
                const Conv3DBackpropFilterV2 = 'Conv3DBackpropFilterV2';
                const Conv3DBackpropInputV2 = 'Conv3DBackpropInputV2';
                const Cos = 'Cos';
                const Cosh = 'Cosh';
                const Cumprod = 'Cumprod';
                const Cumsum = 'Cumsum';
                const CropAndResize = 'CropAndResize';
                const DenseBincount = 'DenseBincount';
                const DepthToSpace = 'DepthToSpace';
                const DepthwiseConv2dNative = 'DepthwiseConv2dNative';
                const DepthwiseConv2dNativeBackpropFilter = 'DepthwiseConv2dNativeBackpropFilter';
                const DepthwiseConv2dNativeBackpropInput = 'DepthwiseConv2dNativeBackpropInput';
                const Diag = 'Diag';
                const Dilation2D = 'Dilation2D';
                const Dilation2DBackpropInput = 'Dilation2DBackpropInput';
                const Dilation2DBackpropFilter = 'Dilation2DBackpropFilter';
                const RealDiv = 'RealDiv';
                const Einsum = 'Einsum';
                const Elu = 'Elu';
                const EluGrad = 'EluGrad';
                const Erf = 'Erf';
                const Equal = 'Equal';
                const Exp = 'Exp';
                const ExpandDims = 'ExpandDims';
                const Expm1 = 'Expm1';
                const FFT = 'FFT';
                const Fill = 'Fill';
                const FlipLeftRight = 'FlipLeftRight';
                const Floor = 'Floor';
                const FloorDiv = 'FloorDiv';
                const FusedBatchNorm = 'FusedBatchNorm';
                const GatherV2 = 'GatherV2';
                const GatherNd = 'GatherNd';
                const Greater = 'Greater';
                const GreaterEqual = 'GreaterEqual';
                const Identity = 'Identity';
                const IFFT = 'IFFT';
                const Imag = 'Imag';
                const IsFinite = 'IsFinite';
                const IsInf = 'IsInf';
                const IsNan = 'IsNan';
                const LeakyRelu = 'LeakyRelu';
                const Less = 'Less';
                const LessEqual = 'LessEqual';
                const LinSpace = 'LinSpace';
                const Log = 'Log';
                const Log1p = 'Log1p';
                const LogicalAnd = 'LogicalAnd';
                const LogicalNot = 'LogicalNot';
                const LogicalOr = 'LogicalOr';
                const LogicalXor = 'LogicalXor';
                const LogSoftmax = 'LogSoftmax';
                const LowerBound = 'LowerBound';
                const LRN = 'LRN';
                const LRNGrad = 'LRNGrad';
                const Max = 'Max';
                const Maximum = 'Maximum';
                const MaxPool = 'MaxPool';
                const MaxPoolGrad = 'MaxPoolGrad';
                const MaxPool3D = 'MaxPool3D';
                const MaxPool3DGrad = 'MaxPool3DGrad';
                const MaxPoolWithArgmax = 'MaxPoolWithArgmax';
                const Mean = 'Mean';
                const Min = 'Min';
                const Minimum = 'Minimum';
                const MirrorPad = 'MirrorPad';
                const Mod = 'Mod';
                const Multinomial = 'Multinomial';
                const Multiply = 'Multiply';
                const Neg = 'Neg';
                const NotEqual = 'NotEqual';
                const NonMaxSuppressionV3 = 'NonMaxSuppressionV3';
                const NonMaxSuppressionV4 = 'NonMaxSuppressionV4';
                const NonMaxSuppressionV5 = 'NonMaxSuppressionV5';
                const OnesLike = 'OnesLike';
                const OneHot = 'OneHot';
                const Pack = 'Pack';
                const PadV2 = 'PadV2';
                const Pool = 'Pool';
                const Pow = 'Pow';
                const Prelu = 'Prelu';
                const Prod = 'Prod';
                const RaggedGather = 'RaggedGather';
                const RaggedRange = 'RaggedRange';
                const RaggedTensorToTensor = 'RaggedTensorToTensor';
                const Range = 'Range';
                const Real = 'Real';
                const Reciprocal = 'Reciprocal';
                const Relu = 'Relu';
                const Reshape = 'Reshape';
                const ResizeNearestNeighbor = 'ResizeNearestNeighbor';
                const ResizeNearestNeighborGrad = 'ResizeNearestNeighborGrad';
                const ResizeBilinear = 'ResizeBilinear';
                const ResizeBilinearGrad = 'ResizeBilinearGrad';
                const Relu6 = 'Relu6';
                const Reverse = 'Reverse';
                const Round = 'Round';
                const Rsqrt = 'Rsqrt';
                const ScatterNd = 'ScatterNd';
                const SearchSorted = 'SearchSorted';
                const Select = 'Select';
                const Selu = 'Selu';
                const Slice = 'Slice';
                const Sin = 'Sin';
                const Sinh = 'Sinh';
                const Sign = 'Sign';
                const Sigmoid = 'Sigmoid';
                const Softplus = 'Softplus';
                const Sqrt = 'Sqrt';
                const Sum = 'Sum';
                const SpaceToBatchND = 'SpaceToBatchND';
                const SplitV = 'SplitV';
                const Softmax = 'Softmax';
                const SparseFillEmptyRows = 'SparseFillEmptyRows';
                const SparseReshape = 'SparseReshape';
                const SparseSegmentMean = 'SparseSegmentMean';
                const SparseSegmentSum = 'SparseSegmentSum';
                const SparseToDense = 'SparseToDense';
                const SquaredDifference = 'SquaredDifference';
                const Square = 'Square';
                const StridedSlice = 'StridedSlice';
                const StringNGrams = 'StringNGrams';
                const StringSplit = 'StringSplit';
                const StringToHashBucketFast = 'StringToHashBucketFast';
                const Sub = 'Sub';
                const Tan = 'Tan';
                const Tanh = 'Tanh';
                const Tile = 'Tile';
                const TopK = 'TopK';
                const Transform = 'Transform';
                const Transpose = 'Transpose';
                const Unique = 'Unique';
                const Unpack = 'Unpack';
                const UnsortedSegmentSum = 'UnsortedSegmentSum';
                const UpperBound = 'UpperBound';
                const ZerosLike = 'ZerosLike';
                /**
 * TensorFlow.js-only kernels
 */
                const Step = 'Step';
                const FromPixels = 'FromPixels';
                const RotateWithOffset = 'RotateWithOffset';
                const _FusedMatMul = '_FusedMatMul';
                const FusedConv2D = 'FusedConv2D';
                const FusedDepthwiseConv2D = 'FusedDepthwiseConv2D';
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const EPSILON_FLOAT32 = 1e-7;
                const EPSILON_FLOAT16 = 1e-4;
                /** Convenient class for storing tensor-related data. */
                class DataStorage {
                    constructor(backend, dataMover) {
                        this.backend = backend;
                        this.dataMover = dataMover;
                        this.data = new WeakMap();
                        this.dataIdsCount = 0;
                    }
                    get(dataId) {
                        if (!this.data.has(dataId)) {
                            this.dataMover.moveData(this.backend, dataId);
                        }
                        return this.data.get(dataId);
                    }
                    set(dataId, value) {
                        this.dataIdsCount++;
                        this.data.set(dataId, value);
                    }
                    has(dataId) {
                        return this.data.has(dataId);
                    }
                    delete(dataId) {
                        this.dataIdsCount--;
                        return this.data.delete(dataId);
                    }
                    numDataIds() {
                        return this.dataIdsCount;
                    }
                }
                /**
 * The interface that defines the kernels that should be implemented when
 * adding a new backend. New backends don't need to implement every one of the
 * methods, this can be done gradually (throw an error for unimplemented
 * methods).
 */
                class KernelBackend {
                    refCount(dataId) {
                        return notYetImplemented('refCount');
                    }
                    incRef(dataId) {
                        return notYetImplemented('incRef');
                    }
                    timerAvailable() {
                        return true;
                    }
                    time(f) {
                        return notYetImplemented('time');
                    }
                    read(dataId) {
                        return notYetImplemented('read');
                    }
                    readSync(dataId) {
                        return notYetImplemented('readSync');
                    }
                    readToGPU(dataId, options) {
                        return notYetImplemented('readToGPU');
                    }
                    numDataIds() {
                        return notYetImplemented('numDataIds');
                    }
                    disposeData(dataId, force) {
                        return notYetImplemented('disposeData');
                    }
                    write(values, shape, dtype) {
                        return notYetImplemented('write');
                    }
                    move(dataId, values, shape, dtype, refCount) {
                        return notYetImplemented('move');
                    }
                    createTensorFromTexture(values, shape, dtype) {
                        return notYetImplemented('createTensorFromTexture');
                    }
                    memory() {
                        return notYetImplemented('memory');
                    }
                    /** Returns the highest precision for floats in bits (e.g. 16 or 32) */
                    floatPrecision() {
                        return notYetImplemented('floatPrecision');
                    }
                    /** Returns the smallest representable number.  */
                    epsilon() {
                        return this.floatPrecision() === 32 ? EPSILON_FLOAT32 : EPSILON_FLOAT16;
                    }
                    dispose() {
                        return notYetImplemented('dispose');
                    }
                }
                function notYetImplemented(kernelName) {
                    throw new Error(`'${kernelName}' not yet implemented or not found in the registry. ` + `This kernel may not be supported by the tfjs backend you have chosen`);
                }
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Shuffles the array in-place using Fisher-Yates algorithm.
 *
 * ```js
 * const a = [1, 2, 3, 4, 5];
 * tf.util.shuffle(a);
 * console.log(a);
 * ```
 *
 * @param array The array to shuffle in-place.
 *
 * @doc {heading: 'Util', namespace: 'util'}
 */
                // tslint:disable-next-line:no-any
                function shuffle(array) {
                    let counter = array.length;
                    let index = 0;
                    // While there are elements in the array
                    while (counter > 0) {
                        // Pick a random index
                        index = Math.random() * counter | 0;
                        // Decrease counter by 1
                        counter--;
                        // And swap the last element with it
                        swap(array, counter, index);
                    }
                }
                /**
 * Shuffles two arrays in-place the same way using Fisher-Yates algorithm.
 *
 * ```js
 * const a = [1,2,3,4,5];
 * const b = [11,22,33,44,55];
 * tf.util.shuffleCombo(a, b);
 * console.log(a, b);
 * ```
 *
 * @param array The first array to shuffle in-place.
 * @param array2 The second array to shuffle in-place with the same permutation
 *     as the first array.
 *
 * @doc {heading: 'Util', namespace: 'util'}
 */
                function shuffleCombo(// tslint:disable-next-line:no-any
                    array, // tslint:disable-next-line:no-any
                    array2) {
                    if (array.length !== array2.length) {
                        throw new Error(`Array sizes must match to be shuffled together ` + `First array length was ${array.length}` + `Second array length was ${array2.length}`);
                    }
                    let counter = array.length;
                    let index = 0;
                    // While there are elements in the array
                    while (counter > 0) {
                        // Pick a random index
                        index = Math.random() * counter | 0;
                        // Decrease counter by 1
                        counter--;
                        // And swap the last element of each array with it
                        swap(array, counter, index);
                        swap(array2, counter, index);
                    }
                }
                /** Clamps a value to a specified range. */
                function clamp(min, x, max) {
                    return Math.max(min, Math.min(x, max));
                }
                function nearestLargerEven(val) {
                    return val % 2 === 0 ? val : val + 1;
                }
                function swap(object, left, right) {
                    const temp = object[left];
                    object[left] = object[right];
                    object[right] = temp;
                }
                function sum(arr) {
                    let sum = 0;
                    for (let i = 0; i < arr.length; i++) {
                        sum += arr[i];
                    }
                    return sum;
                }
                /**
 * Returns a sample from a uniform [a, b) distribution.
 *
 * @param a The minimum support (inclusive).
 * @param b The maximum support (exclusive).
 * @return A pseudorandom number on the half-open interval [a,b).
 */
                function randUniform(a, b) {
                    const r = Math.random();
                    return b * r + (1 - r) * a;
                }
                /** Returns the squared Euclidean distance between two vectors. */
                function distSquared(a, b) {
                    let result = 0;
                    for (let i = 0; i < a.length; i++) {
                        const diff = Number(a[i]) - Number(b[i]);
                        result += diff * diff;
                    }
                    return result;
                }
                /**
 * Asserts that the expression is true. Otherwise throws an error with the
 * provided message.
 *
 * ```js
 * const x = 2;
 * tf.util.assert(x === 2, 'x is not 2');
 * ```
 *
 * @param expr The expression to assert (as a boolean).
 * @param msg A function that returns the message to report when throwing an
 *     error. We use a function for performance reasons.
 *
 * @doc {heading: 'Util', namespace: 'util'}
 */
                function assert(expr, msg) {
                    if (!expr) {
                        throw new Error(typeof msg === 'string' ? msg : msg());
                    }
                }
                function assertShapesMatch(shapeA, shapeB, errorMessagePrefix = '') {
                    assert(arraysEqual(shapeA, shapeB), () => errorMessagePrefix + ` Shapes ${shapeA} and ${shapeB} must match`);
                }
                function assertNonNull(a) {
                    assert(a != null, () => `The input to the tensor constructor must be a non-null value.`);
                }
                // NOTE: We explicitly type out what T extends instead of any so that
                // util.flatten on a nested array of number doesn't try to infer T as a
                // number[][], causing us to explicitly type util.flatten<number>().
                /**
 *  Flattens an arbitrarily nested array.
 *
 * ```js
 * const a = [[1, 2], [3, 4], [5, [6, [7]]]];
 * const flat = tf.util.flatten(a);
 * console.log(flat);
 * ```
 *
 *  @param arr The nested array to flatten.
 *  @param result The destination array which holds the elements.
 *  @param skipTypedArray If true, avoids flattening the typed arrays. Defaults
 *      to false.
 *
 * @doc {heading: 'Util', namespace: 'util'}
 */
                function flatten(arr, result = [], skipTypedArray = false) {
                    if (result == null) {
                        result = [];
                    }
                    if (Array.isArray(arr) || isTypedArray(arr) && !skipTypedArray) {
                        for (let i = 0; i < arr.length; ++i) {
                            flatten(arr[i], result, skipTypedArray);
                        }
                    } else {
                        result.push(arr);
                    }
                    return result;
                }
                /**
 * Returns the size (number of elements) of the tensor given its shape.
 *
 * ```js
 * const shape = [3, 4, 2];
 * const size = tf.util.sizeFromShape(shape);
 * console.log(size);
 * ```
 *
 * @doc {heading: 'Util', namespace: 'util'}
 */
                function sizeFromShape(shape) {
                    if (shape.length === 0) {
                        // Scalar.
                        return 1;
                    }
                    let size = shape[0];
                    for (let i = 1; i < shape.length; i++) {
                        size *= shape[i];
                    }
                    return size;
                }
                function isScalarShape(shape) {
                    return shape.length === 0;
                }
                function arraysEqual(n1, n2) {
                    if (n1 === n2) {
                        return true;
                    }
                    if (n1 == null || n2 == null) {
                        return false;
                    }
                    if (n1.length !== n2.length) {
                        return false;
                    }
                    for (let i = 0; i < n1.length; i++) {
                        if (n1[i] !== n2[i]) {
                            return false;
                        }
                    }
                    return true;
                }
                function isInt(a) {
                    return a % 1 === 0;
                }
                function tanh(x) {
                    // tslint:disable-next-line:no-any
                    if (Math.tanh != null) {
                        // tslint:disable-next-line:no-any
                        return Math.tanh(x);
                    }
                    if (x === Infinity) {
                        return 1;
                    } else if (x === -Infinity) {
                        return -1;
                    } else {
                        const e2x = Math.exp(2 * x);
                        return (e2x - 1) / (e2x + 1);
                    }
                }
                function sizeToSquarishShape(size) {
                    const width = Math.ceil(Math.sqrt(size));
                    return [width, Math.ceil(size / width)];
                }
                /**
 * Creates a new array with randomized indices to a given quantity.
 *
 * ```js
 * const randomTen = tf.util.createShuffledIndices(10);
 * console.log(randomTen);
 * ```
 *
 * @param number Quantity of how many shuffled indices to create.
 *
 * @doc {heading: 'Util', namespace: 'util'}
 */
                function createShuffledIndices(n) {
                    const shuffledIndices = new Uint32Array(n);
                    for (let i = 0; i < n; ++i) {
                        shuffledIndices[i] = i;
                    }
                    shuffle(shuffledIndices);
                    return shuffledIndices;
                }
                function rightPad(a, size) {
                    if (size <= a.length) {
                        return a;
                    }
                    return a + ' '.repeat(size - a.length);
                }
                function repeatedTry(checkFn, delayFn = counter => 0, maxCounter, scheduleFn) {
                    return new Promise((resolve, reject) => {
                        let tryCount = 0;
                        const tryFn = () => {
                            if (checkFn()) {
                                resolve();
                                return;
                            }
                            tryCount++;
                            const nextBackoff = delayFn(tryCount);
                            if (maxCounter != null && tryCount >= maxCounter) {
                                reject();
                                return;
                            }
                            if (scheduleFn != null) {
                                scheduleFn(tryFn, nextBackoff);
                            } else {
                                // google3 does not allow assigning another variable to setTimeout.
                                // Don't refactor this so scheduleFn has a default value of setTimeout.
                                setTimeout(tryFn, nextBackoff);
                            }
                        }
                            ;
                        tryFn();
                    }
                    );
                }
                /**
 * Given the full size of the array and a shape that may contain -1 as the
 * implicit dimension, returns the inferred shape where -1 is replaced.
 * E.g. For shape=[2, -1, 3] and size=24, it will return [2, 4, 3].
 *
 * @param shape The shape, which may contain -1 in some dimension.
 * @param size The full size (number of elements) of the array.
 * @return The inferred shape where -1 is replaced with the inferred size.
 */
                function inferFromImplicitShape(shape, size) {
                    let shapeProd = 1;
                    let implicitIdx = -1;
                    for (let i = 0; i < shape.length; ++i) {
                        if (shape[i] >= 0) {
                            shapeProd *= shape[i];
                        } else if (shape[i] === -1) {
                            if (implicitIdx !== -1) {
                                throw Error(`Shapes can only have 1 implicit size. ` + `Found -1 at dim ${implicitIdx} and dim ${i}`);
                            }
                            implicitIdx = i;
                        } else if (shape[i] < 0) {
                            throw Error(`Shapes can not be < 0. Found ${shape[i]} at dim ${i}`);
                        }
                    }
                    if (implicitIdx === -1) {
                        if (size > 0 && size !== shapeProd) {
                            throw Error(`Size(${size}) must match the product of shape ${shape}`);
                        }
                        return shape;
                    }
                    if (shapeProd === 0) {
                        throw Error(`Cannot infer the missing size in [${shape}] when ` + `there are 0 elements`);
                    }
                    if (size % shapeProd !== 0) {
                        throw Error(`The implicit shape can't be a fractional number. ` + `Got ${size} / ${shapeProd}`);
                    }
                    const newShape = shape.slice();
                    newShape[implicitIdx] = size / shapeProd;
                    return newShape;
                }
                function parseAxisParam(axis, shape) {
                    const rank = shape.length;
                    // Normalize input
                    axis = axis == null ? shape.map((s, i) => i) : [].concat(axis);
                    // Check for valid range
                    assert(axis.every(ax => ax >= -rank && ax < rank), () => `All values in axis param must be in range [-${rank}, ${rank}) but ` + `got axis ${axis}`);
                    // Check for only integers
                    assert(axis.every(ax => isInt(ax)), () => `All values in axis param must be integers but ` + `got axis ${axis}`);
                    // Handle negative axis.
                    return axis.map(a => a < 0 ? rank + a : a);
                }
                /** Reduces the shape by removing all dimensions of shape 1. */
                function squeezeShape(shape, axis) {
                    const newShape = [];
                    const keptDims = [];
                    const isEmptyArray = axis != null && Array.isArray(axis) && axis.length === 0;
                    const axes = axis == null || isEmptyArray ? null : parseAxisParam(axis, shape).sort();
                    let j = 0;
                    for (let i = 0; i < shape.length; ++i) {
                        if (axes != null) {
                            if (axes[j] === i && shape[i] !== 1) {
                                throw new Error(`Can't squeeze axis ${i} since its dim '${shape[i]}' is not 1`);
                            }
                            if ((axes[j] == null || axes[j] > i) && shape[i] === 1) {
                                newShape.push(shape[i]);
                                keptDims.push(i);
                            }
                            if (axes[j] <= i) {
                                j++;
                            }
                        }
                        if (shape[i] !== 1) {
                            newShape.push(shape[i]);
                            keptDims.push(i);
                        }
                    }
                    return {
                        newShape,
                        keptDims
                    };
                }
                function getTypedArrayFromDType(dtype, size) {
                    let values = null;
                    if (dtype == null || dtype === 'float32') {
                        values = new Float32Array(size);
                    } else if (dtype === 'int32') {
                        values = new Int32Array(size);
                    } else if (dtype === 'bool') {
                        values = new Uint8Array(size);
                    } else {
                        throw new Error(`Unknown data type ${dtype}`);
                    }
                    return values;
                }
                function getArrayFromDType(dtype, size) {
                    let values = null;
                    if (dtype == null || dtype === 'float32') {
                        values = new Float32Array(size);
                    } else if (dtype === 'int32') {
                        values = new Int32Array(size);
                    } else if (dtype === 'bool') {
                        values = new Uint8Array(size);
                    } else if (dtype === 'string') {
                        values = new Array(size);
                    } else {
                        throw new Error(`Unknown data type ${dtype}`);
                    }
                    return values;
                }
                function checkConversionForErrors(vals, dtype) {
                    for (let i = 0; i < vals.length; i++) {
                        const num = vals[i];
                        if (isNaN(num) || !isFinite(num)) {
                            throw Error(`A tensor of type ${dtype} being uploaded contains ${num}.`);
                        }
                    }
                }
                /** Returns true if the dtype is valid. */
                function isValidDtype(dtype) {
                    return dtype === 'bool' || dtype === 'complex64' || dtype === 'float32' || dtype === 'int32' || dtype === 'string';
                }
                /**
 * Returns true if the new type can't encode the old type without loss of
 * precision.
 */
                function hasEncodingLoss(oldType, newType) {
                    if (newType === 'complex64') {
                        return false;
                    }
                    if (newType === 'float32' && oldType !== 'complex64') {
                        return false;
                    }
                    if (newType === 'int32' && oldType !== 'float32' && oldType !== 'complex64') {
                        return false;
                    }
                    if (newType === 'bool' && oldType === 'bool') {
                        return false;
                    }
                    return true;
                }
                function isTypedArray(a) {
                    return a instanceof Float32Array || a instanceof Int32Array || a instanceof Uint8Array || a instanceof Uint8ClampedArray;
                }
                function bytesPerElement(dtype) {
                    if (dtype === 'float32' || dtype === 'int32') {
                        return 4;
                    } else if (dtype === 'complex64') {
                        return 8;
                    } else if (dtype === 'bool') {
                        return 1;
                    } else {
                        throw new Error(`Unknown dtype ${dtype}`);
                    }
                }
                /**
 * Returns the approximate number of bytes allocated in the string array - 2
 * bytes per character. Computing the exact bytes for a native string in JS
 * is not possible since it depends on the encoding of the html page that
 * serves the website.
 */
                function bytesFromStringArray(arr) {
                    if (arr == null) {
                        return 0;
                    }
                    let bytes = 0;
                    arr.forEach(x => bytes += x.length);
                    return bytes;
                }
                /** Returns true if the value is a string. */
                function isString(value) {
                    return typeof value === 'string' || value instanceof String;
                }
                function isBoolean(value) {
                    return typeof value === 'boolean';
                }
                function isNumber(value) {
                    return typeof value === 'number';
                }
                function inferDtype(values) {
                    if (Array.isArray(values)) {
                        return inferDtype(values[0]);
                    }
                    if (values instanceof Float32Array) {
                        return 'float32';
                    } else if (values instanceof Int32Array || values instanceof Uint8Array || values instanceof Uint8ClampedArray) {
                        return 'int32';
                    } else if (isNumber(values)) {
                        return 'float32';
                    } else if (isString(values)) {
                        return 'string';
                    } else if (isBoolean(values)) {
                        return 'bool';
                    }
                    return 'float32';
                }
                function isFunction(f) {
                    return !!(f && f.constructor && f.call && f.apply);
                }
                function nearestDivisor(size, start) {
                    for (let i = start; i < size; ++i) {
                        if (size % i === 0) {
                            return i;
                        }
                    }
                    return size;
                }
                function computeStrides(shape) {
                    const rank = shape.length;
                    if (rank < 2) {
                        return [];
                    }
                    // Last dimension has implicit stride of 1, thus having D-1 (instead of D)
                    // strides.
                    const strides = new Array(rank - 1);
                    strides[rank - 2] = shape[rank - 1];
                    for (let i = rank - 3; i >= 0; --i) {
                        strides[i] = strides[i + 1] * shape[i + 1];
                    }
                    return strides;
                }
                function createNestedArray(offset, shape, a, isComplex = false) {
                    const ret = new Array();
                    if (shape.length === 1) {
                        const d = shape[0] * (isComplex ? 2 : 1);
                        for (let i = 0; i < d; i++) {
                            ret[i] = a[offset + i];
                        }
                    } else {
                        const d = shape[0];
                        const rest = shape.slice(1);
                        const len = rest.reduce((acc, c) => acc * c) * (isComplex ? 2 : 1);
                        for (let i = 0; i < d; i++) {
                            ret[i] = createNestedArray(offset + i * len, rest, a, isComplex);
                        }
                    }
                    return ret;
                }
                // Provide a nested array of TypedArray in given shape.
                function toNestedArray(shape, a, isComplex = false) {
                    if (shape.length === 0) {
                        // Scalar type should return a single number.
                        return a[0];
                    }
                    const size = shape.reduce((acc, c) => acc * c) * (isComplex ? 2 : 1);
                    if (size === 0) {
                        // A tensor with shape zero should be turned into empty list.
                        return [];
                    }
                    if (size !== a.length) {
                        throw new Error(`[${shape}] does not match the input size ${a.length}${isComplex ? ' for a complex tensor' : ''}.`);
                    }
                    return createNestedArray(0, shape, a, isComplex);
                }
                function makeOnesTypedArray(size, dtype) {
                    const array = makeZerosTypedArray(size, dtype);
                    for (let i = 0; i < array.length; i++) {
                        array[i] = 1;
                    }
                    return array;
                }
                function makeZerosTypedArray(size, dtype) {
                    if (dtype == null || dtype === 'float32' || dtype === 'complex64') {
                        return new Float32Array(size);
                    } else if (dtype === 'int32') {
                        return new Int32Array(size);
                    } else if (dtype === 'bool') {
                        return new Uint8Array(size);
                    } else {
                        throw new Error(`Unknown data type ${dtype}`);
                    }
                }
                /**
 * Make nested `TypedArray` filled with zeros.
 * @param shape The shape information for the nested array.
 * @param dtype dtype of the array element.
 */
                function makeZerosNestedTypedArray(shape, dtype) {
                    const size = shape.reduce((prev, curr) => prev * curr, 1);
                    if (dtype == null || dtype === 'float32') {
                        return toNestedArray(shape, new Float32Array(size));
                    } else if (dtype === 'int32') {
                        return toNestedArray(shape, new Int32Array(size));
                    } else if (dtype === 'bool') {
                        return toNestedArray(shape, new Uint8Array(size));
                    } else {
                        throw new Error(`Unknown data type ${dtype}`);
                    }
                }
                function assertNonNegativeIntegerDimensions(shape) {
                    shape.forEach(dimSize => {
                        assert(Number.isInteger(dimSize) && dimSize >= 0, () => `Tensor must have a shape comprised of positive integers but got ` + `shape [${shape}].`);
                    }
                    );
                }
                /**
 * Computes flat index for a given location (multidimentionsal index) in a
 * Tensor/multidimensional array.
 *
 * @param locs Location in the tensor.
 * @param rank Rank of the tensor.
 * @param strides Tensor strides.
 */
                function locToIndex(locs, rank, strides) {
                    if (rank === 0) {
                        return 0;
                    } else if (rank === 1) {
                        return locs[0];
                    }
                    let index = locs[locs.length - 1];
                    for (let i = 0; i < locs.length - 1; ++i) {
                        index += strides[i] * locs[i];
                    }
                    return index;
                }
                /**
 * Computes the location (multidimensional index) in a
 * tensor/multidimentional array for a given flat index.
 *
 * @param index Index in flat array.
 * @param rank Rank of tensor.
 * @param strides Strides of tensor.
 */
                function indexToLoc(index, rank, strides) {
                    if (rank === 0) {
                        return [];
                    } else if (rank === 1) {
                        return [index];
                    }
                    const locs = new Array(rank);
                    for (let i = 0; i < locs.length - 1; ++i) {
                        locs[i] = Math.floor(index / strides[i]);
                        index -= locs[i] * strides[i];
                    }
                    locs[locs.length - 1] = index;
                    return locs;
                }
                /**
 * This method asserts whether an object is a Promise instance.
 * @param object
 */
                // tslint:disable-next-line: no-any
                function isPromise(object) {
                    //  We chose to not use 'obj instanceOf Promise' for two reasons:
                    //  1. It only reliably works for es6 Promise, not other Promise
                    //  implementations.
                    //  2. It doesn't work with framework that uses zone.js. zone.js monkey
                    //  patch the async calls, so it is possible the obj (patched) is
                    //  comparing to a pre-patched Promise.
                    return object && object.then && typeof object.then === 'function';
                }
                /**
 * @license
 * Copyright 2017 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                // Expects flags from URL in the format ?tfjsflags=FLAG1:1,FLAG2:true.
                const TENSORFLOWJS_FLAGS_PREFIX = 'tfjsflags';
                /**
 * The environment contains evaluated flags as well as the registered platform.
 * This is always used as a global singleton and can be retrieved with
 * `tf.env()`.
 *
 * @doc {heading: 'Environment'}
 */
                class Environment {
                    // tslint:disable-next-line: no-any
                    constructor(global) {
                        this.global = global;
                        this.flags = {};
                        this.flagRegistry = {};
                        this.urlFlags = {};
                        // Jasmine spies on this in 'environment_test.ts'
                        this.getQueryParams = getQueryParams;
                        this.populateURLFlags();
                    }
                    setPlatform(platformName, platform) {
                        if (this.platform != null) {
                            if (!(env().getBool('IS_TEST') || env().getBool('PROD'))) {
                                console.warn(`Platform ${this.platformName} has already been set. ` + `Overwriting the platform with ${platformName}.`);
                            }
                        }
                        this.platformName = platformName;
                        this.platform = platform;
                    }
                    registerFlag(flagName, evaluationFn, setHook) {
                        this.flagRegistry[flagName] = {
                            evaluationFn,
                            setHook
                        };
                        // Override the flag value from the URL. This has to happen here because
                        // the environment is initialized before flags get registered.
                        if (this.urlFlags[flagName] != null) {
                            const flagValue = this.urlFlags[flagName];
                            if (!(env().getBool('IS_TEST') || env().getBool('PROD'))) {
                                console.warn(`Setting feature override from URL ${flagName}: ${flagValue}.`);
                            }
                            this.set(flagName, flagValue);
                        }
                    }
                    async getAsync(flagName) {
                        if (flagName in this.flags) {
                            return this.flags[flagName];
                        }
                        this.flags[flagName] = await this.evaluateFlag(flagName);
                        return this.flags[flagName];
                    }
                    get(flagName) {
                        if (flagName in this.flags) {
                            return this.flags[flagName];
                        }
                        const flagValue = this.evaluateFlag(flagName);
                        if (isPromise(flagValue)) {
                            throw new Error(`Flag ${flagName} cannot be synchronously evaluated. ` + `Please use getAsync() instead.`);
                        }
                        this.flags[flagName] = flagValue;
                        return this.flags[flagName];
                    }
                    getNumber(flagName) {
                        return this.get(flagName);
                    }
                    getBool(flagName) {
                        return this.get(flagName);
                    }
                    getFlags() {
                        return this.flags;
                    }
                    // For backwards compatibility.
                    get features() {
                        return this.flags;
                    }
                    set(flagName, value) {
                        if (this.flagRegistry[flagName] == null) {
                            throw new Error(`Cannot set flag ${flagName} as it has not been registered.`);
                        }
                        this.flags[flagName] = value;
                        if (this.flagRegistry[flagName].setHook != null) {
                            this.flagRegistry[flagName].setHook(value);
                        }
                    }
                    evaluateFlag(flagName) {
                        if (this.flagRegistry[flagName] == null) {
                            throw new Error(`Cannot evaluate flag '${flagName}': no evaluation function found.`);
                        }
                        return this.flagRegistry[flagName].evaluationFn();
                    }
                    setFlags(flags) {
                        this.flags = Object.assign({}, flags);
                    }
                    reset() {
                        this.flags = {};
                        this.urlFlags = {};
                        this.populateURLFlags();
                    }
                    populateURLFlags() {
                        if (typeof this.global === 'undefined' || typeof this.global.location === 'undefined' || typeof this.global.location.search === 'undefined') {
                            return;
                        }
                        const urlParams = this.getQueryParams(this.global.location.search);
                        if (TENSORFLOWJS_FLAGS_PREFIX in urlParams) {
                            const keyValues = urlParams[TENSORFLOWJS_FLAGS_PREFIX].split(',');
                            keyValues.forEach(keyValue => {
                                const [key, value] = keyValue.split(':');
                                this.urlFlags[key] = parseValue(key, value);
                            }
                            );
                        }
                    }
                }
                function getQueryParams(queryString) {
                    const params = {};
                    queryString.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g, (s, ...t) => {
                        decodeParam(params, t[0], t[1]);
                        return t.join('=');
                    }
                    );
                    return params;
                }
                function decodeParam(params, name, value) {
                    params[decodeURIComponent(name)] = decodeURIComponent(value || '');
                }
                function parseValue(flagName, value) {
                    value = value.toLowerCase();
                    if (value === 'true' || value === 'false') {
                        return value === 'true';
                    } else if (`${+value}` === value) {
                        return +value;
                    }
                    throw new Error(`Could not parse value flag value ${value} for flag ${flagName}.`);
                }
                /**
 * Returns the current environment (a global singleton).
 *
 * The environment object contains the evaluated feature values as well as the
 * active platform.
 *
 * @doc {heading: 'Environment'}
 */
                function env() {
                    return ENV;
                }
                let ENV = null;
                function setEnvironmentGlobal(environment) {
                    ENV = environment;
                }
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                // Note that the identifier globalNameSpace is scoped to this module, but will
                // always resolve to the same global object regardless of how the module is
                // resolved.
                // tslint:disable-next-line:no-any
                let globalNameSpace;
                // tslint:disable-next-line:no-any
                function getGlobalNamespace() {
                    if (globalNameSpace == null) {
                        // tslint:disable-next-line:no-any
                        let ns;
                        if (typeof window !== 'undefined') {
                            ns = window;
                        } else if (typeof global !== 'undefined') {
                            ns = global;
                        } else if (typeof process !== 'undefined') {
                            ns = process;
                        } else if (typeof self !== 'undefined') {
                            ns = self;
                        } else {
                            throw new Error('Could not find a global object');
                        }
                        globalNameSpace = ns;
                    }
                    return globalNameSpace;
                }
                // tslint:disable-next-line:no-any
                function getGlobalMap() {
                    const ns = getGlobalNamespace();
                    if (ns._tfGlobals == null) {
                        ns._tfGlobals = new Map();
                    }
                    return ns._tfGlobals;
                }
                /**
 * Returns a globally accessible 'singleton' object.
 *
 * @param key the name of the object
 * @param init a function to initialize to initialize this object
 *             the first time it is fetched.
 */
                function getGlobal(key, init) {
                    const globalMap = getGlobalMap();
                    if (globalMap.has(key)) {
                        return globalMap.get(key);
                    } else {
                        const singleton = init();
                        globalMap.set(key, singleton);
                        return globalMap.get(key);
                    }
                }
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                function warn(...msg) {
                    if (!(env().getBool('IS_TEST') || env().getBool('PROD'))) {
                        console.warn(...msg);
                    }
                }
                function log(...msg) {
                    if (!(env().getBool('IS_TEST') || env().getBool('PROD'))) {
                        console.log(...msg);
                    }
                }
                /**
 * @license
 * Copyright 2019 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const kernelRegistry = getGlobal('kernelRegistry', () => new Map());
                const gradRegistry = getGlobal('gradRegistry', () => new Map());
                /**
 * Returns the kernel function (code) associated with the provided names.
 *
 * @param kernelName The official name of the kernel.
 * @param backendName The official name of the backend.
 */
                function getKernel(kernelName, backendName) {
                    const key = makeKey(kernelName, backendName);
                    return kernelRegistry.get(key);
                }
                /**
 * Returns the registered gradient info associated with the provided kernel.
 * @param kernelName The official TF kernel name.
 */
                function getGradient(kernelName) {
                    return gradRegistry.get(kernelName);
                }
                function getKernelsForBackend(backendName) {
                    const it = kernelRegistry.entries();
                    const result = [];
                    while (true) {
                        const { done, value } = it.next();
                        if (done) {
                            break;
                        }
                        const [key, config] = value;
                        const [backend] = key.split('_');
                        if (backend === backendName) {
                            result.push(config);
                        }
                    }
                    return result;
                }
                /**
 * Registers the function (forward pass) for the kernel in a global registry.
 *
 * @param config A config object with the following properties:
 * - `kernelName` The official name of the kernel.
 * - `backendName` The official name of the backend.
 * - `kernelFunc` The function to run during the forward pass of the kernel.
 * - `setupFunc` Optional. Gets called once, after the backend initializes.
 * - `disposeFunc` Optional. Gets called once, right before the backend is
 * disposed.
 */
                function registerKernel(config) {
                    const { kernelName, backendName } = config;
                    const key = makeKey(kernelName, backendName);
                    if (kernelRegistry.has(key)) {
                        warn(`The kernel '${kernelName}' for backend ` + `'${backendName}' is already registered`);
                    }
                    kernelRegistry.set(key, config);
                }
                /**
 * Registers a gradient function for a given kernel in the global registry,
 * to be used during the back-propagation of that kernel.
 *
 * @param config An object with the following properties:
 * - `kernelName` The name of the kernel that the gradient function is for.
 * - `gradFunc` The function to run during back-propagation.
 */
                function registerGradient(config) {
                    const { kernelName } = config;
                    if (gradRegistry.has(kernelName)) {
                        // TODO (yassogba) after 3.0 assess whether we need to keep this gated
                        // to debug mode.
                        if (env().getBool('DEBUG')) {
                            warn(`Overriding the gradient for '${kernelName}'`);
                        }
                    }
                    gradRegistry.set(kernelName, config);
                }
                /**
 * Removes the kernel function from the registry.
 *
 * @param kernelName The official name of the kernel.
 * @param backendName The official name of the backend.
 *
 */
                function unregisterKernel(kernelName, backendName) {
                    const key = makeKey(kernelName, backendName);
                    if (!kernelRegistry.has(key)) {
                        throw new Error(`The kernel '${kernelName}' for backend ` + `'${backendName}' is not registered`);
                    }
                    kernelRegistry.delete(key);
                }
                /** Removes the registered gradient from the global registry. */
                function unregisterGradient(kernelName) {
                    if (!gradRegistry.has(kernelName)) {
                        throw new Error(`The gradient '${kernelName}' for backend is not registered`);
                    }
                    gradRegistry.delete(kernelName);
                }
                /**
 * Finds kernels that have already been registered to a backend and re-registers
 * them for a new backend. Useful for registering custom backends.
 * @param registeredBackendName Already registered backend.
 * @param newBackendName New backend.
 */
                function copyRegisteredKernels(registeredBackendName, newBackendName) {
                    const kernels = getKernelsForBackend(registeredBackendName);
                    kernels.forEach(kernelConfig => {
                        const newKernelConfig = Object.assign({}, kernelConfig, {
                            backendName: newBackendName
                        });
                        registerKernel(newKernelConfig);
                    }
                    );
                }
                function makeKey(kernelName, backendName) {
                    return `${backendName}_${kernelName}`;
                }
                /**
 * @license
 * Copyright 2021 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                // tslint:disable-next-line
                const Long = // tslint:disable-next-line
                    LongExports__default || LongExports;
                function hexToLong(hex) {
                    return Long.fromString(hex, true, 16);
                }
                // Some primes between 2^63 and 2^64 for various uses.
                // Hex 0xc3a5c85c97cb3127
                const k0 = hexToLong('c3a5c85c97cb3127');
                // Hex 0xb492b66fbe98f273
                const k1 = hexToLong('b492b66fbe98f273');
                // Hex 0x9ae16a3b2f90404f
                const k2 = hexToLong('9ae16a3b2f90404f');
                function shiftMix(val) {
                    return val.xor(val.shru(47));
                }
                function fetch$1(s, offset, numBytes) {
                    const bytes = s.slice(offset, offset + numBytes);
                    return Long.fromBytes(Array.from(bytes), true, true);
                }
                function fetch64(s, offset) {
                    return fetch$1(s, offset, 8);
                }
                function fetch32(s, offset) {
                    return fetch$1(s, offset, 4);
                }
                function rotate64(val, shift) {
                    // Avoid shifting by 64: doing so yields an undefined result.
                    return shift === 0 ? val : val.shru(shift).or(val.shl(64 - shift));
                }
                function hashLen16(u, v, mul = hexToLong('9ddfea08eb382d69')) {
                    // Murmur-inspired hashing.
                    let a = u.xor(v).mul(mul);
                    a = a.xor(a.shru(47));
                    let b = v.xor(a).mul(mul);
                    b = b.xor(b.shru(47));
                    b = b.mul(mul);
                    return b;
                }
                // Return a 16-byte hash for 48 bytes.  Quick and dirty.
                // Callers do best to use "random-looking" values for a and b.
                function weakHashLen32WithSeeds(w, x, y, z, a, b) {
                    a = a.add(w);
                    b = rotate64(b.add(a).add(z), 21);
                    const c = a;
                    a = a.add(x);
                    a = a.add(y);
                    b = b.add(rotate64(a, 44));
                    return [a.add(z), b.add(c)];
                }
                function weakHashLen32WithSeedsStr(s, offset, a, b) {
                    return weakHashLen32WithSeeds(fetch64(s, offset), fetch64(s, offset + 8), fetch64(s, offset + 16), fetch64(s, offset + 24), a, b);
                }
                function hashLen0to16(s, len = s.length) {
                    if (len >= 8) {
                        const mul = k2.add(len * 2);
                        const a = fetch64(s, 0).add(k2);
                        const b = fetch64(s, len - 8);
                        const c = rotate64(b, 37).mul(mul).add(a);
                        const d = rotate64(a, 25).add(b).mul(mul);
                        return hashLen16(c, d, mul);
                    }
                    if (len >= 4) {
                        const mul = k2.add(len * 2);
                        const a = fetch32(s, 0);
                        return hashLen16(a.shl(3).add(len), fetch32(s, len - 4), mul);
                    }
                    if (len > 0) {
                        const a = s[0];
                        const b = s[len >> 1];
                        const c = s[len - 1];
                        const y = a + (b << 8);
                        const z = len + (c << 2);
                        return shiftMix(k2.mul(y).xor(k0.mul(z))).mul(k2);
                    }
                    return k2;
                }
                function hashLen17to32(s, len = s.length) {
                    const mul = k2.add(len * 2);
                    const a = fetch64(s, 0).mul(k1);
                    const b = fetch64(s, 8);
                    const c = fetch64(s, len - 8).mul(mul);
                    const d = fetch64(s, len - 16).mul(k2);
                    return hashLen16(rotate64(a.add(b), 43).add(rotate64(c, 30)).add(d), a.add(rotate64(b.add(k2), 18)).add(c), mul);
                }
                function hashLen33to64(s, len = s.length) {
                    const mul = k2.add(len * 2);
                    const a = fetch64(s, 0).mul(k2);
                    const b = fetch64(s, 8);
                    const c = fetch64(s, len - 8).mul(mul);
                    const d = fetch64(s, len - 16).mul(k2);
                    const y = rotate64(a.add(b), 43).add(rotate64(c, 30)).add(d);
                    const z = hashLen16(y, a.add(rotate64(b.add(k2), 18)).add(c), mul);
                    const e = fetch64(s, 16).mul(mul);
                    const f = fetch64(s, 24);
                    const g = y.add(fetch64(s, len - 32)).mul(mul);
                    const h = z.add(fetch64(s, len - 24)).mul(mul);
                    return hashLen16(rotate64(e.add(f), 43).add(rotate64(g, 30)).add(h), e.add(rotate64(f.add(a), 18)).add(g), mul);
                }
                function fingerPrint64(s, len = s.length) {
                    const seed = Long.fromNumber(81, true);
                    if (len <= 32) {
                        if (len <= 16) {
                            return hashLen0to16(s, len);
                        } else {
                            return hashLen17to32(s, len);
                        }
                    } else if (len <= 64) {
                        return hashLen33to64(s, len);
                    }
                    // For strings over 64 bytes we loop.  Internal state consists of
                    // 56 bytes: v, w, x, y, and z.
                    let x = seed;
                    let y = seed.mul(k1).add(113);
                    let z = shiftMix(y.mul(k2).add(113)).mul(k2);
                    let v = [Long.UZERO, Long.UZERO];
                    let w = [Long.UZERO, Long.UZERO];
                    x = x.mul(k2).add(fetch64(s, 0));
                    let offset = 0;
                    // Set end so that after the loop we have 1 to 64 bytes left to process.
                    const end = (len - 1 >> 6) * 64;
                    const last64 = end + (len - 1 & 63) - 63;
                    do {
                        x = rotate64(x.add(y).add(v[0]).add(fetch64(s, offset + 8)), 37).mul(k1);
                        y = rotate64(y.add(v[1]).add(fetch64(s, offset + 48)), 42).mul(k1);
                        x = x.xor(w[1]);
                        y = y.add(v[0]).add(fetch64(s, offset + 40));
                        z = rotate64(z.add(w[0]), 33).mul(k1);
                        v = weakHashLen32WithSeedsStr(s, offset, v[1].mul(k1), x.add(w[0]));
                        w = weakHashLen32WithSeedsStr(s, offset + 32, z.add(w[1]), y.add(fetch64(s, offset + 16)));
                        [z, x] = [x, z];
                        offset += 64;
                    } while (offset !== end);
                    const mul = k1.add(z.and(0xff).shl(1));
                    // Point to the last 64 bytes of input.
                    offset = last64;
                    w[0] = w[0].add(len - 1 & 63);
                    v[0] = v[0].add(w[0]);
                    w[0] = w[0].add(v[0]);
                    x = rotate64(x.add(y).add(v[0]).add(fetch64(s, offset + 8)), 37).mul(mul);
                    y = rotate64(y.add(v[1]).add(fetch64(s, offset + 48)), 42).mul(mul);
                    x = x.xor(w[1].mul(9));
                    y = y.add(v[0].mul(9).add(fetch64(s, offset + 40)));
                    z = rotate64(z.add(w[0]), 33).mul(mul);
                    v = weakHashLen32WithSeedsStr(s, offset, v[1].mul(mul), x.add(w[0]));
                    w = weakHashLen32WithSeedsStr(s, offset + 32, z.add(w[1]), y.add(fetch64(s, offset + 16)));
                    [z, x] = [x, z];
                    return hashLen16(hashLen16(v[0], w[0], mul).add(shiftMix(y).mul(k0)).add(z), hashLen16(v[1], w[1], mul).add(x), mul);
                }
                /**
 * @license
 * Copyright 2017 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Create typed array for scalar value. Used for storing in `DataStorage`.
 */
                function createScalarValue(value, dtype) {
                    if (dtype === 'string') {
                        return encodeString(value);
                    }
                    return toTypedArray([value], dtype);
                }
                function noConversionNeeded(a, dtype) {
                    return a instanceof Float32Array && dtype === 'float32' || a instanceof Int32Array && dtype === 'int32' || a instanceof Uint8Array && dtype === 'bool';
                }
                function toTypedArray(a, dtype) {
                    if (dtype === 'string') {
                        throw new Error('Cannot convert a string[] to a TypedArray');
                    }
                    if (Array.isArray(a)) {
                        a = flatten(a);
                    }
                    if (env().getBool('DEBUG')) {
                        checkConversionForErrors(a, dtype);
                    }
                    if (noConversionNeeded(a, dtype)) {
                        return a;
                    }
                    if (dtype == null || dtype === 'float32' || dtype === 'complex64') {
                        return new Float32Array(a);
                    } else if (dtype === 'int32') {
                        return new Int32Array(a);
                    } else if (dtype === 'bool') {
                        const bool = new Uint8Array(a.length);
                        for (let i = 0; i < bool.length; ++i) {
                            if (Math.round(a[i]) !== 0) {
                                bool[i] = 1;
                            }
                        }
                        return bool;
                    } else {
                        throw new Error(`Unknown data type ${dtype}`);
                    }
                }
                /**
 * Returns the current high-resolution time in milliseconds relative to an
 * arbitrary time in the past. It works across different platforms (node.js,
 * browsers).
 *
 * ```js
 * console.log(tf.util.now());
 * ```
 *
 * @doc {heading: 'Util', namespace: 'util'}
 */
                function now() {
                    return env().platform.now();
                }
                /**
 * Returns a platform-specific implementation of
 * [`fetch`](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API).
 *
 * If `fetch` is defined on the global object (`window`, `process`, etc.),
 * `tf.util.fetch` returns that function.
 *
 * If not, `tf.util.fetch` returns a platform-specific solution.
 *
 * ```js
 * const resource = await tf.util.fetch('https://unpkg.com/@tensorflow/tfjs');
 * // handle response
 * ```
 *
 * @doc {heading: 'Util'}
 */
                function fetch$2(path, requestInits) {
                    return env().platform.fetch(path, requestInits);
                }
                /**
 * Encodes the provided string into bytes using the provided encoding scheme.
 *
 * @param s The string to encode.
 * @param encoding The encoding scheme. Defaults to utf-8.
 *
 * @doc {heading: 'Util'}
 */
                function encodeString(s, encoding = 'utf-8') {
                    encoding = encoding || 'utf-8';
                    return env().platform.encode(s, encoding);
                }
                /**
 * Decodes the provided bytes into a string using the provided encoding scheme.
 * @param bytes The bytes to decode.
 *
 * @param encoding The encoding scheme. Defaults to utf-8.
 *
 * @doc {heading: 'Util'}
 */
                function decodeString(bytes, encoding = 'utf-8') {
                    encoding = encoding || 'utf-8';
                    return env().platform.decode(bytes, encoding);
                }
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                class Profiler {
                    constructor(backendTimer, logger) {
                        this.backendTimer = backendTimer;
                        this.logger = logger;
                        if (logger == null) {
                            this.logger = new Logger();
                        }
                    }
                    profileKernel(kernelName, inputs, f) {
                        let outputs;
                        const holdResultWrapperFn = () => {
                            outputs = f();
                        }
                            ;
                        let timer;
                        const start = now();
                        if (this.backendTimer.timerAvailable()) {
                            timer = this.backendTimer.time(holdResultWrapperFn);
                        } else {
                            holdResultWrapperFn();
                            for (const output of outputs) {
                                output.dataSync();
                            }
                            timer = Promise.resolve({
                                kernelMs: now() - start
                            });
                        }
                        if (env().getBool('CHECK_COMPUTATION_FOR_ERRORS')) {
                            for (let i = 0; i < outputs.length; i++) {
                                const output = outputs[i];
                                // Dangling promise here because we don't want to propagate up
                                // asynchronicity.
                                output.data().then(tensorVals => {
                                    checkComputationForErrors(tensorVals, output.dtype, kernelName);
                                }
                                );
                            }
                        }
                        const kernelProfile = {
                            kernelName,
                            outputs,
                            inputs,
                            timeMs: timer.then(timing => timing.kernelMs),
                            extraInfo: timer.then(timing => timing.getExtraProfileInfo != null ? timing.getExtraProfileInfo() : '')
                        };
                        return kernelProfile;
                    }
                    logKernelProfile(kernelProfile) {
                        const { kernelName, outputs, timeMs, inputs, extraInfo } = kernelProfile;
                        outputs.forEach(result => {
                            Promise.all([result.data(), timeMs, extraInfo]).then(valueContainer => {
                                this.logger.logKernelProfile(kernelName, result, valueContainer[0], valueContainer[1], inputs, valueContainer[2]);
                            }
                            );
                        }
                        );
                    }
                }
                function checkComputationForErrors(vals, dtype, kernelName) {
                    if (dtype !== 'float32') {
                        // Only floating point computations will generate NaN values
                        return false;
                    }
                    for (let i = 0; i < vals.length; i++) {
                        const num = vals[i];
                        if (isNaN(num) || !isFinite(num)) {
                            // Throwing custom exception so behavior is testable.
                            console.warn(`Found ${num} in the result of '${kernelName}'`);
                            return true;
                        }
                    }
                    return false;
                }
                class Logger {
                    logKernelProfile(name, result, vals, timeMs, inputs, extraInfo) {
                        const time = typeof timeMs === 'number' ? rightPad(`${timeMs}ms`, 9) : timeMs['error'];
                        const paddedName = rightPad(name, 25);
                        const rank = result.rank;
                        const size = result.size;
                        const shape = rightPad(result.shape.toString(), 14);
                        let inputShapesDescription = '';
                        for (const name in inputs) {
                            const input = inputs[name];
                            if (input != null) {
                                // The input might be a non-tensor (e.g HTMLImageElement), in which case
                                // we claim the output shape as input shape.
                                const inputShape = input.shape || result.shape;
                                const inputRank = inputShape.length;
                                inputShapesDescription += `${name}: ${inputRank}D ${inputRank > 0 ? inputShape : ''} `;
                            }
                        }
                        console.log(`%c${paddedName}\t%c${time}\t%c${rank}D ${shape}\t%c${size}\t%c${inputShapesDescription}\t%c${extraInfo}`, 'font-weight:bold', 'color:red', 'color:blue', 'color: orange', 'color: green', 'color: steelblue');
                    }
                }
                /**
 * @license
 * Copyright 2017 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes a list of TapeNodes that connect x to y, filtering everything else
 * out and preserving the order of the original tape elements.
 *
 * @param tape The tape elements to filter.
 * @param xs The input Tensors.
 * @param y The output Tensor.
 */
                function getFilteredNodesXToY(tape, xs, y) {
                    // Forward pass to compute all the nodes and Tensors that are transitively a
                    // function of x.
                    const tensorsFromX = {};
                    const nodesFromX = {};
                    for (let i = 0; i < xs.length; i++) {
                        tensorsFromX[xs[i].id] = true;
                    }
                    for (let i = 0; i < tape.length; i++) {
                        const node = tape[i];
                        const nodeInputs = node.inputs;
                        for (const inputName in nodeInputs) {
                            const input = nodeInputs[inputName];
                            let anyInputFromX = false;
                            for (let j = 0; j < xs.length; j++) {
                                if (tensorsFromX[input.id]) {
                                    node.outputs.forEach(output => tensorsFromX[output.id] = true);
                                    anyInputFromX = true;
                                    nodesFromX[node.id] = true;
                                    break;
                                }
                            }
                            if (anyInputFromX) {
                                break;
                            }
                        }
                    }
                    // Backward pass to find all of the nodes and Tensors that lead to y.
                    const tensorsLeadToY = {};
                    tensorsLeadToY[y.id] = true;
                    const nodesToY = {};
                    for (let i = tape.length - 1; i >= 0; i--) {
                        const node = tape[i];
                        const nodeInputs = node.inputs;
                        // If any of the outputs lead to y, mark all of the inputs as leading to y.
                        for (let j = 0; j < node.outputs.length; j++) {
                            if (tensorsLeadToY[node.outputs[j].id]) {
                                for (const inputName in nodeInputs) {
                                    tensorsLeadToY[nodeInputs[inputName].id] = true;
                                    nodesToY[node.id] = true;
                                }
                                break;
                            }
                        }
                    }
                    // Return the paths that come from x and lead to y.
                    const filteredTape = [];
                    for (let i = 0; i < tape.length; i++) {
                        const node = tape[i];
                        if (nodesFromX[node.id] && nodesToY[node.id]) {
                            // Prune the inputs from the node that aren't a function of x.
                            const prunedInputs = {};
                            for (const inputName in node.inputs) {
                                const nodeInput = node.inputs[inputName];
                                if (tensorsFromX[nodeInput.id]) {
                                    prunedInputs[inputName] = nodeInput;
                                }
                            }
                            // Copy the node and overwrite inputsAndArgs to the pruned version.
                            const prunedNode = Object.assign({}, node);
                            prunedNode.inputs = prunedInputs;
                            prunedNode.outputs = node.outputs;
                            filteredTape.push(prunedNode);
                        }
                    }
                    return filteredTape;
                }
                /**
 * Backpropagate gradients through the filtered TapeNodes.
 *
 * @param tensorAccumulatedGradientMap A map of Tensor to its gradient. This map
 * is mutated by this method.
 * @param filteredTape The filtered TapeNodes to backprop through.
 */
                function backpropagateGradients(tensorAccumulatedGradientMap, filteredTape, tidy, add) {
                    // Walk the tape backward and keep a map of Tensor to its gradient.
                    for (let i = filteredTape.length - 1; i >= 0; i--) {
                        const node = filteredTape[i];
                        const dys = [];
                        node.outputs.forEach(o => {
                            const gradTensor = tensorAccumulatedGradientMap[o.id];
                            if (gradTensor != null) {
                                dys.push(gradTensor);
                            } else {
                                // This particular output is not in the back-propagation subgraph, so it
                                // does not affect the final output, thus we put null for its dy.
                                dys.push(null);
                            }
                        }
                        );
                        if (node.gradient == null) {
                            throw new Error(`Cannot compute gradient: gradient function not found ` + `for ${node.kernelName}.`);
                        }
                        // Backprop dy through this node and accumulate gradients over the inputs.
                        const inputGradients = node.gradient(dys);
                        for (const inputName in node.inputs) {
                            if (!(inputName in inputGradients)) {
                                throw new Error(`Cannot backprop through input ${inputName}. ` + `Available gradients found: ${Object.keys(inputGradients)}.`);
                            }
                            // Call the gradient function.
                            const dx = tidy(() => inputGradients[inputName]());
                            if (dx.dtype !== 'float32') {
                                throw new Error(`Error in gradient for op ${node.kernelName}. The gradient of input ` + `${inputName} must have 'float32' dtype, but has '${dx.dtype}'`);
                            }
                            const x = node.inputs[inputName];
                            if (!arraysEqual(dx.shape, x.shape)) {
                                throw new Error(`Error in gradient for op ${node.kernelName}. The gradient of input ` + `'${inputName}' has shape '${dx.shape}', which does not match ` + `the shape of the input '${x.shape}'`);
                            }
                            if (tensorAccumulatedGradientMap[x.id] == null) {
                                tensorAccumulatedGradientMap[x.id] = dx;
                            } else {
                                const curGradient = tensorAccumulatedGradientMap[x.id];
                                tensorAccumulatedGradientMap[x.id] = add(curGradient, dx);
                                curGradient.dispose();
                            }
                        }
                    }
                }
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                // Maximum number of values before we decide to show ellipsis.
                const FORMAT_LIMIT_NUM_VALS = 20;
                // Number of first and last values to show when displaying a, b,...,y, z.
                const FORMAT_NUM_FIRST_LAST_VALS = 3;
                // Number of significant digits to show.
                const FORMAT_NUM_SIG_DIGITS = 7;
                function tensorToString(vals, shape, dtype, verbose) {
                    const strides = computeStrides(shape);
                    const padPerCol = computeMaxSizePerColumn(vals, shape, dtype, strides);
                    const rank = shape.length;
                    const valsLines = subTensorToString(vals, shape, dtype, strides, padPerCol);
                    const lines = ['Tensor'];
                    if (verbose) {
                        lines.push(`  dtype: ${dtype}`);
                        lines.push(`  rank: ${rank}`);
                        lines.push(`  shape: [${shape}]`);
                        lines.push(`  values:`);
                    }
                    lines.push(valsLines.map(l => '    ' + l).join('\n'));
                    return lines.join('\n');
                }
                function computeMaxSizePerColumn(vals, shape, dtype, strides) {
                    const n = sizeFromShape(shape);
                    const numCols = strides[strides.length - 1];
                    const padPerCol = new Array(numCols).fill(0);
                    const rank = shape.length;
                    const valuesOrTuples = dtype === 'complex64' ? createComplexTuples(vals) : vals;
                    if (rank > 1) {
                        for (let row = 0; row < n / numCols; row++) {
                            const offset = row * numCols;
                            for (let j = 0; j < numCols; j++) {
                                padPerCol[j] = Math.max(padPerCol[j], valToString(valuesOrTuples[offset + j], 0, dtype).length);
                            }
                        }
                    }
                    return padPerCol;
                }
                function valToString(val, pad, dtype) {
                    let valStr;
                    if (Array.isArray(val)) {
                        valStr = `${parseFloat(val[0].toFixed(FORMAT_NUM_SIG_DIGITS))} + ` + `${parseFloat(val[1].toFixed(FORMAT_NUM_SIG_DIGITS))}j`;
                    } else if (isString(val)) {
                        valStr = `'${val}'`;
                    } else if (dtype === 'bool') {
                        valStr = boolNumToString(val);
                    } else {
                        valStr = parseFloat(val.toFixed(FORMAT_NUM_SIG_DIGITS)).toString();
                    }
                    return rightPad(valStr, pad);
                }
                function boolNumToString(v) {
                    return v === 0 ? 'false' : 'true';
                }
                function subTensorToString(vals, shape, dtype, strides, padPerCol, isLast = true) {
                    const storagePerElement = dtype === 'complex64' ? 2 : 1;
                    const size = shape[0];
                    const rank = shape.length;
                    if (rank === 0) {
                        if (dtype === 'complex64') {
                            const complexTuple = createComplexTuples(vals);
                            return [valToString(complexTuple[0], 0, dtype)];
                        }
                        if (dtype === 'bool') {
                            return [boolNumToString(vals[0])];
                        }
                        return [vals[0].toString()];
                    }
                    if (rank === 1) {
                        if (size > FORMAT_LIMIT_NUM_VALS) {
                            const firstValsSize = FORMAT_NUM_FIRST_LAST_VALS * storagePerElement;
                            let firstVals = Array.from(vals.slice(0, firstValsSize));
                            let lastVals = Array.from(vals.slice((size - FORMAT_NUM_FIRST_LAST_VALS) * storagePerElement, size * storagePerElement));
                            if (dtype === 'complex64') {
                                firstVals = createComplexTuples(firstVals);
                                lastVals = createComplexTuples(lastVals);
                            }
                            return ['[' + firstVals.map((x, i) => valToString(x, padPerCol[i], dtype)).join(', ') + ', ..., ' + lastVals.map((x, i) => valToString(x, padPerCol[size - FORMAT_NUM_FIRST_LAST_VALS + i], dtype)).join(', ') + ']'];
                        }
                        const displayVals = dtype === 'complex64' ? createComplexTuples(vals) : Array.from(vals);
                        return ['[' + displayVals.map((x, i) => valToString(x, padPerCol[i], dtype)).join(', ') + ']'];
                    }
                    // The array is rank 2 or more.
                    const subshape = shape.slice(1);
                    const substrides = strides.slice(1);
                    const stride = strides[0] * storagePerElement;
                    const lines = [];
                    if (size > FORMAT_LIMIT_NUM_VALS) {
                        for (let i = 0; i < FORMAT_NUM_FIRST_LAST_VALS; i++) {
                            const start = i * stride;
                            const end = start + stride;
                            lines.push(...subTensorToString(vals.slice(start, end), subshape, dtype, substrides, padPerCol, false /* isLast */
                            ));
                        }
                        lines.push('...');
                        for (let i = size - FORMAT_NUM_FIRST_LAST_VALS; i < size; i++) {
                            const start = i * stride;
                            const end = start + stride;
                            lines.push(...subTensorToString(vals.slice(start, end), subshape, dtype, substrides, padPerCol, i === size - 1 /* isLast */
                            ));
                        }
                    } else {
                        for (let i = 0; i < size; i++) {
                            const start = i * stride;
                            const end = start + stride;
                            lines.push(...subTensorToString(vals.slice(start, end), subshape, dtype, substrides, padPerCol, i === size - 1 /* isLast */
                            ));
                        }
                    }
                    const sep = rank === 2 ? ',' : '';
                    lines[0] = '[' + lines[0] + sep;
                    for (let i = 1; i < lines.length - 1; i++) {
                        lines[i] = ' ' + lines[i] + sep;
                    }
                    let newLineSep = ',\n';
                    for (let i = 2; i < rank; i++) {
                        newLineSep += '\n';
                    }
                    lines[lines.length - 1] = ' ' + lines[lines.length - 1] + ']' + (isLast ? '' : newLineSep);
                    return lines;
                }
                function createComplexTuples(vals) {
                    const complexTuples = [];
                    for (let i = 0; i < vals.length; i += 2) {
                        complexTuples.push([vals[i], vals[i + 1]]);
                    }
                    return complexTuples;
                }
                /**
 * @license
 * Copyright 2017 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * A mutable object, similar to `tf.Tensor`, that allows users to set values
 * at locations before converting to an immutable `tf.Tensor`.
 *
 * See `tf.buffer` for creating a tensor buffer.
 *
 * @doc {heading: 'Tensors', subheading: 'Classes'}
 */
                class TensorBuffer {
                    constructor(shape, dtype, values) {
                        this.dtype = dtype;
                        this.shape = shape.slice();
                        this.size = sizeFromShape(shape);
                        if (values != null) {
                            const n = values.length;
                            assert(n === this.size, () => `Length of values '${n}' does not match the size ` + `inferred by the shape '${this.size}'.`);
                        }
                        if (dtype === 'complex64') {
                            throw new Error(`complex64 dtype TensorBuffers are not supported. Please create ` + `a TensorBuffer for the real and imaginary parts separately and ` + `call tf.complex(real, imag).`);
                        }
                        this.values = values || getArrayFromDType(dtype, this.size);
                        this.strides = computeStrides(shape);
                    }
                    /**
     * Sets a value in the buffer at a given location.
     *
     * @param value The value to set.
     * @param locs  The location indices.
     *
     * @doc {heading: 'Tensors', subheading: 'Creation'}
     */
                    set(value, ...locs) {
                        if (locs.length === 0) {
                            locs = [0];
                        }
                        assert(locs.length === this.rank, () => `The number of provided coordinates (${locs.length}) must ` + `match the rank (${this.rank})`);
                        const index = this.locToIndex(locs);
                        this.values[index] = value;
                    }
                    /**
     * Returns the value in the buffer at the provided location.
     *
     * @param locs The location indices.
     *
     * @doc {heading: 'Tensors', subheading: 'Creation'}
     */
                    get(...locs) {
                        if (locs.length === 0) {
                            locs = [0];
                        }
                        let i = 0;
                        for (const loc of locs) {
                            if (loc < 0 || loc >= this.shape[i]) {
                                const msg = `Requested out of range element at ${locs}. ` + `  Buffer shape=${this.shape}`;
                                throw new Error(msg);
                            }
                            i++;
                        }
                        let index = locs[locs.length - 1];
                        for (let i = 0; i < locs.length - 1; ++i) {
                            index += this.strides[i] * locs[i];
                        }
                        return this.values[index];
                    }
                    locToIndex(locs) {
                        if (this.rank === 0) {
                            return 0;
                        } else if (this.rank === 1) {
                            return locs[0];
                        }
                        let index = locs[locs.length - 1];
                        for (let i = 0; i < locs.length - 1; ++i) {
                            index += this.strides[i] * locs[i];
                        }
                        return index;
                    }
                    indexToLoc(index) {
                        if (this.rank === 0) {
                            return [];
                        } else if (this.rank === 1) {
                            return [index];
                        }
                        const locs = new Array(this.shape.length);
                        for (let i = 0; i < locs.length - 1; ++i) {
                            locs[i] = Math.floor(index / this.strides[i]);
                            index -= locs[i] * this.strides[i];
                        }
                        locs[locs.length - 1] = index;
                        return locs;
                    }
                    get rank() {
                        return this.shape.length;
                    }
                    /**
     * Creates an immutable `tf.Tensor` object from the buffer.
     *
     * @doc {heading: 'Tensors', subheading: 'Creation'}
     */
                    toTensor() {
                        return trackerFn().makeTensor(this.values, this.shape, this.dtype);
                    }
                }
                // For tracking tensor creation and disposal.
                let trackerFn = null;
                // Used by chaining methods to call into ops.
                let opHandler = null;
                // Used to warn about deprecated methods.
                let deprecationWarningFn = null;
                // This here so that we can use this method on dev branches and keep the
                // functionality at master.
                // tslint:disable-next-line:no-unused-expression
                [deprecationWarningFn];
                /**
 * An external consumer can register itself as the tensor tracker. This way
 * the Tensor class can notify the tracker for every tensor created and
 * disposed.
 */
                function setTensorTracker(fn) {
                    trackerFn = fn;
                }
                /**
 * An external consumer can register itself as the op handler. This way the
 * Tensor class can have chaining methods that call into ops via the op
 * handler.
 */
                function setOpHandler(handler) {
                    opHandler = handler;
                }
                /**
 * Sets the deprecation warning function to be used by this file. This way the
 * Tensor class can be a leaf but still use the environment.
 */
                function setDeprecationWarningFn(fn) {
                    deprecationWarningFn = fn;
                }
                /**
 * A `tf.Tensor` object represents an immutable, multidimensional array of
 * numbers that has a shape and a data type.
 *
 * For performance reasons, functions that create tensors do not necessarily
 * perform a copy of the data passed to them (e.g. if the data is passed as a
 * `Float32Array`), and changes to the data will change the tensor. This is not
 * a feature and is not supported. To avoid this behavior, use the tensor before
 * changing the input data or create a copy with `copy = tf.add(yourTensor, 0)`.
 *
 * See `tf.tensor` for details on how to create a `tf.Tensor`.
 *
 * @doc {heading: 'Tensors', subheading: 'Classes'}
 */
                class Tensor {
                    constructor(shape, dtype, dataId, id) {
                        /** Whether this tensor has been globally kept. */
                        this.kept = false;
                        this.isDisposedInternal = false;
                        this.shape = shape.slice();
                        this.dtype = dtype || 'float32';
                        this.size = sizeFromShape(shape);
                        this.strides = computeStrides(shape);
                        this.dataId = dataId;
                        this.id = id;
                        this.rankType = this.rank < 5 ? this.rank.toString() : 'higher';
                    }
                    get rank() {
                        return this.shape.length;
                    }
                    /**
     * Returns a promise of `tf.TensorBuffer` that holds the underlying data.
     *
     * @doc {heading: 'Tensors', subheading: 'Classes'}
     */
                    async buffer() {
                        const vals = await this.data();
                        return opHandler.buffer(this.shape, this.dtype, vals);
                    }
                    /**
     * Returns a `tf.TensorBuffer` that holds the underlying data.
     * @doc {heading: 'Tensors', subheading: 'Classes'}
     */
                    bufferSync() {
                        return opHandler.buffer(this.shape, this.dtype, this.dataSync());
                    }
                    /**
     * Returns the tensor data as a nested array. The transfer of data is done
     * asynchronously.
     *
     * @doc {heading: 'Tensors', subheading: 'Classes'}
     */
                    async array() {
                        const vals = await this.data();
                        return toNestedArray(this.shape, vals, this.dtype === 'complex64');
                    }
                    /**
     * Returns the tensor data as a nested array. The transfer of data is done
     * synchronously.
     *
     * @doc {heading: 'Tensors', subheading: 'Classes'}
     */
                    arraySync() {
                        return toNestedArray(this.shape, this.dataSync(), this.dtype === 'complex64');
                    }
                    /**
     * Asynchronously downloads the values from the `tf.Tensor`. Returns a
     * promise of `TypedArray` that resolves when the computation has finished.
     *
     * @doc {heading: 'Tensors', subheading: 'Classes'}
     */
                    async data() {
                        this.throwIfDisposed();
                        const data = trackerFn().read(this.dataId);
                        if (this.dtype === 'string') {
                            const bytes = await data;
                            try {
                                return bytes.map(b => decodeString(b));
                            } catch (_a) {
                                throw new Error('Failed to decode the string bytes into utf-8. ' + 'To get the original bytes, call tensor.bytes().');
                            }
                        }
                        return data;
                    }
                    /**
     * Copy the tensor's data to a new GPU resource. Comparing to the `dataSync()`
     * and `data()`, this method prevents data from being downloaded to CPU.
     *
     * For WebGL backend, the data will be stored on a densely packed texture.
     * This means that the texture will use the RGBA channels to store value.
     *
     * For WebGPU backend, the data will be stored on a buffer. There is no
     * parameter, so can not use a user-defined size to create the buffer.
     *
     * @param options:
     *     For WebGL,
     *         - customTexShape: Optional. If set, will use the user defined
     *     texture shape to create the texture.
     *
     * @returns For WebGL backend, a GPUData contains the new texture and
     *     its information.
     *     {
     *        tensorRef: The tensor that is associated with this texture,
     *        texture: WebGLTexture,
     *        texShape: [number, number] // [height, width]
     *     }
     *
     *     For WebGPU backend, a GPUData contains the new buffer and
     *     its information.
     *     {
     *        tensorRef: The tensor that is associated with this buffer,
     *        buffer: GPUBuffer,
     *        bufSize: number
     *     }
     *
     *     Remember to dispose the GPUData after it is used by
     *     `res.tensorRef.dispose()`.
     *
     * @doc {heading: 'Tensors', subheading: 'Classes'}
     */
                    dataToGPU(options) {
                        this.throwIfDisposed();
                        return trackerFn().readToGPU(this.dataId, options);
                    }
                    /**
     * Synchronously downloads the values from the `tf.Tensor`. This blocks the
     * UI thread until the values are ready, which can cause performance issues.
     *
     * @doc {heading: 'Tensors', subheading: 'Classes'}
     */
                    dataSync() {
                        this.throwIfDisposed();
                        const data = trackerFn().readSync(this.dataId);
                        if (this.dtype === 'string') {
                            try {
                                return data.map(b => decodeString(b));
                            } catch (_a) {
                                throw new Error('Failed to decode the string bytes into utf-8. ' + 'To get the original bytes, call tensor.bytes().');
                            }
                        }
                        return data;
                    }
                    /** Returns the underlying bytes of the tensor's data. */
                    async bytes() {
                        this.throwIfDisposed();
                        const data = await trackerFn().read(this.dataId);
                        if (this.dtype === 'string') {
                            return data;
                        } else {
                            return new Uint8Array(data.buffer);
                        }
                    }
                    /**
     * Disposes `tf.Tensor` from memory.
     *
     * @doc {heading: 'Tensors', subheading: 'Classes'}
     */
                    dispose() {
                        if (this.isDisposed) {
                            return;
                        }
                        trackerFn().disposeTensor(this);
                        this.isDisposedInternal = true;
                    }
                    get isDisposed() {
                        return this.isDisposedInternal;
                    }
                    throwIfDisposed() {
                        if (this.isDisposed) {
                            throw new Error(`Tensor is disposed.`);
                        }
                    }
                    /**
     * Prints the `tf.Tensor`. See `tf.print` for details.
     *
     * @param verbose Whether to print verbose information about the tensor,
     *    including dtype and size.
     *
     * @doc {heading: 'Tensors', subheading: 'Classes'}
     */
                    print(verbose = false) {
                        return opHandler.print(this, verbose);
                    }
                    /**
     * Returns a copy of the tensor. See `tf.clone` for details.
     * @doc {heading: 'Tensors', subheading: 'Classes'}
     */
                    clone() {
                        this.throwIfDisposed();
                        return opHandler.clone(this);
                    }
                    /**
     * Returns a human-readable description of the tensor. Useful for logging.
     *
     * @doc {heading: 'Tensors', subheading: 'Classes'}
     */
                    toString(verbose = false) {
                        const vals = this.dataSync();
                        return tensorToString(vals, this.shape, this.dtype, verbose);
                    }
                    cast(dtype) {
                        this.throwIfDisposed();
                        return opHandler.cast(this, dtype);
                    }
                    variable(trainable = true, name, dtype) {
                        this.throwIfDisposed();
                        return trackerFn().makeVariable(this, trainable, name, dtype);
                    }
                }
                Object.defineProperty(Tensor, Symbol.hasInstance, {
                    value: instance => {
                        // Implementation note: we should use properties of the object that will be
                        // defined before the constructor body has finished executing (methods).
                        // This is because when this code is transpiled by babel, babel will call
                        // classCallCheck before the constructor body is run.
                        // See https://github.com/tensorflow/tfjs/issues/3384 for backstory.
                        return !!instance && instance.data != null && instance.dataSync != null && instance.throwIfDisposed != null;
                    }
                });
                function getGlobalTensorClass() {
                    // Use getGlobal so that we can augment the Tensor class across package
                    // boundaries becase the node resolution alg may result in different modules
                    // being returned for this file depending on the path they are loaded from.
                    return getGlobal('Tensor', () => {
                        return Tensor;
                    }
                    );
                }
                // Global side effect. Cache global reference to Tensor class
                getGlobalTensorClass();
                /**
 * A mutable `tf.Tensor`, useful for persisting state, e.g. for training.
 *
 * @doc {heading: 'Tensors', subheading: 'Classes'}
 */
                class Variable extends Tensor {
                    constructor(initialValue, trainable, name, tensorId) {
                        super(initialValue.shape, initialValue.dtype, initialValue.dataId, tensorId);
                        this.trainable = trainable;
                        this.name = name;
                    }
                    /**
     * Assign a new `tf.Tensor` to this variable. The new `tf.Tensor` must have
     * the same shape and dtype as the old `tf.Tensor`.
     *
     * @param newValue New tensor to be assigned to this variable.
     *
     * @doc {heading: 'Tensors', subheading: 'Classes'}
     */
                    assign(newValue) {
                        if (newValue.dtype !== this.dtype) {
                            throw new Error(`dtype of the new value (${newValue.dtype}) and ` + `previous value (${this.dtype}) must match`);
                        }
                        if (!arraysEqual(newValue.shape, this.shape)) {
                            throw new Error(`shape of the new value (${newValue.shape}) and ` + `previous value (${this.shape}) must match`);
                        }
                        trackerFn().disposeTensor(this);
                        this.dataId = newValue.dataId;
                        trackerFn().incRef(this, null /* backend */
                        );
                    }
                    dispose() {
                        trackerFn().disposeVariable(this);
                        this.isDisposedInternal = true;
                    }
                }
                Object.defineProperty(Variable, Symbol.hasInstance, {
                    value: instance => {
                        return instance instanceof Tensor && instance.assign != null && instance.assign instanceof Function;
                    }
                });
                /**
 * @license
 * Copyright 2017 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                var Rank;
                (function (Rank) {
                    Rank["R0"] = "R0";
                    Rank["R1"] = "R1";
                    Rank["R2"] = "R2";
                    Rank["R3"] = "R3";
                    Rank["R4"] = "R4";
                    Rank["R5"] = "R5";
                    Rank["R6"] = "R6";
                }
                )(Rank || (Rank = {}));
                // Looks for upcasting types. Used, for example, in operations with mixed dtype
                // inputs.
                var UpcastInt32AndMap;
                (function (UpcastInt32AndMap) {
                    UpcastInt32AndMap["float32"] = "float32";
                    UpcastInt32AndMap["int32"] = "int32";
                    UpcastInt32AndMap["bool"] = "int32";
                    UpcastInt32AndMap["complex64"] = "complex64";
                }
                )(UpcastInt32AndMap || (UpcastInt32AndMap = {}));
                var UpcastBoolAndMap;
                (function (UpcastBoolAndMap) {
                    UpcastBoolAndMap["float32"] = "float32";
                    UpcastBoolAndMap["int32"] = "int32";
                    UpcastBoolAndMap["bool"] = "bool";
                    UpcastBoolAndMap["complex64"] = "complex64";
                }
                )(UpcastBoolAndMap || (UpcastBoolAndMap = {}));
                var UpcastFloat32AndMap;
                (function (UpcastFloat32AndMap) {
                    UpcastFloat32AndMap["float32"] = "float32";
                    UpcastFloat32AndMap["int32"] = "float32";
                    UpcastFloat32AndMap["bool"] = "float32";
                    UpcastFloat32AndMap["complex64"] = "complex64";
                }
                )(UpcastFloat32AndMap || (UpcastFloat32AndMap = {}));
                var UpcastComplex64AndMap;
                (function (UpcastComplex64AndMap) {
                    UpcastComplex64AndMap["float32"] = "complex64";
                    UpcastComplex64AndMap["int32"] = "complex64";
                    UpcastComplex64AndMap["bool"] = "complex64";
                    UpcastComplex64AndMap["complex64"] = "complex64";
                }
                )(UpcastComplex64AndMap || (UpcastComplex64AndMap = {}));
                const upcastTypeMap = {
                    'float32': UpcastFloat32AndMap,
                    'int32': UpcastInt32AndMap,
                    'bool': UpcastBoolAndMap,
                    'complex64': UpcastComplex64AndMap
                };
                function upcastType(typeA, typeB) {
                    if (typeA === 'string' || typeB === 'string') {
                        if (typeA === 'string' && typeB === 'string') {
                            return 'string';
                        }
                        throw new Error(`Can not upcast ${typeA} with ${typeB}`);
                    }
                    return upcastTypeMap[typeA][typeB];
                }
                /** Returns the output type after summation. */
                function sumOutType(type) {
                    return upcastType(type, 'int32');
                }
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                function makeTypesMatch(a, b) {
                    if (a.dtype === b.dtype) {
                        return [a, b];
                    }
                    const dtype = upcastType(a.dtype, b.dtype);
                    return [a.cast(dtype), b.cast(dtype)];
                }
                function assertTypesMatch(a, b) {
                    assert(a.dtype === b.dtype, () => `The dtypes of the first(${a.dtype}) and` + ` second(${b.dtype}) input must match`);
                }
                function isTensorInList(tensor, tensorList) {
                    return tensorList.some(x => x.id === tensor.id);
                }
                /**
 * Extracts any `Tensor`s found within the provided object.
 *
 * @param container an object that may be a `Tensor` or may directly contain
 *   `Tensor`s, such as a `Tensor[]` or `{key: Tensor, ...}`. In general it
 *   is safe to pass any object here, except that `Promise`s are not
 *   supported.
 * @returns An array of `Tensors` found within the passed object. If the
 *   argument is simply a `Tensor', a list containing that `Tensor` is
 *   returned. If the object is not a `Tensor` or does not
 *   contain `Tensors`, an empty list is returned.
 */
                function getTensorsInContainer(result) {
                    const list = [];
                    const seen = new Set();
                    walkTensorContainer(result, list, seen);
                    return list;
                }
                function walkTensorContainer(container, list, seen) {
                    if (container == null) {
                        return;
                    }
                    if (container instanceof Tensor) {
                        list.push(container);
                        return;
                    }
                    if (!isIterable(container)) {
                        return;
                    }
                    // Iteration over keys works also for arrays.
                    const iterable = container;
                    for (const k in iterable) {
                        const val = iterable[k];
                        if (!seen.has(val)) {
                            seen.add(val);
                            walkTensorContainer(val, list, seen);
                        }
                    }
                }
                // tslint:disable-next-line:no-any
                function isIterable(obj) {
                    return Array.isArray(obj) || typeof obj === 'object';
                }
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                function isRegisteredKernelInvocation(kernelInvocation) {
                    return kernelInvocation.kernelName != null;
                }
                class EngineState {
                    constructor() {
                        // Public since optimizers will use it.
                        this.registeredVariables = {};
                        this.nextTapeNodeId = 0;
                        this.numBytes = 0;
                        this.numTensors = 0;
                        this.numStringTensors = 0;
                        this.numDataBuffers = 0;
                        // Number of nested tf.grad() statements when computing higher-order
                        // gradients. E.g. `1` for first-order gradients and `2` for second-order
                        // gradients. Used to track if the tape should be removed after a backprop.
                        this.gradientDepth = 0;
                        // Number of nested kernel calls. When kernel depth is greater than 1, we turn
                        // off the tape.
                        this.kernelDepth = 0;
                        this.scopeStack = [];
                        /**
         * Keeps track of the number of data moves during a kernel execution. We
         * maintain a stack since kernels can call other kernels, recursively.
         */
                        this.numDataMovesStack = [];
                        this.nextScopeId = 0;
                        this.tensorInfo = new WeakMap();
                        this.profiling = false;
                        this.activeProfile = {
                            newBytes: 0,
                            newTensors: 0,
                            peakBytes: 0,
                            kernels: [],
                            result: null,
                            get kernelNames() {
                                return Array.from(new Set(this.kernels.map(k => k.name)));
                            }
                        };
                    }
                    dispose() {
                        for (const variableName in this.registeredVariables) {
                            this.registeredVariables[variableName].dispose();
                        }
                    }
                }
                class Engine {
                    constructor(ENV) {
                        this.ENV = ENV;
                        this.registry = {};
                        this.registryFactory = {};
                        this.pendingBackendInitId = 0;
                        this.state = new EngineState();
                    }
                    async ready() {
                        if (this.pendingBackendInit != null) {
                            return this.pendingBackendInit.then(() => { }
                            );
                        }
                        if (this.backendInstance != null) {
                            return;
                        }
                        const sortedBackends = this.getSortedBackends();
                        for (let i = 0; i < sortedBackends.length; i++) {
                            const backendName = sortedBackends[i];
                            const success = await this.initializeBackend(backendName).success;
                            if (success) {
                                await this.setBackend(backendName);
                                return;
                            }
                        }
                        throw new Error(`Could not initialize any backends, all backend initializations ` + `failed.`);
                    }
                    get backend() {
                        if (this.pendingBackendInit != null) {
                            throw new Error(`Backend '${this.backendName}' has not yet been initialized. Make ` + `sure to await tf.ready() or await tf.setBackend() before calling ` + `other methods`);
                        }
                        if (this.backendInstance == null) {
                            const { name, asyncInit } = this.initializeBackendsAndReturnBest();
                            if (asyncInit) {
                                throw new Error(`The highest priority backend '${name}' has not yet been ` + `initialized. Make sure to await tf.ready() or ` + `await tf.setBackend() before calling other methods`);
                            }
                            this.setBackend(name);
                        }
                        return this.backendInstance;
                    }
                    backendNames() {
                        return Object.keys(this.registryFactory);
                    }
                    findBackend(backendName) {
                        if (!(backendName in this.registry)) {
                            // If the backend hasn't been initialized but we have a registry entry for
                            // it, initialize it and return it.
                            if (backendName in this.registryFactory) {
                                const { asyncInit } = this.initializeBackend(backendName);
                                if (asyncInit) {
                                    // Backend is not ready yet.
                                    return null;
                                }
                            } else {
                                return null;
                            }
                        }
                        return this.registry[backendName];
                    }
                    findBackendFactory(backendName) {
                        if (!(backendName in this.registryFactory)) {
                            return null;
                        }
                        return this.registryFactory[backendName].factory;
                    }
                    registerBackend(backendName, factory, priority = 1) {
                        if (backendName in this.registryFactory) {
                            warn(`${backendName} backend was already registered. ` + `Reusing existing backend factory.`);
                            return false;
                        }
                        this.registryFactory[backendName] = {
                            factory,
                            priority
                        };
                        return true;
                    }
                    async setBackend(backendName) {
                        if (this.registryFactory[backendName] == null) {
                            throw new Error(`Backend name '${backendName}' not found in registry`);
                        }
                        this.backendName = backendName;
                        if (this.registry[backendName] == null) {
                            this.backendInstance = null;
                            const { success, asyncInit } = this.initializeBackend(backendName);
                            const result = asyncInit ? await success : success;
                            if (!result) {
                                return false;
                            }
                        }
                        this.backendInstance = this.registry[backendName];
                        this.setupRegisteredKernels();
                        // Reset the profiler.
                        this.profiler = new Profiler(this.backendInstance);
                        return true;
                    }
                    setupRegisteredKernels() {
                        const kernels = getKernelsForBackend(this.backendName);
                        kernels.forEach(kernel => {
                            if (kernel.setupFunc != null) {
                                kernel.setupFunc(this.backendInstance);
                            }
                        }
                        );
                    }
                    disposeRegisteredKernels(backendName) {
                        const kernels = getKernelsForBackend(backendName);
                        kernels.forEach(kernel => {
                            if (kernel.disposeFunc != null) {
                                kernel.disposeFunc(this.registry[backendName]);
                            }
                        }
                        );
                    }
                    /**
     * Initializes a backend by looking up the backend name in the factory
     * registry and calling the factory method. Returns a boolean representing
     * whether the initialization of the backend suceeded. Throws an error if
     * there is no backend in the factory registry.
     */
                    initializeBackend(backendName) {
                        const registryFactoryEntry = this.registryFactory[backendName];
                        if (registryFactoryEntry == null) {
                            throw new Error(`Cannot initialize backend ${backendName}, no registration found.`);
                        }
                        try {
                            const backend = registryFactoryEntry.factory();
                            /* Test if the factory returns a promise.
            Done in a more liberal way than
            previous 'Promise.resolve(backend)===backend'
            as we needed to account for custom Promise
            implementations (e.g. Angular) */
                            if (backend && !(backend instanceof KernelBackend) && typeof backend.then === 'function') {
                                const promiseId = ++this.pendingBackendInitId;
                                const success = backend.then(backendInstance => {
                                    // Outdated promise. Another backend was set in the meantime.
                                    if (promiseId < this.pendingBackendInitId) {
                                        return false;
                                    }
                                    this.registry[backendName] = backendInstance;
                                    this.pendingBackendInit = null;
                                    return true;
                                }
                                ).catch(err => {
                                    // Outdated promise. Another backend was set in the meantime.
                                    if (promiseId < this.pendingBackendInitId) {
                                        return false;
                                    }
                                    this.pendingBackendInit = null;
                                    warn(`Initialization of backend ${backendName} failed`);
                                    warn(err.stack || err.message);
                                    return false;
                                }
                                );
                                this.pendingBackendInit = success;
                                return {
                                    success,
                                    asyncInit: true
                                };
                            } else {
                                this.registry[backendName] = backend;
                                return {
                                    success: true,
                                    asyncInit: false
                                };
                            }
                        } catch (err) {
                            warn(`Initialization of backend ${backendName} failed`);
                            warn(err.stack || err.message);
                            return {
                                success: false,
                                asyncInit: false
                            };
                        }
                    }
                    removeBackend(backendName) {
                        if (!(backendName in this.registryFactory)) {
                            throw new Error(`${backendName} backend not found in registry`);
                        }
                        if (this.backendName === backendName && this.pendingBackendInit != null) {
                            // There is a pending promise of the backend we want to remove. Make it
                            // obsolete.
                            this.pendingBackendInitId++;
                        }
                        if (backendName in this.registry) {
                            this.disposeRegisteredKernels(backendName);
                            this.registry[backendName].dispose();
                            delete this.registry[backendName];
                        }
                        delete this.registryFactory[backendName];
                        // Unset the backend if it is active.
                        if (this.backendName === backendName) {
                            this.pendingBackendInit = null;
                            this.backendName = null;
                            this.backendInstance = null;
                        }
                    }
                    getSortedBackends() {
                        if (Object.keys(this.registryFactory).length === 0) {
                            throw new Error('No backend found in registry.');
                        }
                        return Object.keys(this.registryFactory).sort((a, b) => {
                            // Highest priority comes first.
                            return this.registryFactory[b].priority - this.registryFactory[a].priority;
                        }
                        );
                    }
                    initializeBackendsAndReturnBest() {
                        const sortedBackends = this.getSortedBackends();
                        for (let i = 0; i < sortedBackends.length; i++) {
                            const backendName = sortedBackends[i];
                            const { success, asyncInit } = this.initializeBackend(backendName);
                            if (asyncInit || success) {
                                return {
                                    name: backendName,
                                    asyncInit
                                };
                            }
                        }
                        throw new Error(`Could not initialize any backends, all backend initializations ` + `failed.`);
                    }
                    moveData(backend, dataId) {
                        const info = this.state.tensorInfo.get(dataId);
                        const srcBackend = info.backend;
                        const values = this.readSync(dataId);
                        const refCount = srcBackend.refCount(dataId);
                        // Delete the tensor from the old backend and move it to the new
                        // backend.
                        srcBackend.disposeData(dataId, true);
                        info.backend = backend;
                        backend.move(dataId, values, info.shape, info.dtype, refCount);
                        if (this.shouldCheckForMemLeaks()) {
                            // Track the number of moves during a kernel execution to correctly
                            // detect memory leaks.
                            this.state.numDataMovesStack[this.state.numDataMovesStack.length - 1]++;
                        }
                    }
                    tidy(nameOrFn, fn) {
                        let name = null;
                        if (fn == null) {
                            // Called with only 1 argument.
                            if (typeof nameOrFn !== 'function') {
                                throw new Error('Please provide a function to tidy()');
                            }
                            fn = nameOrFn;
                        } else {
                            // Called with 2 arguments.
                            if (typeof nameOrFn !== 'string' && !(nameOrFn instanceof String)) {
                                throw new Error('When calling with two arguments, the first argument ' + 'to tidy() must be a string');
                            }
                            if (typeof fn !== 'function') {
                                throw new Error('When calling with two arguments, the 2nd argument ' + 'to tidy() must be a function');
                            }
                            name = nameOrFn;
                            // TODO(nsthorat,smilkov): Do operation logging and performance
                            // profiling.
                        }
                        let result;
                        return this.scopedRun(() => this.startScope(name), () => this.endScope(result), () => {
                            result = fn();
                            if (result instanceof Promise) {
                                console.error('Cannot return a Promise inside of tidy.');
                            }
                            return result;
                        }
                        );
                    }
                    scopedRun(start, end, f) {
                        start();
                        try {
                            const res = f();
                            end();
                            return res;
                        } catch (ex) {
                            end();
                            throw ex;
                        }
                    }
                    nextTensorId() {
                        return Engine.nextTensorId++;
                    }
                    nextVariableId() {
                        return Engine.nextVariableId++;
                    }
                    /**
     * This method is called instead of the public-facing tensor.clone() when
     * saving a tensor for backwards pass. It makes sure to add the clone
     * operation to the tape regardless of being called inside a kernel
     * execution.
     */
                    clone(x) {
                        const y = ENGINE.runKernel(Identity, {
                            x
                        });
                        const inputs = {
                            x
                        };
                        const grad = dy => ({
                            x: () => {
                                const dtype = 'float32';
                                const gradInputs = {
                                    x: dy
                                };
                                const attrs = {
                                    dtype
                                };
                                return ENGINE.runKernel(Cast, gradInputs, // tslint:disable-next-line: no-unnecessary-type-assertion
                                    attrs);
                            }
                        });
                        const saved = [];
                        this.addTapeNode(this.state.activeScope.name, inputs, [y], grad, saved, {});
                        return y;
                    }
                    /**
     * Execute a kernel with the given name and return the output tensor.
     *
     * @param kernelName The name of the kernel to execute.
     * @param inputs A map of input names to tensors.
     * @param attrs A map of attribute names to their values. An attribute is a
     *     primitive (non-tensor) input to the kernel.
     * @param inputsToSave A list of tensors, inputs to save for the backprop
     *     computation.
     * @param outputsToSave A list of booleans, specifying which output to save
     *     for the backprop computation. These are booleans since the output
     * tensors are not visible to the user.
     */
                    runKernel(kernelName, inputs, attrs) {
                        if (this.backendName == null) {
                            // backend has not been initialized yet (backend initialization is lazy
                            // can be deferred until an op/ kernel is run).
                            // The below getter has side effects that will try to initialize the
                            // backend and set properties like this.backendName
                            // tslint:disable-next-line: no-unused-expression
                            this.backend;
                        }
                        const hasKernel = getKernel(kernelName, this.backendName) != null;
                        if (!hasKernel) {
                            throw new Error(`Kernel '${kernelName}' not registered for backend '${this.backendName}'`);
                        }
                        return this.runKernelFunc({
                            kernelName,
                            inputs,
                            attrs
                        });
                    }
                    shouldCheckForMemLeaks() {
                        return this.ENV.getBool('IS_TEST');
                    }
                    checkKernelForMemLeak(kernelName, numDataIdsBefore, outInfos) {
                        const numDataIdsAfter = this.backend.numDataIds();
                        // Count the number of data ids associated with the result of the kernel.
                        let numOutputDataIds = 0;
                        outInfos.forEach(info => {
                            // Complex numbers allocate 3 data ids, one for 'real', one for
                            // 'imaginary', and one for the container that holds the former two.
                            numOutputDataIds += info.dtype === 'complex64' ? 3 : 1;
                        }
                        );
                        // Account for the number of moves during kernel execution. A "data move"
                        // can happen in the middle of a kernel execution, placing a new (key,value)
                        // pair in the data storage. Since data moves have net zero effect (we
                        // always remove the data from the old backend), we have to cancel them out
                        // when detecting memory leaks.
                        const numMoves = this.state.numDataMovesStack[this.state.numDataMovesStack.length - 1];
                        const dataIdsLeaked = numDataIdsAfter - numDataIdsBefore - numOutputDataIds - numMoves;
                        if (dataIdsLeaked > 0) {
                            throw new Error(`Backend '${this.backendName}' has an internal memory leak ` + `(${dataIdsLeaked} data ids) after running '${kernelName}'`);
                        }
                    }
                    /**
     * Internal helper method to execute a kernel Func
     *
     * Use `runKernel` to execute kernels from outside of engine.
     */
                    runKernelFunc(kernelParams) {
                        let outputs;
                        let saved = [];
                        const isTapeOn = this.isTapeOn();
                        const startingBytecount = this.state.numBytes;
                        const startingNumTensors = this.state.numTensors;
                        if (this.shouldCheckForMemLeaks()) {
                            this.state.numDataMovesStack.push(0);
                        }
                        let kernelFunc;
                        if (this.backendName == null) {
                            // backend has not been initialized yet (backend initialization is lazy
                            // can be deferred until an op/ kernel is run).
                            // The below getter has side effects that will try to initialize the
                            // backend and set properties like this.backendName
                            // tslint:disable-next-line: no-unused-expression
                            this.backend;
                        }
                        let out;
                        const kernelOrScopeName = isRegisteredKernelInvocation(kernelParams) ? kernelParams.kernelName : this.state.activeScope != null ? this.state.activeScope.name : '';
                        // Create the kernelFunc from either a registered kernel OR passed in
                        // forward/backward functions (used by custom grad). In this context a
                        // kernelFunc wraps a kernel implementation with some bookkeeping.
                        if (isRegisteredKernelInvocation(kernelParams)) {
                            const { kernelName, inputs, attrs } = kernelParams;
                            if (this.backendName == null) {
                                // backend has not been initialized yet (backend initialization is lazy
                                // can be deferred until an op/ kernel is run).
                                // The below getter has side effects that will try to initialize the
                                // backend and set properties like this.backendName
                                // tslint:disable-next-line: no-unused-expression
                                this.backend;
                            }
                            const kernel = getKernel(kernelName, this.backendName);
                            assert(kernel != null, () => `Cannot find registered kernel '${kernelName}' for backend '${this.backendName}'`);
                            kernelFunc = () => {
                                const numDataIdsBefore = this.backend.numDataIds();
                                out = kernel.kernelFunc({
                                    inputs,
                                    attrs,
                                    backend: this.backend
                                });
                                const outInfos = Array.isArray(out) ? out : [out];
                                if (this.shouldCheckForMemLeaks()) {
                                    this.checkKernelForMemLeak(kernelName, numDataIdsBefore, outInfos);
                                }
                                const outTensors = outInfos.map(outInfo => {
                                    // todo (yassogba) remove this option (Tensor) when node backend
                                    // methods have been modularized and they all return tensorInfo.
                                    // TensorInfos do not have a rank attribute.
                                    if (outInfo.rank != null) {
                                        return outInfo;
                                    }
                                    return this.makeTensorFromTensorInfo(outInfo);
                                }
                                );
                                // Save any required inputs and outputs.
                                // Do not save unless we are recording to the tape. Otherwise it would
                                // cause a mem leak since there would be no backprop for these tensors
                                // (which would otherwise dispose them).
                                if (isTapeOn) {
                                    const tensorsToSave = this.getTensorsForGradient(kernelName, inputs, outTensors);
                                    saved = this.saveTensorsForBackwardMode(tensorsToSave);
                                }
                                return outTensors;
                            }
                                ;
                        } else {
                            const { forwardFunc } = kernelParams;
                            // Running a customGrad op.
                            const saveFunc = tensors => {
                                // Do not save unless we are recording to the tape. Otherwise it would
                                // cause a mem leak since we would never run backprop, which disposes
                                // the kept tensors.
                                if (!isTapeOn) {
                                    return;
                                }
                                saved = tensors.map(tensor => this.keep(this.clone(tensor)));
                            }
                                ;
                            kernelFunc = () => {
                                const numDataIdsBefore = this.backend.numDataIds();
                                out = this.tidy(() => forwardFunc(this.backend, saveFunc));
                                const outs = Array.isArray(out) ? out : [out];
                                if (this.shouldCheckForMemLeaks()) {
                                    // Scope name is used to print a more helpful error message if needed.
                                    this.checkKernelForMemLeak(kernelOrScopeName, numDataIdsBefore, outs);
                                }
                                return outs;
                            }
                                ;
                        }
                        //
                        // Run the kernelFunc. Optionally profiling it.
                        //
                        const { inputs, attrs } = kernelParams;
                        const backwardsFunc = isRegisteredKernelInvocation(kernelParams) ? null : kernelParams.backwardsFunc;
                        let kernelProfile;
                        this.scopedRun(// Stop recording to a tape when running a kernel.
                            () => this.state.kernelDepth++, () => this.state.kernelDepth--, () => {
                                if (!this.ENV.getBool('DEBUG') && !this.state.profiling) {
                                    outputs = kernelFunc();
                                } else {
                                    kernelProfile = this.profiler.profileKernel(kernelOrScopeName, inputs, () => kernelFunc());
                                    if (this.ENV.getBool('DEBUG')) {
                                        this.profiler.logKernelProfile(kernelProfile);
                                    }
                                    outputs = kernelProfile.outputs;
                                }
                            }
                        );
                        if (isTapeOn) {
                            this.addTapeNode(kernelOrScopeName, inputs, outputs, backwardsFunc, saved, attrs);
                        }
                        if (this.state.profiling) {
                            this.state.activeProfile.kernels.push({
                                name: kernelOrScopeName,
                                bytesAdded: this.state.numBytes - startingBytecount,
                                totalBytesSnapshot: this.state.numBytes,
                                tensorsAdded: this.state.numTensors - startingNumTensors,
                                totalTensorsSnapshot: this.state.numTensors,
                                inputShapes: Object.keys(inputs).map(key => inputs[key] != null ? inputs[key].shape : null),
                                outputShapes: outputs.map(item => item.shape),
                                kernelTimeMs: kernelProfile.timeMs,
                                extraInfo: kernelProfile.extraInfo
                            });
                        }
                        return Array.isArray(out) ? outputs : outputs[0];
                    }
                    /**
     * Saves tensors used in forward mode for use in backward mode.
     *
     * @param tensors the list of tensors to save.
     */
                    saveTensorsForBackwardMode(tensors) {
                        const saved = tensors.map(tensor => this.keep(this.clone(tensor)));
                        return saved;
                    }
                    /**
     * Returns a list of tensors to save for a given gradient calculation.
     *
     * @param kernelName name of kernel to look up gradient for.
     * @param inputs a map of input tensors.
     * @param outputs an array of output tensors from forward mode of kernel.
     */
                    getTensorsForGradient(kernelName, inputs, outputs) {
                        const gradConfig = getGradient(kernelName);
                        if (gradConfig != null) {
                            const inputsToSave = gradConfig.inputsToSave || [];
                            const outputsToSave = gradConfig.outputsToSave || [];
                            // If saveAllInputs is true, all inputs will be saved. Otherwise, inputs
                            // specified in inputsToSave will be saved.
                            let inputTensorsToSave;
                            if (gradConfig.saveAllInputs) {
                                assert(Array.isArray(inputs), () => 'saveAllInputs is true, expected inputs to be an array.');
                                inputTensorsToSave = Object.keys(inputs).map(key => inputs[key]);
                            } else {
                                inputTensorsToSave = inputsToSave.map(inputName => inputs[inputName]);
                            }
                            const outputTensorsToSave = outputs.filter((_, i) => outputsToSave[i]);
                            return inputTensorsToSave.concat(outputTensorsToSave);
                        }
                        // We return an empty list rather than throw an error because the kernel we
                        // are looking up may not actually be relevant to backproping through the
                        // overall function
                        //
                        // See 'does not error if irrelevant (pruned) ops are missing grads' test
                        // in gradients_test.ts for an example.
                        return [];
                    }
                    /**
     * Internal method used by public APIs for tensor creation. Makes a new
     * tensor with the provided shape, dtype and values. It always
     * creates a new data id and writes the values to the underlying backend.
     */
                    makeTensor(values, shape, dtype, backend) {
                        if (values == null) {
                            throw new Error('Values passed to engine.makeTensor() are null');
                        }
                        dtype = dtype || 'float32';
                        backend = backend || this.backend;
                        let backendVals = values;
                        if (dtype === 'string' && isString(values[0])) {
                            backendVals = values.map(d => encodeString(d));
                        }
                        const dataId = backend.write(backendVals, shape, dtype);
                        const t = new Tensor(shape, dtype, dataId, this.nextTensorId());
                        this.trackTensor(t, backend);
                        // Count bytes for string tensors.
                        if (dtype === 'string') {
                            const info = this.state.tensorInfo.get(dataId);
                            const newBytes = bytesFromStringArray(backendVals);
                            this.state.numBytes += newBytes - info.bytes;
                            info.bytes = newBytes;
                        }
                        return t;
                    }
                    /**
     * Internal method used by backends. Makes a new tensor
     * that is a wrapper around an existing data id. It doesn't create
     * a new data id, only increments the ref count used in memory tracking.
     * @deprecated
     */
                    makeTensorFromDataId(dataId, shape, dtype, backend) {
                        dtype = dtype || 'float32';
                        const tensorInfo = {
                            dataId,
                            shape,
                            dtype
                        };
                        return this.makeTensorFromTensorInfo(tensorInfo, backend);
                    }
                    /**
     * Internal method used by backends. Makes a new tensor that is a wrapper
     * around an existing data id in TensorInfo. It doesn't create a new data id,
     * only increments the ref count used in memory tracking.
     */
                    makeTensorFromTensorInfo(tensorInfo, backend) {
                        const { dataId, shape, dtype } = tensorInfo;
                        const t = new Tensor(shape, dtype, dataId, this.nextTensorId());
                        this.trackTensor(t, backend);
                        return t;
                    }
                    makeVariable(initialValue, trainable = true, name, dtype) {
                        name = name || this.nextVariableId().toString();
                        if (dtype != null && dtype !== initialValue.dtype) {
                            initialValue = initialValue.cast(dtype);
                        }
                        const v = new Variable(initialValue, trainable, name, this.nextTensorId());
                        if (this.state.registeredVariables[v.name] != null) {
                            throw new Error(`Variable with name ${v.name} was already registered`);
                        }
                        this.state.registeredVariables[v.name] = v;
                        this.incRef(v, this.backend);
                        return v;
                    }
                    trackTensor(a, backend) {
                        this.state.numTensors++;
                        if (a.dtype === 'string') {
                            this.state.numStringTensors++;
                        }
                        // Bytes for complex numbers are counted by their components. Bytes for
                        // string tensors are counted when writing values.
                        let bytes = 0;
                        if (a.dtype !== 'complex64' && a.dtype !== 'string') {
                            bytes = a.size * bytesPerElement(a.dtype);
                        }
                        this.state.numBytes += bytes;
                        if (!this.state.tensorInfo.has(a.dataId)) {
                            this.state.numDataBuffers++;
                            this.state.tensorInfo.set(a.dataId, {
                                backend: backend || this.backend,
                                dtype: a.dtype,
                                shape: a.shape,
                                bytes
                            });
                        }
                        if (!(a instanceof Variable)) {
                            this.track(a);
                        }
                    }
                    // Track the tensor by dataId and increase the refCount for the dataId in the
                    // backend.
                    // TODO(pyu10055): This is currently used by makeVariable method, to increase
                    // refCount on the backend for the dataId. It can potentially be replaced with
                    // Identity op indead of calling backend directly.
                    incRef(a, backend) {
                        this.trackTensor(a, backend);
                        this.backend.incRef(a.dataId);
                    }
                    removeDataId(dataId, backend) {
                        if (this.state.tensorInfo.has(dataId) && this.state.tensorInfo.get(dataId).backend === backend) {
                            this.state.tensorInfo.delete(dataId);
                            this.state.numDataBuffers--;
                        }
                    }
                    disposeTensor(a) {
                        if (!this.state.tensorInfo.has(a.dataId)) {
                            return;
                        }
                        const info = this.state.tensorInfo.get(a.dataId);
                        this.state.numTensors--;
                        if (a.dtype === 'string') {
                            this.state.numStringTensors--;
                            this.state.numBytes -= info.bytes;
                        }
                        // Don't count bytes for complex numbers as they are counted by their
                        // components.
                        if (a.dtype !== 'complex64' && a.dtype !== 'string') {
                            const bytes = a.size * bytesPerElement(a.dtype);
                            this.state.numBytes -= bytes;
                        }
                        // Remove the reference to dataId if backend dispose the data successfully
                        if (info.backend.disposeData(a.dataId)) {
                            this.removeDataId(a.dataId, info.backend);
                        }
                        // TODO(nsthorat): Construct an error and save the stack trace for
                        // debugging when in debug mode. Creating a stack trace is too expensive
                        // to do unconditionally.
                    }
                    disposeVariables() {
                        for (const varName in this.state.registeredVariables) {
                            const v = this.state.registeredVariables[varName];
                            this.disposeVariable(v);
                        }
                    }
                    disposeVariable(v) {
                        this.disposeTensor(v);
                        if (this.state.registeredVariables[v.name] != null) {
                            delete this.state.registeredVariables[v.name];
                        }
                    }
                    memory() {
                        const info = this.backend.memory();
                        info.numTensors = this.state.numTensors;
                        info.numDataBuffers = this.state.numDataBuffers;
                        info.numBytes = this.state.numBytes;
                        if (this.state.numStringTensors > 0) {
                            info.unreliable = true;
                            if (info.reasons == null) {
                                info.reasons = [];
                            }
                            info.reasons.push('Memory usage by string tensors is approximate ' + '(2 bytes per character)');
                        }
                        return info;
                    }
                    async profile(query) {
                        this.state.profiling = true;
                        const startBytes = this.state.numBytes;
                        const startNumTensors = this.state.numTensors;
                        this.state.activeProfile.kernels = [];
                        this.state.activeProfile.result = await query();
                        this.state.profiling = false;
                        this.state.activeProfile.peakBytes = Math.max(...this.state.activeProfile.kernels.map(d => d.totalBytesSnapshot));
                        this.state.activeProfile.newBytes = this.state.numBytes - startBytes;
                        this.state.activeProfile.newTensors = this.state.numTensors - startNumTensors;
                        for (const kernel of this.state.activeProfile.kernels) {
                            kernel.kernelTimeMs = await kernel.kernelTimeMs;
                            kernel.extraInfo = await kernel.extraInfo;
                        }
                        return this.state.activeProfile;
                    }
                    isTapeOn() {
                        return this.state.gradientDepth > 0 && this.state.kernelDepth === 0;
                    }
                    addTapeNode(kernelName, inputs, outputs, gradientsFunc, saved, attrs) {
                        const tapeNode = {
                            id: this.state.nextTapeNodeId++,
                            kernelName,
                            inputs,
                            outputs,
                            saved
                        };
                        const gradConfig = getGradient(kernelName);
                        if (gradConfig != null) {
                            gradientsFunc = gradConfig.gradFunc;
                        }
                        if (gradientsFunc != null) {
                            tapeNode.gradient = dys => {
                                // TODO(smilkov): To optimize back-prop, pass dys that are not used in
                                // the backprop graph to the user as null instead of zeros
                                dys = dys.map((dy, i) => {
                                    if (dy == null) {
                                        const output = outputs[i];
                                        const vals = makeZerosTypedArray(output.size, output.dtype);
                                        return this.makeTensor(vals, output.shape, output.dtype);
                                    }
                                    return dy;
                                }
                                );
                                // Grad functions of ops with single outputs expect a dy, while ops
                                // with multiple outputs expect dys (array of dy).
                                return gradientsFunc(dys.length > 1 ? dys : dys[0], saved, attrs);
                            }
                                ;
                        }
                        this.state.activeTape.push(tapeNode);
                    }
                    keep(result) {
                        result.kept = true;
                        return result;
                    }
                    startTape() {
                        if (this.state.gradientDepth === 0) {
                            this.state.activeTape = [];
                        }
                        this.state.gradientDepth++;
                    }
                    endTape() {
                        this.state.gradientDepth--;
                    }
                    /**
     * Start a scope. Use this with endScope() to achieve the same functionality
     * as scope() without the need for a function closure.
     */
                    startScope(name) {
                        const scopeInfo = {
                            track: [],
                            name: 'unnamed scope',
                            id: this.state.nextScopeId++
                        };
                        if (name) {
                            scopeInfo.name = name;
                        }
                        this.state.scopeStack.push(scopeInfo);
                        this.state.activeScope = scopeInfo;
                    }
                    /**
     * End a scope. Use this with startScope() to achieve the same functionality
     * as scope() without the need for a function closure.
     */
                    endScope(result) {
                        const tensorsToTrackInParent = getTensorsInContainer(result);
                        const tensorsToTrackInParentSet = new Set(tensorsToTrackInParent.map(t => t.id));
                        // Dispose the arrays tracked in this scope.
                        for (let i = 0; i < this.state.activeScope.track.length; i++) {
                            const tensor = this.state.activeScope.track[i];
                            if (!tensor.kept && !tensorsToTrackInParentSet.has(tensor.id)) {
                                tensor.dispose();
                            }
                        }
                        const oldScope = this.state.scopeStack.pop();
                        this.state.activeScope = this.state.scopeStack.length === 0 ? null : this.state.scopeStack[this.state.scopeStack.length - 1];
                        // Track the current result in the parent scope.
                        tensorsToTrackInParent.forEach(tensor => {
                            // Only track the tensor if was allocated in the inner scope and is not
                            // globally kept.
                            if (!tensor.kept && tensor.scopeId === oldScope.id) {
                                this.track(tensor);
                            }
                        }
                        );
                    }
                    /**
     * Returns gradients of `f` with respect to each of the `xs`. The gradients
     * returned are of the same length as `xs`, but some might be null if `f`
     * was not a function of that `x`. It also takes optional dy to multiply the
     * gradient, which defaults to `1`.
     */
                    gradients(f, xs, dy, allowNoGradients = false) {
                        assert(xs.length > 0, () => 'gradients() received an empty list of xs.');
                        if (dy != null && dy.dtype !== 'float32') {
                            throw new Error(`dy must have 'float32' dtype, but has '${dy.dtype}'`);
                        }
                        const y = this.scopedRun(() => this.startTape(), () => this.endTape(), () => this.tidy('forward', f));
                        assert(y instanceof Tensor, () => 'The result y returned by f() must be a tensor.');
                        // Filter out the nodes that don't connect x => y.
                        const filteredTape = getFilteredNodesXToY(this.state.activeTape, xs, y);
                        if (!allowNoGradients && filteredTape.length === 0 && xs.length > 0) {
                            throw new Error('Cannot compute gradient of y=f(x) with respect to x. Make sure ' + 'that the f you passed encloses all operations that lead from x ' + 'to y.');
                        }
                        return this.tidy('backward', () => {
                            const accumulatedGradientMap = {};
                            accumulatedGradientMap[y.id] = dy == null ? ones(y.shape) : dy;
                            // Backprop gradients through the filtered nodes.
                            backpropagateGradients(accumulatedGradientMap, filteredTape, // Pass the tidy function to avoid circular dep with `tape.ts`.
                                f => this.tidy(f), // Pass an add function to avoide a circular dep with `tape.ts`.
                                add);
                            const grads = xs.map(x => accumulatedGradientMap[x.id]);
                            if (this.state.gradientDepth === 0) {
                                // This means that we are not computing higher-order gradients
                                // and can clean up the tape.
                                this.state.activeTape.forEach(node => {
                                    for (const tensor of node.saved) {
                                        tensor.dispose();
                                    }
                                }
                                );
                                this.state.activeTape = null;
                            }
                            return {
                                value: y,
                                grads
                            };
                        }
                        );
                    }
                    customGrad(f) {
                        assert(isFunction(f), () => 'The f passed in customGrad(f) must be a function.');
                        return (...inputs) => {
                            assert(inputs.every(t => t instanceof Tensor), () => 'The args passed in customGrad(f)(x1, x2,...) must all be ' + 'tensors');
                            let res;
                            const inputMap = {};
                            inputs.forEach((input, i) => {
                                inputMap[i] = input;
                            }
                            );
                            const forwardFunc = (_, save) => {
                                res = f(...[...inputs, save]);
                                assert(res.value instanceof Tensor, () => 'The function f passed in customGrad(f) must return an ' + 'object where `obj.value` is a tensor');
                                assert(isFunction(res.gradFunc), () => 'The function f passed in customGrad(f) must return an ' + 'object where `obj.gradFunc` is a function.');
                                return res.value;
                            }
                                ;
                            const backwardsFunc = (dy, saved) => {
                                const gradRes = res.gradFunc(dy, saved);
                                const grads = Array.isArray(gradRes) ? gradRes : [gradRes];
                                assert(grads.length === inputs.length, () => 'The function f passed in customGrad(f) must return an ' + 'object where `obj.gradFunc` is a function that returns ' + 'the same number of tensors as inputs passed to f(...).');
                                assert(grads.every(t => t instanceof Tensor), () => 'The function f passed in customGrad(f) must return an ' + 'object where `obj.gradFunc` is a function that returns ' + 'a list of only tensors.');
                                const gradMap = {};
                                grads.forEach((grad, i) => {
                                    gradMap[i] = () => grad;
                                }
                                );
                                return gradMap;
                            }
                                ;
                            return this.runKernelFunc({
                                forwardFunc,
                                backwardsFunc,
                                inputs: inputMap
                            });
                        }
                            ;
                    }
                    readSync(dataId) {
                        // Route the read to the correct backend.
                        const info = this.state.tensorInfo.get(dataId);
                        return info.backend.readSync(dataId);
                    }
                    read(dataId) {
                        // Route the read to the correct backend.
                        const info = this.state.tensorInfo.get(dataId);
                        return info.backend.read(dataId);
                    }
                    readToGPU(dataId, options) {
                        // Route the read to the correct backend.
                        const info = this.state.tensorInfo.get(dataId);
                        return info.backend.readToGPU(dataId, options);
                    }
                    async time(query) {
                        const start = now();
                        const timingInfo = await this.backend.time(query);
                        timingInfo.wallMs = now() - start;
                        return timingInfo;
                    }
                    /**
     * Tracks a Tensor in the current scope to be automatically cleaned up
     * when the current scope ends, and returns the value.
     *
     * @param result The Tensor to track in the current scope.
     */
                    track(result) {
                        if (this.state.activeScope != null) {
                            result.scopeId = this.state.activeScope.id;
                            this.state.activeScope.track.push(result);
                        }
                        return result;
                    }
                    get registeredVariables() {
                        return this.state.registeredVariables;
                    }
                    /**
     * Resets the engine state. Removes all backends but does not remove
     * registered backend factories.
     */
                    reset() {
                        // Make any pending promise obsolete.
                        this.pendingBackendInitId++;
                        this.state.dispose();
                        this.ENV.reset();
                        this.state = new EngineState();
                        for (const backendName in this.registry) {
                            this.disposeRegisteredKernels(backendName);
                            this.registry[backendName].dispose();
                            delete this.registry[backendName];
                        }
                        this.backendName = null;
                        this.backendInstance = null;
                        this.pendingBackendInit = null;
                    }
                }
                Engine.nextTensorId = 0;
                Engine.nextVariableId = 0;
                function ones(shape) {
                    const values = makeOnesTypedArray(sizeFromShape(shape), 'float32');
                    return ENGINE.makeTensor(values, shape, 'float32');
                }
                function getOrMakeEngine() {
                    const ns = getGlobalNamespace();
                    if (ns._tfengine == null) {
                        const environment = new Environment(ns);
                        ns._tfengine = new Engine(environment);
                    }
                    setEnvironmentGlobal(ns._tfengine.ENV);
                    // Tell the current tensor interface that the global engine is responsible
                    // for tracking.
                    setTensorTracker(() => ns._tfengine);
                    return ns._tfengine;
                }
                const ENGINE = getOrMakeEngine();
                /**
 * A implementation of the add op for use within engine and tape.
 *
 * This allows us to avoid a circular dependency between add.ts and engine.
 * It is exported to be available in tape tests.
 */
                function add(a, b) {
                    // We duplicate Add here to avoid a circular dependency with add.ts.
                    const inputs = {
                        a,
                        b
                    };
                    return ENGINE.runKernel(Add, inputs);
                }
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                function inferShape(val, dtype) {
                    let firstElem = val;
                    if (isTypedArray(val)) {
                        return dtype === 'string' ? [] : [val.length];
                    }
                    if (typeof val === 'object' && 'texture' in val) {
                        const usedChannels = val.channels || 'RGBA';
                        return [val.height, val.width * usedChannels.length];
                    }
                    if (!Array.isArray(val)) {
                        return [];
                        // Scalar.
                    }
                    const shape = [];
                    while (Array.isArray(firstElem) || isTypedArray(firstElem) && dtype !== 'string') {
                        shape.push(firstElem.length);
                        firstElem = firstElem[0];
                    }
                    if (Array.isArray(val) && env().getBool('TENSORLIKE_CHECK_SHAPE_CONSISTENCY')) {
                        deepAssertShapeConsistency(val, shape, []);
                    }
                    return shape;
                }
                function deepAssertShapeConsistency(val, shape, indices) {
                    indices = indices || [];
                    if (!Array.isArray(val) && !isTypedArray(val)) {
                        assert(shape.length === 0, () => `Element arr[${indices.join('][')}] is a primitive, ` + `but should be an array/TypedArray of ${shape[0]} elements`);
                        return;
                    }
                    assert(shape.length > 0, () => `Element arr[${indices.join('][')}] should be a primitive, ` + `but is an array of ${val.length} elements`);
                    assert(val.length === shape[0], () => `Element arr[${indices.join('][')}] should have ${shape[0]} ` + `elements, but has ${val.length} elements`);
                    const subShape = shape.slice(1);
                    for (let i = 0; i < val.length; ++i) {
                        deepAssertShapeConsistency(val[i], subShape, indices.concat(i));
                    }
                }
                function assertDtype(expectedDtype, actualDType, argName, functionName) {
                    if (expectedDtype === 'string_or_numeric') {
                        return;
                    }
                    if (expectedDtype == null) {
                        throw new Error(`Expected dtype cannot be null.`);
                    }
                    if (expectedDtype !== 'numeric' && expectedDtype !== actualDType || expectedDtype === 'numeric' && actualDType === 'string') {
                        throw new Error(`Argument '${argName}' passed to '${functionName}' must ` + `be ${expectedDtype} tensor, but got ${actualDType} tensor`);
                    }
                }
                function convertToTensor(x, argName, functionName, parseAsDtype = 'numeric') {
                    if (x instanceof Tensor) {
                        assertDtype(parseAsDtype, x.dtype, argName, functionName);
                        return x;
                    }
                    let inferredDtype = inferDtype(x);
                    // If the user expects a bool/int/float, use that info to update the
                    // inferredDtype when it is not a string.
                    if (inferredDtype !== 'string' && ['bool', 'int32', 'float32'].indexOf(parseAsDtype) >= 0) {
                        inferredDtype = parseAsDtype;
                    }
                    assertDtype(parseAsDtype, inferredDtype, argName, functionName);
                    if (x == null || !isTypedArray(x) && !Array.isArray(x) && typeof x !== 'number' && typeof x !== 'boolean' && typeof x !== 'string') {
                        const type = x == null ? 'null' : x.constructor.name;
                        throw new Error(`Argument '${argName}' passed to '${functionName}' must be a ` + `Tensor or TensorLike, but got '${type}'`);
                    }
                    const inferredShape = inferShape(x, inferredDtype);
                    if (!isTypedArray(x) && !Array.isArray(x)) {
                        x = [x];
                    }
                    const skipTypedArray = true;
                    const values = inferredDtype !== 'string' ? toTypedArray(x, inferredDtype) : flatten(x, [], skipTypedArray);
                    return ENGINE.makeTensor(values, inferredShape, inferredDtype);
                }
                function convertToTensorArray(arg, argName, functionName, parseAsDtype = 'numeric') {
                    if (!Array.isArray(arg)) {
                        throw new Error(`Argument ${argName} passed to ${functionName} must be a ` + '`Tensor[]` or `TensorLike[]`');
                    }
                    const tensors = arg;
                    return tensors.map((t, i) => convertToTensor(t, `${argName}[${i}]`, functionName, parseAsDtype));
                }
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const OP_SCOPE_SUFFIX = '__op';
                /**
 * Used for wrapping functions that perform math operations on
 * Tensors. The function will be wrapped in a named scope that cleans all
 * memory usage after the function is done.
 */
                function op(f) {
                    const keys = Object.keys(f);
                    if (keys.length !== 1) {
                        throw new Error(`Please provide an object with a single key ` + `(operation name) mapping to a function. Got an object with ` + `${keys.length} keys.`);
                    }
                    let opName = keys[0];
                    const fn = f[opName];
                    // Strip the underscore from the end of the function name.
                    if (opName.endsWith('_')) {
                        opName = opName.substring(0, opName.length - 1);
                    }
                    // add an __op suffix to distinguish ops from kernels in tf.profile
                    opName = opName + OP_SCOPE_SUFFIX;
                    // tslint:disable-next-line:no-any
                    const f2 = (...args) => {
                        ENGINE.startScope(opName);
                        try {
                            const result = fn(...args);
                            if (isPromise(result)) {
                                console.error('Cannot return a Promise inside of tidy.');
                            }
                            ENGINE.endScope(result);
                            return result;
                        } catch (ex) {
                            ENGINE.endScope(null);
                            throw ex;
                        }
                    }
                        ;
                    Object.defineProperty(f2, 'name', {
                        value: opName,
                        configurable: true
                    });
                    // tslint:disable-next-line:no-any
                    return f2;
                }
                /**
 * @license
 * Copyright 2020 Google Inc. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Casts a `tf.Tensor` to a new dtype.
 *
 * ```js
 * const x = tf.tensor1d([1.5, 2.5, 3]);
 * tf.cast(x, 'int32').print();
 * ```
 * @param x The input tensor to be casted.
 * @param dtype The dtype to cast the input tensor to.
 *
 * @doc {heading: 'Tensors', subheading: 'Transformations'}
 */
                function cast_(x, dtype) {
                    const $x = convertToTensor(x, 'x', 'cast');
                    // Sanity checks.
                    if (!isValidDtype(dtype)) {
                        throw new Error(`Failed to cast to unknown dtype ${dtype}`);
                    }
                    if (dtype === 'string' && $x.dtype !== 'string' || dtype !== 'string' && $x.dtype === 'string') {
                        throw new Error('Only strings can be casted to strings');
                    }
                    const inputs = {
                        x: $x
                    };
                    const attrs = {
                        dtype
                    };
                    return ENGINE.runKernel(Cast, inputs, attrs);
                }
                const cast = op({
                    cast_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Multiplies two `tf.Tensor`s element-wise, A * B. Supports broadcasting.
 *
 * We also expose `tf.mulStrict` which has the same signature as this op and
 * asserts that `a` and `b` are the same shape (does not broadcast).
 *
 * ```js
 * const a = tf.tensor1d([1, 2, 3, 4]);
 * const b = tf.tensor1d([2, 3, 4, 5]);
 *
 * a.mul(b).print();  // or tf.mul(a, b)
 * ```
 *
 * ```js
 * // Broadcast mul a with b.
 * const a = tf.tensor1d([1, 2, 3, 4]);
 * const b = tf.scalar(5);
 *
 * a.mul(b).print();  // or tf.mul(a, b)
 * ```
 * @param a The first tensor to multiply.
 * @param b The second tensor to multiply. Must have the same dtype as `a`.
 *
 * @doc {heading: 'Operations', subheading: 'Arithmetic'}
 */
                function mul_(a, b) {
                    let $a = convertToTensor(a, 'a', 'mul');
                    let $b = convertToTensor(b, 'b', 'mul');
                    [$a, $b] = makeTypesMatch($a, $b);
                    const inputs = {
                        a: $a,
                        b: $b
                    };
                    return ENGINE.runKernel(Multiply, inputs);
                }
                const mul = op({
                    mul_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes step of the input `tf.Tensor` element-wise: `x > 0 ? 1 : alpha * x`
 *
 * ```js
 * const x = tf.tensor1d([0, 2, -1, -3]);
 *
 * x.step(.5).print();  // or tf.step(x, .5)
 * ```
 * @param x The input tensor.
 * @param alpha The gradient when input is negative.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function step_(x, alpha = 0.0) {
                    const $x = convertToTensor(x, 'x', 'step');
                    const inputs = {
                        x: $x
                    };
                    const attrs = {
                        alpha
                    };
                    return ENGINE.runKernel(Step, inputs, attrs);
                }
                const step = op({
                    step_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const absGradConfig = {
                    kernelName: Abs,
                    inputsToSave: ['x'],
                    gradFunc: (dy, saved) => {
                        const [x] = saved;
                        return {
                            x: () => mul(dy, step(cast(x, 'float32'), -1))
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Divides two `tf.Tensor`s element-wise, A / B. Supports broadcasting.
 * The result is rounded with floor function.
 *
 *
 * ```js
 * const a = tf.tensor1d([1, 4, 9, 16]);
 * const b = tf.tensor1d([1, 2, 3, 4]);
 *
 * a.floorDiv(b).print();  // or tf.div(a, b)
 * ```
 *
 * ```js
 * // Broadcast div a with b.
 * const a = tf.tensor1d([2, 4, 6, 8]);
 * const b = tf.scalar(2);
 *
 * a.floorDiv(b).print();  // or tf.floorDiv(a, b)
 * ```
 *
 * @param a The first tensor as the numerator.
 * @param b The second tensor as the denominator. Must have the same dtype as
 * `a`.
 *
 * @doc {heading: 'Operations', subheading: 'Arithmetic'}
 */
                function floorDiv_(a, b) {
                    let $a = convertToTensor(a, 'a', 'floorDiv');
                    let $b = convertToTensor(b, 'b', 'floorDiv');
                    [$a, $b] = makeTypesMatch($a, $b);
                    const inputs = {
                        a: $a,
                        b: $b
                    };
                    return ENGINE.runKernel(FloorDiv, inputs);
                }
                const floorDiv = op({
                    floorDiv_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Divides two `tf.Tensor`s element-wise, A / B. Supports broadcasting.
 *
 * ```js
 * const a = tf.tensor1d([1, 4, 9, 16]);
 * const b = tf.tensor1d([1, 2, 3, 4]);
 *
 * a.div(b).print();  // or tf.div(a, b)
 * ```
 *
 * ```js
 * // Broadcast div a with b.
 * const a = tf.tensor1d([2, 4, 6, 8]);
 * const b = tf.scalar(2);
 *
 * a.div(b).print();  // or tf.div(a, b)
 * ```
 *
 * @param a The first tensor as the numerator.
 * @param b The second tensor as the denominator. Must have the same dtype as
 * `a`.
 *
 * @doc {heading: 'Operations', subheading: 'Arithmetic'}
 */
                function div_(a, b) {
                    let $a = convertToTensor(a, 'a', 'div');
                    let $b = convertToTensor(b, 'b', 'div');
                    [$a, $b] = makeTypesMatch($a, $b);
                    if ($a.dtype === 'int32' && $b.dtype === 'int32') {
                        return floorDiv($a, $b);
                    }
                    const inputs = {
                        a: $a,
                        b: $b
                    };
                    const attrs = {};
                    // tslint:disable-next-line: no-unnecessary-type-assertion
                    return ENGINE.runKernel(RealDiv, inputs, attrs);
                }
                const div = op({
                    div_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes `-1 * x` element-wise.
 *
 * ```js
 * const x = tf.tensor2d([1, 2, -2, 0], [2, 2]);
 *
 * x.neg().print();  // or tf.neg(x)
 * ```
 *
 * @param x The input tensor.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function neg_(x) {
                    const $x = convertToTensor(x, 'x', 'neg');
                    const inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(Neg, inputs);
                }
                const neg = op({
                    neg_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /** This is shared code across all tensor creation methods. */
                function makeTensor(values, shape, inferredShape, dtype) {
                    if (dtype == null) {
                        dtype = inferDtype(values);
                    }
                    if (dtype === 'complex64') {
                        throw new Error(`Cannot construct a complex64 tensor directly. ` + `Please use tf.complex(real, imag).`);
                    }
                    if (typeof values === 'object' && 'texture' in values) {
                        if (dtype !== 'float32' && dtype !== 'int32') {
                            throw new Error(`Creating tensor from texture only supports ` + `'float32'|'int32' dtype, while the dtype is ${dtype}.`);
                        }
                        values.channels = values.channels || 'RGBA';
                        return ENGINE.backend.createTensorFromTexture(values, shape || inferredShape, dtype);
                    }
                    if (!isTypedArray(values) && !Array.isArray(values) && typeof values !== 'number' && typeof values !== 'boolean' && typeof values !== 'string') {
                        throw new Error('values passed to tensor(values) must be a number/boolean/string or ' + 'an array of numbers/booleans/strings, or a TypedArray');
                    }
                    // Verify that the shape matches the inferred shape.
                    if (shape != null) {
                        assertNonNegativeIntegerDimensions(shape);
                        const providedSize = sizeFromShape(shape);
                        const inferredSize = sizeFromShape(inferredShape);
                        assert(providedSize === inferredSize, () => `Based on the provided shape, [${shape}], the tensor should have ` + `${providedSize} values but has ${inferredSize}`);
                        for (let i = 0; i < inferredShape.length; ++i) {
                            const inferred = inferredShape[i];
                            const flatDimsDontMatch = i === inferredShape.length - 1 ? inferred !== sizeFromShape(shape.slice(i)) : true;
                            assert(inferredShape[i] === shape[i] || !flatDimsDontMatch, () => `Error creating a new Tensor. Inferred shape ` + `(${inferredShape}) does not match the provided ` + `shape (${shape}). `);
                        }
                    }
                    if (!isTypedArray(values) && !Array.isArray(values)) {
                        values = [values];
                    }
                    shape = shape || inferredShape;
                    values = dtype !== 'string' ? toTypedArray(values, dtype) : flatten(values, [], true);
                    return ENGINE.makeTensor(values, shape, dtype);
                }
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Creates rank-0 `tf.Tensor` (scalar) with the provided value and dtype.
 *
 * The same functionality can be achieved with `tf.tensor`, but in general
 * we recommend using `tf.scalar` as it makes the code more readable.
 *
 * ```js
 * tf.scalar(3.14).print();
 * ```
 *
 * @param value The value of the scalar.
 * @param dtype The data type.
 *
 * @doc {heading: 'Tensors', subheading: 'Creation'}
 */
                function scalar(value, dtype) {
                    if ((isTypedArray(value) && dtype !== 'string' || Array.isArray(value)) && dtype !== 'complex64') {
                        throw new Error('Error creating a new Scalar: value must be a primitive ' + '(number|boolean|string)');
                    }
                    if (dtype === 'string' && isTypedArray(value) && !(value instanceof Uint8Array)) {
                        throw new Error('When making a scalar from encoded string, ' + 'the value must be `Uint8Array`.');
                    }
                    const shape = [];
                    const inferredShape = [];
                    return makeTensor(value, shape, inferredShape, dtype);
                }
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes square root of the input `tf.Tensor` element-wise: `y = sqrt(x)`
 *
 * ```js
 * const x = tf.tensor1d([1, 2, 4, -1]);
 *
 * x.sqrt().print();  // or tf.sqrt(x)
 * ```
 * @param x The input tensor.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function sqrt_(x) {
                    const $x = convertToTensor(x, 'x', 'sqrt', 'float32');
                    const inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(Sqrt, inputs);
                }
                const sqrt = op({
                    sqrt_
                });
                /**
 * @license
 * Copyright 2019 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes square of `x` element-wise: `x ^ 2`
 *
 * ```js
 * const x = tf.tensor1d([1, 2, Math.sqrt(2), -1]);
 *
 * x.square().print();  // or tf.square(x)
 * ```
 * @param x The input Tensor.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function square_(x) {
                    const $x = convertToTensor(x, 'x', 'square');
                    const attrs = {};
                    return ENGINE.runKernel('Square', {
                        x: $x
                    }, attrs);
                }
                const square = op({
                    square_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Subtracts two `tf.Tensor`s element-wise, A - B. Supports broadcasting.
 *
 * ```js
 * const a = tf.tensor1d([10, 20, 30, 40]);
 * const b = tf.tensor1d([1, 2, 3, 4]);
 *
 * a.sub(b).print();  // or tf.sub(a, b)
 * ```
 *
 * ```js
 * // Broadcast subtract a with b.
 * const a = tf.tensor1d([10, 20, 30, 40]);
 * const b = tf.scalar(5);
 *
 * a.sub(b).print();  // or tf.sub(a, b)
 * ```
 * @param a The first `tf.Tensor` to subtract from.
 * @param b The second `tf.Tensor` to be subtracted. Must have the same dtype as
 * `a`.
 *
 * @doc {heading: 'Operations', subheading: 'Arithmetic'}
 */
                function sub_(a, b) {
                    let $a = convertToTensor(a, 'a', 'sub');
                    let $b = convertToTensor(b, 'b', 'sub');
                    [$a, $b] = makeTypesMatch($a, $b);
                    const inputs = {
                        a: $a,
                        b: $b
                    };
                    return ENGINE.runKernel(Sub, inputs);
                }
                const sub = op({
                    sub_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const acosGradConfig = {
                    kernelName: Acos,
                    inputsToSave: ['x'],
                    gradFunc: (dy, saved) => {
                        const [x] = saved;
                        return {
                            x: () => {
                                const a = square(cast(x, 'float32'));
                                const b = sqrt(sub(scalar(1), a));
                                return neg(div(dy, b));
                            }
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const acoshGradConfig = {
                    kernelName: Acosh,
                    inputsToSave: ['x'],
                    gradFunc: (dy, saved) => {
                        const [x] = saved;
                        return {
                            x: () => {
                                const a = sqrt(sub(square(cast(x, 'float32')), 1));
                                return div(dy, a);
                            }
                        };
                    }
                };
                /**
 * @license
 * Copyright 2017 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Returns the dimensions in the input shape that are broadcasted to
 * produce the provided output shape.
 *
 * The returned dimensions are 0-indexed and sorted. An example:
 * inShape = [4, 1, 3]
 * outShape = [5, 4, 3, 3]
 * result = [1]. Dimension 1 (2nd dimension of input) gets broadcasted 1 => 3.
 */
                function getBroadcastDims(inShape, outShape) {
                    const inRank = inShape.length;
                    const dims = [];
                    for (let i = 0; i < inRank; i++) {
                        const dim = inRank - 1 - i;
                        const a = inShape[dim] || 1;
                        const b = outShape[outShape.length - 1 - i] || 1;
                        if (b > 1 && a === 1) {
                            dims.unshift(dim);
                        }
                    }
                    return dims;
                }
                /**
 * Returns the axes in the output space that should be reduced to produce
 * the input space.
 */
                function getReductionAxes(inShape, outShape) {
                    const result = [];
                    for (let i = 0; i < outShape.length; i++) {
                        const inDim = inShape[inShape.length - i - 1];
                        const outAxis = outShape.length - i - 1;
                        const outDim = outShape[outAxis];
                        if (inDim == null || inDim === 1 && outDim > 1) {
                            result.unshift(outAxis);
                        }
                    }
                    return result;
                }
                function assertAndGetBroadcastShape(shapeA, shapeB) {
                    const result = [];
                    const l = Math.max(shapeA.length, shapeB.length);
                    for (let i = 0; i < l; i++) {
                        let a = shapeA[shapeA.length - i - 1];
                        if (a == null) {
                            a = 1;
                        }
                        let b = shapeB[shapeB.length - i - 1];
                        if (b == null) {
                            b = 1;
                        }
                        if (a === 1) {
                            result.unshift(b);
                        } else if (b === 1) {
                            result.unshift(a);
                        } else if (a !== b) {
                            const errMsg = `Operands could not be broadcast together with shapes ` + `${shapeA} and ${shapeB}.`;
                            throw Error(errMsg);
                        } else {
                            result.unshift(a);
                        }
                    }
                    return result;
                }
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Reshapes a `tf.Tensor` to a given shape.
 *
 * Given an input tensor, returns a new tensor with the same values as the
 * input tensor with shape `shape`.
 *
 * If one component of shape is the special value -1, the size of that
 * dimension is computed so that the total size remains constant. In
 * particular, a shape of [-1] flattens into 1-D. At most one component of
 * shape can be -1.
 *
 * If shape is 1-D or higher, then the operation returns a tensor with shape
 * shape filled with the values of tensor. In this case, the number of
 * elements implied by shape must be the same as the number of elements in
 * tensor.
 *
 * ```js
 * const x = tf.tensor1d([1, 2, 3, 4]);
 * x.reshape([2, 2]).print();
 * ```
 *
 * @param x The input tensor to be reshaped.
 * @param shape An array of integers defining the output tensor shape.
 *
 * @doc {heading: 'Tensors', subheading: 'Transformations'}
 */
                function reshape_(x, shape) {
                    const $x = convertToTensor(x, 'x', 'reshape', 'string_or_numeric');
                    const inputs = {
                        x: $x
                    };
                    const attrs = {
                        shape
                    };
                    return ENGINE.runKernel(Reshape, inputs, attrs);
                }
                const reshape = op({
                    reshape_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the sum of elements across dimensions of a `tf.Tensor`.
 *
 * Reduces the input along the dimensions given in `axes`. Unless `keepDims`
 * is true, the rank of the `tf.Tensor` is reduced by 1 for each entry in
 * `axes`. If `keepDims` is true, the reduced dimensions are retained with
 * length 1. If axes has no entries, all dimensions are reduced, and a
 * `tf.Tensor` with a single element is returned.
 *
 * ```js
 * const x = tf.tensor1d([1, 2, 3]);
 *
 * x.sum().print();  // or tf.sum(x)
 * ```
 *
 * ```js
 * const x = tf.tensor2d([1, 2, 3, 4], [2, 2]);
 *
 * const axis = 1;
 * x.sum(axis).print();  // or tf.sum(x, axis)
 * ```
 *
 * @param x The input tensor to compute the sum over. If the dtype is `bool`
 *   it will be converted to `int32` and the output dtype will be `int32`.
 * @param axis The dimension(s) to reduce. By default it reduces
 *     all dimensions.
 * @param keepDims If true, retains reduced dimensions with size 1.
 *
 * @doc {heading: 'Operations', subheading: 'Reduction'}
 */
                function sum_(x, axis = null, keepDims = false) {
                    let $x = convertToTensor(x, 'x', 'sum');
                    if ($x.dtype === 'bool') {
                        $x = cast($x, 'int32');
                    }
                    const inputs = {
                        x: $x
                    };
                    const attrs = {
                        axis,
                        keepDims
                    };
                    return ENGINE.runKernel(Sum, inputs, attrs);
                }
                const sum$1 = op({
                    sum_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const addGradConfig = {
                    kernelName: Add,
                    inputsToSave: ['a', 'b'],
                    gradFunc: (dy, saved) => {
                        const [a, b] = saved;
                        const outShape = assertAndGetBroadcastShape(a.shape, b.shape);
                        const derA = () => {
                            let res = dy;
                            const reduceAxes = getReductionAxes(a.shape, outShape);
                            if (reduceAxes.length > 0) {
                                res = sum$1(res, reduceAxes);
                            }
                            return reshape(res, a.shape);
                        }
                            ;
                        const derB = () => {
                            let res = dy;
                            const reduceAxes = getReductionAxes(b.shape, outShape);
                            if (reduceAxes.length > 0) {
                                res = sum$1(res, reduceAxes);
                            }
                            return reshape(res, b.shape);
                        }
                            ;
                        return {
                            a: derA,
                            b: derB
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const addNGradConfig = {
                    kernelName: AddN,
                    saveAllInputs: true,
                    gradFunc: (dy, saved) => {
                        const ders = {};
                        saved.forEach((_, i) => {
                            ders[i] = () => dy.clone();
                        }
                        );
                        return ders;
                    }
                };
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Creates a `tf.Tensor` with all elements set to 0 with the same shape as the
 * given tensor.
 *
 * ```js
 * const x = tf.tensor([1, 2]);
 * tf.zerosLike(x).print();
 * ```
 *
 * @param x The tensor of required shape.
 *
 * @doc {heading: 'Tensors', subheading: 'Creation'}
 */
                function zerosLike_(x) {
                    const $x = convertToTensor(x, 'x', 'zerosLike');
                    const inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(ZerosLike, inputs);
                }
                const zerosLike = op({
                    zerosLike_
                });
                /**
 * @license
 * Copyright 2020 Google Inc. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const argMaxGradConfig = {
                    kernelName: ArgMax,
                    inputsToSave: ['x'],
                    gradFunc: (dy, saved) => {
                        const [x] = saved;
                        return {
                            x: () => zerosLike(x)
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google Inc. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const argMinGradConfig = {
                    kernelName: ArgMin,
                    inputsToSave: ['x'],
                    gradFunc: (dy, saved) => {
                        const [x] = saved;
                        return {
                            x: () => zerosLike(x)
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const asinGradConfig = {
                    kernelName: Asin,
                    inputsToSave: ['x'],
                    gradFunc: (dy, saved) => {
                        const [x] = saved;
                        return {
                            x: () => div(dy, sqrt(sub(scalar(1), square(cast(x, 'float32')))))
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Adds two `tf.Tensor`s element-wise, A + B. Supports broadcasting.
 *
 *
 * ```js
 * const a = tf.tensor1d([1, 2, 3, 4]);
 * const b = tf.tensor1d([10, 20, 30, 40]);
 *
 * a.add(b).print();  // or tf.add(a, b)
 * ```
 *
 * ```js
 * // Broadcast add a with b.
 * const a = tf.scalar(5);
 * const b = tf.tensor1d([10, 20, 30, 40]);
 *
 * a.add(b).print();  // or tf.add(a, b)
 * ```
 * @param a The first `tf.Tensor` to add.
 * @param b The second `tf.Tensor` to add. Must have the same type as `a`.
 *
 * @doc {heading: 'Operations', subheading: 'Arithmetic'}
 */
                function add_(a, b) {
                    let $a = convertToTensor(a, 'a', 'add');
                    let $b = convertToTensor(b, 'b', 'add');
                    [$a, $b] = makeTypesMatch($a, $b);
                    const inputs = {
                        a: $a,
                        b: $b
                    };
                    return ENGINE.runKernel(Add, inputs);
                }
                const add$1 = op({
                    add_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const asinhGradConfig = {
                    kernelName: Asinh,
                    inputsToSave: ['x'],
                    gradFunc: (dy, saved) => {
                        const [x] = saved;
                        return {
                            x: () => {
                                const a = sqrt(add$1(scalar(1), square(cast(x, 'float32'))));
                                return div(dy, a);
                            }
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const atan2GradConfig = {
                    kernelName: Atan2,
                    inputsToSave: ['a', 'b'],
                    gradFunc: (dy, saved) => {
                        const [a, b] = saved;
                        const outShape = assertAndGetBroadcastShape(a.shape, b.shape);
                        const derA = () => {
                            const d = add$1(square(a), square(b));
                            let res = mul(dy, div(b, d));
                            const reduceAxes = getReductionAxes(a.shape, outShape);
                            if (reduceAxes.length > 0) {
                                res = sum$1(res, reduceAxes);
                            }
                            return reshape(res, a.shape);
                        }
                            ;
                        const derB = () => {
                            const d = add$1(square(a), square(b));
                            let res = neg(mul(dy, div(a, d)));
                            const reduceAxes = getReductionAxes(b.shape, outShape);
                            if (reduceAxes.length > 0) {
                                res = sum$1(res, reduceAxes);
                            }
                            return reshape(res, b.shape);
                        }
                            ;
                        return {
                            a: derA,
                            b: derB
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const atanGradConfig = {
                    kernelName: Atan,
                    inputsToSave: ['x'],
                    gradFunc: (dy, saved) => {
                        const [x] = saved;
                        return {
                            x: () => div(dy, add$1(square(cast(x, 'float32')), 1))
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const atanhGradConfig = {
                    kernelName: Atanh,
                    inputsToSave: ['x'],
                    gradFunc: (dy, saved) => {
                        const [x] = saved;
                        return {
                            x: () => div(dy, sub(scalar(1), square(cast(x, 'float32'))))
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 *
 * @param inputShape Input tensor shape is of the following dimensions:
 *     `[batch, height, width, inChannels]`.
 * @param filterShape The filter shape is of the following dimensions:
 *     `[filterHeight, filterWidth, depth]`.
 * @param strides The strides of the sliding window for each dimension of the
 *     input tensor: `[strideHeight, strideWidth]`.
 *     If `strides` is a single number,
 *     then `strideHeight == strideWidth`.
 * @param pad The type of padding algorithm.
 *    - `same` and stride 1: output will be of same size as input,
 *       regardless of filter size.
 *    - `valid`: output will be smaller than input if filter is larger
 *       than 1*1x1.
 *    - For more info, see this guide:
 *     [https://www.tensorflow.org/api_docs/python/tf/nn/convolution](
 *          https://www.tensorflow.org/api_docs/python/tf/nn/convolution)
 * @param dataFormat The data format of the input and output data.
 *     Defaults to 'NHWC'.
 * @param dilations The dilation rates: `[dilationHeight, dilationWidth]`.
 *     Defaults to `[1, 1]`. If `dilations` is a single number, then
 *     `dilationHeight == dilationWidth`.
 */
                function computeDilation2DInfo(inputShape, filterShape, strides, pad, dataFormat = 'NHWC', dilations) {
                    // `computerConv2DInfo` require filterShape to be in the dimension of:
                    // `[filterHeight, filterWidth, depth, outDepth]`, dilation2d doesn't have
                    // outDepth, it should have the same depth as the input.
                    // Input shape: [batch, height, width, inChannels]
                    const inputChannels = inputShape[3];
                    const $filterShape = [...filterShape, inputChannels];
                    const $dataFormat = convertConv2DDataFormat(dataFormat);
                    return computeConv2DInfo(inputShape, $filterShape, strides, dilations, pad, null /* roundingMode */
                        , null /* depthWise */
                        , $dataFormat);
                }
                function computePool2DInfo(inShape, filterSize, strides, dilations, pad, roundingMode, dataFormat = 'channelsLast') {
                    const [filterHeight, filterWidth] = parseTupleParam(filterSize);
                    let filterShape;
                    if (dataFormat === 'channelsLast') {
                        filterShape = [filterHeight, filterWidth, inShape[3], inShape[3]];
                    } else if (dataFormat === 'channelsFirst') {
                        filterShape = [filterHeight, filterWidth, inShape[1], inShape[1]];
                    } else {
                        throw new Error(`Unknown dataFormat ${dataFormat}`);
                    }
                    return computeConv2DInfo(inShape, filterShape, strides, dilations, pad, roundingMode, false, dataFormat);
                }
                /**
 * Computes the information for a forward pass of a pooling3D operation.
 */
                function computePool3DInfo(inShape, filterSize, strides, dilations, pad, roundingMode, dataFormat = 'NDHWC') {
                    const [filterDepth, filterHeight, filterWidth] = parse3TupleParam(filterSize);
                    let filterShape;
                    let $dataFormat;
                    if (dataFormat === 'NDHWC') {
                        $dataFormat = 'channelsLast';
                        filterShape = [filterDepth, filterHeight, filterWidth, inShape[4], inShape[4]];
                    } else if (dataFormat === 'NCDHW') {
                        $dataFormat = 'channelsFirst';
                        filterShape = [filterDepth, filterHeight, filterWidth, inShape[1], inShape[1]];
                    } else {
                        throw new Error(`Unknown dataFormat ${dataFormat}`);
                    }
                    return computeConv3DInfo(inShape, filterShape, strides, dilations, pad, false, $dataFormat, roundingMode);
                }
                /**
 * Computes the information for a forward pass of a convolution/pooling
 * operation.
 */
                function computeConv2DInfo(inShape, filterShape, strides, dilations, pad, roundingMode, depthwise = false, dataFormat = 'channelsLast') {
                    let [batchSize, inHeight, inWidth, inChannels] = [-1, -1, -1, -1];
                    if (dataFormat === 'channelsLast') {
                        [batchSize, inHeight, inWidth, inChannels] = inShape;
                    } else if (dataFormat === 'channelsFirst') {
                        [batchSize, inChannels, inHeight, inWidth] = inShape;
                    } else {
                        throw new Error(`Unknown dataFormat ${dataFormat}`);
                    }
                    const [filterHeight, filterWidth, , filterChannels] = filterShape;
                    const [strideHeight, strideWidth] = parseTupleParam(strides);
                    const [dilationHeight, dilationWidth] = parseTupleParam(dilations);
                    const effectiveFilterHeight = getEffectiveFilterSize(filterHeight, dilationHeight);
                    const effectiveFilterWidth = getEffectiveFilterSize(filterWidth, dilationWidth);
                    const { padInfo, outHeight, outWidth } = getPadAndOutInfo(pad, inHeight, inWidth, strideHeight, strideWidth, effectiveFilterHeight, effectiveFilterWidth, roundingMode, dataFormat);
                    const outChannels = depthwise ? filterChannels * inChannels : filterChannels;
                    let outShape;
                    if (dataFormat === 'channelsFirst') {
                        outShape = [batchSize, outChannels, outHeight, outWidth];
                    } else if (dataFormat === 'channelsLast') {
                        outShape = [batchSize, outHeight, outWidth, outChannels];
                    }
                    return {
                        batchSize,
                        dataFormat,
                        inHeight,
                        inWidth,
                        inChannels,
                        outHeight,
                        outWidth,
                        outChannels,
                        padInfo,
                        strideHeight,
                        strideWidth,
                        filterHeight,
                        filterWidth,
                        effectiveFilterHeight,
                        effectiveFilterWidth,
                        dilationHeight,
                        dilationWidth,
                        inShape,
                        outShape,
                        filterShape
                    };
                }
                /**
 * Computes the information for a forward pass of a 3D convolution/pooling
 * operation.
 */
                function computeConv3DInfo(inShape, filterShape, strides, dilations, pad, depthwise = false, dataFormat = 'channelsLast', roundingMode) {
                    let [batchSize, inDepth, inHeight, inWidth, inChannels] = [-1, -1, -1, -1, -1];
                    if (dataFormat === 'channelsLast') {
                        [batchSize, inDepth, inHeight, inWidth, inChannels] = inShape;
                    } else if (dataFormat === 'channelsFirst') {
                        [batchSize, inChannels, inDepth, inHeight, inWidth] = inShape;
                    } else {
                        throw new Error(`Unknown dataFormat ${dataFormat}`);
                    }
                    const [filterDepth, filterHeight, filterWidth, , filterChannels] = filterShape;
                    const [strideDepth, strideHeight, strideWidth] = parse3TupleParam(strides);
                    const [dilationDepth, dilationHeight, dilationWidth] = parse3TupleParam(dilations);
                    const effectiveFilterDepth = getEffectiveFilterSize(filterDepth, dilationDepth);
                    const effectiveFilterHeight = getEffectiveFilterSize(filterHeight, dilationHeight);
                    const effectiveFilterWidth = getEffectiveFilterSize(filterWidth, dilationWidth);
                    const { padInfo, outDepth, outHeight, outWidth } = get3DPadAndOutInfo(pad, inDepth, inHeight, inWidth, strideDepth, strideHeight, strideWidth, effectiveFilterDepth, effectiveFilterHeight, effectiveFilterWidth, roundingMode);
                    const outChannels = depthwise ? filterChannels * inChannels : filterChannels;
                    let outShape;
                    if (dataFormat === 'channelsFirst') {
                        outShape = [batchSize, outChannels, outDepth, outHeight, outWidth];
                    } else if (dataFormat === 'channelsLast') {
                        outShape = [batchSize, outDepth, outHeight, outWidth, outChannels];
                    }
                    return {
                        batchSize,
                        dataFormat,
                        inDepth,
                        inHeight,
                        inWidth,
                        inChannels,
                        outDepth,
                        outHeight,
                        outWidth,
                        outChannels,
                        padInfo,
                        strideDepth,
                        strideHeight,
                        strideWidth,
                        filterDepth,
                        filterHeight,
                        filterWidth,
                        effectiveFilterDepth,
                        effectiveFilterHeight,
                        effectiveFilterWidth,
                        dilationDepth,
                        dilationHeight,
                        dilationWidth,
                        inShape,
                        outShape,
                        filterShape
                    };
                }
                function computeOutputShape2D(inShape, fieldSize, stride, zeroPad, roundingMode) {
                    if (zeroPad == null) {
                        zeroPad = computeDefaultPad(inShape, fieldSize, stride);
                    }
                    const inputRows = inShape[0];
                    const inputCols = inShape[1];
                    const outputRows = round((inputRows - fieldSize + 2 * zeroPad) / stride + 1, roundingMode);
                    const outputCols = round((inputCols - fieldSize + 2 * zeroPad) / stride + 1, roundingMode);
                    return [outputRows, outputCols];
                }
                function computeOutputShape4D(inShape, fieldSize, outChannels, stride, zeroPad, roundingMode) {
                    if (zeroPad == null) {
                        zeroPad = computeDefaultPad(inShape, fieldSize, stride);
                    }
                    const inputDepth = inShape[0];
                    const inputRows = inShape[1];
                    const inputCols = inShape[2];
                    const outputDepths = round((inputDepth - fieldSize + 2 * zeroPad) / stride + 1, roundingMode);
                    const outputRows = round((inputRows - fieldSize + 2 * zeroPad) / stride + 1, roundingMode);
                    const outputCols = round((inputCols - fieldSize + 2 * zeroPad) / stride + 1, roundingMode);
                    return [outputDepths, outputRows, outputCols, outChannels];
                }
                function computeDefaultPad(inputShape, fieldSize, stride, dilation = 1) {
                    const effectiveFieldSize = getEffectiveFilterSize(fieldSize, dilation);
                    return Math.floor((inputShape[0] * (stride - 1) - stride + effectiveFieldSize) / 2);
                }
                function parseTupleParam(param) {
                    if (typeof param === 'number') {
                        return [param, param, param];
                    }
                    if (param.length === 2) {
                        return [param[0], param[1], 1];
                    }
                    return param;
                }
                function parse3TupleParam(param) {
                    return typeof param === 'number' ? [param, param, param] : param;
                }
                /* See https://www.tensorflow.org/api_docs/python/tf/nn/atrous_conv2d
 * Atrous convolution is equivalent to standard convolution with upsampled
 * filters with effective_filter_height =
 * filter_height + (filter_height - 1) * (dilation - 1)
 * and effective_filter_width =
 * filter_width + (filter_width - 1) * (dilation - 1),
 * produced by inserting dilation - 1 zeros along consecutive elements across
 * the filters' spatial dimensions.
 * When there is a dilation, this converts a filter dimension to the
 * effective filter dimension, so it can be used in a standard convolution.
 */
                function getEffectiveFilterSize(filterSize, dilation) {
                    if (dilation <= 1) {
                        return filterSize;
                    }
                    return filterSize + (filterSize - 1) * (dilation - 1);
                }
                function getPadAndOutInfo(pad, inHeight, inWidth, strideHeight, strideWidth, filterHeight, filterWidth, roundingMode, dataFormat) {
                    let padInfo;
                    let outHeight;
                    let outWidth;
                    if (typeof pad === 'number') {
                        const padType = pad === 0 ? 'VALID' : 'NUMBER';
                        padInfo = {
                            top: pad,
                            bottom: pad,
                            left: pad,
                            right: pad,
                            type: padType
                        };
                        const outShape = computeOutputShape2D([inHeight, inWidth], filterHeight, strideHeight, pad, roundingMode);
                        outHeight = outShape[0];
                        outWidth = outShape[1];
                    } else if (pad === 'same') {
                        outHeight = Math.ceil(inHeight / strideHeight);
                        outWidth = Math.ceil(inWidth / strideWidth);
                        const padAlongHeight = Math.max(0, (outHeight - 1) * strideHeight + filterHeight - inHeight);
                        const padAlongWidth = Math.max(0, (outWidth - 1) * strideWidth + filterWidth - inWidth);
                        const top = Math.floor(padAlongHeight / 2);
                        const bottom = padAlongHeight - top;
                        const left = Math.floor(padAlongWidth / 2);
                        const right = padAlongWidth - left;
                        padInfo = {
                            top,
                            bottom,
                            left,
                            right,
                            type: 'SAME'
                        };
                    } else if (pad === 'valid') {
                        padInfo = {
                            top: 0,
                            bottom: 0,
                            left: 0,
                            right: 0,
                            type: 'VALID'
                        };
                        outHeight = Math.ceil((inHeight - filterHeight + 1) / strideHeight);
                        outWidth = Math.ceil((inWidth - filterWidth + 1) / strideWidth);
                    } else if (typeof pad === 'object') {
                        const top = dataFormat === 'channelsLast' ? pad[1][0] : pad[2][0];
                        const bottom = dataFormat === 'channelsLast' ? pad[1][1] : pad[2][1];
                        const left = dataFormat === 'channelsLast' ? pad[2][0] : pad[3][0];
                        const right = dataFormat === 'channelsLast' ? pad[2][1] : pad[3][1];
                        const padType = top === 0 && bottom === 0 && left === 0 && right === 0 ? 'VALID' : 'EXPLICIT';
                        padInfo = {
                            top,
                            bottom,
                            left,
                            right,
                            type: padType
                        };
                        outHeight = round((inHeight - filterHeight + top + bottom) / strideHeight + 1, roundingMode);
                        outWidth = round((inWidth - filterWidth + left + right) / strideWidth + 1, roundingMode);
                    } else {
                        throw Error(`Unknown padding parameter: ${pad}`);
                    }
                    return {
                        padInfo,
                        outHeight,
                        outWidth
                    };
                }
                function get3DPadAndOutInfo(pad, inDepth, inHeight, inWidth, strideDepth, strideHeight, strideWidth, filterDepth, filterHeight, filterWidth, roundingMode) {
                    let padInfo;
                    let outDepth;
                    let outHeight;
                    let outWidth;
                    if (typeof pad === 'number') {
                        const padType = pad === 0 ? 'VALID' : 'NUMBER';
                        padInfo = {
                            top: pad,
                            bottom: pad,
                            left: pad,
                            right: pad,
                            front: pad,
                            back: pad,
                            type: padType
                        };
                        const outShape = computeOutputShape4D([inDepth, inHeight, inWidth, 1], filterDepth, 1, strideDepth, pad, roundingMode);
                        outDepth = outShape[0];
                        outHeight = outShape[1];
                        outWidth = outShape[2];
                    } else if (pad === 'same') {
                        outDepth = Math.ceil(inDepth / strideDepth);
                        outHeight = Math.ceil(inHeight / strideHeight);
                        outWidth = Math.ceil(inWidth / strideWidth);
                        const padAlongDepth = (outDepth - 1) * strideDepth + filterDepth - inDepth;
                        const padAlongHeight = (outHeight - 1) * strideHeight + filterHeight - inHeight;
                        const padAlongWidth = (outWidth - 1) * strideWidth + filterWidth - inWidth;
                        const front = Math.floor(padAlongDepth / 2);
                        const back = padAlongDepth - front;
                        const top = Math.floor(padAlongHeight / 2);
                        const bottom = padAlongHeight - top;
                        const left = Math.floor(padAlongWidth / 2);
                        const right = padAlongWidth - left;
                        padInfo = {
                            top,
                            bottom,
                            left,
                            right,
                            front,
                            back,
                            type: 'SAME'
                        };
                    } else if (pad === 'valid') {
                        padInfo = {
                            top: 0,
                            bottom: 0,
                            left: 0,
                            right: 0,
                            front: 0,
                            back: 0,
                            type: 'VALID'
                        };
                        outDepth = Math.ceil((inDepth - filterDepth + 1) / strideDepth);
                        outHeight = Math.ceil((inHeight - filterHeight + 1) / strideHeight);
                        outWidth = Math.ceil((inWidth - filterWidth + 1) / strideWidth);
                    } else {
                        throw Error(`Unknown padding parameter: ${pad}`);
                    }
                    return {
                        padInfo,
                        outDepth,
                        outHeight,
                        outWidth
                    };
                }
                /**
 * Rounds a value depending on the rounding mode
 * @param value
 * @param roundingMode A string from: 'ceil', 'round', 'floor'. If none is
 *     provided, it will default to truncate.
 */
                function round(value, roundingMode) {
                    if (!roundingMode) {
                        return Math.trunc(value);
                    }
                    switch (roundingMode) {
                        case 'round':
                            // used for Caffe Conv
                            return Math.round(value);
                        case 'ceil':
                            // used for Caffe Pool
                            return Math.ceil(value);
                        case 'floor':
                            return Math.floor(value);
                        default:
                            throw new Error(`Unknown roundingMode ${roundingMode}`);
                    }
                }
                function tupleValuesAreOne(param) {
                    const [dimA, dimB, dimC] = parseTupleParam(param);
                    return dimA === 1 && dimB === 1 && dimC === 1;
                }
                function eitherStridesOrDilationsAreOne(strides, dilations) {
                    return tupleValuesAreOne(strides) || tupleValuesAreOne(dilations);
                }
                /**
 * Convert Conv2D dataFormat from 'NHWC'|'NCHW' to
 *    'channelsLast'|'channelsFirst'
 * @param dataFormat in 'NHWC'|'NCHW' mode
 * @return dataFormat in 'channelsLast'|'channelsFirst' mode
 * @throws unknown dataFormat
 */
                function convertConv2DDataFormat(dataFormat) {
                    if (dataFormat === 'NHWC') {
                        return 'channelsLast';
                    } else if (dataFormat === 'NCHW') {
                        return 'channelsFirst';
                    } else {
                        throw new Error(`Unknown dataFormat ${dataFormat}`);
                    }
                }
                /**
 * Check validity of pad when using dimRoundingMode.
 * @param opDesc A string of op description
 * @param pad The type of padding algorithm.
 *   - `same` and stride 1: output will be of same size as input,
 *       regardless of filter size.
 *   - `valid` output will be smaller than input if filter is larger
 *       than 1x1.
 *   - For more info, see this guide:
 *     [https://www.tensorflow.org/api_docs/python/tf/nn/convolution](
 *          https://www.tensorflow.org/api_docs/python/tf/nn/convolution)
 * @param dimRoundingMode A string from: 'ceil', 'round', 'floor'. If none is
 *     provided, it will default to truncate.
 * @throws unknown padding parameter
 */
                function checkPadOnDimRoundingMode(opDesc, pad, dimRoundingMode) {
                    if (dimRoundingMode != null) {
                        if (typeof pad === 'string') {
                            throw Error(`Error in ${opDesc}: pad must be an integer when using ` + `dimRoundingMode ${dimRoundingMode} but got pad ${pad}.`);
                        } else if (typeof pad === 'number') {
                            assert(isInt(pad), () => `Error in ${opDesc}: pad must be an integer when using ` + `dimRoundingMode ${dimRoundingMode} but got pad ${pad}.`);
                        } else if (typeof pad === 'object') {
                            pad.forEach(p => {
                                p.forEach(v => {
                                    assert(isInt(v), () => `Error in ${opDesc}: pad must be an integer when using ` + `dimRoundingMode ${dimRoundingMode} but got pad ${v}.`);
                                }
                                );
                            }
                            );
                        } else {
                            throw Error(`Error in ${opDesc}: Unknown padding parameter: ${pad}`);
                        }
                    }
                }
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the backprop of a 3d avg pool.
 *
 * @param dy The dy error, of rank 5 of shape
 *     [batchSize, depth, height, width, channels].
 * assumed.
 * @param input The original input image, of rank 5 or rank4 of shape
 *     [batchSize, depth, height, width, channels].
 * @param filterSize The filter size:
 *     `[filterDepth, filterHeight, filterWidth]`.
 *     `filterSize` is a single number,
 *     then `filterDepth == filterHeight == filterWidth`.
 * @param strides The strides of the pooling:
 *     `[strideDepth, strideHeight, strideWidth]`. If
 *     `strides` is a single number, then `strideHeight == strideWidth`.
 * @param pad A string from: 'same', 'valid'. The type of padding algorithm
 *     used in the forward prop of the op.
 * @param dimRoundingMode A string from: 'ceil', 'round', 'floor'. If none is
 *     provided, it will default to truncate.
 */
                function avgPool3dGrad_(dy, input, filterSize, strides, pad, dimRoundingMode) {
                    const $dy = convertToTensor(dy, 'dy', 'avgPool3dGrad');
                    const $input = convertToTensor(input, 'input', 'avgPool3dGrad');
                    let dy5D = $dy;
                    let input5D = $input;
                    let reshapedTo5D = false;
                    if ($input.rank === 4) {
                        reshapedTo5D = true;
                        dy5D = reshape($dy, [1, $dy.shape[0], $dy.shape[1], $dy.shape[2], $dy.shape[3]]);
                        input5D = reshape($input, [1, $input.shape[0], $input.shape[1], $input.shape[2], $input.shape[3]]);
                    }
                    assert(dy5D.rank === 5, () => `Error in avgPool3dGrad: dy must be rank 5 but got rank ` + `${dy5D.rank}.`);
                    assert(input5D.rank === 5, () => `Error in avgPool3dGrad: input must be rank 5 but got rank ` + `${input5D.rank}.`);
                    checkPadOnDimRoundingMode('avgPool3dGrad', pad, dimRoundingMode);
                    const inputs = {
                        dy: dy5D,
                        input: input5D
                    };
                    const attrs = {
                        filterSize,
                        strides,
                        pad,
                        dimRoundingMode
                    };
                    // tslint:disable-next-line: no-unnecessary-type-assertion
                    const res = ENGINE.runKernel(AvgPool3DGrad, inputs, attrs);
                    if (reshapedTo5D) {
                        return reshape(res, [res.shape[1], res.shape[2], res.shape[3], res.shape[4]]);
                    }
                    return res;
                }
                const avgPool3dGrad = op({
                    avgPool3dGrad_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const avgPool3DGradConfig = {
                    kernelName: AvgPool3D,
                    inputsToSave: ['x'],
                    gradFunc: (dy, saved, attrs) => {
                        const [x] = saved;
                        const { filterSize, strides, pad, dimRoundingMode } = attrs;
                        return {
                            x: () => avgPool3dGrad(dy, x, filterSize, strides, pad, dimRoundingMode)
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the backprop of an 2D avg pool.
 *
 * @param dy The dy error, of rank 4 or rank 3 of shape
 *     [batchSize, height, width, channels]. If rank 3, batch of 1 is
 * assumed.
 * @param input The input image, of rank 4 or rank 3 of shape
 *     [batchSize, height, width, channels]. If rank 3, batch of 1 is
 * assumed.
 * @param filterSize The filter size: `[filterHeight, filterWidth]`. If
 *     `filterSize` is a single number, then `filterHeight == filterWidth`.
 * @param strides The strides of the pooling: `[strideHeight, strideWidth]`. If
 *     `strides` is a single number, then `strideHeight == strideWidth`.
 * @param pad The type of padding algorithm used in the forward prop of the op.
 *     'same', 'valid', for more info, see this guide:
 *     [https://www.tensorflow.org/api_docs/python/tf/nn/convolution](
 *         https://www.tensorflow.org/api_docs/python/tf/nn/convolution)
 */
                function avgPoolGrad_(dy, input, filterSize, strides, pad) {
                    const $dy = convertToTensor(dy, 'dy', 'avgPoolGrad');
                    const $input = convertToTensor(input, 'input', 'avgPoolGrad');
                    assert($input.rank === $dy.rank, () => `Rank of input (${$input.rank}) does not match rank of dy (${$dy.rank})`);
                    let input4D = $input;
                    let dy4D = $dy;
                    let reshapedTo4D = false;
                    if ($input.rank === 3) {
                        reshapedTo4D = true;
                        input4D = reshape($input, [1, $input.shape[0], $input.shape[1], $input.shape[2]]);
                        dy4D = reshape($dy, [1, $dy.shape[0], $dy.shape[1], $dy.shape[2]]);
                    }
                    assert(dy4D.rank === 4, () => `Error in avgPoolGrad: dy must be rank 4 but got rank ` + `${dy4D.rank}.`);
                    assert(input4D.rank === 4, () => `Error in avgPoolGrad: input must be rank 4 but got rank ` + `${input4D.rank}.`);
                    const inputs = {
                        dy: dy4D,
                        input: input4D
                    };
                    const attrs = {
                        filterSize,
                        strides,
                        pad
                    };
                    // tslint:disable-next-line: no-unnecessary-type-assertion
                    const res = ENGINE.runKernel(AvgPoolGrad, inputs, attrs);
                    if (reshapedTo4D) {
                        return reshape(res, [res.shape[1], res.shape[2], res.shape[3]]);
                    }
                    return res;
                }
                const avgPoolGrad = op({
                    avgPoolGrad_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const avgPoolGradConfig = {
                    kernelName: AvgPool,
                    inputsToSave: ['x'],
                    gradFunc: (dy, saved, attrs) => {
                        const [x] = saved;
                        const { filterSize, strides, pad } = attrs;
                        return {
                            x: () => avgPoolGrad(dy, x, filterSize, strides, pad)
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the dot product of two matrices, A * B. These must be matrices.
 *
 * ```js
 * const a = tf.tensor2d([1, 2], [1, 2]);
 * const b = tf.tensor2d([1, 2, 3, 4], [2, 2]);
 *
 * a.matMul(b).print();  // or tf.matMul(a, b)
 * ```
 * @param a First matrix in dot product operation.
 * @param b Second matrix in dot product operation.
 * @param transposeA If true, `a` is transposed before multiplication.
 * @param transposeB If true, `b` is transposed before multiplication.
 *
 * @doc {heading: 'Operations', subheading: 'Matrices'}
 */
                function matMul_(a, b, transposeA = false, transposeB = false) {
                    let $a = convertToTensor(a, 'a', 'matMul');
                    let $b = convertToTensor(b, 'b', 'matMul');
                    [$a, $b] = makeTypesMatch($a, $b);
                    const inputs = {
                        a: $a,
                        b: $b
                    };
                    const attrs = {
                        transposeA,
                        transposeB
                    };
                    return ENGINE.runKernel(BatchMatMul, inputs, attrs);
                }
                const matMul = op({
                    matMul_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const batchMatMulGradConfig = {
                    kernelName: BatchMatMul,
                    inputsToSave: ['a', 'b'],
                    gradFunc: (dy, saved, attrs) => {
                        const [a, b] = saved;
                        const { transposeA, transposeB } = attrs;
                        if (!transposeA && !transposeB) {
                            return {
                                a: () => matMul(dy, b, false, true),
                                b: () => matMul(a, dy, true, false)
                            };
                        } else if (!transposeA && transposeB) {
                            return {
                                a: () => matMul(dy, b, false, false),
                                b: () => matMul(dy, a, true, false)
                            };
                        } else if (transposeA && !transposeB) {
                            return {
                                a: () => matMul(b, dy, false, true),
                                b: () => matMul(a, dy, false, false)
                            };
                        } else {
                            return {
                                a: () => matMul(b, dy, true, true),
                                b: () => matMul(dy, a, true, true)
                            };
                        }
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * This operation divides "spatial" dimensions `[1, ..., M]` of the input into
 * a grid of blocks of shape `blockShape`, and interleaves these blocks with
 * the "batch" dimension (0) such that in the output, the spatial
 * dimensions `[1, ..., M]` correspond to the position within the grid,
 * and the batch dimension combines both the position within a spatial block
 * and the original batch position. Prior to division into blocks,
 * the spatial dimensions of the input are optionally zero padded
 * according to `paddings`. See below for a precise description.
 *
 * ```js
 * const x = tf.tensor4d([1, 2, 3, 4], [1, 2, 2, 1]);
 * const blockShape = [2, 2];
 * const paddings = [[0, 0], [0, 0]];
 *
 * x.spaceToBatchND(blockShape, paddings).print();
 * ```
 *
 * @param x A `tf.Tensor`. N-D with `x.shape` = `[batch] + spatialShape +
 * remainingShape`, where spatialShape has `M` dimensions.
 * @param blockShape A 1-D array. Must have shape `[M]`, all values must
 * be >= 1.
 * @param paddings A 2-D array. Must have shape `[M, 2]`, all values must be >=
 *     0. `paddings[i] = [padStart, padEnd]` specifies the amount to zero-pad
 * from input dimension `i + 1`, which corresponds to spatial dimension `i`. It
 * is required that
 * `(inputShape[i + 1] + padStart + padEnd) % blockShape[i] === 0`
 *
 * This operation is equivalent to the following steps:
 *
 * 1. Zero-pad the start and end of dimensions `[1, ..., M]` of the input
 * according to `paddings` to produce `padded` of shape paddedShape.
 *
 * 2. Reshape `padded` to `reshapedPadded` of shape:
 * `[batch] + [paddedShape[1] / blockShape[0], blockShape[0], ...,
 * paddedShape[M] / blockShape[M-1], blockShape[M-1]] + remainingShape`
 *
 * 3. Permute dimensions of `reshapedPadded` to produce `permutedReshapedPadded`
 * of shape: `blockShape + [batch] + [paddedShape[1] / blockShape[0], ...,
 * paddedShape[M] / blockShape[M-1]] + remainingShape`
 *
 * 4. Reshape `permutedReshapedPadded` to flatten `blockShape` into the
 * batch dimension, producing an output tensor of shape:
 * `[batch * prod(blockShape)] + [paddedShape[1] / blockShape[0], ...,
 * paddedShape[M] / blockShape[M-1]] + remainingShape`
 *
 * @doc {heading: 'Tensors', subheading: 'Transformations'}
 */
                function spaceToBatchND_(x, blockShape, paddings) {
                    const $x = convertToTensor(x, 'x', 'spaceToBatchND');
                    assert($x.rank >= 1 + blockShape.length, () => `input rank ${$x.rank} should be > than [blockShape] ${blockShape.length}`);
                    assert(paddings.length === blockShape.length, () => `paddings.shape[0] ${paddings.length} must be equal to [blockShape] ${blockShape.length}`);
                    assert($x.shape.reduce((a, b, i) => {
                        if (i > 0 && i <= blockShape.length) {
                            return a && (b + paddings[i - 1][0] + paddings[i - 1][1]) % blockShape[i - 1] === 0;
                        }
                        return a;
                    }
                        , true), () => `input spatial dimensions ${$x.shape.slice(1)} with paddings ${paddings.toString()} must be divisible by blockShapes ${blockShape.toString()}`);
                    const inputs = {
                        x: $x
                    };
                    const attrs = {
                        blockShape,
                        paddings
                    };
                    return ENGINE.runKernel(SpaceToBatchND, inputs, attrs);
                }
                const spaceToBatchND = op({
                    spaceToBatchND_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const batchToSpaceNDGradConfig = {
                    kernelName: BatchToSpaceND,
                    gradFunc: (dy, saved, attrs) => {
                        const { blockShape, crops } = attrs;
                        return {
                            x: () => spaceToBatchND(dy, blockShape, crops)
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const broadcastToGradConfig = {
                    kernelName: BroadcastTo,
                    gradFunc: (dy, saved, attrs) => {
                        const broadCastToAttrs = attrs;
                        const inputShape = broadCastToAttrs.inputShape;
                        const outputShape = broadCastToAttrs.shape;
                        const reps = Array.from(outputShape);
                        for (let i = inputShape.length - 1; i >= 0; i--) {
                            if (inputShape[i] === outputShape[i]) {
                                reps[i] = 1;
                            } else if (inputShape[i] !== 1) {
                                throw new Error(`broadcastTo(): [${inputShape}] cannot be broadcast to [${outputShape}].`);
                            }
                        }
                        const axes = [];
                        for (let i = 0; i < reps.length; i++) {
                            if (reps[i] > 1) {
                                axes.push(i);
                            }
                        }
                        return {
                            x: () => sum$1(dy, axes, true /* keepDims */
                            )
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const castGradConfig = {
                    kernelName: Cast,
                    gradFunc: dy => {
                        return {
                            x: () => dy.clone()
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const ceilGradConfig = {
                    kernelName: Ceil,
                    gradFunc: dy => {
                        // TODO(manrajgrover): Return null for gradients when backprop supports it.
                        return {
                            x: () => zerosLike(dy)
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Returns the truth value of (a >= b) element-wise. Supports broadcasting.
 *
 * ```js
 * const a = tf.tensor1d([1, 2, 3]);
 * const b = tf.tensor1d([2, 2, 2]);
 *
 * a.greaterEqual(b).print();
 * ```
 *
 * @param a The first input tensor.
 * @param b The second input tensor. Must have the same dtype as `a`.
 *
 * @doc {heading: 'Operations', subheading: 'Logical'}
 */
                function greaterEqual_(a, b) {
                    let $a = convertToTensor(a, 'a', 'greaterEqual', 'string_or_numeric');
                    let $b = convertToTensor(b, 'b', 'greaterEqual', 'string_or_numeric');
                    [$a, $b] = makeTypesMatch($a, $b);
                    assertAndGetBroadcastShape($a.shape, $b.shape);
                    const inputs = {
                        a: $a,
                        b: $b
                    };
                    return ENGINE.runKernel(GreaterEqual, inputs);
                }
                const greaterEqual = op({
                    greaterEqual_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Returns the truth value of (a <= b) element-wise. Supports broadcasting.
 *
 * ```js
 * const a = tf.tensor1d([1, 2, 3]);
 * const b = tf.tensor1d([2, 2, 2]);
 *
 * a.lessEqual(b).print();
 * ```
 *
 * @param a The first input tensor.
 * @param b The second input tensor. Must have the same dtype as `a`.
 *
 * @doc {heading: 'Operations', subheading: 'Logical'}
 */
                function lessEqual_(a, b) {
                    let $a = convertToTensor(a, 'a', 'lessEqual', 'string_or_numeric');
                    let $b = convertToTensor(b, 'b', 'lessEqual', 'string_or_numeric');
                    [$a, $b] = makeTypesMatch($a, $b);
                    assertAndGetBroadcastShape($a.shape, $b.shape);
                    const inputs = {
                        a: $a,
                        b: $b
                    };
                    return ENGINE.runKernel(LessEqual, inputs);
                }
                const lessEqual = op({
                    lessEqual_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Returns the truth value of `a AND b` element-wise. Supports broadcasting.
 *
 * ```js
 * const a = tf.tensor1d([false, false, true, true], 'bool');
 * const b = tf.tensor1d([false, true, false, true], 'bool');
 *
 * a.logicalAnd(b).print();
 * ```
 *
 * @param a The first input tensor. Must be of dtype bool.
 * @param b The second input tensor. Must be of dtype bool.
 *
 * @doc {heading: 'Operations', subheading: 'Logical'}
 */
                function logicalAnd_(a, b) {
                    const $a = convertToTensor(a, 'a', 'logicalAnd', 'bool');
                    const $b = convertToTensor(b, 'b', 'logicalAnd', 'bool');
                    assertAndGetBroadcastShape($a.shape, $b.shape);
                    const inputs = {
                        a: $a,
                        b: $b
                    };
                    return ENGINE.runKernel(LogicalAnd, inputs);
                }
                const logicalAnd = op({
                    logicalAnd_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Creates a new tensor with the same values and shape as the specified
 * tensor.
 *
 * ```js
 * const x = tf.tensor([1, 2]);
 *
 * x.clone().print();
 * ```
 *
 * @param x The tensor to clone.
 *
 * @doc {heading: 'Tensors', subheading: 'Creation'}
 */
                function clone_(x) {
                    const $x = convertToTensor(x, 'x', 'clone', 'string_or_numeric');
                    const inputs = {
                        x: $x
                    };
                    // Note this op is called tf.identity in python. Hence the kernel name used
                    // here.
                    return ENGINE.runKernel(Identity, inputs);
                }
                const clone = op({
                    clone_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Broadcast an array to a compatible shape NumPy-style.
 *
 * The tensor's shape is compared to the broadcast shape from end to beginning.
 * Ones are prepended to the tensor's shape until it has the same length as
 * the broadcast shape. If input.shape[i]==shape[i], the (i+1)-th axis is
 * already broadcast-compatible. If input.shape[i]==1 and shape[i]==N, then
 * the input tensor is tiled N times along that axis (using tf.tile).
 *
 * @param input The tensor that is to be broadcasted.
 * @param shape The input is to be broadcast to this shape.
 *
 * @doc {heading: 'Tensors', subheading: 'Transformations'}
 */
                function broadcastTo_(x, shape) {
                    let input = convertToTensor(x, 'broadcastTo', 'x');
                    const xShape = input.shape;
                    assertNonNegativeIntegerDimensions(shape);
                    if (shape.length < input.rank) {
                        throw new Error(`broadcastTo(): shape.length=${shape.length} < input.rank=${input.rank}.`);
                    }
                    if (shape.length > input.rank) {
                        const newShape = input.shape.slice();
                        while (newShape.length < shape.length) {
                            newShape.unshift(1);
                        }
                        input = reshape(input, newShape);
                    }
                    const inputShape = input.shape;
                    const reps = Array.from(shape);
                    for (let i = shape.length - 1; i >= 0; i--) {
                        if (inputShape[i] === shape[i]) {
                            reps[i] = 1;
                        } else if (input.shape[i] !== 1) {
                            throw new Error(`broadcastTo(): [${xShape}] cannot be broadcast to [${shape}].`);
                        }
                    }
                    const axes = reps.map((n, i) => n > 1 ? i : -1).filter(i => i >= 0);
                    if (axes.length === 0) {
                        return clone(input);
                    }
                    // TODO call broadcastTo kernel directly once backends implement broadcstTo
                    const inputs = {
                        x: input
                    };
                    const attrs = {
                        reps
                    };
                    return ENGINE.runKernel(Tile, inputs, attrs);
                }
                const broadcastTo = op({
                    broadcastTo_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Returns the elements, either `a` or `b` depending on the `condition`.
 *
 * If the condition is true, select from `a`, otherwise select from `b`.
 *
 * ```js
 * const cond = tf.tensor1d([false, false, true], 'bool');
 * const a = tf.tensor1d([1 , 2, 3]);
 * const b = tf.tensor1d([-1, -2, -3]);
 *
 * a.where(cond, b).print();
 * ```
 *
 * @param condition The input condition. Must be of dtype bool.
 * @param a If `condition` is rank 1, `a` may have a higher rank but
 *     its first dimension must match the size of `condition`.
 * @param b A tensor with the same dtype as `a` and with shape that is
 *     compatible with `a`.
 * @return A tensor with same dtype as `a` and `b`, and shape that is
 *     broadcastable from `a` and `b`.
 *
 * @doc {heading: 'Operations', subheading: 'Logical'}
 */
                function where_(condition, a, b) {
                    const $a = convertToTensor(a, 'a', 'where');
                    const $b = convertToTensor(b, 'b', 'where');
                    const $condition = convertToTensor(condition, 'condition', 'where', 'bool');
                    // TODO: move this logic to forward function when the broadcastTo op is
                    // implemented in WASM.
                    // Find the broadcastable shape for $condition, $a, and $b.
                    const broadcastShape = assertAndGetBroadcastShape(assertAndGetBroadcastShape($condition.shape, $a.shape), $b.shape);
                    const $broadcastedCondition = broadcastTo($condition, broadcastShape);
                    const $broadcastedA = broadcastTo($a, broadcastShape);
                    const $broadcastedB = broadcastTo($b, broadcastShape);
                    const inputs = {
                        condition: $broadcastedCondition,
                        t: $broadcastedA,
                        e: $broadcastedB
                    };
                    return ENGINE.runKernel(Select, inputs);
                }
                const where = op({
                    where_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const clipByValueGradConfig = {
                    kernelName: ClipByValue,
                    inputsToSave: ['x'],
                    gradFunc: (dy, saved, attrs) => {
                        const [x] = saved;
                        const { clipValueMin, clipValueMax } = attrs;
                        return {
                            x: () => where(logicalAnd(greaterEqual(x, clipValueMin), lessEqual(x, clipValueMax)), dy, zerosLike(dy))
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const complexAbsGradConfig = {
                    kernelName: ComplexAbs,
                    inputsToSave: ['x'],
                    gradFunc: absGradConfig.gradFunc
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Splits a `tf.Tensor` into sub tensors.
 *
 * If `numOrSizeSplits` is a number, splits `x` along dimension `axis`
 * into `numOrSizeSplits` smaller tensors.
 * Requires that `numOrSizeSplits` evenly divides `x.shape[axis]`.
 *
 * If `numOrSizeSplits` is a number array, splits `x` into
 * `numOrSizeSplits.length` pieces. The shape of the `i`-th piece has the
 * same size as `x` except along dimension `axis` where the size is
 * `numOrSizeSplits[i]`.
 *
 * ```js
 * const x = tf.tensor2d([1, 2, 3, 4, 5, 6, 7, 8], [2, 4]);
 * const [a, b] = tf.split(x, 2, 1);
 * a.print();
 * b.print();
 *
 * const [c, d, e] = tf.split(x, [1, 2, 1], 1);
 * c.print();
 * d.print();
 * e.print();
 * ```
 *
 * @param x The input tensor to split.
 * @param numOrSizeSplits Either an integer indicating the number of
 * splits along the axis or an array of integers containing the sizes of
 * each output tensor along the axis. If a number then it must evenly divide
 * `x.shape[axis]`; otherwise the sum of sizes must match `x.shape[axis]`.
 * Can contain one -1 indicating that dimension is to be inferred.
 * @param axis The dimension along which to split. Defaults to 0 (the first
 * dim).
 *
 * @doc {heading: 'Tensors', subheading: 'Slicing and Joining'}
 */
                function split_(x, numOrSizeSplits, axis = 0) {
                    const $x = convertToTensor(x, 'x', 'split');
                    const inputs = {
                        x: $x
                    };
                    const attr = {
                        numOrSizeSplits,
                        axis
                    };
                    return ENGINE.runKernel(SplitV, inputs, attr);
                }
                const split = op({
                    split_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const concatGradConfig = {
                    kernelName: Concat,
                    saveAllInputs: true,
                    gradFunc: (dy, saved, attrs) => {
                        const shapes = saved.map(t => t.shape);
                        const { axis } = attrs;
                        const $axis = parseAxisParam(axis, saved[0].shape)[0];
                        const sizeSplits = shapes.map(s => s[$axis]);
                        const derTensors = split(dy, sizeSplits, $axis);
                        return derTensors.map(t => () => t);
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the derivative of the filter of a 2D convolution.
 *
 * @param x The input tensor, of rank 4 or rank 3 of shape
 *     [batch, height, width, inChannels]. If rank 3, batch of 1 is assumed.
 * @param dy The dy image, of rank 4 or rank 3, of shape
 *     [batch, height, width, outDepth]. If rank 3, batch of 1 is assumed.
 * @param filterShape The shape of the filter, length 4,
 *     [filterHeight, filterWidth, inDepth, outDepth].
 * @param strides The strides of the convolution: [strideHeight,
 * strideWidth].
 * @param pad A string from: 'same', 'valid'. The type of padding algorithm
 *     used in the forward prop of the op.
 * @param dataFormat: An optional string from: "NHWC", "NCHW". Defaults to
 *     "NHWC". Specify the data format of the input and output data. With the
 *     default format "NHWC", the data is stored in the order of: [batch,
 *     height, width, channels].
 * @param dimRoundingMode A string from: 'ceil', 'round', 'floor'. If none is
 *     provided, it will default to truncate.
 */
                function conv2DBackpropFilter_(x, dy, filterShape, strides, pad, dataFormat = 'NHWC', dimRoundingMode) {
                    let x4D = x;
                    if (x.rank === 3) {
                        x4D = reshape(x, [1, x.shape[0], x.shape[1], x.shape[2]]);
                    }
                    let dy4D = dy;
                    if (dy4D.rank === 3) {
                        dy4D = reshape(dy, [1, dy.shape[0], dy.shape[1], dy.shape[2]]);
                    }
                    assert(x4D.rank === 4, () => `Error in conv2dDerFilter: input must be rank 4, but got shape ` + `${x4D.shape}.`);
                    assert(dy4D.rank === 4, () => `Error in conv2dDerFilter: dy must be rank 4, but got shape ` + `${dy4D.shape}.`);
                    assert(filterShape.length === 4, () => `Error in conv2dDerFilter: filterShape must be length 4, but got ` + `${filterShape}.`);
                    const inDepth = dataFormat === 'NHWC' ? x4D.shape[3] : x4D.shape[1];
                    const outDepth = dataFormat === 'NHWC' ? dy4D.shape[3] : dy4D.shape[1];
                    assert(inDepth === filterShape[2], () => `Error in conv2dDerFilter: depth of input ${inDepth}) must ` + `match input depth in filter (${filterShape[2]}.`);
                    assert(outDepth === filterShape[3], () => `Error in conv2dDerFilter: depth of dy (${outDepth}) must ` + `match output depth for filter (${filterShape[3]}).`);
                    checkPadOnDimRoundingMode('conv2dDerFilter', pad, dimRoundingMode);
                    const inputs = {
                        x: x4D,
                        dy: dy4D
                    };
                    const attrs = {
                        strides,
                        pad,
                        dataFormat,
                        dimRoundingMode,
                        filterShape
                    };
                    // tslint:disable-next-line: no-unnecessary-type-assertion
                    return ENGINE.runKernel(Conv2DBackpropFilter, inputs, attrs);
                }
                const conv2DBackpropFilter = op({
                    conv2DBackpropFilter_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the derivative of the input of a 2D convolution.
 *
 * @param xShape The shape of the input: [batch, height, width, inDepth].
 * If length of 3, batch of 1 is assumed.
 * @param dy The derivative of the output, of rank 4 or rank 3 of shape
 *   `[batch, outHeight, outWidth, outDepth]`. If rank 3, batch of 1 is
 * assumed.
 * @param filter The filter, rank 4, of shape
 *     `[filterHeight, filterWidth, inDepth, outDepth]`.
 * @param strides The strides of the convolution: `[strideHeight,
 * strideWidth]`.
 * @param pad The type of padding algorithm used:
 *    - `same` and stride 1: output will be of same size as input,
 *       regardless of filter size.
 *    - `valid`: output will be smaller than input if filter is larger
 *       than 1x1.
 * @param dataFormat: An optional string from: "NHWC", "NCHW". Defaults to
 *     "NHWC". Specify the data format of the input and output data. With the
 *     default format "NHWC", the data is stored in the order of: [batch,
 *     height, width, channels].
 * @param dimRoundingMode A string from: 'ceil', 'round', 'floor'. If none is
 *     provided, it will default to truncate.
 */
                function conv2DBackpropInput_(xShape, dy, filter, strides, pad, dataFormat = 'NHWC', dimRoundingMode) {
                    assert(xShape.length === dy.rank, () => `Length of inShape ` + `(${xShape.length}) and rank of dy (${dy.rank}) must match`);
                    let xShape4D = xShape;
                    let dy4D = dy;
                    let reshapedTo4D = false;
                    if (dy.rank === 3) {
                        reshapedTo4D = true;
                        dy4D = reshape(dy, [1, dy.shape[0], dy.shape[1], dy.shape[2]]);
                        xShape4D = [1, xShape[0], xShape[1], xShape[2]];
                    }
                    assert(xShape4D.length === 4, () => `Error in conv2dDerInput: inShape must be length 4, but got length ` + `${xShape4D.length}.`);
                    assert(dy4D.rank === 4, () => `Error in conv2dDerInput: dy must be rank 4, but got ` + `rank ${dy4D.rank}`);
                    assert(filter.rank === 4, () => `Error in conv2dDerInput: filter must be rank 4, but got ` + `rank ${filter.rank}`);
                    const inDepth = dataFormat === 'NHWC' ? xShape4D[3] : xShape4D[1];
                    const outDepth = dataFormat === 'NHWC' ? dy4D.shape[3] : dy4D.shape[1];
                    assert(inDepth === filter.shape[2], () => `Error in conv2dDerInput: depth of input (${inDepth}) must ` + `match input depth for filter ${filter.shape[2]}.`);
                    assert(outDepth === filter.shape[3], () => `Error in conv2dDerInput: depth of output (${outDepth}) must ` + `match output depth for filter ${filter.shape[3]}.`);
                    checkPadOnDimRoundingMode('conv2dDerInput', pad, dimRoundingMode);
                    const inputs = {
                        dy: dy4D,
                        filter
                    };
                    const attrs = {
                        strides,
                        pad,
                        dataFormat,
                        dimRoundingMode,
                        inputShape: xShape4D
                    };
                    // tslint:disable-next-line: no-unnecessary-type-assertion
                    const res = ENGINE.runKernel(Conv2DBackpropInput, inputs, attrs);
                    if (reshapedTo4D) {
                        return reshape(res, [res.shape[1], res.shape[2], res.shape[3]]);
                    }
                    return res;
                }
                const conv2DBackpropInput = op({
                    conv2DBackpropInput_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const conv2DGradConfig = {
                    kernelName: Conv2D,
                    inputsToSave: ['x', 'filter'],
                    gradFunc: (dy, saved, attrs) => {
                        const [x4D, $filter] = saved;
                        const { dilations, strides, pad, dataFormat } = attrs;
                        assert(tupleValuesAreOne(dilations), () => 'Error in gradient of conv2D: dilation rates greater than 1 ' + `are not yet supported in gradients. Got dilations '${dilations}'`);
                        return {
                            x: () => conv2DBackpropInput(x4D.shape, dy, $filter, strides, pad, dataFormat),
                            filter: () => conv2DBackpropFilter(x4D, dy, $filter.shape, strides, pad, dataFormat)
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes a 2D convolution over the input x.
 *
 * @param x The input tensor, of rank 4 or rank 3, of shape
 *     `[batch, height, width, inChannels]`. If rank 3, batch of 1 is
 * assumed.
 * @param filter The filter, rank 4, of shape
 *     `[filterHeight, filterWidth, inDepth, outDepth]`.
 * @param strides The strides of the convolution: `[strideHeight,
 * strideWidth]`.
 * @param pad The type of padding algorithm.
 *    - `same` and stride 1: output will be of same size as input,
 *       regardless of filter size.
 *    - `valid`: output will be smaller than input if filter is larger
 *       than 1x1.
 *   - For more info, see this guide:
 *     [https://www.tensorflow.org/api_docs/python/tf/nn/convolution](
 *          https://www.tensorflow.org/api_docs/python/tf/nn/convolution)
 * @param dataFormat: An optional string from: "NHWC", "NCHW". Defaults to
 *     "NHWC". Specify the data format of the input and output data. With the
 *     default format "NHWC", the data is stored in the order of: [batch,
 *     height, width, channels].
 * @param dilations The dilation rates: `[dilationHeight, dilationWidth]`
 *     in which we sample input values across the height and width dimensions
 *     in atrous convolution. Defaults to `[1, 1]`. If `dilations` is a single
 *     number, then `dilationHeight == dilationWidth`. If it is greater than
 *     1, then all values of `strides` must be 1.
 * @param dimRoundingMode A string from: 'ceil', 'round', 'floor'. If none is
 *     provided, it will default to truncate.
 *
 * @doc {heading: 'Operations', subheading: 'Convolution'}
 */
                function conv2d_(x, filter, strides, pad, dataFormat = 'NHWC', dilations = [1, 1], dimRoundingMode) {
                    const $x = convertToTensor(x, 'x', 'conv2d', 'float32');
                    const $filter = convertToTensor(filter, 'filter', 'conv2d', 'float32');
                    let x4D = $x;
                    let reshapedTo4D = false;
                    if ($x.rank === 3) {
                        reshapedTo4D = true;
                        x4D = reshape($x, [1, $x.shape[0], $x.shape[1], $x.shape[2]]);
                    }
                    assert(x4D.rank === 4, () => `Error in conv2d: input must be rank 4, but got rank ${x4D.rank}.`);
                    assert($filter.rank === 4, () => `Error in conv2d: filter must be rank 4, but got rank ` + `${$filter.rank}.`);
                    checkPadOnDimRoundingMode('conv2d', pad, dimRoundingMode);
                    const inDepth = dataFormat === 'NHWC' ? x4D.shape[3] : x4D.shape[1];
                    assert(inDepth === $filter.shape[2], () => `Error in conv2d: depth of input (${inDepth}) must match ` + `input depth for filter ${$filter.shape[2]}.`);
                    assert(eitherStridesOrDilationsAreOne(strides, dilations), () => 'Error in conv2D: Either strides or dilations must be 1. ' + `Got strides ${strides} and dilations '${dilations}'`);
                    const inputs = {
                        x: x4D,
                        filter: $filter
                    };
                    const attrs = {
                        strides,
                        pad,
                        dataFormat,
                        dilations,
                        dimRoundingMode
                    };
                    // tslint:disable-next-line: no-unnecessary-type-assertion
                    const res = ENGINE.runKernel(Conv2D, inputs, attrs);
                    if (reshapedTo4D) {
                        return reshape(res, [res.shape[1], res.shape[2], res.shape[3]]);
                    }
                    return res;
                }
                const conv2d = op({
                    conv2d_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const conv2DBackpropInputGradConfig = {
                    kernelName: Conv2DBackpropInput,
                    inputsToSave: ['dy', 'filter'],
                    gradFunc: (ddx, saved, attrs) => {
                        const [dy, filter] = saved;
                        const { strides, pad, dataFormat, dimRoundingMode } = attrs;
                        return {
                            dy: () => conv2d(ddx, filter, strides, pad, dataFormat, 1 /* dilations */
                                , dimRoundingMode),
                            filter: () => conv2DBackpropFilter(ddx, dy, filter.shape, strides, pad, dataFormat, dimRoundingMode)
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the derivative of the filter of a 3D convolution.
 *
 * @param x The input tensor, of rank 5 or rank 4 of shape
 *     [batch, depth, height, width, inChannels]. If rank 4, batch of 1 is
 *     assumed.
 * @param dy The dy image, of rank 5 or rank 4, of shape
 *     [batch, depth, height, width, outDepth]. If rank 4, batch of 1 is
 *     assumed.
 * @param filterShape The shape of the filter, length 5,
 *     [filterDepth, filterHeight, filterWidth, inDepth, outDepth].
 * @param strides The strides of the convolution: [strideDepth, strideHeight,
 * strideWidth].
 * @param pad A string from: 'same', 'valid'. The type of padding algorithm
 *     used in the forward prop of the op.
 */
                function conv3DBackpropFilter_(x, dy, filterShape, strides, pad) {
                    let x5D = x;
                    if (x.rank === 4) {
                        x5D = reshape(x, [1, x.shape[0], x.shape[1], x.shape[2], x.shape[3]]);
                    }
                    let dy5D = dy;
                    if (dy5D.rank === 4) {
                        dy5D = reshape(dy, [1, dy.shape[0], dy.shape[1], dy.shape[2], dy.shape[3]]);
                    }
                    assert(x5D.rank === 5, () => `Error in conv3dDerFilter: input must be rank 5, but got shape ` + `${x5D.shape}.`);
                    assert(dy5D.rank === 5, () => `Error in conv3dDerFilter: dy must be rank 5, but got shape ` + `${dy5D.shape}.`);
                    assert(filterShape.length === 5, () => `Error in conv3dDerFilter: filterShape must be length 5, but got ` + `${filterShape}.`);
                    assert(x5D.shape[4] === filterShape[3], () => `Error in conv3dDerFilter: depth of input ${x5D.shape[4]}) must ` + `match input depth in filter (${filterShape[3]}.`);
                    assert(dy5D.shape[4] === filterShape[4], () => `Error in conv3dDerFilter: depth of dy (${dy5D.shape[4]}) must ` + `match output depth for filter (${filterShape[4]}).`);
                    const inputs = {
                        x: x5D,
                        dy: dy5D
                    };
                    const attrs = {
                        strides,
                        pad,
                        filterShape
                    };
                    // tslint:disable-next-line: no-unnecessary-type-assertion
                    return ENGINE.runKernel(Conv3DBackpropFilterV2, inputs, attrs);
                }
                const conv3DBackpropFilter = op({
                    conv3DBackpropFilter_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the derivative of the input of a 3D convolution.
 *
 * @param xShape The shape of the input: [batch, depth, height, width,
 * in_channels]. If length of 4, batch of 1 is assumed.
 * @param dy The derivative of the output, of rank 5 or rank 4 of shape
 *   `[batch, outDepth, outHeight, outWidth, in_channels]`.
 * If rank 4, batch of 1 is assumed.
 * @param filter The filter, rank 5, of shape
 *     `[filterDepth, filterHeight, filterWidth, inDepth, outDepth]`.
 * @param strides The strides of the convolution: `[strideDepth, strideHeight,
 * strideWidth]`.
 * @param pad The type of padding algorithm used:
 *    - `same` and stride 1: output will be of same size as input,
 *       regardless of filter size.
 *    - `valid`: output will be smaller than input if filter is larger
 *       than 1x1.
 */
                function conv3DBackpropInput_(xShape, dy, filter, strides, pad) {
                    assert(xShape.length === dy.rank, () => `Length of inShape ` + `(${xShape.length}) and rank of dy (${dy.rank}) must match`);
                    let xShape5D = xShape;
                    let dy5D = dy;
                    let reshapedTo5D = false;
                    if (dy.rank === 4) {
                        reshapedTo5D = true;
                        dy5D = reshape(dy, [1, dy.shape[0], dy.shape[1], dy.shape[2], dy.shape[3]]);
                        xShape5D = [1, xShape[0], xShape[1], xShape[2], xShape[3]];
                    }
                    const inDepth = xShape5D[4];
                    const outDepth = dy5D.shape[4];
                    assert(xShape5D.length === 5, () => `Error in conv3dDerInput: inShape must be length 5, but got length ` + `${xShape5D.length}.`);
                    assert(dy5D.rank === 5, () => `Error in conv3dDerInput: dy must be rank 5, but got ` + `rank ${dy5D.rank}`);
                    assert(filter.rank === 5, () => `Error in conv3dDerInput: filter must be rank 5, but got ` + `rank ${filter.rank}`);
                    assert(inDepth === filter.shape[3], () => `Error in conv3dDerInput: depth of input (${inDepth}) must ` + `match input depth for filter ${filter.shape[3]}.`);
                    assert(outDepth === filter.shape[4], () => `Error in conv3dDerInput: depth of output (${outDepth}) must ` + `match output depth for filter ${filter.shape[4]}.`);
                    const inputs = {
                        dy: dy5D,
                        filter
                    };
                    const attrs = {
                        pad,
                        strides,
                        inputShape: xShape5D
                    };
                    // tslint:disable-next-line: no-unnecessary-type-assertion
                    const res = ENGINE.runKernel(Conv3DBackpropInputV2, inputs, attrs);
                    if (reshapedTo5D) {
                        return reshape(res, [res.shape[1], res.shape[2], res.shape[3], res.shape[4]]);
                    }
                    return res;
                }
                const conv3DBackpropInput = op({
                    conv3DBackpropInput_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const conv3DGradConfig = {
                    kernelName: Conv3D,
                    inputsToSave: ['x', 'filter'],
                    gradFunc: (dy, saved, attrs) => {
                        const { dilations, strides, pad } = attrs;
                        assert(tupleValuesAreOne(dilations), () => 'Error in gradient of conv3D: dilation rates greater than 1 are ' + `not yet supported in gradients. Got dilations '${dilations}'`);
                        const [x5D, $filter] = saved;
                        return {
                            x: () => conv3DBackpropInput(x5D.shape, dy, $filter, strides, pad),
                            filter: () => conv3DBackpropFilter(x5D, dy, $filter.shape, strides, pad)
                        };
                    }
                };
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes sin of the input Tensor element-wise: `sin(x)`
 *
 * ```js
 * const x = tf.tensor1d([0, Math.PI / 2, Math.PI * 3 / 4]);
 *
 * x.sin().print();  // or tf.sin(x)
 * ```
 * @param x The input tensor.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function sin_(x) {
                    const $x = convertToTensor(x, 'x', 'sin', 'float32');
                    const inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(Sin, inputs);
                }
                const sin = op({
                    sin_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const cosGradConfig = {
                    kernelName: Cos,
                    inputsToSave: ['x'],
                    gradFunc: (dy, saved) => {
                        const [x] = saved;
                        return {
                            x: () => mul(neg(sin(cast(x, 'float32'))), dy)
                        };
                    }
                };
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes hyperbolic sin of the input `tf.Tensor` element-wise: `sinh(x)`
 *
 * ```js
 * const x = tf.tensor1d([0, 1, -1, .7]);
 *
 * x.sinh().print();  // or tf.sinh(x)
 * ```
 * @param x The input tensor.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function sinh_(x) {
                    const $x = convertToTensor(x, 'x', 'sinh');
                    const inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(Sinh, inputs);
                }
                const sinh = op({
                    sinh_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const coshGradConfig = {
                    kernelName: Cosh,
                    inputsToSave: ['x'],
                    gradFunc: (dy, saved) => {
                        const [x] = saved;
                        return {
                            x: () => mul(sinh(cast(x, 'float32')), dy)
                        };
                    }
                };
                /**
 * @license
 * Copyright 2017 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Returns true if the axis specifies the inner most dimensions of the
 * array.
 */
                function axesAreInnerMostDims(axes, rank) {
                    for (let i = 0; i < axes.length; ++i) {
                        if (axes[axes.length - i - 1] !== rank - 1 - i) {
                            return false;
                        }
                    }
                    return true;
                }
                function combineLocations(outputLoc, reduceLoc, axes) {
                    const rank = outputLoc.length + reduceLoc.length;
                    const loc = [];
                    let outIdx = 0;
                    let reduceIdx = 0;
                    for (let dim = 0; dim < rank; dim++) {
                        if (axes.indexOf(dim) === -1) {
                            loc.push(outputLoc[outIdx++]);
                        } else {
                            loc.push(reduceLoc[reduceIdx++]);
                        }
                    }
                    return loc;
                }
                function computeOutAndReduceShapes(aShape, axes) {
                    const outShape = [];
                    const rank = aShape.length;
                    for (let dim = 0; dim < rank; dim++) {
                        if (axes.indexOf(dim) === -1) {
                            outShape.push(aShape[dim]);
                        }
                    }
                    const reduceShape = axes.map(dim => aShape[dim]);
                    return [outShape, reduceShape];
                }
                function expandShapeToKeepDim(shape, axes) {
                    const reduceSubShape = axes.map(x => 1);
                    return combineLocations(shape, reduceSubShape, axes);
                }
                function assertAxesAreInnerMostDims(msg, axes, rank) {
                    assert(axesAreInnerMostDims(axes, rank), () => `${msg} supports only inner-most axes for now. ` + `Got axes ${axes} and rank-${rank} input.`);
                }
                /**
 * Returns the axes permutation to be used with `tf.transpose`, if such
 * permutation is necessary. Otherwise it returns null. This method is used by
 * operations that operate only on inner-most axes.
 */
                function getAxesPermutation(axes, rank) {
                    if (axesAreInnerMostDims(axes, rank)) {
                        return null;
                    }
                    const result = [];
                    for (let i = 0; i < rank; ++i) {
                        if (axes.indexOf(i) === -1) {
                            result.push(i);
                        }
                    }
                    axes.forEach(axis => result.push(axis));
                    return result;
                }
                /** Returns the axes permutation that undoes the original permutation. */
                function getUndoAxesPermutation(axes) {
                    return axes.map((axis, i) => [i, axis]).sort((a, b) => a[1] - b[1]).map(x => x[0]);
                }
                function getInnerMostAxes(numAxes, rank) {
                    const res = [];
                    for (let i = rank - numAxes; i < rank; ++i) {
                        res.push(i);
                    }
                    return res;
                }
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the cumulative sum of a `tf.Tensor` along `axis`.
 *
 * ```js
 * const x = tf.tensor([1, 2, 3, 4]);
 * x.cumsum().print();
 * ```
 * ```js
 * const x = tf.tensor([[1, 2], [3, 4]]);
 * x.cumsum().print();
 * ```
 *
 * @param x The input tensor to be summed.
 * @param axis The axis along which to sum. Optional. Defaults to 0.
 * @param exclusive Whether to perform exclusive cumulative sum. Optional.
 *     Defaults to false. If set to true then the sum of each tensor entry
 *     does not include its own value, but only the values previous to it
 *     along the specified axis.
 * @param reverse Whether to sum in the opposite direction. Optional.
 *     Defaults to false.
 *
 * @doc {heading: 'Operations', subheading: 'Scan'}
 */
                function cumsum_(x, axis = 0, exclusive = false, reverse = false) {
                    const $x = convertToTensor(x, 'x', 'cumsum');
                    const inputs = {
                        x: $x
                    };
                    const attrs = {
                        axis,
                        exclusive,
                        reverse
                    };
                    return ENGINE.runKernel(Cumsum, inputs, attrs);
                }
                const cumsum = op({
                    cumsum_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Enables production mode which disables correctness checks in favor of
 * performance.
 *
 * @doc {heading: 'Environment'}
 */
                function enableProdMode() {
                    env().set('PROD', true);
                }
                /**
 * Enables debug mode which will log information about all executed kernels:
 * the elapsed time of the kernel execution, as well as the rank, shape, and
 * size of the output tensor.
 *
 * Debug mode will significantly slow down your application as it will
 * download the result of every operation to the CPU. This should not be used in
 * production. Debug mode does not affect the timing information of the kernel
 * execution as we do not measure download time in the kernel execution time.
 *
 * See also: `tf.profile`, `tf.memory`.
 *
 * @doc {heading: 'Environment'}
 */
                function enableDebugMode() {
                    env().set('DEBUG', true);
                }
                /** Globally disables deprecation warnings */
                function disableDeprecationWarnings() {
                    env().set('DEPRECATION_WARNINGS_ENABLED', false);
                    console.warn(`TensorFlow.js deprecation warnings have been disabled.`);
                }
                /** Warn users about deprecated functionality. */
                function deprecationWarn(msg) {
                    if (env().getBool('DEPRECATION_WARNINGS_ENABLED')) {
                        console.warn(msg + ' You can disable deprecation warnings with ' + 'tf.disableDeprecationWarnings().');
                    }
                }
                setDeprecationWarningFn(deprecationWarn);
                /**
 * Dispose all variables kept in backend engine.
 *
 * @doc {heading: 'Environment'}
 */
                function disposeVariables() {
                    ENGINE.disposeVariables();
                }
                /**
 * It returns the global engine that keeps track of all tensors and backends.
 *
 * @doc {heading: 'Environment'}
 */
                function engine() {
                    return ENGINE;
                }
                /**
 * Returns memory info at the current time in the program. The result is an
 * object with the following properties:
 *
 * - `numBytes`: Number of bytes allocated (undisposed) at this time.
 * - `numTensors`: Number of unique tensors allocated.
 * - `numDataBuffers`: Number of unique data buffers allocated
 *   (undisposed) at this time, which is ≤ the number of tensors
 *   (e.g. `a.reshape(newShape)` makes a new Tensor that shares the same
 *   data buffer with `a`).
 * - `unreliable`: True if the memory usage is unreliable. See `reasons` when
 *    `unreliable` is true.
 * - `reasons`: `string[]`, reasons why the memory is unreliable, present if
 *    `unreliable` is true.
 *
 * WebGL Properties:
 * - `numBytesInGPU`: Number of bytes allocated (undisposed) in the GPU only at
 *     this time.
 *
 * @doc {heading: 'Performance', subheading: 'Memory'}
 */
                function memory() {
                    return ENGINE.memory();
                }
                /**
 * Executes the provided function `f()` and returns a promise that resolves
 * with information about the function's memory use:
 * - `newBytes`: the number of new bytes allocated
 * - `newTensors`: the number of new tensors created
 * - `peakBytes`: the peak number of bytes allocated
 * - `kernels`: an array of objects for each kernel involved that reports
 * their input and output shapes, number of bytes used, and number of new
 * tensors created.
 * - `kernelNames`: an array of unique strings with just the names of the
 * kernels in the `kernels` array.
 *
 * ```js
 * const profile = await tf.profile(() => {
 *   const x = tf.tensor1d([1, 2, 3]);
 *   let x2 = x.square();
 *   x2.dispose();
 *   x2 = x.square();
 *   x2.dispose();
 *   return x;
 * });
 *
 * console.log(`newBytes: ${profile.newBytes}`);
 * console.log(`newTensors: ${profile.newTensors}`);
 * console.log(`byte usage over all kernels: ${profile.kernels.map(k =>
 * k.totalBytesSnapshot)}`);
 * ```
 *
 *
 * @doc {heading: 'Performance', subheading: 'Profile'}
 */
                function profile(f) {
                    return ENGINE.profile(f);
                }
                /**
 * Executes the provided function `fn` and after it is executed, cleans up all
 * intermediate tensors allocated by `fn` except those returned by `fn`.
 * `fn` must not return a Promise (async functions not allowed). The returned
 * result can be a complex object.
 *
 * Using this method helps avoid memory leaks. In general, wrap calls to
 * operations in `tf.tidy` for automatic memory cleanup.
 *
 * NOTE: Variables do *not* get cleaned up when inside a tidy(). If you want to
 * dispose variables, please use `tf.disposeVariables` or call dispose()
 * directly on variables.
 *
 * ```js
 * // y = 2 ^ 2 + 1
 * const y = tf.tidy(() => {
 *   // a, b, and one will be cleaned up when the tidy ends.
 *   const one = tf.scalar(1);
 *   const a = tf.scalar(2);
 *   const b = a.square();
 *
 *   console.log('numTensors (in tidy): ' + tf.memory().numTensors);
 *
 *   // The value returned inside the tidy function will return
 *   // through the tidy, in this case to the variable y.
 *   return b.add(one);
 * });
 *
 * console.log('numTensors (outside tidy): ' + tf.memory().numTensors);
 * y.print();
 * ```
 *
 * @param nameOrFn The name of the closure, or the function to execute.
 *     If a name is provided, the 2nd argument should be the function.
 *     If debug mode is on, the timing and the memory usage of the function
 *     will be tracked and displayed on the console using the provided name.
 * @param fn The function to execute.
 *
 * @doc {heading: 'Performance', subheading: 'Memory'}
 */
                function tidy(nameOrFn, fn) {
                    return ENGINE.tidy(nameOrFn, fn);
                }
                /**
 * Disposes any `tf.Tensor`s found within the provided object.
 *
 * @param container an object that may be a `tf.Tensor` or may directly
 *     contain `tf.Tensor`s, such as a `Tensor[]` or `{key: Tensor, ...}`. If
 *     the object is not a `tf.Tensor` or does not contain `Tensors`, nothing
 *     happens. In general it is safe to pass any object here, except that
 *     `Promise`s are not supported.
 *
 * @doc {heading: 'Performance', subheading: 'Memory'}
 */
                function dispose(container) {
                    const tensors = getTensorsInContainer(container);
                    tensors.forEach(tensor => tensor.dispose());
                }
                /**
 * Keeps a `tf.Tensor` generated inside a `tf.tidy` from being disposed
 * automatically.
 *
 * ```js
 * let b;
 * const y = tf.tidy(() => {
 *   const one = tf.scalar(1);
 *   const a = tf.scalar(2);
 *
 *   // b will not be cleaned up by the tidy. a and one will be cleaned up
 *   // when the tidy ends.
 *   b = tf.keep(a.square());
 *
 *   console.log('numTensors (in tidy): ' + tf.memory().numTensors);
 *
 *   // The value returned inside the tidy function will return
 *   // through the tidy, in this case to the variable y.
 *   return b.add(one);
 * });
 *
 * console.log('numTensors (outside tidy): ' + tf.memory().numTensors);
 * console.log('y:');
 * y.print();
 * console.log('b:');
 * b.print();
 * ```
 *
 * @param result The tensor to keep from being disposed.
 *
 * @doc {heading: 'Performance', subheading: 'Memory'}
 */
                function keep(result) {
                    return ENGINE.keep(result);
                }
                /**
 * Executes `f()` and returns a promise that resolves with timing
 * information.
 *
 * The result is an object with the following properties:
 *
 * - `wallMs`: Wall execution time.
 * - `kernelMs`: Kernel execution time, ignoring data transfer. If using the
 * WebGL backend and the query timer extension is not available, this will
 * return an error object.
 * - On `WebGL` The following additional properties exist:
 *   - `uploadWaitMs`: CPU blocking time on texture uploads.
 *   - `downloadWaitMs`: CPU blocking time on texture downloads (readPixels).
 *
 * ```js
 * const x = tf.randomNormal([20, 20]);
 * const time = await tf.time(() => x.matMul(x));
 *
 * console.log(`kernelMs: ${time.kernelMs}, wallTimeMs: ${time.wallMs}`);
 * ```
 *
 * @param f The function to execute and time.
 *
 * @doc {heading: 'Performance', subheading: 'Timing'}
 */
                function time(f) {
                    return ENGINE.time(f);
                }
                /**
 * Sets the backend (cpu, webgl, wasm, etc) responsible for creating tensors and
 * executing operations on those tensors. Returns a promise that resolves
 * to a boolean if the backend initialization was successful.
 *
 * Note this disposes the current backend, if any, as well as any tensors
 * associated with it. A new backend is initialized, even if it is of the
 * same type as the previous one.
 *
 * @param backendName The name of the backend. Currently supports
 *     `'webgl'|'cpu'` in the browser, `'tensorflow'` under node.js
 *     (requires tfjs-node), and `'wasm'` (requires tfjs-backend-wasm).
 *
 * @doc {heading: 'Backends'}
 */
                function setBackend(backendName) {
                    return ENGINE.setBackend(backendName);
                }
                /**
 * Returns a promise that resolves when the currently selected backend (or the
 * highest priority one) has initialized. Await this promise when you are using
 * a backend that has async initialization.
 *
 * @doc {heading: 'Backends'}
 */
                function ready() {
                    return ENGINE.ready();
                }
                /**
 * Returns the current backend name (cpu, webgl, etc). The backend is
 * responsible for creating tensors and executing operations on those tensors.
 *
 * @doc {heading: 'Backends'}
 */
                function getBackend() {
                    return ENGINE.backendName;
                }
                /**
 * Removes a backend and the registered factory.
 *
 * @doc {heading: 'Backends'}
 */
                function removeBackend(name) {
                    ENGINE.removeBackend(name);
                }
                /**
 * Finds the backend registered under the provided name. Returns null if the
 * name is not in the registry, or the registration hasn't finished yet.
 */
                function findBackend(name) {
                    return ENGINE.findBackend(name);
                }
                /**
 * Finds the backend factory registered under the provided name. Returns a
 * function that produces a new backend when called. Returns null if the name
 * is not in the registry.
 */
                function findBackendFactory(name) {
                    return ENGINE.findBackendFactory(name);
                }
                /**
 * Registers a global backend. The registration should happen when importing
 * a module file (e.g. when importing `backend_webgl.ts`), and is used for
 * modular builds (e.g. custom tfjs bundle with only webgl support).
 *
 * @param factory The backend factory function. When called, it should
 * return a backend instance, or a promise of an instance.
 * @param priority The priority of the backend (higher = more important).
 *     In case multiple backends are registered, the priority is used to find
 *     the best backend. Defaults to 1.
 * @return False if there is already a registered backend under this name, true
 *     if not.
 *
 * @doc {heading: 'Backends'}
 */
                function registerBackend(name, factory, priority = 1) {
                    return ENGINE.registerBackend(name, factory, priority);
                }
                /**
 * Gets the current backend. If no backends have been initialized, this will
 * attempt to initialize the best backend. Will throw an error if the highest
 * priority backend has async initialization, in which case you should call
 * 'await tf.ready()' before running other code.
 *
 * @doc {heading: 'Backends'}
 */
                function backend() {
                    return ENGINE.backend;
                }
                /**
 * Sets the global platform.
 *
 * @param platformName The name of this platform.
 * @param platform A platform implementation.
 */
                function setPlatform(platformName, platform) {
                    env().setPlatform(platformName, platform);
                }
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Converts two real numbers to a complex number.
 *
 * Given a tensor `real` representing the real part of a complex number, and a
 * tensor `imag` representing the imaginary part of a complex number, this
 * operation returns complex numbers elementwise of the form [r0, i0, r1, i1],
 * where r represents the real part and i represents the imag part.
 *
 * The input tensors real and imag must have the same shape.
 *
 * ```js
 * const real = tf.tensor1d([2.25, 3.25]);
 * const imag = tf.tensor1d([4.75, 5.75]);
 * const complex = tf.complex(real, imag);
 *
 * complex.print();
 * ```
 *
 * @doc {heading: 'Tensors', subheading: 'Creation'}
 */
                function complex_(real, imag) {
                    const $real = convertToTensor(real, 'real', 'complex');
                    const $imag = convertToTensor(imag, 'imag', 'complex');
                    assertShapesMatch($real.shape, $imag.shape, `real and imag shapes, ${$real.shape} and ${$imag.shape}, ` + `must match in call to tf.complex().`);
                    const inputs = {
                        real: $real,
                        imag: $imag
                    };
                    return ENGINE.runKernel(Complex, inputs);
                }
                const complex = op({
                    complex_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Returns the imaginary part of a complex (or real) tensor.
 *
 * Given a tensor input, this operation returns a tensor of type float that is
 * the imaginary part of each element in input considered as a complex number.
 * If input is real, a tensor of all zeros is returned.
 *
 * ```js
 * const x = tf.complex([-2.25, 3.25], [4.75, 5.75]);
 * tf.imag(x).print();
 * ```
 *
 * @doc {heading: 'Tensors', subheading: 'Creation'}
 */
                function imag_(input) {
                    const $input = convertToTensor(input, 'input', 'imag');
                    const inputs = {
                        input: $input
                    };
                    return ENGINE.runKernel(Imag, inputs);
                }
                const imag = op({
                    imag_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Returns the real part of a complex (or real) tensor.
 *
 * Given a tensor input, this operation returns a tensor of type float that is
 * the real part of each element in input considered as a complex number.
 *
 * If the input is real, it simply makes a clone.
 *
 * ```js
 * const x = tf.complex([-2.25, 3.25], [4.75, 5.75]);
 * tf.real(x).print();
 * ```
 *
 * @doc {heading: 'Tensors', subheading: 'Creation'}
 */
                function real_(input) {
                    const $input = convertToTensor(input, 'input', 'real');
                    const inputs = {
                        input: $input
                    };
                    return ENGINE.runKernel(Real, inputs);
                }
                const real = op({
                    real_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Transposes the `tf.Tensor`. Permutes the dimensions according to `perm`.
 *
 * The returned `tf.Tensor`'s dimension `i` will correspond to the input
 * dimension `perm[i]`. If `perm` is not given, it is set to `[n-1...0]`,
 * where `n` is the rank of the input `tf.Tensor`. Hence by default, this
 * operation performs a regular matrix transpose on 2-D input `tf.Tensor`s.
 *
 * ```js
 * const a = tf.tensor2d([1, 2, 3, 4, 5, 6], [2, 3]);
 *
 * a.transpose().print();  // or tf.transpose(a)
 * ```
 *
 * @param x The tensor to transpose.
 * @param perm The permutation of the dimensions of a.
 * @param conjugate Will conjugate complex input if true.
 *
 * @doc {heading: 'Operations', subheading: 'Matrices'}
 */
                function transpose_(x, perm, conjugate) {
                    const $x = convertToTensor(x, 'x', 'transpose');
                    if (perm == null) {
                        perm = $x.shape.map((s, i) => i).reverse();
                    }
                    assert($x.rank === perm.length, () => `Error in transpose: rank of input ${$x.rank} ` + `must match length of perm ${perm}.`);
                    perm.forEach(axis => {
                        assert(axis >= 0 && axis < $x.rank, () => `All entries in 'perm' must be between 0 and ${$x.rank - 1}` + ` but got ${perm}`);
                    }
                    );
                    if ($x.rank <= 1) {
                        return $x.clone();
                    }
                    const inputs = {
                        x: $x
                    };
                    const attrs = {
                        perm
                    };
                    if ($x.dtype === 'complex64') {
                        return tidy(() => {
                            let $real = real($x);
                            let $imag = imag($x);
                            $real = ENGINE.runKernel(Transpose, {
                                x: $real
                            }, attrs);
                            $imag = ENGINE.runKernel(Transpose, {
                                x: $imag
                            }, attrs);
                            if (conjugate) {
                                $imag = neg($imag);
                            }
                            return complex($real, $imag);
                        }
                        );
                    }
                    return ENGINE.runKernel(Transpose, inputs, attrs);
                }
                const transpose = op({
                    transpose_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const cumsumGradConfig = {
                    kernelName: Cumsum,
                    inputsToSave: ['x'],
                    gradFunc: (dy, saved, attrs) => {
                        const [x] = saved;
                        const { axis, exclusive, reverse } = attrs;
                        return {
                            x: () => {
                                const permutation = getAxesPermutation([axis], x.rank);
                                let out = cumsum(dy, axis, exclusive, !reverse);
                                if (permutation != null) {
                                    out = transpose(out, permutation);
                                }
                                return out;
                            }
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                function depthwiseConv2dNativeBackpropFilter_(x, dy, filterShape, strides, pad, dilations = [1, 1], dimRoundingMode) {
                    let x4D = x;
                    if (x.rank === 3) {
                        x4D = reshape(x, [1, x.shape[0], x.shape[1], x.shape[2]]);
                    }
                    let dy4D = dy;
                    if (dy4D.rank === 3) {
                        dy4D = reshape(dy, [1, dy.shape[0], dy.shape[1], dy.shape[2]]);
                    }
                    const inputs = {
                        x: x4D,
                        dy: dy4D
                    };
                    const attrs = {
                        strides,
                        pad,
                        dimRoundingMode,
                        dilations,
                        filterShape
                    };
                    // tslint:disable-next-line: no-unnecessary-type-assertion
                    return ENGINE.runKernel(DepthwiseConv2dNativeBackpropFilter, inputs, attrs);
                }
                const depthwiseConv2dNativeBackpropFilter = op({
                    depthwiseConv2dNativeBackpropFilter_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                function depthwiseConv2dNativeBackpropInput_(xShape, dy, filter, strides, pad, dilations = [1, 1], dimRoundingMode) {
                    let dy4D = dy;
                    let reshapedTo4D = false;
                    if (dy.rank === 3) {
                        reshapedTo4D = true;
                        dy4D = reshape(dy, [1, dy.shape[0], dy.shape[1], dy.shape[2]]);
                    }
                    const inputs = {
                        dy: dy4D,
                        filter
                    };
                    const attrs = {
                        strides,
                        pad,
                        dimRoundingMode,
                        dilations,
                        inputShape: xShape
                    };
                    const res = // tslint:disable-next-line: no-unnecessary-type-assertion
                        ENGINE.runKernel(DepthwiseConv2dNativeBackpropInput, inputs, attrs);
                    if (reshapedTo4D) {
                        return reshape(res, [res.shape[1], res.shape[2], res.shape[3]]);
                    }
                    return res;
                }
                const depthwiseConv2dNativeBackpropInput = op({
                    depthwiseConv2dNativeBackpropInput_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const depthwiseConv2dNativeGradConfig = {
                    kernelName: DepthwiseConv2dNative,
                    inputsToSave: ['x', 'filter'],
                    gradFunc: (dy, saved, attrs) => {
                        const { dilations, strides, pad, dimRoundingMode } = attrs;
                        const $dilations = dilations == null ? [1, 1] : dilations;
                        assert(tupleValuesAreOne($dilations), () => 'Error in gradient of depthwiseConv2dNative: dilation rates ' + `greater than 1 are not yet supported. Got dilations ` + `'${$dilations}'`);
                        const [x, filter] = saved;
                        assert(x.rank === 4, () => `Error in gradient of depthwiseConv2dNative: input must be ` + `rank 4, but got rank ${x.rank}.`);
                        assert(filter.rank === 4, () => `Error in gradient of depthwiseConv2dNative: filter must be ` + `rank 4, but got rank ${filter.rank}.`);
                        assert(x.shape[3] === filter.shape[2], () => `Error in gradient of depthwiseConv2d: number of input ` + `channels (${x.shape[3]}) must match the inChannels dimension ` + `in filter ${filter.shape[2]}.`);
                        assert(eitherStridesOrDilationsAreOne(strides, $dilations), () => 'Error in gradient of depthwiseConv2d: Either strides or ' + `dilations must be  1. Got strides ${strides} and dilations ` + `'${$dilations}'.`);
                        checkPadOnDimRoundingMode('depthwiseConv2d', pad, dimRoundingMode);
                        return {
                            x: () => depthwiseConv2dNativeBackpropInput(x.shape, dy, filter, strides, pad, $dilations, dimRoundingMode),
                            filter: () => depthwiseConv2dNativeBackpropFilter(x, dy, filter.shape, strides, pad, $dilations, dimRoundingMode)
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const dilation2dGradConfig = {
                    kernelName: Dilation2D,
                    inputsToSave: ['x', 'filter'],
                    gradFunc: (dy, saved, attrs) => {
                        const [x, filter] = saved;
                        const inputInputs = {
                            x,
                            filter,
                            dy
                        };
                        const filterInputs = {
                            x,
                            filter,
                            dy
                        };
                        return {
                            x: () => ENGINE.runKernel(Dilation2DBackpropInput, inputInputs, attrs),
                            filter: () => ENGINE.runKernel(Dilation2DBackpropFilter, filterInputs, attrs)
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const eluGradConfig = {
                    kernelName: Elu,
                    outputsToSave: [true],
                    gradFunc: (dy, saved) => {
                        const [y] = saved;
                        const inputs = {
                            dy,
                            y
                        };
                        return {
                            x: () => ENGINE.runKernel(EluGrad, inputs)
                        };
                    }
                };
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes exponential of the input `tf.Tensor` element-wise. `e ^ x`
 *
 * ```js
 * const x = tf.tensor1d([1, 2, -3]);
 *
 * x.exp().print();  // or tf.exp(x)
 * ```
 * @param x The input tensor.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function exp_(x) {
                    const $x = convertToTensor(x, 'x', 'exp');
                    const inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(Exp, inputs);
                }
                const exp = op({
                    exp_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const erfGradConfig = {
                    kernelName: Erf,
                    inputsToSave: ['x'],
                    gradFunc: (dy, saved) => {
                        const [x] = saved;
                        const a = mul(exp(neg(square(x))), 2 / Math.sqrt(Math.PI));
                        return {
                            x: () => mul(dy, a)
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const expGradConfig = {
                    kernelName: Exp,
                    outputsToSave: [true],
                    gradFunc: (dy, saved) => {
                        const [y] = saved;
                        return {
                            x: () => mul(dy, y)
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const expandDimsGradConfig = {
                    kernelName: ExpandDims,
                    inputsToSave: ['input'],
                    gradFunc: (dy, saved) => {
                        const [input] = saved;
                        return {
                            input: () => reshape(dy, input.shape)
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const expm1GradConfig = {
                    kernelName: Expm1,
                    inputsToSave: ['x'],
                    gradFunc: (dy, saved) => {
                        const [x] = saved;
                        return {
                            x: () => mul(dy, exp(x))
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const floorGradConfig = {
                    kernelName: Floor,
                    gradFunc: dy => {
                        return {
                            x: () => zerosLike(dy)
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const floorDivGradConfig = {
                    kernelName: FloorDiv,
                    inputsToSave: ['a', 'b'],
                    gradFunc: (dy, saved) => {
                        const [a, b] = saved;
                        const outShape = assertAndGetBroadcastShape(a.shape, b.shape);
                        const derA = () => {
                            const res = div(dy, cast(b, 'float32'));
                            const reduceAxes = getReductionAxes(a.shape, outShape);
                            if (reduceAxes.length > 0) {
                                return reshape(sum$1(res, reduceAxes), a.shape);
                            }
                            return res;
                        }
                            ;
                        const derB = () => {
                            let res = mul(dy, cast(a, 'float32'));
                            const reduceAxes = getReductionAxes(b.shape, outShape);
                            if (reduceAxes.length > 0) {
                                res = reshape(sum$1(res, reduceAxes), b.shape);
                            }
                            const tmp = square(b);
                            return neg(div(res, cast(tmp, 'float32')));
                        }
                            ;
                        return {
                            a: derA,
                            b: derB
                        };
                    }
                };
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes reciprocal of square root of the input `tf.Tensor` element-wise:
 * `y = 1 / sqrt(x)`
 *
 * ```js
 * const x = tf.tensor1d([1, 2, 4, -1]);
 *
 * x.rsqrt().print();  // or tf.rsqrt(x)
 * ```
 * @param x The input tensor.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function rsqrt_(x) {
                    const $x = convertToTensor(x, 'x', 'rsqrt', 'float32');
                    const inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(Rsqrt, inputs);
                }
                const rsqrt = op({
                    rsqrt_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Construct a tensor by repeating it the number of times given by reps.
 *
 * This operation creates a new tensor by replicating `input` `reps`
 * times. The output tensor's `i`th dimension has `input.shape[i] *
 * reps[i]` elements, and the values of `input` are replicated
 * `reps[i]` times along the `i`th dimension. For example, tiling
 * `[a, b, c, d]` by `[2]` produces `[a, b, c, d, a, b, c, d]`.
 *
 * ```js
 * const a = tf.tensor1d([1, 2]);
 *
 * a.tile([2]).print();    // or a.tile([2])
 * ```
 *
 * ```js
 * const a = tf.tensor2d([1, 2, 3, 4], [2, 2]);
 *
 * a.tile([1, 2]).print();  // or a.tile([1, 2])
 * ```
 * @param x The tensor to tile.
 * @param reps Determines the number of replications per dimension.
 *
 * @doc {heading: 'Tensors', subheading: 'Slicing and Joining'}
 */
                function tile_(x, reps) {
                    const $x = convertToTensor(x, 'x', 'tile', 'string_or_numeric');
                    assert($x.rank === reps.length, () => `Error in transpose: rank of input ${$x.rank} ` + `must match length of reps ${reps}.`);
                    const inputs = {
                        x: $x
                    };
                    const attrs = {
                        reps
                    };
                    return ENGINE.runKernel(Tile, inputs, attrs);
                }
                const tile = op({
                    tile_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const fusedBatchNormGradConfig = {
                    kernelName: FusedBatchNorm,
                    inputsToSave: ['x', 'mean', 'variance', 'scale'],
                    gradFunc: (dy, saved, attrs) => {
                        const { varianceEpsilon } = attrs;
                        const [x, mean, variance, scale] = saved;
                        const scaleValue = scale == null ? scalar(1) : scale;
                        const reductionAxes = getReductionAxes(mean.shape, x.shape);
                        const tileShape = [];
                        if (mean.rank === 1) {
                            for (let i = 0; i < x.shape.length - 1; ++i) {
                                tileShape.push(x.shape[i]);
                            }
                            tileShape.push(1);
                        }
                        const xMinusMean = sub(x, mean);
                        const dyTimesScaleValue = mul(dy, scaleValue);
                        const oneOverSqrtVariance = rsqrt(add$1(variance, scalar(varianceEpsilon)));
                        const minusHalfRCube = mul(mul(mul(oneOverSqrtVariance, oneOverSqrtVariance), oneOverSqrtVariance), scalar(-0.5));
                        const derX = () => {
                            if (mean.rank === 1) {
                                return reshape(mul(mul(dy, tile(reshape(oneOverSqrtVariance, [1, 1, 1, mean.shape[0]]), tileShape)), scaleValue), x.shape);
                            } else {
                                return reshape(mul(mul(dy, oneOverSqrtVariance), scaleValue), x.shape);
                            }
                        }
                            ;
                        const derMean = () => {
                            let meanDer = mul(mul(oneOverSqrtVariance, scalar(-1)), dyTimesScaleValue);
                            if (mean.rank === 1) {
                                meanDer = sum$1(meanDer, reductionAxes);
                            }
                            return reshape(meanDer, mean.shape);
                        }
                            ;
                        const derVariance = () => {
                            let varianceDer = mul(mul(minusHalfRCube, xMinusMean), dyTimesScaleValue);
                            if (mean.rank === 1) {
                                varianceDer = sum$1(varianceDer, reductionAxes);
                            }
                            return reshape(varianceDer, mean.shape);
                        }
                            ;
                        const derScale = () => {
                            const xMinusMean2TimesRsqrt = mul(xMinusMean, oneOverSqrtVariance);
                            let scaleDer = mul(dy, xMinusMean2TimesRsqrt);
                            if (mean.rank === 1) {
                                scaleDer = sum$1(scaleDer, reductionAxes);
                            }
                            return reshape(scaleDer, mean.shape);
                        }
                            ;
                        const derOffset = () => {
                            let offsetDer = dy;
                            if (mean.rank === 1) {
                                offsetDer = sum$1(offsetDer, reductionAxes);
                            }
                            return reshape(offsetDer, mean.shape);
                        }
                            ;
                        return {
                            x: derX,
                            mean: derMean,
                            variance: derVariance,
                            scale: derScale,
                            offset: derOffset
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the sum along segments of a `tf.Tensor`.
 *
 * ```js
 * const x = tf.tensor1d([1, 2, 3, 4]);
 * const segmentIds = tf.tensor1d([1, 2, 0, 1], 'int32');
 * const numSegments = 3;
 *
 * x.unsortedSegmentSum(segmentIds, numSegments).print()
 * //or tf.unsortedSegmentSum(x, segmentIds, numSegments)
 * ```
 * @param x The `tf.Tensor` that will be summed along its segments.
 * @param segmentIds A `tf.Tensor1D` whose rank is equal to the rank of `x`'s
 * dimension along the `axis`.  Maps each element of `x` to a segment.
 * @param numSegments The number of distinct `segmentIds`.
 *
 * @doc {heading: 'Operations', subheading: 'Segment'}
 */
                function unsortedSegmentSum_(x, segmentIds, numSegments) {
                    const $x = convertToTensor(x, 'x', 'unsortedSegmentSum');
                    const $segmentIds = convertToTensor(segmentIds, 'segmentIds', 'unsortedSegmentSum', 'int32');
                    assert(isInt(numSegments), () => 'numSegments must be of dtype int');
                    const inputs = {
                        x: $x,
                        segmentIds: $segmentIds
                    };
                    const attrs = {
                        numSegments
                    };
                    return ENGINE.runKernel(UnsortedSegmentSum, inputs, attrs);
                }
                const unsortedSegmentSum = op({
                    unsortedSegmentSum_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const gatherGradConfig = {
                    kernelName: GatherV2,
                    inputsToSave: ['x', 'indices'],
                    gradFunc: (dy, saved, attrs) => {
                        const [x, indices] = saved;
                        const { axis } = attrs;
                        const parsedAxis = parseAxisParam(axis, x.shape)[0];
                        const derX = () => {
                            const paramsShape = x.shape;
                            const indicesSize = indices.size;
                            const outerShape = paramsShape.slice(0, parsedAxis);
                            const outerDims = outerShape.length;
                            const innerShape = paramsShape.slice(axis, paramsShape.length).slice(1);
                            const innerDims = innerShape.length;
                            const outerAxesIndices = arrayRange(0, outerDims);
                            const innerAxesIndices = arrayRange(outerDims + 1, outerDims + 1 + innerDims);
                            const valuesShape = arrayConcat([outerShape, [indicesSize], innerShape]);
                            const values = reshape(dy, valuesShape);
                            const reshapedIndices = reshape(indices, [indicesSize]);
                            const transposeDims = arrayConcat([[outerDims], outerAxesIndices, innerAxesIndices]);
                            const valuesTranspose = transpose(values, transposeDims);
                            let paramsGrad = unsortedSegmentSum(valuesTranspose, reshapedIndices, x.shape[parsedAxis]);
                            const invertTransposeDims = getUndoAxesPermutation(transposeDims);
                            paramsGrad = transpose(paramsGrad, invertTransposeDims);
                            return paramsGrad;
                        }
                            ;
                        return {
                            x: derX,
                            indices: () => indices
                        };
                    }
                };
                function arrayRange(start, stop) {
                    const result = [];
                    for (let i = start; i < stop; ++i) {
                        result.push(i);
                    }
                    return result;
                }
                function arrayConcat(arrays) {
                    const result = [];
                    for (let i = 0; i < arrays.length; ++i) {
                        for (let j = 0; j < arrays[i].length; ++j) {
                            result.push(arrays[i][j]);
                        }
                    }
                    return result;
                }
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const greaterEqualGradConfig = {
                    kernelName: GreaterEqual,
                    inputsToSave: ['a', 'b'],
                    gradFunc: (dy, saved) => {
                        const [a, b] = saved;
                        return {
                            a: () => zerosLike(a),
                            b: () => zerosLike(b)
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const identityGradConfig = {
                    kernelName: Identity,
                    gradFunc: dy => {
                        return {
                            x: () => cast(dy, 'float32')
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const isFiniteGradConfig = {
                    kernelName: IsFinite,
                    gradFunc: dy => {
                        // TODO(nsthorat): Let gradients be null for cases where we want to stop
                        // backpropgation.
                        return {
                            x: () => zerosLike(dy)
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const isInfGradConfig = {
                    kernelName: IsInf,
                    gradFunc: dy => {
                        // TODO(nsthorat): Let gradients be null for cases where we want to stop
                        // backpropgation.
                        return {
                            x: () => zerosLike(dy)
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const isNanGradConfig = {
                    kernelName: IsNan,
                    gradFunc: dy => {
                        // TODO(nsthorat): Let gradients be null for cases where we want to stop
                        // backpropgation.
                        return {
                            x: () => zerosLike(dy)
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Returns the truth value of (a > b) element-wise. Supports broadcasting.
 *
 * ```js
 * const a = tf.tensor1d([1, 2, 3]);
 * const b = tf.tensor1d([2, 2, 2]);
 *
 * a.greater(b).print();
 * ```
 *
 * @param a The first input tensor.
 * @param b The second input tensor. Must have the same dtype as `a`.
 *
 * @doc {heading: 'Operations', subheading: 'Logical'}
 */
                function greater_(a, b) {
                    let $a = convertToTensor(a, 'a', 'greater', 'string_or_numeric');
                    let $b = convertToTensor(b, 'b', 'greater', 'string_or_numeric');
                    [$a, $b] = makeTypesMatch($a, $b);
                    assertAndGetBroadcastShape($a.shape, $b.shape);
                    const inputs = {
                        a: $a,
                        b: $b
                    };
                    return ENGINE.runKernel(Greater, inputs);
                }
                const greater = op({
                    greater_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const leakyReluGradConfig = {
                    kernelName: LeakyRelu,
                    inputsToSave: ['x'],
                    gradFunc: (dy, saved, attrs) => {
                        const [x] = saved;
                        const { alpha } = attrs;
                        const mask = greater(x, 0);
                        // Returns `gradients * (features > 0) + alpha * gradients * (features <=
                        // 0)`.
                        return {
                            x: () => where(mask, dy, mul(dy, alpha))
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const log1pGradConfig = {
                    kernelName: Log1p,
                    inputsToSave: ['x'],
                    gradFunc: (dy, saved) => {
                        const [x] = saved;
                        return {
                            x: () => div(dy, add$1(x, 1))
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const logGradConfig = {
                    kernelName: Log,
                    inputsToSave: ['x'],
                    gradFunc: (dy, saved) => {
                        const [x] = saved;
                        return {
                            x: () => div(dy, cast(x, 'float32'))
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const logSoftmaxGradConfig = {
                    kernelName: LogSoftmax,
                    inputsToSave: [],
                    outputsToSave: [true],
                    gradFunc: (dy, saved, attrs) => {
                        const [value] = saved;
                        const { axis } = attrs;
                        return {
                            logits: () => {
                                const keepDims = true;
                                const softmax = exp(value);
                                return sub(dy, mul(sum$1(dy, axis, keepDims), softmax));
                            }
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                function localResponseNormalizationBackprop_(x, y, dy, depthRadius = 5, bias = 1, alpha = 1, beta = 0.5) {
                    const inputs = {
                        x,
                        y,
                        dy
                    };
                    const attrs = {
                        depthRadius,
                        bias,
                        alpha,
                        beta
                    };
                    return ENGINE.runKernel(LRNGrad, inputs, attrs);
                }
                const localResponseNormalizationBackprop = op({
                    localResponseNormalizationBackprop_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const lrnGradConfig = {
                    kernelName: LRN,
                    inputsToSave: ['x'],
                    outputsToSave: [true],
                    gradFunc: (dy, saved, attrs) => {
                        const [x, y] = saved;
                        const { depthRadius, bias, alpha, beta } = attrs;
                        return {
                            x: () => localResponseNormalizationBackprop(x, y, dy, depthRadius, bias, alpha, beta)
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Returns the truth value of (a == b) element-wise. Supports broadcasting.
 *
 * ```js
 * const a = tf.tensor1d([1, 2, 3]);
 * const b = tf.tensor1d([2, 2, 2]);
 *
 * a.equal(b).print();
 * ```
 *
 * @param a The first input tensor.
 * @param b The second input tensor. Must have the same dtype as `a`.
 *
 * @doc {heading: 'Operations', subheading: 'Logical'}
 */
                function equal_(a, b) {
                    let $a = convertToTensor(a, 'a', 'equal', 'string_or_numeric');
                    let $b = convertToTensor(b, 'b', 'equal', 'string_or_numeric');
                    [$a, $b] = makeTypesMatch($a, $b);
                    assertAndGetBroadcastShape($a.shape, $b.shape);
                    const inputs = {
                        a: $a,
                        b: $b
                    };
                    return ENGINE.runKernel(Equal, inputs);
                }
                const equal = op({
                    equal_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Gradient helper function for the min and max operations.
 */
                function gradForMinAndMax(dy, y, xOrig, origAxes) {
                    if (y.rank < xOrig.rank) {
                        y = reshape(y, expandShapeToKeepDim(y.shape, origAxes));
                    }
                    if (dy.rank < xOrig.rank) {
                        dy = reshape(dy, expandShapeToKeepDim(dy.shape, origAxes));
                    }
                    return {
                        x: () => {
                            const dx = mul(dy, cast(equal(xOrig, y), dy.dtype));
                            return dx;
                        }
                    };
                }
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const maxGradConfig = {
                    kernelName: Max,
                    inputsToSave: ['x'],
                    outputsToSave: [true],
                    gradFunc: (dy, saved, attrs) => {
                        const maxAttrs = attrs;
                        const { reductionIndices } = maxAttrs;
                        const x = saved[0];
                        const y = saved[1];
                        const origAxes = parseAxisParam(reductionIndices, x.shape);
                        const maxGrad = gradForMinAndMax(dy, y, x, origAxes);
                        return {
                            x: () => {
                                return maxGrad['x']();
                            }
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Returns the truth value of (a < b) element-wise. Supports broadcasting.
 *
 * ```js
 * const a = tf.tensor1d([1, 2, 3]);
 * const b = tf.tensor1d([2, 2, 2]);
 *
 * a.less(b).print();
 * ```
 * @param a The first input tensor.
 * @param b The second input tensor. Must have the same dtype as `a`.
 *
 * @doc {heading: 'Operations', subheading: 'Logical'}
 */
                function less_(a, b) {
                    let $a = convertToTensor(a, 'a', 'less', 'string_or_numeric');
                    let $b = convertToTensor(b, 'b', 'less', 'string_or_numeric');
                    [$a, $b] = makeTypesMatch($a, $b);
                    assertAndGetBroadcastShape($a.shape, $b.shape);
                    const inputs = {
                        a: $a,
                        b: $b
                    };
                    return ENGINE.runKernel(Less, inputs);
                }
                const less = op({
                    less_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const maximumGradConfig = {
                    kernelName: Maximum,
                    inputsToSave: ['a', 'b'],
                    gradFunc: (dy, saved) => {
                        const [a, b] = saved;
                        const derA = () => mul(dy, cast(greaterEqual(a, b), 'float32'));
                        const derB = () => mul(dy, cast(less(a, b), 'float32'));
                        return {
                            a: derA,
                            b: derB
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the backprop of a 3d max pool.
 *
 * @param dy The dy error, of rank 5 of shape
 *     [batchSize, depth, height, width, channels].
 * assumed.
 * @param input The original input image, of rank 5 or rank 4 of shape
 *     [batchSize, depth, height, width, channels].
 * @param output The original output image, of rank 5 of shape
 *     [batchSize, outDepth, outHeight, outWidth, channels].
 * @param filterSize The filter size:
 *     `[filterDepth, filterHeight, filterWidth]`.
 *     `filterSize` is a single number,
 *     then `filterDepth == filterHeight == filterWidth`.
 * @param strides The strides of the pooling:
 *     `[strideDepth, strideHeight, strideWidth]`. If
 *     `strides` is a single number, then `strideHeight == strideWidth`.
 * @param pad A string from: 'same', 'valid'. The type of padding algorithm
 *     used in the forward prop of the op.
 * @param dimRoundingMode A string from: 'ceil', 'round', 'floor'. If none is
 *     provided, it will default to truncate.
 */
                function maxPool3dGrad_(dy, input, output, filterSize, strides, pad, dimRoundingMode) {
                    const $dy = convertToTensor(dy, 'dy', 'maxPool3dGrad');
                    const $input = convertToTensor(input, 'input', 'maxPool3dGrad');
                    const $output = convertToTensor(output, 'output', 'maxPool3dGrad');
                    let dy5D = $dy;
                    let input5D = $input;
                    let output5D = $output;
                    let reshapedTo5D = false;
                    if ($input.rank === 4) {
                        reshapedTo5D = true;
                        dy5D = reshape($dy, [1, $dy.shape[0], $dy.shape[1], $dy.shape[2], $dy.shape[3]]);
                        input5D = reshape($input, [1, $input.shape[0], $input.shape[1], $input.shape[2], $input.shape[3]]);
                        output5D = reshape($output, [1, $output.shape[0], $output.shape[1], $output.shape[2], $output.shape[3]]);
                    }
                    assert(dy5D.rank === 5, () => `Error in maxPool3dGrad: dy must be rank 5 but got rank ` + `${dy5D.rank}.`);
                    assert(input5D.rank === 5, () => `Error in maxPool3dGrad: input must be rank 5 but got rank ` + `${input5D.rank}.`);
                    assert(output5D.rank === 5, () => `Error in maxPool3dGrad: output must be rank 5 but got rank ` + `${output5D.rank}.`);
                    checkPadOnDimRoundingMode('maxPool3dGrad', pad, dimRoundingMode);
                    const inputs = {
                        dy: dy5D,
                        input: input5D,
                        output: output5D
                    };
                    const attrs = {
                        filterSize,
                        strides,
                        pad,
                        dimRoundingMode
                    };
                    // tslint:disable-next-line: no-unnecessary-type-assertion
                    const res = ENGINE.runKernel(MaxPool3DGrad, inputs, attrs);
                    if (reshapedTo5D) {
                        return reshape(res, [res.shape[1], res.shape[2], res.shape[3], res.shape[4]]);
                    }
                    return res;
                }
                const maxPool3dGrad = op({
                    maxPool3dGrad_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const maxPool3DGradConfig = {
                    kernelName: MaxPool3D,
                    inputsToSave: ['x'],
                    outputsToSave: [true],
                    gradFunc: (dy, saved, attrs) => {
                        const [x, y] = saved;
                        const { filterSize, strides, pad, dimRoundingMode } = attrs;
                        return {
                            x: () => maxPool3dGrad(dy, x, y, filterSize, strides, pad, dimRoundingMode)
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the backprop of a 2D max pool.
 *
 * @param dy The dy error, of rank 4 or rank 3 of shape
 *     [batchSize, height, width, channels]. If rank 3, batch of 1 is
 * assumed.
 * @param input The original input image, of rank 4, of shape
 *     [batchSize, height, width, channels].
 * @param output The original output image, of rank 4, of shape
 *     [batchSize, outHeight, outWidth, channels].
 * @param filterSize The filter size: `[filterHeight, filterWidth]`. If
 *     `filterSize` is a single number, then `filterHeight == filterWidth`.
 * @param strides The strides of the pooling: `[strideHeight, strideWidth]`. If
 *     `strides` is a single number, then `strideHeight == strideWidth`.
 * @param pad The type of padding algorithm used in the forward prop of the op.
 *     'same', 'valid', for more info, see this guide:
 *     [https://www.tensorflow.org/api_docs/python/tf/nn/convolution](
 *          https://www.tensorflow.org/api_docs/python/tf/nn/convolution)
 * @param dimRoundingMode A string from: 'ceil', 'round', 'floor'. If none is
 *     provided, it will default to truncate.
 */
                function maxPoolGrad_(dy, input, output, filterSize, strides, pad, dimRoundingMode) {
                    const $dy = convertToTensor(dy, 'dy', 'maxPoolGrad');
                    const $input = convertToTensor(input, 'input', 'maxPoolGrad');
                    const $output = convertToTensor(output, 'output', 'maxPoolGrad');
                    assert($input.rank === $dy.rank, () => `Rank of input (${$input.rank}) does not match rank of dy ` + `(${$dy.rank})`);
                    assert($dy.rank === 4, () => `Error in maxPoolGrad: dy must be rank 4 but got rank ` + `${$dy.rank}.`);
                    assert($input.rank === 4, () => `Error in maxPoolGrad: input must be rank 4 but got rank ` + `${$input.rank}.`);
                    checkPadOnDimRoundingMode('maxPoolGrad', pad, dimRoundingMode);
                    const inputs = {
                        dy: $dy,
                        input: $input,
                        output: $output
                    };
                    const attrs = {
                        filterSize,
                        strides,
                        pad,
                        dimRoundingMode
                    };
                    // tslint:disable-next-line: no-unnecessary-type-assertion
                    return ENGINE.runKernel(MaxPoolGrad, inputs, attrs);
                }
                const maxPoolGrad = op({
                    maxPoolGrad_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const maxPoolGradConfig = {
                    kernelName: MaxPool,
                    inputsToSave: ['x'],
                    outputsToSave: [true],
                    gradFunc: (dy, saved, attrs) => {
                        const [x, y] = saved;
                        const { filterSize, strides, pad } = attrs;
                        return {
                            x: () => maxPoolGrad(dy, x, y, filterSize, strides, pad)
                        };
                    }
                };
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Creates a `tf.Tensor` with all elements set to 0.
 *
 * ```js
 * tf.zeros([2, 2]).print();
 * ```
 *
 * @param shape An array of integers defining the output tensor shape.
 * @param dtype The type of an element in the resulting tensor. Can
 *     be 'float32', 'int32' or 'bool'. Defaults to 'float'.
 *
 * @doc {heading: 'Tensors', subheading: 'Creation'}
 */
                function zeros(shape, dtype = 'float32') {
                    assertNonNegativeIntegerDimensions(shape);
                    if (dtype === 'complex64') {
                        const real = zeros(shape, 'float32');
                        const imag = zeros(shape, 'float32');
                        return complex(real, imag);
                    }
                    const values = makeZerosTypedArray(sizeFromShape(shape), dtype);
                    return ENGINE.makeTensor(values, shape, dtype);
                }
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Creates a `tf.Tensor` with all elements set to 1.
 *
 * ```js
 * tf.ones([2, 2]).print();
 * ```
 *
 * @param shape An array of integers defining the output tensor shape.
 * @param dtype The type of an element in the resulting tensor. Defaults to
 *     'float'.
 *
 * @doc {heading: 'Tensors', subheading: 'Creation'}
 */
                function ones$1(shape, dtype = 'float32') {
                    assertNonNegativeIntegerDimensions(shape);
                    if (dtype === 'complex64') {
                        const real = ones$1(shape, 'float32');
                        const imag = zeros(shape, 'float32');
                        return complex(real, imag);
                    }
                    const values = makeOnesTypedArray(sizeFromShape(shape), dtype);
                    return ENGINE.makeTensor(values, shape, dtype);
                }
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const meanGradConfig = {
                    kernelName: Mean,
                    inputsToSave: ['x'],
                    gradFunc: (dy, saved, attrs) => {
                        const [x] = saved;
                        const { axis } = attrs;
                        const axes = parseAxisParam(axis, x.shape);
                        const shapes = computeOutAndReduceShapes(x.shape, axes);
                        const reduceShape = shapes[1];
                        const reduceSize = sizeFromShape(reduceShape);
                        const derX = () => {
                            const expandedDyShape = x.shape.slice();
                            axes.forEach(axis => {
                                expandedDyShape[axis] = 1;
                            }
                            );
                            const expandedDy = reshape(dy, expandedDyShape);
                            const res = div(mul(expandedDy, ones$1(x.shape, 'float32')), reduceSize);
                            return res;
                        }
                            ;
                        return {
                            x: derX
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const minGradConfig = {
                    kernelName: Min,
                    inputsToSave: ['x'],
                    outputsToSave: [true],
                    gradFunc: (dy, saved, attrs) => {
                        const minAttrs = attrs;
                        const { axis } = minAttrs;
                        const [x, y] = saved;
                        const origAxes = parseAxisParam(axis, x.shape);
                        const minGrad = gradForMinAndMax(dy, y, x, origAxes);
                        return {
                            x: () => {
                                return minGrad['x']();
                            }
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const minimumGradConfig = {
                    kernelName: Minimum,
                    inputsToSave: ['a', 'b'],
                    gradFunc: (dy, saved) => {
                        const [a, b] = saved;
                        const derA = () => mul(dy, cast(lessEqual(a, b), 'float32'));
                        const derB = () => mul(dy, cast(greater(a, b), 'float32'));
                        return {
                            a: derA,
                            b: derB
                        };
                    }
                };
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Extracts a slice from a `tf.Tensor` starting at coordinates `begin`
 * and is of size `size`.
 *
 * Also available are stricter rank-specific methods with the same signature
 * as this method that assert that `x` is of the given rank:
 *   - `tf.slice1d`
 *   - `tf.slice2d`
 *   - `tf.slice3d`
 *   - `tf.slice4d`
 *
 * ```js
 * const x = tf.tensor1d([1, 2, 3, 4]);
 *
 * x.slice([1], [2]).print();
 * ```
 *
 * ```js
 * const x = tf.tensor2d([1, 2, 3, 4], [2, 2]);
 *
 * x.slice([1, 0], [1, 2]).print();
 * ```
 * @param x The input `tf.Tensor` to slice from.
 * @param begin The coordinates to start the slice from. The length can be
 *     less than the rank of x - the rest of the axes will have implicit 0 as
 *     start. Can also be a single number, in which case it specifies the
 *     first axis.
 * @param size The size of the slice. The length can be less than the rank of
 *     x - the rest of the axes will have implicit -1. A value of -1 requests
 *     the rest of the dimensions in the axis. Can also be a single number,
 *     in which case it specifies the size of the first axis.
 *
 * @doc {heading: 'Tensors', subheading: 'Slicing and Joining'}
 */
                function slice_(x, begin, size) {
                    const $x = convertToTensor(x, 'x', 'slice', 'string_or_numeric');
                    if ($x.rank === 0) {
                        throw new Error('Slicing scalar is not possible');
                    }
                    const inputs = {
                        x: $x
                    };
                    const attrs = {
                        begin,
                        size
                    };
                    return ENGINE.runKernel(Slice, inputs, attrs);
                }
                const slice = op({
                    slice_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const mirrorPadGradConfig = {
                    kernelName: MirrorPad,
                    inputsToSave: ['x'],
                    gradFunc: (dy, saved, attrs) => {
                        // Pad introduces values around the original tensor, so the gradient
                        // slices the original shape out of the gradient.
                        const x = saved[0];
                        const { paddings } = attrs;
                        const begin = paddings.map(p => p[0]);
                        return {
                            x: () => slice(dy, begin, x.shape)
                        };
                    }
                };
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes floor of input `tf.Tensor` element-wise: `floor(x)`.
 *
 * ```js
 * const x = tf.tensor1d([.6, 1.1, -3.3]);
 *
 * x.floor().print();  // or tf.floor(x)
 * ```
 * @param x The input tensor.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function floor_(x) {
                    const $x = convertToTensor(x, 'x', 'floor', 'float32');
                    const inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(Floor, inputs);
                }
                const floor = op({
                    floor_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const modGradConfig = {
                    kernelName: Mod,
                    inputsToSave: ['a', 'b'],
                    gradFunc: (dy, saved) => {
                        const [a, b] = saved;
                        const outShape = assertAndGetBroadcastShape(a.shape, b.shape);
                        const derA = () => {
                            const reduceAxes = getReductionAxes(a.shape, outShape);
                            if (reduceAxes.length > 0) {
                                return reshape(sum$1(dy, reduceAxes), a.shape);
                            }
                            return dy;
                        }
                            ;
                        const derB = () => {
                            const res = mul(dy, neg(floor(div(a, b))));
                            const reduceAxes = getReductionAxes(b.shape, outShape);
                            if (reduceAxes.length > 0) {
                                return reshape(sum$1(res, reduceAxes), b.shape);
                            }
                            return res;
                        }
                            ;
                        return {
                            a: derA,
                            b: derB
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const multiplyGradConfig = {
                    kernelName: Multiply,
                    inputsToSave: ['a', 'b'],
                    gradFunc: (dy, saved) => {
                        const [a, b] = saved;
                        const outShape = assertAndGetBroadcastShape(a.shape, b.shape);
                        const derA = () => {
                            const res = mul(dy, cast(b, 'float32'));
                            const reduceAxes = getReductionAxes(a.shape, outShape);
                            if (reduceAxes.length > 0) {
                                return reshape(sum$1(res, reduceAxes), a.shape);
                            }
                            return res;
                        }
                            ;
                        const derB = () => {
                            const res = mul(dy, cast(a, 'float32'));
                            const reduceAxes = getReductionAxes(b.shape, outShape);
                            if (reduceAxes.length > 0) {
                                return reshape(sum$1(res, reduceAxes), b.shape);
                            }
                            return res;
                        }
                            ;
                        return {
                            a: derA,
                            b: derB
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const negGradConfig = {
                    kernelName: Neg,
                    gradFunc: dy => {
                        return {
                            x: () => neg(dy)
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const oneHotGradConfig = {
                    kernelName: OneHot,
                    inputsToSave: ['indices'],
                    gradFunc: (dy, saved) => {
                        const indices = saved[0];
                        return {
                            indices: () => zeros(indices.shape, 'float32')
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const onesLikeGradConfig = {
                    kernelName: OnesLike,
                    gradFunc: dy => {
                        return {
                            x: () => zerosLike(dy)
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Unstacks a `tf.Tensor` of rank-`R` into a list of rank-`(R-1)` `tf.Tensor`s.
 *
 * ```js
 * const a = tf.tensor2d([1, 2, 3, 4], [2, 2]);
 *
 * tf.unstack(a).forEach(tensor => tensor.print());
 * ```
 *
 * @param x A tensor object.
 * @param axis The axis to unstack along. Defaults to 0 (the first dim).
 *
 * @doc {heading: 'Tensors', subheading: 'Slicing and Joining'}
 */
                function unstack_(x, axis = 0) {
                    const $x = convertToTensor(x, 'x', 'unstack', 'string_or_numeric');
                    assert(axis >= -$x.shape.length && axis < $x.shape.length, () => `Axis = ${axis} is not in [-${$x.shape.length}, ${$x.shape.length})`);
                    const inputs = {
                        value: $x
                    };
                    const attrs = {
                        axis
                    };
                    return ENGINE.runKernel(Unpack, inputs, attrs);
                }
                const unstack = op({
                    unstack_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const packGradConfig = {
                    kernelName: Pack,
                    saveAllInputs: true,
                    gradFunc: (dy, saved, attrs) => {
                        const { axis } = attrs;
                        const derTensors = unstack(dy, axis);
                        return derTensors.map(t => () => t);
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const padV2GradConfig = {
                    kernelName: PadV2,
                    inputsToSave: ['x'],
                    gradFunc: (dy, saved, attrs) => {
                        // Pad introduces values around the original tensor, so the gradient
                        // slices the original shape out of the gradient.
                        const x = saved[0];
                        const { paddings } = attrs;
                        const begin = paddings.map(p => p[0]);
                        return {
                            x: () => slice(dy, begin, x.shape)
                        };
                    }
                };
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes natural logarithm of the input `tf.Tensor` element-wise: `ln(x)`
 *
 * ```js
 * const x = tf.tensor1d([1, 2, Math.E]);
 *
 * x.log().print();  // or tf.log(x)
 * ```
 * @param x The input tensor.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function log_(x) {
                    const $x = convertToTensor(x, 'x', 'log', 'float32');
                    const inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(Log, inputs);
                }
                const log$1 = op({
                    log_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the power of one `tf.Tensor` to another. Supports broadcasting.
 *
 * Given a `tf.Tensor` x and a `tf.Tensor` y, this operation computes x^y for
 * corresponding elements in x and y. The result's dtype will be the upcasted
 * type of the `base` and `exp` dtypes.
 *
 * ```js
 * const a = tf.tensor([[2, 3], [4, 5]])
 * const b = tf.tensor([[1, 2], [3, 0]]).toInt();
 *
 * a.pow(b).print();  // or tf.pow(a, b)
 * ```
 *
 * ```js
 * const a = tf.tensor([[1, 2], [3, 4]])
 * const b = tf.tensor(2).toInt();
 *
 * a.pow(b).print();  // or tf.pow(a, b)
 * ```
 * We also expose `powStrict` which has the same signature as this op and
 * asserts that `base` and `exp` are the same shape (does not broadcast).
 *
 * @param base The base `tf.Tensor` to pow element-wise.
 * @param exp The exponent `tf.Tensor` to pow element-wise.
 *
 * @doc {heading: 'Operations', subheading: 'Arithmetic'}
 */
                function pow_(base, exp) {
                    let $base = convertToTensor(base, 'base', 'pow');
                    let $exp = convertToTensor(exp, 'exp', 'pow');
                    [$base, $exp] = makeTypesMatch($base, $exp);
                    const inputs = {
                        a: $base,
                        b: $exp
                    };
                    return ENGINE.runKernel(Pow, inputs);
                }
                const pow = op({
                    pow_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const powGradConfig = {
                    kernelName: Pow,
                    inputsToSave: ['a', 'b'],
                    outputsToSave: [true],
                    gradFunc: (dy, saved) => {
                        const [a, b, y] = saved;
                        const base = a;
                        const exp = b;
                        const outShape = assertAndGetBroadcastShape(base.shape, exp.shape);
                        const derBase = () => {
                            const expFloat = cast(exp, 'float32');
                            let res = mul(dy, mul(expFloat, pow(base, sub(expFloat, scalar(1)))));
                            const reduceAxes = getReductionAxes(base.shape, outShape);
                            if (reduceAxes.length > 0) {
                                res = sum$1(res, reduceAxes);
                            }
                            return reshape(res, base.shape);
                        }
                            ;
                        const derExp = () => {
                            const condition = greater(base, 0);
                            const logBase = where(condition, log$1(base), zerosLike(base));
                            let res = mul(dy, mul(y, logBase));
                            const reduceAxes = getReductionAxes(exp.shape, outShape);
                            if (reduceAxes.length > 0) {
                                res = sum$1(res, reduceAxes);
                            }
                            return reshape(res, exp.shape);
                        }
                            ;
                        return {
                            a: derBase,
                            b: derExp
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const preluGradConfig = {
                    kernelName: Prelu,
                    inputsToSave: ['x', 'alpha'],
                    gradFunc: (dy, saved) => {
                        const [x, alpha] = saved;
                        const mask = greater(x, 0);
                        return {
                            x: () => where(mask, dy, mul(dy, alpha)),
                            alpha: () => {
                                let res = where(mask, zerosLike(dy), mul(dy, x));
                                const reduceAxes = getReductionAxes(alpha.shape, dy.shape);
                                if (reduceAxes.length > 0) {
                                    res = sum$1(res, reduceAxes);
                                }
                                return reshape(res, alpha.shape);
                            }
                        };
                    }
                };
                /**
 * @license
 * Copyright 2017 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                // tslint:disable-next-line:no-any
                function _isNavigatorDefined() {
                    return typeof navigator !== 'undefined' && navigator != null;
                }
                let isMobileMockValue;
                function mockIsMobile(value) {
                    isMobileMockValue = value;
                }
                function isMobile(nav) {
                    if (isMobileMockValue !== undefined) {
                        return isMobileMockValue;
                    }
                    if (nav || _isNavigatorDefined()) {
                        if (!nav) {
                            nav = navigator;
                        }
                        if (nav.product === 'ReactNative') {
                            return true;
                        }
                        const a = nav.userAgent || nav.vendor || (// tslint:disable-next-line:no-any
                            typeof window !== 'undefined' ? window.opera : '');
                        // Use `navigator.userAgentData.mobile` as fallback.
                        if (!a) {
                            // tslint:disable-next-line:no-any
                            const navAny = nav;
                            return navAny.userAgentData && navAny.userAgentData.mobile;
                        }
                        // tslint:disable-next-line:max-line-length
                        return /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a) || // tslint:disable-next-line:max-line-length
                            /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0, 4));
                    }
                    return false;
                }
                function isBrowser() {
                    return typeof window !== 'undefined' && window.document != null || //@ts-ignore
                        typeof WorkerGlobalScope !== 'undefined';
                }
                /**
 * @license
 * Copyright 2019 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const ENV$1 = env();
                /**
 * This file contains environment-related flag registrations.
 */
                /** Whether to enable debug mode. */
                ENV$1.registerFlag('DEBUG', () => false, debugValue => {
                    if (debugValue) {
                        console.warn('Debugging mode is ON. The output of every math call will ' + 'be downloaded to CPU and checked for NaNs. ' + 'This significantly impacts performance.');
                    }
                }
                );
                /** Whether we are in a browser (as versus, say, node.js) environment. */
                ENV$1.registerFlag('IS_BROWSER', () => isBrowser());
                /** Whether we are in a browser (as versus, say, node.js) environment. */
                ENV$1.registerFlag('IS_NODE', () => typeof process !== 'undefined' && typeof process.versions !== 'undefined' && typeof process.versions.node !== 'undefined');
                /** Whether this browser is Chrome. */
                ENV$1.registerFlag('IS_CHROME', () => typeof navigator !== 'undefined' && navigator != null && navigator.userAgent != null && /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor));
                /**
 * True when the environment is "production" where we disable safety checks
 * to gain performance.
 */
                ENV$1.registerFlag('PROD', () => false);
                /**
 * Whether to do sanity checks when inferring a shape from user-provided
 * values, used when creating a new tensor.
 */
                ENV$1.registerFlag('TENSORLIKE_CHECK_SHAPE_CONSISTENCY', () => ENV$1.getBool('DEBUG'));
                /** Whether deprecation warnings are enabled. */
                ENV$1.registerFlag('DEPRECATION_WARNINGS_ENABLED', () => true);
                /** True if running unit tests. */
                ENV$1.registerFlag('IS_TEST', () => false);
                /** Whether to check computation result for errors. */
                ENV$1.registerFlag('CHECK_COMPUTATION_FOR_ERRORS', () => true);
                /** Whether the backend needs to wrap input to imageBitmap. */
                ENV$1.registerFlag('WRAP_TO_IMAGEBITMAP', () => false);
                /** Whether to enable canvas2d willReadFrequently for GPU backends */
                ENV$1.registerFlag('CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU', () => false);
                /** Whether to use setTimeoutCustom */
                ENV$1.registerFlag('USE_SETTIMEOUTCUSTOM', () => false);
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Creates a `tf.Tensor` with the provided values, shape and dtype.
 *
 * ```js
 * // Pass an array of values to create a vector.
 * tf.tensor([1, 2, 3, 4]).print();
 * ```
 *
 * ```js
 * // Pass a nested array of values to make a matrix or a higher
 * // dimensional tensor.
 * tf.tensor([[1, 2], [3, 4]]).print();
 * ```
 *
 * ```js
 * // Pass a flat array and specify a shape yourself.
 * tf.tensor([1, 2, 3, 4], [2, 2]).print();
 * ```
 *
 * ```js
 * // Pass a `WebGLData` object and specify a shape yourself.
 *
 * // This makes it possible for TF.js applications to avoid GPU / CPU sync.
 * // For example, if your application includes a preprocessing step on the GPU,
 * // you could upload the GPU output directly to TF.js, rather than first
 * // downloading the values.
 *
 * // Example for WebGL2:
 * const customCanvas = document.createElement('canvas');
 * const customBackend = new tf.MathBackendWebGL(customCanvas);
 * tf.registerBackend('custom-webgl', () => customBackend);
 * await tf.setBackend('custom-webgl');
 * const gl = customBackend.gpgpu.gl;
 * const texture = gl.createTexture();
 * const tex2d = gl.TEXTURE_2D;
 * const width = 2;
 * const height = 2;
 *
 * gl.bindTexture(tex2d, texture);
 * gl.texParameteri(tex2d, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
 * gl.texParameteri(tex2d, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
 * gl.texParameteri(tex2d, gl.TEXTURE_MIN_FILTER, gl.NEAREST);
 * gl.texParameteri(tex2d, gl.TEXTURE_MAG_FILTER, gl.NEAREST);
 * gl.texImage2D(
 *   tex2d, 0, gl.RGBA32F, // internalFormat
 *   width, height, 0,
 *   gl.RGBA, // textureFormat
 *   gl.FLOAT, // textureType
 *   new Float32Array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15])
 * );
 *
 * // Currently, the `texture` has 4 pixels:
 * // Pixel0 is {R:0, G:1, B:2, A:3}
 * // Pixel1 is {R:4, G:5, B:6, A:7}
 * // Pixel2 is {R:8, G:9, B:10, A:11}
 * // Pixel3 is {R:12, G:13, B:14, A:15}
 *
 * const logicalShape = [height * width * 2];
 * const a = tf.tensor({texture, height, width, channels: 'BR'}, logicalShape);
 * // Tensor value will be [2, 0, 6, 4, 10, 8, 14, 12], since [2, 0] is the
 * // values of 'B' and 'R' channels of Pixel0, [6, 4] is the values of 'B' and
 * 'R'
 * // channels of Pixel1...
 *
 * // For postprocessing on the GPU, it's possible to retrieve the texture
 * // backing any tensor by calling the tensor's `dataToGPU` method like
 * // so:
 *
 * const tex = a.dataToGPU();
 * ```
 * @param values The values of the tensor. Can be nested array of numbers,
 *     or a flat array, or a `TypedArray`, or a `WebGLData` object. If the
 * values are strings, they will be encoded as utf-8 and kept as `Uint8Array[]`.
 * If the values is a `WebGLData` object, the dtype could only be 'float32' or
 * 'int32' and the object has to have: 1. texture, a `WebGLTexture`, the texture
 * must share the same `WebGLRenderingContext` with TFJS's WebGL backend (you
 * could create a custom WebGL backend from your texture's canvas) and the
 * internal texture format for the input texture must be floating point or
 * normalized integer; 2. height, the height of the texture; 3. width, the width
 * of the texture; 4. channels, a non-empty subset of 'RGBA', indicating the
 * values of which channels will be passed to the tensor, such as 'R' or 'BR'
 * (The order of the channels affect the order of tensor values. ). (If the
 * values passed from texture is less than the tensor size, zeros will be padded
 * at the rear.)
 * @param shape The shape of the tensor. Optional. If not provided,
 *   it is inferred from `values`.
 * @param dtype The data type.
 *
 * @doc {heading: 'Tensors', subheading: 'Creation'}
 */
                function tensor(values, shape, dtype) {
                    const inferredShape = inferShape(values, dtype);
                    return makeTensor(values, shape, inferredShape, dtype);
                }
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /* Type definitions for exporting and importing of models. */
                /**
 * A map from Tensor dtype to number of bytes per element of the Tensor.
 */
                const DTYPE_VALUE_SIZE_MAP = {
                    'float32': 4,
                    'float16': 2,
                    'int32': 4,
                    'uint16': 2,
                    'uint8': 1,
                    'bool': 1,
                    'complex64': 8
                };
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /** Number of bytes reserved for the length of the string. (32bit integer). */
                const NUM_BYTES_STRING_LENGTH = 4;
                /**
 * Encode a map from names to weight values as an ArrayBuffer, along with an
 * `Array` of `WeightsManifestEntry` as specification of the encoded weights.
 *
 * This function does not perform sharding.
 *
 * This function is the reverse of `decodeWeights`.
 *
 * @param tensors A map ("dict") from names to tensors.
 * @param group Group to which the weights belong (optional).
 * @returns A `Promise` of
 *   - A flat `ArrayBuffer` with all the binary values of the `Tensor`s
 *     concatenated.
 *   - An `Array` of `WeightManifestEntry`s, carrying information including
 *     tensor names, `dtype`s and shapes.
 * @throws Error: on unsupported tensor `dtype`.
 */
                async function encodeWeights(tensors, group) {
                    // TODO(adarob, cais): Support quantization.
                    const specs = [];
                    const dataPromises = [];
                    const names = Array.isArray(tensors) ? tensors.map(tensor => tensor.name) : Object.keys(tensors);
                    for (let i = 0; i < names.length; ++i) {
                        const name = names[i];
                        const t = Array.isArray(tensors) ? tensors[i].tensor : tensors[name];
                        if (t.dtype !== 'float32' && t.dtype !== 'int32' && t.dtype !== 'bool' && t.dtype !== 'string' && t.dtype !== 'complex64') {
                            throw new Error(`Unsupported dtype in weight '${name}': ${t.dtype}`);
                        }
                        const spec = {
                            name,
                            shape: t.shape,
                            dtype: t.dtype
                        };
                        if (t.dtype === 'string') {
                            const utf8bytes = new Promise(async resolve => {
                                const vals = await t.bytes();
                                const totalNumBytes = vals.reduce((p, c) => p + c.length, 0) + NUM_BYTES_STRING_LENGTH * vals.length;
                                const bytes = new Uint8Array(totalNumBytes);
                                let offset = 0;
                                for (let i = 0; i < vals.length; i++) {
                                    const val = vals[i];
                                    const bytesOfLength = new Uint8Array(new Uint32Array([val.length]).buffer);
                                    bytes.set(bytesOfLength, offset);
                                    offset += NUM_BYTES_STRING_LENGTH;
                                    bytes.set(val, offset);
                                    offset += val.length;
                                }
                                resolve(bytes);
                            }
                            );
                            dataPromises.push(utf8bytes);
                        } else {
                            dataPromises.push(t.data());
                        }
                        if (group != null) {
                            spec.group = group;
                        }
                        specs.push(spec);
                    }
                    const tensorValues = await Promise.all(dataPromises);
                    return {
                        data: concatenateTypedArrays(tensorValues),
                        specs
                    };
                }
                /**
 * Decode flat ArrayBuffer as weights.
 *
 * This function does not handle sharding.
 *
 * This function is the reverse of `encodeWeights`.
 *
 * @param buffer A flat ArrayBuffer carrying the binary values of the tensors
 *   concatenated in the order specified in `specs`.
 * @param specs Specifications of the names, dtypes and shapes of the tensors
 *   whose value are encoded by `buffer`.
 * @return A map from tensor name to tensor value, with the names corresponding
 *   to names in `specs`.
 * @throws Error, if any of the tensors has unsupported dtype.
 */
                function decodeWeights(buffer, specs) {
                    // TODO(adarob, cais): Support quantization.
                    const out = {};
                    let float16Decode;
                    let offset = 0;
                    for (const spec of specs) {
                        const name = spec.name;
                        const dtype = spec.dtype;
                        const shape = spec.shape;
                        const size = sizeFromShape(shape);
                        let values;
                        if ('quantization' in spec) {
                            const quantization = spec.quantization;
                            if (quantization.dtype === 'uint8' || quantization.dtype === 'uint16') {
                                if (!('min' in quantization && 'scale' in quantization)) {
                                    throw new Error(`Weight ${spec.name} with quantization ${quantization.dtype} ` + `doesn't have corresponding metadata min and scale.`);
                                }
                            } else if (quantization.dtype === 'float16') {
                                if (dtype !== 'float32') {
                                    throw new Error(`Weight ${spec.name} is quantized with ${quantization.dtype} ` + `which only supports weights of type float32 not ${dtype}.`);
                                }
                            } else {
                                throw new Error(`Weight ${spec.name} has unknown ` + `quantization dtype ${quantization.dtype}. ` + `Supported quantization dtypes are: ` + `'uint8', 'uint16', and 'float16'.`);
                            }
                            const quantizationSizeFactor = DTYPE_VALUE_SIZE_MAP[quantization.dtype];
                            const byteBuffer = buffer.slice(offset, offset + size * quantizationSizeFactor);
                            const quantizedArray = quantization.dtype === 'uint8' ? new Uint8Array(byteBuffer) : new Uint16Array(byteBuffer);
                            if (dtype === 'float32') {
                                if (quantization.dtype === 'uint8' || quantization.dtype === 'uint16') {
                                    values = new Float32Array(quantizedArray.length);
                                    for (let i = 0; i < quantizedArray.length; i++) {
                                        const v = quantizedArray[i];
                                        values[i] = v * quantization.scale + quantization.min;
                                    }
                                } else if (quantization.dtype === 'float16') {
                                    if (float16Decode === undefined) {
                                        float16Decode = getFloat16Decoder();
                                    }
                                    values = float16Decode(quantizedArray);
                                } else {
                                    throw new Error(`Unsupported quantization type ${quantization.dtype} ` + `for weight type float32.`);
                                }
                            } else if (dtype === 'int32') {
                                if (quantization.dtype !== 'uint8' && quantization.dtype !== 'uint16') {
                                    throw new Error(`Unsupported quantization type ${quantization.dtype} ` + `for weight type int32.`);
                                }
                                values = new Int32Array(quantizedArray.length);
                                for (let i = 0; i < quantizedArray.length; i++) {
                                    const v = quantizedArray[i];
                                    values[i] = Math.round(v * quantization.scale + quantization.min);
                                }
                            } else {
                                throw new Error(`Unsupported dtype in weight '${name}': ${dtype}`);
                            }
                            offset += size * quantizationSizeFactor;
                        } else if (dtype === 'string') {
                            const size = sizeFromShape(spec.shape);
                            values = [];
                            for (let i = 0; i < size; i++) {
                                const byteLength = new Uint32Array(buffer.slice(offset, offset + NUM_BYTES_STRING_LENGTH))[0];
                                offset += NUM_BYTES_STRING_LENGTH;
                                const bytes = new Uint8Array(buffer.slice(offset, offset + byteLength));
                                values.push(bytes);
                                offset += byteLength;
                            }
                        } else {
                            const dtypeFactor = DTYPE_VALUE_SIZE_MAP[dtype];
                            const byteBuffer = buffer.slice(offset, offset + size * dtypeFactor);
                            if (dtype === 'float32') {
                                values = new Float32Array(byteBuffer);
                            } else if (dtype === 'int32') {
                                values = new Int32Array(byteBuffer);
                            } else if (dtype === 'bool') {
                                values = new Uint8Array(byteBuffer);
                            } else if (dtype === 'complex64') {
                                values = new Float32Array(byteBuffer);
                                const real = new Float32Array(values.length / 2);
                                const image = new Float32Array(values.length / 2);
                                for (let i = 0; i < real.length; i++) {
                                    real[i] = values[i * 2];
                                    image[i] = values[i * 2 + 1];
                                }
                                const realTensor = tensor(real, shape, 'float32');
                                const imageTensor = tensor(image, shape, 'float32');
                                out[name] = complex(realTensor, imageTensor);
                                realTensor.dispose();
                                imageTensor.dispose();
                            } else {
                                throw new Error(`Unsupported dtype in weight '${name}': ${dtype}`);
                            }
                            offset += size * dtypeFactor;
                        }
                        if (dtype !== 'complex64') {
                            out[name] = tensor(values, shape, dtype);
                        }
                    }
                    return out;
                }
                /**
 * Concatenate TypedArrays into an ArrayBuffer.
 */
                function concatenateTypedArrays(xs) {
                    // TODO(adarob, cais): Support quantization.
                    if (xs === null) {
                        throw new Error(`Invalid input value: ${JSON.stringify(xs)}`);
                    }
                    let totalByteLength = 0;
                    // `normalizedXs` is here for this reason: a `TypedArray`'s `buffer'
                    // can have a different byte length from that of the `TypedArray` itself,
                    // for example, when the `TypedArray` is created from an offset in an
                    // `ArrayBuffer`. `normliazedXs` holds `TypedArray`s whose `buffer`s match
                    // the `TypedArray` in byte length. If an element of `xs` does not show
                    // this property, a new `TypedArray` that satisfy this property will be
                    // constructed and pushed into `normalizedXs`.
                    const normalizedXs = [];
                    xs.forEach(x => {
                        totalByteLength += x.byteLength;
                        // tslint:disable:no-any
                        normalizedXs.push(x.byteLength === x.buffer.byteLength ? x : new x.constructor(x));
                        if (!(x instanceof Float32Array || x instanceof Int32Array || x instanceof Uint8Array)) {
                            throw new Error(`Unsupported TypedArray subtype: ${x.constructor.name}`);
                        }
                        // tslint:enable:no-any
                    }
                    );
                    const y = new Uint8Array(totalByteLength);
                    let offset = 0;
                    normalizedXs.forEach(x => {
                        y.set(new Uint8Array(x.buffer), offset);
                        offset += x.byteLength;
                    }
                    );
                    return y.buffer;
                }
                // Use Buffer on Node.js instead of Blob/atob/btoa
                const useNodeBuffer = typeof Buffer !== 'undefined' && (typeof Blob === 'undefined' || typeof atob === 'undefined' || typeof btoa === 'undefined');
                /**
 * Calculate the byte length of a JavaScript string.
 *
 * Note that a JavaScript string can contain wide characters, therefore the
 * length of the string is not necessarily equal to the byte length.
 *
 * @param str Input string.
 * @returns Byte length.
 */
                function stringByteLength(str) {
                    if (useNodeBuffer) {
                        return Buffer.byteLength(str);
                    }
                    return new Blob([str]).size;
                }
                /**
 * Encode an ArrayBuffer as a base64 encoded string.
 *
 * @param buffer `ArrayBuffer` to be converted.
 * @returns A string that base64-encodes `buffer`.
 */
                function arrayBufferToBase64String(buffer) {
                    if (useNodeBuffer) {
                        return Buffer.from(buffer).toString('base64');
                    }
                    const buf = new Uint8Array(buffer);
                    let s = '';
                    for (let i = 0, l = buf.length; i < l; i++) {
                        s += String.fromCharCode(buf[i]);
                    }
                    return btoa(s);
                }
                /**
 * Decode a base64 string as an ArrayBuffer.
 *
 * @param str Base64 string.
 * @returns Decoded `ArrayBuffer`.
 */
                function base64StringToArrayBuffer(str) {
                    if (useNodeBuffer) {
                        const buf = Buffer.from(str, 'base64');
                        return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);
                    }
                    const s = atob(str);
                    const buffer = new Uint8Array(s.length);
                    for (let i = 0; i < s.length; ++i) {
                        buffer.set([s.charCodeAt(i)], i);
                    }
                    return buffer.buffer;
                }
                /**
 * Concatenate a number of ArrayBuffers into one.
 *
 * @param buffers A number of array buffers to concatenate.
 * @returns Result of concatenating `buffers` in order.
 */
                function concatenateArrayBuffers(buffers) {
                    if (buffers.length === 1) {
                        return buffers[0];
                    }
                    let totalByteLength = 0;
                    buffers.forEach(buffer => {
                        totalByteLength += buffer.byteLength;
                    }
                    );
                    const temp = new Uint8Array(totalByteLength);
                    let offset = 0;
                    buffers.forEach(buffer => {
                        temp.set(new Uint8Array(buffer), offset);
                        offset += buffer.byteLength;
                    }
                    );
                    return temp.buffer;
                }
                /**
 * Get the basename of a path.
 *
 * Behaves in a way analogous to Linux's basename command.
 *
 * @param path
 */
                function basename(path) {
                    const SEPARATOR = '/';
                    path = path.trim();
                    while (path.endsWith(SEPARATOR)) {
                        path = path.slice(0, path.length - 1);
                    }
                    const items = path.split(SEPARATOR);
                    return items[items.length - 1];
                }
                /**
 * Create `ModelJSON` from `ModelArtifacts`.
 *
 * @param artifacts Model artifacts, describing the model and its weights.
 * @param manifest Weight manifest, describing where the weights of the
 *     `ModelArtifacts` are stored, and some metadata about them.
 * @returns Object representing the `model.json` file describing the model
 *     artifacts and weights
 */
                function getModelJSONForModelArtifacts(artifacts, manifest) {
                    const result = {
                        modelTopology: artifacts.modelTopology,
                        format: artifacts.format,
                        generatedBy: artifacts.generatedBy,
                        convertedBy: artifacts.convertedBy,
                        weightsManifest: manifest
                    };
                    if (artifacts.signature != null) {
                        result.signature = artifacts.signature;
                    }
                    if (artifacts.userDefinedMetadata != null) {
                        result.userDefinedMetadata = artifacts.userDefinedMetadata;
                    }
                    if (artifacts.modelInitializer != null) {
                        result.modelInitializer = artifacts.modelInitializer;
                    }
                    if (artifacts.initializerSignature != null) {
                        result.initializerSignature = artifacts.initializerSignature;
                    }
                    if (artifacts.trainingConfig != null) {
                        result.trainingConfig = artifacts.trainingConfig;
                    }
                    return result;
                }
                /**
 * Create `ModelArtifacts` from a JSON file and weights.
 *
 * @param modelJSON Object containing the parsed JSON of `model.json`
 * @param weightSpecs The list of WeightsManifestEntry for the model. Must be
 *     passed if the modelJSON has a weightsManifest.
 * @param weightData An ArrayBuffer of weight data for the model corresponding
 *     to the weights in weightSpecs. Must be passed if the modelJSON has a
 *     weightsManifest.
 * @returns A Promise of the `ModelArtifacts`, as described by the JSON file.
 */
                function getModelArtifactsForJSONSync(modelJSON, weightSpecs, weightData) {
                    const modelArtifacts = {
                        modelTopology: modelJSON.modelTopology,
                        format: modelJSON.format,
                        generatedBy: modelJSON.generatedBy,
                        convertedBy: modelJSON.convertedBy
                    };
                    if (modelJSON.trainingConfig != null) {
                        modelArtifacts.trainingConfig = modelJSON.trainingConfig;
                    }
                    if (modelJSON.weightsManifest != null) {
                        if (!weightSpecs) {
                            throw new Error('modelJSON has weightsManifest but weightSpecs is null');
                        }
                        if (!weightData) {
                            throw new Error('modelJSON has weightsManifest but weightData is null');
                        }
                        modelArtifacts.weightSpecs = weightSpecs;
                        modelArtifacts.weightData = weightData;
                    }
                    if (modelJSON.signature != null) {
                        modelArtifacts.signature = modelJSON.signature;
                    }
                    if (modelJSON.userDefinedMetadata != null) {
                        modelArtifacts.userDefinedMetadata = modelJSON.userDefinedMetadata;
                    }
                    if (modelJSON.modelInitializer != null) {
                        modelArtifacts.modelInitializer = modelJSON.modelInitializer;
                    }
                    if (modelJSON.initializerSignature != null) {
                        modelArtifacts.initializerSignature = modelJSON.initializerSignature;
                    }
                    return modelArtifacts;
                }
                /**
 * Create `ModelArtifacts` from a JSON file.
 *
 * @param modelJSON Object containing the parsed JSON of `model.json`
 * @param loadWeights Function that takes the JSON file's weights manifest,
 *     reads weights from the listed path(s), and returns a Promise of the
 *     weight manifest entries along with the weights data.
 * @returns A Promise of the `ModelArtifacts`, as described by the JSON file.
 */
                async function getModelArtifactsForJSON(modelJSON, loadWeights) {
                    let weightSpecs;
                    let weightData;
                    if (modelJSON.weightsManifest != null) {
                        [weightSpecs, weightData] = await loadWeights(modelJSON.weightsManifest);
                    }
                    return getModelArtifactsForJSONSync(modelJSON, weightSpecs, weightData);
                }
                /**
 * Populate ModelArtifactsInfo fields for a model with JSON topology.
 * @param modelArtifacts
 * @returns A ModelArtifactsInfo object.
 */
                function getModelArtifactsInfoForJSON(modelArtifacts) {
                    if (modelArtifacts.modelTopology instanceof ArrayBuffer) {
                        throw new Error('Expected JSON model topology, received ArrayBuffer.');
                    }
                    return {
                        dateSaved: new Date(),
                        modelTopologyType: 'JSON',
                        modelTopologyBytes: modelArtifacts.modelTopology == null ? 0 : stringByteLength(JSON.stringify(modelArtifacts.modelTopology)),
                        weightSpecsBytes: modelArtifacts.weightSpecs == null ? 0 : stringByteLength(JSON.stringify(modelArtifacts.weightSpecs)),
                        weightDataBytes: modelArtifacts.weightData == null ? 0 : modelArtifacts.weightData.byteLength
                    };
                }
                /**
 * Concatenate the weights stored in a WeightsManifestConfig into a list of
 * WeightsManifestEntry
 *
 * @param weightsManifest The WeightsManifestConfig to extract weights from.
 * @returns A list of WeightsManifestEntry of the weights in the weightsManifest
 */
                function getWeightSpecs(weightsManifest) {
                    const weightSpecs = [];
                    for (const entry of weightsManifest) {
                        weightSpecs.push(...entry.weights);
                    }
                    return weightSpecs;
                }
                /**
 * Computes mantisa table for casting Float16 to Float32
 * See http://www.fox-toolkit.org/ftp/fasthalffloatconversion.pdf
 *
 * @returns Uint32Array, 2048 mantissa lookup values.
 */
                function computeFloat16MantisaTable() {
                    const convertMantissa = i => {
                        let m = i << 13;
                        let e = 0;
                        while ((m & 0x00800000) === 0) {
                            e -= 0x00800000;
                            m <<= 1;
                        }
                        m &= ~0x00800000;
                        e += 0x38800000;
                        return m | e;
                    }
                        ;
                    const mantisaTable = new Uint32Array(2048);
                    mantisaTable[0] = 0;
                    for (let i = 1; i < 1024; i++) {
                        mantisaTable[i] = convertMantissa(i);
                    }
                    for (let i = 1024; i < 2048; i++) {
                        mantisaTable[i] = 0x38000000 + (i - 1024 << 13);
                    }
                    return mantisaTable;
                }
                /**
 * Computes exponent table for casting Float16 to Float32
 * See http://www.fox-toolkit.org/ftp/fasthalffloatconversion.pdf
 *
 * @returns Uint32Array, 64 exponent lookup values.
 */
                function computeFloat16ExponentTable() {
                    const exponentTable = new Uint32Array(64);
                    exponentTable[0] = 0;
                    exponentTable[31] = 0x47800000;
                    exponentTable[32] = 0x80000000;
                    exponentTable[63] = 0xc7800000;
                    for (let i = 1; i < 31; i++) {
                        exponentTable[i] = i << 23;
                    }
                    for (let i = 33; i < 63; i++) {
                        exponentTable[i] = 0x80000000 + (i - 32 << 23);
                    }
                    return exponentTable;
                }
                /**
 * Computes offset table for casting Float16 to Float32
 * See http://www.fox-toolkit.org/ftp/fasthalffloatconversion.pdf
 *
 * @returns Uint32Array, 6d offset values.
 */
                function computeFloat16OffsetTable() {
                    const offsetTable = new Uint32Array(64);
                    for (let i = 0; i < 64; i++) {
                        offsetTable[i] = 1024;
                    }
                    offsetTable[0] = offsetTable[32] = 0;
                    return offsetTable;
                }
                /**
 * Retrieve a Float16 decoder which will decode a ByteArray of Float16 values
 * to a Float32Array.
 *
 * @returns Function (buffer: Uint16Array) => Float32Array which decodes
 *          the Uint16Array of Float16 bytes to a Float32Array.
 */
                function getFloat16Decoder() {
                    // Algorithm is based off of
                    // http://www.fox-toolkit.org/ftp/fasthalffloatconversion.pdf
                    // Cache lookup tables
                    const mantisaTable = computeFloat16MantisaTable();
                    const exponentTable = computeFloat16ExponentTable();
                    const offsetTable = computeFloat16OffsetTable();
                    return quantizedArray => {
                        const buffer = new ArrayBuffer(4 * quantizedArray.length);
                        const bufferUint32View = new Uint32Array(buffer);
                        for (let index = 0; index < quantizedArray.length; index++) {
                            const float16Bits = quantizedArray[index];
                            const float32Bits = mantisaTable[offsetTable[float16Bits >> 10] + (float16Bits & 0x3ff)] + exponentTable[float16Bits >> 10];
                            bufferUint32View[index] = float32Bits;
                        }
                        return new Float32Array(buffer);
                    }
                        ;
                }
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                class IORouterRegistry {
                    constructor() {
                        this.saveRouters = [];
                        this.loadRouters = [];
                    }
                    static getInstance() {
                        if (IORouterRegistry.instance == null) {
                            IORouterRegistry.instance = new IORouterRegistry();
                        }
                        return IORouterRegistry.instance;
                    }
                    /**
     * Register a save-handler router.
     *
     * @param saveRouter A function that maps a URL-like string onto an instance
     * of `IOHandler` with the `save` method defined or `null`.
     */
                    static registerSaveRouter(saveRouter) {
                        IORouterRegistry.getInstance().saveRouters.push(saveRouter);
                    }
                    /**
     * Register a load-handler router.
     *
     * @param loadRouter A function that maps a URL-like string onto an instance
     * of `IOHandler` with the `load` method defined or `null`.
     */
                    static registerLoadRouter(loadRouter) {
                        IORouterRegistry.getInstance().loadRouters.push(loadRouter);
                    }
                    /**
     * Look up IOHandler for saving, given a URL-like string.
     *
     * @param url
     * @returns If only one match is found, an instance of IOHandler with the
     * `save` method defined. If no match is found, `null`.
     * @throws Error, if more than one match is found.
     */
                    static getSaveHandlers(url) {
                        return IORouterRegistry.getHandlers(url, 'save');
                    }
                    /**
     * Look up IOHandler for loading, given a URL-like string.
     *
     * @param url
     * @param loadOptions Optional, custom load options.
     * @returns All valid handlers for `url`, given the currently registered
     *   handler routers.
     */
                    static getLoadHandlers(url, loadOptions) {
                        return IORouterRegistry.getHandlers(url, 'load', loadOptions);
                    }
                    static getHandlers(url, handlerType, loadOptions) {
                        const validHandlers = [];
                        const routers = handlerType === 'load' ? IORouterRegistry.getInstance().loadRouters : IORouterRegistry.getInstance().saveRouters;
                        routers.forEach(router => {
                            const handler = router(url, loadOptions);
                            if (handler !== null) {
                                validHandlers.push(handler);
                            }
                        }
                        );
                        return validHandlers;
                    }
                }
                const registerSaveRouter = loudRouter => IORouterRegistry.registerSaveRouter(loudRouter);
                const registerLoadRouter = loudRouter => IORouterRegistry.registerLoadRouter(loudRouter);
                const getSaveHandlers = url => IORouterRegistry.getSaveHandlers(url);
                const getLoadHandlers = (url, loadOptions) => IORouterRegistry.getLoadHandlers(url, loadOptions);
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const DATABASE_NAME = 'tensorflowjs';
                const DATABASE_VERSION = 1;
                // Model data and ModelArtifactsInfo (metadata) are stored in two separate
                // stores for efficient access of the list of stored models and their metadata.
                // 1. The object store for model data: topology, weights and weight manifests.
                const MODEL_STORE_NAME = 'models_store';
                // 2. The object store for ModelArtifactsInfo, including meta-information such
                //    as the type of topology (JSON vs binary), byte size of the topology, byte
                //    size of the weights, etc.
                const INFO_STORE_NAME = 'model_info_store';
                /**
 * Delete the entire database for tensorflow.js, including the models store.
 */
                async function deleteDatabase() {
                    const idbFactory = getIndexedDBFactory();
                    return new Promise((resolve, reject) => {
                        const deleteRequest = idbFactory.deleteDatabase(DATABASE_NAME);
                        deleteRequest.onsuccess = () => resolve();
                        deleteRequest.onerror = error => reject(error);
                    }
                    );
                }
                function getIndexedDBFactory() {
                    if (!env().getBool('IS_BROWSER')) {
                        // TODO(cais): Add more info about what IOHandler subtypes are available.
                        //   Maybe point to a doc page on the web and/or automatically determine
                        //   the available IOHandlers and print them in the error message.
                        throw new Error('Failed to obtain IndexedDB factory because the current environment' + 'is not a web browser.');
                    }
                    // tslint:disable-next-line:no-any
                    const theWindow = typeof window === 'undefined' ? self : window;
                    const factory = theWindow.indexedDB || theWindow.mozIndexedDB || theWindow.webkitIndexedDB || theWindow.msIndexedDB || theWindow.shimIndexedDB;
                    if (factory == null) {
                        throw new Error('The current browser does not appear to support IndexedDB.');
                    }
                    return factory;
                }
                function setUpDatabase(openRequest) {
                    const db = openRequest.result;
                    db.createObjectStore(MODEL_STORE_NAME, {
                        keyPath: 'modelPath'
                    });
                    db.createObjectStore(INFO_STORE_NAME, {
                        keyPath: 'modelPath'
                    });
                }
                /**
 * IOHandler subclass: Browser IndexedDB.
 *
 * See the doc string of `browserIndexedDB` for more details.
 */
                class BrowserIndexedDB {
                    constructor(modelPath) {
                        this.indexedDB = getIndexedDBFactory();
                        if (modelPath == null || !modelPath) {
                            throw new Error('For IndexedDB, modelPath must not be null, undefined or empty.');
                        }
                        this.modelPath = modelPath;
                    }
                    async save(modelArtifacts) {
                        // TODO(cais): Support saving GraphDef models.
                        if (modelArtifacts.modelTopology instanceof ArrayBuffer) {
                            throw new Error('BrowserLocalStorage.save() does not support saving model topology ' + 'in binary formats yet.');
                        }
                        return this.databaseAction(this.modelPath, modelArtifacts);
                    }
                    async load() {
                        return this.databaseAction(this.modelPath);
                    }
                    /**
     * Perform database action to put model artifacts into or read model artifacts
     * from IndexedDB object store.
     *
     * Whether the action is put or get depends on whether `modelArtifacts` is
     * specified. If it is specified, the action will be put; otherwise the action
     * will be get.
     *
     * @param modelPath A unique string path for the model.
     * @param modelArtifacts If specified, it will be the model artifacts to be
     *   stored in IndexedDB.
     * @returns A `Promise` of `SaveResult`, if the action is put, or a `Promise`
     *   of `ModelArtifacts`, if the action is get.
     */
                    databaseAction(modelPath, modelArtifacts) {
                        return new Promise((resolve, reject) => {
                            const openRequest = this.indexedDB.open(DATABASE_NAME, DATABASE_VERSION);
                            openRequest.onupgradeneeded = () => setUpDatabase(openRequest);
                            openRequest.onsuccess = () => {
                                const db = openRequest.result;
                                if (modelArtifacts == null) {
                                    // Read model out from object store.
                                    const modelTx = db.transaction(MODEL_STORE_NAME, 'readonly');
                                    const modelStore = modelTx.objectStore(MODEL_STORE_NAME);
                                    const getRequest = modelStore.get(this.modelPath);
                                    getRequest.onsuccess = () => {
                                        if (getRequest.result == null) {
                                            db.close();
                                            return reject(new Error(`Cannot find model with path '${this.modelPath}' ` + `in IndexedDB.`));
                                        } else {
                                            resolve(getRequest.result.modelArtifacts);
                                        }
                                    }
                                        ;
                                    getRequest.onerror = error => {
                                        db.close();
                                        return reject(getRequest.error);
                                    }
                                        ;
                                    modelTx.oncomplete = () => db.close();
                                } else {
                                    // Put model into object store.
                                    const modelArtifactsInfo = getModelArtifactsInfoForJSON(modelArtifacts);
                                    // First, put ModelArtifactsInfo into info store.
                                    const infoTx = db.transaction(INFO_STORE_NAME, 'readwrite');
                                    let infoStore = infoTx.objectStore(INFO_STORE_NAME);
                                    const putInfoRequest = infoStore.put({
                                        modelPath: this.modelPath,
                                        modelArtifactsInfo
                                    });
                                    let modelTx;
                                    putInfoRequest.onsuccess = () => {
                                        // Second, put model data into model store.
                                        modelTx = db.transaction(MODEL_STORE_NAME, 'readwrite');
                                        const modelStore = modelTx.objectStore(MODEL_STORE_NAME);
                                        const putModelRequest = modelStore.put({
                                            modelPath: this.modelPath,
                                            modelArtifacts,
                                            modelArtifactsInfo
                                        });
                                        putModelRequest.onsuccess = () => resolve({
                                            modelArtifactsInfo
                                        });
                                        putModelRequest.onerror = error => {
                                            // If the put-model request fails, roll back the info entry as
                                            // well.
                                            infoStore = infoTx.objectStore(INFO_STORE_NAME);
                                            const deleteInfoRequest = infoStore.delete(this.modelPath);
                                            deleteInfoRequest.onsuccess = () => {
                                                db.close();
                                                return reject(putModelRequest.error);
                                            }
                                                ;
                                            deleteInfoRequest.onerror = error => {
                                                db.close();
                                                return reject(putModelRequest.error);
                                            }
                                                ;
                                        }
                                            ;
                                    }
                                        ;
                                    putInfoRequest.onerror = error => {
                                        db.close();
                                        return reject(putInfoRequest.error);
                                    }
                                        ;
                                    infoTx.oncomplete = () => {
                                        if (modelTx == null) {
                                            db.close();
                                        } else {
                                            modelTx.oncomplete = () => db.close();
                                        }
                                    }
                                        ;
                                }
                            }
                                ;
                            openRequest.onerror = error => reject(openRequest.error);
                        }
                        );
                    }
                }
                BrowserIndexedDB.URL_SCHEME = 'indexeddb://';
                const indexedDBRouter = url => {
                    if (!env().getBool('IS_BROWSER')) {
                        return null;
                    } else {
                        if (!Array.isArray(url) && url.startsWith(BrowserIndexedDB.URL_SCHEME)) {
                            return browserIndexedDB(url.slice(BrowserIndexedDB.URL_SCHEME.length));
                        } else {
                            return null;
                        }
                    }
                }
                    ;
                IORouterRegistry.registerSaveRouter(indexedDBRouter);
                IORouterRegistry.registerLoadRouter(indexedDBRouter);
                /**
 * Creates a browser IndexedDB IOHandler for saving and loading models.
 *
 * ```js
 * const model = tf.sequential();
 * model.add(
 *     tf.layers.dense({units: 1, inputShape: [100], activation: 'sigmoid'}));
 *
 * const saveResult = await model.save('indexeddb://MyModel'));
 * console.log(saveResult);
 * ```
 *
 * @param modelPath A unique identifier for the model to be saved. Must be a
 *   non-empty string.
 * @returns An instance of `BrowserIndexedDB` (sublcass of `IOHandler`),
 *   which can be used with, e.g., `tf.Model.save`.
 */
                function browserIndexedDB(modelPath) {
                    return new BrowserIndexedDB(modelPath);
                }
                function maybeStripScheme(key) {
                    return key.startsWith(BrowserIndexedDB.URL_SCHEME) ? key.slice(BrowserIndexedDB.URL_SCHEME.length) : key;
                }
                class BrowserIndexedDBManager {
                    constructor() {
                        this.indexedDB = getIndexedDBFactory();
                    }
                    async listModels() {
                        return new Promise((resolve, reject) => {
                            const openRequest = this.indexedDB.open(DATABASE_NAME, DATABASE_VERSION);
                            openRequest.onupgradeneeded = () => setUpDatabase(openRequest);
                            openRequest.onsuccess = () => {
                                const db = openRequest.result;
                                const tx = db.transaction(INFO_STORE_NAME, 'readonly');
                                const store = tx.objectStore(INFO_STORE_NAME);
                                // tslint:disable:max-line-length
                                // Need to cast `store` as `any` here because TypeScript's DOM
                                // library does not have the `getAll()` method even though the
                                // method is supported in the latest version of most mainstream
                                // browsers:
                                // https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore/getAll
                                // tslint:enable:max-line-length
                                // tslint:disable-next-line:no-any
                                const getAllInfoRequest = store.getAll();
                                getAllInfoRequest.onsuccess = () => {
                                    const out = {};
                                    for (const item of getAllInfoRequest.result) {
                                        out[item.modelPath] = item.modelArtifactsInfo;
                                    }
                                    resolve(out);
                                }
                                    ;
                                getAllInfoRequest.onerror = error => {
                                    db.close();
                                    return reject(getAllInfoRequest.error);
                                }
                                    ;
                                tx.oncomplete = () => db.close();
                            }
                                ;
                            openRequest.onerror = error => reject(openRequest.error);
                        }
                        );
                    }
                    async removeModel(path) {
                        path = maybeStripScheme(path);
                        return new Promise((resolve, reject) => {
                            const openRequest = this.indexedDB.open(DATABASE_NAME, DATABASE_VERSION);
                            openRequest.onupgradeneeded = () => setUpDatabase(openRequest);
                            openRequest.onsuccess = () => {
                                const db = openRequest.result;
                                const infoTx = db.transaction(INFO_STORE_NAME, 'readwrite');
                                const infoStore = infoTx.objectStore(INFO_STORE_NAME);
                                const getInfoRequest = infoStore.get(path);
                                let modelTx;
                                getInfoRequest.onsuccess = () => {
                                    if (getInfoRequest.result == null) {
                                        db.close();
                                        return reject(new Error(`Cannot find model with path '${path}' ` + `in IndexedDB.`));
                                    } else {
                                        // First, delete the entry in the info store.
                                        const deleteInfoRequest = infoStore.delete(path);
                                        const deleteModelData = () => {
                                            // Second, delete the entry in the model store.
                                            modelTx = db.transaction(MODEL_STORE_NAME, 'readwrite');
                                            const modelStore = modelTx.objectStore(MODEL_STORE_NAME);
                                            const deleteModelRequest = modelStore.delete(path);
                                            deleteModelRequest.onsuccess = () => resolve(getInfoRequest.result.modelArtifactsInfo);
                                            deleteModelRequest.onerror = error => reject(getInfoRequest.error);
                                        }
                                            ;
                                        // Proceed with deleting model data regardless of whether deletion
                                        // of info data succeeds or not.
                                        deleteInfoRequest.onsuccess = deleteModelData;
                                        deleteInfoRequest.onerror = error => {
                                            deleteModelData();
                                            db.close();
                                            return reject(getInfoRequest.error);
                                        }
                                            ;
                                    }
                                }
                                    ;
                                getInfoRequest.onerror = error => {
                                    db.close();
                                    return reject(getInfoRequest.error);
                                }
                                    ;
                                infoTx.oncomplete = () => {
                                    if (modelTx == null) {
                                        db.close();
                                    } else {
                                        modelTx.oncomplete = () => db.close();
                                    }
                                }
                                    ;
                            }
                                ;
                            openRequest.onerror = error => reject(openRequest.error);
                        }
                        );
                    }
                }
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const PATH_SEPARATOR = '/';
                const PATH_PREFIX = 'tensorflowjs_models';
                const INFO_SUFFIX = 'info';
                const MODEL_TOPOLOGY_SUFFIX = 'model_topology';
                const WEIGHT_SPECS_SUFFIX = 'weight_specs';
                const WEIGHT_DATA_SUFFIX = 'weight_data';
                const MODEL_METADATA_SUFFIX = 'model_metadata';
                /**
 * Purge all tensorflow.js-saved model artifacts from local storage.
 *
 * @returns Paths of the models purged.
 */
                function purgeLocalStorageArtifacts() {
                    if (!env().getBool('IS_BROWSER') || typeof window === 'undefined' || typeof window.localStorage === 'undefined') {
                        throw new Error('purgeLocalStorageModels() cannot proceed because local storage is ' + 'unavailable in the current environment.');
                    }
                    const LS = window.localStorage;
                    const purgedModelPaths = [];
                    for (let i = 0; i < LS.length; ++i) {
                        const key = LS.key(i);
                        const prefix = PATH_PREFIX + PATH_SEPARATOR;
                        if (key.startsWith(prefix) && key.length > prefix.length) {
                            LS.removeItem(key);
                            const modelName = getModelPathFromKey(key);
                            if (purgedModelPaths.indexOf(modelName) === -1) {
                                purgedModelPaths.push(modelName);
                            }
                        }
                    }
                    return purgedModelPaths;
                }
                function getModelKeys(path) {
                    return {
                        info: [PATH_PREFIX, path, INFO_SUFFIX].join(PATH_SEPARATOR),
                        topology: [PATH_PREFIX, path, MODEL_TOPOLOGY_SUFFIX].join(PATH_SEPARATOR),
                        weightSpecs: [PATH_PREFIX, path, WEIGHT_SPECS_SUFFIX].join(PATH_SEPARATOR),
                        weightData: [PATH_PREFIX, path, WEIGHT_DATA_SUFFIX].join(PATH_SEPARATOR),
                        modelMetadata: [PATH_PREFIX, path, MODEL_METADATA_SUFFIX].join(PATH_SEPARATOR)
                    };
                }
                function removeItems(keys) {
                    for (const key of Object.values(keys)) {
                        window.localStorage.removeItem(key);
                    }
                }
                /**
 * Get model path from a local-storage key.
 *
 * E.g., 'tensorflowjs_models/my/model/1/info' --> 'my/model/1'
 *
 * @param key
 */
                function getModelPathFromKey(key) {
                    const items = key.split(PATH_SEPARATOR);
                    if (items.length < 3) {
                        throw new Error(`Invalid key format: ${key}`);
                    }
                    return items.slice(1, items.length - 1).join(PATH_SEPARATOR);
                }
                function maybeStripScheme$1(key) {
                    return key.startsWith(BrowserLocalStorage.URL_SCHEME) ? key.slice(BrowserLocalStorage.URL_SCHEME.length) : key;
                }
                /**
 * IOHandler subclass: Browser Local Storage.
 *
 * See the doc string to `browserLocalStorage` for more details.
 */
                class BrowserLocalStorage {
                    constructor(modelPath) {
                        if (!env().getBool('IS_BROWSER') || typeof window === 'undefined' || typeof window.localStorage === 'undefined') {
                            // TODO(cais): Add more info about what IOHandler subtypes are
                            // available.
                            //   Maybe point to a doc page on the web and/or automatically determine
                            //   the available IOHandlers and print them in the error message.
                            throw new Error('The current environment does not support local storage.');
                        }
                        this.LS = window.localStorage;
                        if (modelPath == null || !modelPath) {
                            throw new Error('For local storage, modelPath must not be null, undefined or empty.');
                        }
                        this.modelPath = modelPath;
                        this.keys = getModelKeys(this.modelPath);
                    }
                    /**
     * Save model artifacts to browser local storage.
     *
     * See the documentation to `browserLocalStorage` for details on the saved
     * artifacts.
     *
     * @param modelArtifacts The model artifacts to be stored.
     * @returns An instance of SaveResult.
     */
                    async save(modelArtifacts) {
                        if (modelArtifacts.modelTopology instanceof ArrayBuffer) {
                            throw new Error('BrowserLocalStorage.save() does not support saving model topology ' + 'in binary formats yet.');
                        } else {
                            const topology = JSON.stringify(modelArtifacts.modelTopology);
                            const weightSpecs = JSON.stringify(modelArtifacts.weightSpecs);
                            const modelArtifactsInfo = getModelArtifactsInfoForJSON(modelArtifacts);
                            try {
                                this.LS.setItem(this.keys.info, JSON.stringify(modelArtifactsInfo));
                                this.LS.setItem(this.keys.topology, topology);
                                this.LS.setItem(this.keys.weightSpecs, weightSpecs);
                                this.LS.setItem(this.keys.weightData, arrayBufferToBase64String(modelArtifacts.weightData));
                                // Note that JSON.stringify doesn't write out keys that have undefined
                                // values, so for some keys, we set undefined instead of a null-ish
                                // value.
                                const metadata = {
                                    format: modelArtifacts.format,
                                    generatedBy: modelArtifacts.generatedBy,
                                    convertedBy: modelArtifacts.convertedBy,
                                    signature: modelArtifacts.signature != null ? modelArtifacts.signature : undefined,
                                    userDefinedMetadata: modelArtifacts.userDefinedMetadata != null ? modelArtifacts.userDefinedMetadata : undefined,
                                    modelInitializer: modelArtifacts.modelInitializer != null ? modelArtifacts.modelInitializer : undefined,
                                    initializerSignature: modelArtifacts.initializerSignature != null ? modelArtifacts.initializerSignature : undefined,
                                    trainingConfig: modelArtifacts.trainingConfig != null ? modelArtifacts.trainingConfig : undefined
                                };
                                this.LS.setItem(this.keys.modelMetadata, JSON.stringify(metadata));
                                return {
                                    modelArtifactsInfo
                                };
                            } catch (err) {
                                // If saving failed, clean up all items saved so far.
                                removeItems(this.keys);
                                throw new Error(`Failed to save model '${this.modelPath}' to local storage: ` + `size quota being exceeded is a possible cause of this failure: ` + `modelTopologyBytes=${modelArtifactsInfo.modelTopologyBytes}, ` + `weightSpecsBytes=${modelArtifactsInfo.weightSpecsBytes}, ` + `weightDataBytes=${modelArtifactsInfo.weightDataBytes}.`);
                            }
                        }
                    }
                    /**
     * Load a model from local storage.
     *
     * See the documentation to `browserLocalStorage` for details on the saved
     * artifacts.
     *
     * @returns The loaded model (if loading succeeds).
     */
                    async load() {
                        const info = JSON.parse(this.LS.getItem(this.keys.info));
                        if (info == null) {
                            throw new Error(`In local storage, there is no model with name '${this.modelPath}'`);
                        }
                        if (info.modelTopologyType !== 'JSON') {
                            throw new Error('BrowserLocalStorage does not support loading non-JSON model ' + 'topology yet.');
                        }
                        const out = {};
                        // Load topology.
                        const topology = JSON.parse(this.LS.getItem(this.keys.topology));
                        if (topology == null) {
                            throw new Error(`In local storage, the topology of model '${this.modelPath}' ` + `is missing.`);
                        }
                        out.modelTopology = topology;
                        // Load weight specs.
                        const weightSpecs = JSON.parse(this.LS.getItem(this.keys.weightSpecs));
                        if (weightSpecs == null) {
                            throw new Error(`In local storage, the weight specs of model '${this.modelPath}' ` + `are missing.`);
                        }
                        out.weightSpecs = weightSpecs;
                        // Load meta-data fields.
                        const metadataString = this.LS.getItem(this.keys.modelMetadata);
                        if (metadataString != null) {
                            const metadata = JSON.parse(metadataString);
                            out.format = metadata.format;
                            out.generatedBy = metadata.generatedBy;
                            out.convertedBy = metadata.convertedBy;
                            if (metadata.signature != null) {
                                out.signature = metadata.signature;
                            }
                            if (metadata.userDefinedMetadata != null) {
                                out.userDefinedMetadata = metadata.userDefinedMetadata;
                            }
                            if (metadata.modelInitializer != null) {
                                out.modelInitializer = metadata.modelInitializer;
                            }
                            if (metadata.initializerSignature != null) {
                                out.initializerSignature = metadata.initializerSignature;
                            }
                            if (metadata.trainingConfig != null) {
                                out.trainingConfig = metadata.trainingConfig;
                            }
                        }
                        // Load weight data.
                        const weightDataBase64 = this.LS.getItem(this.keys.weightData);
                        if (weightDataBase64 == null) {
                            throw new Error(`In local storage, the binary weight values of model ` + `'${this.modelPath}' are missing.`);
                        }
                        out.weightData = base64StringToArrayBuffer(weightDataBase64);
                        return out;
                    }
                }
                BrowserLocalStorage.URL_SCHEME = 'localstorage://';
                const localStorageRouter = url => {
                    if (!env().getBool('IS_BROWSER')) {
                        return null;
                    } else {
                        if (!Array.isArray(url) && url.startsWith(BrowserLocalStorage.URL_SCHEME)) {
                            return browserLocalStorage(url.slice(BrowserLocalStorage.URL_SCHEME.length));
                        } else {
                            return null;
                        }
                    }
                }
                    ;
                IORouterRegistry.registerSaveRouter(localStorageRouter);
                IORouterRegistry.registerLoadRouter(localStorageRouter);
                /**
 * Factory function for local storage IOHandler.
 *
 * This `IOHandler` supports both `save` and `load`.
 *
 * For each model's saved artifacts, four items are saved to local storage.
 *   - `${PATH_SEPARATOR}/${modelPath}/info`: Contains meta-info about the
 *     model, such as date saved, type of the topology, size in bytes, etc.
 *   - `${PATH_SEPARATOR}/${modelPath}/topology`: Model topology. For Keras-
 *     style models, this is a stringized JSON.
 *   - `${PATH_SEPARATOR}/${modelPath}/weight_specs`: Weight specs of the
 *     model, can be used to decode the saved binary weight values (see
 *     item below).
 *   - `${PATH_SEPARATOR}/${modelPath}/weight_data`: Concatenated binary
 *     weight values, stored as a base64-encoded string.
 *
 * Saving may throw an `Error` if the total size of the artifacts exceed the
 * browser-specific quota.
 *
 * @param modelPath A unique identifier for the model to be saved. Must be a
 *   non-empty string.
 * @returns An instance of `IOHandler`, which can be used with, e.g.,
 *   `tf.Model.save`.
 */
                function browserLocalStorage(modelPath) {
                    return new BrowserLocalStorage(modelPath);
                }
                class BrowserLocalStorageManager {
                    constructor() {
                        assert(env().getBool('IS_BROWSER'), () => 'Current environment is not a web browser');
                        assert(typeof window === 'undefined' || typeof window.localStorage !== 'undefined', () => 'Current browser does not appear to support localStorage');
                        this.LS = window.localStorage;
                    }
                    async listModels() {
                        const out = {};
                        const prefix = PATH_PREFIX + PATH_SEPARATOR;
                        const suffix = PATH_SEPARATOR + INFO_SUFFIX;
                        for (let i = 0; i < this.LS.length; ++i) {
                            const key = this.LS.key(i);
                            if (key.startsWith(prefix) && key.endsWith(suffix)) {
                                const modelPath = getModelPathFromKey(key);
                                out[modelPath] = JSON.parse(this.LS.getItem(key));
                            }
                        }
                        return out;
                    }
                    async removeModel(path) {
                        path = maybeStripScheme$1(path);
                        const keys = getModelKeys(path);
                        if (this.LS.getItem(keys.info) == null) {
                            throw new Error(`Cannot find model at path '${path}'`);
                        }
                        const info = JSON.parse(this.LS.getItem(keys.info));
                        removeItems(keys);
                        return info;
                    }
                }
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const DEFAULT_FILE_NAME_PREFIX = 'model';
                const DEFAULT_JSON_EXTENSION_NAME = '.json';
                const DEFAULT_WEIGHT_DATA_EXTENSION_NAME = '.weights.bin';
                function defer(f) {
                    return new Promise(resolve => setTimeout(resolve)).then(f);
                }
                class BrowserDownloads {
                    constructor(fileNamePrefix) {
                        if (!env().getBool('IS_BROWSER')) {
                            // TODO(cais): Provide info on what IOHandlers are available under the
                            //   current environment.
                            throw new Error('browserDownloads() cannot proceed because the current environment ' + 'is not a browser.');
                        }
                        if (fileNamePrefix.startsWith(BrowserDownloads.URL_SCHEME)) {
                            fileNamePrefix = fileNamePrefix.slice(BrowserDownloads.URL_SCHEME.length);
                        }
                        if (fileNamePrefix == null || fileNamePrefix.length === 0) {
                            fileNamePrefix = DEFAULT_FILE_NAME_PREFIX;
                        }
                        this.modelJsonFileName = fileNamePrefix + DEFAULT_JSON_EXTENSION_NAME;
                        this.weightDataFileName = fileNamePrefix + DEFAULT_WEIGHT_DATA_EXTENSION_NAME;
                    }
                    async save(modelArtifacts) {
                        if (typeof document === 'undefined') {
                            throw new Error('Browser downloads are not supported in ' + 'this environment since `document` is not present');
                        }
                        const weightsURL = window.URL.createObjectURL(new Blob([modelArtifacts.weightData], {
                            type: 'application/octet-stream'
                        }));
                        if (modelArtifacts.modelTopology instanceof ArrayBuffer) {
                            throw new Error('BrowserDownloads.save() does not support saving model topology ' + 'in binary formats yet.');
                        } else {
                            const weightsManifest = [{
                                paths: ['./' + this.weightDataFileName],
                                weights: modelArtifacts.weightSpecs
                            }];
                            const modelJSON = getModelJSONForModelArtifacts(modelArtifacts, weightsManifest);
                            const modelJsonURL = window.URL.createObjectURL(new Blob([JSON.stringify(modelJSON)], {
                                type: 'application/json'
                            }));
                            // If anchor elements are not provided, create them without attaching them
                            // to parents, so that the downloaded file names can be controlled.
                            const jsonAnchor = this.modelJsonAnchor == null ? document.createElement('a') : this.modelJsonAnchor;
                            jsonAnchor.download = this.modelJsonFileName;
                            jsonAnchor.href = modelJsonURL;
                            // Trigger downloads by evoking a click event on the download anchors.
                            // When multiple downloads are started synchronously, Firefox will only
                            // save the last one.
                            await defer(() => jsonAnchor.dispatchEvent(new MouseEvent('click')));
                            if (modelArtifacts.weightData != null) {
                                const weightDataAnchor = this.weightDataAnchor == null ? document.createElement('a') : this.weightDataAnchor;
                                weightDataAnchor.download = this.weightDataFileName;
                                weightDataAnchor.href = weightsURL;
                                await defer(() => weightDataAnchor.dispatchEvent(new MouseEvent('click')));
                            }
                            return {
                                modelArtifactsInfo: getModelArtifactsInfoForJSON(modelArtifacts)
                            };
                        }
                    }
                }
                BrowserDownloads.URL_SCHEME = 'downloads://';
                class BrowserFiles {
                    constructor(files) {
                        if (files == null || files.length < 1) {
                            throw new Error(`When calling browserFiles, at least 1 file is required, ` + `but received ${files}`);
                        }
                        this.jsonFile = files[0];
                        this.weightsFiles = files.slice(1);
                    }
                    async load() {
                        return new Promise((resolve, reject) => {
                            const jsonReader = new FileReader();
                            jsonReader.onload = event => {
                                // tslint:disable-next-line:no-any
                                const modelJSON = JSON.parse(event.target.result);
                                const modelTopology = modelJSON.modelTopology;
                                if (modelTopology == null) {
                                    reject(new Error(`modelTopology field is missing from file ${this.jsonFile.name}`));
                                    return;
                                }
                                const weightsManifest = modelJSON.weightsManifest;
                                if (weightsManifest == null) {
                                    reject(new Error(`weightManifest field is missing from file ${this.jsonFile.name}`));
                                    return;
                                }
                                if (this.weightsFiles.length === 0) {
                                    resolve({
                                        modelTopology
                                    });
                                    return;
                                }
                                const modelArtifactsPromise = getModelArtifactsForJSON(modelJSON, weightsManifest => this.loadWeights(weightsManifest));
                                resolve(modelArtifactsPromise);
                            }
                                ;
                            jsonReader.onerror = error => reject(`Failed to read model topology and weights manifest JSON ` + `from file '${this.jsonFile.name}'. BrowserFiles supports loading ` + `Keras-style tf.Model artifacts only.`);
                            jsonReader.readAsText(this.jsonFile);
                        }
                        );
                    }
                    loadWeights(weightsManifest) {
                        const weightSpecs = [];
                        const paths = [];
                        for (const entry of weightsManifest) {
                            weightSpecs.push(...entry.weights);
                            paths.push(...entry.paths);
                        }
                        const pathToFile = this.checkManifestAndWeightFiles(weightsManifest);
                        const promises = paths.map(path => this.loadWeightsFile(path, pathToFile[path]));
                        return Promise.all(promises).then(buffers => [weightSpecs, concatenateArrayBuffers(buffers)]);
                    }
                    loadWeightsFile(path, file) {
                        return new Promise((resolve, reject) => {
                            const weightFileReader = new FileReader();
                            weightFileReader.onload = event => {
                                // tslint:disable-next-line:no-any
                                const weightData = event.target.result;
                                resolve(weightData);
                            }
                                ;
                            weightFileReader.onerror = error => reject(`Failed to weights data from file of path '${path}'.`);
                            weightFileReader.readAsArrayBuffer(file);
                        }
                        );
                    }
                    /**
     * Check the compatibility between weights manifest and weight files.
     */
                    checkManifestAndWeightFiles(manifest) {
                        const basenames = [];
                        const fileNames = this.weightsFiles.map(file => basename(file.name));
                        const pathToFile = {};
                        for (const group of manifest) {
                            group.paths.forEach(path => {
                                const pathBasename = basename(path);
                                if (basenames.indexOf(pathBasename) !== -1) {
                                    throw new Error(`Duplicate file basename found in weights manifest: ` + `'${pathBasename}'`);
                                }
                                basenames.push(pathBasename);
                                if (fileNames.indexOf(pathBasename) === -1) {
                                    throw new Error(`Weight file with basename '${pathBasename}' is not provided.`);
                                } else {
                                    pathToFile[path] = this.weightsFiles[fileNames.indexOf(pathBasename)];
                                }
                            }
                            );
                        }
                        if (basenames.length !== this.weightsFiles.length) {
                            throw new Error(`Mismatch in the number of files in weights manifest ` + `(${basenames.length}) and the number of weight files provided ` + `(${this.weightsFiles.length}).`);
                        }
                        return pathToFile;
                    }
                }
                const browserDownloadsRouter = url => {
                    if (!env().getBool('IS_BROWSER')) {
                        return null;
                    } else {
                        if (!Array.isArray(url) && url.startsWith(BrowserDownloads.URL_SCHEME)) {
                            return browserDownloads(url.slice(BrowserDownloads.URL_SCHEME.length));
                        } else {
                            return null;
                        }
                    }
                }
                    ;
                IORouterRegistry.registerSaveRouter(browserDownloadsRouter);
                /**
 * Creates an IOHandler that triggers file downloads from the browser.
 *
 * The returned `IOHandler` instance can be used as model exporting methods such
 * as `tf.Model.save` and supports only saving.
 *
 * ```js
 * const model = tf.sequential();
 * model.add(tf.layers.dense(
 *     {units: 1, inputShape: [10], activation: 'sigmoid'}));
 * const saveResult = await model.save('downloads://mymodel');
 * // This will trigger downloading of two files:
 * //   'mymodel.json' and 'mymodel.weights.bin'.
 * console.log(saveResult);
 * ```
 *
 * @param fileNamePrefix Prefix name of the files to be downloaded. For use with
 *   `tf.Model`, `fileNamePrefix` should follow either of the following two
 *   formats:
 *   1. `null` or `undefined`, in which case the default file
 *      names will be used:
 *      - 'model.json' for the JSON file containing the model topology and
 *        weights manifest.
 *      - 'model.weights.bin' for the binary file containing the binary weight
 *        values.
 *   2. A single string or an Array of a single string, as the file name prefix.
 *      For example, if `'foo'` is provided, the downloaded JSON
 *      file and binary weights file will be named 'foo.json' and
 *      'foo.weights.bin', respectively.
 * @param config Additional configuration for triggering downloads.
 * @returns An instance of `BrowserDownloads` `IOHandler`.
 *
 * @doc {
 *   heading: 'Models',
 *   subheading: 'Loading',
 *   namespace: 'io',
 *   ignoreCI: true
 * }
 */
                function browserDownloads(fileNamePrefix = 'model') {
                    return new BrowserDownloads(fileNamePrefix);
                }
                /**
 * Creates an IOHandler that loads model artifacts from user-selected files.
 *
 * This method can be used for loading from files such as user-selected files
 * in the browser.
 * When used in conjunction with `tf.loadLayersModel`, an instance of
 * `tf.LayersModel` (Keras-style) can be constructed from the loaded artifacts.
 *
 * ```js
 * // Note: This code snippet won't run properly without the actual file input
 * //   elements in the HTML DOM.
 *
 * // Suppose there are two HTML file input (`<input type="file" ...>`)
 * // elements.
 * const uploadJSONInput = document.getElementById('upload-json');
 * const uploadWeightsInput = document.getElementById('upload-weights');
 * const model = await tf.loadLayersModel(tf.io.browserFiles(
 *     [uploadJSONInput.files[0], uploadWeightsInput.files[0]]));
 * ```
 *
 * @param files `File`s to load from. Currently, this function supports only
 *   loading from files that contain Keras-style models (i.e., `tf.Model`s), for
 *   which an `Array` of `File`s is expected (in that order):
 *   - A JSON file containing the model topology and weight manifest.
 *   - Optionally, one or more binary files containing the binary weights.
 *     These files must have names that match the paths in the `weightsManifest`
 *     contained by the aforementioned JSON file, or errors will be thrown
 *     during loading. These weights files have the same format as the ones
 *     generated by `tensorflowjs_converter` that comes with the `tensorflowjs`
 *     Python PIP package. If no weights files are provided, only the model
 *     topology will be loaded from the JSON file above.
 * @returns An instance of `Files` `IOHandler`.
 *
 * @doc {
 *   heading: 'Models',
 *   subheading: 'Loading',
 *   namespace: 'io',
 *   ignoreCI: true
 * }
 */
                function browserFiles(files) {
                    return new BrowserFiles(files);
                }
                /**
 * @license
 * Copyright 2019 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Monitor Promise.all progress, fire onProgress callback function.
 *
 * @param promises Promise list going to be monitored
 * @param onProgress Callback function. Fired when a promise resolved.
 * @param startFraction Optional fraction start. Default to 0.
 * @param endFraction Optional fraction end. Default to 1.
 */
                function monitorPromisesProgress(promises, onProgress, startFraction, endFraction) {
                    checkPromises(promises);
                    startFraction = startFraction == null ? 0 : startFraction;
                    endFraction = endFraction == null ? 1 : endFraction;
                    checkFraction(startFraction, endFraction);
                    let resolvedPromise = 0;
                    const registerMonitor = promise => {
                        promise.then(value => {
                            const fraction = startFraction + ++resolvedPromise / promises.length * (endFraction - startFraction);
                            // pass fraction as parameter to callback function.
                            onProgress(fraction);
                            return value;
                        }
                        );
                        return promise;
                    }
                        ;
                    function checkPromises(promises) {
                        assert(promises != null && Array.isArray(promises) && promises.length > 0, () => 'promises must be a none empty array');
                    }
                    function checkFraction(startFraction, endFraction) {
                        assert(startFraction >= 0 && startFraction <= 1, () => `Progress fraction must be in range [0, 1], but ` + `got startFraction ${startFraction}`);
                        assert(endFraction >= 0 && endFraction <= 1, () => `Progress fraction must be in range [0, 1], but ` + `got endFraction ${endFraction}`);
                        assert(endFraction >= startFraction, () => `startFraction must be no more than endFraction, but ` + `got startFraction ${startFraction} and endFraction ` + `${endFraction}`);
                    }
                    return Promise.all(promises.map(registerMonitor));
                }
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Reads binary weights data from a number of URLs.
 *
 * @param fetchURLs URLs to send the HTTP requests at, using `fetch` calls.
 * @param requestOptions RequestInit (options) for the HTTP requests.
 * @param fetchFunc Optional overriding value for the `window.fetch` function.
 * @param onProgress Optional, progress callback function, fired periodically
 *   before the load is completed.
 * @returns A `Promise` of an Array of `ArrayBuffer`. The Array has the same
 *   length as `fetchURLs`.
 */
                async function loadWeightsAsArrayBuffer(fetchURLs, loadOptions) {
                    if (loadOptions == null) {
                        loadOptions = {};
                    }
                    const fetchFunc = loadOptions.fetchFunc == null ? env().platform.fetch : loadOptions.fetchFunc;
                    // Create the requests for all of the weights in parallel.
                    const requests = fetchURLs.map(fetchURL => fetchFunc(fetchURL, loadOptions.requestInit, {
                        isBinary: true
                    }));
                    const fetchStartFraction = 0;
                    const fetchEndFraction = 0.5;
                    const responses = loadOptions.onProgress == null ? await Promise.all(requests) : await monitorPromisesProgress(requests, loadOptions.onProgress, fetchStartFraction, fetchEndFraction);
                    const bufferPromises = responses.map(response => response.arrayBuffer());
                    const bufferStartFraction = 0.5;
                    const bufferEndFraction = 1;
                    const buffers = loadOptions.onProgress == null ? await Promise.all(bufferPromises) : await monitorPromisesProgress(bufferPromises, loadOptions.onProgress, bufferStartFraction, bufferEndFraction);
                    return buffers;
                }
                /**
 * Reads a weights manifest JSON configuration, fetches the weights and
 * returns them as `Tensor`s.
 *
 * @param manifest The weights manifest JSON.
 * @param filePathPrefix The path prefix for filenames given in the manifest.
 *     Defaults to the empty string.
 * @param weightNames The names of the weights to be fetched.
 */
                async function loadWeights(manifest, filePathPrefix = '', weightNames, requestInit) {
                    // TODO(nsthorat): Groups are currently fetched atomically. If you need a
                    // single weight from a group, the whole group will be fetched. At a future
                    // date, we should support fetching only the individual shards within a
                    // group that are needed to reconstruct the requested weight.
                    // TODO(cais): Use `decodeWeights` for implementation.
                    const fetchWeights = fetchUrls => loadWeightsAsArrayBuffer(fetchUrls, {
                        requestInit
                    });
                    const loadWeights = weightsLoaderFactory(fetchWeights);
                    return loadWeights(manifest, filePathPrefix, weightNames);
                }
                /**
 * Creates a function, which reads a weights manifest JSON configuration,
 * fetches the weight files using the specified function and returns them as
 * `Tensor`s.
 *
 * ```js
 * // example for creating a nodejs weight loader, which reads the weight files
 * // from disk using fs.readFileSync
 *
 * import * as fs from 'fs'
 *
 * const fetchWeightsFromDisk = (filePaths: string[]) =>
 *   filePaths.map(filePath => fs.readFileSync(filePath).buffer)
 *
 * const loadWeights = tf.io.weightsLoaderFactory(fetchWeightsFromDisk)
 *
 * const manifest = JSON.parse(
 *   fs.readFileSync('./my_model-weights_manifest').toString()
 * )
 * const weightMap = await loadWeights(manifest, './')
 * ```
 * @param fetchWeightsFunction The function used for fetching the weight files.
 * @returns Weight loading function.
 */
                function weightsLoaderFactory(fetchWeightsFunction) {
                    return async (manifest, filePathPrefix = '', weightNames) => {
                        // Collect all the groups, weights, and their relative offsets to be
                        // fetched.
                        const groupIndicesToFetchMap = manifest.map(() => false);
                        const groupWeightsToFetch = {};
                        const weightsFound = weightNames != null ? weightNames.map(() => false) : [];
                        const allManifestWeightNames = [];
                        manifest.forEach((manifestGroupConfig, groupIndex) => {
                            let groupOffset = 0;
                            manifestGroupConfig.weights.forEach(weightsEntry => {
                                const rawDtype = 'quantization' in weightsEntry ? weightsEntry.quantization.dtype : weightsEntry.dtype;
                                const weightsBytes = DTYPE_VALUE_SIZE_MAP[rawDtype] * sizeFromShape(weightsEntry.shape);
                                const enqueueWeightsForFetchingFn = () => {
                                    groupIndicesToFetchMap[groupIndex] = true;
                                    if (groupWeightsToFetch[groupIndex] == null) {
                                        groupWeightsToFetch[groupIndex] = [];
                                    }
                                    groupWeightsToFetch[groupIndex].push({
                                        manifestEntry: weightsEntry,
                                        groupOffset,
                                        sizeBytes: weightsBytes
                                    });
                                }
                                    ;
                                if (weightNames != null) {
                                    weightNames.forEach((weightName, weightIndex) => {
                                        if (weightName === weightsEntry.name) {
                                            enqueueWeightsForFetchingFn();
                                            weightsFound[weightIndex] = true;
                                        }
                                    }
                                    );
                                } else {
                                    enqueueWeightsForFetchingFn();
                                }
                                allManifestWeightNames.push(weightsEntry.name);
                                groupOffset += weightsBytes;
                            }
                            );
                        }
                        );
                        if (!weightsFound.every(found => found)) {
                            const weightsNotFound = weightNames.filter((_, i) => !weightsFound[i]);
                            throw new Error(`Could not find weights in manifest with names: ` + `${weightsNotFound.join(', ')}. \n` + `Manifest JSON has weights with names: ` + `${allManifestWeightNames.join(', ')}.`);
                        }
                        // Convert the one-hot boolean groupId => shouldFetch map to a list of group
                        // IDs.
                        const groupIndicesToFetch = groupIndicesToFetchMap.reduce((accumulator, shouldFetch, i) => {
                            if (shouldFetch) {
                                accumulator.push(i);
                            }
                            return accumulator;
                        }
                            , []);
                        const fetchUrls = [];
                        groupIndicesToFetch.forEach(i => {
                            manifest[i].paths.forEach(filepath => {
                                const fetchUrl = filePathPrefix + (!filePathPrefix.endsWith('/') ? '/' : '') + filepath;
                                fetchUrls.push(fetchUrl);
                            }
                            );
                        }
                        );
                        const buffers = await fetchWeightsFunction(fetchUrls);
                        const weightsTensorMap = {};
                        let bufferIndexOffset = 0;
                        groupIndicesToFetch.forEach(i => {
                            const numBuffers = manifest[i].paths.length;
                            let groupBytes = 0;
                            for (let i = 0; i < numBuffers; i++) {
                                groupBytes += buffers[bufferIndexOffset + i].byteLength;
                            }
                            // Create a buffer for the whole group.
                            const groupBuffer = new ArrayBuffer(groupBytes);
                            const groupByteBuffer = new Uint8Array(groupBuffer);
                            let groupBufferOffset = 0;
                            for (let i = 0; i < numBuffers; i++) {
                                const buffer = new Uint8Array(buffers[bufferIndexOffset + i]);
                                groupByteBuffer.set(buffer, groupBufferOffset);
                                groupBufferOffset += buffer.byteLength;
                            }
                            const weightsEntries = groupWeightsToFetch[i];
                            weightsEntries.forEach(weightsEntry => {
                                const byteBuffer = groupBuffer.slice(weightsEntry.groupOffset, weightsEntry.groupOffset + weightsEntry.sizeBytes);
                                const nameToTensorMap = decodeWeights(byteBuffer, [weightsEntry.manifestEntry]);
                                for (const name in nameToTensorMap) {
                                    weightsTensorMap[name] = nameToTensorMap[name];
                                }
                            }
                            );
                            bufferIndexOffset += numBuffers;
                        }
                        );
                        return weightsTensorMap;
                    }
                        ;
                }
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const OCTET_STREAM_MIME_TYPE = 'application/octet-stream';
                const JSON_TYPE = 'application/json';
                class HTTPRequest {
                    constructor(path, loadOptions) {
                        this.DEFAULT_METHOD = 'POST';
                        if (loadOptions == null) {
                            loadOptions = {};
                        }
                        this.weightPathPrefix = loadOptions.weightPathPrefix;
                        this.onProgress = loadOptions.onProgress;
                        this.weightUrlConverter = loadOptions.weightUrlConverter;
                        if (loadOptions.fetchFunc != null) {
                            assert(typeof loadOptions.fetchFunc === 'function', () => 'Must pass a function that matches the signature of ' + '`fetch` (see ' + 'https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)');
                            this.fetch = loadOptions.fetchFunc;
                        } else {
                            this.fetch = env().platform.fetch;
                        }
                        assert(path != null && path.length > 0, () => 'URL path for http must not be null, undefined or ' + 'empty.');
                        if (Array.isArray(path)) {
                            assert(path.length === 2, () => 'URL paths for http must have a length of 2, ' + `(actual length is ${path.length}).`);
                        }
                        this.path = path;
                        if (loadOptions.requestInit != null && loadOptions.requestInit.body != null) {
                            throw new Error('requestInit is expected to have no pre-existing body, but has one.');
                        }
                        this.requestInit = loadOptions.requestInit || {};
                    }
                    async save(modelArtifacts) {
                        if (modelArtifacts.modelTopology instanceof ArrayBuffer) {
                            throw new Error('BrowserHTTPRequest.save() does not support saving model topology ' + 'in binary formats yet.');
                        }
                        const init = Object.assign({
                            method: this.DEFAULT_METHOD
                        }, this.requestInit);
                        init.body = new FormData();
                        const weightsManifest = [{
                            paths: ['./model.weights.bin'],
                            weights: modelArtifacts.weightSpecs
                        }];
                        const modelTopologyAndWeightManifest = getModelJSONForModelArtifacts(modelArtifacts, weightsManifest);
                        init.body.append('model.json', new Blob([JSON.stringify(modelTopologyAndWeightManifest)], {
                            type: JSON_TYPE
                        }), 'model.json');
                        if (modelArtifacts.weightData != null) {
                            init.body.append('model.weights.bin', new Blob([modelArtifacts.weightData], {
                                type: OCTET_STREAM_MIME_TYPE
                            }), 'model.weights.bin');
                        }
                        const response = await this.fetch(this.path, init);
                        if (response.ok) {
                            return {
                                modelArtifactsInfo: getModelArtifactsInfoForJSON(modelArtifacts),
                                responses: [response]
                            };
                        } else {
                            throw new Error(`BrowserHTTPRequest.save() failed due to HTTP response status ` + `${response.status}.`);
                        }
                    }
                    /**
     * Load model artifacts via HTTP request(s).
     *
     * See the documentation to `tf.io.http` for details on the saved
     * artifacts.
     *
     * @returns The loaded model artifacts (if loading succeeds).
     */
                    async load() {
                        const modelConfigRequest = await this.fetch(this.path, this.requestInit);
                        if (!modelConfigRequest.ok) {
                            throw new Error(`Request to ${this.path} failed with status code ` + `${modelConfigRequest.status}. Please verify this URL points to ` + `the model JSON of the model to load.`);
                        }
                        let modelJSON;
                        try {
                            modelJSON = await modelConfigRequest.json();
                        } catch (e) {
                            let message = `Failed to parse model JSON of response from ${this.path}.`;
                            // TODO(nsthorat): Remove this after some time when we're comfortable that
                            // .pb files are mostly gone.
                            if (this.path.endsWith('.pb')) {
                                message += ' Your path contains a .pb file extension. ' + 'Support for .pb models have been removed in TensorFlow.js 1.0 ' + 'in favor of .json models. You can re-convert your Python ' + 'TensorFlow model using the TensorFlow.js 1.0 conversion scripts ' + 'or you can convert your.pb models with the \'pb2json\'' + 'NPM script in the tensorflow/tfjs-converter repository.';
                            } else {
                                message += ' Please make sure the server is serving valid ' + 'JSON for this request.';
                            }
                            throw new Error(message);
                        }
                        // We do not allow both modelTopology and weightsManifest to be missing.
                        const modelTopology = modelJSON.modelTopology;
                        const weightsManifest = modelJSON.weightsManifest;
                        if (modelTopology == null && weightsManifest == null) {
                            throw new Error(`The JSON from HTTP path ${this.path} contains neither model ` + `topology or manifest for weights.`);
                        }
                        return getModelArtifactsForJSON(modelJSON, weightsManifest => this.loadWeights(weightsManifest));
                    }
                    async loadWeights(weightsManifest) {
                        const weightPath = Array.isArray(this.path) ? this.path[1] : this.path;
                        const [prefix, suffix] = parseUrl(weightPath);
                        const pathPrefix = this.weightPathPrefix || prefix;
                        const weightSpecs = getWeightSpecs(weightsManifest);
                        const fetchURLs = [];
                        const urlPromises = [];
                        for (const weightsGroup of weightsManifest) {
                            for (const path of weightsGroup.paths) {
                                if (this.weightUrlConverter != null) {
                                    urlPromises.push(this.weightUrlConverter(path));
                                } else {
                                    fetchURLs.push(pathPrefix + path + suffix);
                                }
                            }
                        }
                        if (this.weightUrlConverter) {
                            fetchURLs.push(...(await Promise.all(urlPromises)));
                        }
                        const buffers = await loadWeightsAsArrayBuffer(fetchURLs, {
                            requestInit: this.requestInit,
                            fetchFunc: this.fetch,
                            onProgress: this.onProgress
                        });
                        return [weightSpecs, concatenateArrayBuffers(buffers)];
                    }
                }
                HTTPRequest.URL_SCHEME_REGEX = /^https?:\/\//;
                /**
 * Extract the prefix and suffix of the url, where the prefix is the path before
 * the last file, and suffix is the search params after the last file.
 * ```
 * const url = 'http://tfhub.dev/model/1/tensorflowjs_model.pb?tfjs-format=file'
 * [prefix, suffix] = parseUrl(url)
 * // prefix = 'http://tfhub.dev/model/1/'
 * // suffix = '?tfjs-format=file'
 * ```
 * @param url the model url to be parsed.
 */
                function parseUrl(url) {
                    const lastSlash = url.lastIndexOf('/');
                    const lastSearchParam = url.lastIndexOf('?');
                    const prefix = url.substring(0, lastSlash);
                    const suffix = lastSearchParam > lastSlash ? url.substring(lastSearchParam) : '';
                    return [prefix + '/', suffix];
                }
                function isHTTPScheme(url) {
                    return url.match(HTTPRequest.URL_SCHEME_REGEX) != null;
                }
                const httpRouter = (url, loadOptions) => {
                    if (typeof fetch === 'undefined' && (loadOptions == null || loadOptions.fetchFunc == null)) {
                        // `http` uses `fetch` or `node-fetch`, if one wants to use it in
                        // an environment that is not the browser or node they have to setup a
                        // global fetch polyfill.
                        return null;
                    } else {
                        let isHTTP = true;
                        if (Array.isArray(url)) {
                            isHTTP = url.every(urlItem => isHTTPScheme(urlItem));
                        } else {
                            isHTTP = isHTTPScheme(url);
                        }
                        if (isHTTP) {
                            return http(url, loadOptions);
                        }
                    }
                    return null;
                }
                    ;
                IORouterRegistry.registerSaveRouter(httpRouter);
                IORouterRegistry.registerLoadRouter(httpRouter);
                /**
 * Creates an IOHandler subtype that sends model artifacts to HTTP server.
 *
 * An HTTP request of the `multipart/form-data` mime type will be sent to the
 * `path` URL. The form data includes artifacts that represent the topology
 * and/or weights of the model. In the case of Keras-style `tf.Model`, two
 * blobs (files) exist in form-data:
 *   - A JSON file consisting of `modelTopology` and `weightsManifest`.
 *   - A binary weights file consisting of the concatenated weight values.
 * These files are in the same format as the one generated by
 * [tfjs_converter](https://js.tensorflow.org/tutorials/import-keras.html).
 *
 * The following code snippet exemplifies the client-side code that uses this
 * function:
 *
 * ```js
 * const model = tf.sequential();
 * model.add(
 *     tf.layers.dense({units: 1, inputShape: [100], activation: 'sigmoid'}));
 *
 * const saveResult = await model.save(tf.io.http(
 *     'http://model-server:5000/upload', {requestInit: {method: 'PUT'}}));
 * console.log(saveResult);
 * ```
 *
 * If the default `POST` method is to be used, without any custom parameters
 * such as headers, you can simply pass an HTTP or HTTPS URL to `model.save`:
 *
 * ```js
 * const saveResult = await model.save('http://model-server:5000/upload');
 * ```
 *
 * The following GitHub Gist
 * https://gist.github.com/dsmilkov/1b6046fd6132d7408d5257b0976f7864
 * implements a server based on [flask](https://github.com/pallets/flask) that
 * can receive the request. Upon receiving the model artifacts via the requst,
 * this particular server reconstitutes instances of [Keras
 * Models](https://keras.io/models/model/) in memory.
 *
 *
 * @param path A URL path to the model.
 *   Can be an absolute HTTP path (e.g.,
 *   'http://localhost:8000/model-upload)') or a relative path (e.g.,
 *   './model-upload').
 * @param requestInit Request configurations to be used when sending
 *    HTTP request to server using `fetch`. It can contain fields such as
 *    `method`, `credentials`, `headers`, `mode`, etc. See
 *    https://developer.mozilla.org/en-US/docs/Web/API/Request/Request
 *    for more information. `requestInit` must not have a body, because the
 * body will be set by TensorFlow.js. File blobs representing the model
 * topology (filename: 'model.json') and the weights of the model (filename:
 * 'model.weights.bin') will be appended to the body. If `requestInit` has a
 * `body`, an Error will be thrown.
 * @param loadOptions Optional configuration for the loading. It includes the
 *   following fields:
 *   - weightPathPrefix Optional, this specifies the path prefix for weight
 *     files, by default this is calculated from the path param.
 *   - fetchFunc Optional, custom `fetch` function. E.g., in Node.js,
 *     the `fetch` from node-fetch can be used here.
 *   - onProgress Optional, progress callback function, fired periodically
 *     before the load is completed.
 * @returns An instance of `IOHandler`.
 *
 * @doc {
 *   heading: 'Models',
 *   subheading: 'Loading',
 *   namespace: 'io',
 *   ignoreCI: true
 * }
 */
                function http(path, loadOptions) {
                    return new HTTPRequest(path, loadOptions);
                }
                /**
 * Deprecated. Use `tf.io.http`.
 * @param path
 * @param loadOptions
 */
                function browserHTTPRequest(path, loadOptions) {
                    return http(path, loadOptions);
                }
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                class PassthroughLoader {
                    constructor(modelArtifacts) {
                        this.modelArtifacts = modelArtifacts;
                    }
                    load() {
                        return this.modelArtifacts;
                    }
                }
                class PassthroughSaver {
                    constructor(saveHandler) {
                        this.saveHandler = saveHandler;
                    }
                    save(modelArtifacts) {
                        return this.saveHandler(modelArtifacts);
                    }
                }
                class PassthroughAsync {
                    constructor(handler) {
                        if (handler.load) {
                            this.load = () => Promise.resolve(handler.load());
                        }
                        if (handler.save) {
                            this.save = modelArtifacts => Promise.resolve(handler.save(modelArtifacts));
                        }
                    }
                }
                /**
 * Creates an IOHandler that loads model artifacts from memory.
 *
 * When used in conjunction with `tf.loadLayersModel`, an instance of
 * `tf.LayersModel` (Keras-style) can be constructed from the loaded artifacts.
 *
 * ```js
 * const model = await tf.loadLayersModel(tf.io.fromMemory(
 *     modelTopology, weightSpecs, weightData));
 * ```
 *
 * @param modelArtifacts a object containing model topology (i.e., parsed from
 *   the JSON format).
 * @param weightSpecs An array of `WeightsManifestEntry` objects describing the
 *   names, shapes, types, and quantization of the weight data. Optional.
 * @param weightData A single `ArrayBuffer` containing the weight data,
 *   concatenated in the order described by the weightSpecs. Optional.
 * @param trainingConfig Model training configuration. Optional.
 *
 * @returns A passthrough `IOHandler` that simply loads the provided data.
 */
                function fromMemory(modelArtifacts, weightSpecs, weightData, trainingConfig) {
                    const args = arguments;
                    return new PassthroughAsync(fromMemorySync(...args));
                }
                /**
 * Creates an IOHandler that loads model artifacts from memory.
 *
 * When used in conjunction with `tf.loadLayersModel`, an instance of
 * `tf.LayersModel` (Keras-style) can be constructed from the loaded artifacts.
 *
 * ```js
 * const model = await tf.loadLayersModel(tf.io.fromMemory(
 *     modelTopology, weightSpecs, weightData));
 * ```
 *
 * @param modelArtifacts a object containing model topology (i.e., parsed from
 *   the JSON format).
 * @param weightSpecs An array of `WeightsManifestEntry` objects describing the
 *   names, shapes, types, and quantization of the weight data. Optional.
 * @param weightData A single `ArrayBuffer` containing the weight data,
 *   concatenated in the order described by the weightSpecs. Optional.
 * @param trainingConfig Model training configuration. Optional.
 *
 * @returns A passthrough `IOHandlerSync` that simply loads the provided data.
 */
                function fromMemorySync(modelArtifacts, weightSpecs, weightData, trainingConfig) {
                    if (arguments.length === 1) {
                        const isModelArtifacts = modelArtifacts.modelTopology != null || modelArtifacts.weightSpecs != null;
                        if (isModelArtifacts) {
                            return new PassthroughLoader(modelArtifacts);
                        } else {
                            // Legacy support: with only modelTopology.
                            // TODO(cais): Remove this deprecated API.
                            console.warn('Please call tf.io.fromMemory() with only one argument. ' + 'The argument should be of type ModelArtifacts. ' + 'The multi-argument signature of tf.io.fromMemory() has been ' + 'deprecated and will be removed in a future release.');
                            return new PassthroughLoader({
                                modelTopology: modelArtifacts
                            });
                        }
                    } else {
                        // Legacy support.
                        // TODO(cais): Remove this deprecated API.
                        console.warn('Please call tf.io.fromMemory() with only one argument. ' + 'The argument should be of type ModelArtifacts. ' + 'The multi-argument signature of tf.io.fromMemory() has been ' + 'deprecated and will be removed in a future release.');
                        return new PassthroughLoader({
                            modelTopology: modelArtifacts,
                            weightSpecs,
                            weightData,
                            trainingConfig
                        });
                    }
                }
                /**
 * Creates an IOHandler that passes saved model artifacts to a callback.
 *
 * ```js
 * function handleSave(artifacts) {
 *   // ... do something with the artifacts ...
 *   return {modelArtifactsInfo: {...}, ...};
 * }
 *
 * const saveResult = model.save(tf.io.withSaveHandler(handleSave));
 * ```
 *
 * @param saveHandler A function that accepts a `ModelArtifacts` and returns a
 *     promise that resolves to a `SaveResult`.
 */
                function withSaveHandler(saveHandler) {
                    return new PassthroughSaver(saveHandler);
                }
                /**
 * Creates an IOHandlerSync that passes saved model artifacts to a callback.
 *
 * ```js
 * function handleSave(artifacts) {
 *   // ... do something with the artifacts ...
 *   return {modelArtifactsInfo: {...}, ...};
 * }
 *
 * const saveResult = model.save(tf.io.withSaveHandler(handleSave));
 * ```
 *
 * @param saveHandler A function that accepts a `ModelArtifacts` and returns a
 *     `SaveResult`.
 */
                function withSaveHandlerSync(saveHandler) {
                    return new PassthroughSaver(saveHandler);
                }
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const URL_SCHEME_SUFFIX = '://';
                class ModelStoreManagerRegistry {
                    constructor() {
                        this.managers = {};
                    }
                    static getInstance() {
                        if (ModelStoreManagerRegistry.instance == null) {
                            ModelStoreManagerRegistry.instance = new ModelStoreManagerRegistry();
                        }
                        return ModelStoreManagerRegistry.instance;
                    }
                    /**
     * Register a save-handler router.
     *
     * @param saveRouter A function that maps a URL-like string onto an instance
     * of `IOHandler` with the `save` method defined or `null`.
     */
                    static registerManager(scheme, manager) {
                        assert(scheme != null, () => 'scheme must not be undefined or null.');
                        if (scheme.endsWith(URL_SCHEME_SUFFIX)) {
                            scheme = scheme.slice(0, scheme.indexOf(URL_SCHEME_SUFFIX));
                        }
                        assert(scheme.length > 0, () => 'scheme must not be an empty string.');
                        const registry = ModelStoreManagerRegistry.getInstance();
                        assert(registry.managers[scheme] == null, () => `A model store manager is already registered for scheme '${scheme}'.`);
                        registry.managers[scheme] = manager;
                    }
                    static getManager(scheme) {
                        const manager = ModelStoreManagerRegistry.getInstance().managers[scheme];
                        if (manager == null) {
                            throw new Error(`Cannot find model manager for scheme '${scheme}'`);
                        }
                        return manager;
                    }
                    static getSchemes() {
                        return Object.keys(ModelStoreManagerRegistry.getInstance().managers);
                    }
                }
                /**
 * Helper method for parsing a URL string into a scheme and a path.
 *
 * @param url E.g., 'localstorage://my-model'
 * @returns A dictionary with two fields: scheme and path.
 *   Scheme: e.g., 'localstorage' in the example above.
 *   Path: e.g., 'my-model' in the example above.
 */
                function parseURL(url) {
                    if (url.indexOf(URL_SCHEME_SUFFIX) === -1) {
                        throw new Error(`The url string provided does not contain a scheme. ` + `Supported schemes are: ` + `${ModelStoreManagerRegistry.getSchemes().join(',')}`);
                    }
                    return {
                        scheme: url.split(URL_SCHEME_SUFFIX)[0],
                        path: url.split(URL_SCHEME_SUFFIX)[1]
                    };
                }
                async function cloneModelInternal(sourceURL, destURL, deleteSource = false) {
                    assert(sourceURL !== destURL, () => `Old path and new path are the same: '${sourceURL}'`);
                    const loadHandlers = IORouterRegistry.getLoadHandlers(sourceURL);
                    assert(loadHandlers.length > 0, () => `Copying failed because no load handler is found for source URL ${sourceURL}.`);
                    assert(loadHandlers.length < 2, () => `Copying failed because more than one (${loadHandlers.length}) ` + `load handlers for source URL ${sourceURL}.`);
                    const loadHandler = loadHandlers[0];
                    const saveHandlers = IORouterRegistry.getSaveHandlers(destURL);
                    assert(saveHandlers.length > 0, () => `Copying failed because no save handler is found for destination ` + `URL ${destURL}.`);
                    assert(saveHandlers.length < 2, () => `Copying failed because more than one (${loadHandlers.length}) ` + `save handlers for destination URL ${destURL}.`);
                    const saveHandler = saveHandlers[0];
                    const sourceScheme = parseURL(sourceURL).scheme;
                    const sourcePath = parseURL(sourceURL).path;
                    const sameMedium = sourceScheme === parseURL(sourceURL).scheme;
                    const modelArtifacts = await loadHandler.load();
                    // If moving within the same storage medium, remove the old model as soon as
                    // the loading is done. Without doing this, it is possible that the combined
                    // size of the two models will cause the cloning to fail.
                    if (deleteSource && sameMedium) {
                        await ModelStoreManagerRegistry.getManager(sourceScheme).removeModel(sourcePath);
                    }
                    const saveResult = await saveHandler.save(modelArtifacts);
                    // If moving between mediums, the deletion is done after the save succeeds.
                    // This guards against the case in which saving to the destination medium
                    // fails.
                    if (deleteSource && !sameMedium) {
                        await ModelStoreManagerRegistry.getManager(sourceScheme).removeModel(sourcePath);
                    }
                    return saveResult.modelArtifactsInfo;
                }
                /**
 * List all models stored in registered storage mediums.
 *
 * For a web browser environment, the registered mediums are Local Storage and
 * IndexedDB.
 *
 * ```js
 * // First create and save a model.
 * const model = tf.sequential();
 * model.add(tf.layers.dense(
 *     {units: 1, inputShape: [10], activation: 'sigmoid'}));
 * await model.save('localstorage://demo/management/model1');
 *
 * // Then list existing models.
 * console.log(JSON.stringify(await tf.io.listModels()));
 *
 * // Delete the model.
 * await tf.io.removeModel('localstorage://demo/management/model1');
 *
 * // List models again.
 * console.log(JSON.stringify(await tf.io.listModels()));
 * ```
 *
 * @returns A `Promise` of a dictionary mapping URLs of existing models to
 * their model artifacts info. URLs include medium-specific schemes, e.g.,
 *   'indexeddb://my/model/1'. Model artifacts info include type of the
 * model's topology, byte sizes of the topology, weights, etc.
 *
 * @doc {
 *   heading: 'Models',
 *   subheading: 'Management',
 *   namespace: 'io',
 *   ignoreCI: true
 * }
 */
                async function listModels() {
                    const schemes = ModelStoreManagerRegistry.getSchemes();
                    const out = {};
                    for (const scheme of schemes) {
                        const schemeOut = await ModelStoreManagerRegistry.getManager(scheme).listModels();
                        for (const path in schemeOut) {
                            const url = scheme + URL_SCHEME_SUFFIX + path;
                            out[url] = schemeOut[path];
                        }
                    }
                    return out;
                }
                /**
 * Remove a model specified by URL from a registered storage medium.
 *
 * ```js
 * // First create and save a model.
 * const model = tf.sequential();
 * model.add(tf.layers.dense(
 *     {units: 1, inputShape: [10], activation: 'sigmoid'}));
 * await model.save('localstorage://demo/management/model1');
 *
 * // Then list existing models.
 * console.log(JSON.stringify(await tf.io.listModels()));
 *
 * // Delete the model.
 * await tf.io.removeModel('localstorage://demo/management/model1');
 *
 * // List models again.
 * console.log(JSON.stringify(await tf.io.listModels()));
 * ```
 *
 * @param url A URL to a stored model, with a scheme prefix, e.g.,
 *   'localstorage://my-model-1', 'indexeddb://my/model/2'.
 * @returns ModelArtifactsInfo of the deleted model (if and only if deletion
 *   is successful).
 * @throws Error if deletion fails, e.g., if no model exists at `path`.
 *
 * @doc {
 *   heading: 'Models',
 *   subheading: 'Management',
 *   namespace: 'io',
 *   ignoreCI: true
 * }
 */
                async function removeModel(url) {
                    const schemeAndPath = parseURL(url);
                    const manager = ModelStoreManagerRegistry.getManager(schemeAndPath.scheme);
                    return manager.removeModel(schemeAndPath.path);
                }
                /**
 * Copy a model from one URL to another.
 *
 * This function supports:
 *
 * 1. Copying within a storage medium, e.g.,
 *    `tf.io.copyModel('localstorage://model-1', 'localstorage://model-2')`
 * 2. Copying between two storage mediums, e.g.,
 *    `tf.io.copyModel('localstorage://model-1', 'indexeddb://model-1')`
 *
 * ```js
 * // First create and save a model.
 * const model = tf.sequential();
 * model.add(tf.layers.dense(
 *     {units: 1, inputShape: [10], activation: 'sigmoid'}));
 * await model.save('localstorage://demo/management/model1');
 *
 * // Then list existing models.
 * console.log(JSON.stringify(await tf.io.listModels()));
 *
 * // Copy the model, from Local Storage to IndexedDB.
 * await tf.io.copyModel(
 *     'localstorage://demo/management/model1',
 *     'indexeddb://demo/management/model1');
 *
 * // List models again.
 * console.log(JSON.stringify(await tf.io.listModels()));
 *
 * // Remove both models.
 * await tf.io.removeModel('localstorage://demo/management/model1');
 * await tf.io.removeModel('indexeddb://demo/management/model1');
 * ```
 *
 * @param sourceURL Source URL of copying.
 * @param destURL Destination URL of copying.
 * @returns ModelArtifactsInfo of the copied model (if and only if copying
 *   is successful).
 * @throws Error if copying fails, e.g., if no model exists at `sourceURL`, or
 *   if `oldPath` and `newPath` are identical.
 *
 * @doc {
 *   heading: 'Models',
 *   subheading: 'Management',
 *   namespace: 'io',
 *   ignoreCI: true
 * }
 */
                async function copyModel(sourceURL, destURL) {
                    const deleteSource = false;
                    return cloneModelInternal(sourceURL, destURL, deleteSource);
                }
                /**
 * Move a model from one URL to another.
 *
 * This function supports:
 *
 * 1. Moving within a storage medium, e.g.,
 *    `tf.io.moveModel('localstorage://model-1', 'localstorage://model-2')`
 * 2. Moving between two storage mediums, e.g.,
 *    `tf.io.moveModel('localstorage://model-1', 'indexeddb://model-1')`
 *
 * ```js
 * // First create and save a model.
 * const model = tf.sequential();
 * model.add(tf.layers.dense(
 *     {units: 1, inputShape: [10], activation: 'sigmoid'}));
 * await model.save('localstorage://demo/management/model1');
 *
 * // Then list existing models.
 * console.log(JSON.stringify(await tf.io.listModels()));
 *
 * // Move the model, from Local Storage to IndexedDB.
 * await tf.io.moveModel(
 *     'localstorage://demo/management/model1',
 *     'indexeddb://demo/management/model1');
 *
 * // List models again.
 * console.log(JSON.stringify(await tf.io.listModels()));
 *
 * // Remove the moved model.
 * await tf.io.removeModel('indexeddb://demo/management/model1');
 * ```
 *
 * @param sourceURL Source URL of moving.
 * @param destURL Destination URL of moving.
 * @returns ModelArtifactsInfo of the copied model (if and only if copying
 *   is successful).
 * @throws Error if moving fails, e.g., if no model exists at `sourceURL`, or
 *   if `oldPath` and `newPath` are identical.
 *
 * @doc {
 *   heading: 'Models',
 *   subheading: 'Management',
 *   namespace: 'io',
 *   ignoreCI: true
 * }
 */
                async function moveModel(sourceURL, destURL) {
                    const deleteSource = true;
                    return cloneModelInternal(sourceURL, destURL, deleteSource);
                }
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Creates a one-hot `tf.Tensor`. The locations represented by `indices` take
 * value `onValue` (defaults to 1), while all other locations take value
 * `offValue` (defaults to 0). If `indices` is rank `R`, the output has rank
 * `R+1` with the last axis of size `depth`.
 * `indices` used to encode prediction class must start from 0. For example,
 *  if you have 3 classes of data, class 1 should be encoded as 0, class 2
 *  should be 1, and class 3 should be 2.
 *
 * ```js
 * tf.oneHot(tf.tensor1d([0, 1], 'int32'), 3).print();
 * ```
 *
 * @param indices `tf.Tensor` of indices with dtype `int32`. Indices must
 * start from 0.
 * @param depth The depth of the one hot dimension.
 * @param onValue A number used to fill in the output when the index matches
 * the location.
 * @param offValue A number used to fill in the output when the index does
 *     not match the location.
 * @param dtype The dtype of the output tensor, default to 'int32'.
 *
 * @doc {heading: 'Tensors', subheading: 'Creation'}
 */
                function oneHot_(indices, depth, onValue = 1, offValue = 0, dtype = 'int32') {
                    if (depth < 2) {
                        throw new Error(`Error in oneHot: depth must be >=2, but it is ${depth}`);
                    }
                    const $indices = convertToTensor(indices, 'indices', 'oneHot', 'int32');
                    const inputs = {
                        indices: $indices
                    };
                    const attrs = {
                        dtype,
                        depth,
                        onValue,
                        offValue
                    };
                    return ENGINE.runKernel(OneHot, inputs, attrs);
                }
                const oneHot = op({
                    oneHot_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the confusion matrix from true labels and predicted labels.
 *
 * ```js
 * const labels = tf.tensor1d([0, 1, 2, 1, 0], 'int32');
 * const predictions = tf.tensor1d([0, 2, 2, 1, 0], 'int32');
 * const numClasses = 3;
 * const out = tf.math.confusionMatrix(labels, predictions, numClasses);
 * out.print();
 * // Expected output matrix:
 * // [[2, 0, 0],
 * //  [0, 1, 1],
 * //  [0, 0, 1]]
 * ```
 *
 * @param labels The target labels, assumed to be 0-based integers
 *   for the classes. The shape is `[numExamples]`, where
 *   `numExamples` is the number of examples included.
 * @param predictions The predicted classes, assumed to be
 *   0-based integers for the classes. Must have the same shape as `labels`.
 * @param numClasses Number of all classes, as an integer.
 *   Its value must be larger than the largest element in `labels` and
 *   `predictions`.
 * @returns The confusion matrix as a int32-type 2D tensor. The value at
 *   row `r` and column `c` is the number of times examples of actual class
 *   `r` were predicted as class `c`.
 *
 * @doc {heading: 'Operations', subheading: 'Evaluation'}
 */
                function confusionMatrix_(labels, predictions, numClasses) {
                    const $labels = convertToTensor(labels, 'labels', 'confusionMatrix');
                    const $predictions = convertToTensor(predictions, 'predictions', 'confusionMatrix');
                    assert(numClasses == null || numClasses > 0 && Number.isInteger(numClasses), () => `If provided, numClasses must be a positive integer, ` + `but got ${numClasses}`);
                    assert($labels.rank === 1, () => `Expected the rank of labels to be 1, but got ${$labels.rank}`);
                    assert($predictions.rank === 1, () => `Expected the rank of predictions to be 1, ` + `but got ${$predictions.rank}`);
                    assert($labels.shape[0] === $predictions.shape[0], () => `Mismatch in the number of examples: ` + `${$labels.shape[0]} vs. ${$predictions.shape[0]}. ` + `Labels and predictions should have the same number of elements.`);
                    assert(numClasses > 0 && Number.isInteger(numClasses), () => `numClasses is required to be a positive integer, but got ` + `${numClasses}`);
                    // TODO(cais): In the future, if oneHot supports tensors inputs for
                    //   `numClasses`, `confusionMatrix` can make `numClasses` optional.
                    const oneHotLabels = oneHot(cast($labels, 'int32'), numClasses);
                    const oneHotPredictions = oneHot(cast($predictions, 'int32'), numClasses);
                    const oneHotLabelsT = transpose(oneHotLabels);
                    const product = matMul(oneHotLabelsT, oneHotPredictions);
                    return cast(product, 'int32');
                }
                const confusionMatrix = op({
                    confusionMatrix_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Creates rank-3 `tf.Tensor` with the provided values, shape and dtype.
 *
 * The same functionality can be achieved with `tf.tensor`, but in general
 * we recommend using `tf.tensor3d` as it makes the code more readable.
 *
 *  ```js
 * // Pass a nested array.
 * tf.tensor3d([[[1], [2]], [[3], [4]]]).print();
 * ```
 * ```js
 * // Pass a flat array and specify a shape.
 * tf.tensor3d([1, 2, 3, 4], [2, 2, 1]).print();
 * ```
 *
 * @param values The values of the tensor. Can be nested array of numbers,
 *     or a flat array, or a `TypedArray`.
 * @param shape The shape of the tensor. If not provided,  it is inferred from
 *     `values`.
 * @param dtype The data type.
 *
 * @doc {heading: 'Tensors', subheading: 'Creation'}
 */
                function tensor3d(values, shape, dtype) {
                    assertNonNull(values);
                    if (shape != null && shape.length !== 3) {
                        throw new Error('tensor3d() requires shape to have three numbers');
                    }
                    const inferredShape = inferShape(values, dtype);
                    if (inferredShape.length !== 3 && inferredShape.length !== 1) {
                        throw new Error('tensor3d() requires values to be number[][][] or flat/TypedArray');
                    }
                    if (inferredShape.length === 1 && shape == null) {
                        throw new Error('tensor3d() requires shape to be provided when `values` ' + 'are a flat array');
                    }
                    return makeTensor(values, shape, inferredShape, dtype);
                }
                /**
 * @license
 * Copyright 2019 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                let fromPixels2DContext;
                /**
 * Creates a `tf.Tensor` from an image.
 *
 * ```js
 * const image = new ImageData(1, 1);
 * image.data[0] = 100;
 * image.data[1] = 150;
 * image.data[2] = 200;
 * image.data[3] = 255;
 *
 * tf.browser.fromPixels(image).print();
 * ```
 *
 * @param pixels The input image to construct the tensor from. The
 * supported image types are all 4-channel. You can also pass in an image
 * object with following attributes:
 * `{data: Uint8Array; width: number; height: number}`
 * @param numChannels The number of channels of the output tensor. A
 * numChannels value less than 4 allows you to ignore channels. Defaults to
 * 3 (ignores alpha channel of input image).
 *
 * @returns A Tensor3D with the shape `[height, width, numChannels]`.
 *
 * Note: fromPixels can be lossy in some cases, same image may result in
 * slightly different tensor values, if rendered by different rendering
 * engines. This means that results from different browsers, or even same
 * browser with CPU and GPU rendering engines can be different. See discussion
 * in details:
 * https://github.com/tensorflow/tfjs/issues/5482
 *
 * @doc {heading: 'Browser', namespace: 'browser', ignoreCI: true}
 */
                function fromPixels_(pixels, numChannels = 3) {
                    // Sanity checks.
                    if (numChannels > 4) {
                        throw new Error('Cannot construct Tensor with more than 4 channels from pixels.');
                    }
                    if (pixels == null) {
                        throw new Error('pixels passed to tf.browser.fromPixels() can not be null');
                    }
                    let isPixelData = false;
                    let isImageData = false;
                    let isVideo = false;
                    let isImage = false;
                    let isCanvasLike = false;
                    let isImageBitmap = false;
                    if (pixels.data instanceof Uint8Array) {
                        isPixelData = true;
                    } else if (typeof ImageData !== 'undefined' && pixels instanceof ImageData) {
                        isImageData = true;
                    } else if (typeof HTMLVideoElement !== 'undefined' && pixels instanceof HTMLVideoElement) {
                        isVideo = true;
                    } else if (typeof HTMLImageElement !== 'undefined' && pixels instanceof HTMLImageElement) {
                        isImage = true;
                        // tslint:disable-next-line: no-any
                    } else if (pixels.getContext != null) {
                        isCanvasLike = true;
                    } else if (typeof ImageBitmap !== 'undefined' && pixels instanceof ImageBitmap) {
                        isImageBitmap = true;
                    } else {
                        throw new Error('pixels passed to tf.browser.fromPixels() must be either an ' + `HTMLVideoElement, HTMLImageElement, HTMLCanvasElement, ImageData ` + `in browser, or OffscreenCanvas, ImageData in webworker` + ` or {data: Uint32Array, width: number, height: number}, ` + `but was ${pixels.constructor.name}`);
                    }
                    // If the current backend has 'FromPixels' registered, it has a more
                    // efficient way of handling pixel uploads, so we call that.
                    const kernel = getKernel(FromPixels, ENGINE.backendName);
                    if (kernel != null) {
                        const inputs = {
                            pixels
                        };
                        const attrs = {
                            numChannels
                        };
                        return ENGINE.runKernel(FromPixels, inputs, attrs);
                    }
                    const [width, height] = isVideo ? [pixels.videoWidth, pixels.videoHeight] : [pixels.width, pixels.height];
                    let vals;
                    if (isCanvasLike) {
                        vals = // tslint:disable-next-line:no-any
                            pixels.getContext('2d').getImageData(0, 0, width, height).data;
                    } else if (isImageData || isPixelData) {
                        vals = pixels.data;
                    } else if (isImage || isVideo || isImageBitmap) {
                        if (fromPixels2DContext == null) {
                            if (typeof document === 'undefined') {
                                if (typeof OffscreenCanvas !== 'undefined' && typeof OffscreenCanvasRenderingContext2D !== 'undefined') {
                                    // @ts-ignore
                                    fromPixels2DContext = new OffscreenCanvas(1, 1).getContext('2d');
                                } else {
                                    throw new Error('Cannot parse input in current context. ' + 'Reason: OffscreenCanvas Context2D rendering is not supported.');
                                }
                            } else {
                                fromPixels2DContext = document.createElement('canvas').getContext('2d', {
                                    willReadFrequently: true
                                });
                            }
                        }
                        fromPixels2DContext.canvas.width = width;
                        fromPixels2DContext.canvas.height = height;
                        fromPixels2DContext.drawImage(pixels, 0, 0, width, height);
                        vals = fromPixels2DContext.getImageData(0, 0, width, height).data;
                    }
                    let values;
                    if (numChannels === 4) {
                        values = new Int32Array(vals);
                    } else {
                        const numPixels = width * height;
                        values = new Int32Array(numPixels * numChannels);
                        for (let i = 0; i < numPixels; i++) {
                            for (let channel = 0; channel < numChannels; ++channel) {
                                values[i * numChannels + channel] = vals[i * 4 + channel];
                            }
                        }
                    }
                    const outShape = [height, width, numChannels];
                    return tensor3d(values, outShape, 'int32');
                }
                // Helper functions for |fromPixelsAsync| to check whether the input can
                // be wrapped into imageBitmap.
                function isPixelData(pixels) {
                    return pixels != null && pixels.data instanceof Uint8Array;
                }
                function isImageBitmapFullySupported() {
                    return typeof window !== 'undefined' && typeof ImageBitmap !== 'undefined' && window.hasOwnProperty('createImageBitmap');
                }
                function isNonEmptyPixels(pixels) {
                    return pixels != null && pixels.width !== 0 && pixels.height !== 0;
                }
                function canWrapPixelsToImageBitmap(pixels) {
                    return isImageBitmapFullySupported() && !(pixels instanceof ImageBitmap) && isNonEmptyPixels(pixels) && !isPixelData(pixels);
                }
                /**
 * Creates a `tf.Tensor` from an image in async way.
 *
 * ```js
 * const image = new ImageData(1, 1);
 * image.data[0] = 100;
 * image.data[1] = 150;
 * image.data[2] = 200;
 * image.data[3] = 255;
 *
 * (await tf.browser.fromPixelsAsync(image)).print();
 * ```
 * This API is the async version of fromPixels. The API will first
 * check |WRAP_TO_IMAGEBITMAP| flag, and try to wrap the input to
 * imageBitmap if the flag is set to true.
 *
 * @param pixels The input image to construct the tensor from. The
 * supported image types are all 4-channel. You can also pass in an image
 * object with following attributes:
 * `{data: Uint8Array; width: number; height: number}`
 * @param numChannels The number of channels of the output tensor. A
 * numChannels value less than 4 allows you to ignore channels. Defaults to
 * 3 (ignores alpha channel of input image).
 *
 * @doc {heading: 'Browser', namespace: 'browser', ignoreCI: true}
 */
                async function fromPixelsAsync(pixels, numChannels = 3) {
                    let inputs = null;
                    // Check whether the backend needs to wrap |pixels| to imageBitmap and
                    // whether |pixels| can be wrapped to imageBitmap.
                    if (env().getBool('WRAP_TO_IMAGEBITMAP') && canWrapPixelsToImageBitmap(pixels)) {
                        // Force the imageBitmap creation to not do any premultiply alpha
                        // ops.
                        let imageBitmap;
                        try {
                            // wrap in try-catch block, because createImageBitmap may not work
                            // properly in some browsers, e.g.
                            // https://bugzilla.mozilla.org/show_bug.cgi?id=1335594
                            // tslint:disable-next-line: no-any
                            imageBitmap = await createImageBitmap(pixels, {
                                premultiplyAlpha: 'none'
                            });
                        } catch (e) {
                            imageBitmap = null;
                        }
                        // createImageBitmap will clip the source size.
                        // In some cases, the input will have larger size than its content.
                        // E.g. new Image(10, 10) but with 1 x 1 content. Using
                        // createImageBitmap will clip the size from 10 x 10 to 1 x 1, which
                        // is not correct. We should avoid wrapping such resouce to
                        // imageBitmap.
                        if (imageBitmap != null && imageBitmap.width === pixels.width && imageBitmap.height === pixels.height) {
                            inputs = imageBitmap;
                        } else {
                            inputs = pixels;
                        }
                    } else {
                        inputs = pixels;
                    }
                    return fromPixels_(inputs, numChannels);
                }
                /**
 * Draws a `tf.Tensor` of pixel values to a byte array or optionally a
 * canvas.
 *
 * When the dtype of the input is 'float32', we assume values in the range
 * [0-1]. Otherwise, when input is 'int32', we assume values in the range
 * [0-255].
 *
 * Returns a promise that resolves when the canvas has been drawn to.
 *
 * @param img A rank-2 tensor with shape `[height, width]`, or a rank-3 tensor
 * of shape `[height, width, numChannels]`. If rank-2, draws grayscale. If
 * rank-3, must have depth of 1, 3 or 4. When depth of 1, draws
 * grayscale. When depth of 3, we draw with the first three components of
 * the depth dimension corresponding to r, g, b and alpha = 1. When depth of
 * 4, all four components of the depth dimension correspond to r, g, b, a.
 * @param canvas The canvas to draw to.
 *
 * @doc {heading: 'Browser', namespace: 'browser'}
 */
                async function toPixels(img, canvas) {
                    let $img = convertToTensor(img, 'img', 'toPixels');
                    if (!(img instanceof Tensor)) {
                        // Assume int32 if user passed a native array.
                        const originalImgTensor = $img;
                        $img = cast(originalImgTensor, 'int32');
                        originalImgTensor.dispose();
                    }
                    if ($img.rank !== 2 && $img.rank !== 3) {
                        throw new Error(`toPixels only supports rank 2 or 3 tensors, got rank ${$img.rank}.`);
                    }
                    const [height, width] = $img.shape.slice(0, 2);
                    const depth = $img.rank === 2 ? 1 : $img.shape[2];
                    if (depth > 4 || depth === 2) {
                        throw new Error(`toPixels only supports depth of size ` + `1, 3 or 4 but got ${depth}`);
                    }
                    if ($img.dtype !== 'float32' && $img.dtype !== 'int32') {
                        throw new Error(`Unsupported type for toPixels: ${$img.dtype}.` + ` Please use float32 or int32 tensors.`);
                    }
                    const data = await $img.data();
                    const multiplier = $img.dtype === 'float32' ? 255 : 1;
                    const bytes = new Uint8ClampedArray(width * height * 4);
                    for (let i = 0; i < height * width; ++i) {
                        const rgba = [0, 0, 0, 255];
                        for (let d = 0; d < depth; d++) {
                            const value = data[i * depth + d];
                            if ($img.dtype === 'float32') {
                                if (value < 0 || value > 1) {
                                    throw new Error(`Tensor values for a float32 Tensor must be in the ` + `range [0 - 1] but encountered ${value}.`);
                                }
                            } else if ($img.dtype === 'int32') {
                                if (value < 0 || value > 255) {
                                    throw new Error(`Tensor values for a int32 Tensor must be in the ` + `range [0 - 255] but encountered ${value}.`);
                                }
                            }
                            if (depth === 1) {
                                rgba[0] = value * multiplier;
                                rgba[1] = value * multiplier;
                                rgba[2] = value * multiplier;
                            } else {
                                rgba[d] = value * multiplier;
                            }
                        }
                        const j = i * 4;
                        bytes[j + 0] = Math.round(rgba[0]);
                        bytes[j + 1] = Math.round(rgba[1]);
                        bytes[j + 2] = Math.round(rgba[2]);
                        bytes[j + 3] = Math.round(rgba[3]);
                    }
                    if (canvas != null) {
                        canvas.width = width;
                        canvas.height = height;
                        const ctx = canvas.getContext('2d');
                        const imageData = new ImageData(bytes, width, height);
                        ctx.putImageData(imageData, 0, 0);
                    }
                    if ($img !== img) {
                        $img.dispose();
                    }
                    return bytes;
                }
                const fromPixels = op({
                    fromPixels_
                });
                /**
 * Validate gather nd inputs.
 *
 * @param tensor The tensor contains the source values.
 * @param indices The tensor contains the indices to slice the source.
 *
 * @returns [resultShape, numUpdates, sliceSize, strides]
 */
                function prepareAndValidate(tensor, indices) {
                    const tensorRank = tensor.shape.length;
                    const indicesRank = indices.shape.length;
                    if (tensorRank < 1) {
                        throw new Error('tf.gatherND() expects the input to be rank 1 or higher,' + ` but the rank was ${tensorRank}.`);
                    }
                    if (indicesRank < 1) {
                        throw new Error('tf.gatherND() expects the indices to be rank 1 or higher,' + ` but the rank was ${indicesRank}.`);
                    }
                    if (indices.dtype !== 'int32') {
                        throw new Error('tf.gatherND() expects the indices to be int32 type,' + ` but the dtype was ${indices.dtype}.`);
                    }
                    if (indices.shape[indicesRank - 1] > tensorRank) {
                        throw new Error('index innermost dimension length must be <= tensor rank; saw: ' + `${indices.shape[indicesRank - 1]} vs. ${tensorRank}`);
                    }
                    if (sizeFromShape(tensor.shape) === 0) {
                        throw new Error('Requested more than 0 entries, but input is empty.' + ` Input shape: ${tensor.shape}.`);
                    }
                    const indicesShape = indices.shape;
                    const sliceRank = indicesShape[indicesShape.length - 1];
                    // The result shape is
                    //   indices.shape[:-1] + params.shape[indices.shape[-1]:]
                    let nResult = 1;
                    for (let i = 0; i < indicesShape.length - 1; ++i) {
                        nResult *= indicesShape[i];
                    }
                    const inputShape = tensor.shape;
                    const resultShape = indicesShape.slice();
                    resultShape.pop();
                    let sliceSize = 1;
                    for (let i = sliceRank; i < tensorRank; ++i) {
                        sliceSize *= inputShape[i];
                        resultShape.push(inputShape[i]);
                    }
                    const strides = [...computeStrides(tensor.shape).map(stride => stride / sliceSize), 1].slice(0, sliceRank);
                    return [resultShape, nResult, sliceSize, strides];
                }
                /**
 * Check whether updates.shape = indices.shape[:batchDim] +
 * shape[sliceDim:]
 *
 * @param x The input tensor.
 */
                function validateUpdateShape(shape, indices, updates) {
                    const sliceDim = indices.rank > 1 ? indices.shape[indices.rank - 1] : 1;
                    const batchDim = indices.rank > 1 ? indices.rank - 1 : 1;
                    const shapeError = 'Must have updates.shape = indices.shape[:batchDim] + ' + `shape[sliceDim:], got updates.shape: ${updates.shape}` + `, indices.shape: ${indices.shape}, shape: ${shape}` + `, sliceDim: ${sliceDim}, and batchDim: ${batchDim}.`;
                    if (updates.rank < batchDim) {
                        throw new Error(shapeError + ` update.rank < ${batchDim}. `);
                    }
                    if (shape.length < sliceDim + (updates.rank - batchDim)) {
                        throw new Error(shapeError + ` Output shape length < ${sliceDim + (updates.rank - batchDim)}`);
                    }
                    if (updates.rank !== batchDim + shape.length - sliceDim) {
                        throw new Error(shapeError + ` update.rank != ${batchDim + shape.length - sliceDim}`);
                    }
                    for (let d = 0; d < batchDim; ++d) {
                        if (updates.shape[d] !== indices.shape[d]) {
                            throw new Error(shapeError + ` updates.shape[${d}] (${updates.shape[d]}) != indices.shape[${d}] (${indices.shape[d]}).`);
                        }
                    }
                    for (let d = 0; d < updates.rank - batchDim; ++d) {
                        if (updates.shape[d + batchDim] !== shape[d + sliceDim]) {
                            throw new Error(shapeError + ` updates.shape[${d + batchDim}] (${updates.shape[d + batchDim]}) != shape[${d + batchDim}] (${shape[d + batchDim]})`);
                        }
                    }
                }
                /**
 * Validate scatter nd inputs.
 *
 * @param update The tensor contains the update values.
 * @param indices The tensor contains the indices for the update values.
 * @param shape The shape of the output tensor.
 */
                function validateInput(updates, indices, shape) {
                    if (indices.rank < 1) {
                        throw new Error('tf.scatterND() expects the indices to be rank 1 or higher,' + ` but the rank was ${indices.rank}.`);
                    }
                    if (updates.rank < 1) {
                        throw new Error('tf.scatterND() expects the updates to be rank 1 or higher,' + ` but the rank was ${updates.rank}.`);
                    }
                    if (indices.dtype !== 'int32') {
                        throw new Error(`The dtype of 'indices' should be int32, but got dtype: ${indices.dtype}`);
                    }
                    if (shape.length < 1) {
                        throw new Error(`Output rank must be greater or equal to 1, but got shape: ${shape}`);
                    }
                    if (shape.length === 0) {
                        if (indices.size === 0) {
                            throw new Error(`Indices specified for empty output. indices shape: ${indices.shape}`);
                        }
                        if (updates.size === 0) {
                            throw new Error(`Updates specified for empty output. updates shape: ${updates.shape}`);
                        }
                    }
                    validateUpdateShape(shape, indices, updates);
                }
                /**
 * Calculate the shape information for the output.
 *
 * @param update The tensor contains the update values.
 * @param indices The tensor contains the indices for the update values.
 * @param shape The shape of the output tensor.
 *
 * @returns ScatterShapeInfo
 */
                function calculateShapes(updates, indices, shape) {
                    // Calculate the number of dimensions in indices
                    const indicesRank = indices.shape.length;
                    const sliceRank = indicesRank > 1 ? indices.shape[indicesRank - 1] : 1;
                    // Calculate the number of elements that make up each slice of our updated
                    // tensor. This allows us to work with flattened tensors and copy over whole
                    // slices at a time.
                    const totalNd = shape.length;
                    let sliceSize = 1;
                    for (let i = sliceRank; i < totalNd; ++i) {
                        sliceSize *= shape[i];
                    }
                    const safeSliceDim = sliceRank < 1 ? 1 : sliceRank;
                    const numUpdates = sizeFromShape(indices.shape) / safeSliceDim;
                    const strides = [...computeStrides(shape.slice(0, sliceRank)), 1];
                    const outputSize = sizeFromShape(shape);
                    return {
                        sliceRank,
                        numUpdates,
                        sliceSize,
                        strides,
                        outputSize
                    };
                }
                /**
 * @license
 * Copyright 2021 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const NEW_AXIS = -2;
                const SHRINK_AXIS = -1;
                function assertParamsValid(input, begin, size) {
                    const inputRank = input.shape.length;
                    assert(inputRank === begin.length, () => `Error in slice${inputRank}D: Length of begin ${begin} must ` + `match the rank of the array (${inputRank}).`);
                    assert(inputRank === size.length, () => `Error in slice${inputRank}D: Length of size ${size} must ` + `match the rank of the array (${inputRank}).`);
                    for (let i = 0; i < inputRank; ++i) {
                        assert(begin[i] + size[i] <= input.shape[i], () => `Error in slice${inputRank}D: begin[${i}] + size[${i}] ` + `(${begin[i] + size[i]}) would overflow input.shape[${i}] (${input.shape[i]})`);
                    }
                }
                /** Converts a binary mask to an array of axes. Used in stridedSlice(). */
                function maskToAxes(mask) {
                    const axes = [];
                    let axis = 0;
                    while (mask > 0) {
                        if (mask & 1) {
                            axes.push(axis);
                        }
                        mask /= 2;
                        axis++;
                    }
                    return axes;
                }
                /** Computes the output shape given the strided slice params. */
                function computeOutShape(begin, end, strides) {
                    const size = [];
                    for (let axis = 0; axis < begin.length; axis++) {
                        size[axis] = Math.ceil((end[axis] - begin[axis]) / strides[axis]);
                    }
                    return size;
                }
                // Creates full selection at the elided dimensions. If the dimension matches
                // the ellipsis mask, override the current stride value. Otherwise, insert.
                function stridesWithElidedDims(strides, ellipsisInsertionIndex, numElidedAxes, inputShape) {
                    const newStrides = [...strides];
                    for (let i = newStrides.length; i < inputShape.length; i++) {
                        newStrides.push(1);
                    }
                    for (let i = 0; i < numElidedAxes; i++) {
                        if (i === 0) {
                            newStrides[ellipsisInsertionIndex] = 1;
                        } else {
                            newStrides.splice(ellipsisInsertionIndex, 0 /* num elements to delete */
                                , 1 /* element to add */
                            );
                            newStrides.pop();
                        }
                    }
                    return newStrides;
                }
                function unnormalizeAxis(ellipsisInsertionIndex, numElidedAxes, normalizedAxis) {
                    if (normalizedAxis <= ellipsisInsertionIndex) {
                        return normalizedAxis;
                    }
                    return normalizedAxis - (numElidedAxes - 1);
                }
                function getElidedAxes(numElidedAxes, ellipsisInsertionIndex) {
                    const elidedAxes = [];
                    for (let i = 0; i < numElidedAxes; i++) {
                        elidedAxes.push(ellipsisInsertionIndex + i);
                    }
                    return elidedAxes;
                }
                // Normalize the start, end and strides.
                function getNormalizedAxes(inputShape, ellipsisAxes, numInterpolatedAxes, begin, end, strides, beginMask, endMask, ellipsisMask) {
                    const inputRank = inputShape.length;
                    let normalizedBegin = new Array(inputRank)
                        , normalizedEnd = new Array(inputRank)
                        , normalizedStrides = new Array(inputRank);
                    if (ellipsisAxes.length && numInterpolatedAxes > 0) {
                        const fullIndex = ellipsisAxes[0];
                        // The ellipsis applies to the masked index as well as any dimensions
                        // that are interpolated.
                        const numElidedAxes = numInterpolatedAxes + 1;
                        normalizedBegin = startIndicesWithElidedDims(beginMask, fullIndex, numElidedAxes, begin, inputShape);
                        normalizedEnd = stopIndicesWithElidedDims(endMask, fullIndex, numElidedAxes, end, inputShape);
                        normalizedStrides = stridesWithElidedDims(strides, fullIndex, numElidedAxes, inputShape);
                    } else {
                        for (let axis = 0; axis < inputRank; axis++) {
                            normalizedBegin[axis] = startForAxis(beginMask, begin, strides, inputShape, axis, ellipsisMask);
                            normalizedEnd[axis] = stopForAxis(endMask, end, strides, inputShape, axis, ellipsisMask);
                            normalizedStrides[axis] = stridesForAxis(strides, axis, ellipsisMask);
                        }
                    }
                    return {
                        begin: normalizedBegin,
                        end: normalizedEnd,
                        strides: normalizedStrides
                    };
                }
                // Creates full selection at the elided dimensions. If the dimension matches
                // the ellipsis mask, override the current start value. Otherwise, insert.
                function startIndicesWithElidedDims(beginMask, ellipsisInsertionIndex, numElidedAxes, originalBegin, inputShape) {
                    const newIndices = [...inputShape];
                    const elidedAxes = getElidedAxes(numElidedAxes, ellipsisInsertionIndex);
                    for (let axis = 0; axis < newIndices.length; axis++) {
                        if (elidedAxes.indexOf(axis) > -1) {
                            newIndices[axis] = 0;
                        } else {
                            const originalAxis = unnormalizeAxis(ellipsisInsertionIndex, numElidedAxes, axis);
                            let originalValue = originalBegin[originalAxis];
                            if (beginMask & 1 << originalAxis) {
                                originalValue = 0;
                            }
                            newIndices[axis] = originalValue;
                        }
                    }
                    return newIndices;
                }
                // Creates full selection at the elided dimensions. If the dimension matches
                // the ellipsis mask, override the current stop value. Otherwise, insert.
                function stopIndicesWithElidedDims(endMask, ellipsisInsertionIndex, numElidedAxes, originalEnd, inputShape) {
                    const newIndices = [...inputShape];
                    const elidedAxes = getElidedAxes(numElidedAxes, ellipsisInsertionIndex);
                    for (let axis = 0; axis < newIndices.length; axis++) {
                        if (elidedAxes.indexOf(axis) > -1) {
                            newIndices[axis] = Number.MAX_SAFE_INTEGER;
                        } else {
                            const originalAxis = unnormalizeAxis(ellipsisInsertionIndex, numElidedAxes, axis);
                            let originalValue = originalEnd[originalAxis];
                            if (endMask & 1 << originalAxis) {
                                originalValue = Number.MAX_SAFE_INTEGER;
                            }
                            newIndices[axis] = originalValue;
                        }
                    }
                    for (let i = 0; i < newIndices.length; i++) {
                        // Handle negative indices
                        const axisSize = inputShape[i];
                        if (newIndices[i] < 0) {
                            newIndices[i] += axisSize;
                        }
                        newIndices[i] = clamp(0, newIndices[i], inputShape[i]);
                    }
                    return newIndices;
                }
                function stridesForAxis(strides, axis, ellipsisMask) {
                    let stride = strides[axis];
                    if (ellipsisMask & 1 << axis || stride == null) {
                        stride = 1;
                    }
                    return stride;
                }
                function startForAxis(beginMask, startIndices, strides, inputShape, axis, ellipsisMask) {
                    // Begin with the specified index
                    let start = startIndices[axis];
                    const stride = strides[axis] || 1;
                    // Check the axis bit from right of masked axes, or the begin index is not set
                    // for the axis.
                    if (beginMask & 1 << axis || ellipsisMask & 1 << axis || start == null) {
                        if (stride > 0) {
                            // Forward iteration - use the first element. These values will get
                            // clamped below (Note: We could have set them to 0 and axis_size-1, but
                            // use lowest() and max() to maintain symmetry with StopForAxis())
                            start = Number.MIN_SAFE_INTEGER;
                        } else {
                            // Backward iteration - use the last element.
                            start = Number.MAX_SAFE_INTEGER;
                        }
                    }
                    // Handle negative indices
                    const axisSize = inputShape[axis];
                    if (start < 0) {
                        start += axisSize;
                    }
                    // Clamping
                    start = clamp(0, start, axisSize - 1);
                    return start;
                }
                function stopForAxis(endMask, stopIndices, strides, inputShape, axis, ellipsisMask) {
                    // Begin with the specified index
                    let stop = stopIndices[axis];
                    const stride = strides[axis] || 1;
                    // Check the axis bit from right of masked axes, or if the stop index is not
                    // set for this axis.
                    if (endMask & 1 << axis || ellipsisMask & 1 << axis || stop == null) {
                        if (stride > 0) {
                            // Forward iteration - use the last element. These values will get
                            // clamped below
                            stop = Number.MAX_SAFE_INTEGER;
                        } else {
                            // Backward iteration - use the first element.
                            stop = Number.MIN_SAFE_INTEGER;
                        }
                    }
                    // Handle negative indices
                    const axisSize = inputShape[axis];
                    if (stop < 0) {
                        stop += axisSize;
                    }
                    // Clamping
                    // Because the end index points one past the last element, we need slightly
                    // different clamping ranges depending on the direction.
                    if (stride > 0) {
                        // Forward iteration
                        stop = clamp(0, stop, axisSize);
                    } else {
                        // Backward iteration
                        stop = clamp(-1, stop, axisSize - 1);
                    }
                    return stop;
                }
                /**
 * Returns true if the slice occupies a continous set of elements in the
 * 'flat' space.
 */
                function isSliceContinous(shape, begin, size) {
                    // Index of the first axis that has size > 1.
                    let firstNonOneAxis = size.length;
                    for (let i = 0; i < size.length; i++) {
                        if (size[i] > 1) {
                            firstNonOneAxis = i;
                            break;
                        }
                    }
                    for (let i = firstNonOneAxis + 1; i < size.length; i++) {
                        if (begin[i] > 0 || size[i] !== shape[i]) {
                            return false;
                        }
                    }
                    return true;
                }
                function computeFlatOffset(begin, strides) {
                    let flatOffset = begin.length > 0 ? begin[begin.length - 1] : 1;
                    for (let i = 0; i < begin.length - 1; i++) {
                        flatOffset += begin[i] * strides[i];
                    }
                    return flatOffset;
                }
                function parseSliceParams(x, begin, size) {
                    // The following logic allows for more ergonomic calls.
                    let begin_;
                    const xRank = x.shape.length;
                    if (typeof begin === 'number') {
                        begin_ = [begin, ...new Array(xRank - 1).fill(0)];
                    } else if (begin.length < xRank) {
                        begin_ = begin.concat(new Array(xRank - begin.length).fill(0));
                    } else {
                        begin_ = begin.slice();
                    }
                    begin_.forEach(d => {
                        assert(d !== -1, () => 'slice() does not support negative begin indexing.');
                    }
                    );
                    let size_;
                    if (size == null) {
                        size_ = new Array(xRank).fill(-1);
                    } else if (typeof size === 'number') {
                        size_ = [size, ...new Array(xRank - 1).fill(-1)];
                    } else if (size.length < xRank) {
                        size_ = size.concat(new Array(xRank - size.length).fill(-1));
                    } else {
                        size_ = size;
                    }
                    size_ = size_.map((d, i) => {
                        if (d >= 0) {
                            return d;
                        } else {
                            assert(d === -1, () => `Negative size values should be exactly -1 but got ` + `${d} for the slice() size at index ${i}.`);
                            return x.shape[i] - begin_[i];
                        }
                    }
                    );
                    return [begin_, size_];
                }
                // Convert the slicing specification from a sparse representation to a dense
                // representation. This means that all ellipses and newaxis are expanded out.
                function sliceInfo(xShape, begin, end, strides, beginMask, endMask, ellipsisMask, newAxisMask, shrinkAxisMask) {
                    let stridesNonNull;
                    if (strides == null) {
                        stridesNonNull = new Array(begin.length);
                        stridesNonNull.fill(1);
                    } else {
                        stridesNonNull = strides;
                    }
                    // Only one non-zero bit is allowed in ellipsisMask, which means ellipsisMask
                    // is a power of 2. Use bit compares to ensure ellipsisMask is 0 or a power
                    // of 2. When i is a power of 2, i & (i - 1) is always 0.
                    // Also ref:
                    // https://stackoverflow.com/questions/600293/how-to-check-if-a-number-is-a-power-of-2
                    if (ellipsisMask != null && (ellipsisMask & ellipsisMask - 1) !== 0) {
                        throw new Error('Multiple ellipses in slice is not allowed.');
                    }
                    // Step 1: Account for ellipsis and new axis.
                    // Check for ellipsis and count how many non-newaxis there are after.
                    let ellipsisSeen = false;
                    const sparseSpec = {
                        dims: stridesNonNull.length,
                        numAddAxisAfterEllipsis: 0,
                        begin: begin.slice(),
                        end: end.slice(),
                        strides: stridesNonNull.slice(),
                        beginMask,
                        endMask,
                        ellipsisMask,
                        newAxisMask,
                        shrinkAxisMask
                    };
                    for (let i = 0; i < sparseSpec.dims; i++) {
                        if (ellipsisSeen && (1 << i & newAxisMask) !== 0) {
                            sparseSpec.numAddAxisAfterEllipsis++;
                        }
                        if (1 << i & ellipsisMask) {
                            ellipsisSeen = true;
                        }
                    }
                    // If no ellipsis insert one at the end.
                    if (!ellipsisSeen) {
                        sparseSpec.ellipsisMask |= 1 << sparseSpec.dims;
                        sparseSpec.dims++;
                        // this effects loop iteration below
                    }
                    // Step 2: Make a sparse spec into a full index spec.
                    //
                    // The sparse spec deos not correspond to the number of dimensions.
                    // Make a dense spec that cooresponds to the number of dimensions.
                    //
                    // For example suppose foo[...,3:] on foo.shape = [2, 2, 3] then we need to
                    // produce the missing beginMask for the first two dimensions i.e. from
                    // beginMaskSpec = 0, endMaskSpec = 2, we achieve beginMask = 6 (110),
                    // endMask = 7 (111).
                    const denseSpec = {
                        dims: xShape.length,
                        beginMask: 0,
                        endMask: 0,
                        beginValid: false,
                        endValid: false
                    };
                    buildDenseSpec(sparseSpec, denseSpec);
                    // Step 3: Make implicit ranges (non-zero beginMasks and endMasks) explicit
                    // and bounds check.
                    let isIdentity = true;
                    let sliceDim0 = true;
                    let isSimpleSlice = true;
                    const processingShape = [];
                    const finalShape = [];
                    for (let i = 0; i < xShape.length; ++i) {
                        if (denseSpec.strides[i] === 0) {
                            throw Error(`strides[${i}] must be non-zero`);
                        }
                        const shrinkI = !!(denseSpec.shrinkAxisMask & 1 << i);
                        const dimI = xShape[i];
                        if (dimI === -1) {
                            processingShape.push(shrinkI ? 1 : -1);
                            continue;
                        }
                        const masks = [denseSpec.beginMask & 1 << i, denseSpec.endMask & 1 << i];
                        const validRange = [denseSpec.strides[i] > 0 ? 0 : -1, denseSpec.strides[i] > 0 ? dimI : dimI - 1];
                        if (shrinkI && denseSpec.strides[i] <= 0) {
                            throw Error('only stride 1 allowed on non-range indexing.');
                        }
                        isSimpleSlice = isSimpleSlice && denseSpec.strides[i] === 1;
                        const beginAndEndMasked = !!(denseSpec.beginMask & 1 << i && denseSpec.endMask & 1 << i);
                        if (denseSpec.beginValid && denseSpec.endValid) {
                            if (shrinkI) {
                                // If we are shrinking, the end index is now possibly incorrect. In
                                // particular foo[-1] produces sparseBegin = -1, sparseEnd = 0.
                                // and canonical puts these to n-1 and 0, which implies a degenerate
                                // interval. Fortunately, it is now safe to re-create end as begin + 1.
                                const xFwd = denseSpec.begin[i] < 0 ? dimI + denseSpec.begin[i] : denseSpec.begin[i];
                                denseSpec.begin[i] = xFwd;
                                denseSpec.end[i] = denseSpec.begin[i] + 1;
                                if (xFwd < 0 || xFwd >= dimI) {
                                    throw Error(`slice index ${denseSpec.begin[i]} of dimension ${i} out of bounds.`);
                                }
                            } else {
                                denseSpec.begin[i] = canonical(denseSpec.begin[i], 0, denseSpec.strides[i], dimI, masks, validRange);
                                denseSpec.end[i] = canonical(denseSpec.end[i], 1, denseSpec.strides[i], dimI, masks, validRange);
                            }
                            // Update optimization values
                            const takeAllInDimension = denseSpec.strides[i] === 1 && denseSpec.begin[i] === 0 && denseSpec.end[i] === dimI;
                            isIdentity = isIdentity && takeAllInDimension;
                            sliceDim0 = sliceDim0 && (i === 0 && denseSpec.strides[i] === 1 || takeAllInDimension);
                        } else {
                            isIdentity = isIdentity && denseSpec.strides[i] === 1 && beginAndEndMasked;
                            sliceDim0 = sliceDim0 && (i === 0 && denseSpec.strides[i] === 1 || beginAndEndMasked);
                        }
                        // Compute the processing shape (the intermediate Eigen will produce)
                        let intervalLength;
                        let knownInterval = false;
                        if (denseSpec.beginValid && denseSpec.endValid) {
                            intervalLength = denseSpec.end[i] - denseSpec.begin[i];
                            knownInterval = true;
                        } else if (shrinkI) {
                            // The dimension is still known as 1 for the processingShape, but will be
                            // discarded for the final shape.
                            intervalLength = 1;
                            knownInterval = true;
                        } else if (beginAndEndMasked) {
                            // Even if we don't have values for begin or end, we do know that this
                            // dimension covers the whole interval. If we have shape information for
                            // this dimension, that tells us the interval length.
                            if (dimI >= 0) {
                                if (denseSpec.strides[i] < 0) {
                                    intervalLength = -dimI;
                                } else {
                                    intervalLength = dimI;
                                }
                                knownInterval = true;
                            }
                        }
                        if (knownInterval) {
                            let sizeI;
                            // Hold zero if the interval is degenerate, otherwise account for
                            // remainder
                            if (intervalLength === 0 || intervalLength < 0 !== denseSpec.strides[i] < 0) {
                                sizeI = 0;
                            } else {
                                sizeI = Math.trunc(intervalLength / denseSpec.strides[i]) + (intervalLength % denseSpec.strides[i] !== 0 ? 1 : 0);
                            }
                            processingShape.push(sizeI);
                        } else {
                            processingShape.push(-1);
                        }
                    }
                    // Step 4: Compute the final shape
                    //
                    // newAxis will increase dimension by 1 (with a one-size dimension)
                    // slices like foo[3, ...] will reduce dimension by 1.
                    // This cannot be done earlier, because it depends on Step 3.
                    for (let denseDim = 0; denseDim < denseSpec.finalShapeGatherIndices.length; ++denseDim) {
                        const gatherIndex = denseSpec.finalShapeGatherIndices[denseDim];
                        if (gatherIndex >= 0) {
                            finalShape.push(processingShape[gatherIndex]);
                        } else if (gatherIndex === NEW_AXIS) {
                            finalShape.push(1);
                        }
                    }
                    const finalShapeSparse = finalShape.filter((dim, i) => denseSpec.finalShapeGatherIndices[i] !== NEW_AXIS);
                    return {
                        finalShapeSparse,
                        finalShape,
                        isIdentity,
                        sliceDim0,
                        isSimpleSlice,
                        begin: denseSpec.begin,
                        end: denseSpec.end,
                        strides: denseSpec.strides
                    };
                }
                function buildDenseSpec(sparse, dense) {
                    dense.beginMask = 0;
                    dense.endMask = 0;
                    dense.shrinkAxisMask = 0;
                    let fullIndex = 0;
                    dense.beginValid = sparse.begin != null;
                    dense.endValid = sparse.end != null;
                    dense.begin = new Array(dense.dims);
                    dense.end = new Array(dense.dims);
                    dense.strides = new Array(dense.dims);
                    dense.finalShapeGatherIndices = [];
                    dense.finalShapeGatherIndicesSparse = [];
                    dense.inputShapeGatherIndicesSparse = new Array(dense.dims);
                    for (let i = 0; i < sparse.dims; i++) {
                        if (1 << i & sparse.ellipsisMask) {
                            // Only the bit that has ellipsis will fall in this condition.
                            // Expand the ellipsis into the appropriate indices
                            // Note: this only works because we guaranteed one ellipsis.
                            const nextIndex = Math.min(dense.dims - (sparse.dims - i) + 1 + sparse.numAddAxisAfterEllipsis, dense.dims);
                            for (; fullIndex < nextIndex; fullIndex++) {
                                // newAxis aren't real axis so you have to skip.
                                dense.begin[fullIndex] = 0;
                                dense.end[fullIndex] = 0;
                                dense.strides[fullIndex] = 1;
                                dense.beginMask |= 1 << fullIndex;
                                dense.endMask |= 1 << fullIndex;
                                dense.finalShapeGatherIndices.push(fullIndex);
                                dense.finalShapeGatherIndicesSparse.push(-1);
                                dense.inputShapeGatherIndicesSparse[fullIndex] = i;
                            }
                        } else if (1 << i & sparse.newAxisMask) {
                            // Only the bit that has newAxis will fall in this condition.
                            dense.finalShapeGatherIndices.push(NEW_AXIS);
                            dense.finalShapeGatherIndicesSparse.push(-1);
                        } else {
                            if (fullIndex === dense.begin.length) {
                                throw Error(`Index out of range using input dim ${fullIndex}; input ` + `has only ${dense.dims} dims, ${dense.begin.length}.`);
                            }
                            // Gather slicing spec into appropriate index.
                            if (sparse.begin != null) {
                                dense.begin[fullIndex] = sparse.begin[i];
                            }
                            if (sparse.end != null) {
                                dense.end[fullIndex] = sparse.end[i];
                            }
                            dense.strides[fullIndex] = sparse.strides[i];
                            if (sparse.beginMask & 1 << i) {
                                dense.beginMask |= 1 << fullIndex;
                            }
                            if (sparse.endMask & 1 << i) {
                                dense.endMask |= 1 << fullIndex;
                            }
                            // If shrink, record where to get the dimensionality from (i.e. newAxis)
                            // creates a fake 1 size dimension. Also remember shrink axis (now in
                            // dense form) so we can ignore dense.end below.
                            if (sparse.shrinkAxisMask & 1 << i) {
                                dense.finalShapeGatherIndices.push(SHRINK_AXIS);
                                dense.finalShapeGatherIndicesSparse.push(-1);
                                dense.shrinkAxisMask |= 1 << fullIndex;
                            } else {
                                dense.finalShapeGatherIndices.push(fullIndex);
                                // Remember that where in the sparse shape the dense dim comes from.
                                dense.finalShapeGatherIndicesSparse.push(i);
                            }
                            dense.inputShapeGatherIndicesSparse[fullIndex] = i;
                            fullIndex++;
                        }
                    }
                }
                function canonical(x, c, strideI, dimI, masks, validRange) {
                    if (masks[c]) {
                        return strideI > 0 ? validRange[c] : validRange[c + 1 & 1];
                    } else {
                        const xFwd = x < 0 ? dimI + x : x;
                        // make negative indices positive
                        return xFwd < validRange[0] ? validRange[0] : xFwd > validRange[1] ? validRange[1] : xFwd;
                    }
                }
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Serializable defines the serialization contract.
 *
 * TFJS requires serializable classes to return their className when asked
 * to avoid issues with minification.
 */
                class Serializable {
                    /**
     * Return the class name for this class to use in serialization contexts.
     *
     * Generally speaking this will be the same thing that constructor.name
     * would have returned.  However, the class name needs to be robust
     * against minification for serialization/deserialization to work properly.
     *
     * There's also places such as initializers.VarianceScaling, where
     * implementation details between different languages led to different
     * class hierarchies and a non-leaf node is used for serialization purposes.
     */
                    getClassName() {
                        return this.constructor.className;
                    }
                    /**
     * Creates an instance of T from a ConfigDict.
     *
     * This works for most descendants of serializable.  A few need to
     * provide special handling.
     * @param cls A Constructor for the class to instantiate.
     * @param config The Configuration for the object.
     */
                    /** @nocollapse */
                    static fromConfig(cls, config) {
                        return new cls(config);
                    }
                }
                /**
 * Maps string keys to class constructors.
 *
 * Used during (de)serialization from the cross-language JSON format, which
 * requires the class name in the serialization format matches the class
 * names as used in Python, should it exist.
 */
                class SerializationMap {
                    constructor() {
                        this.classNameMap = {};
                    }
                    /**
     * Returns the singleton instance of the map.
     */
                    static getMap() {
                        if (SerializationMap.instance == null) {
                            SerializationMap.instance = new SerializationMap();
                        }
                        return SerializationMap.instance;
                    }
                    /**
     * Registers the class as serializable.
     */
                    static register(cls) {
                        SerializationMap.getMap().classNameMap[cls.className] = [cls, cls.fromConfig];
                    }
                }
                /**
 * Register a class with the serialization map of TensorFlow.js.
 *
 * This is often used for registering custom Layers, so they can be
 * serialized and deserialized.
 *
 * Example:
 *
 * ```js
 * class MyCustomLayer extends tf.layers.Layer {
 *   static className = 'MyCustomLayer';
 *
 *   constructor(config) {
 *     super(config);
 *   }
 * }
 * tf.serialization.registerClass(MyCustomLayer);
 * ```
 *
 * @param cls The class to be registered. It must have a public static member
 *   called `className` defined and the value must be a non-empty string.
 *
 * @doc {heading: 'Models', subheading: 'Serialization', ignoreCI: true}
 */
                function registerClass(cls) {
                    assert(cls.className != null, () => `Class being registered does not have the static className ` + `property defined.`);
                    assert(typeof cls.className === 'string', () => `className is required to be a string, but got type ` + typeof cls.className);
                    assert(cls.className.length > 0, () => `Class being registered has an empty-string as its className, ` + `which is disallowed.`);
                    SerializationMap.register(cls);
                }
                /**
 * @license
 * Copyright 2017 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const TEST_EPSILON_FLOAT32 = 1e-3;
                const TEST_EPSILON_FLOAT16 = 1e-1;
                function expectArraysClose(actual, expected, epsilon) {
                    if (epsilon == null) {
                        epsilon = testEpsilon();
                    }
                    return expectArraysPredicate(actual, expected, (a, b) => areClose(a, b, epsilon));
                }
                function testEpsilon() {
                    return ENGINE.backend.floatPrecision() === 32 ? TEST_EPSILON_FLOAT32 : TEST_EPSILON_FLOAT16;
                }
                function expectArraysPredicate(actual, expected, predicate) {
                    let checkClassType = true;
                    if (isTypedArray(actual) || isTypedArray(expected)) {
                        checkClassType = false;
                    }
                    if (isTypedArray(actual) && isTypedArray(expected)) {
                        checkClassType = true;
                    }
                    if (checkClassType) {
                        const aType = actual.constructor.name;
                        const bType = expected.constructor.name;
                        if (aType !== bType) {
                            throw new Error(`Arrays are of different type. Actual: ${aType}. ` + `Expected: ${bType}`);
                        }
                    }
                    if (Array.isArray(actual) && Array.isArray(expected)) {
                        const actualShape = inferShape(actual);
                        const expectedShape = inferShape(expected);
                        if (!arraysEqual(actualShape, expectedShape)) {
                            throw new Error(`Arrays have different shapes. ` + `Actual: [${actualShape}]. Expected: [${expectedShape}]`);
                        }
                    }
                    const actualFlat = isTypedArray(actual) ? actual : flatten(actual);
                    const expectedFlat = isTypedArray(expected) ? expected : flatten(expected);
                    if (actualFlat.length !== expectedFlat.length) {
                        throw new Error(`Arrays have different lengths actual: ${actualFlat.length} vs ` + `expected: ${expectedFlat.length}.\n` + `Actual:   ${actualFlat}.\n` + `Expected: ${expectedFlat}.`);
                    }
                    for (let i = 0; i < expectedFlat.length; ++i) {
                        const a = actualFlat[i];
                        const e = expectedFlat[i];
                        if (!predicate(a, e)) {
                            throw new Error(`Arrays differ: actual[${i}] = ${a}, expected[${i}] = ${e}.\n` + `Actual:   ${actualFlat}.\n` + `Expected: ${expectedFlat}.`);
                        }
                    }
                    if (typeof expect !== 'undefined') {
                        expect().nothing();
                    }
                }
                function expectPromiseToFail(fn, done) {
                    fn().then(() => done.fail(), () => done());
                    if (typeof expect !== 'undefined') {
                        expect().nothing();
                    }
                }
                function expectArraysEqual(actual, expected) {
                    const exp = typeof expected === 'string' || typeof expected === 'number' || typeof expected === 'boolean' ? [expected] : expected;
                    if (isString(actual) || isString(actual[0]) || isString(expected) || isString(expected[0])) {
                        // tslint:disable-next-line: triple-equals
                        return expectArraysPredicate(actual, exp, (a, b) => a == b);
                    }
                    return expectArraysPredicate(actual, expected, (a, b) => areClose(a, b, 0));
                }
                function expectNumbersClose(a, e, epsilon) {
                    if (epsilon == null) {
                        epsilon = testEpsilon();
                    }
                    if (!areClose(a, e, epsilon)) {
                        throw new Error(`Numbers differ: actual === ${a}, expected === ${e}`);
                    }
                    if (typeof expect !== 'undefined') {
                        expect().nothing();
                    }
                }
                function areClose(a, e, epsilon) {
                    if (!isFinite(a) && !isFinite(e)) {
                        return true;
                    }
                    if (isNaN(a) || isNaN(e) || Math.abs(a - e) > epsilon) {
                        return false;
                    }
                    return true;
                }
                function expectValuesInRange(actual, low, high) {
                    for (let i = 0; i < actual.length; i++) {
                        if (actual[i] < low || actual[i] > high) {
                            throw new Error(`Value out of range:${actual[i]} low: ${low}, high: ${high}`);
                        }
                    }
                }
                function expectArrayBuffersEqual(actual, expected) {
                    // Safari does not like comparing ArrayBuffers directly. Wrapping in
                    // a Float32Array solves this issue.
                    const actualArray = new Float32Array(actual);
                    const expectedArray = new Float32Array(expected);
                    if (actualArray.length !== expectedArray.length) {
                        throw new Error('Expected ArrayBuffer to be of length ' + `${expectedArray.length}, but it was ${actualArray.length}`);
                    }
                    for (let i = 0; i < expectedArray.length; i++) {
                        if (actualArray[i] !== expectedArray[i]) {
                            throw new Error(`Expected ArrayBuffer value at ${i} to be ` + `${expectedArray[i]} but got ${actualArray[i]} instead`);
                        }
                    }
                }
                /** Encodes strings into utf-8 bytes. */
                function encodeStrings(a) {
                    for (let i = 0; i < a.length; i++) {
                        const val = a[i];
                        if (Array.isArray(val)) {
                            encodeStrings(val);
                        } else {
                            a[i] = encodeString(val);
                        }
                    }
                    return a;
                }
                /** Creates an HTMLVideoElement with autoplay-friendly default settings. */
                function createVideoElement(source) {
                    const video = document.createElement('video');
                    if ('playsInline' in video) {
                        // tslint:disable-next-line:no-any
                        video.playsInline = true;
                    }
                    video.muted = true;
                    video.loop = true;
                    video.style.position = 'fixed';
                    video.style.left = '0px';
                    video.style.top = '0px';
                    video.preload = 'auto';
                    video.appendChild(source);
                    return new Promise(resolve => {
                        video.addEventListener('loadeddata', _ => resolve(video));
                        video.load();
                    }
                    );
                }
                async function play(video) {
                    await video.play();
                    if ('requestVideoFrameCallback' in video) {
                        await new Promise(resolve => {
                            // tslint:disable-next-line:no-any
                            video.requestVideoFrameCallback(resolve);
                        }
                        );
                    }
                }
                /** @license See the LICENSE file. */
                // This code is auto-generated, do not modify this file!
                const version = '4.1.0';
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes absolute value element-wise: `abs(x)`
 *
 * ```js
 * const x = tf.tensor1d([-1, 2, -3, 4]);
 *
 * x.abs().print();  // or tf.abs(x)
 * ```
 * @param x The input `tf.Tensor`.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function abs_(x) {
                    const $x = convertToTensor(x, 'x', 'abs');
                    if ($x.dtype === 'complex64') {
                        const inputs = {
                            x: $x
                        };
                        return ENGINE.runKernel(ComplexAbs, inputs);
                    } else {
                        const inputs = {
                            x: $x
                        };
                        return ENGINE.runKernel(Abs, inputs);
                    }
                }
                const abs = op({
                    abs_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes acos of the input `tf.Tensor` element-wise: `acos(x)`
 *
 * ```js
 * const x = tf.tensor1d([0, 1, -1, .7]);
 *
 * x.acos().print();  // or tf.acos(x)
 * ```
 * @param x The input tensor.
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function acos_(x) {
                    const $x = convertToTensor(x, 'x', 'acos');
                    const inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(Acos, inputs);
                }
                const acos = op({
                    acos_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the inverse hyperbolic cos of the input `tf.Tensor` element-wise:
 * `acosh(x)`
 *
 * ```js
 * const x = tf.tensor1d([10, 1, 3, 5.7]);
 *
 * x.acosh().print();  // or tf.acosh(x)
 * ```
 * @param x The input tensor.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function acosh_(x) {
                    const $x = convertToTensor(x, 'x', 'acosh');
                    const inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(Acosh, inputs);
                }
                const acosh = op({
                    acosh_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Adds a list of `tf.Tensor`s element-wise, each with the same shape and dtype.
 *
 * ```js
 * const a = tf.tensor1d([1, 2]);
 * const b = tf.tensor1d([3, 4]);
 * const c = tf.tensor1d([5, 6]);
 *
 * tf.addN([a, b, c]).print();
 * ```
 * @param tensors A list of tensors with the same shape and dtype.
 * @doc {heading: 'Operations', subheading: 'Arithmetic'}
 */
                function addN_(tensors) {
                    assert(Array.isArray(tensors), () => 'The argument passed to tf.addN() must be a list of tensors');
                    assert(tensors.length >= 1, () => `Must pass at least one tensor to tf.addN(), but got ` + `${tensors.length}`);
                    const $tensors = tensors.map((t, i) => convertToTensor(t, `tensors${i}`, 'addN'));
                    const firstTensor = $tensors[0];
                    $tensors.forEach(t => {
                        if (t.dtype !== firstTensor.dtype) {
                            throw new Error('All tensors passed to tf.addN() must have the same dtype');
                        }
                    }
                    );
                    $tensors.forEach(t => {
                        if (!arraysEqual(t.shape, firstTensor.shape)) {
                            throw new Error('All tensors passed to tf.addN() must have the same shape');
                        }
                    }
                    );
                    const inputs = $tensors;
                    return ENGINE.runKernel(AddN, inputs);
                }
                const addN = op({
                    addN_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the logical and of elements across dimensions of a `tf.Tensor`.
 *
 * Reduces the input along the dimensions given in `axes`. Unless `keepDims`
 * is true, the rank of the `tf.Tensor` is reduced by 1 for each entry in
 * `axes`. If `keepDims` is true, the reduced dimensions are retained with
 * length 1. If `axes` has no entries, all dimensions are reduced, and a
 * `tf.Tensor` with a single element is returned.
 *
 * ```js
 * const x = tf.tensor1d([1, 1, 1], 'bool');
 *
 * x.all().print();  // or tf.all(x)
 * ```
 *
 * ```js
 * const x = tf.tensor2d([1, 1, 0, 0], [2, 2], 'bool');
 *
 * const axis = 1;
 * x.all(axis).print();  // or tf.all(x, axis)
 * ```
 *
 * @param x The input tensor. Must be of dtype bool.
 * @param axis The dimension(s) to reduce. By default it reduces
 *     all dimensions.
 * @param keepDims If true, retains reduced dimensions with size 1.
 *
 * @doc {heading: 'Operations', subheading: 'Reduction'}
 */
                function all_(x, axis = null, keepDims = false) {
                    const $x = convertToTensor(x, 'x', 'all', 'bool');
                    const inputs = {
                        x: $x
                    };
                    const attrs = {
                        axis,
                        keepDims
                    };
                    return ENGINE.runKernel(All, inputs, attrs);
                }
                const all = op({
                    all_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the logical or of elements across dimensions of a `tf.Tensor`.
 *
 * Reduces the input along the dimensions given in `axes`. Unless `keepDims`
 * is true, the rank of the `tf.Tensor` is reduced by 1 for each entry in
 * `axes`. If `keepDims` is true, the reduced dimensions are retained with
 * length 1. If `axes` has no entries, all dimensions are reduced, and a
 * `tf.Tensor` with a single element is returned.
 *
 * ```js
 * const x = tf.tensor1d([1, 1, 1], 'bool');
 *
 * x.any().print();  // or tf.any(x)
 * ```
 *
 * ```js
 * const x = tf.tensor2d([1, 1, 0, 0], [2, 2], 'bool');
 *
 * const axis = 1;
 * x.any(axis).print();  // or tf.any(x, axis)
 * ```
 *
 * @param x The input tensor. Must be of dtype bool.
 * @param axis The dimension(s) to reduce. By default it reduces
 *     all dimensions.
 * @param keepDims If true, retains reduced dimensions with size 1.
 *
 * @doc {heading: 'Operations', subheading: 'Reduction'}
 */
                function any_(x, axis = null, keepDims = false) {
                    const $x = convertToTensor(x, 'x', 'any', 'bool');
                    const inputs = {
                        x: $x
                    };
                    const attrs = {
                        axis,
                        keepDims
                    };
                    return ENGINE.runKernel(Any, inputs, attrs);
                }
                // tslint:disable-next-line:variable-name
                const any = op({
                    any_
                });
                /**
 * @license
 * Copyright 2020 Google Inc. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Returns the indices of the maximum values along an `axis`.
 *
 * The result has the same shape as `input` with the dimension along `axis`
 * removed.
 *
 * ```js
 * const x = tf.tensor1d([1, 2, 3]);
 *
 * x.argMax().print();  // or tf.argMax(x)
 * ```
 *
 * ```js
 * const x = tf.tensor2d([1, 2, 4, 3], [2, 2]);
 *
 * const axis = 1;
 * x.argMax(axis).print();  // or tf.argMax(x, axis)
 * ```
 *
 * @param x The input tensor.
 * @param axis The dimension to reduce. Defaults to 0 (outer-most dimension).
 *
 * @doc {heading: 'Operations', subheading: 'Reduction'}
 */
                function argMax_(x, axis = 0) {
                    const $x = convertToTensor(x, 'x', 'argMax');
                    const inputs = {
                        x: $x
                    };
                    const attrs = {
                        axis
                    };
                    return ENGINE.runKernel(ArgMax, inputs, attrs);
                }
                const argMax = op({
                    argMax_
                });
                /**
 * @license
 * Copyright 2020 Google Inc. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Returns the indices of the minimum values along an `axis`.
 *
 * The result has the same shape as `input` with the dimension along `axis`
 * removed.
 *
 * ```js
 * const x = tf.tensor1d([1, 2, 3]);
 *
 * x.argMin().print();  // or tf.argMin(x)
 * ```
 *
 * ```js
 * const x = tf.tensor2d([1, 2, 4, 3], [2, 2]);
 *
 * const axis = 1;
 * x.argMin(axis).print();  // or tf.argMin(x, axis)
 * ```
 *
 * @param x The input tensor.
 * @param axis The dimension to reduce. Defaults to 0 (outer-most dimension).
 *
 * @doc {heading: 'Operations', subheading: 'Reduction'}
 */
                function argMin_(x, axis = 0) {
                    const $x = convertToTensor(x, 'x', 'argMin');
                    const inputs = {
                        x: $x
                    };
                    const attrs = {
                        axis
                    };
                    return ENGINE.runKernel(ArgMin, inputs, attrs);
                }
                const argMin = op({
                    argMin_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes asin of the input `tf.Tensor` element-wise: `asin(x)`
 *
 * ```js
 * const x = tf.tensor1d([0, 1, -1, .7]);
 *
 * x.asin().print();  // or tf.asin(x)
 * ```
 * @param x The input tensor.
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function asin_(x) {
                    const $x = convertToTensor(x, 'x', 'asin');
                    const inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(Asin, inputs);
                }
                const asin = op({
                    asin_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes inverse hyperbolic sin of the input `tf.Tensor` element-wise:
 * `asinh(x)`
 *
 * ```js
 * const x = tf.tensor1d([0, 1, -1, .7]);
 *
 * x.asinh().print();  // or tf.asinh(x)
 * ```
 * @param x The input tensor.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function asinh_(x) {
                    const $x = convertToTensor(x, 'x', 'asinh');
                    const inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(Asinh, inputs);
                }
                const asinh = op({
                    asinh_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes atan of the input `tf.Tensor` element-wise: `atan(x)`
 *
 * ```js
 * const x = tf.tensor1d([0, 1, -1, .7]);
 *
 * x.atan().print();  // or tf.atan(x)
 * ```
 * @param x The input tensor.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function atan_(x) {
                    const $x = convertToTensor(x, 'x', 'atan');
                    const inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(Atan, inputs);
                }
                const atan = op({
                    atan_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes arctangent of `tf.Tensor`s a / b element-wise: `atan2(a, b)`.
 * Supports broadcasting.
 *
 * ```js
 * const a = tf.tensor1d([1.0, 1.0, -1.0, .7]);
 * const b = tf.tensor1d([2.0, 13.0, 3.5, .21]);
 *
 * tf.atan2(a, b).print()
 * ```
 *
 * @param a The first tensor.
 * @param b The second tensor. Must have the same dtype as `a`.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function atan2_(a, b) {
                    let $a = convertToTensor(a, 'a', 'atan2');
                    let $b = convertToTensor(b, 'b', 'atan2');
                    [$a, $b] = makeTypesMatch($a, $b);
                    const inputs = {
                        a: $a,
                        b: $b
                    };
                    return ENGINE.runKernel(Atan2, inputs);
                }
                const atan2 = op({
                    atan2_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes inverse hyperbolic tan of the input `tf.Tensor` element-wise:
 * `atanh(x)`
 *
 * ```js
 * const x = tf.tensor1d([0, .1, -.1, .7]);
 *
 * x.atanh().print();  // or tf.atanh(x)
 * ```
 * @param x The input tensor.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function atanh_(x) {
                    const $x = convertToTensor(x, 'x', 'atanh');
                    const inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(Atanh, inputs);
                }
                const atanh = op({
                    atanh_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the 2D average pooling of an image.
 *
 * @param x The input tensor, of rank 4 or rank 3 of shape
 *     `[batch, height, width, inChannels]`. If rank 3, batch of 1 is assumed.
 * @param filterSize The filter size: `[filterHeight, filterWidth]`. If
 *     `filterSize` is a single number, then `filterHeight == filterWidth`.
 * @param strides The strides of the pooling: `[strideHeight, strideWidth]`. If
 *     `strides` is a single number, then `strideHeight == strideWidth`.
 * @param pad The type of padding algorithm:
 *    - `same` and stride 1: output will be of same size as input,
 *       regardless of filter size.
 *    - `valid`: output will be smaller than input if filter is larger
 *       than 1x1.
 *    - For more info, see this guide:
 *     [https://www.tensorflow.org/api_docs/python/tf/nn/convolution](
 *         https://www.tensorflow.org/api_docs/python/tf/nn/convolution)
 * @param dimRoundingMode A string from: 'ceil', 'round', 'floor'. If none is
 *     provided, it will default to truncate.
 *
 * @doc {heading: 'Operations', subheading: 'Convolution'}
 */
                function avgPool_(x, filterSize, strides, pad, dimRoundingMode) {
                    const $x = convertToTensor(x, 'x', 'avgPool', 'float32');
                    const dilations = 1;
                    assert(eitherStridesOrDilationsAreOne(strides, dilations), () => 'Error in avgPool: Either strides or dilations must be 1. ' + `Got strides ${strides} and dilations '${dilations}'`);
                    let x4D = $x;
                    let reshapedTo4D = false;
                    if ($x.rank === 3) {
                        reshapedTo4D = true;
                        x4D = reshape($x, [1, $x.shape[0], $x.shape[1], $x.shape[2]]);
                    }
                    assert(x4D.rank === 4, () => `Error in avgPool: x must be rank 4 but got rank ${x4D.rank}.`);
                    checkPadOnDimRoundingMode('avgPool', pad, dimRoundingMode);
                    const inputs = {
                        x: x4D
                    };
                    const attrs = {
                        filterSize,
                        strides,
                        pad,
                        dimRoundingMode
                    };
                    // tslint:disable-next-line: no-unnecessary-type-assertion
                    let res = ENGINE.runKernel(AvgPool, inputs, attrs);
                    res = cast(res, $x.dtype);
                    if (reshapedTo4D) {
                        return reshape(res, [res.shape[1], res.shape[2], res.shape[3]]);
                    }
                    return res;
                }
                const avgPool = op({
                    avgPool_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the 3D average pooling.
 *
 * ```js
 * const x = tf.tensor5d([1, 2, 3, 4, 5, 6, 7, 8], [1, 2, 2, 2, 1]);
 * const result = tf.avgPool3d(x, 2, 1, 'valid');
 * result.print();
 * ```
 *
 * @param x The input tensor, of rank 5 or rank 4 of shape
 *     `[batch, depth, height, width, inChannels]`.
 * @param filterSize The filter size:
 *     `[filterDepth, filterHeight, filterWidth]`.
 *     If `filterSize` is a single number,
 *     then `filterDepth == filterHeight == filterWidth`.
 * @param strides The strides of the pooling:
 *     `[strideDepth, strideHeight, strideWidth]`.
 *     If `strides` is a single number,
 *     then `strideDepth == strideHeight == strideWidth`.
 * @param pad The type of padding algorithm.
 *    - `same` and stride 1: output will be of same size as input,
 *       regardless of filter size.
 *    - `valid`: output will be smaller than input if filter is larger
 *       than 1*1x1.
 *    - For more info, see this guide:
 *     [https://www.tensorflow.org/api_docs/python/tf/nn/convolution](
 *          https://www.tensorflow.org/api_docs/python/tf/nn/convolution)
 * @param dimRoundingMode A string from: 'ceil', 'round', 'floor'. If none is
 *     provided, it will default to truncate.
 * @param dataFormat An optional string from: "NDHWC", "NCDHW". Defaults to
 *     "NDHWC". Specify the data format of the input and output data. With the
 *     default format "NDHWC", the data is stored in the order of: [batch,
 *     depth, height, width, channels]. Only "NDHWC" is currently supported.
 *
 * @doc {heading: 'Operations', subheading: 'Convolution'}
 */
                function avgPool3d_(x, filterSize, strides, pad, dimRoundingMode, dataFormat = 'NDHWC') {
                    const $x = convertToTensor(x, 'x', 'avgPool3d', 'float32');
                    let x5D = $x;
                    let reshapedTo5D = false;
                    if ($x.rank === 4) {
                        reshapedTo5D = true;
                        x5D = reshape($x, [1, $x.shape[0], $x.shape[1], $x.shape[2], $x.shape[3]]);
                    }
                    assert(x5D.rank === 5, () => `Error in avgPool3d: x must be rank 5 but got rank ${x5D.rank}.`);
                    assert(dataFormat === 'NDHWC', () => `Error in avgPool3d: Only NDHWC is currently supported, ` + `but got dataFormat of ${dataFormat}`);
                    checkPadOnDimRoundingMode('avgPool3d', pad, dimRoundingMode);
                    const inputs = {
                        x: x5D
                    };
                    const attrs = {
                        filterSize,
                        strides,
                        pad,
                        dimRoundingMode,
                        dataFormat
                    };
                    // tslint:disable-next-line: no-unnecessary-type-assertion
                    let res = ENGINE.runKernel(AvgPool3D, inputs, attrs);
                    res = cast(res, x5D.dtype);
                    if (reshapedTo5D) {
                        return reshape(res, [res.shape[1], res.shape[2], res.shape[3], res.shape[4]]);
                    }
                    return res;
                }
                const avgPool3d = op({
                    avgPool3d_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Concatenates a list of `tf.Tensor`s along a given axis.
 *
 * The tensors ranks and types must match, and their sizes must match in all
 * dimensions except `axis`.
 *
 * Also available are stricter rank-specific methods that assert that
 * `tensors` are of the given rank:
 *   - `tf.concat1d`
 *   - `tf.concat2d`
 *   - `tf.concat3d`
 *   - `tf.concat4d`
 *
 * Except `tf.concat1d` (which does not have axis param), all methods have
 * same signature as this method.
 *
 * ```js
 * const a = tf.tensor1d([1, 2]);
 * const b = tf.tensor1d([3, 4]);
 * a.concat(b).print();  // or a.concat(b)
 * ```
 *
 * ```js
 * const a = tf.tensor1d([1, 2]);
 * const b = tf.tensor1d([3, 4]);
 * const c = tf.tensor1d([5, 6]);
 * tf.concat([a, b, c]).print();
 * ```
 *
 * ```js
 * const a = tf.tensor2d([[1, 2], [10, 20]]);
 * const b = tf.tensor2d([[3, 4], [30, 40]]);
 * const axis = 1;
 * tf.concat([a, b], axis).print();
 * ```
 * @param tensors A list of tensors to concatenate.
 * @param axis The axis to concatenate along. Defaults to 0 (the first dim).
 *
 * @doc {heading: 'Tensors', subheading: 'Slicing and Joining'}
 */
                function concat_(tensors, axis = 0) {
                    assert(tensors.length >= 1, () => 'Pass at least one tensor to concat');
                    const $tensors = convertToTensorArray(tensors, 'tensors', 'concat', 'string_or_numeric');
                    if ($tensors[0].dtype === 'complex64') {
                        $tensors.forEach(tensor => {
                            if (tensor.dtype !== 'complex64') {
                                throw new Error(`Cannot concatenate complex64 tensors with a tensor
          with dtype ${tensor.dtype}. `);
                            }
                        }
                        );
                    }
                    if ($tensors.length === 1) {
                        return clone($tensors[0]);
                    }
                    const inputs = $tensors;
                    const attr = {
                        axis
                    };
                    return ENGINE.runKernel(Concat, inputs, attr);
                }
                const concat = op({
                    concat_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes sigmoid element-wise, `1 / (1 + exp(-x))`
 *
 * ```js
 * const x = tf.tensor1d([0, -1, 2, -3]);
 *
 * x.sigmoid().print();  // or tf.sigmoid(x)
 * ```
 * @param x The input tensor.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function sigmoid_(x) {
                    const $x = convertToTensor(x, 'x', 'sigmoid', 'float32');
                    const inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(Sigmoid, inputs);
                }
                const sigmoid = op({
                    sigmoid_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes hyperbolic tangent of the input `tf.Tensor` element-wise: `tanh(x)`
 *
 * ```js
 * const x = tf.tensor1d([0, 1, -1, 70]);
 *
 * x.tanh().print();  // or tf.tanh(x)
 * ```
 * @param x The input tensor.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function tanh_(x) {
                    const $x = convertToTensor(x, 'x', 'tanh', 'float32');
                    const inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(Tanh, inputs);
                }
                const tanh$1 = op({
                    tanh_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the next state and output of a BasicLSTMCell.
 *
 * Returns `[newC, newH]`.
 *
 * Derived from tf.contrib.rnn.BasicLSTMCell.
 *
 * @param forgetBias Forget bias for the cell.
 * @param lstmKernel The weights for the cell.
 * @param lstmBias The bias for the cell.
 * @param data The input to the cell.
 * @param c Previous cell state.
 * @param h Previous cell output.
 *
 * @doc {heading: 'Operations', subheading: 'RNN'}
 */
                function basicLSTMCell_(forgetBias, lstmKernel, lstmBias, data, c, h) {
                    const $forgetBias = convertToTensor(forgetBias, 'forgetBias', 'basicLSTMCell');
                    const $lstmKernel = convertToTensor(lstmKernel, 'lstmKernel', 'basicLSTMCell');
                    const $lstmBias = convertToTensor(lstmBias, 'lstmBias', 'basicLSTMCell');
                    const $data = convertToTensor(data, 'data', 'basicLSTMCell');
                    const $c = convertToTensor(c, 'c', 'basicLSTMCell');
                    const $h = convertToTensor(h, 'h', 'basicLSTMCell');
                    const combined = concat([$data, $h], 1);
                    const weighted = matMul(combined, $lstmKernel);
                    const res = add$1(weighted, $lstmBias);
                    // i = input_gate, j = new_input, f = forget_gate, o = output_gate
                    const batchSize = res.shape[0];
                    const sliceCols = res.shape[1] / 4;
                    const sliceSize = [batchSize, sliceCols];
                    const i = slice(res, [0, 0], sliceSize);
                    const j = slice(res, [0, sliceCols], sliceSize);
                    const f = slice(res, [0, sliceCols * 2], sliceSize);
                    const o = slice(res, [0, sliceCols * 3], sliceSize);
                    const newC = add$1(mul(sigmoid(i), tanh$1(j)), mul($c, sigmoid(add$1($forgetBias, f))));
                    const newH = mul(tanh$1(newC), sigmoid(o));
                    return [newC, newH];
                }
                const basicLSTMCell = op({
                    basicLSTMCell_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * This operation reshapes the "batch" dimension 0 into `M + 1` dimensions of
 * shape `blockShape + [batch]`, interleaves these blocks back into the grid
 * defined by the spatial dimensions `[1, ..., M]`, to obtain a result with
 * the same rank as the input. The spatial dimensions of this intermediate
 * result are then optionally cropped according to `crops` to produce the
 * output. This is the reverse of `tf.spaceToBatchND`. See below for a precise
 * description.
 *
 * ```js
 * const x = tf.tensor4d([1, 2, 3, 4], [4, 1, 1, 1]);
 * const blockShape = [2, 2];
 * const crops = [[0, 0], [0, 0]];
 *
 * x.batchToSpaceND(blockShape, crops).print();
 * ```
 *
 * @param x A `tf.Tensor`. N-D with `x.shape` = `[batch] + spatialShape +
 * remainingShape`, where spatialShape has `M` dimensions.
 * @param blockShape A 1-D array. Must have shape `[M]`, all values must
 * be >= 1.
 * @param crops A 2-D array.  Must have shape `[M, 2]`, all values must be >= 0.
 * `crops[i] = [cropStart, cropEnd]` specifies the amount to crop from input
 * dimension `i + 1`, which corresponds to spatial dimension `i`. It is required
 * that `cropStart[i] + cropEnd[i] <= blockShape[i] * inputShape[i + 1]`
 *
 * This operation is equivalent to the following steps:
 *
 * 1. Reshape `x` to `reshaped` of shape: `[blockShape[0], ...,
 * blockShape[M-1], batch / prod(blockShape), x.shape[1], ...,
 * x.shape[N-1]]`
 *
 * 2. Permute dimensions of `reshaped` to produce `permuted` of shape `[batch /
 * prod(blockShape),x.shape[1], blockShape[0], ..., x.shape[M],
 * blockShape[M-1],x.shape[M+1], ..., x.shape[N-1]]`
 *
 * 3. Reshape `permuted` to produce `reshapedPermuted` of shape `[batch /
 * prod(blockShape),x.shape[1] * blockShape[0], ..., x.shape[M] *
 * blockShape[M-1],x.shape[M+1], ..., x.shape[N-1]]`
 *
 * 4. Crop the start and end of dimensions `[1, ..., M]` of `reshapedPermuted`
 * according to `crops` to produce the output of shape: `[batch /
 * prod(blockShape),x.shape[1] * blockShape[0] - crops[0,0] - crops[0,1],
 * ..., x.shape[M] * blockShape[M-1] - crops[M-1,0] -
 * crops[M-1,1],x.shape[M+1], ..., x.shape[N-1]]`
 *
 * @doc {heading: 'Tensors', subheading: 'Transformations'}
 */
                function batchToSpaceND_(x, blockShape, crops) {
                    const $x = convertToTensor(x, 'x', 'batchToSpaceND');
                    const prod = blockShape.reduce((a, b) => a * b);
                    assert($x.rank >= 1 + blockShape.length, () => `input rank is ${$x.rank} but should be > than blockShape.length ${blockShape.length}`);
                    assert(crops.length === blockShape.length, () => `crops.length is ${crops.length} but should be equal to blockShape.length  ${blockShape.length}`);
                    assert($x.shape[0] % prod === 0, () => `input tensor batch is ${$x.shape[0]} but is not divisible by the product of ` + `the elements of blockShape ${blockShape.join(' * ')} === ${prod}`);
                    const inputs = {
                        x: $x
                    };
                    const attrs = {
                        blockShape,
                        crops
                    };
                    return ENGINE.runKernel(BatchToSpaceND, inputs, attrs);
                }
                const batchToSpaceND = op({
                    batchToSpaceND_
                });
                function xAs4D(x) {
                    let x4D;
                    if (x.rank === 0 || x.rank === 1) {
                        x4D = reshape(x, [1, 1, 1, x.size]);
                    } else if (x.rank === 2) {
                        x4D = reshape(x, [1, 1, x.shape[0], x.shape[1]]);
                    } else if (x.rank === 3) {
                        x4D = reshape(x, [1, x.shape[0], x.shape[1], x.shape[2]]);
                    } else {
                        x4D = x;
                    }
                    return x4D;
                }
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Batch normalization.
 *
 * As described in
 * [http://arxiv.org/abs/1502.03167](http://arxiv.org/abs/1502.03167).
 *
 * Mean, variance, scale, and offset can be of two shapes:
 *   - The same shape as the input.
 *   - In the common case, the depth dimension is the last dimension of x, so
 *     the values would be a `tf.Tensor1D` of shape [depth].
 *
 * Also available are stricter rank-specific methods with the same signature
 * as this method that assert that parameters passed are of given rank
 *   - `tf.batchNorm2d`
 *   - `tf.batchNorm3d`
 *   - `tf.batchNorm4d`
 *
 * @param x The input Tensor.
 * @param mean A mean Tensor.
 * @param variance A variance Tensor.
 * @param offset An offset Tensor.
 * @param scale A scale Tensor.
 * @param varianceEpsilon A small float number to avoid dividing by 0.
 *
 * @doc {heading: 'Operations', subheading: 'Normalization'}
 */
                function batchNorm_(x, mean, variance, offset, scale, varianceEpsilon) {
                    if (varianceEpsilon == null) {
                        varianceEpsilon = 0.001;
                    }
                    const $x = convertToTensor(x, 'x', 'batchNorm');
                    const $mean = convertToTensor(mean, 'mean', 'batchNorm');
                    const $variance = convertToTensor(variance, 'variance', 'batchNorm');
                    let $scale;
                    if (scale != null) {
                        $scale = convertToTensor(scale, 'scale', 'batchNorm');
                    }
                    let $offset;
                    if (offset != null) {
                        $offset = convertToTensor(offset, 'offset', 'batchNorm');
                    }
                    assert($mean.rank === $variance.rank, () => 'Batch normalization gradient requires mean and variance to have ' + 'equal ranks.');
                    assert($offset == null || $mean.rank === $offset.rank, () => 'Batch normalization gradient requires mean and offset to have ' + 'equal ranks.');
                    assert($scale == null || $mean.rank === $scale.rank, () => 'Batch normalization gradient requires mean and scale to have ' + 'equal ranks.');
                    const x4D = xAs4D($x);
                    const inputs = {
                        x: x4D,
                        scale: $scale,
                        offset: $offset,
                        mean: $mean,
                        variance: $variance
                    };
                    const attrs = {
                        varianceEpsilon
                    };
                    // tslint:disable-next-line: no-unnecessary-type-assertion
                    const res = ENGINE.runKernel(FusedBatchNorm, inputs, attrs);
                    return reshape(res, $x.shape);
                }
                const batchNorm = op({
                    batchNorm_
                });
                /**
 * Batch normalization, strictly for 2D. For the more relaxed version, see
 * `tf.batchNorm`.
 *
 * @param x The input Tensor.
 * @param mean A mean Tensor.
 * @param variance A variance Tensor.
 * @param offset An offset Tensor.
 * @param scale A scale Tensor.
 * @param varianceEpsilon A small float number to avoid dividing by 0.
 */
                function batchNorm2d_(x, mean, variance, offset, scale, varianceEpsilon) {
                    const $x = convertToTensor(x, 'x', 'batchNorm');
                    const $mean = convertToTensor(mean, 'mean', 'batchNorm');
                    const $variance = convertToTensor(variance, 'variance', 'batchNorm');
                    let $scale;
                    if (scale != null) {
                        $scale = convertToTensor(scale, 'scale', 'batchNorm');
                    }
                    let $offset;
                    if (offset != null) {
                        $offset = convertToTensor(offset, 'offset', 'batchNorm');
                    }
                    assert($x.rank === 2, () => `Error in batchNorm2D: x must be rank 2 but got rank ` + `${$x.rank}.`);
                    assert($mean.rank === 2 || $mean.rank === 1, () => `Error in batchNorm2D: mean must be rank 2 or rank 1 but ` + `got rank ${$mean.rank}.`);
                    assert($variance.rank === 2 || $variance.rank === 1, () => `Error in batchNorm2D: variance must be rank 2 or rank 1 ` + `but got rank ${$variance.rank}.`);
                    if ($scale != null) {
                        assert($scale.rank === 2 || $scale.rank === 1, () => `Error in batchNorm2D: scale must be rank 2 or rank 1 ` + `but got rank ${$scale.rank}.`);
                    }
                    if ($offset != null) {
                        assert($offset.rank === 2 || $offset.rank === 1, () => `Error in batchNorm2D: offset must be rank 2 or rank 1 ` + `but got rank ${$offset.rank}.`);
                    }
                    return batchNorm($x, $mean, $variance, $offset, $scale, varianceEpsilon);
                }
                const batchNorm2d = op({
                    batchNorm2d_
                });
                /**
 * Batch normalization, strictly for 3D. For the more relaxed version, see
 * `tf.batchNorm`.
 *
 * @param x The input Tensor.
 * @param mean A mean Tensor.
 * @param variance A variance Tensor.
 * @param offset An offset Tensor.
 * @param scale A scale Tensor.
 * @param varianceEpsilon A small float number to avoid dividing by 0.
 */
                function batchNorm3d_(x, mean, variance, offset, scale, varianceEpsilon) {
                    const $x = convertToTensor(x, 'x', 'batchNorm');
                    const $mean = convertToTensor(mean, 'mean', 'batchNorm');
                    const $variance = convertToTensor(variance, 'variance', 'batchNorm');
                    let $scale;
                    if (scale != null) {
                        $scale = convertToTensor(scale, 'scale', 'batchNorm');
                    }
                    let $offset;
                    if (offset != null) {
                        $offset = convertToTensor(offset, 'offset', 'batchNorm');
                    }
                    assert($x.rank === 3, () => `Error in batchNorm3D: x must be rank 3 but got rank ` + `${$x.rank}.`);
                    assert($mean.rank === 3 || $mean.rank === 1, () => `Error in batchNorm3D: mean must be rank 3 or rank 1 but ` + `got rank ${$mean.rank}.`);
                    assert($variance.rank === 3 || $variance.rank === 1, () => `Error in batchNorm3D: variance must be rank 3 or rank 1 ` + `but got rank ${$variance.rank}.`);
                    if ($scale != null) {
                        assert($scale.rank === 3 || $scale.rank === 1, () => `Error in batchNorm3D: scale must be rank 3 or rank 1 ` + `but got rank ${$scale.rank}.`);
                    }
                    if ($offset != null) {
                        assert($offset.rank === 3 || $offset.rank === 1, () => `Error in batchNorm3D: offset must be rank 3 or rank 1 ` + `but got rank ${$offset.rank}.`);
                    }
                    return batchNorm($x, $mean, $variance, $offset, $scale, varianceEpsilon);
                }
                const batchNorm3d = op({
                    batchNorm3d_
                });
                /**
 * Batch normalization, strictly for 4D. For the more relaxed version, see
 * `tf.batchNorm`.
 *
 * @param x The input Tensor.
 * @param mean A mean Tensor.
 * @param variance A variance Tensor.
 * @param offset An offset Tensor.
 * @param scale A scale Tensor.
 * @param varianceEpsilon A small float number to avoid dividing by 0.
 */
                function batchNorm4d_(x, mean, variance, offset, scale, varianceEpsilon) {
                    const $x = convertToTensor(x, 'x', 'batchNorm');
                    const $mean = convertToTensor(mean, 'mean', 'batchNorm');
                    const $variance = convertToTensor(variance, 'variance', 'batchNorm');
                    let $scale;
                    if (scale != null) {
                        $scale = convertToTensor(scale, 'scale', 'batchNorm');
                    }
                    let $offset;
                    if (offset != null) {
                        $offset = convertToTensor(offset, 'offset', 'batchNorm');
                    }
                    assert($x.rank === 4, () => `Error in batchNorm4D: x must be rank 4 but got rank ` + `${$x.rank}.`);
                    assert($mean.rank === 4 || $mean.rank === 1, () => `Error in batchNorm4D: mean must be rank 4 or rank 1 but ` + `got rank ${$mean.rank}.`);
                    assert($variance.rank === 4 || $variance.rank === 1, () => `Error in batchNorm4D: variance must be rank 4 or rank 1 ` + `but got rank ${$variance.rank}.`);
                    if ($scale != null) {
                        assert($scale.rank === 4 || $scale.rank === 1, () => `Error in batchNorm4D: scale must be rank 4 or rank 1 ` + `but got rank ${$scale.rank}.`);
                    }
                    if ($offset != null) {
                        assert($offset.rank === 4 || $offset.rank === 1, () => `Error in batchNorm4D: offset must be rank 4 or rank 1 ` + `but got rank ${$offset.rank}.`);
                    }
                    return batchNorm($x, $mean, $variance, $offset, $scale, varianceEpsilon);
                }
                const batchNorm4d = op({
                    batchNorm4d_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Outputs a vector with length `size` and the same dtype as `weights`.
 *
 * If `weights` are empty, then index `i` stores the number of times the value
 * `i` is counted in `x`. If `weights` are non-empty, then index `i` stores the
 * sum of the value in `weights` at each index where the corresponding value in
 * `x` is `i`.
 *
 * Values in `x` outside of the range [0, size) are ignored.
 *
 * @param x The input int tensor, rank 1.
 * @param weights The weights tensor, must have the same shape as x, or a
 *     length-0 Tensor, in which case it acts as all weights equal to 1.
 * @param size Non-negative integer.
 *
 * @doc {heading: 'Operations', subheading: 'Reduction'}
 */
                function bincount_(x, weights, size) {
                    const $x = convertToTensor(x, 'x', 'bincount');
                    const $weights = convertToTensor(weights, 'weights', 'bincount');
                    assert($x.dtype === 'int32', () => `Error in bincount: input ` + `dtype must be int32, but got ${$x.dtype}`);
                    assert(size >= 0, () => `size must be non-negative, but got ${size}.`);
                    assert($weights.size === $x.size || $weights.size === 0, () => `Error in bincount: weights must have the same size as input or` + `0-length, but got input shape: ${$x.shape}, weights shape: ` + `${$weights.shape}.`);
                    const inputs = {
                        x: $x,
                        weights: $weights
                    };
                    const attrs = {
                        size
                    };
                    return ENGINE.runKernel(Bincount, inputs, attrs);
                }
                const bincount = op({
                    bincount_
                });
                /**
 * @license
 * Copyright 2021 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Return the shape of s0 op s1 with broadcast.
 *
 * compute r0, the broadcasted shape as a tensor.
 * s0, s1 and r0 are all integer vectors.
 *
 * This function returns the shape of the result of an operation between
 * two tensors of size s0 and s1 performed with broadcast.
 *
 * @param s0 A tensor representing a shape
 * @param s1 A tensor representing a shape
 *
 * @doc {heading: 'Tensors', subheading: 'Transformations'}
 */
                function broadcastArgs_(s0, s1) {
                    const shape1Input = convertToTensor(s0, 's0', 'broadcastArgs', 'int32');
                    const shape2Input = convertToTensor(s1, 's1', 'broadcastArgs', 'int32');
                    if (shape1Input.rank !== 1) {
                        throw new Error('broadcastArgs(): first input must be a vector (rank=1). ' + `Has rank ${shape1Input.rank}`);
                    }
                    if (shape2Input.rank !== 1) {
                        throw new Error('broadcastArgs(): second input must be a vector (rank=1). ' + `Has rank ${shape2Input.rank}`);
                    }
                    const inputs = {
                        s0: shape1Input,
                        s1: shape2Input
                    };
                    return ENGINE.runKernel(BroadcastArgs, inputs);
                }
                const broadcastArgs = op({
                    broadcastArgs_
                });
                /**
 * @license
 * Copyright 2020 Google Inc. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Creates an empty `tf.TensorBuffer` with the specified `shape` and `dtype`.
 *
 * The values are stored in CPU as `TypedArray`. Fill the buffer using
 * `buffer.set()`, or by modifying directly `buffer.values`.
 *
 * When done, call `buffer.toTensor()` to get an immutable `tf.Tensor` with
 * those values.
 *
 * ```js
 * // Create a buffer and set values at particular indices.
 * const buffer = tf.buffer([2, 2]);
 * buffer.set(3, 0, 0);
 * buffer.set(5, 1, 0);
 *
 * // Convert the buffer back to a tensor.
 * buffer.toTensor().print();
 * ```
 *
 * @param shape An array of integers defining the output tensor shape.
 * @param dtype The dtype of the buffer. Defaults to 'float32'.
 * @param values The values of the buffer as `TypedArray`. Defaults to
 * zeros.
 *
 * @doc {heading: 'Tensors', subheading: 'Creation'}
 */
                function buffer(shape, dtype = 'float32', values) {
                    dtype = dtype || 'float32';
                    assertNonNegativeIntegerDimensions(shape);
                    return new TensorBuffer(shape, dtype, values);
                }
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes ceiling of input `tf.Tensor` element-wise: `ceil(x)`
 *
 * ```js
 * const x = tf.tensor1d([.6, 1.1, -3.3]);
 *
 * x.ceil().print();  // or tf.ceil(x)
 * ```
 * @param x The input Tensor.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function ceil_(x) {
                    const $x = convertToTensor(x, 'x', 'ceil', 'float32');
                    const inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(Ceil, inputs);
                }
                const ceil = op({
                    ceil_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Creates a `tf.Tensor` filled with a scalar value.
 *
 * ```js
 * tf.fill([2, 2], 4).print();
 * ```
 *
 * @param shape An array of integers defining the output tensor shape.
 * @param value The scalar value to fill the tensor with.
 * @param dtype The type of an element in the resulting tensor. Defaults to
 * 'float'.
 *
 * @doc {heading: 'Tensors', subheading: 'Creation'}
 */
                function fill(shape, value, dtype) {
                    assertNonNegativeIntegerDimensions(shape);
                    const attrs = {
                        shape,
                        value,
                        dtype
                    };
                    return ENGINE.runKernel(Fill, {}, attrs);
                }
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Clips values element-wise. `max(min(x, clipValueMax), clipValueMin)`
 *
 * ```js
 * const x = tf.tensor1d([-1, 2, -3, 4]);
 *
 * x.clipByValue(-2, 3).print();  // or tf.clipByValue(x, -2, 3)
 * ```
 * @param x The input tensor.
 * @param clipValueMin Lower bound of range to be clipped to.
 * @param clipValueMax Upper bound of range to be clipped to.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function clipByValue_(x, clipValueMin, clipValueMax) {
                    const $x = convertToTensor(x, 'x', 'clipByValue');
                    assert(clipValueMin <= clipValueMax, () => `Error in clip: min (${clipValueMin}) must be ` + `less than or equal to max (${clipValueMax}).`);
                    if (clipValueMin === clipValueMax) {
                        return fill($x.shape, clipValueMin, $x.dtype);
                    }
                    const inputs = {
                        x: $x
                    };
                    const attrs = {
                        clipValueMin,
                        clipValueMax
                    };
                    return ENGINE.runKernel(ClipByValue, inputs, attrs);
                }
                const clipByValue = op({
                    clipByValue_
                });
                /**
 * Concatenates a list of`tf.Tensor1D`s along an axis. See `concat` for details.
 *
 * For example, if:
 * A: shape(3) = |r1, g1, b1|
 * B: shape(2) = |r2, g2|
 * C = tf.concat1d([A, B]) == |r1, g1, b1, r2, g2|
 *
 * @param tensors A list of`tf.Tensor`s to concatenate.
 * @return The concatenated array.
 */
                function concat1d_(tensors) {
                    return concat(tensors, 0 /* axis */
                    );
                }
                const concat1d = op({
                    concat1d_
                });
                /**
 * Concatenates a list of`tf.Tensor2D`s along an axis. See `concat` for details.
 *
 * For example, if:
 * A: shape(2, 3) = | r1, g1, b1 |
 *                  | r2, g2, b2 |
 *
 * B: shape(2, 3) = | r3, g3, b3 |
 *                  | r4, g4, b4 |
 *
 * C = tf.concat2d([A, B], axis)
 *
 * if axis = 0:
 * C: shape(4, 3) = | r1, g1, b1 |
 *                  | r2, g2, b2 |
 *                  | r3, g3, b3 |
 *                  | r4, g4, b4 |
 *
 * if axis = 1:
 * C = shape(2, 6) = | r1, g1, b1, r3, g3, b3 |
 *                   | r2, g2, b2, r4, g4, b4 |
 *
 *
 * @param tensors A list of `tf.Tensor`s to concatenate.
 * @param axis The axis to concatenate along.
 * @return The concatenated array.
 */
                function concat2d_(tensors, axis) {
                    return concat(tensors, axis);
                }
                const concat2d = op({
                    concat2d_
                });
                /**
 * Concatenates a list of `tf.Tensor3D`s along an axis.
 * See `concat` for details.
 *
 * For example, if:
 * A: shape(2, 1, 3) = | r1, g1, b1 |
 *                     | r2, g2, b2 |
 *
 * B: shape(2, 1, 3) = | r3, g3, b3 |
 *                     | r4, g4, b4 |
 *
 * C = tf.concat3d([A, B], axis)
 *
 * if axis = 0:
 * C: shape(4, 1, 3) = | r1, g1, b1 |
 *                     | r2, g2, b2 |
 *                     | r3, g3, b3 |
 *                     | r4, g4, b4 |
 *
 * if axis = 1:
 * C: shape(2, 2, 3) = | r1, g1, b1, r3, g3, b3 |
 *                     | r2, g2, b2, r4, g4, b4 |
 *
 * if axis = 2:
 * C = shape(2, 1, 6) = | r1, g1, b1, r3, g3, b3 |
 *                      | r2, g2, b2, r4, g4, b4 |
 *
 * @param tensors A list of`tf.Tensor`s to concatenate.
 * @param axis The axis to concate along.
 * @return The concatenated array.
 */
                function concat3d_(tensors, axis) {
                    return concat(tensors, axis);
                }
                const concat3d = op({
                    concat3d_
                });
                /**
 * Concatenates a list of `tf.Tensor4D`s along an axis.
 * See `concat` for details.
 *
 * @param tensors A list of `tf.Tensor`s to concatenate.
 * @param axis The axis to concate along.
 * @return The concatenated array.
 */
                function concat4d_(tensors, axis) {
                    return concat(tensors, axis);
                }
                const concat4d = op({
                    concat4d_
                });
                /**
 * Computes a 1D convolution over the input x.
 *
 * @param x The input tensor, of rank 3 or rank 2, of shape
 *     `[batch, width, inChannels]`. If rank 2, batch of 1 is assumed.
 * @param filter The filter, rank 3, of shape
 *     `[filterWidth, inDepth, outDepth]`.
 * @param stride The number of entries by which the filter is moved right at
 *     each step.
 * @param pad The type of padding algorithm.
 *    - `same` and stride 1: output will be of same size as input,
 *       regardless of filter size.
 *    - `valid`: output will be smaller than input if filter is larger
 *       than 1x1.
 *   - For more info, see this guide:
 *     [https://www.tensorflow.org/api_docs/python/tf/nn/convolution](
 *          https://www.tensorflow.org/api_docs/python/tf/nn/convolution)
 * @param dataFormat An optional string from "NWC", "NCW". Defaults to "NWC",
 *     the data is stored in the order of [batch, in_width, in_channels]. Only
 *     "NWC" is currently supported.
 * @param dilation The dilation rate in which we sample input values in
 *     atrous convolution. Defaults to `1`. If it is greater than 1, then
 *     stride must be `1`.
 * @param dimRoundingMode A string from: 'ceil', 'round', 'floor'. If none is
 *     provided, it will default to truncate.
 *
 * @doc {heading: 'Operations', subheading: 'Convolution'}
 */
                function conv1d_(x, filter, stride, pad, dataFormat = 'NWC', dilation = 1, dimRoundingMode) {
                    const $x = convertToTensor(x, 'x', 'conv1d');
                    const $filter = convertToTensor(filter, 'filter', 'conv1d');
                    let x3D = $x;
                    let reshapedTo3D = false;
                    if ($x.rank === 2) {
                        reshapedTo3D = true;
                        x3D = reshape($x, [1, $x.shape[0], $x.shape[1]]);
                    }
                    assert(x3D.rank === 3, () => `Error in conv1d: input must be rank 3, but got rank ${x3D.rank}.`);
                    assert($filter.rank === 3, () => `Error in conv1d: filter must be rank 3, but got rank ` + `${$filter.rank}.`);
                    checkPadOnDimRoundingMode('conv1d', pad, dimRoundingMode);
                    assert(x3D.shape[2] === $filter.shape[1], () => `Error in conv1d: depth of input (${x3D.shape[2]}) must match ` + `input depth for filter ${$filter.shape[1]}.`);
                    assert(eitherStridesOrDilationsAreOne(stride, dilation), () => 'Error in conv1D: Either stride or dilation must be 1. ' + `Got stride ${stride} and dilation '${dilation}'`);
                    assert(dataFormat === 'NWC', () => `Error in conv1d: got dataFormat of ${dataFormat} but only NWC is currently supported.`);
                    const filter4D = reshape($filter, [1, $filter.shape[0], $filter.shape[1], $filter.shape[2]]);
                    const input4D = reshape(x3D, [x3D.shape[0], 1, x3D.shape[1], x3D.shape[2]]);
                    const strides = [1, stride];
                    const dilations = [1, dilation];
                    const conv2dDataFormat = 'NHWC';
                    const res = conv2d(input4D, filter4D, strides, pad, conv2dDataFormat, dilations, dimRoundingMode);
                    if (reshapedTo3D) {
                        return reshape(res, [res.shape[2], res.shape[3]]);
                    }
                    return reshape(res, [res.shape[0], res.shape[2], res.shape[3]]);
                }
                const conv1d = op({
                    conv1d_
                });
                /**
 * Computes the transposed 2D convolution of an image, also known as a
 * deconvolution.
 *
 * @param x The input image, of rank 4 or rank 3, of shape
 *   `[batch, height, width, inDepth]`. If rank 3, batch of 1 is assumed.
 * @param filter The filter, rank 4, of shape
 *     `[filterHeight, filterWidth, outDepth, inDepth]`.
 *     `inDepth` must match `inDepth` in `x`.
 * @param outputShape Output shape, of rank 4 or rank 3:
 *     `[batch, height, width, outDepth]`. If rank 3, batch of 1 is assumed.
 * @param strides The strides of the original convolution:
 *     `[strideHeight, strideWidth]`.
 * @param pad  The type of padding algorithm used in the non-transpose version
 *    of the op.
 * @param dimRoundingMode A string from: 'ceil', 'round', 'floor'. If none is
 *     provided, it will default to truncate.
 *
 * @doc {heading: 'Operations', subheading: 'Convolution'}
 */
                function conv2dTranspose_(x, filter, outputShape, strides, pad, dimRoundingMode) {
                    const $x = convertToTensor(x, 'x', 'conv2dTranspose');
                    const $filter = convertToTensor(filter, 'filter', 'conv2dTranspose');
                    return conv2DBackpropInput(outputShape, $x, $filter, strides, pad, 'NHWC', dimRoundingMode);
                }
                const conv2dTranspose = op({
                    conv2dTranspose_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes a 3D convolution over the input x.
 *
 * @param x The input tensor, of rank 5 or rank 4, of shape
 *     `[batch, depth, height, width, channels]`. If rank 4,
 * batch of 1 is assumed.
 * @param filter The filter, rank 5, of shape
 *     `[filterDepth, filterHeight, filterWidth, inChannels, outChannels]`.
 *      inChannels must match between input and filter.
 * @param strides The strides of the convolution: `[strideDepth, strideHeight,
 * strideWidth]`.
 * @param pad The type of padding algorithm.
 *    - `same` and stride 1: output will be of same size as input,
 *       regardless of filter size.
 *    - `valid`: output will be smaller than input if filter is larger
 *       than 1x1.
 *   - For more info, see this guide:
 *     [https://www.tensorflow.org/api_docs/python/tf/nn/convolution](
 *          https://www.tensorflow.org/api_docs/python/tf/nn/convolution)
 * @param dataFormat: An optional string from: "NDHWC", "NCDHW". Defaults to
 *     "NDHWC". Specify the data format of the input and output data. With the
 *     default format "NDHWC", the data is stored in the order of: [batch,
 *     depth, height, width, channels]. Only "NDHWC" is currently supported.
 * @param dilations The dilation rates: `[dilationDepth, dilationHeight,
 *     dilationWidth]` in which we sample input values across the height
 *     and width dimensions in atrous convolution. Defaults to `[1, 1, 1]`.
 *     If `dilations` is a single number, then
 *     `dilationDepth == dilationHeight == dilationWidth`. If it is greater
 *     than 1, then all values of `strides` must be 1.
 *
 * @doc {heading: 'Operations', subheading: 'Convolution'}
 */
                function conv3d_(x, filter, strides, pad, dataFormat = 'NDHWC', dilations = [1, 1, 1]) {
                    const $x = convertToTensor(x, 'x', 'conv3d');
                    const $filter = convertToTensor(filter, 'filter', 'conv3d');
                    let x5D = $x;
                    let reshapedTo5D = false;
                    if ($x.rank === 4) {
                        reshapedTo5D = true;
                        x5D = reshape($x, [1, $x.shape[0], $x.shape[1], $x.shape[2], $x.shape[3]]);
                    }
                    assert(x5D.rank === 5, () => `Error in conv3d: input must be rank 5, but got rank ${x5D.rank}.`);
                    assert($filter.rank === 5, () => `Error in conv3d: filter must be rank 5, but got rank ` + `${$filter.rank}.`);
                    assert(x5D.shape[4] === $filter.shape[3], () => `Error in conv3d: depth of input (${x5D.shape[4]}) must match ` + `input depth for filter ${$filter.shape[3]}.`);
                    assert(eitherStridesOrDilationsAreOne(strides, dilations), () => 'Error in conv3D: Either strides or dilations must be 1. ' + `Got strides ${strides} and dilations '${dilations}'`);
                    assert(dataFormat === 'NDHWC', () => `Error in conv3d: got dataFormat of ${dataFormat} but only NDHWC is currently supported.`);
                    const inputs = {
                        x: x5D,
                        filter: $filter
                    };
                    const attrs = {
                        strides,
                        pad,
                        dataFormat,
                        dilations
                    };
                    // tslint:disable-next-line: no-unnecessary-type-assertion
                    const res = ENGINE.runKernel(Conv3D, inputs, attrs);
                    if (reshapedTo5D) {
                        return reshape(res, [res.shape[1], res.shape[2], res.shape[3], res.shape[4]]);
                    }
                    return res;
                }
                const conv3d = op({
                    conv3d_
                });
                /**
 * Computes the transposed 3D convolution of a volume, also known as a
 * deconvolution.
 *
 * @param x The input image, of rank 5 or rank 4, of shape
 *   `[batch, depth, height, width, inDepth]`. If rank 4, batch of 1 is assumed.
 * @param filter The filter, rank 4, of shape
 *     `[depth, filterHeight, filterWidth, outDepth, inDepth]`.
 *     `inDepth` must match `inDepth` in `x`.
 * @param outputShape Output shape, of rank 5 or rank 4:
 *     `[batch, depth, height, width, outDepth]`. If rank 3, batch of 1 is
 *    assumed.
 * @param strides The strides of the original convolution:
 *     `[strideDepth, strideHeight, strideWidth]`.
 * @param pad  The type of padding algorithm used in the non-transpose version
 *    of the op.
 *
 * @doc {heading: 'Operations', subheading: 'Convolution'}
 */
                function conv3dTranspose_(x, filter, outputShape, strides, pad) {
                    const $x = convertToTensor(x, 'x', 'conv3dTranspose');
                    const $filter = convertToTensor(filter, 'filter', 'conv3dTranspose');
                    return conv3DBackpropInput(outputShape, $x, $filter, strides, pad);
                }
                const conv3dTranspose = op({
                    conv3dTranspose_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes cos of the input `tf.Tensor` element-wise: `cos(x)`
 *
 * ```js
 * const x = tf.tensor1d([0, Math.PI / 2, Math.PI * 3 / 4]);
 *
 * x.cos().print();  // or tf.cos(x)
 * ```
 * @param x The input tensor. Must be float32 type.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function cos_(x) {
                    const $x = convertToTensor(x, 'x', 'cos', 'float32');
                    const inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(Cos, inputs);
                }
                const cos = op({
                    cos_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes hyperbolic cos of the input `tf.Tensor` element-wise: `cosh(x)`
 *
 * ```js
 * const x = tf.tensor1d([0, 1, -1, .7]);
 *
 * x.cosh().print();  // or tf.cosh(x)
 * ```
 * @param x The input tensor. Must be float32 type.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function cosh_(x) {
                    const $x = convertToTensor(x, 'x', 'cosh', 'float32');
                    const inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(Cosh, inputs);
                }
                const cosh = op({
                    cosh_
                });
                /**
 * @license
 * Copyright 2022 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the 'License');
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an 'AS IS' BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the cumulative product of a `tf.Tensor` along `axis`.
 *
 * ```js
 * const x = tf.tensor([1, 2, 3, 4]);
 * x.cumprod().print();
 * ```
 * ```js
 * const x = tf.tensor([[1, 2], [3, 4]]);
 * x.cumprod().print();
 * ```
 *
 * @param x The input tensor to cumulatively multiply.
 * @param axis The axis along which to multiply. Optional. Defaults to 0.
 * @param exclusive Whether to perform exclusive cumulative product. Optional.
 *     Defaults to false. If set to true then the product of each tensor entry
 *     does not include its own value, but only the values previous to it
 *     along the specified axis.
 * @param reverse Whether to multiply in the opposite direction. Optional.
 *     Defaults to false.
 *
 * @doc {heading: 'Operations', subheading: 'Scan'}
 */
                function cumprod_(x, axis = 0, exclusive = false, reverse = false) {
                    const $x = convertToTensor(x, 'x', 'cumprod');
                    const inputs = {
                        x: $x
                    };
                    const attrs = {
                        axis,
                        exclusive,
                        reverse
                    };
                    return ENGINE.runKernel(Cumprod, inputs, attrs);
                }
                const cumprod = op({
                    cumprod_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Outputs a vector with length `size` and the same dtype as `weights`.
 *
 * If `weights` are empty, then index `i` stores the number of times the value
 * `i` is counted in `x`. If `weights` are non-empty, then index `i` stores the
 * sum of the value in `weights` at each index where the corresponding value in
 * `x` is `i`.
 *
 * Values in `x` outside of the range [0, size) are ignored.
 *
 * @param x The input int tensor, rank 1 or rank 2.
 * @param weights The weights tensor, must have the same shape as x, or a
 *     length-0 Tensor, in which case it acts as all weights equal to 1.
 * @param size Non-negative integer.
 * @param binaryOutput Optional. Whether the kernel should count the appearance
 *     or number of occurrences. Defaults to False.
 *
 * @doc {heading: 'Operations', subheading: 'Reduction'}
 */
                function denseBincount_(x, weights, size, binaryOutput = false) {
                    const $x = convertToTensor(x, 'x', 'denseBincount');
                    const $weights = convertToTensor(weights, 'weights', 'denseBincount');
                    assert($x.dtype === 'int32', () => `Error in denseBincount: input ` + `dtype must be int32, but got ${$x.dtype}`);
                    assert($x.rank <= 2, () => `Error in denseBincount: input must be at most rank 2, but got ` + `rank ${$x.rank}.`);
                    assert(size >= 0, () => `size must be non-negative, but got ${size}.`);
                    assert($weights.size === $x.size || $weights.size === 0, () => `Error in denseBincount: weights must have the same shape as x or ` + `0-length, but got x shape: ${$x.shape}, weights shape: ` + `${$weights.shape}.`);
                    const inputs = {
                        x: $x,
                        weights: $weights
                    };
                    const attrs = {
                        size,
                        binaryOutput
                    };
                    return ENGINE.runKernel(DenseBincount, inputs, attrs);
                }
                const denseBincount = op({
                    denseBincount_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Rearranges data from depth into blocks of spatial data. More specifically,
 * this op outputs a copy of the input tensor where values from the `depth`
 * dimension are moved in spatial blocks to the `height` and `width` dimensions.
 * The attr `blockSize` indicates the input block size and how the data is
 * moved.
 *
 *  - Chunks of data of size `blockSize * blockSize` from depth are rearranged
 * into non-overlapping blocks of size `blockSize x blockSize`
 *
 *  - The width the output tensor is `inputWidth * blockSize`, whereas the
 * height is `inputHeight * blockSize`
 *
 *  - The Y, X coordinates within each block of the output image are determined
 * by the high order component of the input channel index
 *
 *  - The depth of the input tensor must be divisible by `blockSize *
 * blockSize`
 *
 * The `dataFormat` attr specifies the layout of the input and output tensors
 * with the following options: "NHWC": [ `batch, height, width, channels` ]
 * "NCHW": [ `batch, channels, height, width` ]
 *
 * ```js
 * const x = tf.tensor4d([1, 2, 3, 4], [1, 1, 1, 4]);
 * const blockSize = 2;
 * const dataFormat = "NHWC";
 *
 * tf.depthToSpace(x, blockSize, dataFormat).print();
 * ```
 *
 * @param x The input tensor of rank 4
 * @param blockSIze  An `int` that is `>= 2`. The size of the spatial block
 * @param dataFormat An optional string from: "NHWC", "NCHW". Defaults to "NHWC"
 *
 * @doc {heading: 'Tensors', subheading: 'Transformations'}
 */
                function depthToSpace_(x, blockSize, dataFormat = 'NHWC') {
                    const $x = convertToTensor(x, 'x', 'depthToSpace', 'float32');
                    const inputHeight = dataFormat === 'NHWC' ? $x.shape[1] : $x.shape[2];
                    const inputWidth = dataFormat === 'NHWC' ? $x.shape[2] : $x.shape[3];
                    const inputDepth = dataFormat === 'NHWC' ? $x.shape[3] : $x.shape[1];
                    assert(blockSize > 1, () => `blockSize should be > 1 for depthToSpace, but was: ${blockSize}`);
                    assert(inputHeight * blockSize >= 0, () => `Negative dimension size caused by overflow when multiplying
    ${inputHeight} and ${blockSize}  for depthToSpace with input shape
    ${$x.shape}`);
                    assert(inputWidth * blockSize >= 0, () => `Negative dimension size caused by overflow when multiplying
    ${inputWidth} and ${blockSize} for depthToSpace with input shape
        ${$x.shape}`);
                    assert(inputDepth % (blockSize * blockSize) === 0, () => `Dimension size must be evenly divisible by ${blockSize * blockSize} but is ${inputDepth} for depthToSpace with input shape ${$x.shape}`);
                    const inputs = {
                        x: $x
                    };
                    const attrs = {
                        blockSize,
                        dataFormat
                    };
                    return ENGINE.runKernel(DepthToSpace, inputs, attrs);
                }
                const depthToSpace = op({
                    depthToSpace_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Depthwise 2D convolution.
 *
 * Given a 4D `input` array and a `filter` array of shape
 * `[filterHeight, filterWidth, inChannels, channelMultiplier]` containing
 * `inChannels` convolutional filters of depth 1, this op applies a
 * different filter to each input channel (expanding from 1 channel to
 * `channelMultiplier` channels for each), then concatenates the results
 * together. The output has `inChannels * channelMultiplier` channels.
 *
 * See
 * [https://www.tensorflow.org/api_docs/python/tf/nn/depthwise_conv2d](
 *     https://www.tensorflow.org/api_docs/python/tf/nn/depthwise_conv2d)
 * for more details.
 *
 * @param x The input tensor, of rank 4 or rank 3, of shape
 *     `[batch, height, width, inChannels]`. If rank 3, batch of 1 is
 * assumed.
 * @param filter The filter tensor, rank 4, of shape
 *     `[filterHeight, filterWidth, inChannels, channelMultiplier]`.
 * @param strides The strides of the convolution: `[strideHeight,
 * strideWidth]`. If strides is a single number, then `strideHeight ==
 * strideWidth`.
 * @param pad The type of padding algorithm.
 *   - `same` and stride 1: output will be of same size as input,
 *       regardless of filter size.
 *   - `valid`: output will be smaller than input if filter is larger
 *       than 1x1.
 *   - For more info, see this guide:
 *     [https://www.tensorflow.org/api_docs/python/tf/nn/convolution](
 *          https://www.tensorflow.org/api_docs/python/tf/nn/convolution)
 * @param dilations The dilation rates: `[dilationHeight, dilationWidth]`
 *     in which we sample input values across the height and width dimensions
 *     in atrous convolution. Defaults to `[1, 1]`. If `rate` is a single
 *     number, then `dilationHeight == dilationWidth`. If it is greater than
 *     1, then all values of `strides` must be 1.
 * @param dataFormat: An optional string from: "NHWC", "NCHW". Defaults to
 *     "NHWC". Specify the data format of the input and output data. With the
 *     default format "NHWC", the data is stored in the order of: [batch,
 *     height, width, channels]. Only "NHWC" is currently supported.
 * @param dimRoundingMode A string from: 'ceil', 'round', 'floor'. If none is
 *     provided, it will default to truncate.
 *
 * @doc {heading: 'Operations', subheading: 'Convolution'}
 */
                function depthwiseConv2d_(x, filter, strides, pad, dataFormat = 'NHWC', dilations = [1, 1], dimRoundingMode) {
                    const $x = convertToTensor(x, 'x', 'depthwiseConv2d', 'float32');
                    const $filter = convertToTensor(filter, 'filter', 'depthwiseConv2d', 'float32');
                    let x4D = $x;
                    let reshapedTo4D = false;
                    if ($x.rank === 3) {
                        reshapedTo4D = true;
                        x4D = reshape($x, [1, $x.shape[0], $x.shape[1], $x.shape[2]]);
                    }
                    assert(x4D.rank === 4, () => `Error in depthwiseConv2d: input must be rank 4, but got ` + `rank ${x4D.rank}.`);
                    assert($filter.rank === 4, () => `Error in depthwiseConv2d: filter must be rank 4, but got rank ` + `${$filter.rank}.`);
                    const inChannels = dataFormat === 'NHWC' ? x4D.shape[3] : x4D.shape[1];
                    assert(inChannels === $filter.shape[2], () => `Error in depthwiseConv2d: number of input channels ` + `(${inChannels}) must match the inChannels dimension in ` + `filter ${$filter.shape[2]}.`);
                    checkPadOnDimRoundingMode('depthwiseConv2d', pad, dimRoundingMode);
                    const inputs = {
                        x: x4D,
                        filter: $filter
                    };
                    const attrs = {
                        strides,
                        pad,
                        dataFormat,
                        dilations,
                        dimRoundingMode
                    };
                    // tslint:disable-next-line: no-unnecessary-type-assertion
                    const res = ENGINE.runKernel(DepthwiseConv2dNative, inputs, attrs);
                    if (reshapedTo4D) {
                        return reshape(res, [res.shape[1], res.shape[2], res.shape[3]]);
                    }
                    return res;
                }
                const depthwiseConv2d = op({
                    depthwiseConv2d_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Returns a diagonal tensor with given diagonal values.
 *
 * Given a diagonal, this operation returns a tensor with the diagonal and
 * everything else padded with zeros.
 *
 * Assume the input has dimensions `[D1,..., Dk]`, then the output is a tensor
 * of rank 2k with dimensions `[D1,..., Dk, D1,..., Dk]`
 *
 * ```js
 * const x = tf.tensor1d([1, 2, 3, 4]);
 *
 * tf.diag(x).print()
 * ```
 * ```js
 * const x = tf.tensor2d([1, 2, 3, 4, 5, 6, 6, 8], [4, 2])
 *
 * tf.diag(x).print()
 * ```
 * @param x The input tensor.
 *
 * @doc {heading: 'Tensors', subheading: 'Creation'}
 */
                function diag_(x) {
                    const $x = convertToTensor(x, 'x', 'diag');
                    const inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(Diag, inputs);
                }
                const diag = op({
                    diag_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the grayscale dilation over the input `x`.
 *
 * @param x The input tensor, rank 3 or rank 4 of shape
 *     `[batch, height, width, inChannels]`. If rank 3, batch of 1 is assumed.
 * @param filter The filter tensor, rank 3, of shape
 *     `[filterHeight, filterWidth, depth]`.
 * @param strides The strides of the sliding window for each dimension of the
 *     input tensor: `[strideHeight, strideWidth]`.
 *     If `strides` is a single number,
 *     then `strideHeight == strideWidth`.
 * @param pad The type of padding algorithm.
 *    - `same` and stride 1: output will be of same size as input,
 *       regardless of filter size.
 *    - `valid`: output will be smaller than input if filter is larger
 *       than 1*1x1.
 *    - For more info, see this guide:
 *     [https://www.tensorflow.org/api_docs/python/tf/nn/convolution](
 *          https://www.tensorflow.org/api_docs/python/tf/nn/convolution)
 * @param dataFormat Specify the data format of the input and output data.
 *      Defaults to 'NHWC'. Only 'NHWC' is currently supported. With the
 *      default format "NHWC", the data is stored in the order of: [batch,
 *      height, width, channels].
 * @param dilations The dilation rates: `[dilationHeight, dilationWidth]`
 *     in which we sample input values across the height and width dimensions
 *     for atrous morphological dilation. Defaults to `[1, 1]`. If `dilations`
 *     is a single number, then `dilationHeight == dilationWidth`. If it is
 *     greater than 1, then all values of `strides` must be 1.
 *
 * @doc {heading: 'Operations', subheading: 'Convolution'}
 */
                function dilation2d_(x, filter, strides, pad, dilations = [1, 1], dataFormat = 'NHWC') {
                    const $x = convertToTensor(x, 'x', 'dilation2d');
                    const $filter = convertToTensor(filter, 'filter', 'dilation2d');
                    assert($x.rank === 3 || $x.rank === 4, () => `Error in dilation2d: input must be rank 3 or 4, but got rank ` + `${$x.rank}.`);
                    assert($filter.rank === 3, () => `Error in dilation2d: filter must be rank 3, but got rank ` + `${$filter.rank}.`);
                    assert(dataFormat === 'NHWC', () => `Error in dilation2d: Only NHWC is currently supported, ` + `but got dataFormat of ${dataFormat}`);
                    let x4D = $x;
                    let reshapedTo4D = false;
                    if ($x.rank === 3) {
                        x4D = reshape($x, [1, $x.shape[0], $x.shape[1], $x.shape[2]]);
                        reshapedTo4D = true;
                    }
                    const inputs = {
                        x: x4D,
                        filter: $filter
                    };
                    const attrs = {
                        strides,
                        pad,
                        dilations
                    };
                    // tslint:disable-next-line: no-unnecessary-type-assertion
                    const res = ENGINE.runKernel(Dilation2D, inputs, attrs);
                    if (reshapedTo4D) {
                        return reshape(res, [res.shape[1], res.shape[2], res.shape[3]]);
                    }
                    return res;
                }
                const dilation2d = op({
                    dilation2d_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Divides two `tf.Tensor`s element-wise, A / B. Supports broadcasting. Return 0
 * if denominator is 0.
 *
 *
 * ```js
 * const a = tf.tensor1d([1, 4, 9, 16]);
 * const b = tf.tensor1d([1, 2, 3, 4]);
 * const c = tf.tensor1d([0, 0, 0, 0]);
 *
 * a.divNoNan(b).print();  // or tf.divNoNan(a, b)
 * a.divNoNan(c).print();  // or tf.divNoNan(a, c)
 * ```
 *
 * ```js
 * // Broadcast div a with b.
 * const a = tf.tensor1d([2, 4, 6, 8]);
 * const b = tf.scalar(2);
 * const c = tf.scalar(0);
 *
 * a.divNoNan(b).print();  // or tf.divNoNan(a, b)
 * a.divNoNan(c).print();  // or tf.divNoNan(a, c)
 * ```
 *
 * @param a The first tensor as the numerator.
 * @param b The second tensor as the denominator. Must have the same dtype as
 * `a`.
 *
 * @doc {heading: 'Operations', subheading: 'Arithmetic'}
 */
                function divNoNan_(a, b) {
                    // TODO: Make this into its own kernel.
                    let $a = convertToTensor(a, 'a', 'div');
                    let $b = convertToTensor(b, 'b', 'div');
                    [$a, $b] = makeTypesMatch($a, $b);
                    const divResult = div($a, $b);
                    const zeros = zerosLike(divResult);
                    const bEqualsZero = equal($b, zeros);
                    return where(bEqualsZero, zeros, divResult);
                }
                const divNoNan = op({
                    divNoNan_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the dot product of two matrices and/or vectors, `t1` and `t2`.
 *
 * ```js
 * const a = tf.tensor1d([1, 2]);
 * const b = tf.tensor2d([[1, 2], [3, 4]]);
 * const c = tf.tensor2d([[1, 2, 3], [4, 5, 6]]);
 *
 * a.dot(b).print();  // or tf.dot(a, b)
 * b.dot(a).print();
 * b.dot(c).print();
 * ```
 * @param t1 The first tensor in the dot operation.
 * @param t2 The second tensor in the dot operation.
 *
 * @doc {heading: 'Operations', subheading: 'Matrices'}
 */
                function dot_(t1, t2) {
                    const $t1 = convertToTensor(t1, 't1', 'dot');
                    const $t2 = convertToTensor(t2, 't2', 'dot');
                    assert(($t1.rank === 1 || $t1.rank === 2) && ($t2.rank === 1 || $t2.rank === 2), () => `Error in dot: inputs must all be rank 1 or 2, but got ranks ` + `${$t1.rank} and ${$t2.rank}.`);
                    const t1Inner = $t1.rank === 1 ? $t1.size : $t1.shape[1];
                    const t2Inner = $t2.rank === 1 ? $t2.size : $t2.shape[0];
                    assert(t1Inner === t2Inner, () => `Error in dot: inner dimensions of inputs must match, but got ` + `${t1Inner} and ${t2Inner}.`);
                    if ($t1.rank === 1 && $t2.rank === 1) {
                        const t12D = reshape($t1, [1, -1]);
                        const t22D = reshape($t2, [-1, 1]);
                        const t1t2 = matMul(t12D, t22D);
                        return reshape(t1t2, []);
                    } else if ($t1.rank === 1 && $t2.rank === 2) {
                        const t12D = reshape($t1, [1, -1]);
                        const t22D = reshape($t2, [$t2.shape[0], $t2.shape[1]]);
                        const t1t2 = matMul(t12D, t22D);
                        return reshape(t1t2, [t1t2.size]);
                    } else if ($t1.rank === 2 && $t2.rank === 1) {
                        const t22D = reshape($t2, [-1, 1]);
                        const t1t2 = matMul($t1, t22D);
                        return reshape(t1t2, [t1t2.size]);
                    } else {
                        const t22D = reshape($t2, [$t2.shape[0], $t2.shape[1]]);
                        const t1t2 = matMul($t1, t22D);
                        return t1t2;
                    }
                }
                const dot = op({
                    dot_
                });
                /**
 * @license
 * Copyright 2021 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Tensor contraction over specified indices and outer product.
 *
 * `einsum` allows defining Tensors by defining their element-wise computation.
 * This computation is based on
 * [Einstein summation](https://en.wikipedia.org/wiki/Einstein_notation).
 *
 * Some special cases include:
 *
 * Matrix multiplication:
 * ```js
 * const x = tf.tensor2d([[1, 2, 3], [4, 5, 6]]);
 * const y = tf.tensor2d([[0, 1], [2, 3], [4, 5]]);
 * x.print();
 * y.print();
 * tf.einsum('ij,jk->ik', x, y).print();
 * ```
 *
 * Dot product:
 * ```js
 * const x = tf.tensor1d([1, 2, 3]);
 * const y = tf.tensor1d([0, 1, 2]);
 * x.print();
 * y.print();
 * tf.einsum('i,i->', x, y).print();
 * ```
 *
 * Batch dot product:
 * ```js
 * const x = tf.tensor2d([[1, 2, 3], [4, 5, 6]]);
 * const y = tf.tensor2d([[0, 1, 2], [3, 4, 5]]);
 * x.print();
 * y.print();
 * tf.einsum('bi,bi->b', x, y).print();
 * ```
 *
 * Outer prouduct:
 * ```js
 * const x = tf.tensor1d([1, 3, 5]);
 * const y = tf.tensor1d([2, 4, 6]);
 * x.print();
 * y.print();
 * tf.einsum('i,j->ij', x, y).print();
 * ```
 *
 * Matrix transpose:
 * ```js
 * const x = tf.tensor2d([[1, 2], [3, 4]]);
 * x.print();
 * tf.einsum('ij->ji', x).print();
 * ```
 *
 * Batch matrix transpose:
 * ```js
 * const x = tf.tensor3d([[[1, 2], [3, 4]], [[-1, -2], [-3, -4]]]);
 * x.print();
 * tf.einsum('bij->bji', x).print();
 * ```
 *
 * Limitations:
 *
 * This implementation of einsum has the following limitations:
 *
 * - Does not support >2 input tensors.
 * - Does not support duplicate axes for any given input tensor. E.g., equation
 *   'ii->' is not supported.
 * - The `...` notation is not supported.
 *
 * @param equation a string describing the contraction, in the same format as
 * [numpy.einsum](https://numpy.org/doc/stable/reference/generated/numpy.einsum.html).
 * @param tensors the input(s) to contract (each one a Tensor), whose shapes
 *     should be consistent with equation.
 * @returns The output tensor.
 *
 * @doc {heading: 'Tensors', subheading: 'Matrices'}
 */
                function einsum_(equation, ...tensors) {
                    const $tensors = tensors.map((t, i) => convertToTensor(t, `tensors${i}`, 'einsum'));
                    const attrs = {
                        equation
                    };
                    return ENGINE.runKernel(Einsum, $tensors, attrs);
                }
                const einsum = op({
                    einsum_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes exponential linear element-wise: `x > 0 ? x : (e ^ x) - 1`.
 *
 * ```js
 * const x = tf.tensor1d([-1, 1, -3, 2]);
 *
 * x.elu().print();  // or tf.elu(x)
 * ```
 * @param x The input tensor.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function elu_(x) {
                    const $x = convertToTensor(x, 'x', 'elu', 'float32');
                    const inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(Elu, inputs);
                }
                const elu = op({
                    elu_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes Gauss error function of the input `tf.Tensor` element-wise:
 * `erf(x)`
 *
 * ```js
 * const x = tf.tensor1d([0, .1, -.1, .7]);
 *
 * x.erf().print(); // or tf.erf(x);
 * ```
 * @param x The input tensor.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function erf_(x) {
                    let $x = convertToTensor(x, 'x', 'erf');
                    assert($x.dtype === 'int32' || $x.dtype === 'float32', () => 'Input dtype must be `int32` or `float32`.');
                    if ($x.dtype === 'int32') {
                        $x = cast($x, 'float32');
                    }
                    const inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(Erf, inputs);
                }
                const erf = op({
                    erf_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the maximum of elements across dimensions of a `tf.Tensor`.
 *
 * Reduces the input along the dimensions given in `axes`. Unless `keepDims`
 * is true, the rank of the `tf.Tensor` is reduced by 1 for each entry in
 * `axes`. If `keepDims` is true, the reduced dimensions are retained with
 * length 1. If `axes` has no entries, all dimensions are reduced, and a
 * `tf.Tensor` with a single element is returned.
 *
 * ```js
 * const x = tf.tensor1d([1, 2, 3]);
 *
 * x.max().print();  // or tf.max(x)
 * ```
 *
 * ```js
 * const x = tf.tensor2d([1, 2, 3, 4], [2, 2]);
 *
 * const axis = 1;
 * x.max(axis).print();  // or tf.max(x, axis)
 * ```
 *
 * @param x The input tensor.
 * @param axis The dimension(s) to reduce. By default it reduces
 *     all dimensions.
 * @param keepDims If true, retains reduced dimensions with size 1.
 *
 * @doc {heading: 'Operations', subheading: 'Reduction'}
 */
                function max_(x, axis = null, keepDims = false) {
                    const $x = convertToTensor(x, 'x', 'max');
                    const inputs = {
                        x: $x
                    };
                    const attrs = {
                        reductionIndices: axis,
                        keepDims
                    };
                    return ENGINE.runKernel(Max, inputs, attrs);
                }
                const max = op({
                    max_
                });
                /**
 * @license
 * Copyright 2020 Google Inc. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the minimum value from the input.
 *
 * Reduces the input along the dimensions given in `axes`. Unless `keepDims`
 * is true, the rank of the array is reduced by 1 for each entry in `axes`.
 * If `keepDims` is true, the reduced dimensions are retained with length 1.
 * If `axes` has no entries, all dimensions are reduced, and an array with a
 * single element is returned.
 *
 * ```js
 * const x = tf.tensor1d([1, 2, 3]);
 *
 * x.min().print();  // or tf.min(x)
 * ```
 *
 * ```js
 * const x = tf.tensor2d([1, 2, 3, 4], [2, 2]);
 *
 * const axis = 1;
 * x.min(axis).print();  // or tf.min(x, axis)
 * ```
 *
 * @param x The input Tensor.
 * @param axis The dimension(s) to reduce. By default it reduces
 *     all dimensions.
 * @param keepDims If true, retains reduced dimensions with size 1.
 *
 * @doc {heading: 'Operations', subheading: 'Reduction'}
 */
                function min_(x, axis = null, keepDims = false) {
                    const $x = convertToTensor(x, 'x', 'min');
                    const inputs = {
                        x: $x
                    };
                    const attrs = {
                        axis,
                        keepDims
                    };
                    // tslint:disable-next-line: no-unnecessary-type-assertion
                    return ENGINE.runKernel(Min, inputs, attrs);
                }
                const min = op({
                    min_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the norm of scalar, vectors, and matrices.
 * This function can compute several different vector norms (the 1-norm, the
 * Euclidean or 2-norm, the inf-norm, and in general the p-norm for p > 0)
 * and matrix norms (Frobenius, 1-norm, and inf-norm).
 *
 * ```js
 * const x = tf.tensor1d([1, 2, 3, 4]);
 *
 * x.norm().print();  // or tf.norm(x)
 * ```
 *
 * @param x The input array.
 * @param ord Optional. Order of the norm. Supported norm types are
 * following:
 *
 *  | ord        | norm for matrices         | norm for vectors
 *  |------------|---------------------------|---------------------
 *  |'euclidean' |Frobenius norm             |2-norm
 *  |'fro'       |Frobenius norm             |
 *  |Infinity    |max(sum(abs(x), axis=1))   |max(abs(x))
 *  |-Infinity   |min(sum(abs(x), axis=1))   |min(abs(x))
 *  |1           |max(sum(abs(x), axis=0))   |sum(abs(x))
 *  |2           |                           |sum(abs(x)^2)^(1/2)
 *
 * @param axis Optional. If axis is null (the default), the input is
 * considered a vector and a single vector norm is computed over the entire
 * set of values in the Tensor, i.e. norm(x, ord) is equivalent
 * to norm(x.reshape([-1]), ord). If axis is an integer, the input
 * is considered a batch of vectors, and axis determines the axis in x
 * over which to compute vector norms. If axis is a 2-tuple of integer it is
 * considered a batch of matrices and axis determines the axes in NDArray
 * over which to compute a matrix norm.
 * @param keepDims Optional. If true, the norm has the same dimensionality
 * as the input.
 *
 * @doc {heading: 'Operations', subheading: 'Matrices'}
 */
                function norm_(x, ord = 'euclidean', axis = null, keepDims = false) {
                    x = convertToTensor(x, 'x', 'norm');
                    const norm = normImpl(x, ord, axis);
                    let keepDimsShape = norm.shape;
                    if (keepDims) {
                        const axes = parseAxisParam(axis, x.shape);
                        keepDimsShape = expandShapeToKeepDim(norm.shape, axes);
                    }
                    return reshape(norm, keepDimsShape);
                }
                function normImpl(x, p, axis = null) {
                    if (x.rank === 0) {
                        return abs(x);
                    }
                    // consider vector when no axis is specified
                    if (x.rank !== 1 && axis === null) {
                        return normImpl(reshape(x, [-1]), p, axis);
                    }
                    // vector
                    if (x.rank === 1 || typeof axis === 'number' || Array.isArray(axis) && axis.length === 1) {
                        if (p === 1) {
                            return sum$1(abs(x), axis);
                        }
                        if (p === Infinity) {
                            return max(abs(x), axis);
                        }
                        if (p === -Infinity) {
                            return min(abs(x), axis);
                        }
                        if (p === 'euclidean' || p === 2) {
                            // norm(x, 2) = sum(abs(xi) ^ 2) ^ 1/2
                            return sqrt(sum$1(pow(abs(x), scalar(2, 'int32')), axis));
                        }
                        throw new Error(`Error in norm: invalid ord value: ${p}`);
                    }
                    // matrix (assumption axis[0] < axis[1])
                    if (Array.isArray(axis) && axis.length === 2) {
                        if (p === 1) {
                            return max(sum$1(abs(x), axis[0]), axis[1] - 1);
                        }
                        if (p === Infinity) {
                            return max(sum$1(abs(x), axis[1]), axis[0]);
                        }
                        if (p === -Infinity) {
                            return min(sum$1(abs(x), axis[1]), axis[0]);
                        }
                        if (p === 'fro' || p === 'euclidean') {
                            // norm(x) = sqrt(sum(pow(x, 2)))
                            return sqrt(sum$1(square(x), axis));
                        }
                        throw new Error(`Error in norm: invalid ord value: ${p}`);
                    }
                    throw new Error(`Error in norm: invalid axis: ${axis}`);
                }
                const norm = op({
                    norm_
                });
                /**
 * @license
 * Copyright 2022 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the Euclidean norm of scalar, vectors, and matrices.
 *
 * ```js
 * const x = tf.tensor1d([1, 2, 3, 4]);
 *
 * x.euclideanNorm().print();  // or tf.euclideanNorm(x)
 * ```
 *
 * @param x The input array.
 * @param axis Optional. If axis is null (the default), the input is
 * considered a vector and a single vector norm is computed over the entire
 * set of values in the Tensor, i.e. euclideanNorm(x) is equivalent
 * to euclideanNorm(x.reshape([-1])). If axis is an integer, the input
 * is considered a batch of vectors, and axis determines the axis in x
 * over which to compute vector norms. If axis is a 2-tuple of integer it is
 * considered a batch of matrices and axis determines the axes in NDArray
 * over which to compute a matrix norm.
 * @param keepDims Optional. If true, the norm has the same dimensionality
 * as the input.
 *
 * @doc {heading: 'Operations', subheading: 'Matrices'}
 */
                function euclideanNorm_(x, axis = null, keepDims = false) {
                    return norm(x, 'euclidean', axis, keepDims);
                }
                const euclideanNorm = op({
                    euclideanNorm_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Returns a `tf.Tensor` that has expanded rank, by inserting a dimension
 * into the tensor's shape.
 *
 * ```js
 * const x = tf.tensor1d([1, 2, 3, 4]);
 * const axis = 1;
 * x.expandDims(axis).print();
 * ```
 *
 * @param x The input tensor whose dimensions are to be expanded.
 * @param axis The dimension index at which to insert shape of `1`. Defaults
 *     to 0 (the first dimension).
 *
 * @doc {heading: 'Tensors', subheading: 'Transformations'}
 */
                function expandDims_(x, axis = 0) {
                    const $x = convertToTensor(x, 'x', 'expandDims', 'string_or_numeric');
                    assert(axis <= $x.rank, () => 'Axis must be <= rank of the tensor');
                    const inputs = {
                        input: $x
                    };
                    const attrs = {
                        dim: axis
                    };
                    return ENGINE.runKernel(ExpandDims, inputs, attrs);
                }
                const expandDims = op({
                    expandDims_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes exponential of the input `tf.Tensor` minus one element-wise.
 * `e ^ x - 1`
 *
 * ```js
 * const x = tf.tensor1d([1, 2, -3]);
 *
 * x.expm1().print();  // or tf.expm1(x)
 * ```
 * @param x The input tensor.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function expm1_(x) {
                    const $x = convertToTensor(x, 'x', 'expm1');
                    const inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(Expm1, inputs);
                }
                const expm1 = op({
                    expm1_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Create an identity matrix.
 *
 * @param numRows Number of rows.
 * @param numColumns Number of columns. Defaults to `numRows`.
 * @param batchShape If provided, will add the batch shape to the beginning
 *   of the shape of the returned `tf.Tensor` by repeating the identity
 *   matrix.
 * @param dtype Data type.
 * @returns Identity matrix of the specified size and data type, possibly
 *   with batch repetition if `batchShape` is specified.
 *
 * @doc {heading: 'Tensors', subheading: 'Creation'}
 */
                function eye_(numRows, numColumns, batchShape, dtype = 'float32') {
                    if (numColumns == null) {
                        numColumns = numRows;
                    }
                    const buff = buffer([numRows, numColumns], dtype);
                    const n = numRows <= numColumns ? numRows : numColumns;
                    for (let i = 0; i < n; ++i) {
                        buff.set(1, i, i);
                    }
                    const out = reshape(buff.toTensor(), [numRows, numColumns]);
                    if (batchShape == null) {
                        return out;
                    } else {
                        if (batchShape.length === 1) {
                            return tile(expandDims(out, 0), [batchShape[0], 1, 1]);
                        } else if (batchShape.length === 2) {
                            // tslint:disable-next-line:no-unnecessary-type-assertion
                            return tile(expandDims(expandDims(out, 0), 0), [batchShape[0], batchShape[1], 1, 1]);
                        } else if (batchShape.length === 3) {
                            // tslint:disable-next-line:no-unnecessary-type-assertion
                            return tile(expandDims(expandDims(expandDims(out, 0), 0), 0), [batchShape[0], batchShape[1], batchShape[2], 1, 1]);
                        } else {
                            throw new Error(`eye() currently supports only 1D and 2D ` + // tslint:disable-next-line:no-any
                                `batchShapes, but received ${batchShape.length}D.`);
                        }
                    }
                }
                const eye = op({
                    eye_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Gather slices from tensor `x`'s axis `axis` according to `indices`.
 *
 * ```js
 * const x = tf.tensor1d([1, 2, 3, 4]);
 * const indices = tf.tensor1d([1, 3, 3], 'int32');
 *
 * x.gather(indices).print();
 * ```
 *
 * ```js
 * const x = tf.tensor2d([1, 2, 3, 4], [2, 2]);
 * const indices = tf.tensor1d([1, 1, 0], 'int32');
 *
 * x.gather(indices).print();
 * ```
 * @param x The input tensor whose slices are to be gathered.
 * @param indices The indices of the values to extract.
 * @param axis The axis over which to select values. Defaults to 0.
 * @param batchDims Optional. The number of batch dimensions. It must be less
 *     than or equal to rank(indices). Defaults to 0.
 *     The output tensor will have shape of
 *     `x.shape[:axis] + indices.shape[batchDims:] + x.shape[axis + 1:]`
 *
 * @doc {heading: 'Tensors', subheading: 'Slicing and Joining'}
 */
                function gather_(x, indices, axis = 0, batchDims = 0) {
                    const $x = convertToTensor(x, 'x', 'gather');
                    const $indices = convertToTensor(indices, 'indices', 'gather', 'int32');
                    const inputs = {
                        x: $x,
                        indices: $indices
                    };
                    const attrs = {
                        axis,
                        batchDims
                    };
                    return ENGINE.runKernel(GatherV2, inputs, attrs);
                }
                const gather = op({
                    gather_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Returns which elements of x are finite.
 *
 * ```js
 * const x = tf.tensor1d([NaN, Infinity, -Infinity, 0, 1]);
 *
 * x.isFinite().print();  // or tf.isNaN(x)
 * ```
 * @param x The input Tensor.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function isFinite_(x) {
                    const $x = convertToTensor(x, 'x', 'isFinite');
                    const inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(IsFinite, inputs);
                }
                const isFinite$1 = op({
                    isFinite_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Returns which elements of x are Infinity or -Infinity.
 *
 * ```js
 * const x = tf.tensor1d([NaN, Infinity, -Infinity, 0, 1]);
 *
 * x.isInf().print();  // or tf.isNaN(x)
 * ```
 * @param x The input Tensor.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function isInf_(x) {
                    const $x = convertToTensor(x, 'x', 'isInf');
                    const inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(IsInf, inputs);
                }
                const isInf = op({
                    isInf_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Returns which elements of x are NaN.
 *
 * ```js
 * const x = tf.tensor1d([NaN, Infinity, -Infinity, 0, 1]);
 *
 * x.isNaN().print();  // or tf.isNaN(x)
 * ```
 * @param x The input Tensor.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function isNaN_(x) {
                    const $x = convertToTensor(x, 'x', 'isNaN');
                    const inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(IsNan, inputs);
                }
                const isNaN$1 = op({
                    isNaN_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes leaky rectified linear element-wise.
 *
 * See
 * [http://web.stanford.edu/~awni/papers/relu_hybrid_icml2013_final.pdf](
 *     http://web.stanford.edu/~awni/papers/relu_hybrid_icml2013_final.pdf)
 *
 * ```js
 * const x = tf.tensor1d([-1, 2, -3, 4]);
 *
 * x.leakyRelu(0.1).print();  // or tf.leakyRelu(x, 0.1)
 * ```
 * @param x The input tensor.
 * @param alpha The scaling factor for negative values, defaults to 0.2.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function leakyRelu_(x, alpha = 0.2) {
                    const $x = convertToTensor(x, 'x', 'leakyRelu');
                    const inputs = {
                        x: $x
                    };
                    const attrs = {
                        alpha
                    };
                    return ENGINE.runKernel(LeakyRelu, inputs, attrs);
                }
                const leakyRelu = op({
                    leakyRelu_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Return an evenly spaced sequence of numbers over the given interval.
 *
 * ```js
 * tf.linspace(0, 9, 10).print();
 * ```
 * @param start The start value of the sequence.
 * @param stop The end value of the sequence.
 * @param num The number of values to generate.
 *
 * @doc {heading: 'Tensors', subheading: 'Creation'}
 */
                function linspace(start, stop, num) {
                    if (num <= 0) {
                        throw new Error('The number of values should be positive.');
                    }
                    const attrs = {
                        start,
                        stop,
                        num
                    };
                    return ENGINE.runKernel(LinSpace, {}, attrs);
                }
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Normalizes the activation of a local neighborhood across or within
 * channels.
 *
 * @param x The input tensor. The 4-D input tensor is treated as a 3-D array
 *     of 1D vectors (along the last dimension), and each vector is
 *     normalized independently.
 * @param depthRadius The number of adjacent channels in the 1D normalization
 *     window.
 * @param bias A constant bias term for the basis.
 * @param alpha A scale factor, usually positive.
 * @param beta An exponent.
 *
 * @doc {heading: 'Operations', subheading: 'Normalization'}
 */
                function localResponseNormalization_(x, depthRadius = 5, bias = 1, alpha = 1, beta = 0.5) {
                    const $x = convertToTensor(x, 'x', 'localResponseNormalization');
                    assert($x.rank === 4 || $x.rank === 3, () => `Error in localResponseNormalization: x must be rank 3 or 4 but got
               rank ${$x.rank}.`);
                    assert(isInt(depthRadius), () => `Error in localResponseNormalization: depthRadius must be an ` + `integer but got depthRadius ${depthRadius}.`);
                    let x4D = $x;
                    let reshapedTo4D = false;
                    if ($x.rank === 3) {
                        reshapedTo4D = true;
                        x4D = reshape($x, [1, $x.shape[0], $x.shape[1], $x.shape[2]]);
                    }
                    const inputs = {
                        x: x4D
                    };
                    const attrs = {
                        depthRadius,
                        bias,
                        alpha,
                        beta
                    };
                    // tslint:disable-next-line: no-unnecessary-type-assertion
                    const res = ENGINE.runKernel(LRN, inputs, attrs);
                    if (reshapedTo4D) {
                        return reshape(res, [res.shape[1], res.shape[2], res.shape[3]]);
                    } else {
                        return res;
                    }
                }
                const localResponseNormalization = op({
                    localResponseNormalization_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes natural logarithm of the input `tf.Tensor` plus one
 * element-wise: `ln(1 + x)`
 *
 * ```js
 * const x = tf.tensor1d([1, 2, Math.E - 1]);
 *
 * x.log1p().print();  // or tf.log1p(x)
 * ```
 * @param x The input tensor.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function log1p_(x) {
                    const $x = convertToTensor(x, 'x', 'log1p');
                    const inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(Log1p, inputs);
                }
                const log1p = op({
                    log1p_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Provided `f(x)`, returns another function `g(x, dy?)`, which gives the
 * gradient of `f(x)` with respect to `x`.
 *
 * If `dy` is provided, the gradient of `f(x).mul(dy).sum()` with respect to
 * `x` is computed instead. `f(x)` must take a single tensor `x` and return a
 * single tensor `y`. If `f()` takes multiple inputs, use `tf.grads` instead.
 *
 * ```js
 * // f(x) = x ^ 2
 * const f = x => x.square();
 * // f'(x) = 2x
 * const g = tf.grad(f);
 *
 * const x = tf.tensor1d([2, 3]);
 * g(x).print();
 * ```
 *
 * ```js
 * // f(x) = x ^ 3
 * const f = x => x.pow(tf.scalar(3, 'int32'));
 * // f'(x) = 3x ^ 2
 * const g = tf.grad(f);
 * // f''(x) = 6x
 * const gg = tf.grad(g);
 *
 * const x = tf.tensor1d([2, 3]);
 * gg(x).print();
 * ```
 *
 * @param f The function f(x), to compute gradient for.
 *
 * @doc {heading: 'Training', subheading: 'Gradients'}
 */
                function grad(f) {
                    assert(isFunction(f), () => 'The f passed in grad(f) must be a function');
                    return (x, dy) => {
                        // x can be of any dtype, thus null as the last argument.
                        const $x = convertToTensor(x, 'x', 'tf.grad', 'string_or_numeric');
                        const $dy = dy != null ? convertToTensor(dy, 'dy', 'tf.grad') : null;
                        return ENGINE.tidy(() => {
                            const { value, grads } = ENGINE.gradients(() => f($x), [$x], $dy);
                            if ($dy != null) {
                                assertShapesMatch(value.shape, $dy.shape, 'The shape of dy passed in grad(f)(x, dy) must match the shape ' + 'returned by f(x)');
                            }
                            checkGrads(grads);
                            return grads[0];
                        }
                        );
                    }
                        ;
                }
                /**
 * Provided `f(x1, x2,...)`, returns another function `g([x1, x2,...], dy?)`,
 * which gives an array of gradients of `f()` with respect to each input
 * [`x1`,`x2`,...].
 *
 * If `dy` is passed when calling `g()`, the gradient of
 * `f(x1,...).mul(dy).sum()` with respect to each input is computed instead.
 * The provided `f` must take one or more tensors and return a single tensor
 * `y`. If `f()` takes a single input, we recommend using `tf.grad` instead.
 *
 * ```js
 * // f(a, b) = a * b
 * const f = (a, b) => a.mul(b);
 * // df / da = b, df / db = a
 * const g = tf.grads(f);
 *
 * const a = tf.tensor1d([2, 3]);
 * const b = tf.tensor1d([-2, -3]);
 * const [da, db] = g([a, b]);
 * console.log('da');
 * da.print();
 * console.log('db');
 * db.print();
 * ```
 *
 * @param f The function `f(x1, x2,...)` to compute gradients for.
 *
 * @doc {heading: 'Training', subheading: 'Gradients'}
 */
                function grads(f) {
                    assert(isFunction(f), () => 'The f passed in grads(f) must be a function');
                    return (args, dy) => {
                        assert(Array.isArray(args), () => 'The args passed in grads(f)(args) must be an array ' + 'of `Tensor`s or `TensorLike`s');
                        // args can be of any dtype, thus null as the last argument.
                        const $args = convertToTensorArray(args, 'args', 'tf.grads', 'string_or_numeric');
                        const $dy = dy != null ? convertToTensor(dy, 'dy', 'tf.grads') : null;
                        return ENGINE.tidy(() => {
                            const { value, grads } = ENGINE.gradients(() => f(...$args), $args, $dy);
                            if ($dy != null) {
                                assertShapesMatch(value.shape, $dy.shape, 'The shape of dy passed in grads(f)([x1,...], dy) must ' + 'match the shape returned by f([x1,...])');
                            }
                            checkGrads(grads);
                            return grads;
                        }
                        );
                    }
                        ;
                }
                /**
 * Like `tf.grad`, but also returns the value of `f()`. Useful when `f()`
 * returns a metric you want to show.
 *
 * The result is a rich object with the following properties:
 * - grad: The gradient of `f(x)` w.r.t. `x` (result of `tf.grad`).
 * - value: The value returned by `f(x)`.
 *
 * ```js
 * // f(x) = x ^ 2
 * const f = x => x.square();
 * // f'(x) = 2x
 * const g = tf.valueAndGrad(f);
 *
 * const x = tf.tensor1d([2, 3]);
 * const {value, grad} = g(x);
 *
 * console.log('value');
 * value.print();
 * console.log('grad');
 * grad.print();
 * ```
 *
 * @doc {heading: 'Training', subheading: 'Gradients'}
 */
                function valueAndGrad(f) {
                    assert(isFunction(f), () => 'The f passed in valueAndGrad(f) must be a function');
                    return (x, dy) => {
                        assert(x instanceof Tensor, () => 'The x passed in valueAndGrad(f)(x) must be a tensor');
                        assert(dy == null || dy instanceof Tensor, () => 'The dy passed in valueAndGrad(f)(x, dy) must be a tensor');
                        const { grads, value } = ENGINE.gradients(() => f(x), [x], dy);
                        checkGrads(grads);
                        return {
                            grad: grads[0],
                            value
                        };
                    }
                        ;
                }
                /**
 * Like `tf.grads`, but returns also the value of `f()`. Useful when `f()`
 * returns a metric you want to show.
 *
 * The result is a rich object with the following properties:
 * - grads: The gradients of `f()` w.r.t. each input (result of `tf.grads`).
 * - value: The value returned by `f(x)`.
 *
 * ```js
 * // f(a, b) = a * b
 * const f = (a, b) => a.mul(b);
 * // df/da = b, df/db = a
 * const g = tf.valueAndGrads(f);
 *
 * const a = tf.tensor1d([2, 3]);
 * const b = tf.tensor1d([-2, -3]);
 * const {value, grads} = g([a, b]);
 *
 * const [da, db] = grads;
 *
 * console.log('value');
 * value.print();
 *
 * console.log('da');
 * da.print();
 * console.log('db');
 * db.print();
 * ```
 *
 * @doc {heading: 'Training', subheading: 'Gradients'}
 */
                function valueAndGrads(f) {
                    assert(isFunction(f), () => 'The f passed in valueAndGrads(f) must be a function');
                    return (args, dy) => {
                        assert(Array.isArray(args) && args.every(arg => arg instanceof Tensor), () => 'The args passed in valueAndGrads(f)(args) must be array of ' + 'tensors');
                        assert(dy == null || dy instanceof Tensor, () => 'The dy passed in valueAndGrads(f)(args, dy) must be a tensor');
                        const res = ENGINE.gradients(() => f(...args), args, dy);
                        if (dy != null) {
                            assertShapesMatch(res.value.shape, dy.shape, 'The shape of dy passed in valueAndGrads(f)([x1,...], dy) must ' + 'match the shape returned by f([x1,...])');
                        }
                        checkGrads(res.grads);
                        return res;
                    }
                        ;
                }
                /**
 * Computes and returns the gradient of f(x) with respect to the list of
 * trainable variables provided by `varList`. If no list is provided, it
 * defaults to all trainable variables.
 *
 * ```js
 * const a = tf.variable(tf.tensor1d([3, 4]));
 * const b = tf.variable(tf.tensor1d([5, 6]));
 * const x = tf.tensor1d([1, 2]);
 *
 * // f(a, b) = a * x ^ 2 + b * x
 * const f = () => a.mul(x.square()).add(b.mul(x)).sum();
 * // df/da = x ^ 2, df/db = x
 * const {value, grads} = tf.variableGrads(f);
 *
 * Object.keys(grads).forEach(varName => grads[varName].print());
 * ```
 *
 * @param f The function to execute. f() should return a scalar.
 * @param varList The list of variables to compute the gradients with respect
 *     to. Defaults to all trainable variables.
 * @returns An object with the following keys and values:
 *   - `value`: The value of the function `f`.
 *   - `grads`: A map from the names of the variables to the gradients.
 *     If the `varList` argument is provided explicitly and contains a subset of
 *     non-trainable variables, this map in the return value will contain keys
 *     that map the names of the non-trainable variables to `null`.
 *
 * @doc {heading: 'Training', subheading: 'Gradients'}
 */
                function variableGrads(f, varList) {
                    assert(isFunction(f), () => 'The f passed in variableGrads(f) must be a function');
                    assert(varList == null || Array.isArray(varList) && varList.every(v => v instanceof Variable), () => 'The varList passed in variableGrads(f, varList) must be an array ' + 'of variables');
                    const specifiedVarList = varList != null;
                    if (!specifiedVarList) {
                        // Get all of the trainable variables.
                        varList = [];
                        for (const varName in ENGINE.registeredVariables) {
                            varList.push(ENGINE.registeredVariables[varName]);
                        }
                    }
                    const specifiedNonTrainable = specifiedVarList ? varList.filter(variable => !variable.trainable) : null;
                    // Prune non-trainable variables.
                    const originalVarCount = varList.length;
                    varList = varList.filter(variable => variable.trainable);
                    assert(varList.length > 0, () => `variableGrads() expects at least one of the input variables to ` + `be trainable, but none of the ${originalVarCount} variables is ` + `trainable.`);
                    const allowNoGradients = true;
                    const { value, grads } = ENGINE.gradients(f, varList, null, allowNoGradients);
                    assert(grads.some(g => g != null), () => 'Cannot find a connection between any variable and the result of ' + 'the loss function y=f(x). Please make sure the operations that ' + 'use variables are inside the function f passed to minimize().');
                    assert(value.rank === 0, () => `The f passed in variableGrads(f) must return a scalar, but it ` + `returned a rank-${value.rank} tensor`);
                    const namedGrads = {};
                    varList.forEach((v, i) => {
                        if (grads[i] != null) {
                            namedGrads[v.name] = grads[i];
                        }
                    }
                    );
                    if (specifiedNonTrainable != null) {
                        // If varList is explicitly provided and contains non-trainable values,
                        // add them to the returned gradients with `null` values.
                        specifiedNonTrainable.forEach(v => namedGrads[v.name] = null);
                    }
                    return {
                        value,
                        grads: namedGrads
                    };
                }
                /**
 * Overrides the gradient computation of a function `f`.
 *
 * Takes a function
 * `f(...inputs, save) => {value: Tensor, gradFunc: (dy, saved) => Tensor[]}`
 * and returns another function `g(...inputs)` which takes the same inputs as
 * `f`. When called, `g` returns `f().value`. In backward mode, custom gradients
 * with respect to each input of `f` are computed using `f().gradFunc`.
 *
 * The `save` function passed to `f` should be used for saving tensors needed
 * in the gradient. And the `saved` passed to the `gradFunc` is a
 * `NamedTensorMap`, which contains those saved tensors.
 *
 * ```js
 * const customOp = tf.customGrad((x, save) => {
 *   // Save x to make sure it's available later for the gradient.
 *   save([x]);
 *   // Override gradient of our custom x ^ 2 op to be dy * abs(x);
 *   return {
 *     value: x.square(),
 *     // Note `saved.x` which points to the `x` we saved earlier.
 *     gradFunc: (dy, saved) => [dy.mul(saved[0].abs())]
 *   };
 * });
 *
 * const x = tf.tensor1d([-1, -2, 3]);
 * const dx = tf.grad(x => customOp(x));
 *
 * console.log(`f(x):`);
 * customOp(x).print();
 * console.log(`f'(x):`);
 * dx(x).print();
 * ```
 *
 * @param f The function to evaluate in forward mode, which should return
 *     `{value: Tensor, gradFunc: (dy, saved) => Tensor[]}`, where `gradFunc`
 *     returns the custom gradients of `f` with respect to its inputs.
 *
 * @doc {heading: 'Training', subheading: 'Gradients'}
 */
                function customGrad(f) {
                    return ENGINE.customGrad(f);
                }
                function checkGrads(grads) {
                    const numNullGradients = grads.filter(g => g == null).length;
                    if (numNullGradients > 0) {
                        throw new Error(`Cannot compute gradient of y=f(x) with respect to x. Make sure that
    the f you passed encloses all operations that lead from x to y.`);
                    }
                }
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes softplus of the input `tf.Tensor` element-wise: `log(exp(x) + 1)`
 *
 * ```js
 * const x = tf.tensor1d([0, 1, -1, .7]);
 *
 * x.softplus().print();  // or tf.softplus(x)
 * ```
 * @param x The input tensor.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function softplus_(x) {
                    const $x = convertToTensor(x, 'x', 'softplus');
                    const inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(Softplus, inputs);
                }
                const softplus = op({
                    softplus_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes log sigmoid of the input `tf.Tensor` element-wise:
 * `logSigmoid(x)`. For numerical stability, we use `-tf.softplus(-x)`.
 *
 * ```js
 * const x = tf.tensor1d([0, 1, -1, .7]);
 *
 * x.logSigmoid().print();  // or tf.logSigmoid(x)
 * ```
 * @param x The input tensor.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function logSigmoid_(x) {
                    const $x = convertToTensor(x, 'x', 'logSigmoid');
                    // Use a custom gradient to maintain previous implementation.
                    // There is no LogSigmoid kernel in TF so we can't use engine.runKernel
                    // directly
                    const customOp = customGrad(x => {
                        // TODO(yassogba) we can remove the chained softplus call here only
                        // after backends have modualrized softplus at which point we can call
                        // engine runKernel(..., Sotfplus, ...) directly.
                        const value = neg(softplus(neg(x)));
                        const gradFunc = dy => {
                            const derX = mul(dy, sigmoid(neg(x)));
                            return derX;
                        }
                            ;
                        return {
                            value,
                            gradFunc
                        };
                    }
                    );
                    return customOp($x);
                }
                const logSigmoid = op({
                    logSigmoid_
                });
                /**
 * @license
 * Copyright 2020 Google Inc. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the log softmax.
 *
 * ```js
 * const a = tf.tensor1d([1, 2, 3]);
 *
 * a.logSoftmax().print();  // or tf.logSoftmax(a)
 * ```
 *
 * ```js
 * const a = tf.tensor2d([2, 4, 6, 1, 2, 3], [2, 3]);
 *
 * a.logSoftmax().print();  // or tf.logSoftmax(a)
 * ```
 *
 * @param logits The logits array.
 * @param axis The dimension softmax would be performed on. Defaults to `-1`
 *     which indicates the last dimension.
 *
 * @doc {heading: 'Operations', subheading: 'Normalization'}
 */
                function logSoftmax_(logits, axis = -1) {
                    const $logits = convertToTensor(logits, 'logits', 'logSoftmax');
                    if (axis === -1) {
                        axis = $logits.rank - 1;
                    }
                    if (axis !== $logits.rank - 1) {
                        throw Error('Log Softmax along a non-last dimension is not yet supported. ' + `Logits was rank ${$logits.rank} and axis was ${axis}`);
                    }
                    // const forward: ForwardFunc<Tensor> = (backend, save) => {
                    //   const keepDims = true;
                    //   const xMax = max(logits, axis, true);
                    //   const shifted = sub(logits, xMax);
                    //   const value =
                    //       sub(cast(shifted, 'float32'), log(sum(exp(shifted), axis,
                    //       keepDims)));
                    //   save([value]);
                    //   return value;
                    // };
                    // Use a custom gradient for numerical stability.
                    const customOp = customGrad((logits, save) => {
                        const keepDims = true;
                        const xMax = max(logits, axis, true);
                        const shifted = sub(logits, xMax);
                        const value = sub(cast(shifted, 'float32'), log$1(sum$1(exp(shifted), axis, keepDims)));
                        save([value]);
                        const gradFunc = (dy, saved) => {
                            const [value] = saved;
                            const keepDims = true;
                            const softmax = exp(value);
                            return sub(dy, mul(sum$1(dy, axis, keepDims), softmax));
                        }
                            ;
                        return {
                            value,
                            gradFunc
                        };
                    }
                    );
                    return customOp($logits);
                    // TODO Use Engine.runKernel when CPU/WebGL/WASM backends implement this.
                    // const inputs: LogSoftmaxInputs = {logits: $logits};
                    // const attrs: LogSoftmaxAttrs = {axis};
                    // return ENGINE.runKernel(
                    //            LogSoftmax, inputs as {} as NamedTensorMap,
                    //            attrs as {} as NamedAttrMap);
                }
                const logSoftmax = op({
                    logSoftmax_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the log(sum(exp(elements across the reduction dimensions))).
 *
 * Reduces the input along the dimensions given in `axis`. Unless `keepDims`
 * is true, the rank of the array is reduced by 1 for each entry in `axis`.
 * If `keepDims` is true, the reduced dimensions are retained with length 1.
 * If `axis` has no entries, all dimensions are reduced, and an array with a
 * single element is returned.
 *
 * ```js
 * const x = tf.tensor1d([1, 2, 3]);
 *
 * x.logSumExp().print();  // or tf.logSumExp(x)
 * ```
 *
 * ```js
 * const x = tf.tensor2d([1, 2, 3, 4], [2, 2]);
 *
 * const axis = 1;
 * x.logSumExp(axis).print();  // or tf.logSumExp(a, axis)
 * ```
 * @param x The input tensor.
 * @param axis The dimension(s) to reduce. If null (the default),
 *     reduces all dimensions.
 * @param keepDims If true, retains reduced dimensions with length
 *     of 1. Defaults to false.
 *
 * @doc {heading: 'Operations', subheading: 'Reduction'}
 */
                function logSumExp_(x, axis = null, keepDims = false) {
                    const $x = convertToTensor(x, 'x', 'logSumExp');
                    const axes = parseAxisParam(axis, $x.shape);
                    const xMax = max($x, axes, true /* keepDims */
                    );
                    const a = sub($x, xMax);
                    const b = exp(a);
                    const c = sum$1(b, axes);
                    const d = log$1(c);
                    const res = add$1(reshape(xMax, d.shape), d);
                    if (keepDims) {
                        const newShape = expandShapeToKeepDim(res.shape, axes);
                        return reshape(res, newShape);
                    }
                    return res;
                }
                const logSumExp = op({
                    logSumExp_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Returns the truth value of `NOT x` element-wise.
 *
 * ```js
 * const a = tf.tensor1d([false, true], 'bool');
 *
 * a.logicalNot().print();
 * ```
 *
 * @param x The input tensor. Must be of dtype 'bool'.
 *
 * @doc {heading: 'Operations', subheading: 'Logical'}
 */
                function logicalNot_(x) {
                    const $x = convertToTensor(x, 'x', 'logicalNot', 'bool');
                    const inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(LogicalNot, inputs);
                }
                const logicalNot = op({
                    logicalNot_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Returns the truth value of `a OR b` element-wise. Supports broadcasting.
 *
 * ```js
 * const a = tf.tensor1d([false, false, true, true], 'bool');
 * const b = tf.tensor1d([false, true, false, true], 'bool');
 *
 * a.logicalOr(b).print();
 * ```
 * @param a The first input tensor. Must be of dtype bool.
 * @param b The second input tensor. Must be of dtype bool.
 *
 * @doc {heading: 'Operations', subheading: 'Logical'}
 */
                function logicalOr_(a, b) {
                    const $a = convertToTensor(a, 'a', 'logicalOr', 'bool');
                    const $b = convertToTensor(b, 'b', 'logicalOr', 'bool');
                    assertAndGetBroadcastShape($a.shape, $b.shape);
                    const inputs = {
                        a: $a,
                        b: $b
                    };
                    return ENGINE.runKernel(LogicalOr, inputs);
                }
                const logicalOr = op({
                    logicalOr_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Returns the truth value of `a XOR b` element-wise. Supports broadcasting.
 *
 * ```js
 * const a = tf.tensor1d([false, false, true, true], 'bool');
 * const b = tf.tensor1d([false, true, false, true], 'bool');
 *
 * a.logicalXor(b).print();
 * ```
 *
 * @param a The first input tensor. Must be of dtype bool.
 * @param b The second input tensor. Must be of dtype bool.
 *
 * @doc {heading: 'Operations', subheading: 'Logical'}
 */
                function logicalXor_(a, b) {
                    const $a = convertToTensor(a, 'a', 'logicalXor', 'bool');
                    const $b = convertToTensor(b, 'b', 'logicalXor', 'bool');
                    assertAndGetBroadcastShape($a.shape, $b.shape);
                    // x ^ y = (x | y) & ~(x & y)
                    return logicalAnd(logicalOr(a, b), logicalNot(logicalAnd(a, b)));
                }
                const logicalXor = op({
                    logicalXor_
                });
                /**
 * @license
 * Copyright 2022 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const INT32_MAX = 2147483648;
                /**
 * Searches for where a value would go in a sorted sequence.
 *
 * This is not a method for checking containment (like javascript in).
 *
 * The typical use case for this operation is "binning", "bucketing", or
 * "discretizing". The values are assigned to bucket-indices based on the edges
 * listed in 'sortedSequence'. This operation returns the bucket-index for each
 * value.
 *
 * The side argument controls which index is returned if a value lands exactly
 * on an edge.
 *
 * The axis is not settable for this operation. It always operates on the
 * innermost dimension (axis=-1). The operation will accept any number of outer
 * dimensions.
 *
 * Note: This operation assumes that 'sortedSequence' is sorted along the
 * innermost axis, maybe using 'sort(..., axis=-1)'. If the sequence is not
 * sorted no error is raised and the content of the returned tensor is not well
 * defined.
 *
 * ```js
 * const edges = tf.tensor1d([-1, 3.3, 9.1, 10.0]);
 * let values = tf.tensor1d([0.0, 4.1, 12.0]);
 * const result1 = tf.searchSorted(edges, values, 'left');
 * result1.print(); // [1, 2, 4]
 *
 * const seq = tf.tensor1d([0, 3, 9, 10, 10]);
 * values = tf.tensor1d([0, 4, 10]);
 * const result2 = tf.searchSorted(seq, values, 'left');
 * result2.print(); // [0, 2, 3]
 * const result3 = tf.searchSorted(seq, values, 'right');
 * result3.print(); // [1, 2, 5]
 *
 * const sortedSequence = tf.tensor2d([[0., 3., 8., 9., 10.],
 *                                     [1., 2., 3., 4., 5.]]);
 * values = tf.tensor2d([[9.8, 2.1, 4.3],
 *                       [0.1, 6.6, 4.5, ]]);
 * const result4 = tf.searchSorted(sortedSequence, values, 'left');
 * result4.print(); // [[4, 1, 2], [0, 5, 4]]
 * ```
 * @param sortedSequence: N-D. Sorted sequence.
 * @param values: N-D. Search values.
 * @param side: 'left'|'right'. Defaults to 'left'. 'left' corresponds to lower
 *     bound and 'right' to upper bound.
 * @return An N-D int32 tensor the size of values containing the result of
 *     applying either lower bound or upper bound (depending on side) to each
 *     value. The result is not a global index to the entire Tensor, but the
 *     index in the last dimension.
 * @doc {heading: 'Operations', subheading: 'Evaluation'}
 */
                function searchSorted_(sortedSequence, values, side = 'left') {
                    const $sortedSequence = convertToTensor(sortedSequence, 'sortedSequence', 'searchSorted');
                    const $values = convertToTensor(values, 'values', 'searchSorted');
                    const sequenceSize = $sortedSequence.shape[$sortedSequence.shape.length - 1];
                    const valuesSize = $values.shape[$values.shape.length - 1];
                    const $sortedSequence2D = reshape($sortedSequence, [-1, sequenceSize]);
                    const $values2D = reshape($values, [-1, valuesSize]);
                    if ($sortedSequence2D.rank < 2) {
                        throw new Error(`Sorted input argument must be at least 2-dimensional`);
                    }
                    if ($sortedSequence2D.shape[0] !== $values2D.shape[0]) {
                        throw new Error(`Leading dimension of 'sortedSequence' and 'values' must match.`);
                    }
                    if (sizeFromShape($values2D.shape) >= INT32_MAX) {
                        throw new Error(`values tensor size must less than ${INT32_MAX}`);
                    }
                    if ($sortedSequence2D.shape[1] >= INT32_MAX) {
                        throw new Error(`trailing dim_size must less than ${INT32_MAX} for int32 output type, was ${$sortedSequence2D.shape[1]}`);
                    }
                    const inputs = {
                        sortedSequence: $sortedSequence2D,
                        values: $values2D
                    };
                    const attrs = {
                        side
                    };
                    return ENGINE.runKernel(SearchSorted, inputs, attrs);
                }
                const searchSorted = op({
                    searchSorted_
                });
                /**
 * @license
 * Copyright 2022 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Searches for where a value would go in a sorted sequence.
 *
 * This is not a method for checking containment (like javascript in).
 *
 * The typical use case for this operation is "binning", "bucketing", or
 * "discretizing". The values are assigned to bucket-indices based on the edges
 * listed in 'sortedSequence'. This operation returns the bucket-index for each
 * value.
 *
 * The index returned corresponds to the first edge greater than or equal to the
 * value.
 *
 * The axis is not settable for this operation. It always operates on the
 * innermost dimension (axis=-1). The operation will accept any number of outer
 * dimensions.
 *
 * Note: This operation assumes that 'lowerBound' is sorted along the
 * innermost axis, maybe using 'sort(..., axis=-1)'. If the sequence is not
 * sorted no error is raised and the content of the returned tensor is not well
 * defined.
 *
 * ```js
 * const edges = tf.tensor1d([-1, 3.3, 9.1, 10.0]);
 * let values = tf.tensor1d([0.0, 4.1, 12.0]);
 * const result1 = tf.lowerBound(edges, values);
 * result1.print(); // [1, 2, 4]
 *
 * const seq = tf.tensor1d([0, 3, 9, 10, 10]);
 * values = tf.tensor1d([0, 4, 10]);
 * const result2 = tf.lowerBound(seq, values);
 * result2.print(); // [0, 2, 3]
 *
 * const sortedSequence = tf.tensor2d([[0., 3., 8., 9., 10.],
 *                                     [1., 2., 3., 4., 5.]]);
 * values = tf.tensor2d([[9.8, 2.1, 4.3],
 *                       [0.1, 6.6, 4.5, ]]);
 * const result3 = tf.lowerBound(sortedSequence, values);
 * result3.print(); // [[4, 1, 2], [0, 5, 4]]
 * ```
 * @param sortedSequence: N-D. Sorted sequence.
 * @param values: N-D. Search values.
 * @return An N-D int32 tensor the size of values containing the result of
 *     applying lower bound to each value. The result is not a global index to
 *     the entire Tensor, but the index in the last dimension.
 * @doc {heading: 'Operations', subheading: 'Evaluation'}
 */
                function lowerBound(sortedSequence, values) {
                    return searchSorted(sortedSequence, values, 'left');
                }
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the 2D max pooling of an image.
 *
 * @param x The input tensor, of rank 4 or rank 3 of shape
 *     `[batch, height, width, inChannels]`. If rank 3, batch of 1 is assumed.
 * @param filterSize The filter size: `[filterHeight, filterWidth]`. If
 *     `filterSize` is a single number, then `filterHeight == filterWidth`.
 * @param strides The strides of the pooling: `[strideHeight, strideWidth]`. If
 *     `strides` is a single number, then `strideHeight == strideWidth`.
 * @param dilations The dilation rates: `[dilationHeight, dilationWidth]`
 *     in which we sample input values across the height and width dimensions
 *     in dilated pooling. Defaults to `[1, 1]`. If `dilations` is a single
 *     number, then `dilationHeight == dilationWidth`. If it is greater than
 *     1, then all values of `strides` must be 1.
 * @param pad The type of padding algorithm.
 *    - `same` and stride 1: output will be of same size as input,
 *       regardless of filter size.
 *    - `valid`: output will be smaller than input if filter is larger
 *       than 1x1.
 *    - For more info, see this guide:
 *     [https://www.tensorflow.org/api_docs/python/tf/nn/convolution](
 *          https://www.tensorflow.org/api_docs/python/tf/nn/convolution)
 * @param dimRoundingMode A string from: 'ceil', 'round', 'floor'. If none is
 *     provided, it will default to truncate.
 */
                function maxPool_(x, filterSize, strides, pad, dimRoundingMode) {
                    const $x = convertToTensor(x, 'x', 'maxPool');
                    const dilations = 1;
                    let x4D = $x;
                    let reshapedTo4D = false;
                    if ($x.rank === 3) {
                        reshapedTo4D = true;
                        x4D = reshape($x, [1, $x.shape[0], $x.shape[1], $x.shape[2]]);
                    }
                    assert(x4D.rank === 4, () => `Error in maxPool: input must be rank 4 but got rank ${x4D.rank}.`);
                    assert(eitherStridesOrDilationsAreOne(strides, dilations), () => 'Error in maxPool: Either strides or dilations must be 1. ' + `Got strides ${strides} and dilations '${dilations}'`);
                    checkPadOnDimRoundingMode('maxPool', pad, dimRoundingMode);
                    const inputs = {
                        x: x4D
                    };
                    const attrs = {
                        filterSize,
                        strides,
                        pad,
                        dimRoundingMode
                    };
                    // tslint:disable-next-line: no-unnecessary-type-assertion
                    const res = ENGINE.runKernel(MaxPool, inputs, attrs);
                    if (reshapedTo4D) {
                        return reshape(res, [res.shape[1], res.shape[2], res.shape[3]]);
                    }
                    return res;
                }
                const maxPool = op({
                    maxPool_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the 3D max pooling.
 *
 * ```js
 * const x = tf.tensor5d([1, 2, 3, 4, 5, 6, 7, 8], [1, 2, 2, 2, 1]);
 * const result = tf.maxPool3d(x, 2, 1, 'valid');
 * result.print();
 * ```
 *
 * @param x The input tensor, of rank 5 or rank 4 of shape
 *     `[batch, depth, height, width, inChannels]`.
 * @param filterSize The filter size:
 *     `[filterDepth, filterHeight, filterWidth]`.
 *     If `filterSize` is a single number,
 *     then `filterDepth == filterHeight == filterWidth`.
 * @param strides The strides of the pooling:
 *     `[strideDepth, strideHeight, strideWidth]`.
 *     If `strides` is a single number,
 *     then `strideDepth == strideHeight == strideWidth`.
 * @param pad The type of padding algorithm.
 *    - `same` and stride 1: output will be of same size as input,
 *       regardless of filter size.
 *    - `valid`: output will be smaller than input if filter is larger
 *       than 1*1x1.
 *    - For more info, see this guide:
 *     [https://www.tensorflow.org/api_docs/python/tf/nn/convolution](
 *          https://www.tensorflow.org/api_docs/python/tf/nn/convolution)
 * @param dimRoundingMode A string from: 'ceil', 'round', 'floor'. If none is
 *     provided, it will default to truncate.
 * @param dataFormat An optional string from: "NDHWC", "NCDHW". Defaults to
 *     "NDHWC". Specify the data format of the input and output data. With the
 *     default format "NDHWC", the data is stored in the order of: [batch,
 *     depth, height, width, channels]. Only "NDHWC" is currently supported.
 * @doc {heading: 'Operations', subheading: 'Convolution'}
 */
                function maxPool3d_(x, filterSize = [1, 1, 1], strides, pad, dimRoundingMode, dataFormat = 'NDHWC') {
                    const $x = convertToTensor(x, 'x', 'maxPool3d');
                    let x5D = $x;
                    let reshapedTo5D = false;
                    if ($x.rank === 4) {
                        reshapedTo5D = true;
                        x5D = reshape($x, [1, $x.shape[0], $x.shape[1], $x.shape[2], $x.shape[3]]);
                    }
                    assert(x5D.rank === 5, () => `Error in maxPool3d: x must be rank 5 but got rank ${x5D.rank}.`);
                    assert(dataFormat === 'NDHWC', () => `Error in maxPool3d: Only NDHWC is currently supported, ` + `but got dataFormat of ${dataFormat}`);
                    checkPadOnDimRoundingMode('maxPool3d', pad, dimRoundingMode);
                    const inputs = {
                        x: x5D
                    };
                    const attrs = {
                        filterSize,
                        strides,
                        pad,
                        dimRoundingMode,
                        dataFormat
                    };
                    // tslint:disable-next-line: no-unnecessary-type-assertion
                    const res = ENGINE.runKernel(MaxPool3D, inputs, attrs);
                    if (reshapedTo5D) {
                        return reshape(res, [res.shape[1], res.shape[2], res.shape[3], res.shape[4]]);
                    }
                    return res;
                }
                const maxPool3d = op({
                    maxPool3d_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the 2D max pooling of an image with Argmax index.
 * The indices in argmax are flattened, so that a maximum value at position `[b,
 * y, x, c]` becomes flattened index: `(y * width + x) * channels + c` if
 * include_batch_in_index is False; `((b * height + y) * width + x) * channels
 * +c` if include_batch_in_index is True.
 *
 * The indices returned are always in `[0, height) x [0, width)` before
 * flattening.
 *
 * @param x The input tensor, of rank 4 or rank 3 of shape
 *     `[batch, height, width, inChannels]`. If rank 3, batch of 1 is assumed.
 * @param filterSize The filter size: `[filterHeight, filterWidth]`. If
 *     `filterSize` is a single number, then `filterHeight == filterWidth`.
 * @param strides The strides of the pooling: `[strideHeight, strideWidth]`. If
 *     `strides` is a single number, then `strideHeight == strideWidth`.
 * @param dataFormat An optional string from: "NDHWC", "NCDHW". Defaults to
 *     "NDHWC". Specify the data format of the input and output data. With the
 *     default format "NDHWC", the data is stored in the order of: [batch,
 *     depth, height, width, channels]. Only "NDHWC" is currently supported.
 * @param pad The type of padding algorithm.
 *    - `same` and stride 1: output will be of same size as input,
 *       regardless of filter size.
 *    - `valid`: output will be smaller than input if filter is larger
 *       than 1x1.
 *    - For more info, see this guide:
 *     [https://www.tensorflow.org/api_docs/python/tf/nn/convolution](
 *          https://www.tensorflow.org/api_docs/python/tf/nn/convolution)
 * @param includeBatchIndex Defaults to False. Whether to include batch
 *    dimension in flattened index of argmax.
 *
 * @doc {heading: 'Operations', subheading: 'Convolution'}
 */
                function maxPoolWithArgmax_(x, filterSize, strides, pad, includeBatchInIndex = false) {
                    const $x = convertToTensor(x, 'x', 'maxPoolWithArgmax');
                    const inputs = {
                        x: $x
                    };
                    const attrs = {
                        filterSize,
                        strides,
                        pad,
                        includeBatchInIndex
                    };
                    // tslint:disable-next-line: no-unnecessary-type-assertion
                    const result = ENGINE.runKernel(MaxPoolWithArgmax, inputs, attrs);
                    return {
                        result: result[0],
                        indexes: result[1]
                    };
                }
                const maxPoolWithArgmax = op({
                    maxPoolWithArgmax_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Returns the max of a and b (`a > b ? a : b`) element-wise.
 * Supports broadcasting.
 *
 * We also expose `tf.maximumStrict` which has the same signature as this op and
 * asserts that `a` and `b` are the same shape (does not broadcast).
 *
 * ```js
 * const a = tf.tensor1d([1, 4, 3, 16]);
 * const b = tf.tensor1d([1, 2, 9, 4]);
 *
 * a.maximum(b).print();  // or tf.maximum(a, b)
 * ```
 *
 * ```js
 * // Broadcast maximum a with b.
 * const a = tf.tensor1d([2, 4, 6, 8]);
 * const b = tf.scalar(5);
 *
 * a.maximum(b).print();  // or tf.maximum(a, b)
 * ```
 *
 * @param a The first tensor.
 * @param b The second tensor. Must have the same type as `a`.
 *
 * @doc {heading: 'Operations', subheading: 'Arithmetic'}
 */
                function maximum_(a, b) {
                    let $a = convertToTensor(a, 'a', 'maximum');
                    let $b = convertToTensor(b, 'b', 'maximum');
                    [$a, $b] = makeTypesMatch($a, $b);
                    if ($a.dtype === 'bool') {
                        $a = cast($a, 'int32');
                        $b = cast($b, 'int32');
                    }
                    assertAndGetBroadcastShape($a.shape, $b.shape);
                    const inputs = {
                        a: $a,
                        b: $b
                    };
                    return ENGINE.runKernel(Maximum, inputs);
                }
                const maximum = op({
                    maximum_
                });
                /**
 * @license
 * Copyright 2020 Google Inc. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the mean of elements across dimensions of a `tf.Tensor`.
 *
 * Reduces `x` along the dimensions given in `axis`. Unless `keepDims` is
 * true, the rank of the `tf.Tensor` is reduced by 1 for each entry in `axis`.
 * If `keepDims` is true, the reduced dimensions are retained with length 1.
 * If `axis` has no entries, all dimensions are reduced, and a `tf.Tensor` with
 * a single element is returned.
 *
 * ```js
 * const x = tf.tensor1d([1, 2, 3]);
 *
 * x.mean().print();  // or tf.mean(a)
 * ```
 *
 * ```js
 * const x = tf.tensor2d([1, 2, 3, 4], [2, 2]);
 *
 * const axis = 1;
 * x.mean(axis).print();  // or tf.mean(x, axis)
 * ```
 *
 * @param x The input tensor.
 * @param axis The dimension(s) to reduce. By default it reduces
 *     all dimensions.
 * @param keepDims If true, retains reduced dimensions with size 1.
 *
 * @doc {heading: 'Operations', subheading: 'Reduction'}
 */
                function mean_(x, axis = null, keepDims = false) {
                    const $x = convertToTensor(x, 'x', 'mean');
                    const inputs = {
                        x: $x
                    };
                    const attrs = {
                        axis,
                        keepDims
                    };
                    return ENGINE.runKernel(Mean, inputs, attrs);
                }
                const mean = op({
                    mean_
                });
                /**
 * @license
 * Copyright 2021 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Broadcasts parameters for evaluation on an N-D grid.
 *
 * Given N one-dimensional coordinate arrays `*args`, returns a list `outputs`
 * of N-D coordinate arrays for evaluating expressions on an N-D grid.
 *
 * Notes:
 * `meshgrid` supports cartesian ('xy') and matrix ('ij') indexing conventions.
 * When the `indexing` argument is set to 'xy' (the default), the broadcasting
 * instructions for the first two dimensions are swapped.
 * Examples:
 * Calling `const [X, Y] = meshgrid(x, y)` with the tensors
 *
 * ```javascript
 * const x = [1, 2, 3];
 * const y = [4, 5, 6];
 * const [X, Y] = tf.meshgrid(x, y);
 * // X = [[1, 2, 3],
 * //      [1, 2, 3],
 * //      [1, 2, 3]]
 * // Y = [[4, 4, 4],
 * //      [5, 5, 5],
 * //      [6, 6, 6]]
 * ```
 *
 * @param x Tensor with rank geq 1.
 * @param y Tensor with rank geq 1.
 * @param indexing
 *
 * @doc {heading: 'Operations', subheading: 'Slicing and Joining'}
 */
                function meshgrid(x, y, { indexing = 'xy' } = {}) {
                    if (indexing !== 'xy' && indexing !== 'ij') {
                        throw new TypeError(`${indexing} is not a valid third argument to meshgrid`);
                    }
                    if (x === undefined) {
                        return [];
                    }
                    let $x = convertToTensor(x, 'x', 'meshgrid', x instanceof Tensor ? x.dtype : 'float32');
                    if (y === undefined) {
                        return [$x];
                    }
                    let $y = convertToTensor(y, 'y', 'meshgrid', y instanceof Tensor ? y.dtype : 'float32');
                    const w = sizeFromShape($x.shape);
                    const h = sizeFromShape($y.shape);
                    if (indexing === 'xy') {
                        $x = reshape($x, [1, -1]);
                        $y = reshape($y, [-1, 1]);
                        return [matMul(ones$1([h, 1], $x.dtype), $x), matMul($y, ones$1([1, w], $y.dtype))];
                    }
                    $x = reshape($x, [-1, 1]);
                    $y = reshape($y, [1, -1]);
                    return [matMul($x, ones$1([1, h], $x.dtype)), matMul(ones$1([w, 1], $y.dtype), $y)];
                }
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Returns the min of a and b (`a < b ? a : b`) element-wise.
 * Supports broadcasting.
 *
 * We also expose `minimumStrict` which has the same signature as this op and
 * asserts that `a` and `b` are the same shape (does not broadcast).
 *
 * ```js
 * const a = tf.tensor1d([1, 4, 3, 16]);
 * const b = tf.tensor1d([1, 2, 9, 4]);
 *
 * a.minimum(b).print();  // or tf.minimum(a, b)
 * ```
 *
 * ```js
 * // Broadcast minimum a with b.
 * const a = tf.tensor1d([2, 4, 6, 8]);
 * const b = tf.scalar(5);
 *
 * a.minimum(b).print();  // or tf.minimum(a, b)
 * ```
 *
 * @param a The first tensor.
 * @param b The second tensor. Must have the same type as `a`.
 *
 * @doc {heading: 'Operations', subheading: 'Arithmetic'}
 */
                function minimum_(a, b) {
                    let $a = convertToTensor(a, 'a', 'minimum');
                    let $b = convertToTensor(b, 'b', 'minimum');
                    [$a, $b] = makeTypesMatch($a, $b);
                    if ($a.dtype === 'bool') {
                        $a = cast($a, 'int32');
                        $b = cast($b, 'int32');
                    }
                    assertAndGetBroadcastShape($a.shape, $b.shape);
                    const inputs = {
                        a: $a,
                        b: $b
                    };
                    return ENGINE.runKernel(Minimum, inputs);
                }
                const minimum = op({
                    minimum_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Pads a `tf.Tensor` using mirror padding.
 *
 * This operation implements the `REFLECT` and `SYMMETRIC` modes of pad.
 *
 * ```js
 * const x = tf.range(0, 9).reshape([1, 1, 3, 3]);
 * x.mirrorPad([[0, 0], [0, 0], [2, 2], [2, 2]], 'reflect').print();
 * ```
 * @param x The tensor to pad.
 * @param paddings An array of length `R` (the rank of the tensor), where
 * each element is a length-2 tuple of ints `[padBefore, padAfter]`,
 * specifying how much to pad along each dimension of the tensor.
 * In "reflect" mode, the padded regions do not include the borders,
 * while in "symmetric" mode the padded regions do include the borders.
 * For example, if the input is `[1, 2, 3]` and paddings is `[0, 2]`,
 * then the output is `[1, 2, 3, 2, 1]` in "reflect" mode, and
 * `[1, 2, 3, 3, 2]` in "symmetric" mode.
 * If `mode` is "reflect" then both `paddings[D, 0]` and `paddings[D, 1]`
 * must be no greater than `x.shape[D] - 1`. If mode is "symmetric"
 * then both `paddings[D, 0]` and `paddings[D, 1]` must be no greater than
 * `x.shape[D]`
 * @param mode String to specify padding mode. Can be `'reflect' | 'symmetric'`
 */
                /** @doc {heading: 'Tensors', subheading: 'Transformations'} */
                function mirrorPad_(x, paddings, mode) {
                    assert(mode === 'reflect' || mode === 'symmetric', () => `Invalid mode. Mode must be either reflect or symmetric. ` + `Got ${mode}.`);
                    const $x = convertToTensor(x, 'x', 'mirrorPad');
                    if ($x.rank === 0) {
                        throw new Error('mirrorPad(scalar) is not defined. ' + 'Pass non-scalar to mirrorPad');
                    }
                    assert(paddings.length === $x.rank, () => `Padding doesn't match input. Must be ${$x.rank}. ` + `Got ${paddings.length}.`);
                    const shapeOffset = mode === 'reflect' ? 1 : 0;
                    for (let i = 0; i < $x.rank; i++) {
                        assert(paddings[i].length === 2, () => `Invalid number of paddings. Must be length of 2 each.`);
                        assert(paddings[i][0] >= 0 && paddings[i][0] <= $x.shape[i] - shapeOffset && paddings[i][1] >= 0 && paddings[i][1] <= $x.shape[i] - shapeOffset, () => `Padding in dimension ${i} cannot be greater than or equal ` + `to ${$x.shape[i] - shapeOffset} or less than 0 for input of ` + `shape ${$x.shape}`);
                    }
                    const attrs = {
                        paddings,
                        mode
                    };
                    const inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(MirrorPad, inputs, attrs);
                }
                const mirrorPad = op({
                    mirrorPad_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Returns the mod of a and b element-wise.
 * `floor(x / y) * y + mod(x, y) = x`
 * Supports broadcasting.
 *
 * We also expose `tf.modStrict` which has the same signature as this op and
 * asserts that `a` and `b` are the same shape (does not broadcast).
 *
 * ```js
 * const a = tf.tensor1d([1, 4, 3, 16]);
 * const b = tf.tensor1d([1, 2, 9, 4]);
 *
 * a.mod(b).print();  // or tf.mod(a, b)
 * ```
 *
 * ```js
 * // Broadcast a mod b.
 * const a = tf.tensor1d([2, 4, 6, 8]);
 * const b = tf.scalar(5);
 *
 * a.mod(b).print();  // or tf.mod(a, b)
 * ```
 *
 * @param a The first tensor.
 * @param b The second tensor. Must have the same type as `a`.
 *
 * @doc {heading: 'Operations', subheading: 'Arithmetic'}
 */
                function mod_(a, b) {
                    let $a = convertToTensor(a, 'a', 'mod');
                    let $b = convertToTensor(b, 'b', 'mod');
                    [$a, $b] = makeTypesMatch($a, $b);
                    const inputs = {
                        a: $a,
                        b: $b
                    };
                    return ENGINE.runKernel(Mod, inputs);
                }
                const mod = op({
                    mod_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Calculates the mean and variance of `x`. The mean and variance are
 * calculated by aggregating the contents of `x` across `axes`. If `x` is
 * 1-D and `axes = [0]` this is just the mean and variance of a vector.
 *
 * @param x The input tensor.
 * @param axis The dimension(s) along with to compute mean and
 *     variance. By default it reduces all dimensions.
 * @param keepDims If true, the moments have the same dimensionality as the
 *     input.
 * @return An object with two keys: `mean` and `variance`.
 *
 * @doc {heading: 'Operations', subheading: 'Normalization'}
 */
                function moments_(x, axis = null, keepDims = false) {
                    x = convertToTensor(x, 'x', 'moments');
                    const axes = parseAxisParam(axis, x.shape);
                    const xMean = mean(x, axes, keepDims);
                    let keepDimsShape = xMean.shape;
                    if (!keepDims) {
                        keepDimsShape = expandShapeToKeepDim(xMean.shape, axes);
                    }
                    const devSquared = square(sub(cast(x, 'float32'), reshape(xMean, keepDimsShape)));
                    const variance = mean(devSquared, axes, keepDims);
                    return {
                        mean: xMean,
                        variance
                    };
                }
                const moments = op({
                    moments_
                });
                /**
 * Computes the next states and outputs of a stack of LSTMCells.
 *
 * Each cell output is used as input to the next cell.
 *
 * Returns `[cellState, cellOutput]`.
 *
 * Derived from tf.contrib.rn.MultiRNNCell.
 *
 * @param lstmCells Array of LSTMCell functions.
 * @param data The input to the cell.
 * @param c Array of previous cell states.
 * @param h Array of previous cell outputs.
 *
 * @doc {heading: 'Operations', subheading: 'RNN'}
 */
                function multiRNNCell_(lstmCells, data, c, h) {
                    const $data = convertToTensor(data, 'data', 'multiRNNCell');
                    const $c = convertToTensorArray(c, 'c', 'multiRNNCell');
                    const $h = convertToTensorArray(h, 'h', 'multiRNNCell');
                    let input = $data;
                    const newStates = [];
                    for (let i = 0; i < lstmCells.length; i++) {
                        const output = lstmCells[i](input, $c[i], $h[i]);
                        newStates.push(output[0]);
                        newStates.push(output[1]);
                        input = output[1];
                    }
                    const newC = [];
                    const newH = [];
                    for (let i = 0; i < newStates.length; i += 2) {
                        newC.push(newStates[i]);
                        newH.push(newStates[i + 1]);
                    }
                    return [newC, newH];
                }
                const multiRNNCell = op({
                    multiRNNCell_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Creates a `tf.Tensor` with values drawn from a multinomial distribution.
 *
 * ```js
 * const probs = tf.tensor([.75, .25]);
 * tf.multinomial(probs, 3).print();
 * ```
 *
 * @param logits 1D array with unnormalized log-probabilities, or
 *     2D array of shape `[batchSize, numOutcomes]`. See the `normalized`
 *     parameter.
 * @param numSamples Number of samples to draw for each row slice.
 * @param seed The seed number.
 * @param normalized Whether the provided `logits` are normalized true
 *     probabilities (sum to 1). Defaults to false.
 * @return 1D array of shape `[numSamples]`, or 2D array of shape
 *     `[batchSize, numSamples]`, depending on the rank of the input.
 *
 * @doc {heading: 'Tensors', subheading: 'Random'}
 */
                function multinomial_(logits, numSamples, seed, normalized = false) {
                    const $logits = convertToTensor(logits, 'logits', 'multinomial');
                    const numOutcomes = $logits.size;
                    const origRank = $logits.rank;
                    if (numOutcomes < 2) {
                        throw new Error(`Error in multinomial: you need at least 2 outcomes, but got ` + `${numOutcomes}.`);
                    }
                    if (origRank > 2) {
                        throw new Error(`Rank of probabilities must be 1 or 2, but is ${origRank}`);
                    }
                    // TODO(lina128): Investigate correct seed behavior. The code seems not allow
                    // setting see to 0.
                    seed = seed || Math.random();
                    // The kernel only accepts (and returns) rank 2 tensors.
                    const logits2D = origRank === 1 ? reshape($logits, [1, -1]) : $logits;
                    const inputs = {
                        logits: logits2D
                    };
                    const attrs = {
                        numSamples,
                        seed,
                        normalized
                    };
                    // tslint:disable-next-line: no-unnecessary-type-assertion
                    const res = ENGINE.runKernel(Multinomial, inputs, attrs);
                    // tslint:disable-next-line:no-unnecessary-type-assertion
                    return origRank === 1 ? reshape(res, [res.size]) : res;
                }
                const multinomial = op({
                    multinomial_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Returns the truth value of (a != b) element-wise. Supports broadcasting.
 *
 * ```js
 * const a = tf.tensor1d([1, 2, 3]);
 * const b = tf.tensor1d([0, 2, 3]);
 *
 * a.notEqual(b).print();
 * ```
 * @param a The first input tensor.
 * @param b The second input tensor. Must have the same dtype as `a`.
 *
 * @doc {heading: 'Operations', subheading: 'Logical'}
 */
                function notEqual_(a, b) {
                    let $a = convertToTensor(a, 'a', 'notEqual', 'string_or_numeric');
                    let $b = convertToTensor(b, 'b', 'notEqual', 'string_or_numeric');
                    [$a, $b] = makeTypesMatch($a, $b);
                    assertAndGetBroadcastShape($a.shape, $b.shape);
                    const inputs = {
                        a: $a,
                        b: $b
                    };
                    return ENGINE.runKernel(NotEqual, inputs);
                }
                const notEqual = op({
                    notEqual_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Creates a `tf.Tensor` with all elements set to 1 with the same shape as the
 * given tensor.
 *
 * ```js
 * const x = tf.tensor([1, 2]);
 * tf.onesLike(x).print();
 * ```
 * @param x A tensor.
 *
 * @doc {heading: 'Tensors', subheading: 'Creation'}
 */
                function onesLike_(x) {
                    const $x = convertToTensor(x, 'x', 'onesLike');
                    const inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(OnesLike, inputs);
                }
                const onesLike = op({
                    onesLike_
                });
                /**
 * Computes the outer product of two vectors, `v1` and `v2`.
 *
 * ```js
 * const a = tf.tensor1d([1, 2, 3]);
 * const b = tf.tensor1d([3, 4, 5]);
 *
 * tf.outerProduct(a, b).print();
 * ```
 * @param v1 The first vector in the outer product operation.
 * @param v2 The second vector in the outer product operation.
 *
 * @doc {heading: 'Operations', subheading: 'Matrices'}
 */
                function outerProduct_(v1, v2) {
                    const $v1 = convertToTensor(v1, 'v1', 'outerProduct');
                    const $v2 = convertToTensor(v2, 'v2', 'outerProduct');
                    assert($v1.rank === 1 && $v2.rank === 1, () => `Error in outerProduct: inputs must be rank 1, but got ranks ` + `${$v1.rank} and ${$v2.rank}.`);
                    const v12D = reshape($v1, [-1, 1]);
                    const v22D = reshape($v2, [1, -1]);
                    return matMul(v12D, v22D);
                }
                const outerProduct = op({
                    outerProduct_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Pads a `tf.Tensor` with a given value and paddings.
 *
 * This operation implements `CONSTANT` mode. For `REFLECT` and `SYMMETRIC`,
 * refer to `tf.mirrorPad`.
 *
 * Also available are stricter rank-specific methods with the same signature
 * as this method that assert that `paddings` is of given length.
 *   - `tf.pad1d`
 *   - `tf.pad2d`
 *   - `tf.pad3d`
 *   - `tf.pad4d`
 *
 * ```js
 * const x = tf.tensor1d([1, 2, 3, 4]);
 * x.pad([[1, 2]]).print();
 * ```
 * @param x The tensor to pad.
 * @param paddings An array of length `R` (the rank of the tensor), where
 * each element is a length-2 tuple of ints `[padBefore, padAfter]`,
 * specifying how much to pad along each dimension of the tensor.
 * @param constantValue The pad value to use. Defaults to 0.
 *
 * @doc {heading: 'Tensors', subheading: 'Transformations'}
 */
                function pad_(x, paddings, constantValue = 0) {
                    const $x = convertToTensor(x, 'x', 'pad');
                    if ($x.rank === 0) {
                        throw new Error('pad(scalar) is not defined. Pass non-scalar to pad');
                    }
                    const attrs = {
                        paddings,
                        constantValue
                    };
                    const inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(PadV2, inputs, attrs);
                }
                const pad = op({
                    pad_
                });
                /**
 * Pads a `tf.Tensor1D` with a given value and paddings. See `pad` for details.
 */
                function pad1d_(x, paddings, constantValue = 0) {
                    assert(paddings.length === 2, () => 'Invalid number of paddings. Must be length of 2.');
                    return pad(x, [paddings], constantValue);
                }
                const pad1d = op({
                    pad1d_
                });
                /**
 * Pads a `tf.Tensor2D` with a given value and paddings. See `pad` for details.
 */
                function pad2d_(x, paddings, constantValue = 0) {
                    assert(paddings.length === 2 && paddings[0].length === 2 && paddings[1].length === 2, () => 'Invalid number of paddings. Must be length of 2 each.');
                    return pad(x, paddings, constantValue);
                }
                const pad2d = op({
                    pad2d_
                });
                /**
 * Pads a `tf.Tensor3D` with a given value and paddings. See `pad` for details.
 */
                function pad3d_(x, paddings, constantValue = 0) {
                    assert(paddings.length === 3 && paddings[0].length === 2 && paddings[1].length === 2 && paddings[2].length === 2, () => 'Invalid number of paddings. Must be length of 2 each.');
                    return pad(x, paddings, constantValue);
                }
                const pad3d = op({
                    pad3d_
                });
                /**
 * Pads a `tf.Tensor4D` with a given value and paddings. See `pad` for details.
 */
                function pad4d_(x, paddings, constantValue = 0) {
                    assert(paddings.length === 4 && paddings[0].length === 2 && paddings[1].length === 2 && paddings[2].length === 2 && paddings[3].length === 2, () => 'Invalid number of paddings. Must be length of 2 each.');
                    return pad(x, paddings, constantValue);
                }
                const pad4d = op({
                    pad4d_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Performs an N-D pooling operation
 *
 * @param input The input tensor, of rank 4 or rank 3 of shape
 *     `[batch, height, width, inChannels]`. If rank 3, batch of 1 is assumed.
 * @param windowShape The filter size: `[filterHeight, filterWidth]`. If
 *     `filterSize` is a single number, then `filterHeight == filterWidth`.
 * @param poolingType The type of pooling, either 'max' or 'avg'.
 * @param pad The type of padding algorithm:
 *    - `same` and stride 1: output will be of same size as input,
 *       regardless of filter size.
 *    - `valid`: output will be smaller than input if filter is larger
 *       than 1x1.
 *    - For more info, see this guide:
 *     [https://www.tensorflow.org/api_guides/python/nn#Convolution](
 *         https://www.tensorflow.org/api_guides/python/nn#Convolution)
 * @param dilations The dilation rates: `[dilationHeight, dilationWidth]`
 *     in which we sample input values across the height and width dimensions
 *     in dilated pooling. Defaults to `[1, 1]`. If `dilationRate` is a single
 *     number, then `dilationHeight == dilationWidth`. If it is greater than
 *     1, then all values of `strides` must be 1.
 * @param strides The strides of the pooling: `[strideHeight, strideWidth]`. If
 *     `strides` is a single number, then `strideHeight == strideWidth`.
 * @param dimRoundingMode A string from: 'ceil', 'round', 'floor'. If none is
 *     provided, it will default to truncate.
 *
 * @doc {heading: 'Operations', subheading: 'Convolution'}
 */
                function pool_(input, windowShape, poolingType, pad, dilations, strides, dimRoundingMode) {
                    if (dilations == null) {
                        dilations = [1, 1];
                    }
                    if (strides == null) {
                        strides = 1;
                    }
                    if (pad === 0) {
                        pad = 'valid';
                    }
                    const $x = convertToTensor(input, 'x', 'maxPool');
                    let x4D = $x;
                    let reshapedTo4D = false;
                    if ($x.rank === 3) {
                        reshapedTo4D = true;
                        x4D = reshape($x, [1, $x.shape[0], $x.shape[1], $x.shape[2]]);
                    }
                    assert(eitherStridesOrDilationsAreOne(strides, dilations), () => 'Error in pool: Either strides or dilations must be 1. ' + `Got strides ${strides} and dilations '${dilations}'`);
                    const convInfo = computePool2DInfo(x4D.shape, windowShape, strides, dilations, pad);
                    const dilation = [convInfo.dilationHeight, convInfo.dilationWidth];
                    // The following implementation does batchToSpace(pool(spaceToBatch(x)))
                    // whenever dilation > 1 since the TF kernels do not support dilation > 1.
                    // tslint:disable-next-line:max-line-length
                    // https://github.com/tensorflow/tensorflow/blob/50f6bb67dc98c9b74630b6047aae7a4f8a40fd02/tensorflow/python/ops/nn_ops.py#L1037
                    let basePadding;
                    if (pad === 'same') {
                        basePadding = withSpaceToBatchBasePaddings([convInfo.filterHeight, convInfo.filterWidth], dilation);
                    } else {
                        basePadding = [[0, 0], [0, 0]];
                    }
                    const isDilationOne = dilation[0] === 1 && dilation[1] === 1;
                    const [adjustedPadding, adjustedCrops] = requiredSpaceToBatchPaddings([convInfo.inHeight, convInfo.inWidth], dilation, basePadding);
                    const convertedPad = isDilationOne ? pad : 'valid';
                    const convertedX = isDilationOne ? x4D : spaceToBatchND(x4D, dilation, adjustedPadding);
                    const forwardOp = poolingType === 'avg' ? () => avgPool(convertedX, windowShape, strides, convertedPad, dimRoundingMode) : () => maxPool(convertedX, windowShape, strides, convertedPad, dimRoundingMode);
                    const y = forwardOp();
                    const res = isDilationOne ? y : batchToSpaceND(y, dilation, adjustedCrops);
                    if (reshapedTo4D) {
                        return reshape(res, [res.shape[1], res.shape[2], res.shape[3]]);
                    }
                    return res;
                }
                // Helper function to compute crops and paddings for pool with dilation > 1.
                // tslint:disable-next-line:max-line-length
                // https://github.com/tensorflow/tensorflow/blob/50f6bb67dc98c9b74630b6047aae7a4f8a40fd02/tensorflow/python/ops/array_ops.py#L2184
                function requiredSpaceToBatchPaddings(inputShape, blockShape, basePadding) {
                    const padStart = basePadding.map(b => b[0]);
                    const origPadEnd = basePadding.map(b => b[1]);
                    const fullInputShape = inputShape.concat(padStart, origPadEnd);
                    const padEndExtra = blockShape.map((b, i) => (b - fullInputShape[i] % b) % b);
                    const padEnd = origPadEnd.map((s, i) => s + padEndExtra[i]);
                    const paddings = blockShape.map((_, i) => [padStart[i], padEnd[i]]);
                    const crops = blockShape.map((_, i) => [0, padEndExtra[i]]);
                    return [paddings, crops];
                }
                // Helper function to compute base paddings for pool with dilation > 1.
                // tslint:disable-next-line:max-line-length
                // https://github.com/tensorflow/tensorflow/blob/50f6bb67dc98c9b74630b6047aae7a4f8a40fd02/tensorflow/python/ops/nn_ops.py#L524
                function withSpaceToBatchBasePaddings(filterShape, dilation) {
                    // Spatial dimensions of the filters and the upsampled filters in which we
                    // introduce (rate - 1) zeros between consecutive filter values.
                    const dilatedFilterShape = filterShape.map((s, i) => {
                        return s + (s - 1) * (dilation[i] - 1);
                    }
                    );
                    const padExtraShape = dilatedFilterShape.map(s => s - 1);
                    // When padding is odd, we pad more at end, following the same
                    // convention as conv2d.
                    const padExtraStart = padExtraShape.map(s => Math.floor(s / 2));
                    const padExtraEnd = padExtraShape.map((s, i) => s - padExtraStart[i]);
                    return padExtraShape.map((_, i) => {
                        return [padExtraStart[i], padExtraEnd[i]];
                    }
                    );
                }
                const pool = op({
                    pool_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes leaky rectified linear element-wise with parametric alphas.
 *
 * `x < 0 ? alpha * x : f(x) = x`
 *
 * ```js
 * const x = tf.tensor1d([-1, 2, -3, 4]);
 * const alpha = tf.scalar(0.1);
 *
 * x.prelu(alpha).print();  // or tf.prelu(x, alpha)
 * ```
 * @param x The input tensor.
 * @param alpha Scaling factor for negative values.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function prelu_(x, alpha) {
                    const $x = convertToTensor(x, 'x', 'prelu');
                    const $alpha = convertToTensor(alpha, 'alpha', 'prelu');
                    const inputs = {
                        x: $x,
                        alpha: $alpha
                    };
                    return ENGINE.runKernel(Prelu, inputs);
                }
                const prelu = op({
                    prelu_
                });
                /**
 * @license
 * Copyright 2020 Google Inc. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Prints information about the `tf.Tensor` including its data.
 *
 * ```js
 * const verbose = true;
 * tf.tensor2d([1, 2, 3, 4], [2, 2]).print(verbose);
 * ```
 * @param x The tensor to be printed.
 * @param verbose Whether to print verbose information about the ` Tensor`,
 * including dtype and size.
 *
 * @doc {heading: 'Tensors', subheading: 'Creation'}
 */
                function print(x, verbose = false) {
                    console.log(x.toString(verbose));
                }
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the product of elements across dimensions of a `tf.Tensor`.
 *
 * Reduces the input along the dimensions given in `axes`. Unless `keepDims`
 * is true, the rank of the `tf.Tensor` is reduced by 1 for each entry in
 * `axes`. If `keepDims` is true, the reduced dimensions are retained with
 * length 1. If `axes` has no entries, all dimensions are reduced, and a
 * `tf.Tensor` with a single element is returned.
 *
 * ```js
 * const x = tf.tensor1d([1, 2, 3]);
 *
 * x.prod().print();  // or tf.prod(x)
 * ```
 *
 * ```js
 * const x = tf.tensor2d([1, 2, 3, 4], [2, 2]);
 *
 * const axis = 1;
 * x.prod(axis).print();  // or tf.prod(x, axis)
 * ```
 *
 * @param x The input tensor to compute the product over. If the dtype is `bool`
 *   it will be converted to `int32` and the output dtype will be `int32`.
 * @param axis The dimension(s) to reduce. By default it reduces
 *     all dimensions.
 * @param keepDims If true, retains reduced dimensions with size 1.
 *
 * @doc {heading: 'Operations', subheading: 'Reduction'}
 */
                function prod_(x, axis = null, keepDims = false) {
                    let $x = convertToTensor(x, 'x', 'prod');
                    if ($x.dtype === 'bool') {
                        // bool is not an allowed type for the underlying kernel.
                        $x = cast($x, 'int32');
                    }
                    const inputs = {
                        x: $x
                    };
                    const attrs = {
                        axis,
                        keepDims
                    };
                    return ENGINE.runKernel(Prod, inputs, attrs);
                }
                const prod = op({
                    prod_
                });
                /**
 * @license
 * Copyright 2022 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                function raggedGather_(paramsNestedSplits, paramsDenseValues, indices, outputRaggedRank) {
                    const $paramsNestedSplits = paramsNestedSplits.map((t, i) => convertToTensor(t, `tensors${i}`, 'raggedGather', 'int32'));
                    const $paramsDenseValues = convertToTensor(paramsDenseValues, 'paramsDenseValues', 'raggedGather');
                    const $indices = convertToTensor(indices, 'indices', 'raggedGather', 'int32');
                    const inputs = {
                        paramsNestedSplits: $paramsNestedSplits,
                        paramsDenseValues: $paramsDenseValues,
                        indices: $indices
                    };
                    const attrs = {
                        outputRaggedRank
                    };
                    const result = ENGINE.runKernel(RaggedGather, inputs, attrs);
                    return {
                        outputNestedSplits: result.slice(0, result.length - 1),
                        outputDenseValues: result[result.length - 1]
                    };
                }
                const raggedGather = op({
                    raggedGather_
                });
                /**
 * @license
 * Copyright 2022 Google LLC.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Returns a RaggedTensor result composed from rtDenseValues and rtNestedSplits,
 * such that result[i] = [starts[i], starts[i] + deltas[i], ..., limits[i]]).
 *
 * @param starts: A Tensor. Must be one of the following types:
 *     'float32', 'int32'. The starts of each range.
 * @param limits: A Tensor. Must have the same type as starts. The limits of
 *     each range.
 * @param deltas: A Tensor. Must have the same type as starts. The deltas of
 *     each range.
 * @return A map with the following properties:
 *     - rtNestedSplits: A Tensor of type 'int32'.
 *     - rtDenseValues: A Tensor. Has the same type as starts.
 */
                function raggedRange_(starts, limits, deltas) {
                    const $starts = convertToTensor(starts, 'starts', 'raggedRange');
                    const $limits = convertToTensor(limits, 'limits', 'raggedRange', $starts.dtype);
                    const $deltas = convertToTensor(deltas, 'deltas', 'raggedRange', $starts.dtype);
                    const inputs = {
                        starts: $starts,
                        limits: $limits,
                        deltas: $deltas
                    };
                    const result = ENGINE.runKernel(RaggedRange, inputs);
                    return {
                        rtNestedSplits: result[0],
                        rtDenseValues: result[1]
                    };
                }
                const raggedRange = op({
                    raggedRange_
                });
                /**
 * @license
 * Copyright 2022 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Create a dense tensor from a ragged tensor, possibly altering its shape.
 *
 * The raggedTensorToTensor op creates a dense tensor from am array of row
 * partition tensors, a value vector, and default values. If the shape is
 * unspecified, the minimal shape required to contain all the elements in the
 * ragged tensor (the natural shape) will be used. If some dimensions are left
 * unspecified, then the size of the natural shape is used in that dimension.
 *
 * The defaultValue will be broadcast to the output shape. After that, the
 * values from the ragged tensor overwrite the default values. Note that the
 * defaultValue must have less dimensions than the value.
 *
 * The row partition tensors are in the order of the dimensions. At present, the
 * types can be: "ROW_SPLITS": the row_splits tensor from the ragged tensor.
 *   "VALUE_ROWIDS": the value_rowids tensor from the ragged tensor.
 *   "FIRST_DIM_SIZE": if value_rowids is used for the first dimension, then it
 * is preceded by "FIRST_DIM_SIZE".
 * ```
 * @param shape: A Tensor. Must be one of the following types: 'int32'. The
 *     desired shape of the output tensor. If left unspecified (empty), the
 *     minimal shape required to contain all the elements in the ragged tensor
 *     (the natural shape) will be used. If some dimensions are left
 *     unspecified, then the size of the natural shape is used in that
 *     dimension.
 *
 *     Note that dense dimensions cannot be modified by the shape argument.
 *     Trying to change the size of a dense dimension will cause the op to fail.
 *     Examples: natural shape: [4, 5, 6] shape: -1 output shape: [4, 5, 6]
 *
 *     natural shape: [4, 5, 6] shape: [3, -1, 2] output shape: [3, 5, 2]
 *
 *     natural shape: [4, 5, 6] shape: [3, 7, 2] output shape: [3, 7, 2]
 * @param values: A Tensor. A 1D tensor representing the values of the ragged
 *     tensor.
 * @param defaultValue: A Tensor. Must have the same type as values. The
 *     defaultValue when the shape is larger than the ragged tensor. The
 *     defaultValue is broadcast until it is the shape of the output tensor,
 *     and then overwritten by values in the ragged tensor. The default value
 *     must be compatible with this broadcast operation, and must have fewer
 *     dimensions than the value tensor.
 * @param rowPartitionTensors: A list of at least 1 Tensor objects with the same
 *     type in: 'int32'.
 * @param rowPartitionTypes: A list of strings. The types of the row partition
 *     tensors. At present, these can be:
 *     "ROW_SPLITS": the row_splits tensor from the ragged tensor.
 *     "VALUE_ROWIDS": the value_rowids tensor from the ragged tensor.
 *     "FIRST_DIM_SIZE": if value_rowids is used for the first dimension, then
 *         it is preceeded by "FIRST_DIM_SIZE". The tensors are in the order of
 *         the dimensions.
 * @return A Tensor. Has the same type as values.
 * @doc {heading: 'Operations', subheading: 'Ragged'}
 */
                function raggedTensorToTensor_(shape, values, defaultValue, rowPartitionTensors, rowPartitionTypes) {
                    const $shape = convertToTensor(shape, 'shape', 'raggedTensorToTensor', 'int32');
                    const $values = convertToTensor(values, 'values', 'raggedTensorToTensor');
                    const $defaultValue = convertToTensor(defaultValue, 'defaultValue', 'raggedTensorToTensor', $values.dtype);
                    const $rowPartitionTensors = rowPartitionTensors.map((t, i) => convertToTensor(t, `tensors${i}`, 'raggedTensorToTensor', 'int32'));
                    const inputs = {
                        shape: $shape,
                        values: $values,
                        defaultValue: $defaultValue,
                        rowPartitionTensors: $rowPartitionTensors
                    };
                    const attrs = {
                        rowPartitionTypes
                    };
                    return ENGINE.runKernel(RaggedTensorToTensor, inputs, attrs);
                }
                const raggedTensorToTensor = op({
                    raggedTensorToTensor_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Creates a `tf.Tensor` with values sampled from a random number generator
 * function defined by the user.
 *
 * @param shape An array of integers defining the output tensor shape.
 * @param randFunction A random number generator function which is called
 * for each element in the output tensor.
 * @param dtype The data type of the output tensor. Defaults to 'float32'.
 *
 * @doc {heading: 'Tensors', subheading: 'Random'}
 */
                function rand_(shape, randFunction, dtype) {
                    assertNonNegativeIntegerDimensions(shape);
                    const size = sizeFromShape(shape);
                    let values = null;
                    if (dtype == null || dtype === 'float32') {
                        values = new Float32Array(size);
                    } else if (dtype === 'int32') {
                        values = new Int32Array(size);
                    } else if (dtype === 'bool') {
                        values = new Uint8Array(size);
                    } else {
                        throw new Error(`Unknown data type ${dtype}`);
                    }
                    for (let i = 0; i < size; i++) {
                        values[i] = randFunction();
                    }
                    return ENGINE.makeTensor(values, shape, dtype);
                }
                const rand = op({
                    rand_
                });
                var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
                function unwrapExports(x) {
                    return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
                }
                function createCommonjsModule(fn, module) {
                    return module = {
                        exports: {}
                    },
                        fn(module, module.exports),
                        module.exports;
                }
                function getCjsExportFromNamespace(n) {
                    return n && n['default'] || n;
                }
                function commonjsRequire() {
                    throw new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs');
                }
                var alea = createCommonjsModule(function (module) {
                    // A port of an algorithm by Johannes Baagøe <baagoe@baagoe.com>, 2010
                    // http://baagoe.com/en/RandomMusings/javascript/
                    // https://github.com/nquinlan/better-random-numbers-for-javascript-mirror
                    // Original work is under MIT license -
                    // Copyright (C) 2010 by Johannes Baagøe <baagoe@baagoe.org>
                    //
                    // Permission is hereby granted, free of charge, to any person obtaining a copy
                    // of this software and associated documentation files (the "Software"), to deal
                    // in the Software without restriction, including without limitation the rights
                    // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
                    // copies of the Software, and to permit persons to whom the Software is
                    // furnished to do so, subject to the following conditions:
                    //
                    // The above copyright notice and this permission notice shall be included in
                    // all copies or substantial portions of the Software.
                    //
                    // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
                    // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
                    // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
                    // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
                    // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
                    // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
                    // THE SOFTWARE.
                    (function (global, module, define) {
                        function Alea(seed) {
                            var me = this
                                , mash = Mash();
                            me.next = function () {
                                var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10;
                                // 2^-32
                                me.s0 = me.s1;
                                me.s1 = me.s2;
                                return me.s2 = t - (me.c = t | 0);
                            }
                                ;
                            // Apply the seeding algorithm from Baagoe.
                            me.c = 1;
                            me.s0 = mash(' ');
                            me.s1 = mash(' ');
                            me.s2 = mash(' ');
                            me.s0 -= mash(seed);
                            if (me.s0 < 0) {
                                me.s0 += 1;
                            }
                            me.s1 -= mash(seed);
                            if (me.s1 < 0) {
                                me.s1 += 1;
                            }
                            me.s2 -= mash(seed);
                            if (me.s2 < 0) {
                                me.s2 += 1;
                            }
                            mash = null;
                        }
                        function copy(f, t) {
                            t.c = f.c;
                            t.s0 = f.s0;
                            t.s1 = f.s1;
                            t.s2 = f.s2;
                            return t;
                        }
                        function impl(seed, opts) {
                            var xg = new Alea(seed)
                                , state = opts && opts.state
                                , prng = xg.next;
                            prng.int32 = function () {
                                return xg.next() * 0x100000000 | 0;
                            }
                                ;
                            prng.double = function () {
                                return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16;
                                // 2^-53
                            }
                                ;
                            prng.quick = prng;
                            if (state) {
                                if (typeof state == 'object')
                                    copy(state, xg);
                                prng.state = function () {
                                    return copy(xg, {});
                                }
                                    ;
                            }
                            return prng;
                        }
                        function Mash() {
                            var n = 0xefc8249d;
                            var mash = function (data) {
                                data = String(data);
                                for (var i = 0; i < data.length; i++) {
                                    n += data.charCodeAt(i);
                                    var h = 0.02519603282416938 * n;
                                    n = h >>> 0;
                                    h -= n;
                                    h *= n;
                                    n = h >>> 0;
                                    h -= n;
                                    n += h * 0x100000000;
                                    // 2^32
                                }
                                return (n >>> 0) * 2.3283064365386963e-10;
                                // 2^-32
                            };
                            return mash;
                        }
                        if (module && module.exports) {
                            module.exports = impl;
                        } else if (define && define.amd) {
                            define(function () {
                                return impl;
                            });
                        } else {
                            this.alea = impl;
                        }
                    }
                    )(commonjsGlobal, 'object' == 'object' && module, // present in node.js
                        typeof undefined == 'function' && undefined // present with an AMD loader
                    );
                });
                var xor128 = createCommonjsModule(function (module) {
                    // A Javascript implementaion of the "xor128" prng algorithm by
                    // George Marsaglia.  See http://www.jstatsoft.org/v08/i14/paper
                    (function (global, module, define) {
                        function XorGen(seed) {
                            var me = this
                                , strseed = '';
                            me.x = 0;
                            me.y = 0;
                            me.z = 0;
                            me.w = 0;
                            // Set up generator function.
                            me.next = function () {
                                var t = me.x ^ me.x << 11;
                                me.x = me.y;
                                me.y = me.z;
                                me.z = me.w;
                                return me.w ^= me.w >>> 19 ^ t ^ t >>> 8;
                            }
                                ;
                            if (seed === (seed | 0)) {
                                // Integer seed.
                                me.x = seed;
                            } else {
                                // String seed.
                                strseed += seed;
                            }
                            // Mix in string seed, then discard an initial batch of 64 values.
                            for (var k = 0; k < strseed.length + 64; k++) {
                                me.x ^= strseed.charCodeAt(k) | 0;
                                me.next();
                            }
                        }
                        function copy(f, t) {
                            t.x = f.x;
                            t.y = f.y;
                            t.z = f.z;
                            t.w = f.w;
                            return t;
                        }
                        function impl(seed, opts) {
                            var xg = new XorGen(seed)
                                , state = opts && opts.state
                                , prng = function () {
                                    return (xg.next() >>> 0) / 0x100000000;
                                };
                            prng.double = function () {
                                do {
                                    var top = xg.next() >>> 11
                                        , bot = (xg.next() >>> 0) / 0x100000000
                                        , result = (top + bot) / (1 << 21);
                                } while (result === 0);
                                return result;
                            }
                                ;
                            prng.int32 = xg.next;
                            prng.quick = prng;
                            if (state) {
                                if (typeof state == 'object')
                                    copy(state, xg);
                                prng.state = function () {
                                    return copy(xg, {});
                                }
                                    ;
                            }
                            return prng;
                        }
                        if (module && module.exports) {
                            module.exports = impl;
                        } else if (define && define.amd) {
                            define(function () {
                                return impl;
                            });
                        } else {
                            this.xor128 = impl;
                        }
                    }
                    )(commonjsGlobal, 'object' == 'object' && module, // present in node.js
                        typeof undefined == 'function' && undefined // present with an AMD loader
                    );
                });
                var xorwow = createCommonjsModule(function (module) {
                    // A Javascript implementaion of the "xorwow" prng algorithm by
                    // George Marsaglia.  See http://www.jstatsoft.org/v08/i14/paper
                    (function (global, module, define) {
                        function XorGen(seed) {
                            var me = this
                                , strseed = '';
                            // Set up generator function.
                            me.next = function () {
                                var t = me.x ^ me.x >>> 2;
                                me.x = me.y;
                                me.y = me.z;
                                me.z = me.w;
                                me.w = me.v;
                                return (me.d = me.d + 362437 | 0) + (me.v = me.v ^ me.v << 4 ^ (t ^ t << 1)) | 0;
                            }
                                ;
                            me.x = 0;
                            me.y = 0;
                            me.z = 0;
                            me.w = 0;
                            me.v = 0;
                            if (seed === (seed | 0)) {
                                // Integer seed.
                                me.x = seed;
                            } else {
                                // String seed.
                                strseed += seed;
                            }
                            // Mix in string seed, then discard an initial batch of 64 values.
                            for (var k = 0; k < strseed.length + 64; k++) {
                                me.x ^= strseed.charCodeAt(k) | 0;
                                if (k == strseed.length) {
                                    me.d = me.x << 10 ^ me.x >>> 4;
                                }
                                me.next();
                            }
                        }
                        function copy(f, t) {
                            t.x = f.x;
                            t.y = f.y;
                            t.z = f.z;
                            t.w = f.w;
                            t.v = f.v;
                            t.d = f.d;
                            return t;
                        }
                        function impl(seed, opts) {
                            var xg = new XorGen(seed)
                                , state = opts && opts.state
                                , prng = function () {
                                    return (xg.next() >>> 0) / 0x100000000;
                                };
                            prng.double = function () {
                                do {
                                    var top = xg.next() >>> 11
                                        , bot = (xg.next() >>> 0) / 0x100000000
                                        , result = (top + bot) / (1 << 21);
                                } while (result === 0);
                                return result;
                            }
                                ;
                            prng.int32 = xg.next;
                            prng.quick = prng;
                            if (state) {
                                if (typeof state == 'object')
                                    copy(state, xg);
                                prng.state = function () {
                                    return copy(xg, {});
                                }
                                    ;
                            }
                            return prng;
                        }
                        if (module && module.exports) {
                            module.exports = impl;
                        } else if (define && define.amd) {
                            define(function () {
                                return impl;
                            });
                        } else {
                            this.xorwow = impl;
                        }
                    }
                    )(commonjsGlobal, 'object' == 'object' && module, // present in node.js
                        typeof undefined == 'function' && undefined // present with an AMD loader
                    );
                });
                var xorshift7 = createCommonjsModule(function (module) {
                    // A Javascript implementaion of the "xorshift7" algorithm by
                    // François Panneton and Pierre L'ecuyer:
                    // "On the Xorgshift Random Number Generators"
                    // http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf
                    (function (global, module, define) {
                        function XorGen(seed) {
                            var me = this;
                            // Set up generator function.
                            me.next = function () {
                                // Update xor generator.
                                var X = me.x, i = me.i, t, v, w;
                                t = X[i];
                                t ^= t >>> 7;
                                v = t ^ t << 24;
                                t = X[i + 1 & 7];
                                v ^= t ^ t >>> 10;
                                t = X[i + 3 & 7];
                                v ^= t ^ t >>> 3;
                                t = X[i + 4 & 7];
                                v ^= t ^ t << 7;
                                t = X[i + 7 & 7];
                                t = t ^ t << 13;
                                v ^= t ^ t << 9;
                                X[i] = v;
                                me.i = i + 1 & 7;
                                return v;
                            }
                                ;
                            function init(me, seed) {
                                var j, w, X = [];
                                if (seed === (seed | 0)) {
                                    // Seed state array using a 32-bit integer.
                                    w = X[0] = seed;
                                } else {
                                    // Seed state using a string.
                                    seed = '' + seed;
                                    for (j = 0; j < seed.length; ++j) {
                                        X[j & 7] = X[j & 7] << 15 ^ seed.charCodeAt(j) + X[j + 1 & 7] << 13;
                                    }
                                }
                                // Enforce an array length of 8, not all zeroes.
                                while (X.length < 8)
                                    X.push(0);
                                for (j = 0; j < 8 && X[j] === 0; ++j)
                                    ;
                                if (j == 8)
                                    w = X[7] = -1;
                                else
                                    w = X[j];
                                me.x = X;
                                me.i = 0;
                                // Discard an initial 256 values.
                                for (j = 256; j > 0; --j) {
                                    me.next();
                                }
                            }
                            init(me, seed);
                        }
                        function copy(f, t) {
                            t.x = f.x.slice();
                            t.i = f.i;
                            return t;
                        }
                        function impl(seed, opts) {
                            if (seed == null)
                                seed = +new Date();
                            var xg = new XorGen(seed)
                                , state = opts && opts.state
                                , prng = function () {
                                    return (xg.next() >>> 0) / 0x100000000;
                                };
                            prng.double = function () {
                                do {
                                    var top = xg.next() >>> 11
                                        , bot = (xg.next() >>> 0) / 0x100000000
                                        , result = (top + bot) / (1 << 21);
                                } while (result === 0);
                                return result;
                            }
                                ;
                            prng.int32 = xg.next;
                            prng.quick = prng;
                            if (state) {
                                if (state.x)
                                    copy(state, xg);
                                prng.state = function () {
                                    return copy(xg, {});
                                }
                                    ;
                            }
                            return prng;
                        }
                        if (module && module.exports) {
                            module.exports = impl;
                        } else if (define && define.amd) {
                            define(function () {
                                return impl;
                            });
                        } else {
                            this.xorshift7 = impl;
                        }
                    }
                    )(commonjsGlobal, 'object' == 'object' && module, // present in node.js
                        typeof undefined == 'function' && undefined // present with an AMD loader
                    );
                });
                var xor4096 = createCommonjsModule(function (module) {
                    // A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.
                    //
                    // This fast non-cryptographic random number generator is designed for
                    // use in Monte-Carlo algorithms. It combines a long-period xorshift
                    // generator with a Weyl generator, and it passes all common batteries
                    // of stasticial tests for randomness while consuming only a few nanoseconds
                    // for each prng generated.  For background on the generator, see Brent's
                    // paper: "Some long-period random number generators using shifts and xors."
                    // http://arxiv.org/pdf/1004.3115v1.pdf
                    //
                    // Usage:
                    //
                    // var xor4096 = require('xor4096');
                    // random = xor4096(1);                        // Seed with int32 or string.
                    // assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.
                    // assert.equal(random.int32(), 1806534897);   // signed int32, 32 bits.
                    //
                    // For nonzero numeric keys, this impelementation provides a sequence
                    // identical to that by Brent's xorgens 3 implementaion in C.  This
                    // implementation also provides for initalizing the generator with
                    // string seeds, or for saving and restoring the state of the generator.
                    //
                    // On Chrome, this prng benchmarks about 2.1 times slower than
                    // Javascript's built-in Math.random().
                    (function (global, module, define) {
                        function XorGen(seed) {
                            var me = this;
                            // Set up generator function.
                            me.next = function () {
                                var w = me.w, X = me.X, i = me.i, t, v;
                                // Update Weyl generator.
                                me.w = w = w + 0x61c88647 | 0;
                                // Update xor generator.
                                v = X[i + 34 & 127];
                                t = X[i = i + 1 & 127];
                                v ^= v << 13;
                                t ^= t << 17;
                                v ^= v >>> 15;
                                t ^= t >>> 12;
                                // Update Xor generator array state.
                                v = X[i] = v ^ t;
                                me.i = i;
                                // Result is the combination.
                                return v + (w ^ w >>> 16) | 0;
                            }
                                ;
                            function init(me, seed) {
                                var t, v, i, j, w, X = [], limit = 128;
                                if (seed === (seed | 0)) {
                                    // Numeric seeds initialize v, which is used to generates X.
                                    v = seed;
                                    seed = null;
                                } else {
                                    // String seeds are mixed into v and X one character at a time.
                                    seed = seed + '\0';
                                    v = 0;
                                    limit = Math.max(limit, seed.length);
                                }
                                // Initialize circular array and weyl value.
                                for (i = 0,
                                    j = -32; j < limit; ++j) {
                                    // Put the unicode characters into the array, and shuffle them.
                                    if (seed)
                                        v ^= seed.charCodeAt((j + 32) % seed.length);
                                    // After 32 shuffles, take v as the starting w value.
                                    if (j === 0)
                                        w = v;
                                    v ^= v << 10;
                                    v ^= v >>> 15;
                                    v ^= v << 4;
                                    v ^= v >>> 13;
                                    if (j >= 0) {
                                        w = w + 0x61c88647 | 0;
                                        // Weyl.
                                        t = X[j & 127] ^= v + w;
                                        // Combine xor and weyl to init array.
                                        i = 0 == t ? i + 1 : 0;
                                        // Count zeroes.
                                    }
                                }
                                // We have detected all zeroes; make the key nonzero.
                                if (i >= 128) {
                                    X[(seed && seed.length || 0) & 127] = -1;
                                }
                                // Run the generator 512 times to further mix the state before using it.
                                // Factoring this as a function slows the main generator, so it is just
                                // unrolled here.  The weyl generator is not advanced while warming up.
                                i = 127;
                                for (j = 4 * 128; j > 0; --j) {
                                    v = X[i + 34 & 127];
                                    t = X[i = i + 1 & 127];
                                    v ^= v << 13;
                                    t ^= t << 17;
                                    v ^= v >>> 15;
                                    t ^= t >>> 12;
                                    X[i] = v ^ t;
                                }
                                // Storing state as object members is faster than using closure variables.
                                me.w = w;
                                me.X = X;
                                me.i = i;
                            }
                            init(me, seed);
                        }
                        function copy(f, t) {
                            t.i = f.i;
                            t.w = f.w;
                            t.X = f.X.slice();
                            return t;
                        }
                        ; function impl(seed, opts) {
                            if (seed == null)
                                seed = +new Date();
                            var xg = new XorGen(seed)
                                , state = opts && opts.state
                                , prng = function () {
                                    return (xg.next() >>> 0) / 0x100000000;
                                };
                            prng.double = function () {
                                do {
                                    var top = xg.next() >>> 11
                                        , bot = (xg.next() >>> 0) / 0x100000000
                                        , result = (top + bot) / (1 << 21);
                                } while (result === 0);
                                return result;
                            }
                                ;
                            prng.int32 = xg.next;
                            prng.quick = prng;
                            if (state) {
                                if (state.X)
                                    copy(state, xg);
                                prng.state = function () {
                                    return copy(xg, {});
                                }
                                    ;
                            }
                            return prng;
                        }
                        if (module && module.exports) {
                            module.exports = impl;
                        } else if (define && define.amd) {
                            define(function () {
                                return impl;
                            });
                        } else {
                            this.xor4096 = impl;
                        }
                    }
                    )(commonjsGlobal, // window object or global
                        'object' == 'object' && module, // present in node.js
                        typeof undefined == 'function' && undefined // present with an AMD loader
                    );
                });
                var tychei = createCommonjsModule(function (module) {
                    // A Javascript implementaion of the "Tyche-i" prng algorithm by
                    // Samuel Neves and Filipe Araujo.
                    // See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf
                    (function (global, module, define) {
                        function XorGen(seed) {
                            var me = this
                                , strseed = '';
                            // Set up generator function.
                            me.next = function () {
                                var b = me.b
                                    , c = me.c
                                    , d = me.d
                                    , a = me.a;
                                b = b << 25 ^ b >>> 7 ^ c;
                                c = c - d | 0;
                                d = d << 24 ^ d >>> 8 ^ a;
                                a = a - b | 0;
                                me.b = b = b << 20 ^ b >>> 12 ^ c;
                                me.c = c = c - d | 0;
                                me.d = d << 16 ^ c >>> 16 ^ a;
                                return me.a = a - b | 0;
                            }
                                ;
                            /* The following is non-inverted tyche, which has better internal
   * bit diffusion, but which is about 25% slower than tyche-i in JS.
  me.next = function() {
    var a = me.a, b = me.b, c = me.c, d = me.d;
    a = (me.a + me.b | 0) >>> 0;
    d = me.d ^ a; d = d << 16 ^ d >>> 16;
    c = me.c + d | 0;
    b = me.b ^ c; b = b << 12 ^ d >>> 20;
    me.a = a = a + b | 0;
    d = d ^ a; me.d = d = d << 8 ^ d >>> 24;
    me.c = c = c + d | 0;
    b = b ^ c;
    return me.b = (b << 7 ^ b >>> 25);
  }
  */
                            me.a = 0;
                            me.b = 0;
                            me.c = 2654435769 | 0;
                            me.d = 1367130551;
                            if (seed === Math.floor(seed)) {
                                // Integer seed.
                                me.a = seed / 0x100000000 | 0;
                                me.b = seed | 0;
                            } else {
                                // String seed.
                                strseed += seed;
                            }
                            // Mix in string seed, then discard an initial batch of 64 values.
                            for (var k = 0; k < strseed.length + 20; k++) {
                                me.b ^= strseed.charCodeAt(k) | 0;
                                me.next();
                            }
                        }
                        function copy(f, t) {
                            t.a = f.a;
                            t.b = f.b;
                            t.c = f.c;
                            t.d = f.d;
                            return t;
                        }
                        ; function impl(seed, opts) {
                            var xg = new XorGen(seed)
                                , state = opts && opts.state
                                , prng = function () {
                                    return (xg.next() >>> 0) / 0x100000000;
                                };
                            prng.double = function () {
                                do {
                                    var top = xg.next() >>> 11
                                        , bot = (xg.next() >>> 0) / 0x100000000
                                        , result = (top + bot) / (1 << 21);
                                } while (result === 0);
                                return result;
                            }
                                ;
                            prng.int32 = xg.next;
                            prng.quick = prng;
                            if (state) {
                                if (typeof state == 'object')
                                    copy(state, xg);
                                prng.state = function () {
                                    return copy(xg, {});
                                }
                                    ;
                            }
                            return prng;
                        }
                        if (module && module.exports) {
                            module.exports = impl;
                        } else if (define && define.amd) {
                            define(function () {
                                return impl;
                            });
                        } else {
                            this.tychei = impl;
                        }
                    }
                    )(commonjsGlobal, 'object' == 'object' && module, // present in node.js
                        typeof undefined == 'function' && undefined // present with an AMD loader
                    );
                });
                var seedrandom = createCommonjsModule(function (module) {
                    /*
Copyright 2019 David Bau.

Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

*/
                    (function (global, pool, math) {
                        //
                        // The following constants are related to IEEE 754 limits.
                        //
                        var width = 256, // each RC4 output is 0 <= x < 256
                            chunks = 6, // at least six RC4 outputs for each double
                            digits = 52, // there are 52 significant digits in a double
                            rngname = 'random', // rngname: name for Math.random and Math.seedrandom
                            startdenom = math.pow(width, chunks), significance = math.pow(2, digits), overflow = significance * 2, mask = width - 1, nodecrypto;
                        // node.js crypto module, initialized at the bottom.
                        //
                        // seedrandom()
                        // This is the seedrandom function described above.
                        //
                        function seedrandom(seed, options, callback) {
                            var key = [];
                            options = options == true ? {
                                entropy: true
                            } : options || {};
                            // Flatten the seed string or build one from local entropy if needed.
                            var shortseed = mixkey(flatten(options.entropy ? [seed, tostring(pool)] : seed == null ? autoseed() : seed, 3), key);
                            // Use the seed to initialize an ARC4 generator.
                            var arc4 = new ARC4(key);
                            // This function returns a random double in [0, 1) that contains
                            // randomness in every bit of the mantissa of the IEEE 754 value.
                            var prng = function () {
                                var n = arc4.g(chunks)
                                    , // Start with a numerator n < 2 ^ 48
                                    d = startdenom
                                    , //   and denominator d = 2 ^ 48.
                                    x = 0;
                                //   and no 'extra last byte'.
                                while (n < significance) {
                                    // Fill up all significant digits by
                                    n = (n + x) * width;
                                    //   shifting numerator and
                                    d *= width;
                                    //   denominator and generating a
                                    x = arc4.g(1);
                                    //   new least-significant-byte.
                                }
                                while (n >= overflow) {
                                    // To avoid rounding up, before adding
                                    n /= 2;
                                    //   last byte, shift everything
                                    d /= 2;
                                    //   right using integer math until
                                    x >>>= 1;
                                    //   we have exactly the desired bits.
                                }
                                return (n + x) / d;
                                // Form the number within [0, 1).
                            };
                            prng.int32 = function () {
                                return arc4.g(4) | 0;
                            }
                                ;
                            prng.quick = function () {
                                return arc4.g(4) / 0x100000000;
                            }
                                ;
                            prng.double = prng;
                            // Mix the randomness into accumulated entropy.
                            mixkey(tostring(arc4.S), pool);
                            // Calling convention: what to return as a function of prng, seed, is_math.
                            return (options.pass || callback || function (prng, seed, is_math_call, state) {
                                if (state) {
                                    // Load the arc4 state from the given state if it has an S array.
                                    if (state.S) {
                                        copy(state, arc4);
                                    }
                                    // Only provide the .state method if requested via options.state.
                                    prng.state = function () {
                                        return copy(arc4, {});
                                    }
                                        ;
                                }
                                // If called as a method of Math (Math.seedrandom()), mutate
                                // Math.random because that is how seedrandom.js has worked since v1.0.
                                if (is_math_call) {
                                    math[rngname] = prng;
                                    return seed;
                                }// Otherwise, it is a newer calling convention, so return the
                                // prng directly.
                                else
                                    return prng;
                            }
                            )(prng, shortseed, 'global' in options ? options.global : this == math, options.state);
                        }
                        //
                        // ARC4
                        //
                        // An ARC4 implementation.  The constructor takes a key in the form of
                        // an array of at most (width) integers that should be 0 <= x < (width).
                        //
                        // The g(count) method returns a pseudorandom integer that concatenates
                        // the next (count) outputs from ARC4.  Its return value is a number x
                        // that is in the range 0 <= x < (width ^ count).
                        //
                        function ARC4(key) {
                            var t, keylen = key.length, me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];
                            // The empty key [] is treated as [0].
                            if (!keylen) {
                                key = [keylen++];
                            }
                            // Set up S using the standard key scheduling algorithm.
                            while (i < width) {
                                s[i] = i++;
                            }
                            for (i = 0; i < width; i++) {
                                s[i] = s[j = mask & j + key[i % keylen] + (t = s[i])];
                                s[j] = t;
                            }
                            // The "g" method returns the next (count) outputs as one number.
                            (me.g = function (count) {
                                // Using instance members instead of closure state nearly doubles speed.
                                var t, r = 0, i = me.i, j = me.j, s = me.S;
                                while (count--) {
                                    t = s[i = mask & i + 1];
                                    r = r * width + s[mask & (s[i] = s[j = mask & j + t]) + (s[j] = t)];
                                }
                                me.i = i;
                                me.j = j;
                                return r;
                                // For robust unpredictability, the function call below automatically
                                // discards an initial batch of values.  This is called RC4-drop[256].
                                // See http://google.com/search?q=rsa+fluhrer+response&btnI
                            }
                            )(width);
                        }
                        //
                        // copy()
                        // Copies internal state of ARC4 to or from a plain object.
                        //
                        function copy(f, t) {
                            t.i = f.i;
                            t.j = f.j;
                            t.S = f.S.slice();
                            return t;
                        }
                        ;//
                        // flatten()
                        // Converts an object tree to nested arrays of strings.
                        //
                        function flatten(obj, depth) {
                            var result = [], typ = typeof obj, prop;
                            if (depth && typ == 'object') {
                                for (prop in obj) {
                                    try {
                                        result.push(flatten(obj[prop], depth - 1));
                                    } catch (e) { }
                                }
                            }
                            return result.length ? result : typ == 'string' ? obj : obj + '\0';
                        }
                        //
                        // mixkey()
                        // Mixes a string seed into a key that is an array of integers, and
                        // returns a shortened string seed that is equivalent to the result key.
                        //
                        function mixkey(seed, key) {
                            var stringseed = seed + '', smear, j = 0;
                            while (j < stringseed.length) {
                                key[mask & j] = mask & (smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++);
                            }
                            return tostring(key);
                        }
                        //
                        // autoseed()
                        // Returns an object for autoseeding, using window.crypto and Node crypto
                        // module if available.
                        //
                        function autoseed() {
                            try {
                                var out;
                                if (nodecrypto && (out = nodecrypto.randomBytes)) {
                                    // The use of 'out' to remember randomBytes makes tight minified code.
                                    out = out(width);
                                } else {
                                    out = new Uint8Array(width);
                                    (global.crypto || global.msCrypto).getRandomValues(out);
                                }
                                return tostring(out);
                            } catch (e) {
                                var browser = global.navigator
                                    , plugins = browser && browser.plugins;
                                return [+new Date(), global, plugins, global.screen, tostring(pool)];
                            }
                        }
                        //
                        // tostring()
                        // Converts an array of charcodes to a string
                        //
                        function tostring(a) {
                            return String.fromCharCode.apply(0, a);
                        }
                        //
                        // When seedrandom.js is loaded, we immediately mix a few bits
                        // from the built-in RNG into the entropy pool.  Because we do
                        // not want to interfere with deterministic PRNG state later,
                        // seedrandom will not call math.random on its own again after
                        // initialization.
                        //
                        mixkey(math.random(), pool);
                        //
                        // Nodejs and AMD support: export the implementation as a module using
                        // either convention.
                        //
                        if ('object' == 'object' && module.exports) {
                            module.exports = seedrandom;
                            // When in node.js, try using crypto package for autoseeding.
                            try {
                                nodecrypto = require('crypto');
                            } catch (ex) { }
                        } else if (typeof undefined == 'function' && undefined.amd) {
                            undefined(function () {
                                return seedrandom;
                            });
                        } else {
                            // When included as a plain script, set up Math.seedrandom global.
                            math['seed' + rngname] = seedrandom;
                        }
                        // End anonymous scope, and pass initial values.
                    }
                    )(// global: `self` in browsers (including strict mode and web workers),
                        // otherwise `this` in Node and other environments
                        typeof self !== 'undefined' ? self : commonjsGlobal, [], // pool: entropy pool starts empty
                        Math // math: package containing random, pow, and seedrandom
                    );
                });
                // A library of seedable RNGs implemented in Javascript.
                //
                // Usage:
                //
                // var seedrandom = require('seedrandom');
                // var random = seedrandom(1); // or any seed.
                // var x = random();       // 0 <= x < 1.  Every bit is random.
                // var x = random.quick(); // 0 <= x < 1.  32 bits of randomness.
                // alea, a 53-bit multiply-with-carry generator by Johannes Baagøe.
                // Period: ~2^116
                // Reported to pass all BigCrush tests.
                // xor128, a pure xor-shift generator by George Marsaglia.
                // Period: 2^128-1.
                // Reported to fail: MatrixRank and LinearComp.
                // xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.
                // Period: 2^192-2^32
                // Reported to fail: CollisionOver, SimpPoker, and LinearComp.
                // xorshift7, by François Panneton and Pierre L'ecuyer, takes
                // a different approach: it adds robustness by allowing more shifts
                // than Marsaglia's original three.  It is a 7-shift generator
                // with 256 bits, that passes BigCrush with no systmatic failures.
                // Period 2^256-1.
                // No systematic BigCrush failures reported.
                // xor4096, by Richard Brent, is a 4096-bit xor-shift with a
                // very long period that also adds a Weyl generator. It also passes
                // BigCrush with no systematic failures.  Its long period may
                // be useful if you have many generators and need to avoid
                // collisions.
                // Period: 2^4128-2^32.
                // No systematic BigCrush failures reported.
                // Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random
                // number generator derived from ChaCha, a modern stream cipher.
                // https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf
                // Period: ~2^127
                // No systematic BigCrush failures reported.
                // The original ARC4-based prng included in this library.
                // Period: ~2^1600
                seedrandom.alea = alea;
                seedrandom.xor128 = xor128;
                seedrandom.xorwow = xorwow;
                seedrandom.xorshift7 = xorshift7;
                seedrandom.xor4096 = xor4096;
                seedrandom.tychei = tychei;
                var seedrandom$1 = seedrandom;
                var seedrandom_1 = seedrandom$1.alea;
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                // https://en.wikipedia.org/wiki/Marsaglia_polar_method
                class MPRandGauss {
                    constructor(mean, stdDeviation, dtype, truncated, seed) {
                        this.mean = mean;
                        this.stdDev = stdDeviation;
                        this.dtype = dtype;
                        this.nextVal = NaN;
                        this.truncated = truncated;
                        if (this.truncated) {
                            this.upper = this.mean + this.stdDev * 2;
                            this.lower = this.mean - this.stdDev * 2;
                        }
                        const seedValue = seed ? seed : Math.random();
                        this.random = seedrandom_1(seedValue.toString());
                    }
                    /** Returns next sample from a Gaussian distribution. */
                    nextValue() {
                        if (!isNaN(this.nextVal)) {
                            const value = this.nextVal;
                            this.nextVal = NaN;
                            return value;
                        }
                        let resultX, resultY;
                        let isValid = false;
                        while (!isValid) {
                            let v1, v2, s;
                            do {
                                v1 = 2 * this.random() - 1;
                                v2 = 2 * this.random() - 1;
                                s = v1 * v1 + v2 * v2;
                            } while (s >= 1 || s === 0);
                            const mul = Math.sqrt(-2.0 * Math.log(s) / s);
                            resultX = this.mean + this.stdDev * v1 * mul;
                            resultY = this.mean + this.stdDev * v2 * mul;
                            if (!this.truncated || this.isValidTruncated(resultX)) {
                                isValid = true;
                            }
                        }
                        if (!this.truncated || this.isValidTruncated(resultY)) {
                            this.nextVal = this.convertValue(resultY);
                        }
                        return this.convertValue(resultX);
                    }
                    /** Handles proper rounding for non-floating-point numbers. */
                    convertValue(value) {
                        if (this.dtype == null || this.dtype === 'float32') {
                            return value;
                        }
                        return Math.round(value);
                    }
                    /** Returns true if less than 2-standard-deviations from the mean. */
                    isValidTruncated(value) {
                        return value <= this.upper && value >= this.lower;
                    }
                }
                // Marsaglia, George, and Wai Wan Tsang. 2000. "A Simple Method for Generating
                // Gamma Variables."
                class RandGamma {
                    constructor(alpha, beta, dtype, seed) {
                        this.alpha = alpha;
                        this.beta = 1 / beta;
                        // convert rate to scale parameter
                        this.dtype = dtype;
                        const seedValue = seed ? seed : Math.random();
                        this.randu = seedrandom_1(seedValue.toString());
                        this.randn = new MPRandGauss(0, 1, dtype, false, this.randu());
                        if (alpha < 1) {
                            this.d = alpha + 2 / 3;
                        } else {
                            this.d = alpha - 1 / 3;
                        }
                        this.c = 1 / Math.sqrt(9 * this.d);
                    }
                    /** Returns next sample from a gamma distribution. */
                    nextValue() {
                        let x2, v0, v1, x, u, v;
                        while (true) {
                            do {
                                x = this.randn.nextValue();
                                v = 1 + this.c * x;
                            } while (v <= 0);
                            v *= v * v;
                            x2 = x * x;
                            v0 = 1 - 0.331 * x2 * x2;
                            v1 = 0.5 * x2 + this.d * (1 - v + Math.log(v));
                            u = this.randu();
                            if (u < v0 || Math.log(u) < v1) {
                                break;
                            }
                        }
                        v = 1 / this.beta * this.d * v;
                        if (this.alpha < 1) {
                            v *= Math.pow(this.randu(), 1 / this.alpha);
                        }
                        return this.convertValue(v);
                    }
                    /** Handles proper rounding for non-floating-point numbers. */
                    convertValue(value) {
                        if (this.dtype === 'float32') {
                            return value;
                        }
                        return Math.round(value);
                    }
                }
                class UniformRandom {
                    constructor(min = 0, max = 1, dtype, seed) {
                        /** Handles proper rounding for non floating point numbers. */
                        this.canReturnFloat = () => this.dtype == null || this.dtype === 'float32';
                        this.min = min;
                        this.range = max - min;
                        this.dtype = dtype;
                        if (seed == null) {
                            seed = Math.random();
                        }
                        if (typeof seed === 'number') {
                            seed = seed.toString();
                        }
                        if (!this.canReturnFloat() && this.range <= 1) {
                            throw new Error(`The difference between ${min} - ${max} <= 1 and dtype is not float`);
                        }
                        this.random = seedrandom_1(seed);
                    }
                    convertValue(value) {
                        if (this.canReturnFloat()) {
                            return value;
                        }
                        return Math.round(value);
                    }
                    nextValue() {
                        return this.convertValue(this.min + this.range * this.random());
                    }
                }
                function jarqueBeraNormalityTest(values) {
                    // https://en.wikipedia.org/wiki/Jarque%E2%80%93Bera_test
                    const n = values.length;
                    const s = skewness(values);
                    const k = kurtosis(values);
                    const jb = n / 6 * (Math.pow(s, 2) + 0.25 * Math.pow(k - 3, 2));
                    // JB test requires 2-degress of freedom from Chi-Square @ 0.95:
                    // http://www.itl.nist.gov/div898/handbook/eda/section3/eda3674.htm
                    const CHI_SQUARE_2DEG = 5.991;
                    if (jb > CHI_SQUARE_2DEG) {
                        throw new Error(`Invalid p-value for JB: ${jb}`);
                    }
                }
                function expectArrayInMeanStdRange(actual, expectedMean, expectedStdDev, epsilon) {
                    if (epsilon == null) {
                        epsilon = testEpsilon();
                    }
                    const actualMean = mean$1(actual);
                    expectNumbersClose(actualMean, expectedMean, epsilon);
                    expectNumbersClose(standardDeviation(actual, actualMean), expectedStdDev, epsilon);
                }
                function mean$1(values) {
                    let sum = 0;
                    for (let i = 0; i < values.length; i++) {
                        sum += values[i];
                    }
                    return sum / values.length;
                }
                function standardDeviation(values, mean) {
                    let squareDiffSum = 0;
                    for (let i = 0; i < values.length; i++) {
                        const diff = values[i] - mean;
                        squareDiffSum += diff * diff;
                    }
                    return Math.sqrt(squareDiffSum / values.length);
                }
                function kurtosis(values) {
                    // https://en.wikipedia.org/wiki/Kurtosis
                    const valuesMean = mean$1(values);
                    const n = values.length;
                    let sum2 = 0;
                    let sum4 = 0;
                    for (let i = 0; i < n; i++) {
                        const v = values[i] - valuesMean;
                        sum2 += Math.pow(v, 2);
                        sum4 += Math.pow(v, 4);
                    }
                    return 1 / n * sum4 / Math.pow(1 / n * sum2, 2);
                }
                function skewness(values) {
                    // https://en.wikipedia.org/wiki/Skewness
                    const valuesMean = mean$1(values);
                    const n = values.length;
                    let sum2 = 0;
                    let sum3 = 0;
                    for (let i = 0; i < n; i++) {
                        const v = values[i] - valuesMean;
                        sum2 += Math.pow(v, 2);
                        sum3 += Math.pow(v, 3);
                    }
                    return 1 / n * sum3 / Math.pow(1 / (n - 1) * sum2, 3 / 2);
                }
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Creates a `tf.Tensor` with values sampled from a gamma distribution.
 *
 * ```js
 * tf.randomGamma([2, 2], 1).print();
 * ```
 *
 * @param shape An array of integers defining the output tensor shape.
 * @param alpha The shape parameter of the gamma distribution.
 * @param beta The inverse scale parameter of the gamma distribution. Defaults
 *     to 1.
 * @param dtype The data type of the output. Defaults to float32.
 * @param seed The seed for the random number generator.
 *
 * @doc {heading: 'Tensors', subheading: 'Random'}
 */
                function randomGamma_(shape, alpha, beta = 1, dtype = 'float32', seed) {
                    assertNonNegativeIntegerDimensions(shape);
                    if (beta == null) {
                        beta = 1;
                    }
                    if (dtype == null) {
                        dtype = 'float32';
                    }
                    if (dtype !== 'float32' && dtype !== 'int32') {
                        throw new Error(`Unsupported data type ${dtype}`);
                    }
                    const rgamma = new RandGamma(alpha, beta, dtype, seed);
                    const res = buffer(shape, dtype);
                    for (let i = 0; i < res.values.length; i++) {
                        res.values[i] = rgamma.nextValue();
                    }
                    return res.toTensor();
                }
                const randomGamma = op({
                    randomGamma_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Creates a `tf.Tensor` with values sampled from a normal distribution.
 *
 * ```js
 * tf.randomNormal([2, 2]).print();
 * ```
 *
 * @param shape An array of integers defining the output tensor shape.
 * @param mean The mean of the normal distribution.
 * @param stdDev The standard deviation of the normal distribution.
 * @param dtype The data type of the output.
 * @param seed The seed for the random number generator.
 *
 * @doc {heading: 'Tensors', subheading: 'Random'}
 */
                function randomNormal_(shape, mean = 0, stdDev = 1, dtype, seed) {
                    assertNonNegativeIntegerDimensions(shape);
                    if (dtype != null && dtype === 'bool') {
                        throw new Error(`Unsupported data type ${dtype}`);
                    }
                    const randGauss = new MPRandGauss(mean, stdDev, dtype, false /* truncated */
                        , seed);
                    const res = buffer(shape, dtype);
                    for (let i = 0; i < res.values.length; i++) {
                        res.values[i] = randGauss.nextValue();
                    }
                    return res.toTensor();
                }
                const randomNormal = op({
                    randomNormal_
                });
                /**
 * @license
 * Copyright 2022 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Creates a `tf.Tensor` with values sampled from a normal distribution.
 *
 * The generated values will have mean 0 and standard deviation 1.
 *
 * ```js
 * tf.randomStandardNormal([2, 2]).print();
 * ```
 *
 * @param shape An array of integers defining the output tensor shape.
 * @param dtype The data type of the output.
 * @param seed The seed for the random number generator.
 *
 * @doc {heading: 'Tensors', subheading: 'Random'}
 */
                function randomStandardNormal_(shape, dtype, seed) {
                    if (dtype != null && dtype === 'bool') {
                        throw new Error(`Unsupported data type ${dtype}`);
                    }
                    return randomNormal(shape, 0, 1, dtype, seed);
                }
                const randomStandardNormal = op({
                    randomStandardNormal_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Creates a `tf.Tensor` with values sampled from a uniform distribution.
 *
 * The generated values follow a uniform distribution in the range [minval,
 * maxval). The lower bound minval is included in the range, while the upper
 * bound maxval is excluded.
 *
 * ```js
 * tf.randomUniform([2, 2]).print();
 * ```
 *
 * @param shape An array of integers defining the output tensor shape.
 * @param minval The lower bound on the range of random values to generate.
 *   Defaults to 0.
 * @param maxval The upper bound on the range of random values to generate.
 *   Defaults to 1.
 * @param dtype The data type of the output tensor. Defaults to 'float32'.
 *
 * @doc {heading: 'Tensors', subheading: 'Random'}
 */
                function randomUniform_(shape, minval = 0, maxval = 1, dtype = 'float32', seed) {
                    assertNonNegativeIntegerDimensions(shape);
                    const res = buffer(shape, dtype);
                    const random = new UniformRandom(minval, maxval, null, seed);
                    for (let i = 0; i < res.values.length; i++) {
                        res.values[i] = random.nextValue();
                    }
                    return res.toTensor();
                }
                const randomUniform = op({
                    randomUniform_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Creates a new `tf.Tensor1D` filled with the numbers in the range provided.
 *
 * The tensor is a half-open interval meaning it includes start, but
 * excludes stop. Decrementing ranges and negative step values are also
 * supported.
 *
 *
 * ```js
 * tf.range(0, 9, 2).print();
 * ```
 *
 * @param start An integer start value
 * @param stop An integer stop value
 * @param step An integer increment (will default to 1 or -1)
 * @param dtype The data type of the output tensor. Defaults to 'float32'.
 *
 * @doc {heading: 'Tensors', subheading: 'Creation'}
 */
                function range(start, stop, step = 1, dtype = 'float32') {
                    if (step === 0) {
                        throw new Error('Cannot have a step of zero');
                    }
                    const attrs = {
                        start,
                        stop,
                        step,
                        dtype
                    };
                    return ENGINE.runKernel(Range, {}/* inputs */
                        , attrs);
                }
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes reciprocal of x element-wise: `1 / x`
 *
 * ```js
 * const x = tf.tensor1d([0, 1, 2]);
 *
 * x.reciprocal().print();  // or tf.reciprocal(x)
 * ```
 * @param x The input tensor.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function reciprocal_(x) {
                    const $x = convertToTensor(x, 'x', 'reciprocal');
                    const inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(Reciprocal, inputs);
                }
                const reciprocal = op({
                    reciprocal_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes rectified linear element-wise: `max(x, 0)`.
 *
 * ```js
 * const x = tf.tensor1d([-1, 2, -3, 4]);
 *
 * x.relu().print();  // or tf.relu(x)
 * ```
 * @param x The input tensor. If the dtype is `bool`, the output dtype will be
 *     `int32`.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function relu_(x) {
                    const $x = convertToTensor(x, 'x', 'relu');
                    const inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(Relu, inputs);
                }
                const relu = op({
                    relu_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes rectified linear 6 element-wise: `min(max(x, 0), 6)`.
 *
 * ```js
 * const x = tf.tensor1d([-1, 2, -3, 8]);
 *
 * x.relu6().print();  // or tf.relu6(x)
 * ```
 * @param x The input tensor. If the dtype is `bool`, the output dtype will be
 *     `int32`.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function relu6_(x) {
                    const $x = convertToTensor(x, 'x', 'relu6');
                    const inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(Relu6, inputs);
                }
                const relu6 = op({
                    relu6_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Reverses a `tf.Tensor` along a specified axis.
 *
 * Also available are stricter rank-specific methods that assert that `x` is
 * of the given rank:
 *   - `tf.reverse1d`
 *   - `tf.reverse2d`
 *   - `tf.reverse3d`
 *   - `tf.reverse4d`
 *
 * Except `tf.reverse1d` (which does not have axis param), all methods have
 * same signature as this method.
 *
 * ```js
 * const x = tf.tensor1d([1, 2, 3, 4]);
 *
 * x.reverse().print();
 * ```
 *
 * ```js
 * const x = tf.tensor2d([1, 2, 3, 4], [2, 2]);
 *
 * const axis = 1;
 * x.reverse(axis).print();
 * ```
 * @param x The input tensor to be reversed.
 * @param axis The set of dimensions to reverse. Must be in the
 *     range [-rank(x), rank(x)). Defaults to all axes.
 *
 * @doc {heading: 'Tensors', subheading: 'Slicing and Joining'}
 */
                function reverse_(x, axis) {
                    const $x = convertToTensor(x, 'x', 'reverse');
                    const inputs = {
                        x: $x
                    };
                    const attrs = {
                        dims: axis
                    };
                    return ENGINE.runKernel(Reverse, inputs, attrs);
                }
                const reverse = op({
                    reverse_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Reverses a `tf.Tensor1D`.
 *
 * @param x The input tensor.
 */
                function reverse1d_(x) {
                    const $x = convertToTensor(x, 'x', 'reverse');
                    assert($x.rank === 1, () => `Error in reverse1D: x must be rank 1 but got rank ${$x.rank}.`);
                    return reverse($x, 0);
                }
                const reverse1d = op({
                    reverse1d_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Reverses a `tf.Tensor2D` along a specified axis.
 *
 * @param x The input tensor.
 * @param axis The set of dimensions to reverse. Must be in the
 *     range [-rank(x), rank(x)). Defaults to all axes.
 */
                function reverse2d_(x, axis) {
                    const $x = convertToTensor(x, 'x', 'reverse');
                    assert($x.rank === 2, () => `Error in reverse2D: x must be rank 2 but got rank ${$x.rank}.`);
                    return reverse($x, axis);
                }
                const reverse2d = op({
                    reverse2d_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Reverses a `tf.Tensor3D` along a specified axis.
 *
 * @param x The input tensor.
 * @param axis The set of dimensions to reverse. Must be in the
 *     range [-rank(x), rank(x)). Defaults to all axes.
 */
                function reverse3d_(x, axis) {
                    const $x = convertToTensor(x, 'x', 'reverse');
                    assert($x.rank === 3, () => `Error in reverse3D: x must be rank 3 but got rank ${$x.rank}.`);
                    return reverse($x, axis);
                }
                const reverse3d = op({
                    reverse3d_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Reverses a `tf.Tensor4D` along a specified axis.
 *
 * @param x The input tensor.
 * @param axis The set of dimensions to reverse. Must be in the
 *     range [-rank(x), rank(x)). Defaults to all axes.
 */
                function reverse4d_(x, axis) {
                    const $x = convertToTensor(x, 'x', 'reverse');
                    assert($x.rank === 4, () => `Error in reverse4D: x must be rank 4 but got rank ${$x.rank}.`);
                    return reverse($x, axis);
                }
                const reverse4d = op({
                    reverse4d_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes round of input `tf.Tensor` element-wise: `round(x)`.
 * It implements banker's rounding.
 *
 * ```js
 * const x = tf.tensor1d([.6, 1.1, -3.3]);
 *
 * x.round().print();  // or tf.round(x)
 * ```
 * @param x The input tensor.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function round_(x) {
                    const $x = convertToTensor(x, 'x', 'round');
                    const inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(Round, inputs);
                }
                const round$1 = op({
                    round_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes scaled exponential linear element-wise.
 *
 * `x < 0 ? scale * alpha * (exp(x) - 1) : scale * x`
 *
 * ```js
 * const x = tf.tensor1d([-1, 2, -3, 4]);
 *
 * x.selu().print();  // or tf.selu(x)
 * ```
 * @param x The input tensor.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function selu_(x) {
                    const $x = convertToTensor(x, 'x', 'selu');
                    const inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(Selu, inputs);
                }
                const selu = op({
                    selu_
                });
                /**
 * 2-D convolution with separable filters.
 *
 * Performs a depthwise convolution that acts separately on channels followed
 * by a pointwise convolution that mixes channels. Note that this is
 * separability between dimensions [1, 2] and 3, not spatial separability
 * between dimensions 1 and 2.
 *
 * See
 * [https://www.tensorflow.org/api_docs/python/tf/nn/separable_conv2d](
 *     https://www.tensorflow.org/api_docs/python/tf/nn/separable_conv2d)
 * for more details.
 *
 * @param x The input tensor, of rank 4 or rank 3, of shape
 *     `[batch, height, width, inChannels]`. If rank 3, batch of 1 is
 * assumed.
 * @param depthwiseFilter The depthwise filter tensor, rank 4, of shape
 *     `[filterHeight, filterWidth, inChannels, channelMultiplier]`. This is
 *     the filter used in the first step.
 * @param pointwiseFilter The pointwise filter tensor, rank 4, of shape
 *     `[1, 1, inChannels * channelMultiplier, outChannels]`. This is
 *     the filter used in the second step.
 * @param strides The strides of the convolution: `[strideHeight,
 * strideWidth]`. If strides is a single number, then `strideHeight ==
 * strideWidth`.
 * @param pad The type of padding algorithm.
 *   - `same` and stride 1: output will be of same size as input,
 *       regardless of filter size.
 *   - `valid`: output will be smaller than input if filter is larger
 *       than 1x1.
 *   - For more info, see this guide:
 *     [https://www.tensorflow.org/api_docs/python/tf/nn/convolution](
 *          https://www.tensorflow.org/api_docs/python/tf/nn/convolution)
 * @param dilations The dilation rates: `[dilationHeight, dilationWidth]`
 *     in which we sample input values across the height and width dimensions
 *     in atrous convolution. Defaults to `[1, 1]`. If `rate` is a single
 *     number, then `dilationHeight == dilationWidth`. If it is greater than
 *     1, then all values of `strides` must be 1.
 * @param dataFormat: An optional string from: "NHWC", "NCHW". Defaults to
 *     "NHWC". Specify the data format of the input and output data. With the
 *     default format "NHWC", the data is stored in the order of: [batch,
 *     height, width, channels]. Only "NHWC" is currently supported.
 *
 * @doc {heading: 'Operations', subheading: 'Convolution'}
 */
                function separableConv2d_(x, depthwiseFilter, pointwiseFilter, strides, pad, dilation = [1, 1], dataFormat = 'NHWC') {
                    const $x = convertToTensor(x, 'x', 'separableConv2d');
                    const $depthwiseFilter = convertToTensor(depthwiseFilter, 'depthwiseFilter', 'separableConv2d');
                    const $pointwiseFilter = convertToTensor(pointwiseFilter, 'pointwiseFilter', 'separableConv2d');
                    let x4D = $x;
                    let reshapedTo4D = false;
                    if ($x.rank === 3) {
                        reshapedTo4D = true;
                        x4D = reshape($x, [1, $x.shape[0], $x.shape[1], $x.shape[2]]);
                    }
                    if (dataFormat === 'NCHW') {
                        throw new Error('separableConv2d currently does not support dataFormat NCHW; only ' + 'NHWC is supported');
                    }
                    assert(x4D.rank === 4, () => `Error in separableConv2d: input must be rank 4, but got ` + `rank ${x4D.rank}.`);
                    assert($depthwiseFilter.rank === 4, () => `Error in separableConv2d: depthwise filter must be rank 4, but ` + `got rank ${$depthwiseFilter.rank}.`);
                    assert($pointwiseFilter.rank === 4, () => `Error in separableConv2d: pointwise filter must be rank 4, but ` + `got rank ${$depthwiseFilter.rank}.`);
                    assert($pointwiseFilter.shape[0] === 1, () => `Error in separableConv2d: the first dimension of pointwise filter ` + ` must be 1, but got ${$pointwiseFilter.shape[0]}.`);
                    assert($pointwiseFilter.shape[1] === 1, () => `Error in separableConv2d: the second dimension of pointwise ` + `filter must be 1, but got ${$pointwiseFilter.shape[1]}.`);
                    const inChannels = $depthwiseFilter.shape[2];
                    const channelMultiplier = $depthwiseFilter.shape[3];
                    assert($pointwiseFilter.shape[2] === inChannels * channelMultiplier, () => `Error in separableConv2d: the third dimension of pointwise filter ` + `must be ${inChannels * channelMultiplier}, ` + `but got ${$pointwiseFilter.shape[2]}.`);
                    const depthwise = depthwiseConv2d(x4D, $depthwiseFilter, strides, pad, dataFormat, dilation);
                    const pointwiseStride = 1;
                    const res = conv2d(depthwise, $pointwiseFilter, pointwiseStride, 'valid', dataFormat);
                    if (reshapedTo4D) {
                        return reshape(res, [res.shape[1], res.shape[2], res.shape[3]]);
                    }
                    return res;
                }
                const separableConv2d = op({
                    separableConv2d_
                });
                /**
 * @license
 * Copyright 2020 Google Inc. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the difference between two lists of numbers.
 *
 * Given a Tensor `x` and a Tensor `y`, this operation returns a Tensor `out`
 * that represents all values that are in `x` but not in `y`. The returned
 * Tensor `out` is sorted in the same order that the numbers appear in `x`
 * (duplicates are preserved). This operation also returns a Tensor indices that
 * represents the position of each out element in `x`. In other words:
 *
 * `out[i] = x[idx[i]] for i in [0, 1, ..., out.length - 1]`
 *
 * ```js
 * const x = [1, 2, 3, 4, 5, 6];
 * const y = [1, 3, 5];
 *
 * const [out, indices] = await tf.setdiff1dAsync(x, y);
 * out.print(); // [2, 4, 6]
 * indices.print(); // [1, 3, 5]
 * ```
 *
 * @param x 1-D Tensor. Values to keep.
 * @param y 1-D Tensor. Must have the same type as x. Values to exclude in the
 *     output.
 * @returns Promise of Tensor tuple [out, indices].
 *  out: Tensor with the same type as x.
 *  indices: A Tensor of type int32.
 *
 * @doc {heading: 'Tensors', subheading: 'Transformations'}
 */
                async function setdiff1dAsync_(x, y) {
                    const $x = convertToTensor(x, 'x', 'setdiff1d');
                    const $y = convertToTensor(y, 'y', 'setdiff1d');
                    assert($x.dtype === $y.dtype, () => `x and y should have the same dtype, but got x (${$x.dtype}) and y (${$y.dtype}).`);
                    assert($x.rank === 1, () => `x should be 1D tensor, but got x (${$x.shape}).`);
                    assert($y.rank === 1, () => `y should be 1D tensor, but got y (${$y.shape}).`);
                    const xVals = await $x.data();
                    const yVals = await $y.data();
                    const ySet = new Set(yVals);
                    let outputSize = 0;
                    for (let i = 0; i < xVals.length; i++) {
                        if (!ySet.has(xVals[i])) {
                            outputSize++;
                        }
                    }
                    const buffer = new TensorBuffer([outputSize], $x.dtype);
                    const indices = new TensorBuffer([outputSize], 'int32');
                    for (let i = 0, p = 0; i < xVals.length; i++) {
                        if (!ySet.has(xVals[i])) {
                            buffer.values[p] = xVals[i];
                            indices.values[p] = i;
                            p++;
                        }
                    }
                    return [buffer.toTensor(), indices.toTensor()];
                }
                const setdiff1dAsync = setdiff1dAsync_;
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Returns an element-wise indication of the sign of a number.
 *
 * ```js
 * const x = tf.tensor1d([.6, 1.1, -3.3, NaN, 0]);
 *
 * x.sign().print();  // or tf.sign(x)
 * ```
 * @param x The input Tensor.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function sign_(x) {
                    const $x = convertToTensor(x, 'x', 'sign');
                    const inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(Sign, inputs);
                }
                const sign = op({
                    sign_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Extracts a 1D slice from 1D array starting at coordinates `begin` and is
 * of length `size`. See `slice` for details.
 */
                function slice1d_(x, begin, size) {
                    const $x = convertToTensor(x, 'x', 'slice1d');
                    assert($x.rank === 1, () => `slice1d expects a rank-1 tensor, but got a rank-${$x.rank} tensor`);
                    return slice($x, [begin], [size]);
                }
                const slice1d = op({
                    slice1d_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Extracts a 2D slice from a 2D array starting at coordinates `begin` and
 * is of size `size`. See `slice` for details.
 */
                function slice2d_(x, begin, size) {
                    const $x = convertToTensor(x, 'x', 'slice2d');
                    assert($x.rank === 2, () => `slice2d expects a rank-2 tensor, but got a rank-${$x.rank} tensor`);
                    return slice($x, begin, size);
                }
                const slice2d = op({
                    slice2d_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Extracts a 3D slice from a 3D array starting at coordinates `begin` and
 * is of size `size`. See `slice` for details.
 */
                function slice3d_(x, begin, size) {
                    const $x = convertToTensor(x, 'x', 'slice3d');
                    assert($x.rank === 3, () => `slice3d expects a rank-3 tensor, but got a rank-${$x.rank} tensor`);
                    return slice($x, begin, size);
                }
                const slice3d = op({
                    slice3d_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Extracts a 4D slice from a 4D array starting at coordinates `begin` and
 * is of size `size`. See `slice` for details.
 */
                function slice4d_(x, begin, size) {
                    const $x = convertToTensor(x, 'x', 'slice4d');
                    assert($x.rank === 4, () => `slice4d expects a rank-4 tensor, but got a rank-${$x.rank} tensor`);
                    return slice($x, begin, size);
                }
                const slice4d = op({
                    slice4d_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the softmax normalized vector given the logits.
 *
 * ```js
 * const a = tf.tensor1d([1, 2, 3]);
 *
 * a.softmax().print();  // or tf.softmax(a)
 * ```
 *
 * ```js
 * const a = tf.tensor2d([2, 4, 6, 1, 2, 3], [2, 3]);
 *
 * a.softmax().print();  // or tf.softmax(a)
 * ```
 *
 * @param logits The logits array.
 * @param dim The dimension softmax would be performed on. Defaults to `-1`
 *     which indicates the last dimension.
 *
 * @doc {heading: 'Operations', subheading: 'Normalization'}
 */
                function softmax_(logits, dim = -1) {
                    const $logits = convertToTensor(logits, 'logits', 'softmax', 'float32');
                    if (dim === -1) {
                        dim = $logits.rank - 1;
                    }
                    if (dim !== $logits.rank - 1) {
                        throw Error('Softmax along a non-last dimension is not yet supported. ' + `Logits was rank ${$logits.rank} and dim was ${dim}`);
                    }
                    const inputs = {
                        logits: $logits
                    };
                    const attrs = {
                        dim
                    };
                    return ENGINE.runKernel(Softmax, inputs, attrs);
                }
                const softmax = op({
                    softmax_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Fast Fourier transform.
 *
 * Computes the 1-dimensional discrete Fourier transform over the inner-most
 * dimension of input.
 *
 * ```js
 * const real = tf.tensor1d([1, 2, 3]);
 * const imag = tf.tensor1d([1, 2, 3]);
 * const x = tf.complex(real, imag);
 *
 * x.fft().print();  // tf.spectral.fft(x).print();
 * ```
 * @param input The complex input to compute an fft over.
 *
 * @doc {heading: 'Operations', subheading: 'Spectral', namespace: 'spectral'}
 */
                function fft_(input) {
                    assert(input.dtype === 'complex64', () => `The dtype for tf.spectral.fft() must be complex64 ` + `but got ${input.dtype}.`);
                    const inputs = {
                        input
                    };
                    return ENGINE.runKernel(FFT, inputs);
                }
                const fft = op({
                    fft_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Inverse fast Fourier transform.
 *
 * Computes the inverse 1-dimensional discrete Fourier transform over the
 * inner-most dimension of input.
 *
 * ```js
 * const real = tf.tensor1d([1, 2, 3]);
 * const imag = tf.tensor1d([1, 2, 3]);
 * const x = tf.complex(real, imag);
 *
 * x.ifft().print();  // tf.spectral.ifft(x).print();
 * ```
 * @param input The complex input to compute an ifft over.
 *
 * @doc {heading: 'Operations', subheading: 'Spectral', namespace: 'spectral'}
 */
                function ifft_(input) {
                    assert(input.dtype === 'complex64', () => `The dtype for tf.spectral.ifft() must be complex64 ` + `but got ${input.dtype}.`);
                    const inputs = {
                        input
                    };
                    return ENGINE.runKernel(IFFT, inputs);
                }
                const ifft = op({
                    ifft_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Inversed real value input fast Fourier transform.
 *
 * Computes the 1-dimensional inversed discrete Fourier transform over the
 * inner-most dimension of the real input.
 *
 * ```js
 * const real = tf.tensor1d([1, 2, 3]);
 * const imag = tf.tensor1d([0, 0, 0]);
 * const x = tf.complex(real, imag);
 *
 * x.irfft().print();
 * ```
 * @param input The real value input to compute an irfft over.
 *
 * @doc {heading: 'Operations', subheading: 'Spectral', namespace: 'spectral'}
 */
                function irfft_(input) {
                    const innerDimensionSize = input.shape[input.shape.length - 1];
                    const batch = input.size / innerDimensionSize;
                    let ret;
                    if (innerDimensionSize <= 2) {
                        const complexInput = reshape(input, [batch, innerDimensionSize]);
                        ret = ifft(complexInput);
                    } else {
                        // The length of unique components of the DFT of a real-valued signal
                        // is 2 * (input_len - 1)
                        const outputShape = [batch, 2 * (innerDimensionSize - 1)];
                        const realInput = reshape(real(input), [batch, innerDimensionSize]);
                        const imagInput = reshape(imag(input), [batch, innerDimensionSize]);
                        const realConjugate = reverse(slice(realInput, [0, 1], [batch, innerDimensionSize - 2]), 1);
                        const imagConjugate = mul(reverse(slice(imagInput, [0, 1], [batch, innerDimensionSize - 2]), 1), scalar(-1));
                        const r = concat([realInput, realConjugate], 1);
                        const i = concat([imagInput, imagConjugate], 1);
                        const complexInput = reshape(complex(r, i), [outputShape[0], outputShape[1]]);
                        ret = ifft(complexInput);
                    }
                    ret = real(ret);
                    // reshape the result if the input is 3D tensor.
                    if (input.rank === 3 && input.shape[0] !== 0) {
                        const temp = ret;
                        const batch = input.shape[0];
                        ret = reshape(ret, [batch, ret.shape[0] / batch, ret.shape[1]]);
                        temp.dispose();
                    }
                    return ret;
                }
                const irfft = op({
                    irfft_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Real value input fast Fourier transform.
 *
 * Computes the 1-dimensional discrete Fourier transform over the
 * inner-most dimension of the real input.
 *
 * ```js
 * const real = tf.tensor1d([1, 2, 3]);
 *
 * real.rfft().print();
 * ```
 * @param input The real value input to compute an rfft over.
 *
 * @doc {heading: 'Operations', subheading: 'Spectral', namespace: 'spectral'}
 */
                function rfft_(input, fftLength) {
                    assert(input.dtype === 'float32', () => `The dtype for rfft() must be real value but got ${input.dtype}`);
                    let innerDimensionSize = input.shape[input.shape.length - 1];
                    const batch = input.size / innerDimensionSize;
                    let adjustedInput;
                    if (fftLength != null && fftLength < innerDimensionSize) {
                        // Need to crop
                        const begin = input.shape.map(v => 0);
                        const size = input.shape.map(v => v);
                        size[input.shape.length - 1] = fftLength;
                        adjustedInput = slice(input, begin, size);
                        innerDimensionSize = fftLength;
                    } else if (fftLength != null && fftLength > innerDimensionSize) {
                        // Need to pad with zeros
                        const zerosShape = input.shape.map(v => v);
                        zerosShape[input.shape.length - 1] = fftLength - innerDimensionSize;
                        adjustedInput = concat([input, zeros(zerosShape)], input.shape.length - 1);
                        innerDimensionSize = fftLength;
                    } else {
                        adjustedInput = input;
                    }
                    // Complement the input with zero imaginary numbers.
                    const zerosInput = zerosLike(adjustedInput);
                    const complexInput = reshape(complex(adjustedInput, zerosInput), [batch, innerDimensionSize]);
                    const ret = fft(complexInput);
                    // Exclude complex conjugations. These conjugations are put symmetrically.
                    const half = Math.floor(innerDimensionSize / 2) + 1;
                    const realValues = real(ret);
                    const imagValues = imag(ret);
                    const realComplexConjugate = split(realValues, [half, innerDimensionSize - half], realValues.shape.length - 1);
                    const imagComplexConjugate = split(imagValues, [half, innerDimensionSize - half], imagValues.shape.length - 1);
                    const outputShape = adjustedInput.shape.slice();
                    outputShape[adjustedInput.shape.length - 1] = half;
                    return reshape(complex(realComplexConjugate[0], imagComplexConjugate[0]), outputShape);
                }
                const rfft = op({
                    rfft_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Returns (a - b) * (a - b) element-wise.
 * Supports broadcasting.
 *
 * ```js
 * const a = tf.tensor1d([1, 4, 3, 16]);
 * const b = tf.tensor1d([1, 2, 9, 4]);
 *
 * a.squaredDifference(b).print();  // or tf.squaredDifference(a, b)
 * ```
 *
 * ```js
 * // Broadcast squared difference  a with b.
 * const a = tf.tensor1d([2, 4, 6, 8]);
 * const b = tf.scalar(5);
 *
 * a.squaredDifference(b).print();  // or tf.squaredDifference(a, b)
 * ```
 *
 * @param a The first tensor.
 * @param b The second tensor. Must have the same type as `a`.
 *
 * @doc {heading: 'Operations', subheading: 'Arithmetic'}
 */
                function squaredDifference_(a, b) {
                    let $a = convertToTensor(a, 'a', 'squaredDifference');
                    let $b = convertToTensor(b, 'b', 'squaredDifference');
                    [$a, $b] = makeTypesMatch($a, $b);
                    assertAndGetBroadcastShape($a.shape, $b.shape);
                    const inputs = {
                        a: $a,
                        b: $b
                    };
                    const attrs = {};
                    return ENGINE.runKernel(SquaredDifference, inputs, attrs);
                }
                const squaredDifference = op({
                    squaredDifference_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Removes dimensions of size 1 from the shape of a `tf.Tensor`.
 *
 * ```js
 * const x = tf.tensor([1, 2, 3, 4], [1, 1, 4]);
 * x.squeeze().print();
 * ```
 *
 * @param x The input tensor to be squeezed.
 * @param axis An optional list of numbers. If specified, only
 *     squeezes the dimensions listed. The dimension index starts at 0. It
 * is an error to squeeze a dimension that is not 1.
 *
 * @doc {heading: 'Tensors', subheading: 'Transformations'}
 */
                function squeeze_(x, axis) {
                    const $x = convertToTensor(x, 'x', 'squeeze', 'string_or_numeric');
                    return reshape($x, squeezeShape($x.shape, axis).newShape);
                }
                const squeeze = op({
                    squeeze_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Stacks a list of rank-`R` `tf.Tensor`s into one rank-`(R+1)` `tf.Tensor`.
 *
 * ```js
 * const a = tf.tensor1d([1, 2]);
 * const b = tf.tensor1d([3, 4]);
 * const c = tf.tensor1d([5, 6]);
 * tf.stack([a, b, c]).print();
 * ```
 *
 * @param tensors A list of tensor objects with the same shape and dtype.
 * @param axis The axis to stack along. Defaults to 0 (the first dim).
 *
 * @doc {heading: 'Tensors', subheading: 'Slicing and Joining'}
 */
                function stack_(tensors, axis = 0) {
                    const $tensors = convertToTensorArray(tensors, 'tensors', 'stack', 'string_or_numeric');
                    assert($tensors.length >= 1, () => 'Pass at least one tensor to tf.stack');
                    if ($tensors.length > 0) {
                        assert(axis <= $tensors[0].rank, () => 'Axis must be <= rank of the tensor');
                    }
                    const inputs = $tensors;
                    const attrs = {
                        axis
                    };
                    return ENGINE.runKernel(Pack, inputs, attrs);
                }
                const stack = op({
                    stack_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Extracts a strided slice of a tensor.
 *
 * Roughly speaking, this op extracts a slice of size (end-begin)/stride from
 * the given input tensor (x). Starting at the location specified by begin the
 * slice continues by adding stride to the index until all dimensions are not
 * less than end. Note that a stride can be negative, which causes a reverse
 * slice.
 *
 * ```js
 * const t = tf.tensor3d([1, 1, 1 ,2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6],
 *    [3, 2, 3]);
 * t.stridedSlice([1, 0, 0], [2, 1, 3], [1, 1, 1]).print()  // [[[3, 3, 3]]]
 * t.stridedSlice([1, 0, 0], [2, 2, 3], [1, 1, 1]).print()  // [[[3, 3, 3],
 *                                                     // [4, 4, 4]]]
 * t.stridedSlice([1, -1, 0], [2, -3, 3], [1, -1, 1]).print() // [[[4, 4, 4],
 *                                                     // [3, 3, 3]]]
 * ```
 *
 * @param x The tensor to stride slice.
 * @param begin The coordinates to start the slice from.
 * @param end: The coordinates to end the slice at.
 * @param strides: The size of the slice.
 * @param beginMask: If the ith bit of beginMask is set, begin[i] is ignored
 *      and the fullest possible range in that dimension is used instead.
 * @param endMask: If the ith bit of endMask is set, end[i] is ignored
 *      and the fullest possible range in that dimension is used instead.
 * @param shrinkAxisMask: a bitmask where bit i implies that
 * the ith specification should shrink the dimensionality. begin and end must
 * imply a slice of size 1 in the dimension.
 *
 * @doc {heading: 'Operations', subheading: 'Slicing and Joining'}
 */
                function stridedSlice_(x, begin, end, strides, beginMask = 0, endMask = 0, ellipsisMask = 0, newAxisMask = 0, shrinkAxisMask = 0) {
                    const $x = convertToTensor(x, 'x', 'stridedSlice', 'string_or_numeric');
                    const inputs = {
                        x: $x
                    };
                    const attrs = {
                        begin,
                        end,
                        strides,
                        beginMask,
                        endMask,
                        ellipsisMask,
                        newAxisMask,
                        shrinkAxisMask
                    };
                    return ENGINE.runKernel(StridedSlice, inputs, attrs);
                }
                const stridedSlice = op({
                    stridedSlice_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes tan of the input `tf.Tensor` element-wise, `tan(x)`
 *
 * ```js
 * const x = tf.tensor1d([0, Math.PI / 2, Math.PI * 3 / 4]);
 *
 * x.tan().print();  // or tf.tan(x)
 * ```
 * @param x The input tensor.
 *
 * @doc {heading: 'Operations', subheading: 'Basic math'}
 */
                function tan_(x) {
                    const $x = convertToTensor(x, 'x', 'tan', 'float32');
                    const inputs = {
                        x: $x
                    };
                    return ENGINE.runKernel(Tan, inputs);
                }
                const tan = op({
                    tan_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Creates rank-1 `tf.Tensor` with the provided values, shape and dtype.
 *
 * The same functionality can be achieved with `tf.tensor`, but in general
 * we recommend using `tf.tensor1d` as it makes the code more readable.
 *
 * ```js
 * tf.tensor1d([1, 2, 3]).print();
 * ```
 *
 * @param values The values of the tensor. Can be array of numbers,
 *     or a `TypedArray`.
 * @param dtype The data type.
 *
 * @doc {heading: 'Tensors', subheading: 'Creation'}
 */
                function tensor1d(values, dtype) {
                    assertNonNull(values);
                    const inferredShape = inferShape(values, dtype);
                    if (inferredShape.length !== 1) {
                        throw new Error('tensor1d() requires values to be a flat/TypedArray');
                    }
                    const shape = null;
                    return makeTensor(values, shape, inferredShape, dtype);
                }
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Creates rank-2 `tf.Tensor` with the provided values, shape and dtype.
 *
 * The same functionality can be achieved with `tf.tensor`, but in general
 * we recommend using `tf.tensor2d` as it makes the code more readable.
 *
 *  ```js
 * // Pass a nested array.
 * tf.tensor2d([[1, 2], [3, 4]]).print();
 * ```
 * ```js
 * // Pass a flat array and specify a shape.
 * tf.tensor2d([1, 2, 3, 4], [2, 2]).print();
 * ```
 *
 * @param values The values of the tensor. Can be nested array of numbers,
 *     or a flat array, or a `TypedArray`.
 * @param shape The shape of the tensor. If not provided, it is inferred from
 *     `values`.
 * @param dtype The data type.
 *
 * @doc {heading: 'Tensors', subheading: 'Creation'}
 */
                function tensor2d(values, shape, dtype) {
                    assertNonNull(values);
                    if (shape != null && shape.length !== 2) {
                        throw new Error('tensor2d() requires shape to have two numbers');
                    }
                    const inferredShape = inferShape(values, dtype);
                    if (inferredShape.length !== 2 && inferredShape.length !== 1) {
                        throw new Error('tensor2d() requires values to be number[][] or flat/TypedArray');
                    }
                    if (inferredShape.length === 1 && shape == null) {
                        throw new Error('tensor2d() requires shape to be provided when `values` ' + 'are a flat/TypedArray');
                    }
                    return makeTensor(values, shape, inferredShape, dtype);
                }
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Creates rank-4 `tf.Tensor` with the provided values, shape and dtype.
 *
 * The same functionality can be achieved with `tf.tensor`, but in general
 * we recommend using `tf.tensor4d` as it makes the code more readable.
 *
 *  ```js
 * // Pass a nested array.
 * tf.tensor4d([[[[1], [2]], [[3], [4]]]]).print();
 * ```
 * ```js
 * // Pass a flat array and specify a shape.
 * tf.tensor4d([1, 2, 3, 4], [1, 2, 2, 1]).print();
 * ```
 *
 * @param values The values of the tensor. Can be nested array of numbers,
 *     or a flat array, or a `TypedArray`.
 * @param shape The shape of the tensor. Optional. If not provided,
 *   it is inferred from `values`.
 * @param dtype The data type.
 *
 * @doc {heading: 'Tensors', subheading: 'Creation'}
 */
                function tensor4d(values, shape, dtype) {
                    assertNonNull(values);
                    if (shape != null && shape.length !== 4) {
                        throw new Error('tensor4d() requires shape to have four numbers');
                    }
                    const inferredShape = inferShape(values, dtype);
                    if (inferredShape.length !== 4 && inferredShape.length !== 1) {
                        throw new Error('tensor4d() requires values to be number[][][][] or flat/TypedArray');
                    }
                    if (inferredShape.length === 1 && shape == null) {
                        throw new Error('tensor4d() requires shape to be provided when `values` ' + 'are a flat array');
                    }
                    return makeTensor(values, shape, inferredShape, dtype);
                }
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Creates rank-5 `tf.Tensor` with the provided values, shape and dtype.
 *
 * The same functionality can be achieved with `tf.tensor`, but in general
 * we recommend using `tf.tensor5d` as it makes the code more readable.
 *
 *  ```js
 * // Pass a nested array.
 * tf.tensor5d([[[[[1],[2]],[[3],[4]]],[[[5],[6]],[[7],[8]]]]]).print();
 * ```
 * ```js
 * // Pass a flat array and specify a shape.
 * tf.tensor5d([1, 2, 3, 4, 5, 6, 7, 8], [1, 2, 2, 2, 1]).print();
 * ```
 *
 * @param values The values of the tensor. Can be nested array of numbers,
 *     or a flat array, or a `TypedArray`.
 * @param shape The shape of the tensor. Optional. If not provided,
 *   it is inferred from `values`.
 * @param dtype The data type.
 *
 * @doc {heading: 'Tensors', subheading: 'Creation'}
 */
                function tensor5d(values, shape, dtype) {
                    assertNonNull(values);
                    if (shape != null && shape.length !== 5) {
                        throw new Error('tensor5d() requires shape to have five numbers');
                    }
                    const inferredShape = inferShape(values, dtype);
                    if (inferredShape.length !== 5 && inferredShape.length !== 1) {
                        throw new Error('tensor5d() requires values to be ' + 'number[][][][][] or flat/TypedArray');
                    }
                    if (inferredShape.length === 1 && shape == null) {
                        throw new Error('tensor5d() requires shape to be provided when `values` ' + 'are a flat array');
                    }
                    return makeTensor(values, shape, inferredShape, dtype);
                }
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Creates rank-6 `tf.Tensor` with the provided values, shape and dtype.
 *
 * The same functionality can be achieved with `tf.tensor`, but in general
 * we recommend using `tf.tensor6d` as it makes the code more readable.
 *
 *  ```js
 * // Pass a nested array.
 * tf.tensor6d([[[[[[1],[2]],[[3],[4]]],[[[5],[6]],[[7],[8]]]]]]).print();
 * ```
 * ```js
 * // Pass a flat array and specify a shape.
 * tf.tensor6d([1, 2, 3, 4, 5, 6, 7, 8], [1, 1, 2, 2, 2, 1]).print();
 * ```
 *
 * @param values The values of the tensor. Can be nested array of numbers,
 *     or a flat array, or a `TypedArray`.
 * @param shape The shape of the tensor. Optional. If not provided,
 *   it is inferred from `values`.
 * @param dtype The data type.
 *
 * @doc {heading: 'Tensors', subheading: 'Creation'}
 */
                function tensor6d(values, shape, dtype) {
                    assertNonNull(values);
                    if (shape != null && shape.length !== 6) {
                        throw new Error('tensor6d() requires shape to have six numbers');
                    }
                    const inferredShape = inferShape(values, dtype);
                    if (inferredShape.length !== 6 && inferredShape.length !== 1) {
                        throw new Error('tensor6d() requires values to be number[][][][][][] or ' + 'flat/TypedArray');
                    }
                    if (inferredShape.length === 1 && shape == null) {
                        throw new Error('tensor6d() requires shape to be provided when `values` ' + 'are a flat array');
                    }
                    shape = shape || inferredShape;
                    return makeTensor(values, shape, inferredShape, dtype);
                }
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Finds the values and indices of the `k` largest entries along the last
 * dimension.
 *
 * If the input is a vector (rank=1), finds the k largest entries in the vector
 * and outputs their values and indices as vectors. Thus values[j] is the j-th
 * largest entry in input, and its index is indices[j].
 * For higher rank inputs, computes the top k entries along the last dimension.
 *
 * If two elements are equal, the lower-index element appears first.
 *
 * ```js
 * const a = tf.tensor2d([[1, 5], [4, 3]]);
 * const {values, indices} = tf.topk(a);
 * values.print();
 * indices.print();
 * ```
 * @param x 1-D or higher `tf.Tensor` with last dimension being at least `k`.
 * @param k Number of top elements to look for along the last dimension.
 * @param sorted If true, the resulting `k` elements will be sorted by the
 *     values in descending order.
 *
 * @doc {heading: 'Operations', subheading: 'Evaluation'}
 */
                function topk_(x, k = 1, sorted = true) {
                    const $x = convertToTensor(x, 'x', 'topk');
                    if ($x.rank === 0) {
                        throw new Error('topk() expects the input to be of rank 1 or higher');
                    }
                    const lastDim = $x.shape[$x.shape.length - 1];
                    if (k < 0) {
                        throw new Error(`'k' passed to topk() must be >= 0 but got ${k}`);
                    }
                    if (k > lastDim) {
                        throw new Error(`'k' passed to topk() must be <= the last dimension (${lastDim}) ` + `but got ${k}`);
                    }
                    const inputs = {
                        x: $x
                    };
                    const attrs = {
                        k,
                        sorted
                    };
                    const [values, indices] = ENGINE.runKernel(TopK, inputs, attrs);
                    return {
                        values,
                        indices
                    };
                }
                const topk = op({
                    topk_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Creates a `tf.Tensor` with values sampled from a truncated normal
 * distribution.
 *
 * ```js
 * tf.truncatedNormal([2, 2]).print();
 * ```
 *
 * The generated values follow a normal distribution with specified mean and
 * standard deviation, except that values whose magnitude is more than 2
 * standard deviations from the mean are dropped and re-picked.
 *
 * @param shape An array of integers defining the output tensor shape.
 * @param mean The mean of the normal distribution.
 * @param stdDev The standard deviation of the normal distribution.
 * @param dtype The data type of the output tensor.
 * @param seed The seed for the random number generator.
 *
 * @doc {heading: 'Tensors', subheading: 'Creation'}
 */
                function truncatedNormal_(shape, mean = 0, stdDev = 1, dtype, seed) {
                    assertNonNegativeIntegerDimensions(shape);
                    if (dtype != null && dtype === 'bool') {
                        throw new Error(`Unsupported data type $ { dtype }`);
                    }
                    const randGauss = new MPRandGauss(mean, stdDev, dtype, true /* truncated */
                        , seed);
                    const res = buffer(shape, dtype);
                    for (let i = 0; i < res.values.length; i++) {
                        res.values[i] = randGauss.nextValue();
                    }
                    return res.toTensor();
                }
                const truncatedNormal = op({
                    truncatedNormal_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Finds unique elements along an axis of a tensor.
 *
 * It returns a tensor `values` containing all of the unique elements along the
 * `axis` of the given tensor `x` in the same order that they occur along the
 * `axis` in `x`; `x` does not need to be sorted. It also returns a tensor
 * `indices` the same size as the number of the elements in `x` along the `axis`
 * dimension. It contains the index in the unique output `values`.
 *
 * ```js
 * // A 1-D tensor
 * const a = tf.tensor1d([1, 1, 2, 4, 4, 4, 7, 8, 8]);
 * const {values, indices} = tf.unique(a);
 * values.print();   // [1, 2, 4, 7, 8,]
 * indices.print();  // [0, 0, 1, 2, 2, 2, 3, 4, 4]
 * ```
 *
 * ```js
 * // A 2-D tensor with axis=0
 * //
 * // 'a' is: [[1, 0, 0],
 * //          [1, 0, 0],
 * //          [2, 0, 0]]
 * const a = tf.tensor2d([[1, 0, 0], [1, 0, 0], [2, 0, 0]]);
 * const {values, indices} = tf.unique(a, 0)
 * values.print();   // [[1, 0, 0],
 *                   //  [2, 0, 0]]
 * indices.print();  // [0, 0, 1]
 * ```
 *
 * ```js
 * // A 2-D tensor with axis=1
 * //
 * // 'a' is: [[1, 0, 0],
 * //          [1, 0, 0],
 * //          [2, 0, 0]]
 * const a = tf.tensor2d([[1, 0, 0], [1, 0, 0], [2, 0, 0]]);
 * const {values, indices} = tf.unique(a, 1)
 * values.print();   // [[1, 0],
 *                   //  [1, 0],
 *                   //  [2, 0]]
 * indices.print();  // [0, 1, 1]
 * ```
 * @param x A tensor (int32, string, bool).
 * @param axis The axis of the tensor to find the unique elements.
 * @returns [uniqueElements, indices] (see above for details)
 *
 * @doc {heading: 'Operations', subheading: 'Evaluation'}
 */
                function unique_(x, axis = 0) {
                    const $x = convertToTensor(x, 'x', 'unique', 'string_or_numeric');
                    assert($x.rank > 0, () => 'The input tensor must be at least 1D');
                    const inputs = {
                        x: $x
                    };
                    const attrs = {
                        axis
                    };
                    const [values, indices] = ENGINE.runKernel(Unique, inputs, attrs);
                    return {
                        values,
                        indices
                    };
                }
                const unique = op({
                    unique_
                });
                /**
 * @license
 * Copyright 2022 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Searches for where a value would go in a sorted sequence.
 *
 * This is not a method for checking containment (like javascript in).
 *
 * The typical use case for this operation is "binning", "bucketing", or
 * "discretizing". The values are assigned to bucket-indices based on the edges
 * listed in 'sortedSequence'. This operation returns the bucket-index for each
 * value.
 *
 * The index returned corresponds to the first edge greater than the value.
 *
 * The axis is not settable for this operation. It always operates on the
 * innermost dimension (axis=-1). The operation will accept any number of outer
 * dimensions.
 *
 * Note: This operation assumes that 'upperBound' is sorted along the
 * innermost axis, maybe using 'sort(..., axis=-1)'. If the sequence is not
 * sorted no error is raised and the content of the returned tensor is not well
 * defined.
 *
 * ```js
 * const seq = tf.tensor1d([0, 3, 9, 10, 10]);
 * const values = tf.tensor1d([0, 4, 10]);
 * const result = tf.upperBound(seq, values);
 * result.print(); // [1, 2, 5]
 * ```
 * @param sortedSequence: N-D. Sorted sequence.
 * @param values: N-D. Search values.
 * @return An N-D int32 tensor the size of values containing the result of
 *     applying upper bound to each value. The result is not a global index to
 *     the entire Tensor, but the index in the last dimension.
 * @doc {heading: 'Operations', subheading: 'Evaluation'}
 */
                function upperBound(sortedSequence, values) {
                    return searchSorted(sortedSequence, values, 'right');
                }
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Creates a new variable with the provided initial value.
 * ```js
 * const x = tf.variable(tf.tensor([1, 2, 3]));
 * x.assign(tf.tensor([4, 5, 6]));
 *
 * x.print();
 * ```
 *
 * @param initialValue Initial value for the tensor.
 * @param trainable If true, optimizers are allowed to update it.
 * @param name Name of the variable. Defaults to a unique id.
 * @param dtype If set, initialValue will be converted to the given type.
 *
 * @doc {heading: 'Tensors', subheading: 'Creation'}
 */
                function variable(initialValue, trainable = true, name, dtype) {
                    return ENGINE.makeVariable(initialValue, trainable, name, dtype);
                }
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                function whereImpl(condShape, condVals) {
                    const indices = [];
                    for (let i = 0; i < condVals.length; i++) {
                        if (condVals[i]) {
                            indices.push(i);
                        }
                    }
                    const inBuffer = buffer(condShape, 'int32');
                    const out = buffer([indices.length, condShape.length], 'int32');
                    for (let i = 0; i < indices.length; i++) {
                        const loc = inBuffer.indexToLoc(indices[i]);
                        const offset = i * condShape.length;
                        out.values.set(loc, offset);
                    }
                    return out.toTensor();
                }
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Returns the coordinates of true elements of condition.
 *
 * The coordinates are returned in a 2-D tensor where the first dimension (rows)
 * represents the number of true elements, and the second dimension (columns)
 * represents the coordinates of the true elements. Keep in mind, the shape of
 * the output tensor can vary depending on how many true values there are in
 * input. Indices are output in row-major order. The resulting tensor has the
 * shape `[numTrueElems, condition.rank]`.
 *
 * This is analogous to calling the python `tf.where(cond)` without an x or y.
 *
 * ```js
 * const cond = tf.tensor1d([false, false, true], 'bool');
 * const result = await tf.whereAsync(cond);
 * result.print();
 * ```
 *
 * @doc {heading: 'Operations', subheading: 'Logical'}
 */
                async function whereAsync_(condition) {
                    const $condition = convertToTensor(condition, 'condition', 'whereAsync', 'bool');
                    const vals = await $condition.data();
                    const res = whereImpl($condition.shape, vals);
                    if (condition !== $condition) {
                        $condition.dispose();
                    }
                    return res;
                }
                const whereAsync = whereAsync_;
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Apply boolean mask to tensor.
 *
 * ```js
 * const tensor = tf.tensor2d([1, 2, 3, 4, 5, 6], [3, 2]);
 * const mask = tf.tensor1d([1, 0, 1], 'bool');
 * const result = await tf.booleanMaskAsync(tensor, mask);
 * result.print();
 * ```
 *
 * @param tensor N-D tensor.
 * @param mask K-D boolean tensor, K <= N and K must be known statically.
 * @param axis A 0-D int Tensor representing the axis in tensor to mask from.
 *     By default, axis is 0 which will mask from the first dimension.
 *     Otherwise K + axis <= N.
 *
 * @doc {heading: 'Tensors', subheading: 'Slicing and Joining'}
 */
                async function booleanMaskAsync_(tensor, mask, axis) {
                    const $tensor = convertToTensor(tensor, 'tensor', 'boolMask');
                    const $mask = convertToTensor(mask, 'mask', 'boolMask', 'bool');
                    const axisFrom = axis == null ? 0 : axis;
                    const maskDim = $mask.rank;
                    const tensorShape = $tensor.shape;
                    assert(maskDim > 0, () => 'mask cannot be scalar');
                    assertShapesMatch(tensorShape.slice(axisFrom, axisFrom + maskDim), $mask.shape, `mask's shape must match the first K dimensions of tensor's shape,`);
                    let leadingSize = 1;
                    for (let i = axisFrom; i < axisFrom + maskDim; i++) {
                        leadingSize *= tensorShape[i];
                    }
                    const targetTensorShape = tensorShape.slice(0, axisFrom).concat([leadingSize], tensorShape.slice(axisFrom + maskDim));
                    const reshapedTensor = reshape($tensor, targetTensorShape);
                    const reshapedMask = reshape($mask, [-1]);
                    const positivePositions = await whereAsync(reshapedMask);
                    const indices = squeeze(positivePositions, [1]);
                    const res = gather(reshapedTensor, indices, axisFrom);
                    // Ensure no memory leak.
                    if (tensor !== $tensor) {
                        $tensor.dispose();
                    }
                    if (mask !== $mask) {
                        $mask.dispose();
                    }
                    indices.dispose();
                    reshapedTensor.dispose();
                    reshapedMask.dispose();
                    positivePositions.dispose();
                    return res;
                }
                const booleanMaskAsync = booleanMaskAsync_;
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Compute the moving average of a variable.
 *
 * Without zeroDebias, the moving average operation is defined by:
 *   `v += delta`
 * where
 *   `delta = (1 - decay) * (x - v)`
 *
 * With zeroDebias (default), the `delta` term is scaled to debias the
 * effect of the (assumed) zero-initialization of `v`.
 *   `delta /= (1 - decay ^ step)`
 *
 * For more details on the zero-debiasing algorithm, see:
 *   https://arxiv.org/abs/1412.6980
 *
 * Note that this function is completely stateless and does not keep track of
 * step count. The step count needs to be maintained by the caller and passed
 * in as `step`.
 *
 * @param v The current moving average value.
 * @param x New input value, must have the same shape and dtype as `v`.
 * @param decay The decay factor. Typical values are 0.95 and 0.99.
 * @param step Step count.
 * @param zeroDebias: Whether zeroDebias is to be performed (default: `true`).
 * @returns The new moving average value.
 *
 * @doc {heading: 'Operations', subheading: 'Moving Average'}
 */
                function movingAverage_(v, x, decay, step, zeroDebias = true) {
                    const $v = convertToTensor(v, 'v', 'movingAverage');
                    const $x = convertToTensor(x, 'x', 'movingAverage');
                    const $decay = convertToTensor(decay, 'decay', 'movingAverage');
                    assertTypesMatch($v, $x);
                    assert(arraysEqual($v.shape, $x.shape), () => 'Shape mismatch in v and x');
                    const one = scalar(1);
                    const oneMinusDecay = sub(one, $decay);
                    let update = mul(sub($x, $v), oneMinusDecay);
                    if (zeroDebias) {
                        assert(step != null, () => 'When using zeroDebias: true, step is required.');
                        const $step = convertToTensor(step, 'step', 'movingAverage');
                        update = div(update, sub(one, pow($decay, $step)));
                    }
                    return add$1($v, update);
                }
                const movingAverage = op({
                    movingAverage_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Creates a new tensor by applying sparse updates to individual
 * values or slices within a zero tensor of the given shape tensor according to
 * indices. This operator is the inverse of the `tf.gatherND` operator which
 * extracts values or slices from a given tensor.
 *
 * ```js
 * const indices = tf.tensor2d([4, 3, 1, 7], [4, 1], 'int32');
 * const updates = tf.tensor1d([9, 10, 11, 12]);
 * const shape = [8];
 * tf.scatterND(indices, updates, shape).print() //[0, 11, 0, 10, 9, 0, 0, 12]
 * ```
 *
 * @param indices The tensor contains the indices into the output tensor.
 * @param updates The tensor contains the value for the indices.
 * @param shape: The shape of the output tensor.
 *
 * @doc {heading: 'Operations', subheading: 'Slicing and Joining'}
 */
                function scatterND_(indices, updates, shape) {
                    assertNonNegativeIntegerDimensions(shape);
                    const $indices = convertToTensor(indices, 'indices', 'scatterND', 'int32');
                    const $updates = convertToTensor(updates, 'updates', 'scatterND');
                    validateInput($updates, $indices, shape);
                    const inputs = {
                        indices: $indices,
                        updates: $updates
                    };
                    const attrs = {
                        shape
                    };
                    // tslint:disable-next-line: no-unnecessary-type-assertion
                    return ENGINE.runKernel(ScatterNd, inputs, attrs);
                }
                const scatterND = op({
                    scatterND_
                });
                /**
 * Validate sparseToDense inputs.
 *
 * @param sparseIndices A 0-D, 1-D, or 2-D Tensor of type int32.
 * sparseIndices[i] contains the complete index where sparseValues[i] will be
 * placed.
 * @param sparseValues A 0-D or 1-D Tensor. Values
 * corresponding to each row of sparseIndices, or a scalar value to be used for
 * all sparse indices.
 * @param outputShape number[]. Shape of the dense output tensor.
 * @param validateIndices boolean. indice validation is not supported, error
 * will be thrown if it is set.
 */
                function validateInput$1(sparseIndices, sparseValues, outputShape, defaultValues) {
                    if (sparseIndices.dtype !== 'int32') {
                        throw new Error('tf.sparseToDense() expects the indices to be int32 type,' + ` but the dtype was ${sparseIndices.dtype}.`);
                    }
                    if (sparseIndices.rank > 2) {
                        throw new Error('sparseIndices should be a scalar, vector, or matrix,' + ` but got shape ${sparseIndices.shape}.`);
                    }
                    const numElems = sparseIndices.rank > 0 ? sparseIndices.shape[0] : 1;
                    const numDims = sparseIndices.rank > 1 ? sparseIndices.shape[1] : 1;
                    if (outputShape.length !== numDims) {
                        throw new Error('outputShape has incorrect number of elements:,' + ` ${outputShape.length}, should be: ${numDims}.`);
                    }
                    const numValues = sparseValues.size;
                    if (!(sparseValues.rank === 0 || sparseValues.rank === 1 && numValues === numElems)) {
                        throw new Error('sparseValues has incorrect shape ' + `${sparseValues.shape}, should be [] or [${numElems}]`);
                    }
                    if (sparseValues.dtype !== defaultValues.dtype) {
                        throw new Error('sparseValues.dtype must match defaultValues.dtype');
                    }
                }
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Converts a sparse representation into a dense tensor.
 *
 * Builds an array dense with shape outputShape such that:
 *
 * // If sparseIndices is scalar
 * dense[i] = (i == sparseIndices ? sparseValues : defaultValue)
 *
 * // If sparseIndices is a vector, then for each i
 * dense[sparseIndices[i]] = sparseValues[i]
 *
 * // If sparseIndices is an n by d matrix, then for each i in [0, n)
 * dense[sparseIndices[i][0], ..., sparseIndices[i][d-1]] = sparseValues[i]
 * All other values in dense are set to defaultValue. If sparseValues is a
 * scalar, all sparse indices are set to this single value.
 *
 * If indices are repeated the final value is summed over all values for those
 * indices.
 *
 * ```js
 * const indices = tf.tensor1d([4, 5, 6, 1, 2, 3], 'int32');
 * const values = tf.tensor1d([10, 11, 12, 13, 14, 15], 'float32');
 * const shape = [8];
 * tf.sparseToDense(indices, values, shape).print();
 * ```
 *
 * @param sparseIndices A 0-D, 1-D, or 2-D Tensor of type int32.
 * sparseIndices[i] contains the complete index where sparseValues[i] will be
 * placed.
 * @param sparseValues A 0-D or 1-D Tensor. Values
 * corresponding to each row of sparseIndices, or a scalar value to be used for
 * all sparse indices.
 * @param outputShape Shape of the dense output tensor. The type is inferred.
 * @param defaultValue Scalar. Value to set for indices not specified in
 * sparseIndices. Defaults to zero.
 *
 * @doc {heading: 'Operations', subheading: 'Normalization'}
 */
                function sparseToDense_(sparseIndices, sparseValues, outputShape, defaultValue = 0) {
                    assertNonNegativeIntegerDimensions(outputShape);
                    const $sparseIndices = convertToTensor(sparseIndices, 'sparseIndices', 'sparseToDense', 'int32');
                    const $sparseValues = convertToTensor(sparseValues, 'sparseValues', 'sparseToDense', 'string_or_numeric');
                    const $defaultValue = convertToTensor(defaultValue, 'defaultValue', 'sparseToDense', $sparseValues.dtype);
                    validateInput$1($sparseIndices, $sparseValues, outputShape, $defaultValue);
                    const inputs = {
                        sparseIndices: $sparseIndices,
                        sparseValues: $sparseValues,
                        defaultValue: $defaultValue
                    };
                    const attrs = {
                        outputShape
                    };
                    return ENGINE.runKernel(SparseToDense, inputs, attrs);
                }
                const sparseToDense = op({
                    sparseToDense_
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Gather slices from input tensor into a Tensor with shape specified by
 * `indices`.
 *
 * `indices` is a K-dimensional integer tensor, best thought of as a
 * (K-1)-dimensional tensor of indices into input, where each element defines a
 * slice of input:
 * output[\\(i_0, ..., i_{K-2}\\)] = input[indices[\\(i_0, ..., i_{K-2}\\)]]
 *
 * Whereas in `tf.gather`, `indices` defines slices into the first dimension of
 * input, in `tf.gatherND`, `indices` defines slices into the first N dimensions
 * of input, where N = indices.shape[-1].
 *
 * The last dimension of indices can be at most the rank of input:
 * indices.shape[-1] <= input.rank
 *
 * The last dimension of `indices` corresponds to elements
 * (if indices.shape[-1] == input.rank) or slices
 * (if indices.shape[-1] < input.rank) along dimension indices.shape[-1] of
 * input.
 * The output tensor has shape
 * indices.shape[:-1] + input.shape[indices.shape[-1]:]
 *
 * Note that on CPU, if an out of bound index is found, an error is returned. On
 * GPU, if an out of bound index is found, a 0 is stored in the corresponding
 * output value.
 *
 * ```js
 * const indices = tf.tensor2d([0, 1, 1, 0], [2,2], 'int32');
 * const input = tf.tensor2d([9, 10, 11, 12], [2, 2]);
 * tf.gatherND(input, indices).print() // [10, 11]
 * ```
 *
 * @param x The tensor from which to gather values.
 * @param indices Index tensor, must be of type int32.
 *
 * @doc {heading: 'Operations', subheading: 'Slicing and Joining'}
 */
                function gatherND_(x, indices) {
                    const $indices = convertToTensor(indices, 'indices', 'gatherND', 'int32');
                    const $x = convertToTensor(x, 'x', 'gatherND', 'string_or_numeric');
                    const inputs = {
                        params: $x,
                        indices: $indices
                    };
                    return ENGINE.runKernel(GatherNd, inputs);
                }
                const gatherND = op({
                    gatherND_
                });
                /**
 * @license
 * Copyright 2019 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Normalize noise shape based on provided tensor and noise shape.
 *
 * @param x Tensor.
 * @param noiseShape The shape for the randomly generated keep/drop flags, as
 *   an array of numbers. Optional.
 * @returns Normalized noise shape.
 */
                function getNoiseShape(x, noiseShape) {
                    if (noiseShape == null) {
                        return x.shape.slice();
                    }
                    if (arraysEqual(x.shape, noiseShape)) {
                        return noiseShape;
                    }
                    if (x.shape.length === noiseShape.length) {
                        const newDimension = [];
                        for (let i = 0; i < x.shape.length; i++) {
                            if (noiseShape[i] == null && x.shape[i] != null) {
                                newDimension.push(x.shape[i]);
                            } else {
                                newDimension.push(noiseShape[i]);
                            }
                        }
                        return newDimension;
                    }
                    return noiseShape;
                }
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes dropout.
 *
 * ```js
 * const x = tf.tensor1d([1, 2, 2, 1]);
 * const rate = 0.75;
 * const output = tf.dropout(x, rate);
 * output.print();
 * ```
 *
 * @param x A floating point Tensor or TensorLike.
 * @param rate A float in the range [0, 1). The probability that each element
 *   of x is discarded.
 * @param noiseShape An array of numbers of type int32, representing the
 * shape for randomly generated keep/drop flags. If the noiseShape has null
 * value, it will be automatically replaced with the x's relative dimension
 * size. Optional.
 * @param seed Used to create random seeds. Optional.
 * @returns A Tensor of the same shape of x.
 *
 * @doc {heading: 'Operations', subheading: 'Dropout'}
 */
                function dropout_(x, rate, noiseShape, seed) {
                    const $x = convertToTensor(x, 'x', 'dropout');
                    assert($x.dtype === 'float32', () => `x has to be a floating point tensor since it's going to be ` + `scaled, but got a ${$x.dtype} tensor instead.`);
                    assert(rate >= 0 && rate < 1, () => `rate must be a float in the range [0, 1), but got ${rate}.`);
                    if (rate === 0) {
                        return x instanceof Tensor ? $x.clone() : $x;
                    }
                    const $noiseShape = getNoiseShape($x, noiseShape);
                    const keepProb = 1 - rate;
                    const multiplier = div(floor(add$1(randomUniform($noiseShape, 0, 1, 'float32', seed), keepProb)), keepProb);
                    return mul($x, multiplier);
                }
                const dropout = op({
                    dropout_
                });
                /**
 * @license
 * Copyright 2019 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                function enclosingPowerOfTwo(value) {
                    // Return 2**N for integer N such that 2**N >= value.
                    return Math.floor(Math.pow(2, Math.ceil(Math.log(value) / Math.log(2.0))));
                }
                function cosineWindow(windowLength, a, b) {
                    const even = 1 - windowLength % 2;
                    const newValues = new Float32Array(windowLength);
                    for (let i = 0; i < windowLength; ++i) {
                        const cosArg = 2.0 * Math.PI * i / (windowLength + even - 1);
                        newValues[i] = a - b * Math.cos(cosArg);
                    }
                    return tensor1d(newValues, 'float32');
                }
                /**
 * @license
 * Copyright 2019 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Returns whether the targets are in the top K predictions.
 *
 * ```js
 * const predictions = tf.tensor2d([[20, 10, 40, 30], [30, 50, -20, 10]]);
 * const targets = tf.tensor1d([2, 0]);
 * const precision = await tf.inTopKAsync(predictions, targets);
 * precision.print();
 * ```
 * @param predictions 2-D or higher `tf.Tensor` with last dimension being
 *     at least `k`.
 * @param targets 1-D or higher `tf.Tensor`.
 * @param k Optional Number of top elements to look at for computing precision,
 *     default to 1.
 *
 * @doc {heading: 'Operations', subheading: 'Evaluation'}
 */
                async function inTopKAsync_(predictions, targets, k = 1) {
                    const $predictions = convertToTensor(predictions, 'predictions', 'inTopK');
                    const $targets = convertToTensor(targets, 'targets', 'inTopK');
                    assert($predictions.rank > 1, () => 'inTopK() expects the predictions to be of rank 2 or higher, ' + `but got ${$predictions.rank}`);
                    assert($predictions.rank - 1 === $targets.rank, () => `predictions rank should be 1 larger than ` + `targets rank, but got predictions rank ` + `${$predictions.rank} and targets rank ${$targets.rank}`);
                    assertShapesMatch($predictions.shape.slice(0, $predictions.shape.length - 1), $targets.shape, `predictions's shape should be align with the targets' shape, ` + 'except the last dimension.');
                    const lastDim = $predictions.shape[$predictions.shape.length - 1];
                    assert(k > 0 && k <= lastDim, () => `'k' passed to inTopK() must be > 0 && <= the predictions last ` + `dimension (${lastDim}), but got ${k}`);
                    const predictionsVals = await $predictions.data();
                    const targetsVals = await $targets.data();
                    // Reshape predictionsVals into a 2d tensor [batch, lastDim]
                    // and look up topK along lastDim.
                    const [batch, size] = [predictionsVals.length / lastDim, lastDim];
                    const precision = getTypedArrayFromDType('bool', batch);
                    for (let b = 0; b < batch; b++) {
                        const offset = b * size;
                        const vals = predictionsVals.subarray(offset, offset + size);
                        const valAndInd = [];
                        for (let i = 0; i < vals.length; i++) {
                            valAndInd.push({
                                value: vals[i],
                                index: i
                            });
                        }
                        valAndInd.sort((a, b) => b.value - a.value);
                        precision[b] = 0;
                        for (let i = 0; i < k; i++) {
                            if (valAndInd[i].index === targetsVals[b]) {
                                precision[b] = 1;
                                break;
                            }
                        }
                    }
                    if (predictions !== $predictions) {
                        $predictions.dispose();
                    }
                    if (targets !== $targets) {
                        $targets.dispose();
                    }
                    // Output precision has the same shape as targets.
                    return tensor(precision, $targets.shape, 'bool');
                }
                const inTopKAsync = inTopKAsync_;
                /**
 * @license
 * Copyright 2019 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                // Returns gradient for fused activation.
                function getFusedDyActivation(dy, y, activation) {
                    if (activation == null || activation === 'linear') {
                        return dy;
                    }
                    if (activation === 'relu') {
                        return mul(dy, step(y));
                    }
                    throw new Error(`Cannot compute gradient for fused activation ${activation}.`);
                }
                // Returns gradient for fused bias.
                function getFusedBiasGradient(bias, dyActivation) {
                    let res = dyActivation;
                    const reduceAxes = getReductionAxes(bias.shape, dyActivation.shape);
                    if (reduceAxes.length > 0) {
                        res = sum$1(res, reduceAxes);
                    }
                    return reshape(res, bias.shape);
                }
                function applyActivation(x, activation, preluActivationWeights, leakyreluAlpha) {
                    if (activation === 'linear') {
                        return x;
                    } else if (activation === 'relu') {
                        return relu(x);
                    } else if (activation === 'elu') {
                        return elu(x);
                    } else if (activation === 'relu6') {
                        return relu6(x);
                    } else if (activation === 'prelu') {
                        return prelu(x, preluActivationWeights);
                    } else if (activation === 'leakyrelu') {
                        return leakyRelu(x, leakyreluAlpha);
                    } else if (activation === 'sigmoid') {
                        return sigmoid(x);
                    }
                    throw new Error(`Unknown fused activation ${activation}.`);
                }
                // Whether we should call fused ops.
                const shouldFuse = (gradientDepth, activation) => {
                    const gradientMode = gradientDepth > 0;
                    return !gradientMode || activation === 'linear';
                }
                    ;
                /**
 * @license
 * Copyright 2019 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes a 2D convolution over the input x, optionally fused with adding a
 * bias and applying an activation.
 *
 * ```js
 * const inputDepth = 2;
 * const inShape = [2, 2, 2, inputDepth];
 * const outputDepth = 2;
 * const fSize = 1;
 * const pad = 0;
 * const strides = 1;
 *
 * const x = tf.tensor4d( [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
 * 16], inShape);
 * const w = tf.tensor4d([-1, 1, -2, 0.5], [fSize, fSize, inputDepth,
 * outputDepth]);
 *
 * tf.fused.conv2d({ x, filter: w, strides, pad, dataFormat: 'NHWC',
 * dilations: [1, 1], bias: tf.scalar(5), activation: 'relu' }).print();
 * ```
 *
 * @param obj An object with the following properties:
 * @param x The input tensor, of rank 4 or rank 3, of shape
 *     `[batch, height, width, inChannels]`. If rank 3, batch of 1 is
 * assumed.
 * @param filter The filter, rank 4, of shape
 *     `[filterHeight, filterWidth, inDepth, outDepth]`.
 * @param strides The strides of the convolution: `[strideHeight,
 * strideWidth]`.
 * @param pad The type of padding algorithm.
 *   - `same` and stride 1: output will be of same size as input,
 *       regardless of filter size.
 *   - `valid` output will be smaller than input if filter is larger
 *       than 1x1.
 *   - For more info, see this guide:
 *     [https://www.tensorflow.org/api_docs/python/tf/nn/convolution](
 *          https://www.tensorflow.org/api_docs/python/tf/nn/convolution)
 * @param dataFormat An optional string from: "NHWC", "NCHW". Defaults to
 *     "NHWC". Specify the data format of the input and output data. With the
 *     default format "NHWC", the data is stored in the order of: [batch,
 *     height, width, channels]. Only "NHWC" is currently supported.
 * @param dilations The dilation rates: `[dilationHeight, dilationWidth]`
 *     in which we sample input values across the height and width dimensions
 *     in atrous convolution. Defaults to `[1, 1]`. If `dilations` is a single
 *     number, then `dilationHeight == dilationWidth`. If it is greater than
 *     1, then all values of `strides` must be 1.
 * @param dimRoundingMode A string from: 'ceil', 'round', 'floor'. If none is
 *     provided, it will default to truncate.
 * @param bias Tensor to be added to the result.
 * @param activation Name of activation kernel (defaults to `linear`) to be
 *     applied
 *      after biasAdd.
 * @param preluActivationWeights Tensor of prelu weights to be applied as part
 *     of a `prelu` activation, typically the same shape as `x`.
 * @param leakyreluAlpha Optional. Alpha to be applied as part of a `leakyrelu`
 *     activation.
 */
                function fusedConv2d_({ x, filter, strides, pad, dataFormat = 'NHWC', dilations = [1, 1], dimRoundingMode, bias, activation = 'linear', preluActivationWeights, leakyreluAlpha }) {
                    activation = activation || 'linear';
                    if (shouldFuse(ENGINE.state.gradientDepth, activation) === false) {
                        // TODO: Transpose bias and preluActivationWeights properly for NCHW
                        // format before computation.
                        assert(dataFormat === 'NHWC', () => `Error in fused conv2d: got dataFormat of ${dataFormat} but ` + `only NHWC is currently supported for the case of gradient depth ` + `is 0 and the activation is not linear.`);
                        let result = conv2d(x, filter, strides, pad, dataFormat, dilations, dimRoundingMode);
                        if (bias != null) {
                            result = add$1(result, bias);
                        }
                        return applyActivation(result, activation, preluActivationWeights, leakyreluAlpha);
                    }
                    const $x = convertToTensor(x, 'x', 'conv2d', 'float32');
                    const $filter = convertToTensor(filter, 'filter', 'conv2d', 'float32');
                    let x4D = $x;
                    let reshapedTo4D = false;
                    if ($x.rank === 3) {
                        reshapedTo4D = true;
                        x4D = reshape($x, [1, $x.shape[0], $x.shape[1], $x.shape[2]]);
                    }
                    assert(x4D.rank === 4, () => `Error in fused conv2d: input must be rank 4, but got rank ` + `${x4D.rank}.`);
                    assert($filter.rank === 4, () => `Error in fused conv2d: filter must be rank 4, but got rank ` + `${$filter.rank}.`);
                    checkPadOnDimRoundingMode('fused conv2d', pad, dimRoundingMode);
                    const inputChannels = dataFormat === 'NHWC' ? x4D.shape[3] : x4D.shape[1];
                    assert($filter.shape[2] === inputChannels, () => `Error in conv2d: depth of input (${inputChannels}) must match ` + `input depth for filter ${$filter.shape[2]}.`);
                    assert(eitherStridesOrDilationsAreOne(strides, dilations), () => 'Error in conv2D: Either strides or dilations must be 1. ' + `Got strides ${strides} and dilations '${dilations}'`);
                    const convInfo = computeConv2DInfo(x4D.shape, $filter.shape, strides, dilations, pad, dimRoundingMode);
                    let $bias;
                    if (bias != null) {
                        $bias = convertToTensor(bias, 'bias', 'fused conv2d');
                        [$bias] = makeTypesMatch($bias, $x);
                        // According to TensorFlow, the bias is supposed be a 1-D tensor or a
                        // scalar.
                        //
                        // 3-D or 4-D bias is not disabled for NHWC format, because they are
                        // currently being used in some cases. For examplem in our code base,
                        // https://github.com/tensorflow/tfjs/blob/b53bd47e880367ae57493f0ea628abaf08db2d5d/tfjs-core/src/ops/fused/fused_conv2d_test.ts#L1972.
                        if (dataFormat === 'NHWC') {
                            assertAndGetBroadcastShape(convInfo.outShape, $bias.shape);
                        } else {
                            assert($bias.shape.length <= 1, () => `Error in fused conv2d: only supports scalar or 1-D Tensor ` + `bias for NCHW format but got the bias of ` + `rank-${$bias.shape.length}.`);
                            assert($bias.shape.length === 0 || $bias.shape[0] === convInfo.outChannels || $bias.shape[0] === 1, () => `Error in fused conv2d: bias shape (${$bias.shape}) is not ` + `compatible with the number of output channels ` + `(${convInfo.outChannels})`);
                        }
                    }
                    let $preluActivationWeights;
                    if (preluActivationWeights != null) {
                        // PReLU's activation weights could be a scalar, a 1-D tensor or a 3-D
                        // tensor.
                        const alphaShape = preluActivationWeights.shape;
                        assert(alphaShape.length <= 1 || alphaShape.length === 3, () => `Error in fused conv2d: only supports scalar, 1-D Tensor or ` + `3-D Tensor PReLU activation weights but got a tensor of ` + `rank-${alphaShape.length}.`);
                        if (alphaShape.length === 1) {
                            // Whether the data format is NCHW or NHWC, the 1-D PReLU activation
                            // weights tensor should be aligned with the output channels of conv2d
                            // result.
                            assert(alphaShape[0] === 1 || alphaShape[0] === convInfo.outChannels, () => `Error in fused conv2d: PReLU activation weights ` + `(${alphaShape}) is not compatible with the number of output ` + `channels (${convInfo.outChannels}).`);
                        } else if (alphaShape.length === 3) {
                            // Whether the data format is NCHW or NHWC, the PReLU activation weights
                            // tensor should has the compatible shape with the result of conv2d.
                            try {
                                assertAndGetBroadcastShape(alphaShape, convInfo.outShape);
                            } catch (e) {
                                const errMsg = `Error in fused conv2d: PReLU activation weights (${alphaShape}) ` + `is not compatible with the output shape of the conv2d ` + `(${convInfo.outShape}).`;
                                throw Error(errMsg);
                            }
                        }
                        $preluActivationWeights = convertToTensor(preluActivationWeights, 'prelu weights', 'fused conv2d');
                    }
                    const grad = (dy, saved) => {
                        assert(dataFormat === 'NHWC', () => `Error in gradient of fused conv2D: got dataFormat of ${dataFormat} but only NHWC is currently supported.`);
                        const [$filter, x4D, y, $bias] = saved;
                        const dyActivation = getFusedDyActivation(dy, y, activation);
                        assert(tupleValuesAreOne(dilations), () => 'Error in gradient of fused conv2D: ' + `dilation rates greater than 1 ` + `are not yet supported in gradients. Got dilations '${dilations}'`);
                        const xDer = conv2DBackpropInput(x4D.shape, dyActivation, $filter, strides, pad);
                        const filterDer = conv2DBackpropFilter(x4D, dyActivation, $filter.shape, strides, pad);
                        const der = [xDer, filterDer];
                        if ($bias != null) {
                            const biasDer = getFusedBiasGradient($bias, dyActivation);
                            der.push(biasDer);
                        }
                        return der;
                    }
                        ;
                    const inputs = {
                        x: x4D,
                        filter: $filter,
                        bias: $bias,
                        preluActivationWeights: $preluActivationWeights
                    };
                    const attrs = {
                        strides,
                        pad,
                        dataFormat,
                        dilations,
                        dimRoundingMode,
                        activation,
                        leakyreluAlpha
                    };
                    // Depending on the the params passed in we will have different number of
                    // inputs and thus a a different number of elements in the gradient.
                    if (bias == null) {
                        const customOp = customGrad((x4D, filter, save) => {
                            let res = // tslint:disable-next-line: no-unnecessary-type-assertion
                                ENGINE.runKernel(FusedConv2D, inputs, attrs);
                            save([filter, x4D, res]);
                            if (reshapedTo4D) {
                                // tslint:disable-next-line: no-unnecessary-type-assertion
                                res = reshape(res, [res.shape[1], res.shape[2], res.shape[3]]);
                            }
                            return {
                                value: res,
                                gradFunc: grad
                            };
                        }
                        );
                        return customOp(x4D, $filter);
                    } else {
                        const customOpWithBias = customGrad((x4D, filter, bias, save) => {
                            let res = ENGINE.runKernel(FusedConv2D, inputs, attrs);
                            save([filter, x4D, res, bias]);
                            if (reshapedTo4D) {
                                // tslint:disable-next-line: no-unnecessary-type-assertion
                                res = reshape(res, [res.shape[1], res.shape[2], res.shape[3]]);
                            }
                            return {
                                value: res,
                                gradFunc: grad
                            };
                        }
                        );
                        return customOpWithBias(x4D, $filter, $bias);
                    }
                }
                const conv2d$1 = op({
                    fusedConv2d_
                });
                /**
 * @license
 * Copyright 2019 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes depthwise 2D convolution, optionally fused with adding a
 * bias and applying an activation.
 *
 * Given a 4D `input` array and a `filter` array of shape
 * `[filterHeight, filterWidth, inChannels, channelMultiplier]` containing
 * `inChannels` convolutional filters of depth 1, this op applies a
 * different filter to each input channel (expanding from 1 channel to
 * `channelMultiplier` channels for each), then concatenates the results
 * together. The output has `inChannels * channelMultiplier` channels.
 *
 * See
 * [https://www.tensorflow.org/api_docs/python/tf/nn/depthwise_conv2d](
 *     https://www.tensorflow.org/api_docs/python/tf/nn/depthwise_conv2d)
 * for more details.
 *
 * @param obj An object with the following properties:
 * @param x The input tensor, of rank 4 or rank 3, of shape
 *     `[batch, height, width, inChannels]`. If rank 3, batch of 1 is
 * assumed.
 * @param filter The filter tensor, rank 4, of shape
 *     `[filterHeight, filterWidth, inChannels, channelMultiplier]`.
 * @param strides The strides of the convolution: `[strideHeight,
 * strideWidth]`. If strides is a single number, then `strideHeight ==
 * strideWidth`.
 * @param pad The type of padding algorithm.
 *   - `same` and stride 1: output will be of same size as input,
 *       regardless of filter size.
 *   - `valid`: output will be smaller than input if filter is larger
 *       than 1x1.
 *   - For more info, see this guide:
 *     [https://www.tensorflow.org/api_docs/python/tf/nn/convolution](
 *          https://www.tensorflow.org/api_docs/python/tf/nn/convolution)
 * @param dilations The dilation rates: `[dilationHeight, dilationWidth]`
 *     in which we sample input values across the height and width dimensions
 *     in atrous convolution. Defaults to `[1, 1]`. If `rate` is a single
 *     number, then `dilationHeight == dilationWidth`. If it is greater than
 *     1, then all values of `strides` must be 1.
 * @param dataFormat: An optional string from: "NHWC", "NCHW". Defaults to
 *     "NHWC". Specify the data format of the input and output data. With the
 *     default format "NHWC", the data is stored in the order of: [batch,
 *     height, width, channels]. Only "NHWC" is currently supported.
 * @param dimRoundingMode A string from: 'ceil', 'round', 'floor'. If none is
 *     provided, it will default to truncate.
 * @param bias Tensor to be added to the result.
 * @param activation Name of activation kernel (defaults to `linear`).
 * @param preluActivationWeights Tensor of prelu weights to be applied as part
 *     of a `prelu` activation, typically the same shape as `x`.
 * @param leakyreluAlpha Optional. Alpha to be applied as part of a `leakyrelu`
 *     activation.
 */
                function fusedDepthwiseConv2d_({ x, filter, strides, pad, dataFormat = 'NHWC', dilations = [1, 1], dimRoundingMode, bias, activation = 'linear', preluActivationWeights, leakyreluAlpha }) {
                    if (shouldFuse(ENGINE.state.gradientDepth, activation) === false) {
                        let result = depthwiseConv2d(x, filter, strides, pad, dataFormat, dilations, dimRoundingMode);
                        if (bias != null) {
                            result = add$1(result, bias);
                        }
                        return applyActivation(result, activation, preluActivationWeights, leakyreluAlpha);
                    }
                    const $x = convertToTensor(x, 'x', 'depthwiseConv2d', 'float32');
                    const $filter = convertToTensor(filter, 'filter', 'depthwiseConv2d', 'float32');
                    let x4D = $x;
                    let reshapedTo4D = false;
                    if ($x.rank === 3) {
                        reshapedTo4D = true;
                        x4D = reshape($x, [1, $x.shape[0], $x.shape[1], $x.shape[2]]);
                    }
                    assert(x4D.rank === 4, () => `Error in fused depthwiseConv2d: input must be rank 4, but got ` + `rank ${x4D.rank}.`);
                    assert($filter.rank === 4, () => `Error in fused depthwiseConv2d: filter must be rank 4, ` + `but got rank ${$filter.rank}.`);
                    assert(x4D.shape[3] === $filter.shape[2], () => `Error in fused depthwiseConv2d: number of input channels ` + `(${x4D.shape[3]}) must match the inChannels dimension in ` + `filter ${$filter.shape[2]}.`);
                    if (dilations == null) {
                        dilations = [1, 1];
                    }
                    assert(eitherStridesOrDilationsAreOne(strides, dilations), () => 'Error in fused depthwiseConv2d: Either strides or dilations must ' + `be 1. Got strides ${strides} and dilations '${dilations}'`);
                    checkPadOnDimRoundingMode('fused depthwiseConv2d', pad, dimRoundingMode);
                    const convInfo = computeConv2DInfo(x4D.shape, $filter.shape, strides, dilations, pad, dimRoundingMode, true /* depthwise */
                    );
                    let $bias;
                    if (bias != null) {
                        $bias = convertToTensor(bias, 'bias', 'fused conv2d');
                        [$bias] = makeTypesMatch($bias, $x);
                        assertAndGetBroadcastShape(convInfo.outShape, $bias.shape);
                    }
                    let $preluActivationWeights;
                    if (preluActivationWeights != null) {
                        $preluActivationWeights = convertToTensor(preluActivationWeights, 'prelu weights', 'fused depthwiseConv2d');
                    }
                    const grad = (dy, saved) => {
                        assert(tupleValuesAreOne(dilations), () => 'Error in gradient of fused depthwiseConv2d: dilation rates ' + `greater than 1 are not yet supported. Got dilations ` + `'${dilations}'`);
                        const [$filter, x4D, y, bias] = saved;
                        const dyActivation = getFusedDyActivation(dy, y, activation);
                        const xDer = depthwiseConv2dNativeBackpropInput(x4D.shape, dyActivation, $filter, strides, pad, dilations, dimRoundingMode);
                        const filterDer = depthwiseConv2dNativeBackpropFilter(x4D, dyActivation, $filter.shape, strides, pad, dilations, dimRoundingMode);
                        if (bias != null) {
                            const biasDer = getFusedBiasGradient($bias, dyActivation);
                            return [xDer, filterDer, biasDer];
                        }
                        return [xDer, filterDer];
                    }
                        ;
                    const inputs = {
                        x: x4D,
                        filter: $filter,
                        bias: $bias,
                        preluActivationWeights: $preluActivationWeights
                    };
                    const attrs = {
                        strides,
                        pad,
                        dataFormat,
                        dilations,
                        dimRoundingMode,
                        activation,
                        leakyreluAlpha
                    };
                    // Depending on the the params passed in we will have different number of
                    // inputs and thus a a different number of elements in the gradient.
                    if (bias == null) {
                        const customOp = customGrad((x4D, filter, save) => {
                            // tslint:disable-next-line: no-unnecessary-type-assertion
                            let res = ENGINE.runKernel(FusedDepthwiseConv2D, inputs, attrs);
                            save([filter, x4D, res]);
                            if (reshapedTo4D) {
                                // tslint:disable-next-line: no-unnecessary-type-assertion
                                res = reshape(res, [res.shape[1], res.shape[2], res.shape[3]]);
                            }
                            return {
                                value: res,
                                gradFunc: grad
                            };
                        }
                        );
                        return customOp(x4D, $filter);
                    } else {
                        const customOpWithBias = customGrad((x4D, filter, bias, save) => {
                            // tslint:disable-next-line: no-unnecessary-type-assertion
                            let res = ENGINE.runKernel(FusedDepthwiseConv2D, inputs, attrs);
                            save([filter, x4D, res, bias]);
                            if (reshapedTo4D) {
                                // tslint:disable-next-line: no-unnecessary-type-assertion
                                res = reshape(res, [res.shape[1], res.shape[2], res.shape[3]]);
                            }
                            return {
                                value: res,
                                gradFunc: grad
                            };
                        }
                        );
                        return customOpWithBias(x4D, $filter, $bias);
                    }
                }
                const depthwiseConv2d$1 = op({
                    fusedDepthwiseConv2d_
                });
                /**
 * @license
 * Copyright 2019 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the dot product of two matrices with optional activation and bias.
 *
 * ```js
 * const a = tf.tensor2d([-1, -2], [1, 2]);
 * const b = tf.tensor2d([1, 2, 3, 4], [2, 2]);
 * const bias = tf.tensor2d([1, 2], [1, 2]);
 *
 * tf.fused.matMul({a, b, bias, activation: 'relu'}).print();
 * ```
 *
 * @param obj An object with the following properties:
 * - `a` First matrix in dot product operation.
 * - `b` Second matrix in dot product operation.
 * - `transposeA` If true, `a` is transposed before multiplication.
 * - `transposeB` If true, `b` is transposed before multiplication.
 * - `bias` Matrix to be added to the result.
 * - `activation` Name of activation kernel (defaults to `linear`).
 * - `preluActivationWeights` Tensor of prelu weights.
 * - `leakyreluAlpha` Alpha of leakyrelu.
 */
                function fusedMatMul_({ a, b, transposeA = false, transposeB = false, bias, activation = 'linear', preluActivationWeights, leakyreluAlpha = 0.2 }) {
                    if (shouldFuse(ENGINE.state.gradientDepth, activation) === false) {
                        let result = matMul(a, b, transposeA, transposeB);
                        if (bias != null) {
                            result = add$1(result, bias);
                        }
                        return applyActivation(result, activation, preluActivationWeights, leakyreluAlpha);
                    }
                    let $a = convertToTensor(a, 'a', 'fused matMul');
                    let $b = convertToTensor(b, 'b', 'fused matMul');
                    [$a, $b] = makeTypesMatch($a, $b);
                    const innerShapeA = transposeA ? $a.shape[$a.rank - 2] : $a.shape[$a.rank - 1];
                    const innerShapeB = transposeB ? $b.shape[$b.rank - 1] : $b.shape[$b.rank - 2];
                    const outerShapeA = transposeA ? $a.shape[$a.rank - 1] : $a.shape[$a.rank - 2];
                    const outerShapeB = transposeB ? $b.shape[$b.rank - 2] : $b.shape[$b.rank - 1];
                    const outerDimsA = $a.shape.slice(0, -2);
                    const outerDimsB = $b.shape.slice(0, -2);
                    const batchDimA = sizeFromShape(outerDimsA);
                    const batchDimB = sizeFromShape(outerDimsB);
                    assert(innerShapeA === innerShapeB, () => `Error in fused matMul: inner shapes (${innerShapeA}) and (` + `${innerShapeB}) of Tensors with shapes ${$a.shape} and ` + `${$b.shape} and transposeA=${transposeA}` + ` and transposeB=${transposeB} must match.`);
                    const outShapeOuterDims = assertAndGetBroadcastShape($a.shape.slice(0, -2), $b.shape.slice(0, -2));
                    const outShape = outShapeOuterDims.concat([outerShapeA, outerShapeB]);
                    const a3D = transposeA ? reshape($a, [batchDimA, innerShapeA, outerShapeA]) : reshape($a, [batchDimA, outerShapeA, innerShapeA]);
                    const b3D = transposeB ? reshape($b, [batchDimB, outerShapeB, innerShapeB]) : reshape($b, [batchDimB, innerShapeB, outerShapeB]);
                    let $bias;
                    if (bias != null) {
                        $bias = convertToTensor(bias, 'bias', 'fused matMul');
                        [$bias] = makeTypesMatch($bias, $a);
                        assertAndGetBroadcastShape(outShape, $bias.shape);
                    }
                    let $preluActivationWeights;
                    if (preluActivationWeights != null) {
                        $preluActivationWeights = convertToTensor(preluActivationWeights, 'prelu weights', 'fused matMul');
                    }
                    const grad = (dy, saved) => {
                        const [a3D, b3D, y, $bias] = saved;
                        // we reshape dy because the result of the forward is not
                        // necessarily going to be a 3d tensor due to a reshape done at the end of
                        // the customOp.
                        const dyActivation = getFusedDyActivation(reshape(dy, y.shape), y, activation);
                        let aDer;
                        let bDer;
                        if (!transposeA && !transposeB) {
                            aDer = matMul(dyActivation, b3D, false, true);
                            bDer = matMul(a3D, dyActivation, true, false);
                        } else if (!transposeA && transposeB) {
                            aDer = matMul(dyActivation, b3D, false, false);
                            bDer = matMul(dyActivation, a3D, true, false);
                        } else if (transposeA && !transposeB) {
                            aDer = matMul(b3D, dyActivation, false, true);
                            bDer = matMul(a3D, dyActivation, false, false);
                        } else {
                            aDer = matMul(b3D, dyActivation, true, true);
                            bDer = matMul(dyActivation, a3D, true, true);
                        }
                        if (bias != null) {
                            const biasDer = getFusedBiasGradient($bias, dyActivation);
                            return [aDer, bDer, biasDer];
                        } else {
                            return [aDer, bDer];
                        }
                    }
                        ;
                    const inputs = {
                        a: a3D,
                        b: b3D,
                        bias: $bias,
                        preluActivationWeights: $preluActivationWeights
                    };
                    const attrs = {
                        transposeA,
                        transposeB,
                        activation,
                        leakyreluAlpha
                    };
                    // Depending on the the params passed in we will have different number of
                    // inputs and thus a a different number of elements in the gradient.
                    if (bias == null) {
                        const customOp = customGrad((a3D, b3D, save) => {
                            const res = // tslint:disable-next-line: no-unnecessary-type-assertion
                                ENGINE.runKernel(_FusedMatMul, inputs, attrs);
                            save([a3D, b3D, res]);
                            return {
                                value: reshape(res, outShape),
                                gradFunc: grad
                            };
                        }
                        );
                        return customOp(a3D, b3D);
                    } else {
                        const customOpWithBias = customGrad((a3D, b3D, $bias, save) => {
                            const res = // tslint:disable-next-line: no-unnecessary-type-assertion
                                ENGINE.runKernel(_FusedMatMul, inputs, attrs);
                            save([a3D, b3D, res, $bias]);
                            return {
                                value: reshape(res, outShape),
                                gradFunc: grad
                            };
                        }
                        );
                        return customOpWithBias(a3D, b3D, $bias);
                    }
                }
                const matMul$1 = op({
                    fusedMatMul_
                });
                /**
 * @license
 * Copyright 2019 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * @license
 * Copyright 2019 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Generate a hamming window.
 *
 * See: https://en.wikipedia.org/wiki/Window_function#Hann_and_Hamming_windows
 *
 * ```js
 * tf.signal.hammingWindow(10).print();
 * ```
 * @param The length of window
 *
 * @doc {heading: 'Operations', subheading: 'Signal', namespace: 'signal'}
 */
                function hammingWindow_(windowLength) {
                    return cosineWindow(windowLength, 0.54, 0.46);
                }
                const hammingWindow = op({
                    hammingWindow_
                });
                /**
 * @license
 * Copyright 2019 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Generate a Hann window.
 *
 * See: https://en.wikipedia.org/wiki/Window_function#Hann_and_Hamming_windows
 *
 * ```js
 * tf.signal.hannWindow(10).print();
 * ```
 * @param The length of window
 *
 * @doc {heading: 'Operations', subheading: 'Signal', namespace: 'signal'}
 */
                function hannWindow_(windowLength) {
                    return cosineWindow(windowLength, 0.5, 0.5);
                }
                const hannWindow = op({
                    hannWindow_
                });
                /**
 * @license
 * Copyright 2019 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Expands input into frames of frameLength.
 * Slides a window size with frameStep.
 *
 * ```js
 * tf.signal.frame([1, 2, 3], 2, 1).print();
 * ```
 * @param signal The input tensor to be expanded
 * @param frameLength Length of each frame
 * @param frameStep The frame hop size in samples.
 * @param padEnd Whether to pad the end of signal with padValue.
 * @param padValue A number to use where the input signal does
 *     not exist when padEnd is True.
 *
 * @doc {heading: 'Operations', subheading: 'Signal', namespace: 'signal'}
 */
                function frame_(signal, frameLength, frameStep, padEnd = false, padValue = 0) {
                    let start = 0;
                    const output = [];
                    while (start + frameLength <= signal.size) {
                        output.push(slice(signal, start, frameLength));
                        start += frameStep;
                    }
                    if (padEnd) {
                        while (start < signal.size) {
                            const padLen = start + frameLength - signal.size;
                            const pad = concat([slice(signal, start, frameLength - padLen), fill([padLen], padValue)]);
                            output.push(pad);
                            start += frameStep;
                        }
                    }
                    if (output.length === 0) {
                        return tensor2d([], [0, frameLength]);
                    }
                    return reshape(concat(output), [output.length, frameLength]);
                }
                const frame = op({
                    frame_
                });
                /**
 * @license
 * Copyright 2019 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the Short-time Fourier Transform of signals
 * See: https://en.wikipedia.org/wiki/Short-time_Fourier_transform
 *
 * ```js
 * const input = tf.tensor1d([1, 1, 1, 1, 1])
 * tf.signal.stft(input, 3, 1).print();
 * ```
 * @param signal 1-dimensional real value tensor.
 * @param frameLength The window length of samples.
 * @param frameStep The number of samples to step.
 * @param fftLength The size of the FFT to apply.
 * @param windowFn A callable that takes a window length and returns 1-d tensor.
 *
 * @doc {heading: 'Operations', subheading: 'Signal', namespace: 'signal'}
 */
                function stft_(signal, frameLength, frameStep, fftLength, windowFn = hannWindow) {
                    if (fftLength == null) {
                        fftLength = enclosingPowerOfTwo(frameLength);
                    }
                    const framedSignal = frame(signal, frameLength, frameStep);
                    const windowedSignal = mul(framedSignal, windowFn(frameLength));
                    return rfft(windowedSignal, fftLength);
                }
                const stft = op({
                    stft_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Extracts crops from the input image tensor and resizes them using bilinear
 * sampling or nearest neighbor sampling (possibly with aspect ratio change)
 * to a common output size specified by cropSize.
 *
 * @param image 4d tensor of shape `[batch,imageHeight,imageWidth, depth]`,
 *     where imageHeight and imageWidth must be positive, specifying the
 *     batch of images from which to take crops
 * @param boxes 2d float32 tensor of shape `[numBoxes, 4]`. Each entry is
 *     `[y1, x1, y2, x2]`, where `(y1, x1)` and `(y2, x2)` are the normalized
 *     coordinates of the box in the `boxInd[i]`th image in the batch
 * @param boxInd 1d int32 tensor of shape `[numBoxes]` with values in range
 *     `[0, batch)` that specifies the image that the `i`-th box refers to.
 * @param cropSize 1d int32 tensor of 2 elements `[cropHeigh, cropWidth]`
 *     specifying the size to which all crops are resized to.
 * @param method Optional string from `'bilinear' | 'nearest'`,
 *     defaults to bilinear, which specifies the sampling method for resizing
 * @param extrapolationValue A threshold for deciding when to remove boxes based
 *     on score. Defaults to 0.
 * @return A 4D tensor of the shape `[numBoxes,cropHeight,cropWidth,depth]`
 *
 * @doc {heading: 'Operations', subheading: 'Images', namespace: 'image'}
 */
                function cropAndResize_(image, boxes, boxInd, cropSize, method = 'bilinear', extrapolationValue = 0) {
                    const $image = convertToTensor(image, 'image', 'cropAndResize');
                    const $boxes = convertToTensor(boxes, 'boxes', 'cropAndResize', 'float32');
                    const $boxInd = convertToTensor(boxInd, 'boxInd', 'cropAndResize', 'int32');
                    const numBoxes = $boxes.shape[0];
                    assert($image.rank === 4, () => 'Error in cropAndResize: image must be rank 4,' + `but got rank ${$image.rank}.`);
                    assert($boxes.rank === 2 && $boxes.shape[1] === 4, () => `Error in cropAndResize: boxes must be have size [${numBoxes},4] ` + `but had shape ${$boxes.shape}.`);
                    assert($boxInd.rank === 1 && $boxInd.shape[0] === numBoxes, () => `Error in cropAndResize: boxInd must be have size [${numBoxes}] ` + `but had shape ${$boxes.shape}.`);
                    assert(cropSize.length === 2, () => `Error in cropAndResize: cropSize must be of length 2, but got ` + `length ${cropSize.length}.`);
                    assert(cropSize[0] >= 1 && cropSize[1] >= 1, () => `cropSize must be atleast [1,1], but was ${cropSize}`);
                    assert(method === 'bilinear' || method === 'nearest', () => `method must be bilinear or nearest, but was ${method}`);
                    const inputs = {
                        image: $image,
                        boxes: $boxes,
                        boxInd: $boxInd
                    };
                    const attrs = {
                        method,
                        extrapolationValue,
                        cropSize
                    };
                    const res = ENGINE.runKernel(CropAndResize, inputs, attrs);
                    return res;
                }
                const cropAndResize = op({
                    cropAndResize_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Flips the image left to right. Currently available in the CPU, WebGL, and
 * WASM backends.
 *
 * @param image 4d tensor of shape `[batch, imageHeight, imageWidth, depth]`.
 */
                /** @doc {heading: 'Operations', subheading: 'Images', namespace: 'image'} */
                function flipLeftRight_(image) {
                    const $image = convertToTensor(image, 'image', 'flipLeftRight', 'float32');
                    assert($image.rank === 4, () => 'Error in flipLeftRight: image must be rank 4,' + `but got rank ${$image.rank}.`);
                    const inputs = {
                        image: $image
                    };
                    const res = ENGINE.runKernel(FlipLeftRight, inputs, {});
                    return res;
                }
                const flipLeftRight = op({
                    flipLeftRight_
                });
                /**
 * @license
 * Copyright 2021 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Converts images from grayscale to RGB format.
 *
 * @param image A grayscale tensor to convert. The `image`'s last dimension must
 *     be size 1 with at least a two-dimensional shape.
 *
 * @doc {heading: 'Operations', subheading: 'Images', namespace: 'image'}
 */
                function grayscaleToRGB_(image) {
                    const $image = convertToTensor(image, 'image', 'grayscaleToRGB');
                    const lastDimsIdx = $image.rank - 1;
                    const lastDims = $image.shape[lastDimsIdx];
                    assert($image.rank >= 2, () => 'Error in grayscaleToRGB: images must be at least rank 2, ' + `but got rank ${$image.rank}.`);
                    assert(lastDims === 1, () => 'Error in grayscaleToRGB: last dimension of a grayscale image ' + `should be size 1, but got size ${lastDims}.`);
                    const reps = new Array($image.rank);
                    reps.fill(1, 0, lastDimsIdx);
                    reps[lastDimsIdx] = 3;
                    return tile($image, reps);
                }
                const grayscaleToRGB = op({
                    grayscaleToRGB_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Rotates the input image tensor counter-clockwise with an optional offset
 * center of rotation. Currently available in the CPU, WebGL, and WASM backends.
 *
 * @param image 4d tensor of shape `[batch, imageHeight, imageWidth, depth]`.
 * @param radians The amount of rotation.
 * @param fillValue The value to fill in the empty space leftover
 *     after rotation. Can be either a single grayscale value (0-255), or an
 *     array of three numbers `[red, green, blue]` specifying the red, green,
 *     and blue channels. Defaults to `0` (black).
 * @param center The center of rotation. Can be either a single value (0-1), or
 *     an array of two numbers `[centerX, centerY]`. Defaults to `0.5` (rotates
 *     the image around its center).
 *
 * @doc {heading: 'Operations', subheading: 'Images', namespace: 'image'}
 */
                function rotateWithOffset_(image, radians, fillValue = 0, center = 0.5) {
                    const $image = convertToTensor(image, 'image', 'rotateWithOffset', 'float32');
                    assert($image.rank === 4, () => 'Error in rotateWithOffset: image must be rank 4,' + `but got rank ${$image.rank}.`);
                    const inputs = {
                        image: $image
                    };
                    const attrs = {
                        radians,
                        fillValue,
                        center
                    };
                    const res = ENGINE.runKernel(RotateWithOffset, inputs, attrs);
                    return res;
                }
                const rotateWithOffset = op({
                    rotateWithOffset_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                function nonMaxSuppSanityCheck(boxes, scores, maxOutputSize, iouThreshold, scoreThreshold, softNmsSigma) {
                    if (iouThreshold == null) {
                        iouThreshold = 0.5;
                    }
                    if (scoreThreshold == null) {
                        scoreThreshold = Number.NEGATIVE_INFINITY;
                    }
                    if (softNmsSigma == null) {
                        softNmsSigma = 0.0;
                    }
                    const numBoxes = boxes.shape[0];
                    maxOutputSize = Math.min(maxOutputSize, numBoxes);
                    assert(0 <= iouThreshold && iouThreshold <= 1, () => `iouThreshold must be in [0, 1], but was '${iouThreshold}'`);
                    assert(boxes.rank === 2, () => `boxes must be a 2D tensor, but was of rank '${boxes.rank}'`);
                    assert(boxes.shape[1] === 4, () => `boxes must have 4 columns, but 2nd dimension was ${boxes.shape[1]}`);
                    assert(scores.rank === 1, () => 'scores must be a 1D tensor');
                    assert(scores.shape[0] === numBoxes, () => `scores has incompatible shape with boxes. Expected ${numBoxes}, ` + `but was ${scores.shape[0]}`);
                    assert(0 <= softNmsSigma && softNmsSigma <= 1, () => `softNmsSigma must be in [0, 1], but was '${softNmsSigma}'`);
                    return {
                        maxOutputSize,
                        iouThreshold,
                        scoreThreshold,
                        softNmsSigma
                    };
                }
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Performs non maximum suppression of bounding boxes based on
 * iou (intersection over union).
 *
 * @param boxes a 2d tensor of shape `[numBoxes, 4]`. Each entry is
 *     `[y1, x1, y2, x2]`, where `(y1, x1)` and `(y2, x2)` are the corners of
 *     the bounding box.
 * @param scores a 1d tensor providing the box scores of shape `[numBoxes]`.
 * @param maxOutputSize The maximum number of boxes to be selected.
 * @param iouThreshold A float representing the threshold for deciding whether
 *     boxes overlap too much with respect to IOU. Must be between [0, 1].
 *     Defaults to 0.5 (50% box overlap).
 * @param scoreThreshold A threshold for deciding when to remove boxes based
 *     on score. Defaults to -inf, which means any score is accepted.
 * @return A 1D tensor with the selected box indices.
 *
 * @doc {heading: 'Operations', subheading: 'Images', namespace: 'image'}
 */
                function nonMaxSuppression_(boxes, scores, maxOutputSize, iouThreshold = 0.5, scoreThreshold = Number.NEGATIVE_INFINITY) {
                    const $boxes = convertToTensor(boxes, 'boxes', 'nonMaxSuppression', 'float32');
                    const $scores = convertToTensor(scores, 'scores', 'nonMaxSuppression', 'float32');
                    const inputs = nonMaxSuppSanityCheck($boxes, $scores, maxOutputSize, iouThreshold, scoreThreshold);
                    maxOutputSize = inputs.maxOutputSize;
                    iouThreshold = inputs.iouThreshold;
                    scoreThreshold = inputs.scoreThreshold;
                    const attrs = {
                        maxOutputSize,
                        iouThreshold,
                        scoreThreshold
                    };
                    return ENGINE.runKernel(NonMaxSuppressionV3, {
                        boxes: $boxes,
                        scores: $scores
                    }, attrs);
                }
                const nonMaxSuppression = op({
                    nonMaxSuppression_
                });
                /**
 * @license
 * Copyright 2019 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Inserts a value into a sorted array. This method allows duplicate, meaning it
 * allows inserting duplicate value, in which case, the element will be inserted
 * at the lowest index of the value.
 * @param arr The array to modify.
 * @param element The element to insert.
 * @param comparator Optional. If no comparator is specified, elements are
 * compared using array_util.defaultComparator, which is suitable for Strings
 * and Numbers in ascending arrays. If the array contains multiple instances of
 * the target value, the left-most instance will be returned. To provide a
 * comparator, it should take 2 arguments to compare and return a negative,
 * zero, or a positive number.
 */
                function binaryInsert(arr, element, comparator) {
                    const index = binarySearch(arr, element, comparator);
                    const insertionPoint = index < 0 ? -(index + 1) : index;
                    arr.splice(insertionPoint, 0, element);
                }
                /**
 * Searches the array for the target using binary search, returns the index
 * of the found element, or position to insert if element not found. If no
 * comparator is specified, elements are compared using array_
 * util.defaultComparator, which is suitable for Strings and Numbers in
 * ascending arrays. If the array contains multiple instances of the target
 * value, the left-most instance will be returned.
 * @param arr The array to be searched in.
 * @param target The target to be searched for.
 * @param comparator Should take 2 arguments to compare and return a negative,
 *    zero, or a positive number.
 * @return Lowest index of the target value if found, otherwise the insertion
 *    point where the target should be inserted, in the form of
 *    (-insertionPoint - 1).
 */
                function binarySearch(arr, target, comparator) {
                    return binarySearch_(arr, target, comparator || defaultComparator);
                }
                /**
 * Compares its two arguments for order.
 * @param a The first element to be compared.
 * @param b The second element to be compared.
 * @return A negative number, zero, or a positive number as the first
 *     argument is less than, equal to, or greater than the second.
 */
                function defaultComparator(a, b) {
                    return a > b ? 1 : a < b ? -1 : 0;
                }
                function binarySearch_(arr, target, comparator) {
                    let left = 0;
                    let right = arr.length;
                    let middle = 0;
                    let found = false;
                    while (left < right) {
                        middle = left + (right - left >>> 1);
                        const compareResult = comparator(target, arr[middle]);
                        if (compareResult > 0) {
                            left = middle + 1;
                        } else {
                            right = middle;
                            // If compareResult is 0, the value is found. We record it is found,
                            // and then keep looking because there may be duplicate.
                            found = !compareResult;
                        }
                    }
                    return found ? left : -left - 1;
                }
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                function nonMaxSuppressionV3Impl(boxes, scores, maxOutputSize, iouThreshold, scoreThreshold) {
                    return nonMaxSuppressionImpl_(boxes, scores, maxOutputSize, iouThreshold, scoreThreshold, 0 /* softNmsSigma */
                    );
                }
                function nonMaxSuppressionV4Impl(boxes, scores, maxOutputSize, iouThreshold, scoreThreshold, padToMaxOutputSize) {
                    return nonMaxSuppressionImpl_(boxes, scores, maxOutputSize, iouThreshold, scoreThreshold, 0 /* softNmsSigma */
                        , false /* returnScoresTensor */
                        , padToMaxOutputSize /* padToMaxOutputSize */
                        , true /* returnValidOutputs */
                    );
                }
                function nonMaxSuppressionV5Impl(boxes, scores, maxOutputSize, iouThreshold, scoreThreshold, softNmsSigma) {
                    return nonMaxSuppressionImpl_(boxes, scores, maxOutputSize, iouThreshold, scoreThreshold, softNmsSigma, true /* returnScoresTensor */
                    );
                }
                function nonMaxSuppressionImpl_(boxes, scores, maxOutputSize, iouThreshold, scoreThreshold, softNmsSigma, returnScoresTensor = false, padToMaxOutputSize = false, returnValidOutputs = false) {
                    // The list is sorted in ascending order, so that we can always pop the
                    // candidate with the largest score in O(1) time.
                    const candidates = [];
                    for (let i = 0; i < scores.length; i++) {
                        if (scores[i] > scoreThreshold) {
                            candidates.push({
                                score: scores[i],
                                boxIndex: i,
                                suppressBeginIndex: 0
                            });
                        }
                    }
                    candidates.sort(ascendingComparator);
                    // If softNmsSigma is 0, the outcome of this algorithm is exactly same as
                    // before.
                    const scale = softNmsSigma > 0 ? -0.5 / softNmsSigma : 0.0;
                    const selectedIndices = [];
                    const selectedScores = [];
                    while (selectedIndices.length < maxOutputSize && candidates.length > 0) {
                        const candidate = candidates.pop();
                        const { score: originalScore, boxIndex, suppressBeginIndex } = candidate;
                        if (originalScore < scoreThreshold) {
                            break;
                        }
                        // Overlapping boxes are likely to have similar scores, therefore we
                        // iterate through the previously selected boxes backwards in order to
                        // see if candidate's score should be suppressed. We use
                        // suppressBeginIndex to track and ensure a candidate can be suppressed
                        // by a selected box no more than once. Also, if the overlap exceeds
                        // iouThreshold, we simply ignore the candidate.
                        let ignoreCandidate = false;
                        for (let j = selectedIndices.length - 1; j >= suppressBeginIndex; --j) {
                            const iou = intersectionOverUnion(boxes, boxIndex, selectedIndices[j]);
                            if (iou >= iouThreshold) {
                                ignoreCandidate = true;
                                break;
                            }
                            candidate.score = candidate.score * suppressWeight(iouThreshold, scale, iou);
                            if (candidate.score <= scoreThreshold) {
                                break;
                            }
                        }
                        // At this point, if `candidate.score` has not dropped below
                        // `scoreThreshold`, then we know that we went through all of the
                        // previous selections and can safely update `suppressBeginIndex` to the
                        // end of the selected array. Then we can re-insert the candidate with
                        // the updated score and suppressBeginIndex back in the candidate list.
                        // If on the other hand, `candidate.score` has dropped below the score
                        // threshold, we will not add it back to the candidates list.
                        candidate.suppressBeginIndex = selectedIndices.length;
                        if (!ignoreCandidate) {
                            // Candidate has passed all the tests, and is not suppressed, so
                            // select the candidate.
                            if (candidate.score === originalScore) {
                                selectedIndices.push(boxIndex);
                                selectedScores.push(candidate.score);
                            } else if (candidate.score > scoreThreshold) {
                                // Candidate's score is suppressed but is still high enough to be
                                // considered, so add back to the candidates list.
                                binaryInsert(candidates, candidate, ascendingComparator);
                            }
                        }
                    }
                    // NonMaxSuppressionV4 feature: padding output to maxOutputSize.
                    const validOutputs = selectedIndices.length;
                    const elemsToPad = maxOutputSize - validOutputs;
                    if (padToMaxOutputSize && elemsToPad > 0) {
                        selectedIndices.push(...new Array(elemsToPad).fill(0));
                        selectedScores.push(...new Array(elemsToPad).fill(0.0));
                    }
                    const result = {
                        selectedIndices
                    };
                    if (returnScoresTensor) {
                        result['selectedScores'] = selectedScores;
                    }
                    if (returnValidOutputs) {
                        result['validOutputs'] = validOutputs;
                    }
                    return result;
                }
                function intersectionOverUnion(boxes, i, j) {
                    const iCoord = boxes.subarray(i * 4, i * 4 + 4);
                    const jCoord = boxes.subarray(j * 4, j * 4 + 4);
                    const yminI = Math.min(iCoord[0], iCoord[2]);
                    const xminI = Math.min(iCoord[1], iCoord[3]);
                    const ymaxI = Math.max(iCoord[0], iCoord[2]);
                    const xmaxI = Math.max(iCoord[1], iCoord[3]);
                    const yminJ = Math.min(jCoord[0], jCoord[2]);
                    const xminJ = Math.min(jCoord[1], jCoord[3]);
                    const ymaxJ = Math.max(jCoord[0], jCoord[2]);
                    const xmaxJ = Math.max(jCoord[1], jCoord[3]);
                    const areaI = (ymaxI - yminI) * (xmaxI - xminI);
                    const areaJ = (ymaxJ - yminJ) * (xmaxJ - xminJ);
                    if (areaI <= 0 || areaJ <= 0) {
                        return 0.0;
                    }
                    const intersectionYmin = Math.max(yminI, yminJ);
                    const intersectionXmin = Math.max(xminI, xminJ);
                    const intersectionYmax = Math.min(ymaxI, ymaxJ);
                    const intersectionXmax = Math.min(xmaxI, xmaxJ);
                    const intersectionArea = Math.max(intersectionYmax - intersectionYmin, 0.0) * Math.max(intersectionXmax - intersectionXmin, 0.0);
                    return intersectionArea / (areaI + areaJ - intersectionArea);
                }
                // A Gaussian penalty function, this method always returns values in [0, 1].
                // The weight is a function of similarity, the more overlap two boxes are, the
                // smaller the weight is, meaning highly overlapping boxe will be significantly
                // penalized. On the other hand, a non-overlapping box will not be penalized.
                function suppressWeight(iouThreshold, scale, iou) {
                    const weight = Math.exp(scale * iou * iou);
                    return iou <= iouThreshold ? weight : 0.0;
                }
                function ascendingComparator(c1, c2) {
                    // For objects with same scores, we make the object with the larger index go
                    // first. In an array that pops from the end, this means that the object with
                    // the smaller index will be popped first. This ensures the same output as
                    // the TensorFlow python version.
                    return c1.score - c2.score || c1.score === c2.score && c2.boxIndex - c1.boxIndex;
                }
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Performs non maximum suppression of bounding boxes based on
 * iou (intersection over union).
 *
 * This is the async version of `nonMaxSuppression`
 *
 * @param boxes a 2d tensor of shape `[numBoxes, 4]`. Each entry is
 *     `[y1, x1, y2, x2]`, where `(y1, x1)` and `(y2, x2)` are the corners of
 *     the bounding box.
 * @param scores a 1d tensor providing the box scores of shape `[numBoxes]`.
 * @param maxOutputSize The maximum number of boxes to be selected.
 * @param iouThreshold A float representing the threshold for deciding whether
 *     boxes overlap too much with respect to IOU. Must be between [0, 1].
 *     Defaults to 0.5 (50% box overlap).
 * @param scoreThreshold A threshold for deciding when to remove boxes based
 *     on score. Defaults to -inf, which means any score is accepted.
 * @return A 1D tensor with the selected box indices.
 *
 * @doc {heading: 'Operations', subheading: 'Images', namespace: 'image'}
 */
                async function nonMaxSuppressionAsync_(boxes, scores, maxOutputSize, iouThreshold = 0.5, scoreThreshold = Number.NEGATIVE_INFINITY) {
                    const $boxes = convertToTensor(boxes, 'boxes', 'nonMaxSuppressionAsync');
                    const $scores = convertToTensor(scores, 'scores', 'nonMaxSuppressionAsync');
                    const inputs = nonMaxSuppSanityCheck($boxes, $scores, maxOutputSize, iouThreshold, scoreThreshold);
                    maxOutputSize = inputs.maxOutputSize;
                    iouThreshold = inputs.iouThreshold;
                    scoreThreshold = inputs.scoreThreshold;
                    const boxesAndScores = await Promise.all([$boxes.data(), $scores.data()]);
                    const boxesVals = boxesAndScores[0];
                    const scoresVals = boxesAndScores[1];
                    // We call a cpu based impl directly with the typedarray data  here rather
                    // than a kernel because all kernels are synchronous (and thus cannot await
                    // .data()).
                    const { selectedIndices } = nonMaxSuppressionV3Impl(boxesVals, scoresVals, maxOutputSize, iouThreshold, scoreThreshold);
                    if ($boxes !== boxes) {
                        $boxes.dispose();
                    }
                    if ($scores !== scores) {
                        $scores.dispose();
                    }
                    return tensor1d(selectedIndices, 'int32');
                }
                const nonMaxSuppressionAsync = nonMaxSuppressionAsync_;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Performs non maximum suppression of bounding boxes based on
 * iou (intersection over union).
 *
 * This op also supports a Soft-NMS mode (cf.
 * Bodla et al, https://arxiv.org/abs/1704.04503) where boxes reduce the score
 * of other overlapping boxes, therefore favoring different regions of the image
 * with high scores. To enable this Soft-NMS mode, set the `softNmsSigma`
 * parameter to be larger than 0.
 *
 * @param boxes a 2d tensor of shape `[numBoxes, 4]`. Each entry is
 *     `[y1, x1, y2, x2]`, where `(y1, x1)` and `(y2, x2)` are the corners of
 *     the bounding box.
 * @param scores a 1d tensor providing the box scores of shape `[numBoxes]`.
 * @param maxOutputSize The maximum number of boxes to be selected.
 * @param iouThreshold A float representing the threshold for deciding whether
 *     boxes overlap too much with respect to IOU. Must be between [0, 1].
 *     Defaults to 0.5 (50% box overlap).
 * @param scoreThreshold A threshold for deciding when to remove boxes based
 *     on score. Defaults to -inf, which means any score is accepted.
 * @param softNmsSigma A float representing the sigma parameter for Soft NMS.
 *     When sigma is 0, it falls back to nonMaxSuppression.
 * @return A map with the following properties:
 *     - selectedIndices: A 1D tensor with the selected box indices.
 *     - selectedScores: A 1D tensor with the corresponding scores for each
 *       selected box.
 *
 * @doc {heading: 'Operations', subheading: 'Images', namespace: 'image'}
 */
                function nonMaxSuppressionWithScore_(boxes, scores, maxOutputSize, iouThreshold = 0.5, scoreThreshold = Number.NEGATIVE_INFINITY, softNmsSigma = 0.0) {
                    const $boxes = convertToTensor(boxes, 'boxes', 'nonMaxSuppression');
                    const $scores = convertToTensor(scores, 'scores', 'nonMaxSuppression');
                    const params = nonMaxSuppSanityCheck($boxes, $scores, maxOutputSize, iouThreshold, scoreThreshold, softNmsSigma);
                    maxOutputSize = params.maxOutputSize;
                    iouThreshold = params.iouThreshold;
                    scoreThreshold = params.scoreThreshold;
                    softNmsSigma = params.softNmsSigma;
                    const inputs = {
                        boxes: $boxes,
                        scores: $scores
                    };
                    const attrs = {
                        maxOutputSize,
                        iouThreshold,
                        scoreThreshold,
                        softNmsSigma
                    };
                    // tslint:disable-next-line: no-unnecessary-type-assertion
                    const result = ENGINE.runKernel(NonMaxSuppressionV5, inputs, attrs);
                    return {
                        selectedIndices: result[0],
                        selectedScores: result[1]
                    };
                }
                const nonMaxSuppressionWithScore = op({
                    nonMaxSuppressionWithScore_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Asynchronously performs non maximum suppression of bounding boxes based on
 * iou (intersection over union).
 *
 * This op also supports a Soft-NMS mode (cf.
 * Bodla et al, https://arxiv.org/abs/1704.04503) where boxes reduce the score
 * of other overlapping boxes, therefore favoring different regions of the image
 * with high scores. To enable this Soft-NMS mode, set the `softNmsSigma`
 * parameter to be larger than 0.
 *
 * @param boxes a 2d tensor of shape `[numBoxes, 4]`. Each entry is
 *     `[y1, x1, y2, x2]`, where `(y1, x1)` and `(y2, x2)` are the corners of
 *     the bounding box.
 * @param scores a 1d tensor providing the box scores of shape `[numBoxes]`.
 * @param maxOutputSize The maximum number of boxes to be selected.
 * @param iouThreshold A float representing the threshold for deciding whether
 *     boxes overlap too much with respect to IOU. Must be between [0, 1].
 *     Defaults to 0.5 (50% box overlap).
 * @param scoreThreshold A threshold for deciding when to remove boxes based
 *     on score. Defaults to -inf, which means any score is accepted.
 * @param softNmsSigma A float representing the sigma parameter for Soft NMS.
 *     When sigma is 0, it falls back to nonMaxSuppression.
 * @return A map with the following properties:
 *     - selectedIndices: A 1D tensor with the selected box indices.
 *     - selectedScores: A 1D tensor with the corresponding scores for each
 *       selected box.
 *
 * @doc {heading: 'Operations', subheading: 'Images', namespace: 'image'}
 */
                async function nonMaxSuppressionWithScoreAsync_(boxes, scores, maxOutputSize, iouThreshold = 0.5, scoreThreshold = Number.NEGATIVE_INFINITY, softNmsSigma = 0.0) {
                    const $boxes = convertToTensor(boxes, 'boxes', 'nonMaxSuppressionAsync');
                    const $scores = convertToTensor(scores, 'scores', 'nonMaxSuppressionAsync');
                    const params = nonMaxSuppSanityCheck($boxes, $scores, maxOutputSize, iouThreshold, scoreThreshold, softNmsSigma);
                    maxOutputSize = params.maxOutputSize;
                    iouThreshold = params.iouThreshold;
                    scoreThreshold = params.scoreThreshold;
                    softNmsSigma = params.softNmsSigma;
                    const boxesAndScores = await Promise.all([$boxes.data(), $scores.data()]);
                    const boxesVals = boxesAndScores[0];
                    const scoresVals = boxesAndScores[1];
                    // We call a cpu based impl directly with the typedarray data  here rather
                    // than a kernel because all kernels are synchronous (and thus cannot await
                    // .data()).
                    const { selectedIndices, selectedScores } = nonMaxSuppressionV5Impl(boxesVals, scoresVals, maxOutputSize, iouThreshold, scoreThreshold, softNmsSigma);
                    if ($boxes !== boxes) {
                        $boxes.dispose();
                    }
                    if ($scores !== scores) {
                        $scores.dispose();
                    }
                    return {
                        selectedIndices: tensor1d(selectedIndices, 'int32'),
                        selectedScores: tensor1d(selectedScores)
                    };
                }
                const nonMaxSuppressionWithScoreAsync = nonMaxSuppressionWithScoreAsync_;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Asynchronously performs non maximum suppression of bounding boxes based on
 * iou (intersection over union), with an option to pad results.
 *
 * @param boxes a 2d tensor of shape `[numBoxes, 4]`. Each entry is
 *     `[y1, x1, y2, x2]`, where `(y1, x1)` and `(y2, x2)` are the corners of
 *     the bounding box.
 * @param scores a 1d tensor providing the box scores of shape `[numBoxes]`.
 * @param maxOutputSize The maximum number of boxes to be selected.
 * @param iouThreshold A float representing the threshold for deciding whether
 *     boxes overlap too much with respect to IOU. Must be between [0, 1].
 *     Defaults to 0.5 (50% box overlap).
 * @param scoreThreshold A threshold for deciding when to remove boxes based
 *     on score. Defaults to -inf, which means any score is accepted.
 * @param padToMaxOutputSize Defaults to false. If true, size of output
 *     `selectedIndices` is padded to maxOutputSize.
 * @return A map with the following properties:
 *     - selectedIndices: A 1D tensor with the selected box indices.
 *     - validOutputs: A scalar denoting how many elements in `selectedIndices`
 *       are valid. Valid elements occur first, then padding.
 *
 * @doc {heading: 'Operations', subheading: 'Images', namespace: 'image'}
 */
                function nonMaxSuppressionPadded_(boxes, scores, maxOutputSize, iouThreshold = 0.5, scoreThreshold = Number.NEGATIVE_INFINITY, padToMaxOutputSize = false) {
                    const $boxes = convertToTensor(boxes, 'boxes', 'nonMaxSuppression');
                    const $scores = convertToTensor(scores, 'scores', 'nonMaxSuppression');
                    const params = nonMaxSuppSanityCheck($boxes, $scores, maxOutputSize, iouThreshold, scoreThreshold, null /* softNmsSigma */
                    );
                    const $maxOutputSize = params.maxOutputSize;
                    const $iouThreshold = params.iouThreshold;
                    const $scoreThreshold = params.scoreThreshold;
                    const inputs = {
                        boxes: $boxes,
                        scores: $scores
                    };
                    const attrs = {
                        maxOutputSize: $maxOutputSize,
                        iouThreshold: $iouThreshold,
                        scoreThreshold: $scoreThreshold,
                        padToMaxOutputSize
                    };
                    // tslint:disable-next-line: no-unnecessary-type-assertion
                    const result = ENGINE.runKernel(NonMaxSuppressionV4, inputs, attrs);
                    return {
                        selectedIndices: result[0],
                        validOutputs: result[1]
                    };
                }
                const nonMaxSuppressionPadded = op({
                    nonMaxSuppressionPadded_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Asynchronously performs non maximum suppression of bounding boxes based on
 * iou (intersection over union), with an option to pad results.
 *
 * @param boxes a 2d tensor of shape `[numBoxes, 4]`. Each entry is
 *     `[y1, x1, y2, x2]`, where `(y1, x1)` and `(y2, x2)` are the corners of
 *     the bounding box.
 * @param scores a 1d tensor providing the box scores of shape `[numBoxes]`.
 * @param maxOutputSize The maximum number of boxes to be selected.
 * @param iouThreshold A float representing the threshold for deciding whether
 *     boxes overlap too much with respect to IOU. Must be between [0, 1].
 *     Defaults to 0.5 (50% box overlap).
 * @param scoreThreshold A threshold for deciding when to remove boxes based
 *     on score. Defaults to -inf, which means any score is accepted.
 * @param padToMaxOutputSize Defaults to false. If true, size of output
 *     `selectedIndices` is padded to maxOutputSize.
 * @return A map with the following properties:
 *     - selectedIndices: A 1D tensor with the selected box indices.
 *     - validOutputs: A scalar denoting how many elements in `selectedIndices`
 *       are valid. Valid elements occur first, then padding.
 *
 * @doc {heading: 'Operations', subheading: 'Images', namespace: 'image'}
 */
                async function nonMaxSuppressionPaddedAsync_(boxes, scores, maxOutputSize, iouThreshold = 0.5, scoreThreshold = Number.NEGATIVE_INFINITY, padToMaxOutputSize = false) {
                    const $boxes = convertToTensor(boxes, 'boxes', 'nonMaxSuppressionAsync');
                    const $scores = convertToTensor(scores, 'scores', 'nonMaxSuppressionAsync');
                    const params = nonMaxSuppSanityCheck($boxes, $scores, maxOutputSize, iouThreshold, scoreThreshold, null /* softNmsSigma */
                    );
                    const $maxOutputSize = params.maxOutputSize;
                    const $iouThreshold = params.iouThreshold;
                    const $scoreThreshold = params.scoreThreshold;
                    const [boxesVals, scoresVals] = await Promise.all([$boxes.data(), $scores.data()]);
                    // We call a cpu based impl directly with the typedarray data here rather
                    // than a kernel because all kernels are synchronous (and thus cannot await
                    // .data()).
                    const { selectedIndices, validOutputs } = nonMaxSuppressionV4Impl(boxesVals, scoresVals, $maxOutputSize, $iouThreshold, $scoreThreshold, padToMaxOutputSize);
                    if ($boxes !== boxes) {
                        $boxes.dispose();
                    }
                    if ($scores !== scores) {
                        $scores.dispose();
                    }
                    return {
                        selectedIndices: tensor1d(selectedIndices, 'int32'),
                        validOutputs: scalar(validOutputs, 'int32')
                    };
                }
                const nonMaxSuppressionPaddedAsync = nonMaxSuppressionPaddedAsync_;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Bilinear resize a single 3D image or a batch of 3D images to a new shape.
 *
 * @param images The images, of rank 4 or rank 3, of shape
 *     `[batch, height, width, inChannels]`. If rank 3, batch of 1 is assumed.
 * @param size The new shape `[newHeight, newWidth]` to resize the
 *     images to. Each channel is resized individually.
 * @param alignCorners Defaults to `false`. If true, rescale
 *     input by `(new_height - 1) / (height - 1)`, which exactly aligns the 4
 *     corners of images and resized images. If false, rescale by
 *     `new_height / height`. Treat similarly the width dimension.
 * @param halfPixelCenters Defaults to `false`. Whether to assume pixel centers
 *     are at 0.5, which would make the floating point coordinates of the top
 *     left pixel 0.5, 0.5.
 *
 * @doc {heading: 'Operations', subheading: 'Images', namespace: 'image'}
 */
                function resizeBilinear_(images, size, alignCorners = false, halfPixelCenters = false) {
                    const $images = convertToTensor(images, 'images', 'resizeBilinear');
                    assert($images.rank === 3 || $images.rank === 4, () => `Error in resizeBilinear: x must be rank 3 or 4, but got ` + `rank ${$images.rank}.`);
                    assert(size.length === 2, () => `Error in resizeBilinear: new shape must 2D, but got shape ` + `${size}.`);
                    assert(halfPixelCenters === false || alignCorners === false, () => `Error in resizeBilinear: If halfPixelCenters is true, ` + `alignCorners must be false.`);
                    let batchImages = $images;
                    let reshapedTo4D = false;
                    if ($images.rank === 3) {
                        reshapedTo4D = true;
                        batchImages = reshape($images, [1, $images.shape[0], $images.shape[1], $images.shape[2]]);
                    }
                    const [] = size;
                    const inputs = {
                        images: batchImages
                    };
                    const attrs = {
                        alignCorners,
                        halfPixelCenters,
                        size
                    };
                    // tslint:disable-next-line: no-unnecessary-type-assertion
                    const res = ENGINE.runKernel(ResizeBilinear, inputs, attrs);
                    if (reshapedTo4D) {
                        return reshape(res, [res.shape[1], res.shape[2], res.shape[3]]);
                    }
                    return res;
                }
                const resizeBilinear = op({
                    resizeBilinear_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * NearestNeighbor resize a batch of 3D images to a new shape.
 *
 * @param images The images, of rank 4 or rank 3, of shape
 *     `[batch, height, width, inChannels]`. If rank 3, batch of 1 is assumed.
 * @param size The new shape `[newHeight, newWidth]` to resize the
 *     images to. Each channel is resized individually.
 * @param alignCorners Defaults to False. If true, rescale
 *     input by `(new_height - 1) / (height - 1)`, which exactly aligns the 4
 *     corners of images and resized images. If false, rescale by
 *     `new_height / height`. Treat similarly the width dimension.
 * @param halfPixelCenters Defaults to `false`. Whether to assume pixels are of
 *      half the actual dimensions, and yield more accurate resizes. This flag
 *      would also make the floating point coordinates of the top left pixel
 *      0.5, 0.5.
 *
 * @doc {heading: 'Operations', subheading: 'Images', namespace: 'image'}
 */
                function resizeNearestNeighbor_(images, size, alignCorners = false, halfPixelCenters = false) {
                    const $images = convertToTensor(images, 'images', 'resizeNearestNeighbor');
                    assert($images.rank === 3 || $images.rank === 4, () => `Error in resizeNearestNeighbor: x must be rank 3 or 4, but got ` + `rank ${$images.rank}.`);
                    assert(size.length === 2, () => `Error in resizeNearestNeighbor: new shape must 2D, but got shape ` + `${size}.`);
                    assert($images.dtype === 'float32' || $images.dtype === 'int32', () => '`images` must have `int32` or `float32` as dtype');
                    assert(halfPixelCenters === false || alignCorners === false, () => `Error in resizeNearestNeighbor: If halfPixelCenters is true, ` + `alignCorners must be false.`);
                    let batchImages = $images;
                    let reshapedTo4D = false;
                    if ($images.rank === 3) {
                        reshapedTo4D = true;
                        batchImages = reshape($images, [1, $images.shape[0], $images.shape[1], $images.shape[2]]);
                    }
                    const [] = size;
                    const inputs = {
                        images: batchImages
                    };
                    const attrs = {
                        alignCorners,
                        halfPixelCenters,
                        size
                    };
                    // tslint:disable-next-line: no-unnecessary-type-assertion
                    const res = ENGINE.runKernel(ResizeNearestNeighbor, inputs, attrs);
                    if (reshapedTo4D) {
                        return reshape(res, [res.shape[1], res.shape[2], res.shape[3]]);
                    }
                    return res;
                }
                const resizeNearestNeighbor = op({
                    resizeNearestNeighbor_
                });
                /**
 * @license
 * Copyright 2021 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Performs image binarization with corresponding threshold
 * (depends on the method)value, which creates a binary image from a grayscale.
 * @param image 3d tensor of shape [imageHeight,imageWidth, depth],
 * where imageHeight and imageWidth must be positive.The image color
 * range should be [0, 255].
 * @param method Optional string from `'binary' | 'otsu'`
 * which specifies the method for thresholding. Defaults to 'binary'.
 * @param inverted Optional boolean whichspecifies
 * if colours should be inverted. Defaults to false.
 * @param threshValue Optional number which defines threshold value from 0 to 1.
 * Defaults to 0.5.
 * @return A 3d tensor of shape [imageHeight,imageWidth, depth], which
 * contains binarized image.
 */
                function threshold_(image, method = 'binary', inverted = false, threshValue = 0.5) {
                    const $image = convertToTensor(image, 'image', 'threshold');
                    /* 0.2989, 0.5870, 0.1140 are represent luma coefficients in CCIR601.
    Reference for converting between RGB and grayscale: https://en.wikipedia.org/wiki/Luma_%28video%29  */
                    const RED_INTENCITY_COEF = 0.2989;
                    const GREEN_INTENCITY_COEF = 0.5870;
                    const BLUE_INTENCITY_COEF = 0.1140;
                    const totalPixelsInImage = $image.shape[0] * $image.shape[1];
                    let $threshold = mul(tensor1d([threshValue]), 255);
                    let r, g, b, grayscale;
                    assert($image.rank === 3, () => 'Error in threshold: image must be rank 3,' + `but got rank ${$image.rank}.`);
                    assert($image.shape[2] === 3 || $image.shape[2] === 1, () => 'Error in threshold: ' + 'image color channel must be equal to 3 or 1' + `but got ${$image.shape[2]}.`);
                    assert($image.dtype === 'int32' || $image.dtype === 'float32', () => 'Error in dtype: image dtype must be int32 or float32,' + `but got dtype ${$image.dtype}.`);
                    assert(method === 'otsu' || method === 'binary', () => `Method must be binary or otsu, but was ${method}`);
                    if ($image.shape[2] === 3) {
                        [r, g, b] = split($image, [1, 1, 1], -1);
                        const $r = mul(r, RED_INTENCITY_COEF);
                        const $g = mul(g, GREEN_INTENCITY_COEF);
                        const $b = mul(b, BLUE_INTENCITY_COEF);
                        grayscale = add$1(add$1($r, $g), $b);
                    } else {
                        grayscale = image;
                    }
                    if (method === 'otsu') {
                        const $histogram = bincount(cast(round$1(grayscale), 'int32'), tensor([]), 256);
                        $threshold = otsu($histogram, totalPixelsInImage);
                    }
                    const invCondition = inverted ? lessEqual(grayscale, $threshold) : greater(grayscale, $threshold);
                    const result = cast(mul(invCondition, 255), 'int32');
                    return result;
                }
                function otsu(histogram, total) {
                    let bestThresh = tensor1d([-1]);
                    let bestInBetVar = tensor1d([0]);
                    let cInBetVar = tensor1d([0]);
                    let classFirst, classSecond, meanFirst, meanSec, weightForeground, weightBack;
                    for (let index = 0; index < histogram.size - 1; index++) {
                        classFirst = slice(histogram, 0, index + 1);
                        classSecond = slice(histogram, index + 1);
                        weightForeground = div(sum$1(classFirst), total);
                        weightBack = div(sum$1(classSecond), total);
                        const meanFirstDivA = sum$1(mul(classFirst, range(0, classFirst.size)));
                        meanFirst = div(meanFirstDivA, sum$1(classFirst));
                        const meanSecFill = fill(classSecond.shape, classFirst.size);
                        const meanSecAdd = add$1(range(0, classSecond.size), meanSecFill);
                        const meanSecMul = mul(classSecond, meanSecAdd);
                        meanSec = div(sum$1(meanSecMul), sum$1(classSecond));
                        const cInBetVarSubA = sub(meanFirst, meanSec);
                        const cInBetVarSubB = sub(meanFirst, meanSec);
                        const cInBetVarMul = mul(weightForeground, weightBack);
                        cInBetVar = mul(mul(cInBetVarMul, cInBetVarSubA), cInBetVarSubB);
                        const condition = greater(cInBetVar, bestInBetVar);
                        bestInBetVar = where(condition, cInBetVar, bestInBetVar);
                        bestThresh = where(condition, tensor1d([index]), bestThresh);
                    }
                    return bestThresh;
                }
                const threshold = op({
                    threshold_
                });
                /**
 * @license
 * Copyright 2021 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Applies the given transform(s) to the image(s).
 *
 * @param image 4d tensor of shape `[batch, imageHeight, imageWidth, depth]`.
 * @param transforms Projective transform matrix/matrices. A tensor1d of length
 *     8 or tensor of size N x 8. If one row of transforms is [a0, a1, a2, b0,
 *     b1, b2, c0, c1], then it maps the output point (x, y) to a transformed
 *     input point (x', y') = ((a0 x + a1 y + a2) / k, (b0 x + b1 y + b2) / k),
 *     where k = c0 x + c1 y + 1. The transforms are inverted compared to the
 *     transform mapping input points to output points.
 * @param interpolation Interpolation mode.
 *     Supported values: 'nearest', 'bilinear'. Default to 'nearest'.
 * @param fillMode Points outside the boundaries of the input are filled
 *     according to the given mode, one of 'constant', 'reflect', 'wrap',
 *     'nearest'. Default to 'constant'.
 *     'reflect': (d c b a | a b c d | d c b a ) The input is extended by
 *     reflecting about the edge of the last pixel.
 *     'constant': (k k k k | a b c d | k k k k) The input is extended by
 *     filling all values beyond the edge with the same constant value k.
 *     'wrap': (a b c d | a b c d | a b c d) The input is extended by
 *     wrapping around to the opposite edge.
 *     'nearest': (a a a a | a b c d | d d d d) The input is extended by
 *     the nearest pixel.
 * @param fillValue A float represents the value to be filled outside the
 *     boundaries when fillMode is 'constant'.
 * @param Output dimension after the transform, [height, width]. If undefined,
 *     output is the same size as input image.
 *
 * @doc {heading: 'Operations', subheading: 'Images', namespace: 'image'}
 */
                function transform_(image, transforms, interpolation = 'nearest', fillMode = 'constant', fillValue = 0, outputShape) {
                    const $image = convertToTensor(image, 'image', 'transform', 'float32');
                    const $transforms = convertToTensor(transforms, 'transforms', 'transform', 'float32');
                    assert($image.rank === 4, () => 'Error in transform: image must be rank 4,' + `but got rank ${$image.rank}.`);
                    assert($transforms.rank === 2 && ($transforms.shape[0] === $image.shape[0] || $transforms.shape[0] === 1) && $transforms.shape[1] === 8, () => `Error in transform: Input transform should be batch x 8 or 1 x 8`);
                    assert(outputShape == null || outputShape.length === 2, () => 'Error in transform: outputShape must be [height, width] or null, ' + `but got ${outputShape}.`);
                    const inputs = {
                        image: $image,
                        transforms: $transforms
                    };
                    const attrs = {
                        interpolation,
                        fillMode,
                        fillValue,
                        outputShape
                    };
                    return ENGINE.runKernel(Transform, inputs, attrs);
                }
                const transform = op({
                    transform_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Copy a tensor setting everything outside a central band in each innermost
 * matrix to zero.
 *
 * The band part is computed as follows: Assume input has `k` dimensions
 * `[I, J, K, ..., M, N]`, then the output is a tensor with the same shape where
 * `band[i, j, k, ..., m, n] = in_band(m, n) * input[i, j, k, ..., m, n]`.
 * The indicator function
 * `in_band(m, n) = (num_lower < 0 || (m-n) <= num_lower)`
 * `&& (num_upper < 0 || (n-m) <= num_upper)`
 *
 * ```js
 * const x = tf.tensor2d([[ 0,  1,  2, 3],
 *                        [-1,  0,  1, 2],
 *                        [-2, -1,  0, 1],
 *                        [-3, -2, -1, 0]]);
 * let y = tf.linalg.bandPart(x, 1, -1);
 * y.print(); // [[ 0,  1,  2, 3],
 *            //  [-1,  0,  1, 2],
 *            //  [ 0, -1,  0, 1],
 *            //  [ 0, 0 , -1, 0]]
 * let z = tf.linalg.bandPart(x, 2, 1);
 * z.print(); // [[ 0,  1,  0, 0],
 *            //  [-1,  0,  1, 0],
 *            //  [-2, -1,  0, 1],
 *            //  [ 0, -2, -1, 0]]
 * ```
 *
 * @param x Rank `k` tensor
 * @param numLower Number of subdiagonals to keep.
 *   If negative, keep entire lower triangle.
 * @param numUpper Number of subdiagonals to keep.
 *   If negative, keep entire upper triangle.
 * @returns Rank `k` tensor of the same shape as input.
 *   The extracted banded tensor.
 *
 * @doc {heading:'Operations', subheading:'Linear Algebra', namespace:'linalg'}
 */
                function bandPart_(a, numLower, numUpper) {
                    assert(numLower % 1 === 0, () => `bandPart(): numLower must be an integer, got ${numLower}.`);
                    assert(numUpper % 1 === 0, () => `bandPart(): numUpper must be an integer, got ${numUpper}.`);
                    const $a = convertToTensor(a, 'a', 'bandPart');
                    assert($a.rank >= 2, () => `bandPart(): Rank must be at least 2, got ${$a.rank}.`);
                    const shape = $a.shape;
                    const [M, N] = $a.shape.slice(-2);
                    if (!(numLower <= M)) {
                        throw new Error(`bandPart(): numLower (${numLower})` + ` must not be greater than the number of rows (${M}).`);
                    }
                    if (!(numUpper <= N)) {
                        throw new Error(`bandPart(): numUpper (${numUpper})` + ` must not be greater than the number of columns (${N}).`);
                    }
                    if (numLower < 0) {
                        numLower = M;
                    }
                    if (numUpper < 0) {
                        numUpper = N;
                    }
                    const i = reshape(range(0, M, 1, 'int32'), [-1, 1]);
                    const j = range(0, N, 1, 'int32');
                    const ij = sub(i, j);
                    const inBand = logicalAnd(lessEqual(ij, scalar(+numLower, 'int32')), greaterEqual(ij, scalar(-numUpper, 'int32')));
                    const zero = zeros([M, N], $a.dtype);
                    return reshape(stack(unstack(reshape($a, [-1, M, N])).map(mat => where(inBand, mat, zero))), shape);
                }
                const bandPart = op({
                    bandPart_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Gram-Schmidt orthogonalization.
 *
 * ```js
 * const x = tf.tensor2d([[1, 2], [3, 4]]);
 * let y = tf.linalg.gramSchmidt(x);
 * y.print();
 * console.log('Orthogonalized:');
 * y.dot(y.transpose()).print();  // should be nearly the identity matrix.
 * console.log('First row direction maintained:');
 * const data = await y.array();
 * console.log(data[0][1] / data[0][0]);  // should be nearly 2.
 * ```
 *
 * @param xs The vectors to be orthogonalized, in one of the two following
 *   formats:
 *   - An Array of `tf.Tensor1D`.
 *   - A `tf.Tensor2D`, i.e., a matrix, in which case the vectors are the rows
 *     of `xs`.
 *   In each case, all the vectors must have the same length and the length
 *   must be greater than or equal to the number of vectors.
 * @returns The orthogonalized and normalized vectors or matrix.
 *   Orthogonalization means that the vectors or the rows of the matrix
 *   are orthogonal (zero inner products). Normalization means that each
 *   vector or each row of the matrix has an L2 norm that equals `1`.
 *
 * @doc {heading:'Operations', subheading:'Linear Algebra', namespace:'linalg'}
 */
                function gramSchmidt_(xs) {
                    let inputIsTensor2D;
                    if (Array.isArray(xs)) {
                        inputIsTensor2D = false;
                        assert(xs != null && xs.length > 0, () => 'Gram-Schmidt process: input must not be null, undefined, or ' + 'empty');
                        const dim = xs[0].shape[0];
                        for (let i = 1; i < xs.length; ++i) {
                            assert(xs[i].shape[0] === dim, () => 'Gram-Schmidt: Non-unique lengths found in the input vectors: ' + `(${xs[i].shape[0]} vs. ${dim})`);
                        }
                    } else {
                        inputIsTensor2D = true;
                        xs = split(xs, xs.shape[0], 0).map(x => squeeze(x, [0]));
                    }
                    assert(xs.length <= xs[0].shape[0], () => `Gram-Schmidt: Number of vectors (${xs.length}) exceeds ` + `number of dimensions (${xs[0].shape[0]}).`);
                    const ys = [];
                    const xs1d = xs;
                    for (let i = 0; i < xs.length; ++i) {
                        ys.push(ENGINE.tidy(() => {
                            let x = xs1d[i];
                            if (i > 0) {
                                for (let j = 0; j < i; ++j) {
                                    const proj = mul(sum$1(mul(ys[j], x)), ys[j]);
                                    x = sub(x, proj);
                                }
                            }
                            return div(x, norm(x, 'euclidean'));
                        }
                        ));
                    }
                    if (inputIsTensor2D) {
                        return stack(ys, 0);
                    } else {
                        return ys;
                    }
                }
                const gramSchmidt = op({
                    gramSchmidt_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Compute QR decomposition of m-by-n matrix using Householder transformation.
 *
 * Implementation based on
 *   [http://www.cs.cornell.edu/~bindel/class/cs6210-f09/lec18.pdf]
 * (http://www.cs.cornell.edu/~bindel/class/cs6210-f09/lec18.pdf)
 *
 * ```js
 * const a = tf.tensor2d([[1, 2], [3, 4]]);
 * let [q, r] = tf.linalg.qr(a);
 * console.log('Q');
 * q.print();
 * console.log('R');
 * r.print();
 * console.log('Orthogonalized');
 * q.dot(q.transpose()).print()  // should be nearly the identity matrix.
 * console.log('Reconstructed');
 * q.dot(r).print(); // should be nearly [[1, 2], [3, 4]];
 * ```
 *
 * @param x The `tf.Tensor` to be QR-decomposed. Must have rank >= 2. Suppose
 *   it has the shape `[..., M, N]`.
 * @param fullMatrices An optional boolean parameter. Defaults to `false`.
 *   If `true`, compute full-sized `Q`. If `false` (the default),
 *   compute only the leading N columns of `Q` and `R`.
 * @returns An `Array` of two `tf.Tensor`s: `[Q, R]`. `Q` is a unitary matrix,
 *   i.e., its columns all have unit norm and are mutually orthogonal.
 *   If `M >= N`,
 *     If `fullMatrices` is `false` (default),
 *       - `Q` has a shape of `[..., M, N]`,
 *       - `R` has a shape of `[..., N, N]`.
 *     If `fullMatrices` is `true` (default),
 *       - `Q` has a shape of `[..., M, M]`,
 *       - `R` has a shape of `[..., M, N]`.
 *   If `M < N`,
 *     - `Q` has a shape of `[..., M, M]`,
 *     - `R` has a shape of `[..., M, N]`.
 * @throws If the rank of `x` is less than 2.
 *
 * @doc {heading:'Operations',
 *       subheading:'Linear Algebra',
 *       namespace:'linalg'}
 */
                function qr_(x, fullMatrices = false) {
                    assert(x.rank >= 2, () => `qr() requires input tensor to have a rank >= 2, but got rank ${x.rank}`);
                    if (x.rank === 2) {
                        return qr2d(x, fullMatrices);
                    } else {
                        // Rank > 2.
                        // TODO(cais): Below we split the input into individual 2D tensors,
                        //   perform QR decomposition on them and then stack the results back
                        //   together. We should explore whether this can be parallelized.
                        const outerDimsProd = x.shape.slice(0, x.shape.length - 2).reduce((value, prev) => value * prev);
                        const x2ds = unstack(reshape(x, [outerDimsProd, x.shape[x.shape.length - 2], x.shape[x.shape.length - 1]]), 0);
                        const q2ds = [];
                        const r2ds = [];
                        x2ds.forEach(x2d => {
                            const [q2d, r2d] = qr2d(x2d, fullMatrices);
                            q2ds.push(q2d);
                            r2ds.push(r2d);
                        }
                        );
                        const q = reshape(stack(q2ds, 0), x.shape);
                        const r = reshape(stack(r2ds, 0), x.shape);
                        return [q, r];
                    }
                }
                function qr2d(x, fullMatrices = false) {
                    return ENGINE.tidy(() => {
                        assert(x.shape.length === 2, () => `qr2d() requires a 2D Tensor, but got a ${x.shape.length}D Tensor.`);
                        const m = x.shape[0];
                        const n = x.shape[1];
                        let q = eye(m);
                        // Orthogonal transform so far.
                        let r = clone(x);
                        // Transformed matrix so far.
                        const one2D = tensor2d([[1]], [1, 1]);
                        let w = clone(one2D);
                        const iters = m >= n ? n : m;
                        for (let j = 0; j < iters; ++j) {
                            // This tidy within the for-loop ensures we clean up temporary
                            // tensors as soon as they are no longer needed.
                            const rTemp = r;
                            const wTemp = w;
                            const qTemp = q;
                            [w, r, q] = ENGINE.tidy(() => {
                                // Find H = I - tau * w * w', to put zeros below R(j, j).
                                const rjEnd1 = slice(r, [j, j], [m - j, 1]);
                                const normX = norm(rjEnd1);
                                const rjj = slice(r, [j, j], [1, 1]);
                                // The sign() function returns 0 on 0, which causes division by zero.
                                const s = where(greater(rjj, 0), tensor2d([[-1]]), tensor2d([[1]]));
                                const u1 = sub(rjj, mul(s, normX));
                                const wPre = div(rjEnd1, u1);
                                if (wPre.shape[0] === 1) {
                                    w = clone(one2D);
                                } else {
                                    w = concat([one2D, slice(wPre, [1, 0], [wPre.shape[0] - 1, wPre.shape[1]])], 0);
                                }
                                const tau = neg(div(matMul(s, u1), normX));
                                // -- R := HR, Q := QH.
                                const rjEndAll = slice(r, [j, 0], [m - j, n]);
                                const tauTimesW = mul(tau, w);
                                const wT = transpose(w);
                                if (j === 0) {
                                    r = sub(rjEndAll, matMul(tauTimesW, matMul(wT, rjEndAll)));
                                } else {
                                    const rTimesTau = sub(rjEndAll, matMul(tauTimesW, matMul(wT, rjEndAll)));
                                    r = concat([slice(r, [0, 0], [j, n]), rTimesTau], 0);
                                }
                                const tawTimesWT = transpose(tauTimesW);
                                const qAllJEnd = slice(q, [0, j], [m, q.shape[1] - j]);
                                if (j === 0) {
                                    q = sub(qAllJEnd, matMul(matMul(qAllJEnd, w), tawTimesWT));
                                } else {
                                    const qTimesTau = sub(qAllJEnd, matMul(matMul(qAllJEnd, w), tawTimesWT));
                                    q = concat([slice(q, [0, 0], [m, j]), qTimesTau], 1);
                                }
                                return [w, r, q];
                            }
                            );
                            dispose([rTemp, wTemp, qTemp]);
                        }
                        if (!fullMatrices && m > n) {
                            q = slice(q, [0, 0], [m, n]);
                            r = slice(r, [0, 0], [n, n]);
                        }
                        return [q, r];
                    }
                    );
                }
                const qr = op({
                    qr_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                var Reduction;
                (function (Reduction) {
                    Reduction[Reduction["NONE"] = 0] = "NONE";
                    Reduction[Reduction["MEAN"] = 1] = "MEAN";
                    Reduction[Reduction["SUM"] = 2] = "SUM";
                    Reduction[Reduction["SUM_BY_NONZERO_WEIGHTS"] = 3] = "SUM_BY_NONZERO_WEIGHTS";
                }
                )(Reduction || (Reduction = {}));
                /**
 * Computes the weighted loss between two tensors.
 *
 * @param losses Tensor of shape `[batch_size, d1, ..., dN]`.
 * @param weights Tensor whose rank is either 0, or the same rank as
 *    `losses`, and must be broadcastable to `losses` (i.e., all
 *    dimensions must be either `1`, or the same as the corresponding
 *    `losses` dimension).
 *
 * @doc {heading: 'Training', subheading: 'Losses', namespace: 'losses'}
 */
                function computeWeightedLoss_(losses, weights, reduction = Reduction.SUM_BY_NONZERO_WEIGHTS) {
                    const $losses = convertToTensor(losses, 'losses', 'computeWeightedLoss');
                    let $weights = null;
                    if (weights != null) {
                        $weights = convertToTensor(weights, 'weights', 'computeWeightedLoss');
                    }
                    const weightedLoss = $weights == null ? $losses : mul($losses, $weights);
                    if (reduction === Reduction.NONE) {
                        return weightedLoss;
                    }
                    if (reduction === Reduction.SUM) {
                        return sum$1(weightedLoss);
                    }
                    if (reduction === Reduction.MEAN) {
                        if ($weights == null) {
                            return mean(weightedLoss);
                        } else {
                            const broadcastFactor = $losses.size / $weights.size;
                            const result = div(sum$1(weightedLoss), sum$1($weights));
                            return broadcastFactor > 1 ? div(result, scalar(broadcastFactor)) : result;
                        }
                    }
                    if (reduction === Reduction.SUM_BY_NONZERO_WEIGHTS) {
                        if ($weights == null) {
                            return div(sum$1(weightedLoss), scalar($losses.size));
                        } else {
                            const broadcastedWeights = mul($weights, ones$1($losses.shape));
                            const numNonZeros = cast(sum$1(notEqual(broadcastedWeights, scalar(0))), 'float32');
                            return div(sum$1(weightedLoss), numNonZeros);
                        }
                    }
                    throw Error(`Unknown reduction: ${reduction}`);
                }
                const computeWeightedLoss = op({
                    computeWeightedLoss_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the absolute difference loss between two tensors.
 *
 * @param labels The ground truth output tensor, same dimensions as
 *    'predictions'.
 * @param predictions The predicted outputs.
 * @param weights Tensor whose rank is either 0, or the same rank as
 *    `labels`, and must be broadcastable to `labels` (i.e., all dimensions
 *    must be either `1`, or the same as the corresponding `losses`
 *    dimension).
 * @param reduction Type of reduction to apply to loss. Should be of type
 *    `Reduction`
 *
 * @doc {heading: 'Training', subheading: 'Losses', namespace: 'losses'}
 */
                function absoluteDifference_(labels, predictions, weights, reduction = Reduction.SUM_BY_NONZERO_WEIGHTS) {
                    const $labels = convertToTensor(labels, 'labels', 'absoluteDifference');
                    const $predictions = convertToTensor(predictions, 'predictions', 'absoluteDifference');
                    let $weights = null;
                    if (weights != null) {
                        $weights = convertToTensor(weights, 'weights', 'absoluteDifference');
                    }
                    assertShapesMatch($labels.shape, $predictions.shape, 'Error in absoluteDifference: ');
                    const losses = abs(sub($labels, $predictions));
                    return computeWeightedLoss(losses, $weights, reduction);
                }
                const absoluteDifference = op({
                    absoluteDifference_
                });
                /**
 * Computes the cosine distance loss between two tensors.
 *
 * @param labels The ground truth output tensor, same dimensions as
 *    'predictions'.
 * @param predictions The predicted outputs.
 * @param axis The dimension along which the cosine distance is computed.
 * @param weights Tensor whose rank is either 0, or the same rank as
 *    `labels`, and must be broadcastable to `labels` (i.e., all dimensions
 *    must be either `1`, or the same as the corresponding `losses`
 *    dimension).
 * @param reduction Type of reduction to apply to loss. Should be of type
 *    `Reduction`
 *
 * @doc {heading: 'Training', subheading: 'Losses', namespace: 'losses'}
 */
                function cosineDistance_(labels, predictions, axis, weights, reduction = Reduction.SUM_BY_NONZERO_WEIGHTS) {
                    const $labels = convertToTensor(labels, 'labels', 'cosineDistance');
                    const $predictions = convertToTensor(predictions, 'predictions', 'cosineDistance');
                    let $weights = null;
                    if (weights != null) {
                        $weights = convertToTensor(weights, 'weights', 'cosineDistance');
                    }
                    assertShapesMatch($labels.shape, $predictions.shape, 'Error in cosineDistance: ');
                    const one = scalar(1);
                    const losses = sub(one, sum$1(mul($labels, $predictions), axis, true));
                    return computeWeightedLoss(losses, $weights, reduction);
                }
                const cosineDistance = op({
                    cosineDistance_
                });
                /**
 * Computes the Hinge loss between two tensors.
 *
 * @param labels The ground truth output tensor, same dimensions as
 *    'predictions'.
 * @param predictions The predicted outputs.
 * @param weights Tensor whose rank is either 0, or the same rank as
 *    `labels`, and must be broadcastable to `labels` (i.e., all dimensions
 *    must be either `1`, or the same as the corresponding `losses`
 *    dimension).
 * @param reduction Type of reduction to apply to loss. Should be of type
 *    `Reduction`
 *
 * @doc {heading: 'Training', subheading: 'Losses', namespace: 'losses'}
 */
                function hingeLoss_(labels, predictions, weights, reduction = Reduction.SUM_BY_NONZERO_WEIGHTS) {
                    let $labels = convertToTensor(labels, 'labels', 'hingeLoss');
                    const $predictions = convertToTensor(predictions, 'predictions', 'hingeLoss');
                    let $weights = null;
                    if (weights != null) {
                        $weights = convertToTensor(weights, 'weights', 'hingeLoss');
                    }
                    assertShapesMatch($labels.shape, $predictions.shape, 'Error in hingeLoss: ');
                    const one = scalar(1);
                    // Convert binary labels to (-1, 1)
                    $labels = sub(mul(scalar(2), $labels), one);
                    const losses = relu(sub(one, mul($labels, $predictions)));
                    return computeWeightedLoss(losses, $weights, reduction);
                }
                const hingeLoss = op({
                    hingeLoss_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the Huber loss between two tensors.
 *
 * @param labels The ground truth output tensor, same dimensions as
 *    'predictions'.
 * @param predictions The predicted outputs.
 * @param weights Tensor whose rank is either 0, or the same rank as
 *    `labels`, and must be broadcastable to `labels` (i.e., all dimensions
 *    must be either `1`, or the same as the corresponding `losses`
 *    dimension).
 * @param delta Point where Huber loss changes from quadratic to linear.
 * @param reduction Type of reduction to apply to loss. Should be of type
 *    `Reduction`.
 *
 * @doc {heading: 'Training', subheading: 'Losses', namespace: 'losses'}
 */
                function huberLoss_(labels, predictions, weights, delta = 1.0, reduction = Reduction.SUM_BY_NONZERO_WEIGHTS) {
                    const $labels = convertToTensor(labels, 'labels', 'huberLoss');
                    const $predictions = convertToTensor(predictions, 'predictions', 'huberLoss');
                    let $weights = null;
                    if (weights != null) {
                        $weights = convertToTensor(weights, 'weights', 'huberLoss');
                    }
                    assertShapesMatch($labels.shape, $predictions.shape, 'Error in huberLoss: ');
                    const deltaScalar = scalar(delta);
                    const error = abs(sub($predictions, $labels));
                    const quadratic = minimum(error, deltaScalar);
                    const linear = sub(error, quadratic);
                    const losses = add$1(mul(scalar(0.5), square(quadratic)), mul(deltaScalar, linear));
                    return computeWeightedLoss(losses, $weights, reduction);
                }
                const huberLoss = op({
                    huberLoss_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the log loss between two tensors.
 *
 * @param labels The ground truth output tensor, same dimensions as
 *    'predictions'.
 * @param predictions The predicted outputs.
 * @param weights Tensor whose rank is either 0, or the same rank as
 *    `labels`, and must be broadcastable to `labels` (i.e., all dimensions
 *    must be either `1`, or the same as the corresponding `losses`
 *    dimension).
 * @param epsilon A small increment to avoid taking log of zero
 * @param reduction Type of reduction to apply to loss. Should be of type
 *    `Reduction`
 *
 * @doc {heading: 'Training', subheading: 'Losses', namespace: 'losses'}
 */
                function logLoss_(labels, predictions, weights, epsilon = 1e-7, reduction = Reduction.SUM_BY_NONZERO_WEIGHTS) {
                    const $labels = convertToTensor(labels, 'labels', 'logLoss');
                    const $predictions = convertToTensor(predictions, 'predictions', 'logLoss');
                    let $weights = null;
                    if (weights != null) {
                        $weights = convertToTensor(weights, 'weights', 'logLoss');
                    }
                    assertShapesMatch($labels.shape, $predictions.shape, 'Error in logLoss: ');
                    const one = scalar(1);
                    const epsilonScalar = scalar(epsilon);
                    const l1 = neg(mul($labels, log$1(add$1($predictions, epsilonScalar))));
                    const l2 = mul(sub(one, $labels), log$1(add$1(sub(one, $predictions), epsilonScalar)));
                    const losses = sub(l1, l2);
                    return computeWeightedLoss(losses, $weights, reduction);
                }
                const logLoss = op({
                    logLoss_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the mean squared error between two tensors.
 *
 * @param labels The ground truth output tensor, same dimensions as
 *    'predictions'.
 * @param predictions The predicted outputs.
 * @param weights Tensor whose rank is either 0, or the same rank as
 *    `labels`, and must be broadcastable to `labels` (i.e., all dimensions
 *    must be either `1`, or the same as the corresponding `losses`
 *    dimension).
 * @param reduction Type of reduction to apply to loss. Should be of type
 *    `Reduction`
 *
 * @doc {heading: 'Training', subheading: 'Losses', namespace: 'losses'}
 */
                function meanSquaredError_(labels, predictions, weights, reduction = Reduction.SUM_BY_NONZERO_WEIGHTS) {
                    const $labels = convertToTensor(labels, 'labels', 'meanSquaredError');
                    const $predictions = convertToTensor(predictions, 'predictions', 'meanSquaredError');
                    let $weights = null;
                    if (weights != null) {
                        $weights = convertToTensor(weights, 'weights', 'meanSquaredError');
                    }
                    assertShapesMatch($labels.shape, $predictions.shape, 'Error in meanSquaredError: ');
                    const losses = squaredDifference($labels, $predictions);
                    return computeWeightedLoss(losses, $weights, reduction);
                }
                const meanSquaredError = op({
                    meanSquaredError_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                function sigmoidCrossEntropyWithLogits_(labels, logits) {
                    const $labels = convertToTensor(labels, 'labels', 'sigmoidCrossEntropyWithLogits');
                    const $logits = convertToTensor(logits, 'logits', 'sigmoidCrossEntropyWithLogits');
                    assertShapesMatch($labels.shape, $logits.shape, 'Error in sigmoidCrossEntropyWithLogits: ');
                    /**
     * Implementation Details:
     *
     * For brevity, let `x = logits`, `z = labels`.  The logistic loss is
     *     z * -log(sigmoid(x)) + (1 - z) * -log(1 - sigmoid(x))
     *   = z * -log(1 / (1 + exp(-x))) + (1 - z) * -log(exp(-x) / (1 + exp(-x)))
     *   = z * log(1 + exp(-x)) + (1 - z) * (-log(exp(-x)) + log(1 + exp(-x)))
     *   = z * log(1 + exp(-x)) + (1 - z) * (x + log(1 + exp(-x))
     *   = (1 - z) * x + log(1 + exp(-x))
     *   = x - x * z + log(1 + exp(-x))
     *
     *   For x < 0, to avoid overflow in exp(-x), we reformulate the above
     *     x - x * z + log(1 + exp(-x))
     *   = log(exp(x)) - x * z + log(1 + exp(-x))
     *   = - x * z + log(1 + exp(x))
     *
     * Hence, to ensure stability and avoid overflow, the implementation uses
     * this equivalent formulation:
     *     max(x, 0) - x * z + log(1 + exp(-abs(x)))
     */
                    const maxOutput = relu($logits);
                    const outputXTarget = mul($logits, $labels);
                    const sigmoidOutput = log1p(exp(neg(abs($logits))));
                    return add$1(sub(maxOutput, outputXTarget), sigmoidOutput);
                }
                /**
 * Computes the sigmoid cross entropy loss between two tensors.
 *
 * If labelSmoothing is nonzero, smooth the labels towards 1/2:
 *
 *   newMulticlassLabels = multiclassLabels * (1 - labelSmoothing)
 *                         + 0.5 * labelSmoothing
 *
 * @param multiClassLabels The ground truth output tensor of shape
 * [batch_size, num_classes], same dimensions as 'predictions'.
 * @param logits The predicted outputs.
 * @param weights Tensor whose rank is either 0, or the same rank as
 *    `labels`, and must be broadcastable to `labels` (i.e., all dimensions
 *    must be either `1`, or the same as the corresponding `losses`
 *    dimension).
 * @param labelSmoothing If greater than 0, then smooth the labels.
 * @param reduction Type of reduction to apply to loss. Should be of type
 *    `Reduction`
 *
 * @doc { heading: 'Training', subheading: 'Losses', namespace: 'losses' }
 */
                function sigmoidCrossEntropy_(multiClassLabels, logits, weights, labelSmoothing = 0, reduction = Reduction.SUM_BY_NONZERO_WEIGHTS) {
                    let $multiClassLabels = convertToTensor(multiClassLabels, 'multiClassLabels', 'sigmoidCrossEntropy');
                    const $logits = convertToTensor(logits, 'logits', 'sigmoidCrossEntropy');
                    let $weights = null;
                    if (weights != null) {
                        $weights = convertToTensor(weights, 'weights', 'sigmoidCrossEntropy');
                    }
                    assertShapesMatch($multiClassLabels.shape, $logits.shape, 'Error in sigmoidCrossEntropy: ');
                    if (labelSmoothing > 0) {
                        const labelSmoothingScalar = scalar(labelSmoothing);
                        const one = scalar(1);
                        const half = scalar(0.5);
                        $multiClassLabels = add$1(mul($multiClassLabels, sub(one, labelSmoothingScalar)), mul(half, labelSmoothingScalar));
                    }
                    const losses = sigmoidCrossEntropyWithLogits_($multiClassLabels, $logits);
                    return computeWeightedLoss(losses, $weights, reduction);
                }
                const sigmoidCrossEntropy = op({
                    sigmoidCrossEntropy_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes softmax cross entropy between logits and labels.
 *
 * Measures the probability error in discrete classification tasks in which
 * the classes are mutually exclusive (each entry is in exactly one class).
 * For example, each CIFAR-10 image is labeled with one and only one label: an
 * image can be a dog or a truck, but not both.
 *
 * `NOTE`: While the classes are mutually exclusive, their probabilities need
 * not be. All that is required is that each row of labels is a valid
 * probability distribution. If they are not, the computation of the gradient
 * will be incorrect.
 *
 * `WARNING`: This op expects unscaled logits, since it performs a softmax on
 * logits internally for efficiency. Do not call this op with the output of
 * softmax, as it will produce incorrect results.
 *
 * logits and labels must have the same shape, e.g. [batch_size, num_classes]
 * and the same dtype.
 * @param labels The labels array.
 * @param logits The logits array.
 * @param dim The dimension softmax would be performed on. Defaults to `-1`
 *     which indicates the last dimension.
 */
                function softmaxCrossEntropyWithLogits_(labels, logits, dim = -1) {
                    if (dim === -1) {
                        dim = logits.rank - 1;
                    }
                    if (dim !== logits.rank - 1) {
                        throw Error(`Softmax cross entropy along a non-last dimension is not yet ` + `supported. Labels / logits was rank ${logits.rank} ` + `and dim was ${dim}`);
                    }
                    // Use a custom gradient for numerical stability.
                    const customOp = customGrad((labels, logits, save) => {
                        // Reference:
                        //   1. http://cs231n.github.io/linear-classify/#softmax
                        //   2. https://blog.feedly.com/tricks-of-the-trade-logsumexp/
                        const keepDims = true;
                        const lse = logSumExp(logits, [dim], keepDims);
                        const logResult = sub(cast(logits, 'float32'), lse);
                        save([labels, logResult]);
                        const costVector = neg(mul(logResult, labels));
                        const value = sum$1(costVector, [dim]);
                        const gradFunc = (dy, saved) => {
                            const [labels, logResult] = saved;
                            const dyShape = expandShapeToKeepDim(dy.shape, [dim]);
                            return [mul(reshape(dy, dyShape), sub(cast(labels, 'float32'), exp(logResult))), mul(reshape(dy, dyShape), sub(exp(logResult), cast(labels, 'float32')))];
                        }
                            ;
                        return {
                            value,
                            gradFunc
                        };
                    }
                    );
                    return customOp(labels, logits);
                }
                /**
 * Computes the softmax cross entropy loss between two tensors.
 *
 * If labelSmoothing is nonzero, smooth the labels towards 1/2:
 *
 *   newOnehotLabels = onehotLabels * (1 - labelSmoothing)
 *                         + labelSmoothing / numClasses
 *
 * @param onehotLabels One hot encoded labels
 *    [batch_size, num_classes], same dimensions as 'predictions'.
 * @param logits The predicted outputs.
 * @param weights Tensor whose rank is either 0, or 1, and must be
 *    broadcastable to `loss`  of shape [batch_size]
 * @param labelSmoothing If greater than 0, then smooth the labels.
 * @param reduction Type of reduction to apply to loss. Should be of type
 *    `Reduction`
 *
 * @doc { heading: 'Training', subheading: 'Losses', namespace: 'losses' }
 */
                function softmaxCrossEntropy_(onehotLabels, logits, weights, labelSmoothing = 0, reduction = Reduction.SUM_BY_NONZERO_WEIGHTS) {
                    let $onehotLabels = convertToTensor(onehotLabels, 'onehotLabels', 'softmaxCrossEntropy');
                    const $logits = convertToTensor(logits, 'logits', 'softmaxCrossEntropy');
                    let $weights = null;
                    if (weights != null) {
                        $weights = convertToTensor(weights, 'weights', 'softmaxCrossEntropy');
                    }
                    assertShapesMatch($onehotLabels.shape, $logits.shape, 'Error in softmaxCrossEntropy: ');
                    if (labelSmoothing > 0) {
                        const labelSmoothingScalar = scalar(labelSmoothing);
                        const one = scalar(1);
                        const numClasses = scalar($onehotLabels.shape[1]);
                        $onehotLabels = add$1(mul($onehotLabels, sub(one, labelSmoothingScalar)), div(labelSmoothingScalar, numClasses));
                    }
                    const losses = softmaxCrossEntropyWithLogits_($onehotLabels, $logits);
                    return computeWeightedLoss(losses, $weights, reduction);
                }
                const softmaxCrossEntropy = op({
                    softmaxCrossEntropy_
                });
                /**
 * @license
 * Copyright 2021 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * The input SparseTensor is represented via the map of inputs {`indices`,
 * `values`, `denseShape`}. The output SparseTensor has the same `denseShape`
 * but with indices `outputIndices` and values `outputValues`. This op inserts a
 * single entry for every row that doesn't have any values. The index is created
 * as `[row, 0, ..., 0]` and the inserted value is `defaultValue`.
 *
 * For example, suppose `spInput` has shape [5, 6] and non-empty values:
 * [0, 1]: a
 * [0, 3]: b
 * [2, 0]: c
 * [3, 1]: d
 *
 * Rows 1 and 4 are empty, so the output will be of shape [5, 6] with values:
 * [0, 1]: a
 * [0, 3]: b
 * [1, 0]: `defaultValue`
 * [2, 0]: c
 * [3, 1]: d
 * [4, 0]: `defaultValue`
 *
 * The output SparseTensor will be in row-major order and will have the same
 * shape as the input.
 *
 * This op also returns an indicator vector shaped [dense_shape[0]] such that
 * emptyRowIndicator[i] = True iff row i was an empty row.
 *
 * And a reverse index map vector shaped [indices.shape[0]] that is used during
 * backpropagation, reverseIndexMap[i] = outi s.t. indices[i, j] ==
 * outputIndices[outi, j] for all j
 *
 * ```js
 * const result = tf.sparse.sparseFillEmptyRows(
 *   [[0, 0], [1, 0], [1, 3], [1, 4], [3, 2], [3, 3]],
 *   [0, 10, 13, 14, 32, 33], [5, 6], -1);
 * console.log(result);
 * result['outputIndices'].print(); // [[0, 0], [1, 0], [1, 3], [1, 4],
 *                                  //  [2, 0], [3, 2], [3, 3], [4, 0]]
 * result['outputValues'].print(); // [0, 10, 13, 14,-1, 32, 33, -1]
 * result['emptyRowIndicator'].print(); // [false, false, true, false, true]
 * result['reverseIndexMap'].print(); // [0, 1, 2, 3, 5, 6]
 * ```
 * @param indices: 2-D. The indices of the sparse tensor.
 * @param values: 1-D. The values of the sparse tensor.
 * @param denseShape: 1-D. The shape of the sparse tensor.
 * @param defaultValue: 0-D. Default value to insert into location [row, 0, ...,
 *     0] for rows missing from the input sparse tensor.
 * @return A map with the following properties:
 *     - outputIndices
 *     - outputValues: 1-D. The values of the filled sparse tensor.
 *     - emptyRowIndicator: 1-D. Whether the dense row was missing in the input
 * sparse tensor.
 *     - reverseIndexMap: 1-D. A map from the input indices to the output
 * indices.
 * @doc {heading: 'Operations', subheading: 'Sparse'}
 */
                function sparseFillEmptyRows_(indices, values, denseShape, defaultValue) {
                    const $indices = convertToTensor(indices, 'indices', 'sparseFillEmptyRows', 'int32');
                    const $values = convertToTensor(values, 'values', 'sparseFillEmptyRows');
                    const $denseShape = convertToTensor(denseShape, 'denseShape', 'sparseFillEmptyRows', 'int32');
                    const $defaultValue = convertToTensor(defaultValue, 'defaultValue', 'sparseFillEmptyRows', $values.dtype);
                    if ($indices.rank !== 2) {
                        throw new Error(`Indices should be Tensor2D but received shape
        ${$indices.shape}`);
                    }
                    if ($values.rank !== 1) {
                        throw new Error(`Values should be Tensor1D but received shape ${$values.shape}`);
                    }
                    if ($denseShape.rank !== 1) {
                        throw new Error(`Dense shape should be Tensor1D but received shape ${$denseShape.shape}`);
                    }
                    if ($defaultValue.rank !== 0) {
                        throw new Error(`Default value should be a scalar but received shape ${$defaultValue.shape}`);
                    }
                    const inputs = {
                        indices: $indices,
                        values: $values,
                        denseShape: $denseShape,
                        defaultValue: $defaultValue
                    };
                    const result = ENGINE.runKernel(SparseFillEmptyRows, inputs);
                    return {
                        outputIndices: result[0],
                        outputValues: result[1],
                        emptyRowIndicator: result[2],
                        reverseIndexMap: result[3]
                    };
                }
                const sparseFillEmptyRows = op({
                    sparseFillEmptyRows_
                });
                /**
 * @license
 * Copyright 2021 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * This operation has the same semantics as reshape on the represented dense
 * tensor. The `inputIndices` are recomputed based on the requested `newShape`.
 * If one component of `newShape` is the special value -1, the size of that
 * dimension is computed so that the total dense size remains constant. At most
 * one component of `newShape` can be -1. The number of dense elements implied
 * by `newShape` must be the same as the number of dense elements originally
 * implied by `inputShape`. Reshaping does not affect the order of values in the
 * SparseTensor. If the input tensor has rank R_in and N non-empty values, and
 * `newShape` has length R_out, then `inputIndices` has shape [N, R_in],
 * `inputShape` has length R_in, `outputIndices` has shape [N, R_out], and
 * `outputShape` has length R_out.
 *
 * ```js
 * const result = tf.sparse.sparseReshape(
 *   [[0, 0, 0], [0, 0, 1], [0, 1, 0], [1, 0, 0], [1, 2, 3]],
 *   [2, 3, 6], [9, -1]);
 * console.log(result);
 * result['outputIndices'].print(); //[[0, 0], [0, 1], [1, 2], [4, 2], [8, 1]]
 * result['outputShape'].print(); // [9, 4]
 * ```
 * @param inputIndices: 2-D. N x R_in matrix with the indices of non-empty
 * values in a SparseTensor.
 * @param inputShape: 1-D. R_in Tensor1D with the input SparseTensor's dense
 * shape.
 * @param newShape: 1-D. R_out Tensor1D with the requested new dense shape.
 * @return A map with the following properties:
 *     - outputIndices: 2-D. N x R_out matrix with the updated indices of
 *       non-empty values in the output SparseTensor.
 *     - outputShape: 1-D. R_out vector with the full dense shape of the output
 *       SparseTensor. This is the same as newShape but with any -1 dimensions
 *        filled in.
 * @doc {heading: 'Operations', subheading: 'Sparse'}
 */
                function sparseReshape_(inputIndices, inputShape, newShape) {
                    const $inputIndices = convertToTensor(inputIndices, 'inputIndices', 'sparseReshape', 'int32');
                    const $inputShape = convertToTensor(inputShape, 'inputShape', 'sparseReshape', 'int32');
                    const $newShape = convertToTensor(newShape, 'newShape', 'sparseReshape', 'int32');
                    if ($inputIndices.rank !== 2) {
                        throw new Error(`Input indices should be Tensor2D but received shape
        ${$inputIndices.shape}`);
                    }
                    if ($inputShape.rank !== 1) {
                        throw new Error(`Input shape should be Tensor1D but received shape ${$inputShape.shape}`);
                    }
                    if ($newShape.rank !== 1) {
                        throw new Error(`New shape should be Tensor1D but received shape ${$newShape.shape}`);
                    }
                    const inputs = {
                        inputIndices: $inputIndices,
                        inputShape: $inputShape,
                        newShape: $newShape
                    };
                    const result = ENGINE.runKernel(SparseReshape, inputs);
                    return {
                        outputIndices: result[0],
                        outputShape: result[1]
                    };
                }
                const sparseReshape = op({
                    sparseReshape_
                });
                /**
 * @license
 * Copyright 2021 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the mean along sparse segments of a tensor.
 *
 * ```js
 * const c = tf.tensor2d([[1,2,3,4], [-1,-2,-3,-4], [6,7,8,9]]);
 * // Select two rows, one segment.
 * const result1 = tf.sparse.sparseSegmentMean(c,
 *                                           tf.tensor1d([0, 1], 'int32'),
 *                                           tf.tensor1d([0, 0], 'int32'));
 * result1.print(); // [[0, 0, 0, 0]]
 *
 * // Select two rows, two segments.
 * const result2 = tf.sparse.sparseSegmentMean(c,
 *                                             tf.tensor1d([0, 1], 'int32'),
 *                                             tf.tensor1d([0, 1], 'int32'));
 * result2.print(); // [[1, 2, 3, 4], [-1, -2, -3, -4]]
 *
 * // Select all rows, two segments.
 * const result3 = tf.sparse.sparseSegmentMean(c,
 *                                             tf.tensor1d([0, 1, 2], 'int32'),
 *                                             tf.tensor1d([0, 1, 1], 'int32'));
 * result3.print(); // [[1.0, 2.0, 3.0, 4.0], [2.5, 2.5, 2.5, 2.5]]
 * ```
 * @param data: A Tensor of at least one dimension with data that will be
 *     assembled in the output.
 * @param indices: A 1-D Tensor with indices into data. Has same rank as
 *     segmentIds.
 * @param segmentIds: A 1-D Tensor with indices into the output Tensor. Values
 *     should be sorted and can be repeated.
 * @return Has same shape as data, except for dimension 0 which has equal to
 *         the number of segments.
 *
 * @doc {heading: 'Operations', subheading: 'Sparse'}
 */
                function sparseSegmentMean_(data, indices, segmentIds) {
                    const $data = convertToTensor(data, 'data', 'sparseSegmentMean');
                    const $indices = convertToTensor(indices, 'indices', 'sparseSegmentMean', 'int32');
                    const $segmentIds = convertToTensor(segmentIds, 'segmentIds', 'sparseSegmentMean', 'int32');
                    if ($data.rank < 1) {
                        throw new Error(`Data should be at least 1 dimensional but received scalar`);
                    }
                    if ($indices.rank !== 1) {
                        throw new Error(`Indices should be Tensor1D but received shape
          ${$indices.shape}`);
                    }
                    if ($segmentIds.rank !== 1) {
                        throw new Error(`Segment ids should be Tensor1D but received shape
          ${$segmentIds.shape}`);
                    }
                    const inputs = {
                        data: $data,
                        indices: $indices,
                        segmentIds: $segmentIds
                    };
                    return ENGINE.runKernel(SparseSegmentMean, inputs);
                }
                const sparseSegmentMean = op({
                    sparseSegmentMean_
                });
                /**
 * @license
 * Copyright 2021 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Computes the sum along sparse segments of a tensor.
 *
 * ```js
 * const c = tf.tensor2d([[1,2,3,4], [-1,-2,-3,-4], [5,6,7,8]]);
 * // Select two rows, one segment.
 * const result1 = tf.sparse.sparseSegmentSum(c,
 *                                           tf.tensor1d([0, 1], 'int32'),
 *                                           tf.tensor1d([0, 0], 'int32'));
 * result1.print(); // [[0, 0, 0, 0]]
 *
 * // Select two rows, two segments.
 * const result2 = tf.sparse.sparseSegmentSum(c,
 *                                           tf.tensor1d([0, 1], 'int32'),
 *                                           tf.tensor1d([0, 1], 'int32'));
 * result2.print(); // [[1, 2, 3, 4], [-1, -2, -3, -4]]
 *
 * // Select all rows, two segments.
 * const result3 = tf.sparse.sparseSegmentSum(c,
 *                                           tf.tensor1d([0, 1, 2], 'int32'),
 *                                           tf.tensor1d([0, 0, 1], 'int32'));
 * result3.print(); // [[0, 0, 0, 0], [5, 6, 7, 8]]
 * ```
 * @param data: A Tensor of at least one dimension with data that will be
 *     assembled in the output.
 * @param indices: A 1-D Tensor with indices into data. Has same rank as
 *     segmentIds.
 * @param segmentIds: A 1-D Tensor with indices into the output Tensor. Values
 *     should be sorted and can be repeated.
 * @return Has same shape as data, except for dimension 0 which has equal to
 *         the number of segments.
 *
 * @doc {heading: 'Operations', subheading: 'Sparse'}
 */
                function sparseSegmentSum_(data, indices, segmentIds) {
                    const $data = convertToTensor(data, 'data', 'sparseSegmentSum');
                    const $indices = convertToTensor(indices, 'indices', 'sparseSegmentSum', 'int32');
                    const $segmentIds = convertToTensor(segmentIds, 'segmentIds', 'sparseSegmentSum', 'int32');
                    if ($data.rank < 1) {
                        throw new Error(`Data should be at least 1 dimensional but received scalar`);
                    }
                    if ($indices.rank !== 1) {
                        throw new Error(`Indices should be Tensor1D but received shape
         ${$indices.shape}`);
                    }
                    if ($segmentIds.rank !== 1) {
                        throw new Error(`Segment ids should be Tensor1D but received shape
         ${$segmentIds.shape}`);
                    }
                    const inputs = {
                        data: $data,
                        indices: $indices,
                        segmentIds: $segmentIds
                    };
                    return ENGINE.runKernel(SparseSegmentSum, inputs);
                }
                const sparseSegmentSum = op({
                    sparseSegmentSum_
                });
                /**
 * @license
 * Copyright 2021 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Creates ngrams from ragged string data.
 *
 * This op accepts a ragged tensor with 1 ragged dimension containing only
 * strings and outputs a ragged tensor with 1 ragged dimension containing ngrams
 * of that string, joined along the innermost axis.
 *
 * ```js
 * const result = tf.string.stringNGrams(
 *   ['a', 'b', 'c', 'd'], tf.tensor1d([0, 2, 4], 'int32'),
 *   '|', [1, 2], 'LP', 'RP', -1, false);
 * result['nGrams'].print(); // ['a', 'b', 'LP|a', 'a|b', 'b|RP',
 *                           //  'c', 'd', 'LP|c', 'c|d', 'd|RP']
 * result['nGramsSplits'].print(); // [0, 5, 10]
 * ```
 * @param data: The values tensor of the ragged string tensor to make ngrams out
 *     of. Must be a 1D string tensor.
 * @param dataSplits: The splits tensor of the ragged string tensor to make
 *     ngrams out of.
 * @param separator: The string to append between elements of the token. Use ""
 *     for no separator.
 * @param nGramWidths: The sizes of the ngrams to create.
 * @param leftPad: The string to use to pad the left side of the ngram sequence.
 *     Only used if pad_width !== 0.
 * @param rightPad: The string to use to pad the right side of the ngram
 *     sequence. Only used if pad_width !== 0.
 * @param padWidth: The number of padding elements to add to each side of each
 *     sequence. Note that padding will never be greater than `nGramWidths`-1
 *     regardless of this value. If `padWidth`=-1, then add max(`nGramWidths`)-1
 *     elements.
 * @param preserveShortSequences: If true, then ensure that at least one ngram
 *     is generated for each input sequence. In particular, if an input sequence
 *     is shorter than min(ngramWidth) + 2*padWidth, then generate a single
 *     ngram containing the entire sequence. If false, then no ngrams are
 *     generated for these short input sequences.
 * @return A map with the following properties:
 *     - nGrams: The values tensor of the output ngrams ragged tensor.
 *     - nGramsSplits: The splits tensor of the output ngrams ragged tensor.
 *
 * @doc {heading: 'Operations', subheading: 'String'}
 */
                function stringNGrams_(data, dataSplits, separator, nGramWidths, leftPad, rightPad, padWidth, preserveShortSequences) {
                    const $data = convertToTensor(data, 'data', 'stringNGrams', 'string');
                    if ($data.dtype !== 'string') {
                        throw new Error('Data must be of datatype string');
                    }
                    if ($data.shape.length !== 1) {
                        throw new Error(`Data must be a vector, saw: ${$data.shape}`);
                    }
                    const $dataSplits = convertToTensor(dataSplits, 'dataSplits', 'stringNGrams');
                    if ($dataSplits.dtype !== 'int32') {
                        throw new Error('Data splits must be of datatype int32');
                    }
                    const attrs = {
                        separator,
                        nGramWidths,
                        leftPad,
                        rightPad,
                        padWidth,
                        preserveShortSequences
                    };
                    const inputs = {
                        data: $data,
                        dataSplits: $dataSplits
                    };
                    const result = ENGINE.runKernel(StringNGrams, inputs, attrs);
                    return {
                        nGrams: result[0],
                        nGramsSplits: result[1]
                    };
                }
                const stringNGrams = op({
                    stringNGrams_
                });
                /**
 * @license
 * Copyright 2021 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Split elements of `input` based on `delimiter` into a SparseTensor .
 *
 * Let N be the size of source (typically N will be the batch size). Split each
 * element of `input` based on `delimiter` and return a SparseTensor containing
 * the splitted tokens. Empty tokens are ignored if `skipEmpty` is set to True.
 *
 * `delimiter` can be empty, or a string of split characters. If `delimiter` is
 * an empty string, each element of `input` is split into individual
 * character strings. Otherwise every character of `delimiter` is a potential
 * split point.
 *
 * ```js
 * const result = tf.string.stringSplit(['hello world',  'a b c'], ' ');
 * result['indices'].print(); // [[0, 0], [0, 1], [1, 0], [1, 1], [1, 2]]
 * result['values'].print(); // ['hello', 'world', 'a', 'b', 'c']
 * result['shape'].print(); // [2, 3]
 * ```
 * @param input: 1-D. Strings to split.
 * @param delimiter: 0-D. Delimiter characters, or empty string.
 * @param skipEmpty: Optional. If true, skip the empty strings from the result.
 *     Defaults to true.
 * @return A map with the following properties:
 *     - indices: A dense matrix of int32 representing the indices of the sparse
 *       tensor.
 *     - values: A vector of strings corresponding to the splited values.
 *     - shape: a length-2 vector of int32 representing the shape of the sparse
 * tensor, where the first value is N and the second value is the maximum number
 * of tokens in a single input entry.
 *
 * @doc {heading: 'Operations', subheading: 'String'}
 */
                function stringSplit_(input, delimiter, skipEmpty = true) {
                    const $input = convertToTensor(input, 'input', 'stringSplit', 'string');
                    const $delimiter = convertToTensor(delimiter, 'delimiter', 'stringSplit', 'string');
                    if ($input.rank !== 1) {
                        throw new Error(`Input should be Tensor1D but received shape ${$input.shape}`);
                    }
                    if ($delimiter.rank !== 0) {
                        throw new Error(`Delimiter should be a scalar but received shape ${$delimiter.shape}`);
                    }
                    const attrs = {
                        skipEmpty
                    };
                    const inputs = {
                        input: $input,
                        delimiter: $delimiter
                    };
                    const result = ENGINE.runKernel(StringSplit, inputs, attrs);
                    return {
                        indices: result[0],
                        values: result[1],
                        shape: result[2]
                    };
                }
                const stringSplit = op({
                    stringSplit_
                });
                /**
 * @license
 * Copyright 2021 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Converts each string in the input Tensor to its hash mod by a number of
 * buckets.
 *
 * The hash function is deterministic on the content of the string within the
 * process and will never change. However, it is not suitable for cryptography.
 * This function may be used when CPU time is scarce and inputs are trusted or
 * unimportant. There is a risk of adversaries constructing inputs that all hash
 * to the same bucket.
 *
 * ```js
 * const result = tf.string.stringToHashBucketFast(
 *   ['Hello', 'TensorFlow', '2.x'], 3);
 * result.print(); // [0, 2, 2]
 * ```
 * @param input: The strings to assign a hash bucket.
 * @param numBuckets: The number of buckets.
 * @return A Tensor of the same shape as the input tensor.
 *
 * @doc {heading: 'Operations', subheading: 'String'}
 */
                function stringToHashBucketFast_(input, numBuckets) {
                    const $input = convertToTensor(input, 'input', 'stringToHashBucketFast', 'string');
                    const attrs = {
                        numBuckets
                    };
                    if (numBuckets <= 0) {
                        throw new Error(`Number of buckets must be at least 1`);
                    }
                    const inputs = {
                        input: $input
                    };
                    return ENGINE.runKernel(StringToHashBucketFast, inputs, attrs);
                }
                const stringToHashBucketFast = op({
                    stringToHashBucketFast_
                });
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const spectral = {
                    fft,
                    ifft,
                    rfft,
                    irfft
                };
                const signal = {
                    hammingWindow,
                    hannWindow,
                    frame,
                    stft
                };
                const image = {
                    flipLeftRight,
                    grayscaleToRGB,
                    resizeNearestNeighbor,
                    resizeBilinear,
                    rotateWithOffset,
                    cropAndResize,
                    nonMaxSuppression,
                    nonMaxSuppressionAsync,
                    nonMaxSuppressionWithScore,
                    nonMaxSuppressionWithScoreAsync,
                    nonMaxSuppressionPadded,
                    nonMaxSuppressionPaddedAsync,
                    threshold,
                    transform
                };
                const linalg = {
                    bandPart,
                    gramSchmidt,
                    qr
                };
                const losses = {
                    absoluteDifference,
                    computeWeightedLoss,
                    cosineDistance,
                    hingeLoss,
                    huberLoss,
                    logLoss,
                    meanSquaredError,
                    sigmoidCrossEntropy,
                    softmaxCrossEntropy
                };
                const sparse = {
                    sparseFillEmptyRows,
                    sparseReshape,
                    sparseSegmentMean,
                    sparseSegmentSum
                };
                // tslint:disable-next-line:variable-name
                const string = {
                    stringNGrams,
                    stringSplit,
                    stringToHashBucketFast
                };
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /** @doc {heading: 'Training', subheading: 'Classes', namespace: 'train'} */
                class Optimizer extends Serializable {
                    /**
     * Executes `f()` and minimizes the scalar output of `f()` by computing
     * gradients of y with respect to the list of trainable variables provided by
     * `varList`. If no list is provided, it defaults to all trainable variables.
     *
     * @param f The function to execute and whose output to minimize.
     * @param returnCost Whether to return the scalar cost value produced by
     * executing `f()`.
     * @param varList An optional list of variables to update. If specified, only
     * the trainable variables in varList will be updated by minimize. Defaults to
     * all trainable variables.
     *
     * @doc {heading: 'Training', subheading: 'Optimizers'}
     */
                    minimize(f, returnCost = false, varList) {
                        const { value, grads } = this.computeGradients(f, varList);
                        if (varList != null) {
                            const gradArray = varList.map(v => ({
                                name: v.name,
                                tensor: grads[v.name]
                            }));
                            this.applyGradients(gradArray);
                        } else {
                            this.applyGradients(grads);
                        }
                        // Dispose gradients.
                        dispose(grads);
                        if (returnCost) {
                            return value;
                        } else {
                            value.dispose();
                            return null;
                        }
                    }
                    /**
     * The number of iterations that this optimizer instance has been invoked for.
     */
                    get iterations() {
                        if (this.iterations_ == null) {
                            this.iterations_ = 0;
                        }
                        return this.iterations_;
                    }
                    incrementIterations() {
                        this.iterations_ = this.iterations + 1;
                    }
                    /**
     * Executes f() and computes the gradient of the scalar output of f() with
     * respect to the list of trainable variables provided by `varList`. If no
     * list is provided, it defaults to all trainable variables.
     *
     * @param f The function to execute and whose output to use for computing
     * gradients with respect to variables.
     * @param varList An optional list of variables to compute gradients with
     * respect to. If specified, only the trainable variables in varList will have
     * gradients computed with respect to. Defaults to all trainable variables.
     *
     * @doc {heading: 'Training', subheading: 'Optimizers'}
     */
                    computeGradients(f, varList) {
                        return variableGrads(f, varList);
                    }
                    /**
     * Dispose the variables (if any) owned by this optimizer instance.
     */
                    dispose() {
                        if (this.iterations_ != null) {
                            dispose(this.iterations_);
                        }
                    }
                    async saveIterations() {
                        if (this.iterations_ == null) {
                            this.iterations_ = 0;
                        }
                        return {
                            name: 'iter',
                            // TODO(cais): Use 'int64' type when available.
                            tensor: scalar(this.iterations_, 'int32')
                        };
                    }
                    async getWeights() {
                        throw new Error('getWeights() is not implemented for this optimizer yet.');
                    }
                    async setWeights(weightValues) {
                        throw new Error(`setWeights() is not implemented for this optimizer class ` + `${this.getClassName()}`);
                    }
                    /**
     * Extract the first element of the weight values and set it
     * as the iterations counter variable of this instance of optimizer.
     *
     * @param weightValues
     * @returns Weight values with the first element consumed and excluded.
     */
                    async extractIterations(weightValues) {
                        this.iterations_ = (await weightValues[0].tensor.data())[0];
                        return weightValues.slice(1);
                    }
                }
                Object.defineProperty(Optimizer, Symbol.hasInstance, {
                    value: instance => {
                        return instance.minimize != null && instance.computeGradients != null && instance.applyGradients != null;
                    }
                });
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /** @doclink Optimizer */
                class AdadeltaOptimizer extends Optimizer {
                    constructor(learningRate, rho, epsilon = null) {
                        super();
                        this.learningRate = learningRate;
                        this.rho = rho;
                        this.epsilon = epsilon;
                        this.accumulatedGrads = [];
                        this.accumulatedUpdates = [];
                        if (epsilon == null) {
                            this.epsilon = ENGINE.backend.epsilon();
                        }
                    }
                    applyGradients(variableGradients) {
                        const variableNames = Array.isArray(variableGradients) ? variableGradients.map(item => item.name) : Object.keys(variableGradients);
                        variableNames.forEach((name, i) => {
                            const value = ENGINE.registeredVariables[name];
                            const trainable = false;
                            if (this.accumulatedGrads[i] == null) {
                                this.accumulatedGrads[i] = {
                                    originalName: `${name}/accum_grad`,
                                    variable: tidy(() => zerosLike(value).variable(trainable))
                                };
                            }
                            if (this.accumulatedUpdates[i] == null) {
                                this.accumulatedUpdates[i] = {
                                    originalName: `${name}/accum_var`,
                                    variable: tidy(() => zerosLike(value).variable(trainable))
                                };
                            }
                            const gradient = Array.isArray(variableGradients) ? variableGradients[i].tensor : variableGradients[name];
                            if (gradient == null) {
                                return;
                            }
                            const accumulatedGrad = this.accumulatedGrads[i].variable;
                            const accumulatedUpdate = this.accumulatedUpdates[i].variable;
                            tidy(() => {
                                const newAccumulatedGrad = add$1(mul(accumulatedGrad, this.rho), mul(square(gradient), 1 - this.rho));
                                const updates = mul(div(sqrt(add$1(accumulatedUpdate, this.epsilon)), sqrt(add$1(accumulatedGrad, this.epsilon))), gradient);
                                const newAccumulatedUpdate = add$1(mul(accumulatedUpdate, this.rho), mul(square(updates), 1 - this.rho));
                                accumulatedGrad.assign(newAccumulatedGrad);
                                accumulatedUpdate.assign(newAccumulatedUpdate);
                                const newValue = add$1(mul(updates, -this.learningRate), value);
                                value.assign(newValue);
                            }
                            );
                        }
                        );
                        this.incrementIterations();
                    }
                    dispose() {
                        if (this.accumulatedUpdates != null) {
                            dispose(this.accumulatedGrads.map(v => v.variable));
                            dispose(this.accumulatedUpdates.map(v => v.variable));
                        }
                    }
                    async getWeights() {
                        // Order matters for Python compatibility.
                        const variables = [...this.accumulatedGrads, ...this.accumulatedUpdates];
                        return [await this.saveIterations()].concat(variables.map(v => ({
                            name: v.originalName,
                            tensor: v.variable
                        })));
                    }
                    async setWeights(weightValues) {
                        weightValues = await this.extractIterations(weightValues);
                        const variableCount = weightValues.length / 2;
                        const trainable = false;
                        this.accumulatedGrads = weightValues.slice(0, variableCount).map(v => ({
                            originalName: v.name,
                            variable: v.tensor.variable(trainable)
                        }));
                        this.accumulatedUpdates = weightValues.slice(variableCount, variableCount * 2).map(v => ({
                            originalName: v.name,
                            variable: v.tensor.variable(trainable)
                        }));
                    }
                    getConfig() {
                        return {
                            'learningRate': this.learningRate,
                            'rho': this.rho,
                            'epsilon': this.epsilon
                        };
                    }
                    /** @nocollapse */
                    static fromConfig(cls, config) {
                        return new cls(config['learningRate'], config['rho'], config['epsilon']);
                    }
                }
                /** @nocollapse */
                AdadeltaOptimizer.className = 'Adadelta';
                // Name matters for Python compatibility.
                registerClass(AdadeltaOptimizer);
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /** @doclink Optimizer */
                class AdagradOptimizer extends Optimizer {
                    constructor(learningRate, initialAccumulatorValue = 0.1) {
                        super();
                        this.learningRate = learningRate;
                        this.initialAccumulatorValue = initialAccumulatorValue;
                        this.accumulatedGrads = [];
                    }
                    applyGradients(variableGradients) {
                        const variableNames = Array.isArray(variableGradients) ? variableGradients.map(item => item.name) : Object.keys(variableGradients);
                        variableNames.forEach((name, i) => {
                            const value = ENGINE.registeredVariables[name];
                            if (this.accumulatedGrads[i] == null) {
                                const trainable = false;
                                this.accumulatedGrads[i] = {
                                    originalName: `${name}/accumulator`,
                                    variable: tidy(() => fill(value.shape, this.initialAccumulatorValue).variable(trainable))
                                };
                            }
                            const gradient = Array.isArray(variableGradients) ? variableGradients[i].tensor : variableGradients[name];
                            if (gradient == null) {
                                return;
                            }
                            const accumulatedGrad = this.accumulatedGrads[i].variable;
                            tidy(() => {
                                const newAccumulatedGrad = add$1(accumulatedGrad, square(gradient));
                                accumulatedGrad.assign(newAccumulatedGrad);
                                const newValue = add$1(mul(div(gradient, sqrt(add$1(newAccumulatedGrad, ENGINE.backend.epsilon()))), -this.learningRate), value);
                                value.assign(newValue);
                            }
                            );
                        }
                        );
                        this.incrementIterations();
                    }
                    dispose() {
                        if (this.accumulatedGrads != null) {
                            dispose(this.accumulatedGrads.map(v => v.variable));
                        }
                    }
                    async getWeights() {
                        // Order matters for Python compatibility.
                        return [await this.saveIterations()].concat(this.accumulatedGrads.map(v => ({
                            name: v.originalName,
                            tensor: v.variable
                        })));
                    }
                    async setWeights(weightValues) {
                        weightValues = await this.extractIterations(weightValues);
                        const trainable = false;
                        this.accumulatedGrads = weightValues.map(v => ({
                            originalName: v.name,
                            variable: v.tensor.variable(trainable)
                        }));
                    }
                    getConfig() {
                        return {
                            'learningRate': this.learningRate,
                            'initialAccumulatorValue': this.initialAccumulatorValue
                        };
                    }
                    /** @nocollapse */
                    static fromConfig(cls, config) {
                        return new cls(config['learningRate'], config['initialAccumulatorValue']);
                    }
                }
                /** @nocollapse */
                AdagradOptimizer.className = 'Adagrad';
                // Note: Name matters for Python compatibility.
                registerClass(AdagradOptimizer);
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                class AdamOptimizer extends Optimizer {
                    constructor(learningRate, beta1, beta2, epsilon = null) {
                        super();
                        this.learningRate = learningRate;
                        this.beta1 = beta1;
                        this.beta2 = beta2;
                        this.epsilon = epsilon;
                        this.accumulatedFirstMoment = [];
                        this.accumulatedSecondMoment = [];
                        tidy(() => {
                            // accB* will be updated by batch.
                            this.accBeta1 = scalar(beta1).variable();
                            this.accBeta2 = scalar(beta2).variable();
                        }
                        );
                        if (epsilon == null) {
                            this.epsilon = ENGINE.backend.epsilon();
                        }
                    }
                    applyGradients(variableGradients) {
                        const varNames = Array.isArray(variableGradients) ? variableGradients.map(v => v.name) : Object.keys(variableGradients);
                        tidy(() => {
                            const oneMinusAccBeta1 = sub(1, this.accBeta1);
                            const oneMinusAccBeta2 = sub(1, this.accBeta2);
                            varNames.forEach((name, i) => {
                                const value = ENGINE.registeredVariables[name];
                                const trainable = false;
                                if (this.accumulatedFirstMoment[i] == null) {
                                    this.accumulatedFirstMoment[i] = {
                                        originalName: `${name}/m`,
                                        variable: tidy(() => zerosLike(value).variable(trainable))
                                    };
                                }
                                if (this.accumulatedSecondMoment[i] == null) {
                                    this.accumulatedSecondMoment[i] = {
                                        originalName: `${name}/v`,
                                        variable: tidy(() => zerosLike(value).variable(trainable))
                                    };
                                }
                                const gradient = Array.isArray(variableGradients) ? variableGradients[i].tensor : variableGradients[name];
                                if (gradient == null) {
                                    return;
                                }
                                const firstMoment = this.accumulatedFirstMoment[i].variable;
                                const secondMoment = this.accumulatedSecondMoment[i].variable;
                                const newFirstMoment = add$1(mul(firstMoment, this.beta1), mul(gradient, 1 - this.beta1));
                                const newSecondMoment = add$1(mul(secondMoment, this.beta2), mul(square(gradient), 1 - this.beta2));
                                const biasCorrectedFirstMoment = div(newFirstMoment, oneMinusAccBeta1);
                                const biasCorrectedSecondMoment = div(newSecondMoment, oneMinusAccBeta2);
                                firstMoment.assign(newFirstMoment);
                                secondMoment.assign(newSecondMoment);
                                const newValue = add$1(mul(div(biasCorrectedFirstMoment, add$1(sqrt(biasCorrectedSecondMoment), this.epsilon)), -this.learningRate), value);
                                value.assign(newValue);
                            }
                            );
                            this.accBeta1.assign(mul(this.accBeta1, this.beta1));
                            this.accBeta2.assign(mul(this.accBeta2, this.beta2));
                        }
                        );
                        this.incrementIterations();
                    }
                    dispose() {
                        this.accBeta1.dispose();
                        this.accBeta2.dispose();
                        if (this.accumulatedFirstMoment != null) {
                            dispose(this.accumulatedFirstMoment.map(v => v.variable));
                        }
                        if (this.accumulatedSecondMoment != null) {
                            dispose(this.accumulatedSecondMoment.map(v => v.variable));
                        }
                    }
                    async getWeights() {
                        // Order matters for Python compatibility.
                        const variables = [...this.accumulatedFirstMoment, ...this.accumulatedSecondMoment];
                        return [await this.saveIterations()].concat(variables.map(v => ({
                            name: v.originalName,
                            tensor: v.variable
                        })));
                    }
                    async setWeights(weightValues) {
                        weightValues = await this.extractIterations(weightValues);
                        tidy(() => {
                            this.accBeta1.assign(pow(this.beta1, this.iterations_ + 1));
                            this.accBeta2.assign(pow(this.beta2, this.iterations_ + 1));
                        }
                        );
                        const variableCount = weightValues.length / 2;
                        const trainable = false;
                        this.accumulatedFirstMoment = weightValues.slice(0, variableCount).map(v => ({
                            originalName: v.name,
                            variable: v.tensor.variable(trainable)
                        }));
                        this.accumulatedSecondMoment = weightValues.slice(variableCount, variableCount * 2).map(v => ({
                            originalName: v.name,
                            variable: v.tensor.variable(trainable)
                        }));
                    }
                    getConfig() {
                        return {
                            'learningRate': this.learningRate,
                            'beta1': this.beta1,
                            'beta2': this.beta2,
                            'epsilon': this.epsilon
                        };
                    }
                    /** @nocollapse */
                    static fromConfig(cls, config) {
                        return new cls(config['learningRate'], config['beta1'], config['beta2'], config['epsilon']);
                    }
                }
                /** @nocollapse */
                AdamOptimizer.className = 'Adam';
                // Note: Name matters for Python compatibility.
                registerClass(AdamOptimizer);
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                class AdamaxOptimizer extends Optimizer {
                    constructor(learningRate, beta1, beta2, epsilon = null, decay = 0.0) {
                        super();
                        this.learningRate = learningRate;
                        this.beta1 = beta1;
                        this.beta2 = beta2;
                        this.epsilon = epsilon;
                        this.decay = decay;
                        this.accumulatedFirstMoment = [];
                        this.accumulatedWeightedInfNorm = [];
                        tidy(() => {
                            this.iteration = scalar(0).variable();
                            this.accBeta1 = scalar(beta1).variable();
                        }
                        );
                        if (epsilon == null) {
                            this.epsilon = ENGINE.backend.epsilon();
                        }
                    }
                    applyGradients(variableGradients) {
                        const variableNames = Array.isArray(variableGradients) ? variableGradients.map(item => item.name) : Object.keys(variableGradients);
                        tidy(() => {
                            const oneMinusAccBeta1 = sub(1, this.accBeta1);
                            const lr = div(-this.learningRate, add$1(mul(this.iteration, this.decay), 1));
                            variableNames.forEach((name, i) => {
                                const value = ENGINE.registeredVariables[name];
                                const trainable = false;
                                if (this.accumulatedFirstMoment[i] == null) {
                                    this.accumulatedFirstMoment[i] = {
                                        originalName: `${name}/m`,
                                        variable: zerosLike(value).variable(trainable)
                                    };
                                }
                                if (this.accumulatedWeightedInfNorm[i] == null) {
                                    this.accumulatedWeightedInfNorm[i] = {
                                        originalName: `${name}/v`,
                                        variable: zerosLike(value).variable(trainable)
                                    };
                                }
                                const gradient = Array.isArray(variableGradients) ? variableGradients[i].tensor : variableGradients[name];
                                if (gradient == null) {
                                    return;
                                }
                                const firstMoment = this.accumulatedFirstMoment[i].variable;
                                const weightedInfNorm = this.accumulatedWeightedInfNorm[i].variable;
                                const newFirstMoment = add$1(mul(firstMoment, this.beta1), mul(gradient, 1 - this.beta1));
                                const ut0 = mul(weightedInfNorm, this.beta2);
                                const ut1 = abs(gradient);
                                const newWeightedInfNorm = maximum(ut0, ut1);
                                firstMoment.assign(newFirstMoment);
                                weightedInfNorm.assign(newWeightedInfNorm);
                                const newValue = add$1(mul(div(lr, oneMinusAccBeta1), div(newFirstMoment, add$1(newWeightedInfNorm, this.epsilon))), value);
                                value.assign(newValue);
                            }
                            );
                            this.iteration.assign(add$1(this.iteration, 1));
                            this.accBeta1.assign(mul(this.accBeta1, this.beta1));
                        }
                        );
                        this.incrementIterations();
                    }
                    dispose() {
                        this.accBeta1.dispose();
                        this.iteration.dispose();
                        if (this.accumulatedFirstMoment != null) {
                            dispose(this.accumulatedFirstMoment.map(v => v.variable));
                        }
                        if (this.accumulatedWeightedInfNorm != null) {
                            dispose(this.accumulatedWeightedInfNorm.map(v => v.variable));
                        }
                    }
                    async getWeights() {
                        throw new Error('getWeights() is not implemented for Adamax yet.');
                    }
                    async setWeights(weightValues) {
                        throw new Error('setWeights() is not implemented for Adamax yet.');
                    }
                    getConfig() {
                        return {
                            'learningRate': this.learningRate,
                            'beta1': this.beta1,
                            'beta2': this.beta2,
                            'epsilon': this.epsilon,
                            'decay': this.decay
                        };
                    }
                    /** @nocollapse */
                    static fromConfig(cls, config) {
                        return new cls(config['learningRate'], config['beta1'], config['beta2'], config['epsilon'], config['decay']);
                    }
                }
                /** @nocollapse */
                AdamaxOptimizer.className = 'Adamax';
                // Note: Name matters for Python compatbility.
                registerClass(AdamaxOptimizer);
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /** @doclink Optimizer */
                class SGDOptimizer extends Optimizer {
                    constructor(learningRate) {
                        super();
                        this.learningRate = learningRate;
                        this.setLearningRate(learningRate);
                    }
                    applyGradients(variableGradients) {
                        const varNames = Array.isArray(variableGradients) ? variableGradients.map(v => v.name) : Object.keys(variableGradients);
                        varNames.forEach((name, i) => {
                            const gradient = Array.isArray(variableGradients) ? variableGradients[i].tensor : variableGradients[name];
                            if (gradient == null) {
                                return;
                            }
                            const value = ENGINE.registeredVariables[name];
                            tidy(() => {
                                const newValue = add$1(mul(this.c, gradient), value);
                                value.assign(newValue);
                            }
                            );
                        }
                        );
                        this.incrementIterations();
                    }
                    /**
     * Sets the learning rate of the optimizer.
     */
                    setLearningRate(learningRate) {
                        this.learningRate = learningRate;
                        if (this.c != null) {
                            this.c.dispose();
                        }
                        this.c = keep(scalar(-learningRate));
                    }
                    dispose() {
                        this.c.dispose();
                    }
                    async getWeights() {
                        return [await this.saveIterations()];
                    }
                    async setWeights(weightValues) {
                        weightValues = await this.extractIterations(weightValues);
                        if (weightValues.length !== 0) {
                            throw new Error('SGD optimizer does not have settable weights.');
                        }
                    }
                    getConfig() {
                        return {
                            'learningRate': this.learningRate
                        };
                    }
                    /** @nocollapse */
                    static fromConfig(cls, config) {
                        return new cls(config['learningRate']);
                    }
                }
                /** @nocollapse */
                SGDOptimizer.className = 'SGD';
                // Note: Name matters for Python compatibility.
                registerClass(SGDOptimizer);
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /** @doclink Optimizer */
                class MomentumOptimizer extends SGDOptimizer {
                    constructor(learningRate, momentum, useNesterov = false) {
                        super(learningRate);
                        this.learningRate = learningRate;
                        this.momentum = momentum;
                        this.useNesterov = useNesterov;
                        this.accumulations = [];
                        this.m = scalar(this.momentum);
                    }
                    applyGradients(variableGradients) {
                        const variableNames = Array.isArray(variableGradients) ? variableGradients.map(item => item.name) : Object.keys(variableGradients);
                        variableNames.forEach((name, i) => {
                            const value = ENGINE.registeredVariables[name];
                            if (this.accumulations[i] == null) {
                                const trainable = false;
                                this.accumulations[i] = {
                                    originalName: `${name}/momentum`,
                                    variable: tidy(() => zerosLike(value).variable(trainable))
                                };
                            }
                            const accumulation = this.accumulations[i].variable;
                            const gradient = Array.isArray(variableGradients) ? variableGradients[i].tensor : variableGradients[name];
                            if (gradient == null) {
                                return;
                            }
                            tidy(() => {
                                let newValue;
                                const newAccumulation = add$1(mul(this.m, accumulation), gradient);
                                if (this.useNesterov) {
                                    newValue = add$1(mul(this.c, add$1(gradient, mul(newAccumulation, this.m))), value);
                                } else {
                                    newValue = add$1(mul(this.c, newAccumulation), value);
                                }
                                accumulation.assign(newAccumulation);
                                value.assign(newValue);
                            }
                            );
                        }
                        );
                        this.incrementIterations();
                    }
                    dispose() {
                        this.m.dispose();
                        if (this.accumulations != null) {
                            dispose(this.accumulations.map(v => v.variable));
                        }
                    }
                    /**
     * Sets the momentum of the optimizer.
     *
     * @param momentum
     */
                    setMomentum(momentum) {
                        this.momentum = momentum;
                    }
                    async getWeights() {
                        // Order matters for Python compatibility.
                        return [await this.saveIterations()].concat(this.accumulations.map(v => ({
                            name: v.originalName,
                            tensor: v.variable
                        })));
                    }
                    async setWeights(weightValues) {
                        weightValues = await this.extractIterations(weightValues);
                        const trainable = false;
                        this.accumulations = weightValues.map(v => ({
                            originalName: v.name,
                            variable: v.tensor.variable(trainable)
                        }));
                    }
                    getConfig() {
                        return {
                            'learningRate': this.learningRate,
                            'momentum': this.momentum,
                            'useNesterov': this.useNesterov
                        };
                    }
                    /** @nocollapse */
                    static fromConfig(cls, config) {
                        return new cls(config['learningRate'], config['momentum'], config['useNesterov']);
                    }
                }
                /** @nocollapse */
                // Name matters for Python compatibility.
                MomentumOptimizer.className = 'Momentum';
                registerClass(MomentumOptimizer);
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /** @doclink Optimizer */
                class RMSPropOptimizer extends Optimizer {
                    constructor(learningRate, decay = 0.9, momentum = 0.0, epsilon = null, centered = false) {
                        super();
                        this.learningRate = learningRate;
                        this.decay = decay;
                        this.momentum = momentum;
                        this.epsilon = epsilon;
                        this.accumulatedMeanSquares = [];
                        this.accumulatedMoments = [];
                        this.accumulatedMeanGrads = [];
                        this.centered = centered;
                        if (epsilon == null) {
                            this.epsilon = ENGINE.backend.epsilon();
                        }
                        if (learningRate == null) {
                            throw new Error(`learningRate for RMSPropOptimizer must be defined.`);
                        }
                    }
                    applyGradients(variableGradients) {
                        const variableNames = Array.isArray(variableGradients) ? variableGradients.map(item => item.name) : Object.keys(variableGradients);
                        variableNames.forEach((name, i) => {
                            const value = ENGINE.registeredVariables[name];
                            const trainable = false;
                            if (this.accumulatedMeanSquares[i] == null) {
                                this.accumulatedMeanSquares[i] = {
                                    originalName: `${name}/rms`,
                                    variable: tidy(() => zerosLike(value).variable(trainable))
                                };
                            }
                            if (this.accumulatedMoments[i] == null) {
                                this.accumulatedMoments[i] = {
                                    originalName: `${name}/momentum`,
                                    variable: tidy(() => zerosLike(value).variable(trainable))
                                };
                            }
                            if (this.accumulatedMeanGrads[i] == null && this.centered) {
                                this.accumulatedMeanGrads[i] = {
                                    originalName: `${name}/mg`,
                                    variable: tidy(() => zerosLike(value).variable(trainable))
                                };
                            }
                            const gradient = Array.isArray(variableGradients) ? variableGradients[i].tensor : variableGradients[name];
                            if (gradient == null) {
                                return;
                            }
                            const accumulatedMeanSquare = this.accumulatedMeanSquares[i].variable;
                            const accumulatedMoments = this.accumulatedMoments[i].variable;
                            tidy(() => {
                                const newAccumulatedMeanSquare = add$1(mul(accumulatedMeanSquare, this.decay), mul(square(gradient), 1 - this.decay));
                                if (this.centered) {
                                    const accumulatedMeanGrad = this.accumulatedMeanGrads[i].variable;
                                    // Centered gradient
                                    const newAccumulatedMeanGrad = add$1(mul(accumulatedMeanGrad, this.decay), mul(gradient, 1 - this.decay));
                                    const gradContribution = div(mul(gradient, this.learningRate), sqrt(sub(newAccumulatedMeanSquare, add$1(square(newAccumulatedMeanGrad), this.epsilon))));
                                    const newAccumulatedMoments = add$1(mul(accumulatedMoments, this.momentum), gradContribution);
                                    accumulatedMeanSquare.assign(newAccumulatedMeanSquare);
                                    accumulatedMeanGrad.assign(newAccumulatedMeanGrad);
                                    accumulatedMoments.assign(newAccumulatedMoments);
                                    const newValue = sub(value, newAccumulatedMoments);
                                    value.assign(newValue);
                                } else {
                                    // Plain gradient
                                    const newAccumulatedMeanSquare = add$1(mul(accumulatedMeanSquare, this.decay), mul(square(gradient), 1 - this.decay));
                                    const newAccumulatedMoments = add$1(mul(accumulatedMoments, this.momentum), div(mul(gradient, this.learningRate), sqrt(add$1(newAccumulatedMeanSquare, this.epsilon))));
                                    accumulatedMeanSquare.assign(newAccumulatedMeanSquare);
                                    accumulatedMoments.assign(newAccumulatedMoments);
                                    const newValue = sub(value, newAccumulatedMoments);
                                    value.assign(newValue);
                                }
                            }
                            );
                        }
                        );
                        this.incrementIterations();
                    }
                    dispose() {
                        if (this.accumulatedMeanSquares != null) {
                            dispose(this.accumulatedMeanSquares.map(v => v.variable));
                        }
                        if (this.accumulatedMeanGrads != null && this.centered) {
                            dispose(this.accumulatedMeanGrads.map(v => v.variable));
                        }
                        if (this.accumulatedMoments != null) {
                            dispose(this.accumulatedMoments.map(v => v.variable));
                        }
                    }
                    async getWeights() {
                        // Order matters for Python compatibility.
                        const variables = [...this.accumulatedMeanSquares, ...this.accumulatedMoments];
                        if (this.centered) {
                            variables.push(...this.accumulatedMeanGrads);
                        }
                        return [await this.saveIterations()].concat(variables.map(v => ({
                            name: v.originalName,
                            tensor: v.variable
                        })));
                    }
                    async setWeights(weightValues) {
                        weightValues = await this.extractIterations(weightValues);
                        const variableCount = this.centered ? weightValues.length / 3 : weightValues.length / 2;
                        const trainable = false;
                        this.accumulatedMeanSquares = weightValues.slice(0, variableCount).map(v => ({
                            originalName: v.name,
                            variable: v.tensor.variable(trainable)
                        }));
                        this.accumulatedMoments = weightValues.slice(variableCount, variableCount * 2).map(v => ({
                            originalName: v.name,
                            variable: v.tensor.variable(trainable)
                        }));
                        if (this.centered) {
                            this.accumulatedMeanGrads = weightValues.slice(variableCount * 2, variableCount * 3).map(v => ({
                                originalName: v.name,
                                variable: v.tensor.variable(trainable)
                            }));
                        }
                    }
                    getConfig() {
                        return {
                            'learningRate': this.learningRate,
                            'decay': this.decay,
                            'momentum': this.momentum,
                            'epsilon': this.epsilon,
                            'centered': this.centered
                        };
                    }
                    /** @nocollapse */
                    static fromConfig(cls, config) {
                        return new cls(config['learningRate'], config['decay'], config['momentum'], config['epsilon'], config['centered']);
                    }
                }
                /** @nocollapse */
                RMSPropOptimizer.className = 'RMSProp';
                // Note: Name matters for Python compatibility.
                registerClass(RMSPropOptimizer);
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                class OptimizerConstructors {
                    /**
     * Constructs a `tf.SGDOptimizer` that uses stochastic gradient descent.
     *
     * ```js
     * // Fit a quadratic function by learning the coefficients a, b, c.
     * const xs = tf.tensor1d([0, 1, 2, 3]);
     * const ys = tf.tensor1d([1.1, 5.9, 16.8, 33.9]);
     *
     * const a = tf.scalar(Math.random()).variable();
     * const b = tf.scalar(Math.random()).variable();
     * const c = tf.scalar(Math.random()).variable();
     *
     * // y = a * x^2 + b * x + c.
     * const f = x => a.mul(x.square()).add(b.mul(x)).add(c);
     * const loss = (pred, label) => pred.sub(label).square().mean();
     *
     * const learningRate = 0.01;
     * const optimizer = tf.train.sgd(learningRate);
     *
     * // Train the model.
     * for (let i = 0; i < 10; i++) {
     *   optimizer.minimize(() => loss(f(xs), ys));
     * }
     *
     * // Make predictions.
     * console.log(
     *     `a: ${a.dataSync()}, b: ${b.dataSync()}, c: ${c.dataSync()}`);
     * const preds = f(xs).dataSync();
     * preds.forEach((pred, i) => {
     *   console.log(`x: ${i}, pred: ${pred}`);
     * });
     * ```
     *
     * @param learningRate The learning rate to use for the SGD algorithm.
     *
     * @doc {heading: 'Training', subheading: 'Optimizers', namespace: 'train'}
     */
                    static sgd(learningRate) {
                        return new SGDOptimizer(learningRate);
                    }
                    /**
     * Constructs a `tf.MomentumOptimizer` that uses momentum gradient
     * descent.
     *
     * See
     * [http://proceedings.mlr.press/v28/sutskever13.pdf](
     * http://proceedings.mlr.press/v28/sutskever13.pdf)
     *
     * @param learningRate The learning rate to use for the Momentum gradient
     * descent algorithm.
     * @param momentum The momentum to use for the momentum gradient descent
     * algorithm.
     *
     * @doc {heading: 'Training', subheading: 'Optimizers', namespace: 'train'}
     */
                    static momentum(learningRate, momentum, useNesterov = false) {
                        return new MomentumOptimizer(learningRate, momentum, useNesterov);
                    }
                    /**
     * Constructs a `tf.RMSPropOptimizer` that uses RMSProp gradient
     * descent. This implementation uses plain momentum and is not centered
     * version of RMSProp.
     *
     * See
     * [http://www.cs.toronto.edu/~tijmen/csc321/slides/lecture_slides_lec6.pdf](
     * http://www.cs.toronto.edu/~tijmen/csc321/slides/lecture_slides_lec6.pdf)
     *
     * @param learningRate The learning rate to use for the RMSProp gradient
     * descent algorithm.
     * @param decay The discounting factor for the history/coming gradient.
     * @param momentum The momentum to use for the RMSProp gradient descent
     * algorithm.
     * @param epsilon Small value to avoid zero denominator.
     * @param centered If true, gradients are normalized by the estimated
     * variance of the gradient.
     *
     * @doc {heading: 'Training', subheading: 'Optimizers', namespace: 'train'}
     */
                    static rmsprop(learningRate, decay = .9, momentum = 0.0, epsilon = null, centered = false) {
                        return new RMSPropOptimizer(learningRate, decay, momentum, epsilon, centered);
                    }
                    /**
     * Constructs a `tf.AdamOptimizer` that uses the Adam algorithm.
     * See [https://arxiv.org/abs/1412.6980](https://arxiv.org/abs/1412.6980)
     *
     * @param learningRate The learning rate to use for the Adam gradient
     * descent algorithm.
     * @param beta1 The exponential decay rate for the 1st moment estimates.
     * @param beta2 The exponential decay rate for the 2nd moment estimates.
     * @param epsilon A small constant for numerical stability.
     *
     * @doc {heading: 'Training', subheading: 'Optimizers', namespace: 'train'}
     */
                    static adam(learningRate = 0.001, beta1 = 0.9, beta2 = 0.999, epsilon = null) {
                        return new AdamOptimizer(learningRate, beta1, beta2, epsilon);
                    }
                    /**
     * Constructs a `tf.AdadeltaOptimizer` that uses the Adadelta algorithm.
     * See [https://arxiv.org/abs/1212.5701](https://arxiv.org/abs/1212.5701)
     *
     * @param learningRate The learning rate to use for the Adadelta gradient
     * descent algorithm.
     * @param rho The learning rate decay over each update.
     * @param epsilon A constant epsilon used to better condition the grad
     * update.
     *
     * @doc {heading: 'Training', subheading: 'Optimizers', namespace: 'train'}
     */
                    static adadelta(learningRate = .001, rho = .95, epsilon = null) {
                        return new AdadeltaOptimizer(learningRate, rho, epsilon);
                    }
                    /**
     * Constructs a `tf.AdamaxOptimizer` that uses the Adamax algorithm.
     * See [https://arxiv.org/abs/1412.6980](https://arxiv.org/abs/1412.6980)
     *
     * @param learningRate The learning rate to use for the Adamax gradient
     * descent algorithm.
     * @param beta1 The exponential decay rate for the 1st moment estimates.
     * @param beta2 The exponential decay rate for the 2nd moment estimates.
     * @param epsilon A small constant for numerical stability.
     * @param decay The learning rate decay over each update.
     *
     * @doc {heading: 'Training', subheading: 'Optimizers', namespace: 'train'}
     */
                    static adamax(learningRate = 0.002, beta1 = 0.9, beta2 = 0.999, epsilon = null, decay = 0.0) {
                        return new AdamaxOptimizer(learningRate, beta1, beta2, epsilon, decay);
                    }
                    /**
     * Constructs a `tf.AdagradOptimizer` that uses the Adagrad algorithm.
     * See
     * [http://www.jmlr.org/papers/volume12/duchi11a/duchi11a.pdf](
     * http://www.jmlr.org/papers/volume12/duchi11a/duchi11a.pdf)
     * or
     * [http://ruder.io/optimizing-gradient-descent/index.html#adagrad](
     * http://ruder.io/optimizing-gradient-descent/index.html#adagrad)
     *
     * @param learningRate The learning rate to use for the Adagrad gradient
     * descent algorithm.
     * @param initialAccumulatorValue Starting value for the accumulators, must be
     * positive.
     *
     * @doc {heading: 'Training', subheading: 'Optimizers', namespace: 'train'}
     */
                    static adagrad(learningRate, initialAccumulatorValue = 0.1) {
                        return new AdagradOptimizer(learningRate, initialAccumulatorValue);
                    }
                }
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                // tslint:disable-next-line:no-unused-expression
                [MomentumOptimizer, SGDOptimizer, AdadeltaOptimizer, AdagradOptimizer, RMSPropOptimizer, AdamaxOptimizer, AdamOptimizer];
                const train = {
                    sgd: OptimizerConstructors.sgd,
                    momentum: OptimizerConstructors.momentum,
                    adadelta: OptimizerConstructors.adadelta,
                    adagrad: OptimizerConstructors.adagrad,
                    rmsprop: OptimizerConstructors.rmsprop,
                    adamax: OptimizerConstructors.adamax,
                    adam: OptimizerConstructors.adam
                };
                /**
 * @license
 * Copyright 2017 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const delayCallback = (() => {
                    if (typeof requestAnimationFrame !== 'undefined') {
                        return requestAnimationFrame;
                    } else if (typeof setImmediate !== 'undefined') {
                        return setImmediate;
                    }
                    return f => f();
                    // no delays
                }
                )();
                /**
 * Returns a promise that resolves when a requestAnimationFrame has completed.
 *
 * On Node.js this uses setImmediate instead of requestAnimationFrame.
 *
 * This is simply a sugar method so that users can do the following:
 * `await tf.nextFrame();`
 *
 * @doc {heading: 'Performance', subheading: 'Timing'}
 */
                function nextFrame() {
                    return new Promise(resolve => delayCallback(() => resolve()));
                }
                /**
 * @license
 * Copyright 2017 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                function assertParamsConsistent(shapes, axis) {
                    const rank = shapes[0].length;
                    shapes.forEach((shape, i) => {
                        assert(shape.length === rank, () => `Error in concat${rank}D: rank of tensors[${i}] must be the same ` + `as the rank of the rest (${rank})`);
                    }
                    );
                    assert(axis >= 0 && axis < rank, () => `Error in concat${rank}D: axis must be between 0 and ${rank - 1}.`);
                    const firstShape = shapes[0];
                    shapes.forEach((shape, i) => {
                        for (let r = 0; r < rank; r++) {
                            assert(r === axis || shape[r] === firstShape[r], () => `Error in concat${rank}D: Shape of tensors[${i}] (${shape}) ` + `does not match the shape of the rest (${firstShape}) ` + `along the non-concatenated axis ${i}.`);
                        }
                    }
                    );
                }
                function computeOutShape$1(shapes, axis) {
                    const outputShape = shapes[0].slice();
                    for (let i = 1; i < shapes.length; i++) {
                        outputShape[axis] += shapes[i][axis];
                    }
                    return outputShape;
                }
                /**
 * @license
 * Copyright 2020 Google Inc. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * @license
 * Copyright 2022 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                var RowPartitionType;
                (function (RowPartitionType) {
                    RowPartitionType[RowPartitionType["FIRST_DIM_SIZE"] = 0] = "FIRST_DIM_SIZE";
                    RowPartitionType[RowPartitionType["VALUE_ROWIDS"] = 1] = "VALUE_ROWIDS";
                    RowPartitionType[RowPartitionType["ROW_LENGTHS"] = 2] = "ROW_LENGTHS";
                    RowPartitionType[RowPartitionType["ROW_SPLITS"] = 3] = "ROW_SPLITS";
                    RowPartitionType[RowPartitionType["ROW_LIMITS"] = 4] = "ROW_LIMITS";
                    RowPartitionType[RowPartitionType["ROW_STARTS"] = 5] = "ROW_STARTS";
                }
                )(RowPartitionType || (RowPartitionType = {}));
                function combineRaggedTensorToTensorShapes(raggedRank, shape, valueShape) {
                    // Test for consistency of valueShape and shape specified.
                    // If shape is unspecified and valueShape is specified, then copy
                    // over the size from the valueShape dimension.
                    let outputShape = new Array();
                    if (valueShape == null && shape == null) {
                        return outputShape;
                    }
                    if (shape == null) {
                        // Here, value_shape must be of known size.
                        while (outputShape.length < raggedRank + valueShape.length) {
                            outputShape.push(-1);
                        }
                    } else {
                        outputShape = shape.slice();
                    }
                    if (valueShape == null) {
                        return outputShape;
                    }
                    // At this point, valueShape and output_shape have known ranks.
                    if (raggedRank + valueShape.length !== outputShape.length) {
                        throw new Error(`rt input.shape and shape=${shape} are incompatible: rt input.rank = ${raggedRank + valueShape.length}, but shape.rank = ${outputShape.length}`);
                    }
                    for (let i = 1; i < valueShape.length; ++i) {
                        const valueDim = valueShape[i];
                        const outputShapeDimIndex = outputShape[outputShape.length - valueShape.length + i];
                        const outputShapeDim = outputShape[outputShapeDimIndex];
                        if (valueDim >= 0) {
                            if (outputShapeDim >= 0) {
                                if (outputShapeDim !== valueDim) {
                                    throw new Error(`rt input.shape and shape=${shape} are incompatible: rt input.shape[${i + raggedRank}] = ${valueDim} but shape[${i + raggedRank}] = ${outputShapeDim}`);
                                }
                            } else {
                                outputShape[outputShapeDimIndex] = valueDim;
                            }
                        }
                    }
                    return outputShape;
                }
                function getRowPartitionTypesHelper(rowPartitionTypeStrings) {
                    const stringToType = {
                        'FIRST_DIM_SIZE': RowPartitionType.FIRST_DIM_SIZE,
                        'VALUE_ROWIDS': RowPartitionType.VALUE_ROWIDS,
                        'ROW_LENGTHS': RowPartitionType.ROW_LENGTHS,
                        'ROW_SPLITS': RowPartitionType.ROW_SPLITS,
                        'ROW_LIMITS': RowPartitionType.ROW_LIMITS,
                        'ROW_STARTS': RowPartitionType.ROW_STARTS
                    };
                    const result = [];
                    for (const typeStr of rowPartitionTypeStrings) {
                        if (typeStr in stringToType) {
                            result.push(stringToType[typeStr]);
                        } else {
                            break;
                        }
                    }
                    return result;
                }
                function getRaggedRank(rowPartitionTypes) {
                    if (rowPartitionTypes.length === 0) {
                        return 0;
                    }
                    if (rowPartitionTypes[0] === RowPartitionType.FIRST_DIM_SIZE) {
                        return rowPartitionTypes.length - 1;
                    }
                    return rowPartitionTypes.length;
                }
                function validateDefaultValueShape(defaultValueShape, valueShape) {
                    if (defaultValueShape == null || valueShape == null) {
                        return;
                    }
                    const defaultNDims = defaultValueShape.length;
                    const valuesNDims = valueShape.length;
                    if (defaultNDims >= valuesNDims) {
                        throw new Error(`defaultValue.shape=${defaultValueShape} and ragged tensor flatValues.shape=${valueShape}, are incompatible: defaultValue.rank = ${defaultNDims} must be less than ragged tensor input flatValues.rank = ${valuesNDims})`);
                    }
                    for (let i = 0; i < Math.min(defaultNDims, valuesNDims - 1); ++i) {
                        const defaultDim = defaultValueShape[i];
                        const valueDim = valueShape[i + 1];
                        if (defaultDim >= 0 && valueDim >= 0 && defaultDim !== 1 && defaultDim !== valueDim) {
                            throw new Error(`defaultValue.shape=${defaultValueShape}, and ragged tensor input flatValues.shape=${valueShape} are incompatible: defaultValue.shape[${i - defaultValueShape.length}] = ${defaultDim} but ragged tensor input.flatValues.shape[${i - defaultValueShape.length}] = ${valueDim}`);
                        }
                    }
                }
                /**
 * @license
 * Copyright 2017 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const PARALLELIZE_THRESHOLD = 30;
                function computeOptimalWindowSize(inSize) {
                    if (inSize <= PARALLELIZE_THRESHOLD) {
                        return inSize;
                    }
                    return nearestDivisor(inSize, Math.floor(Math.sqrt(inSize)));
                }
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                // Returns the image center in pixels.
                function getImageCenter(center, imageHeight, imageWidth) {
                    const centerX = imageWidth * (typeof center === 'number' ? center : center[0]);
                    const centerY = imageHeight * (typeof center === 'number' ? center : center[1]);
                    return [centerX, centerY];
                }
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Gets the new shape of the input Tensor after it's been reshaped
 * to:
 * [blockShape[0], ..., blockShape[M-1], batch / prod(blockShape),
 * inputShape[1], ..., inputShape[N-1]]
 *
 * See step 1: https://www.tensorflow.org/api_docs/python/tf/batch_to_space_nd
 */
                function getReshaped(inputShape, blockShape, prod, batchToSpace = true) {
                    let reshaped = [];
                    if (batchToSpace) {
                        reshaped = reshaped.concat(blockShape.slice(0));
                        reshaped.push(inputShape[0] / prod);
                        reshaped = reshaped.concat(inputShape.slice(1));
                    } else {
                        reshaped = reshaped.concat(inputShape[0]);
                        const spatialLength = blockShape.length;
                        for (let i = 0; i < spatialLength; ++i) {
                            reshaped = reshaped.concat([inputShape[i + 1] / blockShape[i], blockShape[i]]);
                        }
                        reshaped = reshaped.concat(inputShape.slice(spatialLength + 1));
                    }
                    return reshaped;
                }
                /**
 * Gets the permutation that will transpose the dimensions of the
 * reshaped tensor to shape:
 *
 * [batch / prod(block_shape),inputShape[1], blockShape[0], ...,
 * inputShape[M], blockShape[M-1],inputShape[M+1], ..., inputShape[N-1]]
 *
 * see step 2: https://www.tensorflow.org/api_docs/python/tf/batch_to_space_nd
 */
                function getPermuted(reshapedRank, blockShapeRank, batchToSpace = true) {
                    const permuted = [];
                    if (batchToSpace) {
                        permuted.push(blockShapeRank);
                        for (let i = blockShapeRank + 1; i < reshapedRank; ++i) {
                            if (i <= 2 * blockShapeRank) {
                                permuted.push(i);
                                permuted.push(i - (blockShapeRank + 1));
                            } else {
                                permuted.push(i);
                            }
                        }
                    } else {
                        const permutedBeforeBatch = [];
                        const permutedAfterBatch = [];
                        for (let i = 1; i < reshapedRank; ++i) {
                            if (i >= blockShapeRank * 2 + 1 || i % 2 === 1) {
                                permutedAfterBatch.push(i);
                            } else {
                                permutedBeforeBatch.push(i);
                            }
                        }
                        permuted.push(...permutedBeforeBatch);
                        permuted.push(0);
                        permuted.push(...permutedAfterBatch);
                    }
                    return permuted;
                }
                /**
 * Gets the shape of the reshaped and permuted input Tensor before any cropping
 * is applied.  The new shape will be:
 *
 * [batch / prod(blockShape),inputShape[1] * blockShape[0], ...,
 * inputShape[M] * blockShape[M-1],inputShape[M+1], ..., inputShape[N-1]]
 *
 * See step 3: https://www.tensorflow.org/api_docs/python/tf/batch_to_space_nd
 */
                function getReshapedPermuted(inputShape, blockShape, prod, batchToSpace = true) {
                    const reshapedPermuted = [];
                    if (batchToSpace) {
                        reshapedPermuted.push(inputShape[0] / prod);
                    } else {
                        reshapedPermuted.push(inputShape[0] * prod);
                    }
                    for (let i = 1; i < inputShape.length; ++i) {
                        if (i <= blockShape.length) {
                            if (batchToSpace) {
                                reshapedPermuted.push(blockShape[i - 1] * inputShape[i]);
                            } else {
                                reshapedPermuted.push(inputShape[i] / blockShape[i - 1]);
                            }
                        } else {
                            reshapedPermuted.push(inputShape[i]);
                        }
                    }
                    return reshapedPermuted;
                }
                /**
 * Converts the crops argument into the beginning coordinates of a slice
 * operation.
 */
                function getSliceBeginCoords(crops, blockShape) {
                    const sliceBeginCoords = [0];
                    for (let i = 0; i < blockShape; ++i) {
                        sliceBeginCoords.push(crops[i][0]);
                    }
                    return sliceBeginCoords;
                }
                /**
 * Converts the crops argument into the size of a slice operation.  When
 * combined with getSliceBeginCoords this function allows the reshaped and
 * permuted Tensor to be cropped to its final output shape of:
 *
 * inputShape[1] * blockShape[0] - crops[0,0] - crops[0,1], ...,
 * inputShape[M] * blockShape[M-1] -crops[M-1,0] -
 * crops[M-1,1],inputShape[M+1], ..., inputShape[N-1]]
 *
 * See step 4: https://www.tensorflow.org/api_docs/python/tf/batch_to_space_nd
 */
                function getSliceSize(uncroppedShape, crops, blockShape) {
                    const sliceSize = uncroppedShape.slice(0, 1);
                    for (let i = 0; i < blockShape; ++i) {
                        sliceSize.push(uncroppedShape[i + 1] - crops[i][0] - crops[i][1]);
                    }
                    return sliceSize;
                }
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const SELU_SCALEALPHA = 1.7580993408473768599402175208123;
                const SELU_SCALE = 1.0507009873554804934193349852946;
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const ERF_P = 0.3275911;
                const ERF_A1 = 0.254829592;
                const ERF_A2 = -0.284496736;
                const ERF_A3 = 1.421413741;
                const ERF_A4 = -1.453152027;
                const ERF_A5 = 1.061405429;
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Merges real and imaginary Float32Arrays into a single complex Float32Array.
 *
 * The memory layout is interleaved as follows:
 * real: [r0, r1, r2]
 * imag: [i0, i1, i2]
 * complex: [r0, i0, r1, i1, r2, i2]
 *
 * This is the inverse of splitRealAndImagArrays.
 *
 * @param real The real values of the complex tensor values.
 * @param imag The imag values of the complex tensor values.
 * @returns A complex tensor as a Float32Array with merged values.
 */
                function mergeRealAndImagArrays(real, imag) {
                    if (real.length !== imag.length) {
                        throw new Error(`Cannot merge real and imag arrays of different lengths. real:` + `${real.length}, imag: ${imag.length}.`);
                    }
                    const result = new Float32Array(real.length * 2);
                    for (let i = 0; i < result.length; i += 2) {
                        result[i] = real[i / 2];
                        result[i + 1] = imag[i / 2];
                    }
                    return result;
                }
                /**
 * Splits a complex Float32Array into real and imag parts.
 *
 * The memory layout is interleaved as follows:
 * complex: [r0, i0, r1, i1, r2, i2]
 * real: [r0, r1, r2]
 * imag: [i0, i1, i2]
 *
 * This is the inverse of mergeRealAndImagArrays.
 *
 * @param complex The complex tensor values.
 * @returns An object with real and imag Float32Array components of the complex
 *     tensor.
 */
                function splitRealAndImagArrays(complex) {
                    const real = new Float32Array(complex.length / 2);
                    const imag = new Float32Array(complex.length / 2);
                    for (let i = 0; i < complex.length; i += 2) {
                        real[i / 2] = complex[i];
                        imag[i / 2] = complex[i + 1];
                    }
                    return {
                        real,
                        imag
                    };
                }
                /**
 * Extracts even indexed complex values in the given array.
 * @param complex The complex tensor values
 */
                function complexWithEvenIndex(complex) {
                    const len = Math.ceil(complex.length / 4);
                    const real = new Float32Array(len);
                    const imag = new Float32Array(len);
                    for (let i = 0; i < complex.length; i += 4) {
                        real[Math.floor(i / 4)] = complex[i];
                        imag[Math.floor(i / 4)] = complex[i + 1];
                    }
                    return {
                        real,
                        imag
                    };
                }
                /**
 * Extracts odd indexed comple values in the given array.
 * @param complex The complex tensor values
 */
                function complexWithOddIndex(complex) {
                    const len = Math.floor(complex.length / 4);
                    const real = new Float32Array(len);
                    const imag = new Float32Array(len);
                    for (let i = 2; i < complex.length; i += 4) {
                        real[Math.floor(i / 4)] = complex[i];
                        imag[Math.floor(i / 4)] = complex[i + 1];
                    }
                    return {
                        real,
                        imag
                    };
                }
                /**
 * Get the map representing a complex value in the given array.
 * @param complex The complex tensor values.
 * @param index An index of the target complex value.
 */
                function getComplexWithIndex(complex, index) {
                    const real = complex[index * 2];
                    const imag = complex[index * 2 + 1];
                    return {
                        real,
                        imag
                    };
                }
                /**
 * Insert a given complex value into the TypedArray.
 * @param data The array in which the complex value is inserted.
 * @param c The complex value to be inserted.
 * @param index An index of the target complex value.
 */
                function assignToTypedArray(data, real, imag, index) {
                    data[index * 2] = real;
                    data[index * 2 + 1] = imag;
                }
                /**
 * Make the list of exponent terms used by FFT.
 */
                function exponents(n, inverse) {
                    const real = new Float32Array(n / 2);
                    const imag = new Float32Array(n / 2);
                    for (let i = 0; i < Math.ceil(n / 2); i++) {
                        const x = (inverse ? 2 : -2) * Math.PI * (i / n);
                        real[i] = Math.cos(x);
                        imag[i] = Math.sin(x);
                    }
                    return {
                        real,
                        imag
                    };
                }
                /**
 * Make the exponent term used by FFT.
 */
                function exponent(k, n, inverse) {
                    const x = (inverse ? 2 : -2) * Math.PI * (k / n);
                    const real = Math.cos(x);
                    const imag = Math.sin(x);
                    return {
                        real,
                        imag
                    };
                }
                /**
 * @license
 * Copyright 2021 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const ARROW = '->';
                const ARROW_REGEX = /->/g;
                const COMMA = ',';
                const ELLIPSIS = '...';
                /**
 * Parse an equation for einsum.
 *
 * @param equation The einsum equation (e.g., "ij,jk->ik").
 * @param numTensors Number of tensors provided along with `equation`. Used to
 *   check matching number of input tensors.
 * @returns An object consisting of the following fields:
 *   - allDims: all dimension names as strings.
 *   - summedDims: a list of all dimensions being summed over, as indices to
 *     the elements of `allDims`.
 *   - idDims: indices of the dimensions in each input tensor, as indices to
 *     the elements of `allDims.
 */
                function decodeEinsumEquation(equation, numTensors) {
                    equation = equation.replace(/\s/g, '');
                    // Remove witespace in equation.
                    const numArrows = (equation.length - equation.replace(ARROW_REGEX, '').length) / ARROW.length;
                    if (numArrows < 1) {
                        throw new Error('Equations without an arrow are not supported.');
                    } else if (numArrows > 1) {
                        throw new Error(`Equation must contain exactly one arrow ("${ARROW}").`);
                    }
                    const [inputString, outputString] = equation.split(ARROW);
                    assert(inputString.indexOf(ELLIPSIS) === -1, () => `The ellipsis notation ("${ELLIPSIS}") is not supported yet.`);
                    const inputTerms = inputString.split(COMMA);
                    const numInputs = inputTerms.length;
                    if (numTensors !== numInputs) {
                        throw new Error(`Expected ${numInputs} input tensors, received ${numTensors}`);
                    }
                    if (numInputs > 2) {
                        throw new Error('Support for more than 2 input tensors is not implemented yet.');
                    }
                    const allDims = [];
                    for (let i = 0; i < outputString.length; ++i) {
                        const dimName = outputString[i];
                        if (!inputTerms.some(inputTerm => inputTerm.indexOf(dimName) !== -1)) {
                            throw new Error(`Output subscripts contain the label ${dimName} ` + `not present in the input subscripts.`);
                        }
                        if (allDims.indexOf(dimName) === -1) {
                            allDims.push(dimName);
                        }
                    }
                    for (let i = 0; i < inputString.length; ++i) {
                        const dimName = inputString[i];
                        if (allDims.indexOf(dimName) === -1 && dimName !== COMMA) {
                            allDims.push(dimName);
                        }
                    }
                    const idDims = new Array(inputTerms.length);
                    for (let i = 0; i < numInputs; ++i) {
                        if (new Set(inputTerms[i].split('')).size !== inputTerms[i].length) {
                            throw new Error(`Found duplicate axes in input component ${inputTerms[i]}. ` + `Support for duplicate axes in input is not implemented yet.`);
                        }
                        idDims[i] = [];
                        for (let j = 0; j < inputTerms[i].length; ++j) {
                            idDims[i].push(allDims.indexOf(inputTerms[i][j]));
                        }
                    }
                    const numDims = allDims.length;
                    // Number of unique dimensions.
                    const numOutDims = outputString.length;
                    // Number of output dimensions.
                    const summedDims = [];
                    // Dimensions being summed over.
                    for (let i = numOutDims; i < numDims; ++i) {
                        summedDims.push(i);
                    }
                    return {
                        allDims,
                        summedDims,
                        idDims
                    };
                }
                /**
 * Get the permutation for a given input tensor.
 *
 * @param nDims Total number of dimension of all tensors involved in the einsum
 *   operation.
 * @param idDims Dimension indices involve in the tensor in question.
 * @returns An object consisting of the following fields:
 *   - permutationIndices: Indices to permute the axes of the tensor with.
 *   - expandDims: Indices to the dimension that need to be expanded from the
 *     tensor after permutation.
 */
                function getEinsumPermutation(nDims, idDims) {
                    let permutationIndices = new Array(nDims);
                    permutationIndices.fill(-1);
                    for (let i = 0; i < idDims.length; ++i) {
                        permutationIndices[idDims[i]] = i;
                    }
                    const expandDims = [];
                    for (let i = 0; i < nDims; ++i) {
                        if (permutationIndices[i] === -1) {
                            expandDims.push(i);
                        }
                    }
                    permutationIndices = permutationIndices.filter(d => d !== -1);
                    return {
                        permutationIndices,
                        expandDims
                    };
                }
                /**
 * Checks that the dimension sizes from different input tensors match the
 * equation.
 */
                function checkEinsumDimSizes(nDims, idDims, tensors) {
                    const dimSizes = new Array(nDims);
                    for (let i = 0; i < tensors.length; ++i) {
                        const shape = tensors[i].shape;
                        for (let j = 0; j < idDims[i].length; ++j) {
                            if (dimSizes[idDims[i][j]] === undefined) {
                                dimSizes[idDims[i][j]] = shape[j];
                            } else {
                                assert(dimSizes[idDims[i][j]] === shape[j], () => `Expected dimension ${dimSizes[idDims[i][j]]} at axis ${j} ` + `of input shaped ${JSON.stringify(shape)}, ` + `but got dimension ${shape[j]}`);
                            }
                        }
                    }
                }
                /**
 * Gets path of computation for einsum.
 *
 * @param summedDims indices to the dimensions being summed over.
 * @param idDims A look up table for the dimensions present in each input
 *     tensor. Each consituent array contains indices for the dimensions in the
 *     corresponding input tensor.
 *
 * @return A map with two fields:
 *   - path: The path of computation, with each element indicating the dimension
 *     being summed over after the element-wise multiplication in that step.
 *   - steps: With the same length as `path`. Each element contains the indices
 *     to the input tensors being used for element-wise multiplication in the
 *     corresponding step.
 */
                function getEinsumComputePath(summedDims, idDims) {
                    const path = summedDims;
                    const steps = [];
                    let nSteps = 0;
                    if (summedDims.length === 0) {
                        // Einsum that involes no summing: e.g., transpose and outer product.
                        path.push(-1);
                    }
                    nSteps = summedDims.length + 1;
                    for (let i = 0; i < nSteps; ++i) {
                        steps.push([]);
                    }
                    const computedTermIndices = [];
                    for (let i = 0; i < path.length; ++i) {
                        const summedDim = path[i];
                        const termIndices = findTermsWithDim(idDims, summedDim);
                        for (const termIndex of termIndices) {
                            if (computedTermIndices.indexOf(termIndex) === -1) {
                                steps[i].push(termIndex);
                                computedTermIndices.push(termIndex);
                            }
                        }
                    }
                    return {
                        path,
                        steps
                    };
                }
                /** Determines if an axes permutation is the identity permutation. */
                function isIdentityPermutation(perm) {
                    return perm.every((dim, index) => dim === index);
                }
                function findTermsWithDim(idDims, dim) {
                    const termIndices = [];
                    for (let i = 0; i < idDims.length; ++i) {
                        if (idDims[i].length === 0 || idDims[i].indexOf(dim) !== -1 || dim === -1) {
                            termIndices.push(i);
                        }
                    }
                    return termIndices;
                }
                /**
 * Prepare the split size array. When the input is a number, the axis is evenly
 * divided among the split size. When the input contains the negative value, the
 * rest of the axis is allocated toward that.
 */
                function prepareSplitSize(x, numOrSizeSplits, axis = 0) {
                    let splitSizes = [];
                    if (typeof numOrSizeSplits === 'number') {
                        assert(x.shape[axis] % numOrSizeSplits === 0, () => 'Number of splits must evenly divide the axis.');
                        splitSizes = new Array(numOrSizeSplits).fill(x.shape[axis] / numOrSizeSplits);
                    } else {
                        const numOfNegs = numOrSizeSplits.reduce((count, value) => {
                            if (value === -1) {
                                count += 1;
                            }
                            return count;
                        }
                            , 0);
                        assert(numOfNegs <= 1, () => 'There should be only one negative value in split array.');
                        const negIndex = numOrSizeSplits.indexOf(-1);
                        // Allow the number of split array to be -1, which indicates the rest
                        // of dimension is allocated to that split.
                        if (negIndex !== -1) {
                            const total = numOrSizeSplits.reduce((a, b) => b > 0 ? a + b : a);
                            numOrSizeSplits[negIndex] = x.shape[axis] - total;
                        }
                        assert(x.shape[axis] === numOrSizeSplits.reduce((a, b) => a + b), () => 'The sum of sizes must match the size of the axis dimension.');
                        splitSizes = numOrSizeSplits;
                    }
                    return splitSizes;
                }
                /**
 * @license
 * Copyright 2021 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Generates sparse fill empty rows indices, dense shape mismatch error message.
 *
 * @param indicesLength The first dimension of indices.
 */
                function getSparseFillEmptyRowsIndicesDenseShapeMismatch(indicesLength) {
                    return `Received SparseTensor with denseShape[0] = 0 but
  indices.shape[0] = ${indicesLength}`;
                }
                /**
 * Generates sparse fill empty rows negative index error message.
 *
 * @param index The index with a negative value.
 * @param value The negative value.
 */
                function getSparseFillEmptyRowsNegativeIndexErrorMessage(index, value) {
                    return `indices(${index}, 0) is invalid: ${value} < 0`;
                }
                /**
 * Generates sparse fill empty rows out of range index error message.
 *
 * @param index The index with an out of range value.
 * @param value The out of range value.
 * @param limit The upper limit for indices.
 */
                function getSparseFillEmptyRowsOutOfRangeIndexErrorMessage(index, value, limit) {
                    return `indices(${index}, 0) is invalid: ${value} >= ${limit}`;
                }
                /**
 * @license
 * Copyright 2021 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Generates sparse reshape multiple negative 1 output dimension error message.
 *
 * @param dim1 The first dimension with a negative 1 value.
 * @param dim2 The second dimension with a negative 1 value.
 */
                function getSparseReshapeMultipleNegativeOneOutputDimErrorMessage(dim1, dim2) {
                    return `only one output dimension may be -1, not both ${dim1} and ${dim2}`;
                }
                /**
 * Generates sparse reshape negative output dimension error message.
 *
 * @param dim The dimension with a negative value.
 * @param value The negative value.
 */
                function getSparseReshapeNegativeOutputDimErrorMessage(dim, value) {
                    return `size ${dim} must be non-negative, not ${value}`;
                }
                /**
 * Generates sparse reshape empty tensor zero output dimension error message.
 *
 */
                function getSparseReshapeEmptyTensorZeroOutputDimErrorMessage() {
                    return 'reshape cannot infer the missing input size for an empty tensor ' + 'unless all specified input sizes are non-zero';
                }
                /**
 * Generates sparse reshape input output multiple mismatch error message.
 *
 * @param inputShape the input shape.
 * @param outputShape the requested output shape.
 */
                function getSparseReshapeInputOutputMultipleErrorMessage(inputShape, outputShape) {
                    const inputSize = sizeFromShape(inputShape);
                    const outputSize = sizeFromShape(outputShape);
                    return `Input to reshape is a SparseTensor with ${inputSize}
  dense values, but the requested shape requires a multiple of ${outputSize}. inputShape=${inputShape} outputShape= ${outputShape}`;
                }
                /**
 * Generates sparse reshape input output inequality error message.
 *
 * @param inputShape the input shape.
 * @param outputShape the requested output shape.
 */
                function getSparseReshapeInputOutputMismatchErrorMessage(inputShape, outputShape) {
                    const inputSize = sizeFromShape(inputShape);
                    const outputSize = sizeFromShape(outputShape);
                    return `Input to reshape is a tensor with ${inputSize} dense values, but the requested shape has ${outputSize}. inputShape=${inputShape} outputShape=${outputShape}`;
                }
                /**
 * @license
 * Copyright 2021 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Generates sparse segment reduction negative segment ids error message.
 *
 */
                function getSparseSegmentReductionNegativeSegmentIdsErrorMessage() {
                    return `segment ids must be >= 0`;
                }
                /**
 * Generates sparse segment reduction non increasing segment ids error message.
 *
 */
                function getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage() {
                    return `segment ids are not increasing`;
                }
                /**
 * Generates sparse segment reduction segment id out of range error message.
 *
 * @param segmentId The segment id index that is out of range.
 * @param outputRows Upper bound of valid segment id values.
 */
                function getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(segmentId, outputRows) {
                    return `Segment id ${segmentId} out of range [0, ${outputRows}), possibly because segmentIds input is not sorted.`;
                }
                /**
 * Generates sparse segment reduction input indice out of range error message.
 *
 * @param index The index that holds the out of range value.
 * @param indexValue The value that is out of range.
 * @param inputRows Upper bound of valid index values.
 */
                function getSparseSegmentReductionIndicesOutOfRangeErrorMessage(index, indexValue, inputRows) {
                    return `Bad: indices[${index}] == ${indexValue} out of range [0, ${inputRows})`;
                }
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                function segOpComputeOptimalWindowSize(inSize, numSegments) {
                    let done = false;
                    let res;
                    if (inSize <= PARALLELIZE_THRESHOLD) {
                        res = inSize;
                        done = true;
                    } else {
                        res = nearestDivisor(inSize, Math.floor(Math.sqrt(inSize)));
                    }
                    while (!done) {
                        if (res > numSegments || res === inSize) {
                            done = true;
                        } else {
                            res = nearestDivisor(inSize, res + 1);
                        }
                    }
                    return res;
                }
                function computeOutShape$2(aShape, axis, numSegments) {
                    const outShape = [];
                    const rank = aShape.length;
                    for (let dim = 0; dim < rank; dim++) {
                        if (dim !== axis) {
                            outShape.push(aShape[dim]);
                        } else {
                            outShape.push(numSegments);
                        }
                    }
                    return outShape;
                }
                function collectGatherOpShapeInfo(x, indices, axis, batchDims) {
                    const indicesRank = indices.shape.length;
                    const xRank = x.shape.length;
                    if (batchDims !== 0) {
                        if (batchDims < -indicesRank || batchDims > indicesRank) {
                            throw new Error(`Expect batchDims in the range of [-${indicesRank}, ${indicesRank}], but got ${batchDims}`);
                        }
                    }
                    if (batchDims < 0) {
                        batchDims += indicesRank;
                    }
                    if (batchDims > xRank) {
                        throw new Error(`batchDims (${batchDims}) must be less than rank(x) (
    ${xRank}).`);
                    }
                    if (axis < batchDims) {
                        throw new Error(`batchDims (${batchDims}) must be less than or equal to axis (${axis}).`);
                    }
                    for (let i = 0; i < batchDims; ++i) {
                        if (x.shape[i] !== indices.shape[i]) {
                            throw new Error(`x.shape[${i}]: ${x.shape[i]} should be equal to indices.shape[${i}]: ${indices.shape[i]}.`);
                        }
                    }
                    const dimSize = x.shape[axis];
                    const outputShape = [];
                    let batchSize = 1;
                    let outerSize = 1;
                    let sliceSize = 1;
                    for (let i = 0; i < batchDims; ++i) {
                        outputShape.push(x.shape[i]);
                        batchSize *= x.shape[i];
                    }
                    for (let i = batchDims; i < axis; i++) {
                        outputShape.push(x.shape[i]);
                        outerSize *= x.shape[i];
                    }
                    for (let i = batchDims; i < indicesRank; i++) {
                        outputShape.push(indices.shape[i]);
                    }
                    for (let i = axis + 1; i < xRank; i++) {
                        outputShape.push(x.shape[i]);
                        sliceSize *= x.shape[i];
                    }
                    return {
                        batchSize,
                        sliceSize,
                        outerSize,
                        dimSize,
                        outputShape
                    };
                }
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                function fromUint8ToStringArray(vals) {
                    try {
                        // Decode the bytes into string.
                        return vals.map(val => decodeString(val));
                    } catch (err) {
                        throw new Error(`Failed to decode encoded string bytes into utf-8, error: ${err}`);
                    }
                }
                function fromStringArrayToUint8(strings) {
                    return strings.map(s => encodeString(s));
                }
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * @license
 * Copyright 2020 Google Inc. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * @license
 * Copyright 2022 Google Inc. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                // Gradient for product operation on a single axis.
                function prodGradFn_(x, dy, axis) {
                    // The gradient tensor (dy) has a set of axes removed, so we create re-shaped
                    // versions (of size 1) for the removed axis; this supports broadcasting over
                    // those dimensions.
                    const expandedYShape = x.shape.slice();
                    expandedYShape[axis] = 1;
                    // The actual gradient computation.
                    const expandedDy = reshape(dy, expandedYShape);
                    const xCumProd = cumprod(x, axis, true, false);
                    const xCumRevProd = cumprod(x, axis, true, true);
                    const dx = mul(xCumProd, xCumRevProd);
                    return mul(expandedDy, dx);
                }
                // Support gradients when the product is done on many axes at once.
                // This done py pushing all the axes on which the product is applied into a
                // single axis.
                function prodsGradFn_(x, dy, axis) {
                    // Move all axes for doing prod over to the end of the tensor.
                    const xRank = x.shape.length;
                    const finalProdAxis = xRank - axis.length;
                    const xPermutation = getAxesPermutation(axis, xRank);
                    let permutedX = x;
                    if (xPermutation != null) {
                        permutedX = transpose(x, xPermutation);
                    }
                    // Reshape all the prod dimensions into a single one, and do compute prod
                    // gradients on that.
                    const newShape = permutedX.shape.slice();
                    const removedShape = newShape.splice(xRank - axis.length, axis.length);
                    const endPartShape = removedShape.reduce((p, c) => p * c, 1);
                    newShape.push(endPartShape);
                    const reshapedPermutedX = permutedX.reshape(newShape);
                    let prodGrad = prodGradFn_(reshapedPermutedX, dy, finalProdAxis);
                    // Undo the re-shaping now we have the dx vector, and permute back to
                    // original axes order.
                    prodGrad = prodGrad.reshape(permutedX.shape);
                    if (xPermutation != null) {
                        const undoPermutation = getUndoAxesPermutation(xPermutation);
                        prodGrad = transpose(prodGrad, undoPermutation);
                    }
                    return prodGrad;
                }
                // Running example:
                // [
                //   [
                //     [3.0, 4.0],
                //     [5.0, 6.0],
                //     [7.0, 8.0]
                //   ],
                //   [
                //     [3.0, 5.0],
                //     [0.0, 6.0],
                //     [5.0, 6.0]
                //   ]
                // ]
                //
                const prodGradConfig = {
                    kernelName: Prod,
                    inputsToSave: ['x'],
                    gradFunc: (dy, saved, attrs) => {
                        const [x] = saved;
                        const { axis } = attrs;
                        let axisArr = [];
                        if (axis === undefined || axis === null) {
                            axisArr = x.shape.map((_, i) => i);
                        } else if (typeof axis === 'number') {
                            axisArr = [axis];
                        } else {
                            axisArr = axis;
                        }
                        return {
                            x: () => prodsGradFn_(x, dy, axisArr)
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const divGradConfig = {
                    kernelName: RealDiv,
                    inputsToSave: ['a', 'b'],
                    gradFunc: (dy, saved) => {
                        const [a, b] = saved;
                        const outShape = assertAndGetBroadcastShape(a.shape, b.shape);
                        const derA = () => {
                            const res = div(dy, cast(b, 'float32'));
                            const reduceAxes = getReductionAxes(a.shape, outShape);
                            if (reduceAxes.length > 0) {
                                return reshape(sum$1(res, reduceAxes), a.shape);
                            }
                            return res;
                        }
                            ;
                        const derB = () => {
                            let res = mul(dy, cast(a, 'float32'));
                            const reduceAxes = getReductionAxes(b.shape, outShape);
                            if (reduceAxes.length > 0) {
                                res = reshape(sum$1(res, reduceAxes), b.shape);
                            }
                            const tmp = square(b);
                            return neg(div(res, cast(tmp, 'float32')));
                        }
                            ;
                        return {
                            a: derA,
                            b: derB
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const reciprocalGradConfig = {
                    kernelName: Reciprocal,
                    inputsToSave: ['x'],
                    gradFunc: (dy, saved) => {
                        const [x] = saved;
                        return {
                            x: () => div(dy, neg(square(x)))
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const relu6GradConfig = {
                    kernelName: Relu6,
                    inputsToSave: ['x'],
                    gradFunc: (dy, saved) => {
                        const [x] = saved;
                        const mask = mul(lessEqual(x, 6), step(x));
                        return {
                            x: () => mul(dy, cast(mask, 'float32'))
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const reluGradConfig = {
                    kernelName: Relu,
                    inputsToSave: ['x'],
                    gradFunc: (dy, saved) => {
                        const [x] = saved;
                        return {
                            x: () => mul(dy, cast(step(x), 'float32'))
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google Inc. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const reshapeGradConfig = {
                    kernelName: Reshape,
                    inputsToSave: ['x'],
                    gradFunc: (dy, saved) => {
                        const [x] = saved;
                        return {
                            x: () => reshape(dy, x.shape)
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const resizeBilinearGradConfig = {
                    kernelName: ResizeBilinear,
                    inputsToSave: ['images'],
                    gradFunc: (dy, saved, attrs) => {
                        const [images] = saved;
                        const inputs = {
                            dy,
                            images
                        };
                        const imagesDer = () =>// tslint:disable-next-line: no-unnecessary-type-assertion
                            ENGINE.runKernel(ResizeBilinearGrad, inputs, attrs);
                        return {
                            images: imagesDer
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const resizeNearestNeighborGradConfig = {
                    kernelName: ResizeNearestNeighbor,
                    inputsToSave: ['images'],
                    gradFunc: (dy, saved, attrs) => {
                        const [images] = saved;
                        const inputs = {
                            dy,
                            images
                        };
                        const imagesDer = () =>// tslint:disable-next-line: no-unnecessary-type-assertion
                            ENGINE.runKernel(ResizeNearestNeighborGrad, inputs, attrs);
                        return {
                            images: imagesDer
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const reverseGradConfig = {
                    kernelName: Reverse,
                    gradFunc: (dy, saved, attrs) => {
                        const { dims } = attrs;
                        const axes = parseAxisParam(dims, dy.shape);
                        return {
                            x: () => reverse(dy, axes)
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const roundGradConfig = {
                    kernelName: Round,
                    gradFunc: dy => {
                        // TODO(nsthorat): Let gradients be null for cases where we want to stop
                        // backpropgation.
                        return {
                            x: () => zerosLike(dy)
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const rsqrtGradConfig = {
                    kernelName: Rsqrt,
                    inputsToSave: ['x'],
                    gradFunc: (dy, saved) => {
                        const [x] = saved;
                        return {
                            x: () => neg(div(dy, mul(pow(x, 1.5), 2)))
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const selectGradConfig = {
                    kernelName: Select,
                    inputsToSave: ['condition'],
                    gradFunc: (dy, saved) => {
                        const [condition] = saved;
                        return {
                            // TODO(julianoks): Return null for condition gradient
                            // when backprop supports it.
                            condition: () => cast(zerosLike(condition), 'float32'),
                            t: () => mul(dy, cast(condition, dy.dtype)),
                            e: () => mul(dy, cast(logicalNot(condition), dy.dtype))
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const seluGradConfig = {
                    kernelName: Selu,
                    inputsToSave: ['x'],
                    gradFunc: (dy, saved) => {
                        const [x] = saved;
                        return {
                            x: () => {
                                const mask = greater(x, scalar(0));
                                const scaleAlpha = scalar(SELU_SCALEALPHA);
                                const scale = scalar(SELU_SCALE);
                                const greaterThanZeroDer = mul(dy, scale);
                                const lessEqualZeroDer = mul(mul(dy, scaleAlpha), exp(cast(x, 'float32')));
                                return where(mask, greaterThanZeroDer, lessEqualZeroDer);
                            }
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const sigmoidGradConfig = {
                    kernelName: Sigmoid,
                    outputsToSave: [true],
                    gradFunc: (dy, saved) => {
                        const [y] = saved;
                        return {
                            x: () => mul(dy, mul(y, sub(scalar(1), y)))
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const signGradConfig = {
                    kernelName: Sign,
                    gradFunc: dy => {
                        return {
                            x: () => zerosLike(dy)
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const sinGradConfig = {
                    kernelName: Sin,
                    inputsToSave: ['x'],
                    gradFunc: (dy, saved) => {
                        const [x] = saved;
                        return {
                            x: () => mul(cos(cast(x, 'float32')), dy)
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const sinhGradConfig = {
                    kernelName: Sinh,
                    inputsToSave: ['x'],
                    gradFunc: (dy, saved) => {
                        const [x] = saved;
                        return {
                            x: () => mul(cosh(cast(x, 'float32')), dy)
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const sliceGradConfig = {
                    kernelName: Slice,
                    inputsToSave: ['x'],
                    gradFunc: (dy, saved, attrs) => {
                        const [x] = saved;
                        const { begin, size } = attrs;
                        const inputShape = x.shape;
                        const [begin_, size_] = parseSliceParams(x, begin, size);
                        // Create an Nx2 padding where the first column represents how many
                        // zeros are prepended (at start) for each dimension, and the second
                        // column indicates how many zeros are appended (at end).
                        // The number of zeros to append is the shape of the input
                        // elementwise-subtracted by both the begin vector and sizes vector.
                        const paddings = [];
                        for (let i = 0; i < dy.rank; i++) {
                            paddings.push([begin_[i], inputShape[i] - begin_[i] - size_[i]]);
                        }
                        return {
                            x: () => pad(dy, paddings)
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const softmaxGradConfig = {
                    kernelName: Softmax,
                    outputsToSave: [true],
                    gradFunc: (dy, saved, attrs) => {
                        const [y] = saved;
                        const { dim } = attrs;
                        const keepDims = true;
                        const dyTimesY = mul(dy, y);
                        return {
                            logits: () => sub(dyTimesY, mul(sum$1(dyTimesY, [dim], keepDims), y))
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const softplusGradConfig = {
                    kernelName: Softplus,
                    inputsToSave: ['x'],
                    gradFunc: (dy, saved) => {
                        const [x] = saved;
                        return {
                            x: () => mul(dy, sigmoid(x))
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const spaceToBatchNDGradConfig = {
                    kernelName: SpaceToBatchND,
                    gradFunc: (dy, saved, attrs) => {
                        const { blockShape, paddings } = attrs;
                        return {
                            x: () => batchToSpaceND(dy, blockShape, paddings)
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const splitVGradConfig = {
                    kernelName: SplitV,
                    gradFunc: (dy, saved, attrs) => {
                        const { axis } = attrs;
                        return {
                            x: () => concat(dy, axis)
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const sqrtGradConfig = {
                    kernelName: Sqrt,
                    inputsToSave: ['x'],
                    gradFunc: (dy, saved) => {
                        const [x] = saved;
                        return {
                            x: () => div(dy, mul(sqrt(cast(x, 'float32')), 2))
                        };
                    }
                };
                /**
 * @license
 * Copyright 2019 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const squareGradConfig = {
                    kernelName: Square,
                    inputsToSave: ['x'],
                    gradFunc: (dy, saved) => {
                        const [x] = saved;
                        return {
                            x: () => mul(dy, mul(cast(x, 'float32'), 2))
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const squaredDifferenceGradConfig = {
                    kernelName: SquaredDifference,
                    inputsToSave: ['a', 'b'],
                    gradFunc: (dy, saved) => {
                        const [a, b] = saved;
                        const two = scalar(2);
                        const derA = () => mul(dy, mul(two, sub(a, b)));
                        const derB = () => mul(dy, mul(two, sub(b, a)));
                        return {
                            a: derA,
                            b: derB
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const stepGradConfig = {
                    kernelName: Step,
                    gradFunc: dy => {
                        // TODO(manrajgrover): Return null for gradients when backprop supports
                        // it.
                        return {
                            x: () => zerosLike(dy)
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const subGradConfig = {
                    kernelName: Sub,
                    inputsToSave: ['a', 'b'],
                    gradFunc: (dy, saved) => {
                        const [a, b] = saved;
                        const outShape = assertAndGetBroadcastShape(a.shape, b.shape);
                        const derA = () => {
                            let res = dy;
                            const reduceAxes = getReductionAxes(a.shape, outShape);
                            if (reduceAxes.length > 0) {
                                res = sum$1(res, reduceAxes);
                            }
                            return reshape(res, a.shape);
                        }
                            ;
                        const derB = () => {
                            let res = dy;
                            const reduceAxes = getReductionAxes(b.shape, outShape);
                            if (reduceAxes.length > 0) {
                                res = sum$1(res, reduceAxes);
                            }
                            return reshape(neg(res), b.shape);
                        }
                            ;
                        return {
                            a: derA,
                            b: derB
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google Inc. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const sumGradConfig = {
                    kernelName: Sum,
                    inputsToSave: ['x'],
                    gradFunc: (dy, saved, attrs) => {
                        const [x] = saved;
                        const expandedDyShape = x.shape.slice();
                        const { axis } = attrs;
                        const axes = parseAxisParam(axis, x.shape);
                        axes.forEach(axis => {
                            expandedDyShape[axis] = 1;
                        }
                        );
                        const expandedDy = reshape(dy, expandedDyShape);
                        const derX = mul(expandedDy, ones$1(x.shape, 'float32'));
                        return {
                            x: () => derX
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const tanGradConfig = {
                    kernelName: Tan,
                    inputsToSave: ['x'],
                    gradFunc: (dy, saved) => {
                        const [x] = saved;
                        return {
                            x: () => div(dy, square(cos(x)))
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const tanhGradConfig = {
                    kernelName: Tanh,
                    outputsToSave: [true],
                    gradFunc: (dy, saved) => {
                        const [y] = saved;
                        return {
                            x: () => mul(sub(scalar(1), square(y)), dy)
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const tileGradConfig = {
                    kernelName: Tile,
                    inputsToSave: ['x'],
                    gradFunc: (dy, saved, attrs) => {
                        const [x] = saved;
                        const { reps } = attrs;
                        const derX = () => {
                            let xGrad = zerosLike(x);
                            // TODO(cais): Maybe reduce memory footprint by avoiding repeated
                            // slicing.
                            if (x.rank === 1) {
                                for (let i = 0; i < reps[0]; ++i) {
                                    xGrad = add$1(xGrad, slice(dy, [i * x.shape[0]], [x.shape[0]]));
                                }
                            } else if (x.rank === 2) {
                                for (let i = 0; i < reps[0]; ++i) {
                                    for (let j = 0; j < reps[1]; ++j) {
                                        xGrad = add$1(xGrad, slice(dy, [i * x.shape[0], j * x.shape[1]], [x.shape[0], x.shape[1]]));
                                    }
                                }
                            } else if (x.rank === 3) {
                                for (let i = 0; i < reps[0]; ++i) {
                                    for (let j = 0; j < reps[1]; ++j) {
                                        for (let k = 0; k < reps[2]; ++k) {
                                            xGrad = add$1(xGrad, slice(dy, [i * x.shape[0], j * x.shape[1], k * x.shape[2]], [x.shape[0], x.shape[1], x.shape[2]]));
                                        }
                                    }
                                }
                            } else if (x.rank === 4) {
                                for (let i = 0; i < reps[0]; ++i) {
                                    for (let j = 0; j < reps[1]; ++j) {
                                        for (let k = 0; k < reps[2]; ++k) {
                                            for (let l = 0; l < reps[3]; ++l) {
                                                xGrad = add$1(xGrad, slice(dy, [i * x.shape[0], j * x.shape[1], k * x.shape[2], l * x.shape[3]], [x.shape[0], x.shape[1], x.shape[2], x.shape[3]]));
                                            }
                                        }
                                    }
                                }
                            } else {
                                throw new Error(`Gradient for tile operation is not implemented for rank-` + `${x.rank} tensors yet.`);
                            }
                            return xGrad;
                        }
                            ;
                        return {
                            x: derX
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const transposeGradConfig = {
                    kernelName: Transpose,
                    gradFunc: (dy, saved, attrs) => {
                        const transposeAttrs = attrs;
                        const { perm } = transposeAttrs;
                        const undoPerm = getUndoAxesPermutation(perm);
                        return {
                            x: () => transpose(dy, undoPerm)
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google Inc. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const unpackGradConfig = {
                    kernelName: Unpack,
                    gradFunc: (dy, saved, attrs) => {
                        const unpackAttrs = attrs;
                        const { axis } = unpackAttrs;
                        return {
                            value: () => stack(dy, axis)
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const unsortedSegmentSumGradConfig = {
                    kernelName: UnsortedSegmentSum,
                    inputsToSave: ['segmentIds'],
                    gradFunc: (dy, saved) => {
                        const [segmentIds] = saved;
                        const derX = () => {
                            return gatherDropNegatives(dy, segmentIds);
                        }
                            ;
                        return {
                            x: derX
                        };
                    }
                };
                function gatherDropNegatives(x, indices) {
                    // Helper function for unsorted segment ops. Gathers params for
                    // positive segment ids and gathers 0 for inputs with negative segment id.
                    // Mirrors _GatherDropNegatives from tensorflow/python/ops/math_grad.py
                    const zeroClippedIndices = maximum(indices, zerosLike(indices));
                    const gathered = gather(x, zeroClippedIndices);
                    let isPositive = greaterEqual(indices, scalar(0, 'int32'));
                    const numIters = gathered.rank - isPositive.rank;
                    for (let i = 0; i < numIters; ++i) {
                        isPositive = expandDims(isPositive, i + 1);
                    }
                    isPositive = logicalAnd(isPositive, ones$1(gathered.shape, 'bool'));
                    const zeroSlice = zerosLike(gathered);
                    return where(isPositive, gathered, zeroSlice);
                }
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                const zerosLikeGradConfig = {
                    kernelName: ZerosLike,
                    gradFunc: dy => {
                        return {
                            x: () => zerosLike(dy)
                        };
                    }
                };
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                // Export all kernel configs here so that the package can auto register them
                const gradConfigs = [absGradConfig, acosGradConfig, acoshGradConfig, addGradConfig, addNGradConfig, argMaxGradConfig, argMinGradConfig, asinGradConfig, asinhGradConfig, atan2GradConfig, atanGradConfig, atanhGradConfig, avgPool3DGradConfig, avgPoolGradConfig, batchMatMulGradConfig, batchToSpaceNDGradConfig, broadcastToGradConfig, castGradConfig, ceilGradConfig, clipByValueGradConfig, complexAbsGradConfig, concatGradConfig, conv2DBackpropInputGradConfig, conv2DGradConfig, conv3DGradConfig, cosGradConfig, coshGradConfig, cumsumGradConfig, depthwiseConv2dNativeGradConfig, dilation2dGradConfig, divGradConfig, eluGradConfig, erfGradConfig, expGradConfig, expandDimsGradConfig, expm1GradConfig, floorDivGradConfig, floorGradConfig, fusedBatchNormGradConfig, gatherGradConfig, greaterEqualGradConfig, identityGradConfig, isFiniteGradConfig, isInfGradConfig, isNanGradConfig, leakyReluGradConfig, log1pGradConfig, logGradConfig, logSoftmaxGradConfig, lrnGradConfig, maxGradConfig, maxGradConfig, maximumGradConfig, maxPool3DGradConfig, maxPoolGradConfig, meanGradConfig, minGradConfig, minimumGradConfig, mirrorPadGradConfig, modGradConfig, multiplyGradConfig, negGradConfig, oneHotGradConfig, onesLikeGradConfig, packGradConfig, padV2GradConfig, padV2GradConfig, powGradConfig, preluGradConfig, prodGradConfig, reciprocalGradConfig, relu6GradConfig, reluGradConfig, reshapeGradConfig, resizeBilinearGradConfig, resizeNearestNeighborGradConfig, reverseGradConfig, roundGradConfig, rsqrtGradConfig, selectGradConfig, seluGradConfig, sigmoidGradConfig, signGradConfig, sinGradConfig, sinhGradConfig, sliceGradConfig, softmaxGradConfig, softplusGradConfig, spaceToBatchNDGradConfig, spaceToBatchNDGradConfig, splitVGradConfig, splitVGradConfig, sqrtGradConfig, squaredDifferenceGradConfig, squareGradConfig, stepGradConfig, subGradConfig, sumGradConfig, tanGradConfig, tanhGradConfig, tileGradConfig, transposeGradConfig, unpackGradConfig, unsortedSegmentSumGradConfig, zerosLikeGradConfig];
                for (const gradientConfig of gradConfigs) {
                    registerGradient(gradientConfig);
                }
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.abs = function () {
                    this.throwIfDisposed();
                    return abs(this);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.acos = function () {
                    this.throwIfDisposed();
                    return acos(this);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.acosh = function () {
                    this.throwIfDisposed();
                    return acosh(this);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.add = function (b) {
                    this.throwIfDisposed();
                    return add$1(this, b);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.all = function (axis, keepDims) {
                    this.throwIfDisposed();
                    return all(this, axis, keepDims);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.any = function (axis, keepDims) {
                    this.throwIfDisposed();
                    return any(this, axis, keepDims);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.argMax = function (axis) {
                    this.throwIfDisposed();
                    return argMax(this, axis);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.argMin = function (axis) {
                    this.throwIfDisposed();
                    return argMin(this, axis);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Converts a size-1 `tf.Tensor` to a `tf.Scalar`.
 * @doc {heading: 'Tensors', subheading: 'Classes'}
 */
                getGlobalTensorClass().prototype.asScalar = function () {
                    this.throwIfDisposed();
                    assert(this.size === 1, () => 'The array must have only 1 element.');
                    return reshape(this, []);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Casts a `tf.Tensor` to a specified dtype.
 *
 * @param dtype Data-type to cast the tensor to.
 *
 * @doc {heading: 'Tensors', subheading: 'Classes'}
 */
                getGlobalTensorClass().prototype.asType = function (dtype) {
                    this.throwIfDisposed();
                    return cast(this, dtype);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Converts a `tf.Tensor` to a `tf.Tensor1D`.
 * @doc {heading: 'Tensors', subheading: 'Classes'}
 */
                getGlobalTensorClass().prototype.as1D = function () {
                    this.throwIfDisposed();
                    return reshape(this, [this.size]);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Converts a `tf.Tensor` to a `tf.Tensor2D`.
 *
 * @param rows Number of rows in `tf.Tensor2D`.
 * @param columns Number of columns in `tf.Tensor2D`.
 * @doc {heading: 'Tensors', subheading: 'Classes'}
 */
                getGlobalTensorClass().prototype.as2D = function (rows, columns) {
                    this.throwIfDisposed();
                    return reshape(this, [rows, columns]);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Converts a `tf.Tensor` to a `tf.Tensor3D`.
 *
 * @param rows Number of rows in `tf.Tensor3D`.
 * @param columns Number of columns in `tf.Tensor3D`.
 * @param depth Depth of `tf.Tensor3D`.
 * @doc {heading: 'Tensors', subheading: 'Classes'}
 */
                getGlobalTensorClass().prototype.as3D = function (rows, columns, depth) {
                    this.throwIfDisposed();
                    return reshape(this, [rows, columns, depth]);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Converts a `tf.Tensor` to a `tf.Tensor4D`.
 *
 * @param rows Number of rows in `tf.Tensor4D`.
 * @param columns Number of columns in `tf.Tensor4D`.
 * @param depth Depth of `tf.Tensor4D`.
 * @param depth2 4th dimension of `tf.Tensor4D`.
 * @doc {heading: 'Tensors', subheading: 'Classes'}
 */
                getGlobalTensorClass().prototype.as4D = function (rows, columns, depth, depth2) {
                    this.throwIfDisposed();
                    return reshape(this, [rows, columns, depth, depth2]);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Converts a `tf.Tensor` to a `tf.Tensor5D`.
 *
 * @param rows Number of rows in `tf.Tensor5D`.
 * @param columns Number of columns in `tf.Tensor5D`.
 * @param depth Depth of `tf.Tensor5D`.
 * @param depth2 4th dimension of `tf.Tensor5D`.
 * @param depth3 5th dimension of 'tf.Tensor5D'
 *
 * @doc {heading: 'Tensors', subheading: 'Classes'}
 */
                getGlobalTensorClass().prototype.as5D = function (rows, columns, depth, depth2, depth3) {
                    this.throwIfDisposed();
                    return reshape(this, [rows, columns, depth, depth2, depth3]);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.asin = function () {
                    this.throwIfDisposed();
                    return asin(this);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.asinh = function () {
                    this.throwIfDisposed();
                    return asinh(this);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.atan = function () {
                    this.throwIfDisposed();
                    return atan(this);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.atan2 = function (b) {
                    this.throwIfDisposed();
                    return atan2(this, b);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.atanh = function () {
                    this.throwIfDisposed();
                    return atanh(this);
                }
                    ;
                getGlobalTensorClass().prototype.avgPool = function (filterSize, strides, pad, dimRoundingMode) {
                    this.throwIfDisposed();
                    return avgPool(this, filterSize, strides, pad, dimRoundingMode);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.batchToSpaceND = function (blockShape, crops) {
                    this.throwIfDisposed();
                    return batchToSpaceND(this, blockShape, crops);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.batchNorm = function (mean, variance, offset, scale, varianceEpsilon) {
                    this.throwIfDisposed();
                    return batchNorm(this, mean, variance, offset, scale, varianceEpsilon);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.broadcastTo = function (shape) {
                    this.throwIfDisposed();
                    return broadcastTo(this, shape);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.cast = function (dtype) {
                    this.throwIfDisposed();
                    return cast(this, dtype);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.ceil = function () {
                    this.throwIfDisposed();
                    return ceil(this);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.clipByValue = function (min, max) {
                    this.throwIfDisposed();
                    return clipByValue(this, min, max);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.concat = function (x, axis) {
                    this.throwIfDisposed();
                    if (x instanceof Tensor) {
                        x = [x];
                    }
                    return concat([this, ...x], axis);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.conv1d = function (filter, stride, pad, dataFormat, dilation, dimRoundingMode) {
                    this.throwIfDisposed();
                    return conv1d(this, filter, stride, pad, dataFormat, dilation, dimRoundingMode);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.conv2dTranspose = function (filter, outputShape, strides, pad, dimRoundingMode) {
                    this.throwIfDisposed();
                    return conv2dTranspose(this, filter, outputShape, strides, pad, dimRoundingMode);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.conv2d = function (filter, strides, pad, dataFormat, dilations, dimRoundingMode) {
                    this.throwIfDisposed();
                    return conv2d(this, filter, strides, pad, dataFormat, dilations, dimRoundingMode);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.cos = function () {
                    this.throwIfDisposed();
                    return cos(this);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.cosh = function () {
                    this.throwIfDisposed();
                    return cosh(this);
                }
                    ;
                /**
 * @license
 * Copyright 2022 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the 'License');
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an 'AS IS' BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.cumprod = function (axis, exclusive, reverse) {
                    this.throwIfDisposed();
                    return cumprod(this, axis, exclusive, reverse);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.cumsum = function (axis, exclusive, reverse) {
                    this.throwIfDisposed();
                    return cumsum(this, axis, exclusive, reverse);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.depthToSpace = function (blockSize, dataFormat) {
                    this.throwIfDisposed();
                    return depthToSpace(this, blockSize, dataFormat);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.depthwiseConv2d = function (filter, strides, pad, dataFormat, dilations, dimRoundingMode) {
                    this.throwIfDisposed();
                    return depthwiseConv2d(this, filter, strides, pad, dataFormat, dilations, dimRoundingMode);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.dilation2d = function (filter, strides, pad, dilations, dataFormat) {
                    this.throwIfDisposed();
                    return dilation2d(this, filter, strides, pad, dilations, dataFormat);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.divNoNan = function (b) {
                    this.throwIfDisposed();
                    return divNoNan(this, b);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.div = function (b) {
                    this.throwIfDisposed();
                    return div(this, b);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.dot = function (b) {
                    this.throwIfDisposed();
                    return dot(this, b);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.elu = function () {
                    this.throwIfDisposed();
                    return elu(this);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.equal = function (b) {
                    this.throwIfDisposed();
                    return equal(this, b);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.erf = function () {
                    this.throwIfDisposed();
                    return erf(this);
                }
                    ;
                /**
 * @license
 * Copyright 2021 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.euclideanNorm = function (axis, keepDims) {
                    this.throwIfDisposed();
                    return euclideanNorm(this, axis, keepDims);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.exp = function () {
                    this.throwIfDisposed();
                    return exp(this);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.expandDims = function (axis) {
                    this.throwIfDisposed();
                    return expandDims(this, axis);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.expm1 = function () {
                    this.throwIfDisposed();
                    return expm1(this);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.fft = function () {
                    this.throwIfDisposed();
                    return fft(this);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Flatten a Tensor to a 1D array.
 * @doc {heading: 'Tensors', subheading: 'Classes'}
 */
                getGlobalTensorClass().prototype.flatten = function () {
                    this.throwIfDisposed();
                    return reshape(this, [this.size]);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.floor = function () {
                    this.throwIfDisposed();
                    return floor(this);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.floorDiv = function (b) {
                    this.throwIfDisposed();
                    return floorDiv(this, b);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.gather = function (indices, axis) {
                    this.throwIfDisposed();
                    return gather(this, indices, axis);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.greaterEqual = function (b) {
                    this.throwIfDisposed();
                    return greaterEqual(this, b);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.greater = function (b) {
                    this.throwIfDisposed();
                    return greater(this, b);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.ifft = function () {
                    this.throwIfDisposed();
                    return ifft(this);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.irfft = function () {
                    this.throwIfDisposed();
                    return irfft(this);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.isFinite = function () {
                    this.throwIfDisposed();
                    return isFinite$1(this);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.isInf = function () {
                    this.throwIfDisposed();
                    return isInf(this);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.isNaN = function () {
                    this.throwIfDisposed();
                    return isNaN$1(this);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.leakyRelu = function (alpha) {
                    this.throwIfDisposed();
                    return leakyRelu(this, alpha);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.lessEqual = function (b) {
                    this.throwIfDisposed();
                    return lessEqual(this, b);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.less = function (b) {
                    this.throwIfDisposed();
                    return less(this, b);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.localResponseNormalization = function (depthRadius, bias, alpha, beta) {
                    this.throwIfDisposed();
                    return localResponseNormalization(this, depthRadius, bias, alpha, beta);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.logSigmoid = function () {
                    this.throwIfDisposed();
                    return logSigmoid(this);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.logSoftmax = function (axis) {
                    this.throwIfDisposed();
                    return logSoftmax(this, axis);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.logSumExp = function (axis, keepDims) {
                    this.throwIfDisposed();
                    return logSumExp(this, axis, keepDims);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.log = function () {
                    this.throwIfDisposed();
                    return log$1(this);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.log1p = function () {
                    this.throwIfDisposed();
                    return log1p(this);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.logicalAnd = function (b) {
                    this.throwIfDisposed();
                    return logicalAnd(this, b);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.logicalNot = function () {
                    this.throwIfDisposed();
                    return logicalNot(this);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.logicalOr = function (b) {
                    this.throwIfDisposed();
                    return logicalOr(this, b);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.logicalXor = function (b) {
                    this.throwIfDisposed();
                    return logicalXor(this, b);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.matMul = function (b, transposeA, transposeB) {
                    this.throwIfDisposed();
                    return matMul(this, b, transposeA, transposeB);
                }
                    ;
                getGlobalTensorClass().prototype.maxPool = function (filterSize, strides, pad, dimRoundingMode) {
                    this.throwIfDisposed();
                    return maxPool(this, filterSize, strides, pad, dimRoundingMode);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.max = function (axis, keepDims) {
                    this.throwIfDisposed();
                    return max(this, axis, keepDims);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.maximum = function (b) {
                    this.throwIfDisposed();
                    return maximum(this, b);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.mean = function (axis, keepDims) {
                    this.throwIfDisposed();
                    return mean(this, axis, keepDims);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.min = function (axis, keepDims) {
                    this.throwIfDisposed();
                    return min(this, axis, keepDims);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.minimum = function (b) {
                    this.throwIfDisposed();
                    return minimum(this, b);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.mirrorPad = function (paddings, mode) {
                    this.throwIfDisposed();
                    return mirrorPad(this, paddings, mode);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.mod = function (b) {
                    this.throwIfDisposed();
                    return mod(this, b);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.mul = function (b) {
                    this.throwIfDisposed();
                    return mul(this, b);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.neg = function () {
                    this.throwIfDisposed();
                    return neg(this);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.norm = function (ord, axis, keepDims) {
                    this.throwIfDisposed();
                    return norm(this, ord, axis, keepDims);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.notEqual = function (b) {
                    this.throwIfDisposed();
                    return notEqual(this, b);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.oneHot = function (depth, onValue = 1, offValue = 0) {
                    this.throwIfDisposed();
                    return oneHot(this, depth, onValue, offValue);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.onesLike = function () {
                    this.throwIfDisposed();
                    return onesLike(this);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.pad = function (paddings, constantValue) {
                    this.throwIfDisposed();
                    return pad(this, paddings, constantValue);
                }
                    ;
                getGlobalTensorClass().prototype.pool = function (windowShape, poolingType, padding, dilationRate, strides, dimRoundingMode) {
                    this.throwIfDisposed();
                    return pool(this, windowShape, poolingType, padding, dilationRate, strides, dimRoundingMode);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.pow = function (exp) {
                    this.throwIfDisposed();
                    return pow(this, exp);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.prelu = function (alpha) {
                    this.throwIfDisposed();
                    return prelu(this, alpha);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.prod = function (axis, keepDims) {
                    this.throwIfDisposed();
                    return prod(this, axis, keepDims);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.reciprocal = function () {
                    this.throwIfDisposed();
                    return reciprocal(this);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.relu = function () {
                    this.throwIfDisposed();
                    return relu(this);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.relu6 = function () {
                    this.throwIfDisposed();
                    return relu6(this);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Reshapes the tensor into the shape of the provided tensor.
 *
 * @param x The tensor of required shape.
 *
 * @doc {heading: 'Tensors', subheading: 'Classes'}
 */
                getGlobalTensorClass().prototype.reshapeAs = function (x) {
                    this.throwIfDisposed();
                    return reshape(this, x.shape);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.reshape = function (shape) {
                    this.throwIfDisposed();
                    return reshape(this, shape);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.resizeBilinear = function (newShape2D, alignCorners, halfPixelCenters) {
                    this.throwIfDisposed();
                    return resizeBilinear(this, newShape2D, alignCorners, halfPixelCenters);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.resizeNearestNeighbor = function (newShape2D, alignCorners, halfFloatCenters) {
                    this.throwIfDisposed();
                    return resizeNearestNeighbor(this, newShape2D, alignCorners, halfFloatCenters);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.reverse = function (axis) {
                    this.throwIfDisposed();
                    return reverse(this, axis);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.rfft = function () {
                    this.throwIfDisposed();
                    return rfft(this);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.round = function () {
                    this.throwIfDisposed();
                    return round$1(this);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.rsqrt = function () {
                    this.throwIfDisposed();
                    return rsqrt(this);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.selu = function () {
                    this.throwIfDisposed();
                    return selu(this);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.separableConv2d = function (depthwiseFilter, pointwiseFilter, strides, pad, dilation, dataFormat) {
                    this.throwIfDisposed();
                    return separableConv2d(this, depthwiseFilter, pointwiseFilter, strides, pad, dilation, dataFormat);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.sigmoid = function () {
                    this.throwIfDisposed();
                    return sigmoid(this);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.sign = function () {
                    this.throwIfDisposed();
                    return sign(this);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.sin = function () {
                    this.throwIfDisposed();
                    return sin(this);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.sinh = function () {
                    this.throwIfDisposed();
                    return sinh(this);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.slice = function (begin, size) {
                    this.throwIfDisposed();
                    return slice(this, begin, size);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.softmax = function (dim) {
                    this.throwIfDisposed();
                    return softmax(this, dim);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.softplus = function () {
                    this.throwIfDisposed();
                    return softplus(this);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.spaceToBatchND = function (blockShape, paddings) {
                    this.throwIfDisposed();
                    return spaceToBatchND(this, blockShape, paddings);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.split = function (numOrSizeSplits, axis) {
                    this.throwIfDisposed();
                    return split(this, numOrSizeSplits, axis);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.sqrt = function () {
                    this.throwIfDisposed();
                    return sqrt(this);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.square = function () {
                    this.throwIfDisposed();
                    return square(this);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.squaredDifference = function (b) {
                    this.throwIfDisposed();
                    return squaredDifference(this, b);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.squeeze = function (axis) {
                    this.throwIfDisposed();
                    return squeeze(this, axis);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.stack = function (x, axis) {
                    this.throwIfDisposed();
                    const tensorsToBeStacked = x instanceof Tensor ? [this, x] : [this, ...x];
                    return stack(tensorsToBeStacked, axis);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.step = function (alpha) {
                    this.throwIfDisposed();
                    return step(this, alpha);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.stridedSlice = function (begin, end, strides, beginMask, endMask, ellipsisMask, newAxisMask, shrinkAxisMask) {
                    this.throwIfDisposed();
                    return stridedSlice(this, begin, end, strides, beginMask, endMask, ellipsisMask, newAxisMask, shrinkAxisMask);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.sub = function (b) {
                    this.throwIfDisposed();
                    return sub(this, b);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.sum = function (axis, keepDims) {
                    this.throwIfDisposed();
                    return sum$1(this, axis, keepDims);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.tan = function () {
                    this.throwIfDisposed();
                    return tan(this);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.tanh = function () {
                    this.throwIfDisposed();
                    return tanh$1(this);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.tile = function (reps) {
                    this.throwIfDisposed();
                    return tile(this, reps);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Casts the array to type `bool`
 *
 * @doc {heading: 'Tensors', subheading: 'Classes'}
 */
                getGlobalTensorClass().prototype.toBool = function () {
                    this.throwIfDisposed();
                    return cast(this, 'bool');
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Casts the array to type `float32`
 *
 * @doc {heading: 'Tensors', subheading: 'Classes'}
 */
                getGlobalTensorClass().prototype.toFloat = function () {
                    this.throwIfDisposed();
                    return cast(this, 'float32');
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /**
 * Casts the array to type `int32`
 *
 * @doc {heading: 'Tensors', subheading: 'Classes'}
 */
                getGlobalTensorClass().prototype.toInt = function () {
                    this.throwIfDisposed();
                    return cast(this, 'int32');
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.topk = function (k, sorted) {
                    this.throwIfDisposed();
                    return topk(this, k, sorted);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.transpose = function (perm) {
                    this.throwIfDisposed();
                    return transpose(this, perm);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.unique = function (axis) {
                    this.throwIfDisposed();
                    return unique(this, axis);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.unsortedSegmentSum = function (segmentIds, numSegments) {
                    this.throwIfDisposed();
                    return unsortedSegmentSum(this, segmentIds, numSegments);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.unstack = function (axis) {
                    this.throwIfDisposed();
                    return unstack(this, axis);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.where = function (condition, x) {
                    this.throwIfDisposed();
                    return where(condition, this, x);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                getGlobalTensorClass().prototype.zerosLike = function () {
                    this.throwIfDisposed();
                    return zerosLike(this);
                }
                    ;
                /**
 * @license
 * Copyright 2020 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                /** @license See the LICENSE file. */
                // This code is auto-generated, do not modify this file!
                var version$1 = '4.1.0';
                /**
 * @license
 * Copyright 2018 Google LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =============================================================================
 */
                var version$2 = {
                    'tfjs-core': tfjsCore.version_core,
                    'tfjs-backend-cpu': tfjsBackendCpu.version_cpu,
                    'tfjs-backend-webgl': tfjsBackendWebgl.version_webgl,
                    'tfjs-data': tfjsData.version_data,
                    'tfjs-layers': tfjsLayers.version_layers,
                    'tfjs-converter': tfjsConverter.version_converter,
                    'tfjs': version$1
                };
                Object.keys(tfjsCore).forEach(function (k) {
                    if (k !== 'default')
                        Object.defineProperty(exports, k, {
                            enumerable: true,
                            get: function () {
                                return tfjsCore[k];
                            }
                        });
                });
                Object.keys(tfjsLayers).forEach(function (k) {
                    if (k !== 'default')
                        Object.defineProperty(exports, k, {
                            enumerable: true,
                            get: function () {
                                return tfjsLayers[k];
                            }
                        });
                });
                Object.keys(tfjsConverter).forEach(function (k) {
                    if (k !== 'default')
                        Object.defineProperty(exports, k, {
                            enumerable: true,
                            get: function () {
                                return tfjsConverter[k];
                            }
                        });
                });
                exports.data = tfjsData;
                exports.version = version$2;

            }
            ).call(this)
        }
        ).call(this, require('_process'), typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}, require("buffer").Buffer, arguments[3], arguments[4], arguments[5], arguments[6], require("timers").setImmediate)
    }
        , {
        "@tensorflow/tfjs-backend-cpu": 7,
        "@tensorflow/tfjs-backend-webgl": 9,
        "@tensorflow/tfjs-converter": 590,
        "@tensorflow/tfjs-core": 506,
        "@tensorflow/tfjs-data": 512,
        "@tensorflow/tfjs-layers": 538,
        "_process": 649,
        "buffer": 647,
        "crypto": 636,
        "long": 637,
        "timers": 650
    }],
    579: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.SaverDef = exports.DataType = void 0;
        /**
         * @license
         * Copyright 2019 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         *
         * =============================================================================
         */
        /** DataType enum. */
        var DataType;
        exports.DataType = DataType;
        (function (DataType) {
            // Not a legal value for DataType.  Used to indicate a DataType field
            // has not been set.
            DataType[DataType["DT_INVALID"] = 0] = "DT_INVALID";
            // Data types that all computation devices are expected to be
            // capable to support.
            DataType[DataType["DT_FLOAT"] = 1] = "DT_FLOAT";
            DataType[DataType["DT_DOUBLE"] = 2] = "DT_DOUBLE";
            DataType[DataType["DT_INT32"] = 3] = "DT_INT32";
            DataType[DataType["DT_UINT8"] = 4] = "DT_UINT8";
            DataType[DataType["DT_INT16"] = 5] = "DT_INT16";
            DataType[DataType["DT_INT8"] = 6] = "DT_INT8";
            DataType[DataType["DT_STRING"] = 7] = "DT_STRING";
            DataType[DataType["DT_COMPLEX64"] = 8] = "DT_COMPLEX64";
            DataType[DataType["DT_INT64"] = 9] = "DT_INT64";
            DataType[DataType["DT_BOOL"] = 10] = "DT_BOOL";
            DataType[DataType["DT_QINT8"] = 11] = "DT_QINT8";
            DataType[DataType["DT_QUINT8"] = 12] = "DT_QUINT8";
            DataType[DataType["DT_QINT32"] = 13] = "DT_QINT32";
            DataType[DataType["DT_BFLOAT16"] = 14] = "DT_BFLOAT16";
            DataType[DataType["DT_QINT16"] = 15] = "DT_QINT16";
            DataType[DataType["DT_QUINT16"] = 16] = "DT_QUINT16";
            DataType[DataType["DT_UINT16"] = 17] = "DT_UINT16";
            DataType[DataType["DT_COMPLEX128"] = 18] = "DT_COMPLEX128";
            DataType[DataType["DT_HALF"] = 19] = "DT_HALF";
            DataType[DataType["DT_RESOURCE"] = 20] = "DT_RESOURCE";
            DataType[DataType["DT_VARIANT"] = 21] = "DT_VARIANT";
            DataType[DataType["DT_UINT32"] = 22] = "DT_UINT32";
            DataType[DataType["DT_UINT64"] = 23] = "DT_UINT64";
            // Do not use!  These are only for parameters.  Every enum above
            // should have a corresponding value below (verified by types_test).
            DataType[DataType["DT_FLOAT_REF"] = 101] = "DT_FLOAT_REF";
            DataType[DataType["DT_DOUBLE_REF"] = 102] = "DT_DOUBLE_REF";
            DataType[DataType["DT_INT32_REF"] = 103] = "DT_INT32_REF";
            DataType[DataType["DT_UINT8_REF"] = 104] = "DT_UINT8_REF";
            DataType[DataType["DT_INT16_REF"] = 105] = "DT_INT16_REF";
            DataType[DataType["DT_INT8_REF"] = 106] = "DT_INT8_REF";
            DataType[DataType["DT_STRING_REF"] = 107] = "DT_STRING_REF";
            DataType[DataType["DT_COMPLEX64_REF"] = 108] = "DT_COMPLEX64_REF";
            DataType[DataType["DT_INT64_REF"] = 109] = "DT_INT64_REF";
            DataType[DataType["DT_BOOL_REF"] = 110] = "DT_BOOL_REF";
            DataType[DataType["DT_QINT8_REF"] = 111] = "DT_QINT8_REF";
            DataType[DataType["DT_QUINT8_REF"] = 112] = "DT_QUINT8_REF";
            DataType[DataType["DT_QINT32_REF"] = 113] = "DT_QINT32_REF";
            DataType[DataType["DT_BFLOAT16_REF"] = 114] = "DT_BFLOAT16_REF";
            DataType[DataType["DT_QINT16_REF"] = 115] = "DT_QINT16_REF";
            DataType[DataType["DT_QUINT16_REF"] = 116] = "DT_QUINT16_REF";
            DataType[DataType["DT_UINT16_REF"] = 117] = "DT_UINT16_REF";
            DataType[DataType["DT_COMPLEX128_REF"] = 118] = "DT_COMPLEX128_REF";
            DataType[DataType["DT_HALF_REF"] = 119] = "DT_HALF_REF";
            DataType[DataType["DT_RESOURCE_REF"] = 120] = "DT_RESOURCE_REF";
            DataType[DataType["DT_VARIANT_REF"] = 121] = "DT_VARIANT_REF";
            DataType[DataType["DT_UINT32_REF"] = 122] = "DT_UINT32_REF";
            DataType[DataType["DT_UINT64_REF"] = 123] = "DT_UINT64_REF";
        }
        )(DataType || (exports.DataType = DataType = {}));
        var SaverDef;
        exports.SaverDef = SaverDef;
        (function (SaverDef) {
            /** CheckpointFormatVersion enum. */
            let CheckpointFormatVersion;
            (function (CheckpointFormatVersion) {
                CheckpointFormatVersion[CheckpointFormatVersion["LEGACY"] = 0] = "LEGACY";
                CheckpointFormatVersion[CheckpointFormatVersion["V1"] = 1] = "V1";
                CheckpointFormatVersion[CheckpointFormatVersion["V2"] = 2] = "V2";
            }
            )(CheckpointFormatVersion = SaverDef.CheckpointFormatVersion || (SaverDef.CheckpointFormatVersion = {}));
        }
        )(SaverDef || (exports.SaverDef = SaverDef = {}));

    }
        , {}],
    580: [function (require, module, exports) {
        arguments[4][11][0].apply(exports, arguments)
    }
        , {
        "dup": 11
    }],
    581: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.GraphExecutor = void 0;
        var _tfjsCore = require("@tensorflow/tfjs-core");
        var _utils = require("../operations/executors/utils");
        var _operation_executor = require("../operations/operation_executor");
        var _execution_context = require("./execution_context");
        var _model_analysis = require("./model_analysis");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        class GraphExecutor {
            /**
             *
             * @param graph Graph the model or function graph to be executed.
             * @param parent When building function exector you need to set the parent
             * executor. Since the weights and function executor maps are set at parant
             * level, that function executor can access the function maps and weight maps
             * through the parent.
             */
            constructor(graph, parent) {
                this.graph = graph;
                this.parent = parent;
                this.compiledMap = new Map();
                this._weightMap = {};
                this.SEPERATOR = ',';
                this._functions = {};
                this._functionExecutorMap = {};
                this.keepIntermediateTensors = false;
                this._outputs = graph.outputs;
                this._inputs = graph.inputs;
                this._initNodes = graph.initNodes;
                this._signature = graph.signature;
                this._functions = graph.functions;
                // create sub-graph executors
                if (graph.functions != null) {
                    Object.keys(graph.functions).forEach(name => {
                        this._functionExecutorMap[name] = new GraphExecutor(graph.functions[name], this);
                    }
                    );
                }
            }
            get weightIds() {
                return this.parent ? this.parent.weightIds : this._weightIds;
            }
            get functionExecutorMap() {
                return this.parent ? this.parent.functionExecutorMap : this._functionExecutorMap;
            }
            get weightMap() {
                return this.parent ? this.parent.weightMap : this._weightMap;
            }
            set weightMap(weightMap) {
                const weightIds = Object.keys(weightMap).map(key => weightMap[key].map(tensor => tensor.id));
                this._weightIds = [].concat(...weightIds);
                this._weightMap = weightMap;
            }
            /**
             * Set `ResourceManager` shared by executors of a model.
             * @param resourceManager: `ResourceManager` of the `GraphModel`.
             */
            set resourceManager(resourceManager) {
                this._resourceManager = resourceManager;
            }
            get inputs() {
                return this._inputs.map(node => {
                    return {
                        name: node.name,
                        shape: node.attrParams['shape'] ? node.attrParams['shape'].value : undefined,
                        dtype: node.attrParams['dtype'] ? node.attrParams['dtype'].value : undefined
                    };
                }
                );
            }
            get outputs() {
                return this._outputs.map(node => {
                    return {
                        name: node.name,
                        shape: node.attrParams['shape'] ? node.attrParams['shape'].value : undefined,
                        dtype: node.attrParams['dtype'] ? node.attrParams['dtype'].value : undefined
                    };
                }
                );
            }
            get inputNodes() {
                return this._inputs.map(node => node.signatureKey || node.name);
            }
            get outputNodes() {
                return this._outputs.map(node => {
                    const name = node.signatureKey || node.name;
                    return node.defaultOutput ? `${name}:${node.defaultOutput}` : name;
                }
                );
            }
            get functions() {
                return Object.keys(this._functions).reduce((map, key) => {
                    map[key] = this._functions[key].signature;
                    return map;
                }
                    , {});
            }
            getCompilationKey(inputs, outputs) {
                const sortedInputs = inputs.map(node => node.name).sort();
                const sortedOutputs = outputs.map(node => node.name).sort();
                return sortedInputs.join(this.SEPERATOR) + '--' + sortedOutputs.join(this.SEPERATOR);
            }
            /**
             * Compiles the inference graph and returns the minimal set of nodes that are
             * required for execution, in the correct execution order.
             */
            compile(inputs, outputs) {
                const executionInfo = (0,
                    _model_analysis.getExecutionSubgraph)(inputs, outputs, this.weightMap, this._initNodes);
                const { missingInputs, dynamicNode, syncInputs } = executionInfo;
                if (dynamicNode != null) {
                    throw new Error(`This execution contains the node '${dynamicNode.name}', which has ` + `the dynamic op '${dynamicNode.op}'. Please use ` + `model.executeAsync() instead. Alternatively, to avoid the ` + `dynamic ops, specify the inputs [${syncInputs}]`);
                }
                if (missingInputs.length > 0) {
                    const outNames = outputs.map(n => n.name);
                    const inNames = Object.keys(inputs);
                    throw new Error(`Cannot compute the outputs [${outNames}] from the provided inputs ` + `[${inNames}]. Missing the following inputs: [${missingInputs}]`);
                }
                return (0,
                    _model_analysis.getNodesInTopologicalOrder)(this.graph, this.weightMap, executionInfo);
            }
            cloneAndKeepTensor(tensor) {
                if (tensor == null) {
                    return null;
                }
                const clone = tensor.clone();
                // Keep the clone because`model.execute()` may be called within
                // a `tidy()`, but the user may inspect these tensors after the
                // tidy.
                (0,
                    _tfjsCore.keep)(clone);
                return clone;
            }
            cloneTensorList(tensors) {
                if (!tensors) {
                    return null;
                }
                const clonedTensor = tensors.map(tensor => {
                    return this.cloneAndKeepTensor(tensor);
                }
                );
                return clonedTensor;
            }
            cloneTensorMap(tensorsMap) {
                return Object.fromEntries(Object.entries(tensorsMap).map(([name, tensorsList]) => {
                    return [name, this.cloneTensorList(tensorsList)];
                }
                ));
            }
            /**
             * Executes the inference for given input tensors.
             * @param inputs Tensor map for the model inputs, keyed by the input node
             * names.
             * @param outputs Optional. output node name from the Tensorflow model, if
             * no outputs are specified, the default outputs of the model would be used.
             * You can inspect intermediate nodes of the model by adding them to the
             * outputs array.
             */
            execute(inputs, outputs) {
                // Dispose any tensors from a prior run to avoid leaking them.
                this.disposeIntermediateTensors();
                inputs = this.mapInputs(inputs);
                const names = Object.keys(inputs).sort();
                this.checkInputs(inputs);
                this.checkInputShapeAndType(inputs);
                outputs = this.mapOutputs(outputs);
                this.checkOutputs(outputs);
                const inputNodes = names.map(name => this.graph.nodes[(0,
                    _utils.parseNodeName)(name)[0]]);
                const outputNodeNames = outputs.map(name => (0,
                    _utils.parseNodeName)(name)[0]);
                let outputNodes = outputNodeNames.map(name => this.graph.nodes[name]);
                // If no outputs are specified, then use the default outputs of the model.
                if (outputNodes.length === 0) {
                    outputNodes = this._outputs;
                }
                const compilationKey = this.getCompilationKey(inputNodes, outputNodes);
                // Do nothing if the compiled graph cache contains the input.
                let orderedNodes = this.compiledMap.get(compilationKey);
                if (orderedNodes == null) {
                    orderedNodes = this.compile(inputs, outputNodes);
                    this.compiledMap.set(compilationKey, orderedNodes);
                }
                // Keep tensors if KEEP_INTERMEDIATE_TENSORS is on.
                try {
                    this.keepIntermediateTensors = (0,
                        _tfjsCore.env)().getBool('KEEP_INTERMEDIATE_TENSORS');
                } catch (e) {
                    this.keepIntermediateTensors = false;
                    console.warn(e.message);
                }
                const tensorArrayMap = {};
                const tensorListMap = {};
                return (0,
                    _tfjsCore.tidy)(() => {
                        const context = new _execution_context.ExecutionContext(this.weightMap, tensorArrayMap, tensorListMap, this.functionExecutorMap);
                        const tensorsMap = Object.assign({}, this.weightMap);
                        if (this.keepIntermediateTensors) {
                            this.clonedTensorsMap = this.cloneTensorMap(this.weightMap);
                        }
                        Object.keys(inputs).forEach(name => {
                            const [nodeName, index] = (0,
                                _utils.parseNodeName)(name);
                            const tensors = [];
                            tensors[index] = inputs[name];
                            tensorsMap[nodeName] = tensors;
                            if (this.keepIntermediateTensors) {
                                this.clonedTensorsMap[nodeName] = this.cloneTensorList(tensors);
                            }
                        }
                        );
                        const tensorsToKeep = this.getFrozenTensorIds(tensorsMap);
                        const intermediateTensorConsumerCount = {};
                        for (let i = 0; i < orderedNodes.length; i++) {
                            const node = orderedNodes[i];
                            if (!tensorsMap[node.name]) {
                                const tensors = (0,
                                    _operation_executor.executeOp)(node, tensorsMap, context, this._resourceManager);
                                if (_tfjsCore.util.isPromise(tensors)) {
                                    throw new Error(`The execution of the op '${node.op}' returned a promise. ` + `Please use model.executeAsync() instead.`);
                                }
                                tensorsMap[node.name] = tensors;
                                if (this.keepIntermediateTensors) {
                                    this.clonedTensorsMap[node.name] = this.cloneTensorList(tensors);
                                }
                                this.checkTensorForDisposal(node.name, node, tensorsMap, context, tensorsToKeep, outputNodeNames, intermediateTensorConsumerCount);
                            }
                        }
                        // dispose the context for the root executor
                        if (this.parent == null) {
                            context.dispose(tensorsToKeep);
                        }
                        return outputs.map(name => (0,
                            _utils.getTensor)(name, tensorsMap, context));
                    }
                    );
            }
            getFrozenTensorIds(tensorMap) {
                const ids = [].concat.apply([], Object.keys(tensorMap).map(key => tensorMap[key]).map(tensors => tensors.map(tensor => tensor.id)));
                return new Set(ids);
            }
            checkTensorForDisposal(nodeName, node, tensorMap, context, tensorsToKeep, outputNames, intermediateTensorConsumerCount) {
                // Skip output nodes and any control flow nodes, since its dependency is
                // tricky to track correctly.
                if (node.category === 'control' || outputNames.indexOf(nodeName) !== -1) {
                    return;
                }
                tensorMap[nodeName].forEach(tensor => {
                    if (tensor != null) {
                        intermediateTensorConsumerCount[tensor.id] = (intermediateTensorConsumerCount[tensor.id] || 0) + node.children.length;
                    }
                }
                );
                node.inputs.forEach(input => {
                    // Skip any control flow nodes, since its dependency is tricky to track
                    // correctly.
                    if (input.category !== 'control') {
                        const tensors = (0,
                            _utils.getTensorsForCurrentContenxt)(input.name, tensorMap, context);
                        if (tensors != null) {
                            tensors.forEach(tensor => {
                                if (tensor && !tensor.kept && !tensorsToKeep.has(tensor.id)) {
                                    const count = intermediateTensorConsumerCount[tensor.id];
                                    if (count === 1) {
                                        tensor.dispose();
                                        delete intermediateTensorConsumerCount[tensor.id];
                                    } else if (count != null) {
                                        // only intermediate nodes has count set, inputs and weights
                                        // are not.
                                        intermediateTensorConsumerCount[tensor.id]--;
                                    }
                                }
                            }
                            );
                        }
                    }
                }
                );
            }
            /**
             * Executes the inference for given input tensors in Async fashion.
             * @param inputs Tensor map for the model inputs, keyed by the input node
             * names.
             * @param outputs output node name from the Tensorflow model, if no outputs
             * are specified, the default outputs of the model would be used. You can
             * inspect intermediate nodes of the model by adding them to the outputs
             * array.
             */
            async executeAsync(inputs, outputs) {
                return this._executeAsync(inputs, outputs);
            }
            disposeIntermediateTensors() {
                if (!this.clonedTensorsMap) {
                    return;
                }
                Object.values(this.clonedTensorsMap).forEach(tensorsList => {
                    for (const tensor of tensorsList) {
                        if (tensor && !tensor.isDisposed) {
                            tensor.dispose();
                        }
                    }
                }
                );
                this.clonedTensorsMap = null;
            }
            getIntermediateTensors() {
                return this.clonedTensorsMap;
            }
            /**
             * Executes the inference for given input tensors in Async fashion.
             * @param inputs Tensor map for the model inputs, keyed by the input node
             * names.
             * @param outputs Optional. output node name from the Tensorflow model,
             * if no outputs are specified, the default outputs of the model would be
             * used. You can inspect intermediate nodes of the model by adding them to
             * the outputs array.
             * @param isFunctionExecution Optional. Flag for executing a function.
             * @param tensorArrayMap Optional, global TensorArray map by id. Used for
             * function execution.
             * @param tensorArrayMap Optinal global TensorList map by id. Used for
             * function execution.
             */
            async _executeAsync(inputs, outputs, isFunctionExecution = false, tensorArrayMap = {}, tensorListMap = {}) {
                // Dispose any tensors from a prior run to avoid leaking them.
                this.disposeIntermediateTensors();
                if (!isFunctionExecution) {
                    inputs = this.mapInputs(inputs);
                    this.checkInputs(inputs);
                    this.checkInputShapeAndType(inputs);
                    outputs = this.mapOutputs(outputs);
                    this.checkOutputs(outputs);
                }
                // Keep tensors if KEEP_INTERMEDIATE_TENSORS is on.
                try {
                    this.keepIntermediateTensors = (0,
                        _tfjsCore.env)().getBool('KEEP_INTERMEDIATE_TENSORS');
                } catch (e) {
                    this.keepIntermediateTensors = false;
                    console.warn(e.message);
                }
                const context = new _execution_context.ExecutionContext(this.weightMap, tensorArrayMap, tensorListMap, this.functionExecutorMap);
                if (this.keepIntermediateTensors) {
                    this.clonedTensorsMap = this.cloneTensorMap(this.weightMap);
                }
                // Graph with control flow op requires runtime evaluation of the execution
                // order, while without control flow the execution order is pre-determined
                // in the compile method.
                const tensorsMap = await this.executeWithControlFlow(inputs, context, outputs, isFunctionExecution);
                const results = outputs.map(name => (0,
                    _utils.getTensor)(name, tensorsMap, context));
                // dispose all the intermediate tensors
                const outputIds = results.map(t => t.id);
                const inputIds = Object.keys(inputs).map(name => inputs[name].id);
                const keepIds = new Set([...outputIds, ...inputIds, ...this.weightIds]);
                Object.values(tensorsMap).forEach(tensorsList => {
                    tensorsList.forEach(tensor => {
                        if (tensor && !tensor.isDisposed && !keepIds.has(tensor.id)) {
                            tensor.dispose();
                        }
                    }
                    );
                }
                );
                // dispose the context for the root executor
                if (this.parent == null) {
                    context.dispose(keepIds);
                }
                return results;
            }
            async executeFunctionAsync(inputs, tensorArrayMap, tensorListMap) {
                const mappedInputs = inputs.reduce((map, tensor, index) => {
                    map[this.inputs[index].name] = tensor;
                    return map;
                }
                    , {});
                return this._executeAsync(mappedInputs, this.outputNodes, true, tensorArrayMap, tensorListMap);
            }
            /**
             * When there are control flow nodes in the graph, the graph execution use
             * ExecutionContext to keep track of the frames and loop iterators.
             * @param inputs placeholder tensors for the graph.
             * @param context the execution context object for current execution.
             * @param outputNames Optional. output node name from the Tensorflow model,
             * if no outputs are specified, the default outputs of the model would be
             * used. You can inspect intermediate nodes of the model by adding them to
             * the outputs array.
             * @param isFunctionExecution Flag for executing a function.
             */
            async executeWithControlFlow(inputs, context, outputNames, isFunctionExecution) {
                const names = Object.keys(inputs);
                const inputNodes = names.map(name => this.graph.nodes[(0,
                    _utils.parseNodeName)(name)[0]]);
                const outputNodeNames = outputNames.map(name => (0,
                    _utils.parseNodeName)(name)[0]);
                let outputNodes = outputNodeNames.map(name => this.graph.nodes[name]);
                // If no outputs are specified, then use the default outputs of the model.
                if (outputNodes.length === 0) {
                    outputNodes = this._outputs;
                }
                const { usedNodes, missingInputs, dynamicNode, syncInputs } = (0,
                    _model_analysis.getExecutionSubgraph)(inputs, outputNodes, this.weightMap, this._initNodes);
                // First nodes to execute include inputNodes, weights, and initNodes.
                const stack = [...inputNodes, ...this.graph.weights, ...(this._initNodes || [])].map(node => {
                    return {
                        node,
                        contexts: context.currentContext
                    };
                }
                );
                const tensorsMap = Object.assign({}, this.weightMap);
                Object.keys(inputs).forEach(name => {
                    const [nodeName, index] = (0,
                        _utils.parseNodeName)(name);
                    const tensors = [];
                    tensors[index] = inputs[name];
                    tensorsMap[nodeName] = tensors;
                }
                );
                const intermediateTensorConsumerCount = {};
                const tensorsToKeep = this.getFrozenTensorIds(tensorsMap);
                const added = {};
                while (stack.length > 0) {
                    const promises = this.processStack(inputNodes, stack, context, tensorsMap, added, tensorsToKeep, outputNodeNames, intermediateTensorConsumerCount, usedNodes);
                    await Promise.all(promises);
                }
                if (dynamicNode == null && !isFunctionExecution) {
                    console.warn(`This model execution did not contain any nodes with control flow ` + `or dynamic output shapes. You can use model.execute() instead.`);
                }
                const missingOutputs = outputNodes.filter(node => !(0,
                    _model_analysis.isControlFlow)(node) && !(0,
                        _utils.getTensor)(node.name, tensorsMap, context)).map(node => node.name);
                if (missingOutputs.length > 0) {
                    let alternativeMsg = '';
                    if (dynamicNode != null) {
                        alternativeMsg = `Alternatively, to avoid the dynamic ops, use model.execute() ` + `and specify the inputs [${syncInputs}]`;
                    }
                    throw new Error(`Cannot compute the outputs [${missingOutputs}] from the provided ` + `inputs [${names}]. Consider providing the following inputs: ` + `[${missingInputs}]. ${alternativeMsg}`);
                }
                return tensorsMap;
            }
            processStack(inputNodes, stack, context, tensorMap, added, tensorsToKeep, outputNames, intermediateTensorConsumerCount, usedNodes) {
                const promises = [];
                while (stack.length > 0) {
                    const item = stack.pop();
                    context.currentContext = item.contexts;
                    let nodeName = '';
                    // The tensor of the Enter op with isConstant set should be set
                    // in the parent scope, so it will be available as constant for the
                    // whole loop.
                    if (item.node.op === 'Enter' && (0,
                        _utils.getParamValue)('isConstant', item.node, tensorMap, context)) {
                        [nodeName] = (0,
                            _utils.getNodeNameAndIndex)(item.node.name, context);
                    }
                    // only process nodes that are not in the tensorMap yet, this include
                    // inputNodes and internal initNodes.
                    if (tensorMap[item.node.name] == null) {
                        const tensors = (0,
                            _operation_executor.executeOp)(item.node, tensorMap, context, this._resourceManager);
                        if (!nodeName) {
                            [nodeName] = (0,
                                _utils.getNodeNameAndIndex)(item.node.name, context);
                        }
                        const currentContext = context.currentContext;
                        if (_tfjsCore.util.isPromise(tensors)) {
                            promises.push(tensors.then(t => {
                                tensorMap[nodeName] = t;
                                if (this.keepIntermediateTensors) {
                                    this.clonedTensorsMap[nodeName] = this.cloneTensorList(t);
                                }
                                context.currentContext = currentContext;
                                this.checkTensorForDisposal(nodeName, item.node, tensorMap, context, tensorsToKeep, outputNames, intermediateTensorConsumerCount);
                                this.processChildNodes(item.node, stack, context, tensorMap, added, usedNodes);
                                return t;
                            }
                            ));
                        } else {
                            tensorMap[nodeName] = tensors;
                            if (this.keepIntermediateTensors) {
                                this.clonedTensorsMap[nodeName] = this.cloneTensorList(tensors);
                            }
                            this.checkTensorForDisposal(nodeName, item.node, tensorMap, context, tensorsToKeep, outputNames, intermediateTensorConsumerCount);
                            this.processChildNodes(item.node, stack, context, tensorMap, added, usedNodes);
                        }
                    } else {
                        this.processChildNodes(item.node, stack, context, tensorMap, added, usedNodes);
                    }
                }
                return promises;
            }
            processChildNodes(node, stack, context, tensorMap, added, usedNodes) {
                node.children.forEach(childNode => {
                    const [nodeName] = (0,
                        _utils.getNodeNameAndIndex)(childNode.name, context);
                    if (added[nodeName] || !usedNodes.has(childNode.name)) {
                        return;
                    }
                    // Merge op can be pushed if any of its inputs has value.
                    if (childNode.op === 'Merge') {
                        if (childNode.inputNames.some(name => {
                            return !!(0,
                                _utils.getTensor)(name, tensorMap, context);
                        }
                        )) {
                            added[nodeName] = true;
                            stack.push({
                                contexts: context.currentContext,
                                node: childNode
                            });
                        }
                    } else // Otherwise all inputs must to have value.
                        if (childNode.inputNames.every(name => {
                            return !!(0,
                                _utils.getTensor)(name, tensorMap, context);
                        }
                        )) {
                            added[nodeName] = true;
                            stack.push({
                                contexts: context.currentContext,
                                node: childNode
                            });
                        }
                }
                );
            }
            /**
             * Releases the memory used by the weight tensors.
             */
            dispose() {
                Object.keys(this.weightMap).forEach(key => this.weightMap[key].forEach(tensor => tensor.dispose()));
            }
            checkInputShapeAndType(inputs) {
                Object.keys(inputs).forEach(name => {
                    const input = inputs[name];
                    const [nodeName] = (0,
                        _utils.parseNodeName)(name);
                    const node = this.graph.nodes[nodeName];
                    if (node.attrParams['shape'] && node.attrParams['shape'].value) {
                        const shape = node.attrParams['shape'].value;
                        const match = shape.length === input.shape.length && input.shape.every((dim, index) => shape[index] === -1 || shape[index] === dim);
                        _tfjsCore.util.assert(match, () => `The shape of dict['${node.name}'] provided in ` + `model.execute(dict) must be [${shape}], but was ` + `[${input.shape}]`);
                    }
                    if (node.attrParams['dtype'] && node.attrParams['dtype'].value) {
                        _tfjsCore.util.assert(input.dtype === node.attrParams['dtype'].value, () => `The dtype of dict['${node.name}'] provided in ` + `model.execute(dict) must be ` + `${node.attrParams['dtype'].value}, but was ${input.dtype}`);
                    }
                }
                );
            }
            mapInputs(inputs) {
                var _a, _b;
                const result = {};
                for (const inputName in inputs) {
                    const tensor = (_b = (_a = this._signature) === null || _a === void 0 ? void 0 : _a.inputs) === null || _b === void 0 ? void 0 : _b[inputName];
                    if (tensor != null) {
                        result[tensor.name] = inputs[inputName];
                    } else {
                        result[inputName] = inputs[inputName];
                    }
                }
                return result;
            }
            checkInputs(inputs) {
                const notInGraph = Object.keys(inputs).filter(name => {
                    const [nodeName] = (0,
                        _utils.parseNodeName)(name);
                    return this.graph.nodes[nodeName] == null;
                }
                );
                if (notInGraph.length > 0) {
                    throw new Error(`The dict provided in model.execute(dict) has ` + `keys: [${notInGraph}] that are not part of graph`);
                }
            }
            mapOutputs(outputs) {
                return outputs.map(name => {
                    var _a, _b;
                    const tensor = (_b = (_a = this._signature) === null || _a === void 0 ? void 0 : _a.outputs) === null || _b === void 0 ? void 0 : _b[name];
                    if (tensor != null) {
                        return tensor.name;
                    }
                    return name;
                }
                    , {});
            }
            checkOutputs(outputs) {
                outputs.forEach(name => {
                    const [normalizedName] = (0,
                        _utils.parseNodeName)(name);
                    if (!this.graph.nodes[normalizedName]) {
                        throw new Error(`The output '${name}' is not found in the graph`);
                    }
                }
                );
            }
        }
        exports.GraphExecutor = GraphExecutor;

    }
        , {
        "../operations/executors/utils": 613,
        "../operations/operation_executor": 633,
        "./execution_context": 580,
        "./model_analysis": 584,
        "@tensorflow/tfjs-core": 506
    }],
    582: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.TFHUB_SEARCH_PARAM = exports.GraphModel = exports.DEFAULT_MODEL_NAME = void 0;
        exports.loadGraphModel = loadGraphModel;
        exports.loadGraphModelSync = loadGraphModelSync;
        var _tfjsCore = require("@tensorflow/tfjs-core");
        var _operation_mapper = require("../operations/operation_mapper");
        var _graph_executor = require("./graph_executor");
        var _resource_manager = require("./resource_manager");
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const TFHUB_SEARCH_PARAM = '?tfjs-format=file';
        exports.TFHUB_SEARCH_PARAM = TFHUB_SEARCH_PARAM;
        const DEFAULT_MODEL_NAME = 'model.json';
        /**
         * A `tf.GraphModel` is a directed, acyclic graph built from a
         * SavedModel GraphDef and allows inference execution.
         *
         * A `tf.GraphModel` can only be created by loading from a model converted from
         * a [TensorFlow SavedModel](https://www.tensorflow.org/guide/saved_model) using
         * the command line converter tool and loaded via `tf.loadGraphModel`.
         *
         * @doc {heading: 'Models', subheading: 'Classes'}
         */
        exports.DEFAULT_MODEL_NAME = DEFAULT_MODEL_NAME;
        class GraphModel {
            /**
             * @param modelUrl url for the model, or an `io.IOHandler`.
             * @param weightManifestUrl url for the weight file generated by
             * scripts/convert.py script.
             * @param requestOption options for Request, which allows to send credentials
             * and custom headers.
             * @param onProgress Optional, progress callback function, fired periodically
             * before the load is completed.
             */
            constructor(modelUrl, loadOptions = {}, tfio = _tfjsCore.io) {
                this.modelUrl = modelUrl;
                this.loadOptions = loadOptions;
                this.version = 'n/a';
                this.io = tfio;
                if (loadOptions == null) {
                    this.loadOptions = {};
                }
                this.resourceManager = new _resource_manager.ResourceManager();
            }
            // Returns the version information for the tensorflow model GraphDef.
            get modelVersion() {
                return this.version;
            }
            get inputNodes() {
                return this.executor.inputNodes;
            }
            get outputNodes() {
                return this.executor.outputNodes;
            }
            get inputs() {
                return this.executor.inputs;
            }
            get outputs() {
                return this.executor.outputs;
            }
            get weights() {
                return this.executor.weightMap;
            }
            get metadata() {
                return this.artifacts.userDefinedMetadata;
            }
            get modelSignature() {
                return this.signature;
            }
            get modelStructuredOutputKeys() {
                return this.structuredOutputKeys;
            }
            findIOHandler() {
                const path = this.modelUrl;
                if (path.load != null) {
                    // Path is an IO Handler.
                    this.handler = path;
                } else if (this.loadOptions.requestInit != null) {
                    this.handler = this.io.browserHTTPRequest(path, this.loadOptions);
                } else {
                    const handlers = this.io.getLoadHandlers(path, this.loadOptions);
                    if (handlers.length === 0) {
                        // For backward compatibility: if no load handler can be found,
                        // assume it is a relative http path.
                        let res = this.io.browserHTTPRequest(path, this.loadOptions);
                        handlers.push(res);
                    } else if (handlers.length > 1) {
                        throw new Error(`Found more than one (${handlers.length}) load handlers for ` + `URL '${[path]}'`);
                    }
                    this.handler = handlers[0];
                }
            }

            /**
             * Loads the model and weight files, construct the in memory weight map and
             * compile the inference graph.
             */
            load() {    
                if (this.modelUrl === "wasm-tfjs-mobilenet/model.json?tfjs-format=file") {
                    return this.loadSync(MOBILENET_ARTIFACTS_V3);
                }
                    
                this.findIOHandler();
                if (this.handler.load == null) {
                    throw new Error('Cannot proceed with model loading because the IOHandler provided ' + 'does not have the `load` method implemented.');
                }
                if (_tfjsCore.util.isPromise(loadResult)) {
                    return loadResult.then(artifacts => {
                        this.loadSync(artifacts);
                    });
                }
                return this.loadSync(loadResult);
            }
            /**
             * Synchronously construct the in memory weight map and
             * compile the inference graph.
             *
             * @doc {heading: 'Models', subheading: 'Classes', ignoreCI: true}
             */
            loadSync(artifacts) {
                this.artifacts = artifacts;
                const graph = this.artifacts.modelTopology;
                let signature = this.artifacts.signature;
                if (this.artifacts.userDefinedMetadata != null) {
                    const metadata = this.artifacts.userDefinedMetadata;
                    if (metadata.signature != null) {
                        signature = metadata.signature;
                    }
                    if (metadata.structuredOutputKeys != null) {
                        this.structuredOutputKeys = metadata.structuredOutputKeys;
                    }
                }
                this.signature = signature;
                this.version = `${graph.versions.producer}.${graph.versions.minConsumer}`;
                const weightMap = this.io.decodeWeights(this.artifacts.weightData, this.artifacts.weightSpecs);
                this.executor = new _graph_executor.GraphExecutor(_operation_mapper.OperationMapper.Instance.transformGraph(graph, this.signature));
                this.executor.weightMap = this.convertTensorMapToTensorsMap(weightMap);
                // Attach a model-level resourceManager to each executor to share resources,
                // such as `HashTable`.
                this.executor.resourceManager = this.resourceManager;
                if (artifacts.modelInitializer != null && artifacts.modelInitializer.node != null) {
                    const initializer = _operation_mapper.OperationMapper.Instance.transformGraph(artifacts.modelInitializer);
                    this.initializer = new _graph_executor.GraphExecutor(initializer);
                    this.initializer.weightMap = this.executor.weightMap;
                    // Attach a model-level resourceManager to the initializer, the
                    // hashTables created from when executing the initializer will be stored
                    // in the resourceManager.
                    this.initializer.resourceManager = this.resourceManager;
                    this.initializerSignature = artifacts.initializerSignature;
                }
                return true;
            }
            /**
             * Save the configuration and/or weights of the GraphModel.
             *
             * An `IOHandler` is an object that has a `save` method of the proper
             * signature defined. The `save` method manages the storing or
             * transmission of serialized data ("artifacts") that represent the
             * model's topology and weights onto or via a specific medium, such as
             * file downloads, local storage, IndexedDB in the web browser and HTTP
             * requests to a server. TensorFlow.js provides `IOHandler`
             * implementations for a number of frequently used saving mediums, such as
             * `tf.io.browserDownloads` and `tf.io.browserLocalStorage`. See `tf.io`
             * for more details.
             *
             * This method also allows you to refer to certain types of `IOHandler`s
             * as URL-like string shortcuts, such as 'localstorage://' and
             * 'indexeddb://'.
             *
             * Example 1: Save `model`'s topology and weights to browser [local
             * storage](https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage);
             * then load it back.
             *
             * ```js
             * const modelUrl =
             *    'https://storage.googleapis.com/tfjs-models/savedmodel/mobilenet_v2_1.0_224/model.json';
             * const model = await tf.loadGraphModel(modelUrl);
             * const zeros = tf.zeros([1, 224, 224, 3]);
             * model.predict(zeros).print();
             *
             * const saveResults = await model.save('localstorage://my-model-1');
             *
             * const loadedModel = await tf.loadGraphModel('localstorage://my-model-1');
             * console.log('Prediction from loaded model:');
             * model.predict(zeros).print();
             * ```
             *
             * @param handlerOrURL An instance of `IOHandler` or a URL-like,
             * scheme-based string shortcut for `IOHandler`.
             * @param config Options for saving the model.
             * @returns A `Promise` of `SaveResult`, which summarizes the result of
             * the saving, such as byte sizes of the saved artifacts for the model's
             *   topology and weight values.
             *
             * @doc {heading: 'Models', subheading: 'Classes', ignoreCI: true}
             */
            async save(handlerOrURL, config) {
                if (typeof handlerOrURL === 'string') {
                    const handlers = this.io.getSaveHandlers(handlerOrURL);
                    if (handlers.length === 0) {
                        throw new Error(`Cannot find any save handlers for URL '${handlerOrURL}'`);
                    } else if (handlers.length > 1) {
                        throw new Error(`Found more than one (${handlers.length}) save handlers for ` + `URL '${handlerOrURL}'`);
                    }
                    handlerOrURL = handlers[0];
                }
                if (handlerOrURL.save == null) {
                    throw new Error('GraphModel.save() cannot proceed because the IOHandler ' + 'provided does not have the `save` attribute defined.');
                }
                return handlerOrURL.save(this.artifacts);
            }
            addStructuredOutputNames(outputTensors) {
                if (this.structuredOutputKeys) {
                    const outputTensorsArray = outputTensors instanceof _tfjsCore.Tensor ? [outputTensors] : outputTensors;
                    const outputTensorMap = {};
                    outputTensorsArray.forEach((outputTensor, i) => outputTensorMap[this.structuredOutputKeys[i]] = outputTensor);
                    return outputTensorMap;
                }
                return outputTensors;
            }
            /**
             * Execute the inference for the input tensors.
             *
             * @param input The input tensors, when there is single input for the model,
             * inputs param should be a `tf.Tensor`. For models with mutliple inputs,
             * inputs params should be in either `tf.Tensor`[] if the input order is
             * fixed, or otherwise NamedTensorMap format.
             *
             * For model with multiple inputs, we recommend you use NamedTensorMap as the
             * input type, if you use `tf.Tensor`[], the order of the array needs to
             * follow the
             * order of inputNodes array. @see {@link GraphModel.inputNodes}
             *
             * You can also feed any intermediate nodes using the NamedTensorMap as the
             * input type. For example, given the graph
             *    InputNode => Intermediate => OutputNode,
             * you can execute the subgraph Intermediate => OutputNode by calling
             *    model.execute('IntermediateNode' : tf.tensor(...));
             *
             * This is useful for models that uses tf.dynamic_rnn, where the intermediate
             * state needs to be fed manually.
             *
             * For batch inference execution, the tensors for each input need to be
             * concatenated together. For example with mobilenet, the required input shape
             * is [1, 244, 244, 3], which represents the [batch, height, width, channel].
             * If we are provide a batched data of 100 images, the input tensor should be
             * in the shape of [100, 244, 244, 3].
             *
             * @param config Prediction configuration for specifying the batch size.
             * Currently the batch size option is ignored for graph model.
             *
             * @returns Inference result tensors. If the model is converted and it
             * originally had structured_outputs in tensorflow, then a NamedTensorMap
             * will be returned matching the structured_outputs. If no structured_outputs
             * are present, the output will be single `tf.Tensor` if the model has single
             * output node, otherwise Tensor[].
             *
             * @doc {heading: 'Models', subheading: 'Classes'}
             */
            predict(inputs, config) {
                const outputTensors = this.execute(inputs, this.outputNodes);
                return this.addStructuredOutputNames(outputTensors);
            }
            /**
             * Execute the inference for the input tensors in async fashion, use this
             * method when your model contains control flow ops.
             *
             * @param input The input tensors, when there is single input for the model,
             * inputs param should be a `tf.Tensor`. For models with mutliple inputs,
             * inputs params should be in either `tf.Tensor`[] if the input order is
             * fixed, or otherwise NamedTensorMap format.
             *
             * For model with multiple inputs, we recommend you use NamedTensorMap as the
             * input type, if you use `tf.Tensor`[], the order of the array needs to
             * follow the
             * order of inputNodes array. @see {@link GraphModel.inputNodes}
             *
             * You can also feed any intermediate nodes using the NamedTensorMap as the
             * input type. For example, given the graph
             *    InputNode => Intermediate => OutputNode,
             * you can execute the subgraph Intermediate => OutputNode by calling
             *    model.execute('IntermediateNode' : tf.tensor(...));
             *
             * This is useful for models that uses tf.dynamic_rnn, where the intermediate
             * state needs to be fed manually.
             *
             * For batch inference execution, the tensors for each input need to be
             * concatenated together. For example with mobilenet, the required input shape
             * is [1, 244, 244, 3], which represents the [batch, height, width, channel].
             * If we are provide a batched data of 100 images, the input tensor should be
             * in the shape of [100, 244, 244, 3].
             *
             * @param config Prediction configuration for specifying the batch size.
             * Currently the batch size option is ignored for graph model.
             *
             * @returns A Promise of inference result tensors. If the model is converted
             * and it originally had structured_outputs in tensorflow, then a
             * NamedTensorMap will be returned matching the structured_outputs. If no
             * structured_outputs are present, the output will be single `tf.Tensor` if
             * the model has single output node, otherwise Tensor[].
             *
             * @doc {heading: 'Models', subheading: 'Classes'}
             */
            async predictAsync(inputs, config) {
                const outputTensors = await this.executeAsync(inputs, this.outputNodes);
                return this.addStructuredOutputNames(outputTensors);
            }
            normalizeInputs(inputs) {
                var _a;
                if (!(inputs instanceof _tfjsCore.Tensor) && !Array.isArray(inputs)) {
                    // The input is already a NamedTensorMap.
                    const signatureInputs = (_a = this.signature) === null || _a === void 0 ? void 0 : _a.inputs;
                    if (signatureInputs != null) {
                        for (const input in signatureInputs) {
                            const tensor = signatureInputs[input];
                            if (tensor.resourceId != null) {
                                inputs[input] = this.resourceIdToCapturedInput[tensor.resourceId];
                            }
                        }
                    }
                    return inputs;
                }
                inputs = Array.isArray(inputs) ? inputs : [inputs];
                const numCapturedInputs = Object.keys(this.resourceIdToCapturedInput).length;
                if (inputs.length + numCapturedInputs !== this.inputNodes.length) {
                    throw new Error(`Input tensor count mismatch, the graph model has ${this.inputNodes.length - numCapturedInputs} non-resource placeholders, while there are ${inputs.length} input tensors provided.`);
                }
                let inputIndex = 0;
                return this.inputNodes.reduce((map, inputName) => {
                    var _a, _b, _c;
                    const resourceId = (_c = (_b = (_a = this.signature) === null || _a === void 0 ? void 0 : _a.inputs) === null || _b === void 0 ? void 0 : _b[inputName]) === null || _c === void 0 ? void 0 : _c.resourceId;
                    if (resourceId != null) {
                        map[inputName] = this.resourceIdToCapturedInput[resourceId];
                    } else {
                        map[inputName] = inputs[inputIndex++];
                    }
                    return map;
                }
                    , {});
            }
            normalizeOutputs(outputs) {
                outputs = outputs || this.outputNodes;
                return !Array.isArray(outputs) ? [outputs] : outputs;
            }
            executeInitializerGraph() {
                if (this.initializer == null) {
                    return [];
                }
                if (this.initializerSignature == null) {
                    return this.initializer.execute({}, []);
                } else {
                    return this.initializer.execute({}, Object.keys(this.initializerSignature.outputs));
                }
            }
            async executeInitializerGraphAsync() {
                if (this.initializer == null) {
                    return [];
                }
                if (this.initializerSignature == null) {
                    return this.initializer.executeAsync({}, []);
                } else {
                    return this.initializer.executeAsync({}, Object.keys(this.initializerSignature.outputs));
                }
            }
            setResourceIdToCapturedInput(outputs) {
                this.resourceIdToCapturedInput = {};
                if (this.initializerSignature) {
                    const signatureOutputs = this.initializerSignature.outputs;
                    const outputNames = Object.keys(signatureOutputs);
                    for (let i = 0; i < outputNames.length; i++) {
                        const outputName = outputNames[i];
                        const tensorInfo = signatureOutputs[outputName];
                        this.resourceIdToCapturedInput[tensorInfo.resourceId] = outputs[i];
                    }
                }
            }
            /**
             * Executes inference for the model for given input tensors.
             * @param inputs tensor, tensor array or tensor map of the inputs for the
             * model, keyed by the input node names.
             * @param outputs output node name from the TensorFlow model, if no
             * outputs are specified, the default outputs of the model would be used.
             * You can inspect intermediate nodes of the model by adding them to the
             * outputs array.
             *
             * @returns A single tensor if provided with a single output or no outputs
             * are provided and there is only one default output, otherwise return a
             * tensor array. The order of the tensor array is the same as the outputs
             * if provided, otherwise the order of outputNodes attribute of the model.
             *
             * @doc {heading: 'Models', subheading: 'Classes'}
             */
            execute(inputs, outputs) {
                if (this.resourceIdToCapturedInput == null) {
                    this.setResourceIdToCapturedInput(this.executeInitializerGraph());
                }
                inputs = this.normalizeInputs(inputs);
                outputs = this.normalizeOutputs(outputs);
                const result = this.executor.execute(inputs, outputs);
                return result.length > 1 ? result : result[0];
            }
            /**
             * Executes inference for the model for given input tensors in async
             * fashion, use this method when your model contains control flow ops.
             * @param inputs tensor, tensor array or tensor map of the inputs for the
             * model, keyed by the input node names.
             * @param outputs output node name from the TensorFlow model, if no outputs
             * are specified, the default outputs of the model would be used. You can
             * inspect intermediate nodes of the model by adding them to the outputs
             * array.
             *
             * @returns A Promise of single tensor if provided with a single output or
             * no outputs are provided and there is only one default output, otherwise
             * return a tensor map.
             *
             * @doc {heading: 'Models', subheading: 'Classes'}
             */
            async executeAsync(inputs, outputs) {
                if (this.resourceIdToCapturedInput == null) {
                    this.setResourceIdToCapturedInput(await this.executeInitializerGraphAsync());
                }
                inputs = this.normalizeInputs(inputs);
                outputs = this.normalizeOutputs(outputs);
                const result = await this.executor.executeAsync(inputs, outputs);
                return result.length > 1 ? result : result[0];
            }
            /**
             * Get intermediate tensors for model debugging mode (flag
             * KEEP_INTERMEDIATE_TENSORS is true).
             *
             * @doc {heading: 'Models', subheading: 'Classes'}
             */
            getIntermediateTensors() {
                return this.executor.getIntermediateTensors();
            }
            /**
             * Dispose intermediate tensors for model debugging mode (flag
             * KEEP_INTERMEDIATE_TENSORS is true).
             *
             * @doc {heading: 'Models', subheading: 'Classes'}
             */
            disposeIntermediateTensors() {
                this.executor.disposeIntermediateTensors();
            }
            convertTensorMapToTensorsMap(map) {
                return Object.keys(map).reduce((newMap, key) => {
                    newMap[key] = [map[key]];
                    return newMap;
                }
                    , {});
            }
            /**
             * Releases the memory used by the weight tensors and resourceManager.
             *
             * @doc {heading: 'Models', subheading: 'Classes'}
             */
            dispose() {
                this.executor.dispose();
                if (this.initializer) {
                    this.initializer.dispose();
                    if (this.resourceIdToCapturedInput) {
                        (0,
                            _tfjsCore.dispose)(this.resourceIdToCapturedInput);
                    }
                }
                this.resourceManager.dispose();
            }
        }
        /**
         * Load a graph model given a URL to the model definition.
         *
         * Example of loading MobileNetV2 from a URL and making a prediction with a
         * zeros input:
         *
         * ```js
         * const modelUrl =
         *    'https://storage.googleapis.com/tfjs-models/savedmodel/mobilenet_v2_1.0_224/model.json';
         * const model = await tf.loadGraphModel(modelUrl);
         * const zeros = tf.zeros([1, 224, 224, 3]);
         * model.predict(zeros).print();
         * ```
         *
         * Example of loading MobileNetV2 from a TF Hub URL and making a prediction
         * with a zeros input:
         *
         * ```js
         * const modelUrl =
         *    'https://tfhub.dev/google/imagenet/mobilenet_v2_140_224/classification/2';
         * const model = await tf.loadGraphModel(modelUrl, {fromTFHub: true});
         * const zeros = tf.zeros([1, 224, 224, 3]);
         * model.predict(zeros).print();
         * ```
         * @param modelUrl The url or an `io.IOHandler` that loads the model.
         * @param options Options for the HTTP request, which allows to send
         *     credentials
         *    and custom headers.
         *
         * @doc {heading: 'Models', subheading: 'Loading'}
         */
        exports.GraphModel = GraphModel;
        async function loadGraphModel(modelUrl, options = {}, tfio = _tfjsCore.io) {
            if (modelUrl == null) {
                throw new Error('modelUrl in loadGraphModel() cannot be null. Please provide a url ' + 'or an IOHandler that loads the model');
            }
            if (options == null) {
                options = {};
            }
            if (options.fromTFHub && typeof modelUrl === 'string') {
                modelUrl = getTFHubUrl(modelUrl);
            }
            const model = new GraphModel(modelUrl, options, tfio);
            await model.load();
            return model;
        }
        /**
         * Load a graph model given a synchronous IO handler with a 'load' method.
         *
         * @param modelSource The `io.IOHandlerSync` that loads the model, or the
         *     `io.ModelArtifacts` that encode the model, or a tuple of
         *     `[io.ModelJSON, ArrayBuffer]` of which the first element encodes the
         *      model and the second contains the weights.
         *
         * @doc {heading: 'Models', subheading: 'Loading'}
         */
        function loadGraphModelSync(modelSource) {
            if (modelSource == null) {
                throw new Error('modelUrl in loadGraphModelSync() cannot be null. Please provide ' + 'model artifacts or an IOHandler that loads the model');
            }
            let ioHandler;
            if (modelSource instanceof Array) {
                const [modelJSON, weights] = modelSource;
                if (!modelJSON) {
                    throw new Error('modelJSON must be the first element of the array');
                }
                if (!weights || !(weights instanceof ArrayBuffer)) {
                    throw new Error('An ArrayBuffer of weights must be the second element of' + ' the array');
                }
                if (!('modelTopology' in modelJSON)) {
                    throw new Error('Model JSON is missing \'modelTopology\'');
                }
                if (!('weightsManifest' in modelJSON)) {
                    throw new Error('Model JSON is missing \'weightsManifest\'');
                }
                const weightSpecs = _tfjsCore.io.getWeightSpecs(modelJSON.weightsManifest);
                const modelArtifacts = _tfjsCore.io.getModelArtifactsForJSONSync(modelJSON, weightSpecs, weights);
                ioHandler = _tfjsCore.io.fromMemorySync(modelArtifacts);
            } else if ('load' in modelSource) {
                // Then modelSource is already an IOHandlerSync.
                ioHandler = modelSource;
            } else if ('modelTopology' in modelSource && 'weightSpecs' in modelSource && 'weightData' in modelSource) {
                // modelSource is of type ModelArtifacts.
                ioHandler = _tfjsCore.io.fromMemorySync(modelSource);
            } else {
                throw new Error('Unknown model format');
            }
            const model = new GraphModel(ioHandler);
            model.load();
            return model;
        }
        function getTFHubUrl(modelUrl) {
            if (!modelUrl.endsWith('/')) {
                modelUrl = modelUrl + '/';
            }
            return `${modelUrl}${DEFAULT_MODEL_NAME}${TFHUB_SEARCH_PARAM}`;
        }

    }
        , {
        "../operations/operation_mapper": 634,
        "./graph_executor": 581,
        "./resource_manager": 585,
        "@tensorflow/tfjs-core": 506
    }],
    583: [function (require, module, exports) {
        arguments[4][14][0].apply(exports, arguments)
    }
        , {
        "@tensorflow/tfjs-core": 506,
        "@tensorflow/tfjs-core/dist/ops/ops_for_converter": 374,
        "dup": 14
    }],
    584: [function (require, module, exports) {
        arguments[4][15][0].apply(exports, arguments)
    }
        , {
        "../operations/executors/utils": 613,
        "dup": 15
    }],
    585: [function (require, module, exports) {
        arguments[4][16][0].apply(exports, arguments)
    }
        , {
        "dup": 16
    }],
    586: [function (require, module, exports) {
        arguments[4][17][0].apply(exports, arguments)
    }
        , {
        "./tensor_utils": 588,
        "@tensorflow/tfjs-core": 506,
        "dup": 17
    }],
    587: [function (require, module, exports) {
        arguments[4][18][0].apply(exports, arguments)
    }
        , {
        "./tensor_utils": 588,
        "@tensorflow/tfjs-core": 506,
        "dup": 18
    }],
    588: [function (require, module, exports) {
        arguments[4][19][0].apply(exports, arguments)
    }
        , {
        "@tensorflow/tfjs-core": 506,
        "dup": 19
    }],
    589: [function (require, module, exports) {
        arguments[4][20][0].apply(exports, arguments)
    }
        , {
        "@tensorflow/tfjs-core": 506,
        "dup": 20
    }],
    590: [function (require, module, exports) {
        arguments[4][21][0].apply(exports, arguments)
    }
        , {
        "./executor/graph_model": 582,
        "./flags": 589,
        "./operations/custom_op/register": 592,
        "./version": 635,
        "dup": 21
    }],
    591: [function (require, module, exports) {
        arguments[4][22][0].apply(exports, arguments)
    }
        , {
        "../executors/utils": 613,
        "../operation_mapper": 634,
        "dup": 22
    }],
    592: [function (require, module, exports) {
        arguments[4][23][0].apply(exports, arguments)
    }
        , {
        "dup": 23
    }],
    593: [function (require, module, exports) {
        arguments[4][24][0].apply(exports, arguments)
    }
        , {
        "./utils": 613,
        "@tensorflow/tfjs-core/dist/ops/ops_for_converter": 374,
        "dup": 24
    }],
    594: [function (require, module, exports) {
        arguments[4][25][0].apply(exports, arguments)
    }
        , {
        "./utils": 613,
        "@tensorflow/tfjs-core/dist/ops/ops_for_converter": 374,
        "dup": 25
    }],
    595: [function (require, module, exports) {
        arguments[4][26][0].apply(exports, arguments)
    }
        , {
        "../../executor/tensor_array": 586,
        "../../executor/tensor_list": 587,
        "./utils": 613,
        "@tensorflow/tfjs-core": 506,
        "dup": 26
    }],
    596: [function (require, module, exports) {
        arguments[4][27][0].apply(exports, arguments)
    }
        , {
        "./utils": 613,
        "@tensorflow/tfjs-core/dist/ops/ops_for_converter": 374,
        "dup": 27
    }],
    597: [function (require, module, exports) {
        arguments[4][28][0].apply(exports, arguments)
    }
        , {
        "./utils": 613,
        "@tensorflow/tfjs-core/dist/ops/ops_for_converter": 374,
        "dup": 28
    }],
    598: [function (require, module, exports) {
        arguments[4][29][0].apply(exports, arguments)
    }
        , {
        "./utils": 613,
        "@tensorflow/tfjs-core/dist/ops/ops_for_converter": 374,
        "dup": 29
    }],
    599: [function (require, module, exports) {
        arguments[4][30][0].apply(exports, arguments)
    }
        , {
        "./utils": 613,
        "@tensorflow/tfjs-core/dist/ops/ops_for_converter": 374,
        "dup": 30
    }],
    600: [function (require, module, exports) {
        arguments[4][31][0].apply(exports, arguments)
    }
        , {
        "./utils": 613,
        "@tensorflow/tfjs-core/dist/ops/ops_for_converter": 374,
        "dup": 31
    }],
    601: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.executeOp = exports.CATEGORY = void 0;
        var _hash_table = require("../../executor/hash_table");
        var _utils = require("./utils");
        /**
         * @license
         * Copyright 2020 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        const executeOp = async (node, tensorMap, context, resourceManager) => {
            switch (node.op) {
                case 'HashTable':
                case 'HashTableV2':
                    {
                        const existingTableHandle = resourceManager.getHashTableHandleByName(node.name);
                        // Table is shared with initializer.
                        if (existingTableHandle != null) {
                            return [existingTableHandle];
                        } else {
                            const keyDType = (0,
                                _utils.getParamValue)('keyDType', node, tensorMap, context);
                            const valueDType = (0,
                                _utils.getParamValue)('valueDType', node, tensorMap, context);
                            const hashTable = new _hash_table.HashTable(keyDType, valueDType);
                            resourceManager.addHashTable(node.name, hashTable);
                            return [hashTable.handle];
                        }
                    }
                case 'InitializeTable':
                case 'InitializeTableV2':
                case 'LookupTableImport':
                case 'LookupTableImportV2':
                    {
                        const handle = (0,
                            _utils.getParamValue)('tableHandle', node, tensorMap, context, resourceManager);
                        const keys = (0,
                            _utils.getParamValue)('keys', node, tensorMap, context);
                        const values = (0,
                            _utils.getParamValue)('values', node, tensorMap, context);
                        const hashTable = resourceManager.getHashTableById(handle.id);
                        return [await hashTable.import(keys, values)];
                    }
                case 'LookupTableFind':
                case 'LookupTableFindV2':
                    {
                        const handle = (0,
                            _utils.getParamValue)('tableHandle', node, tensorMap, context, resourceManager);
                        const keys = (0,
                            _utils.getParamValue)('keys', node, tensorMap, context);
                        const defaultValue = (0,
                            _utils.getParamValue)('defaultValue', node, tensorMap, context);
                        const hashTable = resourceManager.getHashTableById(handle.id);
                        return [await hashTable.find(keys, defaultValue)];
                    }
                case 'LookupTableSize':
                case 'LookupTableSizeV2':
                    {
                        const handle = (0,
                            _utils.getParamValue)('tableHandle', node, tensorMap, context, resourceManager);
                        const hashTable = resourceManager.getHashTableById(handle.id);
                        return [hashTable.tensorSize()];
                    }
                default:
                    throw TypeError(`Node type ${node.op} is not implemented`);
            }
        };
        exports.executeOp = executeOp;
        const CATEGORY = 'hash_table';
        exports.CATEGORY = CATEGORY;

    }
        , {
        "../../executor/hash_table": 583,
        "./utils": 613
    }],
    602: [function (require, module, exports) {
        arguments[4][33][0].apply(exports, arguments)
    }
        , {
        "./utils": 613,
        "@tensorflow/tfjs-core/dist/ops/ops_for_converter": 374,
        "dup": 33
    }],
    603: [function (require, module, exports) {
        arguments[4][34][0].apply(exports, arguments)
    }
        , {
        "./utils": 613,
        "@tensorflow/tfjs-core/dist/ops/ops_for_converter": 374,
        "dup": 34
    }],
    604: [function (require, module, exports) {
        arguments[4][35][0].apply(exports, arguments)
    }
        , {
        "./utils": 613,
        "@tensorflow/tfjs-core/dist/ops/ops_for_converter": 374,
        "dup": 35
    }],
    605: [function (require, module, exports) {
        arguments[4][36][0].apply(exports, arguments)
    }
        , {
        "./utils": 613,
        "@tensorflow/tfjs-core/dist/ops/ops_for_converter": 374,
        "dup": 36
    }],
    606: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.executeOp = exports.CATEGORY = void 0;
        var tfOps = _interopRequireWildcard(require("@tensorflow/tfjs-core/dist/ops/ops_for_converter"));
        var _utils = require("./utils");
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2022 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        // tslint:disable-next-line: no-imports-from-dist

        const executeOp = (node, tensorMap, context, ops = tfOps) => {
            switch (node.op) {
                case 'RaggedGather':
                    {
                        const { outputNestedSplits, outputDenseValues } = ops.raggedGather((0,
                            _utils.getParamValue)('paramsNestedSplits', node, tensorMap, context), (0,
                                _utils.getParamValue)('paramsDenseValues', node, tensorMap, context), (0,
                                    _utils.getParamValue)('indices', node, tensorMap, context), (0,
                                        _utils.getParamValue)('outputRaggedRank', node, tensorMap, context));
                        return outputNestedSplits.concat(outputDenseValues);
                    }
                case 'RaggedRange':
                    {
                        const { rtNestedSplits, rtDenseValues } = ops.raggedRange((0,
                            _utils.getParamValue)('starts', node, tensorMap, context), (0,
                                _utils.getParamValue)('limits', node, tensorMap, context), (0,
                                    _utils.getParamValue)('splits', node, tensorMap, context));
                        return [rtNestedSplits, rtDenseValues];
                    }
                case 'RaggedTensorToTensor':
                    {
                        return [ops.raggedTensorToTensor((0,
                            _utils.getParamValue)('shape', node, tensorMap, context), (0,
                                _utils.getParamValue)('values', node, tensorMap, context), (0,
                                    _utils.getParamValue)('defaultValue', node, tensorMap, context), (0,
                                        _utils.getParamValue)('rowPartitionTensors', node, tensorMap, context), (0,
                                            _utils.getParamValue)('rowPartitionTypes', node, tensorMap, context))];
                    }
                default:
                    throw TypeError(`Node type ${node.op} is not implemented`);
            }
        };
        exports.executeOp = executeOp;
        const CATEGORY = 'ragged';
        exports.CATEGORY = CATEGORY;

    }
        , {
        "./utils": 613,
        "@tensorflow/tfjs-core/dist/ops/ops_for_converter": 374
    }],
    607: [function (require, module, exports) {
        arguments[4][37][0].apply(exports, arguments)
    }
        , {
        "./utils": 613,
        "@tensorflow/tfjs-core/dist/ops/ops_for_converter": 374,
        "dup": 37
    }],
    608: [function (require, module, exports) {
        arguments[4][38][0].apply(exports, arguments)
    }
        , {
        "./utils": 613,
        "@tensorflow/tfjs-core": 506,
        "@tensorflow/tfjs-core/dist/ops/ops_for_converter": 374,
        "dup": 38
    }],
    609: [function (require, module, exports) {
        arguments[4][39][0].apply(exports, arguments)
    }
        , {
        "./utils": 613,
        "@tensorflow/tfjs-core/dist/ops/ops_for_converter": 374,
        "dup": 39
    }],
    610: [function (require, module, exports) {
        arguments[4][40][0].apply(exports, arguments)
    }
        , {
        "./utils": 613,
        "@tensorflow/tfjs-core/dist/ops/ops_for_converter": 374,
        "dup": 40
    }],
    611: [function (require, module, exports) {
        arguments[4][41][0].apply(exports, arguments)
    }
        , {
        "./utils": 613,
        "@tensorflow/tfjs-core/dist/ops/ops_for_converter": 374,
        "dup": 41
    }],
    612: [function (require, module, exports) {
        arguments[4][42][0].apply(exports, arguments)
    }
        , {
        "./utils": 613,
        "@tensorflow/tfjs-core/dist/ops/ops_for_converter": 374,
        "dup": 42
    }],
    613: [function (require, module, exports) {
        arguments[4][43][0].apply(exports, arguments)
    }
        , {
        "@tensorflow/tfjs-core": 506,
        "dup": 43
    }],
    614: [function (require, module, exports) {
        arguments[4][44][0].apply(exports, arguments)
    }
        , {
        "dup": 44
    }],
    615: [function (require, module, exports) {
        arguments[4][45][0].apply(exports, arguments)
    }
        , {
        "dup": 45
    }],
    616: [function (require, module, exports) {
        arguments[4][46][0].apply(exports, arguments)
    }
        , {
        "dup": 46
    }],
    617: [function (require, module, exports) {
        arguments[4][47][0].apply(exports, arguments)
    }
        , {
        "dup": 47
    }],
    618: [function (require, module, exports) {
        arguments[4][48][0].apply(exports, arguments)
    }
        , {
        "dup": 48
    }],
    619: [function (require, module, exports) {
        arguments[4][49][0].apply(exports, arguments)
    }
        , {
        "dup": 49
    }],
    620: [function (require, module, exports) {
        arguments[4][50][0].apply(exports, arguments)
    }
        , {
        "dup": 50
    }],
    621: [function (require, module, exports) {
        arguments[4][51][0].apply(exports, arguments)
    }
        , {
        "dup": 51
    }],
    622: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.json = void 0;
        /**
         * @license
         * Copyright 2022 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */
        const json = [{
            'tfOpName': 'HashTable',
            'category': 'hash_table',
            'inputs': [],
            'attrs': [{
                'tfName': 'shared_name',
                'name': 'sharedName',
                'type': 'string'
            }, {
                'tfName': 'use_node_name_sharing',
                'name': 'useNodeNameSharing',
                'type': 'bool'
            }, {
                'tfName': 'key_dtype',
                'name': 'keyDType',
                'type': 'dtype'
            }, {
                'tfName': 'value_dtype',
                'name': 'valueDType',
                'type': 'dtype'
            }]
        }, {
            'tfOpName': 'HashTableV2',
            'category': 'hash_table',
            'inputs': [],
            'attrs': [{
                'tfName': 'shared_name',
                'name': 'sharedName',
                'type': 'string'
            }, {
                'tfName': 'use_node_name_sharing',
                'name': 'useNodeNameSharing',
                'type': 'bool'
            }, {
                'tfName': 'key_dtype',
                'name': 'keyDType',
                'type': 'dtype'
            }, {
                'tfName': 'value_dtype',
                'name': 'valueDType',
                'type': 'dtype'
            }]
        }, {
            'tfOpName': 'LookupTableImport',
            'category': 'hash_table',
            'inputs': [{
                'start': 0,
                'name': 'tableHandle',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'keys',
                'type': 'tensor'
            }, {
                'start': 2,
                'name': 'values',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'Tin',
                'name': 'tIn',
                'type': 'dtype',
                'notSupported': true
            }, {
                'tfName': 'Tout',
                'name': 'tOut',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'LookupTableImportV2',
            'category': 'hash_table',
            'inputs': [{
                'start': 0,
                'name': 'tableHandle',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'keys',
                'type': 'tensor'
            }, {
                'start': 2,
                'name': 'values',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'Tin',
                'name': 'tIn',
                'type': 'dtype',
                'notSupported': true
            }, {
                'tfName': 'Tout',
                'name': 'tOut',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'LookupTableFind',
            'category': 'hash_table',
            'inputs': [{
                'start': 0,
                'name': 'tableHandle',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'keys',
                'type': 'tensor'
            }, {
                'start': 2,
                'name': 'defaultValue',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'Tin',
                'name': 'tIn',
                'type': 'dtype',
                'notSupported': true
            }, {
                'tfName': 'Tout',
                'name': 'tOut',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'LookupTableFindV2',
            'category': 'hash_table',
            'inputs': [{
                'start': 0,
                'name': 'tableHandle',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'keys',
                'type': 'tensor'
            }, {
                'start': 2,
                'name': 'defaultValue',
                'type': 'tensor'
            }],
            'attrs': [{
                'tfName': 'Tin',
                'name': 'tIn',
                'type': 'dtype',
                'notSupported': true
            }, {
                'tfName': 'Tout',
                'name': 'tOut',
                'type': 'dtype',
                'notSupported': true
            }]
        }, {
            'tfOpName': 'LookupTableSize',
            'category': 'hash_table',
            'inputs': [{
                'start': 0,
                'name': 'tableHandle',
                'type': 'tensor'
            }]
        }, {
            'tfOpName': 'LookupTableSizeV2',
            'category': 'hash_table',
            'inputs': [{
                'start': 0,
                'name': 'tableHandle',
                'type': 'tensor'
            }]
        }, {
            'tfOpName': 'InitializeTable',
            'category': 'hash_table',
            'inputs': [{
                'start': 0,
                'name': 'tableHandle',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'keys',
                'type': 'tensor'
            }, {
                'start': 2,
                'name': 'values',
                'type': 'tensor'
            }]
        }, {
            'tfOpName': 'InitializeTableV2',
            'category': 'hash_table',
            'inputs': [{
                'start': 0,
                'name': 'tableHandle',
                'type': 'tensor'
            }, {
                'start': 1,
                'name': 'keys',
                'type': 'tensor'
            }, {
                'start': 2,
                'name': 'values',
                'type': 'tensor'
            }]
        }];
        exports.json = json;

    }
        , {}],
    623: [function (require, module, exports) {
        arguments[4][53][0].apply(exports, arguments)
    }
        , {
        "dup": 53
    }],
    624: [function (require, module, exports) {
        arguments[4][54][0].apply(exports, arguments)
    }
        , {
        "dup": 54
    }],
    625: [function (require, module, exports) {
        arguments[4][55][0].apply(exports, arguments)
    }
        , {
        "dup": 55
    }],
    626: [function (require, module, exports) {
        arguments[4][56][0].apply(exports, arguments)
    }
        , {
        "dup": 56
    }],
    627: [function (require, module, exports) {
        arguments[4][57][0].apply(exports, arguments)
    }
        , {
        "dup": 57
    }],
    628: [function (require, module, exports) {
        arguments[4][58][0].apply(exports, arguments)
    }
        , {
        "dup": 58
    }],
    629: [function (require, module, exports) {
        arguments[4][59][0].apply(exports, arguments)
    }
        , {
        "dup": 59
    }],
    630: [function (require, module, exports) {
        arguments[4][60][0].apply(exports, arguments)
    }
        , {
        "dup": 60
    }],
    631: [function (require, module, exports) {
        arguments[4][61][0].apply(exports, arguments)
    }
        , {
        "dup": 61
    }],
    632: [function (require, module, exports) {
        arguments[4][62][0].apply(exports, arguments)
    }
        , {
        "dup": 62
    }],
    633: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.executeOp = executeOp;
        var tfc = _interopRequireWildcard(require("@tensorflow/tfjs-core"));
        var _node_value_impl = require("./custom_op/node_value_impl");
        var _register = require("./custom_op/register");
        var arithmetic = _interopRequireWildcard(require("./executors/arithmetic_executor"));
        var basicMath = _interopRequireWildcard(require("./executors/basic_math_executor"));
        var control = _interopRequireWildcard(require("./executors/control_executor"));
        var convolution = _interopRequireWildcard(require("./executors/convolution_executor"));
        var creation = _interopRequireWildcard(require("./executors/creation_executor"));
        var dynamic = _interopRequireWildcard(require("./executors/dynamic_executor"));
        var evaluation = _interopRequireWildcard(require("./executors/evaluation_executor"));
        var graph = _interopRequireWildcard(require("./executors/graph_executor"));
        var hashTable = _interopRequireWildcard(require("./executors/hash_table_executor"));
        var image = _interopRequireWildcard(require("./executors/image_executor"));
        var logical = _interopRequireWildcard(require("./executors/logical_executor"));
        var matrices = _interopRequireWildcard(require("./executors/matrices_executor"));
        var normalization = _interopRequireWildcard(require("./executors/normalization_executor"));
        var ragged = _interopRequireWildcard(require("./executors/ragged_executor"));
        var reduction = _interopRequireWildcard(require("./executors/reduction_executor"));
        var sliceJoin = _interopRequireWildcard(require("./executors/slice_join_executor"));
        var sparse = _interopRequireWildcard(require("./executors/sparse_executor"));
        var spectral = _interopRequireWildcard(require("./executors/spectral_executor"));
        var string = _interopRequireWildcard(require("./executors/string_executor"));
        var transformation = _interopRequireWildcard(require("./executors/transformation_executor"));
        function _getRequireWildcardCache(nodeInterop) {
            if (typeof WeakMap !== "function")
                return null;
            var cacheBabelInterop = new WeakMap();
            var cacheNodeInterop = new WeakMap();
            return (_getRequireWildcardCache = function (nodeInterop) {
                return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
            }
            )(nodeInterop);
        }
        function _interopRequireWildcard(obj, nodeInterop) {
            if (!nodeInterop && obj && obj.__esModule) {
                return obj;
            }
            if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                return {
                    default: obj
                };
            }
            var cache = _getRequireWildcardCache(nodeInterop);
            if (cache && cache.has(obj)) {
                return cache.get(obj);
            }
            var newObj = {};
            var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
            for (var key in obj) {
                if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                    var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                    if (desc && (desc.get || desc.set)) {
                        Object.defineProperty(newObj, key, desc);
                    } else {
                        newObj[key] = obj[key];
                    }
                }
            }
            newObj.default = obj;
            if (cache) {
                cache.set(obj, newObj);
            }
            return newObj;
        }
        /**
         * @license
         * Copyright 2018 Google LLC. All Rights Reserved.
         * Licensed under the Apache License, Version 2.0 (the "License");
         * you may not use this file except in compliance with the License.
         * You may obtain a copy of the License at
         *
         * http://www.apache.org/licenses/LICENSE-2.0
         *
         * Unless required by applicable law or agreed to in writing, software
         * distributed under the License is distributed on an "AS IS" BASIS,
         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
         * See the License for the specific language governing permissions and
         * limitations under the License.
         * =============================================================================
         */

        /**
         * Executes the op defined by the node object.
         * @param node
         * @param tensorMap contains tensors for executed nodes and weights
         * @param context contains tensors and information for running the current node.
         * @param resourceManager Optional. Contains global resources of the model.
         */
        function executeOp(node, tensorMap, context, resourceManager, tidy = tfc.tidy) {
            const value = ((node, tensorMap, context) => {
                switch (node.category) {
                    case 'arithmetic':
                        return tidy(() => arithmetic.executeOp(node, tensorMap, context));
                    case 'basic_math':
                        return tidy(() => basicMath.executeOp(node, tensorMap, context));
                    case 'control':
                        return control.executeOp(node, tensorMap, context);
                    case 'convolution':
                        return tidy(() => convolution.executeOp(node, tensorMap, context));
                    case 'creation':
                        return tidy(() => creation.executeOp(node, tensorMap, context));
                    case 'dynamic':
                        return dynamic.executeOp(node, tensorMap, context);
                    case 'evaluation':
                        return tidy(() => evaluation.executeOp(node, tensorMap, context));
                    case 'image':
                        return tidy(() => image.executeOp(node, tensorMap, context));
                    case 'graph':
                        return tidy(() => graph.executeOp(node, tensorMap, context));
                    case 'logical':
                        return tidy(() => logical.executeOp(node, tensorMap, context));
                    case 'matrices':
                        return tidy(() => matrices.executeOp(node, tensorMap, context));
                    case 'normalization':
                        return tidy(() => normalization.executeOp(node, tensorMap, context));
                    case 'ragged':
                        return tidy(() => ragged.executeOp(node, tensorMap, context));
                    case 'reduction':
                        return tidy(() => reduction.executeOp(node, tensorMap, context));
                    case 'slice_join':
                        return tidy(() => sliceJoin.executeOp(node, tensorMap, context));
                    case 'sparse':
                        return tidy(() => sparse.executeOp(node, tensorMap, context));
                    case 'spectral':
                        return tidy(() => spectral.executeOp(node, tensorMap, context));
                    case 'string':
                        return tidy(() => string.executeOp(node, tensorMap, context));
                    case 'transformation':
                        return tidy(() => transformation.executeOp(node, tensorMap, context));
                    case 'hash_table':
                        return hashTable.executeOp(node, tensorMap, context, resourceManager);
                    case 'custom':
                        const opMapper = (0,
                            _register.getRegisteredOp)(node.op);
                        if (opMapper && opMapper.customExecutor) {
                            return opMapper.customExecutor(new _node_value_impl.NodeValueImpl(node, tensorMap, context));
                        } else {
                            throw TypeError(`Custom op ${node.op} is not registered.`);
                        }
                    default:
                        throw TypeError(`Unknown op '${node.op}'. File an issue at ` + `https://github.com/tensorflow/tfjs/issues so we can add it` + `, or register a custom execution with tf.registerOp()`);
                }
            }
            )(node, tensorMap, context);
            if (tfc.util.isPromise(value)) {
                return value.then(data => [].concat(data));
            }
            return [].concat(value);
        }

    }
        , {
        "./custom_op/node_value_impl": 591,
        "./custom_op/register": 592,
        "./executors/arithmetic_executor": 593,
        "./executors/basic_math_executor": 594,
        "./executors/control_executor": 595,
        "./executors/convolution_executor": 596,
        "./executors/creation_executor": 597,
        "./executors/dynamic_executor": 598,
        "./executors/evaluation_executor": 599,
        "./executors/graph_executor": 600,
        "./executors/hash_table_executor": 601,
        "./executors/image_executor": 602,
        "./executors/logical_executor": 603,
        "./executors/matrices_executor": 604,
        "./executors/normalization_executor": 605,
        "./executors/ragged_executor": 606,
        "./executors/reduction_executor": 607,
        "./executors/slice_join_executor": 608,
        "./executors/sparse_executor": 609,
        "./executors/spectral_executor": 610,
        "./executors/string_executor": 611,
        "./executors/transformation_executor": 612,
        "@tensorflow/tfjs-core": 506
    }],
    634: [function (require, module, exports) {
        (function (Buffer) {
            (function () {
                "use strict";

                Object.defineProperty(exports, "__esModule", {
                    value: true
                });
                exports.OperationMapper = void 0;
                exports.decodeBase64 = decodeBase64;
                exports.getBoolArrayParam = getBoolArrayParam;
                exports.getBoolParam = getBoolParam;
                exports.getDtypeArrayParam = getDtypeArrayParam;
                exports.getDtypeParam = getDtypeParam;
                exports.getFuncParam = getFuncParam;
                exports.getNumberParam = getNumberParam;
                exports.getNumericArrayParam = getNumericArrayParam;
                exports.getStringArrayParam = getStringArrayParam;
                exports.getStringParam = getStringParam;
                exports.getTensorShapeArrayParam = getTensorShapeArrayParam;
                exports.getTensorShapeParam = getTensorShapeParam;
                exports.parseDtypeParam = parseDtypeParam;
                exports.parseStringParam = parseStringParam;
                exports.parseTensorShapeParam = parseTensorShapeParam;
                var _tfjsCore = require("@tensorflow/tfjs-core");
                var tensorflow = _interopRequireWildcard(require("../data/compiled_api"));
                var _register = require("./custom_op/register");
                var _utils = require("./executors/utils");
                var arithmetic = _interopRequireWildcard(require("./op_list/arithmetic"));
                var basicMath = _interopRequireWildcard(require("./op_list/basic_math"));
                var control = _interopRequireWildcard(require("./op_list/control"));
                var convolution = _interopRequireWildcard(require("./op_list/convolution"));
                var creation = _interopRequireWildcard(require("./op_list/creation"));
                var dynamic = _interopRequireWildcard(require("./op_list/dynamic"));
                var evaluation = _interopRequireWildcard(require("./op_list/evaluation"));
                var graph = _interopRequireWildcard(require("./op_list/graph"));
                var hashTable = _interopRequireWildcard(require("./op_list/hash_table"));
                var image = _interopRequireWildcard(require("./op_list/image"));
                var logical = _interopRequireWildcard(require("./op_list/logical"));
                var matrices = _interopRequireWildcard(require("./op_list/matrices"));
                var normalization = _interopRequireWildcard(require("./op_list/normalization"));
                var reduction = _interopRequireWildcard(require("./op_list/reduction"));
                var sliceJoin = _interopRequireWildcard(require("./op_list/slice_join"));
                var sparse = _interopRequireWildcard(require("./op_list/sparse"));
                var spectral = _interopRequireWildcard(require("./op_list/spectral"));
                var string = _interopRequireWildcard(require("./op_list/string"));
                var transformation = _interopRequireWildcard(require("./op_list/transformation"));
                function _getRequireWildcardCache(nodeInterop) {
                    if (typeof WeakMap !== "function")
                        return null;
                    var cacheBabelInterop = new WeakMap();
                    var cacheNodeInterop = new WeakMap();
                    return (_getRequireWildcardCache = function (nodeInterop) {
                        return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
                    }
                    )(nodeInterop);
                }
                function _interopRequireWildcard(obj, nodeInterop) {
                    if (!nodeInterop && obj && obj.__esModule) {
                        return obj;
                    }
                    if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
                        return {
                            default: obj
                        };
                    }
                    var cache = _getRequireWildcardCache(nodeInterop);
                    if (cache && cache.has(obj)) {
                        return cache.get(obj);
                    }
                    var newObj = {};
                    var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
                    for (var key in obj) {
                        if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
                            var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
                            if (desc && (desc.get || desc.set)) {
                                Object.defineProperty(newObj, key, desc);
                            } else {
                                newObj[key] = obj[key];
                            }
                        }
                    }
                    newObj.default = obj;
                    if (cache) {
                        cache.set(obj, newObj);
                    }
                    return newObj;
                }
                /**
                 * @license
                 * Copyright 2018 Google LLC. All Rights Reserved.
                 * Licensed under the Apache License, Version 2.0 (the "License");
                 * you may not use this file except in compliance with the License.
                 * You may obtain a copy of the License at
                 *
                 * http://www.apache.org/licenses/LICENSE-2.0
                 *
                 * Unless required by applicable law or agreed to in writing, software
                 * distributed under the License is distributed on an "AS IS" BASIS,
                 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                 * See the License for the specific language governing permissions and
                 * limitations under the License.
                 * =============================================================================
                 */

                class OperationMapper {
                    // Loads the op mapping from the JSON file.
                    constructor() {
                        const ops = [arithmetic, basicMath, control, convolution, creation, dynamic, evaluation, graph, hashTable, image, logical, matrices, normalization, reduction, sliceJoin, sparse, spectral, string, transformation];
                        const mappersJson = [].concat(...ops.map(op => op.json));
                        this.opMappers = mappersJson.reduce((map, mapper) => {
                            map[mapper.tfOpName] = mapper;
                            return map;
                        }
                            , {});
                    }
                    // Singleton instance for the mapper
                    static get Instance() {
                        return this._instance || (this._instance = new this());
                    }
                    // Converts the model inference graph from Tensorflow GraphDef to local
                    // representation for TensorFlow.js API
                    transformGraph(graph, signature = {}) {
                        const tfNodes = graph.node;
                        const placeholders = [];
                        const weights = [];
                        const initNodes = [];
                        const nodes = tfNodes.reduce((map, node) => {
                            map[node.name] = this.mapNode(node);
                            if (node.op.startsWith('Placeholder')) {
                                placeholders.push(map[node.name]);
                            } else if (node.op === 'Const') {
                                weights.push(map[node.name]);
                            } else if (node.input == null || node.input.length === 0) {
                                initNodes.push(map[node.name]);
                            }
                            return map;
                        }
                            , {});
                        let inputs = [];
                        const outputs = [];
                        let inputNodeNameToKey = {};
                        let outputNodeNameToKey = {};
                        if (signature != null) {
                            inputNodeNameToKey = this.mapSignatureEntries(signature.inputs);
                            outputNodeNameToKey = this.mapSignatureEntries(signature.outputs);
                        }
                        const allNodes = Object.keys(nodes);
                        allNodes.forEach(key => {
                            const node = nodes[key];
                            node.inputNames.forEach((name, index) => {
                                const [nodeName, , outputName] = (0,
                                    _utils.getNodeNameAndIndex)(name);
                                const inputNode = nodes[nodeName];
                                if (inputNode.outputs != null) {
                                    const outputIndex = inputNode.outputs.indexOf(outputName);
                                    if (outputIndex !== -1) {
                                        const inputName = `${nodeName}:${outputIndex}`;
                                        // update the input name to use the mapped output index directly.
                                        node.inputNames[index] = inputName;
                                    }
                                }
                                node.inputs.push(inputNode);
                                inputNode.children.push(node);
                            }
                            );
                        }
                        );
                        // if signature has not outputs set, add any node that does not have
                        // outputs.
                        if (Object.keys(outputNodeNameToKey).length === 0) {
                            allNodes.forEach(key => {
                                const node = nodes[key];
                                if (node.children.length === 0) {
                                    outputs.push(node);
                                }
                            }
                            );
                        } else {
                            Object.keys(outputNodeNameToKey).forEach(name => {
                                const [nodeName] = (0,
                                    _utils.getNodeNameAndIndex)(name);
                                const node = nodes[nodeName];
                                if (node != null) {
                                    node.signatureKey = outputNodeNameToKey[name];
                                    outputs.push(node);
                                }
                            }
                            );
                        }
                        if (Object.keys(inputNodeNameToKey).length > 0) {
                            Object.keys(inputNodeNameToKey).forEach(name => {
                                const [nodeName] = (0,
                                    _utils.getNodeNameAndIndex)(name);
                                const node = nodes[nodeName];
                                if (node) {
                                    node.signatureKey = inputNodeNameToKey[name];
                                    inputs.push(node);
                                }
                            }
                            );
                        } else {
                            inputs = placeholders;
                        }
                        let functions = {};
                        if (graph.library != null && graph.library.function != null) {
                            functions = graph.library.function.reduce((functions, func) => {
                                functions[func.signature.name] = this.mapFunction(func);
                                return functions;
                            }
                                , {});
                        }
                        const result = {
                            nodes,
                            inputs,
                            outputs,
                            weights,
                            placeholders,
                            signature,
                            functions
                        };
                        if (initNodes.length > 0) {
                            result.initNodes = initNodes;
                        }
                        return result;
                    }
                    mapSignatureEntries(entries) {
                        return Object.keys(entries || {}).reduce((prev, curr) => {
                            prev[entries[curr].name] = curr;
                            return prev;
                        }
                            , {});
                    }
                    mapNode(node) {
                        // Unsupported ops will cause an error at run-time (not parse time), since
                        // they may not be used by the actual execution subgraph.
                        const mapper = (0,
                            _register.getRegisteredOp)(node.op) || this.opMappers[node.op] || {};
                        if (node.attr == null) {
                            node.attr = {};
                        }
                        const newNode = {
                            name: node.name,
                            op: node.op,
                            category: mapper.category,
                            inputNames: (node.input || []).map(input => input.startsWith('^') ? input.slice(1) : input),
                            inputs: [],
                            children: [],
                            inputParams: {},
                            attrParams: {},
                            rawAttrs: node.attr,
                            outputs: mapper.outputs
                        };
                        if (mapper.inputs != null) {
                            newNode.inputParams = mapper.inputs.reduce((map, param) => {
                                map[param.name] = {
                                    type: param.type,
                                    inputIndexStart: param.start,
                                    inputIndexEnd: param.end
                                };
                                return map;
                            }
                                , {});
                        }
                        if (mapper.attrs != null) {
                            newNode.attrParams = mapper.attrs.reduce((map, param) => {
                                const type = param.type;
                                let value = undefined;
                                switch (param.type) {
                                    case 'string':
                                        value = getStringParam(node.attr, param.tfName, param.defaultValue);
                                        if (value === undefined && !!param.tfDeprecatedName) {
                                            value = getStringParam(node.attr, param.tfDeprecatedName, param.defaultValue);
                                        }
                                        break;
                                    case 'string[]':
                                        value = getStringArrayParam(node.attr, param.tfName, param.defaultValue);
                                        if (value === undefined && !!param.tfDeprecatedName) {
                                            value = getStringArrayParam(node.attr, param.tfDeprecatedName, param.defaultValue);
                                        }
                                        break;
                                    case 'number':
                                        value = getNumberParam(node.attr, param.tfName, param.defaultValue || 0);
                                        if (value === undefined && !!param.tfDeprecatedName) {
                                            value = getNumberParam(node.attr, param.tfDeprecatedName, param.defaultValue);
                                        }
                                        break;
                                    case 'number[]':
                                        value = getNumericArrayParam(node.attr, param.tfName, param.defaultValue);
                                        if (value === undefined && !!param.tfDeprecatedName) {
                                            value = getNumericArrayParam(node.attr, param.tfDeprecatedName, param.defaultValue);
                                        }
                                        break;
                                    case 'bool':
                                        value = getBoolParam(node.attr, param.tfName, param.defaultValue);
                                        if (value === undefined && !!param.tfDeprecatedName) {
                                            value = getBoolParam(node.attr, param.tfDeprecatedName, param.defaultValue);
                                        }
                                        break;
                                    case 'bool[]':
                                        value = getBoolArrayParam(node.attr, param.tfName, param.defaultValue);
                                        if (value === undefined && !!param.tfDeprecatedName) {
                                            value = getBoolArrayParam(node.attr, param.tfDeprecatedName, param.defaultValue);
                                        }
                                        break;
                                    case 'shape':
                                        value = getTensorShapeParam(node.attr, param.tfName, param.defaultValue);
                                        if (value === undefined && !!param.tfDeprecatedName) {
                                            value = getTensorShapeParam(node.attr, param.tfDeprecatedName, param.defaultValue);
                                        }
                                        break;
                                    case 'shape[]':
                                        value = getTensorShapeArrayParam(node.attr, param.tfName, param.defaultValue);
                                        if (value === undefined && !!param.tfDeprecatedName) {
                                            value = getTensorShapeArrayParam(node.attr, param.tfDeprecatedName, param.defaultValue);
                                        }
                                        break;
                                    case 'dtype':
                                        value = getDtypeParam(node.attr, param.tfName, param.defaultValue);
                                        if (value === undefined && !!param.tfDeprecatedName) {
                                            value = getDtypeParam(node.attr, param.tfDeprecatedName, param.defaultValue);
                                        }
                                        break;
                                    case 'dtype[]':
                                        value = getDtypeArrayParam(node.attr, param.tfName, param.defaultValue);
                                        if (value === undefined && !!param.tfDeprecatedName) {
                                            value = getDtypeArrayParam(node.attr, param.tfDeprecatedName, param.defaultValue);
                                        }
                                        break;
                                    case 'func':
                                        value = getFuncParam(node.attr, param.tfName, param.defaultValue);
                                        if (value === undefined && !!param.tfDeprecatedName) {
                                            value = getFuncParam(node.attr, param.tfDeprecatedName, param.defaultValue);
                                        }
                                        break;
                                    case 'tensor':
                                    case 'tensors':
                                        break;
                                    default:
                                        throw new Error(`Unsupported param type: ${param.type} for op: ${node.op}`);
                                }
                                map[param.name] = {
                                    value,
                                    type
                                };
                                return map;
                            }
                                , {});
                        }
                        return newNode;
                    }
                    // map the TFunctionDef to TFJS graph object
                    mapFunction(functionDef) {
                        const tfNodes = functionDef.nodeDef;
                        const placeholders = [];
                        const weights = [];
                        let nodes = {};
                        if (tfNodes != null) {
                            nodes = tfNodes.reduce((map, node) => {
                                map[node.name] = this.mapNode(node);
                                if (node.op === 'Const') {
                                    weights.push(map[node.name]);
                                }
                                return map;
                            }
                                , {});
                        }
                        const inputs = [];
                        const outputs = [];
                        functionDef.signature.inputArg.forEach(arg => {
                            const [nodeName] = (0,
                                _utils.getNodeNameAndIndex)(arg.name);
                            const node = {
                                name: nodeName,
                                op: 'Placeholder',
                                inputs: [],
                                inputNames: [],
                                category: 'graph',
                                inputParams: {},
                                attrParams: {
                                    dtype: {
                                        value: parseDtypeParam(arg.type),
                                        type: 'dtype'
                                    }
                                },
                                children: []
                            };
                            node.signatureKey = arg.name;
                            inputs.push(node);
                            nodes[nodeName] = node;
                        }
                        );
                        const allNodes = Object.keys(nodes);
                        allNodes.forEach(key => {
                            const node = nodes[key];
                            node.inputNames.forEach((name, index) => {
                                const [nodeName, , outputName] = (0,
                                    _utils.getNodeNameAndIndex)(name);
                                const inputNode = nodes[nodeName];
                                if (inputNode.outputs != null) {
                                    const outputIndex = inputNode.outputs.indexOf(outputName);
                                    if (outputIndex !== -1) {
                                        const inputName = `${nodeName}:${outputIndex}`;
                                        // update the input name to use the mapped output index directly.
                                        node.inputNames[index] = inputName;
                                    }
                                }
                                node.inputs.push(inputNode);
                                inputNode.children.push(node);
                            }
                            );
                        }
                        );
                        const returnNodeMap = functionDef.ret;
                        functionDef.signature.outputArg.forEach(output => {
                            const [nodeName, index] = (0,
                                _utils.getNodeNameAndIndex)(returnNodeMap[output.name]);
                            const node = nodes[nodeName];
                            if (node != null) {
                                node.defaultOutput = index;
                                outputs.push(node);
                            }
                        }
                        );
                        const signature = this.mapArgsToSignature(functionDef);
                        return {
                            nodes,
                            inputs,
                            outputs,
                            weights,
                            placeholders,
                            signature
                        };
                    }
                    mapArgsToSignature(functionDef) {
                        return {
                            methodName: functionDef.signature.name,
                            inputs: functionDef.signature.inputArg.reduce((map, arg) => {
                                map[arg.name] = this.mapArgToTensorInfo(arg);
                                return map;
                            }
                                , {}),
                            outputs: functionDef.signature.outputArg.reduce((map, arg) => {
                                map[arg.name] = this.mapArgToTensorInfo(arg, functionDef.ret);
                                return map;
                            }
                                , {})
                        };
                    }
                    mapArgToTensorInfo(arg, nameMap) {
                        let name = arg.name;
                        if (nameMap != null) {
                            name = nameMap[name];
                        }
                        return {
                            name,
                            dtype: arg.type
                        };
                    }
                }
                exports.OperationMapper = OperationMapper;
                function decodeBase64(text) {
                    const global = (0,
                        _tfjsCore.env)().global;
                    if (typeof global.atob !== 'undefined') {
                        return global.atob(text);
                    } else if (typeof Buffer !== 'undefined') {
                        return new Buffer(text, 'base64').toString();
                    } else {
                        throw new Error('Unable to decode base64 in this environment. ' + 'Missing built-in atob() or Buffer()');
                    }
                }
                function parseStringParam(s, keepCase) {
                    const value = Array.isArray(s) ? String.fromCharCode.apply(null, s) : decodeBase64(s);
                    return keepCase ? value : value.toLowerCase();
                }
                function getStringParam(attrs, name, def, keepCase = false) {
                    const param = attrs[name];
                    if (param != null) {
                        return parseStringParam(param.s, keepCase);
                    }
                    return def;
                }
                function getBoolParam(attrs, name, def) {
                    const param = attrs[name];
                    return param ? param.b : def;
                }
                function getNumberParam(attrs, name, def) {
                    const param = attrs[name] || {};
                    const value = param['i'] != null ? param['i'] : param['f'] != null ? param['f'] : def;
                    return typeof value === 'number' ? value : parseInt(value, 10);
                }
                function parseDtypeParam(value) {
                    if (typeof value === 'string') {
                        // tslint:disable-next-line:no-any
                        value = tensorflow.DataType[value];
                    }
                    switch (value) {
                        case tensorflow.DataType.DT_FLOAT:
                        case tensorflow.DataType.DT_HALF:
                            return 'float32';
                        case tensorflow.DataType.DT_INT32:
                        case tensorflow.DataType.DT_INT64:
                        case tensorflow.DataType.DT_INT8:
                        case tensorflow.DataType.DT_UINT8:
                            return 'int32';
                        case tensorflow.DataType.DT_BOOL:
                            return 'bool';
                        case tensorflow.DataType.DT_DOUBLE:
                            return 'float32';
                        case tensorflow.DataType.DT_STRING:
                            return 'string';
                        default:
                            // Unknown dtype error will happen at runtime (instead of parse time),
                            // since these nodes might not be used by the actual subgraph execution.
                            return null;
                    }
                }
                function getFuncParam(attrs, name, def) {
                    const param = attrs[name];
                    if (param && param.func) {
                        return param.func.name;
                    }
                    return def;
                }
                function getDtypeParam(attrs, name, def) {
                    const param = attrs[name];
                    if (param && param.type) {
                        return parseDtypeParam(param.type);
                    }
                    return def;
                }
                function getDtypeArrayParam(attrs, name, def) {
                    const param = attrs[name];
                    if (param && param.list && param.list.type) {
                        return param.list.type.map(v => parseDtypeParam(v));
                    }
                    return def;
                }
                function parseTensorShapeParam(shape) {
                    if (shape.unknownRank) {
                        return undefined;
                    }
                    if (shape.dim != null) {
                        return shape.dim.map(dim => typeof dim.size === 'number' ? dim.size : parseInt(dim.size, 10));
                    }
                    return [];
                }
                function getTensorShapeParam(attrs, name, def) {
                    const param = attrs[name];
                    if (param && param.shape) {
                        return parseTensorShapeParam(param.shape);
                    }
                    return def;
                }
                function getNumericArrayParam(attrs, name, def) {
                    const param = attrs[name];
                    if (param) {
                        return ((param.list.f && param.list.f.length ? param.list.f : param.list.i) || []).map(v => typeof v === 'number' ? v : parseInt(v, 10));
                    }
                    return def;
                }
                function getStringArrayParam(attrs, name, def, keepCase = false) {
                    const param = attrs[name];
                    if (param && param.list && param.list.s) {
                        return param.list.s.map(v => {
                            return parseStringParam(v, keepCase);
                        }
                        );
                    }
                    return def;
                }
                function getTensorShapeArrayParam(attrs, name, def) {
                    const param = attrs[name];
                    if (param && param.list && param.list.shape) {
                        return param.list.shape.map(v => {
                            return parseTensorShapeParam(v);
                        }
                        );
                    }
                    return def;
                }
                function getBoolArrayParam(attrs, name, def) {
                    const param = attrs[name];
                    if (param && param.list && param.list.b) {
                        return param.list.b;
                    }
                    return def;
                }

            }
            ).call(this)
        }
        ).call(this, require("buffer").Buffer)
    }
        , {
        "../data/compiled_api": 579,
        "./custom_op/register": 592,
        "./executors/utils": 613,
        "./op_list/arithmetic": 614,
        "./op_list/basic_math": 615,
        "./op_list/control": 616,
        "./op_list/convolution": 617,
        "./op_list/creation": 618,
        "./op_list/dynamic": 619,
        "./op_list/evaluation": 620,
        "./op_list/graph": 621,
        "./op_list/hash_table": 622,
        "./op_list/image": 623,
        "./op_list/logical": 624,
        "./op_list/matrices": 625,
        "./op_list/normalization": 626,
        "./op_list/reduction": 627,
        "./op_list/slice_join": 628,
        "./op_list/sparse": 629,
        "./op_list/spectral": 630,
        "./op_list/string": 631,
        "./op_list/transformation": 632,
        "@tensorflow/tfjs-core": 506,
        "buffer": 647
    }],
    635: [function (require, module, exports) {
        "use strict";

        Object.defineProperty(exports, "__esModule", {
            value: true
        });
        exports.version = void 0;
        /** @license See the LICENSE file. */
        // This code is auto-generated, do not modify this file!
        const version = '4.1.0';
        exports.version = version;

    }
        , {}],
    636: [function (require, module, exports) {
    }
        , {}],
    637: [function (require, module, exports) {
        module.exports = Long;

        /**
         * wasm optimizations, to do native i64 multiplication and divide
         */
        var wasm = null;

        try {
            wasm = new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0, 97, 115, 109, 1, 0, 0, 0, 1, 13, 2, 96, 0, 1, 127, 96, 4, 127, 127, 127, 127, 1, 127, 3, 7, 6, 0, 1, 1, 1, 1, 1, 6, 6, 1, 127, 1, 65, 0, 11, 7, 50, 6, 3, 109, 117, 108, 0, 1, 5, 100, 105, 118, 95, 115, 0, 2, 5, 100, 105, 118, 95, 117, 0, 3, 5, 114, 101, 109, 95, 115, 0, 4, 5, 114, 101, 109, 95, 117, 0, 5, 8, 103, 101, 116, 95, 104, 105, 103, 104, 0, 0, 10, 191, 1, 6, 4, 0, 35, 0, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 126, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 127, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 128, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 129, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 130, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11])), {}).exports;
        } catch (e) {// no wasm support :(
        }

        /**
         * Constructs a 64 bit two's-complement integer, given its low and high 32 bit values as *signed* integers.
         *  See the from* functions below for more convenient ways of constructing Longs.
         * @exports Long
         * @class A Long class for representing a 64 bit two's-complement integer value.
         * @param {number} low The low (signed) 32 bits of the long
         * @param {number} high The high (signed) 32 bits of the long
         * @param {boolean=} unsigned Whether unsigned or not, defaults to signed
         * @constructor
         */
        function Long(low, high, unsigned) {

            /**
             * The low 32 bits as a signed value.
             * @type {number}
             */
            this.low = low | 0;

            /**
             * The high 32 bits as a signed value.
             * @type {number}
             */
            this.high = high | 0;

            /**
             * Whether unsigned or not.
             * @type {boolean}
             */
            this.unsigned = !!unsigned;
        }

        // The internal representation of a long is the two given signed, 32-bit values.
        // We use 32-bit pieces because these are the size of integers on which
        // Javascript performs bit-operations.  For operations like addition and
        // multiplication, we split each number into 16 bit pieces, which can easily be
        // multiplied within Javascript's floating-point representation without overflow
        // or change in sign.
        //
        // In the algorithms below, we frequently reduce the negative case to the
        // positive case by negating the input(s) and then post-processing the result.
        // Note that we must ALWAYS check specially whether those values are MIN_VALUE
        // (-2^63) because -MIN_VALUE == MIN_VALUE (since 2^63 cannot be represented as
        // a positive number, it overflows back into a negative).  Not handling this
        // case would often result in infinite recursion.
        //
        // Common constant values ZERO, ONE, NEG_ONE, etc. are defined below the from*
        // methods on which they depend.

        /**
         * An indicator used to reliably determine if an object is a Long or not.
         * @type {boolean}
         * @const
         * @private
         */
        Long.prototype.__isLong__;

        Object.defineProperty(Long.prototype, "__isLong__", {
            value: true
        });

        /**
         * @function
         * @param {*} obj Object
         * @returns {boolean}
         * @inner
         */
        function isLong(obj) {
            return (obj && obj["__isLong__"]) === true;
        }

        /**
         * Tests if the specified object is a Long.
         * @function
         * @param {*} obj Object
         * @returns {boolean}
         */
        Long.isLong = isLong;

        /**
         * A cache of the Long representations of small integer values.
         * @type {!Object}
         * @inner
         */
        var INT_CACHE = {};

        /**
         * A cache of the Long representations of small unsigned integer values.
         * @type {!Object}
         * @inner
         */
        var UINT_CACHE = {};

        /**
         * @param {number} value
         * @param {boolean=} unsigned
         * @returns {!Long}
         * @inner
         */
        function fromInt(value, unsigned) {
            var obj, cachedObj, cache;
            if (unsigned) {
                value >>>= 0;
                if (cache = (0 <= value && value < 256)) {
                    cachedObj = UINT_CACHE[value];
                    if (cachedObj)
                        return cachedObj;
                }
                obj = fromBits(value, (value | 0) < 0 ? -1 : 0, true);
                if (cache)
                    UINT_CACHE[value] = obj;
                return obj;
            } else {
                value |= 0;
                if (cache = (-128 <= value && value < 128)) {
                    cachedObj = INT_CACHE[value];
                    if (cachedObj)
                        return cachedObj;
                }
                obj = fromBits(value, value < 0 ? -1 : 0, false);
                if (cache)
                    INT_CACHE[value] = obj;
                return obj;
            }
        }

        /**
         * Returns a Long representing the given 32 bit integer value.
         * @function
         * @param {number} value The 32 bit integer in question
         * @param {boolean=} unsigned Whether unsigned or not, defaults to signed
         * @returns {!Long} The corresponding Long value
         */
        Long.fromInt = fromInt;

        /**
         * @param {number} value
         * @param {boolean=} unsigned
         * @returns {!Long}
         * @inner
         */
        function fromNumber(value, unsigned) {
            if (isNaN(value))
                return unsigned ? UZERO : ZERO;
            if (unsigned) {
                if (value < 0)
                    return UZERO;
                if (value >= TWO_PWR_64_DBL)
                    return MAX_UNSIGNED_VALUE;
            } else {
                if (value <= -TWO_PWR_63_DBL)
                    return MIN_VALUE;
                if (value + 1 >= TWO_PWR_63_DBL)
                    return MAX_VALUE;
            }
            if (value < 0)
                return fromNumber(-value, unsigned).neg();
            return fromBits((value % TWO_PWR_32_DBL) | 0, (value / TWO_PWR_32_DBL) | 0, unsigned);
        }

        /**
         * Returns a Long representing the given value, provided that it is a finite number. Otherwise, zero is returned.
         * @function
         * @param {number} value The number in question
         * @param {boolean=} unsigned Whether unsigned or not, defaults to signed
         * @returns {!Long} The corresponding Long value
         */
        Long.fromNumber = fromNumber;

        /**
         * @param {number} lowBits
         * @param {number} highBits
         * @param {boolean=} unsigned
         * @returns {!Long}
         * @inner
         */
        function fromBits(lowBits, highBits, unsigned) {
            return new Long(lowBits, highBits, unsigned);
        }

        /**
         * Returns a Long representing the 64 bit integer that comes by concatenating the given low and high bits. Each is
         *  assumed to use 32 bits.
         * @function
         * @param {number} lowBits The low 32 bits
         * @param {number} highBits The high 32 bits
         * @param {boolean=} unsigned Whether unsigned or not, defaults to signed
         * @returns {!Long} The corresponding Long value
         */
        Long.fromBits = fromBits;

        /**
         * @function
         * @param {number} base
         * @param {number} exponent
         * @returns {number}
         * @inner
         */
        var pow_dbl = Math.pow;
        // Used 4 times (4*8 to 15+4)

        /**
         * @param {string} str
         * @param {(boolean|number)=} unsigned
         * @param {number=} radix
         * @returns {!Long}
         * @inner
         */
        function fromString(str, unsigned, radix) {
            if (str.length === 0)
                throw Error('empty string');
            if (str === "NaN" || str === "Infinity" || str === "+Infinity" || str === "-Infinity")
                return ZERO;
            if (typeof unsigned === 'number') {
                // For goog.math.long compatibility
                radix = unsigned,
                    unsigned = false;
            } else {
                unsigned = !!unsigned;
            }
            radix = radix || 10;
            if (radix < 2 || 36 < radix)
                throw RangeError('radix');

            var p;
            if ((p = str.indexOf('-')) > 0)
                throw Error('interior hyphen');
            else if (p === 0) {
                return fromString(str.substring(1), unsigned, radix).neg();
            }

            // Do several (8) digits each time through the loop, so as to
            // minimize the calls to the very expensive emulated div.
            var radixToPower = fromNumber(pow_dbl(radix, 8));

            var result = ZERO;
            for (var i = 0; i < str.length; i += 8) {
                var size = Math.min(8, str.length - i)
                    , value = parseInt(str.substring(i, i + size), radix);
                if (size < 8) {
                    var power = fromNumber(pow_dbl(radix, size));
                    result = result.mul(power).add(fromNumber(value));
                } else {
                    result = result.mul(radixToPower);
                    result = result.add(fromNumber(value));
                }
            }
            result.unsigned = unsigned;
            return result;
        }

        /**
         * Returns a Long representation of the given string, written using the specified radix.
         * @function
         * @param {string} str The textual representation of the Long
         * @param {(boolean|number)=} unsigned Whether unsigned or not, defaults to signed
         * @param {number=} radix The radix in which the text is written (2-36), defaults to 10
         * @returns {!Long} The corresponding Long value
         */
        Long.fromString = fromString;

        /**
         * @function
         * @param {!Long|number|string|!{low: number, high: number, unsigned: boolean}} val
         * @param {boolean=} unsigned
         * @returns {!Long}
         * @inner
         */
        function fromValue(val, unsigned) {
            if (typeof val === 'number')
                return fromNumber(val, unsigned);
            if (typeof val === 'string')
                return fromString(val, unsigned);
            // Throws for non-objects, converts non-instanceof Long:
            return fromBits(val.low, val.high, typeof unsigned === 'boolean' ? unsigned : val.unsigned);
        }

        /**
         * Converts the specified value to a Long using the appropriate from* function for its type.
         * @function
         * @param {!Long|number|string|!{low: number, high: number, unsigned: boolean}} val Value
         * @param {boolean=} unsigned Whether unsigned or not, defaults to signed
         * @returns {!Long}
         */
        Long.fromValue = fromValue;

        // NOTE: the compiler should inline these constant values below and then remove these variables, so there should be
        // no runtime penalty for these.

        /**
         * @type {number}
         * @const
         * @inner
         */
        var TWO_PWR_16_DBL = 1 << 16;

        /**
         * @type {number}
         * @const
         * @inner
         */
        var TWO_PWR_24_DBL = 1 << 24;

        /**
         * @type {number}
         * @const
         * @inner
         */
        var TWO_PWR_32_DBL = TWO_PWR_16_DBL * TWO_PWR_16_DBL;

        /**
         * @type {number}
         * @const
         * @inner
         */
        var TWO_PWR_64_DBL = TWO_PWR_32_DBL * TWO_PWR_32_DBL;

        /**
         * @type {number}
         * @const
         * @inner
         */
        var TWO_PWR_63_DBL = TWO_PWR_64_DBL / 2;

        /**
         * @type {!Long}
         * @const
         * @inner
         */
        var TWO_PWR_24 = fromInt(TWO_PWR_24_DBL);

        /**
         * @type {!Long}
         * @inner
         */
        var ZERO = fromInt(0);

        /**
         * Signed zero.
         * @type {!Long}
         */
        Long.ZERO = ZERO;

        /**
         * @type {!Long}
         * @inner
         */
        var UZERO = fromInt(0, true);

        /**
         * Unsigned zero.
         * @type {!Long}
         */
        Long.UZERO = UZERO;

        /**
         * @type {!Long}
         * @inner
         */
        var ONE = fromInt(1);

        /**
         * Signed one.
         * @type {!Long}
         */
        Long.ONE = ONE;

        /**
         * @type {!Long}
         * @inner
         */
        var UONE = fromInt(1, true);

        /**
         * Unsigned one.
         * @type {!Long}
         */
        Long.UONE = UONE;

        /**
         * @type {!Long}
         * @inner
         */
        var NEG_ONE = fromInt(-1);

        /**
         * Signed negative one.
         * @type {!Long}
         */
        Long.NEG_ONE = NEG_ONE;

        /**
         * @type {!Long}
         * @inner
         */
        var MAX_VALUE = fromBits(0xFFFFFFFF | 0, 0x7FFFFFFF | 0, false);

        /**
         * Maximum signed value.
         * @type {!Long}
         */
        Long.MAX_VALUE = MAX_VALUE;

        /**
         * @type {!Long}
         * @inner
         */
        var MAX_UNSIGNED_VALUE = fromBits(0xFFFFFFFF | 0, 0xFFFFFFFF | 0, true);

        /**
         * Maximum unsigned value.
         * @type {!Long}
         */
        Long.MAX_UNSIGNED_VALUE = MAX_UNSIGNED_VALUE;

        /**
         * @type {!Long}
         * @inner
         */
        var MIN_VALUE = fromBits(0, 0x80000000 | 0, false);

        /**
         * Minimum signed value.
         * @type {!Long}
         */
        Long.MIN_VALUE = MIN_VALUE;

        /**
         * @alias Long.prototype
         * @inner
         */
        var LongPrototype = Long.prototype;

        /**
         * Converts the Long to a 32 bit integer, assuming it is a 32 bit integer.
         * @returns {number}
         */
        LongPrototype.toInt = function toInt() {
            return this.unsigned ? this.low >>> 0 : this.low;
        };

        /**
         * Converts the Long to a the nearest floating-point representation of this value (double, 53 bit mantissa).
         * @returns {number}
         */
        LongPrototype.toNumber = function toNumber() {
            if (this.unsigned)
                return ((this.high >>> 0) * TWO_PWR_32_DBL) + (this.low >>> 0);
            return this.high * TWO_PWR_32_DBL + (this.low >>> 0);
        };

        /**
         * Converts the Long to a string written in the specified radix.
         * @param {number=} radix Radix (2-36), defaults to 10
         * @returns {string}
         * @override
         * @throws {RangeError} If `radix` is out of range
         */
        LongPrototype.toString = function toString(radix) {
            radix = radix || 10;
            if (radix < 2 || 36 < radix)
                throw RangeError('radix');
            if (this.isZero())
                return '0';
            if (this.isNegative()) {
                // Unsigned Longs are never negative
                if (this.eq(MIN_VALUE)) {
                    // We need to change the Long value before it can be negated, so we remove
                    // the bottom-most digit in this base and then recurse to do the rest.
                    var radixLong = fromNumber(radix)
                        , div = this.div(radixLong)
                        , rem1 = div.mul(radixLong).sub(this);
                    return div.toString(radix) + rem1.toInt().toString(radix);
                } else
                    return '-' + this.neg().toString(radix);
            }

            // Do several (6) digits each time through the loop, so as to
            // minimize the calls to the very expensive emulated div.
            var radixToPower = fromNumber(pow_dbl(radix, 6), this.unsigned)
                , rem = this;
            var result = '';
            while (true) {
                var remDiv = rem.div(radixToPower)
                    , intval = rem.sub(remDiv.mul(radixToPower)).toInt() >>> 0
                    , digits = intval.toString(radix);
                rem = remDiv;
                if (rem.isZero())
                    return digits + result;
                else {
                    while (digits.length < 6)
                        digits = '0' + digits;
                    result = '' + digits + result;
                }
            }
        };

        /**
         * Gets the high 32 bits as a signed integer.
         * @returns {number} Signed high bits
         */
        LongPrototype.getHighBits = function getHighBits() {
            return this.high;
        };

        /**
         * Gets the high 32 bits as an unsigned integer.
         * @returns {number} Unsigned high bits
         */
        LongPrototype.getHighBitsUnsigned = function getHighBitsUnsigned() {
            return this.high >>> 0;
        };

        /**
         * Gets the low 32 bits as a signed integer.
         * @returns {number} Signed low bits
         */
        LongPrototype.getLowBits = function getLowBits() {
            return this.low;
        };

        /**
         * Gets the low 32 bits as an unsigned integer.
         * @returns {number} Unsigned low bits
         */
        LongPrototype.getLowBitsUnsigned = function getLowBitsUnsigned() {
            return this.low >>> 0;
        };

        /**
         * Gets the number of bits needed to represent the absolute value of this Long.
         * @returns {number}
         */
        LongPrototype.getNumBitsAbs = function getNumBitsAbs() {
            if (this.isNegative())
                // Unsigned Longs are never negative
                return this.eq(MIN_VALUE) ? 64 : this.neg().getNumBitsAbs();
            var val = this.high != 0 ? this.high : this.low;
            for (var bit = 31; bit > 0; bit--)
                if ((val & (1 << bit)) != 0)
                    break;
            return this.high != 0 ? bit + 33 : bit + 1;
        };

        /**
         * Tests if this Long's value equals zero.
         * @returns {boolean}
         */
        LongPrototype.isZero = function isZero() {
            return this.high === 0 && this.low === 0;
        };

        /**
         * Tests if this Long's value equals zero. This is an alias of {@link Long#isZero}.
         * @returns {boolean}
         */
        LongPrototype.eqz = LongPrototype.isZero;

        /**
         * Tests if this Long's value is negative.
         * @returns {boolean}
         */
        LongPrototype.isNegative = function isNegative() {
            return !this.unsigned && this.high < 0;
        };

        /**
         * Tests if this Long's value is positive.
         * @returns {boolean}
         */
        LongPrototype.isPositive = function isPositive() {
            return this.unsigned || this.high >= 0;
        };

        /**
         * Tests if this Long's value is odd.
         * @returns {boolean}
         */
        LongPrototype.isOdd = function isOdd() {
            return (this.low & 1) === 1;
        };

        /**
         * Tests if this Long's value is even.
         * @returns {boolean}
         */
        LongPrototype.isEven = function isEven() {
            return (this.low & 1) === 0;
        };

        /**
         * Tests if this Long's value equals the specified's.
         * @param {!Long|number|string} other Other value
         * @returns {boolean}
         */
        LongPrototype.equals = function equals(other) {
            if (!isLong(other))
                other = fromValue(other);
            if (this.unsigned !== other.unsigned && (this.high >>> 31) === 1 && (other.high >>> 31) === 1)
                return false;
            return this.high === other.high && this.low === other.low;
        };

        /**
         * Tests if this Long's value equals the specified's. This is an alias of {@link Long#equals}.
         * @function
         * @param {!Long|number|string} other Other value
         * @returns {boolean}
         */
        LongPrototype.eq = LongPrototype.equals;

        /**
         * Tests if this Long's value differs from the specified's.
         * @param {!Long|number|string} other Other value
         * @returns {boolean}
         */
        LongPrototype.notEquals = function notEquals(other) {
            return !this.eq(/* validates */
                other);
        };

        /**
         * Tests if this Long's value differs from the specified's. This is an alias of {@link Long#notEquals}.
         * @function
         * @param {!Long|number|string} other Other value
         * @returns {boolean}
         */
        LongPrototype.neq = LongPrototype.notEquals;

        /**
         * Tests if this Long's value differs from the specified's. This is an alias of {@link Long#notEquals}.
         * @function
         * @param {!Long|number|string} other Other value
         * @returns {boolean}
         */
        LongPrototype.ne = LongPrototype.notEquals;

        /**
         * Tests if this Long's value is less than the specified's.
         * @param {!Long|number|string} other Other value
         * @returns {boolean}
         */
        LongPrototype.lessThan = function lessThan(other) {
            return this.comp(/* validates */
                other) < 0;
        };

        /**
         * Tests if this Long's value is less than the specified's. This is an alias of {@link Long#lessThan}.
         * @function
         * @param {!Long|number|string} other Other value
         * @returns {boolean}
         */
        LongPrototype.lt = LongPrototype.lessThan;

        /**
         * Tests if this Long's value is less than or equal the specified's.
         * @param {!Long|number|string} other Other value
         * @returns {boolean}
         */
        LongPrototype.lessThanOrEqual = function lessThanOrEqual(other) {
            return this.comp(/* validates */
                other) <= 0;
        };

        /**
         * Tests if this Long's value is less than or equal the specified's. This is an alias of {@link Long#lessThanOrEqual}.
         * @function
         * @param {!Long|number|string} other Other value
         * @returns {boolean}
         */
        LongPrototype.lte = LongPrototype.lessThanOrEqual;

        /**
         * Tests if this Long's value is less than or equal the specified's. This is an alias of {@link Long#lessThanOrEqual}.
         * @function
         * @param {!Long|number|string} other Other value
         * @returns {boolean}
         */
        LongPrototype.le = LongPrototype.lessThanOrEqual;

        /**
         * Tests if this Long's value is greater than the specified's.
         * @param {!Long|number|string} other Other value
         * @returns {boolean}
         */
        LongPrototype.greaterThan = function greaterThan(other) {
            return this.comp(/* validates */
                other) > 0;
        };

        /**
         * Tests if this Long's value is greater than the specified's. This is an alias of {@link Long#greaterThan}.
         * @function
         * @param {!Long|number|string} other Other value
         * @returns {boolean}
         */
        LongPrototype.gt = LongPrototype.greaterThan;

        /**
         * Tests if this Long's value is greater than or equal the specified's.
         * @param {!Long|number|string} other Other value
         * @returns {boolean}
         */
        LongPrototype.greaterThanOrEqual = function greaterThanOrEqual(other) {
            return this.comp(/* validates */
                other) >= 0;
        };

        /**
         * Tests if this Long's value is greater than or equal the specified's. This is an alias of {@link Long#greaterThanOrEqual}.
         * @function
         * @param {!Long|number|string} other Other value
         * @returns {boolean}
         */
        LongPrototype.gte = LongPrototype.greaterThanOrEqual;

        /**
         * Tests if this Long's value is greater than or equal the specified's. This is an alias of {@link Long#greaterThanOrEqual}.
         * @function
         * @param {!Long|number|string} other Other value
         * @returns {boolean}
         */
        LongPrototype.ge = LongPrototype.greaterThanOrEqual;

        /**
         * Compares this Long's value with the specified's.
         * @param {!Long|number|string} other Other value
         * @returns {number} 0 if they are the same, 1 if the this is greater and -1
         *  if the given one is greater
         */
        LongPrototype.compare = function compare(other) {
            if (!isLong(other))
                other = fromValue(other);
            if (this.eq(other))
                return 0;
            var thisNeg = this.isNegative()
                , otherNeg = other.isNegative();
            if (thisNeg && !otherNeg)
                return -1;
            if (!thisNeg && otherNeg)
                return 1;
            // At this point the sign bits are the same
            if (!this.unsigned)
                return this.sub(other).isNegative() ? -1 : 1;
            // Both are positive if at least one is unsigned
            return (other.high >>> 0) > (this.high >>> 0) || (other.high === this.high && (other.low >>> 0) > (this.low >>> 0)) ? -1 : 1;
        };

        /**
         * Compares this Long's value with the specified's. This is an alias of {@link Long#compare}.
         * @function
         * @param {!Long|number|string} other Other value
         * @returns {number} 0 if they are the same, 1 if the this is greater and -1
         *  if the given one is greater
         */
        LongPrototype.comp = LongPrototype.compare;

        /**
         * Negates this Long's value.
         * @returns {!Long} Negated Long
         */
        LongPrototype.negate = function negate() {
            if (!this.unsigned && this.eq(MIN_VALUE))
                return MIN_VALUE;
            return this.not().add(ONE);
        };

        /**
         * Negates this Long's value. This is an alias of {@link Long#negate}.
         * @function
         * @returns {!Long} Negated Long
         */
        LongPrototype.neg = LongPrototype.negate;

        /**
         * Returns the sum of this and the specified Long.
         * @param {!Long|number|string} addend Addend
         * @returns {!Long} Sum
         */
        LongPrototype.add = function add(addend) {
            if (!isLong(addend))
                addend = fromValue(addend);

            // Divide each number into 4 chunks of 16 bits, and then sum the chunks.

            var a48 = this.high >>> 16;
            var a32 = this.high & 0xFFFF;
            var a16 = this.low >>> 16;
            var a00 = this.low & 0xFFFF;

            var b48 = addend.high >>> 16;
            var b32 = addend.high & 0xFFFF;
            var b16 = addend.low >>> 16;
            var b00 = addend.low & 0xFFFF;

            var c48 = 0
                , c32 = 0
                , c16 = 0
                , c00 = 0;
            c00 += a00 + b00;
            c16 += c00 >>> 16;
            c00 &= 0xFFFF;
            c16 += a16 + b16;
            c32 += c16 >>> 16;
            c16 &= 0xFFFF;
            c32 += a32 + b32;
            c48 += c32 >>> 16;
            c32 &= 0xFFFF;
            c48 += a48 + b48;
            c48 &= 0xFFFF;
            return fromBits((c16 << 16) | c00, (c48 << 16) | c32, this.unsigned);
        };

        /**
         * Returns the difference of this and the specified Long.
         * @param {!Long|number|string} subtrahend Subtrahend
         * @returns {!Long} Difference
         */
        LongPrototype.subtract = function subtract(subtrahend) {
            if (!isLong(subtrahend))
                subtrahend = fromValue(subtrahend);
            return this.add(subtrahend.neg());
        };

        /**
         * Returns the difference of this and the specified Long. This is an alias of {@link Long#subtract}.
         * @function
         * @param {!Long|number|string} subtrahend Subtrahend
         * @returns {!Long} Difference
         */
        LongPrototype.sub = LongPrototype.subtract;

        /**
         * Returns the product of this and the specified Long.
         * @param {!Long|number|string} multiplier Multiplier
         * @returns {!Long} Product
         */
        LongPrototype.multiply = function multiply(multiplier) {
            if (this.isZero())
                return ZERO;
            if (!isLong(multiplier))
                multiplier = fromValue(multiplier);

            // use wasm support if present
            if (wasm) {
                var low = wasm.mul(this.low, this.high, multiplier.low, multiplier.high);
                return fromBits(low, wasm.get_high(), this.unsigned);
            }

            if (multiplier.isZero())
                return ZERO;
            if (this.eq(MIN_VALUE))
                return multiplier.isOdd() ? MIN_VALUE : ZERO;
            if (multiplier.eq(MIN_VALUE))
                return this.isOdd() ? MIN_VALUE : ZERO;

            if (this.isNegative()) {
                if (multiplier.isNegative())
                    return this.neg().mul(multiplier.neg());
                else
                    return this.neg().mul(multiplier).neg();
            } else if (multiplier.isNegative())
                return this.mul(multiplier.neg()).neg();

            // If both longs are small, use float multiplication
            if (this.lt(TWO_PWR_24) && multiplier.lt(TWO_PWR_24))
                return fromNumber(this.toNumber() * multiplier.toNumber(), this.unsigned);

            // Divide each long into 4 chunks of 16 bits, and then add up 4x4 products.
            // We can skip products that would overflow.

            var a48 = this.high >>> 16;
            var a32 = this.high & 0xFFFF;
            var a16 = this.low >>> 16;
            var a00 = this.low & 0xFFFF;

            var b48 = multiplier.high >>> 16;
            var b32 = multiplier.high & 0xFFFF;
            var b16 = multiplier.low >>> 16;
            var b00 = multiplier.low & 0xFFFF;

            var c48 = 0
                , c32 = 0
                , c16 = 0
                , c00 = 0;
            c00 += a00 * b00;
            c16 += c00 >>> 16;
            c00 &= 0xFFFF;
            c16 += a16 * b00;
            c32 += c16 >>> 16;
            c16 &= 0xFFFF;
            c16 += a00 * b16;
            c32 += c16 >>> 16;
            c16 &= 0xFFFF;
            c32 += a32 * b00;
            c48 += c32 >>> 16;
            c32 &= 0xFFFF;
            c32 += a16 * b16;
            c48 += c32 >>> 16;
            c32 &= 0xFFFF;
            c32 += a00 * b32;
            c48 += c32 >>> 16;
            c32 &= 0xFFFF;
            c48 += a48 * b00 + a32 * b16 + a16 * b32 + a00 * b48;
            c48 &= 0xFFFF;
            return fromBits((c16 << 16) | c00, (c48 << 16) | c32, this.unsigned);
        };

        /**
         * Returns the product of this and the specified Long. This is an alias of {@link Long#multiply}.
         * @function
         * @param {!Long|number|string} multiplier Multiplier
         * @returns {!Long} Product
         */
        LongPrototype.mul = LongPrototype.multiply;

        /**
         * Returns this Long divided by the specified. The result is signed if this Long is signed or
         *  unsigned if this Long is unsigned.
         * @param {!Long|number|string} divisor Divisor
         * @returns {!Long} Quotient
         */
        LongPrototype.divide = function divide(divisor) {
            if (!isLong(divisor))
                divisor = fromValue(divisor);
            if (divisor.isZero())
                throw Error('division by zero');

            // use wasm support if present
            if (wasm) {
                // guard against signed division overflow: the largest
                // negative number / -1 would be 1 larger than the largest
                // positive number, due to two's complement.
                if (!this.unsigned && this.high === -0x80000000 && divisor.low === -1 && divisor.high === -1) {
                    // be consistent with non-wasm code path
                    return this;
                }
                var low = (this.unsigned ? wasm.div_u : wasm.div_s)(this.low, this.high, divisor.low, divisor.high);
                return fromBits(low, wasm.get_high(), this.unsigned);
            }

            if (this.isZero())
                return this.unsigned ? UZERO : ZERO;
            var approx, rem, res;
            if (!this.unsigned) {
                // This section is only relevant for signed longs and is derived from the
                // closure library as a whole.
                if (this.eq(MIN_VALUE)) {
                    if (divisor.eq(ONE) || divisor.eq(NEG_ONE))
                        return MIN_VALUE;
                    // recall that -MIN_VALUE == MIN_VALUE
                    else if (divisor.eq(MIN_VALUE))
                        return ONE;
                    else {
                        // At this point, we have |other| >= 2, so |this/other| < |MIN_VALUE|.
                        var halfThis = this.shr(1);
                        approx = halfThis.div(divisor).shl(1);
                        if (approx.eq(ZERO)) {
                            return divisor.isNegative() ? ONE : NEG_ONE;
                        } else {
                            rem = this.sub(divisor.mul(approx));
                            res = approx.add(rem.div(divisor));
                            return res;
                        }
                    }
                } else if (divisor.eq(MIN_VALUE))
                    return this.unsigned ? UZERO : ZERO;
                if (this.isNegative()) {
                    if (divisor.isNegative())
                        return this.neg().div(divisor.neg());
                    return this.neg().div(divisor).neg();
                } else if (divisor.isNegative())
                    return this.div(divisor.neg()).neg();
                res = ZERO;
            } else {
                // The algorithm below has not been made for unsigned longs. It's therefore
                // required to take special care of the MSB prior to running it.
                if (!divisor.unsigned)
                    divisor = divisor.toUnsigned();
                if (divisor.gt(this))
                    return UZERO;
                if (divisor.gt(this.shru(1)))
                    // 15 >>> 1 = 7 ; with divisor = 8 ; true
                    return UONE;
                res = UZERO;
            }

            // Repeat the following until the remainder is less than other:  find a
            // floating-point that approximates remainder / other *from below*, add this
            // into the result, and subtract it from the remainder.  It is critical that
            // the approximate value is less than or equal to the real value so that the
            // remainder never becomes negative.
            rem = this;
            while (rem.gte(divisor)) {
                // Approximate the result of division. This may be a little greater or
                // smaller than the actual value.
                approx = Math.max(1, Math.floor(rem.toNumber() / divisor.toNumber()));

                // We will tweak the approximate result by changing it in the 48-th digit or
                // the smallest non-fractional digit, whichever is larger.
                var log2 = Math.ceil(Math.log(approx) / Math.LN2)
                    , delta = (log2 <= 48) ? 1 : pow_dbl(2, log2 - 48)
                    ,
                    // Decrease the approximation until it is smaller than the remainder.  Note
                    // that if it is too large, the product overflows and is negative.
                    approxRes = fromNumber(approx)
                    , approxRem = approxRes.mul(divisor);
                while (approxRem.isNegative() || approxRem.gt(rem)) {
                    approx -= delta;
                    approxRes = fromNumber(approx, this.unsigned);
                    approxRem = approxRes.mul(divisor);
                }

                // We know the answer can't be zero... and actually, zero would cause
                // infinite recursion since we would make no progress.
                if (approxRes.isZero())
                    approxRes = ONE;

                res = res.add(approxRes);
                rem = rem.sub(approxRem);
            }
            return res;
        };

        /**
         * Returns this Long divided by the specified. This is an alias of {@link Long#divide}.
         * @function
         * @param {!Long|number|string} divisor Divisor
         * @returns {!Long} Quotient
         */
        LongPrototype.div = LongPrototype.divide;

        /**
         * Returns this Long modulo the specified.
         * @param {!Long|number|string} divisor Divisor
         * @returns {!Long} Remainder
         */
        LongPrototype.modulo = function modulo(divisor) {
            if (!isLong(divisor))
                divisor = fromValue(divisor);

            // use wasm support if present
            if (wasm) {
                var low = (this.unsigned ? wasm.rem_u : wasm.rem_s)(this.low, this.high, divisor.low, divisor.high);
                return fromBits(low, wasm.get_high(), this.unsigned);
            }

            return this.sub(this.div(divisor).mul(divisor));
        };

        /**
         * Returns this Long modulo the specified. This is an alias of {@link Long#modulo}.
         * @function
         * @param {!Long|number|string} divisor Divisor
         * @returns {!Long} Remainder
         */
        LongPrototype.mod = LongPrototype.modulo;

        /**
         * Returns this Long modulo the specified. This is an alias of {@link Long#modulo}.
         * @function
         * @param {!Long|number|string} divisor Divisor
         * @returns {!Long} Remainder
         */
        LongPrototype.rem = LongPrototype.modulo;

        /**
         * Returns the bitwise NOT of this Long.
         * @returns {!Long}
         */
        LongPrototype.not = function not() {
            return fromBits(~this.low, ~this.high, this.unsigned);
        };

        /**
         * Returns the bitwise AND of this Long and the specified.
         * @param {!Long|number|string} other Other Long
         * @returns {!Long}
         */
        LongPrototype.and = function and(other) {
            if (!isLong(other))
                other = fromValue(other);
            return fromBits(this.low & other.low, this.high & other.high, this.unsigned);
        };

        /**
         * Returns the bitwise OR of this Long and the specified.
         * @param {!Long|number|string} other Other Long
         * @returns {!Long}
         */
        LongPrototype.or = function or(other) {
            if (!isLong(other))
                other = fromValue(other);
            return fromBits(this.low | other.low, this.high | other.high, this.unsigned);
        };

        /**
         * Returns the bitwise XOR of this Long and the given one.
         * @param {!Long|number|string} other Other Long
         * @returns {!Long}
         */
        LongPrototype.xor = function xor(other) {
            if (!isLong(other))
                other = fromValue(other);
            return fromBits(this.low ^ other.low, this.high ^ other.high, this.unsigned);
        };

        /**
         * Returns this Long with bits shifted to the left by the given amount.
         * @param {number|!Long} numBits Number of bits
         * @returns {!Long} Shifted Long
         */
        LongPrototype.shiftLeft = function shiftLeft(numBits) {
            if (isLong(numBits))
                numBits = numBits.toInt();
            if ((numBits &= 63) === 0)
                return this;
            else if (numBits < 32)
                return fromBits(this.low << numBits, (this.high << numBits) | (this.low >>> (32 - numBits)), this.unsigned);
            else
                return fromBits(0, this.low << (numBits - 32), this.unsigned);
        };

        /**
         * Returns this Long with bits shifted to the left by the given amount. This is an alias of {@link Long#shiftLeft}.
         * @function
         * @param {number|!Long} numBits Number of bits
         * @returns {!Long} Shifted Long
         */
        LongPrototype.shl = LongPrototype.shiftLeft;

        /**
         * Returns this Long with bits arithmetically shifted to the right by the given amount.
         * @param {number|!Long} numBits Number of bits
         * @returns {!Long} Shifted Long
         */
        LongPrototype.shiftRight = function shiftRight(numBits) {
            if (isLong(numBits))
                numBits = numBits.toInt();
            if ((numBits &= 63) === 0)
                return this;
            else if (numBits < 32)
                return fromBits((this.low >>> numBits) | (this.high << (32 - numBits)), this.high >> numBits, this.unsigned);
            else
                return fromBits(this.high >> (numBits - 32), this.high >= 0 ? 0 : -1, this.unsigned);
        };

        /**
         * Returns this Long with bits arithmetically shifted to the right by the given amount. This is an alias of {@link Long#shiftRight}.
         * @function
         * @param {number|!Long} numBits Number of bits
         * @returns {!Long} Shifted Long
         */
        LongPrototype.shr = LongPrototype.shiftRight;

        /**
         * Returns this Long with bits logically shifted to the right by the given amount.
         * @param {number|!Long} numBits Number of bits
         * @returns {!Long} Shifted Long
         */
        LongPrototype.shiftRightUnsigned = function shiftRightUnsigned(numBits) {
            if (isLong(numBits))
                numBits = numBits.toInt();
            numBits &= 63;
            if (numBits === 0)
                return this;
            else {
                var high = this.high;
                if (numBits < 32) {
                    var low = this.low;
                    return fromBits((low >>> numBits) | (high << (32 - numBits)), high >>> numBits, this.unsigned);
                } else if (numBits === 32)
                    return fromBits(high, 0, this.unsigned);
                else
                    return fromBits(high >>> (numBits - 32), 0, this.unsigned);
            }
        };

        /**
         * Returns this Long with bits logically shifted to the right by the given amount. This is an alias of {@link Long#shiftRightUnsigned}.
         * @function
         * @param {number|!Long} numBits Number of bits
         * @returns {!Long} Shifted Long
         */
        LongPrototype.shru = LongPrototype.shiftRightUnsigned;

        /**
         * Returns this Long with bits logically shifted to the right by the given amount. This is an alias of {@link Long#shiftRightUnsigned}.
         * @function
         * @param {number|!Long} numBits Number of bits
         * @returns {!Long} Shifted Long
         */
        LongPrototype.shr_u = LongPrototype.shiftRightUnsigned;

        /**
         * Converts this Long to signed.
         * @returns {!Long} Signed long
         */
        LongPrototype.toSigned = function toSigned() {
            if (!this.unsigned)
                return this;
            return fromBits(this.low, this.high, false);
        };

        /**
         * Converts this Long to unsigned.
         * @returns {!Long} Unsigned long
         */
        LongPrototype.toUnsigned = function toUnsigned() {
            if (this.unsigned)
                return this;
            return fromBits(this.low, this.high, true);
        };

        /**
         * Converts this Long to its byte representation.
         * @param {boolean=} le Whether little or big endian, defaults to big endian
         * @returns {!Array.<number>} Byte representation
         */
        LongPrototype.toBytes = function toBytes(le) {
            return le ? this.toBytesLE() : this.toBytesBE();
        };

        /**
         * Converts this Long to its little endian byte representation.
         * @returns {!Array.<number>} Little endian byte representation
         */
        LongPrototype.toBytesLE = function toBytesLE() {
            var hi = this.high
                , lo = this.low;
            return [lo & 0xff, lo >>> 8 & 0xff, lo >>> 16 & 0xff, lo >>> 24, hi & 0xff, hi >>> 8 & 0xff, hi >>> 16 & 0xff, hi >>> 24];
        };

        /**
         * Converts this Long to its big endian byte representation.
         * @returns {!Array.<number>} Big endian byte representation
         */
        LongPrototype.toBytesBE = function toBytesBE() {
            var hi = this.high
                , lo = this.low;
            return [hi >>> 24, hi >>> 16 & 0xff, hi >>> 8 & 0xff, hi & 0xff, lo >>> 24, lo >>> 16 & 0xff, lo >>> 8 & 0xff, lo & 0xff];
        };

        /**
         * Creates a Long from its byte representation.
         * @param {!Array.<number>} bytes Byte representation
         * @param {boolean=} unsigned Whether unsigned or not, defaults to signed
         * @param {boolean=} le Whether little or big endian, defaults to big endian
         * @returns {Long} The corresponding Long value
         */
        Long.fromBytes = function fromBytes(bytes, unsigned, le) {
            return le ? Long.fromBytesLE(bytes, unsigned) : Long.fromBytesBE(bytes, unsigned);
        };

        /**
         * Creates a Long from its little endian byte representation.
         * @param {!Array.<number>} bytes Little endian byte representation
         * @param {boolean=} unsigned Whether unsigned or not, defaults to signed
         * @returns {Long} The corresponding Long value
         */
        Long.fromBytesLE = function fromBytesLE(bytes, unsigned) {
            return new Long(bytes[0] | bytes[1] << 8 | bytes[2] << 16 | bytes[3] << 24, bytes[4] | bytes[5] << 8 | bytes[6] << 16 | bytes[7] << 24, unsigned);
        };

        /**
         * Creates a Long from its big endian byte representation.
         * @param {!Array.<number>} bytes Big endian byte representation
         * @param {boolean=} unsigned Whether unsigned or not, defaults to signed
         * @returns {Long} The corresponding Long value
         */
        Long.fromBytesBE = function fromBytesBE(bytes, unsigned) {
            return new Long(bytes[4] << 24 | bytes[5] << 16 | bytes[6] << 8 | bytes[7], bytes[0] << 24 | bytes[1] << 16 | bytes[2] << 8 | bytes[3], unsigned);
        };

    }
        , {}],
    638: [function (require, module, exports) {
        // A library of seedable RNGs implemented in Javascript.
        //
        // Usage:
        //
        // var seedrandom = require('seedrandom');
        // var random = seedrandom(1); // or any seed.
        // var x = random();       // 0 <= x < 1.  Every bit is random.
        // var x = random.quick(); // 0 <= x < 1.  32 bits of randomness.

        // alea, a 53-bit multiply-with-carry generator by Johannes Baagøe.
        // Period: ~2^116
        // Reported to pass all BigCrush tests.
        var alea = require('./lib/alea');

        // xor128, a pure xor-shift generator by George Marsaglia.
        // Period: 2^128-1.
        // Reported to fail: MatrixRank and LinearComp.
        var xor128 = require('./lib/xor128');

        // xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.
        // Period: 2^192-2^32
        // Reported to fail: CollisionOver, SimpPoker, and LinearComp.
        var xorwow = require('./lib/xorwow');

        // xorshift7, by François Panneton and Pierre L'ecuyer, takes
        // a different approach: it adds robustness by allowing more shifts
        // than Marsaglia's original three.  It is a 7-shift generator
        // with 256 bits, that passes BigCrush with no systmatic failures.
        // Period 2^256-1.
        // No systematic BigCrush failures reported.
        var xorshift7 = require('./lib/xorshift7');

        // xor4096, by Richard Brent, is a 4096-bit xor-shift with a
        // very long period that also adds a Weyl generator. It also passes
        // BigCrush with no systematic failures.  Its long period may
        // be useful if you have many generators and need to avoid
        // collisions.
        // Period: 2^4128-2^32.
        // No systematic BigCrush failures reported.
        var xor4096 = require('./lib/xor4096');

        // Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random
        // number generator derived from ChaCha, a modern stream cipher.
        // https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf
        // Period: ~2^127
        // No systematic BigCrush failures reported.
        var tychei = require('./lib/tychei');

        // The original ARC4-based prng included in this library.
        // Period: ~2^1600
        var sr = require('./seedrandom');

        sr.alea = alea;
        sr.xor128 = xor128;
        sr.xorwow = xorwow;
        sr.xorshift7 = xorshift7;
        sr.xor4096 = xor4096;
        sr.tychei = tychei;

        module.exports = sr;

    }
        , {
        "./lib/alea": 639,
        "./lib/tychei": 640,
        "./lib/xor128": 641,
        "./lib/xor4096": 642,
        "./lib/xorshift7": 643,
        "./lib/xorwow": 644,
        "./seedrandom": 645
    }],
    639: [function (require, module, exports) {
        // A port of an algorithm by Johannes Baagøe <baagoe@baagoe.com>, 2010
        // http://baagoe.com/en/RandomMusings/javascript/
        // https://github.com/nquinlan/better-random-numbers-for-javascript-mirror
        // Original work is under MIT license -

        // Copyright (C) 2010 by Johannes Baagøe <baagoe@baagoe.org>
        //
        // Permission is hereby granted, free of charge, to any person obtaining a copy
        // of this software and associated documentation files (the "Software"), to deal
        // in the Software without restriction, including without limitation the rights
        // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        // copies of the Software, and to permit persons to whom the Software is
        // furnished to do so, subject to the following conditions:
        //
        // The above copyright notice and this permission notice shall be included in
        // all copies or substantial portions of the Software.
        //
        // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
        // THE SOFTWARE.

        (function (global, module, define) {

            function Alea(seed) {
                var me = this
                    , mash = Mash();

                me.next = function () {
                    var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10;
                    // 2^-32
                    me.s0 = me.s1;
                    me.s1 = me.s2;
                    return me.s2 = t - (me.c = t | 0);
                }
                    ;

                // Apply the seeding algorithm from Baagoe.
                me.c = 1;
                me.s0 = mash(' ');
                me.s1 = mash(' ');
                me.s2 = mash(' ');
                me.s0 -= mash(seed);
                if (me.s0 < 0) {
                    me.s0 += 1;
                }
                me.s1 -= mash(seed);
                if (me.s1 < 0) {
                    me.s1 += 1;
                }
                me.s2 -= mash(seed);
                if (me.s2 < 0) {
                    me.s2 += 1;
                }
                mash = null;
            }

            function copy(f, t) {
                t.c = f.c;
                t.s0 = f.s0;
                t.s1 = f.s1;
                t.s2 = f.s2;
                return t;
            }

            function impl(seed, opts) {
                var xg = new Alea(seed)
                    , state = opts && opts.state
                    , prng = xg.next;
                prng.int32 = function () {
                    return (xg.next() * 0x100000000) | 0;
                }
                prng.double = function () {
                    return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16;
                    // 2^-53
                }
                    ;
                prng.quick = prng;
                if (state) {
                    if (typeof (state) == 'object')
                        copy(state, xg);
                    prng.state = function () {
                        return copy(xg, {});
                    }
                }
                return prng;
            }

            function Mash() {
                var n = 0xefc8249d;

                var mash = function (data) {
                    data = String(data);
                    for (var i = 0; i < data.length; i++) {
                        n += data.charCodeAt(i);
                        var h = 0.02519603282416938 * n;
                        n = h >>> 0;
                        h -= n;
                        h *= n;
                        n = h >>> 0;
                        h -= n;
                        n += h * 0x100000000;
                        // 2^32
                    }
                    return (n >>> 0) * 2.3283064365386963e-10;
                    // 2^-32
                };

                return mash;
            }

            if (module && module.exports) {
                module.exports = impl;
            } else if (define && define.amd) {
                define(function () {
                    return impl;
                });
            } else {
                this.alea = impl;
            }

        }
        )(this, (typeof module) == 'object' && module, // present in node.js
            (typeof define) == 'function' && define // present with an AMD loader
        );

    }
        , {}],
    640: [function (require, module, exports) {
        // A Javascript implementaion of the "Tyche-i" prng algorithm by
        // Samuel Neves and Filipe Araujo.
        // See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf

        (function (global, module, define) {

            function XorGen(seed) {
                var me = this
                    , strseed = '';

                // Set up generator function.
                me.next = function () {
                    var b = me.b
                        , c = me.c
                        , d = me.d
                        , a = me.a;
                    b = (b << 25) ^ (b >>> 7) ^ c;
                    c = (c - d) | 0;
                    d = (d << 24) ^ (d >>> 8) ^ a;
                    a = (a - b) | 0;
                    me.b = b = (b << 20) ^ (b >>> 12) ^ c;
                    me.c = c = (c - d) | 0;
                    me.d = (d << 16) ^ (c >>> 16) ^ a;
                    return me.a = (a - b) | 0;
                }
                    ;

                /* The following is non-inverted tyche, which has better internal
                 * bit diffusion, but which is about 25% slower than tyche-i in JS.
                me.next = function() {
                  var a = me.a, b = me.b, c = me.c, d = me.d;
                  a = (me.a + me.b | 0) >>> 0;
                  d = me.d ^ a; d = d << 16 ^ d >>> 16;
                  c = me.c + d | 0;
                  b = me.b ^ c; b = b << 12 ^ d >>> 20;
                  me.a = a = a + b | 0;
                  d = d ^ a; me.d = d = d << 8 ^ d >>> 24;
                  me.c = c = c + d | 0;
                  b = b ^ c;
                  return me.b = (b << 7 ^ b >>> 25);
                }
                */

                me.a = 0;
                me.b = 0;
                me.c = 2654435769 | 0;
                me.d = 1367130551;

                if (seed === Math.floor(seed)) {
                    // Integer seed.
                    me.a = (seed / 0x100000000) | 0;
                    me.b = seed | 0;
                } else {
                    // String seed.
                    strseed += seed;
                }

                // Mix in string seed, then discard an initial batch of 64 values.
                for (var k = 0; k < strseed.length + 20; k++) {
                    me.b ^= strseed.charCodeAt(k) | 0;
                    me.next();
                }
            }

            function copy(f, t) {
                t.a = f.a;
                t.b = f.b;
                t.c = f.c;
                t.d = f.d;
                return t;
            };
            function impl(seed, opts) {
                var xg = new XorGen(seed)
                    , state = opts && opts.state
                    , prng = function () {
                        return (xg.next() >>> 0) / 0x100000000;
                    };
                prng.double = function () {
                    do {
                        var top = xg.next() >>> 11
                            , bot = (xg.next() >>> 0) / 0x100000000
                            , result = (top + bot) / (1 << 21);
                    } while (result === 0);
                    return result;
                }
                    ;
                prng.int32 = xg.next;
                prng.quick = prng;
                if (state) {
                    if (typeof (state) == 'object')
                        copy(state, xg);
                    prng.state = function () {
                        return copy(xg, {});
                    }
                }
                return prng;
            }

            if (module && module.exports) {
                module.exports = impl;
            } else if (define && define.amd) {
                define(function () {
                    return impl;
                });
            } else {
                this.tychei = impl;
            }

        }
        )(this, (typeof module) == 'object' && module, // present in node.js
            (typeof define) == 'function' && define // present with an AMD loader
        );

    }
        , {}],
    641: [function (require, module, exports) {
        // A Javascript implementaion of the "xor128" prng algorithm by
        // George Marsaglia.  See http://www.jstatsoft.org/v08/i14/paper

        (function (global, module, define) {

            function XorGen(seed) {
                var me = this
                    , strseed = '';

                me.x = 0;
                me.y = 0;
                me.z = 0;
                me.w = 0;

                // Set up generator function.
                me.next = function () {
                    var t = me.x ^ (me.x << 11);
                    me.x = me.y;
                    me.y = me.z;
                    me.z = me.w;
                    return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);
                }
                    ;

                if (seed === (seed | 0)) {
                    // Integer seed.
                    me.x = seed;
                } else {
                    // String seed.
                    strseed += seed;
                }

                // Mix in string seed, then discard an initial batch of 64 values.
                for (var k = 0; k < strseed.length + 64; k++) {
                    me.x ^= strseed.charCodeAt(k) | 0;
                    me.next();
                }
            }

            function copy(f, t) {
                t.x = f.x;
                t.y = f.y;
                t.z = f.z;
                t.w = f.w;
                return t;
            }

            function impl(seed, opts) {
                var xg = new XorGen(seed)
                    , state = opts && opts.state
                    , prng = function () {
                        return (xg.next() >>> 0) / 0x100000000;
                    };
                prng.double = function () {
                    do {
                        var top = xg.next() >>> 11
                            , bot = (xg.next() >>> 0) / 0x100000000
                            , result = (top + bot) / (1 << 21);
                    } while (result === 0);
                    return result;
                }
                    ;
                prng.int32 = xg.next;
                prng.quick = prng;
                if (state) {
                    if (typeof (state) == 'object')
                        copy(state, xg);
                    prng.state = function () {
                        return copy(xg, {});
                    }
                }
                return prng;
            }

            if (module && module.exports) {
                module.exports = impl;
            } else if (define && define.amd) {
                define(function () {
                    return impl;
                });
            } else {
                this.xor128 = impl;
            }

        }
        )(this, (typeof module) == 'object' && module, // present in node.js
            (typeof define) == 'function' && define // present with an AMD loader
        );

    }
        , {}],
    642: [function (require, module, exports) {
        // A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.
        //
        // This fast non-cryptographic random number generator is designed for
        // use in Monte-Carlo algorithms. It combines a long-period xorshift
        // generator with a Weyl generator, and it passes all common batteries
        // of stasticial tests for randomness while consuming only a few nanoseconds
        // for each prng generated.  For background on the generator, see Brent's
        // paper: "Some long-period random number generators using shifts and xors."
        // http://arxiv.org/pdf/1004.3115v1.pdf
        //
        // Usage:
        //
        // var xor4096 = require('xor4096');
        // random = xor4096(1);                        // Seed with int32 or string.
        // assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.
        // assert.equal(random.int32(), 1806534897);   // signed int32, 32 bits.
        //
        // For nonzero numeric keys, this impelementation provides a sequence
        // identical to that by Brent's xorgens 3 implementaion in C.  This
        // implementation also provides for initalizing the generator with
        // string seeds, or for saving and restoring the state of the generator.
        //
        // On Chrome, this prng benchmarks about 2.1 times slower than
        // Javascript's built-in Math.random().

        (function (global, module, define) {

            function XorGen(seed) {
                var me = this;

                // Set up generator function.
                me.next = function () {
                    var w = me.w, X = me.X, i = me.i, t, v;
                    // Update Weyl generator.
                    me.w = w = (w + 0x61c88647) | 0;
                    // Update xor generator.
                    v = X[(i + 34) & 127];
                    t = X[i = ((i + 1) & 127)];
                    v ^= v << 13;
                    t ^= t << 17;
                    v ^= v >>> 15;
                    t ^= t >>> 12;
                    // Update Xor generator array state.
                    v = X[i] = v ^ t;
                    me.i = i;
                    // Result is the combination.
                    return (v + (w ^ (w >>> 16))) | 0;
                }
                    ;

                function init(me, seed) {
                    var t, v, i, j, w, X = [], limit = 128;
                    if (seed === (seed | 0)) {
                        // Numeric seeds initialize v, which is used to generates X.
                        v = seed;
                        seed = null;
                    } else {
                        // String seeds are mixed into v and X one character at a time.
                        seed = seed + '\0';
                        v = 0;
                        limit = Math.max(limit, seed.length);
                    }
                    // Initialize circular array and weyl value.
                    for (i = 0,
                        j = -32; j < limit; ++j) {
                        // Put the unicode characters into the array, and shuffle them.
                        if (seed)
                            v ^= seed.charCodeAt((j + 32) % seed.length);
                        // After 32 shuffles, take v as the starting w value.
                        if (j === 0)
                            w = v;
                        v ^= v << 10;
                        v ^= v >>> 15;
                        v ^= v << 4;
                        v ^= v >>> 13;
                        if (j >= 0) {
                            w = (w + 0x61c88647) | 0;
                            // Weyl.
                            t = (X[j & 127] ^= (v + w));
                            // Combine xor and weyl to init array.
                            i = (0 == t) ? i + 1 : 0;
                            // Count zeroes.
                        }
                    }
                    // We have detected all zeroes; make the key nonzero.
                    if (i >= 128) {
                        X[(seed && seed.length || 0) & 127] = -1;
                    }
                    // Run the generator 512 times to further mix the state before using it.
                    // Factoring this as a function slows the main generator, so it is just
                    // unrolled here.  The weyl generator is not advanced while warming up.
                    i = 127;
                    for (j = 4 * 128; j > 0; --j) {
                        v = X[(i + 34) & 127];
                        t = X[i = ((i + 1) & 127)];
                        v ^= v << 13;
                        t ^= t << 17;
                        v ^= v >>> 15;
                        t ^= t >>> 12;
                        X[i] = v ^ t;
                    }
                    // Storing state as object members is faster than using closure variables.
                    me.w = w;
                    me.X = X;
                    me.i = i;
                }

                init(me, seed);
            }

            function copy(f, t) {
                t.i = f.i;
                t.w = f.w;
                t.X = f.X.slice();
                return t;
            };
            function impl(seed, opts) {
                if (seed == null)
                    seed = +(new Date);
                var xg = new XorGen(seed)
                    , state = opts && opts.state
                    , prng = function () {
                        return (xg.next() >>> 0) / 0x100000000;
                    };
                prng.double = function () {
                    do {
                        var top = xg.next() >>> 11
                            , bot = (xg.next() >>> 0) / 0x100000000
                            , result = (top + bot) / (1 << 21);
                    } while (result === 0);
                    return result;
                }
                    ;
                prng.int32 = xg.next;
                prng.quick = prng;
                if (state) {
                    if (state.X)
                        copy(state, xg);
                    prng.state = function () {
                        return copy(xg, {});
                    }
                }
                return prng;
            }

            if (module && module.exports) {
                module.exports = impl;
            } else if (define && define.amd) {
                define(function () {
                    return impl;
                });
            } else {
                this.xor4096 = impl;
            }

        }
        )(this, // window object or global
            (typeof module) == 'object' && module, // present in node.js
            (typeof define) == 'function' && define // present with an AMD loader
        );

    }
        , {}],
    643: [function (require, module, exports) {
        // A Javascript implementaion of the "xorshift7" algorithm by
        // François Panneton and Pierre L'ecuyer:
        // "On the Xorgshift Random Number Generators"
        // http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf

        (function (global, module, define) {

            function XorGen(seed) {
                var me = this;

                // Set up generator function.
                me.next = function () {
                    // Update xor generator.
                    var X = me.x, i = me.i, t, v, w;
                    t = X[i];
                    t ^= (t >>> 7);
                    v = t ^ (t << 24);
                    t = X[(i + 1) & 7];
                    v ^= t ^ (t >>> 10);
                    t = X[(i + 3) & 7];
                    v ^= t ^ (t >>> 3);
                    t = X[(i + 4) & 7];
                    v ^= t ^ (t << 7);
                    t = X[(i + 7) & 7];
                    t = t ^ (t << 13);
                    v ^= t ^ (t << 9);
                    X[i] = v;
                    me.i = (i + 1) & 7;
                    return v;
                }
                    ;

                function init(me, seed) {
                    var j, w, X = [];

                    if (seed === (seed | 0)) {
                        // Seed state array using a 32-bit integer.
                        w = X[0] = seed;
                    } else {
                        // Seed state using a string.
                        seed = '' + seed;
                        for (j = 0; j < seed.length; ++j) {
                            X[j & 7] = (X[j & 7] << 15) ^ (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);
                        }
                    }
                    // Enforce an array length of 8, not all zeroes.
                    while (X.length < 8)
                        X.push(0);
                    for (j = 0; j < 8 && X[j] === 0; ++j)
                        ;
                    if (j == 8)
                        w = X[7] = -1;
                    else
                        w = X[j];

                    me.x = X;
                    me.i = 0;

                    // Discard an initial 256 values.
                    for (j = 256; j > 0; --j) {
                        me.next();
                    }
                }

                init(me, seed);
            }

            function copy(f, t) {
                t.x = f.x.slice();
                t.i = f.i;
                return t;
            }

            function impl(seed, opts) {
                if (seed == null)
                    seed = +(new Date);
                var xg = new XorGen(seed)
                    , state = opts && opts.state
                    , prng = function () {
                        return (xg.next() >>> 0) / 0x100000000;
                    };
                prng.double = function () {
                    do {
                        var top = xg.next() >>> 11
                            , bot = (xg.next() >>> 0) / 0x100000000
                            , result = (top + bot) / (1 << 21);
                    } while (result === 0);
                    return result;
                }
                    ;
                prng.int32 = xg.next;
                prng.quick = prng;
                if (state) {
                    if (state.x)
                        copy(state, xg);
                    prng.state = function () {
                        return copy(xg, {});
                    }
                }
                return prng;
            }

            if (module && module.exports) {
                module.exports = impl;
            } else if (define && define.amd) {
                define(function () {
                    return impl;
                });
            } else {
                this.xorshift7 = impl;
            }

        }
        )(this, (typeof module) == 'object' && module, // present in node.js
            (typeof define) == 'function' && define // present with an AMD loader
        );

    }
        , {}],
    644: [function (require, module, exports) {
        // A Javascript implementaion of the "xorwow" prng algorithm by
        // George Marsaglia.  See http://www.jstatsoft.org/v08/i14/paper

        (function (global, module, define) {

            function XorGen(seed) {
                var me = this
                    , strseed = '';

                // Set up generator function.
                me.next = function () {
                    var t = (me.x ^ (me.x >>> 2));
                    me.x = me.y;
                    me.y = me.z;
                    me.z = me.w;
                    me.w = me.v;
                    return (me.d = (me.d + 362437 | 0)) + (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;
                }
                    ;

                me.x = 0;
                me.y = 0;
                me.z = 0;
                me.w = 0;
                me.v = 0;

                if (seed === (seed | 0)) {
                    // Integer seed.
                    me.x = seed;
                } else {
                    // String seed.
                    strseed += seed;
                }

                // Mix in string seed, then discard an initial batch of 64 values.
                for (var k = 0; k < strseed.length + 64; k++) {
                    me.x ^= strseed.charCodeAt(k) | 0;
                    if (k == strseed.length) {
                        me.d = me.x << 10 ^ me.x >>> 4;
                    }
                    me.next();
                }
            }

            function copy(f, t) {
                t.x = f.x;
                t.y = f.y;
                t.z = f.z;
                t.w = f.w;
                t.v = f.v;
                t.d = f.d;
                return t;
            }

            function impl(seed, opts) {
                var xg = new XorGen(seed)
                    , state = opts && opts.state
                    , prng = function () {
                        return (xg.next() >>> 0) / 0x100000000;
                    };
                prng.double = function () {
                    do {
                        var top = xg.next() >>> 11
                            , bot = (xg.next() >>> 0) / 0x100000000
                            , result = (top + bot) / (1 << 21);
                    } while (result === 0);
                    return result;
                }
                    ;
                prng.int32 = xg.next;
                prng.quick = prng;
                if (state) {
                    if (typeof (state) == 'object')
                        copy(state, xg);
                    prng.state = function () {
                        return copy(xg, {});
                    }
                }
                return prng;
            }

            if (module && module.exports) {
                module.exports = impl;
            } else if (define && define.amd) {
                define(function () {
                    return impl;
                });
            } else {
                this.xorwow = impl;
            }

        }
        )(this, (typeof module) == 'object' && module, // present in node.js
            (typeof define) == 'function' && define // present with an AMD loader
        );

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

        /*
        Copyright 2019 David Bau.
        
        Permission is hereby granted, free of charge, to any person obtaining
        a copy of this software and associated documentation files (the
        "Software"), to deal in the Software without restriction, including
        without limitation the rights to use, copy, modify, merge, publish,
        distribute, sublicense, and/or sell copies of the Software, and to
        permit persons to whom the Software is furnished to do so, subject to
        the following conditions:
        
        The above copyright notice and this permission notice shall be
        included in all copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
        EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
        MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
        IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
        CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
        TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
        SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
        
        */

        (function (global, pool, math) {
            //
            // The following constants are related to IEEE 754 limits.
            //

            var width = 256, // each RC4 output is 0 <= x < 256
                chunks = 6, // at least six RC4 outputs for each double
                digits = 52, // there are 52 significant digits in a double
                rngname = 'random', // rngname: name for Math.random and Math.seedrandom
                startdenom = math.pow(width, chunks), significance = math.pow(2, digits), overflow = significance * 2, mask = width - 1, nodecrypto;
            // node.js crypto module, initialized at the bottom.

            //
            // seedrandom()
            // This is the seedrandom function described above.
            //
            function seedrandom(seed, options, callback) {
                var key = [];
                options = options == true ? {
                    entropy: true
                } : options || {};

                // Flatten the seed string or build one from local entropy if needed.
                var shortseed = mixkey(flatten(options.entropy ? [seed, tostring(pool)] : seed == null ? autoseed() : seed, 3), key);

                // Use the seed to initialize an ARC4 generator.
                var arc4 = new ARC4(key);

                // This function returns a random double in [0, 1) that contains
                // randomness in every bit of the mantissa of the IEEE 754 value.
                var prng = function () {
                    var n = arc4.g(chunks)
                        , // Start with a numerator n < 2 ^ 48
                        d = startdenom
                        , //   and denominator d = 2 ^ 48.
                        x = 0;
                    //   and no 'extra last byte'.
                    while (n < significance) {
                        // Fill up all significant digits by
                        n = (n + x) * width;
                        //   shifting numerator and
                        d *= width;
                        //   denominator and generating a
                        x = arc4.g(1);
                        //   new least-significant-byte.
                    }

                    while (n >= overflow) {
                        // To avoid rounding up, before adding
                        n /= 2;
                        //   last byte, shift everything
                        d /= 2;
                        //   right using integer math until
                        x >>>= 1;
                        //   we have exactly the desired bits.
                    }

                    return (n + x) / d;
                    // Form the number within [0, 1).
                };

                prng.int32 = function () {
                    return arc4.g(4) | 0;
                }
                    ;
                prng.quick = function () {
                    return arc4.g(4) / 0x100000000;
                }
                    ;
                prng.double = prng;

                // Mix the randomness into accumulated entropy.
                mixkey(tostring(arc4.S), pool);

                // Calling convention: what to return as a function of prng, seed, is_math.
                return (options.pass || callback || function (prng, seed, is_math_call, state) {
                    if (state) {
                        // Load the arc4 state from the given state if it has an S array.
                        if (state.S) {
                            copy(state, arc4);
                        }
                        // Only provide the .state method if requested via options.state.
                        prng.state = function () {
                            return copy(arc4, {});
                        }
                            ;
                    }

                    // If called as a method of Math (Math.seedrandom()), mutate
                    // Math.random because that is how seedrandom.js has worked since v1.0.
                    if (is_math_call) {
                        math[rngname] = prng;
                        return seed;
                    }
                    // Otherwise, it is a newer calling convention, so return the
                    // prng directly.
                    else
                        return prng;
                }
                )(prng, shortseed, 'global' in options ? options.global : this == math, options.state);
            }

            //
            // ARC4
            //
            // An ARC4 implementation.  The constructor takes a key in the form of
            // an array of at most (width) integers that should be 0 <= x < (width).
            //
            // The g(count) method returns a pseudorandom integer that concatenates
            // the next (count) outputs from ARC4.  Its return value is a number x
            // that is in the range 0 <= x < (width ^ count).
            //
            function ARC4(key) {
                var t, keylen = key.length, me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];

                // The empty key [] is treated as [0].
                if (!keylen) {
                    key = [keylen++];
                }

                // Set up S using the standard key scheduling algorithm.
                while (i < width) {
                    s[i] = i++;
                }
                for (i = 0; i < width; i++) {
                    s[i] = s[j = mask & j + key[i % keylen] + (t = s[i])];
                    s[j] = t;
                }

                // The "g" method returns the next (count) outputs as one number.
                (me.g = function (count) {
                    // Using instance members instead of closure state nearly doubles speed.
                    var t, r = 0, i = me.i, j = me.j, s = me.S;
                    while (count--) {
                        t = s[i = mask & i + 1];
                        r = r * width + s[mask & (s[i] = s[j = mask & j + t]) + (s[j] = t)];
                    }
                    me.i = i;
                    me.j = j;
                    return r;
                    // For robust unpredictability, the function call below automatically
                    // discards an initial batch of values.  This is called RC4-drop[256].
                    // See http://google.com/search?q=rsa+fluhrer+response&btnI
                }
                )(width);
            }

            //
            // copy()
            // Copies internal state of ARC4 to or from a plain object.
            //
            function copy(f, t) {
                t.i = f.i;
                t.j = f.j;
                t.S = f.S.slice();
                return t;
            };
            //
            // flatten()
            // Converts an object tree to nested arrays of strings.
            //
            function flatten(obj, depth) {
                var result = [], typ = typeof obj, prop;
                if (depth && typ == 'object') {
                    for (prop in obj) {
                        try {
                            result.push(flatten(obj[prop], depth - 1));
                        } catch (e) { }
                    }
                }
                return result.length ? result : typ == 'string' ? obj : obj + '\0';
            }

            //
            // mixkey()
            // Mixes a string seed into a key that is an array of integers, and
            // returns a shortened string seed that is equivalent to the result key.
            //
            function mixkey(seed, key) {
                var stringseed = seed + '', smear, j = 0;
                while (j < stringseed.length) {
                    key[mask & j] = mask & (smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++);
                }
                return tostring(key);
            }

            //
            // autoseed()
            // Returns an object for autoseeding, using window.crypto and Node crypto
            // module if available.
            //
            function autoseed() {
                try {
                    var out;
                    if (nodecrypto && (out = nodecrypto.randomBytes)) {
                        // The use of 'out' to remember randomBytes makes tight minified code.
                        out = out(width);
                    } else {
                        out = new Uint8Array(width);
                        (global.crypto || global.msCrypto).getRandomValues(out);
                    }
                    return tostring(out);
                } catch (e) {
                    var browser = global.navigator
                        , plugins = browser && browser.plugins;
                    return [+new Date(), global, plugins, global.screen, tostring(pool)];
                }
            }

            //
            // tostring()
            // Converts an array of charcodes to a string
            //
            function tostring(a) {
                return String.fromCharCode.apply(0, a);
            }

            //
            // When seedrandom.js is loaded, we immediately mix a few bits
            // from the built-in RNG into the entropy pool.  Because we do
            // not want to interfere with deterministic PRNG state later,
            // seedrandom will not call math.random on its own again after
            // initialization.
            //
            mixkey(math.random(), pool);

            //
            // Nodejs and AMD support: export the implementation as a module using
            // either convention.
            //
            if (typeof module == 'object' && module.exports) {
                module.exports = seedrandom;
                // When in node.js, try using crypto package for autoseeding.
                try {
                    nodecrypto = require('crypto');
                } catch (ex) { }
            } else if (typeof define == 'function' && define.amd) {
                define(function () {
                    return seedrandom;
                });
            } else {
                // When included as a plain script, set up Math.seedrandom global.
                math['seed' + rngname] = seedrandom;
            }

            // End anonymous scope, and pass initial values.
        }
        )(// global: `self` in browsers (including strict mode and web workers),
            // otherwise `this` in Node and other environments
            typeof self !== 'undefined' ? self : void 0, [], // pool: entropy pool starts empty
            Math // math: package containing random, pow, and seedrandom
        );

    }
        , {
        "crypto": 636
    }],
    646: [function (require, module, exports) {
        'use strict'

        exports.byteLength = byteLength
        exports.toByteArray = toByteArray
        exports.fromByteArray = fromByteArray

        var lookup = []
        var revLookup = []
        var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array

        var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
        for (var i = 0, len = code.length; i < len; ++i) {
            lookup[i] = code[i]
            revLookup[code.charCodeAt(i)] = i
        }

        // Support decoding URL-safe base64 strings, as Node.js does.
        // See: https://en.wikipedia.org/wiki/Base64#URL_applications
        revLookup['-'.charCodeAt(0)] = 62
        revLookup['_'.charCodeAt(0)] = 63

        function getLens(b64) {
            var len = b64.length

            if (len % 4 > 0) {
                throw new Error('Invalid string. Length must be a multiple of 4')
            }

            // Trim off extra bytes after placeholder bytes are found
            // See: https://github.com/beatgammit/base64-js/issues/42
            var validLen = b64.indexOf('=')
            if (validLen === -1)
                validLen = len

            var placeHoldersLen = validLen === len ? 0 : 4 - (validLen % 4)

            return [validLen, placeHoldersLen]
        }

        // base64 is 4/3 + up to two characters of the original data
        function byteLength(b64) {
            var lens = getLens(b64)
            var validLen = lens[0]
            var placeHoldersLen = lens[1]
            return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen
        }

        function _byteLength(b64, validLen, placeHoldersLen) {
            return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen
        }

        function toByteArray(b64) {
            var tmp
            var lens = getLens(b64)
            var validLen = lens[0]
            var placeHoldersLen = lens[1]

            var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))

            var curByte = 0

            // if there are placeholders, only get up to the last complete 4 chars
            var len = placeHoldersLen > 0 ? validLen - 4 : validLen

            var i
            for (i = 0; i < len; i += 4) {
                tmp = (revLookup[b64.charCodeAt(i)] << 18) | (revLookup[b64.charCodeAt(i + 1)] << 12) | (revLookup[b64.charCodeAt(i + 2)] << 6) | revLookup[b64.charCodeAt(i + 3)]
                arr[curByte++] = (tmp >> 16) & 0xFF
                arr[curByte++] = (tmp >> 8) & 0xFF
                arr[curByte++] = tmp & 0xFF
            }

            if (placeHoldersLen === 2) {
                tmp = (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4)
                arr[curByte++] = tmp & 0xFF
            }

            if (placeHoldersLen === 1) {
                tmp = (revLookup[b64.charCodeAt(i)] << 10) | (revLookup[b64.charCodeAt(i + 1)] << 4) | (revLookup[b64.charCodeAt(i + 2)] >> 2)
                arr[curByte++] = (tmp >> 8) & 0xFF
                arr[curByte++] = tmp & 0xFF
            }

            return arr
        }

        function tripletToBase64(num) {
            return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F]
        }

        function encodeChunk(uint8, start, end) {
            var tmp
            var output = []
            for (var i = start; i < end; i += 3) {
                tmp = ((uint8[i] << 16) & 0xFF0000) + ((uint8[i + 1] << 8) & 0xFF00) + (uint8[i + 2] & 0xFF)
                output.push(tripletToBase64(tmp))
            }
            return output.join('')
        }

        function fromByteArray(uint8) {
            var tmp
            var len = uint8.length
            var extraBytes = len % 3
            // if we have 1 byte left, pad 2 bytes
            var parts = []
            var maxChunkLength = 16383
            // must be multiple of 3

            // go through the array every three bytes, we'll deal with trailing stuff later
            for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {
                parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))
            }

            // pad the end with zeros, but make sure to not forget the extra bytes
            if (extraBytes === 1) {
                tmp = uint8[len - 1]
                parts.push(lookup[tmp >> 2] + lookup[(tmp << 4) & 0x3F] + '==')
            } else if (extraBytes === 2) {
                tmp = (uint8[len - 2] << 8) + uint8[len - 1]
                parts.push(lookup[tmp >> 10] + lookup[(tmp >> 4) & 0x3F] + lookup[(tmp << 2) & 0x3F] + '=')
            }

            return parts.join('')
        }

    }
        , {}],
    647: [function (require, module, exports) {
        (function (Buffer) {
            (function () {
                /*!
                 * The buffer module from node.js, for the browser.
                 *
                 * @author   Feross Aboukhadijeh <https://feross.org>
                 * @license  MIT
                 */
                /* eslint-disable no-proto */

                'use strict'

                var base64 = require('base64-js')
                var ieee754 = require('ieee754')

                exports.Buffer = Buffer
                exports.SlowBuffer = SlowBuffer
                exports.INSPECT_MAX_BYTES = 50

                var K_MAX_LENGTH = 0x7fffffff
                exports.kMaxLength = K_MAX_LENGTH

                /**
                 * If `Buffer.TYPED_ARRAY_SUPPORT`:
                 *   === true    Use Uint8Array implementation (fastest)
                 *   === false   Print warning and recommend using `buffer` v4.x which has an Object
                 *               implementation (most compatible, even IE6)
                 *
                 * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,
                 * Opera 11.6+, iOS 4.2+.
                 *
                 * We report that the browser does not support typed arrays if the are not subclassable
                 * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`
                 * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support
                 * for __proto__ and has a buggy typed array implementation.
                 */
                Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport()

                if (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' && typeof console.error === 'function') {
                    console.error('This browser lacks typed array (Uint8Array) support which is required by ' + '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.')
                }

                function typedArraySupport() {
                    // Can typed array instances can be augmented?
                    try {
                        var arr = new Uint8Array(1)
                        arr.__proto__ = {
                            __proto__: Uint8Array.prototype,
                            foo: function () {
                                return 42
                            }
                        }
                        return arr.foo() === 42
                    } catch (e) {
                        return false
                    }
                }

                Object.defineProperty(Buffer.prototype, 'parent', {
                    enumerable: true,
                    get: function () {
                        if (!Buffer.isBuffer(this))
                            return undefined
                        return this.buffer
                    }
                })

                Object.defineProperty(Buffer.prototype, 'offset', {
                    enumerable: true,
                    get: function () {
                        if (!Buffer.isBuffer(this))
                            return undefined
                        return this.byteOffset
                    }
                })

                function createBuffer(length) {
                    if (length > K_MAX_LENGTH) {
                        throw new RangeError('The value "' + length + '" is invalid for option "size"')
                    }
                    // Return an augmented `Uint8Array` instance
                    var buf = new Uint8Array(length)
                    buf.__proto__ = Buffer.prototype
                    return buf
                }

                /**
                 * The Buffer constructor returns instances of `Uint8Array` that have their
                 * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of
                 * `Uint8Array`, so the returned instances will have all the node `Buffer` methods
                 * and the `Uint8Array` methods. Square bracket notation works as expected -- it
                 * returns a single octet.
                 *
                 * The `Uint8Array` prototype remains unmodified.
                 */

                function Buffer(arg, encodingOrOffset, length) {
                    // Common case.
                    if (typeof arg === 'number') {
                        if (typeof encodingOrOffset === 'string') {
                            throw new TypeError('The "string" argument must be of type string. Received type number')
                        }
                        return allocUnsafe(arg)
                    }
                    return from(arg, encodingOrOffset, length)
                }

                // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97
                if (typeof Symbol !== 'undefined' && Symbol.species != null && Buffer[Symbol.species] === Buffer) {
                    Object.defineProperty(Buffer, Symbol.species, {
                        value: null,
                        configurable: true,
                        enumerable: false,
                        writable: false
                    })
                }

                Buffer.poolSize = 8192
                // not used by this implementation

                function from(value, encodingOrOffset, length) {
                    if (typeof value === 'string') {
                        return fromString(value, encodingOrOffset)
                    }

                    if (ArrayBuffer.isView(value)) {
                        return fromArrayLike(value)
                    }

                    if (value == null) {
                        throw TypeError('The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' + 'or Array-like Object. Received type ' + (typeof value))
                    }

                    if (isInstance(value, ArrayBuffer) || (value && isInstance(value.buffer, ArrayBuffer))) {
                        return fromArrayBuffer(value, encodingOrOffset, length)
                    }

                    if (typeof value === 'number') {
                        throw new TypeError('The "value" argument must not be of type number. Received type number')
                    }

                    var valueOf = value.valueOf && value.valueOf()
                    if (valueOf != null && valueOf !== value) {
                        return Buffer.from(valueOf, encodingOrOffset, length)
                    }

                    var b = fromObject(value)
                    if (b)
                        return b

                    if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null && typeof value[Symbol.toPrimitive] === 'function') {
                        return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)
                    }

                    throw new TypeError('The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' + 'or Array-like Object. Received type ' + (typeof value))
                }

                /**
                 * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError
                 * if value is a number.
                 * Buffer.from(str[, encoding])
                 * Buffer.from(array)
                 * Buffer.from(buffer)
                 * Buffer.from(arrayBuffer[, byteOffset[, length]])
                 **/
                Buffer.from = function (value, encodingOrOffset, length) {
                    return from(value, encodingOrOffset, length)
                }

                // Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:
                // https://github.com/feross/buffer/pull/148
                Buffer.prototype.__proto__ = Uint8Array.prototype
                Buffer.__proto__ = Uint8Array

                function assertSize(size) {
                    if (typeof size !== 'number') {
                        throw new TypeError('"size" argument must be of type number')
                    } else if (size < 0) {
                        throw new RangeError('The value "' + size + '" is invalid for option "size"')
                    }
                }

                function alloc(size, fill, encoding) {
                    assertSize(size)
                    if (size <= 0) {
                        return createBuffer(size)
                    }
                    if (fill !== undefined) {
                        // Only pay attention to encoding if it's a string. This
                        // prevents accidentally sending in a number that would
                        // be interpretted as a start offset.
                        return typeof encoding === 'string' ? createBuffer(size).fill(fill, encoding) : createBuffer(size).fill(fill)
                    }
                    return createBuffer(size)
                }

                /**
                 * Creates a new filled Buffer instance.
                 * alloc(size[, fill[, encoding]])
                 **/
                Buffer.alloc = function (size, fill, encoding) {
                    return alloc(size, fill, encoding)
                }

                function allocUnsafe(size) {
                    assertSize(size)
                    return createBuffer(size < 0 ? 0 : checked(size) | 0)
                }

                /**
                 * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.
                 * */
                Buffer.allocUnsafe = function (size) {
                    return allocUnsafe(size)
                }
                /**
                 * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.
                 */
                Buffer.allocUnsafeSlow = function (size) {
                    return allocUnsafe(size)
                }

                function fromString(string, encoding) {
                    if (typeof encoding !== 'string' || encoding === '') {
                        encoding = 'utf8'
                    }

                    if (!Buffer.isEncoding(encoding)) {
                        throw new TypeError('Unknown encoding: ' + encoding)
                    }

                    var length = byteLength(string, encoding) | 0
                    var buf = createBuffer(length)

                    var actual = buf.write(string, encoding)

                    if (actual !== length) {
                        // Writing a hex string, for example, that contains invalid characters will
                        // cause everything after the first invalid character to be ignored. (e.g.
                        // 'abxxcd' will be treated as 'ab')
                        buf = buf.slice(0, actual)
                    }

                    return buf
                }

                function fromArrayLike(array) {
                    var length = array.length < 0 ? 0 : checked(array.length) | 0
                    var buf = createBuffer(length)
                    for (var i = 0; i < length; i += 1) {
                        buf[i] = array[i] & 255
                    }
                    return buf
                }

                function fromArrayBuffer(array, byteOffset, length) {
                    if (byteOffset < 0 || array.byteLength < byteOffset) {
                        throw new RangeError('"offset" is outside of buffer bounds')
                    }

                    if (array.byteLength < byteOffset + (length || 0)) {
                        throw new RangeError('"length" is outside of buffer bounds')
                    }

                    var buf
                    if (byteOffset === undefined && length === undefined) {
                        buf = new Uint8Array(array)
                    } else if (length === undefined) {
                        buf = new Uint8Array(array, byteOffset)
                    } else {
                        buf = new Uint8Array(array, byteOffset, length)
                    }

                    // Return an augmented `Uint8Array` instance
                    buf.__proto__ = Buffer.prototype
                    return buf
                }

                function fromObject(obj) {
                    if (Buffer.isBuffer(obj)) {
                        var len = checked(obj.length) | 0
                        var buf = createBuffer(len)

                        if (buf.length === 0) {
                            return buf
                        }

                        obj.copy(buf, 0, 0, len)
                        return buf
                    }

                    if (obj.length !== undefined) {
                        if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {
                            return createBuffer(0)
                        }
                        return fromArrayLike(obj)
                    }

                    if (obj.type === 'Buffer' && Array.isArray(obj.data)) {
                        return fromArrayLike(obj.data)
                    }
                }

                function checked(length) {
                    // Note: cannot use `length < K_MAX_LENGTH` here because that fails when
                    // length is NaN (which is otherwise coerced to zero.)
                    if (length >= K_MAX_LENGTH) {
                        throw new RangeError('Attempt to allocate Buffer larger than maximum ' + 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')
                    }
                    return length | 0
                }

                function SlowBuffer(length) {
                    if (+length != length) {
                        // eslint-disable-line eqeqeq
                        length = 0
                    }
                    return Buffer.alloc(+length)
                }

                Buffer.isBuffer = function isBuffer(b) {
                    return b != null && b._isBuffer === true && b !== Buffer.prototype
                    // so Buffer.isBuffer(Buffer.prototype) will be false
                }

                Buffer.compare = function compare(a, b) {
                    if (isInstance(a, Uint8Array))
                        a = Buffer.from(a, a.offset, a.byteLength)
                    if (isInstance(b, Uint8Array))
                        b = Buffer.from(b, b.offset, b.byteLength)
                    if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {
                        throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array')
                    }

                    if (a === b)
                        return 0

                    var x = a.length
                    var y = b.length

                    for (var i = 0, len = Math.min(x, y); i < len; ++i) {
                        if (a[i] !== b[i]) {
                            x = a[i]
                            y = b[i]
                            break
                        }
                    }

                    if (x < y)
                        return -1
                    if (y < x)
                        return 1
                    return 0
                }

                Buffer.isEncoding = function isEncoding(encoding) {
                    switch (String(encoding).toLowerCase()) {
                        case 'hex':
                        case 'utf8':
                        case 'utf-8':
                        case 'ascii':
                        case 'latin1':
                        case 'binary':
                        case 'base64':
                        case 'ucs2':
                        case 'ucs-2':
                        case 'utf16le':
                        case 'utf-16le':
                            return true
                        default:
                            return false
                    }
                }

                Buffer.concat = function concat(list, length) {
                    if (!Array.isArray(list)) {
                        throw new TypeError('"list" argument must be an Array of Buffers')
                    }

                    if (list.length === 0) {
                        return Buffer.alloc(0)
                    }

                    var i
                    if (length === undefined) {
                        length = 0
                        for (i = 0; i < list.length; ++i) {
                            length += list[i].length
                        }
                    }

                    var buffer = Buffer.allocUnsafe(length)
                    var pos = 0
                    for (i = 0; i < list.length; ++i) {
                        var buf = list[i]
                        if (isInstance(buf, Uint8Array)) {
                            buf = Buffer.from(buf)
                        }
                        if (!Buffer.isBuffer(buf)) {
                            throw new TypeError('"list" argument must be an Array of Buffers')
                        }
                        buf.copy(buffer, pos)
                        pos += buf.length
                    }
                    return buffer
                }

                function byteLength(string, encoding) {
                    if (Buffer.isBuffer(string)) {
                        return string.length
                    }
                    if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {
                        return string.byteLength
                    }
                    if (typeof string !== 'string') {
                        throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. ' + 'Received type ' + typeof string)
                    }

                    var len = string.length
                    var mustMatch = (arguments.length > 2 && arguments[2] === true)
                    if (!mustMatch && len === 0)
                        return 0

                    // Use a for loop to avoid recursion
                    var loweredCase = false
                    for (; ;) {
                        switch (encoding) {
                            case 'ascii':
                            case 'latin1':
                            case 'binary':
                                return len
                            case 'utf8':
                            case 'utf-8':
                                return utf8ToBytes(string).length
                            case 'ucs2':
                            case 'ucs-2':
                            case 'utf16le':
                            case 'utf-16le':
                                return len * 2
                            case 'hex':
                                return len >>> 1
                            case 'base64':
                                return base64ToBytes(string).length
                            default:
                                if (loweredCase) {
                                    return mustMatch ? -1 : utf8ToBytes(string).length
                                    // assume utf8
                                }
                                encoding = ('' + encoding).toLowerCase()
                                loweredCase = true
                        }
                    }
                }
                Buffer.byteLength = byteLength

                function slowToString(encoding, start, end) {
                    var loweredCase = false

                    // No need to verify that "this.length <= MAX_UINT32" since it's a read-only
                    // property of a typed array.

                    // This behaves neither like String nor Uint8Array in that we set start/end
                    // to their upper/lower bounds if the value passed is out of range.
                    // undefined is handled specially as per ECMA-262 6th Edition,
                    // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.
                    if (start === undefined || start < 0) {
                        start = 0
                    }
                    // Return early if start > this.length. Done here to prevent potential uint32
                    // coercion fail below.
                    if (start > this.length) {
                        return ''
                    }

                    if (end === undefined || end > this.length) {
                        end = this.length
                    }

                    if (end <= 0) {
                        return ''
                    }

                    // Force coersion to uint32. This will also coerce falsey/NaN values to 0.
                    end >>>= 0
                    start >>>= 0

                    if (end <= start) {
                        return ''
                    }

                    if (!encoding)
                        encoding = 'utf8'

                    while (true) {
                        switch (encoding) {
                            case 'hex':
                                return hexSlice(this, start, end)

                            case 'utf8':
                            case 'utf-8':
                                return utf8Slice(this, start, end)

                            case 'ascii':
                                return asciiSlice(this, start, end)

                            case 'latin1':
                            case 'binary':
                                return latin1Slice(this, start, end)

                            case 'base64':
                                return base64Slice(this, start, end)

                            case 'ucs2':
                            case 'ucs-2':
                            case 'utf16le':
                            case 'utf-16le':
                                return utf16leSlice(this, start, end)

                            default:
                                if (loweredCase)
                                    throw new TypeError('Unknown encoding: ' + encoding)
                                encoding = (encoding + '').toLowerCase()
                                loweredCase = true
                        }
                    }
                }

                // This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)
                // to detect a Buffer instance. It's not possible to use `instanceof Buffer`
                // reliably in a browserify context because there could be multiple different
                // copies of the 'buffer' package in use. This method works even for Buffer
                // instances that were created from another copy of the `buffer` package.
                // See: https://github.com/feross/buffer/issues/154
                Buffer.prototype._isBuffer = true

                function swap(b, n, m) {
                    var i = b[n]
                    b[n] = b[m]
                    b[m] = i
                }

                Buffer.prototype.swap16 = function swap16() {
                    var len = this.length
                    if (len % 2 !== 0) {
                        throw new RangeError('Buffer size must be a multiple of 16-bits')
                    }
                    for (var i = 0; i < len; i += 2) {
                        swap(this, i, i + 1)
                    }
                    return this
                }

                Buffer.prototype.swap32 = function swap32() {
                    var len = this.length
                    if (len % 4 !== 0) {
                        throw new RangeError('Buffer size must be a multiple of 32-bits')
                    }
                    for (var i = 0; i < len; i += 4) {
                        swap(this, i, i + 3)
                        swap(this, i + 1, i + 2)
                    }
                    return this
                }

                Buffer.prototype.swap64 = function swap64() {
                    var len = this.length
                    if (len % 8 !== 0) {
                        throw new RangeError('Buffer size must be a multiple of 64-bits')
                    }
                    for (var i = 0; i < len; i += 8) {
                        swap(this, i, i + 7)
                        swap(this, i + 1, i + 6)
                        swap(this, i + 2, i + 5)
                        swap(this, i + 3, i + 4)
                    }
                    return this
                }

                Buffer.prototype.toString = function toString() {
                    var length = this.length
                    if (length === 0)
                        return ''
                    if (arguments.length === 0)
                        return utf8Slice(this, 0, length)
                    return slowToString.apply(this, arguments)
                }

                Buffer.prototype.toLocaleString = Buffer.prototype.toString

                Buffer.prototype.equals = function equals(b) {
                    if (!Buffer.isBuffer(b))
                        throw new TypeError('Argument must be a Buffer')
                    if (this === b)
                        return true
                    return Buffer.compare(this, b) === 0
                }

                Buffer.prototype.inspect = function inspect() {
                    var str = ''
                    var max = exports.INSPECT_MAX_BYTES
                    str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()
                    if (this.length > max)
                        str += ' ... '
                    return '<Buffer ' + str + '>'
                }

                Buffer.prototype.compare = function compare(target, start, end, thisStart, thisEnd) {
                    if (isInstance(target, Uint8Array)) {
                        target = Buffer.from(target, target.offset, target.byteLength)
                    }
                    if (!Buffer.isBuffer(target)) {
                        throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. ' + 'Received type ' + (typeof target))
                    }

                    if (start === undefined) {
                        start = 0
                    }
                    if (end === undefined) {
                        end = target ? target.length : 0
                    }
                    if (thisStart === undefined) {
                        thisStart = 0
                    }
                    if (thisEnd === undefined) {
                        thisEnd = this.length
                    }

                    if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {
                        throw new RangeError('out of range index')
                    }

                    if (thisStart >= thisEnd && start >= end) {
                        return 0
                    }
                    if (thisStart >= thisEnd) {
                        return -1
                    }
                    if (start >= end) {
                        return 1
                    }

                    start >>>= 0
                    end >>>= 0
                    thisStart >>>= 0
                    thisEnd >>>= 0

                    if (this === target)
                        return 0

                    var x = thisEnd - thisStart
                    var y = end - start
                    var len = Math.min(x, y)

                    var thisCopy = this.slice(thisStart, thisEnd)
                    var targetCopy = target.slice(start, end)

                    for (var i = 0; i < len; ++i) {
                        if (thisCopy[i] !== targetCopy[i]) {
                            x = thisCopy[i]
                            y = targetCopy[i]
                            break
                        }
                    }

                    if (x < y)
                        return -1
                    if (y < x)
                        return 1
                    return 0
                }

                // Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,
                // OR the last index of `val` in `buffer` at offset <= `byteOffset`.
                //
                // Arguments:
                // - buffer - a Buffer to search
                // - val - a string, Buffer, or number
                // - byteOffset - an index into `buffer`; will be clamped to an int32
                // - encoding - an optional encoding, relevant is val is a string
                // - dir - true for indexOf, false for lastIndexOf
                function bidirectionalIndexOf(buffer, val, byteOffset, encoding, dir) {
                    // Empty buffer means no match
                    if (buffer.length === 0)
                        return -1

                    // Normalize byteOffset
                    if (typeof byteOffset === 'string') {
                        encoding = byteOffset
                        byteOffset = 0
                    } else if (byteOffset > 0x7fffffff) {
                        byteOffset = 0x7fffffff
                    } else if (byteOffset < -0x80000000) {
                        byteOffset = -0x80000000
                    }
                    byteOffset = +byteOffset
                    // Coerce to Number.
                    if (numberIsNaN(byteOffset)) {
                        // byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer
                        byteOffset = dir ? 0 : (buffer.length - 1)
                    }

                    // Normalize byteOffset: negative offsets start from the end of the buffer
                    if (byteOffset < 0)
                        byteOffset = buffer.length + byteOffset
                    if (byteOffset >= buffer.length) {
                        if (dir)
                            return -1
                        else
                            byteOffset = buffer.length - 1
                    } else if (byteOffset < 0) {
                        if (dir)
                            byteOffset = 0
                        else
                            return -1
                    }

                    // Normalize val
                    if (typeof val === 'string') {
                        val = Buffer.from(val, encoding)
                    }

                    // Finally, search either indexOf (if dir is true) or lastIndexOf
                    if (Buffer.isBuffer(val)) {
                        // Special case: looking for empty string/buffer always fails
                        if (val.length === 0) {
                            return -1
                        }
                        return arrayIndexOf(buffer, val, byteOffset, encoding, dir)
                    } else if (typeof val === 'number') {
                        val = val & 0xFF
                        // Search for a byte value [0-255]
                        if (typeof Uint8Array.prototype.indexOf === 'function') {
                            if (dir) {
                                return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)
                            } else {
                                return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)
                            }
                        }
                        return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)
                    }

                    throw new TypeError('val must be string, number or Buffer')
                }

                function arrayIndexOf(arr, val, byteOffset, encoding, dir) {
                    var indexSize = 1
                    var arrLength = arr.length
                    var valLength = val.length

                    if (encoding !== undefined) {
                        encoding = String(encoding).toLowerCase()
                        if (encoding === 'ucs2' || encoding === 'ucs-2' || encoding === 'utf16le' || encoding === 'utf-16le') {
                            if (arr.length < 2 || val.length < 2) {
                                return -1
                            }
                            indexSize = 2
                            arrLength /= 2
                            valLength /= 2
                            byteOffset /= 2
                        }
                    }

                    function read(buf, i) {
                        if (indexSize === 1) {
                            return buf[i]
                        } else {
                            return buf.readUInt16BE(i * indexSize)
                        }
                    }

                    var i
                    if (dir) {
                        var foundIndex = -1
                        for (i = byteOffset; i < arrLength; i++) {
                            if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {
                                if (foundIndex === -1)
                                    foundIndex = i
                                if (i - foundIndex + 1 === valLength)
                                    return foundIndex * indexSize
                            } else {
                                if (foundIndex !== -1)
                                    i -= i - foundIndex
                                foundIndex = -1
                            }
                        }
                    } else {
                        if (byteOffset + valLength > arrLength)
                            byteOffset = arrLength - valLength
                        for (i = byteOffset; i >= 0; i--) {
                            var found = true
                            for (var j = 0; j < valLength; j++) {
                                if (read(arr, i + j) !== read(val, j)) {
                                    found = false
                                    break
                                }
                            }
                            if (found)
                                return i
                        }
                    }

                    return -1
                }

                Buffer.prototype.includes = function includes(val, byteOffset, encoding) {
                    return this.indexOf(val, byteOffset, encoding) !== -1
                }

                Buffer.prototype.indexOf = function indexOf(val, byteOffset, encoding) {
                    return bidirectionalIndexOf(this, val, byteOffset, encoding, true)
                }

                Buffer.prototype.lastIndexOf = function lastIndexOf(val, byteOffset, encoding) {
                    return bidirectionalIndexOf(this, val, byteOffset, encoding, false)
                }

                function hexWrite(buf, string, offset, length) {
                    offset = Number(offset) || 0
                    var remaining = buf.length - offset
                    if (!length) {
                        length = remaining
                    } else {
                        length = Number(length)
                        if (length > remaining) {
                            length = remaining
                        }
                    }

                    var strLen = string.length

                    if (length > strLen / 2) {
                        length = strLen / 2
                    }
                    for (var i = 0; i < length; ++i) {
                        var parsed = parseInt(string.substr(i * 2, 2), 16)
                        if (numberIsNaN(parsed))
                            return i
                        buf[offset + i] = parsed
                    }
                    return i
                }

                function utf8Write(buf, string, offset, length) {
                    return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)
                }

                function asciiWrite(buf, string, offset, length) {
                    return blitBuffer(asciiToBytes(string), buf, offset, length)
                }

                function latin1Write(buf, string, offset, length) {
                    return asciiWrite(buf, string, offset, length)
                }

                function base64Write(buf, string, offset, length) {
                    return blitBuffer(base64ToBytes(string), buf, offset, length)
                }

                function ucs2Write(buf, string, offset, length) {
                    return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)
                }

                Buffer.prototype.write = function write(string, offset, length, encoding) {
                    // Buffer#write(string)
                    if (offset === undefined) {
                        encoding = 'utf8'
                        length = this.length
                        offset = 0
                        // Buffer#write(string, encoding)
                    } else if (length === undefined && typeof offset === 'string') {
                        encoding = offset
                        length = this.length
                        offset = 0
                        // Buffer#write(string, offset[, length][, encoding])
                    } else if (isFinite(offset)) {
                        offset = offset >>> 0
                        if (isFinite(length)) {
                            length = length >>> 0
                            if (encoding === undefined)
                                encoding = 'utf8'
                        } else {
                            encoding = length
                            length = undefined
                        }
                    } else {
                        throw new Error('Buffer.write(string, encoding, offset[, length]) is no longer supported')
                    }

                    var remaining = this.length - offset
                    if (length === undefined || length > remaining)
                        length = remaining

                    if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {
                        throw new RangeError('Attempt to write outside buffer bounds')
                    }

                    if (!encoding)
                        encoding = 'utf8'

                    var loweredCase = false
                    for (; ;) {
                        switch (encoding) {
                            case 'hex':
                                return hexWrite(this, string, offset, length)

                            case 'utf8':
                            case 'utf-8':
                                return utf8Write(this, string, offset, length)

                            case 'ascii':
                                return asciiWrite(this, string, offset, length)

                            case 'latin1':
                            case 'binary':
                                return latin1Write(this, string, offset, length)

                            case 'base64':
                                // Warning: maxLength not taken into account in base64Write
                                return base64Write(this, string, offset, length)

                            case 'ucs2':
                            case 'ucs-2':
                            case 'utf16le':
                            case 'utf-16le':
                                return ucs2Write(this, string, offset, length)

                            default:
                                if (loweredCase)
                                    throw new TypeError('Unknown encoding: ' + encoding)
                                encoding = ('' + encoding).toLowerCase()
                                loweredCase = true
                        }
                    }
                }

                Buffer.prototype.toJSON = function toJSON() {
                    return {
                        type: 'Buffer',
                        data: Array.prototype.slice.call(this._arr || this, 0)
                    }
                }

                function base64Slice(buf, start, end) {
                    if (start === 0 && end === buf.length) {
                        return base64.fromByteArray(buf)
                    } else {
                        return base64.fromByteArray(buf.slice(start, end))
                    }
                }

                function utf8Slice(buf, start, end) {
                    end = Math.min(buf.length, end)
                    var res = []

                    var i = start
                    while (i < end) {
                        var firstByte = buf[i]
                        var codePoint = null
                        var bytesPerSequence = (firstByte > 0xEF) ? 4 : (firstByte > 0xDF) ? 3 : (firstByte > 0xBF) ? 2 : 1

                        if (i + bytesPerSequence <= end) {
                            var secondByte, thirdByte, fourthByte, tempCodePoint

                            switch (bytesPerSequence) {
                                case 1:
                                    if (firstByte < 0x80) {
                                        codePoint = firstByte
                                    }
                                    break
                                case 2:
                                    secondByte = buf[i + 1]
                                    if ((secondByte & 0xC0) === 0x80) {
                                        tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)
                                        if (tempCodePoint > 0x7F) {
                                            codePoint = tempCodePoint
                                        }
                                    }
                                    break
                                case 3:
                                    secondByte = buf[i + 1]
                                    thirdByte = buf[i + 2]
                                    if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {
                                        tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)
                                        if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {
                                            codePoint = tempCodePoint
                                        }
                                    }
                                    break
                                case 4:
                                    secondByte = buf[i + 1]
                                    thirdByte = buf[i + 2]
                                    fourthByte = buf[i + 3]
                                    if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {
                                        tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)
                                        if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {
                                            codePoint = tempCodePoint
                                        }
                                    }
                            }
                        }

                        if (codePoint === null) {
                            // we did not generate a valid codePoint so insert a
                            // replacement char (U+FFFD) and advance only 1 byte
                            codePoint = 0xFFFD
                            bytesPerSequence = 1
                        } else if (codePoint > 0xFFFF) {
                            // encode to utf16 (surrogate pair dance)
                            codePoint -= 0x10000
                            res.push(codePoint >>> 10 & 0x3FF | 0xD800)
                            codePoint = 0xDC00 | codePoint & 0x3FF
                        }

                        res.push(codePoint)
                        i += bytesPerSequence
                    }

                    return decodeCodePointsArray(res)
                }

                // Based on http://stackoverflow.com/a/22747272/680742, the browser with
                // the lowest limit is Chrome, with 0x10000 args.
                // We go 1 magnitude less, for safety
                var MAX_ARGUMENTS_LENGTH = 0x1000

                function decodeCodePointsArray(codePoints) {
                    var len = codePoints.length
                    if (len <= MAX_ARGUMENTS_LENGTH) {
                        return String.fromCharCode.apply(String, codePoints)
                        // avoid extra slice()
                    }

                    // Decode in chunks to avoid "call stack size exceeded".
                    var res = ''
                    var i = 0
                    while (i < len) {
                        res += String.fromCharCode.apply(String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH))
                    }
                    return res
                }

                function asciiSlice(buf, start, end) {
                    var ret = ''
                    end = Math.min(buf.length, end)

                    for (var i = start; i < end; ++i) {
                        ret += String.fromCharCode(buf[i] & 0x7F)
                    }
                    return ret
                }

                function latin1Slice(buf, start, end) {
                    var ret = ''
                    end = Math.min(buf.length, end)

                    for (var i = start; i < end; ++i) {
                        ret += String.fromCharCode(buf[i])
                    }
                    return ret
                }

                function hexSlice(buf, start, end) {
                    var len = buf.length

                    if (!start || start < 0)
                        start = 0
                    if (!end || end < 0 || end > len)
                        end = len

                    var out = ''
                    for (var i = start; i < end; ++i) {
                        out += toHex(buf[i])
                    }
                    return out
                }

                function utf16leSlice(buf, start, end) {
                    var bytes = buf.slice(start, end)
                    var res = ''
                    for (var i = 0; i < bytes.length; i += 2) {
                        res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))
                    }
                    return res
                }

                Buffer.prototype.slice = function slice(start, end) {
                    var len = this.length
                    start = ~~start
                    end = end === undefined ? len : ~~end

                    if (start < 0) {
                        start += len
                        if (start < 0)
                            start = 0
                    } else if (start > len) {
                        start = len
                    }

                    if (end < 0) {
                        end += len
                        if (end < 0)
                            end = 0
                    } else if (end > len) {
                        end = len
                    }

                    if (end < start)
                        end = start

                    var newBuf = this.subarray(start, end)
                    // Return an augmented `Uint8Array` instance
                    newBuf.__proto__ = Buffer.prototype
                    return newBuf
                }

                /*
                 * Need to make sure that buffer isn't trying to write out of bounds.
                 */
                function checkOffset(offset, ext, length) {
                    if ((offset % 1) !== 0 || offset < 0)
                        throw new RangeError('offset is not uint')
                    if (offset + ext > length)
                        throw new RangeError('Trying to access beyond buffer length')
                }

                Buffer.prototype.readUIntLE = function readUIntLE(offset, byteLength, noAssert) {
                    offset = offset >>> 0
                    byteLength = byteLength >>> 0
                    if (!noAssert)
                        checkOffset(offset, byteLength, this.length)

                    var val = this[offset]
                    var mul = 1
                    var i = 0
                    while (++i < byteLength && (mul *= 0x100)) {
                        val += this[offset + i] * mul
                    }

                    return val
                }

                Buffer.prototype.readUIntBE = function readUIntBE(offset, byteLength, noAssert) {
                    offset = offset >>> 0
                    byteLength = byteLength >>> 0
                    if (!noAssert) {
                        checkOffset(offset, byteLength, this.length)
                    }

                    var val = this[offset + --byteLength]
                    var mul = 1
                    while (byteLength > 0 && (mul *= 0x100)) {
                        val += this[offset + --byteLength] * mul
                    }

                    return val
                }

                Buffer.prototype.readUInt8 = function readUInt8(offset, noAssert) {
                    offset = offset >>> 0
                    if (!noAssert)
                        checkOffset(offset, 1, this.length)
                    return this[offset]
                }

                Buffer.prototype.readUInt16LE = function readUInt16LE(offset, noAssert) {
                    offset = offset >>> 0
                    if (!noAssert)
                        checkOffset(offset, 2, this.length)
                    return this[offset] | (this[offset + 1] << 8)
                }

                Buffer.prototype.readUInt16BE = function readUInt16BE(offset, noAssert) {
                    offset = offset >>> 0
                    if (!noAssert)
                        checkOffset(offset, 2, this.length)
                    return (this[offset] << 8) | this[offset + 1]
                }

                Buffer.prototype.readUInt32LE = function readUInt32LE(offset, noAssert) {
                    offset = offset >>> 0
                    if (!noAssert)
                        checkOffset(offset, 4, this.length)

                    return ((this[offset]) | (this[offset + 1] << 8) | (this[offset + 2] << 16)) + (this[offset + 3] * 0x1000000)
                }

                Buffer.prototype.readUInt32BE = function readUInt32BE(offset, noAssert) {
                    offset = offset >>> 0
                    if (!noAssert)
                        checkOffset(offset, 4, this.length)

                    return (this[offset] * 0x1000000) + ((this[offset + 1] << 16) | (this[offset + 2] << 8) | this[offset + 3])
                }

                Buffer.prototype.readIntLE = function readIntLE(offset, byteLength, noAssert) {
                    offset = offset >>> 0
                    byteLength = byteLength >>> 0
                    if (!noAssert)
                        checkOffset(offset, byteLength, this.length)

                    var val = this[offset]
                    var mul = 1
                    var i = 0
                    while (++i < byteLength && (mul *= 0x100)) {
                        val += this[offset + i] * mul
                    }
                    mul *= 0x80

                    if (val >= mul)
                        val -= Math.pow(2, 8 * byteLength)

                    return val
                }

                Buffer.prototype.readIntBE = function readIntBE(offset, byteLength, noAssert) {
                    offset = offset >>> 0
                    byteLength = byteLength >>> 0
                    if (!noAssert)
                        checkOffset(offset, byteLength, this.length)

                    var i = byteLength
                    var mul = 1
                    var val = this[offset + --i]
                    while (i > 0 && (mul *= 0x100)) {
                        val += this[offset + --i] * mul
                    }
                    mul *= 0x80

                    if (val >= mul)
                        val -= Math.pow(2, 8 * byteLength)

                    return val
                }

                Buffer.prototype.readInt8 = function readInt8(offset, noAssert) {
                    offset = offset >>> 0
                    if (!noAssert)
                        checkOffset(offset, 1, this.length)
                    if (!(this[offset] & 0x80))
                        return (this[offset])
                    return ((0xff - this[offset] + 1) * -1)
                }

                Buffer.prototype.readInt16LE = function readInt16LE(offset, noAssert) {
                    offset = offset >>> 0
                    if (!noAssert)
                        checkOffset(offset, 2, this.length)
                    var val = this[offset] | (this[offset + 1] << 8)
                    return (val & 0x8000) ? val | 0xFFFF0000 : val
                }

                Buffer.prototype.readInt16BE = function readInt16BE(offset, noAssert) {
                    offset = offset >>> 0
                    if (!noAssert)
                        checkOffset(offset, 2, this.length)
                    var val = this[offset + 1] | (this[offset] << 8)
                    return (val & 0x8000) ? val | 0xFFFF0000 : val
                }

                Buffer.prototype.readInt32LE = function readInt32LE(offset, noAssert) {
                    offset = offset >>> 0
                    if (!noAssert)
                        checkOffset(offset, 4, this.length)

                    return (this[offset]) | (this[offset + 1] << 8) | (this[offset + 2] << 16) | (this[offset + 3] << 24)
                }

                Buffer.prototype.readInt32BE = function readInt32BE(offset, noAssert) {
                    offset = offset >>> 0
                    if (!noAssert)
                        checkOffset(offset, 4, this.length)

                    return (this[offset] << 24) | (this[offset + 1] << 16) | (this[offset + 2] << 8) | (this[offset + 3])
                }

                Buffer.prototype.readFloatLE = function readFloatLE(offset, noAssert) {
                    offset = offset >>> 0
                    if (!noAssert)
                        checkOffset(offset, 4, this.length)
                    return ieee754.read(this, offset, true, 23, 4)
                }

                Buffer.prototype.readFloatBE = function readFloatBE(offset, noAssert) {
                    offset = offset >>> 0
                    if (!noAssert)
                        checkOffset(offset, 4, this.length)
                    return ieee754.read(this, offset, false, 23, 4)
                }

                Buffer.prototype.readDoubleLE = function readDoubleLE(offset, noAssert) {
                    offset = offset >>> 0
                    if (!noAssert)
                        checkOffset(offset, 8, this.length)
                    return ieee754.read(this, offset, true, 52, 8)
                }

                Buffer.prototype.readDoubleBE = function readDoubleBE(offset, noAssert) {
                    offset = offset >>> 0
                    if (!noAssert)
                        checkOffset(offset, 8, this.length)
                    return ieee754.read(this, offset, false, 52, 8)
                }

                function checkInt(buf, value, offset, ext, max, min) {
                    if (!Buffer.isBuffer(buf))
                        throw new TypeError('"buffer" argument must be a Buffer instance')
                    if (value > max || value < min)
                        throw new RangeError('"value" argument is out of bounds')
                    if (offset + ext > buf.length)
                        throw new RangeError('Index out of range')
                }

                Buffer.prototype.writeUIntLE = function writeUIntLE(value, offset, byteLength, noAssert) {
                    value = +value
                    offset = offset >>> 0
                    byteLength = byteLength >>> 0
                    if (!noAssert) {
                        var maxBytes = Math.pow(2, 8 * byteLength) - 1
                        checkInt(this, value, offset, byteLength, maxBytes, 0)
                    }

                    var mul = 1
                    var i = 0
                    this[offset] = value & 0xFF
                    while (++i < byteLength && (mul *= 0x100)) {
                        this[offset + i] = (value / mul) & 0xFF
                    }

                    return offset + byteLength
                }

                Buffer.prototype.writeUIntBE = function writeUIntBE(value, offset, byteLength, noAssert) {
                    value = +value
                    offset = offset >>> 0
                    byteLength = byteLength >>> 0
                    if (!noAssert) {
                        var maxBytes = Math.pow(2, 8 * byteLength) - 1
                        checkInt(this, value, offset, byteLength, maxBytes, 0)
                    }

                    var i = byteLength - 1
                    var mul = 1
                    this[offset + i] = value & 0xFF
                    while (--i >= 0 && (mul *= 0x100)) {
                        this[offset + i] = (value / mul) & 0xFF
                    }

                    return offset + byteLength
                }

                Buffer.prototype.writeUInt8 = function writeUInt8(value, offset, noAssert) {
                    value = +value
                    offset = offset >>> 0
                    if (!noAssert)
                        checkInt(this, value, offset, 1, 0xff, 0)
                    this[offset] = (value & 0xff)
                    return offset + 1
                }

                Buffer.prototype.writeUInt16LE = function writeUInt16LE(value, offset, noAssert) {
                    value = +value
                    offset = offset >>> 0
                    if (!noAssert)
                        checkInt(this, value, offset, 2, 0xffff, 0)
                    this[offset] = (value & 0xff)
                    this[offset + 1] = (value >>> 8)
                    return offset + 2
                }

                Buffer.prototype.writeUInt16BE = function writeUInt16BE(value, offset, noAssert) {
                    value = +value
                    offset = offset >>> 0
                    if (!noAssert)
                        checkInt(this, value, offset, 2, 0xffff, 0)
                    this[offset] = (value >>> 8)
                    this[offset + 1] = (value & 0xff)
                    return offset + 2
                }

                Buffer.prototype.writeUInt32LE = function writeUInt32LE(value, offset, noAssert) {
                    value = +value
                    offset = offset >>> 0
                    if (!noAssert)
                        checkInt(this, value, offset, 4, 0xffffffff, 0)
                    this[offset + 3] = (value >>> 24)
                    this[offset + 2] = (value >>> 16)
                    this[offset + 1] = (value >>> 8)
                    this[offset] = (value & 0xff)
                    return offset + 4
                }

                Buffer.prototype.writeUInt32BE = function writeUInt32BE(value, offset, noAssert) {
                    value = +value
                    offset = offset >>> 0
                    if (!noAssert)
                        checkInt(this, value, offset, 4, 0xffffffff, 0)
                    this[offset] = (value >>> 24)
                    this[offset + 1] = (value >>> 16)
                    this[offset + 2] = (value >>> 8)
                    this[offset + 3] = (value & 0xff)
                    return offset + 4
                }

                Buffer.prototype.writeIntLE = function writeIntLE(value, offset, byteLength, noAssert) {
                    value = +value
                    offset = offset >>> 0
                    if (!noAssert) {
                        var limit = Math.pow(2, (8 * byteLength) - 1)

                        checkInt(this, value, offset, byteLength, limit - 1, -limit)
                    }

                    var i = 0
                    var mul = 1
                    var sub = 0
                    this[offset] = value & 0xFF
                    while (++i < byteLength && (mul *= 0x100)) {
                        if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {
                            sub = 1
                        }
                        this[offset + i] = ((value / mul) >> 0) - sub & 0xFF
                    }

                    return offset + byteLength
                }

                Buffer.prototype.writeIntBE = function writeIntBE(value, offset, byteLength, noAssert) {
                    value = +value
                    offset = offset >>> 0
                    if (!noAssert) {
                        var limit = Math.pow(2, (8 * byteLength) - 1)

                        checkInt(this, value, offset, byteLength, limit - 1, -limit)
                    }

                    var i = byteLength - 1
                    var mul = 1
                    var sub = 0
                    this[offset + i] = value & 0xFF
                    while (--i >= 0 && (mul *= 0x100)) {
                        if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {
                            sub = 1
                        }
                        this[offset + i] = ((value / mul) >> 0) - sub & 0xFF
                    }

                    return offset + byteLength
                }

                Buffer.prototype.writeInt8 = function writeInt8(value, offset, noAssert) {
                    value = +value
                    offset = offset >>> 0
                    if (!noAssert)
                        checkInt(this, value, offset, 1, 0x7f, -0x80)
                    if (value < 0)
                        value = 0xff + value + 1
                    this[offset] = (value & 0xff)
                    return offset + 1
                }

                Buffer.prototype.writeInt16LE = function writeInt16LE(value, offset, noAssert) {
                    value = +value
                    offset = offset >>> 0
                    if (!noAssert)
                        checkInt(this, value, offset, 2, 0x7fff, -0x8000)
                    this[offset] = (value & 0xff)
                    this[offset + 1] = (value >>> 8)
                    return offset + 2
                }

                Buffer.prototype.writeInt16BE = function writeInt16BE(value, offset, noAssert) {
                    value = +value
                    offset = offset >>> 0
                    if (!noAssert)
                        checkInt(this, value, offset, 2, 0x7fff, -0x8000)
                    this[offset] = (value >>> 8)
                    this[offset + 1] = (value & 0xff)
                    return offset + 2
                }

                Buffer.prototype.writeInt32LE = function writeInt32LE(value, offset, noAssert) {
                    value = +value
                    offset = offset >>> 0
                    if (!noAssert)
                        checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)
                    this[offset] = (value & 0xff)
                    this[offset + 1] = (value >>> 8)
                    this[offset + 2] = (value >>> 16)
                    this[offset + 3] = (value >>> 24)
                    return offset + 4
                }

                Buffer.prototype.writeInt32BE = function writeInt32BE(value, offset, noAssert) {
                    value = +value
                    offset = offset >>> 0
                    if (!noAssert)
                        checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)
                    if (value < 0)
                        value = 0xffffffff + value + 1
                    this[offset] = (value >>> 24)
                    this[offset + 1] = (value >>> 16)
                    this[offset + 2] = (value >>> 8)
                    this[offset + 3] = (value & 0xff)
                    return offset + 4
                }

                function checkIEEE754(buf, value, offset, ext, max, min) {
                    if (offset + ext > buf.length)
                        throw new RangeError('Index out of range')
                    if (offset < 0)
                        throw new RangeError('Index out of range')
                }

                function writeFloat(buf, value, offset, littleEndian, noAssert) {
                    value = +value
                    offset = offset >>> 0
                    if (!noAssert) {
                        checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)
                    }
                    ieee754.write(buf, value, offset, littleEndian, 23, 4)
                    return offset + 4
                }

                Buffer.prototype.writeFloatLE = function writeFloatLE(value, offset, noAssert) {
                    return writeFloat(this, value, offset, true, noAssert)
                }

                Buffer.prototype.writeFloatBE = function writeFloatBE(value, offset, noAssert) {
                    return writeFloat(this, value, offset, false, noAssert)
                }

                function writeDouble(buf, value, offset, littleEndian, noAssert) {
                    value = +value
                    offset = offset >>> 0
                    if (!noAssert) {
                        checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)
                    }
                    ieee754.write(buf, value, offset, littleEndian, 52, 8)
                    return offset + 8
                }

                Buffer.prototype.writeDoubleLE = function writeDoubleLE(value, offset, noAssert) {
                    return writeDouble(this, value, offset, true, noAssert)
                }

                Buffer.prototype.writeDoubleBE = function writeDoubleBE(value, offset, noAssert) {
                    return writeDouble(this, value, offset, false, noAssert)
                }

                // copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)
                Buffer.prototype.copy = function copy(target, targetStart, start, end) {
                    if (!Buffer.isBuffer(target))
                        throw new TypeError('argument should be a Buffer')
                    if (!start)
                        start = 0
                    if (!end && end !== 0)
                        end = this.length
                    if (targetStart >= target.length)
                        targetStart = target.length
                    if (!targetStart)
                        targetStart = 0
                    if (end > 0 && end < start)
                        end = start

                    // Copy 0 bytes; we're done
                    if (end === start)
                        return 0
                    if (target.length === 0 || this.length === 0)
                        return 0

                    // Fatal error conditions
                    if (targetStart < 0) {
                        throw new RangeError('targetStart out of bounds')
                    }
                    if (start < 0 || start >= this.length)
                        throw new RangeError('Index out of range')
                    if (end < 0)
                        throw new RangeError('sourceEnd out of bounds')

                    // Are we oob?
                    if (end > this.length)
                        end = this.length
                    if (target.length - targetStart < end - start) {
                        end = target.length - targetStart + start
                    }

                    var len = end - start

                    if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {
                        // Use built-in when available, missing from IE11
                        this.copyWithin(targetStart, start, end)
                    } else if (this === target && start < targetStart && targetStart < end) {
                        // descending copy from end
                        for (var i = len - 1; i >= 0; --i) {
                            target[i + targetStart] = this[i + start]
                        }
                    } else {
                        Uint8Array.prototype.set.call(target, this.subarray(start, end), targetStart)
                    }

                    return len
                }

                // Usage:
                //    buffer.fill(number[, offset[, end]])
                //    buffer.fill(buffer[, offset[, end]])
                //    buffer.fill(string[, offset[, end]][, encoding])
                Buffer.prototype.fill = function fill(val, start, end, encoding) {
                    // Handle string cases:
                    if (typeof val === 'string') {
                        if (typeof start === 'string') {
                            encoding = start
                            start = 0
                            end = this.length
                        } else if (typeof end === 'string') {
                            encoding = end
                            end = this.length
                        }
                        if (encoding !== undefined && typeof encoding !== 'string') {
                            throw new TypeError('encoding must be a string')
                        }
                        if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {
                            throw new TypeError('Unknown encoding: ' + encoding)
                        }
                        if (val.length === 1) {
                            var code = val.charCodeAt(0)
                            if ((encoding === 'utf8' && code < 128) || encoding === 'latin1') {
                                // Fast path: If `val` fits into a single byte, use that numeric value.
                                val = code
                            }
                        }
                    } else if (typeof val === 'number') {
                        val = val & 255
                    }

                    // Invalid ranges are not set to a default, so can range check early.
                    if (start < 0 || this.length < start || this.length < end) {
                        throw new RangeError('Out of range index')
                    }

                    if (end <= start) {
                        return this
                    }

                    start = start >>> 0
                    end = end === undefined ? this.length : end >>> 0

                    if (!val)
                        val = 0

                    var i
                    if (typeof val === 'number') {
                        for (i = start; i < end; ++i) {
                            this[i] = val
                        }
                    } else {
                        var bytes = Buffer.isBuffer(val) ? val : Buffer.from(val, encoding)
                        var len = bytes.length
                        if (len === 0) {
                            throw new TypeError('The value "' + val + '" is invalid for argument "value"')
                        }
                        for (i = 0; i < end - start; ++i) {
                            this[i + start] = bytes[i % len]
                        }
                    }

                    return this
                }

                // HELPER FUNCTIONS
                // ================

                var INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g

                function base64clean(str) {
                    // Node takes equal signs as end of the Base64 encoding
                    str = str.split('=')[0]
                    // Node strips out invalid characters like \n and \t from the string, base64-js does not
                    str = str.trim().replace(INVALID_BASE64_RE, '')
                    // Node converts strings with length < 2 to ''
                    if (str.length < 2)
                        return ''
                    // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not
                    while (str.length % 4 !== 0) {
                        str = str + '='
                    }
                    return str
                }

                function toHex(n) {
                    if (n < 16)
                        return '0' + n.toString(16)
                    return n.toString(16)
                }

                function utf8ToBytes(string, units) {
                    units = units || Infinity
                    var codePoint
                    var length = string.length
                    var leadSurrogate = null
                    var bytes = []

                    for (var i = 0; i < length; ++i) {
                        codePoint = string.charCodeAt(i)

                        // is surrogate component
                        if (codePoint > 0xD7FF && codePoint < 0xE000) {
                            // last char was a lead
                            if (!leadSurrogate) {
                                // no lead yet
                                if (codePoint > 0xDBFF) {
                                    // unexpected trail
                                    if ((units -= 3) > -1)
                                        bytes.push(0xEF, 0xBF, 0xBD)
                                    continue
                                } else if (i + 1 === length) {
                                    // unpaired lead
                                    if ((units -= 3) > -1)
                                        bytes.push(0xEF, 0xBF, 0xBD)
                                    continue
                                }

                                // valid lead
                                leadSurrogate = codePoint

                                continue
                            }

                            // 2 leads in a row
                            if (codePoint < 0xDC00) {
                                if ((units -= 3) > -1)
                                    bytes.push(0xEF, 0xBF, 0xBD)
                                leadSurrogate = codePoint
                                continue
                            }

                            // valid surrogate pair
                            codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000
                        } else if (leadSurrogate) {
                            // valid bmp char, but last char was a lead
                            if ((units -= 3) > -1)
                                bytes.push(0xEF, 0xBF, 0xBD)
                        }

                        leadSurrogate = null

                        // encode utf8
                        if (codePoint < 0x80) {
                            if ((units -= 1) < 0)
                                break
                            bytes.push(codePoint)
                        } else if (codePoint < 0x800) {
                            if ((units -= 2) < 0)
                                break
                            bytes.push(codePoint >> 0x6 | 0xC0, codePoint & 0x3F | 0x80)
                        } else if (codePoint < 0x10000) {
                            if ((units -= 3) < 0)
                                break
                            bytes.push(codePoint >> 0xC | 0xE0, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80)
                        } else if (codePoint < 0x110000) {
                            if ((units -= 4) < 0)
                                break
                            bytes.push(codePoint >> 0x12 | 0xF0, codePoint >> 0xC & 0x3F | 0x80, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80)
                        } else {
                            throw new Error('Invalid code point')
                        }
                    }

                    return bytes
                }

                function asciiToBytes(str) {
                    var byteArray = []
                    for (var i = 0; i < str.length; ++i) {
                        // Node's code seems to be doing this and not & 0x7F..
                        byteArray.push(str.charCodeAt(i) & 0xFF)
                    }
                    return byteArray
                }

                function utf16leToBytes(str, units) {
                    var c, hi, lo
                    var byteArray = []
                    for (var i = 0; i < str.length; ++i) {
                        if ((units -= 2) < 0)
                            break

                        c = str.charCodeAt(i)
                        hi = c >> 8
                        lo = c % 256
                        byteArray.push(lo)
                        byteArray.push(hi)
                    }

                    return byteArray
                }

                function base64ToBytes(str) {
                    return base64.toByteArray(base64clean(str))
                }

                function blitBuffer(src, dst, offset, length) {
                    for (var i = 0; i < length; ++i) {
                        if ((i + offset >= dst.length) || (i >= src.length))
                            break
                        dst[i + offset] = src[i]
                    }
                    return i
                }

                // ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass
                // the `instanceof` check but they should be treated as of that type.
                // See: https://github.com/feross/buffer/issues/166
                function isInstance(obj, type) {
                    return obj instanceof type || (obj != null && obj.constructor != null && obj.constructor.name != null && obj.constructor.name === type.name)
                }
                function numberIsNaN(obj) {
                    // For IE11 support
                    return obj !== obj
                    // eslint-disable-line no-self-compare
                }

            }
            ).call(this)
        }
        ).call(this, require("buffer").Buffer)
    }
        , {
        "base64-js": 646,
        "buffer": 647,
        "ieee754": 648
    }],
    648: [function (require, module, exports) {
        /*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
        exports.read = function (buffer, offset, isLE, mLen, nBytes) {
            var e, m
            var eLen = (nBytes * 8) - mLen - 1
            var eMax = (1 << eLen) - 1
            var eBias = eMax >> 1
            var nBits = -7
            var i = isLE ? (nBytes - 1) : 0
            var d = isLE ? -1 : 1
            var s = buffer[offset + i]

            i += d

            e = s & ((1 << (-nBits)) - 1)
            s >>= (-nBits)
            nBits += eLen
            for (; nBits > 0; e = (e * 256) + buffer[offset + i],
                i += d,
                nBits -= 8) { }

            m = e & ((1 << (-nBits)) - 1)
            e >>= (-nBits)
            nBits += mLen
            for (; nBits > 0; m = (m * 256) + buffer[offset + i],
                i += d,
                nBits -= 8) { }

            if (e === 0) {
                e = 1 - eBias
            } else if (e === eMax) {
                return m ? NaN : ((s ? -1 : 1) * Infinity)
            } else {
                m = m + Math.pow(2, mLen)
                e = e - eBias
            }
            return (s ? -1 : 1) * m * Math.pow(2, e - mLen)
        }

        exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
            var e, m, c
            var eLen = (nBytes * 8) - mLen - 1
            var eMax = (1 << eLen) - 1
            var eBias = eMax >> 1
            var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)
            var i = isLE ? 0 : (nBytes - 1)
            var d = isLE ? 1 : -1
            var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0

            value = Math.abs(value)

            if (isNaN(value) || value === Infinity) {
                m = isNaN(value) ? 1 : 0
                e = eMax
            } else {
                e = Math.floor(Math.log(value) / Math.LN2)
                if (value * (c = Math.pow(2, -e)) < 1) {
                    e--
                    c *= 2
                }
                if (e + eBias >= 1) {
                    value += rt / c
                } else {
                    value += rt * Math.pow(2, 1 - eBias)
                }
                if (value * c >= 2) {
                    e++
                    c /= 2
                }

                if (e + eBias >= eMax) {
                    m = 0
                    e = eMax
                } else if (e + eBias >= 1) {
                    m = ((value * c) - 1) * Math.pow(2, mLen)
                    e = e + eBias
                } else {
                    m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)
                    e = 0
                }
            }

            for (; mLen >= 8; buffer[offset + i] = m & 0xff,
                i += d,
                m /= 256,
                mLen -= 8) { }

            e = (e << mLen) | m
            eLen += mLen
            for (; eLen > 0; buffer[offset + i] = e & 0xff,
                i += d,
                e /= 256,
                eLen -= 8) { }

            buffer[offset + i - d] |= s * 128
        }

    }
        , {}],
    649: [function (require, module, exports) {
        // shim for using process in browser
        var process = module.exports = {};

        // cached from whatever global is present so that test runners that stub it
        // don't break things.  But we need to wrap it in a try catch in case it is
        // wrapped in strict mode code which doesn't define any globals.  It's inside a
        // function because try/catches deoptimize in certain engines.

        var cachedSetTimeout;
        var cachedClearTimeout;

        function defaultSetTimout() {
            throw new Error('setTimeout has not been defined');
        }
        function defaultClearTimeout() {
            throw new Error('clearTimeout has not been defined');
        }
        (function () {
            try {
                if (typeof setTimeout === 'function') {
                    cachedSetTimeout = setTimeout;
                } else {
                    cachedSetTimeout = defaultSetTimout;
                }
            } catch (e) {
                cachedSetTimeout = defaultSetTimout;
            }
            try {
                if (typeof clearTimeout === 'function') {
                    cachedClearTimeout = clearTimeout;
                } else {
                    cachedClearTimeout = defaultClearTimeout;
                }
            } catch (e) {
                cachedClearTimeout = defaultClearTimeout;
            }
        }())
        function runTimeout(fun) {
            if (cachedSetTimeout === setTimeout) {
                //normal enviroments in sane situations
                return setTimeout(fun, 0);
            }
            // if setTimeout wasn't available but was latter defined
            if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
                cachedSetTimeout = setTimeout;
                return setTimeout(fun, 0);
            }
            try {
                // when when somebody has screwed with setTimeout but no I.E. maddness
                return cachedSetTimeout(fun, 0);
            } catch (e) {
                try {
                    // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
                    return cachedSetTimeout.call(null, fun, 0);
                } catch (e) {
                    // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error
                    return cachedSetTimeout.call(this, fun, 0);
                }
            }

        }
        function runClearTimeout(marker) {
            if (cachedClearTimeout === clearTimeout) {
                //normal enviroments in sane situations
                return clearTimeout(marker);
            }
            // if clearTimeout wasn't available but was latter defined
            if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
                cachedClearTimeout = clearTimeout;
                return clearTimeout(marker);
            }
            try {
                // when when somebody has screwed with setTimeout but no I.E. maddness
                return cachedClearTimeout(marker);
            } catch (e) {
                try {
                    // When we are in I.E. but the script has been evaled so I.E. doesn't  trust the global object when called normally
                    return cachedClearTimeout.call(null, marker);
                } catch (e) {
                    // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.
                    // Some versions of I.E. have different rules for clearTimeout vs setTimeout
                    return cachedClearTimeout.call(this, marker);
                }
            }

        }
        var queue = [];
        var draining = false;
        var currentQueue;
        var queueIndex = -1;

        function cleanUpNextTick() {
            if (!draining || !currentQueue) {
                return;
            }
            draining = false;
            if (currentQueue.length) {
                queue = currentQueue.concat(queue);
            } else {
                queueIndex = -1;
            }
            if (queue.length) {
                drainQueue();
            }
        }

        function drainQueue() {
            if (draining) {
                return;
            }
            var timeout = runTimeout(cleanUpNextTick);
            draining = true;

            var len = queue.length;
            while (len) {
                currentQueue = queue;
                queue = [];
                while (++queueIndex < len) {
                    if (currentQueue) {
                        currentQueue[queueIndex].run();
                    }
                }
                queueIndex = -1;
                len = queue.length;
            }
            currentQueue = null;
            draining = false;
            runClearTimeout(timeout);
        }

        process.nextTick = function (fun) {
            var args = new Array(arguments.length - 1);
            if (arguments.length > 1) {
                for (var i = 1; i < arguments.length; i++) {
                    args[i - 1] = arguments[i];
                }
            }
            queue.push(new Item(fun, args));
            if (queue.length === 1 && !draining) {
                runTimeout(drainQueue);
            }
        };

        // v8 likes predictible objects
        function Item(fun, array) {
            this.fun = fun;
            this.array = array;
        }
        Item.prototype.run = function () {
            this.fun.apply(null, this.array);
        };
        process.title = 'browser';
        process.browser = true;
        process.env = {};
        process.argv = [];
        process.version = '';
        // empty string to avoid regexp issues
        process.versions = {};

        function noop() { }

        process.on = noop;
        process.addListener = noop;
        process.once = noop;
        process.off = noop;
        process.removeListener = noop;
        process.removeAllListeners = noop;
        process.emit = noop;
        process.prependListener = noop;
        process.prependOnceListener = noop;

        process.listeners = function (name) {
            return []
        }

        process.binding = function (name) {
            throw new Error('process.binding is not supported');
        };

        process.cwd = function () {
            return '/'
        };
        process.chdir = function (dir) {
            throw new Error('process.chdir is not supported');
        };
        process.umask = function () {
            return 0;
        };

    }
        , {}],
    650: [function (require, module, exports) {
        (function (setImmediate, clearImmediate) {
            (function () {
                var nextTick = require('process/browser.js').nextTick;
                var apply = Function.prototype.apply;
                var slice = Array.prototype.slice;
                var immediateIds = {};
                var nextImmediateId = 0;

                // DOM APIs, for completeness

                exports.setTimeout = function () {
                    return new Timeout(apply.call(setTimeout, window, arguments), clearTimeout);
                }
                    ;
                exports.setInterval = function () {
                    return new Timeout(apply.call(setInterval, window, arguments), clearInterval);
                }
                    ;
                exports.clearTimeout = exports.clearInterval = function (timeout) {
                    timeout.close();
                }
                    ;

                function Timeout(id, clearFn) {
                    this._id = id;
                    this._clearFn = clearFn;
                }
                Timeout.prototype.unref = Timeout.prototype.ref = function () { }
                    ;
                Timeout.prototype.close = function () {
                    this._clearFn.call(window, this._id);
                }
                    ;

                // Does not start the time, just sets up the members needed.
                exports.enroll = function (item, msecs) {
                    clearTimeout(item._idleTimeoutId);
                    item._idleTimeout = msecs;
                }
                    ;

                exports.unenroll = function (item) {
                    clearTimeout(item._idleTimeoutId);
                    item._idleTimeout = -1;
                }
                    ;

                exports._unrefActive = exports.active = function (item) {
                    clearTimeout(item._idleTimeoutId);

                    var msecs = item._idleTimeout;
                    if (msecs >= 0) {
                        item._idleTimeoutId = setTimeout(function onTimeout() {
                            if (item._onTimeout)
                                item._onTimeout();
                        }, msecs);
                    }
                }
                    ;

                // That's not how node.js implements it but the exposed api is the same.
                exports.setImmediate = typeof setImmediate === "function" ? setImmediate : function (fn) {
                    var id = nextImmediateId++;
                    var args = arguments.length < 2 ? false : slice.call(arguments, 1);

                    immediateIds[id] = true;

                    nextTick(function onNextTick() {
                        if (immediateIds[id]) {
                            // fn.call() is faster so we optimize for the common use-case
                            // @see http://jsperf.com/call-apply-segu
                            if (args) {
                                fn.apply(null, args);
                            } else {
                                fn.call(null);
                            }
                            // Prevent ids from leaking
                            exports.clearImmediate(id);
                        }
                    });

                    return id;
                }
                    ;

                exports.clearImmediate = typeof clearImmediate === "function" ? clearImmediate : function (id) {
                    delete immediateIds[id];
                }
                    ;
            }
            ).call(this)
        }
        ).call(this, require("timers").setImmediate, require("timers").clearImmediate)
    }
        , {
        "process/browser.js": 649,
        "timers": 650
    }]
}, {}, [1]);
